




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 流水線流水線CPU并行性概念并行性概念 1并行性的含義并行性的含義 同時性同時性指兩個或者兩個以上事件在同一時刻發(fā)生。指兩個或者兩個以上事件在同一時刻發(fā)生。并發(fā)性并發(fā)性指兩個或者兩個以上事件在同一時間間隔內(nèi)發(fā)生。指兩個或者兩個以上事件在同一時間間隔內(nèi)發(fā)生。流水流水CPUCPU2 并行性概念并行性概念2 2并行處理技術(shù)的主要形式并行處理技術(shù)的主要形式 (1) 時間并行時間并行 時間重疊時間重疊 讓多個處理過程在時間上相互錯開,輪流重疊地使用讓多個處理過程在時間上相互錯開,輪流重疊地使用 同一套硬件的各個部分,從而贏得高速度。同一套硬件的各個部分,從而贏得高速度。實現(xiàn)方式:實現(xiàn)方式:采用流水處理
2、部件。采用流水處理部件。(2 2)空間并行空間并行 資源重復(fù)資源重復(fù)例:奔騰例:奔騰CPU采用的超標量流水技術(shù)。采用的超標量流水技術(shù)。用多個相同部件處理多個事件。用多個相同部件處理多個事件。實現(xiàn)方式:實現(xiàn)方式:多處理器系統(tǒng)和多計算機系統(tǒng)或單處理器系統(tǒng)。多處理器系統(tǒng)和多計算機系統(tǒng)或單處理器系統(tǒng)。(3) (3) 時間并行時間并行+ +空間并行空間并行既采用時間并行性又采用空間并行性。既采用時間并行性又采用空間并行性。 流水線計算機的系統(tǒng)組成流水線計算機的系統(tǒng)組成 現(xiàn)代流水線計算機系統(tǒng)現(xiàn)代流水線計算機系統(tǒng)組成原理如左圖所示。其中組成原理如左圖所示。其中CPU按流水線方式組織,按流水線方式組織,通常由
3、三部分組成:指令部通常由三部分組成:指令部件、指令隊列、執(zhí)行部件。件、指令隊列、執(zhí)行部件。這三個功能部件可以組成一這三個功能部件可以組成一個個3級流水線。級流水線。圖圖3.33 3.33 流水線計算機系統(tǒng)組成原理示意圖流水線計算機系統(tǒng)組成原理示意圖 流水線流水線CPUCPU的結(jié)構(gòu)的結(jié)構(gòu) 指令流水線原理指令流水線原理 問題的提出問題的提出 串行執(zhí)行方式存在部件利用率不高(有閑置時間)的問題。串行執(zhí)行方式存在部件利用率不高(有閑置時間)的問題。 CPU周期周期使用部件使用部件閑置部件閑置部件取指令取指令PC,MS,IR等等ALU,GRS取數(shù)取數(shù) MS PC,ALU,GRS執(zhí)行執(zhí)行 ALU,GRS
4、PC,MS每個過程段所用的部件不同每個過程段所用的部件不同在某個過程段時,其他過程段的部件處于空閑在某個過程段時,其他過程段的部件處于空閑(2 2)流水線工作原理)流水線工作原理 指令周期的三個主要過程:指令周期的三個主要過程:圖圖5.30 指令周期的三個過程段指令周期的三個過程段取數(shù)取數(shù)取指取指執(zhí)行執(zhí)行入入出出 指令執(zhí)行過程的時空圖指令執(zhí)行過程的時空圖 a a非流水線時空圖非流水線時空圖 I1I1I1I2I2I2I3I3I3I1I2I3空間空間S時間時間T執(zhí)行執(zhí)行取數(shù)取數(shù)取指取指(a)非流水線時空圖)非流水線時空圖b b標量流水線時空圖標量流水線時空圖I1I1I1I2I2I2I3I3I3I4
5、I4I4I1I2I3空間空間S時間時間T執(zhí)行執(zhí)行取數(shù)取數(shù)取指取指(b)標量流水線時空圖)標量流水線時空圖I4圖圖5.31非流水線與流水線對比非流水線與流水線對比 c. 超標量流水線時空圖超標量流水線時空圖I1I3I5I2I4I6I1I3I5I7I2I4I6I8I1I3I5I7I9I2I4I6I8I10I1 I2 I3 I4 I5 I6執(zhí)行執(zhí)行取數(shù)取數(shù)取指取指空間空間S時間時間T(C)超標量流水線時空圖)超標量流水線時空圖流水線流水線 vs vs 非流水線非流水線 非流水線指令的執(zhí)行是串行的;非流水線指令的執(zhí)行是串行的; 標量流水線從滿載起,每經(jīng)標量流水線從滿載起,每經(jīng)1 1個周期做完一條指令;
6、個周期做完一條指令; 超標量流水線,提高了吞吐量,但需二套(或二超標量流水線,提高了吞吐量,但需二套(或二 套以上)流水線的硬件及其他電路。(見附圖)套以上)流水線的硬件及其他電路。(見附圖) 常見的超標量流水線結(jié)構(gòu)(3 3)流水線工作方式的特點)流水線工作方式的特點 具有時間的并行性;具有時間的并行性; 流水線分工越細,可同時運行的指令越多,流水線分工越細,可同時運行的指令越多, 吞吐率就越高。吞吐率就越高。 但需增加硬件,控制更復(fù)雜但需增加硬件,控制更復(fù)雜; 流水線每個階段的執(zhí)行時間應(yīng)盡量一致流水線每個階段的執(zhí)行時間應(yīng)盡量一致; 流水線充滿(滿載)時達到最大的吞吐率。流水線充滿(滿載)時達
7、到最大的吞吐率。 流水線相關(guān)問題流水線相關(guān)問題流水線相關(guān):是指鄰近指令之間由于某流水線相關(guān):是指鄰近指令之間由于某種關(guān)系,出現(xiàn)了不能同時被流水操作的種關(guān)系,出現(xiàn)了不能同時被流水操作的現(xiàn)象?,F(xiàn)象。 流水線的相關(guān)會造成流水線的斷流,影流水線的相關(guān)會造成流水線的斷流,影響整個流水線的效率。響整個流水線的效率。 造成流水線相關(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) 在同一機器時鐘周期內(nèi)爭用同一個功能部件所發(fā)生的沖突。在同一機器時鐘周期內(nèi)爭用同一個功能部件所發(fā)生的沖突。 時鐘時
8、鐘指令指令 12345I1取指取指譯碼譯碼取數(shù)取數(shù)執(zhí)行執(zhí)行I2取指取指譯碼譯碼取數(shù)取數(shù)執(zhí)行執(zhí)行I3取指取指譯碼譯碼取數(shù)取數(shù)在時鐘在時鐘3 3發(fā)生爭用內(nèi)存的問題發(fā)生爭用內(nèi)存的問題資源相關(guān)。資源相關(guān)。 解決方法:解決方法: 將取指操作推遲一個時鐘進行;將取指操作推遲一個時鐘進行; 增設(shè)一個存儲器,將指令和數(shù)據(jù)分開存放;增設(shè)一個存儲器,將指令和數(shù)據(jù)分開存放; 采用雙端口存儲器。采用雙端口存儲器。 局部性相關(guān):局部性相關(guān):數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) 在程序中,一條指令的執(zhí)行需等前一條指令執(zhí)行完后才在程序中,一條指令的執(zhí)行需等前一條指令執(zhí)行完后才能進行,則有數(shù)據(jù)相關(guān)。能進行,則有數(shù)據(jù)相關(guān)。 例:例: 132321
9、RRRRRRSUB)()(;,451514RRRRRRADD)()(;,取數(shù)取數(shù)譯碼譯碼取指取指ADD執(zhí)行執(zhí)行取數(shù)取數(shù)譯碼譯碼取指取指SUB4321 時鐘時鐘指令指令解決方法:解決方法: 推遲推遲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)移條件形成。 猜測法猜測法:選擇出現(xiàn)概率較高的分支
10、進行選擇出現(xiàn)概率較高的分支進行指令指令預(yù)取。預(yù)取。 【例例4】 流水線中有三類數(shù)據(jù)相關(guān)沖突:流水線中有三類數(shù)據(jù)相關(guān)沖突:寫后讀相關(guān);讀后寫相關(guān);寫后寫相關(guān)。寫后讀相關(guān);讀后寫相關(guān);寫后寫相關(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)是存儲器單元是存儲器單元 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指令運算結(jié)果應(yīng)先寫入指令運算結(jié)果應(yīng)先寫入R1,然,然后在后在I2指令中讀出指令中讀出R1內(nèi)容。由于內(nèi)容。由于I2指令進入流水線,指令進入流水線,變成變成I2指令在指令在I1指令寫入指令寫入R1前就讀出前就讀出R1內(nèi)容,發(fā)生內(nèi)容,發(fā)生RAW(寫后讀)相關(guān)。(寫后讀)相關(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)是存儲器單元是存儲器單元 I4: ADD R3,R4,R5 ; (R4)+(R5)-R3 第第(2)組指令中,組指令中,I3指令應(yīng)先讀出指令應(yīng)先讀出R3內(nèi)容并存入存內(nèi)容并存入存儲單元儲單元M(x),然后在,然后在I4指令中將運算結(jié)果寫入指令中將運算結(jié)果寫入R3。但。但由于由于I4指令進入流水線,變成指令進入流水線,變成I4指令在指令在I3指令讀出指令讀出R3內(nèi)內(nèi)容前就寫入容前就寫入R3,發(fā)生,發(fā)生WAR(讀后寫)相關(guān)。(讀后寫)相關(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指令的加法運算完成指令的加法運算完成時間早于時間早于I5指令的乘法運算時間,變成指令指令的乘法運算時間,變成指令I(lǐng)6在在指令指令I(lǐng)5寫入寫入R3前就寫入前就寫入R3,導(dǎo)致,導(dǎo)致R3的內(nèi)容錯誤,的內(nèi)容錯誤,發(fā)生發(fā)生WAW(寫后寫)相關(guān)寫后寫)相關(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è)置多個功能部件設(shè)置多個功能部件n內(nèi)部數(shù)據(jù)定向內(nèi)部數(shù)據(jù)定向靜態(tài)調(diào)度靜態(tài)調(diào)度動態(tài)調(diào)度動態(tài)調(diào)度(1)指令調(diào)度法)指令調(diào)度法
14、n指令調(diào)度指令調(diào)度n改變指令的執(zhí)行順序以解決相關(guān)性帶來的問題改變指令的執(zhí)行順序以解決相關(guān)性帶來的問題n靜態(tài)指令調(diào)度靜態(tài)指令調(diào)度n改變程序中指令的位置改變程序中指令的位置n由編譯程序?qū)崿F(xiàn)由編譯程序?qū)崿F(xiàn)n動態(tài)指令調(diào)度動態(tài)指令調(diào)度n改變指令的實際執(zhí)行順序改變指令的實際執(zhí)行順序n不改變?nèi)≈噶詈椭噶钭g碼的順序不改變?nèi)≈噶詈椭噶钭g碼的順序n無序執(zhí)行無序執(zhí)行n由控制器硬件實現(xiàn)由控制器硬件實現(xiàn)計分牌法計分牌法 保存站法保存站法 靜態(tài)調(diào)度:流水線延遲靜態(tài)調(diào)度:流水線延遲取指 F譯碼 D發(fā)射 I執(zhí)行 E執(zhí)行 E執(zhí)行 E寫回 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 條指令順序時間X=Y+ZA=BCn指令發(fā)射:啟動指令去處理器功能單元執(zhí)行的過程指令發(fā)射:啟動指令去處理器功能單元執(zhí)行的過程靜態(tài)調(diào)度:編譯檢測靜態(tài)調(diào)度:編譯檢測n編譯器優(yōu)化后,所需時間為編譯器優(yōu)化后,所需時間為
16、17個時鐘周期個時鐘周期 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)度后的流水線延遲動態(tài)調(diào)度動態(tài)調(diào)度-計分牌法計分牌法 取指令 F 譯碼 D 發(fā)射 I 執(zhí)行 E 執(zhí)行 E 執(zhí)行 E 執(zhí)行 E 執(zhí)行 E 寫回 W 寫回 W 寫回 W 計分牌 (a)CDC66
17、00 處理機的流水線結(jié)構(gòu) 執(zhí)行 E 計分牌計分牌是一個位向量、每一位對應(yīng)寄存器堆中的一個寄存器。是一個位向量、每一位對應(yīng)寄存器堆中的一個寄存器。 指令發(fā)射時,目的寄存器在計分牌中相應(yīng)位指令發(fā)射時,目的寄存器在計分牌中相應(yīng)位 置置1; 寫回后,寫回后,目的寄存器在目的寄存器在計分牌計分牌中相應(yīng)位中相應(yīng)位 清清0。 判斷指令可否發(fā)射的條件是:判斷指令可否發(fā)射的條件是: 該指令所有目的寄存器及源寄存器在該指令所有目的寄存器及源寄存器在計分牌計分牌中對應(yīng)位都為中對應(yīng)位都為0 ;否則等待上述位清除。;否則等待上述位清除。解決數(shù)據(jù)相關(guān)采用定向傳送技術(shù):解決數(shù)據(jù)相關(guān)采用定向傳送技術(shù): 將前面指令執(zhí)行的結(jié)果直
18、接送給后面指令所需此源操作將前面指令執(zhí)行的結(jié)果直接送給后面指令所需此源操作數(shù)的功能部件數(shù)的功能部件 動態(tài)調(diào)度動態(tài)調(diào)度-計分牌法計分牌法 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)計分牌法動態(tài)調(diào)度后的流水線 圖4-15 基于計分牌發(fā)射邏輯的流水線調(diào)度過程 動態(tài)調(diào)度動態(tài)調(diào)度-計分牌法計分牌法動態(tài)調(diào)度動態(tài)調(diào)度-計分牌法計分牌法依靠流水線停頓來解決相關(guān)性依靠流水線停頓來解決相關(guān)性沒有消除數(shù)據(jù)相關(guān)沒有消除數(shù)據(jù)相關(guān)集中式調(diào)度集中式調(diào)度n記分牌部件是性能瓶頸記分牌部件是性能瓶頸記分牌的缺點記分牌的缺點動態(tài)調(diào)度動態(tài)調(diào)度-保存站法保存站法 F D I RS RS RS RS E E E E E E W W . . . RS(a)保存站結(jié)構(gòu)動態(tài)調(diào)度動態(tài)調(diào)度-保存站法保存站法n發(fā)射發(fā)射n如果有空的保存站,就發(fā)射指令;如果有空的保存站,就發(fā)射指令;n只要操作數(shù)有效,就將其取到
20、保存站,避免指令發(fā)射只要操作數(shù)有效,就將其取到保存站,避免指令發(fā)射時才到寄存器中取數(shù)據(jù)的情況時才到寄存器中取數(shù)據(jù)的情況.n如果沒有空的保存站或緩存部件,則指令暫等如果沒有空的保存站或緩存部件,則指令暫等n執(zhí)行執(zhí)行n一條指令發(fā)射時,存放操作數(shù)的寄存器名被換成為對一條指令發(fā)射時,存放操作數(shù)的寄存器名被換成為對應(yīng)于該寄存器的保存站名稱(應(yīng)于該寄存器的保存站名稱(寄存器重命名寄存器重命名)n寫結(jié)果寫結(jié)果n結(jié)果寫回時通過數(shù)據(jù)總線直接送到等待此結(jié)果的所有結(jié)果寫回時通過數(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) 保存站法動態(tài)調(diào)度后流水線圖4-14 保存站動態(tài)調(diào)度法動態(tài)調(diào)度動態(tài)調(diào)度-保存站法保存站法具有分布的阻塞檢測機制;具有分布的阻塞檢測機制;消除了數(shù)據(jù)寫后寫和先讀后寫相關(guān)導(dǎo)致的阻塞消除了數(shù)據(jù)寫后寫和先讀后寫相關(guān)導(dǎo)致的阻塞保存站法的優(yōu)點保存站法的優(yōu)點( (相對記分牌法相對記分牌法) )動態(tài)調(diào)度動態(tài)調(diào)度-保存站法保存站法保存站法又稱作保存站法又稱作 To
22、masuloTomasulo調(diào)度法調(diào)度法(2)設(shè)置多個功能部件)設(shè)置多個功能部件流水線的瓶頸會在某一個流水線段產(chǎn)生;流水線的瓶頸會在某一個流水線段產(chǎn)生;這種瓶頸段一定對應(yīng)于預(yù)約表中符號最多這種瓶頸段一定對應(yīng)于預(yù)約表中符號最多的那一行;的那一行;可設(shè)置幾個相同的段來解決該段的瓶頸問可設(shè)置幾個相同的段來解決該段的瓶頸問題。題。例:例: S2 S3 S1 S4 t t t 3t S2 S3 S1 S4 t t t 3t S3 S3 (2)設(shè)置多個功能部件)設(shè)置多個功能部件(3)內(nèi)部數(shù)據(jù)定向)內(nèi)部數(shù)據(jù)定向內(nèi)部數(shù)據(jù)定向的原則:是要消除一些不內(nèi)部數(shù)據(jù)定向的原則:是要消除一些不必要的訪存儲器或訪寄存器的中間
23、環(huán)節(jié),必要的訪存儲器或訪寄存器的中間環(huán)節(jié),從而減少資源和數(shù)據(jù)的相關(guān)性,以提高從而減少資源和數(shù)據(jù)的相關(guān)性,以提高流水線的吞吐率。流水線的吞吐率。數(shù)據(jù)定向分成數(shù)據(jù)定向分成:寫讀定向?qū)懽x定向、讀讀定讀讀定向向、寫寫定向。寫寫定向。 (3)內(nèi)部數(shù)據(jù)定向)內(nèi)部數(shù)據(jù)定向n可減少或者消除數(shù)據(jù)相關(guān)性帶來的影響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)通路 先寫 先寫 后讀 U2 M U1 寫讀定向 (3)內(nèi)部數(shù)據(jù)定向)內(nèi)部數(shù)據(jù)定向 讀讀定向 U
24、2 M U1 先讀 后讀 相關(guān)通路 先讀 U2 M U1 寫寫定向 U2 M U1 先寫 后寫 U2 M U1 后寫 2. 全局性相關(guān):變址轉(zhuǎn)移全局性相關(guān):變址轉(zhuǎn)移全局性相關(guān)由轉(zhuǎn)移指令引起;全局性相關(guān)由轉(zhuǎn)移指令引起;當指令流足夠長時,轉(zhuǎn)移引起的流水線當指令流足夠長時,轉(zhuǎn)移引起的流水線性能將會下降性能將會下降4646左右。左右。解決方法:解決方法: 延遲轉(zhuǎn)移法延遲轉(zhuǎn)移法 轉(zhuǎn)移預(yù)測法轉(zhuǎn)移預(yù)測法 1)延遲轉(zhuǎn)移法)延遲轉(zhuǎn)移法n延遲轉(zhuǎn)移法:目的是轉(zhuǎn)移成功時,轉(zhuǎn)移指令后延遲轉(zhuǎn)移法:目的是轉(zhuǎn)移成功時,轉(zhuǎn)移指令后面進入流水線的指令不作廢,想辦法使之有用,面進入流水線的指令不作廢,想辦法使之有用,以減少延遲時間
25、的損失。以減少延遲時間的損失。 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í)行在流水線中提前進行1)延遲轉(zhuǎn)移法)延遲轉(zhuǎn)移法2)轉(zhuǎn)移預(yù)測法)轉(zhuǎn)移預(yù)測法n轉(zhuǎn)移預(yù)測法:在程序執(zhí)行以前,就靜態(tài)地根據(jù)轉(zhuǎn)移預(yù)測法:在程序執(zhí)行以前,就靜態(tài)地根據(jù)轉(zhuǎn)移代碼的類型或動態(tài)地根據(jù)轉(zhuǎn)移歷史表來預(yù)轉(zhuǎn)移代碼的類型或動態(tài)地根據(jù)轉(zhuǎn)移歷史表來預(yù)測下一次轉(zhuǎn)移是否會成功。測下一次轉(zhuǎn)移是否會成功。n得到的預(yù)測值都是試探性的值,不能把結(jié)果得到的預(yù)測值都是試探性的值,不能把結(jié)果作作為最后結(jié)果為最后結(jié)果。n根據(jù)運行結(jié)果,根據(jù)運行結(jié)果,如果預(yù)測正確,把試探性結(jié)果如果預(yù)測正確,把試探性結(jié)果上的試探標記去掉,成為正式
27、結(jié)果。上的試探標記去掉,成為正式結(jié)果。n如果不正確,則要清除試探性結(jié)果。如果不正確,則要清除試探性結(jié)果。利用預(yù)取緩沖器進行轉(zhuǎn)移預(yù)測利用預(yù)取緩沖器進行轉(zhuǎn)移預(yù)測 n預(yù)取緩沖器有三種類型:預(yù)取緩沖器有三種類型: 順序緩沖器:順序緩沖器:順序流入流水線的指令。順序流入流水線的指令。 目標緩沖器目標緩沖器:從轉(zhuǎn)移目標開始取出的指令。從轉(zhuǎn)移目標開始取出的指令。 循環(huán)緩沖器循環(huán)緩沖器:保存了一個小循環(huán)的順序指令。保存了一個小循環(huán)的順序指令。n順序緩沖器和目標緩沖器在條件轉(zhuǎn)移指令到來之順序緩沖器和目標緩沖器在條件轉(zhuǎn)移指令到來之前,就按預(yù)測策略裝滿各自的指令。在轉(zhuǎn)移條件前,就按預(yù)測策略裝滿各自的指令。在轉(zhuǎn)移條件
28、被檢測出之后,選取兩個緩沖器中的一個緩沖器被檢測出之后,選取兩個緩沖器中的一個緩沖器的指令流進入流水線,而另一個緩沖器中的指令的指令流進入流水線,而另一個緩沖器中的指令流被作廢。流被作廢。 D I E E E W 4 3 2 1 F M 目標緩沖器FIFO 順序緩沖器FIFO 4 3 2 1 n按原程序順序,經(jīng)順序緩沖器一方把指令流裝按原程序順序,經(jīng)順序緩沖器一方把指令流裝入流水線。入流水線。n預(yù)測正確的話,取消試探標志,結(jié)果存入用戶預(yù)測正確的話,取消試探標志,結(jié)果存入用戶寄存器或存儲器,報廢掉目標緩沖器中指令。寄存器或存儲器,報廢掉目標緩沖器中指令。n如果預(yù)測錯誤,重新從目標緩沖器裝入指令到
29、如果預(yù)測錯誤,重新從目標緩沖器裝入指令到流水線。流水線。 轉(zhuǎn)移預(yù)測策略轉(zhuǎn)移預(yù)測策略 i-1 i i+1 i+2 p+1 p+2 猜測執(zhí)行路徑 實際執(zhí)行路徑 分支指令 得到分支結(jié)果 分支預(yù)測執(zhí)行不成功和重新執(zhí)行過程分支預(yù)測執(zhí)行不成功和重新執(zhí)行過程 轉(zhuǎn)移預(yù)測策略轉(zhuǎn)移預(yù)測策略 分支預(yù)測branch predictionn靜態(tài)n永遠不轉(zhuǎn)移n永遠轉(zhuǎn)移n后向轉(zhuǎn)移n動態(tài)n1位n2位n多位(1級,2級) 1位動態(tài)分支預(yù)測n根據(jù)上次轉(zhuǎn)移情況預(yù)測下次情況指令預(yù)測位010110 1 0 分支不成功 分支成功 分支不成功 分支成功 2位動態(tài)分支預(yù)測n根據(jù)上兩次轉(zhuǎn)移情況預(yù)測下次分支0000111111001001預(yù)測發(fā)
30、生(11)預(yù)測不發(fā)生(00)預(yù)測不發(fā)生(01)預(yù)測發(fā)生(10)圖8-6 兩位預(yù)測狀態(tài)圖未發(fā)生發(fā)生未發(fā)生未發(fā)生發(fā)生發(fā)生發(fā)生未發(fā)生預(yù)測狀態(tài)機00: strongly not taken01: weakly not taken10: weakly taken11: strongly taken例例n設(shè)某轉(zhuǎn)移指令在每次執(zhí)行過程的轉(zhuǎn)移序列如下,T表示轉(zhuǎn)移發(fā)生,N表示轉(zhuǎn)移未發(fā)生:T, T, T, N, T, T, N, T, N, N, T, N, N,n試分析在每次對該指令進行預(yù)測的狀態(tài)和預(yù)測的成功率。假設(shè): 1)采用1位動態(tài)預(yù)測,預(yù)測器初始狀態(tài)為T; 2)采用2位動態(tài)預(yù)測,預(yù)測器初始狀態(tài)為11。解答(
31、1)每次對指令進行預(yù)測時的狀態(tài)和結(jié)果如下n預(yù)測成功6次,成功率為0.46。事件序列TTTNTTNTNNTNN預(yù)測器狀態(tài)TTTTNTTNTNNTN準確性YYYYYY解答(2)每次對指令進行預(yù)測時的狀態(tài)和結(jié)果如下n預(yù)測成功8次,成功率為0.62。事件序列TTTNTTNTNNTNN預(yù)測器狀態(tài)11111111101111101110000100預(yù)測結(jié)果TTTTTTTTTTNNN準確性YYYYYYYY3. 全局性相關(guān):中斷全局性相關(guān):中斷n中斷也會引起轉(zhuǎn)移;中斷也會引起轉(zhuǎn)移;n中斷一般是不可預(yù)測的;中斷一般是不可預(yù)測的;n中斷處理目的不是如何縮短斷流時中斷處理目的不是如何縮短斷流時間,而是如何處理好斷點
32、現(xiàn)場和中間,而是如何處理好斷點現(xiàn)場和中斷后的恢復(fù)問題。斷后的恢復(fù)問題。中斷的處理(中斷的處理(1)n不精確斷點法:不論在哪條指令的哪一不精確斷點法:不論在哪條指令的哪一段發(fā)生了中斷申請,都不再允許當時還段發(fā)生了中斷申請,都不再允許當時還未進入流水線的后繼指令再進入,但已未進入流水線的后繼指令再進入,但已在流水線中的指令可流動到執(zhí)行完為止,在流水線中的指令可流動到執(zhí)行完為止,然后再轉(zhuǎn)入中斷處理程序。然后再轉(zhuǎn)入中斷處理程序。n例:輸入輸出設(shè)備申請的中斷例:輸入輸出設(shè)備申請的中斷中斷的處理(中斷的處理(2)n精確斷點法:是指采用后援寄存器來保精確斷點法:是指采用后援寄存器來保存進入流水線的各指令的現(xiàn)
33、場狀態(tài)。所存進入流水線的各指令的現(xiàn)場狀態(tài)。所以不管在進入流水線的指令的任何段發(fā)以不管在進入流水線的指令的任何段發(fā)生中斷申請,斷點都是精確的。生中斷申請,斷點都是精確的。n例:執(zhí)行錯誤的中斷例:執(zhí)行錯誤的中斷4. 超標量流水線超標量流水線4.2.1 4.2.1 超標量流水線超標量流水線n標量流水線標量流水線:在每個時鐘周期只發(fā)射一條指令,在每個時鐘周期只發(fā)射一條指令,并要求每個時鐘周期只從流水線流出一條指令并要求每個時鐘周期只從流水線流出一條指令的結(jié)果。的結(jié)果。n超標量流水線超標量流水線:是指在每個時鐘周期向流水線是指在每個時鐘周期向流水線發(fā)射多條指令,并能從流水線流出多個結(jié)果發(fā)射多條指令,并能
34、從流水線流出多個結(jié)果。 例:三發(fā)射超標量流水線例:三發(fā)射超標量流水線 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時間 (時鐘周期)指令圖 4-18 三發(fā)射超標量流水線n超標量流水線會因數(shù)據(jù)相關(guān)、資源沖突、超標量流水線會因數(shù)據(jù)相關(guān)、資源沖突、轉(zhuǎn)移指令、循環(huán)及中斷等造成流水線的轉(zhuǎn)移指令、循環(huán)及中斷等造成流水線的斷流;斷流;n斷流延遲時間與超標量流水線的調(diào)度方斷流延遲時間與超標量流水線的調(diào)度方法有關(guān)法有關(guān) ;n
35、調(diào)度方法有:調(diào)度方法有: 按序發(fā)射按序完成按序發(fā)射按序完成 按序發(fā)射無序完成按序發(fā)射無序完成 無序發(fā)射無序完成無序發(fā)射無序完成 超標量流水線的調(diào)度方法超標量流水線的調(diào)度方法有序執(zhí)行 vs 無序執(zhí)行 n無序執(zhí)行無序執(zhí)行n后續(xù)指令比前面的指令先開始進入執(zhí)行階段后續(xù)指令比前面的指令先開始進入執(zhí)行階段n后續(xù)指令比前面的指令先執(zhí)行完成后續(xù)指令比前面的指令先執(zhí)行完成 n真相關(guān)的指令停頓真相關(guān)的指令停頓n繼續(xù)讀取操作數(shù)繼續(xù)讀取操作數(shù)n沒有改變?nèi)≈负妥g碼的順序沒有改變?nèi)≈负妥g碼的順序n有序執(zhí)行有序執(zhí)行n有序開始執(zhí)行有序開始執(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 寫回 執(zhí)行 譯碼 取指 超標量流水線的調(diào)度方法超標量流水線的調(diào)度方法取指 1取指 2譯碼 1譯碼 2乘法 1 乘法 2 乘法 3加法 1 加法 2邏輯訪存寫回 1寫回 2取指階段譯碼階段執(zhí)行階段寫回階段超標量流水線的調(dià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 指令 時間 (時鐘周期) I3 I4 I5 I6 6R F2 D2 F1 W2 W1 D1 L S A1 A2 M1 M2 M3 寫回 執(zhí)行 譯碼 取指 按序發(fā)射無序完成按序發(fā)射無序完成 I1 R1 M(A)I2 R2(R1)(R2)I3 R3(R3)(R4)I4 R4(R4)(R5)I5 R6 I6 R6(R6)(R7) 時間 (時鐘周期) 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 寫回 執(zhí)行 譯碼 取指 無序發(fā)射無序完成無序發(fā)射無序完成 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 寫回 執(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 指令 時間 (時鐘周期) (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ā)射, 無序完成 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) 無序發(fā)射, 無序完成 圖 4-20 超標量流水線調(diào)度方法超標量流水線的調(diào)度方法超標量流水線的調(diào)度方法n無序執(zhí)行機制無序執(zhí)行機制n指令預(yù)取指令預(yù)取n功能部件之間可無序執(zhí)行功能部件之間可無序執(zhí)行n功能部件之內(nèi)有序執(zhí)行功能部件之內(nèi)有序執(zhí)行n可以提高程序執(zhí)行速度可以提高程序執(zhí)行速度浮點部件訪存部件指令啟動指令預(yù)取定點運算5.5.超流水線技術(shù)超流水線技術(shù) n超流水線:把一般完成一條指令的流水線段再超流水線:把一般完成一條指令的流水線段再細分成更多的流水線段。這樣原時鐘周期的幾細分成更多的流水線段。這樣原時鐘周期的
43、幾分之一的時間間隔就可以發(fā)射一條指令,并從分之一的時間間隔就可以發(fā)射一條指令,并從流水線流出一個結(jié)果流水線流出一個結(jié)果。 0 1 2 3 4 5 6 7 8 9 時間 (以基本周期表示) 取指 譯碼 執(zhí)行 寫回 超流水線超標量處理技術(shù)超流水線超標量處理技術(shù) n同時使用超流水線和超標量技術(shù)。同時使用超流水線和超標量技術(shù)。n超標量的度為超標量的度為3,超流水線的度為,超流水線的度為3,超流水線超流水線超標量的度為超標量的度為9 9。 0 1 2 3 4 5 6 7 8 9 時間 (以基本周期表示) 取指 譯碼 執(zhí)行 寫回 動態(tài)多重指令啟動周期時間(d) 超標量超流水周期時間周期時間(c) 標量超流
44、水(b) 超標量流水(a) 一般標量流水周期時間指令序列指令序列指令序列指令序列性能分析性能分析 n設(shè)有設(shè)有N N條不相關(guān)的指令通過流水線,流水線的基條不相關(guān)的指令通過流水線,流水線的基準段為準段為S S,超流水線的度為,超流水線的度為n n,超標量流水線的,超標量流水線的度為度為m m,則基準標量機、超流水線機、超標量機,則基準標量機、超流水線機、超標量機的所需處理時間(基本時鐘周期)分別為:的所需處理時間(基本時鐘周期)分別為: 11 , 1NSTnNSnT/1, 1mmNSmT/1 ,流水線加速比流水線加速比1. 超流水線對基準標量流水線:超流水線對基準標量流水線: 2.2.超超標量流水
45、線對基準標量流水線:標量流水線對基準標量流水線: 3.3.超流水線超標量流水線對基準標量流水線:超流水線超標量流水線對基準標量流水線: 11/11, 11 , 1, 1NnSNSnnNSNSnTTnK 11/11 ,1 , 11 ,SmNSNmmmNSSNmTTmK mNmnSNSmnmnmNSNSnmTTnmK1/1,1 , 1,多重指令啟動的局限性 n流水線中功能部件之間的不平衡性n一個時鐘周期中啟動的多條指令可能資源沖突n每個循環(huán)迭代中的開銷n一般存在數(shù)據(jù)相關(guān)性n循環(huán)體的數(shù)據(jù)相關(guān)性n需要大量相關(guān)性檢測邏輯n控制相關(guān)性n縮短了轉(zhuǎn)移指令的間距多重啟動的相關(guān)性檢測邏輯nn重啟動的指令流水線需要
46、比較操作的數(shù)量:2(n-1) + 2(n-2) + + 21 = n2 n例例6 超標度為超標度為2的超標量流水線結(jié)構(gòu)模型如圖的超標量流水線結(jié)構(gòu)模型如圖5.39(a)所示。它分為所示。它分為4個段,即個段,即取指取指(F)段、段、 譯碼譯碼(D)段、執(zhí)行段、執(zhí)行(E)段和寫回段和寫回(W)段。段。F,D,W 段只需段只需1個時鐘個時鐘周期完成。周期完成。E段有多個功能部件,其中段有多個功能部件,其中LOAD/STORE部件完成數(shù)據(jù)部件完成數(shù)據(jù)cache訪問,訪問,只需一個時鐘周期;加法器完成需只需一個時鐘周期;加法器完成需2個時鐘周期,乘法器需個時鐘周期,乘法器需3個時鐘周期,它個時鐘周期,它
47、們都已流水化。們都已流水化。F段和段和D段要求成對輸入。段要求成對輸入。E段有內(nèi)部數(shù)據(jù)定向傳送,結(jié)果生段有內(nèi)部數(shù)據(jù)定向傳送,結(jié)果生成即可使用。成即可使用。 現(xiàn)有如下現(xiàn)有如下6條指令序列:條指令序列: I1LAD R1,A ;M(A)R1,M(A)是存儲器單元是存儲器單元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)是存儲器單元是存儲器單元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)。請畫出:請畫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 函數(shù)奇偶性知識點歸納
- 收繳率提升培訓(xùn)
- 壓力容器使用操作培訓(xùn)
- 教育者書籍分享
- 紅鶴溝通-龍湖品牌上海推廣策略jpg格式
- 元旦安全小知識
- 山西省呂梁市部分學(xué)校 2024-2025學(xué)年七年級下學(xué)期3月月考生物試題(含答案)
- 河南省三市2024-2025學(xué)年高三下學(xué)期(第二次)質(zhì)量檢測物理試卷(含解析)
- 2025學(xué)年部編版語文四年級下冊期中培優(yōu)卷A
- 教育心理學(xué)概論課堂管理
- 16 有為有不為 公開課一等獎創(chuàng)新教案
- 2025年安康嵐皋縣嵐水流韻文化傳媒有限責任公司招聘筆試參考題庫附帶答案詳解
- 2024年廣東省廣州市中考英語試題(解析版)
- 2025版車輛抵押借款合同(含貸款利率保密條款)3篇
- 2025年云南曲靖師宗縣縣屬事業(yè)單位選調(diào)工作人員11人歷年高頻重點提升(共500題)附帶答案詳解
- 2024年04月四川國家開發(fā)銀行四川分行春季實習(xí)生招考筆試歷年參考題庫附帶答案詳解
- 電商直播運營(初級)營銷師-巨量認證考試題(附答案)
- 水利工程安全生產(chǎn)標準化方案
- 院感競賽試題血源性職業(yè)暴露試題
- 《堅持依法行政》課件
- 2024年人教版初中數(shù)學(xué)八年級下冊 三角形中位線定理-1教案
評論
0/150
提交評論