什麼是中斷,處理器如何處理普通中斷和多箇中斷?
中斷是來自連線到計算機的裝置或計算機內程式的訊號,它要求作業系統停止並確定下一步該做什麼。
每當發生中斷時,它都會導致 CPU 停止執行當前程式。然後控制權轉移到中斷處理程式或中斷服務例程。
ISR 處理中斷的步驟如下:
步驟 1 - 當發生中斷時,假設處理器正在執行第 i 條指令,程式計數器將指向下一條指令(第 i+1 條)。
步驟 2 - 當發生中斷時,程式值儲存在程序棧中,程式計數器載入中斷服務例程的地址。
步驟 3 - 中斷服務例程完成後,程序棧中的地址被彈出並放回程式計數器。
步驟 4 - 現在,它執行第 (i+1) 行的後續操作。
多重中斷
多重中斷是在處理器處理先前中斷時可能發生的另一箇中斷事件。
例如 - 程式從通訊線路接收資料並列印結果,在印表機中斷正在處理時,通訊中斷可能會發生。
處理中斷的方法
處理器可以處理中斷的兩種方式
停用中斷 - 處理器在處理一箇中斷時會忽略後續的中斷。中斷保持掛起狀態,並在第一個中斷處理完成後進行檢查。在此過程中,中斷按順序處理。
定義優先順序 - 在此方法中,低優先順序中斷可以被高優先順序中斷打斷。在此,將先處理高優先順序中斷,然後處理器返回到之前正在處理的中斷。
中斷型別
中斷有兩種型別:
硬體中斷 - 由外部裝置生成的中斷訊號。
軟體中斷 - 由內部裝置生成的中斷訊號。
我們知道指令週期包括取指令、解碼、執行和讀/寫功能。
在每個指令週期之後,處理器都會檢查是否有需要處理的中斷。如果系統中沒有中斷,它將進入下一個指令週期,該週期由指令暫存器給出。
如果有中斷存在,則它將觸發中斷處理程式,處理程式將停止正在處理的當前指令,並將它的配置儲存到暫存器中,並從中斷表中給定的位置載入中斷的程式計數器。
處理中斷後,處理器中斷處理程式將從儲存的暫存器中載入指令及其配置,程序將從中斷處繼續執行。這也被稱為上下文切換。
廣告