歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Linux中斷 - APIC

Linux中斷 - APIC

日期:2017/3/1 9:56:43   编辑:Linux編程

APIC - 82093AA + LAPIC

8259A只能用在單CPU上,故而引入APIC。該組件包含兩大組成部分:一是“本地 APIC”,主要負責傳遞中斷信號到指定的處理器;舉例來說,一台具有三個處理器的機器,則它必須相對的要有三個本地 APIC。另外一個重要的部分是 I/O APIC,主要是收集來自 I/O 裝置的 Interrupt 信號且在當那些裝置需要中斷時發送信號到本地 APIC,系統中最多可擁有 8 個 I/O APIC。

LAPIC是CPU的一部分(現在CPU都有),它包含寄存器、內部時鐘、本地時間設備、LINT 0 and LINT 1

I/O APIC是單獨的芯片,通過總線連向LAPIC。I/O APIC包含24個IRQ lines、24-entry Interrupt Redirection Table、可編程寄存器、發送接收中斷裝置。

APIC不像PIC,中斷優先級不按pin number來,Redirection Table中的每一項都可編程其interrupt vector、priority、目標CPU。

APIC的中斷分發方式

1)靜態分配
根據Redirection Table中的信息,將中斷交給某一個,某幾個或全部CPU
2)動態分配
IRQ信號被交給在執行最低優先級的處理器的LAPC,這個通過TPR判斷(Task Priority Register),如果有多個CPU都執行相同優先級的進程,則須仲裁(arbitration)技術。

《Understanding The Linux Kernel 3rd》

Copyright © Linux教程網 All Rights Reserved