計組課設(shè)-微指令的設(shè)計實驗_第1頁
計組課設(shè)-微指令的設(shè)計實驗_第2頁
計組課設(shè)-微指令的設(shè)計實驗_第3頁
計組課設(shè)-微指令的設(shè)計實驗_第4頁
計組課設(shè)-微指令的設(shè)計實驗_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成原理課程設(shè)計報告班級:計算機/物聯(lián)網(wǎng) 班 姓名: 學(xué)號: 完成時間: 2016.1.14 一、課程設(shè)計目的1在實驗機上設(shè)計實現(xiàn)機器指令及對應(yīng)的微指令(微程序)并驗證,從而進一步掌握微程序設(shè)計控制器的基本方法并了解指令系統(tǒng)與硬件結(jié)構(gòu)的對應(yīng)關(guān)系;2通過控制器的微程序設(shè)計,綜合理解計算機組成原理課程的核心知識并進一步建立整機系統(tǒng)的概念;3培養(yǎng)綜合實踐及獨立分析、解決問題的能力。二、課程設(shè)計的任務(wù)針對COP2000實驗儀,從詳細(xì)了解該模型機的指令/微指令系統(tǒng)入手,以實現(xiàn)乘法和除法運算功能為應(yīng)用目標(biāo),在COP2000的集成開發(fā)環(huán)境下,設(shè)計全新的指令系統(tǒng)并編寫對應(yīng)的微程序;之后編寫實現(xiàn)乘法和除法

2、的程序進行設(shè)計的驗證。三、 課程設(shè)計使用的設(shè)備(環(huán)境)1硬件l COP2000實驗儀l PC機2軟件l COP2000仿真軟件四、課程設(shè)計的具體內(nèi)容(步驟)1詳細(xì)了解并掌握COP 2000模型機的微程序控制器原理,通過綜合實驗來實現(xiàn)該模型機指令系統(tǒng)的特點: 從指令字長來看該模型機指令系統(tǒng)包含單字長和雙字長兩種格式的指令,字長為8位,對于需要訪問內(nèi)存的指令都是雙字長的,指令系統(tǒng)中大多數(shù)指令是單字長;從指令操作碼是定長和變長來看,這里認(rèn)為,雖然ADD A, R?和ADD A, R?都是執(zhí)行加法操作,但他們是不同的指令,將指令格式中尋址寄存器的兩位也認(rèn)為是操作碼的一部分,這兩條指令的操作碼不同。因此

3、,指令系統(tǒng)的指令格式是定長操作碼的,操作碼為6位。1)雙字長的指令格式如下:AOP R?舉例: 助記符 機器碼1 機器碼2 ADD A, MM 000110xx MM ADD A, #II 000111xx II MOV A, MM 011110xx MM2)單字長的指令格式如下:OP R?舉例:助記符 機器碼1 機器碼2 ADD A, R? 000100xx OR A, R? 011000xx MOV R?, A 100000xx 該模型機微指令系統(tǒng)的特點(包括其微指令格式的說明等):該模型機微指令系統(tǒng)的微指令格式是水平型微指令,微指令的字長為24位,是機器字長的3倍,每條微指令僅包含微操作

4、控制字段,無順序控制字段。操作控制字段的每一位對應(yīng)一個微操作,采用字段直接譯碼的方式對系統(tǒng)進行控制。微指令的具體格式如下:IRENPCOES0S1S2AENWENX0X1X2FENCNRWRRRDSTENOUTENMAROEMARENELPEINTEMENEMRDEMWRXRD舉例:微指令CBFFFF:取指令110010111111111111111111表2 微指令控制信號的功能操作控制信號控 制 信 號 的 說 明XRD外部設(shè)備讀信號,當(dāng)給出了外設(shè)的地址后,輸出此信號,從指定外設(shè)讀數(shù)據(jù)。EMWR程序存儲器EM寫信號。EMRD程序存儲器EM讀信號。PCOE將程序計數(shù)器PC的值送到地址總線AB

5、US上。EMEN將程序存儲器EM與數(shù)據(jù)總線DBUS接通,由EMWR和EMRD決定是將DBUS數(shù)據(jù)寫到EM中,還是從EM讀出數(shù)據(jù)送到DBUS。IREN將程序存儲器EM讀出的數(shù)據(jù)打入指令寄存器IR和微指令計數(shù)器PC。EINT中斷返回時清除中斷響應(yīng)和中斷請求標(biāo)志,便于下次中斷。ELPPC打入允許,與指令寄存器的IR3、IR2位結(jié)合,控制程序跳轉(zhuǎn)。MAREN將數(shù)據(jù)總線DBUS上數(shù)據(jù)打入地址寄存器MAR。MAROE將地址寄存器MAR的值送到地址總線ABUS上。OUTEN將數(shù)據(jù)總線DBUS上數(shù)據(jù)送到輸出端口寄存器OUT里。STEN將數(shù)據(jù)總線DBUS上數(shù)據(jù)存入堆棧寄存器ST中。RRD讀寄存器組R0R3,寄存

6、器R?的選擇由指令的最低兩位決定。RWR寫寄存器組R0R3,寄存器R?的選擇由指令的最低兩位決定。CN決定運算器是否帶進位移位,CN=1帶進位,CN=0不帶進位。FEN將標(biāo)志位存入ALU內(nèi)部的標(biāo)志寄存器。X2X2、X1、X0三位組合來譯碼選擇將數(shù)據(jù)送到DBUS上的寄存器。X1X0WEN將數(shù)據(jù)總線DBUS的值打入工作寄存器W中。AEN將數(shù)據(jù)總線DBUS的值打入累加器A中。S2S2、S1、S0三位組合決定ALU做何種運算。S1S0COP2000中有7個寄存器可以向數(shù)據(jù)總線輸出數(shù)據(jù), 但在某一特定時刻只能有一個寄存器輸出數(shù)據(jù). 由X2,X1,X0決定那一個寄存器輸出數(shù)據(jù)。X2 X1 X0輸出寄存器0

7、 0 0IN_OE 外部輸入門0 0 1IA_OE 中斷向量0 1 0ST_OE 堆棧寄存器0 1 1PC_OE PC寄存器1 0 0D_OE 直通門1 0 1R_OE 右移門1 1 0L_OE 左移門1 1 1沒有輸出COP2000中的運算器由一片EPLD實現(xiàn). 有8種運算, 通過S2,S1,S0來選擇。運算數(shù)據(jù)由寄存器A及寄存器W給出, 運算結(jié)果輸出到直通門D。S2 S1 S0功能0 0 0A+W 加0 0 1A-W 減0 1 0A|W 或0 1 1A&W 與1 0 0A+W+C 帶進位加1 0 1A-W-C 帶進位減1 1 0A A取反1 1 1A 輸出A2. 計算機中實現(xiàn)乘法和

8、除法的原理(1)無符號乘法算法流程圖:硬件原理框圖:(2)無符號除法算法流程圖:硬件原理框圖:3對應(yīng)于以上算法如何分配使用COP2000實驗儀中的硬件(初步分配,設(shè)計完成后再將準(zhǔn)確的使用情況填寫在此處)1)乘法程序的硬件分配:硬件名稱在乘法算法中的功能R01用來存放被乘數(shù)2保存乘積結(jié)果R1用來存放乘數(shù)R2未使用R3用做計數(shù)器,來控制程序循環(huán)次數(shù)A1、存放中間結(jié)果2、用來存放操作數(shù)參加ALU的運算W用來存放操作數(shù)參加ALU的運算PC程序計數(shù)器EM內(nèi)存(存放程序)IR指令寄存器ST堆棧寄存器,可以用來暫存寄存器A的值MAR地址寄存器2)除法程序的硬件分配硬件名稱在除法運算中的功能R0用來存放被除數(shù)

9、R1用來存放除數(shù)R2用來存放商R31用作計數(shù)器,控制循環(huán)的次數(shù)2保存余數(shù)A1、存放中間數(shù)據(jù)2、用來存放操作數(shù)參加ALU的運算W用來存放操作數(shù)參加ALU的運算PC程序計數(shù)器EM內(nèi)存(存放程序)IR指令寄存器ST堆棧寄存器,可以用來暫存寄存器A的值MAR地址寄存器4在COP2000集成開發(fā)環(huán)境下設(shè)計全新的指令/微指令系統(tǒng)設(shè)計結(jié)果如表所示(可按需要增刪表項)(1) 新的指令集(如果針對乘除法設(shè)計了兩個不同指令集要分別列表)助記符 機器碼1 機器碼2 指令說明 _FATCH_ 000000XX 實驗機占用,不可修改。復(fù)位后,所有寄存器清0,首先執(zhí)行 _FATCH_ 指令取指MOV R?,#II0000

10、01XXII將立即數(shù)II送到寄存器R?中MOV R?,A000010XX將累加器A的值送到寄存器R?中MOV A,R?000011xx將寄存器R?的值送入累加器A中AND A,#II000100xxII將立即數(shù)與累加器A中的數(shù)相與AND R?,#II000101xxII將立即數(shù)與寄存器R?中的數(shù)相與SHR R?000110xx寄存器R?帶進位右移SHL R?000111xx寄存器R?帶進位左移JC MM001000xxMM若進位標(biāo)志置1,跳轉(zhuǎn)到MM地址JZ MM001001xxMM若零標(biāo)志置1,跳轉(zhuǎn)到MM地址ADD R?,#II001010xxII將寄存器R?中的數(shù)與立即數(shù)相加ADD A,R?

11、001011xx將累加器與寄存器R?相加,結(jié)果存入累加器SUB R?,#II001100xxII將寄存器R?中的值與立即數(shù)相減SUB A,R?001101xx將累加器與寄存器R?的值相減,結(jié)果存入累加器CMP A,R?001110xx累加器與寄存器R?的值比較,結(jié)果影響進位、零標(biāo)志JMP MM001111xxMM無條件跳轉(zhuǎn)到MM處PUSH A010000xx將累加器中的值暫存POP A010001xx將暫存結(jié)果送回到累加器A中SHRN R?010010xx寄存器R?不帶進位右移SHLN R?010011xx寄存器R?不帶進位左移TEST 010100xx(2) 新的微指令集助記符 狀態(tài) 微地址

12、 微程序 數(shù)據(jù)輸出 數(shù)據(jù)打入 地址輸出 運算器 移位控制 uPC PC _FATCH_ T000CBFFFFF指令寄存器IR PC輸出 A輸出 寫入+101FFFFFFA輸出+102FFFFFFA輸出+103FFFFFFA輸出+1MOV R?,#IIT104C7FBFF存儲器EM寄存器R?PC輸出A輸出+1+1T005CBFFFF指令寄存器PC輸出A輸出寫入+106FFFFFFA輸出+107FFFFFFA輸出+1MOV R?,AT108FFFB9FALU直通寄存器R?A輸出+1T009CBFFFF指令寄存器IRPC輸出A輸出寫入+10AA輸出+10BA輸出+1MOV A,R?T1OCFFF7F

13、7寄存器值R?寄存器AA輸出T0ODCBFFFFF指令寄存器IRPC輸出A輸出寫入+10EFFFFFFA輸出+10FFFFFFFA輸出+1AND A,#IIT210C&7FFEF存儲器值EM寄存器WPC輸出A輸出+1+1T111FFFE93ALU直通寄存器A標(biāo)志位C、Z與運算+1T012CBFFFF指令寄存器IRPC輸出A輸出寫入+113FFFFFFA輸出+1AND R?,#IIT314C7FFEF存儲器EM寄存器WPC輸出A輸出+1+1T215FFF7F7寄存器值R? 寄存器AA輸出+1T116FFFA9BALU直通寄存器R?標(biāo)志位C、Z與運算+1T017CBFFFF指令寄存器IRP

14、C輸出A輸出+1+1SHR R?T318FFEF9FALU直通堆棧寄存器STA輸出+1T219FFF7F7寄存器值R? 寄存器AA輸出+1T11AFFFABFALU右移寄存器R?標(biāo)志位C、ZA輸出帶進位右移+1T01BCBFF57堆棧寄存器ST寄存器A指令寄存器IRPC輸出A輸出寫入+1SHL R?T31CFFEF9FAlU直通推展寄存器STA輸出+1T21DFFF7F7寄存器值R?寄存器AA輸出+1T11EFFFADFALU左移寄存器R?標(biāo)志位C、ZA輸出帶進位左移+1T01FCBFF57堆棧寄存器ST寄存器A指令寄存器IRPC輸出A輸出寫入+1JC MMT120C6FFFF存儲器值EM寄存

15、器PCPC輸出A輸出+1+1T021CBFFFF指令寄存器IRPC輸出A輸出寫入+122FFFFFFA輸出+123FFFFFFA輸出+1JZ MMT124C6FFFF存儲器值EM寄存器PCPC輸出A輸出+1+1T025CBFFFF指令寄存器IRPC輸出A輸出寫入+126FFFFFFA輸出+127FFFFFFA輸出+1ADD R?,#IIT328FFF7F7寄存器值R?寄存器AA輸出+1T229C7FFEF存儲器值EM寄存器WPC輸出A輸出+1+1T12AFFFA98ALU直通寄存器R?標(biāo)志位C、Z加運算+1T02BCBFFFF指令寄存器IRPC輸出A輸出寫入+1ADD A,R?T22CFFF7

16、EF寄存器值R?寄存器WA輸出+1T12DFFFE90ALU直通寄存器R?標(biāo)志位C、Z加運算+1T02ECBFFFF指令寄存器IRPC輸出A輸出寫入+12FFFFFFFA輸出+1SUB R?,#IIT330FFF7F7寄存器值R? 寄存器AA輸出+1T231C7FFEF存儲器值EM寄存器WPC輸出A輸出+1+1T132FFFA99ALU直通寄存器R?標(biāo)志位C、Z減運算+1T033CBFFFF指令寄存器IRPC輸出A輸出寫入+1SUB A,R?T234FFF7EF寄存器值R?寄存器WA輸出+1T135FFFE91ALU直通寄存器A標(biāo)志位C、Z減運算+1T036CBFFFF指令寄存器IRPC輸出A

17、輸出寫入+137FFFFFFA輸出+1CMP A,R?T338FFF7EF寄存器值R?寄存器WA輸出+1T239FFEF9FALU直通堆棧寄存器STA輸出+1T13AFFFE91ALU直通寄存器A標(biāo)志位C、Z減運算+1T03BCBFF57堆棧寄存器寄存器A指令寄存器IRPC輸出A輸出+1+1JMP MMT13CC6FFFF存儲器EM寄存器PCPC輸出A輸出+1+1T03DCBFFFF指令寄存器IRPC輸出A輸出寫入+13EFFFFFFA輸出+13FFFFFFFA輸出+1PUSH AT140FFEF9FALU直通堆棧寄存器STA輸出+1T041CBFFFF指令寄存器IRPC輸出A輸出寫入+142

18、FFFFFFA輸出+143FFFFFFA輸出+1POP AT144FFFF57堆棧寄存器ST寄存器AA輸出+1T045CBFFFF指令寄存器IRPC輸出A輸出寫入+146FFFFFA輸出+147FFFFFA輸出+1SHRN R?T348FFEF9FALU直通堆棧寄存器STA輸出+1T249FFF7F7寄存器值R?寄存器AA輸出+1T14AFFF9BFALU右移寄存器R?A輸出右移+1T04BCBFF57堆棧寄存器ST寄存器A指令寄存器IRPC輸出A輸出寫入+1SHLN R?T34CFFEF9FALU直通堆棧寄存器STA輸出+1T24DFFF7F7寄存器值R?寄存器AA輸出+1T14EFFF9D

19、FALU左移寄存器R?A輸出左移+1T04FCBFF57堆棧寄存器寄存器A指令寄存器IRPC輸出A輸出寫入+1TEST R?T350C7FFEF存儲器值EM 寄存器WPC輸出A輸出+1T251FFF7F7寄存器值R?寄存器AA輸出+1T152FFFE93ALU直通寄存器A標(biāo)志位C與運算+1T053CBFFFF指令寄存器IRPC輸出A輸出寫入+15用設(shè)計完成的新指令集編寫實現(xiàn)無符號二進制乘法、除法功能的匯編語言程序(1)乘法4位乘法的算法流程圖與匯編語言程序清單:1)流程圖如下:2)匯編語言程序清單如下:MOV R3#0FH 將A賦值,用于比較MOV A,R3MOV R0,#0FH-被乘數(shù)在R0

20、中TEST R0,#0FH 判斷被乘數(shù)是否為0,是則結(jié)束 JZ T3 判斷被乘數(shù)是否溢出,是則結(jié)束CMP A,R0 JC T3MOV R1,#0FH-乘數(shù)在R1中TEST R1,#0FH 判斷乘數(shù)是否為0,是則結(jié)束 JZ T3CMP A,R1 判斷乘數(shù)是否溢出,是則結(jié)束MOV R3,#04HAND A,#00HLOOP1: SHR R1 JC T1 JMP LOOP2T1:ADD A,R0LOOP2:SHLN R0 PUSH A SUB R3,#01H POP A JZ T2 JMP LOOP1T2:MOV R0,A-乘積結(jié)果在R0中 JMP EN T3:MOV R0,#00H EN:END

21、JMP END(2)除法 4位除法的算法流程圖與匯編語言程序清單:1)算法流程圖如下1)算法流程圖如下2)匯編語言程序清單如下:MOV R0,#87H-被除數(shù)在R0中MOV R1,#0DH-除數(shù)在R1中MOV R3,#04HAND R2,#00H-商在R2中TEST R1,#0FHJZ FLSHLN R1SHLN R1SHLN R1SHLN R1MOV A,R0CMP A,R1JC T1JMP FLT1: SHRN R1 SHLN R2 CMP A,R1 JC T2 SUB A,R1 PUSH A ADD R2,#01H POP AT2:PUSH A SUB R3,#01H POP A JZ

22、QT JMP T1QT:MOV R3,A-余數(shù)保存在R3中 JMP ENFL:MOV R2,#0FFH 報錯處理R2為0FFHEN:END JMP EN6上述程序的運行情況(跟蹤結(jié)果)按下表填寫描述以上各程序運行情況的內(nèi)容。按每個程序一張表進行。程序運行的過程1)乘法程序運行的過程2)除法程序運行的過程7設(shè)計結(jié)果說明調(diào)試運行程序時是否出現(xiàn)問題,是否有重新調(diào)整指令/微指令系統(tǒng)設(shè)計的情況出現(xiàn)?請在此做具體說明。答:出現(xiàn)了問題。 之前沒考慮到除數(shù)為0的異常操作,故操作中少了TEST R?,#II;之后補齊操作TEST R?,#II微程序:C7FFEFFFF7F7FFFE93CBFFFF 在設(shè)計MOV

23、 R?,#II指令時,EMRD沒置低位,使程序在仿真上能運行,但在機器上運行時會置數(shù)FFH,之后EMRD置0后,在機器上正常運行。五、本次課程設(shè)計的總結(jié)體會(不少于200字) 主要總結(jié)學(xué)到的具體知識、方法及設(shè)計中的切身體會;包括列出在設(shè)計的各個階段出現(xiàn)的問題及解決方法。1)加深了對指令系統(tǒng)、微指令系統(tǒng)的理解,自己親自設(shè)計乘法和除法的指令系統(tǒng),首先要了解指令的格式,包括單字長和雙字長的指令,以及在指令設(shè)計時操作碼和地址碼的設(shè)計,運用何種尋址方式等等;通過設(shè)計微指令系統(tǒng),了解微指令的格式,微指令控制部分的設(shè)計,以及如何設(shè)計與指令對應(yīng)的微指令程序。2)綜合理解計算機組成原理課程的核心知識并進一步建立整機系統(tǒng)的概念通過微程序控制器的設(shè)計,進一步了解了控制器如何控制各個部件的協(xié)同工作,通過有時序的讀取一系列的微指令,產(chǎn)生對應(yīng)于各個部件的控制信號,使各個部件產(chǎn)

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論