計算機組成原理CPU設(shè)計_第1頁
計算機組成原理CPU設(shè)計_第2頁
計算機組成原理CPU設(shè)計_第3頁
計算機組成原理CPU設(shè)計_第4頁
計算機組成原理CPU設(shè)計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1CPU的用途字長:8位D70尋址范圍:64byte,2的6次方=64,A502確定ISA(包括程序員可訪問的寄存器)1)程序員可訪問的寄存器AC8位累加器CPU的指令集(共4條)指令操作碼操作COM00XXXXXXAC-AC'取反)JREL01XXXXXXPCPC+00AAAAAAOR10XXXXXXACACVM00AAAAAASUB111AAAAAAACACM00AAAAAA12)其他寄存器AR地址寄存器6位由A50向存貯提供地址PC程廿f嗷器6位指向卜一條指令的地址DR數(shù)據(jù)寄存器8位通過D70從存貯器接收指令和數(shù)據(jù)IR指令寄存器2位存放從存貯器中取回的指令的操作碼部分3CPU設(shè)計

2、狀態(tài)圖為了確定CPU的狀態(tài)圖,對每條指令作以下分析1)從存貯器中取指令(所有指令均相同)原理:在CPU能執(zhí)行指令之前,它必須從存貯器中取出,CPU通過執(zhí)行如下的操作序列完成這個任務(wù)A)選擇存貯單元由A50確定B)對工A50譯碼,延遲,并向存貯器發(fā)一個信號使存貯器將此指令輸出到它的輸出引腳。這些引腳與CPU的D70相連。CPU從這些引腳讀入數(shù)據(jù)。具體操作:(分為三個狀態(tài))A)要取的指令的地址存放在程序計數(shù)器(PC)中。第一步就是把PC的內(nèi)容拷貝到AR中。FETCH1:ARPCB)CPU必須從存貯器中讀取指令,為此CPU必須發(fā)一個READ信號到器的RD(RDRAM,相對于OEROM)端上使存貯器將

3、數(shù)據(jù)發(fā)送到D70上,存入CPU的DR寄存器中。同時實現(xiàn)PC-PC+1,為取下一條指令作準備。FETCH2:DRM,PCPC+1C)作為取指令的一部分,CPU還必須完成兩件事。DR的高2位拷貝到IR,目的是確定指令的功能DR的低6位拷貝到AR,目的:a.對于ORT和SUB1指令這6位包含了指令的一個操作數(shù)的存貯器地址(一個數(shù)已經(jīng)在AC)b.對于COM和JREL,它們不需要再次訪問存貯器,一旦它們返回到FETCH1周期,F(xiàn)ETCH1將把PC的值裝到AR,覆蓋無用的值。AR DR5 0FETCH3:IRDR7,6,取指令周期的狀態(tài)圖2)指令譯碼(每條指令的操作碼都是唯一的)本CPU有四條指令,因此有

4、四個不同的執(zhí)行同期,為此用IR中的值來確定即可。3)指令執(zhí)行(每條指令的執(zhí)行周期都是一樣的)每條指令的執(zhí)行周期的狀態(tài)分析:1. COM指令功能是對AC的內(nèi)容取反,執(zhí)行周期的狀態(tài)是COM1:ACAC'2. JREL指令代碼為01AAAAAA,即轉(zhuǎn)移的相對地址由AAAAAA確定,而AAAAAA在DR50中,所以有JREL1:PCPC+DR5O3. OR指令為了執(zhí)行指令,必須完成兩件事情OR1:DR-M;從存貯器取出一個操作數(shù)送到數(shù)據(jù)寄存器OR2:AC-ACVDR,與AC相或,并把結(jié)果存回AC中4. SUB1指令為了執(zhí)行指令,必須完成兩件事情SUB11:DR-M;從存貯器取出一個操作數(shù)送到數(shù)

5、據(jù)寄存器SUB12:AC<-AC+DR'對DR取反,等于一DR1綜上所述可知 CPU的完全狀態(tài)圖如下CPU。4設(shè)計必要的數(shù)據(jù)通路和控制邏輯,以便實現(xiàn)這個有限狀態(tài)機,最終實現(xiàn)這個狀態(tài)圖以及寄存器的傳輸說明了實現(xiàn)本CPU所須完成工作(方法和步驟如下)1)與CPU的每個狀態(tài)相關(guān)聯(lián)的操作(共九個狀態(tài))FETCH1FETCH2ARPCDRM, PC PC+1FETCH3COM1:IRDR7,6,AC AC'AR DR5 0JREL1 :OR1 :OR2:SUB11 :SUB12:PC PC+ DR5 O DR M ;AC A CV DRDR M ;AC <- AC + DR&

6、#39;2)建立數(shù)據(jù)通路的原理和方法A.存貯器是通過引腳 D70將數(shù)據(jù)送給CPU。B.存貯器的地址是通過地址引腳A50從AR中獲得的。于A5-0(地址)和 D70(數(shù)據(jù))通路,如下圖是CPU與存貯器之間要6882MD7 0AR666DR88AC22IRCLKA5 0PC3)總線類型的確定方法原理:首先把操作數(shù)重新分組,依據(jù)是指導(dǎo)修改同一個寄存器的操作分配在同一組。AR:ARPC,ARDR5-0PC:PCPC+DR5O,PC-PC+1DR:DRM,IR:IRDR7,6,AC:AC<-AC+DR',ACACVDRACAC'決定每個部件應(yīng)完成的功能a>AR,DR,IR,A

7、C總是從其他一些部件中裝入數(shù)據(jù)。若數(shù)據(jù)已在總線上,則需要做的是能夠執(zhí)行并裝入操作。(LD端口分另I是ARLOAD,DRLOAD,IRLOAD,ACLOAD信號同步裝b>PC能從其他一些部件中裝入數(shù)據(jù),還有相應(yīng)的自增(INC)當(dāng)前值,所以應(yīng)創(chuàng)建一個單獨的硬件使之能自增。(端口有PCINC,PCLOAD)4)把每個部件都連接到系統(tǒng)總線上三態(tài)緩沖區(qū)一一原有的寄存器部是把結(jié)果輸出到系統(tǒng)總線,使CPU內(nèi)部數(shù)據(jù)沖突,所以應(yīng)增加三態(tài)緩沖區(qū)加以控制,但AR的輸出還應(yīng)與A50相接,這是尋址所需。5)根據(jù)實際需要修改上圖的設(shè)計,并加上適當(dāng)控制信號名稱1. AR:僅向存貯器提供地址,沒有必要將它的輸出連接到內(nèi)

8、部總線上,加上ARLOAD實現(xiàn)從BUS裝入數(shù)據(jù)。2. AR-PC:保留三態(tài)緩沖器由PCBUS控制同步3. IR:不通過內(nèi)部總線向任何其他部件提供數(shù)據(jù),而IR的輸出將直接送到控制器用于確定指令的功能4. AC:本CPU不向其他任何單位提供數(shù)據(jù)5. DR70:不統(tǒng)一,有6位也有2位寬度,必須確定哪些寄存器從總線的哪些位上接收和發(fā)送數(shù)據(jù)。應(yīng)有DRBUS實現(xiàn)同步。DRLOAD實現(xiàn)LD6. AC:必須能裝載AC+DR'的和,以及ACVDR與AC'的邏輯與結(jié)果。CPU必須包含一個能產(chǎn)生這些結(jié)果的ALU,并由ACLOAD實現(xiàn)裝入。7. PC:必須能裝載PC+DR50的和。CPU必須包含一個能

9、產(chǎn)生這些結(jié)果的ALU并由PCLOAD實現(xiàn)載入,而PCINC實現(xiàn)PC-PC+16MEMBUSD7 0ALU16A5 0ARARIOADPCPCLOAD PCINC86PCBUS 68 DRBUSALU2DRDRLOADAC86READALUS1ALUS2ACLOAD2IRCLKIRLOADALU的設(shè)計1)ALU1(與PC相連)的設(shè)計數(shù)據(jù)通路的分析:功ALU1必須接收PC和DR作為輸入,然后把運算結(jié)果輸出到PC實現(xiàn)PCPC+DR5P在本CPU中,把PC的導(dǎo)線和ALU的輸入輸出相連起來,并且利用系統(tǒng)總線把DR和ALU的輸入連接起來。用計數(shù)器來實現(xiàn)PC-PC+1操作,就可以在FETCH2內(nèi)完成,因為計

10、數(shù)器不必占用總線的時間。6D5 0TO PCFrom busDR 和 ALUAC08MUX2/PARALLELADDER8/ 8ALUS1 ALUS22) ALU2 (與AC相連)的設(shè)計在本ALU的設(shè)計中AC和ALU的輸入輸出連接,并且利用系統(tǒng)總線把 和輸入相連起來。*TO ACDRFrombus(ALUS1,ALUS2=0,0,選ACAC'ALUS1,ALUS2=0,1,選ACACVDRALUS1,ALUS2=1,0,選AC<-AC+DR',)用硬布線的方法設(shè)計控制器組成:計數(shù)器:保存當(dāng)前狀態(tài)共有9個狀態(tài)(四條指令,共有9個狀態(tài))所以需要一個四一一16位譯碼器,譯碼器中

11、有7個狀態(tài)沒用到。譯碼器:接收當(dāng)前狀態(tài)并為每個狀態(tài)生成單獨的信號邏輯組合:接受單獨的狀態(tài)信號,為每一部件生成控制信號以及計數(shù)器的控制信號原理圖:計數(shù)器與譯碼器的設(shè)計:1 .FETCH1狀態(tài):規(guī)定計數(shù)器的0值,使用計數(shù)器的CLR=1到達這一狀態(tài)。(指令執(zhí)行完畢后,轉(zhuǎn)入的取址狀態(tài)。)2 .將順序狀態(tài)設(shè)定為計數(shù)器的連續(xù)值,用INC實現(xiàn)。3利用IR映射1IR0來確定指令的執(zhí)行如下表IR;計數(shù)值狀態(tài)001000COM1011010JREL1101100OR1111110SUB1指令的執(zhí)行FETCH10FETCH21FETCH32COM1:8JREL1:10OR1:12OR2:13SUB11:14SUB1

12、2:15OR11IR1.00COUNTERFETCH1FETCH3FETCH2SUB11LDINCCLR0FETCH111FETCH22FETCH2DECODER8.COM110JREL112OR113OR214SUB1115SUB124COM1JREL1OR2SUB12計數(shù)器控制信號的確定1IR口0進入指LD:在取址周期的FETCH3狀態(tài)中發(fā)出,進入執(zhí)行周期的第一個狀態(tài)(裝載AR DR5 0令的正確執(zhí)行周期)FETCH3:IRDR7,6,INC:CLR:如上圖所示根據(jù)譯碼器的輸出信號組合后產(chǎn)生CPU中寄存器的有關(guān)信號ARLOAD(裝載地址寄存器的控制信號)FETCH1:ARPCFETCH3:

13、ARDR5-0PCLOADPCINCPCLOAD=JREL1:PCPC+DR50PCINC=FETCH2:PCPC+1DRLOAD(實現(xiàn)DRM)FETCH2+OR1+SUB11ACLOAD(實現(xiàn)ACAC',ACACVDR,AC<-AC+DR')ACLOAD=COM1+OR2+SUB12IRLOAD=FETCH3ALUS1,ALUS2與AC相連的ALU有兩個控制信號ALUS1,ALUS2=0,0, ALUS1,ALUS2=0,1 ALUS1,ALUS2=1,0 ALUS1= SUB12選 COM1:選 OR2:選 SUB12 :ACAC'ACAC V DR;AC &

14、lt;- AC + DR'ALUS2=OR2緩沖器控制信號許多操作需從內(nèi)部總線上獲取數(shù)據(jù),CPu必須能控制緩沖器以便在合適的時間將正確SUB11的數(shù)據(jù)放到總線上,為此應(yīng)滿足如下邏輯關(guān)系。MEMBUS=FETCH2+OR1+SUB11PCBUS=FETCH1READ=FETCH2+OR1+SUB11DRBUS=FETCH3+JREL1+OR2+SUB12部分電路圖如下:FETCH1FETCH3JREL1FETCH2FETCH3FETCH2OR1SUB11COM1OR2SUB12OR2SUB12FETCH2OR1SUB11ARLOADPCINCDRLOADALUS2ALUS1MEMBUSP

15、CLOADIRLOADACLOADOR1FETCH2READPCBUSFETCH1FETCH3JREL1OR2SUB12DRBUS設(shè)計驗證1.程序段如下所列存貯單元:指令0:COM1: JREL02: OR43: SUB54: 20H5: 30H2.CPU遵循狀態(tài)圖并以合適的狀態(tài)順序取出、譯碼和執(zhí)行每條指令:COM:FETCH1-FETCH2-FETCH3-COM1JREL4:FETCH1-FETCH2-FETCH3-JREL1OR5:FETCH1-FETCH2-FETCH3-OR1-OR2SUB6:FETCH1-FETCH2-FETCH3-SUB11-SUB122.對這段程序的一次循環(huán)的跟蹤

16、情況(所有寄存器的初始值都是0)指令狀態(tài)有效信號所執(zhí)行的操作下一個狀態(tài)COMFETCH1PCBUS,ARLOADAR0FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR00H,PC1FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR00AR00HCOM1COM1ACLOADAC00H'=FFHFETCH1指令狀態(tài)有效信號所執(zhí)行的操作下一個狀態(tài)JREL0FETCH1PCBUS,ARLOADAR1FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR40HPC2FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR

17、01,AR00HJREL1JREL1DRBUS,PCLOADPC-02H+00H=02HFETCH1OR4FETCH1PCBUS,ARLOADAR2FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDR84H,PC3FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR10,AR04HOR1OR1READ,MEMBUS,DRLOADDR20H;OR2OR2DRBUS,ALUS2ACLOADACFFHV20H=FFHFETCH1SUB5FETCH1PCBUS,ARLOADAR3FETCH2FETCH2READ,MEMBUS,DRLOAD,PCINCDRC5H,P

18、C4FETCH3FETCH3DRBUS,ARLOAD,IRLOADIR11,AR05HSUB11SUB11READ,MEMBUS,DRLOADDR30HSUB12SUB12DRBUS,ALUS1,ACLOADACFFH+30H'=2FHFETCH1用微程序控制器設(shè)計一微程序控制器的基本框圖兩種可能的下址方式(由MUX實現(xiàn)選擇)S=1操作碼映象(經(jīng)指令譯碼進入下一條指令的執(zhí)行周期)S=0絕對跳轉(zhuǎn)(下一條要執(zhí)行的微指令在控存內(nèi))工作原理分析描述FETCH3,便MAP輸入來實1)確定微子程序的第一條指令入口地址。方法是根據(jù)取批中的最后一個狀態(tài)可轉(zhuǎn)入到四條指令中任一條執(zhí)行周期的第一條微指令入口

19、,但必須通過現(xiàn)2)下址的確定絕對跳轉(zhuǎn):可直接跳轉(zhuǎn)到FETCH1狀態(tài)當(dāng)前地址加1。3)幾個參數(shù)的設(shè)定控存中地址的倍數(shù)24=16>9因共有9條微指令,可用四位MUX一微地址寄存器,微地址寄存器一控存24=16>9用四位確定UPOS的位數(shù)二生成正確序列并設(shè)計映象邏輯1.給有限狀態(tài)機的每一種狀態(tài)分配一個控存地址利用IR映射1IR0來確定指令的執(zhí)行如下表IR計數(shù)值狀態(tài)001000COM1011010JREL1101100OR1111110SUB12.其余微指令的地址微程序控制器的狀態(tài)地址FETCH10FETCH21FETCH32COM1:8JREL1:10OR1:12OR2:13SUB11:

20、14SUB12:153.確定微指令中的選擇域和地址域,即生成正確的微指令執(zhí)行順序1)一般狀態(tài)轉(zhuǎn)換設(shè)SEL=0,ADDR為下一條指令要執(zhí)行的控存號,一個微指執(zhí)行完后,從ADDR中得到下址,車t到ADDR指定的微指令2)特別狀態(tài)FETCH3下址的確定當(dāng)FETCH3執(zhí)行完后,必須到指令執(zhí)行周期的微子程序入處,根據(jù)1IR0所算出的結(jié)果三生成正確的微操作及相應(yīng)的控制信號用水平型微指令生成微操作及用垂直型指令生成微操作本CPU采用水平型微指令生成微操作法微操作及它們的助記符助記符微操作ARPCARPCDRMDRMPCINPCPC+1IRDRIRDR7,6ARDRARDR5-。NOACACAC'PCPLUSDRPCPC+DR5-。ACORDRA

溫馨提示

  • 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

提交評論