計(jì)算機(jī)組成原理(第6版)課件匯 紀(jì)祿平 3.4.4 多周期MIPS處理器-6.3.3 CRT顯示器_第1頁(yè)
計(jì)算機(jī)組成原理(第6版)課件匯 紀(jì)祿平 3.4.4 多周期MIPS處理器-6.3.3 CRT顯示器_第2頁(yè)
計(jì)算機(jī)組成原理(第6版)課件匯 紀(jì)祿平 3.4.4 多周期MIPS處理器-6.3.3 CRT顯示器_第3頁(yè)
計(jì)算機(jī)組成原理(第6版)課件匯 紀(jì)祿平 3.4.4 多周期MIPS處理器-6.3.3 CRT顯示器_第4頁(yè)
計(jì)算機(jī)組成原理(第6版)課件匯 紀(jì)祿平 3.4.4 多周期MIPS處理器-6.3.3 CRT顯示器_第5頁(yè)
已閱讀5頁(yè),還剩389頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組成原理(小班+混合式教學(xué))1/83.4.4多周期MIPS處理器(數(shù)據(jù)通路)2/12指令周期時(shí)鐘周期時(shí)鐘周期

指令周期多個(gè)機(jī)器(工作)周期1、單周期CPU2、多周期CPUCPU的指令周期對(duì)比CPI=1CPI>13/12多周期處理器的特點(diǎn)指令的執(zhí)行需多個(gè)時(shí)鐘周期不同的指令所需的時(shí)鐘周期數(shù)不同時(shí)鐘周期比單周期處理器短復(fù)用主要部件,以簡(jiǎn)化數(shù)據(jù)通路單個(gè)ALU用于所有計(jì)算單個(gè)存儲(chǔ)器用于指令和數(shù)據(jù)的存儲(chǔ)需要增加寄存器暫存數(shù)據(jù)用于跨時(shí)鐘周期是流水線(xiàn)等高級(jí)技術(shù)的基礎(chǔ),主流模式控制器更復(fù)雜,組合邏輯/微程序方式控制信號(hào)不僅與指令有關(guān),還與當(dāng)前時(shí)序狀態(tài)有關(guān)4/12與單周期CPU相比,數(shù)據(jù)通路的結(jié)構(gòu)特點(diǎn):√各指令共享ALU√增設(shè)若干暫存器√指令存儲(chǔ)與數(shù)據(jù)存儲(chǔ)合并1個(gè)存儲(chǔ)器(存儲(chǔ)指令+數(shù)據(jù)),1個(gè)通用運(yùn)算器;多個(gè)暫存器;5/12多周期處理器的設(shè)計(jì)思路√指令執(zhí)行過(guò)程按存儲(chǔ)單元級(jí)的信息傳送,細(xì)分為多步,每步安排1個(gè)時(shí)鐘周期:√共享硬件以簡(jiǎn)化數(shù)據(jù)通路(1+1+多)取指令;指令譯碼后從寄存器取數(shù)、計(jì)算轉(zhuǎn)移地址;執(zhí)行:運(yùn)算、存儲(chǔ)器地址計(jì)算,或分支判斷;存儲(chǔ)器讀/寫(xiě);寄存器堆寫(xiě)回;1個(gè)存儲(chǔ)器(指令+數(shù)據(jù));1個(gè)通用運(yùn)算器;多個(gè)暫存器;√從R型指令數(shù)據(jù)通路開(kāi)始,逐步擴(kuò)展,最后再合并。6/12PCIRMDRABALUF1、

數(shù)據(jù)通路設(shè)計(jì)(表3-26,11條指令)PCWriteAddrRDWDMemReadMemWrite存儲(chǔ)器operationzeroIRWrite(1)R型運(yùn)算指令addrd,rs,rt#$rd←$rs+$rt+4PCRN1RN2WNRD1RD2RegWriteWD寄堆(1)IR←Mem[PC],PC←

PC+4(2)A←Reg[rs],B←Reg[rt](3)F←AopB(4)Reg[rd]←FIRABFrsrtrd按信息傳送過(guò)程劃分:7/12(2)擴(kuò)展I型訪(fǎng)存指令lwrt,offset(rs)#$rt←Mem[$rs+E(offset)](1)IR←Mem[PC],PC←

PC+4(2)A←Reg[rs](3)F←A+E(offset)(4)MDR←Mem[F]+4PCIRMDRABALUFPCWriteAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWritePCAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆E(5)Reg[rt]←MDRIRMDRAFrsrtrdimm8/12已涵蓋了I型運(yùn)算指令!比如:addirt,rs,immswrt,offset(rs)#Mem[$rs+E(offset)]←$rt(1)IR←Mem[PC],PC←PC+4(2)A←Reg[rs],B←Reg[rt]

(3)F←A+E(offset)+4PCALUFPCWriteAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWritePCAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆E(4)Mem[F]←BMDRIRABABIRFrsrtrdimm9/12beqrs,rt,offset#PC←(PC+4)+(E(offset)<<2),if$rs==$rt+4PCALUFPCWriteAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWritePCAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRIRAB(1)IR←Mem[PC];PC←PC+4,

(2)A←Reg[rs],B←Reg[rt];F←PC+E(offset)<<2

(3)PC←F,ifzero=1;NOP(不修改PC),ifzero=0ABFIR(2)擴(kuò)展I型分支指令rsrtrdimm<<210/12jaddress#PC←(PC+4)[31:28]U(address<<2)+4PCALUFPCWriteAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWritePCAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRIRAB(1)IR←Mem[PC];

PC←PC+4,

(2)PC←PC[31:28]U(address<<2)

<<2(3)擴(kuò)展J型jaddress指令<<2Ursrtrdaddress,26

imm11/1211條目標(biāo)指令的數(shù)據(jù)通路設(shè)計(jì)已完成!IR4未整合的數(shù)據(jù)通路PC的來(lái)源:ALU_A的來(lái)源:ALU_B的來(lái)源:寄堆WD的來(lái)源:WN的來(lái)源:Addr來(lái)源:符號(hào)擴(kuò)展器:0擴(kuò)展(andi等),符號(hào)擴(kuò)展(addi等)rt+4PCALUFPCWriteAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddrRDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRIRAB<<2<<2Ursrdaddressimm4PC+4(ALU),分支地址(F),轉(zhuǎn)移地址(U)MDR,F;rt,rd;PC,F;PC,

A;4,B,E(offset),E(offset)<<212/12+4PCALUPCWriteRN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddr

RDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2UIRF對(duì)數(shù)據(jù)通路進(jìn)行整合:0100100100011011011010PC的輸入端:3路;ALU_A的輸入:2路;ALU_B的輸入:4路;寄堆WD的輸入:2路、WN的輸入:2路;存儲(chǔ)器Addr輸入:2路;(使用了6個(gè)多路選擇器)rdrsrtaddrimm13/123.4.4多周期MIPS處理器(指令流程與微命令分析)14/12※多周期CPU所需的控制信號(hào)支持:R型、I型(訪(fǎng)存/分支/運(yùn)算等)和J型j指令;PCWriteoperationextendAluSrc_AMem2RegPCSrc[1:0]AluSrc_B[1:0]RegDstIRWrite+4PCALURN1RN2WNRD1RD2RegWriteWD寄堆zeroAddr

RDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRFIorDrst共需13組控制信號(hào)(用天藍(lán)色字體標(biāo)注)。15/12整理所需的控制信號(hào)信號(hào)名稱(chēng)用途控制信號(hào)具體操作PCSrc選擇打入PC的數(shù)據(jù)來(lái)源01選通F暫存器00選通ALU的輸出10選通分支轉(zhuǎn)移地址PCWrite設(shè)置PC的工作模式0未使用1將PC置為寫(xiě)模式IorD選擇存儲(chǔ)器地址端addr的來(lái)源0選通PC1選通暫存器FMem2Reg選通寄存器堆WD的數(shù)據(jù)源0選通暫存器F1選通暫存器MDRExtend設(shè)置16→32位的擴(kuò)展模式00擴(kuò)展(邏輯型)1符號(hào)擴(kuò)展(數(shù)值型)(參見(jiàn)表3-32)16/1217/1信號(hào)名稱(chēng)用途控制信號(hào)具體操作ALUsrc_A選擇ALU的A端口數(shù)據(jù)來(lái)源0選通PC1選通A暫存器ALUSrc_B選擇ALU的B端口數(shù)據(jù)來(lái)源00選擇常數(shù)401選通寄存器B10選通擴(kuò)展后的數(shù)據(jù)11選通擴(kuò)展并左移的數(shù)據(jù)IRWrite設(shè)置IR的工作模式0未使用1將IR設(shè)置為寫(xiě)模式RegDst、RegWrite與單周期數(shù)據(jù)通路中的一致MemWrite、MemReadoperation(續(xù)表)√√√這些信號(hào)將參與指令執(zhí)行過(guò)程的控制!IR←Mem[PC]PC←PC+4T0T1T2T3T4R型lwswbeqI運(yùn)算jFTDTETMTRTA←Reg[rs]B←Reg[rt]F←AopBA←Reg[rs]F←A+E(offset)MDR←Mem[F]Reg[rt]←MDRA←Reg[rs]B←Reg[rt]F←A+E(offset)Mem[F]←BA←Reg[rs]B←Reg[rt]F←PC+E(offset)<<2A-BZero=1:PC←F

PC←PC[31:28]Uaddr<<2F←A

opE(imm)A←Reg[rs]Reg[rd]←FReg[rt]←FReg[rd]←FReg[rt]←F取指令譯碼執(zhí)行訪(fǎng)存寫(xiě)回寄堆(1)指令執(zhí)行流程18/1219/1時(shí)鐘周期功能(微)操作控制信號(hào)(微命令)T0IR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1A←Reg[rs],B←Reg[rt]時(shí)鐘邊沿觸發(fā),無(wú)其它控制信號(hào)T2F←AopBALUSrc_A=1,ALUSrc_B=01,operation,T3Reg[rd]←FRegDst=0,Mem2Reg=0,RegWrite=1T4※R型指令:oprd,rs,rt(2)各指令所需信號(hào)分析(結(jié)合圖3-91)20/1時(shí)鐘周期功能(微)操作直接控制信號(hào)(微命令)T0IR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1A←Reg[rs]時(shí)鐘邊沿觸發(fā),無(wú)其它控制信號(hào)T2F←A+E(offset)ALUSrc_A=1,ALUSrc_B=10,extend=1,operation=0010T3MDR←Mem[F]IorD=1,MemRead=1T4Reg[rt]←MDRRegDst=1,MemtoReg=1,RegWrite=1※I型訪(fǎng)存指令:lwrt,offset(rs)時(shí)鐘周期功能(微)操作直接控制信號(hào)(微命令)T0IR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1A←Reg[rs]B←Reg[rt]時(shí)鐘邊沿觸發(fā),無(wú)其它控制信號(hào)T2F←A+E(offset)ALUSrc_A=1,ALUSrc_B=10,extend=1,operation=0010T3Mem[F]←BIorD=1,MemWrite=1T4※I型訪(fǎng)存指令:swrt,offset(rs)21/12時(shí)鐘周期功能(微)操作直接控制信號(hào)(微命令)T0IR←Mem[PC],PC←PC+4IorD=0,MemRead=1,IRWrite=1,ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1A←Reg[rs],B←Reg[rt],F←PC+E(offset)<<2ALUSrc_A=0,ALUSrc_B=11,operation=0010,extend=1T2A-B:Ifzero==1,PC←FIfzero==0,NOPALUSrc_A=1,ALUSrc_B=01,operation=0110Ifzero==1:PCSrc=01,PCWrite=1T3T4※I型分支指令:beqrs,rt,offset22/12時(shí)鐘周期功能(微)操作直接控制信號(hào)(微命令)T0IR←Mem[PC],PC←PC+4IorD=0,MemRead=1,IRWrite=1,ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWriteT1A←Reg[rs]時(shí)鐘邊沿觸發(fā),無(wú)其它控制信號(hào)T2F←Aop

E(imm)ALUSrc_A=1,extend=1,ALUSrc_B=10,operationT3Reg[rt]←FMem2Reg=0,RegDst=1,RegWrite=1T4※I型運(yùn)算指令:oprt,rs,imm23/12時(shí)鐘周期功能(微)操作直接控制信號(hào)(微命令)T0IR←Mem[PC],PC←PC+4IorD=0,MemRead=1,IRWrite=1,ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1PC←PC[31:28]U(address<<2)PCSrc=10,PCWrite=1T2T3T4※J型轉(zhuǎn)移指令:jaddress總結(jié):不同類(lèi)型指令其功能和周期數(shù)一般不同;不同的控制信號(hào)控制實(shí)現(xiàn)不同功能;T0實(shí)現(xiàn)的操作/微命令與指令無(wú)關(guān);24/1225/123.4.4多周期MIPS處理器(組合邏輯與微程序)26/33※多周期CPU所需的控制信號(hào)支持:R型運(yùn)算、I型(訪(fǎng)存/分支/運(yùn)算等)和J型j指令;PCWriteoperationextendAluSrc_AMem2RegPCSrc[1:0]AluSrc_B[1:0]RegDstIRWrite+4PCALURN1RN2WNRD1RD2RegWriteWD寄堆zeroAddr

RDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRFIorDrst共需13組控制信號(hào)(用天藍(lán)色字體標(biāo)注)。27/33RegWrite…多周期控制系統(tǒng)32位指令:[31:26][5:0]OP(6)…func(6)Zero標(biāo)志寄存器時(shí)鐘信號(hào)3、控制系統(tǒng)方案外部控制控制系統(tǒng)暫不考慮外部的I/O控制。輸出的13種控制信號(hào)28/33※控制信號(hào)的產(chǎn)生方式兩種方式:(1)硬連線(xiàn)(hardwired),基于組合邏輯電路。(2)微程序(micro-programmed),基于存儲(chǔ)?!策B線(xiàn)控制器→組合邏輯控制器→微程序控制器29/33組合邏輯電路…微命令序列指令譯碼器…外部控制/狀態(tài)E內(nèi)部狀態(tài)S時(shí)序系統(tǒng)M指令信息I(1)硬連線(xiàn)(組合邏輯)控制方式※控制信號(hào)(微命令)的產(chǎn)生原理C=f(I,M,S,E)時(shí)序信號(hào)clock30/33PC控制器控制信號(hào)與各受控部件的連接通路采用兩級(jí)控制模式主控單元IR[31:0]zeroIR[31:26]op6ALU控制器aluopm4IR[5:0]6funcIorDMemWriteMemReadMemtoRegRegDstextendRegWriteALUSrc_AALUSrc_BIRWriteALUSrc_BALUSrc_AIRWrite時(shí)序信號(hào)系統(tǒng)22b_flagclock5(FT/DT/ET/MT/RT)resetFT_flagj_flagPCSrcextendMemWriteMemReadMemtoRegRegDstRegWriteoperationIorDPCWrite31/33※需分別設(shè)計(jì)實(shí)現(xiàn)各控制部件①時(shí)序系統(tǒng);②主控單元;③PC控制器;④ALU控制器;設(shè)計(jì)思路:→整理控制信號(hào)級(jí)的邏輯表達(dá)式(指令·T)→整理控制部件級(jí)的輸入/輸出真值表→把表達(dá)式轉(zhuǎn)換成組合邏輯電路,綜合、化簡(jiǎn);32/33①多周期時(shí)序系統(tǒng)clockreset時(shí)序信號(hào)系統(tǒng)IR[31:26]FTDTETMTRT目標(biāo)指令的時(shí)序遷移圖:FTDTETMTRTj非jbeqswR型/I型運(yùn)算lw/swlwR型/lw/I型運(yùn)算結(jié)論:時(shí)序的變化與指令相關(guān),也和當(dāng)前時(shí)序狀態(tài)有關(guān)。Tn+1=f(I,Tn)33/3334/33時(shí)序處理單元(組合邏輯模式)resetIR[31:26]FTDTETMTRTclock1→FT1→DT1→ET1→MT1→RTFTDTETMTRT√時(shí)序主處理單元+6個(gè)時(shí)序狀態(tài)觸發(fā)器;√反饋型的時(shí)序信號(hào)連接;可直接寫(xiě)出主處理單元的各輸出邏輯,如:1→FT

=

j﹒DT+beq﹒ET+SW﹒MT+R型

和I型運(yùn)算/lw﹒RT+resetFTDTETMTRTj非jbeqswR型/I型運(yùn)算lw/swlwR型/lw/I型運(yùn)算j=op[5]op[4]op[3]op[2]op[1]op[0];R型和I型運(yùn)算/lw=….1→RT

=

…其中,無(wú)關(guān)項(xiàng)35/33②主控單元邏輯主控單元IorDMemWriteMemReadMemtoRegRegDstextendRegWriteALUSrc_AALUSrc_BIRWrite2op6FTDTETMTRTaluopb_flagFT_flagj_flag3→整理輸入輸出真值表(參考表3-33~3-39);→寫(xiě)出各輸出信號(hào)的邏輯關(guān)系式;→合并、完成組合邏輯設(shè)計(jì)。(具體設(shè)計(jì)細(xì)節(jié)請(qǐng)參見(jiàn)教材)36/33③ALU控制單元邏輯aluop3func64operationALU控制器(結(jié)合aluop編碼、表3-33~表3-38中的ALU相關(guān)微命令)真值表→各輸出碼位的邏輯式→合并化簡(jiǎn)→組合邏輯37/33表3-40多周期處理器ALU控制器真值表④PC控制單元邏輯PC控制器b_flagFT_flagj_flagzero2PCsrcPCWrite寫(xiě)出各位的輸出邏輯式:PCsrc[1]=j_flagPCsrc[0]=beq_flag·zeroPCWrite=FT_flag+beq_flag·zero+j_flag組合邏輯38/33表3-41多周期處理器的PC控制器真值表※處理器的完整硬件架構(gòu)圖PCSrc[1:0]AluSrc_Aextend+4PCALUFPCWriteRN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddr

RDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRAluSrc_B[1:0]RegDstMemtoRegIorDrst控制系統(tǒng)IR[31:26]IR[5:0]clockrstzero13種控制信號(hào)由組合邏輯實(shí)現(xiàn)39/33(2)微程序控制方式※控制信號(hào)(微命令)的產(chǎn)生原理①將指令在每個(gè)時(shí)鐘周期中所需的控制信號(hào)等信息編碼成微指令(μI);②每條指令對(duì)應(yīng)多條μI(組成1段微程序),并保存到控制存儲(chǔ)器(ControlStore);③根據(jù)機(jī)器指令(OP\func),定位微程序,依次讀取各條μI

,暫存于微指令寄存器(μIR)

;④將μI的控制信號(hào)字段譯碼,輸出對(duì)應(yīng)的控制信號(hào);⑤通過(guò)μI中的順序控制字段,形成一下條μI的微地址。

40/33微命令字段[31:26]op[5:0]func輸出控制信號(hào)(13種)順序控制rst控制系統(tǒng)(微程序)clock輔助字段控制存儲(chǔ)器(微程序)與各受控部件的控制通路PCSrcIorDRegDstMemtoRegAluSrc_AAluSrc_B…zero微指令寄存器μIRμI譯碼電路IR[31:0]μPC微地址形成電路zero微程序控制系統(tǒng)方案(輸入~輸出)41/33※需要設(shè)計(jì)的內(nèi)容②微地址(μA)形成電路;①微程序(μP);組合邏輯程序設(shè)計(jì)③微命令譯碼電路;42/33①

微程序的設(shè)計(jì)①分析指令的控制信號(hào)(因?yàn)橐獙?duì)控制信號(hào)編碼)②擬定統(tǒng)一的微指令(μI)格式③把各μIT中,需要控制系統(tǒng)輸出的控制信號(hào),編碼成該指令的1段微程序④把所有指令的微程序按順序存儲(chǔ)到ControlStore;1條指令←→1段微程序←→n條微指令n

=

微指令周期數(shù)=

指令時(shí)鐘周期數(shù)控制取指操作的微指令(μI0),存儲(chǔ)在控制存儲(chǔ)器的0#地址單元,被所有指令共享。43/33μI0μI11…0000H0004H0008HμI12μI13μI21000CH0010H0014HμI22μI23μI24μI31μI32μI33addrd,rs,rtlwrt,offset(rs)swrt,offset(rs)0018H001CH0100H0104H0108H微指令字長(zhǎng)32位控制(微程序)存儲(chǔ)器…共享微指令(取機(jī)器指令)44/33多路選擇器:4個(gè)+2個(gè)(2位/個(gè));AluSrc_Aextend+4PCALUFPCWriteRN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddr

RDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRPCSrc[1:0]AluSrc_B[1:0]RegDstMemtoRegIorDrst各指令的控制信號(hào)共需13種控制信號(hào),共18位。ALU:1組(4位);存儲(chǔ)器:2個(gè);寄存器堆:1個(gè);擴(kuò)展器:1個(gè);專(zhuān)用寄存器:2個(gè);45/33?

微指令(μI)格式微命令字段微地址未使用31:149:213:1013個(gè)(18位)控制信號(hào)組成數(shù)據(jù)通路控制(微命令)字段1:0微指令字長(zhǎng):32位8位用作微地址字段(μA)2位用作μI的順序控制字段(SC),標(biāo)識(shí)下一條μI的地址形成方式順序控制18位8位4位2位直接編碼法分段直接編碼法分段間接編碼法√剩余4位暫不使用××(因?yàn)橹噶钭銐蜷L(zhǎng),且控制信號(hào)又較少,速度快)46/33微命令字段的編排順序IorDRegDstMemtoRegAluSrc_AAluSrc_BPCSrcOperationMemReadMemWriteIRWriteRegWritePCWriteextend微命令字段18位1111224111111SC未使用42addess8順序控制字段2位SC字段說(shuō)明(表3-42)00-順序執(zhí)行,即按μPC+4,讀取下一條μI;01-按指令op/func譯碼結(jié)果分支,讀取下一條μI;10-按無(wú)條件轉(zhuǎn)移方式讀取下一條μI;11-根據(jù)alu反饋的zero標(biāo)志讀取下一條μI;47/33?把各T中的控制信號(hào)直接編碼成μIT0IR←Mem[PC],PC←PC+4IorD=0,MemRead=1,IRWrite=1,

ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1……例如:公共的取指令操作微地址μA實(shí)現(xiàn)功能微指令μI含義(未列出位默認(rèn)是0)00HIR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1,ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1,SC=0104H……48/33微地址μA控制目標(biāo)微指令μI含義(未列出位默認(rèn)為0)00HIR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1,SC=0104H……將控制信號(hào)直接編碼IorDRegDstMemtoRegAluSrc_AAluSrc_BPCSrcOperationMemReadMemWriteIRWriteRegWritePCWriteextend1111224111111SC未使用42addess800

0

0

0

0

00

0

0

0

0

0

0

0000

0000

00000000

00

-默認(rèn)111001001→00B08001H49/33?整合所有指令的微程序并存儲(chǔ)到ControlStore√T0中取指操作對(duì)應(yīng)的微指令被全部指令共享√各指令的其余微指令按順序存儲(chǔ)√各指令的最末一條微指令中的順序控制字段SC=10?將各指令的T1對(duì)應(yīng)的μA分別寫(xiě)入到微地址寄存器堆中相應(yīng)的寄存器這里T1對(duì)應(yīng)的μA,即為00H微指令(T0,控制取指令操作)執(zhí)行后,op/func分支后第一條微指令的地址?!谭奖愀鶕?jù)指令譯碼結(jié)果,讀取T1微指令的微地址;(配合地址字段,無(wú)條件轉(zhuǎn)移到00H單元)50/33②微地址(μA)形成電路√用微地址寄存器堆專(zhuān)門(mén)存放T1對(duì)應(yīng)的μI地址(即μA)√指令譯碼器根據(jù)指令的OP/func字段譯碼,產(chǎn)生微地址寄存器堆的地址碼;設(shè)計(jì)方案如后所示:51/33[31:26][5:0]opfuncclock微地址μAop/func譯碼IR[31:0]μPC4ADD順序控制(SC)微地址寄存器堆μAμI[9:2]微地址形成電路方案之一:addr000110

11

rstzero斷定基于微地址存儲(chǔ)52/33addrμA微地址寄存器堆μI0μI11…00H04H08HμI12μI13μI210CH10H14HμI22μI23μI31μI32μI33addrd,rs,rtsubrd,rs,rtandrd,rs,rt18H1CH20H24H28H微指令字長(zhǎng)32位控制(微程序)存儲(chǔ)器…共享微指令(控制取指)04H10H1CH…微地址選擇器微地址寄存器堆的存儲(chǔ)方案53/33●指令op/func譯碼器op/func譯碼IR[31:26]func[5:0]μA[7:0]→整理輸入輸出真值表;→寫(xiě)出輸出位的邏輯式;→組合邏輯電路;54/33表3-44根據(jù)OP/func斷定分支的組合邏輯真值表●zero斷定分支的設(shè)計(jì)Zero斷定分支μA[7:0]zero07CH180H可以采用讀存儲(chǔ)器的方式:也可以采用組合邏輯的方式輸入zero輸出μA[7:0][7][6][5][4][3][2][1][0]001111100110000000分別寫(xiě)出μA[7]~μA[0]的邏輯式,完成組合邏輯設(shè)計(jì)55/33③微命令譯碼電路輸出控制信號(hào)譯碼電路微命令字段μI[17:0]

微命令字段中的控制信號(hào)編碼采用的是直接編碼.輸出的6個(gè)選擇器控制信號(hào):13種/18位aluSrc_A=μI[26],aluSrc_B=μI[25:24],….輸出的5個(gè)存儲(chǔ)控制信號(hào):PCWrite=μI[23],Memwrite=μI[22],….輸出的2個(gè)數(shù)據(jù)控制信號(hào):extend=μI[19],operation=μI[18:14]56/33※CPU的完整硬件結(jié)構(gòu)PCSrc[1:0]AluSrc_Aextend+4PCALUFPCWriteRN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddr

RDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRAluSrc_B[1:0]RegDstMemtoRegIorDrst控制系統(tǒng)IR[31:26]IR[5:0]CLKrstzero13種(18位)控制信號(hào)控制核心由微程序?qū)崿F(xiàn)57/33組合邏輯方式的特點(diǎn):(1)控制信號(hào)的產(chǎn)生速度比微程序快(2)設(shè)計(jì)不規(guī)整(3)不容易修改或擴(kuò)展微程序控制方式的特點(diǎn):(1)用規(guī)整的存儲(chǔ)邏輯代替了不規(guī)整的、繁瑣的硬連線(xiàn)邏輯,結(jié)構(gòu)簡(jiǎn)化,有利于設(shè)計(jì)自動(dòng)化(2)容易修改和擴(kuò)展、靈活、通用性強(qiáng)(4)控制信號(hào)的產(chǎn)生速度比組合邏輯慢(3)可靠性較高,易于診斷和維護(hù)58/333.4.5MIPS32處理器設(shè)計(jì)(指令時(shí)間特性分析)59/11※CPU設(shè)計(jì)的主要任務(wù)※擬定指令集√※數(shù)據(jù)通路設(shè)計(jì)√※控制器設(shè)計(jì)√RISC32單/多周期處理器,指令周期如何確定?時(shí)效特性如何?60/11假設(shè)各部件的硬件延時(shí)(10-12秒,皮秒):√存儲(chǔ)器的讀寫(xiě)操作:200ps√寄存器堆的讀寫(xiě)操作:100ps√

ALU和加法器運(yùn)算:150ps√拼接器:50ps√其它部件忽略不計(jì):0ps1.

MIP32單周期CPU分析61/11基于前述設(shè)計(jì)的處理器,它能支持R、I、J型共11條目標(biāo)指令。RaRbRwMUXDataALUMUXWDEaddrRDADDWDADDaddrPC+4InstructionclockFR55516WeReMUXU<<2264<<2MUX指令存儲(chǔ)器ABrstWn28clockalu_opclockaddrd,rs,rt#$rd←$rs+$rt200+100+150+100=550ps[舉例]150PC回路是硬件并行的非關(guān)鍵路徑62/11200100150100RaRbRwMUXDataALUMUXWDEaddrRDADDWDADDaddrPC+4InstructionclockFR55516WeReMUXU<<2264<<2MUX指令存儲(chǔ)器ABrstWn28clockalu_opclocklwrt,imm(rs)#$rt←Mem[$rs+E(imm)]200+100+150+200=750ps150PC回路是硬件并行的非關(guān)鍵路徑+100200100150200100用同樣方法可得到如下時(shí)間:由此可見(jiàn):lw指令耗時(shí)最長(zhǎng):指令類(lèi)別路徑分段延時(shí)(ps)最長(zhǎng)延時(shí)(ps)→單周期CPU的指令周期T應(yīng)不小于lw指令時(shí)間→T=750ps→CPU主頻≈1.33GHz64/11R/I型運(yùn)算指令200+100+150+0

+100550I型lw200+100+150+200+100750I型sw200+100+150+200650I型beq200+100+150450J型指令200+50250I型lw200+100+150+200+100750750ps※單周期CPU特性總結(jié)(2)處理器的CPI≡1;(1)指令周期與時(shí)鐘周期等長(zhǎng),且寬度較大;(3)在指令周期中,各種硬件資源均被相應(yīng)的功能操作獨(dú)占,不能共享,硬件利用率低;→對(duì)簡(jiǎn)單的小規(guī)模指令集支持較好;→難勝任浮點(diǎn)或更復(fù)雜指令集;(4)所有指令無(wú)論其實(shí)際執(zhí)行時(shí)間長(zhǎng)短,均分配較長(zhǎng)的時(shí)鐘周期,時(shí)間浪費(fèi)嚴(yán)重;65/112.MIPS32多周期CPU分析已能支持:PCWriteoperationextendAluSrc_AMem2RegPCSrc[1:0]AluSrc_B[1:0]RegDstIRWrite+4PCALURN1RN2WNRD1RD2RegWriteWD寄堆zeroAddr

RDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRFIorDrst66/11部分R型運(yùn)算、I型(訪(fǎng)存/分支/運(yùn)算等)和J型j指令;[舉例]共4T:+4PCALURN1RN2WNRD1RD2RegWriteWD寄堆zeroAddr

RDWDMemReadMemWrite存儲(chǔ)器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRFPCWriteoperationextendAluSrc_AMem2RegPCSrc[1:0]AluSrc_B[1:0]RegDstIRWriteIorDrstaddrd,rs,rt#$rd←$rs+$rt(FT)200+(DT)100+(ET)150+(RT)100

=550ps67/11用同樣方法,可得如下結(jié)果:指令FTDTETMTRT合計(jì)I/R運(yùn)算200100150X100550I型lw200100150200100750I型sw200100150200X650I型beq200150150XX500J型指令20050XXX250由此可見(jiàn):耗時(shí)最長(zhǎng)的步驟為讀寫(xiě)存儲(chǔ)器-200ps→T=200ps→CPU主頻≈5GHz指令周期4T=8005T=10004T=8003T=6002T=40068/11※多周期CPU特性總結(jié)(1)縮短時(shí)鐘周期,可以為不同的指令安排多個(gè)時(shí)鐘周期,CPI≥2;(2)不同類(lèi)型指令分配的時(shí)鐘周期數(shù)可以不同;(4)硬件可共享,硬件資源的綜合利用率高。(3)指令周期的長(zhǎng)度一般會(huì)變長(zhǎng),執(zhí)行速度降低;69/113.6CPU的異常與中斷(內(nèi)部異常+外部中斷)70/41.基本概念異常:CPU內(nèi)部發(fā)生的意外事件(Exception,內(nèi)中斷)→與當(dāng)前指令相關(guān)的,同步事件。中斷:來(lái)自CPU外部的中斷請(qǐng)求(Interrupt,外中斷)→與當(dāng)前指令無(wú)關(guān)的,異步事件。2.異常和中斷的類(lèi)型故障(fault):現(xiàn)行指令執(zhí)行過(guò)程中觸發(fā)的異常,如溢出。自陷(trap):事先主動(dòng)安排的一種異常,如斷點(diǎn)調(diào)試。終止(abort):處理器發(fā)生的硬件級(jí)故障,如接口損壞。內(nèi)部異常:71/4可屏蔽的中斷(maskable):通過(guò)中斷屏蔽字進(jìn)行屏蔽。不可屏蔽中斷(non-maskable):通過(guò)專(zhuān)用不可屏蔽線(xiàn)路,針對(duì)緊急的、系統(tǒng)必須響應(yīng)的硬件級(jí)故障。向量中斷和非向量中斷:依據(jù)中斷服務(wù)程序入口地址的形成模式來(lái)區(qū)分。向量中斷:依靠硬件形成查表地址、查表直接確定入口地址。非向量中斷:依靠硬件、執(zhí)行軟件查詢(xún)程序才能確定入口地址。外部中斷:72/43.異常和中斷的處理流程關(guān)閉中斷保存斷點(diǎn)+程序程序狀態(tài)異常(中斷)識(shí)別指令斷點(diǎn)繼續(xù)執(zhí)行異常(中斷)處理(含恢復(fù)現(xiàn)場(chǎng))情況1:異常指令本身;情況2:指令的下一條指令;詳細(xì)過(guò)程將在第5章重點(diǎn)講述!73/43.7流水線(xiàn)處理器(概念/設(shè)計(jì)/冒險(xiǎn))74/263.7.1流水線(xiàn)概念把指令過(guò)程分解為若干子過(guò)程,每個(gè)子過(guò)程都可有效地在其專(zhuān)用功能段上與其它子過(guò)程重疊執(zhí)行,這種技術(shù)稱(chēng)為流水技術(shù)。3TI1I1假設(shè)有3條指令:I1、I2、I3I1I2I3I1I2I3FT/DT/ETI1FTDTETI11T1T1TI2t=0t=1Tt=2Tt=3T3T中:流水完成了I1+I2/I3部分操作非流水與流水方式對(duì)比:75/26[例]浮點(diǎn)加法的四段式流水線(xiàn)(時(shí)空?qǐng)D)求階差對(duì)階尾數(shù)相加規(guī)格化進(jìn)入離開(kāi)TTTTI1I2I3I4I5I6I1I2I3I4I5I6I1I2I3I4I6I1I2I3I4I5I6求階差對(duì)階尾數(shù)相加規(guī)格化0t1t2t3t4t5t6t7t8t9執(zhí)行6條指令:I1~I6串行執(zhí)行6條指令:24T流水執(zhí)行6條指令:9T每條指令:4TI576/26※流水線(xiàn)的特點(diǎn)流水線(xiàn)的子過(guò)程稱(chēng)為流水線(xiàn)的“級(jí)”或“段”,子過(guò)程的數(shù)目稱(chēng)為流水線(xiàn)的“流水深度”(m)。每個(gè)子過(guò)程由專(zhuān)用的功能段實(shí)現(xiàn),各功能段的時(shí)間應(yīng)基本相等,通常為1個(gè)時(shí)鐘周期(1拍)。流水線(xiàn)需要經(jīng)過(guò)一定的通過(guò)時(shí)間才能穩(wěn)定流水技術(shù)適合于大量相同指令的執(zhí)行。(即無(wú)空閑功能段):

t穩(wěn)=T×m77/26把功能部件(如浮點(diǎn)加)細(xì)分成若干子功能段(求階差、對(duì)階、尾數(shù)加、規(guī)格化)。多條指令中該操作的不同子操作可在這些子功能段上流水執(zhí)行。1.流水線(xiàn)的基本類(lèi)型(1)按流水線(xiàn)的處理層級(jí)→操作部件級(jí)流水→指令級(jí)流水→處理機(jī)級(jí)流水把一條指令的執(zhí)行分成若干個(gè)過(guò)程(如FT/DT/ET),多條指令的不同過(guò)程可以流水執(zhí)行。把復(fù)雜任務(wù)細(xì)分成若干子任務(wù)(指令組)。多個(gè)任務(wù)的不同子任務(wù)可以在不同處理器上流水執(zhí)行。78/26(2)按流水線(xiàn)能完成的功能數(shù)量①單功能流水線(xiàn)②多功能流水線(xiàn)多功能流水線(xiàn)按同一時(shí)間內(nèi)可連接完成的功能數(shù)量不同,又分為:→靜態(tài)多功能流水線(xiàn)→動(dòng)態(tài)多功能能流水線(xiàn)(控制太復(fù)雜,很少使用)兩者的時(shí)-空關(guān)系圖如后所示(同一時(shí)刻只能連接成1種固定功能)(同一時(shí)刻只能連接成多種不同功能)79/26t0t1t2I3I4

I3I4I3I4功能2t0t1t2I3I4

I3I4I3I4功能2I1I2I1I2I1I2I1I2功能1I1I2I1I2I1I2I1I2功能1靜態(tài)多功能流水線(xiàn)動(dòng)態(tài)多功能流水線(xiàn)80/26(4)按流水線(xiàn)內(nèi)各段的連接模式→線(xiàn)性流水線(xiàn)(前饋型)→非線(xiàn)性流水線(xiàn)(存在反饋連接)(5)按流水線(xiàn)輸入輸出對(duì)應(yīng)關(guān)系→順序流水線(xiàn)(先進(jìn)先出)→亂序流水線(xiàn)(無(wú)序、錯(cuò)序或異步)(3)按處理的數(shù)據(jù)形態(tài)→標(biāo)量流水線(xiàn)→向量流水線(xiàn)S1S2S3S1S2S381/262.流水線(xiàn)的性能指標(biāo)→吞吐率單位時(shí)間內(nèi)處理的任務(wù)數(shù)或數(shù)據(jù)量tktnI1I2I3I4…InI1I2I3I4…InI1I2I3I4InI1I2I3I4…In求階差對(duì)階尾數(shù)相加規(guī)格化…指令數(shù):n流水段數(shù):k流水段時(shí)長(zhǎng):T=?tk×?t(n-1)×?t82/26

吞吐率→加速比:SP同一程序,不采用流水的執(zhí)行時(shí)間與采用流水線(xiàn)的執(zhí)行時(shí)間的比值。SP=(6×4)/(4+6-1)=24/9≈2.7I1I2I3I4…I6I1I2I3I4…I6I1I2I3I4I6I1I2I3I4…I6求階差對(duì)階尾數(shù)相加規(guī)格化…

83/26

→利用率PE流水線(xiàn)中各部件的平均利用率,即一定時(shí)間內(nèi),部件實(shí)際工作時(shí)間與部件總時(shí)間的比值(段時(shí)比)。n=6時(shí):PE=6/9≈66.7%I1I2I3I4…InI1I2I3I4…InI1I2I3I4InI1I2I3I4…In求階差對(duì)階尾數(shù)相加規(guī)格化…

84/263.7.2流水線(xiàn)設(shè)計(jì)(1)五段式數(shù)據(jù)通路:取指段IF、譯碼段ID、執(zhí)行段EX、訪(fǎng)存段MEM、寫(xiě)回段WB四組鎖存器:IF/ID,ID/EX,EX/MEM,MEM/WB不支持指令:jaddress85/26取指段:由前序指令在EX中生成的PCSrc控制,二選一形成PC值從指令存儲(chǔ)器取指令。譯碼段:控制系統(tǒng)生成指令所需的全段控制信號(hào):9個(gè)。Regdst,Regwr,extend,aluSrc,operation,Memw/Memr,beq_flg,mem2regPCSrc??Ctrls生成Rw、讀出A/B、擴(kuò)展imm16;傳遞鎖存信息86/26執(zhí)行段:傳遞鎖存信息;計(jì)算出BPC、ZF、ALU運(yùn)算。訪(fǎng)存段:傳遞鎖存信息;計(jì)算出PCSrc、讀寫(xiě)數(shù)據(jù)。寫(xiě)回段:傳遞鎖存信息:Regwr、Mem2reg、寫(xiě)寄存器堆。87/26(2)流水線(xiàn)控制邏輯:控制信號(hào)=F(指令,流水段,….);F是一個(gè)非線(xiàn)性函數(shù)。相同的時(shí)鐘周期中,存在多條指令在不同流水段并行。思考:只有一個(gè)控制系統(tǒng),如何給出控制信號(hào)?88/26思路:集中產(chǎn)生+逐段傳遞在譯碼段:集中產(chǎn)生各指令所需的全部控制信號(hào)(9個(gè));后段使用的控制信號(hào):依次鎖存、逐段傳遞;跟單周期CPU控制系統(tǒng)設(shè)計(jì)基本一致89/263.7.3流水線(xiàn)冒險(xiǎn)及處理在指令流水線(xiàn)中當(dāng)遇到一些情況使得流水線(xiàn)無(wú)法正確執(zhí)行后續(xù)指令而引起流水線(xiàn)阻塞或停頓,這個(gè)現(xiàn)象稱(chēng)為流水線(xiàn)冒險(xiǎn)。根據(jù)引起冒險(xiǎn)的原因不同,有3種:結(jié)構(gòu)冒險(xiǎn)數(shù)據(jù)冒險(xiǎn)控制冒險(xiǎn)90/261.結(jié)構(gòu)冒險(xiǎn)(StructureHazard)同一部件同時(shí)被不同指令所用,導(dǎo)致硬件資源發(fā)生沖突。Mem時(shí)鐘周期LoadInstr1Instr2Instr3Instr4ALUMemRegMemRegALUMemRegMemRegALUMemRegMemRegALURegMemRegALUMemRegMemReg指令序列※每個(gè)部件在特定的階段被用;※將InstructionMemory(IM)和DataMemory(DM)分開(kāi);※將寄存器讀口和寫(xiě)口獨(dú)立開(kāi)來(lái);91/262.數(shù)據(jù)冒險(xiǎn)(DataHazard)后面指令用到前面指令的結(jié)果,但指令結(jié)果還沒(méi)產(chǎn)生。指令序列時(shí)鐘周期addr1,r2,r3subr4,r1,r3andr6,r1,r7orr8,r1,r9xorr10,r1,r11IFID/RFExMemWrALUImRegDmRegALUImRegDmRegALUImRegDmRegImALURegDmRegALUImRegDmReg92/26※數(shù)據(jù)冒險(xiǎn)的解決方法93/26方法1:硬件阻塞(stall,即氣泡停頓)方法2:軟件插入“NOP”指令方法3:合理實(shí)現(xiàn)寄存器堆的讀/寫(xiě)操作(不能解決所有數(shù)據(jù)冒險(xiǎn))前半時(shí)鐘周期寫(xiě),后半時(shí)鐘周期讀,若同一個(gè)時(shí)鐘內(nèi)前面指令寫(xiě)入的數(shù)據(jù)正好是后面指令所讀數(shù)據(jù),則不會(huì)發(fā)生數(shù)據(jù)冒險(xiǎn)方法4:轉(zhuǎn)發(fā)(Forwarding或Bypassing旁路)技術(shù)若相關(guān)數(shù)據(jù)是ALU結(jié)果,則如何?

可通過(guò)轉(zhuǎn)發(fā)解決若相關(guān)數(shù)據(jù)是上條指令DM讀出內(nèi)容,則如何?

不能通過(guò)轉(zhuǎn)發(fā)解決,隨后指令需被阻塞一個(gè)時(shí)鐘或加NOP指令稱(chēng)為L(zhǎng)oad-use數(shù)據(jù)冒險(xiǎn)!方法5:編譯優(yōu)化:調(diào)整指令順序(不能解決所有數(shù)據(jù)冒險(xiǎn))實(shí)現(xiàn)“轉(zhuǎn)發(fā)”和“阻塞”要修改數(shù)據(jù)通路:(1)檢測(cè)何時(shí)需要“轉(zhuǎn)發(fā)”,并控制實(shí)現(xiàn)“轉(zhuǎn)發(fā)”(2)檢測(cè)何時(shí)需要“阻塞”,并控制實(shí)現(xiàn)“阻塞”3.控制冒險(xiǎn)(ControlHazard)94/26當(dāng)遇到改變指令執(zhí)行順序的轉(zhuǎn)移指令(調(diào)用、返回等)、異常和中斷情況時(shí),在形成轉(zhuǎn)移地址之前,流水線(xiàn)中已有若干后續(xù)指令在執(zhí)行,這時(shí)需要清除這些指令。T4T5T6T7T8T9T10T11IFIDEXMemWBIFIDEXMemWB16:R-typeIFIDEXMemWBIFIDEXMemWB24:R-type12:beq20:

R-typeIFIDEXMemWB分支目標(biāo):1000beq在T4取指,在T7才確定是否轉(zhuǎn)移,T8才取出目標(biāo)指令。流水結(jié)果:取目標(biāo)指令前,已有3條指令被取出(無(wú)用功)發(fā)生轉(zhuǎn)移時(shí):要清除beq后面的3條指令,帶來(lái)3T延遲損失。假如:beq指令轉(zhuǎn)移目標(biāo)地址為1000?!刂泼半U(xiǎn)的解決方法95/26方法1:硬件上阻塞(stall)分支指令后3條指令的執(zhí)行使后面三條指令清0或其操作信號(hào)清0,以插入三條NOP指令方法2:軟件上插入三條“NOP”指令[以上兩種方法效率低,需結(jié)合分支預(yù)測(cè)進(jìn)行]方法3:分支預(yù)測(cè)(Predict)靜態(tài)預(yù)測(cè):總是預(yù)測(cè)條件不滿(mǎn)足(nottaken),即繼續(xù)執(zhí)行分支指令的后續(xù)指令。啟發(fā)式規(guī)則:在特定情況下總是預(yù)測(cè)滿(mǎn)足,其他情況總是預(yù)測(cè)不滿(mǎn)足。比如:循環(huán)頂部(底部)分支總是預(yù)測(cè)為不滿(mǎn)足(滿(mǎn)足),能達(dá)65%-85%的預(yù)測(cè)準(zhǔn)確率。動(dòng)態(tài)預(yù)測(cè):如AI方法根據(jù)程序執(zhí)行歷史情況進(jìn)行動(dòng)態(tài)預(yù)測(cè)調(diào)整,能達(dá)90%的預(yù)測(cè)準(zhǔn)確率方法4:延遲分支(Delayedbranch)(編譯優(yōu)化指令順序)把分支指令前面與分支指令無(wú)關(guān)的指令調(diào)到分支指令后執(zhí)行,也稱(chēng)延遲轉(zhuǎn)移※標(biāo)量與超標(biāo)量流水線(xiàn)96/26標(biāo)量流水線(xiàn):在每個(gè)時(shí)鐘周期只發(fā)射1條指令,并要求每個(gè)時(shí)鐘周期只從流水線(xiàn)流出一條指令的結(jié)果。超標(biāo)量流水線(xiàn):是指在每個(gè)時(shí)鐘周期向流水線(xiàn)發(fā)射多條指令,并能從流水線(xiàn)流出多個(gè)結(jié)果。3.7.4其他高級(jí)流水線(xiàn)介紹1TI1I2I3I4I5I6I1I2I3I7I8I9I4I5I62T3T時(shí)鐘周期發(fā)射的指令三發(fā)射超標(biāo)量流水線(xiàn)示意圖I10I11I12I7I8I997/26※超級(jí)流水線(xiàn)技術(shù)98/26超流水線(xiàn):把完成一條指令的流水線(xiàn)的各一級(jí)子過(guò)程進(jìn)一步細(xì)分成若干二級(jí)子過(guò)程時(shí)鐘周期發(fā)射指令取指譯碼執(zhí)行寫(xiě)回1T2T假設(shè)指令的4個(gè)子過(guò)程:(=超流水的度、深度)超級(jí)流水的度=3※超標(biāo)量超級(jí)流水線(xiàn)技術(shù)同時(shí)使用超級(jí)流水線(xiàn)和超標(biāo)量技術(shù)。超標(biāo)量度=3,超級(jí)流水度=3,超標(biāo)量超級(jí)流水度=3×3=9。99/26時(shí)鐘周期發(fā)射指令取指譯碼執(zhí)行寫(xiě)回1T2T3T指令的4個(gè)子過(guò)程:每T發(fā)射3次、每次發(fā)射3條,共3×3=9條指令。3.8CPU的其他增強(qiáng)技術(shù)(超線(xiàn)程/多核/多處理器)100/123.8.1SMT與超線(xiàn)程SMT(SimultaneousMultithreading)即同步多線(xiàn)程。Intel在2002年開(kāi)發(fā)的HT(Hyper-threading),即超線(xiàn)程技術(shù)就是一種典型的SMT,首先運(yùn)用于Xeon(至強(qiáng))處理器。從而率先實(shí)現(xiàn)了在一顆CPU上同時(shí)硬件級(jí)地并行執(zhí)行多個(gè)程序的指令。[例如]Intel的第4代corei7(Haswell,4核8線(xiàn)程)。使CPU能夠執(zhí)行分別來(lái)自多個(gè)線(xiàn)程的指令(一種硬件多線(xiàn)程技術(shù))。101/123.8.2多核技術(shù)多核處理器也稱(chēng)為片上多處理器,主要特征是在一個(gè)處理器芯片上集成多個(gè)CPU內(nèi)核。1996年,斯坦福大學(xué)提出,但技術(shù)未發(fā)展起來(lái)。1、多核的發(fā)展原因通過(guò)提高單核CPU主頻、IPS的手段已無(wú)潛力;2、多核的種類(lèi)原生多核,各內(nèi)核獨(dú)立,如AMDAthlon64X2(速龍)

封裝多核,各內(nèi)核共享前端總線(xiàn)\不完全獨(dú)立;102/12雙核處理器(DualCoreProcessor):指在一個(gè)處理器上集成兩個(gè)運(yùn)算核心,從而提高處理器的計(jì)算能力。AMD的方案:將兩個(gè)內(nèi)核做在一個(gè)Die(晶元)上,通過(guò)直連架構(gòu)連接起來(lái),集成度更高。Intel的方案:將不同Die(晶元)上的兩個(gè)內(nèi)核封裝在一起;3、Intel與AMD的首款雙核CPU103/12Intel“雙芯”vs.AMD“雙核”CPU內(nèi)核L2緩存總線(xiàn)接口CPU內(nèi)核L2緩存總線(xiàn)接口CPU內(nèi)核L2緩存系統(tǒng)請(qǐng)求接口交叉開(kāi)關(guān)CPU內(nèi)核L2緩存內(nèi)存控制器內(nèi)存控制器超傳輸總線(xiàn)Intel雙核架構(gòu)(PentiumEE)AMD雙核架構(gòu)(AthlonX2)前端總線(xiàn)FSB104/124、多核CPU的發(fā)展趨勢(shì)

核的數(shù)量越來(lái)越多技術(shù)更先進(jìn),如采用SMT等集成GPU

工藝制程越來(lái)越小,已達(dá)14nm(2015,skylake,采用3D-三柵極光刻技術(shù))國(guó)內(nèi)首款多核處理器:√國(guó)防科大“FT-1000/1500”(2013,16核,40nm)等?!讨锌圃河?jì)算所“龍芯3A”

(2009/原生4核/64位MIPS架構(gòu),RISC/65nm)105/123.8.3多處理器系統(tǒng)單處理器系統(tǒng)能力受限→通過(guò)構(gòu)建多處理器系統(tǒng)進(jìn)一步提升計(jì)算機(jī)系統(tǒng)性能。按照指令和數(shù)據(jù)處理方式進(jìn)行計(jì)算機(jī)系統(tǒng)劃分:→Flynn分類(lèi)標(biāo)準(zhǔn)1.單指令流單數(shù)據(jù)流(SISD)結(jié)構(gòu)特點(diǎn):一個(gè)處理器+一個(gè)存儲(chǔ)器106/122.單指令流多數(shù)據(jù)流(SIMD)一個(gè)指令流同時(shí)對(duì)多個(gè)數(shù)據(jù)流進(jìn)行處理,也稱(chēng)為數(shù)據(jù)級(jí)并行技術(shù)。(╳)不支持指令并行。例如:向量處理器。1個(gè)控制單元、多個(gè)執(zhí)行單元、同時(shí)訪(fǎng)問(wèn)多個(gè)數(shù)據(jù)。107/123.多指令流單數(shù)據(jù)流(MISD)多條指令并行,對(duì)同一個(gè)數(shù)據(jù)流進(jìn)行處理。(╳)一種理想化模型?!鷱牧魉€(xiàn)角度:存在數(shù)據(jù)冒險(xiǎn)。多指令流并行處理多數(shù)據(jù)流會(huì)更高效。108/124.多指令流多數(shù)據(jù)流(MIMD)特點(diǎn):多個(gè)指令并行處理多個(gè)不同的數(shù)據(jù),線(xiàn)程級(jí)并行結(jié)構(gòu)模式:多個(gè)處理器+處理器專(zhuān)用/共享存儲(chǔ)器。(1)單處理器+專(zhuān)用存儲(chǔ)器≈單處理器的獨(dú)立計(jì)算機(jī)(2)多處理器+共享存儲(chǔ)器=共享存儲(chǔ)多處理器系統(tǒng)(SMMP)109/12※共享存儲(chǔ)多處理器系統(tǒng)(1)主從結(jié)構(gòu)(Master-SlaveMulti-Processor,MSMP)(2)對(duì)稱(chēng)結(jié)構(gòu)(SymmetricMulti-Processor,SMP)結(jié)構(gòu)特點(diǎn):中心化,操作系統(tǒng)運(yùn)行于主處理器→集中管理線(xiàn)程和進(jìn)程等資源調(diào)度。缺點(diǎn):負(fù)載不均衡,主處理器容易成系統(tǒng)瓶頸。結(jié)構(gòu)特點(diǎn):去中心化,操作系統(tǒng)可運(yùn)行于任意處理器→自主調(diào)度各種資源。缺點(diǎn):操作系統(tǒng)復(fù)雜性會(huì)增加。比如,需要解決處理器協(xié)同、以及不同進(jìn)程的同步。按各處理器之間的關(guān)系:110/12※共享存儲(chǔ)多處理器系統(tǒng)按處理器訪(fǎng)存時(shí)間差異:(1)一致存儲(chǔ)訪(fǎng)問(wèn)(UniformMemoryAccess,UMA)特點(diǎn):處理器訪(fǎng)問(wèn)不同存儲(chǔ)單元的時(shí)間基本一致。(2)非一致存儲(chǔ)訪(fǎng)問(wèn)(Non-UniformMemoryAccess,NUMA)特點(diǎn):處理器的訪(fǎng)存時(shí)間與存儲(chǔ)單元位置有關(guān)。①無(wú)緩存的非一致存儲(chǔ)訪(fǎng)問(wèn)(No-CacheNUMA)→而NUMA-SMMP又有兩種:②緩存一致的非一致存儲(chǔ)訪(fǎng)問(wèn)(Cache-CoherentNUMA)111/12112/14第4章存儲(chǔ)子系統(tǒng)-半導(dǎo)體-磁表面-光存儲(chǔ)-三級(jí)存儲(chǔ)體系原理及器件113/14本章需解決的主要問(wèn)題:(1)存儲(chǔ)器如何存儲(chǔ)信息?(2)在實(shí)際應(yīng)用中如何用存儲(chǔ)芯片組成具有一定容量的存儲(chǔ)器?(3)如何改進(jìn)存儲(chǔ)系統(tǒng)的性能?外存114/144.1概述1.存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)

CPUCache主存L1、L2、L3三級(jí)存儲(chǔ)體系115/14(1)主存(內(nèi)存)主要存放CPU當(dāng)前使用的指令和數(shù)據(jù)。工作速度快有足夠的存儲(chǔ)容量(2)輔存(外存)存放大量的后備程序和數(shù)據(jù)速度較慢容量較大能隨機(jī)訪(fǎng)問(wèn)116/14(3)高速緩沖存儲(chǔ)器(Cache)存放CPU在當(dāng)前一小段時(shí)間內(nèi)多次使用的程序和數(shù)據(jù),以緩解CPU和主存的速度差異。速度非??烊萘繀s很小主存(DDR4/5)MM外存(硬盤(pán)等)EMCPU內(nèi)核數(shù)據(jù)L1L2L3指令L1117/142.物理存儲(chǔ)器與虛擬存儲(chǔ)器物理存儲(chǔ)器:物理形態(tài)上真實(shí)存在的存儲(chǔ)器,簡(jiǎn)稱(chēng)為實(shí)存,其地址稱(chēng)為物理地址或?qū)嵉刂?。虛擬存儲(chǔ)器:虛擬存儲(chǔ)器是一個(gè)邏輯模型,并非物理存在,基于物理存儲(chǔ)器并靠硬件+操作系統(tǒng)的地址映射來(lái)實(shí)現(xiàn)。邏輯上能提供比物理存儲(chǔ)器更大的虛擬存儲(chǔ)空間,相關(guān)地址稱(chēng)為虛地址或邏輯地址。虛擬存儲(chǔ)技術(shù)內(nèi)存外存118/143.存儲(chǔ)器的分類(lèi)(按存儲(chǔ)介質(zhì))(1)半導(dǎo)體存儲(chǔ)器靜態(tài)存儲(chǔ)器:利用雙穩(wěn)態(tài)觸發(fā)器的兩個(gè)穩(wěn)定狀態(tài)存儲(chǔ)信息,信息易失(2)磁表面存儲(chǔ)器利用磁層上不同方向的磁化區(qū)域表示信息,容量大,非破壞性讀出,長(zhǎng)期保存信息,速度慢,外存例如:IDE硬盤(pán),SATA硬盤(pán)動(dòng)態(tài)存儲(chǔ)器:依靠電容上的電荷暫存信息,主存119/14(3)光盤(pán)存儲(chǔ)器利用光斑的有無(wú)/晶相等變化表示信息,容量很大,非破壞性讀出,長(zhǎng)期保存信息,速度慢,外存※只讀型光盤(pán)CD-ROM※一次寫(xiě)入型光盤(pán)WORM※可擦除/重寫(xiě)型光盤(pán)120/143.存儲(chǔ)器的分類(lèi)(按存取方式)隨機(jī)存?。喊吹刂吩L(fǎng)問(wèn)存儲(chǔ)器中的任一單元,訪(fǎng)問(wèn)時(shí)間與存儲(chǔ)單元的地址無(wú)關(guān)。(1)隨機(jī)存取存儲(chǔ)器(RAM,ROM)ROM例如,微程序控制器中的控制存儲(chǔ)器(CM)RAM例如,主存121/14RAM:頻率-存取周期或讀/寫(xiě)周期(ns)固化型:

可讀可寫(xiě)ROM:

只讀型PROM:用戶(hù)不能寫(xiě)入數(shù)據(jù)用戶(hù)可寫(xiě)入一次EPROM:可多次編程(紫外線(xiàn)擦除)EEPROM:可多次寫(xiě)入(電擦除)速度指標(biāo):通常用作主存、高速緩存。FLASHMemory(閃存)如:SDR/DDR/DDR2-4接近122/14(2)順序存取存儲(chǔ)器(SAM)訪(fǎng)問(wèn)時(shí)讀/寫(xiě)部件按順序查找目標(biāo)地址,訪(fǎng)問(wèn)時(shí)間與數(shù)據(jù)的存儲(chǔ)位置有關(guān)。定位操作平均定位時(shí)間(ms)數(shù)據(jù)讀/寫(xiě)操作兩步操作速度指標(biāo)數(shù)據(jù)傳輸率(b/s)例如:磁帶機(jī)(錄音機(jī))、電影膠片。123/14(3)直接存取存儲(chǔ)器(DAM)訪(fǎng)問(wèn)時(shí)讀/寫(xiě)部件先粗定位一個(gè)小區(qū)域,再在該區(qū)域內(nèi)順序查找。三步操作定位(尋道)操作等待(旋轉(zhuǎn))操作讀/寫(xiě)操作速度指標(biāo)平均定位(平均尋道)時(shí)間(ms)平均等待(平均旋轉(zhuǎn))時(shí)間(ms)數(shù)據(jù)傳輸率(b/s)訪(fǎng)問(wèn)時(shí)間與數(shù)據(jù)位置有關(guān),例如:硬盤(pán)。124/144.存儲(chǔ)器的技術(shù)指標(biāo)(1)存取時(shí)間(2)存取周期從存儲(chǔ)器收到讀寫(xiě)命令,到存儲(chǔ)器讀出(寫(xiě)入)信息所需要的時(shí)間,TA存儲(chǔ)器做連續(xù)訪(fǎng)問(wèn)操作過(guò)程中一次完整的存取操作所需的總時(shí)間,TM存取時(shí)間存取周期恢復(fù)期(通常TM

>

TA)125/14(2)數(shù)據(jù)傳輸率?R單位時(shí)間內(nèi)存取信息的數(shù)據(jù)量,也叫帶寬或頻寬數(shù)據(jù)傳輸率(R)=存儲(chǔ)器的位寬存取周期bps【例】某雙通道DDR-4內(nèi)存?zhèn)鬏旑l率為3200

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論