RV32I一共有6条B-type指令: 以上指令的使用形式为: # 相等时分支(分支指令)BEQ rs1, rs2, imm# 不等时分支(分支指令)BNE rs1, rs2, imm# 小于时分支(分支指令)BLT rs1, rs2, imm# 大于等于时分支(分支指令)BGE rs1, rs2, imm# 无符号小于时分支(分支指令)BLTU rs1, rs2, imm# 无符号大...
1. 逻辑指令 逻辑指令是RISC-V B扩展指令集中的核心。它包含了ANDS, ORS, XORS, ANDI, ORI, XORI三个位操作指令,能够实现各种逻辑操作,包括逻辑与、逻辑或、逻辑异或等等。 其中ANDS, ORS, XORS指令减少了指令的延时,特别适合于需要快速处理位操作的程序。ANDI, ORI, XORI指令则是用于处理立即数操作的。
RISC-V的扩展指令集同时还支持16位的压缩指令,以及长度为16位倍数的可变长度指令,为了实现对这些指令的支持,在实际的RISC-V指令集设计中,分支转移指令的偏移量都是以2字节为基本单位的,因此RISC-V的条件分支指令实际上只能访问到相对PC地址前后2^10个字范围内的指令。 为条件转移指令专门设计了一条指令格式,即B型...
指令就是我们交代CPU 要执行的操作,指令集就可以简单理解为指令的集合。我们把cpu 能够识别的指令汇总在一起就构成了一个指令集。 不同的CPU 有不同的指令集,根据他们的繁简程度可以分为两种:复杂指令集CISC和精简指令集RISC 1.2 指令集架构 指令架构(Instruction Set Architecture, 缩写为ISA),是软件和硬件的接口...
1. 指令集 1.1 指令集 指令集是一个CPU的基石,要实现CPU 计算和控制功能,就必须定义好一系列与硬件电路相匹配的指令系统. 指令就是我们交代CPU 要执行的操作,指令集就可以简单理解为指令的集合。我们把cpu 能够识别的指令汇总在一起就构成了一个指令集。
上面几点就提到不少要让编译器多做的工作,又例如 B-type 是比较跳转指令的格式,J-type 是长跳转或函数调用指令格式,注意它们的立即数排列次序,把填充这里的立即数交给了链接器的工作。这样排放偏移地址立即数是为了简化处理器的设计,但明显给编译器增加了工作。
(3)RISC-V 为无条件跳转指令专门定义了一种 J-TYPE 的指令格式,而 该格式衍生于 U-TYPE。J-TYPE 只是在 U-TYPE 的基础上,对立即数的某些 位做了位置调整。对有条件跳转指令,RISC-V 也做了类似的处理,在 S-TYPE 的基础上衍生出了 B-TYPE。这些细微的调整,可以在一定程度上降低硬件设 计的开销。
——MichaelB.Taylor,华盛顿大学教授 RISC-V是学生学习指令集架构和汇编级编程的理想选择,而它们是以后用高级语言工 作的基础。这本写得很清楚的书提供了对RISC-V的很好的介绍,再加上一些对其演化 历史的深刻见解及与其它常见架构的比较。以过去的指令集架构为鉴,RISC-V的设计 者能够避免一些不必要的、不合理的...
指令格式类型,对应的指令编码的位置:可以看到,B类型和S类型是一样的,J类型和U类型是一样的,就是...
RISC-V分支指令寻址,在之前的B类型指令就是其中之一。这种格式可以表示从-4096到4094的分支地址,以2的倍数表示。B型格式包括一个7位操作码、一个3位功能码、两个5位的寄存器操作数( rs1和 rs2)和一个12位地址立即数。该地址使用特殊的编码方式,简化了数据通路设计,但使组装变得复杂。下面这条指令 ...