版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、5.3.7 5.3.7 準(zhǔn)確斷點(diǎn)與不準(zhǔn)確斷點(diǎn)準(zhǔn)確斷點(diǎn)與不準(zhǔn)確斷點(diǎn)對(duì)于輸入輸出設(shè)備的中斷效力,實(shí)踐上不需求有準(zhǔn)確對(duì)于輸入輸出設(shè)備的中斷效力,實(shí)踐上不需求有準(zhǔn)確斷點(diǎn)。斷點(diǎn)。比較簡(jiǎn)單的處置方法是:讓曾經(jīng)進(jìn)入流水線的一切指比較簡(jiǎn)單的處置方法是:讓曾經(jīng)進(jìn)入流水線的一切指令都執(zhí)行完成,斷點(diǎn)就是最后進(jìn)入流水線的那條指令都執(zhí)行完成,斷點(diǎn)就是最后進(jìn)入流水線的那條指令的地址。令的地址。對(duì)于程序性錯(cuò)誤和機(jī)器缺點(diǎn)等引起的中斷,它們出現(xiàn)對(duì)于程序性錯(cuò)誤和機(jī)器缺點(diǎn)等引起的中斷,它們出現(xiàn)的概率很低,處置原那么:不在于縮短時(shí)間,關(guān)鍵的概率很低,處置原那么:不在于縮短時(shí)間,關(guān)鍵是要正確保管現(xiàn)場(chǎng)和正確恢復(fù)斷點(diǎn)。是要正確保管現(xiàn)場(chǎng)和正
2、確恢復(fù)斷點(diǎn)。不準(zhǔn)確斷點(diǎn)不準(zhǔn)確斷點(diǎn)(Imprecise),流水線可以不斷流,流水線可以不斷流需求的硬件比較少,控制邏輯比較簡(jiǎn)單需求的硬件比較少,控制邏輯比較簡(jiǎn)單中斷呼應(yīng)時(shí)間加長(zhǎng)中斷呼應(yīng)時(shí)間加長(zhǎng) 采用不準(zhǔn)確斷點(diǎn)法能夠會(huì)發(fā)生如下兩個(gè)問(wèn)題:采用不準(zhǔn)確斷點(diǎn)法能夠會(huì)發(fā)生如下兩個(gè)問(wèn)題:(1)程序的調(diào)試?yán)щy程序的調(diào)試?yán)щy調(diào)試程序時(shí)要設(shè)置斷點(diǎn),程序員經(jīng)過(guò)查看斷點(diǎn)處的中間執(zhí)行結(jié)調(diào)試程序時(shí)要設(shè)置斷點(diǎn),程序員經(jīng)過(guò)查看斷點(diǎn)處的中間執(zhí)行結(jié)果判別程序能否正確。但由于不準(zhǔn)確斷點(diǎn),程序不能準(zhǔn)確中果判別程序能否正確。但由于不準(zhǔn)確斷點(diǎn),程序不能準(zhǔn)確中斷,因此,難于調(diào)試。斷,因此,難于調(diào)試。早期的流水線處置機(jī),多采用不準(zhǔn)確斷點(diǎn)法早期
3、的流水線處置機(jī),多采用不準(zhǔn)確斷點(diǎn)法近期的流水線處置機(jī)普通都采用準(zhǔn)確斷點(diǎn)法近期的流水線處置機(jī)普通都采用準(zhǔn)確斷點(diǎn)法 申申請(qǐng)請(qǐng)中中斷斷 輸輸入入 S1 S2 S3 S4 S5 S6 S7 S8 輸輸出出 PC: i+5 i+4 i+3 i+2 i+1 i i-1 i-2 不不精精確確斷斷點(diǎn)點(diǎn) 精精確確斷斷點(diǎn)點(diǎn) (2)(2)程序執(zhí)行的結(jié)果能夠出錯(cuò),例如:程序執(zhí)行的結(jié)果能夠出錯(cuò),例如: 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當(dāng)?shù)诋?dāng)?shù)趇 i
4、條指令執(zhí)行到條指令執(zhí)行到S6S6段時(shí)發(fā)現(xiàn)浮點(diǎn)加法結(jié)果溢出,段時(shí)發(fā)現(xiàn)浮點(diǎn)加法結(jié)果溢出,于是發(fā)出中斷效力懇求。由于采用不準(zhǔn)確斷點(diǎn)法,于是發(fā)出中斷效力懇求。由于采用不準(zhǔn)確斷點(diǎn)法,曾經(jīng)進(jìn)入流水線的第曾經(jīng)進(jìn)入流水線的第i+1i+1條指令將執(zhí)行完成;由于條指令將執(zhí)行完成;由于第第i+1i+1條指令運(yùn)用了不正確的條指令運(yùn)用了不正確的R1R1,所以浮點(diǎn)乘法的,所以浮點(diǎn)乘法的執(zhí)行結(jié)果是不正確的。執(zhí)行結(jié)果是不正確的。采用準(zhǔn)確斷采用準(zhǔn)確斷(Precise)(Precise)點(diǎn)法,要設(shè)置一定數(shù)量的后援點(diǎn)法,要設(shè)置一定數(shù)量的后援存放器,把整個(gè)流水線中一切指令的執(zhí)行結(jié)果和現(xiàn)存放器,把整個(gè)流水線中一切指令的執(zhí)行結(jié)果和現(xiàn)場(chǎng)都
5、保管下來(lái)。場(chǎng)都保管下來(lái)。5.4 5.4 動(dòng)態(tài)調(diào)度技術(shù)動(dòng)態(tài)調(diào)度技術(shù)5.4.1 順序流動(dòng)與亂序流動(dòng)順序流動(dòng)與亂序流動(dòng)5.4.2 亂序流動(dòng)中的數(shù)據(jù)相關(guān)亂序流動(dòng)中的數(shù)據(jù)相關(guān)5.4.3 數(shù)據(jù)重定向方法數(shù)據(jù)重定向方法5.4.4 Tomasulo動(dòng)態(tài)調(diào)度算法動(dòng)態(tài)調(diào)度算法實(shí)現(xiàn)方法:實(shí)現(xiàn)方法: 由硬件動(dòng)態(tài)調(diào)整指令執(zhí)行順序,以減少數(shù)據(jù)相關(guān)呵由硬件動(dòng)態(tài)調(diào)整指令執(zhí)行順序,以減少數(shù)據(jù)相關(guān)呵斥的影響。斥的影響。主要優(yōu)點(diǎn):主要優(yōu)點(diǎn):可以處置在編譯時(shí)無(wú)法確定的相關(guān),并簡(jiǎn)化編譯器設(shè)可以處置在編譯時(shí)無(wú)法確定的相關(guān),并簡(jiǎn)化編譯器設(shè)計(jì)計(jì)在其他流水線機(jī)器上編譯的目的代碼也可以高效運(yùn)轉(zhuǎn)在其他流水線機(jī)器上編譯的目的代碼也可以高效運(yùn)轉(zhuǎn)用靜態(tài)
6、調(diào)度法生成的代碼也能在動(dòng)態(tài)調(diào)度法的機(jī)器中用靜態(tài)調(diào)度法生成的代碼也能在動(dòng)態(tài)調(diào)度法的機(jī)器中運(yùn)轉(zhuǎn)運(yùn)轉(zhuǎn)主要缺陷:指令級(jí)并行度低,由于只能在比較小的范主要缺陷:指令級(jí)并行度低,由于只能在比較小的范圍內(nèi)尋覓并行性圍內(nèi)尋覓并行性5.4.1 5.4.1 順序流動(dòng)與亂序流動(dòng)順序流動(dòng)與亂序流動(dòng)1.1.順序流動(dòng)方式:義務(wù)按順序流入流水線順序流動(dòng)方式:義務(wù)按順序流入流水線, ,也按順序也按順序流出流水線流出流水線把如下一段程序輸入到這條流水線中:把如下一段程序輸入到這條流水線中: k k: R0 R0R1R1 k+1 k+1: k+2 k+2: R2 R2R0R0R3R3 k+3 k+3: k+4 k+4: k+5
7、k+5: 讀讀 專(zhuān)專(zhuān)用用數(shù)數(shù)據(jù)據(jù)通通路路 寫(xiě)寫(xiě) 輸輸入入 S1 S2 S3 S4 S5 S6 輸輸出出 寄寄存存器器R0 指令指令k+2k+2無(wú)法繼續(xù)執(zhí)行,要在功能段無(wú)法繼續(xù)執(zhí)行,要在功能段S2S2中等待。中等待。后續(xù)的指令后續(xù)的指令k+4k+4、k+5k+5、等也不能進(jìn)入流水線。等也不能進(jìn)入流水線。功能段功能段S3S3、S4S4、S5S5將逐漸空閑。將逐漸空閑。缺陷:吞吐率和效率降低缺陷:吞吐率和效率降低優(yōu)點(diǎn):流水線的控制邏輯比較簡(jiǎn)單優(yōu)點(diǎn):流水線的控制邏輯比較簡(jiǎn)單流水線流水線“斷流,有些功能段斷流,有些功能段“空閑空閑 時(shí)時(shí)鐘鐘周周期期ti+4k k+ +4 4k k+ +3 3k k+ +
8、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+ +1 1K Kk k- -1 1tik k+ +3 3k k+ +2 2k k+ +1 1k kk k- -1 1k k- -2 2正正常常流流動(dòng)動(dòng)k k+ +5 5k k+ +4 4k k+ +3 3k k+ +2 2k k+ +1 1k k功功能能段段功功能能段段S1S2S3S4S5S6順順序序流流動(dòng)動(dòng)方方式式2.2.亂序亂序(Ou
9、t of order)(Out of order)流動(dòng)方式:指令流出流水線的順序與流流動(dòng)方式:指令流出流水線的順序與流入流水線的順序不同。又稱(chēng)為錯(cuò)序流動(dòng)方式、無(wú)序流動(dòng)方式、入流水線的順序不同。又稱(chēng)為錯(cuò)序流動(dòng)方式、無(wú)序流動(dòng)方式、異步流動(dòng)方式等。異步流動(dòng)方式等。時(shí)時(shí)鐘鐘周周期期ti+5k+8(k+7)k+6k+2K+5k+4k+3ti+4k+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正正常常流流動(dòng)動(dòng)k+
10、5k+4k+3k+2k+1k功功能能段段功功能能段段S1S2S3S4S5S6亂亂序序流流動(dòng)動(dòng)方方式式5.4.2 5.4.2 亂序流動(dòng)中的數(shù)據(jù)相關(guān)亂序流動(dòng)中的數(shù)據(jù)相關(guān)在亂序流動(dòng)方式中,能夠發(fā)生三種數(shù)據(jù)相關(guān)在亂序流動(dòng)方式中,能夠發(fā)生三種數(shù)據(jù)相關(guān) 寫(xiě)寫(xiě)相關(guān)寫(xiě)寫(xiě)相關(guān) k k: LOAD F1, A ;F1 LOAD F1, A ;F1A A 寫(xiě)讀相關(guān)寫(xiě)讀相關(guān) k+1 k+1:FADD F2, F1 ;F2FADD F2, F1 ;F2F2F2+ +F1F1 k+2 k+2:FMUL F1, F3 ;F1FMUL F1, F3 ;F1F1F1F3F3 k+3 k+3:STORE F1, B ;BSTOR
11、E F1, B ;BF1F1讀寫(xiě)相關(guān)讀寫(xiě)相關(guān)(1)(1)寫(xiě)讀相關(guān):指令寫(xiě)讀相關(guān):指令k k與指令與指令k+1k+1之間關(guān)于之間關(guān)于F1F1的相關(guān),又稱(chēng)的相關(guān),又稱(chēng)為數(shù)據(jù)相關(guān)、先寫(xiě)后讀相關(guān)、流相關(guān)、為數(shù)據(jù)相關(guān)、先寫(xiě)后讀相關(guān)、流相關(guān)、WRWR相關(guān)、相關(guān)、RAWRAW相相關(guān)等。關(guān)等。(2)讀寫(xiě)相關(guān):指令讀寫(xiě)相關(guān):指令k+1與指令與指令k+2之間關(guān)于之間關(guān)于F1的相關(guān),的相關(guān),變量名相關(guān)、先讀后寫(xiě)相關(guān)、反相關(guān)、變量名相關(guān)、先讀后寫(xiě)相關(guān)、反相關(guān)、RW相關(guān)、相關(guān)、WAR相關(guān)等。相關(guān)等。(3)寫(xiě)寫(xiě)相關(guān):指令寫(xiě)寫(xiě)相關(guān):指令k與指令與指令k+2左邊的左邊的F1之間的相關(guān)之間的相關(guān)關(guān)系稱(chēng)為:輸出相關(guān)、寫(xiě)寫(xiě)相關(guān)、關(guān)
12、系稱(chēng)為:輸出相關(guān)、寫(xiě)寫(xiě)相關(guān)、WW相關(guān)、相關(guān)、WAW相關(guān)或?qū)懞笤賹?xiě)相關(guān)等。相關(guān)或?qū)懞笤賹?xiě)相關(guān)等。有時(shí)把相關(guān)稱(chēng)為有時(shí)把相關(guān)稱(chēng)為“冒險(xiǎn)冒險(xiǎn)(hazard)、“竟?fàn)幘範(fàn)?(competition)等。等。在程序執(zhí)行過(guò)程中,只需防止相關(guān),執(zhí)行結(jié)果才是正在程序執(zhí)行過(guò)程中,只需防止相關(guān),執(zhí)行結(jié)果才是正確的。確的。 三種數(shù)據(jù)相關(guān)可以用以下關(guān)系式來(lái)表示:三種數(shù)據(jù)相關(guān)可以用以下關(guān)系式來(lái)表示: 對(duì)于寫(xiě)讀相關(guān)對(duì)于寫(xiě)讀相關(guān) D(i) S(j) D(i) S(j) 對(duì)于讀寫(xiě)相關(guān)對(duì)于讀寫(xiě)相關(guān) S(i) D(j) S(i) D(j) 對(duì)于寫(xiě)寫(xiě)相關(guān)對(duì)于寫(xiě)寫(xiě)相關(guān) D(i) D(j) D(i) D(j) ( (寫(xiě)寫(xiě)) ) ( (寫(xiě)
13、寫(xiě)) ) ( (讀讀) ) ( (寫(xiě)寫(xiě)) ) ( (a a) ) 寫(xiě)寫(xiě)讀讀相相關(guān)關(guān) ( (b b) ) 寫(xiě)寫(xiě)寫(xiě)寫(xiě)相相關(guān)關(guān) ( (讀讀) ) ( (寫(xiě)寫(xiě)) ) i i 先先于于j j。 ( (c c) ) 讀讀寫(xiě)寫(xiě)相相關(guān)關(guān) 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 數(shù)據(jù)重定向方法數(shù)據(jù)重定向方法1.1.三種數(shù)據(jù)相關(guān)的重定向三種數(shù)據(jù)相關(guān)的重定向 重定向之前,重定向之前,j j只能在只能在i i之后執(zhí)行。之后執(zhí)行。 重定向之后,可以做到:重定向之后,可以做到:(1)(1)寫(xiě)讀相關(guān),寫(xiě)讀相關(guān),j j與與
14、i i可以同時(shí)執(zhí)行可以同時(shí)執(zhí)行 即公用數(shù)據(jù)通路即公用數(shù)據(jù)通路(2)(2)寫(xiě)寫(xiě)相關(guān),先后順序無(wú)關(guān)寫(xiě)寫(xiě)相關(guān),先后順序無(wú)關(guān)(3)(3)讀寫(xiě)相關(guān),先后順序無(wú)關(guān)讀寫(xiě)相關(guān),先后順序無(wú)關(guān) 后兩種情況又稱(chēng)為后兩種情況又稱(chēng)為“變量換名技術(shù)變量換名技術(shù)B BB B i i j j i iA AC CA Aj jC C( (a a) ) 寫(xiě)寫(xiě)讀讀相相關(guān)關(guān)的的數(shù)數(shù)據(jù)據(jù)重重定定向向B BB BB B i i j j i i j jA AC CA AC C( (b b) ) 寫(xiě)寫(xiě)寫(xiě)寫(xiě)相相關(guān)關(guān)的的數(shù)數(shù)據(jù)據(jù)重重定定向向B BB B i i j j j jA AC CA Aj jC C i iB B ( (c c) ) 讀讀寫(xiě)
15、寫(xiě)相相關(guān)關(guān)的的數(shù)數(shù)據(jù)據(jù)重重定定向向2.2.變量換名技術(shù)變量換名技術(shù)用來(lái)自動(dòng)消除讀寫(xiě)數(shù)據(jù)相關(guān)和寫(xiě)寫(xiě)數(shù)據(jù)相關(guān)用來(lái)自動(dòng)消除讀寫(xiě)數(shù)據(jù)相關(guān)和寫(xiě)寫(xiě)數(shù)據(jù)相關(guān)規(guī)那么:一個(gè)變量只允許定值一次規(guī)那么:一個(gè)變量只允許定值一次在三種數(shù)據(jù)相關(guān)中,實(shí)踐上只需寫(xiě)讀數(shù)據(jù)相關(guān)必需依托硬件、在三種數(shù)據(jù)相關(guān)中,實(shí)踐上只需寫(xiě)讀數(shù)據(jù)相關(guān)必需依托硬件、或采用軟硬件結(jié)合的方法來(lái)處理或采用軟硬件結(jié)合的方法來(lái)處理 處理方法:推后處置或公用數(shù)據(jù)通路處理方法:推后處置或公用數(shù)據(jù)通路在上面的數(shù)據(jù)重定向圖中,把在上面的數(shù)據(jù)重定向圖中,把B B換成了換成了BB,并在以后的都援用,并在以后的都援用BB讀寫(xiě)數(shù)據(jù)相關(guān)和寫(xiě)寫(xiě)數(shù)據(jù)相關(guān)就不存在了。讀寫(xiě)數(shù)據(jù)相關(guān)和寫(xiě)
16、寫(xiě)數(shù)據(jù)相關(guān)就不存在了。一個(gè)實(shí)踐例子:一個(gè)實(shí)踐例子: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) LD F6, -16(R1) LD F8, -24(R1) ADD F0,F(xiàn)2 ADD F4,F(xiàn)
17、2 ADD F6,F(xiàn)2 ADD F8,F(xiàn)2 SD 0(R1), F0 SD -8(R1), F4 SUBI R1, R1, #32 SD -16(R1), F6 BNEZ R1, Loop SD -24(R1), F83.3.一個(gè)簡(jiǎn)單的程序:一個(gè)簡(jiǎn)單的程序: k k: LOAD F1, A LOAD F1, A k+1 k+1: FADD F1, F2 FADD F1, F2 k+2 k+2: FMUL F1, F3 FMUL F1, F3 k+3 k+3: STORE F1, B STORE F1, B A k+1k+1 FADDFADD k+1 k+1 F2 k k k+1 k+1 F1
18、k+3 k+3 k+2 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專(zhuān)門(mén)設(shè)置:AFADD、FMULB、FADDFMUL三條公用途徑。吊銷(xiāo):F1FADD、F1FMUL、FADDF1 、AF1的途徑。5.4.4 Tomasulo5.4.4 Tomasulo動(dòng)態(tài)調(diào)度算法動(dòng)態(tài)調(diào)度算法P310P310適用的動(dòng)態(tài)調(diào)度算法主要有兩種:(1)集中控制:CD
19、C計(jì)分牌(scorebord)算法, 最先在CDC 6600大型機(jī)中采用。(2)分散控制:Tomasulo算法, 公共數(shù)據(jù)總線法,令牌法等。最早在大型機(jī)IBM 360/91的浮點(diǎn)處置部件中被采用。以上面的一段程序?yàn)槔U明Tomasulo算法k: LOAD F1, Ak+1: FADD F1, F2k+2: FMUL F1, F3k+3: STORE F1, B5.5 5.5 超標(biāo)量處置機(jī)超標(biāo)量處置機(jī)5.5.1 根本構(gòu)造根本構(gòu)造5.5.2 單發(fā)射與多發(fā)射單發(fā)射與多發(fā)射5.5.3 多流水線調(diào)度多流水線調(diào)度5.5.4 資源沖突資源沖突5.5.5 超標(biāo)量處置機(jī)性能超標(biāo)量處置機(jī)性能三種主流處置機(jī):三種主
20、流處置機(jī): 超標(biāo)量處置機(jī)超標(biāo)量處置機(jī) 超流水線處置機(jī)超流水線處置機(jī) 超標(biāo)量超流水線處置機(jī)超標(biāo)量超流水線處置機(jī)以以一一臺(tái)臺(tái)k k 段段流流水水線線的的普普通通標(biāo)標(biāo)量量處處理理機(jī)機(jī)為為基基準(zhǔn)準(zhǔn) 超超標(biāo)標(biāo)量量處處理理機(jī)機(jī)、超超流流水水線線處處理理機(jī)機(jī)和和超超標(biāo)標(biāo)量量超超流流水水線線處處理理機(jī)機(jī)的的主主要要性性能能: 機(jī)器類(lèi)型 k 段流水線 標(biāo)量處理機(jī) m度 超標(biāo)量處理機(jī) n 度 超流水線處理機(jī) (m,n)度超標(biāo)量 超流水線處理機(jī) 機(jī)器流水線周期 1 個(gè)時(shí)鐘周期 1 1n 1n 同時(shí)發(fā)射指令條數(shù) 1 條 m 1 m 指令發(fā)射等待時(shí)間 1 個(gè)時(shí)鐘周期 1 1n 1n 指令級(jí)并行度ILP 1 m n mn
21、 5.5.1 5.5.1 根本構(gòu)造根本構(gòu)造普通標(biāo)量流水線處置機(jī):普通標(biāo)量流水線處置機(jī): 一條指令流水線,一個(gè)多功能操作部件,一條指令流水線,一個(gè)多功能操作部件, 每個(gè)時(shí)鐘周期平均執(zhí)行指令的條數(shù)小于每個(gè)時(shí)鐘周期平均執(zhí)行指令的條數(shù)小于1 1。多操作部件標(biāo)量處置機(jī):多操作部件標(biāo)量處置機(jī): 一條指令流水線,多個(gè)獨(dú)立的操作部件,一條指令流水線,多個(gè)獨(dú)立的操作部件, 指令級(jí)并行度小于指令級(jí)并行度小于1 1。超標(biāo)量處置機(jī)典型構(gòu)造:超標(biāo)量處置機(jī)典型構(gòu)造: 多條并行任務(wù)的指令流水線,多個(gè)獨(dú)立的操作部件,多條并行任務(wù)的指令流水線,多個(gè)獨(dú)立的操作部件, 指令級(jí)并行度指令級(jí)并行度ILPILP大于大于1 1。整數(shù)整數(shù)
22、部件部件 整數(shù)整數(shù) 部件部件 位操位操作作 部件部件 浮點(diǎn)浮點(diǎn)加加 部件部件 乘法乘法 部件部件 除法除法 部件部件 圖形圖形 部件部件 圖形圖形 部件部件 內(nèi)部總線內(nèi)部總線 讀數(shù)存數(shù)讀數(shù)存數(shù) 部件部件 通用寄通用寄 存器堆存器堆 擴(kuò)展擴(kuò)展 寄存器堆寄存器堆 目標(biāo)目標(biāo) 指令指令 CacheCache 指令分配指令分配 轉(zhuǎn)移部件轉(zhuǎn)移部件 數(shù)據(jù)數(shù)據(jù) CacheCache(8K8KB B) 指令指令 CacheCache(8K8KB B) 3232 位地址總線位地址總線 6464 位數(shù)據(jù)總線位數(shù)據(jù)總線 系統(tǒng)總線系統(tǒng)總線 超標(biāo)量處理機(jī)超標(biāo)量處理機(jī) MC88110MC88110 的結(jié)構(gòu)的結(jié)構(gòu) Motor
23、ola公司的MC88110有10個(gè)操作部件兩個(gè)存放器堆:整數(shù)部件通用存放器堆,32個(gè)32位存放器浮點(diǎn)部件擴(kuò)展存放器堆,32個(gè)80位存放器緩沖深度為4的先行讀數(shù)棧緩沖深度為3的后行寫(xiě)數(shù)棧兩個(gè)獨(dú)立的高速Cache中,各為8KB,采用兩路組相聯(lián)方式轉(zhuǎn)移目的指令Cache,用于存放另一條分支上的指令5.5.2 5.5.2 單發(fā)射與多發(fā)射單發(fā)射與多發(fā)射1.1.單發(fā)射處置機(jī):?jiǎn)伟l(fā)射處置機(jī):每個(gè)周期只取一條指令、只譯碼一條指令,只執(zhí)行一條指令,每個(gè)周期只取一條指令、只譯碼一條指令,只執(zhí)行一條指令,只寫(xiě)回一個(gè)運(yùn)算結(jié)果。只寫(xiě)回一個(gè)運(yùn)算結(jié)果。取指令部件和指令譯碼部件各設(shè)置一套;取指令部件和指令譯碼部件各設(shè)置一套;
24、只設(shè)置一個(gè)多功能操作部件或設(shè)置多個(gè)獨(dú)立的操作部件;只設(shè)置一個(gè)多功能操作部件或設(shè)置多個(gè)獨(dú)立的操作部件;操作部件中可以采用流水線構(gòu)造,也可以不采用流水線構(gòu)造。操作部件中可以采用流水線構(gòu)造,也可以不采用流水線構(gòu)造。目的是每個(gè)時(shí)鐘周期平均執(zhí)行一條指令,目的是每個(gè)時(shí)鐘周期平均執(zhí)行一條指令,ILPILP的期望值為的期望值為1 1。2.2.多發(fā)射處置機(jī):多發(fā)射處置機(jī):每個(gè)周期同時(shí)取多條指令、同時(shí)譯碼多條指令,同時(shí)執(zhí)行多條每個(gè)周期同時(shí)取多條指令、同時(shí)譯碼多條指令,同時(shí)執(zhí)行多條指令,同時(shí)寫(xiě)回多個(gè)運(yùn)算結(jié)果。指令,同時(shí)寫(xiě)回多個(gè)運(yùn)算結(jié)果。多個(gè)取指令部件,多個(gè)指令譯碼部件和多個(gè)寫(xiě)結(jié)果部件。多個(gè)取指令部件,多個(gè)指令譯碼部
25、件和多個(gè)寫(xiě)結(jié)果部件。設(shè)置多個(gè)指令執(zhí)行部件,有些指令執(zhí)行部件采用流水線構(gòu)造。設(shè)置多個(gè)指令執(zhí)行部件,有些指令執(zhí)行部件采用流水線構(gòu)造。目的是每個(gè)時(shí)鐘周期平均執(zhí)行多條指令,目的是每個(gè)時(shí)鐘周期平均執(zhí)行多條指令,ILPILP的期望值大于的期望值大于1 1。單單 發(fā)發(fā) 射射 處處 理理 機(jī)機(jī) 的的 指指 令令 流流 水水 線線 時(shí)時(shí) 空空 圖圖 1 2 3 4 5 6 I1 IF ID EX W R 時(shí)時(shí) 鐘鐘 周周 期期 I2 IF ID EX W R I3 IF ID EX W R 指指 令令 多多 發(fā)發(fā) 射射 處處 理理 機(jī)機(jī) 的的 指指 令令 流流 水水 線線 時(shí)時(shí) 空空 圖圖 1 2 3 4 5
26、6 I1 IF ID EX W R 時(shí)時(shí) 鐘鐘 周周 期期 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 I8 IF ID EX W R I9 IF ID EX W R 指指 令令 單單發(fā)發(fā)射射處處理理機(jī)機(jī)的的指指令令流流水水線線 取取指指令令 指指令令譯譯碼碼 執(zhí)執(zhí)行行指指令令EX 寫(xiě)寫(xiě)回回結(jié)結(jié)果果 FA1 FA2 FA3 浮浮點(diǎn)點(diǎn)加加法法部部件件 來(lái)來(lái)自自指指令令 Cache IF ID MD1 MD2 MD3 WR 通通用用寄寄存存器器 后后行
27、行寫(xiě)寫(xiě)數(shù)數(shù)棧棧 乘乘除除法法部部件件 AL 定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯部部件件 LS 取取數(shù)數(shù)存存數(shù)數(shù)部部件件 同同時(shí)時(shí)發(fā)發(fā)射射兩兩條條指指令令的的多多發(fā)發(fā)射射處處理理機(jī)機(jī)的的指指令令流流水水線線 取取指指令令 指指令令譯譯碼碼 執(zhí)執(zhí)行行指指令令 寫(xiě)寫(xiě)回回結(jié)結(jié)果果 FA1 FA2 FA3 浮浮點(diǎn)點(diǎn)加加法法部部件件 來(lái)來(lái)自自指指令令 Cache IF1 ID1 MD1 MD2 MD3 WR1 通通用用寄寄存存器器 后后行行寫(xiě)寫(xiě)數(shù)數(shù)棧棧 乘乘除除法法部部件件 來(lái)來(lái)自自指指令令 Cache IF2 ID2 AL WR2 通通用用寄寄存存器器 后后行行寫(xiě)寫(xiě)數(shù)數(shù)棧棧 定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯部部件件 LS
28、 取取數(shù)數(shù)存存數(shù)數(shù)部部件件 3.3.超標(biāo)量處置機(jī):超標(biāo)量處置機(jī):有兩條或兩條以上能同時(shí)任務(wù)的指令流水線有兩條或兩條以上能同時(shí)任務(wù)的指令流水線先行指令窗口:可以從指令先行指令窗口:可以從指令CacheCache中預(yù)取多條指令,可以對(duì)窗中預(yù)取多條指令,可以對(duì)窗口內(nèi)的指令進(jìn)展數(shù)據(jù)相關(guān)性分析和功能部件沖突檢測(cè)。口內(nèi)的指令進(jìn)展數(shù)據(jù)相關(guān)性分析和功能部件沖突檢測(cè)。例如:例如:IntelIntel公司的公司的i860i860、i960i960、PentiumPentium,MotoloraMotolora公司的公司的MC88110MC88110,IBMIBM公司的公司的Power 6000,TIPower 6
29、000,TI公司消費(fèi)公司消費(fèi)SuperSPARCSuperSPARC等等操作部件的個(gè)數(shù)普通多于每個(gè)周期發(fā)射的指令條數(shù)。通常為操作部件的個(gè)數(shù)普通多于每個(gè)周期發(fā)射的指令條數(shù)。通常為4 4 個(gè)至個(gè)至1616個(gè)操作部件。個(gè)操作部件。超標(biāo)量處置機(jī)的指令級(jí)并行度:超標(biāo)量處置機(jī)的指令級(jí)并行度:1 1ILPILPm m有有先先行行指指令令窗窗口口的的超超標(biāo)標(biāo)量量處處理理機(jī)機(jī)的的流流水水線線結(jié)結(jié)構(gòu)構(gòu) 取取指指令令 指指令令譯譯碼碼 執(zhí)執(zhí)行行指指令令 寫(xiě)寫(xiě)回回結(jié)結(jié)果果 FA1 FA2 FA3 浮浮點(diǎn)點(diǎn)加加法法部部件件 指指令令 Cache IF1 ID1 MD1 MD2 MD3 WR1 通通用用寄寄存存器器 后后
30、行行寫(xiě)寫(xiě)數(shù)數(shù)棧棧 乘乘除除法法部部件件 指指令令 Cache IF2 ID2 AL WR2 通通用用寄寄存存器器 后后行行寫(xiě)寫(xiě)數(shù)數(shù)棧棧 定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯部部件件 IF3 ID3 LS 先先行行指指令令窗窗口口 取取數(shù)數(shù)存存數(shù)數(shù)部部件件 F FA A:浮浮點(diǎn)點(diǎn)加加減減法法運(yùn)運(yùn)算算,M MD D:乘乘除除法法運(yùn)運(yùn)算算,A AL L:定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯運(yùn)運(yùn)算算,L LS S 取取數(shù)數(shù)存存數(shù)數(shù) 5.5.3 5.5.3 多流水線調(diào)度多流水線調(diào)度順序發(fā)射(in-order issue)與亂序發(fā)射(out-order issue):指令發(fā)射順序是按照程序中指令陳列順序進(jìn)展的稱(chēng)為順序發(fā)射順序完成
31、(in-order completion)與亂序完成(out-order completion):指令完成順序是按照程序中指令陳列順序進(jìn)展的稱(chēng)為順序完成多流水線的調(diào)度主要有三種方法:順序發(fā)射順序完成順序發(fā)射亂序完成亂序發(fā)射亂序完成以如下以如下6 6條指令組成的程序?yàn)槔?,闡明這三種調(diào)度方條指令組成的程序?yàn)槔?,闡明這三種調(diào)度方法法 I1 I1:LOAD R1, A LOAD R1, A ;R1(A)R1(A) I2 I2:FADD R2, R1 FADD R2, R1 ;R2(R2)R2(R2)(R1)(R1) I3 I3:FMUL R3, R4 FMUL R3, R4 ;R3(R3)R3(R3)
32、(R4)(R4) I4 I4:FADD R4, R5 FADD R4, R5 ;R4(R4)R4(R4)(R5)(R5) I5 I5:DEC R6 DEC R6 ;R6(R6)R6(R6)1 1 I6 I6:FMUL R6, R7 FMUL R6, R7 ;R6(R6)R6(R6)(R7)(R7)6 6條指令中有條指令中有4 4個(gè)數(shù)據(jù)相關(guān),包括個(gè)數(shù)據(jù)相關(guān),包括2 2個(gè)寫(xiě)讀相關(guān),個(gè)寫(xiě)讀相關(guān),1 1個(gè)讀個(gè)讀寫(xiě)相關(guān)和寫(xiě)相關(guān)和1 1個(gè)寫(xiě)寫(xiě)相關(guān)。個(gè)寫(xiě)寫(xiě)相關(guān)。1.1.順序發(fā)射順序完成順序發(fā)射順序完成 共用共用1010個(gè)時(shí)鐘周期完成個(gè)時(shí)鐘周期完成 還有還有8 8個(gè)空閑的時(shí)鐘周期個(gè)空閑的時(shí)鐘周期順順序序發(fā)發(fā)射
33、射順順序序完完成成的的指指令令流流水水線線時(shí)時(shí)空空?qǐng)D圖 1 2 3 4 5 6 7 8 9 10 I1 IF1 ID1 LS WR1 時(shí)時(shí)鐘鐘周周期期 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 指指令令 I IF F:取取指指令令,I ID D:指指令令譯譯碼碼,L LS S 取取數(shù)數(shù)存存數(shù)數(shù),F(xiàn) FA A:浮浮點(diǎn)點(diǎn)加加減減法法運(yùn)運(yùn)算算, M MD D:乘乘除除法法運(yùn)運(yùn)算算,A AL L
34、:定定點(diǎn)點(diǎn)算算術(shù)術(shù)邏邏輯輯運(yùn)運(yùn)算算 W WR R:寫(xiě)寫(xiě)回回運(yùn)運(yùn)算算結(jié)結(jié)果果 2.2.順序發(fā)射亂序完成順序發(fā)射亂序完成 總的執(zhí)行時(shí)間為總的執(zhí)行時(shí)間為9 9個(gè)時(shí)鐘周期,個(gè)時(shí)鐘周期, 節(jié)省了一個(gè)時(shí)鐘周期。少了節(jié)省了一個(gè)時(shí)鐘周期。少了5 5個(gè)空閑時(shí)鐘周期。個(gè)空閑時(shí)鐘周期。順順序序發(fā)發(fā)射射亂亂序序完完成成的的流流水水線線時(shí)時(shí)空空?qǐng)D圖 1 2 3 4 5 6 7 8 9 I1 IF1 ID1 LS WR1 時(shí)時(shí)鐘鐘周周期期 I2 IF2 ID2 FA1 FA2 FA2 WR2 I3 IF1 ID1 MD1 MD2 MD3 WR1 I4 IF2 ID2 FA1 FA2 FA3 WR2 I5 IF1 ID1
35、AL WR1 I6 IF2 ID2 MD1 MD2 MD3 WR2 指指令令 順順序序發(fā)發(fā)射射亂亂序序完完成成的的指指令令完完成成次次序序 時(shí)時(shí)鐘鐘周周期期 4 4 5 5 6 6 7 7 8 8 9 9 流流水水線線 1 1 I1 I5 I3 流流水水線線 2 2 I2 I4 I6 3. 3. 亂序發(fā)射亂序完成亂序發(fā)射亂序完成沒(méi)有空閑周期,功能部件得到充分利用。沒(méi)有空閑周期,功能部件得到充分利用。 總的執(zhí)行時(shí)間為總的執(zhí)行時(shí)間為8 8個(gè)周期,節(jié)省個(gè)周期,節(jié)省2 2個(gè)周期。個(gè)周期。亂亂序序發(fā)發(fā)射射亂亂序序完完成成調(diào)調(diào)度度方方法法的的流流水水線線時(shí)時(shí)空空?qǐng)D圖 1 2 3 4 5 6 7 8 流流水
36、水線線 1 1 I I1 1 IF1 ID1 LS WR1 時(shí)時(shí)鐘鐘周周期期 流流水水線線 2 2 I I3 3 IF2 ID2 MD1 MD2 MD3 WR2 先先行行窗窗口口 I I4 4 IF3 ID3 FA1 FA2 FA3 WR1 I2 IF1 ID1 FA1 FA2 FA3 WR1 I5 IF2 ID2 AL WR2 I6 IF1 ID1 MD1 MD2 MD3 WR1 指指令令 指指令令在在流流水水線線中中的的發(fā)發(fā)射射次次序序 指指令令在在流流水水線線中中的的完完成成次次序序 時(shí)時(shí)鐘鐘周周1 2 3 時(shí)時(shí)鐘鐘周周期期 4 5 6 7 8 流流水水線線 1 1 I1 I2 I6 流
37、流水水線線 1 1 I1 I4 I2 I6 流流水水線線 2 2 I3 I5 流流水水線線 2 2 I5 I3 先先行行窗窗口口 I4 5.5.4 5.5.4 資源沖突資源沖突假設(shè)操作部件采用流水線構(gòu)造,發(fā)生資源沖突的能夠性很小;假設(shè)不采用流水線構(gòu)造,發(fā)生資源沖突的能夠性就比較大。下面是一個(gè)由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)雙雙 流流 水水 線線 超超 標(biāo)標(biāo) 量量 處處 理理 機(jī)機(jī) , 操操
38、作作 部部 件件 不不 采采 用用 流流 水水 線線 的的 時(shí)時(shí) 空空 圖圖1234567891011流流 水水 線線1 I1IF1 ID1FADDW R1 時(shí)時(shí) 鐘鐘 周周 期期流流 水水 線線2 I2IF2 ID2FM ULW R2流流 水水 線線1 I3IF1 ID1FADDW R1流流 水水 線線2 I4IF2 ID2FM ULW R2 指指 令令I(lǐng) IF F: 取取 指指 令令 , I ID D: 指指 令令 譯譯 碼碼 , F FA AD DD D: 浮浮 點(diǎn)點(diǎn) 加加 法法 , F FM MU UL L: 浮浮 點(diǎn)點(diǎn) 乘乘 法法 , W WR R: 寫(xiě)寫(xiě) 回回 結(jié)結(jié) 果果 操作部件
39、不采用流水線:操作部件不采用流水線: 做完做完4 4條指令總共用了條指令總共用了1111個(gè)周期,個(gè)周期, 有有5 5個(gè)空閑周期。個(gè)空閑周期。操作部件采用流水線:操作部件采用流水線: 做完做完4 4條指令共用條指令共用8 8個(gè)周期,個(gè)周期, 少用少用3 3個(gè)周期。個(gè)周期。雙雙流流水水線線超超標(biāo)標(biāo)量量處處理理機(jī)機(jī),操操作作部部件件采采用用流流水水線線的的時(shí)時(shí)空空?qǐng)D圖 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
40、1 時(shí)時(shí)鐘鐘周周期期 流流水水線線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 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
41、UL L4 4 W R2 指指令令 I IF F:取取指指令令,I ID D:指指令令譯譯碼碼,F(xiàn) FA AD DD D:浮浮點(diǎn)點(diǎn)加加法法,F(xiàn) FM MU UL L:浮浮點(diǎn)點(diǎn)乘乘法法,W WR R:寫(xiě)寫(xiě)回回結(jié)結(jié)果果 操作部件采用流水線構(gòu)造的緣由分析操作部件采用流水線構(gòu)造的緣由分析假每個(gè)周期發(fā)射假每個(gè)周期發(fā)射m m條指令,操作部件的延遲時(shí)間為條指令,操作部件的延遲時(shí)間為k k個(gè)個(gè)周期,周期,假設(shè)操作部件不采用流水線構(gòu)造,那么運(yùn)用同一個(gè)操假設(shè)操作部件不采用流水線構(gòu)造,那么運(yùn)用同一個(gè)操作部件的兩條指令應(yīng)該至少相差作部件的兩條指令應(yīng)該至少相差m mk k假設(shè)操作部件采用假設(shè)操作部件采用k k段流水線構(gòu)
42、造,那么運(yùn)用同一個(gè)操段流水線構(gòu)造,那么運(yùn)用同一個(gè)操作部件的兩條指令只需相差作部件的兩條指令只需相差m m或或m m以上以上指令流水線的段數(shù)指令流水線的段數(shù)k k普通在普通在4 4至至1010之間,每個(gè)時(shí)鐘周期之間,每個(gè)時(shí)鐘周期發(fā)射的指令條數(shù)發(fā)射的指令條數(shù)m m在在2 2至至4 4之間。取中間值,之間。取中間值,k k7 7,m m3 3為了不發(fā)生資源沖突,假設(shè)操作部件不采用流水線構(gòu)造, 兩條運(yùn)用同一個(gè)功能部件的指令序號(hào)必需相差21或21以上。假設(shè)操作部件采用流水線構(gòu)造, 兩條運(yùn)用同一個(gè)功能部件的指令序號(hào)只需求相差3或3以上。因此,在超標(biāo)量處置機(jī)中,操作部件普通要采用流水線構(gòu)造。 假設(shè)由于某種緣
43、由,操作部件不能采用流水線構(gòu)造,那么必需設(shè)置多個(gè)一樣種類(lèi)的操作部件普通標(biāo)量處置機(jī),希望一樣操作延續(xù)出現(xiàn)。 只需延續(xù)出現(xiàn)一樣操作的指令序列時(shí),流水線的效率才干得到充分發(fā)揚(yáng)。超標(biāo)量處置機(jī)那么正好相反,希望一樣操作不要延續(xù)出現(xiàn)。一樣操作的指令序列延續(xù)出現(xiàn)時(shí),會(huì)發(fā)生資源沖突;要求一樣操作的指令可以相對(duì)均勻地分布在程序中。超標(biāo)量處置機(jī)的這種要求正好符合普通標(biāo)量程序的特點(diǎn)。5.5.5 5.5.5 超標(biāo)量處置機(jī)性能超標(biāo)量處置機(jī)性能單流水線普通標(biāo)量處置機(jī)的指令級(jí)并行度記作(1, 1),超標(biāo)量處置機(jī)的指令級(jí)并行度記作(m, 1),超流水線處置機(jī)的指令級(jí)并行度記作(1, n),而超標(biāo)量超流水線處置機(jī)的指令級(jí)并行度
44、記作(m, n)。在理想情況下,N條指令在單流水線標(biāo)量處置機(jī)上的執(zhí)行時(shí)間為: T(1, 1)(kN1)t在每個(gè)周期發(fā)射m條指令的超標(biāo)量處置機(jī)上執(zhí)行的時(shí)間為: 超標(biāo)量處置機(jī)相對(duì)于單流水線標(biāo)量處置機(jī)的加速比為:超標(biāo)量處置機(jī)的加速比的最大值為:S(m,1)MAXmtmmNkmT)() 1 ,() 1() 1() 1 ,() 1 , 1 () 1 ,(kmNNkmmTTmS5.6 5.6 超流水線處置機(jī)超流水線處置機(jī)5.6.1 指令執(zhí)行時(shí)序指令執(zhí)行時(shí)序5.6.2 典型處置機(jī)構(gòu)造典型處置機(jī)構(gòu)造5.6.3 超流水線處置機(jī)性能超流水線處置機(jī)性能超流水線處置機(jī)的兩種定義:超流水線處置機(jī)的兩種定義:在一個(gè)周期內(nèi)
45、分時(shí)發(fā)射多條指令的處置機(jī)在一個(gè)周期內(nèi)分時(shí)發(fā)射多條指令的處置機(jī)指令流水線的段數(shù)大于等于指令流水線的段數(shù)大于等于8 8的流水線處置機(jī)的流水線處置機(jī)提高處置機(jī)性能的兩種方法:提高處置機(jī)性能的兩種方法:經(jīng)過(guò)添加硬件資源來(lái)提高處置機(jī)性能經(jīng)過(guò)添加硬件資源來(lái)提高處置機(jī)性能經(jīng)過(guò)各部分硬件的重疊任務(wù)來(lái)提高處置機(jī)性能經(jīng)過(guò)各部分硬件的重疊任務(wù)來(lái)提高處置機(jī)性能兩種不同并行性:兩種不同并行性:超標(biāo)量處置機(jī)采用的是空間并行性。超標(biāo)量處置機(jī)采用的是空間并行性。超流水線處置機(jī)采用的是時(shí)間并行性。超流水線處置機(jī)采用的是時(shí)間并行性。5.6.1 5.6.1 指令執(zhí)行時(shí)序指令執(zhí)行時(shí)序每隔每隔1/n個(gè)時(shí)鐘周期發(fā)射一條指令,個(gè)時(shí)鐘周期發(fā)
46、射一條指令, 即處置機(jī)的流水線周期為即處置機(jī)的流水線周期為1/n個(gè)時(shí)鐘周期。個(gè)時(shí)鐘周期。每每個(gè)個(gè)時(shí)時(shí)鐘鐘周周期期分分時(shí)時(shí)發(fā)發(fā)射射 3 3 條條指指令令的的超超流流水水線線處處理理機(jī)機(jī)的的指指令令執(zhí)執(zhí)行行時(shí)時(shí)空空?qǐng)D圖 1 1 2 2 3 3 4 4 5 5 6 6 I1 IF I ID D EX WR 時(shí)時(shí)鐘鐘周周期期 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 IF ID EX WR I8 IF ID EX WR 指指令令 I9 IF ID EX WR 5.6.2 5.6.2
47、 典型處置機(jī)構(gòu)造典型處置機(jī)構(gòu)造MIPS R4000MIPS R4000處置機(jī):處置機(jī): 每個(gè)時(shí)鐘周期包含兩個(gè)流水段每個(gè)時(shí)鐘周期包含兩個(gè)流水段是一種很規(guī)范的超流水線處置機(jī)構(gòu)造。是一種很規(guī)范的超流水線處置機(jī)構(gòu)造。指令流水線有指令流水線有8 8個(gè)流水段。個(gè)流水段。指令指令CacheCache和數(shù)據(jù)和數(shù)據(jù)CacheCache的容量各的容量各8KB8KB,每個(gè)時(shí)鐘周期可以訪問(wèn)每個(gè)時(shí)鐘周期可以訪問(wèn)CacheCache兩次,兩次,在一個(gè)時(shí)鐘周期內(nèi)可以從指令在一個(gè)時(shí)鐘周期內(nèi)可以從指令CacheCache中讀出兩條指令,從中讀出兩條指令,從數(shù)據(jù)數(shù)據(jù)CacheCache中讀出或?qū)懭雰蓚€(gè)數(shù)據(jù)。中讀出或?qū)懭雰蓚€(gè)數(shù)據(jù)。
48、主要運(yùn)算部件有整數(shù)部件和浮點(diǎn)部件。主要運(yùn)算部件有整數(shù)部件和浮點(diǎn)部件。MIPS R4000MIPS R4000 處理機(jī)的流水線操作處理機(jī)的流水線操作 IF IS RF EX DF DS TC WB 指令指令 指令譯碼指令譯碼 Cache 數(shù)據(jù)數(shù)據(jù) 寄存寄存 讀讀寄寄存存器器 ALU Cache 標(biāo)標(biāo) 志志 檢檢 驗(yàn)驗(yàn) 器堆器堆 IF:取第一條指令;:取第一條指令;IS:取第二條指令;:取第二條指令;RF:讀寄存器堆,指令譯碼;:讀寄存器堆,指令譯碼; EX:執(zhí)行指令;:執(zhí)行指令;DF:取第一個(gè)數(shù)據(jù);:取第一個(gè)數(shù)據(jù);DS:取第二個(gè)數(shù)據(jù);:取第二個(gè)數(shù)據(jù);TC:數(shù)據(jù)標(biāo)志檢驗(yàn);:數(shù)據(jù)標(biāo)志檢驗(yàn); WB:寫(xiě)
49、回結(jié)果:寫(xiě)回結(jié)果 MIPS R4000MIPS R4000 正常指令流水線工作時(shí)序正常指令流水線工作時(shí)序 主時(shí)鐘周期主時(shí)鐘周期 當(dāng)前當(dāng)前 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:取第二條指令;:取
50、第二條指令;RF:讀寄存器堆,指令譯碼;:讀寄存器堆,指令譯碼; EX:執(zhí)行指令;執(zhí)行指令;DF:取第一個(gè)數(shù)據(jù);:取第一個(gè)數(shù)據(jù);DS:取第二個(gè)數(shù)據(jù);:取第二個(gè)數(shù)據(jù);TC:數(shù)據(jù)標(biāo)志檢驗(yàn);:數(shù)據(jù)標(biāo)志檢驗(yàn); WB:寫(xiě)回結(jié)果:寫(xiě)回結(jié)果 流水流水 線線 周期周期 假設(shè)在LOAD指令之后的兩條指令中,任何一條指令要在它的EX流水級(jí)運(yùn)用這個(gè)數(shù)據(jù),那么指令流水線要暫停一個(gè)時(shí)鐘周期。指令 運(yùn)行 暫停 暫停 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 運(yùn)行 I1 DF DS TC WB LOAD指令 I2 EX DF DS TC WB 使用LOAD數(shù)據(jù) I3 RF EX DF DS TC WB I4 IS RF E
51、X 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 超流水線處置機(jī)性能超流水線處置機(jī)性能指令級(jí)并行度為(1,n)的超流水線處置機(jī),執(zhí)行N條指令所的時(shí)間為:超流水線處置機(jī)相對(duì)于單流水線普通標(biāo)量處置機(jī)的加速比為: 加速比的最大值為:S(1, n)MAXnTnkntN( , )()111) 1()1() 1(), 1 () 1 , 1 (), 1 (NnkNkntnNktNknTTnS5.7 5.7 超標(biāo)量超流水線處置機(jī)超標(biāo)量超流水線處置機(jī)一個(gè)時(shí)鐘周期發(fā)射一個(gè)時(shí)鐘周期發(fā)射m次,每次發(fā)射次,每次
52、發(fā)射n條指令條指令 5.7.1 指令執(zhí)行時(shí)序指令執(zhí)行時(shí)序5.7.2 典型處置機(jī)構(gòu)造典型處置機(jī)構(gòu)造5.7.3 超標(biāo)量超流水線處置機(jī)性能超標(biāo)量超流水線處置機(jī)性能5.7.4 三種處置機(jī)的性能比較三種處置機(jī)的性能比較每每個(gè)個(gè)時(shí)時(shí)鐘鐘周周期期發(fā)發(fā)射射 3 3 次次,每每次次同同時(shí)時(shí)發(fā)發(fā)射射 3 3 條條指指令令的的 超超標(biāo)標(biāo)量量超超流流水水線線處處理理機(jī)機(jī)的的指指令令執(zhí)執(zhí)行行時(shí)時(shí)空空?qǐng)D圖 1 1 2 2 3 3 4 4 5 5 6 6 I1 IF ID EX WR 時(shí)時(shí)鐘鐘周周期期 I2 IF ID EX WR I3 IF ID EX WR I4 I IF F ID EX WR I5 IF ID EX
53、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 IF ID EX WR I12 IF ID EX WR 指指令令 I IF F:取取指指令令,I ID D:指指令令譯譯碼碼,E EX X:執(zhí)執(zhí)行行指指令令,W WR R:寫(xiě)寫(xiě)回回結(jié)結(jié)果果 5.7.1 5.7.1 指令執(zhí)行時(shí)序指令執(zhí)行時(shí)序5.7.2 5.7.2 典型處置機(jī)構(gòu)造典型處置機(jī)構(gòu)造DEC公司的Alpha處置機(jī)為典型的超標(biāo)量超流水線構(gòu)造。主要由四個(gè)功能部件和兩個(gè)Cache組成:整數(shù)部件EBOX 浮點(diǎn)部件FBOX 地址部件AB
54、OX 中央控制部件IBOX 指令Cache和數(shù)據(jù)Cache在EBOX內(nèi)還有多條公用數(shù)據(jù)通路,可以把運(yùn)算結(jié)果直接送到執(zhí)行部件。中央控制部件IBOX可以同時(shí)完成: 同時(shí)讀出兩條指令; 同時(shí)對(duì)兩條指令進(jìn)展譯碼,并作相關(guān)性檢測(cè); 假設(shè)資源和相關(guān)性允許,IBOX就把兩條指令同時(shí)發(fā)射給EBOX、ABOX和FBOX三個(gè)執(zhí)行部件中的兩個(gè)。指令流水線的控制方式: 采用順序發(fā)射亂序完成。在指令Cache中有一個(gè)轉(zhuǎn)移歷史表,實(shí)現(xiàn)條件轉(zhuǎn)移的動(dòng)態(tài)預(yù)測(cè)。Alpha 21064Alpha 21064處置機(jī)共有三條指令流水線:處置機(jī)共有三條指令流水線:(1)(1)整數(shù)操作流水線為整數(shù)操作流水線為7 7個(gè)流水段,其中,取指令個(gè)
55、流水段,其中,取指令2 2個(gè)個(gè)流水段、分析指令流水段、分析指令2 2個(gè)流水段、運(yùn)算個(gè)流水段、運(yùn)算2 2個(gè)流水段、寫(xiě)個(gè)流水段、寫(xiě)結(jié)果結(jié)果1 1個(gè)流水段。個(gè)流水段。(2)(2)訪問(wèn)存儲(chǔ)器流水線為訪問(wèn)存儲(chǔ)器流水線為7 7個(gè)流水段。個(gè)流水段。(3)(3)浮點(diǎn)操作流水線分為浮點(diǎn)操作流水線分為1010個(gè)流水段,其中,浮點(diǎn)執(zhí)個(gè)流水段,其中,浮點(diǎn)執(zhí)行部件行部件FBOXFBOX的延遲時(shí)間為的延遲時(shí)間為6 6個(gè)流水段。個(gè)流水段。 三條指令流水線的平均段數(shù)為三條指令流水線的平均段數(shù)為(7+7+10)/3=8(7+7+10)/3=8,且每個(gè),且每個(gè)時(shí)鐘周期發(fā)射兩條指令。因此,時(shí)鐘周期發(fā)射兩條指令。因此,Alpha 2
56、1064Alpha 21064處置處置機(jī)為超標(biāo)量超流水線處置機(jī)。機(jī)為超標(biāo)量超流水線處置機(jī)。7 7 個(gè)個(gè)流流水水段段的的整整數(shù)數(shù)操操作作流流水水線線( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )IFSWAPI0I1A1A2WRI IF F:取取指指令令;S SW WA AP P:交交換換雙雙發(fā)發(fā)射射指指令令,轉(zhuǎn)轉(zhuǎn)移移預(yù)預(yù)測(cè)測(cè);I I0 0:指指令令譯譯碼碼;I I1 1 訪訪問(wèn)問(wèn)通通用用寄寄存存器器堆堆,發(fā)發(fā)射射校校驗(yàn)驗(yàn);A A1 1:計(jì)計(jì)算算周周期期 1 1,I IB BO OX X 計(jì)計(jì)算算新新的的 P PC C
57、 值值;A A2 2:計(jì)計(jì)算算周周期期 2 2,查查指指令令快快表表;W WR R:寫(xiě)寫(xiě)整整數(shù)數(shù)寄寄存存器器堆堆,指指令令 C Ca ac ch he e 命命中中檢檢測(cè)測(cè)。7 7 個(gè)個(gè)流流水水段段的的訪訪問(wèn)問(wèn)存存儲(chǔ)儲(chǔ)器器流流水水線線 ( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )IFSWAPI0I1ACTBHMA AC C:A AB BO OX X 計(jì)計(jì)算算有有效效數(shù)數(shù)據(jù)據(jù)地地址址;T TB B:查查數(shù)數(shù)據(jù)據(jù)快快表表;H HM M:寫(xiě)寫(xiě)讀讀數(shù)數(shù)緩緩沖沖棧棧,數(shù)數(shù)據(jù)據(jù) C Ca ac ch he e 命命中中/ /不不命命中中檢檢測(cè)測(cè)。 1 10 0 個(gè)個(gè)流流水水段段的的浮浮點(diǎn)點(diǎn)操操作作流流水水線線 ( (0 0) )( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )( (7 7) )( (8 8) )( (9 9) )IFSWAPI0I1F1F2F3F4F5FWRF F1 1F F5 5:浮浮點(diǎn)點(diǎn)計(jì)計(jì)算算流流水水線線;F FW WR R:寫(xiě)寫(xiě)回回浮浮點(diǎn)點(diǎn)寄寄存存
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)學(xué)創(chuàng)新研究探索
- 大學(xué)生就業(yè)協(xié)議書(shū)(2篇)
- 2024年跨境電子商務(wù)平臺(tái)建設(shè)與運(yùn)營(yíng)合同
- 2025年電子POS機(jī)租賃及系統(tǒng)維護(hù)一體化合同3篇
- 電梯維保承包合同
- 簡(jiǎn)單的股份轉(zhuǎn)讓協(xié)議書(shū)范本
- 2024年麻石欄桿工程監(jiān)理合同
- 1 我們愛(ài)整潔 ( 說(shuō)課稿)-2023-2024學(xué)年道德與法治一年級(jí)下冊(cè)統(tǒng)編版
- 2024年版物業(yè)管理服務(wù)合同詳細(xì)條款
- 《勞動(dòng)合同法》87條
- 2023年安全總監(jiān)年終工作總結(jié)
- GB/T 43543-2023漱口水
- 法拍輔助工作管理制度
- 中控室保密與信息安全政策
- 后端開(kāi)發(fā)年終總結(jié)
- 萬(wàn)達(dá)廣場(chǎng)營(yíng)銷(xiāo)活動(dòng)管理及效果考核規(guī)定
- 過(guò)敏性皮炎的護(hù)理查房
- 將配偶追加為被執(zhí)行人申請(qǐng)書(shū)
- 硬筆書(shū)法田字格標(biāo)準(zhǔn)尺寸
- 中建辦公商業(yè)樓有限空間作業(yè)專(zhuān)項(xiàng)施工方案
- 大觀念視域下小學(xué)英語(yǔ)單元整體教學(xué)的實(shí)踐研究 論文
評(píng)論
0/150
提交評(píng)論