版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第七章微序列控制單元設計
7.1微序列控制器設計基礎(chǔ)7.2非常簡單微序列控制器的設計和實現(xiàn)7.3相對簡單微序列控制器的設計和實現(xiàn)7.4減少微指令數(shù)7.5微程序控制和硬布線控制的比較7.6實例:一個(大部分是)微代碼的CPU
奔騰微處理器微序列控制器:把控制信號存儲在一個查找表ROM,即微代碼存儲器中。按照正確的次序訪問ROM中的內(nèi)容,查找表ROM就可以以適當?shù)捻樞虬l(fā)出控制信號,從而實現(xiàn)處理器指令集中的指令。7.1.1微序列控制器的操作1.典型微序列控制器的組成
典型微序列控制器的組成如圖。
▲寄存器存儲的值與CPU狀態(tài)圖中的一個狀態(tài)相對應,且當作地址輸入到微代碼存儲器中?!鎯ζ鞯妮敵鍪且粭l微指令,即那個地址對應的存儲單元內(nèi)容。所有微指令集中組成CPU的微代碼或微程序。
▲下址產(chǎn)生模塊產(chǎn)生所有可能的下一地址或下址,然后從中選擇一個正確的下址送入寄存器中。7.1微序列控制器設計基礎(chǔ)典型微序列控制器的組成2.微指令的組成微指令由幾個域組成,其bit位可分為兩組。
◆
微操作(微序列控制器的微序列部分)這些信號從微序列控制器輸出到CPU的其他部分,它們或者輸入到組合邏輯以生成CPU
的控制信號,或者直接產(chǎn)生控制信號。
◆下一個地址(微序列控制器的序列控制部分)用來產(chǎn)生存儲到寄存器中的下一個地址,這些位連同指令的操作碼和標志值一起輸入到組合邏輯以產(chǎn)生下一條微指令的地址。3.下址的產(chǎn)生四種常用方法:
◆當前地址加1:微代碼存儲器中的下一地址,即當前地址加1
。微代碼程序在微代碼存儲器中順序存放。
(提高可讀性、微程序易于調(diào)試)
◆
絕對地址:由微代碼存儲器提供?!粲成溥壿?/p>
每個微序列控制器必須能夠訪問正確的執(zhí)行周期,這一功能可用映射邏輯來實現(xiàn)?!炎x取指令的操作碼輸入到一個映射硬件,此硬件將該操作碼轉(zhuǎn)換或映射成該指令執(zhí)行周期的第一條微指令所在的地址;▲把這一地址裝載到寄存器,微序列控制器就能轉(zhuǎn)入到正確的執(zhí)行過程。
在取指令周期的末端使用一次?!粑⒆映绦?/p>
子程序入口地址:由微代碼存儲器給出絕對地址。
返回地址(當前地址加1):存儲在微子程序寄存器或硬件堆棧中,此地址用于從微子程序中返回。7.1.2微指令的格式
1.典型的微指令格式
選擇域:指明下一條微指令地址的來源。
地址域:指明一個絕對地址。
微操作域:一個或多個。
2.說明微操作的三種主要方法◆水平微代碼
微指令太長,大部分微操作位不是有效的。
列出CPU所要執(zhí)行的每一個微操作將微指令微操作域中的一位分配給每個微操作例如:一個CPU需要執(zhí)行50個微操作,它的每一條微指令的微操作域?qū)⒄加?0位。
例如:
16個微操作——四位二進制來編碼(0000~1111)微指令位數(shù)少,但需要譯碼器?!艨刂菩盘柕闹苯由晌⒋a將微操作組合在一起,不同的是,它把控制信號值直接存儲在微指令中。
代碼的可讀性差,調(diào)試困難。◆垂直微代碼所有微操作組合成域,域中的每個微操作被分配一個唯一的編碼值。7.2.1基本布局
1.非常簡單微序列控制器的基本結(jié)構(gòu)7.2非常簡單微序列控制器的設計和實現(xiàn)
采用微序列控制器重新設計第六章所討論的非常簡單CPU。指令集、有限狀態(tài)機、數(shù)據(jù)通路和ALU單元都是相同的,CPU內(nèi)部的數(shù)據(jù)流也沒有變化,只有控制信號的產(chǎn)生方法有所改變。2.只用到兩種可能的下址方式為什么可以這樣做?考慮第六章所示的該CPU的狀態(tài)圖。
◆取指令周期的最后一個狀態(tài)FETCH3可以轉(zhuǎn)到四個執(zhí)行周期中的一個,這必須通過映射輸入來實現(xiàn)?!羰S嗟拿恳粻顟B(tài)都必須轉(zhuǎn)到一個具體的次態(tài),可以通過絕對跳轉(zhuǎn)來實現(xiàn)。
操作碼映射絕對跳轉(zhuǎn)必須確定CPU的幾件事情:從微代碼存儲器輸出的絕對地址寬度有幾位?
◆
CPU的狀態(tài)圖中共有九種狀態(tài),每種狀態(tài)代表一條微指令,從中選擇的話最少需要4位絕地地址。既然映射硬件也生成同樣寬度的地址,那么輸出的地址就是4位寬度。
◆
多路選擇器輸出到寄存器的輸入、以及寄存器輸出到微代碼存儲器的輸入,也都是4位寬度。
7.2.2生成正確序列并設計映射邏輯設計控制有限狀態(tài)機狀態(tài)轉(zhuǎn)換的微代碼。
一、給有限狀態(tài)機的每種狀態(tài)分配一個微代碼地址
著重考慮:每一執(zhí)行周期的第一個狀態(tài)的地址分配(它決定了實現(xiàn)映射功能的邏輯)
1.映射函數(shù)與映射邏輯◆映射函數(shù):1IR[1..0]0
狀態(tài)ADD1、AND1、JMP1和INC1→1000、1010、1100和1110
(即8,10,12和14)◆映射邏輯2.非常簡單微序列控制器的狀態(tài)地址表二、生成正確的微代碼序列為了無條件轉(zhuǎn)移到一種具體的狀態(tài),微序列控制器通過地址域和選擇域來提供狀態(tài)的地址。例如:FETCH1→FETCH2
0號單元:SEL=0ADDR=0001除了FETCH3,狀態(tài)圖中的每一種狀態(tài)都可以這么設置。
0號單元對應于狀態(tài)FETCH1
SEL=0使微序列控制器從地址域得到它的下一地址把地址域置為0001,使它轉(zhuǎn)到狀態(tài)FETCH2所對應的單元。FETCH3必須映射到正確的執(zhí)行周期,所以要求SEL=1,表示采用映射地址。7.2.3用水平微代碼生成微操作
1.非常簡單CPU的微操作及它們的助記符九個微操作——9位來表示(每個微操作1位)1——微操作發(fā)生0——不發(fā)生2.非常簡單微序列控制器初步的水平微代碼3.非常簡單微序列控制器優(yōu)化后的水平微代碼優(yōu)化微代碼?!粼谒械臓顟B(tài)中,ARDR和IRDR的值是相同的。用一個輸出AIDR來驅(qū)動這兩個微操作。◆
AIDR組合了兩個微操作AR←DR[5..0]和
IR←DR[7..6]。4.產(chǎn)生所需的控制信號
7.2.4用垂直微代碼生成微操作一、從垂直微代碼中生成微操作的一般情況在垂直微代碼中,所有的微操作被分組到不同的域中,使得任何狀態(tài)一個域中最多只有一種微操作是有效的,然后域中的每個微操作被賦予一個唯一的域值。
例如:8種不同的微操作——3位二進制(從000到111之間的任何一個值)微操作域位從微代碼存儲器輸出到一個譯碼器,譯碼器的輸出就是在水平微代碼中直接產(chǎn)生的微操作。二、為非常簡單CPU設計垂直微代碼任務:給各種微操作分配不同的域。◆指導性原則
1.對于同一狀態(tài)下發(fā)生的兩個不同的微操作,將它們分配到不同的域中。每個域在一個周期中只能輸出唯一一個微操作的值,如果兩個微操作要同時出現(xiàn),則它們不可能在同一個域中。
2.必要的話在每個域中包括一個NOP操作。
3.分配剩下的微操作以便充分地利用微操作的域位。
4.把修改相同的寄存器的微操作組合在同一個域中。◆步驟
1.檢查同時進行的微操作
▲
DRM和PCIN都在FETCH2狀態(tài)下發(fā)生,那么這兩種微操作必須被分配到不同的域中。則該CPU的微操作至少需要兩個域,我們分別把它標記為M1和M2,包括
NOP操作在內(nèi)每個域的微操作如下:
M1
M2
NOPNOPDRMPCIN▲
PCIN和PCDR都能修改PC值,所以我們現(xiàn)在把PCDR也加到M2中?!咽O碌奈⒉僮魅我夥峙浣o這兩個域,但要注意把那些改變同一個寄存器值的微操作放到同一個域中?!a(chǎn)生如下的分配M1M2
NOPNOPDRMPCINACINPCDRPLUSARPCANDAIDR2.每個域有五種微操作,因此每個域需要3位,一共6位。3.對這種分配進行一些調(diào)整,減少總的位數(shù)?!鴮IDR從M2移到M1。這樣,M2的微操作數(shù)從5
變到4,而M1的從5變到6。這時,M1仍需要3位,但是M2現(xiàn)在只需要2位,微代碼的寬度就減少了1
位?!袮RPC和PCDR都從M2移到M1,這樣一來M1
就有8種微操作,需要3位;而M2只有兩種微操作,需要1位。對這種配置來說,總共4位,可能是最少的了。三、生成該CPU的最終微代碼四、把這些位值轉(zhuǎn)換為所代表的微操作
M1:把這個域輸入到一個3-8譯碼器中
例如:輸出2→微操作ARPC
M2:只有1位,不需要用譯碼器,直接驅(qū)動PCIN。實踐視角:毫微指令毫微存儲器與毫微指令
用毫微存儲器可以減少微序列控制器中存儲器的總的大小。如果10種不同的微指令有完全相同的微操作,那么所有這些微指令可以指向毫微存儲器的同一個單元。例如:一個有128條微指令和32個不同微操作的微序列控制器?!轿⒋a的微序列控制器:128*32=4,096位存儲器
假設:這128條微指令中只有16種不同的微操作組合,在一個16*32的毫微存儲器中存儲這16種模式。每條微指令需要一個4位的域來指向毫微存儲器中的一個正確的模式。▲毫微存儲器:16*32=512位▲微代碼存儲器:額外的128*4=512位的指針
共512位+512位=1,024位7.2.5從微代碼直接產(chǎn)生控制信號
1.直接輸出控制信號微序列控制器為每個控制信號保留一位,以代替水平微代碼設計中的微操作和垂直微代碼設計中的
M1和M2。對微代碼存儲器的每個字來說,如果信號有效,則相應的控制位置1,否則置0。例如,
FETCH2:DR←M和PC←PC+1▲DR←M
▲PC←PC+1:使PCINC信號有效?!⒅噶畹钠渌盘栔?。
使READ信號有效以便從存儲器里輸出數(shù)據(jù)使MEMBUS信號有效使此數(shù)據(jù)輸入到內(nèi)部系統(tǒng)總線上使DRLOAD信號有效以便把數(shù)據(jù)從總線上裝載到DR中2.非常簡單微序列控制器直接產(chǎn)生控制信號的微代碼3.優(yōu)化直接生成控制信號的微操作
DRLOAD、MEMBUS和READ信號總有相同的值,把這些信號組合起來。用1位(DMR)驅(qū)動這3個信號。直接產(chǎn)生控制信號與前兩種方法相比:優(yōu)點:不需要額外的硬件將微代碼存儲器的輸出轉(zhuǎn)換成控制信號缺點:可讀性差,難于調(diào)試。
7.3.1修改狀態(tài)圖
考慮:條件跳轉(zhuǎn)的取指令周期末尾
▲設計兩種新的狀態(tài):JMPZ1和JPNZ1
▲
使FETCH3映射到這兩個狀態(tài)上。
▲這兩種狀態(tài)再依據(jù)Z的值轉(zhuǎn)移到正確的流程上。7.3相對簡單微序列控制器的設計和實現(xiàn)
設計一個用于相對簡單CPU的微序列控制單元。類似非常簡單CPU,這一設計用到的指令集、數(shù)據(jù)通道、以及ALU都與硬布線控制設計中的相同。7.3.2設計順序硬件和微代碼
1.增加完成條件分支的能力新增加的兩個狀態(tài)JMPZ1和JPNZ1能根據(jù)Z的值正確轉(zhuǎn)移到兩個下一地址之一:
條件滿足:轉(zhuǎn)移到ADDR域所指的地址條件不滿足:轉(zhuǎn)移到微代碼存儲器的下一地址(當前地址加1)2.微序列控制器的基本結(jié)構(gòu)有三種可能的下一地址。用一個兩輸入控制端的多路選擇器作出選擇。3.映射函數(shù)和映射邏輯狀態(tài)圖有39種狀態(tài),要一個6位的地址。映射函數(shù):IR[3..0]00相對簡單微序列控制器的狀態(tài)分配4.下址的產(chǎn)生狀態(tài)JMPZ1和JPNZ1各自都用到兩個下址之一。分兩步實現(xiàn):◆用一個多路選擇器選擇所期望的條件
▲
Z和Z’可能在JMPZ1和JPNZ1狀態(tài)下用到,也可以把一個硬布線的1作為無條件跳轉(zhuǎn)的輸入,多路選擇器選擇其中的一個值作為條件值輸出?!⒋a存儲器提供條件選擇信號用來決定使用哪個條件。
條件值◆用組合邏輯將這些條件值,連同微序列控制器提供的一種分支類型,轉(zhuǎn)換成恰當?shù)倪x擇信號以選擇下一地址的正確源?!o定分支類型分支類型的形式:
IF(condition)THENNextAddress=SOURCE1ELSENextAddress=SOURCE2
或者是
REGARDLESSOFconditionNextAddress=SOURCE確定準確的分支類型:映射和無條件轉(zhuǎn)移的處理很容易,有條件的跳轉(zhuǎn)就取決于微代碼的布局。
JMPZ1和JPNZ1會轉(zhuǎn)移到兩個地址之一:
一個分支地址、當前地址加1一種分支類型:
IF(condition)THENNextAddress=ADDRELSENextAddress=CurrentAddress+1分支類型
▲根據(jù)分支類型和條件值,為下址多路選擇器設計出產(chǎn)生選擇信號的邏輯。表中列出了期望的值,它導致:
S1=BT,S0=BT’∧(條件值)5.實現(xiàn)微代碼的順序部分
7.3.3用水平微代碼完成設計一、形成微操作表考察每種狀態(tài),列出微操作。把22種微操作合并為微代碼的幾個域,然后為這些域賦值。相對簡單微序列控制器的微操作二、生成CPU的控制信號三、相對簡單CPU的部分控制信號值
介紹兩種利用冗余來減少控制單元所需的微指令數(shù)的方法。7.4減少微指令數(shù)1.
用微子程序把重復的微操作合并成一個微指令塊,這個微指令塊可供兩個或更多個執(zhí)行周期訪問。2.
用微代碼的跳轉(zhuǎn)來訪問可供兩個或多個周期共享的微指令。7.4.1微子程序微子程序
:微碼中供多個周期執(zhí)行的一組動作序列。
優(yōu)點:減少微代碼所需的存儲單元數(shù)量。
缺點:微序列控制器的硬件必須增強以實現(xiàn)微子程序的調(diào)用和返回。為了說明微子程序是怎樣工作的,我們修改相對簡單CPU的設計。
1.把一些狀態(tài)用微子程序?qū)崿F(xiàn)考慮:狀態(tài)LDAC1、LDAC2、LDAC3分別和狀態(tài)STAC1、
STAC2、STAC3執(zhí)行相同的微操作。
(從存儲器獲得一個16位的地址,并把它存入AR中)◆
修改最初的設計,把這些狀態(tài)用一個微子程序?qū)崿F(xiàn)。
增加兩個啞狀態(tài):LDAC0和STAC0▲當LDAC或STAC指令譯碼時,F(xiàn)ETCH3映射到這兩個狀態(tài)中的一個?!鴥蓚€啞狀態(tài)不執(zhí)行微操作,只是去調(diào)用微子程序?!斖瓿蓵r,微子程序返回到下一地址。(包含LDAC4或STAC4的地址)◆用微子程序修改LDAC和STAC指令的執(zhí)行周期◆相對簡單CPU修改后的狀態(tài)分配
SUB1、SUB2、SUB3分別與LDAC1(STAC1)、LDAC2(STAC2)、LDAC3(STAC3)執(zhí)行同樣的微操作。
2.修改微序列控制器微子程序的地址由微代碼存儲器的地址域ADDR輸出提供。微序列控制器必須將返回地址存儲起來,一旦微子程序結(jié)束,它才能繼續(xù)執(zhí)行。進行如下修改:◆增加一個微子程序寄存器以保存返回地址(當前地址加1)◆修改下一地址生成硬件,把微子程序寄存器包括進去,作為產(chǎn)生下一地址的一個可能的源。◆修改下一地址多路選擇器的選擇邏輯,使之能夠考慮可能的返回地址?!舯仨殧U充分支轉(zhuǎn)移類型的列表,使之包括微子程序調(diào)用和返回的類型。這個邏輯也必須產(chǎn)生一個控制微子程序寄存器的裝載信號?!舯仨毿薷奈⒋a,使之能夠正確的訪問微子程序。修改后的微序列控制器硬件3.修改分支轉(zhuǎn)移類型修改后有四種分支轉(zhuǎn)移類型:
條件轉(zhuǎn)移無條件映射微子程序調(diào)用微子程序返回◆把BT擴充為兩位,以便于在四種類型中進行選擇。
相對簡單微序列控制器修改后的分支類型
◆產(chǎn)生下一地址多路選擇器的控制信號S1和S0以及微子程序寄存器的裝載信號L:
S1=BT0S2=BT1∨(BT0’∧條件值)L=BT1∧BT0’修改后的分支邏輯4.修改執(zhí)行周期微代碼相對簡單微序列控制器修改后的微指令7.4.2微代碼跳轉(zhuǎn)
1.修改狀態(tài)圖無條件轉(zhuǎn)移和條件轉(zhuǎn)移指令有幾個狀態(tài)執(zhí)行同樣的微操作。修改狀態(tài)圖使這些指令可以直接訪問相同的狀態(tài)。一個狀態(tài)集將執(zhí)行跳轉(zhuǎn),而另一個狀態(tài)集將處理不發(fā)生跳轉(zhuǎn)的條件轉(zhuǎn)移,于是這些周期將會轉(zhuǎn)移到正確的狀態(tài)。JUMP、JMPZ和JPNZ指令修改后的狀態(tài)圖2.相對簡單微序列控制器進一步修改后的微代碼
7.5.1指令集的復雜性
1.隨著指令條數(shù)的增加,產(chǎn)生控制信號的硬件復雜性也隨之增加。例如:越來越多的指令會導致越來越多的發(fā)出累加器裝載信號的微操作,于是就增加了產(chǎn)生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中考物理復習主題單元7第17課時功、功率課件
- 冀少版八年級生物上冊第四單元第三節(jié)先天性行為和學習行為課件
- 《兩個好朋友》教案
- 港口維修土石方施工合同
- 產(chǎn)權(quán)式酒店交易樣本
- 六年級信息技術(shù)上冊教案
- 公共服務設施資金監(jiān)管
- 文化藝術(shù)品合格證管理辦法
- 農(nóng)產(chǎn)品競拍活動拍賣師協(xié)議
- 文化產(chǎn)品運輸協(xié)議
- 牦牛主要疾病的防控進展及發(fā)展趨勢講義課件
- 高考語文 如何讀懂詩歌 課件(32張PPT)
- 中壓交聯(lián)電纜電纜正、負和零序計算
- 3C戰(zhàn)略三角模型
- 民間藝術(shù)團管理規(guī)章制度
- 高標準農(nóng)田建設示范工程質(zhì)量管理體系與措施
- 學生頂崗實習安全教育課件
- 公司組織架構(gòu)圖模板課件
- 遼寧省葫蘆島市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- 百合干(食品安全企業(yè)標準)
- 咨詢服務合同之補充協(xié)議
評論
0/150
提交評論