《計算機組成與體系結構(一)》課程設計報告_第1頁
《計算機組成與體系結構(一)》課程設計報告_第2頁
《計算機組成與體系結構(一)》課程設計報告_第3頁
《計算機組成與體系結構(一)》課程設計報告_第4頁
《計算機組成與體系結構(一)》課程設計報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成與體系結構課程設計報告計算機組成與 體系結構(一) 課程設計報告班 級:13級計算機科學與技術一班 小組隊員: E11314033 陳柚霖 E11314079 陳 斌 完成日期:2015年10月29日 解決裝修貼墻紙花費的預算問題目 錄目 錄目 錄- 1 -一、設計目的- 2 -二、設計題目- 2 -1.問題背景- 2 -2.題目設計及模型建立- 2 -3.模型機的功能- 3 -三、指令格式與指令系統(tǒng)- 3 -1.數(shù)據(jù)格式- 3 -2.指令格式- 3 -1).算術邏輯指令- 4 -2).I/O指令- 4 -3).訪問指令及轉移指令- 4 -4).停機指令- 5 -3.指令系統(tǒng)- 5

2、-四、總體結構與數(shù)據(jù)通路- 6 -五、指令執(zhí)行流程- 6 -六、微程序流程圖和微程序- 9 -七、課程設計總結- 9 -1.遇到的問題和解決的方法- 9 -2.收獲與體會- 10 -3.小組成員各自的任務和完成情況- 12 -八、實驗結果圖- 13 -九、附錄- 16 -附錄一:數(shù)據(jù)通路圖- 16 -附錄二:微程序流程圖- 17 -附錄三:微程序- 18 -一、 設計目的隨著社會科技的發(fā)展,計算機被應用到各行各業(yè),人們步入自動化、智能化的生活階段。本次課程設計課題是基本模型機的設計與實現(xiàn),它正體現(xiàn)了這一點。利用CPU與簡單模型機來實現(xiàn)計算機組成原理課程及實驗中所學到的實驗原理和編程思想,硬件設

3、備自擬,編寫指令的應用程序,用微程序控制器實現(xiàn)了一系列的指令功能,最終達到將理論與實踐相聯(lián)系。本課程設計是計算機組成原理課程之后開設的實踐環(huán)節(jié)課程。通過本課程設計,使學生進一步加深對計算機原理系列課程相關內容的理解,掌握CPU設計的基本方法和計算機系統(tǒng)的組成原理,進一步鞏固所學的理論知識,提高運用所學知識分析和解決實際問題的能力;鍛煉計算機硬件的設計能力、調試能力;培養(yǎng)嚴謹?shù)目茖W實驗作風、良好的工程素質及團隊協(xié)作精神,為今后的工作打下基礎。二、 設計題目1. 問題背景墻紙以其柔韌的質感,使墻面環(huán)境變得溫馨、親切?,F(xiàn)在,越來越多的用戶在裝修時更青睞使用到墻紙。特別是近期熱選的環(huán)保墻紙對于室內的裝

4、扮非常重要,不光能起到房屋裝飾的點睛之筆,另外室內的墻紙環(huán)保也將影響到你的睡眠與健康。貼墻紙花費的預算,也將成為房屋裝修預算的一部分。2. 題目設計及模型建立基于問題背景,我們要設計的題目就是解決裝修貼墻紙花費的預算問題。其基本模型就是求長方體的內表面積(除去上下表面)。假設長方體(見圖1 )的長、寬、高分別用a、b、c(單位:米)表示,墻紙每平方米的價格為d(單位:元),那么問題求解的數(shù)學公式如下:y=(a*c+b*c)*2*d=(a+b)*c*2*d基于上述模型,可通過復雜模型機的設計,根據(jù)輸入a、b、c、d的值進行計算,并輸出最終結果。圖1 長方體模型abc3. 模型機的功能簡單來說,模

5、型機的功能主要是進行四個數(shù)的相加與相乘運算。由于,模型機不存在乘法指令,需要通過其他相關的指令來設計并實現(xiàn)。三、 指令格式與指令系統(tǒng)1. 數(shù)據(jù)格式模型機規(guī)定數(shù)據(jù)采用定點整數(shù)補碼表示,字長為8位,其格式如下: 7 6 5 4 3 2 1 0符號 尾 數(shù)其中,第7位為符號位,數(shù)值的表示范圍是:。2. 指令格式模型機設計四大類指令共13條,其中包括算術邏輯指令、I/O指令、訪問及轉移指令和停機指令。1). 算術邏輯指令設計六條算術邏輯指令并用單字節(jié)表示,尋址方式采用寄存器直接尋址,其格式如下:7 6 5 4 3 2 1 0OP-CODE RS RD其中,OP-CODE為操作碼,RS為源寄存器,RD為

6、目的寄存器,并規(guī)定: RS或RD選定的寄存器000110 R0 R1 R22). I/O指令輸入(IN)和輸入(OUT)指令采用單字節(jié)指令,其格式如下:7 6 5 4 3 2 1 0OP-CODE addr RD其中,addr=01時,選中“INPUT DEVICE”中的開關組作為輸入設備,addr=10時,選中“INPUT DEVICE”中的數(shù)碼塊作為輸入設備。3). 訪問指令及轉移指令模型機設計兩條訪問指令,即存數(shù)(STA)、取數(shù)(LDA),兩條轉移指令,即無條件轉移(JMP)、結果為零或有進位轉移(BZC),指令格式如下: 7 6 5 4 3 2 1 0 10 MOP-CODE RD D

7、其中,OP-CODE為操作碼,RD為目的寄存器地址(LDA、STA指令使用)。D為位移量(正負均可),M為尋址模式,其定義如下: 尋址模式有效地址E說明00011011 E=D E=(D) E=(RI)+D E=(PC)+D直接尋址間接尋址RI變址尋址相對尋址4). 停機指令停機指令格式如下:7 6 5 4 3 2 1 01111 11 11HALT指令,用于實現(xiàn)停機操作。3. 指令系統(tǒng)在這次課程設計中,我們?yōu)閷崿F(xiàn)模型機對四個數(shù)進行加法乘法運算的功能,主要用到ADD、COM、INC、ROL、JMP、BZC、IN、OUT、HALT九條機器指令,其助記符、功能和具體指令格式見表1。表1 算數(shù)邏輯指

8、令的助記符、功能和具體格式助記符指令格式功 能CLR RD0000 00 RD0RDMOV RS,RD0001 RS RDRSRDADD RS,RD0010 RS RDRS+RDRD(不帶進位)INC RD0011 RS RDRS+1RDCOM RD0100 RS RDRD取反RDROL RS,RD1100 RS RDRS循環(huán)左移一位,然后RSRD(不帶進位)LDA M,D,RD10 M 00 RDD(E)RDSTA M,D,RD10 M 01 RDDRD(E)JMP M,D10 M 10 00DEPCBZC M,D10 M 11 00D當CY=1或Z=1,EPCIN addr,RD1101

9、01 RD(addr)RDOUT addr,RD1110 10 RDRD(addr)HALT1111 11 11停機四、 總體結構與數(shù)據(jù)通路本模型機的數(shù)據(jù)通路框圖如圖2所示(見附錄一)。按照系統(tǒng)建議的微指令格式,參照微指令流程圖,將每條微指令代碼化,譯成二進制代碼表,并將二進制代碼表轉換為聯(lián)機操作時的十六進制格式文件,見表2。表2 微代碼定義242322212019181716151413121110987654321S3S2S1S0MCnWEA9A8A字段B字段P字段uA5uA4uA3uA2uA1uA0 A字段 B字段 P字段151413控制信號121110控制信號987控制信號000000

10、000001LDRI001RS_G001P1010LDDR1010RD_G010P2011LDDR2011RI_G011P3100LDIR100299_G100P4101LOAD101ALU_G101AR110LDAR110PC_G110LDPC五、 指令執(zhí)行流程根據(jù)微程序流程圖寫出微指令代碼,見表3:表3 二進制微代碼表十六進制地址八進制地址S3-CnWEA9 A8ABP下址00000000000110000001000010000101000000011110110110000010020200000000110000000101000003030000000010100000000001

11、000404000000001110000010100000050500000000111000000000011006060000000010100000000001110707000000001110000010100000081000000001111011011000101009110000000111101101100011000A120000000010100000001010000B130000000110000000000000010C140000000000100000001001110D150000000010100000000011100E1600000001101101

12、10000011110F171001010111101010001011111020001111011001101000000001112100000001100100100000000112220000000110100010001011011323000000011010001000010110142400000001101000100010111015251001010110011010000000011626000000011001101101000001172700010001100010000010011018300000000111101101100000111931000000

13、0111101101100001011A320000000111101101100011011B330000000111101101101010101C340011000110000010000101111D350000000000010000000000011E360000001100000100000000011F37000000011000000000011111204000000000100100000000000121410000001010000100000000012242000001011101101110000001234300000001100000001110010024

14、44000000011000000000000001254510010101101010101010000026460000000110011000000000012747000001101000101000001001285000000111000010100000100029510000010111011011100000012A520000000010100000001010112B530000000110111100001011002C541001010111101010001001012D550000000110110100000101012E56000011011001101000

15、0000012F57100101011010101010100000當B字段置為101時,打開ALU運算結果輸出三態(tài)門,微代碼的高6位設置不同的值會有不同的功能,具體功能見表4:表4 74LS181功能表S3S2S1S0M=0(算術運算)M=1(邏輯運算)CN=1無進位CN=0有進位0000F=F=A加1F=0001F=F=()加1F=0010F=F=()加1F=0011F=0減1F=0F=0100F=加F=加加1F=0101F=()加F=()加加1F=0110F=減減1F=減F=0111F=減1F=F=1000F=加F=加加1F=1001F=加F=加加1F=1010F=()加F=()加加1F

16、=1011F=減1F=F=1100F=加F=加加1F=11101F=()加F=()加加1F=1110F=()加F=()加加1F=1111F=減1F=F=進行移位運算時需要使用一片74LS299作為移位發(fā)生器,299_G信號控制其使能端,T4時序為其時鐘脈沖,由S1、S0、M控制信號控制其功能狀態(tài),見表5:表5 74LS299功能表299_GS1S0M功能000任意保持0100循環(huán)右移0101帶進位循環(huán)右移0010循環(huán)左移0011帶進位循環(huán)左移任意11任意裝數(shù)六、 微程序流程圖和微程序根據(jù)機器指令系統(tǒng)要求,設計微程序流程圖及確定微地址,如圖3所示(見附錄二)。實驗所用的微程序,見附錄三。七、 課

17、程設計總結1. 遇到的問題和解決的方法Q1:微地址編碼問題重新設計了指令系統(tǒng)后,需要對實驗指導書上流程圖的微地址進行重新設置,剛開始對JMP、BZC的微地址設置出現(xiàn)了錯誤,以為是根據(jù)指令格式的第7、6和第3、2位進行設置,后來根據(jù)老師的指導,發(fā)現(xiàn)只需根據(jù)第3、2位進行設置,于是重新設置了正確的微地址。Q2:微指令代碼的問題根據(jù)微程序流程圖寫出各條微指令的微代碼后,進行$M的微程序編寫,由于不夠細心,導致在將24位0、1代碼“翻譯”成16進制的微程序時,有一位未能正確“翻譯”,使得程序在運行期間,執(zhí)行到BZC指令時,總是循環(huán)執(zhí)行DR1+DR2AR指令,從而不能正確跳轉,在經過對微代碼的逐一排查后

18、,找到了錯誤所在,并正確修改。修改完后的微程序能夠正確運行。Q3:BZC跳轉的問題BZC是根據(jù)CF和ZF標志位進行跳轉的,只要CF或ZF的值為1就進行跳轉。剛開始設計的機器指令,是用輸入的值減1,減到0時進行跳轉。由于減去一個數(shù)等于加上這個數(shù)的補碼,所以只要輸入的值大于1,進行減1操作都會有進位產生,因此該方法不可取。后來考慮到可以輸入一個負數(shù),每次進行加1操作,當加到0時進行跳轉。這種方法從理論上是行得通的,但是實驗結果表明,無論輸入的負數(shù)加1后是否為0都會發(fā)生跳轉。后來請教老師得知實驗箱的底層設計可能存在不符合邏輯的地方,于是又考慮其它方法。最終實驗成功所采用的方法如下:首先將輸入的數(shù)進行

19、取反操作(COM),然后進行加1操作(這里的加1操作即INC指令,在原來的指令微代碼的基礎上進行了更改,將原先P字段的000設置為101,即打開AR鎖存器控制端的控制信號,當T4脈沖到來時,進位結果被鎖存到進位鎖存器中。),這兩步操作后即得到輸入的數(shù)的負數(shù)的補碼,然后再進行INC操作,如果不為零則執(zhí)行相應的操作,直到結果為0,這時,CF和ZF標志位的值均為1,實現(xiàn)了程序的跳轉。2. 收獲與體會陳柚霖(E11314033):第一節(jié)實驗課上,首先對上一學期的計算機組成原理實驗課的基本流程進行了回顧與復習,然后聽老師講解了復雜模型機設計的一般步驟和相關內容的基本原理,在此基礎上,課后和隊友認真討論了

20、我們組將要設計的模型機所要實現(xiàn)的功能,并在老師的指導下,對其進行了優(yōu)化。然后建立了問題求解的數(shù)學模型并寫出了簡單的匯編指令代碼,因為程序里需要用到乘法指令,當時直接用MUL助記符表示乘法操作,后來發(fā)現(xiàn)模型機中并沒有乘法指令,于是,想到了用循環(huán)加法來實現(xiàn)(例如a*b,首先令c=a,然后每循環(huán)一次,就進行一次a+c操作,共循環(huán)b-1次)。確定了模型機的功能后,就著手下一步工作,重新設計指令系統(tǒng)。這一步比較順利,在原來的指令系統(tǒng)上,我們對各指令的操作碼均進行了修改(除了R0,R1,R2分別用00,01,10表示以及尋址方式對應的二進制編碼沒變),然后就進行微程序流程圖的繪制。這一步也沒有大問題,除了

21、對JMP、BZC的微地址的設置沒有考慮清楚(這一點已經在前文的Q1中提及)。接著就是進行微程序$M的編寫工作,它需要和微程序流程圖以及表4、表5進行嚴格的對照,尤其是在UA5UA0的6位后續(xù)微地址,使微程序轉入相應的微地址入口,從而實現(xiàn)微程序的順序、分支、循環(huán)。在多次修改微代碼表后最終確定了$M微程序,接著就是編寫$P機器指令,在前面的工作已經完成的情況下,$P機器指令的編寫已經變得很簡單了。最后是上機階段,在一次次的摸索下,逐漸掌握了復雜模型機的運行原理。期間遇到最多的情況就是BZC的跳轉問題,程序并不能在預期的地方實現(xiàn)跳轉,指示燈的指示信號也是錯誤的(在前文Q3中已提及)。整個設計的過程中

22、,修修改改,不斷驗證新的想法是否可行,最終在團隊的協(xié)作和老師的指導下,順利完成了復雜模型機的設計,受益匪淺。陳斌(E11314079):從剛開始確定課題到最終得出正確結果的那一刻,期間出現(xiàn)了許多意料之外的錯誤,經過了多次的修改與調試,最終實現(xiàn)了最初的目標。剛開始由于對理論知識不熟悉,總感覺無從下手,后來和隊友、同學討論交流后,逐漸有了思路,并逐步完成了前期準備工作。當明白了24位微代碼的每一位各代表什么意思后,對微代碼的修改就有了理論上的支撐。起初,我們根據(jù)74LS181功能表(表4)設計了自減一指令(即DEC指令),后來由于自減一操作會發(fā)生進位(減1相當于加-1的補碼),導致程序異常跳轉,我

23、們又改進了自加一指令(INC指令),將其P字段改為101,這樣,進位結果就會被鎖存到進位鎖存器中,當加1后結果為零時,指示燈的指示信號可以正確指示,程序正確跳轉。我們還對ADC指令進行了修改,將其改為ADD指令(即不帶進位的加法),只需將原來ADC指令的P字段改為000即可,同時還將RLC指令改為ROL指令(即不帶進位的循環(huán)左移),這是根據(jù)74LS299功能表(表5),將RLC指令的微代碼的S1、S0和M這三位的值修改為010。調試期間,由于不清楚各指令對CF和ZF標志位具體有什么影響,導致走了很多彎路,好在在多次嘗試后找到了一條正確的路。通過這次課程設計,讓我更加深刻地體會到計算機認識的只有

24、“0”和“1”,而且失之毫厘差之千里。同時也讓我明白了僅僅從課本上學到的理論知識是完全不夠的,只有理論和實踐相結合,才能真正學到并學好知識,畢竟實踐是檢驗真理的唯一標準。雖然整個設計過程中出現(xiàn)了很多問題,但是我們并沒有輕易放棄,隊友間相互鼓勵,相互幫助,共同討論,共同實踐,并最終得出了正確結果。3. 小組成員各自的任務和完成情況任務完成情況參與成員確定課設題目,需求分析完成陳柚霖 陳斌指令格式重新設計完成陳柚霖 陳斌微程序流程圖繪制完成陳柚霖 陳斌微代碼微程序的編寫完成陳柚霖 陳斌機器指令代碼的編寫完成陳柚霖 陳斌上機調試完成陳柚霖 陳斌八、 實驗結果圖1輸入長2輸入寬3輸入高4 (長+寬)*高5 (長+寬)*高*26 (長+寬)*高*2*單價并輸出(單價已在5、6步之間輸入到R2中,這里沒顯示)九、 附錄附錄一:數(shù)據(jù)通路圖圖2 數(shù)據(jù)通路圖附錄二:微程序流程圖圖3 微程序流程圖附錄三:微程序機器碼助記符說明$P00D4IN R0輸入長到R0$P01D5IN R1輸入寬到R1$P0221ADD R0 R1長加寬$P0314MOV R1 R0把長加寬得到的值賦給R0$P04D6IN R2輸入高到R2$P054ACOM R2R2取反$P063AINC R2再加1,變成高的相反數(shù)$P073AINC R2每進行加1

溫馨提示

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

評論

0/150

提交評論