版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1Spring2016ZDMC–Lec.#11數(shù)字系統(tǒng)設(shè)計(jì)
DigitalSystemDesign-----微控制器之-微碼控制器與流水結(jié)構(gòu)2Spring2016ZDMC–Lec.#11控制單元與數(shù)據(jù)通道(復(fù)習(xí))ASM圖給出了設(shè)計(jì)數(shù)字系統(tǒng)(控制電路和數(shù)據(jù)路徑)需要的所有信息??刂齐娐酚布c數(shù)據(jù)路徑的硬件劃分。數(shù)據(jù)路徑包含了與其操作和邏輯所關(guān)聯(lián)的硬件,這些邏輯用于產(chǎn)生提供給控制電路的狀態(tài)信號(hào)。數(shù)據(jù)路徑的設(shè)計(jì)要求在ASM圖的狀態(tài)框和條件框中給出,由在數(shù)據(jù)路徑上標(biāo)注操作來(lái)確定??刂茊卧怂袛?shù)據(jù)路徑中操作控制信號(hào)邏輯??刂七壿嬘信袥Q框和所需狀態(tài)轉(zhuǎn)移決定。3Spring2016ZDMC–Lec.#11控制邏輯(復(fù)習(xí))數(shù)字系統(tǒng)的設(shè)計(jì)過(guò)程可分成兩個(gè)部分:數(shù)據(jù)路徑中的寄存器傳輸設(shè)計(jì)和控制單元中的控制邏輯設(shè)計(jì)。控制邏輯是一個(gè)有限狀態(tài)機(jī),其米里型和摩爾型輸出控制著數(shù)據(jù)路徑中的操作??刂茊卧妮斎胧峭獠枯斎?,內(nèi)部狀態(tài)信號(hào)從數(shù)據(jù)路徑反饋到控制電路??刂齐娐肥菚r(shí)序電路,可以采用前面概括出的時(shí)序邏輯設(shè)計(jì)步驟進(jìn)行設(shè)計(jì)?,F(xiàn)在提出的方法是對(duì)經(jīng)典時(shí)序電路設(shè)計(jì)方法的補(bǔ)充。設(shè)計(jì)方法采用序列寄存器-計(jì)數(shù)器和譯碼器采用數(shù)據(jù)選擇器來(lái)設(shè)計(jì)采用一位熱位設(shè)計(jì)(每個(gè)狀態(tài)一個(gè)觸發(fā)器)4Spring2016ZDMC–Lec.#111-計(jì)數(shù)型控制器將所要求的控制狀態(tài)按一定原則進(jìn)行編碼分配,就可設(shè)計(jì)出一種狀態(tài)計(jì)數(shù)型的控制器。圖中計(jì)數(shù)器含有多個(gè)觸發(fā)器,觸發(fā)器的狀態(tài)作為狀態(tài)變量以二進(jìn)制編碼的形式賦于ASM流圖中的每一個(gè)狀態(tài)框,而條件輸出框不予賦值。使用寄存器產(chǎn)生控制狀態(tài),使用譯碼器產(chǎn)生與每個(gè)狀態(tài)對(duì)應(yīng)的輸出信號(hào)。若使用一位熱位編碼,就不需要使用譯碼器。5Spring2016ZDMC–Lec.#112-采用數(shù)據(jù)選擇器來(lái)設(shè)計(jì)控制器三級(jí)電路結(jié)構(gòu):決定寄存器次態(tài)的數(shù)據(jù)選擇器組成保存現(xiàn)態(tài)的寄存器譯碼器,產(chǎn)生每個(gè)控制狀態(tài)對(duì)應(yīng)的輸出設(shè)計(jì)一個(gè)多路選擇器型控制器,完成左圖的控制算法。根據(jù)算法流程圖,得到狀態(tài)轉(zhuǎn)移表PS(現(xiàn)態(tài))NS(次態(tài))轉(zhuǎn)換條件編碼狀態(tài)名狀態(tài)名BA0(00)PR10Q11X2(10)RP0003(11)QP0001(01)-P0006Spring2016ZDMC–Lec.#113-定序型控制器一位熱位(One-hot)設(shè)計(jì),產(chǎn)生的電路每一個(gè)狀態(tài)需要一個(gè)觸發(fā)器。每次只有一個(gè)觸發(fā)器為1,其余觸發(fā)器都為0。觸發(fā)器的數(shù)目代表了狀態(tài)數(shù),并依賴一組最新的代碼實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換。使用一位熱位的方法會(huì)在時(shí)序電路中增加很多觸發(fā)器。但是一位熱位設(shè)計(jì)方法的優(yōu)點(diǎn)是設(shè)計(jì)簡(jiǎn)單,
不需要譯碼器。7Spring2016ZDMC–Lec.#11控制和數(shù)據(jù)通道的交互Algorithmicstatemachineanddatapath(ASMD)chartsweredevelopedtoclarifytheinformationdisplayedbyASMchartsandtoprovideaneffectivetoolfordesigningacontrolunitforagivendatapathunit.AnASMDchartassociateregisteroperationswithstatetransitionsratherthanwithstates.Inpractice,designersusetheASMDcharttowriteVerilogmodelsofthecontrollersandthedatapathandthensynthesizeacircuitdirectlyfromtheVerilogdescription.控制單元數(shù)據(jù)路徑輸出數(shù)據(jù)輸入數(shù)據(jù)輸入信號(hào)(外部)控制信號(hào)狀態(tài)信號(hào)8Spring2016ZDMC–Lec.#11MemoryStructureMemorystructuresaregenerallyspeciallydesignedCouldbuildthemfromflopsorlatchesButtheywouldbebig,slow,andpowerhungrySocircuitdesignerscreatethebasicdesignCreateamodulegeneratorforlogicdesignerstouse9Spring2016ZDMC–Lec.#11Readfrom/WritetoMemoryInterfacetoMemorycanbe:Combinational(asynchronous)Clocked(synchronous)Combinationalmemory:ReaddataisvalidsomedelayafteraddresslinessettleThereisnoclock.Writesaretricky:mustsupplyawritepulseinthemiddleofyouraddressanddatavalidtimesClockedmemory(mostcommon):Memorylookslikeastandardsynchronousdevice.Addressandcontrolsignalsaresampledonrisingedgeofclock,anddataisvalidsomenumberofcycleslater10Spring2016ZDMC–Lec.#11MemoryTiming11Spring2016ZDMC–Lec.#11MemoriesInOurDesignTheywillbecombinationalOtherwisewecan’tcompleteaninstructioninonecycle!Interfaceissimple:Inputs:AddressDataInWriteEn(WriteEnmustbeapulse)Outputs:DataoutRegisterfile:Ithasthreeaddress,twoforreads,andoneforwriteItiscalleda3-port,sinceitcanperform3accessespercycle32DoutDataMemoryWE32Din32Addr12Spring2016ZDMC–Lec.#11Registerfile:FromthetopdownR0R2...R31QQQclk...32MUX3232sel(rs1)5...rd132MUX3232sel(rs2)5...rd2“tworeadports”DDDEnEnEnDEMUX...sel(ws)5WEwd3213Spring2016ZDMC–Lec.#11
RegisterFileSchematicSymbol32rd1RegFile32rd2WE32wd5rs15rs25wsWhydoweneedWE?IfwehadaMIPSregisterfilew/oWE,howcouldweworkaroundit?14Spring2016ZDMC–Lec.#11講義第8章微控制器設(shè)計(jì)
------------微碼控制器15Spring2016ZDMC–Lec.#118.4微程序(碼)控制器微程序控制的基本思想仿照通常的解題程序,把所有控制信號(hào)匯集一起編碼,稱為微指令,存放在一個(gè)EPROM存儲(chǔ)單元里。系統(tǒng)運(yùn)行時(shí),一條一條地讀出這些微指令,解碼產(chǎn)生執(zhí)行部件所需的各種控制信號(hào),控制各邏輯部件執(zhí)行規(guī)定的操作。數(shù)據(jù)總線數(shù)據(jù)流通過(guò)BUS總線在各執(zhí)行子系統(tǒng)之間進(jìn)行流動(dòng)執(zhí)行部件
ALU、寄存器組、存儲(chǔ)器RAM等控制部件
控制器控制部件通過(guò)控制線向執(zhí)行部件發(fā)出各種控制命令,我們把這種控制命令稱為微命令,而執(zhí)行部件接受微命令所執(zhí)行的操作叫作微操作?;咀酉到y(tǒng)(補(bǔ)充)基本子系統(tǒng)是指構(gòu)成數(shù)字系統(tǒng)時(shí)必不可少的邏輯功能部件。算術(shù)邏輯運(yùn)算單元ALU、寄存器、RAM、數(shù)據(jù)總線和控制器。算術(shù)邏輯運(yùn)算單元ALU它是數(shù)字系統(tǒng)中對(duì)數(shù)據(jù)進(jìn)行加工處理的功能部件。ALU的結(jié)構(gòu)(1)最簡(jiǎn)單的算術(shù)運(yùn)算單元--加法器16Spring2016ZDMC–Lec.#11ASC為控制信號(hào);A、B是參加運(yùn)算的兩個(gè)二進(jìn)制數(shù)(n位);S是求和結(jié)果信號(hào)。控制信號(hào)ASC=0時(shí),進(jìn)行加法運(yùn)算。B數(shù)經(jīng)過(guò)變反網(wǎng)絡(luò)后仍保持原數(shù),即X=B。運(yùn)算結(jié)果為S=A+B。
控制信號(hào)ASC=1時(shí),進(jìn)行減法運(yùn)算。B數(shù)經(jīng)過(guò)變反網(wǎng)絡(luò)后__X=B,S=A+B+1。在這里減法是按2的補(bǔ)碼運(yùn)算規(guī)則進(jìn)行的,+1是用ASC=1來(lái)體現(xiàn)。此處將減法運(yùn)算轉(zhuǎn)化為加法運(yùn)算,簡(jiǎn)化了加法器的設(shè)計(jì)。算術(shù)運(yùn)算單元最簡(jiǎn)單的算術(shù)運(yùn)算單元加法器左邊四個(gè)輸出信號(hào)是運(yùn)算時(shí)提供的幾個(gè)結(jié)果狀態(tài)信號(hào),分別需要一個(gè)觸發(fā)器進(jìn)行保存,以便在設(shè)計(jì)控制器時(shí)做為反饋信號(hào)。Over---溢出標(biāo)志信號(hào),當(dāng)其值為1時(shí),表示運(yùn)算結(jié)果發(fā)生溢出。Sign---表示運(yùn)算結(jié)果的符號(hào)(正或負(fù))。Carry---表示最高位的進(jìn)位輸出信號(hào)。Zero---當(dāng)加法器的求和結(jié)果S=0時(shí),標(biāo)志信號(hào)Zero=1。(2)算術(shù)邏輯運(yùn)算單元ALU加法器僅提供加、減、傳送、加1等很少功能,不具備邏輯運(yùn)算能力。而ALU可以實(shí)現(xiàn)多種算術(shù)運(yùn)算和邏輯運(yùn)算。17Spring2016ZDMC–Lec.#11M為控制器參數(shù)。根據(jù)M的位數(shù)多少,ALU可設(shè)計(jì)成具有各種運(yùn)算功能。例如芯片AM2901中,M有3位,因而ALU的功能選擇有8種。又如芯片74LS181中,控制參數(shù)有S3、S2、S1、S0、M共5個(gè),因而組合可以實(shí)現(xiàn)16種算術(shù)運(yùn)算和16種邏輯運(yùn)算。其中加表示算術(shù)加,+表示邏輯加。為了設(shè)計(jì)控制器,ALU運(yùn)算結(jié)果產(chǎn)生的一些特殊狀態(tài)信號(hào)需要用一些標(biāo)志觸發(fā)器保存起來(lái)。寄存器堆寄存器的功能加法器和ALU均由門電路組成,它們沒(méi)有記憶功能,因此運(yùn)算的結(jié)果需要寄存器保存起來(lái)。而參與運(yùn)算的兩個(gè)數(shù)也要取自寄存器。寄存器是數(shù)字系統(tǒng)中必不可少的邏輯子系統(tǒng)。寄存器的分類數(shù)字系統(tǒng)中使用的寄存器大體有兩類:(1)通用寄存器用來(lái)暫存參與ALU運(yùn)算的數(shù)據(jù)或結(jié)果。通用寄存器的數(shù)目一般是4、8、16、32個(gè),甚至更多。(2)專用寄存器數(shù)字系統(tǒng)中的專用寄存器根據(jù)不同系統(tǒng)而有所不同。例如ALU的狀態(tài)標(biāo)志信號(hào)寄存器、地址寄存器、數(shù)據(jù)緩沖寄存器、指令寄存器、程序計(jì)數(shù)器等等。他們用來(lái)存放地址信息和控制器的控制信息。18Spring2016ZDMC–Lec.#11雙端輸出寄存器堆(組)的功能框圖。它有一個(gè)數(shù)據(jù)輸入端口,兩個(gè)數(shù)據(jù)輸出端口,可以同時(shí)從寄存器堆中取出A、B兩個(gè)數(shù)。寄存器的選擇由A地址或B地址指定。由于地址線是4位,因而有16個(gè)通用寄存器。讀出操作:讀數(shù)時(shí),控制信號(hào)RD有效,所以由A地址和B地址指定的兩個(gè)寄存器的數(shù)據(jù)分別送出到端口A和端口B。寫入操作:先給出B地址,待存入的數(shù)據(jù)放到數(shù)據(jù)輸入端,當(dāng)控制信號(hào)WR有效時(shí),數(shù)據(jù)按B地址指定的寄存器編號(hào)寫入到該寄存器。雙端口通用寄存器堆雙端口通用寄存器堆的結(jié)構(gòu)非常有用它可以與ALU一起構(gòu)成一個(gè)最簡(jiǎn)單的運(yùn)算器。為了時(shí)間上進(jìn)行緩沖,ALU和通用寄存器堆之間加入了兩個(gè)鎖存器。19Spring2016ZDMC–Lec.#11存儲(chǔ)器RAM存儲(chǔ)器RAM一個(gè)觸發(fā)器存儲(chǔ)一個(gè)二進(jìn)制位(bit)信息;一個(gè)寄存器存儲(chǔ)一個(gè)字(若干bit)信息;一個(gè)寄存器堆也只能存儲(chǔ)有限個(gè)字的信息。當(dāng)存儲(chǔ)大量數(shù)據(jù)時(shí),從經(jīng)濟(jì)和成本上考慮,只能使用隨機(jī)讀寫的RAM存儲(chǔ)器。RAM的邏輯結(jié)構(gòu)圖。其中MAR是地址寄存器,通過(guò)地址譯碼器譯碼,可選中相應(yīng)的存儲(chǔ)單元。MDR是數(shù)據(jù)緩沖寄存器,讀出的數(shù)據(jù)或?qū)懭氲臄?shù)據(jù)都由MDR暫存。存儲(chǔ)容量為2m個(gè)字(字長(zhǎng)n-bit)。RD和WR是RAM的讀、寫操作控制信號(hào)。不論是讀操作還是寫操作,首先要通過(guò)地址線向MAR送入地址信息。
20Spring2016ZDMC–Lec.#11讀操作:控制信號(hào)RD有效,將地址譯碼器選中的存儲(chǔ)單元的內(nèi)容讀出到數(shù)據(jù)緩沖寄存器MDR,然后送到數(shù)據(jù)總線上。寫操作:控制信號(hào)WR有效,將寫入的數(shù)據(jù)由數(shù)據(jù)總線送到MDR寄存器,然后寫入存儲(chǔ)矩陣。注意:存儲(chǔ)器的讀寫操作是分時(shí)進(jìn)行的:讀時(shí)不寫,寫時(shí)不讀。另外同MDR連接的n位數(shù)據(jù)線具有雙向傳送功能。數(shù)據(jù)通路(補(bǔ)充)總線結(jié)構(gòu)在數(shù)字系統(tǒng)中,總線是多個(gè)邏輯子系統(tǒng)的聯(lián)系紐帶。所謂總線,就是多個(gè)信息源分時(shí)傳送數(shù)據(jù)到多個(gè)目的地的傳送通路。如果總線的始端和終端是固定不變的,即信息只能從始端向終端傳送,稱為單向總線。如果信息的源端與目的端是相對(duì)的,稱為雙向總線,它可以實(shí)現(xiàn)信息的雙向傳送21Spring2016ZDMC–Lec.#11總線原理示意圖。總線始端有A1、A2、A3、A4四個(gè)信息來(lái)源,經(jīng)總線傳輸后有四個(gè)輸出B1、B2、B3、B4。傳送數(shù)據(jù)時(shí),只允許一個(gè)數(shù)據(jù)進(jìn)入總線。換句話說(shuō),某一時(shí)刻只能傳送A1-A4四個(gè)信息源中的一個(gè),這就需要在總線始端對(duì)進(jìn)入總線的信息有選擇地加以控制。同樣,總線終端輸出數(shù)據(jù)要送往何處,也需要有選擇地加以控制。這個(gè)任務(wù)由控制器來(lái)完成??偩€結(jié)構(gòu)總線的邏輯結(jié)構(gòu)總線結(jié)構(gòu)的邏輯實(shí)現(xiàn)可以實(shí)現(xiàn)多路選擇器方式、三態(tài)門方式。多路選擇器方式是單向總線。三態(tài)門方式可以組成雙向總線。22Spring2016ZDMC–Lec.#11三態(tài)門構(gòu)成的總線。發(fā)送數(shù)據(jù)的三個(gè)寄存器A、B、C通過(guò)三態(tài)門與總線BUS相連接;接收數(shù)據(jù)的寄存器D、E、F直接接在BUS上,并用寄存器的時(shí)鐘端作為接收控制信號(hào)。當(dāng)三態(tài)門的使能控制信號(hào)有效時(shí),發(fā)送寄存器的數(shù)據(jù)發(fā)送到BUS上,一旦接收寄存器的接收控制信號(hào)有效,便將數(shù)據(jù)打入到某個(gè)或幾個(gè)寄存器中。當(dāng)三態(tài)門使能控制信號(hào)無(wú)效時(shí),該三態(tài)門輸出端呈高阻態(tài),相當(dāng)于該三態(tài)門與BUS斷開(kāi)。三態(tài)門的這種特性,保證了總線上信息的分時(shí)傳送。雙向數(shù)據(jù)總線的邏輯結(jié)構(gòu)圖。圖中只畫出總線中的兩位。接收控制信號(hào)與發(fā)送控制信號(hào)由控制器給出,它們分別加到三態(tài)門的使能端。這兩個(gè)控制信號(hào)不能同時(shí)有效。當(dāng)接收控制信號(hào)有效時(shí),左列的三態(tài)門打開(kāi),右列的三態(tài)門關(guān)閉,因而數(shù)據(jù)由右面?zhèn)魉偷阶竺妗7粗?,?dāng)發(fā)送控制信號(hào)有效時(shí),右列的三態(tài)門打開(kāi),左列的三態(tài)門關(guān)閉,因而數(shù)據(jù)由左面?zhèn)魉偷接颐妗?shù)據(jù)通路什么是數(shù)據(jù)通路數(shù)字系統(tǒng)中,各個(gè)子系統(tǒng)通過(guò)數(shù)據(jù)總線連接形成的數(shù)據(jù)傳送路徑稱為數(shù)據(jù)通路。數(shù)據(jù)通路的設(shè)計(jì)直接影響到控制器的設(shè)計(jì),同時(shí)也影響到數(shù)字系統(tǒng)的速度指標(biāo)和成本。一般來(lái)說(shuō),處理速度快的數(shù)字系統(tǒng),它的獨(dú)立傳送信息的通路較多。但是獨(dú)立數(shù)據(jù)傳送通路一旦增加,控制器的設(shè)計(jì)也就復(fù)雜了。因此,在滿足速度指標(biāo)的前提下,為使數(shù)字系統(tǒng)結(jié)構(gòu)盡量簡(jiǎn)單,一般小型系統(tǒng)中多采用單一總線結(jié)構(gòu)。在較大系統(tǒng)中可采用雙總線或三總線結(jié)構(gòu)。23Spring2016ZDMC–Lec.#11數(shù)據(jù)通路結(jié)構(gòu)數(shù)據(jù)通路結(jié)構(gòu)單總線結(jié)構(gòu)的數(shù)據(jù)通路例子,其中有如下子系統(tǒng):
通用寄存器組R:容量16個(gè)字,雙端口輸出。暫存器A和B:保存通用寄存器組讀出的數(shù)據(jù)或BUS上來(lái)的數(shù)據(jù)。算術(shù)邏輯單元ALU:有S3、S2、S1、S0、M五個(gè)控制端,以選擇運(yùn)算類型。寄存器C:保存ALU運(yùn)算產(chǎn)生的進(jìn)位信號(hào)。RAM隨機(jī)讀寫存儲(chǔ)器:讀/寫操作受MRD/MWR控制信號(hào)控制。MAR:RAM的專用地址寄存器,寄存器的長(zhǎng)度決定RAM的容量。IR:專用寄存器,可存放由RAM讀出的一個(gè)特殊數(shù)據(jù)。控制器:用來(lái)產(chǎn)生數(shù)據(jù)通路中的所有控制信號(hào),它們與各個(gè)子系統(tǒng)上的使能控制信號(hào)一一對(duì)應(yīng)。BUS:?jiǎn)我粩?shù)據(jù)總線,通過(guò)三態(tài)門與有關(guān)子系統(tǒng)進(jìn)行連接。24Spring2016ZDMC–Lec.#11對(duì)單總線的系統(tǒng)來(lái)說(shuō),擴(kuò)充是非常容易的,只要在BUS上增加子系統(tǒng)即可。例如增加一個(gè)寄存器時(shí),可將總線BUS接到寄存器的數(shù)據(jù)輸入端,由接收控制信號(hào)將數(shù)據(jù)打入。如果該寄存器的數(shù)據(jù)還需要發(fā)送到BUS時(shí),在寄存器的輸出端加上三態(tài)門即可,或者干脆使用帶三態(tài)門輸出的寄存器。圖中所示的數(shù)據(jù)通路中,兩類信息的表示方式是非常明確的:雙線表示數(shù)據(jù)信息,帶箭頭的單線表示控制信號(hào)。所有的控制信號(hào)由控制器產(chǎn)生,在它們的協(xié)調(diào)配合下,數(shù)據(jù)流通過(guò)BUS總線在各子系統(tǒng)之間進(jìn)行流動(dòng)。25Spring2016ZDMC–Lec.#11微程序控制器的基本原理微命令控制部件通過(guò)控制線向執(zhí)行部件發(fā)出各種控制命令微操作執(zhí)行部件接受微命令所執(zhí)行的操作反饋信息執(zhí)行部件通過(guò)反饋線向控制部件反映當(dāng)前操作的結(jié)果控制部件根據(jù)執(zhí)行部件的“狀態(tài)”標(biāo)志下達(dá)新的微命令基本周期/機(jī)器周期
幾個(gè)時(shí)鐘周期微指令組成一組實(shí)現(xiàn)一定操作功能的微命令的組合讀出微碼指令與執(zhí)行這條微碼指令的時(shí)間總和一條微指令中包含若干個(gè)微命令分頭并行地控制執(zhí)行部件進(jìn)行相應(yīng)的微操作測(cè)試判別信息,實(shí)現(xiàn)控制算法流程圖的條件分支下一條微指令的地址
26Spring2016ZDMC–Lec.#11微指令的典型結(jié)構(gòu)長(zhǎng)條框內(nèi)的符號(hào)×表示一個(gè)二進(jìn)制位(bit)操作控制若干微命令測(cè)試判別信息判別字段無(wú)效時(shí),下址字段信息
下條微指令的地址判別字段有效時(shí),根據(jù)反饋信息對(duì)下址字段信息進(jìn)行修改,修改后的地址
下條微指令的地址在系統(tǒng)的一個(gè)基本狀態(tài)周期(又稱機(jī)器周期)中,一組實(shí)現(xiàn)一定操作功能的微命令的組合,構(gòu)成一條微指令??刂破魍ㄟ^(guò)一條條控制線向執(zhí)行部件發(fā)出各種控制命令,我們把這些控制命令叫做微命令。而執(zhí)行部件接受微命令所執(zhí)行的操作叫做微操作。微指令的結(jié)構(gòu)說(shuō)明強(qiáng)調(diào)兩點(diǎn)第一,一條微指令的有效持續(xù)時(shí)間是系統(tǒng)的一個(gè)基本周期,它表示從ROM中讀出微指令與執(zhí)行這條微指令的時(shí)間總和。當(dāng)從ROM中讀出下一條微指令后,當(dāng)前的這條微指令即失效。第二,一條微指令中包含若干個(gè)微命令,它們分頭并行地控制執(zhí)行部件進(jìn)行相應(yīng)的微操作。測(cè)試判別信息微指令除給出微命令信息外,還應(yīng)給出測(cè)試判別信息。一旦出現(xiàn)此信息,執(zhí)行這條微指令時(shí)要對(duì)系統(tǒng)的有關(guān)標(biāo)志進(jìn)行測(cè)試,從而實(shí)現(xiàn)控制算法流程圖中出現(xiàn)的條件分支。微指令中還包含下一地址字段,該字段將指明ROM中下一條微指令的地址。微指令的典型結(jié)構(gòu)其中微命令字段給出執(zhí)行部件的控制信號(hào):×編碼為1,表示有微命令,×編碼為0表示無(wú)微命令。測(cè)試判別字段和下一地址字段一起實(shí)現(xiàn)順序控制:當(dāng)測(cè)試判別字段無(wú)效時(shí)(×編碼為0),下址字段信息即是下條微指令的地址;當(dāng)判別測(cè)試字段有效時(shí)(其中一個(gè)X編碼為1),根據(jù)執(zhí)行部件反饋線上的標(biāo)志信息對(duì)下址字段信息進(jìn)行修改,修改好的地址即為下條微指令的地址。27Spring2016ZDMC–Lec.#1128Spring2016ZDMC–Lec.#11微碼程序微程序微程序是由若干條微指令組成的序列。微程序相當(dāng)于前述的流程圖,一條機(jī)器指令的功能由若干條微指令組成的序列來(lái)解釋和執(zhí)行機(jī)器執(zhí)行一條指令的過(guò)程執(zhí)行一個(gè)相應(yīng)的微程序的過(guò)程微程序?qū)嵸|(zhì)上是將控制器的控制算法變成了微程序流程圖一般數(shù)字系統(tǒng)而言,微程序?qū)嵸|(zhì)上就是將控制算法流程圖ASM用EPROM等來(lái)實(shí)現(xiàn)。微碼程序技術(shù)的革命使大型復(fù)雜數(shù)字系統(tǒng)控制器的設(shè)計(jì)發(fā)生了革命性的變化。微程序技術(shù)可代替硬件布線的控制技術(shù)存有控制代碼的EPROM存儲(chǔ)器,取代門電路和觸發(fā)器等組成的硬件數(shù)字電路網(wǎng)絡(luò)通用性29Spring2016ZDMC–Lec.#11微程序控制器的一般結(jié)構(gòu)微程序控制器的結(jié)構(gòu)微程序控制器的結(jié)構(gòu)取決于微碼指令的格式。它由控制存儲(chǔ)器、微地址寄存器、微命令寄存器和地址轉(zhuǎn)移邏輯幾部分組成??刂拼鎯?chǔ)器ROM中存放微碼程序,也就是全部的微指令。ROM的容量取決于微指令的總數(shù)。微指令寄存器微地址寄存器和微命令寄存器兩者的總長(zhǎng)度即為一條微指令的長(zhǎng)度二者合在一起稱為微指令寄存器。微命令寄存器暫存由控制存儲(chǔ)器中讀出的當(dāng)前微碼指令的控制信息包括微命令控制字段和測(cè)試字段,可由8D寄存器組成。
微地址寄存器存放下一條微指令的(默認(rèn)臨時(shí))地址地址轉(zhuǎn)移邏輯
組合邏輯電路條件轉(zhuǎn)移:其輸入是當(dāng)前微指令的判別測(cè)試字段Pi、執(zhí)行部件反饋的“狀態(tài)條件”及時(shí)間因素T4。當(dāng)微程序出現(xiàn)分支時(shí)修改微地址寄存器的內(nèi)容,并按修改好的微地址讀出下條微指令。
假如控制器需要128條微指令,則微地址寄存器長(zhǎng)度為7位。ROM的字長(zhǎng)取決于微指令長(zhǎng)度。如果微指令為32位,則ROM的字長(zhǎng)就是32位。實(shí)際應(yīng)用中ROM可采用EPROM或E2PROM、EAROM,用戶寫入和修改微程序比較方便。微地址寄存器暫存由控制存儲(chǔ)器讀出的當(dāng)前微指令的下址字段信息。它可由帶RD、SD強(qiáng)置端的D觸發(fā)器組成。其中時(shí)鐘端和D端配合用做ROM的讀出打入,用SD進(jìn)行下址修改。30Spring2016ZDMC–Lec.#11控制時(shí)序信號(hào)一個(gè)基本機(jī)器周期中的控制時(shí)序信號(hào)1)用上一周期的T4時(shí)間按微地址寄存器內(nèi)容從ROM中讀一條微指令2)經(jīng)過(guò)一段時(shí)間后被讀出,用當(dāng)前周期的T1時(shí)間存入微指令寄存器3)
T2,T3時(shí)間用來(lái)控制處理、控制執(zhí)行部件進(jìn)行操作,4)
T4時(shí)間修改微地址寄存器中的內(nèi)容,再讀下一條微指令。一個(gè)基本機(jī)器周期中的控制時(shí)序信號(hào)。31Spring2016ZDMC–Lec.#11微程序控制器的設(shè)計(jì)硬件設(shè)計(jì)選取存儲(chǔ)器和寄存器,設(shè)計(jì)地址轉(zhuǎn)移邏輯微程序編制
需要確定微程序流程圖,即控制算法流程圖。狀態(tài)化簡(jiǎn)和狀態(tài)分配已無(wú)關(guān)緊要狀態(tài)最簡(jiǎn)勿需過(guò)多考慮以微指令結(jié)構(gòu)為基礎(chǔ)可以編制任何所要求的微程序可長(zhǎng)可短,靈活自如,且能實(shí)現(xiàn)多路并行分支微程序流程圖確定使用微指令格式將微程序轉(zhuǎn)化為二進(jìn)制代碼微程序控制器的設(shè)計(jì)步驟(1)設(shè)計(jì)微程序就是確定微程序流程圖,也就是控制算法流程圖。微程序流程圖中的一條微指令,相當(dāng)于ASM流程圖中的一個(gè)狀態(tài)。控制存儲(chǔ)器中一個(gè)地址轉(zhuǎn)移到下一個(gè)地址是隨意的,靈活的。因此增加微指令或減少微指令不必改動(dòng)硬件。能實(shí)現(xiàn)多路并行轉(zhuǎn)移,而不受“狀態(tài)分配”的限制。(2)確定微指令格式微指令格式中的操作控制字段取決于執(zhí)行部件的子系統(tǒng)需要多少微指令。假定采用直接控制方式,執(zhí)行部件需要10個(gè)微命令,則操作控制字段需要10位。測(cè)試判別字段取決于微程序流程圖中有多少處分支轉(zhuǎn)移。假定有3處分支,則測(cè)試判別字段需要3位。下址字段取決于微程序流程圖的規(guī)模。假定微程序共用50條微指令,則下址字段至少需要6位。這是因?yàn)镽OM地址譯碼時(shí),26=64,6位地址可容納64條微指令。32Spring2016ZDMC–Lec.#11微程序控制器的設(shè)計(jì)步驟(2)(3)將微程序編譯成二進(jìn)制代碼根據(jù)確定的微指令格式,將微程序流程圖中的每一條指令編譯成二進(jìn)制代碼,這項(xiàng)工作可由人工完成。(4)微程序?qū)懭肟刂拼鎯?chǔ)器將二進(jìn)制代碼的微程序?qū)懭隕2PROM中。(5)設(shè)計(jì)硬件電路硬件電路包括微地址寄存器、微命令寄存器和地址轉(zhuǎn)移邏輯三部分。前兩部分可選用適當(dāng)?shù)臉?biāo)準(zhǔn)寄存器芯片(如74LS36、74LS273等)。地址轉(zhuǎn)移邏輯的輸入是測(cè)試判斷標(biāo)志Pi、狀態(tài)條件和時(shí)間因素Tj(讀ROM時(shí)間),先寫出邏輯表達(dá)式,然后用門電路芯片實(shí)現(xiàn)。33Spring2016ZDMC–Lec.#1134Spring2016ZDMC–Lec.#11【例8.11】按照?qǐng)D8.33數(shù)據(jù)通路,設(shè)計(jì)微指令格式,確定微程序控制器的基本方案。假定測(cè)試判別字段有2位,下址字段有4位。35Spring2016ZDMC–Lec.#11數(shù)據(jù)通路和控制器(放大圖)ALU=74LS181寄存器A和B選用74LS273八D觸發(fā)器三態(tài)緩沖器采用74LS244寄存器C選用74LS74三態(tài)緩沖器采用74LS244選用74LS273八D觸發(fā)器RAM選用2114/2864型通用寄存器選用74LS170/670型組合而成36Spring2016ZDMC–Lec.#11數(shù)據(jù)通路數(shù)據(jù)總線聯(lián)結(jié)形成的數(shù)據(jù)傳送路徑獨(dú)立傳送信息的通路數(shù)量
性能和復(fù)雜度子系統(tǒng)暫存器A,B16字的通用寄存器組ALU存儲(chǔ)器RAM地址寄存器MAR總線BUS和三態(tài)門數(shù)據(jù)總線37Spring2016ZDMC–Lec.#11數(shù)據(jù)通路分析通用寄存器組雙輸出口運(yùn)算器BUS寄存器組A輸出總線BUS輸出通過(guò)三態(tài)門連接RAM本身帶三態(tài),雙向數(shù)據(jù)信息雙線控制信息帶箭頭單線38Spring2016ZDMC–Lec.#11ALU算術(shù)運(yùn)算單元74LS181S0,S1,S2,S3功能選擇端和M實(shí)現(xiàn)16種邏輯操作和算術(shù)運(yùn)算加,減,與,或,異或,取反等M工作方式選擇當(dāng)工作方式控制端(M)為低電平時(shí),執(zhí)行算術(shù)運(yùn)算當(dāng)工作方式控制端(M)為高電平時(shí),執(zhí)行邏輯運(yùn)算+1進(jìn)位輸入C進(jìn)位輸出39Spring2016ZDMC–Lec.#114類數(shù)據(jù)操作1)Ri+RjRjRDA
以A地址讀寄存器堆RDB以B地址讀寄存器堆WRB以B地址寫寄存器堆2)RjRAMLDAR暫存器B為RAM地址打入MARRDB+MWR寫入RAM3)RAMRjMRD讀出RAM+WRB寫入R4)Ri+RAMRAMRDA+MRD(地址已有)+MWR40Spring2016ZDMC–Lec.#11微指令格式所有的控制信號(hào)均標(biāo)注在邏輯子系統(tǒng)的側(cè)面,共計(jì)有26個(gè)因此微命令字段長(zhǎng)度為26位加上測(cè)試判別字段2位微地址字段4位微指令長(zhǎng)度共計(jì)32位根據(jù)微指令格式,確定EPROM的容量為16個(gè)存儲(chǔ)單元,字長(zhǎng)32位。微地址寄存器4位,微命令寄存器28位。41Spring2016ZDMC–Lec.#11【例8.12】數(shù)字比較系統(tǒng)硬件框圖及ASM流程圖如圖8.26所示,請(qǐng)?jiān)O(shè)計(jì)其微程序控制器。解微程序流程圖ASM流程圖硬件框圖ASM流程圖變成微程序流程圖
42Spring2016ZDMC–Lec.#11解(1)確定地址每一個(gè)狀態(tài)框變成一條微指令四條微指令,令其地址為0000,0100,0101,1000,它們是任意安排的,用4位二進(jìn)制碼表示的微地址。按4位地址推算EPROM的存儲(chǔ)容量為24=16個(gè)存儲(chǔ)單元。(2)確定微指令格式本系統(tǒng)中的控制信號(hào)只有3個(gè)(LDRA、LDRB,CAP),所以微命令字段為3位;加上判別測(cè)試字段1位;下地址字段4位;故微指令字長(zhǎng)度為8位。43Spring2016ZDMC–Lec.#11微指令執(zhí)行(3)確定地址轉(zhuǎn)移邏輯表達(dá)式分支轉(zhuǎn)移第4條微指令執(zhí)行后出現(xiàn)判別測(cè)試框(第4條微指令)判別測(cè)試標(biāo)志P(1)P(1)=1,根據(jù)轉(zhuǎn)移條件(A>B)來(lái)決定下條微指令(A>B)=0,執(zhí)行第2條微指令(微地址0100)(A>B)=1,執(zhí)行第3條微指令(微地址0101)。這兩條微指令地址的差別僅在于最低位上是1還是0因此地址轉(zhuǎn)移邏輯表達(dá)式為:其中:A>B是比較器的輸出信號(hào),(A>B)=1表示A數(shù)大于B數(shù),(A>B)=0表示A數(shù)小于等于B數(shù)。用機(jī)器周期的T3節(jié)拍修改微地址并讀EPROM,再用下一周期的T1節(jié)拍打入到微指令寄存器中。當(dāng)微程序出現(xiàn)分支時(shí)下個(gè)微地址的安排要考慮修改的方便性
注,微程序不出現(xiàn)分支時(shí)下個(gè)微地址,在E2PROM存儲(chǔ)容量的范圍內(nèi)可任意設(shè)計(jì)μA3=P1·(A>B)·T344Spring2016ZDMC–Lec.#11(4)硬件電路微地址寄存器采用帶有強(qiáng)置端的雙D觸發(fā)器通過(guò)uA3觸發(fā)器SD端置“1”的方法可將其修改為1
其他3個(gè)觸發(fā)器不做修改其中LDRB、LDRA是脈沖控制信號(hào)(持續(xù)時(shí)間T2),CAP是電位控制信號(hào)(持續(xù)時(shí)間一個(gè)機(jī)器周期)。45Spring2016ZDMC–Lec.#11(5)微程序當(dāng)前微地址(存儲(chǔ)器位置)微指令二進(jìn)制代碼微命令判別下地址000010000100…xxxxxxxx010001000101010110001000…xxxxxxxx100000110100控制存儲(chǔ)器E2PROM中存放由4條微指令組成的微程序,它們是按微指令格式轉(zhuǎn)換的二進(jìn)制代碼表8.7微程序代碼不能
100000100101在微程序無(wú)分支的情況下,下地址可按EPROM容量隨意填寫,但必須限制在微地址寄存器指定的范圍內(nèi),且不允許兩條微指令使用同一個(gè)微地址?!纠?.13】46Spring2016ZDMC–Lec.#11采用例8.11的數(shù)據(jù)通路和圖8.32所示的微指令格式,編制如下四種基本操作的微程序流程圖,并完成微地址轉(zhuǎn)移邏輯的設(shè)計(jì)。47Spring2016ZDMC–Lec.#11【例8.13】采用例8.11的數(shù)據(jù)通路和圖8.32所示的微指令格式,編制如下四種基本操作的微程序流程圖,并完成微地址轉(zhuǎn)移邏輯的設(shè)計(jì)。
00RAM
Rj(2)
(從RAM中取數(shù)至R2)
01Ri(3)加Rj(4)
Rj(4) (R3,R4中二數(shù)算術(shù)加)10Ri(6)
RAM
(R6中的數(shù)存入RAM)
11Ri(7)⊕Rj(8)
Rj(8)(R7,R8中二數(shù)邏輯異)假設(shè)條件:(1)四種基本操作分別用4個(gè)狀態(tài)的編碼(00,01,10,11)來(lái)表示,該編碼值由IR0和IR1兩個(gè)觸發(fā)器組成的計(jì)數(shù)器提供。對(duì)應(yīng)計(jì)數(shù)器的一種狀態(tài),則執(zhí)行相應(yīng)的一種基本操作;(2)每當(dāng)一種基本操作結(jié)束時(shí),計(jì)數(shù)器進(jìn)行加數(shù)而改變狀態(tài)。但操作開(kāi)始前計(jì)數(shù)器的初始狀態(tài)是隨機(jī)的,這意味著四種操作執(zhí)行的順序可認(rèn)為是隨意的,但時(shí)間上必須是連續(xù)的;(3)通用寄存器的選擇也是隨意的;(4)向RAM中取數(shù)、存數(shù)的地址均由暫存器B給出。48Spring2016ZDMC–Lec.#11解分析:(1)微程序設(shè)計(jì)微程序流程圖1)對(duì)應(yīng)四種基本操作,我們需要設(shè)計(jì)4個(gè)微程序2)具體執(zhí)行某種操作前,微程序流程圖的分支,由P1測(cè)試來(lái)完成,測(cè)試的狀態(tài)條件是IR0,IR1的內(nèi)容3)四個(gè)基本操作執(zhí)行過(guò)程中不需要再進(jìn)行測(cè)試,這四個(gè)微程序不再出現(xiàn)分支情況。每一個(gè)方框表示一條微指令右上角的二進(jìn)制碼表示:當(dāng)前微指令的地址;右下角的數(shù)字表示:下條微指令的地址(在微程序無(wú)分支情況下)或待修改的地址(在微程序有分支情況下)。最上面的第一條入口地址為0000,這通過(guò)系統(tǒng)啟動(dòng)時(shí)將微地址寄存器清零來(lái)給出。第一條微指令的下地址1000是一個(gè)待修改的地址,在P1測(cè)試時(shí),根據(jù)IR0、IR1的狀態(tài)來(lái)修改微地址寄存器的最后兩位觸發(fā)器,從而得出1000、1001、1010、1011四個(gè)微地址,實(shí)現(xiàn)了微程序的四路并行轉(zhuǎn)移。最下面一條微指令是一條公用微指令,用來(lái)進(jìn)行計(jì)數(shù)器修改加1。由于它的下地址是0000,因而又返回到第一條微指令,從而實(shí)現(xiàn)了微程序的連續(xù)運(yùn)行。49Spring2016ZDMC–Lec.#11分析:(2)微地址轉(zhuǎn)移邏輯設(shè)計(jì)每條微指令的框內(nèi)表示數(shù)據(jù)通路的選擇操作是用微指令的操作控制字段發(fā)出的微命令來(lái)實(shí)現(xiàn)的。從時(shí)間上講,每條微指令的持續(xù)時(shí)間均為一個(gè)機(jī)器周期(本例中由T1、T2、T3、T4四個(gè)節(jié)拍時(shí)間組成,4個(gè)時(shí)鐘周期組成一個(gè)機(jī)器周期)。每一條微指令只完成一個(gè)機(jī)器周期時(shí)間所允許的微操作。而幾條微指令組合在一起,可完成更多的操作??赏瓿烧n題任務(wù)所要求的基本操作。微地址轉(zhuǎn)移邏輯用兩個(gè)三輸入與非門實(shí)現(xiàn)其中P1為微指令的測(cè)試判別標(biāo)志,IR0,IR1為計(jì)數(shù)器二觸發(fā)器的狀態(tài)值,T4表示時(shí)鐘周期時(shí)間。
表達(dá)式說(shuō)明,當(dāng)P1測(cè)試時(shí),在T4時(shí)刻按計(jì)數(shù)器IR0、IR1的內(nèi)容修改μAR3和μAR4,并按修改了的微地址寄存器內(nèi)容讀出下條微指令。
50Spring2016ZDMC–Lec.#11(3)微程序編譯成二進(jìn)制代碼當(dāng)前微地址八進(jìn)制表示的微命令P2P1下一微地址000000000000001100*0*000100000026000011000103100004400001100011001130000000100010037400001000011001012610010400001100110000000002000000…………1000324000004000001100100171640000001010103240000040000111011001737000000101不允許兩條微指令使用同一個(gè)微地址。51Spring2016ZDMC–Lec.#11數(shù)據(jù)通路和控制器52Spring2016ZDMC–Lec.#11小結(jié)微程序控制的主要優(yōu)點(diǎn)是規(guī)范和靈活易于實(shí)現(xiàn)多路并行分支易于系統(tǒng)擴(kuò)展系統(tǒng)越復(fù)雜,越宜適用微程序控制方法進(jìn)行設(shè)計(jì)只不過(guò)是微指令的重復(fù)應(yīng)用EPROM只不過(guò)是增加了一些存儲(chǔ)單元而微指令寄存器并不改變?nèi)秉c(diǎn):對(duì)一些非常簡(jiǎn)單的系統(tǒng)來(lái)說(shuō)采用微程序控制方法從成本上來(lái)講不一定合算。從速度上講微程序控制器的工作速度不如硬布線邏輯控制器快。53Spring2016ZDMC–Lec.#11課堂測(cè)驗(yàn)如何計(jì)量寄存器中1的個(gè)數(shù),采用數(shù)據(jù)選擇器法實(shí)現(xiàn)控制器。畫出數(shù)字系統(tǒng)電路框圖和ASM圖。設(shè)計(jì)的數(shù)字系統(tǒng)包括兩個(gè)寄存器R1和R2,以及一個(gè)觸發(fā)器E。系統(tǒng)對(duì)1的個(gè)數(shù)進(jìn)行計(jì)量,將計(jì)數(shù)值預(yù)置到寄存器R1,設(shè)置寄存器R2等于這個(gè)數(shù)值??刂破鞯耐獠枯斎胄盘?hào)Start啟動(dòng)狀態(tài)機(jī)的操作,Ready為狀態(tài)機(jī)的狀態(tài)指示。控制器采用異步復(fù)位,時(shí)鐘正邊沿觸發(fā)??刂破鬟€接收兩個(gè)從數(shù)據(jù)路徑來(lái)的狀態(tài)輸入E和Zero。這些信號(hào)表明最高有效位的寄存器數(shù)據(jù)是0。E是觸發(fā)器輸出,Zero是檢測(cè)寄存器R1是否全0的結(jié)果輸出。當(dāng)R1等于0(即R1中不包含1)時(shí),輸出Zero=1。控制單元數(shù)據(jù)路徑輸出數(shù)據(jù)輸入數(shù)據(jù)輸入信號(hào)(外部)控制信號(hào)狀態(tài)信號(hào)54Spring2016ZDMC–Lec.#11Microprogramming(課后參考)HowtoorganizethecontrolsignalsImplementcontrolsignalsbystoring1'sand0'sinaROMHorizontalvs.verticalmicroprogramming
Horizontal:1ROMoutputforeachcontrolsignalVertical:encodedcontrolsignalsinROM,decodedexternallysomemutuallyexclusivesignalscanbecombinedhelpsreduceROMlength55Spring2016ZDMC–Lec.#11MicroprogrammingRegisterTransfer/Microoperations14RegisterTransferoperationsbecome22Microoperations:
PC
ABUSIR
ABUSMBR
ABUSRBUS
ACAC
ALUAMBUS
ALUBALUADDALUPASSBMAR
AddressBusMBR
DataBusABUS
IR
ABUS
MARDataBus
MBRRBUS
MBRMBR
MBUS0
PCPC+1
PCABUS
PCRead/WriteRequestAC
RBUSALUResult
RBUS56Spring2016ZDMC–Lec.#11HorizontalMicroprogramming(參考)HorizontalBranchSequencer
,Muxbits4x4NextStatebits22Controloperationbits40bitstotalNextStatesA0A1A2A3a
muxb
muxALUPASSBMAR
AddressBusMBR
DataBusABUS
IRABUS
MARDataBus
MBRRBUS
MBRMBR
MBUSPC
ABUSIR
ABUSMBR
ABUSRBUS
ACAC
ALUAMBUS
ALUBALUADD0
PCPC+1
PCABUS
PCRead/WriteRequestAC
RBUSALUResult
RBUS57Spring2016ZDMC–Lec.#11HorizontalMicroprogrammingMooreProcessorROMAlphainputs:0=Wait,1=IR<15>Betainputs:0=AC<15>,1=IR<14>CurrentState(Address)RES(0000)IF0(0001)IF1(0010)IF2(0011)IF3(0100)OD(0101)LD0(0110)LD1(0111)LD2(1000)ST0(1001)ST1(1010)AD0(1011)AD1(1100)AD2(1101)BR0(1110)BR1(1111)ABUS
IRABUS
MARDataBus
MBRRBUS
MBRMBR
MBUS0
PCPC+1
PCABUS
PCRead/WriteRequestAC
RBUSALUResult
RBUS00000000001100000000000000000100000100100010010001000110011110000001101000011100110100010001000100010010001001000100100101111000000110100001110011010001111100010001001000110011010110110111011100011010101011001100000100010001000100100011001101011110011101110001101010101100110000011111000101000000000000000000001001010001000010000000000000000000100001000000000000000100000000001000010000000000000001000000000010000000000100010010100000000000001000000000100000000000010000100101000000010001000010000000000001000000000000001000010010000000000000000001000100001000000000001000010000010001001010000000000001000000NextStatesA0A1A2A3a
muxb
mux01000000000000000000000000000001ALUADDALUPASSBMAR
AddressBusMBR
DataBusPC
ABUSIR
ABUSMBR
ABUSRBUS
ACAC
ALUAMBUS
ALUB58Spring2016ZDMC–Lec.#11HorizontalMicroprogrammingAdvantages:
mostflexibility--completeparallelaccesstodatapathcontrolpointsDisadvantages:verylongcontrolwords--100+bitsforrealprocessorsOutputEncodings:GroupmutuallyexclusivesignalsUseexternallogictodecodeNOTE:Notallmicrooperationcombinationsmakesense!Example:
0
PC,PC+1
PC,ABUS
PCmutuallyexclusiveSaveROMbitwithexternal2:4Decoder59Spring2016ZDMC–Lec.#11HorizontalMicroprogrammingPartiallyEncodedControlOutputs60Spring2016ZDMC–Lec.#11MoreextensiveencodingtoreduceROMwordlengthTypicallyusemultiplemicrowordformats:Horizontalmicrocode--nextstate+controlbitsinsamewordSeparateformatsforcontroloutputsand"branchjumps"mayrequireseveralmicrowordsinasequencetoimplementsamefunctionassinglehorizontalwordIntheextreme,verymuchlikeassemblylanguageprogrammingVerticalMicroprogramming(參考)61Spring2016ZDMC–Lec.#11VerticalMicroprogrammingBranchJumpCompareindicatedsignalto0or1RegisterTransferSource,Destination,Operation10ROMBits62Spring2016ZDMC–Lec.#11VerticalMicroprogrammingROMADDRESS SYMBOLICCONTENTS BINARYCONTENTS 000000 RES RT PC
MAR,PC+1
PC 0 001 011 100 000001 IF0 RT MAR
M,Read 0 100 000 101 000010 BJ Wait=0,IF0 1 000 000 001 000011 IF1 RT MAR
M,M
MBR,Read 0 100 100 101 000100 BJ Wait=1,IF1 1 001 000 011 000101 IF2 RT MBR
IR 0 011 010 000 000110 BJ Wait=0,IF2 1 000 000 101 000111 RT IR
MAR 0 010 011 000 001000 OD BJ IR<15>=1,OD1 1 101 010 101 001001 BJ IR<14>=1,ST0 1 111 010 000 001010 LD0 RT MAR
M,Read 0 100 000 101 001011 LD1 RT MAR
M,M
MBR,Read 0 100 100 101 001100 BJ Wait=1,LD1 1 001 001 011 001101 LD2 RT MBR
AC 0 110 001 010 001110 BJ Wait=0,RES 1 000 000 000 001111 BJ Wait=1,RES 1 001 000 00063Spring2016ZDMC–Lec.#11VerticalMicroprogrammingROMADDRESS SYMBOLICCONTENTS BINARYCONTENTS 010000 ST0 RT AC
MBR 0 101 101 000 010001 RT MAR
M,MBR
M,Write 0 100 111 110 010010 ST1 RT MAR
M,MBR
M,Write 0 100 111 110 010011 BJ Wait=0,RES 1 000 000 000 010100 BJ Wait=1,ST1 1 001 010 010 010101 OD1 BJ IR<14>=1,BR0 1 111 011 101 010110 AD0 RT MAR
M,Read 0 100 000 101 010111 AD1 RT MAR
M,M
MBR,Read 0 100 100 101 011000 BJ Wait=1,AD1 1 001 010 111 011001 AD2 RT AC+MBR
AC 0 110 001 001 011010 BJ Wait=0,RES 1 000 000 000 011011 BJ Wait=1,RES 1 000 000 000 011100 BR0 BJ AC<15>=0,RES 1 010 000 000 011101 RT IR
PC 0 010 110 000 011110 BJ AC<15>=1,RES 1 011 000 00031wordsx10ROMbits=310bitstotalversus16x38=608bitshorizontal64Spring2016ZDMC–Lec.#11VerticalProgrammingControllerBlockDiagram65Spring2016ZDMC–Lec.#11VerticalMicroprogrammingConditionLogic66Spring2016ZDMC–Lec.#11VerticalMicroprogrammingWriteableControlStorePartofcontrolstoreaddressesmapintoRAMAllowsassemblylanguageprogrammertoimplementowninstructionsExtend"native"instructionsetwithapplicationspecificinstructionsRequiresconsiderablesophisticationtowritemicrocodeNotapopularapproachwithtoday'sprocessorsMakethenativeinstructionsetsimpleandfastWrite"higherlevel"functionsasassemblylanguagesequences67Spring2016ZDMC–Lec.#11課后作業(yè)1)查閱:國(guó)際電路公司的8051,PIC,AVR單片機(jī),ARM,MIPS,DSP等微控制器芯片的型號(hào)、類型、速度……upd78F9202,STM8s003,PIC16F886,Mage48圖書(shū)館資源:電子器件天地,軟件82)習(xí)題:/補(bǔ)充講義P438.11,8.12,8.14;3)閱讀:補(bǔ)充講義CH.8--9《數(shù)字系統(tǒng)設(shè)計(jì)與VerilogHDL》書(shū)書(shū)CH.11閱讀講義p.37-5168Spring2016ZDMC–Lec.#11課后作業(yè)4)ProjectProject1(必做):將講義P31頁(yè)圖8.33的框圖用具體型號(hào)的數(shù)字集成電路設(shè)計(jì)實(shí)現(xiàn)為具體電路圖。(5月31日前,交報(bào)告和電路圖)Project2(選做平時(shí)成績(jī)加分):用具體集成電路設(shè)計(jì)并硬件實(shí)現(xiàn)一個(gè)4bit簡(jiǎn)單CPU實(shí)物。(期末停課前完成,要有報(bào)告)69Spring2016ZDMC–Lec.#11
講義第八章微控制器設(shè)計(jì)
--------------流水結(jié)構(gòu)與系統(tǒng)架構(gòu)70Spring2016ZDMC–Lec.#118.5算法與流水結(jié)構(gòu)數(shù)字系統(tǒng)設(shè)計(jì)確定怎樣執(zhí)行數(shù)據(jù)處理提供相應(yīng)的控制信號(hào)并用數(shù)字功能部件構(gòu)造成電路“算法”指一個(gè)問(wèn)題的求解過(guò)程通過(guò)有限個(gè)定義的程序性步驟來(lái)說(shuō)明算法結(jié)構(gòu)
算法由許多子運(yùn)算組成各子運(yùn)算的執(zhí)行方法子運(yùn)算間的執(zhí)行次序71Spring2016ZDMC–Lec.#11算法結(jié)構(gòu)分類算法結(jié)構(gòu)分類順序算法結(jié)構(gòu)并行算法結(jié)構(gòu)流水算法結(jié)構(gòu)72Spring2016ZDMC–Lec.#117.5.1順序算法結(jié)構(gòu)(串行)順序算法結(jié)構(gòu)有------2種在執(zhí)行算法的整個(gè)過(guò)程中同一時(shí)間只進(jìn)行一種或一組相關(guān)的子運(yùn)算1)每時(shí)間段中僅有一個(gè)子運(yùn)算操作各子運(yùn)算之間逐個(gè)按規(guī)定的次序進(jìn)行
73Spring2016ZDMC–Lec.#11順序算法結(jié)構(gòu)2)在同一時(shí)間里,有時(shí)有一組子運(yùn)算操作同組各操作間相互關(guān)聯(lián),它們完成后再進(jìn)行新的一組操作
打包74Spring2016ZDMC–Lec.#11順序算法結(jié)構(gòu)順序算法輸入數(shù)據(jù)D完成算法流程需L個(gè)時(shí)間段每段的平均時(shí)間為△t完成運(yùn)算所需時(shí)間
數(shù)字系統(tǒng)中待處理的數(shù)據(jù)是連續(xù)輸入的數(shù)據(jù)流數(shù)據(jù)流中每個(gè)元素均完成同樣的運(yùn)算前一數(shù)據(jù)元素計(jì)算完成后,再進(jìn)行后一數(shù)據(jù)元素的計(jì)算處理若含有n個(gè)元素的數(shù)據(jù)流輸入時(shí)總的運(yùn)算時(shí)間為
75Spring2016ZDMC–Lec.#117.5.2并行算法結(jié)構(gòu)并行算法在同一時(shí)間段中,有多條路徑在同時(shí)進(jìn)行運(yùn)算這些同時(shí)執(zhí)行的子運(yùn)算操作間是相互獨(dú)立的
圖中OP2、OP3、OP4同時(shí)進(jìn)行,三種操作硬件互相獨(dú)立OP5和OP6、OP10和OP11為順序運(yùn)算的一組相關(guān)操作76Spring2016ZDMC–Lec.#11并行算法結(jié)構(gòu)并行運(yùn)算優(yōu)點(diǎn)是速度快缺點(diǎn)是增加硬件結(jié)構(gòu)成本并行算法運(yùn)算時(shí)間若待處理數(shù)據(jù)是單元素Di(二進(jìn)制若干位)完成運(yùn)算的時(shí)間仍滿足其中L‘是并行算法流程經(jīng)過(guò)的運(yùn)算段數(shù)L‘比同一系統(tǒng)的順序算法流程的運(yùn)算段數(shù)L要小得多因此提高了速度數(shù)字系統(tǒng)中總運(yùn)算時(shí)間若含有n個(gè)元素的數(shù)據(jù)流輸入時(shí)并行結(jié)構(gòu)算法總的運(yùn)算時(shí)間為77Spring2016ZDMC–Lec.#117.5.3流水線操作算法結(jié)構(gòu)流水線操作算法結(jié)構(gòu)是針對(duì)連續(xù)輸入數(shù)據(jù)流的系統(tǒng)把整個(gè)運(yùn)算過(guò)程分解為若干個(gè)段系統(tǒng)在同一時(shí)間可對(duì)先后輸入的數(shù)據(jù)流元素進(jìn)行不同段的同時(shí)運(yùn)算條件有多個(gè)操作硬件(不同的)交錯(cuò):每一時(shí)刻一個(gè)硬件不能有2個(gè)運(yùn)算,78Spring2016ZDMC–Lec.#11流水線結(jié)構(gòu)特點(diǎn)(1)流水線中必須是連續(xù)運(yùn)算只有連續(xù)不斷地運(yùn)算才能充分發(fā)揮流水線的效率(2)一個(gè)運(yùn)算分解為幾個(gè)有聯(lián)系的子運(yùn)算每個(gè)子運(yùn)算由一個(gè)專門的功能部件來(lái)執(zhí)行(3)每一個(gè)功能部件后都要有一個(gè)緩沖寄存器用于保存本段的執(zhí)行結(jié)果(4)流水線中各段的時(shí)間應(yīng)盡量相等否則將引起“堵塞”或“斷流”等現(xiàn)象(5)流水線需要有“裝入時(shí)間”和“排空時(shí)間”只有流水線完全充滿時(shí),整個(gè)流水線的效率才能得到充分發(fā)揮79Spring2016ZDMC–Lec.#11流水線的效率對(duì)于有L段運(yùn)算的流水線結(jié)構(gòu),可以同時(shí)對(duì)L個(gè)數(shù)據(jù)元素進(jìn)行不同段的運(yùn)算,從而大大提高了運(yùn)算速度。80Spring2016ZDMC–Lec.#11【例8.14】試用順序操作算法和流水操作算法實(shí)現(xiàn)運(yùn)算,并比較運(yùn)算速度。其中A、B、C均為數(shù)據(jù)流,長(zhǎng)度為m,且均是n位。解
根據(jù)題意,給定的數(shù)據(jù)流共有m個(gè)元素
…,其中
81Spring2016ZDMC–Lec.#11【例8.14】算法流程圖系統(tǒng)運(yùn)算分解“相乘”、“相加”、“開(kāi)平方”三個(gè)運(yùn)算段82Spring2016ZDMC–Lec.#11【例8.14】
(1)順序算法結(jié)構(gòu)在△t1、△t2和△t3的三段時(shí)間中分別完成、以及運(yùn)算。設(shè)△t1=△t2=△t3=△t,順序算法結(jié)構(gòu)的時(shí)間關(guān)系圖運(yùn)算狀態(tài)第i個(gè)數(shù)據(jù)元素在完成前兩步運(yùn)算之后,只有求平方根電路在工作,而乘法和加法電路均處在閑置的等待狀態(tài),待求平方根運(yùn)算完成后再接受數(shù)據(jù)流中的(i+1)個(gè)數(shù)據(jù)元素完成整個(gè)運(yùn)算的時(shí)間為83Spring2016ZDMC–Lec.#11【例8.14】
(2)流水算法結(jié)構(gòu)提高運(yùn)算速度,又不增加運(yùn)算器的硬件成本改用流水線操作算法結(jié)構(gòu)完成全部數(shù)據(jù)計(jì)算所需要的時(shí)間為
84Spring2016ZDMC–Le
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度網(wǎng)絡(luò)安全臨時(shí)工程師勞動(dòng)合同模板4篇
- 個(gè)人旅游咨詢服務(wù)提供合同(2024版)3篇
- 2025年度民間借貸合同糾紛調(diào)解員管理與考核合同4篇
- 二零二五版購(gòu)房合同中合同履行及違約責(zé)任3篇
- 2025年度個(gè)人工廠生產(chǎn)線及原材料供應(yīng)合同4篇
- 2025版智慧農(nóng)業(yè)物聯(lián)網(wǎng)系統(tǒng)建設(shè)零星勞務(wù)分包合同范本4篇
- 二零二五版智能公寓設(shè)施升級(jí)改造承包合同3篇
- 二零二五年度影視基地租賃合同范本3篇
- 遺體接送服務(wù)與家屬協(xié)助2025年度合同3篇
- 家政服務(wù)行業(yè)月嫂居間合同
- 電競(jìng)賽事策劃全解析
- 圓周率的認(rèn)識(shí)
- 基于SMT求解器的分支條件覆蓋測(cè)試
- 反騷擾政策程序
- 射頻在疼痛治療中的應(yīng)用
- 四年級(jí)數(shù)學(xué)豎式計(jì)算100道文檔
- “新零售”模式下生鮮電商的營(yíng)銷策略研究-以盒馬鮮生為例
- 項(xiàng)痹病辨證施護(hù)
- 懷化市數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)發(fā)展概況及未來(lái)投資可行性研究報(bào)告
- 07FD02 防空地下室電氣設(shè)備安裝
- 教師高中化學(xué)大單元教學(xué)培訓(xùn)心得體會(huì)
評(píng)論
0/150
提交評(píng)論