|
Linux 中斷管理機(jī)制GIC 硬件原理GIC,Generic Interrupt Controller。是ARM公司提供的一個通用的中斷控制器。主要作用為:接受硬件中斷信號,并經(jīng)過一定處理后,分發(fā)給對應(yīng)的CPU進(jìn)行處理。
當(dāng)前GIC 有四個版本,GIC v1~v4, 本文主要介紹GIC v3控制器。
GIC v3中斷類別GICv3定義了以下中斷類型:
SGI (Software Generated Interrupt):軟件觸發(fā)的中斷。軟件可以通過寫 GICD_SGIR 寄存器來觸發(fā)一個中斷事件,一般用于核間通信,內(nèi)核中的 IPI:inter-processor interrupts 就是基于 SGI。PPI (Private Peripheral Interrupt):私有外設(shè)中斷。這是每個核心私有的中斷。PPI會送達(dá)到指定的CPU上,應(yīng)用場景有CPU本地時鐘。SPI (Shared Peripheral Interrupt):公用的外部設(shè)備中斷,也定義為共享中斷。中斷產(chǎn)生后,可以分發(fā)到某一個CPU上。比如按鍵觸發(fā)一個中斷,手機(jī)觸摸屏觸發(fā)的中斷。LPI (Locality-specific Peripheral Interrupt):LPI 是 GICv3 中的新特性,它們在很多方面與其他類型的中斷不同。LPI 始終是基于消息的中斷,它們的配置保存在表中而不是寄存器。比如 PCIe 的 MSI/MSI-x 中斷。中斷類型硬件中斷號SGI0-15PPI16-31SPI32-1019reserved......LPI8192-MAXGIC v3 組成 |
|