**
中斷就是cpu遇到異常事件的時候停止當前程式去處理異常情況,並且在處理完異常狀況之後重新返回當前執行程式的過程。
中斷分為硬體中斷和軟體中斷。硬體中斷分為可遮蔽中斷intr和非遮蔽中斷nmi。其中軟體中斷五個部分包括斷點、單步、除法、溢位等。
程式可遮蔽中斷是通過外部中斷源控制的,其餘是硬體預先設定。
可遮蔽中斷的過程是:外設向cpu發出中斷請求,如果if(中斷允許標誌位)為1的話,cpu會響應中斷請求,cpu通過inta向外設發出兩個負脈衝,第乙個負脈衝告訴外設準備好中斷型別碼,第二個負脈衝將中斷型別碼送過來。其中cpu從資料匯流排獲取中斷型別碼放到暫存器中。然後psw標誌暫存器入棧保護,if和tf(陷阱/跟蹤標誌位)清零。斷點cs、ip斷點保護。將中斷型別號*4得到中斷向量,由中斷向量得到中斷服務子程式位址轉到中斷服務子程式執行。
中斷常用術語:
③中斷向量 中斷向量
中斷服務子程式的入口位址,即中斷服務子程式的第一條指令的位址在儲存器中的存放位置。
④中斷向量表 中斷向量表
中斷向量構成的**,位於儲存器的最低位址單元。
執行的現行程式被中斷時的下一條指令的位址,又稱斷點位址。
⑤斷點 斷點
中服程式中應保護和恢復的相關資訊。
⑦中斷優先順序 中斷優先順序
系統中多個中斷源同時提出中斷請求時,需按中斷的輕重緩急 給每個中斷源指定乙個優先級別。
⑧中斷巢狀 中斷巢狀
中斷服務程式執行中響應更高階別中斷請求。
⑨中斷型別號
處理器對各類中斷的中斷源進行的統一編號n , n的取值範圍 的取值範圍 是 是0~255 。
單個中斷源的過程
cpu開中斷時,若有中斷請求開中斷時,它也並不立即響應。
只有當現行指令執行到最後乙個 只有當現行指令執行到最後乙個 機器週期的最後乙個t狀態時, cpu才取樣才取樣 intr訊號,若有此訊號, cpu進入中斷響應週期。
cpu響應中斷及處理過程 響應中斷及處理過程
①關中斷
② 保留斷點
③保護現場
④ 給出中斷入口 給出中斷入口(位址 ) ,轉入相應的中斷服務程式
⑤ 恢復現場 恢復現場
⑥ 開中斷與返回
本人不才,有不足之處,還望各位前輩請多多指教。如果內容有什麼問題還請指出。這是本人為研究生複試微機原理做的一些總結,關於老師提問微機中斷的回答。其實我們不需要全部掌握,但是要了解中斷大概流程。中斷請求中斷響應優先順序判別中斷處理中斷返回,intr和nmi區別,還有要了解8255和8259,這裡再多說一點
方式0(基本輸入輸出方式):
不需任何選通訊號,a口、b口、高半c口、低半c口,可被設定為輸入或輸出。
作輸出口時輸出資料存鎖;作輸入口時輸入資料不存鎖。
方式1(選通輸入輸出方式):
a、b、c 三個口分為兩組。
a組包括a口及高半c口,a口可程式設計設定為輸入或輸出,高半c口作i/o控制及同步訊號;
b組包括b口及低半c口,b口可程式設計設定為輸入或輸出,低半c口作i/o控制及同步訊號;
a口、b口的輸入/輸出資料都被存鎖。
方式2(雙向匯流排方式):
a口(僅a口)作8位雙向匯流排,c口的pc3~pc7位用作i/o控制及同步訊號;
b口及c口的pc0~pc2可程式設計設定為方式0或方式1工作。
****
1)中斷請求暫存器(irr)interrupt requist register
中斷請求暫存器(irr)為8位,接受來自ir0~ir7的中斷請求訊號,當ir0~ir7上出現某一中斷請求訊號時,irr對應位被置1;
(2)中斷遮蔽暫存器imr mask
中斷遮蔽暫存器imr 為8位(8個中斷輸入),若irr(中斷請求暫存器)中記錄的8個中斷請求中有任何乙個需要遮蔽,只要將imr的相應位置1即可,未被遮蔽的中斷請求可以進入優先權判別器;它的內容由cpu通過對8259初始化時設定設定。
(3)中斷服務暫存器isr severise
8位,儲存當前正在處理的中斷請求,例如,如果isr的d2=1,表示cpu正在為來自ir2的中斷請求服務。
(4)優先權判別器pr
若某中斷請求正在被處理,8259a外部又有新的中斷請求,則由優先權判別器將新進入的中斷請求和當前正在處理的中斷進行比較,以決定哪乙個優先順序更高。若新的中斷請求比正在處理的中斷級別高,由pr通過控制邏輯向cpu發出中斷申請int,正在處理的中斷自動被禁止,先處理級別高的中斷。
(5)資料匯流排緩衝器
用於8259a與資料匯流排的介面,傳輸命令控制字、狀態字和中斷型別碼。
(6)讀/寫控制邏輯
確定資料匯流排緩衝器中資料的傳輸方向,選擇內部的各命令字暫存器。當cpu發讀訊號時將8259a的狀態資訊放到資料匯流排上;當cpu發寫訊號時,將cpu發來的命令字資訊送入指定的命令字暫存器中。
(7)級聯緩衝/比較器
用來存放和比較在系統中用到的所有8259a的級聯位址。主控8259a通過cas0、cas1和cas2傳送級聯位址,選中從控8259a。
功能:就是在有多個中斷源的系統中,接受外部的中斷請求,並進行判斷,選中當前優先順序最高的中斷請求,再將此請求送到cpu的intr端;當cpu響應中斷並進入中斷子程式的處理過程後,中斷控制器仍負責對外部中斷請求的管理。
8259a的主要功能如下:
①一片8259a可以接受並管理8級可遮蔽中斷請求,通過8片8259a級聯可擴充套件至63級可遮蔽中斷優先控制。
②對每一級中斷都可以通過程式來遮蔽或允許。
③在中斷響應週期,8259a可為cpu提供相應的中斷型別碼。
④具有多種工作方式,並可通過程式設計來加以選擇。
8259a有4個初始化命令字icw1~icw4, 它們按照一定的順序送入,用於設定8259a的初始狀態。無論何時,當微處理器向8259a傳送一條a0=0和d4=1的命令時,這條命令就解碼為icw1。 a0=0和d4=1是icw1的標識位! 利用a0=0,d4=1對icw1定址。
1)icw1:規定8259的連線方式(單片或級聯)與中斷源請求訊號的有效形式(邊沿或電平觸發)。
(2) icw2(中斷型別碼字)
icw2是設定中斷型別碼的初始化命令字。
程式設計時用icw2設定中斷型別碼高5位t7~t3,低3位自動插入ir的編碼。
了某位中斷請求輸入線所對應的向量型別碼,可以使cpu自動得到相應的中斷請求的中斷型別號。
(3) icw3(級連控制字)
icw3是標誌主片/從片的初始化命令字。只有在乙個系統中包含多片8259a時,icw3才有意義!!!
4) icw4(中斷結束方式字)
在對8259a用初始化命令字進行初始化後,就進入工作狀態,準備好接收ir輸入的中斷請求訊號。在8259a工作期間, 可通過操作命令字來使它按不同的方式進行操作。
機器學習原理個人總結
1 用自己的話說明機器學習的四大分類 classification 分類 clustering 聚類 regression 回歸 dimensionality reduction 降維 1 回歸是對已有的資料樣本點進行擬合,再根據擬合出來的函式,對未來進行 商品 走勢的 就是回歸任務。2 分類需要先...
Lucene原理個人總結
傳統資料庫無法滿足的痛點 在mysql中,我們根據關鍵字去搜尋一般都是like 但是這樣搜尋的效能是很低的,因為沒有走索引。相關性搜尋,電商 中的根據瀏覽記錄做的商品推薦,在海量資料下直接查詢資料庫也是無法做到快速反應 倒排索引 類似這樣的資料結構,它是把值作為索引,比如說搜尋 我 的時候,在字典樹...
Weak 原理 個人學習總結
weak簡單來說是乙個雜湊表,key為修飾物件的位址,value為指向該位址的指標陣列。weak是由runtime初始化並維護的乙個weak表。在runtime的原始碼中由乙個objc weak檔案中進行定義了weak表的結構體及相關的方法。其中結構體中定義可乙個table weak t的乙個wea...