RISC-V用户级指令集体系结构2.1版解析
需积分: 50 122 浏览量
更新于2024-08-09
收藏 3.65MB PDF 举报
"RISC-V指令集手册卷1:用户级指令集体系结构(User-LevelISA)2.1版"
RISC-V是一种开放源代码的指令集架构(ISA),旨在提供简洁、高效的设计,同时允许未来扩展。这篇文档是关于RISC-V用户级ISA的详细描述,涵盖了从1.0版到2.0版的重要更新和改进。
在2.1版中,RISC-V的用户级ISA保持了核心的稳定性,尤其是基础用户级ISA和2.0版的通用扩展IMAFDQ没有发生变化。其中,IMA代表Integer(整数)、Load-Store(加载-存储)、Atomic(原子)、Floating-point(浮点)、Double-precision(双精度),FDQ则表示Floating-point(浮点)、Density(密度)、Quad(四倍精度)。
在2.0版中,RISC-V ISA经历了一系列的改进:
1. **ISA的划分**:将ISA拆分为一个整数基本内核和多个标准扩展,以更好地管理和扩展。
2. **指令格式优化**:优化了指令格式,使立即数编码更有效率,有助于提高代码密度和执行效率。
3. **内存模型**:基本的ISA现在定义为小端存储系统,大端和双端作为非标准变种。LR/SC(Load-Reserved/Store-Conditional)指令被添加到原子指令集中,用于实现更高级别的并发操作。
4. **AMO和LR/SC**:这两类指令支持释放一致性模型,增强了并发控制。
5. **FENCE指令**:提供了细粒度的内存和I/O序列化,确保了数据一致性。
6. **AMO指令**:加入了fetch-and-XOR操作(AMOXOR),并修改了AMOSWAP的编码,为未来的扩展预留了空间。
7. **AUIPC和JAL指令**:AUIPC(Add Upper Immediate to PC)指令现在可以添加20位立即数到程序计数器,替代了RDNPC,简化了位置无关代码的编写。JAL(Jump And Link)指令移到U类型格式,具有显式的目标寄存器,J指令由 rd=x0 的JAL指令取代,减少了ISA的复杂性。
8. **JALR指令**:移除了静态提示,简化了调用约定。
自上一版本以来,文档还进行了一些补充和澄清,包括:
- **注释的增加和改进**:提供了更丰富的解释和说明。
- **章节独立版本号**:每个章节都有自己的版本号,便于追踪更新。
- **长指令编码的修改**:避免了在非常长的指令格式中rd字段的移动。
- **CSR(Control and Status Registers)指令**:现在使用基本整数格式描述,并引入了计数器寄存器。
- **SCALL和SBREAK指令**:重命名为ECALL和EBREAK,但编码和功能未变。
- **浮点NaN处理**:明确了浮点NaN的处理方式和新的规定NaN值。
- **浮点到整数转换溢出**:清晰说明了溢出时的返回值。
- **LR/SC指令**:明确了成功和失败的条件,包括在压缩指令序列中的使用。
- **RV32E提案**:提出了一种新的RV32E基本ISA,减少整数寄存器的数量。
- **调用约定修订**:对函数调用和返回的约定进行了调整。
- **软浮点调用约定**:放宽了栈对齐要求,描述了RV32E调用约定。
- **C压缩扩展提案**:提出了修订后的C压缩扩展版本1.9。
这些变更和改进确保了RISC-V的用户级ISA不仅保持了其简洁性和高效性,而且增加了灵活性和扩展性,以适应各种应用场景和未来的技术发展。
2024-06-30 上传
2021-06-30 上传
2018-05-12 上传
2023-06-01 上传
2023-07-28 上传
2023-09-16 上传
2023-07-20 上传
2024-05-24 上传
2023-03-16 上传
Big黄勇
- 粉丝: 64
- 资源: 3905
最新资源
- matlabresample代码-xdf-EEGLAB:用于EEGLAB的xdf导入器
- 车辆_追踪_yolov5_+_deepsort_车辆追踪_Vehicle_tracking_yolov5
- Inovace.github.io:测试网站
- client_variable:在JavaScript中使用Rails变量
- migs-beta-0.1.zip_WEB开发_PHP_
- Java毕设之springboot001二次元商品购物商城.rar
- StandardScripts:Fiber-The Programmable Git Client的脚本集合。 这些脚本是与存储库的仅用于版本控制的基本交互
- 小程序开发-健康菜谱.zip
- matlab好玩的代码-LANE:标签知情属性网络嵌入,WSDM2017
- yolov5_车牌检测___车牌识别___中文车牌识别_检测_
- CMI.zip_CMI编码_cmi_cmi编码VHDL_cmi解码
- turtles2:尝试使计算机工作更加理智
- 简约灰素雅大气中国风总结汇报ppt模板
- JAVA多线程与线程安全实践-基于Http协议的断点续传.rar
- coroutine_firing_range-kt
- 多表汇总排序程序+excel格式转换+python离线配置文件.rar