説明

PCIデバイス用PCIメモリ空間の確保

実施形態は、PCI(Peripheral Component Interconnect)デバイス用にメモリ空間を確保する方法、装置、システムを含む。1実施形態は、PCIスイッチ又はPCIブリッジを介してホストコンピュータに接続している周辺機器を判定し、次にPCIスイッチ又はPCIブリッジに接続しているとして、仮想デバイスを提示する方法を含む。バス番号及びメモリを仮想デバイス用に確保して、ホストコンピュータにホットプラグしたPCIデバイスに割当てる。

【発明の詳細な説明】
【背景技術】
【0001】
PCI(Peripheral Component Interconnect)規格は、周辺機器をマザーボードに取付けるためのコンピュータバスについて規定するものである。PCI仕様では、バスの物理的属性、電気特性、バスタイミング、通信プロトコル等について記載している。PCI−SIG(PCI Special Interest Group)が、様々なPCIアーキテクチャに関する仕様を、維持、管理している。
【0002】
コンピュータを立ち上げると、PCI列挙期間となる。この間、コンピュータのPCI列挙ソフトウェアが、インストールされた周辺機器全てと、それらが必要とするメモリ空間のリストをコンパイルする。つまり、コンピュータが、どの周辺機器がPCIバスに接続されているかを判定する。次に、そのソフトウェアが、インストールされたデバイス全てに対して空間を割当てるメモリマップを作成する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
作成されるメモリマップは、将来的なデバイス用の隙間もないほど密に詰まっているかも知れない。更に、このPCIバスの番号付けで、列挙完了後に接続するデバイス用にはPCIバスが残っていない可能性もある。これは、ホットプラグデバイス対応可能なシステムにとって問題となる。具体的には、メモリマップ及びPCIバスの番号付けを、列挙後にホットプラグするデバイス用の空間を含むよう変更するのが、厄介な場合がある。コンピュータシステムによっては、デバイスをホットプラグした後に、ホストがシステムを再列挙する必要が出てくる。
【課題を解決するための手段】
【0004】
例示的な実施形態は、PCIデバイス用のPCIメモリ空間を確保する方法、システム、及び装置に関する。1実施形態では、コンピュータが起動し、PCI列挙が開始された後に、ホットプラグするPCIデバイス用にメモリ空間を確保する。
【0005】
例示的な1実施形態では、ホットプラグ能力はあるが接続デバイスを有さない下流ブリッジにより、下流ブリッジ後方のバスに仮想デバイスを提示する。これらの仮想デバイスは、後付けする可能性があるデバイスのために「ダミー」メモリを要求する。デバイスをホットプラグしたなら、下流ブリッジはもう仮想デバイスを提示しなくなる。仮想デバイスが初めに要求した「ダミー」メモリ空間は、その結果使用可能となり、ホットプラグしたデバイスに割当てられる。更に、仮想デバイスに割当てたPCIバスが、ホットプラグしたデバイスに対して使用可能になる。
【0006】
1実施形態では、ホストが最初に立ちあがる際に、該ホストと物理デバイスとの間のブリッジが仮想デバイスとして表示する該物理デバイスを、該ホストは認識又は検出する。また、仮想デバイスとして表示された物理デバイスをブリッジにホットプラグする今後のためにブリッジが作成した予約場所である、ダミーの仮想デバイスを、ホストが認識する。新たなデバイスを物理的に取付けるのに、必ずしもブリッジに接続する必要はない。
【図面の簡単な説明】
【0007】
【図1】例示的な実施形態による、仮想PCIデバイス用にPCIバス番号及びメモリ空間を確保し発行するコンピュータシステムのブロック図である。
【図2】例示的な実施形態による、仮想PCIデバイス用にPCIバス番号及びメモリ空間を確保するためのフローチャートである。
【図3】例示的な実施形態による、確保したPCIバス番号及びメモリ空間を、ホットプラグしたPCIデバイスに発行するフローチャートである。
【発明を実施するための形態】
【0008】
図1は、例示的な実施形態による、仮想PCIデバイス用のPCIバス番号及びメモリ空間を確保し発行するコンピュータシステム100のブロック図である。説明のために、PCI Expressアーキテクチャを用いてコンピュータシステムを示すが、例示的な実施形態は、如何なる特定タイプのPCIアーキテクチャにも限定するものではない。
【0009】
図1は、単一ファブリックのインスタンス又は階層を示しており、このインスタンス又は階層は、ルートコンプレックス、複数のエンドポイント(例えば、入出力(I/O)デバイス)、スイッチ、PCI Express−to−PCI/PCI−Xブリッジを含み、全てがPCI Expressバス又はリンクを介して相互接続されている。具体的には、ルートノード、計算ノード又はホストコンピュータ110は、1つ又は複数のスイッチ130(説明の便宜上1つのスイッチを示したが)を介して、複数のPCI Expressのエンドポイント120に、接続している。ルートノードは、様々なデバイス(エンドポイント又はエンドノード、ブリッジ、スイッチ等)に、PCI Express又はリンク160を介して、接続している。1実施形態では、1つ又は複数のPCI Expressのエンドポイント120を、スイッチ130に物理的に接続する。他の実施形態では、1つ又は複数のPCI Expressのエンドポイント120を、スイッチ130からばらす。つまり、エンドポイント120を、物理的にポート170Bに接続せず、ばらしている。
【0010】
ルートノード110は、CPU140と、メモリ145と、ホストバス155を介して接続したルートコンプレックス150を含む。ルートコンプレックス150は、様々な仮想PCI Expressのエンドポイント125と、PCI Express−to−PCI/PCI−Xブリッジ165と、スイッチ130に、別々のPCI Expressバス160を介して、接続する。PCI Express−to−PCI/PCI−Xブリッジ165により、PCI ExpressファブリックとPCI/PCI−X階層との接続を提供する。
【0011】
ルートコンプレックス(RC)150は、CPU/メモリサブシステムをI/Oデバイスに接続するI/O階層のルートを表す。ルートコンプレックスにより、1つ又は複数のポートをサポートできる。
【0012】
各インタフェースにより、別々の階層ドメインを定義し、各階層ドメインは、単一のエンドポイント或は、1つ又は複数のスイッチコンポーネント及びエンドポイントを含有するサブ階層を含む。階層ドメイン間でのピアツーピア(P2P)トランザクションをルートコンプレックス経由でルーティングする能力は、任意であって、実装次第とする。例えば、実装には、ソフトウェア透過的にピアツーピア(P2P)を完全にサポート可能にするよう、ルートコンプレックス内部に実際の又は仮想スイッチを含むことができる。
【0013】
ルートコンプレックス150により、以下の1つ又は複数を機能させる又はサポートすることができる:リクエスタとしてコンフィグレーション要求の生成をサポートすること;リクエスタとしてI/O要求の生成をサポートすること;リクエスタとしてロック要求の生成をサポートすること。
【0014】
エンドポイントは、仮想エンドポイントと実際のエンドポイント即ち物理エンドポイントの両方を含む。物理又は実際のエンドポイントは、それ自体又は異なる非PCIデバイス(PCIデバイス又はホストCPU以外)、例えばPCI Expressに接続したグラフィックスコントローラ、PCI Express−USBホストコントローラ等又は他のI/Oデバイス(ディスクドライブ等)のためにPCIトランザクションのリクエスタ又はコンプリータになれるデバイス又はデバイス群である。対照的に、仮想エンドポイントは、コンピュータシステムに実際に物理的に提示及び/又は接続されないデバイスである。従って、ホスト110は、物理デバイスがコンピュータシステムのスロット/ポートに接続されていると検出する又は信じるが、実は、物理デバイスは実際には全く存在してはいない。
【0015】
図示するように、スイッチ130は、複数のポート170と複数の仮想PCI−PCIブリッジ175を含む。説明のために、スイッチ130を、1つの上流ポート170Aと3つの下流ポート170Bと共に示している。スイッチは、1つ又は複数の物理エンドポイント120及び仮想エンドポイント125と、PCIリンク160を介して接続する。
【0016】
スイッチは1つ又は複数の以下のルールに従う:各スイッチは、設定ソフトウェアに2つ以上の論理的なPCI−to−PCIブリッジとして現れること;スイッチは、トランザクションをPCIブリッジメカニズム(アドレスに基づくルーティング)を用いて送ること;スイッチは、各種のトランザクションレイヤパケットをポート組間で送ること。
【0017】
1実施形態では、各PCI Expressリンク160を、仮想PCI−to−PCIブリッジ構造を通してマッピングし、各PCI Expressリンク160は、それと関連する論理PCIバスを有する。仮想PCI−to−PCIブリッジ構造を、PCI Expressのルートコンプレックスポート、スイッチの上流ポート、又はスイッチの下流ポートの一部とすることができる。ルートポートを、PCI Express階層ドメインがPCIルートコンプレックスから始まる仮想PCI−to−PCIブリッジ構造とする。各デバイスが特定のデバイス番号に応答するように、デバイスをコンフィグレーション空間にマッピングする。
【0018】
1実施形態では、ホスト110が最初に立ちあがる際に、ホストとデバイスとの間のブリッジ又はスイッチ(即ち、スイッチ130)が仮想デバイス(即ち、仮想PCI Expressのエンドポイント125)として表示する物理デバイスを、ホストが認識又は検出する。また、ホストは、仮想PCI Expressのエンドポイント125も、物理的に接続したデバイスと認識する。しかしながら、これらのデバイスは、仮想デバイスとして表示された物理デバイスをブリッジにホットプラグする今後のために、スイッチ130が作成した予約場所であり、実際にはダミーの仮想デバイスである。
【0019】
図2は、例示的な実施形態による、仮想PCIデバイス用にPCIバス番号及びメモリ空間を確保するためのフローチャートである。
【0020】
ブロック200によると、ホストコンピュータ又はルートノードが起動する。例えば、ホストをオンにする、或は再起動する。
【0021】
ブロック210によると、ホストがPCI列挙を実行する。コンピュータが始動した後に、PCI列挙期間が始まる。その間に、コンピュータのPCI列挙ソフトウェアが、インストールされた周辺機器全てとそれらが必要とするメモリ空間リストをコンパイルする。つまり、コンピュータにより、どの周辺機器が実際に又は物理的にPCIバスに接続されているかを判定する。
【0022】
1実施形態では、コンピュータを立ち上げる前に、コンピュータはオペレーションシステム(OS)にアドレスマップを構築する。列挙ソフトウェアにより、システムにどれ程のメモリ容量があるか、システムのI/Oコントローラがどれ程のアドレス空間を必要とするかを、判定する。このマップ(PCIリソース割当てマップと呼ばれることが多い)を、起動時にどのアドレスをPCIスロットのカード及び/又はI/Oコントローラと相互作用するよう割当てるかを示すアドレスマップとする。
【0023】
ブロック220によると、ホストはPCIバスに接続しているデバイスのリストを取得する。例えば、ホストは、システムに接続している物理又は実際のエンドポイント(図1に示したPCI Expressのエンドポイント120等)のリストを受信する。
【0024】
ブロック230によると、仮想エンドポイントを、実際の物理エンドポイントとして、ホスト又は計算ノードに提示する。これにより、ホストはブロック240による2つの機能を実行する。第1の機能として、ホストは、下流ブリッジ後方にあるバスのバス番号を確保する。第2の機能として、ホストは、仮想デバイス用に線形メモリマップでメモリを確保する。
【0025】
こうして、ホストは、コンピュータシステムにインストールされたデバイス及び仮想デバイス全てに空間及びバス番号を割当てるメモリマップを作成する。メモリマップは、まだPCIバスに接続されていない任意の将来的なデバイス(例えば、PCIホットプラグ可能なデバイス)が使用可能な空間を含む。更に、PCIバス番号付けには、まだPCIバスに接続されていない任意の将来的なデバイスが使用可能な番号も含む。
【0026】
図3は、例示的な実施形態による、確保したPCIバス番号及びメモリ空間を、ホットプラグしたPCIデバイスに発行するフローチャートである。
【0027】
ブロック300によると、1つ又は複数のデバイスをコンピュータシステムにホットプラグする。例えば、エンドポイントをPCIブリッジ又はスイッチにホットプラグする。図1は、列挙後に実際の物理デバイスをスイッチ130に差し込み又は取付けできるPCI Expressの仮想エンドポイント125の例について、示している。
【0028】
ブロック310によると、ホストが新たに追加されたデバイス又はエンドポイントを発見する。デバイスをポート又はスロットにホットプラグしたなら、仮想デバイスはもうホストに提示されない。つまり、実際の物理デバイスがその時点で接続されているので、下流ブリッジは、ブリッジに接続されているものとして仮想デバイスを提示しなくなる。
【0029】
次に、ブロック320によると、ホストは新たに追加されたデバイスを、列挙中に仮想デバイス用に予め割当てた1つ又は複数のバス番号及びメモリに基づきセットアップする。例えば、ホストは、ポート又はスロットに割当てたバス番号をデバイスに提供し、対応するメモリ空間をそのポート又はスロット用に提供する。
【0030】
デバイスがバス番号及びメモリ空間を備えたなら、デバイスは、ブロック330により、ポート又はスロットで使用可能になる。ホストは、この時点で別のポート又はスロットで別の新たなホットプラグデバイスに対応できる状態となり、その後ブロック300に戻る。
【0031】
このプロセスにより、ホットプラグデバイスに対応可能なシステムに関する問題を解決できる。具体的には、新たなデバイスを追加した際に、メモリマップには新たに追加したホットプラグデバイス用の未使用又は使用可能な空間を既に含んでいるため、メモリマップを変更しなくて済む。そのため、コンピュータシステムでは、デバイスをホットプラグした後に、システムを再立ち上げ又は再起動する必要がない。従って、例示的な実施形態により、ホストを完全に再列挙する必要無く、共有I/Oシステムにおいてデバイスをホットプラグ可能となる。
【0032】
定義:本明細書及び特許請求の範囲では、次の単語及び用語を以下の通り定義する。
【0033】
単語「ブリッジ」は、同じプロトコル(例えば、イーサネット又はトークンリング)(イーサネットは登録商標)を用いて、2つのローカルエリアネットワーク(LAN)又はLANセグメントを接続するデバイスを意味する。例えば、ブリッジを、PCI/PCI−Xセグメント又はPCI Expressポートを内部コンポーネント相互接続部と又は別のPCI/PCI−Xバスセグメント若しくは別のPCI Expressポートと仮想的に或は実際に接続する機能とする。
【0034】
用語「コンフィグレーション空間」は、PCIアーキテクチャ内のアドレス空間を意味する。コンフィグレーション空間のアドレスを有するパケットを使用して、デバイス内の機能(即ち、アドレスエンティティ)を構成する。
【0035】
単語「下流」は、相互接続/システム要素(ポート/コンポーネント)の相対的な位置でルートコンプレックスから遠い位置を意味する。例えば、上流ポートではないスイッチのポートは、下流ポートとなる。ルートコンプレックスの全ポートは下流ポートとなる。このように、下流は、情報がルートコンプレックスから流れる情報流の方向も含む。
【0036】
単語「エンドポイント」又は「エンドノード」は、異なるルールセットに従い動作するデバイス(アドレス可能な電子的エンティティ)又はデバイス群を意味する。
【0037】
単語「ホットプラグ」、「ホットスワップ」等は、機械又はシステムの電子部品を継続動作させながら、取外し、交換できる能力を意味する。例えば、ホットスワップにより、1つ又は複数のデバイス(例えば、ハードドライブ)を、該デバイスを配置しているブレード全体又はエンクロージャの動作に影響を与えずに、交換或は修理可能となる。例えば、故障した場合に、個々のハードドライブをブレードから取外して、新たな又は異なるハードドライブと交換する。ブレードの継続動作を中断せずにエンクロージャ内に残したまま、新しいハードドライブをブレードに接続できる。
【0038】
頭字語「PCI」は、Peripheral Component Interconnect(ペリフェラル コンポーネント インターコネクト)を意味する。PCI仕様には、バスの物理的属性、電気特性、バスタイミング、通信プロトコル等について記載されている。PCI−SIG(PCI Special Interest Group)が、様々なPCIアーキテクチャに関する仕様を、維持、管理している。
【0039】
単語「ポート」は、コンポーネントとリンクとの間のインタフェース(即ち、2デバイス間の通信経路)を論理的に意味し、リンクを定義するチップに配設した送受信機群を物理的に意味する。
【0040】
用語「ルートコンプレックス」は、ホストブリッジ及び1つ又は複数のポートを含むデバイス又はデバイス群を意味する。例えば、ホストコンピュータは、ルートコンプレックスである、PCIとホストをブリッジする機能を有する。ルートコンプレックスにより、CPUバス(ハイパートランスポート等)とPCIバスとの間にブリッジを提供する。
【0041】
用語「ルートノード」は、ホストコンピュータ、コンピュータシステム、又はサーバを意味する。
【0042】
単語「スイッチ」は、2つ以上のポートを接続して、パケットをポートからポートにルーティング可能にするデバイス又はデバイス群を意味する。設定ソフトウェアには、スイッチは、仮想のPCI−to−PCIブリッジ群として現れる。
【0043】
単語「仮想」は、実在しないことを意味し、単なる概念的なもの(例えば、物理デバイス)を、物理的に実在するものと区別する。一例としては、事実上物理エンドポイントをバスに実際に接続していない場合に、ホストは、仮想エンドポイントを物理エンドポイントと見做し、検知する(想像上のデバイスだが、ホストが検出又は存在すると信じるデバイス)。仮想の反対は、実在又は物理的である。
【0044】
単語「上流」は、相互接続/システム要素(ポート/コンポーネント)の相対的な位置でルートコンプレックスにより近い位置を意味する。例えば、トポロジ的にルートコンプレックスに最も近いスイッチのポートを、上流ポートとする。例えば、エンドポイントのみを含むコンポーネントのポートを、上流ポートとする。上流には、情報がルートコンプレックスへと流れる情報流の方向も含む。
【0045】
例示的な1実施形態では、本明細書で記述した1つ又は複数のブロック又はステップを自動化する。つまり、装置、システム、及び方法は自動的に起動する。本明細書では、用語「自動化した」又は「自動的に」(及びこれらに類する用語)は、人間の介入、観察、取組み、決定の必要なく、コンピュータ及び/又は機械装置/電気装置を使用して、装置、システム、及び/又はプロセスを制御動作させることを意味する。
【0046】
本発明の例示的な実施形態による方法は、例として提供するもので、本発明の範囲内で他の実施形態を限定すると解釈すべきものではない。例えば、図のブロック又は数字((1)、(2)等)は、特定の順序で進めねばならないステップとして、解釈すべきではない。更なるブロック/ステップを追加してもよく、幾つかのブロック/ステップを除去したもの、又はブロック/ステップの順序を変更したものも、依然として本発明の範囲内とする。更に、各図面中に記述した方法又はステップを、他の図面に加える、或は他の図面の方法又はステップと交換することもできる。更にまた、特定のデータ数値(特定の量、数、カテゴリ等)又は他の特定情報は、例示的な実施形態を記述するのに説明したように、解釈すべきである。そうした特定情報は、本発明を限定するために提供したものではない。
【0047】
本発明による様々な実施形態では、実施形態を、方法、システム及び/又は装置として実行する。1例として、例示的な実施形態及びそれに関連するステップを、本明細書に記載した方法を実行する1つ又は複数のコンピュータソフトウェアプログラムとして実行する。ソフトウェアを、1つ又は複数のモジュール(コードサブルーチン、又はオブジェクト指向プログラミングで「オブジェクト」とも呼ぶ)として実行する。ソフトウェアの格納先は、個々の代替実施形態によって異なる。例えば、コンピュータ又はサーバの1プロセッサ又は複数のプロセッサが、CD−ROMドライブ、又はハードドライブ等の一種の長期記憶媒体から、ソフトウェアのプログラミングコードにアクセスする。ソフトウェアのプログラミングコードを、データ処理システムで使用するあらゆる既知の各種媒体や、ディスク、ハードドライブ、CD−ROM、ROM等を含む、半導体、磁気装置、光学デバイスといった記憶装置に、具現又は保存する。このコードを、そうした媒体で配信する、又はこのコードをユーザに、1コンピュータシステムのメモリ又はストレージから、何らかのネットワークを介して、他のコンピュータシステムに、かかる他のシステムのユーザが使用するために、配信する。或は、プログラミングコードを、メモリに具現し、このコードにプロセッサがバスを使用してアクセスする。ソフトウェアのプログラミングコードを、物理媒体のメモリに具現する、及び/又はソフトウェアコードをネットワークを介して配信する方法は、既知であり、本明細書では詳細には説明しない。
【0048】
以上の記述は、本発明の原理及び様々な実施形態の例示を意図するものである。上記開示を完全に理解したなら、多くの変形例及び変更例が当業者には明らかになろう。以下の請求項は、そうした変形例及び変更例全てを包含すると解釈されるものとする。

【特許請求の範囲】
【請求項1】
PCI(Peripheral Component Interconnect)スイッチ又はPCIブリッジを介して実際にホストコンピュータに接続されている周辺機器のリストを確立し、
前記PCIスイッチ又は前記PCIブリッジに接続されているとして仮想デバイスを提示し、
前記仮想デバイス用にバス番号及びメモリを確保し、
前記バス番号及び前記メモリを、前記ホストコンピュータにホットプラグしたPCIデバイスに、割当てること、
を含む、方法。
【請求項2】
PCIデバイスが下流ブリッジに接続されているとして、前記下流ブリッジを前記ホストコンピュータに提示することを更に含み、前記下流ブリッジに接続された前記PCIデバイスを前記仮想デバイスとする、請求項1に記載の方法。
【請求項3】
前記ホストコンピュータの列挙プロセス中にメモリを要求することを更に含み、前記要求されるメモリを前記仮想デバイス用とする、請求項1に記載の方法。
【請求項4】
仮想デバイスを前記ホストコンピュータに提示するのを、実際のデバイスを前記仮想デバイスが提示されたポート又はスロットにホットプラグした後に、中止することを更に含む、請求項1に記載の方法。
【請求項5】
予め仮想デバイスに割当てたメモリ空間を、前記ホストコンピュータにホットプラグした前記PCIデバイスの1つに割当てることを更に含む、請求項1に記載の方法。
【請求項6】
予め仮想デバイスに割当てたメモリ空間を、前記ホストコンピュータにホットプラグした前記PCIデバイスの1つに割当てることを更に含む、請求項1に記載の方法。
【請求項7】
前記ホストコンピュータに、共有入出力(I/O)システムに接続された周辺機器を確立するための列挙を行なうよう要求せずに、デバイスを前記I/Oシステムにホットプラグ可能にすることを更に含む、請求項1に記載の方法。
【請求項8】
1つ又は複数のPCI(Peripheral Component Interconnect)スイッチ又はPCIブリッジによってルートノードに物理的に接続している周辺機器を判定し、
前記PCIスイッチ又は前記PCIブリッジに接続しているとして、仮想デバイスを提示し、
前記PCIスイッチ又は前記PCIブリッジに接続しているとして前記ルートノードに提示された仮想PCIデバイス用に、バス番号及びメモリを確保し、
前記バス番号及び前記メモリを、前記ルートノードにホットプラグしたPCIデバイスに割当てることを含む方法をコンピュータに実行させる命令を有する、有形のコンピュータ可読媒体。
【請求項9】
前記方法が、
実際のデバイスを仮想PCIデバイスが提示されたブリッジにホットプラグした後に、前記仮想PCIデバイスを前記ルートノードに提示するのを中止することを更に含む、請求項8に記載の有形のコンピュータ可読媒体。
【請求項10】
前記方法が、
前記ルートノードに物理的に接続された前記周辺機器と、前記PCIスイッチ及び前記PCIブリッジに接続されているとして前記ルートノードに提示された前記PCIデバイスとの両方用に、空間を提供するメモリマップを作成することを更に含む、請求項8に記載の有形のコンピュータ可読媒体。
【請求項11】
前記方法が、
予め仮想PCIデバイスに割当てたスイッチ又はブリッジに周辺機器がホットプラグされた時を決定することを更に含む、請求項8に記載の有形のコンピュータ可読媒体。
【請求項12】
前記方法が、
PCIデバイスが下流ブリッジに接続されているとして、前記下流ブリッジを前記ルートノードに提示し、前記下流ブリッジに接続された前記PCIデバイスを、前記仮想PCIデバイスとすることを更に含む、請求項8に記載の有形のコンピュータ可読媒体。
【請求項13】
前記方法が、
前記ルートノードの列挙プロセス中にメモリを要求することを更に含み、前記要求されるメモリを前記仮想PCIデバイス用とする、請求項8に記載の有形のコンピュータ可読媒体。
【請求項14】
前記方法が、
予め仮想PCIデバイスに割当てたメモリ空間を、前記ルートノードにホットプラグした前記PCIデバイスの1つに割当てることを更に含む、請求項8に記載の有形のコンピュータ可読媒体。
【請求項15】
前記方法が、
予め仮想PCIデバイスに割当てたメモリ空間を、前記ルートノードにホットプラグした前記PCIデバイスの1つに割当てることを更に含む、請求項8に記載の有形のコンピュータ可読媒体。
【請求項16】
前記方法が、
前記ルートノードに、共有入出力(I/O)システムに接続された周辺機器を確立するための列挙を行なうよう要求せずに、デバイスを前記I/Oシステムにホットプラグ可能にすることを更に含む、請求項8に記載の有形のコンピュータ可読媒体。
【請求項17】
アルゴリズムを保存するメモリと、
1つ又は複数のPCI(Peripheral Component Interconnect)スイッチ又はPCIブリッジによってホストコンピュータに接続している周辺機器を判定し、
前記PCIスイッチ又は前記PCIブリッジに接続しているとして、仮想デバイスを提示し、
前記PCIスイッチ又はブリッジに接続しているとして前記ホストコンピュータに提示された仮想デバイス用のバス番号及びメモリを確保し、
前記バス番号及び前記メモリを、前記ホストコンピュータにホットプラグしたPCIデバイスに、割当てるように、
アルゴリズムを実行するプロセッサと、
を含む、コンピュータシステム。
【請求項18】
前記バス番号が、下流ブリッジの後方のバスに対して発生する、請求項17に記載のコンピュータシステム。
【請求項19】
前記プロセッサが、前記ホストコンピュータにホットプラグする前記PCIデバイス用に線形メモリマップにおけるメモリを確保するように、前記アルゴリズムを更に実行する、請求項17に記載のコンピュータシステム。
【請求項20】
前記プロセッサが、
予め仮想デバイスに割当てた前記メモリ空間を、前記ホストコンピュータにホットプラグした前記PCIデバイスの1つに割当て、
予め仮想デバイスに割当てた前記メモリ空間を、前記ホストコンピュータにホットプラグした前記PCIデバイスの1つに割当てるように、
前記アルゴリズムを更に実行する、請求項17に記載のコンピュータシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公表番号】特表2011−516964(P2011−516964A)
【公表日】平成23年5月26日(2011.5.26)
【国際特許分類】
【出願番号】特願2011−502917(P2011−502917)
【出願日】平成20年4月1日(2008.4.1)
【国際出願番号】PCT/US2008/059060
【国際公開番号】WO2009/123627
【国際公開日】平成21年10月8日(2009.10.8)
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】