未检测到 RAW、WAW 和 WAR 依赖项
RAW, WAW, and WAR dependencies not detected
考虑以下汇编语言程序:
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,和WARdependencies.Show这些。
我已经解决了这个问题:
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)
然而我在互联网上找到了练习的解决方案,并指出:
•write-write: I1, I3
•read-write: I2, I3
•write-read: I1. I2
我真的不明白他们是如何得出这个解决方案的,以及为什么它似乎缺少这么多 RAW 依赖项。哪种解决方案是正确的?我的还是他们的?
好的,在与几个了解此类问题的人交谈后,他们确认我的解决方案是正确的,而解决方案书中的那个是错误的。此外,我在网上找到了针对同一问题的另一种解决方案,这里是 link:http://www.ida.liu.se/~TDDI03/lecture-notes/seminar-2.frm.pdf
希望它能帮助像我一样压力大的其他人! :D
register(intruction #, instruction #)
格式的危害是:
- WAW:
R3(1,3)
- WAR:
R3(2,3)
- RAW:
R3(1,2), R3(1,3), R3(3,4), R8(2,5), R9(4,5)
考虑以下汇编语言程序:
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,和WARdependencies.Show这些。
我已经解决了这个问题:
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)
然而我在互联网上找到了练习的解决方案,并指出:
•write-write: I1, I3
•read-write: I2, I3
•write-read: I1. I2
我真的不明白他们是如何得出这个解决方案的,以及为什么它似乎缺少这么多 RAW 依赖项。哪种解决方案是正确的?我的还是他们的?
好的,在与几个了解此类问题的人交谈后,他们确认我的解决方案是正确的,而解决方案书中的那个是错误的。此外,我在网上找到了针对同一问题的另一种解决方案,这里是 link:http://www.ida.liu.se/~TDDI03/lecture-notes/seminar-2.frm.pdf
希望它能帮助像我一样压力大的其他人! :D
register(intruction #, instruction #)
格式的危害是:
- WAW:
R3(1,3)
- WAR:
R3(2,3)
- RAW:
R3(1,2), R3(1,3), R3(3,4), R8(2,5), R9(4,5)