(57)【要約】      （修正有）【課題】スイッチングデバイス、ＰＣＩｅシステムおよびＰＣＩｅシステムを初期化する。【解決手段】スイッチングデバイスは、少なくとも１つのホストに接続するように構成された複数のＰＣＩｅアップストリームポートと、少なくとも１つのＩ／Ｏデバイスに接続された少なくとも１つのＰＣＩｅダウンストリームポートと、スイッチングデバイスの内部接続ラインを用いて少なくとも１つのＰＣＩｅダウンストリームポートに接続された内部処理装置とを備え、内部接続ラインを用いることにより、コンフィギュレーションリード／ライトパケットを少なくとも１つのＰＣＩｅダウンストリームポートに送信し、コンフィギュレーションリード／ライト応答パケット内に保持されたコンプリータ識別子に従って、スイッチングデバイスがコンプリータ識別子を識別子として有するＩ／Ｏデバイスに接続されていると判定する。【選択図】図２
2019145153.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのホストに接続するように構成されている複数のペリフェラル・コンポーネント・インターコネクト・エクスプレスＰＣＩｅアップストリームポートと、
少なくとも１つの入力／出力Ｉ／Ｏデバイスに接続するように構成されている少なくとも１つのＰＣＩｅダウンストリームポートと、
スイッチングデバイスの内部接続ラインを用いることにより、前記少なくとも１つのＰＣＩｅダウンストリームポートに接続された内部処理装置と、
を備えたスイッチングデバイスであって、
前記内部処理装置は、
前記内部接続ラインを用いることにより、コンフィギュレーションリード／ライトパケットを前記少なくとも１つのＰＣＩｅダウンストリームポートに送信し、
前記内部接続ラインを用いることにより前記少なくとも１つのＰＣＩｅダウンストリームポートによって送信されたコンフィギュレーションリード／ライト応答パケットであって、コンプリータ識別子を保持している、前記コンフィギュレーションリード／ライト応答パケット、を受信し、かつ、
前記コンフィギュレーションリード／ライト応答パケット内に保持された前記コンプリータ識別子に従って、前記スイッチングデバイスが前記コンプリータ識別子を識別子として有するＩ／Ｏデバイスに接続されていると判定する
ように構成されている、スイッチングデバイス。
【請求項２】
前記少なくとも１つのＰＣＩｅダウンストリームポートが単機能Ｉ／Ｏデバイスに接続されている場合、前記スイッチングデバイスは、前記単機能Ｉ／Ｏデバイスと前記単機能Ｉ／Ｏデバイスに対応するホストとの間で情報を透過的に送信するように特に構成されている、請求項１に記載のスイッチングデバイス。
【請求項３】
前記スイッチングデバイスは、
前記少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、前記少なくとも１つのＰＣＩｅダウンストリームポートに接続された前記少なくとも１つのＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成された少なくとも１つのミラーリングエンドポイントデバイスモジュールと、
前記複数のＰＣＩｅアップストリームポートに接続されていて、前記少なくとも１つのＰＣＩｅダウンストリームポートに接続された前記少なくとも１つのＩ／Ｏデバイスの機能が前記複数のＰＣＩｅアップストリームポートに接続された前記少なくとも１つのホストによって用いられるように、前記機能を仮想化するように構成された少なくとも１つの仮想エンドポイントデバイスモジュールと、
前記少なくとも１つのミラーリングエンドポイントデバイスモジュールおよび前記少なくとも１つの仮想エンドポイントデバイスモジュールに別個に接続されていて、前記少なくとも１つのホストに対応するＰＣＩｅドメインと前記少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、
をさらに備えている、請求項１または２に記載のスイッチングデバイス。
【請求項４】
前記少なくとも１つのＰＣＩｅダウンストリームポートがいずれもＰＣＩｅコンフィギュレーション空間を有しておらず、かつ、前記複数のＰＣＩｅアップストリームポートの各々がＰＣＩｅコンフィギュレーション空間を有する、請求項３に記載のスイッチングデバイス。
【請求項５】
前記スイッチングデバイスは、前記少なくとも１つのＰＣＩｅダウンストリームポートの各々に対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間をさらに備え、かつ、
前記少なくとも１つの仮想エンドポイントデバイスモジュールが、前記少なくとも１つのＰＣＩｅダウンストリームポートに対応する前記少なくとも１つのＰＣＩｅコンフィギュレーション空間を用いることにより、前記複数のＰＣＩｅアップストリームポートに特に接続されている、
請求項４に記載のスイッチングデバイス。
【請求項６】
前記マッピングモジュールは、
前記少なくとも１つのホストに対応する前記ＰＣＩｅドメインにおける識別子から前記少なくとも１つのＩ／Ｏデバイスに対応する前記ＰＣＩｅドメインにおける識別子へのマッピング関係を格納するために用いられる第１のマッピングテーブルと、
前記少なくとも１つのＩ／Ｏデバイスに対応する前記ＰＣＩｅドメインにおける前記識別子から前記少なくとも１つのホストに対応する前記ＰＣＩｅドメインにおける前記識別子へのマッピング関係を格納するために用いられる第２のマッピングテーブルと、
を格納している、請求項３ないし５のいずれか一項に記載のスイッチングデバイス。
【請求項７】
前記少なくとも１つのミラーリングエンドポイントデバイスモジュールのうち第１のミラーリングエンドポイントデバイスモジュールは、特に第３のマッピングテーブルであり、
前記第３のマッピングテーブルは、前記少なくとも１つのＩ／Ｏデバイスのうち第１のＩ／Ｏデバイスの仮想機能のベースアドレスレジスタＢＡＲアドレスおよびＢＡＲサイズを格納するために用いられ、かつ、
前記第１のミラーリングエンドポイントデバイスモジュールは、前記第１のＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成されている、
請求項３ないし６のいずれか一項に記載のスイッチングデバイス。
【請求項８】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第１の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第２のＩ／Ｏデバイスの物理機能が前記少なくとも１つのホストのうち第１のホストによって用いられるように、前記物理機能を仮想化するように特に構成され、かつ、
前記第２のＩ／Ｏデバイスの物理機能ドライブは、前記第１のホストのプロセッサによってロードされる、
請求項３ないし７のいずれか一項に記載のスイッチングデバイス。
【請求項９】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第２の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第３のＩ／Ｏデバイスの仮想機能が前記少なくとも１つのホストのうち第２のホストによって用いられるように、前記仮想機能を仮想化するように特に構成され、かつ、前記第３のＩ／Ｏデバイスの物理機能ドライブは、前記少なくとも１つのホスト内の管理ベースボード管理コントローラＢＭＣによってロードされる、
請求項３ないし８のいずれか一項に記載のスイッチングデバイス。
【請求項１０】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第３の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第４のＩ／Ｏデバイスの物理機能および仮想機能が前記少なくとも１つのホストのうち第３のホストによって用いられるように、前記物理機能と前記仮想機能とを仮想化するように特に構成され、
前記第４のＩ／Ｏデバイスの物理機能ドライブは、前記少なくとも１つのホスト内の前記管理ＢＭＣによってロードされ、かつ、
前記第３の仮想エンドポイントデバイスモジュールの物理機能ドライブは、前記第３のホストのプロセッサによってロードされる、
請求項３ないし９のいずれか一項に記載のスイッチングデバイス。
【請求項１１】
前記スイッチングデバイスは、特にホストスイッチングデバイスおよびＩ／Ｏスイッチングデバイスであり、
前記ホストスイッチングデバイスと前記Ｉ／Ｏスイッチングデバイスとは、イーサネットインタフェースを用いることにより接続され、
前記ホストスイッチングデバイスは、前記複数のＰＣＩｅアップストリームポートを備え、かつ、
前記Ｉ／Ｏスイッチングデバイスは、前記内部処理装置と、前記少なくとも１つの仮想エンドポイントデバイスモジュールと、前記マッピングモジュールと、前記少なくとも１つのミラーリングエンドポイントデバイスモジュールと、前記少なくとも１つのＰＣＩｅダウンストリームポートとを備えている、
請求項３ないし１０のいずれか一項に記載のスイッチングデバイス。
【請求項１２】
前記内部処理装置は、
前記少なくとも１つのホスト内の前記管理ＢＭＣによって送信された初期化命令を受信し、および、
前記初期化命令に従って、コンフィギュレーションリード／ライトパケットを、前記内部接続ラインを用いることにより前記少なくとも１つのＰＣＩｅダウンストリームポートに送信する
ように構成され、
前記内部処理装置は、さらに、
前記スイッチングデバイスに接続されたＩ／Ｏデバイスが判定された後で、前記スイッチングデバイスに接続された前記Ｉ／Ｏデバイスに関する情報を前記管理ＢＭＣに対して報告するように構成され、かつ、
前記情報は、識別情報を含む、
請求項１ないし１１のいずれか一項に記載のスイッチングデバイス。
【請求項１３】
前記内部処理装置は、さらに、
前記少なくとも１つのホスト内の前記管理ＢＭＣによって送信されるコンフィギュレーション管理情報を受信し、および
前記複数のＰＣＩｅアップストリームポートおよび前記少なくとも１つのＰＣＩｅダウンストリームポートを、前記コンフィギュレーション管理情報に従って構成する
ように構成されている、請求項１ないし１２のいずれか一項に記載のスイッチングデバイス。
【請求項１４】
前記内部処理装置は、さらに、異常イベントおよびホットスワップイベントを処理するように構成されている、請求項１ないし１３のいずれか一項に記載のスイッチングデバイス。
【請求項１５】
少なくとも１つのホストと、
請求項１ないし１４のいずれか一項に記載の前記スイッチングデバイスと、
少なくとも１つの入力／出力Ｉ／Ｏデバイスと、
を備えたペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）システムであって、
前記少なくとも１つのホストは、コンフィギュレーション管理機能を有する管理ベースボード管理コントローラＢＭＣを含む、
ＰＣＩｅシステム。
【請求項１６】
前記少なくとも１つのＩ／Ｏデバイスのうち第２のＩ／Ｏデバイスは、複数の物理機能を有し、前記複数の物理機能は、いずれも、対応する仮想機能を有しておらず、
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第１の仮想エンドポイントデバイスモジュールは、前記第２のＩ／Ｏデバイスの前記複数の物理機能が前記少なくとも１つのホストのうち第１のホストによって用いられるように、前記複数の物理機能を仮想化するように特に構成され、かつ、
前記第１のホストのプロセッサは、前記第２のＩ／Ｏデバイスの物理機能ドライブをロードするように構成されている、
請求項１５に記載のＰＣＩｅシステム。
【請求項１７】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第２の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第３のＩ／Ｏデバイスの仮想機能が前記少なくとも１つのホストのうち第２のホストによって用いられるように、前記仮想機能を仮想化するように特に構成され、かつ、
前記管理ＢＭＣは、さらに、前記第３のＩ／Ｏデバイスの物理機能ドライブをロードするように構成されている、
請求項１５または１６に記載のＰＣＩｅシステム。
【請求項１８】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第３の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第４のＩ／Ｏデバイスの物理機能および仮想機能が前記少なくとも１つのホストのうち第３のホストによって用いられるように、前記物理機能と前記仮想機能とを仮想化するように特に構成され、
前記第３のホストのプロセッサは、前記第３の仮想エンドポイントデバイスモジュールの物理機能ドライブをロードするように構成され、かつ、
前記管理ＢＭＣは、さらに、前記第４のＩ／Ｏデバイスの物理機能ドライブをロードするように構成されている、
請求項１５ないし１７のいずれか一項に記載のＰＣＩｅシステム。
【請求項１９】
前記システムは、ＰＣＩｅスイッチをさらに備え、かつ、前記少なくとも１つのＰＣＩｅダウンストリームポートは、前記ＰＣＩｅスイッチを用いることにより、前記少なくとも１つのＩ／Ｏデバイスに接続するように特に構成されている、
請求項１５ないし１８のいずれか一項に記載のＰＣＩｅシステム。
【請求項２０】
前記システムは、シェルフ管理モジュールＳＭＭをさらに備え、かつ、
前記管理ＢＭＣは、さらに、前記少なくとも１つのホスト、前記スイッチングデバイスおよび前記少なくとも１つのＩ／Ｏデバイスのネットワーク構成情報を前記ＳＭＭに送信するように構成されている、
請求項１５ないし１９のいずれか一項に記載のＰＣＩｅシステム。
【請求項２１】
請求項１５ないし２０のいずれか一項に記載のＰＣＩｅシステムに適用される、ペリフェラル・コンポーネント・インターコネクト・エクスプレスＰＣＩｅシステムを初期化する方法であって、
前記管理ＢＭＣによって、初期化命令を前記スイッチングデバイス内の前記内部処理装置を送信することと、
前記初期化命令に従って前記内部処理装置によって、前記スイッチングデバイスに接続されたＩ／Ｏデバイスを判定して、前記スイッチングデバイスに接続された前記Ｉ／Ｏデバイスに関する情報を前記管理ＢＭＣに報告することと、
前記少なくとも１つのホストによって、前記少なくとも１つのホストに接続されたデバイスに関する情報を取得することと、
前記少なくとも１つのホストに接続された前記デバイスに関する前記情報に従って前記少なくとも１つのホストによって、前記少なくとも１つのＩ／Ｏデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることと、
を含む方法。
【請求項２２】
前記少なくとも１つのホストに接続された前記デバイスに関する前記情報に従って前記少なくとも１つのホストによってとは、
前記少なくとも１つのホストのうち第１のホストであって、前記スイッチングデバイスの複数のＰＣＩｅアップストリームポートのうち第１のＰＣＩｅアップストリームポートに接続された前記第１のホストによって、コンフィギュレーションリードパケットを送信することと、
前記スイッチングデバイスの少なくとも１つの対象仮想エンドポイントデバイスモジュールであって、前記少なくとも１つの仮想エンドポイントデバイスモジュールに含まれかつ各々が前記第１のＰＣＩｅアップストリームポートに接続された前記少なくとも１つの対象仮想エンドポイントデバイスモジュール、によって、前記第１のＰＣＩｅアップストリームポートを使用して、前記第１のホストにより送信された前記コンフィギュレーションリードパケットを受信し、かつ前記コンフィギュレーションリードパケットに従って、コンフィギュレーションリード応答パケットを前記第１のホストに送信することと、
前記第１のホストによって、前記受信されたコンフィギュレーションリード応答パケットに従ってコンフィギュレーションライトパケットを送信することと、
前記少なくとも１つのＩ／Ｏデバイスに含まれる少なくとも１つの対象Ｉ／Ｏデバイスの機能を仮想化するように構成された前記少なくとも１つの対象仮想エンドポイントデバイスモジュールによって、前記第１のＰＣＩｅアップストリームポートを使用して、前記第１のホストによって送信された前記コンフィギュレーションライトパケットを受信し、前記少なくとも１つのＰＣＩｅダウンストリームポートのうち少なくとも１つの第１のＰＣＩｅダウンストリームポートを使用して、前記コンフィギュレーションライトパケットを、前記少なくとも１つの対象Ｉ／Ｏデバイスに転送することと、
前記少なくとも１つの第１のＰＣＩｅダウンストリームポートを使用して前記少なくとも１つの対象Ｉ／Ｏデバイスによって、前記少なくとも１つの対象仮想エンドポイントデバイスモジュールによって転送された前記コンフィギュレーションライトパケットを受信し、かつ前記受信されたコンフィギュレーションライトパケットに従ってコンフィギュレーションライト応答パケットを前記スイッチングデバイスに送信することと、
前記スイッチングデバイスによって、前記少なくとも１つの対象Ｉ／Ｏデバイスによって送信された前記コンフィギュレーションライト応答パケットを受信し、かつ前記第１のＰＣＩｅアップストリームポートを使用して、前記コンフィギュレーションライト応答パケットを前記第１のホストに転送することと、
前記第１のホストによって、前記第１のホストに接続された前記少なくとも１つの対象仮想エンドポイントデバイスモジュールに関する情報を、前記受信されたコンフィギュレーションライト応答パケットから取得することと、
を含む、請求項２１に記載の方法。
【請求項２３】
前記方法は、
前記スイッチングデバイスの前記内部処理装置によって、前記少なくとも１つの対象仮想エンドポイントデバイスモジュールに関する前記情報を前記コンフィギュレーションライトパケットから取得し、かつ前記少なくとも１つの対象仮想エンドポイントデバイスモジュールに関する前記取得された情報に従って、前記スイッチングデバイスの前記マッピングモジュールを構成すること
をさらに含む、請求項２２に記載の方法。
【請求項２４】
前記前記少なくとも１つのホストに接続された前記デバイスに関する前記情報に従って前記少なくとも１つのホストによって、前記少なくとも１つのＩ／Ｏデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることは、
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第１の仮想エンドポイントデバイスモジュールが前記少なくとも１つのＩ／Ｏデバイスのうち第２のＩ／Ｏデバイスの仮想機能を仮想化するように構成されている場合、前記少なくとも１つのホスト内の前記管理ＢＭＣによって、前記第２のＩ／Ｏデバイスの物理機能ドライブをロードすること、
を含む、請求項２１ないし２３のいずれか一項に記載の方法。
【請求項２５】
前記前記少なくとも１つのホストに接続された前記デバイスに関する前記情報に従って前記少なくとも１つのホストによって、前記少なくとも１つのＩ／Ｏデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることは、
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第２の仮想エンドポイントデバイスモジュールが前記少なくとも１つのＩ／Ｏデバイスのうち第３のＩ／Ｏデバイスの物理機能を仮想化するように構成されている場合、前記少なくとも１つのホストのうち第２のホストのプロセッサによって、前記第３のＩ／Ｏデバイスの物理機能ドライブをロードすることを含み、かつ、
前記第２の仮想エンドポイントデバイスモジュールは、前記複数のＰＣＩｅアップストリームポートを使用して前記第２のホストに接続されている、
請求項２１ないし２４のいずれか一項に記載の方法。
【請求項２６】
第１のスイッチングデバイスと第２のスイッチングデバイスとを備えたスイッチングシステムであって、
前記第１のスイッチングデバイスと前記第２のスイッチングデバイスとがネットワークを用いることにより接続され、
前記第１のスイッチングデバイスは、少なくとも１つのホストに接続するように構成された複数のペリフェラル・コンポーネント・インターコネクト・エクスプレスＰＣＩｅアップストリームポートを備え、
前記第２のスイッチングデバイスは、少なくとも１つの入力／出力Ｉ／Ｏ装置に接続するように構成された少なくとも１つのＰＣＩｅダウンストリームポートを備え、かつ、
前記第２のスイッチングデバイスは、
前記ネットワークを用いることにより前記第１のスイッチングデバイスによって受信された第１のデータパケットを受信し、前記第１のデータパケットをＰＣＩｅプロトコルに準拠した第２のデータパケットに変換して、前記第２のデータパケットを前記第２のデータパケットの対象Ｉ／Ｏデバイスに送信するように構成されている、
スイッチングシステム。
【請求項２７】
前記第２のスイッチングデバイスは、前記少なくとも１つのＰＣＩｅダウンストリームポートに前記第２のスイッチングデバイスの内部接続ラインを用いることにより接続された第１の内部処理装置をさらに備え、
前記第２のスイッチングデバイスが前記第１のデータをＰＣＩｅプロトコルに準拠した第２のデータパケットに変換するように構成されていることは、
前記第１の内部処理装置は、前記第１のデータパケットを前記ＰＣＩｅプロトコルに準拠した前記第２のデータパケットに変換するように構成されていることを含む、
請求項２６に記載のスイッチングシステム。
【請求項２８】
前記ネットワークがイーサネットであり、かつ、
前記第１の内部処理装置が前記第１のデータパケットを前記ＰＣＩｅプロトコルに準拠した前記第２のデータパケットに変換するように構成されていることは、
前記第１の内部処理装置がイーサネットプロトコルに準拠した前記第１のデータパケットを前記ＰＣＩｅプロトコルに準拠した前記第２のデータパケットに変換するように構成されていることを含む、
請求項２７に記載のスイッチングシステム。
【請求項２９】
前記第２のスイッチングデバイスは、前記少なくとも１つのＰＣＩｅダウンストリームポートに前記第２のスイッチングデバイスの内部接続ラインを用いることにより接続された第１の内部処理装置をさらに備え、かつ、
前記第１の内部処理装置は、前記少なくとも１つのＩ／Ｏデバイスのいずれかによって送信された第３のデータパケットを受信し、前記第３のデータパケットを処理して前記ネットワークのネットワークプロトコルに準拠した第４のデータパケットを取得し、かつ前記第４のデータパケットを、前記ネットワークを用いることにより前記第１のスイッチングデバイスに送信する
ように構成されている、
請求項２６に記載のスイッチングシステム。
【請求項３０】
前記第１のスイッチングデバイスは、前記第１のスイッチングデバイスの内部接続ラインを用いることにより前記複数のＰＣＩｅアップストリームポートに接続された第２の内部処理装置をさらに備え、
前記第２の内部処理装置は、
前記少なくとも１つのホストのいずれかによって送信された第５のデータパケットを受信し、
前記第５のデータパケットを処理して前記ネットワークの前記ネットワークプロトコルに準拠した前記第１のデータパケットを取得し、かつ、
前記ネットワークを用いることにより前記第１のデータパケットを前記第２のスイッチングデバイスに送信し、および／または、
前記ネットワークを用いることにより、前記第１のスイッチングデバイスによって送信された、前記第４のデータパケットを受信し、かつ前記第４のデータパケットを処理して前記ＰＣＩｅプロトコルに準拠した第６のデータパケットを取得し、かつ、
前記第６のデータパケットを、前記第６のデータパケットの対象ホストに送信する
ように構成されている、請求項２９に記載のスイッチングシステム。
【請求項３１】
前記スイッチングシステムは、前記ネットワークにおけるネットワークスイッチングデバイスをさらに備え、
前記第１のスイッチングデバイスは、前記ネットワークスイッチングデバイスに接続するように構成された少なくとも１つの第１のスイッチドインタフェースをさらに備え、
前記第２のスイッチングデバイスは、前記ネットワークスイッチングデバイスに接続するように構成された少なくとも１つの第２のスイッチドインタフェースをさらに備え、
前記第２のスイッチングデバイスは、前記第１のスイッチングデバイスによって前記ネットワークを用いることにより第１のデータパケットを受信するように構成されていることは、
前記第２のスイッチングデバイスは、前記少なくとも１つの第２のスイッチドインタフェースのいずれかを用いることにより、前記第１のスイッチングデバイスからパケットでありかつ前記ネットワークスイッチングデバイスによって送信される前記第１のデータパケットを受信するように構成されていることを含む、
請求項２６ないし３０のいずれか一項に記載のスイッチングシステム。
【請求項３２】
前記第１のスイッチングデバイスは、
前記複数のＰＣＩｅアップストリームポートに接続され、前記少なくとも１つのＩ／Ｏデバイスの機能が前記少なくとも１つのホストによって用いられるように、前記機能を仮想化するように構成された、少なくとも１つの仮想エンドポイントデバイスモジュール
をさらに備え、かつ、
前記第２のスイッチングデバイスは、
前記少なくとも１つのＰＣＩｅダウンストリームポートに接続され、前記少なくとも１つのＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成された、少なくとも１つのミラーリングエンドポイントデバイスモジュールと、
前記少なくとも１つのホストに対応するＰＣＩｅドメインと前記少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインとの間のマッピングを実行するように構成されたマッピングモジュールと、
をさらに備えている、
請求項２６ないし３１のいずれか一項に記載のスイッチングシステム。
【請求項３３】
前記少なくとも１つのＰＣＩｅダウンストリームポートは、いずれも、ＰＣＩｅコンフィギュレーション空間を有さず、かつ、前記複数のＰＣＩｅアップストリームポートの各々は、ＰＣＩｅコンフィギュレーション空間を有している、
請求項３２に記載のスイッチングシステム。
【請求項３４】
前記第１のスイッチングデバイスは、前記少なくとも１つのＰＣＩｅダウンストリームポートの各々に対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間をさらに備え、かつ、
前記少なくとも１つの仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＰＣＩｅダウンストリームポートに対応する前記少なくとも１つのＰＣＩｅコンフィギュレーション空間を用いることにより前記複数のＰＣＩｅアップストリームポートに特に接続されている、
請求項３３に記載のスイッチングシステム。
【請求項３５】
前記マッピングモジュールは、
前記少なくとも１つのホストに対応する前記ＰＣＩｅドメインにおける識別子から前記少なくとも１つのＩ／Ｏデバイスに対応する前記ＰＣＩｅドメインにおける識別子へのマッピング関係を格納するために用いられる第１のマッピングテーブルと、
前記少なくとも１つのＩ／Ｏデバイスに対応する前記ＰＣＩｅドメインにおける前記識別子から前記少なくとも１つのホストに対応する前記ＰＣＩｅドメインにおける前記識別子へのマッピング関係を格納するために用いられる第２のマッピングテーブルと、を格納する、
請求項３２ないし３４のいずれか一項に記載のスイッチングシステム。
【請求項３６】
前記少なくとも１つのミラーリングエンドポイントデバイスモジュールのうち第１のミラーリングエンドポイントデバイスモジュールは、特に第３のマッピングテーブルであり、
前記第３のマッピングテーブルは、前記少なくとも１つのＩ／Ｏデバイスのうち第１のＩ／Ｏデバイスの仮想機能のベースアドレスレジスタＢＡＲアドレスおよびＢＡＲサイズを格納するために用いられ、かつ、
前記第１のミラーリングエンドポイントデバイスモジュールは、前記第１のＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成されている、
請求項３２ないし３５のいずれか一項に記載のスイッチングシステム。
【請求項３７】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第１の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第２のＩ／Ｏデバイスの物理機能が前記少なくとも１つのホストのうち第１のホストによって用いられるように、前記物理機能を仮想化するように特に構成され、かつ、
前記第２のＩ／Ｏデバイスの物理機能ドライブは、前記第１のホストのプロセッサによってロードされる、
請求項３２ないし３６のいずれか一項に記載のスイッチングシステム。
【請求項３８】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第２の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第３のＩ／Ｏデバイスの仮想機能が前記少なくとも１つのホストのうち第２のホストによって用いられるように、前記仮想機能を仮想化するように特に構成され、かつ、
前記第３のＩ／Ｏデバイスの物理機能ドライブは、前記少なくとも１つのホストにおける管理ベースボード管理コントローラＢＭＣによってロードされる、
請求項３２ないし３７のいずれか一項に記載のスイッチングシステム。
【請求項３９】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第３の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第４のＩ／Ｏデバイスの物理機能および仮想機能が前記少なくとも１つのホストのうち第３のホストによって用いられるように、前記物理機能と前記仮想機能とを仮想化するように特に構成され、
前記第４のＩ／Ｏデバイスの物理機能ドライブは、前記少なくとも１つのホスト内の前記管理ＢＭＣによってロードされ、かつ、
前記第３の仮想エンドポイントデバイスモジュールの物理機能ドライブは、前記第３のホストのプロセッサによってロードされる、
請求項３２ないし３８のいずれか一項に記載のスイッチングシステム。
【請求項４０】
少なくとも１つのホストと、請求項２６ないし３９のいずれか一項に記載の前記スイッチングシステムと、少なくとも１つの入力／出力Ｉ／Ｏ装置とを備えている、ペリフェラル・コンポーネント・インターコネクト・エクスプレスＰＣＩｅシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、通信分野に関し、より具体的には、スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステム、および、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムを初期化する方法に関する。
【背景技術】
【０００２】
周辺装置相互接続スペシャル・インタレスト・グループ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ，ＰＣＩ−ＳＩＧ）によって提案されたシングルルートＩ／Ｏ仮想化（Ｓｉｎｇｌｅ−Ｒｏｏｔ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ，ＳＲ−ＩＯＶ）技術は、ホスト内の複数プロセス間で入力／出力（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ，Ｉ／Ｏ）デバイスを共有するシナリオに適用される。ＳＲ−ＩＯＶ技術は、ＰＣＩエクスプレス（ＰＣＩ  ｅｘｐｒｅｓｓ，ＰＣＩｅ）デバイスに対して、上位層のホストが呼び出すための複数の仮想機能（Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎ，ＶＦ）を仮想化する。
【０００３】
マルチルートＩ／Ｏ仮想化（Ｍｕｌｔｉ−Ｒｏｏｔ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ，ＭＲ−ＩＯＶ）技術は、複数のホストによってＩ／Ｏデバイスを共有するシナリオに適用される。本技術は、複数ホストによって呼び出されるべき複数のＰＣＩ仮想階層（Ｖｉｒｔｕａｌ  Ｈｉｅｒａｒｃｈｙ，ＶＨ）を仮想化する。しかしながら、この技術は、ＰＣＩｅプロトコルのうちデータリンク層より上のプロトコルに変更を加える。したがって、トポロジ構造内の複数のノード、例えば、ＭＲ−ＩＯＶをサポートするルートポート（Ｒｏｏｔ  Ｐｏｒｔ，ＲＰ）、スイッチ（Ｓｗｉｔｃｈ）またはＰＣＩｅデバイスが適応化を行う必要がある。ＭＲ−ＩＯＶ技術は、産業チェーンの適応化を必要とし、互換性の低下をもたらす。現状では、この規格をサポートする製品は存在しない。
【０００４】
従来技術においては、ＳＲ−ＩＯＶデバイスを利用することで複数のホストによってＩ／Ｏデバイスを共有する解決策が提供されている。図１は、従来技術における典型的な実装形態を示す。システム１００は、Ｎ個のホスト（ホスト１からホストＮまで）１１０と、ＰＣＩｅスイッチ１２０と、Ｍ個のＩ／Ｏデバイス（Ｉ／Ｏデバイス１からＩ／ＯデバイスＭまで）１３０と、外付け管理ＣＰＵ１４０と、メモリ１５０とを含んでいる、ただし１≦Ｍ≦Ｎ。管理ＣＰＵ１４０は、Ｉ／Ｏデバイス側でデバイスの列挙および発見を行い、およびデバイスの構成および管理を行う役割を担う。ＰＣＩｅスイッチ１２０は、非透過的リンク（Ｎｏｎ−Ｔｒａｎｓｐａｒｅｎｔ  Ｌｉｎｋ，ＮＴ−Ｌ）モジュールと、複数のＰＣＩｅアップストリームポート（Ｕｐｓｔｒｅａｍ  Ｐｏｒｔ，ＵＰ）と、グローバル非透過的（Ｎｏｎ−Ｔｒａｎｓｐａｒｅｎｔ，ＮＴ）ＥＰモジュールと、複数の仮想ＰＣＩｅダウンストリームポート（Ｄｏｗｎｓｔｒｅａｍ  Ｐｏｒｔ，ＤＰ）とを含んでいる。グローバルＮＴ  ＥＰモジュールは、レジスタを管理し、およびメモリアドレスに対してマッピングし、ならびに非透過的仮想（Ｎｏｎ−Ｔｒａｎｓｐａｒｅｎｔ  Ｖｉｒｔｕａｌ，ＮＴ−Ｖ）機能を実装するように構成されている。システム１００は、複数の仮想階層（Ｖｉｒｔｕａｌ  Ｈｉｅｒａｒｃｈｙ，ＶＨ）を含んでもよい。
【０００５】
この技術的解決策においては、管理ＣＰＵが追加的に配置される必要があり、管理ＣＰＵに対応するメモリは外部的に配置される必要があり、かつ、別個のＰＣＩｅ管理インタフェースが提供される必要がある。それゆえ、この技術的解決策は製品レイアウトの点では適していない。加えて、図１に示すシステム１００においては、システム全体を管理するための管理ＣＰＵは１個のみ配置されており、管理リンクが１つしかない。ひとたび管理リンクに異常が生じると、ネットワーク全体が故障して利用することができなくなる。それゆえ、安定性および信頼性は比較的低い。
【発明の概要】
【０００６】
本発明の実施形態は、比較的高い安定性および信頼性を実現するために、スイッチングデバイス、ＰＣＩｅシステムおよびＰＣＩｅシステムを初期化する方法を提供する。
【０００７】
第１の態様によれば、スイッチングデバイスが提供され、このスイッチングデバイスは、少なくとも１つのホストに接続するように構成されている複数のＰＣＩｅアップストリームポートと、少なくとも１つのＩ／Ｏデバイスに接続するように構成されている少なくとも１つのＰＣＩｅダウンストリームポートと、スイッチングデバイスの内部接続ラインを用いることにより、少なくとも１つのＰＣＩｅダウンストリームポートに接続された内部処理装置と、を含み、内部処理装置は、
内部接続ラインを用いることにより、コンフィギュレーションリード／ライトパケットを少なくとも１つのＰＣＩｅダウンストリームポートに送信し、
内部接続ラインを用いることにより少なくとも１つのＰＣＩｅダウンストリームポートによって送信されたコンフィギュレーションリード／ライト応答パケットであって、コンプリータ識別子を保持している、コンフィギュレーションリード／ライト応答パケット、を受信し、かつ、
コンフィギュレーションリード／ライト応答パケット内に保持されたコンプリータ識別子に従って、スイッチングデバイスがコンプリータ識別子を識別子として有するＩ／Ｏデバイスに接続されていると判定するように構成されている。
【０００８】
内部処理装置は、スイッチングデバイスに接続された物理デバイス（すなわち、実デバイス）を列挙するように構成されていてもよい。任意選択的に、内部処理装置は、複数のコンフィギュレーションリード／ライトパケットを少なくとも１つのＰＣＩｅダウンストリームポートに送信してもよく、その場合、複数のコンフィギュレーションリード／ライトパケットは、異なるコンプリータ識別子を保持する。少なくとも１つのＰＣＩｅダウンストリームポートは、複数のコンフィギュレーションリード／ライトパケットを、少なくとも１つのＰＣＩｅダウンストリームポートに接続された物理デバイスに転送するように構成され、かつ、接続された物理デバイスによって送信された少なくとも１つのコンフィギュレーションリード／ライト応答パケットを受信すると、少なくとも１つのコンフィギュレーションリード／ライト応答パケットを内部処理装置に転送するように構成されており、少なくとも１つのコンフィギュレーションリード／ライト応答パケットは、複数のコンフィギュレーションリード／ライトパケットの少なくとも１つと一対一の対応関係で対応しており、各コンフィギュレーションリード／ライト応答パケットは、コンフィギュレーションリード／ライト応答パケットに対応するコンフィギュレーションリード／ライトパケット内のコンプリータ識別子を保持する。内部処理装置は、少なくとも１つのＰＣＩｅダウンストリームポートによって転送された少なくとも１つのコンフィギュレーションリード／ライト応答パケットを受信して、少なくとも１つのコンフィギュレーションリード／ライト応答パケットの各々に保持されたコンプリータ識別子に従って、少なくとも１つのＰＣＩｅダウンストリームポート（またはスイッチングデバイス）に接続された物理デバイスを判定してもよい。物理デバイスは、Ｉ／Ｏデバイスを含んでもよく、または、さらに、ＰＣＩｅスイッチおよび／または別の装置を含んでもよい。
【０００９】
したがって、本発明のこの実施形態に係るスイッチングデバイスは、少なくとも１つのホストに接続するように構成された複数のＰＣＩｅアップストリームポートと、少なくとも１つのＩ／Ｏデバイスに接続するように構成された少なくとも１つのＰＣＩｅダウンストリームポートと、内部処理装置とを含んでいる。処理装置は内部バスを用いることにより少なくとも１つのＰＣＩｅダウンストリームポートに接続され、また、内部接続ラインを用いることによりコンフィギュレーションリード／ライトパケットを少なくとも１つのＰＣＩｅダウンストリームポートに送信し、内部接続ラインを用いることにより少なくとも１つのＰＣＩｅダウンストリームポートによって送信されたコンフィギュレーションリード／ライト応答パケットを受信して、コンフィギュレーションリード／ライト応答パケットにおいて保持されるコンプリータ識別子に従って、スイッチングデバイスがコンプリータ識別子を識別子（例えば、ＢＤＦ）として有するＩ／Ｏデバイスに接続されていると判定するように構成されている。このように、スイッチングデバイスが故障すると、スイッチングデバイスに接続された少なくとも１つのホストおよび少なくとも１つのＩ／Ｏデバイスのみが影響を受け、システム内の別のスイッチングデバイスならびに別のスイッチングデバイスに接続されたホストおよびＩ／Ｏデバイスは影響を受けない。したがって、従来技術における外部管理ＣＰＵと比較すると、システムの安定性および信頼性が改善されることができる。
【００１０】
第１の態様の第１の可能な実装形態においては、少なくとも１つのＰＣＩｅダウンストリームポートが単機能Ｉ／Ｏデバイスに接続されている場合、スイッチングデバイスは、単機能Ｉ／Ｏデバイスと単機能Ｉ／Ｏデバイスに対応するホストとの間で情報を透過的に送信するように特に構成されている。
【００１１】
この場合、単機能Ｉ／Ｏデバイスの機能は、少なくとも１つのホストのうちの１つのみによって用いられることができる、すなわち、単機能Ｉ／Ｏデバイスは、単機能Ｉ／Ｏデバイスの機能を用いるホストに対応する。
【００１２】
前述の可能な実装形態に関して、第１の態様の第２の可能な実装形態においては、スイッチングデバイスは、さらに、少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、少なくとも１つのＰＣＩｅダウンストリームポートに接続された少なくとも１つのＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成された、少なくとも１つのミラーリングエンドポイントデバイスモジュールと、少なくとも１つのホストに対応するＰＣＩｅドメインと少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、少なくとも１つのＰＣＩｅダウンストリームポートに接続された少なくとも１つのＩ／Ｏデバイスの機能が少なくとも１つのホストによって用いられるように、機能を仮想化するように構成された、少なくとも１つの仮想エンドポイントデバイスモジュールと、を含んでいる。
【００１３】
任意選択的に、少なくとも１つのミラーリングエンドポイントデバイスモジュールの一端が少なくとも１つのダウンストリームポートに接続され、少なくとも１つの仮想エンドポイントデバイスモジュールの一端が複数のＰＣＩｅアップストリームポートに接続され、かつ、マッピングモジュールは、少なくとも１つのミラーリングエンドポイントデバイスモジュールの他端と少なくとも１つの仮想エンドポイントデバイスモジュールの他端とに別個に接続されている。
【００１４】
任意選択的に、マッピングモジュールは、少なくとも１つのミラーリングエンドポイントデバイスモジュールと少なくとも１つの仮想エンドポイントデバイスモジュールとの間の、例えば、識別子および／またはアドレスのマッピングを実装するように特に構成されていてもよい。
【００１５】
前述の可能な実装形態に関して、第１の態様の第３の可能な実装形態においては、少なくとも１つのＰＣＩｅダウンストリームポートのうち第１のＰＣＩｅダウンストリームポートがＰＣＩｅコンフィギュレーション空間を有しておらず、かつ、複数のＰＣＩｅアップストリームポートの各々がＰＣＩｅコンフィギュレーション空間を有する。
【００１６】
前述の可能な実装形態に関して、第１の態様の第４の可能な実装形態においては、スイッチングデバイスは、さらに、少なくとも１つのＰＣＩｅダウンストリームポートの各々に対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間を備え、少なくとも１つの仮想エンドポイントデバイスモジュールは、少なくとも１つのＰＣＩｅダウンストリームポートに対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間を用いて複数のＰＣＩｅアップストリームポートに特に接続されている。
【００１７】
前述の可能な実装形態に関して、第１の態様の第５の可能な実装形態においては、マッピングモジュールは、少なくとも１つのホストに対応するＰＣＩｅドメインにおける識別子から少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインにおける識別子へのマッピング関係を格納するために用いられる第１のマッピングテーブルと、少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインにおける識別子から少なくとも１つのホストに対応するＰＣＩｅドメインにおける識別子へのマッピング関係を格納するために用いられる第２のマッピングテーブルと、を格納している。
【００１８】
任意選択的に、第１のマッピングテーブルは、少なくとも１つの仮想エンドポイントデバイスモジュールの識別子から少なくとも１つのミラーリングエンドポイントデバイスモジュールの識別子へのマッピング関係を格納するために用いられる。第２のマッピングテーブルは、特に、少なくとも１つのミラーリングエンドポイントデバイスモジュールの識別子から少なくとも１つの仮想エンドポイントデバイスモジュールの識別子へのマッピング関係を格納するために用いられる。
【００１９】
任意選択的に、マッピングモジュールは、少なくとも１つの仮想エンドポイントデバイスモジュールの識別子と少なくとも１つのミラーリングエンドポイントデバイスモジュールの識別子との間のマッピングを、第１のマッピングテーブルおよび第２のマッピングテーブルに従って実装するように特に構成されている。
【００２０】
前述の可能な実装形態に関して、第１の態様の第６の可能な実装形態においては、少なくとも１つのミラーリングエンドポイントデバイスモジュールのうち第１のミラーリングエンドポイントデバイスモジュールは、特に第３のマッピングテーブルであり、第３のマッピングテーブルは、少なくとも１つのＩ／Ｏデバイスのうち第１のＩ／Ｏデバイスの仮想機能のベースアドレスレジスタＢＡＲアドレスおよびＢＡＲサイズを格納するために用いられ、かつ、第１のミラーリングエンドポイントデバイスモジュールは、第１のＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成されている。
【００２１】
任意選択的に、マッピングモジュールは、少なくとも１つの仮想エンドポイントデバイスモジュールのアドレスから少なくとも１つのミラーリングエンドポイントデバイスモジュールのアドレスへのマッピングを、第３のマッピングテーブルおよび第１のマッピングテーブルに従って実装するように特に構成されている。
【００２２】
前述の可能な実装形態に関して、第１の態様の第７の可能な実装形態においては、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第１の仮想エンドポイントデバイスモジュールは、少なくとも１つのＩ／Ｏデバイスのうち第２のＩ／Ｏデバイスの物理機能が少なくとも１つのホストのうち第１のホストによって用いられるように、物理機能を仮想化するように特に構成され、かつ、第２のＩ／Ｏデバイスの物理機能ドライブは、第１のホストのプロセッサによってロードされる。
【００２３】
前述の可能な実装形態に関して、第１の態様の第８の可能な実装形態においては、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第２の仮想エンドポイントデバイスモジュールは、少なくとも１つのＩ／Ｏデバイスのうち第３のＩ／Ｏデバイスの仮想機能が少なくとも１つのホストのうち第２のホストによって用いられるように、仮想機能を仮想化するように特に構成され、かつ、第３のＩ／Ｏデバイスの物理機能ドライブは、少なくとも１つのホスト内の管理ＢＭＣによってロードされる。
【００２４】
前述の可能な実装形態に関して、第１の態様の第９の可能な実装形態においては、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第３の仮想エンドポイントデバイスモジュールは、少なくとも１つのＩ／Ｏデバイスのうち第４のＩ／Ｏデバイスの物理機能および仮想機能が少なくとも１つのホストのうち第３のホストによって用いられるように、物理機能と仮想機能とを仮想化するように特に構成され、第４のＩ／Ｏデバイスの物理機能ドライブは、少なくとも１つのホスト内の管理ＢＭＣによってロードされ、かつ、第３の仮想エンドポイントデバイスモジュールの物理機能ドライブは、第３のホストのプロセッサによってロードされる。
【００２５】
前述の可能な実装形態に関して、第１の態様の第１０の可能な実装形態においては、スイッチングデバイスは、特にホストスイッチングデバイスおよびＩ／Ｏスイッチングデバイスであり、ホストスイッチングデバイスとＩ／Ｏスイッチングデバイスとは、イーサネットインタフェースを用いることにより接続され、ホストスイッチングデバイスは、複数のＰＣＩｅアップストリームポートを備え、かつ、Ｉ／Ｏスイッチングデバイスは、内部処理装置と、少なくとも１つの仮想エンドポイントデバイスモジュールと、マッピングモジュールと、少なくとも１つのミラーリングエンドポイントデバイスモジュールと、少なくとも１つのＰＣＩｅダウンストリームポートとを含んでいる。
【００２６】
前述の可能な実装形態に関して、第１の態様の第１１の可能な実装形態においては、内部処理装置は、少なくとも１つのホスト内の管理ＢＭＣによって送信された初期化命令を受信し、および初期化命令に従って、コンフィギュレーションリード／ライトパケットを、内部接続ラインを用いることにより少なくとも１つのＰＣＩｅダウンストリームポートに送信するように構成され、また、内部処理装置は、さらに、スイッチングデバイスに接続されたＩ／Ｏデバイスが判定された後で、スイッチングデバイスに接続されたＩ／Ｏデバイスに関する情報を管理ＢＭＣに対して報告するように構成され、かつ、情報は識別情報を含む。
【００２７】
任意選択的に、内部処理装置は、内部接続ラインを用いることにより、複数のＰＣＩｅアップストリームポートに接続されていてもよく、また、内部処理装置は、特に、複数のＰＣＩｅアップストリームポートを使用して、管理ＢＭＣによって送信される初期化命令を受信してもよい。内部処理装置は、初期化命令に従って、コンフィギュレーションリード／ライトパケットを少なくとも１つのＰＣＩｅダウンストリームポートに送信し、受信されたコンフィギュレーションリード／ライト応答パケットに従って、スイッチングデバイスに接続されたＩ／Ｏデバイスに関する情報を判定して、複数のＰＣＩｅアップストリームポートを使用して、スイッチングデバイスに接続されたＩ／Ｏデバイスに関する情報を管理ＢＭＣに報告してもよく、情報は、識別情報（例えば、ＢＤＦ）を含んでもよく、または、さらにトポロジ構造（例えば、ＰＣＩｅ構造ツリー）等を含んでもよい。
【００２８】
前述の可能な実装形態に関して、第１の態様の第１２の可能な実装形態においては、内部処理装置は、さらに、少なくとも１つのホスト内の管理ＢＭＣによって送信されるコンフィギュレーション管理情報を受信し、および複数のＰＣＩｅアップストリームポートおよび少なくとも１つのＰＣＩｅダウンストリームポートをコンフィギュレーション管理情報に従って構成するように構成されている。
【００２９】
前述の可能な実装形態に関して、第１の態様の第１３の可能な実装形態においては、内部処理装置は、さらに、異常イベントおよびホットスワップイベントを処理するように構成されている。
【００３０】
第２の態様によれば、ＰＣＩｅシステムが提供され、このＰＣＩｅシステムは、少なくとも１つのホストと、第１の態様または第１の態様の可能な実装形態に係るスイッチングデバイスと、少なくとも１つのＩ／Ｏデバイスと、を含んで含んでおり、少なくとも１つのホストは、コンフィギュレーション管理機能を有する管理ベースボード管理コントローラＢＭＣを含む。
【００３１】
任意選択的に、管理ＢＭＣは、スイッチングデバイスの構成を管理および制御するように構成されていてもよい。例えば、管理ＢＭＣは、以下のコンフィギュレーション、すなわち、少なくとも１つのＩ／Ｏデバイスの物理機能に対応する仮想機能、スイッチングデバイス内の少なくとも１つのＰＣＩｅダウンストリームポートに対応するＰＣＩｅコンフィギュレーション空間、少なくとも１つのＰＣＩｅダウンストリームポートに対応するＰＣＩｅコンフィギュレーション空間とＰＣＩｅアップストリームポートとの間の接続関係、少なくとも１つの仮想エンドポイントデバイスモジュールの仮想機能、少なくとも１つのホストによって用いられることができる機能等、の少なくとも１つを判定するように構成されていてもよい。
【００３２】
第２の態様の第１の可能な実装形態においては、少なくとも１つのＩ／Ｏデバイスのうち第２のＩ／Ｏデバイスは、複数の物理機能を有し、複数の物理機能は、いずれも、対応する仮想機能を有しておらず、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第１の仮想エンドポイントデバイスモジュールは、第２のＩ／Ｏデバイスの複数の物理機能が少なくとも１つのホストのうち第１のホストによって用いられるように、物理機能を仮想化するように特に構成され、かつ、第１のホストのプロセッサは、第２のＩ／Ｏデバイスの物理機能ドライブをロードするように構成されている。
【００３３】
前述の可能な実装形態に関して、第２の態様の第２の可能な実装形態においては、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第２の仮想エンドポイントデバイスモジュールは、少なくとも１つのＩ／Ｏデバイスのうち第３のＩ／Ｏデバイスの仮想機能が少なくとも１つのホストのうち第２のホストによって用いられるように、仮想機能を仮想化するように特に構成され、かつ、管理ＢＭＣは、さらに、第３のＩ／Ｏデバイスの物理機能ドライブをロードするように構成されている。
【００３４】
前述の可能な実装形態に関して、第２の態様の第３の可能な実装形態においては、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第３の仮想エンドポイントデバイスモジュールは、少なくとも１つのＩ／Ｏデバイスのうち第４のＩ／Ｏデバイスの物理機能および仮想機能が少なくとも１つのホストのうち第３のホストによって用いられるように、物理機能と仮想機能とを仮想化するように特に構成され、第３のホストのプロセッサは、第３の仮想エンドポイントデバイスモジュールの物理機能ドライブをロードするように構成され、かつ、管理ＢＭＣは、さらに、第４のＩ／Ｏデバイスの物理機能ドライブをロードするように構成されている。
【００３５】
前述の可能な実装形態に関して、第２の態様の第４の可能な実装形態においては、システムは、ＰＣＩｅスイッチをさらに備え、かつ、少なくとも１つのＰＣＩｅダウンストリームポートは、ＰＣＩｅスイッチを用いることにより、少なくとも１つのＩ／Ｏデバイスに接続するように特に構成されている。
【００３６】
前述の可能な実装形態に関して、第２の態様の第５の可能な実装形態においては、システムは、ＳＭＭをさらに備え、かつ、管理ＢＭＣは、さらに、少なくとも１つのホスト、スイッチングデバイスおよび少なくとも１つのＩ／Ｏデバイスのネットワーク構成情報をＳＭＭに送信するように構成されている。
【００３７】
任意選択的に、ネットワーク構成情報は、コンフィギュレーション管理情報を含んでもよく、または、さらに、他の情報を含んでもよい。
【００３８】
第３の態様によれば、別のスイッチングデバイスが提供される。スイッチングデバイスは、少なくとも１つのホストに接続するように構成された少なくとも１つのＰＣＩｅアップストリームポートと、少なくとも１つのＩ／Ｏデバイスに接続するように構成された少なくとも１つのＰＣＩｅダウンストリームポートと、少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、少なくとも１つのＰＣＩｅダウンストリームポートに接続された少なくとも１つのＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成された、少なくとも１つのミラーリングエンドポイントデバイスモジュールと、少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、少なくとも１つのＰＣＩｅダウンストリームポートに接続された少なくとも１つのＩ／Ｏデバイスの機能が少なくとも１つのホストによって用いられるように、機能を仮想化するように構成された、少なくとも１つの仮想エンドポイントデバイスモジュールと、少なくとも１つの仮想エンドポイントデバイスモジュールおよび少なくとも１つのミラーリングエンドポイントデバイスモジュールに別個に接続されていて、少なくとも１つのホストに対応するＰＣＩｅドメインと少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインとの間のマッピングを実装するように構成された、マッピングモジュールと、を備え、少なくとも１つのＰＣＩｅダウンストリームポートのうち第１のＰＣＩｅダウンストリームポート、および、第１のＰＣＩｅダウンストリームポートに対応するＰＣＩｅコンフィギュレーション空間は、スイッチングデバイス内に別個に配置されている。
【００３９】
このように、ホストに対して提供される利用可能なポートの数の増加を容易にするために、ＰＣＩｅダウンストリームポートおよび、ＰＣＩｅダウンストリームポートに対応するＰＣＩｅコンフィギュレーション空間は、別個に配置されており、これによりリソースの利用が改善される。
【００４０】
第３の態様の第１の可能な実装形態においては、少なくとも１つの仮想エンドポイントデバイスモジュールは、特に、第１のＰＣＩｅダウンストリームポートの少なくとも１つのＰＣＩｅコンフィギュレーション空間を用いることにより、少なくとも１つのＰＣＩｅアップストリームポートに接続されている。
【００４１】
スイッチングデバイスは、第１のＰＣＩｅダウンストリームポートの１つまたは複数のＰＣＩｅコンフィギュレーション空間を含んで含んでもよく、少なくとも１つの仮想エンドポイントデバイスモジュールの全部または一部は、第１のＰＣＩｅダウンストリームポートの少なくとも１つのＰＣＩｅコンフィギュレーション空間を用いることにより、少なくとも１つのＰＣＩｅアップストリームポートの全部または一部に接続されている。
【００４２】
このように、各ホストに接続された仮想エンドポイントデバイスモジュールの数の増加を容易にし、これによりシステムパフォーマンスを改善するために、少なくとも１つの仮想エンドポイントデバイスモジュールは、第１のＰＣＩｅダウンストリームポートに対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間を用いることにより、複数のＰＣＩｅアップストリームポートに接続されている。
【００４３】
第４の態様によれば、別のスイッチングデバイスが提供される。スイッチングデバイスは、少なくとも１つのホストに接続するように構成された少なくとも１つのＰＣＩｅアップストリームポートと、少なくとも１つのＩ／Ｏデバイスに接続された少なくとも１つのＰＣＩｅダウンストリームポートと、少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、少なくとも１つのＰＣＩｅダウンストリームポートに接続された少なくとも１つのＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成された少なくとも１つのミラーリングエンドポイントデバイスモジュールと、少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、少なくとも１つのＰＣＩｅダウンストリームポートに接続された少なくとも１つのＩ／Ｏデバイスの機能が少なくとも１つのホストによって用いられるように機能を仮想化するように構成された、少なくとも１つの仮想エンドポイントデバイスモジュールと、少なくとも１つの仮想エンドポイントデバイスモジュールおよび少なくとも１つのミラーリングエンドポイントデバイスモジュールに別個に接続されていて、少なくとも１つのホストに対応するＰＣＩｅドメインと少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、を備え、
マッピングモジュールは、少なくとも１つのホストに対応するＰＣＩｅドメイン内の識別子から少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメイン内の識別子へのマッピング関係を格納するために用いられる第１のマッピングテーブルと、少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメイン内の識別子から少なくとも１つのホストに対応するＰＣＩｅドメイン内の識別子へのマッピング関係を格納するために用いられる第２のマッピングテーブルと、を格納する。
【００４４】
このように、ホストに対応するＰＣＩｅドメイン内の識別子とＩ／Ｏデバイスに対応するＰＣＩｅドメイン内の識別子との間のマッピング関係は、マッピングテーブル状に格納される。従来技術と比較すると、この解決策は、マッピングモジュールによって占有されるストレージスペースと複雑性とを低減し、およびシステムのストレージリソースを節約することができる。
【００４５】
第５の態様によれば、別のスイッチングデバイスが提供される。スイッチングデバイスは、少なくとも１つのホストに接続するように構成された少なくとも１つのＰＣＩｅアップストリームポートと、少なくとも１つのＩ／Ｏデバイスに接続された少なくとも１つのＰＣＩｅダウンストリームポートと、少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、少なくとも１つのＰＣＩｅダウンストリームポートに接続された少なくとも１つのＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成された少なくとも１つのミラーリングエンドポイントデバイスモジュールと、少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、少なくとも１つのＰＣＩｅダウンストリームポートに接続された少なくとも１つのＩ／Ｏデバイスの機能が少なくとも１つのホストによって用いられるように機能を仮想化するように構成された少なくとも１つの仮想エンドポイントデバイスモジュールと、少なくとも１つの仮想エンドポイントデバイスモジュールおよび少なくとも１つのミラーリングエンドポイントデバイスモジュールに別個に接続されていて、少なくとも１つのホストに対応するＰＣＩｅドメインと少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、を備え、
少なくとも１つのミラーリングエンドポイントデバイスモジュールのうち第１のミラーリングエンドポイントデバイスモジュールは、特に第３のマッピングテーブルであり、第３のマッピングテーブルが少なくとも１つのＩ／Ｏデバイスのうち第１のＩ／Ｏデバイスの仮想機能のベースアドレスレジスタＢＡＲアドレスおよびＢＡＲサイズを格納するために用いられ、第１のミラーリングエンドポイントデバイスモジュールは、第１のＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成されている。
【００４６】
このように、Ｉ／Ｏデバイスの仮想機能のアドレス情報はマッピングテーブル状に格納される。従来技術と比較すると、この解決策は、ｍＥＰおよびスイッチングデバイスによって占有されるストレージスペースを低減することができ、システムのストレージリソースを節約することができる。
【００４７】
第６の態様によれば、ＰＣＩｅシステムを初期化する方法が提供され、この方法は、第２の態様および第２の態様の可能な実装形態のいずれかにおけるＰＣＩｅシステムに適用される。この方法は、管理ＢＭＣによって、初期化命令をスイッチングデバイス内の内部処理装置に送信することと、初期化命令に従って内部処理装置によって、スイッチングデバイスに接続されたＩ／Ｏデバイスを判定して、スイッチングデバイスに接続されたＩ／Ｏデバイスに関する情報を管理ＢＭＣに報告することと、少なくとも１つのホストによって、少なくとも１つのホストに接続されたデバイスに関する情報を取得することと、少なくとも１つのホストに接続されたデバイスに関する情報に従って少なくとも１つのホストによって、少なくとも１つのＩ／Ｏデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることと、を含む。
【００４８】
第６の態様の第１の可能な実装形態においては、少なくとも１つのホストに接続されたデバイスに関する情報に従って少なくとも１つのホストによってとは、少なくとも１つのホストのうち第１のホストであって、スイッチングデバイスの複数のＰＣＩｅアップストリームポートのうち第１のＰＣＩｅアップストリームポートに接続された第１のホストによって、コンフィギュレーションリードパケットを送信することと、スイッチングデバイスの少なくとも１つの対象仮想エンドポイントデバイスモジュールであって、少なくとも１つの仮想エンドポイントデバイスモジュールに含まれかつ各々が第１のＰＣＩｅアップストリームポートに接続された少なくとも１つの対象仮想エンドポイントデバイスモジュール、によって、第１のＰＣＩｅアップストリームポートを使用して、第１のホストにより送信されたコンフィギュレーションリードパケットを受信し、かつコンフィギュレーションリードパケットに従って、コンフィギュレーションリード応答パケットを第１のホストに送信することと、第１のホストによって、受信されたコンフィギュレーションリード応答パケットに従ってコンフィギュレーションライトパケットを送信することと、少なくとも１つのＩ／Ｏデバイスに含まれる少なくとも１つの対象Ｉ／Ｏデバイスの機能を仮想化するように構成された少なくとも１つの対象仮想エンドポイントデバイスモジュールによって、第１のＰＣＩｅアップストリームポートを使用して、第１のホストによって送信されたコンフィギュレーションライトパケットを受信し、および少なくとも１つのＰＣＩｅダウンストリームポートのうち少なくとも１つの第１のＰＣＩｅダウンストリームポートを使用して、コンフィギュレーションライトパケットを、少なくとも１つの対象Ｉ／Ｏデバイスに転送することと、少なくとも１つの第１のＰＣＩｅダウンストリームポートを使用して少なくとも１つの対象Ｉ／Ｏデバイスによって、少なくとも１つの対象仮想エンドポイントデバイスモジュールによって転送されたコンフィギュレーションライトパケットを受信し、かつ受信されたコンフィギュレーションライトパケットに従ってコンフィギュレーションライト応答パケットをスイッチングデバイスに送信することと、スイッチングデバイスによって、少なくとも１つの対象Ｉ／Ｏデバイスによって送信されたコンフィギュレーションライト応答パケットを受信し、かつ第１のＰＣＩｅアップストリームポートを使用して、コンフィギュレーションライト応答パケットを第１のホストに転送することと、第１のホストによって、第１のホストに接続された少なくとも１つの対象仮想エンドポイントデバイスモジュールに関する情報を、受信されたコンフィギュレーションライト応答パケットから取得することと、を含む。
【００４９】
第６の態様の第１の可能な実装形態においては、方法は、スイッチングデバイスの内部処理装置によって、少なくとも１つの対象仮想エンドポイントデバイスモジュールに関する情報をコンフィギュレーションライトパケットから取得し、かつ少なくとも１つの対象仮想エンドポイントデバイスモジュールに関する取得された情報に従って、スイッチングデバイスのマッピングモジュールを構成することをさらに含む。
【００５０】
前述の可能な実装形態に関して、第６の態様の第２の可能な実装形態においては、少なくとも１つのホストに接続されたデバイスに関する情報に従って少なくとも１つのホストによって、少なくとも１つのＩ／Ｏデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることは、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第１の仮想エンドポイントデバイスモジュールが少なくとも１つのＩ／Ｏデバイスのうち第２のＩ／Ｏデバイスの仮想機能を仮想化するように構成されている場合、少なくとも１つのホスト内の管理ＢＭＣによって、第２のＩ／Ｏデバイスの物理機能ドライブをロードすること、を含む。
【００５１】
前述の可能な実装形態に関して、第６の態様の第３の可能な実装形態においては、少なくとも１つのホストに接続されたデバイスに関する情報に従って少なくとも１つのホストによって、少なくとも１つのＩ／Ｏデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることは、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第２の仮想エンドポイントデバイスモジュールが少なくとも１つのＩ／Ｏデバイスのうち第３のＩ／Ｏデバイスの物理機能を仮想化するように構成されている場合、少なくとも１つのホストのうち第２のホストのプロセッサによって、第３のＩ／Ｏデバイスの物理機能ドライブをロードすることを含み、第２の仮想エンドポイントデバイスモジュールは、複数のＰＣＩｅアップストリームポートを使用して第２のホストに接続されている。
【図面の簡単な説明】
【００５２】
【図１】従来技術におけるＰＣＩｅシステムの概略ブロック図である。
【図２】本発明の一実施形態に係るＰＣＩｅシステムの概略ブロック図である。
【図３】本発明の一実施形態に係るＰＣＩｅシステムの別の概略ブロック図である。
【図４】本発明の一実施形態に係るＰＣＩｅシステムの別の概略ブロック図である。
【図５】本発明の一実施形態に係るＰＣＩｅシステムの別の概略ブロック図である。
【図６】本発明の一実施形態に係るＰＣＩｅシステムの別の概略ブロック図である。
【図７】本発明の一実施形態に係るＰＣＩｅシステムの別の概略ブロック図である。
【図８】本発明の一実施形態に係るＰＣＩｅシステムの別の概略ブロック図である。
【図９】本発明の一実施形態に係るＰＣＩｅシステムの別の概略ブロック図である。
【図１０】本発明の一実施形態に係るＰＣＩｅシステムを初期化する方法の概略フローチャートである。
【発明を実施するための形態】
【００５３】
以下、本発明の実施形態における技術的解決策について、本発明の実施形態における添付図面を参照して説明する。
【００５４】
図２は、本発明の一実施形態に係るＰＣＩｅシステム２００の概略的アーキテクチャ図である。ＰＣＩｅシステム２００は、１つのホスト内の複数のプロセスによるＩ／Ｏデバイスの共有を実装するように、または、複数のホストによるＩ／Ｏデバイスの共有を実装するように構成されていてもよい。
【００５５】
図２に示すように、ＰＣＩｅシステム２００は、Ｎ1個のホスト２１０と、スイッチングデバイス２２０と、Ｍ1個のＩ／Ｏデバイス２３０とを含んでいる（ただしＮ1≧１かつＭ1≧１）。Ｉ／Ｏデバイスはまた、エンドポイント（Ｅｎｄｐｏｉｎｔ，ＥＰ）デバイスと呼ばれることもある。
【００５６】
図２は、一例を用いつつ、ＰＣＩｅシステム２００がスイッチングデバイスを１つのみ備え、かつ、スイッチングデバイスが少なくとも１つのホストと少なくとも１つのＩ／Ｏデバイスとに接続されていることを示す。しかしながら、代替的には、ＰＣＩｅシステム２００が複数のスイッチングデバイスを備え、かつ、各スイッチングデバイスが少なくとも１つのホストと少なくとも１つのＩ／Ｏデバイスとに接続されていてもよいことが理解されるべきである。各スイッチングデバイスならびにスイッチングデバイスに接続された少なくとも１つのホストおよび少なくとも１つのＩ／Ｏデバイスは、ネットワークユニットと見なすことができる。これに対応して、ＰＣＩｅシステム２００は、１つまたは複数のネットワークユニットを含んでもよい。しかしながら、本発明のこの実施形態はこれに限定されるものではない。
【００５７】
任意選択的に、本発明のこの実施形態においては、ホストは、特にサーバやパーソナルコンピュータなどの装置であってもよい。代替的には、ホストは仮想マシンであってもよい。本発明のこの実施形態はこれに限定されるものではない。任意選択的に、Ｎ1個のホストの一部または全部が、ベースボード管理コントローラ（Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ，ＢＭＣ）を含んでもよい。すなわち、Ｎ1個のホストが１つまたは複数のＢＭＣを含んでもよい。１つまたは複数のＢＭＣのうちの少なくとも１つは、コンフィギュレーション管理機能を有していてもよく、少なくとも１つのホストと、スイッチングデバイスと、少なくとも１つのＩ／Ｏデバイスとを含むネットワークユニットを管理および制御するように特に構成されている。説明の便宜上、以下の説明では、コンフィギュレーション管理機能を有するＢＭＣを管理ＢＭＣとよぶ。任意選択的に、管理ＢＭＣは、従来技術における管理ＣＰＵによって所有されるコンフィギュレーション管理機能を実装するように構成されていてもよい。しかしながら、従来の管理ＣＰＵとは異なり、管理ＢＭＣは、スイッチングデバイスと、管理ＢＭＣが属するネットワークユニット内のスイッチングデバイスに接続された少なくとも１つのホストおよび少なくとも１つのＩ／Ｏデバイスと、のコンフィギュレーション管理のみについて役割を担う一方、ネットワークに存在する可能性のある他のネットワークユニットのホスト、Ｉ／Ｏデバイスおよびスイッチングデバイスのコンフィギュレーション管理のついては役割を担わなくてもよい。本発明のこの実施形態はこれに限定されるものではない。
【００５８】
任意選択的に、Ｉ／Ｏデバイスは、特に、ホストバスアダプタ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ，ＨＢＡ）またはソリッドステートディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ，ＳＳＤ）などのデバイスであってもよい。これは本発明のこの実施形態に限定されるものではない。
【００５９】
本発明のこの実施形態においては、スイッチングデバイス２２０は、Ｎ2個のＰＣＩｅアップストリームポート２２１と、Ｍ2個のＰＣＩｅダウンストリームポート２２２と、内部処理装置２２３とを含んでもよい（ただしＮ2＞１かつＭ2≧１）。Ｎ2個のＰＣＩｅアップストリームポート２２１は、Ｎ1個のホスト２１０に接続するように構成されている。Ｍ2個のＰＣＩｅダウンストリームポート２２２は、Ｍ1個のＩ／Ｏデバイス２３０に接続するように構成されている。内部処理装置２２３は、スイッチングデバイスの内部接続ラインを用いることによりＭ2個のＰＣＩｅダウンストリームポート２２２に接続されていてもよく、また、スイッチングデバイスの内部接続ラインを用いることによりＮ2個のＰＣＩｅアップストリームポート２２１に接続されていてもよい。
【００６０】
具体的には、スイッチングデバイス２２０は、Ｎ2個のＰＣＩｅアップストリームポート２２１を使用してＮ1個のホスト２１０に接続されてもよい。Ｎ2＝Ｎ1の場合、すなわち、スイッチングデバイスのＰＣＩｅアップストリームポートの数がスイッチングデバイスに接続されたホストの数と等しい場合、Ｎ2個のＰＣＩｅアップストリームポートは、Ｎ1個のホストに一対一の対応関係で接続されていてもよい。Ｎ2＞Ｎ1の場合、すなわち、スイッチングデバイスのＰＣＩｅアップストリームポートの数がスイッチングデバイスに接続されたホストの数より多い場合、Ｎ2個のＰＣＩｅアップストリームポートのうちＮ1個は、Ｎ1個のホストに一対一の対応関係で接続されていてもよく、かつ、残りの（Ｎ2−Ｎ1）個のＰＣＩｅアップストリームポートはアイドル状態であるか、またはＰＣＩｅダウンストリームポートとして設定されてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００６１】
同様に、スイッチングデバイス２２０は、Ｍ2個のＰＣＩｅダウンストリームポート２２２を使用してＭ1個のＩ／Ｏデバイス２３０に接続されてもよい。Ｍ2＝Ｍ1の場合、すなわち、スイッチングデバイスのＰＣＩｅダウンストリームポートの数がスイッチングデバイスに接続されたＩ／Ｏデバイスの数に等しい場合、Ｍ2個のＰＣＩｅダウンストリームポートは、Ｍ1個のＩ／Ｏデバイスに１対１の対応関係で接続されていてもよい。Ｍ2＞Ｍ1の場合、すなわち、スイッチングデバイスのＰＣＩｅダウンストリームポートの数がスイッチングデバイスに接続されたＩ／Ｏデバイスの数より多い場合、Ｍ2個のＰＣＩｅダウンストリームポートのうちＭ1個はＮ1個のＩ／Ｏデバイスに１対１の対応関係で接続されてもよく、かつ、残りの（Ｍ2−Ｍ1）個のＰＣＩｅダウンストリームポートはアイドル状態であるか、またはＰＣＩｅアップストリームポートとして設定されてもよい。Ｍ2＜Ｍ1の場合、すなわちスイッチングデバイスのＰＣＩｅダウンストリームポートの数が、スイッチングデバイスに接続されたＩ／Ｏデバイスの数より小さい場合、ＰＣＩｅシステム２００は、１つまたは複数のＰＣＩｅスイッチをさらに含んでもよく、Ｍ2個のＰＣＩｅダウンストリームポートの一部または全部が、ＰＣＩｅスイッチを用いることによりＭ1個のＩ／Ｏデバイスに接続されてもよい。このように、スイッチングデバイスに接続されたＩ／Ｏデバイスの数が増えてもよく、しかもスイッチング性能は低下しない。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００６２】
任意選択的に、ＰＣＩｅシステム２００は、ＰＣＩｅスイッチをさらに含んでおり、Ｍ2個のＰＣＩｅダウンストリームポートは、ＰＣＩｅスイッチを用いることによって、Ｍ1個のＩ／Ｏデバイスに接続されてもよい。
【００６３】
加えて、スイッチングデバイス２２０は、内部処理装置２２３をさらに含んでいる。内部処理装置２２３は、特に、例えばプロセッサまたは／またはハードウェア処理回路等の処理モジュールであってもよい。任意選択的に、内部処理装置は、プロセッサおよびハードウェア回路によって実装されてもよい。代替的には、内部処理装置はハードウェア回路のみによって実装されてもよい。これは本発明のこの実施形態に限定されるものではない。
【００６４】
本発明のこの実施形態においては、内部処理装置は、スイッチングデバイス配下の物理デバイス（すなわち、機能モジュールを含まない実デバイス）を列挙するように構成されてもよく、例えば、Ｍ2個のＰＣＩｅダウンストリームポート２２２を使用して、スイッチングデバイスに接続された物理デバイスを判定してもよく、またはスイッチングデバイスに接続された複数の物理デバイスの情報、例えば識別子（ＢＤＦ）またはトポロジ構造といった情報をさらに取得してもよく、さらに、複数の物理デバイスに関する情報に従ってＰＣＩｅドメイン構造ツリーを構築してもよい。物理デバイスは、Ｉ／Ｏデバイスおよび／またはＰＣＩｅスイッチを含んでもよい。この場合、内部処理装置は、仮想ルートポート（Ｒｏｏｔ  Ｐｏｒｔ，ＲＰ）またはルートコンプレックス（Ｒｏｏｔ  Ｃｏｍｐｌｅｘ，ＲＣ）とみなしてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００６５】
任意選択的に、内部処理装置２２３は、デバイスの列挙を能動的に行ってもよく、例えば、システム初期化段階でデバイスの列挙を行ってもよい。代替的には、内部処理装置２２３は、別のデバイスからの指示を受けたときに、その指示に従ってデバイスの列挙を行ってもよい。例えば、内部処理装置２２３は、管理ＢＭＣから送信される初期化命令または列挙命令を受信し、初期化命令または列挙命令に従ってデバイスの列挙を行ってもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００６６】
具体的には、デバイス列挙を行う場合、内部処理装置２２３は、複数のコンフィギュレーションリード／ライトパケットを少なくとも１つのＰＣＩｅダウンストリームポート２２２に送信してもよい。コンフィギュレーションリード／ライトパケットは、リクエスト識別子（Ｒｅｑｕｅｓｔ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ，ＲＩＤ）およびコンプリータ識別子（Ｃｏｍｐｌｅｔｅｒ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ，ＣＩＤ）を保持するもので、ＲＩＤの値は内部処理装置２２３のＢＤＦに設定されてもよく、かつ、ＣＩＤの値は、順次、初期値から始まる番号を与えられてもよい。内部処理装置２２３は、複数のコンフィギュレーションリード／ライトパケットの少なくとも１つに対応するコンフィギュレーションリード／ライト応答パケットを受信してもよい。コンフィギュレーションリード／ライト応答パケットは、対応するコンフィギュレーションリード／ライトパケット内のＲＩＤおよびＣＩＤを保持する。このようにして、内部処理装置２２３は、コンフィギュレーションリード／ライト応答パケットを認識（例えばコンフィギュレーションリード／ライト応答パケット内のＣＩＤを認識）することにより、スイッチングデバイス２２０が、コンフィギュレーションリード／ライト応答パケット内のＣＩＤをＢＤＦ番号として有する物理デバイスに接続されているか否かを判定する。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００６７】
任意的実施形態においては、内部処理装置２２３がプロセッサとハードウェア回路とで実装されている（ここではプロセッサとハードウェア回路とは内部バスを用いることにより接続されている）場合、プロセッサは、初期化命令（または列挙命令）を管理ＢＭＣから受信し、初期化命令に従って、列挙パケットに関する情報であってタイプ０（Ｔｙｐｅ０）およびタイプ１（Ｔｙｐｅ１）のコンフィギュレーションリード／ライトパケットによって必要とされる情報を含む情報を生成し、生成した情報を内部バスに出力するように構成されていてもよい。ハードウェア回路は、内部バスを用いることにより、プロセッサによって生成された情報を受信し、その情報をトランザクション層パケット（Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ，ＴＬＰ）としてカプセル化し、内部処理装置２２３に接続された次レベルのモジュールまたは回路を用いることにより、ＴＬＰを少なくとも１つのＰＣＩｅダウンストリームポート２２２に送信してもよい。加えて、ハードウェア回路は、さらに、少なくとも１つのＰＣＩｅダウンストリームポート２２２によって送信されたコンフィギュレーションリード／ライト応答パケットを受信すると、コンフィギュレーションリード／ライト応答パケットを認識するように構成されていてもよい。例えば、ハードウェア回路は、少なくとも１つのＰＣＩｅダウンストリームポート２２２によって送信されたコンプリーション（Ｃｏｍｐｌｅｔｉｏｎ，ＣＰＬ）／（Ｃｏｍｐｌｅｔｉｏｎ  Ｄａｔａ，ＣＰＬＤ）パケットを受信し、受信したＣＰＬ／ＣＰＬＤパケット内のＩＤを認識してもよい。ＣＰＬ／ＣＰＬＤパケットは、ハードウェア回路の割り込みトリガにより、内部バスを用いることにより内部処理装置２２３のプロセッサに送信されてもよい。具体的には、ハードウェア回路は、ＣＰＬ／ＣＰＬＤパケットを内部バスのタイムシーケンスに従ったデータフォーマットに分解し、ＣＰＬ／ＣＰＬＤパケットを内部バスに送信してもよい。内部処理装置２２３のプロセッサは、さらに、受信したパケット情報を解析し、パケット情報を格納して、パケット情報に従ってＰＣＩｅドメインの構造ツリーを生成するように構成されていてもよい。デバイスの列挙が完了した後、プロセッサは、さらに、複数のＰＣＩｅアップストリームポート２２１を使用して、生成されたＰＣＩｅ構造ツリーに関する情報を管理ＢＭＣに送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００６８】
したがって、本発明のこの実施形態によって提供されるＰＣＩｅシステムは、少なくとも１つのホストと、スイッチングデバイスと、少なくとも１つのＩ／Ｏデバイスとを含んでいる。スイッチングデバイスは、少なくとも１つのホストに接続するように構成された複数のＰＣＩｅアップストリームポートと、少なくとも１つのＩ／Ｏデバイスに接続するように構成された少なくとも１つのＰＣＩｅダウンストリームポートと、内部処理装置とを含んでいる。処理装置は、内部バスを用いることにより少なくとも１つのＰＣＩｅダウンストリームポートに接続されており、内部接続ラインを用いることによりコンフィギュレーションリード／ライトパケットを少なくとも１つのＰＣＩｅダウンストリームポートに送信し、内部接続ラインを用いることにより少なくとも１つのＰＣＩｅダウンストリームポートによって送信されたコンフィギュレーションリード／ライト応答パケットを受信し、コンフィギュレーションリード／ライト応答パケットに保持されたコンプリータ識別子に従って、スイッチングデバイスが、コンプリータ識別子を識別子として有するＩ／Ｏデバイスに接続されていると判定するように構成されている。
このように、ＰＣＩｅシステム内のスイッチングデバイスが故障している場合、スイッチングデバイスに接続されている少なくとも１つのホストおよび少なくとも１つのＩ／Ｏデバイスのみが影響を受けることがあり、他のスイッチングデバイス、ならびに、ＰＣＩｅシステム内の別のスイッチングデバイスに接続されたホストおよびＩ／Ｏデバイスは影響を受けることがない。したがって、従来の外付けされた管理ＣＰＵと比較して、ＰＣＩｅシステムの安定性および信頼性を向上することができる。
【００６９】
任意選択的に、内部処理装置２２３は、以下の機能の少なくとも１つ、すなわち、ホットスワップイベント処理、異常イベント処理およびコンポーネント構成（例えばレジスタ構成）の少なくとも１つの機能をさらに有していてもよい。
【００７０】
内部処理装置２２３は、ホットスワップイベントを処理するように構成されていてもよい。具体的には、内部処理装置２２３は、管理ＢＭＣおよび／またはハードウェアによってトリガされるホットスワップイベントを検出して、対応するホットスワップ処理手順を行ってもよい。内部処理装置２２３は、さらに、異常イベントを処理するように構成されていてもよい。具体的には、内部処理装置２２３は、ハードウェア異常を処理し、異常イベントログを記録して、異常イベントログを報告してもよい。加えて、内部処理装置２２３は、さらに、コンポーネントを構成するように構成されていてもよい。具体的には、内部処理装置２２３は、初期化段階でレジスタを構成し、または、レジスタの構成を変更してもよい。内部処理装置２２３は、デバイスの列挙のプロセスにおいてコンポーネントのコンフィギュレーションに必要な情報を取得し、または、管理ＢＭＣによって送信されたコンフィギュレーション管理情報を受信して、コンフィギュレーション管理情報等に従ってコンポーネントを構成してもよい。これは本発明のこの実施形態に限定されるものではない。
【００７１】
任意的実施形態においては、内部処理装置２２３がプロセッサとハードウェア回路とによって実装されている場合、異常イベント処理の機能を実装するにあたり、内部処理装置２２３内のハードウェア回路はＩ／Ｏデバイスの物理機能に関する異常情報を獲得して、内部処理装置２２３内のプロセッサによって構成された異常情報を用いることによりプロセッサをトリガしてもよい。内部処理装置２２３のプロセッサは異常種別を認識してもよい。異常種別が具体的に修正可能または修正不能な非致命的エラーである場合、プロセッサは、自己処理を行い、報告することなく警告のみを出力してもよい。異常種別が具体的に修正不能な致命的エラーである場合、プロセッサは、Ｉ／Ｏ装置のリンクを破棄し、破棄されたＩ／Ｏ装置のリンクを管理ＢＭＣに報告してもよい。リンクが破棄されたＩ／Ｏ装置を学習した後で、管理ＢＭＣはＩ／Ｏデバイスに対応するドライブをアンインストールしてもよい。加えて、任意選択的に、管理ＢＭＣは、シェルフ管理モジュール（Ｓｈｅｌｆ  Ｍａｎａｇｅｍｅｎｔ  Ｍｏｄｕｌｅ，ＳＭＭ）に対して、ネットワーク情報の更新を通知してもよい。ＳＭＭは、異常を有するＩ／Ｏデバイスに対応するホストを管理および制御し、例えば、ドライブのアンインストールを行いまたは初期化処理をリセットする。これは本発明のこの実施形態に限定されるものではない。
【００７２】
本発明のこの実施形態においては、内部処理装置２２３は、Ｍ1個のＩ／Ｏデバイス２３０から送信されるデータパケットを、Ｍ2個のＰＣＩｅダウンストリームポート２２２を使用して受信し、受信されたデータパケットを処理し、例えば、タイムシーケンスを変換して、処理されたデータパケットを、内部接続ラインを利用してＮ2個のＰＣＩｅアップストリームポート２２１に送信してもよい。加えて、内部処理装置２２３は、さらに、Ｎ1個のホスト２１０によって送信されたデータパケットを、Ｎ2個のＰＣＩｅアップストリームポート２２１を使用して受信し、受信されたデータパケットを処理し、例えば、タイムシーケンスを変換して、処理されたデータパケットを、内部接続ラインを用いることによりＭ2個のＰＣＩｅダウンストリームポート２２２に送信するように構成されていてもよい。
【００７３】
任意的実施形態においては、内部処理装置２２３がプロセッサとハードウェア回路とにより実装されている場合、ホストにより送信されるデータを受信する際、内部処理装置内のプロセッサは、管理ＢＭＣのインタフェースのバスのタイムシーケンスを解析して、内部バスのタイムシーケンスにおけるデータを出力してもよい。次レベルのモジュールまたは回路によって転送されたデータを受信する際、プロセッサは、内部バスのタイムシーケンスを解析して、管理ＢＭＣのインタフェースのバスのタイムシーケンスにデータを出力してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００７４】
任意選択的に、本発明のこの実施形態においては、管理ＢＭＣはネットワークポートを用いることによりネットワーク情報（またはネットワーク構成情報）をＳＭＭに報告してもよい。ＳＭＭは、ネットワーク全体を管理する役割を担うように構成されていてもよい。ユーザは、要求仕様に応じて、ＳＭＭのヒューマン‐コンピュータ・インタラクション・インタフェースを利用して、ホストとＩ／Ｏデバイスとの間のマッピング接続を設定してもよい。この場合、任意選択的に、管理ＢＭＣは、さらに、ＳＭＭによって送信される構成要求仕様情報を受信して、構成要求仕様情報に従ってコンフィギュレーション管理情報を決定するように構成されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００７５】
任意選択的に、本発明のこの実施形態においては、Ｎ2個のＰＣＩｅアップストリームポート２２１お各々が、ＰＣＩｅコンフィギュレーション空間を有し、かつ、Ｍ2個のＰＣＩｅダウンストリームポート２２２はいずれもＰＣＩｅコンフィギュレーション空間を有しない。
【００７６】
本発明のこの実施形態においては、スイッチングデバイス２２０におけるＰＣＩｅアップストリームポート２２１はＰＣＩｅコンフィギュレーション空間を有し、標準ＰＣＩｅポート（すなわち、標準Ｐ２Ｐアップストリームブリッジ）である。スイッチングデバイス２２０におけるＰＣＩｅダウンストリームポート２２２は、ＰＣＩｅコンフィギュレーション空間を有しておらず、標準ＰＣＩｅポートではない（すなわち、標準Ｐ２Ｐダウンストリームブリッジではない）。任意選択的に、スイッチングデバイス２２０は、Ｍ2個のＰＣＩｅダウンストリームポート２２２のＰＣＩｅコンフィギュレーション空間を追加的に格納しなくてもよい、すなわち、スイッチングデバイス２２０におけるＰＣＩｅダウンストリームポート２２２にはＰＣＩｅコンフィギュレーション空間が存在しない。代替的には、スイッチングデバイス２２０は、Ｍ2個のＰＣＩｅダウンストリームポート２２２の各々のＰＣＩｅコンフィギュレーション空間を追加的に格納してもよい、すなわち、ＰＣＩｅダウンストリームポート２２２のＰＣＩｅコンフィギュレーション空間は、スイッチングデバイス２２０におけるＰＣＩｅダウンストリームポート２２２から分離されている。代替的には、スイッチングデバイス２２０は、Ｍ2個のＰＣＩｅダウンストリームポート２２２のうち一部のＰＣＩｅコンフィギュレーション空間を追加的に格納しつつ、それ以外のＰＣＩｅダウンストリームポート２２２のＰＣＩｅコンフィギュレーション空間を追加的に格納しなくてもよい。これは本発明のこの実施形態に限定されるものではない。
【００７７】
任意選択的に、本発明のこの実施形態においては、ＰＣＩｅダウンストリームポート２２２は、少なくとも１つのＰＣＩｅコンフィギュレーション空間に対応していてもよく、この少なくとも１つのＰＣＩｅコンフィギュレーション空間はＰＣＩｅダウンストリームポート２２２に対応し、ＰＣＩｅダウンストリームポート２２２はスイッチングデバイス２２０内に別個に配置されてもよい、すなわち、ＰＣＩｅダウンストリームポート２２２は、ＰＣＩｅダウンストリームポート２２２に対応する少なくとも１つのｅＰＣＩｅコンフィギュレーション空間から分離されていてもよい。加えて、任意選択的に、ＰＣＩｅダウンストリームポート２２２に対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間は、Ｎ1個のホスト２１０に対応するＰＣＩｅドメインに属してもよい。このように、スイッチングデバイス２２０がＰＣＩｅダウンストリームポート２２２に対応する複数のＰＣＩｅコンフィギュレーション空間を格納すると、ＰＣＩｅダウンストリームポート２２２は、システムのリソース利用を改善するために、ホスト２１０によって使用される複数のポートとして用いられてもよい。
【００７８】
Ｎ2個のスイッチングデバイス２２０におけるＰＣＩｅアップストリームポート２２１がすべてＰＣＩｅコンフィギュレーション空間を有し、かつ、Ｍ2個のＰＣＩｅダウンストリームポート２２２がいずれもＰＣＩｅコンフィギュレーション空間を有しない例は、前述した実施形態の説明のために用いられていることが理解されるべきである。任意選択的に、Ｍ2個のＰＣＩｅダウンストリームポート２２２の一部がＰＣＩｅコンフィギュレーション空間を有していてもよく、また、ＰＣＩｅダウンストリームポート２２２の他の一部がＰＣＩｅコンフィギュレーション空間を有しなくてもよい。代替的には、Ｍ2個のＰＣＩｅダウンストリームポート２２２のすべてがＰＣＩｅコンフィギュレーション空間を有する。別の任意的実施形態においては、Ｎ2個のＰＣＩｅアップストリームポート２２１の一部または全部がＰＣＩｅコンフィギュレーション空間を有しなくてもよい。これは本発明のこの実施形態に限定されるものではない。
【００７９】
任意選択的に、図３に示すように、スイッチングデバイス２２０は、Ｎ3個の仮想エンドポイントデバイスモジュール（ｖＥＰと略す）２２４と、マッピングモジュール（ＭＡＰ）２２５と、Ｍ3個のミラーリングエンドポイントデバイスモジュール（ｍＥＰと略す）２２６とをさらに含んでいる。
【００８０】
Ｎ3個のｖＥＰ２２４は、Ｎ2個のＰＣＩｅアップストリームポート２２１に接続されていてもよく、Ｍ2個のＰＣＩｅダウンストリームポート２２２に接続されたＭ1個のＩ／Ｏデバイス２３０の機能がＮ2個のＰＣＩｅアップストリームポート２２１に接続されたＮ1個のホスト２２１（ただしＮ3≧１）によって用いられるようにＭ1個のＩ／Ｏデバイス２３０の機能を仮想化するように構成されている。
【００８１】
Ｍ3個のｍＥＰ２２６は、Ｍ2個のＰＣＩｅダウンストリームポート２２２に接続されていてもよく、Ｍ2個のＰＣＩｅダウンストリームポート２２２に接続されたＭ1個のＩ／Ｏデバイス２３０（ただしＭ3≧１）のＰＣＩｅコンフィギュレーションの内容を格納するように構成されている。
【００８２】
マッピングモジュール２２５は、Ｎ3個のｖＥＰ２２４とＭ3個のｍＥＰ２２６とに別個に接続されていてもよく、Ｎ1個のホスト２１０に対応するＰＣＩｅドメインとＭ1個のＩ／Ｏデバイス２３０に対応するＰＣＩｅドメインとの間のマッピングを実装するように構成されている。
【００８３】
本発明のこの実施形態においては、任意選択的に、スイッチングデバイス２２０は、１つまたは複数のｍＥＰ２２６と、マッピングモジュール２２５と、１つまたは複数のｖＥＰ２２４とをさらに含んでもよい。Ｎ3の値は、Ｎ1個のホスト２１０によって用いられる必要があるまたは用いられることができる機能の数によって決定されてもよく、Ｎ3は、Ｍ3と等しくてもよく、等しくなくてもよい。例えば、Ｎ3およびＭ3は双方ともＭ1個のＩ／Ｏデバイス２３０が所有する機能の総数（例えば、ＶＦの総数）に等しくてもよい。これは本発明のこの実施形態に限定されるものではない。
【００８４】
具体的には、ｍＥＰ２２６は、実在するＥＰのミラーリングであってもよく、Ｉ／Ｏデバイス（すなわち、エンドポイントデバイス）２３０のＰＣＩｅコンフィギュレーションの内容を格納するように構成されている。ｖＥＰ２２４は、エンドポイントデバイス２３０の物理機能および／または仮想機能を仮想化するように構成されていてもよく、そして、具体的には、エンドポイントデバイス２３０の物理機能または仮想機能に対応するＰＣＩｅコンフィギュレーション空間であってもよい。マッピングモジュール２２５は、受信された情報および／またはデータが送信された送信先のモジュール（またはコンポーネント）を判定するために、Ｎ1個のホスト２１０に対応するＰＣＩｅドメインと、少なくとも１つのＩ／Ｏデバイス２３０に対応するＰＣＩｅドメインと、に対応する識別子および／またはアドレスの間のマッピングを実装するように構成されていてもよい。任意的な例においては、ｖＥＰ２２４は、ホスト２１０に対応するＰＣＩｅドメインに属していてもよく、ｍＥＰ２２６は、Ｉ／Ｏデバイス２３０に対応するＰＣＩｅドメインに属していてもよい。これに対応して、マッピングモジュール２２５は、Ｎ1個のホスト２１０とＭ1個のＩ／Ｏデバイス２３０との間で送信されるデータパケットに対する天象処理を行うために、Ｍ3個のｍＥＰ２２６の識別子および／またはアドレスと、Ｎ3個のｖＥＰ２２４の識別子および／またはアドレスとの間のマッピングを実装する（すなわち、ｖＥＰからｍＥＰへのマッピングを行う、または、ｍＥＰからｖＥＰへのマッピングを行う）ように特に構成されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００８５】
任意選択的に、Ｎ2個のＰＣＩｅアップストリームポート２２１、Ｎ3個のｖＥＰ２２４、マッピングモジュール２２５、Ｍ3個のｍＥＰ２２６およびＭ2個のＰＣＩｅダウンストリームポート２２２は、順次接続されていてもよい。具体的には、ｖＥＰ２２４の一端がＰＣＩｅアップストリームポート２２１に接続されていてもよく、その他端がマッピングモジュール２２５に接続されていてもよい。Ｎ3個のｖＥＰ２２４はＮ2個のＰＣＩｅアップストリームポート２２１の一部または全部に直接的または間接的に接続されていてもよい。ｍＥＰ２２６の一端がＰＣＩｅダウンストリームポート２２２に接続されていてもよく、その他端がマッピングモジュール２２５に接続されていてもよい。Ｍ3個のｍＥＰ２２６は、Ｍ2個のＰＣＩｅダウンストリームポート２２２の一部または全部に直接的または間接的に接続されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００８６】
Ｍ2個のＰＣＩｅダウンストリームポート２２２のＰＣＩｅコンフィギュレーション空間がスイッチングデバイス２２０に追加的に設定されていない場合、Ｎ3個のｖＥＰ２２４は、Ｎ2個のＰＣＩｅアップストリームポート２２１の一部または全部に直接的に接続されていてもよい。任意選択的に、スイッチングデバイス２２０がさらに、１つまたは複数のＰＣＩｅダウンストリームポート２２２に対応するＰＣＩｅコンフィギュレーション空間を追加的に格納する場合、例えば、図３に示すように、スイッチングデバイス２２０は、Ｎ4個のＰＣＩｅダウンストリームポートコンフィギュレーション空間（ＤＰ＿ＣＦＧと略す）２２７を格納してもよく、各ＰＣＩｅダウンストリームポート２２２は、０個、１個または複数個のＤＰ＿ＣＦＧ２２７に対応していてもよい。この場合、Ｎ3個のｖＥＰ２２４は、Ｎ4個のＤＰ＿ＣＦＧ２２７を用いることによりＮ2個のＰＣＩｅアップストリームポート２２１に接続されていてもよい。このように、ＰＣＩｅアップストリームポート２２１は、各ホストによって用いられることができるｖＥＰの数を増加させてシステムパフォーマンスを増大させるために、ＰＣＩｅダウンストリームポート２２２に対応するＰＣＩｅコンフィギュレーション空間を用いることにより、ｖＥＰ２２４に接続されている。
【００８７】
加えて、本発明のこの実施形態においては、仮想機能をホストにおいて用いるためにＰＣＩｅシステムがＷｉｎｄｏｗｓのあらゆるバージョンをサポートするように、仮想機能がホストに対して提示される。
【００８８】
任意的実施形態においては、マッピングモジュール２２５は、
Ｎ1個のホスト２１０に対応するＰＣＩｅドメイン内の識別子からＭ1個のＩ／Ｏデバイス２３０に対応するＰＣＩｅドメイン内の識別子へのマッピング関係を格納するために用いられる第１のマッピングテーブルと、
Ｍ1個のＩ／Ｏデバイス２３０に対応するＰＣＩｅドメイン内の識別子からＮ1個のホスト２１０に対応するＰＣＩｅドメイン内の識別子へのマッピング関係を格納するために用いられる第２のマッピングテーブルと、
を格納している。
【００８９】
任意選択的に、第１のマッピングテーブルは、具体的に、Ｎ3個のｖＥＰ２２４の識別子からＭ3個のｍＥＰ２２６の識別子へのマッピング関係、例えば、少なくとも１つのｖＥＰ２２４のＢＤＦ番号から少なくとも１つのｍＥＰ２２６のＢＤＦ番号へのマッピング関係、を格納するために用いられてもよい。第２のマッピングテーブルは、具体的に、Ｍ3個のｍＥＰ２２６の識別子からＮ3個のｖＥＰ２２４の識別子へのマッピング関係を格納するために用いられてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００９０】
任意選択的に、本発明のこの実施形態においては、マッピングモジュール２２５は、レジスタとハードウェア処理回路とによって実装されてもよい。この場合、第１のマッピングテーブルおよび第２のマッピングテーブルは、レジスタによって別個に格納されてもよい。加えて、任意選択的に、第１のマッピングテーブルおよび第２のマッピングテーブル内の識別子は、ＢＤＦによって表されてもよい。代替的には、各機能のインデックスを取得するために、Ｉ／Ｏデバイス２３０の機能またはｖＥＰ２２４の機能は、番号を再度与えられてもよく、例えば、１から開始する連番で番号を付与されてもよく、インデックスは、ストレージスペースを節約するために、ファンクションインデックス形式にてマッピングテーブルに格納される。
【００９１】
表１および表２は、それぞれ、第１のマッピングテーブルおよび第２のマッピングテーブルの可能な実装形態を示す。表１に示すように、第１のマッピングテーブルは、４つの列を含んでもよい。「ファンクションインデックス」列内の値は、Ｉ／Ｏデバイス２３０に対応するＰＣＩｅドメイン内の機能のインデックスを示す。インデックスは、全機能のＢＤＦに番号を付することによって取得されてもよく、１ないし数ビットを占めてもよい。「イネーブル表示」列内の値は、ファンクションインデックスに対応する機能が存在するか否かを示す。「ｍＥＰバス番号」および「ｍＥＰファンクション番号」は、それぞれ、「ファンクションインデックス」に対応するｍＥＰ２２６のバス番号およびデバイスファンクション番号を示してもよい。ｍＥＰバス番号およびｍＥＰファンクション番号は、組み合わせられてｍＥＰ２２６のＢＤＦとなる。ｍＥＰ２２６のＢＤＦ番号は、ｍＥＰ２２６に対応するＩ／Ｏデバイス２３０のＢＤＦ番号と関連付けられてもよい。第１のマッピングテーブルに含まれる行の数は本発明のこの実施形態においては限定されない。例えば、第１のマッピングテーブルは、１０２４個のエントリを含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００９２】
【表１】
2019145153.tif 000003
【００９３】
表２に示すように、第２のマッピングテーブルは、５つの列を含んでもよい。「ファンクションインデックス」列内の値は、ホスト２１０に対応するＰＣＩｅドメイン内の機能（ホスト２１０によって列挙により発見される仮想機能モジュールおよび／または物理デバイスであってもよい）のインデックス（例えば、ｖＥＰ２２４のファンクションインデックス）を示す。インデックスは、全機能のＢＤＦに番号を付することによって取得されてもよく、１ないし数ビットを占めてもよい。「イネーブル表示」列内の値は、ファンクションインデックスに対応する機能が存在するか否かを示す。ｅＶＦバス番号およびｅＶＦデバイスファンクション番号は、それぞれ、ファンクションインデックスに対応するｅＶＦ２２４のバス番号およびデバイスファンクション番号を示す。ｅＶＦバス番号およびｅＶＦデバイスファンクション番号は、組み合わせられてｅＶＦ２２４のＢＤＦとなる。「ＰＥ表示」列内の値は、ファンクションインデックスに対応する機能がｖＦおよびＰＦのいずれであるかを示すために用いられる。第２のマッピングテーブルに含まれる行の数は本発明のこの実施形態においては限定されない。例えば、第２のマッピングテーブルは、１０２４個のエントリを含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００９４】
【表２】
2019145153.tif 000004
【００９５】
このように、ホスト２１０に対応するＰＣＩｅドメイン内の識別子とＩ／Ｏデバイス２３０に対応するＰＣＩｅドメイン内の識別子との間のマッピング関係は、マッピングテーブル状に格納される。従来技術と比較すると、この解決策は、マッピングモジュール２２５によって占有されるストレージスペースおよび複雑さを低減させることができ、システムのストレージリソースを節約することができる。加えて、全機能のＢＤＦに番号が与えられ、これらの番号がマッピングテーブルに格納される。１６ビットのＢＤＦを格納するのと比較すると、マッピングモジュール２２５によって占有されるストレージスペースはさらに低減されることができる。
【００９６】
任意選択的に、本発明のこの実施形態においては、ｍＥＰ２２６に格納された、エンドポイントデバイス２３０のＰＣＩｅコンフィギュレーションの内容は、特に、エンドポイントデバイス２３０のＰＣＩｅコンフィギュレーション空間であってもよく、または、エンドポイントデバイス２３０のＰＣＩｅコンフィギュレーション空間における部分コンフィギュレーションの内容であってもよい。例えば、Ｍ3個のｍＥＰ２２６のすべてが特にマッピングテーブルであってもよい。代替的には、Ｍ3個のｍＥＰ２２６の一部が特にマッピングテーブルであってもよい。これは本発明のこの実施形態に限定されるものではない。
【００９７】
任意的実施形態においては、Ｍ3個のｍＥＰ２２６のうち第１番目のｍＥＰは、特に第３のマッピングテーブルである。第３のマッピングテーブルは、Ｍ1個のＩ／Ｏデバイスのうち第１のＩ／Ｏデバイスの仮想機能のベースアドレスレジスタ（Ｂａｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ，ＢＡＲ）アドレスとＢＡＲサイズとを格納するために用いられる。第１のｍＥＰは、第１のＩ／Ｏデバイスのコンフィギュレーションの内容を格納するように構成されている。
【００９８】
表３は、第３のマッピングテーブルの実装例を示す。第３のマッピングテーブルは、ｍＥＰインデックスと、ｍＥＰインデックスに対応するＢＡＲアドレスおよびＢＡＲサイズとを含む。任意選択的に、各ｍＥＰは、６つのＢＡＲアドレスを含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【００９９】
【表３】
2019145153.tif 000005
【０１００】
この場合、マッピングモジュール２２５は、第３のマッピングテーブルおよび第１のマッピングテーブルを参照して、ホスト２１０のＰＣＩｅドメイン内のアドレスからＩ／Ｏデバイス２３０のＰＣＩｅドメイン内のアドレスへのマッピングを実装してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１０１】
このように、Ｉ／Ｏデバイスの仮想機能のアドレス情報は、マッピングテーブル状に格納される。従来技術と比較すると、この解決策は、ｍＥＰによって占有されるストレージスペースを低減させることができ、システムのストレージリソースを節約することができる。
【０１０２】
表１ないし表３の例は当業者が本発明のこの実施形態をより一層理解が容易となることを意図したものであって本発明のこの実施形態の範囲を限定する趣旨ではないことが理解されるべきである。明らかなように、当業者は、提供された表１ないし表３の例に従って様々な等価的な修正または変更を行ってもよい。修正または変更されたものもまた、本発明のこの実施形態の範囲に属する。
【０１０３】
任意選択的に、本発明のこの実施形態においては、第１のマッピングテーブル、第２のマッピングテーブルまたは第３のマッピングテーブルは、スイッチングデバイス２２０内の内部処理装置２２３とホスト２１０とによって共同的に構成されていてもよい。例えば、内部処理装置２２３は、デバイス列挙または別の仕方により、スイッチングデバイス２２０に接続された物理デバイスに関する情報を、Ｍ1個のＰＣＩｅダウンストリームポート２２２を使用して取得し、かつ取得された情報に従って、マッピングテーブルを構成してもよく、例えば、物理デバイスに関する情報をマッピングテーブルに格納してもよい。ホスト２１０は、デバイス列挙（すなわち、ホスト２１０配下の物理デバイスおよび／または機能モジュールを発見する）プロセスにおいてまたは別の仕方により取得された、ホスト２１０に対応するＰＣＩｅドメインに関する構成情報を、マッピングテーブル内に格納してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１０４】
加えて、Ｎ3個のｖＥＰ２２４、マッピングモジュール２２５およびＭ3個のｍＥＰ２２６は、レジスタにより、またはレジスタとハードウェア回路とにより実装されてもよく、ソフトウェアコードを用いることによりＰＣＩｅ構造ツリーを実装することがなく、利用が簡単である。加えて、ソフトウェア実装プロセスにおける格納および転送プロセスは、仮想デバイスおよび実デバイスのコンフィギュレーションライトのデュアルオペレーションを用いることにより回避される。
【０１０５】
本発明のこの実施形態においては、ＰＣＩｅシステム２００は、複数の動作モードをサポートしていてもよい。複数の動作モードは、以下のモード、すなわち、ＶＦダイレクトモード、ＶＦシェアドモード、ＰＦシェアドモードおよびＥＰ透過的送信モードのうち少なくとも１つのモードを含んでもよい。ＶＦダイレクトモードおよびＶＦシェアドモードは、ＳＲＩＯＶをサポートするＩ／Ｏデバイスに適用されてもよい。ＰＦシェアドモードは、複数の機能をサポートするＩ／Ｏデバイスに適用されてもよい。ＥＰ透過的送信モードは、単機能Ｉ／Ｏデバイスに適用されてもよい。
【０１０６】
具体的には、ＶＦダイレクトモードでは、Ｎ3個のｖＥＰ２２４は、Ｍ1個のＩ／Ｏデバイス２３０の仮想機能を仮想化するように構成されている。例えば、図４に示すように、ＰＣＩｅシステムは、２つのホストすなわちホスト０およびホスト１と、ＰＣＩｅスイッチと、２つのエンドポイントデバイスすなわちＥＰ０およびＥＰ１と、スイッチングデバイスとを含んでもよい。スイッチングデバイスは、ホスト０およびホスト１にそれぞれ接続された２つのＰＣＩｅアップストリームポートと、ＰＣＩｅスイッチを用いることによりＥＰ０およびＥＰ１にそれぞれ接続された２つのＰＣＩｅダウンストリームポートと、２つのＰＣＩｅダウンストリームポートにそれぞれ対応するＰＣＩｅコンフィギュレーション空間ＤＰ＿ＣＦＧ０およびＤＰ＿ＣＦＧ１と、内部処理装置と、マッピングモジュールと、ｖＥＰ０と、ｖＥＰ１とを含んでいる。ｖＥＰ０は、ＤＰ＿ＣＦＧ０を用いて一方のＰＣＩｅアップストリームポートに接続され、かつ、ｖＥＰ１はＤＰ＿ＣＦＧ１を用いて他方のＰＣＩｅアップストリームポートに接続されている。ＥＰ０およびＥＰ１の各々は、ＰＦとしてＰＦ０を、および、ＶＦとしてＰＦ０に対応するＶＦ０を有する。この場合、ｖＥＰ０は、ＥＰ０のＶＦ０がホスト０によって用いられるように、ＶＦ０を仮想化するように構成されていてもよい。具体的には、ｖＥＰ０は、ＥＰ０のＰＦ０およびＶＦ０のＰＣＩｅとのコンフィギュレーション空間の組み合わせであってもよい。ｖＥＰ１は、ＥＰ０のＶＦ０がホスト１によって用いられるように、ＶＦ０を仮想化するように構成されていてもよい。具体的には、ｖＥＰ１は、ＥＰ１のＰＦ０およびＶＦ０のＰＣＩｅコンフィギュレーション空間の組み合わせであってもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１０７】
任意選択的に、ＶＦダイレクトモードでは、Ｍ1個のＩ／Ｏデバイス２３０のＰＦドライブは、管理ＢＭＣによってロードされてもよく、Ｍ1個のＩ／Ｏデバイス２３０のＶＦドライブは、Ｎ1個のホスト２１０のプロセッサによってロードされてもよい。具体的には、各ホストは、ホストによって列挙されたｖＥＰによって仮想化された、Ｉ／ＯデバイスのＶＦドライブをロードしてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１０８】
ＶＦシェアドモードでは、Ｎ3個のｖＥＰ２２４は、Ｍ1個のＩ／Ｏデバイス２３０の物理機能および仮想機能を仮想化するように構成されている。この場合、ｖＥＰ２２４によって仮想化された機能のうち、ＶＦのみがホスト２１０によって使用されるサービスポートとして用いられてもよく、ＰＦは、ホスト２１０によって使用されるサービスポートとして使用されることができない。任意選択的に、ｖＥＰ２２４は、特に、仮想化されたＰＦのＰＣＩｅコンフィギュレーション空間であってもよい。ＰＣＩｅコンフィギュレーション空間は、ＳＲＩＯＶケイパビリティスペースを含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。例えば、図５に示すように、ＰＣＩｅシステムは、２つのホストすなわちホスト０およびホスト１と、ＰＣＩｅスイッチと、エンドポイントデバイスとしてＥＰ０と、スイッチングデバイスとを含んでもよい。スイッチングデバイスは、ホスト０およびホスト１にそれぞれ接続された２つのＰＣＩｅアップストリームポートと、ＰＣＩｅスイッチを用いることによりＥＰ０に接続されたＰＣＩｅダウンストリームポートと、ＰＣＩｅダウンストリームポートに対応する２つのＰＣＩｅコンフィギュレーション空間ＤＰ＿ＣＦＧ０およびＤＰ＿ＣＦＧ１と、内部処理装置と、マッピングモジュールと、ｖＥＰ０と、ｖＥＰ１とを含んでいる。ＥＰ０は、物理機能（Ｐｈｙｓｉｃａｌ  Ｆｕｎｃｔｉｏｎ，ＰＦ）としてＰＦ０を有し、ＰＦ０に対応する２つの仮想機能（Ｖｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎ，ＶＦ）としてＶＦ０およびＶＦ１をもつ。この場合、ｖＥＰ０およびｖＥＰ１は、具体的に、それぞれＶＦ０およびＶＦ１を仮想化するために、ＳＲＩＯＶケイパビリティスペースを保持する、ＰＦ０のＰＣＩｅコンフィギュレーション空間であってもよい。任意選択的に、ＶＦシェアドモードでは、Ｍ1個のＩ／Ｏデバイス２３０のＰＦドライブは、管理ＢＭＣによってロードされてもよい。ＶＦダイレクトモードとは異なり、Ｎ1個のホスト２１０のプロセッサは、さらに、Ｎ3個のｖＥＰ２２４によって仮想化されたＶＦを有効にするために、Ｎ3個のｖＥＰ２２４に対応するＰＦドライブをロードする必要があるため、Ｎ1個のホスト２１０はＶＦを正常に利用することができる。
【０１０９】
ＰＦシェアドモードでは、Ｎ3個のｖＥＰ２２４は、Ｍ1個のＩ／Ｏデバイス２３０の物理機能を仮想化するように構成されていてもよい。この場合、任意選択的に、Ｍ1個のＩ／Ｏデバイス２３０は、ＰＦのみを有しＶＦを有しなくてもよい、すなわち、Ｍ1個のＩ／Ｏデバイス内のＰＦは、ＰＦに対応するＶＦを有しない。任意選択的に、ｖＥＰ２２４は、特に、ｖＥＰ２２４によって仮想化されたＰＦのＰＣＩｅコンフィギュレーション空間であってもよく、ＰＣＩｅコンフィギュレーション空間は、ＳＲＩＯＶケイパビリティスペースを含まなくてもよい。例えば、図６に示すように、ＰＣＩｅシステムは、２つのホストすなわちホスト０およびホスト１と、ＰＣＩｅスイッチと、エンドポイントデバイスとしてＥＰ０と、スイッチングデバイスとを含んでもよい。スイッチングデバイスは、ホスト０およびホスト１にそれぞれ接続された２つのＰＣＩｅアップストリームポートと、ＰＣＩｅスイッチを用いることによりＥＰ０に接続されたＰＣＩｅダウンストリームポートと、ＰＣＩｅダウンストリームポートに対応する２つのＰＣＩｅコンフィギュレーション空間ＤＰ＿ＣＦＧ０およびＤＰ＿ＣＦＧ１と、マッピングモジュールと、ｖＥＰ０と、ｖＥＰ１とを含んでいる。ＥＰ０は２つのＰＦｓすなわちＰＦ０およびＰＦ１を有し、ＶＦを有しない。この場合、ｖＥＰ０は、ＰＦ０がホスト１によって用いられるようにＰＦ０を仮想化するように構成されていてもよい。ｖＥＰ１は、ＰＦ１がホスト２によって用いられるように、ＰＦ１を仮想化するように構成されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。任意選択的に、ＰＦシェアドモードでは、Ｍ1個のＩ／Ｏデバイス２３０のＰＦドライブは、Ｎ1個のホスト２１０のプロセッサによってロードされてもよい。具体的には、各ホスト２１０のプロセッサは、プロセッサによって列挙されたｖＥＰによって仮想化されたＰＦのドライブをロードしてもよい。
【０１１０】
ＥＰ透過的送信モードでは、スイッチングデバイス２２０は、スイッチングデバイス２２０に接続されたＭ1個のＩ／Ｏデバイス２３０とＮ1個のホスト２１０との間で送信された情報を透過的に送信してもよい。この場合、Ｍ1個のＩ／Ｏデバイス２３０は、単機能デバイスであってもよい、すなわち、ＰＦのみを有し、ＶＦを有しなくてもよい。例えば、図７に示すように、ＰＣＩｅシステムは、２つのホストすなわちホスト０およびホスト１と、ＰＣＩｅスイッチと、３つのエンドポイントデバイスすなわちＥＰ０、ＥＰ１およびＥＰ２と、スイッチングデバイスとを含んでもよい。スイッチングデバイスは、ホスト０およびホスト１にそれぞれ接続された２つのＰＣＩｅアップストリームポートと、ＥＰ０およびＥＰ１にＰＣＩｅスイッチを用いることにより接続されたＰＣＩｅダウンストリームポートと、ＥＰ２に直接的に接続されたＰＣＩｅダウンストリームポートと、を含んでいる。ＥＰ０、ＥＰ１およびＥＰ２の各々は、１つのＰＦすなわちＰＦ０のみを有する。スイッチングデバイスは、いずれのＰＣＩｅダウンストリームポートのＰＣＩｅコンフィギュレーション空間も格納しなくてもよい。この場合、ホスト０は、ＥＰ０およびＥＰ１のＰＦを用いてもよい。ホスト１は、ＥＰ２のＰＦを用いてもよい。スイッチングデバイス内のすべてのモジュールは、透過的な送信を行い、複数のホストによって同一のＥＰを共用する機能を実装することができない。任意選択的に、ＥＰ透過的送信モードでは、ＶＦドライブおよびＰＦドライブはロードされる必要はない。
【０１１１】
任意選択的に、ＰＣＩｅシステム２００は、前述した複数の動作モードの特定のモードで常時動作してもよく、または、前述した複数の動作モード間で切り替えられてもよい。任意選択的に、ＰＣＩｅシステム２００は、さらに、別の動作モードをサポートしてもよい。これは本発明のこの実施形態に限定されるものではない。
【０１１２】
図４ないし図７の例は当業者が本発明のこの実施形態をより一層理解が容易となることを意図したものであって本発明のこの実施形態の範囲を限定する趣旨ではないことがさらに理解されるべきである。明らかなように、当業者は、提供された図４ないし図７の例に従って様々な等価的な修正または変更を行ってもよい。修正または変更されたものもまた、本発明のこの実施形態の範囲に属する。
【０１１３】
前述した例はすべて、ＰＣＩｅシステムが１つのスイッチングデバイスを含んでいる例を用いることにより説明されていることがさらに理解されるべきである。任意選択的に、ＰＣＩｅシステムは、複数のスイッチングデバイスを含んでもよい。図８に示すように、ＰＣＩｅシステム２００は、２つのスイッチングデバイスとしてスイッチングデバイス１およびスイッチングデバイス２を含んでいる。各スイッチングデバイスは、２つのホストと２つのＩ／Ｏデバイスに接続されていてもよい。具体的には、スイッチングデバイス１は、ホスト０、ホスト１、ＩＯ０およびＩＯ１に別個に接続されていてもよい。スイッチングデバイス２は、ホスト２、ホスト３、ＩＯ２およびＩＯ３に別個に接続されている。このように、スイッチングデバイスが異常を有する場合、例えば、ＩＯ０およびＩＯ１に接続されたスイッチングデバイス１が異常を有する場合、異常対応処理、例えば、リセット動作または関連するサービスの中断、が実際の状況に応じて行われてもよい。ＩＯ２およびＩＯ３に接続されたスイッチングデバイス２が正常に動作している場合、ホスト２およびホスト３は、依然として正常に動作することができ、これによりシステムの信頼性および安定性を高めることができる。
【０１１４】
前述した実施形態はすべて、スイッチングデバイス２２０が具体的に１つの物理デバイスである例を用いることにより説明されていることがさらに理解されるべきである。任意選択的に、スイッチングデバイス２２０は、具体的に複数の物理デバイスであってもよい。例えば、図８および図９に示すように、スイッチングデバイス２２０はＡＢチップ形式であってもよい、すなわち、スイッチングデバイス２２０は、特にホストスイッチングデバイス２２０ａおよびＩ／Ｏスイッチングデバイス２２０ｂであってもよい。ホストスイッチングデバイス２２０ａおよびＩ／Ｏスイッチングデバイス２２０ｂは、イーサネットインタフェースまたは別のタイプのスイッチドインタフェースを用いることにより接続されていてもよい。任意的実施形態においては、ホストスイッチングデバイス２２０ａは、Ｎ2個のＰＣＩｅアップストリームポート２２１と、Ｉ／Ｏスイッチングデバイス２２０ｂに接続するように構成された少なくとも１つの第１のスイッチドインタフェースとを含んでもよい。Ｉ／Ｏスイッチングデバイス２２０ｂは、ホストスイッチングデバイス２２０ａに接続するように構成された少なくとも１つの第２のスイッチドインタフェースと、内部処理装置２２３と、Ｍ2個のＰＣＩｅダウンストリームポート２２２とを含んでもよい。任意選択的に、図８に示すように、少なくとも１つの第１のスイッチドインタフェースおよび少なくとも１つの第２のスイッチドインタフェースは、直接的に接続されていてもよい。代替的には、図９に示すように、少なくとも１つの第１のスイッチドインタフェースおよび少なくとも１つの第２のスイッチドインタフェースは、イーサネットスイッチまたは別のタイプの内部スイッチングデバイスを用いることにより接続されていてもよい。内部スイッチングデバイスは、ホストスイッチングデバイスとＩ／Ｏスイッチングデバイスとに接続されるように構成された複数のスイッチドインタフェースを提供してもよい。この場合、少なくとも１つの第１のスイッチドインタフェースは、内部スイッチングデバイスに接続するように構成されていてもよく、少なくとも１つの第２のスイッチドインタフェースは、内部スイッチングデバイスに接続するように構成されていてもよい。これは本発明のこの実施形態に限定されるものではない。
【０１１５】
別の任意的実施形態においては、内部処理装置２２３は、ホストスイッチングデバイス２２０ａ内に配置された処理装置（すなわち、第１の処理装置）と、Ｉ／Ｏスイッチングデバイス２２０ｂ内に配置された処理装置（すなわち、第２の処理装置）を含んでもよい。この場合、第１の内部処理装置は、複数のＰＣＩｅアップストリームポートと少なくとも１つの第１のスイッチドインタフェースとに、ホストスイッチングデバイスの内部接続ラインを用いることにより、別個に接続されていてもよい。第２の内部処理装置は、Ｉ／Ｏスイッチングデバイスの内部接続ラインを用いることにより、少なくとも１つのＰＣＩｅダウンストリームポートと少なくとも１つの第２のスイッチドインタフェースとに別個に接続されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１１６】
この場合、任意選択的に、第１の内部処理装置は、複数のＰＣＩｅアップストリームポートを使用して、第１のデータパケットを、少なくとも１つのホストから受信し、第１のデータパケットを処理して第１の処理を行う対象である第１のデータパケットを取得し、かつ内部スイッチングデバイスに対して、少なくとも１つの第１のスイッチドインタフェースを用いることにより、第１の処理を行う対象である第１のデータパケットを送信するように構成されていてもよい。
【０１１７】
第２の内部処理装置は、内部スイッチングデバイスによって送信される、第１の処理を行う対象である第１のデータパケットを、少なくとも１つの第２のスイッチドインタフェースを用いることにより受信し、第１の処理を行う対象である第１のデータパケットを処理して第２の処理を行う対象である第１のデータパケットを取得し、かつ少なくとも１つのＩ／Ｏデバイスに対して、少なくとも１つのＰＣＩｅダウンストリームポートを使用して、第２の処理を行う対象である第１のデータパケットを送信するように構成されている。
【０１１８】
任意選択的に、第２の内部処理装置は、さらに、少なくとも１つのＰＣＩｅダウンストリームポートを使用して、第２のデータパケットを少なくとも１つのＩ／Ｏデバイスから受信し、第２のデータパケットを処理して第１の処理を行う対象である第２のデータパケットを取得し、かつ内部スイッチングデバイスに対して、少なくとも１つの第２のスイッチドインタフェースを用いることにより、第１の処理を行う対象である第２のデータパケットを送信するように構成されている。
【０１１９】
第１の内部処理装置は、さらに、内部スイッチングデバイスによって送信される、第１の処理を行う対象である第２のデータパケットを、少なくとも１つの第１のスイッチドインタフェースを用いることにより受信し、第１の処理を行う対象である第２のデータパケットを処理して第２の処理を行う対象である第２のデータパケットを取得し、かつ少なくとも１つのホストに対して、複数のＰＣＩｅアップストリームポートを用いることにより、第２の処理を行う対象である第２のデータパケットを送信するように構成されている。
【０１２０】
任意選択的に、Ｉ／Ｏスイッチングデバイス２２０ｂは、Ｎ3個のｖＥＰ２２４と、マッピングモジュール２２５と、Ｍ3個のｍＥＰ２２６とをさらに含んでもよい。ホストスイッチングデバイス２２０ａは、Ｎ4個のＤＰ＿ＣＦＧ２２７およびＮ3個のｖＥＰ２２４をさらに含んでもよい。
【０１２１】
図８に示すように、スイッチングデバイス１は、ホストスイッチングデバイス１とＩ／Ｏスイッチングデバイス１とを含んでもよく、かつ、スイッチングデバイス２は、ホストスイッチングデバイス２とＩ／Ｏスイッチングデバイス２とを含んでもよい。ホストスイッチングデバイスとＩ／Ｏスイッチングデバイスとは、イーサネットインタフェース（例えば、メディアアクセス制御（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ，ＭＡＣ）インタフェース）を用いることにより接続されている。この場合、ホストスイッチングデバイス１がホスト０に接続されていてホスト１が異常を有する場合、ホストスイッチングデバイス１は、実際の状況に応じて代替されてもよいが、ホスト２およびホスト３は、依然として、Ｉ／Ｏデバイスへのアクセスを継続することができ、サービスは運用され続けることができる。Ｉ／Ｏスイッチングデバイス１がＩＯ０に接続されていてＩＯ１が異常を有する場合、Ｉ／Ｏスイッチングデバイス２がＩＯ２に接続されており、かつ、ＩＯ３が正常なのであるから、ホスト２およびホスト３が、ホストスイッチングデバイス２と、イーサネットスイッチと、Ｉ／Ｏスイッチングデバイス２とを用いて、ＩＯ２およびＩＯ３を使用することができるだけでなく、ホスト０およびホスト１がホストスイッチングデバイス１と、イーサネットスイッチと、Ｉ／Ｏスイッチングデバイス２とを用いてＩＯ２およびＩＯ３を使用することができるので、４つのホストがすべてサービスを運用し続けることができ、これにより、システムの信頼性と安定性とをより一層高めることができる。
【０１２２】
具体的には、本発明のこの実施形態においては、ホストスイッチングデバイスは、少なくとも１つのホストに接続するように構成された複数のＰＣＩｅアップストリームポートを含んでもよい。Ｉ／Ｏスイッチングデバイスは、内部処理装置と、少なくとも１つのＩ／Ｏデバイスに接続するように構成された少なくとも１つのＰＣＩｅダウンストリームポートとを含んでもよい。
【０１２３】
別の任意的実施形態においては、スイッチングデバイスが、少なくとも１つのｍＥＰと、マッピングモジュールと、少なくとも１つのｖＥＰとを含んでいる場合、少なくとも１つのｍＥＰと、マッピングモジュールと、少なくとも１つのｖＥＰとは、専らＩ／Ｏスイッチングデバイス内に配置されてもよい。代替的には、図９に示すように、ホストスイッチングデバイスは、少なくとも１つのｖＥＰを含んでもよく、ホストスイッチングデバイス内の少なくとも１つのｖＥＰは、Ｉ／Ｏスイッチングデバイス内の少なくとも１つのｖＥＰと、一対一の対応関係で同一である。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１２４】
「ホストスイッチングデバイス」および「Ｉ／Ｏスイッチングデバイス」は異なるスイッチングデバイスを区別するための単なる呼称にすぎないことが理解されるべきである。代替的には、「ホストスイッチングデバイス」は、第１のスイッチングデバイスと呼ばれることもあり、「Ｉ／Ｏスイッチングデバイス」は第２のスイッチングデバイスと呼ばれることもある。呼称は本発明の実施形態の保護範囲に対するいかなる限定にもなるべきではない。
【０１２５】
したがって、本発明のこの実施形態において提供されるＰＣＩｅシステムは、少なくとも１つのホストと、スイッチングデバイスと、少なくとも１つのＩ／Ｏデバイスとを含んでいる。スイッチングデバイスは、少なくとも１つのホストに接続するように構成された複数のＰＣＩｅアップストリームポートと、少なくとも１つのＩ／Ｏデバイスに接続するように構成された少なくとも１つのＰＣＩｅダウンストリームポートと、内部処理装置とを含んでいる。処理装置は、内部接続ラインを用いることにより少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、コンフィギュレーションリード／ライトパケットを、少なくとも１つのＰＣＩｅダウンストリームポートに、内部接続ラインを用いることにより送信し、少なくとも１つのＰＣＩｅダウンストリームポートによって内部接続ラインを用いることにより送信されたコンフィギュレーションリード／ライト応答パケットを受信して、コンフィギュレーションリード／ライト応答パケットにおいて保持されるコンプリータ識別子に従って、スイッチングデバイスがコンプリータ識別子を識別子として有するＩ／Ｏデバイスに接続されていると判定するように構成されている。このように、ＰＣＩｅシステム内のスイッチングデバイスが故障している場合、スイッチングデバイスに接続された少なくとも１つのホストおよび少なくとも１つのＩ／Ｏデバイスだけが影響を受け、システム内の別のスイッチングデバイスならびに別のスイッチングデバイスに接続されたホストおよびＩ／Ｏデバイスは影響を受けない。したがって、従来技術における外部管理ＣＰＵと比較すると、システムの安定性および信頼性が改善されることができる。
【０１２６】
加えて、従来技術における従来のＰＣＩｅ技術は、主として、ボードに適用されるものであり、例えばホストのＰＣＩｅポート数に対する制限、限られたスペースおよび拡張性の低さといった比較的多くの制約条件を有するものである。スイッチングデバイスは２つの物理デバイスとして配設され、ＰＣＩｅドメインは送信用にイーサネット上に設けられている。このようにスペースおよび距離に係る制約条件が打破されることができ、ＰＣＩｅトポロジが柔軟に設定されることができ、Ｉ／Ｏデバイスが柔軟に配置されることができ、そして、ＰＣＩｅドメインが遠隔的に配置されることができないという従来技術における課題が解決される。
【０１２７】
本発明の実施形態は、さらに、スイッチングデバイスを提供する。スイッチングデバイスは、前述したシステムに係る実施形態におけるとおりのものであってもよい。簡潔さのために、詳細はここでは再度説明しない。
【０１２８】
本発明の実施形態において提供されるＰＣＩｅシステムおよびスイッチングデバイスについては、図２ないし図９を参照して上述のとおり説明したところである。ＰＣＩｅシステムの操作手順について以下詳述する。
【０１２９】
図１０は、本発明の実施形態に係るＰＣＩｅシステムを初期化する方法３００を示す。初期化方法３００は、前述した実施形態におけるＰＣＩｅシステムに適用されてもよい。
【０１３０】
Ｓ３１０：管理ＢＭＣがスイッチングデバイス内の内部処理装置に初期化命令を送信する。
【０１３１】
電源投入後、管理ＢＭＣは、初期化命令を処理装置に送信してもよい。初期化命令は、処理装置に対して処理を行うために、例えば、デバイス列挙を行い、および／または、システム初期化に関連してスイッチングデバイス内のモジュール（またはコンポーネント）に対して初期化構成を行うように指示するために用いられてもよい。
【０１３２】
Ｓ３２０：初期化命令を受信した後、スイッチングデバイスの処理装置は、初期化命令に従って、スイッチングデバイスの少なくとも１つのＰＣＩｅダウンストリームポートを使用してスイッチングデバイスに接続された物理デバイスを列挙する。なお、物理デバイスは、少なくとも１つのＩ／Ｏデバイスを含む。
【０１３３】
本発明のこの実施形態においては、管理ＢＭＣは、識別子を割り当ててもよく、例えば、デバイス識別子をスイッチングデバイス内の内部処理装置に割り当ててもよい。デバイス識別子は３つのフィールド、すなわち、バス番号、デバイス番号およびファンクション番号を含んでもよい。バス番号フィールドの欄はデバイスが配置されているバスの数を表し、デバイス番号のフィールドはデバイスの番号を表し、ファンクション番号のフィールドはデバイスによって所有される機能の番号を表す。通常は、デバイス識別子はまた、バス・デバイス・ファンクション（Ｂｕｓ  Ｄｅｖｉｃｅ  Ｆｕｎｃｔｉｏｎ，ＢＤＦ）番号と呼ばれることもある。任意選択的に、管理ＢＭＣによって処理装置に割り当てられたデバイス識別子はシステム内で一意とされていてもよい。例えば、Ｘ８６システムでは、管理ＢＭＣは、処理装置のデバイス識別子として「０．０．７」を割り当ててもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１３４】
デバイス列挙を行う際、処理装置は、特に、少なくとも１つのＰＣＩｅダウンストリームポートを利用してスイッチングデバイスに接続された実デバイスを検出してもよい。具体的には、内部処理装置は、内部接続バスを用いることにより複数のＴＬＰを少なくとも１つのＰＣＩｅダウンストリームポートに送信してもよい。ＴＬＰは、特に、コンフィギュレーションリード／ライト要求であってもよく、ＴＬＰが有するＲＩＤの値は、処理装置のＢＤＦに設定されてもよく、また、ＣＩＤは連番で付番されてもよい。コンフィギュレーションリード／ライトパケットを受信すると、ＰＣＩｅダウンストリームポートは、受信されたコンフィギュレーションリード／ライト要求を、ＰＣＩｅダウンストリームポートに接続された物理デバイスに転送してもよい。物理デバイスは、受信されたコンフィギュレーションリード／ライト要求に従って、コンフィギュレーションリード／ライト応答パケット、例えば、ＣＰＬパケットまたはＣＰＬＤパケットを、物理デバイスに接続されたＰＣＩｅダウンストリームポートに送信してもよい。コンフィギュレーションリード／ライト応答パケットは、受信されたコンフィギュレーションリード／ライトパケット内に存在するＲＩＤおよびＣＩＤを保持してもよい。このように、コンフィギュレーションリード／ライト応答パケットをＰＣＩｅダウンストリームポートを使用して受信すると、処理装置は、スイッチングデバイスが、コンフィギュレーションリード／ライト応答パケット内のＣＩＤをＢＤＦ番号として有する物理デバイスに接続されていると判定してもよく、また、さらに、物理デバイスに関する情報であってコンフィギュレーションリード／ライト応答パケットにより保持される情報を取得してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１３５】
Ｓ３３０：スイッチングデバイスが内部処理装置のデバイス列挙結果を管理ＢＭＣに送信する。
【０１３６】
具体的には、内部処理装置は、デバイス列挙結果を複数のＰＣＩｅアップストリームポートを使用して管理ＢＭＣに対して報告してもよい。列挙結果は、少なくとも１つのＰＣＩｅダウンストリームポートを使用してスイッチングデバイスに接続された物理デバイスと、物理デバイスのトポロジ構造とを含んでもよく、または、ＰＣＩｅ構造ツリーを含んでもよい。これは本発明のこの実施形態に限定されるものではない。
【０１３７】
Ｓ３４０：少なくとも１つのホストの各々が、各ホストに接続されたデバイスを列挙する。
【０１３８】
少なくとも１つのホストの各々のプロセッサは、プロセッサに接続されたデバイスを列挙してもよい。デバイスは、仮想デバイス（すなわち、機能モジュール）および／または物理デバイス、例えば、スイッチングデバイスのＰＣＩｅアップストリームポートであってホストに接続されたスイッチングデバイス、および、少なくとも１つのｖＥＰを含んでもよい。列挙はｖＥＰをもって終了してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１３９】
具体的には、ホストのプロセッサは、コンフィギュレーションリードパケットを送信してもよく、その場合、コンフィギュレーションリードパケットはスイッチングデバイスのｖＥＰをもって終了する。コンフィギュレーションリードパケットを受信した後、スイッチングデバイスは、ＰＣＩｅアップストリームポートを使用してコンフィギュレーションリード応答パケットをホストに返してもよい。コンフィギュレーションリード応答パケットを受信した後、ホストのプロセッサはコンフィギュレーションライトパケットをｖＥＰに送信してもよい。具体的には、コンフィギュレーションライトパケットは、ｖＥＰのレジスタにアクセスするために用いられてもよい。任意選択的に、各コンフィギュレーションライトパケットは、各回ごとにレジスタの４ＫＢ空間にアクセスしてもよい。なお、コンフィギュレーションライトパケットは依然としてスイッチングデバイスのｖＥＰにて終了する。コンフィギュレーションライトパケットを受信した後、スイッチングデバイスのｖＥＰは、ＰＣＩｅダウンストリームポートを使用して、コンフィギュレーションライトパケットをｖＥＰに接続されたＩ／Ｏデバイスに転送してもよい（すなわち、ｖＥＰは、Ｉ／Ｏデバイスの機能を仮想化するように構成されている）。コンフィギュレーションライトパケットを受信後、ｖＥＰに対応するＩ／Ｏデバイスは、ＰＣＩｅダウンストリームポートを使用して、コンフィギュレーションライト応答パケットをスイッチングデバイスに返してもよく、その場合、コンフィギュレーションライト応答パケットはＩ／ＯデバイスのＢＤＦ番号を保持してもよい。任意選択的に、コンフィギュレーションライト応答パケットを受信した後、スイッチングデバイスのマッピングモジュールは、コンフィギュレーションライト応答パケットが保持するＣＩＤに従って、第２のマッピングテーブルに対して検索を行い、コンフィギュレーションライト応答パケットに対応するｖＥＰのＢＤＦ番号を取得してもよく、また、コンフィギュレーションライト応答パケット内のＣＩＤを、ＣＩＤに対応するｖＥＰのＢＤＦ番号で置き換えてもよい。そして、スイッチングデバイスのマッピングモジュールは、コンフィギュレーションライト応答パケットが有するＲＩＤに従って、コンフィギュレーションライト応答パケットをスイッチングデバイスのＰＣＩｅアップストリームポートに送信し、ＰＣＩｅアップストリームポートを使用してコンフィギュレーションライト応答パケットをホストに返すことを決定してもよい。
【０１４０】
任意選択的に、少なくとも１つのホストおよび／またはスイッチングデバイスは、自動学習を利用して、前述した列挙を行うプロセスにおいて取得された情報（例えば、ＢＤＦ番号）をｖＥＰおよび／またはｍＥＰに書き込んでもよい。これは本発明のこの実施形態に限定されるものではない。
【０１４１】
Ｓ３５０：少なくとも１つのホストが、少なくとも１つのＩ／ＯデバイスのＶＦドライブおよびＰＦドライブをロードする。
【０１４２】
具体的には、ＶＦドライブは、ホストのプロセッサによってロードされてもよく、また、ＰＦドライブは、異なる動作モードに応じてホストのプロセッサまたは管理ＢＭＣによってロードされてもよい。
【０１４３】
具体的には、ＶＦダイレクトモードおよびＶＦシェアドモードでは、Ｉ／ＯデバイスのＰＦドライブは管理ＢＭＣによってロードされてもよい。加えて、ＶＦシェアドモードでは、ホストのプロセッサはさらに、ｖＥＰのＰＦドライブをロードしてもよい、すなわち、各ホストのプロセッサは、ホストのプロセッサによって列挙されたｖＥＰのＰＦドライブをロードしてもよい。ＰＦシェアドモードでは、Ｉ／ＯデバイスのＰＦドライブは、ホストのプロセッサによってロードされてもよい、すなわち、各ホストのプロセッサは、ホストのプロセッサによって列挙されたｖＥＰに対応するＩ／ＯデバイスのＰＦドライブ（ｖＥＰによって仮想化されたＰＦのＰＦドライブ）をロードしてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１４４】
別の任意的実施形態においては、Ｓ３３０の後、方法３００はさらに以下のステップを含む。
【０１４５】
スイッチングデバイス内の内部処理装置は、スイッチングデバイス内で機能モジュールを構成する。具体的には、機能モジュールは、少なくとも１つのｖＥＰと、マッピングモジュールと、少なくとも１つのｍＥＰとを含んでいる。この場合、処理装置は、少なくとも１つのｍＥＰと少なくとも１つのｖＥＰとの間のマッピング関係を確立してもよい、すなわち、少なくとも１つのＩ／Ｏデバイスの機能と、ｖＥＰによって仮想化された機能であって少なくとも１つのホストによって用いられることができる機能との間のマッピング関係を確立してもよい。処理装置は、特に、スイッチングデバイス配下の物理デバイスに関する情報をスイッチングデバイスの機能モジュールに格納してもよい。例えば、処理装置は、前述した実施形態における第１のマッピングテーブルと、第２のマッピングテーブルと、第３のマッピングテーブルとを、取得されたデバイス情報に従って構成してもよい。物理デバイスに関する情報は、処理装置によるデバイス列挙のプロセスにおいて取得されてもよい。例えば、各デバイスに関する情報、例えば、ＢＤＦ番号は、コンフィギュレーションリード／ライト応答パケットから取得される。代替的には、物理デバイスに関する情報は、管理ＢＭＣによって配信されてもよい。これに対応して、任意選択的に、方法３００は、さらに、処理装置がスイッチングデバイス内に機能モジュールを構成するのに先立って、管理ＢＭＣがコンフィギュレーション管理情報を処理装置に送信することを含んでもよい。コンフィギュレーション管理情報は、スイッチングデバイスの機能モジュールを構成するのに必要な、ＰＣＩｅダウンストリームポートおよびＰＣＩｅアップストリームポートの情報、例えば、現在使用中の動作モード（例えば、前述した動作モードのいずれか）、コンフィギュレーション情報（例えば、ＰＣＩｅダウンストリームポートに対応するＰＣＩｅコンフィギュレーション空間の数、各ＰＣＩｅコンフィギュレーション空間配下のｖＥＰの数、ＰＣＩｅダウンストリームポートとＩ／Ｏデバイスとの間の接続関係、または各ＰＣＩｅポートのＭＡＣアドレス）、または、Ｉ／ＯデバイスのＰＣＩｅコンフィギュレーション空間に関する情報、を含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１４６】
初期化手順を行った後、システムはサービスを運用してもよい。この場合、ホストによって送信されたコンフィギュレーションパケット内のコンフィギュレーションライトパケットについては、スイッチングデバイス（例えば、スイッチングデバイスのマッピングモジュール）は、コンフィギュレーションライトパケット内のＣＩＤを変更する必要がある。ホストによって配信されるＭｅｍリード／ライトパケットについては、Ｍｅｍリード／ライトパケットのアドレスは変更される必要がある（例えば、異なるドメインに対応するアドレスに対してベースアドレスの置換が行われ、オフセットは変化しない）。ホストによって送信されるコンプリーションパケットＣＰＬＤ／ＣＰＬについては、ＣＩＤのみが変更される必要がある。Ｉ／Ｏデバイスによって送信されるＭｅｍリード／ライトパケットについては、Ｍｅｍリード／ライトパケットのＲＩＤが変更されてもよいが、アドレスは変更される必要はない。Ｉ／Ｏデバイスによって送信されるコンプリーションパケットＣＰＬＤ／ＣＰＬについては、コンプリーションパケットＣＰＬＤ／ＣＰＬのＣＩＤのみが変更される必要がある。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１４７】
初期化方法については、前述したシステムの実施形態の具体的記載が参照されてもよいことが理解されるべきである。簡潔さのために、詳細はここでは再度説明しない。加えて、本出願の各実施形態の記載は、一実施形態と別の実施形態との間の相違点を強調しており、一実施形態と別の実施形態との間の類似点は相互参照のために利用されてもよい。
【０１４８】
前述した各プロセスのシーケンス番号は行う順序を意味するものではないことが理解されるべきである。行う順序は各プロセスの機能および内部ロジックに従って決定されるべきであり、本発明のこの実施形態の実装プロセスに対するいかなる限定も構成すべきではない。
【０１４９】
加えて、本発明の実施形態は、さらに、スイッチングシステムを提供する。このスイッチングシステムは、第１のスイッチングデバイスと第２のスイッチングデバイスとを含んでいる。第１のスイッチングデバイスおよび第２のスイッチングデバイスは、ネットワークを用いることにより接続されている。
【０１５０】
第１のスイッチングデバイスは、少なくとも１つのホストに接続するように構成された複数のＰＣＩｅアップストリームポートを含んでもよい。
【０１５１】
第２のスイッチングデバイスは、少なくとも１つのデバイスに接続するように構成された少なくとも１つのＰＣＩｅダウンストリームポートを含んでもよい。
【０１５２】
任意選択的に、スイッチングシステムは、さらに、ネットワーク内に配置されたネットワークスイッチングデバイスを含んでもよい。ネットワークスイッチングデバイスは、第１のスイッチングデバイスおよび第２のスイッチングデバイスに接続するように構成された複数のスイッチドインタフェースを有していてもよい。
【０１５３】
この場合、任意選択的に、第１のスイッチングデバイスは、さらに、ネットワークスイッチングデバイスに接続するように構成された少なくとも１つの第１のスイッチドインタフェースを含んでいる。第２のスイッチングデバイスは、さらに、ネットワークスイッチングデバイスに接続するように構成された少なくとも１つの第２のスイッチドインタフェースを含んでいる。
【０１５４】
任意選択的に、ネットワークスイッチングデバイスは、特に図８に示すイーサネットスイッチであってもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１５５】
任意選択的に、第１のスイッチングデバイスは、特にホストスイッチングデバイスであってもよく、かつ、第２のスイッチングデバイスは特にＩ／Ｏスイッチングデバイスであってもよい。図８および図９に示すように、ホストスイッチングデバイス２２０ａおよびＩ／Ｏスイッチングデバイス２２０ｂは、イーサネットインタフェースまたは別のタイプのスイッチドインタフェースを用いることにより接続されていてもよい。任意的実施形態においては、ホストスイッチングデバイス２２０ａは、Ｎ2個のＰＣＩｅアップストリームポート２２１と、Ｉ／Ｏスイッチングデバイス２２０ｂに接続するように構成された少なくとも１つの第１のスイッチドインタフェースとを含んで含んでもよい。Ｉ／Ｏスイッチングデバイス２２０ｂは、ホストスイッチングデバイス２２０ａに接続するように構成された少なくとも１つの第２のスイッチドインタフェースと、内部処理装置２２３と、Ｍ2個のＰＣＩｅダウンストリームポート２２２とを含んでもよい。
【０１５６】
任意選択的に、図９に示すように、少なくとも１つの第１のスイッチドインタフェースと少なくとも１つの第２のスイッチドインタフェースとは、直接的に接続されている。代替的には、図８に示すように、少なくとも１つの第１のスイッチドインタフェースおよび少なくとも１つの第２のスイッチドインタフェースは、任意のタイプのイーサネットスイッチまたはネットワークスイッチングデバイスを用いることにより接続されていてもよい。ネットワークスイッチングデバイスは、ホストスイッチングデバイスおよびＩ／Ｏスイッチングデバイスに接続するように構成された複数のスイッチドインタフェースを提供してもよい。この場合、少なくとも１つの第１のスイッチドインタフェースは、ネットワークスイッチングデバイスに接続するように構成されていてもよく、少なくとも１つの第２のスイッチドインタフェースは、ネットワークスイッチングデバイスに接続するように構成されていてもよい。これは本発明のこの実施形態に限定されるものではない。
【０１５７】
任意的実施形態においては、第２のスイッチングデバイスは、第１のスイッチングデバイスによってネットワークを用いることにより送信された第１のデータパケットを受信し、第１のデータパケットを処理してＰＣＩｅプロトコルに準拠した第２のデータパケットを取得し、かつ第２のデータパケットを第２のデータパケット対象Ｉ／Ｏデバイスに送信するように構成されていてもよい。
【０１５８】
任意選択的に、第２のスイッチングデバイスは、第１のデータパケットをＰＣＩｅプロトコルに準拠した第２のデータパケットに変換するように構成されていてもよい。任意選択的に、この変換は、解析処理、パケットフォーマット変換処理、タイムシーケンス変換処理等を含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１５９】
任意選択的に、第１のデータは、特に、ネットワークのネットワークプロトコルに準拠したデータパケットであってもよい。任意的実施形態においては、図８に示すように、ネットワークはイーサネットであってもよい。この場合、第２のスイッチングデバイスは、特に、イーサネットプロトコルに準拠した第１のデータパケットを、ＰＣＩｅプロトコルに準拠した第２のデータパケットに変換するように構成されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１６０】
任意選択的に、第２のスイッチングデバイスは、さらに、受信されたデータパケットにおいて保持された情報にしたがって、または、データパケットを受信するように構成されたポートに従って、データパケットの対象デバイスを判定して、データパケットの対象デバイスに応じてデータパケットを送信するように構成されていてもよい。例えば、第２のスイッチングデバイスは、さらに、第１のデータパケットにおいて保持された情報に従って、第１のデータパケットの対象Ｉ／Ｏデバイスを判定して、第１のデータパケットの対象Ｉ／Ｏデバイスに、第１のデータパケットを処理することにより取得された第２のデータパケットを送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１６１】
任意選択的に、第１のスイッチングデバイスは、少なくとも１つの第１のスイッチドインタフェースを用いることにより、ネットワークスイッチングデバイスによって送信されるアップリンクデータパケットを受信してもよく、また、少なくとも１つの第１のスイッチドインタフェースを用いることにより、ダウンリンクデータパケットをネットワークスイッチングデバイスに送信してもよい。例えば、第１のスイッチングデバイスは、少なくとも１つのスイッチドインタフェースを用いることにより第１のデータパケットを第２のスイッチングデバイスに送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１６２】
任意選択的に、第２のスイッチングデバイスは、少なくとも１つの第２のスイッチドインタフェースを用いることにより、ネットワークスイッチングデバイスによって送信されるダウンリンクデータパケットを受信してもよく、また、少なくとも１つの第２のスイッチドインタフェースを用いることにより、アップリンクデータパケットをネットワークスイッチングデバイスに送信してもよい。例えば、第２のスイッチングデバイスは、少なくとも２つのスイッチドインタフェースを用いることにより、第１のスイッチングデバイスによって送信される第１のデータパケットを受信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１６３】
任意選択的に、第２のスイッチングデバイスは、さらに、第２のスイッチングデバイスの内部接続ラインを用いることにより少なくとも１つのＰＣＩｅダウンストリームポートに接続された第１の内部処理装置を含んでいる。
【０１６４】
任意選択的に、第２のスイッチングデバイスが第１のデータパケットを処理してＰＣＩｅプロトコルに準拠した第２のデータパケットを取得するように構成されていることは、第１の内部処理装置が、第１のデータパケットを処理して、ＰＣＩｅプロトコルに準拠した第２のデータパケットを取得するように構成されていることを含む。
【０１６５】
任意選択的に、第２のスイッチングデバイスは、さらに、アップリンクデータパケットを処理するように構成されていてもよい。
【０１６６】
任意選択的に、第２のスイッチングデバイス内の第１の処理装置は、少なくとも１つのＩ／Ｏデバイスから第３のデータパケットを受信し、第３のデータパケットを処理してネットワークのネットワークプロトコルに準拠した第４のデータパケットを取得し、かつネットワークを用いることにより第４のデータパケットを第１のスイッチングデバイスに送信するように構成されている。
【０１６７】
任意選択的に、第１の処理装置は、ＰＣＩｅプロトコルに準拠した第３のデータパケットに対して変換処理を行って、ネットワークのネットワークプロトコルに準拠した第４のデータパケットを取得してもよい。
【０１６８】
任意選択的に、第１のスイッチングデバイスは、受信されたアップリンクデータパケットおよび／またはダウンリンクデータパケットを処理してもよい。
【０１６９】
別の任意的実施形態においては、内部処理装置２２３は、ホストスイッチングデバイス２２０ａ内に配置された処理装置（すなわち、第１の処理装置）と、Ｉ／Ｏスイッチングデバイス２２０ｂ内に配置された処理装置（すなわち、第２の処理装置）とを含んでもよい。この場合、第１の内部処理装置は、ホストスイッチングデバイスの内部接続ラインを用いることにより、複数のＰＣＩｅアップストリームポートおよび少なくとも１つの第１のスイッチドインタフェースに別個に接続されていてもよい。第２の内部処理装置は、少なくとも１つのＰＣＩｅダウンストリームポートおよび少なくとも１つの第２のスイッチドインタフェースに、Ｉ／Ｏスイッチングデバイスの内部接続ラインを用いることにより別個に接続されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１７０】
任意選択的に、第１のスイッチングデバイスはさらに、第１のスイッチングデバイスの内部接続ラインを用いることにより複数のＰＣＩｅアップストリームポートに接続された第２の内部処理装置を含んでいる。
【０１７１】
任意選択的に、第２の内部処理装置は、受信されたアップリンク／ダウンリンクデータパケットを処理するように構成されていてもよい。
【０１７２】
任意的実施形態においては、第２の内部処理装置は、少なくとも１つのホストから第５のデータパケットを受信し、第５のデータパケットを処理してネットワークのネットワークプロトコルに準拠した第１のデータパケットを取得し、かつネットワークを用いることにより第１のデータパケットを第２のスイッチングデバイスに送信するように構成されている。
【０１７３】
任意選択的に、第５のデータパケットは、ＰＣＩｅプロトコルに準拠したものであってもよい。第２の処理装置は、特に、第５のデータパケットを第１のデータパケットに変換するように構成されていてもよい。なお、第１のデータパケットは、ネットワークのネットワークプロトコルに準拠している。
【０１７４】
任意選択的に、第２の処理装置は、さらに、第５のデータパケットにおいて保持された情報および／または第５のデータパケットを受信するＰＣＩｅアップストリームポートに従って、第５のデータパケットに対応する第１のスイッチドインタフェースを判定し、対応する第１のスイッチドインタフェースを用いることにより第１のデータパケットを第２のスイッチングデバイスに送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１７５】
別の任意的実施形態においては、第２の内部処理装置は、ネットワークを用いることにより、第１のスイッチングデバイスによって送信される第４のデータパケットを受信し、第４のデータパケットを処理してＰＣＩｅプロトコルに準拠した第６のデータパケットを取得し、かつ第６のデータパケットを第６のデータパケットの対象ホストに送信するように構成されている。
【０１７６】
任意選択的に、第２の処理装置は、ネットワークを用いることにより、第２のスイッチングデバイスによって送信される第４のデータパケットを受信してもよく、その場合、第４のデータパケットは、ネットワークのネットワークプロトコルに準拠したデータパケットであってもよい。第２の処理装置は、第４のデータパケットに対して変換処理を行ってＰＣＩｅプロトコルに準拠した第６のデータパケットを取得してもよい。
【０１７７】
任意選択的に、第２の処理装置は、受信されたデータパケットにおいて保持された情報に従って、または、データパケットを受信するように構成されたポートに従って、データパケットの対象デバイスを判定して、データパケットの対象デバイスに応じてデータパケットを送信するように構成されていてもよい。例えば、第２の処理装置は、第４のデータパケットにおいて保持された情報に従って、第４のデータパケットの対象ホストを判定して、第４のデータパケットを処理することにより取得された第６のデータパケットを第４のデータパケットの対象ホストに送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【０１７８】
任意選択的に、第１のスイッチングデバイスは、複数のＰＣＩｅアップストリームポートに接続されていて、少なくとも１つのＩ／Ｏデバイスの機能が少なくとも１つのホストによって用いられるように機能を仮想化するように構成された、少なくとも１つの仮想エンドポイントデバイスモジュールをさらに含んでいる。
【０１７９】
第２のスイッチングデバイスは、
少なくとも１つのＰＣＩｅダウンストリームポートに接続されていて、少なくとも１つのＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成された、少なくとも１つのミラーリングエンドポイントデバイスモジュール、および、
少なくとも１つのホストに対応するＰＣＩｅドメインと少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、
をさらに含んでいる。
【０１８０】
任意選択的に、少なくとも１つのＰＣＩｅダウンストリームポートのいずれもＰＣＩｅコンフィギュレーション空間を有しておらず、かつ、複数のＰＣＩｅアップストリームポートの各々がＰＣＩｅコンフィギュレーション空間を有する。
【０１８１】
任意選択的に、第１のスイッチングデバイスは、少なくとも１つのＰＣＩｅダウンストリームポートに対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間をさらに含んでいる。少なくとも１つの仮想エンドポイントデバイスモジュールは、特に、少なくとも１つのＰＣＩｅダウンストリームポートに対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間を用いることにより複数のＰＣＩｅアップストリームポートに接続されている。
【０１８２】
任意選択的に、少なくとも１つのＰＣＩｅダウンストリームポートに対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間は、特に、Ｎ4個のＤＰ＿ＣＦＧ２２７であってもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。任意選択的に、少なくとも１つのＰＣＩｅダウンストリームポートの各々は、０個、１個または複数個のＰＣＩｅコンフィギュレーション空間に対応していてもよい。これは本発明のこの実施形態に限定されるものではない。
【０１８３】
任意選択的に、マッピングモジュールは、
少なくとも１つのホストに対応するＰＣＩｅドメイン内の識別子から少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメイン内の識別子へのマッピング関係を格納するために用いられる第１のマッピングテーブル、および、
少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメイン内の識別子から少なくとも１つのホストに対応するＰＣＩｅドメイン内の識別子へのマッピング関係を格納するために用いられる第２のマッピングテーブル、
を格納する。
【０１８４】
任意選択的に、少なくとも１つのミラーリングエンドポイントデバイスモジュールのうち第１のミラーリングエンドポイントデバイスモジュールは、特に、第３のマッピングテーブルであり、第３のマッピングテーブルは、少なくとも１つのＩ／Ｏデバイスのうち第１のＩ／Ｏデバイスの仮想機能のベースアドレスレジスタ（ＢＡＲ）アドレスおよびＢＡＲサイズを格納するために用いられ、第１のミラーリングエンドポイントデバイスモジュールは、第１のＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成されている。
【０１８５】
任意選択的に、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第１の仮想エンドポイントデバイスモジュールは、特に、少なくとも１つのＩ／Ｏデバイスのうち第２のＩ／Ｏデバイスの物理機能が少なくとも１つのホストのうち第１のホストによって用いられるように物理機能を仮想化するように構成されており、第２のＩ／Ｏデバイスの物理機能ドライブは、第１のホストのプロセッサによってロードされる。
【０１８６】
任意選択的に、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第２の仮想エンドポイントデバイスモジュールは、特に、少なくとも１つのＩ／Ｏデバイスのうち第３のＩ／Ｏデバイスの仮想機能が少なくとも１つのホストのうち第２のホストによって用いられるように、仮想機能を仮想化するように構成されており、第３のＩ／Ｏデバイスの物理機能ドライブは、少なくとも１つのホスト内のベースボード管理コントローラＢＭＣによってロードされる。
【０１８７】
任意選択的に、少なくとも１つの仮想エンドポイントデバイスモジュールのうち第３の仮想エンドポイントデバイスモジュールは、特に、少なくとも１つのＩ／Ｏデバイスのうち第４のＩ／Ｏデバイスの物理機能および仮想機能が少なくとも１つのホストのうち第３のホストによって用いられるように物理機能および仮想機能を仮想化するように構成されており、第４のＩ／Ｏデバイスの物理機能ドライブは、少なくとも１つのホスト内の管理ＢＭＣによってロードされ、第３の仮想エンドポイントデバイスモジュールの物理機能ドライブは、第３のホストのプロセッサによってロードされる。
【０１８８】
少なくとも１つの仮想エンドポイントデバイスモジュールは、特にＮ3個のｖＥＰ２２４であってもよく、少なくとも１つのミラーリングエンドポイントデバイスモジュールは、特にＭ3個のｍＥＰ２２６であってもよく、かつ、マッピングモジュールは、特にマッピングモジュール２２５であってもよいことが理解されるべきである。したがって、少なくとも１つの仮想エンドポイントデバイスモジュール、少なくとも１つのミラーリングエンドポイントデバイスモジュール、および、マッピングモジュールの具体的実装については、前述した記載を参照されたい。簡潔さのために、詳細はここでは再度説明しない。
【０１８９】
任意選択的に、第１のスイッチングデバイスは、特に、ホストスイッチングデバイスであってもよく、第２のスイッチングデバイスは、特に、Ｉ／Ｏスイッチングデバイスであってもよい。第１のスイッチングデバイスおよび第２のスイッチングデバイスの具体的実装については、前述した記載を参照されたい。簡潔さのために、詳細はここでは再度説明しない。ここにおける「ホストスイッチングデバイス」、「Ｉ／Ｏスイッチングデバイス」、「第１のスイッチングデバイス」、および、「第２のスイッチングデバイス」は、異なるスイッチングデバイスを区別するための単なる呼称にすぎないことが理解されるべきである。呼称は、本発明の実施形態の保護範囲に対するいかなる限定をも構成すべきでない。
【０１９０】
本発明の実施形態は、さらにＰＣＩｅシステムを提供し、ＰＣＩｅシステムは、少なくとも１つのホストと、前述した実施形態におけるスイッチングシステムと、少なくとも１つのＩ／Ｏデバイスとを含んでいる。
【０１９１】
本発明の実施形態においては、用語「複数の」は少なくとも２つまたは３つを示すことがあり、用語「および／または」は関連するオブジェクトを記述するための関連関係のみを記述し、３つの関係が存在することを表すことが理解されるべきである。例えば、Ａおよび／またはＢは、以下の３つの場合、すなわち、Ａのみが存在する場合、ＡおよびＢの両方が存在する場合、およびＢのみが存在する場合の３つの場合を表すことがある。加えて、本明細書中の文字「／」は、一般に、関連するオブジェクト間の「または」関係を示す。
【０１９２】
当業者は、本明細書に開示された実施形態において記載された例と組み合わせて、方法のステップおよびユニットが電子ハードウェア、コンピュータソフトウェア、またはこれらの組み合わせによって実装されることができることを認識することがある。ハードウェアとソフトウェアとの間の互換性を明確に説明するために、前述の説明は、機能に従って各実施形態のステップおよび構成部分を一般的に説明した。機能がハードウェアによって行われるかソフトウェアによって行われるかは、技術的解決策の特定の用途および設計制約条件に依存する。当業者は、各特定の用途のための記載された機能を実装するために異なる方法を使用することがあるが、実装が本出願の範囲を超えていると考えるべきではない。
【０１９３】
好適かつ簡単な説明を目的として、前述のシステム、装置、およびユニットの詳細な動作プロセスについては、前述の方法の実施形態における対応するプロセスが参照されてもよいことが当業者によって明確に理解されることがあるので、詳細はここでは説明しない。
【０１９４】
本出願で提供されるいくつかの実施形態においては、開示されたシステム、装置、および方法は、他の方法で実施され得ることが理解されるべきである。例えば、記載された装置係る実施形態は単なる一例にすぎない。例えば、ユニットの区分は単なる論理的な機能の区分であって、実際の実装では他の区分であってもよい。例えば、複数のユニットまたはコンポーネントが組み合わせられてもよく、または別のシステムに統合されてもよく、またはいくつかの機能が無視されてもよくもしくは行われなくてもよい。加えて、表示または議論された相互的結合または直接的結合または通信接続は、いくつかのインターフェース、装置間またはユニット間の間接的結合もしくは通信接続、または、電気的接続、機械的接続もしくは他の形態の接続によって実装することができる。
【０１９５】
別個のパーツとして記載されているユニットは、物理的に別個のものであってもなくてもよく、ユニットとして表示されるパーツは、物理ユニットであってもなくてもよく、１つの位置に配置されていてもよく、複数のネットワークユニット上に分散されていてもよい。本発明の実施形態における解決策の目的を達成するために、ユニットの一部または全部は、実際のニーズに応じて選択されてもよい。
【０１９６】
加えて、本出願の実施形態における機能ユニットは、１つの処理ユニットに統合されてもよいし、ユニットの各々が物理的に単独で存在してもよいし、２つまたは複数のユニットが１つのユニットに統合されてもよい。統合ユニットは、ハードウェアの形態で実装されてもよく、ソフトウェア機能ユニットの形態で実装されてもよい。
【０１９７】
統合ユニットがソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用される場合、統合ユニットはコンピュータ読み取り可能記憶媒体に格納されてもよい。かかる理解に基づいて、本願の技術的解決策は本質的に、または、先行技術に寄与する部分または技術的解決策の全部もしくは一部は、ソフトウェア製品の形態で実装されてもよい。コンピュータソフトウェア製品は、記憶媒体に格納された、コンピュータ装置（パーソナルコンピュータ、サーバ、ネットワーク装置などであってもよい）に対して本出願の実施形態に記載された方法のステップの全部または一部を行うよう指示するためのいくつかの命令を含む。前述した記憶媒体には、ＵＳＢフラッシュドライブ、リムーバブルハードディスク、読み取り専用メモリ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ，ＲＯＭ）、ランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ，ＲＡＭ）、磁気ディスク、光ディスクなどのプログラムコードを格納可能な任意の媒体が含まれる。
【０１９８】
前述の説明は、本出願の特定の実装形態にすぎないが、本出願の保護範囲を限定するものではない。本出願に開示された技術的範囲内で当業者によって容易に理解されるいかなる修正または置換もまた、本出願の保護範囲内に入るものとする。したがって、本願の保護範囲は、請求項の保護範囲に従うべきものである。
【図１】
2019145153.tif 000006
【図２】
2019145153.tif 000007
【図３】
2019145153.tif 000008
【図４】
2019145153.tif 000009
【図５】
2019145153.tif 000010
【図６】
2019145153.tif 000011
【図７】
2019145153.tif 000012
【図８】
2019145153.tif 000013
【図９】
2019145153.tif 000014
【図１０】
2019145153.tif 000015
【手続補正書】
【提出日】平成31年4月25日(2019.4.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のスイッチングデバイスと第２のスイッチングデバイスとを備えたスイッチングシステムであって、
前記第１のスイッチングデバイスと前記第２のスイッチングデバイスとがネットワークを用いることにより接続され、
前記第１のスイッチングデバイスは、少なくとも１つのホストに接続するように構成された複数のペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）アップストリームポートを備え、
前記第２のスイッチングデバイスは、少なくとも１つの入力／出力（Ｉ／Ｏ）装置に接続するように構成された少なくとも１つのＰＣＩｅダウンストリームポートを備え、かつ、
前記第２のスイッチングデバイスは、
前記ネットワークを用いることにより前記第１のスイッチングデバイスによって受信された第１のデータパケットを受信し、前記第１のデータパケットをＰＣＩｅプロトコルに準拠した第２のデータパケットに変換して、前記第２のデータパケットを前記第２のデータパケットの対象Ｉ／Ｏデバイスに送信するように構成されている、
スイッチングシステム。
【請求項２】
前記第２のスイッチングデバイスは、前記少なくとも１つのＰＣＩｅダウンストリームポートに前記第２のスイッチングデバイスの内部接続ラインを用いることにより接続された第１の内部処理装置をさらに備え、
前記第２のスイッチングデバイスが前記第１のデータパケットをＰＣＩｅプロトコルに準拠した第２のデータパケットに変換するように構成されていることは、
前記第１の内部処理装置は、前記第１のデータパケットを前記ＰＣＩｅプロトコルに準拠した前記第２のデータパケットに変換するように構成されていることを含む、
請求項１に記載のスイッチングシステム。
【請求項３】
前記ネットワークがイーサネットであり、かつ、
前記第１の内部処理装置が前記第１のデータパケットを前記ＰＣＩｅプロトコルに準拠した前記第２のデータパケットに変換するように構成されていることは、
前記第１の内部処理装置がイーサネットプロトコルに準拠した前記第１のデータパケットを前記ＰＣＩｅプロトコルに準拠した前記第２のデータパケットに変換するように構成されていることを含む、
請求項２に記載のスイッチングシステム。
【請求項４】
前記第２のスイッチングデバイスは、前記少なくとも１つのＰＣＩｅダウンストリームポートに前記第２のスイッチングデバイスの内部接続ラインを用いることにより接続された第１の内部処理装置をさらに備え、かつ、
前記第１の内部処理装置は、前記少なくとも１つのＩ／Ｏデバイスのいずれかによって送信された第３のデータパケットを受信し、前記第３のデータパケットを処理して前記ネットワークのネットワークプロトコルに準拠した第４のデータパケットを取得し、かつ前記第４のデータパケットを、前記ネットワークを用いることにより前記第１のスイッチングデバイスに送信する
ように構成されている、
請求項１ないし３のいずれか一項に記載のスイッチングシステム。
【請求項５】
前記第１のスイッチングデバイスは、前記第１のスイッチングデバイスの内部接続ラインを用いることにより前記複数のＰＣＩｅアップストリームポートに接続された第２の内部処理装置をさらに備え、
前記第２の内部処理装置は、
前記少なくとも１つのホストのいずれかによって送信された第５のデータパケットを受信し、
前記第５のデータパケットを処理して前記ネットワークの前記ネットワークプロトコルに準拠した前記第１のデータパケットを取得し、かつ、
前記ネットワークを用いることにより前記第１のデータパケットを前記第２のスイッチングデバイスに送信し、および／または、
前記ネットワークを用いることにより、前記第１のスイッチングデバイスによって送信された、前記第４のデータパケットを受信し、かつ前記第４のデータパケットを処理して前記ＰＣＩｅプロトコルに準拠した第６のデータパケットを取得し、かつ、
前記第６のデータパケットを、前記第６のデータパケットの対象ホストに送信する
ように構成されている、請求項４に記載のスイッチングシステム。
【請求項６】
前記スイッチングシステムは、前記ネットワークにおけるネットワークスイッチングデバイスをさらに備え、
前記第１のスイッチングデバイスは、前記ネットワークスイッチングデバイスに接続するように構成された少なくとも１つの第１のスイッチドインタフェースをさらに備え、
前記第２のスイッチングデバイスは、前記ネットワークスイッチングデバイスに接続するように構成された少なくとも１つの第２のスイッチドインタフェースをさらに備え、
前記第２のスイッチングデバイスは、前記第１のスイッチングデバイスによって前記ネットワークを用いることにより第１のデータパケットを受信するように構成されていることは、
前記第２のスイッチングデバイスは、前記少なくとも１つの第２のスイッチドインタフェースのいずれかを用いることにより、前記第１のスイッチングデバイスからパケットでありかつ前記ネットワークスイッチングデバイスによって送信される前記第１のデータパケットを受信するように構成されていることを含む、
請求項１ないし５のいずれか一項に記載のスイッチングシステム。
【請求項７】
前記第１のスイッチングデバイスは、
前記複数のＰＣＩｅアップストリームポートに接続され、前記少なくとも１つのＩ／Ｏデバイスの機能が前記少なくとも１つのホストによって用いられるように、前記機能を仮想化するように構成された、少なくとも１つの仮想エンドポイントデバイスモジュール
をさらに備え、かつ、
前記第２のスイッチングデバイスは、
前記少なくとも１つのＰＣＩｅダウンストリームポートに接続され、前記少なくとも１つのＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成された、少なくとも１つのミラーリングエンドポイントデバイスモジュールと、
前記少なくとも１つのホストに対応するＰＣＩｅドメインと前記少なくとも１つのＩ／Ｏデバイスに対応するＰＣＩｅドメインとの間のマッピングを実行するように構成されたマッピングモジュールと、
をさらに備えている、
請求項１ないし６のいずれか一項に記載のスイッチングシステム。
【請求項８】
前記少なくとも１つのＰＣＩｅダウンストリームポートは、いずれも、ＰＣＩｅコンフィギュレーション空間を有さず、かつ、前記複数のＰＣＩｅアップストリームポートの各々は、ＰＣＩｅコンフィギュレーション空間を有している、
請求項７に記載のスイッチングシステム。
【請求項９】
前記第１のスイッチングデバイスは、前記少なくとも１つのＰＣＩｅダウンストリームポートの各々に対応する少なくとも１つのＰＣＩｅコンフィギュレーション空間をさらに備え、かつ、
前記少なくとも１つの仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＰＣＩｅダウンストリームポートに対応する前記少なくとも１つのＰＣＩｅコンフィギュレーション空間を用いることにより前記複数のＰＣＩｅアップストリームポートに特に接続されている、
請求項８に記載のスイッチングシステム。
【請求項１０】
前記マッピングモジュールは、
前記少なくとも１つのホストに対応する前記ＰＣＩｅドメインにおける識別子から前記少なくとも１つのＩ／Ｏデバイスに対応する前記ＰＣＩｅドメインにおける識別子へのマッピング関係を格納するために用いられる第１のマッピングテーブルと、
前記少なくとも１つのＩ／Ｏデバイスに対応する前記ＰＣＩｅドメインにおける前記識別子から前記少なくとも１つのホストに対応する前記ＰＣＩｅドメインにおける前記識別子へのマッピング関係を格納するために用いられる第２のマッピングテーブルと、を格納する、
請求項７ないし９のいずれか一項に記載のスイッチングシステム。
【請求項１１】
前記少なくとも１つのミラーリングエンドポイントデバイスモジュールのうち第１のミラーリングエンドポイントデバイスモジュールは、第３のマッピングテーブルであり、
前記第３のマッピングテーブルは、前記少なくとも１つのＩ／Ｏデバイスのうち第１のＩ／Ｏデバイスの仮想機能のベースアドレスレジスタ（ＢＡＲ）アドレスおよびＢＡＲサイズを格納するために用いられ、かつ、
前記第１のミラーリングエンドポイントデバイスモジュールは、前記第１のＩ／ＯデバイスのＰＣＩｅコンフィギュレーションの内容を格納するように構成されている、
請求項７ないし１０のいずれか一項に記載のスイッチングシステム。
【請求項１２】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第１の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第２のＩ／Ｏデバイスの物理機能が前記少なくとも１つのホストのうち第１のホストによって用いられるように、前記物理機能を仮想化するようにさらに構成され、かつ、
前記第２のＩ／Ｏデバイスの物理機能ドライブは、前記第１のホストのプロセッサによってロードされる、
請求項７ないし１１のいずれか一項に記載のスイッチングシステム。
【請求項１３】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第２の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第３のＩ／Ｏデバイスの仮想機能が前記少なくとも１つのホストのうち第２のホストによって用いられるように、前記仮想機能を仮想化するようにさらに構成され、かつ、
前記第３のＩ／Ｏデバイスの物理機能ドライブは、前記少なくとも１つのホストにおける管理ベースボード管理コントローラ（ＢＭＣ）によってロードされる、
請求項７ないし１２のいずれか一項に記載のスイッチングシステム。
【請求項１４】
前記少なくとも１つの仮想エンドポイントデバイスモジュールのうち第３の仮想エンドポイントデバイスモジュールは、前記少なくとも１つのＩ／Ｏデバイスのうち第４のＩ／Ｏデバイスの物理機能および仮想機能が前記少なくとも１つのホストのうち第３のホストによって用いられるように、前記物理機能と前記仮想機能とを仮想化するようにさらに構成され、
前記第４のＩ／Ｏデバイスの物理機能ドライブは、前記少なくとも１つのホスト内の前記管理ＢＭＣによってロードされ、かつ、
前記第３の仮想エンドポイントデバイスモジュールの物理機能ドライブは、前記第３のホストのプロセッサによってロードされる、
請求項１３に記載のスイッチングシステム。
【請求項１５】
少なくとも１つのホストと、請求項１ないし１４のいずれか一項に記載の前記スイッチングシステムと、少なくとも１つの入力／出力（Ｉ／Ｏ）装置とを備えている、ペリフェラル・コンポーネント・インターコネクト・エクスプレス（ＰＣＩｅ）システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
Ｎ3個のｖＥＰ２２４は、Ｎ2個のＰＣＩｅアップストリームポート２２１に接続されていてもよく、Ｍ2個のＰＣＩｅダウンストリームポート２２２に接続されたＭ1個のＩ／Ｏデバイス２３０の機能がＮ2個のＰＣＩｅアップストリームポート２２１に接続されたＮ1個のホスト２１０（ただしＮ3≧１）によって用いられるようにＭ1個のＩ／Ｏデバイス２３０の機能を仮想化するように構成されている。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９３
【補正方法】変更
【補正の内容】
【００９３】
表２に示すように、第２のマッピングテーブルは、５つの列を含んでもよい。「ファンクションインデックス」列内の値は、ホスト２１０に対応するＰＣＩｅドメイン内の機能（ホスト２１０によって列挙により発見される仮想機能モジュールおよび／または物理デバイスであってもよい）のインデックス（例えば、ｖＥＰ２２４のファンクションインデックス）を示す。インデックスは、全機能のＢＤＦに番号を付することによって取得されてもよく、１ないし数ビットを占めてもよい。「利用可否表示」列内の値は、ファンクションインデックスに対応する機能が存在するか否かを示す。ｅＶＦバス番号およびｅＶＦデバイスファンクション番号は、それぞれ、ファンクションインデックスに対応するｅＶＦ２２４のバス番号およびデバイスファンクション番号を示す。ｅＶＦバス番号およびｅＶＦデバイスファンクション番号は、組み合わせられてｅＶＦ２２４のＢＤＦとなる。「ＰＦ表示」列内の値は、ファンクションインデックスに対応する機能がｖＦおよびＰＦのいずれであるかを示すために用いられる。第２のマッピングテーブルに含まれる行の数は本発明のこの実施形態においては限定されない。例えば、第２のマッピングテーブルは、１０２４個のエントリを含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
【外国語明細書】
2019145153000001.pdf