




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、5.3.7 5.3.7 精確斷點與不精確斷點精確斷點與不精確斷點對于輸入輸出設備的中斷服務,實際上不需要有精確對于輸入輸出設備的中斷服務,實際上不需要有精確斷點。斷點。比較簡單的處理方法是:讓已經進入流水線的所有指令都執行完成,斷點就是最后進入流水線的那條指令的地址。對于程序性錯誤和機器故障等引起的中斷,它們出現對于程序性錯誤和機器故障等引起的中斷,它們出現的概率很低,處理原則:的概率很低,處理原則:不在于縮短時間,關鍵是不在于縮短時間,關鍵是要正確保存現場和正確恢復斷點。要正確保存現場和正確恢復斷點。不精確斷點不精確斷點(imprecise),流水線可以不斷流流水線可以不斷流需要的硬件比較少
2、,控制邏輯比較簡單需要的硬件比較少,控制邏輯比較簡單中斷響應時間加長中斷響應時間加長 采用不精確斷點法可能會發生如下兩個問題:采用不精確斷點法可能會發生如下兩個問題:(1)(1)程序的調試困難程序的調試困難調試程序時要設置斷點,程序員通過查看斷點處的中間執行結果判斷程序是否正確。但由于不精確斷點,程序不能準確中斷,因此,難于調試。早期的流水線處理機,多采用不精確斷點法近期的流水線處理機一般都采用精確斷點法 申申請請中中斷斷 輸輸入入 s1 s2 s3 s4 s5 s6 s7 s8 輸輸出出 pc: i+5 i+4 i+3 i+2 i+1 i i-1 i-2 不不精精確確斷斷點點 精精確確斷斷點
3、點 (2)(2)程序執行的結果可能出錯,例如:程序執行的結果可能出錯,例如: i i:fadd r1, r2 fadd r1, r2 ;(r1)(r1)(r2)r1(r2)r1 i+1 i+1:fmul r3, r1 fmul r3, r1 ;(r3)(r3)(r1)r3(r1)r3當第i條指令執行到s6段時發現浮點加法結果溢出,于是發出中斷服務申請。由于采用不精確斷點法,已經進入流水線的第i+1條指令將執行完成;因為第i+1條指令使用了不正確的r1,所以浮點乘法的執行結果是不正確的。采用精確斷采用精確斷(precise)(precise)點法,要設置一定數量的后援點法,要設置一定數量的后援寄
4、存器寄存器,把整個流水線中所有指令的執行結果和現場都保存下來。5.4 5.4 動態調度技術動態調度技術5.4.1 順序流動與亂序流動順序流動與亂序流動5.4.2 亂序流動中的數據相關亂序流動中的數據相關5.4.3 數據重定向方法數據重定向方法5.4.4 tomasulo動態調度算法動態調度算法實現方法:實現方法: 由硬件動態調整指令執行順序,以減少數據相關造由硬件動態調整指令執行順序,以減少數據相關造成的影響。成的影響。主要優點:主要優點:能夠處理在編譯時無法確定的相關,并簡化編譯器設計在其他流水線機器上編譯的目標代碼也能夠高效運行用靜態調度法生成的代碼也能在動態調度法的機器中運行主要缺點:主
5、要缺點:指令級并行度低,因為只能在比較小的范圍內尋找并行性5.4.1 5.4.1 順序流動與亂序流動順序流動與亂序流動1.1.順序流動方式:順序流動方式:任務按順序流入流水線任務按順序流入流水線, ,也按順序也按順序流出流水線流出流水線把如下一段程序輸入到這條流水線中: k: r0(r1) k+1: k+2: r2(r0)(r3) k+3: k+4: k+5: 讀讀 專專用用數數據據通通路路 寫寫 輸輸入入 s1 s2 s3 s4 s5 s6 輸輸出出 寄寄存存器器r0 指令指令k+2k+2無法繼續執行,要在功能段無法繼續執行,要在功能段s2中等待。中等待。后續的指令后續的指令k+4k+4、k
6、+5k+5、等也不能進入流水線。等也不能進入流水線。功能段功能段s3、s4、s5將逐漸空閑。將逐漸空閑。缺點:缺點:吞吐率和效率降低吞吐率和效率降低優點:優點:流水線的控制邏輯比較簡單流水線的控制邏輯比較簡單流水線流水線“斷流斷流”,有些功能段,有些功能段“空閑空閑” 時時鐘鐘周周期期ti+4k k+ +4 4k k+ +3 3k k+ +2 2空空閑閑空空閑閑空空閑閑ti+3k k+ +3 3k k+ +2 2空空閑閑空空閑閑空空閑閑k k+ +1 1ti+2k k+ +3 3k k+ +2 2空空閑閑空空閑閑k k+ +1 1k kti+1k k+ +3 3k k+ +2 2空空閑閑k k
7、+ +1 1k kk k- -1 1tik k+ +3 3k k+ +2 2k k+ +1 1k kk k- -1 1k k- -2 2正正常常流流動動k k+ +5 5k k+ +4 4k k+ +3 3k k+ +2 2k k+ +1 1k k功功能能段段功功能能段段s1s2s3s4s5s6順順序序流流動動方方式式2.2.亂序亂序(out of order)流動方式:流動方式:指令流出流水線的順序與流入指令流出流水線的順序與流入流水線的順序不同。流水線的順序不同。又稱為錯序流動方式、無序流動方式、異步流動方式等。時時鐘鐘周周期期ti+5k+8(k+7)k+6k+2k+5k+4k+3ti+4
8、k+7(k+6)k+2k+5k+4k+3k+1ti+3k+6k+5(k+2)k+4k+3k+1kti+2k+5k+4(k+2)k+3k+1kk-1ti-+1k+4k+3(k+2)k+1kk-1k-2tik+3(k+2)k+1kk-1k-1k-3正正常常流流動動k+5k+4k+3k+2k+1k功功能能段段功功能能段段s1s2s3s4s5s6亂亂序序流流動動方方式式5.4.2 5.4.2 亂序流動中的數據相關亂序流動中的數據相關在亂序流動方式中,可能發生三種數據相關在亂序流動方式中,可能發生三種數據相關 寫寫相關寫寫相關 k: load f1, a ;f1(a) 寫讀相關寫讀相關 k+1:fadd
9、 f2, f1 ;f2(f2)+(f1) k+2:fmul f1, f3 ;f1(f1)(f3) k+3:store f1, b ;b(f1)讀寫相關讀寫相關(1)寫讀相關:寫讀相關:指令k與指令k+1之間關于f1的相關,又稱為數據相關、先寫后讀相關、流相關、數據相關、先寫后讀相關、流相關、wr相關、相關、raw相關相關等。(2)讀寫相關:讀寫相關:指令k+1與指令k+2之間關于f1的相關,變量名相關、先讀后寫相關、反相關、rw相關、war相關等。(3)寫寫相關:寫寫相關:指令k與指令k+2左邊的f1之間的相關關系稱為:輸出相關、寫寫相關、ww相關、waw相關或寫后再寫相關等。有時把相關相關稱
10、為“冒險冒險”(hazard)、“竟爭竟爭” (competition)等。在程序執行過程中,只有避免相關,執行結果才是正在程序執行過程中,只有避免相關,執行結果才是正確的。確的。 三種數據相關可以用下列關系式來表示:三種數據相關可以用下列關系式來表示: 對于寫讀相關 d(i) s(j) 對于讀寫相關 s(i) d(j) 對于寫寫相關 d(i) d(j) ( (寫寫) ) ( (寫寫) ) ( (讀讀) ) ( (寫寫) ) ( (a a) ) 寫寫讀讀相相關關 ( (b b) ) 寫寫寫寫相相關關 ( (讀讀) ) ( (寫寫) ) i i 先先于于j j。 ( (c c) ) 讀讀寫寫相相
11、關關 s(i) s(i) s(i) d(i) d(i) d(i) s(j) s(j) s(j) d(j) d(j) d(j) 5.4.3 5.4.3 數據重定向方法數據重定向方法1.1.三種數據相關的重定向三種數據相關的重定向 重定向之前,j只能在i之后執行。 重定向之后,可以做到:(1)(1)寫讀相關,寫讀相關,j j與與i i可以同時執行可以同時執行 即專用數據通路即專用數據通路(2)(2)寫寫相關,寫寫相關,先后順序無關先后順序無關(3)(3)讀寫相關,讀寫相關,先后順序無關先后順序無關 后兩種情況又稱為后兩種情況又稱為“變量換名技術變量換名技術”b bb b i i j j i ia
12、ac ca aj jc c( (a a) ) 寫寫讀讀相相關關的的數數據據重重定定向向b bb bb b i i j j i i j ja ac ca ac c( (b b) ) 寫寫寫寫相相關關的的數數據據重重定定向向b bb b i i j j j ja ac ca aj jc c i ib b ( (c c) ) 讀讀寫寫相相關關的的數數據據重重定定向向2.2.變量換名技術變量換名技術用來自動消除讀寫數據相關讀寫數據相關和寫寫數據相關寫寫數據相關規則:一個變量只允許定值一次一個變量只允許定值一次在三種數據相關中,實際上只有寫讀數據相關必須依靠硬件、或采用軟硬件結合的方法來解決 解決方法:
13、推后處理推后處理或專用數據通路專用數據通路在上面的數據重定向圖中,把b換成了b,并在以后的都引用b讀寫數據相關和寫寫數據相關就不存在了。一個實際例子:loop: ld f0, 0(r1) add f0, f2 sd 0(r1), f0 ld f0, -8(r1) add f0, f2 sd -8(r1), f0 ld f0, -16(r1) add f0, f2 sd -16(r1), f0 ld f0, -24(r1) add f0, f2 sd -24(r1), f0 subi r1, r1, #32 bnez r1, looploop: ld f0, 0(r1) ld f4, -8(r1
14、) ld f6, -16(r1) ld f8, -24(r1) add f0,f2 add f4,f2 add f6,f2 add f8,f2 sd 0(r1), f0 sd -8(r1), f4 subi r1, r1, #32 sd -16(r1), f6 bnez r1, loop sd -24(r1), f83.3.一個簡單的程序:一個簡單的程序: k: load f1, a k+1: fadd f1, f2 k+2: fmul f1, f3 k+3: store f1, b a k+1k+1 faddfadd k+1 k+1 f2 k k k+1 k+1 f1 k+3 k+3 k+2
15、 k+2 b k+2k+2 fmulfmul k+2 k+2 f3 a ak k,k k+ +1 1f fa ad dd d k k+ +1 1f2f1k k+ +1 1k k+ +2 2 k k+ +2 2b bk k+ +2 2, ,k k+ +3 3f fm mu ul l k k+ +2 2f3專門設置:afaddafadd、fmulbfmulb、faddfmulfaddfmul三條專用路徑。撤消:f1fadd、f1fmul、faddf1 、af1的路徑。5.4.4 tomasulo5.4.4 tomasulo動態調度算法動態調度算法p310p310實用的動態調度算法主要有兩種:(1)
16、集中控制:cdc計分牌計分牌(scorebord)算法, 最先在cdc 6600大型機中采用。(2)分散控制:tomasulotomasulo算法算法, , 公共數據總線公共數據總線法,令牌法等。最早在大型機ibm 360/91的浮點處理部件中被采用。以上面的一段程序為例說明tomasulotomasulo算法算法k: load f1, ak+1: fadd f1, f2k+2: fmul f1, f3k+3: store f1, b5.5 5.5 超標量處理機超標量處理機5.5.1 基本結構基本結構5.5.2 單發射與多發射單發射與多發射5.5.3 多流水線調度多流水線調度5.5.4 資源沖
17、突資源沖突5.5.5 超標量處理機性能超標量處理機性能三種主流處理機:三種主流處理機: 超標量處理機超標量處理機 超流水線處理機超流水線處理機 超標量超流水線處理機超標量超流水線處理機以以一一臺臺k k 段段流流水水線線的的普普通通標標量量處處理理機機為為基基準準 超超標標量量處處理理機機、超超流流水水線線處處理理機機和和超超標標量量超超流流水水線線處處理理機機的的主主要要性性能能: 機器類型 k段流水線 標量處理機 m度 超標量處理機 n度 超流水線處理機 (m,n)度超標量 超流水線處理機 機器流水線周期 1個時鐘周期 1 1n 1n 同時發射指令條數 1條 m 1 m 指令發射等待時間
18、1個時鐘周期 1 1n 1n 指令級并行度ilp 1 m n mn 5.5.1 5.5.1 基本結構基本結構普通標量流水線處理機:普通標量流水線處理機: 一條指令流水線一條指令流水線,一個多功能操作部件一個多功能操作部件, 每個時鐘周期平均執行指令的條數小于1。多操作部件標量處理機:多操作部件標量處理機: 一條指令流水線一條指令流水線,多個獨立的操作部件,多個獨立的操作部件, 指令級并行度小于1。超標量處理機典型結構:超標量處理機典型結構: 多條并行工作的指令流水線多條并行工作的指令流水線,多個獨立的操作部件,多個獨立的操作部件, 指令級并行度(指令級并行度(ilp)大于)大于1。整數整數 部
19、件部件 整數整數 部件部件 位操位操作作 部件部件 浮點浮點加加 部件部件 乘法乘法 部件部件 除法除法 部件部件 圖形圖形 部件部件 圖形圖形 部件部件 內部總線內部總線 讀數存數讀數存數 部件部件 通用寄通用寄 存器堆存器堆 擴展擴展 寄存器堆寄存器堆 目標目標 指令指令 cachecache 指令分配指令分配 轉移部件轉移部件 數據數據 cachecache(8k8kb b) 指令指令 cachecache(8k8kb b) 3232 位地址總線位地址總線 6464 位數據總線位數據總線 系統總線系統總線 超標量處理機超標量處理機 mc88110mc88110 的結構的結構 motoro
20、lamotorola公司的公司的mc88110mc88110有10個操作部件兩個寄存器堆:整數部件通用寄存器堆,32個32位寄存器浮點部件擴展寄存器堆,32個80位寄存器緩沖深度為4的先行讀數棧緩沖深度為3的后行寫數棧兩個獨立的高速cache中,各為8kb,采用兩路組相聯方式轉移目標指令cache,用于存放另一條分支上的指令5.5.2 5.5.2 單發射與多發射單發射與多發射1.1.單發射處理機:單發射處理機:每個周期只取一條指令、只譯碼一條指令,只執行一每個周期只取一條指令、只譯碼一條指令,只執行一條指令,只寫回一個運算結果。條指令,只寫回一個運算結果。取指令部件和指令譯碼部件各設置一套;只
21、設置一個多功能操作部件或設置多個獨立的操作部件;操作部件中可以采用流水線結構,也可以不采用流水線結構。目標是每個時鐘周期平均執行一條指令,ilp的期望值為1。2.2.多發射處理機:多發射處理機:每個周期同時取多條指令、同時譯碼多條指令,同時每個周期同時取多條指令、同時譯碼多條指令,同時執行多條指令,同時寫回多個運算結果執行多條指令,同時寫回多個運算結果。多個取指令部件,多個指令譯碼部件和多個寫結果部多個取指令部件,多個指令譯碼部件和多個寫結果部件。件。設置多個指令執行部件,設置多個指令執行部件,有些指令執行部件采用流水線結構。目標是每個時鐘周期平均執行多條指令,ilp的期望值大于1。單單 發發
22、 射射 處處 理理 機機 的的 指指 令令 流流 水水 線線 時時 空空 圖圖 1 2 3 4 5 6 i1 if id ex w r 時時 鐘鐘 周周 期期 i2 if id ex w r i3 if id ex w r 指指 令令 多多 發發 射射 處處 理理 機機 的的 指指 令令 流流 水水 線線 時時 空空 圖圖 1 2 3 4 5 6 i1 if id ex w r 時時 鐘鐘 周周 期期 i2 if id ex w r i3 if id ex w r i4 if id ex w r i5 if id ex w r i6 if id ex w r i7 if id ex w r i
23、8 if id ex w r i9 if id ex w r 指指 令令 單單發發射射處處理理機機的的指指令令流流水水線線 取取指指令令 指指令令譯譯碼碼 執執行行指指令令ex 寫寫回回結結果果 fa1 fa2 fa3 浮浮點點加加法法部部件件 來來自自指指令令 cache if id md1 md2 md3 wr 通通用用寄寄存存器器 后后行行寫寫數數棧棧 乘乘除除法法部部件件 al 定定點點算算術術邏邏輯輯部部件件 ls 取取數數存存數數部部件件 同同時時發發射射兩兩條條指指令令的的多多發發射射處處理理機機的的指指令令流流水水線線 取取指指令令 指指令令譯譯碼碼 執執行行指指令令 寫寫回回
24、結結果果 fa1 fa2 fa3 浮浮點點加加法法部部件件 來來自自指指令令 cache if1 id1 md1 md2 md3 wr1 通通用用寄寄存存器器 后后行行寫寫數數棧棧 乘乘除除法法部部件件 來來自自指指令令 cache if2 id2 al wr2 通通用用寄寄存存器器 后后行行寫寫數數棧棧 定定點點算算術術邏邏輯輯部部件件 ls 取取數數存存數數部部件件 3.3.超標量處理機:超標量處理機:有兩條或兩條以上能同時工作的指令流水線先行指令窗口先行指令窗口:能夠從指令cache中預取多條指令,能夠對窗口內的指令進行數據相關性分析和功能部件沖突檢測。例如:例如:intel公司的i86
25、0、i960、pentium,motolora公司的mc88110,ibm公司的power 6000,ti公司生產supersparc等操作部件的個數一般多于每個周期發射的指令條數。通常為4 個至16個操作部件。超標量處理機的指令級并行度:超標量處理機的指令級并行度:1ilpm有有先先行行指指令令窗窗口口的的超超標標量量處處理理機機的的流流水水線線結結構構 取取指指令令 指指令令譯譯碼碼 執執行行指指令令 寫寫回回結結果果 fa1 fa2 fa3 浮浮點點加加法法部部件件 指指令令 cache if1 id1 md1 md2 md3 wr1 通通用用寄寄存存器器 后后行行寫寫數數棧棧 乘乘除除
26、法法部部件件 指指令令 cache if2 id2 al wr2 通通用用寄寄存存器器 后后行行寫寫數數棧棧 定定點點算算術術邏邏輯輯部部件件 if3 id3 ls 先先行行指指令令窗窗口口 取取數數存存數數部部件件 f fa a:浮浮點點加加減減法法運運算算,m md d:乘乘除除法法運運算算,a al l:定定點點算算術術邏邏輯輯運運算算,l ls s 取取數數存存數數 5.5.3 5.5.3 多流水線調度多流水線調度順序發射(in-order issue)與亂序發射(out-order issue):指令發射順序是按照程序中指令排列順序進行的稱指令發射順序是按照程序中指令排列順序進行的稱
27、為順序發射為順序發射順序完成(in-order completion)與亂序完成(out-order completion):指令完成順序是按照程序中指令排列指令完成順序是按照程序中指令排列順序進行的稱為順序完成順序進行的稱為順序完成多流水線的調度主要有三種方法:多流水線的調度主要有三種方法:順序發射順序完成順序發射順序完成順序發射亂序完成順序發射亂序完成亂序發射亂序完成亂序發射亂序完成以如下以如下6 6條指令組成的程序為例,說明這三種調度方條指令組成的程序為例,說明這三種調度方法法 i1:load r1, a ;r1(a) i2:fadd r2, r1 ;r2(r2)(r1) i3:fmul
28、 r3, r4 ;r3(r3)(r4) i4:fadd r4, r5 ;r4(r4)(r5) i5:dec r6 ;r6(r6)1 i6:fmul r6, r7 ;r6(r6)(r7)6條指令中有4個數據相關,包括2個寫讀相關,1個讀寫相關和1個寫寫相關。1.1.順序發射順序完成順序發射順序完成 共用共用1010個時鐘周期完成個時鐘周期完成 還有有8 8個空閑的時鐘周期個空閑的時鐘周期順順序序發發射射順順序序完完成成的的指指令令流流水水線線時時空空圖圖 1 2 3 4 5 6 7 8 9 10 i1 if1 id1 ls wr1 時時鐘鐘周周期期 i2 if2 id2 fa1 fa2 fa2
29、wr2 i3 if1 id1 md1 md2 md3 wr1 i4 if2 id2 fa1 fa2 fa3 wr2 i5 if1 id1 al wr1 i6 if2 id2 md1 md2 md3 wr2 指指令令 i if f:取取指指令令,i id d:指指令令譯譯碼碼,l ls s 取取數數存存數數,f fa a:浮浮點點加加減減法法運運算算, m md d:乘乘除除法法運運算算,a al l:定定點點算算術術邏邏輯輯運運算算 w wr r:寫寫回回運運算算結結果果 2.2.順序發射亂序完成順序發射亂序完成 總的執行時間為總的執行時間為9 9個時鐘周期個時鐘周期, 節省了一個時鐘周期節省
30、了一個時鐘周期。少了少了5 5個空閑時鐘周期個空閑時鐘周期。順順序序發發射射亂亂序序完完成成的的流流水水線線時時空空圖圖 1 2 3 4 5 6 7 8 9 i1 if1 id1 ls wr1 時時鐘鐘周周期期 i2 if2 id2 fa1 fa2 fa2 wr2 i3 if1 id1 md1 md2 md3 wr1 i4 if2 id2 fa1 fa2 fa3 wr2 i5 if1 id1 al wr1 i6 if2 id2 md1 md2 md3 wr2 指指令令 順順序序發發射射亂亂序序完完成成的的指指令令完完成成次次序序 時時鐘鐘周周期期 4 4 5 5 6 6 7 7 8 8 9 9
31、 流流水水線線 1 1 i1 i5 i3 流流水水線線 2 2 i2 i4 i6 3. 3. 亂序發射亂序完成亂序發射亂序完成沒有空閑周期,功能部件得到充分利用。沒有空閑周期,功能部件得到充分利用。 總的執行時間為總的執行時間為8個周期個周期,節省節省2個周期。個周期。亂亂序序發發射射亂亂序序完完成成調調度度方方法法的的流流水水線線時時空空圖圖 1 2 3 4 5 6 7 8 流流水水線線 1 1 i i1 1 if1 id1 ls wr1 時時鐘鐘周周期期 流流水水線線 2 2 i i3 3 if2 id2 md1 md2 md3 wr2 先先行行窗窗口口 i i4 4 if3 id3 fa
32、1 fa2 fa3 wr1 i2 if1 id1 fa1 fa2 fa3 wr1 i5 if2 id2 al wr2 i6 if1 id1 md1 md2 md3 wr1 指指令令 指指令令在在流流水水線線中中的的發發射射次次序序 指指令令在在流流水水線線中中的的完完成成次次序序 時時鐘鐘周周1 2 3 時時鐘鐘周周期期 4 5 6 7 8 流流水水線線 1 1 i1 i2 i6 流流水水線線 1 1 i1 i4 i2 i6 流流水水線線 2 2 i3 i5 流流水水線線 2 2 i5 i3 先先行行窗窗口口 i4 5.5.4 5.5.4 資源沖突資源沖突如果操作部件采用流水線結構,發生資源沖
33、突的可能性很小;如果不采用流水線結構,發生資源沖突的可能性就比較大。下面是一個由4條指令的程序例子: i1:fadd r0, r1 ;r0(r0)(r1) i2:fmul r2, r3 ;r2(r2)(r3) i3:fadd r4, r5 ;r4(r4)(r5) i4:fmul r6, r7 ;r6(r6)(r7)雙雙 流流 水水 線線 超超 標標 量量 處處 理理 機機 , 操操 作作 部部 件件 不不 采采 用用 流流 水水 線線 的的 時時 空空 圖圖1234567891011流流 水水 線線1 i1if1 id1faddw r1 時時 鐘鐘 周周 期期流流 水水 線線2 i2if2 i
34、d2fm ulw r2流流 水水 線線1 i3if1 id1faddw r1流流 水水 線線2 i4if2 id2fm ulw r2 指指 令令i if f: 取取 指指 令令 , i id d: 指指 令令 譯譯 碼碼 , f fa ad dd d: 浮浮 點點 加加 法法 , f fm mu ul l: 浮浮 點點 乘乘 法法 , w wr r: 寫寫 回回 結結 果果 操作部件不采用流水線:操作部件不采用流水線: 做完做完4 4條指令總共用了條指令總共用了1111個周期,個周期, 有有5 5個空閑周期個空閑周期。操作部件采用流水線:操作部件采用流水線: 做完做完4 4條指令共用條指令共用
35、8 8個周期,個周期, 少用少用3 3個周期。個周期。雙雙流流水水線線超超標標量量處處理理機機,操操作作部部件件采采用用流流水水線線的的時時空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 流流水水線線1 i1 i if f1 1 i id d1 1 f fa ad dd d1 1 f fa ad dd d2 2 f fa ad dd d3 3 w wr r1 1 時時鐘鐘周周期期 流流水水線線2 i2 i if f2 2 i id d2 2 f fm mu ul l1 1 f fm mu ul l2 2 f fm mu ul l3 3 f fm mu ul l4 4 w
36、wr r2 2 流流水水線線1 i i3 3 i if f1 1 i id d1 1 f fa ad dd d1 1 f fa ad dd d2 2 f fa ad dd d3 3 w wr r1 1 流流水水線線2 i i4 4 i if f2 2 i id d2 2 f fm mu ul l1 1 f fm mu ul l2 2 f fm mu ul l3 3 f fm mu ul l4 4 w r2 指指令令 i if f:取取指指令令,i id d:指指令令譯譯碼碼,f fa ad dd d:浮浮點點加加法法,f fm mu ul l:浮浮點點乘乘法法,w wr r:寫寫回回結結果果
37、操作部件采用流水線結構的原因分析操作部件采用流水線結構的原因分析假每個周期發射m條指令,操作部件的延遲時間為k個周期,如果操作部件不采用流水線結構,則使用同一個操作部件的兩條指令應該至少相差至少相差mk如果操作部件采用k段流水線結構,則使用同一個操作部件的兩條指令只需相差只需相差m或或m以上以上指令流水線的段數k一般在4至10之間,每個時鐘周期發射的指令條數m在2至4之間。取中間值,k7,m3為了不發生資源沖突,如果操作部件不采用流水線結構, 兩條使用同一個功能部件的指令序號必須相差兩條使用同一個功能部件的指令序號必須相差21或或21以上。以上。如果操作部件采用流水線結構, 兩條使用同一個功能
38、部件的指令序號只需要相差兩條使用同一個功能部件的指令序號只需要相差3或或3以上。以上。因此,在超標量處理機中,操作部件一般要采用流水線因此,在超標量處理機中,操作部件一般要采用流水線結構。結構。 如果由于某種原因,操作部件不能采用流水線結構,則必須設置多個相同種類的操作部件普通標量處理機,希望相同操作連續出現。 只有連續出現相同操作的指令序列時,流水線的效率才能得到充分發揮。超標量處理機超標量處理機則正好相反,希望相同操作不要連續出希望相同操作不要連續出現現。相同操作的指令序列連續出現時,會發生資源沖突;要求相同操作的指令能夠相對均勻地分布在程序中。超標量處理機的這種要求正好符合一般標量程序的
39、特超標量處理機的這種要求正好符合一般標量程序的特點點。5.5.5 5.5.5 超標量處理機性能超標量處理機性能單流水線普通標量處理機的指令級并行度記作(1, 1),超標量處理機的指令級并行度記作(m, 1),超流水線處理機的指令級并行度記作(1, n),而超標量超流水線處理機的指令級并行度記作(m, n)。在理想情況下,n條指令在單流水線標量處理機上的執行時間為: t(1, 1)(kn1) t在每個周期發射m條指令的超標量處理機上執行的時間為: 超標量處理機相對于單流水線標量處理機的加速比為:超標量處理機的加速比的最大值為:s( (m,1),1)maxmtmmnkmt)() 1 ,() 1()
40、 1() 1 ,() 1 , 1 () 1 ,(kmnnkmmttms5.6 5.6 超流水線處理機超流水線處理機5.6.1 指令執行時序指令執行時序5.6.2 典型處理機結構典型處理機結構5.6.3 超流水線處理機性能超流水線處理機性能超流水線處理機的兩種定義:超流水線處理機的兩種定義:在一個周期內分時發射多條指令的處理機指令流水線的段數大于等于8的流水線處理機提高處理機性能的兩種方法:提高處理機性能的兩種方法:通過增加硬件資源來提高處理機性能通過各部分硬件的重疊工作來提高處理機性能兩種不同并行性:兩種不同并行性:超標量處理機采用的是空間并行性。超標量處理機采用的是空間并行性。超流水線處理機
41、采用的是時間并行性。超流水線處理機采用的是時間并行性。5.6.1 5.6.1 指令執行時序指令執行時序每隔每隔1/n個時鐘周期發射一條指令個時鐘周期發射一條指令, 即處理機的流水線周期為1/n個時鐘周期。每每個個時時鐘鐘周周期期分分時時發發射射 3 3 條條指指令令的的超超流流水水線線處處理理機機的的指指令令執執行行時時空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 i1 if i id d ex wr 時時鐘鐘周周期期 i2 if id ex w wr r i3 if id ex wr i4 if id ex wr i5 if id ex wr i6 if id ex wr i7
42、if id ex wr i8 if id ex wr 指指令令 i9 if id ex wr 5.6.2 5.6.2 典型處理機結構典型處理機結構mips r4000mips r4000處理機:處理機: 每個時鐘周期包含兩個流水段每個時鐘周期包含兩個流水段是一種很標準的超流水線處理機結構。指令流水線有8個流水段。指令cache和數據cache的容量各8kb,每個時鐘周期可以訪問cache兩次,在一個時鐘周期內可以從指令cache中讀出兩條指令,從數據cache中讀出或寫入兩個數據。主要運算部件有整數部件和浮點部件。mips r4000mips r4000 處理機的流水線操作處理機的流水線操作
43、if is rf ex df ds tc wb 指令指令 指令譯碼指令譯碼 cache 數據數據 寄存寄存 讀讀寄寄存存器器 alu cache 標標 志志 檢檢 驗驗 器堆器堆 if:取第一條指令;:取第一條指令;is:取第二條指令;:取第二條指令;rf:讀寄存器堆,指令譯碼;:讀寄存器堆,指令譯碼; ex:執行指令;:執行指令;df:取第一個數據;:取第一個數據;ds:取第二個數據;:取第二個數據;tc:數據標志檢驗;:數據標志檢驗; wb:寫回結果:寫回結果 m mi ip ps s r r4 40 00 00 0 正正常常指指令令流流水水線線工工作作時時序序 主主時時鐘鐘周周期期 當當
44、前前 cpu 周周期期 if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if is rf ex df ds tc wb if:取取第第一一條條指指令令;is:取取第第二二條條指指令令;rf:讀讀寄寄存存器器堆堆,指指令令譯譯碼碼; ex:執執行行指指令令;df:取取第第一一個個數數據據;ds:取取第第二二個個數
45、數據據;tc:數數據據標標志志檢檢驗驗; wb:寫寫回回結結果果 流流水水 線線 周周期期 如果在load指令之后的兩條指令中,任何一條指令要在它的ex流水級使用這個數據,則指令流水線要暫停一個時鐘周期。指令 運行 暫停 暫停 運行 運行 運行 運行 運行 運行 運行 運行 i1 df ds tc wb load指令 i2 ex df ds tc wb 使用load數據 i3 rf ex df ds tc wb i4 is rf ex df ds tc wb i5 if is rf ex df ds tc wb i6 if is rf ex df ds tc wb 5.6.3 5.6.3 超流
46、水線處理機性能超流水線處理機性能指令級并行度為(1,n)的超流水線處理機,執行n條指令所的時間為:超流水線處理機相對于單流水線普通標量處理機的加速比為: 加速比的最大值為:s(1, n)maxntnkntn( , )()111) 1()1() 1(), 1 () 1 , 1 (), 1 (nnknkntnnktnknttns5.7 5.7 超標量超流水線處理機超標量超流水線處理機一個時鐘周期發射一個時鐘周期發射m次,每次發射次,每次發射n條指令條指令 5.7.1 指令執行時序指令執行時序5.7.2 典型處理機結構典型處理機結構5.7.3 超標量超流水線處理機性能超標量超流水線處理機性能5.7.
47、4 三種處理機的性能比較三種處理機的性能比較每每個個時時鐘鐘周周期期發發射射 3 3 次次,每每次次同同時時發發射射 3 3 條條指指令令的的 超超標標量量超超流流水水線線處處理理機機的的指指令令執執行行時時空空圖圖 1 1 2 2 3 3 4 4 5 5 6 6 i1 if id ex wr 時時鐘鐘周周期期 i2 if id ex wr i3 if id ex wr i4 i if f id ex wr i5 if id ex wr i6 if id ex wr i7 if id ex wr i8 if id ex wr i9 if id ex wr i10 if id ex wr i11
48、 if id ex wr i12 if id ex wr 指指令令 i if f:取取指指令令,i id d:指指令令譯譯碼碼,e ex x:執執行行指指令令,w wr r:寫寫回回結結果果 5.7.1 5.7.1 指令執行時序指令執行時序5.7.2 5.7.2 典型處理機結構典型處理機結構dec公司的alpha處理機為典型的超標量超流水線結構超標量超流水線結構。主要由四個功能部件和兩個cache組成:整數部件ebox 浮點部件fbox 地址部件abox 中央控制部件ibox 指令cache和數據cache在ebox內還有多條專用數據通路,可以把運算結果直接送到執行部件。中央控制部件ibox能
49、夠同時完成: 同時讀出兩條指令; 同時對兩條指令進行譯碼,并作相關性檢測; 如果資源和相關性允許,ibox就把兩條指令同時發射給ebox、abox和fbox三個執行部件中的兩個。指令流水線的控制方式: 采用順序發射亂序完成順序發射亂序完成。在指令cache中有一個轉移歷史表,實現條件轉移的動態預測。alpha 21064alpha 21064處理機共有處理機共有三條指令流水線:三條指令流水線:(1)(1)整數操作流水線為整數操作流水線為7 7個流水段個流水段,其中,取指令2個流水段、分析指令2個流水段、運算2個流水段、寫結果1個流水段。(2)(2)訪問存儲器流水線為訪問存儲器流水線為7 7個流
50、水段個流水段。(3)(3)浮點操作流水線分為浮點操作流水線分為1010個流水段個流水段,其中,浮點執行部件fbox的延遲時間為6個流水段。 三條指令流水線的平均段數為三條指令流水線的平均段數為(7+7+10)/3=8(7+7+10)/3=8,且每個時鐘周期發射兩條指令。因此,alpha 21064處理機為超標量超流水線處理機。7 7 個個流流水水段段的的整整數數操操作作流流水水線線( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )ifswapi0i1a1a2wri if f:取取指指令令;s sw wa ap p:交交
51、換換雙雙發發射射指指令令,轉轉移移預預測測;i i0 0:指指令令譯譯碼碼;i i1 1 訪訪問問通通用用寄寄存存器器堆堆,發發射射校校驗驗;a a1 1:計計算算周周期期 1 1,i ib bo ox x 計計算算新新的的 p pc c 值值;a a2 2:計計算算周周期期 2 2,查查指指令令快快表表;w wr r:寫寫整整數數寄寄存存器器堆堆,指指令令 c ca ac ch he e 命命中中檢檢測測。7 7 個個流流水水段段的的訪訪問問存存儲儲器器流流水水線線 ( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )ifswapi0i1actbhma ac c:a ab bo ox x 計計算算有有效效數數據據地地址址;t tb b:查查數數據據快快表表;h hm m:寫寫讀讀數數緩緩沖沖棧棧,數數據據 c ca ac ch he e 命命中中/ /不不命命中中檢檢測測。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java排查面試題及答案
- 刑法概說試題及答案
- 寧德時代面試題及答案
- 綠色體育用品消費行為分析與引導策略考核試卷
- 護理機考試題及答案
- 畢節中考試題及答案
- 2025年長沙市中考語文試卷真題(含答案)
- 《推銷實務》課件 項目7 處理顧客異議-維系推銷顧客關系
- 南昌大學畢業典禮服務方案企業綜合服務能力說明
- 《數據流通區塊鏈分布式身份技術規范》征求意見稿
- 2024年海原縣社區專職工作者招聘考試真題
- 人工智能在畜牧業中的應用研究-洞察闡釋
- 2025屆浙江省杭州濱江區六校聯考七年級英語第二學期期末質量跟蹤監視模擬試題含答案
- T/CACEM 39-2024交通企業標準化評價指南
- 2025春國開《創業基礎》形考任務1-4答案
- 天航題庫理論SOP復習試題及答案
- JT-T 329-2025 公路橋梁預應力鋼絞線用錨具、夾具和連接器
- 檢驗檢測機構質量手冊程序文件質量記錄合集(依據2023年版評審準則)
- 2025-2030全球及中國管道運輸服務行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025-2030中國海上風電裝備產業發展調查及經營狀況深度解析研究報告
- 結構檢測員考試題及答案
評論
0/150
提交評論