Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

デバイス割り込み

入出力バスは、2 つの一般的な方法、つまりベクター方式ポーリング方式で割り込みを実装します。一般に、どちらの方法でも、バス割り込みの優先順位レベルが指定されます。ベクター方式のデバイスでは、割り込みベクターも指定されます。ポーリング方式のデバイスでは、割り込みベクターは指定されません。

変化を続けるバス技術を取り入れるため、Oracle Solaris OS は拡張され、新しいタイプの割り込みと、長年使用されてきた従来の割り込みの両方に対応するようになりました。特に、Solaris OS は次の 3 つのタイプの割り込みを認識するようになりました。

  • レガシー割り込み - レガシー割り込みまたは固定割り込みとは、古いバス技術を使用する割り込みのことです。この技術では、割り込みのシグナルが「帯域外」で接続された、つまりバスのメインラインとは別個に接続された 1 つ以上の外部ピンを使って送信されます。PCI Express などの新しいバス技術では、帯域内メカニズムによってレガシー割り込みをエミュレートすることで、ソフトウェアの互換性が維持されます。このエミュレートされた割り込みは、ホスト OS によってレガシー割り込みとして扱われます。

  • メッセージシグナル割り込み - メッセージシグナル割り込み (MSI) は、ピンを使用しない帯域内メッセージであり、ホストブリッジ内のアドレスをターゲットにすることができます。ホストブリッジの詳細については、PCI Local Busを参照してください。MSI では、割り込みメッセージとともにデータを送信できます。各 MSI は共有されないため、デバイスに割り当てられる MSI はシステム内で一意であることが保証されます。PCI 関数は、最大で 32 個の MSI メッセージを要求できます。

  • 拡張メッセージシグナル割り込み - 拡張メッセージシグナル割り込み (MSI-X) は、MSI の拡張バージョンです。MSI-X 割り込みでは、次の利点が追加されています。

    • 32 個ではなく 2048 個のメッセージをサポートしている

    • メッセージごとに独立したメッセージアドレスとメッセージデータをサポートしている

    • メッセージごとのマスキングをサポートしている

    • ソフトウェアによるベクターの割り当て数がハードウェアの要求より少ない場合に柔軟性に優れている。ソフトウェアは、MSI-X の同じアドレスとデータを複数の MSI-X スロットで再利用できます。


注 - PCI Express などの一部の新しいバス技術には MSI が必要ですが、INTx エミュレーションを使用することでレガシー割り込みに対応できます。INTx エミュレーションは互換性を確保するために使用されますが、優れた方法であるとは考えられていません。