流水線中的相關(guān)培訓(xùn)教程[1]
流水線中的相關(guān)培訓(xùn)教程[1]
?學(xué)習(xí)目標(biāo)
??? 理解流水線中相關(guān)的分類及定義;
??? 掌握結(jié)構(gòu)相關(guān)的解決方法;
??? 掌握數(shù)據(jù)相關(guān)的三種類型;
??? 掌握定向技術(shù)的主要思想及應(yīng)用;
??? 掌握指令調(diào)度技術(shù);
??? 了解對(duì)DLX流水線控制的實(shí)現(xiàn)。
?
??? 正文:
?? 3.3流水線中的相關(guān)
??? 流水線中的相關(guān)是指相鄰或相近的指令因存在某種關(guān)聯(lián),后面的指令不能在原指定的時(shí)鐘周期開始執(zhí)行。一般來說,流水線中的相關(guān)主要分為如下三種類型:
??? 1. 結(jié)構(gòu)相關(guān):當(dāng)硬件資源滿足不了指令重疊執(zhí)行的要求,而發(fā)生資源沖突時(shí),就發(fā)生了
??? 結(jié)構(gòu)相關(guān)。
??? 2. 數(shù)據(jù)相關(guān):當(dāng)一條指令需要用到前面指令的執(zhí)行結(jié)果,而這些指令均在流水線中重疊
??? 執(zhí)行時(shí),就可能引起數(shù)據(jù)相關(guān)。
??? 3. 控制相關(guān):當(dāng)流水線遇到分支指令和其它能夠改變 PC 值的指令時(shí),就會(huì)發(fā)生控制相
??? 關(guān)。
??? 一旦流水線中出現(xiàn)相關(guān),必然會(huì)給指令在流水線中的順利執(zhí)行帶來許多問題,如果不能很好地解決相關(guān)問題,輕則影響流水線的性能,重則導(dǎo)致錯(cuò)誤的執(zhí)行結(jié)果。消除相關(guān)的基本方法是讓流水線暫停執(zhí)行某些指令,而繼續(xù)執(zhí)行其它一些指令。
??? 在后面的討論中,我們約定:當(dāng)一條指令被暫停時(shí),在該暫停指令之后發(fā)射的所有指令都要被暫停,而在該暫停之前發(fā)射的指令則可繼續(xù)進(jìn)行,在暫停期間,流水線不會(huì)取新的指令。
?
?3.3.1流水線的結(jié)構(gòu)相關(guān)
??? 如果某些指令組合在流水線中重疊執(zhí)行時(shí),產(chǎn)生資源沖突,則稱該流水線有結(jié)構(gòu)相關(guān)。為了能夠在流水線中順利執(zhí)行指令的所有可能組合,而不發(fā)生結(jié)構(gòu)相關(guān),通常需要采用流水化功能單元的方法或資源重復(fù)的方法。
??? 許多流水線機(jī)器都是將數(shù)據(jù)和指令保存在同一存儲(chǔ)器中。如果在某個(gè)時(shí)鐘周期內(nèi),流水線既要完成某條指令對(duì)數(shù)據(jù)的存儲(chǔ)器訪問操作,又要完成取指令的操作,那么將會(huì)發(fā)生存儲(chǔ)器訪問沖突問題 (如圖3.3.1所示),產(chǎn)生結(jié)構(gòu)相關(guān)。為了解決這個(gè)問題,可以讓流水線完成前一條指令對(duì)數(shù)據(jù)的存儲(chǔ)器訪問時(shí),暫停取后一條指令的操作 (如圖3.3.2所示)。該周期稱為流水線的一個(gè)暫停周期。暫停周期一般也稱為流水線氣泡,或簡稱為氣泡。從圖3.3.2可以看出,在流水線中插入暫停周期可以消除這種結(jié)構(gòu)相關(guān)。
??? 也可以用如圖3.3.3所示的時(shí)空?qǐng)D來表示上述暫停情況。
? 由上可知,為消除結(jié)構(gòu)相關(guān)而引入的暫停將影響流水線的性能。為了避免結(jié)構(gòu)相關(guān),可以考慮采用資源重復(fù)的方法。比如,在流水線機(jī)器中設(shè)置相互獨(dú)立的指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器;也可以將 Cache 分割成指令 Cache 和數(shù)據(jù) Cache。
??? 假設(shè)不考慮流水線其它因素對(duì)流水線性能的影響,顯然如果流水線機(jī)器沒有結(jié)構(gòu)相關(guān),那么其 CPI 也較小。然而,為什么有時(shí)流水線設(shè)計(jì)者卻允許結(jié)構(gòu)相關(guān)的存在呢?主要有兩個(gè)原因:一是為了減少硬件代價(jià),二是為了減少功能單元的延遲。如果為了避免結(jié)構(gòu)相關(guān)而將流水線中的所有功能單元完全流水化,或者設(shè)置足夠的硬件資源,那么所帶來的硬件代價(jià)必定很大。
??? 3.3.2流水線的數(shù)據(jù)相關(guān)
??? 1. 數(shù)據(jù)相關(guān)簡介
??? 當(dāng)指令在流水線中重疊執(zhí)行時(shí),流水線有可能改變指令讀/寫操作數(shù)的順序,使得讀/寫操作順序不同于它們非流水實(shí)現(xiàn)的順序,這將導(dǎo)致數(shù)據(jù)相關(guān)。首先讓我們考慮下列指令在流水線中的執(zhí)行情況: ADD? R1, R2, R3
??? SUB R4, R5, R1
??? AND? R6, R1, R7
??? OR R8, R1, R9
??? XOR R10, R1,? R11
?
非常好我支持^.^
(0) 0%
不好我反對(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
- [電子說] 簡述光電開關(guān)在流水線上的應(yīng)用BR100-DDT如計(jì)數(shù)等 2024-10-31
- [電子說] 工廠自動(dòng)化流水線上安裝固定式工業(yè)掃描器有什么好處? 2024-10-30
( 發(fā)表人:admin )