




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第5章中央處理器5.1
CPU的功能和組成5.2指令周期5.3時序產(chǎn)生器和控制方式5.4微程序控制器5.5微程序設(shè)計技術(shù)5.6硬連線控制器5.7流水線技術(shù)5.8提高單機(jī)系統(tǒng)指令級并行性(ILP)的措施5.9現(xiàn)代微處理器舉例本章小結(jié)習(xí)題5
5.1
CPU的功能和組成
程序一旦裝入內(nèi)存儲器,中央處理器(簡稱CPU)就能自動地、逐條地取指令、分析指令和執(zhí)行指令。因此,CPU是計算機(jī)的核心部件。
5.1.1
CPU的功能
CPU在運(yùn)行程序時,根據(jù)程序計數(shù)器PC的值自動地從主存儲器中取出一條指令,若指令Cache命中,則直接從指令Cache中取指令,然后對指令進(jìn)行分析,即對指令的操作碼進(jìn)行譯碼或測試,以識別指令的功能,并根據(jù)不同的操作碼和時序產(chǎn)生器產(chǎn)生的時序信號。生成具有時間標(biāo)志的操作控制信號,送到相應(yīng)的執(zhí)行部件,定時啟動所要求的操作,以控制數(shù)據(jù)在CPU、數(shù)據(jù)Cache、主存儲器和輸入/輸出設(shè)備之間流動,指揮運(yùn)算器操作,完成對數(shù)據(jù)的加工處理。與此同時,它還修改程序計數(shù)器PC的內(nèi)容,給出后繼指令在主存儲器中的位置,自動地、逐條地取指令、分析指令和執(zhí)行指令,直到指令序列全部執(zhí)行完畢為止。因此,CPU的基本功能可以歸納為以下幾個方面:
(1)指令控制,即對指令執(zhí)行順序的控制。程序由一個指令序列構(gòu)成,這些指令在邏輯上的相互關(guān)系不能改變。CPU必須對指令的執(zhí)行進(jìn)行控制,保證指令序列執(zhí)行結(jié)果的正確性。
(2)操作控制,即對取指令、分析指令和執(zhí)行指令過程中所需的操作進(jìn)行控制。一條指令的解釋一般需要幾個操作步驟來實現(xiàn),每個操作步驟實現(xiàn)一定的功能,每個功能的實現(xiàn)都需要相應(yīng)的操作控制信號,CPU必須把各種操作控制信號送往相應(yīng)的部件,從而控制這些部件完成相應(yīng)的動作。
(3)時間控制,即對各種操作進(jìn)行時間上的控制。時間控制包括兩方面內(nèi)容:一方面,在每個操作步驟內(nèi)的有效操
作信號均受時間的嚴(yán)格限制,必須保證按規(guī)定的時間順序啟動各種動作;另一方面,對指令解釋的操作步驟也要進(jìn)行時間上的控制。
(4)數(shù)據(jù)加工,即對數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算處理。完成數(shù)據(jù)的加工處理,這是CPU的最基本的功能。此外,CPU還具有異常處理和中斷處理、存儲管理、總線管理、電源管理等擴(kuò)展功能。異常處理和中斷處理是指在運(yùn)行程序時,如果出現(xiàn)某種緊急的異常事件,如算術(shù)運(yùn)算時除數(shù)為零、內(nèi)存條故障、外設(shè)發(fā)出中斷請求等,CPU必須對這些事件進(jìn)行處理;存儲管理包括虛擬存儲器的管理及存儲器的保護(hù)等;總線管理是對CPU所連接的系統(tǒng)總線進(jìn)行總線請求優(yōu)先權(quán)的裁決、總線數(shù)據(jù)傳輸?shù)耐娇刂频?;電源管理是為減少CPU的功耗和減少CPU芯片的發(fā)熱等。5.1.2
CPU的基本組成
早期的CPU都由運(yùn)算器和控制器兩大部分組成,而現(xiàn)代的CPU除了運(yùn)算器和控制器外,還有高速緩沖存儲器(Cache),例如80486CPU中包含有8KB的片內(nèi)Cache。在流水線CPU中,為了減少CPU訪存取指令和取數(shù)據(jù)的沖突,將CPU內(nèi)的Cache設(shè)計成了兩個獨立的指令高速緩沖存儲器(指令Cache)和數(shù)據(jù)高速緩沖存儲器(數(shù)據(jù)Cache),例如Pentium包含有8KB的指令Cache和8KB的數(shù)據(jù)Cache。此外,為了進(jìn)一步提高CPU訪存的速度,在CPU內(nèi)部還增設(shè)了二級高速緩沖存儲器(L2Cache),例如PentiumⅡ和PentiumⅢ包含有512KB的L2Cache,Pentium4包含有1MB的L2Cache。從教學(xué)的目的出發(fā),本章5.1節(jié)至5.6節(jié)從CPU解釋指令的角度,來介紹一個CPU的基本組成和功能、指令的解釋過程、時序產(chǎn)生器的組成及工作原理、操作控制器的組成及工作
原理等。為了便于讀者建立整機(jī)的概念,我們給出的模型CPU力求簡單,同時又兼顧性能。
圖5.1給出了一個模型CPU的組成框圖,該模型CPU采用了三數(shù)據(jù)總線結(jié)構(gòu)的運(yùn)算器,且CPU內(nèi)部包含有指令Cache和數(shù)據(jù)Cache。在無特殊聲明的情況下,假定取指令時都能在指
令Cache中命中,取數(shù)據(jù)時都能在數(shù)據(jù)Cache中命中。圖5.1模型CPU的組成框圖
1.控制器
控制器由程序計數(shù)器(PC)、指令寄存器(IR)、指令譯碼器、時序產(chǎn)生器和操作控制器組成,它是發(fā)布命令的“決策機(jī)構(gòu)”,即完成協(xié)調(diào)和指揮整個計算機(jī)系統(tǒng)的操作??刂破鞯闹饕δ苁钱a(chǎn)生計算機(jī)的全部操作控制信號,對取指令、分析指令和執(zhí)行指令的操作過程進(jìn)行控制。具體來說,主要包括:(1)從指令Cache中取出一條指令,并指出下一條指令在指令Cache中的位置。
(2)對指令進(jìn)行譯碼或測試,并產(chǎn)生相應(yīng)的控制信號,以便啟動規(guī)定的動作。比如產(chǎn)生數(shù)據(jù)Cache的讀/寫操作、算術(shù)邏輯運(yùn)算操作或輸入/輸出操作等所需的操作控制信號。
(3)指揮并控制CPU、CPU外部Cache、主存儲器和輸入/輸出設(shè)備之間數(shù)據(jù)流動的方向。
2.運(yùn)算器
運(yùn)算器由算術(shù)邏輯運(yùn)算單元(ALU)、通用寄存器(GR)和狀態(tài)字寄存器(PSW)組成,它是數(shù)據(jù)加工處理部件。運(yùn)算器接受來自于控制器的操作控制信號,相對于控制器來說,它是一個執(zhí)行部件,主要功能是執(zhí)行所有的算術(shù)運(yùn)算和所有的邏輯運(yùn)算,包括進(jìn)行邏輯測試。
算術(shù)運(yùn)算和邏輯運(yùn)算的結(jié)果有可能是一個數(shù)據(jù),也有可能只是進(jìn)行某種測試,并將測試的結(jié)果反映到狀態(tài)字寄存器上。
CPU中除了運(yùn)算器、控制器和Cache三大基本組成部分外,還有存儲管理、總線接口、中斷系統(tǒng)等其他功能部件。5.1.3
CPU中的主要寄存器
盡管各種類型的CPU在設(shè)計時采用的技術(shù)存在著較大的區(qū)別,如并行處理、高速緩存、指令預(yù)取、轉(zhuǎn)移預(yù)測、地址轉(zhuǎn)換等方面采用的技術(shù),使得不同廠家開發(fā)的不同型號的CPU在組成上有較大的區(qū)別,但是CPU最基本的組成是相同的,并且在CPU中至少包含五類寄存器,分別是程序計數(shù)器(PC)、指令寄存器(IR)、數(shù)據(jù)地址寄存器(AR)、通
用寄存器(GR)和狀態(tài)字寄存器(PSW),如圖5.1所示。
1.程序計數(shù)器(PC)
程序計數(shù)器又稱指令地址寄存器、指令指針等,其作用是給出將要取出并執(zhí)行的指令的地址。CPU取指令時,將PC的內(nèi)容送入指令Cache,經(jīng)地址譯碼后選中相應(yīng)的存儲單元,取出一條指令并將取出的指令代碼送往指令寄存器(IR),同時自動修改PC的值形成下一條指令的地址。
有兩種途徑來形成指令的地址,其一是順序執(zhí)行程序的情況,通過PC加1形成下一條指令的地址(如果存儲器按字節(jié)編址,而指令字長度為4個字節(jié),則通過PC加4形成下一條指令的地址);其二是遇到需要改變順序執(zhí)行程序的情況,一般由轉(zhuǎn)移類指令形成轉(zhuǎn)移地址送往PC,作為下一條指令的地址。
2.指令寄存器(IR)
指令寄存器的作用是保存當(dāng)前正在執(zhí)行的一條指令。當(dāng)解釋一條指令時,首先根據(jù)PC的值從指令Cache中取出一條指令,并將其送往指令寄存器。在這條指令執(zhí)行的過程中,指令寄存器的內(nèi)容始終保持不變,直到有新的指令被取出并送往指令寄存器為止。指令寄存器的位數(shù)一般等于指令Cache中存儲單元的位數(shù),若一條指令占用多個存儲單元,則指令寄存器中保存的是包含有操作碼的那個存儲單元的內(nèi)容。指令由操作碼和地址碼兩部分組成,如圖5.1所示,操作碼經(jīng)指令譯碼器譯碼或測試后與尋址方式的編碼一起送往操作控制器和時序產(chǎn)生器,產(chǎn)生各種具有時間標(biāo)志的操作控制信號,從而完成對不同功能指令的解釋。指令譯碼器用來完成對指令寄存器中的操作碼字段進(jìn)行譯碼,其作用是從包含眾多指令的指令系統(tǒng)中識別出各種不同功能的指令,其輸出直接送往操作控制器。值得說明的是,只有操作控制器為硬連線控制器時才有指令譯碼器,在微程序控制器中不需要指令譯碼器,因為指令功能的識別是通過微程序控制器中的地址轉(zhuǎn)移邏輯電路直接對操作碼進(jìn)行測試來完成的。
3.數(shù)據(jù)地址寄存器(AR)
數(shù)據(jù)地址寄存器的作用是保存當(dāng)前CPU所訪問的數(shù)據(jù)Cache單元的地址。由于要對訪存地址進(jìn)行譯碼,因此必須使用數(shù)據(jù)地址寄存器來保持地址信息,直到一次讀/寫操作完
成為止。
地址寄存器的結(jié)構(gòu)與指令寄存器一樣,通常使用單純的寄存器結(jié)構(gòu)。信息的打入一般采用電位-脈沖制,即輸入數(shù)據(jù)信息維持的時間為一個節(jié)拍電位,寄存器的時鐘控制端采用節(jié)拍脈沖控制,在時鐘控制信號的控制下,將輸入數(shù)據(jù)信息瞬間打入寄存器。
4.通用寄存器(GR)
顧名思義,通用寄存器的意思是寄存器的功能有多種用途,它可作為ALU的累加器、變址寄存器、計數(shù)器、移位器、地址指針、數(shù)據(jù)緩沖器等,用于存放操作數(shù)(包括源操作數(shù)、目的操作數(shù)及中間結(jié)果)和操作數(shù)在數(shù)據(jù)Cache中的地址等。通常由指令編址訪問通用寄存器,即在指令格式中設(shè)計寄存器尋址段,通過指令選定某個寄存器來實現(xiàn)指定功能。如圖5.1所示,模型CPU中采用了4個通用寄存器R0~R3,這些寄存器中的某一個在作為源寄存器使用時,由指令寄存器中源寄存器的編碼I11、I10控制并進(jìn)行選擇。這些寄存器中的某一個在作為目的寄存器使用時,由指令寄存器中目的寄存器的編碼I9、I8控制并進(jìn)行選擇。源寄存器和目的寄存器的內(nèi)容可分別通過不同的數(shù)據(jù)總線同時送往ALU進(jìn)行運(yùn)算,運(yùn)算的結(jié)果則通過另外一條數(shù)據(jù)總線輸出,因此在運(yùn)算器結(jié)構(gòu)設(shè)計時,沒有采用運(yùn)算器輸入數(shù)據(jù)暫存器,這與2.7節(jié)三總線結(jié)構(gòu)運(yùn)算器的思想是一致的。在圖5.1中,源寄存器的內(nèi)容可直接通過三態(tài)門送往內(nèi)部數(shù)據(jù)總線,以提高數(shù)據(jù)傳輸?shù)乃俣?。另外,源寄存器或目的寄存器中某一個寄存器的內(nèi)容也可直接通過ALU進(jìn)行諸如移位、加1、減1、取非等只需一個操作數(shù)的運(yùn)算?,F(xiàn)代CPU中通用寄存器的個數(shù)多達(dá)數(shù)百個,如20世紀(jì)80年代,美國加州大學(xué)伯克利分校研制的RISC-Ⅱ設(shè)計了138個寄存器,日本富士通公司生產(chǎn)的基于SPARC系統(tǒng)結(jié)構(gòu)的MB
86900芯片設(shè)計了120個寄存器,美國CYPRESS半導(dǎo)體公司生產(chǎn)的基于SPARC系統(tǒng)結(jié)構(gòu)的CY7C601芯片設(shè)計了136個寄存器。再如Intel公司于2000年11月20日發(fā)布的Pentium4處理器,盡管對用戶來說只有8個可見的寄存器,但CPU內(nèi)部包含有128個整數(shù)寄存器組成的整數(shù)寄存器堆(RegisterFile,RF)和128個浮點寄存器組成的浮點寄存器堆。使用大量的通用寄存器,既可以減少訪存的次數(shù)、解決并行處理時的數(shù)據(jù)相關(guān),提高CPU的處理效率,又可以提供足夠的寄存器用作地址指針、過程調(diào)用時的參數(shù)傳遞等,提高編程的靈活性。但是通用寄存器個數(shù)的增多,會加重程序員管理和使用寄存器的負(fù)擔(dān),同時也會增加CPU
設(shè)計的復(fù)雜性和硬件成本。
5.狀態(tài)字寄存器(PSW)
狀態(tài)字寄存器的作用是保存運(yùn)算器的運(yùn)算結(jié)果狀態(tài)、程序運(yùn)行時的工作狀態(tài)及機(jī)器的狀態(tài)信息。運(yùn)算器的運(yùn)算結(jié)果狀態(tài)主要包括由算術(shù)指令和邏輯指令運(yùn)算或測試結(jié)果建立的各種條件標(biāo)志,如運(yùn)算結(jié)果進(jìn)位標(biāo)志(CF)、運(yùn)算結(jié)果溢出標(biāo)志(OF)、運(yùn)算結(jié)果為零標(biāo)志(ZF)、運(yùn)算結(jié)果的符號標(biāo)志(SF)等,這些標(biāo)志位的使用主要為程序的條件轉(zhuǎn)移提供判斷的條件。反映程序運(yùn)行時的工作狀態(tài)的標(biāo)志主要有跟蹤標(biāo)志(TF)、方向標(biāo)志(DF)等。反映機(jī)器狀態(tài)的標(biāo)志有中斷標(biāo)志(IF)等。值得說明的是,不同機(jī)器的狀態(tài)字寄存器所包含的內(nèi)容不完全相同,各標(biāo)志位信息的符號表示也不盡相同。
早期的計算機(jī)中,由于通用寄存器的個數(shù)較少并且采用單總線結(jié)構(gòu)的運(yùn)算器,在CPU設(shè)計時存在運(yùn)算器輸入數(shù)據(jù)暫存器,主要用于數(shù)據(jù)運(yùn)算時的同步。另外,由于CPU和主存速度存在差異,還會設(shè)計主存數(shù)據(jù)緩沖器(MDB),主要用于緩沖寫入主存儲器或從主存儲器中讀出的數(shù)據(jù)。5.1.4操作控制器和時序產(chǎn)生器
一條指令的解釋過程實際上是一個信息的流動和處理的過程。這里的信息包括指令、數(shù)據(jù)和地址等,但不管是哪類信息,都是用二進(jìn)制數(shù)據(jù)來表示的,因此信息的流動和處理
過程也可以看成是數(shù)據(jù)的流動和處理過程。如何來保證數(shù)據(jù)在CPU內(nèi)各類寄存器、ALU、Cache、主存儲器和I/O設(shè)備之間正確地流動,以實現(xiàn)指令要求的功能呢?這就要求有一個部件來根據(jù)指令的功能產(chǎn)生相應(yīng)的控制信號,控制數(shù)據(jù)的正確流動。通常把各執(zhí)行部件之間傳送信息的通路稱為數(shù)據(jù)通路。數(shù)據(jù)在流動過程中從源部件到目標(biāo)部件之間經(jīng)過的三態(tài)門、多路開關(guān)、各類寄存器、ALU、Cache、主存儲器、I/O設(shè)備等都要加以控制。產(chǎn)生控制信號并建立正確數(shù)據(jù)通路的部件被稱為操作控制器。操作控制器的功能,就是根據(jù)指令的操作碼和時序信號,產(chǎn)生各種具有時間標(biāo)志的操作控制信號,以便建立正確的數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制。根據(jù)設(shè)計方法的不同,現(xiàn)代計算機(jī)中操作控制信號的形成方法有兩種,一種是組合邏輯設(shè)計方法,另一種是微程序設(shè)計方法。對應(yīng)的操作控制器分別稱為硬連線控制器(或組合邏輯控制器)和微程序控制器。經(jīng)典CISC微處理器的操作控制器為微程序控制器,而純RISC微處理器的操作控制器為硬連線控制器。微程序控制器和硬連線控制器的組成和工作原理將在后面幾節(jié)中詳細(xì)介紹。由于這兩種操作控制器都有各自的優(yōu)點,因此在近期推出的退耦的CISC/RISC和后RISC體系結(jié)構(gòu)的微處理器中,操作控制器的設(shè)計采用了兩者的結(jié)合,其思想是簡單的指令通過組合邏輯電路來產(chǎn)生操作控制信號,而復(fù)雜的指令則通過微操作ROM來產(chǎn)生操作控制信號。由于CPU在解釋指令時,通過操作控制器產(chǎn)生的各個操作控制信號之間存在嚴(yán)格的先后次序,因此各個控制信號在什么時刻有效,維持有效的時間有多長,也都有嚴(yán)格的規(guī)定,不能有任何差錯。例如,執(zhí)行加法指令時,必須先將兩個數(shù)送到ALU的輸入端,然后再發(fā)加法控制信號控制ALU進(jìn)行加法運(yùn)算,待加法結(jié)果生成后,才能將結(jié)果送到目的地。因此,需要引入時序的概念。時序指時間序列,在計算機(jī)內(nèi)專門設(shè)置了時序產(chǎn)生器來產(chǎn)生一組時序信號,即一系列的節(jié)拍電位信號和節(jié)拍脈沖信號。時序產(chǎn)生器的作用就是對各種操作控制信號實施時間上的控制。
5.2指令周期
5.2.1指令周期的基本概念
計算機(jī)之所以能自動地工作,是因為在CPU內(nèi)控制器的控制下,可以從存放程序的內(nèi)存中自動地取出一條指令并且執(zhí)行。若指令的解釋采用順序解釋方式,則各條機(jī)器指令之間順序串行地解釋,即執(zhí)行完一條指令后才開始取下一條指令,再執(zhí)行這條指令,如此周而復(fù)始,構(gòu)成了一個封閉的循環(huán)。除非遇到停機(jī)指令,否則這個循環(huán)將一直繼續(xù)下去。順序解釋方式的優(yōu)點是控制簡單,缺點是速度慢,各部件的利用率低。若指令的解釋采用流水解釋方式,則在解釋完當(dāng)前指令之前,就可開始下一條指令的解釋。流水解釋方式的優(yōu)缺點與順序解釋方式正好相反。本章前半部分介紹的是以順序解釋方式工作的CPU的組成及工作原理,包括CPU的內(nèi)部結(jié)構(gòu)、指令的解釋過程、時序產(chǎn)生器的組成和工作原理、操作控制器的組成和工作原理,以及操作控制器的設(shè)計方法等。從5.7節(jié)開始介紹的是流水線的基本概念,以及以流水解釋方式工作的CPU的組成及工作原理。
CPU每次送出訪存地址,從內(nèi)存中取出一條指令并且執(zhí)行完這條指令都需要完成一系列的操作,這一系列的操作所需的時間通常叫做一個指令周期。更簡單地說,指令周期是指從CPU送出取指令地址到取出本條指令并執(zhí)行完畢所花的時間。指令周期包括取指周期和執(zhí)行周期兩部分。我們把取出一條指令所花的時間稱為取指周期,而執(zhí)行一條指令所花的時間稱為執(zhí)行周期。對于相同的CPU結(jié)構(gòu),不同指令的取指過程都是相同的,都需一個訪存周期,因此通常用訪存周期的時間長短來定義一個CPU周期。但對于某些簡單的CPU結(jié)構(gòu),一條指令的取指周期可能需要多個CPU周期時間。由于實現(xiàn)指令功能的復(fù)雜程度不同,如采用不同的尋址方式、不同的指令字長度等,不同指令的執(zhí)行周期是不盡相同的,但至少占用一個CPU周期。由此可見,取出和執(zhí)行任何一條指令所需的最短時間為兩個CPU周期。
CPU周期也稱為機(jī)器周期,它由若干個時鐘周期組成。時鐘周期通常又稱為節(jié)拍脈沖周期或T周期,它是處理操作的最基本單位。圖5.2(a)示出了定長CPU周期組成的指令周期,一個CPU周期固定由四個T周期組成,每個T周期為一個時鐘脈沖周期。由于指令在執(zhí)行階段的復(fù)雜程度不同,為了提高機(jī)器的效率,在許多機(jī)器中采用了不定長的CPU周期,如圖
5.2(b)所示,但這些機(jī)器的時序產(chǎn)生器設(shè)計較復(fù)雜。值得說明的是,若采用定長的CPU周期來解釋指令,根據(jù)CPU結(jié)構(gòu)和操作控制器設(shè)計方法的不同,一個CPU周期可以設(shè)計由四個T
周期組成,也可以設(shè)計由兩個T周期組成。圖5.2指令周期(a)定長CPU周期組成的指令周期;(b)變長CPU周期組成的指令周期
CPU在解釋指令時是根據(jù)指令完成的功能對指令格式進(jìn)行解釋的,換句話來說,相同指令格式編寫出來的不同指令代碼,其解釋過程完全相同。表5.1列出了模型機(jī)中八條典型指
令的指令格式及功能。這八條指令是有意安排的,指令類型包含了數(shù)據(jù)傳送指令、訪存指令、算術(shù)運(yùn)算指令、條件轉(zhuǎn)移指令和無條件轉(zhuǎn)移指令等,可以實現(xiàn)一些簡單的程序功能;指令的尋址方式包括了最基本的立即尋址、寄存器尋址、寄存器間接尋址、直接尋址等四種;指令格式包括了典型的一地址指令和二地址指令。下面我們通過運(yùn)行表5.2中給出的一個簡單程序來詳細(xì)地介紹各類指令在模型機(jī)上取指令和執(zhí)行指令的解釋流程,具體認(rèn)識各類指令的指令周期。為了解釋的方便,我們將匯編
語言源程序中JNZ和JMP指令的轉(zhuǎn)移標(biāo)號改為了標(biāo)號所對應(yīng)的地址。
在介紹所有指令的指令周期時,我們假定這些指令已按表5.2給出的地址存放在指令Cache中,取指令過程中不會出現(xiàn)指令Cache不命中的情況。5.2.2
MOV指令的指令周期
MOV指令的指令格式中,源操作數(shù)采用立即尋址,目的操作數(shù)采用寄存器尋址。MOV指令的指令周期由兩個CPU周期組成,其中取指周期占用一個CPU周期,執(zhí)行周期占用一個CPU周期。
在取指周期中,CPU主要完成如下功能:①根據(jù)當(dāng)前PC的值訪存取指,并將取出的指令代碼送往指令寄存器IR;②對程序計數(shù)器PC加1,形成取下一條指令的地址;③對指令
的操作碼進(jìn)行譯碼或測試,以確定指令實現(xiàn)的功能。在執(zhí)行周期中,CPU根據(jù)指令功能完成所要求的操作。對MOV指令來說,執(zhí)行周期中完成將指令中的形式地址部分(立即數(shù))送往目的寄存器的操作。
1.取指周期
MOV指令在取指周期內(nèi)實現(xiàn)取指的操作過程如圖5.3所示。此階段,在CPU中操作控制器的控制下按順序完成如下操作:
①程序中第一條指令的地址20裝入程序計數(shù)器PC;
②PC的內(nèi)容被送往指令地址總線ABUS(I)上,地址譯碼后選中指令Cache的20存儲單元,并啟動讀操作命令;
③從20地址中讀出MOV指令的指令代碼,通過指令總線IBUS裝入指令寄存器IR;
④程序計數(shù)器PC的內(nèi)容加1,變?yōu)?1,形成取下一條指令的地址;
⑤對指令寄存器中的操作碼進(jìn)行譯碼或測試,以確定指令實現(xiàn)的功能。圖5.3
MOV指令的取指周期
2.執(zhí)行周期
MOV指令在執(zhí)行周期內(nèi)實現(xiàn)指令功能的操作過程如圖5.4所示。此階段,在CPU中操作控制器的控制下按順序完成如下操作:
①指令格式中的形式地址,即立即數(shù)11,送往數(shù)據(jù)總線DBUS;
②目的寄存器的編碼I9、I8經(jīng)過2∶4譯碼器譯碼后選中R1寄存器;
③將數(shù)據(jù)總線DBUS上的數(shù)據(jù)裝入R1寄存器,此時R1的內(nèi)容變?yōu)?1。圖5.4
MOV指令的執(zhí)行周期5.2.3
LAD指令的指令周期
LAD指令的指令格式中,源操作數(shù)采用寄存器間接尋址,目的操作數(shù)采用寄存器尋址。
LAD指令的指令周期由三個CPU周期組成,其中取指周期占用一個CPU周期,執(zhí)行周期占用兩個CPU周期。在執(zhí)行周期中,送操作數(shù)地址、訪數(shù)據(jù)Cache取數(shù)并裝入目的寄存器各占一個CPU周期。
1.取指周期
LAD指令在取指周期內(nèi)實現(xiàn)取指的操作過程與MOV指令完全相同,只是PC提供的指令地址為21。從21地址中讀出LAD指令的指令代碼,通過指令總線IBUS裝入指令寄存器
IR中,然后將PC的內(nèi)容加1,變?yōu)?2,形成取下一條指令的地址。
由于此節(jié)在介紹MOV、LAD、ADD、INC、DEC、JNZ、STO和JMP指令的指令周期時,都基于圖5.1所示的CPU結(jié)構(gòu),因此在取指周期內(nèi)實現(xiàn)取指的操作過程都完全相同,只是PC的具體內(nèi)容有所不同。在下面其他指令的指令周期介紹中,將不再重復(fù)介紹這些指令的取指周期。
2.執(zhí)行周期
LAD指令在執(zhí)行周期內(nèi)實現(xiàn)指令功能的操作過程如圖5.5所示。在CPU中操作控制器的控制下按順序完成如下操作:
①源寄存器的編碼I11、I10控制多路開關(guān)選中R1寄存器;
②R1寄存器的內(nèi)容11經(jīng)數(shù)據(jù)總線DBUS裝入地址寄存器AR;
③AR的內(nèi)容被送往數(shù)據(jù)地址總線ABUS(D)上,地址譯碼后選中數(shù)據(jù)Cache的11存儲單元,并啟動讀操作命令,從11地址中讀出數(shù)據(jù)1送往數(shù)據(jù)總線DBUS;
④目的寄存器的編碼I9、I8經(jīng)過2∶4譯碼器譯碼后選中R3寄存器;
⑤將數(shù)據(jù)總線DBUS上的數(shù)據(jù)裝入R3寄存器,此時R3的內(nèi)容變?yōu)?。圖5.5
LAD指令的執(zhí)行周期5.2.4
ADD指令的指令周期
ADD指令的指令格式中,源操作數(shù)和目的操作數(shù)均采用寄存器尋址。ADD指令的指令周期由兩個CPU周期組成,其中取指周期占用一個CPU周期,執(zhí)行周期占用一個CPU周期。下面只介紹執(zhí)行周期。
ADD指令在執(zhí)行周期內(nèi)實現(xiàn)指令功能的操作過程如圖5.6所示。此階段,在CPU中操作控制器的控制下按順序完成如下操作:①源寄存器的編碼I11、I10控制多路開關(guān)選中R3寄存器,并將R3寄存器的內(nèi)容1送往ALU的X總線,與此同時,目的寄存器的編碼I9、I8控制多路開關(guān)選中R0寄存器,并將R0寄存器的內(nèi)容0送往ALU的Y總線;
②ALU進(jìn)行加法運(yùn)算;
③將ALU運(yùn)算的結(jié)果1送往數(shù)據(jù)總線DBUS;
④目的寄存器的編碼I9、I8經(jīng)過2∶4譯碼器譯碼后選中R0寄存器;
⑤將數(shù)據(jù)總線DBUS上的數(shù)據(jù)裝入R0寄存器,此時R0的內(nèi)容由0變?yōu)?。圖5.6
ADD指令的執(zhí)行周期5.2.5
INC指令的指令周期
INC指令的指令格式中只有一個目的操作數(shù),目的操作數(shù)采用寄存器尋址。INC指令的指令周期由兩個CPU周期組成,其中取指周期占用一個CPU周期,執(zhí)行周期占用一個CPU
周期。下面只介紹執(zhí)行周期。
INC指令在執(zhí)行周期內(nèi)實現(xiàn)指令功能的操作過程如圖5.7所示。此階段,在CPU中操作控制器的控制下按順序完成如下操作:①目的寄存器的編碼I9、I8控制多路開關(guān)選中R1寄存器,并將R1寄存器的內(nèi)容11送往ALU的Y總線;
②ALU進(jìn)行加1運(yùn)算;
③將ALU運(yùn)算的結(jié)果12送往數(shù)據(jù)總線DBUS;
④目的寄存器的編碼I9、I8經(jīng)過2∶4譯碼器譯碼后選中R1寄存器;
⑤將數(shù)據(jù)總線DBUS上的數(shù)據(jù)裝入R1寄存器,此時R1的內(nèi)容由11變?yōu)?2。圖5.7
INC指令的執(zhí)行周期5.2.6
DEC指令的指令周期
DEC指令的指令格式中只有一個目的操作數(shù),目的操作數(shù)采用寄存器尋址。DEC指令的指令周期由兩個CPU周期組成,其中取指周期占用一個CPU周期,執(zhí)行周期占用一個CPU周期。下面只介紹執(zhí)行周期。
DEC指令在執(zhí)行周期內(nèi)實現(xiàn)指令功能的操作過程如圖5.8所示。此階段,在CPU中操作控制器的控制下按順序完成如下操作:①目的寄存器的編碼I9、I8控制多路開關(guān)選中R2寄存器,并將R2寄存器的內(nèi)容6送往ALU的Y總線;
②ALU進(jìn)行減1運(yùn)算;
③將ALU運(yùn)算的結(jié)果5送往數(shù)據(jù)總線DBUS;
④目的寄存器的編碼I9、I8經(jīng)過2∶4譯碼器譯碼后選中R2寄存器;
⑤將數(shù)據(jù)總線DBUS上的數(shù)據(jù)裝入R2寄存器,此時R2的內(nèi)容由6變?yōu)?。圖5.8
DEC指令的執(zhí)行周期5.2.7
JNZ指令的指令周期
JNZ指令的指令格式中只有一個源操作數(shù),源操作數(shù)采用直接尋址。JNZ指令的指令周期由兩個或三個CPU周期組成,其中取指周期占用一個CPU周期,執(zhí)行周期占用一個或兩個CPU周期。在執(zhí)行周期中,若操作控制器采用硬連線控制,則只需要一個CPU周期;若操作控制器采用微程序控制,由于要同時考慮到狀態(tài)條件的取值和分支地址的確定,執(zhí)行周期將占用一個或兩個CPU周期。
JNZ指令在執(zhí)行周期內(nèi)實現(xiàn)指令功能的操作過程如圖5.9所示。此階段,在CPU中操作控制器的控制下按順序完成如下操作:
①根據(jù)狀態(tài)字寄存器PSW的內(nèi)容,測試狀態(tài)條件ZF;
②若ZF=1,則不執(zhí)行任何操作,若ZF=0,則將指令格式中的形式地址,即轉(zhuǎn)移地址21,送往數(shù)據(jù)總線DBUS;
③將數(shù)據(jù)總線DBUS上的數(shù)據(jù)裝入PC,實現(xiàn)分支,此時,PC的內(nèi)容由26變?yōu)?1。圖5.9
JNZ指令的執(zhí)行周期5.2.8
STO指令的指令周期
STO指令的指令格式中,源操作數(shù)采用寄存器尋址,目的操作數(shù)采用直接尋址。STO指令的指令周期由三個CPU周期組成,其中取指周期占用一個CPU周期,執(zhí)行周期占用兩個CPU周期。在執(zhí)行周期中,送操作數(shù)地址、將源寄存器的內(nèi)容存入數(shù)據(jù)Cache各占一個CPU周期。
STO指令在執(zhí)行周期內(nèi)實現(xiàn)指令功能的操作過程如圖5.10所示。此階段,在CPU中操作控制器的控制下按順序完成如下操作:①將指令格式中的形式地址10送往數(shù)據(jù)總線DBUS;
②將數(shù)據(jù)總線DBUS上的數(shù)據(jù)裝入地址寄存器AR,此時AR的內(nèi)容由16變?yōu)?0;
③源寄存器的編碼I11、I10控制多路開關(guān)選中R0寄存器;
④將R0寄存器的內(nèi)容5B送往數(shù)據(jù)總線DBUS;
⑤AR的內(nèi)容被送往數(shù)據(jù)地址總線ABUS(D)上,地址譯碼后選中數(shù)據(jù)Cache的10存儲單元,并啟動寫操作命令,將數(shù)據(jù)總線DBUS上的數(shù)據(jù)5B寫入10地址中,此時,數(shù)據(jù)Cache
的10存儲單元的內(nèi)容由0變?yōu)?B。圖5.10
STO指令的執(zhí)行周期5.2.9
JMP指令的指令周期
JMP指令的指令格式中只有一個源操作數(shù),源操作數(shù)采用直接尋址。JMP指令的指令周期由兩個CPU周期組成,其中取指周期占用一個CPU周期,執(zhí)行周期占用一個CPU周期。
JMP指令在執(zhí)行周期內(nèi)實現(xiàn)指令功能的操作過程如圖5.11所示。此階段,在CPU中操作控制器的控制下按順序完成如下操作:
①將指令格式中的形式地址,即轉(zhuǎn)移地址50,送往數(shù)據(jù)總線DBUS;
②將數(shù)據(jù)總線DBUS上的數(shù)據(jù)裝入PC,實現(xiàn)分支,此時,PC的內(nèi)容由28變?yōu)?0。圖5.11
JMP指令的執(zhí)行周期5.2.10用方框圖語言表示指令周期
前面我們介紹了八條典型指令的指令周期,目的是讓讀者直觀地了解各類指令在計算機(jī)上的執(zhí)行流程。但在進(jìn)行計算機(jī)設(shè)計時,必須根據(jù)計算機(jī)的組成和結(jié)構(gòu),用更簡單快捷的方法來描述指令的解釋過程,再根據(jù)指令的解釋過程來設(shè)計操作控制器。
在進(jìn)行計算機(jī)設(shè)計時,可以采用方框圖語言來表示指令的指令周期。一個方框代表一個CPU周期,方框中的內(nèi)容表示一個CPU周期內(nèi)在數(shù)據(jù)通路上完成的某些傳送操作或控制操作。除了方框以外,還需要菱形框來表示某種判別或測試,菱形框本身不單獨占用一個CPU周期。
在進(jìn)行微程序控制器設(shè)計時,菱形框內(nèi)完成的操作在緊接著它的上一個方框中實現(xiàn)。在進(jìn)行硬連線控制器設(shè)計時,若菱形框內(nèi)完成的是指令操作碼的譯碼操作,則在取指操作完成后直接通過指令譯碼器譯碼,不需要單獨設(shè)置控制信號,從操作時間上講,可以認(rèn)為是從屬于取指周期;
若菱形框內(nèi)完成的是其他操作,則這些操作在緊接著它的下一個方框中實現(xiàn)。前面介紹的八條典型指令用方框圖語言表示的指令周期如圖5.12所示。從圖中可以看出,由于是在相同的CPU結(jié)構(gòu)上解釋指令,因此所有指令的取指周期是完全相同的,均占用
一個CPU周期。但是由于各條指令完成不同的功能,它們的執(zhí)行周期也各不相同,如MOV、ADD、INC、DEC和JMP指令是一個CPU周期,而LAD和STO指令是兩個CPU周期。JNZ指令比較特殊,若操作控制器采用硬連線控制,則其執(zhí)行周期只需要一個CPU周期;若操作控制器采用微程序控制,由于要同時考慮狀態(tài)條件的取值和分支地址的確定,因此其執(zhí)行周期需要一個或兩個CPU周期。框圖中DBUS代表數(shù)據(jù)總線,ABUS(D)代表數(shù)據(jù)Cache的地址總線,ABUS(I)代表指令Cache的地址總線,RD(D)代表數(shù)據(jù)Cache的讀命令,WE(D)代表數(shù)據(jù)Cache的寫命令,RD(I)代表指令Cache的讀命令。
在圖5.12中,每條指令解釋完后都要進(jìn)入一個公操作部分,用符號“~”表示。在公操作期間,CPU開始進(jìn)行一些特殊的操作,如判斷并處理各類中斷請求、DMA請求、總線請求等,若無任何請求,那么CPU就根據(jù)當(dāng)前PC值從指令Cache中取下一條指令。圖5.12用方框圖語言表示各指令的指令周期[例5.1]圖5.13所示為雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路。其中,IR為指令寄存器,PC為程序計數(shù)器(具有自增功能),M為主存(受信號控制,既存放指令又存放數(shù)據(jù)),AR為地址寄存器,DR為數(shù)據(jù)緩沖寄存器,ALU由加、減控制信號決定完成何種操作,控制信號G控制的是一個門電路,它相當(dāng)于兩條總線之間的橋。另外,線上標(biāo)注有小圈表示有控制信號,例如yi表示y寄存器的輸入控制信號,R1o為寄存器R1的輸出控制信號。未標(biāo)字符的線為直通線,不受控制。另外,當(dāng)Ri有效時,根據(jù)目的寄存器Rd的編碼決定R0i、R1i、R2i、R3i中哪一個控制信號有效;當(dāng)Ro有效時,根據(jù)源寄存器Rs和目的寄存器Rd的編碼決定R0o、R1o、R2o、R3o中哪一個控制信號有效。
(1)“ADDRs,Rd”指令完成(Rd)+(Rs)→Rd的功能操作,假設(shè)該指令的地址已放入PC中,畫出其指令周期流程圖,并列出相應(yīng)的微操作控制信號序列。
(2)“SUBRs,Rd”指令完成(Rd)-(Rs)→Rd的功能操作,假設(shè)該指令的地址已放入PC中,畫出其指令周期流程圖,并列出相應(yīng)的微操作控制信號序列。圖5.13雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路
解:(1)在圖5.13中,雖說采用雙總線結(jié)構(gòu),但由于A總線和B總線都為單向傳送總線,將B總線上的數(shù)據(jù)傳送到A總線時需經(jīng)過一個門電路,且該門電路受一個節(jié)拍電位信號G
的控制,故每次有數(shù)據(jù)經(jīng)過門電路時都需要一個CPU周期。指令周期包括取指周期和執(zhí)行周期兩個部分,根據(jù)雙總線結(jié)構(gòu)的特點,畫出“ADDRs,Rd”指令的指令周期流程圖如圖5.14(a)所示,圖的右邊標(biāo)注了每一個CPU周期中用到的微操作控制信號序列。
(2)由于是在相同的數(shù)據(jù)通路上完成不同指令解釋的,因此ADD和SUB指令取指周期完成的操作完全相同;由于完成的功能不同,因此它們在執(zhí)行周期完成的操作和所需的微操作控制信號也不相同。根據(jù)雙總線結(jié)構(gòu)的特點,畫出“SUBRs,Rd”指令的指令周期流程圖如圖5.14(b)所示,圖的右邊標(biāo)注了每一個CPU周期中用到的微操作控制信號序列。圖5.14
ADD和SUB指令周期流程圖(a)加法;(b)減法[例5.2]單總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路如圖5.15所示。其中,IR為指令寄存器,PC為程序計數(shù)器,MAR為主存地址寄存器,MDR為主存數(shù)據(jù)緩沖寄存器,R0~Rn-1為n個通用寄存器,Y為ALU的輸入數(shù)據(jù)暫存寄存器,Z為ALU的結(jié)果暫存寄存器,SR為狀態(tài)寄存器。
(1)“ADDRd,Rs1,Rs2”指令的功能是將Rs1和Rs2中的數(shù)據(jù)相加,結(jié)果送入Rd中,畫出其指令周期流程圖。圖5.15單總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路
(2)“LOADRd,mem”指令的功能是執(zhí)行讀存儲器數(shù)據(jù)到Rd,其中mem為內(nèi)存地址值,畫出其指令周期流程圖。
解:(1)根據(jù)單總線結(jié)構(gòu)的特點,畫出“ADDRd,Rs1,Rs2”指令的指令周期流程圖如圖5.16(a)所示。
(2)根據(jù)單總線結(jié)構(gòu)的特點,畫出“LOADRd,mem”指令的指令周期流程圖如圖5.16(b)所示。圖5.16
ADD和LOAD指令周期流程圖(a)加法;
(b)讀存儲器
5.3時序產(chǎn)生器和控制方式
5.3.1時序信號的作用和體制
由上一節(jié)對指令周期和指令解釋過程的學(xué)習(xí)可知,一個指令周期中,每個CPU周期都有一定的持續(xù)時間,各個CPU周期之間有嚴(yán)格的次序。每個CPU周期內(nèi)的各個操作控制信號安排在哪個時鐘脈沖周期,也都有嚴(yán)格的時間順序。我們把各時鐘脈沖周期信號、各CPU周期信號之間產(chǎn)生的時間次序稱為時序。計算機(jī)之所以能夠準(zhǔn)確、迅速、有條不紊地工作,正是因為在CPU中有一個時序產(chǎn)生器專門用來產(chǎn)生各種時序信號。時序信號的作用是為各種操作控制信號提供時間標(biāo)志,即實施時間上的控制。在計算機(jī)的內(nèi)存里存放的既有指令又有數(shù)據(jù),并且指令和數(shù)據(jù)在存儲器中都是以二進(jìn)制編碼的形式來表示的,那么CPU訪存取出一串代碼,是如何來區(qū)分這串代碼是指令還是數(shù)據(jù)呢?由上一節(jié)對指令周期的學(xué)習(xí)我們可以知道,從時間上來看,取指令事件總是發(fā)生在指令周期的第一個CPU周期內(nèi),即發(fā)生在取指周期,而取數(shù)據(jù)事件則發(fā)生在取指周期之后的幾個CPU周期內(nèi),即發(fā)生在執(zhí)行周期。從空間上來看,如果取出的代碼是指令,則一定送往指令寄存器,如果取出的代碼是數(shù)據(jù),則一定送往通用寄存器或地址寄存器。由此可見,時間控制對指令的解釋過程是相當(dāng)重要的。組成計算機(jī)的器件特性決定了時序信號最基本的體制是電位-脈沖制。例如,在寄存器之間傳送數(shù)據(jù)時,數(shù)據(jù)先要加到寄存器的電位輸入端,再將打入數(shù)據(jù)的控制信號加在寄存器的時鐘輸入端。前者稱為電位,后者稱為脈沖。用電位的高低表示信息的“1”或“0”,用脈沖的有無表示控制信號是否出現(xiàn)。電位信號必須在脈沖到來之前先建立并且達(dá)到穩(wěn)定狀態(tài),才能保證數(shù)據(jù)正確打入寄存器。當(dāng)然,計算機(jī)中有些部件,如ALU、三態(tài)門、多路開關(guān)等只用電位信號控制就可以了。在硬連線控制器中,時序信號往往采用主狀態(tài)周期—節(jié)拍電位—節(jié)拍脈沖三級體制。一個主狀態(tài)周期由若干個節(jié)拍電位組成,一個節(jié)拍電位表示一個CPU周期的時間,它包含若干個節(jié)拍脈沖。
在微程序控制器中,時序信號比較簡單,一般采用節(jié)拍電位—節(jié)拍脈沖兩級體制。同樣,一個節(jié)拍電位表示一個CPU周期的時間,它包含若干個節(jié)拍脈沖。5.3.2多級時序系統(tǒng)
1.節(jié)拍電位
節(jié)拍電位可以看做是所有指令執(zhí)行過程中的一個基準(zhǔn)時間,它取決于指令的功能及器件的速度。確定節(jié)拍電位時,通常要分析機(jī)器指令的執(zhí)行步驟及每一步所需的時間。例
如,訪存類指令能反映存儲器的速度及其與CPU的配合情況,運(yùn)算類指令能反映ALU的速度等。通過對機(jī)器指令執(zhí)行步驟的分析發(fā)現(xiàn),機(jī)器內(nèi)的各種操作大致可以歸屬為對CPU內(nèi)部的操作和對主存的操作兩大類。由于CPU內(nèi)部的操作速度較快,CPU訪存的操作時間較長,因此通常將訪問一次存儲器的時間定為基準(zhǔn)時間較為合理,這個基準(zhǔn)時間就是節(jié)拍電位,一個節(jié)拍電位等于一個CPU周期。又由于不論執(zhí)行什么指令,都需要訪存取指令,因此在存儲器字長等于指令字長的前提下,取指周期通常設(shè)計為一個節(jié)拍電位。由于取指操作過程與CPU內(nèi)部的數(shù)據(jù)通路有關(guān),在一些CPU結(jié)構(gòu)簡單的機(jī)器中,取指周期也有可能占用多個節(jié)拍電位。
2.節(jié)拍脈沖
節(jié)拍脈沖指的是節(jié)拍電位內(nèi)的控制脈沖,對應(yīng)了最基本的定時信號。在一個節(jié)拍電位的時間內(nèi)可完成若干個操作,每個操作都需要一定的時間并且存在著先后次序,采用節(jié)拍脈沖可實現(xiàn)對同一節(jié)拍電位內(nèi)不同操作的時序控制。這樣,一個節(jié)拍電位內(nèi)就包含了若干個節(jié)拍脈沖,每個節(jié)拍脈沖的寬度正好對應(yīng)于一個時鐘周期。在每個節(jié)拍脈沖內(nèi)機(jī)器可完成一個或幾個需同時執(zhí)行的操作。
3.多級時序系統(tǒng)的組成
從指令的執(zhí)行過程來看,實現(xiàn)時序控制所需的時序信號,主要包含節(jié)拍電位和節(jié)拍脈沖,它們組成了中央處理器的時序系統(tǒng)。
圖5.17給出了由節(jié)拍電位M1~M3、節(jié)拍脈沖T1~T4組成的多級時序系統(tǒng)示意圖。該時序系統(tǒng)體現(xiàn)了電位—脈沖體制,是一個同步時序系統(tǒng)。該時序系統(tǒng)反映了指令周期、節(jié)拍電位、節(jié)拍脈沖和時鐘周期的關(guān)系。由圖可見,一個指令周期包含若干個節(jié)拍電位,一個節(jié)拍電位又包含若干個節(jié)拍脈沖,一個節(jié)拍脈沖對應(yīng)于一個時鐘周期。在時序系統(tǒng)設(shè)計時,每個指令周期內(nèi)的節(jié)拍電位數(shù)可以不相等,每個節(jié)拍電位內(nèi)的節(jié)拍脈沖數(shù)也可以不相等。圖5.17多級時序系統(tǒng)示意圖5.3.3時序信號產(chǎn)生器
時序信號產(chǎn)生器用于產(chǎn)生多級時序系統(tǒng)中需要的時序信號。各種計算機(jī)的時序信號產(chǎn)生器電路不盡相同。一般來說,大型計算機(jī)的時序電路比較復(fù)雜,而微型機(jī)的時序電路比較簡單,這是因為前者涉及的操作動作較多,而后者涉及的操作動作較少。從設(shè)計操作控制器的方法來講,硬連線控制器的時序電路比較復(fù)雜,而微程序控制器的時序電路比較簡單。然而不管是哪一類,時序信號產(chǎn)生器最基本的構(gòu)成和設(shè)計原理都是一樣的。圖5.18所示為微程序控制器中使用的時序信號產(chǎn)生器的結(jié)構(gòu)圖(兩種方案),它由時鐘源、節(jié)拍脈沖信號發(fā)生器和啟停控制邏輯組成。
1.時鐘源
時鐘源用來為節(jié)拍脈沖信號發(fā)生器提供頻率穩(wěn)定且電平匹配的方波時鐘脈沖信號。該時鐘脈沖信號作為整個機(jī)器的基準(zhǔn)時序脈沖(也稱為機(jī)器的主脈沖)。時鐘源通常由石英晶體振蕩器和由與非門組成的正反饋振蕩電路組成,其輸出送至節(jié)拍脈沖信號發(fā)生器。圖5.18時序信號產(chǎn)生器的結(jié)構(gòu)圖(兩種方案)
2.節(jié)拍脈沖信號發(fā)生器
節(jié)拍脈沖信號發(fā)生器的主要功能是按時間先后次序,周而復(fù)始地發(fā)出各個CPU周期內(nèi)的節(jié)拍脈沖信號,用來控制計算機(jī)完成某一個CPU周期內(nèi)的每一步操作。
節(jié)拍脈沖信號發(fā)生器有兩種組成方式:一種是采用循環(huán)移位寄存器,如圖5.19(a)所示;一種是采用計數(shù)器和譯碼器,如圖5.19(b)所示。圖5.19節(jié)拍脈沖信號發(fā)生器的兩種組成方式(a)循環(huán)移位寄存器;(b)計數(shù)器和譯碼器在圖5.19(a)所示的循環(huán)移位寄存器中,開始時由CLR將移位寄存器置為0001,然后在時鐘信號CLK的作用下按0001→0010→0100→1000→0001→0010→…的規(guī)律依次變化,
輸出節(jié)拍脈沖信號T1、T2、T3、T4。
在圖5.19(b)所示的線路中,開始時由CLR將兩位計數(shù)器清為00,然后在時鐘信號CLK的作用下按00→01→10→11→00→01→…的規(guī)律進(jìn)行模4計數(shù),經(jīng)2∶4譯碼器譯碼后,輸出T1、T2、T3、T4。在進(jìn)行硬連線控制器的時序信號產(chǎn)生器設(shè)計時,除了產(chǎn)生節(jié)拍脈沖信號外,還應(yīng)產(chǎn)生節(jié)拍電位信號。節(jié)拍脈沖信號發(fā)生器和節(jié)拍電位信號發(fā)生器的設(shè)計原理是相似的,不同之處在于,一般一個節(jié)拍電位內(nèi)包含的節(jié)拍脈沖周期數(shù)是相同的,而一個指令周期內(nèi)包含的節(jié)拍電位數(shù)不一定相同。為提高指令解釋的速度,在硬連線控制器設(shè)計時,由一個邏輯電路根據(jù)不同指令在不同的時刻產(chǎn)生一個結(jié)束指令周期的END信號,時序信號產(chǎn)生器得到這個信號后重新開始一個脈沖信號序列。
3.啟??刂七壿?/p>
計算機(jī)加電后,立即產(chǎn)生一定頻率的主脈沖,但這并不意味著計算機(jī)已經(jīng)開始工作。必須根據(jù)計算機(jī)的需要,在啟??刂七壿嫷目刂葡驴煽康亻_放或封鎖脈沖,以保證節(jié)拍電位信號和節(jié)拍脈沖信號的完整性,實現(xiàn)對計算機(jī)安全可靠的啟動和停機(jī)。即當(dāng)計算機(jī)啟動時,一定要從第一個節(jié)拍脈沖的上邊沿開始工作,而在停機(jī)時一定要在第四個節(jié)拍脈沖的下邊沿關(guān)閉時序產(chǎn)生器。啟停控制邏輯由觸發(fā)器和“與非”門組成,它對節(jié)拍脈沖信號發(fā)生器的控制有兩種方案,如圖5.18所示。
采用圖5.18(a)方案時,機(jī)器上電后由時鐘源只產(chǎn)生主時鐘,節(jié)拍脈沖信號發(fā)生器不工作,待啟??刂七壿嬘行C(jī)器啟動后,節(jié)拍脈沖信號發(fā)生器才開始工作。
采用圖5.18(b)方案時,機(jī)器上電后由時鐘源立即產(chǎn)生主時鐘和節(jié)拍脈沖信號,但是它們并不能控制機(jī)器開始工作,待啟??刂七壿嬘行Ш螅拍墚a(chǎn)生控制機(jī)器操作的節(jié)拍脈沖信號。5.3.4控制方式
控制器控制一條指令運(yùn)行的過程是依次執(zhí)行一個確定的操作序列的過程,無論在微程序控制還是硬連線控制計算機(jī)中都是這樣。由于不同指令的功能不同,指令周期中所包含的CPU周期個數(shù)也不相同。不同的CPU周期完成不同的操作功能,需要的操作控制信號及總的個數(shù)也不相同。即使是在同一個CPU周期內(nèi),操作控制信號出現(xiàn)的時間也不盡相同。形成控制不同操作序列時序信號的方法,稱為控制器的控制方式,常用的有同步控制方式、異步控制方式、聯(lián)合控制方式和人工控制方式四種。
1.同步控制方式
同步控制方式又稱為固定時序方式。其基本思想是,選取部件中最長的操作時間作為統(tǒng)一的CPU周期時間,使所有的部件都能在一個CPU周期內(nèi)啟動并完成操作,同時,以最復(fù)雜指令所需的CPU周期數(shù)為標(biāo)準(zhǔn)作為所有指令的解釋時間。即指令系統(tǒng)中所有指令的解釋具有相同的CPU周期數(shù)和時鐘周期數(shù)。例如,對于指令的執(zhí)行周期來說,如果各種指令在執(zhí)行周期的操作序列事先能準(zhǔn)確地知道,則可將其中執(zhí)行時間最長的指令作為標(biāo)準(zhǔn),確定執(zhí)行周期所需的CPU周期數(shù),所有其他指令都按這個統(tǒng)一的時間間隔安排它們的操作。又例如,選取存儲器的工作周期作為標(biāo)準(zhǔn)時間間隔,即一個CPU周期,這樣,不同指令的執(zhí)行周期中每個CPU周期的時間長短也是完全相同的。
同步控制方式的優(yōu)點是時序關(guān)系比較簡單,控制器設(shè)計方便;缺點是對于那些功能比較簡單的指令,將造成時間浪費(fèi)。
前面講到一條機(jī)器指令由確定的CPU周期(例如LAD和STO指令為3個CPU周期,ADD、INC、DEC和JMP指令為2個CPU周期)組成,每個CPU周期又分成4個節(jié)拍脈沖,在頻率固定的外部時鐘脈沖作用下形成上述CPU周期和節(jié)拍脈沖周期。若采用同步控制方式,則所有指令的指令周期均固定為3個CPU周期,每個CPU周期為4個節(jié)拍脈沖周期。
2.異步控制方式
異步控制方式又稱為可變時序控制方式,其基本思想是,系統(tǒng)不設(shè)立統(tǒng)一的CPU周期數(shù)和時鐘周期數(shù),各部件按本身的速度需要占用時間。其特點是:當(dāng)控制器發(fā)出進(jìn)行某一操作的控制信號后,等待執(zhí)行部件完成該操作后發(fā)回的“回答”信號或“結(jié)束”信號,再開始新的操作。用這種方式所形成的操作序列沒有固定的周期節(jié)拍和嚴(yán)格的時鐘同步。
異步控制方式的優(yōu)點是每個部件都按各自實際需要的時間工作,沒有快者等待慢者的過程,從而提高了系統(tǒng)的速度;缺點是異步控制方式的時序控制比較復(fù)雜。
3.聯(lián)合控制方式
聯(lián)合控制方式是同步控制方式和異步控制方式相結(jié)合的方式。在指令執(zhí)行的時序控制中,對大多數(shù)需要CPU周期數(shù)相近的指令,用相同的CPU周期數(shù)來完成,即采用同步控制;而對少數(shù)需要CPU周期數(shù)多的指令或一個CPU周期內(nèi)節(jié)拍脈沖周期數(shù)不固定的指令,給予必要的延長,即采用異步控制。由于異步控制只針對少數(shù)指令,是局部性的,故聯(lián)合控制方式又稱為局部性異步控制方式。實現(xiàn)局部性異步控制的方法有:①各條指令的CPU周期數(shù)固定,但是一個CPU周期內(nèi)的節(jié)拍脈沖周期數(shù)不固定。對于需要延長CPU周期的操作,可以插入一個或多個節(jié)拍脈沖周期,并回送“回答”信號作為本次操作的結(jié)束。
②一個CPU周期內(nèi)的節(jié)拍脈沖周期數(shù)固定,但是各條指令的CPU周期數(shù)不固定。例如下一節(jié)所講的微程序控制就
屬于這一類控制方式。大多數(shù)的計算機(jī)都采用同步控制與異步控制相結(jié)合的聯(lián)合控制方式。
4.人工控制方式
為了調(diào)試計算機(jī)硬件和軟件開發(fā)的需要,通常在機(jī)器面板或內(nèi)部設(shè)置一些開關(guān)或按鍵,來達(dá)到人工控制的目的,此方式稱為人工控制方式。最常見的有reset鍵(復(fù)位鍵)、連續(xù)執(zhí)行或單條指令執(zhí)行轉(zhuǎn)換開關(guān)、符合停機(jī)開關(guān)等。
(1)reset鍵。按下reset鍵,使計算機(jī)處于初始狀態(tài)。當(dāng)機(jī)器出現(xiàn)死鎖狀態(tài)或無法繼續(xù)運(yùn)行時,可按此鍵。若在機(jī)器正常運(yùn)行時按此鍵,將會破壞機(jī)器內(nèi)某些狀態(tài)而引起錯誤,因此要慎用。有些微機(jī)沒有設(shè)置此鍵,當(dāng)機(jī)器死鎖時,往往采用先停電再加電的方法重新啟動計算機(jī)。
(2)連續(xù)執(zhí)行或單條指令執(zhí)行轉(zhuǎn)換開關(guān)。
由于調(diào)試計算機(jī)硬件或程序的需要,有時需要觀察每執(zhí)行完一條指令后機(jī)器的狀態(tài),有時又需要觀察連續(xù)運(yùn)行程序的結(jié)果。設(shè)置連續(xù)或單條指令執(zhí)行轉(zhuǎn)換開關(guān),能為用戶提供兩種不同的選擇。
(3)符合停機(jī)開關(guān)。
有些計算機(jī)還配有符合停機(jī)開關(guān),這組開關(guān)指示存儲器的位置,當(dāng)程序運(yùn)行到與開關(guān)指示的地址相符時,機(jī)器便停止運(yùn)行,稱為符合停機(jī)。5.4微程序控制器
微程序控制的概念,是在1951年由英國劍橋大學(xué)的M.V.Wilkes教授首先提出來的。其基本思想是,把操作控制信號編成所謂的“微指令”,存放到一個只讀存儲器里。當(dāng)機(jī)器運(yùn)行時,一條又一條地讀出這些微指令,從而產(chǎn)生全機(jī)所需要的各種操作控制信號,控制相應(yīng)的執(zhí)行部件完成規(guī)定的操作。
微程序控制器同硬連線控制器相比較,具有規(guī)整性、靈活性、可維護(hù)性等一系列優(yōu)點,因而在計算機(jī)設(shè)計中得到了廣泛的應(yīng)用。5.4.1微指令和微程序
1.微命令和微操作
一臺數(shù)字計算機(jī)基本上可以劃分為兩大部分,即控制部件和執(zhí)行部件。操作控制器屬于控制部件,而運(yùn)算器、各類寄存器、存儲器、外圍設(shè)備相對操作控制器來說,屬于執(zhí)行部件。
控制部件與執(zhí)行部件的聯(lián)系有兩種,一種是通過控制線,另外一種是通過狀態(tài)線。
我們把控制部件通過控制線發(fā)往執(zhí)行部件的各種控制命令,稱為微命令。而執(zhí)行部件在微命令的控制下所進(jìn)行的操作,稱為微操作。執(zhí)行部件通過狀態(tài)線向控制部件反饋執(zhí)行部件的操作結(jié)果狀態(tài)和工作狀態(tài),以便控制部件能根據(jù)執(zhí)行部件的狀態(tài)產(chǎn)生新的微命令,這個過程稱為狀態(tài)測試。
由微命令和微操作的定義可以看出,微命令屬于一個控制信號,而微操作則是對應(yīng)的一個動作。下面在介紹微操作時,為方便描述,直接用控制信號來表示相應(yīng)的微操作。
微操作在執(zhí)行部件中是最基本的操作,由于數(shù)據(jù)通路的結(jié)構(gòu)關(guān)系,微操作可分為相容性和相斥性兩種。所謂相容性的微操作,是指同時或在同一個CPU周期內(nèi)可以并行執(zhí)行的微操作。所謂相斥性的微操作,是指不能同時或不能在同一個CPU周期內(nèi)并行執(zhí)行的微操作。圖5.20示出了一個模型機(jī)的運(yùn)算器數(shù)據(jù)通路。圖中,ALU為算術(shù)邏輯運(yùn)算單元,S2、S1、S0為ALU的操作控制信號,控制ALU最多可實現(xiàn)八種不同的運(yùn)算或操作。運(yùn)算器采用三數(shù)據(jù)總線結(jié)構(gòu),其中X總線和Y總線為輸入總線,ALU的輸出在控制信號ALU_B的控制下經(jīng)三態(tài)門送往數(shù)據(jù)總線DBUS,X總線上的內(nèi)容還可以通過總線旁路器(三態(tài)門)在控制信號Rs_B的控制下經(jīng)三態(tài)門直接送往數(shù)據(jù)總線DBUS。R0、R1、R2、R3為四個通用寄存器,既可作源寄存器
使用,也可同時作為目的寄存器使用。圖5.20模型機(jī)的運(yùn)算器數(shù)據(jù)通路圖源寄存器在指令格式中源寄存器Rs編碼I11、I10的控
制下經(jīng)四選一多路開關(guān)輸出到ALU的X總線或再經(jīng)三態(tài)門輸出到DBUS,目的寄存器在指令格式中目的寄存器Rd編
碼I9、I8的控制下經(jīng)四選一多路開關(guān)輸出到ALU的Y總線??刂菩盘朙DRi用來控制將數(shù)據(jù)總線DBUS上的數(shù)據(jù)打入通用寄存器,具體打入到哪一個通用寄存器,由指令格式中目的寄
存器Rd編碼I9、I8決定。在進(jìn)行算術(shù)或邏輯運(yùn)算時,若需要鎖存運(yùn)算的結(jié)果狀態(tài),則在控制信號LDPSW的控制下,將ALU的結(jié)果狀態(tài)鎖存到狀態(tài)字寄存器中。由于控制信號S2、S1、S0的組合決定了ALU完成的具體操作,雖然在一個CPU周期內(nèi)只能進(jìn)行一種功能的操作,即S2、S1、S0只能有一種組合,但S2、S1、S0的取值不受限制,如沒有限定S2、S1、S0中只能有一個為0或只能有一個為1,因此S2、S1、S0是相容性的微操作。ALU的結(jié)果在控制信號ALU_B的控制下輸出到DBUS后,再在控制信號LDRi的控制下打入到通用寄存器,雖說這兩個微操作不能同時完成,但從運(yùn)算器數(shù)據(jù)通路圖來看,在一個CPU周期內(nèi),可在不同的節(jié)拍脈沖周期內(nèi)完成,因此ALU_B、LDRi是相容性微操作。由于在同一個CPU周期內(nèi),不能同時將不同的數(shù)據(jù)送往數(shù)據(jù)總線DBUS,因此ALU_B和Rs_B是互斥性微操作。
2.微指令和微程序
在機(jī)器的一個CPU周期內(nèi),一組實現(xiàn)一定操作功能的微命令的組合,構(gòu)成一條微指令。
也就是說,在一個CPU周期內(nèi)完成的操作功能由一條微指令來實現(xiàn)。
圖5.21給出了一個具體的微指令格式。微指令字長為24位,它由操作控制字段和順序控制字段兩大部分組成。順序控制字段又由P字段和直接微地址兩部分組成。圖5.21微指令基本格式操作控制字段用來發(fā)出管理和指揮全機(jī)工作的控制信號,為了形象直觀,在圖5.21所示的微指令基本格式中,該字段為16位,每一位表示一個微命令,每個微命令的符號同圖
5.1所示的CPU結(jié)構(gòu)中的控制信號相對應(yīng),具體功能示于微指令格式的上部。微指令格式中給出的微命令都是節(jié)拍電位信號,它們的持續(xù)時間都是一個CPU周期。微命令符號中加有
“′”的微命令表示該控制信號的輸出需與節(jié)拍脈沖經(jīng)過“與門”或“與非門”后,才能作為真正的節(jié)拍脈沖控制信號來控制時序邏輯部件。例如通用寄存器的時鐘控制信號LDRi必須等到數(shù)據(jù)總線DBUS上的數(shù)據(jù)穩(wěn)定后,才能出現(xiàn)上邊沿,將指令格式中的立即數(shù)、數(shù)據(jù)Cache的輸出數(shù)據(jù)、通用寄存器的輸出或ALU的輸出打入到某一通用寄存器,其時間關(guān)系如圖5.22所示。微命令符號中沒有加“′”的微命令表示該控制信號的輸出直接作為真正的控制信號,來控制組合邏輯部件。圖5.22通用寄存器時鐘控制信號的產(chǎn)生時序操作控制字段中用來控制時序邏輯電路的微命令中,LDPC′、LDAR′、LDIR′、LDR′i、LDPSW′為高電平有效。用來控制存儲器讀/寫的微命令中,片選信號CS_I′、CS_D′為低電平有效。微命令中讀/寫信號RD_D′、RD_I′為高電平時表示讀,低電平時表示寫。其他微命令均為節(jié)拍電位信號,這些微命令到底是高電平有效,還是低電平有效,或者是某種組合,則根據(jù)具體部件內(nèi)部的設(shè)計來確定。為了教學(xué)的目的,我們假定程序計數(shù)器PC的功能如表5.3所示,ALU的功能如表5.4所示,節(jié)拍電位信號ALU_B、Rs_B、ADDR_B均為低電平有效。
在5.2節(jié)中,利用圖5.1解釋一條STO指令需要3個CPU周期,這就意味著用微指令來解釋這條機(jī)器指令時,共需要3條微指令。這3條微指令按照一定的次序執(zhí)行,就可以解釋
按照STO指令格式編寫的具體指令的功能。對于如“STOR1,10”、“STOR0,20”、“STOR2,30”等指令,其解釋過程和所需的控制信號完全相同。由此我們可以看到一條機(jī)器指令的功能是由若干條微指令組成的序列來實現(xiàn)的,這個微指令序列通常叫微程序。實現(xiàn)一條機(jī)器指令功能的微指令序列中,各微指令的執(zhí)行有嚴(yán)格的先后次序。當(dāng)執(zhí)行當(dāng)前一條微指令時,必須給出后繼微指令的微地址,以便當(dāng)前微指令執(zhí)行完畢后,取出下一條微指令。
確定后繼微指令微地址的方法主要有計數(shù)器方式和多路轉(zhuǎn)移方式兩種,具體將在5.5節(jié)中作詳細(xì)介紹。圖5.21所舉的微指令格式為全水平型微指令,后繼微地址的形成方法采用多路轉(zhuǎn)移方式,后繼微地址由微指令格式中的順序控制字段,即P字段和直接微地址來決定。其中6位直接微地址用來直接給出下一條微指令的微地址。P字段中的P1和P2為判別測試標(biāo)志:當(dāng)P1、P2均為“0”時,表示不進(jìn)行測試操作,直接微地址字段給出的地址就是下一條微指令的微地址;當(dāng)P1或P2為“1”時,表示要進(jìn)行P1或P2的判別測試,根據(jù)測試結(jié)果,需要對直接微地址的某一位或幾位進(jìn)行修改,然后再按修改后的微地址取下一條微指令。5.4.2微程序控制器的組成和工作原理
1.微程序控制器的組成
微程序控制器的組成框圖如圖5.23所示,它主要由控制存儲器、微指令寄存器和地址轉(zhuǎn)移邏輯三大部分組成,其中微指令寄存器分為微地址寄存器和微命令寄存器兩部分。
控制存儲器簡稱控存,用來存放實現(xiàn)全部指令系統(tǒng)的所有微程序,它是一種只讀型存儲器。一旦微程序固化,機(jī)器運(yùn)行時則只能讀不能寫。控制存儲器的字長就是微指令字的長度,其存儲容量視機(jī)器指令系統(tǒng)而定,即取決于微程序的數(shù)量。對控制存儲器的要求是速度快,讀出周期要短。微指令寄存器用來存放由控制存儲器讀出的一條微指令信息,其中,微地址寄存器決定將要訪問的下一條微指令的微地址,而微命令寄存器則保存一條微指令的操作控制字段和判別測試字段的信息。
當(dāng)P字段的取值不全為0,即需要進(jìn)行判別或測試時,地址轉(zhuǎn)移邏輯電路根據(jù)指令的操作碼OP、尋址方式X、執(zhí)行部件的“狀態(tài)條件”反饋信息,去強(qiáng)制修改微地址寄存器的內(nèi)容,并按修改好的微地址去讀取下一條微指令,從而實現(xiàn)微程序的分支。圖5.23微程序控制器的組成框圖
2.CPU周期與微指令周期的關(guān)系
在串行方式的微程序控制器中,讀出一條微指令并執(zhí)行完該條微指令所花的時間稱為一個微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是控制存儲器的工作周期。為了保證整個機(jī)器控制信號的同步,可以將一個微指令周期時間設(shè)計得恰好和一個CPU周期時間相等,如圖5.24所示。
在圖5.24中,一個CPU周期包含T1、T2、T3、T4共四個節(jié)拍脈沖周期,在T4內(nèi)形成微指令的微地址并讀取微指令,并在T1的上邊沿將微指令打入微指令寄存器,在T1、T2、T3內(nèi)執(zhí)行該條微指令,并可利用T4的上邊沿將結(jié)果打入通用寄存器或狀態(tài)字寄存器中。圖5.24
CPU周期與微指令周期的關(guān)系
3.微程序控制器的工作原理
串行方式的微程序控制器的工作原理如圖5.25所示。計算機(jī)開機(jī)時,通過硬件,一方面設(shè)置程序計數(shù)器PC的初值,另一方面設(shè)置微地址寄存器的初值。PC的初值為系統(tǒng)初始化程序中第一條指令在ROMBIOS中的地址,微地址寄存器的初值為取指微指令在控制存儲器中的微地址。微地址寄存器的內(nèi)容經(jīng)地址譯碼后選中控制存儲器的某一存儲單元,從控制存儲器中讀出一條微指令,這條微指令便是取指微指令。取指微指令的操作控制字段和P字段被送往微命令寄存器,在接下來的一個CPU周期內(nèi)根據(jù)操作控制字段輸出的微命令信號,控制執(zhí)行部件完成取指操作。圖5.25微程序控制器的工作原理取指過程為PC的內(nèi)容經(jīng)地址譯碼后選中指令Cache、二級Cache或主存儲器中的某一存儲單元,并將從內(nèi)存中取出的指令代碼送往指令寄存器IR,同時PC加1,形成下一條指令在內(nèi)存中的地址。取指微指令的直接微地址字段被送往微地址寄存器,由于微指令完成的是取指操作,不同的指令要實現(xiàn)不同的功能,需用不同的微程序來解釋,因此在進(jìn)行取指微指令設(shè)計時,P字段中包含有對指令操作碼測試的編碼。在執(zhí)行該條微指令的最后一個T周期到來時,根據(jù)P字段和指令的操作碼經(jīng)地址轉(zhuǎn)移邏輯電路強(qiáng)制修改微地址寄存器的內(nèi)容,從而實現(xiàn)微程序的分支。不同的指令操作碼將形成不同的分支微地址。接著又按修改后的微地址從控制存儲器中讀取下一條微指令,又執(zhí)行這一條微指令。當(dāng)讀出的微指令中P字段的取值不全為0時,地址轉(zhuǎn)移邏輯電路根據(jù)指令的尋址方式、執(zhí)行部
件的“狀態(tài)條件”反饋信息,強(qiáng)制修改微地址寄存器的內(nèi)容,并按修改好的微地址從控制存儲器中讀下一條微指令。當(dāng)讀出的微指令中P字段的取值為全0,即不需要進(jìn)行任何判別或
測試時,直接根據(jù)微地址寄存器的內(nèi)容,即當(dāng)前微指令的直接微地址去讀下一條微指令。當(dāng)實現(xiàn)一條機(jī)器指令功能的微程序執(zhí)行完畢后,又返回取指微指令,如此反復(fù)。
由微程序的工作原理,我們可以發(fā)現(xiàn)機(jī)器指令與微指令之間存在如下關(guān)系:
(1)一條機(jī)器指令的功能由若干條微指令組成的序列來實現(xiàn)。
(2)機(jī)器指令存放在內(nèi)存儲器中,微指令固化在控制存儲器中。
(3)每一個CPU周期對應(yīng)一條微指令。5.4.3微程序設(shè)計舉例
一條機(jī)器指令是由若干條微指令組成的序列來實現(xiàn)的,即由一段微程序來解釋一條機(jī)器指令
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 23001-17:2024/AMD1:2025 EN Information technology - MPEG systems technologies - Part 17: Carriage of uncompressed video and images in ISO base media file format - Am
- 【正版授權(quán)】 ISO 37114:2025 EN Sustainable cities and communities - Appraisal framework for datasets and data processing methods that create urban management information
- 【正版授權(quán)】 ISO 22932-8:2025 EN Mining - Vocabulary - Part 8: Extraction
- 【正版授權(quán)】 ISO 10545-23:2025 EN Ceramic tiles - Part 23: Determination of elastic modulus for glazed and unglazed ceramic tiles,substrate and glaze layer
- 【正版授權(quán)】 ISO 12231-1:2025 EN Digital imaging - Vocabulary - Part 1: Fundamental terms
- 【正版授權(quán)】 IEC 60245-5:1994 FR-D Rubber insulated cables - Rated voltages up to and including 450/750 V - Part 5: Lift cables
- GB/T 19851.12-2025中小學(xué)體育器材和場地第12部分:學(xué)生體質(zhì)健康測試器材
- 校園防病安全知識培訓(xùn)課件
- 北侖駕校理論知識培訓(xùn)課件
- 護(hù)理常規(guī)應(yīng)聘考試試題及答案
- 醫(yī)院安保課件
- 文印員考試題庫及答案
- 2025年涂料行業(yè)研究報告及未來發(fā)展趨勢預(yù)測
- 2025河北唐山某國有企業(yè)單位招聘勞務(wù)派遣工作人員44人筆試參考題庫附帶答案詳解(10套)
- 留疆戰(zhàn)士考試題庫及答案
- 班主任與家長溝通課件
- 賞識你的學(xué)生
- 哲學(xué)導(dǎo)論(完整版)
- 合成孔徑雷達(dá)
- 北師大版數(shù)學(xué)四年級下冊全冊教案設(shè)計
- 漢語拼音發(fā)音表(適合初學(xué)者和老年人)
評論
0/150
提交評論