流水線CPU技術(shù)_第1頁(yè)
流水線CPU技術(shù)_第2頁(yè)
流水線CPU技術(shù)_第3頁(yè)
流水線CPU技術(shù)_第4頁(yè)
流水線CPU技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 流水線流水線CPU并行性概念并行性概念 1并行性的含義并行性的含義 同時(shí)性同時(shí)性指兩個(gè)或者兩個(gè)以上事件在同一時(shí)刻發(fā)生。指兩個(gè)或者兩個(gè)以上事件在同一時(shí)刻發(fā)生。并發(fā)性并發(fā)性指兩個(gè)或者兩個(gè)以上事件在同一時(shí)間間隔內(nèi)發(fā)生。指兩個(gè)或者兩個(gè)以上事件在同一時(shí)間間隔內(nèi)發(fā)生。流水流水CPUCPU2 并行性概念并行性概念2 2并行處理技術(shù)的主要形式并行處理技術(shù)的主要形式 (1) 時(shí)間并行時(shí)間并行 時(shí)間重疊時(shí)間重疊 讓多個(gè)處理過(guò)程在時(shí)間上相互錯(cuò)開(kāi),輪流重疊地使用讓多個(gè)處理過(guò)程在時(shí)間上相互錯(cuò)開(kāi),輪流重疊地使用 同一套硬件的各個(gè)部分,從而贏得高速度。同一套硬件的各個(gè)部分,從而贏得高速度。實(shí)現(xiàn)方式:實(shí)現(xiàn)方式:采用流水處理

2、部件。采用流水處理部件。(2 2)空間并行空間并行 資源重復(fù)資源重復(fù)例:奔騰例:奔騰CPU采用的超標(biāo)量流水技術(shù)。采用的超標(biāo)量流水技術(shù)。用多個(gè)相同部件處理多個(gè)事件。用多個(gè)相同部件處理多個(gè)事件。實(shí)現(xiàn)方式:實(shí)現(xiàn)方式:多處理器系統(tǒng)和多計(jì)算機(jī)系統(tǒng)或單處理器系統(tǒng)。多處理器系統(tǒng)和多計(jì)算機(jī)系統(tǒng)或單處理器系統(tǒng)。(3) (3) 時(shí)間并行時(shí)間并行+ +空間并行空間并行既采用時(shí)間并行性又采用空間并行性。既采用時(shí)間并行性又采用空間并行性。 流水線計(jì)算機(jī)的系統(tǒng)組成流水線計(jì)算機(jī)的系統(tǒng)組成 現(xiàn)代流水線計(jì)算機(jī)系統(tǒng)現(xiàn)代流水線計(jì)算機(jī)系統(tǒng)組成原理如左圖所示。其中組成原理如左圖所示。其中CPU按流水線方式組織,按流水線方式組織,通常由

3、三部分組成:指令部通常由三部分組成:指令部件、指令隊(duì)列、執(zhí)行部件。件、指令隊(duì)列、執(zhí)行部件。這三個(gè)功能部件可以組成一這三個(gè)功能部件可以組成一個(gè)個(gè)3級(jí)流水線。級(jí)流水線。圖圖3.33 3.33 流水線計(jì)算機(jī)系統(tǒng)組成原理示意圖流水線計(jì)算機(jī)系統(tǒng)組成原理示意圖 流水線流水線CPUCPU的結(jié)構(gòu)的結(jié)構(gòu) 指令流水線原理指令流水線原理 問(wèn)題的提出問(wèn)題的提出 串行執(zhí)行方式存在部件利用率不高(有閑置時(shí)間)的問(wèn)題。串行執(zhí)行方式存在部件利用率不高(有閑置時(shí)間)的問(wèn)題。 CPU周期周期使用部件使用部件閑置部件閑置部件取指令取指令PC,MS,IR等等ALU,GRS取數(shù)取數(shù) MS PC,ALU,GRS執(zhí)行執(zhí)行 ALU,GRS

4、PC,MS每個(gè)過(guò)程段所用的部件不同每個(gè)過(guò)程段所用的部件不同在某個(gè)過(guò)程段時(shí),其他過(guò)程段的部件處于空閑在某個(gè)過(guò)程段時(shí),其他過(guò)程段的部件處于空閑(2 2)流水線工作原理)流水線工作原理 指令周期的三個(gè)主要過(guò)程:指令周期的三個(gè)主要過(guò)程:圖圖5.30 指令周期的三個(gè)過(guò)程段指令周期的三個(gè)過(guò)程段取數(shù)取數(shù)取指取指執(zhí)行執(zhí)行入入出出 指令執(zhí)行過(guò)程的時(shí)空?qǐng)D指令執(zhí)行過(guò)程的時(shí)空?qǐng)D a a非流水線時(shí)空?qǐng)D非流水線時(shí)空?qǐng)D I1I1I1I2I2I2I3I3I3I1I2I3空間空間S時(shí)間時(shí)間T執(zhí)行執(zhí)行取數(shù)取數(shù)取指取指(a)非流水線時(shí)空?qǐng)D)非流水線時(shí)空?qǐng)Db b標(biāo)量流水線時(shí)空?qǐng)D標(biāo)量流水線時(shí)空?qǐng)DI1I1I1I2I2I2I3I3I3I4

5、I4I4I1I2I3空間空間S時(shí)間時(shí)間T執(zhí)行執(zhí)行取數(shù)取數(shù)取指取指(b)標(biāo)量流水線時(shí)空?qǐng)D)標(biāo)量流水線時(shí)空?qǐng)DI4圖圖5.31非流水線與流水線對(duì)比非流水線與流水線對(duì)比 c. 超標(biāo)量流水線時(shí)空?qǐng)D超標(biāo)量流水線時(shí)空?qǐng)DI1I3I5I2I4I6I1I3I5I7I2I4I6I8I1I3I5I7I9I2I4I6I8I10I1 I2 I3 I4 I5 I6執(zhí)行執(zhí)行取數(shù)取數(shù)取指取指空間空間S時(shí)間時(shí)間T(C)超標(biāo)量流水線時(shí)空?qǐng)D)超標(biāo)量流水線時(shí)空?qǐng)D流水線流水線 vs vs 非流水線非流水線 非流水線指令的執(zhí)行是串行的;非流水線指令的執(zhí)行是串行的; 標(biāo)量流水線從滿載起,每經(jīng)標(biāo)量流水線從滿載起,每經(jīng)1 1個(gè)周期做完一條指令;

6、個(gè)周期做完一條指令; 超標(biāo)量流水線,提高了吞吐量,但需二套(或二超標(biāo)量流水線,提高了吞吐量,但需二套(或二 套以上)流水線的硬件及其他電路。(見(jiàn)附圖)套以上)流水線的硬件及其他電路。(見(jiàn)附圖) 常見(jiàn)的超標(biāo)量流水線結(jié)構(gòu)(3 3)流水線工作方式的特點(diǎn))流水線工作方式的特點(diǎn) 具有時(shí)間的并行性;具有時(shí)間的并行性; 流水線分工越細(xì),可同時(shí)運(yùn)行的指令越多,流水線分工越細(xì),可同時(shí)運(yùn)行的指令越多, 吞吐率就越高。吞吐率就越高。 但需增加硬件,控制更復(fù)雜但需增加硬件,控制更復(fù)雜; 流水線每個(gè)階段的執(zhí)行時(shí)間應(yīng)盡量一致流水線每個(gè)階段的執(zhí)行時(shí)間應(yīng)盡量一致; 流水線充滿(滿載)時(shí)達(dá)到最大的吞吐率。流水線充滿(滿載)時(shí)達(dá)

7、到最大的吞吐率。 流水線相關(guān)問(wèn)題流水線相關(guān)問(wèn)題流水線相關(guān):是指鄰近指令之間由于某流水線相關(guān):是指鄰近指令之間由于某種關(guān)系,出現(xiàn)了不能同時(shí)被流水操作的種關(guān)系,出現(xiàn)了不能同時(shí)被流水操作的現(xiàn)象?,F(xiàn)象。 流水線的相關(guān)會(huì)造成流水線的斷流,影流水線的相關(guān)會(huì)造成流水線的斷流,影響整個(gè)流水線的效率。響整個(gè)流水線的效率。 造成流水線相關(guān)的原因造成流水線相關(guān)的原因資源相關(guān)資源相關(guān)數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān)變址轉(zhuǎn)移變址轉(zhuǎn)移中斷中斷 全局性相關(guān)全局性相關(guān)局部性相關(guān)局部性相關(guān) 局部性相關(guān):資源相關(guān)局部性相關(guān):資源相關(guān) 在同一機(jī)器時(shí)鐘周期內(nèi)爭(zhēng)用同一個(gè)功能部件所發(fā)生的沖突。在同一機(jī)器時(shí)鐘周期內(nèi)爭(zhēng)用同一個(gè)功能部件所發(fā)生的沖突。 時(shí)鐘時(shí)

8、鐘指令指令 12345I1取指取指譯碼譯碼取數(shù)取數(shù)執(zhí)行執(zhí)行I2取指取指譯碼譯碼取數(shù)取數(shù)執(zhí)行執(zhí)行I3取指取指譯碼譯碼取數(shù)取數(shù)在時(shí)鐘在時(shí)鐘3 3發(fā)生爭(zhēng)用內(nèi)存的問(wèn)題發(fā)生爭(zhēng)用內(nèi)存的問(wèn)題資源相關(guān)。資源相關(guān)。 解決方法:解決方法: 將取指操作推遲一個(gè)時(shí)鐘進(jìn)行;將取指操作推遲一個(gè)時(shí)鐘進(jìn)行; 增設(shè)一個(gè)存儲(chǔ)器,將指令和數(shù)據(jù)分開(kāi)存放;增設(shè)一個(gè)存儲(chǔ)器,將指令和數(shù)據(jù)分開(kāi)存放; 采用雙端口存儲(chǔ)器。采用雙端口存儲(chǔ)器。 局部性相關(guān):局部性相關(guān):數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) 在程序中,一條指令的執(zhí)行需等前一條指令執(zhí)行完后才在程序中,一條指令的執(zhí)行需等前一條指令執(zhí)行完后才能進(jìn)行,則有數(shù)據(jù)相關(guān)。能進(jìn)行,則有數(shù)據(jù)相關(guān)。 例:例: 132321

9、RRRRRRSUB)()(;,451514RRRRRRADD)()(;,取數(shù)取數(shù)譯碼譯碼取指取指ADD執(zhí)行執(zhí)行取數(shù)取數(shù)譯碼譯碼取指取指SUB4321 時(shí)鐘時(shí)鐘指令指令解決方法:解決方法: 推遲推遲ADDADD指令的取數(shù)操作;指令的取數(shù)操作; 采用采用數(shù)據(jù)旁路數(shù)據(jù)旁路(內(nèi)部向(內(nèi)部向 前)技術(shù),前)技術(shù),直接把結(jié)果直接把結(jié)果 送給下一條指令。送給下一條指令。全局性相關(guān):控制相關(guān)全局性相關(guān):控制相關(guān) 由條件轉(zhuǎn)移指令或中斷引起的。由條件轉(zhuǎn)移指令或中斷引起的。 解決方法:解決方法: 延遲轉(zhuǎn)移法延遲轉(zhuǎn)移法:加入空操作,等加入空操作,等待待轉(zhuǎn)移條件形成。轉(zhuǎn)移條件形成。 猜測(cè)法猜測(cè)法:選擇出現(xiàn)概率較高的分支

10、進(jìn)行選擇出現(xiàn)概率較高的分支進(jìn)行指令指令預(yù)取。預(yù)取。 【例例4】 流水線中有三類數(shù)據(jù)相關(guān)沖突:流水線中有三類數(shù)據(jù)相關(guān)沖突:寫(xiě)后讀相關(guān);讀后寫(xiě)相關(guān);寫(xiě)后寫(xiě)相關(guān)。寫(xiě)后讀相關(guān);讀后寫(xiě)相關(guān);寫(xiě)后寫(xiě)相關(guān)。判斷以下三組指令各存在哪種類型的數(shù)據(jù)相關(guān)。判斷以下三組指令各存在哪種類型的數(shù)據(jù)相關(guān)。(1) I1: ADD R1,R2,R3 ;(R2) + (R3)-R1 I2: SUB R4,R1,R5 ; (R1) - (R5)-R4 (2) I3: STA M(x),R3 ; R3)-M(x),M(x)是存儲(chǔ)器單元是存儲(chǔ)器單元 I4: ADD R3,R4,R5 ;(R4)+(R5)-R3 (3) I5: MUL

11、R3,R1,R2 ;(R1)(R2)-R3 I6: ADD R3,R4,R5 ;(R4) + (R5)-R3 (1) I1: ADD R1,R2,R3 ;(R2) + (R3)-R1 I2: SUB R4,R1,R5 ; (R1) - (R5)-R4 第第(1)組指令中,組指令中,I1指令運(yùn)算結(jié)果應(yīng)先寫(xiě)入指令運(yùn)算結(jié)果應(yīng)先寫(xiě)入R1,然,然后在后在I2指令中讀出指令中讀出R1內(nèi)容。由于內(nèi)容。由于I2指令進(jìn)入流水線,指令進(jìn)入流水線,變成變成I2指令在指令在I1指令寫(xiě)入指令寫(xiě)入R1前就讀出前就讀出R1內(nèi)容,發(fā)生內(nèi)容,發(fā)生RAW(寫(xiě)后讀)相關(guān)。(寫(xiě)后讀)相關(guān)。 局部性相關(guān):局部性相關(guān):數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān)

12、(2) I3: STA M(x),R3 ;(R3)-M(x),M(x)是存儲(chǔ)器單元是存儲(chǔ)器單元 I4: ADD R3,R4,R5 ; (R4)+(R5)-R3 第第(2)組指令中,組指令中,I3指令應(yīng)先讀出指令應(yīng)先讀出R3內(nèi)容并存入存內(nèi)容并存入存儲(chǔ)單元儲(chǔ)單元M(x),然后在,然后在I4指令中將運(yùn)算結(jié)果寫(xiě)入指令中將運(yùn)算結(jié)果寫(xiě)入R3。但。但由于由于I4指令進(jìn)入流水線,變成指令進(jìn)入流水線,變成I4指令在指令在I3指令讀出指令讀出R3內(nèi)內(nèi)容前就寫(xiě)入容前就寫(xiě)入R3,發(fā)生,發(fā)生WAR(讀后寫(xiě))相關(guān)。(讀后寫(xiě))相關(guān)。 局部性相關(guān):局部性相關(guān):數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) (3) I5: MUL R3,R1,R2 ;(R

13、1)(R2)-R3 I6:ADD R3,R4,R5 ;(R4) + (R5)-R3 第第(3)組指令中,如果組指令中,如果I6指令的加法運(yùn)算完成指令的加法運(yùn)算完成時(shí)間早于時(shí)間早于I5指令的乘法運(yùn)算時(shí)間,變成指令指令的乘法運(yùn)算時(shí)間,變成指令I(lǐng)6在在指令指令I(lǐng)5寫(xiě)入寫(xiě)入R3前就寫(xiě)入前就寫(xiě)入R3,導(dǎo)致,導(dǎo)致R3的內(nèi)容錯(cuò)誤,的內(nèi)容錯(cuò)誤,發(fā)生發(fā)生WAW(寫(xiě)后寫(xiě))相關(guān)寫(xiě)后寫(xiě))相關(guān) 。 局部性相關(guān):局部性相關(guān):數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) 局部性相關(guān)的處理方法局部性相關(guān)的處理方法n指令調(diào)度法指令調(diào)度法n設(shè)置多個(gè)功能部件設(shè)置多個(gè)功能部件n內(nèi)部數(shù)據(jù)定向內(nèi)部數(shù)據(jù)定向靜態(tài)調(diào)度靜態(tài)調(diào)度動(dòng)態(tài)調(diào)度動(dòng)態(tài)調(diào)度(1)指令調(diào)度法)指令調(diào)度法

14、n指令調(diào)度指令調(diào)度n改變指令的執(zhí)行順序以解決相關(guān)性帶來(lái)的問(wèn)題改變指令的執(zhí)行順序以解決相關(guān)性帶來(lái)的問(wèn)題n靜態(tài)指令調(diào)度靜態(tài)指令調(diào)度n改變程序中指令的位置改變程序中指令的位置n由編譯程序?qū)崿F(xiàn)由編譯程序?qū)崿F(xiàn)n動(dòng)態(tài)指令調(diào)度動(dòng)態(tài)指令調(diào)度n改變指令的實(shí)際執(zhí)行順序改變指令的實(shí)際執(zhí)行順序n不改變?nèi)≈噶詈椭噶钭g碼的順序不改變?nèi)≈噶詈椭噶钭g碼的順序n無(wú)序執(zhí)行無(wú)序執(zhí)行n由控制器硬件實(shí)現(xiàn)由控制器硬件實(shí)現(xiàn)計(jì)分牌法計(jì)分牌法 保存站法保存站法 靜態(tài)調(diào)度:流水線延遲靜態(tài)調(diào)度:流水線延遲取指 F譯碼 D發(fā)射 I執(zhí)行 E執(zhí)行 E執(zhí)行 E寫(xiě)回 W(a)一條 7 段指令流水線 R1M(Y) R2M(Z) R3(R1)(R2) M(X)

15、(R3) R4M(B) R5M(C) R6(R4)(R5) M(A)(R6)(c)8 條指令的流水線圖 4-12 流水線的相關(guān)延遲FFFFFFFFDDDDDDDDIIIIIIIIE E EE E EE E EE E EE E EE E EE E EE E EWWWWWWWW1 2 3 4 5 6 7 8 9 10 111213 1415 1617 181920 21 222324(b)8 條指令順序時(shí)間X=Y+ZA=BCn指令發(fā)射:?jiǎn)?dòng)指令去處理器功能單元執(zhí)行的過(guò)程指令發(fā)射:?jiǎn)?dòng)指令去處理器功能單元執(zhí)行的過(guò)程靜態(tài)調(diào)度:編譯檢測(cè)靜態(tài)調(diào)度:編譯檢測(cè)n編譯器優(yōu)化后,所需時(shí)間為編譯器優(yōu)化后,所需時(shí)間為

16、17個(gè)時(shí)鐘周期個(gè)時(shí)鐘周期 R1M(Y) R2M(Z) R4M(B) R5M(C) R3(R1)(R2) R6(R4)(R5) M(X)(R3) M(A)(R6)FFFFFFFFDDDDDDDDIIIIIIIIE E EE E EE E EE E EE E EE E EE E EE E EWWWWWWWW12 3 456 7 89 10 11 12 13 14 15 16 178 條指令順序圖 4-13 靜態(tài)調(diào)度后的流水線延遲動(dòng)態(tài)調(diào)度動(dòng)態(tài)調(diào)度-計(jì)分牌法計(jì)分牌法 取指令 F 譯碼 D 發(fā)射 I 執(zhí)行 E 執(zhí)行 E 執(zhí)行 E 執(zhí)行 E 執(zhí)行 E 寫(xiě)回 W 寫(xiě)回 W 寫(xiě)回 W 計(jì)分牌 (a)CDC66

17、00 處理機(jī)的流水線結(jié)構(gòu) 執(zhí)行 E 計(jì)分牌計(jì)分牌是一個(gè)位向量、每一位對(duì)應(yīng)寄存器堆中的一個(gè)寄存器。是一個(gè)位向量、每一位對(duì)應(yīng)寄存器堆中的一個(gè)寄存器。 指令發(fā)射時(shí),目的寄存器在計(jì)分牌中相應(yīng)位指令發(fā)射時(shí),目的寄存器在計(jì)分牌中相應(yīng)位 置置1; 寫(xiě)回后,寫(xiě)回后,目的寄存器在目的寄存器在計(jì)分牌計(jì)分牌中相應(yīng)位中相應(yīng)位 清清0。 判斷指令可否發(fā)射的條件是:判斷指令可否發(fā)射的條件是: 該指令所有目的寄存器及源寄存器在該指令所有目的寄存器及源寄存器在計(jì)分牌計(jì)分牌中對(duì)應(yīng)位都為中對(duì)應(yīng)位都為0 ;否則等待上述位清除。;否則等待上述位清除。解決數(shù)據(jù)相關(guān)采用定向傳送技術(shù):解決數(shù)據(jù)相關(guān)采用定向傳送技術(shù): 將前面指令執(zhí)行的結(jié)果直

18、接送給后面指令所需此源操作將前面指令執(zhí)行的結(jié)果直接送給后面指令所需此源操作數(shù)的功能部件數(shù)的功能部件 動(dòng)態(tài)調(diào)度動(dòng)態(tài)調(diào)度-計(jì)分牌法計(jì)分牌法 R1 M(Y) R2 M(Z) R3 (R1)+(R2) M(X) (R3) R4 M(B) R5 M(C) R6 (R4)(R5) M(A) (R6) F F F F F F F F D D D D D D D D I I I I I I I I E E E E E E E E E E E E E E E E E E E E E E E E W W W W W W W W 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1

19、8 19 (b)計(jì)分牌法動(dòng)態(tài)調(diào)度后的流水線 圖4-15 基于計(jì)分牌發(fā)射邏輯的流水線調(diào)度過(guò)程 動(dòng)態(tài)調(diào)度動(dòng)態(tài)調(diào)度-計(jì)分牌法計(jì)分牌法動(dòng)態(tài)調(diào)度動(dòng)態(tài)調(diào)度-計(jì)分牌法計(jì)分牌法依靠流水線停頓來(lái)解決相關(guān)性依靠流水線停頓來(lái)解決相關(guān)性沒(méi)有消除數(shù)據(jù)相關(guān)沒(méi)有消除數(shù)據(jù)相關(guān)集中式調(diào)度集中式調(diào)度n記分牌部件是性能瓶頸記分牌部件是性能瓶頸記分牌的缺點(diǎn)記分牌的缺點(diǎn)動(dòng)態(tài)調(diào)度動(dòng)態(tài)調(diào)度-保存站法保存站法 F D I RS RS RS RS E E E E E E W W . . . RS(a)保存站結(jié)構(gòu)動(dòng)態(tài)調(diào)度動(dòng)態(tài)調(diào)度-保存站法保存站法n發(fā)射發(fā)射n如果有空的保存站,就發(fā)射指令;如果有空的保存站,就發(fā)射指令;n只要操作數(shù)有效,就將其取到

20、保存站,避免指令發(fā)射只要操作數(shù)有效,就將其取到保存站,避免指令發(fā)射時(shí)才到寄存器中取數(shù)據(jù)的情況時(shí)才到寄存器中取數(shù)據(jù)的情況.n如果沒(méi)有空的保存站或緩存部件,則指令暫等如果沒(méi)有空的保存站或緩存部件,則指令暫等n執(zhí)行執(zhí)行n一條指令發(fā)射時(shí),存放操作數(shù)的寄存器名被換成為對(duì)一條指令發(fā)射時(shí),存放操作數(shù)的寄存器名被換成為對(duì)應(yīng)于該寄存器的保存站名稱(應(yīng)于該寄存器的保存站名稱(寄存器重命名寄存器重命名)n寫(xiě)結(jié)果寫(xiě)結(jié)果n結(jié)果寫(xiě)回時(shí)通過(guò)數(shù)據(jù)總線直接送到等待此結(jié)果的所有結(jié)果寫(xiě)回時(shí)通過(guò)數(shù)據(jù)總線直接送到等待此結(jié)果的所有保存站保存站 R1M(Y) R2M(Z) R3(R1)(R2) M(X)(R3) R4M(B) R5M(C)

21、 R6(R4)(R5) M(A)(R6)FFFFFFFFDDDDDDDDIIIIIIIIE E EE E EE E EEEEEEEEEEE EEE EEWWWWWWWW1 2 3 4 5 6 7 8 9 10111213 141516171819(b) 保存站法動(dòng)態(tài)調(diào)度后流水線圖4-14 保存站動(dòng)態(tài)調(diào)度法動(dòng)態(tài)調(diào)度動(dòng)態(tài)調(diào)度-保存站法保存站法具有分布的阻塞檢測(cè)機(jī)制;具有分布的阻塞檢測(cè)機(jī)制;消除了數(shù)據(jù)寫(xiě)后寫(xiě)和先讀后寫(xiě)相關(guān)導(dǎo)致的阻塞消除了數(shù)據(jù)寫(xiě)后寫(xiě)和先讀后寫(xiě)相關(guān)導(dǎo)致的阻塞保存站法的優(yōu)點(diǎn)保存站法的優(yōu)點(diǎn)( (相對(duì)記分牌法相對(duì)記分牌法) )動(dòng)態(tài)調(diào)度動(dòng)態(tài)調(diào)度-保存站法保存站法保存站法又稱作保存站法又稱作 To

22、masuloTomasulo調(diào)度法調(diào)度法(2)設(shè)置多個(gè)功能部件)設(shè)置多個(gè)功能部件流水線的瓶頸會(huì)在某一個(gè)流水線段產(chǎn)生;流水線的瓶頸會(huì)在某一個(gè)流水線段產(chǎn)生;這種瓶頸段一定對(duì)應(yīng)于預(yù)約表中符號(hào)最多這種瓶頸段一定對(duì)應(yīng)于預(yù)約表中符號(hào)最多的那一行;的那一行;可設(shè)置幾個(gè)相同的段來(lái)解決該段的瓶頸問(wèn)可設(shè)置幾個(gè)相同的段來(lái)解決該段的瓶頸問(wèn)題。題。例:例: S2 S3 S1 S4 t t t 3t S2 S3 S1 S4 t t t 3t S3 S3 (2)設(shè)置多個(gè)功能部件)設(shè)置多個(gè)功能部件(3)內(nèi)部數(shù)據(jù)定向)內(nèi)部數(shù)據(jù)定向內(nèi)部數(shù)據(jù)定向的原則:是要消除一些不內(nèi)部數(shù)據(jù)定向的原則:是要消除一些不必要的訪存儲(chǔ)器或訪寄存器的中間

23、環(huán)節(jié),必要的訪存儲(chǔ)器或訪寄存器的中間環(huán)節(jié),從而減少資源和數(shù)據(jù)的相關(guān)性,以提高從而減少資源和數(shù)據(jù)的相關(guān)性,以提高流水線的吞吐率。流水線的吞吐率。數(shù)據(jù)定向分成數(shù)據(jù)定向分成:寫(xiě)讀定向?qū)懽x定向、讀讀定讀讀定向向、寫(xiě)寫(xiě)定向。寫(xiě)寫(xiě)定向。 (3)內(nèi)部數(shù)據(jù)定向)內(nèi)部數(shù)據(jù)定向n可減少或者消除數(shù)據(jù)相關(guān)性帶來(lái)的影響nData forwarding W W M M Ex Ex Id Id IF IF 流水周期 6 5 4 3 2 1 and $4,$2,$5 lw $2,20($1) IFIdExMW U2 M U1 相關(guān)通路 先寫(xiě) 先寫(xiě) 后讀 U2 M U1 寫(xiě)讀定向 (3)內(nèi)部數(shù)據(jù)定向)內(nèi)部數(shù)據(jù)定向 讀讀定向 U

24、2 M U1 先讀 后讀 相關(guān)通路 先讀 U2 M U1 寫(xiě)寫(xiě)定向 U2 M U1 先寫(xiě) 后寫(xiě) U2 M U1 后寫(xiě) 2. 全局性相關(guān):變址轉(zhuǎn)移全局性相關(guān):變址轉(zhuǎn)移全局性相關(guān)由轉(zhuǎn)移指令引起;全局性相關(guān)由轉(zhuǎn)移指令引起;當(dāng)指令流足夠長(zhǎng)時(shí),轉(zhuǎn)移引起的流水線當(dāng)指令流足夠長(zhǎng)時(shí),轉(zhuǎn)移引起的流水線性能將會(huì)下降性能將會(huì)下降4646左右。左右。解決方法:解決方法: 延遲轉(zhuǎn)移法延遲轉(zhuǎn)移法 轉(zhuǎn)移預(yù)測(cè)法轉(zhuǎn)移預(yù)測(cè)法 1)延遲轉(zhuǎn)移法)延遲轉(zhuǎn)移法n延遲轉(zhuǎn)移法:目的是轉(zhuǎn)移成功時(shí),轉(zhuǎn)移指令后延遲轉(zhuǎn)移法:目的是轉(zhuǎn)移成功時(shí),轉(zhuǎn)移指令后面進(jìn)入流水線的指令不作廢,想辦法使之有用,面進(jìn)入流水線的指令不作廢,想辦法使之有用,以減少延遲時(shí)間

25、的損失。以減少延遲時(shí)間的損失。 I0 LD R4, B I1 LD R1, A I2 DEC R3, 1 I3 JZ R3,I50 I4 ADD R2,R4 I5 SUB R5,R6I50 I2 DEC R3, 1 I3 JZ R3,I50 I0 LD R4, B I1 LD R1, A I4 ADD R2,R4 I5 SUB R5,R6I50 例:例: I0 LD R4, B I1 LD R1, A I2 DEC R3, 1 I3 JZ R3,I50 I4 ADD R2,R4 I5 SUB R5,R6 I6 LD B, R5 I50 分析 執(zhí)行 取指 I4 I3 I5 分析 執(zhí)行 取指 I0

26、 I3 I1 轉(zhuǎn)移成功 I50 轉(zhuǎn)移不成功 I4 1)延遲轉(zhuǎn)移法)延遲轉(zhuǎn)移法n轉(zhuǎn)移延遲槽:n將轉(zhuǎn)移指令的執(zhí)行在流水線中提前進(jìn)行1)延遲轉(zhuǎn)移法)延遲轉(zhuǎn)移法2)轉(zhuǎn)移預(yù)測(cè)法)轉(zhuǎn)移預(yù)測(cè)法n轉(zhuǎn)移預(yù)測(cè)法:在程序執(zhí)行以前,就靜態(tài)地根據(jù)轉(zhuǎn)移預(yù)測(cè)法:在程序執(zhí)行以前,就靜態(tài)地根據(jù)轉(zhuǎn)移代碼的類型或動(dòng)態(tài)地根據(jù)轉(zhuǎn)移歷史表來(lái)預(yù)轉(zhuǎn)移代碼的類型或動(dòng)態(tài)地根據(jù)轉(zhuǎn)移歷史表來(lái)預(yù)測(cè)下一次轉(zhuǎn)移是否會(huì)成功。測(cè)下一次轉(zhuǎn)移是否會(huì)成功。n得到的預(yù)測(cè)值都是試探性的值,不能把結(jié)果得到的預(yù)測(cè)值都是試探性的值,不能把結(jié)果作作為最后結(jié)果為最后結(jié)果。n根據(jù)運(yùn)行結(jié)果,根據(jù)運(yùn)行結(jié)果,如果預(yù)測(cè)正確,把試探性結(jié)果如果預(yù)測(cè)正確,把試探性結(jié)果上的試探標(biāo)記去掉,成為正式

27、結(jié)果。上的試探標(biāo)記去掉,成為正式結(jié)果。n如果不正確,則要清除試探性結(jié)果。如果不正確,則要清除試探性結(jié)果。利用預(yù)取緩沖器進(jìn)行轉(zhuǎn)移預(yù)測(cè)利用預(yù)取緩沖器進(jìn)行轉(zhuǎn)移預(yù)測(cè) n預(yù)取緩沖器有三種類型:預(yù)取緩沖器有三種類型: 順序緩沖器:順序緩沖器:順序流入流水線的指令。順序流入流水線的指令。 目標(biāo)緩沖器目標(biāo)緩沖器:從轉(zhuǎn)移目標(biāo)開(kāi)始取出的指令。從轉(zhuǎn)移目標(biāo)開(kāi)始取出的指令。 循環(huán)緩沖器循環(huán)緩沖器:保存了一個(gè)小循環(huán)的順序指令。保存了一個(gè)小循環(huán)的順序指令。n順序緩沖器和目標(biāo)緩沖器在條件轉(zhuǎn)移指令到來(lái)之順序緩沖器和目標(biāo)緩沖器在條件轉(zhuǎn)移指令到來(lái)之前,就按預(yù)測(cè)策略裝滿各自的指令。在轉(zhuǎn)移條件前,就按預(yù)測(cè)策略裝滿各自的指令。在轉(zhuǎn)移條件

28、被檢測(cè)出之后,選取兩個(gè)緩沖器中的一個(gè)緩沖器被檢測(cè)出之后,選取兩個(gè)緩沖器中的一個(gè)緩沖器的指令流進(jìn)入流水線,而另一個(gè)緩沖器中的指令的指令流進(jìn)入流水線,而另一個(gè)緩沖器中的指令流被作廢。流被作廢。 D I E E E W 4 3 2 1 F M 目標(biāo)緩沖器FIFO 順序緩沖器FIFO 4 3 2 1 n按原程序順序,經(jīng)順序緩沖器一方把指令流裝按原程序順序,經(jīng)順序緩沖器一方把指令流裝入流水線。入流水線。n預(yù)測(cè)正確的話,取消試探標(biāo)志,結(jié)果存入用戶預(yù)測(cè)正確的話,取消試探標(biāo)志,結(jié)果存入用戶寄存器或存儲(chǔ)器,報(bào)廢掉目標(biāo)緩沖器中指令。寄存器或存儲(chǔ)器,報(bào)廢掉目標(biāo)緩沖器中指令。n如果預(yù)測(cè)錯(cuò)誤,重新從目標(biāo)緩沖器裝入指令到

29、如果預(yù)測(cè)錯(cuò)誤,重新從目標(biāo)緩沖器裝入指令到流水線。流水線。 轉(zhuǎn)移預(yù)測(cè)策略轉(zhuǎn)移預(yù)測(cè)策略 i-1 i i+1 i+2 p+1 p+2 猜測(cè)執(zhí)行路徑 實(shí)際執(zhí)行路徑 分支指令 得到分支結(jié)果 分支預(yù)測(cè)執(zhí)行不成功和重新執(zhí)行過(guò)程分支預(yù)測(cè)執(zhí)行不成功和重新執(zhí)行過(guò)程 轉(zhuǎn)移預(yù)測(cè)策略轉(zhuǎn)移預(yù)測(cè)策略 分支預(yù)測(cè)branch predictionn靜態(tài)n永遠(yuǎn)不轉(zhuǎn)移n永遠(yuǎn)轉(zhuǎn)移n后向轉(zhuǎn)移n動(dòng)態(tài)n1位n2位n多位(1級(jí),2級(jí)) 1位動(dòng)態(tài)分支預(yù)測(cè)n根據(jù)上次轉(zhuǎn)移情況預(yù)測(cè)下次情況指令預(yù)測(cè)位010110 1 0 分支不成功 分支成功 分支不成功 分支成功 2位動(dòng)態(tài)分支預(yù)測(cè)n根據(jù)上兩次轉(zhuǎn)移情況預(yù)測(cè)下次分支0000111111001001預(yù)測(cè)發(fā)

30、生(11)預(yù)測(cè)不發(fā)生(00)預(yù)測(cè)不發(fā)生(01)預(yù)測(cè)發(fā)生(10)圖8-6 兩位預(yù)測(cè)狀態(tài)圖未發(fā)生發(fā)生未發(fā)生未發(fā)生發(fā)生發(fā)生發(fā)生未發(fā)生預(yù)測(cè)狀態(tài)機(jī)00: strongly not taken01: weakly not taken10: weakly taken11: strongly taken例例n設(shè)某轉(zhuǎn)移指令在每次執(zhí)行過(guò)程的轉(zhuǎn)移序列如下,T表示轉(zhuǎn)移發(fā)生,N表示轉(zhuǎn)移未發(fā)生:T, T, T, N, T, T, N, T, N, N, T, N, N,n試分析在每次對(duì)該指令進(jìn)行預(yù)測(cè)的狀態(tài)和預(yù)測(cè)的成功率。假設(shè): 1)采用1位動(dòng)態(tài)預(yù)測(cè),預(yù)測(cè)器初始狀態(tài)為T(mén); 2)采用2位動(dòng)態(tài)預(yù)測(cè),預(yù)測(cè)器初始狀態(tài)為11。解答(

31、1)每次對(duì)指令進(jìn)行預(yù)測(cè)時(shí)的狀態(tài)和結(jié)果如下n預(yù)測(cè)成功6次,成功率為0.46。事件序列TTTNTTNTNNTNN預(yù)測(cè)器狀態(tài)TTTTNTTNTNNTN準(zhǔn)確性YYYYYY解答(2)每次對(duì)指令進(jìn)行預(yù)測(cè)時(shí)的狀態(tài)和結(jié)果如下n預(yù)測(cè)成功8次,成功率為0.62。事件序列TTTNTTNTNNTNN預(yù)測(cè)器狀態(tài)11111111101111101110000100預(yù)測(cè)結(jié)果TTTTTTTTTTNNN準(zhǔn)確性YYYYYYYY3. 全局性相關(guān):中斷全局性相關(guān):中斷n中斷也會(huì)引起轉(zhuǎn)移;中斷也會(huì)引起轉(zhuǎn)移;n中斷一般是不可預(yù)測(cè)的;中斷一般是不可預(yù)測(cè)的;n中斷處理目的不是如何縮短斷流時(shí)中斷處理目的不是如何縮短斷流時(shí)間,而是如何處理好斷點(diǎn)

32、現(xiàn)場(chǎng)和中間,而是如何處理好斷點(diǎn)現(xiàn)場(chǎng)和中斷后的恢復(fù)問(wèn)題。斷后的恢復(fù)問(wèn)題。中斷的處理(中斷的處理(1)n不精確斷點(diǎn)法:不論在哪條指令的哪一不精確斷點(diǎn)法:不論在哪條指令的哪一段發(fā)生了中斷申請(qǐng),都不再允許當(dāng)時(shí)還段發(fā)生了中斷申請(qǐng),都不再允許當(dāng)時(shí)還未進(jìn)入流水線的后繼指令再進(jìn)入,但已未進(jìn)入流水線的后繼指令再進(jìn)入,但已在流水線中的指令可流動(dòng)到執(zhí)行完為止,在流水線中的指令可流動(dòng)到執(zhí)行完為止,然后再轉(zhuǎn)入中斷處理程序。然后再轉(zhuǎn)入中斷處理程序。n例:輸入輸出設(shè)備申請(qǐng)的中斷例:輸入輸出設(shè)備申請(qǐng)的中斷中斷的處理(中斷的處理(2)n精確斷點(diǎn)法:是指采用后援寄存器來(lái)保精確斷點(diǎn)法:是指采用后援寄存器來(lái)保存進(jìn)入流水線的各指令的現(xiàn)

33、場(chǎng)狀態(tài)。所存進(jìn)入流水線的各指令的現(xiàn)場(chǎng)狀態(tài)。所以不管在進(jìn)入流水線的指令的任何段發(fā)以不管在進(jìn)入流水線的指令的任何段發(fā)生中斷申請(qǐng),斷點(diǎn)都是精確的。生中斷申請(qǐng),斷點(diǎn)都是精確的。n例:執(zhí)行錯(cuò)誤的中斷例:執(zhí)行錯(cuò)誤的中斷4. 超標(biāo)量流水線超標(biāo)量流水線4.2.1 4.2.1 超標(biāo)量流水線超標(biāo)量流水線n標(biāo)量流水線標(biāo)量流水線:在每個(gè)時(shí)鐘周期只發(fā)射一條指令,在每個(gè)時(shí)鐘周期只發(fā)射一條指令,并要求每個(gè)時(shí)鐘周期只從流水線流出一條指令并要求每個(gè)時(shí)鐘周期只從流水線流出一條指令的結(jié)果。的結(jié)果。n超標(biāo)量流水線超標(biāo)量流水線:是指在每個(gè)時(shí)鐘周期向流水線是指在每個(gè)時(shí)鐘周期向流水線發(fā)射多條指令,并能從流水線流出多個(gè)結(jié)果發(fā)射多條指令,并能

34、從流水線流出多個(gè)結(jié)果。 例:三發(fā)射超標(biāo)量流水線例:三發(fā)射超標(biāo)量流水線 F1 D1 E1 E1 S1 F2 D2 E2 E2 S2 F3 D3 E3 E3 S3 F1 D1 E1 E1 S1 F2 D2 E2 E2 S2 F3 D3 E3 E3 S3 1 2 3 4 5 6 7 8I1I2I3I4I5I6時(shí)間 (時(shí)鐘周期)指令圖 4-18 三發(fā)射超標(biāo)量流水線n超標(biāo)量流水線會(huì)因數(shù)據(jù)相關(guān)、資源沖突、超標(biāo)量流水線會(huì)因數(shù)據(jù)相關(guān)、資源沖突、轉(zhuǎn)移指令、循環(huán)及中斷等造成流水線的轉(zhuǎn)移指令、循環(huán)及中斷等造成流水線的斷流;斷流;n斷流延遲時(shí)間與超標(biāo)量流水線的調(diào)度方斷流延遲時(shí)間與超標(biāo)量流水線的調(diào)度方法有關(guān)法有關(guān) ;n

35、調(diào)度方法有:調(diào)度方法有: 按序發(fā)射按序完成按序發(fā)射按序完成 按序發(fā)射無(wú)序完成按序發(fā)射無(wú)序完成 無(wú)序發(fā)射無(wú)序完成無(wú)序發(fā)射無(wú)序完成 超標(biāo)量流水線的調(diào)度方法超標(biāo)量流水線的調(diào)度方法有序執(zhí)行 vs 無(wú)序執(zhí)行 n無(wú)序執(zhí)行無(wú)序執(zhí)行n后續(xù)指令比前面的指令先開(kāi)始進(jìn)入執(zhí)行階段后續(xù)指令比前面的指令先開(kāi)始進(jìn)入執(zhí)行階段n后續(xù)指令比前面的指令先執(zhí)行完成后續(xù)指令比前面的指令先執(zhí)行完成 n真相關(guān)的指令停頓真相關(guān)的指令停頓n繼續(xù)讀取操作數(shù)繼續(xù)讀取操作數(shù)n沒(méi)有改變?nèi)≈负妥g碼的順序沒(méi)有改變?nèi)≈负妥g碼的順序n有序執(zhí)行有序執(zhí)行n有序開(kāi)始執(zhí)行有序開(kāi)始執(zhí)行n有序執(zhí)行完成有序執(zhí)行完成EXEX例:例:I1 R1 M(A)I2 R2(R1)(R

36、2)I3 R3(R3)(R4)I4 R4(R4)(R5)I5 R6 I6 R6(R6)(R7) 6R F2 D2 F1 W2 W1 D1 L S A1 A2 M1 M2 M3 寫(xiě)回 執(zhí)行 譯碼 取指 超標(biāo)量流水線的調(diào)度方法超標(biāo)量流水線的調(diào)度方法取指 1取指 2譯碼 1譯碼 2乘法 1 乘法 2 乘法 3加法 1 加法 2邏輯訪存寫(xiě)回 1寫(xiě)回 2取指階段譯碼階段執(zhí)行階段寫(xiě)回階段超標(biāo)量流水線的調(diào)度方法超標(biāo)量流水線的調(diào)度方法按序發(fā)射按序完成按序發(fā)射按序完成 I1 R1 M(A)I2 R2(R1)(R2)I3 R3(R3)(R4)I4 R4(R4)(R5)I5 R6 I6 R6(R6)(R7) F 1

37、 D1 S W1 F2 D2 M1 M2 M3 W2 F1 D1 A1 A2 W1 F1 D1 L W1 F2 D2 M1 M2 M3 W2 F2 D2 A1 A2 W2 1 2 3 4 5 6 7 8 9 流水線 1,I1 流水線 2,I2 指令 時(shí)間 (時(shí)鐘周期) I3 I4 I5 I6 6R F2 D2 F1 W2 W1 D1 L S A1 A2 M1 M2 M3 寫(xiě)回 執(zhí)行 譯碼 取指 按序發(fā)射無(wú)序完成按序發(fā)射無(wú)序完成 I1 R1 M(A)I2 R2(R1)(R2)I3 R3(R3)(R4)I4 R4(R4)(R5)I5 R6 I6 R6(R6)(R7) 時(shí)間 (時(shí)鐘周期) I1 I5

38、 I3 I2 I4 I6 F 1 D1 S W1 F2 D2 A1 A2 W2 F1 D1 A1 A2 W1 F2 D2 M1 M2 M3 W2 F1 D1 L W1 F2 D2 M1 M2 M3 W2 1 2 3 4 5 6 7 8 9 流水線 1,I1 流水線 2,I2 I3 I4 I5 I6 4 5 6 7 8 9 流水線 1 流水線 2 完成序 成功 6R F2 D2 F1 W2 W1 D1 L S A1 A2 M1 M2 M3 寫(xiě)回 執(zhí)行 譯碼 取指 無(wú)序發(fā)射無(wú)序完成無(wú)序發(fā)射無(wú)序完成 I1 R1 M(A)I2 R2(R1)(R2)I3 R3(R3)(R4)I4 R4(R4)(R5)I

39、5 R6 I6 R6(R6)(R7) 1 2 3 4 5 6 7 F1 D1 A1 A2 W1 F2 D2 M1 M2 M3 W2 FW DW L W1 F1 D1 M1 M2 M3 W1 F2 D2 S W2 F2 D2 A1 A2 W2 流水線 1,I3 流水線 2,I4 先行窗口 I5 流水線 1,I6 流水線 2,I1 流水線 2,I2 (流水線 1) 1 2 3 I3 I6 I4 I1 I2 I5 流水線 1 流水線 2 先行 發(fā)射序 4 5 6 7 I5 I3 I6 I1 I4 I2 流水線 1 流水線 2 完成序 6R F2 FW D2 DW F1 W2 W1 D1 L S A1

40、 A2 M1 M2 M3 寫(xiě)回 執(zhí)行 譯碼 取指 先行窗口 F 1 D1 S W1 F2 D2 M1 M2 M3 W2 F1 D1 A1 A2 W1 F1 D1 L W1 F2 D2 M1 M2 M3 W2 F2 D2 A1 A2 W2 1 2 3 4 5 6 7 8 9 流水線 1,I1 流水線 2,I2 指令 時(shí)間 (時(shí)鐘周期) (a)按序發(fā)射, 按序完成成功 I1 I5 I3 I2 I4 I6 F 1 D1 S W1 F2 D2 A1 A2 W2 F1 D1 A1 A2 W1 F2 D2 M1 M2 M3 W2 F1 D1 L W1 F2 D2 M1 M2 M3 W2 1 2 3 4 5

41、 6 7 8 9 流水線 1,I1 流水線 2,I2 I3 I4 I5 I6 I3 I4 I5 I6 4 5 6 7 8 9 流水線 1 流水線 2 完成序成功 (b) 按序發(fā)射, 無(wú)序完成 1 2 3 4 5 6 7 F1 D1 A1 A2 W1 F2 D2 M1 M2 M3 W2 FW DW L W1 F1 D1 M1 M2 M3 W1 F2 D2 S W2 F2 D2 A1 A2 W2 流水線 1,I3 流水線 2,I4 先行窗口 I5 流水線 1,I6 流水線 2,I1 流水線 2,I2 (流水線 1) 1 2 3 I3 I6 I4 I1 I2 I5 流水線 1 流水線 2 先行發(fā)射序

42、 4 5 6 7 I5 I3 I6 I1 I4 I2 流水線 1 流水線 2完成序 (c) 無(wú)序發(fā)射, 無(wú)序完成 圖 4-20 超標(biāo)量流水線調(diào)度方法超標(biāo)量流水線的調(diào)度方法超標(biāo)量流水線的調(diào)度方法n無(wú)序執(zhí)行機(jī)制無(wú)序執(zhí)行機(jī)制n指令預(yù)取指令預(yù)取n功能部件之間可無(wú)序執(zhí)行功能部件之間可無(wú)序執(zhí)行n功能部件之內(nèi)有序執(zhí)行功能部件之內(nèi)有序執(zhí)行n可以提高程序執(zhí)行速度可以提高程序執(zhí)行速度浮點(diǎn)部件訪存部件指令啟動(dòng)指令預(yù)取定點(diǎn)運(yùn)算5.5.超流水線技術(shù)超流水線技術(shù) n超流水線:把一般完成一條指令的流水線段再超流水線:把一般完成一條指令的流水線段再細(xì)分成更多的流水線段。這樣原時(shí)鐘周期的幾細(xì)分成更多的流水線段。這樣原時(shí)鐘周期的

43、幾分之一的時(shí)間間隔就可以發(fā)射一條指令,并從分之一的時(shí)間間隔就可以發(fā)射一條指令,并從流水線流出一個(gè)結(jié)果流水線流出一個(gè)結(jié)果。 0 1 2 3 4 5 6 7 8 9 時(shí)間 (以基本周期表示) 取指 譯碼 執(zhí)行 寫(xiě)回 超流水線超標(biāo)量處理技術(shù)超流水線超標(biāo)量處理技術(shù) n同時(shí)使用超流水線和超標(biāo)量技術(shù)。同時(shí)使用超流水線和超標(biāo)量技術(shù)。n超標(biāo)量的度為超標(biāo)量的度為3,超流水線的度為,超流水線的度為3,超流水線超流水線超標(biāo)量的度為超標(biāo)量的度為9 9。 0 1 2 3 4 5 6 7 8 9 時(shí)間 (以基本周期表示) 取指 譯碼 執(zhí)行 寫(xiě)回 動(dòng)態(tài)多重指令啟動(dòng)周期時(shí)間(d) 超標(biāo)量超流水周期時(shí)間周期時(shí)間(c) 標(biāo)量超流

44、水(b) 超標(biāo)量流水(a) 一般標(biāo)量流水周期時(shí)間指令序列指令序列指令序列指令序列性能分析性能分析 n設(shè)有設(shè)有N N條不相關(guān)的指令通過(guò)流水線,流水線的基條不相關(guān)的指令通過(guò)流水線,流水線的基準(zhǔn)段為準(zhǔn)段為S S,超流水線的度為,超流水線的度為n n,超標(biāo)量流水線的,超標(biāo)量流水線的度為度為m m,則基準(zhǔn)標(biāo)量機(jī)、超流水線機(jī)、超標(biāo)量機(jī),則基準(zhǔn)標(biāo)量機(jī)、超流水線機(jī)、超標(biāo)量機(jī)的所需處理時(shí)間(基本時(shí)鐘周期)分別為:的所需處理時(shí)間(基本時(shí)鐘周期)分別為: 11 , 1NSTnNSnT/1, 1mmNSmT/1 ,流水線加速比流水線加速比1. 超流水線對(duì)基準(zhǔn)標(biāo)量流水線:超流水線對(duì)基準(zhǔn)標(biāo)量流水線: 2.2.超超標(biāo)量流水

45、線對(duì)基準(zhǔn)標(biāo)量流水線:標(biāo)量流水線對(duì)基準(zhǔn)標(biāo)量流水線: 3.3.超流水線超標(biāo)量流水線對(duì)基準(zhǔn)標(biāo)量流水線:超流水線超標(biāo)量流水線對(duì)基準(zhǔn)標(biāo)量流水線: 11/11, 11 , 1, 1NnSNSnnNSNSnTTnK 11/11 ,1 , 11 ,SmNSNmmmNSSNmTTmK mNmnSNSmnmnmNSNSnmTTnmK1/1,1 , 1,多重指令啟動(dòng)的局限性 n流水線中功能部件之間的不平衡性n一個(gè)時(shí)鐘周期中啟動(dòng)的多條指令可能資源沖突n每個(gè)循環(huán)迭代中的開(kāi)銷n一般存在數(shù)據(jù)相關(guān)性n循環(huán)體的數(shù)據(jù)相關(guān)性n需要大量相關(guān)性檢測(cè)邏輯n控制相關(guān)性n縮短了轉(zhuǎn)移指令的間距多重啟動(dòng)的相關(guān)性檢測(cè)邏輯nn重啟動(dòng)的指令流水線需要

46、比較操作的數(shù)量:2(n-1) + 2(n-2) + + 21 = n2 n例例6 超標(biāo)度為超標(biāo)度為2的超標(biāo)量流水線結(jié)構(gòu)模型如圖的超標(biāo)量流水線結(jié)構(gòu)模型如圖5.39(a)所示。它分為所示。它分為4個(gè)段,即個(gè)段,即取指取指(F)段、段、 譯碼譯碼(D)段、執(zhí)行段、執(zhí)行(E)段和寫(xiě)回段和寫(xiě)回(W)段。段。F,D,W 段只需段只需1個(gè)時(shí)鐘個(gè)時(shí)鐘周期完成。周期完成。E段有多個(gè)功能部件,其中段有多個(gè)功能部件,其中LOAD/STORE部件完成數(shù)據(jù)部件完成數(shù)據(jù)cache訪問(wèn),訪問(wèn),只需一個(gè)時(shí)鐘周期;加法器完成需只需一個(gè)時(shí)鐘周期;加法器完成需2個(gè)時(shí)鐘周期,乘法器需個(gè)時(shí)鐘周期,乘法器需3個(gè)時(shí)鐘周期,它個(gè)時(shí)鐘周期,它

47、們都已流水化。們都已流水化。F段和段和D段要求成對(duì)輸入。段要求成對(duì)輸入。E段有內(nèi)部數(shù)據(jù)定向傳送,結(jié)果生段有內(nèi)部數(shù)據(jù)定向傳送,結(jié)果生成即可使用。成即可使用。 現(xiàn)有如下現(xiàn)有如下6條指令序列:條指令序列: I1LAD R1,A ;M(A)R1,M(A)是存儲(chǔ)器單元是存儲(chǔ)器單元I2 ADD R2,R1 ;(R2) + (R1)-R2I3 ADD R3,R4;(R3) + (R4)-R3I4 MUL R4,R5;(R4)(R5)-R4I5 LAD R6,B ;M(B)R6,M(B)是存儲(chǔ)器單元是存儲(chǔ)器單元I6 MUL R6,R7;(R6)(R7) R6其中其中 I1,I2有有RAW相關(guān),相關(guān), I3,I4有有WAR相關(guān),相關(guān), I5,I6有有WAW相關(guān)和相關(guān)和RAW相關(guān)。相關(guān)。請(qǐng)畫(huà)出:請(qǐng)畫(huà)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論