計算機組成與系統(tǒng)結(jié)構(gòu)實驗報告2_第1頁
計算機組成與系統(tǒng)結(jié)構(gòu)實驗報告2_第2頁
計算機組成與系統(tǒng)結(jié)構(gòu)實驗報告2_第3頁
計算機組成與系統(tǒng)結(jié)構(gòu)實驗報告2_第4頁
計算機組成與系統(tǒng)結(jié)構(gòu)實驗報告2_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、評語:課中檢查完成的題號及題數(shù): 課后完成的題號與題數(shù):成績:自評成績:95實驗報告實驗名稱:1.4 CPU 與簡單模型機設(shè)計實驗日期:2015.11.16班級:10011303學(xué)號:2013302534姓名:楊添文1、 實驗?zāi)康模?1) 掌握一個簡單CPU 的組成原理。(2) 在掌握部件單元電路的基礎(chǔ)上,進一步將其構(gòu)造一臺基本模型計算機。(3) 為其定義五條機器指令,編寫相應(yīng)的微程序,并上機調(diào)試掌握整機概念。2、 實驗內(nèi)容:1、 實驗原理:本實驗要實現(xiàn)一個簡單的CPU,并且在此CPU 的基礎(chǔ)上,繼續(xù)構(gòu)建一個簡單的模型計算機。CPU 由運算器(ALU)、微程序控制器(MC)、通用寄存器(R0)

2、,指令寄存器(IR)、程序計數(shù)器(PC)和地址寄存器(AR)組成,如圖2-1-1 所示。這個CPU 在寫入相應(yīng)的微指令后,就具備了執(zhí)行機器指令的功能,但是機器指令一般存放在主存當(dāng)中,CPU 必須和主存掛接后,才有實際的意義,所以還需要在該CPU 的基礎(chǔ)上增加一個主存和基本的輸入輸出部件,以構(gòu)成一個簡單的模型計算機。圖1-4-1 基本CPU 構(gòu)成原理圖除了程序計數(shù)器(PC),其余部件在前面的實驗中都已用到,在此不再討論。系統(tǒng)的程序計數(shù)器(PC)由兩片74LS161 和一片74LS245 構(gòu)成,其原理如圖1-4-2 所示。PC_B 為三態(tài)門的輸出使能端,CLR 連接至CON 單元的總清端CLR,按

3、下CLR 按鈕,將使PC 清零,LDPC 和T2 相與后作為計數(shù)器的計數(shù)時鐘,當(dāng)LOAD 為低時,計數(shù)時鐘到來后將CPU 內(nèi)總線上的數(shù)據(jù)打入PC。圖1-4-2 程序計數(shù)器(PC)原理圖本模型機和前面微程序控制器實驗相比,新增加一條跳轉(zhuǎn)指令JMP,共有五條指令:IN(輸入)、ADD(二進制加法)、OUT(輸出)、JMP(無條件轉(zhuǎn)移),HLT(停機),其指令格式如下(高位為操作碼):助記符機器指令碼說明IN0010 0000INR0ADD 0000 0000R0 + R0R0OUT 0011 0000R0OUTJMP addr 1100 0000 * addr PCHLT0101 0000停機其中

4、JMP 為雙字節(jié)指令,其余均為單字節(jié)指令,*為addr 對應(yīng)的二進制地址碼。微程序控制器實驗的指令是通過手動給出的,現(xiàn)在要求CPU 自動從存儲器讀取指令并執(zhí)行。根據(jù)以上要求,設(shè)計數(shù)據(jù)通路圖,如圖1-4-3 所示。本實驗在前一個實驗的基礎(chǔ)上增加了三個部件,一是PC(程序計數(shù)器),另一個是AR(地址寄存器),還有就是MEM(主存)。因而在微指令中應(yīng)增加相應(yīng)的控制位,其微指令格式如表1-4-1 所示。圖1-4-3 數(shù)據(jù)通路圖表1-4-1 微指令格式232221201918-1514-1211-98-65-0M23M22WRRDIOMS3-S0A字段B字段C字段MA5-MA0141312選擇000NO

5、P001LDA010LDB011LDR0100保留101LOAD110LDAR111LDIR141312選擇000NOP001P<1>010保留011保留100保留101LDPC110保留111保留141312選擇000NOP001ALU-B010R0-B011保留100保留101保留110PC-B111保留 系統(tǒng)涉及到的微程序流程見圖1-4-4 所示,當(dāng)擬定“取指”微指令時,該微指令的判別測試字段為P<1>測試。指令譯碼原理見圖1-3-3 所示,由于“取指”微指令是所有微程序都使用的公用微指令,因此P<1> 的測試結(jié)果出現(xiàn)多路分支。本機用指令寄存器的高6

6、位(IR7IR2)作為測試條件,出現(xiàn)路分支,占用個固定微地址單元,剩下的其它地方就可以一條微指令占用控存一個微地址單元隨意填寫,微程序流程圖上的單元地址為16 進制。當(dāng)全部微程序設(shè)計完畢后,應(yīng)將每條微指令代碼化,表1-4-2 即為將圖1-4-2 的微程序流程圖按微指令格式轉(zhuǎn)化而成的“二進制微代碼表”。圖1-4-4 簡單模型機微程序流程圖表1-4-2 二進制微代碼表地址十六進制高五位S3-S0A字段B字段C 字段MA5-MA00000 00 010000000000000000000000010100 6D 430000000001101101010000110310 70 7000010000

7、01110000011100000400 24 050000000000100100000001010504 B2 010000010010110010000000011D10 51 410001000001010001010000013000 14 040000000000010100000001003218 30 010001100000110000000000013328 04 010010100000000100000000013500 00 350000000000000000001101013C00 6D 5D000000000110110101011101設(shè)計一段機器程序,要求從

8、IN 單元讀入一個數(shù)據(jù),存于R0,將R0 和自身相加,結(jié)果存于R0,再將R0 的值送OUT 單元顯示。根據(jù)要求可以得到如下程序,地址和內(nèi)容均為二進制數(shù)。地址 內(nèi)容 助記符 說明0000000000100000; START: IN R0從 IN 單元讀入數(shù)據(jù)送 R00000000100000000; ADD R0,R0R0 和自身相加,結(jié)果送 R00000001000110000; OUT R0R0 的值送 OUT 單元顯示0000001111100000; JMP START跳轉(zhuǎn)至 00H 地址00000100000000000000010101010000; HLT停機2、 實驗步驟:1.

9、 按圖1-4-5 連接實驗線路。圖1-4-5 實驗接線圖2. 寫入實驗程序,并進行校驗,分兩種方式,手動寫入和聯(lián)機寫入,本次實驗采用聯(lián)機寫入。聯(lián)機軟件提供了微程序和機器程序下載功能,以代替手動讀寫微程序和機器程序,但是微程序和機器程序得以指定的格式寫入到以TXT 為后綴的文件中,微程序和機器程序的格式如下:本次實驗程序如下,程序中分號;為注釋符,分號后面的內(nèi)容在下載時將被忽略掉:; /*/; / /; / CPU與簡單模型機實驗指令文件 /; / /; /*/; /* Start Of Main Memory Data */ $P 00 20 ; START: IN R0 從IN單元讀入數(shù)據(jù)送

10、R0 $P 01 00 ; ADD R0,R0 R0和自身相加,結(jié)果送R0 $P 02 30 ; OUT R0 R0的值送OUT單元顯示 $P 03 E0 ; JMP START 跳轉(zhuǎn)至00H地址 $P 04 00 ; $P 05 50 ; HLT 停機; /* End Of Main Memory Data */; /* Start Of MicroController Data */ $M 00 000001 ; NOP $M 01 006D43 ; PC->AR,PC加1 $M 03 107070 ; MEM->IR, P<1> $M 04 002405 ; R0

11、->B $M 05 04B201 ; A加B->R0 $M 1D 105141 ; MEM->PC $M 30 001404 ; R0->A $M 32 183001 ; IN->R0 $M 33 280401 ; R0->OUT $M 35 000035 ; NOP $M 3C 006D5D ; PC->AR,PC加1; /* End Of MicroController Data */選擇聯(lián)機軟件的“【轉(zhuǎn)儲】【裝載】”功能,在打開文件對話框中選擇上面所保存的文件,軟件自動將機器程序和微程序?qū)懭胫付▎卧_x擇聯(lián)機軟件的“【轉(zhuǎn)儲】【刷新指令區(qū)】”可以讀

12、出下位機所有的機器指令和微指令,并在指令區(qū)顯示,對照文件檢查微程序和機器程序是否正確,如果不正確,則說明寫入操作失敗,應(yīng)重新寫入,可以通過聯(lián)機軟件單獨修改某個單元的指令,以修改微指令為例,先用鼠標(biāo)左鍵單擊指令區(qū)的微存TAB 按鈕,然后再單擊需修改單元的數(shù)據(jù),此時該單元變?yōu)榫庉嬁?,輸? 位數(shù)據(jù)并回車,編輯框消失,并以紅色顯示寫入的數(shù)據(jù)。3. 運行程序?qū)C 單元的編程開關(guān)置為運行檔,MEM 單元的編程開關(guān)也置為運行檔,進入軟件界面,選擇菜單命令“【實驗】【簡單模型機】”,打開簡單模型機數(shù)據(jù)通路圖。按動CON 單元的總清按鈕CLR,然后通過軟件運行程序,選擇相應(yīng)的功能命令,即可聯(lián)機運行、監(jiān)控、調(diào)

13、試程序,當(dāng)模型機執(zhí)行完JMP 指令后,檢查OUT 單元顯示的數(shù)是否為IN 單元值的2 倍。在數(shù)據(jù)通路圖和微程序流中觀測指令的執(zhí)行過程,并觀測軟件中地址總線、數(shù)據(jù)總線以及微指令顯示和下位機是否一致。3、 項目要求及分析:1. 試修改現(xiàn)有的指令系統(tǒng),將加法指令的功能修改為R0的內(nèi)容和某個存儲單元的內(nèi)容 相加;增加存數(shù)、取數(shù)和減法三條機器指令,指令助記符分別為 STA、LAD 和SUB, 指令操作碼分別為十六進制的60、70和80。2. 利用修改后的指令系統(tǒng)編寫一段程序,完成十六位二進制數(shù)的加減法運算。 分析:(1) 根據(jù)ADD指令:R0 + R0R0,就是將寄存器中的數(shù)加兩次,現(xiàn)在題目要求將兩個不

14、同的數(shù)A與B進行相加減,可以另外設(shè)計一個方案:A的值還是來自寄存器,但B的值可以設(shè)計來自于存儲器,即增加存數(shù)、取數(shù)指令,從存儲器中取數(shù),將取出的數(shù)存入運算單元。即:1、將R0的值送入ALU的A端; 2、將另一個數(shù)B存入內(nèi)存中; 具體內(nèi)容為: 從IN單元讀取要存儲的數(shù)據(jù)地址; 將地址送到地址寄存器AR; 從IN單元讀取要存儲的數(shù)據(jù); 將數(shù)據(jù)送到內(nèi)存中的相應(yīng)存儲單元。3、計算另一個數(shù)B的內(nèi)存地址;4、利用取數(shù)指令取出相應(yīng)數(shù)B: 具體內(nèi)容為: 從IN單元讀入數(shù)據(jù)的存儲地址; 將存儲地址送至地址寄存器AR; 將取出的數(shù)送至RO。5、寄存器R0中的數(shù)送到ALU的B;6、進行加減法運算,結(jié)果送回R0;7、

15、連接OUT單元,顯示結(jié)果輸出。(2) 要進行兩個16位的二進制數(shù)加減,可以先將兩個二進制數(shù)的高八位與低八位分別存入不同的地址中,接著取出兩個數(shù)的低八位相加,送到OUT單元顯示,進位要進行存儲;然后進行兩個數(shù)的高八位相加,結(jié)果在數(shù)據(jù)總線顯示,其中,最高位的進位忽略。具體操做: 1、根據(jù)已經(jīng)構(gòu)思好的指令變化具體步驟(要添加的指令有STA、LAD、SUB以及需更新的ADD),變化微指令,微指令結(jié)構(gòu)為232221201918-1514-1211-98-65-0M23M22WRRDIOMS3-S0A字段B字段C字段MA5-MA0其中,S3-S0為控制信號,1010表示A+B+CN,1011表示A-B,0

16、000為直通;MA5-MA0為后續(xù)微地址;A、B、C字段分別如下表示:141312選擇 000NOP001LDA010LDB011LDR0100保留101保留110保留111LDIR141312選擇000NOP001ALU-B010R0-B011保留100保留101保留110保留111保留141312選擇000NOP001P<1>010保留011保留100保留101保留110保留111保留 指令譯碼原理圖如下,操做碼00、60、70、80分別映射成微地址為30、36、37、38。畫出微程序流程圖如下: 00 NOP01PC->AR PC+1 02 MEN->IR 30P

17、<1> ADD IN OUT HLT JMP LAD STA SUB 30 32 33 35 3C 37 36 38R0->A IN->R0 RO->OUT NOP PC->AR IN->R0 IN->R0 RO->A 17 PC+1 15 11 2CIN->R0 01 01 01 1D R0->AR R0->AR IN->R0 18 MEM->PC 16 12 2DR0->AR MEM->R0 IN->RO R0->AR 19 01 13 2EMEM->B 01 R0->M

18、EM MEM->B 05 2FA+B->R0 01 A-B->R0 01 01改變后的二進制微代碼表為:地址十六進制高五位 S3-S0A字段B字段C字段MA5-MA00000 00 0100000 0000 000 000 0000000010100 6D 4200000 0000 110 110 1010000100210 70 7300010 0000 111 000 0010000110305 32 0100000 1010 011 001 0000000011100 64 1200000 0000 110 010 0000100101218 30 1300011 00

19、00 011 000 0000100111320 04 0100100 0000 000 010 0000000011500 64 16 00000 0000 110 010 0000101101610 30 0100010 0000 011 000 0000000011718 30 1800011 0000 011 000 0000110001800 64 1900000 0000 110 010 0000110011910 20 0500010 0000 010 000 0000001011D10 51 4100010 0000 101 000 1010000012C18 30 2D000

20、11 0000 011 000 0001011012D00 64 2E00000 0000 110 010 0001011102E10 20 2F00010 0000 010 000 0001011112F05 B2 0100000 1011 011 001 0000000013000 14 1700000 0000 001 010 0000101113218 30 0100011 0000 011 000 0000000013328 04 0100101 0000 000 010 0000000013500 00 3500000 0000 000 000 0001101013618 30 1

21、100011 0000 011 000 000 0100013718 30 1500011 0000 011 000 0000101013800 14 2C00000 0000 001 010 0001011003C00 6D 5D00000 0000 110 110 1010111014、 具體實現(xiàn):由設(shè)計的微程序流程圖,可以很容易寫出以下兩個16位二進制數(shù)的加法程序: ; /* Start Of Main Memory Data */ $P 00 60 ; STA A0 存儲A的低八位 $P 01 60 ; STA B0 存儲B的低八位 $P 02 60 ; STA A1 存儲A的高八位

22、$P 03 60 ; STA B1 存儲B的高八位 $P 04 70 ; LDA A0 取出A的低八位存入R0中 $P 05 00 ; ADD R0,A0,B0 A和B的低八位相加 $P 06 30 ; OUT 低八位相加的結(jié)果在OUT單元輸出顯示 $P 07 70 ; LDA 取出A的高八位存入R0中 $P 08 00 ; ADD R0,A1,B1 A和B的高八位相加 $P 09 50 ; HLT 停機; /* End Of Main Memory Data */; /* Start Of MicroController Data */ $M 00 000001 ;NOP $M 01 006

23、D42 ;PC->AR,PC+1 $M 02 107073 ;MEM->IR, P<1> $M 03 053201 ; $M 11 006412 ;R0->AR $M 12 183013 ;IN->R0 $M 13 200401 ;R0->MEM $M 15 006416 ;R0->AR $M 16 103001 ;MEM->R0 $M 17 183018 ;IN->R0 $M 18 006419 ;R0->AR $M 19 102005 ;MEM->B $M 1D 105141 ;MEM->PC $M 2C 18302D ;IN->R0 $M 2D 00642E ;R0->AR $M 2E 10202F ;MEM->B $

溫馨提示

  • 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

提交評論