x86中斷架構

2021-07-03 13:16:41 字數 1219 閱讀 7212

x86計算機的 cpu 為中斷只提供了兩條外接引腳:nmi 和 intr。

1. 可程式設計中斷控制器8259a

8259a 只適合單 cpu 的情況。

每個cpu都有乙個本地apic,所有本地apic連線到io apic。主要是收集來自 i/o 裝置的 interrupt 訊號且在當那些裝置需要中斷時傳送訊號到本地 apic,系統中最多可擁有 8 個 i/o apic。

乙個本地定時裝置以及為本地中斷保留的兩條額外的 irq 線 lint0 和 lint1。所有本地 apic 都連線到 i/o apic,形成乙個多級 apic 系統,如圖 2 所示。

使用方式:

1) 作為一種標準的 8259a 工作方式。本地 apic 被禁止,外部 i/o apic 連線到 cpu,兩條 lint0 和 lint1 分別連線到 intr 和 nmi 引腳。

2) 作為一種標準外部 i/o apic。本地 apic 被啟用,且所有的外部中斷都通過 i/o apic 接收。

辨別乙個系統是否正在使用 i/o apic,可以在命令列輸入如下命令:

# cat /proc/interrupts

cpu0

0: 90504 io-apic-edge timer

1: 131 io-apic-edge i8042

8: 4 io-apic-edge rtc

9: 0 io-apic-level acpi

12: 111 io-apic-edge i8042

14: 1862 io-apic-edge ide0

15: 28 io-apic-edge ide1

177: 9 io-apic-level eth0

185: 0 io-apic-level via82c***

...

如果輸出結果中列出了 io-apic,說明您的系統正在使用 apic。如果看到 xt-pic,意味著您的系統正在使用 8259a 晶元。

x86中斷(一) 中斷分類

一 中斷分類 x86系統支援256個中斷源,每個中斷源使用0 255數字標識,該標識稱作中斷向量號 即cpu中斷源的中斷號,要與外部中斷的中斷號irq n相區別 cpu通過獲取中斷向量號識別中斷源。256個中斷源可以分為 其中 1 內部中斷 由cpu內部事件及執行軟中斷指令產生,由除法中斷 溢位中斷...

80x86中斷向量

80x86中斷向量 i o addr int type function 00 03 0除法溢位中斷 04 07 1單步 用於debug 08 0b 2非遮蔽中斷 nmi 0c 0f 3斷點中斷 用於debug 10 13 4溢位中斷 14 17 5列印螢幕 18 1f 6,7保留 8259中斷向量...

x86架構中特權級

特權級,可以分為三種 第 一 描述符中的特權級dpl,表示這個段的特權 第 二 選擇子的rpl表示請求方的特權級 第 三 當前特權級,表示正在執行的 段所具有的特權 下面有關特權級知識的總結 第一 對於資料段來說,特權級dpl表示了可以訪問該資料的最低特權。若資料段的dpl為1,那麼只有特權級為0或...