第05章 中央處理器(1微程序控制器)_第1頁
第05章 中央處理器(1微程序控制器)_第2頁
第05章 中央處理器(1微程序控制器)_第3頁
第05章 中央處理器(1微程序控制器)_第4頁
第05章 中央處理器(1微程序控制器)_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第五章中央處理器CPU的功能和組成指令周期時序產(chǎn)生器微程序控制器組成微程序設(shè)計(jì)技術(shù)硬布線控制器第五章中央處理器5.1CPU的功能和組成5.1.1CPU的功能

*指令控制:產(chǎn)生下一條指令地址(在內(nèi)存中的)

*操作控制:產(chǎn)生各種微操作信號送往相應(yīng)部件,以控制完成指令所要求的動作

*時間控制:對各種操作信號實(shí)施時間上的控制(節(jié)拍、時序),以保證計(jì)算機(jī)有條不紊地連續(xù)自動工作

*數(shù)據(jù)加工:執(zhí)行所有的算術(shù)運(yùn)算和邏輯運(yùn)算,并進(jìn)行邏輯測試DR譯碼器時序與控制DBCB內(nèi)部控制線內(nèi)部控制線ACLALBSHPSWIRPCSPGPRGPRARAB內(nèi)部總線內(nèi)部總線1.控制器程序計(jì)數(shù)器PC指令寄存器IR指令譯碼器時序發(fā)生器操作控制器功能是負(fù)責(zé)協(xié)調(diào)與控制整個計(jì)算機(jī)系統(tǒng)的操作??刂破鞯慕Y(jié)構(gòu)可分為硬布線控制器和微程序控制器兩種。ALU5.1.2CPU的組成由兩個主要部分組成:控制器與運(yùn)算器MBR譯碼器時序與控制DBCB內(nèi)部控制線內(nèi)部控制線ACACTTMPSHFIRPCSPGPRGPRMARAB內(nèi)部總線內(nèi)部總線ALUDRACLALBSHPSWIR譯碼器時序與控制PCSPGPRGPRAR2.運(yùn)算器通用寄存器組GPR算術(shù)邏輯單元ALU累加寄存器AC程序狀態(tài)字寄存器PSW數(shù)據(jù)暫存器LA、LB移位器SH功能是執(zhí)行所有的算術(shù)運(yùn)算和邏輯運(yùn)算。5.1.2CPU的組成MBR譯碼器時序與控制DBCB內(nèi)部控制線內(nèi)部控制線ACACTTMPSHFIRPCSPGPRGPRMARAB內(nèi)部總線內(nèi)部總線ALUDRACLALBSHPSWIR譯碼器時序與控制PCSPGPRGPRAR5.1.3內(nèi)部寄存器組1.通用寄存器GPR(GeneralPurposeRegister)

可用于存放操作數(shù)(包括源操作數(shù)、目的操作數(shù)及中間結(jié)果)和各種地址信息等。MBR譯碼器時序與控制DBCB內(nèi)部控制線內(nèi)部控制線ACACTTMPSHFIRPCSPGPRGPRMARAB內(nèi)部總線內(nèi)部總線ALUDRACLALBSHPSWIR譯碼器時序與控制PCSPGPRGPRAR2.專用寄存器SPR

(1)程序計(jì)數(shù)器PC(ProgramCounter)

存放下一條要執(zhí)行的指令的地址,控制指令的執(zhí)行順序。(2)指令寄存器IR(InstructionRegister)

存放正在執(zhí)行的指令代碼。

(3)堆棧指示器SP(StackPointer)

存放堆棧棧頂?shù)闹羔楳BR譯碼器時序與控制內(nèi)部控制線內(nèi)部控制線ACACTTMPSHFIRPCSPGPRGPRMAR內(nèi)部總線內(nèi)部總線ALUDRACLALBSHPSWIR譯碼器時序與控制PCSPGPRGPRAR數(shù)據(jù)緩沖寄存器DR:存放CPU與主存或外設(shè)交換的信息地址緩沖寄存器AR:存放CPU向主存或外設(shè)發(fā)送的地址DBCBAB5.1.4CPU與外部總線接口MBR譯碼器時序與控制DB內(nèi)部控制線內(nèi)部控制線ACACTTMPSHFIRPCSPGPRGPRMARAB內(nèi)部總線內(nèi)部總線ALUDRACLALBSHPSWIR譯碼器時序與控制PCSPGPRGPRAR①作為CPU與主存、外設(shè)之間信息傳遞的中轉(zhuǎn)站

②補(bǔ)償CPU與主存、外設(shè)之間操作速度的差別5.1.4緩沖寄存器的作用CB5.1.5數(shù)據(jù)通路把寄存器與運(yùn)算器之間傳遞信息的線路稱為“數(shù)據(jù)通路”

1.用數(shù)據(jù)總線:在各寄存器以及ALU之間建立一條或者幾條數(shù)據(jù)總線,寄存器間的數(shù)據(jù)傳輸通過這些總線完成。如下圖所示。

2.用專用的通路:在各寄存器與ALU之間建立專用的數(shù)據(jù)傳輸與接收通路。在RISC處理器中都采用專用通路結(jié)構(gòu),便于運(yùn)算的并行進(jìn)行。

指令譯碼/控制器控制信號IRPCMARMDRR0RN-1YALUPSWSHAB存儲器ABUSDBUS單總線CPU的結(jié)構(gòu)控制信號包括:

R0out:R0的輸出控制

R0in:R0的輸入控制

R1out:R1的輸出控制

R1in:R1的輸入控制

Yin:Y的輸入控制

IRin:IR的輸入控制

IRout:IR的輸出控制

PCin:PC的輸入控制

PCout:PC的輸出控制

PC+1:PC計(jì)數(shù)更新控制

……例:CPU的結(jié)構(gòu)如下圖所示。其中AC為累加器,PSW為狀態(tài)寄存器,另外還有4個寄存器。各部件之間的連線表示數(shù)據(jù)通路,箭頭表示信息傳遞的方向。要求:(1)標(biāo)明4個寄存器的名稱。(2)說明指令從主存取到控制器的數(shù)據(jù)通路。(3)說明數(shù)據(jù)在運(yùn)算器和主存之間進(jìn)行存/取時的數(shù)據(jù)通路。PSWALUACa存儲器M操作控制器dcbCPU結(jié)構(gòu)示意圖+1CPUPSWALUACa存儲器M操作控制器dcbCPU結(jié)構(gòu)示意圖+1CPUMDRMARPCIR解:例:CPU結(jié)構(gòu)圖如下所示,其中包括一個累加器AC、一個狀態(tài)寄存器和其它四個寄存器,各部分之間的連線表示數(shù)據(jù)通路,箭頭表示信息傳送方向。(1).標(biāo)明圖中四個寄存器的名稱。(2)簡述取指令的數(shù)據(jù)通路。(3)簡述完成指令LDAX的數(shù)據(jù)通路(X為內(nèi)存地址,LDA功能為(X)→AC。(4)簡述完成ADDY的數(shù)據(jù)通路(Y為內(nèi)存地址,ADD功能為(AC)+(Y)→AC。(5)簡述完成STAZ的數(shù)據(jù)通路(Z為內(nèi)存地址,STA功能為(AC)→(Z)。主存儲器MAACCD微操作控制器狀態(tài)寄存器B+1ALU解:(1)

A為數(shù)據(jù)緩沖寄存器MDRB為指令寄存器IRC為主存地址寄存器MARD為程序計(jì)數(shù)器PC(2)取指令的數(shù)據(jù)通路:PC→MAR→MM→MDR→IR(3)指令LDAX的數(shù)據(jù)通路:

X→MAR→MM→MDR→ALU→AC(4)指令A(yù)DDY的數(shù)據(jù)通路:

Y→MAR→MM→MDR→ALU→ADD→AC(5)指令STA

Z的數(shù)據(jù)通路:

Z→MAR,AC→MDR→MM5.2指令周期

5.2.1指令周期的基本概念指令周期:取出一條指令并執(zhí)行該指令的時間CPU周期(機(jī)器周期、總線周期):CPU同主存或外設(shè)進(jìn)行一次信息交換所需的最短時間時鐘周期(節(jié)拍周期、T周期):CPU執(zhí)行一個微操作的最小時間單位三者關(guān)系:一個指令周期包含若干個CPU周期,一個CPU周期的功能由多個時鐘周期來完成

T周期CPU周期(取指令)CPU周期(執(zhí)行指令)指令周期定長CPU周期組成的指令周期CLAADD30STA40NOPJMP21指令舉例;使累加器AC清零;AC←AC+(30);(40)←AC;空操作;程序跳轉(zhuǎn)到地址為21處八進(jìn)制地址八進(jìn)制內(nèi)容助記符020021022023024…030031…040

250000021040140021..000006000040…存和數(shù)單元CLASTA40JMP21數(shù)據(jù)5.2.2CLA指令的指令周期CLA是一條非訪內(nèi)指令,需要兩個CPU周期。即分別進(jìn)行取指令和執(zhí)行指令。AC←0NOPADD30030030000000ALU000020000020IRDR指令譯碼器操作控制器時序產(chǎn)生器時鐘狀態(tài)反饋CLAADD30STA40NOPJMP21..000006202122232430…+1PCARABUSDBUSAC(1)

PCAR(2)

PC+1(3)

AR

ABUS(4)

DBUS

DR(5)

DRIR(6)譯碼運(yùn)行指令取CLA指令A(yù)LU000020000020IRDR指令譯碼器操作控制器時序產(chǎn)生器時鐘狀態(tài)反饋CLAADD30STA40NOPJMP21..000006202122232430…+1PCARABUSDBUSAC(1)PCAR(2)PC+1(3)AR

ABUS(4)DBUS

DR(5)DRIR(6)譯碼運(yùn)行指令執(zhí)行CLA指令(1)清AC000000(2)控制命令A(yù)LU000000000022000030IRADD

30DR指令譯碼器操作控制器時序產(chǎn)生器時鐘狀態(tài)反饋CLAADD30STA40NOPJMP21..000006202122232430…+1PCARABUSDBUSAC5.2.3ADD指令的指令周期

(第一個CPU周期取指令和CLA一樣)

(第二個CPU周期--送操作數(shù)地址)(1)

IR

ARALU000000000022000030IR000006DR指令譯碼器操作控制器時序產(chǎn)生器時鐘狀態(tài)反饋CLAADD30STA40NOPJMP21..000006202122232430…+1PCARABUSDBUSAC5.2.3ADD指令的指令周期(第三個CPU周期:兩操作數(shù)相加)(1)

ARABUS(2)

DBUSDR(3)

DRALU(3)AC

ALU(4)ALUAC在進(jìn)行計(jì)算機(jī)設(shè)計(jì)時,可以采用方框圖語言來表示一條指令的指令周期。方框

代表一個CPU周期,方框中的內(nèi)容表示數(shù)據(jù)通路的操作或某種控制操作。菱形通常用來表示某種判別或測試,不過時間上它依附于緊接它的前面一個方框的CPU周期,而不單獨(dú)占用一個CPU周期。公操作一條指令執(zhí)行完畢后,CPU所開始進(jìn)行的一些操作,如:中斷處理等。5.2.5指令STA、NOP和JMP的指令周期P162自學(xué)5.2.6用方框圖語言表示指令周期5.2.6用方框圖語言表示指令周期開始PCARABUSDBUSDRIRPC+1譯碼或測試CLAADDSTAJMPNOP0ACIRARIRARIRPCRDWEARABUSDBUSDRDRALUALUACARABUSACDRDRDBUS取指令動作依附于前面一個方框的CPU周期內(nèi)存讀命令例:P166頁下圖所示為雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路,M為主存(受R/W信號控制),ALU由加、減控制信號決定完成何種操作,控制信號G控制的是一個門電路。另外,線上標(biāo)注有小圈表示有控制信號,如yi表示y寄存器的輸入控制信號,R1o為寄存器R1的輸出控制信號,未標(biāo)注字符的線為直通線,不受控制。(1)ADDR2,R0的功能為(R0)+(R2)R0,畫出指令周期流程圖,并列出相應(yīng)的微操作控制信號序列。(2)SUBR1,R3的功能為(R3)-(R1)R3,要求同上。A總線B總線雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路IRoIRiIRPCPCiPCoARARiR/WMDRDRiDRoR0R1R2R3yixiXYALU+_G控制器自增功能R3oR3i5.3時序產(chǎn)生器CPU中一個類似“作息時間”的東西,使計(jì)算機(jī)可以準(zhǔn)確、迅速、有條不紊地工作。機(jī)器一旦被啟動,即CPU開始取指令并執(zhí)行指令時,操作控制器就利用定時脈沖的順序和不同的脈沖間隔,有條理、有節(jié)奏地指揮機(jī)器的動作,規(guī)定在這個脈沖到來時做什么,在那個脈沖到來時又做什么,給計(jì)算機(jī)各部分提供工作所需的時間標(biāo)志。為此,需要采用多級時序體制。從時間上來說,取指令事件發(fā)生在指令周期的第一個CPU周期中,即發(fā)生在“取指令”階段,而取數(shù)據(jù)事件發(fā)生在指令周期的后面幾個CPU周期中,即發(fā)生在“執(zhí)行指令”階段。從空間上來說,如果取出的代碼是指令,那么一定送往指令寄存器,如果取出的代碼是數(shù)據(jù),那么一定送往運(yùn)算器。由此可見,時間控制對計(jì)算機(jī)來說是太重要了。[思考]用二進(jìn)制碼表示的指令和數(shù)據(jù)都放在內(nèi)存里,那么CPU是怎樣識別出它們是數(shù)據(jù)還是指令呢?5.3時序產(chǎn)生器5.3.1多級時序的概念

(1)指令周期:在時序系統(tǒng)中通常不為指令周期設(shè)置時間標(biāo)志信號,因而也不將其作為時序的一級。

(2)機(jī)器周期:設(shè)置一組周期狀態(tài)觸發(fā)器,以標(biāo)志不同的機(jī)器周期。任一時刻只允許其中的一個觸發(fā)器為1,表明CPU當(dāng)前處在哪個機(jī)器周期。

(3)時鐘周期:一個時鐘周期內(nèi)完成一步基本操作。

(4)時鐘脈沖信號:作為時序系統(tǒng)的基本定時信號。硬布線控制器中,時序信號往往采用主狀態(tài)周期-節(jié)拍電位-節(jié)拍脈沖三級體制。在微程序控制器中,時序信號比較簡單,一般采用節(jié)拍電位-節(jié)拍脈沖二級體制。一個指令周期機(jī)器周期M1機(jī)器周期M2機(jī)器周期M3時鐘周期T1時鐘周期T2時鐘周期T3時鐘脈沖CLK5.3.2多級時序信號之間的關(guān)系:

由于指令周期不作為時序的一級,下圖反映了機(jī)器周期、時鐘周期、時鐘脈沖三級時序信號的關(guān)系。一個時序系統(tǒng)的組成如圖所示:脈沖發(fā)生器節(jié)拍發(fā)生器周期狀態(tài)觸發(fā)器……脈沖源啟動暫停M1M2T1T25.3.3時序系統(tǒng)的組成1.脈沖源:由石英晶體震蕩器及“與非門”組合的震蕩電路組成2.脈沖發(fā)生器:通常是一個環(huán)行脈沖發(fā)生器,采用循環(huán)移位寄存器的形式,產(chǎn)生一組有序的、間隔相等或不等的脈沖序列3.節(jié)拍發(fā)生器:按先后順序,循環(huán)地發(fā)出若干時鐘周期信號,最后通過譯碼電路,產(chǎn)生最后所需的節(jié)拍脈沖,通常由計(jì)數(shù)譯碼器電路組成。4.周期狀態(tài)觸發(fā)器:產(chǎn)生電路與節(jié)拍發(fā)生器產(chǎn)生電路類似。5.啟??刂七壿?控制時鐘系統(tǒng),只有當(dāng)啟動機(jī)器運(yùn)行時,才允許發(fā)出所需的時鐘脈沖,而且,由于機(jī)器的啟停是隨機(jī)的,必須考慮發(fā)出的脈沖是完整的。機(jī)器周期時鐘周期時鐘脈沖例:P169某時序產(chǎn)生器的主要邏輯電路如圖所示,φ為脈沖時鐘源輸出的方波脈沖,C1-C4為D觸發(fā)器,T1-T4為四個輸出的節(jié)拍脈沖。脈沖源23QQDCPC4CLRSRT4T1T2T3QQDCP+5VDCPQQC1C2C3QQDCPφφT1-T4為四個輸出節(jié)拍脈沖,其譯碼邏輯表達(dá)式為:T1=C1*C2T2=C2*C3T3=C3T4=C112345678910CPU周期CPU周期T1T2T3T4C4C1C2C3φ時鐘周期脈沖循環(huán)移位啟??刂七壿嫯?dāng)計(jì)算機(jī)啟動時,一定要從第一個節(jié)拍脈沖前沿開始工作,而在停機(jī)時,一定要在第四個節(jié)拍脈沖結(jié)束后關(guān)閉時序產(chǎn)生器。只有這樣,才能使送出去的脈沖都是完整的的脈沖。=0=0T4的上沿就是T1的上沿時刻=1啟動=0停機(jī)啟??刂七壿?/p>

例:時序產(chǎn)生器需要在一個CPU周期中產(chǎn)生三個節(jié)拍脈沖信號:T1(200ns),T2(400ns),T3(200ns),主脈沖源的頻率為5MHZ,請?jiān)O(shè)計(jì)時序邏輯電路(不考慮啟??刂?脈沖源23QQDCPC4CLRSRT3QQDCP+5VDCPQQC1C2C3QQDCPφφT1-T3為四個輸出節(jié)拍脈沖,其譯碼邏輯表達(dá)式為:T1=C1*C2T2=C2T3=T1T2C112345678910CPU周期CPU周期T1T2T3C4C1C2C3φ200ns400ns200ns5.3.3控制器的時序控制方式1.同步控制方式(集中控制方式):對機(jī)器的所有指令采用統(tǒng)一的時序信號。用相同數(shù)目的機(jī)器周期,相同數(shù)目的節(jié)拍脈沖來形成每條指令的控制操作序列。

特點(diǎn):時序關(guān)系簡單,但以犧牲速度為代價。2.異步控制方式(分散控制方式):每條指令、每個微操作需要多少時間就占用多少時間,不采用統(tǒng)一的周期和節(jié)拍,時間上的銜接通過應(yīng)答方式(握手方式)實(shí)現(xiàn)。

特點(diǎn):無時間浪費(fèi),但時序控制比較復(fù)雜。3.聯(lián)合控制方式:是同步控制與異步控制相結(jié)合。情況(1)大部分操作序列安排在固定的機(jī)器周期中,對某些時間難以確定的操作則以執(zhí)行部件的“回答”信號作為本次操作的結(jié)束;

情況(2)機(jī)器周期的節(jié)拍脈沖數(shù)固定,但是各條指令周期的機(jī)器周期數(shù)不固定。5.5微程序控制器

5.5.1微程序控制器的組成和基本原理指令的執(zhí)行有很強(qiáng)的階段性,把控制信號以二進(jìn)制的編碼形式存入存儲器,然后按順序一條一條的讀出,一條一條的控制,最終完成一條指令的執(zhí)行,這就是微程序控制的思想。簡單來講就是控制信號的軟件化。微程序控制的思想是英國劍橋大學(xué)WILKES教授1951年提出的。微程序控制是將程序設(shè)計(jì)的思想引入硬件邏輯控制,把控制信號編碼并有效地存儲起來,將一條指令的執(zhí)行過程替換成一條條微指令的讀出和控制過程,簡化了控制器的設(shè)計(jì)。缺點(diǎn):每一條指令的執(zhí)行意味著若干次存儲器的讀操作,使指令的執(zhí)行速度比組合邏輯方式要慢。ALU狀態(tài)寄存器PSWACPCAR指令譯碼器操作控制器存儲器…數(shù)據(jù)總線OPIR(AR)+1PCARMREQR/WDBUSARDBUS

PCCDRACACDRDRALUIRDRDRIRIR(AR)DBUS+_DBUSDRDRDBUS…CPU結(jié)構(gòu)示意圖ALUDR5.5.2微程序控制的基本概念

1.微命令與微操作

微命令:構(gòu)成控制信號序列的最小單位,如:PC

AR。

微操作:由微命令控制實(shí)現(xiàn)的最基本的操作。

2.微指令和微程序

微指令:在機(jī)器的一個節(jié)拍中,一組實(shí)現(xiàn)一定操作功能的微命令,或者說,控制存儲器中每個單元存放的微命令信息(一串2進(jìn)制編碼)組成一條微指令。

微程序:由微指令組成的序列稱為微程序,一個微程序的功能對應(yīng)一條機(jī)器指令的功能。3.機(jī)器指令:指提供給使用者編程的基本單位,每一條機(jī)器指令可以完成一個獨(dú)立的算術(shù)運(yùn)算或邏輯運(yùn)算操作。一條機(jī)器指令對應(yīng)一組微指令組成的微程序。一條微指令可為多個機(jī)器指令服務(wù)。

4.控制存儲器CM(ControlMemory)用于存放全部指令的所有微程序,采用只讀存儲器結(jié)構(gòu)(固化)??刂拼鎯ζ鞯淖珠L等于微指令的長度,其總?cè)萘繘Q定于所有微程序的總長度。已知某計(jì)算機(jī)有80條指令,平均每條指令由12條微指令組成,其中有一條取指微指令是所有指令共用的,設(shè)微指令長度為32位,計(jì)算CM容量。

解:微指令所占的二進(jìn)制位數(shù)=(1+80*(12-1))*32=881*32所以,CM容量可選1K*32(>881*32)

例:P.210第6題

5.微指令周期:從控制存儲器中讀取一條微指令并執(zhí)行這條微指令所需的時間,通常一個微指令周期與一個CPU周期的時間相等。微指令中的微命令可以用節(jié)拍脈沖來同步定時。有多個同步節(jié)拍脈沖的微周期,稱為多周期。微周期子周期T1T2T3T4多周期節(jié)拍脈沖T1T2T3T4T1T2T3T4讀微指令執(zhí)行微指令微指令周期CPU周期周期之間的關(guān)系指令周期CPU周期微程序的執(zhí)行過程(四個過程)1、取微指令階段由于任何指令的執(zhí)行都是從取微指令開始的,所以是公操作,與所有指令對應(yīng)的微程序的首地址都相同,都是從CM的固定單元取出第一條用于取指令的微指令。2、取數(shù)階段根據(jù)尋址方式,確定微程序的流向。3、執(zhí)行階段根據(jù)操作碼確定各自執(zhí)行階段微程序的入口4、微程序的最后一條微指令的次地址字段指向CM的取指令單元,又開始了下一段微程序的執(zhí)行。微程序的執(zhí)行過程(四個過程)5.6微程序設(shè)計(jì)技術(shù)5.6.1微命令的編碼方式微命令編碼:對微指令中的操作控制字段采用的表示方法。1.直接表示法(不譯碼法):將微指令操作控制字段的每個二進(jìn)制位定義為一個微命令,直接送往相應(yīng)的控制點(diǎn)?!⒚钗⒚钭侄雾樞蚩刂谱侄挝⒅噶罴拇嫫魑⒅噶?.6.1微命令的編碼方式2.字段直接譯碼法:將微指令的控制字段分為若干小字段,把相斥性微命令組合在同一字段中,而相容性微命令組合在不同的字段中,然后通過小組譯碼器對每一個微命令信號進(jìn)行譯碼?!g碼譯碼譯碼……………微命令微命令微命令微命令字段順序控制字段微指令寄存器3.混合表示法:直接表示法和字段直接譯碼法的混合使用。假設(shè)CPU結(jié)構(gòu)見下頁,以ADDID為例。它由五條微指令解釋執(zhí)行。圖中每個小方框代表一條微指令,框內(nèi)為該微指令的全部微命令,框外右上角標(biāo)明該微指令在控存的地址。微指令格式如下:ADDR,DBUSARPCARR,+1DBUSDRDRIRIR(AR)DBUSDBUSARR,DBUSDRIR12=1IR12=0DRALU,+000000000100110001010010000011….12

16判別測試字段下址字段PCARDBUSDR控制字段順序控制字段ADDID;I=0為直接尋址,即(AC)+(D)AC;I=1為間接尋址,即(AC)+((D))AC5.6.2微程序執(zhí)行順序的控制(微地址產(chǎn)生方式)方框圖表示機(jī)器指令周期ALU狀態(tài)寄存器PSWACPCAR指令譯碼器操作控制器存儲器…數(shù)據(jù)總線OPIR(AR)+1PCARMREQR/WDBUSARDBUS

PCCDRACACDRDRALUIRDRDRIRIR(AR)DBUS+_DBUSDRDRDBUS…CPU結(jié)構(gòu)示意圖ALUAC譯碼器工作原理框圖微地址形成電路微地址寄存器μAR地址譯碼驅(qū)動機(jī)器指令寄存器IR主存儲器器RAM譯碼微操作控制字段順序控制P字段…………….控制存儲器CM(ROM)……微命令寄存器μIR微命令轉(zhuǎn)移地址來源運(yùn)行狀態(tài)PSW……指令操作碼……R1.計(jì)數(shù)器方式:順序執(zhí)行微指令時,后續(xù)微指令地址由現(xiàn)行微指令地址加一個增量(通常為1)而形成;遇到轉(zhuǎn)移時,由轉(zhuǎn)移微指令給出轉(zhuǎn)移微地址使微地址按新的方式執(zhí)行。故:順序執(zhí)行的微指令序列必須安排在控制存儲器的連續(xù)的單元中。轉(zhuǎn)移微指令的一般格式簡化如下:

操作碼

轉(zhuǎn)移地址轉(zhuǎn)移控制5.6.2微程序執(zhí)行順序的控制(微地址產(chǎn)生方式)PCARR,+1DBUSDRDRIRT=1000011P1=1(IR15IR14IR13=000)CCLA000011IR(AR)DBUSDBUSAR001011ADDT=1001110P2=1R,DBUSARR,DBUSDRDRALU,+T=1000000P1=0P2=0001100IR12=1001110IR12=0001111010000010001IR(AR)DBUSDBUS

ART=1010110P2=1R,DBUS

ARACDRDR

DBUSWT=1000000P1=0P2=0010011STA010100IR12=1010110010111011000LDAJMP地址轉(zhuǎn)移邏輯表達(dá)式為:μPC5=IR15P1T2μPC4=IR14P1T2μPC3=IR13P1T2μPC0=IR12P2T200000000000100001000000000T=1000100(001)(010)(011)(100)IR12=0微程序設(shè)計(jì)IR(AR)DBUSDBUSARR,DBUSDR

DRACT=1011110P2=1IR12=1R,DBUS

ARIR12=0T=1000000P1=0P2=0011011011100011110011111100000100001…轉(zhuǎn)移微指令,地址為6位。圖中有兩種轉(zhuǎn)移情況,用P1、P2來控制,轉(zhuǎn)移微指令格式為:轉(zhuǎn)移微指令標(biāo)志T轉(zhuǎn)移地址(A5A4A3A2A1A0)轉(zhuǎn)移控制P1P2轉(zhuǎn)移地址修改方案為:

μPC5μPC4μPC3μPC2μPC1μPC0IR15IR14IR13IR12P1=1P2=1計(jì)數(shù)器法的微程序控制器組成如下:IR

指令寄存器微地址轉(zhuǎn)移邏輯微程序計(jì)數(shù)器μPCCM微指令寄存器μIRTP1P2時序微指令譯碼器IR15IR14IR13IR12μPC5μPC4μPC3PCAR……ACDR微操作命令P2P1P1P2T1T2說明:當(dāng)T=0時,微指令寄存器μIR輸出微操作命令;當(dāng)T=1時,微指令寄存器μIR輸出微轉(zhuǎn)移指令。T1和T2用于定時一條微指令中的微命令;另外,T1=1時,將轉(zhuǎn)移地址送至μPC,T2=1時,如果P1+P2=1,則修改μPCT2……μPC02.多路轉(zhuǎn)移方式(下址字段法/斷定法):當(dāng)微程序不產(chǎn)生分支時,后續(xù)微指令地

址由微指令的順序字段給出;否則有若干個后續(xù)地址可以選擇,此時必須由順序

控制字段的“判別測試”和“狀態(tài)條件”信息來選擇其中一個微地址。沒有轉(zhuǎn)移指令。微指令格式如下:其微程序組成原理圖如下:微命令字段判別測試字段(P字段)下地址字段操作控制順序控制控制存儲器地址譯碼微地址寄存器地址轉(zhuǎn)移邏輯P字段控制字段…OPIR…狀態(tài)條件其中:微地址寄存器對應(yīng)下地址字段,P字段即為判別測試字段,控制字段即為微命令字段,后兩部分組成微指令字段。例:已知MOV,ADD,COM,ADT四條指令微程序流程圖如下所示:0000RSRDRSRDR2+R1R2R2+R3R2R2-R3R2P(1)P(2)RS+RDRDMOVADDCOMADT1000000010010000101010111111000001000000Ci=1Ci=0(1)P(1)的條件碼是指令寄存器的OP字段,即IR7和IR6,P(2)的條件碼是進(jìn)位寄存器Ci,請?jiān)O(shè)計(jì)出微程序控制器地址轉(zhuǎn)移邏輯圖。(2)現(xiàn)設(shè)定控制存儲器EPROM容量為16個單元,其字長符合微指令格式要求。請給出微程序流程圖中每條微指令的當(dāng)前微地址與下一微地址。10000000取指令1111下地址當(dāng)前微指令地址

解:(1)從流程圖可以看出,P(1)處微程序出現(xiàn)四個分支,對應(yīng)四個微地址,因此用OP碼修改微地址寄存器的最后兩個觸發(fā)器即可;在P(2)處微程序出現(xiàn)2路分支,對應(yīng)兩個微地址。轉(zhuǎn)移邏輯表達(dá)式如下:

μA0=P1*T4*IR6μA1=P1*T4*IR7μA2=P2*T4*Ci微地址轉(zhuǎn)移邏輯電路如下:QDQA3μQQDμA2QQμA1QQμA0T1CM3CM2CM1CM0T4P2CiP1IR7P1IR6S控制存儲器CM中取出的微指令中包含的的下一條微指令地址1000初值解:因?yàn)镋PROM容量為16單元,微地址寄存器4位即可,設(shè)為μA3-μA0,七條微指令地址分配如下表所示:微指令序號當(dāng)前微地址下一微地址1234

5670000100010011010

10111111010010000000000000001111000000005.6.3微指令格式

1.水平型微指令:在一個CPU周期(即微周期)內(nèi)同時給出多個能并行操作的微命令的微指令,均稱為水平型微指令。其格式為:操作控制字段判別測試字段下址字段提供微命令提供下一條微指令的地址2.垂直型微指令:采用完全編碼方法,將全部微命令代碼化。其格式為:微操作碼字段源部件地址字段目的部件地址字段下址字段水平型微指令與垂直型微指令的比較:*水平型微指令并行操作能力強(qiáng)*水平型微指令執(zhí)行一條指令的時間短:垂直型微指令要譯碼

*由水平型微指令解釋指令的微程序,微指令字較長,微程序短

*水平型微指令用戶難以掌握例:(P210.11)已知某機(jī)采用微程序控制方式,控存容量為512*48位。微程序可在整個控存中實(shí)現(xiàn)轉(zhuǎn)移,控制微程序轉(zhuǎn)移的條件共有4個,微指令采用水平型微指令,后繼微指令地址采用斷定方式(多路轉(zhuǎn)移方式)。請問:(1)微指令的三個字段分別應(yīng)為多少位?(2)畫出對應(yīng)這種微指令格式的微程序控制器邏輯。

解:微指令格式為:

微命令字段判別測試字段下地址字段操作控制順序控制假設(shè)判別測試字段中每一位作為一個判別標(biāo)志,那末由于有4個轉(zhuǎn)移條件,故該字段為4位。因?yàn)榭卮嫒萘繛?12單元,所以下地址字段為9位。微命令字段則是(48-4-9)=35位。上述微指令格式的微程序控制器邏輯框圖控制存儲器地址譯碼微地址寄存器地址轉(zhuǎn)移邏輯P字段控制字段…OPIR…狀態(tài)條件例:

(P210.10)某計(jì)算機(jī)有如下部件:ALU,移位器,主存M,主存數(shù)據(jù)寄存器MDR,主存地址寄存器MAR,指令寄存器IR,通用寄存器R0-R3,暫存器C和D。(1)請將各邏輯部件組成一個數(shù)據(jù)通路,并標(biāo)明數(shù)據(jù)流動方向。(2)畫出“ADD(R1),(R2)+”指令的指令周期流動圖,指令的含義是進(jìn)行求和操作,源操作數(shù)地址在寄存器R1中,目的操作數(shù)尋址方式為自增型寄存器間址方式。解:

移位器IRPCCDR0R1R2R3MDRMARMALU+1AB+1MMDRIR,PC+1R1MARMMDRCR2MARMMDRDC+DMDRMDRM,R2DD+1R2PCMAR測試取指取源操作數(shù)取目的操作數(shù)加存回修改送后繼指令地址5.6.3微程序控制器設(shè)計(jì)舉例1.微程序控制器的設(shè)計(jì)步驟(1)根據(jù)CPU的結(jié)構(gòu)圖寫出每條指令的操作流程圖并分解成微操作序列(2)對微命令進(jìn)行編碼(3)選擇合適的控制時序(4)為微指令安排微地址(5)畫出微程序控制器組成框圖2.微程序控制器設(shè)計(jì)舉例CPU結(jié)構(gòu)框圖如下圖所示,設(shè)計(jì)以下幾條指令的微程序控制器:CLA;清ACADDID;I=0為直接尋址,即(AC)+(D)

AC

I=1為間接尋址,即(AC)+((D))

ACSTAID;I=0為直接尋址,即(AC)

D;I=1為間接尋址,即(AC)

(D)LDAID;I=0為直接尋址,即(D)

AC;I=1為間接尋址,即((D))

ACJMPID;I=0為直接尋址,即(D)

PC;I=1為間接尋址,即((D))

PCALU狀態(tài)寄存器ACPCAR指令譯碼器操作控制器存儲器…數(shù)據(jù)總線OPIR(AR)+1PCARMREQR/WDBUSARDBUS

PCCDRACDRACDRALUIRDRDRIRIR(AR)DBUS+_DBUSDRDRDBUS…CPU結(jié)構(gòu)示意圖(1)根據(jù)CPU結(jié)構(gòu)框圖寫出指令的操作流程圖:I=1?I=1?I=1?I=1?0ACMARMARMDBUSDBUSPCPCARMDRDRIRPC+1PCPCARR,DBUSDRDRIR+1CLAIR15IR14IR13=000ADD001STA010LDA011JMP100

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論