計算機組成原理-中央處理器_第1頁
計算機組成原理-中央處理器_第2頁
計算機組成原理-中央處理器_第3頁
計算機組成原理-中央處理器_第4頁
計算機組成原理-中央處理器_第5頁
已閱讀5頁,還剩140頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1第6章

中央處理器2

中央處理器(CPU)是整個計算機的核心,它包括運算器和控制器。本章著重討論CPU的功能和組成,控制器的工作原理和實現(xiàn)方法,微程序控制原理,基本控制單元的設(shè)計以及先進(jìn)的流水線技術(shù)和RISC技術(shù)。3本章學(xué)習(xí)內(nèi)容6.1中央處理器的功能和組成6.2控制器的組成和實現(xiàn)方法6.3時序系統(tǒng)與控制方式6.4微程序控制原理6.5控制單元的設(shè)計6.6流水線技術(shù)6.7精簡指令系統(tǒng)計算機RISC4本章學(xué)習(xí)要求理解:CPU的功能和主要寄存器理解:控制器的基本組成理解:時序系統(tǒng)中指令周期、機器周期的概念了解:不同的控制方式(同步、異步、聯(lián)合)理解:指令執(zhí)行的基本過程掌握:取指周期的微操作序列(公共操作)理解:微程序控制的基本概念掌握:微指令編碼法特點理解:微程序控制器的組成和工作過程理解:微程序入口地址和后繼微地址的形成了解:控制單元的設(shè)計了解:流水線技術(shù)和RISC技術(shù)56.1中央處理器的功能和組成CPU對整個計算機系統(tǒng)的運行是極其重要的,這里將從CPU的功能、內(nèi)部結(jié)構(gòu)和主要技術(shù)參數(shù)入手,為后面詳細(xì)討論程序的執(zhí)行過程打下基礎(chǔ)。66.1.1CPU的功能若用計算機來解決某個問題,首先要為這個問題編制解題程序,而程序又是指令的有序集合。按“存儲程序”的概念,只要把程序裝入主存儲器后,即可由計算機自動地完成取指令和執(zhí)行指令的任務(wù)。在程序運行過程中,在計算機的各部件之間流動的指令和數(shù)據(jù)形成了指令流和數(shù)據(jù)流。7

指令流指的是CPU執(zhí)行的指令序列,

數(shù)據(jù)流指的是根據(jù)指令操作要求依次存取數(shù)據(jù)的序列。

從程序運行的角度來看,CPU的基本功能就是對指令流和數(shù)據(jù)流在時間與空間上實施正確的控制。

對于馮·諾依曼結(jié)構(gòu)的計算機而言,數(shù)據(jù)流是根據(jù)指令流的操作而形成的,也就是說數(shù)據(jù)流是由指令流來驅(qū)動的。86.1.2CPU中的主要寄存器1.通用寄存器通用寄存器可用來存放原始數(shù)據(jù)和運算結(jié)果,有的還可以作為變址寄存器、計數(shù)器、地址指針等?,F(xiàn)代計算機中為了減少訪問存儲器的次數(shù),提高運算速度,往往在CPU中設(shè)置大量的通用寄存器,少則幾個,多則幾十個,甚至上百個。通用寄存器一般由程序編址訪問。

累加寄存器Acc也是一個通用寄存器,它用來暫時存放ALU運算的結(jié)果信息。例如,在執(zhí)行一個加法運算前,先將一個操作數(shù)暫時存放在Acc中,再從主存中取出另一操作數(shù),然后同Acc的內(nèi)容相加,所得的結(jié)果送回Acc中。運算器中至少要有一個累加寄存器。9⑴

程序計數(shù)器(PC)

又稱指令計數(shù)器,用來存放正在執(zhí)行的指令地址或接著要執(zhí)行的下條指令地址。

對于順序執(zhí)行的情況,PC的內(nèi)容應(yīng)不斷地增量(加“1”),以控制指令的順序執(zhí)行。這種加“1”的功能,有些機器是程序計數(shù)器本身具有的,也有些機器是借助運算器來實現(xiàn)的。

在遇到需要改變程序執(zhí)行順序的情況時,將轉(zhuǎn)移的目標(biāo)地址送往PC,即可實現(xiàn)程序的轉(zhuǎn)移。有些情況下除改變PC的內(nèi)容外,還需要保留改變之前的內(nèi)容,以便返回時使用。2.專用寄存器10⑵

指令寄存器(IR)

用來存放從存儲器中取出的指令。當(dāng)指令從主存取出暫存于指令寄存器之后,在執(zhí)行指令的過程中,指令寄存器的內(nèi)容不允許發(fā)生變化,以保證實現(xiàn)指令的全部功能。⑶存儲器數(shù)據(jù)寄存器(MDR)

用來暫時存放由主存儲器讀出的一條指令或一個數(shù)據(jù)字;反之,當(dāng)向主存存入一條指令或一個數(shù)據(jù)字時,也暫時將它們存放在存儲器數(shù)據(jù)寄存器中。11⑷

存儲器地址寄存器(MAR)用來保存當(dāng)前CPU所訪問的主存單元的地址。由于主存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到主存的讀寫操作完成為止。當(dāng)CPU和主存進(jìn)行信息交換,無論是CPU向主存存取數(shù)據(jù)時,還是CPU從主存中讀出指令時,都要使用存儲器地址寄存器和數(shù)據(jù)寄存器。12⑸

狀態(tài)標(biāo)志寄存器(PSWR)

用來存放程序狀態(tài)字(PSW)。程序狀態(tài)字的各位表征程序和機器運行的狀態(tài),是參與控制程序執(zhí)行的重要依據(jù)之一。它主要包括兩部分內(nèi)容:一是狀態(tài)標(biāo)志,如進(jìn)位標(biāo)志(C)、結(jié)果為零標(biāo)志(Z)等,大多數(shù)指令的執(zhí)行將會影響到這些標(biāo)志位;二是控制標(biāo)志,如中斷標(biāo)志、陷阱標(biāo)志等。狀態(tài)標(biāo)志寄存器的位數(shù)往往等于機器字長,各類機器的狀態(tài)標(biāo)志寄存器的位數(shù)和設(shè)置位置不盡相同。136.1.3CPU的組成CPU由運算器和控制器兩大部分組成??刂破鞯闹饕δ苡校孩艔闹鞔嬷腥〕鲆粭l指令,并指出下一條指令在主存中的位置。⑵對指令進(jìn)行譯碼或測試,產(chǎn)生相應(yīng)的操作控制信號,以便啟動規(guī)定的動作。⑶指揮并控制CPU、主存和輸入輸出設(shè)備之間的數(shù)據(jù)流動方向。運算器的主要功能有:⑴執(zhí)行所有的算術(shù)運算;⑵執(zhí)行所有的邏輯運算,并進(jìn)行邏輯測試。14CPU的模型圖6-2CPU的模型例:課后習(xí)題6-14166.1.4CPU的主要技術(shù)參數(shù)CPU品質(zhì)的高低直接決定了一個計算機系統(tǒng)的檔次,而CPU的主要技術(shù)參數(shù)可以反映出CPU的大致性能。1.字長CPU的字長是指在單位時間內(nèi)同時處理的二進(jìn)制數(shù)據(jù)的位數(shù)。CPU按照其處理信息的字長可以分為:8位CPU、16位CPU、32位CPU以及64位CPU等。17內(nèi)部工作頻率又稱內(nèi)頻或主頻,它是衡量CPU速度的重要參數(shù)。在其他性能指標(biāo)相同時,CPU的主頻越高,CPU的速度也就越快。內(nèi)部時鐘頻率的倒數(shù)是時鐘周期,是CPU中最小的時間元素。每個動作至少需要一個時鐘周期。最初的8086和8088執(zhí)行一條指令平均需要12個時鐘周期;80286和80386每條指令大約要4.5個時鐘周期;80486每條指令大約2個時鐘周期;Pentium具有雙指令流水線,每個時鐘周期執(zhí)行1到2條指令;而Pentiumpro、PentiumⅡ/Ⅲ每個時鐘周期可以執(zhí)行3條或更多的指令。2.內(nèi)部工作頻率18也叫前端總線頻率或系統(tǒng)總線時鐘頻率,它是由主板為CPU提供的基準(zhǔn)時鐘頻率。正常情況下,CPU總線頻率和主存總線頻率相同,所以也是CPU與主存交換數(shù)據(jù)的頻率。在早期,CPU的內(nèi)頻就等于外頻。目前,CPU的內(nèi)頻越來越高,相比之下主存的速度還很緩慢,如果外頻設(shè)計得跟內(nèi)頻同步,則主存都將無法跟上CPU的速度。所以現(xiàn)在外頻跟內(nèi)頻不再只是一比一的同步關(guān)系,從而出現(xiàn)了所謂的內(nèi)部倍頻技術(shù),導(dǎo)致了“倍頻”的出現(xiàn)。內(nèi)頻、外頻和倍頻三者之間的關(guān)系是:內(nèi)頻=外頻×倍頻3.外部工作頻率195.片內(nèi)Cache的容量和速率片內(nèi)Cache的容量和工作速率對提高計算機的速度起著關(guān)鍵的作用。過去的CPU一般沒有片內(nèi)Cache,而近年的CPU普遍設(shè)有片內(nèi)Cache。片內(nèi)Cache的運行速度與內(nèi)頻相同或接近,容量可達(dá)幾十KB~幾百KB。20

7.地址總線寬度地址總線寬度決定了CPU可以訪問的最大的物理地址空間,簡單地說就是CPU到底能夠使用多大容量的主存。6.工作電壓

工作電壓指的是CPU正常工作所需的電壓。早期CPU的工作電壓一般為5V,以致于CPU的發(fā)熱量太大,使得壽命縮短。隨著CPU的制造工藝與內(nèi)頻的提高,近年來各種CPU的工作電壓逐步下降。

218.數(shù)據(jù)總線寬度

數(shù)據(jù)總線寬度則決定了CPU與外部Cache、主存以及輸入輸出設(shè)備之間進(jìn)行一次數(shù)據(jù)傳輸?shù)男畔⒘俊?/p>

數(shù)據(jù)總線和地址總線互相獨立,數(shù)據(jù)總線寬度指明了芯片的信息傳遞能力,而地址總線寬度說明了芯片可以處理多少主存單元。9.制造工藝

線寬是指芯片上的最基本功能單元—門電路的寬度,因為實際上門電路之間連線的寬度與門電路的寬度相同,所以可以用線寬來描述制造工藝。線寬越小,意味著芯片上包括的晶體管數(shù)目越多。PentiumII的線寬是0.35微米,晶體管數(shù)達(dá)到7.5M個;PentiumⅢ的線寬是0.25微米,晶體管數(shù)達(dá)到9.5M個;Pentium4的線寬是0.18微米,晶體管數(shù)達(dá)到42M個。例:課后習(xí)題6-6某機CPU芯片的主振頻率為8MHv,其時鐘周期是多少us?該機的平均指令執(zhí)行速度為0.8MIPS,平均指令周期是是多少us?時鐘周期是:1÷8MHv=0.125us平均指令周期是:1÷0.8MIPS=1.25us24控制器是計算機系統(tǒng)的指揮中心,它把運算器、存儲器、輸入輸出設(shè)備等部件組成一個有機的整體,然后根據(jù)指令的要求指揮全機的工作。6.2控制器的組成和實現(xiàn)方法25控制器的基本組成圖6-3控制器的基本組成261.指令部件指令部件的主要任務(wù)是完成取指令并分析指令。指令部件包括:⑴程序計數(shù)器⑵指令寄存器⑶指令譯碼器暫存在指令寄存器中的指令只有在其操作碼部分經(jīng)過譯碼之后才能識別出這是一條什么樣的指令,并產(chǎn)生相應(yīng)的控制信號提供給微操作信號發(fā)生器。⑷地址形成部件根據(jù)指令的不同尋址方式,形成操作數(shù)的有效地址。6.2.1控制器的基本組成272.時序部件時序部件能產(chǎn)生一定的時序信號,以保證機器的各功能部件有節(jié)奏地進(jìn)行信息傳送、加工及信息存儲。包括:⑴脈沖源產(chǎn)生具有一定頻率和寬度的時鐘脈沖信號,為整個機器提供基準(zhǔn)信號。⑵啟??刂七壿媶⑼?刂七壿嫷淖饔檬歉鶕?jù)計算機的需要,可靠地開放或封鎖脈沖,控制時序信號的發(fā)生或停止,實現(xiàn)對整個機器的正確啟動或停止。28⑶節(jié)拍信號發(fā)生器節(jié)拍信號發(fā)生器又稱脈沖分配器。脈沖源產(chǎn)生的脈沖信號,經(jīng)過節(jié)拍信號發(fā)生器后產(chǎn)生出各個機器周期中的節(jié)拍信號,用以控制計算機完成每一步微操作。29一條指令的取出和執(zhí)行可以分解成很多最基本的操作,這種最基本的不可再分割的操作稱為微操作。微操作信號發(fā)生器也稱為控制單元(CU)。不同的機器指令具有不同的微操作序列。4.中斷控制邏輯

中斷控制邏輯是用來控制中斷處理的硬件邏輯。有關(guān)中斷的問題將在第8章中專門進(jìn)行討論。3.微操作信號發(fā)生器30

控制器的核心是微操作信號發(fā)生器(控制單元CU)??刂茊卧妮斎氚〞r序信號、機器指令操作碼、各部件狀態(tài)反饋信號等,輸出的微操作控制信號又可以細(xì)分為CPU內(nèi)的控制信號和送至主存或外設(shè)的控制信號。

根據(jù)產(chǎn)生微操作控制信號的方式不同,控制器可分為組合邏輯型、存儲邏輯型、組合邏輯與存儲邏輯結(jié)合型3種。6.2.2控制器的硬件實現(xiàn)方法31采用組合邏輯技術(shù)來實現(xiàn),其控制單元是由門電路組成的復(fù)雜樹形網(wǎng)絡(luò)。這種方法是分立元件時代的產(chǎn)物,以使用最少器件數(shù)和取得最高操作速度為設(shè)計目標(biāo)。

最大優(yōu)點是速度快。但是控制單元的結(jié)構(gòu)不規(guī)整,使得設(shè)計、調(diào)試、維修較困難,難以實現(xiàn)設(shè)計自動化;一旦控制單元構(gòu)成之后,要想增加新的控制功能是不可能的。因此,它受到微程序控制器的強烈沖擊。目前僅有一些巨型機和RISC機為了追求高速度仍采用組合邏輯控制器。1.組合邏輯型32這種控制器稱為微程序控制器,是采用存儲邏輯來實現(xiàn)的,也就是把微操作信號代碼化,使每條機器指令轉(zhuǎn)化成為一段微程序并存入一個專門的存儲器(控制存儲器)中,微操作控制信號由微指令產(chǎn)生。

微程序控制器具有設(shè)計規(guī)整、調(diào)試、維修以及更改、擴充指令方便的優(yōu)點,易于實現(xiàn)自動化設(shè)計,已成為當(dāng)前控制器的主流。但是,由于它增加了一級控制存儲器,所以指令的執(zhí)行速度比組合邏輯控制器慢。2.存儲邏輯型33這種控制器稱為PLA(可編程邏輯陣列)控制器,是吸收前兩種方法的設(shè)計思想來實現(xiàn)的。PLA控制器實際上也是一種組合邏輯控制器,但它又與常規(guī)的組合邏輯控制器的硬聯(lián)結(jié)構(gòu)不同;它是可編程序的,某一微操作控制信號由PLA的某一輸出函數(shù)產(chǎn)生。

PLA控制器是組合邏輯技術(shù)和存儲邏輯技術(shù)結(jié)合的產(chǎn)物,克服了兩者的缺點,是一種較有前途的方法。3.組合邏輯和存儲邏輯結(jié)合型346.3時序系統(tǒng)與控制方式由于計算機高速地進(jìn)行工作,每一個動作的時間是非常嚴(yán)格的,不能有任何差錯。時序系統(tǒng)是控制器的心臟,其功能是為指令的執(zhí)行提供各種定時信號。351.指令周期和機器周期

指令周期是指從取指令、分析取數(shù)到執(zhí)行完該指令所需的全部時間。由于各種指令的操作功能不同,有的簡單,有的復(fù)雜,因此各種指令的指令周期不盡相同。

機器周期又稱CPU周期。通常把一個指令周期劃分為若干個機器周期,每個機器周期完成一個基本操作。一般機器的CPU周期有取指周期、取數(shù)周期、執(zhí)行周期、中斷周期等。所以有:

指令周期=i×機器周期6.3.1時序系統(tǒng)36不同的指令周期中所包含的機器周期數(shù)差別可能很大。一般情況下,一條指令所需的最短時間為兩個機器周期:取指周期和執(zhí)行周期。

通常,每個機器周期都有一個與之對應(yīng)的周期狀態(tài)觸發(fā)器。機器運行在不同的機器周期時,其對應(yīng)的周期狀態(tài)觸發(fā)器被置“1”。顯然,在機器運行的任何時刻只能處于一種周期狀態(tài),因此,有一個且僅有一個觸發(fā)器被置“1”。37在一個機器周期內(nèi),要完成若干個微操作。因而應(yīng)把一個機器周期分為若干個相等的時間段,每一個時間段對應(yīng)一個電位信號,稱為節(jié)拍電位信號。

節(jié)拍的寬度取決于CPU完成一次微操作的時間。節(jié)拍的選取一般有以下幾種方法:⑴統(tǒng)一節(jié)拍法

以最復(fù)雜的機器周期為準(zhǔn)定出節(jié)拍數(shù),每一個節(jié)拍時間的長短也以最繁的微操作作為標(biāo)準(zhǔn)。這種方法采用統(tǒng)一的、具有相等時間間隔和相同數(shù)目的節(jié)拍,使得所有的機器周期長度都是相等的,因此稱為定長CPU周期。2.節(jié)拍38⑵分散節(jié)拍法

按照機器周期的實際需要安排節(jié)拍數(shù),需要多少節(jié)拍,就發(fā)出多少節(jié)拍,這樣可以避免浪費,提高時間利用率。由于各機器周期長度不同,故稱為不定長CPU周期。⑶延長節(jié)拍法

在照顧多數(shù)機器周期要求的情況下,選取適當(dāng)?shù)墓?jié)拍數(shù),作為基本節(jié)拍。如果在某個機器周期內(nèi)統(tǒng)一的節(jié)拍數(shù)無法完成該周期的全部微操作,則可以延長一或兩個節(jié)拍。39⑷時鐘周期插入

在一些微型機中,時序信號中不設(shè)置節(jié)拍,而直接使用時鐘周期信號。一個機器周期中含有若干個時鐘周期,時鐘周期的數(shù)目取決于機器周期內(nèi)完成微操作數(shù)目的多少及相應(yīng)功能部件的速度。一個機器周期的基本時鐘周期數(shù)確定之后,還可以不斷插入等待時鐘周期。如8086的一個總線周期(即機器周期)中包含四個基本時鐘周期T1~T4,在T3和T4之間可以插入任意個等待時鐘周期TW,以等待速度較慢的存儲部件或外部設(shè)備完成讀或?qū)懖僮鳌?0在節(jié)拍中執(zhí)行的有些微操作需要同步定時脈沖,如將穩(wěn)定的運算結(jié)果打入寄存器,又如機器周期狀態(tài)切換等。為此,在一個節(jié)拍內(nèi)常常設(shè)置一個或幾個工作脈沖,作為各種同步脈沖的來源。工作脈沖的寬度只占節(jié)拍電位寬度的,并處于節(jié)拍的末尾部分,以保證所有的觸發(fā)器都能可靠、穩(wěn)定地翻轉(zhuǎn)。

在只設(shè)置機器周期和時鐘周期的微型機中,一般不再設(shè)置工作脈沖,因為時鐘周期既可以作為電位信號,其前、后沿又可以作為脈沖觸發(fā)信號。3.工作脈沖41圖6-6為小型機每個指令周期中常采用的機器周期、節(jié)拍、工作脈沖三級時序系統(tǒng)。圖中每個機器周期M中包括四個節(jié)拍T1~T4,每個節(jié)拍內(nèi)有一個脈沖P。在機器周期間、節(jié)拍電位間、工作脈沖間既不允許有重疊交叉,也不允許有空隙,應(yīng)該是一個接一個的準(zhǔn)確連接。4.多級時序系統(tǒng)42三級時序系統(tǒng)圖6-6三級時序系統(tǒng)435.節(jié)拍與脈沖的時間配合關(guān)系節(jié)拍---開門關(guān)門

脈沖---定時觸發(fā)441.同步控制方式

同步控制方式即固定時序控制方式,各項操作都由統(tǒng)一的時序信號控制,在每個機器周期中產(chǎn)生統(tǒng)一數(shù)目的節(jié)拍電位和工作脈沖。由于不同的指令,操作時間長短不一致。同步控制方式應(yīng)以最復(fù)雜指令的操作時間作為統(tǒng)一的時間間隔標(biāo)準(zhǔn)。6.3.2控制方式45這種控制方式設(shè)計簡單,容易實現(xiàn);但是對于許多簡單指令來說會有較多的空閑時間,造成較大數(shù)量的時間浪費,從而影響了指令的執(zhí)行速度。

在同步控制方式中,各指令所需的時序由控制器統(tǒng)一發(fā)出,所有微操作都與時鐘同步,所以又稱為集中控制方式或中央控制方式。46即可變時序控制方式,各項操作不采用統(tǒng)一的時序信號控制,而根據(jù)指令或部件的具體情況決定,需要多少時間,就占用多少時間。

這是一種“應(yīng)答”方式,各操作之間的銜接是由“結(jié)束-起始”信號來實現(xiàn)的。由前一項操作已經(jīng)完成的“結(jié)束”信號,或由下一項操作的“準(zhǔn)備好”信號來作為下一項操作的起始信號,在未收到“結(jié)束”或“準(zhǔn)備好”信號之前不開始新的操作。2.異步控制方式47異步控制采用不同時序,沒有時間上的浪費,因而提高了機器的效率,但是控制比較復(fù)雜。

由于這種控制方式?jīng)]有統(tǒng)一的時鐘,而是由各功能部件本身產(chǎn)生各自的時序信號自我控制,故又稱為分散控制方式或局部控制方式。48這是同步控制和異步控制相結(jié)合的方式。實際上現(xiàn)代計算機中幾乎沒有完全采用同步或完全采用異步的控制方式,大多數(shù)是采用聯(lián)合控制方式。通常的設(shè)計思想是:在功能部件內(nèi)部采用同步方式或以同步方式為主的控制方式,在功能部件之間采用異步方式。3.聯(lián)合控制方式491.取指令階段

取指令階段完成的任務(wù)是將現(xiàn)行指令從主存中取出來并送至指令寄存器中去。具體的操作如下:

①將程序計數(shù)器(PC)中的內(nèi)容送至存儲器地址寄存器(MAR),并送地址總線(AB)。

②由控制單元(CU)經(jīng)控制總線(CB)向存儲器發(fā)讀命令。

③從主存中取出的指令通過數(shù)據(jù)總線(DB)送到存儲器數(shù)據(jù)寄存器(MDR)。6.3.3指令運行的基本過程50④將MDR的內(nèi)容送至指令寄存器(IR)中。⑤將PC的內(nèi)容遞增,為取下一條指令做好準(zhǔn)備。

以上這些操作對任何一條指令來說都是必須要執(zhí)行的操作,所以稱為公共操作。完成取指階段任務(wù)的時間稱為取指周期。51取指周期的工作流程圖6-8取指周期的工作流程52取出指令后,指令譯碼器ID可識別和區(qū)分出不同的指令類型。此時計算機進(jìn)入分析取數(shù)階段,以獲取操作數(shù)。由于各條指令功能不同,尋址方式也不同,所以分析取數(shù)階段的操作是各不相同的。完成分析階段任務(wù)的時間又可以細(xì)分為間址周期、取數(shù)周期等。2.分析取數(shù)階段53執(zhí)行階段完成指令規(guī)定的各種操作,形成穩(wěn)定的運算結(jié)果,并將其存儲起來。完成執(zhí)行階段任務(wù)的時間稱為執(zhí)行周期。

計算機的基本工作過程就是取指令、取數(shù)、執(zhí)行指令,然后再取下一條指令……如此周而復(fù)始,直至遇到停機指令或外來的干預(yù)為止。3.執(zhí)行階段例:課后習(xí)題6-14(2)簡述指令從主存取出送到控制器的數(shù)據(jù)通路(3)簡述數(shù)據(jù)在運算器和主存之間進(jìn)行存取訪問的數(shù)據(jù)通路取指令:PC→MAR→M→MDR→IR存數(shù)據(jù):數(shù)據(jù)地址(Y)→MAR,AC→MDR→M取數(shù)據(jù):數(shù)據(jù)地址(Y)→MAR,M→MDR→ALU→AC55控制器在實現(xiàn)一條指令的功能時,總要把每條指令分解成為一系列時間上先后有序的最基本、最簡單的微操作,即微操作序列。微操作序列是與CPU的內(nèi)部數(shù)據(jù)通路密切相關(guān)的,不同的數(shù)據(jù)通路就有不同的微操作序列。

6.3.4指令的微操作序列56CPU的數(shù)據(jù)通路圖6-9CPU的數(shù)據(jù)通路57這條指令完成的功能是把R0的內(nèi)容作為地址送到主存以取得一個操作數(shù),再與R1中的內(nèi)容相加,最后將結(jié)果送回主存中。即實現(xiàn):((R0))+(R1)→(R0)1.加法指令A(yù)DD@R0,R158⑴取指周期取指周期完成的微操作序列是公共的操作,與具體指令無關(guān)。①PCout和MARin有效,完成PC經(jīng)CPU內(nèi)部總線送至MAR的操作,(PC)→MAR;

②通過控制總線(圖中未畫出)向主存發(fā)讀命令,記作Read;

③存儲器通過數(shù)據(jù)總線將MAR所指單元的內(nèi)容(指令)送至MDR,記作M(MAR)→MDR;

1.加法指令A(yù)DD@R0,R1(續(xù))59④MDRout和IRin有效,將MDR的內(nèi)容送至指令寄存器IR,記作(MDR)→IR。至此,指令被從主存中取出,其操作碼字段開始控制CU。⑤使PC內(nèi)容加1,記作(PC)+1→PC。1.加法指令A(yù)DD@R0,R1(續(xù))60⑵取數(shù)周期取數(shù)周期要完成取操作數(shù)的任務(wù),被加數(shù)在主存中,加數(shù)已放在寄存器R1中。①R0out和MARin有效,完成將被加數(shù)地址送至MAR的操作,記作(R0)→MAR;②向主存發(fā)讀命令,記作Read;③存儲器通過數(shù)據(jù)總線將MAR所指單元的內(nèi)容(數(shù)據(jù))送至MDR,同時MDRout和Yin有效,記作M(MAR)→MDR→Y;1.加法指令A(yù)DD@R0,R1(續(xù))61⑶執(zhí)行周期

執(zhí)行周期完成加法運算的任務(wù),并將結(jié)果寫回主存。①R1out和ALUin有效,同時CU向ALU發(fā)“ADD”控制信號,使R1的內(nèi)容和Y的內(nèi)容相加,結(jié)果送寄存器Z,記作(R1)+Y→Z;②Zout和MDRin有效,將運算結(jié)果送寄存器MDR,記作(Z)→MDR。③向主存發(fā)寫命令,記作Write。1.加法指令A(yù)DD@R0,R1(續(xù))62這是一條條件轉(zhuǎn)移指令,若上次運算結(jié)果有進(jìn)位(C=1),就轉(zhuǎn)移;若上次運算結(jié)果無進(jìn)位(C=0),就順序執(zhí)行下一條指令。設(shè)A為位移量,轉(zhuǎn)移地址等于PC的內(nèi)容加位移量。相應(yīng)的微操作序列如下:⑴取指周期與上條指令的微操作序列完全相同。2.轉(zhuǎn)移指令JCA63⑵執(zhí)行周期如果有進(jìn)位(C=1),則完成(PC)+A→PC的操作,否則跳過以下幾步。①PCout和Yin有效,記作(PC)→Y(C=1);

②AdIRout和ALUin有效,同時CU向ALU發(fā)“ADD”控制信號,使IR寄存器中的地址碼字段A和Y的內(nèi)容相加,結(jié)果送寄存器Z,記作Ad(IR)+Y→Z;

③Zout和PCin有效,將運算結(jié)果送寄存器PC,記作(Z)→PC。2.轉(zhuǎn)移指令JCA(續(xù))2024/2/364例:模型機中指令A(yù)DDR1,R2的指令執(zhí)行過程及控制信號。(PC)→MAR讀主存(PC)+1→PC(MDR)→IR1→ETFT0FT1FT2FT3PC→BUS1,S3S2S1S0M,DM,CPMARMRQ,R/W=1,PC→BUS1,S3S2S1S0M,C0,DM,CPPCMDR→BUS1,S3S2S1S0M,DM,CPIR1→ET,CPET(R1)→YET0ET1R0→BUS1,S3S2S1S0M,DM,CPR0,CPCC,CPCZR1→BUS1,S3S2S1S0M,DM,CPY(R0)+(Y)→R0END65微程序設(shè)計技術(shù)的實質(zhì)是將程序設(shè)計技術(shù)和存儲技術(shù)相結(jié)合,即用程序設(shè)計的思想方法來組織操作控制邏輯,將微操作控制信號按一定規(guī)則進(jìn)行信息編碼(代碼化),形成控制字(微指令),再把這些微指令按時間先后排列起來構(gòu)成微程序,存放在一個只讀的控制存儲器中。6.4微程序控制原理661.微程序設(shè)計的提出與發(fā)展

M.V.Wilkes教授提出:一條機器指令可以分解為許多基本的微命令序列。并且首先把這種思想用于計算機控制器的設(shè)計。由于當(dāng)時不具備制造專門存放微程序的控制存儲器的技術(shù),所以在十幾年時間內(nèi)實際上并未真正使用。直到1964年,IBM公司在IBM360系列機上成功地采用了微程序設(shè)計技術(shù),解決了指令系統(tǒng)的兼容問題。20世紀(jì)70年代以來,由于VLSI技術(shù)的發(fā)展,推動了微程序設(shè)計技術(shù)的發(fā)展和應(yīng)用,目前,大多數(shù)計算機都采用微程序設(shè)計技術(shù)。6.4.1微程序控制的基本概念微程序是現(xiàn)代計算機組成的理論框架中非常重要的概念。實現(xiàn)形式各不相同、五花八門,但存在意義都是相同的。完全依賴硬件結(jié)構(gòu),每種微程序格式是針對特定的計算機硬件結(jié)構(gòu)的。實例2024/2/370①微命令;直接作用于部件或控制門電路的控制命令。是構(gòu)成控制信號序列的最小單位。例如模型機中的EMRD,EMWR、AEN、WEN、CPIR、R/W等控制信號都稱為微命令。②微操作;由微命令控制實現(xiàn)的最基本的操作。微操作的定義可大可小例:微操作:(PC)→MAR;是在一組微命令PC→BUS1、S3S2S1S0M、DM、CPMAR的控制下實現(xiàn)的。2.基本術(shù)語2024/2/371③微指令:是存放在控制存儲器中的一個單元的內(nèi)容,即控制字,是若干個微命令的集合。用以產(chǎn)生一組微命令,控制完成一組微操作。一條微指令通??刂茖崿F(xiàn)數(shù)據(jù)通路中的一步操作過程。微地址:存放控制字的控制存儲器的單元地址就稱為微地址。④微程序:一系列微指令的有序集合稱為微程序。在微程序控制的機器中,一條機器指令對應(yīng)著一段由若干條有序的微指令構(gòu)成的微程序;通過解釋執(zhí)行一段微程序,可以實現(xiàn)相應(yīng)的一條機器指令的功能。2024/2/372⑤微周期:從控制存儲器中讀取一條微指令并執(zhí)行相應(yīng)的微操作所需的時間稱為微周期。⑥控制存儲器(CM):存放微程序的存儲器。也稱為微程序存儲器。一般計算譏指令系統(tǒng)是固定的,因而實現(xiàn)指令系統(tǒng)的微程序也是固定的,所以控制存儲器通常用只讀存儲器實現(xiàn)。73一條微指令通常包含兩部分:

①操作控制字段,又稱微操作碼字段,用以產(chǎn)生某一步操作所需的各微操作控制信號;

②順序控制字段,又稱微地址碼字段,用以控制產(chǎn)生下一條要執(zhí)行的微指令地址。74編碼法指的是操作控制字段的編碼方法。各類計算機的微指令編碼法各不相同。例如:大型機強調(diào)速度,要求譯碼過程盡量快;微、小型機則更多地注意經(jīng)濟(jì)性,要求更大限度地縮短微指令字長;而中型機介于這兩者之間,兼顧速度和價格,要求在保證一定速度的情況下,能盡量縮短微指令字長。6.4.2微指令編碼法75操作控制字段中的各位分別可以直接控制計算機,無須進(jìn)行譯碼。在這種形式的微指令字中,操作控制字段的每一個獨立的二進(jìn)制位代表一個微命令,該位為“1”表示這個微命令有效,為“0”則表示這個微命令無效。每個微命令對應(yīng)并控制數(shù)據(jù)通路中的一個微操作。1.直接控制法(不譯碼法)76這種方法結(jié)構(gòu)簡單,并行性強,操作速度快,但微指令字太長。若微命令的總數(shù)為N個,就要有N位。在某些計算機中,微命令的總數(shù)可能會多達(dá)幾百個,這使微指令的長度達(dá)到難以接受的地步。另外,在N個微命令中,有許多是互斥的,不允許并行操作,將它們安排在一條微指令中是毫無意義的,只會使信息的利用率下降。所以這種方法在復(fù)雜的系統(tǒng)中很少單獨采用,往往與其他編碼方法混合起來使用。1.直接控制法(不譯碼法)77直接控制法使微指令字過長,而最短編碼法則走向另一個極端,使得微指令字最短。這種方法將所有的微命令統(tǒng)一編碼,每條微指令只定義一個微命令。若微命令的總數(shù)為N,操作控制字段的長度為L,則最短編碼法應(yīng)滿足下列關(guān)系式:

L≥log2N2.最短編碼法78該方法通過一個微命令譯碼器譯碼以后才能得到需要的微命令。微命令數(shù)目越多,譯碼器就越復(fù)雜。這種方法在同一時刻只能產(chǎn)生一個微命令,不能充分利用機器硬件所具有的并行性,使得機器指令對應(yīng)的微程序變得很長,而且對于某些要求在同一時刻同時動作的組合性微操作將無法實現(xiàn)。因此,這種方法也只能與其他方法混合使用。2.最短編碼法(續(xù))79這是前述兩種編碼法的一個折衷。這種方法將操作控制字段分為若干個小段,每段內(nèi)采用最短編碼法,段與段之間采用直接控制法。⑴

字段直接編碼法各字段都可以獨立地定義本字段的微命令,而和其他字段無關(guān),因此又稱為顯式編碼或單重定義編碼方法。這種方法縮短了微指令字,因此得到了廣泛的應(yīng)用。3.字段編碼法80字段直接編碼法圖6-10字段直接編碼法2024/2/381利用二進(jìn)制編碼描述操作系列。3位5位1位2位2位3位1位2位BUSinS3S2S1S0MC0SBUS1outBUS2outR/WIO/MBUSin功能000無001RS→BUS1010RD→BUS1011TEMP→BUS1100SP→BUS1101MDR→BUS1110IR(D)→BUS1111PC→BUS1S3S2S1S0M按74181的規(guī)定C0功能0C0=01C0=1S功能00DM01SL10SR11EXBUS1out功能00無01CPIR10CPMAR11CPCZ、CPCC82⑵

字段間接編碼法

間接編碼的含義是,一個字段的某些編碼不能獨立地定義某些微命令,而需要與其他字段的編碼來聯(lián)合定義,因此又稱為隱式編碼或多重定義編碼方法。83字段間接編碼法圖6-11字段間接編碼法84

字段編碼法中操作控制字段的分段原則:

①把互斥性的微命令分在同一段內(nèi),兼容性的微命令分在不同段內(nèi)。這樣不僅有助于提高信息的利用率,縮短微指令字長,而且有助于充分利用硬件所具有的并行性,加快執(zhí)行的速度。

②應(yīng)與數(shù)據(jù)通路結(jié)構(gòu)相適應(yīng)。

③每個小段中包含的信息位不能太多,否則將增加譯碼線路的復(fù)雜性和譯碼時間。

④一般每個小段還要留出一個狀態(tài),表示本字段不發(fā)出任何微命令。因此當(dāng)某字段的長度為三位時,最多只能表示七個互斥的微命令,通常用000表示不操作。851.微程序控制器的基本組成

圖6-12給出了一個微程序控制器基本結(jié)構(gòu)的簡化框圖,在圖中包括:控制存儲器、微指令寄存器、微地址形成部件、微地址寄存器等。6.4.3微程序控制器的組成和工作過程86微程序控制器的基本結(jié)構(gòu)87⑴控制存儲器(CM)

這是微程序控制器的核心部件,用來存放微程序。⑵微指令寄存器(

IR)

用來存放從CM中取出的微指令。⑶微地址形成部件

用來產(chǎn)生初始微地址和后繼微地址。⑷微地址寄存器(

MAR)

接受微地址形成部件送來的微地址,為在CM中讀取微指令做準(zhǔn)備。1.微程序控制器的基本組成88①執(zhí)行取指令公共操作。取指令的公共操作通常由一個取指微程序來完成,這個取指微程序也可能僅由一條微指令組成。具體的執(zhí)行是:在機器開始運行時,自動將取指微程序的入口微地址送

MAR,并從CM中讀出相應(yīng)的微指令送入

IR。微指令的操作控制字段產(chǎn)生有關(guān)的微命令,用來控制計算機實現(xiàn)取機器指令的公共操作。取指微程序的入口地址一般為CM的0號單元,當(dāng)取指微程序執(zhí)行完后,從主存中取出的機器指令就已存入指令寄存器IR中了。2.微程序控制器的工作過程89②由機器指令的操作碼字段通過微地址形成部件產(chǎn)生該機器指令所對應(yīng)的微程序的入口地址,并送入

MAR。

③從CM中逐條取出對應(yīng)的微指令并執(zhí)行之。

④執(zhí)行完對應(yīng)于一條機器指令的一個微程序后又回到取指微程序的入口地址,繼續(xù)第①步,以完成取下一條機器指令的公共操作。

以上是一條機器指令的執(zhí)行過程,如此周而復(fù)始,直到整個程序執(zhí)行完畢為止。90通常,一條機器指令對應(yīng)一個微程序。任何一條機器指令的取指令操作都是相同的,因此將取指令操作的微命令統(tǒng)一編成一個微程序,這個微程序只負(fù)責(zé)將指令從主存單元中取出送至指令寄存器中。此外,也可以編出對應(yīng)間址周期的微程序和中斷周期的微程序。這樣,控制存儲器中的微程序個數(shù)應(yīng)為機器指令數(shù)再加上對應(yīng)取指、間址和中斷周期等公用的微程序數(shù)。3.機器指令對應(yīng)的微程序91當(dāng)公用的取指微程序從主存中取出機器指令之后,由機器指令的操作碼字段指出各個微程序的入口地址(初始微地址)。這是一種多分支(或多路轉(zhuǎn)移)的情況。由機器指令的操作碼轉(zhuǎn)換成初始微地址的方式主要有3種。1.一級功能轉(zhuǎn)換

如果機器指令操作碼字段的位數(shù)和位置固定,可以直接使操作碼與入口地址碼的部分位相對應(yīng)。6.4.4微程序入口地址的形成92當(dāng)同類機器指令的操作碼字段的位數(shù)和位置固定,而不同類機器指令的操作碼的位數(shù)和位置不固定時,就不能再采用一級功能轉(zhuǎn)換的方法。所謂二級功能轉(zhuǎn)換是指第一次先按指令類型標(biāo)志轉(zhuǎn)移,以區(qū)分出指令屬于哪一類,如:是單操作數(shù)指令,還是雙操作數(shù)指令等。因為每一類機器指令中操作碼字段的位數(shù)和位置是固定的,所以第二次即可按操作碼區(qū)分出具體是哪條指令,以便找出相應(yīng)微程序的入口微地址。2.二級功能轉(zhuǎn)換93當(dāng)機器指令的操作碼位數(shù)和位置都不固定時,可以采用PLA電路將每條機器指令的操作碼翻譯成對應(yīng)的微程序入口地址。這種方法對于變長度、變位置的操作碼顯得更有效,而且轉(zhuǎn)換速度較快。3.通過PLA電路實現(xiàn)功能轉(zhuǎn)換941.增量方式(順序-轉(zhuǎn)移型微地址)順序執(zhí)行時后繼微地址就是現(xiàn)行微地址加上一個增量(通常為“1”);轉(zhuǎn)移或轉(zhuǎn)子時,由微指令的順序控制字段產(chǎn)生轉(zhuǎn)移微地址。因此,在微程序控制器中應(yīng)當(dāng)有一個微程序計數(shù)器(

PC)。為了降低成本,一般情況下都是將微地址寄存器

MAR改為具有計數(shù)功能的寄存器,以代替

PC。

增量方式的優(yōu)點是簡單,易于掌握,編制微程序容易,每條機器指令所對應(yīng)的一段微程序一般安排在CM的連續(xù)單元中;其缺點是這種方式不能實現(xiàn)兩路以上的并行微程序轉(zhuǎn)移,因而不利于提高微程序的執(zhí)行速度。6.4.5后繼微地址的形成95斷定方式的后繼微地址可由微程序設(shè)計者指定,或者根據(jù)微指令所規(guī)定的測試結(jié)果直接決定后繼微地址的全部或部分值。

這是一種直接給定與測試斷定相結(jié)合的方式,其順序控制字段一般由兩部分組成:非測試段和測試段。測試段如果只有一位,則微地址將產(chǎn)生兩個分支;若有兩位,則最多可產(chǎn)生四個分支;依次類推;測試段為n位最多可產(chǎn)生2n個分支。2.斷定方式961.微程序分類水平型微程序用水平型微指令設(shè)計的微程序垂直型微程序用垂直型微指令設(shè)計的微程序混合型微程序2.微指令的執(zhí)行方式串行方式并行方式6.4.6微程序設(shè)計97這一節(jié)將以一個簡單的CPU為例來討論控制器中控制單元的設(shè)計。選擇的CPU模型比較簡單,指令系統(tǒng)中僅具有最常見的基本指令和尋址方式,在邏輯結(jié)構(gòu)、時序安排、操作過程安排等方面盡量規(guī)整、簡單,比較容易掌握,以幫助大家建立整機概念。6.5控制單元的設(shè)計98控制單元的主要功能是根據(jù)需要發(fā)出各種不同的微操作控制信號。微操作控制信號是與CPU的數(shù)據(jù)通路密切相關(guān)的。圖6-17中MAR和MDR分別直接與地址總線和數(shù)據(jù)總線相連??紤]到從存儲器取出的指令或有效地址都先送至MDR再送至IR,故這里省去IR送至MAR的數(shù)據(jù)通路,凡是需從IR送至MAR的操作均由MDR送至MAR代替。6.5.1簡單的CPU模型991001.非訪存指令(6條)這類指令在執(zhí)行周期不訪問存儲器。⑴清除累加器指令CLA⑵累加器取反指令COM⑶累加器加1指令I(lǐng)NC⑷算術(shù)右移一位指令SAR⑸循環(huán)左移一位指令CSL⑹停機指令STP此CPU的指令系統(tǒng)包括下列指令(共15條):101這類指令在執(zhí)行周期需訪問存儲器。⑴加法指令A(yù)DD;(AC)+(MDR)(AC)⑵減法指令SUB;(AC)-(MDR)(AC)⑶與指令A(yù)ND;(AC)&(MDR)(AC)⑷取數(shù)指令LDA;(MDR)AC⑸存數(shù)指令STA;(AC)

MDR2.訪存指令(5條)102轉(zhuǎn)移指令在執(zhí)行周期也不訪問存儲器。⑴無條件轉(zhuǎn)移指令JMP;(MDR)PC⑵零轉(zhuǎn)移指令JZ;⑶負(fù)轉(zhuǎn)移指令JN;⑷進(jìn)位轉(zhuǎn)移指令JC;3.轉(zhuǎn)移類指令(4條)1031041.微操作的節(jié)拍安排假設(shè)機器采用同步控制,每個機器周期包括3個節(jié)拍,安排微操作節(jié)拍時應(yīng)注意:①有些微操作的次序是不容改變的,故安排微操作節(jié)拍時必須注意微操作的先后順序。②凡是被控制對象不同的微操作,若能在一個節(jié)拍內(nèi)執(zhí)行,應(yīng)盡可能安排在同一個節(jié)拍內(nèi),以節(jié)省時間。③如果有些微操作所占的時間不長,應(yīng)該將它們安排在一個節(jié)拍內(nèi)完成,并且允許這些微操作有先后次序。6.5.2組合邏輯控制單元設(shè)計105⑴取指周期微操作的節(jié)拍安排取指周期的操作是公操作,其完成的任務(wù)已在前面進(jìn)行過描述,在此不再重復(fù),這些操作可以安排在3個節(jié)拍中完成。T0(PC)→MAR,ReadT1M(MAR)→MDR,(PC)+1→PCT2(MDR)→IR??紤]到指令譯碼時間較短,可將指令譯碼OP(IR)→ID也安排在T2節(jié)拍內(nèi)。1.微操作的節(jié)拍安排(續(xù))106⑵間址周期微操作的節(jié)拍安排間址周期完成取操作數(shù)有效地址的任務(wù),具體操作如下:①將指令的地址碼部分(形式地址)送至存儲器地址寄存器,記作(MDR)→MAR;②向主存發(fā)讀命令,啟動主存讀操作,記作Read;③將MAR所指的主存單元中的內(nèi)容(有效地址)經(jīng)數(shù)據(jù)總線讀至MDR,記作M(MAR)→MDR;④將有效地址送至存儲器地址寄存器MAR,記作(MDR)→MAR。此操作在有些機器中可省略。1.微操作的節(jié)拍安排(續(xù))107108109110111⑴列出微操作命令的操作時間表2.組合邏輯設(shè)計步驟112113⑵進(jìn)行微操作信號綜合在列出微操作時間表之后,即可對它們進(jìn)行綜合分析、歸類,根據(jù)微操作時間表可以寫出各微操作控制信號的邏輯表達(dá)式。114⑶畫出微操作命令的邏輯圖根據(jù)邏輯表達(dá)式可畫出對應(yīng)每一個微操作信號的邏輯電路圖,并用邏輯門電路實現(xiàn)之。115微程序設(shè)計控制單元的主要任務(wù)是編寫對應(yīng)各條機器指令的微程序,具體步驟是首先寫出對應(yīng)機器指令的全部微操作節(jié)拍安排,然后確定微指令格式,最后編寫出每條微指令的二進(jìn)制代碼。6.5.3微程序控制單元設(shè)計116⑴確定微程序控制方式

根據(jù)計算機系統(tǒng)的性能指標(biāo)(主要是速度)確定微程序控制方式。⑵擬定微命令系統(tǒng)

初步擬定微命令系統(tǒng),并同時進(jìn)行微指令格式的設(shè)計,包括微指令字段的劃分、編碼方式的選擇、初始微地址和后繼微地址的形成等等。1.微程序控制單元的設(shè)計步驟117⑶編制微程序

對微命令系統(tǒng)、微指令格式進(jìn)行反復(fù)的核對和審查,并進(jìn)行適當(dāng)?shù)男薷模粚χ貜?fù)和多余的微指令進(jìn)行合并和精簡,直至編制出全部機器指令的微程序為止。⑷微程序代碼化

將修改完善的微程序轉(zhuǎn)換成二進(jìn)制代碼,這一過程稱為代碼化或代真。⑸寫入控制存儲器最后將一串串二進(jìn)制代碼按地址寫入控制存儲器的對應(yīng)單元。118119120第23位第24位操作00多分支轉(zhuǎn)移(轉(zhuǎn)移到操作碼+3處)01轉(zhuǎn)移到00處10順序執(zhí)行11不允許12115條指令的操作碼CLA----00H----00000000BCOM---04H----00000100BINC-----08H----00001000BSAR----0CH----00001100BCSL----10H-----00010000BSTP-----14H----00010100BADD----18H----00011000BSUB-----1CH---00011100BAND-----20H----00100000BLDA------24H---00100100BSTA------28H---00101000BJMP-----2CH---00101100BJZ--------30H---00110000BJC--------34H---00110100BJN--------38H---00111000B122123對于指令的執(zhí)行,可有幾種控制方式:順序方式、重疊方式、先行控制及流水線控制方式。順序方式指的是各條機器指令之間順序串行的執(zhí)行,即執(zhí)行完一條指令后,方可取出下一條指令來執(zhí)行。這種方式控制簡單,但速度慢,機器各部件的利用率低。為了加快指令的執(zhí)行速度,充分利用計算機系統(tǒng)的硬件資源,提高機器的吞吐率,計算機中常采用重疊方式、先行控制方式,以及流水線控制方式。6.6流水線技術(shù)124通常,一條指令的執(zhí)行過程可以分為3個階段:取指、分析、執(zhí)行。假定每個階段所需的時間為t,采用順序方式執(zhí)行n條指令所需的時間為T=3nt

最早出現(xiàn)的重疊是“取指K+1”和“執(zhí)行K”在時間上的重疊,稱為一次重疊,這將使處理機速度有所提高,所需執(zhí)行時間減少為T=3

t+(n-1)

2t=(2

n+1)t6.6.1重疊控制125如果進(jìn)一步增加重疊,使“取指K+2”、“分析K+1”和“執(zhí)行K”重疊起來,稱為二次重疊,則處理機速度還可以進(jìn)一步提高,所需執(zhí)行時間減少為:T=3

t+(n-1)t=(2+n)t為了在“執(zhí)行K”時同時完成“分析K+1”和“取指K+2”的工作,應(yīng)把控制器分解為存儲控制器、指令控制器、運算控制器。6.6.1重疊控制(續(xù))1266.6.1重疊控制(續(xù))如果在“分析K+1”時要訪問存儲器,而“取指K+2”也要訪問存儲器,就出現(xiàn)了訪存沖突,解決沖突的辦法有3種:(1)設(shè)置2個存儲器,一個程序存儲器一個數(shù)據(jù)存儲器。(2)主存采用多體交叉存儲器,且第K+1條指令的操作數(shù)與第K+2條指令存儲在不同的存儲體中。(3)使用指令隊列緩沖器。127先行控制是重疊控制的一種改進(jìn)方式。在重疊控制中,“執(zhí)行K”和“分析K+1”重疊,如果所有指令的“分析”與“執(zhí)行”的時間均相等,則重疊的流程是非常流暢的,無任何阻礙,機器的指令分析部件和執(zhí)行部件功能充分地發(fā)揮,機器的速度也能顯著地提高。但是,現(xiàn)代計算機的指令系統(tǒng)很復(fù)雜,各種類型指令難于做到“分析”與“執(zhí)行”時間始終相等。此時,各個階段的控制部件就有可能出現(xiàn)間斷等待的問題。這樣,指令的分析部件和執(zhí)行部件都不能連續(xù)地、流暢地工作,從而使機器的整體速度受到影響。6.6.2先行控制原理128

為了使各部件能連續(xù)地工作,則提出先行控制的方式。圖6-22中“分析”和“執(zhí)行”階段之間有等待的時間間隔Δt,但它們各自的流程中卻是連續(xù)的。先行控制的主要目的是使各階段的專用控制部件不間斷的工作,以提高設(shè)備的利用率及執(zhí)行速度。6.6.2先行控制原理(續(xù))129130流水處理技術(shù)是在重疊、先行控制方式的基礎(chǔ)上發(fā)展起來的,它基于重疊的原理,但卻是在更高程度上的重疊。1.流水線

流水線是將一個較復(fù)雜的處理過程分成m個復(fù)雜程度相當(dāng)、處理時間大致相等的子過程,每個子過程由一個獨立的功能部件來完成,處理對象在各子過程連成的線路上連續(xù)流動。在同一時間,m個部件同時進(jìn)行不同的操作,完成對不同子過程的處理。6.6.3流水工作原理131這種方式類似于現(xiàn)代工廠的生產(chǎn)流水線,在那里每隔一段時間(Δt)從流水線上流出一個產(chǎn)品,而生產(chǎn)這個產(chǎn)品的總時間要比Δt大得多。由于流水線上各部件并行工作,同時對多條指令進(jìn)行解釋執(zhí)行,機器的吞吐率將大大提高。例如,將一條指令的執(zhí)行過程分成取指令、指令譯碼、取操作數(shù)和執(zhí)行四個子過程,分別由四個功能部件來完成,每個子過程所需時間為Δt。四個子過程的流水線如圖6-23(a)所示,圖6-23

溫馨提示

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

評論

0/150

提交評論