特許第6607332号(P6607332)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通クライアントコンピューティング株式会社の特許一覧

特許6607332中継装置、プログラム、及び情報処理システム
<>
  • 特許6607332-中継装置、プログラム、及び情報処理システム 図000002
  • 特許6607332-中継装置、プログラム、及び情報処理システム 図000003
  • 特許6607332-中継装置、プログラム、及び情報処理システム 図000004
  • 特許6607332-中継装置、プログラム、及び情報処理システム 図000005
  • 特許6607332-中継装置、プログラム、及び情報処理システム 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6607332
(24)【登録日】2019年11月1日
(45)【発行日】2019年11月20日
(54)【発明の名称】中継装置、プログラム、及び情報処理システム
(51)【国際特許分類】
   G06F 15/173 20060101AFI20191111BHJP
【FI】
   G06F15/173 665C
【請求項の数】5
【全頁数】14
(21)【出願番号】特願2019-92099(P2019-92099)
(22)【出願日】2019年5月15日
【審査請求日】2019年5月28日
【早期審査対象出願】
(73)【特許権者】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】中山 雄二
(72)【発明者】
【氏名】木村 真敏
(72)【発明者】
【氏名】石田 智弘
【審査官】 大桃 由紀雄
(56)【参考文献】
【文献】 特表2013−533544(JP,A)
【文献】 米国特許出願公開第2008/0137676(US,A1)
【文献】 特開2008−152787(JP,A)
【文献】 特開2012−059064(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/173
(57)【特許請求の範囲】
【請求項1】
複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置であって、
前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第1アドレス空間のうち、1の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第2アドレス空間の全部又は一部からなる第3アドレス空間の取得を要求する要求部と、
前記要求部が要求した前記第3アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する変換部と、
を備える中継装置。
【請求項2】
前記変換規則は、前記情報処理装置がアクセスすることができない領域として前記設定領域以外に設けられている、
請求項1に記載の中継装置。
【請求項3】
前記設定領域は、前記変換規則が設定され、
前記要求部は、1の前記情報処理装置の前記設定領域にアクセスする前記第2アドレス空間の全部又は一部であって、前記変換規則が設定されている領域を除いた前記第3アドレス空間を要求する、
請求項1に記載の中継装置。
【請求項4】
複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置を、
前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第1アドレス空間のうち、1の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第2アドレス空間の全部又は一部からなる第3アドレス空間の取得を要求する要求部と、
前記要求部が要求した前記第3アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則を設定する変換規則設定部と、
して機能させるプログラム。
【請求項5】
複数の情報処理装置と、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の前記情報処理装置間でのバスを介した通信を中継する中継装置とを備える情報処理システムであって、
前記情報処理装置は、
前記情報処理装置が公開する公開領域にアクセスさせるためのアクセス情報を設定させる設定部を備え、
前記中継装置は、
前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第1アドレス空間のうち、1の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第2アドレス空間の全部又は一部からなる第3アドレス空間の取得を要求する要求部と、
前記要求部が要求した前記第3アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する変換部と、
を備える情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、中継装置、プログラム、及び情報処理システムに関する。
【背景技術】
【0002】
従来、複数の情報処理装置を用いて並列計算を行なう手法が知られている。例えば、イーサネット(登録商標)回線を用いて情報処理装置間でデータのやりとりを行う情報処理システムが提案されている。
【0003】
このような情報処理システムでは、各情報処理装置のメモリ空間のうち、公開するメモリ空間をそれぞれの情報処理装置が設定する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−275818号公報
【特許文献2】特開2017−004554号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、各情報処理装置が他の情報処理装置が公開するメモリ空間を任意に変更可能な場合、非公開の領域が公開されてしまうおそれがある。
【0006】
本発明は、上記に鑑みてなされたものであって、非公開の領域が公開されてしまうことを防止することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第1態様に係る中継装置は、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置であって、要求部と、変換部と、を備える。前記要求部は、前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第1アドレス空間のうち、1の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第2アドレス空間の全部又は一部からなる第3アドレス空間の取得を要求する。前記変換部は、前記要求部が要求した前記第3アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する。
【0008】
本発明の第2態様に係るプログラムは、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置を、要求部と、変換規則設定部と、して機能させる。前記要求部は、前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第1アドレス空間のうち、1の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第2アドレス空間の全部又は一部からなる第3アドレス空間の取得を要求する。前記変換規則設定部は、前記要求部が要求した前記第3アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則を設定する。
【0009】
本発明の第3態様に係る情報処理システムは、複数の情報処理装置と、複数のエンドポイントを有し、前記エンドポイントに接続されたルートコンプレックスを有する複数の前記情報処理装置間でのバスを介した通信を中継する中継装置とを備える情報処理システムである。前記情報処理装置は、前記情報処理装置が公開する公開領域にアクセスさせるためのアクセス情報を設定させる設定部を備える。前記中継装置は、要求部と、変換部と、を備える。前記要求部は、前記情報処理装置ごとに設けられた、複数の前記情報処理装置のそれぞれが公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域にアクセスするためのアドレスの範囲を示す第1アドレス空間のうち、1の前記情報処理装置の前記設定領域にアクセスするためのアドレスの範囲を示す第2アドレス空間の全部又は一部からなる第3アドレス空間の取得を要求する。前記変換部は、前記要求部が要求した前記第3アドレス空間のアドレスと、前記設定領域のアドレスとが対応付けられた変換規則であって、前記情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、前記情報処理装置から入力されたアドレスを変換する。
【発明の効果】
【0010】
本発明にかかる中継装置、プログラム、及び情報処理システムは、非公開の領域が公開されてしまうことを防止するという効果を奏する。
【図面の簡単な説明】
【0011】
図1図1は、実施例1にかかる分散型コンピュータの全体構成の一例を示す図である。
図2図2は、実施例1にかかる分散型コンピュータのハードウェア構成を説明する図である。
図3図3は、プラットフォームAからプラットフォームCへ通信に伴うアドレス変換の一例を説明する図である。
図4図4は、実施例1にかかる設定処理の一例を示すシーケンス図である。
図5図5は、実施例2にかかる分散型コンピュータのハードウェア構成を説明する図である。
【発明を実施するための形態】
【0012】
以下に、本発明にかかる中継装置、プログラム、及び情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0013】
図1は、実施例1にかかる分散型コンピュータ1の全体構成の一例を示す図である。分散型コンピュータ1は、複数のプラットフォームA10−1〜プラットフォームH10−8と、複数のエンドポイントを有し、エンドポイントに接続されたルートコンプレックスを有する複数のプラットフォームA10−1〜プラットフォームH10−8間でのバスを介した通信を中継するPCIeブリッジコントローラ30とを備える情報処理システムである。図1に示すように、実施例にかかる分散型コンピュータ1は、プラットフォームA10−1〜プラットフォームH10−8と、PCIeブリッジコントローラ30とを備えている。
【0014】
プラットフォームA10−1〜プラットフォームH10−8は、PCIeブリッジコントローラ30を介して、通信可能に接続されている。プラットフォームA10−1〜プラットフォームH10−8は、例えば、PCIeブリッジコントローラ30が設けられたボード上のスロットに挿入されていてよい。尚、複数のスロットのうち、いずれかのスロットは、ノードが挿入されていない空き状態であってもよい。以下の説明では、各プラットフォームA10−1〜プラットフォームH10−8を区別する必要がなく、任意のノードを示す場合には、プラットフォーム10と記載する。
【0015】
プラットフォームA10−1は、プラットフォームB10−2〜プラットフォームH10−8を管理して、プラットフォームB10−2〜プラットフォームH10−8に各種処理を実行させるメインの情報処理装置である。
【0016】
プラットフォームB10−2〜プラットフォームH10−8は、プラットフォームA10−1の要求に基づいて、例えばAI(Artificial Intelligence)推論処理や画像処理等を実行するサブの情報処理装置である。
【0017】
また、プラットフォームA10−1〜プラットフォームH10−8は、プロセッサ11−1〜11−8を備える。また、各プロセッサ11−1〜11−8は、それぞれアーキテクチャが異なっていてもよい。また、各プロセッサ11−1〜11−8は、それぞれ異なるメーカから提供されていてもよいし、同一のメーカから提供されていてもよい。以下の説明では、プロセッサ11−1〜11−8を区別する必要がなく、任意のプロセッサを示す場合には、プロセッサ11と記載する。
【0018】
プロセッサ11は、プラットフォーム10全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。また、プロセッサ11は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),GPU(Graphics Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,GPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0019】
プラットフォーム10は、ホスト側として動作可能なルートコンプレックス(RC:Root Complex)としての機能を有する。PCIeブリッジコントローラ30は、中継装置の一例である。PCIeブリッジコントローラ30は、複数のエンドポイント(EP:End Point)を有し、エンドポイントに接続されたルートコンプレックスを有する複数のプラットフォーム10間でのバスを介した通信を中継する。また、PCIeブリッジコントローラ30は、プラットフォーム10と接続されるATU(Address Translation Unit)及びスロット等を含む複数のエンドポイントとしての機能を有する。ルートコンプレックス及びエンドポイントは、例えばPCIeのルートコンプレックス及びエンドポイントであってよい。これにより、データ転送がプラットフォーム10とPCIeブリッジコントローラ30との間で行なわれる。
【0020】
さらに詳しくは、PCIeブリッジコントローラ30は、複数のエンドポイントを有している。また、プラットフォーム10は、PCIeブリッジコントローラ30のエンドポイントに接続されるルートコンプレックスを有している。すなわち、PCIeブリッジコントローラ30が有する複数のエンドポイントのそれぞれには、各プラットフォーム10が有するルートコンプレックスが接続される。そして、PCIeブリッジコントローラ30は、内部に設けられたバスを制御して、エンドポイント間のデータ転送を実行する。このようにして、PCIeブリッジコントローラ30は、プラットフォームA10−1〜プラットフォームH10−8の間での通信を中継してデータ転送を実現する。
【0021】
次に、PCIeブリッジコントローラ30を介した通信におけるアドレス変換について説明する。図2は、実施例1にかかる分散型コンピュータ1のハードウェア構成を説明する図である。
【0022】
PCIeブリッジコントローラ30は、プロセッサ31と、メモリ32と、各プラットフォーム10が接続するスロットごとのATU33−1〜33−8とを備える。
【0023】
プロセッサ31は、PCIeブリッジコントローラ30全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。また、プロセッサ11は、例えばCPU,MPU,GPU,DSP,ASIC,PLD,FPGAのいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,GPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0024】
メモリ32は、ROM(Read Only Memory)、及びRAM(Random Access Memory)を含む記憶装置である。ROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ32に記憶されたプログラム321は、プロセッサ31に読み込まれて実行される。また、RAMは、ワーキングメモリとして利用される。
【0025】
また、プロセッサ31は、メモリ32に記憶されるプログラム321を実行することによって、図2に示す機能を実現する。具体的には、プロセッサ31は、機能として、アドレス空間要求部311、及びアドレス変換設定部312を備える。
【0026】
アドレス空間要求部311は、要求部の一例である。アドレス空間要求部311は、プラットフォーム10ごとに設けられた、プラットフォーム10が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定されるDBI(Data Bus Interface)37−1〜37−8に、アクセスするためのアドレス空間のうち、1のプラットフォーム10のDBI37−1〜37−8にアクセスするためのアドレス空間以下のアドレス空間を要求する。すなわち、アドレス空間要求部311は、各プラットフォーム10が自装置の設定を有するDBI37−1〜37−8にアクセスするためのアドレス空間以下のアドレス空間をBAR(Base Address Register)2として要求する。
【0027】
ここで、公開領域とは、各プラットフォーム10が公開する領域であって、他のプラットフォーム10が書き込みや読み出しを実行可能な領域である。例えば、バッファエリア等のメモリが公開領域に指定される。そして、公開領域は、プラットフォーム10自身によって指定される。アクセス情報とは、プラットフォーム10が指定した公開領域にアクセスさせるための情報である。例えば、アクセス情報とは、公開領域のアドレスであってもよいし、入力されたアドレスを公開領域のアドレスに変換する変換規則であってもよいし、これら以外の情報であってもよい。DBI37−1〜37−8は、各プラットフォーム10の設定が記憶される領域である。以下の説明では、DBI37−1〜37−8を区別する必要がなく、任意のDBIを示す場合には、DBI37と記載する。
【0028】
更に詳しくは、アドレス空間要求部311は、BAR2よりDBI37にアクセスするためのアドレス空間として、プラットフォーム10ごとに設けられたDBI37のうち、1のプラットフォーム10のDBI37にアクセスするためのアドレス空間を要求する。BAR2は、DBI37にアクセスするためのベースアドレスが設定されたレジスタである。すなわち、アドレス空間要求部311は、アドレス空間を制限することで、他のDBI37を指定不可にする。
【0029】
アドレス変換設定部312は、変換規則設定部の一例である。アドレス変換設定部312は、アドレス変換の変換規則をアドレス変換情報36−1〜36−8に設定する。例えば、アドレス変換設定部312は、アドレス空間要求部311が要求したアドレス空間のアドレスと、DBI37のアドレスとが対応付けられた変換規則をアドレス変換情報36−1〜36−8に設定する。
【0030】
ATU33−1〜33−8は、各プラットフォーム10が接続されたスロットごとに設けられている。ATU33−1〜33−8は、各プラットフォーム10から入力されたアドレス、又はプラットフォーム10に出力されたアドレスを変換する。以下の説明では、各ATU33−1〜33−8を区別する必要がなく、任意のATU33−1〜33−8を示す場合には、ATU33と記載する。
【0031】
ATU33は、例えばアドレス変換情報36−1〜36−8等のアドレスの変換規則に基づいてアドレスを変換するレジスタ回路である。また、ATU33は、ASIC,PLD,FPGAのいずれか一つであってもよい。また、ATU33は、ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。さらに、ATU33は、プロセッサ31がメモリ32に記憶されるプログラム321を実行することによって実現される機能部であってもよい。
【0032】
ここで、各プラットフォーム10は、プラットフォーム10間で異なるメモリアドレス空間にアクセスする場合、ベースアドレスが設定されているBAR0を経由してアクセスする。しかしながら、BAR0のアドレス空間の上位bitはスロット番号に割り当てられているため、データの読み書きに使うアドレスは制限されてしまう。そのため、アドレスのbit数制限により上位空間へアクセスできない問題が生じてしまう。そこで、ATU33は、この制限を回避するためにアドレス変換を実行し、各プラットフォーム10の任意のメモリアドレスにアクセスできるようにする。同様に、ATU33は、PCIeブリッジコントローラ30の任意のアドレスにアクセスできるようにする。
【0033】
また、ATU33−1〜ATU33−8は、略同一の構成であるため、ATU33−1を例に説明する。但し、アドレス変換情報36−1〜36−8には、プラットフォームA10−1〜プラットフォームH10−8のそれぞれに応じたアドレス変換規則が設定されている。また、DBI37−1〜DBI37−1には、プラットフォームA10−1〜プラットフォームH10−8のそれぞれに応じた公開領域にアクセスさせるためのアクセス情報が設定されている。
【0034】
ATU33−1は、入力アドレス変換部34−1、出力アドレス変換部35−1、アドレス変換情報36−1、及びDBI37−1を備える。入力アドレス変換部34−1及び出力アドレス変換部35−1は、CPU,MPU,GPU,DSP,ASIC,PLD,FPGA等によって実現されてよい。
【0035】
アドレス変換情報36−1は、プラットフォームA10−1から出力されたアドレスを、PCIeブリッジコントローラ30のアドレス空間におけるアドレスに変換する変換規則が設定されている。さらに、アドレス変換情報36−1は、プラットフォーム10がアクセスすることができない領域としてDBI37−1以外の領域に設けられている変換規則の例とする。すなわち、アドレス変換情報36−1は、プラットフォーム10が書き換えることができない領域に設けられている。
【0036】
DBI37−1は、プラットフォームA10−1〜プラットフォームH10−8のそれぞれに応じた公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域である。
【0037】
入力アドレス変換部34−1は、変換部の一例である。入力アドレス変換部34−1は、アドレス空間要求部311が要求したアドレス空間のアドレスと、DBI37−1のアドレスとが対応付けられたアドレス変換情報36−1であって、プラットフォーム10が書き換えることができない領域に設けられたアドレス変換情報36−1に基づいて、プラットフォームA10−1から入力されたアドレスを変換する。
【0038】
さらに詳しくは、アドレス空間要求部311は、DBI37−1にアクセスするアドレスのアドレス空間をプラットフォームA10−1に要求する。これにより、プラットフォームA10−1は、BAR2において、要求されたアドレス空間のアドレスを、DBI37−1にアクセスするためのアドレスと定義する。但し、プラットフォームA10−1が定義したアドレスは、プラットフォームA10−1のアドレス空間のアドレスである。そこで、入力アドレス変換部34−1は、プラットフォームA10−1のアドレス空間におけるDBI37−1のアドレスが入力された場合に、PCIeブリッジコントローラ30のアドレス空間のDBI37−1のアドレスに変換する。この時、入力アドレス変換部34−1は、アドレスの変換規則が規定されたアドレス変換情報36−1に基づいて、プラットフォームA10−1から入力されたアドレスを変換する。
【0039】
出力アドレス変換部35−1は、DBI37−1に基づいて、PCIeブリッジコントローラ30から出力されるアドレスを、プラットフォーム10のアドレス空間に対応したアドレスに変換する。
【0040】
次に、プラットフォーム10について説明する。また、プラットフォームA10−1〜プラットフォームH10−8は、略同一の構成であるため、プラットフォームA10−1を例に説明する。
【0041】
プラットフォームA10−1は、プロセッサ11−1と、メモリ12−1と、Tx13−1と、Rx14−1とを備える。
【0042】
メモリ12−1は、ROM、及びRAMを含む記憶メモリである。ROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ12−1に記憶されたプログラム121−1は、プロセッサ11−1に読み込まれて実行される。また、RAMは、ワーキングメモリとして利用される。
【0043】
Tx13−1は、アドレスやデータを送信する回路である。Rx13−1は、アドレスやデータを受信する回路である。
【0044】
また、プロセッサ11−1は、メモリ12−1に記憶されるプログラム121−1を実行することによって、図2に示す機能を実現する。具体的には、機能部として、アドレス空間設定部111−1、及び公開領域設定部112−1を備える。
【0045】
アドレス空間設定部111−1は、BAR2のアドレス空間を設定する。更に詳しくは、アドレス空間設定部111−1は、PCIeブリッジコントローラ30の接続を検出した場合に、BAR2として設定可能な最大アドレス空間を示す情報をPCIeブリッジコントローラ30に送信する。PCIeブリッジコントローラ30は、応答として、1のDBI37−1にアクセス可能なアドレス空間以下のアドレス空間を指定する。そこで、アドレス空間設定部111−1は、指定されたアドレス空間をBAR2のアドレス空間として設定する。
【0046】
公開領域設定部112−1は、設定部の一例である。公開領域設定部112−1は、自装置であるプラットフォームA10−1が公開する公開領域にアクセスさせるためのアクセス情報をDBI37−1に設定する。更に詳しくは、公開領域設定部112−1は、公開領域にアクセスさせるためのアクセス情報の設定要求をPCIeブリッジコントローラ30に送信する。PCIeブリッジコントローラ30は、要求されたアクセス情報をDBI37−1に設定する。これにより、公開領域設定部112−1は、公開領域にアクセスさせるためのアクセス情報をDBI37−1に設定する。
【0047】
次に、PCIeブリッジコントローラ30を介した通信におけるアドレス変換について説明する。図3は、プラットフォームA10−1からプラットフォームC10−3への通信に伴うアドレス変換の一例を説明する図である。
【0048】
まず、図3を用いて、DBI37−1に対する書き込みについて説明する。
【0049】
プラットフォームA10−1は、DBI37−1に対して書き込みを実行する場合、BAR2のアドレス空間を指定する。ここで、プラットフォームA10−1のBAR2のアドレス空間は、1のDBI37−1を指定可能なアドレス空間以下になっている。そのため、プラットフォームA10−1は、自装置以外のDBI37−1を指定することができないようになっている。
【0050】
プラットフォームA10−1は、BAR2を指定することで自装置のDBI37−1のアドレスを指定したライト要求をTx13−1から送信する。
【0051】
入力アドレス変換部34−1は、ライト要求を受信した場合に、アドレス変換情報36−1に基づいて、ライト要求のアドレスをPCIeブリッジコントローラ30のアドレス空間のアドレスに変換する。例えば、入力アドレス変換部34−1は、DBI37−1のアドレスに変換する。すなわち、図3の矢印が示すように、入力アドレス変換部34−1は、プラットフォームA10−1のアドレス空間のアドレスを、PCIeブリッジコントローラ30のアドレス空間のアドレスに変換する。
【0052】
アドレス空間要求部311は、入力アドレス変換部34−1が変換後のアドレスに基づいて、ライト要求により要求されたライトデータをDBI37−1に書き込む。
【0053】
次に、図3を用いて、プラットフォーム10のバッファエリア等のメモリ空間上の公開領域に対する書き込みについて説明する。
【0054】
プラットフォームA10−1は、他のプラットフォームB10−2〜プラットフォームH10−8の何れかのバッファエリア等のメモリ空間上の公開領域に書き込みを実行する場合、BAR0における対象のプラットフォーム10のアドレスを指定してライト要求をTx13−1から送信する。
【0055】
入力アドレス変換部34−1は、ライト要求を受信した場合に、アドレス変換情報36−1に基づいて、PCIeブリッジコントローラ30のアドレス空間にライト要求のアドレスを変換する。
【0056】
PCIeブリッジコントローラ30のプロセッサ31は、入力アドレス変換部34−1が変換後のアドレスに基づいて、ライト要求を誘導する。例えば、プロセッサ31は、プラットフォームC10−3に対するライト要求の場合、プラットフォームC10−3に対応したATU33−3にライト要求を誘導する。
【0057】
ATU33−3の出力アドレス変換部35−3は、ライト要求を受信した場合に、DBI37−3に基づいて、プラットフォームC10−3のバッファエリア等のメモリ空間上の公開領域に対応したアドレスにライト要求のアドレスを変換する。すなわち、図3の矢印が示すように、出力アドレス変換部35−3は、PCIeブリッジコントローラ30のアドレス空間のアドレスを、プラットフォームC10−3のアドレス空間のアドレスに変換する。このようにして、分散型コンピュータ1は、プラットフォーム10間での書き込みを実行する。
【0058】
次に、分散型コンピュータ1による設定処理について説明する。図4は、実施例1にかかる設定処理の一例を示すシーケンス図である。なお、図4では、プラットフォームA10−1の場合を例に説明するが、プラットフォームB10−2〜プラットフォームH10−8でも同様の処理を実行する。
【0059】
プラットフォーム10のアドレス空間設定部111−1は、PCIeブリッジコントローラ30が接続されたことを検出する(ステップS1)。
【0060】
アドレス空間設定部111−1は、BAR2として受入可能な最大アドレス空間を示す情報をPCIeブリッジコントローラ30に送信する(ステップS2)。
【0061】
アドレス空間要求部311は、1のDBI37−1を指定可能なアドレス空間をBAR2として設定するように要求する(ステップS3)。
【0062】
アドレス空間設定部111−1は、指定されたアドレス空間をBAR2として設定する(ステップS4)。
【0063】
アドレス変換設定部312は、プラットフォーム10に応じたアドレス変換の変換規則をアドレス変換情報36−1に設定する(ステップS5)。
【0064】
公開領域設定部112−1は、バッファエリア等のメモリ空間上の公開領域にアクセスさせるためのアクセス情報をDBI37−1に設定するように要求する(ステップS6)。
【0065】
アドレス変換設定部312は、指定されたアクセス情報をDBI37−1に設定する(ステップS7)。これにより、出力アドレス変換部35−1は、DBI37−1に基づいてアドレスを変換することで、バッファエリア等の公開領域のアドレスをプラットフォーム10に送信することができる。
【0066】
以上のように、実施例1にかかる分散型コンピュータ1によれば、PCIeブリッジコントローラ30のアドレス空間要求部311は、BAR2のアドレス空間として、1のプラットフォーム10のDBI37−1〜37−8にアクセスするためのアドレス空間以下のアドレス空間を要求する。すなわち、アドレス空間要求部311は、プラットフォーム10が自装置のDBI37−1〜37−8にアクセスすることができるだけのアドレス空間を要求する。ここで、入力アドレス変換部34−1〜34−8は、アドレス変換情報36−1〜36−8に基づいて、アドレスを変換している。そのため、プラットフォーム10は、BAR2のアドレス空間が制限されても、アドレス変換情報36−1〜36−8を書き換えることで、BAR2のアドレス空間のアドレスと、他のプラットフォーム10のDBI37−1〜37−8のアドレスとが対応付けることができてしまう。そこで、アドレス変換情報36−1〜36−8は、プラットフォーム10がアクセスすることができない領域に記憶される。このようにして、PCIeブリッジコントローラ30は、プラットフォーム10が他のプラットフォーム10のDBI37−1〜37−8にアクセスすることが出来なくなるようにしている。よって、PCIeブリッジコントローラ30は、非公開の領域が公開されてしまうことを防止することができる。
【実施例2】
【0067】
実施例1では、DBI37−1〜37−8からアドレス変換情報36−1〜36−8を取り除き、プラットフォーム10がアクセスできない領域にアドレス変換情報36−1〜36−8を記憶させた。これにより、プラットフォーム10によるアドレス変換情報36−1〜36−8の変更を防止すると説明した。実施例2では、実施例1とは異なる方法によりアドレス変換情報36−1〜36−8の変更を防止する。なお、重複する構成要素は、同じ符号を用いて説明する。
【0068】
図5は、実施例2にかかる分散型コンピュータ1aのハードウェア構成を説明する図である。実施例2にかかるATU33−1a〜33−8aでは、アドレス変換情報36−1a〜36−8aは、DBI37−1a〜37−8aに記憶されている。すなわち、DBI37−1a〜37−8aには、変換規則の一例であるアドレス変換情報36−1a〜36−8aが設定されている設定領域の例とする。
【0069】
ここで、実施例1に係るアドレス空間要求部311は、1のプラットフォーム10のDBI37−1〜37−8を指定可能なアドレス空間以下のアドレス空間を要求していた。実施例2に係るアドレス空間要求部311aは、1のプラットフォーム10のDBI37−1〜37−8を指定可能なアドレス空間以下であって、アドレス変換情報36−1a〜36−8aが設定されている領域を除いたアドレス空間を要求する。すなわち、アドレス空間要求部311aは、アドレス変換情報36−1a〜36−8aを除いた残りの領域を指定可能なアドレス空間を要求する。
【0070】
そのため、プラットフォームA10−1のアドレス空間設定部111−1は、BAR2のアドレス空間として、1のプラットフォーム10のDBI37−1〜37−8を指定可能なアドレス空間以下であって、且つアドレス変換情報36−1aが設定されている領域を除いたアドレス空間を設定する。これにより、アドレス空間要求部311aは、他のプラットフォーム10のDBI37−2a〜37−8aだけでなく、アドレス変換情報36−1aも隠蔽することができる。
【0071】
以上のように、実施例2にかかるアドレス空間要求部311aは、他のプラットフォーム10のDBI37−2a〜37−8aだけでなく、アドレス変換情報36−1aも隠蔽する。よって、PCIeブリッジコントローラ30は、非公開の領域が公開されてしまうことを防止することができる。
【0072】
上述の実施形態では、各部のバス(例えば、拡張バス)又はI/OインタフェースとしてPCIeを例に挙げて説明したが、バスまたはI/OインタフェースはPCIeに限定されない。例えば、各部のバスまたはI/Oインタフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステム又は1つの装置)で高速にデータを転送できる汎用のバスであってもよい。I/Oインタフェースは、パラレルインタフェース及びシリアルインタフェースの何れであってもよい。
【0073】
I/Oインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。なお、I/Oインタフェースは、シリアル転送の場合、複数のレーンを有してよい。I/Oインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、I/Oインタフェースは、階層の最上位であり1又は複数のポートを有するルートコンプレックス、I/Oデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。I/Oインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【符号の説明】
【0074】
1 分散型コンピュータ
10 プラットフォーム
10−1 プラットフォームA
10−2 プラットフォームB
10−3 プラットフォームC
10−4 プラットフォームD
10−5 プラットフォームE
10−6 プラットフォームF
10−7 プラットフォームG
10−8 プラットフォームH
30 PCIeブリッジコントローラ
33、33−1〜33−8 ATU
34−1〜34−8 入力アドレス変換部
35−1〜35−8 出力アドレス変換部
36−1〜36−8 アドレス変換情報
37−1〜37−8 DBI
111−1〜111−8 アドレス空間設定部
112−1〜112−8 公開領域設定部
311 アドレス空間要求部
312 アドレス変換設定部
【要約】
【課題】非公開の領域が公開されてしまうことを防止する。
【解決手段】中継装置は、複数のエンドポイントを有し、エンドポイントに接続されたルートコンプレックスを有する複数の情報処理装置間でのバスを介した通信を中継する中継装置であって、要求部と、変換部と、を備える。要求部は、情報処理装置ごとに設けられた、情報処理装置が公開するメモリ空間上の公開領域にアクセスさせるためのアクセス情報を含む情報が設定される設定領域に、アクセスするためのアドレス空間のうち、1の情報処理装置の設定領域にアクセスするためのアドレス空間以下のアドレス空間を要求する。変換部は、要求部が要求したアドレス空間のアドレスと、設定領域のアドレスとが対応付けられた変換規則であって、情報処理装置が書き換えることができない領域に設けられた当該変換規則に基づいて、情報処理装置から入力されたアドレスを変換する。
【選択図】図2
図1
図2
図3
図4
図5