文章目录
-
- Overview
- [1. Ratified ISA Specifications(已批准的 ISA 规范)](#1. Ratified ISA Specifications(已批准的 ISA 规范))
- [2. Ratified Profiles Specification(已批准的配置文件规范)](#2. Ratified Profiles Specification(已批准的配置文件规范))
- [3. Ratified Non-ISA Specifications(已批准的非 ISA 规范)](#3. Ratified Non-ISA Specifications(已批准的非 ISA 规范))
- [4. 三者的联系](#4. 三者的联系)
- [5. 结论](#5. 结论)
Overview
本文将详细介绍 RISCV 下面三个文档 三者之间的区别与联系
Ratified ISA Specifications
Ratified Profiles Specification
Ratified Non-ISA Specifications
在 RISC-V 生态系统中,RISC-V 文档通常分为三大类,分别是:
-
Ratified ISA Specifications(已正式批准的 ISA 规范)
-
Ratified Profiles Specification(已正式批准的 配置文件规范)
-
Ratified Non-ISA Specifications(已正式批准的 非 ISA 规范)
这些文档 相互关联但侧重点不同,它们共同定义了 RISC-V 的架构标准,使其具备良好的兼容性和可扩展性。
1. Ratified ISA Specifications(已批准的 ISA 规范)
定义
-
ISA(指令集架构) 是 RISC-V 体系结构的核心部分,定义了指令集、寄存器和执行行为等基本内容。
-
这部分文档由 RISC-V International 组织批准(Ratified),是 处理器实现的基础。
内容
-
基础 ISA
RV32I
/RV64I
/RV128I
(基本整数指令集)
-
标准扩展
-
M
(整数乘除) -
A
(原子指令) -
F
/D
(单精度 / 双精度浮点) -
C
(压缩指令) -
V
(向量指令) -
Zicsr
(CSR 访问指令)
-
-
特权架构
- 定义不同模式(U/S/M),控制寄存器(CSR),异常处理等内容。
示例
assembly
# RISC-V 基础整数运算
add x1, x2, x3 # x1 = x2 + x3
lw x5, 0(x10) # 从内存加载 32 位数据到 x5
2. Ratified Profiles Specification(已批准的配置文件规范)
定义
-
Profiles(配置文件) 定义了 RISC-V 处理器应实现的最低 ISA 组合 ,以确保不同处理器的 软件兼容性。
-
通过 限定 ISA 组合,避免厂商各自扩展导致碎片化。
常见 Profile
-
RVA20(应用级 64 位)
-
包含 :
RV64I
+M
+A
+F
+D
+C
+Zicsr
+Zifencei
-
目标:运行 Linux 操作系统的通用计算芯片。
-
-
RVM20(微控制器 32 位)
-
包含 :
RV32I
+M
+C
-
目标:嵌入式设备,资源受限的微控制器。
-
示例
假设有两个 RISC-V 处理器:
-
处理器 A 支持
RV64I + M + A + F + D + C
-
处理器 B 仅支持
RV64I + M
如果我们要 运行 Linux ,按照 Profile 规范,处理器 B 就不符合 RVA20
要求,因为它缺少 A(原子)
、F(浮点)
、D(双精度)
等扩展。
3. Ratified Non-ISA Specifications(已批准的非 ISA 规范)
定义
-
Non-ISA 规范 不涉及 CPU 指令集 ,而是 RISC-V 生态系统相关标准。
-
这些标准有助于 软件、调试、存储器接口、芯片互连等领域的发展。
常见 Non-ISA 规范
-
调试标准(Debug Spec)
- 定义了 RISC-V 处理器的调试接口,例如 JTAG、调试寄存器(
dmcontrol
)。
- 定义了 RISC-V 处理器的调试接口,例如 JTAG、调试寄存器(
-
向量寄存器 ABI(Vector Calling Convention)
- 定义如何在
RVV
(RISC-V 向量扩展)环境下传递参数和返回值。
- 定义如何在
-
设备树(Device Tree Spec)
- 描述 RISC-V 处理器的硬件信息,帮助操作系统初始化。
示例
调试规范(Debug Spec)
assembly
csrr x1, dpc # 读取 Debug PC(异常返回地址)
csrw dcsr, x2 # 写入 Debug 控制状态寄存器
4. 三者的联系
总结
规范类型 | 主要作用 | 主要内容 | 示例 |
---|---|---|---|
Ratified ISA Specifications | 规定 RISC-V 指令集 | RV64I , M , F , D , C , V |
add x1, x2, x3 |
Ratified Profiles Specification | 确保不同处理器的软件兼容性 | RVA20 , RVM20 |
RV64I + M + A + F + D + C |
Ratified Non-ISA Specifications | 定义调试、软件、互连等生态标准 | 调试 , 设备树 , 存储器模型 |
csrr x1, dpc |
示例联系
假设我们有一个 运行 Linux 的 RISC-V64 处理器:
-
ISA 规范 决定了 CPU 支持哪些指令 (如
RV64I + M + A + F + D + C
)。 -
Profile 规范 确保 软件能兼容不同 RISC-V 处理器 (如
RVA20
)。 -
Non-ISA 规范 定义 如何调试、如何管理设备、如何进行 I/O 访问 (如
Debug Spec
)。
5. 结论
-
ISA 规范 是 RISC-V 处理器的核心标准 ,定义 指令集。
-
Profile 规范 确保 不同 RISC-V 处理器具有软件兼容性,避免碎片化。
-
Non-ISA 规范 规定 生态相关标准 ,如 调试、存储、芯片互连。
🚀 RISC-V 的三大规范紧密关联,共同推动 RISC-V 生态系统发展!