計算機組成原理課程設計指導書_第1頁
計算機組成原理課程設計指導書_第2頁
計算機組成原理課程設計指導書_第3頁
計算機組成原理課程設計指導書_第4頁
計算機組成原理課程設計指導書_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成原理課程設計指導書-簡單模型機的微程序設計2010年4月第一部分 基本模型機的硬件、指令系統(tǒng)及其微程序的設計一、模型機的CPU及系統(tǒng)硬件   基本模型機的CPU及系統(tǒng)硬件組成如圖1所示:圖1 模型機的CPU及系統(tǒng)硬件組成各部件的功能及控制信號如下: 運算器由算邏部件ALU(8位)、暫存器DR1、DR2及通用寄存器等組成。ALU的功能控制信號為S3、S2、S1、S0、M、CN,可以實現(xiàn)48種算術(shù)和邏輯運算功能,如圖2所示。  運算器為單總線結(jié)構(gòu),其輸入端分別連接到暫存器DR1和DR2,其裝入數(shù)據(jù)的微命令分別為LDDR1和LDDR2,當它們?yōu)?電平時由節(jié)拍脈

2、沖T4將數(shù)據(jù)總線上的數(shù)據(jù)裝入相應的暫存器。R0、R1、R2為通用寄存器。R0的裝入數(shù)據(jù)的微命令為LDR0,R1的裝入數(shù)據(jù)的微命令為LDR1,R2的裝入數(shù)據(jù)的微命令為LDR2。299為實現(xiàn)移位運算的裝置,當299B微命令有效時,其數(shù)據(jù)端和數(shù)據(jù)總線連接。  控制器由程序計數(shù)器PC、指令寄存器IR、地址寄存器AR、時序電路、控制存儲器及相應的譯碼電路組成。 圖2 74LS181功能表  程序計數(shù)器PC的功能是存放下一條指令的地址,其輸出是向地址寄存器提供要將執(zhí)行的指令在存儲器中的地址。在提供地址后立即加1,指向指令的下一個字節(jié)或下一條指令的地址。其控制微命令有三個。當LOAD=0

3、而LDPC=1時,由T4的正跳變將數(shù)據(jù)總線上的數(shù)據(jù)裝入PC;當當LOAD=1而LDPC=1時PC的內(nèi)容加1;當PCB=1時,PC中的地址信息送到數(shù)據(jù)總線上。  指令寄存器IR用于存放當前執(zhí)行的指令。當微命令LDIR=1時,由節(jié)拍脈沖T3將數(shù)據(jù)總線上的數(shù)據(jù)裝入。  地址寄存器AR存放要從存儲器中讀出的數(shù)據(jù)或指令的地址或要向存儲器寫入數(shù)據(jù)或指令的地址。當微命令LDAR=1時,由節(jié)拍脈沖T3將數(shù)據(jù)總線上的數(shù)據(jù)裝入。  存儲器RAM用于存放程序和數(shù)據(jù)。當片選信號CE=0時,如果W/R為0,則根據(jù)AR中的地址,從存儲器中讀出數(shù)據(jù)并送到數(shù)據(jù)總線上;如果W/R為1,則根據(jù)AR中

4、的地址,向存儲器中寫入數(shù)據(jù)總線上的數(shù)據(jù)。片選信號CE是由微指令中的有關(guān)字段(B1B0)譯碼產(chǎn)生的。模型機有兩個外部設備:輸入設備是置數(shù)開關(guān)SW,用于設置數(shù)據(jù)或地址,當微命令SWB=0時,設置的數(shù)據(jù)送到數(shù)據(jù)總線上;SWB也是由微指令中的有關(guān)字段(B1B0)譯碼產(chǎn)生的。輸出設備是兩位LED數(shù)碼管,當微命令LEDB=1時,數(shù)據(jù)總線上的數(shù)據(jù)送到數(shù)碼管顯示。二、基本模型機的指令設計   根據(jù)基本模型機的硬件設計五條機器指令:外設輸入指令I(lǐng)N、二進制加法指令ADD、存數(shù)指令STA、輸出到外設指令OUT、無條件轉(zhuǎn)移指令JMP。指令格式如下: 助記符 機器指令碼說明IN 0000 0000

5、 ; 置數(shù)開關(guān)SW(KD0KD7)的狀態(tài)R0ADD addr 0001 0000 ×××× ××××; (R0)+(addr)(R0)STA addr 0010 0000 ×××× ××××; (R0)(addr)OUT addr 0011 0000 ×××× ××××; (addr)輸出設備"LED"JMP addr 0100 0000

6、 ×××× ××××; addrPC說明: 指令I(lǐng)N為單字節(jié)指令,其余均為雙字節(jié)指令, ××××××××為要讀寫的主存儲器單元的二進制地址碼。三、指令微流程分析   這五條指令的微流程如圖3所示:圖3 用數(shù)據(jù)流表示的微程序流程  該圖是運行微程序的數(shù)據(jù)流圖,實際上并沒有分解到微命令一級。為了設計微程序,還應該根據(jù)此圖進一步細化到微命令(微操作)一級。例如PCAR,實際上應該同時發(fā)出PCB、LDAR

7、兩個微命令;PC+1應該發(fā)出LDPC微命令;SWR0應該發(fā)出SWB、LDRi(與指令碼中的相應位共同譯碼產(chǎn)生LDR0微命令)兩個微命令;RAMBUS應該發(fā)出CE有效和讀存儲器兩個微命令;BUSRAM應該發(fā)出CE有效和寫存儲器兩個微命令;R0××是指R0B微命令有效等等。據(jù)此可將該圖改畫成下圖: 圖4 用微命令表示的執(zhí)行五條基本指令的微指令流程  該圖中每個框上的數(shù)字表示該條微指令在控存中的地址(與指令格式有關(guān),也與設計者的意愿有關(guān))。如何在一條微指令中實現(xiàn)一個框中的微操作與微指令的格式密切相關(guān)。四、基本模型機的微指令格式    本模型機的微指令

8、長共24位,基本采用水平型微指令字段直接編碼方式,其控制位順序如下:   其中,S3、S2、S1、S0、M、CN(A24A19位)為ALU運算類型的控制字段,其輸出不需譯碼直接連接到ALU的對應控制信號即可。需要指出的是,該字段無論如何編碼,ALU都要進行某種運算,但是只要不發(fā)出ALUB微命令,ALU的運算結(jié)果都不會送到數(shù)據(jù)總線上,也就是不會對其它部件的操作產(chǎn)生任何影響。在設計微程序時,只要不發(fā)ALUB微命令,該字段的編碼可以任意設置。   A18位為輸出設備(LED)和主存(RAM)的讀、寫控制字段,該位為0,表示讀;該位為1,表示寫。 &#

9、160; A17A16位(B1B0)字段用于選擇外設和主存。B1B0=01選擇主存(CE有效),B1B0=00選擇輸入數(shù)據(jù)開關(guān)(SWB有效),B1B0=10選擇輸出LED(LEDB有效)。B1B0=11對本模型機無效,即沒有選中任何外設或主存。   對本模型機而言,上述三位可以看成一個字段,其編碼的含義如下:   A18A17A16=000或100  從輸入開關(guān)SW讀數(shù)據(jù)   A18A17A16=001       從主存讀數(shù)據(jù)   A18A17

10、A16=101       向主存寫數(shù)據(jù)   A18A17A16=110       向LED寫數(shù)據(jù)   其它組合無意義。  uA6A1位為6位的預置后續(xù)微地址,“預置”的含義是該字段與微地址控制字段以及指令寄存器等部件的內(nèi)容共同產(chǎn)生下一條微指令在控存中的微地址。  A、B、C 三個譯碼字段,分別由三組譯碼控制電路譯碼產(chǎn)生各種微命令。  A字段用于產(chǎn)生各寄存器的數(shù)據(jù)裝入微命令,各種編碼的含義如上表所示。 由

11、于模型機有三個通用寄存器(R0、R1、R2),它們都有相應的數(shù)據(jù)裝入微命令,為了不增加微指令的寬度,該字段只設計了一個LDRi命令。為了區(qū)分究竟是哪個寄存器裝入數(shù)據(jù),要根據(jù)指令寄存器中操作碼的最低兩位(I1I0)的狀態(tài)而定:當I1I0=00時,發(fā)LDR0微命令;I1I0=01時,發(fā)LDR1微命令;I1I0=10時,發(fā)LDR2微命令;I1I0=11時,對本模型機無效;  B字段中的RSB、RDB、RIB分別為源寄存器的內(nèi)容送數(shù)據(jù)總線、目的寄存器送數(shù)據(jù)總線及變址寄存器送數(shù)據(jù)總線的微命令,其功能是根據(jù)機器指令來選通三個工作寄存器R0、R1及R2之一,將其內(nèi)容送數(shù)據(jù)總線。 具體規(guī)則如下:&#

12、160;  如果RDB有效,根據(jù)指令寄存器的最低兩位(I1I0)的狀態(tài)決定哪個寄存器的內(nèi)容送數(shù)據(jù)總線:當I1I0=00時,發(fā)R0B微命令;I1I0=01時,發(fā)R1B微命令;I1I0=10時,發(fā)R2B微命令;I1I0=11時,對本模型機無效;   如果RSB有效,根據(jù)指令寄存器(I3I2)兩位的狀態(tài)決定哪個寄存器的內(nèi)容送數(shù)據(jù)總線:當I3I2=00時,發(fā)R0B微命令;I3I2=01時,發(fā)R1B微命令;I3I2=10時,發(fā)R2B微命令;I3I2=11時,對本模型機無效;   本模型機的變址寄存器固定為R2,故RIB有效就是R2B有效。 &#

13、160; 基于上述字段的設計規(guī)則,在設計機器指令格式時,必須將目的寄存器的編碼放在指令的第一個字節(jié)的I1I0位置,將源寄存器的編碼放在指令的第一個字節(jié)的I3I2位置,且編碼必須符合上述規(guī)則,即00代表寄存器R0,01代表寄存器R1,10代表寄存器R2。  B字段中的299B是移位運算裝置的數(shù)據(jù)端與數(shù)據(jù)總線相連的微命令。該裝置在圖中沒有畫出。C字段中的P(1)P(4)是四個測試字段。其功能是根據(jù)機器指令、A5A0字段及其它有關(guān)部件的內(nèi)容,產(chǎn)生下一條微指令在控存中的微地址,使微程序轉(zhuǎn)入相應的微地址入口,從而實現(xiàn)微程序的順序、分支、循環(huán)運行等。AR為算術(shù)運算是否影響進位及判零標志控制位,低

14、電平有效。LDPC為使PC+1的微命令。  P(1)P(4)的意義如下:  P(1)測試的作用是次地址字段NA(41位) 或(運算) 指令寄存器IR(85位)產(chǎn)生下一條微指令在控存中的微地址的41位,下一條微指令在控存中的微地址的65位仍為NA字段的65位。    P(2)測試的作用是次地址字段NA(21位)或指令寄存器IR(43位)產(chǎn)生下一條微指令在控存中的微地址的21位,下一條微指令在控存中的微地址的63位仍為NA字段的63位。  P(3)測試的作用是次地址字段NA(4位)或進位或零標志產(chǎn)生下一條微指令在控存中的微地址的4位,下一條微指令在

15、控存中的微地址的其它位仍為NA字段的相應位。  P(4)測試的作用是次地址字段NA(21位)或(SWC,SWA)產(chǎn)生下一條微指令在控存中的微地址的21位,下一條微指令在控存中的微地址的63位仍為NA字段的63位。五、編寫微程序  在了解了微指令格式后,就可以開始編寫微程序了。  一般地講,編寫微程序可以分成以下幾步:  1、設計機器的指令格式,如本文第二部分所示。  2、對所設計的指令進行分析,畫出各指令的用微命令表示的微流程圖,如本文第二部分所示。不僅要畫出每個對應一條微指令的功能框內(nèi)的微命令,而且要初步確定該條微指令在控存中的微地址,以便于

16、在設計微程序時確定前一條指令的次地址NA字段和C字段的編碼。在這個過程中,一定要注意P(1)測試的規(guī)則以及指令高四位的編碼。 執(zhí)行五條基本指令的微指令流程如圖4所示。  3、根據(jù)微流程圖的順序,一個功能框一個功能框地按照第四段所述的微指令格式,確定各字段的編碼,將這些字段組合即可形成一條條的微指令編碼。這些微指令的集合就是可以完成所設計的指令功能的微程序。當然這樣設計的微程序有可能不完全正確,還需要進一步檢查修改。   以上幾步可以用腦、手、紙、筆即可完成。  4、對設計的微程序進行檢查修改。本模型機可以手動地用開關(guān)將微程序輸入機器的控存。為了能將要執(zhí)行

17、的指令輸入主存,在微程序中必須安排一端相應的微程序;為了能檢查輸入的指令是否正確,也要設計一段微程序。這段微程序的微命令流程圖如圖5所示。圖5 讀寫機器指令的微程序流程圖   根據(jù)上述流程圖,可設計相應的微程序。   將這段微程序(啟動微地址為00H)和13步設計好的微程序組合成一個既可以向主存中寫指令也可以從主存中讀指令又可以運行主存中的程序的完整的微程序。 用于測試的機器指令程序編碼如下:地址 編碼 說明00H: 00000000 ;置數(shù)開關(guān)SW(KD0KD7)的狀態(tài)R001H: 00010000 ;(R0)+(0A)(R0)02H: 0000101

18、003H: 00100000 ;(R0)(0B)04H: 0000101105H: 00110000 ; (0B)輸出設備"LED"06H: 0000101107H: 01000000 ; 00PC08H: 0000000009H:0AH: 00000001 ;數(shù)據(jù)為01H不難看出這一段程序的功能是將置數(shù)開關(guān)設置的數(shù)加存儲器0A單元中的內(nèi)容送數(shù)碼管LED顯示。既可讀寫機器指令又可運行微程序的完整的微程序編碼如下: 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 此后就可以手動地用開關(guān)將微

19、程序輸入機器的控存。然后將控存的啟動地址置為0,運行微程序,將要執(zhí)行的測試程序存入主存,也可從主存中讀出指令,檢查輸入的指令是否正確。關(guān)于如何將指令輸入主存以及將微指令寫入控存,參見實驗設備廠的實驗六和實驗七的指導書??傊?,這是一件相當煩瑣的工作。  在完成上述工作后,即可單步或連續(xù)運行微程序,檢查微程序是否正確。如果發(fā)現(xiàn)錯誤,及時修改后再試。  這個過程的操作參見實驗指導書的實驗六 。   不難看出,要在本模型機上編寫微程序是十分困難的。   為了解決這個難題,筆者開發(fā)了一個專門設計、分析針對本模型機的仿真軟件,使得微程序的設計變得相當容易。

20、關(guān)于該軟件的功能和使用方法,參見該軟件的“幫助”。   下面是利用該軟件設計的微程序編碼及各條微指令的功能分析。注意第一條微指令的微地址為01H,其它各條微指令的微地址都由上一行文字最后的數(shù)字(16進制)指定。  不難看出,上面的文字說明和我們所畫的用微命令表示的微程序流程圖中各個框中所列的微命令是一一對應的。  這個微程序可以根據(jù)用微命令表示的微程序流程圖在本仿真軟件上很方便地設計出來。第二部分 課程設計要求一 課程設計的目的通過課程設計更清楚地理解下列基本概念:1 計算機的硬件基本組成;2 計算機中機器指令的設計;3 計算機中機器指令的執(zhí)行過程;4 微程序控制器的工作原理。5 微指令的格式設計原則;在此基礎上設計可以運行一些基本機器指令的微程序的設計二課程設計的內(nèi)容和要求 1通過使用作者開發(fā)的微程序分析和設計仿真軟件,熟悉本文介紹的為基本模型機而設計的微程序的執(zhí)行過程。必須充分理解并正確解

溫馨提示

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

最新文檔

評論

0/150

提交評論