《計(jì)算機(jī)組成與體系結(jié)構(gòu)》趙姝、陳潔、段震、陳付龍、劉路路 第5章 控制器_第1頁(yè)
《計(jì)算機(jī)組成與體系結(jié)構(gòu)》趙姝、陳潔、段震、陳付龍、劉路路 第5章 控制器_第2頁(yè)
《計(jì)算機(jī)組成與體系結(jié)構(gòu)》趙姝、陳潔、段震、陳付龍、劉路路 第5章 控制器_第3頁(yè)
《計(jì)算機(jī)組成與體系結(jié)構(gòu)》趙姝、陳潔、段震、陳付龍、劉路路 第5章 控制器_第4頁(yè)
《計(jì)算機(jī)組成與體系結(jié)構(gòu)》趙姝、陳潔、段震、陳付龍、劉路路 第5章 控制器_第5頁(yè)
已閱讀5頁(yè),還剩161頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)組成與體系結(jié)構(gòu)計(jì)算機(jī)組成與體系結(jié)構(gòu)第五章第五章 控制器控制器 2022-7-41安徽師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系 陳付龍u5.1 控制器的功能和基本結(jié)構(gòu)控制器的功能和基本結(jié)構(gòu)u5.2 時(shí)序系統(tǒng)與控制方式時(shí)序系統(tǒng)與控制方式u5.3 微程序控制微程序控制u5.4 硬布線控制硬布線控制u5.5 典型微處理器典型微處理器u本章習(xí)題本章習(xí)題目錄23在馮諾依曼體系的計(jì)算機(jī)中,包含運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備等五大部件。這些部件是怎么協(xié)調(diào)一致來進(jìn)行工作的呢?這些部件是怎么協(xié)調(diào)一致來進(jìn)行工作的呢?比如運(yùn)算器運(yùn)算的時(shí)候,怎么確保一定會(huì)有比如運(yùn)算器運(yùn)算的時(shí)候,怎么確保一定會(huì)有數(shù)據(jù)送過來呢?數(shù)據(jù)

2、送過來呢?2022-7-44控制器的基本功能就是把機(jī)器指令轉(zhuǎn)換為按照一控制器的基本功能就是把機(jī)器指令轉(zhuǎn)換為按照一定時(shí)序控制機(jī)器各部件的工作信號(hào),控制各部件定時(shí)序控制機(jī)器各部件的工作信號(hào),控制各部件產(chǎn)生一系列動(dòng)作,完成指令所規(guī)定的任務(wù)。產(chǎn)生一系列動(dòng)作,完成指令所規(guī)定的任務(wù)??刂破魇怯?jì)算機(jī)的控制器是計(jì)算機(jī)的核心部件核心部件,計(jì)算機(jī)的所有硬件,計(jì)算機(jī)的所有硬件都是在控制器的控制下,完成程序規(guī)定的操作。都是在控制器的控制下,完成程序規(guī)定的操作。 5.1.1 控制器的功能 5.1.2 控制器的組成 5.1.3 寄存器的組織 5.1.4 控制器的硬件實(shí)現(xiàn)5.1 控制器的功能和基本結(jié)構(gòu)55.1.1 控制器的

3、功能6 指令執(zhí)行過程都是在控制器的控制下進(jìn)行的,因此控制器的功能首先應(yīng)該包含如下3點(diǎn): 1.1.讀取指令;讀取指令;2.2.分析指令;分析指令;3.3.執(zhí)行指令。執(zhí)行指令。 除此之外,控制器還應(yīng)該具有如下功能: 4.4.控制程序和數(shù)據(jù)的輸入與結(jié)果輸出控制程序和數(shù)據(jù)的輸入與結(jié)果輸出 根據(jù)程序的安排或人的干預(yù),在適當(dāng)?shù)臅r(shí)候向輸入輸出設(shè)備發(fā)出一些相應(yīng)的命令來完成I/O功能。 5.5.對(duì)異常情況和某些請(qǐng)求的處理對(duì)異常情況和某些請(qǐng)求的處理 來自外部的請(qǐng)求可能有2類: 1)1)中斷請(qǐng)求信號(hào)中斷請(qǐng)求信號(hào) 2)DMA2)DMA請(qǐng)求信號(hào)請(qǐng)求信號(hào)5.1.2 控制器的組成71.程序計(jì)數(shù)器程序計(jì)數(shù)器(PC) 存放待讀

4、取指令在內(nèi)存中的地址信息。 需要注意:我們經(jīng)常說在順序執(zhí)行的情況下,要得到下一條指令的地址,則進(jìn)行PC+1操作,這里的+1是指一個(gè)單位,即指令字的字長(zhǎng)。 2.指令寄存器指令寄存器(IR) 用以存放當(dāng)前正在執(zhí)行的指令,以便在指令執(zhí)行過程中,控制完成一條指令的全部功能,在指令執(zhí)行期間,需要依據(jù)該指令的內(nèi)容產(chǎn)生各種控制信號(hào)。3.指令譯碼器指令譯碼器(ID) 指令寄存器中保存的是完整的指令內(nèi)容,指令分成操作碼和操作數(shù)(地址碼)兩部分。4.地址形成部件地址形成部件 對(duì)于指令中的地址碼部分,需要使用地址形成部件,根據(jù)不同的尋址方式來形成操作數(shù)的有效地址。以上4個(gè)部件都屬于指令部件,用于讀取和分析指令。5.

5、1.2 控制器的組成8 5.脈沖源脈沖源 脈沖源產(chǎn)生一定頻率和寬度的時(shí)鐘脈沖信號(hào)作為整個(gè)機(jī)器的時(shí)鐘脈沖,是機(jī)器周期和工作脈沖的基準(zhǔn)信號(hào)。 在機(jī)器剛加電時(shí),還應(yīng)產(chǎn)生一個(gè)總清信號(hào)(reset)。 當(dāng)計(jì)算機(jī)的電源接通之后,脈沖源按照固定的頻率重復(fù)發(fā)出時(shí)鐘脈沖序列,直至電源關(guān)閉。 6.啟停線路啟停線路 啟停線路也稱啟??刂七壿?。 電源接通后,脈沖源就發(fā)出一定頻率的主時(shí)鐘脈沖,但并不代表計(jì)算機(jī)已經(jīng)開始工作。只有通過啟停線路將計(jì)算機(jī)啟動(dòng)后,主時(shí)鐘脈沖才允許進(jìn)入,并啟動(dòng)節(jié)拍信號(hào)發(fā)生器開始工作。 根據(jù)計(jì)算機(jī)的需要,啟停線路保證可靠地送出或封鎖時(shí)鐘脈沖,控制時(shí)序信號(hào)的發(fā)生或停止,從而啟動(dòng)機(jī)器工作或使之停機(jī)。5.

6、1.2 控制器的組成9 7.節(jié)拍信號(hào)發(fā)生器節(jié)拍信號(hào)發(fā)生器 節(jié)拍信號(hào)發(fā)生器又稱脈沖分配器,用于將脈沖源產(chǎn)生的脈沖信號(hào)轉(zhuǎn)換為各個(gè)機(jī)器周期中所需的節(jié)拍信號(hào),控制計(jì)算機(jī)完成每一步操作。 通過以上的時(shí)序部件,可以形成計(jì)算機(jī)工作的節(jié)拍。 8.控制單元控制單元(CU) 將指令發(fā)出的各種控制信號(hào)按節(jié)奏進(jìn)行分配將指令發(fā)出的各種控制信號(hào)按節(jié)奏進(jìn)行分配。 當(dāng)機(jī)器啟動(dòng)后,在節(jié)拍的作用下,控制單元根據(jù)當(dāng)前正在執(zhí)行的指令的需要,以及其他有關(guān)的因素,產(chǎn)生相應(yīng)的時(shí)序控制信號(hào),并根據(jù)被控功能部件的反饋信號(hào)調(diào)整時(shí)序控制信號(hào)。 9.中斷控制邏輯中斷控制邏輯 中斷控制邏輯是用于控制中斷處理的硬件邏輯。5.1.2 控制器的組成10由上

7、述9種部件可得到控制器的基本組成框圖:5.1.3 寄存器的組織11 寄存器寄存器用于暫時(shí)保存運(yùn)算和控制過程中的中間結(jié)果、最終結(jié)果以及狀態(tài)信息。 CPU中的寄存器一般可分為通用寄存器通用寄存器和專用寄存器專用寄存器兩大類。 1. 1. 通用寄存器通用寄存器 通用寄存器(GR)用于傳送和暫存數(shù)據(jù),也可參與算術(shù)邏輯運(yùn)算,并保及這算結(jié)果。除此之外還具有些特殊的功能,可由程序設(shè)計(jì)者根據(jù)需要進(jìn)行指定。 現(xiàn)代計(jì)算機(jī)中,一般會(huì)在CPU中設(shè)置幾十個(gè)甚至上百個(gè)通用寄存器,形成通用寄存器組。在這種情況下,只有在指令中對(duì)寄存器進(jìn)行編址,才能明確是對(duì)哪個(gè)寄存器的訪問。5.1.3 寄存器的組織12 通用寄存器實(shí)例累加寄存

8、器累加寄存器(ACC)(ACC) 累加寄存器(ACC),簡(jiǎn)稱累加器累加器。 累加器是專門存放算術(shù)或邏輯運(yùn)算的一個(gè)操作數(shù)和運(yùn)算存放算術(shù)或邏輯運(yùn)算的一個(gè)操作數(shù)和運(yùn)算結(jié)果的寄存器結(jié)果的寄存器。 累加器可用于暫時(shí)存放算術(shù)邏輯單元ALU運(yùn)算的結(jié)果信息。 運(yùn)算器中至少要有一個(gè)累加器。5.1.3 寄存器的組織13 2. 2. 專用寄存器專用寄存器 專用寄存器是用于完成某個(gè)特殊功能的寄存器。CPU中至少應(yīng)提供以下5種專用寄存器: 1 1)程序計(jì)數(shù)器)程序計(jì)數(shù)器(PC)(PC) 2 2)指令寄存器)指令寄存器(IR)(IR) 3 3)地址寄存器)地址寄存器(AR)(AR) 4 4)數(shù)據(jù)寄存器)數(shù)據(jù)寄存器(DR)

9、(DR) 5 5)狀態(tài)條件寄存器)狀態(tài)條件寄存器(PSW)(PSW) 以上以上5 5種專用寄存器連同種專用寄存器連同累加寄存器累加寄存器, ,構(gòu)成了構(gòu)成了CPUCPU中必中必不可少的不可少的6 6種寄存器。種寄存器。5.1.3 寄存器的組織14(1) (1) 程序計(jì)數(shù)器程序計(jì)數(shù)器(PC)(PC) 程序計(jì)數(shù)器(PC)使CPU能夠確定下一條指令的地址。 在程序開始執(zhí)行時(shí),需要將程序中第一條指令所在的內(nèi)存單元地址送入PC,CPU依據(jù)PC中的地址信息取出指令加以執(zhí)行。 當(dāng)程序順序執(zhí)行時(shí),PC中的內(nèi)容自動(dòng)加1,指向下一條待執(zhí)行指令的地址。 當(dāng)遇到需要改變程序執(zhí)行順序的情況時(shí),如執(zhí)行了轉(zhuǎn)移指令,則依據(jù)指令

10、中所提供的信息得到后繼指令的地址,并將其送入PC,實(shí)現(xiàn)程序的轉(zhuǎn)移。 程序計(jì)數(shù)器一般同時(shí)具有寄存信息和計(jì)數(shù)兩種功能。5.1.3 寄存器的組織15(2) (2) 指令寄存器指令寄存器(IR)(IR)CPU根據(jù)PC中的信息取出指令,將其存放在指令寄存器中。在指令執(zhí)行期間,IR中的內(nèi)容不允許發(fā)生變化,以保證指令功能的正確和完整實(shí)現(xiàn)。(3) (3) 地址寄存器地址寄存器(AR)(AR) 地址寄存器用于暫時(shí)暫時(shí)存放當(dāng)前存放當(dāng)前CPUCPU所訪問的內(nèi)存單元的地址所訪問的內(nèi)存單元的地址。由于主存和CPU之間存在速度差異,因此需要使用地址寄存器來暫時(shí)保存當(dāng)前的地址信息,直到主存完成讀寫操作。5.1.3 寄存器的

11、組織16(4) (4) 數(shù)據(jù)緩沖寄存器數(shù)據(jù)緩沖寄存器(DR)(DR) 數(shù)據(jù)緩沖寄存器用于暫時(shí)暫時(shí)存放由主存讀出的一條指令或一個(gè)數(shù)據(jù)存放由主存讀出的一條指令或一個(gè)數(shù)據(jù)字字;反之,當(dāng)向內(nèi)存寫入一條指令或一個(gè)數(shù)據(jù)字時(shí),也將它們暫時(shí)存放在數(shù)據(jù)緩沖寄存器中。 當(dāng)當(dāng)CPUCPU和主存進(jìn)行信息交換時(shí)和主存進(jìn)行信息交換時(shí),都需要使用地址寄存器和數(shù)據(jù)緩沖寄存器;如果將外圍設(shè)備的設(shè)備地址當(dāng)做內(nèi)存的地址單元來看待,則CPUCPU和外圍設(shè)備交換信息時(shí)和外圍設(shè)備交換信息時(shí)也需要使用地址寄存器和數(shù)據(jù)緩沖寄存器。 數(shù)據(jù)緩沖寄存器有時(shí)也簡(jiǎn)稱為數(shù)據(jù)寄存器數(shù)據(jù)寄存器。5.1.3 寄存器的組織17(5)(5)狀態(tài)條件寄存器狀態(tài)條件

12、寄存器(PSW)(PSW) 狀態(tài)條件寄存器用于保存由算術(shù)指令和邏輯指令運(yùn)行或保存由算術(shù)指令和邏輯指令運(yùn)行或測(cè)試的結(jié)果建立的各種條件碼內(nèi)容測(cè)試的結(jié)果建立的各種條件碼內(nèi)容,如運(yùn)算結(jié)果進(jìn)位標(biāo)志(C)、運(yùn)算結(jié)果溢出標(biāo)志(V)、運(yùn)算結(jié)果為負(fù)標(biāo)志(N)、運(yùn)算結(jié)果為零標(biāo)志(Z)等,這些標(biāo)志位通常分別由一位觸發(fā)器來保存。這些信息也稱為程序狀態(tài)字,表明程序和機(jī)器的運(yùn)行狀態(tài),是參與控制程序執(zhí)行的重要依據(jù)之一。 除此之外,狀態(tài)條件寄存器中還保存中斷和系統(tǒng)工作狀態(tài)等信息以便使CPU和系統(tǒng)能及時(shí)了解機(jī)器運(yùn)行狀態(tài)和程序運(yùn)行狀態(tài)。5.1.4 控制器的硬件實(shí)現(xiàn)18 在控制器的組成部件中,最核心也是最復(fù)雜的部分就是控制單元。根

13、據(jù)控制單元產(chǎn)生信號(hào)的方式,可將控制器分為兩大類,即硬布線控制器和微程序控制器。1.硬布線控制器 設(shè)計(jì)思想:如果將譯碼信號(hào)、時(shí)序信號(hào)和反饋信號(hào)看作電路的輸入,將控制單元產(chǎn)生的操作控制信號(hào)看作電路的輸出,控制單元的設(shè)計(jì)就變成了一個(gè)普通的組合邏輯電路設(shè)計(jì)問題。此時(shí)可依據(jù)輸入和輸出之間的關(guān)系,得到每個(gè)輸出信號(hào)的邏輯表達(dá)式,并通過門電路予以實(shí)現(xiàn)。5.1.4 控制器的硬件實(shí)現(xiàn)19 2.微程序控制器 設(shè)計(jì)思想:從某種意義上說,可以理解為是用軟件程序設(shè)計(jì)的思想來解決硬件設(shè)計(jì)問題。 計(jì)算機(jī)在接受機(jī)器指令后,需要完成一系列操作,即“指令一組操作”。如果將其與“程序一組指令”對(duì)照,則可將這組操作事先編寫成類似于指令

14、的形式(稱為微指令),從而將執(zhí)行一條指令轉(zhuǎn)變?yōu)閳?zhí)行事先設(shè)計(jì)好的若干條微指令。 5.2.1 指令周期和機(jī)器周期 5.2.2 節(jié)拍和脈沖 5.2.3 多級(jí)時(shí)序系統(tǒng) 5.2.4 控制器的控制方式5.2 時(shí)序系統(tǒng)與控制方式205.2.1 指令周期和機(jī)器周期21l指令周期指令周期lCPUCPU每取出并執(zhí)行一條指令每取出并執(zhí)行一條指令, ,都要完成一系列的操都要完成一系列的操作作, ,這一系列操作所需的時(shí)間稱為一個(gè)指令周期。這一系列操作所需的時(shí)間稱為一個(gè)指令周期。或者說或者說, ,指令周期是取出并執(zhí)行一條指令的時(shí)間。指令周期是取出并執(zhí)行一條指令的時(shí)間。l機(jī)器周期機(jī)器周期l機(jī)器周期也稱為機(jī)器周期也稱為CPU

15、CPU周期,通常用內(nèi)存中讀取一個(gè)周期,通常用內(nèi)存中讀取一個(gè)指令字所需要的最短時(shí)間來規(guī)定機(jī)器周期。指令字所需要的最短時(shí)間來規(guī)定機(jī)器周期。l一般將一個(gè)指令周期劃分為多個(gè)機(jī)器周期一般將一個(gè)指令周期劃分為多個(gè)機(jī)器周期, ,每個(gè)機(jī)每個(gè)機(jī)器周期完成一個(gè)功能相對(duì)獨(dú)立的基本操作器周期完成一個(gè)功能相對(duì)獨(dú)立的基本操作, ,如取指如取指周期、取數(shù)周期、執(zhí)行周期等。周期、取數(shù)周期、執(zhí)行周期等。5.2.2 節(jié)拍和脈沖221.節(jié)拍把一個(gè)機(jī)器周期分為若干個(gè)相等的時(shí)間段,每個(gè)時(shí)間段對(duì)應(yīng)一個(gè)電位信號(hào),稱為節(jié)拍電位信號(hào)。一個(gè)節(jié)拍的寬度取決于CPU完成一次微操作所需要的時(shí)間。不同機(jī)器周期所需要的節(jié)拍數(shù)不同。為了確定所需節(jié)拍的數(shù)量,

16、一般有以下幾種方法:1)統(tǒng)一節(jié)拍法2)分散節(jié)拍法3)延長(zhǎng)節(jié)拍法5.2.2 節(jié)拍和脈沖231)1)統(tǒng)一節(jié)拍法統(tǒng)一節(jié)拍法 統(tǒng)一節(jié)拍法中,所有機(jī)器周期所需要的節(jié)拍數(shù)量是相同的。 以最復(fù)雜的機(jī)器周期為準(zhǔn)來確定節(jié)拍的數(shù)量,同時(shí)以最復(fù)雜的微操作來確定每個(gè)節(jié)拍所需時(shí)間的長(zhǎng)短。 這種方法采用統(tǒng)一的具有相等時(shí)間間隔和相同數(shù)目的節(jié)拍,使得所有機(jī)器周期的長(zhǎng)度都是相等的,因此也稱為定長(zhǎng)定長(zhǎng)CPUCPU周期周期。2)2)分散節(jié)拍法分散節(jié)拍法 根據(jù)每個(gè)機(jī)器周期的實(shí)際需安來安排節(jié)拍數(shù)量,提高利用率。這種方法也稱為不定長(zhǎng)不定長(zhǎng)CPUCPU周期周期。3)3)延長(zhǎng)節(jié)拍法延長(zhǎng)節(jié)拍法 照顧多數(shù)機(jī)器周期的需求,選取適當(dāng)?shù)墓?jié)拍數(shù)作為基本

17、節(jié)拍數(shù)。對(duì)于比較復(fù)雜的機(jī)器周期,難以在基本節(jié)拍數(shù)之內(nèi)完成全部微操作,可延長(zhǎng)12個(gè)節(jié)拍。這種方法也稱為中央控制和局部控制相中央控制和局部控制相結(jié)合結(jié)合的方法??刂坪?jiǎn)單,但利用率低控制簡(jiǎn)單,但利用率低利用率高,但管理復(fù)雜利用率高,但管理復(fù)雜折中方法折中方法5.2.2 節(jié)拍和脈沖242.脈沖 節(jié)拍是一種電位信號(hào),表示當(dāng)前所處的位置。在節(jié)拍中執(zhí)行的一些微操作需要同步定時(shí)脈沖。為此,在一個(gè)節(jié)拍中需設(shè)置1個(gè)或多個(gè)工作脈沖,以保沖觸發(fā)器可靠,穩(wěn)定地翻轉(zhuǎn)。3.微型計(jì)算機(jī)中的處理方式 在微型計(jì)算機(jī)中,為簡(jiǎn)化設(shè)計(jì),往往不再單獨(dú)設(shè)置節(jié)拍,而是直接使用時(shí)鐘信號(hào)。時(shí)鐘信號(hào)的一次變化周期稱為時(shí)鐘周期,時(shí)鐘信號(hào)的頻率即通常

18、所說的CPU主頻。時(shí)鐘周期是與節(jié)拍相對(duì)應(yīng)的。5.2.2 節(jié)拍和脈沖25 使用機(jī)器周期、節(jié)拍和脈沖可形成三級(jí)時(shí)序系統(tǒng)三級(jí)時(shí)序系統(tǒng)。 如果是在微型計(jì)算機(jī)中,時(shí)序系統(tǒng)會(huì)略有不同,稱為時(shí)鐘周期時(shí)序系統(tǒng)。一個(gè)指令周期中包含若干個(gè)機(jī)器周期,一個(gè)機(jī)器周期中包含若干個(gè)時(shí)鐘周期,每個(gè)時(shí)鐘周期對(duì)應(yīng)圖5.2中的節(jié)拍Ti。 一個(gè)指令周期中包含若干個(gè)機(jī)器周期,一個(gè)機(jī)器周期中包含若干個(gè)節(jié)拍電位,一個(gè)節(jié)拍電位中包含1個(gè)或多個(gè)工作脈沖。在機(jī)器周期之間、節(jié)拍電位之間和工作脈沖之間是緊密相連的,不允許存在空隙。5.2.3 多級(jí)時(shí)序系統(tǒng)265.2.4 控制器的控制方式27 控制器控制一條指令執(zhí)行的過程實(shí)質(zhì)上是一次執(zhí)行一個(gè)確定的微操

19、作序列的過程,這在硬布線控制器和微程序控制器中是一樣的。 通常將如何形成不同微操作序列所采用的時(shí)序控制方式稱為控制器的控制方式,常見的有以下4種:1)同步控制2)異步控制3)聯(lián)合控制4)人工控制5.2.4 控制器的控制方式281.1.同步控制方式同步控制方式 同步控制方式下,任何一條已定的指令在執(zhí)行時(shí)所需的機(jī)器周期數(shù)和節(jié)拍數(shù)都是固定不變的。 根據(jù)不同情況,同步控制方式可選用之前介紹的統(tǒng)一節(jié)拍法、分散節(jié)拍法和延長(zhǎng)節(jié)拍法來確定機(jī)器周期。 (1)采用完全統(tǒng)一的機(jī)器周期執(zhí)行各種不同的指令。 (2)采用不定長(zhǎng)機(jī)器周期。 (3)中央控制與局部控制結(jié)合。5.2.4 控制器的控制方式29圖5.3 采用統(tǒng)一節(jié)拍

20、法的同步控制方式圖5.4 采用分散節(jié)拍法的同步控制方式5.2.4 控制器的控制方式302.2.異步控制方式異步控制方式 每條指令、每個(gè)微操作需要多少時(shí)間就占用多少時(shí)間,不采用統(tǒng)一的周期或節(jié)拍來控制,當(dāng)控制器發(fā)出進(jìn)行某一微操作的控制信號(hào)后,等待執(zhí)行部件完成該操作后發(fā)回“回答”信號(hào)或“結(jié)束”信號(hào),再開始新的微操作,稱為異步控制方式。 在異步控制方式中,CPU沒有空閑等待的狀態(tài),但需要采用各種應(yīng)答電路,因此控制比較復(fù)雜。3.3.聯(lián)合控制方式聯(lián)合控制方式 將同步控制和異步控制相結(jié)合,對(duì)不同指令的各個(gè)微操作實(shí)行大部分統(tǒng)一、小部分區(qū)別對(duì)待的方式,稱為聯(lián)合控制方式。5.2.4 控制器的控制方式314.4.人

21、工控制方式人工控制方式 在計(jì)算機(jī)面板或內(nèi)部設(shè)置一些開關(guān)或按鍵以進(jìn)行人工控制。 1)Reset1)Reset按鍵按鍵 按下此鍵時(shí)產(chǎn)生Reset信號(hào),使計(jì)算機(jī)處于初始狀態(tài),解識(shí)死機(jī)等問題。 2)2)連續(xù)或單條轉(zhuǎn)換開關(guān)連續(xù)或單條轉(zhuǎn)換開關(guān) 連續(xù)工作是指計(jì)算機(jī)按正常速度執(zhí)行程序,單條則是指每執(zhí)行一條指令后計(jì)算機(jī)自動(dòng)停機(jī),在調(diào)試硬件或調(diào)試程序時(shí)可觀察每條指令的執(zhí)行結(jié)果。在機(jī)器工作前先將連續(xù)或單條轉(zhuǎn)換開關(guān)設(shè)置好,啟動(dòng)后就能按照預(yù)定狀態(tài)工作。 3)3)符合停機(jī)開關(guān)符合停機(jī)開關(guān) 在機(jī)器內(nèi)設(shè)置一組符合開關(guān),當(dāng)程訪問存儲(chǔ)器的地址與所置開關(guān)相等時(shí),機(jī)器停止運(yùn)行,稱為地址符合停機(jī)。 5.3.1 基本概念 5.3.2 基

22、本原理 5.3.3 設(shè)計(jì)技術(shù) 5.3.4 微指令格式設(shè)計(jì) 5.3.5 微指令的執(zhí)行方式5.3 微程序控制325.3 微程序控制33 微程序控制器中所采用的是微程序設(shè)計(jì)技微程序控制器中所采用的是微程序設(shè)計(jì)技術(shù)術(shù),微程序設(shè)計(jì)的概念和原理最早產(chǎn)生于微程序設(shè)計(jì)的概念和原理最早產(chǎn)生于1951年年,由英國(guó)劍橋大學(xué)的由英國(guó)劍橋大學(xué)的M.V.Milkes教授教授在在設(shè)計(jì)自動(dòng)化計(jì)算機(jī)的最好方法設(shè)計(jì)自動(dòng)化計(jì)算機(jī)的最好方法一文一文中提出中提出,并首先將該思想應(yīng)用于計(jì)算機(jī)控制并首先將該思想應(yīng)用于計(jì)算機(jī)控制器的設(shè)計(jì)。器的設(shè)計(jì)。5.3.1 基本概念341.1.微命令和微操作微命令和微操作 為了完成一條指令的執(zhí)行,控制器需

23、要發(fā)出各種控制命令,這些命令稱為微命令微命令; 執(zhí)行部件接受微命令所執(zhí)行的操作,稱為微操作微操作。 一條指令的執(zhí)行過程分解為一個(gè)微操作序列。一條指令的執(zhí)行過程分解為一個(gè)微操作序列。 微命令和微操作是一一對(duì)應(yīng)的。 微命令是微操作的控制信號(hào),由控制器發(fā)出; 微操作是收到微命令后所執(zhí)行的具體操作,由執(zhí)行部件實(shí)現(xiàn)。5.3.1 基本概念352.2.微指令和微程序微指令和微程序 完成一條指令所需要的控制信號(hào)需要分批送出,同時(shí)發(fā)出的一組微命令的集合就形成微指令微指令。 一條機(jī)器指令分成多步執(zhí)行,每一步對(duì)應(yīng)一條微指令,這些微指令的集合就構(gòu)成了微程序。微程序。 每一條機(jī)器指令對(duì)應(yīng)一段微程序。3.3.控制存儲(chǔ)器控

24、制存儲(chǔ)器 有了微程序之后,執(zhí)行一條機(jī)器指令就變成了執(zhí)行這條機(jī)器指令所對(duì)應(yīng)的微程序,即一組微指令。這些微程序是由機(jī)器設(shè)計(jì)者編制并存放在控制器內(nèi)部的,存放這些微程序的存儲(chǔ)器稱為控制存儲(chǔ)器。當(dāng)CPU設(shè)計(jì)完成后,每條機(jī)器指令所對(duì)應(yīng)的微程序也就確定下來了,一般用戶是無法更改的,因此控制存儲(chǔ)器可以使用只讀存儲(chǔ)器來實(shí)現(xiàn)。5.3.1 基本概念364.4.微地址微地址 微指令存放在控制存儲(chǔ)器中,其執(zhí)行過程類似于指令的執(zhí)行,當(dāng)一條微指令執(zhí)行結(jié)束后,需要知道下一條微指令所在地址,取出并繼續(xù)執(zhí)行,由于微指令是存放在控制存儲(chǔ)器中的,這個(gè)地址就是微指令在控制存儲(chǔ)器中的地址,稱為微地址。5.5.微指令寄存器微指令寄存器 微

25、指令寄存器用于在微指令執(zhí)行期間暫存微指令,防止其信息發(fā)生改變。5.3.1 基本概念376.6.微周期微周期 從控制存儲(chǔ)器中讀取并且執(zhí)行一條微指令所需要的全部時(shí)間稱為微周期。 在串行方式的微程序控制器中,微周期等于微指令讀取微周期等于微指令讀取時(shí)間和執(zhí)行時(shí)間之和時(shí)間和執(zhí)行時(shí)間之和; 在流水線方式下,情況有所不同,讀者可參照流水線部分的有關(guān)內(nèi)容。 從以上基本介紹中可以了解到,在微程序控制的計(jì)算中,執(zhí)行一條指令,其實(shí)質(zhì)是執(zhí)行一段存放在控制存儲(chǔ)器中的微程序。5.3.2 基本原理38l微程序控制器的基本思想可以概括如下:微程序控制器的基本思想可以概括如下:l(1 1)將控制器所需要的微命令,以微代碼的形

26、式編成微)將控制器所需要的微命令,以微代碼的形式編成微指令,存入一個(gè)控制存儲(chǔ)器中,該控制存儲(chǔ)器由只讀存儲(chǔ)指令,存入一個(gè)控制存儲(chǔ)器中,該控制存儲(chǔ)器由只讀存儲(chǔ)器器ROMROM構(gòu)成。在計(jì)算機(jī)運(yùn)行時(shí),從控制存儲(chǔ)器中取出微指構(gòu)成。在計(jì)算機(jī)運(yùn)行時(shí),從控制存儲(chǔ)器中取出微指令,用其所包含的微命令開控制有關(guān)部件的操作。令,用其所包含的微命令開控制有關(guān)部件的操作。l(2 2)將每條機(jī)器指令分解為若干微操作序列,用若干條)將每條機(jī)器指令分解為若干微操作序列,用若干條微指令來解釋一條機(jī)器指令。再根據(jù)整個(gè)指令系統(tǒng)的需要微指令來解釋一條機(jī)器指令。再根據(jù)整個(gè)指令系統(tǒng)的需要,編制出一套完整的微程序,預(yù)先存入控制存儲(chǔ)器中。,編

27、制出一套完整的微程序,預(yù)先存入控制存儲(chǔ)器中。5.3.2 基本原理39設(shè)某簡(jiǎn)單CPU模型的數(shù)據(jù)通路圖如圖所示,ALU能夠進(jìn)行加(+)、減(-)、邏輯加()、邏輯乘()四種運(yùn)算。5.3.2 基本原理405.3.2 基本原理41 以加法指令A(yù)DD AX,OD為例。這是一條訪問主存取數(shù)并執(zhí)行加法的指令,其中一個(gè)加數(shù)來自通用寄存器GR中的AX,另一個(gè)加數(shù)的主存地址由OD指出,運(yùn)算結(jié)果送回AX中。ADD指令的指令周期中包含三個(gè)機(jī)器周期,每個(gè)周期中發(fā)出的信號(hào)可以用一條微指令來加以描述,每條微指令所需的控制信號(hào)如下。 5.3.2 基本原理421)1)取指微指令取指微指令(1)將程序計(jì)數(shù)器PC中的內(nèi)容送到地址總

28、線AB。 PCAB(17)(2)由控制單元CU 經(jīng)控制總線CB向存儲(chǔ)器發(fā)出讀命令。 ADS(22),M/IO=1(23),W/R=0(24)(3)存儲(chǔ)器完成讀操作,將讀出的結(jié)果經(jīng)數(shù)據(jù)總線DB送至指令寄存器IR。 DBIR(3)(4)PC中的內(nèi)容遞增,指向順序執(zhí)行情況時(shí)的下一條指令的地址。 PC+1(12)(5)對(duì)操作碼進(jìn)行譯碼,識(shí)別出指令類型,此操作自動(dòng)完成。5.3.2 基本原理432)2)取數(shù)微指令取數(shù)微指令(1)將指令寄存器IR中的地址碼部分送入地址寄存器AR。 ODAR(13)(2)將AR中的信息(待取數(shù)據(jù)的地址)送往地址總線。 ARAB(16)(3)由控制單元CU 經(jīng)控制總線CB向存儲(chǔ)

29、器發(fā)出讀命令。 ADS(22),M/IO=1(23),W/R=0(24)(4)存儲(chǔ)器完成讀操作,將讀出的結(jié)果經(jīng)數(shù)據(jù)總線DB送至數(shù)據(jù)緩沖寄存器DR。 DBDR(1)5.3.2 基本原理443)3)執(zhí)行執(zhí)行( (計(jì)算計(jì)算) )微指令微指令(1)將DR中的數(shù)據(jù)送入ALU 的一端。 DRALU(4)(2)將通用寄存器GR中的數(shù)據(jù)送入ALU 的另一端。 GRALU(7)(3)CPU 發(fā)出加法操作信號(hào),完成兩數(shù)相加。 +(18)(4)將加法結(jié)果送回到通用寄存器。 ALUGR(9)5.3.2 基本原理45 以STA AX,OD為例,其功能是將通用寄存器中的內(nèi)容送往指定的主存單元,主存單元的地址由OD指明。S

30、TA指令的執(zhí)行過程可以分為兩個(gè)機(jī)器周期。5.3.2 基本原理461)1)取指微指令取指微指令(1)將程序計(jì)數(shù)器PC中的內(nèi)容送到地址總線AB。 PCAB(17)(2)由控制單元CU 經(jīng)控制總線CB向存儲(chǔ)器發(fā)出讀命令。 ADS(22),M/IO=1(23),W/R=0(24)(3)存儲(chǔ)器完成讀操作,將讀出的結(jié)果經(jīng)數(shù)據(jù)總線DB送至指令寄存器IR。 DBIR(3)(4)PC中的內(nèi)容遞增,指向順序執(zhí)行情況時(shí)的下一條指令的地址。 PC+1(12)(5)對(duì)操作碼進(jìn)行譯碼,識(shí)別出指令類型,此操作自動(dòng)完成。5.3.2 基本原理472)2)執(zhí)行(存儲(chǔ))微指令執(zhí)行(存儲(chǔ))微指令 將指令寄存器IR中的地址碼部分送入地

31、址寄存器AR。ODAR(13) 將AR中的信息送往地址總線。ARAB(16) 將GR中的內(nèi)容送至DR。GRDR(6) 由控制單元CU經(jīng)控制總線CB向存儲(chǔ)器發(fā)出寫命令。ADS(22),=1(23),=1(24) 存儲(chǔ)器完成寫操作,將DR中的內(nèi)容經(jīng)數(shù)據(jù)總線DB寫入指定主存單元。DRDB(2)5.3.2 基本原理48 以一條無條件跳轉(zhuǎn)指令為例。格式為JMP OD,其中OD指示待跳轉(zhuǎn)指令所在地址。JMP指令的執(zhí)行過程可以分為兩個(gè)機(jī)器周期。5.3.2 基本原理491)1)取指微指令取指微指令(1)將程序計(jì)數(shù)器PC中的內(nèi)容送到地址總線AB。 PCAB(17)(2)由控制單元CU 經(jīng)控制總線CB向存儲(chǔ)器發(fā)出

32、讀命令。 ADS(22),M/IO=1(23),W/R=0(24)(3)存儲(chǔ)器完成讀操作,將讀出的結(jié)果經(jīng)數(shù)據(jù)總線DB送至指令寄存器IR。 DBIR(3)(4)PC中的內(nèi)容遞增,指向順序執(zhí)行情況時(shí)的下一條指令的地址。 PC+1(12)(5)對(duì)操作碼進(jìn)行譯碼,識(shí)別出指令類型,此操作自動(dòng)完成。5.3.2 基本原理502)2)執(zhí)行(跳轉(zhuǎn))微指令執(zhí)行(跳轉(zhuǎn))微指令將指令寄存器IR中的地址碼部分送入程序計(jì)數(shù)器PC。ODPC(14)可見,取指微指令對(duì)所有指令都是相同的,因此是一可見,取指微指令對(duì)所有指令都是相同的,因此是一條公用微指令。條公用微指令。5.3.2 基本原理51微指令的基本格式微指令的基本格式

33、將每個(gè)控制信號(hào)用一個(gè)控制位來表示,當(dāng)該位為“1”時(shí),定義為有控制信號(hào);當(dāng)該位為“0”時(shí),沒有控制信號(hào)。下址字段與控制存儲(chǔ)器的容量有關(guān),若控制存儲(chǔ)器容量為8K字,則每條微指令還需要13位來表示下址??刂拼鎯?chǔ)器的容量取決于實(shí)現(xiàn)指令系統(tǒng)所需的微程序長(zhǎng)度。5.3.2 基本原理52表5.2為加法指令的3條微指令的編碼,每一小格表示1位二進(jìn)制,空格表示0,第25-37位為下址。從下址字段可以看出,取指微指令的微地址是0 x0004H,取數(shù)微指令的微地址是0 x0010H,計(jì)算微指令的微地址是0 x0011H。5.3.2 基本原理53假設(shè)減法指令(SUB)與加法指令(ADD)的格式及工作過程相同,區(qū)別僅在于

34、執(zhí)行(計(jì)算)階段送的是“-”信號(hào),連同STA 和JMP指令,可以給出如下微程序流程圖。圖中的每個(gè)方框表示一條微指令,方框上方的地址是該微指令在控制存儲(chǔ)器中的地址,方框內(nèi)為執(zhí)行的操作,方框下方的地址是其后續(xù)微指令的地址。5.3.2 基本原理54 微程序控制器主要由控制存儲(chǔ)器控制存儲(chǔ)器、微指微指令寄存器令寄存器、微地址寄微地址寄存器存器以及微地址形成微地址形成部件部件等組成。5.3.2 基本原理551)1)控制存儲(chǔ)器控制存儲(chǔ)器(CM/CS)(CM/CS) 控制存儲(chǔ)器用來存放實(shí)現(xiàn)全部指令的所有微程序。機(jī)器在執(zhí)行指令時(shí),微程序控制器不斷地從控制存儲(chǔ)器中讀取對(duì)應(yīng)的微程序,用微指令中的控制信號(hào)去控制處理器

35、的其他部件??刂拼鎯?chǔ)器一般由只讀存儲(chǔ)器構(gòu)成,將微程序?qū)懭胫蛔x存儲(chǔ)器稱為微程序的固化微程序的固化。2)2)微地址寄存器微地址寄存器(AR)(AR) 微地址寄存器中存放的是下一條待執(zhí)行的微指令的微地址,即微指令在控制存儲(chǔ)器中的存儲(chǔ)位置。5.3.2 基本原理563)3)微地址形成部件微地址形成部件 微地址形成部件用于產(chǎn)生初始微地址和后續(xù)微地址、控制微指令序列。從結(jié)構(gòu)上,一般包括根據(jù)指令操作碼產(chǎn)生指令入口微地址的譯碼器和順序控制邏輯。4)4)微指令寄存器微指令寄存器(IR)(IR) 微指令寄存器用于存放從控制存儲(chǔ)器中讀出的一條微指令信息,它包含產(chǎn)生操作信號(hào)的控制碼字段以及取出下一條微指令的地址字段。5

36、.3.2 基本原理57微程序控制器的基本工作過程如下:1)當(dāng)指令被送入指令寄存器之后,由微地址形成部件根據(jù)操作碼進(jìn)行譯碼,得到該機(jī)器指令的首條微指令的微地址。2)根據(jù)微地址到控制存儲(chǔ)器中取出對(duì)應(yīng)的微指令,送入微指令寄存器。3)微指令寄存器的控制字段產(chǎn)生控制信號(hào),送至各功能部件產(chǎn)生對(duì)應(yīng)的操作。4)微指令寄存器的下址字段提供與后續(xù)微指令地址有關(guān)的信息,經(jīng)順序邏輯控制部件產(chǎn)生后續(xù)微地址,繼續(xù)取出下一條微指令并執(zhí)行。5)這樣一直進(jìn)行下去,直至此機(jī)器指令對(duì)應(yīng)的微程序執(zhí)行結(jié)束。6)微程序的最后一條微指令,其下址字段又指向取指微指令,從而取出下一條機(jī)器指令,繼續(xù)執(zhí)行。5.3.3 設(shè)計(jì)技術(shù)58微程序設(shè)計(jì)時(shí)有兩

37、個(gè)關(guān)鍵問題1) 如何由微指令的控制字段形成微操作所需要的微命令2) 如何形成下一條微指令的地址(微地址)。這兩個(gè)問題所涉及的就是微程序設(shè)計(jì)技術(shù),即如何確定微指令的結(jié)構(gòu)。這兩個(gè)問題所涉及的就是微程序設(shè)計(jì)技術(shù),即如何確定微指令的結(jié)構(gòu)。在進(jìn)行微程序設(shè)計(jì)時(shí),還需要關(guān)心一些設(shè)計(jì)目標(biāo)。5.3.3 設(shè)計(jì)技術(shù)59 微命令的編碼方式是指如何對(duì)微指令的控制字段進(jìn)行編碼,以形成控制信號(hào)。不同類型的計(jì)算機(jī)對(duì)編碼效果有著不同的要求。 微命令的編碼方式通常有如下幾種: 1.1.直接控制法直接控制法 2. 2.字段直接編譯法字段直接編譯法 3. 3.字段間接編譯法字段間接編譯法微命令的編碼方式微命令的編碼方式5.3.3 設(shè)

38、計(jì)技術(shù)601.1.直接控制法直接控制法 在微指令的控制字段中,每一位代表一個(gè)微命令。在設(shè)計(jì)微指令時(shí),是否發(fā)出某個(gè)微命令,或該微命令的信號(hào)是“1”還是“0”,只要在控制字段中的對(duì)應(yīng)位進(jìn)行正確的設(shè)置即可。 優(yōu)點(diǎn)優(yōu)點(diǎn):簡(jiǎn)單直觀,輸出直接用于控制 缺點(diǎn)缺點(diǎn):微指令字較長(zhǎng),因而使控制存儲(chǔ)器容量較大。5.3.3 設(shè)計(jì)技術(shù)612.2.字段直接編譯法字段直接編譯法 在字段直接編譯法中,將控制信號(hào)劃分成若干個(gè)字段,每個(gè)字段都是一組互斥的微命令,即一個(gè)微周期內(nèi)至多只有其中一個(gè)信號(hào)有效。 對(duì)這組微命令進(jìn)行二進(jìn)制編碼,然啟通過字段譯碼器對(duì)每組編碼,進(jìn)行譯碼輸出作為操作控制信號(hào)。 對(duì)于需要并行發(fā)出的微命令,須將其分配在

39、不同的字段中。 微周期:是一條微指令所需的執(zhí)行時(shí)間。 字段直接編譯法也稱顯式編碼顯式編碼或單重定義編碼單重定義編碼方法。如果有若干個(gè)(一組)微命令,在每次選擇使用它們的微周期內(nèi),只有一個(gè)微命令起作用,那么這若干個(gè)微命令是互斥的。5.3.3 設(shè)計(jì)技術(shù)62 當(dāng)字段長(zhǎng)度為3位時(shí),最多只能表示7個(gè)互斥的微命令,通常代碼000表示不發(fā)微命令。優(yōu)點(diǎn)優(yōu)點(diǎn):縮短了微指令長(zhǎng)度。代價(jià)代價(jià):在微指令寄存器的輸出端,為該字段增加一個(gè)譯碼器,該譯碼器的輸出即為原來的微命令。 字段長(zhǎng)度字段長(zhǎng)度n n與所能表示的微命令數(shù)與所能表示的微命令數(shù)m m的關(guān)系:的關(guān)系:m=2m=2n n-1-1字段直接編譯法的工作方式5.3.3

40、設(shè)計(jì)技術(shù)633.3.字段間接編譯法字段間接編譯法 如果在字段直接編譯法中,還規(guī)定一個(gè)字段的某些微命令,要兼由另一字段中的某些微命令來解釋,稱為字段間接編譯法。 優(yōu)點(diǎn):進(jìn)一步減少了指令長(zhǎng)度。 缺點(diǎn):削弱微指令的并行控制能力。字段間接編譯法的工作方式5.3.3 設(shè)計(jì)技術(shù)64微地址的形成方式微地址的形成方式基本概念基本概念: :現(xiàn)行微指令現(xiàn)行微指令: :當(dāng)前正在執(zhí)行的微指令?,F(xiàn)行微地址現(xiàn)行微地址: :現(xiàn)行微指令所在的控制存儲(chǔ)器單元的地址。后繼微指令后繼微指令: :下一條要執(zhí)行的微指令。后繼微地址后繼微地址: :后繼微指令所在的控制存儲(chǔ)器單元地址。微程序控制微程序控制: :當(dāng)前微指令執(zhí)行完畢后,產(chǎn)生后

41、繼微指令的微地址的方法5.3.3 設(shè)計(jì)技術(shù)651.1.以以計(jì)數(shù)器方式計(jì)數(shù)器方式產(chǎn)生后繼微地址產(chǎn)生后繼微地址 計(jì)數(shù)器方式也稱增量方式。A)微程序入口微程序入口: 首條微指令,由專門硬件電路產(chǎn)生,控制實(shí)現(xiàn)取指操作;B)順序執(zhí)行順序執(zhí)行: 后繼微地址現(xiàn)行微地址(在微程序計(jì)數(shù)器中)1C)轉(zhuǎn)移地址轉(zhuǎn)移地址: 后繼微地址現(xiàn)行微地址轉(zhuǎn)移條件譯碼(相對(duì)轉(zhuǎn)移量)D)由操作碼產(chǎn)生后繼地址5.3.3 設(shè)計(jì)技術(shù)66優(yōu)點(diǎn)優(yōu)點(diǎn)是微地址形成機(jī)構(gòu)比較簡(jiǎn)單、實(shí)現(xiàn)方法直觀、易于掌握;缺點(diǎn)缺點(diǎn)是執(zhí)行速度慢、存在大量的分支、轉(zhuǎn)移微指令的執(zhí)行需要占用時(shí)間。為了降低成本,一般都是將微地址寄存器(AR)改為具有計(jì)數(shù)功能的寄存器,以實(shí)現(xiàn)微程

42、序計(jì)數(shù)器(PC)的功能。5.3.3 設(shè)計(jì)技術(shù)672.2.以以斷定方式斷定方式產(chǎn)生后繼微地址產(chǎn)生后繼微地址 斷定方式的后繼微地址可由微程序的設(shè)計(jì)者在下址字段中給定,在需要根據(jù)條件進(jìn)行轉(zhuǎn)移時(shí),可根據(jù)微指令所規(guī)定的測(cè)試結(jié)果直接決定后繼微地址的全部或部分值。 例如,當(dāng)有2個(gè)分支時(shí),可以引入2個(gè)字段下址1和下址2,根據(jù)狀態(tài)條件選擇其中一個(gè)下址作為下一條微指令的微地址。 優(yōu)點(diǎn):微程序執(zhí)行速度較快、可以不需要使用PC來指定下一條微指令的微地址、靈活性好; 缺點(diǎn):增加了微指令代碼的長(zhǎng)度。5.3.3 設(shè)計(jì)技術(shù)68斷定方式的微程序控制器5.3.3 設(shè)計(jì)技術(shù)693.3.以以結(jié)合方式結(jié)合方式產(chǎn)生后繼微地址產(chǎn)生后繼微地

43、址 結(jié)合增量方式和斷定方式的優(yōu)點(diǎn)而形成的一種方式。 微指令的下址字段分成兩部分: 轉(zhuǎn)移控制字段BCFBCF和轉(zhuǎn)移地址字段BAFBAF, BCF控制轉(zhuǎn)移條件,BAF控制轉(zhuǎn)移的目標(biāo)地址。 當(dāng)條件成立時(shí),微程序要轉(zhuǎn)移,將BAFBAF送送PCPC,否則順序執(zhí)行下一條微指令(PC+1)(PC+1)。 執(zhí)行微程序條件轉(zhuǎn)移時(shí),決定轉(zhuǎn)移與否的硬件條件有好幾種。由BCF定義的六個(gè)微命令見表5.3。5.3.3 設(shè)計(jì)技術(shù)705.3.3 設(shè)計(jì)技術(shù)715.3.3 設(shè)計(jì)技術(shù)72結(jié)合方式的微程序控制器結(jié)構(gòu)BCF=0,順序執(zhí)行微命令,PC+1為后繼微地址。BCF=1,條件轉(zhuǎn)移微命令,當(dāng)運(yùn)算結(jié)果溢出時(shí),將BAF送PC,否則PC

44、+1PC。BCF=2,無條件轉(zhuǎn)移微命令,將BAF送PC。BCF=3,轉(zhuǎn)微子程序微命令,把微子程序人口地址從BAF送PC,從而實(shí)現(xiàn)轉(zhuǎn)移。在轉(zhuǎn)移之前要把該條微指令的下一地址(PC+1)送人返回寄存器RR之中。BCF=4,返回微命令,把RR中的返回微地址送人PC,從而實(shí)現(xiàn)從微子程序返回到原來的微程序。BCF=5,操作碼產(chǎn)生后繼微地址的微命令,這是取指后,按現(xiàn)行指令執(zhí)行的第一條微指令。5.3.3 設(shè)計(jì)技術(shù)73BAFBAF的長(zhǎng)度有兩種情況的長(zhǎng)度有兩種情況:與與PCPC的位數(shù)相等的位數(shù)相等;可以從控制存儲(chǔ)器的任一單元取微指令。 特點(diǎn):轉(zhuǎn)移靈活,但增加了微指令的長(zhǎng)度.比比PCPC短短;考慮到轉(zhuǎn)移點(diǎn)在PC附近

45、,或者在控制存儲(chǔ)器的某區(qū)域內(nèi),所以由原來的PC的若干位與BAF組合成轉(zhuǎn)移微地址。 特點(diǎn):轉(zhuǎn)移地址受到限制,但可縮短微指令長(zhǎng)度。5.3.4 微指令格式設(shè)計(jì)74 微指令的格式與微指令的編碼方式有關(guān),微指令的格式大體上可分成兩類:水平型微指令和垂直型微指令。 1.1. 水平型微指令水平型微指令 在一條微指令中定義并執(zhí)行多個(gè)并行操作微命令在一條微指令中定義并執(zhí)行多個(gè)并行操作微命令。 一般格式如下: 在實(shí)際應(yīng)用中,直接控制法、字段編譯法(直接、間接編譯法)經(jīng)常應(yīng)用在同一條水平型微指令中。從速度來看,直接控制法最快,字段編譯法要經(jīng)過譯碼,所以會(huì)增加一些延遲時(shí)間??刂谱侄闻袆e測(cè)試字段下地址字段5.3.4 微

46、指令格式設(shè)計(jì)752. 2. 垂直型微指令垂直型微指令 在微指令中設(shè)置有微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能,稱為垂直型微指令。特點(diǎn)特點(diǎn):不強(qiáng)調(diào)實(shí)現(xiàn)微指令的并行控制功能,通常一條微指令只要求能控制實(shí)現(xiàn)一二種操作。這種微指令格式與指令相似:每條指令有一個(gè)操作碼;每條微指令有一個(gè)微操作碼。 例如,假設(shè)微指令字長(zhǎng)16位,其中微操作碼占3位,可以表示8條垂直型微指令,其中部分微指令的格式如下。5.3.4 微指令格式設(shè)計(jì)76(1)(1)寄存器寄存器寄存器傳送型微指令寄存器傳送型微指令 功能:把源寄存器數(shù)據(jù)送目標(biāo)寄存器。 第02位為微操作碼。 第37位是源寄存器編址,這五位可以指定3

47、1個(gè)寄存器之一作為源寄存器,00000可表示為由指令的地址碼部分指出源寄存器地址。 第812位是目標(biāo)寄存器的編址,這5位可以指定31個(gè)寄存器之一作為目標(biāo)寄存器,00000可表示為由指令的地址碼部分指出目標(biāo)寄存器地址。 第1315位是“其他字段”,可協(xié)助本條微指令完成其他控制功能。5.3.4 微指令格式設(shè)計(jì)77(2)(2)運(yùn)算控制型微指令運(yùn)算控制型微指令 功能:選擇運(yùn)算器(ALU)的左、右兩輸入端的信息,按ALU字段所指定的運(yùn)算功能進(jìn)行處理,并將結(jié)果送人暫存器中。 第02位為微操作碼。 第37位為運(yùn)算器左輸入源的編址,這5位可以指定31種源信息之一,00000可表示為由指令的地址碼部分指定左輸人

48、源的編址。 第812位為運(yùn)算器右輸入源的編址,這5位可以指定31種源信息之一,00000可表示為由指令的地址碼部分指定右輸入源的編址。 第1315位為ALU字段,完成八種操作之一,例如加法、減法、邏輯加、邏輯乘等等。5.3.4 微指令格式設(shè)計(jì)78(3)(3)訪問主存微指令訪問主存微指令 功能:將存儲(chǔ)器中一個(gè)單元的信息送入寄存器或?qū)⒓拇嫫髦械臄?shù)據(jù)送往存儲(chǔ)器。第02位為微操作碼。第37位為寄存器地址編址。第812位為存儲(chǔ)器編址,可以按照系統(tǒng)設(shè)計(jì)所規(guī)定的尋址方式進(jìn)行編址。第1314位規(guī)定是讀或?qū)懖僮?。?5位可協(xié)助本微指令完成其他控制功能。5.3.4 微指令格式設(shè)計(jì)79水平型微指令:水平型微指令:優(yōu)

49、點(diǎn):優(yōu)點(diǎn):并行操作能力強(qiáng)并行操作能力強(qiáng), ,效率高效率高, ,靈活性強(qiáng)靈活性強(qiáng), ,執(zhí)行一條機(jī)器指令執(zhí)行一條機(jī)器指令時(shí)所需要的微指令數(shù)量少時(shí)所需要的微指令數(shù)量少, ,執(zhí)行速度快執(zhí)行速度快; ;缺點(diǎn):缺點(diǎn):在水平型微指令中在水平型微指令中, ,每條微指令的字長(zhǎng)較長(zhǎng)每條微指令的字長(zhǎng)較長(zhǎng), ,且要求設(shè)計(jì)且要求設(shè)計(jì)者對(duì)機(jī)器的結(jié)構(gòu)、數(shù)據(jù)通路、時(shí)序系統(tǒng)等非常了解者對(duì)機(jī)器的結(jié)構(gòu)、數(shù)據(jù)通路、時(shí)序系統(tǒng)等非常了解, ,才能夠編才能夠編制出理想的微程序。制出理想的微程序。垂直型微指令:垂直型微指令:優(yōu)點(diǎn):優(yōu)點(diǎn):垂直型微指令的格式與指令的格式非常相似垂直型微指令的格式與指令的格式非常相似,因此因此容易掌容易掌握和使用

50、握和使用,編程簡(jiǎn)單編程簡(jiǎn)單,不需要過多地了解硬件細(xì)節(jié)不需要過多地了解硬件細(xì)節(jié),且且微指令的字微指令的字長(zhǎng)較短長(zhǎng)較短。缺點(diǎn):缺點(diǎn):并行操作能力差并行操作能力差, ,效率低效率低, ,執(zhí)行一條機(jī)器指令所需要的微執(zhí)行一條機(jī)器指令所需要的微指令數(shù)量多指令數(shù)量多, ,執(zhí)行時(shí)間長(zhǎng)執(zhí)行時(shí)間長(zhǎng); ;5.3.5 微指令的執(zhí)行方式80微指令的執(zhí)行方式有串行和并行微指令的執(zhí)行方式有串行和并行2種種 1.1.串行方式串行方式 在串行方式中,取微指令和執(zhí)行微指令是順序進(jìn)行的,在一條微指令被取出并執(zhí)行完畢之后才能夠讀取下一條微指令。5.3.5 微指令的執(zhí)行方式81(2)(2)并行方式并行方式 將執(zhí)行本條微指令的功能與取下

51、一條微指令的操作在時(shí)間將執(zhí)行本條微指令的功能與取下一條微指令的操作在時(shí)間上重疊起來。(上重疊起來。(因?yàn)閮煞N操作是在不同的部件中完成的) 實(shí)現(xiàn)方法:增加了微指令寄存器微指令寄存器。5.4 硬布線控制82 硬布線控制器是另一種控制器的實(shí)現(xiàn)方式,硬布線控制器是另一種控制器的實(shí)現(xiàn)方式,也是早期計(jì)算機(jī)唯一可以采用的方案。當(dāng)也是早期計(jì)算機(jī)唯一可以采用的方案。當(dāng)前的前的RISC類型的計(jì)算機(jī)和高性能計(jì)算機(jī)中類型的計(jì)算機(jī)和高性能計(jì)算機(jī)中也普遍選用硬布線控制器。也普遍選用硬布線控制器。 5.4 硬布線控制83硬布線控制器也稱為組合邏輯控制器。1.1.硬布線控制器的基本結(jié)構(gòu)硬布線控制器的基本結(jié)構(gòu)邏輯網(wǎng)絡(luò)的輸入信號(hào)

52、有3個(gè)來源:(1)來自指令操作碼譯碼器的輸出;(2)來自執(zhí)行部件的反饋信息;(3)來自時(shí)序產(chǎn)生器的時(shí)序信號(hào),包括節(jié)拍電位信號(hào)(機(jī)器周期信號(hào))和節(jié)拍脈沖信號(hào)(時(shí)鐘周期信號(hào))邏輯網(wǎng)絡(luò)的輸出信號(hào):微操作控制信號(hào),用來對(duì)執(zhí)行部件進(jìn)行控制;還有一部分信號(hào)可以根據(jù)條件變量來改變時(shí)序發(fā)生器的計(jì)數(shù)順序,以便跳過某些狀態(tài),縮短指令周期。5.4 硬布線控制842.機(jī)器周期的區(qū)分 假設(shè)一個(gè)指令周期中包含4個(gè)機(jī)器周期,可以考慮如下兩種基本的解決方案:(1)使用一個(gè)2位的計(jì)數(shù)器進(jìn)行計(jì)數(shù),其譯碼輸出產(chǎn)生的4個(gè)狀態(tài)分別表示當(dāng)前所處的機(jī)器周期;(2)用四位觸發(fā)器來分別表示4個(gè)周期,當(dāng)機(jī)器處于某一周期時(shí),相應(yīng)的觸發(fā)器處于“1”

53、狀態(tài),而其余3個(gè)觸發(fā)器則處于“0”狀態(tài),4位移位寄存器即可實(shí)現(xiàn)此功能。 采用計(jì)數(shù)器來區(qū)分機(jī)器周期時(shí),譯碼器的輸出可能會(huì)產(chǎn)生毛刺。5.4 硬布線控制853.3.控制信號(hào)的產(chǎn)生控制信號(hào)的產(chǎn)生 以加法指令為例,用cy1、cy2、cy3分別表示當(dāng)前處在取指周期、取數(shù)周期和執(zhí)行周期。 加法指令的取指周期所產(chǎn)生的信號(hào)有:根據(jù)“加法指令”和“取指周期”2個(gè)條件,可得各信號(hào)的邏輯表達(dá)式為: PCAB=加法指令cy1 ADS= 加法指令cy1T1 MIO= 加法指令cy1 WR= 加法指令cy1 DBIR= 加法指令cy1 PC+1=加法指令cy11, 0/, 1/,PCIRDBRWIOMADSABPC5.4

54、硬布線控制86 考慮到取指周期中的操作對(duì)所有指令都是相同的,與具體指令類型無關(guān),因此可將上述表達(dá)式改寫為: PCAB=cy1 ADS= cy1T1 MIO= cy1 WR= cy1 DBIR= cy1 PC+1=cy1 類似的,可以得到取數(shù)周期和執(zhí)行周期中控制信號(hào)的邏輯表達(dá)式。 對(duì)所有指令都進(jìn)行分析之后,若一個(gè)信號(hào)在若干條指令的多個(gè)機(jī)器周期中均出現(xiàn),可以將這些信號(hào)組合起來。5.4 硬布線控制874.4.與微程序控制器的比較與微程序控制器的比較 硬布線控制器與微程序控制器最主要的差異在于以下2方面。(1)(1)實(shí)現(xiàn)方式實(shí)現(xiàn)方式 微程序控制器采用微程序設(shè)計(jì)技術(shù),將事先編寫好的微程序存放在控制存儲(chǔ)器

55、中,電路比較規(guī)整,當(dāng)需要對(duì)微程序進(jìn)行修改時(shí),只需要對(duì)控制存儲(chǔ)器中的內(nèi)容進(jìn)行相應(yīng)修改,使用方便; 硬布線控制器通過組合邏輯電路來產(chǎn)生控制信號(hào),在設(shè)計(jì)期間需要對(duì)所有指令進(jìn)行統(tǒng)一分析后再設(shè)計(jì)電路,電路結(jié)構(gòu)復(fù)雜,當(dāng)對(duì)指令系統(tǒng)進(jìn)行修改時(shí),需要對(duì)整個(gè)邏輯電路進(jìn)行變動(dòng),當(dāng)指令系統(tǒng)非常復(fù)雜時(shí),修改非常麻煩。(2)(2)性能性能 在相同的半導(dǎo)體工藝條件下,微程序控制的速度比硬布線控制的速度低,因此其性能優(yōu)于微程序控制器。 5.5.1 Pentium微處理器 5.5.2 PowerPC處理器 5.5.3 MIPS處理器5.5 典型微處理器885.5.3 MIPS處理器89指令存儲(chǔ)器AddrDataPC指令寄存器指

56、令31:26指令25:21指令20:16指令15:0ABALUZeroOvALU結(jié)果ALUOut16擴(kuò)展3201數(shù)據(jù)存儲(chǔ)器AddrReadDataWriteDataPC計(jì)算PCIMMNPC261F012M1數(shù)據(jù)數(shù)據(jù)寄存器寄存器012寄存器堆A1A2A3WDRD1RD2控制器NPCOpDMWrBSelALUOpZeroIRWrPCWrExtOpRegSelWDSelIR31:26,IR5:0 MIPS32微處理器結(jié)構(gòu)微處理器結(jié)構(gòu)RFWrClkReset功能部件建模:PC 程序計(jì)數(shù)器 功能與控制 PCWr決定寫入91輸入NPC32:0PCWr, Clk, RST輸出 PC31:2數(shù)據(jù)

57、結(jié)構(gòu)addr,30位寄存器行為功能操作計(jì)數(shù)輸出PC addr異步復(fù)位if RST then addr 32h40000同步加載Clk上升沿時(shí):if PCWr then addr NPC功能部件建模:IM 數(shù)據(jù)寬度:32位 存儲(chǔ)容量:可以任意大 仿真:不超過1K字為宜 功能與控制 無需控制,數(shù)據(jù)經(jīng)過的固定延遲后輸出92輸入AIn31:0輸出DO31:0數(shù)據(jù)結(jié)構(gòu)Mem為32位XX字的只讀存儲(chǔ)器行為功能操作數(shù)據(jù)輸出DO MemAIn功能部件建模:寄存器堆 功能與控制 讀出:不需要控制 寫入:RFWr為1寄存器堆A1A2A3WDRD1RD2輸入A14:0、A24:0、A34:0、WD31:0RFWr、

58、Clk輸出 RD131:0、RD231:0數(shù)據(jù)結(jié)構(gòu)RF0.31,32個(gè)32位寄存器行為功能操作讀出寄存器值 RD1RFA1;RD2RFA2寫入寄存器值Clk上升沿時(shí)if (RFWr) then RFA3WD功能部件建模:ALU 功能與控制 ALUOp3:0決定執(zhí)行何種計(jì)算 Zero:判斷A是否等于B94輸入 A31:0,B31:0,ALUOp3:0輸出 C31:0,Zero行為ALUOp功能操作-A等于B?Zero (A=B) ? 1 : 00000加C A + B0001減C A B0010與C A & B0011或C A | B0100異或C A B.ALUZeroALU結(jié)果功能部

59、件建模:DM 數(shù)據(jù)寬度:32位 存儲(chǔ)容量:可以任意大 仿真:不超過1K字為宜 功能與控制 讀出:不需要控制 寫入:DMWr為195輸入AIn31:0; WD31:0DMWr; Clk輸出 DO31:0數(shù)據(jù)結(jié)構(gòu)Mem為32位XX字的存儲(chǔ)器行為功能描述讀存儲(chǔ) DO MemAIn寫存儲(chǔ)Clk上升沿時(shí)if DMWr then MemAIn WD功能部件建模:NPC 計(jì)算下條指令的地址 功能與控制 NPCOp1:0決定如何計(jì)算PC96輸入PC31:2, Imm25:0NPCOp1:0輸出 NPC31:2行為NPCOp功能操作00順序地址NPC PC + 401計(jì)算B指令轉(zhuǎn)移地址NPC PC + sign

60、_ext(imm16) | 0010計(jì)算J類指令轉(zhuǎn)移地址NPC PC31:28 | imm26 | 0011.功能部件建模:EXT 立即數(shù)擴(kuò)展 功能與控制 EXTOp1:0決定如何擴(kuò)展輸入Imm1615:0EXTOp1:0輸出Imm3231:0行為EXTOp功能操作00無符號(hào)擴(kuò)展 IMM32 16b0 | Imm1601符號(hào)擴(kuò)展IMM32 16Imm1615, Imm1610高位擴(kuò)展IMM32 Imm16 | 16b011。功能部件及其控制信號(hào)使用約束 注意時(shí)鐘沿與狀態(tài)間的關(guān)系 寄存器的值:clock正邊沿前準(zhǔn)備,正邊沿寫入 PC是發(fā)動(dòng)機(jī)、IR是離合器 PC不變:IR不變 IR不變:A/B、EXT、A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論