(57)【要約】【課題】非公開の領域が公開されてしまうことを防止する。【解決手段】中継装置は、複数のエンドポイントを有し、エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置であって、要求部と、変換部と、を備える。要求部は、情報処理装置ごとに設けられた、情報処理装置が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域に、アクセスするためのアドレス空間のうち、１の情報処理装置の設定領域にアクセスするためのアドレス空間以下のアドレス空間を要求する。変換部は、要求部が要求したアドレス空間のアドレスと、設定領域のアドレスとが対応付けられた変換規則であって、情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、情報処理装置から入力されたアドレスを変換する。【選択図】図２
2020187571.tif 000002
【特許請求の範囲】
【請求項１】
複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置であって、
前記情報処理装置ごとに設けられた、前記情報処理装置が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域に、アクセスするためのアドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレス空間以下のアドレス空間を要求する要求部と、
前記要求部が要求した前記アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する変換部と、
を備える中継装置。
【請求項２】
前記変換規則は、前記情報処理装置がアクセスすることができない領域として前記設定領域以外に設けられている、
請求項１に記載の中継装置。
【請求項３】
前記設定領域は、前記変換規則が設定され、
前記要求部は、１の前記情報処理装置の前記設定領域にアクセスするアドレス空間以下であって、前記変換規則が設定されている領域を除いたアドレス空間を要求する、
請求項１に記載の中継装置。
【請求項４】
複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置を、
前記情報処理装置ごとに設けられた、前記情報処理装置が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域に、アクセスするためのアドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレス空間以下のアドレス空間を要求する要求部と、
前記要求部が要求したアドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則を設定する変換規則設定部と、
して機能させるプログラム。
【請求項５】
複数の情報処理装置と、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の前記情報処理装置間でのバスを介した通信を中継する中継装置とを備える情報処理システムであって、
前記情報処理装置は、
前記情報処理装置が公開する公開領域にアクセスさせるためのアクセス情報を設定させる設定部を備え、
前記中継装置は、
前記情報処理装置ごとに設けられた、前記情報処理装置が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域に、アクセスするためのアドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレス空間以下のアドレス空間を要求する要求部と、
前記要求部が要求した前記アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する変換部と、
を備える情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置、プログラム、及び情報処理システムに関する。
【背景技術】
【０００２】
従来、複数の情報処理装置を用いて並列計算を行なう手法が知られている。例えば、イーサネット（登録商標）回線を用いて情報処理装置間でデータのやりとりを行う情報処理システムが提案されている。
【０００３】
このような情報処理システムでは、各情報処理装置のメモリ空間のうち、公開するメモリ空間をそれぞれの情報処理装置が設定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７５８１８号公報
【特許文献２】特開２０１７−００４５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、各情報処理装置が他の情報処理装置が公開するメモリ空間を任意に変更可能な場合、非公開の領域が公開されてしまうおそれがある。
【０００６】
本発明は、上記に鑑みてなされたものであって、非公開の領域が公開されてしまうことを防止することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る中継装置は、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置であって、要求部と、変換部と、を備える。前記要求部は、前記情報処理装置ごとに設けられた、前記情報処理装置が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域に、アクセスするためのアドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレス空間以下のアドレス空間を要求する。前記変換部は、前記要求部が要求した前記アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する。
【０００８】
本発明の第２態様に係るプログラムは、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置を、要求部と、変換規則設定部と、して機能させる。前記要求部は、前記情報処理装置ごとに設けられた、前記情報処理装置が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域に、アクセスするためのアドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレス空間以下のアドレス空間を要求する。前記変換規則設定部は、前記要求部が要求したアドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則を設定する。
【０００９】
本発明の第３態様に係る情報処理システムは、複数の情報処理装置と、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の前記情報処理装置間でのバスを介した通信を中継する中継装置とを備える情報処理システムである。前記情報処理装置は、前記情報処理装置が公開する公開領域にアクセスさせるためのアクセス情報を設定させる設定部を備える。前記中継装置は、要求部と、変換部と、を備える。前記要求部は、前記情報処理装置ごとに設けられた、前記情報処理装置が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域に、アクセスするためのアドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレス空間以下のアドレス空間を要求する。前記変換部は、前記要求部が要求した前記アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する。
【発明の効果】
【００１０】
本発明にかかる中継装置、プログラム、及び情報処理システムは、非公開の領域が公開されてしまうことを防止するという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１にかかる分散型コンピュータの全体構成の一例を示す図である。
【図２】図２は、実施例１にかかる分散型コンピュータのハードウェア構成を説明する図である。
【図３】図３は、プラットフォームＡからプラットフォームＣへ通信に伴うアドレス変換の一例を説明する図である。
【図４】図４は、実施例１にかかる設定処理の一例を示すシーケンス図である。
【図５】図５は、実施例２にかかる分散型コンピュータのハードウェア構成を説明する図である。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかる中継装置、プログラム、及び情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１３】
図１は、実施例１にかかる分散型コンピュータ１の全体構成の一例を示す図である。分散型コンピュータ１は、複数のプラットフォームＡ１０−１〜プラットフォームＨ１０−８と、複数のエンドポイントを有し、エンドポイントに接続されたルートコンプレックスを有する複数のプラットフォームＡ１０−１〜プラットフォームＨ１０−８間でのバスを介した通信を中継するＰＣＩｅブリッジコントローラ３０とを備える情報処理システムである。図１に示すように、実施例にかかる分散型コンピュータ１は、プラットフォームＡ１０−１〜プラットフォームＨ１０−８と、ＰＣＩｅブリッジコントローラ３０とを備えている。
【００１４】
プラットフォームＡ１０−１〜プラットフォームＨ１０−８は、ＰＣＩｅブリッジコントローラ３０を介して、通信可能に接続されている。プラットフォームＡ１０−１〜プラットフォームＨ１０−８は、例えば、ＰＣＩｅブリッジコントローラ３０が設けられたボード上のスロットに挿入されていてよい。尚、複数のスロットのうち、いずれかのスロットは、ノードが挿入されていない空き状態であってもよい。以下の説明では、各プラットフォームＡ１０−１〜プラットフォームＨ１０−８を区別する必要がなく、任意のノードを示す場合には、プラットフォーム１０と記載する。
【００１５】
プラットフォームＡ１０−１は、プラットフォームＢ１０−２〜プラットフォームＨ１０−８を管理して、プラットフォームＢ１０−２〜プラットフォームＨ１０−８に各種処理を実行させるメインの情報処理装置である。
【００１６】
プラットフォームＢ１０−２〜プラットフォームＨ１０−８は、プラットフォームＡ１０−１の要求に基づいて、例えばＡＩ（Artificial  Intelligence）推論処理や画像処理等を実行するサブの情報処理装置である。
【００１７】
また、プラットフォームＡ１０−１〜プラットフォームＨ１０−８は、プロセッサ１１−１〜１１−８を備える。また、各プロセッサ１１−１〜１１−８は、それぞれアーキテクチャが異なっていてもよい。また、各プロセッサ１１−１〜１１−８は、それぞれ異なるメーカから提供されていてもよいし、同一のメーカから提供されていてもよい。以下の説明では、プロセッサ１１−１〜１１−８を区別する必要がなく、任意のプロセッサを示す場合には、プロセッサ１１と記載する。
【００１８】
プロセッサ１１は、プラットフォーム１０全体を制御する。プロセッサ１１は、マルチプロセッサであってもよい。また、プロセッサ１１は、例えばＣＰＵ（Central  Processing  Unit），ＭＰＵ（Micro  Processing  Unit），ＧＰＵ（Graphics  Processing  Unit），ＤＳＰ（Digital  Signal  Processor），ＡＳＩＣ（Application  Specific  Integrated  Circuit），ＰＬＤ（Programmable  Logic  Device），ＦＰＧＡ（Field  Programmable  Gate  Array）のいずれか一つであってもよい。また、プロセッサ１１は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００１９】
プラットフォーム１０は、ホスト側として動作可能なルートコンプレックス（ＲＣ：Root  Complex）としての機能を有する。ＰＣＩｅブリッジコントローラ３０は、中継装置の一例である。ＰＣＩｅブリッジコントローラ３０は、複数のエンドポイント（ＥＰ：End  Point）を有し、エンドポイントに接続されたルートコンプレックスを有する複数のプラットフォーム１０間でのバスを介した通信を中継する。また、ＰＣＩｅブリッジコントローラ３０は、プラットフォーム１０と接続されるＡＴＵ（Address  Translation  Unit）及びスロット等を含む複数のエンドポイントとしての機能を有する。ルートコンプレックス及びエンドポイントは、例えばＰＣＩｅのルートコンプレックス及びエンドポイントであってよい。これにより、データ転送がプラットフォーム１０とＰＣＩｅブリッジコントローラ３０との間で行なわれる。
【００２０】
さらに詳しくは、ＰＣＩｅブリッジコントローラ３０は、複数のエンドポイントを有している。また、プラットフォーム１０は、ＰＣＩｅブリッジコントローラ３０のエンドポイントに接続されるルートコンプレックスを有している。すなわち、ＰＣＩｅブリッジコントローラ３０が有する複数のエンドポイントのそれぞれには、各プラットフォーム１０が有するルートコンプレックスが接続される。そして、ＰＣＩｅブリッジコントローラ３０は、内部に設けられたバスを制御して、エンドポイント間のデータ転送を実行する。このようにして、ＰＣＩｅブリッジコントローラ３０は、プラットフォームＡ１０−１〜プラットフォームＨ１０−８の間での通信を中継してデータ転送を実現する。
【００２１】
次に、ＰＣＩｅブリッジコントローラ３０を介した通信におけるアドレス変換について説明する。図２は、実施例１にかかる分散型コンピュータ１のハードウェア構成を説明する図である。
【００２２】
ＰＣＩｅブリッジコントローラ３０は、プロセッサ３１と、メモリ３２と、各プラットフォーム１０が接続するスロットごとのＡＴＵ３３−１〜３３−８とを備える。
【００２３】
プロセッサ３１は、ＰＣＩｅブリッジコントローラ３０全体を制御する。プロセッサ１１は、マルチプロセッサであってもよい。また、プロセッサ１１は、例えばＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか一つであってもよい。また、プロセッサ１１は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００２４】
メモリ３２は、ＲＯＭ（Read  Only  Memory）、及びＲＡＭ（Random  Access  Memory）を含む記憶装置である。ＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ３２に記憶されたプログラム３２１は、プロセッサ３１に読み込まれて実行される。また、ＲＡＭは、ワーキングメモリとして利用される。
【００２５】
また、プロセッサ３１は、メモリ３２に記憶されるプログラム３２１を実行することによって、図２に示す機能を実現する。具体的には、プロセッサ３１は、機能として、アドレス空間要求部３１１、及びアドレス変換設定部３１２を備える。
【００２６】
アドレス空間要求部３１１は、要求部の一例である。アドレス空間要求部３１１は、プラットフォーム１０ごとに設けられた、プラットフォーム１０が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定されるＤＢＩ（Data  Bus  Interface）３７−１〜３７−８に、アクセスするためのアドレス空間のうち、１のプラットフォーム１０のＤＢＩ３７−１〜３７−８にアクセスするためのアドレス空間以下のアドレス空間を要求する。すなわち、アドレス空間要求部３１１は、各プラットフォーム１０が自装置の設定を有するＤＢＩ３７−１〜３７−８にアクセスするためのアドレス空間以下のアドレス空間をＢＡＲ（Base  Address  Register）２として要求する。
【００２７】
ここで、公開領域とは、各プラットフォーム１０が公開する領域であって、他のプラットフォーム１０が書き込みや読み出しを実行可能な領域である。例えば、バッファエリア等のメモリが公開領域に指定される。そして、公開領域は、プラットフォーム１０自身によって指定される。アクセス情報とは、プラットフォーム１０が指定した公開領域にアクセスさせるための情報である。例えば、アクセス情報とは、公開領域のアドレスであってもよいし、入力されたアドレスを公開領域のアドレスに変換する変換規則であってもよいし、これら以外の情報であってもよい。ＤＢＩ３７−１〜３７−８は、各プラットフォーム１０の設定が記憶される領域である。以下の説明では、ＤＢＩ３７−１〜３７−８を区別する必要がなく、任意のＤＢＩを示す場合には、ＤＢＩ３７と記載する。
【００２８】
更に詳しくは、アドレス空間要求部３１１は、ＢＡＲ２よりＤＢＩ３７にアクセスするためのアドレス空間として、プラットフォーム１０ごとに設けられたＤＢＩ３７のうち、１のプラットフォーム１０のＤＢＩ３７にアクセスするためのアドレス空間を要求する。ＢＡＲ２は、ＤＢＩ３７にアクセスするためのベースアドレスが設定されたレジスタである。すなわち、アドレス空間要求部３１１は、アドレス空間を制限することで、他のＤＢＩ３７を指定不可にする。
【００２９】
アドレス変換設定部３１２は、変換規則設定部の一例である。アドレス変換設定部３１２は、アドレス変換の変換規則をアドレス変換情報３６−１〜３６−８に設定する。例えば、アドレス変換設定部３１２は、アドレス空間要求部３１１が要求したアドレス空間のアドレスと、ＤＢＩ３７のアドレスとが対応付けられた変換規則をアドレス変換情報３６−１〜３６−８に設定する。
【００３０】
ＡＴＵ３３−１〜３３−８は、各プラットフォーム１０が接続されたスロットごとに設けられている。ＡＴＵ３３−１〜３３−８は、各プラットフォーム１０から入力されたアドレス、又はプラットフォーム１０に出力されたアドレスを変換する。以下の説明では、各ＡＴＵ３３−１〜３３−８を区別する必要がなく、任意のＡＴＵ３３−１〜３３−８を示す場合には、ＡＴＵ３３と記載する。
【００３１】
ＡＴＵ３３は、例えばアドレス変換情報３６−１〜３６−８等のアドレスの変換規則に基づいてアドレスを変換するレジスタ回路である。また、ＡＴＵ３３は、ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか一つであってもよい。また、ＡＴＵ３３は、ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。さらに、ＡＴＵ３３は、プロセッサ３１がメモリ３２に記憶されるプログラム３２１を実行することによって実現される機能部であってもよい。
【００３２】
ここで、各プラットフォーム１０は、プラットフォーム１０間で異なるメモリアドレス空間にアクセスする場合、ベースアドレスが設定されているＢＡＲ０を経由してアクセスする。しかしながら、ＢＡＲ０のアドレス空間の上位ｂｉｔはスロット番号に割り当てられているため、データの読み書きに使うアドレスは制限されてしまう。そのため、アドレスのｂｉｔ数制限により上位空間へアクセスできない問題が生じてしまう。そこで、ＡＴＵ３３は、この制限を回避するためにアドレス変換を実行し、各プラットフォーム１０の任意のメモリアドレスにアクセスできるようにする。同様に、ＡＴＵ３３は、ＰＣＩｅブリッジコントローラ３０の任意のアドレスにアクセスできるようにする。
【００３３】
また、ＡＴＵ３３−１〜ＡＴＵ３３−８は、略同一の構成であるため、ＡＴＵ３３−１を例に説明する。但し、アドレス変換情報３６−１〜３６−８には、プラットフォームＡ１０−１〜プラットフォームＨ１０−８のそれぞれに応じたアドレス変換規則が設定されている。また、ＤＢＩ３７−１〜ＤＢＩ３７−１には、プラットフォームＡ１０−１〜プラットフォームＨ１０−８のそれぞれに応じた公開領域にアクセスさせるためのアクセス情報が設定されている。
【００３４】
ＡＴＵ３３−１は、入力アドレス変換部３４−１、出力アドレス変換部３５−１、アドレス変換情報３６−１、及びＤＢＩ３７−１を備える。入力アドレス変換部３４−１及び出力アドレス変換部３５−１は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡ等によって実現されてよい。
【００３５】
アドレス変換情報３６−１は、プラットフォームＡ１０−１から出力されたアドレスを、ＰＣＩｅブリッジコントローラ３０のアドレス空間におけるアドレスに変換する変換規則が設定されている。さらに、アドレス変換情報３６−１は、プラットフォーム１０がアクセスすることができない領域としてＤＢＩ３７−１以外の領域に設けられている変換規則の例とする。すなわち、アドレス変換情報３６−１は、プラットフォーム１０が書き換えることができない領域に設けられている。
【００３６】
ＤＢＩ３７−１は、プラットフォームＡ１０−１〜プラットフォームＨ１０−８のそれぞれに応じた公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域である。
【００３７】
入力アドレス変換部３４−１は、変換部の一例である。入力アドレス変換部３４−１は、アドレス空間要求部３１１が要求したアドレス空間のアドレスと、ＤＢＩ３７−１のアドレスとが対応付けられたアドレス変換情報３６−１であって、プラットフォーム１０が書き換えることができない領域に設けられたアドレス変換情報３６−１に基づいて、プラットフォームＡ１０−１から入力されたアドレスを変換する。
【００３８】
さらに詳しくは、アドレス空間要求部３１１は、ＤＢＩ３７−１にアクセスするアドレスのアドレス空間をプラットフォームＡ１０−１に要求する。これにより、プラットフォームＡ１０−１は、ＢＡＲ２において、要求されたアドレス空間のアドレスを、ＤＢＩ３７−１にアクセスするためのアドレスと定義する。但し、プラットフォームＡ１０−１が定義したアドレスは、プラットフォームＡ１０−１のアドレス空間のアドレスである。そこで、入力アドレス変換部３４−１は、プラットフォームＡ１０−１のアドレス空間におけるＤＢＩ３７−１のアドレスが入力された場合に、ＰＣＩｅブリッジコントローラ３０のアドレス空間のＤＢＩ３７−１のアドレスに変換する。この時、入力アドレス変換部３４−１は、アドレスの変換規則が規定されたアドレス変換情報３６−１に基づいて、プラットフォームＡ１０−１から入力されたアドレスを変換する。
【００３９】
出力アドレス変換部３５−１は、ＤＢＩ３７−１に基づいて、ＰＣＩｅブリッジコントローラ３０から出力されるアドレスを、プラットフォーム１０のアドレス空間に対応したアドレスに変換する。
【００４０】
次に、プラットフォーム１０について説明する。また、プラットフォームＡ１０−１〜プラットフォームＨ１０−８は、略同一の構成であるため、プラットフォームＡ１０−１を例に説明する。
【００４１】
プラットフォームＡ１０−１は、プロセッサ１１−１と、メモリ１２−１と、Ｔｘ１３−１と、Ｒｘ１４−１とを備える。
【００４２】
メモリ１２−１は、ＲＯＭ、及びＲＡＭを含む記憶メモリである。ＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ１２−１に記憶されたプログラム１２１−１は、プロセッサ１１−１に読み込まれて実行される。また、ＲＡＭは、ワーキングメモリとして利用される。
【００４３】
Ｔｘ１３−１は、アドレスやデータを送信する回路である。Ｒｘ１３−１は、アドレスやデータを受信する回路である。
【００４４】
また、プロセッサ１１−１は、メモリ１２−１に記憶されるプログラム１２１−１を実行することによって、図２に示す機能を実現する。具体的には、機能部として、アドレス空間設定部１１１−１、及び公開領域設定部１１２−１を備える。
【００４５】
アドレス空間設定部１１１−１は、ＢＡＲ２のアドレス空間を設定する。更に詳しくは、アドレス空間設定部１１１−１は、ＰＣＩｅブリッジコントローラ３０の接続を検出した場合に、ＢＡＲ２として設定可能な最大アドレス空間を示す情報をＰＣＩｅブリッジコントローラ３０に送信する。ＰＣＩｅブリッジコントローラ３０は、応答として、１のＤＢＩ３７−１にアクセス可能なアドレス空間以下のアドレス空間を指定する。そこで、アドレス空間設定部１１１−１は、指定されたアドレス空間をＢＡＲ２のアドレス空間として設定する。
【００４６】
公開領域設定部１１２−１は、設定部の一例である。公開領域設定部１１２−１は、自装置であるプラットフォームＡ１０−１が公開する公開領域にアクセスさせるためのアクセス情報をＤＢＩ３７−１に設定する。更に詳しくは、公開領域設定部１１２−１は、公開領域にアクセスさせるためのアクセス情報の設定要求をＰＣＩｅブリッジコントローラ３０に送信する。ＰＣＩｅブリッジコントローラ３０は、要求されたアクセス情報をＤＢＩ３７−１に設定する。これにより、公開領域設定部１１２−１は、公開領域にアクセスさせるためのアクセス情報をＤＢＩ３７−１に設定する。
【００４７】
次に、ＰＣＩｅブリッジコントローラ３０を介した通信におけるアドレス変換について説明する。図３は、プラットフォームＡ１０−１からプラットフォームＣ１０−３への通信に伴うアドレス変換の一例を説明する図である。
【００４８】
まず、図３を用いて、ＤＢＩ３７−１に対する書き込みについて説明する。
【００４９】
プラットフォームＡ１０−１は、ＤＢＩ３７−１に対して書き込みを実行する場合、ＢＡＲ２のアドレス空間を指定する。ここで、プラットフォームＡ１０−１のＢＡＲ２のアドレス空間は、１のＤＢＩ３７−１を指定可能なアドレス空間以下になっている。そのため、プラットフォームＡ１０−１は、自装置以外のＤＢＩ３７−１を指定することができないようになっている。
【００５０】
プラットフォームＡ１０−１は、ＢＡＲ２を指定することで自装置のＤＢＩ３７−１のアドレスを指定したライト要求をＴｘ１３−１から送信する。
【００５１】
入力アドレス変換部３４−１は、ライト要求を受信した場合に、アドレス変換情報３６−１に基づいて、ライト要求のアドレスをＰＣＩｅブリッジコントローラ３０のアドレス空間のアドレスに変換する。例えば、入力アドレス変換部３４−１は、ＤＢＩ３７−１のアドレスに変換する。すなわち、図３の矢印が示すように、入力アドレス変換部３４−１は、プラットフォームＡ１０−１のアドレス空間のアドレスを、ＰＣＩｅブリッジコントローラ３０のアドレス空間のアドレスに変換する。
【００５２】
アドレス空間要求部３１１は、入力アドレス変換部３４−１が変換後のアドレスに基づいて、ライト要求により要求されたライトデータをＤＢＩ３７−１に書き込む。
【００５３】
次に、図３を用いて、プラットフォーム１０のバッファエリア等のメモリ空間上の公開領域に対する書き込みについて説明する。
【００５４】
プラットフォームＡ１０−１は、他のプラットフォームＢ１０−２〜プラットフォームＨ１０−８の何れかのバッファエリア等のメモリ空間上の公開領域に書き込みを実行する場合、ＢＡＲ０における対象のプラットフォーム１０のアドレスを指定してライト要求をＴｘ１３−１から送信する。
【００５５】
入力アドレス変換部３４−１は、ライト要求を受信した場合に、アドレス変換情報３６−１に基づいて、ＰＣＩｅブリッジコントローラ３０のアドレス空間にライト要求のアドレスを変換する。
【００５６】
ＰＣＩｅブリッジコントローラ３０のプロセッサ３１は、入力アドレス変換部３４−１が変換後のアドレスに基づいて、ライト要求を誘導する。例えば、プロセッサ３１は、プラットフォームＣ１０−３に対するライト要求の場合、プラットフォームＣ１０−３に対応したＡＴＵ３３−３にライト要求を誘導する。
【００５７】
ＡＴＵ３３−３の出力アドレス変換部３５−３は、ライト要求を受信した場合に、ＤＢＩ３７−３に基づいて、プラットフォームＣ１０−３のバッファエリア等のメモリ空間上の公開領域に対応したアドレスにライト要求のアドレスを変換する。すなわち、図３の矢印が示すように、出力アドレス変換部３５−３は、ＰＣＩｅブリッジコントローラ３０のアドレス空間のアドレスを、プラットフォームＣ１０−３のアドレス空間のアドレスに変換する。このようにして、分散型コンピュータ１は、プラットフォーム１０間での書き込みを実行する。
【００５８】
次に、分散型コンピュータ１による設定処理について説明する。図４は、実施例１にかかる設定処理の一例を示すシーケンス図である。なお、図４では、プラットフォームＡ１０−１の場合を例に説明するが、プラットフォームＢ１０−２〜プラットフォームＨ１０−８でも同様の処理を実行する。
【００５９】
プラットフォーム１０のアドレス空間設定部１１１−１は、ＰＣＩｅブリッジコントローラ３０が接続されたことを検出する（ステップＳ１）。
【００６０】
アドレス空間設定部１１１−１は、ＢＡＲ２として受入可能な最大アドレス空間を示す情報をＰＣＩｅブリッジコントローラ３０に送信する（ステップＳ２）。
【００６１】
アドレス空間要求部３１１は、１のＤＢＩ３７−１を指定可能なアドレス空間をＢＡＲ２として設定するように要求する（ステップＳ３）。
【００６２】
アドレス空間設定部１１１−１は、指定されたアドレス空間をＢＡＲ２として設定する（ステップＳ４）。
【００６３】
アドレス変換設定部３１２は、プラットフォーム１０に応じたアドレス変換の変換規則をアドレス変換情報３６−１に設定する（ステップＳ５）。
【００６４】
公開領域設定部１１２−１は、バッファエリア等のメモリ空間上の公開領域にアクセスさせるためのアクセス情報をＤＢＩ３７−１に設定するように要求する（ステップＳ６）。
【００６５】
アドレス変換設定部３１２は、指定されたアクセス情報をＤＢＩ３７−１に設定する（ステップＳ７）。これにより、出力アドレス変換部３５−１は、ＤＢＩ３７−１に基づいてアドレスを変換することで、バッファエリア等の公開領域のアドレスをプラットフォーム１０に送信することができる。
【００６６】
以上のように、実施例１にかかる分散型コンピュータ１によれば、ＰＣＩｅブリッジコントローラ３０のアドレス空間要求部３１１は、ＢＡＲ２のアドレス空間として、１のプラットフォーム１０のＤＢＩ３７−１〜３７−８にアクセスするためのアドレス空間以下のアドレス空間を要求する。すなわち、アドレス空間要求部３１１は、プラットフォーム１０が自装置のＤＢＩ３７−１〜３７−８にアクセスすることができるだけのアドレス空間を要求する。ここで、入力アドレス変換部３４−１〜３４−８は、アドレス変換情報３６−１〜３６−８に基づいて、アドレスを変換している。そのため、プラットフォーム１０は、ＢＡＲ２のアドレス空間が制限されても、アドレス変換情報３６−１〜３６−８を書き換えることで、ＢＡＲ２のアドレス空間のアドレスと、他のプラットフォーム１０のＤＢＩ３７−１〜３７−８のアドレスとが対応付けることができてしまう。そこで、アドレス変換情報３６−１〜３６−８は、プラットフォーム１０がアクセスすることができない領域に記憶される。このようにして、ＰＣＩｅブリッジコントローラ３０は、プラットフォーム１０が他のプラットフォーム１０のＤＢＩ３７−１〜３７−８にアクセスすることが出来なくなるようにしている。よって、ＰＣＩｅブリッジコントローラ３０は、非公開の領域が公開されてしまうことを防止することができる。
【実施例２】
【００６７】
実施例１では、ＤＢＩ３７−１〜３７−８からアドレス変換情報３６−１〜３６−８を取り除き、プラットフォーム１０がアクセスできない領域にアドレス変換情報３６−１〜３６−８を記憶させた。これにより、プラットフォーム１０によるアドレス変換情報３６−１〜３６−８の変更を防止すると説明した。実施例２では、実施例１とは異なる方法によりアドレス変換情報３６−１〜３６−８の変更を防止する。なお、重複する構成要素は、同じ符号を用いて説明する。
【００６８】
図５は、実施例２にかかる分散型コンピュータ１ａのハードウェア構成を説明する図である。実施例２にかかるＡＴＵ３３−１ａ〜３３−８ａでは、アドレス変換情報３６−１ａ〜３６−８ａは、ＤＢＩ３７−１ａ〜３７−８ａに記憶されている。すなわち、ＤＢＩ３７−１ａ〜３７−８ａには、変換規則の一例であるアドレス変換情報３６−１ａ〜３６−８ａが設定されている設定領域の例とする。
【００６９】
ここで、実施例１に係るアドレス空間要求部３１１は、１のプラットフォーム１０のＤＢＩ３７−１〜３７−８を指定可能なアドレス空間以下のアドレス空間を要求していた。実施例２に係るアドレス空間要求部３１１ａは、１のプラットフォーム１０のＤＢＩ３７−１〜３７−８を指定可能なアドレス空間以下であって、アドレス変換情報３６−１ａ〜３６−８ａが設定されている領域を除いたアドレス空間を要求する。すなわち、アドレス空間要求部３１１ａは、アドレス変換情報３６−１ａ〜３６−８ａを除いた残りの領域を指定可能なアドレス空間を要求する。
【００７０】
そのため、プラットフォームＡ１０−１のアドレス空間設定部１１１−１は、ＢＡＲ２のアドレス空間として、１のプラットフォーム１０のＤＢＩ３７−１〜３７−８を指定可能なアドレス空間以下であって、且つアドレス変換情報３６−１ａが設定されている領域を除いたアドレス空間を設定する。これにより、アドレス空間要求部３１１ａは、他のプラットフォーム１０のＤＢＩ３７−２ａ〜３７−８ａだけでなく、アドレス変換情報３６−１ａも隠蔽することができる。
【００７１】
以上のように、実施例２にかかるアドレス空間要求部３１１ａは、他のプラットフォーム１０のＤＢＩ３７−２ａ〜３７−８ａだけでなく、アドレス変換情報３６−１ａも隠蔽する。よって、ＰＣＩｅブリッジコントローラ３０は、非公開の領域が公開されてしまうことを防止することができる。
【００７２】
上述の実施形態では、各部のバス（例えば、拡張バス）又はＩ／ＯインタフェースとしてＰＣＩｅを例に挙げて説明したが、バスまたはＩ／ＯインタフェースはＰＣＩｅに限定されない。例えば、各部のバスまたはＩ／Ｏインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステム又は１つの装置）で高速にデータを転送できる汎用のバスであってもよい。Ｉ／Ｏインタフェースは、パラレルインタフェース及びシリアルインタフェースの何れであってもよい。
【００７３】
Ｉ／Ｏインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。なお、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１又は複数のポートを有するルートコンプレックス、Ｉ／Ｏデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。Ｉ／Ｏインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【符号の説明】
【００７４】
１  分散型コンピュータ
１０  プラットフォーム
１０−１  プラットフォームＡ
１０−２  プラットフォームＢ
１０−３  プラットフォームＣ
１０−４  プラットフォームＤ
１０−５  プラットフォームＥ
１０−６  プラットフォームＦ
１０−７  プラットフォームＧ
１０−８  プラットフォームＨ
３０  ＰＣＩｅブリッジコントローラ
３３、３３−１〜３３−８  ＡＴＵ
３４−１〜３４−８  入力アドレス変換部
３５−１〜３５−８  出力アドレス変換部
３６−１〜３６−８  アドレス変換情報
３７−１〜３７−８  ＤＢＩ
１１１−１〜１１１−８  アドレス空間設定部
１１２−１〜１１２−８  公開領域設定部
３１１  アドレス空間要求部
３１２  アドレス変換設定部
【図１】
2020187571.tif 000003
【図２】
2020187571.tif 000004
【図３】
2020187571.tif 000005
【図４】
2020187571.tif 000006
【図５】
2020187571.tif 000007
【手続補正書】
【提出日】令和1年9月2日(2019.9.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置であって、
前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第１アドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第２アドレス空間の全部又は一部からなる第３アドレス空間の取得を要求する要求部と、
前記要求部が要求した前記第３アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する変換部と、
を備える中継装置。
【請求項２】
前記変換規則は、前記情報処理装置がアクセスすることができない領域として前記設定領域以外に設けられている、
請求項１に記載の中継装置。
【請求項３】
前記設定領域は、前記変換規則が設定され、
前記要求部は、１の前記情報処理装置の前記設定領域にアクセスする前記第２アドレス空間の全部又は一部であって、前記変換規則が設定されている領域を除いた前記第３アドレス空間を要求する、
請求項１に記載の中継装置。
【請求項４】
複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置を、
前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第１アドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第２アドレス空間の全部又は一部からなる第３アドレス空間の取得を要求する要求部と、
前記要求部が要求した前記第３アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則を設定する変換規則設定部と、
して機能させるプログラム。
【請求項５】
複数の情報処理装置と、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の前記情報処理装置間でのバスを介した通信を中継する中継装置とを備える情報処理システムであって、
前記情報処理装置は、
前記情報処理装置が公開する公開領域にアクセスさせるためのアクセス情報を設定させる設定部を備え、
前記中継装置は、
前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第１アドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第２アドレス空間の全部又は一部からなる第３アドレス空間の取得を要求する要求部と、
前記要求部が要求した前記第３アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する変換部と、
を備える情報処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の第１態様に係る中継装置は、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置であって、要求部と、変換部と、を備える。前記要求部は、前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第１アドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第２アドレス空間の全部又は一部からなる第３アドレス空間の取得を要求する。前記変換部は、前記要求部が要求した前記第３アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
本発明の第２態様に係るプログラムは、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置を、要求部と、変換規則設定部と、して機能させる。前記要求部は、前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第１アドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第２アドレス空間の全部又は一部からなる第３アドレス空間の取得を要求する。前記変換規則設定部は、前記要求部が要求した前記第３アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則を設定する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明の第３態様に係る情報処理システムは、複数の情報処理装置と、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の前記情報処理装置間でのバスを介した通信を中継する中継装置とを備える情報処理システムである。前記情報処理装置は、前記情報処理装置が公開する公開領域にアクセスさせるためのアクセス情報を設定させる設定部を備える。前記中継装置は、要求部と、変換部と、を備える。前記要求部は、前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第１アドレス空間のうち、１の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第２アドレス空間の全部又は一部からなる第３アドレス空間の取得を要求する。前記変換部は、前記要求部が要求した前記第３アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する。