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

情報処理システム Download PDF

Info

Publication number
JP6928280B2
JP6928280B2 JP2019224093A JP2019224093A JP6928280B2 JP 6928280 B2 JP6928280 B2 JP 6928280B2 JP 2019224093 A JP2019224093 A JP 2019224093A JP 2019224093 A JP2019224093 A JP 2019224093A JP 6928280 B2 JP6928280 B2 JP 6928280B2
Authority
JP
Japan
Prior art keywords
platform
processor
destination
data
platforms
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
JP2019224093A
Other languages
English (en)
Other versions
JP2020053089A (ja
JP2020053089A5 (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
Publication of JP2020053089A publication Critical patent/JP2020053089A/ja
Publication of JP2020053089A5 publication Critical patent/JP2020053089A5/ja
Application granted granted Critical
Publication of JP6928280B2 publication Critical patent/JP6928280B2/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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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

Description

本発明は、報処理システムに関する。
複数の計算機(演算装置)を用いて並列計算を行なう手法が知られており、例えば、イーサネット(登録商標)回線を用いて計算機間でデータのやりとりをすることが行なわれている。
特開2008−41027号公報 特表2012−504835号公報
しかしながら、イーサネット回線を用いた通信においては、その通信速度がボトルネックとなる場合がある。
1つの側面では、本発明は、複数のプロセッサ間における高速通信を実現することを目的とする。
このため、この情報処理システムは、複数のプラットフォームと、複数のエンドポイントを有し、複数のプラットフォームのそれぞれと通信可能に接続され、PCIe(Peripheral Component Interconnect Express)バスを用いて、複数のプラットフォーム間の通信を中継する中継装置と、を備え、複数のプラットフォームのうち、ルートコンプレックスとして動作する送信元のプラットフォームは、複数のエンドポイントのうち、当該送信元のプラットフォームと接続された送信元のエンドポイントに、送信データを送信し、送信元のエンドポイントは、複数のエンドポイントのうち、送信先のプラットフォームに接続された送信先のエンドポイントに、送信データをトンネリングさせて、当該送信先のプラットフォームに対応する通信バッファに格納し、複数のプラットフォームのうち、ルートコンプレックスとして動作する送信先のプラットフォームは、送信先のエンドポイントの通信バッファに格納された送信データを読み出す
一実施形態によれば、複数のプロセッサ間における高速通信を実現することができる。
各種プラットフォームにおけるPCIeバスを用いた接続構成を例示する図である。 各種プラットフォームにおけるPCIeバスを用いた接続構成を例示する図である。 各種プラットフォームにおけるPCIeバスを用いた接続構成を例示する図である。 実施形態の一例としての情報処理システムにおける複数のプラットフォームの接続構成を模式的に示す図である。 実施形態の一例としての情報処理システムにおけるプラットフォームのソフトウェア構成を例示する図である。 実施形態の一例としての情報処理システムにおけるPCIeブリッジコントローラのハードウェア構成を模式的に示す図である。 実施形態の一例としてのPCIeのレイヤ構成を示す図である。 実施形態の一例としての情報処理システムにおける一のプロセッサからの他のプロセッサの見え方を例示する図である。 実施形態の一例としての情報処理システムにおける一のプロセッサからの他のプロセッサの見え方を例示する図である。 実施形態の一例としての情報処理システムにおけるPCIeブリッジコントローラを介したプロセッサ間のデータ転送方法を説明するための図である。 実施形態の一例としての情報処理システムにおけるPCIeブリッジコントローラを介したプロセッサ間のデータ転送方法を説明するための図である。
以下、図面を参照して本中継装置および情報処理システムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)PCIeバスを用いた通信について
例えば、PCをベースにしたAI推論処理・画像処理などの負荷が高い演算を実行するために、PCのデバイスとして利用可能なGPUやFPGAといったプロセッサ(演算プロセッサ)を用いることが考えられる。なお、PCはPersonal Computerの略称であり、AIはArtificial Intelligenceの略称である。GPUはGraphics Processing Unitの略称であり、FPGAはField Programmable Gate Arrayの略称である。
また、上述のプロセッサをPCのデバイスとして動作させるためには、OS(Operating System)上に特定のハードウェアを動作させるデバイスドライバを組み込む必要がある。OSには、Windows(登録商標)やLinux(登録商標)等があり、それぞれのOSの要件に合わせてデバイスドライバを作り込む等の作業が必要である。特にWindowsの場合、OSのバージョンによってドライバ要件等が異なっており、デバイスドライバの開発ノウハウが必要とされていた。そのため、どれだけ性能が高いプロセッサであってもWindows向けデバイスドライバの開発ノウハウを持ち合わせていない場合、PCのデバイスとして利用できないという制限が生じる。
PCにおいてデバイスを接続するためのインタフェースとして、大容量のデータを高速に転送可能なPCIeインタフェースが知られている。PCIeにおいては、インテルプロセッサ等のプロセッサがホスト側として動作可能なRC(Root Complex)となり、デバイスがEP(End Point)となり、ホストとデバイスとの間でのデータ転送が行なわれる。
図1〜図3はそれぞれ各種プラットフォームにおけるPCIeバスを用いた接続構成を例示する図である。
例えば、PCプラットフォームにはインテル社製x86互換プロセッサが搭載されており、WindowsやLinux等の汎用OSが動作する。
図1においては、PCIe搭載のPCプラットフォームにおいてRCとEPとが1対1接続する構成を例示する。この図1に例示する手法においては、PCプラットフォーム側がRCとなり、各デバイスをEPとして接続する。この図1中において、各デバイスに用いられるコントローラはそれぞれ別のメーカ(A社〜H社)により提供される。
各デバイスはPCプラットフォーム上のOSに各デバイス用のデバイスドライバを組み込むことで利用可能となるため、各デバイスを独立して動作させることはできない。また、PCプラットフォームに動作不良が生じると全デバイスが動作停止する。
デバイスドライバは各ハードウェアおよびOSに合わせた開発が必要となるため、OSを変更する場合は適宜ドライバ開発を行なわなければならない。
図2においては、PCIeスイッチコントローラを介して、1つのRCに対して複数のEPを接続する構成を例示する。この図2に例示する手法においても、PCプラットフォーム側がRCとなり、各デバイスをEPとして接続する。
この図2に例示するようなPCIeスイッチコントローラは、1つのRCに対して複数のEPを接続するに際して、接続するデバイスの数に対してRCが不足している場合に用いられる。この方法を採ると1つのRCの帯域を、4つのEPで共用するため性能が低下する。
しかしながら、デバイスを駆動する手法は上述のRCとEPとを1対1で接続する場合と同様となるため、デバイス単独で動作させることはできない。Intel x86プラットフォーム上のOSに各デバイス用のデバイスドライバを組み込むことで利用可能となる。
図3においては、2つのPCプラットフォーム(Unit A,Unit B)をインターコネクトを介して相互接続する構成を例示している。
この図3に例示する手法においても、PCプラットフォーム側がRCとなり、各デバイスをEPとして接続する。
各デバイスはPCプラットフォーム上のOSに各デバイス用のデバイスドライバを組み込むことで利用可能となる。
この図3に例示するように、OSが動作するプラットフォーム(プロセッサ)をインターコネクトやイーサネット等で接続することで、複数のプロセッサを同期駆動することができる。
ただし、接続する各プラットフォームは同一OSが動作している必要があったり、同一の接続手法をサポートしている必要があるため、この図3に例示する構成は、異なる任意のプラットフォームの接続には適さない。
例えば、図3中のUnit AがUnit Bに接続されたE社デバイスに処理を行なわせる場合、Unit Aのプロセッサからインターコネクト経由でUnit Bのプロセッサに処理を渡し、Unit BのプロセッサがE社デバイスに処理を行なわせることになる。
インターコネクトで接続されたプラットフォーム間では、各プロセッサが他のユニットに接続されたデバイスに対して処理を発行することが可能である。しかしながら、必ずデバイスが接続されたプロセッサを介して処理が行なわれることになり、受側のプロセッサの負荷も高くなる。
以上、図1〜図3を用いて示したように、複数のプロセッサ間の通信に、従来手法のPCIe通信をそのまま適用するだけでは、OSに各デバイス用のデバイスドライバが不可欠であり、その開発コストおよび維持コストが生じることとなる。
本情報処理システムにおいては、複数のプロセッサをPCIeバスを介して相互に接続してプロセッサ間通信を実現するとともに、各プロセッサに他のプロセッサのRCとなるためのドライバを不要とする構成を提供する。
(B)構成
図4は実施形態の一例としての情報処理システム1における複数のプラットフォームの接続構成を模式的に示す図である。
図4に例示する情報処理システム1においては、PCIeブリッジコントローラ3および複数(図4に示す例では8つ)のプラットフォーム2−1〜2−8を備える。各プラットフォーム2−1〜2−8は、それぞれPCIeブリッジコントローラ3に接続されている。
なお、以下、プラットフォームを示す符号としては、複数のプラットフォームのうち1つを特定する必要があるときには符号2−1〜2−8を用いるが、任意のプラットフォームを指すときには符号2を用いる。プラットフォーム2はPCプラットフォーム2といってもよい。
[プラットフォーム]
プラットフォーム2−1はプロセッサ21−1を備える。同様に、プラットフォーム2−2〜2−8はプロセッサ21−2〜21−8をそれぞれ備える。
プロセッサ21−1〜21−8はそれぞれ違うメーカ(ベンダ)から提供されてもよい。例えば、プロセッサ21−1,21−2,21−3,21−4,21−5,21−6,21−7,21−8は、それぞれ、A社,B社,C社,D社,E社,F社,G社,H社が提供するものであるとする。
また、以下、プロセッサ21−1,21−2,21−3,21−4,21−5,21−6,21−7,21−8を、それぞれプロセッサA,B,C,D,E,F,G,Hという場合がある。また、PCIeブリッジコントローラ3に搭載されているEPに対して、それぞれ異なるプラットフォームを接続しても良い。さらに、2つ以上の複数のEPを1つのプラットフォームに接続し、プラットフォーム側が複数のRCを用いてPCIeブリッジコントローラ3と通信しても良い。
なお、以下、プロセッサを示す符号としては、複数のプロセッサのうち1つを特定する必要があるときには符号21−1〜21−8もしくは符号A〜H等を用いるが、任意のプロセッサを指すときには符号21を用いる。
プラットフォーム2−1〜2−8は、AI推論処理や画像処理等の演算処理を行なうコンピュータ環境であり、プロセッサ21や図10に示すストレージ23およびメモリ(物理メモリ)22を備える。
プラットフォーム2においては、プロセッサ21がメモリ22やストレージ23に格納されたプログラムを実行することで各種機能を実現する。
ストレージ23は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive)、ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。
メモリ22はROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ22のROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ22上のソフトウェアプログラムは、プロセッサ21に適宜読み込まれて実行される。また、メモリ22のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
プロセッサ21は、プラットフォーム2全体を制御する。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、例えばCPU(Central Processing Unit),MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサ21は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
図5は実施形態の一例としての情報処理システム1におけるプラットフォーム2のソフトウェア構成を例示する図である。
なお、図5中においては、便宜上、プラットフォーム2−1〜2−3のソフトウェア構成のみを図示する。
この図5に例示する情報処理システム1において、プラットフォーム2−1はWindowsをOSとし、このOS上において店舗管理プログラムが実行される。プラットフォーム2−2,2−3はそれぞれLinuxをOSとし、このOS上において分散処理プログラム(分散処理A,B)が実行される。
各プラットフォーム2には、ブリッジドライバ20が備えられており、プラットフォーム2は、このブリッジドライバ20を介してPCIeブリッジコントローラ3および他のプラットフォーム2との間で通信を行なう。なお、ブリッジドライバ20による通信方法については後述する。
各プラットフォーム2においては、プロセッサ21およびメモリ(物理メモリ)22を備え、プロセッサ21がメモリ22に格納されたOSや各種プログラム,ドライバ等を実行することでそれぞれの機能を実現する。
各プラットフォーム2に備えられるプロセッサ21は、互いに違うベンダによって提供されるものであってもよい。図4に示す例においては、少なくとも一部のプラットフォーム2(例えば、プラットフォーム2−7)に複数のRCを有するプラットフォーム(例えば、Intel社のx86プロセッサ)が用いられてもよい。
また、各プラットフォーム2は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。
プラットフォーム2において、メモリ22の記憶領域の一部は、図10を用いて後述する如く、プラットフォーム2間(プロセッサ21間)において転送されるデータが一時的に格納される通信バッファ221として用いられる。
PCIeブリッジコントローラ3は、複数のプラットフォーム2−1〜2−7間におけるデータ等の通信を実現する。
図6は実施形態の一例としての情報処理システム1におけるPCIeブリッジコントローラ3のハードウェア構成を模式的に示す図である。
PCIeブリッジコントローラ3は、例えば、8チャネルのEPを1チップ内に有する中継装置である。このPCIeブリッジコントローラ3は、図6に示すように、CPU31,メモリ32,インターコネクト33および複数(図6に示す例では8つ)のスロット34−1〜348を備える。
スロット34−1〜34−8にはそれぞれPCIeの規格を満たすよう構成されたデバイスが接続される。特に、本情報処理システム1においては、スロット34−1〜34−8のそれぞれにプラットフォーム2が接続される。
なお、以下、スロットを示す符号としては、複数のスロットのうち1つを特定する必要があるときには符号34−1〜34−8を用いるが、任意のスロットを指すときには符号34を用いる。
なお、図4中のプラットフォーム2−1〜2−6のように、一つのスロット34に対して一つのプロセッサ21が接続されてもよく、図4中のプラットフォーム2−7のように、複数(図4の例では2つ)のスロット34に対して一つのプラットフォーム2が接続されてもよく、種々変形して実施することができる。
図4中のプラットフォーム2−7のように、一つのプラットフォーム2に対して複数のスロット34をアサインすることで、このプラットフォーム2−7に広い通信帯域を用いた通信を行なわせることができる。
各スロット34は内部バス(Internal Bus)を介してインターコネクト33にそれぞれ接続されている。また、インターコネクト33にはCPU31およびメモリ32が接続されている。これにより、各スロット34とCPU31およびメモリ32はインターコネクト33を介して相互に通信可能に接続されている。
メモリ32は、例えば、ROMおよびRAMを含む記憶メモリ(物理メモリ)である。メモリ32のROMには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ32上のソフトウェアプログラムは、CPU31に適宜読み込まれて実行される。また、メモリ32のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
さらに、PCIeブリッジコントローラ3においては、各スロットに対応させてレジスタ35(図10参照)が備えられ、このレジスタ35のBAR(Base Address Register)空間には、スロット毎に記憶領域が備えられる。すなわち、レジスタ35のBAR空間にはスロット#0〜#7のそれぞれに対応する記憶領域が設けられている。
PCIeブリッジコントローラ3においては、後述の如く、BAR空間のスロット毎の記憶領域を用いてプラットフォーム2間のデータ転送を行なう。
CPU31は、PCIeブリッジコントローラ3全体を制御する。CPU31は、マルチプロセッサであってもよい。なお、CPU31に代えてMPU,DSP,ASIC,PLD,FPGAのいずれか一つが用いられてもよい。また、CPU31は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
そして、CPU31がメモリ32に格納されたソフトウェアプログラムを実行することで、PCIeブリッジコントローラ3におけるプラットフォーム2間(プロセッサ21間)のデータ転送を実現する。
PCIeブリッジコントローラ3は、プラットフォーム2間のデータ転送を高速化するためにPCIeを用い、図4に示すように、各プラットフォーム2に備えられるプロセッサをそれぞれRCとして動作させ、デバイスとして動作するEP間でデータ転送を実現する。
具体的には、本情報処理システム1においては、各プラットフォーム2のプロセッサを、データ転送インタフェースとしてPCIeのRCとして動作させる。また、各プラットフォーム2(プロセッサ21)に対して、PCIeブリッジコントローラ3を、すなわち、各プラットフォーム2が接続されているスロット34をEPとして動作させる。
PCIeブリッジコントローラ3をプロセッサ21に対してEPとして接続する手法としては、既知の種々の手法を用いて実現することができる。
例えば、PCIeブリッジコントローラ3は、プラットフォーム2との接続時に、EPとして機能することを示す信号を当該プロセッサ21に通知することで、EPとしてプロセッサ21と接続する。
PCIeブリッジコントローラ3においては EPtoEP(End Point to End Point)でデータをトンネリングさせて、複数のRCにデータを転送する。プロセッサ間の通信は、PCIeのトランザクションが発生したときに論理的に接続され、1つのプロセッサにデータ転送が集中しないときは、それぞれのプロセッサ間で並行してデータ転送できる。
図7は実施形態の一例としてのPCIeのレイヤ構成を示す図である。
この図7においては、プラットフォーム2−1のプロセッサAとプラットフォーム2−2のプロセッサBとの間で通信を行なう例を示す。
送信元のプラットフォーム2−1においては、RCであるプロセッサAにおいて生成されたデータが、ソフトウェア,トランザクション層,データリンク層および物理層(PHY)を、順次、転送され、物理層においてPCIeブリッジコントローラ3の物理層に転送される。
PCIeブリッジコントローラ3においては、物理層,データリンク層,トランザクション層およびソフトウェアを順次、転送され、送信先のプラットフォーム2のRCに対応するEPにトンネリングによりデータが転送される。
すなわち、PCIeブリッジコントローラ3においては、EP間でデータをトンネリングさせることで、一のRC(プロセッサ21)から他のRC(プロセッサ21)にデータが転送される。
送信先のプラットフォーム2−2においては、PCIeブリッジコントローラ3から転送されたデータが、物理層(PHY),データリンク層,トランザクション層およびソフトウェアを、順次、転送され、送信先のプラットフォーム2−2のプロセッサBに転送される。
本情報処理システム1において、プロセッサ21間(プラットフォーム2間)の通信は、PCIeのトランザクションが発生したときに論理的に接続される。
PCIeブリッジコントローラ3が有する8スロットのうちの一つに接続された特定のプロセッサ21に対して複数の他のプロセッサ21からのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ21間で並行してデータ転送してもよい。
例えば、プラットフォーム2−1のプロセッサAに対して、プラットフォーム2−2のプロセッサBおよびプラットフォーム2−3のプロセッサCのそれぞれが通信しようとする場合には、PCIeブリッジコントローラ3は、プロセッサB,Cの通信をシリアルに処理する。
ただし、プロセッサA−プロセッサB,プロセッサC−プロセッサD,プロセッサE−プロセッサFのように、それぞれが異なるプロセッサ同士で通信し、特定のプロセッサに通信が集中しない場合には、PCIeブリッジコントローラ3は、各プロセッサ21間通信を並行して処理する。
図8は実施形態の一例としての情報処理システム1におけるプロセッサ21−8(プロセッサH)からの他のプロセッサ21の見え方を例示する図であり、図9はプロセッサ21−5(プロセッサE)からの他のプロセッサ21の見え方を例示する図である。
各プロセッサ21間で通信が行なわれている状態においても、各プロセッサ21上のOS(例えばWindowsのデバイスマネージャ)からは、PCIeブリッジコントローラ3しか見えず、接続先の他のプロセッサ21を直接管理する必要がない。すなわち、PCIeブリッジコントローラ3のデバイスドライバでPCIeブリッジコントローラ3の先に接続されたプロセッサ21を管理すれば良い。
そのため、送信元、受信先それぞれのプロセッサ21を動作させるためのデバイスドライバを準備する必要がなく、PCIeブリッジコントローラ3のドライバでPCIeブリッジコントローラ3に対して通信処理を行なうだけでプロセッサ21間の通信を行なうことができる。
(C)動作
上述の如く構成された実施形態の一例としての情報処理システム1におけるPCIeブリッジコントローラ3を介したプロセッサ21間のデータ転送方法を、図10を用いて説明する。
この図10に示す例においては、スロット#0に接続されたプラットフォーム2−1からスロット#4に接続されたプラットフォーム2−5にデータを転送する場合について説明する。
データ送信元のプラットフォーム2−1において、ソフトウェア等によって送信されるデータ(以下、送信データという場合がある)が、プラットフォーム2−1に備えられるストレージ23から通信バッファ221にロードされる(符号P1参照)。
ソフトウェアから、通信バッファ221における送信データが格納された領域の位置情報(例えば、Offset/Length)と、送信先の情報(例えば、Slot/Offset)が指定され、ブリッジドライバ20に受け渡される(符号P2参照)。
送信元EPにおいて、ブリッジドライバ20は、BAR空間のスロット#4のアドレスに転送データを渡す(符号P3)。これにより、PCIeブリッジコントローラ3において、EPtoEPにより送信元ポートから送信先のプラットフォーム2に対応するスロット(送信先スロット)に転送データが送信される(符号P4参照)。送信先スロットにおいては、レジスタ35のBAR空間のスロット#4に対応する記憶領域に転送データが格納される。
送信先スロットにおいて、例えばブリッジドライバ20が、レジスタ35のBAR空間のスロット#4に対応する記憶領域から転送データを通信バッファ221に転送し、転送データは、この通信バッファ221においてoffsetによって特定される所定の領域に格納される(符号P5参照)。
送信先プラットフォーム2において、例えば、プログラムが、通信バッファ221に格納された転送データを読み出して、メモリ(ローカルメモリ)22やストレージ23に移動させる(符号P6,P7参照)。
以上のようにして、転送元のプラットフォーム2−1から転送先のプラットフォーム2−5にデータ(転送データ)が転送される。
次に、図11を用いて、情報処理システム1におけるPCIeブリッジコントローラ3を介したプラットフォーム2間のデータ転送方法を説明する。図11は、本実施形態にかかる情報処理システム1におけるPCIeブリッジコントローラ3を介したプロセッサ間のデータ転送方法の一例を説明するための図である。
この図11に示す例においては、スロット#0に接続されたプラットフォーム2−1からスロット#4に接続されたプラットフォーム2−5にデータを転送する場合について説明する。
送信元のプラットフォーム2−1は、ソフトウェア等によって送信されるデータ(以下、送信データという)を、プラットフォーム2−1に備えられるストレージ23等からプラットフォーム2−1のメモリ領域36に格納する(ステップS701)。メモリ領域36は、転送されるデータが一時的に格納される通信バッファの一部であっても良い。メモリ領域36は、プラットフォーム2のそれぞれに、メモリ22等と同じ大きさで設けられた領域である。メモリ領域36は、スロット305の数に応じて分割されている。メモリ領域36の分割された記憶領域は、いずれかのスロット305に対応付けられている。例えば、メモリ領域36内のSlot♯0で示す記憶領域は、Slot♯0に接続されたプラットフォーム2−1に対応付けられ、メモリ領域36内にSlot♯4で示す記憶領域は、Slot♯4に接続されたプラットフォーム2−5に対応付けられている。プラットフォーム2−1は、メモリ領域36のうち、送信先のスロット305に割り当てられた領域(ここでは、Slot♯4)に送信データを格納する。
ルートコンプレックスとしての機能を有する送信元のプラットフォーム2−1は、プラットフォーム2のメモリ領域36の記憶領域に基づいて、送信先のスロット305を示すスロット情報と、送信先のメモリ領域36における分割領域内におけるアドレスを示すアドレス情報とを取得または生成する(ステップS702)。
送信元のプラットフォーム2−1は、スロット情報と、アドレス情報と、送信データとを含む転送データを複数のエンドポイントの機能を有するPCIeブリッジコントローラ3に渡す(ステップS703)。これにより、PCIeブリッジコントローラ3は、スロット情報に基づいてEPtoEPにより送信元のスロット305と送信先のスロット305とを接続することにより、転送データを送信先のプラットフォーム2−4に転送する(ステップS704)。送信先のプラットフォーム2は、スロット情報およびアドレス情報に基づいて、送信先のプラットフォーム2のメモリ領域36のSlot♯4に対応する記憶領域内のアドレス情報が示す領域に送信データ(または転送データ)を格納する(ステップS705)。
送信先のプラットフォーム2−5において、プログラムが、メモリ領域36に格納された送信データを読み出して、メモリ(ローカルメモリ)22の他の領域やストレージ23に移動させる(ステップS706、ステップS707)。
以上のようにして、送信元のプラットフォーム2−1から送信先のプラットフォーム2−5にデータ(転送データ)が転送される。
(D)効果
このように、実施形態の一例としての情報処理システム1においては、PCIeブリッジコントローラ3において、当該PCIeブリッジコントローラ3内のEP間でデータ転送を媒介する。これにより、PCIeブリッジコントローラ3に接続された複数のRC(プロセッサ21)間でのデータ転送を実現することができる。
すなわち、各プロセッサ21をPCIeのRCとして独立動作させ、PCIeブリッジコントローラ3において、それぞれのプロセッサ21に接続するデバイスをEPとして接続し、E間でデータ転送を行なう。これにより、デバイスドライバに起因する問題を回避し、高速データ転送を1つのシステムとして動作させることができる。
また、PCIeの規格に適合したデータ通信機能を有してさえいれば異なるプロセッサ21間でのデータ転送が可能となるため、デバイスドライバの有無や、サポートOS等を気にすることなく使用するプロセッサ21の選択肢を広げることが可能となる。
各プロセッサ21はEPとなるPCIeブリッジコントローラ3を介して接続されるため、EPの先のRCのデバイスドライバを追加する必要がない。従って、デバイスドライバの開発が不要であるとともに、デバイスドライバを追加することに起因する不具合が発生することもない。
図1に示した如く、インテル等のプロセッサを使った従来のPCIe接続構成システムでは、PCIeにデバイスを追加するような状態では、RCに対してEPを接続する形態となる。この場合、それぞれのEPに対応したデバイスドライバを組み込む必要があり、適用したデバイスドライバが要因となり装置全体の動作が不安定になる場合がある。また、そもそもデバイスドライバが用意されておらず、デバイスを利用できないことや、演算プロセッサを制御するためにCPU負荷率が上がり処理が遅延するという問題もある。
これは、図2に示すように、PCIeのスイッチコントローラを用いてEPの数を増やしても同様である。
また、図3に示すように、CPU負荷を分散しPCIeのデバイスを制御する方法として、CPU同士を直接接続インターコネクトを用いることも考えられる。しかしながら、この図3に例示する接続形態で使用するためには、各CPUが同一のインターコネクトに対応している必要がある。従って、接続するCPUの種類が限定されることになり汎用性が低く、プロセッサの選択肢が狭くなる。
一方、本情報処理システム1においては、ARMプロセッサやFPGA等の一般的なプロセッサはRCとして動作することが求められるため、本情報処理システム1のプロセッサ21として容易に追加することができる。
PCIeブリッジコントローラ3においては、PCIeでの接続(通信)がされるので、イーサネットでは実現できない高速転送を実現することができる。また、4K,8K等の高精細映像のプロセッサ間送受信、大規模なビッグデータの並列計算等も行なうことができる。
また、画像処理やデータ検索等の各機能に特化した専用プロセッサを接続することもできるので、安価に機能追加、性能向上を行なうことができる。
さらに、本情報処理システム1においては、システムの仮想化等を行なう必要もなく、システムの仮想化を行なうことで生じるシステム性能の低下が生じることもない。従って、本情報処理システム1を、AI推論や画像処理といった高負荷な演算を用途とするシステムに適用することもできる。
(E)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、図6に示す構成においては、PCIeブリッジコントローラ3は8つのスロット34−1〜34−8を有しているが、これに限定されるものではなく種々変形して実施することができる。すなわち、PCIeブリッジコントローラ3は7つ以下もしくは9つ以上のスロット34をそなえてもよい。
また、上述した実施形態においては、PCIeを用いた通信システムについて示したが、これに限定されるものではなく、PCIe以外の通信規格での通信に適用してもよい。
上述の実施形態では、各部のI/OのインタフェースとしてPCIeを例に挙げて説明したが、インタフェースはPCIeに限定されない。例えば、各部のインタフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステムまたは1つの装置)で高速にデータを転送できる汎用のバスであってよい。インタフェースは、パラレルインターフェース及びシリアルインターフェースのいずれであってもよい。
I/Oインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。尚、I/Oインタフェースは、シリアル転送の場合、複数のレーンを有してよい。I/Oインタフェースのレイヤ構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、I/Oインタフェースは、階層の最上位であり1または複数のポートを有するルートコンプレックス、I/Oデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。インタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(F)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のプロセッサのそれぞれと通信可能に接続され、PCIe(Peripheral Component Interconnect Express)バスを用いて、前記複数のプロセッサ間の通信を中継する中継装置であって、
複数のエンドポイントを備え、
前記複数のプロセッサのうちルートコンプレックスとして動作する第1のプロセッサから、前記複数のエンドポイントのうち第1のエンドポイントを介して受信したデータを、前記複数のエンドポイントのうち第2のエンドポイントを介して、前記複数のプロセッサのうちルートコンプレックスとして動作する第2のプロセッサに送信する
ことを特徴とする、中継装置。
(付記2)
前記複数のエンドポイントのそれぞれに対応する複数の中継記憶装置を備え、
送信元である前記第1のエンドポイントに対応して備えられた前記中継記憶装置において、前記複数のエンドポイント毎に形成された記憶領域のうち、送信先である第2のエンドポイントに対して設けられた第1の記憶領域にデータが格納されると、当該データを、送信先である前記第2のエンドポイントに対応して備えられた前記中継記憶装置の送信先である第2のエンドポイントに対して設けられた第1の記憶領域にデータを格納することで、複数のエンドポイント間のデータ転送を行なう
ことを特徴とする、付記1記載の中継装置。
(付記3)
複数のプロセッサと、
前記複数のプロセッサのそれぞれと通信可能に接続され、PCIe(Peripheral Component Interconnect Express)バスを用いて、前記複数のプロセッサ間の通信を中継する中継装置とを備え、
前記中継装置が、
複数のエンドポイントを備え、
前記複数のプロセッサのうちルートコンプレックスとして動作する第1のプロセッサから、前記複数のエンドポイントのうち第1のエンドポイントを介して受信したデータを、前記複数のエンドポイントのうち第2のエンドポイントを介して、前記複数のプロセッサのうちルートコンプレックスとして動作する第2のプロセッサに送信する
ことを特徴とする、情報処理システム。
(付記4)
前記中継装置が、
前記複数のエンドポイントのそれぞれに対応する複数の中継記憶装置を備え、
送信元である前記第1のエンドポイントに対応して備えられた前記中継記憶装置において、前記複数のエンドポイント毎に形成された記憶領域のうち、送信先である第2のエンドポイントに対して設けられた第1の記憶領域にデータが格納されると、当該データを、送信先である前記第2のエンドポイントに対応して備えられた前記中継記憶装置の送信先である第2のエンドポイントに対して設けられた第1の記憶領域にデータを格納することで、複数のエンドポイント間のデータ転送を行なう
ことを特徴とする、付記3記載の情報処理システム。
1 情報処理システム
2−1〜2−8,2 プラットフォーム
3 PCIeブリッジコントローラ
21−1〜21−8,21 プロセッサ
22 メモリ
221 通信バッファ
23 ストレージ
31 CPU
32 メモリ
33 インターコネクト
34−1〜34−8,34 スロット
35 レジスタ

Claims (2)

  1. 複数のプラットフォームと、
    複数のエンドポイントを有し、前記複数のプラットフォームのそれぞれと通信可能に接続され、PCIe(Peripheral Component Interconnect Express)バスを用いて、前記複数のプラットフォーム間の通信を中継する中継装置と、を備え、
    前記複数のプラットフォームのうち、ルートコンプレックスとして動作する送信元のプラットフォームは、前記複数のエンドポイントのうち、当該送信元のプラットフォームと接続された送信元のエンドポイントに、送信データを送信し、
    前記送信元のエンドポイントは、前記複数のエンドポイントのうち、送信先のプラットフォームに接続された送信先のエンドポイントに、前記送信データをトンネリングさせて、当該送信先のプラットフォームに対応する通信バッファに格納し、
    前記複数のプラットフォームのうち、ルートコンプレックスとして動作する前記送信先のプラットフォームは、前記送信先のエンドポイントの前記通信バッファに格納された前記送信データを読み出
    前記複数のプラットフォームの各々は、前記複数のエンドポイントのそれぞれに対応付けられた記憶領域を含む物理メモリを備え、
    前記物理メモリの前記記憶領域には、前記送信データの送信先を示す情報が格納されている、
    情報処理システム。
  2. 記送信元のプラットフォームは、自身の前記物理メモリの前記記憶領域のうち、前記送信先のエンドポイントに対応付けられた前記記憶領域に前記送信データを格納し、
    前記中継装置は、前記送信元のプラットフォームから、前記送信元のプラットフォームと接続された前記送信元のエンドポイントを介して受信した前記送信データを、前記送信先を示す情報に基づいて、前記複数のエンドポイントのうち前記記憶領域に対応付けられた前記送信先のエンドポイントを介して、前記送信先のプラットフォームに送信する、
    請求項に記載の情報処理システム。
JP2019224093A 2018-04-18 2019-12-11 情報処理システム Active JP6928280B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018079597 2018-04-18
JP2018079597 2018-04-18
JP2019038927A JP6635209B2 (ja) 2018-04-18 2019-03-04 情報処理システム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019038927A Division JP6635209B2 (ja) 2018-04-18 2019-03-04 情報処理システム

Publications (3)

Publication Number Publication Date
JP2020053089A JP2020053089A (ja) 2020-04-02
JP2020053089A5 JP2020053089A5 (ja) 2020-05-14
JP6928280B2 true JP6928280B2 (ja) 2021-09-01

Family

ID=68389358

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019038927A Active JP6635209B2 (ja) 2018-04-18 2019-03-04 情報処理システム
JP2019224093A Active JP6928280B2 (ja) 2018-04-18 2019-12-11 情報処理システム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2019038927A Active JP6635209B2 (ja) 2018-04-18 2019-03-04 情報処理システム

Country Status (3)

Country Link
US (1) US10795851B2 (ja)
JP (2) JP6635209B2 (ja)
CN (1) CN110622144B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7174281B2 (ja) * 2021-02-17 2022-11-17 富士通クライアントコンピューティング株式会社 情報処理装置、情報処理システムおよびプログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301714A (ja) * 2004-04-13 2005-10-27 Nec Electronics Corp マルチcpuシステム、そのデータ転送方法、及びそのプログラム
JP2009110032A (ja) * 2006-01-16 2009-05-21 Sony Computer Entertainment Inc ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法
JP4998469B2 (ja) * 2006-08-09 2012-08-15 日本電気株式会社 インターコネクション用スイッチおよびシステム
JP5084197B2 (ja) 2006-08-10 2012-11-28 株式会社ソニー・コンピュータエンタテインメント プロセッサノードシステムおよびプロセッサノードクラスタシステム
US8373709B2 (en) 2008-10-03 2013-02-12 Ati Technologies Ulc Multi-processor architecture and method
US8732349B2 (en) * 2009-11-18 2014-05-20 Fusion-Io, Inc. Assignment of resources in an input/output (I/O) virtualization system
JP2012163995A (ja) * 2011-02-03 2012-08-30 Nec Corp 情報処理装置
JP2013196593A (ja) * 2012-03-22 2013-09-30 Ricoh Co Ltd データ処理装置、データ処理方法及びプログラム
JP2014016749A (ja) * 2012-07-06 2014-01-30 Ricoh Co Ltd スイッチ装置およびシステム
US9424224B2 (en) * 2013-06-18 2016-08-23 Avago Technologies General Ip (Singapore) Pte. Ltd. PCIe tunneling through SAS
US9135200B2 (en) * 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
KR102147629B1 (ko) * 2013-11-18 2020-08-27 삼성전자 주식회사 플렉시블 서버 시스템
US20150261709A1 (en) * 2014-03-14 2015-09-17 Emilio Billi Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures.
US9003090B1 (en) * 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology
WO2015162777A1 (ja) * 2014-04-25 2015-10-29 株式会社日立製作所 計算機システム及び接続構成制御方法
JPWO2015194534A1 (ja) * 2014-06-17 2017-04-20 日本電気株式会社 スイッチ装置とコンピュータシステムと方法並びにプログラム
US9817787B2 (en) * 2015-03-26 2017-11-14 Intel Corporation Method, apparatus and system for encapsulating information in a communication
CN105721357B (zh) * 2016-01-13 2019-09-03 华为技术有限公司 交换设备、外围部件互连高速系统及其初始化方法

Also Published As

Publication number Publication date
JP6635209B2 (ja) 2020-01-22
US20190354504A1 (en) 2019-11-21
JP2020053089A (ja) 2020-04-02
CN110622144B (zh) 2023-05-05
JP2019192217A (ja) 2019-10-31
CN110622144A (zh) 2019-12-27
US10795851B2 (en) 2020-10-06

Similar Documents

Publication Publication Date Title
US11960429B2 (en) Many-to-many PCIE switch
EP3042297B1 (en) Universal pci express port
US8904079B2 (en) Tunneling platform management messages through inter-processor interconnects
JP5315209B2 (ja) 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用
US8838867B2 (en) Software-based virtual PCI system
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
WO2007090754A1 (en) Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US20120054393A1 (en) Computer system, i/o device control method, and i/o drawer
US11403250B2 (en) Operation accelerator, switch, task scheduling method, and processing system
EP2515241B1 (en) Unified system area network and switch
JP6928280B2 (ja) 情報処理システム
JP2009282917A (ja) サーバ間通信機構及びコンピュータシステム
US20200358637A1 (en) Information processing system, and platform
WO2019203331A1 (ja) 中継装置および情報処理システム
US20170344511A1 (en) Apparatus assigning controller and data sharing method
GB2586957A (en) Repeating device and information processing system
CN112867998B (zh) 运算加速器、交换器、任务调度方法及处理系统
JP2020135868A (ja) 情報処理システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200304

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210507

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: 20210706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210719

R150 Certificate of patent or registration of utility model

Ref document number: 6928280

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250