未检测到RAW,WAW和WAR依赖项

时间:2015-05-25 11:51:15

标签: assembly parallel-processing dependencies computer-science cpu-registers

考虑以下汇编语言程序:

I1: Move R3, R7      /R3 ← (R7)/  
I2: Load R8, (R3)    /R8 ← Memory (R3)/
I3: Add R3, R3, 4    /R3 ← (R3) + 4/
I4: Load R9, (R3)    /R9 ← Memory (R3)/
I5: BLE R8, R9, L3   /Branch if (R9) > (R8)/ 

该程序包括WAW,RAW和WAR依赖项。显示这些。

我已经解决了这个问题:

WAW: (I3, I1, r3) -> meaning I3 is dependant on I1 regarding r3

RAW: (I2, I1, r3); (I3, I1, r3); (I4, I3, r3); (I5, I2, r8); (I5, I4, R8)

WAR: (I3, I2, R3)

然而,我在互联网上找到了这项练习的解决方案,并表示:

  

•写 - 写:I1,I3
  •读写:I2,I3
  •写 - 读:I1。 I2

我真的不明白他们是如何找到解决方案的,以及为什么它似乎缺少这么多的RAW依赖。哪种解决方案是对的?我的还是他们的?

1 个答案:

答案 0 :(得分:2)

好的,在与几位了解这类内容的人交谈后,他们确认我的解决方案是正确的,解决方案书中的解决方案是错误的。另外,我在网上找到了针对同一问题的另一种解决方案,这里是链接:http://www.ida.liu.se/~TDDI03/lecture-notes/seminar-2.frm.pdf

希望它可以帮助那些像我一样压力的人! :d