您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>電腦硬件>臺式機(jī)>

流水線中的相關(guān)培訓(xùn)教程[2]

2010年04月13日 15:59 wenjunhu.com 作者:佚名 用戶評論(0
關(guān)鍵字:流水線(25641)

流水線中的相關(guān)培訓(xùn)教程[2]?

ADD指令后的所有指令都要用到ADD指令的計算結(jié)果,如圖3.3.4所示, ADD 指令在 WB 段才將計算結(jié)果寫入寄存器 R1 中,但是 SUB 指令在其 ID 段就要從寄存器 R1 中讀取該計算結(jié)果,這種情況就叫做數(shù)據(jù)相關(guān)。除非有措施防止這一情況出現(xiàn),否則 SUB 指令讀到的是錯誤的值。所以,為了保證上述指令序列的正確執(zhí)行,流水線只好暫停 ADD 指令之后的所有指令,直到 ADD 指令將計算結(jié)果寫入寄存器 R1 之后,再啟動 ADD 指令之后的指令繼續(xù)執(zhí)行。

??? 從圖3.3.4還可以看到, AND 指令同樣也將受到這種相關(guān)關(guān)系的影響。 ADD 指令只有到第五個時鐘周期末尾才能結(jié)束對寄存器 R1 的寫操作,所以 AND 指令在第四個時鐘周期從寄存器 R1 中讀出的值也是錯誤的。而 XOR 指令則可以正常操作,因為它是在第六個時鐘周期讀寄存器 R1 的內(nèi)容。

??? 另外,利用DLX流水線的一種簡單技術(shù),可以使流水線順利執(zhí)行 OR 指令。這種技術(shù)就是:在 DLX 流水線中,約定在時鐘周期的后半部分進(jìn)行寄存器文件的讀操作,而在時鐘周期的前半部分進(jìn)行寄存器文件的寫操作。在本章的圖中,我們將寄存器文件的邊框適當(dāng)?shù)禺嫵商摼€來表示這種技術(shù)。

2. 通過定向技術(shù)減少數(shù)據(jù)相關(guān)帶來的暫停

??? 圖3.3.4中的數(shù)據(jù)相關(guān)問題可以采用一種稱為定向(也稱為旁路或短路)的簡單技術(shù)來解決 (動畫演示)。 定向技術(shù)的主要思想是:在某條指令(如圖3.3.4中的 ADD 指令)產(chǎn)生一個計算結(jié)果之前,其它指令(如圖3.3.4中的 SUB 和 AND 指令)并不真正需要該計算結(jié)果,如果能夠?qū)⒃撚嬎憬Y(jié)果從其產(chǎn)生的地方(寄存器文件 EX/MEM)直接送到其它指令需要它的地方(ALU 的輸入寄存器),那么就可以避免暫停。基于這種考慮,定向技術(shù)的要點可以歸納為:

??? (1) 寄存器文件 EX/MEM 中的 ALU 的運算結(jié)果總是回送到 ALU 的輸入寄存器。

??? (2) 當(dāng)定向硬件檢測到前一個 ALU 運算結(jié)果的寫入寄存器就是當(dāng)前 ALU 操作的源寄存器時,那么控制邏輯將前一個 ALU 運算結(jié)果定向到 ALU 的輸入端,后一個 ALU 操作就不必從源寄存器中讀取操作數(shù)。

圖3.3.4還表明,流水線中的指令所需要的定向結(jié)果可能并不僅僅是前一條指令的計算結(jié)果,而且還有可能是前面與其不相鄰指令的計算結(jié)果,圖3.3.5是采用了定向技術(shù)后上述例子的執(zhí)行情況,其中寄存器文件和功能單元之間的箭頭表示定向路徑。上述指令序列可以在圖3.3.5中順利執(zhí)行而無需暫停。

上述定向技術(shù)可以推廣到更一般的情況,可以將一個結(jié)果直接傳送到所有需要它的功能單元。也就是說,一個結(jié)果不僅可以從某一功能單元的輸出定向到其自身的輸入,而且還可以從某一功能單元的輸出定向到其它功能單元的輸入。

??? 在 DLX 中,任何流水線寄存器到任何功能單元的輸入都可能需要定向路徑。前面的一些數(shù)據(jù)相關(guān)的實例均是有關(guān)寄存器操作數(shù)的,但是數(shù)據(jù)相關(guān)也有可能發(fā)生在一對指令對存儲器同一單元進(jìn)行讀寫的時候。不過,本章僅討論有關(guān)寄存器的數(shù)據(jù)相關(guān)。

?3. 數(shù)據(jù)相關(guān)的分類

??? 根據(jù)指令對寄存器的讀寫順序,可以將數(shù)據(jù)相關(guān)分為三類。習(xí)慣上,這些相關(guān)是根據(jù)流水線所必須保持的訪問順序來命名的??紤]流水線中的兩條指令 i 和 j ,且 i 在 j 之前進(jìn)入流水線,由此可能帶來的數(shù)據(jù)相關(guān)有:

?

非常好我支持^.^

(1) 100%

不好我反對

(0) 0%

( 發(fā)表人:admin )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?