RISC-V 架构适配知识库
  • 睿迁工具集
  • RVSmartPorting
  • 简体中文
  • English (US)
在 Gitee 上查看
  • 睿迁工具集
  • RVSmartPorting
  • 简体中文
  • English (US)
在 Gitee 上查看
  • 简介
    • 贡献规范
  • 入门
    • 内存一致性模型
    • 硬件开发板差异
    • 指令集模块
  • 通用调整
    • 检查项目对多架构的支持性
    • 文件结构调整
    • 目录结构调整
    • 测试用例调整
  • C/C++ 程序
    • 内联汇编
    • 宏定义与判断
    • 移位运算中的整形常数
    • Intrinsic 函数
    • 多版本函数
    • 系统调用
  • 汇编程序
  • 编译配置文件
    • rpmbuild
    • Makefile
    • CMake
    • Autoconf
    • QMake
    • 其它
  • 其它编程语言
    • Rust
    • Go
    • Python
    • 其它语言
  • 辅助工具集
    • 目标代码定位工具
    • 汇编指令翻译工具

RISC-V 指令集模块

TODO

本章需要补充各指令集间的主要差异。

另外,如果能有一个 交互式表格,用于筛选不同扩展集下支持的指令是最好的。

RISC-V 指令集采用模块化设计,分为以下三类:

  • 基础指令集:主要规定了基本控制流、寄存器操作(及其大小)、内存和寻址操作、逻辑操作、 整数运算操作和各种必要的辅助指令。
  • 标准扩展指令集:由 RISC-V 基金会审查、批准和发布的扩展指令集,与基础指令集不发生任何冲突。
  • 自定义扩展指令集:由硬件厂商自行设计添加的扩展指令集,无需经过任何第三方的审查、批准流程。

对于 基础指令集 和 标准扩展指令集 而言,每个指令集模块都有属于各自的独立版本号, 并分为 正式批准 (Ratified)、冻结 (Frozen) 和 开放 (Open) 三种状态:

  • 正式批准 (Ratified):指令集模块已经过 RISC-V 基金会审查、批准并加入 RISC-V 指令集规范
  • 冻结 (Frozen):指令集模块已基本定稿,不再做过多的修改,只进行必要的安全与性能更新
  • 开放 (Open):指令集模块仍可接受新的修改提案。

对于底层系统软件开发者而言,如果需要使用 RISC-V 架构的原始指令,需要注意尽可能使用处于 “正式批准”或“冻结”状态的指令。

基础指令集

下表展示了截至 2022 年 11 月的 RISC-V 基础指令集及其发行状态。

模块名称描述版本状态指令数量
RV32I32 位基本整数指令集2.1批准40
RV32E32 位基本整数指令集 (嵌入式,16 寄存器)1.9开放40
RV64I64 位基本整数指令集2.1批准15
RV128I128 位基本整数指令集1.7开放15

标准扩展指令集

下表展示了截至 2022 年 11 月的 RISC-V 标准扩展指令集及其发行状态。

模块名称描述版本状态指令数量
MStandard Extension for Integer Multiplication and Division2.0批准8 (RV32)
13 (RV64)
AStandard Extension for Atomic Instructions2.1批准11 (RV32)
22 (RV64)
FStandard Extension for Single-Precision Floating-Point2.2批准26 (RV32)
30 (RV64)
DStandard Extension for Double-Precision Floating-Point2.2批准26 (RV32)
32 (RV64)
ZicsrControl and Status Register (CSR)2.0批准6
ZifenceiInstruction-Fetch Fence2.0批准1
GShorthand for the IMAFDZicsr_Zifencei base and extensions——
QStandard Extension for Quad-Precision Floating-Point2.2批准28 (RV32)
32 (RV64)
LStandard Extension for Decimal Floating-Point0.0开放
CStandard Extension for Compressed Instructions2.0批准40
BStandard Extension for Bit Manipulation1.0批准43
JStandard Extension for Dynamically Translated Languages0.0开放
TStandard Extension for Transactional Memory0.0开放
PStandard Extension for Packed-SIMD Instructions0.9.10开放
VStandard Extension for Vector Operations1.0冻结187
KStandard Extension for Scalar Cryptography1.0.1批准49
NStandard Extension for User-Level Interrupts1.1开放3
HStandard Extension for Hypervisor1.0批准15
SStandard Extension for Supervisor-level Instructions1.12批准4
ZamMisaligned Atomics0.1开放
ZtsoTotal Store Ordering0.1冻结
编辑本页面
最后更新时间:
贡献者: LightningRS
Prev
硬件开发板差异

本知识库采用 木兰开放作品许可协议 署名-相同方式共享 第1版 进行许可

版权所有 © 2025 RVSmartPorting. | 京ICP备20005262号 | beian京公网安备11010802043677号