精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>電腦硬件>臺式機>

流水線中的相關培訓教程[2]

2010年04月13日 15:59 www.nxhydt.com 作者:佚名 用戶評論(0
關鍵字:流水線(23603)

流水線中的相關培訓教程[2]?

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

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

??? 另外,利用DLX流水線的一種簡單技術,可以使流水線順利執行 OR 指令。這種技術就是:在 DLX 流水線中,約定在時鐘周期的后半部分進行寄存器文件的讀操作,而在時鐘周期的前半部分進行寄存器文件的寫操作。在本章的圖中,我們將寄存器文件的邊框適當地畫成虛線來表示這種技術。

2. 通過定向技術減少數據相關帶來的暫停

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

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

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

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

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

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

?3. 數據相關的分類

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

?

非常好我支持^.^

(1) 100%

不好我反對

(0) 0%

( 發表人:admin )

      發表評論

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

      發表評論,獲取積分! 請遵守相關規定!

      ?