(57)【要約】ＰＣＩｅスイッチを介して計算機とＩ／Ｏデバイスを接続してＰＣＩｅトポロジを構築する場合、接続可能なＩ／Ｏデバイスの数が減少するのを防止する。  計算機とＩ／Ｏデバイスに接続されるスイッチは、計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジと、Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジと、スイッチに入力されるパケットデータを捕捉する捕捉部と、パケットデータをＩ／Ｏデバイスへ転送するパケット・ルーティング部、プログラムの実行によって仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを計算機に提供する、捕捉部に接続された管理プロセッサを有する。捕捉部は、計算機から転送されるパケットデータの宛先を判定し、判定の結果、宛先がＩ／Ｏデバイスの場合はパケットデータを捕捉せず通過させ、パケットデータは、パケット・ルーティング部及び第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送される。上記判定の結果、宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合はパケットデータを捕捉して管理プロセッサへ送信し、管理プロセッサは、パケットデータに応じて応答用のパケットデータを、第１のＰＣＩ−ＰＣＩブリッジを介して計算機へ送信する。
2012073304.tif 000002
【特許請求の範囲】
【請求項１】
計算機とＩ／Ｏデバイスに接続されるスイッチを介して、パケットデータを転送する計算機システムであって、
該スイッチは、該計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジと、該Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジと、該スイッチに入力されるパケットデータを捕捉する捕捉部と、該パケットデータをＩ／Ｏデバイスへ転送するパケット・ルーティング部を有し、
該捕捉部に接続され、プログラムの実行によって仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
該判定の結果、該宛先がＩ／Ｏデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送され、
該判定の結果、該宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
該管理プロセッサは、該パケットデータに応じて応答用のパケットデータを、第１のＰＣＩ−ＰＣＩブリッジを介して該計算機へ送信する
ことを特徴とする計算機システム。
【請求項２】
前記スイッチは、前記管理プロセッサとメモリを有する半導体スイッチであり、該メモリは、仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間を保持することを特徴とする請求項１の計算機システム。
【請求項３】
前記計算機が有するプロセッサで、前記管理プロセッサの動作を行うことを特徴とする請求項１の計算機システム。
【請求項４】
前記捕捉部は、
該計算機から送信されるパケットデータを受信するＰＣＩｅパケット受信部と、
ＰＣＩ−ＰＣＩブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、
該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、
該管理プロセッサとの間でパケットデータの転送する入出力部と、
該比較部による判断の結果、該管理プロセッサから転送される宛先がＩ／Ｏコントローラのパケットデータを送信するＰＣＩｅパケット送信部を有する
ことを特徴とする請求項１の計算機システム。
【請求項５】
前記計算機は、自らで動作するプログラムによって該管理プロセッサが提供する前記仮想ＰＣＩｅトポロジを認識することができ、
かつ該仮想ＰＣＩeトポロジは、ＰＣＩｅスイッチ間を接続するＰＣＩ−ＰＣＩブリッジを仮想ＰＣＩ−ＰＣＩブリッジと、該計算機及びＰＣＩｅスイッチ及びＩ／Ｏデバイス間を接続する仮想ＰＣＩｅリンクとを含み、
該計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジとし、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可能なＰＣＩ−ＰＣＩブリッジについては、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現し、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けできないＰＣＩ−ＰＣＩブリッジについては、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をメモリ内に展開し、
前記管理プロセッサは、該メモリ内の該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
ことを特徴とする請求項１の計算機システム。
【請求項６】
前記仮想ＰＣＩ−ＰＣＩブリッジと、前記物理ＰＣＩ−ＰＣＩブリッジの対応付けを変更することにより、該Ｉ／Ｏデバイスに付与されるバス番号を変化させる
ことを特徴とする請求項５の計算機システム。
【請求項７】
計算機とＩ／Ｏデバイスに接続されて、パケットデータを転送するＰＣＩｅスイッチであって、
該計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジと、該Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジと、
該スイッチに入力されるパケットデータを捕捉する捕捉部と、
該パケットデータをＩ／Ｏデバイスへ転送するパケット・ルーティング部と、
該捕捉部に接続され、プログラムの実行によって仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
該判定の結果、該宛先がＩ／Ｏデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送され、
該判定の結果、該宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
該管理プロセッサは、該パケットデータに応じて応答用のパケットデータを、第１のＰＣＩ−ＰＣＩブリッジを介して該計算機へ送信する
ことを特徴とするＰＣＩｅスイッチ。
【請求項８】
前記スイッチは、該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間を保持するメモリを有し、該管理プロセッサは、該メモリ内の、該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
ことを特徴とする請求項７のＰＣＩｅスイッチ。
【請求項９】
前記捕捉部は、
該計算機から送信されるパケットデータを受信するＰＣＩｅパケット受信部と、
ＰＣＩ−ＰＣＩブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、
該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、
該管理プロセッサとの間でパケットデータの転送する入出力部と、
該比較部による判断の結果、該管理プロセッサから転送される宛先がＩ／Ｏコントローラのパケットデータを送信するＰＣＩｅパケット送信部を有する
ことを特徴とする請求項７のＰＣＩｅスイッチ。
【請求項１０】
該仮想ＰＣＩeトポロジは、ＰＣＩｅスイッチ間を接続するＰＣＩ−ＰＣＩブリッジを仮想ＰＣＩ−ＰＣＩブリッジと、該計算機及びＰＣＩｅスイッチ及びＩ／Ｏデバイス間を接続する仮想ＰＣＩｅリンクとを含み、
該計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジとし、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可能なＰＣＩ−ＰＣＩブリッジについては、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現し、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けできないＰＣＩ−ＰＣＩブリッジについては、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をメモリ内に展開する
ことを特徴とする請求項８のＰＣＩｅスイッチ。
【請求項１１】
計算機とＩ／Ｏデバイスに接続されるＰＣＩｅスイッチを用いてパケットデータの転送を制御するパケット転送制御方法であって、
ＰＣＩｅスイッチのＴｒａｐｐｅｒモジュールは、ＰＣＩｅスイッチに入力されるパケットデータの宛先を参照して、該パケットデータを捕捉するか否かを判定し、
該判定の結果、該宛先がＰＣＩ−ＰＣＩブリッジのパケットデータの場合、該Ｔｒａｐｐｅｒモジュールは、該パケットデータを捕捉して管理プロセッサへ転送し、
該判定の結果、該宛先がＩ／Ｏデバイスのパケットデータの場合、該Ｔｒａｐｐｅｒモジュールは、該パケットデータを捕捉しないで、該Ｉ／Ｏデバイスへ転送し、
該管理プロセッサは、該Ｔｒａｐｐｅｒモジュールから転送される該パケットデータを受信すると、該管理プロセッサに接続するメモリに実現されたＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該Ｔｒａｐｐｅｒモジュールへ送信し、
該Ｔｒａｐｐｅｒモジュールは、管理プロセッサから取得した該応答を、該計算機へ送信することを特徴とするパケット転送制御方法。
【請求項１２】
計算機とＩ／Ｏデバイスに接続されるＰＣＩｅスイッチを用いてパケットデータの転送を制御するパケット転送制御方法であって、
ＰＣＩ−ＰＣＩブリッジを管理する管理プロセッサに接続されるメモリは、その内に仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを予め記憶するステップと、
該ＰＣＩｅスイッチは、該計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジを介して、該計算機から転送されるパケットデータを受信するステップと、
該ＰＣＩｅスイッチの捕捉部は、受信したパケットデータの宛先を判定するステップと、
該判定の結果、該宛先がＩ／Ｏデバイスの場合、該捕捉部は該パケットデータを捕捉せず通過させ、該Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送するステップと、
該判定の結果、該宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合、該捕捉部は該パケットデータを捕捉して、該捕捉部に接続された管理プロセッサへ送信するステップと、
該管理プロセッサは、該捕捉部より受信した該パケットデータに応じて、該メモリを参照して応答用のパケットデータを用意して、第１のＰＣＩ−ＰＣＩブリッジを介して該計算機へ送信するステップとを有することを特徴とする請求項１１のパケット転送制御方法。
【請求項１３】
該仮想ＰＣＩeトポロジは、ＰＣＩｅスイッチ間を接続するＰＣＩ−ＰＣＩブリッジを仮想ＰＣＩ−ＰＣＩブリッジと、該計算機及びＰＣＩｅスイッチ及びＩ／Ｏデバイス間を接続する仮想ＰＣＩｅリンクとを含み、
該計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジとし、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可能なＰＣＩ−ＰＣＩブリッジについては、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現し、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けできないＰＣＩ−ＰＣＩブリッジについては、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をメモリ内に展開し、
前記管理プロセッサは、該メモリ内の該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
ことを特徴とする請求項１１のパケット転送制御方法。
【請求項１４】
前記仮想ＰＣＩ−ＰＣＩブリッジと、前記物理ＰＣＩ−ＰＣＩブリッジの対応付けを変更することにより、該Ｉ／Ｏデバイスに付与されるバス番号を変化させる
ことを特徴とする請求項１３のパケット転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、それに使用されるスイッチ及びパケット転送制御方法に係り、特に、複数の計算機と複数のＩ／Ｏデバイスを、ＰＣＩｅスイッチを用いて接続する計算機システムにおける、ＰＣＩｅスイッチによるパケットデータの転送制御に関する。
【背景技術】
【０００２】
PCI Express（以下、ＰＣＩｅという）は、ＰＣＩ−ＳＩＧ（PCI Special Interest Group）により策定された、計算機で使用される拡張バスの一種である。ＰＣＩｅは、シリアル転送インターフェースと全二重通信方式とを採用している。ＰＣＩｅのデータ転送方式は、ネットワークでのパケットデータ（以下単にパケットという）の送受信に近い形で行われ、このパケットの伝送路は、ＰＣＩｅリンクと呼ばれる。【０００３】
ＰＣＩｅの構成要素は、Root Complex、Endpoint、及びＰＣＩｅスイッチである。Root Complexは、ＣＰＵとＰＣＩｅリンクとを結び付ける機能である。Root Complexは、一般的に、計算機内のＩ／Ｏコントローラに内蔵される。Endpointは、ＰＣＩｅリンクの末端の機能である。Endpointは、一般的に、Ｉ／Ｏデバイスに内蔵される。【０００４】
ＰＣＩｅスイッチは、ＰＣＩｅリンクの数を拡張し、パケットを中継する機能であり、複数のＰＣＩ−ＰＣＩブリッジで構成される。ＰＣＩ−ＰＣＩブリッジは、受信したパケットの通過可否を判定する機能を持つ。ＰＣＩｅスイッチとＩ／Ｏデバイスとは、計算機内のRoot Complexに、ＰＣＩｅリンクで接続される。Root Complexに接続されたＰＣＩｅ構成要素の接続形態を、ＰＣＩｅトポロジと呼ぶ。【０００５】
PCI Manager（以下、ＰＣＩＭ）は、ＰＣＩｅトポロジの生成、削除、変更等の、ＰＣＩｅトポロジの管理及び制御を行う。ＰＣＩＭはソフトウェアとして実装されるため、計算機でも実行可能であるが、一般的にセキュリティの面を考慮してSupervisor Processor（ＳＶＰ）に実装される。ＰＣＩＭは、ＰＣＩＭが認識したそれぞれのＰＣＩｅリンクに、バス番号と呼ばれる番号を付与する。ＰＣＩｅでは、バス番号を使用して、各ＰＣＩｅリンクの識別を行う。【０００６】
また、ＰＣＩＭは、ＰＣＩＭが認識した、各ＰＣＩ−ＰＣＩブリッジとＩ／Ｏデバイスとから、あらかじめ付与されたデバイス番号と呼ばれる番号を読み出す。ＰＣＩｅでは、デバイス番号を使用して、各ＰＣＩ−ＰＣＩブリッジや各Ｉ／Ｏデバイスの識別を行う。例えば、あるＩ／Ｏデバイスにパケットを送信する際、Ｉ／Ｏデバイスに接続しているＰＣＩｅリンクのバス番号、及びＩ／Ｏデバイスのデバイス番号の情報をパケットの宛先に付加することで、パケットを宛先のデバイスに正しく伝達することができる。【０００７】
データスイッチを用いた、Ｉ／Ｏデバイスとサーバとの間のルーティング制御に関して、例えば特許文献１には、データスイッチをプロキシコントローラに接続して、パケットをデータ転送のパケットと制御用のパケットとに分類し、制御用のパケットをプロキシコントローラで処理する技術が開示されている。また、少なくとも１台のサーバから仮想化されたＩ／Ｏデバイスをアクセスすることについて記載されている。【０００８】
また、例えば特許文献２には、コンフィギュレーション・エンティティと呼ばれる、パケットの分類器と組み込みプロセッサとを一体としたモジュールをＰＣＩｅスイッチに内蔵し、パケットをデータ転送のパケットと制御用のパケットとに分類し、制御用のパケットを組み込みプロセッサで処理する技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許出願公開第２００９／０１５０５６３号
【特許文献２】米国特許出願公開第２０１０／７７５２３７６号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ＰＣＩＭは、ＰＣＩｅトポロジに基づいて、Ｉ／Ｏコントローラに接続されたＰＣＩｅリンク、ＰＣＩｅスイッチ、及びＩ／Ｏデバイスを認識する。そのため、ＰＣＩｅトポロジにおいて、ＰＣＩｅリンクとバス番号との対応付けは、一意に決められている。
例えば、Ｉ／ＯコントローラにＰＣＩｅスイッチを多段に接続し、末端のＰＣＩｅスイッチにＩ／Ｏデバイスを接続した場合、ＰＣＩ−ＰＣＩブリッジ間を接続するＰＣＩｅリンクが多数必要になる。このＰＣＩｅリンクはＩ／Ｏデバイスが接続されないが、ＰＣＩＭによってバス番号が付与される。一方、ＰＣＩｅの仕様では、使用可能なバス番号の数は２５６個に制約されている。そのため、Ｉ／Ｏデバイスが接続するためのＰＣＩｅリンクに付与できるバス番号の数は減少する。したがって、ＰＣＩＭが認識可能なＩ／Ｏデバイスの数が減少するという課題が生じる。特許文献１、及び特許文献２には、上記課題に対する格別な解決策の示唆がない。【００１１】
本発明の第１の目的は、ＰＣＩｅスイッチを介して計算機とＩ／Ｏデバイスを接続してＰＣＩｅトポロジを構築する場合、接続可能なＩ／Ｏデバイスの数が減少するのを防止することにある。
また、特許文献２の技術を用いたＰＣＩｅスイッチでは、入力された全ての制御用のパケットを組み込みプロセッサが処理する。そのため、組み込みプロセッサに負荷がかかり、パケットを処理する能力が低下する懸念がある。
本発明の第２の目的は、ＰＣＩｅスイッチに含まれるプロセッサの負荷を軽減し、パケットを処理する能力が低下するのを防止することにある。
【課題を解決するための手段】
【００１２】
本発明に係る計算機システムは、好ましくは、計算機とＩ／Ｏデバイスに接続されるスイッチを介して、パケットデータを転送する計算機システムであって、
該スイッチは、該計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジと、該Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジと、該スイッチに入力されるパケットデータを捕捉する捕捉部と、該パケットデータをＩ／Ｏデバイスへ転送するパケット・ルーティング部を有し、
該捕捉部に接続され、プログラムの実行によって仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
該判定の結果、該宛先がＩ／Ｏデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送され、
該判定の結果、該宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
該管理プロセッサは、該パケットデータに応じて応答用のパケットデータを、第１のＰＣＩ−ＰＣＩブリッジを介して該計算機へ送信することを特徴とする計算機システムとして構成される。【００１３】
好ましい例によれば、上記計算機システムにおいて、前記スイッチは、前記管理プロセッサとメモリを有する半導体スイッチであり、該メモリは、仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間を保持する。
また、好ましくは、上記計算機システムにおいて、前記計算機が有するプロセッサで、前記管理プロセッサの動作を行う。【００１４】
また、好ましくは、上記計算機システムにおいて、前記捕捉部は、該計算機から送信されるパケットデータを受信するＰＣＩｅパケット受信部と、ＰＣＩ−ＰＣＩブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、該管理プロセッサとの間でパケットデータの転送する入出力部と、該管理プロセッサから転送される宛先がＩ／Ｏコントローラのパケットデータを送信するＰＣＩｅパケット送信部を有する。【００１５】
また、好ましくは、上記計算機システムにおいて、前記計算機は、自らで動作するプログラムによって該管理プロセッサが提供する前記仮想ＰＣＩｅトポロジを認識することができ、
かつ該仮想ＰＣＩeトポロジは、ＰＣＩｅスイッチ間を接続するＰＣＩ−ＰＣＩブリッジを仮想ＰＣＩ−ＰＣＩブリッジと、該計算機及びＰＣＩｅスイッチ及びＩ／Ｏデバイス間を接続する仮想ＰＣＩｅリンクとを含み、
該計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジとし、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可能なＰＣＩ−ＰＣＩブリッジについては、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現し、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けできないＰＣＩ−ＰＣＩブリッジについては、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をメモリ内に展開し、
前記管理プロセッサは、該メモリ内の該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する。
また、好ましくは、上記計算機システムにおいて、前記仮想ＰＣＩ−ＰＣＩブリッジと、前記物理ＰＣＩ−ＰＣＩブリッジの対応付けを変更することにより、該Ｉ／Ｏデバイスに付与されるバス番号を変化させる。【００１６】
本発明に係るスイッチは、好ましくは、計算機とＩ／Ｏデバイスに接続されて、パケットデータを転送するＰＣＩｅスイッチであって、
該計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジと、該Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジと、
該スイッチに入力されるパケットデータを捕捉する捕捉部と、
該パケットデータをＩ／Ｏデバイスへ転送するパケット・ルーティング部と、
該捕捉部に接続され、プログラムの実行によって仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
該判定の結果、該宛先がＩ／Ｏデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送され、
該判定の結果、該宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
該管理プロセッサは、該パケットデータに応じて応答用のパケットデータを、第１のＰＣＩ−ＰＣＩブリッジを介して該計算機へ送信することを特徴とするＰＣＩｅスイッチとして構成される。【００１７】
好ましくは、前記スイッチは、該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間を保持するメモリを有し、該管理プロセッサは、該メモリ内の、該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する。
また、好ましくは、上記ＰＣＩｅスイッチにおいて、前記捕捉部は、該計算機から送信されるパケットデータを受信するＰＣＩｅパケット受信部と、ＰＣＩ−ＰＣＩブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、該管理プロセッサとの間でパケットデータの転送する入出力部と、該管理プロセッサから転送される宛先がＩ／Ｏコントローラのパケットデータを送信するＰＣＩｅパケット送信部を有する。【００１８】
また、好ましくは、上記ＰＣＩｅスイッチにおいて、該仮想ＰＣＩeトポロジは、ＰＣＩｅスイッチ間を接続するＰＣＩ−ＰＣＩブリッジを仮想ＰＣＩ−ＰＣＩブリッジと、該計算機及びＰＣＩｅスイッチ及びＩ／Ｏデバイス間を接続する仮想ＰＣＩｅリンクとを含み、
該計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジとし、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可可能なＰＣＩ−ＰＣＩブリッジについては、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現し、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けできないＰＣＩ−ＰＣＩブリッジについては、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をメモリ内に展開する。【００１９】
本発明に係るパケット転送制御方法は、好ましくは、計算機とＩ／Ｏデバイスに接続されるＰＣＩｅスイッチを用いてパケットデータの転送を制御するパケット転送制御方法であって、ＰＣＩｅスイッチのＴｒａｐｐｅｒモジュールは、ＰＣＩｅスイッチに入力されるパケットデータの宛先を参照して、該パケットデータを捕捉するか否かを判定し、
該判定の結果、該宛先がＰＣＩ−ＰＣＩブリッジのパケットデータの場合、該Ｔｒａｐｐｅｒモジュールは、該パケットデータを捕捉して管理プロセッサへ転送し、
該判定の結果、該宛先がＩ／Ｏデバイスのパケットデータの場合、該Ｔｒａｐｐｅｒモジュールは、該パケットデータを捕捉しないで、該Ｉ／Ｏデバイスへ転送し、
該管理プロセッサは、該Ｔｒａｐｐｅｒモジュールから転送される該パケットデータを受信すると、該管理プロセッサに接続するメモリに実現されたＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該Ｔｒａｐｐｅｒモジュールへ送信し、
該Ｔｒａｐｐｅｒモジュールは、管理プロセッサから取得した該応答を、該計算機へ送信することを特徴とするパケット転送制御方法として構成される。【００２０】
本発明に係るパケット転送制御方法は、また、好ましくは、計算機とＩ／Ｏデバイスに接続されるＰＣＩｅスイッチを用いてパケットデータの転送を制御するパケット転送制御方法であって、ＰＣＩ−ＰＣＩブリッジを管理する管理プロセッサに接続されるメモリは、その内に仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを予め用意するステップと、
該ＰＣＩｅスイッチは、該計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジを介して、該計算機から転送されるパケットデータを受信するステップと、
該ＰＣＩｅスイッチの捕捉部は、受信したパケットデータの宛先を判定するステップと、
該判定の結果、該宛先がＩ／Ｏデバイスの場合、該捕捉部は該パケットデータを捕捉せず通過させ、該Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送するステップと、
該判定の結果、該宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合、該捕捉部は該パケットデータを捕捉して、該捕捉部に接続された管理プロセッサへ送信するステップと、
該管理プロセッサは、該捕捉部より受信した該パケットデータに応じて、該メモリを参照して応答用のパケットデータを用意して、第１のＰＣＩ−ＰＣＩブリッジを介して該計算機へ送信するステップを有することを特徴とするパケット転送制御方法として構成される。
【発明の効果】
【００２１】
本発明によれば、計算機にＰＣＩｅスイッチを多段に接続し、末端のＰＣＩｅスイッチにＩ／Ｏデバイスを接続してＰＣＩｅトポロジを構築する場合、接続可能なＩ／Ｏデバイスの数が減少するのを防止することが可能となる。とりわけ、仮想ＰＣＩｅトポロジへのアクセスを、異なる物理構成を持つＰＣＩｅトポロジに実現することができ、かつ、物理的な接続に依存しない仮想ＰＣＩｅトポロジを実現することが可能となる。これにより、Ｉ／Ｏデバイスが接続するＰＣＩｅリンクに、ＰＣＩＭがバス番号を柔軟に割り当てることが可能となる。
【図面の簡単な説明】
【００２２】
【図１】一実施形態による計算機システムの構成を示す図。
【図２】一実施形態による仮想ＰＣＩｅトポロジの構成を示す図。
【図３】一実施形態によるＴｒａｐｐｅｒモジュールの構成を示す図。
【図４】一実施形態によるＰＣＩｅのパケットを示す図。
【図５】一実施形態によるＴｒａｐｐｅｒモジュールの動作を示すフローチャート図。
【図６】一実施形態によるメモリのアドレス空間を示すブロック図。
【図７】一実施形態によるバス番号と仮想ＰＣＩｅリンクの対応付けを示す図。
【図８】一実施形態による管理プロセッサ上で動作するファームウェアの処理を示すフローチャート図。
【図９】一実施形態によるＩ／Ｏコントローラから仮想ＰＣＩ−ＰＣＩブリッジへのアクセスが発生した場合の処理を示すフローチャート図。
【図１０】一実施形態によるＩ／Ｏコントローラから仮想ＰＣＩ−ＰＣＩブリッジへのアクセスが発生した場合の処理を示すフローチャート図。
【図１１】一実施形態によるＩ／Ｏコントローラから仮想ＰＣＩ−ＰＣＩブリッジへのアクセスが発生した場合のパケットの流れを示す図。
【図１２】一実施形態によるＩ／Ｏコントローラから仮想ＰＣＩ−ＰＣＩブリッジへのアクセスが発生した場合のパケットの流れを示す図。
【図１３】一実施形態によるＩ／Ｏコントローラから仮想ＰＣＩ−ＰＣＩブリッジへのアクセスが発生した場合のパケットの流れを示す図。
【図１４】一実施形態によるＩ／ＯコントローラからＩ／Ｏデバイスへのアクセスが発生した場合のパケットの流れを示す図。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、本発明の実施形態について説明する。
図１は、一実施形態における計算機システムの構成を示す。
この計算機システムは、複数の計算機１００−１〜１００−４と、複数のＩ／Ｏデバイス１２０−１〜１２０−４を含み、これらは互いに複数のＰＣＩｅスイッチ１１０−１〜１１０−４を介して接続される。ＰＣＩｅスイッチは半導体（ＬＳＩ）で構成されるので、ＰＣＩｅスイッチＬＳＩということがある。（なお、複数の計算機やＩ／Ｏデバイス、ＰＣＩｅスイッチ等は、特に区別しない限り、単に１００、１２０、１１０と示す。その他の構成要素に関する符号ついても同様である。）計算機１００は、プログラムの実行によって種々のデータ処理を行うプロセッサ（ＣＰＵ）１０２と、メモリ１０３と、ＰＣＩｅスイッチに接続されるＩ／Ｏコントローラ１０１を有する。
【００２４】
ＰＣＩｅスイッチ１１０は、ＰＣＩ−ＰＣＩブリッジ１１１、１１２、１１３と、Ｔｒａｐｐｅｒモジュール１１４と、パケット・ルーティング部１１５と、管理プロセッサ１１６と、メモリ１１７を有して構成される。
Ｔｒａｐｐｅｒモジュール１１４と管理プロセッサ１１６との間は、ＰＣＩｅの仕様に依らない、独自のバス１１８で接続される。計算機１００とＰＣＩｅスイッチ１１０との間は、ＰＣＩｅリンク１３０で接続される。異なるＰＣＩｅスイッチ１１０の間は、ＰＣＩｅリンク１４０で接続される。ＰＣＩｅスイッチ１１０とＩ／Ｏデバイス１２０との間は、ＰＣＩｅリンク１５０で接続される。
【００２５】
ここで、Ｔｒａｐｐｅｒモジュール１１４の構成について、図３を参照して説明する。
Ｔｒａｐｐｅｒモジュール１１４は、本発明に特徴的な構成を成し、パケットの宛先に応じて、ＰＣＩ−ＰＣＩブリッジのパケットを捕捉するか否かを判断する処理機能を有する。図３に示すように、Ｔｒａｐｐｅｒモジュール１１４は、ＰＣＩｅパケット受信部３０１、パケットの宛先比較部３０２、バッファ３０３、管理プロセッサとの入出力部３０４、及びＰＣＩｅパケット送信部３０５を備えて構成される。
【００２６】
ＰＣＩｅパケット受信部３０１は、Ｉ／Ｏコントローラ１０１からパケットを受信する機能を持つ。パケットの宛先比較部３０２は、受信したパケットの宛先がＰＣＩ−ＰＣＩブリッジか否かを判定する。図４のように、ＰＣＩｅのパケット４００のヘッダには、パケットの宛先４０１が含まれる。パケットの宛先比較部３０２は、パケットの宛先４０１を参照して比較することで、パケットを捕捉するか否かを判断する。
【００２７】
パケットの宛先４０１には２種類の形式がある。１種類目は、宛先をアドレスで指定する形式である。２種類目は、宛先をバス番号、及びデバイス番号で指定する形式である。パケットの宛先比較部３０２は、ＰＣＩ−ＰＣＩブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットの宛先４０１と比較して、パケットを捕捉するか否かを判断する。ＰＣＩ−ＰＣＩブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号は、管理プロセッサ１１６から独自バス１１８を使用して、Ｔｒａｐｐｅｒモジュール１１４へ転送される。
【００２８】
Ｔｒａｐｐｅｒモジュール１１４は、パケットをデータ転送のパケットと制御用のパケットとで区別しておらず、パケットの宛先でパケットを捕捉するか否かを判断する。そのため、制御用パケットを受信した場合、パケットの宛先がＩ／Ｏデバイスであれば、パケットを管理プロセッサに転送せずに通過させる。そのため、制御用のパケットを全て管理プロセッサに転送する場合と比較して、本発明は管理プロセッサの負荷を軽減できる。そして、パケットを処理する能力が低下するのを防止することができる。
【００２９】
バッファ３０３は、Ｔｒａｐｐｅｒモジュール１１４と、後述する管理プロセッサ１１６との間でパケットを仲介するため、パケットを一時保存する。管理プロセッサとの入出力部３０４は、管理プロセッサ１１６と接続され、独自のバスを介してパケットを転送する。ＰＣＩｅパケット送信部３０５は、管理プロセッサから転送される宛先がＩ／Ｏコントローラ１０１の応答用パケットを送信する。
【００３０】
Ｔｒａｐｐｅｒモジュール１１４は、図１のように、Ｉ／Ｏコントローラ１０１に接続されるＰＣＩ−ＰＣＩブリッジ１１１−１〜１１１−４と、パケット・ルーティング部１１５−１、１１５−２との間に存在することによって、宛先が物理的に存在しないＰＣＩ−ＰＣＩブリッジのパケットを捕捉することが可能である。
【００３１】
本実施形態では、同一のＰＣＩｅスイッチ１１０を複数個組み合わせることで、計算機システムにおけるパケットのルーティング制御機構が構築される。Ｔｒａｐｐｅｒモジュール１１４の各機能は、ＰＣＩｅスイッチ１１０がＩ／Ｏコントローラ１０１に接続されている場合に有効にされる。したがって、ＰＣＩｅスイッチ１１０−１、１１０−２に含まれるＴｒａｐｐｅｒモジュール１１４−１〜１１４−４は、それらの機能が有効に働いて管理プロセッサを使用したルーティング制御が行われる。
【００３２】
一方、Ｉ／Ｏコントローラ１０１に接続されないＰＣＩｅスイッチ１１０−３、１１０−４内の、Ｔｒａｐｐｅｒモジュール１１４−５〜１１４−８はＴｒａｐｐｅｒモジュール１１４の機能を無効とし、全てのパケットを通過させる。即ち、Ｔｒａｐｐｅｒモジュール１１４の機能が働かないので（不要なので）、全てのパケットは管理プロセンサを介さないルーティング制御が行われる。
【００３３】
ＰＣＩｅリンクは、送信と受信の信号線が分離した、全二重方式で通信を行う。そのため、Ｔｒａｐｐｅｒモジュール１１４−１〜１１４−４に入力される信号線は、ＰＣＩ−ＰＣＩブリッジ１１１から入力される信号線と、パケット・ルーティング部１１５から入力される信号線とに分離している。Ｔｒａｐｐｅｒモジュール１１４は、ＰＣＩ−ＰＣＩブリッジ１１１から入力される信号線に、上述のＴｒａｐｐｅｒモジュール１１４の機能を実装する。そのため、これらＴｒａｐｐｅｒモジュール１１４の各機能は、ＰＣＩ−ＰＣＩブリッジ１１１から入力されるパケットに対して機能する。パケット・ルーティング部１１５から入力される信号線には、Ｔｒａｐｐｅｒモジュール１１４の各機能を実装しない。そのため、パケット・ルーティング部１１５から入力されたパケットは、ＰＣＩ−ＰＣＩブリッジ１１１に通過する。
本発明は、Ｔｒａｐｐｅｒモジュール１１４と管理プロセッサ１１６とを、一体とはせずに異なるモジュールとしている。そのため、Ｔｒａｐｐｅｒモジュール１１４を複数配置することで、１つのＴｒａｐｐｅｒモジュール１１４にパケットが集中して入力されることを回避し、パケットを管理プロセッサ１１６へ高速に転送可能である。
【００３４】
図５は、Ｔｒａｐｐｅｒモジュール１１４の動作を示すフローチャートである。
この処理は、Ｔｒａｐｐｅｒモジュール１１４が、Ｉ／Ｏコントローラ１０１からパケットを受信することで実行される（Ｓ５０１）。受信したパケットは、その宛先４０１がＰＣＩ−ＰＣＩブリッジか否かを判定される（Ｓ５０２）。判定の結果、Ｙｅｓの場合（即ちＰＣＩ−ＰＣＩブリッジ）には、Ｓ５０３へ進み、Ｎｏ（ＰＣＩ−ＰＣＩブリッジでない）の場合には、Ｓ５０４へ進む。
処理Ｓ５０３では、Ｔｒａｐｐｅｒモジュール１１４は受信したパケットを捕捉して、管理プロセッサ１１６へ転送する。管理プロセッサ１１６へパケットを転送する場合の処理については、図８を参照して後述する。
【００３５】
また、処理Ｓ５０４では、Ｔｒａｐｐｅｒモジュール１１４は受信したパケットを、宛先の変更をせずに通過させる。この場合、パケットは宛先４０１に含まれるアドレスや、バス番号及びデバイス番号で指定される、いずれかのＩ／Ｏデバイス１２０へ転送される。
Ｓ５０３又はＳ５０４のいずれかの処理が完了すると、Ｔｒａｐｐｅｒモジュール１１４は動作を終了する。
【００３６】
図１の説明に戻ると、パケット・ルーティング部１１５は、Ｔｒａｐｐｅｒモジュール１１４、管理プロセッサ１１６、及びＰＣＩ−ＰＣＩブリッジ１１２、１１３と接続され、入力されたパケットを、宛先に転送する機能を持つ。パケット・ルーティング部は、ＰＣＩｅの仕様に依る必要はなく、パケットが宛先に到達するならば、ルーティングの形式は問わない。
【００３７】
管理プロセッサ１１６は、ＰＣＩ−ＰＣＩブリッジを管理するファームウェアを動作させる処理装置である。ファームウェアの動作については後述する。また、管理プロセッサ１１６にはメモリ１１７が接続される。管理プロセッサ１１６及びメモリ１１７は、Ｔｒａｐｐｅｒモジュール１１４と同様に、ＰＣＩｅスイッチ１１０がＩ／Ｏコントローラ１０１に接続されている場合に、その機能を有効にする。それに対応して、管理プロセッサ１１６−１、１１６−２はその機能を有効とされ、一方、管理プロセッサ１１６−３、１１６−４は、その機能を無効とされる。
メモリ１１７についても同様に、メモリ１１７−１、１１７−２は機能を有効とし、メモリ１１７−３、１１７−４は機能を無効とされる。
【００３８】
なお、本実施形態では、管理プロセッサ１１６及びメモリ１１７をＰＣＩｅスイッチ１１０内に実装しているが、これに限定されない。例えば、管理プロセッサ１１６又はメモリ１１７のいずれか一方または両者を、ＰＣＩｅスイッチ１１０の外部に配置してもよい。
また、本実施形態では、管理プロセッサ１１６をＰＣＩｅスイッチ１１０に内蔵しているが、これに限定されず、管理プロセッサ１１６は計算機１００に含まれるＣＰＵ１０２で代用してもよい。同様に、メモリ１１７は、計算機１００に含まれるメモリ１０３で代用してもよい。
【００３９】
図２は、例えば計算機１００−１で動作するプログラムが認識する、ＰＣＩｅトポロジである。なお、計算機１００−２〜１００−４で動作するプラグラムも同様に認識可能である。このＰＣＩｅトポロジは、物理構成とは異なり論理的なものであるため、ここでは仮想ＰＣＩｅトポロジということとする。
仮想ＰＣＩｅトポロジは、計算機１００で動作するプログラムが認識するＰＣＩｅトポロジである。計算機１００で動作するプログラムは、ＰＣＩｅリンク、ＰＣＩ−ＰＣＩブリッジ、及びＩ／Ｏデバイスを探索することで、仮想ＰＣＩｅトポロジを認識する。
【００４０】
以下、仮想ＰＣＩｅトポロジに含まれるＰＣＩ−ＰＣＩブリッジ２２１、２２２、２３１、２３２を、仮想ＰＣＩ−ＰＣＩブリッジということにする。また、ＰＣＩｅスイッチ２２０、２３０を仮想ＰＣＩｅスイッチということにする。さらに、ＰＣＩｅリンク２５０、２６０、２７０、２８０、２９０を仮想ＰＣＩｅリンクということにする。
計算機１００−１には、仮想ＰＣＩｅリンク２５０を介して仮想ＰＣＩｅスイッチ２２０が接続する。また、仮想ＰＣＩｅスイッチ２２０には、仮想ＰＣＩｅリンク２７０を介して複数の仮想ＰＣＩｅスイッチ２３０が接続する。さらに、仮想ＰＣＩｅスイッチ２３０には、仮想ＰＣＩｅリンク２９０を介して複数のＩ／Ｏデバイス２４０が接続する。
【００４１】
なお、図２において、ＰＣＩｅスイッチ２２０、２３０は、２段重ねてＩ／Ｏコントローラ２０１に接続されているが、本発明はこれに限定されない。例えば、ＰＣＩｅスイッチは１段、もしくは３段以上重ねて接続してもよい。仮想ＰＣＩｅトポロジの形状は、計算機１００やＩ／Ｏデバイス１２０の数を基に、ユーザが任意に決定することができる。したがって、図１のＰＣＩｅスイッチの数と、図２の仮想ＰＣＩｅスイッチの数と間に依存関係はないといえる。なお、ＰＣＩｅの仕様では、１台の計算機に接続される使用可能なバス番号の数は最大２５６であるので、図２の例を拡張すれば、計算機１００−１に接続されるＰＣＩ−ＰＣＩブリッジ（即ちＰＣＩｅスイッチ２２０）は最大８つ、ＰＣＩｅスイッチ２２０に接続されるＰＣＩ−ＰＣＩブリッジはそれぞれ３２個ずつということになる。
【００４２】
以下、仮想ＰＣＩ−ＰＣＩブリッジと区別するため、図１の計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジということにする。
仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間は、全てメモリ１１７上に実現することも可能である。しかし、全ての仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間を、メモリ１１７上に実現すると、メモリ１１７の必要量が増大する。また、この場合、仮想ＰＣＩ−ＰＣＩブリッジの処理を、管理プロセッサ１１６が全て行うため、管理プロセッサ１１６の負荷が増大する。
【００４３】
以上の理由から、本実施形態では、仮想ＰＣＩ−ＰＣＩブリッジと物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可能なＰＣＩ−ＰＣＩブリッジについては、その対応付けを利用するのが好ましい。これにより、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現する。一方、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間は、メモリ１１７上に実現する。仮想ＰＣＩｅトポロジの形状と図１の計算機システムの物理構成が決定すると、以下のような対応付けが決定できる。
【００４４】
図２の仮想ＰＣＩ−ＰＣＩブリッジは、次の３種類に分類することができる。１種類目は、Ｉ／Ｏコントローラ１０１−１に接続する仮想ＰＣＩ−ＰＣＩブリッジ２２１、２種類目は、仮想ＰＣＩｅトポロジ上のＩ／Ｏデバイス２４０に接続する仮想ＰＣＩ−ＰＣＩブリッジ２３２、３種類目は、仮想ＰＣＩｅスイッチ２２０と２３０の間を接続する仮想ＰＣＩ−ＰＣＩブリッジ２２２と２３１である。
【００４５】
図１の計算機システムに含まれる物理ＰＣＩ−ＰＣＩブリッジは、次の３種類に分類することができる。１種類目は、Ｉ／Ｏコントローラ１０１に接続する物理ＰＣＩ−ＰＣＩブリッジ１１１、２種類目は、物理構成上のＩ／Ｏデバイス１２０に接続する物理ＰＣＩ−ＰＣＩブリッジ１１３、３種類目は、ＰＣＩｅスイッチ１１０−１，１１０−２とＰＣＩｅスイッチ１１０−３，１１０−４との間を接続する物理ＰＣＩ−ＰＣＩブリッジ１１２である。
【００４６】
例えば、計算機１００−１から物理構成上のＩ／Ｏデバイス１２０−１、及び１２０−４を認識する場合、仮想ＰＣＩ−ＰＣＩブリッジ２２１と、物理ＰＣＩ−ＰＣＩブリッジ１１１−１とが対応付けされる。また、仮想ＰＣＩ−ＰＣＩブリッジ２３２−１と、物理ＰＣＩ−ＰＣＩブリッジ１１３−１とが対応付けされる。さらに、仮想ＰＣＩ−ＰＣＩブリッジ２３２−２と、物理ＰＣＩ−ＰＣＩブリッジ１１３−４とが対応付けされる。ここで、仮想ＰＣＩ−ＰＣＩブリッジ２２２、２３１は、物理ＰＣＩ−ＰＣＩブリッジと対応付けがされない。また、異なるＰＣＩｅスイッチ１１０間を接続する物理ＰＣＩ−ＰＣＩブリッジ１１２は、パケットの通過可否を判断するといったＰＣＩ−ＰＣＩブリッジとしての機能を無効化し、全てのパケットを通過させる。
【００４７】
仮想ＰＣＩ−ＰＣＩブリッジと物理ＰＣＩ−ＰＣＩブリッジとが対応付けされると、Ｉ／Ｏデバイスも１対１で対応付けされる。上記の例の場合、仮想ＰＣＩｅトポロジ上のＩ／Ｏデバイス２４０−１と物理構成上のＩ／Ｏデバイス１２０−１とが対応付けされる。また、仮想ＰＣＩｅトポロジ上のＩ／Ｏデバイス２４０−２と物理構成上のＩ／Ｏデバイス１２０−４とが対応付けされる。
【００４８】
以上のように、仮想ＰＣＩ−ＰＣＩブリッジ２２１のアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ１１１に実現することがわかる。また、仮想ＰＣＩ−ＰＣＩブリッジ２３２のアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ１１３に実現する。仮想ＰＣＩ−ＰＣＩブリッジ２２２、２３１のアドレス空間は、図６のように、メモリ１１７上に実現される。即ち、図２の例を用いれば、仮想ＰＣＩ−ＰＣＩブリッジ２２２−１、２２２−２、２２２−３、２３１−１、２３１−２、２３１−３のようにアドレス空間がメモリ１１７に確保される。
【００４９】
ＰＣＩＭが図２の仮想ＰＣＩｅトポロジを認識すると、ＰＣＩＭは、仮想ＰＣＩｅリンクにバス番号を、以下のように付与する。
まず、Ｉ／Ｏコントローラ１０１に接続されたデバイスを探索する。すると、Ｉ／Ｏコントローラ１０１に、仮想ＰＣＩ−ＰＣＩブリッジ２２１が接続されていることを、ＰＣＩＭは認識する。これにより、Ｉ／Ｏコントローラ１０１と、仮想ＰＣＩ−ＰＣＩブリッジ２２１とを接続するＰＣＩｅリンク２５０に、ＰＣＩＭはバス番号０を付与する（図７参照）。
【００５０】
次に、仮想ＰＣＩ−ＰＣＩブリッジ２２１に接続されたデバイスを探索する。すると、仮想ＰＣＩ−ＰＣＩブリッジ２２１に、仮想ＰＣＩ−ＰＣＩブリッジ２２２−１、２２２−２、及び２２２−３が接続されていることを、ＰＣＩＭは認識する。これにより、仮想ＰＣＩ−ＰＣＩブリッジ２２１と、仮想ＰＣＩ−ＰＣＩブリッジ２２２とを接続するＰＣＩｅリンク２６０に、ＰＣＩＭはバス番号１を付与する。
次に、仮想ＰＣＩ−ＰＣＩブリッジ２２２−１に接続するデバイスを探索する。すると、仮想ＰＣＩ−ＰＣＩブリッジ２２２−１に、仮想ＰＣＩ−ＰＣＩブリッジ２３１−１が接続されていることを、ＰＣＩＭは認識する。これにより、仮想ＰＣＩ−ＰＣＩブリッジ２２２−１と、仮想ＰＣＩ−ＰＣＩブリッジ２３１−１とを接続するＰＣＩｅリンク２７０−１に、ＰＣＩＭはバス番号２を付与する。
【００５１】
以上のような操作をＰＣＩＭが続けると、バス番号と仮想ＰＣＩｅリンクとの対応付けは、図７のようになる。そのため、本実施形態の例では、物理構成上のＩ／Ｏデバイス１２０−１に仮想ＰＣＩｅリンク２９０−１が接続されることから、バス番号４が付与される。また、物理構成上のＩ／Ｏデバイス１２０−４に仮想ＰＣＩｅリンク２９０−２が接続されることから、バス番号５が付与される。
【００５２】
仮想ＰＣＩ−ＰＣＩブリッジと物理ＰＣＩ−ＰＣＩブリッジの対応付けを変更することによって、Ｉ／Ｏデバイスに付与されるバス番号は変化する。例えば、仮想ＰＣＩ−ＰＣＩブリッジ２３２−４と物理ＰＣＩ−ＰＣＩブリッジ１１３−４とを対応付けると、物理構成上のＩ／Ｏデバイス１２０−４に仮想ＰＣＩｅリンク２９０−４が接続されるため、バス番号９が付与される。このように、バス番号をＩ／Ｏデバイスに柔軟に割り当てることが可能である。
【００５３】
次に、図８を参照して、管理プロセッサ１１６上で動作するファームウェアの処理について説明する。このファームウェアの処理は、管理プロセッサ１１６が、Ｔｒａｐｐｅｒモジュール１１４からパケットを受信する（Ｓ８０１）、またはパケット・ルーティング部１１５からパケットを受信する（Ｓ８０７）ことで、実行される。
まず、Ｔｒａｐｐｅｒモジュール１１４から受信したパケットの宛先を認識する（Ｓ８０２）。その結果、パケットの宛先が、物理ＰＣＩ−ＰＣＩブリッジと対応付けされた仮想ＰＣＩ−ＰＣＩブリッジか否かを判定する（Ｓ８０３）。判定結果が正（Ｙｅｓ）の場合はＳ８０４へ進み、偽（Ｎｏ）の場合はＳ８０５へ進む。
【００５４】
Ｓ８０４では、Ｔｒａｐｐｅｒモジュール１１４から受信したパケットを、対応付けされた物理ＰＣＩ−ＰＣＩブリッジへ転送する。一方、Ｓ８０５では、Ｔｒａｐｐｅｒモジュールから受信したパケットに基づき、ファームウェアが、メモリ１１７に実現した仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間に対してアクセスを行う。そして、ファームウェア処理の結果、応答をＩ／Ｏコントローラに返す必要がある場合、応答パケットを生成して、Ｔｒａｐｐｅｒモジュール１１４経由で、応答パケットをＩ／Ｏコントローラ１０１に返送する（Ｓ８０６）。
また、パケット・ルーティング部からパケットを受信した場合（Ｓ８０７）、その受信したパケットを、Ｔｒａｐｐｅｒモジュール１１４経由で、Ｉ／Ｏコントローラ１０１に返送する（Ｓ８０８）。
【００５５】
図１の計算機システムで動作するプログラムが認識するＰＣＩｅトポロジは、図２のような仮想ＰＣＩｅトポロジである。そのため、Ｉ／Ｏコントローラ１０１から、仮想ＰＣＩ−ＰＣＩブリッジ２２１、２２２、２３１、２３２へアクセスが発生する。このアクセスのパケットが、図１のＰＣＩｅスイッチ１１０に入力された場合に、ＰＣＩｅスイッチ１１０が行う処理の流れを、図９と図１０を用いて、以下に説明する。
ここで、仮想ＰＣＩ−ＰＣＩブリッジ２２１、２２２、２３１、２３２へのアクセスが発生する場合とは、例えば、計算機１００からの命令によって、ＰＣＩ−ＰＣＩブリッジが有するメモリの内容（例えばＰＣＩ−ＰＣＩブリッジの識別情報）を読みだす場合、或いはＰＣＩ−ＰＣＩブリッジのパラメータを初期設定する（書き込み）場合、或いはＰＣＩ−ＰＣＩブリッジに設定されたパラメータを解除する場合などである。
【００５６】
図９は、図２の仮想ＰＣＩｅトポロジにおいて、Ｉ／Ｏコントローラ１０１から仮想ＰＣＩ−ＰＣＩブリッジ２２２、２３１へのアクセスが発生した場合、ＰＣＩｅスイッチ１１０が行う処理の流れを示す。
Ｉ／Ｏコントローラ１０１からパケットがＰＣＩ−ＰＣＩブリッジ宛てに送信されると（Ｓ９０１）、Ｔｒａｐｐｅｒモジュール１１４は、パケットを捕捉し、Ｔｒａｐｐｅｒモジュール１１４内のバッファ３０３に順次書き込む（Ｓ９０２）。Ｔｒａｐｐｅｒモジュール１１４は、捕捉したパケットをバッファ３０３に書き終えたら、管理プロセッサ１１６に、パケットを捕捉したことを通知する（Ｓ９０３）。
【００５７】
管理プロセッサ１１６は、パケットの捕捉通知を受けると、Ｔｒａｐｐｅｒモジュール１１４に、バッファ３０３内のデータ読み出し命令を送信する（Ｓ９０４）。すると、Ｔｒａｐｐｅｒモジュール１１４は、バッファ３０３内からパケットのデータを読み出して（Ｓ９０５）、読み出したデータを管理プロセッサ１１６に送信する（Ｓ９０６）。
管理プロセッサ１１６は、パケットのデータを受信すると、パケットの宛先を認識する（Ｓ９０７）。その結果、パケットの宛先が仮想ＰＣＩ−ＰＣＩブリッジ２２２、２３１であることを認識すると（Ｓ９０７）、管理プロセッサ１１６は、メモリ１１７上にある、仮想ＰＣＩ−ＰＣＩブリッジ用のアドレス空間へアクセスする（Ｓ９０８）。
【００５８】
メモリへのアクセスは一般的に、書き込み処理では応答が無く、読み出し処理では読み出したデータの応答が有る。そのため、パケットが仮想ＰＣＩ−ＰＣＩブリッジへの書き込み処理の場合、メモリ１１７から管理プロセッサ１１６への応答は無い。パケットが仮想ＰＣＩ−ＰＣＩブリッジへの読み出し処理の場合、管理プロセッサ１１６はメモリ１１７から応答を受信する（Ｓ９０９）。
【００５９】
Ｉ／Ｏコントローラ１０１からのアクセスが、メモリ空間への読み出しやコンフィギュレーション空間へのアクセスなど、応答のパケットが必要な場合、管理プロセッサ１１６は、Ｉ／Ｏコントローラ１０１宛ての応答用パケットを生成する（Ｓ９１０）。そして、管理プロセッサ１１６は、生成した応答用パケットをＴｒａｐｐｅｒモジュール１１４に送信する（Ｓ９１１）。
Ｔｒａｐｐｅｒモジュール１１４は、管理プロセッサ１１６から受信した応答用パケットを、Ｔｒａｐｐｅｒモジュール１１４内のバッファ３０３に順次書き込む（Ｓ９１２）。
【００６０】
管理プロセッサ１１６は、全ての応答用パケットをＴｒａｐｐｅｒモジュール１１４に送信すると、応答用パケットをＩ／Ｏコントローラ１０１宛てに送信する命令を、Ｔｒａｐｐｅｒモジュール１１４に通知する（Ｓ９１３）。すると、Ｔｒａｐｐｅｒモジュール１１４はバッファ３０３から応答用パケットを読み出し（Ｓ９１４）、Ｉ／Ｏコントローラ１０１宛てに応答用パケットを送信する（Ｓ９１５）。
【００６１】
Ｉ／Ｏコントローラ１０１からのアクセスが、メモリ空間への書き込みなど応答のパケットが不要の場合、管理プロセッサ１１６は、Ｔｒａｐｐｅｒモジュール１１４に処理終了を通知する（Ｓ９１６）。
Ｉ／Ｏコントローラ１０１宛てに応答用パケットを送信完了した場合、または管理プロセッサ１１６から処理終了の通知を受信した場合、Ｔｒａｐｐｅｒモジュール１１４はバッファ３０３内のパケットを、全て消去する（Ｓ９１７）。
以上で、Ｉ／Ｏコントローラ１０１から仮想ＰＣＩ−ＰＣＩブリッジ２２２、２３１へのアクセスに対する計算機システムの処理は終了する。
【００６２】
図１０は、図２の仮想ＰＣＩｅトポロジにおいて、Ｉ／Ｏコントローラ１０１から仮想ＰＣＩ−ＰＣＩブリッジ２３２へのアクセスが発生した場合、ＰＣＩｅスイッチ１１０が行う処理の流れを示す。Ｓ９０１からＳ９０６までの動作は、図９の処理と同じである。
管理プロセッサ１１６は、パケットの宛先が仮想ＰＣＩ−ＰＣＩブリッジ２３２であることを認識すると（Ｓ１００１）、対応付けされた物理ＰＣＩ−ＰＣＩブリッジを求める（Ｓ１００２）。そして、パケットの宛先を求めた物理ＰＣＩ−ＰＣＩブリッジ１１３に変更して（Ｓ１００３）、パケットを物理ＰＣＩ−ＰＣＩブリッジ１１３へ転送する（Ｓ１００４）。
【００６３】
Ｉ／Ｏコントローラ１０１からのアクセスが、メモリ空間への読み出しやコンフィギュレーション空間へのアクセスなど応答のパケットを必要とする場合、管理プロセッサ１１６は物理ＰＣＩ−ＰＣＩブリッジ１１３から、応答のパケットを受信する（Ｓ１００５）。
以後、Ｓ９１０からＳ９１７までの動作は、図９の処理と同じである。以上で、Ｉ／Ｏコントローラ１０１から仮想ＰＣＩ−ＰＣＩブリッジ２３２へのアクセスに対する、計算機システムの処理は終了する。
【００６４】
次に、図２の仮想ＰＣＩｅトポロジにおいて、Ｉ／Ｏコントローラ１０１から仮想ＰＣＩ−ＰＣＩブリッジ２２１、２２２、２３１、２３２や、物理構成上のＩ／Ｏデバイス１２０へアクセスが発生した場合、図１の計算機システムでパケットを伝達する際の、ルーティング制御の具体例を説明する。
【００６５】
図１１は、図２の仮想ＰＣＩｅトポロジにおいて、Ｉ／Ｏコントローラ１０１−１から仮想ＰＣＩ−ＰＣＩブリッジ２２１へのアクセスが発生した場合、計算機システムにおけるパケットの流れを示す。
この場合、パケットがＴｒａｐｐｅｒモジュール１１４−１に到達する前に、対応付けされた物理ＰＣＩ−ＰＣＩブリッジ１１１−１へ到達する。そのため、Ｉ／Ｏコントローラ１０１−１から、仮想ＰＣＩ−ＰＣＩブリッジ２２１に対応付けされた物理ＰＣＩ−ＰＣＩブリッジ１１１−１へアクセスが直接行われる。
【００６６】
図１２は、図２の仮想ＰＣＩｅトポロジにおいて、Ｉ／Ｏコントローラ１０１−１から仮想ＰＣＩ−ＰＣＩブリッジ２２２、２３１へのアクセスが発生した場合、計算機システムにおけるパケットの流れを示す。
この場合、Ｉ／Ｏコントローラ１０１−１に最も近いＴｒａｐｐｅｒモジュール１１４−１はパケットを捕捉し、管理プロセッサ１１６−１に専用バスを用いて転送する。管理プロセッサ１１６−１は、パケットを受信すると、図９に示したような処理をファームウェアで行う。そして、管理プロセッサ１１６−１はＩ／Ｏコントローラ１０１−１宛に応答用パケットを生成し、Ｔｒａｐｐｅｒモジュール１１４−１経由で応答用パケットを返す。
【００６７】
図１３は、図２の仮想ＰＣＩｅトポロジにおいて、Ｉ／Ｏコントローラ１０１−１から仮想ＰＣＩ−ＰＣＩブリッジ２３２−１へのアクセスが発生した場合、計算機システムにおけるパケットの流れを示す。
この場合、Ｉ／Ｏコントローラ１０１−１に最も近いＴｒａｐｐｅｒモジュール１１４−１は、パケットを捕捉し、管理プロセッサ１１６−１に独自バス１１８−１を用いて転送する。管理プロセッサ１１６−１はパケットを受信すると、図１０に示したように、仮想ＰＣＩ−ＰＣＩブリッジ２３２−１に対応付けされた物理ＰＣＩ−ＰＣＩブリッジ１１３−１へ、パケットの宛先を変更して、受信したパケットを転送する。管理プロセッサ１１６−１が、物理ＰＣＩ−ＰＣＩブリッジ１１３−１から応答パケットを受信すると、管理プロセッサ１１６−１はＩ／Ｏコントローラ１０１−１宛に、Ｔｒａｐｐｅｒモジュール１１４−１経由で応答用パケットを返す。
【００６８】
図１４は、図２の仮想ＰＣＩｅトポロジにおいて、Ｉ／Ｏコントローラ１０１−１から仮想ＰＣＩｅトポロジ上の仮想ＰＣＩｅトポロジ上のＩ／Ｏデバイス２４０−１へのアクセスが発生した場合、計算機システムにおけるパケットの流れを示す。この場合、Ｔｒａｐｐｅｒモジュール１１４−１はパケットを捕捉しない。Ｉ／Ｏコントローラ１０１−１から、仮想ＰＣＩｅトポロジ上のＩ／Ｏデバイス２４０−１に対応付けされた、物理構成上のＩ／Ｏデバイス１２０−１へアクセスが直接行われる。
【００６９】
以上、本発明の好ましい実施形態について説明したが、本発明は上記実施例に限定されることなく、更に種々変形して実施し得る。
例えば、上記実施形態では、Ｔｒａｐｐｅｒモジュール１１４の各機能は、ＰＣＩｅスイッチ１１０がＩ／Ｏコントローラ１０１に接続されている場合その機能を有効にし、一方Ｉ／Ｏコントローラ１０１に接続されない場合、ＰＣＩｅスイッチ１１０−３、１１０−４内のＴｒａｐｐｅｒモジュール１１４−５〜１１４−８の機能を無効にして、全てのパケットを通過させる、とした。これは、半導体で構成されるＰＣＩeスイッチ１１０が、全てＴｒａｐｐｅｒモジュールを持つような同一構成を有することを前提としているために生じる説明である。もし、Ｉ／Ｏコントローラ１０１に接続されるＰＣＩeスイッチ（第１のＰＣＩeスイッチ）と、Ｉ／Ｏコントローラ１０１に接続されないＰＣＩeスイッチ（第２のＰＣＩeスイッチ）とをそれぞれ別の半導体で形成できるならば、第１のＰＣＩeスイッチはＴｒａｐｐｅｒモジュールを有するものとして常にその機能を有効に利用できる。一方、第２のＰＣＩeスイッチはＴｒａｐｐｅｒモジュールの機能が無効なので、最初からＴｒａｐｐｅｒモジュールを備えない半導体として構成とすることができる。
【００７０】
また、メモリ１１７内に展開する仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間について、上記実施形態では、メモリ１１７の容量及び管理プロセッサ１１６の負荷の増大を抑えるために、可能な限り仮想ＰＣＩ−ＰＣＩブリッジと物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けている。しかし、他の例では、メモリ１１７の容量が十分あり、かつ管理プロセッサ１１６の負荷も許容できるならば、全ての仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間は、メモリに展開してもよい。メモリが全ての仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間を持てば、仮想ＰＣＩ−ＰＣＩブリッジと物理ＰＣＩ−ＰＣＩブリッジとが１対１で対応付けられているか（Ｓ８０３：図８）のような処理は不要となり、全ての受信パケットを管理プロセッサで処理することで対応可能である。
【００７１】
以上のように、本発明の好ましい実施態様によれば、物理的な接続に依存しない仮想ＰＣＩｅトポロジを実現できる。そのため、Ｉ／Ｏデバイスに接続するＰＣＩｅリンクに、ＰＣＩＭがバス番号を柔軟に割り当てることが可能である。そして、Ｉ／ＯコントローラにＰＣＩｅスイッチを多段に接続し、末端のＰＣＩｅスイッチにＩ／Ｏデバイスを接続した場合でも、接続可能なＩ／Ｏデバイスの数が減少する課題を解決することができる。また、Ｉ／Ｏコントローラから全ての仮想ＰＣＩ−ＰＣＩブリッジ及びＩ／Ｏデバイスに対してアクセスが可能である。
【符号の説明】
【００７２】
１００：計算機  １０１：Ｉ／Ｏコントローラ  １０２：ＣＰＵ  １０３：メモリ  １１０：ＰＣＩｅスイッチ  １１１〜１１３：物理ＰＣＩ−ＰＣＩブリッジ  １１４：Ｔｒａｐｐｅｒモジュール  １１５：パケット・ルーティング部  １１６：管理プロセッサ  １１７：メモリ  １１８：独自バス  １２０：Ｉ／Ｏデバイス  １３０〜１５０：ＰＣＩｅリンク  ２２０：仮想ＰＣＩｅスイッチ  ２２１〜２２２：仮想ＰＣＩ−ＰＣＩブリッジ  ２３０：仮想ＰＣＩｅスイッチ  ２３１〜２３２：仮想ＰＣＩ−ＰＣＩブリッジ  ２４０：Ｉ／Ｏデバイス  ２５０〜２９０：仮想ＰＣＩｅリンク  ３０１：ＰＣＩｅパケット受信部  ３０２：パケットの宛先比較部  ３０３：バッファ  ３０４：管理プロセッサとの入出力部  ３０５：ＰＣＩｅパケット送信部  ４００：パケット  ４０１：パケットの宛先  
【図１】
2012073304.tif 000003
【図２】
2012073304.tif 000004
【図３】
2012073304.tif 000005
【図４】
2012073304.tif 000006
【図５】
2012073304.tif 000007
【図６】
2012073304.tif 000008
【図７】
2012073304.tif 000009
【図８】
2012073304.tif 000010
【図９】
2012073304.tif 000011
【図１０】
2012073304.tif 000012
【図１１】
2012073304.tif 000013
【図１２】
2012073304.tif 000014
【図１３】
2012073304.tif 000015
【図１４】
2012073304.tif 000016
【手続補正書】
【提出日】平成23年7月26日(2011.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
計算機とＩ／Ｏデバイスに接続されるスイッチを介して、パケットデータを転送する計算機システムであって、
該スイッチは、該計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジと、該Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジと、該スイッチに入力されるパケットデータを捕捉する捕捉部と、
該パケットデータをＩ／Ｏデバイスへ転送するパケット・ルーティング部を有し、
該捕捉部に接続され、プログラムの実行によって仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
該計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジとし、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可能なＰＣＩ−ＰＣＩブリッジについては、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現し、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けできないＰＣＩ−ＰＣＩブリッジについては、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をメモリ内に展開し、
該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
該判定の結果、該宛先がＩ／Ｏデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送され、
該判定の結果、該宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
該管理プロセッサは、該宛先が該物理ＰＣＩ−ＰＣＩブリッジと対応付された仮想ＰＣＩ−ＰＣＩブリッジであるかを判定し、
該判定の結果、対応付けされた仮想ＰＣＩ−ＰＣＩブリッジである場合、受信した該パケットデータを対応付けされた該物理ＰＣＩ−ＰＣＩブリッジへ転送し、
該判定の結果、対応付けされていない仮想ＰＣＩ−ＰＣＩブリッジである場合、受信した該パケットデータに基づき、該メモリ内の該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスし、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
ことを特徴とする計算機システム。
【請求項２】
前記スイッチは、前記管理プロセッサとメモリを有する半導体スイッチであり、該メモリは、仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間を保持することを特徴とする請求項１の計算機システム。
【請求項３】
前記計算機が有するプロセッサで、前記管理プロセッサの動作を行う
ことを特徴とする請求項１の計算機システム。
【請求項４】
前記捕捉部は、
該計算機から送信されるパケットデータを受信するＰＣＩｅパケット受信部と、
ＰＣＩ−ＰＣＩブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、
該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、
該管理プロセッサとの間でパケットデータの転送する入出力部と、
該比較部による判断の結果、該管理プロセッサから転送される宛先がＩ／Ｏコントローラのパケットデータを送信するＰＣＩｅパケット送信部を有する
ことを特徴とする請求項１の計算機システム。
【請求項５】
前記計算機は、自らで動作するプログラムによって該管理プロセッサが提供する前記仮想ＰＣＩｅトポロジを認識することができ、
かつ仮想ＰＣＩｅトポロジは、ＰＣＩｅスイッチ間を接続するＰＣＩ−ＰＣＩブリッジを仮想ＰＣＩ−ＰＣＩブリッジと、該計算機及びＰＣＩｅスイッチ及びＩ／Ｏデバイス間を接続する仮想ＰＣＩｅリンクとを含む、
ことを特徴とする請求項１の計算機システム。
【請求項６】
前記仮想ＰＣＩ−ＰＣＩブリッジと、前記物理ＰＣＩ−ＰＣＩブリッジの対応付けを変更することにより、該Ｉ／Ｏデバイスに付与されるバス番号を変化させる
ことを特徴とする請求項５の計算機システム。
【請求項７】
計算機とＩ／Ｏデバイスに接続されて、パケットデータを転送するＰＣＩｅスイッチであって、
該計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジと、該Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジと、
該スイッチに入力されるパケットデータを捕捉する捕捉部と、
該パケットデータをＩ／Ｏデバイスへ転送するパケット・ルーティング部と、
該捕捉部に接続され、プログラムの実行によって仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
該計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジとし、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可能なＰＣＩ−ＰＣＩブリッジについては、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現し、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けできないＰＣＩ−ＰＣＩブリッジについては、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をメモリ内に展開し、
該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
該判定の結果、該宛先がＩ／Ｏデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送され、
該判定の結果、該宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
該管理プロセッサは、該宛先が該物理ＰＣＩ−ＰＣＩブリッジと対応付された仮想ＰＣＩ−ＰＣＩブリッジであるかを判定し、
該判定の結果、対応付けされた仮想ＰＣＩ−ＰＣＩブリッジである場合、受信した該パケットデータを対応付けされた該物理ＰＣＩ−ＰＣＩブリッジへ転送し、
該判定の結果、対応付けされていない仮想ＰＣＩ−ＰＣＩブリッジである場合、受信した該パケットデータに基づき、該メモリ内の該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスし、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
ことを特徴とするＰＣＩｅスイッチ。
【請求項８】
前記スイッチは、該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間を保持するメモリを有し、該管理プロセッサは、該メモリ内の、該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
ことを特徴とする請求項７のＰＣＩｅスイッチ。
【請求項９】
前記捕捉部は、
該計算機から送信されるパケットデータを受信するＰＣＩｅパケット受信部と、
ＰＣＩ−ＰＣＩブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、
該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、
該管理プロセッサとの間でパケットデータの転送する入出力部と、
該比較部による判断の結果、該管理プロセッサから転送される宛先がＩ／Ｏコントローラのパケットデータを送信するＰＣＩｅパケット送信部を有する
ことを特徴とする請求項７のＰＣＩｅスイッチ。
【請求項１０】
該仮想ＰＣＩｅトポロジは、ＰＣＩｅスイッチ間を接続するＰＣＩ−ＰＣＩブリッジを仮想ＰＣＩ−ＰＣＩブリッジと、該計算機及びＰＣＩｅスイッチ及びＩ／Ｏデバイス間を接続する仮想ＰＣＩｅリンクとを含む、
ことを特徴とする請求項８のＰＣＩｅスイッチ。
【請求項１１】
計算機とＩ／Ｏデバイスに接続されるＰＣＩｅスイッチを用いてパケットデータの転送を制御する、計算機システムにおけるパケット転送制御方法であって、
該計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジとし、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可能なＰＣＩ−ＰＣＩブリッジについては、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現し、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けできないＰＣＩ−ＰＣＩブリッジについては、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をメモリ内に展開し、
ＰＣＩｅスイッチのＴｒａｐｐｅｒモジュールは、ＰＣＩｅスイッチに入力されるパケットデータの宛先を参照して、該パケットデータを捕捉するか否かを判定し、
該判定の結果、該宛先がＰＣＩ−ＰＣＩブリッジのパケットデータの場合、該Ｔｒａｐｐｅｒモジュールは、該パケットデータを捕捉して管理プロセッサへ転送し、
該判定の結果、該宛先がＩ／Ｏデバイスのパケットデータの場合、該Ｔｒａｐｐｅｒモジュールは、該パケットデータを捕捉しないで、該Ｉ／Ｏデバイスへ転送し、
該管理プロセッサは、該宛先が該物理ＰＣＩ−ＰＣＩブリッジと対応付された仮想ＰＣＩ−ＰＣＩブリッジであるかを判定し、
該判定の結果、対応付けされた仮想ＰＣＩ−ＰＣＩブリッジである場合、受信した該パケットデータを対応付けされた該物理ＰＣＩ−ＰＣＩブリッジへ転送し、
該判定の結果、対応付けされていない仮想ＰＣＩ−ＰＣＩブリッジである場合、受信した該パケットデータに基づき、該メモリ内の該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスし、必要な場合には該メモリから応答を取得して、該応答を該Ｔｒａｐｐｅｒモジュールへ送信する
ことを特徴とするパケット転送制御方法。
【請求項１２】
計算機とＩ／Ｏデバイスに接続されるＰＣＩｅスイッチを用いてパケットデータの転送を制御する、計算機システムにおけるパケット転送制御方法であって、
ＰＣＩ−ＰＣＩブリッジを管理する管理プロセッサに接続されるメモリ内に、仮想ＰＣＩ−ＰＣＩブリッジ及び仮想リンクを予め用意するステップと、
該ＰＣＩｅスイッチは、該計算機側に配置された第１のＰＣＩ−ＰＣＩブリッジを介して、該計算機から転送されるパケットデータを受信するステップと、
該ＰＣＩｅスイッチの捕捉部は、受信したパケットデータの宛先を判定するステップと、
該判定の結果、該宛先がＩ／Ｏデバイスの場合、該捕捉部は該パケットデータを捕捉せず通過させ、該Ｉ／Ｏデバイス側に配置された第２のＰＣＩ−ＰＣＩブリッジを介してＩ／Ｏデバイスへ転送するステップと、
該判定の結果、該宛先が仮想ＰＣＩ−ＰＣＩブリッジの場合、該捕捉部は該パケットデータを捕捉して、該捕捉部に接続された管理プロセッサへ送信するステップと、
該管理プロセッサは、該捕捉部より受信した該パケットデータに応じて、該メモリを参照して応答用のパケットデータを用意して、第１のＰＣＩ−ＰＣＩブリッジを介して該計算機へ送信するステップを有し、
仮想ＰＣＩｅトポロジは、ＰＣＩｅスイッチ間を接続するＰＣＩ−ＰＣＩブリッジを仮想ＰＣＩ−ＰＣＩブリッジと、該計算機及びＰＣＩｅスイッチ及びＩ／Ｏデバイス間を接続する仮想ＰＣＩｅリンクとを含み、
該計算機システムの物理構成に含まれるＰＣＩ−ＰＣＩブリッジを物理ＰＣＩ−ＰＣＩブリッジとし、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付け可能なＰＣＩ−ＰＣＩブリッジについては、対応付け可能なＰＣＩ−ＰＣＩブリッジのアドレス空間は、物理ＰＣＩ−ＰＣＩブリッジ上に実現し、
該仮想ＰＣＩ−ＰＣＩブリッジと該物理ＰＣＩ−ＰＣＩブリッジとを１対１で対応付けできないＰＣＩ−ＰＣＩブリッジについては、対応付けをしない仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をメモリ内に展開し、
前記管理プロセッサは、該メモリ内の該仮想ＰＣＩ−ＰＣＩブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
ことを特徴とするパケット転送制御方法。
【請求項１３】
（削除）
【請求項１４】
前記仮想ＰＣＩ−ＰＣＩブリッジと、前記物理ＰＣＩ−ＰＣＩブリッジの対応付けを変更することにより、該Ｉ／Ｏデバイスに付与されるバス番号を変化させる
ことを特徴とする請求項１２のパケット転送制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
等の、ＰＣＩｅトポロジの管理及び制御を行う。ＰＣＩＭはソフトウェアとして実装されるため、計算機でも実行可能であるが、一般的にセキュリティの面を考慮してＳｕｐｅｒｖｉｓｏｒ  Ｐｒｏｃｅｓｓｏｒ（ＳＶＰ）に実装される。ＰＣＩＭは、ＰＣＩＭが認識したそれぞれのＰＣＩｅリンクに、バス番号と呼ばれる番号を付与する。ＰＣＩｅでは、バス番号を使用して、各ＰＣＩｅリンクの識別を行う。
［０００６］
また、ＰＣＩＭは、ＰＣＩＭが認識した、各ＰＣＩ−ＰＣＩブリッジとＩ／Ｏデバイスとから、あらかじめ付与されたデバイス番号と呼ばれる番号を読み出す。ＰＣＩｅでは、デバイス番号を使用して、各ＰＣＩ−ＰＣＩブリッジや各Ｉ／Ｏデバイスの識別を行う。例えば、あるＩ／Ｏデバイスにパケットを送信する際、Ｉ／Ｏデバイスに接続しているＰＣＩｅリンクのバス番号、及びＩ／Ｏデバイスのデバイス番号の情報をパケットの宛先に付加することで、パケットを宛先のデバイスに正しく伝達することができる。
［０００７］
データスイッチを用いた、Ｉ／Ｏデバイスとサーバとの間のルーティング制御に関して、例えば特許文献１には、データスイッチをプロキシコントローラに接続して、パケットをデータ転送のパケットと制御用のパケットとに分類し、制御用のパケットをプロキシコントローラで処理する技術が開示されている。また、少なくとも１台のサーバから仮想化されたＩ／Ｏデバイスをアクセスすることについて記載されている。
［０００８］
また、例えば特許文献２には、コンフィギュレーション・エンティティと呼ばれる、パケットの分類器と組み込みプロセッサとを一体としたモジュールをＰＣＩｅスイッチに内蔵し、パケットをデータ転送のパケットと制御用のパケットとに分類し、制御用のパケットを組み込みプロセッサで処理する技術が開示されている。
先行技術文献
特許文献
［０００９］
特許文献１：米国特許出願公開第２００９／０１５０５６３号
特許文献２：米国特許第７７５２３７６号
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2012073304.tif 000017
【国際調査報告】
2012073304.tif 000018
2012073304.tif 000019
2012073304.tif 000020
2012073304.tif 000021
2012073304.tif 000022
2012073304.tif 000023