流水線中的相關(guān)培訓(xùn)教程[2]
流水線中的相關(guān)培訓(xùn)教程[2]?
ADD指令后的所有指令都要用到ADD指令的計(jì)算結(jié)果,如圖3.3.4所示, ADD 指令在 WB 段才將計(jì)算結(jié)果寫入寄存器 R1 中,但是 SUB 指令在其 ID 段就要從寄存器 R1 中讀取該計(jì)算結(jié)果,這種情況就叫做數(shù)據(jù)相關(guān)。除非有措施防止這一情況出現(xiàn),否則 SUB 指令讀到的是錯(cuò)誤的值。所以,為了保證上述指令序列的正確執(zhí)行,流水線只好暫停 ADD 指令之后的所有指令,直到 ADD 指令將計(jì)算結(jié)果寫入寄存器 R1 之后,再啟動(dòng) ADD 指令之后的指令繼續(xù)執(zhí)行。
??? 從圖3.3.4還可以看到, AND 指令同樣也將受到這種相關(guān)關(guān)系的影響。 ADD 指令只有到第五個(gè)時(shí)鐘周期末尾才能結(jié)束對(duì)寄存器 R1 的寫操作,所以 AND 指令在第四個(gè)時(shí)鐘周期從寄存器 R1 中讀出的值也是錯(cuò)誤的。而 XOR 指令則可以正常操作,因?yàn)樗窃诘诹鶄€(gè)時(shí)鐘周期讀寄存器 R1 的內(nèi)容。
??? 另外,利用DLX流水線的一種簡(jiǎn)單技術(shù),可以使流水線順利執(zhí)行 OR 指令。這種技術(shù)就是:在 DLX 流水線中,約定在時(shí)鐘周期的后半部分進(jìn)行寄存器文件的讀操作,而在時(shí)鐘周期的前半部分進(jìn)行寄存器文件的寫操作。在本章的圖中,我們將寄存器文件的邊框適當(dāng)?shù)禺嫵商摼€來表示這種技術(shù)。
2. 通過定向技術(shù)減少數(shù)據(jù)相關(guān)帶來的暫停
??? 圖3.3.4中的數(shù)據(jù)相關(guān)問題可以采用一種稱為定向(也稱為旁路或短路)的簡(jiǎn)單技術(shù)來解決 (動(dòng)畫演示)。 定向技術(shù)的主要思想是:在某條指令(如圖3.3.4中的 ADD 指令)產(chǎn)生一個(gè)計(jì)算結(jié)果之前,其它指令(如圖3.3.4中的 SUB 和 AND 指令)并不真正需要該計(jì)算結(jié)果,如果能夠?qū)⒃撚?jì)算結(jié)果從其產(chǎn)生的地方(寄存器文件 EX/MEM)直接送到其它指令需要它的地方(ALU 的輸入寄存器),那么就可以避免暫停?;谶@種考慮,定向技術(shù)的要點(diǎn)可以歸納為:
??? (1) 寄存器文件 EX/MEM 中的 ALU 的運(yùn)算結(jié)果總是回送到 ALU 的輸入寄存器。
??? (2) 當(dāng)定向硬件檢測(cè)到前一個(gè) ALU 運(yùn)算結(jié)果的寫入寄存器就是當(dāng)前 ALU 操作的源寄存器時(shí),那么控制邏輯將前一個(gè) ALU 運(yùn)算結(jié)果定向到 ALU 的輸入端,后一個(gè) ALU 操作就不必從源寄存器中讀取操作數(shù)。
圖3.3.4還表明,流水線中的指令所需要的定向結(jié)果可能并不僅僅是前一條指令的計(jì)算結(jié)果,而且還有可能是前面與其不相鄰指令的計(jì)算結(jié)果,圖3.3.5是采用了定向技術(shù)后上述例子的執(zhí)行情況,其中寄存器文件和功能單元之間的箭頭表示定向路徑。上述指令序列可以在圖3.3.5中順利執(zhí)行而無需暫停。
上述定向技術(shù)可以推廣到更一般的情況,可以將一個(gè)結(jié)果直接傳送到所有需要它的功能單元。也就是說,一個(gè)結(jié)果不僅可以從某一功能單元的輸出定向到其自身的輸入,而且還可以從某一功能單元的輸出定向到其它功能單元的輸入。
??? 在 DLX 中,任何流水線寄存器到任何功能單元的輸入都可能需要定向路徑。前面的一些數(shù)據(jù)相關(guān)的實(shí)例均是有關(guān)寄存器操作數(shù)的,但是數(shù)據(jù)相關(guān)也有可能發(fā)生在一對(duì)指令對(duì)存儲(chǔ)器同一單元進(jìn)行讀寫的時(shí)候。不過,本章僅討論有關(guān)寄存器的數(shù)據(jù)相關(guān)。
?3. 數(shù)據(jù)相關(guān)的分類
??? 根據(jù)指令對(duì)寄存器的讀寫順序,可以將數(shù)據(jù)相關(guān)分為三類。習(xí)慣上,這些相關(guān)是根據(jù)流水線所必須保持的訪問順序來命名的。考慮流水線中的兩條指令 i 和 j ,且 i 在 j 之前進(jìn)入流水線,由此可能帶來的數(shù)據(jù)相關(guān)有:
?
非常好我支持^.^
(1) 100%
不好我反對(duì)
(0) 0%
相關(guān)閱讀:
- [電子說] 淺析OpenVINO 2024.5的新功能 2024-11-25
- [電子說] 工業(yè)讀碼器解決方案在自動(dòng)化流水線上掃描條碼的應(yīng)用 2024-11-20
- [電子說] SMT流水線布局優(yōu)化技巧 2024-11-14
- [電子說] 工業(yè)流水線的智能助手——智能計(jì)數(shù),效率倍增 2024-11-06
- [電子說] 流水線中Half-Buffer與Skid-Buffer的使用 2024-11-05
- [電子說] 使用PVA引擎優(yōu)化自動(dòng)駕駛汽車CV開發(fā)流水線 2024-11-05
- [電子說] 簡(jiǎn)述光電開關(guān)在流水線上的應(yīng)用BR100-DDT如計(jì)數(shù)等 2024-10-31
- [電子說] 工廠自動(dòng)化流水線上安裝固定式工業(yè)掃描器有什么好處? 2024-10-30
( 發(fā)表人:admin )