没有合适的资源?快使用搜索试试~ 我知道了~
首页riscv-spec中文版
资源详情
资源评论
资源推荐
RISC-V 指令集手册
卷 1:用户级指令集体系结构(User-Level ISA)
2.1 版
(翻译:要你命 3000@EETOP 翻译版本 1.0)
Andrew Waterman, Yunsup Lee, David Patterson, Krste Asanović
CS Division, EECS Department, University of California, Berkeley
{waterman|yunsup|pattrsn|krste}@eecs.berkeley.edu
2016 年 5 月 31 日
该文档同时也是 UCB/EECS-2016-118 技术报告
Copyright ©2010-2016, The Regents of the University of California. All rights reserved.
ii
序言
这是描述 RISC-V 用户级体系结构文档的 2.1 版。注意已经冻结的基本用户级 ISA 和 2.0
版的 IMAFDQ 扩展从该文档的上一个版本[30]以来并没有发生变化,但是填充了一些规范的
“空洞”以及改善了文档。对软件约定做了一些改变。
对注释部分做了大量地添加和改进。
每一章有单独的版本号。
修改了>64 位的长指令编码,以避免在非常长的指令格式里移动 rd 区分符。
现在使用基本整数格式来描述 CSR 指令,引入了计数器寄存器,不同于(以前版本)
仅在后面的浮点部分(和特权体系结构手册中)引入。
SCALL 指令和 SBREAK 指令被分别重命名为 ECALL 指令和 EBREAK 指令。它们的编码
和功能并没有改变。
澄清了浮点 NaN 的处理,以及一个新的规定的 NaN 值。
澄清了浮点到整数转换溢出时的返回值。
澄清了 LR/SC 允许的成功和要求的失败,包括在序列中使用压缩指令。
一个新的 RV32E 基本 ISA 提案,可减少整数寄存器数量。
修订了调用约定。
放松了软浮点调用约定的栈对齐,描述了 RV32E 调用约定。
一个修订的 C 压缩扩展提案,版本 1.9。
2.0 版的序言
用户指令集体系结构规范的第二个发布版本,我们试图保持这个基本的用户 ISA 加上通
用扩展(就是 IMAFD),在未来版本中保持固定不变。从这个 ISA 的 1.0 版本[29]以来,有如
下变化:
ISA 被划分为一个整数基本内核和几个标准扩展。
重新组织了指令格式,使得立即数编码更加高效。
基本的 ISA 被定义为拥有一个小端(little-endian)的存储器系统,而大端、双端作
为非标准的变种。
Load-Reserved/Store-Conditional(LR/SC)指令被添加进原子指令集扩展。
AMO 和 LR/SC 指令可以支持释放一致性模型(release consistency model)。
FENCE 指令提供了细粒度的存储器和 I/O 序列化(orderings)。
加入了 fetch-and-XOR 的 AMO(AMOXOR),对 AMOSWAP 的编码进行了修改,以便
留出空间。
将 20 位立即数加到 PC 上的 AUIPC 指令,替换了 RDNPC 指令,AUIPC 指令只读取
当前的 PC 值。这导致对位置无关代码(position-independent code)的大量简化。
JAL 指令现在被移动到 U 类型格式,具有一个显示的(explicit)目标寄存器,而 J
指令被 rd=x0 的 JAL 指令所代替。这个改变,消除了唯一一条需要隐式(implicit)
目标寄存器的指令,并且从标准 ISA 中去掉了 J 类型指令格式。这虽然是 JAL 指令
的一个附加效果,但是却极大地减少了基本 ISA 的复杂性。
去掉了 JALR 指令的静态提示(static hints)。对于使用标准调用约定编译的代码来
说,这些提示和 rd、rs1 寄存器是冗余的。
Copyright ©2010-2016, The Regents of the University of California. All rights reserved.
iii
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 指令,新增了 FRRM、FSRM、
FRFLAGS和 FSFLAGS指令,用于独立地访问 fcsr寄存器的舍入模式和异常标志。
FMV.X.S、FMV.X.D 指令现在使用 rs1 作为源操作数,而不是 rs2。这样可以简化数
据通路设计。
新增了 FCLASS.S、FCLASS.D 浮点指令。
采用了一种更简单的 NaN 生成和传播模式。
对于 RV32I,系统性能计数器被扩展成 64 位宽度,可以单独读取高 32 位和低 32
位。
定义了规定的(Canonical)NOP 和 MV 指令编码。
对于 48 位、64 位和大于 64 位指令,定义了标准指令长度编码。
新增了一个 128 位地址空间变种 RV128 的描述。
32 位基本指令格式中的大部分操作码分配给用户自定义的定制扩展。
一个印刷错误被纠正:store 的源操作数来源于 rd,其实应该来源于 rs2。
Copyright ©2010-2016, The Regents of the University of California. All rights reserved.
iv
目录
第 1 章 介绍 ........................................................................................................................... 1
1.1 RISC-V ISA 概述 ......................................................................................................... 3
1.2 指令长度编码 ........................................................................................................... 5
1.3 异常、自陷和中断 ................................................................................................... 6
第 2 章 RV32I 基本整数指令集,2.0 版 .............................................................................. 8
2.1 基本整数子集的程序员模型 ................................................................................... 8
2.2 基本指令格式 ........................................................................................................... 9
2.3 立即数编码变种 ..................................................................................................... 10
2.4 整数计算指令 ......................................................................................................... 11
整数寄存器-立即数指令................................................................................................ 12
整数寄存器-寄存器操作................................................................................................ 13
NOP 指令 ........................................................................................................................ 14
2.5 控制转移指令 ......................................................................................................... 14
无条件跳转 ..................................................................................................................... 14
条件分支 ......................................................................................................................... 15
2.6 Load 和 store 指令 .................................................................................................. 17
2.7 存储器模型 ............................................................................................................. 18
2.8 控制和状态寄存器指令 ......................................................................................... 20
CSR 指令 ......................................................................................................................... 20
定时器和计数器 ............................................................................................................. 22
环境调用和断点 ............................................................................................................. 23
第 3 章 RV32E 基本整数指令集,版本 1.9 ....................................................................... 24
3.1 RV32E 程序员模型 ................................................................................................. 24
3.2 RV32E 指令集 ......................................................................................................... 24
3.3 RV32E 扩展 ............................................................................................................. 25
第 4 章 RV64I 基本整数指令集,版本 2.0 ........................................................................ 26
4.1 寄存器状态 ............................................................................................................. 26
4.2 整数计算指令 ......................................................................................................... 26
整数寄存器-立即数指令................................................................................................ 26
整数寄存器-寄存器操作................................................................................................ 28
4.3 Load 和 Store 指令 ................................................................................................. 28
4.4 系统指令 ................................................................................................................. 29
第 5 章 整数乘法除法的“M”标准扩展,版本 2.0 ....................................................... 30
5.1 乘法操作 ................................................................................................................. 30
5.2 除法操作 ................................................................................................................. 30
第 6 章 原子性指令的“A”标准扩展,版本 2.0 ............................................................. 32
6.1 原子性操作的指定顺序 ......................................................................................... 32
6.2 Load-reserved/store-conditional 指令 .................................................................... 33
6.3 原子性存储器操作 ................................................................................................. 36
第 7 章 单精度浮点的“F”标准扩展,版本 2.0 ............................................................. 38
7.1 F 寄存器状态 .......................................................................................................... 38
7.2 浮点控制和状态寄存器 ......................................................................................... 39
Copyright ©2010-2016, The Regents of the University of California. All rights reserved.
v
7.3 NaN 生成和传递 ..................................................................................................... 40
7.4 非规格化数算术 ..................................................................................................... 41
7.5 单精度 load 和 store 指令...................................................................................... 41
7.6 单精度浮点计算指令 ............................................................................................. 41
7.7 单精度浮点转换和传输指令 ................................................................................. 42
7.8 单精度浮点比较指令 ............................................................................................. 44
7.9 单精度浮点分类指令 ............................................................................................. 44
第 8 章 双精度浮点的“D”标准扩展,版本 2.0 ............................................................ 46
8.1 D 寄存器状态 ......................................................................................................... 46
8.2 双精度 load 和 store 指令...................................................................................... 46
8.3 双精度浮点计算指令 ............................................................................................. 47
8.4 双精度浮点转换和传输指令 ................................................................................. 47
8.5 双精度浮点比较指令 ............................................................................................. 49
8.6 双精度浮点分类指令 ............................................................................................. 49
第 9 章 RV32/64G 指令集列表 ........................................................................................... 50
第 10 章 扩展 RISC-V ............................................................................................................. 55
10.1 扩展术语 ................................................................................................................. 55
标准 vs. 非标准扩展 .................................................................................................... 55
指令编码空间和前缀 ..................................................................................................... 55
绿地扩展 vs. 棕地扩展 ................................................................................................ 56
标准兼容的全局编码 ..................................................................................................... 57
保证的非标准编码空间 ................................................................................................. 57
10.2 RISC-V 扩展设计理念 ............................................................................................. 57
10.3 在固定 32 位指令格式内的扩展 ........................................................................... 58
可用的 30 位指令编码空间 ........................................................................................... 58
可用的 25 位指令编码空间 ........................................................................................... 58
可用的 22 位指令编码空间 ........................................................................................... 58
其他空间 ......................................................................................................................... 58
10.4 增加对齐的 64 位指令扩展 ................................................................................... 59
10.5 支持 VLIW 编码 ...................................................................................................... 59
定长指令组 ..................................................................................................................... 59
编码长度指令组 ............................................................................................................. 59
固定大小指令束 ............................................................................................................. 59
前缀中“组结束位” ..................................................................................................... 60
第 11 章 ISA 子集命名约定 ................................................................................................... 61
11.1 大小写敏感 ............................................................................................................. 61
11.2 基本整数 ISA ........................................................................................................... 61
11.3 指令扩展名字 ......................................................................................................... 61
11.4 版本号 ..................................................................................................................... 61
11.5 非标准扩展命名 ..................................................................................................... 62
11.6 管理员级指令子集 ................................................................................................. 62
11.7 管理员级扩展 ......................................................................................................... 62
11.8 子集命名约定 ......................................................................................................... 62
第 12 章 四精度浮点的“Q”标准扩展,版本 2.0 ............................................................ 64
剩余113页未读,继续阅读
huweixiaojie
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5