RISC-V 指令集手册:用户级ISA详解与maven-assembly-plugin使用
需积分: 50 58 浏览量
更新于2024-08-09
收藏 3.65MB PDF 举报
"RISC-V指令集手册卷1:用户级指令集体系结构(User-LevelISA)2.1版"
RISC-V是一种精简指令集计算机(RISC)架构,其设计目的是为了提供简洁、模块化且可扩展的指令集。在RISC-V指令集体系结构中,有四种核心指令格式,即R类、I类、S类和U类。这些指令都是32位长度,并且需要在4字节边界对齐,以避免指令地址不对齐异常。不遵循这一规则的条件分支或无条件转移可能会导致异常,但若条件分支未执行,则不会触发异常。
1. **R类指令**:
R类指令包含7位的funct7、2位的rs2、2位的rs1、3位的funct3、5位的rd和6位的opcode。这种格式用于运算指令,其中源寄存器rs1和rs2以及目标寄存器rd的位置固定,便于硬件解码。
2. **I类指令**:
I类指令有12位的立即数imm[11:0],2位的rs1,3位的funct3,5位的rd和6位的opcode。它主要用于包含较小立即数的操作,例如加载和存储 immediate。
3. **S类指令**:
S类指令包含5位的imm[11:5],2位的rs2,2位的rs1,3位的funct3,5位的imm[4:0]和6位的opcode。这类指令用于存储操作,其中立即数部分被分割,以适应寄存器字段。
4. **U类指令**:
U类指令有一个20位的立即数imm[31:12]和5位的rd,以及6位的opcode。这种格式适用于需要大立即数的指令,例如加载64位立即数到寄存器。
RISC-V设计中,立即数的符号位总是位于指令的第31位,这有助于简化符号扩展电路。为了优化硬件设计,所有指令中的寄存器标识符在所有格式中都固定在同一位置,尽管这会导致立即数在指令编码中的分布不均匀,类似于SPUR RISC-IV架构。
在RISC-V用户级ISA 2.1版中,有一些显著的变化和改进,包括:
- 更多的注释和改进的文档组织。
- 每一章都有独立的版本号。
- 对于长指令编码的调整,以避免在长指令格式中移动rd标识符。
- 使用基本整数格式描述CSR(控制和状态寄存器)指令,并引入计数器寄存器。
- 更改了SCALL和SBREAK指令的名称为ECALL和EBREAK,但保留了原有的功能。
- 浮点数处理的清晰化,包括NaN的处理和浮点到整数转换的溢出行为。
- LR/SC(Load-Linked/Store-Conditional)指令的执行条件和失败条件的明确说明。
- RV32E提案,一个减少整数寄存器数量的精简版本。
- 调整了调用约定。
- 软浮点调用约定的栈对齐规则放宽,以及针对RV32E的调用约定的描述。
- C压缩扩展提案的修订,版本1.9。
RISC-V的设计旨在保持基本用户ISA和通用扩展(IMAFD)的稳定性,以确保未来版本的兼容性。自1.0版以来,ISA被分为基本整数内核和多个标准扩展,并优化了立即数编码以提高效率。
9471 浏览量
162 浏览量
114 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
锋锋老师
- 粉丝: 26
- 资源: 3838
最新资源
- servo-example-0.5.2.zip
- net.tsinghua:针对清华学生的跨平台自动登录实用程序
- 49个苹果app图标 .sketch素材下载
- 基于HTML实现的仿享客零食网触屏版html5手机wap购物网站模板下载(css+html+js+图样).zip
- 单片机太阳能路灯控制系统仿真protues
- node-simple-deploy
- HWHelpNow:hwhelpnow.com官方GitHub Repo
- yii2-widgets:Yii Framework 2.0有用的小部件集合
- 易语言复制组件到选择夹子夹
- MDB_3.0,999玫瑰c语言表白源码,c语言
- dotfiles:每天使用.dotfiles
- storemate-backend-leveldb-0.9.23.zip
- 基于ASP.net数据存储与交换系统设计(源代码+论文).rar
- Javascript-30-WesBos
- 夸克:离线时保持快乐| 世界上第一个离线搜索引擎
- Recipes