




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
計算機系統(tǒng)結(jié)構(gòu)實驗系列一、微程序版CPU二、硬布線版CPU三、流水線版CPU四、嵌套中斷CPU賴曉錚博士華南理工大學(xué)laixz@QQ:68046508(四)嵌套中斷CPU實驗實驗內(nèi)容:●設(shè)計一個嵌套中斷的多中斷源CPU,在功能和結(jié)構(gòu)上完全兼容前述的微程序版本CPU:數(shù)據(jù)通路相同,指令體系相同,不同之處在于用硬布線邏輯電路構(gòu)建的堆棧代替“斷點”寄存器,可以“先入后出”的保存指令地址PC和運算器標志位PSW,實現(xiàn)多級中斷嵌套。實驗?zāi)康模骸窭斫舛褩5挠膊季€邏輯實現(xiàn)方法?!裾莆栈诙褩5那短字袛郈PU設(shè)計原理。硬布線邏輯的堆棧電路入棧時序:信號push=1且pop=0,移位寄存器74LS194狀態(tài){S0,S1}={1,0},進入右移模式T上升沿時刻,SR(DIN)
Q0且Qi
Qi+1(i=0,1,2)
出棧時序:信號push=0且pop=1,移位寄存器74LS194狀態(tài){S0,S1}={0,1},進入左移模式,Q0(DOUT)輸出T上升沿時刻,Qi
Qi-1(i=1,2,3)
位堆棧電路初始化時序:啟動仿真,SP狀態(tài){S0,S1}={1,1},第一個T上升沿時刻,SP輸出端為{Q0,Q1,Q2,Q3}={0,0,0,1}入棧時序(pop=0):push上升沿,SP狀態(tài){S0,S1}={1,0}T上升沿,SP+1(Qi
Qi+1)
,右移;push下降沿,SP輸出鎖存,刷新BPx出棧時序(push=0):pop上升沿,SP狀態(tài){S0,S1}={0,1},
同時,SP輸出鎖存,刷新#OExT上升沿,SP-1(Qi
Qi+1),左移;字節(jié)堆棧指針入棧時序(pop=0)push上升沿,撥碼開關(guān)數(shù)據(jù)鎖存SIN總線;push下降沿,刷新BPx產(chǎn)生的上升沿把SIN總線數(shù)據(jù)打入新BPx所對應(yīng)的寄存器STACK_x;出棧時序(push=0)pop上升沿,刷新的#OEx所對應(yīng)的寄存器STACK_x輸出數(shù)據(jù)到SOUT總線;同時,pop=1令SOUT總線導(dǎo)通到BUS總線(數(shù)碼管顯示)字節(jié)堆棧通路嵌套中斷CPU電路圖多路中斷源
電路
(無優(yōu)先級)程序計數(shù)器PC
中斷矢量地址電路
(中斷源對應(yīng))思考題:若在中斷ISR3程序里繼續(xù)觸發(fā)中斷,會出現(xiàn)什么情況?四級嵌套中斷的時序圖PC“斷點”堆棧
(INTR=push,IRET=pop)PSW“斷點”堆棧(INTR=push,IRET=pop)初始化過程時鐘信號CLK接手動開關(guān)MANUAL,啟動仿真,使能復(fù)位信號#RESET=0;手動按鈕MANUAL開關(guān)“0
10”,然后令信號#RESET=1.注:初始化完成后,若時鐘信號CLK繼續(xù)接開關(guān)MANUAL,則CPU進入手動模式,手動MANUAL開關(guān),生成時鐘信號CLK,程序單步執(zhí)行;若時鐘信號CLK接信號源AUTO-CLK(主頻10Hz),則CPU進入自動模式,程序自動運行,直到HLT指令的“斷點”處暫停。重啟過程(跳出“斷點”)時鐘信號CLK接開關(guān)MANUAL,手動令復(fù)位信號端#RESET的狀態(tài)“1
0
1”變化,即重啟完成,跳出“斷點”繼續(xù)執(zhí)行
。注:跳出“斷點”后,CPU進入HLT指令的后續(xù)下一條指令的取指周期。實驗步驟1)編譯、燒寫、運行后頁所示的nested_ISR源程序,隨機觸發(fā)中斷源0或1,觀察PC、IR、通用寄存器Rx及總線BUS的數(shù)據(jù)變化(編譯和燒寫asm文件方法參見“2.6存儲器實驗”)。2)在nested_ISR程序自動運行過程中,設(shè)置HLT指令“斷點”,手動單步嵌套觸發(fā)同一中斷源或不同中斷源。觀察和記錄進入各級中斷時,程序計數(shù)器PC、標志位寄存器PSW、總線BUS以及BP_PC堆棧和BP_PSW堆棧的狀態(tài)。3)中斷源1子程序會對主程序的R0數(shù)值有影響么?中斷源0子程序會對主程序或中斷源1子程序的R0或R1數(shù)值有影響么?因為中斷的出現(xiàn)是隨機的,所以一般情況下,中斷子程序禁止改變主程序的寄存器數(shù)值。請問采取什么軟件方法能避免中斷子程序影響主程序?
匯編助記符(M地址:機器指令)JMP13H00H:0001000001H:0001001104H;vector002H:000001000CH;vector103H:00001100OUTR1,PORT0;sub004H:01010100SETR1,80H05H:0011010006H:10000000HLT07H:00000001OUTR0,PORT008H:01010000SETR0,80H09H:001100000AH:10000000IRET0BH:01110000nested_ISR匯編助記符(M地址:機器指令)SETR1,90H;sub10CH:001101000DH:10010000SUBIR1,01H0EH:110001000FH:00000001JS0EH10H:0001110011H:00001110IRET12H:01110000SETR0,90H;main13H:0011000014H:10010000SUBIR0,01H15H:1100000016H:00000001JS15H17H:0001110018H:00010101HLT19H:00000001思考題:●請把本實驗的微程序版嵌套中斷CPU電路改成相應(yīng)的硬布線版本和流水線版本,并執(zhí)行上述實驗步驟的程序。請問程序是否需要修改?如果需要,修改的地方及原因?●嵌套中斷CPU的兩個中斷源INT0和INT1可以彼此嵌套,沒有優(yōu)先級概念。請修改硬件,增添中斷優(yōu)先級判別電路,令中斷源INT0的優(yōu)先級比INT1高,即INT0中斷可以在INT1中斷子程序中觸發(fā),但是INT1中斷不能在INT0中斷子程序中觸發(fā)。(提示:請參考“2.3比較器(仲裁器)實驗”,采用“菊花鏈”結(jié)構(gòu)設(shè)計中斷優(yōu)先級判別電路。注意:某一級中斷即使當(dāng)前不能執(zhí)行,中斷響應(yīng)也不能撤銷,必須掛起,等待優(yōu)先級高的中斷子程序結(jié)束后,繼續(xù)執(zhí)行。)(四)嵌套中斷CPU實驗思考題:●
上述優(yōu)先級電路的設(shè)計是固定不變的,但是我們可能需要調(diào)整中斷源的優(yōu)先級設(shè)計,假設(shè)要把上述中斷電路改成可變優(yōu)先級判別的的中斷電路,該怎么設(shè)計?
(提示:在嵌套中斷的CPU中,設(shè)置中斷屏蔽寄存器IMR(INT_MASK_REG),寄存器IMR的每個位(bit)對應(yīng)固定的中斷源,該位置1表示屏蔽相應(yīng)的中斷源,置0表示中斷源允許中斷。在每個中斷源的中斷子程序入口處,采用特定的指令SETI配置IMR寄存器,中斷返回前則把IMR寄存器清零,取消所有中斷屏蔽。SETI指令不但可以配置中斷的優(yōu)先級,還可以在主程序中實現(xiàn)軟件禁止和重啟中斷的功能。值得注意的是,微程序版本CPU的微地址已經(jīng)用完,要改造電路,精簡尋址周期微指令,騰出微地址給SETI指令的微指令。)(四)嵌套中斷CPU實驗附錄:CPU指令集OP碼表OP碼(I7I6I5I4)指令助記符OP碼(I7I6I5I4)指令助記符0111IRET1111OR/ORI0110MOV1110AND/ANDI0101OUT/OUTA1101ADD/ADDI0100IN1100SUB/SUBI0011SET1011XOR/XORI0010SOP(INC/DEC/NOT/THR)1010SHT(RLC/LLC/RRC/LRC)0001JMP/JMPR/Jx/JxR1001STO/PUSH0000NOP/HLT1000LAD/POP一、系統(tǒng)指令:匯編語言功能I7I6I5I4I3I2I1I0NOP;無操作(延時4個T)00000/0x/0HLT;停機(斷點)00000/0x/1IRET;中斷返回BP_PC
PC;BP_PSW
PSW01110/0x/x匯編語言注釋I7I6I5I4I3I2I1I0MOVRA,RB;(RB)
RA0110RARBSETRA,IMM;IMM
RA0011RAx/xIMM二、寄存器及I/O操作指令:匯編語言功能I7I6I5I4I3I2I1I0INRA,PORTx;(PORTx)
RA0100RAPORTxOUTRA,PORTx;(RA)
PORTx0101RA0/PORTxOUTARA,PORTx;(RA)
PORTx0101RA1/PORTx匯編語言功能I7I6I5I4I3I2I1I0LADRA,[ADDR];[ADDR]
RA1000RA0/0ADDRPOPRA,[RB];[RB]
RA1000RARBSTORA,[ADDR];(RA)
[ADDR]1001RA0/0ADDRPUSHRA,[RB];(RA)
[RB]1001RARB三、存儲器及堆棧操作指令:匯編語言功能I7I6I5I4I3I2I1I0JMPADDR;ADDR
PC00010/00/0ADDRJMPRRB;(RB)
PC00010/0RBJCADDR;IFCF=1,ADDR
PC00010/10/0ADDRJCRRB;IFCF=1,(RB)
PC00010/1RBJZADDR;IFZF=1,ADDR
PC00011/00/0ADDRJZRRB;IFZF=1,(RB)
PC00011/0RBJSADDR;IFSF=1,ADDR
PC00011/10/0ADDRJSRRB;IFSF=1,(RB)
PC00011/1RB四、跳轉(zhuǎn)系列指令:五、算術(shù)邏輯運算指令:匯編語言功能I7I6I5I4I3I2
I1I0RLCRA;(RA)右邏輯移位1010RA0/0LLCRA;(RA)左邏輯移位1010RA1/0RRCRA;(RA)右循環(huán)移位1010RA0/1LRCRA;(RA)左循環(huán)移位1010RA1/1匯編語言功能I7I6I5I4I3I2I1I0INCRA;(RA)+1
RA0010RA0/0DECRA;(RA)-1
RA0010RA0/1NOTRA;#(RA)
RA0010RA1/0THRRA;(RA)
RA0010RA1/1五、算術(shù)邏輯運算指令:匯編語言格式功能I7I6I5I4I3I2I1I0ADDRA,RB;(RA)+(RB)
RA1101RARBADDIRA,IMM;(RA)+IMM
RA1101RA0/0IMMSUBRA,RB;(RA)-(RB)
RA1100RARBSUBIRA,IMM;(R
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)小區(qū)農(nóng)村生態(tài)農(nóng)業(yè)發(fā)展協(xié)議
- 行政管理學(xué)影響力評估試題及答案
- 2025年電子裝聯(lián)專用設(shè)備項目建議書
- 世界旅游大會出席與學(xué)習(xí)證明書(8篇)
- 深入市政學(xué)公共管理實踐試題及答案
- 預(yù)防艾滋病教育
- 行政管理面臨的挑戰(zhàn)試題及答案
- 行政管理中的人本理念試題及答案
- 2024-2025學(xué)年高中歷史專題五無產(chǎn)階級革命家四俄國無產(chǎn)階級革命的導(dǎo)師-列寧二練習(xí)含解析人民版選修4
- 行政管理與社會福利的現(xiàn)實關(guān)聯(lián)探討試題及答案
- 企業(yè)EHS風(fēng)險管理基礎(chǔ)智慧樹知到期末考試答案2024年
- 國內(nèi)信用證基礎(chǔ)知識培訓(xùn)
- 礦山救護工考試:礦山救護規(guī)程題庫考試題
- 建筑工地安全文明施工
- 機關(guān)餐飲項目服務(wù)方案(完整版)
- 土地管理學(xué)課件
- 橡膠制品納米技術(shù)應(yīng)用
- 《鋼鐵是怎樣煉成的》選擇題100題(含答案)
- 生活中的心理學(xué)課件
- 2024年浙江樂清市金融控股有限公司招聘筆試參考題庫含答案解析
- 無期限的六合公式匯編
評論
0/150
提交評論