Datapath of RSIC-V instruction in CPU

基于伯克利CS61C,获得了一点关于CPU处理指令的新知识,记录一下。


1.R-type

对于R-type的instruction来说,在CPU的datapath中会以以下流程来被执行/操作。


 以32位CPU来说:


首先,Program counter将会从IMEM(Instruction memory)中提取新指令,然后Program Counter自身+4来记录新instruction的地址。

IMEM随后将被执行的指令的全部32位机器码传递给CPU的Control,并将instruction中数据的部分的地址(rd,rs1,rs2)分别拆开传递给Register File。 

Register File是一种寄存器阵列,可以快速获取寄存器的值,通过传递进来的Address of rd/rs1/rs2, Register File可以快速获取他们对应的value。

然后Register File将需要输出的值传递给ALU进行数据运算,而ALU具体执行哪一种运算,则是根据Control中储存的32位instruction的机器码中的func3和func7部分来决定,这也被叫做ALUsel(ALU select)。

随后ALU将执行完运算操作的值再返回给RegFile中rd的地址。从而完成整个运算。

2.I-type

I-type的instruction就是immediate-type,立即数型指令,I-type的instruction并不需要提供第三个寄存器,只需要rd,rs1。所以整个的datapath和R-type略有不同。

I-type的instruction在当IMEM传递指令给CPU的control时多了一条分支路线,IMEM会将instruction中的立即数的部分传递给一个新结构,取名为Immgen,即,immediate generator,假若CPU是32位的,那么immGen会将从instruction取下的7位立即数补位成32位的,随后将数据传递给一个MUX(数据选择器),MUX需要一个Bsel信号来判断选择是将rs2的数据传递给ALU还是immGen传递过来的立即数。

其他都与R-type一致。

具体内容可根据以下slide来学习:
https://inst.eecs.berkeley.edu/~cs61c/fa17/lec/11/L11_Datapath1%20(1up).pdf 

Comments

Popular posts from this blog

托福 TPO词汇题汇总

浮点数

缓存