計(jì)算機(jī)技術(shù)第6章超標(biāo)量流水線_第1頁(yè)
計(jì)算機(jī)技術(shù)第6章超標(biāo)量流水線_第2頁(yè)
計(jì)算機(jī)技術(shù)第6章超標(biāo)量流水線_第3頁(yè)
計(jì)算機(jī)技術(shù)第6章超標(biāo)量流水線_第4頁(yè)
計(jì)算機(jī)技術(shù)第6章超標(biāo)量流水線_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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、編輯ppt1第6章 超標(biāo)量流水線 編輯ppt26.1 概述 流水線(Pipelines)是一種使多條指令重疊操作的技術(shù),是目前廣泛應(yīng)用于微處理芯片中的一項(xiàng)關(guān)鍵技術(shù) 。 那么什么是超標(biāo)量呢?超標(biāo)量是通過(guò)內(nèi)置多條流水線來(lái)同時(shí)執(zhí)行多個(gè)指令,其實(shí)質(zhì)是以空間換取時(shí)間。Pentium的超標(biāo)量是建筑在兩個(gè)通用的整型流水線和一個(gè)可流水作業(yè)的浮點(diǎn)單元上的,這使處理器能夠同時(shí)執(zhí)行兩條整型指令。 發(fā)展到高能Pentium后,又采用了動(dòng)態(tài)執(zhí)行技術(shù)(Dynamic Execution)這一新的設(shè)計(jì)思路,可以無(wú)序地執(zhí)行指令。 編輯ppt3 6.2 整型流水線分支目標(biāo)緩沖分支目標(biāo)緩沖器器 代碼代碼Cache 8KBTLB指

2、令指令指針指針預(yù)取緩沖存儲(chǔ)器預(yù)取緩沖存儲(chǔ)器指令譯碼部件指令譯碼部件256位位總總 線線 接接 口口 部部 件件分頁(yè)部件分頁(yè)部件64位數(shù)位數(shù)據(jù)據(jù)總線總線 預(yù)取預(yù)取地址地址32位地址位地址總線總線控制控制控控 制制 部部 件件地址生成地址生成(U流水線)流水線)地址生成地址生成(V流水線)流水線)控制控制ROMALU(U流水線)流水線)ALU(V流水線)流水線)整數(shù)寄存器組整數(shù)寄存器組桶形移位器桶形移位器數(shù)據(jù)數(shù)據(jù) Cache 8KBTLB浮點(diǎn)部件浮點(diǎn)部件控制控制寄存器組寄存器組加法器加法器除法器除法器乘法器乘法器80位位80位位分支檢測(cè)和目標(biāo)地址分支檢測(cè)和目標(biāo)地址64位數(shù)位數(shù)據(jù)據(jù)總線總線32位地位

3、地址址總線總線32位位32位位32位位32位位32位位32位位圖6-1 Pentium處理器核心邏輯編輯ppt4時(shí)間時(shí)間i1i2012345687UVPFD1D2EXWBPFD1D2EXWBPFD1D2EXWBPFD1D2EXWBPFD1D2EXWBPFD1D2EXWBPFD1D2EXWBPFD1D2EXWBUVUVUVi3i4i555i6i7i8圖6-2 Pentium的超標(biāo)量流水線編輯ppt5 6.2.1 Pentium的流水線的流水線圖6-3Pentium的流水線結(jié)構(gòu)框圖編輯ppt6 圖6-4 指令滿足配對(duì)規(guī)則是兩條流水線的滿載操作 編輯ppt7 6.2.2 指令配對(duì)指令配對(duì)配對(duì)規(guī)則:(

4、1) 配對(duì)的兩條指令必須是簡(jiǎn)單指令。Pentium的簡(jiǎn)單指令是全硬件化的,ROM形式的微代碼指令則不然。也就是說(shuō),配對(duì)指令通常都是能夠在單個(gè)時(shí)鐘周內(nèi)執(zhí)行完的指令。簡(jiǎn)單指令:完全由硬件執(zhí)行而無(wú)需任何微碼控制,在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行的指令。mov reg, reg/mem/immmov mem,reg/immalu reg, reg/mem/immalu mem, reg/imm編輯ppt8inc reg/memdec reg/mempush reg/mempop reglea reg, memjmp/call/jcc nearnop注意,以上的注意,以上的ALU不是指令,僅表示不是指令,僅表示AD

5、D/AND等所有算術(shù)等所有算術(shù)與邏輯指令。與邏輯指令。例:例:MOV AX, 5INC BXMOV AX, 5INC AX編輯ppt9 (2) 兩條指令之間不得存在“寫(xiě)后讀”或“寫(xiě)后寫(xiě)”這樣的寄存器相關(guān)性。例如: MOV EAX, EBX / MOV ECX, EAX ; 寫(xiě)后面跟著讀,不能配對(duì)MOV EAX, 1 / MOV EAX, 2 ; 寫(xiě)后面跟著寫(xiě),不能配對(duì)MOV EBX, EAX / MOV EAX, 2 ; 讀后面跟著寫(xiě),可以配對(duì)MOV EBX, EAX / MOV ECX, EAX ; 讀后面跟著讀,可以配對(duì)MOV EBX, EAX / INC EAX ; 讀后面跟著讀寫(xiě),可以

6、配對(duì) 編輯ppt10(3)一條指令不能同時(shí)既包含位移量又包含立即數(shù)MOV DWORD PTR DS:1000, 0 ; 不能配對(duì), 或者只能在 U 流水線配對(duì)CMP BYTE PTR EBX+8, 1 ; 不能配對(duì), 或者只能在 U 流水線配對(duì)CMP BYTE PTR EBX, 1 ; 可以配對(duì)CMP BYTE PTR EBX+8, AL ; 可以配對(duì)編輯ppt11(4) 帶前綴(JCC指令的0F除外)的指令只能出現(xiàn)在U流水線中例如:用段前綴對(duì)非缺省段尋址的指令。在32位代碼中使用16位的數(shù)據(jù),或16位的代碼中使用32位數(shù)據(jù)的帶操作數(shù)尺寸前綴的指令。16位模式中,使用32位的基址寄存器或變址寄

7、存器的帶地址尺寸前綴的指令。 帶重復(fù)前綴的字符串操作指令。 帶LOCK前綴的鎖定指令。 很多在 8086 處理器中沒(méi)有實(shí)現(xiàn)的,有兩個(gè)字節(jié)的操作碼且其中第一個(gè)字節(jié)是0F的指令。 最常見(jiàn)的帶0F前綴的指令有: MOVZX,MOVSX,PUSH FS,POP FS,PUSH GS, POP GS,LFS,LGS,LSS,SETCC,BT,BTC,BTR,BTS,BSF,BSR,SHLD,SHRD,還有帶兩個(gè)操作數(shù)且沒(méi)有立即數(shù)的IMUL。 編輯ppt12 例6-1 程序段如下: MOV AX,5 INC BX ADD AX,BX XOR CX,CX MOV DX,8 INC DX 編輯ppt13例6-

8、2 用100個(gè)雙字?jǐn)?shù)據(jù)0FFFFFFFF來(lái)初始化一個(gè)數(shù)組,程序段如下:MOV EDX,0FFFFFFFFH ;裝創(chuàng)值到EDXLEA EAX,ARRAY ;將數(shù)組的起始地址裝入EAX寄存器MOV ECX,EAX+396 ;最后一個(gè)元素的地址裝入ECX寄存器INIT_LOOP:MOV EAX,EDX ;循環(huán)裝入初值A(chǔ)DD EAX,04H ;指向下一個(gè)元素CMP EAX,ECX ;判斷是否裝到了最后一個(gè)地址JBE INIT_LOOP ;還未裝完,轉(zhuǎn)裝下一個(gè)編輯ppt14 執(zhí)行順序如下: U流水線 V流水線 MOV EAX,EDX ADD EAX,04H CMP EAX,ECX JBE INIT_LO

9、OP編輯ppt15IF級(jí)D1級(jí)D2級(jí)EX級(jí)WB級(jí)n+0周期U線指令K指令K-1指令K-2指令K-4指令K-5結(jié)果 V線指令K+1空空指令K-3空n+1周期U線指令K+2指令K指令K-1指令K-2指令K-4結(jié)果V線指令K+3指令K+1空空指令K-3 結(jié)果n+2周期U線指令K+4指令K-2指令K指令K-1指令K-2結(jié)果V線指令K+5指令K+3指令K+1空空n+3周期U線指令K+5指令K+4指令K+2指令K指令K-1結(jié)果V線指令K+6空指令K+3指令K+1空n+4周期U線指令K+7指令K+5指令K+4指令K+2指令K結(jié)果V線指令K+8指令K+6空指令K+3指令K+1 結(jié)果圖6-5 流水線出現(xiàn)空閑級(jí)編

10、輯ppt166.3浮點(diǎn)流水線Pentium浮點(diǎn)部件流水線分成8階段:PF預(yù)取、D1譯碼階段1、D2譯碼階段2、EX取操作數(shù)、X1浮點(diǎn)執(zhí)行步驟1、X2浮點(diǎn)執(zhí)行步驟2、WT寫(xiě)浮點(diǎn)數(shù)、ER出錯(cuò)報(bào)告。第一個(gè)浮點(diǎn)執(zhí)行級(jí)X1(整數(shù)部件的執(zhí)行級(jí)),將從數(shù)據(jù)Cache或存儲(chǔ)器中讀取的數(shù)據(jù)轉(zhuǎn)換成暫存的實(shí)型格式,并且寫(xiě)入寄存器堆棧的某一個(gè)寄存器中;由該級(jí)出來(lái)后進(jìn)入浮點(diǎn)執(zhí)行級(jí)X2,這是浮點(diǎn)指令的實(shí)際執(zhí)行級(jí);然后又進(jìn)入浮點(diǎn)寄存器寫(xiě)入級(jí)WR,將結(jié)果寫(xiě)回80位的浮點(diǎn)寄存器堆棧;1. 最后一級(jí)就是出錯(cuò)級(jí)ER,用于浮點(diǎn)處理中可能出現(xiàn)的錯(cuò)誤。 編輯ppt17 Pentium微處理機(jī)對(duì)浮點(diǎn)流水線的執(zhí)行操作規(guī)定了以下4條: 浮點(diǎn)指

11、令與整數(shù)指令不能成對(duì)執(zhí)行,但2條浮點(diǎn)指令卻可以有限制地配對(duì)執(zhí)行操作。 當(dāng)成對(duì)浮點(diǎn)指令進(jìn)入浮點(diǎn)部件時(shí),其中的第二條浮點(diǎn)指令只能是寄存器交換指令FXCH,而第一條浮點(diǎn)指令必須是浮點(diǎn)指令集中的一條浮點(diǎn)指令。它們可以是裝實(shí)型數(shù)指令(FLD)、各種形式的算術(shù)運(yùn)算指令(FADD、FSUB、FMAL、FDIV)、實(shí)數(shù)比較指令(FCOM)、存實(shí)型數(shù)并上托出棧指令(FIST)、絕對(duì)值指令(FABS)、變符號(hào)指令(FCHS)等浮點(diǎn)指令。 除寄存器交換指令之外的那些浮點(diǎn)指令,以及屬于浮點(diǎn)指令集中的那些浮點(diǎn)指令(第二條定義的規(guī)則),其余指令總是單個(gè)地發(fā)送給浮點(diǎn)部件。 只要不是緊跟在浮點(diǎn)交換指令之后的那些浮點(diǎn)指令,都可

12、以單獨(dú)地發(fā)送給浮點(diǎn)部件。編輯ppt18 Pentium浮點(diǎn)部件的“棧項(xiàng)瓶頸”是怎樣形成的 ?及如何解決? Pentium微處理機(jī)堆棧結(jié)構(gòu)要求進(jìn)行堆棧操作的所有指令,在堆棧棧頂要有一個(gè)源操作數(shù)。因?yàn)榻^大多數(shù)指令總是希望用堆棧棧頂作為它們的目的操作數(shù)。所以大多數(shù)指令看到的仿佛是一個(gè)“棧項(xiàng)瓶頸”,在向棧頂發(fā)送一條算術(shù)運(yùn)算指令之前,必須先把源操作數(shù)傳送至棧頂。 在這種情況下,就額外用到了交換指令。它允許程序設(shè)計(jì)人員把一個(gè)有效操作數(shù)送至堆棧棧頂。 而且是以并行方式與其他浮點(diǎn)指令一起執(zhí)行交換操作。與另一些浮點(diǎn)指令成對(duì)出現(xiàn)的浮點(diǎn)交換指令的執(zhí)行時(shí)間為0個(gè)時(shí)鐘。因?yàn)檫@樣的交換指令在Pentium微處理機(jī)上是以并

13、行方式執(zhí)行的,所以不再需要花費(fèi)額外時(shí)間。編輯ppt19 可以和交換指令FXCH配對(duì)的浮點(diǎn)指令包括:裝載指令:FLD/FLD ST加法指令:FADD/FADDP減法指令:FSUB/FSUBP/FSUBR/FSUBRP乘法指令:FMUL/FMULP除法指令:FDIV/FDIVP/FDIVR/FDIVRP比較指令:FCOM/FCOMP/FCOMPP無(wú)序比較指令:FUCOM/FUCOMP/FUCOMPP零測(cè)試指令;FTST絕對(duì)值指令:FABS修改符號(hào)指令:FCHS編輯ppt20圖6-6 8級(jí)浮點(diǎn)流水線編輯ppt21 6.4動(dòng)態(tài)執(zhí)行技術(shù) 動(dòng)態(tài)執(zhí)行技術(shù),也稱為推測(cè)執(zhí)行(speculative execution)是指通過(guò)預(yù)測(cè)程序流來(lái)調(diào)整指令的執(zhí)行,并分析程序的數(shù)據(jù)流來(lái)選擇指令執(zhí)行的最佳順序。編輯ppt22 它的基本思想是:在取指階段,在局部范圍內(nèi)預(yù)先判斷下一條待取指令最有可能的位置,即在取指部件就具有部分執(zhí)行功能,以便取指的分支預(yù)測(cè),保證取指部件所取的指令是按照指令代碼的執(zhí)行順序取入,

溫馨提示

  • 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)論