(57)【特許請求の範囲】
【請求項１】
ｈｏｓｔ−ｔｏ−ＰＣＩブリッジと共有されることなく１以上のプロセッサを有するホストバスとに直接接続するためのインタフェースと、
１以上の機能を実行するよう前記インタフェースと接続され、仮想ＰＣＩデバイスとして出現し、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジを介し前記ホストバスに接続されるＰＣＩバス上に論理的に設けられるデバイスと、
前記ホストバスに接続される前記プロセッサの少なくとも１つにより開始されるホストバスサイクルを追跡するよう前記デバイスと前記インタフェースに接続され、前記仮想ＰＣＩデバイスを対象とするプロセッサにより開始されたホストバスサイクルを特定し、前記仮想ＰＣＩデバイスとして前記デバイスが前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジにアクセスする必要なく、前記仮想ＰＣＩデバイスを対象とする特定されたホストバスサイクルの１以上に応答することを可能にするよう１以上の制御信号を生成するモニタ回路と、
から構成される装置であって、
前記デバイスによる前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジへのアクセスは、前記ホストバスを介してのみ行われることを特徴とする装置。
【請求項２】
請求項１記載の装置であって、さらに、
前記インタフェースと前記モニタ回路に接続され、前記仮想ＰＣＩデバイスにアドレス指定されたホストバスリードサイクルに係るデータを格納する第１ストレージを有し、
前記データは、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジのホストインタフェースにアクセスすることなく、前記ホストバスリードサイクル中に前記第１ストレージから前記ホストバスに転送されることを特徴とする装置。
【請求項３】
請求項２記載の装置であって、さらに、
前記インタフェースと前記モニタ回路に接続され、前記仮想ＰＣＩデバイスにアドレス指定されたホストバスライトサイクルに係るデータを格納する第２ストレージを有し、
前記データは、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジのホストインタフェースにアクセスすることなく、前記ホストバスライトサイクル中に前記ホストバスから前記第２ストレージに転送されることを特徴とする装置。
【請求項４】
請求項１記載の装置であって、さらに、
前記インタフェースに接続され、該インタフェースを介し前記ホストバス上で１以上のホストバスサイクルを開始可能なプロセッサを有することを特徴とする装置。
【請求項５】
請求項３記載の装置であって、さらに、
前記デバイス、前記モニタ回路、前記第１ストレージ及び前記第２ストレージを前記インタフェースに接続する内部バスを有することを特徴とする装置。
【請求項６】
請求項１記載の装置であって、
前記デバイスは、１以上の他のデバイスに接続されるブリッジデバイスであり、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジに接続されるＰＣＩバスに論理的に設けられる仮想ＰＣＩ−ＰＣＩブリッジとして出現することを特徴とする装置。
【請求項７】
請求項１記載の装置であって、
前記仮想ＰＣＩデバイスを対象とする前記特定されたホストバスサイクルは、前記仮想ＰＣＩデバイスに割当てられたメモリアドレス空間を対象とするホストバスサイクルを有することを特徴とする装置。
【請求項８】
請求項１記載の装置であって、さらに、
前記ホストバスに接続され、前記ホストバスからデータを受信するための前記制御信号の１以上に応答するミラーレジスタを有し、
前記モニタ回路は、設定アドレスレジスタを対象とするホストバスライトサイクルをさらに特定し、前記設定アドレスレジスタを対象とするものとして特定された前記ホストバスサイクルの期間中に前記ミラーレジスタに格納するため、前記ホストバスからデータを受信するための前記制御信号を生成する、
ことを特徴とする装置。
【請求項９】
請求項１記載の装置であって、
前記仮想ＰＣＩデバイスを対象とする前記特定されたホストバスサイクルは、前記仮想ＰＣＩデバイスに割当てられたＩ／Ｏアドレス空間に対するホストバスサイクルを有することを特徴とする装置。
【請求項１０】
請求項２記載の装置であって、
前記第１ストレージは、複数の第１設定レジスタを有し、
前記特定されたホストバスサイクルは、前記仮想ＰＣＩデバイスに対し確保されている設定空間を対象とするホストバスサイクルを有することを特徴とする装置。
【請求項１１】
請求項１０記載の装置であって、
前記仮想ＰＣＩデバイスは、仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジの後方に配置され、
前記第１ストレージは、複数の第２設定レジスタを有し、
前記モニタ回路は、前記仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジに割当てられた設定空間を対象とするホストバスサイクルをさらに特定し、
前記モニタ回路は、前記仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジに割当てられた設定空間を対象とする前記特定されたホストバスリードサイクルの１以上において、１以上の前記データを前記ホストバスに伝送する複数の制御信号を生成する、
ことを特徴とする装置。
【請求項１２】
ｈｏｓｔ−ｔｏ−ＰＣＩブリッジと共有されることなくホストバスに直接接続するためのインタフェースと、
プライマリＰＣＩバスに割当てられた第１アドレス空間を指定するコンテンツを有する第１ストレージと、
１以上の機能を実行するよう前記インタフェースに接続され、仮想ＰＣＩデバイスとし出現し、前記プライマリＰＣＩバスに接続されるＰＣＩバス上に論理的に配置され、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジへのアクセスが前記ホストバスを介してのみなされるデバイスと、
前記仮想ＰＣＩデバイスに割当てられる第２アドレス空間を指定するコンテンツを有する第２ストレージと、
前記第１ストレージと前記第２ストレージに接続され、プロセッサにより開始されたホストバスサイクルを追跡し、前記プライマリＰＣＩバスにルーティングするホストバスサイクルを選択するようホストバスに接続する制御回路と、
から構成される装置であって、
前記ルーティングされたサイクルは、前記第２アドレス空間を対象とするホストバスサイクルを排除するため、前記第１ストレージと前記第２ストレージのコンテンツに基づき選択されることを特徴とする装置。
【請求項１３】
請求項１２記載の装置であって、
前記第１及び第２アドレス空間は、メモリホストバスアドレス空間を含むことを特徴とする装置。
【請求項１４】
請求項１２記載の装置であって、
前記第１及び第２アドレス空間は、ホストバスＩ／Ｏ空間を含むことを特徴とする装置。
【請求項１５】
請求項１２記載の装置であって、
前記第１及び第２アドレス空間は、ＰＣＩに準拠した設定アドレス空間を含むことを特徴とする装置。
【請求項１６】
請求項１２記載の装置であって、
前記仮想ＰＣＩデバイスは、仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジであることを特徴とする装置。
【請求項１７】
請求項１６記載の装置であって、さらに、
複数の設定レジスタと、
前記制御回路に接続され、前記仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジが論理的に配備されるデバイス番号とバスを示すコンテンツを有する第３ストレージと、
を有し、
前記制御回路はさらに、前記バス及びデバイス番号に基づき、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジのホストインタフェースにアクセスする必要なく前記複数の設定レジスタにルーティングするよう前記仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジの設定アドレス空間を対象とするホストバスサイクルを選択することを特徴とする装置。
【請求項１８】
ホストバスに接続された１以上のプロセッサと、
前記ホストバスにプライマリＰＣＩバスを接続するｈｏｓｔ−ｔｏ−ＰＣＩブリッジと、
前記ホストバスに接続され、前記プライマリＰＣＩバスに接続されたＰＣＩバス上に論理的に配備される第１仮想ＰＣＩデバイスとして出現し、前記ホストバスをモニタし、前記第１仮想ＰＣＩデバイスを対象とするプロセッサにより開始されたホストバスサイクルを特定し、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジにアクセスすることなく前記第１仮想ＰＣＩデバイスを対象とする特定されたサイクルを傍受し、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジへの前記デバイスによるアクセスが前記ホストバスのみを介する第１ホストバスデバイスと、
から構成されるシステムであって、
前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジは、前記第１仮想ＰＣＩデバイスを対象とする前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジを介し接続される前記ＰＣＩバスに前記特定されたサイクルを転送しないことを特徴とするシステム。
【請求項１９】
請求項１８記載のシステムであって、
前記第１ホストバスデバイスは、複数の設定レジスタを有し、
前記傍受されたサイクルは、前記第１仮想ＰＣＩデバイスのため確保された設定空間を対象とするホストバスサイクルを有し、前記複数の設定レジスタにアクセスするようルーティングされる、
ことを特徴とするシステム。
【請求項２０】
請求項１８記載のシステムであって、
前記第１ホストバスデバイスは、メモリ装置アレイを有し、
前記傍受されたサイクルは、前記第１仮想ＰＣＩデバイスに割当てられたメモリ空間を対象とするホストバスサイクルを有し、前記メモリ装置アレイにアクセスするようルーティングされる、
ことを特徴とするシステム。
【請求項２１】
請求項１８記載のシステムであって、さらに、
前記ホストバスに接続され、前記プライマリＰＣＩバスに接続されるＰＣＩバス上に論理的に配備される第２仮想ＰＣＩデバイスとして出現する第２ホストバスデバイスを有し、
前記第１及び第２仮想ＰＣＩデバイスは、ＰＣＩバス番号とデバイス番号の一意的な組み合わせを有することを特徴とするシステム。
【請求項２２】
請求項１８記載のシステムであって、
前記第１仮想ＰＣＩデバイスは、プライマリ仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジの後方に論理的に配置され、
前記プライマリ仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジは、前記プライマリＰＣＩバスの後方に論理的に配置され、
前記第１ホストバスデバイスは、前記プライマリ仮想ＰＣＩ−ｔｏ−ＰＣＩバスに割当てられたバス番号を決定するため、前記ホストバスを検索する、
ことを特徴とするシステム。
【請求項２３】
請求項２２記載のシステムであって、
前記第１仮想ＰＣＩデバイスは、プライマリ仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジの後方に論理的に配置される補助仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジの後方に論理的に配置され、
前記第１ホストバスデバイスは、複数のブリッジ設定レジスタを有し、
前記傍受されたサイクルは、前記補助仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジのために確保された設定空間を対象とするホストバスサイクルを有し、前記複数のブリッジ設定レジスタにアクセスするようルーティングされる、
ことを特徴とするシステム。
【請求項２４】
ホストバスに接続されるプロセッサにより開始される現在のホストバスサイクルをキャプチャするステップと、
前記キャプチャされたサイクルが、プライマリＰＣＩバスの後方のＰＣＩバスに論理的に配置され、前記ホストバスにアクセスするため、ｈｏｓｔ−ｔｏ−ＰＣＩブリッジとインタフェースを共有し、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジのホストインタフェースにアクセスする必要なく、前記ホストバスに直接接続されたホストバスデバイスを表す仮想ＰＣＩデバイスを対象としているか判断するステップと、
前記現在のサイクルが前記仮想ＰＣＩデバイスを対象としていると判断されると、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジのホストインタフェースを介し前記プライマリＰＣＩバスに前記サイクルをルーティングすることなく、前記現在のホストバスサイクルを傍受するステップと、
前記ホストバスデバイスが前記仮想ＰＣＩデバイスとして前記ホストバスサイクルに応答することを可能にするため、前記ｈｏｓｔ−ｔｏ−ＰＣＩブリッジのホストインタフェースを用いることなく前記傍受されたホストバスサイクルを前記ホストバスデバイスにルーティングするステップと、
から構成されることを特徴とする方法。
【請求項２５】
請求項２４記載の方法であって、
前記傍受は、前記ホストバスに接続されたストレージにアクセスするためのルーティングを含むことを特徴とする方法。
【請求項２６】
請求項２４記載の方法であって、
前記傍受は、複数の設定レジスタ内のある位置にアクセスするためのルーティングを含むことを特徴とする方法。
【請求項２７】
請求項２４記載の方法であって、
前記判断は、前記現在のサイクルが設定アドレスレジスタを対象とするライトサイクルであるか判断し、前記現在のサイクルが前記設定アドレスレジスタを対象とするライトサイクルである場合、前記ホストバスからデータを受信するよう前記現在のホストバスサイクルを検索し、前記データの一部またはすべてをミラーレジスタに書き込むことからなることを特徴とする方法。
【請求項２８】
請求項２４記載の方法であって、
前記判断は、前記現在のサイクルが、バス番号が指定される仮想プライマリＰＣＩ−ｔｏ−ＰＣＩブリッジの設定レジスタ内のある位置を対象とするライトサイクルであるか判断し、前記現在のサイクルが、バス番号が指定される仮想プライマリＰＣＩ−ｔｏ−ＰＣＩブリッジの設定レジスタ内のある位置を対象とするライトサイクルである場合、前記ホストバスからデータを受信するよう前記現在のホストバスサイクルを検索し、前記データをストレージに書き込むことからなることを特徴とする方法。
【請求項２９】
請求項２４記載の方法であって、
前記判断は、前記サイクルが仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジの設定レジスタ内のある位置に対するものであるか判断し、前記サイクルが仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジの設定レジスタ内のある位置に対するものである場合、複数のブリッジ設定レジスタ内のある位置にアクセスするようルーティングするため、前記現在のホストバスを傍受することからなることを特徴とする方法。
【請求項３０】
請求項２４記載の方法であって、
前記仮想ＰＣＩデバイスは、仮想ＰＣＩ−ｔｏ−ＰＣＩブリッジであることを特徴とする方法。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［発明の背景］
発明の技術分野
本発明は、一般にコンピュータに関する。より詳細には、本発明は、データ転送バスに関する。
従来技術の説明
ＰＣＩ−ＳＩＧ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ−Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）により公開されたＰＣＩローカルバス仕様（ＰＣＩ  Ｌｏｃａｌ  Ｂｕｓ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）Ｒｅｖ．２．２とＰＣＩ−ＰＣＩブリッジアーキテクチャ仕様（ＰＣＩ  ｔｏ  ＰＣＩ  Ｂｒｉｄｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）Ｒｅｖ．１．１は、ネットワークコントローラ、大容量記憶装置コントローラ、ディスプレイコントローラ、マルチメディア装置、通信装置及び他の装置をシステムに統合するためのＰＣＩバスプロトコルを規定するものである。ＰＣＩバスプロトコルは、ソフトウェアがＰＣＩデバイスと協調するための電気特性及び方法に関する仕様を含み、一般的に、ホストバス、プロセッサまたはメモリのような他のシステム構成要素に利用されるプロトコルとは独立な方法により周辺デバイスの統合を行う。
【０００２】
ＰＣＩプロトコルは、コンピュータプログラムによるＰＣＩデバイスへの直接的なアクセス及びＰＣＩデバイスの設定を可能にする「フック（ｈｏｏｋ）」を提供する。このフックには、各ＰＣＩデバイスに関連付けされた２５６個の８ビット設定レジスタにアクセスするための設定アドレス空間が含まる。これにより、ユーザによる操作なく、システムアドレスマップの構築のため、システムにインストールされている各ＰＣＩデバイスの選択的な検出、ベンダーとデバイスタイプの特定、各ＰＣＩデバイスのシステムリソース要件についての判断、システムアドレス空間内での各デバイスの再配置、バインディング（ｂｉｎｄｉｎｇ）の中断、インストール、設定及び起動を、コンピュータプログラムは実行することができる。設定レジスタには、所定のヘッダー領域とデバイス依存領域が含まれるが、各領域の必要性かつ関連性のあるレジスタのみが実現される必要がある。ＰＣＩ−ＰＣＩブリッジは、レンジバス番号を当該ＰＣＩ−ＰＣＩブリッジから後ろのＰＣＩバスに割り当てるコンピュータプログラムにアクセス可能である設定レジスタを有するＰＣＩ装置である。
【０００３】
設定空間は、ホストコンピュータにおいて実行されるコンピュータプログラムにより始動される設定サイクルを介しアクセスされる。ＰＣＩプロトコルは、異なる２つの機構の一方を通じ設定サイクルのルーティングが実行されると予想する。これらの機構で、
ホスト−ＰＣＩブリッジは、ターゲットＰＣＩデバイスにより受信される当該ＰＣＩデバイスが現在の設定サイクルでのターゲットであると通知するＰＣＩバス信号に関し、ソフトウェアコマンドをターゲットＰＣＩバスにおける１つの設定サイクルに解釈する。
【０００４】
あるシステムにおけるＰＣＩデバイスの検出及び初期化は、設定空間を利用し、デバイスに依存しないプログラムにより実行される。プログラムは、ＰＣＩバス０における各スロットに割り当てられた設定空間をポーリングし、バス０上のＰＣＩデバイス及びＰＣＩ−ＰＣＩブリッジを検出する。当該プログラムは、設定レジスタに書き込むことにより、検出されたＰＣＩ−ＰＣＩブリッジのそれぞれに一意的なバス番号を割り当て、割り当てられたバスそれぞれにおける各スロットをポーリングし、ＰＣＩデバイス及びＰＣＩ−ＰＣＩブリッジを検出するようにしてもよい。検出されたＰＣＩバスそれぞれの各スロットがポーリングされ、すべてのＰＣＩデバイスが検出されるまで、上記処理は続けられる。システムにインストールされていると検出された各ＰＣＩデバイスに対し、リソース要件を判断するため、デバイスの設定レジスタが読み出される。システム及び様々なＰＣＩデバイス間のコンフリクトを回避するようシステムアドレスマップが構成され、各ＰＣＩデバイスの適切な設定レジスタに書き込むことにより、システムリソースが各ＰＣＩデバイスに割り当てられるようにしてもよい。さらに、自己診断テストや他の初期化処理をサポートするデバイス上に自己診断テストが呼び出され、各ＰＣＩデバイスに対し、インストールと設定がユーザ操作により、あるいはユーザ操作なしに実行されるようにしてもよい。
【０００５】
ＰＣＩプロトコルに厳格に従うことによる短所として、データ転送速度、データパス幅、待ち時間（ｌａｔｅｎｃｙ）及び帯域幅を限定してしまい、ＰＣＩデバイスのパフォーマンスの上限を設けてしまうという問題点がある。また、ホスト−ＰＣＩブリッジに特有の遅延と、共有ＰＣＩバス上の複数のＰＣＩデバイスに特有の帯域幅に関する制約により、パフォーマンスは制限される。現在の傾向としては、より高いパフォーマンスのプロセッサ、メモリ及びホストバスを求めるというものであり、そこでは、効率的に接続されたデバイスが、実際のＰＣＩバスへの接続を通じてよりも、より低い待ち時間、より高いスループット及びより良いシステム全体のパフォーマンスのようなパフォーマンス効果を達成することができる。
【０００６】
ＰＣＩブリッジ仕様により要求されているプラグ・アンド・プレイ（登録商標）リソース配分プログラムは、典型的には、あるＰＣＩバスに割り当てられたアドレス空間が当該ＰＣＩバスより後方のＰＣＩバスに割り当てられるアドレス空間を含むことを予期する。従って、ＰＣＩプロトコルへの完全な準拠は、ＰＣＩデバイスをホスト−ＰＣＩブリッジのホストプロセッサ側に配置することをより困難にし、この場合、ＰＣＩデバイスは、（恐らく互換性に関する理由のため）物理的なＰＣＩバスに割り当てられたアドレス空間の一部であるアドレス空間を要求する。
［詳細な説明］
ネットワークコントローラ、大容量記憶装置コントローラ、ディスプレイコントローラ、マルチメディアデバイス、通信デバイス及びその他のデバイスのホストバスプロセッサへの統合、及びデバイスのプロセッサホストバスへの効率的な接続のための実施例が提供される。ＰＣＩプロトコルの選択された特徴が順守され、ＰＣＩに準拠したデバイスにのみ利用可能なデバイスのためのソフトウェアサポートを可能にする。本発明は、いくつかのシステムにおいて、システムパフォーマンスの向上、デバイスパフォーマンスの向上、システム内のすべてのデバイスのよりシンプルな初期化及び設定、システムリソース配分処理における頑健性の向上、全体コストの低下、及び物理的なボード／チップスペースの減少、さらに、物理的ＰＣＩバスに割り当てられたアドレス空間の一部のホストバス上のデバイスへの配分を可能にすることを含む従来方法に対する多くの優位点の少なくとも１つを提供する。さらに、本発明は、ＰＣＩに準拠するデバイスの特性の多くを有するものとしてコンピュータプログラムに現れるデバイスの統合を可能にし、それによって、システム全体のコスト低下、より少ないスペース、プロセッサチップのピン数の減少、ＰＣＩバスにおける帯域幅の増加、システムパフォーマンスの向上あるいはデバイスパフォーマンスの向上のような多くの効果をもたらす。
【０００７】
図１ａ、１ｂ、２、３及び４は、本発明の様々な実施例を説明するためのシステム１００、２００、３００及び４００のブロック図を示す。プロセッサ１３０は、ホストバス１２０に接続される任意のプロセッサは表しているかもしれない。あるいは、プロセッサ１３０は、ホストバス１２０に接続される２つ以上のプロセッサを表しているかもしれない。
【０００８】
システム１００、２００、３００及び４００は、例えば、ネットワークコントローラ、大容量記憶装置コントローラ、ディスプレイコントローラ、マルチメディアデバイス、通信デバイス、あるいはその他のデバイスとしてのホストバスデバイス１１０、２１０及び４１０を備える。ホストバスデバイス１１０、２１０及び４１０は、ホストバス１２０をモニタすることを可能にし、存在しない仮想ＰＣＩデバイス１６０を対象としたプロセッサ始動ホストバスサイクルをホストバスデバイス１１０が遮断できるよう、インタフェース１１２を介しホストバス１２０に接続されてもよい。
【０００９】
ホストバスデバイス１１０、２１０及び４１０は、ホストバスサイクルの追跡のためホストバス１２０に接続されたモニタ回路１１４を備えてもよい。モニタ回路１１４は、各ホストバスサイクルにおいて選択された情報を取得し、監視（ｓｎｏｏｐ）あるいは遮断（ｉｎｔｅｒｃｅｐｔ）される選択されたホストバスサイクルを特定する。リードサイクル（ｒｅａｄ  ｃｙｃｌｅ）は、データをホストバス１２０に転送するため選択されたホストバスデータ信号を駆動し、そして当該サイクルを終了させることにより遮断される。プロセッサ１３０により始動されたサイクルは、アクティブなプロセッサ１３０にホストバス１２０により利用されているプロトコルに従って、いつ当該サイクルを終了すべきかを通知することにより終了される。ライトサイクル（ｗｒｉｔｅ  ｃｙｃｌｅ）は、ホストバス１２０のライトサイクルにおける選択されたホストバス１２０のデータ信号の値をラッチし、その後当該サイクルを終了させることにより遮断される。ホストバス１２０のサイクルは、選択されたホストバスサイクルの情報を読み出し、それを記憶装置１１５に保存することにより監視される。ここで、当該サイクルは典型的にはホストバス１２０に接続された他のデバイスにより終了させられる。
【００１０】
ホストバスデバイス１１０、２１０及び４１０は、記憶装置１１１のコンテンツがホストバス１２０を介しアクセス可能となるようホストバス１２０に接続される記憶装置１１１を備えてもよい。記憶装置１１１の様々な実施形態として、システム設定空間またはＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に備えられたレジスタ２１６、２１８及び４１７、あるいはシステムＩ／Ｏまたはメモリアドレス空間に備えられたレジスタやデータポートが含まれてもよい。
【００１１】
ＰＣＩプロトコルは、ＰＣＩデバイスが備えられる各ＰＣＩバスのある個数のアドレス可能なスロットを提供する。ＰＣＩ−ＰＣＩブリッジは、２つのＰＣＩバス間の転送パスを提供するＰＣＩデバイスである。コンピュータプログラムは、典型的に、検出されたＰＣＩ−ＰＣＩブリッジの直後にある各ＰＣＩバスに一意的なバス番号を割り当てる。ＰＣＩバス番号とスロット番号の組み合わせは、設定空間を通じシステムにインストールされる任意のＰＣＩデバイスの選択のため、コンピュータプログラムにより利用されるユニークな識別子を提供する。ＰＣＩアドレッシング及びルーティングプロトコルは、一般に、あるＰＣＩデバイスがホスト−ＰＣＩブリッジと恐らく１つ以上のＰＣＩ−ＰＣＩブリッジを介し物理的にルーティングされ、ターゲットＰＣＩデバイスが備えられるＰＣＩバスにおけるサイクルを生成する物理階層バス構造を想定している。各ＰＣＩバスは、当該ＰＣＩバスとホストバスの間の物理的／仮想的データ転送パスにおける任意のＰＣＩバスの後方にあると定義される。
【００１２】
本明細書において、主（ｐｒｉｍａｒｙ）ＰＣＩバス１５０は、バス番号が０で、ホスト−ＰＣＩブリッジの直後のバスであるかもしれない。しかし、ＰＣＩバス１５０はまた、仮想ＰＣＩ装置１５０が後方に現れ、システムに複数の主ＰＣＩバスが存在するため、本発明による方法と適合したバス番号０の後方にある任意のＰＣＩバスであってもよい。さらに、主ＰＣＩバス１６０は実際のＰＣＩバスでもよいし、あるいは仮想的なものであってもよい。本明細書において、仮想的と論理的という２つの単語は、実際の物理的デバイスや構造を反映しない効果を有する１つ以上のプロセッサ１３０上で実行されるコンピュータプログラムの一面を指すものである。仮想ＰＣＩデバイス１６０は、論理的にはＰＣＩバス１５１にあり、主ＰＣＩバス１５０を拡張したもの、あるいはそれの下位のものの１つ（すなわち、主ＰＣＩバス１５０の後方にあるバス）である。
【００１３】
ホスト−ＰＣＩブリッジ１４０、２４０及び３４０は、選択されたホストバス１２０のサイクルの主ＰＣＩバス１５０及びそれの下位バス（ｓｕｂｏｒｄｉｎａｔｅ  ｂｕｓ）への解釈及びルーティングを容易にするかもしれない。ホスト−ＰＣＩブリッジ１４０、２４０及び３４０は、ホストバスインタフェース１４１、ＰＣＩバスインタフェース１４２、記憶装置１４５及び１４９、ホストバス１２０のサイクルを追跡する制御回路１４８を備え、各ホストバスサイクルに対し、当該ホストバスサイクルを実際の主ＰＣＩバス１５０にルーティングすべきかどうか判断するようにしてもよい。この判断のため、制御回路１４８は記憶装置１４５を参照し、主ＰＣＩバス１５０とその下位バスに割り当てられているアドレス空間を特定し、記憶装置１４９を参照し、仮想ＰＣＩデバイス１６０あるいは恐らく他の仮想デバイスに割り当てられているアドレス空間を特定する。記憶装置１４５と１４９は、バス番号、メモリアドレスレンジ、Ｉ／Ｏアドレスレンジあるいは他の同様の情報の形式で情報を保持している。記憶装置１４９における情報は、仮想ＰＣＩデバイス１６０（より複雑な設定では、仮想デバイスまたはバスのすべてあるいはその一部）に割り当てられているアドレスレンジを示すものであり、一般に、主ＰＣＩバス１５０及びそれの下位バスに割り当てられる記憶装置１４５におけるアドレス空間の一部であるかもしれない。仮想ＰＣＩデバイスを対象としたホストバスサイクルは、ホストバスデバイス１１０、２１０及び３１０による遮断が許されている。
【００１４】
ホストバス１２０がＰｅｎｔｉｕｍ３または４（登録商標）プロセッサを利用しているシステムでは、ホスト−ＰＣＩブリッジ１４０、２４０及び３４０は、すべてのホストバスサイクルに対し、ホストバスプロトコルに従いすべてのホストバスサイクルが完了したということを保証する応答装置であってもよく、ホストバスデバイス１１０は遮断を行う選択されたホストバスサイクルを要求してもよい。
【００１５】
仮想ＰＣＩデバイス１６０を対象とするホストバスサイクルの特定に必要な情報と、この情報の取得方法は、システムのバス構造に依存する。仮想ＰＣＩデバイス１６０の一意的なバスデバイス番号の組み合わせは、仮想ＰＣＩデバイス１６０が主ＰＣＩバス１５０上に論理的に設置されているシステム１００のホストバスデバイス１１０とホスト−ＰＣＩブリッジの両方に、ハードウェア的に組み込まれるか、あるいはソフトウェア的に予めプログラムされる。
【００１６】
システム１００、２００、３００及び４００が、複数のホストバスデバイス１１０、２１０及び４１０を備えること、あるいは各自がそこに統合された複数のホストバスデバイス１１０、２１０及び４１０を有する複数のプロセッサ１３０を備えることは、本発明による方法と適合している。本発明による方法は、各自が複数の仮想ＰＣＩデバイス１６０の１つと関連付けされる複数のホストバスデバイス１１０からなるシステム１００に適用することができる。複数の仮想ＰＣＩデバイス１６０の１つを対象としたホストバス１２０のサイクルは、ホスト−ＰＣＩブリッジ１４０により主ＰＣＩバス１５０に転送されず、ホストバスデバイス１１０の１つが当該サイクルの遮断を許される。複数のホストバスデバイス１１０が、仮想ＰＣＩデバイスに割り当てられているシステムリソースを利用できるよう当該仮想ＰＣＩデバイス１６０に関連付けされる。その反対に、１つのホストバスデバイス１１０が複数の仮想ＰＣＩデバイス１６０に関連付けされてもよい。さらに、ホストバスデバイス１１０はＰＣＩプロトコルに従い複数の昨日をサポートするよう構成されてもよい。複数のホストバスデバイス１１０が同一の仮想ＰＣＩデバイス１６０に対する遮断を行うことを防ぐための方策は、それに関連付けされた仮想ＰＣＩデバイス１６０を特定する一意的なバスデバイス番号の組み合わせにより、各ホストバスデバイス１１０をハードウェア的に組み込んだり、あるいはソフトウェア的に予めプログラムすることにより実行される。
【００１７】
図１ａは、プロセッサ１３０とのホストバスインタフェースとは異なるインタフェース１１２を介しホストバスに接続されるホストバスデバイス１１０を示す。図１ｂは、プロセッサ１３０とホストバスデバイス１１０が、内部バス１１３及び共有ホストバスインタフェース１１２を介しホストバス１２０に接続されている本発明による方法と適合した他の構成を示す。図１ｂのシステムは、ホストバスデバイス１１０とプロセッサ１３０を１つの回路パッケージに統合することにより構成されうる。
【００１８】
図２は、図１に示されたシステム１００の教示に従う本発明の一実施例を説明するシステム２００を示す。システム２００は、設定空間を介しアクセス可能な２５６の８ビット設定レジスタ２６８を有する、１つ以上のプロセッサ１３０において実行されるコンピュータプログラムの関し利用される仮想ＰＣＩデバイス１６０を備える。必要かつ関連性のある設定レジスタ２６８のみが実現される。ＰＣＩプロトコルによると、ユーザによる操作を必要とせず、システムマップ構成における仮想ＰＣＩデバイスを含む、コンピュータプログラムは仮想ＰＣＩデバイス１６０の検出、仮想デバイス１６０のシステムリソース要件を判断するためのベンダーとデバイスタイプの特定、完全なデバイス再配置の提供、バインディングの中断、インストール、設定及び起動を含む１つ以上の機能を達成するため、仮想設定レジスタ２６８へのアクセスを開始してもよい。
【００１９】
ホストバスデバイス２１０は、本実施例において、ＰＣＩに準拠する設定レジスタ２１８からなるホストバス記憶装置１１１を備えてもよい。必要かつ関連性のあるレジスタ２１８のみが実現される。モニタ回路１１４は、ホストバスサイクルを追跡し、ホストバスデバイス設定レジスタ２１８にアクセスするため遮断及びリダイレクトを行う仮想設定レジスタ２６８を対象とするホストバスサイクルを特定する。この結果、プロセッサ１３０上で実行されるコンピュータプログラムは、仮想ＰＣＩデバイス１６０の設定レジスタ２６８を対象とするホストバスサイクルを始動させることにより、ホストバスデバイス設定レジスタ２１８にアクセスすることができる。このように、ホストバスデバイス２１０は、一般に利用可能なシステムリソースにＰＣＩデバイスを割り当てる初期化及び設定処理に入る。
【００２０】
設定サイクルは、ＰＣＩプロトコルにより与えられた２つのマッピング機構の１つを通じ、システム２００において生成される。第１の機構は、典型的には、ホスト−ＰＣＩブリッジ２４０に含まれる設定アドレスレジスタ２４３と設定データレジスタ２４４のためにプロセッサＩ／Ｏスペースの２つの固定された場所が予約されるインデックス方式である。設定アドレスレジスタ２４３は、設定空間をイネーブルあるいはディスイネーブルにし、以降の設定サイクルが対象とするバス番号、デバイス番号、機能番号及びレジスタ番号を指定することにより、ＰＣＩデバイスと設定レジスタを特定するコンピュータプログラムにより書き込まれる。設定データレジスタ２４４を対象とした以降のＤＷＯＲＤリード・ライトホストバスサイクルは、典型的には、ホスト−ＰＣＩブリッジ２４０により、ＰＣＩに準拠した設定サイクルに変換およびルーティングされる。しかしながら、仮想ＰＣＩデバイス１６０の設置レジスタ２６８を対象としたホストバスサイクルは、ＰＣＩプロトコルにより予期されるように、ホスト−ＰＣＩブリッジ２４０によりルーティングされるよりも、ホストバスデバイス２１０により遮断される。
【００２１】
第１機構をサポートするシステム２００は、監視により取得された選択情報を保持する記憶装置１１５に含まれるミラーレジスタ２１６を備えてもよい。設定アドレスレジスタ２４３を対象としたホストバス１２０のライトサイクルは、ホストバスデバイス２１０により監視されてもよいし、監視されたサイクルで転送されるデータは設定アドレスレジスタ２４３のコンテンツを反映するミラーレジスタ２１６に格納されてもよい。モニタ回路１１４は、仮想設定レジスタ２６８にアクセスする設定データレジスタ２４４を対象とした以降のＤＷＯＲＤホストバス１２０のサイクルを特定するため、ミラーレジスタ２１６を参照してもよい。これらの特定されたサイクルは、ホストバスデバイス２１０により遮断され、ホストバスデバイス２１０の対応する設定レジスタ２１８にアクセスするためリダイレクトされる。
【００２２】
また、システム２００は、第２の機構をサポートするものであってもよい。この第２の機構では、典型的には、ホスト−ＰＣＩブリッジ２４０に配置される設定空間イネーブルレジスタ（図示せず）と転送レジスタ（図示せず）が、プロセッサＩ／Ｏアドレス空間における固定された場所にマップされる設定空間の４ｋバイトを指定するコンピュータプログラムにより書き込みされる。第２機構をサポートするよう設計されたシステム２００は、設定空間イネーブルレジスタ（図示せず）と転送レジスタ（図示せず）を対象とした検索されたホストバスライトサイクルを格納するミラーレジスタ２１６を備えてもよい。仮想デバイスの設定レジスタ２６８を対象としたホストバスサイクルを特定するため、ミラーレジスタ２１６がモニタ回路１１４により参照されてもよい。特定されたサイクルは、ホストバスデバイス２１０により遮断され、ホストバスデバイス２１０の対応する設定レジスタ２１８にアクセスするようリダイレクトされる。
【００２３】
ＰＣＩプロトコルに従って、設定レジスタは、割り込み、プロセッサメモリアドレス空間、プロセッサＩ／Ｏアドレス空間、及びＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に予約されたプロセッサメモリアドレス空間のレンジであるＲＯＭアドレス空間を含むシステムリソースの割当を実行するコンピュータプログラムにより利用されてもよい。コンピュータプログラムは、仮想ＰＣＩデバイス１６０のシステム要件を判断し、選択された設定レジスタ２６８への書き込みにより仮想ＰＣＩデバイス１６０にリソースを割り当てるため、存在しない仮想設定レジスタ２６８へのアクセスを開始してもよい。コンピュータプログラムはまた、致命的なエラーを処理すると共に、内蔵されている自己診断テスト（ＢＩＳＴ）の実行及びその状態の取得を行う仮想デバイスの設定レジスタ２６８にアクセスするようにしてもよい。
【００２４】
選択的には、ホストバスデバイス設定レジスタ２１８は、例えば、仮想ＰＣＩデバイス２６０に割り当てられるメモリ空間またはＩ／Ｏ空間の１つ以上のレンジである特定のシステムリソースのリクエストを示すよう実現されてもよい。内部記憶装置１１１の一部は、コンピュータプログラムにより、ホストバス１２０を介したアクセスのため当該アドレス空間にマップされてもよい。コンピュータプログラムによるアドレス空間の仮想ＰＣＩデバイス１６０への割当後、この選択的実施例において、モニタ回路１１４は、ホストバスサイクルが仮想ＰＣＩデバイス１６０に割り当てられるメモリあるいはＩ／Ｏ空間を対象としているかどうか特定するため、適当な設定レジスタ２１８を参照するようにしてもよい。これら特定されたサイクルは、ホストバスデバイス２１０により遮断され、ホストバス記憶装置１１１にアクセスするようリダイレクトされてもよい。
【００２５】
ホストバスデバイス２１０とホスト−ＰＣＩブリッジ２４０は、仮想ＰＣＩデバイス１６０のバス番号とデバイス番号を把握するようにしてもよい。このような情報は、ハードウェア的に組み込まれてもよいし、ソフトウェア的に予めプログラムされてもよいし、あるいはシステムの初期化においてプログラムにより提供されるようにしてもよく、仮想ＰＣＩデバイス１６０の設定空間を対象としたホストバスサイクルの特定に利用される。ホスト−ＰＣＩブリッジ２４０は、仮想ＰＣＩデバイス１６０に割り当てられたアドレス空間を指定する仮想設定レジスタ２６８を対象とする選択されたホストナスライトサイクルを監視することにより、仮想ＰＣＩデバイス１６０に割り当てられたアドレス空間を把握ようにしてもよい。
【００２６】
図３は、システム１００及び２００の教示に従う本発明の一実施例を説明するシステム３００を示す。システム３００は、設定空間にアクセスする第１機構を実現したものである。システム３００は、プロセッサ１３０上で実行されるコンピュータプログラムに対し、主ＰＣＩバス１５０上の配置として、そして主仮想ＰＣＩバス３５７へのブリッジとして利用される主仮想ＰＣＩ−ＰＣＩ（Ｐ−Ｐ）ブリッジ３７０から構成されてもよい。仮想ＰＣＩデバイス３６０は、プロセッサ１３０上で実行されるコンピュータプログラムに対して、主仮想バス３５７上の配置として利用されてもよい。
【００２７】
本実施例において、ホストバスデバイス２１０とホスト−ＰＣＩブリッジ３４０は共に、主仮想ＰＣＩ−ＰＣＩブリッジ３７０配置されているバス番号とデバイス番号を把握し、ホストバスデバイス２１０は仮想ＰＣＩデバイス３６０のデバイス番号を把握している。この情報は、初期化プログラムにより与えられてもよいし、ハードウェア的に組み込まれても、ソフトウェア的に予めプログラムされていてもよい。
【００２８】
ホスト−ＰＣＩブリッジ３４０は、本実施例において、例えば、プラグ・アンド・プレイ（登録商標）リソース割当プログラムのような、主ＰＣＩバス１５０にアドレス空間を割り当てるため、コンピュータプログラムにより書き込まれる、仮想デバイス１６０に割り当てられるすべてのアドレス空間を網羅する記憶装置１４９を備えてもよい。記憶装置１４９に格納される情報は、主ＰＣＩバス３５７の後方にある仮想バス（図示せず）のバス番号を含むものであってもよい。通常、バス番号は、主ＰＣＩバス３５７やその下位バスに割り当てられる設定空間を決定するのに十分な情報である。選択的に、記憶装置１４９には、主ＰＣＩバス３５７と下位バスに割り当てられるメモリ空間またはＩ／Ｏ空間が含まれてもよい。本実施例では、プラグ・アンド・プレイ（登録商標）プロトコルに従って、主ＰＣＩバス３５７に割り当てられたアドレス空間は、典型的には、選択的な下位バス（図示せず）と仮想ＰＣＩデバイス１６０に割り当てられたアドレス空間を網羅し、これにより、仮想ＰＣＩバス３５７と選択的な下位仮想バスを対象としたホストバスサイクルの特定のため、ホスト−ＰＣＩブリッジ３４０による容易かつ効率的復号化が可能となる。
【００２９】
ホスト−ＰＣＩブリッジ３４０は、主仮想ＰＣＩ−ＰＣＩブリッジ３７０の仮想設定レジスタ３７８を対象としたホストバスサイクルの特定、及びこれら特定されたサイクルのホスト−ＰＣＩブリッジ設定レジスタ３４７へのルーティングを実行するため、制御回路１４８により参照されるブリッジ設定レジスタ３４７を備えてもよい。本実施例において、制御回路１４８は、ホストバスサイクルを主ＰＣＩバス１５０にルーティングすべきか判断するため、ブリッジ設定レジスタ３４７及び記憶装置１４５と１４９を参照するようにしてもよい。
【００３０】
ホストバスデバイス２１０は、主仮想ＰＣＩ−ＰＣＩブリッジ３７０の設定レジスタ３７８を対象としたホストバスサイクルを生成し、コンピュータプログラムにより主仮想ＰＣＩバス３５７に割り当てられたバス番号を取得し、この情報を監視により取得される選択された情報を保持する記憶装置１１５に格納するようにしてもよい。１つのホストバスデバイス２１０のみを有するシステムは、デバイス番号を仮想ＰＣＩデバイス１６０に任意に割り当ててもよい。複数のホストバスデバイス２１０を有するシステムは、ハードウェア的に組み込まれててもよいし、ソフトウェア的に予めプログラムされてもよいし、初期化プログラムにより格納されてもよい一意的なデバイス番号（すなわち、スロット番号）を各ホストバスデバイス２１０に与えるなど、各ホストバスデバイス２１０を相異なる仮想ＰＣＩデバイス３６０に関連付けるための機構を要するかもしれない。
【００３１】
図４は、図３に示されるシステム３００の教示に従う本発明の一実施例を説明するためのシステム４００を示す。ホストバスデバイス４１０は、ホストバスデバイス２１０と３１０に対し与えられた説明に従うものであってもよい。システム４００は、設定空間にアクセスする第１機構を実現するものである。システム４００はさらに、副（ｓｅｃｏｎｄａｒｙ）仮想ＰＣＩバス４５１に直接接する副仮想ＰＣＩ−ＰＣＩブリッジ４９０を備える。副仮想ＰＣＩ−ＰＣＩブリッジ４９０は、プロセッサ１３０上で実行されるコンピュータプログラムの観点から、主仮想ＰＣＩバス上の配置に利用され、仮想ＰＣＩデバイス１６０は副仮想ＰＣＩバス４５１に論理的に配置されてもよい。
【００３２】
副仮想バス４５１は、主仮想ＰＣＩバス３５７に従属し、本実施例では、副仮想バス４５１と仮想ＰＣＩデバイス１６０に割り当てられるアドレス空間は、主仮想ＰＣＩバス３５７に割り当てられるアドレス空間内にある。ホスト−ＰＣＩブリッジ３４０は、主ＰＣＩバス１５０とその下位バスを対象とするホストバスサイクルの特定及びルーティングのため記憶装置１４５を参照し、主仮想バス３５７とその下位バスを対象とするホストバスサイクルの特定のため記憶装置１４９を参照する。主仮想バス３５７とその下位バスを対象とするホストバスサイクルは、主ＰＣＩバス４５０に転送されず、ホストバスデバイス４１０による遮断が許可される。ホスト−ＰＣＩブリッジ３４０は、ホストバスプロトコルに従い、遮断したホストバス４３０のサイクルを完了（すなわち終了）させることができる。
【００３３】
ホストバスデバイス４１０は、ホストバスに接続され、プロセッサ１３０にアクセス可能な記憶装置１１１を備えてもよい。記憶装置１１１は、仮想ＰＣＩデバイス１６０の設定レジスタ２６８を対象とするホストナスサイクルによりアクセスされるデバイス設置レジスタ２１８を備えてもよい。さらに、記憶装置１１１は、仮想副ＰＣＩ−ＰＣＩブリッジ４９０の仮想設定レジスタ４９７を対象としたホストバスサイクルによりアクセスされるブリッジ設定レジスタ４１７を備えてもよい。
【００３４】
本実施例では、システム３００と同様に、ホストバスデバイス４１０とホスト−ＰＣＩブリッジ３４０は、主仮想ＰＣＩ−ＰＣＩブリッジ３７０が配置されるバス番号とデバイス番号を把握している。この情報は、初期化プログラムにより提供されてもよいし、ハードウェア的に組み込まれていてもよいし、ソフトウェア的に予めプログラムされていてもよい。さらに、本実施例において、ホストバスデバイス４１０は、主仮想ＰＣＩ−ＰＣＩブリッジ３７０の設定レジスタ３７８を対象としたホストバスサイクルを監視することによって、主仮想ＰＣＩバス３５７とその下位バスに割り当てられたバス番号を取得してもよい。単一のホストバスデバイス４１０からなるシステム４００では、副仮想ＰＣＩ−ＰＣＩブリッジ４９０のデバイス番号は任意に割り当てることができる。
【００３５】
複数のホストナスデバイス４１０からなるシステムでは、例えば、関連付けされた副仮想ＰＣＩ−ＰＣＩブリッジ４９０の一意的なデバイス番号を各ホストバスデバイス４１０に割り当てるような、各ホストバスデバイスを相異なる副仮想ＰＣＩ−ＰＣＩブリッジ４９０に関連付けるための機構が必要となり、この割り当ては、ハードウェア的に組み込まれてもよいし、ソフトウェア的に予めプログラムされてもよいし、あるいは初期化プログラムにより実行されてもよい。各ホストバスデバイス４１０は、コンピュータプログラムによる書き込み後、関連付けされている副仮想ＰＣＩ−ＰＣＩブリッジの直後の副仮想バス４５１に割り当てられているバス番号を決定するため、その内部設定レジスタ４１７を参照し、各仮想ＰＣＩデバイス４６０にデバイス番号を任意に割り当てる。この情報は、システム１００に関して説明された方法と同様にして、仮想ＰＣＩデバイス１６０を対象としたホストバスサイクルの特定のため、モニタ回路１１４により参照されてもよい。各ホストバスデバイス４１０は、各々がそれに関連付けされた副仮想ＰＣＩバス４５１に論理的に配置される相異なる仮想デバイス１６０と関連付けされている複数の物理的なデバイスを備えてもよい。プラグ・アンド・プレイ（登録商標）プログラムは、典型的には、各副仮想ＰＣＩ−ＰＣＩブリッジ４９０の後方に配置されたすべての仮想デバイス１６０に割り当てられるリソースを分類し、その結果、遮断されるサイクルの特定のため各ホストバスデバイス４１０によるホストバスサイクルの復号化が容易になる。例えば、単一のメモリアドレスレンジが、各デバイスに割り当てられた複数のレンジを網羅する副仮想ＰＣＩ−ＰＣＩブリッジ４９０に割り当てられてもよい。
【００３６】
図５は、システム１００、２００、３００及び４００により利用され、モニタ回路１１４により実行される本発明による方法５００を説明するフロー図を示す。スタートステップ５１０は、記憶装置とレジスタにデフォルト値を設定するホストバスのリセットである。各ホストバスサイクルに対し、以下の各ステップが実行される。獲得ステップ５２０は、ホストバスサイクルを待機し、カレントホストバスサイクルの対象を示す選択されたホストバスアドレスと制御信号の受信及びラッチングに関する処理である。次の評価ステップ５４０は、獲得した各サイクルを評価し、遮断ステップ５５０に進むか、監視ステップ５６０に進むか判断する。監視ステップ５６０は、選択されたホストバスデータ信号の受信及び格納に関する処理である。評価ステップ５５０は、獲得した各サイクルを評価し、カレントサイクルに対し処理を行わず、ステップ５２０に進み、次のホストバスサイクルを獲得するか、あるいはサイクルの遮断ステップ５８０に進み、ホストバス記憶装置１１１内の適当な場所にアクセス（すなわち、読み出し、または書き込み）するため、カレントホストナスサイクルをルーティングさせるかどうか判断する。ステップ５４０と５５０はパラレルに実行されてもよいし、何れか一方が先行して実行されてもよい。
【００３７】
図６ａ及び図６ｂは、図４に示されたシステム４００のモニタ回路１１４により実行される方法６００を説明するフロー図を示す。スタートステップ６１０及び獲得ステップ６２０は、それぞれステップ５１０と５２０に関する説明と同様である。評価ステップ５４０及び監視ステップ５６０は、ステップ６４１、６４２、６６２及び６６４によりなされる。同様に、評価ステップ５５０及び遮断ステップ５８０は、ステップ６４３、６４４、６４５、６８２、６８４及び６８６によりなされる。評価ステップ６４１〜６４５はホストバスサイクルのアドレス段階において実質的にパラレルに実行され、監視ステップ６６２と６６４、あるいは遮断ステップ６８２、６８４と６８６が実行される場合、当該監視あるいは遮断ステップはホストバスサイクルのデータ段階において実行される。監視されたサイクルは、ホストバスデバイス４１０以外のデバイスにより完了させられ（例えば、終了させられ）、遮断されたサイクルはホストバスデバイス４１０により完了させられる。
【００３８】
評価ステップ６４１では、獲得されたカレントホストバスサイクルが設定アドレスレジスタ２４３を対象としているか評価される。肯定的に評価されると、ステップ６６２に進み、獲得されたカレントサイクルにより転送されるデータが監視され、このデータの一部あるいは前部がミラーレジスタ２１６に格納される。否定的に評価されると、ステップ６４２に進む。
【００３９】
評価ステップ６４２では、獲得されたホストバスサイクルが、主仮想ＰＣＩ−ＰＣＩブリッジ３７０にバス番号を割り当てるため、特定の仮想設定レジスタ３７８を対象としているかどうか評価される。この評価が肯定されるには、（ミラーレジスタ２１６のコンテンツにより反映されるような）設定アドレスレジスタ２４３が、設定空間がイネーブルであることを示す値と、主仮想バス３５７に割り当てられるバス番号を指定する主仮想ＰＣＩ−ＰＣＩブリッジ３７０の設定レジスタ３７８を現在指定している値を有することが要求される。また、肯定的な評価には、獲得されたサイクルが設定データレジスタ２４４を対象にしたリード／ライトホストバスサイクルであることが要求される。ステップ６４２において肯定的な評価がなされると、監視ステップ６６４に進み、カレントサイクルで転送される一部あるいはすべてのホストバス１２０のデータが記憶装置１１５にラッチ及び格納される。
【００４０】
評価ステップ６４３では、カレントサイクルが副ＰＣＩ−ＰＣＩブリッジ４９０の設定空間を対象としているかどうか評価される。この評価が肯定されるには、（ミラーレジスタ２１６のコンテンツにより反映されるような）設定アドレスレジスタ２４３が、設定空間がイネーブルであることを示す値と、副ＰＣＩ−ＰＣＩブリッジ４９０の設定レジスタ４９７を現在指定している値を有することが要求される。また、肯定的な評価には、獲得されたサイクルが設定データレジスタ２４４を対象としたリード／ライトホストバスサイクルであることが要求される。ステップ６４３において肯定的な評価がなされると、遮断ステップ６８２に進み、カレントホストバスサイクルが副仮想ＰＣＩ−ＰＣＩブリッジ４９０の設定レジスタ４１７にルーティングされる。ここで、評価される設定レジスタ４１７は、ミラーレジスタ２１６の現在のコンテンツにより決定される。
【００４１】
評価ステップ６４４では、獲得したホストバスサイクルが仮想ＰＣＩデバイス１６０の設定空間を対象としているかどうか評価される。この評価が肯定されるには、（ミラーレジスタ２１６のコンテンツにより反映されるような）設定アドレスレジスタ２４３が、設定空間がイネーブルであることを示す値と、仮想ＰＣＩデバイス１６０の設定レジスタ２６８を現在指定している値を有することが要求される。また、獲得されたサイクルが設定データレジスタ２４４を対象にしたリード／ライトホストバスサイクルであることが要求される。ステップ６４４において肯定的な評価がなされると、遮断ステップ６８４に進み、ミラーレジスタ２１６のコンテンツにより示されるように、ホストバス設定レジスタ２１８にアクセスするようカレントホストバスサイクルはルーティングされる。
【００４２】
評価ステップ６４５では、獲得されたホストバスサイクルが、コンピュータプログラムにより仮想ＰＣＩデバイス１６０に割り当てられたメモリまたはＩ／Ｏアドレス空間を対象としているどうかが評価される。仮想ＰＣＩデバイス４６０に割り当てられたメモリあるいはＩ／Ｏ空間を特定する設定レジスタ２１８が以前に設定されていない場合、評価結果は常に否定的なものとなる。ＰＣＩ設定レジスタ２１８の現在のコンテンツにより決定されるように、仮想ＰＣＩデバイス１６０に割り当てられたアドレス空間が、獲得されたホストバスサイクル情報と比較される。カレントホストバスサイクルの対象が仮想ＰＣＩデバイス１６０に割り当てられたアドレス空間内のものである場合、ステップ６８６に進み、獲得されたホストバスサイクルのアドレス及び制御信号により示されるように、カレントホストバス４２０のサイクルが適当な内部記憶装置１１１にルーティングされる。
【００４３】
ここで説明された機能が、本発明の意図を留める限り、説明された以外の物理的デバイスにおいて実現されうるということは当業者には理解されるであろう。
【００４４】
本発明はＰＣＩシステムに適用したものとして説明されてきたが、ここで教示された方法は、ホストバス及び（ＰＣＩに準拠したバスに類似の）周辺バスを有する任意のシステムにより利用可能であり、システムのプロセッサ上で実行されるコンピュータプログラムに対し、周辺バスにおける配置として利用されるホストバスに接続されたデバイスを備えることにより効果が得られるということは当業者には理解されるであろう。
【図面の簡単な説明】
【００４５】
【図１ａ】図１ａは、本発明によるシステム構成を示す。
【図１ｂ】図１ｂは、本発明によるシステム構成を示す。
【図２】図２は、さらなる詳細なシステム構成を示す。
【図３】図３は、主仮想ブリッジを備えたシステムを示す。
【図４】図４は、主仮想ブリッジと副仮想ブリッジを備えたシステムを示す。
【図５】図５は、本発明の一例となる方法のフロー図を示す。
【図６ａ】図６ａは、本発明の一例となる方法のフロー図を示す。
【図６ｂ】図６ｂは、本発明の一例となる方法のフロー図を示す。
【図１ａ】
0004657602.tif 000002
【図１ｂ】
0004657602.tif 000003
【図２】
0004657602.tif 000004
【図３】
0004657602.tif 000005
【図４】
0004657602.tif 000006
【図５】
0004657602.tif 000007
【図６ａ】
0004657602.tif 000008
【図６ｂ】
0004657602.tif 000009