版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)說明書課程名稱:計(jì)算機(jī)組成原理題目:8 位模型計(jì)算機(jī)的設(shè)計(jì)與實(shí)現(xiàn)院系:專業(yè)班級:學(xué)號:學(xué)生姓名:指導(dǎo)教師:2010 年月日1一. 8 位模型 CPU 結(jié)構(gòu)31. 運(yùn)算部件32. 寄存器組33. 指令寄存器34. 程序計(jì)數(shù)器35. 地址寄存器4二. 指令系統(tǒng)結(jié)構(gòu)及其功能確定51.模型及指令系統(tǒng)52.模型機(jī)的微指令63.微程序設(shè)計(jì)方法7三CPU 硬件系統(tǒng)設(shè)計(jì)101建立數(shù)據(jù)通路102.控制執(zhí)行單元113.在模型機(jī)中運(yùn)行的軟件12四總結(jié)142一. 8 位模型 CPU 結(jié)構(gòu)1. 運(yùn)算部件CPU 中的運(yùn)算器是由運(yùn)算部件和一部分寄存器組成。運(yùn)算部件的任務(wù)是對操作數(shù)進(jìn)行加工處理。運(yùn)算部件主要由三部分組
2、成:(1)輸入邏輯。操作數(shù)可以來自各種運(yùn)算器,也可以來自 CPU 內(nèi)部的數(shù)據(jù)線。每次運(yùn)算最多只能對兩個數(shù)據(jù)進(jìn)行操作,所以運(yùn)算部件設(shè)置了兩個暫存器DR1 和 DR2保存通用寄存器組讀出的數(shù)據(jù)或 BUS 上來的數(shù)據(jù)。(2)算術(shù)/邏輯運(yùn)算部件 ALU。ALU 是運(yùn)算部件的核心,可根據(jù)用戶需要選擇具體功能,如算術(shù)運(yùn)算或邏輯運(yùn)算等,以完成具體的運(yùn)算操作。(3)輸出邏輯。運(yùn)算結(jié)果可以直接送往接收部件。2. 寄存器組計(jì)算機(jī)工作時,CPU 需要處理大量的控制信息和數(shù)據(jù)信息。例如對指令信息進(jìn)行譯碼,以便產(chǎn)生相應(yīng)控制命令,對操作數(shù)進(jìn)行算術(shù)或邏輯運(yùn)算加工,并且根據(jù)運(yùn)算結(jié)果決定后續(xù)操作等。因此,在 CPU 中需要設(shè)置
3、若干寄存器,暫時存放這些信息。3. 指令寄存器指令寄存器(IR)是用來存放當(dāng)前正在執(zhí)行的指令,它的輸出包括操作碼信息、地址信息等,是產(chǎn)生微命令的主要邏輯依據(jù)。4. 程序計(jì)數(shù)器程序計(jì)數(shù)器(PC)也稱指令指針,用來指示指令在存儲器中的存放位置。當(dāng)程序順序執(zhí)行時,每次從主存,即程序存儲器中取出一條指令,PC 內(nèi)容就被增量計(jì)數(shù),指向下一條指令的地址。增量值取決于現(xiàn)行指令所占的存儲單元數(shù)。如果現(xiàn)行指令只占一個存儲單元,則 PC 內(nèi)容加 1;若現(xiàn)行指令占了兩個存儲單3元。那么 PC 內(nèi)容加 2。當(dāng)程序需要轉(zhuǎn)移時,就要將轉(zhuǎn)移地址送入 PC,使 PC 指向新的指令地址。因此,當(dāng)現(xiàn)行指令執(zhí)行完成時,PC 中存放
4、的總是后續(xù)指令地址,將該地址送往主存的地址寄存器,便可從存儲器讀取下一條指令了。5. 地址寄存器當(dāng) CPU 訪問存儲器時,首先需要找到要訪問的存儲單元,因此設(shè)置地址寄存器來存放被訪單元的地址。當(dāng)需要讀取指令時,CPU 先將 PC 內(nèi)容送入地址寄存器,再由地址寄存器將指令地址送往存儲器的地址線。而當(dāng)需要讀取或存放數(shù)據(jù)時,也要先將該數(shù)據(jù)的有效地址送入地址寄存器,再對存儲器進(jìn)行讀寫操作。AR存儲ALU器OUTPUTDR2DR1PCR0時序微控制器INPUTIR圖表 18 位模型 CPU4二. 指令系統(tǒng)結(jié)構(gòu)及其功能確定1.模型及指令系統(tǒng)為了實(shí)現(xiàn)指令系統(tǒng)的功能,在 CPU 中需要設(shè)置哪些類別的寄存器,設(shè)
5、置多少寄存器,采用什么樣的運(yùn)算部件,以及如何為信息的傳遞提供通路等,都是確定 CPU 總體結(jié)構(gòu)時需要考慮的問題。由于 CPU 的工作是分時分步進(jìn)行的,所有操作需要嚴(yán)格定時控制,因此設(shè)置好時序控制信號,以便在不同的時間發(fā)出不同的微命令,控制完成不同的操作。計(jì)算機(jī)是通過執(zhí)行指令來處理各種數(shù)據(jù)的。為了指出數(shù)據(jù)的來源,操作結(jié)果的去向及所執(zhí)行的操作,一條指令必須包含以下信息:(1)操作碼。它具體說明了操作的性質(zhì)及功能。一臺計(jì)算機(jī)可能有數(shù)十至數(shù)百條指令,每一條指令都有一個相應(yīng)的操作碼,計(jì)算機(jī)通過識別該操作碼來完成不同的操作。(2)操作數(shù)的地址。CPU 通過該地址就可以取得所需的操作數(shù)。(3)操作結(jié)果的存儲
6、地址。把對操作數(shù)的處理所產(chǎn)生的結(jié)果保存在該地址中,以便再次使用。(4)系一條指令的地址。執(zhí)行程序時,大多數(shù)指令是按順序以次從主存中取出執(zhí)行的,只有在遇到轉(zhuǎn)移指令時,程序的執(zhí)行順序才會改變。為了壓縮指令的長度,可以用一個程序計(jì)數(shù)器(PC)存放指令地址。每執(zhí)行一條指令,PC的指令地址就自動加 1,指出將要執(zhí)行的下一條指令的地址。當(dāng)遇到轉(zhuǎn)移指令時,則用轉(zhuǎn)移地址來修改 PC 的內(nèi)容。由于使用了 PC,指令中就不必明顯的給出下一條將要執(zhí)行指令的地址了,這一點(diǎn)與微指令有很大不同。一條指令就是計(jì)算機(jī)機(jī)器語言的一個語句,它是一組有意義的二進(jìn)制代碼.指令的基本格式可以如表 2.1 所示。其中操作碼 OPCODE
7、 指明了指令的操作性質(zhì)及功能,地址碼則給出了操作數(shù)本身或操作數(shù)對應(yīng)的地址。其中,rs 為源寄存器,rd 為目的寄存器。表 1.2 規(guī)定了寄存器操作數(shù)格式。表 2.1位765432105功能OPCODErsrd表 2.2rs 或 rd000110選定的寄存器R0R1R22.模型機(jī)的微指令模型機(jī)的 CPU 的微指令采用水平型微指令,共 24 位,由操作控制字段和下址字段組成。編碼時將微操作控制字段劃分若干個小字段,每個小字段獨(dú)立譯碼,每個碼表示一個微命令。其微指令結(jié)構(gòu)如下表所示。242322212019181716151296543211411813107S3S2S1S0MCnWEA9A8uA5u
8、A4uA3uA2uA1uA0ABC操作控制信號譯譯譯下址字段碼碼碼器器器微指令的功能及表中 A,B,C 各字段功能說明如下:(1)S3,S2,S1,S0:由微程序控制器輸出的對 ALU 功能進(jìn)行選擇的信號,以及控制執(zhí)行 16 種算術(shù)操作與 16 種邏輯操作中的某一操作。(2)M:微程序控制輸出的 ALU 操作方式選擇信號。M=0 表示執(zhí)行算術(shù)操作,M=1 執(zhí)行邏輯操作。(3)Cn:微程序控制器輸出的進(jìn)位標(biāo)志信號。Cn=0 表示 ALU 運(yùn)算時最低位無進(jìn)位,Cn=1 表示有進(jìn)位。(4)WE:微程序控制器輸出的對外部 RAM 進(jìn)行讀寫的控制信號。WE=0 為存儲器讀,WE=1 為存儲器寫。(5)A
9、9,A8:譯碼后產(chǎn)生讀外設(shè)允許控制信號 SW_B,RAM 數(shù)據(jù)讀入總線控制信號 RAM_B 和輸出允許控制 OUT_B。(6)A 字段(15,14,13):譯碼后產(chǎn)生與總線相連接的各單元的輸入選通信號。(7)B 字段(12,11,10):譯碼后產(chǎn)生于總線相連接的各單元的輸出選通信號。(8)C 字段(9,8,7):譯碼后產(chǎn)生分支判斷測試信號 P(1)-P(4)和 LDPC 信號。6(9)uA5-uA0:微程序控制器的微地址輸出信號,是下一條要執(zhí)行的微指令的微地址。A、B、C 各字段功能說明A 字段B 字段C 字段151413選擇121110選擇987選擇000000000001LDRI001RS
10、_D001P(1)010LDDR1010RD_B010P(2)011LDDR2011RJ_B011P(3)100LDIR100SFT_B100P(4)101LODA101ALU_B101LDAR110LDRA110PC_B110LDPC3.微程序設(shè)計(jì)方法如下圖所示是一個具有五條指令 IN、ADD、STA、OUT 和 JMP 指令的微程序流程圖。方框代表基本的微操作,菱形框?yàn)榉种袛嗫?。每條指令都是由不同的微操作來完成的,微操作的數(shù)量各不相同,因此每條指令所需的執(zhí)行時間也是不同的。以下分別介紹各指令的功能和操作流程。微程序流程圖:7PC ARPC+1RAMBUSBUSIRINADDP(1)STA
11、OUTJMPSWR0PCARPCARPCARPCARPC+1PC+1PC+1PC+1RAMBUSRAMBUSRAMBUSRAMBUSBUSARBUSARBUSARBUSPCRAMBUSR0BUSRAMBUSBUSDR2BUSRAMBUSDR1R0DR1DR1OUT(DR1)+(DR2)R0(1)IN 指令為了執(zhí)行輸入指令,CPU 要做兩件事。首先控制開關(guān) SW,允許 INPUT 輸入裝置將數(shù)據(jù)送到數(shù)據(jù)總線上,其次通過總線將輸入的數(shù)據(jù)寫入寄存器 R0 中。這其中包括兩個步驟,即 BUSSW 和 R0BUS.由于輸入到數(shù)據(jù)總線上的數(shù)據(jù)就是要寫入寄存器的數(shù)據(jù),因此可以將這兩個操作合并成一個操作:R0
12、SW.執(zhí)行完輸入指令的整個周期后,程序返回到取指令周期,開始取下一條指令。(2)ADD 指令加法指令執(zhí)行的操作是將寄存器 R0 的內(nèi)容與存儲單元內(nèi)容相加后,存回寄存器 R0:R0R0+(MEM)執(zhí)行加法運(yùn)算時,需要分別將 R0 的內(nèi)容送寄存器 DR1,將存儲單元的內(nèi)容送 DR2;而在 ALU 中進(jìn)行加法運(yùn)算后,將運(yùn)算結(jié)果寫回到寄存器 R0。而存儲8單元的地址是存放在緊跟在操作碼后的字節(jié)當(dāng)中的,因此,首先要以該字節(jié)的內(nèi)容為地址,將該單元內(nèi)容送地址寄存器 AR;然后,從 AR 所指向的 RAM 存儲單元取出操作數(shù)送給 DR2。由于在取指令操作碼時,PC 已經(jīng)自動加 1,指向下一字節(jié),該地址就是存放
13、需要做加數(shù)的操作數(shù)的存儲單元的地址。于是通過執(zhí)行以下三步驟,可以從存儲器中取出操作數(shù)送到 DR2:ARPC, PCPC ;以 AR 的內(nèi)容作為去操作數(shù)的地址BUSRAM,ARBUS ;AR 指向存放操作數(shù)的 ARM 單元BUSRAM,DR2BUS ;RAM 中的數(shù)據(jù)通過 BUS 送 DR2將 R0 中的數(shù)據(jù)送 DR1,即DR1R0在 ALU 中進(jìn)行加法運(yùn)算,運(yùn)算結(jié)果送 R0,即R0(DR1)+(DR2)(3)STA 指令向 RAM寫數(shù)據(jù)操作的STA指令已緊跟在操作碼后的字節(jié)作為存放操作數(shù)的地址,將 R0 中的數(shù)據(jù)存入該地址單元。首先將緊跟在操作碼后的字節(jié)的內(nèi)容送地址寄存器 AR:ARPC,PC
14、PC+1;以 PC 的內(nèi)容作為存數(shù)據(jù)的地址BUSRAM,ARBUS;AR 指向存放操作數(shù)的 RAM 單元然后將 R0 的內(nèi)容寫入該地址的 RAM 單元中:BUSR0,RAMBUS(4)OUT 指令輸出指令 OUT,以緊跟在操作碼后的字節(jié)作為讀出數(shù)據(jù)的地址,將該單元的內(nèi)容通過 DR1 輸出到 OUT 端口。首先將緊跟在操作碼后的字節(jié)的內(nèi)容送給地址寄存器 AR:ARPC,PCPC+1;以 PC 的內(nèi)容作為取數(shù)據(jù)的地址BUSRAM,ARBUS ;AR 指向存放操作數(shù)的 RAM 單元然后將 RAM 單元的內(nèi)容讀出到 DR1,并送往輸出端口 OUT:9BUSRAM,DR1BUSOUTDR1(5)JMP
15、指令無條件轉(zhuǎn)移指令 JMP,以緊跟在操作碼后的字節(jié)的內(nèi)容作為轉(zhuǎn)移地址。將該字節(jié)的內(nèi)容送給程序計(jì)數(shù)器 PC,實(shí)現(xiàn)程序的轉(zhuǎn)移:ARPC,PCPC+1; 以 PC 的內(nèi)容作為取數(shù)據(jù)的地址BUSRAM, PCBUS;將 RAM 內(nèi)容送 PC,實(shí)現(xiàn)程序轉(zhuǎn)移三CPU 硬件系統(tǒng)設(shè)計(jì)1建立數(shù)據(jù)通路如下圖所示是 8 位模型機(jī) CPU 的數(shù)據(jù)通路框圖,主要由運(yùn)算器 ALU、控制器、存儲器和輸入/輸出裝置組成,它們通過內(nèi)部的數(shù)據(jù)總線相互連接起來。在圖中,ALU 為運(yùn)算器;DR1 和 DR2 為其輸入端的兩個暫存寄存器;R0 是數(shù)據(jù)寄存器,用來保存數(shù)據(jù)和運(yùn)算結(jié)果;PC 為程序計(jì)數(shù)器;IR 和 ID 分別為指令寄存器和
16、指令譯碼器;AR 和存儲器分別為地址寄存器和存儲數(shù)據(jù)的模塊;INPUT 為輸入裝置;OUTPUT 為輸出裝置。10狀態(tài)寄存器操作控制器 CU時鐘時序發(fā)生器狀 態(tài)算術(shù)邏輯單元C反 饋C()指令譯碼器 ID輸入單元指令寄存器 IRCCC暫存寄存器DR1暫存寄存器DR2C程序計(jì)數(shù)器 PCC+1CC數(shù)據(jù)寄存器存儲器I/O 接口R0-R1地址寄存器 ARCC模型機(jī) CPU 的數(shù)據(jù)通路框圖各基本單元模塊的輸出通過三態(tài)門控制與數(shù)據(jù)總線相連接;微控制器按照時序發(fā)生器的節(jié)拍,對指令進(jìn)行譯碼后產(chǎn)生同步的控制信號。各部件旁邊的 C表示由微指令譯碼器輸出的控制信號,用于控制數(shù)據(jù)的輸入輸出。在圖中與數(shù)據(jù)總線相連的信號有
17、些是單向的,有些是雙向的。如數(shù)據(jù)寄存器、存儲器、I/O 接口的數(shù)據(jù)信號是雙向的,而指令信號、地址信號、控制信號是單向的。2.控制執(zhí)行單元微程序控制器主要由控制存儲器、微指令寄存器和微指令地址形成部件三部分組成。11下址微地址微指令控制存字寄存器地址形儲器段成部件狀態(tài)條件控微指制命令字令寄段信存號微程序塊控制的基本模塊與控制流程3.在模型機(jī)中運(yùn)行的軟件()輸入指令的執(zhí)行過程下表中的第一條指令是一條輸入指令,指令如圖所示。它需要兩個周期,其中取指令階段需要一個周期,執(zhí)行指令階段又需要一個周期。示例程序:模型機(jī)的指令及編碼形式地址內(nèi)容(十六進(jìn)制)助記符說明00H80IN R0“INPUT”R0,鍵盤
18、輸入數(shù)據(jù)01H90ADD0AHR0+0AHR0,做加法后結(jié)果送 R002H0A03HA0STA0BHR00BH,強(qiáng) R0 的內(nèi)容送 RAM 的 0B 單元04H0B05HB0OUT0BH0BH“OUTPUT”,顯示輸出數(shù)據(jù)06H0B07HC0JMP0BH09HPC,以08H內(nèi)容為轉(zhuǎn)移地址08H0009H000AHD5DB D5H被加數(shù)(自定)0BHAC此地址將放求和結(jié)果,但此時的數(shù)據(jù)是 AC127狀態(tài)寄存器12操作控制器 CU時鐘時序發(fā)生器狀 態(tài)算術(shù)邏輯單元C6反 饋C()指令譯碼器 ID5輸入單元指令寄存器 IRCCC暫存寄存器DR1暫存寄存器DR2C810114121131028程序計(jì)數(shù)器
19、 PCC9+1CC數(shù)據(jù)寄存器存儲器I/O 接口1R0-R1地址寄存器 ARCCIN 指令的執(zhí)行過程(a)取指令階段 CPU 的動作如下:1 將程序計(jì)數(shù)器 PC 的內(nèi)容 00H 裝入地址寄存器 AR。2 PC 的內(nèi)容加 1,變成 00H,為取下一條指令做好準(zhǔn)備。3 地址寄存器 AR 指向內(nèi)存 00H 單元,取出此單元中的內(nèi)容,即指令碼或操作碼:80H,傳送到數(shù)據(jù)總線。4 來自 00H 單元的內(nèi)容 80H 從總線傳到指令寄存器 IR。5 IR 中的內(nèi)容送到指令譯碼器 ID 進(jìn)行譯碼。6 譯碼結(jié)果送控制器(時序發(fā)生器)。7 操作控制器識別出是一個輸入指令,于是輸出控制命令。取指令階段在此結(jié)束。(b)
20、執(zhí)行指令階段 CPU 的動作如下:138 操作控制器送出控制信號給輸入單元,打開輸入三態(tài)門,輸入數(shù)據(jù)送到數(shù)據(jù)總線。9 將輸入的數(shù)據(jù)送數(shù)據(jù)寄存器 R0。至此,IN 指令執(zhí)行完畢。(2)加法指令 ADD 的執(zhí)行過程表中的第二條指令 ADD 是一條訪問內(nèi)存指令,指令周期也如上圖所示,它需要三個 CPU 周期,其中第一個 CPU 周期為 CPU 周期為取指令階段,第二個和第三個 CPU 周期為執(zhí)行指令階段。(a)取指令階段 CPU 的動作如下:17 CPU 的 1 至 7 步和 IN 指令相同,為取指令的操作碼階段。取指令階段結(jié)束時,指令寄存器 IR 中已經(jīng)存放好 ADD 指令并進(jìn)行了指令譯碼,譯碼結(jié)果已送往操作控制器。同時,程序計(jì)數(shù)器 PC 的內(nèi)容又加 1,變?yōu)?02H,為取下一條指令做好準(zhǔn)備。(b)取操作數(shù)地址時 CPU 的動作如下:8 把程序計(jì)數(shù)器 PC 中的地址碼部分02H裝入緩沖寄存器 AR。(c)取出操作數(shù)并相加,CPU 的動作如下:9 從內(nèi)存 02H 單元中讀出操作數(shù) 0AH,裝入地址
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷庫儲存合同范例
- 小區(qū)商鋪簽約合同范例
- 廚師薪酬合同范例
- 山地綠化養(yǎng)護(hù)合同范例
- 2024年清遠(yuǎn)道路旅客運(yùn)輸駕駛員從業(yè)資格模擬試題
- 2024年杭州客運(yùn)資格證急救試題答案
- 2024年浙江c1道路客運(yùn)輸從業(yè)資格證怎么考
- 2024年烏魯木齊從業(yè)資格證模擬考試0題
- 《橢圓的標(biāo)準(zhǔn)方程》教案
- 2013液壓與氣壓傳動考試題及答案2套
- 非新生兒破傷風(fēng)診療規(guī)范(2024年版)解讀
- 微測網(wǎng)題庫完整版行測
- 多圖中華民族共同體概論課件第十一講 中華一家與中華民族格局底定(清前中期)根據(jù)高等教育出版社教材制作
- 生涯發(fā)展報(bào)告 (修改版)
- 求職能力展示
- 中國馬克思主義與當(dāng)代思考題(附答案)
- (新版)征信知識競賽基礎(chǔ)題庫(500題)
- 金屬風(fēng)管支架重量計(jì)算表
- 公司組織架構(gòu)圖模板可編輯
- (LED法)風(fēng)險性評價法
- 第4章-斯特瓦爾特定理及應(yīng)用
評論
0/150
提交評論