皋陶 发表于 2020-8-23 11:16:58

Risc-V指令集01

本帖最后由 皋陶 于 2020-8-26 10:17 编辑


https://riscv.org/specifications/
RISC-V文档包括:用户层指令集文档和特权架构文档,下面这两个文件的官网链接。
[*]User-Level ISA Specification
[*]Privileged ISA Specification


用户层指令集文档现在的版本是2.2。Risc-V的指令集是模块化的,用户层指令集主要包括以下模块,其中有些模块已经冻结,未来不大可能再变化,有些模块仍在讨论中,我们主要关注已经冻结的模块。
基础模块版本是否冻结注释
RV32I2.0Ybase的32位整数指令集,32位地址空间,寄存器是32位
RV32E1.9N嵌入式架构,仅有16个整数寄存器
RV64I2.0Ybase的64位整数指令集,64位地址空间,寄存器是64位
RV128I1.7Nbase的128位整数指令集,支持128为地址空间
扩展模块版本是否冻结

M2.0Y支持乘法和除法指令
A2.0Y支持原子操作指令和Load-Reserved/store-Conditional指令
F2.0Y单精度浮点指令
D2.0Y双精度浮点指令
Q2.0Y四精度浮点指令
L0.0N十进制浮点数,IEEE754-2008
C2.0Y支持编码长度为16的压缩指令。
B0.0N位操作指令
J0.0N支持动态转化语言
T0.0Ntransactional memory operations
P0.1NPacked-SIMD Instructions
V0.2N向量操作指令
N1.1N用户层的终端和异常指令

Risc-V的基础指令集是整数指令集,在任何架构方案中,必须完整实现基础的整数指令集。在整数指令集中,用补码表示符号数。在整数指令集的基础上,可以选择实现扩展模块,比如RV32IMAFDC,表示当前实现支持这些模块的组合,其中IMAFD是通过组合,用字母G表示,所以RV32IMAFDC,也可以写作RV32GC。现在的Risc-V编译工具链,重点会支持RV32G和RV64G。Risv-V的指令编码规则:对于16位压缩指令,它的低两位不等于11,对于RV32,它的=11,不等于111。对于64位指令,它的低7位位0111111。
我们主要学习一下几个指令集:RV32I指令集RV32M指令集RV32A指令集RV32FD指令集RV32C指令集
本篇完,感谢关注:RISC-V单片机中文网
页: [1]
查看完整版本: Risc-V指令集01