中斷方式與輪詢方式比較
中斷的基本概念
程序中斷通常簡稱中斷,是指CPU在正常運行程序的過程中,由于預選安排或發(fā)生了各種隨機的內(nèi)部或外部事件,使CPU中斷正在運行的程序,而轉到為相應的服務程序去處理,這個過程稱為程序中斷。
二、80x86微處理器的中斷80x86微處理器的中斷類型一般分為2類,即由于執(zhí)行某些指令引起的軟中斷和由處理器以外其他控制電路發(fā)出中斷請求信號引起的硬中斷。CPU要從主程序轉入中斷服務程序,必須知道該中斷服務程序的入口地址,即中斷向量。80x86為CPU的PC機共有256個中斷向量。
中斷的一般過程:
主程序只是在設備A,B,C數(shù)據(jù)準備就緒時,才去處理A,B,C,進行數(shù)據(jù)交換。在速度較慢的外圍設備準備自己的數(shù)據(jù)時,CPU照常執(zhí)行自己的主程序。在這個意義上說,CPU和外圍設備的一些操作是并行地進行的,因而同串行進行的程序查詢方式相比,計算機系統(tǒng)的效率是大大提高了。如下圖:
實際的中斷過程還要復雜一些,下圖示出了中斷處理過程的詳細流程圖.當CPU執(zhí)行完—條現(xiàn)行指令時,如果外設向CPU發(fā)出中斷請求、那么CPU在滿足響應條件的情況下,將發(fā)出中斷響應信號,與此同時關閉中斷(“中斷屏蔽”觸發(fā)器置“1”),表示CPU不再受理另外—個設備的中斷。這時、CPU將尋找中斷請求源是哪個設備。并保存CPU自己的程序計數(shù)器(Pc)的內(nèi)容.然后,它將轉移到處理該中斷源的中斷服務程序.CPU在保存現(xiàn)場信息,設備(如文換數(shù)據(jù))以后.將恢復現(xiàn)場信息.在這些動作完成以后,開放中斷(“中斷屏蔽”觸發(fā)器置‘o”),并返網(wǎng)到原來被中斷的主程序的下一條指令。
(1)盡管外界中斷請求是隨機的,但CPU只有在當前一條指令執(zhí)行完畢后,即轉入公操作時才受理設備的中斷請求,這樣才不致于使當前指令的執(zhí)行受到干擾。公操作是指一條指令執(zhí)行結束后CPU所進行的操作,如中斷處理、直接內(nèi)存?zhèn)魉?、取下條指令等。外界中斷請求信號通常存放在接口中的中斷源鎖存器里,并通過中斷請求線連至CPU,每當一條指令執(zhí)行到末尾,CPU便檢查中斷請求信號。若中斷請求信號為“1”,則CPU轉入“中斷周期”,受理外界中斷。(2)為了在中斷服務程序執(zhí)行完畢以后正確地返回到原來主程序被中斷的斷點(PC內(nèi)容)而繼續(xù)執(zhí)行主程序,必須把程序計數(shù)器PC的內(nèi)容,以及當前指令執(zhí)行結束后CPU的狀態(tài)(包括寄存器的內(nèi)容和一些狀態(tài)標志位)都保存到堆棧中去。這些操作叫做保存現(xiàn)場。(3)當CPU響應中斷后,正要去執(zhí)行中斷服務程序時,可能有另一個新的中斷源向它發(fā)出中斷請求。為了不致造成混亂,在CPU的中斷管理部件中必須有一個中斷屏蔽觸發(fā)器,它可以在程序的控制下置“1”(設置屏蔽),或置“0”(取掉屏蔽)。只有在中斷屏蔽標志為“0”時,CPU才可以受理中斷。當一條指令執(zhí)行完畢CPU接受中斷請求并作出響應時,它一方面發(fā)出中斷響應信號INTA,另一方面把中斷屏蔽標志置“1”,即關閉中斷。這樣,CPU不能再受理另外的新的中斷源發(fā)來的中斷請求。只有在CPU把中斷服務程序執(zhí)行完畢以后,它才重新使中斷屏蔽標志置“0”,即開放中斷,并返回主程序。因此,中斷服務程序的最后必須有兩條指令,即開中斷指令和返主指令,同時在硬件上要保證返主指令執(zhí)行以后才受理新的中斷請求。(4)中斷處理過程是由硬件和軟件結合來完成的。如在前圖中,中斷周期由硬件實現(xiàn),而中斷服務程序由機器指令序列實現(xiàn)。后者除執(zhí)行保存現(xiàn)場、恢復現(xiàn)場、開放中斷并返回主程序任務外,對要求中斷的設備進行服務,使其同CPU交換一個字的數(shù)據(jù),或作其他服務。
輪詢方式的基本概念
輪詢(Polling)I/O方式或程序控制I/O方式,是讓CPU以一定的周期按次序查詢每一個外設,看它是否有數(shù)據(jù)輸入或輸出的要求,若有,則進行相應的輸入/輸出服務;若無,或I/O處理完畢柏,CPU就接著查詢下一個外設。
所需硬件:外設接口提供狀態(tài)端口、數(shù)據(jù)端口
軟件機制:應用程序必須定時查詢各個接口的狀態(tài)端口,判斷是否需要輸入、輸出數(shù)據(jù),如果需要,則通過數(shù)據(jù)端口進行數(shù)據(jù)操作。
特點:CPU通過執(zhí)行指令主動對外部設備進行查詢,外部設備處于被動地位。
上圖為一般過程。
輪詢方式與中斷方式的比較
速度
程序控制方式:
硬件的速度指標:由于“程序控制方式”完全采用軟件的方式對外設接口進行控制,所以它的硬件操作只是普通的端口讀寫,并無特別之處,其速度指標由總線傳輸速度、端口的響應速度共同決定。
對于這種外設控制方式,速度指標關鍵在于軟件。
中斷處理方式:
中斷處理方式本身所作的原子操作解釋和程序控制方式是一致的。
只不過因為加入了中斷請求和響應機制,對狀態(tài)端口的讀取變成了在中斷響應過程中對中斷號的讀取,對狀態(tài)端口的判斷變成了對中斷入口地址的確定。
從本質(zhì)上來說,中斷處理方式和程序控制方式本身的速度指標一致,沒有大的差別。
可靠性
程序控制方式:
由于硬件不支持中斷方式,因此操作系統(tǒng)把CPU控制權交給應用程序后,只要應用程序不交還CPU控制權,操作系統(tǒng)就始終不能恢復對CPU的控制(無定時中斷)。應用程序與操作系統(tǒng)都是軟件模塊,操作系統(tǒng)屬于核心模塊,它們之間存在交接CPU控制權的關系。正是由于這樣的關系,一旦使用對外設的“程序控制方式”時,應用程序出現(xiàn)死鎖,則操作系統(tǒng)永遠無法恢復對系統(tǒng)的控制。應用程序的故障通過外設控制方式波及到作為核心模塊的操作系統(tǒng),因此,根據(jù)關聯(lián)可靠性指標的計算可知,“程序控制方式”的關聯(lián)可靠性指標很低。
中斷處理方式:
由于提供定時中斷,操作系統(tǒng)可以在應用程序當前時間片結束后通過中斷服務程序重新獲得對CPU的控制權。應用程序的故障不會波及到操作系統(tǒng),因此,中斷處理方式的關聯(lián)可靠性指標高。
可擴展性
程序控制方式:
由于所有應用程序中都包含對端口的操作,一旦硬件接口的設計發(fā)生變化,則所有應用程序都必須進行修改,這會使修改費用升高很多倍。因此,程序控制方式會使相關硬件模塊的局部修改指標相對較低。
中斷處理方式:
應用程序不直接操作端口,對端口的操作是由中斷服務程序來完成的。如果某個硬件接口的設計發(fā)生了變化,只需要修改它相關的中斷服務程序即可。因此,中斷處理方式使得相關硬件模塊的局部修改指標較高。
生命期
“程序控制方式”(CPU查詢方式)在早期的計算機系統(tǒng)中能夠滿足應用需求;但是隨著外部設備種類的增多、速度差異的加大,這種方式逐漸成為系統(tǒng)性能提高的障礙。它的生命期只限于早期計算機階段,因為當時外部設備少,且都是低速設備,到8位機出現(xiàn)以后,這種外設控制方式(體系結構)被淘汰。
“中斷處理方式”(外設請求方式)能夠協(xié)調(diào)CPU與外設間的速度差異,能夠協(xié)調(diào)各種外設間的速度差異,提高系統(tǒng)的工作效率(速度指標)。使應用程序與外設操作基本脫離開來,降低了程序的設備相關性(關聯(lián)可靠性指標、局部修改指標)。雖然目前某些快速設備相互間的通信沒有通過CPU,也沒有使用中斷處理方式,但是對于慢速設備、設備故障的處理來說,中斷處理方式仍然是最有效的。無論將來計算機系統(tǒng)中的元件怎樣變化,只要存在慢速設備與快速CPU之間的矛盾,使用中斷處理方式都是適合的。即便不使用中斷服務程序,中斷的概念也會保持很久。在短時期內(nèi),計算機系統(tǒng)還無法在所有領域離開人工交互操作,人的操作速度一定比機器的處理速度慢,因此慢速設備將仍然保持存在(但這不是慢速設備存在的唯一原因)。正因為存在這樣的需求,中斷處理方式具有較長的生命期。
-
cpu
+關注
關注
68文章
11077瀏覽量
217029 -
中斷
+關注
關注
5文章
905瀏覽量
42790
發(fā)布評論請先 登錄
評論