計算機組成原理與系統(tǒng)結(jié)構(gòu)-第5章-控制器課件_第1頁
計算機組成原理與系統(tǒng)結(jié)構(gòu)-第5章-控制器課件_第2頁
計算機組成原理與系統(tǒng)結(jié)構(gòu)-第5章-控制器課件_第3頁
計算機組成原理與系統(tǒng)結(jié)構(gòu)-第5章-控制器課件_第4頁
計算機組成原理與系統(tǒng)結(jié)構(gòu)-第5章-控制器課件_第5頁
已閱讀5頁,還剩119頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第五章

控制器

5.1控制器概述5.2時序

5.3微程序控制

5.4硬布線控制5.5流水線5.6

CPU實例

5.1控制器概述

中央處理器主要由運算器和控制器組成。依據(jù)控制器的具體組成與運行原理的不同,通常把控制器分為微程序控制器和硬布線控制器兩大類。這兩種控制器,指令的執(zhí)行步驟基本相同,其主要差異表現(xiàn)在解決指令執(zhí)行步驟銜接關(guān)系的方案,以及提供每個執(zhí)行步驟要用到的控制信號的具體邏輯線路、運行速度等方面。

5.1.1控制器的功能

控制器部件是計算機的五大功能部件之一,其作用是向計算機的每個部件(包括控制器部)提供協(xié)同運行所需要的控制信號。當我們使用計算機解決某個問題時,必須首先編寫程序,而程序是由很多條指令組成的,這些指令告訴計算機應(yīng)該完成什么操作,在哪里找到指令執(zhí)行所需要的數(shù)據(jù)。程序在運行之前要裝入到主存儲器中,然后由計算機自動完成取出指令并執(zhí)行指令,完成這項工作的硬件就是中央處理器。5.1.2控制器的組成

1.控制器的組成為了實現(xiàn)上述的功能,控制器必須由一些具有不同處理功能的邏輯線路組成,如圖5.1所示。

各種不同類型計算機的控制器會有不少差別,但其基本組成是相同的,控制器主要由以下幾部分組成。(1)程序計數(shù)器(ProgrammingCounter,PC)

即指令地址寄存器。在某些計算機中用來存放當前正在執(zhí)行的指令地址;而在另一些計算機中則用來存放即將要執(zhí)行的下一條指令地址;程序計數(shù)器具有加1或接收新值功能。有兩種方法來形成指令地址,順序執(zhí)行程序的時候,通過PC加1或其他固定值來形成下一條指令的地址。

(2)指令寄存器(InstructionRegister,IR)

指令寄存器用來存放當前正在執(zhí)行的指令。當指令從主存儲器中取出暫時存放在指令寄存器后,在執(zhí)行指令的過程中,指令寄存器的內(nèi)容不允許被改變,以保證實現(xiàn)指令的全部功能。(3)指令譯碼器指令譯碼器又稱為操作碼譯碼器,對指令寄存器中的指令的操作碼進行譯碼分析,產(chǎn)生相應(yīng)的控制信號。

(4)脈沖源脈沖源產(chǎn)生一定頻率和寬度的脈沖信號作為整個機器的時鐘脈沖,是機器周期和工作脈沖的基準信號,在機器剛加電時,還應(yīng)產(chǎn)生一個總清信號(Reset)。Reset信號撤掉后,脈沖源立即按照規(guī)定的頻率重復(fù)發(fā)出方波時鐘脈沖序列,直到關(guān)閉電源。(5)啟停線路啟停線路也稱為啟??刂七壿?。電源一旦接通,脈沖源就發(fā)出一定頻率的主時鐘脈沖,但這并不意味著計算機已經(jīng)開始工作,只有通過啟停線路把計算機啟動后,主時鐘脈沖才被允許進入,并啟動時序控制信號形成部件開始工作。啟停線路保證可靠地送出或封鎖時鐘脈沖,控制時序信號的發(fā)生或停止,從而啟動機器工作或使機器停機。

(6)時序控制信號形成部件當機器啟動后,在CLK時鐘作用下,根據(jù)當前正在執(zhí)行的指令的需要,產(chǎn)生相應(yīng)的時序控制信號,并根據(jù)被控功能部件的反饋信號調(diào)整時序控制信號。(7)指令執(zhí)行步驟標記線路指明每條指令的執(zhí)行步驟及接續(xù)關(guān)系。(8)中斷控制邏輯中斷控制邏輯的作用是用來控制中斷處理的硬件邏輯電路。

2.CPU中的寄存器

CPU中的寄存器用來暫時存放運算和控制過程中的中間結(jié)果、最終結(jié)果以及控制狀態(tài)信息。CPU中的寄存器分兩大種:通用寄存器和專用寄存器。.通用寄存器通用寄存器的功能很多,可以用來存放原始操作數(shù)和運算結(jié)果,還可以作為變址寄存器、指針寄存器等。

.專用寄存器前面介紹過的程序計數(shù)器、指令寄存器等都是專用寄存器,用來完成特定的功能。該課程中用到的CPU寄存器主要有程序計數(shù)器、指令寄存器、數(shù)據(jù)寄存器、地址寄存器、累加寄存器和狀態(tài)條件寄存器,程序計數(shù)器和指令寄存器不再重復(fù),其他幾個寄存器的功能如下:(1)數(shù)據(jù)寄存器(DR)

數(shù)據(jù)寄存器用來臨時存放從主存儲器中取出的一條指令或一個數(shù)據(jù)字。反過來,當向主存儲器寫入一條指令或一個數(shù)據(jù)字時,也把它們臨時存放在數(shù)據(jù)寄存器中。(2)地址寄存器(AR)

地址寄存器保存當前CPU所訪問的主存儲器單元的地址。由于在CPU和主存之間存在著操作速度上的差異,所以必須要使用地址寄存器來保持內(nèi)存的地址信息,直到主存儲器存取操作完成為止。

5.1.3指令的執(zhí)行過程

控制器部分最重要的問題是理解指令的分步執(zhí)行,這部分內(nèi)容所涉及的知識綜合性最強,是本課程最難的部分。要理解與設(shè)計指令的執(zhí)行步驟,需要了解每條指令的格式與功能,要了解計算機各個功能部件的組成與運行原理,以及它們各自的控制與使用方式、它們之間的連接關(guān)系等,要涉及整臺計算機的幾乎全部組成邏輯和運行機制。

⒈指令的執(zhí)行過程一般情況下,一條指令的執(zhí)行過程分為四個階段:取指令,分析指令,執(zhí)行指令和檢查有無中斷請求。(1)取指令把將要執(zhí)行的指令從主存儲器中取出,送往指令寄存器,具體操作如下:①把程序計數(shù)器中的內(nèi)容送往地址寄存器AR,然后再送往地址總線。②控制器向主存儲器發(fā)出讀的控制信號。③從主存儲器中讀出的指令經(jīng)過數(shù)據(jù)總線送往指令寄存器。④程序計數(shù)器中的內(nèi)容加1(或其他增量),為取下一條指令做準備。

(2)分析指令指令取出來后,指令譯碼器馬上對指令進行分析。指令譯碼器可以識別和區(qū)分不同的指令以及各自的尋址方式,因為指令系統(tǒng)中指令的功能各不相同,所以,分析指令這一階段的差異也很大。

(3)執(zhí)行指令指令分析完了、所需要的操作數(shù)也取出來后,就到了執(zhí)行指令階段,該階段完成指令所規(guī)定的功能,如對操作數(shù)進行計算,并把計算結(jié)果送到指定地址存儲下來。

(4)檢查有無中斷請求最后,CPU檢查有無中斷請求,有則響應(yīng)中斷,轉(zhuǎn)入中斷服務(wù)程序,沒有則執(zhí)行下條指令。以上四個階段中,1和4階段是公用的,與具體的指令無關(guān)。不管什么指令,在運行時首先要取指令到指令寄存器,指令執(zhí)行完了之后總是要檢查有無中斷請求。

⒉指令的執(zhí)行過程舉例一個指令系統(tǒng)中的指令有很多條,不同指令的操作內(nèi)容差異很大,導(dǎo)致指令的執(zhí)行過程都不相同。下面舉兩條指令的執(zhí)行過程。

(1)加法指令的執(zhí)行過程,指令的功能是主存儲器的數(shù)和寄存器中的數(shù)相加,結(jié)果送寄存器。①從主存儲器取指令,送入指令寄存器,并進行操作碼譯碼(分析指令)。②計算數(shù)據(jù)地址,將計算得到的有效地址送地址寄存器AR。③到主存儲器中取數(shù)。④進行加法運算,結(jié)果送寄存器,并根據(jù)運算結(jié)果置狀態(tài)位N,Z,V,C以及檢查有無中斷請求。

假設(shè)運算器的框圖如圖5.2所示。運算器由8個通用寄存器GR及一個算術(shù)邏輯運算部件ALU組成。

圖5.3給出了加法指令的操作時序。

(2)條件轉(zhuǎn)移指令的執(zhí)行過程指令功能:根據(jù)N,Z,V,C的狀態(tài),決定是否轉(zhuǎn)移。如轉(zhuǎn)移條件成立,則轉(zhuǎn)移到本條指令所指定的地址,否則順序執(zhí)行下一條指令。本條指令完成以下操作:①從主存儲器取指令,送入指令寄存器,并進行操作碼譯碼。②如轉(zhuǎn)移條件成立,根據(jù)指令規(guī)定的尋址方式計算有效地址,轉(zhuǎn)移指令經(jīng)常采用相對尋址方式,此時轉(zhuǎn)移地址=PC+disp。最后檢查有無中斷請求,無則進入下一條指令的執(zhí)行過程。

5.2時序

5.2.1時序概述

控制器的功能就是根據(jù)指令操作碼和時序信號,產(chǎn)生各種操作控制信號,以便正確地建立數(shù)據(jù)通路,從而完成信息的傳送??刂破饔袃煞N:硬布線控制器和微程序控制器。這兩種控制器分別在5.3和5.4節(jié)中介紹。CPU中除了控制器外,還必須有時序產(chǎn)生器。時序產(chǎn)生器的作用就是對各種操作信號進行定時,在時間上對各種操作信號進行約束,以便對各種操作信號進行協(xié)調(diào)。

硬布線控制器中,時序信號往往采用主狀態(tài)周期—節(jié)拍電位—節(jié)拍脈沖三級體制。一個節(jié)拍電位表示一個CPU周期的時間,它表示了一個較大的時間單位;在一個節(jié)拍電位中又包含一個或幾個具有一定寬度的節(jié)拍脈沖;而主狀態(tài)周期可包含若干個節(jié)拍電位,所以它是最大的時間單位。主狀態(tài)周期可以用一個觸發(fā)器的狀態(tài)持續(xù)時間來表示。

圖5.4給出了主狀態(tài)周期—節(jié)拍電位—節(jié)拍脈沖三級時序系統(tǒng)。

圖5.4中每個主狀態(tài)周期M中包括四個節(jié)拍T1~T4,每個節(jié)拍內(nèi)有一個節(jié)拍脈沖P。在微程序控制器中,時序信號比較簡單,一般采用節(jié)拍電位—節(jié)拍脈沖二級體制。就是說,它只有一個節(jié)拍電位,在節(jié)拍電位中又包含若干個節(jié)拍脈沖。節(jié)拍電位表示一個CPU周期的時間,而節(jié)拍脈沖把一個CPU周期劃分成幾個較小的時間間隔。根據(jù)需要,這些時間間隔可以相等,也可以不等。

下面給出幾個跟時序有關(guān)的名詞。1.指令周期從取指令、分析指令、執(zhí)行指令到檢查有無中斷請求所需的時間稱謂一條指令的指令周期。

2.機器周期指令周期往往用若干個CPU周期數(shù)來表示,CPU周期也稱為機器周期。由于CPU本身的速度很快,而CPU訪問一次主存儲器所花的時間較長,因此通常用從主存儲器中讀取一個指令字的最短時間來規(guī)定CPU周期。

3.節(jié)拍一個CPU周期又包含了若干個時鐘周期,時鐘周期通常稱為節(jié)拍,是處理操作的最基本單位。一個機器周期內(nèi)要完成若干微操作,其中有的可并行執(zhí)行,有的要求順序操作。因此,需要把一個機器周期分為若干個相等的時間段,每一時間段對應(yīng)一個電位信號,稱為節(jié)拍電位信號。節(jié)拍的寬度取決于CPU完成一次基本操作的時間,如ALU完成一次正確的運算,寄存器間的一次傳送等。

由于不同的機器周期內(nèi)需要完成的微操作的個數(shù)及難易程度是不同的,因而不同機器周期內(nèi)所需要的節(jié)拍數(shù)也不相同。(1)統(tǒng)一節(jié)拍法。以最復(fù)雜的機器周期為準來定出節(jié)拍數(shù),每一節(jié)拍時間的長短也以最繁瑣的微操作為準,這種方法使得所有的機器周期長度相等,并且每一機器周期內(nèi)含有相同數(shù)目的節(jié)拍,因此稱為定長機器周期。

(2)分散節(jié)拍法。按照機器周期實際的需要安排節(jié)拍數(shù),需要多少個節(jié)拍就提供多少個節(jié)拍,由于各個機器周期長度不同,故稱為不定長機器周期,這種方式的時間利用率比上一種要高。(3)延長節(jié)拍法。在照顧多數(shù)機器周期要求的前提下,選取適當?shù)墓?jié)拍數(shù)作為基本節(jié)拍。若某個機器周期內(nèi)按規(guī)定的基本節(jié)拍數(shù)無法完成該周期的全部微操作,則可延長節(jié)拍。

(4)時鐘周期插入。某些微型機的時序信號中不設(shè)置節(jié)拍,直接使用時鐘周期信號。一個機器周期中含有若干個時鐘周期,時鐘周期的數(shù)目取決于機器周期內(nèi)完成微操作數(shù)目的多少以及相應(yīng)功能部件的速度。一個機器周期的基本時鐘周期數(shù)確定之后,還可以不斷插入等待時鐘周期。

5.2.2時序信號產(chǎn)生器

各種計算機的時序信號產(chǎn)生電路是不盡相同的。一般來說,大、中型計算機的時序電路比較復(fù)雜,而小、微型計算機的時序電路比較簡單,這是因為前者涉及的操作動作比較多,后者涉及的操作動作較少。另一方面,從設(shè)計操作控制器的方法來講,硬布線控制器的時序電路比較復(fù)雜,而微程序控制器的時序電路比較簡單。然而不管是哪一類,時序信號產(chǎn)生器的基本構(gòu)成是一樣的。下面以微程序控制器為例來說明的時序信號產(chǎn)生器的組成。

微程序控制器中使用的時序信號產(chǎn)生器的結(jié)構(gòu)圖如圖5.5所示,它由時鐘脈沖源、環(huán)行脈沖發(fā)生器、節(jié)拍脈沖和讀寫時序譯碼邏輯、啟??刂七壿嫷炔糠纸M成。

1.時鐘脈沖源時鐘脈沖源用來為環(huán)行脈沖發(fā)生器提供頻率穩(wěn)定且電平匹配的方波時鐘脈沖信號。它通常由石英晶體振蕩器和與非門組成的正反饋振蕩電路組成,其輸?shù)剿椭镰h(huán)行脈沖發(fā)生器。2.環(huán)行脈沖發(fā)生器環(huán)行脈沖發(fā)生器的作用是產(chǎn)生一組有序的間隔相等或不等的脈沖序列,以便通過譯碼電路來產(chǎn)生最后所需要的節(jié)拍脈沖。環(huán)行脈沖發(fā)生器有兩種形式,一種是采用普通計數(shù)器,一種是采用循環(huán)移位寄存器。由于前者容易在節(jié)拍脈沖上帶來干擾毛刺,所以通常采用循環(huán)移位寄存器形式。

圖5.6是一種典型的環(huán)行脈沖發(fā)生器及其譯碼邏輯,它采用循環(huán)移位寄存器形式。

3.節(jié)拍脈沖和讀/寫時序的譯碼環(huán)行脈沖發(fā)生器及其譯碼邏輯的上半部示出了節(jié)拍脈沖和讀/寫時序的譯碼邏輯。

4.啟??刂七壿嫏C器一旦接通電源,就會自動產(chǎn)生原始的節(jié)拍脈沖信號To1~To4。然而,只有在啟動機器運行的情況下,才允許時序產(chǎn)生器發(fā)出CPU工作所需要的節(jié)拍脈沖T1~T4。為此需要由啟??刂七壿媮砜刂芓o1~To4的發(fā)送。同樣,對讀/寫時序信號也需要由啟停邏輯加以控制。啟??刂七壿嫷暮诵氖且粋€運行標志觸發(fā)器(Cr),如圖5.7所示。

5.2.3控制器的控制方式

控制器的控制方式是指控制不同操作序列時序信號的方法,主要有四種:1.同步控制方式在程序運行時任何指令的執(zhí)行或指令中每個操作的執(zhí)行都受事先確定的時序信號所控制,每個時序信號的結(jié)束就意味著一個操作或一條指令已經(jīng)完成,隨即開始執(zhí)行后續(xù)的操作或自動轉(zhuǎn)向下一條指令的執(zhí)行。各指令所需要的時序信號由控制器統(tǒng)一發(fā)出,所有微操作都與時鐘同步。

2.異步控制方式各操作不用統(tǒng)一的時序信號控制,而是每條指令、每個操作需要多少時間就占用多少時間,其特點是:當控制器發(fā)出進行某一操作控制信號后,等待執(zhí)行部件完成該操作后發(fā)回的“回答”信號或“結(jié)束”信號,再開始新的操作,稱為異步控制方式。

3.聯(lián)合控制方式聯(lián)合控制方式是同步控制和異步控制相結(jié)合的方式。

4.人工控制為了調(diào)試機器和軟件開發(fā)的需要,在計算機面板或內(nèi)部往往設(shè)置一些開關(guān)或按鍵以進行人工控制。最常見的有Reset按鍵、連續(xù)執(zhí)行或單條指令執(zhí)行的轉(zhuǎn)換開關(guān)、符合停機開關(guān)等。

5.3微程序控制

5.3.1微程序概述

在計算機中,一條指令的功能是通過按一定次序執(zhí)行一系列基本操作完成的,這些基本操作稱為微操作。在微程序控制的計算機中,將由同時發(fā)出的控制信號所執(zhí)行的一組微操作稱為微指令,所以微指令就是把同時發(fā)出的控制信號的有關(guān)信息匯集起來而形成的。將一條指令分成若干條微指令,按次序執(zhí)行這些微指令,就可以實現(xiàn)指令的功能。組成微指令的微操作,又稱為微命令。

5.3.2微程序控制器的基本原理

⒈微程序控制器的基本原理在微程序CPU的機器中,執(zhí)行一條指令實際上就是執(zhí)行一段存放在控制存儲器中的微程序。而微程序的執(zhí)行是在微程序控制器的控制下完成的。圖5.8給出了一個微程序控制器的簡單框圖。

每一條微指令對應(yīng)一條機器指令的一個執(zhí)行步驟,這條微指令需要具有兩項功能:(1)提供一條機器指令的一個執(zhí)行步驟所需要的控制信號,以實現(xiàn)該執(zhí)行步驟的操作功能。(2)提供讀出下一條待執(zhí)行微指令的地址,以便自動有序地讀出每一條微指令,解決機器指令執(zhí)行步驟之間的正確的接續(xù)關(guān)系。

⒉控制信號以加法指令的執(zhí)行過程,分析每個階段需要什么控制信號。一條加法指令的執(zhí)行過程分成了四個階段,每一個階段對應(yīng)一條微指令,即該加法指令由四條微指令解釋執(zhí)行,一條微指令中的所有控制信號是同時發(fā)出的。例如:加法指令如下:ADDR0,R1,dispR0,R1為寄存器,disp為偏移量。指令的功能是R0寄存器中的數(shù)據(jù)和主存中的一個數(shù)相加之后和放在R0寄存器中。主存中的數(shù)據(jù)的地址為(R1)+disp。

每條微指令所需的控制信號如下:(1)取指微指令①

指令地址送地址總線:PC→AB。②

發(fā)訪存控制命令:

M/IO=1,W/R=0。從主存儲器取指令送數(shù)據(jù)總線。③

指令送指令寄存器:DB→IR。④程序計數(shù)器+1:PC+1。

取指微指令的執(zhí)行過程如圖5.9所示。

(2)計算地址微指令①

取兩個源操作數(shù)(用作計算地址):(R1)→DA1,(DA1)→ALU,disp→DA2,(DA2)→ALU。②

加法運算:“+”。③有效地址送地址寄存器:ALU→AR。

計算地址微指令的執(zhí)行過程如圖5.10所示。

(3)取數(shù)微指令①

數(shù)據(jù)地址送地址總線:AR→AB。②

發(fā)訪存控制命令:

M/IO=1,W/R=0。由主存儲器將數(shù)據(jù)送數(shù)據(jù)總線DB。③數(shù)據(jù)送數(shù)據(jù)寄存器:DB→DA2。

取數(shù)微指令的執(zhí)行過程如圖5.11所示。

(4)加法運算和送結(jié)果微指令①

兩源操作數(shù)送ALU:(R0)→DA1,(DA1)→ALU;(DA2)→ALU。②

加法運算:“+”。③送結(jié)果:ALU→R0。

加法運算和送結(jié)果微指令的執(zhí)行過程如圖5.12所示。

指令執(zhí)行過程中所需要的控制信號見表5.1。表5.1控制信號表5.1續(xù)微程序也可以用流程圖來表示(圖5.13)。圖5.13中每一方框表示一條微指令,方框上方表示的是該條微指令的地址,方框內(nèi)為執(zhí)行的操作,在其右下角為下一條要執(zhí)行的微指令的地址,表示在微指令的下址字段中。取指微指令的操作對所有的指令都是相同的。所以是一條公用的微指令,其下址由操作碼譯碼產(chǎn)生。

⒊AM2900系列芯片構(gòu)成的微程序CPUAM2900系列是AMD公司于70年代推出的位片式集成電路,可構(gòu)成如圖5.14所示的系統(tǒng)。

AM2901為4位運算部件,包含4位ALU及16個4位通用寄存器,本系統(tǒng)將其中一個寄存器用作程序計數(shù)器PC。AM2902是為了加速進位而采用的集成電路。AM2910為微程序控制器,用于產(chǎn)生下一條微指令地址,可尋址4K字的控制存儲器。圖5.14中的MAP為操作碼譯碼器產(chǎn)生本條指令的微程序入口地址。

圖5.15是AM2910內(nèi)部組成框圖。

表5.2給出了Am2910所完成的功能

5.3.3微程序的設(shè)計

1.微指令的編碼法(1)直接控制法在微指令的控制字段中,每一位代表一個微命令,在設(shè)計微指令時,是否發(fā)出某個微命令,只要將控制字段中相應(yīng)位置成“1”或“0”,這樣就可打開或關(guān)閉某個控制門,這就是直接控制法。

(2)最短編碼法這種編碼方法使得微指令字長最短,把所有的微命令統(tǒng)一進行編碼,每條微指令只定義一個微命令。

(3)字段直接編碼法字段編碼法是直接控制法和最短編碼法的折衷,既具有兩者的優(yōu)點,又避免了兩者的缺點,把控制字段分成若干小段,段內(nèi)采用最短編碼法,段與段之間采用直接編碼法。

(4)字段間接編碼法字段間接編碼法是在字段直接編碼法的基礎(chǔ)上,進一步縮短微指令字長的一種編碼法。如果在字段直接編碼法中,還規(guī)定一個字段的某些微命令,要兼由另一字段中的某些微命令來解釋,稱為字段間接編譯法。

2.后繼微地址的形成方式當前正在執(zhí)行的微指令,稱為現(xiàn)行微指令,現(xiàn)行微指令所在的控制存儲器單元的地址稱為現(xiàn)行微地址,現(xiàn)行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令稱為后繼微指令,后繼微指令所在的控存單元地址稱為后繼微地址。前面我們已經(jīng)用到兩種產(chǎn)生后繼微指令地址的方法:(1)由指令操作碼譯碼器產(chǎn)生后繼微地址。(2)由微指令的下址字段指出后繼微地址。

3.微指令格式微指令的編碼法是決定微指令格式的主要因素,在設(shè)計計算機時考慮到速度價格等因素采用不同的編碼法,即使在一臺計算機中,也有幾種編碼法并存的局面存在。(1)水平型微指令水平型微指令是指在一條微指令中定義并執(zhí)行多個并行操作微命令的微指令。

(2)垂直型微指令在微指令中設(shè)置有微操作碼字段,采用微操作碼編碼法,由微操作碼規(guī)定微指令的功能,稱為垂直型微指令。

(3)混合型微指令對于實際的計算機來說,很少有只采用一種格式的微指令,通常是采用具有兩者特點的微指令格式,把這種微指令稱為混合型微指令。混合型微指令的字長不太長,但具有一定的并行控制能力,可提高指令執(zhí)行的速度。

4.微指令的執(zhí)行方式一條微指令的執(zhí)行過程跟指令的執(zhí)行過程很相似,分成兩個階段:取微指令和執(zhí)行微指令。首先把微指令從控制存儲器中取出,如果是垂直型微指令還應(yīng)該有微操作碼的譯碼,接下來執(zhí)行微指令所規(guī)定的操作。微指令的執(zhí)行方式有兩種:串行方式和并行方式,類似于指令的順序執(zhí)行方式和重疊執(zhí)行方式。

5.動態(tài)微程序設(shè)計通常,一臺計算機的指令系統(tǒng)有一系列固定的微程序,當微程序被設(shè)計好后,不允許改變,這樣的微程序設(shè)計稱為靜態(tài)微程序設(shè)計。若在一臺微程序控制的計算機中,假如能根據(jù)用戶的要求改變微程序,那么這臺機器就具有動態(tài)微程序設(shè)計功能。動態(tài)微程序設(shè)計的出發(fā)點是為了使計算機能更靈活、更有效地適應(yīng)于各種不同的應(yīng)用目標。

6.毫微程序設(shè)計的基本概念毫微程序可以看作是用以解釋微程序的一種微程序,因此組成毫微程序的毫微指令就可看作是解釋微指令的微指令。采用毫微程序設(shè)計的主要目的是減少控制存儲器的容量(字數(shù)×位數(shù)/字),采用的是兩級微程序設(shè)計方法。通常第一級采用垂直微程序,第二級采用水平微程序。

7.微程序設(shè)計語言設(shè)計者或其他用戶用來編制微程序的語言叫做微程序設(shè)計語言,用微程序設(shè)計語言編制的程序叫做源微程序。源微程序不能直接裝入控制存儲器,要將它轉(zhuǎn)換成二進制代碼后才能裝入控制存儲器。將源微程序翻譯成二進制碼的程序叫做微編譯程序。

5.4硬布線控制

硬布線控制器,又稱為組合邏輯控制器,與微程序控制器共同構(gòu)成計算機通用的兩大類控制器。

它的基本運行原理是,把指令操作碼、指令執(zhí)行步驟編碼或許還有其他的控制條件作為輸入,使用大量的組合邏輯門線路,直接提供出控制計算機各功能部件協(xié)同運行所需要的控制信號。

5.4.1硬布線控制器的組成和基本原理

1.硬布線控制器的組成硬布線控制器的組成如圖5.16所示。

硬布線控制器主要是由5個主要部件組成的:(1)程序計數(shù)器PC用于保存一條指令在主存中的地址,服務(wù)于讀取指令,通常有自行增量功能,并可以接收下條要執(zhí)行指令的地址。

(2)指令寄存器IR用于保存從主存讀來的指令內(nèi)容,以便提供執(zhí)行指令的過程中要用到的指令本身的主要信息。

(3)脈沖源、啟停控制邏輯和節(jié)拍發(fā)生器脈沖源和啟??刂齐娐酚糜谙蛴嬎銠C各部件提供連續(xù)(單個)的主振脈沖,節(jié)拍發(fā)生器則用于標記出每條指令的各執(zhí)行步驟的相對次序關(guān)系。(4)硬布線邏輯即時序控制信號的產(chǎn)生部件。它依據(jù)指令的操作碼、指令的執(zhí)行步驟(節(jié)拍狀態(tài)),也許還有些別的條件信號作為輸入,使用許多的組合邏輯門電路來形成并提供出計算機各部件當前時刻要用到的控制信號。

(5)譯碼器如指令的操作碼為7位,則允許計算機最多設(shè)置128條指令,譯碼器的最基本形式為:以7位操作碼為輸入,在輸出的128條線中,在任何時候只有1根為高電位,其余均為低電位(或只有1根為低電位,其余均為高電位),每1根輸出線代表一條指令。

2.時序與節(jié)拍一條指令的實現(xiàn)可分成取指、計算地址、取數(shù)及執(zhí)行等幾個步驟。硬布線控制器中指令不同的執(zhí)行步驟是用節(jié)拍來區(qū)分的,需要為指令的每一個執(zhí)行步驟分配確定的節(jié)拍狀態(tài)編碼,執(zhí)行完一個節(jié)拍的操作后,要從當前的狀態(tài)變換為下一個節(jié)拍狀態(tài),表明本節(jié)拍操作的結(jié)束和一個新的節(jié)拍操作的開始。在一個機器周期內(nèi),要完成很多個微操作,這些微操作有的同時進行,有的需要按一定次序進行。因此把一個機器周期分成很多個相等的時間段,每一個時間段對應(yīng)一個電位信號,稱為節(jié)拍電位信號。

在大部分情況下,指令的每一步由一個機器周期實現(xiàn),如何區(qū)分一條指令的四個機器周期呢?可以考慮用兩位計數(shù)器的譯碼輸出來表示當前所處的機器周期,如圖5.17所示。

或用四位觸發(fā)器來分別表示四個周期,當機器處于某一周期時,相應(yīng)的觸發(fā)器處于“1”狀態(tài),而其余三個觸發(fā)器則處于“0”狀態(tài),四位移位寄存器即可實現(xiàn)此功能。

例如,執(zhí)行A指令時需要四個機器周期,因此計數(shù)器的變化規(guī)律是00→01→10→11;而執(zhí)行B指令時僅需要三個機器周期(例如不用計算地址),則計數(shù)器的變化規(guī)律為00→10→11,據(jù)此可列出真值表(表5.3)。

根據(jù)真值表列出表達式,對于A指令,其表達式為 cyA′=cyAcyB+cyAcyB; cyB′=cyAcyB+cyAcyB=cyB。 對于B指令,其表達式為 cyA′=cyAcyB+cyAcyB=cyB; cyB′=cyAcyB。

根據(jù)表達式得出邏輯圖5.18。

3.控制信號的產(chǎn)生指令由操作碼與地址碼兩部分組成,其中操作碼表示當前正在執(zhí)行的是什么指令。各條指令所需實現(xiàn)的操作隨指令而異。假如操作碼有7位,則最多可表示128條指令,一般在機器內(nèi)設(shè)置一個指令譯碼器,其輸入為操作碼(7位),輸出有128根線。由譯碼器的輸出和機器周期狀態(tài)cy1~cy4作為輸入,使用邏輯電路產(chǎn)生操作控制信號,其框圖如圖5.19所示。

加法指令的第一個周期是取指周期,所需的控制信號如前所述,用邏輯式來表示。PC→AB=加法指令·cy1 ADS=加法指令·cy1·T1 M/IO=加法指令·cy1 W/R=加法指令·cy1 DB→IR=加法指令·cy1 PC+1=加法指令·cy1

在計算地址周期cy2完成有效地址的計算((rs1)+Disp),為此要將rs1的內(nèi)容取出與IR中的位移量一起送ALU,發(fā)出rs1→GR(送通用寄存器地址),(rs1)→ALU,Disp→ALU以及“+”命令,最后將運算結(jié)果送地址總線,發(fā)出ALU→AR信號。寫列出邏輯表達式

rs1→GR=加法指令·cy2 (rs1)→ALU=加法指令·cy2

…ALU→AR=加法指令·cy2

邏輯圖5.16只考慮了加法指令計算有效地址時的一種情況。然后按同樣方法列出后面兩個機器周期所需產(chǎn)生的控制信號的邏輯表達式。

對每一條指令都進行同樣的分析,得出邏輯表達式。對所有指令的全部表達式進行綜合分析后可得出下述結(jié)論:(1)取指周期cy1所產(chǎn)生的信號,對所有指令都是相同的,即與當前執(zhí)行的指令無關(guān),邏輯式得到最簡單的形式。(2)通常,同一個控制信號在若干條指令的某些周期(或再加上一些條件)中都需要,為此需要把它們組合起來。

(3)同種類型的指令所需的控制信號大部分是相同的,僅有少量區(qū)別。整個算術(shù)邏輯運算指令僅ALU的操作命令以及是否置狀態(tài)位(N,Z,V,C)上有差別。

(4)在確定指令的操作碼時(即對具體指令賦于二進制操作碼),為了便于邏輯表達式的化簡以減少邏輯電路數(shù)量,往往給予特別關(guān)注。

例如,某機有128條指令,7位操作碼,其中有十六條算術(shù)邏輯運算指令,那么可以令這些指令的高三位操作碼完全相等,低4位不同,用來表示16條不同的算術(shù)邏輯運算指令。表5.4是Sun4工作站CPU(SPARC)部分指令的操作碼。該機器的操作碼有8位,表中僅列出7位操作碼,對于表內(nèi)所列指令,另一位操作碼均為1,因此沒有標出。

5.4.2硬布線控制和微程序控制的比較

硬布線控制與微程序控制之間的既有相同的地方也有不同的地方。1.相同點都用于控制指令的執(zhí)行過程,并且使用幾乎相同的執(zhí)行步驟和幾乎完全相同的控制信號,來完成對控制器之外的其他各功能部件的控制作用。

2.不同點硬布線控制與微程序控制之間實質(zhì)性的差別在于處理指令各執(zhí)行步驟的接續(xù)關(guān)系的方案和給出時序控制信號的辦法完全不同,從而造成控制器的具體組成和運行原理、運行性能上的一些差異。

硬布線控制與微程序控制之間的最顯著差異可歸結(jié)為兩點:(1)實現(xiàn)微程序控制器的控制功能是在存放微程序的控制存儲器和存放當前正在執(zhí)行的微指令的寄存器直接控制下實現(xiàn)的,而硬布線控制則由邏輯門組合實現(xiàn)。前者電路比較規(guī)整,各條指令控制信號的差別反映在控制存儲器的內(nèi)容上,因此無論是增加或修改指令只要增加或修改控存內(nèi)容即可,若控存是ROM,則要更換芯片。

(2)性能在同樣的半導(dǎo)體工藝條件下,微程序控制的速度比硬布線控制的速度低,那是因為執(zhí)行每條微指令都要從控存中讀取一次,影響了速度,而硬布線邏輯主要取決于電路延遲,速度比微程序控制器快。隨著新一代機器以及VLSI的發(fā)展,硬布線控制器又得到了重視和應(yīng)用。

5.5流水線

5.5.1重疊執(zhí)行和相關(guān)處理

1.重疊執(zhí)行方式一條指令的執(zhí)行過程可分成很多個階段,具體的分段要視各種處理機的情況而定。為了簡單起見,我們把一條指令的執(zhí)行過程分成取指令、分析指令與執(zhí)行指令三個階段,從時間上看如圖5.21所示。

指令的執(zhí)行方式可以有順序執(zhí)行方式和重疊執(zhí)行方式兩種。指令的順序執(zhí)行方式是指各條機器指令之間順序串行地執(zhí)行,執(zhí)行完一條指令后才取出下一條指令來執(zhí)行,而且若采用微程序的CPU,每條機器指令所對應(yīng)的各條微指令也是順序串行執(zhí)行的,如圖5.22所示。

指令的另一種解釋方式是重疊執(zhí)行方式,在執(zhí)行第k條指令的操作完成之前,就可開始第k+1條指令的執(zhí)行。如圖5.23所示。重疊執(zhí)行方式有兩種:一次重疊執(zhí)行方式和二次重疊執(zhí)行方式。一次重疊執(zhí)行方式是最簡單的重疊方式,把第k條指令的執(zhí)行階段和第k+1條指令的取指階段重疊在一起,即這兩個階段同時進行。

二次重疊執(zhí)行方式是把第k條指令的執(zhí)行階段和第k+1條指令的分析以及第k+2條指令的取指階段重疊在一起,即這三個階段同時進行。如圖5.24所示。

2.相關(guān)處理當一段程序的鄰近指令之間出現(xiàn)某種關(guān)聯(lián)后,為了避免出錯而使它們不能同時被執(zhí)行的現(xiàn)象稱之為“相關(guān)”。相關(guān)有兩大類:指令相關(guān)和操作數(shù)相關(guān)。指令相關(guān)是指第k條指令執(zhí)行的結(jié)果會影響第k+1條指令內(nèi)容而產(chǎn)生的關(guān)聯(lián),造成第k條指令和第k+1條指令不能同時執(zhí)行。操作數(shù)相關(guān)是指在第k條指令和第k+1條指令的數(shù)據(jù)地址之間發(fā)生關(guān)聯(lián),而使得第k條指令和第k+1條指令不能同時執(zhí)行。

5.5.3流水線工作原理

一條指令的“分析”與“執(zhí)行”兩個階段,分別在獨立的分析部件和執(zhí)行部件上進行。因此,不必等一條指令的“分析”、“執(zhí)行”階段都完成才送入下一條指令,而是分析部件在完成一條指令的“分析”階段時,就可開始下一條指令的“分析”階段。若“分析”與“執(zhí)行”子過程都需要⊿t的時間,則如圖5.25所示,就一條指令的執(zhí)行來看,需要2⊿t才能完成,但從機器的輸出來看,每隔⊿t就能完成一條指令的執(zhí)行。

如圖5.26所示,把“分析”階段再細分成“取指令”、“指令譯碼”和“取操作數(shù)”3個階段,并改進運算器的結(jié)構(gòu)以加快其“執(zhí)行”階段。這4個子過程分別由獨立的子部件實現(xiàn),讓指令經(jīng)過各子部件的時間都相同。

如果能把一條指令的執(zhí)行分解成時間大致相等的N個子階段,如圖5.27所示,則流水線的最大吞吐率會進一步提高。

在計算機實際的流水線中,各子部件經(jīng)過的時間會有差異。為解決這些子部件處理速度的差異,一般在子部件之間需設(shè)置高速接口鎖存器。如圖5.28所示。

由于流水線是同時解釋更多條指令的,因此相關(guān)狀況要比重疊機器的更復(fù)雜、更嚴重,如果處理不當,就會使流水線效率顯著下降。指令相關(guān)、主存操作數(shù)相關(guān)和通用/變址寄存器組操作數(shù)相關(guān)由于只影響相關(guān)的兩條或幾條指令,或至多影響流水線某些段的推后工作,并不會改動指令緩沖器中預(yù)取到的指令內(nèi)容,影響是局部的,因此被稱之為局部性相關(guān)。

例如,在圖5.29的4段流水線中,假如第2條指令的操作數(shù)地址即為第一條指令保存結(jié)果的地址,那么取操作數(shù)2的動作需要等待⊿t時間才能進行,否則取得的數(shù)據(jù)是錯誤的,這種情況稱為數(shù)據(jù)相關(guān),該數(shù)據(jù)可以是存放在存儲器中或通用寄存器中,分別稱為存儲器數(shù)據(jù)相關(guān)或寄存器數(shù)據(jù)相關(guān)。

此時流水線中指令流動情況將如圖5.30所示。

轉(zhuǎn)移指令和其后的指令之間存在關(guān)聯(lián),使之不能同時解釋,其造成的對流水線機器的吞吐率和效率下降的影響要比指令相關(guān)、主存操作數(shù)相關(guān)和通用/變址寄存器操作數(shù)相關(guān)嚴重得多,它可能會造成流水線中很多已被解釋的指令作廢,重新預(yù)取指令進

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論