2014-06-05 113 views
0

我需要确定下列指令块中的依赖类型。不幸的是,我正在使用的这本书对于如何解决这个问题还不太清楚。这是我想出了:依赖类型 - MIPS /流水线

SW R16, -100(R6) --> RAW on R16 
LW R4, 8(R16)  --> WAR on R16 
ADD R5, R4, R4 --> RAW on R4 

我在正确的轨道上?即使第一条指令是管道中的第一条指令,第一条指令是否具有读写后依赖类型?

回答

1
SW R16, -100(R6) --> possible RAW on R6 and/or R16 
LW R4, 8(R16)  --> none: R16 was read in the previous instruction, 
         so it can be read safely here 

ADD R5, R4, R4 --> RAW on R4 
+0

为什么R6上有可能的RAW?另外,第一条指令中的R16不是缺乏依赖性,因为我们只是在ID阶段读取R16,并且直到下一条指令的ID阶段才再次使用它。 –

+1

我假设他的意思是“如果它们是'sw'之前的指令,可能存在RAW依赖性” –

+1

因此,假设在SW之前没有指令,前两条指令没有依赖关系? –

0

答案也取决于这些是否按顺序执行并且完成乱序(超标量)系统。