2013-12-15 47 views
0

我目前正在攻讀明天要考試,需要一些幫助瞭解以下內容:管道的危害問題


下面的程序給出:

ADDF R12,R13,R14

ADD R1,R8,R9

MUL R4,R2,R3

MUL R5,R6,R7

ADD R10,R5,R7

ADD R11,R2,R3

查找可能出現的潛在conficts如果體系結構具有:

一)無流水線

二)管道

c)多路管線


所以對於(B)我想說的第5行的指令是數據危害,因爲它取R5的值,它是從給定的乘法結果的前行,所以該指令還沒有完了。

但是如果架構沒有管道,會發生什麼?我最好的猜測是沒有危險存在,但我不確定。

另外,如果它有2個或更多管道,會發生什麼?

乾杯。

回答

0

對於a)沒有危險,因爲每條指令都必須在下次啓動前完成,這是正確的。

對於b):

  • 有線4和5
  • 之間的「讀寫後」依賴有「讀讀後」線4和5之間,並且還線2之間的依賴關係和6.

我懷疑部分b)和c)之間的區別在於,問題假設您提前知道管道有明確的階段數。例如,我們知道,如果管線有3個階段,那麼第2行和第6行之間的RAR依賴關係是不相關的。

然而,在一個有多個管道的系統中,系統可以在每個循環中讀取4條指令,從而形成現在潛在危險之間形式上相距太遠的依賴關係。

+0

我相信(c)意味着並行流水線。 – Chris

+0

順便說一句,閱讀後閱讀是一種危險? – Chris

+0

RAR不一定是一種危險,但它是一種依賴性 –