RISCV基本设计理念

RISC-V

Posted by Bruce Lee on 2024-01-01

RISCV基本设计理念

并行性的重要性

未来程序员必须要成功切换到显式并行编程上面.所以我们应该要清晰的认识到并行编程的重要性.并行涉及到多个层面:指令级并行,数据级并行,线程级并行.
同时也分为硬件方面,编译方面,操作系统方面.

功耗:跟负载电容,电压平方,时钟频率有关

近30年每一次技术更新换代主要是通过减低电压,来减低功耗,同时提高时钟频率来增加性能.
由于目前功耗墙的限制,现在很难进一步减低电压.
遗留问题和现象1: 单核处理器的性能和功耗,指令级并行程度,存储器长延迟有关.
遗留问题和现象2: 多核处理器:层次化多处理器互联用于解决电源和地线的分布比例问题

并行的难点

任务分配平衡
尽量减少通信和同步的开销

关于边际收益递减定律和Amdahl定律

在改进计算机的某个方面时期望总性能的提高与改进大小成正比

边际收益递减定律的量化版本:针对特定情况的性能提升,受到被改进的特征所占比例的限制

Amdahl定律可以对程序引入并行计算的性能最大可能提升作出估算

遗留问题和现象3:低利用率的计算机具有更低功耗 (X)

面向性能的设计和面向能效的设计具有不相关的目标 (X)

即使优化的部分多消耗了一些能量,但是运行时间缩短也可以减低整个系统的能耗

用性能公式的一个子集去度量性能

性能必须是由指令数,CPI,时钟周期长度来度量.
也可以使用另一种取代时间的度量性能方法:MIPS(每秒百万条指令数)
MIPS=指令数/((执行时间)*10^6)

有一个思想很重要: 加速经常性事件

计算机硬件设计三条基本原则

简单源于规整

RISC-V中,所有的指令的操作数数量是一定的,不可改变(对两个源操作数操作,结果放在目的操作数中)

更少则更快

数量更多的寄存器可能会增加时钟周期,因为电信号传输的距离越远,所花费的时间就越长

算数运算只作用在寄存器操作数上,对于位于内存上的数据结构,需要首先执行数据传输指令

(RISC-V采用单字节寻址)

连续的双字地址相差8,双字的地址与双字内的8个字节之一的地址是相匹配的.

RISC-V采用小端(低位字节低地址处)

优秀的设计需要适当的折中

从R型指令创新出I型指令

R型指令

对于R型指令(32位),内含三个操作数字段和三个寄存器字段,每一个寄存器字段都占据5位,刚好可以索引x0到x31所有的32个寄存器.
此类指令格式适应于所有的操作数都是寄存器的操作,不带常数.如算术指令
指令格式:
funct7 rs2 rs1 funct3 rd opcode
7 5 5 3 5 7

I型指令

对于R型指令的缺陷(当操作中有一个操作数是常数时,由于rs1,rs2或者rd的占据位数限制,常数的范围只有0-31,这个范围太小了,对于实际工作没有太大的用处),所以这将我们的设计引向了最终的设计原则:优秀的设计需要适当的折中.

所以我们并不是所有的指令的三个操作数都是寄存器,如加载指令,带常数的算数指令(addi)

指令格式:
imm rs2 funct3 rd opcode
12 5 3 5 7
两个寄存器,一个立即数字段

S型指令

S型指令与I型指令的操作数类型类似,同样需要两个操作数字段和一个常数字段,但是没有rd字段

指令格式:
imm[11:5] rs2 rs1 funct3 imm[4:0] opcode
7 5 5 3 5 7

这个字段分布与R型指令的字段分布一致,保持了rs2,rs1的字段位置相同,该S型指令,适用于存储指令.

尽可能的保持字段的位置相同,减低了硬件的复杂性

遗留问题和现象4:S型指令和I型指令都是应用与有常数的指令格式,并且S指令格式和I指令格式的字段内容一致,为何字段的位置分布不一致.S型的字段分布与R型更加相近,为何I型不一致呢

遗留问题和现象5:addi中的immetiate字段是二进制补码整数,所以没有subi指令

计算机构建基于两个基本原则

1.指令是以数字形式表示
2.程序和数据一样保存在存储器中进行读写.

计算机与简单计算器的区别在于它的决策能力

基本块,编译的基本工作之一

没有任何分支,分支目标,分支标签的连续的指令序列
编译器的基本工作之一就是将程序划分为基本块

B型指令

beq,bne,blt,bge,bltu,bgeu这类指令为B型指令.
尽管这类指令也带有常数.当并不是I型指令


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. All the images used in the blog are my original works or AI works, if you want to take it,don't hesitate. Thank you !