計算機組成原理課程設計——微程序設計報告書(共18頁)_第1頁
計算機組成原理課程設計——微程序設計報告書(共18頁)_第2頁
計算機組成原理課程設計——微程序設計報告書(共18頁)_第3頁
計算機組成原理課程設計——微程序設計報告書(共18頁)_第4頁
計算機組成原理課程設計——微程序設計報告書(共18頁)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上課程設計指導教師評定成績表項目分值優秀(100x90)良好(90x80)中等(80x70)及格(70x60)不及格(x60)評分參考標準參考標準參考標準參考標準參考標準學習態度15學習態度認真,科學作風嚴謹,嚴格保證設計時間并按任務書中規定的進度開展各項工作學習態度比較認真,科學作風良好,能按期圓滿完成任務書規定的任務學習態度尚好,遵守組織紀律,基本保證設計時間,按期完成各項工作學習態度尚可,能遵守組織紀律,能按期完成任務學習馬虎,紀律渙散,工作作風不嚴謹,不能保證設計時間和進度技術水平與實際能力25設計合理、理論分析與計算正確,實驗數據準確,有很強的實際動手能力、經

2、濟分析能力和計算機應用能力,文獻查閱能力強、引用合理、調查調研非常合理、可信設計合理、理論分析與計算正確,實驗數據比較準確,有較強的實際動手能力、經濟分析能力和計算機應用能力,文獻引用、調查調研比較合理、可信設計合理,理論分析與計算基本正確,實驗數據比較準確,有一定的實際動手能力,主要文獻引用、調查調研比較可信設計基本合理,理論分析與計算無大錯,實驗數據無大錯設計不合理,理論分析與計算有原則錯誤,實驗數據不可靠,實際動手能力差,文獻引用、調查調研有較大的問題創新10有重大改進或獨特見解,有一定實用價值有較大改進或新穎的見解,實用性尚可有一定改進或新的見解有一定見解觀念陳舊論文(計算書、圖紙)撰

3、寫質量50結構嚴謹,邏輯性強,層次清晰,語言準確,文字流暢,完全符合規范化要求,書寫工整或用計算機打印成文;圖紙非常工整、清晰結構合理,符合邏輯,文章層次分明,語言準確,文字流暢,符合規范化要求,書寫工整或用計算機打印成文;圖紙工整、清晰結構合理,層次較為分明,文理通順,基本達到規范化要求,書寫比較工整;圖紙比較工整、清晰結構基本合理,邏輯基本清楚,文字尚通順,勉強達到規范化要求;圖紙比較工整內容空泛,結構混亂,文字表達不清,錯別字較多,達不到規范化要求;圖紙不工整或不清晰指導教師評定成績:指導教師簽名: 年 月 日重慶大學本科學生課程設計任務書課程設計題目微程序設計學院計算機學院專業計算機科

4、學與技術年級2006已知參數和設計要求:用微程序控制器實現以下指令功能調用:CALLaddr ;指令功能與80X86相同,addr是8位二進制地址 返回:RET ;存儲器到存儲器傳送:MOV memi , memj; memi (memj), ij,memi內存單元地址帶右移的加法運算:ADD Ri , Rj , N; Ri (Ri)+(Rj)N ,Rj中內容不變 N=0-7學生應完成的工作:根據模型計算機的數據路徑以及微程序控制器的工作原理,設計各指令格式以及編碼,并實現各機器指令微代碼,根據定義的機器指令,自擬編寫包含以下指令的應用程序。參考實驗5.3、6.1。上機調試并輸出正確結果,給出

5、完整的設計報告。目前資料收集情況(含指定參考資料):計算機組成原理實驗指導書計算機組成和設計,David A.Patterson編,清華大學出版社,2003年12月計算機組織與結構,William Stallings編,高等教育出版社,2001年8月計算機組成與系統結構,李亞民編,清華大學出版社,2000年4月課程設計的工作計劃: 2008-2009第一學年第14周任務下達日期 2008 年 12 月 8 日完成日期 2008年 12 月 8 日指導教師 (簽名)學 生 (簽名)說明:1、學院、專業、年級均填全稱,如:光電工程學院、測控技術、2003。2、本表除簽名外均可采用計算機打印。本表不

6、夠,可另附頁,但應在頁腳添加頁碼。計算機組成原理課程設計報告書一、設計目的:綜合運用所學過的計算機原理知識,設計并實現較為完整的計算機。掌握運用計算機原理知識解決問題和設計指令程序的能力。通過課程設計的綜合訓練,培養實際分析問題,編寫程序指令和動手能力、團隊協作精神,幫助學生系統掌握計算機組成原理課程的主要內容。二、設計要求:設計要求:用微程序控制器實現以下指令功能調用:CALLaddr ;指令功能與80X86相同,addr是8位二進制地址返回:RET ;存儲器到存儲器傳送:MOV memi , memj; memi (memj), ij,memi內存單元地址帶右移的加法運算:ADD Ri ,

7、 Rj , N; Ri (Ri)+(Rj)N ,Rj中內容不變 N=0-7根據模型計算機的數據路徑以及微程序控制器的工作原理,設計各指令格式以及編碼,并實現各機器指令微代碼,根據定義的機器指令,自擬編寫包含以下指令的應用程序。三、微程序控制器的原理:A. 微程序控制的基本思想:1. 若干微命令編制成一條微指令,控制實現一步操作; 2. 若干微指令組成一段微程序,解釋執行一條機器指令; 3. 微程序事先存放在控制存儲器中,執行機器指令時再取出。B. 基本組成:控制存儲器,微指令寄存器,微地址寄存器,地址轉移邏輯框圖:圖1 微程序控制器組成原理框圖控制存儲器(CM):用來存放實現全部指令系統的微程

8、序,位于CPU中。它是一種只讀型存儲器,要求速度快,讀出周期短微指令寄存器:存放當前由控制存儲器讀出的一條微指令信息,分為微地址寄存器和微命令寄存器兩個部分。其中微地址寄存器決定將要訪問的下一條微指令的地址,微命令寄存器則保存一條微指令的操作控制字段和判別測試字段(P)的信息地址轉移邏輯:自動完成修改微地址的任務。微程序控制器:微程序控制器的基本任務是完成當前指令的翻譯和執行,即將當前指令的功能轉換成可以控制的硬件邏輯部件工作的微命令序列,完成數據傳送和各種處理操作。它的執行方法就是將控制各部件動作的微命令的集合進行編碼,即將微命令的集合仿照機器指令一樣,用數字代碼的形式表示,這種表示稱為微指

9、令。這樣就可以用一個微指令序列表示一條機器指令,這種微指令序列稱為微程序。微程序存儲在一種專用的存儲器中,稱為控制存儲器,微程序控制器原理框圖如圖2所示6MA5-MA02I7-I2P4-P1T4地址T16SE6SE0T2CLR6uA5ua0T2uIR微指令CM2816*324位S3A8ABCQQ D指令譯碼單元3-8譯碼器指令寄存器IR圖2 微程序控制器原理框圖C. 微程序控制計算機的工作過程:下面通過計算機啟動、執行程序直到停機的過程,來說明微程序是如何控制計算機工作的:計算機加電以后,首先由復位信號(Reset)將開機后執行的第一條指令的地址送入PC內,同時將一條取指微指令送入微指令寄存器

10、中,并將其他一些有關的狀態位或寄存器置于初始狀態。當電壓達到穩定值后,自動啟動計算機,產生節拍電位和工作脈沖。為保證計算機正常工作,電路必須保證開機后第一個機器周期信號的完整性,在該CPU周期末,產生開機后第一個工作脈沖。然后計算機開始執行程序,不斷地取出指令、執行指令。程序可以存放在固定存儲器中,也可以利用固化在只讀存儲器(ROM)中的一小段引導程序,將要執行的程序和數據從外部設備調入主存。實現各條指令的微程序是存放在微程序控制器中的。當前正在執行的微指令從微程序控制器中取出后放在微指令寄存器中,由微指令的控制字段中的各位直接控制信息和數據的傳送,并進行相應的處理。當遇到停機指令或外來停機命

11、令后,應該待當前這條指令執行完畢后再停機或至少在本機器周期結束時停機。要保證停機后,重新啟動計算機能繼續工作而且不出現任何錯誤。四、總體設計(系統構成):實現一個簡單的 CPU,并且在此CPU 的基礎上,繼續構建一個簡單的模型計算機。CPU 由運算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序計數器(PC)和地址寄存器(AR)組成,如圖3所示。這個CPU 在寫入相應的微指令后,就具備了執行機器指令的功能,但是機器指令一般存放在主存當中,CPU 必須和主存掛接后,才有實際的意義,所以還需要在該CPU 的基礎上增加一個主存和基本的輸入輸出部件,以構成一個簡單的模型

12、計算機。圖3基本CPU構成原理圖程序計數器PC:程序計數器PC由兩片4位可預置二進制計數器構成8位的計數器。使用“可預置”是因為轉移指令需要直接修改PC的值。其電路原理如下圖。88LOADT4LDPCPC(74LS161)PC(74LS161)圖3 程序計數器PC地址寄存器AR:地址寄存器保存訪問存儲器時的地址信息,由74LS273實現。其電路原理如下圖。88AR(74LS273)T4LDAR圖4 地址寄存器AR指令寄存器IR:指令寄存器IR存放的是正在執行的機器指令,它作為指令譯碼器電路的輸入,實現程序跳轉控制。其電路原理如下圖。88IR(74LS273)T4LDIR圖5 指令寄存器IR寄存

13、器堆R0:寄存器R0使用的芯片是74LS374,該芯片是8個三態D-FF。其R0電路原理如下圖。R0-B88R0(74LS374)T4LDR0圖6 寄存器R0數據通路如圖:圖8數據通路圖五、詳細設計微程序功能設計: (1)指令設計助記符 機器指令碼 說明ADD 0000 0000 * * (data1+data2 )R0 OUT 0011 0000 R0-OUTMOV 0100 0000 (addr1)-(addr2)LDI 0110 0000 * (data)-R0CALL 0111 0000 * 調用子程序RET: 1000 0000 子程序返回 ADD 是三字節指令,后面兩個* *是要進

14、行加法的數據,本指令的功能是數據一加上數據二之后左移一位,結果存在R0里;OUT是輸出;MOV指令實現的是將內存地址一的數據傳輸到內存地址二,因為它單字節指令,所以微指令執行期間要靠IN單元輸入要操作的內存地址;LDI是雙字節指令,把后面的*送到R0里;CALL是調用子程序,也還是雙字節指令,*是要調用子程序的入口地址;RET指令用在子程序的末尾,幫助子程序正確返回。 (2)微指令設計 根據機器指令所實現的功能,畫出微程序流程圖。 微程序流程圖:0001PCARPC+1MAA左移1-R0PCARPC+1MBA+B-A300A090D0C0BPCARPC+1MARPNOP010330INARR0

15、MMR0INAR3408070601PCARPC+1MR0360111APCPCMPCARPC+1MAR0AR370113141516R0ARMPC380112R0 IO0133ADDOUTMOVLDICALLRET 當全部微程序設計完畢后,將每條微指令代碼化,下表即為將微程序流程圖按微指令格式轉化而成的“二進制微代碼表”。 二進制微代碼表地址十六進制高五位S3-S0A字段B字段C字段MA5-MA000000000000000001006D430000000001101101010300010000011100000130006D490000000001101101010910100A0001

16、000000010000000A006D4B0000000001101101010B10200C0001000000100000000C04920D0000010010010010000D0000001110010010003400011000011000000006000100000011000000070001100001100000000800100000000001000037006D53000000000110110101130001000000010000001400000000011001000015200C160010000000001100001600000000010100

17、110136006D5100000000011011010111000100000011000000380000000001100100001200010000010100010133001010000000010000 實驗準備: 按下圖連接電路實驗接線圖:將微程序和機器程序以指定的格式寫入到以TXT 為后綴的文件中聯機運行。指令格式: 微指令格式: 機器指令格式: $M XX XXXXXX $P XX XX 十六進制微指令代碼 十六進制機器指令代碼十六進制地址十六進制地址 標志符 標志符根據流程圖及指令格式,安排微指令地址的地址編碼及微指令編碼:; /* Start Of Main Mem

18、ory Data * /$P 00 40 ;MOV$P 01 60 ;LDI$P O2 F1 ;DATA$P 03 70 ;CALL$P 04 06 ;ADDR$P 05 30 ;0UT$P 06 00 ;ADD$P 07 11 ;DATA$P 08 22 ;DATA$P 09 30 ;OUT$P 0A 60 ;LDI$P 0B F1 ;DATA$P 0C 80 ;RET; /* End Of Main Memory Data * /; /* Start Of MicroController Data * /$M 00 ; NOP$M 01 006D43 ; PC-AR,PC 加1$M 03

19、; MEM-IR, P;ADD程序段$M 30 006D49 ;PC-AR PC+1$M 09 10100A ;M-A$M 0A 006D4B ;PC-AR PC+1$M 0B 10200C ;M-B$M 0C 04920D ;A+B-A$M 0D ;AR0;MOV程序段$M 34 ;IN-AR$M 06 ;MEM-R0$M 07 ;IN-AR$M 08 ;R0-MEM;CALL程序段$M 37 006D53 ;PC-AR PC+1$M 13 ;MEM-A$M 14 ;R0-AR$M 15 200C16 ;PC-MEM$M 16 ;A-PC;LDI程序段$M 36 006D05 ;PC-AR,

20、PC+1$M 11 ;MEM-R0;RET程序段$M 38 ;R0-AR$M 12 ;MEM-PC;OUT指令$M 33 ;R0-IO; /* End Of MicroController Data */聯機:選擇聯機軟件的“【轉儲】【裝載】”功能,在打開文件對話框中選擇上面所保存的文件,軟件自動將機器程序和微程序寫入指定單元。選擇聯機軟件的“【轉儲】【刷新指令區】”可以讀出下位機所有的機器指令和微指令,并在指令區顯示,對照文件檢查微程序和機器程序是否正確,如果不正確,則說明寫入操作失敗,應重新寫入,可以通過聯機軟件單獨修改某個單元的指令,以修改微指令為例,先用鼠標左鍵單擊指令區的微存TAB

21、按鈕,然后再單擊需修改單元的數據,此時該單元變為編輯框,輸入6位數據并回車,編輯框消失,并以紅色顯示寫入的數據。六、測試:運行:將時序與操作臺單元的開關KK1 和KK3 置為運行檔,進入軟件界面,選擇菜單命令“【實驗】【簡單模型機】”,打開簡單模型機數據通路圖。按動CON 單元的總清按鈕CLR,然后通過軟件運行程序,選擇相應的功能命令,即可聯機運行、監控、調試程序。觀察微程序每一步的實現,在數據通路圖和微程序流中觀測指令的執行過程。對應微指令:$M 34 ;IN-AR(MOV中) 對應微指令:$M 06 ;MEM-R0(MOV中) 對應微指令:$M 11 ;MEM-R0(LDI中) 對應微指令

22、:$M 13 ;MEM-A(CALL中) 對應微指令:$M 14 ;R0-AR(CALL中) 對應微指令:$M 16 ;A-PC(CALL中) 對應微指令:$M 0B 10200C ;M-B(ADD中) 對應微指令:$M 0D ;AR0(ADD中) 對應微指令:$M 33 ;R0-IO(OUT中) 對應微指令:$M 38 ;R0-AR(RET中)實驗結果: 實驗結果完全符合當初的設計,各個微指令都實現了預先設計的目標,機器程序的測試也達到預期的效果。七、設計中出現的問題和解決方法(一)出現問題: (a)在設計CALL指令時,需要把當前指令的位置壓棧,等到子程序調用RET指令時再將之彈出棧,方可返回對應的主程序。但設計指令時并未設計PUSH,POP指令,因此保存當前指令成為一個難題。 (b)在設計MOV指令時,內存之間是不可以直接傳送數據。(2) 對應的解決方法: (a)為解決此問題,設計時就多加了一條LDI(立即數送寄存器)指令,目的是使得我們自己可以指定一個內存地址,存放我們當前的指令地址。這樣,在我們調用CALL指令前只需調用LDI即可指定位置一個位置存儲當前指令地址(類似壓棧)。當然,RET也要調用它。()解決方法,運用寄存器當中轉,先把存儲器一中的數據放到寄存器,

溫馨提示

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

評論

0/150

提交評論