目录
一.整体结构图
有很多的读写控制指令,需要分阶段来执行指令。
基本指令有LOAD,MOVE,ADD,STORE,JMP等等。
二.基本指令数据通路
(1)取指令数据通路
分四个阶段进行取指令操作
对于该指令我们需要将指令存入IR中,然后PC指向下一个地址(1)将PC的值输出,需要给出一个PCout控制信号将其送到总线,然后给出ARin控制信号将其送入AR中,同时一个Xin控制信号将其送入X寄存器中。(注意是在时钟周期到来时将其写入)
(2)选择ALU的+1控制信号将X中存放的地址进行该操作(MIPS为+4),然后输入到Z中(因为Z没有输入控制信号所以直接输入,进入其中进行锁存)。同时主存给出Read信号开始读取地址中的内容。
(3)此时我们需要将更新后的PC值返回PC,所以给出Zout输入信号进入总线,并且有PCin输入信号进行输入操作。将主存中的内容读取到DR中。
(4)我们通过DRout和IRin将DR中的值送入到IR中。当指令取出后再送到指令译码器生成操作控制信号。
(2)LOAD执行指令数据通路
同样分四个阶段进行执行操作
对于该指令我们需要将IR中的指令取出放入主存中找到对应的值,然后存入R0中(1)我们通过IRout控制信号取出指令进入总线,然后通过ARin控制信号存入AR中。
(2)进行指令再主存中的读取
(3)通过DREin信号将结果输入DR中
(4)通过DRout和R0控制信号,将结果存入R0寄存器中,Load指令操作结束。
(3)MOVE执行指令数据通路
该操作只有一个阶段
我们将10即IRA中的值传递给寄存器R1(1)通过IRout控制信号输出到总线,然后通过R1in控制信号输入到R1寄存器中。
(4)ADD执行指令数据通路
分三个阶段
将寄存器R0和R1中的值相加并返回到R0中(1)通过R0out信号将R0中的值送入总线,然后通过Xin指令锁存到X寄存器中。
(2)通过R1out控制信号将结果输入到ALU的B端,然后通过ADD控制信号,将X中的值与其相加,求得结果放入暂时寄存器Z中。
(3)通过Zout控制信号和R0in控制信号将结果转移到R0中。
(5)STORE执行指令数据通路
分三个阶段
将R0的值写入主存,地址为R2的地址(1)通过R2out和ARin信号将地址存放到AR中
(2)通过R0out和DRin信号将值存放到DR中
(3)通过主存的Write信号和DREout信号将该内容写入主存
(6)JMP执行指令数据通路
只有一个阶段
将PC跳转到1000的位置(1)立即数存放再IR中,我们通过IRout和PCin信号将该地址输入到PC中