5-中央处理器
中央處理器
1.CPU功能與結(jié)構(gòu)
1.功能:
(1).指令控制。完成取指令、分析指令和執(zhí)行指令的操作,即程序的順序控制
(2).操作控制。
(3).時(shí)間控制。對(duì)各種操作加以時(shí)間上的控制。
(4).數(shù)據(jù)加工。對(duì)數(shù)據(jù)進(jìn)行算術(shù)和邏輯運(yùn)算
(5).中斷處理。
專用數(shù)據(jù)通路方式:根據(jù)指令執(zhí)行過(guò)程中的數(shù)據(jù)和地址的流動(dòng)方向安排連接線路性能較高,基本不存在數(shù)據(jù)沖突現(xiàn)象。多條通路:多路選擇器MUX與三態(tài)門
CPU內(nèi)部單總線方式:將所有寄存器的輸入端和輸出端連接到一條公共的通路上。結(jié)構(gòu)簡(jiǎn)單、易實(shí)現(xiàn),但數(shù)據(jù)傳輸存在沖突現(xiàn)象,性能較低
2.運(yùn)算器的基本結(jié)構(gòu):
(1).算術(shù)邏輯單元
(2).通用寄存器組,如AX、BX、CX、DX、SP
(3).暫存寄存器:用于暫存從主存讀來(lái)的數(shù)據(jù),這個(gè)數(shù)據(jù)不能存放在通用寄存器,否則會(huì)破壞原有內(nèi)容
(4).累加寄存器:通用寄存器,用來(lái)暫存ALU運(yùn)算的結(jié)果信息;用來(lái)實(shí)現(xiàn)加法運(yùn)算
(5).程序狀態(tài)字寄存器PSW
(6)移位器:對(duì)運(yùn)算結(jié)果進(jìn)行移位運(yùn)算
(7)計(jì)數(shù)器:控制乘除運(yùn)算的次數(shù)
3.控制器的基本結(jié)構(gòu):
(1)程序計(jì)數(shù)器PC:用來(lái)指明下一條指令在主存中的存放地址
(2)指令寄存器:用于保存當(dāng)前正在執(zhí)行的指令
(3)指令譯碼器:對(duì)操作碼字段進(jìn)行譯碼,向控制器提供特定的操作信號(hào)
(4)微操作信號(hào):根據(jù)IR的內(nèi)容和PSW的內(nèi)容及時(shí)序信號(hào),產(chǎn)生控制整個(gè)計(jì)算機(jī)所需的各種控制信號(hào)
(5)時(shí)序系統(tǒng):產(chǎn)生各種時(shí)序信號(hào),由統(tǒng)一時(shí)鐘分頻得到
(6)存儲(chǔ)器地址寄存器MAR:存放所有訪問(wèn)的主存單元的地址
(7)存儲(chǔ)器數(shù)據(jù)寄存器MDR:存放向主存寫入的信息或從主存中讀出的信息
4.用戶可見(jiàn)的寄存器:通用寄存器組、程序狀態(tài)字寄存器PSW、程序計(jì)數(shù)器PC
5.用戶不可見(jiàn)寄存器:MAR、MDR、IR、暫存寄存器
1.2指令執(zhí)行過(guò)程
指令周期的概念:CPU從主存中取出并執(zhí)行一條指令所需的全部時(shí)間,細(xì)分為取指周期和執(zhí)行周期
指令周期常常用若干機(jī)器周期來(lái)表示,機(jī)器周期又稱CPU周期
一個(gè)機(jī)器周期包含若干時(shí)鐘周期
時(shí)鐘周期(節(jié)拍、T周期、CPU時(shí)鐘周期):是CPU操作的最基本單位
每個(gè)指令周期內(nèi)機(jī)器周期數(shù)可以不等,每個(gè)機(jī)器周期內(nèi)的節(jié)拍數(shù)也可以不等
標(biāo)志觸發(fā)器FE、IND、EX、INT–取值周期、間址周期、執(zhí)行周期、中斷周期
執(zhí)行方案:
(1)單指令周期:所有指令采用相同的執(zhí)行時(shí)間來(lái)完成,指令周期串行執(zhí)行,執(zhí)行時(shí)間取決于最長(zhǎng)的指令的執(zhí)行時(shí)間
(2)多指令周期:不同類型的指令選用不同的執(zhí)行步驟來(lái)完成,指令串行執(zhí)行
(3)流水線方案:每個(gè)時(shí)鐘周期啟動(dòng)一條指令,盡量讓多條指令同時(shí)運(yùn)行,指令之間并行執(zhí)行
1.3 數(shù)據(jù)通路–單總線結(jié)構(gòu)
1.寄存器之間的數(shù)據(jù)傳送:例:PC內(nèi)容->MAR。(PC)->Bus(總線) [PCout有效,PC內(nèi)容送到總線];Bus->MAR [MARin有效,總線內(nèi)容送MAR]
2.主存與CPU之間的數(shù)據(jù)傳送。例:CPU從主從中讀取指令。(PC)->Bus->MAR [PCout有效];1->R [CU發(fā)出讀命令(通過(guò)控制總線)];MEM(MAR)->MDR [MDRinE有效];MDR->Bus->IR [MDRout&IRin有效];
3.執(zhí)行算術(shù)或邏輯運(yùn)算。例:一條加法指令。AD(IR)->Bus->MAR [MDRout&MARin有效];1->R [讀命令];MEM(MAR)->數(shù)據(jù)線->MDR [MDRin有效];MDR->Bus->Y [MDRout&Yin有效];(ACC)+(Y)->Z [ACCout&ALUin有效];Z->ACC [Zout&ACCin有效]
2.控制器設(shè)計(jì)
2.1 硬布線控制器
一個(gè)節(jié)拍可以并行完成多個(gè)“相容的”微操作;同一個(gè)微操作可能在不同指令的不同階段被使用
各階段的微操作序列:
(1)取值周期:(PC)->MAR;1->R;M(MAR)->MDR;OP(IR)->ID(指令譯碼器);(PC)+1->PC
(2)間址周期:Ad(IR)->MR;1->MAR;M(MAR)->MDR;MDR->Ad(IR)
(3)執(zhí)行周期:CLA(ACC清零):0->ACC;LDA(取數(shù)指令):Ad(IR)->MAR;M(MAR)->MDR;(MDR)->ACC;JMP(無(wú)條件轉(zhuǎn)移):Ad(IR)->PC;
2.2 微程序控制器
微命令與微操作一一對(duì)應(yīng);微指令可能包含多個(gè)微命令
微指令格式:操作控制,順序控制(指明下一條指令地址)
控制存儲(chǔ)器可用ROM構(gòu)成
若某條指令系統(tǒng)中有n條機(jī)器指令,則CM中微程序的個(gè)數(shù)至少是n+1個(gè)
2.2.1微指令的設(shè)計(jì)
1.水平型微指令:一條微指令能定義多個(gè)可并行的微命令
優(yōu)點(diǎn):微程序短,執(zhí)行速度快;缺點(diǎn):微指令長(zhǎng),編寫微程序較麻煩
2.垂直型微命令:一條指令只能定義一個(gè)微命令,由微操作碼字段規(guī)定具體功能
優(yōu)點(diǎn):微指令短,簡(jiǎn)單、規(guī)整易于編寫微程序;缺點(diǎn):微程序長(zhǎng),執(zhí)行速度慢
3.混合型微指令:在垂直型的基礎(chǔ)上增加一些不太復(fù)雜的并行操作
微指令的編碼方式(微指令控制方式)
(1)直接編碼(直接控制)方式:每一位代表一個(gè)微操作命令
(2)字段直接編碼方式:微指令的控制字段分成若干段,每段經(jīng)譯碼后發(fā)出控制信號(hào)
原則:互斥性微命令分在同一個(gè)段內(nèi),相容性微命令分在不同段內(nèi);每個(gè)小段內(nèi)信息位不能太多;每個(gè)小段還要留出一個(gè)狀態(tài),表示本字段不發(fā)出任何微命令,通常000表示不操作;
(3)字段間接編碼方式:一個(gè)字段某些微命令由另一個(gè)字段中的某些微命令來(lái)進(jìn)行解釋
微指令的地址形成方式
(1)由微指令的下地址字段指出(斷定方式)
(2)根據(jù)機(jī)器指令的操作碼形成
(3)增量計(jì)數(shù)器法
(4)分支轉(zhuǎn)移:轉(zhuǎn)移方式(指明判別條件)
(5)通過(guò)測(cè)試網(wǎng)絡(luò)
(6)由硬件產(chǎn)生微程序入口地址
2.2.2 微程序控制單元
類比參考硬布線設(shè)計(jì)方式
靜態(tài)微程序設(shè)計(jì):微程序無(wú)需改變,采用ROM
動(dòng)態(tài)微程序設(shè)計(jì):通過(guò)改變微指令和微程序改變機(jī)器指令,有利于仿真,采用EPROM
3.指令流水線
3.1基本概念&性能指標(biāo)
表示方法:1.指令執(zhí)行過(guò)程圖2.時(shí)空?qǐng)D
性能指標(biāo):
1.吞吐率:單位時(shí)間內(nèi)流水線完成的任務(wù)數(shù)量或輸出結(jié)果的數(shù)量TP=n/Tk;Tk=(k+n-1)△t(△t一個(gè)時(shí)鐘周期)
2.加速比:完成同樣一批任務(wù),不使用流水線所用時(shí)間與所用流水線所用的時(shí)間之比S=t0/Tk
3.效率:流水線設(shè)備利用率稱為流水線的效率E=n個(gè)任務(wù)所占時(shí)空區(qū)有效面積/n個(gè)任務(wù)所圍成整體的時(shí)空區(qū)面積
3.2 指令流水線影響因素&分類
五段式流水線(MIPS架構(gòu):精簡(jiǎn)指令集):五個(gè)機(jī)器周期。為方便流水線設(shè)計(jì),每個(gè)階段以最長(zhǎng)耗時(shí)為準(zhǔn)。每個(gè)功能部件后面都要有一個(gè)緩沖寄存器(或鎖存器)[作用:保存本流水段的執(zhí)行結(jié)果,提供給下一流水段使用]
1.結(jié)構(gòu)相關(guān)(資源沖突):多條指令在同一時(shí)刻爭(zhēng)用同一資源而形成的沖突
解決辦法:(1)后一指令暫停一周期(2)資源重復(fù)配置(數(shù)據(jù)存儲(chǔ)器+指令存儲(chǔ)器)
2.數(shù)據(jù)相關(guān)(數(shù)據(jù)沖突):存在必須等待前一條指令執(zhí)行完才能執(zhí)行后一條指令的情況
解決方法:1.數(shù)據(jù)指令暫停一周期(硬件阻塞/軟件插入)2.數(shù)據(jù)旁路技術(shù)(轉(zhuǎn)發(fā)機(jī)制)3.編譯優(yōu)化(通過(guò)編譯器調(diào)整指令順序來(lái)解決數(shù)據(jù)相關(guān))
3.控制相關(guān)(控制沖突):流水線遇到轉(zhuǎn)移指令和其他改變PC值的指令而造成斷流時(shí)會(huì)引起控制相關(guān)
解決方法:(1)分支預(yù)測(cè)(簡(jiǎn)單預(yù)測(cè)、動(dòng)態(tài)預(yù)測(cè))、預(yù)取轉(zhuǎn)移成功和不成功兩個(gè)控制流方向上的目標(biāo)指令(3)加快和提前形成條件碼(4)提供轉(zhuǎn)移方向的猜準(zhǔn)率
4.分類
(1)流水線使用級(jí)別的不同:部件功能級(jí)流水線、處理機(jī)級(jí)流水線、處理機(jī)間流水線
(2)流水線完成的功能:單功能流水線、多功能流水線
(3)同一時(shí)間內(nèi)各段之間的連接方式:靜態(tài)流水線、動(dòng)態(tài)流水線
(4)流水線各個(gè)功能段之間是否有過(guò)反饋信號(hào):線性流水線(不存在反饋線路)、非線性流水線
5.流水線的多發(fā)技術(shù):
(1)超標(biāo)量技術(shù):每個(gè)節(jié)拍內(nèi)可并發(fā)多條獨(dú)立指令。要配置多個(gè)功能部件,不能調(diào)整指令的執(zhí)行順序,通過(guò)編譯優(yōu)化技術(shù),可以把不能多發(fā)的進(jìn)行多發(fā)
(2)超流水技術(shù):每個(gè)時(shí)鐘周期內(nèi)再分段。一個(gè)時(shí)鐘周期內(nèi)一個(gè)功能部件使用多次,不能調(diào)整指令的執(zhí)行順序,靠編譯程序解決優(yōu)化問(wèn)題
(3)超長(zhǎng)指令字:由編譯程序挖掘出指令間潛在并行性,將多條并行操作的指令組合成一條具有多個(gè)操作碼字段的超長(zhǎng)指令字段。需要多個(gè)功能部件
3.3 五段式指令流水線
1.運(yùn)算類指令(Rs 源操作數(shù) Rd目的操作數(shù))
| 加法指令(兩個(gè)寄存器相加) | ADD Rs Rd | (Rs)+(Rd)->(Rd) |
| 加法指令(寄存器與立即數(shù)相加) | ADD #996 Rd | 996+(Rd)->(Rd) |
| 算術(shù)左移指令 | SHL Rd | (Rd)<<<2->Rd |
IF(取值)->ID(譯碼&取數(shù))->EX執(zhí)行->M訪存->WB寫回寄存器
2.RISC中只有取數(shù)指令LOAD和存數(shù)操作STORE才能訪問(wèn)主存
3.轉(zhuǎn)移指令:常用相對(duì)尋址 beq Rs Rd #偏移量:若(Rs)=(Rd)則(PC)+指令字長(zhǎng)+(偏移量×指令字長(zhǎng))->PC,否則PC+1->PC;bne Rs Rd #偏移量:若(Rs)!=(Rd)則(PC)+指令字長(zhǎng)+(偏移量×指令字長(zhǎng))->PC,否則PC+1->PC
對(duì)尋址 beq Rs Rd #偏移量:若(Rs)==(Rd)則(PC)+指令字長(zhǎng)+(偏移量×指令字長(zhǎng))->PC,否則PC+1->PC;bne Rs Rd #偏移量:若(Rs)!=(Rd)則(PC)+指令字長(zhǎng)+(偏移量×指令字長(zhǎng))->PC,否則PC+1->PC
4.無(wú)條件轉(zhuǎn)移指令:常用相對(duì)尋址 jmp #偏移量 (PC)+指令字長(zhǎng)+(偏移量×指令字長(zhǎng))->PC;WrPc耗時(shí)比EX段
總結(jié)
- 上一篇: eDiary快捷键
- 下一篇: 生日倒生日计时html代码,一款非常精美