計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn) 3.2 硬布線版CPU 賴曉錚課件_第1頁(yè)
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn) 3.2 硬布線版CPU 賴曉錚課件_第2頁(yè)
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn) 3.2 硬布線版CPU 賴曉錚課件_第3頁(yè)
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn) 3.2 硬布線版CPU 賴曉錚課件_第4頁(yè)
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn) 3.2 硬布線版CPU 賴曉錚課件_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)實(shí)驗(yàn)系列一、微程序版CPU二、硬布線版CPU三、流水線版CPU四、嵌套中斷CPUlaixz@QQ:68046508(二)硬布線版CPU實(shí)驗(yàn)實(shí)驗(yàn)內(nèi)容:●設(shè)計(jì)一個(gè)硬布線版本CPU:在功能上完全兼容前述的微程序版本CPU:數(shù)據(jù)通路相同,指令體系相同,不同之處在于改用硬布線邏輯電路產(chǎn)生各時(shí)序階段的微操作信號(hào),取代了微程序控制器。在硬布線CPU上驗(yàn)證微程序版本CPU的指令程序。實(shí)驗(yàn)?zāi)康模骸裾莆栈谟膊季€控制器的CPU設(shè)計(jì)原理?!窭斫鈾C(jī)器指令的硬布線邏輯實(shí)現(xiàn)方法。硬布線版CPU電路圖一、系統(tǒng)指令:匯編語(yǔ)言功能I7I6I5I4I3I2I1I0NOP;無(wú)操作(延時(shí)4個(gè)T)00000/0x/0HLT;停機(jī)(斷點(diǎn))00000/0x/1IRET;中斷返回BP_PCPC;BP_PSWPSW01110/0x/x匯編語(yǔ)言注釋I7I6I5I4I3I2I1I0MOVRA,RB;(RB)RA0110RARBSETRA,IMM;IMMRA0011RAx/xIMM二、寄存器及I/O操作指令:匯編語(yǔ)言功能I7I6I5I4I3I2I1I0INRA,PORTx;(PORTx)RA0100RAPORTxOUTRA,PORTx;(RA)PORTx0101RA0/PORTxOUTARA,PORTx;(RA)PORTx0101RA1/PORTx匯編語(yǔ)言功能I7I6I5I4I3I2I1I0LADRA,[ADDR];[ADDR]RA1000RA0/0ADDRPOPRA,[RB];[RB]RA1000RARBSTORA,[ADDR];(RA)[ADDR]1001RA0/0ADDRPUSHRA,[RB];(RA)[RB]1001RARB三、存儲(chǔ)器及堆棧操作指令:匯編語(yǔ)言功能I7I6I5I4I3I2I1I0JMPADDR;ADDRPC00010/00/0ADDRJMPRRB;(RB)PC00010/0RBJCADDR;IFCF=1,ADDRPC00010/10/0ADDRJCRRB;IFCF=1,(RB)PC00010/1RBJZADDR;IFZF=1,ADDRPC00011/00/0ADDRJZRRB;IFZF=1,(RB)PC00011/0RBJSADDR;IFSF=1,ADDRPC00011/10/0ADDRJSRRB;IFSF=1,(RB)PC00011/1RB四、跳轉(zhuǎn)系列指令:五、算術(shù)邏輯運(yùn)算指令:匯編語(yǔ)言功能I7I6I5I4I3I2

I1I0RLCRA;(RA)右邏輯移位1010RA0/0LLCRA;(RA)左邏輯移位1010RA1/0RRCRA;(RA)右循環(huán)移位1010RA0/1LRCRA;(RA)左循環(huán)移位1010RA1/1匯編語(yǔ)言功能I7I6I5I4I3I2I1I0INCRA;(RA)+1RA0010RA0/0DECRA;(RA)-1RA0010RA0/1NOTRA;#(RA)RA0010RA1/0THRRA;(RA)RA0010RA1/1初始化過(guò)程時(shí)鐘信號(hào)CLK接手動(dòng)開(kāi)關(guān)MANUAL,啟動(dòng)仿真,使能復(fù)位信號(hào)#RESET=0;手動(dòng)按鈕MANUAL開(kāi)關(guān)“010”,然后令信號(hào)#RESET=1.注:初始化完成后,若時(shí)鐘信號(hào)CLK繼續(xù)接開(kāi)關(guān)MANUAL,則CPU進(jìn)入手動(dòng)模式,手動(dòng)MANUAL開(kāi)關(guān),生成時(shí)鐘信號(hào)CLK,程序單步執(zhí)行;若時(shí)鐘信號(hào)CLK接信號(hào)源AUTO-CLK(主頻10Hz),則CPU進(jìn)入自動(dòng)模式,程序自動(dòng)運(yùn)行,直到HLT指令的“斷點(diǎn)”處暫停。重啟過(guò)程(跳出“斷點(diǎn)”)時(shí)鐘信號(hào)CLK接開(kāi)關(guān)MANUAL,手動(dòng)令復(fù)位信號(hào)端#RESET的狀態(tài)“101”變化,即重啟完成,跳出“斷點(diǎn)”繼續(xù)執(zhí)行

。注:跳出“斷點(diǎn)”后,CPU進(jìn)入HLT指令的后續(xù)下一條指令的取指周期。實(shí)驗(yàn)步驟(子程序調(diào)用):1)在實(shí)際應(yīng)用中,經(jīng)常需要多次用到某一段程序。為了避免重復(fù)編寫,節(jié)約內(nèi)存空間,可以把該程序獨(dú)立出來(lái),供主程序在需要的時(shí)候反復(fù)調(diào)用,這種程序稱為“子程序”。在本書的CPU指令集中缺少專門的子程序調(diào)用及返回指令。但是,因?yàn)樽映绦蛘{(diào)用的位置是固定和可以預(yù)見(jiàn)的(與中斷的隨機(jī)出現(xiàn)不同);所以,可以采用跳轉(zhuǎn)系列指令來(lái)實(shí)現(xiàn)跳轉(zhuǎn)到子程序和從子程序返回的功能。2)在硬布線版CPU項(xiàng)目工程的子文件夾test里,存放著子程序示例SUB_PROG。其功能類似于匯編語(yǔ)言的“CALL”和“RET”語(yǔ)句,實(shí)現(xiàn)的功能是統(tǒng)計(jì)存儲(chǔ)器中一個(gè)數(shù)組包含了多少個(gè)正數(shù)、零和負(fù)數(shù)(所有數(shù)都用補(bǔ)碼形式表示),并把統(tǒng)計(jì)結(jié)果分別存放在寄存器R1(正數(shù))、R2(零)和R3(負(fù)數(shù))中。具體代碼如后頁(yè)所示。3)編譯、燒寫、自動(dòng)運(yùn)行SUB_PROG源程序,觀察自動(dòng)運(yùn)行過(guò)程中的“斷點(diǎn)”暫停時(shí)刻,寄存器R0、R1、R2和R3的數(shù)據(jù)變化。

匯編助記符(M地址:機(jī)器指令)JMP16H00H:0001000001H:0001011055H02H:01010101AAH03H:10101010FFH04H:1111111180H05H:100000000H06H:000000000FH07H:00001111OUTR0,PORT0;sub_p08H:01010000THRR009H:00100011JZ10H0AH:000110000BH:00010000SUB_PROG匯編助記符(M地址:機(jī)器指令)JS13H0CH:000111000DH:00010011JMP14H0EH:000100000FH:00010100INCR210H:00101000JMP14H11H:0001000012H:00010100INCR313H:00101100JMP21H;ret14H:0001000015H:00100001SETR3,0;main16H:0011110017H:00000000匯編助記符(M地址:機(jī)器指令)SETR2,018H:0011100019H:00000000SETR1,06H1AH:001101001BH:00000110HLT1CH:00000001INCR1;loop1DH:00100100POPR0,[R1]1EH:10000001JMP08H;callsub_p1FH:0001000020H:00001000SUBIR1,02H21H:1100010022H:00000010SUB_PROG匯編助記符(M地址:機(jī)器指令)JZ27H23H:0001100024H:00100111JMP1DH;gotoloop25H:0001000026H:00011101SETR1,06H27H:0011010028H:00000110SUBR1,R229H:11000110SUBR1,R32AH:11000111HLT2BH:00000001思考題:●在硬布線版本CPU中,可以采用軟件方法,通過(guò)跳轉(zhuǎn)指令JMP來(lái)實(shí)現(xiàn)子程序的調(diào)用及返回,也可以通過(guò)硬件電路實(shí)現(xiàn)類似功能。保持指令長(zhǎng)度和OP碼位數(shù)不變,請(qǐng)?jiān)O(shè)計(jì)硬件電路,實(shí)現(xiàn)從立即數(shù)/寄存器獲得跳轉(zhuǎn)地址的CALL和RET指令。

(提示:CALL指令與JMP指令可以共用OP碼0001,規(guī)定JMPR/JxR指令的地址來(lái)源只能是寄存器R1。修改跳轉(zhuǎn)系列指令格式,如下表所示:規(guī)定若指令I(lǐng)1I0=00,表示是雙字節(jié)JMP/Jx指令;若指令I(lǐng)1I0=01,表示是單字節(jié)JMPR/JxR指令;若指令I(lǐng)1I0=10,表示是雙字節(jié)的子程序調(diào)用指令CALL,子程序跳轉(zhuǎn)處“斷點(diǎn)”的保存地址是第二字節(jié)ADDR;若指令I(lǐng)1I0=11,表示是單字節(jié)的子程序調(diào)用指令CALLR,子程序跳轉(zhuǎn)處“斷點(diǎn)”的保存地址是寄存器R3。同樣的,在中斷子程序中,中斷返回指令I(lǐng)RET的I1I0=00;而在主程序中,可以規(guī)定子程序返回指令RET的I1I0=01。)(二)硬布線版CPU實(shí)驗(yàn)匯編語(yǔ)言格式功能I7I6I5I4I3I2I1I0JMPADDR;ADDRPC00010/00/0ADDRJMPRR0;(R1)PC00010/00/1JxADDR;IFCF/ZF/SF=1,ADDRPC000101/10/110/0ADDRJxRR0;IFCF/ZF/SF=1,(R1)PC000101/10/110/1CALLADDR;PCBP_SUB且ADDRPC00010/01/0ADDRCALLRR0;PCBP_SUB且

(R3)PC00010/01/1IRET;中斷返回:BP_PCPC;BP_PSWPSW01110/00/0RET;子程序返回:BP_SUBPC01110/00/1跳轉(zhuǎn)、中斷返回及子程序調(diào)用系列指令注:子程序調(diào)用也需要設(shè)置一套與中斷電路類似的“斷點(diǎn)”寄存器BP_SUB,不能與中斷共用“斷點(diǎn)”,否則中斷的時(shí)候不允許調(diào)用子程序,子程序調(diào)用的時(shí)候不允許中斷。思考題:●在CPU指令集中,有條件跳轉(zhuǎn)指令Jx/JxR的跳轉(zhuǎn)條件是標(biāo)志位CF/ZF/SF=1。但是,有時(shí)候需要標(biāo)志位CF/ZF/SF=0時(shí)跳轉(zhuǎn),否則不跳轉(zhuǎn),即JNx/JNxR指令??梢圆捎密浖姆椒?,通過(guò)Jx/JxR和JMP/JMPR指令的組合跳轉(zhuǎn)來(lái)實(shí)現(xiàn)上述功能,但是CPU效率不高。請(qǐng)通過(guò)硬件電路直接實(shí)現(xiàn)JNx/JNxR指令功能:(二)硬布線版CPU實(shí)驗(yàn)匯編語(yǔ)言格式功能I7I6I5I4I3I2I1I0JNxADDR;IFCF/ZF/SF=0,ADDRPC000101/10/111/0ADDRJNxRR0;IFCF/ZF/SF=0,(R3)PC000101/10/111/1【T1】源部件總線BUS【T2】總線BUS目標(biāo)部件【M1】【M2】多周期硬布線控制器“狀態(tài)機(jī)”【M3】【M4】【M5】【M6】M1M2:NOP/HLT指令M1M3:IN、OUT、MOV、IRET、JMPR(JMPR/JxR)指令M1M4:PUSH、POP、SET、SOP、JMPI(JMP/Jx)指令M1M5:LAD、STO、SHT、ALU2_R(ADD、SUB、AND、OR、XOR)指令M1M6:ALU2_I(ADDI、SUBI、ANDI、ORI、XORI)指令時(shí)序發(fā)生器電路圖指令譯碼電路和基準(zhǔn)時(shí)鐘電路微操作信號(hào)的邏輯組合表微操作信號(hào)取指周期M3周期M4周期M5周期M6周期SHT_ENSHTSHTINTRINT(M1)

PC_INCM2IRET+JMPRSET+JMPI+(LAD+STO)ALU2_ILDPCINT(M2)IRET+JMPRJMPI

PC_BUS#INT(M1)SET+JMPI+(LAD+STO)ALU2_

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論