(57)【要約】  本発明の実施形態は、共有Ｉ／Ｏシステムにおいてリセットを変換するための方法、装置、及びシステムを含む。一実施形態では、ホストコンピュータから、Ｉ／Ｏ動作を別のホストと共有するマルチ機能デバイスへ第１タイプのリセットを伝搬する方法を含む。他機能デバイスにおいて別のホストに結合されている機能をホストがリセットしてしまうのを防ぐために、第１タイプのリセットが第２タイプのリセットへ変換される。
2011521310.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
ホストコンピュータから、入力／出力（Ｉ／Ｏ）動作を別のホストと共有する多機能デバイスへ第１タイプのリセットを伝搬するステップと、
ホストが、多機能デバイスにおいて別のホストに結合されている機能をリセットするのを防ぐために、第１タイプのリセットが多機能ルデバイスに伝搬されるときに、第１タイプのリセットを第２タイプのリセットへ変換するステップと
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、第１タイプのリセットは、周辺コンポーネント相互接続（ＰＣＩ）仕様によるホットリセットであり、第２タイプのリセットは、ＰＣＩ仕様による機能レベルリセット（ＦＬＲ）であることを特徴とする方法。
【請求項３】
請求項１記載の方法において、第１タイプのリセットは、多機能デバイスに存在する機能についてのリンクをリセットし、第２タイプのリセットは、マルチ機能デバイスで単一の機能のみをリセットすることを特徴とする方法。
【請求項４】
請求項１記載の方法において、ホストが多機能デバイスにおいて該ホスト自身に結合されている機能のみをリセットするように、第１タイプのリセットが第２タイプのリセットに変換されることを特徴とする方法。
【請求項５】
請求項１記載の方法において、多機能デバイスは、ホストに直接接続されており、かつブレードサーバに存在しているものとして、ホストからは見えることを特徴とする方法。
【請求項６】
請求項１記載の方法において、該方法はさらに、仮想の周辺コンポーネント相互接続（ＰＣＩ）ブリッジにおいて、第１タイプのリセットを第２タイプのリセットに変換するステップを含むことを特徴とする方法。
【請求項７】
請求項１記載の方法において、該方法はさらに、
第１タイプのリセットを周辺コンポーネント相互接続（ＰＣＩ）ブリッジに伝搬するステップと、
ＰＣＩブリッジで第１タイプのリセットを第２タイプのリセットに変換するステップと、
第２タイプのリセットをＰＣＩブリッジからＰＣＩスイッチに伝搬し、そして多機能デバイスに伝搬するステップと
を含むことを特徴とする方法。
【請求項８】
コンピュータ可読記憶媒体であって、該記憶媒体は、
周辺コンポーネント相互接続（ＰＣＩ）のホットリセットを周辺デバイスに伝搬するステップと、
ＰＣＩホットリセットが周辺デバイスに向かっている間に、ＰＣＩホットリセットを機能レベルリセット（ＦＬＲ）に変換するステップと
を含んでいる方法を実行するためのインストラクションを記憶することを特徴とするコンピュータ可読媒体。
【請求項９】
請求項８記載のコンピュータ可読記憶媒体において、該記憶媒体はさらに、
ＰＣＩホットリセットをルートノードで生成するステップと、
ＰＣＩホットリセットを、ルートノードと周辺デバイスとの間のブリッジにおいてＦＬＲに変換するステップと
を実行するためのインストラクションを記憶していることを特徴とするコンピュータ可読媒体。
【請求項１０】
請求項８記載のコンピュータ可読記憶媒体において、該記憶媒体はさらに、ＦＬＲを用いて、ＰＣＩホットリセットを発生したルートノードに結合された機能のみをリセットするステップを実行するためのインストラクションを記憶していることを特徴とするコンピュータ可読記憶媒体。
【請求項１１】
請求項８記載のコンピュータ可読記憶媒体において、周辺デバイスは、コンピュータシステムにおいて複数の別個のホストコンピュータ間で共有されている複数の機能を備えていることを特徴とするコンピュータ可読記憶媒体。
【請求項１２】
請求項８記載のコンピュータ可読記憶媒体において、該記憶媒体はさらに、ＰＣＩホットリセットを発生したホストコンピュータに透過的なスイッチを介してＦＬＲを伝搬するステップを実行するためのインストラクションを記憶することを特徴とするコンピュータ可読記憶媒体。
【請求項１３】
請求項８記載のコンピュータ可読記憶媒体において、ＰＣＩホットリセットは異なるホストと結合されている複数の機能をリセットし、且つＦＬＲは１つのホストと結合されている１つの機能のみをリセットすることを特徴とするコンピュータ可読記憶媒体。
【請求項１４】
請求項８記載のコンピュータ可読記憶媒体において、該記憶媒体はさらに、
ＰＣＩホットリセットをホストコンピュータで生成するステップと、
ＰＣＩホットリセットをＦＬＲに変換することにより、ホストコンピュータが、自身に結合されていない周辺デバイスで機能をリセットするのを防止するステップと
を実行するためのインストラクションを記憶していることを特徴とするコンピュータ可読記憶媒体。
【請求項１５】
請求項８記載のコンピュータ可読記憶媒体において、該記憶媒体はさらに、
ＦＬＲを実行するためにコンフィギュレーションサイクルを構築するステップと、
コンフィギュレーションサイクルをメッセージにカプセル化するステップと、
メッセージを周辺デバイスにルーティングするステップと
を実行するためのインストラクションを記憶していることを特徴とするコンピュータ可読記憶媒体。
【請求項１６】
請求項８記載のコンピュータ可読記憶媒体において、該記憶媒体はさらに、
ＦＬＲを周辺デバイスより前のノードで受け取るステップと、
周辺デバイスにおけるどの機能にＦＬＲをルーティングすべきかを決定するために、該ノードでＦＬＲのペイロードを読み出すステップと、
ＦＬＲを該当する機能にルーティングするステップと
を実行するためのインストラクションを記憶していることを特徴とするコンピュータ可読記憶媒体。
【請求項１７】
コンピュータシステムであって、
アルゴリズムを記憶するメモリと、
アルゴリズムを実行して、周辺コンポーネント相互接続（ＰＣＩ）のホットリセットを、コンピュータシステムにおいて複数のホストコンピュータ間で共有されているリソースを有する周辺デバイスへ伝搬し、かつ、ＰＣＩホットリセットが周辺デバイスへ向かう間にＰＣＩホットリセットを機能レベルリセット（ＦＬＲ）に変換するプロセッサと、
を備えることを特徴とするコンピュータシステム。
【請求項１８】
請求項１７記載のコンピュータシステムにおいて、周辺デバイスは、複数のホストコンピュータと結合された複数の機能を有するイーサネットデバイスであることを特徴とするコンピュータシステム。
【請求項１９】
請求項１７記載のコンピュータシステムにおいて、該システムはさらに、ＦＬＲを受け取って、該ＦＬＲを周辺デバイスに転送するＰＣＩスイッチを備えていることを特徴とするコンピュータシステム。
【請求項２０】
請求項１７記載のコンピュータシステムにおいて、該システムはさらに、ＰＣＩホットリセットを受け取り、ＦＬＲを周辺デバイスに転送する仮想ブリッジを備えていることを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有Ｉ／Ｏにおけるリセットの変換技術に関する。
【背景技術】
【０００２】
周辺コンポーネント相互接続すなわちＰＣI規格は、マザーボードに周辺デバイスを取り付けるためのコンピュータバスを定めるものである。ＰＣＩ仕様には、バスの物理的な属性、電気的特性、バスタイミング、通信プロトコル等が詳述されている。ＰＣＩスペシャルインタレストグループ（ＰＣＩ−ＳＩＧ）が、さまざまなＰＣＩアーキテクチャの仕様書を維持管理している。
【０００３】
ＰＣＩ環境では、ホストがリセットコマンドをデバイスに送信することにより、周辺デバイスをリセットすることができる。リセットコマンドは、デバイスをリセットするためにＰＣＩ階層で下流（ダウンストリーム）へ伝搬される。この工程は、ホストが他のホストと周辺デバイスを共有していない環境においては、適切に機能する。
【０００４】
共有Ｉ／Ｏ環境では、複数の異なるホストがＩ／Ｏデバイスの１又は複数の機能（ファンクション）を共有する。ホストがリセットを共有Ｉ／Ｏデバイスに送信すると、該リセットは下流の共有ＰＣＩリンクへ伝搬される。その結果、ホストは自身が所有していない共有デバイスの機能をリセットすることになってしまう。言い換えれば、ホストは、他のホストに結合されている機能を不所望にリセットしてしまうことになる。これにより、あるホストが他のホストによって所有されている機能をリセットすることができるので、問題が生じる。
【図面の簡単な説明】
【０００５】
【図１】本発明の一実施形態による共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステムのブロック図である。
【図２】本発明の一実施形態例による共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステムのブロック図であって、単一のホストコンピュータの図である。
【図３】本発明の一実施形態例による共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステムの別のブロック図である。
【図４】本発明の一実施形態例による共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステムにおいて、ホットリセットを機能レベルリセットに変換するためのフロー図である。
【図５】本発明の一実施形態例による共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステム例の一部を示すブロック図である。
【発明を実施するための形態】
【０００６】
本発明の実施形態は、共有入力／出力（Ｉ／Ｏ）アーキテクチャにおいて１又は複数のリセットを変換するための方法、システム、及び装置を対象としている。一実施形態では、ホットリセットＰＣＩコマンドを、ホットリセットが周辺デバイスすなわちエンドポイント（Ｉ／Ｏデバイス等）へ向かっている間に、機能レベルリセットに変換する。この変換により、ホストは自身に結合されている機能のみをリセットし、且つ他のホストに結合されている他の機能をリセットしないことが可能になる。
【０００７】
実施形態例は、例えばＰＣＩアーキテクチャを用いた共有Ｉ／Ｏ環境で適用される。帯域内ホットリセットの機能レベルリセットへの変換は、その機能が存在するリンクをリセットするかわりに、特定の共有機能のみを、ホストがリセットすることを可能にする。これは、ホストが自身の所有していない機能をリセットすることを防止し、かつ、ホストが仮想ピア・ツー・ピア（Ｐ２Ｐ）下流ポートに直接接続されていると把握している仮想デバイスを、シームレスにリセットすることを可能にする。
【０００８】
一例として、ＰＣＩエクスプレスのシステムでは、帯域内ホットリセット機構が用いられて、リセットをＰＣＩエクスプレス階層でトップダウンで伝搬する。ＰＣＩエクスプレスでのホットリセットは、上流ポートから下流ポートへのみ伝搬される。
【０００９】
一実施形態では、Ｉ／Ｏデバイスは、ブレードサーバから物理的に分離している。しかしながら、これらのＩ／Ｏデバイスは、各ブレードサーバに存在するホストからは、直接接続されているものと見なされる。ホストは、これらの仮想デバイスを、Ｐ２Ｐブリッジデバイスを介して見ている。このデバイスは、反対側のエンドポイントとして考えられてもいて、且つＰＣＩエクスプレスのスイッチに接続されている。ホストには、このスイッチ又は他の物理的デバイス、並びに、仮想Ｐ２ＰブリッジとＰ２Ｐブリッジの直後にあるとホストが信じている自身の仮想エンドデバイスとの間のリンクが、見えない。
【００１０】
一実施形態では、仮想Ｐ２Ｐブリッジに接続されている上流ポートは、帯域内ホットリセットを発行し、このリセットがブリッジを通じて伝搬してリンクに至り、それによって、ホストのエンドデバイスがリセットされることが期待される。物理的には、リンクは存在しない。その代わり、ＰＣＩエクスプレスのスイッチが存在し、このリンク上の上流デバイスとして機能する。ＰＣＩエクスプレスでは、ホットリセットは下流にのみ伝搬が可能なので、この物理的リンク上には送信されない。さらに、スイッチリンクはホストには透過的でホストからは見えないので、ホストによってリセットされることがない。このホットリセットを共有エンドデバイスに到達させるために、一実施形態では、このホットリセットのプロトコルを機能レベルリセットと称される別のＰＣＩエクスプレスのプロトコルに変換すなわち変形する。
【００１１】
機能レベルリセットは、デバイスの特定の機能のみをリセットし、ホットリセットのように全ての機能をリセットするものではない。仮想ピア・ツー・ピアデバイスは、どのリソースがホットリセットを受け取ることになるかを知っており、機能レベルリセットのプロトコルを用いて、このリセットを共有Ｉ／Ｏネットワークの他方のエンド上の共有機能に伝搬する。
【００１２】
図１は、一実施形態による共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステム１００のブロック図である。説明のために、コンピュータシステムはＰＣＩエクスプレスのアーキテクチャを用いて示されているが、実施形態は特定種類のＰＣＩアーキテクチャに制限されるものではない。
【００１３】
図１は、複数のルートノード、すなわちホストコンピュータ１１０（ルートノード／ホスト１〜ルートノード／ホストＮ）と、それに接続されたＩ／Ｏファブリック１２０、複数のＩ／Ｏアダプタ１２５（Ｉ／Ｏアダプタ１〜Ｉ／ＯアダプタＮ）、及び管理ノード１３０を備える階層構造を示している。図２及び図３で示すように、ルートノードは、複数のＰＣＩエクスプレスのバスすなわちリンク１６０を介して、さまざまなデバイス（エンドポイント又はエンドノード、ブリッジ、スイッチ、等）と接続する。
【００１４】
ルートノード１１０（コンピュートノードとしても知られる）は、ホストバス１５５を介して接続されたＣＰＵ１４０、メモリ１４５、及びルートコンプレクス１５０を備えている。ルートコンプレクス１５０は、Ｉ／Ｏファブリック１２０を介して、Ｉ／Ｏアダプタ１２５及び管理ノード１３０と接続する。一例として、Ｉ／Ｏファブリック１２０は、１又は複数のポート、ブリッジ、スイッチ等を備えている。
ルートコンプレクス（ＲＣ）１５０は、ＣＰＵ／メモリサブシステムをＩ／Ｏデバイスに接続するＩ／Ｏ階層のルートを表す。ルートコンプレクスは、１又は複数のポートをサポートできる。
【００１５】
各インターフェースは、別個の階層ドメインを特定し、各階層ドメインは、単一のエンドポイント又は１又は複数のスイッチ部品及びエンドポイントを備えるサブ階層を含む。ルートコンプレクスを介して階層ドメイン間のピア・ツー・ピア（Ｐ２Ｐ）処理のルートを決める能力は、オプションであり実装形態に依存する。例えば実装形態によっては、ルートコンプレクスの内部に実スイッチ又は仮想スイッチを備えて、ソフトウェア透過的な方法で、ピア・ツー・ピア（Ｐ２Ｐ）をフルサポートすることができる。
【００１６】
ルートコンプレクス１５０は、リクエスタとしてコンフィギュレーション要求の生成をサポートすること、リクエスタとしてＩ／Ｏ要求の生成をサポートすること、及びリクエスタとしてロック要求の生成をサポートすること、のうちの１又は複数を実行することが可能である。
【００１７】
一実施形態では、ホスト１１０は、Ｉ／Ｏファブリック１２０（ＰＣＩエクスプレスの仕様に準拠する種々のデバイスを含む）を介してリソースプールを共有する。この構成では、複数の異なるホストが、単一機能若しくはマルチ機能のアダプタ、又は最終エンドポイントであるＩ／Ｏアダプタ１２５を共有できる（図２及び図３にさらに詳細に示されている）。さらに、複数のホストは、一緒に接続される（例えば、対称型マルチプロセッシングシステム（ＳＭＰ）をなすために）か、又は、それぞれ独立ノードである。
管理ノード１３０は共有リソースを設定し、リソースをホスト１１０に割り当てる。管理ノード１３０は、Ｉ／Ｏファブリック１２０に接続されるか又はホストの１つに含まれている。
【００１８】
図２は、一実施形態による共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステム１００のブロック図であり、単一のホストコンピュータから見た図（例：ホストの視点からみたネットワークの図）である。ホスト１１０は、複数のＰＣＩエクスプレスバスすなわちリンク２６０を介して、スイッチ２３０に接続され、かつＰＣＩエクスプレスとＰＣＩ／ＰＣＩ-Ｘとの間のブリッジ２６５に接続する。スイッチは次に、ＰＣＩエクスプレスのエンドポイント２２０を含む複数のエンドポイントすなわちエンドノードと接続する。一実施形態では、ＰＣＩエクスプレスのエンドポイント２２０は、スイッチ２３０から分離している。言い換えれば、エンドポイントは、ポート２７０Ｂに物理的に接続されていない。
【００１９】
エンドポイント（図２及び図３に示す）は、仮想エンドポイント及び実すなわち物理エンドポイントを含む。物理すなわち実エンドポイントは、自身のため、並びに、例えばグラフィックコントローラに接続されたＰＣＩエクスプレス、ＰＣＩエクスプレス−ＵＳＢホストコントローラ等、又は別のＩ／Ｏデバイス（ディスクドライブ等）などの別個の非ＰＣＩデバイス（ＰＣＩデバイス又はホストＣＰＵ以外の）のため、のいずれかのためのＰＣＩ処理のリクエスタ又はコンプリータであるデバイス又はデバイスの集合である。対称的に、仮想エンドポイントは、実際に物理的に存在しない及び／又はコンピュータシステムに接続されていないデバイスを表す。したがって、ホスト１１０は、物理デバイスがコンピュータシステムのスロット／ポートに接続されていると検出する又は認識しているが、実際のところ、物理デバイスは現実に存在してはいない。
【００２０】
図示のように、スイッチ２３０は、複数のポート２７０及び複数の仮想ＰＣＩ−ＰＣＩブリッジ２７５を含む。例として、スイッチ２３０は１つの上流ポート２７０Ａ及び３つの下流ポート２７０Ｂを有するよう示されている。さらなる上流ポート及び下流ポートが複数のホスト（図１に示す）に対応するために用いられてもよい。ＰＣＩリンク２６０を介して、スイッチは１又は複数の物理エンドポイント２２０と接続すなわち通信する。
【００２１】
スイッチは、以下の規則すなわち、スイッチがコンフィギュレーションソフトウェアに２以上のＰＣＩ対ＰＣＩの論理ブリッジとして出現すること、スイッチがＰＣＩブリッジのメカニズム（アドレスに基づくルーティング等）を用いてトランザクションを転送すること、並びに、スイッチがポートの組の間でさまざま種類のトランザクションレイヤパケットを転送すること、という規則の１又は複数に従う。
【００２２】
一実施形態では、各ＰＣＩエクスプレスリンク２６０は、仮想ＰＣＩ対ＰＣＩブリッジ構造体を通じてマッピングされ、それに関連する論理ＰＣＩバスを有する。仮想ＰＣＩ対ＰＣＩブリッジ構造体は、ＰＣＩエクスプレスのルートコンプレクスポート、スイッチ上流ポート、又はスイッチ下流ポートの一部であり得る。ルートポートは、ＰＣＩエクスプレスのルートコンプレクスからＰＣＩエクスプレスの階層ドメインを生じさせる、仮想ＰＣＩ対ＰＣＩブリッジ構造体である。デバイスは、それぞれが特定のデバイス番号に対応するように、コンフィギュレーション空間にマッピングされる。
【００２３】
図３は、共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステム３００のブロック図であり、複数のホストコンピュータと複数の共有エンドポイントすなわちＩ／Ｏプラットホームとの接続を示している。コンピュータシステム３００は、スイッチ３３０を介して管理ノード３２０及び複数のエンドポイントすなわちＩ／Ｏプラットホーム３３０に接続された、複数のコンピュートノード３１０を備えている。
【００２４】
各コンピュートノード３１０は、ネットワークコンフィギュレーション（「ネットワークConfig」で図示）ならびに１又は複数の上流Ｐ２Ｐポート（「上流Ｐ２Ｐ」として示す）及び下流Ｐ２Ｐポート（「下流Ｐ２Ｐ」として示す）を有する、ブリッジすなわちＣノード３４０を備えている。Ｃノード３４０は、下流ポート（「下流Ｐ２Ｐ」として示す）と、スイッチプラットホーム３４５において接続する。
【００２５】
スイッチプラットホーム３４５は、１又は複数の上流Ｐ２Ｐポート（「上流Ｐ２Ｐ」として示す）及び下流Ｐ２Ｐポート（「下流Ｐ２Ｐ」として示す）を備えている。これらのポートが、コンピュートノード３１０、管理ノード３２０、及びＩ／Ｏプラットホーム３００を連結する。
【００２６】
各Ｉ／Ｏプラットホーム３３０は、Ｅノード３５０及びエンドデバイス３６０を備えている。さらに、Ｅノード３５０は仮想ルート及びネットワークコンフィギュレーション（「ネットワークConfig」として示す）を備えている。エンドデバイス３６０はマルチファンクショナルであって、第１の機能（「（funct０）」として示す）及び第２の機能（「（funct１）」として示す）を備えている。
【００２７】
図４は、一実施形態による共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステムにおいて、ホットリセットを機能レベルリセットに変換するためのフロー図である。図４の方法は、図１〜図３に示されたコンピュータシステムで実施できる。
【００２８】
説明のために、図４については共有Ｉ／Ｏアーキテクチャを用いたコンピュータシステム例５００の一部を示す図５と関連して論述する。コンピュータ５００は、複数のＣノード５３０を介して複数の多機能デバイス５２０（例として１つのデバイスが示されている）と接続する複数のホスト５１０、ＰＣＩエクスプレススイッチ５４０、及びＥノード５５０を備えている。また、ＰＣＩエクスプレススイッチ５４０と結合された中間マネージャ５６０も示されている。
【００２９】
ブロック４００に示すように、機能がホストに結合される。図示の例では、マルチ機能デバイス５２０は、５つの異なる機能（Ｆ０〜Ｆ４として示す）を有する。例えば、ホストＡは１つの機能（Ｆ１）と結合され、ホストＢは別の機能（Ｆ３）と結合されている。多機能能デバイス５２０は、各機能（Ｆ０〜Ｆ４）を共有Ｉ／Ｏデバイスとしているイーサネットデバイスであってもよい。
【００３０】
ブロック４１０に示すように、ホストが機能のリセットを望み、ホストリセットを伝搬する。リセットは種々の理由から生じる。例えば、ホストがデバイスからエラーを受信してそれをリセットすることを希望することもある。
ホストＡは、１つの機能（Ｆ１）に対してホットリセットを発行し、ホストＢは別の機能（Ｆ３）に対してホットリセットを発行するように図示されている。
【００３１】
ホストＡは、単一の機能デバイスを見ている又は検出するだけなので、別の機能（すなわち、Ｆ０、Ｆ２、Ｆ３、及びＦ４）には気付かない。ホストＡの視点からは、多機能デバイス５２０は実際には１つの機能（例：機能Ｆ１）を有する単一の機能デバイスである。ホストＡによって発行されたホットリセットが機能レベルリセット（ＦＬＲ）に変換されていなければ、ホストＡは、多機能デバイス５２０の全ての機能を不慮にリセットしてしまう。換言すれば、ホストＡは自身に結合されていない機能（つまり、Ｆ０、Ｆ２、Ｆ３、及びＦ４）をリセットしてしまう。
【００３２】
同様に、ホストＢは単一の機能デバイスを見ている又は検出するだけなので、別の機能（すなわち、Ｆ０、Ｆ１、Ｆ２、及びＦ４）には気付かない。ホストＢの視点からは、多機能デバイス５２０は、実際には１つの機能（例：機能Ｆ３）を有する単一の機能デバイスである。ホストＢによって発行されたホットリセットが機能レベルリセット（ＦＬＲ）に変換されていなければ、ホストＢは、多機能デバイス５２０の全ての機能を不慮にリセットしてしまう。換言すれば、ホストＢは自身に結合されていない機能（つまり、Ｆ０、Ｆ１、Ｆ２、及びＦ４）をリセットしてしまう。
【００３３】
次いでブロック４２０に示すように、Ｃノード（すなわちブリッジ）がホットリセットを受信する。ホストＡからのホットリセットは、ＣノードＡの仮想ブリッジ（囲みの「仮想ブリッジ」に示されている）に伝搬される。同様に、ホストＢからのホットリセットは、ＣノードＢの仮想ブリッジ（囲みの「仮想ブリッジ」に示されている）に伝搬される。Ｃノードは、ホストの直後にあるエンドポイントを有するブリッジと見なされている仮想ブリッジである。Ｃノードは中間マネージャ５６０からはエンドノードすなわちエンドポイントと見なされている。換言すれば、ホストはＰＣＩエクスプレススイッチ５４０又はエンドノード５５０が見えていない。
【００３４】
ブロック４３０においては、Ｃノードが、受信されたホットリセットのための宛先Ｉ／Ｏデバイスを決定する。よって、ホストＡに関しては、ホットリセットが１つの機能（Ｆ１）に向かうことをＣノードＡが決定する。ホストＢに関しては、ホットリセットが別の機能（Ｆ３）に向かうことをＣノードＢが決定する。
【００３５】
ブロック４４０においては、Ｃノードがホットリセットを機能レベルリセット（ＦＬＲ）に変換して、ＦＬＲを宛先にルーティングする。言い換えれば、初めのホットリセットはＦＬＲに変えられ、ＦＬＲとして伝搬される。図５に示されるように、ＣノードＡは、ホットリセットを受信し、それをＦＬＲ Aに変換し、該ＦＬＲ AをＰＣＩエクスプレススイッチ５４０に伝搬する。同様に、ＣノードＢは、ホットリセットを受信し、それをＦＬＲ Ｂに変換し、該ＦＬＲ ＢをＰＣＩエクスプレススイッチ５４０に伝搬する。
【００３６】
一実施形態では、機能レベルリセットを実行するために、Ｃノードはコンフィギュレーションサイクルを構築する。Ｃノードは、コンフィギュレーションサイクルを、ＰＣＩエクスプレススイッチ５４０へのルーティングのためのメッセージすなわちパケットのヘッダにカプセル化する。メッセージ又はパケットのペイロードは、コンフィギュレーションサイクルを含む。
【００３７】
ブロック４５０においては、スイッチが機能レベルリセットを受信し、それをエンドノードにルーティングする。図５に示されるように、ＰＣＩエクスプレススイッチ５４０は、ＦＬＲ AをＣノードＡから受信し、ＦＬＲ ＢをＣノードＢから受信する。スイッチはこれらのＦＬＲを、エンドノード５５０に伝搬する。
【００３８】
ブロック４６０においては、Ｅノードが機能レベルリセットを受信し、そのＦＬＲを受信すべき機能を決定する。一実施形態では、Ｅノードはヘッダをデコードし、ペイロードを読み出し、多機能デバイスのどの機能が、機能レベルリセットを受信するのかを決定する。
【００３９】
図５に示されるように、Ｅノード５５０はＦＬＲ Ａ及びＦＬＲ Ｂを受け取る。ＦＬＲのそれぞれがデコードされて、適切な機能にルーティングされる。ＦＬＲＡは１つの機能（Ｆ１）にルーティングされるが、これは、この機能がホストＡに結合されているからである。ＦＬＲＢは別の機能（Ｆ３）にルーティングされるが、これは、この機能がホストＢに結合されているからである。
【００４０】
ブロック４７０においては、機能は機能レベルリセットを受信して、適宜の機能をリセットする。図５に関しては、機能Ｆ１はＦＬＲＡによってリセットされ、機能Ｆ３はＦＬＲ Ｂによってリセットされる。
【００４１】
通常、リセットは、ポートの状態を初期の又は特定の条件に戻すためのハードウェア機構を提供する。リセットは、部品又はアダプタカード等の１つのデバイスから別のデバイスへの信号として提供されてもよい。機能レベルリセット（ＦＬＲ）は、ソフトウェアが休止し（一時的に無効になる又は動作しない状態になる）、かつ機能レベルの粒度でエンドポイントのハードウェアをリセットできるようにする特殊なリセットである。以下の３つの例はＦＬＲを説明するものである。
【００４２】
一例として、システムによっては、機能を制御するソフトウェアエンティティにより、通常の動作を停止させることが可能である。データの破損を防止するためには、その機能によって実行されている全てのＰＣＩエクスプレス及び外部（ＰＣＩエクスプレスではない）のＩ／Ｏの動作を停止する必要がある。他の特定されたリセット動作では、外部Ｉ／Ｏの動作が停止されることを保証することができない。別の例をあげると、ハードウェアが１つのパーティションから別のパーティションへ移動されるパーティション環境では、例えば、第１のパーティションに与えられていたが第２のパーティションには与えられないユーザの秘密の情報等、元の（移動元の）パーティションについての残留「知識」がハードウェアに記憶されていないことを確実にする必要がある。さらにまた、機能は多様であるので、これは機能独自の方法でなされる必要がある。第３の例としては、システムソフトウェアが機能に関するソフトウェアスタックを削除してから、そのスタックを再構築している場合、その機能のソフトウェアスタックを構築する前の初期化されていない状態に戻す必要がある。
【００４３】
ＦＬＲは機能毎の単位で適用され、ターゲットの機能のみがＦＬＲ動作の影響を受ける。さらに、リンク状態は、（リンク状態に影響を与えるホットリセットと違って）ＦＬＲによって影響されない。レジスタ及び機能固有の状態マシンが初期設定値に設定されるため、ＦＬＲはデバイスの機能状態を変更する。ＦＬＲはリンク上では休止し、リンクの機能性と関連付けられているポート状態マシンは、ＦＬＲによってリセットされることはない。さらにまた、ＦＬＲは、マルチ機能デバイスへ導かれて、マルチ機能デバイス全体ではなく特定の機能をリセットする。ＦＬＲ及びホットリセットのさらなる情報は、ＰＣＩエクスプレス基準仕様改訂２．０（PCI Express Base Specification Revision 2.0）（２００６年１２月２０日版）にあり、参照によって本明細書に引用されるものとする。
【００４４】
本明細書及び請求項では、以下の単語及び語句は次のように定義される。
「ブリッジ」は、２つのローカルエリアネットワーク（ＬＡＮ）又はＬＡＮのセグメントを同一のプロトコル（例：イーサネット又はトークンリング）を用いて接続するデバイスを意味する。例えばブリッジは、ＰＣＩ／ＰＣＩ-Ｘセグメント又はＰＣＩエクスプレスポートを、内部部品インターコネクトに、または別のＰＣＩ／ＰＣＩ-ＸバスセグメントもしくはＰＣＩエクスプレスポートに、仮想又は実際に接続する機能である。
【００４５】
「コンフィギュレーション空間」は、ＰＣＩアーキテクチャ内のアドレス空間を意味する。コンフィギュレーション空間アドレスを有するパケットが、デバイス内の機能（すなわち、アドレスエンティティ）を設定するために用いられる。
「下流（ダウンストリーム）」は、インターコネクト／システムのエレメント（ポート／部品）の相対的位置がルートコンプレクスからより離れていることを意味する。例えば、上流ポートではないスイッチ上のポートは下流ポートである。ルートコンプレクス上の全てのポートは下流ポートである。このようにして、下流は、ルートコンプレクスから情報が流れている場合の情報の流れの方向も含める。
【００４６】
「エンドポイント」又は「エンドノード」は、特定セットの規則に従って動作する、デバイス（すなわち、アドレス指定可能な電子エンティティ）又はデバイスの集合を意味する。
「機能（ファンクション）」は、コンフィギュレーション空間におけるアドレス指定可能エンティティを意味する。機能は、単一機能デバイス又は多機能デバイスの１つの機能を意味することもある。
「機能レベルリセット」又は「ＦＬＲ」は、特定のエンドポイントの機能（すなわち、デバイスの特定の機能）をリセットするためのメカニズムを意味する。
【００４７】
「ホットプラグ」又は「ホットスワップ」等は、マシン又はシステムが動作を継続している間に、マシン又はシステムの電子部品を除去かつ置換する能力を意味する。例えば、ホットスワップは、１又は複数のデバイス（例：ハードドライブ）を、デバイスが位置しているブレード又はエンクロージャ全体の動作に影響を与えることなしに交換又は修理することを可能にする。例えば、障害が生じた場合、単一のハードドライブがブレードから除去され、新しい又は別のハードドライブと交換される。新しいハードドライブは、ブレードがエンクロージャ内にある状態で、継続中の動作を妨げることなく、ブレードに接続される。
【００４８】
「ホットリセット」という語句は、物理レイヤメカニズム（すなわち、２つの部品の間にある通信媒体と直接交信するレイヤ）を用いて、帯域内にリンクにわたって伝搬されるリセットを意味する。
「リンク」という単語は、２つのポート及びそれらを相互接続しているレーンの集合を意味する。ＰＣＩエクスプレスアーキテクチャでは、リンクは、２つの部品の間のデュアルシンプレクスの通信パスである。
【００４９】
「ＰＣＩ」は周辺コンポーネント相互接続（Peripheral Component Interconnect)を意味する。ＰＣＩ仕様は、バスの属性、電子的特性、バスタイミング、通信プロトコル等を詳述している。ＰＣＩ特殊利益団体（ＰＣＩ−ＳＩＧ）がさまざまなＰＣＩアーキテクチャの仕様書を維持及び管理している。
「ポート」は、論理的には部品及びリンクの間のインターフェース（例：２つのデバイス間の通信パス）を意味し、物理的にはリンクを特定するチップ上に配置された送信機及び受信機のグループを意味する。
【００５０】
「ルートコンプレクス」は、ホストブリッジ及び１又は複数のポートを備えるデバイス又はデバイスの集合を意味する。例えば、ホストコンピュータは、ルートコンプレクスであるブリッジ機能を提供するために、ＰＣＩを有している。ルートコンプレクスは、ＣＰＵバス（ハイパートランスポート等）及びＰＣＩバス間にブリッジを提供する。
「ルートノード」は、ホストコンピュータ、コンピュータシステム、又はサーバを意味する。
【００５１】
「スイッチ」とは、パケットを１つのポートから別のポートへルーティングできるようにするために、２つ以上のポートを接続するデバイス又はデバイスの集合である。コンフィギュレーションソフトウェアにとっては、スイッチは仮想ＰＣＩ対ＰＣＩブリッジとして現れる。
【００５２】
「仮想（の）」とは、実在しないことを意味し、単なる概念的なもの（例：デバイス）を、物理的な実体を有するものと区別する。一例として、物理的なエンドポイントがバスと実際に接続されていない場合に、ホストは仮想エンドポイントを物理的エンドポイントであるとして見る又は検出することが可能である（デバイスは架空であるが、実在するものとして、ホストは検出する又は信じている）。仮想の反対は、物理的／実際である。
【００５３】
「上流（アップストリーム）」とは、インターコネクト／システムのエレメント（ポート／部品）の相対的位置がルートコンプレクスにより近いものであることを意味する。例えば、トポロジ的にルートコンプレクスに近いスイッチ上のポートは上流ポートである。例えば、エンドポイントのみを含む部品上のポートは上流ポートである。上流にはまた、情報がルートコンプレクスに向かって流れる場合の、情報の流れ方向も含まれている。
【００５４】
一実施形態では、本明細書で論じられた１又は複数のブロックすなわちステップは、自動化されている。言い換えると、装置、システム及び方法は自動的に所持を実行する。本明細書では、「自動化」又は「自動的に」（及びその類似の変化形）という語句は、コンピュータ及び／又は機械的／電気的デバイスを用いて、人間による介在、観察、努力及び／又は決定を必要とせずに、装置、システム及び／又はプロセスの動作を制御することを意味する。
【００５５】
本発明の実施形態例による方法は、例として提供されており、本発明の範囲内の他の実施形態を制限するものではない。例えば、図のブロック又は番号（(１)、(２)など）は、特定の順番で実行しなければならないステップであると解釈すべきではない。追加的なブロック／ステップの追加、いくつかのブロック／ステップの削除、又はブロック／ステップの順番の変更が行われる可能性があるが、それも本発明の範囲内にある。さらに、異なる図面の中で論じられた方法又はステップは、別の図面における方法ステップに追加又はそれらと交換することができる。さらにまた、具体的なデータ数値（具体的な量、数、カテゴリ等）又は別の具体的な情報は、実施形態例について論述するための例示として解釈すべきものである。具体的な情報は、本発明を制限するために提供されているものではない。
【００５６】
本発明による種々の実施形態において、実施形態は、方法、システム、及び／又は装置として実施される。一例では、本発明に関する実施形態及びステップの例は、本明細書に記載された方法を実施するための１又は複数のコンピュータソフトウェアプログラムとして実施される。ソフトウェアは、１又は複数のモジュール（コードサブルーティン、又はオブジェクト指向プログラミングでは「オブジェクト」とも称される）として実施される。ソフトウェアの位置は、多様な代替的な実施形態によって異なる。ソフトウェアのプログラミングコードは、例えば、コンピュータ又はサーバのプロセッサ又はプロセッサ群によって、ＣＤ−ＲＯＭドライブ又はハードドライブ等のある種の長期記憶媒体からアクセスされる。ソフトウェアのプログラミングコードは、データ処理システムで用いられる任意のさまざまな既知の媒体上、又はディスク、ハードドライブ、ＣＤ−ＲＯＭ、ＲＯＭ等を含め、半導体、磁気及び光媒体などの、任意の記憶デバイスに記憶又は格納される。コードは、かかる媒体上で分散される、あるいは、ある種のネットワークを介して、あるコンピュータシステムのメモリ又はストレージから別のコンピュータシステムへとユーザに分散され、別のシステムのユーザが使用できるようにされる。あるいは、プログラミングコードがメモリに記憶され、バスを用いてプロセッサによってアクセスされる。ソフトウェアプログラミングコードをメモリ、物理的媒体に記憶させるための技術及び方法、及び／又はネットワークを介してソフトウェアコードを分散するための技術及び方法は、周知であるので、本明細書では詳細に論じることはしない。
【００５７】
上記の論述は、本発明の原理及び種々の実施形態を例示するためにある。上述の開示を完全に理解すれば、数多くの変更形態及び修正形態が当業者には明らかとなるであろう。以下の請求項は、全ての変更形態及び修正形態を含むと解釈するよう意図されている。
【図１】
2011521310.tif 000003
【図２】
2011521310.tif 000004
【図３】
2011521310.tif 000005
【図４】
2011521310.tif 000006
【図５】
2011521310.tif 000007
【国際調査報告】
2011521310.tif 000008
2011521310.tif 000009