MIPS转发实现(困难)

MIPS转发实现(困难),mips,mips32,mips64,Mips,Mips32,Mips64,我想我理解了第一部分 (i) 。我至少对此有答案。我不确定在第二部分中,这种实现会失败在哪里?第二部分把我完全难住了。有人知道这种情况会失败吗 如果你想对第三部分有所了解,你将是我整个班级的英雄。他们都被难住了。谢谢你的意见 著名的MN-4363处理器架构师Tim FlimFlam正在努力实现基本MIPS ISA的流水线实现 (i) 为了实现转发,Tim将EX和MEM级的逻辑输出(这些逻辑输出分别表示EXMEM和MEMWB锁存器的输入)连接到IDEX寄存器的输入。他声称他将能够以这种方式覆盖任何

我想我理解了第一部分
(i) 。我至少对此有答案。我不确定在第二部分中,这种实现会失败在哪里?第二部分把我完全难住了。有人知道这种情况会失败吗

如果你想对第三部分有所了解,你将是我整个班级的英雄。他们都被难住了。谢谢你的意见

著名的MN-4363处理器架构师Tim FlimFlam正在努力实现基本MIPS ISA的流水线实现

(i) 为了实现转发,Tim将EX和MEM级的逻辑输出(这些逻辑输出分别表示EXMEM和MEMWB锁存器的输入)连接到IDEX寄存器的输入。他声称他将能够以这种方式覆盖任何依赖关系。
•该实施是否可行?
•他是否需要插入任何mux?解释
1.生产者指令是一个负载。
2.生产者指令为R型指令。3.消费者说明为R型。4.消费者指令是一个分支。5.消费者说明是一个商店

(ii)Tim声称,转发到EX-stage仅足以覆盖所有依赖项。 •提供两个实施失败的例子。
•在这种情况下,“失败”是否与违反正确性约束相对应


(iii)Tim试图确定跨管道阶段传输的最小信息量。考虑R型、数据传输和分支指令,解释每个管道寄存器的宽度,划分每个锁存器的不同字段。

不确定这是否太晚,但答案取决于第2部分中的“所有依赖项”。依赖性/危害有多种类型,即控制、数据。某些数据危险可以通过转发来修复(从MEM&&WB阶段到执行阶段。其他数据危险,如负载依赖性,无法通过转发来修复。要了解为什么会发生这种情况,请注意,MEM阶段中的加载指令将仅在该时钟周期结束时从内存中准备好输出。在同一时钟周期中,执行阶段中需要res LOAD指令的值将获得不正确的值。在这种情况下,在时钟周期内的任何时刻(如开始),alu开始执行,而内存正在“开始”提取数据。在周期结束时,内存已完成提取数据,alu也已完成与e错误的值。为了防止危险,您需要alu在数据内存完成提取时开始计算(即alu必须暂停1个周期,或者在加载和alu指令之间必须有nop。希望这有帮助!

这个问题似乎与主题无关,因为它与硬件有关。