JP6700564B1 - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
JP6700564B1
JP6700564B1 JP2018248670A JP2018248670A JP6700564B1 JP 6700564 B1 JP6700564 B1 JP 6700564B1 JP 2018248670 A JP2018248670 A JP 2018248670A JP 2018248670 A JP2018248670 A JP 2018248670A JP 6700564 B1 JP6700564 B1 JP 6700564B1
Authority
JP
Japan
Prior art keywords
information processing
data
platform
common memory
relay device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018248670A
Other languages
English (en)
Other versions
JP2020109555A (ja
Inventor
木村 真敏
真敏 木村
智弘 石田
智弘 石田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Client Computing Ltd
Original Assignee
Fujitsu Client Computing Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Client Computing Ltd filed Critical Fujitsu Client Computing Ltd
Priority to JP2018248670A priority Critical patent/JP6700564B1/ja
Priority to GB1918766.5A priority patent/GB2584929A/en
Priority to US16/727,398 priority patent/US10942793B2/en
Priority to CN201911362645.9A priority patent/CN111382098B/zh
Application granted granted Critical
Publication of JP6700564B1 publication Critical patent/JP6700564B1/ja
Publication of JP2020109555A publication Critical patent/JP2020109555A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Abstract

【課題】様々なオペレーティングシステムを搭載した計算機を複数接続しつつ、情報処理システムをスケーラブルに構築する。【解決手段】情報処理システムは、情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の情報処理装置を一体の情報処理装置として通信を行う制御部を有する。【選択図】図3

Description

本発明は、情報処理システムに関する。
複数の計算機(演算装置)を用いて並列計算を行なう手法が知られており、例えば、イーサネット(登録商標)回線を用いて計算機間でデータのやりとりを行う情報処理システムが提案されている。
このような構成において、いずれか一つの計算機をホストとして機能させ、他の計算機をデバイスとして機能させ、データをやり取りする構成が提案されている。
特開2005−275818号公報 特開2004−086330号公報
しかしながら、いずれか一つの計算機をホストとして機能させ、他の計算機をデバイスとして機能させ、データをやり取りする構成においては、ホストとして機能する計算機が動作不良状態となると、情報処理システム全体が動作できない状態に陥る虞があった。またデバイスの数が増加すると比例してホストとして機能する計算機の負荷が増大することとなる。さらに、従来のデバイスは機能や性能が固定化されているため、機能拡張を行う場合等においては、デバイスを追加したり、デバイスを変更する必要があり、デバイスドライバもそれに応じて追加、変更する必要があるため、情報処理システムのスケーラブルな構築が容易ではなかった。
ここで、情報処理システムのスケーラブルな構築とは、機能拡張等を行う場合に、ホストとして機能する計算機側としては、デバイスドライバを介した制御負担の増加、デバイスドライバの変更、デバイスドライバの追加等を伴うことなく既に備えているデバイスドライバを介して制御しているデバイスの機能や性能を可変できるように情報処理システムを構築できるということである。
あるいは、上述した一つのデバイスに接続されている複数の計算機における分散処理、並列処理などの変更が容易で、例えば、入力データを変更せずに出力データの処理(例えば、解析処理)を変更して異なる解析結果を容易に得ることができるように情報処理システムを構築することである。
そこで、本発明は、様々なオペレーティングシステムを搭載した計算機を複数接続しつつ、情報処理システムをスケーラブルに構築することが可能な情報処理システムを提供することを目的としている。
上記課題を解決するため、本発明の第1態様にかかる情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有し、各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、自己の前記共通メモリ領域のうち他の情報処理装置に対応する前記共通メモリ領域を用いて、当該他の情報処理装置に対するデータの読み出し及び書き込みを指示し、前記複数の情報処理装置のいずれか一つは、前記中継装置を介して前記読み出し及び前記書き込みの指示の通知がなされると、自己の前記共通メモリ領域のうち前記中継装置により論理的に接続された前記指示の通知に対応する他の情報処理装置に対応する前記共通メモリ領域を用いて、前記指示の通知に対応する他の情報処理装置との間で前記指示に対応するデータの読み出し及び書き込みを行前記制御部は、一の前記情報処理装置の前記共通メモリ領域のうち、読み出し及び書き出しが指示されたデータが格納されるアドレスに基づいてデータ転送対象として特定された、他の情報処理装置の前記共通メモリ領域に、当該データの読み出し及び書き込みを行う
また、前記中継装置は、一の前記情報処理装置の前記共通メモリ領域に対するデータ書込アドレスに基づいて、通信対象の他の前記情報処理装置を特定して、前記データ書込アドレスに書き込まれたデータを前記他の前記情報処理装置の前記共通メモリ領域に書き込む、ようにしてもよい。
また、前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行うようにしてもよい。
また、前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクするようにしてもよい。
本発明の上記態様によれば、中継装置の制御部は、いずれか一つの情報処理装置に対して、他の全ての情報処理装置を代表して通信を行うので、いずれかの情報処理装置に通信負荷が掛かることもなく、新たに情報処理装置を追加したり、各情報処理装置の処理内容を変更したりすることが容易となり、様々なオペレーティングシステムを搭載した計算機を複数接続しつつ、情報処理システムをスケーラブルに構築することができる。
図1は、プラットホームのソフトウェア構成例の説明図である。 図2は、他のプラットホームが一つのプラットホームからどのように見えるのかを説明する図である。 図3は、各プラットホームにおける共通メモリの構成説明図である。 図4は、データ書込動作の説明図である。 図5は、データ書込動作のタイミングチャートである。 図6は、データ読出動作の説明図である。 図7は、データ読出動作のタイミングチャートである。
以下、図面を参照して本情報処理システムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
[1]実施形態
以下の説明においては、拡張バスの一例としてPCIe(PCI Express)[登録商標]を用いる場合について説明する。
図1は、プラットホームのソフトウェア構成例の説明図である。
プラットホーム12−1〜プラットホーム12−7に備えられるMPUは、互いに違うベンダによって提供されるものであってもよい。
プラットホーム12−1は、アプリケーション30−1の制御下で各種処理を行う。
プラットホーム12−1には、ブートローダ(Boot loader)を起動するバイオス(BIOS:Basic Input Output System)34が組み込まれており、ブートローダによりOS33−1(例えば、Windows[登録商標])を検出し、起動する。
これによりOS33−1は、PCIeブリッジコントローラ23を制御するためのブリッジドライバ32を含む各種ドライバ31を読み込んで、ブリッジドライバ32及びPCプラットホーム37−2を介して電気的にPCIeブリッジコントローラ23にアクセスして他のプラットホーム12−2〜12−7との通信を行い、実際の処理を行う。なお、ここでは、PCプラットホーム37−2を用いる場合について説明しているが、これに限定されるものではなく他のプラットホームであっても適用が可能である。
次にプラットホーム12−2〜12−7について説明する。
プラットホーム12−2〜12−7は、同様の構成であるので、プラットホーム12−2を例として説明する。
プラットホーム12−2は、アプリケーション30−2の制御下で各種処理を行う。
プラットホーム12−2には、ブートローダ(Boot loader)36−2が組み込まれており、ブートローダによりOS33−2(例えば、Linux;登録商標)を検出し、起動する。
これによりOS33−2は、PCIeブリッジコントローラ23を制御するためのブリッジドライバ32を読み込んで、ブリッジドライバ32及びハードウェアプラットホーム37−2を介して電気的にPCIeブリッジコントローラ23にアクセスして他のプラットホーム12−1、12−3〜12−7との通信を行い、実際の処理を行う。
また、上記構成において、プラットホーム12−1〜12−7は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。
図2は、他のプラットホームが一つのプラットホームからどのように見えるのかを説明する図である。
ここでは、一例として一つのプラットホームとしてプラットホーム12−1あるいはプラットホーム12−6であり、当該プラットホームから他のプラットホームがどのように見えるのかを説明する図である。
図2(a)は、プラットホーム12−1がPCIeブリッジコントローラ23を介して他のプラットホーム12−2〜12−7と通信を行う場合の説明図である。
この場合においては、プラットホーム12−1からは、PCIeブリッジコントローラ23のみが見え、プラットホーム12−2〜12−7は、PCIeブリッジコントローラ23によりマスクされた状態であり存在していないのと同様な状態となっている。
したがって、プラットホーム12−1は、ルートコンプレックスとして機能し、プラットホーム12−2〜12−7に対して通信を行う際には、見かけ上、唯一のエンドポイントであるPCIeブリッジコントローラ23に対する通信を行っているように動作している。
一方、プラットホーム12−6からは、PCIeブリッジコントローラ23のみが見え、プラットホーム12−1〜12−5及びプラットホーム12−7は、PCIeブリッジコントローラ23によりマスクされた状態であり存在していないのと同様な状態となっている。
したがって、プラットホーム12−6は、ルートコンプレックスとして機能し、プラットホーム12−1〜12−5及びプラットホーム12−7に対して通信を行う際には、見かけ上、唯一のエンドポイントであるPCIeブリッジコントローラ23に対する通信を行っているように動作している。
さらにプラットホーム12−1〜12−5及びプラットホーム12−7も同様である。
したがって、全てのプラットホーム12−1〜12−7は、デバイスドライバを介して制御する一つのデバイスであるPCIeブリッジコントローラ23のみが見えており、PCIeブリッジコントローラ23を介して接続された他のプラットホームについては、マスクされた状態(見えない状態)こととなっており、いずれかのプラットホームからは、PCIeブリッジコントローラ23及び他の全てのプラットホームは、一つの情報処理装置と認識される(みなされる)ため、他のいずれかのプラットホームあるいは複数のプラットホームにより実現される機能や性能を変更したとしても、デバイスドライバの変更を伴うことなく処理を継続でき、全体として、スケーラブルな情報処理システムを構築することが可能となっている。
また、いずれか一のプラットホーム(例えば、プラットホーム12−1)が情報処理システム10全体の管理を行う場合であっても、PCIeブリッジコントローラ23を介してアプリケーション等を予め転送して、一つのデバイスであるPCIeブリッジコントローラ23に接続されている複数の計算機であるプラットホーム12−2〜12−7における処理内容、処理順番を割り当てることができ、分散処理、並列処理などの処理内容や、処理割当の変更が容易となる。したがって、例えば、入力データを変更せずに処理(例えば、解析処理)を変更して異なる解析結果としての出力データを容易に得ることができるようにスケーラブルな情報処理システム10を構築することが可能となっている。
図3は、各プラットホームにおける共通メモリの構成説明図である。
プラットホーム12−1〜12−7は、同一構成の共通メモリCM1〜CM7を備えている。
共通メモリCM1〜CM7は、それぞれ、第1領域Slot#0〜第7領域Slot#0を備えている。
共通メモリCM1における第1領域Slot#0は、プラットホーム12−1が他のプラットホーム12−2〜12−7から受信すべきデータが書き込まれる領域であり、第2領域Slot#1は、プラットホーム12−1がプラットホーム12−2に対して送信すべきデータ(アプリケーションも含む)を書き込む領域である。同様に、第3領域Slot#2〜第7領域Slot#6は、それぞれプラットホーム12−1がプラットホーム12−4〜12−7に送信すべきデータを書き込む領域である。
また、共通メモリCM2における第2領域Slot#1は、プラットホーム12−2が他のプラットホーム12−1、12−3〜12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0、第3領域Slot#2〜第7領域Slot#6は、それぞれプラットホーム12−2が他のプラットホーム12−1、12−3〜12−7に送信すべきデータを書き込む領域である。
また、共通メモリCM3における第3領域Slot#2は、プラットホーム12−3が他のプラットホーム12−1、12−2、12−4〜12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0、第2領域Slot#1、第4領域Slot#3〜第7領域Slot#6は、それぞれプラットホーム12−3が他のプラットホーム12−1、12−2、12−4〜12−7に送信すべきデータを書き込む領域である。
また、共通メモリCM4における第4領域Slot#3は、プラットホーム12−4が他のプラットホーム12−1〜12−3、12−5〜12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0〜第3領域Slot#2、第5領域Slot#4〜第7領域Slot#6は、それぞれプラットホーム12−4が他のプラットホーム12−1〜12−3、12−5〜12−7に送信すべきデータを書き込む領域である。
また、共通メモリCM5における第5領域Slot#4は、プラットホーム12−5が他のプラットホーム12−1〜12−4、12−6、12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0〜第4領域Slot#3、第6領域Slot#5、第7領域Slot#6は、それぞれプラットホーム12−5が他のプラットホーム12−1〜12−3、12−6、12−7に送信すべきデータを書き込む領域である。
また、共通メモリCM6における第6領域Slot#5は、プラットホーム12−6が他のプラットホーム12−1〜12−5、12−7から受信すべきデータが書き込まれる領域であり、第1領域Slot#0〜第5領域Slot#4、第7領域Slot#6は、それぞれプラットホーム12−6が他のプラットホーム12−1〜12−5、12−7に送信すべきデータを書き込む領域である。
また、共通メモリCM7における第7領域Slot#6は、プラットホーム12−7が他のプラットホーム12−1〜12−6から受信すべきデータが書き込まれる領域であり、第1領域Slot#0〜第6領域Slot#5は、それぞれプラットホーム12−7が他のプラットホーム12−1〜12−6に送信すべきデータを書き込む領域である。
上記構成においては、いずれかのプラットホームが他のプラットホームに送信すべきデータを対応する領域の所定のアドレスに書き込んだ場合には、データを書き込んだ領域のアドレスがデバイスドライバを介してブリッジコントローラ23に通知される。
ブリッジコントローラ23は、通知された領域のアドレスから、書き込まれたデータの転送先のプラットホームの共通メモリを判別して、対応する領域のアドレス(=送信元のプラットホームが書き込んだ領域のアドレスと同じアドレス)に転送し、書き込むこととなる。
例えば、プラットホーム12−1が指定した処理対象データに対し、プラットホーム12−2が演算処理を行い、演算結果をプラットホーム12−1に返す場合には、以下のようになる。
プラットホーム12−1は、処理対象データを共通メモリCM1の第2領域Slot#1の所定のアドレスに書き込む。
これによりプラットホーム12−1のデバイスドライバは、共通メモリCM1の第2領域Slot#1の所定のアドレスに対応するアドレス情報をPCIeブリッジコントローラ23に通知する。
ブリッジコントローラ23は、アドレス情報を解析し、プラットホーム12−2のデバイスドライバを介して処理対象データを共通メモリCM2の第2領域Slot#1の対応するアドレスに書き込む。
これにより、プラットホーム12−2は、当該処理対象データを共通メモリCM2の第2領域Slot#1から読み出し、読み出した処理対象データに対して演算処理を行い、演算結果を、共通メモリCM2の第1領域Slot#0の所定のアドレスに書き込む。
これによりプラットホーム12−2のデバイスドライバは、共通メモリCM2の第1領域Slot#0の所定のアドレスに対応するアドレス情報をPCIeブリッジコントローラ23に通知する。
ブリッジコントローラ23は、アドレス情報を解析し、プラットホーム12−1のデバイスドライバを介して処理対象データを共通メモリCM1の第1領域Slot#0の対応するアドレスに書き込む。
これらの結果、プラットホーム12−1は、演算処理結果を共通メモリCM1の第1領域Slot#0の対応するアドレスから読み出すことで、受信することとなる。
次により具体的な動作を説明する。
まずは、データの書込動作について説明する。
ここでは、一例としてプラットホーム12−1がプラットホーム12−6に対してデータを書き込む場合の動作を説明する。
図4は、データ書込動作の説明図である。
また、図5は、データ書込動作のタイミングチャートである。
図4に示すように、プラットホーム12−1及びプラットホーム12−6は、それぞれアプリケーション(図中、アプリと表記)、ブリッジコントローラ用デバイスドライバ(図中、ドライバと表記)、オペレーティングシステム(OS)およびプロセッサを備えており、エンドポイント(EP)としてのPCIeブリッジコントローラ23に対して、それぞれルートコンプレックス(RC)として一対一に接続されていると認識している。
この場合において、図5に示すように、プラットホーム12−1は、PCIeブリッジコントローラ23に対して物理的な第1スロットSlot#0を介してルートコンプレックスとしてリンクが確立した状態で接続されており(ステップS11)、プラットホーム12−6は、PCIeブリッジコントローラ23に対して物理的な第6スロットSlot#5を介してルートコンプレックスとしてリンクが確立した状態で接続されているものとする(ステップS12)。
この状態においてプラットホーム12−1は、プラットホーム12−6にデータを書き込むための共通メモリCM1の所定の書込アドレス(対象アドレス)を取得する(ステップS13)。
これにより、プラットホーム12−1は、共通メモリCM1の所定の対象アドレスにデータを書き込む(ステップS14)。
続いて、プラットホーム12−1は、データ送信先の物理スロットを判定し(ステップS15)、PCIeブリッジコントローラ23に対してデータ(アドレスデータ)を送信する(ステップS16)。
この結果、PCIeブリッジコントローラ23は、アドレスデータを解析して、データ書込先を判定する(ステップS17)。
本例においては、データ送信先が、プラットホーム12−6であると判定される。
そして、PCIeブリッジコントローラ23は、プラットホーム12−1が接続されている第1スロットSlot#0と、プラットホーム12−6が接続されている第6スロットSlot#5に対応する第領域Slot#と第6領域Slot#5とを論理的に接続する(ステップS17)。
この結果、共通メモリCM1の第1領域Slot#0の対象アドレスのデータが、共通メモリCM6の第6領域Slot#5の対象アドレスに転送され、書き込まれることとなる。
続いて、プラットホーム12−1は、PCIeバスのメモリトランザクションとしての割込であるMSI(Message Signaled Interrupt)をPCIeブリッジコントローラ23を介して、プラットホーム12−6に通知する(ステップS18)。
この結果、プラットホーム12−6は、共通メモリCM6にデータが書き込まれたことを知ることとなり、プラットホーム12−6のアプリケーションは、共通メモリCM6の第6領域Slot#5からデータを読み出し、所定の演算処理を施すこととなる。
次に、データの読出動作について説明する。
ここでは、一例としてプラットホーム12−1がプラットホーム12−6からデータを読み出す場合の動作を説明する。
図6は、データ読出動作の説明図である。
また、図7は、データ読出動作のタイミングチャートである。
図6においても、図4の場合と同様に、プラットホーム12−1及びプラットホーム12−6は、それぞれアプリケーション(図中、アプリと表記)、ブリッジコントローラ用デバイスドライバ(図中、ドライバと表記)、オペレーティングシステム(OS)およびプロセッサを備えており、エンドポイント(EP)としてのPCIeブリッジコントローラ23に対して、それぞれルートコンプレックス(RC)として一対一に接続されていると認識している。
この場合において、図7に示すように、プラットホーム12−1は、PCIeブリッジコントローラ23に対して物理的な第1スロットSlot#0を介してルートコンプレックスとしてリンクが確立した状態で接続されており(ステップS21)、プラットホーム12−6は、PCIeブリッジコントローラ23に対して物理的な第6スロットSlot#5を介してルートコンプレックスとしてリンクが確立した状態で接続されているものとする(ステップS22)。
この状態においてプラットホーム12−1は、プラットホーム12−6からデータを読み出すための読出アドレス(対象アドレス)データを準備する(ステップS23)。
これにより、プラットホーム12−1は、共通メモリCM1の所定の対象アドレスに読出アドレスデータを書き込む(ステップS24)。
続いて、プラットホーム12−1は、データ送信先の物理スロットを判定し(ステップS25)、PCIeブリッジコントローラ23に対して読出アドレスデータを送信する(ステップS26)。
この結果、PCIeブリッジコントローラ23は、読出アドレスデータを解析して、データ読出先を判定する(ステップS27)。
本例においては、データ読出先が、プラットホーム12−6であると判定される。
この結果、PCIeブリッジコントローラ23は、プラットホーム12−1が接続されている第1スロットSlot#0と、プラットホーム12−6が接続されている第6スロットSlot#5に対応する第6領域Slot#5と第6領域Slot#5とを論理的に接続する(ステップS28)。
続いて、プラットホーム12−1は、PCIeバスのメモリトランザクションとしての割込であるMSI(Message Signaled Interrupt)をPCIeブリッジコントローラ23を介して、プラットホーム12−6に通知する(ステップS29)。
この結果、割込がなされたプラットホーム12−6は、データ解析を行い(ステップS30)、データの読出が要求されていることを知ることとなり、プラットホーム12−6のアプリケーションは、自己のメモリの対象アドレスからデータを読み出し、プラットホーム12−1に指定された共通メモリCM6の第1領域Slot#1のアドレスに読み出したデータを書き込むとともに、PCIeブリッジコントローラにその旨を通知することとなる(ステップS40)。
これにより、PCIeブリッジコントローラ23は、データ送信先を判定し(ステップS41)、プラットホーム12−1が接続されている第1スロットSlot#0と、プラットホーム12−6が接続されている第6スロットSlot#5に対応する第1領域Slot#0を論理的に接続する(ステップS28)。
これにより、プラットホーム12−1は、指定した第1領域Slot#0の読出アドレスからデータを読み出して、トラップする(ステップS43)。
続いてプラットホーム12−1は、読み出したデータを、自己の物理メモリにシャドーイングする(ステップS44)。
続いて、PCIeブリッジコントローラ23にデータ読出を行った旨を通知し、ひいては、プラットホーム12−6にその旨を通知し、処理を終了する(ステップS45)。
以上の説明のように、本実施形態によれば、各プラットホーム12−1〜プラットホーム12−7は、エンドポイントとして機能するPCIeブリッジコントローラ23に対して共通メモリCM1〜CM7を介して、実効的にデータの書き込みあるいはデータの読み出しを指示するだけで、他のプラットホームを意識することなく、データの読み出し及び書き込みが行える。
以上の説明は、通常の処理データの書き込み及び読み出しの場合を例としていたが、例えば、プラットホーム12−1が統括的な機能を有し、他のプラットホーム12−2〜12−7に対してアプリケーションをインストールするような場合でも同様に適用が可能である。
すなわち、アプリケーションをインストールする側のプラットホームは、他のプラットホームの存在を認識している状態であれば、データの読み出し及び書き込みに関しては、デバイスドライバを介して制御する一つのデバイスであPCIeブリッジコントローラ23に対して共通メモリCM1〜CM7を介して、データの書き込みあるいはデータの読み出しを指示するだけでよいので、実効的に全てのプラットホーム12−1〜12−7は、他のいずれかのプラットホームあるいは複数のプラットホームにより実現される機能や性能を変更したとしても、デバイスドライバの変更を伴うことなく処理を継続でき、全体として、スケーラブルな情報処理システムを構築することが容易となっている。
また、例えば、いずれか一のプラットホーム(例えば、プラットホーム12−1)が他の一又は複数のプラットホーム(例えば、プラットホーム12−2〜12−7)、ひいては、情報処理システム10全体の管理を行う場合であっても、PCIeブリッジコントローラ23に対してのみ指示を行うだけで、他の所望のプラットホームに対して予めアプリケーション等を転送して、当該他のプラットホームにおける処理内容、処理順番を割り当てることができ、他のプラットホームに行わせる分散処理、並列処理などの処理内容や、処理割当の変更が容易となる。
したがって、例えば、処理を行わせるべき他のプラットホームにおける入力データ(管理側からの出力データ)を変更せずに出力データの処理(例えば、解析処理)を変更して異なる解析結果を容易に得ることができるようにスケーラブルな情報処理システム10を構築することができる。
[2]その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、図1に示した構成においては、PCIeブリッジコントローラ23には、7つのプラットホーム12−1〜12−7を、接続可能としていたが、これに限定されるものではなくPCIeブリッジコントローラ23は6個以下もしくは8個以上の複数のプラットホームを備えるようにすることも可能である。
また、上述の実施形態では、各部のI/OインターフェースとしてPCIe(PCIエクスプレス)を例に挙げて説明したが、I/Oインターフェースとしては、PCIeに限定されるものではない。
例えば、各部のI/Oインターフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。
また、データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステムまたは1つの装置)で高速にデータを転送できる汎用のバスであってよい。
また、I/Oインターフェースは、パラレルインターフェース及びシリアルインターフェースのいずれであってもよい。
また、I/Oインターフェースは、シリアル転送の場合、ポイント・ツー・ポイント(point to point)接続ができ、データをパケットベースで転送可能であればよい。
また、I/Oインターフェースは、シリアル転送の場合、複数のレーンを有するようにしてもよい。
また、I/Oインターフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層と、を有していてもよい。
また、I/Oインターフェースは、階層の最上位であり1または複数のポートを有するルートコンプレックス、I/Oデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでいてもよい。
また、I/Oインターフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信するようにしてもよい。この場合には、受信側は、デマルチプレクサでデータとクロック信号を分離すればよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
[3]実施形態の他の態様
以上の実施形態に関し、さらに他の態様について記載する。
[3.1]第1の他の態様
実施形態の第1の他の態様の情報処理システムは、それぞれがプロセッサを備えた複数の情報処理装置と、拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間の通信を中継する中継装置と、を備え、中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記通信を行う制御部を有する、情報処理システムである。
上記構成によれば、中継装置の制御部は、いずれか一つの前記情報処理装置に対して、他の全ての情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として通信を行うこととなるので、いずれか一つの情報処理装置は、中継装置及び他の情報処理装置を一つの情報処理装置として認識し(みなす)ため、他のいずれかの情報処理装置あるいは複数の情報処理装置により実現される機能や性能を変更したとしても、制御対象が同一であるとして処理を継続でき、全体として、スケーラブルな情報処理システムを構築することができる。
[3.2]第2の他の態様
実施形態の第2の他の態様の情報処理システムにおいては、各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、前記共通メモリ領域を介して、他の前記情報処理装置に対するデータの読み出し及び書き込みの指示を前記中継装置に対して行う第1の他の態様に記載の情報処理システムである。
上記構成によれば、中継装置は、共通メモリ領域を参照すればデータの読み出し及び書き込みの処理を行えるので、情報処理システム全体として実現される機能や性能を変更したとしても、制御対象が同一であるとして処理が行え、全体として、スケーラブルな情報処理システムを構築することができる。
[3.3]第3の他の態様
実施形態の第3の他の態様の情報処理システムにおいては、前記中継装置は、前記指示により任意の二つの情報処理装置間においてデータの読み出し及び書き込みを行う第2の他の態様に記載の情報処理システムである。
上記構成によれば、情報処理システムがスケーラブルに変化しても、中継装置は、二つの情報処理装置間において行うデータの読み出し及び書き込みを行うだけであり、情報処理装置側からは同一のデバイスである中継装置に対して読み出し及び書き込みを行うだけであるので、処理手順が簡略化され、情報処理システムのスケーラブルな構築に容易に対応することができる。
[3.4]第4の他の態様
実施形態の第4の他の態様の情報処理システムにおいては、前記中継装置は、一の前記情報処理装置の前記共通メモリ領域に対するデータ書込アドレスに基づいて、通信対象の他の前記情報処理装置を特定して、前記データ書込アドレスに書き込まれたデータを前記他の前記情報処理装置の前記共通メモリ領域に書き込む、第2の他の態様又は第3の他の態様に記載の情報処理システムである。
上記構成によれば、中継装置は、共通メモリ領域に対するデータのやり取りを行うだけで通信が可能となるので、情報処理システム全体としての機能や性能を変更したり、情報処理装置数が増加したりしても容易に対応して、システムのスケーラブルな構築を行える。
[3.5]第5の他の態様
実施形態の第5の他の態様の情報処理システムにおいては、前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行う、第1の他の態様乃至第4の他の態様のいずれかに記載の情報処理システムである。
上記構成によれば、情報処理装置を増加しようとする場合であっても中継装置に対するデバイスドライバを作成するだけで中継装置を介して他の情報処理装置と通信可能に接続することができ、あるいは、情報処理システム全体としての機能や性能を変更したりした場合であっても、各情報処理装置としては同じデバイスドライバで制御を行う点に変更はなく、容易にシステムのスケーラブルな構築を行える。
[3.6]第6の他の態様
実施形態の第6の他の態様の情報処理システムにおいては、前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクする、第1の他の態様乃至第5の他の態様のいずれかに記載の情報処理システムである。
上記構成によれば、いずれの情報処理装置も中継装置との通信を行うだけで、他の情報処理装置と対等に通信を行うことができ、報処理システム全体としての機能や性能を変更したりしても、通信手順は同様であり、容易にシステムのスケーラブルな構築を行える。
10 情報処理システム
11 ブリッジボード
12−1 プラットホーム(ルートコンプレックス)
12−2〜12−7 プラットホーム(エンドポイント)
21 電源ユニット
22 DC−DCコンバータ
23 PCIeブリッジコントローラ(制御部)

Claims (4)

  1. それぞれがプロセッサを備えた複数の情報処理装置と、
    拡張バスを介して前記複数の情報処理装置を接続可能で、前記複数の情報処理装置の間のデータ転送を中継する中継装置と、を備え、
    前記中継装置は、いずれか一つの前記情報処理装置に対して、他の全ての前記情報処理装置を代表し、当該中継装置及び他の前記情報処理装置を一体の情報処理装置として前記データ転送を行う制御部を有し、
    各前記情報処理装置は、前記複数の前記情報処理装置のそれぞれに対応する複数の記憶領域を有する共通メモリ領域を有し、自己の前記共通メモリ領域のうち他の情報処理装置に対応する前記共通メモリ領域を用いて、当該他の情報処理装置に対するデータの読み出し及び書き込みを指示し、
    前記複数の情報処理装置のいずれか一つは、前記中継装置を介して前記読み出し及び前記書き込みの指示の通知がなされると、自己の前記共通メモリ領域のうち前記中継装置により論理的に接続された前記指示の通知に対応する他の情報処理装置に対応する前記共通メモリ領域を用いて、前記指示の通知に対応する他の情報処理装置との間で前記指示に対応するデータの読み出し及び書き込みを行
    前記制御部は、一の前記情報処理装置の前記共通メモリ領域のうち、読み出し及び書き出しが指示されたデータが格納されるアドレスに基づいてデータ転送対象として特定された、他の情報処理装置の前記共通メモリ領域に、当該データの読み出し及び書き込みを行う、
    情報処理システム。
  2. 前記制御部は、前記一の前記情報処理装置の前記共通メモリ領域に対するデータの読み出し及び書き込みアドレスに基づいて、データ転送対象の前記他の前記情報処理装置を特定して、前記データの読み込みアドレス及び書き込みアドレスに読み込み及び書き込みされたデータを前記他の前記情報処理装置の前記共通メモリ領域に読み込み及び書き込む、
    請求項1記載の情報処理システム。
  3. 前記情報処理装置は、前記中継装置に対するデバイスドライバを介して前記中継装置とのデータのやり取りを行う、
    請求項1又は請求項2記載の情報処理システム。
  4. 前記複数の情報処理装置は、前記中継装置に対してルートコンプレックスとして機能し、
    前記中継装置は、前記情報処理装置に対してエンドポイントとして機能するとともに、一の前記情報処理装置に対して他の全ての情報処理装置をマスクする、
    請求項1乃至請求項3のいずれか一項に記載の情報処理システム。
JP2018248670A 2018-12-28 2018-12-28 情報処理システム Active JP6700564B1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018248670A JP6700564B1 (ja) 2018-12-28 2018-12-28 情報処理システム
GB1918766.5A GB2584929A (en) 2018-12-28 2019-12-18 Information processing system
US16/727,398 US10942793B2 (en) 2018-12-28 2019-12-26 Information processing system
CN201911362645.9A CN111382098B (zh) 2018-12-28 2019-12-26 信息处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018248670A JP6700564B1 (ja) 2018-12-28 2018-12-28 情報処理システム

Publications (2)

Publication Number Publication Date
JP6700564B1 true JP6700564B1 (ja) 2020-05-27
JP2020109555A JP2020109555A (ja) 2020-07-16

Family

ID=69186790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018248670A Active JP6700564B1 (ja) 2018-12-28 2018-12-28 情報処理システム

Country Status (4)

Country Link
US (1) US10942793B2 (ja)
JP (1) JP6700564B1 (ja)
CN (1) CN111382098B (ja)
GB (1) GB2584929A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11386026B1 (en) 2021-02-09 2022-07-12 Microsoft Technology Licensing, Llc Shell PCIe bridge and shared-link-interface services in a PCIe system

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086330A (ja) 2002-08-23 2004-03-18 Toshiba Corp 電子機器
JP4501484B2 (ja) 2004-03-25 2010-07-14 株式会社明電舎 電子機器装置のシャットダウン方法
JP5017785B2 (ja) * 2005-03-18 2012-09-05 富士通株式会社 情報処理装置、高速起動方法、及びプログラム
US7707465B2 (en) * 2006-01-26 2010-04-27 International Business Machines Corporation Routing of shared I/O fabric error messages in a multi-host environment to a master control root node
US7743197B2 (en) * 2006-05-11 2010-06-22 Emulex Design & Manufacturing Corporation System and method for virtualizing PCIe devices
WO2008018485A1 (fr) * 2006-08-09 2008-02-14 Nec Corporation Commutateur pour une interconnexion, et système
JP4638398B2 (ja) * 2006-08-11 2011-02-23 ブラザー工業株式会社 通信装置及びプログラム
CN101625625B (zh) * 2008-07-11 2011-11-30 鸿富锦精密工业(深圳)有限公司 信号中继装置及利用该装置访问外部存储器的方法
US8006014B2 (en) * 2008-08-14 2011-08-23 Via Technologies, Inc. PCI-Express data link transmitter employing a plurality of dynamically selectable data transmission priority rules
US8463934B2 (en) * 2009-11-05 2013-06-11 Rj Intellectual Properties, Llc Unified system area network and switch
US8539134B2 (en) * 2010-02-15 2013-09-17 International Business Machines Corporation PCI express multiplier device
JP5803408B2 (ja) 2011-08-11 2015-11-04 富士通株式会社 通信方法及び情報処理システム
JP5903801B2 (ja) * 2011-08-23 2016-04-13 富士通株式会社 通信装置およびid設定方法
JP5573829B2 (ja) * 2011-12-20 2014-08-20 富士通株式会社 情報処理装置およびメモリアクセス方法
JP5590022B2 (ja) * 2011-12-28 2014-09-17 富士通株式会社 情報処理装置、制御方法および制御プログラム
US8806098B1 (en) * 2013-03-15 2014-08-12 Avalanche Technology, Inc. Multi root shared peripheral component interconnect express (PCIe) end point
WO2014184935A1 (ja) * 2013-05-16 2014-11-20 三菱電機株式会社 バス中継装置
US9135200B2 (en) * 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
US9336173B1 (en) * 2013-12-20 2016-05-10 Microsemi Storage Solutions (U.S.), Inc. Method and switch for transferring transactions between switch domains
KR101894230B1 (ko) * 2013-12-23 2018-09-04 인텔 코포레이션 통합된 컴포넌트 인터커넥트
CN106796529B (zh) * 2014-10-03 2020-04-21 华为技术有限公司 通过利用商品型PCI交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来使用PCIe设备资源的方法
JP6380084B2 (ja) * 2014-12-19 2018-08-29 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
KR102595233B1 (ko) * 2016-03-24 2023-10-30 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작 방법
JP2018112895A (ja) * 2017-01-11 2018-07-19 キヤノン株式会社 情報処理装置、その制御方法、プログラム、及び情報処理システム

Also Published As

Publication number Publication date
JP2020109555A (ja) 2020-07-16
CN111382098A (zh) 2020-07-07
CN111382098B (zh) 2024-02-23
GB201918766D0 (en) 2020-01-29
GB2584929A (en) 2020-12-23
US10942793B2 (en) 2021-03-09
US20200210254A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
CN100405352C (zh) 通过串行总线互连多个处理节点的装置及方法
JP3782994B2 (ja) コンピュータ・バス・アーキテクチャ
US20050229022A1 (en) Data mirror cluster system, method and computer program for synchronizing data in data mirror cluster system
JP2011028650A (ja) 情報処理装置
JP2006302250A (ja) PCI−Express通信システム
KR20140078161A (ko) Pci 익스프레스 스위치 및 이를 이용한 컴퓨터 시스템
JP2006244416A (ja) マスターノード及びスレーブノードを有する電子装置システム
JP6700564B1 (ja) 情報処理システム
JP2009282917A (ja) サーバ間通信機構及びコンピュータシステム
JP4404493B2 (ja) 計算機システム
JP4404023B2 (ja) データ転送制御装置及び電子機器
TW202111555A (zh) 處理器/端點通信耦合件組態系統
JP5058890B2 (ja) バス制御装置
JP4442523B2 (ja) データ転送制御装置及び電子機器
JP2020177341A (ja) 情報処理システムおよび中継装置
KR100602204B1 (ko) 메인 제어부와 부 제어부로 구성된 제어 시스템 및 버스연결 방법
JP6573046B1 (ja) 情報処理装置、情報処理システムおよび情報処理プログラム
JP2007316755A (ja) PCI−Express通信システム
JP6597925B1 (ja) 情報処理システム
JP2007213411A (ja) バスブリッジ装置
JP6841876B2 (ja) プロセッサモジュールのフレキシブル接続
JP7093036B2 (ja) 情報処理システム
JP2007508620A (ja) マルチマスタ共用資源システム中で使用するための通信ステアリング
JP2014146216A (ja) F/wアップデート方法
JP4337783B2 (ja) データ転送制御装置及び電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190313

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190322

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200331

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200413

R150 Certificate of patent or registration of utility model

Ref document number: 6700564

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250