2

我正在学习 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  |          |              |
 -----------------------------------------------------------------------

我的问题是首先,这张表是否正确?我觉得奇怪的是这些指令不需要寄存器写入来更改寄存器的内容。如果这张桌子不正确,有人可以帮我看看正确的桌子是什么样的吗?

4

1 回答 1

2

等的立即指令addi/ori/lui确实需要将它们的结果写入寄存器文件。例如:addi $dest, $src, immd_val。对于该指令,其中一个操作数是立即数。所以计算将是,$dest = $src + immd_val。如您所见,结果必须写回 register $dest。您走在正确的轨道上,您需要适当地修改您的表格。

有些指令不需要将结果写回寄存器文件,如分支、存储、比较等。

于 2011-09-04T14:31:45.583 回答