NICの割り込みについて ====================== NICはI/O APICとかそう言うのを経由して割り込みが上がってくるらしいんだが, そういったPCIデバイスの割り込みには歴史的に,irqと言う物理的な割り込み線がI/O APICに接続されて割り込みが送信されていた. この構成では割り込みの数が物理配線に依存し,限られたirqを複数のデバイスで共有する仕組みになっていて,さらに1つのデバイスで割り込みを複数持つことができなかった. この制約を解消するため,物理配線を用いずにPCIバス経由のメッセージとして割り込みを送るMessage Signalled Interrupt・Extended Message Signalled Interrupt(MSI・MSI-X) が導入されている. PCI ではオプション機能として提供されているが,PCI express では必須とされている. **TO DO 自分の言葉に書き直せ** MSI では各デバイスごとに 32 個、 MSI-X では 2048 個の割り込みをサポートします。従来と異なり、デバイ ス間の割り込みは共有されません。MSI ・ MSI-X の割り込みは IO-APIC を経由せず、直接 Local APIC へ 配送されます (図 2 参照)。このとき、宛先 CPU の設定は各 PCI デバイスのコンフィギュレーションスペー スに設定されます。詳細は割愛しますが、コンフィギュレーションスペース内の割り込みの設定フィールドで は、表 2 の Redirection Table Entry に近い内容が割り込みごとに設定できます (“最近の PC アーキテクチャ における割り込みルーティングの仕組み”) 。