《RISC-V指令集指南手册》是一本全面介绍RISC-V架构及其指令系统的权威资料,适合硬件设计者、软件开发者及计算机科学爱好者阅读。
### RISC-V指令集手册知识点概述
#### 一、RISC-V指令集手册基本信息与版本迭代
**手册名称**:RISC-V指令集手册
**版本**:2.1 版
**出版时间**:2016年5月31日
**作者**:Andrew Waterman, Yunsup Lee, David Patterson, Krste Asanović
**所属机构**:University of California, Berkeley
#### 二、RISC-V指令集手册主要内容
##### 2.1 版本更新内容:
- **注释部分补充和完善**
- **章节版本管理优化**,每一章都有独立的版本号
- **长指令编码调整**,对超过64位的长指令格式进行了修改以避免移动rd区分符
- **CSR指令描述方式变更**:使用基本整数格式来表示,并引入了计数器寄存器。
- **SCALL和SBREAK指令重命名**为ECALL和EBREAK,编码与功能保持不变。
- **浮点NaN处理规则澄清**
- 明确规定当发生溢出时从浮点到整型转换后的返回值
- 更详细地定义了LRSC(Load-ReserveStore-Conditional)操作在各种情况下的行为规范
- 提出了RV32E ISA提案,减少整数寄存器数量以适应特定需求。
- **调用约定修订**:放宽软浮点调用时的栈对齐要求,并详细描述了RV32E调用约定
- 更新C压缩扩展提案至版本1.9
##### 2.0 版本主要内容:
- 将ISA分为一个整数基本内核和多个标准扩展。
- **指令格式重组**以提高立即数编码效率。
- 定义为小端存储器系统,而大端、双端被视为非标准变体
- 引入Load-ReservedStore-Conditional(LRSC)原子操作指令集
- AMO和LRSC支持释放一致性模型
- **FENCE指令**:增加细粒度的内存与IO序列化控制功能。
- 加入fetch-and-XOR AMO,调整AMOSWAP编码以优化性能
- 使用AUIPC替代RDNPC,并改进JAL指令格式及目标寄存器设置
- 简化了JALR的设计并允许存储更多数据于函数指针中
- 重命名部分浮点指令:MFTX.S、MFTX.D分别更名为FMV.X.S、FMV.X.D;MXTF.S、MXTF.D改为FMV.S.X和FMV.D.X;
- MFFSR与MTFSR改名为FRCSR和FSCSR
- 新增独立访问fcsr寄存器舍入模式及状态位的指令:FRRM, FSRM, FRFLAGS 和 FSFLAGS
#### 三、RISC-V指令集手册的意义与应用价值
该手册不仅为设计者提供了详细的规范,还给软硬件开发者和研究学者提供了一个深入了解架构的机会。通过持续更新,它确保了体系结构的稳定性和兼容性,并展示了社区对这一领域的贡献和支持。这有助于促进RISC-V生态系统的发展壮大。