Linux核心(二)中斷基本概念

來源:互聯網
上載者:User

標籤:

 轉載請註明出處:jiq?欽‘s technical Blog 


 

首先解釋一些容易混淆的概念:

 

中斷上下文:正在執行ISR或者下半部。沒有進程背景(只是暫停CPU去記憶體中其他地方執行一段快速代碼),所以不能被切換(比如睡眠,被其他進程搶佔等都不行)。

進程上下文:非中斷上下文(比如執行系統調用或者核心線程的時候)。此時核心代表線程在執行,所以允許睡眠,被搶佔等(被切換)。

中斷棧:每個處理器有一個專門的中斷棧。以前中斷處理常式都是使用中斷進程的核心棧(只有一個),但是核心棧越來越不夠用,所以中斷處理常式有了自己的棧---中斷棧,每個處理器一個。

中斷源:

(a) 外設請求(通過中斷線,CPU從INTR引腳接收訊號);

(b) 定時器時間到(可程式化定時器完成計時任務);

(c) 硬體故障和程式出錯;

(d) 軟體中斷(軟體中斷指令產生,是程式實現安排好的);

 

中斷類型:

(1)硬體中斷(外部中斷):由硬體產生的非同步中斷,不知道什麼時候會到來。

(e)可屏蔽中斷:從INTR引腳接收的訊號。一般是由外設發送過來。可以被屏蔽,如果被屏蔽掉了,中斷控制器會在寄存器中某個位記錄這一請求,等到中斷被開啟時再去驅動CPU的INTR。如果同一時刻有多個插斷要求,則中斷控制器會先向CPU報告優先順序高的中斷,然後再報告優先順序低的。

可以有三種方式關閉外部可屏蔽中斷:

---通過cli指令將標誌寄存器中IF位清零,關閉所有中斷線。

注意請中斷指令只是關閉中斷線,不會影響軟體中斷和不可屏蔽中斷;

---通過中斷控制器中的終端屏蔽寄存器,屏蔽掉某一特定的中斷線(IRQn);

---通過裝置的裝置控制寄存器控制該裝置是否發出中斷,屏蔽單個裝置;

可屏蔽中斷回應時間:

CPU接收到INTR引腳傳來的訊號時,必須具備以下四個條件才予以響應:

(1) 無匯流排請求;

(2) 無非屏蔽插斷要求;

(3) CPU允許中斷;

(4) CPU執行完現行指令;

 

(f)不可屏蔽中斷:例如CPU掉電等;

非屏蔽中斷回應時間:

CPU接收到來自NMI引腳傳來的訊號,必須具備以下兩個條件才予以響應:

(1) 無匯流排請求;

(2) CPU執行完現行指令;

 

(2)軟體中斷(內部中斷):由CPU內部指令產生,是同步中斷(從CPU的角度看)。

(a)Fault:指令執行出錯;

(b)Traps:通過中斷描述符表預定,例如INT3等,相當於立即執行一條跳轉指令,跳轉到ISR入口地址;

(c)Aborts:嚴重錯誤;

 

中斷向量劃分:

中斷向量是8位的,總共可以有256(0-255)項,處理器使用0-31號作為內部中斷,而其餘的可以自由使用。一般8259A的IRQ0使用32,IRQ1使用33。。。Linux中使用Int 0x80作為系統調用。

 

中斷的初始化:

不同硬體系統有不同的終端控制器,因此核心定義了一個irq_chip結構來描述中斷控制器,核心無需關心具體細節。裝置驅動程式只需要參照其datasheet,提供硬體相關的操作函數,定義一個irq_chip對象就可以了。

 

關中斷指令CLI:

    並不會影響軟體中斷(INT0x80),因為關中斷是清除插斷要求寄存器的相應位,即禁止中斷線,只能關閉外部硬體中斷,而不能影響CPU內部軟體中斷。

Linux核心(二)中斷基本概念

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.