通过与超标量架构相关的练习,我正在按照自己的方式工作。我需要一些帮助来概念化这个问题的答案:
“如果您对寄存器重命名器必须做什么感到困惑,请返回您正在执行的汇编代码,并问自己必须发生什么才能获得正确的结果。例如,考虑一个三路超标量机器同时重命名这三个指令:
ADDI R1, R1, R1 ADDI R1, R1, R1 ADDI R1, R1, R1
如果 R1 的值一开始是 5,那么这个序列执行完后它的值应该是多少?”</p>
我可以看一下,好吧,R1 的最终值应该是 40。但是,三路超标量机如何达到这个答案?如果我理解正确的话,在这个三路超标量流水线中,这三个指令将被并行获取。意思是,你从一开始就会有危险,对吧?我应该如何概念化这个问题的答案?
编辑 1:在解码这些指令时,三路超标量机必须执行寄存器重命名以获得以下指令集,正确:
ADDI R1, R2, R3 ADDI R4, R5, R6 ADDI R1, R2, R3