RISC-V MCU中文社区

【分享】 RISC-V 浮点扩展介绍

发表于 全国大学生集成电路创新创业大赛 2023-05-30 22:56:31
0
1457
0

队伍编号:CICC3280 团队名称:芯新星队
本文主要讲解RISC-V指令集手册中F指令部分

RISC-V标准中采用了符合IEEE 754-2008算术标准的单精度浮点计算指令,对于浮点运算来说,RV32F指令扩展中增加了32个32位的浮点寄存器,f0-f31,并且还有一个单独的浮点控制状态寄存器fcsr。绝大多数浮点指令都直接对浮点寄存器中的值进行操作。fcsr寄存器的格式如图十六所示:
图片alt

fcsr寄存器不仅可以被完整地访问,也可以按域单独访问,frrm/fsrm伪指令用于单独访问fcsr的frm域,frflags/fsflags伪指令可以单独访问fcsr的fflags域。fcsr中31-8位进行保留,以便后续扩展,7-5位为舍入模式的设定。舍入模式可以分为静态舍入和动态舍入,静态舍入即按照浮点指令内固定的模式去执行,动态舍入可以通过frm域的值动态选择,此时指令编码中的rm域为111,无效的舍入会引起非法指令异常。RISC-V规定的舍入模式如图十七所示:
图片alt
舍入模式分为

  • 000向最近偶数舍入(round to nearest, RNE)
  • 001向 0 舍入(round toward 0, RTZ)
  • 010向$$-\infty$$舍入(round toward$$-\infty$$, RDN)
  • 011向$$+\infty$$舍入(round toward$$+\infty$$, RUP)
  • 100向最大摆幅舍入(四舍五入)(round toword max magnitude, RMM)

fcsr的4-0位表示异常标志,每一位对应一个异常情况,如图十八所示:
图片alt

F指令详细的指令信息可参考RISC-V官方手册或《手把手教你设计CPU》,在此仅将指令信息列表给出不做过多赘述。(F指令列表如图十九所示):
图片alt

注:\infty在MathJex中表示无穷大

喜欢0
用户评论
Burch

Burch 实名认证

新星

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板