(57)【要約】      （修正有）【課題】転送元ホスト側のアドレス空間を、転送先ホスト内のメモリの使用可能領域のアドレスに対応付けるスイッチ装置およびシステムを提供する。【解決手段】スイッチ装置は、第１ポートと第２ポートとアドレス変換情報記憶部と設定部とを備え、第１ポートは、第１装置側のアドレス空間のうちデータ転送処理に用いられる第１空間を指定する第１アドレス情報が登録される第１記憶部と、第１装置が有する第２記憶部の使用可能な領域を指定する第２アドレス情報が登録される第３記憶部とを備える。第２ポートは、第２装置側のアドレス空間のうちデータ転送処理に用いられる第２空間を指定する第３アドレス情報が登録される第４記憶部と、第２装置が有する第５記憶部の使用可能な領域を指定する第４アドレス情報が登録される第６記憶部とを備える。設定部は、アドレス変換情報記憶部に登録された第３アドレス情報に対応付けてアドレス変換情報を設定する。【選択図】図３
2014016749.tif 000002
【特許請求の範囲】
【請求項１】
第１装置が接続される第１ポートと、
第２装置が接続される第２ポートと、
前記第１装置側のアドレス空間と前記第２装置側のアドレス空間との対応関係を示すアドレス変換情報を記憶するアドレス変換情報記憶部と、
前記アドレス変換情報を設定する設定部と、を備え、
前記第１ポートは、
前記第１ポートの初期設定時に、前記第１装置側のアドレス空間のうちデータ転送処理に用いられる第１空間を指定する第１アドレス情報が登録される第１記憶部と、
前記第１ポートの初期設定時に、前記第１装置が有する第２記憶部の使用可能な領域を指定する第２アドレス情報が登録される第３記憶部と、を備え、
前記第２ポートは、
前記第２ポートの初期設定時に、前記第２装置側のアドレス空間のうちデータ転送処理に用いられる第２空間を指定する第３アドレス情報が登録される第４記憶部と、
前記第２ポートの初期設定時に、前記第２装置が有する第５記憶部の使用可能な領域を指定する第４アドレス情報が登録される第６記憶部と、を備え、
前記設定部は、
前記第２ポートの初期設定時に、前記第４記憶部に登録された前記第３アドレス情報を前記アドレス変換情報記憶部に登録し、
前記第１ポートの初期設定時に、前記第３記憶部に登録された前記第２アドレス情報を、前記アドレス変換情報記憶部に登録された前記第３アドレス情報に対応付けて前記アドレス変換情報を設定する、
スイッチ装置。
【請求項２】
前記設定部は、
前記第１ポートの初期設定時に、前記第１記憶部に登録された前記第１アドレス情報を前記アドレス変換情報記憶部に登録し、
前記第２ポートの初期設定時に、前記第６記憶部に登録された前記第４アドレス情報を、前記アドレス変換情報記憶部に登録された前記第１アドレス情報に対応付けて前記アドレス変換情報を設定する、
請求項１のスイッチ装置。
【請求項３】
前記第１ポートは、前記第２ポートの初期設定時に、前記第３アドレス情報に含まれる、前記第２空間のサイズを示す第２サイズ情報が登録される第７記憶部をさらに備え、
前記第２アドレス情報は、前記第２記憶部の使用可能な領域のうち、前記第７記憶部に登録された前記第２サイズ情報が示すサイズ分の領域を特定可能な情報である、
請求項１のスイッチ装置。
【請求項４】
前記第２ポートは、前記第１ポートの初期設定時に、前記第１アドレス情報に含まれる、前記第１空間のサイズを示す第１サイズ情報が登録される第８記憶部をさらに備え、
前記第３アドレス情報は、前記第５記憶部の使用可能な領域のうち、前記第８記憶部に登録された前記第１サイズ情報が示すサイズ分の領域を特定可能な情報である、
請求項１のスイッチ装置。
【請求項５】
前記第１ポートと前記第１装置とを接続するバスの規格、および、前記第２ポートと前記第２装置とを接続するバスの規格は、ＰＣＩ−Ｅｘｐｒｅｓｓであり、
前記第２ポートは、ノントランスペアレントポートである、
請求項１のスイッチ装置。
【請求項６】
前記第１空間および前記第２空間は、ＰＣＩメモリ空間である、
請求項１のスイッチ装置。
【請求項７】
第１装置と、第２装置と、前記第１装置と前記第２装置を接続するスイッチ装置とを備えるシステムであって、
前記スイッチ装置は、
前記第１装置が接続される第１ポートと、
前記第２装置が接続される第２ポートと、
前記第１装置側のアドレス空間と前記第２装置側のアドレス空間との対応関係を示すアドレス変換情報を記憶するアドレス変換情報記憶部と、
前記アドレス変換情報を設定する設定部と、を備え、
前記第１ポートは、
前記第１ポートの初期設定時に、前記第１装置側のアドレス空間のうちデータ転送処理に用いられる第１空間を指定する第１アドレス情報が登録される第１記憶部と、
前記第１ポートの初期設定時に、前記第１装置が有する第２記憶部の使用可能な領域を指定する第２アドレス情報が登録される第３記憶部と、を備え、
前記第２ポートは、
前記第２ポートの初期設定時に、前記第２装置側のアドレス空間のうちデータ転送処理に用いられる第２空間を指定する第３アドレス情報が登録される第４記憶部と、
前記第２ポートの初期設定時に、前記第２装置が有する第５記憶部の使用可能な領域を指定する第４アドレス情報が登録される第６記憶部と、を備え、
前記第１装置は、
前記第１ポートの初期設定時に、前記第１アドレス情報を前記第１記憶部に登録する制御を行う第１制御部と、
前記第１ポートの初期設定時に、前記第２アドレス情報を前記第３記憶部に登録する制御を行う第２制御部と、を備え、
前記第２装置は、
前記第２ポートの初期設定時に、前記第３アドレス情報を前記第４記憶部に登録する制御を行う第３制御部と、
前記第２ポートの初期設定時に、前記第４アドレス情報を前記第６記憶部に登録する制御を行う第４制御部と、を備え、
前記設定部は、
前記第２ポートの初期設定時に、前記第４記憶部に登録された前記第３アドレス情報を前記アドレス変換情報記憶部に登録し、
前記第１ポートの初期設定時に、前記第３記憶部に登録された前記第２アドレス情報を、前記アドレス変換情報記憶部に登録された前記第３アドレス情報に対応付けて前記アドレス変換情報を設定する、
システム。
【請求項８】
前記設定部は、
前記第１ポートの初期設定時に、前記第１記憶部に登録された前記第１アドレス情報を前記アドレス変換情報記憶部に登録し、
前記第２ポートの初期設定時に、前記第６記憶部に登録された前記第４アドレス情報を、前記アドレス変換情報記憶部に登録された前記第１アドレス情報に対応付けて前記アドレス変換情報を設定する、
請求項７のシステム。
【請求項９】
前記第１ポートは、前記第２ポートの初期設定時に、前記第３アドレス情報に含まれる、前記第２空間のサイズを示す第２サイズ情報が登録される第７記憶部をさらに備え、
前記第１ポートの初期設定時に、前記第２サイズ情報が前記第７記憶部に登録されている場合、前記第２制御部は、前記第７記憶部に登録された前記第２サイズ情報が示すサイズ分の領域を前記第２記憶部内に確保し、確保した領域を特定可能な情報を前記第２アドレス情報として前記第３記憶部に登録する制御を行う、
請求項７のシステム。
【請求項１０】
前記第２ポートは、前記第１ポートの初期設定時に、前記第１アドレス情報に含まれる、前記第１空間のサイズを示す第１サイズ情報が登録される第８記憶部をさらに備え、
前記第２ポートの初期設定時に、前記第１サイズ情報が前記第８記憶部に登録されている場合、前記第４制御部は、前記第８記憶部に登録された前記第１サイズ情報が示すサイズ分の領域を前記第５記憶部内に確保し、確保した領域を特定可能な情報を前記第４アドレス情報として前記第６記憶部に登録する制御を行う、
請求項８のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ装置およびシステムに関する。
【背景技術】
【０００２】
従来、例えばＰＣＩ−Ｅｘｐｒｅｓｓを使用して、ホスト間のデータ転送を行う技術が知られている。
【０００３】
例えば特許文献１には、ホスト間でデータ転送を行う目的で、ホスト間をＰＣＩ−Ｅｘｐｒｅｓｓで接続した画像処理装置が開示されている。より具体的には、２つのホスト間をＮｏｎ−Ｔｒａｎｓｐａｒｅｎｔ  Ｐｏｒｔを持つＰＣＩ−Ｅｘｐｒｅｓｓスイッチを介して接続し、スイッチ内で転送元ホストのＰＣＩ空間が転送先ホストのメモリ空間にマッピングされることで、互いのメモリ領域を相互に参照できる構成が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された技術では、一方のホストのメモリの使用可能領域を示すアドレスを、他方のＰＣＩ空間に対する変換アドレスとして設定するためには、各ホストは、初期設定時に相手側ホストのメモリの使用可能領域を予め知っておく必要がある。
【０００５】
このため、各ホストは、事前にインタフェース仕様でお互いのメモリ空間の使用可能領域を規定しておく、又は、別のインタフェースを経由して使用可能領域を相手側ホストへ通知する必要がある。
【０００６】
本発明は、上記に鑑みてなされたものであって、スイッチ装置を介したデータ転送を行う転送元ホストが、転送先ホストのメモリの使用可能領域のアドレスを知らなくても、転送元ホスト側のアドレス空間を、転送先ホスト内のメモリの使用可能領域のアドレスに対応付けることが可能なスイッチ装置およびシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、第１装置が接続される第１ポートと、第２装置が接続される第２ポートと、前記第１装置側のアドレス空間と前記第２装置側のアドレス空間との対応関係を示すアドレス変換情報を記憶するアドレス変換情報記憶部と、前記アドレス変換情報を設定する設定部と、を備え、前記第１ポートは、前記第１ポートの初期設定時に、前記第１装置側のアドレス空間のうちデータ転送処理に用いられる第１空間を指定する第１アドレス情報が登録される第１記憶部と、前記第１ポートの初期設定時に、前記第１装置が有する第２記憶部の使用可能な領域を指定する第２アドレス情報が登録される第３記憶部と、を備え、前記第２ポートは、前記第２ポートの初期設定時に、前記第２装置側のアドレス空間のうちデータ転送処理に用いられる第２空間を指定する第３アドレス情報が登録される第４記憶部と、前記第２ポートの初期設定時に、前記第２装置が有する第５記憶部の使用可能な領域を指定する第４アドレス情報が登録される第６記憶部と、を備え、前記設定部は、前記第２ポートの初期設定時に、前記第４記憶部に登録された前記第３アドレス情報を前記アドレス変換情報記憶部に登録し、前記第１ポートの初期設定時に、前記第３記憶部に登録された前記第２アドレス情報を、前記アドレス変換情報記憶部に登録された前記第３アドレス情報に対応付けて前記アドレス変換情報を設定するスイッチ装置である。
【０００８】
また、本発明は、第１装置と、第２装置と、前記第１装置と前記第２装置を接続するスイッチ装置とを備えるシステムであって、前記スイッチ装置は、前記第１装置が接続される第１ポートと、前記第２装置が接続される第２ポートと、前記第１装置側のアドレス空間と前記第２装置側のアドレス空間との対応関係を示すアドレス変換情報を記憶するアドレス変換情報記憶部と、前記アドレス変換情報を設定する設定部と、を備え、前記第１ポートは、前記第１ポートの初期設定時に、前記第１装置側のアドレス空間のうちデータ転送処理に用いられる第１空間を指定する第１アドレス情報が登録される第１記憶部と、前記第１ポートの初期設定時に、前記第１装置が有する第２記憶部の使用可能な領域を指定する第２アドレス情報が登録される第３記憶部と、を備え、前記第２ポートは、前記第２ポートの初期設定時に、前記第２装置側のアドレス空間のうちデータ転送処理に用いられる第２空間を指定する第３アドレス情報が登録される第４記憶部と、前記第２ポートの初期設定時に、前記第２装置が有する第５記憶部の使用可能な領域を指定する第４アドレス情報が登録される第６記憶部と、を備え、前記第１装置は、前記第１ポートの初期設定時に、前記第１アドレス情報を前記第１記憶部に登録する制御を行う第１制御部と、前記第１ポートの初期設定時に、前記第２アドレス情報を前記第３記憶部に登録する制御を行う第２制御部と、を備え、前記第２装置は、前記第２ポートの初期設定時に、前記第３アドレス情報を前記第４記憶部に登録する制御を行う第３制御部と、前記第２ポートの初期設定時に、前記第４アドレス情報を前記第６記憶部に登録する制御を行う第４制御部と、を備え、前記設定部は、前記第２ポートの初期設定時に、前記第４記憶部に登録された前記第３アドレス情報を前記アドレス変換情報記憶部に登録し、前記第１ポートの初期設定時に、前記第３記憶部に登録された前記第２アドレス情報を、前記アドレス変換情報記憶部に登録された前記第３アドレス情報に対応付けて前記アドレス変換情報を設定するシステムである。
【発明の効果】
【０００９】
本発明によれば、スイッチ装置を介したデータ転送を行う転送元ホストが、転送先ホスト内のメモリの使用可能領域のアドレスを知らなくても、転送元ホスト側のアドレス空間を、転送先ホスト内のメモリの使用可能領域のアドレスに対応付けることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態のシステムの概略構成例を示すブロック図である。
【図２】図２は、ＰＣＩ−Ｅｘｐｒｅｓｓ経由で相手側ホストのメモリ空間へデータをライトする場合のアドレス変換を説明するための図である。
【図３】図３は、実施形態のシステムの詳細な構成例を示すブロック図である。
【図４】図４は、アドレス変換テーブルのデータ構造例を示す図である。
【図５】図５は、第１ポートおよび第２ポートの初期設定において、ＰＣＩメモリ空間のベースアドレスおよびサイズをアドレス変換テーブルに設定する処理の一例を示すフローチャートである。
【図６】図６は、第１ポートおよび第２ポートの初期設定において、アドレス変換テーブルにアドレス変換情報を設定する処理の一例を示すフローチャートである。
【図７】図７は、第１ホストシステムと第２ホストシステムとの間のデータ転送処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、本発明に係るスイッチ装置およびシステムの実施形態を詳細に説明する。図１は、本実施形態のシステム１の概略構成例を示すブロック図である。図１に示すように、システム１は、第１ホストシステム１００と第２ホストシステム２００とを備える。
【００１２】
図１の例では、第１ホストシステム１００は、第１ホスト装置１０とスイッチ装置２０とを含み、第２ホストシステム２００は、第２ホスト装置３０を含む。第１ホスト装置１０は、ＣＰＵ１１と、記憶装置１２とを含む。ＣＰＵ１１と記憶装置１２は、チップセット１３を介して互いに接続される。チップセット１３は、ＰＣＩ−Ｅｘｐｒｅｓｓのシステムを構成する要素であるルート・コンプレックス（Root  Complex）である。
【００１３】
第２ホスト装置３０も、第１ホスト装置１０と同様の構成であり、ＣＰＵ３１と記憶装置３２とを含む。ＣＰＵ３１と記憶装置３２は、チップセット３３を介して互いに接続される。チップセット３３は、ＰＣＩ−Ｅｘｐｒｅｓｓのシステムを構成する要素であるルート・コンプレックス（Root  Complex）である。
【００１４】
スイッチ装置２０は、半導体集積回路で構成されるスイッチチップである。ここでは、スイッチ装置２０は、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチであるが、これに限られるものではない。スイッチ装置２０は、第１ホスト装置１０が接続される第１ポート４０と、第２ホスト装置３０が接続される第２ポート５０とを備える。チップセット１３は、第１ポート４０と接続するための複数のＰＣＩ−Ｅｘｐｒｅｓｓポートを有する。この例では、第１ポート４０は、Ｕｐｓｔｒｅａｍポートとして構成される。また、チップセット３３は、第２ポート５０と接続するための複数のＰＣＩ−Ｅｘｐｒｅｓｓポートを有する。この例では、第２ポート５０は、ノントランスペアレントポート（Ｎｏｎ−Ｔｒａｎｓｐａｒｅｎｔ  Ｐｏｒｔ）として構成される。要するに、本実施形態では、第１ポート４０とホスト装置１０とを接続するバスの規格、および、第２ポート５０と第２ホスト装置３０とを接続するバスの規格は、ＰＣＩ−Ｅｘｐｒｅｓｓである。
【００１５】
この例では、第１ホスト装置１０は請求項の「第１装置」に対応し、第２ホスト装置３０は請求項の「第２装置」に対応している。
【００１６】
本実施形態では、第１ホストシステム１００の起動時に、第１ポート４０の初期設定を行うが、その際、記憶装置１２内の使用可能領域を指定するアドレスを、第２ホスト装置３０側のアドレス空間に対応付ける。また、第２ホストシステム２００の起動時に、第２ポート５０の初期設定を行うが、その際、記憶装置３２内の使用可能領域を指定するアドレスを、第１ホスト装置１０側のアドレス空間に対応付ける。詳細な内容については後述する。
【００１７】
図２は、ＰＣＩ−Ｅｘｐｒｅｓｓ経由で相手側ホストのメモリ空間へデータをライトする場合のアドレス変換を説明するための図である。ホスト間のメモリアクセス時のアドレス変換動作について、図１及び図２を用いて説明する。第１ホスト装置１０から第２ホスト装置３０へデータ転送を行う場合（見方を変えれば、第１ホストシステム１００から第２ホストシステム２００へデータ転送を行う場合）、まず、第１ホスト装置１０のＣＰＵ１１が自身のアドレス空間内のＰＣＩメモリ空間へデータをライトアクセスすると、チップセット１３からスイッチ装置２０（ＰＣＩ−Ｅｘｐｒｅｓｓスイッチ）へＰＣＩメモリ空間内のアドレスをライトアドレスとしたパケットが送信される。パケットを受信したスイッチ装置２０は、パケット内のアドレスを、後述のアドレス変換テーブル内に設定された、当該パケット内のアドレス（ＰＣＩメモリ空間のアドレス）に対応する変換アドレス（記憶装置３２内の領域を指定するアドレス）に書き換えてホスト装置３０へ送信する。その後、パケットを受信したチップセット３３は、パケット内のアドレスが示す記憶装置３２の使用可能領域にデータを書き込み、データ転送が完了する。
【００１８】
第２ホスト装置３０から第１ホスト装置１０へデータ転送を行う場合（見方を変えれば、第２ホストシステム２００から第１ホストシステム１００へデータ転送を行う場合）、まず、第２ホスト装置３０のＣＰＵ３１が自身のアドレス空間内のＰＣＩメモリ空間へデータをライトアクセスすると、チップセット３３からスイッチ装置２０へＰＣＩメモリ空間内のアドレスをライトアドレスとしたパケットが送信される。パケットを受信したスイッチ装置２０は、パケット内のアドレスを、後述のアドレス変換テーブルに設定された、当該パケット内のアドレス（ＰＣＩメモリ空間のアドレス）に対応する変換アドレス（記憶装置１２内の領域を指定するアドレス）に書き換えて第１ホスト装置１０へ送信する。その後、パケットを受信したチップセット１３は、パケット内のアドレスが示す記憶装置１２の領域にデータを書き込み、データ転送が完了する。
【００１９】
図３は、本実施形態のシステム１の詳細な構成例を示す図である。まず、スイッチ装置２０の構成例を説明する。なお、図１の説明と重複する部分については、適宜に説明を省略する。図３に示すように、スイッチ装置２０は、第１ポート４０および第２ポート５０の他、アドレス変換テーブル６０と、設定部７０と、アドレス変換部８０とを備える。
【００２０】
第１ポート４０は、受信バッファ４１と、送信バッファ４２と、ベースアドレス／サイズレジスタ４３と、使用可能領域レジスタ４４と、要求サイズレジスタ４５とを有する。同様に、第２ポート５０は、受信バッファ５１と、送信バッファ５２と、ベースアドレス／サイズレジスタ５３と、使用可能領域レジスタ５４と、要求サイズレジスタ５５とを有する。以下、具体的に説明する。
【００２１】
受信バッファ４１は、第１ホスト装置１０から第２ホスト装置３０へデータ転送を行う場合に、チップセット１３から送信されるパケットを一時的に保持するバッファメモリとして機能する。送信バッファ４２は、第２ホスト装置３０から第１ホスト装置１０へデータ転送を行う場合に、第２ポート５０側から送信されるパケットを一時的に保持するバッファメモリとして機能する。
【００２２】
ベースアドレス／サイズレジスタ４３は、請求項の「第１記憶部」に対応し、第１ポート４０の初期設定時に、第１ホスト装置１０側のアドレス空間のうちデータ転送処理（「アクセス処理」と捉えることもできる）に用いられるＰＣＩメモリ空間（請求項の「第１空間」に対応）を指定する第１アドレス情報が登録される。より具体的には、第１ポート４０の初期設定時に、ベースアドレス／サイズレジスタ４３には、第１ホスト装置１０のＰＣＩメモリ空間のベースアドレスとサイズが、第１アドレス情報として登録される。
【００２３】
また、第１ポート４０の初期設定時において、ベースアドレス／サイズレジスタ４３に登録される第１アドレス情報に含まれる、ＰＣＩメモリ空間（第１空間）のサイズを示す第１サイズ情報は、第２ポート５０側の要求サイズレジスタ５５にも登録される。要求サイズレジスタ５５は、請求項の「第８記憶部」に対応し、第１ポート４０の初期設定時に、第１ホスト装置１０のＰＣＩメモリ空間のサイズを示す第１サイズ情報が登録される。
【００２４】
使用可能領域レジスタ４４は、請求項の「第３記憶部」に対応し、第１ポート４０の初期設定時に、第１ホスト装置１０が有する記憶装置１２（請求項の「第２記憶部」に対応）の使用可能な領域を指定する第２アドレス情報が登録される。より具体的には、第１ポート４０の初期設定時に、使用可能領域レジスタ４４には、第１ホスト装置１０が有する記憶装置１２内の使用可能な領域の先頭アドレスが、第２アドレス情報として登録される。
【００２５】
受信バッファ５１は、第２ホスト装置３０から第１ホスト装置１０へデータ転送を行う場合に、チップセット３３から送信されるパケットを一時的に保持するバッファメモリとして機能する。送信バッファ５２は、第１ホスト装置１０から第２ホスト装置３０へデータ転送を行う場合に、第１ポート４０側から送信されるパケットを一時的に保持するバッファメモリとして機能する。
【００２６】
ベースアドレス／サイズレジスタ５３は、請求項の「第４記憶部」に対応し、第２ポート５０の初期設定時に、第２ホスト装置３０側のアドレス空間のうちデータ転送処理に用いられるＰＣＩメモリ空間（請求項の「第２空間」に対応）を指定する第３アドレス情報が登録される。より具体的には、第２ポート５０の初期設定時に、ベースアドレス／サイズレジスタ５３には、第２ホスト装置３０のＰＣＩメモリ空間のベースアドレスとサイズが、第３アドレス情報として登録される。
【００２７】
また、第２ポート５０の初期設定時に、ベースアドレス／サイズレジスタ５３に登録される第３アドレス情報に含まれる、ＰＣＩメモリ空間（第２空間）のサイズを示す第２サイズ情報は、第１ポート４０側の要求サイズレジスタ４５にも登録される。要求サイズレジスタ４５は、請求項の「第７記憶部」に対応し、第２ポート５０の初期設定時に、第２ホスト装置３０のＰＣＩメモリ空間のサイズを示す第２サイズ情報が登録される。
【００２８】
使用可能領域レジスタ５４は、請求項の「第６記憶部」に対応し、第２ポート５０の初期設定時に、第２ホスト装置３０が有する記憶装置３２（請求項の「第５記憶部」に対応）の使用可能な領域を指定する第４アドレス情報が登録される。より具体的には、第２ポート５０の初期設定時に、使用可能領域レジスタ５４には、第２ホスト装置３０が有する記憶装置３２内の使用可能な領域の先頭アドレスが、第４アドレス情報として登録される。以上が本実施形態における第１ポート４０および第２ポート５０の構成である。
【００２９】
アドレス変換テーブル６０は、請求項の「アドレス変換情報記憶部」に対応し、第１ホスト装置１０側のアドレス空間と第２ホスト装置３０側のアドレス空間との対応関係を示すアドレス変換情報を記憶する。本実施形態では、アドレス変換テーブル６０は、第１ホスト装置１０のＰＣＩメモリ空間を指定する第１アドレス情報と、第２ホスト装置３０が有する記憶装置３２内の使用可能な領域を指定する第４アドレス情報との対応関係を示すアドレス変換情報（説明の便宜上、図３では第１アドレス変換情報と表記）をテーブル形式で記憶する。また、アドレス変換テーブル６０は、第２ホスト装置３０のＰＣＩメモリ空間を指定する第３アドレス情報と、第１ホスト装置１０が有する記憶装置１２内の使用可能な領域を指定する第２アドレス情報との対応関係を示すアドレス変換情報（説明の便宜上、図３では第２アドレス変換情報と表記）をテーブル形式で記憶する。
【００３０】
図４は、アドレス変換テーブル６０のデータ構造例を示す図である。図４に示すように、アドレス変換テーブル６０は、データ転送方向と、ＰＣＩメモリ空間のベースアドレスと、ＰＣＩメモリ空間のサイズと、変換アドレスと、変換アドレスが有効か否かを示す変換アドレス設定フラグとを対応付けて記憶する。図４の例では、データ転送方向が「０」の場合は、第１ホスト装置１０のＰＣＩメモリ空間のベースアドレス及びサイズと、それに対する変換アドレスとして、第２ホスト装置３０が有する記憶装置３２内の使用可能な領域の先頭アドレスとが対応付けられて記憶される（つまり、上述の第１アドレス変換情報が記憶される）。一方、データ転送方向が「１」の場合は、第２ホスト装置３０のＰＣＩメモリ空間のベースアドレス及びサイズと、それに対する変換アドレスとして、第１ホスト装置１０が有する記憶装置１２内の使用可能な領域の先頭アドレスとが対応付けられて記憶される（つまり、上述の第２アドレス変換情報が記憶される）。また、変換アドレス設定フラグは、対応するＰＣＩメモリ空間のベースアドレス及びサイズと、変換アドレスとが設定された場合に、「１（有効）」に設定される。
【００３１】
再び図３に戻って説明を続ける。設定部７０は、アドレス変換情報を設定する。より具体的には、設定部７０は、第２ポート５０の初期設定時に、第２ポート５０側のベースアドレス／サイズレジスタ５３（請求項の「第４記憶部」に対応）に記憶された第３アドレス情報（第２ホスト装置３０のＰＣＩメモリ空間のベースアドレスとサイズ）をアドレス変換テーブル６０に登録する。そして、設定部７０は、第１ポート４０の初期設定時に、第１ポート４０側の使用可能領域レジスタ４４（請求項の「第３記憶部」に対応）に登録された第２アドレス情報（第１ホスト装置１０が有する記憶装置１２内の使用可能な領域の先頭アドレス）を、アドレス変換テーブル６０に登録された第３アドレス情報に対応付けてアドレス変換情報（上述の第２アドレス変換情報）を設定する。
【００３２】
また、設定部７０は、第１ポート４０の初期設定時に、第１ポート４０側のベースアドレス／サイズレジスタ４３（請求項の「第１記憶部」に対応）に記憶された第１アドレス情報（第１ホスト装置１０のＰＣＩメモリ空間のベースアドレスとサイズ）をアドレス変換テーブル６０に登録する。そして、設定部７０は、第２ポート５０の初期設定時に、第２ポート側の使用可能領域レジスタ５４（請求項の「第６記憶部」に対応）に登録された第４アドレス情報（第２ホスト装置３０が有する記憶装置３２内の使用可能な領域の先頭アドレス）を、アドレス変換テーブル６０に登録された第１アドレス情報に対応付けてアドレス変換情報（上述の第１アドレス変換情報）を設定する。
【００３３】
アドレス変換部８０は、第１ホストシステム１００と第２ホストシステム２００との間のデータ転送において、アドレス変換テーブル６０を使用して、アドレス変換を行う。詳細な内容については後述する。
【００３４】
次に、第１ホスト装置１０の構成例を説明する。なお、図１の説明と重複する部分については、適宜に説明を省略する。図３に示すように、第１ホスト装置１０内のＣＰＵ１１は、第１制御部１４と第２制御部１５とを有する。第１制御部１４は、第１ポート４０の初期設定時に、第１ホスト装置１０のＰＣＩメモリ空間のベースアドレスとサイズを示す第１アドレス情報を、第１ポート４０側のベースアドレス／サイズレジスタ４３に登録する制御を行う。
【００３５】
第２制御部１５は、第１ポート４０の初期設定時に、第１ホスト装置１０が有する記憶装置１２内の使用可能な領域の先頭アドレスを示す第２アドレス情報を、第１ポート４０側の使用可能領域レジスタ４４に登録する制御を行う。より具体的には、第２制御部１５は、第１ポート４０の初期設定時に、第１ポート４０側の要求サイズレジスタ４５（請求項の「第７記憶部」に対応）をリードする制御を行い、第２ホスト装置３０のＰＣＩメモリ空間のサイズを示す第２サイズ情報が要求サイズレジスタ４５に登録されている場合は、登録された第２サイズ情報が示すサイズ分の領域を記憶装置１２内に確保する制御を行う。そして、第２制御部１５は、確保した領域の先頭アドレスを、第２アドレス情報として使用可能領域レジスタ４４に登録する制御を行う。以上の第１制御部１４および第２制御部１５の各々の機能は、ＣＰＵ１１がＲＯＭ等に格納されたプログラムを実行することにより実現される。
【００３６】
次に、第２ホスト装置３０の構成例を説明する。なお、図１の説明と重複する部分については、適宜に説明を省略する。図３に示すように、第２ホスト装置３０内のＣＰＵ３１は、第３制御部３４と、第４制御部３５とを有する。第３制御部１４は、第２ポート５０の初期設定時に、第２ホスト装置３０のＰＣＩメモリ空間のベースアドレスとサイズを示す第３アドレス情報を、第２ポート５０側のベースアドレス／サイズレジスタ５３に登録する制御を行う。
【００３７】
第４制御部３５は、第２ポート５０の初期設定時に、第２ホスト装置３０が有する記憶装置３２内の使用可能な領域の先頭アドレスを示す第４アドレス情報を、第２ポート５０側の使用可能領域レジスタ５４に登録する制御を行う。より具体的には、第４制御部３５は、第２ポート５０の初期設定時に、第２ポート５０側の要求サイズレジスタ５５（請求項の「第８記憶部」に対応）をリードする制御を行い、第１ホスト装置１０のＰＣＩメモリ空間のサイズを示す第１サイズ情報が要求サイズレジスタ５５に登録されている場合は、登録された第１サイズ情報が示すサイズ分の領域を記憶装置３２内に確保する制御を行う。そして、第４制御部３５は、確保した領域の先頭アドレスを、第４アドレス情報として使用可能領域レジスタ５４に登録する制御を行う。以上の第３制御部３４および第４制御部３５の各々の機能は、ＣＰＵ３１がＲＯＭ等に格納されたプログラムを実行することにより実現される。
【００３８】
次に、第１ホストシステム１００及び第２ホストシステム２００の立ち上げ時（起動時）、第１ポート４０および第２ポート５０の初期設定において、ＰＣＩメモリ空間のベースアドレスおよびサイズをアドレス変換テーブル６０に設定する処理の一例を、図５のフローチャートに従って説明する。
【００３９】
最初に、第１ホスト装置１０のＰＣＩメモリ空間のベースアドレスおよびサイズをアドレス変換テーブル６０に設定する処理について説明する。第１ホストシステム１００の立ち上げ時、第１ポート４０の初期設定を開始すると、第１制御部１４は、第１ホスト装置１０のＰＣＩメモリ空間のベースアドレス及びサイズを、第１アドレス情報としてベースアドレス／サイズレジスタ４３に登録する制御を行う（Ｓ５０１）。設定部７０は、ベースアドレス／サイズレジスタ４３に登録されたベースアドレス及びサイズを、アドレス変換テーブル６０に設定する。また、ベースアドレス／サイズレジスタ４３に登録されたサイズは、第２ポート５０側の要求サイズレジスタ５５にも登録される（Ｓ５０２）。ここで、全てのベースアドレス空間に対する設定が完了していれば（Ｓ５０３の結果：ＹＥＳの場合）、処理は終了する。一方、未設定のベースアドレス空間が存在する場合（Ｓ５０３の結果：ＮＯの場合）は、設定を終了するか否かを選択し（ステップＳ５０４）、設定を終了せずに次のベースアドレス空間に対する設定を行う場合（ステップＳ５０４の結果：ＮＯの場合）は、上記の処理を繰り返す。一方、設定を終了する場合（ステップＳ５０４の結果：ＹＥＳの場合）は、そのまま処理を終了する。
【００４０】
次に、第２ホスト装置３０のＰＣＩメモリ空間のベースアドレスおよびサイズをアドレス変換テーブル６０に設定する処理について説明する。第２ホストシステム２００の立ち上げ時、第２ポート５０の初期設定を開始すると、第３制御部３４は、第２ホスト装置３０のＰＣＩメモリ空間のベースアドレス及びサイズを、第３アドレス情報としてベースアドレス／サイズレジスタ５３に登録する制御を行う（Ｓ５０１）。設定部７０は、ベースアドレス／サイズレジスタ５３に登録されたベースアドレス及びサイズを、アドレス変換テーブル６０に設定する。また、ベースアドレス／サイズレジスタ５３に登録されたサイズは、第１ポート側４０の要求サイズレジスタ４５にも登録される（Ｓ５０２）。ここで、全てのベースアドレス空間に対する設定が完了していれば（Ｓ５０３の結果：ＹＥＳの場合）、処理は終了する。一方、未設定のベースアドレス空間が存在する場合（Ｓ５０３の結果：ＮＯの場合）は、設定を終了するか否かを選択し（ステップＳ５０４）、設定を終了せずに次のベースアドレス空間に対する設定を行う場合（ステップＳ５０４の結果：ＮＯの場合）は、上記の処理を繰り返す。一方、設定を終了する場合（ステップＳ５０４の結果：ＹＥＳの場合）は、そのまま処理を終了する。
【００４１】
次に、第１ホストシステム１００及び第２ホストシステム２００の立ち上げ時（起動時）、第１ポート４０および第２ポート５０の初期設定において、スイッチ装置２０内のアドレス変換テーブル６０にアドレス変換情報を設定する処理の一例を、図６のフローチャートに従って説明する。
【００４２】
最初に、第１ポート４０の初期設定において、上述の第２アドレス変換情報を設定する処理について説明する。第１ホストシステム１００の立ち上げ時、第１ポート４０の初期設定を開始すると、第２制御部１５は、第１ポート４０側の要求サイズレジスタ４５をリードして、要求サイズレジスタ４５に値が入っているかを確認する制御を行う（Ｓ６０１）。リードした値が「０」以外の場合（ステップＳ６０１の結果：ＹＥＳの場合）、アドレス変換テーブル６０に第３アドレス情報（第２ホスト装置３０のＰＣＩメモリ空間のベースアドレス及びサイズ）が設定されていると判断し、記憶装置１２内に要求サイズ分の使用可能領域を確保する制御を行い（Ｓ６０２）、確保した領域の先頭アドレスを、第１ポート４０側の使用可能領域レジスタ４４に登録する制御を行う（Ｓ６０３）。一方、要求サイズレジスタに「０」が設定されている場合（ステップＳ６０１の結果：ＮＯの場合）、アドレス変換テーブル６０に第３アドレス情報が設定されていないと判断し、そのまま処理を終了する。
【００４３】
設定部７０は、使用可能領域レジスタ４４に登録されたアドレスを、アドレス変換テーブル６０の対応するＰＣＩ空間ベースアドレス（第２ホスト装置３０のＰＣＩメモリ空間のベースアドレス）に対する変換アドレスとして設定し、変換アドレス設定フラグに「１」を設定する（Ｓ６０４）。ここで、全てのベースアドレスに対して変換アドレスの設定が完了していれば（ステップＳ６０５の結果：ＹＥＳの場合）、処理は終了する。一方、変換アドレスが設定されていないベースアドレスが存在する場合（ステップＳ６０５の結果：ＮＯの場合）は、設定を終了するか否かを選択し（Ｓ６０６）、設定を終了せずに次のベースアドレスに対する変換アドレスの設定を行う場合（ステップＳ６０６の結果：ＮＯの場合）は、上記の処理を繰り返す。一方、設定を終了する場合（ステップＳ６０６の結果：ＹＥＳの場合）は、そのまま処理を終了する。
【００４４】
次に、第２ポート５０の初期設定において、上述の第１アドレス変換情報を設定する処理について説明する。第２ホストシステム２００の立ち上げ時、第２ポート５０の初期設定を開始すると、第４制御部３５は、第２ポート５０側の要求サイズレジスタ５５をリードして、要求サイズレジスタ５５に値が入っているかを確認する制御を行う（Ｓ６０１）。リードした値が「０」以外の場合（ステップＳ６０１の結果：ＹＥＳの場合）、アドレス変換テーブル６０に第１アドレス情報（第１ホスト装置１０のＰＣＩメモリ空間のベースアドレス及びサイズ）が設定されていると判断し、記憶装置３２内に要求サイズ分の使用可能領域を確保する制御を行い（Ｓ６０２）、確保した領域の先頭アドレスを、第２ポート５０側の使用可能領域レジスタ５４に登録する制御を行う（Ｓ６０３）。一方、要求サイズレジスタに「０」が設定されている場合（ステップＳ６０１の結果：ＮＯの場合）、アドレス変換テーブル６０に第１アドレス情報が設定されていないと判断し、そのまま処理を終了する。
【００４５】
設定部７０は、使用可能領域レジスタ５４に登録されたアドレスを、アドレス変換テーブル６０の対応するＰＣＩ空間ベースアドレス（第１ホスト装置１０のＰＣＩメモリ空間のベースアドレス）に対する変換アドレスとして設定し、変換アドレス設定フラグに「１」を設定する（Ｓ６０４）。ここで、全てのベースアドレスに対して変換アドレスの設定が完了していれば（ステップＳ６０５の結果：ＹＥＳの場合）、処理は終了する。一方、変換アドレスが設定されていないベースアドレスが存在する場合（ステップＳ６０５の結果：ＮＯの場合）は、設定を終了するか否かを選択し（Ｓ６０６）、設定を終了せずに次のベースアドレスに対する変換アドレスの設定を行う場合（ステップＳ６０６の結果：ＮＯの場合）は、上記の処理を繰り返す。一方、設定を終了する場合（ステップＳ６０６の結果：ＹＥＳの場合）は、そのまま処理を終了する。
【００４６】
次に、第１ホストシステム１００と第２ホストシステム２００との間のデータ転送処理の例を、図７のフローチャートに従って説明する。最初に、第１ホストシステム１００から第２ホストシステム２００の記憶装置３２へデータを書き込む処理について説明する。この例では、第１ホストシステム１００が転送元ホストとなり、第２ホストシステム２００が転送先ホストとなる。ＣＰＵ１１が、第１ホスト装置１０のＰＣＩメモリ空間にライトアクセスすると、チップセット（Root  Complex）１３から、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチであるスイッチ装置２０へパケットが送信される。そのパケットを第１ポート４０で受信した場合（ステップＳ７００の結果：ＹＥＳの場合）、アドレス変換部８０は、パケットに設定されたライトアドレスを取り出してアドレス変換テーブル６０を検索し（ステップＳ７０１）、アドレス変換テーブル６０に設定されたＰＣＩメモリ空間のベースアドレスおよびサイズのうちライトアドレスが含まれる空間（ベースアドレスとサイズ）が存在する場合は（ステップＳ７０２の結果：ＹＥＳの場合）、変換アドレス設定フラグを確認する（ステップＳ７０３）。変換アドレス設定フラグが「１」に設定されていれば（ステップＳ７０３の結果：ＹＥＳの場合）、アドレス変換部８０は、パケット内のライトアドレスを変換アドレスに書き換え（ステップＳ７０４）、第２ホストシステム２００のチップセット（Root  Complex）３３へパケットを送信する（ステップＳ７０５）。
【００４７】
一方、ステップＳ７０２において、ライトアドレスが含まれる空間が存在しない場合（ステップＳ７０２の結果：ＮＯの場合）、または、アドレス変換テーブル６０に設定されたＰＣＩメモリ空間のベースアドレスおよびサイズのうちライトアドレスが含まれる空間が存在しても変換アドレス設定フラグが「０（無効）」の場合（ステップＳ７０３の結果：ＮＯの場合）、該当アドレスはないと判断し、転送元のチップセット（Root Complex）１３に対し、エラーパケットを送信する（ステップＳ７０６）。
【００４８】
次に、第２ホストシステム２００から第１ホストシステム１００の記憶装置１２へデータを書き込む処理について説明する。この例では、第２ホストシステム２００が転送元ホストとなり、第１ホストシステム１００が転送先ホストとなる。ＣＰＵ３１が、第２ホスト装置３０のＰＣＩメモリ空間内にライトアクセスすると、チップセット（Root  Complex）３３から、ＰＣＩ−Ｅｘｐｒｅｓｓスイッチであるスイッチ装置２０へパケットが送信される。そのパケットを第２ポート５０で受信した場合（ステップＳ７００の結果：ＹＥＳの場合）、アドレス変換部８０は、パケットに設定されたライトアドレスを取り出してアドレス変換テーブル６０を検索し（ステップＳ７０１）、アドレス変換テーブル６０に設定されたＰＣＩメモリ空間のベースアドレスおよびサイズのうちライトアドレスが含まれる空間が存在する場合は（ステップＳ７０２の結果：ＹＥＳの場合）、変換アドレス設定フラグを確認する（ステップＳ７０３）。変換アドレス設定フラグが「１」に設定されていれば（ステップＳ７０３の結果：ＹＥＳの場合）、アドレス変換部８０は、パケット内のライトアドレスを変換アドレスに書き換え（ステップＳ７０４）、第１ホストシステム１００のチップセット（Root  Complex）１３へパケットを送信する（ステップＳ７０５）。
【００４９】
一方、ステップＳ７０２において、ライトアドレスが含まれる空間が存在しない場合（ステップＳ７０２の結果：ＮＯの場合）、または、アドレス変換テーブル６０に設定されたＰＣＩメモリ空間のベースアドレスおよびサイズのうちライトアドレスが含まれる空間が存在しても変換アドレス設定フラグが「０（無効）」の場合（ステップＳ７０３の結果：ＮＯの場合）、該当アドレスはないと判断し、転送元のチップセット（Root Complex）３３に対し、エラーパケットを送信する（ステップＳ７０６）。
【００５０】
以上に説明したように、設定部７０は、第２ポート５０の初期設定時に、第２ポート５０側のベースアドレス／サイズレジスタ５３（請求項の「第４記憶部」に対応）に記憶された第３アドレス情報（第２ホスト装置３０のＰＣＩメモリ空間のベースアドレスとサイズ）をアドレス変換テーブル６０に登録する。そして、設定部７０は、第１ポート４０の初期設定時に、第１ポート４０側の使用可能領域レジスタ４４（請求項の「第３記憶部」に対応）に登録された第２アドレス情報（第１ホスト装置１０が有する記憶装置１２内の使用可能な領域の先頭アドレス）を、アドレス変換テーブル６０に登録された第３アドレス情報に対応付けてアドレス変換情報（第２アドレス変換情報）を設定するので、第２ホスト装置３０が、第１ホスト装置１０内の記憶装置１２の使用可能な領域を予め知っておく必要は無い。
【００５１】
また、設定部７０は、第１ポート４０の初期設定時に、第１ポート４０側のベースアドレス／サイズレジスタ４３（請求項の「第１記憶部」に対応）に記憶された第１アドレス情報（第１ホスト装置１０のＰＣＩメモリ空間のベースアドレスとサイズ）をアドレス変換テーブル６０に登録する。そして、設定部７０は、第２ポート５０の初期設定時に、第２ポート側の使用可能領域レジスタ５４（請求項の「第６記憶部」に対応）に登録された第４アドレス情報（第２ホスト装置３０が有する記憶装置３２内の使用可能な領域の先頭アドレス）を、アドレス変換テーブル６０に登録された第１アドレス情報に対応付けてアドレス変換情報（第１アドレス変換情報）を設定するので、第１ホスト装置１０が、第２ホスト装置３０内の記憶装置３２の使用可能な領域を予め知っておく必要は無い。すなわち、本実施形態によれば、スイッチ装置２０を介したデータ転送を行う転送元ホストが、転送先ホスト内のメモリの使用可能領域のアドレスを知らなくても、転送元ホストのＰＣＩメモリ空間を、転送先ホストのメモリの使用可能領域のアドレスに対応付けることができる。
【００５２】
以上、本発明の実施形態について説明したが、本発明は上述の実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の変形が可能である。
【符号の説明】
【００５３】
１    システム
１０  第１ホスト装置
１２  記憶装置
１３  チップセット
１４  第１制御部
１５  第２制御部
２０  スイッチ装置
３０  第２ホスト装置
３２  記憶装置
３３  チップセット
３４  第３制御部
３５  第４制御部
４０  第１ポート
４１  受信バッファ
４２  送信バッファ
４３  ベースアドレス／サイズレジスタ
４４  使用可能領域レジスタ
４５  要求サイズレジスタ
５０  第２ポート
５１  受信バッファ
５２  送信バッファ
５３  ベースアドレス／サイズレジスタ
５４  使用可能領域レジスタ
５５  要求サイズレジスタ
６０  アドレス変換テーブル
７０  設定部
８０  アドレス変換部
１００  ホストシステム
２００  ホストシステム
【先行技術文献】
【特許文献】
【００５４】
【特許文献１】特開２００８−０６７２４２号公報
【図１】
2014016749.tif 000003
【図２】
2014016749.tif 000004
【図３】
2014016749.tif 000005
【図４】
2014016749.tif 000006
【図５】
2014016749.tif 000007
【図６】
2014016749.tif 000008
【図７】
2014016749.tif 000009