在给定的管道式MIPS中处理数据危害

时间:2018-09-19 16:11:42

标签: mips computer-science cpu-architecture

第一个帖子在这里。我正在独自学习asm和计算机组织,遇到一个有问题的情况,在此情况下,非常感谢您的帮助。

给出以下代码,该代码可在流水线式MIPS上运行:

0x1000 loop: lw $11,4($8)
0x1004 add $4,$4,$11
0x1008 addi $8,$8,4
0x100c sw $4,0($5)
0x1010 add $5,$5,$5
0x1014 beq $8,$9,loop
0x1018 nop

给定的代码在流水线式MIPS处理器上运行。

可以假定在时钟周期的前半部分完成了对寄存器文件的写入,并且在第二阶段(指令解码阶段)完成了beq命令。

给定的体系结构:

The architecture

我想知道,是否可以用另一台机器(MIPS)命令(不是伪指令)替换add $ 5,$ 5,$ 5?

关于给定代码中的数据危险-它们是如何解决的以及用什么硬件解决?

我认为处理数据危险的一种方法是使用转发,但我不确定如何处理。关于额外的硬件,我认为需要的增加是(在转发的情况下):ALU多路复用器的额外输入(每个):MEM末尾的ALU输出,EX末尾的ALU输出和MEM末尾的存储器输出。 MEM结束。

试图独自学习计算机体系结构,这往往很复杂。非常感谢您的解释

非常感谢您,尽我最大的努力。

0 个答案:

没有答案