版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第6章章 中央處理部件中央處理部件CPU6.1 控制器的組成控制器的組成6.2 微程序控制計(jì)算機(jī)的基本工作原理微程序控制計(jì)算機(jī)的基本工作原理6.3 微程序設(shè)計(jì)技術(shù)微程序設(shè)計(jì)技術(shù)6.4 硬布線控制的計(jì)算機(jī)硬布線控制的計(jì)算機(jī)6.5 流水線工作原理流水線工作原理6.6 CPU舉例舉例6.7 計(jì)算機(jī)的供電計(jì)算機(jī)的供電引言引言 微處理器將運(yùn)算器與控制器集成在一個(gè)芯片上,稱為中央處微處理器將運(yùn)算器與控制器集成在一個(gè)芯片上,稱為中央處理器(理器(CPU)。本章以)。本章以CPU內(nèi)部結(jié)構(gòu)為重點(diǎn),以掌握邏輯設(shè)內(nèi)部結(jié)構(gòu)為重點(diǎn),以掌握邏輯設(shè)計(jì)要點(diǎn)為目標(biāo)。因第計(jì)要點(diǎn)為目標(biāo)。因第3章已經(jīng)學(xué)習(xí)了運(yùn)算器,因此本章的重點(diǎn)章
2、已經(jīng)學(xué)習(xí)了運(yùn)算器,因此本章的重點(diǎn)放在控制計(jì)算機(jī)運(yùn)行的硬件部件,即所謂的控制器上。放在控制計(jì)算機(jī)運(yùn)行的硬件部件,即所謂的控制器上。計(jì)算機(jī)運(yùn)行首先將一部分?jǐn)?shù)據(jù)和程序輸入主存儲(chǔ)器,然后從計(jì)算機(jī)運(yùn)行首先將一部分?jǐn)?shù)據(jù)和程序輸入主存儲(chǔ)器,然后從“程序入口程序入口”開始執(zhí)行該程序,得到結(jié)果并結(jié)束運(yùn)行。開始執(zhí)行該程序,得到結(jié)果并結(jié)束運(yùn)行。“程程序入口序入口”指的是該程序開始執(zhí)行的第一條指令的地址,控制指的是該程序開始執(zhí)行的第一條指令的地址,控制器的作用是協(xié)調(diào)并控制計(jì)算機(jī)的各個(gè)部件執(zhí)行程序的指令序器的作用是協(xié)調(diào)并控制計(jì)算機(jī)的各個(gè)部件執(zhí)行程序的指令序列。列。計(jì)算機(jī)的工作過程可描述如下:計(jì)算機(jī)的工作過程可描述如下:
3、加電產(chǎn)生復(fù)位信號(hào)、初始化、確定程序入口地址加電產(chǎn)生復(fù)位信號(hào)、初始化、確定程序入口地址執(zhí)行程序(取指令、分析指令、執(zhí)行指令)得到結(jié)果、停執(zhí)行程序(取指令、分析指令、執(zhí)行指令)得到結(jié)果、停機(jī)停電。機(jī)停電。引言(續(xù))引言(續(xù)) 本章主要論述本章主要論述CPU中各個(gè)部件的操作過程及其實(shí)現(xiàn)中各個(gè)部件的操作過程及其實(shí)現(xiàn)方法的原理,重點(diǎn)講述方法的原理,重點(diǎn)講述程序是如何執(zhí)行程序是如何執(zhí)行計(jì)算機(jī)怎么實(shí)現(xiàn)各條指令的功能計(jì)算機(jī)怎么實(shí)現(xiàn)各條指令的功能如何保證逐條指令的連續(xù)執(zhí)行如何保證逐條指令的連續(xù)執(zhí)行本章所講的存儲(chǔ)器如沒有特別說明即是主存儲(chǔ)器本章所講的存儲(chǔ)器如沒有特別說明即是主存儲(chǔ)器6.1 控制器的組成控制器的組成
4、 6.1.1 控制器的功能控制器的功能計(jì)算機(jī)對(duì)信息進(jìn)行處理計(jì)算機(jī)對(duì)信息進(jìn)行處理(或計(jì)算或計(jì)算)是通過程序的執(zhí)行而是通過程序的執(zhí)行而實(shí)現(xiàn)的,程序是完成某個(gè)確定算法的指令序列,要實(shí)現(xiàn)的,程序是完成某個(gè)確定算法的指令序列,要預(yù)先存放在存儲(chǔ)器中??刂破鞯淖饔檬强刂瞥绦虻念A(yù)先存放在存儲(chǔ)器中??刂破鞯淖饔檬强刂瞥绦虻膱?zhí)行,它必須具有以下基本功能:執(zhí)行,它必須具有以下基本功能:1. 取指令取指令當(dāng)程序已在存儲(chǔ)器中時(shí),首先根據(jù)程序入口取出第當(dāng)程序已在存儲(chǔ)器中時(shí),首先根據(jù)程序入口取出第一條指令,為此要發(fā)出指令地址及控制信號(hào)。然后一條指令,為此要發(fā)出指令地址及控制信號(hào)。然后不斷取出第不斷取出第2,3,條指令。條指
5、令。 2. 分析指令分析指令或叫解釋指令、指令譯碼等。是對(duì)當(dāng)前取得的指令或叫解釋指令、指令譯碼等。是對(duì)當(dāng)前取得的指令進(jìn)行分析,指出它要求作什么操作,并產(chǎn)生相應(yīng)的進(jìn)行分析,指出它要求作什么操作,并產(chǎn)生相應(yīng)的操作控制命令,如果參與操作的數(shù)據(jù)在存儲(chǔ)器中,操作控制命令,如果參與操作的數(shù)據(jù)在存儲(chǔ)器中,還需要形成操作數(shù)地址。還需要形成操作數(shù)地址。3. 執(zhí)行指令執(zhí)行指令根據(jù)分析指令時(shí)產(chǎn)生的根據(jù)分析指令時(shí)產(chǎn)生的“操作命令操作命令”和和“操作數(shù)地操作數(shù)地址址”形成相應(yīng)的操作控制信號(hào)序列,通過形成相應(yīng)的操作控制信號(hào)序列,通過CPU及輸及輸入輸出設(shè)備的執(zhí)行,實(shí)現(xiàn)每條指令的功能,其中還入輸出設(shè)備的執(zhí)行,實(shí)現(xiàn)每條指令的
6、功能,其中還包括對(duì)運(yùn)算結(jié)果的處理以及下條指令地址的形成。包括對(duì)運(yùn)算結(jié)果的處理以及下條指令地址的形成。計(jì)算機(jī)不斷重復(fù)順序執(zhí)行上述三種基本操作:取指、計(jì)算機(jī)不斷重復(fù)順序執(zhí)行上述三種基本操作:取指、分析、執(zhí)行;再取指、再分析、再執(zhí)行分析、執(zhí)行;再取指、再分析、再執(zhí)行,如此,如此循環(huán),直到遇到停機(jī)指令或外來的干預(yù)為止。循環(huán),直到遇到停機(jī)指令或外來的干預(yù)為止。此外,程序和數(shù)據(jù)要輸入機(jī)器,運(yùn)算結(jié)果要輸出,此外,程序和數(shù)據(jù)要輸入機(jī)器,運(yùn)算結(jié)果要輸出,機(jī)器運(yùn)行過程中出現(xiàn)的某些異常情況或請(qǐng)求要進(jìn)行機(jī)器運(yùn)行過程中出現(xiàn)的某些異常情況或請(qǐng)求要進(jìn)行處理,人與機(jī)器之間要進(jìn)行對(duì)話,因此控制器還應(yīng)處理,人與機(jī)器之間要進(jìn)行對(duì)話
7、,因此控制器還應(yīng)該具有以下功能:該具有以下功能:4. 控制程序和數(shù)據(jù)的輸入與結(jié)果輸出控制程序和數(shù)據(jù)的輸入與結(jié)果輸出根據(jù)程序的安排或人的干預(yù),在適當(dāng)?shù)臅r(shí)候向輸入根據(jù)程序的安排或人的干預(yù),在適當(dāng)?shù)臅r(shí)候向輸入輸出設(shè)備發(fā)出一些相應(yīng)的命令來完成輸出設(shè)備發(fā)出一些相應(yīng)的命令來完成I/O功能,這實(shí)功能,這實(shí)際上也是通過執(zhí)行程序來完成的。際上也是通過執(zhí)行程序來完成的。5. 對(duì)異常情況和某些請(qǐng)求的處理對(duì)異常情況和某些請(qǐng)求的處理當(dāng)機(jī)器出現(xiàn)某些異常情況,此時(shí)由這些部件或設(shè)備當(dāng)機(jī)器出現(xiàn)某些異常情況,此時(shí)由這些部件或設(shè)備發(fā)出:發(fā)出: (1) “中斷請(qǐng)求中斷請(qǐng)求”信號(hào)。待信號(hào)。待CPU執(zhí)行完當(dāng)前指執(zhí)行完當(dāng)前指令后,響應(yīng)該請(qǐng)
8、求,中止當(dāng)前執(zhí)行的程序,轉(zhuǎn)去執(zhí)令后,響應(yīng)該請(qǐng)求,中止當(dāng)前執(zhí)行的程序,轉(zhuǎn)去執(zhí)行中斷程序。當(dāng)處理完畢后,再返回原程序繼續(xù)運(yùn)行中斷程序。當(dāng)處理完畢后,再返回原程序繼續(xù)運(yùn)行下去?;蛐邢氯??;?2)DMA請(qǐng)求請(qǐng)求信號(hào)。等信號(hào)。等CPU完成當(dāng)前機(jī)器完成當(dāng)前機(jī)器周期操作后,暫停工作,讓出總線給周期操作后,暫停工作,讓出總線給I/O設(shè)備,在完設(shè)備,在完成成I/O設(shè)備與存儲(chǔ)器之間的傳送數(shù)據(jù)操作后,設(shè)備與存儲(chǔ)器之間的傳送數(shù)據(jù)操作后,CPU從從暫時(shí)中止的機(jī)器周期開始繼續(xù)執(zhí)行指令。暫時(shí)中止的機(jī)器周期開始繼續(xù)執(zhí)行指令。DMA操作操作不允許改變不允許改變CPU中任一寄存器狀態(tài)中任一寄存器狀態(tài)(除除DMA專用部件專用部件外
9、外),否則會(huì)影響,否則會(huì)影響CPU工作的正確性。工作的正確性。 6.1.2 控制器的組成控制器的組成 1. 程序計(jì)數(shù)器程序計(jì)數(shù)器(PC)即即指令地址寄存器指令地址寄存器。在某些計(jì)算機(jī)中用來存放。在某些計(jì)算機(jī)中用來存放當(dāng)前當(dāng)前正在執(zhí)行的指令地址;而在另一些計(jì)算機(jī)中則用來正在執(zhí)行的指令地址;而在另一些計(jì)算機(jī)中則用來存放即將要執(zhí)行的下一條指令地址;而在有指令預(yù)存放即將要執(zhí)行的下一條指令地址;而在有指令預(yù)取功能的計(jì)算機(jī)中,一般還需要增加一個(gè)程序計(jì)數(shù)取功能的計(jì)算機(jī)中,一般還需要增加一個(gè)程序計(jì)數(shù)器用來存放下一條要取出的指令地址。器用來存放下一條要取出的指令地址。指令地址的形成:指令地址的形成:1)順序執(zhí)行
10、的,)順序執(zhí)行的,PC+1,1指的是指指的是指令長度;令長度;2)改變順序執(zhí)行的,由轉(zhuǎn)移指令形成轉(zhuǎn)移)改變順序執(zhí)行的,由轉(zhuǎn)移指令形成轉(zhuǎn)移地址送往地址送往PC,作為下一條指令的地址。,作為下一條指令的地址。2. 指令寄存器指令寄存器(IR)用以存放當(dāng)前正在執(zhí)行的指令,以便在指令執(zhí)行過用以存放當(dāng)前正在執(zhí)行的指令,以便在指令執(zhí)行過程中,控制完成一條指令的全部功能。程中,控制完成一條指令的全部功能。3. 指令譯碼器或操作碼譯碼器指令譯碼器或操作碼譯碼器對(duì)指令寄存器中的操作碼進(jìn)行分析解釋,產(chǎn)生相應(yīng)對(duì)指令寄存器中的操作碼進(jìn)行分析解釋,產(chǎn)生相應(yīng)的控制信號(hào)。在執(zhí)行指令過程中,需要形成有一定的控制信號(hào)。在執(zhí)行指
11、令過程中,需要形成有一定時(shí)序關(guān)系的操作控制信號(hào)序列,為此還需要下述組時(shí)序關(guān)系的操作控制信號(hào)序列,為此還需要下述組成部分。成部分。4. 脈沖源及啟停線路脈沖源及啟停線路脈沖源產(chǎn)生一定頻率的脈沖信號(hào)作為整個(gè)機(jī)器的時(shí)脈沖源產(chǎn)生一定頻率的脈沖信號(hào)作為整個(gè)機(jī)器的時(shí)鐘脈沖,是機(jī)器周期和工作脈沖的基準(zhǔn)信號(hào),在機(jī)鐘脈沖,是機(jī)器周期和工作脈沖的基準(zhǔn)信號(hào),在機(jī)器剛加電時(shí),還應(yīng)產(chǎn)生一個(gè)總清信號(hào)器剛加電時(shí),還應(yīng)產(chǎn)生一個(gè)總清信號(hào)(reset)。啟停線。啟停線路保證可靠地送出或封鎖時(shí)鐘脈沖,控制時(shí)序信號(hào)路保證可靠地送出或封鎖時(shí)鐘脈沖,控制時(shí)序信號(hào)的發(fā)生或停止,從而啟動(dòng)機(jī)器工作或使之停機(jī)。的發(fā)生或停止,從而啟動(dòng)機(jī)器工作或使
12、之停機(jī)。5. 時(shí)序控制信號(hào)形成部件時(shí)序控制信號(hào)形成部件當(dāng)機(jī)器啟動(dòng)后,在當(dāng)機(jī)器啟動(dòng)后,在CLK時(shí)鐘作用下,根據(jù)當(dāng)前正在時(shí)鐘作用下,根據(jù)當(dāng)前正在執(zhí)行的指令的需要,產(chǎn)生相應(yīng)的時(shí)序控制信號(hào),并執(zhí)行的指令的需要,產(chǎn)生相應(yīng)的時(shí)序控制信號(hào),并根據(jù)被控功能部件的反饋信號(hào)調(diào)整時(shí)序控制信號(hào)。根據(jù)被控功能部件的反饋信號(hào)調(diào)整時(shí)序控制信號(hào)。 圖圖6.1是控制器基本組成的框圖是控制器基本組成的框圖 。假設(shè)操作數(shù)地址和轉(zhuǎn)移地址的計(jì)算在運(yùn)算器中進(jìn)行,假設(shè)操作數(shù)地址和轉(zhuǎn)移地址的計(jì)算在運(yùn)算器中進(jìn)行,運(yùn)算器與控制器之間有內(nèi)部連線,而運(yùn)算器、控制器與存儲(chǔ)運(yùn)算器與控制器之間有內(nèi)部連線,而運(yùn)算器、控制器與存儲(chǔ)器、器、I/O設(shè)備之間均通過
13、總結(jié)相連。設(shè)備之間均通過總結(jié)相連。簡化模型:程序存放在主存儲(chǔ)器中,非流水線方式取簡化模型:程序存放在主存儲(chǔ)器中,非流水線方式取指,指令長度固定、限制尋址方式的多樣化,程序運(yùn)行前程指,指令長度固定、限制尋址方式的多樣化,程序運(yùn)行前程序與數(shù)據(jù)已經(jīng)存放在主存儲(chǔ)器中。序與數(shù)據(jù)已經(jīng)存放在主存儲(chǔ)器中。圖圖6.3 控制器基本組成框圖控制器基本組成框圖 6.1.3 指令執(zhí)行過程指令執(zhí)行過程 1. 組成控制器的基本電路組成控制器的基本電路計(jì)算機(jī)中采用的電路,基本上分為兩種類型:計(jì)算機(jī)中采用的電路,基本上分為兩種類型:時(shí)序電路。具有記憶功能的時(shí)序電路。具有記憶功能的觸發(fā)器觸發(fā)器以及由它組成以及由它組成的的寄存器、
14、計(jì)數(shù)器和存儲(chǔ)單元寄存器、計(jì)數(shù)器和存儲(chǔ)單元等。其特點(diǎn)是當(dāng)輸?shù)?。其特點(diǎn)是當(dāng)輸入信號(hào)消失后,原信息仍保留其中,圖入信號(hào)消失后,原信息仍保留其中,圖6.2即是這即是這樣的電路。樣的電路。 1. 組合邏輯電路。沒有記憶功能的門電路及由它組組合邏輯電路。沒有記憶功能的門電路及由它組成的加法器、算術(shù)邏輯運(yùn)算單元成的加法器、算術(shù)邏輯運(yùn)算單元(ALU)和各種和各種邏邏輯電路輯電路等。其特點(diǎn)是當(dāng)輸入信號(hào)改變后,輸出跟等。其特點(diǎn)是當(dāng)輸入信號(hào)改變后,輸出跟著變化。圖著變化。圖6.3為加法器電路為加法器電路 。圖圖6.2 記憶電路記憶電路 圖圖6.3 沒有記憶功能的加法器沒有記憶功能的加法器 2. 指令執(zhí)行過程舉例指令
15、執(zhí)行過程舉例(1) 一條加法指令的執(zhí)行過程一條加法指令的執(zhí)行過程假設(shè)運(yùn)算器的框圖如圖假設(shè)運(yùn)算器的框圖如圖6.4所示。運(yùn)算器由所示。運(yùn)算器由8個(gè)通用寄個(gè)通用寄存器存器GR及一個(gè)算術(shù)邏運(yùn)算部件及一個(gè)算術(shù)邏運(yùn)算部件ALU組成,并有組成,并有4個(gè)個(gè)記憶運(yùn)算結(jié)果狀態(tài)的標(biāo)志觸發(fā)器記憶運(yùn)算結(jié)果狀態(tài)的標(biāo)志觸發(fā)器N,Z,V和和C。 N(負(fù)數(shù)負(fù)數(shù)): 當(dāng)運(yùn)算結(jié)果為負(fù)數(shù)時(shí),置當(dāng)運(yùn)算結(jié)果為負(fù)數(shù)時(shí),置“1”,否則為,否則為“0”。Z(零零): 當(dāng)運(yùn)算結(jié)果為零時(shí),當(dāng)運(yùn)算結(jié)果為零時(shí),Z1,否則,否則Z0。V(溢出溢出): 當(dāng)運(yùn)算結(jié)果溢出時(shí),當(dāng)運(yùn)算結(jié)果溢出時(shí),V1,否則,否則V0。C(進(jìn)位進(jìn)位): 當(dāng)加法運(yùn)算產(chǎn)生進(jìn)位信號(hào)或減
16、法運(yùn)算產(chǎn)生當(dāng)加法運(yùn)算產(chǎn)生進(jìn)位信號(hào)或減法運(yùn)算產(chǎn)生借位信號(hào)時(shí),借位信號(hào)時(shí),C1,否則,否則C0。圖圖6.4 運(yùn)算器框圖運(yùn)算器框圖 受控制的門,帶*的是控制命令圖圖6.7 加法指令時(shí)序圖加法指令時(shí)序圖 指令格式:指令格式:Rsrdrs1為通用寄存器地址,為通用寄存器地址,Imm(或或Disp)為立即數(shù)為立即數(shù)(或位移量或位移量)加法指令:將寄存器加法指令:將寄存器(rs)中的數(shù)與存儲(chǔ)器地址為中的數(shù)與存儲(chǔ)器地址為(rs1)+disp的數(shù)的數(shù)相加,結(jié)果放在寄存器相加,結(jié)果放在寄存器rd,rs與與rd為同一寄存器。加法指令完為同一寄存器。加法指令完成以下操作成以下操作從存儲(chǔ)器取指令,送入指令寄存器,并進(jìn)行
17、操作碼譯碼從存儲(chǔ)器取指令,送入指令寄存器,并進(jìn)行操作碼譯碼(分析分析指令指令)。PCAB, W/R=0, M/IO=1; DBIR;PC+1計(jì)算數(shù)據(jù)地址,將計(jì)算得到的有效地址送地址寄存器計(jì)算數(shù)據(jù)地址,將計(jì)算得到的有效地址送地址寄存器AR。rs1GR, (rs1)ALU, dispALU; “+”ALU; ALUAR(有效有效地址送地址寄存器地址送地址寄存器)到存儲(chǔ)器取數(shù)。到存儲(chǔ)器取數(shù)。ARAB, W/R=0, M/IO=1; DBDR;進(jìn)行加法運(yùn)算,結(jié)果送寄存器,并根據(jù)運(yùn)算結(jié)果置狀態(tài)位進(jìn)行加法運(yùn)算,結(jié)果送寄存器,并根據(jù)運(yùn)算結(jié)果置狀態(tài)位N,Z,V,C。rsGR, (rs)ALU, DRALU;A
18、LU進(jìn)行加法運(yùn)算;進(jìn)行加法運(yùn)算;rdGR, ALUrd, 置置NZVC狀態(tài)位。狀態(tài)位。操作碼rs,rdrs1Imm(或Disp)以上操作需要四個(gè)機(jī)器周期:取指令、計(jì)算地址、以上操作需要四個(gè)機(jī)器周期:取指令、計(jì)算地址、取數(shù)、運(yùn)算送結(jié)果。取指和取數(shù)通過總線訪問存取數(shù)、運(yùn)算送結(jié)果。取指和取數(shù)通過總線訪問存儲(chǔ)器,計(jì)算地址和送結(jié)果儲(chǔ)器,計(jì)算地址和送結(jié)果 在在CPU內(nèi)部操作,此時(shí)內(nèi)部操作,此時(shí)總線空閑??偩€空閑。0t1t2t3t4取指令計(jì)算地址取數(shù)運(yùn)算送結(jié)果(2) 條件轉(zhuǎn)移指令的執(zhí)行過程條件轉(zhuǎn)移指令的執(zhí)行過程指令功能:根據(jù)指令功能:根據(jù)N,Z,V,C的狀態(tài),決定是否轉(zhuǎn)換。的狀態(tài),決定是否轉(zhuǎn)換。如轉(zhuǎn)移條件成
19、立,則轉(zhuǎn)移到本條指令所指定的地址,如轉(zhuǎn)移條件成立,則轉(zhuǎn)移到本條指令所指定的地址,否則順序執(zhí)行下一條指令。否則順序執(zhí)行下一條指令。本條指令完成以下操作:本條指令完成以下操作:從存儲(chǔ)器取指令,送入指令寄存器,并進(jìn)行操作從存儲(chǔ)器取指令,送入指令寄存器,并進(jìn)行操作碼譯碼。碼譯碼。PC+1,如不轉(zhuǎn)移,即為下一條指令地址。,如不轉(zhuǎn)移,即為下一條指令地址。(本操作對(duì)所有指令都是相同的)(本操作對(duì)所有指令都是相同的)如轉(zhuǎn)移條件成立,根據(jù)指令規(guī)定的尋址方式計(jì)算如轉(zhuǎn)移條件成立,根據(jù)指令規(guī)定的尋址方式計(jì)算有效地址,轉(zhuǎn)移指令經(jīng)常采用相對(duì)尋址方式,此時(shí)有效地址,轉(zhuǎn)移指令經(jīng)常采用相對(duì)尋址方式,此時(shí)轉(zhuǎn)移地址轉(zhuǎn)移地址PC+d
20、isp。但。但PC在上一個(gè)機(jī)器周期已執(zhí)在上一個(gè)機(jī)器周期已執(zhí)行行PC+1操作,所以應(yīng)取原來的操作,所以應(yīng)取原來的PC。 本條指令只需要兩個(gè)機(jī)器周期。本條指令只需要兩個(gè)機(jī)器周期。(PC ALU,disp ALU, + ALU, ALU PC)某些計(jì)算機(jī)對(duì)條件轉(zhuǎn)移指令的功能規(guī)定為:先進(jìn)行比某些計(jì)算機(jī)對(duì)條件轉(zhuǎn)移指令的功能規(guī)定為:先進(jìn)行比較運(yùn)算,根據(jù)運(yùn)算較運(yùn)算,根據(jù)運(yùn)算(比較比較)結(jié)果置條件碼,并根據(jù)條件碼結(jié)果置條件碼,并根據(jù)條件碼決定是否轉(zhuǎn)移。完成這樣的功能顯然要增加周期數(shù)。決定是否轉(zhuǎn)移。完成這樣的功能顯然要增加周期數(shù)。其它指令的控制信號(hào)也按同樣方法分析,根據(jù)每條指其它指令的控制信號(hào)也按同樣方法分析,
21、根據(jù)每條指令的功能確定所需的機(jī)器周期數(shù),并得出每個(gè)機(jī)器周令的功能確定所需的機(jī)器周期數(shù),并得出每個(gè)機(jī)器周期所需要的控制信號(hào),最后將所有的控制信號(hào)進(jìn)行綜期所需要的控制信號(hào),最后將所有的控制信號(hào)進(jìn)行綜合簡化。合簡化??刂破鞯墓δ芫褪前疵織l指令的要求產(chǎn)生所需的控制控制器的功能就是按每條指令的要求產(chǎn)生所需的控制信號(hào)。信號(hào)。上面講到為什么需要控制信號(hào)及上面講到為什么需要控制信號(hào)及需要什么樣的控制信需要什么樣的控制信號(hào)號(hào),下面說明,下面說明如何產(chǎn)生控制信號(hào)如何產(chǎn)生控制信號(hào)。產(chǎn)生控制信號(hào)一般。產(chǎn)生控制信號(hào)一般有有微程序控制微程序控制和和硬布線控制硬布線控制兩種方法。兩種方法。6.2 微程序控制計(jì)算機(jī)的基本工作
22、原理微程序控制計(jì)算機(jī)的基本工作原理 6.2.1 微程序控制的基本概念微程序控制的基本概念在計(jì)算機(jī)中,一條指令的功能是通過按一定次序執(zhí)在計(jì)算機(jī)中,一條指令的功能是通過按一定次序執(zhí)行一系列基本操作完成的,這些基本操作稱為行一系列基本操作完成的,這些基本操作稱為微操微操作作。如前面所講的加法指令,分成取指、計(jì)算地址、。如前面所講的加法指令,分成取指、計(jì)算地址、取數(shù)、運(yùn)算送結(jié)果這取數(shù)、運(yùn)算送結(jié)果這4步完成,每一步實(shí)現(xiàn)若干個(gè)微步完成,每一步實(shí)現(xiàn)若干個(gè)微操作。操作。微指令微指令:在微程序控制的計(jì)算機(jī)中,將由同時(shí)發(fā)出:在微程序控制的計(jì)算機(jī)中,將由同時(shí)發(fā)出的控制信號(hào)所執(zhí)行的一組微操作稱為微指令,所以的控制信號(hào)
23、所執(zhí)行的一組微操作稱為微指令,所以微指令就是把同時(shí)發(fā)出的控制信號(hào)的有關(guān)信息匯集微指令就是把同時(shí)發(fā)出的控制信號(hào)的有關(guān)信息匯集起來而形成的起來而形成的。如上面的加法指令分成的。如上面的加法指令分成的4步,每一步,每一步就是一條微指令。將一條指令分成若干條微指令,步就是一條微指令。將一條指令分成若干條微指令,按次序執(zhí)行這些微指令,就可以實(shí)現(xiàn)指令的功能。按次序執(zhí)行這些微指令,就可以實(shí)現(xiàn)指令的功能。組成微指令的微操作,又稱微命令組成微指令的微操作,又稱微命令。微程序:計(jì)算機(jī)的程序由指令序列構(gòu)成,而計(jì)算機(jī)微程序:計(jì)算機(jī)的程序由指令序列構(gòu)成,而計(jì)算機(jī)每條指令的功能均由微指令序列解釋完成,這些每條指令的功能均
24、由微指令序列解釋完成,這些微微指令序列的集合指令序列的集合就叫做微程序。就叫做微程序??刂拼鎯?chǔ)器:微程序是存放在存儲(chǔ)器中的,由于該控制存儲(chǔ)器:微程序是存放在存儲(chǔ)器中的,由于該存儲(chǔ)器主要存放控制命令存儲(chǔ)器主要存放控制命令(信號(hào)信號(hào))與下一條執(zhí)行的微指與下一條執(zhí)行的微指令地址令地址(簡稱為下址簡稱為下址),所以被叫做控制存儲(chǔ)器。一般,所以被叫做控制存儲(chǔ)器。一般計(jì)算機(jī)指令系統(tǒng)是固定的,所以實(shí)現(xiàn)指令系統(tǒng)的計(jì)算機(jī)指令系統(tǒng)是固定的,所以實(shí)現(xiàn)指令系統(tǒng)的微微程序也是固定程序也是固定的,于是控制存儲(chǔ)器可以用只讀存儲(chǔ)的,于是控制存儲(chǔ)器可以用只讀存儲(chǔ)器實(shí)現(xiàn)??刂拼鎯?chǔ)器的字長比機(jī)器字長要長。器實(shí)現(xiàn)??刂拼鎯?chǔ)器的字長比
25、機(jī)器字長要長。執(zhí)行一條指令實(shí)際上就是執(zhí)行一條指令實(shí)際上就是執(zhí)行一段存放在控制存儲(chǔ)執(zhí)行一段存放在控制存儲(chǔ)器中的微程序器中的微程序。6.2.2 實(shí)現(xiàn)微程序控制的基本原理實(shí)現(xiàn)微程序控制的基本原理1. 控制信號(hào)控制信號(hào)將上一節(jié)講到的運(yùn)算器和控制器組合在一起,即為將上一節(jié)講到的運(yùn)算器和控制器組合在一起,即為圖圖6.6。本圖假設(shè)。本圖假設(shè)ALU可以進(jìn)行加可以進(jìn)行加(+)、減、減(-)、邏輯加、邏輯加()邏輯乘邏輯乘()四種運(yùn)算,圖中的控制信號(hào)用符號(hào)四種運(yùn)算,圖中的控制信號(hào)用符號(hào)1,2,3,表示,其意義見表表示,其意義見表6.1。仍以執(zhí)行一條加法指令為例,它由四條微指令解釋仍以執(zhí)行一條加法指令為例,它由四條
26、微指令解釋執(zhí)行,一條微指令中的所有控制信號(hào)是同時(shí)發(fā)出的。執(zhí)行,一條微指令中的所有控制信號(hào)是同時(shí)發(fā)出的。每條微指令所需的控制信號(hào)如下:每條微指令所需的控制信號(hào)如下:(1) 取指微指令取指微指令 指令地址送地址總線:指令地址送地址總線:PCAB(1)表表6.1 控制信號(hào)一覽表控制信號(hào)一覽表序號(hào)序號(hào)控制信號(hào)控制信號(hào)功能功能序號(hào)序號(hào)控制信號(hào)控制信號(hào)功能功能1PCAB指令地址送地址總線指令地址送地址總線13+ALU進(jìn)行加法運(yùn)算進(jìn)行加法運(yùn)算2ALUPC轉(zhuǎn)移地址送轉(zhuǎn)移地址送PC14-ALU進(jìn)行減法運(yùn)算進(jìn)行減法運(yùn)算3PC+1程序計(jì)數(shù)器加程序計(jì)數(shù)器加115ALU進(jìn)行邏輯乘運(yùn)算進(jìn)行邏輯乘運(yùn)算4imm(disp)A
27、LU立即數(shù)或位移量送立即數(shù)或位移量送ALU16ALU進(jìn)行邏輯加運(yùn)算進(jìn)行邏輯加運(yùn)算5DBIR取指到指令寄存器取指到指令寄存器17ALUGRALU運(yùn)算結(jié)果送通用寄存器運(yùn)算結(jié)果送通用寄存器6DBDR數(shù)據(jù)總線上的數(shù)據(jù)送數(shù)據(jù)數(shù)據(jù)總線上的數(shù)據(jù)送數(shù)據(jù)寄存器寄存器18ALUDRALU運(yùn)算結(jié)果送數(shù)據(jù)寄存器運(yùn)算結(jié)果送數(shù)據(jù)寄存器7DRDB數(shù)據(jù)寄存器中的數(shù)據(jù)送數(shù)數(shù)據(jù)寄存器中的數(shù)據(jù)送數(shù)據(jù)總線據(jù)總線19ALUARALU計(jì)算得的有效地址送地計(jì)算得的有效地址送地址寄存器址寄存器8rs1GR寄存器地址送通用寄存器寄存器地址送通用寄存器20ARAB地址寄存器內(nèi)容送地址總線地址寄存器內(nèi)容送地址總線9rs,rdGR寄存器地址送通用寄
28、存器寄存器地址送通用寄存器21ADS地址總線上地址有效地址總線上地址有效10(rs1)ALU寄存器內(nèi)容送寄存器內(nèi)容送ALU22M/IO訪問存儲(chǔ)器或訪問存儲(chǔ)器或I/O11(rs)ALU寄存器內(nèi)容送寄存器內(nèi)容送ALU23W/R寫或讀寫或讀12DRALU數(shù)據(jù)寄存器內(nèi)容送數(shù)據(jù)寄存器內(nèi)容送ALU圖圖6.6 CPU(運(yùn)算控制器)邏輯框圖(運(yùn)算控制器)邏輯框圖 發(fā)訪存控制命令:發(fā)訪存控制命令:ADS(21),MIO1(22),WR0(23)。從存儲(chǔ)器取指令送數(shù)據(jù)總線。從存儲(chǔ)器取指令送數(shù)據(jù)總線。 指令送指令寄存器:指令送指令寄存器:DBIR(5) 程序計(jì)數(shù)器程序計(jì)數(shù)器+1:PC+1(3)(2) 計(jì)算地址微指令
29、計(jì)算地址微指令 取兩個(gè)源操作數(shù)取兩個(gè)源操作數(shù)(計(jì)算地址用計(jì)算地址用):rs1GR(8),(rs1)ALU(10),dispALU(4)。 加法運(yùn)算:加法運(yùn)算:“+”(13)。 有效地址送地址寄存器:有效地址送地址寄存器:ALUAR(19)。(3) 取數(shù)微指令取數(shù)微指令 數(shù)據(jù)地址送地址總線:數(shù)據(jù)地址送地址總線:ARAB(20)。 發(fā)訪存控制命令:發(fā)訪存控制命令:ADS(21),MIO(22),W/R(23)。由存儲(chǔ)器將數(shù)據(jù)送數(shù)據(jù)總線。由存儲(chǔ)器將數(shù)據(jù)送數(shù)據(jù)總線DB。 數(shù)據(jù)送數(shù)據(jù)寄存器:數(shù)據(jù)送數(shù)據(jù)寄存器:DBDR(6)(4) 加法運(yùn)算和送結(jié)果微指令加法運(yùn)算和送結(jié)果微指令 兩源操作數(shù)送兩源操作數(shù)送AL
30、U:rsGR(9),(rs)ALU(11);DRALU(12)。 加法運(yùn)算:加法運(yùn)算:“+”(13) 送結(jié)果:送結(jié)果:ALUGR(17)如何產(chǎn)生上述控制信號(hào)?如何產(chǎn)生上述控制信號(hào)?微指令最簡單的組成形式是將每個(gè)控制信號(hào)用一個(gè)控制位來表微指令最簡單的組成形式是將每個(gè)控制信號(hào)用一個(gè)控制位來表示,示,1為有控制信號(hào),為有控制信號(hào),0反之。圖反之。圖6.6共有共有23個(gè)控制信號(hào),所以個(gè)控制信號(hào),所以共有共有23個(gè)控制位,如控制存儲(chǔ)器容量為個(gè)控制位,如控制存儲(chǔ)器容量為4K,則微指令還需,則微指令還需12位來表示下址。實(shí)際的計(jì)算機(jī)控制信號(hào)位比上例要大得多,控位來表示下址。實(shí)際的計(jì)算機(jī)控制信號(hào)位比上例要大得
31、多,控制存儲(chǔ)器容量也大,因此微指令字長通常在制存儲(chǔ)器容量也大,因此微指令字長通常在100位以上。位以上。圖圖6.7為加法指令的四條微指令編碼,每一小格表示一位為加法指令的四條微指令編碼,每一小格表示一位(二進(jìn)二進(jìn)制制),空格表示,空格表示0,第,第24位到第位到第35位為下址。位為下址。微程序也可以用流程圖來表示微程序也可以用流程圖來表示(圖圖6.8)。圖中每一方框表示一條。圖中每一方框表示一條微指令,方框上方表示的是該條微指令的地址,方框內(nèi)為執(zhí)行微指令,方框上方表示的是該條微指令的地址,方框內(nèi)為執(zhí)行的操作,在其右下角為下一條要執(zhí)行的微指令的地址,表示在的操作,在其右下角為下一條要執(zhí)行的微指令
32、的地址,表示在微指令的下址字段中微指令的下址字段中(見圖見圖6.7)。取指微指令的操作對(duì)所有的指。取指微指令的操作對(duì)所有的指令都是相同的。所以是一條公用的微指令,其下址由操作碼譯令都是相同的。所以是一條公用的微指令,其下址由操作碼譯碼產(chǎn)生。碼產(chǎn)生。圖圖6.7 加法指令的微指令編碼加法指令的微指令編碼圖圖6.8 微程序流程圖舉例微程序流程圖舉例2. 微程序控制器微程序控制器微程序控制器如圖微程序控制器如圖6.9所示。圖中的控制存儲(chǔ)器與微指所示。圖中的控制存儲(chǔ)器與微指令寄存器替代了圖令寄存器替代了圖6.6中的時(shí)序控制信號(hào)形成部件。中的時(shí)序控制信號(hào)形成部件。其基本工作原理如下:當(dāng)指令取入其基本工作原
33、理如下:當(dāng)指令取入IR后,根據(jù)操作碼后,根據(jù)操作碼進(jìn)行譯碼,得到相應(yīng)指令的每一條微指令的地址。以進(jìn)行譯碼,得到相應(yīng)指令的每一條微指令的地址。以后都由微指令的下址字段指出下一條微指令的地址。后都由微指令的下址字段指出下一條微指令的地址。指令譯碼可用只讀存儲(chǔ)器組成,將操作碼作為只讀存指令譯碼可用只讀存儲(chǔ)器組成,將操作碼作為只讀存儲(chǔ)器的輸入地址,該單元的內(nèi)容即為相應(yīng)的微指令在儲(chǔ)器的輸入地址,該單元的內(nèi)容即為相應(yīng)的微指令在控制存儲(chǔ)器中的地址,根據(jù)此地址從控制存儲(chǔ)器取出控制存儲(chǔ)器中的地址,根據(jù)此地址從控制存儲(chǔ)器取出微指令,并將它存放在微指令寄存器中。微指令,并將它存放在微指令寄存器中。微指令分成兩部分,
34、產(chǎn)生控制信號(hào)的部分一般稱為控微指令分成兩部分,產(chǎn)生控制信號(hào)的部分一般稱為控制字段,產(chǎn)生下址的部分稱為下址字段。制字段,產(chǎn)生下址的部分稱為下址字段。控制字段各控制字段各位的輸出通過連接線直接與受控制的門相連位的輸出通過連接線直接與受控制的門相連,于是就,于是就提供了在本節(jié)所提出的控制信號(hào),提供了在本節(jié)所提出的控制信號(hào),圖圖6.9 微程序控制器簡框圖微程序控制器簡框圖 3. 時(shí)序信號(hào)及工作脈沖的形成時(shí)序信號(hào)及工作脈沖的形成在圖在圖6.6中,沒有畫出使一些寄存器(指令寄存器等)中,沒有畫出使一些寄存器(指令寄存器等)接收數(shù)據(jù)或計(jì)數(shù)的工作脈沖(打入脈沖),這些脈接收數(shù)據(jù)或計(jì)數(shù)的工作脈沖(打入脈沖),這
35、些脈沖如何形成的?另外沖如何形成的?另外CLK、T1、T2等信號(hào)是如何產(chǎn)等信號(hào)是如何產(chǎn)生的?生的?首先討論圖首先討論圖6.5中的中的CLK及及T1,T2是怎樣產(chǎn)生的,分是怎樣產(chǎn)生的,分析它們之間的關(guān)系,可以知道析它們之間的關(guān)系,可以知道CLK2經(jīng)過二分頻得到經(jīng)過二分頻得到CLK,再將,再將CLK分頻得到分頻得到T1。而。而T2可從可從T1反相得到反相得到。一般利用觸發(fā)器電路進(jìn)行分頻,因此從觸發(fā)器的另一般利用觸發(fā)器電路進(jìn)行分頻,因此從觸發(fā)器的另一端輸出即為一端輸出即為T2。圖。圖6.10畫出了產(chǎn)生畫出了產(chǎn)生CLK和和T1,T2信信號(hào)的二分頻電路及其波形圖。號(hào)的二分頻電路及其波形圖。 圖圖6.12
36、 時(shí)序信號(hào)及工作脈沖時(shí)序信號(hào)及工作脈沖 前面曾假設(shè)一個(gè)機(jī)器周期由前面曾假設(shè)一個(gè)機(jī)器周期由T1和和T2組成,在組成,在T2的末尾需的末尾需要產(chǎn)生一個(gè)工作脈沖要產(chǎn)生一個(gè)工作脈沖CP來保存計(jì)算結(jié)果或接收傳送的來保存計(jì)算結(jié)果或接收傳送的數(shù)據(jù)及指令等。例如,在第一個(gè)機(jī)器周期的末尾要將從數(shù)據(jù)及指令等。例如,在第一個(gè)機(jī)器周期的末尾要將從存儲(chǔ)器取來的指令送入指令寄存器,并完成程序計(jì)數(shù)器存儲(chǔ)器取來的指令送入指令寄存器,并完成程序計(jì)數(shù)器加加1的操作。在圖的操作。在圖6.10中畫出的工作脈沖中畫出的工作脈沖CP可用邏輯式可用邏輯式表示如下:表示如下:CPT2CLKCLK2(6.1)同樣將上述一些信號(hào)組合可以得到我們
37、想得到的任意時(shí)同樣將上述一些信號(hào)組合可以得到我們想得到的任意時(shí)序脈沖。如利用一個(gè)與門實(shí)現(xiàn)序脈沖。如利用一個(gè)與門實(shí)現(xiàn)CP1T1CLKCLK2功能功能可在可在T1末尾得到另一個(gè)工作脈沖,則末尾得到另一個(gè)工作脈沖,則CP+CP1=CLKCLK2在一個(gè)機(jī)器周期內(nèi)設(shè)置一個(gè)或多個(gè)工作脈沖?機(jī)器周期在一個(gè)機(jī)器周期內(nèi)設(shè)置一個(gè)或多個(gè)工作脈沖?機(jī)器周期多長,由設(shè)計(jì)者根據(jù)邏輯設(shè)計(jì)和電路性能決定。多長,由設(shè)計(jì)者根據(jù)邏輯設(shè)計(jì)和電路性能決定。寄存器的打入脈沖是如何形成的寄存器的打入脈沖是如何形成的?例如,在取指周期,要將指令送入指令寄存器,并將程序計(jì)數(shù)例如,在取指周期,要將指令送入指令寄存器,并將程序計(jì)數(shù)器的內(nèi)容加器的內(nèi)
38、容加1,從圖,從圖6.7可見,此時(shí)微指令的控制位可見,此時(shí)微指令的控制位DBIR和和PC+1為為“1”,因此采用,因此采用“與與”門,如下圖門,如下圖(a)和下圖和下圖 (b)所示即所示即可形成可形成IR和和PC的打入脈沖的打入脈沖(CP-IR和和CP-PC)。每個(gè)機(jī)器周期都要更新的寄存器可直接利用每個(gè)機(jī)器周期都要更新的寄存器可直接利用CP作打入脈沖。如作打入脈沖。如微指令寄存器,每個(gè)機(jī)器周期要完成一條微指令,所以每個(gè)機(jī)微指令寄存器,每個(gè)機(jī)器周期要完成一條微指令,所以每個(gè)機(jī)器周期都要從控制存儲(chǔ)器中取出一條微指令,并將它卷入微指器周期都要從控制存儲(chǔ)器中取出一條微指令,并將它卷入微指令寄存器中,可
39、直接利用令寄存器中,可直接利用CP作為打入脈沖。作為打入脈沖。計(jì)算機(jī)內(nèi)所有寄存器和觸發(fā)器接受信息都需要有打入脈沖,都計(jì)算機(jī)內(nèi)所有寄存器和觸發(fā)器接受信息都需要有打入脈沖,都可以用類似的方法產(chǎn)生??梢杂妙愃频姆椒óa(chǎn)生。有些信號(hào),例如有些信號(hào),例如ADS,僅在,僅在T1時(shí)間起作用,可利用微指令控制時(shí)間起作用,可利用微指令控制位位ADS和和T1相相“與與”,即可得到,即可得到ADS如下圖如下圖(c)所示。所示。圖圖 CP-IR、CP-PC和和ADS信號(hào)的形成信號(hào)的形成4. 電路配合中的常見問題電路配合中的常見問題(1) 電路延遲引起的波形畸變電路延遲引起的波形畸變信號(hào)通過邏輯電路時(shí),由于電路內(nèi)部的原因
40、以及寄生參數(shù)信號(hào)通過邏輯電路時(shí),由于電路內(nèi)部的原因以及寄生參數(shù)(如寄生如寄生電容電容)的影響,可能產(chǎn)生不期望的信號(hào)畸變或的影響,可能產(chǎn)生不期望的信號(hào)畸變或“毛刺毛刺”。如圖。如圖6.11所示的所示的“符合符合”電路電路 。因?yàn)?。因?yàn)锳B比比AB多經(jīng)過一個(gè)門,造成延遲多經(jīng)過一個(gè)門,造成延遲引起在輸出端產(chǎn)生一個(gè)脈沖。即使信號(hào)經(jīng)過的門的數(shù)量(級(jí)數(shù))引起在輸出端產(chǎn)生一個(gè)脈沖。即使信號(hào)經(jīng)過的門的數(shù)量(級(jí)數(shù))相等,但經(jīng)過途徑不同,也可以產(chǎn)生毛刺。相等,但經(jīng)過途徑不同,也可以產(chǎn)生毛刺。圖圖6.12 延遲引起的毛刺延遲引起的毛刺 圖圖6.12(a)是一個(gè)分頻電路,由觸發(fā)器和是一個(gè)分頻電路,由觸發(fā)器和“與與”門
41、組成。如觸發(fā)器無延遲,則在門組成。如觸發(fā)器無延遲,則在與門的輸出端可得到寬度與與門的輸出端可得到寬度與CLK相同、頻率降低一半的相同、頻率降低一半的CLKA脈沖;但若觸發(fā)脈沖;但若觸發(fā)器有延遲,其輸出波形為器有延遲,其輸出波形為Q,則在,則在“與與”門的輸出端的波形將如門的輸出端的波形將如CLKA所示,所示,使信號(hào)寬度變窄,又產(chǎn)生使信號(hào)寬度變窄,又產(chǎn)生“毛刺毛刺”。這樣的電路會(huì)引起計(jì)算機(jī)操作錯(cuò)誤。這樣的電路會(huì)引起計(jì)算機(jī)操作錯(cuò)誤。(2) 機(jī)器周期的確定機(jī)器周期的確定一條微指令要完成若干個(gè)微操作,每個(gè)微操作都應(yīng)一條微指令要完成若干個(gè)微操作,每個(gè)微操作都應(yīng)在一個(gè)機(jī)器周期內(nèi)完成,即機(jī)器周期大于或等于執(zhí)
42、在一個(gè)機(jī)器周期內(nèi)完成,即機(jī)器周期大于或等于執(zhí)行時(shí)間最長的微操作時(shí)間。一般來說訪問存儲(chǔ)器的行時(shí)間最長的微操作時(shí)間。一般來說訪問存儲(chǔ)器的微操作時(shí)間較長,一次算術(shù)運(yùn)算所需時(shí)間次之。機(jī)微操作時(shí)間較長,一次算術(shù)運(yùn)算所需時(shí)間次之。機(jī)器周期對(duì)機(jī)器速度影響很大,是計(jì)算機(jī)的主要指標(biāo)器周期對(duì)機(jī)器速度影響很大,是計(jì)算機(jī)的主要指標(biāo)之一。之一。 在圖在圖6.5的波形圖中,有一個(gè)的波形圖中,有一個(gè)ready信號(hào),它是信號(hào),它是CPU訪訪問存儲(chǔ)器時(shí),由存儲(chǔ)器送回問存儲(chǔ)器時(shí),由存儲(chǔ)器送回CPU的回答信號(hào),這是的回答信號(hào),這是考慮到存儲(chǔ)器的速度可能與考慮到存儲(chǔ)器的速度可能與CPU不一致,假如存儲(chǔ)不一致,假如存儲(chǔ)器的速度較低,則
43、器的速度較低,則ready信號(hào)出現(xiàn)較晚,信號(hào)出現(xiàn)較晚,CPU將延長將延長一個(gè)或一個(gè)以上一個(gè)或一個(gè)以上T2節(jié)拍信號(hào)。節(jié)拍信號(hào)。(3) 時(shí)鐘脈沖時(shí)鐘脈沖CLK和工作脈沖和工作脈沖CP的標(biāo)準(zhǔn)性的標(biāo)準(zhǔn)性CLK和和CP是控制全機(jī)工作的脈沖,因此對(duì)它的幅度是控制全機(jī)工作的脈沖,因此對(duì)它的幅度及寬度要求是很嚴(yán)格的。及寬度要求是很嚴(yán)格的。CP主要作為寄存器和觸發(fā)主要作為寄存器和觸發(fā)電路的打入脈沖。例如,有電路的打入脈沖。例如,有A,B,C三個(gè)觸發(fā)器,三個(gè)觸發(fā)器,當(dāng)滿足條件當(dāng)滿足條件cond時(shí),將時(shí),將A觸發(fā)器內(nèi)容送觸發(fā)器內(nèi)容送B,同時(shí)將原,同時(shí)將原B觸發(fā)器內(nèi)容送觸發(fā)器內(nèi)容送C。對(duì)。對(duì)CP的控制有兩種方式:一種
44、方的控制有兩種方式:一種方式是控制式是控制CP-B與與CP-C信號(hào)如圖信號(hào)如圖6.13(a)所示,當(dāng)滿足所示,當(dāng)滿足cond條件時(shí),才產(chǎn)生條件時(shí),才產(chǎn)生CP-B和和CP-C信號(hào)。另一種方式信號(hào)。另一種方式是是CP脈沖不受控制,總是作用在觸發(fā)器上,但當(dāng)條脈沖不受控制,總是作用在觸發(fā)器上,但當(dāng)條件不成立時(shí),使觸發(fā)器處于保持狀態(tài)件不成立時(shí),使觸發(fā)器處于保持狀態(tài)(即維持原狀態(tài)即維持原狀態(tài)不變不變),而當(dāng)條件成立時(shí),接受新狀態(tài)如圖,而當(dāng)條件成立時(shí),接受新狀態(tài)如圖6.13(b)所所示。示。圖圖6.13 觸發(fā)器之間傳送信息的電路觸發(fā)器之間傳送信息的電路觸發(fā)器觸發(fā)器A,B,C是具有維持阻塞功能的是具有維持阻塞
45、功能的D型觸發(fā)器。型觸發(fā)器。在圖在圖6.13中假設(shè)中假設(shè)CP-B與與CP-C是同時(shí)作用的脈沖,因是同時(shí)作用的脈沖,因此能可靠傳送數(shù)據(jù),但假如此能可靠傳送數(shù)據(jù),但假如CP-B比比CP-C來得早,那來得早,那么有可能將么有可能將B觸發(fā)器剛接收的新數(shù)據(jù)傳送到觸發(fā)器剛接收的新數(shù)據(jù)傳送到C觸發(fā)器。觸發(fā)器。在圖在圖6.13(a)中,中,CP-B和和CP-C不是來自同一處,假如不是來自同一處,假如設(shè)計(jì)時(shí)不注意這一問題,就可能產(chǎn)生設(shè)計(jì)時(shí)不注意這一問題,就可能產(chǎn)生CP-B早于早于CP-C的情況。在控制打入脈沖的機(jī)器中,總是的情況。在控制打入脈沖的機(jī)器中,總是盡量將盡量將CP信號(hào)送到控制門的最后一級(jí)信號(hào)送到控制門
46、的最后一級(jí)。例如,圖。例如,圖6.14(a)與與(b)都能實(shí)現(xiàn)都能實(shí)現(xiàn)F=ABCDECP的功能,但在圖的功能,但在圖6.14(a)中,中,CP所經(jīng)過的門比圖所經(jīng)過的門比圖6.14(b)少一級(jí),所以圖少一級(jí),所以圖6.14(a)的的電路比圖電路比圖6.14(b)為好。為好。 圖圖6.14 CP脈沖在電路中的安排脈沖在電路中的安排 圖圖6.13(b)利用時(shí)鐘脈沖利用時(shí)鐘脈沖CP直接作為觸發(fā)器的打入脈沖,直接作為觸發(fā)器的打入脈沖,提高了可靠性提高了可靠性,但是增加了電路的復(fù)雜性,因?yàn)樵谀承?,但是增加了電路的?fù)雜性,因?yàn)樵谀承┣闆r下,要保持原觸發(fā)器狀態(tài)不變。另外也要看到,在情況下,要保持原觸發(fā)器狀態(tài)不
47、變。另外也要看到,在這種計(jì)算機(jī)中這種計(jì)算機(jī)中CP的負(fù)載一定很重的負(fù)載一定很重,實(shí)際上要用若干個(gè),實(shí)際上要用若干個(gè)驅(qū)動(dòng)電路并行工作如圖驅(qū)動(dòng)電路并行工作如圖6.15所示。各所示。各CLKi(i1,2,3,)之間的波形不會(huì)完全相同,但由于它們經(jīng)過的門的之間的波形不會(huì)完全相同,但由于它們經(jīng)過的門的級(jí)數(shù)相同,而且在同一芯片內(nèi)部,所以相差不大,又由級(jí)數(shù)相同,而且在同一芯片內(nèi)部,所以相差不大,又由于寄存器或觸發(fā)器的狀態(tài)變化有一定的延遲時(shí)間,因此于寄存器或觸發(fā)器的狀態(tài)變化有一定的延遲時(shí)間,因此允許允許CLKi在一定范圍內(nèi)變化。如圖在一定范圍內(nèi)變化。如圖6.15的電路由多個(gè)芯的電路由多個(gè)芯片組成,則要選擇性能相
48、同的芯片。片組成,則要選擇性能相同的芯片。經(jīng)過多級(jí)門的時(shí)鐘脈沖,還可能改變脈沖寬度。例如,經(jīng)過多級(jí)門的時(shí)鐘脈沖,還可能改變脈沖寬度。例如,TTL電路的輸出波形,上升邊較緩,下降邊較陡,假如電路的輸出波形,上升邊較緩,下降邊較陡,假如各級(jí)門負(fù)載不同,會(huì)導(dǎo)致脈沖寬度增加或減少。在傳送各級(jí)門負(fù)載不同,會(huì)導(dǎo)致脈沖寬度增加或減少。在傳送CLK的線上或產(chǎn)生打入脈沖的信號(hào)線上不允許出現(xiàn)的線上或產(chǎn)生打入脈沖的信號(hào)線上不允許出現(xiàn)“毛毛刺刺”,否則將引起誤動(dòng)作。,否則將引起誤動(dòng)作。圖圖6.15 負(fù)載很重情況下的電路負(fù)載很重情況下的電路 5. 微程序控制計(jì)算機(jī)的工作過程簡單的總結(jié)微程序控制計(jì)算機(jī)的工作過程簡單的總結(jié)
49、(參閱圖參閱圖6.6)機(jī)器加電后,首先由機(jī)器加電后,首先由reset信號(hào)在信號(hào)在PC內(nèi)置入開機(jī)后執(zhí)內(nèi)置入開機(jī)后執(zhí)行的第一條指令的地址,同時(shí)在微指令寄存器內(nèi)置入行的第一條指令的地址,同時(shí)在微指令寄存器內(nèi)置入一條一條“取指取指”微指令,并將其他一些有關(guān)的狀態(tài)位或微指令,并將其他一些有關(guān)的狀態(tài)位或寄存器置于初始狀態(tài)。當(dāng)電壓達(dá)到穩(wěn)定值后,自動(dòng)啟寄存器置于初始狀態(tài)。當(dāng)電壓達(dá)到穩(wěn)定值后,自動(dòng)啟動(dòng)機(jī)器工作,產(chǎn)生節(jié)拍電位動(dòng)機(jī)器工作,產(chǎn)生節(jié)拍電位T1,T2和和CP。為保證機(jī)。為保證機(jī)器正常工作,必須由電路保證開機(jī)工作后第一個(gè)機(jī)器器正常工作,必須由電路保證開機(jī)工作后第一個(gè)機(jī)器周期信號(hào)的完整性,在該周期的末尾,產(chǎn)生
50、開機(jī)后第周期信號(hào)的完整性,在該周期的末尾,產(chǎn)生開機(jī)后第一個(gè)工作脈沖一個(gè)工作脈沖CP。然后機(jī)器開始執(zhí)行程序,不斷地。然后機(jī)器開始執(zhí)行程序,不斷地取出指令、分析指令、執(zhí)行指令。取出指令、分析指令、執(zhí)行指令。 程序可以存放在固定存儲(chǔ)器中,也可以利用一小段引程序可以存放在固定存儲(chǔ)器中,也可以利用一小段引導(dǎo)程序?qū)С绦?在固存中在固存中)將要執(zhí)行的程序和數(shù)據(jù)從外部設(shè)備將要執(zhí)行的程序和數(shù)據(jù)從外部設(shè)備調(diào)入主存。實(shí)現(xiàn)各條指令的微程序是存放在調(diào)入主存。實(shí)現(xiàn)各條指令的微程序是存放在微程序控微程序控制器制器中的。當(dāng)前正在執(zhí)行的微指令從微程序控制器中中的。當(dāng)前正在執(zhí)行的微指令從微程序控制器中取出后放在微指令寄存器中,由
51、微指令的控制字段中取出后放在微指令寄存器中,由微指令的控制字段中的各位直接控制信息和數(shù)據(jù)的傳送,并進(jìn)行相應(yīng)的處的各位直接控制信息和數(shù)據(jù)的傳送,并進(jìn)行相應(yīng)的處理。當(dāng)遇到停機(jī)指令或外來停機(jī)命令時(shí),應(yīng)該待當(dāng)前理。當(dāng)遇到停機(jī)指令或外來停機(jī)命令時(shí),應(yīng)該待當(dāng)前這條指令執(zhí)行完再停機(jī)或至少在本機(jī)器周期結(jié)束時(shí)再這條指令執(zhí)行完再停機(jī)或至少在本機(jī)器周期結(jié)束時(shí)再停機(jī)。在停機(jī)后重新啟動(dòng)要保證機(jī)器繼續(xù)工作且不出停機(jī)。在停機(jī)后重新啟動(dòng)要保證機(jī)器繼續(xù)工作且不出任何錯(cuò)誤。任何錯(cuò)誤。 停機(jī)與停電是兩個(gè)不同的概念,停機(jī)時(shí)電壓仍維持正停機(jī)與停電是兩個(gè)不同的概念,停機(jī)時(shí)電壓仍維持正常,因此寄存器與存儲(chǔ)器仍保持信息不變,重新啟動(dòng)常,因此
52、寄存器與存儲(chǔ)器仍保持信息不變,重新啟動(dòng)后從程序停頓處后從程序停頓處(稱為斷點(diǎn)稱為斷點(diǎn))繼續(xù)執(zhí)行下去。而停電后繼續(xù)執(zhí)行下去。而停電后情況大不相同,此時(shí)寄存器與存儲(chǔ)器的內(nèi)容已消失,情況大不相同,此時(shí)寄存器與存儲(chǔ)器的內(nèi)容已消失,加電后產(chǎn)生的加電后產(chǎn)生的reset信號(hào),使機(jī)器從固定入口重新開始信號(hào),使機(jī)器從固定入口重新開始運(yùn)行。某些機(jī)器不設(shè)停機(jī)指令,而是不斷循環(huán)執(zhí)行一運(yùn)行。某些機(jī)器不設(shè)停機(jī)指令,而是不斷循環(huán)執(zhí)行一條或幾條無實(shí)質(zhì)內(nèi)容的指令實(shí)現(xiàn)動(dòng)態(tài)停機(jī)。此時(shí)一般條或幾條無實(shí)質(zhì)內(nèi)容的指令實(shí)現(xiàn)動(dòng)態(tài)停機(jī)。此時(shí)一般依靠外來中斷請(qǐng)求信號(hào),啟動(dòng)機(jī)器繼續(xù)工作。依靠外來中斷請(qǐng)求信號(hào),啟動(dòng)機(jī)器繼續(xù)工作。某些機(jī)器具有停電后自
53、動(dòng)再啟動(dòng)功能。這種工作方式某些機(jī)器具有停電后自動(dòng)再啟動(dòng)功能。這種工作方式適用于電源有故障或短時(shí)間內(nèi)交流電壓不穩(wěn)定的情況,適用于電源有故障或短時(shí)間內(nèi)交流電壓不穩(wěn)定的情況,在無人操作的情況下還能保證機(jī)器繼續(xù)工作。而更為在無人操作的情況下還能保證機(jī)器繼續(xù)工作。而更為一般的工作方式是在人工操作下讓機(jī)器重新開始工作。一般的工作方式是在人工操作下讓機(jī)器重新開始工作。6.3 微程序設(shè)計(jì)技術(shù)微程序設(shè)計(jì)技術(shù)在上節(jié)中講述了微程序控制計(jì)算機(jī)的基本工作原理,目的是說在上節(jié)中講述了微程序控制計(jì)算機(jī)的基本工作原理,目的是說明在計(jì)算機(jī)中程序是如何實(shí)現(xiàn)的以及控制器的功能。在實(shí)際進(jìn)明在計(jì)算機(jī)中程序是如何實(shí)現(xiàn)的以及控制器的功能。
54、在實(shí)際進(jìn)行微程序設(shè)計(jì)時(shí),還應(yīng)關(guān)心下面行微程序設(shè)計(jì)時(shí),還應(yīng)關(guān)心下面3個(gè)問題:個(gè)問題:如何縮短微指令字長如何縮短微指令字長如何減少微程序長度如何減少微程序長度如何提高微程序的執(zhí)行速度如何提高微程序的執(zhí)行速度6.3.1 微指令控制字段的編譯法微指令控制字段的編譯法1. 直接控制法直接控制法在微指令的控制字段中,每一位代表一個(gè)微命令,在設(shè)計(jì)微指在微指令的控制字段中,每一位代表一個(gè)微命令,在設(shè)計(jì)微指令時(shí),是否發(fā)出某個(gè)微命令,只要將控制字段中相應(yīng)位置成令時(shí),是否發(fā)出某個(gè)微命令,只要將控制字段中相應(yīng)位置成“1”或或“0”,這樣就可打開或關(guān)閉某個(gè)控制門,這就是直接控,這樣就可打開或關(guān)閉某個(gè)控制門,這就是直接控
55、制法,在制法,在6.2節(jié)中所講的就是這種方法。但在某些復(fù)雜的計(jì)算機(jī)節(jié)中所講的就是這種方法。但在某些復(fù)雜的計(jì)算機(jī)中,微命令甚至可多達(dá)三四百個(gè),這使微指令字長達(dá)到難以接中,微命令甚至可多達(dá)三四百個(gè),這使微指令字長達(dá)到難以接受的地步,并要求機(jī)器有大容量控制存儲(chǔ)器,為了改進(jìn)設(shè)計(jì)出受的地步,并要求機(jī)器有大容量控制存儲(chǔ)器,為了改進(jìn)設(shè)計(jì)出現(xiàn)了以下各種編譯法?,F(xiàn)了以下各種編譯法。 2. 字段直接編譯法字段直接編譯法在計(jì)算機(jī)中的各個(gè)控制門,在任一微周期內(nèi),不可在計(jì)算機(jī)中的各個(gè)控制門,在任一微周期內(nèi),不可能同時(shí)被打開,而且大部分是關(guān)閉的能同時(shí)被打開,而且大部分是關(guān)閉的(即相應(yīng)的控制即相應(yīng)的控制位為位為“0”)。所
56、謂微周期,指的是一條微指令所需的。所謂微周期,指的是一條微指令所需的執(zhí)行時(shí)間。如果有若干個(gè)執(zhí)行時(shí)間。如果有若干個(gè)(一組一組)微命令,在每次選擇微命令,在每次選擇使用它們的微周期內(nèi),只有一個(gè)微命令起作用,那使用它們的微周期內(nèi),只有一個(gè)微命令起作用,那么這若干個(gè)微命令是互斥的。選出互斥的微命令,么這若干個(gè)微命令是互斥的。選出互斥的微命令,并將這些微命令編成一組,成為微指令字的一個(gè)字并將這些微命令編成一組,成為微指令字的一個(gè)字段,用二進(jìn)制編碼來表示。而在微指令寄存器的輸段,用二進(jìn)制編碼來表示。而在微指令寄存器的輸出端,為該字段增加一個(gè)譯碼器,該譯碼器的輸出出端,為該字段增加一個(gè)譯碼器,該譯碼器的輸出
57、即為原來的微命令即為原來的微命令(圖圖6.16)。 圖圖6.16 字段直接編譯法字段直接編譯法字段長度與所能表示的微命令數(shù)的關(guān)系如下:字段長度與所能表示的微命令數(shù)的關(guān)系如下: 字段長度字段長度 微命令數(shù)微命令數(shù)2位位233位位474位位815一般每個(gè)字段要留出一個(gè)代碼,表示本段不發(fā)出任一般每個(gè)字段要留出一個(gè)代碼,表示本段不發(fā)出任何微命令,因此當(dāng)字段長度為何微命令,因此當(dāng)字段長度為3位時(shí),最多只能表示位時(shí),最多只能表示7個(gè)互斥的微命令,通常代碼個(gè)互斥的微命令,通常代碼000表示不發(fā)微命令。表示不發(fā)微命令。這樣看來,表示這樣看來,表示7個(gè)互斥的微命令只需要個(gè)互斥的微命令只需要3位,比原位,比原來的
58、來的7位減少了位減少了4位。位。3. 字段間接編譯法字段間接編譯法字段間接編譯法是在字段直接編譯法的基礎(chǔ)上,進(jìn)字段間接編譯法是在字段直接編譯法的基礎(chǔ)上,進(jìn)一步縮短微指令字長的一種編譯法。如果在字段直一步縮短微指令字長的一種編譯法。如果在字段直接編譯法中,接編譯法中,還規(guī)定一個(gè)字段的某些微命令,要兼還規(guī)定一個(gè)字段的某些微命令,要兼由另一字段中的某些微命令來解釋,稱為字段間接由另一字段中的某些微命令來解釋,稱為字段間接編譯法編譯法。如圖。如圖6.17所示。所示。本方法進(jìn)一步減少了指令長度,但很可能會(huì)削弱微本方法進(jìn)一步減少了指令長度,但很可能會(huì)削弱微指令的并行控制能力,因此通常只作為直接編譯法指令的
59、并行控制能力,因此通常只作為直接編譯法的一種輔助手段。的一種輔助手段。圖圖6.17 字段間接編譯法字段間接編譯法4. 常數(shù)源字段常數(shù)源字段E在微指令中,一般設(shè)有一個(gè)常數(shù)源字段在微指令中,一般設(shè)有一個(gè)常數(shù)源字段E,就如指令,就如指令中的直接操作數(shù)一樣。中的直接操作數(shù)一樣。E字段一般僅有幾位,用來給字段一般僅有幾位,用來給某些部件發(fā)送常數(shù),故有時(shí)稱為發(fā)射字段。該常數(shù)某些部件發(fā)送常數(shù),故有時(shí)稱為發(fā)射字段。該常數(shù)有時(shí)作為操作數(shù)送入有時(shí)作為操作數(shù)送入ALU運(yùn)算;有時(shí)作為計(jì)算器初運(yùn)算;有時(shí)作為計(jì)算器初值,用來控制微程序的循環(huán)次數(shù)等。值,用來控制微程序的循環(huán)次數(shù)等。6.3.2 微程序流的控制微程序流的控制
60、當(dāng)前正在執(zhí)行的微指令,稱為當(dāng)前正在執(zhí)行的微指令,稱為現(xiàn)行微指令現(xiàn)行微指令,現(xiàn)行微指,現(xiàn)行微指令所在的控制存儲(chǔ)器單元的地址稱為令所在的控制存儲(chǔ)器單元的地址稱為現(xiàn)行微地址現(xiàn)行微地址,現(xiàn),現(xiàn)行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令稱為行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令稱為后后繼微指令繼微指令,后繼微指令所在的控存單元地址稱為,后繼微指令所在的控存單元地址稱為后繼后繼微地址微地址。所謂微程序流的控制是指當(dāng)前微指令執(zhí)行完。所謂微程序流的控制是指當(dāng)前微指令執(zhí)行完畢后,畢后,怎樣控制產(chǎn)生后繼微指令的微地址怎樣控制產(chǎn)生后繼微指令的微地址。在上一節(jié)。在上一節(jié)中,我們已經(jīng)講到產(chǎn)生后繼微指令地址的兩種方法:中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【2021屆備考】2021屆全國名校生物試題分類解析匯編第六期(11月)-D單元-細(xì)胞的生命歷程
- 【名師一號(hào)】2020-2021學(xué)年高中生物(人教版)必修三雙基限時(shí)練15-生態(tài)系統(tǒng)的能量流動(dòng)
- 2021高一物理-1.2-運(yùn)動(dòng)的合成與分解-每課一練1(教科版必修2)
- 【語法突破-師說】2021高考(人教版)英語全程復(fù)習(xí)構(gòu)想-課時(shí)訓(xùn)練53-專題十三-數(shù)詞與主謂一致
- 河北省保定市四縣一中2024-2025學(xué)年高二上學(xué)期12月聯(lián)考化學(xué)試題 (含答案)
- 2021年高考英語考點(diǎn)總動(dòng)員系列-專題05-動(dòng)詞和動(dòng)詞短語(解析版)
- 【全程復(fù)習(xí)方略】2020年北師版數(shù)學(xué)文(陜西用)課時(shí)作業(yè):第十章-第一節(jié)隨機(jī)事件的概率
- 【中學(xué)教材全解】2020-2021學(xué)年人教版高中物理必修2-第7章-第2節(jié)-功備課資料素材庫
- 【名師一號(hào)】2021高考化學(xué)(蘇教版)一輪復(fù)習(xí)考點(diǎn)突破:5-3微粒之間的相互作用力和物質(zhì)的多樣性
- 大學(xué)生畢業(yè)實(shí)習(xí)報(bào)告(15篇)
- 辦公大樓物業(yè)服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 中國國家標(biāo)準(zhǔn)英文翻譯指南
- 高速公路隧道工程施工方案
- 中國營養(yǎng)科學(xué)全書
- 針灸推拿試題(附參考答案)
- 《機(jī)械制圖》說課課件-畫組合體視圖的方法和步驟
- 2023-2024學(xué)年成都市錦江區(qū)四年級(jí)數(shù)學(xué)第一學(xué)期期末統(tǒng)考模擬試題含答案
- (完整版)初中英語語法專練動(dòng)名詞Word版含答案
- 醫(yī)院人才培養(yǎng)和梯隊(duì)建設(shè)制度
- 幼兒園醫(yī)護(hù)助教知識(shí)學(xué)習(xí)培訓(xùn)PPT
- 管體結(jié)構(gòu)尺寸與配筋設(shè)計(jì)圖冊(cè)
評(píng)論
0/150
提交評(píng)論