MIPS 流水线和控制

问题描述 投票:0回答:1

我们得知命令 add $7, $15, $31 位于主存中的地址 0xFFFF0000 处。此外,假定寄存器的初始化值等于其寄存器编号乘以 8888(例如,寄存器 1 的值为 8888,寄存器 2 的值为 17776,寄存器 3 的值为 26664,等等)开)。

该命令在MIPS处理器上执行,如下图所示。

在此图中,添加了三个 NEG 组件,它们执行二进制补码(符号反转):

PC+4 加法器输出端的一个 NEG 组件。 第二个 NEG 组件位于寄存器文件中读取数据 1 的输出处。 第三个 NEG 组件位于 MemtoReg 多路复用器的下部输入(连接到 0)。 有 10 个标记,S1 到 S10。您需要以十六进制(基数 16)写入通过标记行的值。

假设在执行 add $7, $15, $31 命令时在时钟周期结束时检查信息。

未知值应标记为X。S3标记用于跳转目标的32位。 以十六进制(基数 16)形式呈现您的所有答案。 enter image description here

mips cpu-architecture
1个回答
0
投票

我得到的结果是:

S1 = 0xFFFF0000 (PC)
S2 = 0x01F7C020 (Instruction: add $7, $15, $31)
S3 = X (Not used for this instruction)
S4 = 0x0000FFFC (PC + 4 after NEG)
S5 (Read Data 1) = 0x33340, S5 (Read Data 2) = 0x1B108
S6 (ALU Input 1) = 0x33340, S6 (ALU Input 2) = 0x1B108
S7 = 0x4E448 (ALU Result)
S8 = X (Not used for this instruction)
S9 = X (Not used for this instruction)
S10 = 0xB1BB8 (Write back result after NEG)

但我不确定它是否正确 有什么建议吗? 谢谢你

© www.soinside.com 2019 - 2024. All rights reserved.