-----中斷系統------
1.定義:CPU正常執行流程被某些外部事件的發生而打斷。
2.中斷系統的意義
可以提高CPU使用率,使得CPU在執行程式指令時候,可以兼顧到其他的一些必要事件
的處理;比如IO操作,異常錯誤等。
3.引起中斷的事件---大體分為軟體和硬體
*人為設定引起的中斷
*程式執行過程中的錯誤
*硬體故障
*IO裝置傳輸資料引起
*其他外部裝置等
4.中斷系統要解決的問題---依靠軟體+硬體實作
*中斷源怎麼提出中斷請求
*存在多個中斷請求時候如何處理
*CPU如何響應中斷
*保護程式斷點和程式現場
*中斷服務程式的入口位址
*中斷斷點恢複現場恢複
*多重中斷的處理
5.中斷判優具體實作
中斷源設定有中斷标志INTR,CPU具有中斷信号查詢的線路連接配接到中斷源
每當有當中斷源INTR=1時候,中斷源的請求送入CPU中斷請求寄存器,進而
将這些中斷請求送入CPU内部的鍊式排隊器裡面,獲得一個中斷請求被CPU
響應,并将該中斷源的INTR=0--标準着該中斷被響應
6.中斷程式的入口位址的形成
中斷程式的入口位址--需要根據中斷向量獲得。
中斷向量的産生兩種方式:硬體方式和軟體方式;通常硬體産生的中斷向量被
存儲在記憶體的某個固定的地方--中斷程式的入口位址就是中斷向量指向的記憶體
單元的位址:要麼是跳轉/要麼直接是位址。
硬體向量:根據幾個bit來産生。具體的位數根據系統中中斷源的個數。産生
一串二進制數--就辨別一個中斷服務程式。
7.單個中斷處理過程
*中斷源提出中斷請求
*CPU響應中斷的條件:處于開中斷、指令執行的結束才會查詢有沒有中斷
*中斷響應:儲存程式斷點:由中斷隐指令完成--硬體完成保證正确
關中斷;将PC的值儲存在記憶體/堆棧中;确定中斷程式入口位址;
*進入中斷服務程式
保護現場--儲存寄存器/記憶體中的值--中斷服務程式完成;
執行中斷服務程式;
恢複現場
開中斷
中斷傳回--傳回到中斷發生的下條指令執行
8.中斷屏蔽技術
存在于多重中斷中,由于開中斷的提前,導緻CPU在處理一個中斷的時候,
又來了新的中斷--對于這個中斷是否被響應要看其優先級;
注意:被響應的優先級是固定的,但是新的中斷是否被處理是可以改變的;
處理優先級;可以通過中斷屏蔽技術改變。
響應優先級:這個是由CPU中斷排隊器決定的不會改變。
中斷屏蔽技術:排隊器裡面含有集中的MASK标志;通過設定這個标志的值就可以
實作某個中斷請求的處理被屏蔽。
中斷屏蔽字舉例:A B C 3個中斷 對應的屏蔽字:111;011;001;
表示:A不會被屏蔽;B會被A屏蔽;C會被A/B屏蔽
中斷屏蔽字被存儲在CPU裡面的中斷屏蔽字寄存器中。
9.多重中斷的處理流程
關中斷;保護程式斷點;設定屏蔽字;開中斷;進入中斷服務程式
關中斷;恢複現場;恢複屏蔽字;開中斷;中斷傳回。
10.多重中斷斷點的保護:斷點壓棧、斷點存入記憶體