我正在学习MIPS中的流水线技术。我对立即指示及其指示过程有疑问。我一直在阅读ori / addi / lui并且是即时指令或I型。我还发现I型指令只需要MIPS 5阶段过程的前三个阶段。如下所示
|instruction memory|register read|ALU op|DataMemory|Register Write|
|------------------------------------------------------------------
addi| X | X | X | | |
-----------------------------------------------------------------------
ori | X | X | X | | |
-----------------------------------------------------------------------
lui | X | X | X | | |
-----------------------------------------------------------------------
我的问题是第一,这张桌子是否正确?我觉得奇怪的是,这些指令不需要寄存器写操作来改变寄存器的内容。如果这张表不对,有人可以帮我找一下正确的表格吗?
答案 0 :(得分:2)
addi/ori/lui
等的直接指令确实需要将其结果写入寄存器文件。例如:addi $dest, $src, immd_val
。对于此指令,其中一个操作数是立即值。所以计算将是$dest = $src + immd_val
。如您所见,结果必须写回寄存器$dest
。你走在正确的轨道上,你需要适当地修改你的桌子。
有些指令不需要将结果写回寄存器文件,如分支,存储,比较等。