資源描述:
《流水線技術(shù)--流水線中的相關(guān).ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、3.3流水線中的相關(guān)1.相關(guān)的概念流水線中的相關(guān)是指相鄰或相近的兩條指令因存在某種關(guān)聯(lián),后一條指令不能在原指定的時鐘周期開始執(zhí)行?!艚Y(jié)構(gòu)相關(guān)當(dāng)硬件資源滿足不了同時重疊執(zhí)行的指令的要求,而發(fā)生資源沖突時,就發(fā)生了結(jié)構(gòu)相關(guān)。2.相關(guān)的分類第三章流水線技術(shù)虛擬存儲器的特點◆數(shù)據(jù)相關(guān)當(dāng)一條指令需要用到前面某條指令的結(jié)果,從而不能重疊執(zhí)行時,就發(fā)生了數(shù)據(jù)相關(guān)。◆控制相關(guān)當(dāng)流水線遇到分支指令和其他能夠改變PC值的指令時,就會發(fā)生控制相關(guān)。3.幾個問題◆相關(guān)有可能會使流水線停頓。3.3流水線中的相關(guān)虛擬存儲器的特點在本章中,我們約定:當(dāng)一條指令被暫停時,暫停在其后發(fā)射
2、(流出)的指令,但繼續(xù)執(zhí)行在其前發(fā)射的指令?!粝嚓P(guān)的基本方法:讓流水線中的某些指令暫停,而讓其它指令繼續(xù)執(zhí)行。3.3流水線中的相關(guān)虛擬存儲器的特點3.3.1流水線中的結(jié)構(gòu)相關(guān)2.如果某種指令組合因資源沖突而不能順利重疊執(zhí)行,則稱該機器具有結(jié)構(gòu)相關(guān)。1.在流水線機器中,為了使各種指令組合能順利地重疊執(zhí)行,需要把功能部件流水化,并把資源重復(fù)設(shè)置。3.常見的導(dǎo)致結(jié)構(gòu)相關(guān)的原因:◆功能部件不是全流水◆重復(fù)設(shè)置的資源的份數(shù)不夠3.3流水線中的相關(guān)虛擬存儲器的特點4.結(jié)構(gòu)相關(guān)舉例:訪存沖突當(dāng)數(shù)據(jù)和指令存在同一存儲器中時,訪存指令會導(dǎo)致訪存沖突。解決辦法Ⅰ:插入
3、暫停周期(“流水線氣泡”或“氣泡”)3.3流水線中的相關(guān)虛擬存儲器的特點虛擬存儲器的特點虛擬存儲器的特點引入暫停后的時空圖3.3流水線中的相關(guān)虛擬存儲器的特點5.避免結(jié)構(gòu)相關(guān):6.有些設(shè)計方案允許有結(jié)構(gòu)相關(guān)◆所有功能單元完全流水化◆設(shè)置足夠的硬件資源硬件代價很大?!艚档统杀尽魷p少部件的延遲解決方法Ⅱ:設(shè)置相互獨立的指令存儲器和數(shù)據(jù)存儲器或設(shè)置相互獨立的指令Cache和數(shù)據(jù)Cache。3.3流水線中的相關(guān)虛擬存儲器的特點3.3.2流水線的數(shù)據(jù)相關(guān)1.數(shù)據(jù)相關(guān)簡介當(dāng)指令在流水線中重疊執(zhí)行時,流水線有可能改變指令讀/寫操作數(shù)的順序,使之不同于它們在非流水實現(xiàn)
4、時的順序,這將導(dǎo)致數(shù)據(jù)相關(guān)。數(shù)據(jù)相關(guān)舉例3.3流水線中的相關(guān)虛擬存儲器的特點虛擬存儲器的特點2.利用定向技術(shù)減少數(shù)據(jù)相關(guān)引起的暫停(1)定向技術(shù)的主要思路:在發(fā)生上述數(shù)據(jù)相關(guān)時,后面的指令并不是馬上就要用到前一條指令的計算結(jié)果。如果能夠?qū)⒂嬎憬Y(jié)果從其產(chǎn)生的地方直接送到需要它的地方,就可以避免暫停。(2)采用定向技術(shù)消除上例中的相關(guān)工作過程演示3.3流水線中的相關(guān)虛擬存儲器的特點虛擬存儲器的特點虛擬存儲器的特點(3)當(dāng)定向硬件檢測到前面某條指令的結(jié)果寄存器就是當(dāng)前指令的源寄存器時,控制邏輯會將前面那條指令的結(jié)果直接從其產(chǎn)生的地方定向到當(dāng)前指令所
5、需的位置。(4)一個功能單元的輸出不僅可以定向到其自身的輸入,而且還可以定向到其它單元的輸入。舉例3.3流水線中的相關(guān)虛擬存儲器的特點3.3流水線中的相關(guān)虛擬存儲器的特點(5)在DLX中,任何流水寄存器到任何功能單元的輸入都可能需要定向路徑。(6)當(dāng)兩條指令對存儲器同一單元進行讀寫時,也可能發(fā)生數(shù)據(jù)相關(guān)。但本章僅討論有關(guān)寄存器的數(shù)據(jù)相關(guān)。3.數(shù)據(jù)相關(guān)的分類按照指令對寄存器的讀寫順序,可以將數(shù)據(jù)相關(guān)分為以下三種類型:(考慮兩條指令i和j,假設(shè)i先進入流水線)3.3流水線中的相關(guān)虛擬存儲器的特點虛擬存儲器的特點(2)寫后寫相關(guān)(WAW)在i寫入之前,
6、j先寫。最后寫入的結(jié)果是i的,錯誤!(1)寫后讀相關(guān)(RAW)(命名規(guī)則)在i寫入之前,j先去讀。j讀出的內(nèi)容是錯誤的。這是最常見的相關(guān)。①這種相關(guān)僅出現(xiàn)在這樣的流水線中:◆流水線中有多個段可以進行寫操作◆當(dāng)某條指令在流水線中暫停時,允許其后的指令繼續(xù)向前流動。3.3流水線中的相關(guān)虛擬存儲器的特點②DLX整數(shù)流水線中不會發(fā)生這種相關(guān)(僅在WB段進行寫操作)③若對DLX作以下修改,則會發(fā)生WAW相關(guān):◆把ALU操作指令的“寫回”移到MEM段◆假設(shè)訪問數(shù)據(jù)存儲器需占用兩拍舉例虛擬存儲器的特點(3)讀后寫相關(guān)(WAR)在i讀之前,j先寫。i讀出的內(nèi)容是錯誤的!
7、①這種相關(guān)僅出現(xiàn)在這樣的流水線中:有些指令是在流水線的后部讀源操作數(shù),而有些指令則是在流水線的前部寫結(jié)果。②DLX流水線中不會發(fā)生這種相關(guān);(讀在先(ID),寫在后(WB))③這種相關(guān)很少發(fā)生;(因為流水線一般是先讀操作數(shù),后寫結(jié)果)④復(fù)雜指令可能導(dǎo)致這種相關(guān)。3.3流水線中的相關(guān)虛擬存儲器的特點(1)并非所有的數(shù)據(jù)相關(guān)都可以用定向技術(shù)解決舉例4.需要暫停的數(shù)據(jù)相關(guān)3.3流水線中的相關(guān)(2)增加流水線互鎖硬件,插入“暫停”。當(dāng)互鎖硬件發(fā)現(xiàn)這種相關(guān)時,就暫停流水線,直到相關(guān)消失。舉例:演示A演示B3.3流水線中的相關(guān)3.3流水線中的相關(guān)例3.5假設(shè)某指令
8、序列中20%的指令是Load指令,并且