計(jì)算機(jī)組成原理-第8章教材_第1頁
計(jì)算機(jī)組成原理-第8章教材_第2頁
計(jì)算機(jī)組成原理-第8章教材_第3頁
計(jì)算機(jī)組成原理-第8章教材_第4頁
計(jì)算機(jī)組成原理-第8章教材_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第8章

控制單元的設(shè)計(jì)本章導(dǎo)讀本章介紹控制單元的設(shè)計(jì)技術(shù),包括硬布線和微程序兩種基本設(shè)計(jì)方法。硬布線部分的內(nèi)容包括硬布線控制的基本方法,硬布線控制器的基本組成,硬布線控制器的設(shè)計(jì)等。微程序部分的內(nèi)容包括微程序控制的基本思想,微程序、微指令、控存等概念,微指令的編碼方法、尋址方法及執(zhí)行方式等。本章要點(diǎn)控制器的工作原理硬布線控制器微程序、微指令和微命令微指令的編碼方式微地址的形成方式8.1硬布線控制器設(shè)計(jì)8.1.1硬布線控制的基本方法8.1.2硬布線控制器的組成8.1.3硬布線控制器的設(shè)計(jì)前面已經(jīng)討論了控制單元的組成模型,并結(jié)合具體的機(jī)器模型討論了指令的執(zhí)行過程。指令執(zhí)行需要一系列的微控制信號,這些微操作序列怎樣產(chǎn)生,又如何控制執(zhí)行指令,是本章要討論的控制單元的實(shí)現(xiàn)問題。產(chǎn)生控制信號一般有硬布線控制和微程序控制兩種方法,在此基于非流水的簡單機(jī)器模型來討論這兩種控制器設(shè)計(jì)的基本方法。硬布線方法的控制單元本質(zhì)上是一個(gè)組合邏輯電路,所以又稱為組合邏輯控制方式,它能將輸入邏輯信號轉(zhuǎn)換成一組輸出控制信號。8.1.1硬布線控制的基本方法硬布線控制是早期推出的設(shè)計(jì)計(jì)算機(jī)的一種方法。這種方法把控制部件作為專門產(chǎn)生固定時(shí)序控制信號的邏輯電路,而此邏輯電路則以使用最少元件和取得最高操作速度為設(shè)計(jì)目標(biāo)。因?yàn)樵撨壿嬰娐肥怯砷T電路和觸發(fā)器構(gòu)成的復(fù)雜樹形網(wǎng)絡(luò),所以又稱為組合邏輯控制器。當(dāng)執(zhí)行不同的機(jī)器指令時(shí),硬布線控制器是通過激勵(lì)一系列彼此很不相同的控制信號來實(shí)現(xiàn)對指令的解釋,其結(jié)果使控制器的結(jié)構(gòu)很復(fù)雜,因而硬布線控制器的設(shè)計(jì)和調(diào)試也非常復(fù)雜。為此,硬布線控制器曾被微程序控制器取代。但在同樣的半導(dǎo)體工藝條件下,硬布線控制速度要比微程序控制速度快,隨著VLSI技術(shù)的發(fā)展及計(jì)算機(jī)技術(shù)的不斷進(jìn)步,組合邏輯設(shè)計(jì)思想又受到了人們的高度重視,特別在RISC體系結(jié)構(gòu)的計(jì)算機(jī)中,多采用硬布線控制邏輯。8.1.2硬布線控制器的組成圖8-1是硬布線控制的控制器組成框圖,主要有程序計(jì)數(shù)器、組合邏輯電路、指令寄存器和指令譯碼器、時(shí)序發(fā)生器等部件組成。其中,組合邏輯電路產(chǎn)生計(jì)算機(jī)所需的全部操作命令,是控制器的核心。圖8-1硬布線控制器框圖(1)程序計(jì)數(shù)器和中斷控制邏輯圖中的程序計(jì)數(shù)器的輸入有四種來源:開機(jī)后的Reset信號,將PC置以初始地址;當(dāng)順序執(zhí)行程序時(shí),由PC+1形成下一條指令的地址;當(dāng)程序轉(zhuǎn)移時(shí),由ALU送來轉(zhuǎn)移地址(當(dāng)用ALU部件計(jì)算有效地址時(shí));當(dāng)有外來中斷請求信號時(shí),若CPU響應(yīng)中斷,則由中斷控制邏輯部件產(chǎn)生中斷服務(wù)程序入口地址。(2)譯碼器如操作碼為7位,則允許計(jì)算機(jī)最多設(shè)置128條指令,譯碼器的最基本形式為:以7位操作碼為輸入,在輸出的128條線中,任何時(shí)候只能有1根為高電平,其余均為低電平(或只有1根為低電平,其余均為高電平),每1根輸出線代表一條指令。但實(shí)際的設(shè)計(jì)中,譯碼器與硬布線邏輯的分界線往往是模糊的,這是因?yàn)閮烧叨际怯勺罨镜拈T電路組成的。(3)時(shí)序電路在前面的指令執(zhí)行分析中,可以把一個(gè)指令周期分成幾個(gè)機(jī)器周期,如加法指令的執(zhí)行分成4個(gè)機(jī)器周期,在硬布線控制中如何區(qū)分這4個(gè)機(jī)器周期呢?可以考慮用4位觸發(fā)器來分別表示,當(dāng)機(jī)器處于某一周期時(shí),相應(yīng)的觸發(fā)器處于“1”狀態(tài),而其余3個(gè)觸發(fā)器則處于“0”狀態(tài),4位移位寄存器即可實(shí)現(xiàn)此功能。設(shè)以cy1,cy2,cy3,cy4分別表示四個(gè)機(jī)器周期,在初始化(reset)時(shí),令cy1=1,其余均處于“0”狀態(tài),即機(jī)器處于取指周期,然后實(shí)現(xiàn)循環(huán)移位,可保證4個(gè)觸發(fā)器中有一位且僅有一位處于“1”狀態(tài),分別表示指令執(zhí)行的后繼周期。然而由于每條指令的功能不同,所以需要的機(jī)器周期數(shù)可能就不相同。如某些指令可能缺少某個(gè)周期而有些復(fù)雜指令的某個(gè)周期則需要延長。此時(shí)需根據(jù)指令功能列出所有指令的機(jī)器周期變化規(guī)律,將情況相同的指令歸為一類,最后歸納出幾種情況,然后列出表達(dá)式,設(shè)計(jì)相應(yīng)的周期變化時(shí)序電路。(4)組合邏輯電路圖中組合邏輯電路的輸入信號有三個(gè)來源:①、來自指令操作碼譯碼器的輸出,譯碼器每根輸出線表示一條指令,譯碼器的輸出反映出當(dāng)前正在執(zhí)行的是什么指令。②、來自執(zhí)行部件的反饋信息。③、來自時(shí)序發(fā)生器的時(shí)序信號,包括機(jī)器周期信號和時(shí)鐘周期信號等。組合邏輯電路的輸出信號就是微操作控制信號,用來控制執(zhí)行部件。還有一些信號則根據(jù)條件變量來改變時(shí)序發(fā)生器的計(jì)數(shù)順序,以便跳過某些機(jī)器周期。組合邏輯電路可歸納為:某一微操作控制信號C是指令操作碼譯碼器輸出I、機(jī)器周期信號cy和狀態(tài)條件信號B的函數(shù)。其數(shù)學(xué)描述為:C=f(I,cy,B)該控制信號C是用許多門電路器件采用組合邏輯設(shè)計(jì)方法實(shí)現(xiàn)的。當(dāng)機(jī)器加電工作時(shí),某一操作控制信號C在某條特定指令和狀態(tài)條件下,在某一序列的特定機(jī)器周期中起作用,從而激勵(lì)這條控制信號線對執(zhí)行部件進(jìn)行控制。顯然,從指令流程圖出發(fā),就可以一個(gè)不漏地確定在指令周期中各個(gè)時(shí)刻必須激勵(lì)的所有操作控制信號。8.1.3硬布線控制器的設(shè)計(jì)按照先后次序,硬布線控制器的基本設(shè)計(jì)過程為:(1)采用適宜的指令格式,合理分配指令操作碼設(shè)計(jì)計(jì)算機(jī)要先考慮指令系統(tǒng)應(yīng)實(shí)現(xiàn)什么功能,需要設(shè)置哪些指令。指令系統(tǒng)確定后,為了節(jié)省控制邏輯電路、減少延遲時(shí)間,應(yīng)該合理地分配操作碼。指令操作碼的分配對組合邏輯電路的組成影響非常大。有些機(jī)器采用不等長的指令字格式,常用的指令字短,復(fù)雜的指令字長,從而使得總的程序代碼短,程序占用的存儲器空間少,但是造成了指令的操作碼不太規(guī)整。另外對于系列機(jī),當(dāng)初設(shè)計(jì)第一臺計(jì)算機(jī)時(shí)并沒有預(yù)計(jì)到要增加擴(kuò)充指令,而新設(shè)計(jì)的計(jì)算機(jī)必須擴(kuò)充指令,因而使操作碼代碼分配變得不甚合理。以上情況使指令中操作碼字段的長度與位置不固定,在一臺計(jì)算機(jī)中又存在多種指令格式,增加了控制邏輯電路的復(fù)雜性,條理性也差?,F(xiàn)代一些新型計(jì)算機(jī)中,采用等字長規(guī)整化的指令格式,指令中操作碼字段的長度與位置都是固定的,使控制邏輯電路簡單易實(shí)現(xiàn)。(2)確定機(jī)器周期、節(jié)拍與主頻機(jī)器周期、節(jié)拍與主頻基本上是由指令的功能及器件的速度確定的。設(shè)計(jì)時(shí),首先要選擇能反映出計(jì)算機(jī)各主要部件速度的典型指令,例如加法指令、轉(zhuǎn)移控制指令等,分析并定出這些典型指令的執(zhí)行步驟以及每一步需要的時(shí)間。例如,指令中的取指或取操作數(shù)反映了存儲器的速度以及CPU與存儲器的工作配合情況;加法運(yùn)算涉及運(yùn)算器或ALU的運(yùn)算速度;條件轉(zhuǎn)移指令,尤其是比較轉(zhuǎn)移指令更能反映出執(zhí)行周期所需要的時(shí)間,用這些作機(jī)器周期的基本時(shí)間可以保證絕大部分指令能在這一時(shí)間內(nèi)完成操作。然后還要逐條對指令進(jìn)行分析以確保絕大部分指令能夠在基本時(shí)間內(nèi)完成操作。為了不影響機(jī)器運(yùn)行速度,對于不能在這一時(shí)間完成的個(gè)別指令,根據(jù)這些指令的執(zhí)行幾率,可采取增加周期數(shù)或延長時(shí)間的辦法解決。機(jī)器周期基本上是根據(jù)存儲器的速度及執(zhí)行周期的基本時(shí)間確定的,隨之機(jī)器的主頻、每一機(jī)器周期的節(jié)拍電位與時(shí)鐘數(shù)也就基本確定了。(3)確定機(jī)器周期數(shù)及每一周期內(nèi)的操作大部分指令的執(zhí)行過程與典型指令類似,但有些指令的操作比較復(fù)雜。要作特殊處理。通常采用的做法是,延長這條指令的執(zhí)行周期或重復(fù)出現(xiàn)執(zhí)行周期。確定完每條指令在每一機(jī)器周期所要完成的操作后,就得出了相應(yīng)的操作控制命令。該命令的一般表達(dá)式為:操作控制命令名=指令名×機(jī)器周期×節(jié)拍×條件(4)進(jìn)行指令綜合綜合所有指令的每一個(gè)操作命令,寫出邏輯表達(dá)式,并進(jìn)行化簡。由于指令系統(tǒng)有幾十至幾百條機(jī)器指令,因此機(jī)器中操作控制命令就很多,而且每一個(gè)操作命令表達(dá)式中包含的項(xiàng)也很多,在具體設(shè)計(jì)時(shí)需要先進(jìn)行化簡。有些操作命令要求被控制對象完成的動作比較簡單,而有些則比較復(fù)雜,對后者要仔細(xì)考慮在一個(gè)機(jī)器周期內(nèi)是否能完成。假如某條指令的一個(gè)操作在一個(gè)基本機(jī)器周期內(nèi)無法完成,為了安排這個(gè)操作要使基本機(jī)器周期增加10%時(shí)間,那么應(yīng)考慮是否要設(shè)置這條指令。假如設(shè)置這條指令后至少能使程序運(yùn)行時(shí)執(zhí)行的指令數(shù)減少10%,這樣不至損失整機(jī)的速度,則可以考慮設(shè)置,或者就不如不要這條指令。關(guān)于化簡,除了對邏輯式進(jìn)行化簡外,還可結(jié)合機(jī)器本身的特點(diǎn)進(jìn)行,前面談到的指令操作碼的編碼分配即為一例。在實(shí)現(xiàn)某些指令時(shí),有一些操作命令的存在與否不影響指令的功能,此時(shí)可根據(jù)是否對化簡有利而進(jìn)行取舍。(5)明確組合邏輯電路將化簡后的邏輯表達(dá)式用組合邏輯電路實(shí)現(xiàn)。操作命令的控制信號先用邏輯表達(dá)式列出,并進(jìn)行化簡,考慮各種條件的約束,合理選用邏輯門電路、觸發(fā)器等器件,采用組合邏輯電路的設(shè)計(jì)方法產(chǎn)生控制信號。8.2微程序控制器設(shè)計(jì)8.2.1微程序設(shè)計(jì)思想的產(chǎn)生8.2.2微程序控制的基本原理8.2.3微指令的編碼方式8.2.4微地址的形成方式8.2.5微指令格式及執(zhí)行方式8.2.1微程序設(shè)計(jì)思想的產(chǎn)生微程序設(shè)計(jì)思想是英國劍橋大學(xué)教授M.V.Wilkes在1951年首先提出的。為了克服組合邏輯控制單元線路龐雜的缺點(diǎn),他大膽設(shè)想采用與存儲程序相類似的辦法,來解決微操作命令序列的形成。Wilkes提出,將一條機(jī)器指令編寫成一個(gè)微程序,每一個(gè)微程序包含若干條微指令,每一條微指令對應(yīng)一個(gè)或幾個(gè)微操作命令。然后把這些微程序存到一個(gè)控制存儲器中,用尋找用戶程序機(jī)器指令的辦法來尋找每個(gè)微程序中的微指令。由于這些微指令是以二進(jìn)制代碼形式表示的,每位代表一個(gè)控制信號(若該位為1,表示該控制信號有效;若該位為0,表示此控制信號無效),因此,逐條執(zhí)行每一條微指令,也就相應(yīng)地完成了一條機(jī)器指令的全部操作。在此,對上面提到的幾個(gè)名詞解釋如下:微命令:計(jì)算機(jī)中控制部件與執(zhí)行部件間要傳遞控制信息,控制部件通過控制線向執(zhí)行部件發(fā)出的各種控制命令通常被叫做微命令,因?yàn)檫@些命令常常是控制一些門級電路的功能實(shí)現(xiàn)。而執(zhí)行部件接受微命令后所進(jìn)行的操作就是微操作。微指令:在微程序控制的計(jì)算機(jī)中,將由同時(shí)發(fā)出的控制信號所執(zhí)行的一組微操作稱為微指令,它就是把同時(shí)發(fā)出的控制信號的有關(guān)信息匯集起來而形成的。將一條指令分成若干條微指令,按次序執(zhí)行這些微指令,就可以實(shí)現(xiàn)機(jī)器指令的功能。微程序:計(jì)算機(jī)的程序由指令序列構(gòu)成,而計(jì)算機(jī)每條指令的功能均由微指令序列解釋完成,這些微指令序列的集合就叫做微程序。控制存儲器:微程序是存放在存儲器中的,由于該存儲器主要存放控制命令(信號)與下一條執(zhí)行的微指令地址(簡稱為下址),所以被叫做控制存儲器,它位于CPU內(nèi)。一般計(jì)算機(jī)指令系統(tǒng)的功能是固定的,所以實(shí)現(xiàn)指令系統(tǒng)的微程序也是固定的,于是控制存儲器可以用只讀存儲器實(shí)現(xiàn)。又由于機(jī)器內(nèi)控制信號數(shù)量比較多,再加上決定下址的地址碼也有一定寬度,所以控制存儲器的字長通常比機(jī)器字長要長得多。由此可見,微程序控制單元的核心部件是控制存儲器,簡稱控存。由于執(zhí)行一條機(jī)器指令必須多次訪問控存,以取出多條微指令來控制執(zhí)行各個(gè)微操作,因此要求控存的速度較高。直到60年代出現(xiàn)了半導(dǎo)體存儲器,才使這個(gè)設(shè)計(jì)思想成為現(xiàn)實(shí)。1964年4月,世界上第一臺微程序設(shè)計(jì)的機(jī)器IBM360研制成功。微程序設(shè)計(jì)省去了組合邏輯設(shè)計(jì)過程中對邏輯表達(dá)式的化簡步驟,無須考慮邏輯門級數(shù)和門的扇入系數(shù),使設(shè)計(jì)更簡便。而且由于控制信號是以二進(jìn)制代碼的形式出現(xiàn)的,因此只要修改微指令的代碼,就可改變操作內(nèi)容,便于調(diào)試、修改、甚至增刪機(jī)器指令,有利于計(jì)算機(jī)仿真。8.2.2微程序控制的基本原理1、控制信號將前面講到的運(yùn)算器(圖7-11)和控制器(圖7-1)組合在一起,可得到如圖8-2的CPU結(jié)構(gòu)。假設(shè)ALU可以進(jìn)行加(+)、減(-)、邏輯加(∨)和邏輯乘(∧)四種運(yùn)算,把圖中所需的控制信號進(jìn)行排序,可得到如表8-1所示的控制信號一覽表。圖8-2CPU邏輯框圖表8-1控制信號一覽表序號控制信號功

能1PC→AB指令地址送地址總線2ALU→PC轉(zhuǎn)移地址送PC3PC+1程序計(jì)數(shù)器加14imm(disp)→ALU立即數(shù)或位移量送ALU5DB→IR取指到指令寄存器6DB→MDR數(shù)據(jù)總線上的數(shù)據(jù)送數(shù)據(jù)寄存器7MDR→DB數(shù)據(jù)寄存器中的數(shù)據(jù)送數(shù)據(jù)總線8rs1→GR寄存器地址送通用寄存器9rs,rd→GR寄存器地址送通用寄存器10(rs1)→ALU寄存器內(nèi)容送ALU11(rs)→ALU寄存器內(nèi)容送ALU12MDR→ALU數(shù)據(jù)寄存器內(nèi)容送ALU表8-1控制信號一覽表(續(xù))序號控制信號功能13+ALU進(jìn)行加法運(yùn)算14

-ALU進(jìn)行減法運(yùn)算15∧ALU進(jìn)行邏輯乘運(yùn)算16∨ALU進(jìn)行邏輯加運(yùn)算17ALU→GRALU運(yùn)算結(jié)果送通用寄存器18ALU→MDRALU運(yùn)算結(jié)果送數(shù)據(jù)寄存器19ALU→MARALU運(yùn)算的有效地址送地址寄存器20MAR→AB地址寄存器內(nèi)容送地址總線21ADS地址總線上地址有效22M/IO#訪問存儲器或IO設(shè)備23W/R#寫或讀仍以執(zhí)行一條加法指令為例,它可以由四條微指令解釋執(zhí)行,一條微指令中的所有控制信號是同時(shí)發(fā)出的。每條微指令所需的控制信號如下:(1)取指微指令①、指令地址送地址總線:PC→AB(1)②、發(fā)訪存控制命令:ADS(21),M/IO#=1(22),W/R#=0(23)。從存儲器取指令送數(shù)據(jù)總線。③、指令送指令寄存器:DB→IR(5)④、程序計(jì)數(shù)器加1:PC+1(3)(2)計(jì)算地址微指令①、取兩個(gè)源操作數(shù)(計(jì)算地址用):rs1→GR(8),(rs1)→ALU(10),disp→ALU(4)。②、加法運(yùn)算:“+”(13)。③、有效地址送地址寄存器:ALU→MAR(19)。(3)取數(shù)微指令①、數(shù)據(jù)地址送地址總線:MAR→AB(20)。②、發(fā)訪存控制命令:ADS(21),M/IO#=1(22),W/R#=0(23)。由存儲器將數(shù)據(jù)送數(shù)據(jù)總線DB。③、數(shù)據(jù)送數(shù)據(jù)寄存器:DB→MDR(6)。(4)加法運(yùn)算和送結(jié)果微指令①、兩源操作數(shù)送ALU:rs→GR(9),(rs)→ALU(11),MDR→ALU(12)。②、加法運(yùn)算:“+”(13)。③、送結(jié)果:ALU→GR(17)。微指令最簡單的組成形式是將每個(gè)控制信號用一個(gè)控制位來表示,當(dāng)該位為“1”時(shí),定義為有該控制信號,當(dāng)該位為“0”時(shí),沒有該控制信號。M/IO#,W/R#則根據(jù)是訪問存儲器還是I/O設(shè)備、是寫還是讀而設(shè)置成“1”或“0”。在圖8-2中總共有23個(gè)控制信號,所以總共有23個(gè)控制位,如控制存儲器的容量為4K字,則每條微指令還需要12位來表示下址。此時(shí),微指令格式可表示成如圖8-3所示。圖8-3微指令格式控制字段每一位的功能與表8-1中所表示的一致。但實(shí)際的計(jì)算機(jī)中,控制信號的數(shù)量要比上例大得多。而且控制存儲器的容量一般也大于4K字,因此微指令字的長度通常在100位以上??刂拼鎯ζ鞯娜萘咳Q于實(shí)現(xiàn)指令系統(tǒng)所需的微程序長度與微指令字長。圖8-4為加法指令的四條微指令編碼,每一小格表示一位,空格表示0,第24位到第35位為下址。圖8-4加法指令的微指令編碼當(dāng)前正在執(zhí)行的微指令從控制存儲器取出后放在微指令寄存器中,該寄存器的各個(gè)控制位的輸出直接連到各個(gè)控制門上。例如,上述第四條微指令,由于第9,11,12,13,17位為1,因而產(chǎn)生將兩個(gè)數(shù)送ALU進(jìn)行加法運(yùn)算和將結(jié)果送通用寄存器的控制信號并根據(jù)運(yùn)算結(jié)果置狀態(tài)位N、Z、V、C。微程序也可以用流程圖來表示,如圖8-5所示。圖中每一方框表示一條微指令,方框上方表示的是該條微指令的地址,方框內(nèi)為執(zhí)行的操作,在其右下角為下一條要執(zhí)行的微指令的地址,表示在微指令的下址字段中。取指微指令的操作對所有的指令都是相同的。所以是一條公用的微指令,其下址由操作碼譯碼產(chǎn)生。圖8-5微程序流程圖舉例2、微程序控制器微程序控制器如圖8-6所示。圖中的控制存儲器與微指令寄存器替代了圖8-2中的時(shí)序控制信號形成部件。其基本工作原理如下:圖8-6微程序控制器簡框圖當(dāng)指令被取入IR后,根據(jù)操作碼進(jìn)行譯碼,得到相應(yīng)指令的第一條微指令的地址。按圖8-5的表示,即當(dāng)執(zhí)行加法指令時(shí),譯碼得到的地址為1001,當(dāng)執(zhí)行減法指令時(shí),譯碼得到的地址為1004,…,當(dāng)執(zhí)行條件轉(zhuǎn)移指令時(shí),譯碼得到的地址為1100。之后,都由微指令的下址字段指出下一條微指令的地址。指令譯碼部件也可用一個(gè)只讀存儲器組成,將操作碼作為只讀存儲器的輸入地址,該單元的內(nèi)容即為相應(yīng)的微指令在控制存儲器中的地址,根據(jù)此地址即可從控制存儲器取出微指令,并將它存放在微指令寄存器中。微指令分成兩部分,產(chǎn)生控制信號的部分一般稱為控制字段,產(chǎn)生下一條微指令地址的部分稱為下址字段??刂谱侄蔚母魑坏妮敵鐾ㄟ^連接線直接與受控制的門相連,于是就提供了各控制信號。其中作為指令譯碼部件的只讀存儲器,實(shí)現(xiàn)了從指令到相應(yīng)的微指令的查找功能,所以也被稱為映像存儲器(MAPROM)。8.2.3微指令的編碼方式在實(shí)際進(jìn)行微程序設(shè)計(jì)時(shí),還應(yīng)關(guān)心下面幾個(gè)問題:第一,如何縮短微指令字長。第二,如何減少微程序長度。第三,如何提高微程序的執(zhí)行速度。這就要考慮微指令的編碼方式及執(zhí)行方式等內(nèi)容。微指令的編碼方式又叫微指令的控制方式,它是指如何對微指令的控制字段進(jìn)行編碼,以形成所需的控制信號。(1)直接編碼(直接控制)方式在微指令的操作控制字段中,每一位代表一個(gè)微命令,這種編碼方式即為直接編碼方式。前面所舉的例子中即是采用這種方式。這種方式含義清晰,但由于機(jī)器中微命令甚多,可能使微指令字長達(dá)到難以接受的地步。(2)字段直接編碼方式這種方式就是將微指令的控制字段分成若干段,將一組互斥的微命令放在一個(gè)字段中,通過對這個(gè)字段的譯碼,可得到一個(gè)微命令。其中互斥的微命令指的是一組在同一個(gè)微指令執(zhí)行周期不會同時(shí)出現(xiàn)的微命令。例如,向存儲器發(fā)出的讀命令和寫命令是互斥的;又如在ALU部件中,ALU所執(zhí)行的加、減、邏輯與等操作也是互斥的。采用字段直接編碼方法可用較少的二進(jìn)制信息表示較多的微命令信號,例如用3位二進(jìn)制代碼譯碼后可表示7個(gè)互斥的微命令,留出一種狀態(tài)表示不發(fā)任何微命令,與直接編碼用7位表示7個(gè)微命令相比,減少了4位。但由于需要對字段信息進(jìn)行譯碼,需增加譯碼電路,也稍微降低了微程序的執(zhí)行速度。字段直接編碼方法如圖8-7所示。和互斥微命令對應(yīng),也有相容微命令的概念,指的是在同一個(gè)微指令執(zhí)行周期可能同時(shí)需要的一些微命令。圖8-7字段直接編碼方式(3)字段間接編碼方式這種方式指的是一個(gè)字段的某些微命令還需要由另一個(gè)字段中的某些微命令來解釋,如圖8-8所示。圖中字段1譯碼的某些輸出受字段2譯碼輸出的控制,由于不是靠字段直接譯碼發(fā)出微命令,故稱為字段間接編碼。圖8-8字段間接編碼方式(4)混合編碼除了上述的方法外,還有常數(shù)字段,微操作碼字段等方式,但在實(shí)際的微指令控制字段設(shè)計(jì)中,常常把上述各種方法混合使用,以便能綜合考慮微指令的字長、靈活性和微程序執(zhí)行的速度等方面的要求。8.2.4微地址的形成方式當(dāng)前正在執(zhí)行的微指令,稱為現(xiàn)行微指令,現(xiàn)行微指令所在的控制存儲器單元的地址稱為現(xiàn)行微地址?,F(xiàn)行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令稱為后繼微指令,后繼微指令所在的控制存儲器單元地址稱為后繼微地址。所謂微程序流的控制就是指現(xiàn)行微指令執(zhí)行完畢時(shí),如何控制得到后繼微指令的地址。(1)微程序入口地址的形成當(dāng)電源加電后,第一條微指令的地址可由專門的硬件電路產(chǎn)生,該微指令通常是實(shí)現(xiàn)取指令操作,比如把取指微指令放到控存的零地址處,機(jī)器加電后,通過硬件清“0”即得到了相應(yīng)取指微指令的地址,從而控制實(shí)現(xiàn)取第一條指令,開始程序的執(zhí)行過程。(2)由指令操作碼產(chǎn)生取指微指令執(zhí)行完后,得到了一條機(jī)器指令,接下來機(jī)器的操作應(yīng)按照指令的功能要求進(jìn)行,所以后繼要執(zhí)行的微指令就和指令的操作碼有關(guān),也即需要由指令的操作碼找到該指令對應(yīng)的微程序。此時(shí)的微地址形成部件實(shí)際是一個(gè)編碼器,其輸入為指令操作碼,輸出就是對應(yīng)該機(jī)器指令微程序的首地址。它也可采用設(shè)置MAPROM來實(shí)現(xiàn),以指令的操作碼作為ROM的地址,而相應(yīng)的存儲單元內(nèi)容就是對應(yīng)該機(jī)器指令微程序的首地址。這種方法對于實(shí)現(xiàn)根據(jù)操作碼的多重分支非常方便易實(shí)現(xiàn),但ROM的讀操作過程稍微降低了執(zhí)行速度。(3)由微指令的下址字段指出后繼微地址(斷定方式)由于微指令格式中包括下址字段,所以對現(xiàn)行微指令來說,可以把它的后繼微指令地址信息直接包括在它的下址字段處。當(dāng)現(xiàn)行微指令執(zhí)行完后,把它的下址字段取出直接作為后繼微地址對控存訪問,即可得到后繼微指令。(4)以增量方式產(chǎn)生后繼微地址當(dāng)微程序在控存中順序存放時(shí),可以以增量方式產(chǎn)生后繼微地址,即由現(xiàn)行微地址加上一個(gè)增量(通常為1)形成。在需要轉(zhuǎn)移時(shí),需要產(chǎn)生一個(gè)轉(zhuǎn)移微地址,可由相應(yīng)的邏輯電路產(chǎn)生。如圖8-9為該方式的控制器原理圖。圖8-9增量方式的原理圖圖中μPC為微程序計(jì)數(shù)器,作為訪問控存的地址寄存器,和機(jī)器指令執(zhí)行時(shí)的PC功能相似。下址字段僅有兩位,其功能是選擇三個(gè)輸入源中的一個(gè)作為μPC的輸入,而微程序入口是由專門的硬件產(chǎn)生的,不受下址字段控制。(5)增量與下址字段結(jié)合產(chǎn)生后繼微地址此種方式通常將微指令的下址字段分成兩部分:轉(zhuǎn)移控制字段BCF和轉(zhuǎn)移地址字段BAF,當(dāng)微程序?qū)崿F(xiàn)轉(zhuǎn)移時(shí),將BAF送μPC,否則順序執(zhí)行下一條微指令(μPC+1)。如圖8-10所示。圖8-10增量與下址字段方式的原理圖執(zhí)行微程序條件轉(zhuǎn)移時(shí),決定轉(zhuǎn)移與否的硬件條件有好幾種,此時(shí)BCF字段可采用直接控制也可采用編碼方式,當(dāng)采用直接控制時(shí),BCF的每一位表示一種判斷條件,當(dāng)轉(zhuǎn)移條件成立時(shí),由BAF字段作為后繼微地址送μPC,當(dāng)條件不成立時(shí),實(shí)現(xiàn)μPC+1。當(dāng)采用編碼方式時(shí),由BCF字段的編碼信息表示要判斷的轉(zhuǎn)移條件。其中BAF的長度可有兩種情況:第一,與μPC的位數(shù)相等,可以跳轉(zhuǎn)到控制存儲器的任意一個(gè)單元。第二,比μPC短,考慮到轉(zhuǎn)移點(diǎn)在μPC附近,或者在控制存儲器的某區(qū)域內(nèi),所以由原來μPC的若干位與BAF組合成轉(zhuǎn)移微地址。8.2.5微指令格式及執(zhí)行方式1、微指令的格式微指令格式與微指令的編碼方式有關(guān),通常分為水平型微指令和垂直型微指令兩種。(1)水平型微指令水平型微指令的特點(diǎn)是一次能定義并執(zhí)行多個(gè)并行操作的微命令。圖8-3就是典型的水平型微指令。從編碼方式看,直接編碼、字段直接編碼、字段間接編碼等都屬于水平型微指令。其中直接編碼速度最快,字段編碼要經(jīng)過譯碼,故速度受影響。(2)垂直型微指令垂直型微指令的特點(diǎn)是采用類似機(jī)器指令操作碼的方式,在微指令字中,設(shè)置微操作碼字段,由微操作碼規(guī)定微指令的功能。通常一條微指令有1~2個(gè)微命令,控制1~2種操作。這種微指令不強(qiáng)調(diào)其并行控制能力。2、動態(tài)微程序與毫微程序在一臺微程序控制的計(jì)算機(jī)中,假如能根據(jù)用戶的要求改變微程序,那么這臺機(jī)器就具有動態(tài)微程序設(shè)計(jì)功能。動態(tài)微程序設(shè)計(jì)的出發(fā)點(diǎn)是為了使計(jì)算機(jī)能更靈活、更有效地適應(yīng)各種不同的應(yīng)用目標(biāo)。但動態(tài)微程序設(shè)計(jì)需要可寫控制存儲器的支持,還要求用戶對計(jì)算機(jī)的結(jié)構(gòu)與組成非常熟悉,因此真正由用戶自行編寫微程序是很困難的。微程序可看作是解釋機(jī)器指令的,毫微程序可看作是解釋微程序的,因此組成毫微程序的毫微指令就可看作是解釋微指令的微指令。采用毫微程序設(shè)計(jì)的主要目的是減少控制存儲器的容量,采用的是兩級微程序設(shè)計(jì)方法。通常第一級采用垂直型微程序,第二級采用水平型微程序。圖8-11毫微程序控制結(jié)構(gòu)3、微程序執(zhí)行方式與機(jī)器指令一樣,完成一條微指令可分成兩個(gè)階段:取微指令和執(zhí)行微指令。前者指的是將微指令從控制存儲器中取出,對于垂直型微指令還包括微操作碼譯碼的時(shí)間。后者指的是執(zhí)行微指令所規(guī)定的各個(gè)操作。根據(jù)這兩步是串行還是并行進(jìn)行而具有下述的兩種執(zhí)行方式。(1)串行方式串行方式下,微指令的執(zhí)行過程如圖8-12所示。其中,執(zhí)行一條微指令所需要的時(shí)間稱為微周期。由于一條指令的功能需要執(zhí)行若干條微指令

溫馨提示

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

最新文檔

評論

0/150

提交評論