(57)【要約】【課題】仮想割り込みモードインターフェース及び割り込みモードを仮想化するための方法を提供する。【解決手段】本発明の実施の形態は、旧型の割り込みモードを欠いている新型の割り込み発生デバイスを旧型の割り込みモードに引き続き依拠するシステムで使用することができるように、Ｉ／Ｏデバイスコントローラを含む割り込み発生デバイスのために割り込みモードを仮想化するための方法を対象とする。本発明の一実施の形態では、ＰＣＩｅスイッチ又はＰＣＩｅベースのホストブリッジが変更されるか、新しいコンポーネントが導入されて、割り込みモード仮想化機能、すなわち仮想割り込みモードインターフェースが提供される。この割り込みモード仮想化機能は、Ｉ／Ｏデバイスコントローラ等の割り込み発生デバイスのために仮想割り込みモードをオペレーティングシステム、ＢＩＯＳレイヤ、Ｉ／Ｏデバイスコントローラと通信する他のコンポーネントに提供する。【選択図】図８
2011519092.tif 000002
【特許請求の範囲】
【請求項１】
仮想割り込みモードインターフェースであって、
割り込みメッセージ、構成メッセージまたは構成信号を受信し、互換性レジスタへのアクセスに応答するメッセージおよび／または信号受信コンポーネントと、
メッセージおよび／または信号処理コンポーネントであって、
割り込み発生デバイスが第２の割り込みモードをサポートせず、前記メッセージおよび／または信号受信コンポーネントが、前記割り込み発生デバイスを前記第２の割り込みモードで動作するように構成する、前記割り込み発生デバイスを対象とした構成メッセージまたは構成信号を受信したとき、前記割り込み発生デバイスを第１の割り込みモードで動作するように構成することであって、前記割り込み発生デバイスは、その後、前記第２の割り込みモードで仮想的に動作する、構成することと、
前記第２の割り込みモードで仮想的に動作する１つまたは複数の割り込み発生デバイスから前記メッセージおよび／または信号受信コンポーネントによって受信された各第１の割り込みモード割り込みメッセージを、第２の割り込みモード割り込みに変換すると共に、前記第２の割り込みモード割り込みを前記受信した第１の割り込みモード割り込みメッセージの目的とする受信者へ転送することと、
を行うメッセージおよび／または信号処理コンポーネントと
を備える仮想割り込みモードインターフェース。
【請求項２】
前記第２の割り込みモードは、ＰＣＩのＩＮＴｘ割り込みモードであり、
前記第１の割り込みモードは、ＰＣＩｅのＭＳＩ割り込みモードまたはＭＳＩ−Ｘ割り込みモードである
請求項１に記載の仮想割り込みモードインターフェース。
【請求項３】
前記割り込み発生デバイスとＰＣＩｅスイッチとの間に導入されたデバイス、
前記ＰＣＩｅスイッチ、
ホストブリッジデバイス、および
前記ＰＣＩｅスイッチと前記ホストブリッジデバイスとの間に導入されたデバイス、
の１つに組み込まれる
請求項２に記載の仮想割り込みモードインターフェース。
【請求項４】
前記仮想割り込みモードインターフェースが組み込まれた前記ＰＣＩｅスイッチ、前記ホストブリッジデバイス、またはディスクリートデバイスは、ＰＣＩｅ相互接続によって前記割り込み発生デバイスと相互接続され、
前記仮想割り込みモードインターフェースが組み込まれた前記ＰＣＩｅスイッチ、前記ホストブリッジデバイス、または前記ディスクリートデバイスは、前記割り込み発生デバイスが発生した割り込みメッセージに応答して割り込みが引き起こされる少なくとも１つのＣＰＵと相互接続される
請求項３に記載の仮想割り込みモードインターフェース。
【請求項５】
前記割り込み発生デバイスの現在のステータスおよび割り込みモードの表示を含む各割り込み発生デバイスのデータ構造体をさらに含む
請求項１に記載の仮想割り込みモードインターフェース。
【請求項６】
各割り込み発生デバイスに対応する前記データ構造体は、前記割り込み発生デバイスが構成されていないことを示すように初期化される
請求項５に記載の仮想割り込みモードインターフェース。
【請求項７】
前記メッセージおよび／または信号受信コンポーネントが、互換性レジスタのアクセスに対する応答を前記割り込み発生デバイスから受信するとき、前記メッセージおよび／または信号処理コンポーネントは、
前記応答が、前記割り込み発生デバイスが前記第１の割り込みモードでのみ動作することができることを示すか否かを判断し、
前記応答が、前記割り込み発生デバイスが前記第１の割り込みモードでのみ動作することができることを示すとき、前記割り込み発生デバイスが前記第２の割り込みモードおよび前記第１の割り込みモードの双方で動作することができることを示すように前記応答を変更し、前記割り込み発生デバイスが仮想化されていることを示すように、前記割り込み発生デバイスを表す前記データ構造体を更新し、前記変更された応答を、前記互換性応答の目的とする受信者へ転送し、
前記応答が、前記割り込み発生デバイスが前記第２の割り込みモードおよび前記第１の割り込みモードの双方で動作することができることを示すとき、または前記応答が、前記割り込み発生デバイスが前記第２の割り込みモードでのみ動作することができることを示すとき、前記互換性応答の前記目的とする受信者へ前記応答を転送する
請求項６に記載の仮想割り込みモードインターフェース。
【請求項８】
前記メッセージおよび／または信号受信コンポーネントが、前記割り込み発生デバイスを対象とした構成メッセージまたは構成信号を受信するとき、前記メッセージおよび／または信号処理コンポーネントは、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第１の割り込みモードで動作するように構成する試みを表すか否かを判断し、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第１の割り込みモードで動作するように構成する試みを表すとき、前記構成メッセージまたは前記構成信号を前記割り込み発生デバイスへ転送し、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第２の割り込みモードで動作するように構成する試みを表すとき、
前記割り込み発生デバイスが仮想化されているか否かを、前記割り込み発生デバイスを表す前記データ構造体から判断し、
前記割り込み発生デバイスが仮想化されているとき、前記割り込み発生デバイスが前記第２の割り込みモードで仮想的に動作していることを示すように、前記割り込み発生デバイスを表す前記データ構造体を更新し、前記構成メッセージまたは前記構成信号を第１の割り込みモード構成メッセージに変換し、前記第１の割り込みモード構成メッセージを前記割り込み発生デバイスへ転送し、
前記割り込み発生デバイスが仮想化されていないとき、前記構成メッセージまたは前記構成信号を前記割り込み発生デバイスへ転送する
請求項６に記載の仮想割り込みモードインターフェース。
【請求項９】
前記メッセージおよび／または信号受信コンポーネントが、前記割り込み発生デバイスから前記第１の割り込みモード割り込みメッセージを受信するとき、前記メッセージおよび／または信号処理コンポーネントは、
前記割り込み発生デバイスが仮想化されて、前記第２の割り込みモードで仮想的に動作しているか否かを、前記割り込み発生デバイスを表す前記データ構造体から判断し、
前記割り込み発生デバイスが仮想化されて、前記第２の割り込みモードで仮想的に動作しているとき、前記割り込みメッセージを前記第２の割り込みモード割り込みメッセージまたは前記第２の割り込みモード割り込み信号に変換し、前記変換された割り込みメッセージまたは割り込み信号を前記割り込みメッセージの前記目的とする受信者へ転送し、
前記割り込み発生デバイスが仮想化されておらず、前記第２の割り込みモードで仮想的に動作していないとき、前記割り込みメッセージまたは前記割り込み信号を、前記割り込みメッセージの前記目的とする受信者へ転送する
請求項６に記載の仮想割り込みモードインターフェース。
【請求項１０】
一エンティティが、仮想化されて前記第２の割り込みモードで仮想的に動作している割り込み発生デバイスを対象として試みた割り込みクリア動作を、前記メッセージおよび／または信号受信コンポーネントが検出するとき、前記メッセージおよび／または信号処理コンポーネントは、
第２の割り込みモードデアサートエミュレーションメッセージを前記エンティティに返す
請求項６に記載の仮想割り込みモードインターフェース。
【請求項１１】
割り込み発生デバイスをオペレーティングシステムまたはＢＩＯＳに対して仮想化するための方法であって、
前記割り込み発生デバイスが第２の割り込みモードをサポートせず、かつ前記割り込み発生デバイスを前記第２の割り込みモードで動作するように構成する、前記割り込み発生デバイスを対象とした構成メッセージまたは構成信号が受信されたとき、前記割り込み発生デバイスを、第１の割り込みモードで動作すると共に前記第２の割り込みモードで仮想的に動作するように構成することと、
前記第２の割り込みモードで仮想的に動作する前記割り込み発生デバイスから受信された第１の割り込みモード割り込みメッセージを、第２の割り込みモード割り込みに変換すると共に、前記第２の割り込みモード割り込みを前記受信された第１の割り込みモード割り込みメッセージの目的とする受信者へ転送することと
を含む方法。
【請求項１２】
前記第２の割り込みモードは、ＰＣＩのＩＮＴｘ割り込みモードであり、
前記第１の割り込みモードは、ＰＣＩｅのＭＳＩ割り込みモードまたはＭＳＩ−Ｘ割り込みモードである
請求項１１に記載の方法。
【請求項１３】
前記割り込み発生デバイスとＰＣＩｅスイッチとの間に導入されたデバイス、
前記ＰＣＩｅスイッチ、
ホストブリッジデバイス、および
前記ＰＣＩｅスイッチと前記ホストブリッジデバイスとの間に導入されたデバイス、
の１つにおいて実行される
請求項１２に記載の方法。
【請求項１４】
前記方法が実行される前記ＰＣＩｅスイッチ、前記ホストブリッジデバイス、またはディスクリートデバイスは、ＰＣＩｅ相互接続によって前記割り込み発生デバイスと相互接続され、
前記方法が実行される前記ＰＣＩｅスイッチ、前記ホストブリッジデバイス、または前記ディスクリートデバイスは、前記割り込み発生デバイスが発生した割り込みメッセージに応答して割り込みが引き起こされる少なくとも１つのＣＰＵと相互接続される
請求項１３に記載の方法。
【請求項１５】
前記割り込み発生デバイスの現在のステータスおよび割り込みモードの表示を含む各割り込み発生デバイスのデータ構造体を作成すると共に保持することをさらに含む
請求項１１に記載の方法。
【請求項１６】
各割り込み発生デバイスに対応する前記データ構造体を初期化することであって、前記割り込み発生デバイスが構成されていないことを示す、初期化することをさらに含む
請求項１５に記載の方法。
【請求項１７】
前記割り込み発生デバイスからの１つまたは複数の互換性レジスタのアクセスに対する応答が受信されるとき、
前記応答が、前記割り込み発生デバイスが前記第１の割り込みモードでのみ動作することができることを示すか否かを判断することと、
前記応答が、前記割り込み発生デバイスが前記第１の割り込みモードでのみ動作することができることを示すとき、前記割り込み発生デバイスが前記第２の割り込みモードおよび前記第１の割り込みモードの双方で動作することができることを示すように前記応答を変更し、前記割り込み発生デバイスが仮想化されていることを示すように、前記割り込み発生デバイスを表す前記データ構造体を更新すると共に、前記変更された応答を、前記応答の目的とする受信者へ転送することと、
前記応答が、前記割り込み発生デバイスが前記第２の割り込みモードおよび前記第１の割り込みモードの双方で動作することができることを示すとき、または前記応答が、前記割り込み発生デバイスが前記第２の割り込みモードでのみ動作することができることを示すとき、前記互換性応答の前記目的とする受信者へ前記応答を転送することと
をさらに含む請求項１５に記載の方法。
【請求項１８】
前記割り込み発生デバイスを対象とした構成メッセージまたは構成信号が受信されるとき、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第１の割り込みモードで動作するように構成する試みを表すか否かを判断することと、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第１の割り込みモードで動作するように構成する試みを表すとき、前記構成メッセージまたは前記構成信号を前記割り込み発生デバイスへ転送することと、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第２の割り込みモードで動作するように構成する試みを表すとき、
前記割り込み発生デバイスが仮想化されているか否かを、前記割り込み発生デバイスを表す前記データ構造体から判断することと、
前記割り込み発生デバイスが仮想化されているとき、前記割り込み発生デバイスが前記第２の割り込みモードで仮想的に動作していることを示すように、前記割り込み発生デバイスを表す前記データ構造体を更新し、前記構成メッセージまたは前記構成信号を第１の割り込みモード構成メッセージまたは第１の割り込みモード構成信号に変換すると共に、前記第１の割り込みモード構成メッセージを前記割り込み発生デバイスへ転送することと、
前記割り込み発生デバイスが仮想化されていないとき、前記構成メッセージまたは前記構成信号を前記割り込み発生デバイスへ転送することと
をさらに含む請求項１５に記載の方法。
【請求項１９】
前記割り込み発生デバイスからの前記第１の割り込みモード割り込みメッセージが受信されたとき、
前記割り込み発生デバイスが仮想化されて、前記第２の割り込みモードで仮想的に動作しているか否かを、前記割り込み発生デバイスを表す前記データ構造体から判断することと、
前記割り込み発生デバイスが仮想化されて、前記第２の割り込みモードで仮想的に動作しているとき、前記割り込みメッセージを第２の割り込みモード割り込みメッセージまたは第２の割り込みモード割り込み信号に変換すると共に、前記変換された割り込みメッセージまたは割り込み信号を前記割り込みメッセージの前記目的とする受信者へ転送することと、
前記割り込み発生デバイスが仮想化されておらず、前記第２の割り込みモードで仮想的に動作していないとき、前記割り込みメッセージまたは前記割り込み信号を、前記割り込みメッセージの前記目的とする受信者へ転送することと
をさらに含む請求項１５に記載の方法。
【請求項２０】
一エンティティが、仮想化されて前記第２の割り込みモードで仮想的に動作している割り込み発生デバイスを対象として試みた割り込みクリア動作が検出されるとき、
第２の割り込みモードデアサートエミュレーションメッセージを前記エンティティに返すことをさらに含む
請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムのコンポーネント間の割り込み及び割り込みモード能力に関し、詳細には、割り込み発生デバイスが他のシステムコンポーネントと適切に相互動作することができるように、割り込み発生デバイスのために割り込みモードを仮想化するための方法に関する。
【背景技術】
【０００２】
コンピュータハードウェア及びコンピュータシステムのこれまでの世代では、ホストブリッジを通じて周辺Ｉ／Ｏデバイスをプロセッサメモリバスに相互接続するように、さまざまな異なるタイプのパラレルバスが、コンポーネントを相互接続するのに用いられていた。
当初、バイト、１６ビットワード、３２ビットワード、又は６４ビットワードの同時転送を可能にするためにパラレル信号線を備えるバスが、シリアル通信媒体よりも高いデータ転送帯域幅を提供していた。
シリアル通信媒体では、ビット値は、連続して次々と転送され、受信ポートによって、バイト、１６ビットワード、３２ビットワード、又は６４ビットワードに融合される。
しかしながら、高いクロックレートでは、バスのパラレル信号線間の信号スキューが、次第に困難な問題となる可能性があり、マイクロプロセッサ及び他の集積回路内の機能の密度が減少したことから、集積回路コンポーネントをパラレルバスと接続するのに必要な多数のピンが、処理能力と比べてコスト及び空間的制約の増大を表している。
その結果、シリアル通信媒体は、今や、旧型のパラレルバスよりも大きなデータ転送帯域幅を提供することができ、システム内に組み込むことがより容易であり、集積回路設計及びパッケージングに課される制約をより少なくすることができ、加えて、より経済的である。
周辺コンポーネント相互接続（「ＰＣＩ」）及びアドバンストテクノロジアタッチメント（「ＡＴＡ」）を含む旧型のバスベースの通信媒体は、ＰＣＩｅ及びＳＡＴＡ等のより高速でより経済的なシリアル通信媒体による置き換えが進められている。
【０００３】
旧型の技術が新型の技術に置き換えられる過程は、一般に段階的であり、その結果、後方互換性を新型の技術に組み込む取り組みがなされる。
例えば、新型のＰＣＴｅは、ＰＣＩベースのコンポーネントとインターフェースするように設計された旧型のコンポーネントが新型のＰＣＩｅベースのコンポーネントとインターフェースすることができるように、後方互換性の機能を提供する。
しかしながら、新型の技術の導入中に後方互換性を提供するこのような取り組みにも関わらず、問題は発生する。
一例として、新型のＰＣＩｅシリアル通信媒体及びコントローラは、新型のシリアル通信媒体を通じて送信されたメッセージを使用して、ＰＣＩ通信媒体で使用されるマルチ専用のピン及びトレースをベースとした（multi-dedicated-pin-and-trace-based）割り込みメカニズムのエミュレーションを提供するが、Ｉ／Ｏデバイスコントローラ等の新しいＰＣＩｅ互換周辺デバイスは、旧型のＰＣＩ割り込みモードを実施することができない場合がある。
旧型のＰＣＩベースの割り込みモードをサポートしていない新型のＰＣＩｅベースのデバイスは、ＰＣＩｅベースのコンポーネントをサポートするように設計されたコンピュータシステムとは正しく相互動作するが、このようなデバイスは、ＰＣＩｅ相互接続と互換性があるにも関わらず、ＰＣＩｅ相互接続とレトロフィットされている旧型のコンピュータシステムでは正しく機能しない場合がある。
したがって、技術が推移している間、旧型技術のコンポーネント及び新型技術のコンポーネントの双方を組み込んだコンピュータシステムの設計者、製造業者、ベンダ、及びユーザは、オペレーティングシステムと、新型技術のコンポーネントを組み込んだコンピュータシステム又は新型技術のコンポーネントに接続するコンピュータシステムで引き続き使用される旧型技術のコンポーネントとインターフェースするように設計された基本入出力システム（「ＢＩＯＳ」）レイヤとの間の非互換性等、新型技術のコンポーネントと旧型技術のコンポーネントとの間の非互換性の橋渡しを容易にする方法及びデバイスの必要性を常に認識している。
【発明の概要】
【０００４】
本発明の実施の形態は、旧型の割り込みモードを欠いている新型の割り込み発生デバイスを、旧型の割り込みモードに引き続き依拠するシステムで使用することができるように、Ｉ／Ｏデバイスコントローラを含む割り込み発生デバイスのために割り込みモードを仮想化するための方法を対象とする。
本発明の一実施の形態では、ＰＣＩｅスイッチ又はＰＣＩｅベースのホストブリッジが変更されるか、又は新しいコンポーネントが導入されて、割り込みモード仮想化機能、すなわち仮想割り込みモードインターフェースが提供される。
この割り込みモード仮想化機能は、Ｉ／Ｏデバイスコントローラ等の割り込み発生デバイスのために仮想割り込みモードをオペレーティングシステム、ＢＩＯＳレイヤ、及びＩ／Ｏデバイスコントローラと通信する他のコンポーネントに提供する。
この割り込みモード仮想化機能を提供することによって、割り込み発生デバイスは、旧型技術の割り込みモードをもはやサポートしていないが、ホストブリッジ、ＰＣＩｅスイッチ、又は追加のコンポーネントが、旧型技術の割り込みモードインターフェースを、ＢＩＯＳ及び／又は１つ又は複数のオペレーティングシステムを実行する１つ又は複数のＣＰＵを含む上流側コンポーネントに提供する。
【図面の簡単な説明】
【０００５】
【図１】ＰＣＩパラレル相互接続を含む単純なコンピュータシステムの一般化されたブロック図を示す。
【図２】ＰＣＩパラレル相互接続ではなくＰＣＩｅシリアル相互接続を含む単純なコンピュータシステムの高レベルブロック図型表現を提供する。
【図３Ａ】Ｉ／Ｏデバイスコントローラと汎用コンピュータシステム内でオペレーティングシステムプログラムを実行するＣＰＵとの間の通信を示す図である。
【図３Ｂ】Ｉ／Ｏデバイスコントローラと汎用コンピュータシステム内でオペレーティングシステムプログラムを実行するＣＰＵとの間の通信を示す図である。
【図３Ｃ】Ｉ／Ｏデバイスコントローラと汎用コンピュータシステム内でオペレーティングシステムプログラムを実行するＣＰＵとの間の通信を示す図である。
【図３Ｄ】Ｉ／Ｏデバイスコントローラと汎用コンピュータシステム内でオペレーティングシステムプログラムを実行するＣＰＵとの間の通信を示す図である。
【図３Ｅ】Ｉ／Ｏデバイスコントローラと汎用コンピュータシステム内でオペレーティングシステムプログラムを実行するＣＰＵとの間の通信を示す図である。
【図３Ｆ】Ｉ／Ｏデバイスコントローラと汎用コンピュータシステム内でオペレーティングシステムプログラムを実行するＣＰＵとの間の通信を示す図である。
【図３Ｇ】Ｉ／Ｏデバイスコントローラと汎用コンピュータシステム内でオペレーティングシステムプログラムを実行するＣＰＵとの間の通信を示す図である。
【図４】ＰＣＩバスアーキテクチャで用いられるＩＮＴｘ割り込みメカニズムを示す図である。
【図５Ａ】ＰＣＩの後の世代及びＰＣＩｅで用いられるＭＳＩ割り込みメカニズムを示す図である。
【図５Ｂ】ＰＣＩの後の世代及びＰＣＩｅで用いられるＭＳＩ割り込みメカニズムを示す図である。
【図５Ｃ】ＰＣＩの後の世代及びＰＣＩｅで用いられるＭＳＩ割り込みメカニズムを示す図である。
【図６】ＰＣＩｅ周辺相互接続よりも前から存在する旧型のオペレーティングシステム及びＢＩＯＳレイヤとのＰＣＩｅ互換性の基本的な手法を示す図である。
【図７】近年生じた互換性問題を示す図である。
【図８】本発明の実施形態による、図７に示す非互換性問題を克服する手法を示す図である。
【図９Ａ】本発明の一実施形態を表す、ＰＣＩｅスイッチ内の仮想ＩＮＴｘインターフェースの論理的な実施態様を示す制御フロー図を提供する。
【図９Ｂ】本発明の一実施形態を表す、ＰＣＩｅスイッチ内の仮想ＩＮＴｘインターフェースの論理的な実施態様を示す制御フロー図を提供する。
【図９Ｃ】本発明の一実施形態を表す、ＰＣＩｅスイッチ内の仮想ＩＮＴｘインターフェースの論理的な実施態様を示す制御フロー図を提供する。
【図９Ｄ】本発明の一実施形態を表す、ＰＣＩｅスイッチ内の仮想ＩＮＴｘインターフェースの論理的な実施態様を示す制御フロー図を提供する。
【図９Ｅ】本発明の一実施形態を表す、ＰＣＩｅスイッチ内の仮想ＩＮＴｘインターフェースの論理的な実施態様を示す制御フロー図を提供する。
【図９Ｆ】本発明の一実施形態を表す、ＰＣＩｅスイッチ内の仮想ＩＮＴｘインターフェースの論理的な実施態様を示す制御フロー図を提供する。
【図１０】スイッチプラットフォームを含むハイエンドコンピュータシステムを示す図である。
【発明を実施するための形態】
【０００６】
本発明は、Ｉ／Ｏデバイスコントローラ等の割り込み発生デバイスと割り込み受信ＣＰＵとの間に位置するスイッチ、ホストブリッジ、又は他のコンポーネントに組み込むことができる割り込みモード仮想化機能を対象とする。
本発明の一実施形態は、ＰＣＩｅスイッチ又はＰＣＩｅ互換ホストブリッジに含まれる割り込みモード仮想化機能である。
しかしながら、割り込みモード仮想化は、複数の異なるタイプの通信媒体内の複数の異なるコンポーネントに組み込むことができる。
【０００７】
図１は、ＰＣＩパラレル相互接続を含む単純なコンピュータシステムの一般化されたブロック図を示す。
コンピュータシステムは、プロセッサシステムバス１１０、メモリバス１１２、アドバンストグラフィックスポート（「ＡＧＰ」）バス１１４、及び内部ホストブリッジバス１１６によってそれぞれメモリ１０４、グラフィックスレンダリングデバイス１０６、及びＩ／Ｏブリッジ１０８と相互接続された中央処理装置（「ＣＰＵ」）１０２を含む。
Ｉ／Ｏブリッジ１０８は、メモリブリッジ１１８に、したがってメモリ１０４及びＣＰＵ１０２に、追加のデバイスを相互接続する働きをする。
これらの追加のデバイスは、ＡＴＡリンク１２２を介してＩ／Ｏブリッジと相互接続されるディスクドライブ１２０、シリアルリンク１２６等の他のタイプの通信媒体を介してＩ／Ｏブリッジ１０８と相互接続される１つ又は複数のＩ／Ｏデバイスコントローラ１２４、及びＰＣＩバス１３６を介した複数のＩ／Ｏデバイスコントローラ１３０〜１３４を含む。
Ｉ／Ｏブリッジ１０８及びメモリブリッジ１１８は全体としてホストブリッジ１３８を構成する。
【０００８】
ＰＣＩバス１３６は、純粋なパラレルバスであり、このＰＣＩバス１３６へのアクセスは、ＰＣＩバスに接続されたさまざまなデバイス間の競合によって得られる。
バスアドレスは、ＰＣＩバス上のデバイス用のスロットに対応し、異なるタイプのＰＣＩバスが、異なる個数のスロットを提供する。
ＰＣＩバスを獲得したデバイスは、選択した対象デバイスへのデータの転送にＰＣＩバスの帯域幅全体を用いることができる。
図１には図示しないが、ＰＣＩバスは、追加のブリッジデバイスを通じて１つ又は複数の追加のタイプのデータバス及び他の相互接続媒体にさらにブリッジすることができる。
Ｉ／Ｏデバイスコントローラ１３０〜１３４は、例えばイーサネット（登録商標）コントローラを含むさまざまなタイプの周辺デバイスの任意のものを制御することができる。
これらの周辺デバイスは、外部通信媒体によりデータを受信及び送信し、ＰＣＩバスによりメモリ１０４にデータを記憶し及びメモリ１０４からデータをリトリーブし、ＣＰＵ１０２を対象とした割り込みを発生し、ＣＰＵからコマンドを受信する。
【０００９】
ＰＣＩバス等の通信バスは、複雑なハードウェア及びファームウェアを含み、プロトコルの階層的レイヤに従ってデータを転送する。
プロトコルスタック、プログラミングインターフェース、ハードウェア動作及びハードウェア特性、並びにハードウェア実装の詳細な論述を含めて、ＰＩＣバスに関する膨大な量の情報は、教科書において及びインターネットを介して入手可能である。
【００１０】
過去１０年の間、ＰＣＩバスアーキテクチャの限界が認識されていた。
マイクロプロセッサの周波数及びシステム相互接続が増加し、集積回路密度が増加し、イーサネットを含む外部通信媒体の帯域幅が増加するにつれて、この限界はより明白になってきた。
ＰＣＩバスアーキテクチャは帯域幅の増加を強く求められていたが、パラレルバスアーキテクチャに関連した重要な問題が、ＰＣＩコンポーネントの動作周波数を増加させることができる範囲を制限していた。
さらに、ＰＣＩは、各デバイスを接続するための多数のピンを必要とし、シリコンウェハベースの集積回路上の機能の密度を生み出すことができるにつれてますます負担となってきたマルチピンベースの接続の費用及び設置面積は、増加し続けてきた。
さらに、デバイスの相互接続の要求が急勾配で増加し始めたのと同時に、バスにアクセスするための競合ベースのアービトレーションはバスに接続することができるデバイスの数を制限している。
これらの理由のすべてにより、新しいＰＣＩｅ相互接続アーキテクチャが開発され、過去５年の間に配備された。
【００１１】
ＰＣＩｅは、ＰＣＩアーキテクチャとの上位レベルプロトコル互換性を提供するが、クロスバー型スイッチを通じて管理される接続されたデバイス間の直接的なシリアル通信リンクに基づいている。
ＰＣＩｅエンドポイントとＰＣＩｅスイッチとの間の各ポイントツーポイント相互接続は１つ又は複数のレーンを含み、各レーンは２対の差動駆動型シリアル線を含む。
このうち、１つの対は、エンドポイントからスイッチへの送信用であり、もう１つの対は、スイッチからエンドポイントへの送信用である。
したがって、各レーンは、エンドポイントとスイッチとの間の全二重通信を提供する。
ＰＣＩｅエンドポインとＰＣＩｅスイッチとの間の所与のリンクは、１つのレーン、２つのレーン、４つのレーン、８つのレーン、１２個のレーン、１６個のレーン、又は３２個のレーンを含むことができ、それによって、エンドポイントとスイッチとの間の通信帯域幅の合計は、エンドポイントデバイス及びシステムの要求を全体として満たすように合わせることができる。
スイッチは、多数のデバイスへの階層的なファンアウト用に互いに相互接続することができる。
【００１２】
図２は、ＰＣＩパラレルバスではなくＰＣＩｅシリアル相互接続媒体を含む単純なコンピュータシステムの高レベルブロック図型表現を提供する。
図２に示すシステムのコンポーネントの多くは、図１に示すコンポーネントと同一であり、同一の番号でラベル付けされている。
ただし、図２のシステムでは、パラレル通信媒体の代わりに、より高い帯域幅のより安価なシリアル通信媒体への傾向を反映するために、ＡＴＡパラレルバス（図１の１２２）ではなく、シリアル通信媒体であるＳＡＴＡ相互接続１４０が用いられている。
Ｉ／Ｏブリッジ１０８は、ＰＣＩｅポートと、ＰＣＩパラレルバスへのマルチピンベースの接続ではなく、ＰＣＩｅスイッチ１４２へのマルチレーン相互接続とを含むように変更されている。
ＰＣＩｅスイッチは、Ｉ／ＯブリッジとさまざまなＰＣＩｅエンドポイント１３０〜１３５との間のポイントツーポイント相互接続を確立するためのクロスバー型スイッチとして働き、エンドポイントデバイスのポイントツーポイント相互接続も提供することができる。
複数のポイントツーポイント接続は、ＰＣＩｅスイッチを通じて同時にデータを転送することができる。
Ｉ／Ｏブリッジ内の下位レベルプロトコルレイヤは、ＰＣＩｅ通信媒体に対応するように変更する必要があるが、上位レベルプロトコルレイヤは、旧型のＰＣＩプロトコルと互換性があり、それによって、Ｉ／Ｏブリッジから上流側のシステムのコンポーネントは、旧型のＰＣＩプロトコルを使用してＩ／Ｏデバイスと引き続き通信することができる。
現在、全二重の総帯域幅が毎秒５ギガビットの場合に、ＰＣＩｅレーン内の２対のシリアル通信線のそれぞれは、毎秒２．５ギガビットを転送することができる。
第２世代のＰＣＩｅでは、帯域幅は倍増されており、第３世代のＰＣＩｅでは、帯域幅は、さらに大幅に増加されると予想される。
【００１３】
図３Ａ〜図３Ｇは、Ｉ／Ｏデバイスコントローラと汎用コンピュータシステム内でオペレーティングシステムプログラムを実行するＣＰＵとの間の通信を示す。
Ｉ／Ｏデバイスコントローラ３０２は、例えば、メモリ３０６へ転送されてその後のオペレーティングシステムの処理を受けるデータのブロック３０４を通信又は記憶デバイスから受信している場合がある。
このような状況において、Ｉ／Ｏデバイスコントローラ及びオペレーティングシステムは、メモリの先入れ先出し（「ＦＩＦＯ」）キュー３０８を通じて通信することができる。
ＦＩＦＯキューは、キューエントリ３１０のアレイ、キュー先頭ポインタ３１２、及びキュー末尾ポインタ３１４を含む。
図３Ｂに示すように、Ｉ／Ｏデバイスコントローラは、一般にダイレクトメモリアクセスを有し、該Ｉ／Ｏデバイスコントローラが、周辺バス３１６、ホストブリッジ３１８、及びメモリバス３２０を介してメモリ３０６へデータブロック（図３の３０４）を転送し、ＦＩＦＯキュー３０８の最初に利用可能なキューエントリ３２２に記憶することを可能にする。
ＦＩＦＯキューは、一般に、先頭ポインタをインクリメントし末尾ポインタをデクリメントするためのモジュロ算術を使用することにより循環キューとして管理される。
後になって、図３Ｃに示すように、ＣＰＵは、メモリバス３２０、ホストブリッジ３１８、及びプロセッサシステムバス３２４を介して、キューイングされたデータブロックにアクセスすることができる。
一般に、ＣＰＵは、図３Ｄに示すように、キューイングされたデータブロックをＦＩＦＯキューからデキューイングし、そのデータブロックをメモリの他の或る部分へ移動させる。
この部分から、データブロックは、その後、オペレーティングシステム又はオペレーティングシステムの上で動作するそれよりも高レベルのプログラムが使用することができる。
代替的に、データブロックは、Ｉ／Ｏデバイスコントローラが、データブロック自体ではなく、ＦＩＦＯキューに記憶された記憶データブロックの参照子を用いてＦＩＦＯキュー以外のメモリに配置することもできる。
【００１４】
特定の場合に、メモリ常駐ＦＩＦＯキューを介したＩ／ＯデバイスコントローラとＣＰＵとの間の通信は、タイムクリティカルでない場合がある。
このような場合、プロセッサは、図３Ｂに示すようなＩ／Ｏデバイスコントローラによるエントリのキューイングに続いて、図３Ｃに示すように、キューイングされたエントリに直ちにアクセスしてこのエントリをデキューイングする必要はない場合がある。
しかしながら、このような場合は稀である。
一般に、Ｉ／Ｏデバイスコントローラは、データをＦＩＦＯキューに不規則にキューイングする場合があり、時に多くのデータブロックをＦＩＦＯキューに高速にキューイングすることもあれば、また或る時は、長い期間の間、休止状態にある場合もあるので、ＦＩＦＯキューがオーバーフローせず、ＦＩＦＯキューのオーバーフローの結果としてＩ／Ｏデバイスコントローラが割り込み又は遅延を受けず、また、データがオペレーティングシステム又はそれよりも高レベルのアプリケーションプログラム内の上位レベルルーチンにアクセス可能にされることが遅延した結果として上位レベルプロトコルのタイマが満了しないように、ＣＰＵで実行されているオペレーティングシステムは、Ｉ／ＯデバイスコントローラによってＦＩＦＯにキューイングされたデータブロックを高速に検出してデキューイングする必要がある。
【００１５】
一般に、Ｉ／Ｏデバイスコントローラが、オペレーティングシステムによる処理のためにメモリＦＩＦＯキューに新しいエントリをキューイングしたことをオペレーティングシステムに通知するための方策には、２つの異なる方策がある。
第１の方策は、「ポーリング」と呼ばれ、図３Ｅに示される。
その方策では、オペレーティングシステムは、図３Ｅの単純な制御フロー図３６０によって示されるイベントループを含む。
このイベントループでは、各タスクがステップ３６４においてさまざまなＦＩＦＯキューへ新しくキューイングされたエントリをチェックした後、オペレーティングシステムは、それらのエントリのタスクを連続的に実行する（３６２）。
ステップ３６６において判断されるように、入力がＦＩＦＯキューで検出されるとき、その入力は、ステップ３６８においてハンドリングされる。
キューイングされたデータアイテムを高速に検出してハンドリングする必要があるために、ステップ３６２において実行されるタスクは、一般に、より大きな概念的なタスクの非常に微小な部分である。
【００１６】
ポーリングは、特にエントリが一定の規則的なレートでＦＩＦＯキューにキューイングされることにより、ポーリング頻度をエントリキューイング頻度と一致するように調整することができ、したがって、ポーリング動作が空のキューをチェックする浪費がほとんどないときに有効な方策である。
現代のコンピュータシステムでは、ポーリングは、一般に、頻繁でかつ広範囲に及ぶ使用にはあまりに非効率的である。
新しい入力データの表示を求めてメモリのＦＩＦＯキュー及び他のデータ構造体をチェックするには、処理サイクルを大幅に消費することが必要である。
Ｉ／Ｏデバイス及び他の割り込み発生デバイスが休止しているとき、それらのサイクルは無駄に費やされ、Ｉ／Ｏデバイスが高いレートのバーストでデータを転送するとき、ポーリング頻度は遅すぎて、キューのオーバーフロー及びフロー制御の背圧に起因したデータ転送割り込みを防止することができない場合がある。
【００１７】
図３Ｆは、オペレーティングシステムが新しくキューイングされた入力データを検出する一代替的な方法を示す。
図３Ｆに示すように、Ｉ／ＯデバイスコントローラがＦＩＦＯキューにエントリをキューイングした後、Ｉ／Ｏデバイスコントローラは、割り込み信号３７０を発生する。
この割り込み信号３７０は、ＣＰＵへ送信され、その結果、割り込みがＣＰＵのハードウェアで発生する。
割り込みが発生した結果、オペレーティングシステムによって実行される通常の命令実行シーケンスの割り込みが生じ、割り込みサービスルーチンへの分岐が生じる。
【００１８】
図３Ｇは、オペレーティングシステムの観点からの割り込みハンドリングを示す。
図３Ｇでは、オペレーティングシステムは、第１の列３８２によって表される順序付けられた命令シーケンスを含むルーチンを現在実行している。
命令の実行及び命令参照レジスタのインクリメントは、矢印３８０等の曲線の矢印によって図３Ｇに表されている。
Ｉ／Ｏデバイスコントローラは、命令シーケンス３８２の命令３８４の実行中にＣＰＵに検出される割り込みを発生する。
その命令の実行完了に続いて、実行は、割り込みサービスルーチン（「ＩＳＲ」）３８６に分岐する。
割り込みサービスルーチン３８６は、オペレーティングシステム実行の現在の状況を保存し、適切な割り込みハンドラルーチン３１０を呼び出すことによって割り込みハンドラに割り込みをディスパッチする。
割り込みハンドラは、例えば、キューイングされたエントリをＦＩＦＯキューからデキューイングし、データ構造体を変更してデータの受信を示すことができ、それによって、オペレーティングシステムは、その後、データを処理し又はデータを上位レベルのオペレーティングシステムルーチン若しくはアプリケーションプログラムに渡すことができる。
割り込みハンドラが実行を終了したとき、実行は、割り込みが発生しなかった場合に実行されていた次の命令３１０に戻る。
割り込みハンドラからの復帰は、一般に、当初割り込みを受けたオペレーティングシステムルーチン３８２の状況を復元する割り込み復帰（return-from-interrupt）命令によって容易にされる。
多くの異なる割り込みは信号で通知することができ、複数の割り込みが時間的に接近して発生することもあるし、同時に発生することさえもあるので、割り込み信号通知は、一般に、特権レベルの変更、クリティカルコードの割り込みの無効化、及び受信した割り込みをスタックするためのメカニズムを伴う。
【００１９】
図４は、ＰＣＩバスアーキテクチャで用いられるＩＮＴｘ割り込みメカニズムを示す。
上述したように、ＰＣＩはパラレルバスである。
アドレス及びデータは、共通信号線により多重化され、３２ビット又は６４ビットが各サイクルにおいて転送される。
図４に示すように、ＰＣＩバス４０２は、データ及びアドレスの信号線４０４に加えて、複数の割り込み信号線４０６を含む。
ＰＣＩバスには、Ａ、Ｂ、Ｃ、及びＤで指定された４本の割り込み信号線がある。
ＰＣＩバス上のスロットを占有する各Ｉ／Ｏデバイスコントローラは、ＣＰＵに信号通知するための４つの割り込みの１つを使用するように構成される。
５つ以上のデバイスがＰＣＩバススロットにある場合、複数のデバイスが、１つ又は複数の割り込みを共有することになる。
ホストブリッジ４１０がＰＣＩバス上で割り込み信号を検出するとき、ホストブリッジは、ＰＣＩバス割り込みに応答してアドバンスプログラマブル割り込みコントローラ（「ＡＰＩＣ」）割り込みを信号通知することにより、ＰＣＩバス割り込み信号をＡＰＩＣ４１２割り込みに変換する。
ＡＰＩＣは、次に、ＣＰＵ割り込みを引き起こし、発生した割り込みについての情報を符号化したバイト又はワードをＣＰＵに渡し、それによって、オペレーティングシステムは、符号化された情報を使用して、割り込みの性質を判断することができ、したがって、割り込みをハンドリングすることができる。
一例として、図４の下部に示すように、Ｉ／Ｏデバイスコントローラ４１４には、ＰＣＩバス割り込みＡを割り当てることができる。
その割り込みを信号通知すると、ホストブリッジ４１０は、該割り込みをＡＰＩＣ割り込み４１６に変換し、対応するＡＰＩＣ割り込みを信号通知し、それによって、ＡＰＩＣは、次に、適切な対応する割り込みをＣＰＵに引き起こす。
このＰＣＩバス割り込みアーキテクチャは、「ＩＮＴｘ」割り込みメカニズム又は「ＩＮＴｘ割り込みモード」と呼ばれる。
【００２０】
ＰＣＩバスの後のバージョン及びＰＣＩｅでは、「メッセージ信号割り込み」（「ＭＳＩ（message signaled interrupt）」）メカニズムと呼ばれる異なる割り込みメカニズムが用いられる。
図５Ａ〜図５Ｄは、ＰＣＩの後の世代及びＰＣＩｅで用いられるＭＳＩ割り込みメカニズムを示す。
図５Ａに示すように、ＭＳＩ割り込みをサポートしているＩ／Ｏデバイスコントローラは、ＣＰＵで動作しているオペレーティングシステムがＭＳＩ割り込みを構成することを可能にするレジスタ５０２〜５０４を提供する。
これらのレジスタはＣＰＵのアドレス空間にマッピングされ、ＣＰＵがあたかもメモリへの書き込み及びメモリからの読み出しを行っているかのように、ＣＰＵがＭＳＩ割り込み構成中にレジスタに値を書き込むことができ、レジスタから値を読み出すことができるようにする。
図５Ａでは、レジスタは、Ｉ／Ｏデバイスコントローラ内に示されるだけでなく、オペレーティングシステムが、Ｉ／Ｏデバイスに配置されたレジスタを、オペレーティングシステムがアクセス可能なメモリアドレス空間の一部とみなすことを示すために、システムメモリ５０８の上に示した破線の長方形内にも示されている。
オペレーティングシステムは、実際のメモリロケーションに書き込みを行っているように、これらのレジスタに書き込みを行う。
一方、破線は、レジスタがメモリレジスタではなく、代わりに、Ｉ／Ｏデバイスに配置されていることを示す。
システム初期化中、オペレーティングシステムは、周辺相互接続を介してＣＰＵと相互接続されたデバイスを発見して能力照会するプロセスを行う。
オペレーティングシステムが、ＭＳＩ割り込みを行うことができるデバイスを発見し、オペレーティングシステムがＭＳＩ割り込みメカニズムを用いることを選んだとき、図５Ｂに示すように、その趣旨の表示が、オペレーティングシステムによって制御レジスタ５０２に配置される。
この場合も、オペレーティングシステムは、オペレーティングシステムのメモリアドレス空間内のアドレスに書き込みを行い、この書き込みは、その後、ホストブリッジ５１０によってメモリではなくＩ／Ｏデバイスに指示される。
構成プロセス中、アドレスレジスタ５０３は、Ｉ／Ｏデバイスコントローラが、割り込みを発生するためにデータ値を書き込むアドレスで構成される。
データレジスタ５０４も、データ値を含むように構成される。
このデータ値の一定の下位ビットは、Ｉ／Ｏデバイスが要求するベクトルの数、及びＩ／Ｏデバイスがいくつのベクトルを使用することをオペレーティングシステムが許可するのかに応じて、異なる割り込みを示すようにＩ／Ｏデバイスが変更することができる。
その後、図５Ｃに示すように、Ｉ／Ｏデバイスコントローラが、ＣＰＵに割り込みを発生したいとき、Ｉ／Ｏデバイスコントローラは、メモリ書き込み動作をアドレスイン５０３に発行し、データレジスタ５０４に記憶されたデータ値の変更されたバージョンをそのアドレスに書き込んで、ＣＰＵに引き起こす必要がある割り込みのタイプを示す。
ホストブリッジは、書き込み動作を検出し、その書き込み動作をＣＰＵへの割り込みに変換することができ、又は、代替的に、書き込みは、システムメモリに対して実行することもでき、低レベルプロセスが、このような書き込みを検出して、ＣＰＵ内に割り込みを発生することができる。
「ＭＳＩ−Ｘ」と呼ばれる後の割り込みメカニズムは、Ｉ／Ｏデバイスコントローラの機能によって信号通知することができる可能な割り込みベクトルを、数を増やして提供し、Ｉ／Ｏデバイスコントローラが割り込みを発生するために書き込むことができるアドレスの数を増加させ、追加の機能を通じて柔軟性を追加して提供する。
ＭＳＩ割り込みメカニズムは、物理的な割り込みピン接続及びトレースを取り除くことを可能にし、より多く数の異なる割り込み信号を提供して、割り込み発生デバイスが所与の割り込み信号線を共有する必要性を回避するので、現代のデバイスでは好ましい。
【００２１】
図６は、ＰＣＩｅ周辺相互接続よりも前から存在する旧型のオペレーティングシステム及びＢＩＯＳレイヤとのＰＣＩｅ互換性の基本的な手法を示す。
図６に示すように、コンピュータシステムをＰＣＩからＰＣＩｅに更新するために、ＰＣＩｅ準拠のＩ／Ｏデバイスコントローラ６０２、ＰＣＩｅ周辺相互接続６０４、及びホストブリッジ６０６内のＰＣＩｅ準拠のＩ／Ｏブリッジをコンピュータシステムに組み込むことができる。
一方、ＰＣＩプロトコルに対する上位レベルインターフェースもＰＣＩｅ周辺相互接続に使用することができるので、オペレーティングシステム及び上流側のコンポーネントは、不変のままとすることができる。
シリアル通信アーキテクチャとパラレルバスアーキテクチャとの間の相違は、ハードウェアポート及び接続並びにＰＣＩプロトコルスタックの最初の２つのレイヤ内に完全にカプセル化される。
完全な互換性を提供するには、ＭＳＩ割り込み及び旧型のＩＮＴｘメカニズムのＰＣＩｅエミュレーションの双方を提供するために新しいＰＣＩｅ互換Ｉ／Ｏデバイスコントローラが推奨される。
ＩＮＴｘ割り込みは、ＰＣＩｅシリアル通信媒体によりメッセージとして送信されるが、ホストブリッジ又は別のコンポーネントにおいて変換されて、ＣＰＵに対する旧式のＩＮＴｘ割り込み信号が発生される。
【００２２】
図７は、近年生じた互換性問題を示す。
図７に示すように、旧式のＩＮＴｘ割り込みメカニズム７０２を引き続き用いているオペレーティングシステム及び／又はＢＩＯＳシステムを有する多くのコンピュータシステムが残っている。
図６を参照して論述したように、これらのシステムは、ＰＣＩｅ周辺相互接続７０４を用いるように更新することができる。
しかしながら、ますます多くのシステムがＰＣＩｅに移行するにつれて、Ｉ／Ｏデバイスコントローラの多くの製造業者は、旧式のＩＮＴｘ割り込みのサポートを完全に廃止している。
したがって、図７に示すように、システム製造業者及びユーザは、多くの場合、旧式のＩＮＴｘ割り込み７０２のみを使用するように設計された旧式のオペレーティングシステム及びＢＩＯＳレイヤを有するシステム内に、ＩＮＴｘ割り込みのサポートを欠いた新型のＩ／Ｏデバイスコントローラ７０６を含めるように試みる場合がある。
実際に、旧式のＩＮＴｘ割り込みのサポートを欠いたＩ／Ｏデバイスコントローラは、このような環境では適切に機能することができない。
【００２３】
図８は、本発明の実施形態による、図７に示す非互換性問題を克服する手法を示す。
本発明の実施形態は、ＩＮＴｘ割り込みメカニズムをサポートしていないＩ／Ｏデバイスコントローラから上流側に仮想ＩＮＴｘインターフェース８０２を導入する。
この仮想ＩＮＴｘインターフェース８０２は、図８に示すように、ＰＣＩｅスイッチ内に好都合に実施することができるが、代替的に、Ｉ／Ｏブリッジ内に実施することもできるし、別個のデバイスとして実施することもできる。
仮想ＩＮＴｘインターフェース８０２は、ＭＳＩ割り込み及びＭＳＩ−Ｘ割り込みのみをサポートする新型のＩ／ＯデバイスコントローラがＭＳＩ割り込み及びＭＳＩ−Ｘ割り込みだけでなく、旧式のＩＮＴｘ割り込みもサポートするように見えるＩ／Ｏデバイスコントローラに対する仮想インターフェースをオペレーティングシステムに提供する。
仮想ＩＮＴｘインターフェースが、ＰＣＩｅスイッチで実施されるとき、仮想ＩＮＴｘインターフェースは、ＭＳＩメモリ書き込み動作を、ＩＮＴｘ割り込みメカニズムをサポートしていないＩ／Ｏデバイスコントローラから受信し、これらのＭＳＩメモリ書き込みをＩＮＴｘ割り込みエミュレーションメッセージに変換する。
これらのＩＮＴｘ割り込みエミュレーションメッセージは、その後、ホストブリッジ８０４へ転送される。
代替的に、仮想ＩＮＴインターフェースは、Ｉ／Ｏブリッジの一部として実施されるとき、ホストブリッジ８０４内において、ＭＳＩメモリ書き込みをＩＮＴｘ割り込みエミュレーションメッセージに変換することができる。
加えて、仮想ＩＮＴｘインターフェースは、ＩＮＴｘ互換性表示及びＩＮＴｘ互換性情報をオペレーティングシステム及びＢＩＯＳレイヤに提供し、ＩＮＴｘエミュレーションをサポートしていない仮想化されたＩ／Ｏデバイスコントローラ上でＭＳＩ割り込みを構成する。
【００２４】
図９Ａ〜図９Ｆは、本発明の一実施形態を表す、ＰＣＩｅスイッチ内の仮想ＩＮＴｘインターフェースの論理的な実施態様を示す制御フロー図を提供する。
図９Ａは、ＰＣＩｅスイッチ、又はＩ／ＯデバイスコントローラとＩ／Ｏブリッジ若しくはホストブリッジとの間に位置する専用デバイス内のイベントハンドリングループとして、仮想ＩＮＴｘの実施態様を高レベルで示す。
ステップ９０２において、一組のデータ構造体及び他の情報が、ＰＣＩｅ周辺相互接続上のエンドポイントデバイスのすべてについて構成される。
次に、ステップ９０３〜９１３を含む連続ループにおいて、仮想ＩＮＴｘインターフェースは、次のイベントを待ち続け、イベントが仮想ＩＮＴｘインターフェースに関係しているとき、そのイベントを適切にハンドリングする。
例えば、仮想ＩＮＴｘインターフェースが、Ｉ／Ｏデバイスコントローラによって送信されたメモリ書き込み動作の受信を検出し、ＣＰＵ上に割り込みを引き起こすとき、ルーチン「割り込みアサート（assert interrupt）」がステップ９０５において呼び出される。
ステップ９０７において検出されるように、仮想ＩＮＴｘインターフェースがＣＰＵから割り込みクリア信号を受信するとき、ルーチン「割り込みデアサート（deassert interrupt）」が、ステップ９０８において呼び出される。
なお、ステップ９０７では、ＣＰＵが、Ｉ／Ｏデバイスのビット又は仮想ＩＮＴｘインターフェースのビットのいずれかに書き込みを行う。
仮想ＩＮＴｘインターフェースが、ステップ９０９において、Ｉ／Ｏデバイスコントローラ内に記憶された互換性情報の、オペレーティングシステム又はＢＩＯＳによるアクセスを検出するとき、仮想ＩＮＴｘインターフェースは、ステップ９１０において互換性応答ルーチンを呼び出す。
ステップ９１１において判断されるように、検出されたイベントが、ホストによるエンドポイントデバイスを構成する試みであるとき、ルーチン「構成（configure）」がステップ９１２において呼び出される。
ＰＣＩｅスイッチ内の仮想ＩＮＴｘインターフェースが検出することができる他のすべてのイベントは、ステップ９１３において、キャッチオール（catch-all）イベントハンドラにより適切にハンドリングされる。
【００２５】
図９Ｂは、図９Ａのステップ９０２において呼び出されたルーチン「エンドポイントデータ構造体構成（configure end point data structure）」の制御フロー図を提供する。
ステップ９１４〜９１８のｆｏｒループにおいて、ＰＣＩｅ周辺相互接続に接続された各デバイスについてデータ構造体が生成されて初期化される。
このデータ構造体は、さまざまな実施態様により変化し得るが、ＰＣＩｅに接続された各エンドポイントデバイスのアドレスの表示及びそのデバイスの構成ステータスの表示を含むことができる。
初期において、この構成ステータスは「未構成」である。
【００２６】
図９Ｃは、図９Ａのステップ９０５において呼び出されたルーチン「割り込みアサート」の制御フロー図を提供する。
このルーチンは、ステップ９１９において、Ｉ／Ｏデバイスコントローラ又はＰＣＩｅに接続された他の割り込み発生デバイスが発生したメモリＷＲＩＴＥ（書き込み）コマンドをインターセプトする。
ステップ９２０において、ルーチン「割り込み（interrupt）」が、割り込みメッセージを送信したデバイスに対応するデータ構造体を見つける。
ステップ９２２において判断されるように、デバイスが仮想化され、ＩＮＴｘ割り込みモードにあるとき、この割り込みメッセージは、ステップ９２４において、仮想ＩＮＴｘインターフェースによりＩＮＴｘ割り込みエミュレーションメッセージ（ＩＮＴｘアサートメッセージ（Assert INTx Message））に変換される。
デバイスが仮想化され、ＩＮＴｘ割り込みモードで動作している場合、変換されたＩＮＴｘ割り込みエミュレーションメッセージは、ステップ９２５においてホストブリッジへ転送される。
デバイスが仮想化されていないか又はＩＮＴｘ割り込みモードで動作していないとき、９１８において受信されたオリジナルのＷＲＩＴＥコマンドが、ステップ９２５において、ホストブリッジへ転送される。
【００２７】
図９Ｄは、図９Ａのステップ９０８において呼び出されたルーチン「割り込みデアサート」の制御フロー図を提供する。
ステップ９２６において、ルーチン「割り込みデアサート」は、オペレーティングシステム若しくはＢＩＯＳが発生したＩ／Ｏデバイスにおけるビットへの書き込みを検出するか又はオペレーティングシステム若しくはＢＩＯＳが発生した仮想ＩＮＴｘインターフェースにおけるビットへの書き込みをインターセプトする。
ステップ９２７において、ルーチン「割り込みデアサート」は、オペレーティングシステム又はＢＩＯＳがビット書き込み動作の対象としたデバイスに対応するデータ構造体を見つける。
ステップ９２８において判断されるように、デバイスが仮想化され、ＩＮＴｘ割り込みモードにあるとき、ＩＮＴｘ割り込みエミュレーションメッセージであるＩＮＴｘデアサートメッセージ（De-assert INTx Message）が、ステップ９２９においてホストブリッジへ転送される。
【００２８】
図９Ｅは、図９Ａのステップ９０７において呼び出されたルーチン「互換性応答」の制御フロー図を提供する。
このルーチンは、デバイスの構成を容易にするために、ステップ９３０において、デバイスの特性及び互換性を表すデータを含むレジスタへのオペレーティングシステム又はＢＩＯＳレイヤによるアクセスに対する、Ｉ／Ｏデバイスコントローラ又はＰＣＩｅに接続された他の割り込み発生デバイスによる応答をインターセプトする。
ステップ９３２において判断されるように、デバイスによる応答が、そのデバイスがＭＳＩ割り込み及び旧式のＩＮＴｘ割り込みの双方をサポートしていることを示すとき、又はデバイスによる応答が、そのデバイスが旧式のＩＮＴｘ割り込みのみをサポートしていることを示すとき、この応答は、ステップ９４０において、仮想ＩＮＴｘインターフェース及びＰＣＩｅスイッチによってホストブリッジへ転送される。
デバイスによる応答が、そのデバイスがＭＳＩ割り込みのみをサポートしていることを示すとき、仮想ＩＴＮｘインターフェースは、ステップ９３４において、応答デバイスがＭＳＩ割り込み及びＩＮＴｘ割り込みの双方をサポートしていることを示すようにその応答を変更し、ステップ９３６〜９３７において、そのデバイスに対応するデータ構造体を見つけ、そのデバイスが仮想ＩＮＴｘインターフェースによって仮想化されていることを示すようにこのデータ構造体を更新する。
【００２９】
図９Ｆは、図９Ａのステップ９０９において呼び出されたルーチン「構成」の制御フロー図を提供する。
オペレーティングシステム又はＢＩＯＳによるＩ／Ｏデバイスコントローラ又はＰＣＩｅ周辺相互接続に接続された他の割り込み発生デバイスを構成する試みを表す信号又はメッセージが、ステップ９５０において受信される。
ステップ９５２において判断されるように、この構成信号又は構成メッセージが、デバイスをＭＳＩ割り込み用に初期化する試みを表すとき、ステップ９５４において、仮想ＩＮＴｘインターフェースは、構成中のデバイスに対応するデータ構造体を見つけ、そのデバイスがＭＳＩ割り込みモードで動作することを示すようにデータ構造体を更新する。
次に、ステップ９５６において、構成信号又は構成メッセージは、仮想ＩＮＴｘインターフェースによってそのデバイスへ転送される。
ステップ９５８において判断されるように、そうではなく、構成信号又は構成メッセージが、デバイスをＩＮＴｘ割り込み用に構成するデバイスを対象としているとき、そのデバイスのデータ構造体は、ステップ９６０において見つけられ、ステップ９６２において、デバイスが仮想化されているか否かを判断するためにチェックされる。
デバイスが仮想化されているとき、データ構造体は、ステップ９６４において、デバイスが仮想化されておりかつＩＮＴｘモードで動作していることの双方を示すように更新され、構成メッセージ又は構成信号はＭＳＩ構成手順に変換される。
いずれにしても、１つ又は複数の構成信号又は構成メッセージが、その後、ステップ９６６において、デバイスへ転送される。
或る場合において、デバイスが仮想化されていないとき、構成メッセージ又は構成信号を通過させることができる。
デバイスが仮想化されている場合、ＩＮＴｘ構成はＭＳＩ構成に変換される。
このＭＳＩ構成は、複数のデバイスレジスタ書き込みを伴うことができる。
特定の場合に、特定の構成動作は、信号又は動作のシーケンスを伴うことができる。
このシーケンスのすべての信号又は動作は、ルーチン「構成」に対する別々の呼び出しによって別々に取り扱うことができるが、このシーケンスの信号又は動作のすべてをステップ９６４においてＭＳＩメッセージに変換することが必要であるとは限らない。
代替的に、「構成」は、１つの呼び出しでシーケンスのすべての信号又は動作をハンドリングするように実施することができる。
構成信号又は構成メッセージが、ＭＳＩ式割り込みも構成されず、ＩＮＴｘ割り込みも構成されないことを示しているとき、受信された構成信号又は構成メッセージは、ステップ９６８においてハンドリングされる。
【００３０】
仮想ＩＮＴｘインターフェースは、図９Ｃ〜図９Ｆのステップ９１８、９５０、及び９３０において、割り込みメッセージ、構成メッセージ、又は構成信号を受信し、互換性アクセスに応答するメッセージ及び／又は信号受信コンポーネント、並びに割り込み発生デバイスを構成し、能力照会に応答し、仮想化された割り込み発生デバイスからの割り込みメッセージを変換するメッセージ及び／又は信号処理コンポーネントとして実施することができる。
多くの異なる代替的な実施態様が可能である。
【００３１】
本発明の一実施形態を表す仮想ＩＮＴｘインターフェースは、上記論述において広く特徴付けられてきた。
デバイス構成、割り込み発生、並びに旧式のＩＮＴｘ割り込みメカニズムと新型のＭＳＩメカニズム及びＭＳＩ−Ｘメカニズムとの双方の他の態様についての特定の方法及びプロトコルは、実施態様ごとに変化し得る。
その上、本発明の代替的な実施形態は、旧型の割り込み方法及び割り込みメカニズムをエミュレーションすることができない新型のデバイスの互換性を復元するために、仮想割り込みインターフェースを他のタイプの通信媒体及びデータ転送チャネルに導入するのに用いることもできる。
正確な実施態様が何を詳述しインターフェースしようとも、上流側のデバイス、ファームウェア、及びソフトウェアが旧式の方法及びインターフェースを使用してデバイスとやり取りすることができるよう新式の割り込みメッセージ又は割り込み信号をエミュレーションするには、仮想割り込みインターフェースは、どのデバイスが仮想化されているのかを判断する必要があり、旧式のデバイスの構成を新式の構成手順に変換する必要があり、新式の割り込みメッセージ又は割り込み信号をインターセプトする必要がある。
【００３２】
本発明を特定の実施形態の観点から説明してきたが、本発明がこれらの実施形態に限定されることは意図されていない。
本発明の趣旨の範囲内の変更は当業者に明らかである。
例えば、仮想ＩＮＴｘ割り込みインターフェースは、ＰＣＩｅスイッチに組み込むこともできるし、ＰＣＩｅスイッチとホストブリッジとの間の別個のディスクリートコンポーネントとして組み込むこともできるし、ホストブリッジ内に組み込むこともできるし、或いはディスクリートコンポーネントとしてホストブリッジから上流側に組み込むこともできる。
仮想ＩＮＴｘ割り込みインターフェースは、任意の個数の異なるソフトウェアモジュール、ファームウェアモジュール、及びハードウェアモジュールを使用し、異なるタイプの論理回路を使用し、かつ異なるプログラミング言語、制御構造、データ構造体を使用して、他のこのようなプログラミング変数及び設計変数を変更することによって実施することができる。
複数のスイッチ及び追加のファンアウトレベルを有するより複雑なＰＣＩｅ通信媒体では、仮想ＩＮＴｘ割り込みインターフェースは、最も高いレベルのスイッチにおいて実施することもできるし、代替的に、各スイッチにおいて、そのスイッチに直接接続されたあらゆるエンドポイントデバイスをハンドリングするように実施することもできる。
仮想ＩＮＴｘインターフェースを単純なコンピュータシステムの状況で論述してきたが、仮想ＩＮＴｘインターフェースは、ブレードエンクロージャを含むハイエンドコンピュータシステムに組み込まれた複雑なスイッチングプラットフォームで用いることができる。
図１０は、スイッチプラットフォームを含むハイエンドコンピュータシステムを示す。
このスイッチプラットフォームは、下流側Ｐ２Ｐコンポーネント１００４等の下流側Ｐ２Ｐコンポーネント又は上流側Ｐ２Ｐコンポーネント１００６等の上流側Ｐ２Ｐコンポーネントに仮想ＩＮＴｘインターフェースを設けることもできるし、別個のレイヤ又はスイッチ内のコンポーネントとして仮想ＩＮＴｘインターフェースを設けることもできる。
【００３３】
解説の目的のための上記説明は、具体的な用語体系を使用して、本発明の徹底した理解を提供している。
しかしながら、具体的な細部は、本発明を実施するのに必要とされないことが当業者には明らかである。
本発明の具体的な実施形態の上記説明は、例示及び説明の目的で提示されている。
上記説明は、網羅的であることを意図するものでもなければ、開示した正確な形態に本発明を限定することを意図するものでもない。
上記教示を考慮して多くの変更及び変形が可能である。
実施形態は、本発明の原理及びその実際の適用を最も良く説明し、それによって、他の当業者が、本発明及びさまざまな変更を有するさまざまな実施形態を、考慮される特定の使用に適するように最も良く利用することを可能にするために図示及び説明されている。
本発明の範囲は、次の特許請求の範囲及びその均等なものによって規定されることが意図されている。
【図１】
2011519092.tif 000003
【図２】
2011519092.tif 000004
【図３Ａ】
2011519092.tif 000005
【図３Ｂ】
2011519092.tif 000006
【図３Ｃ】
2011519092.tif 000007
【図３Ｄ】
2011519092.tif 000008
【図３Ｅ】
2011519092.tif 000009
【図３Ｆ】
2011519092.tif 000010
【図３Ｇ】
2011519092.tif 000011
【図４】
2011519092.tif 000012
【図５Ａ】
2011519092.tif 000013
【図５Ｂ】
2011519092.tif 000014
【図５Ｃ】
2011519092.tif 000015
【図６】
2011519092.tif 000016
【図７】
2011519092.tif 000017
【図８】
2011519092.tif 000018
【図９Ａ】
2011519092.tif 000019
【図９Ｂ】
2011519092.tif 000020
【図９Ｃ】
2011519092.tif 000021
【図９Ｄ】
2011519092.tif 000022
【図９Ｅ】
2011519092.tif 000023
【図９Ｆ】
2011519092.tif 000024
【図１０】
2011519092.tif 000025
【手続補正書】
【提出日】平成22年12月17日(2010.12.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想割り込みモードインターフェース（８０２）であって、
割り込みメッセージ（９０４）、構成メッセージまたは構成信号（９１１）を受信し、互換性レジスタへのアクセス（９０９）に応答するメッセージおよび／または信号受信コンポーネントと、
メッセージおよび／または信号処理コンポーネントであって、
割り込み発生デバイスが第２の割り込みモードをサポートせず、前記メッセージおよび／または信号受信コンポーネントが、前記割り込み発生デバイスを前記第２の割り込みモードで動作するように構成する、前記割り込み発生デバイスを対象とした構成メッセージまたは構成信号を受信したとき、前記割り込み発生デバイスを第１の割り込みモードで動作する（９６０、９６２、９６４、９６６）ように構成する（９１２）ことであって、前記割り込み発生デバイスは、その後、前記第２の割り込みモードで仮想的に動作する、構成することと、
前記第２の割り込みモードで仮想的に動作する１つまたは複数の割り込み発生デバイスから前記メッセージおよび／または信号受信コンポーネントによって受信された各第１の割り込みモード割り込みメッセージを、第２の割り込みモード割り込みに変換する（９２４）と共に、前記第２の割り込みモード割り込みを前記受信した第１の割り込みモード割り込みメッセージの目的とする受信者へ転送することと
を行うメッセージおよび／または信号処理コンポーネントと
を備える仮想割り込みモードインターフェース。
【請求項２】
前記第２の割り込みモードは、ＰＣＩのＩＮＴｘ割り込みモードであり（９５８）、
前記第１の割り込みモードは、ＰＣＩｅのＭＳＩ割り込みモードまたはＭＳＩ−Ｘ割り込みモードであり（９５２）、
前記仮想割り込みモードインターフェース（８０２）は、
前記割り込み発生デバイスとＰＣＩｅスイッチとの間に導入されたデバイス、
前記ＰＣＩｅスイッチ（７０４）、
ホストブリッジデバイス（８０４）、および
前記ＰＣＩｅスイッチと前記ホストブリッジデバイスとの間に導入されたデバイス、
の１つに組み込まれ、
前記仮想割り込みモードインターフェースが組み込まれた前記ＰＣＩｅスイッチ、前記ホストブリッジデバイス、またはディスクリートデバイスは、ＰＣＩｅ相互接続によって前記割り込み発生デバイス（７０６）と相互接続され、
前記仮想割り込みモードインターフェースが組み込まれた前記ＰＣＩｅスイッチ、前記ホストブリッジデバイス、または前記ディスクリートデバイスは、前記割り込み発生デバイスが発生した割り込みメッセージに応答して割り込みが引き起こされる少なくとも１つのＣＰＵ（１０２）と相互接続される
請求項１に記載の仮想割り込みモードインターフェース。
【請求項３】
前記割り込み発生デバイスの現在のステータスおよび割り込みモードの表示を含む各割り込み発生デバイスのデータ構造体をさらに含み（９１７）、各割り込み発生デバイスに対応する前記データ構造体は、前記割り込み発生デバイスが構成されていないことを示すように初期化される（９１７）
請求項１に記載の仮想割り込みモードインターフェース。
【請求項４】
仮想割り込みモードインターフェース（８０２）であって、
前記メッセージおよび／または信号受信コンポーネントが、互換性レジスタのアクセスに対する応答を前記割り込み発生デバイスから受信するとき、前記メッセージおよび／または信号処理コンポーネントは、
前記応答が、前記割り込み発生デバイスが前記第１の割り込みモードでのみ動作することができることを示すか否かを判断し（９３２）、
前記応答が、前記割り込み発生デバイスが前記第１の割り込みモードでのみ動作することができることを示すとき、前記割り込み発生デバイスが前記第２の割り込みモードおよび前記第１の割り込みモードの双方で動作することができることを示すように前記応答を変更し（９３４）、前記割り込み発生デバイスが仮想化されていることを示すように、前記割り込み発生デバイスを表す前記データ構造体を更新し（９３７）、前記変更された応答を、前記互換性応答の目的とする受信者へ転送し（９４０）、
前記応答が、前記割り込み発生デバイスが前記第２の割り込みモードおよび前記第１の割り込みモードの双方で動作することができることを示すとき、または前記応答が、前記割り込み発生デバイスが前記第２の割り込みモードでのみ動作することができることを示すとき、前記互換性応答の前記目的とする受信者へ前記応答を転送する（９４０）
請求項３に記載の仮想割り込みモードインターフェース。
【請求項５】
仮想割り込みモードインターフェース（８０２）であって、
前記メッセージおよび／または信号受信コンポーネントが、前記割り込み発生デバイスを対象とした構成メッセージまたは構成信号を受信するとき（９５０）、前記メッセージおよび／または信号処理コンポーネントは、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第１の割り込みモードで動作するように構成する試みを表すか否かを判断し（９５２）、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第１の割り込みモードで動作するように構成する試みを表すとき、前記構成メッセージまたは前記構成信号を前記割り込み発生デバイスへ転送し（９５６）、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第２の割り込みモードで動作するように構成する試みを表すとき（９５８）、
前記割り込み発生デバイスが仮想化されているか否かを、前記割り込み発生デバイスを表す前記データ構造体から判断し（９６２）、
前記割り込み発生デバイスが仮想化されているとき、前記割り込み発生デバイスが前記第２の割り込みモードで仮想的に動作していることを示すように、前記割り込み発生デバイスを表す前記データ構造体を更新し（９６４）、前記構成メッセージまたは前記構成信号を第１の割り込みモード構成メッセージに変換し（９６４）、前記第１の割り込みモード構成メッセージを前記割り込み発生デバイスへ転送し（９６６）、
前記割り込み発生デバイスが仮想化されていないとき、前記構成メッセージまたは前記構成信号を前記割り込み発生デバイスへ転送する（９６６）
請求項３に記載の仮想割り込みモードインターフェース。
【請求項６】
前記メッセージおよび／または信号受信コンポーネントが、前記割り込み発生デバイスから前記第１の割り込みモード割り込みメッセージを受信するとき（９１９）、前記メッセージおよび／または信号処理コンポーネントは、
前記割り込み発生デバイスが仮想化されて、前記第２の割り込みモードで仮想的に動作しているか否かを、前記割り込み発生デバイスを表す前記データ構造体から判断し（９２２）、
前記割り込み発生デバイスが仮想化されて、前記第２の割り込みモードで仮想的に動作しているとき、前記割り込みメッセージを前記第２の割り込みモード割り込みメッセージまたは前記第２の割り込みモード割り込み信号に変換し（９２４）、前記変換された割り込みメッセージまたは割り込み信号を前記割り込みメッセージの前記目的とする受信者へ転送し（９２５）、
前記割り込み発生デバイスが仮想化されておらず、前記第２の割り込みモードで仮想的に動作していないとき、前記割り込みメッセージまたは前記割り込み信号を、前記割り込みメッセージの前記目的とする受信者へ転送し（９２５）、
一エンティティが、仮想化されて前記第２の割り込みモードで仮想的に動作している割り込み発生デバイスを対象として試みた割り込みクリア動作を、前記メッセージおよび／または信号受信コンポーネントが検出するとき（９０７、９２８）、前記メッセージおよび／または信号処理コンポーネントは、
第２の割り込みモードデアサートエミュレーションメッセージを前記エンティティに返す（９２９）
請求項３に記載の仮想割り込みモードインターフェース。
【請求項７】
割り込み発生デバイス（７０６）をオペレーティングシステム（７０２）またはＢＩＯＳに対して仮想化するための方法であって、
前記割り込み発生デバイスが第２の割り込みモードをサポートせず、かつ前記割り込み発生デバイスを前記第２の割り込みモードで動作するように構成する、前記割り込み発生デバイスを対象とした構成メッセージまたは構成信号が受信されたとき、前記割り込み発生デバイスを、第１の割り込みモードで動作すると共に前記第２の割り込みモードで仮想的に動作するように構成することと（９６０、９６２、９６４、９６６）、
前記第２の割り込みモードで仮想的に動作する前記割り込み発生デバイスから受信された第１の割り込みモード割り込みメッセージを、第２の割り込みモード割り込みに変換する（９６４）と共に、前記第２の割り込みモード割り込みを前記受信された第１の割り込みモード割り込みメッセージの目的とする受信者へ転送することと
を含む方法。
【請求項８】
前記第２の割り込みモードは、ＰＣＩのＩＮＴｘ割り込みモードであり（９５８）、
前記第１の割り込みモードは、ＰＣＩｅのＭＳＩ割り込みモードまたはＭＳＩ−Ｘ割り込みモードであり（９５２）、
該請求項８に記載の方法は、
前記割り込み発生デバイスとＰＣＩｅスイッチとの間に導入されたデバイス、
前記ＰＣＩｅスイッチ（７０４）、
ホストブリッジデバイス（８０４）、および
前記ＰＣＩｅスイッチと前記ホストブリッジデバイスとの間に導入されたデバイス、
の１つにおいて実行され、
前記仮想割り込みモードインターフェースが組み込まれた前記ＰＣＩｅスイッチ、前記ホストブリッジデバイス、またはディスクリートデバイスは、ＰＣＩｅ相互接続によって前記割り込み発生デバイス（７０６）と相互接続され、
前記仮想割り込みモードインターフェースが組み込まれた前記ＰＣＩｅスイッチ、前記ホストブリッジデバイス、または前記ディスクリートデバイスは、前記割り込み発生デバイスが発生した割り込みメッセージに応答して割り込みが引き起こされる少なくとも１つのＣＰＵ（１０２）と相互接続され、
該請求項８に記載の方法は、
現在のステータスおよび割り込みモードの表示を含む各割り込み発生デバイスのデータ構造体を作成すると共に保持することと、
各割り込み発生デバイスに対応する前記データ構造体を初期化する（９１７）ことであって、前記割り込み発生デバイスが構成されていないことを示す、初期化することと
をさらに含む請求項７に記載の方法。
【請求項９】
前記割り込み発生デバイスからの１つまたは複数の互換性レジスタのアクセスに対する応答が受信されるとき、
前記応答が、前記割り込み発生デバイスが前記第１の割り込みモードでのみ動作することができることを示すか否かを判断する（９３２）ことと、
前記応答が、前記割り込み発生デバイスが前記第１の割り込みモードでのみ動作することができることを示すとき、前記割り込み発生デバイスが前記第２の割り込みモードおよび前記第１の割り込みモードの双方で動作することができることを示すように前記応答を変更し（９３４）、前記割り込み発生デバイスが仮想化されていることを示すように、前記割り込み発生デバイスを表す前記データ構造体を更新する（９３７）と共に、前記変更された応答を、前記応答の目的とする受信者へ転送する（９４０）ことと、
前記応答が、前記割り込み発生デバイスが前記第２の割り込みモードおよび前記第１の割り込みモードの双方で動作することができることを示すとき、または前記応答が、前記割り込み発生デバイスが前記第２の割り込みモードでのみ動作することができることを示すとき、前記互換性応答の前記目的とする受信者へ前記応答を転送する（９４０）ことと、
前記割り込み発生デバイスを対象とした構成メッセージまたは構成信号が受信されるとき、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第１の割り込みモードで動作するように構成する試みを表すか否かを判断する（９５２）ことと、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第１の割り込みモードで動作するように構成する試みを表すとき、前記構成メッセージまたは前記構成信号を前記割り込み発生デバイスへ転送する（９５６）ことと、
前記構成メッセージまたは前記構成信号が、前記割り込み発生デバイスを前記第２の割り込みモードで動作するように構成する試みを表すとき（９５８）、
前記割り込み発生デバイスが仮想化されているか否かを、前記割り込み発生デバイスを表す前記データ構造体から判断する（９６２）ことと、
前記割り込み発生デバイスが仮想化されているとき、前記割り込み発生デバイスが前記第２の割り込みモードで仮想的に動作していることを示すように、前記割り込み発生デバイスを表す前記データ構造体を更新し（９６４）、前記構成メッセージまたは前記構成信号を第１の割り込みモード構成メッセージまたは第１の割り込みモード構成信号に変換する（９６４）と共に、前記第１の割り込みモード構成メッセージを前記割り込み発生デバイスへ転送する（９６６）ことと、
前記割り込み発生デバイスが仮想化されていないとき、前記構成メッセージまたは前記構成信号を前記割り込み発生デバイスへ転送する（９６６）ことと
をさらに含む請求項８に記載の方法。
【請求項１０】
前記割り込み発生デバイスからの前記第１の割り込みモード割り込みメッセージが受信される（９１９）とき、
前記割り込み発生デバイスが仮想化されて、前記第２の割り込みモードで仮想的に動作しているか否かを、前記割り込み発生デバイスを表す前記データ構造体から判断する（９２２）ことと、
前記割り込み発生デバイスが仮想化されて、前記第２の割り込みモードで仮想的に動作しているとき、前記割り込みメッセージを第２の割り込みモード割り込みメッセージまたは第２の割り込みモード割り込み信号に変換する（９２４）と共に、前記変換された割り込みメッセージまたは割り込み信号を前記割り込みメッセージの前記目的とする受信者へ転送する（９２５）ことと、
前記割り込み発生デバイスが仮想化されておらず、前記第２の割り込みモードで仮想的に動作していないとき、前記割り込みメッセージまたは前記割り込み信号を、前記割り込みメッセージの前記目的とする受信者へ転送する（９２５）ことと、
一エンティティが、仮想化されて前記第２の割り込みモードで仮想的に動作している割り込み発生デバイスを対象として試みた割り込みクリア動作が検出されるとき（９０７、９２８）、
第２の割り込みモードデアサートエミュレーションメッセージを前記エンティティに返す（９２９）ことと
をさらに含む請求項８に記載の方法。
【国際調査報告】
2011519092.tif 000026
2011519092.tif 000027