📜  门| GATE-IT-2004 |第 46 题

📅  最后修改于: 2021-09-26 03:40:05             🧑  作者: Mango

如果我们使用内部数据转发来加速 CPU 的性能(R1、R2 和 R3 是寄存器,M[100] 是内存引用),那么操作顺序q46
(一) A
(乙)
(C)
(四)答案: (D)
解释:

数据转发:在图(2)中,由于 R1 寄存器,ADD 和 SUB 指令具有数据依赖性,第 2 条和第 3 条指令在 ID 阶段读取寄存器 R1 的值,但第 1 条指令在 WB 阶段后更新 R1 的值。因此,第 2 条 SUB 指令在接下来的两个周期内停止以获取 R1 寄存器的更新值。

内部数据转发是一种减少由于数据依赖引起的停顿的机制,它使用硬件技术将级间缓冲寄存器(IBR)的结果转发到下一条指令的缓冲寄存器。 ALU 操作后结果可用(在第一条指令中),结果作为输入传输到 ALU 单元,然后 R1 的更新值在 ALU 操作后可用(否则在 WB satge 后可用),因此没有停顿。

EX/MEM 寄存器的 ALU 结果总是反馈到 ALU 输入锁存器。如果转发硬件检测到前一个 ALU 操作已写入与当前 ALU 操作的源相对应的寄存器,则控制逻辑选择转发的结果作为 ALU 输入,而不是从寄存器文件中读取的值。

正如在 Ques 中给出的那样,直接从问题中可以看出,寄存器 R1 的值被复制(或者更好地说是加载)到内存位置 M[100],然后 M[100] 的值被存储到寄存器 R2 和 R3。选项 A、B和 C 是错误的,因为它们没有产生与预期相同的结果。

正常_46

假设寄存器 R1、R2、R3 和内存引用 M[100] 的初始值分别为 10、20、30 和 40,然后在执行操作序列后,寄存器 R2、R3 和内存引用 M[100] 的值为 10 ,10 和 10。

在选项A 中,执行操作后,寄存器R2、R3 和内存引用M[100] 的值分别为20、10 和20。在选项 B 中,寄存器 R2、R3 和内存引用 M[100] 的值分别为 10,10 和 40,选项 C、寄存器 R2、R3 和内存引用 M[100] 的值分别为 20,20 和 10。但是选项 D 产生,所有寄存器和内存引用的值都与所需的值 10 相同,因此选项 (D) 仅是正确的。

该解决方案由Nirmal Bharadwaj 提供。

这个问题的测验