RISC-V处理器设计之架构
19 Oct 2022 489220字 1631分 次 Digital IC Design打赏作者 CC BY 4.0 (除特别声明或转载文章外)
1 前言
就像设计PCB要读datasheet那样,设计芯片也要看它的相关文档:
2 RISC-V架构简介
2.1 模块化的指令集
RISC-V架构与其他成熟架构不同的是,它是模块化的架构。也就是不仅短小精悍,其不同的部分还能以模块化的方式组合在一起来满足不同需求。这使得RISC-V指令数目仅有40多条,算上模块化扩展的指令也不算很多。
RISC-V基本指令集(I):
基本指令集 | 指令数 | 描述 |
---|---|---|
RV32I | 47 | 支持32位地址空间与整数指令,支持32个通用整数寄存器 |
RV32E | 47 | RV32I的子集,仅支持16个通用整数寄存器 |
RV64I | 59 | 支持64位地址空间与整数指令,以及一部分32位的整数指令 |
RV128I | 71 | 支持128位地址空间与整数指令及一部分64位和32位的指令 |
RISC-V基本指令集扩展指令集(M/A/F/D/C):
扩展指令集 | 指令数 | 描述 |
---|---|---|
M | 8 | 整数乘法与除法 |
A | 11 | 储存器原子操作指令和Load-Reserved/Store-Conditional指令 |
F | 26 | 单精度(32bit)浮点指令 |
D | 26 | 双精度(64bit)浮点指令,必须支持F扩展指令集 |
C | 46 | 压缩指令,指令长度为16bit |
以上模块的一个特定组合“IMAFDC”也称为“通用组合”,用“G”表示。例:
- RV32G:RV32IMAFD
- RV64G:RV64IMAFD
为了提高代码密度,RSIC-V还提供了可选的“压缩”指令子集,用“C”表示。压缩指令的编码长度为16bit,而非普通的非压缩指令的编码长度32bit。
2.2 可配置的通用寄存器组
通用寄存器的宽度与地址空间宽度相等(32bit、64bit)。
整数通用寄存器组包含32个(I架构)或16个(E架构)整数通用寄存器,其中整数寄存器x0是为常数0预留的,其他的31个或15个为普通的整数通用寄存器。
如果使用浮点模块(F或D),
告辞。
[img1]: