一、中斷的基本概念
(一)中斷和中斷源
所謂“中斷”是指CPU在正常運行程序時,由于內(nèi)、外部事件引起CPU暫時中止正在運行的程序,轉(zhuǎn)而去執(zhí)行請求CPU暫時中止的內(nèi)、外部事件的服務(wù)程序,待該服務(wù)程序處理完畢后又返回到被中止的程序的過程。
能夠向CPU發(fā)出中斷請求的中斷來源稱為“中斷源”。常見的中斷源為:
(1)一般的輸入輸出設(shè)備,如CRT終端、行式打印機等;
(2)數(shù)據(jù)通道,如磁帶、磁盤等;
(3)實時時鐘,如計數(shù)器芯片8253等的定時輸出作為定時中斷請求信號;
(4)故障信號,如電源掉電等;
(5)軟件中斷,如為調(diào)試程序而設(shè)置的中斷源。
(二)中斷系統(tǒng)的功能
為滿足上述中斷要求,中斷系統(tǒng)應(yīng)具有的功能可歸結(jié)為中斷處理和中斷控制。
(1)中斷處理。包括發(fā)現(xiàn)中斷請求,響應(yīng)中斷請求、中斷處理與中斷返回。
(2)中斷控制。主要是實現(xiàn)中斷優(yōu)先級的排隊和中斷嵌套。
(三)中斷的主要用途
在微機系統(tǒng)中,中斷的主要用途是:
(1)實現(xiàn)輸入輸出操作;
(2)電源掉電或其他情況的報警;
(3)控制臺或人工干預(yù);
(4)多處理機系統(tǒng)中各處理機之間的協(xié)調(diào);
(5)控制操作系統(tǒng)。
(四)可屏蔽中斷與不可屏蔽中斷
根據(jù)微處理器內(nèi)部受理中斷請求的情況,中斷可分為可屏蔽中斷與不可屏蔽中斷兩種。
凡是微處理器內(nèi)部能夠“屏蔽”的中斷,稱為可屏蔽中斷;凡是微處理器內(nèi)部不能“屏蔽”的中斷,稱為不可屏蔽中斷。所謂“屏蔽”是指微處理器能拒絕響應(yīng)中斷請求信號,不允許打斷微處理器所執(zhí)行的主程序。這通常是由內(nèi)部的中斷觸發(fā)器(或中斷允許觸發(fā)器)來控制的。
二、中斷處理過程
微機系統(tǒng)中斷處理過程的流程圖如圖6-14所示。
(一)CPU響應(yīng)中斷的條件
1.設(shè)置中斷請求觸發(fā)器
每個中斷源向CPU發(fā)出中斷請求信號是隨機的,而大多數(shù)CPU都是在現(xiàn)行周期結(jié)束時,才檢測有無中斷請求信號發(fā)出。故在現(xiàn)行指令執(zhí)行期間,必須把隨機輸入的中斷信號鎖存起來,并保持到CPU響應(yīng)這個中斷請求后,才可以清除中斷請求。因此,要求每一個中斷源有一個中斷請求觸發(fā)器,如圖.6-15中④所示。
2.設(shè)置中斷屏蔽觸發(fā)器
在多個中斷源的情況下,為增加控制的靈活性,常要求在每一個外設(shè)的接口電路中,設(shè)置一個中斷屏蔽觸發(fā)器,只有當(dāng)此觸發(fā)器為“1”時,外設(shè)的中斷請求才能被送到CPU,如圖6-15中的⑧所示。可把8個外設(shè)的中斷屏蔽觸發(fā)器組成一個中斷屏蔽寄存器端口,用輸出指令來控制它們的狀態(tài)。上述兩個條件在接口中設(shè)置。
3.設(shè)置中斷允許觸發(fā)器的狀態(tài)
在CPU內(nèi)部有一個中斷允許觸發(fā)器,只有當(dāng)其為“1”時(即中斷開放時),CPU才能響應(yīng)中斷;若其為“0”.(即中斷關(guān)閉時),即使中斷請求線上有中斷請求,CPU也不響應(yīng)。可用允許中斷和禁止中斷指令來設(shè)置中斷允許觸發(fā)器的狀態(tài)。當(dāng)CPU復(fù)位時,中斷允許觸發(fā)器也復(fù)位為“0”,即關(guān)中斷。當(dāng)中斷響應(yīng)后,CPU就自動關(guān)閉中斷,以禁止接受另一個新的中斷(否則要處理多重中斷),因而通常在中斷服務(wù)程序結(jié)束時,必須有兩條指令,即允許中斷指令和返回指令。
4.CPU在現(xiàn)行指令結(jié)束后響應(yīng)中斷
在滿足上面三個條件的情況下,CPU在執(zhí)行現(xiàn)行指令的最后一個機器周期(總線周期)的最后一個時鐘周期(T狀態(tài))時,才采樣中斷輸入線INTR,若發(fā)現(xiàn)中斷請求有效,則把內(nèi)部的中斷鎖存器置“1”,下一機器周期進入中斷周期。
(二)CPU對中斷的響應(yīng)
進入中斷周期后,中斷響應(yīng)的過程如下:
1.關(guān)中斷
CPU在響應(yīng)中斷后,發(fā)出中斷響應(yīng)信號 ,同時內(nèi)部自動地關(guān)中斷,以禁止接受其他的中斷請求。
2.保護斷點
把斷點處的IP(指令指針)值和CS值(段基值)壓人堆棧保留,以備中斷處理完后能正確地返回主程序斷點。
3.識別中斷源
CPU要對中斷請求進行處理,必須要找到相應(yīng)的中斷服務(wù)程序(處理中斷的程序)的入口地址,這就是中斷源的識別。
識別中斷源有兩種方法:
(1)查詢中斷。當(dāng)外設(shè)沒有提出中斷請求時,CPU照常執(zhí)行主程序,只有在接收到外設(shè)的中斷請求后,CPU才去查詢,以識別提出中斷請求的設(shè)備,主要采用軟件查詢。
軟件查詢是用程序查詢接在中斷線上的每一個外設(shè)。查詢程序依次讀出每一個外設(shè)的中斷狀態(tài)位,通過測試該狀態(tài)位來判斷對應(yīng)的外設(shè)是否發(fā)出過中斷請求,若是,則轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序。一個管理4個外設(shè)的查詢測試程序的流程圖及硬件示意圖如圖6-16所示。從圖中可見,如果4次測試都未發(fā)現(xiàn)有中斷請求,則表示中斷輸入線的信號是由于出錯引起,程序轉(zhuǎn)向出錯出口。
圖6-16 用軟件查詢法找中斷源
(a)硬件示意圖;(b)流程圖
(2)向量中斷(Vectored Interrupt)。向量中斷又稱矢量中斷,在具有向量中斷的微機系統(tǒng)中,每個外設(shè)都預(yù)先指定一個中斷向量,當(dāng)CPU識別出某個外設(shè)請求中斷并予以響應(yīng)時,控制邏輯就將該外設(shè)的中斷向量送入CPU,以自動地提供相應(yīng)的中斷服務(wù)程序的人口地址,轉(zhuǎn)人中斷服務(wù)。用向量中斷來確定中斷源主要是用硬件來實現(xiàn)的,通常在微機系統(tǒng)中所用的可編程中斷控制器都能提供中斷向量。
4.保護現(xiàn)場
為了不使中斷服務(wù)程序的運行影響主程序的狀態(tài),必須把斷點處有關(guān)寄存器(指在中斷服務(wù)程序中要使用的寄存器)內(nèi)容以及標(biāo)志寄存器的狀態(tài),壓入堆棧保護。
5.執(zhí)行中斷服務(wù)程序
6.恢復(fù)現(xiàn)場
即把中斷服務(wù)程序執(zhí)行前壓入堆棧的現(xiàn)場信息彈回原寄存器及標(biāo)志。
7.開中斷與返回
開中斷放在返回之前,目的是返回主程序后能繼續(xù)響應(yīng)新的中斷請求。
三、中斷優(yōu)先級(又稱中斷優(yōu)先權(quán)
在實際系統(tǒng)中,常常遇到多個中斷源同時請求中斷的情況,這時CPU必須確定首先為哪一個中斷源服務(wù),以及服務(wù)的次序。解決的方法是用中斷優(yōu)先排隊的處理方法。這就是根據(jù)中斷源要求的輕重緩急,排好中斷處理的優(yōu)先次序,即優(yōu)先級(Pnonty);先響應(yīng)優(yōu)先級最高的中斷請求。有的微處理器有兩條或更多的中斷請求線、而且已經(jīng)安排好中斷的優(yōu)先級,但有的微處理器只有一條中斷請—求線。凡是遇到中斷源的數(shù)目多于CPU的中斷請求線的情況時,就需要采取適當(dāng)?shù)姆椒▉斫鉀Q中斷優(yōu)先級的問題。
另外,當(dāng)-CPU正在處理中斷時,也要能響應(yīng)優(yōu)先級更高的中斷請求,而屏蔽掉同級或較低級的中斷請求。即所謂多重中斷的問題。
通常,解決中斷的優(yōu)先級的方法有以下幾種:
(一)軟件查詢確定中斷優(yōu)先級
把8個外設(shè)的中斷請求觸發(fā)器組合起來,作為—個端口,賦以設(shè)備號,如圖6-17所示。把各個外設(shè)的中斷請求信號相“或”后,作為INTR信號,這樣任一外設(shè)有中斷請求都可向CPU送出IN丁R信號。當(dāng)CPU響應(yīng)中斷后,把中斷寄存器的狀態(tài)作為一個外設(shè)信息讀人CPU,逐位檢測其狀態(tài),若檢測出某位有中斷請求,即轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序人口。在查詢方式中詢問的次序即為優(yōu)先級的次序,不需要有判斷與確定優(yōu)先級的硬件排隊電路。其缺點是在中斷源較多的情況下,由詢問到轉(zhuǎn)至相應(yīng)的中斷服務(wù)程序的入口時間較長。
(二)硬件查詢確定優(yōu)先級
圖6-18為實現(xiàn)硬件查詢的優(yōu)先級中斷鏈電路(Daisy-chaining)。來自CPU的“中斷響應(yīng)”信號從A設(shè)備開始串行地往下傳送,當(dāng)A設(shè)備有“中斷請求”時,則“中斷響應(yīng)”信號在門A2處被封鎖,不再下傳,使后級設(shè)備得不到CPU的“中斷響應(yīng)”信號。同時A設(shè)備的“數(shù)據(jù)允許”線EN變?yōu)橛行В瑥亩试SA設(shè)備使用數(shù)據(jù)總線,將其中斷標(biāo)志放上數(shù)據(jù)總線進入CPU。當(dāng)A設(shè)備無“中斷請求”時, “中斷響應(yīng)”信號可以通過A2門傳給下一設(shè)備B。
優(yōu)先級中斷鏈電路又稱鏈?zhǔn)絻?yōu)先級排隊電路,當(dāng)“中斷響應(yīng)”信號串行地通過所有外設(shè)時,這些外設(shè)的中斷優(yōu)先級由其在鏈?zhǔn)脚抨犽娐分械南群蟠涡騺頉Q定。
(三)中斷優(yōu)先級編碼電路
用硬件編碼器和比較器組成的中斷優(yōu)先級排隊電路如圖6-19所示。
設(shè)有8個中斷源,當(dāng)任何一個有中斷請求時,通過“或”門,即可產(chǎn)生一個中斷請求信號,但它能否送至CPU的中斷請求線,還必須受比較器的控制。
圖6-19 編碼器和比較器的優(yōu)先級排隊電路
8條中斷輸入線的任何一條,經(jīng)過編碼器可以產(chǎn)生三位二進制優(yōu)先級編碼A2A1A0,優(yōu)先級最高的中斷輸入線的編碼為111,優(yōu)先級最低的中斷輸入線的編碼為000,而且若有多個中斷輸入線同時輸入,則編碼器只輸出優(yōu)先級最高的編碼。
正在進行中斷處理的外設(shè)的優(yōu)先級編碼,由CPU通過軟件,經(jīng)據(jù)總線送至優(yōu)先級寄存器,然后輸出編碼B2BlB0至比較器。
比較器對編碼A2A1A0與B2B1B-0的大小進行比較。若A≤B,則“A>B”端輸出低電子,封鎖與門1,禁止向CPU發(fā)出新的中斷請求;只有當(dāng)A>B時,比較器輸出端才為高電平,打開與門1,將中斷請求信號送至CPU的INTR輸入端,—當(dāng)CPU-響應(yīng)中斷后,中斷正在進行的中斷服務(wù)程序,轉(zhuǎn)去執(zhí)行優(yōu)先級更高的中斷服務(wù)程序。
若CPU不在執(zhí)行中斷服務(wù)程序時(即在執(zhí)行主程序),則優(yōu)先級失效信號為高電平,此時如有任一中斷源請求中斷,都能通過與門2,向CPU發(fā)出INTR信號。
當(dāng)外設(shè)的個數(shù)≤8時,它們公用一個產(chǎn)生中斷向量的電路,該電路由三位比較器的編碼A2A1A0供給。據(jù)此不同的編碼,即可轉(zhuǎn)入不同的入口地址。
四、中斷的嵌套
當(dāng)CPU執(zhí)行優(yōu)先級較低的中斷服務(wù)程序時,允許響應(yīng)比它優(yōu)先級高的中斷源請求中斷,而掛起正在處理的中斷,這就是中斷嵌套或稱多重中斷。此時,CPU將暫時中斷正在進行著的級別較低的中斷服務(wù)程序,優(yōu)先為級別高的中斷服務(wù),待優(yōu)先級高的中斷服務(wù)結(jié)束后,再返回到剛才被中斷的較低優(yōu)先級的那一級,繼續(xù)為它進行中斷服務(wù)。
多重中斷流程的編排與單級中斷的區(qū)別有以下幾點:
(1)加入屏蔽本級和較低級中斷請求的環(huán)節(jié)。這是為了防止在進行中斷處理時不致受到來自本級和較低級中斷的干擾,并允許優(yōu)先級比它高的中斷源進行中斷。
(2)在進行中斷服務(wù)之前,要開放中斷。因為如果中斷仍然處于禁止?fàn)顟B(tài),則將阻礙較高級中斷的中斷請求和響應(yīng),所以必須在保護現(xiàn)場、屏蔽本級及較低級中斷完成之后,開放中斷,以便允許進行中斷嵌套。
(3)中斷服務(wù)程序結(jié)束之后,為了使恢復(fù)現(xiàn)場過程不致受到任何中斷請求的干擾,必須安排并執(zhí)行關(guān)中斷指令,將中斷關(guān)閉,才能恢復(fù)現(xiàn)場。
(4)恢復(fù)現(xiàn)場后,應(yīng)該安排并執(zhí)行開中斷指令,重新開放中斷,以便允許任何其他等待著的中斷請求有可能被CPU響應(yīng)。應(yīng)當(dāng)指出只有在執(zhí)行了緊跟在開中斷指令后面的一條指令以后,CPU才重新開放中斷。一般緊跟在開中斷指令后的是返回指令RET,它將把原來被中斷的服務(wù)程序的斷點地址彈回IP及CS,然后CPU才能開放中斷,響應(yīng)新的中斷請求。
多個中斷源、單一中斷請求線的中斷處理過程的流程圖如圖6-20所示。
聲明:
(一)由于考試政策等各方面情況的不斷調(diào)整與變化,本網(wǎng)站所提供的考試信息僅供參考,請以權(quán)威部門公布的正式信息為準(zhǔn)。
(二)本網(wǎng)站在文章內(nèi)容來源出處標(biāo)注為其他平臺的稿件均為轉(zhuǎn)載稿,免費轉(zhuǎn)載出于非商業(yè)性學(xué)習(xí)目的,版權(quán)歸原作者所有。如您對內(nèi)容、版權(quán)等問題存在異議請與本站聯(lián)系,我們會及時進行處理解決。
相關(guān)推薦
2022年浙江自考《當(dāng)代中國政治制度》復(fù)習(xí)筆記匯總
09-152023年10月浙江自考傳播學(xué)概論復(fù)習(xí)資料:有限效果論
08-302023年4月浙江自考外國文學(xué)史復(fù)習(xí)筆記:高爾基
12-26自考輔導(dǎo)資料:2019年10月《美學(xué)》知識點-崇高的內(nèi)涵與特點
09-172022年浙江自考中國古代文學(xué)史(一)第三編第九章復(fù)習(xí)資料
10-31自考輔導(dǎo)資料:2019年10月《美學(xué)》知識點-優(yōu)美及優(yōu)美的內(nèi)涵與特點
09-172023年4月浙江自考中外教育簡史復(fù)習(xí)筆記:西歐中世紀(jì)教會學(xué)校
12-10自考輔導(dǎo)資料:2021年10月《學(xué)前教育史》—論幼稚師范教育
06-052022年浙江自考公共政策復(fù)習(xí)筆記第十章
09-19自考輔導(dǎo)資料:2021年10月《馬克思主義哲學(xué)原理》—矛盾是事物發(fā)展的動力
06-11與考生自由互動、并且能直接與專業(yè)老師進行交流解答。
與考生自由互動、并且能直接與專業(yè)老師進行交流解答。