




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
計(jì)算機(jī)組成原理演示文稿當(dāng)前1頁,總共167頁。計(jì)算機(jī)組成原理當(dāng)前2頁,總共167頁。5.1CPU的組成和功能
5.1.1
CPU的功能
當(dāng)用計(jì)算機(jī)解決某個(gè)問題時(shí),我們首先必須為它編寫程序。程序是一個(gè)指令序列,這個(gè)序列明確告訴計(jì)算機(jī)應(yīng)該執(zhí)行什么操作,在什么地方找到用來操作的數(shù)據(jù)。一旦把程序裝入內(nèi)存儲(chǔ)器,就可以由計(jì)算機(jī)來自動(dòng)完成取出指令和執(zhí)行指令的任務(wù)。專門用來完成此項(xiàng)工作的計(jì)算機(jī)部件稱為中央處理器,通常簡稱CPU。CPU對(duì)整個(gè)計(jì)算機(jī)系統(tǒng)的運(yùn)行是極其重要的,它具有如下四方面的基本功能:當(dāng)前3頁,總共167頁?!镏噶羁刂?/p>
程序的順序控制稱為指令控制。由于程序是一個(gè)指令序列,這些指令的相互順序不能任意顛倒,必須嚴(yán)格按程序規(guī)定的順序進(jìn)行?!锊僮骺刂埔粭l指令的功能往往是由若干個(gè)操作信號(hào)的組合來實(shí)現(xiàn)的,因此,CPU管理并產(chǎn)生由內(nèi)存取出的每條指令的操作信號(hào),把各種操作信號(hào)送往相應(yīng)的部件,從而控制這些部件按指令的要求進(jìn)行動(dòng)作?!飼r(shí)間控制對(duì)各種操作實(shí)施時(shí)間上的定時(shí)稱為時(shí)間控制。在計(jì)算機(jī)中,各種指令的操作信號(hào)以及一條指令的整個(gè)執(zhí)行過程都受到時(shí)間的嚴(yán)格定時(shí)?!飻?shù)據(jù)加工數(shù)據(jù)加工就是對(duì)數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算處理。當(dāng)前4頁,總共167頁。5.1.2CPU的基本組成CPU的基本部分由運(yùn)算器、cache和控制器三大部分組成。內(nèi)部結(jié)構(gòu)如下圖。當(dāng)前5頁,總共167頁。當(dāng)前6頁,總共167頁??刂破?/p>
由程序計(jì)數(shù)器、指令寄存器、指令譯碼器、時(shí)序產(chǎn)生器和操作控制器組成,它是發(fā)布命令的“決策機(jī)構(gòu)”,即完成協(xié)調(diào)和指揮整個(gè)計(jì)算機(jī)系統(tǒng)的操作。它的主要功能有:(1)從內(nèi)存中取出一條指令,并指出下一條指令在內(nèi)存中的位置;(2)對(duì)指令進(jìn)行譯碼或測(cè)試,并產(chǎn)生相應(yīng)的操作控制信號(hào),以便啟動(dòng)規(guī)定的動(dòng)作;(3)指揮并控制CPU、內(nèi)存和輸入/輸出設(shè)備之間數(shù)據(jù)流動(dòng)的方向。當(dāng)前7頁,總共167頁。運(yùn)算器由算術(shù)邏輯單元(ALU)、累加寄存器、數(shù)據(jù)緩沖寄存器和狀態(tài)條件寄存器組成,它是數(shù)據(jù)加工處理部件。相對(duì)控制器而言,運(yùn)算器接受控制器的命令而進(jìn)行動(dòng)作,即運(yùn)算器所進(jìn)行的全部操作都是由控制器發(fā)出的控制信號(hào)來指揮的,所以它是執(zhí)行部件。運(yùn)算器有兩個(gè)主要功能:(1)執(zhí)行所有的算術(shù)運(yùn)算;(2)執(zhí)行所有的邏輯運(yùn)算,并進(jìn)行邏輯測(cè)試,如零值測(cè)試或兩個(gè)值的比較。當(dāng)前8頁,總共167頁。5.1.3CPU中的主要寄存器在CPU中至少要有以下六類寄存器。這些寄存器用來暫存一個(gè)計(jì)算機(jī)字。根據(jù)需要,可以擴(kuò)充其數(shù)目。
1.數(shù)據(jù)緩沖寄存器(DR)2.指令寄存器(IR)3.程序計(jì)數(shù)器(PC)4.地址寄存器(AR)5.累加寄存器(AC)6.狀態(tài)條件寄存器(PSW)下面詳細(xì)介紹這些寄存器的功能與結(jié)構(gòu)。當(dāng)前9頁,總共167頁。1.數(shù)據(jù)緩沖寄存器(DR)數(shù)據(jù)緩沖寄存器用來暫時(shí)存放由內(nèi)存儲(chǔ)器讀出的一條指令或一個(gè)數(shù)據(jù)字;反之,當(dāng)向內(nèi)存存入一條指令或一個(gè)數(shù)據(jù)字時(shí),也暫時(shí)將它們存放在數(shù)據(jù)緩沖寄存器中。緩沖寄存器的作用是:(1)作為CPU和內(nèi)存、外部設(shè)備之間信息傳送的中轉(zhuǎn)站;(2)補(bǔ)償CPU和內(nèi)存、外圍設(shè)備之間在操作速度上的差別;(3)在單累加器結(jié)構(gòu)的運(yùn)算器中,數(shù)據(jù)緩沖寄存器還可兼作為操作數(shù)寄存器。當(dāng)前10頁,總共167頁。2.指令寄存器(IR)指令寄存器用來保存當(dāng)前正在執(zhí)行的一條指令。當(dāng)執(zhí)行一條指令時(shí),先把它從內(nèi)存取到緩沖寄存器中,然后再傳送至指令寄存器。指令劃分為操作碼和地址碼字段,由二進(jìn)制數(shù)字組成。為了執(zhí)行任何給定的指令,必須對(duì)操作碼進(jìn)行測(cè)試,以便識(shí)別所要求的操作。指令譯碼器就是做這項(xiàng)工作的。指令寄存器中操作碼字段的輸出就是指令譯碼器的輸入。操作碼一經(jīng)譯碼后,即可向操作控制器發(fā)出具體操作的特定信號(hào)。當(dāng)前11頁,總共167頁。3.程序計(jì)數(shù)器(PC)為了保證程序能連續(xù)地執(zhí)行下去,CPU必須具有某些手段來確定下一條指令的地址。而程序計(jì)數(shù)器正是起到這種作用,所以通常又稱為指令計(jì)數(shù)器。在程序開始執(zhí)行前必須將它的起始地址,即程序的一條指令所在的內(nèi)存單元地址送入PC,因此PC的內(nèi)容即是從內(nèi)存提取的第一條指令的地址。當(dāng)執(zhí)行指令時(shí),CPU將自動(dòng)修改PC的內(nèi)容,以便使其保持的總是將要執(zhí)行的下一條指令的地址。由于大多數(shù)指令都是按順序來執(zhí)行的,所以修改的過程通常只是簡單的對(duì)PC加1。但是當(dāng)遇到轉(zhuǎn)移指令如JMP指令時(shí),那么后繼指令的地址(即PC的內(nèi)容)必須從指令的地址段取得。在這種情況下下一條從內(nèi)存取出的指令將由轉(zhuǎn)移指令來規(guī)定,而不是像通常一樣按順序來取得。因此程序計(jì)數(shù)器的結(jié)構(gòu)應(yīng)當(dāng)是具有寄存信息和計(jì)數(shù)兩種功能的結(jié)構(gòu)。當(dāng)前12頁,總共167頁。4.地址寄存器(AR)地址寄存器用來保存當(dāng)前CPU所訪問的內(nèi)存單元的地址。由于在內(nèi)存和CPU之間存在著操作速度上的差別,所以必須使用地址寄存器來保持地址信息,直到內(nèi)存的讀/寫操作完成為止。當(dāng)CPU和內(nèi)存進(jìn)行信息交換,即CPU向內(nèi)存存/取數(shù)據(jù)時(shí),或者CPU從內(nèi)存中讀出指令時(shí),都要使用地址寄存器和數(shù)據(jù)緩沖寄存器。同樣,如果我們把外圍設(shè)備的設(shè)備地址作為像內(nèi)存的地址單元那樣來看待,那么,當(dāng)CPU和外圍設(shè)備交換信息時(shí),我們同樣使用地址寄存器和數(shù)據(jù)緩沖寄存器。地址寄存器的結(jié)構(gòu)和數(shù)據(jù)緩沖寄存器、指令寄存器一樣,通常使用單純的寄存器結(jié)構(gòu)。信息的存入一般采用電位-脈沖方式,即電位輸入端對(duì)應(yīng)數(shù)據(jù)信息位,脈沖輸入端對(duì)應(yīng)控制信號(hào),在控制信號(hào)作用下,瞬時(shí)地將信息打入寄存器。當(dāng)前13頁,總共167頁。5.累加寄存器(AC)累加寄存器AC通常簡稱為累加器,它是一個(gè)通用寄存器。其功能是:當(dāng)運(yùn)算器的算術(shù)邏輯單元ALU)執(zhí)行算術(shù)或邏輯運(yùn)算時(shí),為ALU提供一個(gè)工作區(qū)。累加寄存器暫時(shí)存放ALU運(yùn)算的結(jié)果信息。顯然,運(yùn)算器中至少要有一個(gè)累加寄存器。目前CPU中的累加寄存器,多達(dá)16個(gè),32個(gè),甚至更多。當(dāng)使用多個(gè)累加器時(shí),就變成通用寄存器堆結(jié)構(gòu),其中任何一個(gè)可存放源操作數(shù),也可存放結(jié)果操作數(shù)。在這種情況下,需要在指令格式中對(duì)寄存器號(hào)加以編址。當(dāng)前14頁,總共167頁。6.狀態(tài)條件寄存器(PSW)狀態(tài)條件寄存器保存由算術(shù)指令和邏輯指令運(yùn)行或測(cè)試的結(jié)果建立的各種條件碼內(nèi)容,如運(yùn)算結(jié)果進(jìn)位標(biāo)志C,運(yùn)算結(jié)果溢出標(biāo)志V,運(yùn)算結(jié)果為零標(biāo)志Z,運(yùn)算結(jié)果為負(fù)標(biāo)志N等等。這些標(biāo)志位通常分別由1位觸發(fā)器保存。除此之外,狀態(tài)條件寄存器還保存中斷和系統(tǒng)工作狀態(tài)等信息,以便使CPU和系統(tǒng)能及時(shí)了解機(jī)器運(yùn)行狀態(tài)和程序運(yùn)行狀態(tài)。因此,狀態(tài)條件寄存器是一個(gè)由各種狀態(tài)條件標(biāo)志拼湊而成的寄存器。當(dāng)前15頁,總共167頁。5.1.4操作控制器與時(shí)序產(chǎn)生器數(shù)據(jù)通路是許多寄存器之間傳送信息的通路。信息從什么地方開始,中間經(jīng)過哪個(gè)寄存器或多路開關(guān),最后傳送到哪個(gè)寄存器,都要加以控制。在各寄存器之間建立數(shù)據(jù)通路的任務(wù),是由稱為操作控制器的部件來完成的。操作控制器的功能,就是根據(jù)指令操作碼和時(shí)序信號(hào),產(chǎn)生各種操作控制信號(hào),以便正確地建立數(shù)據(jù)通路,從而完成取指令和執(zhí)行指令的控制。當(dāng)前16頁,總共167頁。根據(jù)設(shè)計(jì)方法不同,操作控制器可分為時(shí)序邏輯型、存儲(chǔ)邏輯型、時(shí)序邏輯與存儲(chǔ)邏輯結(jié)合型三種。第一種稱為硬布線控制器,它是采用時(shí)序邏輯技術(shù)來實(shí)現(xiàn)的;第二種稱為微程序控制器,它是采用存儲(chǔ)邏輯來實(shí)現(xiàn)的;第三種是前兩種方式的組合。我們重點(diǎn)介紹微程序控制器。1.硬布線控制器:采用時(shí)序邏輯技術(shù)來實(shí)現(xiàn)的操作控制器。2.微程序控制器:采用存儲(chǔ)邏輯來實(shí)現(xiàn)的的操作控制器。當(dāng)前17頁,總共167頁。5.2指令周期
5.2.1指令周期的基本概念計(jì)算機(jī)的CPU自動(dòng)地從存放程序的內(nèi)存里取出一條指令并執(zhí)行這條指令;緊接著又是取指令,執(zhí)行指令……,如此周而復(fù)始,構(gòu)成了一個(gè)封閉的循環(huán)。指令周期
CPU從內(nèi)存取出一條指令并執(zhí)行這條指令的時(shí)間總和。CPU周期
又稱機(jī)器周期,CPU訪問一次內(nèi)存所花的時(shí)間較長,因此用從內(nèi)存讀取一條指令字的最短時(shí)間來定義。時(shí)鐘周期
通常稱為節(jié)拍脈沖或T周期。一個(gè)CPU周期包含若干個(gè)時(shí)鐘周期。當(dāng)前18頁,總共167頁。圖5.3指令周期當(dāng)前19頁,總共167頁。下面舉例來說明指令的執(zhí)行周期過程。程序指令:S1:CLAADD30STA40NOPJMPS1其中包含有非訪內(nèi)存,和訪內(nèi)存,程序控制轉(zhuǎn)移指令。當(dāng)前20頁,總共167頁。5.2.2非訪內(nèi)存指令的指令周期CLA是一條非訪內(nèi)存指令,它需要兩個(gè)CPU周期,其中取指令階段需要一個(gè)CPU周期,執(zhí)行指令階段需要一個(gè)CPU周期。1.取指令階段(1)程序計(jì)數(shù)器PC的內(nèi)容20(八進(jìn)制)被裝入地址寄存器AR;(2)程序計(jì)數(shù)器內(nèi)容加1,變成21,為取下一條指令做好準(zhǔn)備;(3)地址寄存器的內(nèi)容被放到地址總線上;當(dāng)前21頁,總共167頁。當(dāng)前22頁,總共167頁。(4)所選存儲(chǔ)器單元20的內(nèi)容經(jīng)過數(shù)據(jù)總線,傳送到數(shù)據(jù)緩沖寄存器DR;(5)緩沖寄存器的內(nèi)容傳送到指令寄存器IR;(6)指令寄存器中的操作碼被譯碼或測(cè)試;(7)CPU識(shí)別出是指令CLA,至此,取指令階段即告結(jié)束。2.執(zhí)行指令階段(1)操作控制器送一控制信號(hào)給算術(shù)邏輯運(yùn)算單元ALU;(2)ALU響應(yīng)該控制信號(hào),將累加寄存器AC的內(nèi)容全部清零,從而執(zhí)行了CLA指令。當(dāng)前23頁,總共167頁。5.2.3取數(shù)指令的指令周期ADD指令是一條訪問內(nèi)存取數(shù)的指令,指令周期由三個(gè)CPU周期組成,如下圖所示。1.取指令階段(同上)2.送操作數(shù)地址
第二個(gè)CPU周期主要完成送操作數(shù)地址。在此階段,CPU的動(dòng)作只有一個(gè),那就是把指令寄存器中的地址碼部分(30)裝入地址寄存器,其中30為內(nèi)存中存放操作數(shù)的地址。當(dāng)前24頁,總共167頁。當(dāng)前25頁,總共167頁。3.兩操作數(shù)相加第三個(gè)CPU周期主要完成取操作數(shù)并執(zhí)行加法操作中。在此階段,CPU完成如下動(dòng)作:(1)把地址寄存器中的操作數(shù)的地址(30)發(fā)送到地址總線上。(2)由存儲(chǔ)器單元30中讀出操作數(shù)(6),并經(jīng)過數(shù)據(jù)總線傳送到緩沖寄存器。(3)執(zhí)行加操作:由數(shù)據(jù)緩沖寄存器來的操作數(shù)(6)可送往ALU的一個(gè)輸入端,已等候在累加器內(nèi)的另一個(gè)操作數(shù)(因?yàn)镃LA指令執(zhí)行結(jié)束后累加器內(nèi)容為零)送往ALU的另一輸入端,于是ALU將兩數(shù)相加,產(chǎn)生運(yùn)算結(jié)果為0+6=6。這個(gè)結(jié)果放回累加器,替換了累加器中原先的數(shù)0。當(dāng)前26頁,總共167頁。5.2.4存數(shù)指令的指令周期
STA指令是一條訪問內(nèi)存存數(shù)的指令,指令周期由三個(gè)CPU周期組成,如下圖所示。1.取指令階段(同上)2.送操作數(shù)地址在執(zhí)行階段的第二個(gè)CPU周期中,CPU完成的動(dòng)作是把指令寄存器中地址碼部分的形式地址40裝到地址寄存器。其中數(shù)字40是操作數(shù)地址。當(dāng)前27頁,總共167頁。當(dāng)前28頁,總共167頁。3.存儲(chǔ)和數(shù)執(zhí)行階段的第三個(gè)CPU周期中,累加寄存器的內(nèi)容傳送到緩沖寄存器,然后再存入到所選定的存儲(chǔ)單元(40)中。CPU完成如下動(dòng)作:(1)累加器的內(nèi)容(6)被傳送到數(shù)據(jù)緩沖寄存器DR;(2)把地址寄存器的內(nèi)容(40)發(fā)送到地址總線上,40即為將要存入的數(shù)據(jù)6的內(nèi)存單元號(hào);(3)把緩沖寄存器的內(nèi)容(6)發(fā)送到數(shù)據(jù)總線上;(4)數(shù)據(jù)總線上的數(shù)寫入到所選中的存儲(chǔ)器單元中,即將數(shù)6寫入到存儲(chǔ)器40號(hào)單元中。注意
在這個(gè)操作之后,累加器中仍然保留和數(shù)6,而存儲(chǔ)器40號(hào)單元中原先的內(nèi)容被沖掉。當(dāng)前29頁,總共167頁。5.2.5空操作指令和轉(zhuǎn)移指令的指令周期第四條指令即“NOP”指令,這是一條空操作指令。其中第一個(gè)CPU周期中取指令,CPU把23號(hào)單元的“NOP”指令取出放到指令寄存器,第二個(gè)CPU周期中執(zhí)行該指令。因譯碼器譯出是“NOP”指令,第二個(gè)CPU周期中操作控制器不發(fā)出任何控制信號(hào)。NOP指令可用來調(diào)機(jī)之用。第五條JMP指令的指令周期由兩個(gè)CPU周期組成,如下圖所示。當(dāng)前30頁,總共167頁。當(dāng)前31頁,總共167頁。1.第一個(gè)CPU周期(取指令階段)CPU把24號(hào)單元的“JMP21”指令取出放至指令寄存器,同時(shí)程序計(jì)數(shù)器內(nèi)容加1,變?yōu)?5,從而取下一條指令做好準(zhǔn)備。2.第二個(gè)CPU周期(執(zhí)行階段)CPU把指令寄存器中地址碼部分21送到程序計(jì)數(shù)器,從而用新內(nèi)容21代替PC原先的內(nèi)容25。這樣,下一條指令將不從25單元讀出,而是從內(nèi)存21單元開始讀出并執(zhí)行,從而改變了程序原先的執(zhí)行順序。注意執(zhí)行“JMP21”指令時(shí),此處程序進(jìn)入死循環(huán),除非人為停機(jī),否則程序?qū)o休止地運(yùn)行下去。當(dāng)前32頁,總共167頁。5.2.6五條指令的取指和執(zhí)行過程我們把前面的五條典型指令加以歸納,其取指和執(zhí)行過程如下圖所示。當(dāng)前33頁,總共167頁。當(dāng)前34頁,總共167頁。5.2.7用方框圖語言表示指令周期
在進(jìn)行計(jì)算機(jī)設(shè)計(jì)時(shí),可以采用方框圖語言來表示一條指令的指令周期。方框代表一個(gè)CPU周期,方框中的內(nèi)容表示數(shù)據(jù)通路的操作或某種控制操作。菱形通常用來表示某種判別或測(cè)試,不過時(shí)間上它依附于緊接它的前面一個(gè)方框的CPU周期,而不單獨(dú)占用一個(gè)CPU周期。我們把前面的五條典型指令加以歸納,用方框圖語言表示的指令周期如下圖所示。當(dāng)前35頁,總共167頁。當(dāng)前36頁,總共167頁?!纠?】教材圖5.15所示為雙總線結(jié)構(gòu)機(jī)器的數(shù)據(jù)通路,IR為指令寄存器,PC為程序計(jì)數(shù)器(具有自增功能),M為主存(受R/W信號(hào)控制),AR為地址寄存器,DR為數(shù)據(jù)緩沖寄存器,ALU由加、減控制信號(hào)決定完成何種操作,控制信號(hào)G控制的是一個(gè)門電路。另外,線上標(biāo)注有小圈表示有控制信號(hào),例中yi表示y寄存器的輸入控制信號(hào),R1o為寄存器R1的輸出控制信號(hào),未標(biāo)字符的線為直通線,不受控制?!癆DDR2,R0”指令完成(R0)+(R2)→R0的功能操作,畫出其指令周期流程圖,假設(shè)該指令的地址已放入PC中。列出相應(yīng)的微操作控制信號(hào)序列。(2)“SUBR1,R3”指令完成(R3)-(R1)→R3的操作,畫出其指令期流程圖,并列出相應(yīng)的微操作控制信號(hào)序列。
當(dāng)前37頁,總共167頁。當(dāng)前38頁,總共167頁?!窘狻?1)“ADDR2,R0”指令是一條加法指令,參與運(yùn)算的兩個(gè)數(shù)放在寄存器R2和R0中,指令周期流程圖包括取指令階段和執(zhí)行指令階段兩部分(為簡單起見,省去了“→”號(hào)左邊各寄存器代碼上應(yīng)加的括號(hào))。根據(jù)給定的數(shù)據(jù)通路圖,“ADDR2,R0”指令的詳細(xì)指令周期流程圖如圖(a)所示,圖的右邊部分標(biāo)注了每一個(gè)機(jī)器周期中用到的微操作控制信號(hào)序列。(2)“SUBR1,R3”指令是一條減法指令,其指令周期流程圖如圖(b)所示。與ADD指令不同的是:在執(zhí)行指令階段,微操作控制信號(hào)序列有所不同。當(dāng)前39頁,總共167頁。圖5.16加法和減法指令周期流程圖當(dāng)前40頁,總共167頁。5.3時(shí)序產(chǎn)生器和控制方式
5.3.1時(shí)序信號(hào)的作用和體制時(shí)序信號(hào)
CPU中一個(gè)類似“作息時(shí)間”的東西,使計(jì)算機(jī)可以準(zhǔn)確、迅速、有條不紊地工作。機(jī)器一旦被啟動(dòng),即CPU開始取指令并執(zhí)行指令時(shí),操作控制器就利用定時(shí)脈沖的順序和不同的脈沖間隔,有條理、有節(jié)奏地指揮機(jī)器的動(dòng)作,規(guī)定在這個(gè)脈沖到來時(shí)做什么,在那個(gè)脈沖到來時(shí)又做什么,給計(jì)算機(jī)各部分提供工作所需的時(shí)間標(biāo)志。為此,需要采用多級(jí)時(shí)序體制。當(dāng)前41頁,總共167頁。[思考]
用二進(jìn)制碼表示的指令和數(shù)據(jù)都放在內(nèi)存里,那么CPU是怎樣識(shí)別出它們是數(shù)據(jù)還是指令呢?從時(shí)間上來說,取指令事件發(fā)生在指令周期的第一個(gè)CPU周期中,即發(fā)生在“取指令”階段,而取數(shù)據(jù)事件發(fā)生在指令周期的后面幾個(gè)CPU周期中,即發(fā)生在“執(zhí)行指令”階段。從空間上來說,如果取出的代碼是指令,那么一定送往指令寄存器,如果取出的代碼是數(shù)據(jù),那么一定送往運(yùn)算器。由此可見,時(shí)間控制對(duì)計(jì)算機(jī)來說是太重要了。當(dāng)前42頁,總共167頁??傊?,計(jì)算機(jī)的協(xié)調(diào)動(dòng)作需要時(shí)間標(biāo)志,而時(shí)間標(biāo)志則是用時(shí)序信號(hào)來體現(xiàn)的。硬布線控制器中,時(shí)序信號(hào)往往采用主狀態(tài)周期-節(jié)拍電位-節(jié)拍脈沖三級(jí)體制。在微程序控制器中,時(shí)序信號(hào)比較簡單,一般采用節(jié)拍電位-節(jié)拍脈沖二級(jí)體制。當(dāng)前43頁,總共167頁。5.3.2時(shí)序信號(hào)產(chǎn)生器
微程序控制器中使用的時(shí)序信號(hào)產(chǎn)生器由時(shí)鐘源、環(huán)形脈沖發(fā)生器、節(jié)拍脈沖和讀寫時(shí)序譯碼邏輯、啟??刂七壿嫷炔糠纸M成。
1.時(shí)鐘源時(shí)鐘源用來為環(huán)形脈沖發(fā)生器提供頻率穩(wěn)定且電平匹配的方波時(shí)鐘脈沖信號(hào)。它通常由石英晶體振蕩器和與非門組成的正反饋振蕩電路組成,其輸出送至環(huán)形脈沖發(fā)生器。當(dāng)前44頁,總共167頁。2.環(huán)形脈沖發(fā)生器與時(shí)序信號(hào)譯碼環(huán)形脈沖發(fā)生器的作用是產(chǎn)生一組有序的間隔相等或不等的脈沖序列,以便通過譯碼電路來產(chǎn)生最后所需的節(jié)拍脈沖。為了在節(jié)拍脈沖上不帶干擾毛刺,環(huán)形脈沖發(fā)生器通常采用循環(huán)移位寄存器形式,如下圖5.18所示。如圖所生產(chǎn)的輸出節(jié)拍脈沖關(guān)系如下圖5.19所示。當(dāng)前45頁,總共167頁。當(dāng)前46頁,總共167頁。圖5.19節(jié)拍電位與節(jié)拍脈沖時(shí)序關(guān)系圖當(dāng)前47頁,總共167頁。5.3.3控制方式控制方式即控制不同操作序列時(shí)序信號(hào)的方法。常用的有同步控制、異步控制、聯(lián)合控制三種方式,其實(shí)質(zhì)反映了時(shí)序信號(hào)的定時(shí)方式。1.同步控制方式在任何情況下,已定的指令在執(zhí)行時(shí)所需的機(jī)器周期數(shù)和時(shí)鐘周期數(shù)都固定不變。根據(jù)不同情況,同步控制方式可選取如下方案:(1)采用完全統(tǒng)一的機(jī)器周期執(zhí)行各種不同的指令。(2)采用不定長機(jī)器周期。(3)中央控制與局部控制結(jié)合。當(dāng)前48頁,總共167頁。2.異步控制方式其特點(diǎn)是:每條指令、每個(gè)操作控制信號(hào)需要多少時(shí)間就占用多少時(shí)間。這意味著每條指令的指令周期可由多少不等的機(jī)器周期數(shù)組成;也可以是當(dāng)控制器發(fā)出某一操作控制信號(hào)后,等待執(zhí)行部件完成操作后發(fā)“回答”信號(hào),再開始新的操作。顯然,用這種方式形成的操作控制序列沒有固定的CPU周期數(shù)(節(jié)拍電位)或嚴(yán)格的時(shí)鐘周期(節(jié)拍脈沖)與之同步。當(dāng)前49頁,總共167頁。3.聯(lián)合控制方式此為同步控制和異步控制相結(jié)合的方式。情況1
大部分操作序列安排在固定的機(jī)器周期中,對(duì)某些時(shí)間難以確定的操作則以執(zhí)行部件的“回答”信號(hào)作為本次操作的結(jié)束;情況2機(jī)器周期的節(jié)拍脈沖數(shù)固定,但是各條指令周期的機(jī)器周期數(shù)不固定。當(dāng)前50頁,總共167頁。5.4
微程序控制器
5.4.1微命令和微操作微命令
控制部件通過控制線向執(zhí)行部件發(fā)出的各種控制命令。微操作執(zhí)行部件接受微命令后所進(jìn)行的操作。
控制部件與執(zhí)行部件通過控制線和反饋信息進(jìn)行聯(lián)系。簡單運(yùn)算器數(shù)據(jù)通路如下圖所示。當(dāng)前51頁,總共167頁。當(dāng)前52頁,總共167頁。5.4.2微指令和微程序
微指令
在機(jī)器的一個(gè)CPU周期中,一組實(shí)現(xiàn)一定操作功能的微命令的組合。微程序?qū)崿F(xiàn)一條機(jī)器指令功能的許多條微指令組成的序列??刂撇考c執(zhí)行部件通過控制線和反饋信息進(jìn)行聯(lián)系。具體的微指令結(jié)構(gòu)如下圖所示。當(dāng)前53頁,總共167頁。當(dāng)前54頁,總共167頁。當(dāng)前55頁,總共167頁。5.4.3微程序控制器原理框圖
微程序控制器原理框圖如下圖所示。它主要由控制存儲(chǔ)器、微指令寄存器和地址轉(zhuǎn)移邏輯三大部分組成。
當(dāng)前56頁,總共167頁。當(dāng)前57頁,總共167頁。1.控制存儲(chǔ)器控制存儲(chǔ)器用來存放實(shí)現(xiàn)全部指令系統(tǒng)的微程序,它是一種只讀存儲(chǔ)器。一旦微程序固化,機(jī)器運(yùn)行時(shí)則只讀不寫。其工作過程是:每讀出一條微指令,則執(zhí)行這條微指令;接著又讀出下一條微指令,又執(zhí)行這一條微指令,如此循環(huán)下去。讀出一條微指令并執(zhí)行該微指令的時(shí)間總和稱為一個(gè)微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只讀存儲(chǔ)器的工作周期??刂拼鎯?chǔ)器的字長就是微指令字的長度,其存儲(chǔ)容量視機(jī)器指令系統(tǒng)而定,即取決于微程序的數(shù)量。對(duì)控制存儲(chǔ)器的要求是速度快,讀出周期要短。當(dāng)前58頁,總共167頁。2.微指令寄存器微指令寄存器用來存放由控制存儲(chǔ)器讀出的一條微指令信息。其中微地址寄存器決定將要訪問的下一條微指令的地址,而微命令寄存器則保存一條微指令的操作控制字段和判別測(cè)試字段的信息。當(dāng)前59頁,總共167頁。3.地址轉(zhuǎn)移邏輯在一般情況下,微指令由控制存儲(chǔ)器讀出后直接給出下一條微指令的地址,通常我們簡稱微地址,這個(gè)微地址信息就存放在微地址寄存器中。如果微程序不出現(xiàn)分支,那么下一條微指令的地址就直接由微地址寄存器給出。當(dāng)微程序出現(xiàn)分支時(shí),意味著微程序出現(xiàn)條件轉(zhuǎn)移。在這種情況下,通過判別測(cè)試字段P和執(zhí)行部件的“狀態(tài)條件”反饋信息,去修改微地址寄存器的內(nèi)容,并按改好的內(nèi)容去讀下一條微指令。地址轉(zhuǎn)移邏輯就承擔(dān)自動(dòng)完成修改微地址的任務(wù)。當(dāng)前60頁,總共167頁。5.4.4微程序舉例我們舉“十進(jìn)制加法”指令為例,具體看一看微程序控制的過程。
第一條微指令的二進(jìn)制編碼是00000000000011111100000第二條微指令的二進(jìn)制編碼是01010010010000000001001第三條微指令的二進(jìn)制編碼是第四條微指令的二進(jìn)制編碼是0100010011000000001000001000100100100000000000當(dāng)前61頁,總共167頁。當(dāng)前62頁,總共167頁。5.4.5CPU周期與微指令周期的關(guān)系在串行方式的微程序控制器中:
微指令周期=讀出微指令的時(shí)間+執(zhí)行該條微指令的時(shí)間下圖示出了某小型機(jī)中CPU周期與微指令周期的時(shí)間關(guān)系當(dāng)前63頁,總共167頁?!痉治觥恳粋€(gè)CPU周期為0.8μs,它包含四個(gè)等間隔的節(jié)拍脈沖T1—T4,每個(gè)脈沖寬度為200ns。用T4作為讀取微指令的時(shí)間,用T1+T2+T3時(shí)間作為執(zhí)行微指令的時(shí)間。例如,在前600ns時(shí)間內(nèi)運(yùn)算器進(jìn)行運(yùn)算,在600ns時(shí)間的末尾運(yùn)算器已經(jīng)運(yùn)算完畢,可用T4上升沿將運(yùn)算結(jié)果打入某個(gè)寄存器。與此同時(shí)可用T4間隔讀取下條微指令,經(jīng)200ns時(shí)間延遲,下條微指令又從只讀存儲(chǔ)器讀出,并用T1上升沿打入到微指令寄存器。如忽略觸發(fā)器的翻轉(zhuǎn)延遲,那么下條微指令的微命令信號(hào)就從T1上升沿起就開始有效,直到下一條微指令讀出后打入微指令寄存器為止。因此一條微指令的保持時(shí)間恰好是0.8μs,也就是一個(gè)CPU周期的時(shí)間。當(dāng)前64頁,總共167頁。5.4.6機(jī)器指令與微指令的關(guān)系
【問】一會(huì)兒取機(jī)器指令,一會(huì)兒取微指令,它們之間到底是什么關(guān)系?【解】1.一條機(jī)器指令對(duì)應(yīng)一個(gè)微程序,這個(gè)微程序是由若干條微指令序列組成的。因此,一條機(jī)器指令的功能是由若干條微指令組成的序列來實(shí)現(xiàn)的。簡言之,一條機(jī)器指令所完成的操作劃分成若干條微指令來完成,由微指令進(jìn)行解釋和執(zhí)行。2.從指令與微指令,程序與微程序,地址與微地址的一一對(duì)應(yīng)關(guān)系來看,前者與內(nèi)存儲(chǔ)器有關(guān),后者與控制存儲(chǔ)器有關(guān)。當(dāng)前65頁,總共167頁。當(dāng)前66頁,總共167頁?!纠?】設(shè)某計(jì)算機(jī)運(yùn)算器框圖如圖(a)所示,其中ALU為16位的加法器(高電平工作),SA,SB為16位暫存器。4個(gè)通用寄存器由D觸發(fā)器組成,Q端輸出,其讀、寫控制功能見下表。讀控制寫控制RRA0RA1選擇WWA0WA1選擇100R0100R0101R1101R1110R2110R2111R3111R30**不讀出0**不寫入當(dāng)前67頁,總共167頁。當(dāng)前68頁,總共167頁。當(dāng)前69頁,總共167頁。機(jī)器采用串行微程序控制方式,其微指令周期見圖(b)。其中讀ROM是從控存中讀出一條微指令時(shí)間,為1μs;ALU工作是加法器做加法運(yùn)算,為500ns;m1是讀寄存器時(shí)間,為500ns;m2是寫寄存器的工作脈沖寬度,為100ns。微指令字長12位,微指令格式如下(未考慮順序控制字段):RA0RA1WA0WA1RWLDSALDSBSB-ALUSB-ALUReset~
RA0RA1:讀R0-R3的選擇控制
WA0WA1:寫R0-R3的選擇控制當(dāng)前70頁,總共167頁。LDSA:打入SA的控制信號(hào)LDSB:打入SB的控制信號(hào)SB-ALU:傳送SB的控制信號(hào)SB-ALU:傳送SB的控制信號(hào),并使加法器最低位加1.Reset:清暫存器SB為零的信號(hào)~:一段微程序結(jié)束,轉(zhuǎn)入取機(jī)器指令的控制信號(hào)要求:用二進(jìn)制代碼寫出如下指令的微程序:(1)“ADDR0,R1”指令,即(R0)+(R1)→R1(2)“SUBR2,R3”指令,即(R3)-(R2)→R3(3)“MOVR2,R3”指令,即(R2)→(R3)當(dāng)前71頁,總共167頁。【解】先畫出三條指令的微指令的微程序流程圖,如下圖所示。當(dāng)前72頁,總共167頁。其中未考慮“取指周期”和順序控制問題,也即微程序僅考慮“執(zhí)行周期”,微指令序列的順序用數(shù)字標(biāo)號(hào)標(biāo)在每條微指令的右上角。每一框表示一條微指令。根據(jù)給定的微指令周期時(shí)間關(guān)系,完成ADD,SUB指令的執(zhí)行動(dòng)作需要3條微指令,MOV指令只需2條微指令。用二進(jìn)制代碼寫出的三條指令的微程序列于下表中,其中*表示代碼隨意設(shè)置(0或1均可)。當(dāng)前73頁,總共167頁。指令微程序代碼ADD1.00**101000002.01**100100003.**0101001001SUB4.11**101000005.10**100100006.**1101000101MOV7.10**101000008.**1101001011當(dāng)前74頁,總共167頁。5.5微程序設(shè)計(jì)技術(shù)
5.5.1微命令編碼微命令編碼
對(duì)微指令中的操作控制字段采用的表示方法。通常有以下三種方法:1.直接表示法其特點(diǎn)是操作控制字段中的每一位代表一個(gè)微命令。這種方法的優(yōu)點(diǎn)是簡單直觀,其輸出直接用于控制。缺點(diǎn)是微指令字較長,因而使控制存儲(chǔ)器容量較大。當(dāng)前75頁,總共167頁。2.編碼表示法編碼表示法是把一組相斥性的微命令信號(hào)組成一個(gè)小組(即一個(gè)字段),然后通過小組譯碼器對(duì)每一個(gè)微命令信號(hào)進(jìn)行譯碼,譯碼輸出作為操作控制信號(hào),其微指令結(jié)構(gòu)如下圖所示。采用字段譯碼的編碼方法,可以用較小的二進(jìn)制信息位表示較多的微命令信號(hào)。例如3位二進(jìn)位譯碼后可表示7個(gè)微命令,4位二進(jìn)制位譯碼后可表示15個(gè)微命令。與直接控制法相比,字譯碼控制法可使微指令字大大縮短,但由于增加譯碼電路,使微程序的執(zhí)行速度稍稍減慢。目前在微程序控制器設(shè)計(jì)中,字段直接譯碼法使用較普遍。當(dāng)前76頁,總共167頁。當(dāng)前77頁,總共167頁。3.混合表示法這種方法是把直接表示法與字段編碼法混合使用,以便能綜合考慮指令字長、靈活性、執(zhí)行微程序速度等方面的要求。另外在微指令中還可附設(shè)一個(gè)常數(shù)字段。該常數(shù)可作為操作數(shù)送入ALU運(yùn)算,也可作為計(jì)數(shù)器初值用來控制微程序循環(huán)次數(shù)。當(dāng)前78頁,總共167頁。5.5.2微地址的形成方法
微指令執(zhí)行的順序控制問題,實(shí)際上是如何確定下一條微指令的地址問題。通常,產(chǎn)生后繼微地址有兩種方法:1.計(jì)數(shù)器方式
2.多路轉(zhuǎn)移方式當(dāng)前79頁,總共167頁。1.計(jì)數(shù)器方式
這種方法同程序計(jì)數(shù)器來產(chǎn)生機(jī)器指令地址的方法相類似。在順序執(zhí)行微指令時(shí),后繼微地址由現(xiàn)行微地址加上一個(gè)增量來產(chǎn)生;在非順序執(zhí)行微指令時(shí),必須通過轉(zhuǎn)移方式,使現(xiàn)行微指令執(zhí)行后,轉(zhuǎn)去執(zhí)行指定后繼微地址的下一條微指令。在這種方法中,微地址寄存器通常改為計(jì)數(shù)器。為此,順序執(zhí)行的微指令序列就必須安排在控制存儲(chǔ)器的連續(xù)單元中。計(jì)數(shù)器方式的基本特點(diǎn)是:微指令的順序控制字段較短,微地址產(chǎn)生機(jī)構(gòu)簡單。但是多路并行轉(zhuǎn)移功能較弱,速度較慢,靈活性較差。
當(dāng)前80頁,總共167頁。2.多路轉(zhuǎn)移方式一條微指令具有多個(gè)轉(zhuǎn)移分支的能力稱為多路轉(zhuǎn)移。在多路轉(zhuǎn)移方式中,當(dāng)微程序不產(chǎn)生分支時(shí),后繼微地址直接由順序控制字段給出;當(dāng)微程序出現(xiàn)分支時(shí),有若干“后選”微地址可供選擇:即按順序控制字段的“判別測(cè)試”標(biāo)志和“狀態(tài)條件”信息來選擇其中一個(gè)微地址?!盃顟B(tài)條件”有n位標(biāo)志則可實(shí)現(xiàn)微程序2的n次方路轉(zhuǎn)移,涉及微地址寄存器的n位。多路轉(zhuǎn)移方式的特點(diǎn)是:能以較短的順序控制字段配合,實(shí)現(xiàn)多路并行轉(zhuǎn)移,靈活性好,速度較快,但轉(zhuǎn)移地址邏輯需要用組合邏輯方法設(shè)計(jì)。當(dāng)前81頁,總共167頁?!纠?】
微地址寄存器有6位(μA5-μA0),當(dāng)需要修改其內(nèi)容時(shí),可通過某一位觸發(fā)器的強(qiáng)置端S將其置“1”?,F(xiàn)有三種情況:(1)執(zhí)行“取指”微指令后,微程序按IR的OP字段(IR3-IR0)進(jìn)行16路分支;(2)執(zhí)行條件轉(zhuǎn)移指令微程序時(shí),按進(jìn)位標(biāo)志C的狀態(tài)進(jìn)行2路分支;(3)執(zhí)行控制臺(tái)指令微程序時(shí),按IR4,IR5的狀態(tài)進(jìn)行4路分支。請(qǐng)按多路轉(zhuǎn)移方法設(shè)計(jì)微地址轉(zhuǎn)移邏輯。當(dāng)前82頁,總共167頁?!窘狻堪此o設(shè)計(jì)條件,微程序有三種判別測(cè)試,分別為P1,P2,P3。由于修改μA5-μA0內(nèi)容具有很大靈活性,現(xiàn)分配如下:(1)用P1和IR3-IR0修改μA3-μA0;(2)用P2和C修改μA0;(3)用P3和IR5,IR4修改μA5,μA4。另外還要考慮時(shí)間因素T4(假設(shè)CPU周期最后一個(gè)節(jié)拍脈沖),故轉(zhuǎn)移邏輯表達(dá)式如下:當(dāng)前83頁,總共167頁。μA5=P3·IR5·T4μA4=P3·IR4·T4μA3=P1·IR3·T4μA2=P1·IR2·T4μA1=P1·IR1·T4μA0=P1·IR0·T4+P2·C·T4由于從觸發(fā)器強(qiáng)置端修改,故前5個(gè)表達(dá)式可用“與非”門實(shí)現(xiàn),最后一個(gè)用“與或非”門實(shí)現(xiàn)。下圖僅畫出了μA2、μA1、μA0觸發(fā)器的微地址轉(zhuǎn)移邏輯圖。當(dāng)前84頁,總共167頁。當(dāng)前85頁,總共167頁。5.5.3微指令格式微指令的編譯方法是決定微指令格式的主要因素。微指令的格式大體分成兩類:水平型微指令和垂直型微指令。1.水平型微指令一次能定義并執(zhí)行多個(gè)并行操作微命令的微指令,叫做水平型微指令。其一般格式如下:控制字段判別測(cè)試字段下一地址字段按照控制字段的編碼方法不同,水平型微指令又分為三種:全水平型(不譯法)微指令,字段譯碼法水平型微指令,以及直接和譯碼相混合的水平型微指令。當(dāng)前86頁,總共167頁。2.垂直型微指令微指令中設(shè)置微操作碼字段,采用微操作碼編譯法,由微操作碼規(guī)定微指令的功能,稱為垂直型微指令。其結(jié)構(gòu)類似于機(jī)器指令的結(jié)構(gòu)。它有操作碼,在一條微指令中只有1~2個(gè)微操作命令。每條微指令的功能簡單,因此,實(shí)現(xiàn)一條機(jī)器指令的微程序要比水平型微指令編寫的微程序長得多。它是采用較長的微程序結(jié)構(gòu)去換取較短的微指令結(jié)構(gòu)。下面舉4條垂直型微指令的微指令格式加以說明。設(shè)微指令字長為16位,微操作碼3位。當(dāng)前87頁,總共167頁。(1)寄存器-寄存器傳送型微指令其功能是把源寄存器數(shù)據(jù)送目標(biāo)寄存器。13~15位為微操作碼(下同),源寄存器和目標(biāo)寄存器編址各5位,可指定31個(gè)寄存器。當(dāng)前88頁,總共167頁。(2)運(yùn)算控制型微指令其功能是選擇ALU的左、右兩輸入源信息,按ALU字段所指定的運(yùn)算功能(8種操作)進(jìn)行處理,并將結(jié)果送入暫存器中。左、右輸入源編址可指定31種信息源之一。當(dāng)前89頁,總共167頁。(3)訪問主存微指令其功能是將主存中一個(gè)單元的信息送入寄存器或者將寄存器的數(shù)據(jù)送往主存。存儲(chǔ)器編址是指按規(guī)定的尋址方式進(jìn)行編址。第1,2位指定讀操作或?qū)懖僮?取其之一)。當(dāng)前90頁,總共167頁。(4)條件轉(zhuǎn)移微指令其功能是根據(jù)測(cè)試對(duì)象的狀態(tài)決定是轉(zhuǎn)移到D所指定的微地址單元,還是順序執(zhí)行下一條微指令。9位D字段不足以表示一個(gè)完整的微地址,但可以用來替代現(xiàn)行μPC的低位地址。測(cè)試條件字段有4位,可規(guī)定16種測(cè)試條件。011當(dāng)前91頁,總共167頁。3.水平型微指令與垂直型微指令的比較(1)水平型微指令并行操作能力強(qiáng),效率高,靈活性強(qiáng),垂直型微指令則較差。(2)水平型微指令執(zhí)行一條指令的時(shí)間短,垂直型微指令執(zhí)行時(shí)間長。(3)由水平型微指令解釋指令的微程序,有微指令字較長而微程序短的特點(diǎn)。垂直型微指令則相反。(4)水平型微指令用戶難以掌握,而垂直型微指令與指令比較相似,相對(duì)來說,比較容易掌握。當(dāng)前92頁,總共167頁。5.5.4動(dòng)態(tài)微程序設(shè)計(jì)
微程序設(shè)計(jì)技術(shù)有靜態(tài)微程序設(shè)計(jì)和動(dòng)態(tài)微程序設(shè)計(jì)之分。1.靜態(tài)微程序設(shè)計(jì)對(duì)應(yīng)于一臺(tái)計(jì)算機(jī)的機(jī)器指令只有一組微程序,而且這一組微程序設(shè)計(jì)好之后,一般無須改變而且也不好改變,這種微程序設(shè)計(jì)技術(shù)稱為靜態(tài)微程序設(shè)計(jì)。當(dāng)前93頁,總共167頁。2.動(dòng)態(tài)微程序設(shè)計(jì)
當(dāng)采用EPROM作為控制存儲(chǔ)器時(shí),還可以通過改變微指令和微程序來改變機(jī)器的指令系統(tǒng),這種微程序設(shè)計(jì)技術(shù)稱為動(dòng)態(tài)微程序設(shè)計(jì)。采用動(dòng)態(tài)微程序設(shè)計(jì)時(shí),微指令和微程序可以根據(jù)需要加以改變,因而可在一臺(tái)機(jī)器上實(shí)現(xiàn)不同類型的指令系統(tǒng)。這種技術(shù)又稱為仿真其他機(jī)器指令系統(tǒng),以便擴(kuò)大機(jī)器的功能。當(dāng)前94頁,總共167頁。5.6硬布線控制器
1.基本思想硬布線控制器是早期設(shè)計(jì)計(jì)算機(jī)的一種方法。這種方法是把控制部件看作為產(chǎn)生專門固定時(shí)序控制信號(hào)的邏輯電路,而此邏輯電路以使用最少元件和取得最高操作速度為設(shè)計(jì)目標(biāo)。一旦控制部件構(gòu)成后,除非重新設(shè)計(jì)和物理上對(duì)它重新布線,否則要想增加新的控制功能是不可能的。這種邏輯電路是一種由門電路和觸發(fā)器構(gòu)成的復(fù)雜樹形邏輯網(wǎng)絡(luò),故稱之為硬布線控制器。當(dāng)前95頁,總共167頁。圖5.31硬布線控制器結(jié)構(gòu)方框圖當(dāng)前96頁,總共167頁。由上圖可知:邏輯網(wǎng)絡(luò)的輸入信號(hào)來源有三個(gè):(1)來自指令操碼譯碼器的輸出Im;(2)來自執(zhí)行部件的反饋信息Bj;(3)來自時(shí)序產(chǎn)生器的時(shí)序信號(hào),包括節(jié)拍電位信號(hào)M和節(jié)拍脈沖信號(hào)T。邏輯網(wǎng)絡(luò)N的輸出信號(hào)就是微操作控制信號(hào),它用來對(duì)執(zhí)行部件進(jìn)行控制。硬布線控制器的基本原理:C=f(Im,Mi,Tk,Bj)當(dāng)前97頁,總共167頁。2.指令執(zhí)行流程在用硬布線實(shí)現(xiàn)的操作控制器中,通常時(shí)序產(chǎn)生器除了產(chǎn)生節(jié)拍脈沖信號(hào)外,還應(yīng)當(dāng)產(chǎn)生節(jié)拍電位信號(hào)。因?yàn)樵谝粋€(gè)指令周期中要順序執(zhí)行一系列微操作,需要設(shè)置若干節(jié)拍電位來定時(shí)。例如前面提到的五條指令的指令周期,其指令流程可用下圖來表示。當(dāng)前98頁,總共167頁。圖5.32硬布線控制器的指令周期流程圖當(dāng)前99頁,總共167頁。
圖中M1、M2、M3為三個(gè)節(jié)拍電位信號(hào),用于定時(shí)。由于采用同步工作方式,長指令和短指令對(duì)節(jié)拍時(shí)間的利用都是一樣的。這對(duì)短指令來講,在時(shí)間的利用上是浪費(fèi)的,因而也降低了CPU的指令執(zhí)行速度,影響到機(jī)器的速度指標(biāo)。為了改變這種情況,在設(shè)計(jì)短指令流程時(shí)可以跳過某些節(jié)拍。當(dāng)然在這種情況下,節(jié)拍信號(hào)發(fā)生器的電路相應(yīng)就要復(fù)雜一些。節(jié)拍電位信號(hào)的產(chǎn)生電路與節(jié)拍脈沖產(chǎn)生電路十分類似,它可以在節(jié)拍脈沖信號(hào)時(shí)序器的基礎(chǔ)上產(chǎn)生,運(yùn)行中以循環(huán)方式工作,并與節(jié)拍脈沖保持同步。當(dāng)前100頁,總共167頁。3.微操作控制信號(hào)的產(chǎn)生在微程序控制器中,微操作控制信號(hào)由微指令產(chǎn)生,并且可以重復(fù)使用。在硬布線控制器中,某一微操作控制信號(hào)由布爾代數(shù)表達(dá)式描述的輸出函數(shù)產(chǎn)生。設(shè)計(jì)微操作控制信號(hào)的方法和過程是,根據(jù)所有機(jī)器指令流程圖,尋找出產(chǎn)生同一個(gè)微操作信號(hào)的所有條件,并與適當(dāng)?shù)墓?jié)拍電位和節(jié)拍脈沖組合,從而寫出其布爾代數(shù)表達(dá)式并進(jìn)行簡化,然后用門電路或可編程器件來實(shí)現(xiàn)。為了防止遺漏,設(shè)計(jì)時(shí)可按信號(hào)出現(xiàn)在指令流程圖中的先后次序書寫,然后進(jìn)行歸納和簡化。要特別注意控制信號(hào)是電位有效還是脈沖有效,如果是脈沖有效,必須加入節(jié)拍脈沖信號(hào)進(jìn)行相“與”。當(dāng)前101頁,總共167頁。[例4]
上圖5.32中五條指令的微操作控制信號(hào)舉例,注意T脈沖的順序。
LDAR=M1·T2+M2(ADD+STA)·T2
LDDR=M1·T3+M3(ADD+STA)·T3
LDIR=M1·T4
RD=M1+M3·ADD
WE=M3·STA其中M1、M2、M3是三個(gè)節(jié)拍電位信號(hào);T3、T4為時(shí)鐘周期信號(hào);ADD、STA、JMP是指令OP字段譯碼器的輸出信號(hào)。當(dāng)前102頁,總共167頁。5.7傳統(tǒng)CPU
5.7.1M6800CPU
M6800CPU是一個(gè)比較典型的單總線結(jié)構(gòu)的8位微理器,它通過內(nèi)部的一條總線將微處理器內(nèi)部的各個(gè)邏輯部件連接起來,而外部總線將CPU與外面的部件連接起來。這樣,它描述了內(nèi)部總線和外部總線,也描述了本章中討論的算術(shù)邏輯運(yùn)算部件ALU、各類寄存器和控制部件的關(guān)系。
M6800CPU的邏輯框圖如下:當(dāng)前103頁,總共167頁。圖3.33M6800CPU的邏輯框圖當(dāng)前104頁,總共167頁。5.7.2Intel8088CPUIntel8088是一種通用的準(zhǔn)16位微處理器,其內(nèi)部結(jié)構(gòu)為16位,與外部交換的數(shù)據(jù)為8位。它可以處理16位數(shù)據(jù)(具有16位運(yùn)算指令,包括乘除法指令),也可以處理8位數(shù)據(jù)。它有20條地址線,所以直接尋址能力達(dá)到1M字節(jié)。采用40條引線封裝,單相時(shí)鐘,電源為5V。8088CPU的內(nèi)部結(jié)構(gòu)如下:當(dāng)前105頁,總共167頁。圖5.348088CPU的內(nèi)部結(jié)構(gòu)當(dāng)前106頁,總共167頁。5.7.3IBM370系列CPUIBM370系列機(jī)其字長32位,ALU部件按功能不同分為如下三個(gè)子部件:(1)定點(diǎn)運(yùn)算,包括整數(shù)計(jì)算和有效地址的計(jì)算;(2)浮點(diǎn)運(yùn)算;(3)變長運(yùn)算,包括十進(jìn)制算術(shù)運(yùn)算和字符串操作。
IBM370系列機(jī)的內(nèi)部結(jié)構(gòu)如下圖所示。當(dāng)前107頁,總共167頁。圖3.35IBM370系列計(jì)算機(jī)的CPU結(jié)構(gòu)當(dāng)前108頁,總共167頁。在370機(jī)系統(tǒng)中,任何時(shí)刻CPU都只能處于幾種控制狀態(tài)中的一種。當(dāng)它在執(zhí)行操作系統(tǒng)的一段程序時(shí),操作系統(tǒng)明確地控制著CPU,這時(shí)我們說CPU處于管理狀態(tài)(簡稱管態(tài))。某些指令只允許在這個(gè)狀態(tài)下執(zhí)行。當(dāng)CPU在執(zhí)行用戶程序時(shí),則認(rèn)為處于正常的解題狀態(tài)(簡稱目態(tài))。CPU在任何時(shí)刻的狀態(tài)都是由它的PSW來說明的。當(dāng)前109頁,總共167頁。5.7.4Intel80486CPU1.486CPU的特點(diǎn)Intel80486是32位的CPU,內(nèi)部結(jié)構(gòu)見文字教材圖5.36。其主要特點(diǎn)如下:
(1)通過采用流水技術(shù),以及微程序控制和硬布線邏輯控制相結(jié)合的方式,進(jìn)一步縮短可變長指令的譯碼時(shí)間,達(dá)到基本指令可以在一個(gè)時(shí)鐘周期內(nèi)完成。
(2)486芯片內(nèi)部包含一個(gè)8KB的數(shù)據(jù)和指令混合性cache,為頻繁訪問的指令和數(shù)據(jù)提供快速的內(nèi)部存儲(chǔ),從而使系統(tǒng)總線有更多的時(shí)間用于其他控制。
當(dāng)前110頁,總共167頁。
(3)486芯片內(nèi)部包含了增強(qiáng)性80387協(xié)處理器,稱為浮點(diǎn)運(yùn)算部件(FPU)。由于FPU功能擴(kuò)充,且放在CPU內(nèi)部,使引線縮短,故速度比80387提高了3~5倍。
(4)486CPU的內(nèi)部數(shù)據(jù)總線寬度為64位,這也是它縮短指令周期的一個(gè)原因。而外部數(shù)據(jù)總線的寬度也可以自動(dòng)轉(zhuǎn)換。
(5)地址信號(hào)線擴(kuò)充到32位,可以處理4GB的物理存儲(chǔ)空間。如果利用虛擬存儲(chǔ)器,其存儲(chǔ)空間達(dá)64TB。(6)486CPU采用單倍的時(shí)鐘頻率,而在CLK端加入的時(shí)鐘頻率,就是它內(nèi)部CPU的時(shí)鐘頻率,因此大大增加了電路的穩(wěn)定性。當(dāng)前111頁,總共167頁。2.486CPU的內(nèi)部結(jié)構(gòu)486的內(nèi)部結(jié)構(gòu)包含如下九個(gè)功能部件:總線接口部件、小容量cache、指令預(yù)取部件、指令譯碼器、段管理部件、頁管理部件、定點(diǎn)運(yùn)算部件ALU、浮點(diǎn)運(yùn)算部件FPU及操作控制部件。總線接口部件主要用來產(chǎn)生訪問外部存儲(chǔ)器和I/O口所需要的地址、數(shù)據(jù)、命令信號(hào)。段管理部件用來把指令指定的邏輯地址(程序中指定的虛擬地址)變成線性地址。當(dāng)前112頁,總共167頁。頁管理部件的功能是把線性地址換算成物理地址。指令預(yù)取部件中包含了32字節(jié)的預(yù)取隊(duì)列寄存器,可以存放多條指令,因而是一種流水線結(jié)構(gòu)。ALU中包含了通用寄存器組以及各種算術(shù)邏輯運(yùn)算操作。FPU則完成浮點(diǎn)數(shù)運(yùn)算、二進(jìn)制整數(shù)運(yùn)算、十進(jìn)制數(shù)串運(yùn)算等。操作控制部件采用微程序控制和硬布線控制相結(jié)合的方式,因而較好地發(fā)揮了效率。當(dāng)前113頁,總共167頁。5.8流水CPU
5.8.1并行處理技術(shù)
并行性的兩種含義:同時(shí)性指兩個(gè)以上事件在同一時(shí)刻發(fā)生;并發(fā)性指兩個(gè)以上事件在同一時(shí)間間隔內(nèi)發(fā)生。計(jì)算機(jī)的并行處理技術(shù)概括起來主要有以下三種形式:
1.時(shí)間并行2.空間并行3.時(shí)間并行+空間并行當(dāng)前114頁,總共167頁。1.時(shí)間并行時(shí)間并行指時(shí)間重疊,在并行性概念中引入時(shí)間因素,讓多個(gè)處理過程在時(shí)間上相互錯(cuò)開,輪流重疊地使用同一套硬件設(shè)備的各個(gè)部分,以加快硬件周轉(zhuǎn)而贏得速度。時(shí)間并行性概念的實(shí)現(xiàn)方式就是采用流水處理部件。這是一種非常經(jīng)濟(jì)而實(shí)用的并行技術(shù),能保證計(jì)算機(jī)系統(tǒng)具有較高的性能價(jià)格比。目前的高性能微型機(jī)幾乎無一例外地使用了流水技術(shù)。當(dāng)前115頁,總共167頁。2.空間并行空間并行指資源重復(fù),在并行性概念中引入空間因素,以“數(shù)量取勝”為原則來大幅度提高計(jì)算機(jī)的處理速度。大規(guī)模和超大規(guī)模集成電路的迅速發(fā)展為空間并行技術(shù)帶來了巨大生機(jī),因而成為目前實(shí)現(xiàn)并行處理的一個(gè)主要途徑??臻g并行技術(shù)主要體現(xiàn)在多處理器系統(tǒng)和多計(jì)算機(jī)系統(tǒng)。但是在單處理器系統(tǒng)中也得到了廣泛應(yīng)用。3.時(shí)間并行+空間并行指時(shí)間重疊和資源重復(fù)的綜合應(yīng)用,既采用時(shí)間并行性又采用空間并行性。顯然,第三種并行技術(shù)帶來的高速效益是最好的。當(dāng)前116頁,總共167頁。5.8.2流水CPU的結(jié)構(gòu)1.流水計(jì)算機(jī)的系統(tǒng)組成
現(xiàn)代流水計(jì)算機(jī)的系統(tǒng)組成原理如下圖所示。其中CPU按流水線方式組織,通常由三部分組成:指令部件、指令隊(duì)列、執(zhí)行部件。這三個(gè)功能部件可以組成一個(gè)3級(jí)流水線。當(dāng)前117頁,總共167頁。圖3.37流水計(jì)算機(jī)系統(tǒng)組成原理示意圖當(dāng)前118頁,總共167頁。2.流水CPU的時(shí)空?qǐng)D為了實(shí)現(xiàn)流水,首先把輸入的任務(wù)(或過程)分割為一系列子任務(wù),并使各子任務(wù)能在流水線的各個(gè)階段并發(fā)地執(zhí)行。當(dāng)任務(wù)連續(xù)不斷地輸入流水線時(shí),在流水線的輸出端便連續(xù)不斷地吐出執(zhí)行結(jié)果,從而實(shí)現(xiàn)了子任務(wù)級(jí)的并行性。下面通過時(shí)空?qǐng)D來證明這個(gè)結(jié)論。圖(a)表示流水CPU中一個(gè)指令周期的任務(wù)分解。當(dāng)前119頁,總共167頁。圖(b)表示非流水計(jì)算機(jī)的時(shí)空?qǐng)D。當(dāng)前120頁,總共167頁。圖(c)表示流水計(jì)算機(jī)的時(shí)空?qǐng)D。當(dāng)前121頁,總共167頁。圖(d)表示超標(biāo)量流水計(jì)算機(jī)的時(shí)空?qǐng)D。當(dāng)前122頁,總共167頁。3.流水線分類指令流水線:指令步驟的并行。將指令流處理過程分為取指令、譯碼、執(zhí)行、寫回等幾個(gè)并行處理過程段。目前幾乎所有高性能計(jì)算機(jī)都采用指令流水線。算術(shù)流水線:運(yùn)算操作步驟的并行。如流水加法器、流水乘法器、流水除法器等?,F(xiàn)代計(jì)算機(jī)中已廣泛采用了流水的算術(shù)運(yùn)算器。處理機(jī)流水線:又稱為宏流水線,是指程序步驟的并行。由一串級(jí)聯(lián)的處理機(jī)構(gòu)成流水線的各個(gè)過程段,每臺(tái)處理機(jī)負(fù)責(zé)某一特定的任務(wù)。數(shù)據(jù)流從第一臺(tái)處理機(jī)輸入,經(jīng)處理后被送入與第二臺(tái)處理機(jī)相聯(lián)的緩沖存儲(chǔ)器中。第二臺(tái)處理機(jī)從該存儲(chǔ)器中取出數(shù)據(jù)進(jìn)行處理,然后傳送給第三臺(tái)處理機(jī),如此串聯(lián)下去。隨著高檔微處理器芯片的出現(xiàn),構(gòu)造處理機(jī)流水線將變得容易了。處理機(jī)流水線應(yīng)用在多機(jī)系統(tǒng)中。當(dāng)前123頁,總共167頁。5.8.3流水線中的主要問題
流水過程中通常會(huì)出現(xiàn)以下三種相關(guān)沖突,使流水線斷流。
1.資源相關(guān)2.數(shù)據(jù)相關(guān)3.控制相關(guān)1.資源相關(guān)資源相關(guān)是指多條指令進(jìn)入流水線后在同一機(jī)器時(shí)鐘周期內(nèi)爭用同一個(gè)功能部件所發(fā)生的沖突。假定一條指令流水線由五段組成。由下表可以看出,在時(shí)鐘4時(shí),I1與I4兩條指令發(fā)生爭用存儲(chǔ)器資源的相關(guān)沖突。當(dāng)前124頁,總共167頁。解決資源相關(guān)沖突的辦法:(1)第I4條指令停頓一拍后再啟動(dòng);(2)增設(shè)一個(gè)存儲(chǔ)器,將指令和數(shù)據(jù)分別放在兩個(gè)存儲(chǔ)器中。兩條指令同時(shí)訪問內(nèi)存發(fā)生資源相關(guān)沖突當(dāng)前125頁,總共167頁。2.數(shù)據(jù)相關(guān)在一個(gè)程序中,如果必須等前一條指令執(zhí)行完畢后,才能執(zhí)行后一條指令,那么這兩條指令就是數(shù)據(jù)相關(guān)的。在流水計(jì)算機(jī)中,指令的處理是重疊進(jìn)行的,前一條指令還沒有結(jié)束,第二、三條指令就陸續(xù)地開始工作。由于多條指令的重疊處理,當(dāng)后繼指令所需的操作數(shù),剛好是前一指令的運(yùn)算結(jié)果時(shí),便發(fā)生數(shù)據(jù)相關(guān)沖突。如下表所示,ADD指令與SUB指令發(fā)生了數(shù)據(jù)相關(guān)沖突。當(dāng)前126頁,總共167頁。兩條指令發(fā)生數(shù)據(jù)相關(guān)沖突解決數(shù)據(jù)相關(guān)沖突的辦法:在流水CPU的運(yùn)算器中設(shè)置若干運(yùn)算結(jié)果緩沖寄存器,暫時(shí)保留運(yùn)算結(jié)果,以便于后繼指令直接使用,這稱為“向前”或定向傳送技術(shù)。當(dāng)前127頁,總共167頁。3.控制相關(guān)控制相關(guān)沖突是由轉(zhuǎn)移指令引起的。當(dāng)執(zhí)行轉(zhuǎn)移指令時(shí),依據(jù)轉(zhuǎn)移條件的產(chǎn)生結(jié)果,可能為順序取下條指令;也可能轉(zhuǎn)移到新的目標(biāo)地址取指令,從而使流水線發(fā)生斷流。為了減小轉(zhuǎn)移指令對(duì)流水線性能的影響,常用以下兩種轉(zhuǎn)移處理技術(shù):
(1)延遲轉(zhuǎn)移法
(2)轉(zhuǎn)移預(yù)測(cè)法當(dāng)前128頁,總共167頁。(1)延遲轉(zhuǎn)移法:由編譯程序重排指令序列來實(shí)現(xiàn)?;舅枷胧恰跋葓?zhí)行再轉(zhuǎn)移”,即發(fā)生轉(zhuǎn)移取時(shí)并不排空指令流水線,而是讓緊跟在轉(zhuǎn)移指令I(lǐng)b之后已進(jìn)入流水線的少數(shù)幾條指令繼續(xù)完成。如果這些指令是與Ib結(jié)果無關(guān)的有用指令,那么延遲損失時(shí)間片正好得到了有效的利用。(2)轉(zhuǎn)移預(yù)測(cè)法:用硬件方法來實(shí)現(xiàn),依據(jù)指令過去的行為來預(yù)測(cè)將來的行為。通過使用轉(zhuǎn)移取和順序取兩路指令預(yù)取隊(duì)列器以及目標(biāo)指令cache,可將轉(zhuǎn)移預(yù)測(cè)提前到取指階段進(jìn)行,以獲得良好的效果。當(dāng)前129頁,總共167頁?!纠?】流水線中有三類數(shù)據(jù)相關(guān)沖突:寫后讀相關(guān);讀后寫相關(guān);寫后寫相關(guān)。判斷以下三組指令各存在哪種類型的數(shù)據(jù)相關(guān)。(1)I1:ADDR1,R2,R3;(R2)+(R3)->R1I2:SUBR4,R1,R5;(R1)-(R5)->R4(2)I3:STAM(x),R3;
(R3)->M(x),M(x)是存儲(chǔ)器單元
I4:ADDR3,R4,R5;(R4)+(R5)->R3(3)I5:MULR3,R1,R2;(R1)×(R2)->R3I6:ADDR3,R4,R5;(R4)+(R5)->R3當(dāng)前130頁,總共167頁?!窘狻康?1)組指令中,I1指令運(yùn)算結(jié)果應(yīng)先寫入R1,然后在I2指令中讀出R1內(nèi)容。由于I2指令進(jìn)入流水線,變成I2指令在I1指令寫入R1前就讀出R1內(nèi)容,發(fā)生RAW相關(guān)。第(2)組指令中,I3指令應(yīng)先讀出R3內(nèi)容并存入存儲(chǔ)單元M(x),然后在I4指令中將運(yùn)算結(jié)果寫入R3。但由于I4指令進(jìn)入流水線,變成I4指令在I3指令讀出R3內(nèi)容前就寫入R3,發(fā)生WAR相關(guān)。第(3)組指令中,如果I6指令的加法運(yùn)算完成時(shí)間早于I5指令的乘法運(yùn)算時(shí)間,變成指令I(lǐng)6在指令I(lǐng)5寫入R3前就寫入R3,導(dǎo)致R3的內(nèi)容錯(cuò)誤,發(fā)生WAW相關(guān)。當(dāng)前131頁,總共167頁。5.8.4pentiumCPU
1.pentium的技術(shù)性能pentium是Intel公司生產(chǎn)的超標(biāo)量流水處理器,早期使用5V工作電壓,后期使用3.3V工作電壓。CPU的主頻是片外主總線時(shí)鐘頻率(60MHz或66MHz)的倍頻,有120,166,200MHz等多種。CPU內(nèi)部的主要寄存器寬度為32位,故認(rèn)為它是一個(gè)32位微處理器。但它通向存儲(chǔ)器的外部數(shù)據(jù)總線寬度為64位,每次總線操作可以同時(shí)傳輸8個(gè)字節(jié)。以主總線(存儲(chǔ)器總線)時(shí)鐘頻率66MHz計(jì)算,64位數(shù)據(jù)總線可使CPU與主存的數(shù)據(jù)交換速率達(dá)到528MB/s。CPU支持多種類型的總線周期,其中一種稱猝發(fā)模式,在此模式下,可在一個(gè)總線周期內(nèi)讀出或?qū)懭?56位(32字節(jié))的數(shù)據(jù)。當(dāng)前132頁,總共167頁。CPU外部地址總線寬度是36位,但一般使用32位寬,故物理地址空間為4096MB(4GB)。虛擬地址空間為64TB,分頁模式除支持4KB頁面外(與486相同),還支持2MB和4MB頁面。其中2MB頁面的分頁模式必須使用36位地址總線。CPU內(nèi)部分別設(shè)置指令cache和數(shù)據(jù)cache,外部還可接L2cache。CPU采用U,V兩條指令流水線,能在一個(gè)時(shí)鐘周期內(nèi)發(fā)射兩條簡單的整數(shù)指令,也可發(fā)射一條浮點(diǎn)指令。操作控制器采用硬布線控制和微程序控制相結(jié)合的方式。大多數(shù)簡單指令用硬布線控制實(shí)現(xiàn),在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行完畢。對(duì)微程序?qū)崿F(xiàn)的指令,也在2~3個(gè)時(shí)鐘周期內(nèi)執(zhí)行完畢。當(dāng)前133頁,總共167頁。pentium具有非固定長度的指令格式,9種尋址方式,191條指令,但是在每個(gè)時(shí)鐘周期又能執(zhí)行兩條指令。因此它具有CISC和RISC兩者的特性,不過具有的CISC特性更多一些,因此被看成為一個(gè)CISC結(jié)構(gòu)的處理器。以CISC結(jié)構(gòu)實(shí)現(xiàn)超標(biāo)量流水線,并有轉(zhuǎn)移目標(biāo)緩沖器(BTB)方式的轉(zhuǎn)移預(yù)測(cè)能力,堪稱為當(dāng)代CISC機(jī)器的經(jīng)典之作。當(dāng)前134頁,總共167頁。2.奔騰CPU的結(jié)構(gòu)框圖CPU的結(jié)構(gòu)框圖請(qǐng)參見教材。
(1)超標(biāo)量流水線(2)指令cache和數(shù)據(jù)cache
(3)浮點(diǎn)運(yùn)算部件
(4)動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù)
當(dāng)前135頁,總共167頁。5.9
RISCCPU
5.9.1RISCCPU
RISC的三個(gè)要素是:(1)一個(gè)有限的簡單的指令集;(2)CPU配備大量的通用寄存器;(3)強(qiáng)調(diào)對(duì)指令流水線的優(yōu)化?;谌氐腞ISC機(jī)器的特征是:(1)使用等長指令,目前的典型長度是4字節(jié)。(2)尋址方式少且簡單,一般為2~3種,最多不超過4種,絕不出現(xiàn)存儲(chǔ)器間接尋址方式。(3)只有取數(shù)指令、存數(shù)指令訪問存儲(chǔ)器。指令中最多出現(xiàn)RS型指令,絕不出現(xiàn)SS型指令。當(dāng)前136頁,總共167頁。(4)指令集中的指令數(shù)目一般少于100種,指令格式一般少于4種。(5)指令功能簡單,控制器多采用硬布線方式,以期更快的執(zhí)行速度。(6)平均而言,所有指令的執(zhí)行時(shí)間為一個(gè)處理時(shí)鐘周期。(7)指令格式中用于指派整數(shù)寄存器的個(gè)數(shù)不少于32個(gè),用于指派浮點(diǎn)數(shù)寄存器的個(gè)數(shù)不少于16個(gè)。(8)強(qiáng)調(diào)通用寄存器資源的優(yōu)化使用。(9)支持指令流水并強(qiáng)調(diào)指令流水的優(yōu)化使用。(10)RISC技術(shù)的復(fù)雜性在它的編譯程序,因此軟件系統(tǒng)開發(fā)時(shí)間比CISC機(jī)器長。當(dāng)前137頁,總共167頁。RISC簡單,精簡一般小于100一般小于4一般小于4比較內(nèi)容指令系統(tǒng)指令數(shù)目指令格式尋址方式指令字長CISC復(fù)雜,龐大一般大于200一般大于4一般大于4不固定等長只有LOAD/STORE指令相差不大絕大多數(shù)在一個(gè)周期內(nèi)完成較容易較長絕大多數(shù)為硬布線控制可訪存指令各種指令使用頻率各種指令執(zhí)行時(shí)間優(yōu)化編譯實(shí)現(xiàn)程序源代碼長度控制器實(shí)現(xiàn)方式軟件系統(tǒng)開發(fā)時(shí)間不加限制相差很大相差很大很難較短絕大多數(shù)為微程序控制較短較長RISC與CISC的主要特征對(duì)比當(dāng)前138頁,總共167頁。5.9.2RISCCPU實(shí)例
——MC88110CPU1.MC88110CPU結(jié)構(gòu)框圖MC88110CPU是一個(gè)RISC處理器。處理器有12個(gè)執(zhí)行功能部件,3個(gè)cache和1個(gè)控制部件。其結(jié)構(gòu)框圖如下所示。當(dāng)前139頁,總共167頁。當(dāng)前140頁,總共167頁。2.MC88110的指令流水線由于MC88110是超標(biāo)量流水CPU,所以指令流水線在每個(gè)機(jī)器時(shí)鐘周期完成兩條指令。流水線共分為三段:取指和譯碼(F&D)段、執(zhí)行(EX)段、寫回(WB)段,下圖所示為88110超標(biāo)量流水線正常運(yùn)行情況圖。
當(dāng)前141頁,總共167頁。當(dāng)前142頁,總共167頁。3.指令動(dòng)態(tài)調(diào)度策略88110采用按序發(fā)射、按序完成的指令動(dòng)態(tài)調(diào)度策略。指令派遣單元總是發(fā)出單一地址,然后從指令cache取出此地址及下一地址的兩條指令。譯碼后總是力圖同一時(shí)間發(fā)射這兩條指令到EX段。若這對(duì)指令的第一條指令由于資源沖突或數(shù)據(jù)相關(guān)沖突,則這一對(duì)指令都不發(fā)射,兩條指令在F&D段停頓等待資源的可用或數(shù)據(jù)相關(guān)的消除。若是第一條指令能發(fā)射第二條指令不能發(fā)射則只發(fā)射第一條指令,而第二條指令停頓并與新取的指令之一進(jìn)行配對(duì)等待發(fā)射,此時(shí)原第二條指令作為配對(duì)的第一條指令對(duì)待??梢?,這樣實(shí)現(xiàn)的方式是按序發(fā)射。當(dāng)前143頁,總共167頁。當(dāng)前144頁,總共167頁。為了判定能否發(fā)射指令,88110使用了計(jì)分牌方法。計(jì)分牌是一個(gè)位向量,寄存器堆中每個(gè)寄存器都有一個(gè)相應(yīng)位。每當(dāng)一條指令發(fā)射時(shí),它預(yù)約的目的寄存器在位向量中的相應(yīng)位上置1,表示該寄存器“忙”。當(dāng)指令執(zhí)行完畢并將結(jié)果寫回此目的寄存器時(shí),該位被清除。于是,每當(dāng)判定是否發(fā)射一條指令(STORE指令和轉(zhuǎn)移指令除外)時(shí),一個(gè)必須滿足的條件是:該指令的所有目的寄存器、源寄存器在位向量中的相應(yīng)位都已被清除。否則,指令必須停頓等待這些位被清除。為了減少經(jīng)常出現(xiàn)的數(shù)據(jù)相關(guān),流水線采用了如前面所述的定向傳送技術(shù),將前面指令執(zhí)行的結(jié)果直接送給后面指令所需此源操作數(shù)的功能部件,并同時(shí)將位向量中的相應(yīng)位清除。因此指令發(fā)射和定向傳送是同時(shí)進(jìn)行的。當(dāng)前145頁,總共167頁。如何實(shí)現(xiàn)按序完成呢?88110提供了一個(gè)FIFO指令執(zhí)行隊(duì)列,稱之為歷史緩沖器。每當(dāng)一條指令發(fā)射出去,它的副本就被送到FIFO隊(duì)尾。隊(duì)列最多能保存12條指令。只有前面的所有指令執(zhí)行完,這條指令才到達(dá)隊(duì)首。當(dāng)它到達(dá)隊(duì)首并執(zhí)行完畢后才離開隊(duì)列。對(duì)于轉(zhuǎn)移處理,88110使用了延遲轉(zhuǎn)移法和目標(biāo)指令cache(TIC)法。延遲轉(zhuǎn)移是個(gè)選項(xiàng)(.n)。如果采用這個(gè)選項(xiàng)(指令如.n),則跟隨在轉(zhuǎn)移指令后的指令將被發(fā)射。如果不采用這個(gè)選項(xiàng),則在轉(zhuǎn)移指令發(fā)射之后的轉(zhuǎn)移延遲時(shí)間片內(nèi)沒有任何指令被發(fā)射。延遲轉(zhuǎn)移通過編譯程序來調(diào)度。TIC是一個(gè)32項(xiàng)的全相聯(lián)cache,每項(xiàng)能保存轉(zhuǎn)移目標(biāo)路徑的前兩條指令。當(dāng)一條轉(zhuǎn)移指令譯碼并命中cache時(shí),能同時(shí)由TIC取來它的目標(biāo)路徑的前面兩條指令。當(dāng)前146頁,總共167頁?!纠?】超標(biāo)度為2的超標(biāo)量流水線結(jié)構(gòu)模型如圖5.42(a)所示。它分為4個(gè)段,即取指(F)段、譯碼(D)段、執(zhí)行(E)段和寫回(W)段。F,D,W段只需1個(gè)時(shí)鐘周期完成。E段有多個(gè)功能部件,其中LOAD/STORE部件完成數(shù)據(jù)cache訪問,只需一個(gè)時(shí)鐘周期;加法器完成需2個(gè)時(shí)鐘周期,乘法器需3個(gè)時(shí)鐘周期,它們都已流水化。F段和D段要求成對(duì)輸入。E段有內(nèi)部數(shù)據(jù)定向傳送,結(jié)果生成即可使用?,F(xiàn)有如下6條指令序列,其中I1,I2有RAW相關(guān),I3,I4有WAR相關(guān),I5,I6有WW相關(guān)和RAW相關(guān)。當(dāng)前147頁,總共167頁。I1LADR1,A;M(A)->R1,M(A)是存儲(chǔ)器單元I2ADDR2,R1;(R2)+(R1)->R2I3ADDR3,R4;(R3)+(R4)->R3I4MULR4,R5;(R4)×(R5)->R4I5LADR6,B;M(B)->R6,M(B)是存儲(chǔ)器單元I6MULR6,R7;(R6)×(R7)->R6請(qǐng)畫出:(1)按序發(fā)射按序完成各段推進(jìn)情況圖;(2)按序發(fā)射按序完成的流水線時(shí)空?qǐng)D。當(dāng)前148頁,總共167頁。【解】(1)由于I1,I2間有RAW相關(guān),I2要推遲一個(gè)時(shí)鐘才能發(fā)射。類似的情況也存在于I5,I6之間;I3,I4之間有WAR相關(guān),但按序發(fā)射,即使I3,I4并行操作,也不會(huì)導(dǎo)致錯(cuò)誤;I5,I6間還有WAW相關(guān),只要I6的完成放在I5之后,就不會(huì)出錯(cuò)。注意,I5實(shí)際上已在時(shí)鐘6執(zhí)行完畢,但一直推遲到時(shí)鐘9才寫回,這是為了保持按序完成。超標(biāo)量流水線完成6條指令的執(zhí)行任務(wù)總共需要10個(gè)時(shí)鐘周期。(2)根據(jù)各段推進(jìn)情況圖可畫出流水線時(shí)空?qǐng)D如下所示。當(dāng)前149頁,總共167頁。當(dāng)前150頁,總共167頁。5.10
多媒體CPU
5.10.1多媒體CPU
媒體一詞在涉及信息傳遞的領(lǐng)域中是指傳遞信息的媒介,它包括存儲(chǔ)信息的實(shí)體與傳遞信息的載體兩部分。磁盤、光盤等皆屬存儲(chǔ)信息的實(shí)體,而載體則指用來表達(dá)信息的形體,如數(shù)值、文字、聲音、圖形與動(dòng)靜圖像等。多媒體技術(shù)是指計(jì)算機(jī)把各種不同的電子媒質(zhì)集成起來,統(tǒng)一進(jìn)行存儲(chǔ)、處理和傳輸。這些電子媒質(zhì)包括計(jì)算機(jī)屏幕顯示、視頻光盤、CD-ROM以及語言和聲音的綜合,同時(shí)在這些部件之間建立邏輯連接,從而使整個(gè)系統(tǒng)具有交互性。顯然,多媒體技術(shù)使計(jì)算機(jī)進(jìn)一步擺脫了“計(jì)算工具”的傳統(tǒng)觀念,成為處理各種信息的強(qiáng)有力工具。
多媒體技術(shù)解決的主要問題有:當(dāng)前151頁,總共167頁。1.圖像與聲音的壓縮技術(shù)多媒體技術(shù)很重要的內(nèi)容是對(duì)圖像與聲音進(jìn)行操作、存儲(chǔ)與傳送。這就需要將每幅圖像從模擬量轉(zhuǎn)換成數(shù)字量,然后進(jìn)行圖像處理,與圖形文字等復(fù)合,再存儲(chǔ)在機(jī)器內(nèi)。但是進(jìn)行管理、操作、存儲(chǔ)的圖像并不只是數(shù)量很少的靜止圖像,而是符合視頻標(biāo)準(zhǔn)的每秒30幀的彩色圖像。如果由多媒體計(jì)算機(jī)存儲(chǔ)器能演放1秒鐘的音像制品,則信息量就高達(dá)22.5兆字節(jié),而目前用來存儲(chǔ)圖像、程序的光盤CD-ROM,容量只有550兆字節(jié)。可見如不對(duì)圖像采用壓縮技術(shù),僅存儲(chǔ)圖像的要求這一點(diǎn)就無法達(dá)到,何況CD-ROM的數(shù)據(jù)傳輸率也只有150KB/s,無法做到多幅圖像的實(shí)時(shí)再現(xiàn)。圖像數(shù)據(jù)如不壓縮,則實(shí)現(xiàn)多媒體通信也就不可能。圖像壓縮是將圖像用像素存儲(chǔ)的方式,經(jīng)過圖像變換、量化、高效編碼等處理轉(zhuǎn)換成特殊形式的編碼。這樣一來,計(jì)算機(jī)所需存儲(chǔ)與實(shí)時(shí)傳送的數(shù)據(jù)量就可大大降低。當(dāng)前152頁,總共167頁。2.適應(yīng)多媒體技術(shù)的軟件技術(shù)為適應(yīng)多媒體技術(shù)發(fā)展,一是需要開發(fā)具有多媒體功能的OS(操作系統(tǒng)),二是開展以編輯工具為中心的軟件技術(shù)研究。對(duì)第一個(gè)課題,Microsoft開發(fā)的視窗95至視窗2000系列多媒體OS版獲得了很大成功。對(duì)第二個(gè)課題,編輯工具必須將圖形、文檔、聲音、圖像、視像等多種媒質(zhì)聯(lián)系在一起,為實(shí)際應(yīng)用提供方便。當(dāng)前153頁,總共167頁。3.計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)方面的技術(shù)為了在計(jì)算機(jī)系統(tǒng)中增加多媒體數(shù)據(jù)的獲取功能、壓縮解壓功能、實(shí)時(shí)處理功能、多媒體數(shù)據(jù)的I/O與通信功能,在計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)領(lǐng)域需要做三方面的改進(jìn):第一,選擇專用芯片和專用插卡來擴(kuò)充功能
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年幼兒園教育:《水果拼盤》教案實(shí)踐
- 房地產(chǎn)估價(jià)委托協(xié)議書(6篇)
- 三農(nóng)產(chǎn)品衛(wèi)生標(biāo)準(zhǔn)與監(jiān)管辦法
- 公司日常運(yùn)營規(guī)章制度
- 2025年國際轉(zhuǎn)化醫(yī)學(xué)大會(huì)課件
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)架構(gòu)設(shè)計(jì)與實(shí)施方案設(shè)計(jì)
- 婚姻介紹所服務(wù)合同
- 2025年貨運(yùn)駕駛員從業(yè)資格證在哪里考
- 冷藏冷凍食品展示柜溫控
- 智慧城市綜合管理平臺(tái)建設(shè)及運(yùn)營規(guī)劃
- 《綠色建筑設(shè)計(jì)原理》課件
- 2025年全國高考體育單招政治時(shí)事填空練習(xí)50題(含答案)
- 城市社會(huì)學(xué)課件
- GB/T 9788-1988熱軋不等邊角鋼尺寸、外形、重量及允許偏差
- 輪轂電機(jī)驅(qū)動(dòng)電動(dòng)車懸架和轉(zhuǎn)向系統(tǒng)設(shè)計(jì)與性能匹配
- 二年級(jí)第二學(xué)期體育知識(shí)結(jié)構(gòu)圖
- CASS勘測(cè)定界操作指導(dǎo)方案
- 中國商品條碼系統(tǒng)注冊(cè)登記表規(guī)范填寫
- 湘科教版小學(xué)信息技術(shù)四年級(jí)下冊(cè)全冊(cè)教案.doc
- JJG 840-1993 函數(shù)信號(hào)發(fā)生器檢定規(guī)程
- 胃瘍(慢性消化性潰瘍)中醫(yī)護(hù)理方案
評(píng)論
0/150
提交評(píng)論