版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1第6章
中央處理器2
中央處理器(CPU)是整個(gè)計(jì)算機(jī)的核心,它包括運(yùn)算器和控制器。本章著重討論CPU的功能和組成,控制器的工作原理和實(shí)現(xiàn)方法,微程序控制原理,基本控制單元的設(shè)計(jì)以及先進(jìn)的流水線技術(shù)和RISC技術(shù)。3本章學(xué)習(xí)內(nèi)容6.1中央處理器的功能和組成6.2控制器的組成和實(shí)現(xiàn)方法6.3時(shí)序系統(tǒng)與控制方式6.4微程序控制原理6.5控制單元的設(shè)計(jì)6.6流水線技術(shù)6.7精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)RISC4本章學(xué)習(xí)要求理解:CPU的功能和主要寄存器理解:控制器的基本組成理解:時(shí)序系統(tǒng)中指令周期、機(jī)器周期的概念了解:不同的控制方式(同步、異步、聯(lián)合)理解:指令執(zhí)行的基本過(guò)程掌握:取指周期的微操作序列(公共操作)理解:微程序控制的基本概念掌握:微指令編碼法特點(diǎn)理解:微程序控制器的組成和工作過(guò)程理解:微程序入口地址和后繼微地址的形成了解:控制單元的設(shè)計(jì)了解:流水線技術(shù)和RISC技術(shù)56.1中央處理器的功能和組成CPU對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)的運(yùn)行是極其重要的,這里將從CPU的功能、內(nèi)部結(jié)構(gòu)和主要技術(shù)參數(shù)入手,為后面詳細(xì)討論程序的執(zhí)行過(guò)程打下基礎(chǔ)。66.1.1CPU的功能若用計(jì)算機(jī)來(lái)解決某個(gè)問(wèn)題,首先要為這個(gè)問(wèn)題編制解題程序,而程序又是指令的有序集合。按“存儲(chǔ)程序”的概念,只要把程序裝入主存儲(chǔ)器后,即可由計(jì)算機(jī)自動(dòng)地完成取指令和執(zhí)行指令的任務(wù)。在程序運(yùn)行過(guò)程中,在計(jì)算機(jī)的各部件之間流動(dòng)的指令和數(shù)據(jù)形成了指令流和數(shù)據(jù)流。7
指令流指的是CPU執(zhí)行的指令序列,
數(shù)據(jù)流指的是根據(jù)指令操作要求依次存取數(shù)據(jù)的序列。
從程序運(yùn)行的角度來(lái)看,CPU的基本功能就是對(duì)指令流和數(shù)據(jù)流在時(shí)間與空間上實(shí)施正確的控制。
對(duì)于馮·諾依曼結(jié)構(gòu)的計(jì)算機(jī)而言,數(shù)據(jù)流是根據(jù)指令流的操作而形成的,也就是說(shuō)數(shù)據(jù)流是由指令流來(lái)驅(qū)動(dòng)的。86.1.2CPU中的主要寄存器1.通用寄存器通用寄存器可用來(lái)存放原始數(shù)據(jù)和運(yùn)算結(jié)果,有的還可以作為變址寄存器、計(jì)數(shù)器、地址指針等。現(xiàn)代計(jì)算機(jī)中為了減少訪問(wèn)存儲(chǔ)器的次數(shù),提高運(yùn)算速度,往往在CPU中設(shè)置大量的通用寄存器,少則幾個(gè),多則幾十個(gè),甚至上百個(gè)。通用寄存器一般由程序編址訪問(wèn)。
累加寄存器Acc也是一個(gè)通用寄存器,它用來(lái)暫時(shí)存放ALU運(yùn)算的結(jié)果信息。例如,在執(zhí)行一個(gè)加法運(yùn)算前,先將一個(gè)操作數(shù)暫時(shí)存放在Acc中,再?gòu)闹鞔嬷腥〕隽硪徊僮鲾?shù),然后同Acc的內(nèi)容相加,所得的結(jié)果送回Acc中。運(yùn)算器中至少要有一個(gè)累加寄存器。9⑴
程序計(jì)數(shù)器(PC)
又稱(chēng)指令計(jì)數(shù)器,用來(lái)存放正在執(zhí)行的指令地址或接著要執(zhí)行的下條指令地址。
對(duì)于順序執(zhí)行的情況,PC的內(nèi)容應(yīng)不斷地增量(加“1”),以控制指令的順序執(zhí)行。這種加“1”的功能,有些機(jī)器是程序計(jì)數(shù)器本身具有的,也有些機(jī)器是借助運(yùn)算器來(lái)實(shí)現(xiàn)的。
在遇到需要改變程序執(zhí)行順序的情況時(shí),將轉(zhuǎn)移的目標(biāo)地址送往PC,即可實(shí)現(xiàn)程序的轉(zhuǎn)移。有些情況下除改變PC的內(nèi)容外,還需要保留改變之前的內(nèi)容,以便返回時(shí)使用。2.專(zhuān)用寄存器10⑵
指令寄存器(IR)
用來(lái)存放從存儲(chǔ)器中取出的指令。當(dāng)指令從主存取出暫存于指令寄存器之后,在執(zhí)行指令的過(guò)程中,指令寄存器的內(nèi)容不允許發(fā)生變化,以保證實(shí)現(xiàn)指令的全部功能。⑶存儲(chǔ)器數(shù)據(jù)寄存器(MDR)
用來(lái)暫時(shí)存放由主存儲(chǔ)器讀出的一條指令或一個(gè)數(shù)據(jù)字;反之,當(dāng)向主存存入一條指令或一個(gè)數(shù)據(jù)字時(shí),也暫時(shí)將它們存放在存儲(chǔ)器數(shù)據(jù)寄存器中。11⑷
存儲(chǔ)器地址寄存器(MAR)用來(lái)保存當(dāng)前CPU所訪問(wèn)的主存單元的地址。由于主存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來(lái)保持地址信息,直到主存的讀寫(xiě)操作完成為止。當(dāng)CPU和主存進(jìn)行信息交換,無(wú)論是CPU向主存存取數(shù)據(jù)時(shí),還是CPU從主存中讀出指令時(shí),都要使用存儲(chǔ)器地址寄存器和數(shù)據(jù)寄存器。12⑸
狀態(tài)標(biāo)志寄存器(PSWR)
用來(lái)存放程序狀態(tài)字(PSW)。程序狀態(tài)字的各位表征程序和機(jī)器運(yùn)行的狀態(tài),是參與控制程序執(zhí)行的重要依據(jù)之一。它主要包括兩部分內(nèi)容:一是狀態(tài)標(biāo)志,如進(jìn)位標(biāo)志(C)、結(jié)果為零標(biāo)志(Z)等,大多數(shù)指令的執(zhí)行將會(huì)影響到這些標(biāo)志位;二是控制標(biāo)志,如中斷標(biāo)志、陷阱標(biāo)志等。狀態(tài)標(biāo)志寄存器的位數(shù)往往等于機(jī)器字長(zhǎng),各類(lèi)機(jī)器的狀態(tài)標(biāo)志寄存器的位數(shù)和設(shè)置位置不盡相同。136.1.3CPU的組成CPU由運(yùn)算器和控制器兩大部分組成??刂破鞯闹饕δ苡校孩艔闹鞔嬷腥〕鲆粭l指令,并指出下一條指令在主存中的位置。⑵對(duì)指令進(jìn)行譯碼或測(cè)試,產(chǎn)生相應(yīng)的操作控制信號(hào),以便啟動(dòng)規(guī)定的動(dòng)作。⑶指揮并控制CPU、主存和輸入輸出設(shè)備之間的數(shù)據(jù)流動(dòng)方向。運(yùn)算器的主要功能有:⑴執(zhí)行所有的算術(shù)運(yùn)算;⑵執(zhí)行所有的邏輯運(yùn)算,并進(jìn)行邏輯測(cè)試。14CPU的模型圖6-2CPU的模型例:課后習(xí)題6-14166.1.4CPU的主要技術(shù)參數(shù)CPU品質(zhì)的高低直接決定了一個(gè)計(jì)算機(jī)系統(tǒng)的檔次,而CPU的主要技術(shù)參數(shù)可以反映出CPU的大致性能。1.字長(zhǎng)CPU的字長(zhǎng)是指在單位時(shí)間內(nèi)同時(shí)處理的二進(jìn)制數(shù)據(jù)的位數(shù)。CPU按照其處理信息的字長(zhǎng)可以分為:8位CPU、16位CPU、32位CPU以及64位CPU等。17內(nèi)部工作頻率又稱(chēng)內(nèi)頻或主頻,它是衡量CPU速度的重要參數(shù)。在其他性能指標(biāo)相同時(shí),CPU的主頻越高,CPU的速度也就越快。內(nèi)部時(shí)鐘頻率的倒數(shù)是時(shí)鐘周期,是CPU中最小的時(shí)間元素。每個(gè)動(dòng)作至少需要一個(gè)時(shí)鐘周期。最初的8086和8088執(zhí)行一條指令平均需要12個(gè)時(shí)鐘周期;80286和80386每條指令大約要4.5個(gè)時(shí)鐘周期;80486每條指令大約2個(gè)時(shí)鐘周期;Pentium具有雙指令流水線,每個(gè)時(shí)鐘周期執(zhí)行1到2條指令;而Pentiumpro、PentiumⅡ/Ⅲ每個(gè)時(shí)鐘周期可以執(zhí)行3條或更多的指令。2.內(nèi)部工作頻率18也叫前端總線頻率或系統(tǒng)總線時(shí)鐘頻率,它是由主板為CPU提供的基準(zhǔn)時(shí)鐘頻率。正常情況下,CPU總線頻率和主存總線頻率相同,所以也是CPU與主存交換數(shù)據(jù)的頻率。在早期,CPU的內(nèi)頻就等于外頻。目前,CPU的內(nèi)頻越來(lái)越高,相比之下主存的速度還很緩慢,如果外頻設(shè)計(jì)得跟內(nèi)頻同步,則主存都將無(wú)法跟上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的容量和工作速率對(duì)提高計(jì)算機(jī)的速度起著關(guān)鍵的作用。過(guò)去的CPU一般沒(méi)有片內(nèi)Cache,而近年的CPU普遍設(shè)有片內(nèi)Cache。片內(nèi)Cache的運(yùn)行速度與內(nèi)頻相同或接近,容量可達(dá)幾十KB~幾百KB。20
7.地址總線寬度地址總線寬度決定了CPU可以訪問(wèn)的最大的物理地址空間,簡(jiǎn)單地說(shuō)就是CPU到底能夠使用多大容量的主存。6.工作電壓
工作電壓指的是CPU正常工作所需的電壓。早期CPU的工作電壓一般為5V,以致于CPU的發(fā)熱量太大,使得壽命縮短。隨著CPU的制造工藝與內(nèi)頻的提高,近年來(lái)各種CPU的工作電壓逐步下降。
218.數(shù)據(jù)總線寬度
數(shù)據(jù)總線寬度則決定了CPU與外部Cache、主存以及輸入輸出設(shè)備之間進(jìn)行一次數(shù)據(jù)傳輸?shù)男畔⒘俊?/p>
數(shù)據(jù)總線和地址總線互相獨(dú)立,數(shù)據(jù)總線寬度指明了芯片的信息傳遞能力,而地址總線寬度說(shuō)明了芯片可以處理多少主存單元。9.制造工藝
線寬是指芯片上的最基本功能單元—門(mén)電路的寬度,因?yàn)閷?shí)際上門(mén)電路之間連線的寬度與門(mén)電路的寬度相同,所以可以用線寬來(lái)描述制造工藝。線寬越小,意味著芯片上包括的晶體管數(shù)目越多。PentiumII的線寬是0.35微米,晶體管數(shù)達(dá)到7.5M個(gè);PentiumⅢ的線寬是0.25微米,晶體管數(shù)達(dá)到9.5M個(gè);Pentium4的線寬是0.18微米,晶體管數(shù)達(dá)到42M個(gè)。例:課后習(xí)題6-6某機(jī)CPU芯片的主振頻率為8MHv,其時(shí)鐘周期是多少u(mài)s?該機(jī)的平均指令執(zhí)行速度為0.8MIPS,平均指令周期是是多少u(mài)s?時(shí)鐘周期是:1÷8MHv=0.125us平均指令周期是:1÷0.8MIPS=1.25us24控制器是計(jì)算機(jī)系統(tǒng)的指揮中心,它把運(yùn)算器、存儲(chǔ)器、輸入輸出設(shè)備等部件組成一個(gè)有機(jī)的整體,然后根據(jù)指令的要求指揮全機(jī)的工作。6.2控制器的組成和實(shí)現(xiàn)方法25控制器的基本組成圖6-3控制器的基本組成261.指令部件指令部件的主要任務(wù)是完成取指令并分析指令。指令部件包括:⑴程序計(jì)數(shù)器⑵指令寄存器⑶指令譯碼器暫存在指令寄存器中的指令只有在其操作碼部分經(jīng)過(guò)譯碼之后才能識(shí)別出這是一條什么樣的指令,并產(chǎn)生相應(yīng)的控制信號(hào)提供給微操作信號(hào)發(fā)生器。⑷地址形成部件根據(jù)指令的不同尋址方式,形成操作數(shù)的有效地址。6.2.1控制器的基本組成272.時(shí)序部件時(shí)序部件能產(chǎn)生一定的時(shí)序信號(hào),以保證機(jī)器的各功能部件有節(jié)奏地進(jìn)行信息傳送、加工及信息存儲(chǔ)。包括:⑴脈沖源產(chǎn)生具有一定頻率和寬度的時(shí)鐘脈沖信號(hào),為整個(gè)機(jī)器提供基準(zhǔn)信號(hào)。⑵啟??刂七壿媶⑼?刂七壿嫷淖饔檬歉鶕?jù)計(jì)算機(jī)的需要,可靠地開(kāi)放或封鎖脈沖,控制時(shí)序信號(hào)的發(fā)生或停止,實(shí)現(xiàn)對(duì)整個(gè)機(jī)器的正確啟動(dòng)或停止。28⑶節(jié)拍信號(hào)發(fā)生器節(jié)拍信號(hào)發(fā)生器又稱(chēng)脈沖分配器。脈沖源產(chǎn)生的脈沖信號(hào),經(jīng)過(guò)節(jié)拍信號(hào)發(fā)生器后產(chǎn)生出各個(gè)機(jī)器周期中的節(jié)拍信號(hào),用以控制計(jì)算機(jī)完成每一步微操作。29一條指令的取出和執(zhí)行可以分解成很多最基本的操作,這種最基本的不可再分割的操作稱(chēng)為微操作。微操作信號(hào)發(fā)生器也稱(chēng)為控制單元(CU)。不同的機(jī)器指令具有不同的微操作序列。4.中斷控制邏輯
中斷控制邏輯是用來(lái)控制中斷處理的硬件邏輯。有關(guān)中斷的問(wèn)題將在第8章中專(zhuān)門(mén)進(jìn)行討論。3.微操作信號(hào)發(fā)生器30
控制器的核心是微操作信號(hào)發(fā)生器(控制單元CU)。控制單元的輸入包括時(shí)序信號(hào)、機(jī)器指令操作碼、各部件狀態(tài)反饋信號(hào)等,輸出的微操作控制信號(hào)又可以細(xì)分為CPU內(nèi)的控制信號(hào)和送至主存或外設(shè)的控制信號(hào)。
根據(jù)產(chǎn)生微操作控制信號(hào)的方式不同,控制器可分為組合邏輯型、存儲(chǔ)邏輯型、組合邏輯與存儲(chǔ)邏輯結(jié)合型3種。6.2.2控制器的硬件實(shí)現(xiàn)方法31采用組合邏輯技術(shù)來(lái)實(shí)現(xiàn),其控制單元是由門(mén)電路組成的復(fù)雜樹(shù)形網(wǎng)絡(luò)。這種方法是分立元件時(shí)代的產(chǎn)物,以使用最少器件數(shù)和取得最高操作速度為設(shè)計(jì)目標(biāo)。
最大優(yōu)點(diǎn)是速度快。但是控制單元的結(jié)構(gòu)不規(guī)整,使得設(shè)計(jì)、調(diào)試、維修較困難,難以實(shí)現(xiàn)設(shè)計(jì)自動(dòng)化;一旦控制單元構(gòu)成之后,要想增加新的控制功能是不可能的。因此,它受到微程序控制器的強(qiáng)烈沖擊。目前僅有一些巨型機(jī)和RISC機(jī)為了追求高速度仍采用組合邏輯控制器。1.組合邏輯型32這種控制器稱(chēng)為微程序控制器,是采用存儲(chǔ)邏輯來(lái)實(shí)現(xiàn)的,也就是把微操作信號(hào)代碼化,使每條機(jī)器指令轉(zhuǎn)化成為一段微程序并存入一個(gè)專(zhuān)門(mén)的存儲(chǔ)器(控制存儲(chǔ)器)中,微操作控制信號(hào)由微指令產(chǎn)生。
微程序控制器具有設(shè)計(jì)規(guī)整、調(diào)試、維修以及更改、擴(kuò)充指令方便的優(yōu)點(diǎn),易于實(shí)現(xiàn)自動(dòng)化設(shè)計(jì),已成為當(dāng)前控制器的主流。但是,由于它增加了一級(jí)控制存儲(chǔ)器,所以指令的執(zhí)行速度比組合邏輯控制器慢。2.存儲(chǔ)邏輯型33這種控制器稱(chēng)為PLA(可編程邏輯陣列)控制器,是吸收前兩種方法的設(shè)計(jì)思想來(lái)實(shí)現(xiàn)的。PLA控制器實(shí)際上也是一種組合邏輯控制器,但它又與常規(guī)的組合邏輯控制器的硬聯(lián)結(jié)構(gòu)不同;它是可編程序的,某一微操作控制信號(hào)由PLA的某一輸出函數(shù)產(chǎn)生。
PLA控制器是組合邏輯技術(shù)和存儲(chǔ)邏輯技術(shù)結(jié)合的產(chǎn)物,克服了兩者的缺點(diǎn),是一種較有前途的方法。3.組合邏輯和存儲(chǔ)邏輯結(jié)合型346.3時(shí)序系統(tǒng)與控制方式由于計(jì)算機(jī)高速地進(jìn)行工作,每一個(gè)動(dòng)作的時(shí)間是非常嚴(yán)格的,不能有任何差錯(cuò)。時(shí)序系統(tǒng)是控制器的心臟,其功能是為指令的執(zhí)行提供各種定時(shí)信號(hào)。351.指令周期和機(jī)器周期
指令周期是指從取指令、分析取數(shù)到執(zhí)行完該指令所需的全部時(shí)間。由于各種指令的操作功能不同,有的簡(jiǎn)單,有的復(fù)雜,因此各種指令的指令周期不盡相同。
機(jī)器周期又稱(chēng)CPU周期。通常把一個(gè)指令周期劃分為若干個(gè)機(jī)器周期,每個(gè)機(jī)器周期完成一個(gè)基本操作。一般機(jī)器的CPU周期有取指周期、取數(shù)周期、執(zhí)行周期、中斷周期等。所以有:
指令周期=i×機(jī)器周期6.3.1時(shí)序系統(tǒng)36不同的指令周期中所包含的機(jī)器周期數(shù)差別可能很大。一般情況下,一條指令所需的最短時(shí)間為兩個(gè)機(jī)器周期:取指周期和執(zhí)行周期。
通常,每個(gè)機(jī)器周期都有一個(gè)與之對(duì)應(yīng)的周期狀態(tài)觸發(fā)器。機(jī)器運(yùn)行在不同的機(jī)器周期時(shí),其對(duì)應(yīng)的周期狀態(tài)觸發(fā)器被置“1”。顯然,在機(jī)器運(yùn)行的任何時(shí)刻只能處于一種周期狀態(tài),因此,有一個(gè)且僅有一個(gè)觸發(fā)器被置“1”。37在一個(gè)機(jī)器周期內(nèi),要完成若干個(gè)微操作。因而應(yīng)把一個(gè)機(jī)器周期分為若干個(gè)相等的時(shí)間段,每一個(gè)時(shí)間段對(duì)應(yīng)一個(gè)電位信號(hào),稱(chēng)為節(jié)拍電位信號(hào)。
節(jié)拍的寬度取決于CPU完成一次微操作的時(shí)間。節(jié)拍的選取一般有以下幾種方法:⑴統(tǒng)一節(jié)拍法
以最復(fù)雜的機(jī)器周期為準(zhǔn)定出節(jié)拍數(shù),每一個(gè)節(jié)拍時(shí)間的長(zhǎng)短也以最繁的微操作作為標(biāo)準(zhǔn)。這種方法采用統(tǒng)一的、具有相等時(shí)間間隔和相同數(shù)目的節(jié)拍,使得所有的機(jī)器周期長(zhǎng)度都是相等的,因此稱(chēng)為定長(zhǎng)CPU周期。2.節(jié)拍38⑵分散節(jié)拍法
按照機(jī)器周期的實(shí)際需要安排節(jié)拍數(shù),需要多少節(jié)拍,就發(fā)出多少節(jié)拍,這樣可以避免浪費(fèi),提高時(shí)間利用率。由于各機(jī)器周期長(zhǎng)度不同,故稱(chēng)為不定長(zhǎng)CPU周期。⑶延長(zhǎng)節(jié)拍法
在照顧多數(shù)機(jī)器周期要求的情況下,選取適當(dāng)?shù)墓?jié)拍數(shù),作為基本節(jié)拍。如果在某個(gè)機(jī)器周期內(nèi)統(tǒng)一的節(jié)拍數(shù)無(wú)法完成該周期的全部微操作,則可以延長(zhǎng)一或兩個(gè)節(jié)拍。39⑷時(shí)鐘周期插入
在一些微型機(jī)中,時(shí)序信號(hào)中不設(shè)置節(jié)拍,而直接使用時(shí)鐘周期信號(hào)。一個(gè)機(jī)器周期中含有若干個(gè)時(shí)鐘周期,時(shí)鐘周期的數(shù)目取決于機(jī)器周期內(nèi)完成微操作數(shù)目的多少及相應(yīng)功能部件的速度。一個(gè)機(jī)器周期的基本時(shí)鐘周期數(shù)確定之后,還可以不斷插入等待時(shí)鐘周期。如8086的一個(gè)總線周期(即機(jī)器周期)中包含四個(gè)基本時(shí)鐘周期T1~T4,在T3和T4之間可以插入任意個(gè)等待時(shí)鐘周期TW,以等待速度較慢的存儲(chǔ)部件或外部設(shè)備完成讀或?qū)懖僮鳌?0在節(jié)拍中執(zhí)行的有些微操作需要同步定時(shí)脈沖,如將穩(wěn)定的運(yùn)算結(jié)果打入寄存器,又如機(jī)器周期狀態(tài)切換等。為此,在一個(gè)節(jié)拍內(nèi)常常設(shè)置一個(gè)或幾個(gè)工作脈沖,作為各種同步脈沖的來(lái)源。工作脈沖的寬度只占節(jié)拍電位寬度的,并處于節(jié)拍的末尾部分,以保證所有的觸發(fā)器都能可靠、穩(wěn)定地翻轉(zhuǎn)。
在只設(shè)置機(jī)器周期和時(shí)鐘周期的微型機(jī)中,一般不再設(shè)置工作脈沖,因?yàn)闀r(shí)鐘周期既可以作為電位信號(hào),其前、后沿又可以作為脈沖觸發(fā)信號(hào)。3.工作脈沖41圖6-6為小型機(jī)每個(gè)指令周期中常采用的機(jī)器周期、節(jié)拍、工作脈沖三級(jí)時(shí)序系統(tǒng)。圖中每個(gè)機(jī)器周期M中包括四個(gè)節(jié)拍T1~T4,每個(gè)節(jié)拍內(nèi)有一個(gè)脈沖P。在機(jī)器周期間、節(jié)拍電位間、工作脈沖間既不允許有重疊交叉,也不允許有空隙,應(yīng)該是一個(gè)接一個(gè)的準(zhǔn)確連接。4.多級(jí)時(shí)序系統(tǒng)42三級(jí)時(shí)序系統(tǒng)圖6-6三級(jí)時(shí)序系統(tǒng)435.節(jié)拍與脈沖的時(shí)間配合關(guān)系節(jié)拍---開(kāi)門(mén)關(guān)門(mén)
脈沖---定時(shí)觸發(fā)441.同步控制方式
同步控制方式即固定時(shí)序控制方式,各項(xiàng)操作都由統(tǒng)一的時(shí)序信號(hào)控制,在每個(gè)機(jī)器周期中產(chǎn)生統(tǒng)一數(shù)目的節(jié)拍電位和工作脈沖。由于不同的指令,操作時(shí)間長(zhǎng)短不一致。同步控制方式應(yīng)以最復(fù)雜指令的操作時(shí)間作為統(tǒng)一的時(shí)間間隔標(biāo)準(zhǔn)。6.3.2控制方式45這種控制方式設(shè)計(jì)簡(jiǎn)單,容易實(shí)現(xiàn);但是對(duì)于許多簡(jiǎn)單指令來(lái)說(shuō)會(huì)有較多的空閑時(shí)間,造成較大數(shù)量的時(shí)間浪費(fèi),從而影響了指令的執(zhí)行速度。
在同步控制方式中,各指令所需的時(shí)序由控制器統(tǒng)一發(fā)出,所有微操作都與時(shí)鐘同步,所以又稱(chēng)為集中控制方式或中央控制方式。46即可變時(shí)序控制方式,各項(xiàng)操作不采用統(tǒng)一的時(shí)序信號(hào)控制,而根據(jù)指令或部件的具體情況決定,需要多少時(shí)間,就占用多少時(shí)間。
這是一種“應(yīng)答”方式,各操作之間的銜接是由“結(jié)束-起始”信號(hào)來(lái)實(shí)現(xiàn)的。由前一項(xiàng)操作已經(jīng)完成的“結(jié)束”信號(hào),或由下一項(xiàng)操作的“準(zhǔn)備好”信號(hào)來(lái)作為下一項(xiàng)操作的起始信號(hào),在未收到“結(jié)束”或“準(zhǔn)備好”信號(hào)之前不開(kāi)始新的操作。2.異步控制方式47異步控制采用不同時(shí)序,沒(méi)有時(shí)間上的浪費(fèi),因而提高了機(jī)器的效率,但是控制比較復(fù)雜。
由于這種控制方式?jīng)]有統(tǒng)一的時(shí)鐘,而是由各功能部件本身產(chǎn)生各自的時(shí)序信號(hào)自我控制,故又稱(chēng)為分散控制方式或局部控制方式。48這是同步控制和異步控制相結(jié)合的方式。實(shí)際上現(xiàn)代計(jì)算機(jī)中幾乎沒(méi)有完全采用同步或完全采用異步的控制方式,大多數(shù)是采用聯(lián)合控制方式。通常的設(shè)計(jì)思想是:在功能部件內(nèi)部采用同步方式或以同步方式為主的控制方式,在功能部件之間采用異步方式。3.聯(lián)合控制方式491.取指令階段
取指令階段完成的任務(wù)是將現(xiàn)行指令從主存中取出來(lái)并送至指令寄存器中去。具體的操作如下:
①將程序計(jì)數(shù)器(PC)中的內(nèi)容送至存儲(chǔ)器地址寄存器(MAR),并送地址總線(AB)。
②由控制單元(CU)經(jīng)控制總線(CB)向存儲(chǔ)器發(fā)讀命令。
③從主存中取出的指令通過(guò)數(shù)據(jù)總線(DB)送到存儲(chǔ)器數(shù)據(jù)寄存器(MDR)。6.3.3指令運(yùn)行的基本過(guò)程50④將MDR的內(nèi)容送至指令寄存器(IR)中。⑤將PC的內(nèi)容遞增,為取下一條指令做好準(zhǔn)備。
以上這些操作對(duì)任何一條指令來(lái)說(shuō)都是必須要執(zhí)行的操作,所以稱(chēng)為公共操作。完成取指階段任務(wù)的時(shí)間稱(chēng)為取指周期。51取指周期的工作流程圖6-8取指周期的工作流程52取出指令后,指令譯碼器ID可識(shí)別和區(qū)分出不同的指令類(lèi)型。此時(shí)計(jì)算機(jī)進(jìn)入分析取數(shù)階段,以獲取操作數(shù)。由于各條指令功能不同,尋址方式也不同,所以分析取數(shù)階段的操作是各不相同的。完成分析階段任務(wù)的時(shí)間又可以細(xì)分為間址周期、取數(shù)周期等。2.分析取數(shù)階段53執(zhí)行階段完成指令規(guī)定的各種操作,形成穩(wěn)定的運(yùn)算結(jié)果,并將其存儲(chǔ)起來(lái)。完成執(zhí)行階段任務(wù)的時(shí)間稱(chēng)為執(zhí)行周期。
計(jì)算機(jī)的基本工作過(guò)程就是取指令、取數(shù)、執(zhí)行指令,然后再取下一條指令……如此周而復(fù)始,直至遇到停機(jī)指令或外來(lái)的干預(yù)為止。3.執(zhí)行階段例:課后習(xí)題6-14(2)簡(jiǎn)述指令從主存取出送到控制器的數(shù)據(jù)通路(3)簡(jiǎn)述數(shù)據(jù)在運(yùn)算器和主存之間進(jìn)行存取訪問(wè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控制器在實(shí)現(xiàn)一條指令的功能時(shí),總要把每條指令分解成為一系列時(shí)間上先后有序的最基本、最簡(jiǎn)單的微操作,即微操作序列。微操作序列是與CPU的內(nèi)部數(shù)據(jù)通路密切相關(guān)的,不同的數(shù)據(jù)通路就有不同的微操作序列。
6.3.4指令的微操作序列56CPU的數(shù)據(jù)通路圖6-9CPU的數(shù)據(jù)通路57這條指令完成的功能是把R0的內(nèi)容作為地址送到主存以取得一個(gè)操作數(shù),再與R1中的內(nèi)容相加,最后將結(jié)果送回主存中。即實(shí)現(xiàn):((R0))+(R1)→(R0)1.加法指令A(yù)DD@R0,R158⑴取指周期取指周期完成的微操作序列是公共的操作,與具體指令無(wú)關(guān)。①PCout和MARin有效,完成PC經(jīng)CPU內(nèi)部總線送至MAR的操作,(PC)→MAR;
②通過(guò)控制總線(圖中未畫(huà)出)向主存發(fā)讀命令,記作Read;
③存儲(chǔ)器通過(guò)數(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。至此,指令被從主存中取出,其操作碼字段開(kāi)始控制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;③存儲(chǔ)器通過(guò)數(shù)據(jù)總線將MAR所指單元的內(nèi)容(數(shù)據(jù))送至MDR,同時(shí)MDRout和Yin有效,記作M(MAR)→MDR→Y;1.加法指令A(yù)DD@R0,R1(續(xù))61⑶執(zhí)行周期
執(zhí)行周期完成加法運(yùn)算的任務(wù),并將結(jié)果寫(xiě)回主存。①R1out和ALUin有效,同時(shí)CU向ALU發(fā)“ADD”控制信號(hào),使R1的內(nèi)容和Y的內(nèi)容相加,結(jié)果送寄存器Z,記作(R1)+Y→Z;②Zout和MDRin有效,將運(yùn)算結(jié)果送寄存器MDR,記作(Z)→MDR。③向主存發(fā)寫(xiě)命令,記作Write。1.加法指令A(yù)DD@R0,R1(續(xù))62這是一條條件轉(zhuǎn)移指令,若上次運(yùn)算結(jié)果有進(jìn)位(C=1),就轉(zhuǎn)移;若上次運(yùn)算結(jié)果無(wú)進(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的操作,否則跳過(guò)以下幾步。①PCout和Yin有效,記作(PC)→Y(C=1);
②AdIRout和ALUin有效,同時(shí)CU向ALU發(fā)“ADD”控制信號(hào),使IR寄存器中的地址碼字段A和Y的內(nèi)容相加,結(jié)果送寄存器Z,記作Ad(IR)+Y→Z;
③Zout和PCin有效,將運(yùn)算結(jié)果送寄存器PC,記作(Z)→PC。2.轉(zhuǎn)移指令JCA(續(xù))2024/2/364例:模型機(jī)中指令A(yù)DDR1,R2的指令執(zhí)行過(guò)程及控制信號(hào)。(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è)計(jì)技術(shù)的實(shí)質(zhì)是將程序設(shè)計(jì)技術(shù)和存儲(chǔ)技術(shù)相結(jié)合,即用程序設(shè)計(jì)的思想方法來(lái)組織操作控制邏輯,將微操作控制信號(hào)按一定規(guī)則進(jìn)行信息編碼(代碼化),形成控制字(微指令),再把這些微指令按時(shí)間先后排列起來(lái)構(gòu)成微程序,存放在一個(gè)只讀的控制存儲(chǔ)器中。6.4微程序控制原理661.微程序設(shè)計(jì)的提出與發(fā)展
M.V.Wilkes教授提出:一條機(jī)器指令可以分解為許多基本的微命令序列。并且首先把這種思想用于計(jì)算機(jī)控制器的設(shè)計(jì)。由于當(dāng)時(shí)不具備制造專(zhuān)門(mén)存放微程序的控制存儲(chǔ)器的技術(shù),所以在十幾年時(shí)間內(nèi)實(shí)際上并未真正使用。直到1964年,IBM公司在IBM360系列機(jī)上成功地采用了微程序設(shè)計(jì)技術(shù),解決了指令系統(tǒng)的兼容問(wèn)題。20世紀(jì)70年代以來(lái),由于VLSI技術(shù)的發(fā)展,推動(dòng)了微程序設(shè)計(jì)技術(shù)的發(fā)展和應(yīng)用,目前,大多數(shù)計(jì)算機(jī)都采用微程序設(shè)計(jì)技術(shù)。6.4.1微程序控制的基本概念微程序是現(xiàn)代計(jì)算機(jī)組成的理論框架中非常重要的概念。實(shí)現(xiàn)形式各不相同、五花八門(mén),但存在意義都是相同的。完全依賴(lài)硬件結(jié)構(gòu),每種微程序格式是針對(duì)特定的計(jì)算機(jī)硬件結(jié)構(gòu)的。實(shí)例2024/2/370①微命令;直接作用于部件或控制門(mén)電路的控制命令。是構(gòu)成控制信號(hào)序列的最小單位。例如模型機(jī)中的EMRD,EMWR、AEN、WEN、CPIR、R/W等控制信號(hào)都稱(chēng)為微命令。②微操作;由微命令控制實(shí)現(xiàn)的最基本的操作。微操作的定義可大可小例:微操作:(PC)→MAR;是在一組微命令PC→BUS1、S3S2S1S0M、DM、CPMAR的控制下實(shí)現(xiàn)的。2.基本術(shù)語(yǔ)2024/2/371③微指令:是存放在控制存儲(chǔ)器中的一個(gè)單元的內(nèi)容,即控制字,是若干個(gè)微命令的集合。用以產(chǎn)生一組微命令,控制完成一組微操作。一條微指令通??刂茖?shí)現(xiàn)數(shù)據(jù)通路中的一步操作過(guò)程。微地址:存放控制字的控制存儲(chǔ)器的單元地址就稱(chēng)為微地址。④微程序:一系列微指令的有序集合稱(chēng)為微程序。在微程序控制的機(jī)器中,一條機(jī)器指令對(duì)應(yīng)著一段由若干條有序的微指令構(gòu)成的微程序;通過(guò)解釋執(zhí)行一段微程序,可以實(shí)現(xiàn)相應(yīng)的一條機(jī)器指令的功能。2024/2/372⑤微周期:從控制存儲(chǔ)器中讀取一條微指令并執(zhí)行相應(yīng)的微操作所需的時(shí)間稱(chēng)為微周期。⑥控制存儲(chǔ)器(CM):存放微程序的存儲(chǔ)器。也稱(chēng)為微程序存儲(chǔ)器。一般計(jì)算譏指令系統(tǒng)是固定的,因而實(shí)現(xiàn)指令系統(tǒng)的微程序也是固定的,所以控制存儲(chǔ)器通常用只讀存儲(chǔ)器實(shí)現(xiàn)。73一條微指令通常包含兩部分:
①操作控制字段,又稱(chēng)微操作碼字段,用以產(chǎn)生某一步操作所需的各微操作控制信號(hào);
②順序控制字段,又稱(chēng)微地址碼字段,用以控制產(chǎn)生下一條要執(zhí)行的微指令地址。74編碼法指的是操作控制字段的編碼方法。各類(lèi)計(jì)算機(jī)的微指令編碼法各不相同。例如:大型機(jī)強(qiáng)調(diào)速度,要求譯碼過(guò)程盡量快;微、小型機(jī)則更多地注意經(jīng)濟(jì)性,要求更大限度地縮短微指令字長(zhǎng);而中型機(jī)介于這兩者之間,兼顧速度和價(jià)格,要求在保證一定速度的情況下,能盡量縮短微指令字長(zhǎng)。6.4.2微指令編碼法75操作控制字段中的各位分別可以直接控制計(jì)算機(jī),無(wú)須進(jìn)行譯碼。在這種形式的微指令字中,操作控制字段的每一個(gè)獨(dú)立的二進(jìn)制位代表一個(gè)微命令,該位為“1”表示這個(gè)微命令有效,為“0”則表示這個(gè)微命令無(wú)效。每個(gè)微命令對(duì)應(yīng)并控制數(shù)據(jù)通路中的一個(gè)微操作。1.直接控制法(不譯碼法)76這種方法結(jié)構(gòu)簡(jiǎn)單,并行性強(qiáng),操作速度快,但微指令字太長(zhǎng)。若微命令的總數(shù)為N個(gè),就要有N位。在某些計(jì)算機(jī)中,微命令的總數(shù)可能會(huì)多達(dá)幾百個(gè),這使微指令的長(zhǎng)度達(dá)到難以接受的地步。另外,在N個(gè)微命令中,有許多是互斥的,不允許并行操作,將它們安排在一條微指令中是毫無(wú)意義的,只會(huì)使信息的利用率下降。所以這種方法在復(fù)雜的系統(tǒng)中很少單獨(dú)采用,往往與其他編碼方法混合起來(lái)使用。1.直接控制法(不譯碼法)77直接控制法使微指令字過(guò)長(zhǎng),而最短編碼法則走向另一個(gè)極端,使得微指令字最短。這種方法將所有的微命令統(tǒng)一編碼,每條微指令只定義一個(gè)微命令。若微命令的總數(shù)為N,操作控制字段的長(zhǎng)度為L(zhǎng),則最短編碼法應(yīng)滿足下列關(guān)系式:
L≥log2N2.最短編碼法78該方法通過(guò)一個(gè)微命令譯碼器譯碼以后才能得到需要的微命令。微命令數(shù)目越多,譯碼器就越復(fù)雜。這種方法在同一時(shí)刻只能產(chǎn)生一個(gè)微命令,不能充分利用機(jī)器硬件所具有的并行性,使得機(jī)器指令對(duì)應(yīng)的微程序變得很長(zhǎng),而且對(duì)于某些要求在同一時(shí)刻同時(shí)動(dòng)作的組合性微操作將無(wú)法實(shí)現(xiàn)。因此,這種方法也只能與其他方法混合使用。2.最短編碼法(續(xù))79這是前述兩種編碼法的一個(gè)折衷。這種方法將操作控制字段分為若干個(gè)小段,每段內(nèi)采用最短編碼法,段與段之間采用直接控制法。⑴
字段直接編碼法各字段都可以獨(dú)立地定義本字段的微命令,而和其他字段無(wú)關(guān),因此又稱(chēng)為顯式編碼或單重定義編碼方法。這種方法縮短了微指令字,因此得到了廣泛的應(yīng)用。3.字段編碼法80字段直接編碼法圖6-10字段直接編碼法2024/2/381利用二進(jìn)制編碼描述操作系列。3位5位1位2位2位3位1位2位BUSinS3S2S1S0MC0SBUS1outBUS2outR/WIO/MBUSin功能000無(wú)001RS→BUS1010RD→BUS1011TEMP→BUS1100SP→BUS1101MDR→BUS1110IR(D)→BUS1111PC→BUS1S3S2S1S0M按74181的規(guī)定C0功能0C0=01C0=1S功能00DM01SL10SR11EXBUS1out功能00無(wú)01CPIR10CPMAR11CPCZ、CPCC82⑵
字段間接編碼法
間接編碼的含義是,一個(gè)字段的某些編碼不能獨(dú)立地定義某些微命令,而需要與其他字段的編碼來(lái)聯(lián)合定義,因此又稱(chēng)為隱式編碼或多重定義編碼方法。83字段間接編碼法圖6-11字段間接編碼法84
字段編碼法中操作控制字段的分段原則:
①把互斥性的微命令分在同一段內(nèi),兼容性的微命令分在不同段內(nèi)。這樣不僅有助于提高信息的利用率,縮短微指令字長(zhǎng),而且有助于充分利用硬件所具有的并行性,加快執(zhí)行的速度。
②應(yīng)與數(shù)據(jù)通路結(jié)構(gòu)相適應(yīng)。
③每個(gè)小段中包含的信息位不能太多,否則將增加譯碼線路的復(fù)雜性和譯碼時(shí)間。
④一般每個(gè)小段還要留出一個(gè)狀態(tài),表示本字段不發(fā)出任何微命令。因此當(dāng)某字段的長(zhǎng)度為三位時(shí),最多只能表示七個(gè)互斥的微命令,通常用000表示不操作。851.微程序控制器的基本組成
圖6-12給出了一個(gè)微程序控制器基本結(jié)構(gòu)的簡(jiǎn)化框圖,在圖中包括:控制存儲(chǔ)器、微指令寄存器、微地址形成部件、微地址寄存器等。6.4.3微程序控制器的組成和工作過(guò)程86微程序控制器的基本結(jié)構(gòu)87⑴控制存儲(chǔ)器(CM)
這是微程序控制器的核心部件,用來(lái)存放微程序。⑵微指令寄存器(
IR)
用來(lái)存放從CM中取出的微指令。⑶微地址形成部件
用來(lái)產(chǎn)生初始微地址和后繼微地址。⑷微地址寄存器(
MAR)
接受微地址形成部件送來(lái)的微地址,為在CM中讀取微指令做準(zhǔn)備。1.微程序控制器的基本組成88①執(zhí)行取指令公共操作。取指令的公共操作通常由一個(gè)取指微程序來(lái)完成,這個(gè)取指微程序也可能僅由一條微指令組成。具體的執(zhí)行是:在機(jī)器開(kāi)始運(yùn)行時(shí),自動(dòng)將取指微程序的入口微地址送
MAR,并從CM中讀出相應(yīng)的微指令送入
IR。微指令的操作控制字段產(chǎn)生有關(guān)的微命令,用來(lái)控制計(jì)算機(jī)實(shí)現(xiàn)取機(jī)器指令的公共操作。取指微程序的入口地址一般為CM的0號(hào)單元,當(dāng)取指微程序執(zhí)行完后,從主存中取出的機(jī)器指令就已存入指令寄存器IR中了。2.微程序控制器的工作過(guò)程89②由機(jī)器指令的操作碼字段通過(guò)微地址形成部件產(chǎn)生該機(jī)器指令所對(duì)應(yīng)的微程序的入口地址,并送入
MAR。
③從CM中逐條取出對(duì)應(yīng)的微指令并執(zhí)行之。
④執(zhí)行完對(duì)應(yīng)于一條機(jī)器指令的一個(gè)微程序后又回到取指微程序的入口地址,繼續(xù)第①步,以完成取下一條機(jī)器指令的公共操作。
以上是一條機(jī)器指令的執(zhí)行過(guò)程,如此周而復(fù)始,直到整個(gè)程序執(zhí)行完畢為止。90通常,一條機(jī)器指令對(duì)應(yīng)一個(gè)微程序。任何一條機(jī)器指令的取指令操作都是相同的,因此將取指令操作的微命令統(tǒng)一編成一個(gè)微程序,這個(gè)微程序只負(fù)責(zé)將指令從主存單元中取出送至指令寄存器中。此外,也可以編出對(duì)應(yīng)間址周期的微程序和中斷周期的微程序。這樣,控制存儲(chǔ)器中的微程序個(gè)數(shù)應(yīng)為機(jī)器指令數(shù)再加上對(duì)應(yīng)取指、間址和中斷周期等公用的微程序數(shù)。3.機(jī)器指令對(duì)應(yīng)的微程序91當(dāng)公用的取指微程序從主存中取出機(jī)器指令之后,由機(jī)器指令的操作碼字段指出各個(gè)微程序的入口地址(初始微地址)。這是一種多分支(或多路轉(zhuǎn)移)的情況。由機(jī)器指令的操作碼轉(zhuǎn)換成初始微地址的方式主要有3種。1.一級(jí)功能轉(zhuǎn)換
如果機(jī)器指令操作碼字段的位數(shù)和位置固定,可以直接使操作碼與入口地址碼的部分位相對(duì)應(yīng)。6.4.4微程序入口地址的形成92當(dāng)同類(lèi)機(jī)器指令的操作碼字段的位數(shù)和位置固定,而不同類(lèi)機(jī)器指令的操作碼的位數(shù)和位置不固定時(shí),就不能再采用一級(jí)功能轉(zhuǎn)換的方法。所謂二級(jí)功能轉(zhuǎn)換是指第一次先按指令類(lèi)型標(biāo)志轉(zhuǎn)移,以區(qū)分出指令屬于哪一類(lèi),如:是單操作數(shù)指令,還是雙操作數(shù)指令等。因?yàn)槊恳活?lèi)機(jī)器指令中操作碼字段的位數(shù)和位置是固定的,所以第二次即可按操作碼區(qū)分出具體是哪條指令,以便找出相應(yīng)微程序的入口微地址。2.二級(jí)功能轉(zhuǎn)換93當(dāng)機(jī)器指令的操作碼位數(shù)和位置都不固定時(shí),可以采用PLA電路將每條機(jī)器指令的操作碼翻譯成對(duì)應(yīng)的微程序入口地址。這種方法對(duì)于變長(zhǎng)度、變位置的操作碼顯得更有效,而且轉(zhuǎn)換速度較快。3.通過(guò)PLA電路實(shí)現(xiàn)功能轉(zhuǎn)換941.增量方式(順序-轉(zhuǎn)移型微地址)順序執(zhí)行時(shí)后繼微地址就是現(xiàn)行微地址加上一個(gè)增量(通常為“1”);轉(zhuǎn)移或轉(zhuǎn)子時(shí),由微指令的順序控制字段產(chǎn)生轉(zhuǎn)移微地址。因此,在微程序控制器中應(yīng)當(dāng)有一個(gè)微程序計(jì)數(shù)器(
PC)。為了降低成本,一般情況下都是將微地址寄存器
MAR改為具有計(jì)數(shù)功能的寄存器,以代替
PC。
增量方式的優(yōu)點(diǎn)是簡(jiǎn)單,易于掌握,編制微程序容易,每條機(jī)器指令所對(duì)應(yīng)的一段微程序一般安排在CM的連續(xù)單元中;其缺點(diǎn)是這種方式不能實(shí)現(xiàn)兩路以上的并行微程序轉(zhuǎn)移,因而不利于提高微程序的執(zhí)行速度。6.4.5后繼微地址的形成95斷定方式的后繼微地址可由微程序設(shè)計(jì)者指定,或者根據(jù)微指令所規(guī)定的測(cè)試結(jié)果直接決定后繼微地址的全部或部分值。
這是一種直接給定與測(cè)試斷定相結(jié)合的方式,其順序控制字段一般由兩部分組成:非測(cè)試段和測(cè)試段。測(cè)試段如果只有一位,則微地址將產(chǎn)生兩個(gè)分支;若有兩位,則最多可產(chǎn)生四個(gè)分支;依次類(lèi)推;測(cè)試段為n位最多可產(chǎn)生2n個(gè)分支。2.斷定方式961.微程序分類(lèi)水平型微程序用水平型微指令設(shè)計(jì)的微程序垂直型微程序用垂直型微指令設(shè)計(jì)的微程序混合型微程序2.微指令的執(zhí)行方式串行方式并行方式6.4.6微程序設(shè)計(jì)97這一節(jié)將以一個(gè)簡(jiǎn)單的CPU為例來(lái)討論控制器中控制單元的設(shè)計(jì)。選擇的CPU模型比較簡(jiǎn)單,指令系統(tǒng)中僅具有最常見(jiàn)的基本指令和尋址方式,在邏輯結(jié)構(gòu)、時(shí)序安排、操作過(guò)程安排等方面盡量規(guī)整、簡(jiǎn)單,比較容易掌握,以幫助大家建立整機(jī)概念。6.5控制單元的設(shè)計(jì)98控制單元的主要功能是根據(jù)需要發(fā)出各種不同的微操作控制信號(hào)。微操作控制信號(hào)是與CPU的數(shù)據(jù)通路密切相關(guān)的。圖6-17中MAR和MDR分別直接與地址總線和數(shù)據(jù)總線相連??紤]到從存儲(chǔ)器取出的指令或有效地址都先送至MDR再送至IR,故這里省去IR送至MAR的數(shù)據(jù)通路,凡是需從IR送至MAR的操作均由MDR送至MAR代替。6.5.1簡(jiǎn)單的CPU模型991001.非訪存指令(6條)這類(lèi)指令在執(zhí)行周期不訪問(wèn)存儲(chǔ)器。⑴清除累加器指令CLA⑵累加器取反指令COM⑶累加器加1指令I(lǐng)NC⑷算術(shù)右移一位指令SAR⑸循環(huán)左移一位指令CSL⑹停機(jī)指令STP此CPU的指令系統(tǒng)包括下列指令(共15條):101這類(lèi)指令在執(zhí)行周期需訪問(wèn)存儲(chǔ)器。⑴加法指令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í)行周期也不訪問(wèn)存儲(chǔ)器。⑴無(wú)條件轉(zhuǎn)移指令JMP;(MDR)PC⑵零轉(zhuǎn)移指令JZ;⑶負(fù)轉(zhuǎn)移指令JN;⑷進(jìn)位轉(zhuǎn)移指令JC;3.轉(zhuǎn)移類(lèi)指令(4條)1031041.微操作的節(jié)拍安排假設(shè)機(jī)器采用同步控制,每個(gè)機(jī)器周期包括3個(gè)節(jié)拍,安排微操作節(jié)拍時(shí)應(yīng)注意:①有些微操作的次序是不容改變的,故安排微操作節(jié)拍時(shí)必須注意微操作的先后順序。②凡是被控制對(duì)象不同的微操作,若能在一個(gè)節(jié)拍內(nèi)執(zhí)行,應(yīng)盡可能安排在同一個(gè)節(jié)拍內(nèi),以節(jié)省時(shí)間。③如果有些微操作所占的時(shí)間不長(zhǎng),應(yīng)該將它們安排在一個(gè)節(jié)拍內(nèi)完成,并且允許這些微操作有先后次序。6.5.2組合邏輯控制單元設(shè)計(jì)105⑴取指周期微操作的節(jié)拍安排取指周期的操作是公操作,其完成的任務(wù)已在前面進(jìn)行過(guò)描述,在此不再重復(fù),這些操作可以安排在3個(gè)節(jié)拍中完成。T0(PC)→MAR,ReadT1M(MAR)→MDR,(PC)+1→PCT2(MDR)→IR??紤]到指令譯碼時(shí)間較短,可將指令譯碼OP(IR)→ID也安排在T2節(jié)拍內(nèi)。1.微操作的節(jié)拍安排(續(xù))106⑵間址周期微操作的節(jié)拍安排間址周期完成取操作數(shù)有效地址的任務(wù),具體操作如下:①將指令的地址碼部分(形式地址)送至存儲(chǔ)器地址寄存器,記作(MDR)→MAR;②向主存發(fā)讀命令,啟動(dòng)主存讀操作,記作Read;③將MAR所指的主存單元中的內(nèi)容(有效地址)經(jīng)數(shù)據(jù)總線讀至MDR,記作M(MAR)→MDR;④將有效地址送至存儲(chǔ)器地址寄存器MAR,記作(MDR)→MAR。此操作在有些機(jī)器中可省略。1.微操作的節(jié)拍安排(續(xù))107108109110111⑴列出微操作命令的操作時(shí)間表2.組合邏輯設(shè)計(jì)步驟112113⑵進(jìn)行微操作信號(hào)綜合在列出微操作時(shí)間表之后,即可對(duì)它們進(jìn)行綜合分析、歸類(lèi),根據(jù)微操作時(shí)間表可以寫(xiě)出各微操作控制信號(hào)的邏輯表達(dá)式。114⑶畫(huà)出微操作命令的邏輯圖根據(jù)邏輯表達(dá)式可畫(huà)出對(duì)應(yīng)每一個(gè)微操作信號(hào)的邏輯電路圖,并用邏輯門(mén)電路實(shí)現(xiàn)之。115微程序設(shè)計(jì)控制單元的主要任務(wù)是編寫(xiě)對(duì)應(yīng)各條機(jī)器指令的微程序,具體步驟是首先寫(xiě)出對(duì)應(yīng)機(jī)器指令的全部微操作節(jié)拍安排,然后確定微指令格式,最后編寫(xiě)出每條微指令的二進(jìn)制代碼。6.5.3微程序控制單元設(shè)計(jì)116⑴確定微程序控制方式
根據(jù)計(jì)算機(jī)系統(tǒng)的性能指標(biāo)(主要是速度)確定微程序控制方式。⑵擬定微命令系統(tǒng)
初步擬定微命令系統(tǒng),并同時(shí)進(jìn)行微指令格式的設(shè)計(jì),包括微指令字段的劃分、編碼方式的選擇、初始微地址和后繼微地址的形成等等。1.微程序控制單元的設(shè)計(jì)步驟117⑶編制微程序
對(duì)微命令系統(tǒng)、微指令格式進(jìn)行反復(fù)的核對(duì)和審查,并進(jìn)行適當(dāng)?shù)男薷?;?duì)重復(fù)和多余的微指令進(jìn)行合并和精簡(jiǎn),直至編制出全部機(jī)器指令的微程序?yàn)橹?。⑷微程序代碼化
將修改完善的微程序轉(zhuǎn)換成二進(jìn)制代碼,這一過(guò)程稱(chēng)為代碼化或代真。⑸寫(xiě)入控制存儲(chǔ)器最后將一串串二進(jìn)制代碼按地址寫(xiě)入控制存儲(chǔ)器的對(duì)應(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對(duì)于指令的執(zhí)行,可有幾種控制方式:順序方式、重疊方式、先行控制及流水線控制方式。順序方式指的是各條機(jī)器指令之間順序串行的執(zhí)行,即執(zhí)行完一條指令后,方可取出下一條指令來(lái)執(zhí)行。這種方式控制簡(jiǎn)單,但速度慢,機(jī)器各部件的利用率低。為了加快指令的執(zhí)行速度,充分利用計(jì)算機(jī)系統(tǒng)的硬件資源,提高機(jī)器的吞吐率,計(jì)算機(jī)中常采用重疊方式、先行控制方式,以及流水線控制方式。6.6流水線技術(shù)124通常,一條指令的執(zhí)行過(guò)程可以分為3個(gè)階段:取指、分析、執(zhí)行。假定每個(gè)階段所需的時(shí)間為t,采用順序方式執(zhí)行n條指令所需的時(shí)間為T(mén)=3nt
最早出現(xiàn)的重疊是“取指K+1”和“執(zhí)行K”在時(shí)間上的重疊,稱(chēng)為一次重疊,這將使處理機(jī)速度有所提高,所需執(zhí)行時(shí)間減少為T(mén)=3
t+(n-1)
2t=(2
n+1)t6.6.1重疊控制125如果進(jìn)一步增加重疊,使“取指K+2”、“分析K+1”和“執(zhí)行K”重疊起來(lái),稱(chēng)為二次重疊,則處理機(jī)速度還可以進(jìn)一步提高,所需執(zhí)行時(shí)間減少為:T=3
t+(n-1)t=(2+n)t為了在“執(zhí)行K”時(shí)同時(shí)完成“分析K+1”和“取指K+2”的工作,應(yīng)把控制器分解為存儲(chǔ)控制器、指令控制器、運(yùn)算控制器。6.6.1重疊控制(續(xù))1266.6.1重疊控制(續(xù))如果在“分析K+1”時(shí)要訪問(wèn)存儲(chǔ)器,而“取指K+2”也要訪問(wèn)存儲(chǔ)器,就出現(xiàn)了訪存沖突,解決沖突的辦法有3種:(1)設(shè)置2個(gè)存儲(chǔ)器,一個(gè)程序存儲(chǔ)器一個(gè)數(shù)據(jù)存儲(chǔ)器。(2)主存采用多體交叉存儲(chǔ)器,且第K+1條指令的操作數(shù)與第K+2條指令存儲(chǔ)在不同的存儲(chǔ)體中。(3)使用指令隊(duì)列緩沖器。127先行控制是重疊控制的一種改進(jìn)方式。在重疊控制中,“執(zhí)行K”和“分析K+1”重疊,如果所有指令的“分析”與“執(zhí)行”的時(shí)間均相等,則重疊的流程是非常流暢的,無(wú)任何阻礙,機(jī)器的指令分析部件和執(zhí)行部件功能充分地發(fā)揮,機(jī)器的速度也能顯著地提高。但是,現(xiàn)代計(jì)算機(jī)的指令系統(tǒng)很復(fù)雜,各種類(lèi)型指令難于做到“分析”與“執(zhí)行”時(shí)間始終相等。此時(shí),各個(gè)階段的控制部件就有可能出現(xiàn)間斷等待的問(wèn)題。這樣,指令的分析部件和執(zhí)行部件都不能連續(xù)地、流暢地工作,從而使機(jī)器的整體速度受到影響。6.6.2先行控制原理128
為了使各部件能連續(xù)地工作,則提出先行控制的方式。圖6-22中“分析”和“執(zhí)行”階段之間有等待的時(shí)間間隔Δt,但它們各自的流程中卻是連續(xù)的。先行控制的主要目的是使各階段的專(zhuān)用控制部件不間斷的工作,以提高設(shè)備的利用率及執(zhí)行速度。6.6.2先行控制原理(續(xù))129130流水處理技術(shù)是在重疊、先行控制方式的基礎(chǔ)上發(fā)展起來(lái)的,它基于重疊的原理,但卻是在更高程度上的重疊。1.流水線
流水線是將一個(gè)較復(fù)雜的處理過(guò)程分成m個(gè)復(fù)雜程度相當(dāng)、處理時(shí)間大致相等的子過(guò)程,每個(gè)子過(guò)程由一個(gè)獨(dú)立的功能部件來(lái)完成,處理對(duì)象在各子過(guò)程連成的線路上連續(xù)流動(dòng)。在同一時(shí)間,m個(gè)部件同時(shí)進(jìn)行不同的操作,完成對(duì)不同子過(guò)程的處理。6.6.3流水工作原理131這種方式類(lèi)似于現(xiàn)代工廠的生產(chǎn)流水線,在那里每隔一段時(shí)間(Δt)從流水線上流出一個(gè)產(chǎn)品,而生產(chǎn)這個(gè)產(chǎn)品的總時(shí)間要比Δt大得多。由于流水線上各部件并行工作,同時(shí)對(duì)多條指令進(jìn)行解釋執(zhí)行,機(jī)器的吞吐率將大大提高。例如,將一條指令的執(zhí)行過(guò)程分成取指令、指令譯碼、取操作數(shù)和執(zhí)行四個(gè)子過(guò)程,分別由四個(gè)功能部件來(lái)完成,每個(gè)子過(guò)程所需時(shí)間為Δt。四個(gè)子過(guò)程的流水線如圖6-23(a)所示,圖6-23
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版半導(dǎo)體行業(yè)技術(shù)保密及競(jìng)業(yè)限制服務(wù)協(xié)議2篇
- 二零二五版短租公寓租賃管理公約3篇
- 基于2025年度的汽車(chē)銷(xiāo)售合同2篇
- 二零二五年度產(chǎn)業(yè)園區(qū)土地收儲(chǔ)拆遷補(bǔ)償協(xié)議3篇
- 2025版智能家居配置大平方樓房買(mǎi)賣(mài)合同3篇
- 2025版圖書(shū)出版行紀(jì)合同范本3篇
- 二零二五版木材加工行業(yè)安全生產(chǎn)管理合同4篇
- 個(gè)人焊接工程責(zé)任合同版
- 2025版家庭資產(chǎn)分割協(xié)議書(shū)范本解析3篇
- 2025年度合同終止及法律風(fēng)險(xiǎn)評(píng)估律師服務(wù)合同
- 慈溪高一期末數(shù)學(xué)試卷
- 天津市武清區(qū)2024-2025學(xué)年八年級(jí)(上)期末物理試卷(含解析)
- 《徐霞客傳正版》課件
- 江西硅博化工有限公司年產(chǎn)5000噸硅樹(shù)脂項(xiàng)目環(huán)境影響評(píng)價(jià)
- 高端民用航空復(fù)材智能制造交付中心項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- 量子醫(yī)學(xué)成像學(xué)行業(yè)研究報(bào)告
- DB22T 3268-2021 糧食收儲(chǔ)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化評(píng)定規(guī)范
- 辦事居間協(xié)議合同范例
- 正念減壓療法詳解課件
- GB 30254-2024高壓三相籠型異步電動(dòng)機(jī)能效限定值及能效等級(jí)
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論