版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)組成與結(jié)構(gòu)計(jì)算機(jī)組成與結(jié)構(gòu)本科生課程教學(xué)本科生課程教學(xué)計(jì)算機(jī)學(xué)院q本課程主要講授計(jì)算機(jī)系統(tǒng)的硬件和軟件構(gòu)成方法,包括硬件系統(tǒng)中運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備和總線系統(tǒng)的構(gòu)成原理等;并與當(dāng)代先進(jìn)的計(jì)算機(jī)技術(shù)相結(jié)合。是計(jì)算機(jī)科學(xué)與技術(shù)本科專業(yè)核心課程。q 本課程著重計(jì)算機(jī)系統(tǒng)組成與結(jié)構(gòu)方面的教學(xué)和研究。本課程著重計(jì)算機(jī)系統(tǒng)組成與結(jié)構(gòu)方面的教學(xué)和研究。計(jì)算機(jī)結(jié)構(gòu)定義為系統(tǒng)程序員所能見到的計(jì)算機(jī)硬件特性;計(jì)算機(jī)組成是指計(jì)算機(jī)硬件的具體實(shí)現(xiàn)。計(jì)算機(jī)學(xué)院q計(jì)算機(jī)的硬件系統(tǒng)q控制器的組成q微程序控制的計(jì)算機(jī)q微程序設(shè)計(jì)技術(shù)q硬布線控制的計(jì)算機(jī)q控制器的控制方式q流水線工作原理qCPU舉例q
2、計(jì)算機(jī)的加電及控制過程計(jì)算機(jī)學(xué)院q本章主要研究計(jì)算機(jī)控制器的組成原理。q要求掌握在計(jì)算機(jī)運(yùn)行過程中各硬件部件的作用,了解CPU中各部件的操作過程及其實(shí)現(xiàn)方法;重點(diǎn)掌握控制器如何實(shí)現(xiàn)各指令的功能,如何保證逐條指令的連續(xù)執(zhí)行過程。計(jì)算機(jī)學(xué)院q在實(shí)際進(jìn)行微程序設(shè)計(jì)時(shí),應(yīng)注意以下問題:在實(shí)際進(jìn)行微程序設(shè)計(jì)時(shí),應(yīng)注意以下問題:(1) 如何縮短微指令字長;(2) 如何減少微程序長度;(3) 如何提高微程序的執(zhí)行速度。計(jì)算機(jī)學(xué)院一、微指令的編譯法微指令的編譯法(編碼譯碼方法編碼譯碼方法)q微指令由控制字段和下址字段組成,這里討論幾種常用的控制字段編譯法。1、直接控制編碼、直接控制編碼(不譯碼法不譯碼法)q直
3、接控制編碼是指微指令的微命令字段中每一位都代表一個(gè)微命令。設(shè)計(jì)微指令時(shí),選用或不選用某個(gè)微命令,只要將表示該微命令的對應(yīng)位設(shè)置成1或0就可以了。因此,微命令的產(chǎn)生不需譯碼。 6.3節(jié)節(jié)中所講的就是這種方法。中所講的就是這種方法。計(jì)算機(jī)學(xué)院q這種編碼的優(yōu)點(diǎn)是簡單、直觀,執(zhí)行速度快,操作并行性最好。q其缺點(diǎn)是微指令字長過長,使控制存儲(chǔ)器單元的位數(shù)過多。而且,在給定的任何一個(gè)微指令中,往往只需部分微命令,因此只有部分位置1,造成有效的空間不能充分利用。q在某些復(fù)雜的計(jì)算機(jī)中,微命令甚至可多達(dá)三四百個(gè),這使微指令字長達(dá)到難以接受的地步,并要求機(jī)器有大容量控制存儲(chǔ)器,為了改進(jìn)設(shè)計(jì)出現(xiàn)了以下各種編譯法。計(jì)
4、算機(jī)學(xué)院2、字段直接編譯法、字段直接編譯法q 計(jì)算機(jī)中的各個(gè)控制門,在任一微周期內(nèi),不可能同時(shí)被打開,而且大部分是關(guān)閉的(即相應(yīng)的控制位為“o”)。所謂微周期,指的是一條微指令所需的執(zhí)行時(shí)間。q 如果有若干個(gè)(一組)微命令,在每次選擇使用它們的微周期內(nèi),只有一個(gè)微命令起作用,那么這若干個(gè)微命令是互斥的互斥的。q例如,向主存儲(chǔ)器發(fā)出的讀命令和寫命令是互斥的;又如在ALU部件中,送往ALU兩個(gè)輸入端的數(shù)據(jù)來源往往不是唯一的,而每個(gè)輸入端在任一微周期中只能輸入一個(gè)數(shù)據(jù),因此控制該輸入門的微命令是互斥的。選出互斥的微命令,并將這些微命令編成一組,成為微指令字的一個(gè)字段,用二進(jìn)制編碼來表示。計(jì)算機(jī)學(xué)院q
5、 相斥性微命令和相容性微命令相斥性微命令和相容性微命令同一微周期中不能同時(shí)出現(xiàn)的微命令稱為相斥性微命令;在同一微周期中可以同時(shí)出現(xiàn)的微命令稱為相容性微命令。 q分段直接編譯法分段直接編譯法將微指令的微命令字段分成若干小字段,把相斥性微命令組合在同一字段中,而把相容性微命令組合在不同的字段中,每個(gè)字段獨(dú)立編碼,每種編碼代表一個(gè)微命令且各字段編碼含義單獨(dú)定義,與其它字段無關(guān),這就稱為分段直接編譯法。計(jì)算機(jī)學(xué)院q分段的原則分段的原則 A. 互斥性的微命令分在同一段內(nèi),兼容性的微命令分在不同段內(nèi)。 B. 與數(shù)據(jù)通路結(jié)構(gòu)相適應(yīng)。 C. 每個(gè)小段中包含的信息位不能太多,否則將增加譯碼線路的復(fù)雜 性和譯碼時(shí)
6、間。 D. 一般每個(gè)小段還要留出一個(gè)狀態(tài),表示本字段不發(fā)出任何現(xiàn)行命令。因此當(dāng)某字段的長度為三位時(shí),最多只能表示七個(gè)互斥的微命令,通常用000表示不操作。計(jì)算機(jī)學(xué)院q【例如】,將7個(gè)互斥的微命令編成一組,用三位二進(jìn)制碼分別表示每個(gè)微命令,那么在微指令中,該字段就從7位減成3位,縮短了微指令長度。而在微指令寄存器的輸出端,為該字段增加一個(gè)譯碼器,該譯碼器的輸出即為原來的微命令(圖6.21)。計(jì)算機(jī)學(xué)院q字段長度與所能表示的微命令數(shù)的關(guān)系如下: 字段長度 微命令數(shù) 2位 23 3位 47 4位 815q一般每個(gè)字段要留出一個(gè)代碼,表示本段不發(fā)出任何微命令,因此當(dāng)字段長度為3位時(shí),最多只能表示7個(gè)互
7、斥的微命令,通常代碼000表示不發(fā)微命令。計(jì)算機(jī)學(xué)院3、字段間接編譯法、字段間接編譯法q如果在字段直接編譯法中,規(guī)定一個(gè)字段的某些微命令,要兼由另一字段中的某些微命令來解釋,稱為字段間接編譯法。q分段間接編譯法是在直接編譯法基礎(chǔ)上,進(jìn)一步縮短微指令字長的一種編碼方法。在這種編譯法中,一個(gè)字段的含義不僅決定于本字段編碼,還兼由其它字段來解釋,以便使用較少的信息位表示更多的微命令。計(jì)算機(jī)學(xué)院q 圖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è)
8、微命令,僅當(dāng)A為000時(shí)例外,此時(shí)什么控制命令都不產(chǎn)生。q 本方法進(jìn)一步減少了指令長度,但很可能會(huì)削弱微指令的并行控制能力,因此通常只作為直接編譯法的一種輔助手段。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院4、常數(shù)源字段、常數(shù)源字段Eq 在微指令中,一般設(shè)有一個(gè)常數(shù)源字段E,就如指令中的直接操作數(shù)一樣。E字段一般僅有幾位,用來給某些部件發(fā)送常數(shù),故有時(shí)稱為發(fā)射字段。該常數(shù)有時(shí)作為操作數(shù)送入ALU運(yùn)算;有時(shí)作為計(jì)算器初值,用來控制微程序的循環(huán)次數(shù)等。q 5、混合控制法、混合控制法q直接控制法與譯碼控制法的混合使用。q 6、其他、其他q 諸如微操作碼編譯法(見“6.4.3微指令格式”)等將在下面介紹。計(jì)算機(jī)學(xué)院二、二、
9、微程序流的控制微程序流的控制q當(dāng)前正在執(zhí)行的微指令,稱為現(xiàn)行微指令現(xiàn)行微指令,現(xiàn)行微指令所在的控制存儲(chǔ)器單元的地址稱為現(xiàn)行微地址現(xiàn)行微地址,現(xiàn)行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令稱為后繼微指令后繼微指令,后繼微指令所在的控存單元地址稱為后繼微地址后繼微地址。q所謂微程序流的控制是指當(dāng)前微指令執(zhí)行完畢后,怎樣控制產(chǎn)生后繼微地址。計(jì)算機(jī)學(xué)院q產(chǎn)生后繼微指令地址的兩種方法:產(chǎn)生后繼微指令地址的兩種方法: (1) 由指令操作碼譯碼器產(chǎn)生后繼微地址。由指令操作碼譯碼器產(chǎn)生后繼微地址。 (2) 由微指令的下址字段指出后繼微地址。由微指令的下址字段指出后繼微地址。q與程序設(shè)計(jì)相似,在微程序設(shè)計(jì)中除了順序
10、執(zhí)行微程序外還存在轉(zhuǎn)移功能和微循環(huán)程序與微子程序等,這將影響下址的形成。下面介紹幾種常見的產(chǎn)生后繼微指令地址的方法。計(jì)算機(jī)學(xué)院1、產(chǎn)生后繼微指令地址的幾種方法產(chǎn)生后繼微指令地址的幾種方法(1)(1)以增量方式產(chǎn)生后繼微地址以增量方式產(chǎn)生后繼微地址q在順序執(zhí)行微指令時(shí),后繼微地址由現(xiàn)行微地址加上一個(gè)增量在順序執(zhí)行微指令時(shí),后繼微地址由現(xiàn)行微地址加上一個(gè)增量( (通常為通常為1)1)形成的;而在非順序執(zhí)行時(shí)則要產(chǎn)生一個(gè)轉(zhuǎn)移微地址形成的;而在非順序執(zhí)行時(shí)則要產(chǎn)生一個(gè)轉(zhuǎn)移微地址,如圖,如圖6 62323所示。所示。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q機(jī)器加電后執(zhí)行的第一條微指令地址(微程序入口)來自專門的硬件電路,
11、控制實(shí)現(xiàn)取指令操作,然后由指令操作碼產(chǎn)生后繼微地址。接下去,若順序執(zhí)行微指令,則將現(xiàn)行微地址(在微程序計(jì)數(shù)器PC中)+1產(chǎn)生后繼微地址;若遇到轉(zhuǎn)移類微指令,則由PC與形成轉(zhuǎn)移微地址的邏輯電路組合成后繼微地址。q例如,利用該邏輯電路的輸出與PC低位進(jìn)行邏楫加,形成后繼微地址。這種方式可使微指令的下址字段很短,僅起選擇作用。其缺點(diǎn)是微程序轉(zhuǎn)移很不靈活,使得微程序在控存中的物理空間分配相當(dāng)困難。計(jì)算機(jī)學(xué)院q 在圖6.23的“計(jì)數(shù)器”方式的原理圖中,PC兼作控制存儲(chǔ)器的地址寄存器,輸入有四個(gè)來源。下址字段僅有兩位,其功能是選擇三個(gè)輸入源中的一個(gè)作為PC的輸入,而微程序入口是由專門的硬件產(chǎn)生的,不受下址
12、字段控制。q(2)增量與下址字段結(jié)合產(chǎn)生后繼微地址增量與下址字段結(jié)合產(chǎn)生后繼微地址q在圖在圖6.24中將微指令的下址字段分成兩部分:轉(zhuǎn)移控制字段中將微指令的下址字段分成兩部分:轉(zhuǎn)移控制字段BCF和轉(zhuǎn)移地址字段和轉(zhuǎn)移地址字段BAF,當(dāng)微程序?qū)崿F(xiàn)轉(zhuǎn)移時(shí),將BAF送PC,否則順序執(zhí)行下一條微指令(PC+1)。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q執(zhí)行微程序條件轉(zhuǎn)移時(shí),決定轉(zhuǎn)移與否的硬件條件有好幾種。執(zhí)行微程序條件轉(zhuǎn)移時(shí),決定轉(zhuǎn)移與否的硬件條件有好幾種。例如,“運(yùn)算結(jié)果為零”、“溢出”、“已完成指定的循環(huán)次數(shù)”等。在圖6.24中,我們假設(shè)有八種轉(zhuǎn)移情況,定義了八個(gè)微命令(BCF取3位),在圖中設(shè)置計(jì)數(shù)器CT,用來控制
13、循環(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。q由BCF定義的八個(gè)微命令見表6.2。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院qBCF=0,順序執(zhí)行微命令,PC+I為后繼微地址。qBCF=1,條件轉(zhuǎn)移微命令,當(dāng)運(yùn)算結(jié)果為0時(shí),將BAF送PC,否則PC+1 PC,qBCF=2,條件轉(zhuǎn)移微命令,當(dāng)運(yùn)算結(jié)果溢出時(shí),將BAF送PC,否則, PC+1+PC。qBCF=3,無條件轉(zhuǎn)移微命令,將BAF送PC。qBCF=4;測試循環(huán)
14、微命令,假如CT0,表示需要繼續(xù)執(zhí)行循環(huán)微命令,將循環(huán)人口微地址從BAF送PC。假如CT=0,表示循環(huán)結(jié)束,后繼微地址為PC+1。本條微命令同時(shí)完成CT-1操作。qBCF=5,轉(zhuǎn)微子程序微命令,把微子程序人口地址從BAF送PC,從而實(shí)現(xiàn)轉(zhuǎn)移。在轉(zhuǎn)移之前要把該條微指令的下一地址(PC+1)送人返回寄存器RR之中。qBCF=6,返回微命令,把RR中的返回微地址送人PC,從而實(shí)現(xiàn)從微子程序返回到原來的微程序。qBCF=7,操作碼產(chǎn)生后繼微地址的微命令,這是取指后,按現(xiàn)行指令執(zhí)行的第一條微指令。計(jì)算機(jī)學(xué)院qBAF的長度有兩種情況:的長度有兩種情況: 與PC的位數(shù)相等;可以從控制存儲(chǔ)器的任一單元取微指令
15、。 比PC短;考慮到轉(zhuǎn)移點(diǎn)在PC附近,或者在控制存儲(chǔ)器的某區(qū)域內(nèi),所以由原來的PC的若干位與BAF組合成轉(zhuǎn)移微地址。q 第一種情況,轉(zhuǎn)移靈活,但增加了微指令的長度;第二種情況,轉(zhuǎn)移地址受到限制,但可縮短微指令長度。計(jì)算機(jī)學(xué)院q (3)多路轉(zhuǎn)移方式多路轉(zhuǎn)移方式q一條微指令存在多個(gè)轉(zhuǎn)移分支的情況稱為多路轉(zhuǎn)移。多路轉(zhuǎn)移。q在執(zhí)行某條微指令時(shí),可能會(huì)遇到在若干個(gè)微地址中選擇一個(gè)作為后繼微地址的情況,最明顯的例子是根據(jù)操作碼產(chǎn)生不同的后繼微地址。q 實(shí)現(xiàn)此功能的電路通常是由PROM(可編程序只讀存儲(chǔ)器)組成的,也有把它稱為MAPROM(映像只讀存儲(chǔ)器)的。該存儲(chǔ)器的特點(diǎn)是 以指令的操作碼作為地址輸入,而
16、相應(yīng)的存儲(chǔ)單元內(nèi)容即為該指令的第一條微指令的入口地址。該存儲(chǔ)器的容量等于或略大于機(jī)器的指令數(shù),所以容量小,速度快。計(jì)算機(jī)學(xué)院q有時(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)移;兩路轉(zhuǎn)移;而根據(jù)兩種狀態(tài)來決定微地址可以有四種情況,即四路轉(zhuǎn)移。四路轉(zhuǎn)移。q 微程序設(shè)計(jì)實(shí)踐表明,實(shí)現(xiàn)兩路轉(zhuǎn)移的情況居多,其次是四路轉(zhuǎn)移,向更多路方向轉(zhuǎn)移的情況就比較少見。兩路轉(zhuǎn)移只涉及微地址的一位;四路轉(zhuǎn)移涉及微地址的兩位,一般就定在微地址的最后兩位,也就是說當(dāng)執(zhí)行轉(zhuǎn)移微指令
17、時(shí),根據(jù)條件可轉(zhuǎn)移到四個(gè)微地址中的一個(gè),這四個(gè)微地址的高位部分相等,僅是最低兩位不同。實(shí)現(xiàn)多路轉(zhuǎn)移可減少微程序的長度,對于一般條件轉(zhuǎn)移微指令(相當(dāng)于兩路轉(zhuǎn)移)來說,需要兩條微指令來完成上述四路轉(zhuǎn)移的功能。計(jì)算機(jī)學(xué)院q (4)微中斷微中斷q 微中斷與程序中斷的概念相似,在微程序執(zhí)行過程中,一旦出現(xiàn)微中斷請求信號(hào),通常在完成現(xiàn)行指令的微程序后響應(yīng)該微中斷請求,這時(shí)中止當(dāng)前正在執(zhí)行的程序,而轉(zhuǎn)去執(zhí)行微中斷處理程序,微中斷請求信號(hào)是由程序中斷請求信號(hào)引起的。q 在進(jìn)行微程序設(shè)計(jì)時(shí),已安排好微中斷處理程序在控制存儲(chǔ)器的位置,因此該微程序段的人口地址是已知的。當(dāng)CPU響應(yīng)微中斷請求時(shí),由硬件產(chǎn)生微中斷程序
18、的入口地址。當(dāng)中斷處理完畢后,再返回到原來被中斷的程序。這也是產(chǎn)生后繼微地址的一種情況。計(jì)算機(jī)學(xué)院2 2、用、用AM2900AM2900系列芯片構(gòu)成的微程序系列芯片構(gòu)成的微程序CPUCPUq圖6.25所示的系統(tǒng)中:AM2901AM2901為為4 4位運(yùn)算部件位運(yùn)算部件,包含4位ALU及16個(gè)4位通用寄存器,本系統(tǒng)將其中一個(gè)寄存器用作程序計(jì)數(shù)器PC。AM2902是為了加速進(jìn)位而采用的集成電路。AM2910AM2910為微程序控制器為微程序控制器,用于產(chǎn)生下一條微指令地址,可尋址4K字的控制存儲(chǔ)器。圖中的MAP為操作碼譯碼器產(chǎn)生本條指令的微程序入口地址。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q圖圖6.26是是AM2
19、910內(nèi)部組成框圖。內(nèi)部組成框圖。qAM2910由PC 、微堆棧、計(jì)數(shù)器/寄存器、命令譯碼器及多路地址選擇器組成。其輸出Y11一Y0直接送到控存。與圖6.24相比,它將多個(gè)邏輯電路集成在一個(gè)芯片上,并具有更強(qiáng)的功能。qAM2910的多路地址選擇器,用來選擇下一條微指令的地址,它可從片內(nèi)的微程序計(jì)數(shù)器PC、寄存器/計(jì)數(shù)器、微堆棧或直接從輸入微地址(D11D0)中選擇一個(gè)作為輸出。q微程序計(jì)數(shù)器是由12位增量器和12位寄存器組成。當(dāng)增量器的進(jìn)位輸入CI為高電平時(shí),多路器的輸出Y加1后裝入PC(即PCY十1),用于實(shí)現(xiàn)微程序的順序執(zhí)行;而當(dāng)CI為低電平時(shí),多路器的輸出Y直接裝入PC (即PCY),用
20、于實(shí)現(xiàn)一條微指令的多次執(zhí)行。 計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q寄存器/計(jì)數(shù)器由12個(gè)D型觸發(fā)器組成。當(dāng)它用作寄存器時(shí),主要用于保存一個(gè)微地址,用以實(shí)現(xiàn)微程序分支;當(dāng)它用作計(jì)數(shù)器時(shí),具有減“1”功能(受AM2910的命令碼I3I0控制),主要用于控制微程序的循環(huán)次數(shù),若裝入的初值為N,則可執(zhí)行N+1次。q微堆棧由寄存器堆和微堆棧指示器組成,其中寄存器堆可保存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),這
21、時(shí),任何壓入操作都將覆蓋掉棧頂?shù)臄?shù)據(jù)。q命令譯碼器接收從微指令有關(guān)控制字段送來的命令碼(1310)及硬件狀態(tài)CC,用來執(zhí)行AM2910的內(nèi)部操作及選擇下址輸出。計(jì)算機(jī)學(xué)院三、三、微指令格式微指令格式q微指令的格式大體上可分成兩類:一是水平型微指令;二是垂直型一是水平型微指令;二是垂直型微指令。微指令。1 1、水平型微指令格式、水平型微指令格式q下圖屬于水平型微指令的典型例子。計(jì)算機(jī)學(xué)院q基本特點(diǎn)是在一條微指令中定義并執(zhí)行多個(gè)并行操作微命令。采采用直接控制法進(jìn)行編碼。用直接控制法進(jìn)行編碼。q在實(shí)際應(yīng)用中,直接控制法、字段編譯法(直接、間接編譯法)經(jīng)常應(yīng)用在同一條水平型微指令中。從速度來看,直接控
22、制法最快,字段編譯法要經(jīng)過譯碼,所以會(huì)增加一些延遲時(shí)間。2 2、垂直型微指令格式、垂直型微指令格式q在微指令中設(shè)置有微操作碼字段,采用微操作碼編譯法,由微在微指令中設(shè)置有微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能,稱為垂直型微指令。操作碼規(guī)定微指令的功能,稱為垂直型微指令。計(jì)算機(jī)學(xué)院q其特點(diǎn)是不強(qiáng)調(diào)實(shí)現(xiàn)微指令的并行控制功能,通常一條微指令只要求能控制實(shí)現(xiàn)一二種操作。這種微指令格式與指令相似;每條指令有一個(gè)操作碼;每條微指令有一個(gè)微操作碼。q下面我們舉一個(gè)經(jīng)簡化的例子,設(shè)微指令字長16位,微操作碼3位,有八條微指令如下:計(jì)算機(jī)學(xué)院q(1) 寄存器寄存器寄存器傳送型微指令寄存器傳
23、送型微指令q微指令格式:微指令格式:q功能:功能:把源寄存器數(shù)據(jù)送目標(biāo)寄存器。q第02位為微操作碼。q第37位是源寄存器編址,這五位可以指定31個(gè)寄存器之一作為源寄存器,00000可表示為由指令的地址碼部分指出源寄存器地址,因?yàn)楫?dāng)執(zhí)行傳送指令時(shí),由指令給出源寄存器地址。所以參與操作的數(shù)據(jù)地址可由指令給出,也允許由微指令給出。此結(jié)論同樣適用于水平型微指令。q第812位是目標(biāo)寄存器的編址,這5位可以指定31個(gè)寄存器之一作為目標(biāo)寄存器,00000可表示為由指令的地址碼部分指出目標(biāo)寄存器地址。q第1315位是“其他字段”,可協(xié)助本條微指令完成其他控制功能。計(jì)算機(jī)學(xué)院q(2) 運(yùn)算控制型微指令運(yùn)算控制型
24、微指令q微指令格式:微指令格式:q功能:功能:選擇運(yùn)算器(ALU)的左、右兩輸入端的信息,按ALU字段所指定的運(yùn)算功能進(jìn)行處理,并將結(jié)果送人暫存器中。q第02位為微操作碼。q第37位為運(yùn)算器左輸入源的編址,這5位可以指定31種源信息之一,00000可表示為由指令的地址碼部分指定左輸人源的編址。q第812位為運(yùn)算器右輸入源的編址,這5位可以指定31種源信息之一,00000可表示為由指令的地址碼部分指定右輸入源的編址。q第1315位為ALU字段,完成八種操作之一,例如加法、減法、邏輯加、邏輯乘等等。計(jì)算機(jī)學(xué)院q(3) 移位控制型微指令移位控制型微指令q微指令格式:微指令格式:q功能:功能:將寄存器
25、中的數(shù)據(jù)按指定的移位方式進(jìn)行移位。q第02位為微操作碼。q第37位為移位數(shù)據(jù)所在寄存器的編址,移位結(jié)果仍保留在原寄存器中。編址方式與上同。q第812位為移位次數(shù)。q第1315位為移位方式,可表明循環(huán)左移、循環(huán)右移、邏輯左移、邏輯右移、算術(shù)左移、算術(shù)右移等。計(jì)算機(jī)學(xué)院q(4) 訪問主存微指令訪問主存微指令q微指令格式:微指令格式:q功能:功能:將存儲(chǔ)器中一個(gè)單元的信息送人寄存器或?qū)⒓拇嫫髦械臄?shù)據(jù)送往存儲(chǔ)器。q第02位為微操作碼。q第37位為寄存器地址編址。q第812位為存儲(chǔ)器編址,可以按照系統(tǒng)設(shè)計(jì)所規(guī)定的尋址方式進(jìn)行編址。例如,可以是存儲(chǔ)器地址所在的寄存器地址。q第1314位規(guī)定是讀或?qū)懖僮?。q
26、第15位可協(xié)助本微指令完成其他控制功能。計(jì)算機(jī)學(xué)院q(5) 五條件轉(zhuǎn)移微指令五條件轉(zhuǎn)移微指令q微指令格式:微指令格式:q功能:功能:實(shí)現(xiàn)五條件轉(zhuǎn)移或轉(zhuǎn)微子程序功能。q第02位為微操作碼。q第314位為微指令的轉(zhuǎn)移地址。q第15位用于區(qū)分是無條件轉(zhuǎn)移或是轉(zhuǎn)微子程序微指令,當(dāng)是后者時(shí),將現(xiàn)行微地址的下一順序微地址(PC+1)保存在返回微地址寄存器RR中。計(jì)算機(jī)學(xué)院q(6) 條件轉(zhuǎn)移微指令條件轉(zhuǎn)移微指令q微指令格式:微指令格式:q功能:功能:根據(jù)測試對象的狀態(tài)(例如運(yùn)算結(jié)果為0、結(jié)果溢出、計(jì)數(shù)器狀態(tài)等)決定轉(zhuǎn)移到D所指定的微地址單元,還是順序執(zhí)行下一條微指令。9位D字段不足以表示一個(gè)完整的微地址,但
27、可以用來替代現(xiàn)行微地址PC的低位。q測試條件字段有4位,可以規(guī)定十六種測試條件。計(jì)算機(jī)學(xué)院q(7) 其他其他q還有還有110與與111兩種操作碼,可以用來定義輸入輸出微操作兩種操作碼,可以用來定義輸入輸出微操作或其他難以歸類的雜操作,第或其他難以歸類的雜操作,第315位可以根據(jù)需要定義各種位可以根據(jù)需要定義各種相應(yīng)的微命令字段。相應(yīng)的微命令字段。計(jì)算機(jī)學(xué)院3、水平型微指令與垂直型微指令的比較水平型微指令與垂直型微指令的比較q(1)(1)水平型微指令并行操作能力強(qiáng),效率高,靈活性強(qiáng)水平型微指令并行操作能力強(qiáng),效率高,靈活性強(qiáng),垂直型微指令則差。,垂直型微指令則差。 在一條水平型微指令中,設(shè)置有控
28、制機(jī)器中信息傳送通路(門)以及進(jìn)行所有操作的微命令。因此,在進(jìn)行微程序設(shè)計(jì)時(shí),可以同時(shí)定義比較多的并行操作的微命令,控制盡可能多的并行信息傳送,從而使水平型微指令具有效率高及靈活性強(qiáng)的優(yōu)點(diǎn)。 在一條垂直型微指令中,一般只能完成一個(gè)操作,控制一兩個(gè)信息傳送通路,因此微指令的并行操作能力低,效率低。計(jì)算機(jī)學(xué)院q(2)水平型微指令執(zhí)行一條指令的時(shí)間短,垂直型微指令執(zhí)行時(shí)水平型微指令執(zhí)行一條指令的時(shí)間短,垂直型微指令執(zhí)行時(shí)間長。間長。 因?yàn)樗叫臀⒅噶畹牟⑿胁僮髂芰?qiáng),因此與垂直型微指令相比,可以用較少的微指令數(shù)來實(shí)現(xiàn)一條指令的功能,從而縮短了指令的執(zhí)行時(shí)間。而且當(dāng)執(zhí)行一條微指令時(shí),水平型微指令的微命
29、令一般直接控制對象,而垂直型微指令要經(jīng)過譯碼也會(huì)影響速度。q(3)由水平型微指令解釋指令的微程序,具有微指令字比較長,由水平型微指令解釋指令的微程序,具有微指令字比較長,但微程序短的特點(diǎn)。垂直型微指令則相反,微指令字比較短而但微程序短的特點(diǎn)。垂直型微指令則相反,微指令字比較短而微程序長。微程序長。q(4)水平型微指令用戶難以掌握,而垂直型微指令與指令比較相水平型微指令用戶難以掌握,而垂直型微指令與指令比較相似,相對來說,比較容易掌握。似,相對來說,比較容易掌握。計(jì)算機(jī)學(xué)院q 水平型微指令與機(jī)器指令差別很大,一般需要對機(jī)器的結(jié)構(gòu)、水平型微指令與機(jī)器指令差別很大,一般需要對機(jī)器的結(jié)構(gòu)、數(shù)據(jù)通路、時(shí)
30、序系統(tǒng)以及微命令很精通才能進(jìn)行設(shè)計(jì)。數(shù)據(jù)通路、時(shí)序系統(tǒng)以及微命令很精通才能進(jìn)行設(shè)計(jì)。對機(jī)器對機(jī)器已有的指令系統(tǒng)進(jìn)行微程序設(shè)計(jì)是設(shè)計(jì)人員而不是用戶的事情,已有的指令系統(tǒng)進(jìn)行微程序設(shè)計(jì)是設(shè)計(jì)人員而不是用戶的事情,因此這一特點(diǎn)對用戶來講并不重要。因此這一特點(diǎn)對用戶來講并不重要。q 然而某些計(jì)算機(jī)允許用戶自行設(shè)計(jì)并擴(kuò)充指令系統(tǒng),此時(shí)就要注意是否容易編寫微程序,有關(guān)問題將在下一小節(jié)“動(dòng)態(tài)微程序設(shè)計(jì)”中討論。計(jì)算機(jī)學(xué)院四、四、微程序控制存儲(chǔ)器和動(dòng)態(tài)微程序設(shè)計(jì)微程序控制存儲(chǔ)器和動(dòng)態(tài)微程序設(shè)計(jì)q1、微程序控制存儲(chǔ)器、微程序控制存儲(chǔ)器q微程序控制存儲(chǔ)器一般由只讀存儲(chǔ)器構(gòu)成,因?yàn)槲⒊绦蚴且越馕⒊绦蚩刂拼鎯?chǔ)器一般由
31、只讀存儲(chǔ)器構(gòu)成,因?yàn)槲⒊绦蚴且越忉尩姆绞綀?zhí)行指令,而指令系統(tǒng)一般是固定的,因此可以使用釋的方式執(zhí)行指令,而指令系統(tǒng)一般是固定的,因此可以使用只讀存儲(chǔ)器。只讀存儲(chǔ)器。但假如用可讀可寫的隨機(jī)存儲(chǔ)器作為控制存儲(chǔ)器未必不行,但停電后RAM中的內(nèi)容消失,所以開機(jī)后首先要將外存(磁盤或磁帶)上存放的微程序調(diào)到控存(RAM),然后機(jī)器才能執(zhí)行程序。由于ROM中的內(nèi)容不會(huì)丟失,因此一般認(rèn)為用ROM作為控制存儲(chǔ)器比較可靠。q用用RAM作為控制存儲(chǔ)器的優(yōu)點(diǎn)是可以修改微程序,也就是說可作為控制存儲(chǔ)器的優(yōu)點(diǎn)是可以修改微程序,也就是說可以修改指令系統(tǒng)。以修改指令系統(tǒng)。所以可考慮部分控存用ROM構(gòu)成,實(shí)現(xiàn)固定的指令系統(tǒng);
32、部分控存由RAM構(gòu)成,用于擴(kuò)充或修改一些指令。計(jì)算機(jī)學(xué)院q2、動(dòng)態(tài)微程序設(shè)計(jì)、動(dòng)態(tài)微程序設(shè)計(jì)q在一臺(tái)微程序控制的計(jì)算機(jī)中,假如能根據(jù)用戶的要求改變微在一臺(tái)微程序控制的計(jì)算機(jī)中,假如能根據(jù)用戶的要求改變微程序,那么這臺(tái)機(jī)器就具有動(dòng)態(tài)微程序設(shè)計(jì)功能。程序,那么這臺(tái)機(jī)器就具有動(dòng)態(tài)微程序設(shè)計(jì)功能。q動(dòng)態(tài)微程序設(shè)計(jì)的出發(fā)點(diǎn)是為了使計(jì)算機(jī)能更靈活、更有效地適應(yīng)于各種不同的應(yīng)用目標(biāo)。計(jì)算機(jī)學(xué)院q例如,在不改變硬件結(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ù)處理。q另外也可以用兩套微程序分
33、別實(shí)現(xiàn)兩個(gè)不同系列計(jì)算機(jī)的指令系統(tǒng),使得這兩種計(jì)算機(jī)的軟件得以兼容。也允許用戶在原來指令系統(tǒng)的基礎(chǔ)上增加一些指令來提高程序的執(zhí)行效率。q用于動(dòng)態(tài)微程序設(shè)計(jì)的控存稱為可寫控制存儲(chǔ)器用于動(dòng)態(tài)微程序設(shè)計(jì)的控存稱為可寫控制存儲(chǔ)器(WCS)或用戶或用戶控制存儲(chǔ)器控制存儲(chǔ)器(UCS)。計(jì)算機(jī)學(xué)院q 由于動(dòng)態(tài)微程序設(shè)計(jì)要求用戶對計(jì)算機(jī)的結(jié)構(gòu)與組成非常熟悉,由于動(dòng)態(tài)微程序設(shè)計(jì)要求用戶對計(jì)算機(jī)的結(jié)構(gòu)與組成非常熟悉,因此真正由用戶自行編寫微程序是很困難的,所以盡管設(shè)想很因此真正由用戶自行編寫微程序是很困難的,所以盡管設(shè)想很好,事實(shí)上難以推廣。好,事實(shí)上難以推廣。q 而前面講到的一臺(tái)機(jī)器實(shí)現(xiàn)兩套微程序等方案也是由機(jī)
34、器設(shè)計(jì)而前面講到的一臺(tái)機(jī)器實(shí)現(xiàn)兩套微程序等方案也是由機(jī)器設(shè)計(jì)人員實(shí)現(xiàn)的。人員實(shí)現(xiàn)的。計(jì)算機(jī)學(xué)院q 3、控制存儲(chǔ)器的操作、控制存儲(chǔ)器的操作q執(zhí)行一條微指令的過程基本上分為兩步,第一步將微指令從控制存儲(chǔ)器中取出,稱為取微指令,對于垂直型微指令還應(yīng)包括微操作碼譯碼的時(shí)間。第二步執(zhí)行微指令所規(guī)定的各個(gè)操作。根據(jù)這兩步是串行還是并行進(jìn)行而具有下述的兩種方式:q(1)串行方式串行方式q執(zhí)行一條微指令所需要的時(shí)間稱為微周期。在串行方式下微周期的安執(zhí)行一條微指令所需要的時(shí)間稱為微周期。在串行方式下微周期的安排如下:排如下:計(jì)算機(jī)學(xué)院q微周期即是控制存儲(chǔ)器的工作周期,包括取微指令和執(zhí)行微指令兩部分時(shí)間。一條指令
35、的功能需要執(zhí)行若干條微指令才能實(shí)現(xiàn),所以控制存儲(chǔ)器的取微指令時(shí)間對機(jī)器速度影響很大。一般控存要比主存儲(chǔ)器快得多。q圖6.27是串行微程序控制器原理圖與時(shí)序圖。q由控制存儲(chǔ)器直接輸出控制信號(hào)與下址,而控制存儲(chǔ)器地址又是由CSAR直接送來的,因此在一條微指令執(zhí)行過程中,不允許CSAR改變。如控制信號(hào)負(fù)載較重,則可外接門電路或驅(qū)動(dòng)器。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q(2)并行方式并行方式q為了提高微程序的執(zhí)行速度,將執(zhí)行本條微指令的功能與取下一條微指令的操作在時(shí)間上重疊起來,圖6.28是并行微程序控制器的原理圖與時(shí)序圖。q與圖6.27(a)相比,圖6.28(a)增加了微指令寄存器增加了微指令寄存器,控制微命令
36、由微指令寄存器發(fā)出,因此在微指令執(zhí)行過程中,即使控存輸出改變,只要微指令寄存器打人脈沖不來,其內(nèi)容不會(huì)跟著發(fā)生變化,因而允許取微指令與執(zhí)行上一條微指令并行進(jìn)行,在某些書上將微指令寄存器稱為流水線寄存器。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q4、毫微程序設(shè)計(jì)的基本概念、毫微程序設(shè)計(jì)的基本概念 q毫微程序可以看作是用以解釋微程序的一種微程序,因此組成毫微程序的毫微指令就可看作是解釋微指令的微指令。q采用毫微程序設(shè)計(jì)的主要目的是減少控制存儲(chǔ)器的容量采用毫微程序設(shè)計(jì)的主要目的是減少控制存儲(chǔ)器的容量(字?jǐn)?shù)字?jǐn)?shù)位數(shù)位數(shù)/字字),采用的是兩級(jí)微程序設(shè)計(jì)方法。通常第一級(jí)采用垂,采用的是兩級(jí)微程序設(shè)計(jì)方法。通常第一級(jí)采用垂直微
37、程序,第二級(jí)采用水平微程序。直微程序,第二級(jí)采用水平微程序。q當(dāng)執(zhí)行一條指令時(shí),首先進(jìn)入第一級(jí)微程序,由于它是垂直型微指令,所以并行操作功能不強(qiáng),當(dāng)需要時(shí)可由它來調(diào)用第二級(jí)微程序(即毫微程序),執(zhí)行完畢后再返回第一級(jí)微程序。所以在這里有兩個(gè)控制存儲(chǔ)器如圖6.29所示。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q第一級(jí)垂直微程序是根據(jù)實(shí)現(xiàn)指令系統(tǒng)和其他處理過程的需要而編制的,它有嚴(yán)格的順序結(jié)構(gòu),由它確定后繼微指令的地址。垂直微指令很像機(jī)器指令,編程過程就像用機(jī)器指令編程一樣,容易實(shí)現(xiàn)微程序設(shè)計(jì)自動(dòng)化。其控制存儲(chǔ)器的主要特點(diǎn)是字短。q 第二級(jí)水平型微指令是由第一級(jí)調(diào)用的,具有并行操作控制的能力,但不包含后繼微指令地址的
38、信息。若干條垂直微指令可以調(diào)用同一條毫微指令,所以在控制存儲(chǔ)器中每條毫微指令都是不相同的(在一級(jí)微程序設(shè)計(jì)的控制存儲(chǔ)器中,會(huì)多次出現(xiàn)相同的微指令)。在各條毫微指令之間沒有順序關(guān)系。毫微程序控制存儲(chǔ)器的主要特點(diǎn)是字?jǐn)?shù)較少,但每個(gè)字的長度較長。計(jì)算機(jī)學(xué)院q 上述二級(jí)微程序設(shè)計(jì)方法將微程序的順序控制和執(zhí)行微操作的命令完全分離開來,分別由第一級(jí)垂直型微指令和第二級(jí)水平型微指令實(shí)現(xiàn)。q在實(shí)際應(yīng)用時(shí)則有所變化,例如:q(1)若從第一級(jí)控存讀出的垂直型微指令功能比較簡單,這時(shí)不必將它變換成毫微指令,而可直接譯碼,用作微操作控制信號(hào),因此不再調(diào)用第二級(jí)微指令。q(2)垂直型微指令與水平型微指令之間不是一條一條
39、地對應(yīng),而是由水平型微指令(毫微指令)組成若干步的微程序(即毫微程序)去執(zhí)行垂直型微指令的操作,在這種情況下,毫微指令與微指令的關(guān)系就相當(dāng)于微指令與指令的關(guān)系。q采用二級(jí)微程序控制能減少控制存儲(chǔ)器的總?cè)萘?,但有時(shí)一條微指令采用二級(jí)微程序控制能減少控制存儲(chǔ)器的總?cè)萘?,但有時(shí)一條微指令要訪問二次控存,影響速度。要訪問二次控存,影響速度。 計(jì)算機(jī)學(xué)院五、五、微程序設(shè)計(jì)語言微程序設(shè)計(jì)語言q在微程序控制的計(jì)算機(jī)中,用機(jī)器語言表示的指令是由微指令解釋執(zhí)行而實(shí)現(xiàn)的。q一般微指令的字長達(dá)到100位左右,甚至更多些。假如要求設(shè)計(jì)者直接用二進(jìn)制編碼來進(jìn)行微程序設(shè)計(jì)是很困難的,錯(cuò)誤難以避免。因而引入了微程序設(shè)計(jì)語言
40、。計(jì)算機(jī)學(xué)院q設(shè)計(jì)者或其他用戶用來編制微程序的語言叫做微程序設(shè)計(jì)語言,用微程序設(shè)計(jì)語言編制的程序叫做源微程序。q將源微程序翻譯成二進(jìn)制碼的程序叫做微編譯程序。q 微程序設(shè)計(jì)基本上沿用了程序設(shè)計(jì)的方法,可以仿照程序設(shè)計(jì)語言來建立微程序設(shè)計(jì)語言,因此可以把它分成初級(jí)的和高級(jí)的兩種類型。q 初級(jí)的微程序設(shè)計(jì)語言有微指令語言、微匯編語言、框圖語言等。高級(jí)微程序設(shè)計(jì)語言類似于高級(jí)程序設(shè)計(jì)語言,比較接近于數(shù)學(xué)描述或自然語言。計(jì)算機(jī)學(xué)院q微匯編語言與匯編語言相似,是用符號(hào)表示微指令的語言。微程序設(shè)計(jì)者先用微匯編語言編制源微程序,然后把它輸入計(jì)算機(jī)中利用微匯編程序翻譯成由0和1兩種代碼組成的微程序。微匯編程序
41、中的一條語句和微程序中的一條微指令是一一對應(yīng)的,這點(diǎn)也與匯編語言相似。q垂直微指令一般由一個(gè)微操作碼字段,一個(gè)或少數(shù)幾個(gè)操作數(shù)控制字段組成,通常只指定一種運(yùn)算(或控制)操作,與機(jī)器指令相似,它的微匯編語言語句很像機(jī)器的匯編語言語句。q水平型微指令通常由多個(gè)字段或較多位代碼組成,其中各個(gè)“字段”或各“位”所定義的微命令可以并行執(zhí)行,因此描述水平型微指令的微語句就比垂直型微指令長且復(fù)雜。計(jì)算機(jī)學(xué)院q高級(jí)微語言,類似于程序設(shè)計(jì)中的高級(jí)語言。如用高級(jí)微語言來描述圖6.30相應(yīng)的源微程序,那么可寫成:qK: A+BAqK+1: IF(A(0)=0)THENq (GO TO K+3)qK+2: 0-AAq
42、K+3: AM(D)q上述源微程序表示對A,B兩數(shù)相加,并將結(jié)果的絕對值送存儲(chǔ)器單元D,其中A(0)為符號(hào)位。該源微程序在編譯時(shí),根據(jù)硬件及微指令的并行操作能力進(jìn)行優(yōu)化,盡量減少微指令數(shù)。計(jì)算機(jī)學(xué)院q 微程序設(shè)計(jì)人員希望能有一種既便于描述微程序又能盡量接近微程序設(shè)計(jì)人員希望能有一種既便于描述微程序又能盡量接近數(shù)據(jù)描述,既能與機(jī)器無關(guān),又能翻譯成高效率微碼的微高級(jí)數(shù)據(jù)描述,既能與機(jī)器無關(guān),又能翻譯成高效率微碼的微高級(jí)語言。但到目前為止,這還是設(shè)計(jì)人員為之奮斗的目標(biāo)。語言。但到目前為止,這還是設(shè)計(jì)人員為之奮斗的目標(biāo)。q 當(dāng)前能付之實(shí)用的能描述水平型微指令的語言還是微匯編語言。當(dāng)前能付之實(shí)用的能描述
43、水平型微指令的語言還是微匯編語言。計(jì)算機(jī)學(xué)院q在圖6.8所示的運(yùn)算控制器邏輯圖中,由“時(shí)序控制信號(hào)形成部件”產(chǎn)生控制計(jì)算機(jī)各部分操作所需的控制信號(hào)。這個(gè)部件的組成一般有兩種方式,其一為微程序控制方式,另一種即是下面要討論的硬布線控制方式,由于這些信號(hào)是通過邏輯電路直接連線而產(chǎn)生的,所以又稱所以又稱為組合邏輯控制方式。為組合邏輯控制方式。q組合邏輯控制器的核心部件就是微操作產(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)是
44、指令、時(shí)序、結(jié)果特征及狀態(tài)等的邏輯函數(shù),可表示為: q微操作周期微操作周期節(jié)拍節(jié)拍脈沖脈沖指令碼指令碼其它條件其它條件計(jì)算機(jī)學(xué)院一、一、時(shí)序與節(jié)拍時(shí)序與節(jié)拍q一條指令的實(shí)現(xiàn)可分成取指、計(jì)算地址、取數(shù)及執(zhí)行取指、計(jì)算地址、取數(shù)及執(zhí)行等幾個(gè)步驟。在微程序控制方式中,每一步由一條微指令實(shí)現(xiàn),而在這里則由指令的操作碼直接控制并產(chǎn)生實(shí)現(xiàn)上述各步驟所需的控制信號(hào)。q在大部分情況下,每一步由一個(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è)
45、觸發(fā)器則處于“0”狀態(tài),四位移位寄存器即可實(shí)現(xiàn)此功能。計(jì)算機(jī)學(xué)院q 設(shè)以設(shè)以cy1,cy2,cy3,cy4分別表示四個(gè)機(jī)器分別表示四個(gè)機(jī)器周期,在初始化周期,在初始化(reset)時(shí),令時(shí),令cy1處于處于“1”狀狀態(tài),其余的均處于態(tài),其余的均處于“0”狀態(tài),即機(jī)器處于取指狀態(tài),即機(jī)器處于取指周期。然后實(shí)現(xiàn)循環(huán)移周期。然后實(shí)現(xiàn)循環(huán)移位,可保證四個(gè)觸發(fā)器位,可保證四個(gè)觸發(fā)器中有一位且僅有一位處中有一位且僅有一位處于于“1”狀態(tài)。狀態(tài)。計(jì)算機(jī)學(xué)院q由于每條指令的功能不同,所以所需的機(jī)器周期數(shù)可能就不相同,因此某些指令可能缺少某個(gè)周期(例如轉(zhuǎn)移指令),而有些復(fù)雜指令的某個(gè)周期則需要延長(例如乘法指令
46、的執(zhí)行周期),從而使得上述計(jì)數(shù)器或移位寄存器的工作時(shí)序發(fā)生變化,而且其變化規(guī)律與指令有關(guān)。例如,執(zhí)行A指令時(shí)需要四個(gè)機(jī)器周期,因此計(jì)數(shù)器的變化規(guī)律是00011011;而執(zhí)行B指令時(shí)僅需要三個(gè)機(jī)器周期(例如不用計(jì)算地址),則計(jì)數(shù)器的變化規(guī)律為001011,據(jù)此可列出真值表(表6.3)。q 表6.3中cyA,cyB表示當(dāng)前周期的計(jì)數(shù)器狀態(tài),cyA,cyB表示下一周期計(jì)數(shù)器狀態(tài)。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q根據(jù)真值表列出表達(dá)式根據(jù)真值表列出表達(dá)式:q對于對于A指令,其表達(dá)式為指令,其表達(dá)式為q cyA=cyA# cyB+cyA cyB#;q cyB=cyA# cyB#+cyA cyB#=cyB#。q q對
47、于對于B指令,其表達(dá)式為指令,其表達(dá)式為q cyA=cyA# cyB#+cyA cyB#=cyB#;q cyB=cyA cyB#。q根據(jù)表達(dá)式得出邏輯圖根據(jù)表達(dá)式得出邏輯圖6.32。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q圖6.32為僅有兩條指令的邏輯圖,實(shí)際機(jī)器有幾十條幾百條指令,根據(jù)指令功能列出每條指令的機(jī)器周期變化規(guī)律,最后歸納出幾種情況,將情況相同的指令歸為一類,然后列出表達(dá)式,畫出邏輯圖。q假如,要延長某個(gè)機(jī)器周期時(shí)間,封鎖CP是最簡單的方法,也可以用控制計(jì)數(shù)器輸入的方法,邏輯圖要復(fù)雜一些。計(jì)算機(jī)學(xué)院q二、二、操作控制信號(hào)的產(chǎn)生操作控制信號(hào)的產(chǎn)生1 1、操作碼譯碼器操作碼譯碼器q指令由操作碼與地址碼兩
48、部分組成,其中操作碼表示當(dāng)前正在執(zhí)行的是什么指令,例如是加法指令還是減法指令等等。各條指令所需實(shí)現(xiàn)的操作,有些是相同的,有些是不同的,隨指令而異。q由譯碼器的輸出和機(jī)器周期狀態(tài)cy1cy4作為輸入,使用邏輯電路產(chǎn)生操作控制信號(hào),其框圖如圖6.33所示。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院 2、操作控制信號(hào)的產(chǎn)生、操作控制信號(hào)的產(chǎn)生q以加法指令為例,如前所述,假設(shè)一條加法指令的功能是由四個(gè)機(jī)器周期cy1cy4完成的,分別為取指、計(jì)算有效地址、取操作數(shù)、進(jìn)行加法運(yùn)算并送結(jié)果。q機(jī)器邏輯圖仍如圖6.8所示,所以完成一條指令的操作所需的操作信號(hào)仍如前所示。參考圖6.7的波形圖,在取指周期要完成從存儲(chǔ)器取出指令送指令寄
49、存器以及將指令計(jì)數(shù)器加1,為取下一條指令作好準(zhǔn)備。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院q為訪問存儲(chǔ)器,需要將地址送往地址總線為訪問存儲(chǔ)器,需要將地址送往地址總線(PC AB),并發(fā)出,并發(fā)出啟動(dòng)存儲(chǔ)器所需的信號(hào)啟動(dòng)存儲(chǔ)器所需的信號(hào) ADS、MIO#及及WR#,然后將取,然后將取得的指令送往指令寄存器得的指令送往指令寄存器(DB IR)。q用邏輯式表示用邏輯式表示: PCAB=加法指令加法指令 cy1 (6.6) ADS=加法指令加法指令 cy1 T1 (6.7) M/IO#=加法指令加法指令 cy1 (6.8) W/R#=(加法指令加法指令 cy1 )# (6.9) DBIR=加法指令加法指令 cy
50、1 (6.10) PC+1=加法指令加法指令 cy1 (6.11)計(jì)算機(jī)學(xué)院q公式6.66.11存在一個(gè)問題,即在取指周期,當(dāng)前這條指令尚未取出,在IR中保留的還是上一條指令內(nèi)容,因此不可能用它來產(chǎn)生控制本條指令所需的信號(hào),所以在取指周期只允許安排與指令類型無關(guān)的操作,因此應(yīng)將這些公式中的“加法指令”取消,于是將式(6.6)改寫為:q PCAB=cy1 (6.12) q 6.76.11應(yīng)同樣修改。應(yīng)同樣修改。計(jì)算機(jī)學(xué)院q同樣,在計(jì)算地址周期cy2完成有效地址的計(jì)算(rs1)+Disp),為此要將rs1的內(nèi)容取出與IR中的位移量一起送ALU,發(fā)出rs1GR(送通用寄存器地址),(rs1)ALU,
51、DispALU以及“+”命令,最后將運(yùn)算結(jié)果送地址總線,發(fā)出ALU+AR信號(hào)。q邏輯表達(dá)式邏輯表達(dá)式: rs1GR=加法指令加法指令 cy2 (6.13) (rs1)ALU=加法指令加法指令 cy2 (6.14) ALUAR=加法指令加法指令 cy2 (6.15)計(jì)算機(jī)學(xué)院q式(6.13)一式(6.15)的右邊全部相同。邏輯圖6.34只考慮了加法指令計(jì)算有效地址時(shí)的一種情況。然后按同樣方法列出后面兩個(gè)機(jī)器周期所需產(chǎn)生的控制信號(hào)的邏輯表達(dá)式。q對每一條指令都進(jìn)行同樣的分析,得出邏輯表達(dá)式。對每一條指令都進(jìn)行同樣的分析,得出邏輯表達(dá)式。計(jì)算機(jī)學(xué)院q對所有指令的全部表達(dá)式進(jìn)行綜合分析后可得出下述結(jié)論
52、:對所有指令的全部表達(dá)式進(jìn)行綜合分析后可得出下述結(jié)論: (1) 取指周期取指周期cy1所產(chǎn)生的信號(hào),對所有指令都是相同的,即所產(chǎn)生的信號(hào),對所有指令都是相同的,即與當(dāng)前執(zhí)行的指令無關(guān),邏輯式得到最簡單的形式。與當(dāng)前執(zhí)行的指令無關(guān),邏輯式得到最簡單的形式。 (2) 通常,同一個(gè)控制信號(hào)在若干條指令的某些周期通常,同一個(gè)控制信號(hào)在若干條指令的某些周期(或再加上或再加上一些條件一些條件)中都需要,為此需要把它們組合起來。中都需要,為此需要把它們組合起來。計(jì)算機(jī)學(xué)院q例如,例如,“+”命令在加法指令的cy2(計(jì)算有效地址)與cy4(操作數(shù)相加)時(shí)需要;在減法指令的cy2(計(jì)算有效地址)時(shí)需要;在轉(zhuǎn)移指
53、令的cy2(計(jì)算轉(zhuǎn)移地址)時(shí)需要;。q用邏輯式表示如下:用邏輯式表示如下: “+”=加法指令(cy2+cy4)+減法指令cy2+轉(zhuǎn)移指令cy2+ =加法指令cy2+加法指令cy4+減法指令cy2+轉(zhuǎn)移指令cy2+ (6.16)q上式中的加法指令、減法指令等信號(hào)通常由操作碼譯碼器輸出,譯碼器實(shí)際上是由各操作碼的二進(jìn)制代碼作為輸入的一組“與門”。設(shè)某機(jī)有7位操作碼(OP0OP6),已知加法指令的操作碼為0001100,則形成加法指令信號(hào)的邏輯表達(dá)式為: 加法指令=OP0#OP1#OP2#OP3OP4OP5#OP6 # (6.17)計(jì)算機(jī)學(xué)院q從式從式(6.16)可以看出,利用兩級(jí)門電路可以看出,利
54、用兩級(jí)門電路(第一級(jí)為與門,第二級(jí)第一級(jí)為與門,第二級(jí)為或門為或門)可產(chǎn)生可產(chǎn)生“+”命令,但有時(shí)受邏輯門輸入端限制命令,但有時(shí)受邏輯門輸入端限制(如上式的如上式的乘積項(xiàng)超過第二級(jí)或門所允許的最大輸入端數(shù)乘積項(xiàng)超過第二級(jí)或門所允許的最大輸入端數(shù))將修改邏輯式,將修改邏輯式,此時(shí)就可能要增加邏輯電路。假如,信號(hào)所經(jīng)過的級(jí)數(shù)也增加此時(shí)就可能要增加邏輯電路。假如,信號(hào)所經(jīng)過的級(jí)數(shù)也增加的話,還將增加延遲時(shí)間。的話,還將增加延遲時(shí)間。q另外在實(shí)現(xiàn)時(shí)還有負(fù)載問題。例如,操作碼譯碼器的輸出要控另外在實(shí)現(xiàn)時(shí)還有負(fù)載問題。例如,操作碼譯碼器的輸出要控制很多信號(hào),需注意是否會(huì)超載,必要時(shí)可增強(qiáng)譯碼器輸出驅(qū)制很多
55、信號(hào),需注意是否會(huì)超載,必要時(shí)可增強(qiáng)譯碼器輸出驅(qū)動(dòng)能力或增加器件或修改邏輯。動(dòng)能力或增加器件或修改邏輯。計(jì)算機(jī)學(xué)院q(3) 同種類型的指令所需的控制信號(hào)大部分是相同的,僅有少量同種類型的指令所需的控制信號(hào)大部分是相同的,僅有少量區(qū)別,例如算術(shù)運(yùn)算指令中的加法指令區(qū)別,例如算術(shù)運(yùn)算指令中的加法指令(ADD)與減法指令與減法指令(SUB),除了一個(gè)信號(hào),除了一個(gè)信號(hào)(“+”命令或命令或“-”命令命令)以外,其余的控制以外,其余的控制信號(hào)全部相同。整個(gè)算術(shù)邏輯運(yùn)算指令僅信號(hào)全部相同。整個(gè)算術(shù)邏輯運(yùn)算指令僅ALU的操作命令以及的操作命令以及是否置狀態(tài)位是否置狀態(tài)位(N,Z,V,C)上有差別。上有差別。
56、q不同類型的指令,其控制信號(hào)的差別就比較大。不同類型的指令,其控制信號(hào)的差別就比較大。q (4)在確定指令的操作碼時(shí)在確定指令的操作碼時(shí)(即對具體指令賦于二進(jìn)制操作碼即對具體指令賦于二進(jìn)制操作碼),為了便于邏輯表達(dá)式的化簡以減少邏輯電路數(shù)量,往往給予特為了便于邏輯表達(dá)式的化簡以減少邏輯電路數(shù)量,往往給予特別關(guān)注。別關(guān)注。計(jì)算機(jī)學(xué)院q例如,例如,某機(jī)有128條指令,7位操作碼(OP0OP6),其中有十六條算術(shù)邏輯運(yùn)算指令,那么可以令這些指令的三位操作碼完全相等(例如OP0OP2為001),而OP3 OP6分別表示16條指令,設(shè)命令A(yù)是所有算術(shù)邏輯指令在cy2周期中都需產(chǎn)生的,則:q A=加法指令
57、cy2+減法指令cy2+邏輯加指令cy2+ =(加法指令+減法指令+邏輯加指令+)cy2 = OP0#OP1#OP2cy2q從16項(xiàng)簡化成1項(xiàng),用一個(gè)與門即可實(shí)現(xiàn)。計(jì)算機(jī)學(xué)院q表6.4是Sun 4 工作站CPU(SPARC)部分指令的操作碼。該機(jī)器的操作碼有8位,表中僅列出7位操作碼,對于表內(nèi)所列指令,另一位操作碼均為1。q加法指令有四條:ADD,ADDX,ADDcc,ADDXcc。尾部標(biāo)以CC表示根據(jù)運(yùn)算結(jié)果置狀態(tài)位,否則不置位;X表示加進(jìn)位。q以LD開始的指令為取數(shù)指令,LD取單字,LDUB為取無符號(hào)字節(jié),LDSB為取帶符號(hào)的字節(jié),LDUH為取無符號(hào)半字,LDSH為取帶符號(hào)半字,LDD為取
58、雙字。q以A結(jié)尾的指令為特權(quán)指令。q以ST開始的指令為存數(shù)指令。qSWAP為數(shù)據(jù)交換指令。 計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院三、三、控制器的組成控制器的組成q圖6.35是硬布線控制的控制器框圖。由硬布線邏輯(組合邏輯)部件產(chǎn)生全機(jī)所需的操作命令(包括控制電位與打入脈沖)。1、程序計(jì)數(shù)器和中斷控制邏輯、程序計(jì)數(shù)器和中斷控制邏輯q 在圖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)有外來中斷請求信號(hào)時(shí),若CPU響應(yīng)中斷,則由中斷控制邏輯部件產(chǎn)生中斷入口地址
59、。計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院2、譯碼器、譯碼器q如操作碼為7位,則允許計(jì)算機(jī)最多設(shè)置128條指令,譯碼器的最基本形式為:以7位操作碼為輸入,在輸出的128條線中,在任何時(shí)候只有1根為高電位,其余均為低電位(或只有1根為低電位,其余均為高電位),每1根輸出線代表一條指令。計(jì)算機(jī)學(xué)院3、硬布線邏輯的實(shí)現(xiàn)途徑、硬布線邏輯的實(shí)現(xiàn)途徑q采用PLA,PAL和GAL電路實(shí)現(xiàn),要求與設(shè)計(jì)的邏輯表達(dá)式基本一致;當(dāng)實(shí)際邏輯更為復(fù)雜時(shí),可將若干個(gè)電路串、并聯(lián)組合使用以實(shí)現(xiàn)復(fù)雜的邏輯關(guān)系。q另外也可采用半定制電路門陣列實(shí)現(xiàn)。在VLSI的CPU中,硬布線邏輯電路直接集成在CPU芯片中,這種全定制電路集成度高、速度高,并可縮小
60、機(jī)器體積。唯一的缺點(diǎn)是芯片投產(chǎn)后,不允許對邏輯進(jìn)行任何修改,因此要求設(shè)計(jì)絕對正確,否則返工的工作量很大。對于復(fù)雜的機(jī)器,有可能因設(shè)計(jì)錯(cuò)誤而延長設(shè)計(jì)周期。計(jì)算機(jī)學(xué)院q【例】設(shè)計(jì)ADD、SUB、JC指令的硬布線控制器(組合邏輯控制器)q【解】:q 根據(jù)圖6.8CPU的結(jié)構(gòu)圖寫出每條指令的操作流程圖并分解成微操作序列如下:計(jì)算機(jī)學(xué)院 PC A B A D S(T1), M /IO =1, W /R =0 取取 指指 周周 期期 cy1 D B IR , PC 1(T2) m od =00 m od =01 m od =10 m od =11 N 計(jì)計(jì) rs1 G R rs1 G R , disp A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度00兆瓦太陽能發(fā)電項(xiàng)目開發(fā)與建設(shè)合同
- 金融服務(wù)與二手車
- 2024年大型商場物業(yè)管理合同
- 2024年建筑工程抹灰分包專項(xiàng)合同
- 如何制作天然有機(jī)的純露噴霧考核試卷
- 木材加工企業(yè)的企業(yè)文化與員工激勵(lì)考核試卷
- 綠色倉儲(chǔ)技術(shù)與環(huán)保研究
- 2024年體育賽事組織合同標(biāo)的與組織費(fèi)用
- 2024冷卻塔填料廢料處理合同
- 2024年家裝質(zhì)量監(jiān)督與監(jiān)理合同
- GB/T 7973-2003紙、紙板和紙漿漫反射因數(shù)的測定(漫射/垂直法)
- GB/T 5976-2006鋼絲繩夾
- 坐標(biāo)紙(網(wǎng)格型坐標(biāo)紙-直接打印即可)
- GB/T 39633-2020協(xié)作機(jī)器人用一體式伺服電動(dòng)機(jī)系統(tǒng)通用規(guī)范
- FZ/T 01002-2010印染企業(yè)綜合能耗計(jì)算辦法及基本定額
- 藥品儲(chǔ)備評(píng)估表
- 國家自然科學(xué)基金申請經(jīng)驗(yàn)匯總課件
- 青春期女孩自尊自愛課件
- 2023年西藏開發(fā)投資集團(tuán)有限公司招聘筆試題庫及答案解析
- 小學(xué)語文人教三年級(jí)上冊觀察桔子孫娟課件
- 藏族人的名字標(biāo)準(zhǔn)英語翻譯
評(píng)論
0/150
提交評(píng)論