計算機組成原理課程設計基本模型機的設計不帶進位的與或運算指令的實現_第1頁
計算機組成原理課程設計基本模型機的設計不帶進位的與或運算指令的實現_第2頁
計算機組成原理課程設計基本模型機的設計不帶進位的與或運算指令的實現_第3頁
計算機組成原理課程設計基本模型機的設計不帶進位的與或運算指令的實現_第4頁
計算機組成原理課程設計基本模型機的設計不帶進位的與或運算指令的實現_第5頁
已閱讀5頁,還剩27頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、學 號: 課 程 設 計題 目不帶進位的與或運算指令的實現學 院計算機科學與技術專 業計算機科學與技術班 級姓 名指導教師20年月日目 錄課程設計任務書11.題目32.設計的目的及設計原理32.1設計的目的及階段32.1.1 設計的目的32.1.2分析階段32.1.3設計階段32.1.4驗證階段32.2設計的原理43模型機的邏輯框44設計指令系統及分析其指令格式54.1設計指令系統54.2分析指令格式74.3 操作數尋址方式及編碼84.3.1直接地址尋址84.3.2寄存器直接尋址94.3.3寄存器間接尋址94.3.4立即數尋址105微程序的設計及微程序實現的方法105.1微指令格式的設計105

2、.2后續微地址的產生方法105.3微程序入口地址的形成106模型機當中時序的設計安排137設計指令執行流程148源程序和程序的指令代碼及微程序168.1源程序168.2程序的指令代碼178.3微程序179使用軟件hkcpt的聯機方式的實現過程199.1主要指令的時序圖199.2累加器a和有關寄存器、存儲器的數據變化以及數據流程2710課程設計總結28本科生課程設計成績評定表29課程設計任務書學生姓名: 專業班級: 指導教師: 工作單位:計算機科學與技術學院題 目: 基本模型機的設計不帶進位的與或運算指令的實現初始條件: 理論:學完“電工電子學”、“數字邏輯”、“匯編語言程序設計”、和“計算機組

3、成原理”課程,掌握計算機組成原理實驗平臺的使用。 實踐:計算機學院科學系實驗中心提供計算機、實驗的軟件、硬件平臺,在實驗中心硬件平臺驗證設計結果。要求完成的主要任務: (包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)1、基本模型機系統分析與設計,利用所學的計算機組成原理課程中的知識和提供的實驗平臺完成設計任務,從而建立清晰完整的整機概念。2、根據課程設計題目的要求,編制實驗所需的程序,上機測試并分析所設計的程序。3、課程設計的書寫報告應包括: (1)課程設計的題目。 (2)設計的目的及設計原理。 (3)根據設計要求給出模型機的邏輯框圖。 (4)設計指令系統,并分析指令格式。 (5)

4、設計微程序及其實現的方法(包括微指令格式的設計,后續微地址的產生方法以及微程序入口地址的形成)。 (6)模型機當中時序的設計安排。 (7)設計指令執行流程。 (8)給出編制的源程序,寫出程序的指令代碼及微程序。 (9)說明在使用軟件hkcpt的聯機方式與脫機方式的實現過程(包括編制程序中與或運算指令的時序分析,累加器a和有關寄存器、存儲器的數據變化以及數據流程)。 (10)課程設計總結(設計的特點、不足、收獲與體會)。時間安排: 周一:熟悉相關資料。 周二:系統分析,設計程序。 周三、四:編程并上實驗平臺調試 周五:撰寫課程設計報告。指導教師簽名: 年 月 日系主任(或責任教師)簽名: 年 月

5、 日課程設計報告書1.題目基本模型機的設計不帶進位與或運算指令的實現2.設計的目的及設計原理2.1設計的目的及階段2.1.1 設計的目的掌握簡單運算器的數據傳輸方式、了解通用寄存器的組成和硬件電路、利用通用寄存器實現數據的置數等功能、進一步熟悉存儲器和總線的硬件電路、掌握微程序控制器的原理、掌握微程序編制、寫入并觀察運行狀態等。掌握了各個單元模塊的工作原理,進一步將其組成完整的系統,構成1臺基本的模型機。在本設計中,我們將規劃讀寫內存、寄存器、邏輯運算等功能,并且編寫相應的微程序。通過使用軟件hkcpt,了解程序編譯、加載的過程,通過微單步、單拍調試,理解模型機中的數據流向。 本次設計的源程序

6、解決的問題是:求解“表達式(4f30)+23)22)-09)25(十六進制)”的值,并將其結果送入單元號為30h的內存單元。 2.1.2分析階段通過對計算機的基本組成、部件的設計、部件間的連接、微程序控制器的設計、微指令和微程序的編制與調試等過程,試著編寫連續幾個數的不帶進位的與或運算。2.1.3設計階段 通過對微指令格式了解和掌握,把分析階段的連續的幾個數的不帶進位的與或運算轉為成程序。2.1.4驗證階段驗證設計階段的程序代碼結果和實際的結果是否一致來判斷整個過程的正確性。2.2設計的原理計算機中cpu是核心,它是通過指令和微指令的執行來工作的。指令是計算機要完成的某一項功能。它對應到執行的

7、過程中是一段微程序。一段微程序含多條為指令,而一條微指令又含多個微命令。一個微命令驅動某個硬件部件執行某種操作。通過這樣一個關系,從而達到由計算機指令來驅動計算機各個硬部件的協調工作以實現一條指令的執行。在各個模塊中,各模塊的控制的控制信號都是手動模擬產生的。而在真正的實驗系統中,模型機的運行是在微程序的控制下,實現特定指令的功能。在本實驗平臺中,模型機從內存中取出、解釋、執行機器指令都將由微指令和之相配合的時序來完成,即一條機器指令對應一個微程序。3模型機的邏輯框圖其中運算器由2片74l181構成8位字長的alu單元。2片74ls374作為2個數據鎖存器(dr1、dr2),8芯插座alu-i

8、n作為數據輸入端,可通過短8芯扁平電纜,把數據輸入端連接到數據總線上。數據輸入鎖存器dr1的edr1為低電平,并且d1ck有上升沿時,那來自數據總線的數據打入鎖存器dr1。同樣使edr2為低電平、d2ck有上升沿時把數據總線上的數據打入數據鎖存器dr2。4設計指令系統及分析其指令格式4.1設計指令系統此次實驗涉及的指令有以下幾種:mov a, #data 將立即數傳遞到將累加器a中;orl a,#data 將累加器a和立即數相或,結果送入累加器a中;mov ri,#data 將立即數傳遞到寄存器ri中;sub a,ri 將累加器a中的內容減去寄存器ri中的內容,結果送入累加器a;add a,r

9、i 將累加器a中的內容加上寄存器ri中的內容,結果送入累加器a;anl a,#data 將累加器a和立即數相與,結果送入累加器a中; sta addr 將寄存器中內容寫入存儲器中; halt 停機指令;指令系統如下表:指令助記符指令功能指令編碼微周期微操作取指指令t0pc-地址總線-ramram-數據總線-ir1add a,r0add a,r1add a,r2add a,r3(a+ri) a0c0d0e0ft0t1t2t3adbusdr1ridbusdr2aludbusa、置cy取指微指令sub a,r0sub a,r1sub a,r2sub a,r3(a-ri) a1c1d1e1ft0t1t

10、2t3adbusdr1ridbusdr2aludbusa、置cy取指微指令mov a,#datadataa5ft0t1ramdbusa取指指令mov r0,#datamov r1,#datamov r2,#datamov r3,#datadatari6c6d6e6ft0t1ramdbusa取指指令orl a,#data(a)或dataacft0t1t2t3adbusdr1ramdbusdr2aludbusa取指指令anl a,#data(a)或dataadft0t1t2t3adbusdr1ramdbusdr2aludbusa取指微指令sta addr(a)addr8ft0t1t2ramdbus

11、ir2ir2地址總線,aram取指微指令halt停機fft0停機4.2分析指令格式一般指令由操作碼和操作碼組成,如下所示:操作碼地址碼 此實驗所涉及指令的格式如下:mov指令采用雙字節指令,其格式如下:7 6 5 43 21 0操作碼 ridata mov指令采用單字節指令,其格式如下:7 6 5 43 21 0操作碼a data mov指令采用單字節指令,其格式如下:7 6 5 43 21 0操作碼ridata add指令采用雙操作數指令,其格式如下:7 6 5 43 21 0操作碼ari sub指令采用雙操作數指令,其格式如下:7 6 5 43 21 0操作碼ari orl邏輯或指令采用單

12、字節指令,其格式如下: 7 6 5 43 21 0操作碼adata anl邏輯與指令采用單字節指令,其格式如下: 7 6 5 43 21 0操作碼adata sta取數據指令,其格式如下:7 6 5 43 21 0操作碼 data addr停機指令(halt),其格式如下:7 6 5 43 21 0操作碼 4.3 操作數尋址方式及編碼4.3.1直接地址尋址 如:雙字節指令 lda addr (addr)-a sta addr (a)-addr 第1字節 第2字節i7i6i5i4i3i2i1i0a7a6a5a4a3a2a1 操作碼 操作數地址addr 4.3.2寄存器直接尋址 指令字節中含有寄存

13、器選擇碼,決定選哪個寄存器進行操作。 如:單字節指令 mov a, ri (ri)-a 單字節i7i6i5i4i3i2i1i0 操作碼與ri選擇碼 如:雙字節指令 mov ri, #data data-ri 第1字節 第2字節i7i6i5i4i3i2i1i0a7a6a5a4a3a2a1 操作碼及ri選擇碼 data 4.3.3寄存器間接尋址 如:單字節指令: mov a,ri (ri)-a ri選擇碼i7i6i5i4i3i2i1i0 操作碼4.3.4立即數尋址 如:mov a, #data data-a mov ri, data data-ri 第1字節 第2字節i7i6i5i4i3i2i1i

14、0a7a6a5a4a3a2a1 操作碼及ri選擇碼 data 5微程序的設計及微程序實現的方法5.1微指令格式的設計一條微指令的一般格式是如下圖:判別測試下地址操作控制順序控制5.2后續微地址的產生方法由于本系統中指令系統規模不大,功能較簡單,微指令采用全水平、不編碼的方式,每一個微操作控制信號由一位微代碼來表示,24位微代碼至少可表示24個不同的微操作控制信號。用增量方式來控制微代碼的運行順序,每一條指令的微程序連續存放在微指令存儲器連續的單元中。在本系統內,mld為置微地址的控制信號,mck為工作脈沖。當mld=0、mck有上沿時,把md0md7的值作為微程序的地址,打入微地址寄存器。當m

15、ld=1、mck有上升沿時,微地址計數器自動加1。5.3微程序入口地址的形成在本實驗平臺的硬件設計是采用的24位微指令,若微指令采用全水平不編碼純控制場的格式,那么至多可有24個微操作控制信號,可由微代碼直接實現。若采用多組編碼譯碼,那么24位的微代碼通過二進制譯碼可實現2n個互斥的微操作控制信號。由于模型機指令系統規模較小,功能也不太復雜,所以采用全水平不編碼純控制場的微指令格式。在模型機中,用指令操作碼的高4位作為核心擴展成8位的微程序入口地址md0-md7。這種方法稱為“按操作碼散轉”(如下表所示)。微程序首地址形成md7md6md5md4md3md2md1md0001716151411

16、按操作碼散轉指令操作碼微程序首地址md7、md6i7i6i5i4md1、md0md7md0000001003h000011007h00010100bh00011100fh001001013h001011017h00110101bh00111101fh010001023h010011027h01010102bh01011102fh011001033h011011037h01110103bh01111103fh每條指令由不超過4條的微指令組成,那么可根據下表組成每條微程序的首地址。微指令的運行順序位下地址確定法,即采用計數增量方法,每條微指令執行過后微地址自動加1,指向下一條微指令地址。例如:確定

17、了一條程序的微程序入口地址為07h,那么執行完07h這條微指令后微地址加1,指向08h微地址。微地址寄存器由2片74ls161組成,當模型機在停止狀態下,微地址被清零。當實驗平臺開始運行時,微地址從00h開始運行。且00h放置一條取指指令,根據程序開始地址從內存中讀出第一條指令。00取指微指令010203減法指令微程序(1)04減法指令微程序(2)050607mov指令微程序(1)08mov指令微程序(2)09mov指令微程序(3).此次實驗程序中的微程序指令如下表:指令助記符微地址有效值微指令十六進制編碼mov a,#data17h18h19h1ahddfbff4dfffforl a,#da

18、ta33h34h35h36hfffcfeddff7efffbbe4dffffmov ri,#data1bh1ch1dh1ehddbfff4dffffadd a,ri03h04h05h06hfffcf9fe7f79fffba94dffffsub a,ri07h08h09h0ahfffcd6fe7f56fffb864dffffanl a,#data37h38h39h3ahfffcfbddff7bfffbbb4dffffsta addr23h24h25h26hd5ffffbbfdff4dffffhalt3fhffdfff6模型機當中時序的設計安排 由于模型機已經確定了指令系統,微指令采用全水平不編碼

19、純控制場的格式,微程序的入口地址采用操作碼散轉方式,微地址采用計數增量方式,所以可確定模型機中時序單元中所產生的每一拍的作用。本實驗中為了更好地觀察實驗的各個中間過程中各寄存器的值,由監控單元產生一個pls-o的信號來控制時序產生。pls-o信號經過時序單元的處理產生了4個脈沖信號。4個脈沖信號組成一個微周期,為不同的寄存器提供工作脈沖。 pls1: 微地址寄存器的工作脈沖,用來設置微程序的首地址及微地址加1。pls2: pc計數器的工作脈沖,根據微指令的控制實現pc計數器加1和重置pc計數器(如跳轉指令)等功能。pls3: 把24位微指令打入3片微指令鎖存器pls4: 把當前總線上的數據打入

20、微指令選通的寄存器7設計指令執行流程在每個系統中,一條指令從內存取出到執行完畢,需要若干個機器周期,任何指令中都必須有一個機器周期作為“取指令周期”,稱為公操作周期。而一條指令共需幾個機器周期取決于指令在機器內實現的復雜程度。對于微程序控制的計算機,在設計指令執行流程時,要保證每條微指令所含的微操作的必要性和合理性,還應知道總線的iab,idb,oab,odb僅是傳輸信息的通路,沒有寄存信息的功能,而且必須保證總線傳輸信息時信息的唯一性。以下描述取微指令執行周期:在模型機處于停機狀態時,模型機的微地址寄存器被清零,微指令鎖存器輸出無效。在處于停機狀態時,脈沖pls1對微地址寄存器(74ls16

21、1)無效,微地址寄存器保持為零。脈沖pls2對pc計數器無效,同時pls2把halt=1打入啟停單元中的運行狀態寄存器(74ls74)中,把模型機置為運行狀態,使微程序鎖存器輸出有效。pls3把微程序儲存器00h單元中的內容打入指令寄存器中。在模型機處于運行狀態時,脈沖pls1將微地址寄存器(74ls161)加一,脈沖pls2將pc計數器加1,pls3把微程序存儲器中的微指令打入微指令鎖存器并且輸出。pls4把當前總線上的數據打入當前微指令所選通的寄存器。 對于此次實驗每條指令的執行流程如下:周期微操作指令助記符t0t1t2t3取指微指令pc-地址總線-ramram-數據總線-ir1 mov

22、a,#dataram數據總線a取指微指令 orl a,#dataa數據總線dr1ram數據總線dr2alu數據總線a取指微指令mov ri,#data a數據總線ri取指微指令 add a,ria數據總線dr1ri數據總線dr2 alu數據總線a 取指微指令sub a,ria數據總線dr1ri數據總線dr2 alu數據總線a 取指微指令anl a,#dataa數據總線dr1ram數據總線dr2alu數據總線a取指微指令sta addrram數據總線ir2ir2地址總線,aram取指微指令 halt停機 8源程序和程序的指令代碼及微程序 8.1源程序mov a, #4fanl a, #30mov

23、 r0, #23add a, r0orl a, #22mov r2, #09sub a, r2anl a, #25sta 30halt該程序的功能是:先將16進制數4f與30進行邏輯與運算,結果放入累加器a中;再將16進制數23送入寄存器r0中,然后將23和a中的數據進行算術加,結果放入累加器a中;然后將a中的數據與22進行邏輯或運算,結果放入累加器a中,再將16進制數09送入寄存器r2中,然后將09和a中的數據進行算術減,結果放入累加器a中;然后將a中的數據與25進行邏輯與運算,結果放入累加器a中;并且a的值放入內存單元30中。8.2程序的指令代碼內存地址指令助記符指令碼或立即數說明00hm

24、ov a,#4fh5fh立即數4fh-a01h4fh02hanl a,#30hdfha和30進行與運算-a03h30h04hmov r0,#23h05h立即數23-r005h23h06hadd a,r006ha+r0-a07horl a,#22h07ha和22h進行或運算-a08hmov r2,#09h08h09h-r209h09h0ahsub a,r21eha-r2-a0bhanl a,#25hdfha和25與-a0chsta 308fh將a寫入ram30h0dh30h0ehhaltffh停機最后結果是地址為30h中的結果是02h8.3微程序mov a,#4f : 00004d,ff,ff

25、取指指令 0017dd,fb,ff dbusaanl a,#30: 00184d,ff,ff 取指指令 0037ff,fc,fb adbusdr1 0038dd,ff,7b ramdbusdr2 0039ff,fb,bb aluamov r0,#23: 003a4d,ff,ff 取指指令 001bff,bd,ff adbusriadd a,r0 : 001c4d,ff,ff 取指指令 0003ff,fc,f9 adbusdr1 0004ff,7f,79 ridbusa 0005ff,fb,a9 aludbusaorl a,#22 : 00064d,ff,ff 取指指令 0033ff,fc,fe

26、 adbusdr1 0034dd,ff,7e ramdbusdr2 0035ff,7b,ff aluamov r0,#23: 00364d,ff,ff 取指指令 001bff,bd,ff adbusrisub a,r0 : 001c4d,ff,ff 取指指令 001dff,7b,ff adbusdr1 001eff,7b,ff ridbusa 001fff,7b,ff aludbusaanl a,#42: 00204d,ff,ff 取指指令 0037fffcfb adbusdr1 0038ddff7b ramdbusdr2 0039fffbbb aluasta 30 : 003a4dffff

27、取指指令 0023d5ffff dbusir2 0024bbfdff ir2dbus; adbusramhalt : 003e4dffff 取指指令 0003fffdfff 停機9使用軟件hkcpt的聯機方式的實現過程 9.1主要指令的時序圖將4f存入累加器a中的時序圖4f與30進行邏輯與運算的時序圖:將23h存入寄存器r0的時序圖:將累加器a的數據r0中數據42進行算術加的時序圖:將累加器a的數據與22進行邏輯或的時序圖:將09h存入寄存器r2的時序圖:將累加器a的數據r2中數據09進行算術減的時序圖:將累加器a的數據與25進行邏輯與的時序圖:將最后結果送入地址30h的時序圖:具體截圖(縮略

28、)mov a,#7fanl a,#45mov r0,#22add a,r0orl a,#37mov r2,#42sub a,r2anl a,#27sta 30halt9.2累加器a和有關寄存器、存儲器的數據變化以及數據流程mov a,#4f數據流程:ram-dbus-a 執行后,a中數據值為50h,其他寄存器值無效anl a,#30數據流程:adbusdr1,ramdbusdr2,aludbusa 執行后,a中的值為00h,dr1中數據值為4fh,dr2中數據值為30h, 其他寄存器值不變mov r0,#23數據流程:ram-dbus-r0 執行后,r0中數據值為23h,a中值不變,其他寄存器

29、值無效add a,r0數據流程:a-dbus-dr1,r0-dbus-dr2,alu-dbus-a 執行后,a中值為23h,dr1中數據值為00h,dr2中數據值為23horl a,#22數據流程:adbusdr1,ramdbusdr2,aludbusa 執行后,a中的值為23h,dr1中數據值為23h,dr2中數據值為22h, 其他寄存器值不變mov r2,#09數據流程:ram-dbus-r0 執行后,r2中數據值為09h,a中值不變,其他寄存器值無效sub a,r2數據流程:a-dbus-dr1,r0-dbus-dr2,alu-dbus-a 執行后,a中值為40h,dr1中數據值為50h,dr2中數據值為10h,anl a,#25數據流程:a-dbus-dr1,r0-dbus-dr2,alu-dbus-a 執行后,a中值為02h,dr1中數據值為40h,dr2中數據值為25h, 其他寄存器值不變sta 30數據流程:a-ram 執行后,內存地址為30h的單元中值為02hha

溫馨提示

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

評論

0/150

提交評論