我正在学习MIPS中的流水线技术。我有一个关于即时指令及其指令流程的问题。我一直在读ori/addi/lui,并且是即时指令或I-type。我还不断发现,I型指令只需要MIPS 5阶段过程的前三个阶段。如下所示
|instruction memory|register read|ALU op|DataMemory|Register Write|
|------------------------------------------------------------------
addi| X | X | X | | |
-----------------------------------------------------------------------
ori | X | X | X | | |
-----------------------------------------------------------------------
lui | X | X | X | | |
-----------------------------------------------------------------------
我的第一个问题是,这张表正确吗?我发现奇怪的是,这些指令不需要寄存器写来改变寄存器的内容。如果这张桌子不正确,有人能帮我看看正确的桌子是什么样子的吗?
发布于 2011-09-04 22:31:46
addi/ori/lui
等的即时指令需要将其结果写入寄存器文件。例如:addi $dest, $src, immd_val
。对于此指令,其中一个操作数是立即值。所以计算结果是,$dest = $src + immd_val
。如您所见,结果必须写回寄存器$dest
。你在正确的轨道上,你需要适当地修改你的表。
有一些指令不需要将结果写回寄存器堆,如分支、存储、比较等。
https://stackoverflow.com/questions/6657733
复制相似问题