您好,登錄后才能下訂單哦!
小編給大家分享一下計算機程序中斷處理過程的五個階段是什么,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
中斷處理過程的五個階段:1、中斷請求階段;2、中斷判優(yōu)階段,有硬件判優(yōu)和軟件判優(yōu)兩種方法;3、中斷響應(yīng)階段,CPU向中斷源發(fā)出中斷響應(yīng)信號;4、中斷服務(wù)階段;5、中斷返回階段,返回到原程序的斷點處,恢復(fù)硬件現(xiàn)場,繼續(xù)執(zhí)行原程序。
本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
中斷處理的基本過程包括中斷請求、中斷判優(yōu)、中斷響應(yīng)、中斷服務(wù) 和中斷返回等五個階段。
1)發(fā)生在CPU內(nèi)部的中斷(內(nèi)部中斷),不需要中斷請求,CPU內(nèi)部的中斷控制邏輯直接接收處理。
2)外部中斷請求由中斷源提出。外部中斷源利用CPU的中斷輸入引腳 輸入中斷請求信號。一般CPU設(shè)有兩個中斷請求輸入引腳:可屏蔽中斷請求輸入引腳和不可屏蔽中斷請求輸入引腳。
每個中斷源發(fā)中斷請求信號的時間是不確定的,而CPU在何時響應(yīng)中斷也 是不確定的。所以,每個中斷源都有一個中斷請求觸發(fā)器,鎖存自己的中斷請求信號,并保持到CPU響應(yīng)這個中斷請求之后才將其清除。
在CPU內(nèi)部有一個中斷允許觸發(fā)器,當(dāng)其為“1”時,允許CPU響應(yīng)中斷, 稱為開中斷。若其為“0”,不允許CPU響應(yīng)中斷,中斷被屏蔽,稱為關(guān)中斷。
%%通常,當(dāng)CPU復(fù)位時,中斷允許觸發(fā)器也復(fù)位為“0”,即關(guān)中斷。當(dāng) CPU中斷響應(yīng)時,CPU自動關(guān)閉中斷,禁止接受另一個新的中斷。
%%中斷允許觸發(fā)器的狀態(tài)可以用開中斷或關(guān)中斷指令來設(shè)置。
CPU一次只能接受一個中斷源的請求,當(dāng)多個中斷源同時向CPU提出中斷請求時,CPU必須找出中斷優(yōu)先級最高的中斷源,這一過程稱為中斷判優(yōu)。
中斷判優(yōu)可以采用硬件方法,也可采用軟件方法。
CPU檢測到中斷請求后,首先讀取中斷請求寄存器的內(nèi)容,逐位檢測它們的狀態(tài),檢測到某一位為1,就確定對應(yīng)的中斷源有中斷請求,轉(zhuǎn)去執(zhí)行它的中斷服務(wù)程序。
先檢測哪一個,哪一個的優(yōu)先級就高,后檢測哪一個,哪一個優(yōu)先級就低,檢測的順序就是各中斷源的優(yōu)先級順序。
假設(shè)上圖中輸入端口地址為87FFH。有如下查詢程序:
MOV DX, 87FFH
IN AL, DX ;讀中斷請求寄存器內(nèi)容
SHR AL, 1
JC IR0 ;IRQ0有請求,轉(zhuǎn)IR0
SHR AL,1
JC IR1 ;IRQ1有請求,轉(zhuǎn)IR1
SHR AL,1
JC IR2 ;IRQ2有請求,轉(zhuǎn)IR2
… …
軟件判優(yōu)耗時較長。如果中斷源很多,中斷的實時性就很差,但是軟件判優(yōu)優(yōu)先權(quán)安排靈活。
利用專門的硬件電路確定中斷源的優(yōu)先級,有兩種常見的方式:菊花鏈判優(yōu)電路和中斷控制器判優(yōu)。
設(shè)計思想:每個中斷源都有一個中斷邏輯電路,所有的中斷邏輯電路形成一個鏈,猶如菊花鏈。排在鏈前端的中斷源優(yōu)先級最高,越靠后的設(shè)備優(yōu)先級越低。
實現(xiàn)過程: CPU收到中斷請求,如果允許中斷,CPU發(fā)出中斷響應(yīng)信號。中斷響應(yīng)信號首先到達菊花鏈的前端,如果中斷源1提出了中斷請求,它就會截獲中斷響應(yīng)信號,封鎖它,使它不能向下一個中斷源傳送。不論下面的中斷源有沒有提出中斷請求,都不可能接收到中斷響應(yīng)信號,因此它們的中斷請求也不能被響應(yīng)。
中斷控制器,如Intel8259A,可以以多種方式設(shè)置中斷源的中斷優(yōu)先級。 中斷控制器中有一個中斷優(yōu)先級判別器,它自動判別出目前提出中斷請求的優(yōu)先級最高的中斷源,并將它的中斷向量碼送到數(shù)據(jù)總線,CPU接收中斷向量碼并據(jù)此找到它的中斷服務(wù)程序。
經(jīng)過中斷判優(yōu),中斷處理就進入中斷響應(yīng)階段。中斷響應(yīng)時,CPU向中斷源發(fā)出中斷響應(yīng)信號,同時:
① 保護硬件現(xiàn)場;
② 關(guān)中斷;
③ 保護斷點;
④ 獲得中斷服務(wù)程序的入口地址。
中斷服務(wù)程序的一般結(jié)構(gòu)為:
1)保護現(xiàn)場。 在中斷服務(wù)程序的起始部分安排若干條入棧指令,將各寄存器的內(nèi)容壓入堆棧保存。
2)開中斷。 在中斷服務(wù)程序執(zhí)行期間允許級別更高的中斷請求中斷現(xiàn) 行的中斷服務(wù)程序,實現(xiàn)中斷嵌套。
3)中斷服務(wù)。 完成中斷源的具體要求。
4)恢復(fù)現(xiàn)場。 中斷服務(wù)程序結(jié)束前,必須恢復(fù)主程序的中斷現(xiàn)場。通常是將保存在堆棧中的現(xiàn)場信息彈出到原來的寄存器中。
5)中斷返回。 返回到原程序的斷點處,繼續(xù)執(zhí)行原程序。
返回到原程序的斷點處,恢復(fù)硬件現(xiàn)場,繼續(xù)執(zhí)行原程序。
中斷返回操作是中斷響應(yīng)操作的逆過程。
看完了這篇文章,相信你對“計算機程序中斷處理過程的五個階段是什么”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。