計(jì)算機(jī)組成原理 (6)課件_第1頁
計(jì)算機(jī)組成原理 (6)課件_第2頁
計(jì)算機(jī)組成原理 (6)課件_第3頁
計(jì)算機(jī)組成原理 (6)課件_第4頁
計(jì)算機(jī)組成原理 (6)課件_第5頁
已閱讀5頁,還剩112頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第6章控制系統(tǒng)與CPU6.1控制器概述.6.1.1指令執(zhí)行的基本步驟

1.取指令根據(jù)指令所處的存儲器單元地址(由程序計(jì)數(shù)器PC提供),從存儲器(RAM)中取出所要執(zhí)行的指令。

2.分析指令

3.執(zhí)行指令根據(jù)指令功能,執(zhí)行指令所規(guī)定的操作,并根據(jù)需要,保存操作結(jié)果。

控制器的主要功能就是按取指令、分析指令、執(zhí)行指令這樣的步驟進(jìn)行周而復(fù)始的控制過程,直到完成程序所規(guī)定的任務(wù)并停機(jī)為止。

圖6-1描述了指令執(zhí)行的一般過程。圖6-1(a)為一個(gè)簡單的CPU模型,所執(zhí)行的指令的功能是(A)+(R7)→A,圖6-1(b)描述了指令執(zhí)行的一般流程。126.1.2控制器的基本功能

控制器一般具有如下功能:1.控制指令的正確執(zhí)行其中包括指令流出的控制、分析指令和執(zhí)行指令的控制、指令流向的控制。

指令流出控制也就是對取指令的控制。首先給出指令地址,并向存儲器發(fā)出讀命令。讀出的指令經(jīng)存儲器數(shù)據(jù)寄存器存放到指令寄存器(IR)中,即:

(PC)→MAR,Read(MDR)→IR

指令譯碼器(ID)譯碼分析,確定操作性質(zhì),判明尋址方式并形成操作數(shù)的有效地址。

指令流向控制即下條指令地址的形成控制。2.控制程序和數(shù)據(jù)的輸入及結(jié)果的輸出3.異常情況和特殊請求的處理控制器必須具有檢測和處理這些異常情況和特殊請求的功能。36.1.3控制器的組成控制器一般由以下幾個(gè)基本部分組成,如圖6-2所示。圖6-2控制器組成框圖

41.指令部件指令部件的主要功能是完成取指令和分析指令。包括下面幾個(gè)部件。

⑴程序計(jì)數(shù)器PC⑵指令寄存器IR

⑶指令譯碼器ID

⑷地址形成部件

根據(jù)機(jī)器所規(guī)定的各種尋址方式,用來形成操作數(shù)有效地址。2.時(shí)序控制部件

一條指令的執(zhí)行過程可以分解為若干簡單的基本操作,稱之為微操作,這些微操作是有著嚴(yán)格的時(shí)間順序要求的,不可隨意顛倒。時(shí)序控制部件就是用

⑴脈沖源

⑵啟停電路可靠地送出或封鎖主時(shí)鐘脈沖,控制時(shí)序信號的發(fā)生與停止。5

⑶時(shí)序信號發(fā)生器

不同的機(jī)器有著不同的時(shí)序信號。有三種時(shí)序控制方式:同步、異步和聯(lián)合控制方式。在同步控制的機(jī)器中,一般包括周期、節(jié)拍、脈沖等三級時(shí)序信號。

3.微操作控制信號形成部件微操作控制信號形成部件的功能是根據(jù)指令部件提供的操作控制電位、時(shí)序部件所提供的各種時(shí)序信號,以及有關(guān)的狀態(tài)條件,產(chǎn)生機(jī)器所需要的各種微操作控制信號。

4.中斷控制邏輯

5.程序狀態(tài)寄存器PSRVAX-11的程序狀態(tài)字的結(jié)構(gòu)格式為:3130292827262524232221201615876543210CMTP×FPDISCMODEPMODE0IPL×DVFUIVTNZVC

8086微處理器的程序狀態(tài)字的結(jié)構(gòu)格式為:11109876420OFDFIFTFSFZFAFPFCF6

6.控制臺6.1.4控制器的組成方式

1.組合邏輯型這種控制器稱為組合邏輯控制器。

優(yōu)點(diǎn)是速度快。

缺點(diǎn)是微操作信號發(fā)生器結(jié)構(gòu)不規(guī)整,使得設(shè)計(jì)、調(diào)試、維修較困難,難以實(shí)現(xiàn)設(shè)計(jì)自動化。一旦控制部件構(gòu)成之后,要想增加新的控制功能是不可能的。

2.存儲邏輯型(微程序)這種控制器稱為微程序控制器。

優(yōu)點(diǎn)是設(shè)計(jì)規(guī)整,調(diào)試、維修以及更改、擴(kuò)充指令的方便,易于實(shí)現(xiàn)自動化設(shè)計(jì),已成為當(dāng)前控制器的主流。

缺點(diǎn)是由于增加了一級控制存儲器(CM或CS),所以指令的執(zhí)行速度比組合邏輯控制器慢。3.組合邏輯和存儲邏輯結(jié)合型(PLA)它是吸收前兩種的設(shè)計(jì)思想來實(shí)現(xiàn)的。7圖6-3微操作信號發(fā)生器示意圖

86.2控制器控制方式與時(shí)序系統(tǒng)6.2.1控制方式一般而言,有三種時(shí)序控制方式:同步、異步和聯(lián)合控制方式。

⒈同步控制方式指控制序列中每步的執(zhí)行都由確定的具有基準(zhǔn)時(shí)標(biāo)的時(shí)序信號來控制。每個(gè)時(shí)序信號的結(jié)束就意味著所要求的操作已完成。隨即開始執(zhí)行下一步。

同步方式的時(shí)序信號通常由周期、節(jié)拍和脈沖組成。

⑴采用中央控制與局部控制相結(jié)合的方法

根據(jù)大多數(shù)指令的微操作序列的情況,設(shè)置一個(gè)統(tǒng)一的節(jié)拍數(shù),使大多數(shù)指令均能在統(tǒng)一的節(jié)拍內(nèi)完成。把統(tǒng)一節(jié)拍的控制稱為中央控制。對于少數(shù)在統(tǒng)一節(jié)拍內(nèi)不能完成的指令,采用延長節(jié)拍或增加節(jié)拍數(shù),使之在延長節(jié)拍內(nèi)完成,執(zhí)行完畢再返回中央控制。

9

⑵采用不同的機(jī)器周期和延長節(jié)拍的方法把在延長節(jié)拍內(nèi)的控制稱為局部控制。

⑶采用分散節(jié)拍的方法所謂分散節(jié)拍是指運(yùn)行不同指令時(shí),需要多少節(jié)拍,時(shí)序部件就發(fā)生多少節(jié)拍。⒉異步控制方式

所謂異步控制方式,是指不僅要區(qū)分不同指令所對應(yīng)的操作序列的長短,而且要區(qū)分其中每個(gè)操作的繁簡,按每條指令、每個(gè)操作的需要而占用的時(shí)間的一種控制方式。

圖6-4中央節(jié)拍與局部節(jié)拍的關(guān)系10⒊聯(lián)合控制方式是同步和異步控制方式的結(jié)合?,F(xiàn)代計(jì)算機(jī)大多采用同步控制方式或聯(lián)合控制方式。圖6-5所示為PDP-11機(jī)的同步與異步時(shí)序的銜接關(guān)系。

圖6-5同步與異步時(shí)序的銜接

116.2.2時(shí)序系統(tǒng)通常,設(shè)計(jì)時(shí)序系統(tǒng)主要是針對同步控制方式的。下面主要討論同步控制中的時(shí)序系統(tǒng)。

⒈指令周期與機(jī)器周期

機(jī)器周期又稱CPU周期,它是指令執(zhí)行過程中的相對獨(dú)立的階段。一條指令的執(zhí)行過程(即指令周期)由若干個(gè)機(jī)器周期所組成,每個(gè)機(jī)器周期完成一個(gè)基本操作。一般機(jī)器的CPU周期有取指周期、取數(shù)周期(有的機(jī)器還進(jìn)一步分為取源數(shù)周期和取目的數(shù)周期)、執(zhí)行周期、中斷周期等。由于CPU內(nèi)部操作速度快,而CPU訪存所花時(shí)間較長,所以許多計(jì)算機(jī)系統(tǒng)往往以主存周期為基礎(chǔ)來規(guī)定CPU周期,以便二者協(xié)調(diào)工作。⒉節(jié)拍在一個(gè)機(jī)器周期內(nèi),要完成若干個(gè)微操作,這些微操作不但需要占用一定的時(shí)間,而且有一定的先后次序。因此,基本的控制方法是把一個(gè)機(jī)器周期等分成若干個(gè)時(shí)間區(qū)間,每一時(shí)間區(qū)間稱為一個(gè)節(jié)拍,一個(gè)節(jié)拍對應(yīng)一個(gè)電位信號,控制一個(gè)或幾個(gè)微操作的執(zhí)行12圖6-6三級時(shí)序系統(tǒng)3.脈沖在一個(gè)節(jié)拍內(nèi),有時(shí)還設(shè)置一個(gè)或幾個(gè)工作脈沖,用于寄存器的復(fù)位和接收數(shù)據(jù)等。上述的周期、節(jié)拍、脈沖構(gòu)成了三級時(shí)序系統(tǒng),它們之間關(guān)系如圖6-6所示。

微型機(jī)中常用的時(shí)序系統(tǒng)與上述三級時(shí)序系統(tǒng)有所不同,稱之為時(shí)鐘周期時(shí)序系統(tǒng)。13圖6-7時(shí)鐘周期時(shí)序系統(tǒng)

圖6-7所示的是一典型指令的基本時(shí)序,一個(gè)指令周期包含三個(gè)機(jī)器周期:取指周期、存儲器讀周期和存儲器寫周期,三個(gè)周期中分別包含4個(gè)、3個(gè)和3個(gè)時(shí)鐘周期。146.3CPU的總體結(jié)構(gòu)CPU即中央處理器,它包含運(yùn)算器和控制器兩個(gè)部分。6.3.1寄存器的設(shè)置盡管不同計(jì)算機(jī)的CPU結(jié)構(gòu)存在著這樣那樣的差別,但在CPU內(nèi)部一般都設(shè)置下列寄存器:(1)指令寄存器lR;(2)程序計(jì)數(shù)器PC;(3)累加寄存器AC;(4)程序狀態(tài)寄存器PSR;(5)地址寄存器MAR;(6)數(shù)據(jù)緩沖寄存器MDR(或MBR)。累加寄存器簡稱累加器AC。

通用寄存器是一組程序可訪問的、具有多種功能的寄存器。在指令系統(tǒng)中為這些寄存器分配了編號(或稱寄存器地址),可以編程指定使用其中的某個(gè)寄存器。156.3.2數(shù)據(jù)通路結(jié)構(gòu)及指令流程分析

⒈單總線結(jié)構(gòu)圖6-8所示為一個(gè)典型的單總線結(jié)構(gòu)計(jì)算機(jī)框圖。圖6-8典型的單總線結(jié)構(gòu)計(jì)算機(jī)框圖

“?!睘榭刂崎T,在相應(yīng)控制信號控制下打開相應(yīng)的控制門,建立相應(yīng)寄存器與總線間的聯(lián)系。16

例6.1現(xiàn)分析執(zhí)行一條加法指令:ADD(R1),R0的操作流程。該指令是實(shí)現(xiàn)((R1))+(R0)→R0操作,執(zhí)行本指令需要下列動作。

(1)(PC)→MAR,Read,PC→Y;送指令地址,讀主存(2)M→MDR→IR,(Y)+1→Z;取指令到IR,PC+1暫存于Z(3)(Z)→PC;PC+1→PC(4)(R1)→MAR;Read;送源操作數(shù)地址(5)M→MDR→Y;取出源操作數(shù)到Y(jié)中(6)(Y)+(R0)→Z;執(zhí)行加法運(yùn)算,結(jié)果暫存于Z(7)(Z)→R0;加法結(jié)果送回目標(biāo)寄存器

取指

⒉雙總線結(jié)構(gòu)圖6-9是一種雙總線結(jié)構(gòu)的CPU組成框圖。取數(shù)17圖6-9雙總線結(jié)構(gòu)的CPU組成框圖“?!睘榭刂崎T,控制著相應(yīng)寄存器的輸出(送至B總線),或控制相應(yīng)寄存器的輸入(從F總線接收信息)。2018

例6.2分析執(zhí)行加法指令:ADD(R1),R0的操作流程和控制信號序列:加法指令完成的功能是:((R1))+(R0)→R0操作

解:表6-1加法指令的執(zhí)行流程操作流程

控制信號序列(1)(PC)→MAR,ReadPC→B、Gon、F→MAR、Read、F→Y(2)(PC)+1→PCINC、F→PC(3)M→MDR→IRMDR→B、Gon、F→IR(4)(R1)→MAR,ReadR1→B、Gon、F→MAR、Read(5)M→MDR→YMDR→B、Gon、F→Y(6)(Y)+(R0)→R0R0→B、ADD、F→R0

例6.3分析執(zhí)行減法指令SUBX(R1),(R2)+的操作流程和控制信號序列。

解:取指取數(shù)19表6-2減法指令的執(zhí)行流程

指令流程

控制信號序列(1)(PC)→MAR,ReadPC→B、Gon、F→MAR、Read、F→Y(2)(PC)+l→PCINC、F→PC(3)(M→MDR)→IRMDR→B、Gon、F→IR(4)(PC)→MAR,ReadPC→B、Gon、F→MAR、Read、F→Y(5)(PC)+l→PCINC、F→PC(6)(M→MDR)→YMDR→B、Gon、F→Y(7)(Y)+(R1)→MAR,ReadR1→B、ADD、F→MAR、Read(8)(M→MDR)→TEMPMDR→B、Gon、F→TEMP(9)(R2)→MAR,ReadR2→B、Gon、F→MAR、Read、F→Y(10)(R2)+1→R2INC、F→R2(11)(M→MDR)→YMDR→B、Gon、F→Y(12)(Y)-(TEMP)→MDRTEMP→B、SUB、F→MDR(13)(MDR)→M,WriteWrite取形式地址X取指形成EA取第2操作數(shù)(R2)-(X(R1))18206.4模型機(jī)的總體結(jié)構(gòu)6.4.1模型機(jī)的數(shù)據(jù)通路

⒈模型機(jī)的數(shù)據(jù)通路模型機(jī)的數(shù)據(jù)通路如圖6-10所示。

設(shè)模型機(jī)字長為16位,指令、數(shù)據(jù)均為16位長。全機(jī)采用總線結(jié)構(gòu),分為內(nèi)部總線和系統(tǒng)總線。

⒉模型機(jī)的ALU功能模型機(jī)ALU采用SN74181中規(guī)模集成電路構(gòu)成。在M、S3、S2、S1、S0控制信號控制下可實(shí)現(xiàn)16種算術(shù)運(yùn)算和16種邏輯運(yùn)算。表6-3列出了模型機(jī)所涉及的幾種操作。ALU的輸出經(jīng)移位器送入總線BUS2,移位器采用直送、斜送的方法實(shí)現(xiàn)直接傳送(DM)、左移一位(SL)、右移一位(SR)。模型機(jī)中未使用字節(jié)交換功能。模型機(jī)的主存按字(16位)進(jìn)行編址,主存容量為64K字。21圖6-10模型機(jī)的數(shù)據(jù)通路結(jié)構(gòu)框圖

22表6-3模型機(jī)所涉及的算術(shù)邏輯操作6.4.2模型機(jī)的指令系統(tǒng)

⒈模型機(jī)的指令格式模型機(jī)共設(shè)置16條指令,用四位操作碼表示,指令格式如圖6-11所示。23圖6-11模型機(jī)指令格式

24表6-4模型機(jī)的指令系統(tǒng)

指令名稱操作碼指令功能傳送(MOV)0000(ES)→ED加法(ADD)0001(ED)+(ES)→ED減法(SUB)0010(ED)一(ES)→ED邏輯與(AND)0011(ED)∧(ES)→ED邏輯或(OR)0100(ED)∨(ES)→ED異或(EOR)0101(ED)(ES)→ED加1(INC)0110(ED)+1→ED取反(COM)0111ED→ED左移(ROL)1000(ED)左移一位→ED,移位方式由指令第8~6位指定右移(ROR)1001(ED)右移一位→ED,移位方式由指令第8~6位指定無條件轉(zhuǎn)移(JP)1010(PC)+位移量D→PC有進(jìn)位轉(zhuǎn)移(JC)1011若CC=1,則(PC)+D→PC結(jié)果零轉(zhuǎn)移(JZ)1100若CZ=1,則(PC)+D→PC轉(zhuǎn)子程序(JSR)1101(PC)入棧,(PC)→PC返回(RTS)1110從棧頂彈出返回地址→PC停機(jī)(HALT)1111停機(jī)25轉(zhuǎn)子指令操作如下:

SPSP-1→MARWrite((MDR)→存儲器)(PC)+D→PC子程序結(jié)束通過返回指令從棧中彈出返回地址返回主程序。返回指令操作為:(SP)→MAR,ReadM→MDR→PC(SP)+l→SP左、右移位指令可以用單操作數(shù)指令的第8位到第6位規(guī)定移位方式,如算術(shù)移位、邏輯移位、循環(huán)移位等,在此不再詳述,讀者可自己考慮設(shè)計(jì)方案。3.模型機(jī)的尋址方式模型機(jī)的尋址方式有如下五種:⑴寄存器尋址

26尋址方式編碼為000,匯編符號為Rn,n為寄存器編號。寄存器尋址是指操作數(shù)在指定寄存器Rn中。⑵寄存器間址尋址方式編碼為001,匯編符號為@Rn或(Rn)。E=(Rn),E表示有效地址。⑶自增型寄存器間址尋址方式碼為010,匯編符號為(Rn)+。E=(Rn),再(Rn)+1→R。。

若Rn=SP,則為彈出堆棧的尋址;

若Rn=PC,則為立即尋址,立即數(shù)存放在該指令的下一個(gè)單元中⑷自減型寄存器間址尋址方式碼為011,匯編符號為-(Rn)。這種尋址方式是將指定寄存器中的內(nèi)容減1,作為操作數(shù)有效地址,并將減1結(jié)果送回原寄存器中,即27若Rn=SP,則為壓入堆棧的尋址。

但Rn≠PC,以免程序執(zhí)行出現(xiàn)混亂,因?yàn)镻C指針正常都是自增性的移動。

⑸變址型尋址尋址方式碼為100,匯編符號為X(Rn)。E=X+(Rn)

變址X存放在該指令的下一個(gè)單元中。尋址操作過程為:

(PC)→MAR,Read;送X的地址(PC)+1→PC;PC增量M→MDR→Y;取X值到Y(jié)(Y)+(Rn)→MAR;形成有效地址在上述的尋址方式中,除了自減型寄存器間址不能使用PC外,其他可編程寄存器均可使用,沒有特殊的限制。286.4.3模型機(jī)的時(shí)序系統(tǒng)模型機(jī)采用同步控制方式、三級時(shí)序系統(tǒng)。1.模型機(jī)的機(jī)器周期全機(jī)設(shè)置六個(gè)機(jī)器周期:取指周期FT、取源周期ST、取目的周期DT、執(zhí)行周期ET、中斷周期IT和DMA周期DMAT。為簡化問題,本章不考慮IT與DMAT的操作。

取指周期FT主要用于實(shí)現(xiàn)取指令、分析指令和(PC)+1→PC的操作。

取源周期ST用于非寄存器尋址的雙操作數(shù)指令中源操作數(shù)地址的尋址和取源操作數(shù)。當(dāng)源尋址方式為變址尋址時(shí),需連續(xù)兩次進(jìn)入ST。

取目的周期DT用于非寄存器尋址的目的操作數(shù)地址的尋址和取目標(biāo)操作數(shù)。當(dāng)目的尋址為變址尋址時(shí),需在DT中重復(fù)一次。

執(zhí)行周期ET用于完成指令所規(guī)定的操作并保存結(jié)果。每個(gè)周期設(shè)一個(gè)周期狀態(tài)觸發(fā)器,哪個(gè)觸發(fā)器為l,機(jī)器就進(jìn)入哪個(gè)機(jī)器周期,如圖6-12所示。圖中略去了IT和DMAT。29圖6-12模型機(jī)的周期狀態(tài)觸發(fā)器

每個(gè)機(jī)器周期內(nèi)可以完成主存的一次讀、寫操作。每個(gè)周期中設(shè)置四個(gè)節(jié)拍T0、T1、T2、T3。為節(jié)省節(jié)拍,在取目的周期DT和執(zhí)行周期ET中安排兩種節(jié)拍。根據(jù)微操作的需要,可選擇兩個(gè)節(jié)拍,也可選擇四個(gè)節(jié)拍,如圖6-13所示。每個(gè)節(jié)拍內(nèi)設(shè)置一個(gè)脈沖,用于寄存器接收代碼,圖6-10所示數(shù)據(jù)通路中的所有CP信號如CPIR、CPPC等均為脈沖信號。寄存器接收數(shù)據(jù)使用脈沖的前沿。脈沖的后沿用于周期、節(jié)拍的轉(zhuǎn)換。302.模型機(jī)的節(jié)拍與時(shí)序節(jié)拍由節(jié)拍發(fā)生器產(chǎn)生,其電路如圖6-13所示。該電路由兩位T型觸發(fā)器構(gòu)成模4計(jì)數(shù)器,經(jīng)譯碼產(chǎn)生四個(gè)節(jié)拍電位T0、T1、T2、T3。圖6-13模型機(jī)的節(jié)拍發(fā)生器原理圖

轉(zhuǎn)4331圖6-14模型機(jī)的三級時(shí)序關(guān)系

三級時(shí)序系統(tǒng)的時(shí)序關(guān)系如圖6–14所示。

326.5組合邏輯控制器設(shè)計(jì)6.5.1設(shè)計(jì)的步驟一般來說,組合邏輯控制器的設(shè)計(jì)有如下步驟。⒈繪制指令操作流程圖指令流程圖有兩種繪制的思路。

一種是以指令為線索,按指令類型分別繪制各條指令的流程。這種方法對一條指令的全過程有清晰的線索,易于理解。

另一種方法是以周期為線索,按機(jī)器周期擬定各類指令在本周期內(nèi)的操作流程,再以操作時(shí)間表的形式列出各個(gè)節(jié)拍內(nèi)所需的控制信號及它們的條件。這種方法便于微操作控制信號的綜合、化簡,容易取得優(yōu)化結(jié)果。為理解控制器設(shè)計(jì)方法,模型機(jī)設(shè)計(jì)基本采用了后一種方法。⒉編排指令操作時(shí)間表

⒊進(jìn)行微操作綜合對操作時(shí)間表中各個(gè)微操作控制信號分別按其條件進(jìn)行歸納、綜合,列出其綜合的邏輯表達(dá)式,并進(jìn)行適當(dāng)?shù)恼{(diào)整、化簡,得到比較合理的邏輯表達(dá)式。33

⒋設(shè)計(jì)微操作控制信號形成部件根據(jù)各個(gè)微操作控制信號的邏輯表達(dá)式,用一系列組合邏輯電路加以實(shí)現(xiàn)。6.5.2模型機(jī)的設(shè)計(jì)

1.指令操作流程圖⑴取指周期操作流程圖

圖6-15所示為取指公操作流程

圖6-15取指公操作流程

假定訪存操作安排在三個(gè)節(jié)拍內(nèi)完成,

在取指周期內(nèi):

T0送指令地址;T1讀指令到MDR;T2將現(xiàn)行指令傳送到IR并由ID進(jìn)行譯碼;T3根據(jù)指令譯碼進(jìn)行判斷,以確定下面應(yīng)進(jìn)入哪個(gè)機(jī)器周期。

判斷框內(nèi)的JUMP為轉(zhuǎn)移類指令的特征,其邏輯表達(dá)式為:34判斷框內(nèi)的SR、DR分別為源、目標(biāo)尋址方式為寄存器尋址的特征,其邏輯表達(dá)式為:⑵取源周期的操作流程圖雙操作數(shù)指令的源尋址方式為非寄存器尋址時(shí),需進(jìn)入取源周期。當(dāng)源尋址方式為變址尋址時(shí),在取源周期的T3建立Repeat信號和1→ST信號,使之重復(fù)進(jìn)入ST。在重復(fù)的ST的T3時(shí),將Repeat信號清除,進(jìn)入下一個(gè)周期。取源周期的指令流程圖如圖6-16所示。35圖6-16取源周期的指令流程36例6-16取源周期操作流程圖中源尋址方式的判斷條件是源尋址方式的譯碼輸出。其中:

(RS)=IR11·IR10·IR9(RS)+=IR11·IR10·IR9-(RS)=IR11·IR10·IR9XS=IR11·IR10·IR9⑶取目的周期的操作流程圖雙操作數(shù)指令和單操作數(shù)指令的目的尋址方式為非寄存器尋址時(shí),進(jìn)入取目的周期,完成目的操作數(shù)地址的尋址并讀取目的操作數(shù),操作流程如圖6-17所示。由于目的操作數(shù)在執(zhí)行周期才送入ALU的A輸入端運(yùn)算,所以取出的目的操作數(shù)暫不傳送,而保留在MDR中,因此對于非變址尋址的尋址方式,只安排兩個(gè)節(jié)拍即可完成操作。37圖6-17非MOV指令取目的周期的操作流程圖MOV指令的目的尋址為非寄存器尋址時(shí),也需進(jìn)入目的周期,但因MOV指令只需傳送目的地址而不需取目的操作數(shù),因而操作比圖6-17所示的流程簡單,如圖6-1838圖6-18MOV指令取目的周期的操作流程圖⑷執(zhí)行周期的操作流程①傳送類指令如圖6-19所示39圖6-19MOV指令的執(zhí)行周期流程

②運(yùn)算類指令模型機(jī)的運(yùn)算類指令有雙操作數(shù)指令和單操作數(shù)指令兩種格式,完成算術(shù)加、算術(shù)減、邏輯與、邏輯或、邏輯異或、增1、取反、移位等功能,如圖6-20~圖6-21所示。這一類指令的操作結(jié)果影響標(biāo)志寄存器的狀態(tài)。40圖6-20雙操作數(shù)指令的執(zhí)行周期流程③轉(zhuǎn)移類指令為簡單起見,模型機(jī)的狀態(tài)標(biāo)志只有CC和CZ兩個(gè),這樣轉(zhuǎn)移類指令只有無條件轉(zhuǎn)移、有進(jìn)位位轉(zhuǎn)移和結(jié)果為零轉(zhuǎn)移,如圖6-22所示。41

轉(zhuǎn)移指令執(zhí)行周期的主要操作是形成目標(biāo)地址:(PC)+IR(D)→PC④停機(jī)指令本指令的執(zhí)行周期只產(chǎn)生一個(gè)停機(jī)信號,如圖6-23所示。圖6-23停機(jī)指令流程

42⑤轉(zhuǎn)子/返回指令

為了準(zhǔn)確地返回到主程序(調(diào)用程序),必須保留主程序調(diào)用指令的下一條指令地址(PC的值),并在子程序(被調(diào)用程序)的最后安排一條返回指令,恢復(fù)被保留的PC值。為便于實(shí)現(xiàn)多級程序調(diào)用,多數(shù)計(jì)算機(jī)采用堆棧保存PC值,如圖6-24所示。圖6-24轉(zhuǎn)子/返回指令執(zhí)行周期流程轉(zhuǎn)圖6-13圖6-25指令周期結(jié)束后的檢測432.指令操作時(shí)間表模型機(jī)操作時(shí)間表如表6-5~表6-13所示。4445464748495051表6-11停機(jī)指令執(zhí)行周期的操作時(shí)間表周期節(jié)拍微操作控制信號

電位信號脈沖信號

ET

Tn0→RUNT1表6-11停機(jī)指令執(zhí)行周期的操作時(shí)間表周期節(jié)拍微操作控制信號

電位信號脈沖信號

ET

T0PC→BUS1[JP+JC?CC+JZ?CZ]S3S2S1S0MDMCPY[(JP+JC?CC+JZ?CZ)?P]

T1IR(D)→BUS1[JP+JC?CC+JZ?CZ]S3S2S1S0M[JP+JC?CC+JZ?CZ]DM1→FT[1→1T?1→DMA]

CPPCI(JP+JC·cc+JZ·Cz)·P]CPFT[P]CPST[P]CPDT[P]CPET[P]

5253下面對操作時(shí)間表做簡單說明。①表中控制信號后面中括號中的內(nèi)容為該控制信號的產(chǎn)生條件。③表中未考慮在指令周期結(jié)束時(shí)出現(xiàn)中斷請求、DMA請求和電源失效等情況。實(shí)際應(yīng)用中,一條指令執(zhí)行結(jié)束,若有電源故障、中斷請求,則應(yīng)進(jìn)入中斷周期處理;若有DMA請求,則進(jìn)入DMA周期處理。沒有發(fā)生上述情況,則進(jìn)入取指周期,取下條指令。④未考慮模型機(jī)移位指令實(shí)現(xiàn)的細(xì)節(jié)問題,如何實(shí)現(xiàn)不同的移位方式,讀者可自行考慮。⑤采用變址尋址時(shí)需在相應(yīng)的取數(shù)周期內(nèi)重復(fù)一次,因此設(shè)Repeat信號。實(shí)現(xiàn)方法是采用一位計(jì)數(shù)器,用CPRepeat信號控制Repeat信號的置1和清0。如圖6-26所示,系統(tǒng)啟動運(yùn)行時(shí),由總清信號Reset將FT置1,計(jì)數(shù)器Repeat清0。系統(tǒng)由FT進(jìn)入ST或DT時(shí),只要不是變址尋址,就不會產(chǎn)生CPRepeat信號,使Repeat保持0。如果是變址尋址,則在T3拍產(chǎn)生CPRepeat信號,第一次時(shí)將Repeat置1,重復(fù)周期時(shí)在T3又產(chǎn)生CPRepeat信號,將Repeat清0

②對于脈沖信號,必須有脈沖控制,P表示脈沖前沿起作用,P表示脈沖后沿起作用。一般周期、節(jié)拍的轉(zhuǎn)換用P,寄存器接收代碼用P。

54圖6-26Repeat信號的產(chǎn)生及部分時(shí)間關(guān)系

3.微操作控制信號綜合對操作時(shí)間表中的各個(gè)控制信號進(jìn)行歸納、綜合,將時(shí)間表中的所有相同信號按其條件寫出綜合邏輯表達(dá)式。表達(dá)式一般包括下列因素:

R/W=FT?T1+ST?T1+DT?T1?(MOV+XD)+ET?T2?RTSIR(D)(指令地址碼部分IR11~I(xiàn)R0)→BUS1=ET?T1?(JP+JC?CC+JZ?CZ)+ET?T3?JSR

55PC→BUS1=FT?(T0+T1)+ST?T0?(IR8IR7IR6+Xs?Repeat)+ST?T1?(IR8IR7IR6?(RS)+XS?Repeat)+DT?T0?(IR2IR1IR0+XD?Repeat)+DT?T1?(IR2IR1IR0?(RD)+XD?Repeat)+DT?T3?IR2IR1IR0?MOV+ET?T0?IR8IR7IR6?SR?MOV+ET?T0?

(JP+JC?CC+JZ?CZ)+ET?T0?IR8IR7IR6?SR?(ADD+SUB+AND+OR+EOR)+ET?T1?JSRMDR→BUS1=FT?T2+ST?T2+DT?T2?XD

?Repeat+ET?T1?DR?

(ADD+SUB+AND+OR+EOR)+ET?T0?DR?(INC+COM+ROL+ROR)+ET?T3?RTS

CPMAR=[FT?T0+ST?T0+DT?T0+DT?T3?MOV+ET?T0?(JSR+RTS)]?PCPTEMP=ST?T2?(XS+Repeat)?P56TEND=T3+ET?T1?MOV+INC+COM+ROL+ROR+JP+JC+JZ)+ET?T1?DR?(ADD+SUB+AND+OR+EOR)+DT?T1?(XD+Repeat)=T3+ET?T1(IR15IR14+IR14IR13IR12+IR15IR13IR12+IR15IR14IR13)+ET?T1?DR?(IRl5IR14IRl3+IR15IRl4IRl2+IRl5IRl4IRl3)+DT?T1?

(XD十Repeat)

對邏輯表達(dá)式需進(jìn)行適當(dāng)化簡、調(diào)整,以便得到比較合理的邏輯表達(dá)式。⒋電路實(shí)現(xiàn)⑴用組合邏輯電路實(shí)現(xiàn)將各個(gè)微操作控制信號用組合邏輯電路實(shí)現(xiàn),即構(gòu)成了組合邏輯控制器的微操作控制信號形成部件。圖6-27畫出了部分微操作控制信號的邏輯電路圖。57圖6-27實(shí)現(xiàn)微操作控制信號的部分邏輯電路

⑵用PLA器件實(shí)現(xiàn)組合邏輯控制電路的優(yōu)點(diǎn)是運(yùn)行速度快。缺點(diǎn)是設(shè)計(jì)和調(diào)試的代價(jià)大,而且一旦部件構(gòu)成后修改和擴(kuò)充功能難。58

例如用PLA器件實(shí)現(xiàn)下列邏輯函數(shù),PLA的編程與實(shí)現(xiàn)如圖6-28所示。圖6-28用PLA器件實(shí)現(xiàn)邏輯函數(shù)輸入/輸出對應(yīng)函數(shù)為:F1=ABC+ABC+ABC=AB+ACF2=ABC+ABC+ABCF3=AB+ABCF4=ABC+AB

圖6-29PLA器件實(shí)現(xiàn)模型機(jī)控制信號邏輯

596.6微程序控制器設(shè)計(jì)6.6.1微程序控制器概述微程序設(shè)計(jì)的概念和原理最早由劍橋大學(xué)WVWilkes教授于1951年首先提出來的。他關(guān)注的是為設(shè)計(jì)控制器開發(fā)出一種系統(tǒng)化辦法。他在《設(shè)計(jì)自動化計(jì)算機(jī)的最好方法》一文中指出:一條機(jī)器指令可以分解為許多基本的微指令序列。1964年最先在IBM360系列機(jī)上成功得以采用。

微程序設(shè)計(jì)技術(shù)的實(shí)質(zhì)是將程序設(shè)計(jì)技術(shù)和存儲技術(shù)相結(jié)合,即用程序設(shè)計(jì)的思想方法來組織操作控制邏輯,將微操作控制信號按一定規(guī)則進(jìn)行信息編碼(代碼化),形成控制字(微指令),再把這些微指令按執(zhí)行時(shí)間的先后排列起來,存放在一個(gè)ROM中(這種存儲器稱為CM-固件)。

每條機(jī)器指令對應(yīng)一段“微程序”,或者說,一條機(jī)器指令由一段微程序來解釋。

執(zhí)行指令時(shí),通過依次讀取一條條微指令,產(chǎn)生一組組操作控制信號,控制有關(guān)功能部件完成一組組微操作。因此,又稱為存儲邏輯。60

在微程序控制機(jī)器中,涉及兩個(gè)層次:一個(gè)層次是使用機(jī)器語言的程序員所看到的傳統(tǒng)機(jī)器級–機(jī)器指令。用機(jī)器指令編制工作程序,完成某一處理任務(wù)。CPU執(zhí)行的程序存放在主存儲器中。另一個(gè)層次是硬件設(shè)計(jì)者所看到的微程序級––微指令。用微指令編制微程序,用以完成一條機(jī)器指令的功能。微程序存放在控制存儲器中。

微指令用于產(chǎn)生一組控制命令,稱為微命令,控制完成一組微操作。1.基本概念

⑴微命令微命令是構(gòu)成控制信號序列的最小單位。通常是指那些直接作用于部件或控制門電路的控制命令。

例如模型機(jī)中的PC→BUS1、R0→BUS1、S3S2S1S0M、CPIR、R/W等控制信號都稱為微命令。61⑵微操作由微命令控制實(shí)現(xiàn)的最基本的操作稱為微操作。微操作的定義可大可小,如模型機(jī)中的(PC)→MAR是一個(gè)微操作,它是在一組微命令:PC→BUS1、S3S2S1S0M、DM、CPMAR的控制下實(shí)現(xiàn)的。也可以定義小一些,如打開PC與BUS1之間的控制門也是一個(gè)微操作,它是在微命令PC→BUS1的控制下實(shí)現(xiàn)的。

⑶微指令

用以產(chǎn)生一組微命令,控制完成一組微操作的二進(jìn)制編碼字稱為微指令。

⑷微程序一系列微指令的有序集合稱為微程序。可以實(shí)現(xiàn)相應(yīng)的一條機(jī)器指令的功能。

在微程序控制的機(jī)器中,每一條機(jī)器指令都對應(yīng)著一段微程序,通過解釋執(zhí)行這段微程序,完成指令所規(guī)定的操作功能。62

⑸微周期

從控制存儲器中讀取一條微指令并執(zhí)行相應(yīng)的微操作所需的時(shí)間稱為微周期。在微程序控制的機(jī)器中,微周期是它的主要時(shí)序信號。通常一個(gè)時(shí)鐘周期為一個(gè)微周期。

⑹控制存儲器(CM或CS)存放微程序的存儲器稱為控制存儲器,也稱為微程序存儲器(固件)。

⒉微程序控制器組成結(jié)構(gòu)

圖6-30所示為微程序控制器組成框圖。

⑴控制存儲器CM控制存儲器的每個(gè)單元存放一條微指令代碼。圖6-30中每條橫線表示一個(gè)單元,其中每個(gè)交叉點(diǎn)表示微指令的一位,有“”表示該位為1,無“”表示該位為0。63圖6-30Wilkes微程序控制器原理圖

⑵微指令寄存器IR微指令通常分為兩大字段:操作控制字段與地址控制字段。操作控制字段經(jīng)譯碼或直接產(chǎn)生一組微命令,控制有關(guān)部件完成微指令所規(guī)定的微操作。地址控制字段指示下條微指令地址的形成方式或直接給出下條微指令地址。

64⑶微地址形成電路用以產(chǎn)生起始微地址和后繼微地址,保證微程序的連續(xù)執(zhí)行。⑷微地址寄存器MAR用于接收微地址形成電路送來的地址,為讀取微指令準(zhǔn)備好控制存儲器的地址。⑸譯碼與驅(qū)動電路對微地址寄存器中的微地址進(jìn)行譯碼,找到被訪問的CM單元并驅(qū)動其進(jìn)行讀取操作,讀取微指令并存放于微指令寄存器中。⒊微程序執(zhí)行過程

圖6-30中所標(biāo)示的序號表示微程序控制器的工作過程。⑴啟動取指微指令或微程序;⑵根據(jù)IR寄存器中的指令碼,微地址形成電路產(chǎn)生該指令的微程序的起始微地址,并送入MAR中。⑶MAR中的微地址經(jīng)譯碼、驅(qū)動,從被選的控存單元中取出一條微指令并送入IR。65⑷IR中的微指令的操作控制字段經(jīng)譯碼或直接產(chǎn)生一組微命令,并送往有關(guān)的功能部件,控制其完成所規(guī)定的微操作。⑸

IR中微指令的地址控制字段及有關(guān)狀態(tài)條件送往微地址形成電路,產(chǎn)生下條微指令的地址,再讀取并執(zhí)行下條微指令。如此循環(huán),直到一條機(jī)器指令的微程序全部執(zhí)行完畢。

微程序控制器設(shè)計(jì)的關(guān)鍵是要解決好下面問題:微指令的結(jié)構(gòu)格式及編碼方法,即如何用一個(gè)二進(jìn)制編碼字表示各個(gè)微命令;微程序順序控制的方法,也就是如何編制微程序,解決不同機(jī)器指令所對應(yīng)微程序的邏輯銜接,保證微程序的連續(xù)執(zhí)行;微指令執(zhí)行方式,解決如何提高執(zhí)行速度的問題。6.6.2微指令的編譯方法通常有下列幾種微指令編譯方法。⒈直接控制法

圖6-31直接控制法

66

優(yōu)點(diǎn)是結(jié)構(gòu)簡單,并行性強(qiáng),操作速度快,

缺點(diǎn)是微指令字太長,信息效率低。

⒉最短編碼法

這種方法是將所有的微命令進(jìn)行統(tǒng)一編碼。每條微指令只定義一個(gè)微命令。若微命令總數(shù)為N,則操作控制字段的長度L應(yīng)滿足

L≥log2

N

⒊字段直接編碼法

這種編碼法實(shí)際是上述兩種方法的折中。不同子字段的不同編碼表示不同的微命令。字段編碼法中操作控制字段的分段必須遵循如下規(guī)則:①把互斥性的微命令(即在一條微指令中不允許同時(shí)出現(xiàn)的微命令)分在同一段,相容性的微命令(即在一條微指令中允許同時(shí)出現(xiàn)的微命令)分在不同段內(nèi)。②應(yīng)與數(shù)據(jù)通路結(jié)構(gòu)相適應(yīng)。③每個(gè)小段中包含的信息不能太多,否則將增加線路的復(fù)雜性和譯碼時(shí)間。67圖6-32字段直接編碼法

④一般每小段還要留出一個(gè)狀態(tài),表示本字段不發(fā)出任何微命令。

⒋字段間接編碼法一個(gè)字段的編碼不能直接獨(dú)立地定義微命令,它必須與其他字段的編碼聯(lián)合定義,如圖6-33所示。

圖6-33字段間接編碼法68

⒌常數(shù)源字段的設(shè)置除上述幾種編碼方法之外,還有其他一些方法,如分類編碼法。機(jī)器指令根據(jù)操作類型分為幾類,如算術(shù)邏輯運(yùn)算指令、訪主存指令、I/O指令及其他指令。不同的指令可以有不同的微指令格式。6.6.3微程序的順序控制方式通常把指令所對應(yīng)的微程序的第一條微指令所在控制存儲器單元的地址稱為微程序的初始微地址,或稱微程序的入口地址。執(zhí)行微程序過程中,當(dāng)前正在執(zhí)行的微指令稱為現(xiàn)行微指令,現(xiàn)行微指令所在控制存儲器單元的地址稱為現(xiàn)行微地址?,F(xiàn)行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令稱為后繼微指令,后繼微指令所在控存單元的地址稱為后繼微地址。

⒈初始微地址的形成

初始微地址形成通常有下列幾種方式:⑴一級功能轉(zhuǎn)移根據(jù)指令操作碼,直接轉(zhuǎn)移到相應(yīng)微程序的入口,稱為一級功能轉(zhuǎn)移。69當(dāng)指令操作碼的位置與位數(shù)均固定時(shí),可直接使用操作碼作為微地址的低位,例如微地址為00…0OP,OP為指令操作碼。

例如模型機(jī)的16條指令,操作碼對應(yīng)IR的15~12位,當(dāng)取出指令后,直接由IRl5~l2作為微地址(MAR)的低4位,如圖6-34所示。

圖6-34一級功能轉(zhuǎn)移示意圖

⑵二級功能轉(zhuǎn)移

所謂二級功能轉(zhuǎn)移是指先按指令類型標(biāo)志轉(zhuǎn)移,以區(qū)分出哪一類指令。在每類指令中假定操作碼的位置和位數(shù)是固定的,第二級即可按操作碼區(qū)分出具體是哪條指令,以便轉(zhuǎn)移到相應(yīng)微程序入口。⑶用PLA電路實(shí)現(xiàn)功能轉(zhuǎn)移PLA輸入是指令操作碼,輸出就是相應(yīng)微程序入口地址。70假定有I0,I1,…,I7共8條指令,其操作碼分別為000,001,…,111,對應(yīng)的微程序入口地址分別為020H,031H,…,146H,則用PLA的實(shí)現(xiàn)如圖6-35所示。圖6-35用PLA器件形成初始微地址高低71⒉后繼微地址的形成后繼微地址的形成方法對微程序編制的靈活性影響很大,它主要有兩種基本類型:增量方式(計(jì)數(shù)法)和斷定方式(下地址字段法)。⑴增量方式(計(jì)數(shù)法)所謂增量方式是指當(dāng)微程序按地址遞增順序一條條地執(zhí)行微指令時(shí),后繼微地址是現(xiàn)行微地址加上一個(gè)增量(通常為1);當(dāng)微程序轉(zhuǎn)移或調(diào)用微子程序時(shí),由微指令地址控制字段產(chǎn)生轉(zhuǎn)移微地址。因此,微程序控制器中應(yīng)有一個(gè)微程序計(jì)數(shù)器(PC)

。為解決轉(zhuǎn)移微地址的產(chǎn)生,通常把微指令的地址控制字段分為兩個(gè)部分,一部分為轉(zhuǎn)移地址字段BAF,另一部分為轉(zhuǎn)移控制字段BCF,微指令格式如下:

操作控制字段(OCF)BCFBAFBCF用以規(guī)定地址形成方式,BAF提供轉(zhuǎn)移地址。假定微地址形成方式規(guī)定如表6-14所示。圖6-36是實(shí)現(xiàn)表6-14所示微地址控制方式的原理框圖。72圖6-36微地址控制原理框圖73表6-14微地址形成方式舉例⑵斷定方式(下地址字段法)斷定方式是指后繼微地址可由設(shè)計(jì)者指定或由設(shè)計(jì)者指定的測試判定字段控制產(chǎn)生。74采用斷定方式的后繼微地址一般由兩部分組成:非因變分量和因變分量。

非因變分量是指由設(shè)計(jì)者直接指定的部分,一般是微地址的高位部分。

因變分量是根據(jù)判定條件產(chǎn)生的部分,一般對應(yīng)微地址的低位部分。

例如微指令格式如下:μIR:OCF微地址高位ABA、B為兩個(gè)判定條件,表6-15給出了判定條件與后繼微地址低位的關(guān)系。

表6-15判定條件與后繼微地址低位的關(guān)系

判定條件A斷定微地址次低位判定條件B斷定微地址次低位00000001101110T110T311T211T475以上述規(guī)定為例,若現(xiàn)行微指令的高位地址為1011001,A字段為10,B字段為11,則后繼微地址為1011001T1T4。根據(jù)T1T4狀態(tài),可實(shí)現(xiàn)四路轉(zhuǎn)移。

若T1T4為00,則后繼微地址為101100100=164H;

若T1T4為10,則后繼微地址為101100110=166H。

例6·4已知某計(jì)算機(jī)采用微程序控制方式,其控制存儲器的容量為51232位。微程序可以在整個(gè)控制存儲器中實(shí)現(xiàn)轉(zhuǎn)移,可控制微程序轉(zhuǎn)移的條件有6個(gè),采用直接控制和字段混合編碼,后繼微指令地址采用斷定方式,格式如下:

微操作編碼測試條件微地址

請說明微指令中3個(gè)字段分別應(yīng)為多少位。解:3段的位數(shù)分配是:下條指令微地址=9位;轉(zhuǎn)移測試條件=6位;微操作編碼=17位。76

例6·5圖6-37為一微程序流程,每一方框?yàn)橐粭l微指令,用字母A~P分別表示微指令執(zhí)行的微操作,該微程序流程的兩個(gè)分支分別是:指令的OP最低兩位(I1I0)控制4路轉(zhuǎn)移;狀態(tài)標(biāo)志CZ的值決定后繼微地址的形成。圖6-37某微程序流程圖

請?jiān)O(shè)計(jì)該微程序的微指令的順序控制字段,并為每條微指令分配一個(gè)微地址。77解:就本微程序而言,測試條件可用2位表示,描述后繼地址的形成方式。因此,本例的微指令格式由3部分內(nèi)容組成,如下所示:OP測試(2位)下地址(4位)00→取下地址01→按指令OP轉(zhuǎn)移(控制末2位)10→按CZ轉(zhuǎn)移(控制末1位)11→無操作

在本題中,微指令C按指令OP(I1I0)實(shí)現(xiàn)4路分支,控制在末2位,這樣,下地址的約束條件是末2位全為0,地址為0100,微指令C的后繼4條微指令的地址分別為0100、0101、0110、0111,末2位實(shí)現(xiàn)了按I1I0轉(zhuǎn)移。

同理,按CZ轉(zhuǎn)移的地址則為10x0、10x1。

表6-16是本例微程序的微指令的地址分配結(jié)果,其中,深色部分的微指令下地址的形成愛測試字段約束條件的控制。

在微地址形成電路形成微地址時(shí),可通過圖6-38所示的修改電路生成受約束的微地址(高位地址指定)。

78表6-16微程序的地址分配表

微地址微命令測試條件下地址備注

0000A0000110001B0000100010C0101I1I00011E10101CZ0100D0000110101H001000由指令OP控制

0110L0010010111P0010011000I0010111001M0011001010F001101由CZ控制

1011J0011101100N0011111101G0000001110K0000001111O00000079圖6-38微地址修改電路6.6.4微指令的執(zhí)行方式

執(zhí)行一條微指令的過程基本上分為兩步:第一步,將微指令從控制存儲器中取出,稱為取微指令;第二步執(zhí)行微指令所規(guī)定的各個(gè)微操作,稱為執(zhí)行微指令。根據(jù)取后繼微指令和執(zhí)行現(xiàn)行微指令之間的時(shí)間關(guān)系,微指令有兩種執(zhí)行方式:串行執(zhí)行和并行執(zhí)行。

⒈串行執(zhí)行方式

微周期的時(shí)序安排如圖6-39所示。

80圖6-39微周期的時(shí)序安排

串行方式的優(yōu)點(diǎn)是控制簡單,因?yàn)樵诿總€(gè)微周期中,總要等到所有微操作結(jié)束,并建立了運(yùn)算結(jié)果狀態(tài)之后,才確定后繼微指令地址。因此,無論后繼微地址是按μPC增量方式,還是根據(jù)結(jié)果特征實(shí)現(xiàn)微程序轉(zhuǎn)移,串行方式都可容易地實(shí)現(xiàn)控制。

串行方式的主要缺點(diǎn)是設(shè)備效率低,執(zhí)行速度慢。⒉并行執(zhí)行方式在執(zhí)行本條微指令的同時(shí),預(yù)取下一條微指令,其微周期時(shí)序安排如圖6-40所示。假設(shè)取微指令所需時(shí)間比執(zhí)行微指令短,因而取執(zhí)行微指令時(shí)間為微周期。

81圖6-40并行方式時(shí)序圖

優(yōu)點(diǎn):微程序執(zhí)行速度比串行方式快,設(shè)備效率也高。

缺點(diǎn):微指令的預(yù)取會帶來一些控制問題。6.6.5微程序設(shè)計(jì)方法微指令格式設(shè)計(jì)除了要實(shí)現(xiàn)計(jì)算機(jī)的整個(gè)指令系統(tǒng)外,還要考慮具體的數(shù)據(jù)通路、控制存儲器速度以及微程序的編制等因素。在進(jìn)行微程序設(shè)計(jì)時(shí),應(yīng)盡量縮短微指令字長,減少微程序長度,提高微程序的執(zhí)行速度。82⒈水平型微指令與微程序設(shè)計(jì)采用水平型微指令編制微程序稱為水平型微程序設(shè)計(jì)。

水平型微指令是指一次能定義并執(zhí)行多個(gè)操作微命令的微指令。水平型微指令格式如下所示

控制字段判別測試字段下地址字段

一股水平型微指令具有如下幾個(gè)特點(diǎn):⑴微指令字較長,一般為幾十位到上百位,如VAX-II/780微指令字長為96位。巨型機(jī)ILLAIAC-Ⅳ微指令字長達(dá)280位;⑵微指令中微操作并行能力強(qiáng),一個(gè)微周期中,一次能定義并執(zhí)行多個(gè)并行操作微命令;⑶微指令編碼簡單,一般采用直接控制方式和字段直接編碼法,微命令與數(shù)據(jù)通路各控制點(diǎn)之間有比較直接的對應(yīng)關(guān)系。

優(yōu)點(diǎn):并行操作能力強(qiáng),效率高,編制微程序短,因此微程序的執(zhí)行速度快,控制存儲器的縱向容量小。

缺點(diǎn):微指令字比較長,明顯地增長了控制存儲器的橫向容量。另外微指令長,定義的微命令多,使微程序編制困難、復(fù)雜,也不易實(shí)現(xiàn)設(shè)計(jì)自動化。

83⒉垂直型微指令與微程序設(shè)計(jì)在微指令中設(shè)置微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能,這一類微指令稱為垂直型微指令。

一條垂直型運(yùn)算操作的微指令格式為:

OP源寄存器1源寄存器II目的寄存器其它

再比如垂直型微程序轉(zhuǎn)移的微指令格式為:

轉(zhuǎn)移OP轉(zhuǎn)移微地址條件測試

垂直型微指令有如下特點(diǎn):⑴微指令字短,一般為10~20位左右;⑵微指令的微操作并行能力弱,一條微指令只能控制數(shù)據(jù)通路的一兩種信息傳送;⑶采用微操作碼,規(guī)定微指令的基本功能和信息傳送路徑;⑷微指令編碼復(fù)雜,微操作碼字段需經(jīng)過完全譯碼產(chǎn)生微命令,微指令的各個(gè)二進(jìn)制位與數(shù)據(jù)通路的各個(gè)控制點(diǎn)之間不存在直接對應(yīng)關(guān)系。84采用垂直型微指令編制微程序稱為垂直型微程序設(shè)計(jì)。

主要優(yōu)點(diǎn)是直觀、規(guī)整、易于編制微程序和實(shí)現(xiàn)設(shè)計(jì)自動化。由于微指令字短,使控制存儲器的橫向容量少。垂直型微程序設(shè)計(jì)主要是面向算法的描述,故又稱為軟方法。

缺點(diǎn)是微指令并行操作能力弱,編制的微程序長,要求控制存儲器的縱向容量大。另外,它的執(zhí)行效率較低,執(zhí)行速度慢。

⒊毫微程序設(shè)計(jì)⑴毫微程序設(shè)計(jì)

毫微程序是一種解釋微程序的微程序,而組成毫微程序的毫微指令是解釋某一微指令的微指令。毫微程序設(shè)計(jì)就是用水平型的毫微指令來解釋垂直型微指令的微程序設(shè)計(jì)。

毫微程序設(shè)計(jì)采用兩級微程序設(shè)計(jì)方法:第一級采用垂直型微程序設(shè)計(jì),即用垂直型微指令編制垂直微程序;第二級采用水平型微指令編制,即水平型微程序設(shè)計(jì)。

85毫微程序控制器中有兩個(gè)控制存儲器:一個(gè)稱為微程序控制存儲器(CM),用來存放垂直微程序,一個(gè)稱毫微程序控制存儲器(nCM),用于存放毫微程序。圖6-41基于毫微程序設(shè)計(jì)的控制器結(jié)構(gòu)

86

如QM-1型計(jì)算機(jī)采用的就是毫微程序控制,其標(biāo)準(zhǔn)字長為18位。存儲器涉及以下3個(gè)方面:主存儲器M→是256K×18位的存儲器,用于存放機(jī)器語言程序??刂拼鎯ζ鰿M→字長18位,存放微程序。毫微存儲器nCM→容量為1.024×360位,存放毫微程序。

⑵毫微程序的優(yōu)點(diǎn)

毫微程序設(shè)計(jì)的主要優(yōu)點(diǎn)有:①通過使用少量的控制存儲器空間,就可以達(dá)到高度的操作并行性。因?yàn)镃M橫向容量很小,而nCM采用并行性高的水平型微指令,所以使nCM縱向容量很??;②用垂直微指令編制微程序容易,易于實(shí)現(xiàn)微程序設(shè)計(jì)自動化;③由于微指令可以調(diào)用毫微指令,所以效率高,并行能力強(qiáng),可以充分利用數(shù)據(jù)通路;④獨(dú)立性強(qiáng),毫微程序之間沒有順序關(guān)系,修改、增刪毫微指令不會影響毫微程序的控制結(jié)構(gòu);⑤靈活性好,若改變機(jī)器指令的功能,只需修改垂直微程序,無需改變毫微程序,因此能方便地修改和擴(kuò)充指令系統(tǒng)的功能,具有動態(tài)結(jié)構(gòu)的特點(diǎn)。

87

毫微程序設(shè)計(jì)的缺點(diǎn)是由于一個(gè)微周期內(nèi)兩次訪問控制存儲器(一次訪問CM,一次訪問nCM),速度將受到影響。另外也增加了硬件成本,所以,微、小型機(jī)一般不用。6.6.6微程序控制器設(shè)計(jì)步驟微程序控制器設(shè)計(jì)的最主要任務(wù)是編寫所有機(jī)器指令對應(yīng)的微程序。具體地可按下列步驟設(shè)計(jì)微程序控制器。⑴確定微指令格式和執(zhí)行方式⑵定義微命令集、確定微命令編碼方式和微指令排序方式⑶編制微程序⑷寫入程序注意:微程序和程序兩者之間的差異。①微程序是由微指令組成,用于描述機(jī)器指令,是機(jī)器指令的實(shí)時(shí)的解釋器,是計(jì)算機(jī)設(shè)計(jì)者事先編制好并存放在CM中的,一般不提供給用戶的。對于程序設(shè)計(jì)員而言,計(jì)算機(jī)系統(tǒng)中的微程序一級的結(jié)構(gòu)和功能是透明的。②程序最終由機(jī)器指令組成,由軟件設(shè)計(jì)人員事先編制好并存放在M?M或A?M中的。

88微程序控制的計(jì)算機(jī)涉及到兩個(gè)層次:①機(jī)器語言或匯編語言程序員看到的傳統(tǒng)機(jī)器層,包括機(jī)器指令、工作程序、M?M;②機(jī)器設(shè)計(jì)者看到的微程序?qū)?,包括:微指令、微程序和CM。6.6.7舉例:模型機(jī)的微程序設(shè)計(jì)

⒈時(shí)序系統(tǒng)采用微程序控制以后,指令的微操作序列不再由周期、節(jié)拍等時(shí)序信號控制,而代之以統(tǒng)一規(guī)整的微周期。為簡化問題,模型機(jī)采用取微指令與執(zhí)行微指令順序串行執(zhí)行的控制方式,并采用三相時(shí)鐘控制,時(shí)序關(guān)系如圖6-42所示。

圖6-42微程序時(shí)序關(guān)系

89⒉微指令格式根據(jù)圖6-10所示的模型機(jī)數(shù)據(jù)通路結(jié)構(gòu)的需要,模型機(jī)的微指令字長31位,采用直接控制和字段譯碼混合方式,將微控制信號共劃分為10個(gè)字段,格式設(shè)計(jì)如下:

⑴BUSin–BUS1輸入選擇字段(3位)

⑵ALU操作控制字段(5位)采用的是74LS181芯片,由S3S2S1S0M等5位控制,其編碼及意義詳見74LSl81芯片的功能表。

⑶C0–進(jìn)位字段(1位)

⑷S–移位字段(2位)

⑸BUS0l–BUS2輸出分配字段1(2位)

⑹BUS02–BUS2輸出分配字段2(3位)

⑺R/W–可讀寫控制字段(1位)

⑻MREQ/IOREQ–訪問主存/IO請求字段(2位)

⑼SCF–順序控制字段(4位)

⑽下地址字段(8位)

90⒊模型機(jī)的微程序流程及微程序的編制

⑴取指令的微程序流程

圖6–44所示為取指微程序流程⑵MOV指令的微程序流程MOV指令的微程序流程如圖6–45所示。⑶雙操作數(shù)指令的微程序流程雙操作數(shù)指令的微程序流程如圖6–46所示。⑷單操作數(shù)指令的微程序流程單操作數(shù)指令的微程序流程如圖6–47所示。⑸其他指令的微程序流程除上述指令以外,轉(zhuǎn)移類指令和停機(jī)指令不需調(diào)用源子程序和目的子程序,因此取出指令后直接轉(zhuǎn)入執(zhí)行,如圖6–48所示。⑹源微子程序流程源微子程序流程如圖6–49所示。⑺目的微子程序流程目的微子程序流程如圖6–50所示。模型機(jī)微程序的編制如表6–17所示。

916.6.8微程序設(shè)計(jì)技術(shù)的應(yīng)用⒈微程序控制的特點(diǎn)通過對模型機(jī)控制器的兩種設(shè)計(jì)方式的對比與分析,可以看出微程序控制方式具有以下明顯的優(yōu)點(diǎn)。

⑴用規(guī)整的存儲邏輯代替了復(fù)雜的、不規(guī)整的硬連邏輯,簡化了硬件結(jié)構(gòu),有利于設(shè)計(jì)自動化。⑵適宜作系列機(jī)的控制器,可以用比較簡單的硬件結(jié)構(gòu)實(shí)現(xiàn)較復(fù)雜的指令系統(tǒng)。對組合邏輯控制器來說,隨著指令系統(tǒng)功能的增加,其價(jià)格將迅速增加,控制邏輯也變得復(fù)雜。微程序控制的計(jì)算機(jī)在同一系列內(nèi),功能的增加主要表現(xiàn)為微程序的增加,即控制存儲器容量的增加,其他硬件增加不多,所以性能價(jià)格比相對較高。⑶易于修改和擴(kuò)充,靈活性、通用性強(qiáng)。在數(shù)據(jù)通路結(jié)構(gòu)不變的前提下,可以通過修改微程序,修改指令功能或增加新的指令。⑷可靠性高,易于診斷與維護(hù)。這是因?yàn)槲⒊绦蚩刂品绞降慕Y(jié)構(gòu)簡單、規(guī)整,易于采用診斷技術(shù)。相對于組合邏輯控制方式,微程序控制方式的主要缺點(diǎn)是

⑴速度慢,因?yàn)樵黾恿藦目刂拼鎯ζ髦凶x取微指令的時(shí)間。92⑵由于一條微指令的操作比一條機(jī)器指令所能定義的操作簡單,因而可能會降低并行操作能力,影響執(zhí)行效率。

⒉微程序的應(yīng)用⑴固件技術(shù)的發(fā)展固件一詞是1967年由美國的AOpler首先提出來的。

固件是指存放在存儲器中的各種用途的微程序,是具有軟件功能的硬件。固件是軟、硬件結(jié)合的產(chǎn)物,吸取了軟件、硬件各自的優(yōu)點(diǎn),其執(zhí)行速度快于軟件,靈活性優(yōu)于硬件。固件技術(shù)包括硬件固化和軟件固化⑵微程序仿真

所謂微程序仿真是指用一臺計(jì)算機(jī)的微程序解釋執(zhí)行另一臺計(jì)算機(jī)的指令系統(tǒng),使本來不兼容的計(jì)算機(jī)之間具有程序兼容的能力。

用來進(jìn)行仿真的計(jì)算機(jī)稱為宿主機(jī),被仿真的計(jì)算機(jī)稱為目標(biāo)機(jī)

⑶具有動態(tài)結(jié)構(gòu)的通用微程序計(jì)算機(jī)

⑷面向高級語言的微程序解釋直接用微程序解釋高級語言,可以大大提高高級語言的執(zhí)行效率93▼6.7流水線處理技術(shù)6.7.1指令的執(zhí)行方式

⒈順序方式

所謂順序方式是指各條指令之間是順序串行執(zhí)行的。即一條指令執(zhí)行完以后,才取下條指令來執(zhí)行。如果把一條指令執(zhí)行過程劃分為取指、取數(shù)和執(zhí)行三個(gè)步驟,則順序方式如圖6–51所示。

執(zhí)行K+1分析K+1取指K+1執(zhí)行K分析K取指K圖6?51順序執(zhí)行方式

順序控制方式的優(yōu)點(diǎn)是控制簡單,節(jié)省設(shè)備;

缺點(diǎn)是執(zhí)行速度慢,機(jī)器效率低,在時(shí)間上不能充分利用各部件。例如在執(zhí)行運(yùn)算時(shí)主存可能是空閑的。⒉重疊方式

所謂重疊方式是指前一條指令的解釋執(zhí)行完成之前,就開始下一條指令的解釋執(zhí)行,即相鄰兩條指令在時(shí)間上相互重疊。圖6–52(a)和圖6–52(b)分別示出了兩種不同的重疊情況。94(a)一次重疊

(b)二次重疊圖6-52重疊執(zhí)行方式

⒊流水方式它是把指令的執(zhí)行過程劃分成若干個(gè)復(fù)雜程度相當(dāng)、處理時(shí)間大致相等的子過程,每個(gè)子過程由一個(gè)獨(dú)立的功能部件來完成。同一時(shí)間,多個(gè)功能部件同時(shí)工作,完成對不同子過程的處理。由于流水線上各功能部件并行工作,同時(shí)進(jìn)行對多條指令的解釋執(zhí)行,使機(jī)器的處理速度大大提高。圖6–53(a)是一個(gè)五段的指令流水線,指令的流水處理過程如圖6–53(b)所示。95圖6-53流程執(zhí)行方式

966.7.2流水線的分類.

⒈按處理級別分類從處理級別角度,流水線可分為操作部件級、指令級和處理機(jī)級等。

⒉按功能分類流水線按功能可分為單功能流水線和多功能流水線兩種。

圖6–54處理機(jī)級流水線

⒊按工作方式分類從工作方式角度,流水線可分為靜態(tài)流水線和動態(tài)流水線兩種。

⒋按流水線結(jié)構(gòu)分類

流水線按結(jié)構(gòu)可分為線性流水線和非線性流水線兩種。

976.7.3線性流水線的性能

⒈流水線時(shí)空圖

⒉流水線主要指標(biāo)衡量流水線的主要指標(biāo)有以下3個(gè):吞吐率、效率和加速比。

⑴吞吐率(TP)

吞吐率是指單位時(shí)間內(nèi)流水線能完成的指令數(shù)、任務(wù)數(shù)和輸出結(jié)果數(shù)量。

98⑵加速比(SP)

加速比是指采用流水線后的工作速度與等效的順序串行方式的工作速度之比。對求解n個(gè)任務(wù)而言,若串行方式工作需要時(shí)間為TP,而用m段流水線來完成該任務(wù)需要時(shí)間為TP,則加速比可用下列公式求出。⑶效率(η)

效率是指流水線中各功能段的利用率。一般用流水線各段處于工作時(shí)間的時(shí)空區(qū)與流水線中各段總的時(shí)空區(qū)之比來計(jì)算效率。即:

僅當(dāng)n>>m,

Sp≈m。

99

例6.6設(shè)有100條指令的程序段經(jīng)過圖6–53所示的指令流水線執(zhí)行,請求出完成該程序段的流水時(shí)間、流水線的實(shí)際吞吐率、加速比和效率(假定△t=10ns)。解:流水總時(shí)間Tc=m△t+(n-1)△t=5×10+99×10=1040ns

TP=100/Tc=100/1040∵非流水時(shí)間Ts=100×5×10-5000ns∴SP=Ts/Tc=5000/1040≈5

=TP△t=1000/1040≈100%

⒊標(biāo)準(zhǔn)流水線從性能指標(biāo)來看,流水線中的功能段數(shù)是影響流水線性能的重要元素。一般的流水線功能段數(shù)限定在5段之內(nèi)。100

⒋高級流水線為了加速流水處理器的處理速度,流水線的構(gòu)造需進(jìn)一步加以改善。目前主要采取的措施有:超流水線、超長指令字流水線和超標(biāo)量流水線。⑴超流水技術(shù)⑵超長指令字技術(shù)⑶超標(biāo)量技術(shù)6.7.4流水線的相關(guān)問題

所謂相關(guān),是指在一段程序的相近指令之間存在某種依賴關(guān)系,這種關(guān)系影響指令的并行執(zhí)行。流水線的相關(guān)主要有資源相關(guān)、數(shù)據(jù)相關(guān)和控制轉(zhuǎn)移相關(guān)。⒈資源相關(guān)

資源相關(guān)是指當(dāng)有多條指令進(jìn)入流水線后,在同一機(jī)器周期內(nèi)爭用同一功能部件而導(dǎo)致流水不能繼續(xù)運(yùn)行的現(xiàn)象。

101

⒉數(shù)據(jù)相關(guān)由于多條指令進(jìn)入流水線后,各條指令的操作重疊進(jìn)行,使得原來對操作數(shù)的訪問順序發(fā)生了變化,產(chǎn)生了錯(cuò)誤的運(yùn)行結(jié)果,從而導(dǎo)致了數(shù)據(jù)相關(guān)沖突。

⒊控制轉(zhuǎn)移相關(guān)控制相關(guān)是指由分支指令、轉(zhuǎn)子指令和中斷等引起的相關(guān)。⑴加快和提前形成條件碼⑵預(yù)取轉(zhuǎn)移成功或不成功兩個(gè)分支序列的指令⑶采用延遲轉(zhuǎn)移技術(shù)

1026.8CPU舉例6.8.1Intel公司的Pentium處理器

⒈Pentium的特性

歸納起來,Pentium有如下的特性:⑴采用超標(biāo)量雙流水結(jié)構(gòu)

在PentiumCPU內(nèi)部有兩個(gè)ALU,分別對應(yīng)兩條流水線U和V(80486只有一條流水線),U流水線執(zhí)行整數(shù)和浮點(diǎn)數(shù)指令;V流水線執(zhí)行整數(shù)指令,以及交換寄存器的內(nèi)容。所以,Pentium能在每個(gè)時(shí)鐘周期內(nèi)執(zhí)行兩條整數(shù)運(yùn)算指令,或在每個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條浮點(diǎn)數(shù)運(yùn)算指令。U、V兩條指令流水線的段數(shù)都含有如下所示的5段

PFD1D2EXWBPF預(yù)取指令段。D1進(jìn)行指令譯碼,以確定操作碼和尋址信息,并進(jìn)行配對性和轉(zhuǎn)移預(yù)測檢查。D2形成訪內(nèi)操作數(shù)地址。103

D1和D2均采用按序發(fā)射、按序調(diào)動的策略。⑵獨(dú)立的指令Cache和數(shù)據(jù)Cache各自都為8KB。指令Cache向指令預(yù)取緩沖器提供指令代碼;數(shù)據(jù)Cache與U、V流水線交換數(shù)據(jù)。它們對Pentium的超標(biāo)量結(jié)構(gòu)提供了強(qiáng)有力的支持。⑶MESI協(xié)議MESI協(xié)議是寫一無效式監(jiān)聽協(xié)議,它要求每個(gè)cache行設(shè)置兩個(gè)狀態(tài)位,用于描述該行當(dāng)前是處于修改態(tài)(M)、專有態(tài)(E)、共享態(tài)(S)或無效態(tài)(I)。MESI狀態(tài)的定義是:①M(fèi)odified狀態(tài)修改態(tài)表明本行數(shù)據(jù)已被修改過(臟行),內(nèi)容已不同于存儲器且為本Cache專有。②Exclusive狀態(tài)專有態(tài)說明本行數(shù)據(jù)與存儲器的相同(干凈行),并且不可以在其他Cache中出現(xiàn)。104③Shared狀態(tài)共享態(tài)說明本行數(shù)據(jù)與存儲器的相同(干凈行),并且可以在其他Cache中出現(xiàn)。④Invalid狀態(tài)無效態(tài)表明本行數(shù)據(jù)為廢棄數(shù)據(jù)(空行)。

⑷超流水的浮點(diǎn)運(yùn)算單元PentiumCPU有一個(gè)內(nèi)置的浮點(diǎn)運(yùn)算單元——-FPU(floatprocessingunit),F(xiàn)PU有自己的浮點(diǎn)寄存器堆、加法器和乘/除運(yùn)算器,并全部采用硬件實(shí)現(xiàn)。FPU遵守IEEE754標(biāo)準(zhǔn),并采用超級流水技術(shù),以便與整數(shù)運(yùn)算相統(tǒng)一。浮點(diǎn)運(yùn)算流水線擴(kuò)充了U流水線,共分為8級,其中1~5級和U流水線共享。當(dāng)執(zhí)行浮點(diǎn)運(yùn)算指令時(shí),U流水線及其第4級以后的控制從ALU移到FPU。

⑸增強(qiáng)的64位數(shù)據(jù)總線P

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論