版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算機(jī)組成與結(jié)構(gòu)中央控制器第1頁,共118頁,2023年,2月20日,星期四第六章中央控制器
計(jì)算機(jī)的硬件系統(tǒng)控制器的組成微程序控制的計(jì)算機(jī)微程序設(shè)計(jì)技術(shù)硬布線控制的計(jì)算機(jī)控制器的控制方式流水線工作原理CPU舉例計(jì)算機(jī)的加電及控制過程第2頁,共118頁,2023年,2月20日,星期四第六章中央控制器本章主要研究計(jì)算機(jī)控制器的組成原理。要求掌握在計(jì)算機(jī)運(yùn)行過程中各硬件部件的作用,了解CPU中各部件的操作過程及其實(shí)現(xiàn)方法;重點(diǎn)掌握控制器如何實(shí)現(xiàn)各指令的功能,如何保證逐條指令的連續(xù)執(zhí)行過程。第3頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)在實(shí)際進(jìn)行微程序設(shè)計(jì)時(shí),應(yīng)注意以下問題:(1)如何縮短微指令字長(zhǎng);(2)如何減少微程序長(zhǎng)度;(3)如何提高微程序的執(zhí)行速度。第4頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)一、微指令的編譯法(編碼譯碼方法)微指令由控制字段和下址字段組成,這里討論幾種常用的控制字段編譯法。1、直接控制編碼(不譯碼法)直接控制編碼是指微指令的微命令字段中每一位都代表一個(gè)微命令。設(shè)計(jì)微指令時(shí),選用或不選用某個(gè)微命令,只要將表示該微命令的對(duì)應(yīng)位設(shè)置成1或0就可以了。因此,微命令的產(chǎn)生不需譯碼。6.3節(jié)中所講的就是這種方法。第5頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)這種編碼的優(yōu)點(diǎn)是簡(jiǎn)單、直觀,執(zhí)行速度快,操作并行性最好。其缺點(diǎn)是微指令字長(zhǎng)過長(zhǎng),使控制存儲(chǔ)器單元的位數(shù)過多。而且,在給定的任何一個(gè)微指令中,往往只需部分微命令,因此只有部分位置1,造成有效的空間不能充分利用。在某些復(fù)雜的計(jì)算機(jī)中,微命令甚至可多達(dá)三四百個(gè),這使微指令字長(zhǎng)達(dá)到難以接受的地步,并要求機(jī)器有大容量控制存儲(chǔ)器,為了改進(jìn)設(shè)計(jì)出現(xiàn)了以下各種編譯法。第6頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)2、字段直接編譯法計(jì)算機(jī)中的各個(gè)控制門,在任一微周期內(nèi),不可能同時(shí)被打開,而且大部分是關(guān)閉的(即相應(yīng)的控制位為“o”)。所謂微周期,指的是一條微指令所需的執(zhí)行時(shí)間。如果有若干個(gè)(一組)微命令,在每次選擇使用它們的微周期內(nèi),只有一個(gè)微命令起作用,那么這若干個(gè)微命令是互斥的。例如,向主存儲(chǔ)器發(fā)出的讀命令和寫命令是互斥的;又如在ALU部件中,送往ALU兩個(gè)輸入端的數(shù)據(jù)來源往往不是唯一的,而每個(gè)輸入端在任一微周期中只能輸入一個(gè)數(shù)據(jù),因此控制該輸入門的微命令是互斥的。選出互斥的微命令,并將這些微命令編成一組,成為微指令字的一個(gè)字段,用二進(jìn)制編碼來表示。第7頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)①相斥性微命令和相容性微命令同一微周期中不能同時(shí)出現(xiàn)的微命令稱為相斥性微命令;在同一微周期中可以同時(shí)出現(xiàn)的微命令稱為相容性微命令。②分段直接編譯法將微指令的微命令字段分成若干小字段,把相斥性微命令組合在同一字段中,而把相容性微命令組合在不同的字段中,每個(gè)字段獨(dú)立編碼,每種編碼代表一個(gè)微命令且各字段編碼含義單獨(dú)定義,與其它字段無關(guān),這就稱為分段直接編譯法。第8頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)③分段的原則
A.互斥性的微命令分在同一段內(nèi),兼容性的微命令分在不同段內(nèi)。
B.與數(shù)據(jù)通路結(jié)構(gòu)相適應(yīng)。
C.每個(gè)小段中包含的信息位不能太多,否則將增加譯碼線路的復(fù)雜性和譯碼時(shí)間。
D.一般每個(gè)小段還要留出一個(gè)狀態(tài),表示本字段不發(fā)出任何現(xiàn)行命令。因此當(dāng)某字段的長(zhǎng)度為三位時(shí),最多只能表示七個(gè)互斥的微命令,通常用000表示不操作。第9頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)【例如】,將7個(gè)互斥的微命令編成一組,用三位二進(jìn)制碼分別表示每個(gè)微命令,那么在微指令中,該字段就從7位減成3位,縮短了微指令長(zhǎng)度。而在微指令寄存器的輸出端,為該字段增加一個(gè)譯碼器,該譯碼器的輸出即為原來的微命令(圖6.21)。第10頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)字段長(zhǎng)度與所能表示的微命令數(shù)的關(guān)系如下:字段長(zhǎng)度微命令數(shù)
2位2~33位4~74位8~15一般每個(gè)字段要留出一個(gè)代碼,表示本段不發(fā)出任何微命令,因此當(dāng)字段長(zhǎng)度為3位時(shí),最多只能表示7個(gè)互斥的微命令,通常代碼000表示不發(fā)微命令。第11頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)3、字段間接編譯法如果在字段直接編譯法中,規(guī)定一個(gè)字段的某些微命令,要兼由另一字段中的某些微命令來解釋,稱為字段間接編譯法。分段間接編譯法是在直接編譯法基礎(chǔ)上,進(jìn)一步縮短微指令字長(zhǎng)的一種編碼方法。在這種編譯法中,一個(gè)字段的含義不僅決定于本字段編碼,還兼由其它字段來解釋,以便使用較少的信息位表示更多的微命令。第12頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)圖6.22表示字段A(3位)的微命令還受字段B控制,當(dāng)字段B發(fā)出b1微命令時(shí),字段A發(fā)出a1,1,a2,1,…,a7,1中的一個(gè)微命令;而當(dāng)字段B發(fā)出b2微命令時(shí),字段A發(fā)出a1,2,a2,2,…,a7,2中的一個(gè)微命令,僅當(dāng)A為000時(shí)例外,此時(shí)什么控制命令都不產(chǎn)生。本方法進(jìn)一步減少了指令長(zhǎng)度,但很可能會(huì)削弱微指令的并行控制能力,因此通常只作為直接編譯法的一種輔助手段。第13頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第14頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)4、常數(shù)源字段E在微指令中,一般設(shè)有一個(gè)常數(shù)源字段E,就如指令中的直接操作數(shù)一樣。E字段一般僅有幾位,用來給某些部件發(fā)送常數(shù),故有時(shí)稱為發(fā)射字段。該常數(shù)有時(shí)作為操作數(shù)送入ALU運(yùn)算;有時(shí)作為計(jì)算器初值,用來控制微程序的循環(huán)次數(shù)等。5、混合控制法直接控制法與譯碼控制法的混合使用。6、其他諸如微操作碼編譯法(見“6.4.3微指令格式”)等將在下面介紹。第15頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)二、微程序流的控制當(dāng)前正在執(zhí)行的微指令,稱為現(xiàn)行微指令,現(xiàn)行微指令所在的控制存儲(chǔ)器單元的地址稱為現(xiàn)行微地址,現(xiàn)行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令稱為后繼微指令,后繼微指令所在的控存單元地址稱為后繼微地址。所謂微程序流的控制是指當(dāng)前微指令執(zhí)行完畢后,怎樣控制產(chǎn)生后繼微地址。第16頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)產(chǎn)生后繼微指令地址的兩種方法:
(1)由指令操作碼譯碼器產(chǎn)生后繼微地址。
(2)由微指令的下址字段指出后繼微地址。與程序設(shè)計(jì)相似,在微程序設(shè)計(jì)中除了順序執(zhí)行微程序外還存在轉(zhuǎn)移功能和微循環(huán)程序與微子程序等,這將影響下址的形成。下面介紹幾種常見的產(chǎn)生后繼微指令地址的方法。第17頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)1、產(chǎn)生后繼微指令地址的幾種方法(1)以增量方式產(chǎn)生后繼微地址在順序執(zhí)行微指令時(shí),后繼微地址由現(xiàn)行微地址加上一個(gè)增量(通常為1)形成的;而在非順序執(zhí)行時(shí)則要產(chǎn)生一個(gè)轉(zhuǎn)移微地址,如圖6.23所示。第18頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第19頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)機(jī)器加電后執(zhí)行的第一條微指令地址(微程序入口)來自專門的硬件電路,控制實(shí)現(xiàn)取指令操作,然后由指令操作碼產(chǎn)生后繼微地址。接下去,若順序執(zhí)行微指令,則將現(xiàn)行微地址(在微程序計(jì)數(shù)器μPC中)+1產(chǎn)生后繼微地址;若遇到轉(zhuǎn)移類微指令,則由μPC與形成轉(zhuǎn)移微地址的邏輯電路組合成后繼微地址。例如,利用該邏輯電路的輸出與μPC低位進(jìn)行邏楫加,形成后繼微地址。這種方式可使微指令的下址字段很短,僅起選擇作用。其缺點(diǎn)是微程序轉(zhuǎn)移很不靈活,使得微程序在控存中的物理空間分配相當(dāng)困難。第20頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)在圖6.23的“計(jì)數(shù)器”方式的原理圖中,μPC兼作控制存儲(chǔ)器的地址寄存器,輸入有四個(gè)來源。下址字段僅有兩位,其功能是選擇三個(gè)輸入源中的一個(gè)作為μPC的輸入,而微程序入口是由專門的硬件產(chǎn)生的,不受下址字段控制。(2)增量與下址字段結(jié)合產(chǎn)生后繼微地址在圖6.24中將微指令的下址字段分成兩部分:轉(zhuǎn)移控制字段BCF和轉(zhuǎn)移地址字段BAF,當(dāng)微程序?qū)崿F(xiàn)轉(zhuǎn)移時(shí),將BAF送μPC,否則順序執(zhí)行下一條微指令(μPC+1)。第21頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第22頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)執(zhí)行微程序條件轉(zhuǎn)移時(shí),決定轉(zhuǎn)移與否的硬件條件有好幾種。例如,“運(yùn)算結(jié)果為零”、“溢出”、“已完成指定的循環(huán)次數(shù)”等。在圖6.24中,我們假設(shè)有八種轉(zhuǎn)移情況,定義了八個(gè)微命令(BCF取3位),在圖中設(shè)置計(jì)數(shù)器CT,用來控制循環(huán)次數(shù)。如在執(zhí)行乘(或除)法指令時(shí),經(jīng)常采用循環(huán)執(zhí)行“加、移位”(或減、移位)的方法,指令開始執(zhí)行時(shí),在CT中置循環(huán)次數(shù),每執(zhí)行一次循環(huán),計(jì)數(shù)器減1,當(dāng)計(jì)數(shù)器為零時(shí)結(jié)束循環(huán)。又考慮到執(zhí)行微子程序時(shí),要保留返回微地址,圖中設(shè)置了一個(gè)返回寄存器RR。由BCF定義的八個(gè)微命令見表6.2。第23頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第24頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)①BCF=0,順序執(zhí)行微命令,μPC+I為后繼微地址。②BCF=1,條件轉(zhuǎn)移微命令,當(dāng)運(yùn)算結(jié)果為0時(shí),將BAF送μPC,否則μPC+1μPC,③BCF=2,條件轉(zhuǎn)移微命令,當(dāng)運(yùn)算結(jié)果溢出時(shí),將BAF送μPC,否則,μPC+1+μPC。④BCF=3,無條件轉(zhuǎn)移微命令,將BAF送μPC。⑤BCF=4;測(cè)試循環(huán)微命令,假如CT≠0,表示需要繼續(xù)執(zhí)行循環(huán)微命令,將循環(huán)人口微地址從BAF送μPC。假如CT=0,表示循環(huán)結(jié)束,后繼微地址為μPC+1。本條微命令同時(shí)完成CT-1操作。⑥BCF=5,轉(zhuǎn)微子程序微命令,把微子程序人口地址從BAF送μPC,從而實(shí)現(xiàn)轉(zhuǎn)移。在轉(zhuǎn)移之前要把該條微指令的下一地址(μPC+1)送人返回寄存器RR之中。⑦BCF=6,返回微命令,把RR中的返回微地址送人μPC,從而實(shí)現(xiàn)從微子程序返回到原來的微程序。⑧BCF=7,操作碼產(chǎn)生后繼微地址的微命令,這是取指后,按現(xiàn)行指令執(zhí)行的第一條微指令。第25頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)BAF的長(zhǎng)度有兩種情況:①與μPC的位數(shù)相等;可以從控制存儲(chǔ)器的任一單元取微指令。②比μPC短;考慮到轉(zhuǎn)移點(diǎn)在μPC附近,或者在控制存儲(chǔ)器的某區(qū)域內(nèi),所以由原來的μPC的若干位與BAF組合成轉(zhuǎn)移微地址。第一種情況,轉(zhuǎn)移靈活,但增加了微指令的長(zhǎng)度;第二種情況,轉(zhuǎn)移地址受到限制,但可縮短微指令長(zhǎng)度。第26頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)
(3)多路轉(zhuǎn)移方式一條微指令存在多個(gè)轉(zhuǎn)移分支的情況稱為多路轉(zhuǎn)移。在執(zhí)行某條微指令時(shí),可能會(huì)遇到在若干個(gè)微地址中選擇一個(gè)作為后繼微地址的情況,最明顯的例子是根據(jù)操作碼產(chǎn)生不同的后繼微地址。實(shí)現(xiàn)此功能的電路通常是由PROM(可編程序只讀存儲(chǔ)器)組成的,也有把它稱為MAPROM(映像只讀存儲(chǔ)器)的。該存儲(chǔ)器的特點(diǎn)是以指令的操作碼作為地址輸入,而相應(yīng)的存儲(chǔ)單元內(nèi)容即為該指令的第一條微指令的入口地址。該存儲(chǔ)器的容量等于或略大于機(jī)器的指令數(shù),所以容量小,速度快。第27頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)有時(shí)要根據(jù)某些硬件狀態(tài)來決定后繼微地址,屬于這些狀態(tài)的可以是根據(jù)運(yùn)算結(jié)果所置的標(biāo)志位(N,Z,V,C)、計(jì)數(shù)器狀態(tài)、數(shù)據(jù)通路狀態(tài)等。根據(jù)一種狀態(tài)(非0即1)來決定微地址可以有兩種情況,即兩路轉(zhuǎn)移;而根據(jù)兩種狀態(tài)來決定微地址可以有四種情況,即四路轉(zhuǎn)移。微程序設(shè)計(jì)實(shí)踐表明,實(shí)現(xiàn)兩路轉(zhuǎn)移的情況居多,其次是四路轉(zhuǎn)移,向更多路方向轉(zhuǎn)移的情況就比較少見。兩路轉(zhuǎn)移只涉及微地址的一位;四路轉(zhuǎn)移涉及微地址的兩位,一般就定在微地址的最后兩位,也就是說當(dāng)執(zhí)行轉(zhuǎn)移微指令時(shí),根據(jù)條件可轉(zhuǎn)移到四個(gè)微地址中的一個(gè),這四個(gè)微地址的高位部分相等,僅是最低兩位不同。實(shí)現(xiàn)多路轉(zhuǎn)移可減少微程序的長(zhǎng)度,對(duì)于一般條件轉(zhuǎn)移微指令(相當(dāng)于兩路轉(zhuǎn)移)來說,需要兩條微指令來完成上述四路轉(zhuǎn)移的功能。第28頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(4)微中斷微中斷與程序中斷的概念相似,在微程序執(zhí)行過程中,一旦出現(xiàn)微中斷請(qǐng)求信號(hào),通常在完成現(xiàn)行指令的微程序后響應(yīng)該微中斷請(qǐng)求,這時(shí)中止當(dāng)前正在執(zhí)行的程序,而轉(zhuǎn)去執(zhí)行微中斷處理程序,微中斷請(qǐng)求信號(hào)是由程序中斷請(qǐng)求信號(hào)引起的。在進(jìn)行微程序設(shè)計(jì)時(shí),已安排好微中斷處理程序在控制存儲(chǔ)器的位置,因此該微程序段的人口地址是已知的。當(dāng)CPU響應(yīng)微中斷請(qǐng)求時(shí),由硬件產(chǎn)生微中斷程序的入口地址。當(dāng)中斷處理完畢后,再返回到原來被中斷的程序。這也是產(chǎn)生后繼微地址的一種情況。第29頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)2、用AM2900系列芯片構(gòu)成的微程序CPU圖6.25所示的系統(tǒng)中:AM2901為4位運(yùn)算部件,包含4位ALU及16個(gè)4位通用寄存器,本系統(tǒng)將其中一個(gè)寄存器用作程序計(jì)數(shù)器PC。AM2902是為了加速進(jìn)位而采用的集成電路。AM2910為微程序控制器,用于產(chǎn)生下一條微指令地址,可尋址4K字的控制存儲(chǔ)器。圖中的MAP為操作碼譯碼器產(chǎn)生本條指令的微程序入口地址。第30頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第31頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)圖6.26是AM2910內(nèi)部組成框圖。AM2910由μPC、微堆棧、計(jì)數(shù)器/寄存器、命令譯碼器及多路地址選擇器組成。其輸出Y11一Y0直接送到控存。與圖6.24相比,它將多個(gè)邏輯電路集成在一個(gè)芯片上,并具有更強(qiáng)的功能。AM2910的多路地址選擇器,用來選擇下一條微指令的地址,它可從片內(nèi)的微程序計(jì)數(shù)器μPC、寄存器/計(jì)數(shù)器、微堆?;蛑苯訌妮斎胛⒌刂?D11~D0)中選擇一個(gè)作為輸出。微程序計(jì)數(shù)器是由12位增量器和12位寄存器組成。當(dāng)增量器的進(jìn)位輸入CI為高電平時(shí),多路器的輸出Y加1后裝入μPC(即μPC←Y十1),用于實(shí)現(xiàn)微程序的順序執(zhí)行;而當(dāng)CI為低電平時(shí),多路器的輸出Y直接裝入μPC(即μPC←Y),用于實(shí)現(xiàn)一條微指令的多次執(zhí)行。第32頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第33頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)寄存器/計(jì)數(shù)器由12個(gè)D型觸發(fā)器組成。當(dāng)它用作寄存器時(shí),主要用于保存一個(gè)微地址,用以實(shí)現(xiàn)微程序分支;當(dāng)它用作計(jì)數(shù)器時(shí),具有減“1”功能(受AM2910的命令碼I3~I(xiàn)0控制),主要用于控制微程序的循環(huán)次數(shù),若裝入的初值為N,則可執(zhí)行N+1次。微堆棧由寄存器堆和微堆棧指示器組成,其中寄存器堆可保存5個(gè)字(12位/字),主要用于保存微子程序調(diào)用的返回地址和微程序循環(huán)的首地址。微堆棧指示器μSP總是指向最后一次壓入的數(shù)據(jù),因此,執(zhí)行微程序循環(huán)時(shí),允許不執(zhí)行彈出操作而直接訪問微堆棧的棧頂。當(dāng)堆棧中的數(shù)據(jù)達(dá)到五個(gè)時(shí),就發(fā)出堆棧已滿信號(hào)(FULL=0),這時(shí),任何壓入操作都將覆蓋掉棧頂?shù)臄?shù)據(jù)。命令譯碼器接收從微指令有關(guān)控制字段送來的命令碼(13~10)及硬件狀態(tài)CC,用來執(zhí)行AM2910的內(nèi)部操作及選擇下址輸出。第34頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)三、微指令格式微指令的格式大體上可分成兩類:一是水平型微指令;二是垂直型微指令。1、水平型微指令格式下圖屬于水平型微指令的典型例子。第35頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)基本特點(diǎn)是在一條微指令中定義并執(zhí)行多個(gè)并行操作微命令。采用直接控制法進(jìn)行編碼。在實(shí)際應(yīng)用中,直接控制法、字段編譯法(直接、間接編譯法)經(jīng)常應(yīng)用在同一條水平型微指令中。從速度來看,直接控制法最快,字段編譯法要經(jīng)過譯碼,所以會(huì)增加一些延遲時(shí)間。2、垂直型微指令格式在微指令中設(shè)置有微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能,稱為垂直型微指令。第36頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)其特點(diǎn)是不強(qiáng)調(diào)實(shí)現(xiàn)微指令的并行控制功能,通常一條微指令只要求能控制實(shí)現(xiàn)一二種操作。這種微指令格式與指令相似;每條指令有一個(gè)操作碼;每條微指令有一個(gè)微操作碼。下面我們舉一個(gè)經(jīng)簡(jiǎn)化的例子,設(shè)微指令字長(zhǎng)16位,微操作碼3位,有八條微指令如下:第37頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(1)寄存器—寄存器傳送型微指令微指令格式:功能:把源寄存器數(shù)據(jù)送目標(biāo)寄存器。第0~2位為微操作碼。第3~7位是源寄存器編址,這五位可以指定31個(gè)寄存器之一作為源寄存器,00000可表示為由指令的地址碼部分指出源寄存器地址,因?yàn)楫?dāng)執(zhí)行傳送指令時(shí),由指令給出源寄存器地址。所以參與操作的數(shù)據(jù)地址可由指令給出,也允許由微指令給出。此結(jié)論同樣適用于水平型微指令。第8~12位是目標(biāo)寄存器的編址,這5位可以指定31個(gè)寄存器之一作為目標(biāo)寄存器,00000可表示為由指令的地址碼部分指出目標(biāo)寄存器地址。第13—15位是“其他字段”,可協(xié)助本條微指令完成其他控制功能。第38頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(2)運(yùn)算控制型微指令微指令格式:功能:選擇運(yùn)算器(ALU)的左、右兩輸入端的信息,按ALU字段所指定的運(yùn)算功能進(jìn)行處理,并將結(jié)果送人暫存器中。第0~2位為微操作碼。第3~7位為運(yùn)算器左輸入源的編址,這5位可以指定31種源信息之一,00000可表示為由指令的地址碼部分指定左輸人源的編址。第8—12位為運(yùn)算器右輸入源的編址,這5位可以指定31種源信息之一,00000可表示為由指令的地址碼部分指定右輸入源的編址。第13~15位為ALU字段,完成八種操作之一,例如加法、減法、邏輯加、邏輯乘等等。第39頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(3)移位控制型微指令微指令格式:功能:將寄存器中的數(shù)據(jù)按指定的移位方式進(jìn)行移位。第0~2位為微操作碼。第3~7位為移位數(shù)據(jù)所在寄存器的編址,移位結(jié)果仍保留在原寄存器中。編址方式與上同。第8~12位為移位次數(shù)。第13~15位為移位方式,可表明循環(huán)左移、循環(huán)右移、邏輯左移、邏輯右移、算術(shù)左移、算術(shù)右移等。第40頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(4)訪問主存微指令微指令格式:功能:將存儲(chǔ)器中一個(gè)單元的信息送人寄存器或?qū)⒓拇嫫髦械臄?shù)據(jù)送往存儲(chǔ)器。第0~2位為微操作碼。第3~7位為寄存器地址編址。第8~12位為存儲(chǔ)器編址,可以按照系統(tǒng)設(shè)計(jì)所規(guī)定的尋址方式進(jìn)行編址。例如,可以是存儲(chǔ)器地址所在的寄存器地址。第13~14位規(guī)定是讀或?qū)懖僮?。?5位可協(xié)助本微指令完成其他控制功能。第41頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(5)五條件轉(zhuǎn)移微指令微指令格式:功能:實(shí)現(xiàn)五條件轉(zhuǎn)移或轉(zhuǎn)微子程序功能。第0~2位為微操作碼。第3~14位為微指令的轉(zhuǎn)移地址。第15位用于區(qū)分是無條件轉(zhuǎn)移或是轉(zhuǎn)微子程序微指令,當(dāng)是后者時(shí),將現(xiàn)行微地址的下一順序微地址(μPC+1)保存在返回微地址寄存器RR中。第42頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(6)條件轉(zhuǎn)移微指令微指令格式:功能:根據(jù)測(cè)試對(duì)象的狀態(tài)(例如運(yùn)算結(jié)果為0、結(jié)果溢出、計(jì)數(shù)器狀態(tài)等)決定轉(zhuǎn)移到D所指定的微地址單元,還是順序執(zhí)行下一條微指令。9位D字段不足以表示一個(gè)完整的微地址,但可以用來替代現(xiàn)行微地址μPC的低位。測(cè)試條件字段有4位,可以規(guī)定十六種測(cè)試條件。第43頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(7)其他還有110與111兩種操作碼,可以用來定義輸入/輸出微操作或其他難以歸類的雜操作,第3~15位可以根據(jù)需要定義各種相應(yīng)的微命令字段。第44頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)3、水平型微指令與垂直型微指令的比較(1)水平型微指令并行操作能力強(qiáng),效率高,靈活性強(qiáng),垂直型微指令則差。
在一條水平型微指令中,設(shè)置有控制機(jī)器中信息傳送通路(門)以及進(jìn)行所有操作的微命令。因此,在進(jìn)行微程序設(shè)計(jì)時(shí),可以同時(shí)定義比較多的并行操作的微命令,控制盡可能多的并行信息傳送,從而使水平型微指令具有效率高及靈活性強(qiáng)的優(yōu)點(diǎn)。在一條垂直型微指令中,一般只能完成一個(gè)操作,控制一兩個(gè)信息傳送通路,因此微指令的并行操作能力低,效率低。第45頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(2)水平型微指令執(zhí)行一條指令的時(shí)間短,垂直型微指令執(zhí)行時(shí)間長(zhǎng)。因?yàn)樗叫臀⒅噶畹牟⑿胁僮髂芰?qiáng),因此與垂直型微指令相比,可以用較少的微指令數(shù)來實(shí)現(xiàn)一條指令的功能,從而縮短了指令的執(zhí)行時(shí)間。而且當(dāng)執(zhí)行一條微指令時(shí),水平型微指令的微命令一般直接控制對(duì)象,而垂直型微指令要經(jīng)過譯碼也會(huì)影響速度。(3)由水平型微指令解釋指令的微程序,具有微指令字比較長(zhǎng),但微程序短的特點(diǎn)。垂直型微指令則相反,微指令字比較短而微程序長(zhǎng)。(4)水平型微指令用戶難以掌握,而垂直型微指令與指令比較相似,相對(duì)來說,比較容易掌握。第46頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)水平型微指令與機(jī)器指令差別很大,一般需要對(duì)機(jī)器的結(jié)構(gòu)、數(shù)據(jù)通路、時(shí)序系統(tǒng)以及微命令很精通才能進(jìn)行設(shè)計(jì)。對(duì)機(jī)器已有的指令系統(tǒng)進(jìn)行微程序設(shè)計(jì)是設(shè)計(jì)人員而不是用戶的事情,因此這一特點(diǎn)對(duì)用戶來講并不重要。然而某些計(jì)算機(jī)允許用戶自行設(shè)計(jì)并擴(kuò)充指令系統(tǒng),此時(shí)就要注意是否容易編寫微程序,有關(guān)問題將在下一小節(jié)“動(dòng)態(tài)微程序設(shè)計(jì)”中討論。第47頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)四、微程序控制存儲(chǔ)器和動(dòng)態(tài)微程序設(shè)計(jì)1、微程序控制存儲(chǔ)器微程序控制存儲(chǔ)器一般由只讀存儲(chǔ)器構(gòu)成,因?yàn)槲⒊绦蚴且越忉尩姆绞綀?zhí)行指令,而指令系統(tǒng)一般是固定的,因此可以使用只讀存儲(chǔ)器。但假如用可讀可寫的隨機(jī)存儲(chǔ)器作為控制存儲(chǔ)器未必不行,但停電后RAM中的內(nèi)容消失,所以開機(jī)后首先要將外存(磁盤或磁帶)上存放的微程序調(diào)到控存(RAM),然后機(jī)器才能執(zhí)行程序。由于ROM中的內(nèi)容不會(huì)丟失,因此一般認(rèn)為用ROM作為控制存儲(chǔ)器比較可靠。用RAM作為控制存儲(chǔ)器的優(yōu)點(diǎn)是可以修改微程序,也就是說可以修改指令系統(tǒng)。所以可考慮部分控存用ROM構(gòu)成,實(shí)現(xiàn)固定的指令系統(tǒng);部分控存由RAM構(gòu)成,用于擴(kuò)充或修改一些指令。第48頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)2、動(dòng)態(tài)微程序設(shè)計(jì)在一臺(tái)微程序控制的計(jì)算機(jī)中,假如能根據(jù)用戶的要求改變微程序,那么這臺(tái)機(jī)器就具有動(dòng)態(tài)微程序設(shè)計(jì)功能。動(dòng)態(tài)微程序設(shè)計(jì)的出發(fā)點(diǎn)是為了使計(jì)算機(jī)能更靈活、更有效地適應(yīng)于各種不同的應(yīng)用目標(biāo)。第49頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)例如,在不改變硬件結(jié)構(gòu)的前提下,如果計(jì)算機(jī)配備了兩套可供切換的微程序,其中一套用來實(shí)現(xiàn)科學(xué)計(jì)算的指令系統(tǒng),另一套用來實(shí)現(xiàn)數(shù)據(jù)處理的指令系統(tǒng),那么該計(jì)算機(jī)就能高效率地實(shí)現(xiàn)科學(xué)計(jì)算或者數(shù)據(jù)處理。另外也可以用兩套微程序分別實(shí)現(xiàn)兩個(gè)不同系列計(jì)算機(jī)的指令系統(tǒng),使得這兩種計(jì)算機(jī)的軟件得以兼容。也允許用戶在原來指令系統(tǒng)的基礎(chǔ)上增加一些指令來提高程序的執(zhí)行效率。用于動(dòng)態(tài)微程序設(shè)計(jì)的控存稱為可寫控制存儲(chǔ)器(WCS)或用戶控制存儲(chǔ)器(UCS)。第50頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)由于動(dòng)態(tài)微程序設(shè)計(jì)要求用戶對(duì)計(jì)算機(jī)的結(jié)構(gòu)與組成非常熟悉,因此真正由用戶自行編寫微程序是很困難的,所以盡管設(shè)想很好,事實(shí)上難以推廣。而前面講到的一臺(tái)機(jī)器實(shí)現(xiàn)兩套微程序等方案也是由機(jī)器設(shè)計(jì)人員實(shí)現(xiàn)的。第51頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)
3、控制存儲(chǔ)器的操作執(zhí)行一條微指令的過程基本上分為兩步,第一步將微指令從控制存儲(chǔ)器中取出,稱為取微指令,對(duì)于垂直型微指令還應(yīng)包括微操作碼譯碼的時(shí)間。第二步執(zhí)行微指令所規(guī)定的各個(gè)操作。根據(jù)這兩步是串行還是并行進(jìn)行而具有下述的兩種方式:(1)串行方式執(zhí)行一條微指令所需要的時(shí)間稱為微周期。在串行方式下微周期的安排如下:第52頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)微周期即是控制存儲(chǔ)器的工作周期,包括取微指令和執(zhí)行微指令兩部分時(shí)間。一條指令的功能需要執(zhí)行若干條微指令才能實(shí)現(xiàn),所以控制存儲(chǔ)器的取微指令時(shí)間對(duì)機(jī)器速度影響很大。一般控存要比主存儲(chǔ)器快得多。圖6.27是串行微程序控制器原理圖與時(shí)序圖。由控制存儲(chǔ)器直接輸出控制信號(hào)與下址,而控制存儲(chǔ)器地址又是由CSAR直接送來的,因此在一條微指令執(zhí)行過程中,不允許CSAR改變。如控制信號(hào)負(fù)載較重,則可外接門電路或驅(qū)動(dòng)器。第53頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第54頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)(2)并行方式為了提高微程序的執(zhí)行速度,將執(zhí)行本條微指令的功能與取下一條微指令的操作在時(shí)間上重疊起來,圖6.28是并行微程序控制器的原理圖與時(shí)序圖。與圖6.27(a)相比,圖6.28(a)增加了微指令寄存器,控制微命令由微指令寄存器發(fā)出,因此在微指令執(zhí)行過程中,即使控存輸出改變,只要微指令寄存器打人脈沖不來,其內(nèi)容不會(huì)跟著發(fā)生變化,因而允許取微指令與執(zhí)行上一條微指令并行進(jìn)行,在某些書上將微指令寄存器稱為流水線寄存器。第55頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第56頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)4、毫微程序設(shè)計(jì)的基本概念
毫微程序可以看作是用以解釋微程序的一種微程序,因此組成毫微程序的毫微指令就可看作是解釋微指令的微指令。采用毫微程序設(shè)計(jì)的主要目的是減少控制存儲(chǔ)器的容量(字?jǐn)?shù)×位數(shù)/字),采用的是兩級(jí)微程序設(shè)計(jì)方法。通常第一級(jí)采用垂直微程序,第二級(jí)采用水平微程序。當(dāng)執(zhí)行一條指令時(shí),首先進(jìn)入第一級(jí)微程序,由于它是垂直型微指令,所以并行操作功能不強(qiáng),當(dāng)需要時(shí)可由它來調(diào)用第二級(jí)微程序(即毫微程序),執(zhí)行完畢后再返回第一級(jí)微程序。所以在這里有兩個(gè)控制存儲(chǔ)器如圖6.29所示。第57頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第58頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)第一級(jí)垂直微程序是根據(jù)實(shí)現(xiàn)指令系統(tǒng)和其他處理過程的需要而編制的,它有嚴(yán)格的順序結(jié)構(gòu),由它確定后繼微指令的地址。垂直微指令很像機(jī)器指令,編程過程就像用機(jī)器指令編程一樣,容易實(shí)現(xiàn)微程序設(shè)計(jì)自動(dòng)化。其控制存儲(chǔ)器的主要特點(diǎn)是字短。第二級(jí)水平型微指令是由第一級(jí)調(diào)用的,具有并行操作控制的能力,但不包含后繼微指令地址的信息。若干條垂直微指令可以調(diào)用同一條毫微指令,所以在控制存儲(chǔ)器中每條毫微指令都是不相同的(在一級(jí)微程序設(shè)計(jì)的控制存儲(chǔ)器中,會(huì)多次出現(xiàn)相同的微指令)。在各條毫微指令之間沒有順序關(guān)系。毫微程序控制存儲(chǔ)器的主要特點(diǎn)是字?jǐn)?shù)較少,但每個(gè)字的長(zhǎng)度較長(zhǎng)。第59頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)上述二級(jí)微程序設(shè)計(jì)方法將微程序的順序控制和執(zhí)行微操作的命令完全分離開來,分別由第一級(jí)垂直型微指令和第二級(jí)水平型微指令實(shí)現(xiàn)。在實(shí)際應(yīng)用時(shí)則有所變化,例如:(1)若從第一級(jí)控存讀出的垂直型微指令功能比較簡(jiǎn)單,這時(shí)不必將它變換成毫微指令,而可直接譯碼,用作微操作控制信號(hào),因此不再調(diào)用第二級(jí)微指令。(2)垂直型微指令與水平型微指令之間不是一條一條地對(duì)應(yīng),而是由水平型微指令(毫微指令)組成若干步的微程序(即毫微程序)去執(zhí)行垂直型微指令的操作,在這種情況下,毫微指令與微指令的關(guān)系就相當(dāng)于微指令與指令的關(guān)系。采用二級(jí)微程序控制能減少控制存儲(chǔ)器的總?cè)萘浚袝r(shí)一條微指令要訪問二次控存,影響速度。
第60頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)五、微程序設(shè)計(jì)語言在微程序控制的計(jì)算機(jī)中,用機(jī)器語言表示的指令是由微指令解釋執(zhí)行而實(shí)現(xiàn)的。一般微指令的字長(zhǎng)達(dá)到100位左右,甚至更多些。假如要求設(shè)計(jì)者直接用二進(jìn)制編碼來進(jìn)行微程序設(shè)計(jì)是很困難的,錯(cuò)誤難以避免。因而引入了微程序設(shè)計(jì)語言。第61頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)設(shè)計(jì)者或其他用戶用來編制微程序的語言叫做微程序設(shè)計(jì)語言,用微程序設(shè)計(jì)語言編制的程序叫做源微程序。將源微程序翻譯成二進(jìn)制碼的程序叫做微編譯程序。微程序設(shè)計(jì)基本上沿用了程序設(shè)計(jì)的方法,可以仿照程序設(shè)計(jì)語言來建立微程序設(shè)計(jì)語言,因此可以把它分成初級(jí)的和高級(jí)的兩種類型。初級(jí)的微程序設(shè)計(jì)語言有微指令語言、微匯編語言、框圖語言等。高級(jí)微程序設(shè)計(jì)語言類似于高級(jí)程序設(shè)計(jì)語言,比較接近于數(shù)學(xué)描述或自然語言。第62頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)微匯編語言與匯編語言相似,是用符號(hào)表示微指令的語言。微程序設(shè)計(jì)者先用微匯編語言編制源微程序,然后把它輸入計(jì)算機(jī)中利用微匯編程序翻譯成由0和1兩種代碼組成的微程序。微匯編程序中的一條語句和微程序中的一條微指令是一一對(duì)應(yīng)的,這點(diǎn)也與匯編語言相似。垂直微指令一般由一個(gè)微操作碼字段,一個(gè)或少數(shù)幾個(gè)操作數(shù)控制字段組成,通常只指定一種運(yùn)算(或控制)操作,與機(jī)器指令相似,它的微匯編語言語句很像機(jī)器的匯編語言語句。水平型微指令通常由多個(gè)字段或較多位代碼組成,其中各個(gè)“字段”或各“位”所定義的微命令可以并行執(zhí)行,因此描述水平型微指令的微語句就比垂直型微指令長(zhǎng)且復(fù)雜。第63頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)高級(jí)微語言,類似于程序設(shè)計(jì)中的高級(jí)語言。如用高級(jí)微語言來描述圖6.30相應(yīng)的源微程序,那么可寫成:K:A+B→AK+1:IF(A(0)=0)THEN(GOTOK+3)K+2:0-A→AK+3:A→M(D)上述源微程序表示對(duì)A,B兩數(shù)相加,并將結(jié)果的絕對(duì)值送存儲(chǔ)器單元D,其中A(0)為符號(hào)位。該源微程序在編譯時(shí),根據(jù)硬件及微指令的并行操作能力進(jìn)行優(yōu)化,盡量減少微指令數(shù)。第64頁,共118頁,2023年,2月20日,星期四6.4微程序設(shè)計(jì)技術(shù)微程序設(shè)計(jì)人員希望能有一種既便于描述微程序又能盡量接近數(shù)據(jù)描述,既能與機(jī)器無關(guān),又能翻譯成高效率微碼的微高級(jí)語言。但到目前為止,這還是設(shè)計(jì)人員為之奮斗的目標(biāo)。當(dāng)前能付之實(shí)用的能描述水平型微指令的語言還是微匯編語言。第65頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)在圖6.8所示的運(yùn)算控制器邏輯圖中,由“時(shí)序控制信號(hào)形成部件”產(chǎn)生控制計(jì)算機(jī)各部分操作所需的控制信號(hào)。這個(gè)部件的組成一般有兩種方式,其一為微程序控制方式,另一種即是下面要討論的硬布線控制方式,由于這些信號(hào)是通過邏輯電路直接連線而產(chǎn)生的,所以又稱為組合邏輯控制方式。組合邏輯控制器的核心部件就是微操作產(chǎn)生部件。微操作產(chǎn)生部件,是采用組合邏輯設(shè)計(jì)思想,以布爾代數(shù)為主要工具設(shè)計(jì)而成。它的輸入信號(hào)來自指令譯碼器的輸出、時(shí)序發(fā)生器的時(shí)序信號(hào)及程序運(yùn)行的結(jié)果特征及狀態(tài)。它的輸出是一組帶有時(shí)間標(biāo)志的微操作控制信號(hào)。每個(gè)微操作控制信號(hào)是指令、時(shí)序、結(jié)果特征及狀態(tài)等的邏輯函數(shù),可表示為:微操作=周期·節(jié)拍·脈沖·指令碼·其它條件第66頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)一、時(shí)序與節(jié)拍一條指令的實(shí)現(xiàn)可分成取指、計(jì)算地址、取數(shù)及執(zhí)行等幾個(gè)步驟。在微程序控制方式中,每一步由一條微指令實(shí)現(xiàn),而在這里則由指令的操作碼直接控制并產(chǎn)生實(shí)現(xiàn)上述各步驟所需的控制信號(hào)。在大部分情況下,每一步由一個(gè)機(jī)器周期實(shí)現(xiàn),如何區(qū)分一條指令的四個(gè)機(jī)器周期呢?可以考慮用兩位計(jì)數(shù)器的譯碼輸出來表示當(dāng)前所處的機(jī)器周期,如圖6.31所示;或用四位觸發(fā)器來分別表示四個(gè)周期,當(dāng)機(jī)器處于某一周期時(shí),相應(yīng)的觸發(fā)器處于“1”狀態(tài),而其余三個(gè)觸發(fā)器則處于“0”狀態(tài),四位移位寄存器即可實(shí)現(xiàn)此功能。第67頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)設(shè)以cy1,cy2,cy3,cy4分別表示四個(gè)機(jī)器周期,在初始化(reset)時(shí),令cy1處于“1”狀態(tài),其余的均處于“0”狀態(tài),即機(jī)器處于取指周期。然后實(shí)現(xiàn)循環(huán)移位,可保證四個(gè)觸發(fā)器中有一位且僅有一位處于“1”狀態(tài)。第68頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)由于每條指令的功能不同,所以所需的機(jī)器周期數(shù)可能就不相同,因此某些指令可能缺少某個(gè)周期(例如轉(zhuǎn)移指令),而有些復(fù)雜指令的某個(gè)周期則需要延長(zhǎng)(例如乘法指令的執(zhí)行周期),從而使得上述計(jì)數(shù)器或移位寄存器的工作時(shí)序發(fā)生變化,而且其變化規(guī)律與指令有關(guān)。例如,執(zhí)行A指令時(shí)需要四個(gè)機(jī)器周期,因此計(jì)數(shù)器的變化規(guī)律是00→01→10→11;而執(zhí)行B指令時(shí)僅需要三個(gè)機(jī)器周期(例如不用計(jì)算地址),則計(jì)數(shù)器的變化規(guī)律為00→10→11,據(jù)此可列出真值表(表6.3)。表6.3中cyA,cyB表示當(dāng)前周期的計(jì)數(shù)器狀態(tài),cyA’,cyB'表示下一周期計(jì)數(shù)器狀態(tài)。第69頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第70頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)根據(jù)真值表列出表達(dá)式:對(duì)于A指令,其表達(dá)式為
cyA’=cyA#cyB+cyAcyB#;
cyB’=cyA#cyB#+cyAcyB#=cyB#。
對(duì)于B指令,其表達(dá)式為
cyA’=cyA#cyB#+cyAcyB#=cyB#;
cyB’=cyAcyB#。根據(jù)表達(dá)式得出邏輯圖6.32。第71頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第72頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)圖6.32為僅有兩條指令的邏輯圖,實(shí)際機(jī)器有幾十條~幾百條指令,根據(jù)指令功能列出每條指令的機(jī)器周期變化規(guī)律,最后歸納出幾種情況,將情況相同的指令歸為一類,然后列出表達(dá)式,畫出邏輯圖。假如,要延長(zhǎng)某個(gè)機(jī)器周期時(shí)間,封鎖CP是最簡(jiǎn)單的方法,也可以用控制計(jì)數(shù)器輸入的方法,邏輯圖要復(fù)雜一些。第73頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)二、操作控制信號(hào)的產(chǎn)生1、操作碼譯碼器指令由操作碼與地址碼兩部分組成,其中操作碼表示當(dāng)前正在執(zhí)行的是什么指令,例如是加法指令還是減法指令等等。各條指令所需實(shí)現(xiàn)的操作,有些是相同的,有些是不同的,隨指令而異。由譯碼器的輸出和機(jī)器周期狀態(tài)cy1~cy4作為輸入,使用邏輯電路產(chǎn)生操作控制信號(hào),其框圖如圖6.33所示。第74頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第75頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)
2、操作控制信號(hào)的產(chǎn)生以加法指令為例,如前所述,假設(shè)一條加法指令的功能是由四個(gè)機(jī)器周期cy1~cy4完成的,分別為取指、計(jì)算有效地址、取操作數(shù)、進(jìn)行加法運(yùn)算并送結(jié)果。機(jī)器邏輯圖仍如圖6.8所示,所以完成一條指令的操作所需的操作信號(hào)仍如前所示。參考圖6.7的波形圖,在取指周期要完成從存儲(chǔ)器取出指令送指令寄存器以及將指令計(jì)數(shù)器加1,為取下一條指令作好準(zhǔn)備。第76頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第77頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第78頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)為訪問存儲(chǔ)器,需要將地址送往地址總線(PC→AB),并發(fā)出啟動(dòng)存儲(chǔ)器所需的信號(hào)ADS、M/IO#及W/R#,然后將取得的指令送往指令寄存器(DB→IR)。用邏輯式表示:
PC→AB=加法指令·
cy1(6.6)ADS=加法指令·cy1·T1(6.7)M/IO#=加法指令·cy1(6.8)W/R#=(加法指令·cy1)#(6.9)DB→IR=加法指令·cy1(6.10)PC+1=加法指令·cy1(6.11)第79頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)公式6.6~6.11存在一個(gè)問題,即在取指周期,當(dāng)前這條指令尚未取出,在IR中保留的還是上一條指令內(nèi)容,因此不可能用它來產(chǎn)生控制本條指令所需的信號(hào),所以在取指周期只允許安排與指令類型無關(guān)的操作,因此應(yīng)將這些公式中的“加法指令”取消,于是將式(6.6)改寫為:
PC→AB=cy1(6.12)
6.7~6.11應(yīng)同樣修改。第80頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)同樣,在計(jì)算地址周期cy2完成有效地址的計(jì)算((rs1)+Disp),為此要將rs1的內(nèi)容取出與IR中的位移量一起送ALU,發(fā)出rs1→GR(送通用寄存器地址),(rs1)→ALU,Disp→ALU以及“+”命令,最后將運(yùn)算結(jié)果送地址總線,發(fā)出ALU+AR信號(hào)。邏輯表達(dá)式:
rs1→GR=加法指令·cy2(6.13)(rs1)→ALU=加法指令·cy2(6.14)……ALU→AR=加法指令·cy2(6.15)第81頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)式(6.13)一式(6.15)的右邊全部相同。邏輯圖6.34只考慮了加法指令計(jì)算有效地址時(shí)的一種情況。然后按同樣方法列出后面兩個(gè)機(jī)器周期所需產(chǎn)生的控制信號(hào)的邏輯表達(dá)式。對(duì)每一條指令都進(jìn)行同樣的分析,得出邏輯表達(dá)式。第82頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)對(duì)所有指令的全部表達(dá)式進(jìn)行綜合分析后可得出下述結(jié)論:
(1)取指周期cy1所產(chǎn)生的信號(hào),對(duì)所有指令都是相同的,即與當(dāng)前執(zhí)行的指令無關(guān),邏輯式得到最簡(jiǎn)單的形式。
(2)通常,同一個(gè)控制信號(hào)在若干條指令的某些周期(或再加上一些條件)中都需要,為此需要把它們組合起來。第83頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)例如,“+”命令在加法指令的cy2(計(jì)算有效地址)與cy4(操作數(shù)相加)時(shí)需要;在減法指令的cy2(計(jì)算有效地址)時(shí)需要;在轉(zhuǎn)移指令的cy2(計(jì)算轉(zhuǎn)移地址)時(shí)需要;……。用邏輯式表示如下:“+”=加法指令·(cy2+cy4)+減法指令·cy2+轉(zhuǎn)移指令·cy2+…=加法指令·cy2+加法指令·cy4+減法指令·cy2+轉(zhuǎn)移指令·cy2+…(6.16)上式中的加法指令、減法指令等信號(hào)通常由操作碼譯碼器輸出,譯碼器實(shí)際上是由各操作碼的二進(jìn)制代碼作為輸入的一組“與門”。設(shè)某機(jī)有7位操作碼(OP0~OP6),已知加法指令的操作碼為0001100,則形成加法指令信號(hào)的邏輯表達(dá)式為:
加法指令=OP0#·OP1#·OP2#·OP3·OP4·OP5#·OP6#(6.17)第84頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)從式(6.16)可以看出,利用兩級(jí)門電路(第一級(jí)為與門,第二級(jí)為或門)可產(chǎn)生“+”命令,但有時(shí)受邏輯門輸入端限制(如上式的乘積項(xiàng)超過第二級(jí)或門所允許的最大輸入端數(shù))將修改邏輯式,此時(shí)就可能要增加邏輯電路。假如,信號(hào)所經(jīng)過的級(jí)數(shù)也增加的話,還將增加延遲時(shí)間。另外在實(shí)現(xiàn)時(shí)還有負(fù)載問題。例如,操作碼譯碼器的輸出要控制很多信號(hào),需注意是否會(huì)超載,必要時(shí)可增強(qiáng)譯碼器輸出驅(qū)動(dòng)能力或增加器件或修改邏輯。第85頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)(3)同種類型的指令所需的控制信號(hào)大部分是相同的,僅有少量區(qū)別,例如算術(shù)運(yùn)算指令中的加法指令(ADD)與減法指令(SUB),除了一個(gè)信號(hào)(“+”命令或“-”命令)以外,其余的控制信號(hào)全部相同。整個(gè)算術(shù)邏輯運(yùn)算指令僅ALU的操作命令以及是否置狀態(tài)位(N,Z,V,C)上有差別。不同類型的指令,其控制信號(hào)的差別就比較大。(4)在確定指令的操作碼時(shí)(即對(duì)具體指令賦于二進(jìn)制操作碼),為了便于邏輯表達(dá)式的化簡(jiǎn)以減少邏輯電路數(shù)量,往往給予特別關(guān)注。第86頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)例如,某機(jī)有128條指令,7位操作碼(OP0~OP6),其中有十六條算術(shù)邏輯運(yùn)算指令,那么可以令這些指令的三位操作碼完全相等(例如OP0~OP2為001),而OP3~OP6分別表示16條指令,設(shè)命令A(yù)是所有算術(shù)邏輯指令在cy2周期中都需產(chǎn)生的,則:
A=加法指令·cy2+減法指令·cy2+邏輯加指令·cy2+…=(加法指令+減法指令+邏輯加指令+…)·cy2=OP0#·OP1#·OP2·cy2從16項(xiàng)簡(jiǎn)化成1項(xiàng),用一個(gè)與門即可實(shí)現(xiàn)。第87頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)表6.4是Sun4工作站CPU(SPARC)部分指令的操作碼。該機(jī)器的操作碼有8位,表中僅列出7位操作碼,對(duì)于表內(nèi)所列指令,另一位操作碼均為1。加法指令有四條:ADD,ADDX,ADDcc,ADDXcc。尾部標(biāo)以CC表示根據(jù)運(yùn)算結(jié)果置狀態(tài)位,否則不置位;X表示加進(jìn)位。以LD開始的指令為取數(shù)指令,LD取單字,LDUB為取無符號(hào)字節(jié),LDSB為取帶符號(hào)的字節(jié),LDUH為取無符號(hào)半字,LDSH為取帶符號(hào)半字,LDD為取雙字。以A結(jié)尾的指令為特權(quán)指令。以ST開始的指令為存數(shù)指令。SWAP為數(shù)據(jù)交換指令。
第88頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第89頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)三、控制器的組成圖6.35是硬布線控制的控制器框圖。由硬布線邏輯(組合邏輯)部件產(chǎn)生全機(jī)所需的操作命令(包括控制電位與打入脈沖)。1、程序計(jì)數(shù)器和中斷控制邏輯在圖6.35中程序計(jì)數(shù)器的輸入有四種來源:開機(jī)后的reset信號(hào),將PC置以初始地址;然后當(dāng)順序執(zhí)行指令時(shí),由PC+1形成下一條指令地址;當(dāng)程序轉(zhuǎn)移時(shí),由ALU送來轉(zhuǎn)移地址(通過ALU部件計(jì)算有效地址);當(dāng)有外來中斷請(qǐng)求信號(hào)時(shí),若CPU響應(yīng)中斷,則由中斷控制邏輯部件產(chǎn)生中斷入口地址。第90頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第91頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)2、譯碼器如操作碼為7位,則允許計(jì)算機(jī)最多設(shè)置128條指令,譯碼器的最基本形式為:以7位操作碼為輸入,在輸出的128條線中,在任何時(shí)候只有1根為高電位,其余均為低電位(或只有1根為低電位,其余均為高電位),每1根輸出線代表一條指令。第92頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)3、硬布線邏輯的實(shí)現(xiàn)途徑采用PLA,PAL和GAL電路實(shí)現(xiàn),要求與設(shè)計(jì)的邏輯表達(dá)式基本一致;當(dāng)實(shí)際邏輯更為復(fù)雜時(shí),可將若干個(gè)電路串、并聯(lián)組合使用以實(shí)現(xiàn)復(fù)雜的邏輯關(guān)系。另外也可采用半定制電路門陣列實(shí)現(xiàn)。在VLSI的CPU中,硬布線邏輯電路直接集成在CPU芯片中,這種全定制電路集成度高、速度高,并可縮小機(jī)器體積。唯一的缺點(diǎn)是芯片投產(chǎn)后,不允許對(duì)邏輯進(jìn)行任何修改,因此要求設(shè)計(jì)絕對(duì)正確,否則返工的工作量很大。對(duì)于復(fù)雜的機(jī)器,有可能因設(shè)計(jì)錯(cuò)誤而延長(zhǎng)設(shè)計(jì)周期。第93頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)【例】設(shè)計(jì)ADD、SUB、JC指令的硬布線控制器(組合邏輯控制器)【解】:①根據(jù)圖6.8CPU的結(jié)構(gòu)圖寫出每條指令的操作流程圖并分解成微操作序列如下:第94頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第95頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)②選同步控制方式和三級(jí)時(shí)序:安排四個(gè)機(jī)器周期:取指周期cy1、計(jì)算地址周期cy2、取數(shù)周期cy3、執(zhí)行周期cy4;每個(gè)機(jī)器周期安排二個(gè)節(jié)拍T1和T2,每個(gè)節(jié)拍中有一個(gè)節(jié)拍脈沖,時(shí)序如下圖所示:第96頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第97頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)③列出微操作時(shí)間表根據(jù)微操作流程安排的時(shí)間表如下表所示。第98頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第99頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第100頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)④綜合微操作表達(dá)式ADD、SUB、JC指令的組合邏輯控制器邏輯電路框圖如下圖所示。第101頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第102頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)四、硬布線控制邏輯設(shè)計(jì)中的若干問題1、指令操作碼的代碼分配指令系統(tǒng)確定后,指令操作碼的分配對(duì)組合邏輯電路的組成影響很大,合理地分配操作碼能節(jié)省控制部分的電路、減少延遲時(shí)間。某些機(jī)器采用幾種不同長(zhǎng)度的指令,常用的指令短些,這樣可使程序少占用存儲(chǔ)器空間,但指令的操作碼就不太規(guī)整了。上述這些情況都可能使指令中操作碼字段的長(zhǎng)度與位置都不固定。在一臺(tái)計(jì)算機(jī)中存在多種指令格式,增加了控制邏輯電路的復(fù)雜性與零亂性。第103頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)2、確定機(jī)器周期、節(jié)拍與主頻取決于指令的功能及器件的速度。一般先考慮幾條典型指令諸如加法指令、轉(zhuǎn)移指令的執(zhí)行步驟及每一步驟時(shí)間,被選擇的典型指令要能反映出計(jì)算機(jī)的各主要部件的速度。一般來說機(jī)器的周期基本上是根據(jù)存儲(chǔ)器的速度及執(zhí)行周期的基本時(shí)間確定的。隨之機(jī)器的主頻、每一機(jī)器周期的節(jié)拍(電位)與時(shí)鐘數(shù)也就基本上確定了。第104頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)3、根據(jù)指令功能,確定每一條指令所需的機(jī)器周期數(shù)以及每一周期所完成的操作大部分指令的執(zhí)行過程與典型指令的情況相類似,甚至更簡(jiǎn)單些,但有些指令的操作比較復(fù)雜。例如,乘法指令,執(zhí)行時(shí)間較長(zhǎng),要作特殊處理。通常采取的辦法是:延長(zhǎng)這條指令的執(zhí)行周期或重復(fù)多次出現(xiàn)執(zhí)行周期。對(duì)于乘法運(yùn)算的具體做法是在一個(gè)基本機(jī)器周期內(nèi)完成一次“加法與移位”操作。也就是說將該條指令的執(zhí)行周期延長(zhǎng)到N個(gè)基本機(jī)器周期(某些簡(jiǎn)單指令的執(zhí)行周期仍為一個(gè)基本機(jī)器周期)。第105頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)4、綜合所有指令的每一個(gè)操作命令(寫出邏輯表達(dá)式,并化簡(jiǎn)之)例如“+”操作命令,在考慮了乘法和除法指令后,將增加表達(dá)式內(nèi)容如下:“+”=加法指令(cy2+cy4)+減法指令·cy2+轉(zhuǎn)移指令·cy2+乘法指令(cy2+cy4·y31)+除法指令(cy2~-cy4XN)十…式中y31為乘數(shù)寄存器的最低位內(nèi)容。又如存儲(chǔ)器的讀命令表達(dá)式:“讀”=cy1+加法指令cy3+減法指令cy3+…其中第一項(xiàng)為取指時(shí)的讀命令,不受操作碼控制。第106頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)關(guān)于化簡(jiǎn)問題,除了對(duì)邏輯式進(jìn)行化簡(jiǎn)以外,還可結(jié)合機(jī)器本身的特點(diǎn)進(jìn)行,下面再舉幾個(gè)例子。(1)假設(shè)操作命令A(yù)和操作命令B(A=C+D,B=C+E)中某些項(xiàng)(即邏輯表達(dá)式C)是相同的,那么可考慮把它作為公共項(xiàng),先用邏輯電路實(shí)現(xiàn),然后再與其他項(xiàng)組成A,B。圖6.36(a)(b)是實(shí)現(xiàn)相同功能的邏輯圖,圖6.36(b)比圖6.36(a)少用一組實(shí)現(xiàn)表達(dá)式C的邏輯電路,其好處是顯然可見的。第107頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)第108頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)(2)有些操作命令對(duì)大多數(shù)指令(設(shè)這些指令的集合為I1)是需要的,而僅對(duì)少數(shù)指令(設(shè)這些指令的集合為I2)不允許產(chǎn)生,那么可用下式表示:
A=I1·B=I2#·B其中B為邏輯表達(dá)式,I1+I2包含機(jī)器的所有指令,由于I2的指令數(shù)比I1少,因此邏輯電路得以簡(jiǎn)化。(3)在實(shí)現(xiàn)某些指令時(shí),有一些操作命令其存在與否不影響指令的功能,此時(shí)可根據(jù)怎樣對(duì)簡(jiǎn)化有利而進(jìn)行舍取。第109頁,共118頁,2023年,2月20日,星期四6.5硬布線控制的計(jì)算機(jī)五、硬布線控制與微程序控制的比較硬布線控制器與微程序控制器,除了操作控制信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版高校專利技術(shù)轉(zhuǎn)讓合同
- 2024-2030年中國(guó)大棗飲料行業(yè)銷售模式及投資盈利預(yù)測(cè)報(bào)告
- 2024-2030年中國(guó)城市電視臺(tái)行業(yè)發(fā)展策略及投資運(yùn)作模式分析報(bào)告
- 2024年農(nóng)業(yè)產(chǎn)業(yè)投資合同擔(dān)保協(xié)議3篇
- 2024年校園水電設(shè)施改造與維護(hù)服務(wù)合同3篇
- 馬鞍山師范高等??茖W(xué)?!段锫?lián)網(wǎng)應(yīng)用概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年創(chuàng)新創(chuàng)業(yè)項(xiàng)目投資評(píng)估與咨詢服務(wù)協(xié)議3篇
- 2024年度自動(dòng)駕駛汽車勞動(dòng)合同與聘用合同3篇
- 2024年標(biāo)準(zhǔn)化信息技術(shù)外包服務(wù)合同一
- 2024年度行政合同科技創(chuàng)新合同糾紛救濟(jì)與保障協(xié)議2篇
- 機(jī)器學(xué)習(xí)(山東聯(lián)盟)智慧樹知到期末考試答案章節(jié)答案2024年山東財(cái)經(jīng)大學(xué)
- 德勤公司概況簡(jiǎn)介
- DB32∕T 2156-2012 電梯能耗測(cè)試及能效分級(jí)
- 瀝青路面日常養(yǎng)護(hù)及維修施工要點(diǎn)(大量附圖共143頁)
- 《色彩基礎(chǔ)知識(shí)》PPT課件(詳解)
- 《保健按摩師》(二級(jí))理論知識(shí)鑒定要素細(xì)目表
- 甘蔗制糖簡(jiǎn)介
- 三秦出版社五年級(jí)上冊(cè)綜合實(shí)踐教案
- 屋頂分布式光伏項(xiàng)目安全文明施工控制措施
- 水泥保證供應(yīng)實(shí)施方案及服務(wù)承諾書
- 2022機(jī)要密碼工作總結(jié)機(jī)要室工作總結(jié).doc
評(píng)論
0/150
提交評(píng)論