3.5. 高度なプログラミング可能割り込みコントローラー
プログラム可能な高度な割り込みコントローラー (APIC) は、大量の割り込みを処理する機能を提供して、これらを特定の利用可能な CPU セットにプログラムでルーティング (およびこれに応じて変更) し、CPU 間の通信をサポートするために Intel® によって開発されました。また、1 つの割り込みラインを共有する多数のデバイスが不要になりました。
APIC は、一連のデバイスとテクノロジーを表し、スケーラブルかつ管理可能な方法で多数のハードウェア割り込みを生成し、ルーティングして、処理します。これは、各システム CPU に組み込まれたローカルの APIC と、ハードウェアデバイスに直接接続されている入出力 APIC の組み合わせを使用します。ハードウェアデバイスが割り込みを生成すると、それが接続されている IO-APIC によって検出され、システム APIC バス全体で特定の CPU にルーティングされます。オペレーティングシステムは情報ソースの組み合わせにより、どの IO-APIC がどのデバイスに接続しているか、およびそのデバイス内の特定のどの割り込みラインに接続しているかを認識します。まず、ACPI DSDT (Advanced Configuration and Power Interface Differentiated System Description Table) があります。これには、ホストシステムのマザーボードおよび境界コンポーネントの特定の接続に関する情報が含まれます。次に、デバイスは利用可能な割り込みソースに関する特定の情報を提供します。これら 2 つのデータを組み合わせて割り込み階層全体に関する情報を提供します。
階層で接続されたシステム APIC を使用し、特定の CPU や CPU をターゲットにするのではなく、負荷分散された方法で CPU に割り込みを提供することで、複雑な APIC ベースの割り込みが可能です。