第一个帖子在这里。我正在独自学习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命令。
给定的体系结构:
我想知道,是否可以用另一台机器(MIPS)命令(不是伪指令)替换add $ 5,$ 5,$ 5?
关于给定代码中的数据危险-它们是如何解决的以及用什么硬件解决?
我认为处理数据危险的一种方法是使用转发,但我不确定如何处理。关于额外的硬件,我认为需要的增加是(在转发的情况下):ALU多路复用器的额外输入(每个):MEM末尾的ALU输出,EX末尾的ALU输出和MEM末尾的存储器输出。 MEM结束。
试图独自学习计算机体系结构,这往往很复杂。非常感谢您的解释
非常感谢您,尽我最大的努力。