數(shù)字系統(tǒng)設(shè)計 - 微控制器之-微碼控制器與流水結(jié)構(gòu)提高_第1頁
數(shù)字系統(tǒng)設(shè)計 - 微控制器之-微碼控制器與流水結(jié)構(gòu)提高_第2頁
數(shù)字系統(tǒng)設(shè)計 - 微控制器之-微碼控制器與流水結(jié)構(gòu)提高_第3頁
數(shù)字系統(tǒng)設(shè)計 - 微控制器之-微碼控制器與流水結(jié)構(gòu)提高_第4頁
數(shù)字系統(tǒng)設(shè)計 - 微控制器之-微碼控制器與流水結(jié)構(gòu)提高_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1Spring2016ZDMC–Lec.#11數(shù)字系統(tǒng)設(shè)計

DigitalSystemDesign-----微控制器之-微碼控制器與流水結(jié)構(gòu)2Spring2016ZDMC–Lec.#11控制單元與數(shù)據(jù)通道(復(fù)習(xí))ASM圖給出了設(shè)計數(shù)字系統(tǒng)(控制電路和數(shù)據(jù)路徑)需要的所有信息??刂齐娐酚布c數(shù)據(jù)路徑的硬件劃分。數(shù)據(jù)路徑包含了與其操作和邏輯所關(guān)聯(lián)的硬件,這些邏輯用于產(chǎn)生提供給控制電路的狀態(tài)信號。數(shù)據(jù)路徑的設(shè)計要求在ASM圖的狀態(tài)框和條件框中給出,由在數(shù)據(jù)路徑上標注操作來確定。控制單元包含了所有數(shù)據(jù)路徑中操作控制信號邏輯。控制邏輯有判決框和所需狀態(tài)轉(zhuǎn)移決定。3Spring2016ZDMC–Lec.#11控制邏輯(復(fù)習(xí))數(shù)字系統(tǒng)的設(shè)計過程可分成兩個部分:數(shù)據(jù)路徑中的寄存器傳輸設(shè)計和控制單元中的控制邏輯設(shè)計??刂七壿嬍且粋€有限狀態(tài)機,其米里型和摩爾型輸出控制著數(shù)據(jù)路徑中的操作。控制單元的輸入是外部輸入,內(nèi)部狀態(tài)信號從數(shù)據(jù)路徑反饋到控制電路??刂齐娐肥菚r序電路,可以采用前面概括出的時序邏輯設(shè)計步驟進行設(shè)計?,F(xiàn)在提出的方法是對經(jīng)典時序電路設(shè)計方法的補充。設(shè)計方法采用序列寄存器-計數(shù)器和譯碼器采用數(shù)據(jù)選擇器來設(shè)計采用一位熱位設(shè)計(每個狀態(tài)一個觸發(fā)器)4Spring2016ZDMC–Lec.#111-計數(shù)型控制器將所要求的控制狀態(tài)按一定原則進行編碼分配,就可設(shè)計出一種狀態(tài)計數(shù)型的控制器。圖中計數(shù)器含有多個觸發(fā)器,觸發(fā)器的狀態(tài)作為狀態(tài)變量以二進制編碼的形式賦于ASM流圖中的每一個狀態(tài)框,而條件輸出框不予賦值。使用寄存器產(chǎn)生控制狀態(tài),使用譯碼器產(chǎn)生與每個狀態(tài)對應(yīng)的輸出信號。若使用一位熱位編碼,就不需要使用譯碼器。5Spring2016ZDMC–Lec.#112-采用數(shù)據(jù)選擇器來設(shè)計控制器三級電路結(jié)構(gòu):決定寄存器次態(tài)的數(shù)據(jù)選擇器組成保存現(xiàn)態(tài)的寄存器譯碼器,產(chǎn)生每個控制狀態(tài)對應(yīng)的輸出設(shè)計一個多路選擇器型控制器,完成左圖的控制算法。根據(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è)計,產(chǎn)生的電路每一個狀態(tài)需要一個觸發(fā)器。每次只有一個觸發(fā)器為1,其余觸發(fā)器都為0。觸發(fā)器的數(shù)目代表了狀態(tài)數(shù),并依賴一組最新的代碼實現(xiàn)狀態(tài)轉(zhuǎn)換。使用一位熱位的方法會在時序電路中增加很多觸發(fā)器。但是一位熱位設(shè)計方法的優(yōu)點是設(shè)計簡單,

不需要譯碼器。7Spring2016ZDMC–Lec.#11控制和數(shù)據(jù)通道的交互Algorithmicstatemachineanddatapath(ASMD)chartsweredevelopedtoclarifytheinformationdisplayedbyASMchartsandtoprovideaneffectivetoolfordesigningacontrolunitforagivendatapathunit.AnASMDchartassociateregisteroperationswithstatetransitionsratherthanwithstates.Inpractice,designersusetheASMDcharttowriteVerilogmodelsofthecontrollersandthedatapathandthensynthesizeacircuitdirectlyfromtheVerilogdescription.控制單元數(shù)據(jù)路徑輸出數(shù)據(jù)輸入數(shù)據(jù)輸入信號(外部)控制信號狀態(tài)信號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è)計

------------微碼控制器15Spring2016ZDMC–Lec.#118.4微程序(碼)控制器微程序控制的基本思想仿照通常的解題程序,把所有控制信號匯集一起編碼,稱為微指令,存放在一個EPROM存儲單元里。系統(tǒng)運行時,一條一條地讀出這些微指令,解碼產(chǎn)生執(zhí)行部件所需的各種控制信號,控制各邏輯部件執(zhí)行規(guī)定的操作。數(shù)據(jù)總線數(shù)據(jù)流通過BUS總線在各執(zhí)行子系統(tǒng)之間進行流動執(zhí)行部件

ALU、寄存器組、存儲器RAM等控制部件

控制器控制部件通過控制線向執(zhí)行部件發(fā)出各種控制命令,我們把這種控制命令稱為微命令,而執(zhí)行部件接受微命令所執(zhí)行的操作叫作微操作?;咀酉到y(tǒng)(補充)基本子系統(tǒng)是指構(gòu)成數(shù)字系統(tǒng)時必不可少的邏輯功能部件。算術(shù)邏輯運算單元ALU、寄存器、RAM、數(shù)據(jù)總線和控制器。算術(shù)邏輯運算單元ALU它是數(shù)字系統(tǒng)中對數(shù)據(jù)進行加工處理的功能部件。ALU的結(jié)構(gòu)(1)最簡單的算術(shù)運算單元--加法器16Spring2016ZDMC–Lec.#11ASC為控制信號;A、B是參加運算的兩個二進制數(shù)(n位);S是求和結(jié)果信號??刂菩盘朅SC=0時,進行加法運算。B數(shù)經(jīng)過變反網(wǎng)絡(luò)后仍保持原數(shù),即X=B。運算結(jié)果為S=A+B。

控制信號ASC=1時,進行減法運算。B數(shù)經(jīng)過變反網(wǎng)絡(luò)后__X=B,S=A+B+1。在這里減法是按2的補碼運算規(guī)則進行的,+1是用ASC=1來體現(xiàn)。此處將減法運算轉(zhuǎn)化為加法運算,簡化了加法器的設(shè)計。算術(shù)運算單元最簡單的算術(shù)運算單元加法器左邊四個輸出信號是運算時提供的幾個結(jié)果狀態(tài)信號,分別需要一個觸發(fā)器進行保存,以便在設(shè)計控制器時做為反饋信號。Over---溢出標志信號,當(dāng)其值為1時,表示運算結(jié)果發(fā)生溢出。Sign---表示運算結(jié)果的符號(正或負)。Carry---表示最高位的進位輸出信號。Zero---當(dāng)加法器的求和結(jié)果S=0時,標志信號Zero=1。(2)算術(shù)邏輯運算單元ALU加法器僅提供加、減、傳送、加1等很少功能,不具備邏輯運算能力。而ALU可以實現(xiàn)多種算術(shù)運算和邏輯運算。17Spring2016ZDMC–Lec.#11M為控制器參數(shù)。根據(jù)M的位數(shù)多少,ALU可設(shè)計成具有各種運算功能。例如芯片AM2901中,M有3位,因而ALU的功能選擇有8種。又如芯片74LS181中,控制參數(shù)有S3、S2、S1、S0、M共5個,因而組合可以實現(xiàn)16種算術(shù)運算和16種邏輯運算。其中加表示算術(shù)加,+表示邏輯加。為了設(shè)計控制器,ALU運算結(jié)果產(chǎn)生的一些特殊狀態(tài)信號需要用一些標志觸發(fā)器保存起來。寄存器堆寄存器的功能加法器和ALU均由門電路組成,它們沒有記憶功能,因此運算的結(jié)果需要寄存器保存起來。而參與運算的兩個數(shù)也要取自寄存器。寄存器是數(shù)字系統(tǒng)中必不可少的邏輯子系統(tǒng)。寄存器的分類數(shù)字系統(tǒng)中使用的寄存器大體有兩類:(1)通用寄存器用來暫存參與ALU運算的數(shù)據(jù)或結(jié)果。通用寄存器的數(shù)目一般是4、8、16、32個,甚至更多。(2)專用寄存器數(shù)字系統(tǒng)中的專用寄存器根據(jù)不同系統(tǒng)而有所不同。例如ALU的狀態(tài)標志信號寄存器、地址寄存器、數(shù)據(jù)緩沖寄存器、指令寄存器、程序計數(shù)器等等。他們用來存放地址信息和控制器的控制信息。18Spring2016ZDMC–Lec.#11雙端輸出寄存器堆(組)的功能框圖。它有一個數(shù)據(jù)輸入端口,兩個數(shù)據(jù)輸出端口,可以同時從寄存器堆中取出A、B兩個數(shù)。寄存器的選擇由A地址或B地址指定。由于地址線是4位,因而有16個通用寄存器。讀出操作:讀數(shù)時,控制信號RD有效,所以由A地址和B地址指定的兩個寄存器的數(shù)據(jù)分別送出到端口A和端口B。寫入操作:先給出B地址,待存入的數(shù)據(jù)放到數(shù)據(jù)輸入端,當(dāng)控制信號WR有效時,數(shù)據(jù)按B地址指定的寄存器編號寫入到該寄存器。雙端口通用寄存器堆雙端口通用寄存器堆的結(jié)構(gòu)非常有用它可以與ALU一起構(gòu)成一個最簡單的運算器。為了時間上進行緩沖,ALU和通用寄存器堆之間加入了兩個鎖存器。19Spring2016ZDMC–Lec.#11存儲器RAM存儲器RAM一個觸發(fā)器存儲一個二進制位(bit)信息;一個寄存器存儲一個字(若干bit)信息;一個寄存器堆也只能存儲有限個字的信息。當(dāng)存儲大量數(shù)據(jù)時,從經(jīng)濟和成本上考慮,只能使用隨機讀寫的RAM存儲器。RAM的邏輯結(jié)構(gòu)圖。其中MAR是地址寄存器,通過地址譯碼器譯碼,可選中相應(yīng)的存儲單元。MDR是數(shù)據(jù)緩沖寄存器,讀出的數(shù)據(jù)或?qū)懭氲臄?shù)據(jù)都由MDR暫存。存儲容量為2m個字(字長n-bit)。RD和WR是RAM的讀、寫操作控制信號。不論是讀操作還是寫操作,首先要通過地址線向MAR送入地址信息。

20Spring2016ZDMC–Lec.#11讀操作:控制信號RD有效,將地址譯碼器選中的存儲單元的內(nèi)容讀出到數(shù)據(jù)緩沖寄存器MDR,然后送到數(shù)據(jù)總線上。寫操作:控制信號WR有效,將寫入的數(shù)據(jù)由數(shù)據(jù)總線送到MDR寄存器,然后寫入存儲矩陣。注意:存儲器的讀寫操作是分時進行的:讀時不寫,寫時不讀。另外同MDR連接的n位數(shù)據(jù)線具有雙向傳送功能。數(shù)據(jù)通路(補充)總線結(jié)構(gòu)在數(shù)字系統(tǒng)中,總線是多個邏輯子系統(tǒng)的聯(lián)系紐帶。所謂總線,就是多個信息源分時傳送數(shù)據(jù)到多個目的地的傳送通路。如果總線的始端和終端是固定不變的,即信息只能從始端向終端傳送,稱為單向總線。如果信息的源端與目的端是相對的,稱為雙向總線,它可以實現(xiàn)信息的雙向傳送21Spring2016ZDMC–Lec.#11總線原理示意圖??偩€始端有A1、A2、A3、A4四個信息來源,經(jīng)總線傳輸后有四個輸出B1、B2、B3、B4。傳送數(shù)據(jù)時,只允許一個數(shù)據(jù)進入總線。換句話說,某一時刻只能傳送A1-A4四個信息源中的一個,這就需要在總線始端對進入總線的信息有選擇地加以控制。同樣,總線終端輸出數(shù)據(jù)要送往何處,也需要有選擇地加以控制。這個任務(wù)由控制器來完成??偩€結(jié)構(gòu)總線的邏輯結(jié)構(gòu)總線結(jié)構(gòu)的邏輯實現(xiàn)可以實現(xiàn)多路選擇器方式、三態(tài)門方式。多路選擇器方式是單向總線。三態(tài)門方式可以組成雙向總線。22Spring2016ZDMC–Lec.#11三態(tài)門構(gòu)成的總線。發(fā)送數(shù)據(jù)的三個寄存器A、B、C通過三態(tài)門與總線BUS相連接;接收數(shù)據(jù)的寄存器D、E、F直接接在BUS上,并用寄存器的時鐘端作為接收控制信號。當(dāng)三態(tài)門的使能控制信號有效時,發(fā)送寄存器的數(shù)據(jù)發(fā)送到BUS上,一旦接收寄存器的接收控制信號有效,便將數(shù)據(jù)打入到某個或幾個寄存器中。當(dāng)三態(tài)門使能控制信號無效時,該三態(tài)門輸出端呈高阻態(tài),相當(dāng)于該三態(tài)門與BUS斷開。三態(tài)門的這種特性,保證了總線上信息的分時傳送。雙向數(shù)據(jù)總線的邏輯結(jié)構(gòu)圖。圖中只畫出總線中的兩位。接收控制信號與發(fā)送控制信號由控制器給出,它們分別加到三態(tài)門的使能端。這兩個控制信號不能同時有效。當(dāng)接收控制信號有效時,左列的三態(tài)門打開,右列的三態(tài)門關(guān)閉,因而數(shù)據(jù)由右面?zhèn)魉偷阶竺?。反之,?dāng)發(fā)送控制信號有效時,右列的三態(tài)門打開,左列的三態(tài)門關(guān)閉,因而數(shù)據(jù)由左面?zhèn)魉偷接颐?。?shù)據(jù)通路什么是數(shù)據(jù)通路數(shù)字系統(tǒng)中,各個子系統(tǒng)通過數(shù)據(jù)總線連接形成的數(shù)據(jù)傳送路徑稱為數(shù)據(jù)通路。數(shù)據(jù)通路的設(shè)計直接影響到控制器的設(shè)計,同時也影響到數(shù)字系統(tǒng)的速度指標和成本。一般來說,處理速度快的數(shù)字系統(tǒng),它的獨立傳送信息的通路較多。但是獨立數(shù)據(jù)傳送通路一旦增加,控制器的設(shè)計也就復(fù)雜了。因此,在滿足速度指標的前提下,為使數(shù)字系統(tǒng)結(jié)構(gòu)盡量簡單,一般小型系統(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個字,雙端口輸出。暫存器A和B:保存通用寄存器組讀出的數(shù)據(jù)或BUS上來的數(shù)據(jù)。算術(shù)邏輯單元ALU:有S3、S2、S1、S0、M五個控制端,以選擇運算類型。寄存器C:保存ALU運算產(chǎn)生的進位信號。RAM隨機讀寫存儲器:讀/寫操作受MRD/MWR控制信號控制。MAR:RAM的專用地址寄存器,寄存器的長度決定RAM的容量。IR:專用寄存器,可存放由RAM讀出的一個特殊數(shù)據(jù)。控制器:用來產(chǎn)生數(shù)據(jù)通路中的所有控制信號,它們與各個子系統(tǒng)上的使能控制信號一一對應(yīng)。BUS:單一數(shù)據(jù)總線,通過三態(tài)門與有關(guān)子系統(tǒng)進行連接。24Spring2016ZDMC–Lec.#11對單總線的系統(tǒng)來說,擴充是非常容易的,只要在BUS上增加子系統(tǒng)即可。例如增加一個寄存器時,可將總線BUS接到寄存器的數(shù)據(jù)輸入端,由接收控制信號將數(shù)據(jù)打入。如果該寄存器的數(shù)據(jù)還需要發(fā)送到BUS時,在寄存器的輸出端加上三態(tài)門即可,或者干脆使用帶三態(tài)門輸出的寄存器。圖中所示的數(shù)據(jù)通路中,兩類信息的表示方式是非常明確的:雙線表示數(shù)據(jù)信息,帶箭頭的單線表示控制信號。所有的控制信號由控制器產(chǎn)生,在它們的協(xié)調(diào)配合下,數(shù)據(jù)流通過BUS總線在各子系統(tǒng)之間進行流動。25Spring2016ZDMC–Lec.#11微程序控制器的基本原理微命令控制部件通過控制線向執(zhí)行部件發(fā)出各種控制命令微操作執(zhí)行部件接受微命令所執(zhí)行的操作反饋信息執(zhí)行部件通過反饋線向控制部件反映當(dāng)前操作的結(jié)果控制部件根據(jù)執(zhí)行部件的“狀態(tài)”標志下達新的微命令基本周期/機器周期

幾個時鐘周期微指令組成一組實現(xiàn)一定操作功能的微命令的組合讀出微碼指令與執(zhí)行這條微碼指令的時間總和一條微指令中包含若干個微命令分頭并行地控制執(zhí)行部件進行相應(yīng)的微操作測試判別信息,實現(xiàn)控制算法流程圖的條件分支下一條微指令的地址

26Spring2016ZDMC–Lec.#11微指令的典型結(jié)構(gòu)長條框內(nèi)的符號×表示一個二進制位(bit)操作控制若干微命令測試判別信息判別字段無效時,下址字段信息

下條微指令的地址判別字段有效時,根據(jù)反饋信息對下址字段信息進行修改,修改后的地址

下條微指令的地址在系統(tǒng)的一個基本狀態(tài)周期(又稱機器周期)中,一組實現(xiàn)一定操作功能的微命令的組合,構(gòu)成一條微指令??刂破魍ㄟ^一條條控制線向執(zhí)行部件發(fā)出各種控制命令,我們把這些控制命令叫做微命令。而執(zhí)行部件接受微命令所執(zhí)行的操作叫做微操作。微指令的結(jié)構(gòu)說明強調(diào)兩點第一,一條微指令的有效持續(xù)時間是系統(tǒng)的一個基本周期,它表示從ROM中讀出微指令與執(zhí)行這條微指令的時間總和。當(dāng)從ROM中讀出下一條微指令后,當(dāng)前的這條微指令即失效。第二,一條微指令中包含若干個微命令,它們分頭并行地控制執(zhí)行部件進行相應(yīng)的微操作。測試判別信息微指令除給出微命令信息外,還應(yīng)給出測試判別信息。一旦出現(xiàn)此信息,執(zhí)行這條微指令時要對系統(tǒng)的有關(guān)標志進行測試,從而實現(xiàn)控制算法流程圖中出現(xiàn)的條件分支。微指令中還包含下一地址字段,該字段將指明ROM中下一條微指令的地址。微指令的典型結(jié)構(gòu)其中微命令字段給出執(zhí)行部件的控制信號:×編碼為1,表示有微命令,×編碼為0表示無微命令。測試判別字段和下一地址字段一起實現(xiàn)順序控制:當(dāng)測試判別字段無效時(×編碼為0),下址字段信息即是下條微指令的地址;當(dāng)判別測試字段有效時(其中一個X編碼為1),根據(jù)執(zhí)行部件反饋線上的標志信息對下址字段信息進行修改,修改好的地址即為下條微指令的地址。27Spring2016ZDMC–Lec.#1128Spring2016ZDMC–Lec.#11微碼程序微程序微程序是由若干條微指令組成的序列。微程序相當(dāng)于前述的流程圖,一條機器指令的功能由若干條微指令組成的序列來解釋和執(zhí)行機器執(zhí)行一條指令的過程執(zhí)行一個相應(yīng)的微程序的過程微程序?qū)嵸|(zhì)上是將控制器的控制算法變成了微程序流程圖一般數(shù)字系統(tǒng)而言,微程序?qū)嵸|(zhì)上就是將控制算法流程圖ASM用EPROM等來實現(xiàn)。微碼程序技術(shù)的革命使大型復(fù)雜數(shù)字系統(tǒng)控制器的設(shè)計發(fā)生了革命性的變化。微程序技術(shù)可代替硬件布線的控制技術(shù)存有控制代碼的EPROM存儲器,取代門電路和觸發(fā)器等組成的硬件數(shù)字電路網(wǎng)絡(luò)通用性29Spring2016ZDMC–Lec.#11微程序控制器的一般結(jié)構(gòu)微程序控制器的結(jié)構(gòu)微程序控制器的結(jié)構(gòu)取決于微碼指令的格式。它由控制存儲器、微地址寄存器、微命令寄存器和地址轉(zhuǎn)移邏輯幾部分組成。控制存儲器ROM中存放微碼程序,也就是全部的微指令。ROM的容量取決于微指令的總數(shù)。微指令寄存器微地址寄存器和微命令寄存器兩者的總長度即為一條微指令的長度二者合在一起稱為微指令寄存器。微命令寄存器暫存由控制存儲器中讀出的當(dāng)前微碼指令的控制信息包括微命令控制字段和測試字段,可由8D寄存器組成。

微地址寄存器存放下一條微指令的(默認臨時)地址地址轉(zhuǎn)移邏輯

組合邏輯電路條件轉(zhuǎn)移:其輸入是當(dāng)前微指令的判別測試字段Pi、執(zhí)行部件反饋的“狀態(tài)條件”及時間因素T4。當(dāng)微程序出現(xiàn)分支時修改微地址寄存器的內(nèi)容,并按修改好的微地址讀出下條微指令。

假如控制器需要128條微指令,則微地址寄存器長度為7位。ROM的字長取決于微指令長度。如果微指令為32位,則ROM的字長就是32位。實際應(yīng)用中ROM可采用EPROM或E2PROM、EAROM,用戶寫入和修改微程序比較方便。微地址寄存器暫存由控制存儲器讀出的當(dāng)前微指令的下址字段信息。它可由帶RD、SD強置端的D觸發(fā)器組成。其中時鐘端和D端配合用做ROM的讀出打入,用SD進行下址修改。30Spring2016ZDMC–Lec.#11控制時序信號一個基本機器周期中的控制時序信號1)用上一周期的T4時間按微地址寄存器內(nèi)容從ROM中讀一條微指令2)經(jīng)過一段時間后被讀出,用當(dāng)前周期的T1時間存入微指令寄存器3)

T2,T3時間用來控制處理、控制執(zhí)行部件進行操作,4)

T4時間修改微地址寄存器中的內(nèi)容,再讀下一條微指令。一個基本機器周期中的控制時序信號。31Spring2016ZDMC–Lec.#11微程序控制器的設(shè)計硬件設(shè)計選取存儲器和寄存器,設(shè)計地址轉(zhuǎn)移邏輯微程序編制

需要確定微程序流程圖,即控制算法流程圖。狀態(tài)化簡和狀態(tài)分配已無關(guān)緊要狀態(tài)最簡勿需過多考慮以微指令結(jié)構(gòu)為基礎(chǔ)可以編制任何所要求的微程序可長可短,靈活自如,且能實現(xiàn)多路并行分支微程序流程圖確定使用微指令格式將微程序轉(zhuǎn)化為二進制代碼微程序控制器的設(shè)計步驟(1)設(shè)計微程序就是確定微程序流程圖,也就是控制算法流程圖。微程序流程圖中的一條微指令,相當(dāng)于ASM流程圖中的一個狀態(tài)。控制存儲器中一個地址轉(zhuǎn)移到下一個地址是隨意的,靈活的。因此增加微指令或減少微指令不必改動硬件。能實現(xiàn)多路并行轉(zhuǎn)移,而不受“狀態(tài)分配”的限制。(2)確定微指令格式微指令格式中的操作控制字段取決于執(zhí)行部件的子系統(tǒng)需要多少微指令。假定采用直接控制方式,執(zhí)行部件需要10個微命令,則操作控制字段需要10位。測試判別字段取決于微程序流程圖中有多少處分支轉(zhuǎn)移。假定有3處分支,則測試判別字段需要3位。下址字段取決于微程序流程圖的規(guī)模。假定微程序共用50條微指令,則下址字段至少需要6位。這是因為ROM地址譯碼時,26=64,6位地址可容納64條微指令。32Spring2016ZDMC–Lec.#11微程序控制器的設(shè)計步驟(2)(3)將微程序編譯成二進制代碼根據(jù)確定的微指令格式,將微程序流程圖中的每一條指令編譯成二進制代碼,這項工作可由人工完成。(4)微程序?qū)懭肟刂拼鎯ζ鲗⒍M制代碼的微程序?qū)懭隕2PROM中。(5)設(shè)計硬件電路硬件電路包括微地址寄存器、微命令寄存器和地址轉(zhuǎn)移邏輯三部分。前兩部分可選用適當(dāng)?shù)臉藴始拇嫫餍酒ㄈ?4LS36、74LS273等)。地址轉(zhuǎn)移邏輯的輸入是測試判斷標志Pi、狀態(tài)條件和時間因素Tj(讀ROM時間),先寫出邏輯表達式,然后用門電路芯片實現(xiàn)。33Spring2016ZDMC–Lec.#1134Spring2016ZDMC–Lec.#11【例8.11】按照圖8.33數(shù)據(jù)通路,設(shè)計微指令格式,確定微程序控制器的基本方案。假定測試判別字段有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ù)傳送路徑獨立傳送信息的通路數(shù)量

性能和復(fù)雜度子系統(tǒng)暫存器A,B16字的通用寄存器組ALU存儲器RAM地址寄存器MAR總線BUS和三態(tài)門數(shù)據(jù)總線37Spring2016ZDMC–Lec.#11數(shù)據(jù)通路分析通用寄存器組雙輸出口運算器BUS寄存器組A輸出總線BUS輸出通過三態(tài)門連接RAM本身帶三態(tài),雙向數(shù)據(jù)信息雙線控制信息帶箭頭單線38Spring2016ZDMC–Lec.#11ALU算術(shù)運算單元74LS181S0,S1,S2,S3功能選擇端和M實現(xiàn)16種邏輯操作和算術(shù)運算加,減,與,或,異或,取反等M工作方式選擇當(dāng)工作方式控制端(M)為低電平時,執(zhí)行算術(shù)運算當(dāng)工作方式控制端(M)為高電平時,執(zhí)行邏輯運算+1進位輸入C進位輸出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微指令格式所有的控制信號均標注在邏輯子系統(tǒng)的側(cè)面,共計有26個因此微命令字段長度為26位加上測試判別字段2位微地址字段4位微指令長度共計32位根據(jù)微指令格式,確定EPROM的容量為16個存儲單元,字長32位。微地址寄存器4位,微命令寄存器28位。41Spring2016ZDMC–Lec.#11【例8.12】數(shù)字比較系統(tǒng)硬件框圖及ASM流程圖如圖8.26所示,請設(shè)計其微程序控制器。解微程序流程圖ASM流程圖硬件框圖ASM流程圖變成微程序流程圖

42Spring2016ZDMC–Lec.#11解(1)確定地址每一個狀態(tài)框變成一條微指令四條微指令,令其地址為0000,0100,0101,1000,它們是任意安排的,用4位二進制碼表示的微地址。按4位地址推算EPROM的存儲容量為24=16個存儲單元。(2)確定微指令格式本系統(tǒng)中的控制信號只有3個(LDRA、LDRB,CAP),所以微命令字段為3位;加上判別測試字段1位;下地址字段4位;故微指令字長度為8位。43Spring2016ZDMC–Lec.#11微指令執(zhí)行(3)確定地址轉(zhuǎn)移邏輯表達式分支轉(zhuǎn)移第4條微指令執(zhí)行后出現(xiàn)判別測試框(第4條微指令)判別測試標志P(1)P(1)=1,根據(jù)轉(zhuǎn)移條件(A>B)來決定下條微指令(A>B)=0,執(zhí)行第2條微指令(微地址0100)(A>B)=1,執(zhí)行第3條微指令(微地址0101)。這兩條微指令地址的差別僅在于最低位上是1還是0因此地址轉(zhuǎn)移邏輯表達式為:其中:A>B是比較器的輸出信號,(A>B)=1表示A數(shù)大于B數(shù),(A>B)=0表示A數(shù)小于等于B數(shù)。用機器周期的T3節(jié)拍修改微地址并讀EPROM,再用下一周期的T1節(jié)拍打入到微指令寄存器中。當(dāng)微程序出現(xiàn)分支時下個微地址的安排要考慮修改的方便性

注,微程序不出現(xiàn)分支時下個微地址,在E2PROM存儲容量的范圍內(nèi)可任意設(shè)計μA3=P1·(A>B)·T344Spring2016ZDMC–Lec.#11(4)硬件電路微地址寄存器采用帶有強置端的雙D觸發(fā)器通過uA3觸發(fā)器SD端置“1”的方法可將其修改為1

其他3個觸發(fā)器不做修改其中LDRB、LDRA是脈沖控制信號(持續(xù)時間T2),CAP是電位控制信號(持續(xù)時間一個機器周期)。45Spring2016ZDMC–Lec.#11(5)微程序當(dāng)前微地址(存儲器位置)微指令二進制代碼微命令判別下地址000010000100…xxxxxxxx010001000101010110001000…xxxxxxxx100000110100控制存儲器E2PROM中存放由4條微指令組成的微程序,它們是按微指令格式轉(zhuǎn)換的二進制代碼表8.7微程序代碼不能

100000100101在微程序無分支的情況下,下地址可按EPROM容量隨意填寫,但必須限制在微地址寄存器指定的范圍內(nèi),且不允許兩條微指令使用同一個微地址?!纠?.13】46Spring2016ZDMC–Lec.#11采用例8.11的數(shù)據(jù)通路和圖8.32所示的微指令格式,編制如下四種基本操作的微程序流程圖,并完成微地址轉(zhuǎn)移邏輯的設(shè)計。47Spring2016ZDMC–Lec.#11【例8.13】采用例8.11的數(shù)據(jù)通路和圖8.32所示的微指令格式,編制如下四種基本操作的微程序流程圖,并完成微地址轉(zhuǎn)移邏輯的設(shè)計。

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個狀態(tài)的編碼(00,01,10,11)來表示,該編碼值由IR0和IR1兩個觸發(fā)器組成的計數(shù)器提供。對應(yīng)計數(shù)器的一種狀態(tài),則執(zhí)行相應(yīng)的一種基本操作;(2)每當(dāng)一種基本操作結(jié)束時,計數(shù)器進行加數(shù)而改變狀態(tài)。但操作開始前計數(shù)器的初始狀態(tài)是隨機的,這意味著四種操作執(zhí)行的順序可認為是隨意的,但時間上必須是連續(xù)的;(3)通用寄存器的選擇也是隨意的;(4)向RAM中取數(shù)、存數(shù)的地址均由暫存器B給出。48Spring2016ZDMC–Lec.#11解分析:(1)微程序設(shè)計微程序流程圖1)對應(yīng)四種基本操作,我們需要設(shè)計4個微程序2)具體執(zhí)行某種操作前,微程序流程圖的分支,由P1測試來完成,測試的狀態(tài)條件是IR0,IR1的內(nèi)容3)四個基本操作執(zhí)行過程中不需要再進行測試,這四個微程序不再出現(xiàn)分支情況。每一個方框表示一條微指令右上角的二進制碼表示:當(dāng)前微指令的地址;右下角的數(shù)字表示:下條微指令的地址(在微程序無分支情況下)或待修改的地址(在微程序有分支情況下)。最上面的第一條入口地址為0000,這通過系統(tǒng)啟動時將微地址寄存器清零來給出。第一條微指令的下地址1000是一個待修改的地址,在P1測試時,根據(jù)IR0、IR1的狀態(tài)來修改微地址寄存器的最后兩位觸發(fā)器,從而得出1000、1001、1010、1011四個微地址,實現(xiàn)了微程序的四路并行轉(zhuǎn)移。最下面一條微指令是一條公用微指令,用來進行計數(shù)器修改加1。由于它的下地址是0000,因而又返回到第一條微指令,從而實現(xiàn)了微程序的連續(xù)運行。49Spring2016ZDMC–Lec.#11分析:(2)微地址轉(zhuǎn)移邏輯設(shè)計每條微指令的框內(nèi)表示數(shù)據(jù)通路的選擇操作是用微指令的操作控制字段發(fā)出的微命令來實現(xiàn)的。從時間上講,每條微指令的持續(xù)時間均為一個機器周期(本例中由T1、T2、T3、T4四個節(jié)拍時間組成,4個時鐘周期組成一個機器周期)。每一條微指令只完成一個機器周期時間所允許的微操作。而幾條微指令組合在一起,可完成更多的操作??赏瓿烧n題任務(wù)所要求的基本操作。微地址轉(zhuǎn)移邏輯用兩個三輸入與非門實現(xiàn)其中P1為微指令的測試判別標志,IR0,IR1為計數(shù)器二觸發(fā)器的狀態(tài)值,T4表示時鐘周期時間。

表達式說明,當(dāng)P1測試時,在T4時刻按計數(shù)器IR0、IR1的內(nèi)容修改μAR3和μAR4,并按修改了的微地址寄存器內(nèi)容讀出下條微指令。

50Spring2016ZDMC–Lec.#11(3)微程序編譯成二進制代碼當(dāng)前微地址八進制表示的微命令P2P1下一微地址000000000000001100*0*000100000026000011000103100004400001100011001130000000100010037400001000011001012610010400001100110000000002000000…………1000324000004000001100100171640000001010103240000040000111011001737000000101不允許兩條微指令使用同一個微地址。51Spring2016ZDMC–Lec.#11數(shù)據(jù)通路和控制器52Spring2016ZDMC–Lec.#11小結(jié)微程序控制的主要優(yōu)點是規(guī)范和靈活易于實現(xiàn)多路并行分支易于系統(tǒng)擴展系統(tǒng)越復(fù)雜,越宜適用微程序控制方法進行設(shè)計只不過是微指令的重復(fù)應(yīng)用EPROM只不過是增加了一些存儲單元而微指令寄存器并不改變?nèi)秉c:對一些非常簡單的系統(tǒng)來說采用微程序控制方法從成本上來講不一定合算。從速度上講微程序控制器的工作速度不如硬布線邏輯控制器快。53Spring2016ZDMC–Lec.#11課堂測驗如何計量寄存器中1的個數(shù),采用數(shù)據(jù)選擇器法實現(xiàn)控制器。畫出數(shù)字系統(tǒng)電路框圖和ASM圖。設(shè)計的數(shù)字系統(tǒng)包括兩個寄存器R1和R2,以及一個觸發(fā)器E。系統(tǒng)對1的個數(shù)進行計量,將計數(shù)值預(yù)置到寄存器R1,設(shè)置寄存器R2等于這個數(shù)值??刂破鞯耐獠枯斎胄盘朣tart啟動狀態(tài)機的操作,Ready為狀態(tài)機的狀態(tài)指示。控制器采用異步復(fù)位,時鐘正邊沿觸發(fā)。控制器還接收兩個從數(shù)據(jù)路徑來的狀態(tài)輸入E和Zero。這些信號表明最高有效位的寄存器數(shù)據(jù)是0。E是觸發(fā)器輸出,Zero是檢測寄存器R1是否全0的結(jié)果輸出。當(dāng)R1等于0(即R1中不包含1)時,輸出Zero=1??刂茊卧獢?shù)據(jù)路徑輸出數(shù)據(jù)輸入數(shù)據(jù)輸入信號(外部)控制信號狀態(tài)信號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)查閱:國際電路公司的8051,PIC,AVR單片機,ARM,MIPS,DSP等微控制器芯片的型號、類型、速度……upd78F9202,STM8s003,PIC16F886,Mage48圖書館資源:電子器件天地,軟件82)習(xí)題:/補充講義P438.11,8.12,8.14;3)閱讀:補充講義CH.8--9《數(shù)字系統(tǒng)設(shè)計與VerilogHDL》書書CH.11閱讀講義p.37-5168Spring2016ZDMC–Lec.#11課后作業(yè)4)ProjectProject1(必做):將講義P31頁圖8.33的框圖用具體型號的數(shù)字集成電路設(shè)計實現(xiàn)為具體電路圖。(5月31日前,交報告和電路圖)Project2(選做平時成績加分):用具體集成電路設(shè)計并硬件實現(xiàn)一個4bit簡單CPU實物。(期末停課前完成,要有報告)69Spring2016ZDMC–Lec.#11

講義第八章微控制器設(shè)計

--------------流水結(jié)構(gòu)與系統(tǒng)架構(gòu)70Spring2016ZDMC–Lec.#118.5算法與流水結(jié)構(gòu)數(shù)字系統(tǒng)設(shè)計確定怎樣執(zhí)行數(shù)據(jù)處理提供相應(yīng)的控制信號并用數(shù)字功能部件構(gòu)造成電路“算法”指一個問題的求解過程通過有限個定義的程序性步驟來說明算法結(jié)構(gòu)

算法由許多子運算組成各子運算的執(zhí)行方法子運算間的執(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í)行算法的整個過程中同一時間只進行一種或一組相關(guān)的子運算1)每時間段中僅有一個子運算操作各子運算之間逐個按規(guī)定的次序進行

73Spring2016ZDMC–Lec.#11順序算法結(jié)構(gòu)2)在同一時間里,有時有一組子運算操作同組各操作間相互關(guān)聯(lián),它們完成后再進行新的一組操作

打包74Spring2016ZDMC–Lec.#11順序算法結(jié)構(gòu)順序算法輸入數(shù)據(jù)D完成算法流程需L個時間段每段的平均時間為△t完成運算所需時間

數(shù)字系統(tǒng)中待處理的數(shù)據(jù)是連續(xù)輸入的數(shù)據(jù)流數(shù)據(jù)流中每個元素均完成同樣的運算前一數(shù)據(jù)元素計算完成后,再進行后一數(shù)據(jù)元素的計算處理若含有n個元素的數(shù)據(jù)流輸入時總的運算時間為

75Spring2016ZDMC–Lec.#117.5.2并行算法結(jié)構(gòu)并行算法在同一時間段中,有多條路徑在同時進行運算這些同時執(zhí)行的子運算操作間是相互獨立的

圖中OP2、OP3、OP4同時進行,三種操作硬件互相獨立OP5和OP6、OP10和OP11為順序運算的一組相關(guān)操作76Spring2016ZDMC–Lec.#11并行算法結(jié)構(gòu)并行運算優(yōu)點是速度快缺點是增加硬件結(jié)構(gòu)成本并行算法運算時間若待處理數(shù)據(jù)是單元素Di(二進制若干位)完成運算的時間仍滿足其中L‘是并行算法流程經(jīng)過的運算段數(shù)L‘比同一系統(tǒng)的順序算法流程的運算段數(shù)L要小得多因此提高了速度數(shù)字系統(tǒng)中總運算時間若含有n個元素的數(shù)據(jù)流輸入時并行結(jié)構(gòu)算法總的運算時間為77Spring2016ZDMC–Lec.#117.5.3流水線操作算法結(jié)構(gòu)流水線操作算法結(jié)構(gòu)是針對連續(xù)輸入數(shù)據(jù)流的系統(tǒng)把整個運算過程分解為若干個段系統(tǒng)在同一時間可對先后輸入的數(shù)據(jù)流元素進行不同段的同時運算條件有多個操作硬件(不同的)交錯:每一時刻一個硬件不能有2個運算,78Spring2016ZDMC–Lec.#11流水線結(jié)構(gòu)特點(1)流水線中必須是連續(xù)運算只有連續(xù)不斷地運算才能充分發(fā)揮流水線的效率(2)一個運算分解為幾個有聯(lián)系的子運算每個子運算由一個專門的功能部件來執(zhí)行(3)每一個功能部件后都要有一個緩沖寄存器用于保存本段的執(zhí)行結(jié)果(4)流水線中各段的時間應(yīng)盡量相等否則將引起“堵塞”或“斷流”等現(xiàn)象(5)流水線需要有“裝入時間”和“排空時間”只有流水線完全充滿時,整個流水線的效率才能得到充分發(fā)揮79Spring2016ZDMC–Lec.#11流水線的效率對于有L段運算的流水線結(jié)構(gòu),可以同時對L個數(shù)據(jù)元素進行不同段的運算,從而大大提高了運算速度。80Spring2016ZDMC–Lec.#11【例8.14】試用順序操作算法和流水操作算法實現(xiàn)運算,并比較運算速度。其中A、B、C均為數(shù)據(jù)流,長度為m,且均是n位。解

根據(jù)題意,給定的數(shù)據(jù)流共有m個元素

…,其中

81Spring2016ZDMC–Lec.#11【例8.14】算法流程圖系統(tǒng)運算分解“相乘”、“相加”、“開平方”三個運算段82Spring2016ZDMC–Lec.#11【例8.14】

(1)順序算法結(jié)構(gòu)在△t1、△t2和△t3的三段時間中分別完成、以及運算。設(shè)△t1=△t2=△t3=△t,順序算法結(jié)構(gòu)的時間關(guān)系圖運算狀態(tài)第i個數(shù)據(jù)元素在完成前兩步運算之后,只有求平方根電路在工作,而乘法和加法電路均處在閑置的等待狀態(tài),待求平方根運算完成后再接受數(shù)據(jù)流中的(i+1)個數(shù)據(jù)元素完成整個運算的時間為83Spring2016ZDMC–Lec.#11【例8.14】

(2)流水算法結(jié)構(gòu)提高運算速度,又不增加運算器的硬件成本改用流水線操作算法結(jié)構(gòu)完成全部數(shù)據(jù)計算所需要的時間為

84Spring2016ZDMC–Le

溫馨提示

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

評論

0/150

提交評論