JP6826300B1 - Information information system - Google Patents
Information information system Download PDFInfo
- Publication number
- JP6826300B1 JP6826300B1 JP2020077840A JP2020077840A JP6826300B1 JP 6826300 B1 JP6826300 B1 JP 6826300B1 JP 2020077840 A JP2020077840 A JP 2020077840A JP 2020077840 A JP2020077840 A JP 2020077840A JP 6826300 B1 JP6826300 B1 JP 6826300B1
- Authority
- JP
- Japan
- Prior art keywords
- platform
- communication
- platforms
- pcie
- driver
- 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
Links
- 238000004891 communication Methods 0.000 claims abstract description 146
- 230000010365 information processing Effects 0.000 claims abstract description 42
- 238000012546 transfer Methods 0.000 claims abstract description 29
- 238000001514 detection method Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 abstract description 23
- 230000015654 memory Effects 0.000 description 44
- 230000005540 biological transmission Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 13
- 238000000034 method Methods 0.000 description 12
- 230000007704 transition Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Landscapes
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
【課題】いずれかのプラットフォームにおいて突然の再起動が行われた場合に、突然の再起動が行われたプラットフォームに対して誤ってデータ通信が行われることを防止し、他のプラットフォームにおける通信エラーの発生を抑制する。【解決手段】本発明の第1態様にかかる情報処理システムは、複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつ転送バスを用いて前記複数のプラットフォーム間での通信を中継する中継装置と、を備える。前記中継装置は、前記プラットフォームが通信可能な否かを示す通信ステータスを記憶する記憶領域を前記プラットフォーム毎に有するドライバステータスレジスタ、を備える。前記プラットフォームは、当該プラットフォーム自身の前記記憶領域に記憶される前記通信ステータスを更新し、かつ、前記記憶領域に記憶される前記通信ステータスを参照して、前記複数のプラットフォームのうち通信可能な前記プラットフォームと通信を行う通信ドライバを備える。【選択図】図11PROBLEM TO BE SOLVED: To prevent data communication from being erroneously performed to a platform on which a sudden restart is performed when a sudden restart is performed on one of the platforms, and to prevent a communication error on the other platform. Suppress the occurrence. An information processing system according to a first aspect of the present invention is communicably connected to a plurality of platforms and each of the plurality of platforms, and relays communication between the plurality of platforms using a transfer bus. It is provided with a relay device to be used. The relay device includes a driver status register having a storage area for each platform for storing a communication status indicating whether or not the platform can communicate. The platform updates the communication status stored in the storage area of the platform itself, and refers to the communication status stored in the storage area, and is capable of communicating among the plurality of platforms. It is equipped with a communication driver that communicates with. [Selection diagram] FIG. 11
Description
本発明は、情報処理システムに関する。 The present invention relates to an information processing system.
複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつPCIe(Peripheral Component Interconnect Express)バス等の転送バスを用いて当該複数のプラットフォーム間での通信を中継する中継装置と、を備える情報処理システムが開発されている。 It is provided with a plurality of platforms and a relay device that is communicably connected to each of the plurality of platforms and relays communication between the plurality of platforms using a transfer bus such as a PCIe (Peripheral Component Interconnect Express) bus. Information processing systems are being developed.
ところで、上述の情報処理システムにおいて、複数のプラットフォーム間において通信が行われている際に、いずれかのプラットフォームにおいてカーネルパニック等による突然の再起動によって通信エラーが発生した場合、通信相手の通信の状態を取得することができず、通信相手が存在するものとして、プラットフォーム間での通信が開始されてしまうため、通信エラーが発生していない他のプラットフォームにおいても次々と通信エラーが発生する場合がある。 By the way, in the above-mentioned information processing system, when communication is being performed between a plurality of platforms, if a communication error occurs due to a sudden restart due to a kernel panic or the like on one of the platforms, the communication state of the communication partner Can not be acquired, and communication between platforms will be started assuming that there is a communication partner, so communication errors may occur one after another even on other platforms where communication errors have not occurred. ..
1つの側面では、本発明は、いずれかのプラットフォームにおいて突然の再起動が行われた場合に、突然の再起動が行われたプラットフォームに対して誤ってデータ通信が行われることを防止し、他のプラットフォームにおける通信エラーの発生を抑制することを目的とする。 In one aspect, the invention prevents accidental data communication to a platform that has undergone a sudden reboot in the event of a sudden reboot, and the other. The purpose is to suppress the occurrence of communication errors on the platform of.
本発明の第1態様にかかる情報処理システムは、複数のプラットフォームと、当該複数のプラットフォームのそれぞれと通信可能に接続されかつ転送バスを用いて前記複数のプラットフォーム間での通信を中継する中継装置と、を備える。前記中継装置は、前記複数のプラットフォームに共通に1つ設けられ、かつ、前記プラットフォームが通信可能な否かを示す通信ステータスを記憶する記憶領域を前記プラットフォーム毎に有するドライバステータスレジスタ、を備える。前記プラットフォームは、当該プラットフォーム自身の前記記憶領域に記憶される前記通信ステータスを更新し、かつ、前記ドライバステータスレジスタが有する前記記憶領域のうち、他の前記プラットフォームの前記記憶領域に記憶される前記通信ステータスを参照して、前記複数のプラットフォームのうち通信可能な前記プラットフォームと通信を行う通信ドライバを備える。 The information processing system according to the first aspect of the present invention includes a plurality of platforms and a relay device that is communicably connected to each of the plurality of platforms and relays communication between the plurality of platforms using a transfer bus. , Equipped with. The relay device is provided in common with the plurality of platforms, and includes a driver status register for each platform, which has a storage area for storing communication status indicating whether or not the platform can communicate. The platform updates the communication status stored in the storage area of the platform itself, and among the storage areas of the driver status register , the communication stored in the storage area of another platform. A communication driver that communicates with the platform capable of communicating among the plurality of platforms by referring to the status is provided.
本発明の上記第1態様によれば、いずれかのプラットフォームにおいて突然の再起動が行われた場合に、突然の再起動が行われたプラットフォームに対して誤ってデータ通信が行われることを防止し、転送バスのエラーの発生を抑制することができる。 According to the first aspect of the present invention, when a sudden restart is performed on any platform, it is possible to prevent data communication from being erroneously performed on the platform on which the sudden restart is performed. , It is possible to suppress the occurrence of transfer bus errors.
以下、添付の図面を用いて、本実施形態にかかる情報処理システムの一例について説明する。 Hereinafter, an example of the information processing system according to the present embodiment will be described with reference to the attached drawings.
図1は、本実施形態にかかる情報処理システムの全体構成の一例を示す図である。図1に示すように、本実施形態にかかる情報処理システム1は、複数のプラットフォーム2−1〜2−8と、PCIeブリッジコントローラ3と、を備える。複数のプラットフォーム2−1〜2−8は、それぞれPCIeブリッジコントローラ3に接続されている。
FIG. 1 is a diagram showing an example of the overall configuration of the information processing system according to the present embodiment. As shown in FIG. 1, the
以下の説明では、複数のプラットフォーム2−1〜2−8を区別する必要がなく、任意のプラットフォームを示す場合には、プラットフォーム2と記載する。また、ここでは、情報処理システム1が、8つのプラットフォーム2−1〜2−8を有する例について説明するが、複数のプラットフォーム2を有するものであれば、これに限定するものではない。
In the following description, it is not necessary to distinguish between a plurality of platforms 2-1 to 2-8, and when an arbitrary platform is indicated, it is described as
プラットフォーム2−1は、プロセッサ21−1を備える。同様に、プラットフォーム2−2〜2−8も、プロセッサ21−2〜21−8をそれぞれ備える。 Platform 2-1 includes processor 21-1. Similarly, platforms 2-2-2-8 also include processors 21-2-21-8, respectively.
プロセッサ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社が提供するものであるとする。 Processors 21-1 to 21-8 may be provided by different manufacturers (vendors). For example, the processors 21-1,21-2,21-3,21-4,21-5,21-6,21-7,21-8 are companies A, B, C, and D, respectively. It is assumed that it is provided by company E, company F, company G, and company 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に対して、それぞれ異なるプラットフォームを接続しても良い。さらに、複数のEPを1つのプラットフォーム2に接続し、プラットフォーム2側が複数のRCを用いてPCIeブリッジコントローラ3と通信しても良い。
In addition, hereinafter, the processors 21-1,21-2,21-3,21-4,21-5,21-6,21-7,21-8 are used as processors A, B, C, D, E, respectively. It may be called F, G, H. Further, different platforms may be connected to the EP mounted on the
以下の説明では、プロセッサを示す符号としては、複数のプロセッサのうち1つを特定する必要があるときには符号21−1〜21−8もしくは符号A〜H等を用いるが、任意のプロセッサを指すときには符号21を用いる。
In the following description, as the code indicating the processor, when it is necessary to specify one of a plurality of processors, the reference numerals 21-1 to 21-8, the reference numerals A to H, and the like are used, but when referring to an arbitrary processor, the reference numerals are used.
プラットフォーム2−1〜2−8は、AI推論処理や画像処理等の演算処理を行なうコンピュータ環境であり、プロセッサ21や、図7に示すストレージ23およびメモリ(物理メモリ)22を備える。
Platforms 2-1 to 2-8 are computer environments that perform arithmetic processing such as AI inference processing and image processing, and include a
プラットフォーム2においては、プロセッサ21がメモリ22やストレージ23に格納されたプログラムを実行することで各種機能を実現する。
In the
ストレージ23は、ハードディスクドライブ(HDD:Hard Disk Drive)、SSD(Solid State Drive)、ストレージクラスメモリ(SCM:Storage Class Memory)等の記憶装置であって、種々のデータを格納するものである。
The
メモリ22は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ22のROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ22上のソフトウェアプログラムは、プロセッサ21に適宜読み込まれて実行される。また、メモリ22のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
The
プロセッサ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種類以上の要素の組み合わせであってもよい。
The
図2は、本実施形態にかかる情報処理システムにおけるプラットフォームのソフトウェア構成の一例を示す図である。図2では、プラットフォーム2−1〜2−3のソフトウェア構成のみを図示しているが、他のプラットフォーム2−4〜2−8も同様のソフトウェア構成を有するものとする。 FIG. 2 is a diagram showing an example of a software configuration of a platform in the information processing system according to the present embodiment. Although FIG. 2 shows only the software configuration of platforms 2-1 to 2-3, it is assumed that other platforms 2-4 to 2-8 also have the same software configuration.
図2に示すように、プラットフォーム2−1は、Windows(登録商標)をOSとし、このOS上において各種プログラムが実行される。プラットフォーム2−2,2−3は、それぞれLinux(登録商標)をOSとし、このOS上において分散処理プログラム(分散処理A,B)が実行される。 As shown in FIG. 2, the platform 2-1 uses Windows (registered trademark) as an OS, and various programs are executed on this OS. Platforms 2-2 and 2-3 each use Linux (registered trademark) as an OS, and distributed processing programs (distributed processing A and B) are executed on this OS.
各プラットフォーム2には、ブリッジドライバ20が備えられており、プラットフォーム2は、このブリッジドライバ20を介してPCIeブリッジコントローラ3および他のプラットフォーム2との間で通信を行なう。ブリッジドライバ20による通信方法については後述する。
Each
各プラットフォーム2においては、プロセッサ21およびメモリ(物理メモリ)22((図7等参照)を備え、プロセッサ21がメモリ22に格納されたOSや各種プログラム,ドライバ等を実行することでそれぞれの機能を実現する。
Each
各プラットフォーム2に備えられるプロセッサ21は、互いに違うベンダによって提供されるものであってもよい。図1に示す例においては、少なくとも一部のプラットフォーム2(例えば、プラットフォーム2−7)に複数のRCを有するプラットフォーム(例えば、Intel社のx86プロセッサ)が用いられてもよい。
The
また、各プラットフォーム2は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。
Further, each
プラットフォーム2において、メモリ22の記憶領域の一部は、図7を用いて後述する如く、プラットフォーム2間(プロセッサ21間)において転送されるデータが一時的に格納される通信バッファ221として用いられる。
In the
PCIeブリッジコントローラ3は、複数のプラットフォーム2−1〜2−8間におけるデータ等の通信を実現する。
The
図3は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラのハードウェア構成の一例を模式的に示す図である。 FIG. 3 is a diagram schematically showing an example of the hardware configuration of the PCIe bridge controller in the information processing system according to the present embodiment.
図3に示すように、PCIeブリッジコントローラ3は、複数のプラットフォーム10のそれぞれと通信可能に接続されPCIeバス(転送バスの一例)を用いて当該複数のプラットフォーム10間での通信を中継する中継装置の一例である。本実施形態では、PCIeブリッジコントローラ3は、8チャンネルのEPを1チップ内に有する。PCIeブリッジコントローラ3は、図3に示すように、CPU31、メモリ32、インターコネクト33、および複数のスロット34−1〜34−8を備える。
As shown in FIG. 3, the
スロット34−1〜34−8には、それぞれPCIeの規格を満たすように構成されたデバイスが接続される。本実施形態にかかる情報処理システム1では、スロット34−1〜34−8のそれぞれにプラットフォーム2が接続される。
Devices configured to meet PCIe standards are connected to slots 34-1 to 3-4-8, respectively. In the
以下の説明では、スロットを示す符号としては、複数のスロットのうち1つを特定する必要がある場合には符号34−1〜34−8を用いるが、任意のスロットを示す場合には符号34を用いる。 In the following description, as the code indicating a slot, reference numeral 34-1 to 3-4-8 is used when it is necessary to specify one of a plurality of slots, but reference numeral 34 is used when indicating an arbitrary slot. Is used.
また、一つのスロット34に対して一つのプラットフォーム2が接続されてもよく、複数のスロット34に対して一つのプラットフォーム2が接続されてもよく、種々変形して実施することができる。
Further, one
複数のスロット34に対して一つのプラットフォーム2をアサインすることで、このプラットフォーム2に広い通信帯域を用いた通信を行なわせることができる。
By assigning one
各スロット34は、内部バス(Internal Bus)を介してインターコネクト33にそれぞれ接続されている。また、インターコネクト33には、CPU31およびメモリ32が接続されている。これにより、各スロット34と、CPU31と、メモリ32と、は、インターコネクト33を介して相互に通信可能に接続されている。
Each slot 34 is connected to the
メモリ32は、例えば、ROMおよびRAMを含む記憶メモリ(物理メモリ)である。メモリ32のROMには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ32上のソフトウェアプログラムは、CPU31に適宜読み込まれて実行される。また、メモリ32のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
The
さらに、PCIeブリッジコントローラ3においては、各スロット34に対応させてレジスタ35(図7参照)が備えられ、このレジスタ35のBAR(Base Address Register)空間には、スロット毎に記憶領域が備えられる。すなわち、レジスタ35のBAR空間にはスロット#0〜#7のそれぞれに対応する記憶領域が設けられている。
Further, in the
PCIeブリッジコントローラ3においては、後述の如く、BAR空間のスロット34毎の記憶領域を用いてプラットフォーム2間のデータ転送を行なう。
In the
CPU31は、PCIeブリッジコントローラ3全体を制御する。CPU31は、マルチプロセッサであってもよい。CPU31に代えて、MPU、DSP、ASIC、PLD、FPGAのいずれか一つが用いられてもよい。また、CPU31は、CPU、MPU、DSP、ASIC、PLD、FPGAのうちの2種類以上の要素の組み合わせであってもよい。
The
そして、CPU31がメモリ32に格納されたソフトウェアプログラムを実行することで、PCIeブリッジコントローラ3におけるプラットフォーム2間(プロセッサ21間)のデータ転送を実現する。
Then, the
PCIeブリッジコントローラ3は、プラットフォーム2間のデータ転送を高速化するためにPCIeを用い、図1に示すように、各プラットフォーム2に備えられるプロセッサをそれぞれRCとして動作させ、デバイスとして動作するEP間でデータ転送を実現する。
The
具体的には、情報処理システム1においては、各プラットフォーム2のプロセッサを、データ転送インタフェースとしてPCIeのRCとして動作させる。また、各プラットフォーム2(プロセッサ21)に対して、PCIeブリッジコントローラ3を、すなわち、各プラットフォーム2が接続されているスロット34をEPとして動作させる。
Specifically, in the
PCIeブリッジコントローラ3をプロセッサ21に対してEPとして接続する手法としては、既知の種々の手法を用いて実現することができる。
As a method of connecting the
例えば、PCIeブリッジコントローラ3は、プラットフォーム2との接続時に、EPとして機能することを示す信号を当該プロセッサ21に通知することで、EPとしてプロセッサ21と接続する。
For example, the
PCIeブリッジコントローラ3においては、EPtoEP(End Point to End Point)でデータをトンネリングさせて、複数のRCにデータを転送する。プラットフォーム2間の通信は、PCIeのトランザクションが発生したときに論理的に接続され、1つのプロセッサ21にデータ転送が集中しないときは、それぞれのプラットフォーム2間で並行してデータ転送できる。
In the
図4は、本実施形態の一例としてのPCIeのレイヤ構成を示す図である。図4では、プラットフォーム2−1のプロセッサAとプラットフォーム2−2のプロセッサBとの間で通信を行なう例を示すが、他のプラットフォーム2のプロセッサ21間においても同様にして通信を行うものとする。
FIG. 4 is a diagram showing a layer configuration of PCIe as an example of the present embodiment. FIG. 4 shows an example of communication between the processor A of the platform 2-1 and the processor B of the platform 2-2, but it is assumed that the same communication is performed between the
送信元のプラットフォーム2−1においては、RCであるプロセッサAにおいて生成されたデータが、ソフトウェア、トランザクション層、データリンク層、および物理層(PHY)を、順次、転送され、物理層においてPCIeブリッジコントローラ3の物理層に転送される。 In the source platform 2-1 the data generated in the RC processor A is sequentially transferred to the software, transaction layer, data link layer, and physical layer (PHY), and the PCIe bridge controller in the physical layer. Transferred to 3 physical layers.
PCIeブリッジコントローラ3においては、物理層、データリンク層、トランザクション層、およびソフトウェアを順次、転送され、送信先のプラットフォーム2のRCに対応するEPにトンネリングによりデータが転送される。
In the
すなわち、PCIeブリッジコントローラ3においては、EP間でデータをトンネリングさせること(換言すれば、一のEPが一のプラットフォーム2から受信したデータを、他のEPにトンネリングさせること)で、一のプラットフォーム2に含まれるRCから他のプラットフォーム2に含まれるRCにデータが転送される。
That is, in the
送信先のプラットフォーム2−2においては、PCIeブリッジコントローラ3から転送されたデータが、物理層(PHY)、データリンク層、トランザクション層、およびソフトウェアを、順次、転送され、送信先のプラットフォーム2−2のプロセッサBに転送される。
In the destination platform 2-2, the data transferred from the
情報処理システム1において、プロセッサ21間(プラットフォーム2間)の通信は、PCIeのトランザクションが発生したときに論理的に接続される。
In the
PCIeブリッジコントローラ3が有する8スロットのうちの一つに接続された特定のプロセッサ21に対して複数の他のプロセッサ21からのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ21間で並行してデータ転送してもよい。
When data transfer from a plurality of
例えば、プラットフォーム2−1のプロセッサAに対して、プラットフォーム2−2のプロセッサBおよびプラットフォーム2−3のプロセッサCのそれぞれが通信しようとする場合には、PCIeブリッジコントローラ3は、プロセッサB,Cの通信をシリアルに処理する。
For example, when each of the processor B of the platform 2-2 and the processor C of the platform 2-3 tries to communicate with the processor A of the platform 2-1, the
ただし、プロセッサA−プロセッサB,プロセッサC−プロセッサD,プロセッサE−プロセッサFのように、それぞれが異なるプロセッサ同士で通信し、特定のプロセッサに通信が集中しない場合には、PCIeブリッジコントローラ3は、各プロセッサ21間通信を並行して処理する。
However, when different processors such as processor A-processor B, processor C-processor D, and processor E-processor F communicate with each other and communication is not concentrated on a specific processor, the
図5は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。また、図6は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。 FIG. 5 is a diagram illustrating the appearance of another processor from the processor in the information processing system according to the present embodiment. Further, FIG. 6 is a diagram illustrating how the other processor looks from the processor in the information processing system according to the present embodiment.
各プロセッサ21間で通信が行なわれている状態においても、各プロセッサ21上のOS(例えばWindowsのデバイスマネージャ)からは、PCIeブリッジコントローラ3しか見えず、接続先の他のプロセッサ21を直接管理する必要がない。すなわち、PCIeブリッジコントローラ3のデバイスドライバでPCIeブリッジコントローラ3の先に接続されたプロセッサ21を管理すれば良い。
Even when communication is being performed between the
そのため、送信元、受信先それぞれのプロセッサ21を動作させるためのデバイスドライバを準備する必要がなく、PCIeブリッジコントローラ3のドライバでPCIeブリッジコントローラ3に対して通信処理を行なうだけでプロセッサ21間の通信を行なうことができる。
Therefore, it is not necessary to prepare a device driver for operating the
図7は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラを介したプラットフォーム間でのデータ転送方法の一例を説明するための図である。図7では、スロット#0に接続されたプラットフォーム2−1からスロット#4に接続されたプラットフォーム2−5にデータを転送する場合について説明するが、他のプラットフォーム2間におけるデータ転送も同様に行うものとする。
FIG. 7 is a diagram for explaining an example of a data transfer method between platforms via a PCIe bridge controller in the information processing system according to the present embodiment. FIG. 7 describes a case where data is transferred from platform 2-1 connected to slot # 0 to platform 2-5 connected to slot # 4, but data transfer between
データの送信元のプラットフォーム2−1において、ソフトウェア等によって送信されるデータ(以下、送信データという場合がある)が、プラットフォーム2−1に備えられるストレージ23から通信バッファ221にロードされる(符号P1参照)。
In platform 2-1 of the data transmission source, data transmitted by software or the like (hereinafter, may be referred to as transmission data) is loaded into the
ソフトウェアによって、通信バッファ221における送信データが格納された領域の位置情報(例えば、Offset/Length)と、送信先の情報(例えば、Slot/Offset)と、が指定され、ブリッジドライバ20に受け渡される(符号P2参照)。
The software specifies the position information (for example, Offset / Length) of the area in which the transmission data is stored in the
送信元EPにおいて、ブリッジドライバ20は、BAR空間のスロット#4のアドレスに送信データを渡す(符号P3)。これにより、PCIeブリッジコントローラ3において、EPtoEPにより送信元ポートから送信先のプラットフォーム2に対応するスロット(送信先スロット)に送信データが送信される(符号P4参照)。送信先スロットにおいては、レジスタ35のBAR空間のスロット#4に対応する記憶領域に送信データが格納される。
In the source EP, the
送信先スロットにおいて、例えば、ブリッジドライバ20が、レジスタ35のBAR空間のスロット#4に対応する記憶領域から送信データを通信バッファ221に転送し、送信データは、この通信バッファ221においてoffsetによって特定される所定の領域に格納される(符号P5参照)。
In the destination slot, for example, the
送信先プラットフォーム2において、例えば、プログラムが、通信バッファ221に格納された送信データを読み出して、メモリ(ローカルメモリ)22やストレージ23に移動させる(符号P6,P7参照)。
In the
以上のようにして、送信元のプラットフォーム2−1から送信先のプラットフォーム2−5に送信データが転送される。 As described above, the transmission data is transferred from the source platform 2-1 to the destination platform 2-5.
図8は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラを介したプラットフォーム間のデータ転送方法の一例を説明するための図である。図8には、スロット#0に接続されたプラットフォーム2−1からスロット#4に接続されたプラットフォーム2−5にデータを転送する場合を示すが、他のプラットフォーム2間においても同様にしてデータを転送するものとする。
FIG. 8 is a diagram for explaining an example of a data transfer method between platforms via a PCIe bridge controller in the information processing system according to the present embodiment. FIG. 8 shows a case where data is transferred from platform 2-1 connected to slot # 0 to platform 2-5 connected to slot # 4, but data is similarly transferred between
送信元のプラットフォーム2−1は、ソフトウェア等によって送信される送信データを、プラットフォーム2−1に備えられるストレージ23等からプラットフォーム2−1のメモリ領域36に格納する(ステップS701)。メモリ領域36は、転送される送信データが一時的に格納される通信バッファの一部であっても良い。メモリ領域36は、プラットフォーム2のそれぞれに、メモリ22等と同じ大きさで設けられた領域である。メモリ領域36は、スロット305の数に応じて分割されている。メモリ領域36の分割された記憶領域は、いずれかのスロット305に対応付けられている。例えば、メモリ領域36内のスロット♯0で示す記憶領域は、スロット♯0に接続されたプラットフォーム2−1に対応付けられ、メモリ領域36内にスロット♯4で示す記憶領域は、スロット♯4に接続されたプラットフォーム2−5に対応付けられている。プラットフォーム2−1は、メモリ領域36のうち、送信先のスロット305に割り当てられた領域(ここでは、スロット♯4)に送信データを格納する。
The transmission source platform 2-1 stores the transmission data transmitted by software or the like in the
ルートコンプレックスとしての機能を有する送信元のプラットフォーム2−1は、プラットフォーム2のメモリ領域36の記憶領域に基づいて、送信先のスロット305を示すスロット情報と、送信先のメモリ領域36における分割領域内におけるアドレスを示すアドレス情報と、を取得または生成する(ステップS702)。
The source platform 2-1 having a function as a route complex has slot information indicating the destination slot 305 and the inside of the divided area in the
送信元のプラットフォーム2−1は、スロット情報と、アドレス情報と、送信データと、を含む転送データを複数のエンドポイントの機能を有するPCIeブリッジコントローラ3に渡す(ステップS703)。これにより、PCIeブリッジコントローラ3は、スロット情報に基づいてEPtoEPにより送信元のスロット305と送信先のスロット305とを接続することにより、転送データを送信先のプラットフォーム2−4に転送する(ステップS704)。送信先のプラットフォーム2は、スロット情報およびアドレス情報に基づいて、送信先のプラットフォーム2の通信バッファ221に対応する記憶領域内のアドレス情報が示す領域に送信データ(または転送データ)を格納する(ステップS705)。
The source platform 2-1 passes the transfer data including the slot information, the address information, and the transmission data to the
送信先のプラットフォーム2−5において、プログラムが、通信バッファ221に格納された送信データを読み出して、メモリ(ローカルメモリ)22の他の領域やストレージ23に移動させる(ステップS706、ステップS707)。
On the destination platform 2-5, the program reads the transmission data stored in the
以上のようにして、送信元のプラットフォーム2−1から送信先のプラットフォーム2−5にデータ(転送データ)が転送される。 As described above, data (transfer data) is transferred from the source platform 2-1 to the destination platform 2-5.
ところで、複数のプラットフォーム2間において通信が行われている際に、いずれかのプラットフォーム2においてカーネルパニック等による突然の再起動が行われて通信エラーが発生した場合、他のプラットフォーム2は、当該通信エラーが発生したプラットフォーム2の通信の状態を取得することができなくなる。そのため、他のプラットフォーム2は、通信相手のプラットフォーム2(通信エラーが発生したプラットフォーム2)が通信可能であると判断して、当該通信相手のプラットフォーム2との通信を開始するため、当該他のプラットフォーム2においても通信エラーが発生する場合がある。
By the way, when communication is being performed between a plurality of
そこで、本実施形態では、PCIeブリッジコントローラ3が、各プラットフォーム2が通信可能な否かを示す通信ステータスを記憶するレジスタを備える。そして、プラットフォーム2は、PCIeブリッジコントローラ3が備えるレジスタに記憶される通信ステータスを参照して、他のプラットフォーム2と通信を行う。
Therefore, in the present embodiment, the
これにより、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォームとの通信が行われることを防止できる。その結果、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することを抑制できる。
This makes it possible to prevent communication with the platform on which a communication error has occurred due to a sudden restart due to a kernel panic or the like. As a result, it is possible to suppress the occurrence of a communication error on any of the
図9は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラが有するレジスタの構成の一例を説明するための図である。図9には、PCIeブリッジコントローラ3が有するレジスタ35のBAR空間のスロット#0に対応する記憶領域(以下、共通レジスタと言う)の構成の一例を示すが、他のスロット#1〜#7のそれぞれに対応する共通レジスタも同様の構成を有する。
FIG. 9 is a diagram for explaining an example of a register configuration of a PCIe bridge controller in the information processing system according to the present embodiment. FIG. 9 shows an example of the configuration of the storage area (hereinafter referred to as a common register) corresponding to slot # 0 in the BAR space of the
図9に示すように、PCIeブリッジコントローラ3が有するレジスタ35の各スロット34のBAR空間には、複数のスロット#0〜#8のレジスタ35間において共通するBAR空間(以下、共通エリアと言う)900が含まれる。
As shown in FIG. 9, the BAR space of each slot 34 of the
そして、共通エリア900は、図9に示すように、ドライバステータスレジスタ901を有する。ここで、ドライバステータスレジスタ901は、スロット34(言い換えると、プラットフォーム2)毎に設けられる記憶領域である共通レジスタ902−0〜902−7を有する。以下、共通レジスタを示す符号としては、複数の共通レジスタのうち1つを特定する必要がある場合には符号902−0〜902−7を用いるが、任意の共通レジスタを示す場合には符号902を用いる。
Then, the
ここで、共通レジスタ902は、通信ステータスを記憶する記憶領域である。また、ここで、通信ステータスは、共通レジスタ902に対応するプラットフォーム2が通信可能か否かを示す。
Here, the common register 902 is a storage area for storing the communication status. Further, here, the communication status indicates whether or not the
本実施形態では、図9に示すように、ドライバステータスレジスタ901が有する各スロット34の共通レジスタ902は、スロット34毎に、32ビットのレジスタが割り当てられている。そして、図9に示すように、共通レジスタ902が有するビットのうち、24番目のビットが、当該共通レジスタ902が割り当てられたスロット34(プラットフォーム2)の通信ステータスを表す。
In the present embodiment, as shown in FIG. 9, the common register 902 of each slot 34 of the
具体的には、共通レジスタ902に対応するプラットフォーム2が通信不可である場合、24番目のビット(通信ステータス)は、0となる。また、共通レジスタ902に対応するプラットフォーム2が通信可能である場合、24番目のビット(通信ステータス)は、1となる。
Specifically, when the
プラットフォーム2のブリッジドライバ20(通信ドライバの一例)は、共通レジスタ902−0〜902−7のうち、プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータス(本実施形態では、共通レジスタ902が有するビットのうち24番目のビット)を更新する。
The bridge driver 20 (an example of a communication driver) of the
本実施形態では、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がアンロードされた際に、通信ステータスを更新する。具体的には、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がロードされている状態(ブリッジドライバ20自身が有効な状態)から、当該ブリッジドライバ20自身がアンロードされた状態(ブリッジドライバ20自身が無効な状態)に遷移する際に、プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータスを0に更新する。
In the present embodiment, the
また、本実施形態では、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がロードされた際に、通信ステータスを更新する。具体的には、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がアンロードされている状態(ブリッジドライバ20自身が無効な状態)から、当該ブリッジドライバ20自身がロードされた状態(ブリッジドライバ20自身が有効な状態)に遷移する際に、プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータスを1に更新する。
Further, in the present embodiment, the
また、プラットフォーム2のブリッジドライバ20は、共通レジスタ902−0〜902−7に記憶される通信ステータス(本実施形態では、共通レジスタ902−0〜902−7のそれぞれの24番目のビット)を参照して、プラットフォーム2−1〜2−7のうち、通信可能なプラットフォーム2と通信を行う。一方、プラットフォーム2のブリッジドライバ20は、共通レジスタ902−0〜902−7に記憶される通信ステータス(本実施形態では、共通レジスタ902−0〜902−7のそれぞれの24番目のビット)を参照して、プラットフォーム2−1〜2−7のうち、通信不可のプラットフォーム2とは通信を行わない。
Further, the
これにより、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォーム2との通信が行われることを防止できる。その結果、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することを抑制できる。また、ブリッジドライバ20は、後述するPCIeステータスレジスタ903に記憶される通信ステータスに基づいて、プラットフォーム2の再起動(例えば、カーネルパニック等による突然の再起動)を検出した場合、ドライバステータスレジスタ901に記憶される通信ステータスのうち、当該再起動を検出したプラットフォーム2の通信ステータス(または、再起動を検出したプラットフォーム2の共通レジスタ902全体)をクリアしても良い。そして、ブリッジドライバ20は、通信エラーが発生していない通常動作時等において、PCIeブリッジコントローラ3のCPU31によるドライバステータスレジスタ901の更新を行わせないようにしても良い。
As a result, it is possible to prevent communication with the
また、図9に示すように、共通レジスタ902が有するビットのうち、0番目〜15番目のビットは、当該共通レジスタ902に対応するスロット34(プラットフォーム2)が通信可能なプラットフォーム2を示すビットである。
Further, as shown in FIG. 9, among the bits of the common register 902, the 0th to 15th bits are bits indicating the
例えば、共通レジスタ902−0の1番目のビットは、スロット#1に接続されるプラットフォーム2−2と通信可能か否かを示すビットであり、0の場合には通信不可であることを示し、1の場合には通信可能であることを示す。また、共通レジスタ902−0の2番目のビットは、スロット#2に接続されるプラットフォーム2−3と通信可能か否かを示すビットであり、0の場合には通信不可であることを示し、1の場合には通信可能であることを示す。共通レジスタ902−0の3番目から15番目のビットも同様に、当該ビットの番号と一致するスロット34に接続されるプラットフォーム2と通信可能か否かを示す。
For example, the first bit of the common register 902-0 is a bit indicating whether or not communication is possible with the platform 2-2 connected to slot # 1. If it is 0, it indicates that communication is not possible. If it is 1, it means that communication is possible. Further, the second bit of the common register 902-0 is a bit indicating whether or not communication is possible with the platform 2-3 connected to slot # 2, and if it is 0, it indicates that communication is not possible. If it is 1, it means that communication is possible. Similarly, the third to fifteenth bits of the common register 902-0 also indicate whether or not communication is possible with the
また、共通エリア900は、図9に示すように、PCIeステータスレジスタ903を有する。ここで、PCIeステータスレジスタ903は、ドライバステータスレジスタ901とは異なるレジスタでありかつ複数のプラットフォーム2−1〜2−8の通信ステータスを記憶するレジスタである。
Further, the
PCIeブリッジコントローラ3のCPU31(制御部の一例)により実行されるファームウェア(以下、ブリッジファームウェアと言う)は、PCIeブリッジコントローラ3の物理層によるプラットフォーム2との通信状態(以下、リンク状態と言う)の変化を検出する。そして、ブリッジファームウェアは、リンク状態の変化の検出結果に基づいて、PCIeステータスレジスタ903に記憶される通信ステータスを更新する。
The firmware executed by the CPU 31 (an example of the control unit) of the PCIe bridge controller 3 (hereinafter referred to as bridge firmware) is the communication state (hereinafter referred to as link state) with the
本実施形態では、ブリッジファームウェアは、定期的に、リンク状態の変化を検出する。例えば、ブリッジファームウェアは、PCIeブリッジコントローラ3の物理層から割り込みが発行される際に、リンク状態が、プラットフォーム2との通信状態が通信可能な状態(以下、コネクト状態CTDと言う)から通信不可の状態(以下、ノットコネクト状態NOCと言う)に変化したのか、若しくは、プラットフォーム2との通信状態がノットコネクト状態NOCからコネクト状態CTDに変化したのかを検出する。
In this embodiment, the bridge firmware periodically detects a change in the link state. For example, when an interrupt is issued from the physical layer of the
そして、ブリッジファームウェアは、リンク状態が、コネクト状態CTDからノットコネクト状態NOCに変化したことを検出した場合、PCIeステータスレジスタ903に記憶される通信ステータスのうち、リンク状態がノットコネクト状態NOCに変化したプラットフォーム2の通信ステータスを、通信不可を示す通信ステータスに更新する。また、ブリッジファームウェアは、リンク状態が、ノットコネクト状態NOCからコネクト状態CTDに変化したことを検出した場合、PCIeステータスレジスタ903に記憶される通信ステータスのうち、リンク状態がコネクト状態CTDに変化したプラットフォーム2の通信ステータスを、通信可能を示す通信ステータスに更新する。
Then, when the bridge firmware detects that the link state has changed from the connect state CTD to the not connect state NOC, the link state has changed to the not connect state NOC among the communication status stored in the
共通エリア900が、ドライバステータスレジスタ901に加えて、PCIeステータスレジスタ903を有する場合、プラットフォーム2−1のブリッジドライバ20は、共通レジスタ902およびPCIeステータスレジスタ903に記憶される通信ステータスを参照して、プラットフォーム2と通信を行う。
If the
これにより、プラットフォーム2における通信エラー等によって当該プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータスを更新できない場合に、当該プラットフォーム2との通信が行われることを防止できる。その結果、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することをより効果的に抑制できる。
As a result, it is possible to prevent communication with the
本実施形態では、共通エリア900が、ドライバステータスレジスタ901およびPCIeステータスレジスタ903の両方を有する例について説明するが、共通エリア900は、ドライバステータスレジスタ901およびPCIeステータスレジスタ903の少なくとも一方を有していれば良い。そして、共通エリア900が、ドライバステータスレジスタ901およびPCIeステータスレジスタ903のうち一方のみを有する場合、プラットフォーム2のブリッジドライバ20は、ドライバステータスレジスタ901およびPCIeステータスレジスタ903のうち一方に記憶される通信ステータスを参照して、プラットフォーム2と通信を行うものとする。
In the present embodiment, an example in which the
図10は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラのレジスタが有する共通レジスタの構成の一例を示す図である。 FIG. 10 is a diagram showing an example of the configuration of a common register included in the register of the PCIe bridge controller in the information processing system according to the present embodiment.
本実施形態では、共通レジスタ902は、図10に示すように、32ビットのレジスタである。そして、図10に示すように、共通レジスタ902において、25番目〜31番目までのビットrsvが、当該共通レジスタ902に対応するプラットフォーム2に対して他のプラットフォーム2との通信の予約が入っているか否かを示すビットである。
In this embodiment, the common register 902 is a 32-bit register as shown in FIG. Then, as shown in FIG. 10, in the common register 902, whether the 25th to 31st bits rsv are reserved for communication with the
また、図10に示すように、共通レジスタ902において、24番目のビットactiveが、当該共通レジスタ902に割り当てられたスロット34に接続されているプラットフォーム2の通信ステータスを示すビットである。プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20が有効な状態から無効な状態に遷移した場合、24番目のビットactiveを0に更新する。一方、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20が無効な状態から有効な状態に遷移した場合、24番目のビットactiveを1に更新する。
Further, as shown in FIG. 10, in the common register 902, the 24th bit active is a bit indicating the communication status of the
また、図10に示すように、共通レジスタ902において、16番目〜23番目までのビットmоdeが、当該共通レジスタ902に対応するプラットフォーム2の動作状態を示すビットである。
Further, as shown in FIG. 10, in the common register 902, the 16th to 23rd bits mоde are bits indicating the operating state of the
例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2において初期化が行われている場合、16番目〜23番目までのビットmоdeを、初期化を表す0x00に更新する。
For example, the
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2において初期化が完了している場合、16番目〜23番目までのビットmоdeを、初期化の完了を表す0x01に更新する。
Further, for example, when the initialization is completed on the
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が無効な状態から有効な状態へと変化している通信準備中である場合、16番目〜23番目までのビットmоdeを、通信準備中を表す0x20に更新する。
Further, for example, when the
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が有効な状態へ変更している場合、16番目〜23番目のビットmоdeを、有効な状態を表す0x21に更新する。
Further, for example, the
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が有効な状態から無効な状態への遷移準備中である場合、16番目〜23番目までのビットmоdeを、遷移準備中を表す0x30に更新する。
Further, for example, when the
また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が有効な状態から無効な状態へ遷移している遷移完了待ちである場合、16番目〜23番目までのビットmоdeを、遷移完了待ちを表す0x31に更新する。
Further, for example, when the
さらに、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が無効な状態である場合、16番目〜23番目までのビットmоdeを、無効な状態を表す0x32に更新する。
Further, for example, the
また、図10に示すように、共通レジスタ902において、0番目〜15番目までのビットactive_nоdeが、当該共通レジスタ902に対応するプラットフォーム2が通信可能なプラットフォーム2を示すビットである。ここでは、ビットの番号が、プラットフォーム2が接続されるスロット34の番号と一致している。
Further, as shown in FIG. 10, in the common register 902, the 0th to 15th bits active_nоde are bits indicating the
例えば、0番目のビットは、スロット#0に対応しており、当該スロット#0に接続されるプラットフォーム2が通信可能か否かを示す。1番目〜15番目までのビットも同様に、スロット34の番号と一致しており、各スロット34に接続されるプラットフォーム2が通信可能か否かを示している。
For example, the 0th bit corresponds to slot # 0 and indicates whether or not the
本実施形態では、プラットフォーム2のブリッジドライバ20は、複数のプラットフォーム2のそれぞれに対応する共通レジスタ902の24番目のビットactiveを参照して、複数のスロット34の番号と一致する番号(0番目〜15番目)のビットactive_nоdeを更新する。
In the present embodiment, the
そして、プラットフォーム2のブリッジドライバ20は、他のプラットフォーム2との通信を終了する際(言い換えると、当該ブリッジドライバ20自身がアンロードされる際)、プラットフォーム2のブリッジドライバ20は、当該プラットフォーム2自身の共通レジスタ902の24番目のビットactiveが0であるか否かをチェックする。
Then, when the
次いで、プラットフォーム2自身の共通レジスタ902の24番目のビットactiveが0である場合、プラットフォーム2のブリッジドライバ20は、当該プラットフォーム2自身の共通レジスタ902の0番目〜15番目までの全てのビットactive_nоdeが0であるか否かをチェックする。そして、プラットフォーム2自身の共通レジスタ902の0番目〜15番目までの全てのビットactive_nоdeが0である場合、プラットフォーム2のブリッジドライバ20は、他のプラットフォーム2との通信を終了する。
Next, when the 24th bit active of the common register 902 of the
図11は、本実施形態にかかる情報処理システムにおける複数のプラットフォーム間における通信処理の流れの一例を示すシーケンス図である。次に、図11を用いて、本実施形態にかかる情報処理システム1における複数のプラットフォーム2間の通信処理の流れの一例について説明する。ここでは、プラットフォーム2−1のプロセッサAと、プラットフォーム2−5のプロセッサEと、の間における通信処理の流れの一例について説明するが、他のプラットフォーム2間においても同様にして通信処理を行うものとする。
FIG. 11 is a sequence diagram showing an example of the flow of communication processing between a plurality of platforms in the information processing system according to the present embodiment. Next, an example of the flow of communication processing between the plurality of
プラットフォーム2−1のプロセッサAとPCIeブリッジコントローラ3のブリッジファームウェアは、互いに通信可能なリンク状態(コネクト状態CTD)へ変化するためのリンクアップ処理を実行する(ステップS1101)。また、プラットフォーム2−5のプロセッサEとPCIeブリッジコントローラ3のブリッジファームウェアも、同様に、リンクアップ処理を実行する。
The bridge firmware of the processor A of the platform 2-1 and the
送信元のプラットフォーム2−1のプロセッサAは、プラットフォーム2の初期化時および図示しないネットワークI/Fのアップロード時に、PCIeブリッジコントローラ3へのアクセスが可能となるまで、他のプラットフォーム2との通信を行わずに待機する。PCIeブリッジコントローラ3へのアクセスが可能となると、送信元のプラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3が有するレジスタ35のBAR空間(共通エリア900)のアドレスを取得する(ステップS1102)。
The processor A of the source platform 2-1 communicates with another
次いで、プラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3内のマイコンが物理的にRCと接続されているか否かの確認処理を実行する。言い換えると、プラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3に対して対向するプラットフォーム2が存在するか否かの確認処理を実行する(ステップS1103)。
Next, the processor A of the platform 2-1 executes a confirmation process of whether or not the microcomputer in the
その際、プラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3に対して、存否レポートの送信を要求する(ステップS1104)。ここで、存否レポートは、PCIeブリッジコントローラ3の物理層によるプラットフォーム2とのリンク状態の検出結果を示すレポートである。言い換えると、存否レポートは、PCIeブリッジコントローラ3に対向するプラットフォーム2が存在するか否かを示すレポートである。
At that time, the processor A of the platform 2-1 requests the
PCIeブリッジコントローラ3のブリッジファームウェアは、プラットフォーム2−1から存否レポートの送信が要求されると、存否レポートを生成し(ステップS1105)、当該生成した存否レポートをプラットフォーム201に送信する(ステップS1106)。
When the platform 2-1 requests transmission of the presence / absence report, the bridge firmware of the
本実施形態では、PCIeブリッジコントローラ3のブリッジファームウェアは、PCIeブリッジコントローラ3が有するスロット34毎のGPIO(General Purpose Input Output)端子から出力されるPRSNT2#信号を取得する。ここで、PRSNT#信号は、PCIeブリッジコントローラ3が有するマイコンに対してプラットフォーム2のRCが物理的に接続されているか否かを示す信号である。本実施形態では、PRSNT#信号は、プラットフォーム2のRCとPCIeブリッジコントローラ3のマイコンとが物理的に接続されているコネクト状態CTDの場合(すなわち、対向するプラットフォーム2が存在する場合)には、Lowとなり、プラットフォーム2のRCとPCIeブリッジコントローラ3のマイコンとが物理的に接続されていないノットコネクト状態NOCの場合(すなわち、対向するプラットフォーム2が存在しない場合)には、Highとなる。PCIeブリッジコントローラ3のブリッジファームウェアは、PRSNT2#信号に基づいて、PCIeステータスレジスタ903に記憶される、プラットフォーム2−1,2−6の通信ステータスを更新する。そして、PCIeブリッジコントローラ3のブリッジファームウェアは、PCIeステータスレジスタ903に記憶される通信ステータスを参照して、対向するプラットフォーム2が存在するか否かを判断し、その判断結果に基づいて、存否レポートを生成する。
In the present embodiment, the bridge firmware of the
次に、プラットフォーム2−1のプロセッサAは、PCIeブリッジコントローラ3に対向する他のプラットフォーム2−5がリンクアップ済みか否かを確認する(ステップSステップS1107)。具体的には、他のプラットフォーム2−5へのアクセスを行っていない未アクセスの状態で当該他のプラットフォーム2−5へアクセスする場合、プロセッサAは、PCIeブリッジコントローラ3からの存否レポートを定期的に確認して、他のプラットフォーム2−5が通常稼働中であること(すなわち、PCIeブリッジコントローラ3に対向するプラットフォーム2−5が存在すること)が確認されるまで、他のプラットフォーム2−5へのアクセスを抑制する。プロセッサAは、存否レポートを定期的に確認して、他のプラットフォーム2−5が通常稼働中でないこと(すなわち、PCIeブリッジコントローラ3に対向するプラットフォーム2−5が存在しないこと)が確認された場合には、他のプラットフォーム2−5への通信を行わない。
Next, the processor A of the platform 2-1 confirms whether or not another platform 2-5 facing the
一方、他のプラットフォーム2が通常稼働中であることが確認された場合、プラットフォーム2−1のプロセッサAは、図示しないPCIe/Wrapperレジスタにアクセスして、PCIeブリッジコントローラ3のポート(EP)である該当ポートに対してリンクアップ済みか否かを判断する。
On the other hand, when it is confirmed that the
例えば、プロセッサAは、UART(Universal Asynchronous Receiver Transmitter)経由でLINK_MONITORレジスタを参照して、他のプラットフォーム2−4が接続されるポートである該当ポートがリンクアップ済みか否かを判断する。ブリッジドライバ20は、LINK_MONITORレジスタが「0」の場合、リンクダウンと判断し、LINK_MONITORレジスタが「1」の場合、リンクアップ済みと判断する。
For example, the processor A refers to the LINK_MONITOR register via the UART (Universal Asynchronous Receiver Transmitter) and determines whether or not the corresponding port, which is the port to which the other platforms 2-4 are connected, has been linked up. When the LINK_MONITOR register is "0", the
そして、該当ポートがリンクアップ済みであると判断した場合、プラットフォーム2−1のプロセッサAは、ステップS1102において取得したアドレス空間に記憶される、送信先のプラットフォーム2−5の通信ステータスを参照して、PCIeブリッジコントローラ3と通信を行うことによって、送信先のプラットフォーム2−5のプロセッサEとの通信を実現する(ステップS1108)。
Then, when it is determined that the corresponding port has been linked up, the processor A of the platform 2-1 refers to the communication status of the destination platform 2-5 stored in the address space acquired in step S1102. By communicating with the
このように、本実施形態にかかる情報処理システム1によれば、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォーム2との通信が行われることを防止できるので、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することを抑制できる。
As described above, according to the
上述の実施形態では、各部のI/OのインタフェースとしてPCIeを例に挙げて説明したが、インタフェースはPCIeに限定されない。例えば、各部のインタフェースは、データ転送バスによって、デバイス(周辺制御コントローラ)とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、1個の筐体等に設けられたローカルな環境(例えば、1つのシステムまたは1つの装置)で高速にデータを転送できる汎用のバスであってよい。インタフェースは、パラレルインターフェースおよびシリアルインターフェースのいずれであっても良い。 In the above-described embodiment, PCIe has been described as an example of the I / O interface of each part, but the interface is not limited to PCIe. For example, the interface of each part may be a technology capable of transferring data between a device (peripheral controller) and a processor by a data transfer bus. The data transfer bus may be a general-purpose bus capable of transferring data at high speed in a local environment (for example, one system or one device) provided in one housing or the like. The interface may be either a parallel interface or a serial interface.
I/Oインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。尚、I/Oインタフェースは、シリアル転送の場合、複数のレーンを有してよい。I/Oインタフェースのレイヤ構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、I/Oインタフェースは、階層の最上位であり1または複数のポートを有するルートコンプレックス、I/Oデバイスであるエンドポイント、ポートを増やすためのスイッチ、および、プロトコルを変換するブリッジ等を含んでよい。インタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離して良い。 In the case of serial transfer, the I / O interface may be configured so that point-to-point connection is possible and data can be transferred on a packet basis. The I / O interface may have a plurality of lanes in the case of serial transfer. The layer structure of the I / O interface may include a transaction layer that generates and decodes packets, a data link layer that performs error detection, and a physical layer that converts serial and parallel. The I / O interface also includes a root complex at the top of the hierarchy with one or more ports, endpoints that are I / O devices, switches to increase ports, bridges that translate protocols, and so on. It's fine. The interface may transmit the data to be transmitted and the clock signal multiplexed by a multiplexer. In this case, the receiving side may separate the data and the clock signal by a demultiplexer.
1 情報処理システム
2−1〜2−8,2 プラットフォーム
3 PCIeブリッジコントローラ
20 ブリッジドライバ
21−1〜21−8,21 プロセッサ
22 メモリ
221 通信バッファ
23 ストレージ
31 CPU
32 メモリ
33 インターコネクト
34−1〜34−8,34 スロット
35 レジスタ
900 共通エリア
901 ドライバステータスレジスタ
902−0〜902−7,902 共通レジスタ
1 Information processing system 2-1 to 2-8, 2
32
Claims (3)
前記中継装置は、
前記複数のプラットフォームに共通に1つ設けられ、かつ、前記プラットフォームが通信可能な否かを示す通信ステータスを記憶する記憶領域を前記プラットフォーム毎に有するドライバステータスレジスタ、を備え、
前記プラットフォームは、
当該プラットフォーム自身の前記記憶領域に記憶される前記通信ステータスを更新し、かつ、前記ドライバステータスレジスタが有する前記記憶領域のうち、他の前記プラットフォームの前記記憶領域に記憶される前記通信ステータスを参照して、前記複数のプラットフォームのうち通信可能な前記プラットフォームと通信を行う通信ドライバ、
を備える情報処理システム。 An information processing system including a plurality of platforms and a relay device that is communicably connected to each of the plurality of platforms and relays communication between the plurality of platforms using a transfer bus.
The relay device
A driver status register, which is provided in common to the plurality of platforms and has a storage area for storing communication status indicating whether or not the platform can communicate, is provided for each platform.
The platform
The communication status stored in the storage area of the platform itself is updated, and among the storage areas of the driver status register , the communication status stored in the storage area of another platform is referred to. A communication driver that communicates with the platform capable of communicating among the plurality of platforms.
Information processing system equipped with.
前記中継装置は、
前記ドライバステータスレジスタとは異なるレジスタでありかつ前記複数のプラットフォームの前記通信ステータスを記憶するPCIeステータスレジスタと、
前記中継装置の物理層による前記プラットフォームとの通信状態の変化を検出し、その検出結果に基づいて、前記PCIeステータスレジスタに記憶される前記通信ステータスを更新する制御部と、を備え、
前記通信ドライバは、前記PCIeステータスレジスタおよび前記記憶領域に記憶される前記通信ステータスを参照して、前記プラットフォームと通信を行う請求項1に記載の情報処理システム。 The transfer bus is a bus PCI e (Peripheral Component Interconnect Express) ,
The relay device
A PCIe status register that is different from the driver status register and stores the communication status of the plurality of platforms, and a PCIe status register.
A control unit that detects a change in the communication state with the platform by the physical layer of the relay device and updates the communication status stored in the PCIe status register based on the detection result.
The information processing system according to claim 1, wherein the communication driver refers to the PCIe status register and the communication status stored in the storage area to communicate with the platform.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020077840A JP6826300B1 (en) | 2020-04-24 | 2020-04-24 | Information information system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020077840A JP6826300B1 (en) | 2020-04-24 | 2020-04-24 | Information information system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6826300B1 true JP6826300B1 (en) | 2021-02-03 |
JP2021174258A JP2021174258A (en) | 2021-11-01 |
Family
ID=74228088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020077840A Active JP6826300B1 (en) | 2020-04-24 | 2020-04-24 | Information information system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6826300B1 (en) |
-
2020
- 2020-04-24 JP JP2020077840A patent/JP6826300B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2021174258A (en) | 2021-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2654369B2 (en) | Adapter device provided between processor channel and switching mechanism | |
JP2802043B2 (en) | Clock failure detection circuit | |
KR100555394B1 (en) | Methodology and mechanism for remote key validation for ngio/infiniband applications | |
JP4961481B2 (en) | Bridging Serial Advanced Technology Attachment (SATA) and Serial Attached Small Computer System Interface (SCSI) (SAS) | |
CN108055214B (en) | Apparatus and system for communicating data | |
US5878205A (en) | Method and system for processing complex recovery using polling signals in a shared medium | |
US6715055B1 (en) | Apparatus and method for allocating buffer space | |
WO2015034589A1 (en) | Universal pci express port | |
EP3213220B1 (en) | Methods and circuits for deadlock avoidance | |
US7962676B2 (en) | Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords | |
EP1890439B1 (en) | Data processing management apparatus, mode management apparatus and mode management method | |
US20200358637A1 (en) | Information processing system, and platform | |
US5761422A (en) | Transferring address of data in buffer memory between processors using read-only register with respect to second processor | |
JP6826300B1 (en) | Information information system | |
US20050165974A1 (en) | Computer apparatus and computer system | |
JP6928280B2 (en) | Information processing system | |
JP2022123826A (en) | Data processor and data processing system | |
WO2019203331A1 (en) | Repeating device and information processing system | |
KR102519484B1 (en) | Peripheral component interconnect express interface device and system including the same | |
JP6836087B1 (en) | Information processing systems, platforms, and programs | |
US20200341928A1 (en) | Information processing system | |
CN116955250A (en) | Fast peripheral component interconnect device and method of operating the same | |
JP2020135868A (en) | Information processing system | |
JPH0675796A (en) | Parity error recording device | |
CN111382096A (en) | Information processing system and relay device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200604 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200623 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200714 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200914 |
|
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: 20201215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6826300 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |