RISC-V MCU中文社区

【分享】 浮点指令(六:寄存器)

发表于 全国大学生集成电路创新创业大赛 2023-05-21 09:00:18
0
1237
0

Risc-V规定,如果支持单精度浮点指令或者双精度浮点指令,四精度浮点指令,则需要增加一组独立的通用浮点寄存器组,包括32个通用浮点寄存器,标号位f0到f31。如果仅支持F扩展指令子集,则每个通用寄存器是32位的,如果支持D扩展指令子集,则每个通用寄存器是64位的,如果支持Q扩展指令集,则每个浮点通用寄存器是128位的。

如果处理器同时支持 RV32F 和 RV32D 扩展,则单精度数据仅使用 f 寄存器中的低 32位。与 RV32I 中的 x0 不同,寄存器 f0 不是硬连线到常量 0, 而是和所有其他 31 个 f 寄存器一样,是一个可变寄存器。下面是32位和64位浮点寄存器的名字,别名和注释。

63-32 31-0(名字和别名) 注释
f0/ft0 FP Temporary
f1/ft1 FP Temporary
f2/ft2 FP Temporary
f3/ft3 FP Temporary
f4/ft4 FP Temporary
f5/ft5 FP Temporary
f6/ft6 FP Temporary
f7/ft7 FP Temporary
f8 / fs0 FP Saved register
f9 / fs1 FP Saved register
f10 / fa0 FP Function argument, return value
f11 / fa1 FP Function argument, return value
f12 / fa2 FP Function argument
f13 / fa3 FP Function argument
f14 / fa4 FP Function argument
f15 / fa5 FP Function argument
f16 / fa6 FP Function argument
f17 / fa7 FP Function argument
f18 / fs2 FP Saved register
f19 / fs3 FP Saved register
f20 / fs4 FP Saved register
f21 / fs5 FP Saved register
f22 / fs6 FP Saved register
f23 / fs7 FP Saved register
f24 / fs8 FP Saved register
f25 / fs9 FP Saved register
f26 / fs10 FP Saved register
f27 / fs11 FP Saved register
f28 / ft8 FP Temporary
f29 / ft9 FP Temporary
f30 / ft10 FP Temporary
f31 / ft11 FP Temporary

Risc-V架构规定,如果支持浮点指令,需要增加一个浮点控制状态寄存器fcsr,该寄存器是一个可读可写的csr寄存器。

喜欢0
用户评论
LiYH

LiYH 实名认证


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