JP6826300B1 - Information information system - Google Patents

Information information system Download PDF

Info

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
Application number
JP2020077840A
Other languages
Japanese (ja)
Other versions
JP2021174258A (en
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 JP2020077840A priority Critical patent/JP6826300B1/en
Application granted granted Critical
Publication of JP6826300B1 publication Critical patent/JP6826300B1/en
Publication of JP2021174258A publication Critical patent/JP2021174258A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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.

特開2018−5659号公報Japanese Unexamined Patent Publication No. 2018-5569

ところで、上述の情報処理システムにおいて、複数のプラットフォーム間において通信が行われている際に、いずれかのプラットフォームにおいてカーネルパニック等による突然の再起動によって通信エラーが発生した場合、通信相手の通信の状態を取得することができず、通信相手が存在するものとして、プラットフォーム間での通信が開始されてしまうため、通信エラーが発生していない他のプラットフォームにおいても次々と通信エラーが発生する場合がある。 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.

図1は、本実施形態にかかる情報処理システムの全体構成の一例を示す図である。FIG. 1 is a diagram showing an example of the overall configuration of the information processing system according to the present embodiment. 図2は、本実施形態にかかる情報処理システムにおけるプラットフォームのソフトウェア構成の一例を示す図である。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. 図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. 図4は、本実施形態の一例としてのPCIeのレイヤ構成を示す図である。FIG. 4 is a diagram showing a layer configuration of PCIe as an example of the present embodiment. 図5は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。FIG. 5 is a diagram illustrating the appearance of another processor from the processor in the information processing system according to the present embodiment. 図6は、本実施形態にかかる情報処理システムにおけるプロセッサからの他のプロセッサの見え方を例示する図である。FIG. 6 is a diagram illustrating the appearance of another processor from the processor in the information processing system according to the present embodiment. 図7は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラを介したプラットフォーム間でのデータ転送方法の一例を説明するための図である。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. 図8は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラを介したプラットフォーム間のデータ転送方法の一例を説明するための図である。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. 図9は、本実施形態にかかる情報処理システムにおけるPCIeブリッジコントローラが有するレジスタの構成の一例を説明するための図である。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. 図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. 図11は、本実施形態にかかる情報処理システムにおける複数のプラットフォーム間における通信処理の流れの一例を示すシーケンス図である。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.

以下、添付の図面を用いて、本実施形態にかかる情報処理システムの一例について説明する。 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 information processing system 1 according to the present embodiment includes a plurality of platforms 2-1 to 2-8 and a PCIe bridge controller 3. Each of the plurality of platforms 2-1 to 2-8 is connected to the PCIe bridge controller 3.

以下の説明では、複数のプラットフォーム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 platform 2. Further, here, an example in which the information processing system 1 has eight platforms 2-1 to 2-8 will be described, but the present invention is not limited to this as long as it has a plurality of platforms 2.

プラットフォーム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 PCIe bridge controller 3. Further, a plurality of EPs may be connected to one platform 2, and the platform 2 side may communicate with the PCIe bridge controller 3 using a plurality of RCs.

以下の説明では、プロセッサを示す符号としては、複数のプロセッサのうち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. Reference numeral 21 is 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 processor 21, a storage 23 and a memory (physical memory) 22 shown in FIG. 7.

プラットフォーム2においては、プロセッサ21がメモリ22やストレージ23に格納されたプログラムを実行することで各種機能を実現する。 In the platform 2, various functions are realized by the processor 21 executing a program stored in the memory 22 and the storage 23.

ストレージ23は、ハードディスクドライブ(HDD:Hard Disk Drive)、SSD(Solid State Drive)、ストレージクラスメモリ(SCM:Storage Class Memory)等の記憶装置であって、種々のデータを格納するものである。 The storage 23 is a storage device such as a hard disk drive (HDD: Hard Disk Drive), an SSD (Solid State Drive), and a storage class memory (SCM: Storage Class Memory), and stores various data.

メモリ22は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ22のROMには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ22上のソフトウェアプログラムは、プロセッサ21に適宜読み込まれて実行される。また、メモリ22のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。 The memory 22 is a storage memory including a ROM (Read Only Memory) and a RAM (Random Access Memory). Various software programs and data for this program are written in the ROM of the memory 22. The software program on the memory 22 is appropriately read and executed by the processor 21. Further, the RAM of the memory 22 is used as a primary storage memory or a working memory.

プロセッサ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 processor 21 controls the entire platform 2. The processor 21 may be a multiprocessor. The processor 21 includes, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), and an FPGA (Field Programmable Gate Array). It may be any one. Further, the processor 21 may be a combination of two or more types of elements of the CPU, MPU, DSP, ASIC, PLD, and FPGA.

図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 platform 2 is provided with a bridge driver 20, which communicates with the PCIe bridge controller 3 and other platforms 2 via the bridge driver 20. The communication method by the bridge driver 20 will be described later.

各プラットフォーム2においては、プロセッサ21およびメモリ(物理メモリ)22((図7等参照)を備え、プロセッサ21がメモリ22に格納されたOSや各種プログラム,ドライバ等を実行することでそれぞれの機能を実現する。 Each platform 2 includes a processor 21 and a memory (physical memory) 22 (see FIG. 7 and the like), and the processor 21 executes each function by executing an OS, various programs, drivers, etc. stored in the memory 22. Realize.

各プラットフォーム2に備えられるプロセッサ21は、互いに違うベンダによって提供されるものであってもよい。図1に示す例においては、少なくとも一部のプラットフォーム2(例えば、プラットフォーム2−7)に複数のRCを有するプラットフォーム(例えば、Intel社のx86プロセッサ)が用いられてもよい。 The processors 21 provided in each platform 2 may be provided by different vendors. In the example shown in FIG. 1, a platform having a plurality of RCs on at least a part of platforms 2 (for example, platform 2-7) (for example, an Intel x86 processor) may be used.

また、各プラットフォーム2は、それぞれ他のドライバ構成に影響を与えないように独立動作可能に構成されている。 Further, each platform 2 is configured to be able to operate independently so as not to affect other driver configurations.

プラットフォーム2において、メモリ22の記憶領域の一部は、図7を用いて後述する如く、プラットフォーム2間(プロセッサ21間)において転送されるデータが一時的に格納される通信バッファ221として用いられる。 In the platform 2, a part of the storage area of the memory 22 is used as a communication buffer 221 in which the data transferred between the platforms 2 (between the processors 21) is temporarily stored, as will be described later with reference to FIG.

PCIeブリッジコントローラ3は、複数のプラットフォーム2−1〜2−8間におけるデータ等の通信を実現する。 The PCIe bridge controller 3 realizes communication of data and the like between a plurality of platforms 2-1 to 2-8.

図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 PCIe bridge controller 3 is a relay device that is communicably connected to each of the plurality of platforms 10 and relays communication between the plurality of platforms 10 using a PCIe bus (an example of a transfer bus). This is an example. In this embodiment, the PCIe bridge controller 3 has 8 channels of EP in one chip. As shown in FIG. 3, the PCIe bridge controller 3 includes a CPU 31, a memory 32, an interconnect 33, and a plurality of slots 34-1 to 3-4-8.

スロット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 information processing system 1 according to the present embodiment, the platform 2 is connected to each of the slots 34-1 to 3-4-8.

以下の説明では、スロットを示す符号としては、複数のスロットのうち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 platform 2 may be connected to one slot 34, or one platform 2 may be connected to a plurality of slots 34, and various modifications can be made.

複数のスロット34に対して一つのプラットフォーム2をアサインすることで、このプラットフォーム2に広い通信帯域を用いた通信を行なわせることができる。 By assigning one platform 2 to the plurality of slots 34, it is possible to make the platform 2 perform communication using a wide communication band.

各スロット34は、内部バス(Internal Bus)を介してインターコネクト33にそれぞれ接続されている。また、インターコネクト33には、CPU31およびメモリ32が接続されている。これにより、各スロット34と、CPU31と、メモリ32と、は、インターコネクト33を介して相互に通信可能に接続されている。 Each slot 34 is connected to the interconnect 33 via an internal bus. Further, the CPU 31 and the memory 32 are connected to the interconnect 33. As a result, each slot 34, the CPU 31, and the memory 32 are connected to each other via the interconnect 33 so as to be able to communicate with each other.

メモリ32は、例えば、ROMおよびRAMを含む記憶メモリ(物理メモリ)である。メモリ32のROMには、データ通信制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ32上のソフトウェアプログラムは、CPU31に適宜読み込まれて実行される。また、メモリ32のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。 The memory 32 is, for example, a storage memory (physical memory) including a ROM and a RAM. A software program related to data communication control and data for this program are written in the ROM of the memory 32. The software program on the memory 32 is appropriately read and executed by the CPU 31. Further, the RAM of the memory 32 is used as a primary storage memory or a working memory.

さらに、PCIeブリッジコントローラ3においては、各スロット34に対応させてレジスタ35(図7参照)が備えられ、このレジスタ35のBAR(Base Address Register)空間には、スロット毎に記憶領域が備えられる。すなわち、レジスタ35のBAR空間にはスロット#0〜#7のそれぞれに対応する記憶領域が設けられている。 Further, in the PCIe bridge controller 3, a register 35 (see FIG. 7) is provided corresponding to each slot 34, and a storage area is provided for each slot in the BAR (Base Address Register) space of the register 35. That is, a storage area corresponding to each of slots # 0 to # 7 is provided in the BAR space of the register 35.

PCIeブリッジコントローラ3においては、後述の如く、BAR空間のスロット34毎の記憶領域を用いてプラットフォーム2間のデータ転送を行なう。 In the PCIe bridge controller 3, as will be described later, data transfer between the platforms 2 is performed using the storage area for each slot 34 in the BAR space.

CPU31は、PCIeブリッジコントローラ3全体を制御する。CPU31は、マルチプロセッサであってもよい。CPU31に代えて、MPU、DSP、ASIC、PLD、FPGAのいずれか一つが用いられてもよい。また、CPU31は、CPU、MPU、DSP、ASIC、PLD、FPGAのうちの2種類以上の要素の組み合わせであってもよい。 The CPU 31 controls the entire PCIe bridge controller 3. The CPU 31 may be a multiprocessor. Instead of the CPU 31, any one of MPU, DSP, ASIC, PLD, and FPGA may be used. Further, the CPU 31 may be a combination of two or more types of elements of the CPU, MPU, DSP, ASIC, PLD, and FPGA.

そして、CPU31がメモリ32に格納されたソフトウェアプログラムを実行することで、PCIeブリッジコントローラ3におけるプラットフォーム2間(プロセッサ21間)のデータ転送を実現する。 Then, the CPU 31 executes the software program stored in the memory 32 to realize data transfer between the platforms 2 (between the processors 21) in the PCIe bridge controller 3.

PCIeブリッジコントローラ3は、プラットフォーム2間のデータ転送を高速化するためにPCIeを用い、図1に示すように、各プラットフォーム2に備えられるプロセッサをそれぞれRCとして動作させ、デバイスとして動作するEP間でデータ転送を実現する。 The PCIe bridge controller 3 uses PCIe to speed up data transfer between platforms 2, and as shown in FIG. 1, each processor provided in each platform 2 operates as an RC, and between EPs operating as devices. Realize data transfer.

具体的には、情報処理システム1においては、各プラットフォーム2のプロセッサを、データ転送インタフェースとしてPCIeのRCとして動作させる。また、各プラットフォーム2(プロセッサ21)に対して、PCIeブリッジコントローラ3を、すなわち、各プラットフォーム2が接続されているスロット34をEPとして動作させる。 Specifically, in the information processing system 1, the processor of each platform 2 is operated as a PCIe RC as a data transfer interface. Further, for each platform 2 (processor 21), the PCIe bridge controller 3, that is, the slot 34 to which each platform 2 is connected is operated as an EP.

PCIeブリッジコントローラ3をプロセッサ21に対してEPとして接続する手法としては、既知の種々の手法を用いて実現することができる。 As a method of connecting the PCIe bridge controller 3 to the processor 21 as an EP, various known methods can be used.

例えば、PCIeブリッジコントローラ3は、プラットフォーム2との接続時に、EPとして機能することを示す信号を当該プロセッサ21に通知することで、EPとしてプロセッサ21と接続する。 For example, the PCIe bridge controller 3 connects to the processor 21 as an EP by notifying the processor 21 of a signal indicating that it functions as an EP when connecting to the platform 2.

PCIeブリッジコントローラ3においては、EPtoEP(End Point to End Point)でデータをトンネリングさせて、複数のRCにデータを転送する。プラットフォーム2間の通信は、PCIeのトランザクションが発生したときに論理的に接続され、1つのプロセッサ21にデータ転送が集中しないときは、それぞれのプラットフォーム2間で並行してデータ転送できる。 In the PCIe bridge controller 3, data is tunneled by EPtoEP (End Point to End Point), and the data is transferred to a plurality of RCs. Communication between platforms 2 is logically connected when a PCIe transaction occurs, and when data transfer is not concentrated on one processor 21, data can be transferred in parallel between the respective platforms 2.

図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 processors 21 of the other platforms 2. ..

送信元のプラットフォーム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 bridge controller 3, the physical layer, the data link layer, the transaction layer, and the software are sequentially transferred, and the data is transferred by tunneling to the EP corresponding to the RC of the destination platform 2.

すなわち、PCIeブリッジコントローラ3においては、EP間でデータをトンネリングさせること(換言すれば、一のEPが一のプラットフォーム2から受信したデータを、他のEPにトンネリングさせること)で、一のプラットフォーム2に含まれるRCから他のプラットフォーム2に含まれるRCにデータが転送される。 That is, in the PCIe bridge controller 3, data is tunneled between EPs (in other words, data received by one EP from one platform 2 is tunneled to another EP), so that one platform 2 is used. Data is transferred from the RC included in the above to the RC included in the other platform 2.

送信先のプラットフォーム2−2においては、PCIeブリッジコントローラ3から転送されたデータが、物理層(PHY)、データリンク層、トランザクション層、およびソフトウェアを、順次、転送され、送信先のプラットフォーム2−2のプロセッサBに転送される。 In the destination platform 2-2, the data transferred from the PCIe bridge controller 3 is sequentially transferred to the physical layer (PHY), the data link layer, the transaction layer, and the software, and is transferred to the destination platform 2-2. Is transferred to the processor B of.

情報処理システム1において、プロセッサ21間(プラットフォーム2間)の通信は、PCIeのトランザクションが発生したときに論理的に接続される。 In the information processing system 1, the communication between the processors 21 (between the platforms 2) is logically connected when a PCIe transaction occurs.

PCIeブリッジコントローラ3が有する8スロットのうちの一つに接続された特定のプロセッサ21に対して複数の他のプロセッサ21からのデータ転送が集中しないときは、異なる任意の複数組のそれぞれのプロセッサ21間で並行してデータ転送してもよい。 When data transfer from a plurality of other processors 21 is not concentrated on a specific processor 21 connected to one of the eight slots of the PCIe bridge controller 3, any plurality of different sets of each processor 21 Data may be transferred in parallel between them.

例えば、プラットフォーム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 PCIe bridge controller 3 is the processor B and C. Process communication serially.

ただし、プロセッサ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 PCIe bridge controller 3 may be used. Communication between each processor 21 is processed in parallel.

図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 processors 21, only the PCIe bridge controller 3 can be seen from the OS (for example, Windows device manager) on each processor 21, and the other processors 21 to be connected are directly managed. No need. That is, the device driver of the PCIe bridge controller 3 may manage the processor 21 connected to the tip of the PCIe bridge controller 3.

そのため、送信元、受信先それぞれのプロセッサ21を動作させるためのデバイスドライバを準備する必要がなく、PCIeブリッジコントローラ3のドライバでPCIeブリッジコントローラ3に対して通信処理を行なうだけでプロセッサ21間の通信を行なうことができる。 Therefore, it is not necessary to prepare a device driver for operating the processors 21 of the source and the receiver, and communication between the processors 21 is performed only by performing communication processing with the PCIe bridge controller 3 by the driver of the PCIe bridge controller 3. Can be done.

図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 other platforms 2 is also performed in the same manner. It shall be.

データの送信元のプラットフォーム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 communication buffer 221 from the storage 23 provided in platform 2-1 (reference numeral P1). reference).

ソフトウェアによって、通信バッファ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 communication buffer 221 and the information of the transmission destination (for example, Slot / Offset), and is passed to the bridge driver 20. (See reference numeral P2).

送信元EPにおいて、ブリッジドライバ20は、BAR空間のスロット#4のアドレスに送信データを渡す(符号P3)。これにより、PCIeブリッジコントローラ3において、EPtoEPにより送信元ポートから送信先のプラットフォーム2に対応するスロット(送信先スロット)に送信データが送信される(符号P4参照)。送信先スロットにおいては、レジスタ35のBAR空間のスロット#4に対応する記憶領域に送信データが格納される。 In the source EP, the bridge driver 20 passes transmission data to the address of slot # 4 in the BAR space (reference numeral P3). As a result, in the PCIe bridge controller 3, transmission data is transmitted from the source port to the slot (destination slot) corresponding to the destination platform 2 by EPtoEP (see reference numeral P4). In the destination slot, the transmission data is stored in the storage area corresponding to slot # 4 in the BAR space of the register 35.

送信先スロットにおいて、例えば、ブリッジドライバ20が、レジスタ35のBAR空間のスロット#4に対応する記憶領域から送信データを通信バッファ221に転送し、送信データは、この通信バッファ221においてoffsetによって特定される所定の領域に格納される(符号P5参照)。 In the destination slot, for example, the bridge driver 20 transfers transmission data from the storage area corresponding to slot # 4 in the BAR space of register 35 to the communication buffer 221 and the transmission data is specified by offset in this communication buffer 221. It is stored in a predetermined area (see reference numeral P5).

送信先プラットフォーム2において、例えば、プログラムが、通信バッファ221に格納された送信データを読み出して、メモリ(ローカルメモリ)22やストレージ23に移動させる(符号P6,P7参照)。 In the destination platform 2, for example, the program reads the transmission data stored in the communication buffer 221 and moves it to the memory (local memory) 22 or the storage 23 (see reference numerals P6 and P7).

以上のようにして、送信元のプラットフォーム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 other platforms 2. It shall be transferred.

送信元のプラットフォーム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 memory area 36 of the platform 2-1 from the storage 23 or the like provided in the platform 2-1 (step S701). The memory area 36 may be a part of a communication buffer in which the transmitted data to be transferred is temporarily stored. The memory area 36 is an area provided on each of the platforms 2 in the same size as the memory 22 and the like. The memory area 36 is divided according to the number of slots 305. The divided storage area of the memory area 36 is associated with any slot 305. For example, the storage area indicated by slot # 0 in the memory area 36 is associated with the platform 2-1 connected to slot # 0, and the storage area indicated by slot # 4 in the memory area 36 is stored in slot # 4. It is associated with the connected platform 2-5. The platform 2-1 stores transmission data in an area (here, slot # 4) allocated to the transmission destination slot 305 in the memory area 36.

ルートコンプレックスとしての機能を有する送信元のプラットフォーム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 destination memory area 36 based on the storage area of the memory area 36 of the platform 2. Acquires or generates the address information indicating the address in (step S702).

送信元のプラットフォーム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 PCIe bridge controller 3 having the functions of a plurality of endpoints (step S703). As a result, the PCIe bridge controller 3 transfers the transfer data to the destination platform 2-4 by connecting the source slot 305 and the destination slot 305 by EPtoEP based on the slot information (step S704). ). The destination platform 2 stores transmission data (or transfer data) in the area indicated by the address information in the storage area corresponding to the communication buffer 221 of the destination platform 2 based on the slot information and the address information (step). S705).

送信先のプラットフォーム2−5において、プログラムが、通信バッファ221に格納された送信データを読み出して、メモリ(ローカルメモリ)22の他の領域やストレージ23に移動させる(ステップS706、ステップS707)。 On the destination platform 2-5, the program reads the transmission data stored in the communication buffer 221 and moves it to another area of the memory (local memory) 22 or the storage 23 (step S706, step S707).

以上のようにして、送信元のプラットフォーム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 platforms 2, if a communication error occurs due to a sudden restart due to a kernel panic or the like on one of the platforms 2, the other platform 2 will perform the communication. It becomes impossible to acquire the communication status of the platform 2 in which the error has occurred. Therefore, the other platform 2 determines that the communication partner platform 2 (the platform 2 in which the communication error has occurred) can communicate, and starts communication with the communication partner platform 2. Therefore, the other platform 2 A communication error may occur even in 2.

そこで、本実施形態では、PCIeブリッジコントローラ3が、各プラットフォーム2が通信可能な否かを示す通信ステータスを記憶するレジスタを備える。そして、プラットフォーム2は、PCIeブリッジコントローラ3が備えるレジスタに記憶される通信ステータスを参照して、他のプラットフォーム2と通信を行う。 Therefore, in the present embodiment, the PCIe bridge controller 3 includes a register that stores a communication status indicating whether or not each platform 2 can communicate. Then, the platform 2 communicates with another platform 2 by referring to the communication status stored in the register included in the PCIe bridge controller 3.

これにより、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォームとの通信が行われることを防止できる。その結果、情報処理システム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 platforms 2 in the information processing system 1 and the occurrence of a communication error on the other platform 2.

図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 register 35 included in the PCIe bridge controller 3, but the other slots # 1 to # 7 are shown. The common register corresponding to each has the same configuration.

図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 register 35 included in the PCIe bridge controller 3 has a common BAR space among the registers 35 of the plurality of slots # 0 to # 8 (hereinafter, referred to as a common area). 900 is included.

そして、共通エリア900は、図9に示すように、ドライバステータスレジスタ901を有する。ここで、ドライバステータスレジスタ901は、スロット34(言い換えると、プラットフォーム2)毎に設けられる記憶領域である共通レジスタ902−0〜902−7を有する。以下、共通レジスタを示す符号としては、複数の共通レジスタのうち1つを特定する必要がある場合には符号902−0〜902−7を用いるが、任意の共通レジスタを示す場合には符号902を用いる。 Then, the common area 900 has a driver status register 901 as shown in FIG. Here, the driver status register 901 has a common register 902 to 902-7 which is a storage area provided for each slot 34 (in other words, the platform 2). Hereinafter, as the code indicating the common register, reference numerals 902 to 902-7 are used when it is necessary to specify one of a plurality of common registers, but reference numeral 902 is used when indicating an arbitrary common register. Is used.

ここで、共通レジスタ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 platform 2 corresponding to the common register 902 can communicate.

本実施形態では、図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 driver status register 901 is assigned a 32-bit register for each slot 34. Then, as shown in FIG. 9, the 24th bit among the bits of the common register 902 represents the communication status of the slot 34 (platform 2) to which the common register 902 is assigned.

具体的には、共通レジスタ902に対応するプラットフォーム2が通信不可である場合、24番目のビット(通信ステータス)は、0となる。また、共通レジスタ902に対応するプラットフォーム2が通信可能である場合、24番目のビット(通信ステータス)は、1となる。 Specifically, when the platform 2 corresponding to the common register 902 cannot communicate, the 24th bit (communication status) becomes 0. Further, when the platform 2 corresponding to the common register 902 can communicate, the 24th bit (communication status) is 1.

プラットフォーム2のブリッジドライバ20(通信ドライバの一例)は、共通レジスタ902−0〜902−7のうち、プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータス(本実施形態では、共通レジスタ902が有するビットのうち24番目のビット)を更新する。 The bridge driver 20 (an example of a communication driver) of the platform 2 has a communication status stored in the common register 902 corresponding to the platform 2 itself among the common registers 902 to 902-7 (in the present embodiment, the common register 902). Updates the 24th bit) of the bits held by.

本実施形態では、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がアンロードされた際に、通信ステータスを更新する。具体的には、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がロードされている状態(ブリッジドライバ20自身が有効な状態)から、当該ブリッジドライバ20自身がアンロードされた状態(ブリッジドライバ20自身が無効な状態)に遷移する際に、プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータスを0に更新する。 In the present embodiment, the bridge driver 20 of the platform 2 updates the communication status when the bridge driver 20 itself is unloaded. Specifically, the bridge driver 20 of the platform 2 has the bridge driver 20 itself unloaded (bridge driver) from the state in which the bridge driver 20 itself is loaded (the bridge driver 20 itself is valid). When transitioning to the (invalid state of 20 itself), the communication status stored in the common register 902 corresponding to the platform 2 itself is updated to 0.

また、本実施形態では、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がロードされた際に、通信ステータスを更新する。具体的には、プラットフォーム2のブリッジドライバ20は、当該ブリッジドライバ20自身がアンロードされている状態(ブリッジドライバ20自身が無効な状態)から、当該ブリッジドライバ20自身がロードされた状態(ブリッジドライバ20自身が有効な状態)に遷移する際に、プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータスを1に更新する。 Further, in the present embodiment, the bridge driver 20 of the platform 2 updates the communication status when the bridge driver 20 itself is loaded. Specifically, the bridge driver 20 of the platform 2 is loaded from the state in which the bridge driver 20 itself is unloaded (the state in which the bridge driver 20 itself is invalid) to the state in which the bridge driver 20 itself is loaded (bridge driver). When transitioning to the valid state of 20 itself), the communication status stored in the common register 902 corresponding to the platform 2 itself is updated to 1.

また、プラットフォーム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 bridge driver 20 of the platform 2 refers to the communication status stored in the common registers 902 to 902-7 (in the present embodiment, the 24th bit of each of the common registers 902 to 902-7). Then, it communicates with the communicable platform 2 among the platforms 2-1 to 2-7. On the other hand, the bridge driver 20 of the platform 2 refers to the communication status stored in the common registers 902 to 902-7 (in this embodiment, the 24th bit of each of the common registers 902 to 902-7). Therefore, of the platforms 2-1 to 2-7, communication is not performed with the platform 2 which cannot communicate.

これにより、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォーム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 platform 2 in 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 platforms 2 in the information processing system 1 and the occurrence of a communication error on the other platform 2. Further, when the bridge driver 20 detects a restart of the platform 2 (for example, a sudden restart due to a kernel panic or the like) based on the communication status stored in the PCIe status register 903 described later, the bridge driver 20 is set in the driver status register 901. Among the stored communication statuses, the communication status of the platform 2 that has detected the restart (or the entire common register 902 of the platform 2 that has detected the restart) may be cleared. Then, the bridge driver 20 may not update the driver status register 901 by the CPU 31 of the PCIe bridge controller 3 during normal operation or the like in which no communication error has occurred.

また、図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 platform 2 with which the slot 34 (platform 2) corresponding to the common register 902 can communicate. is there.

例えば、共通レジスタ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 platform 2 connected to the slot 34 that matches the number of the bit.

また、共通エリア900は、図9に示すように、PCIeステータスレジスタ903を有する。ここで、PCIeステータスレジスタ903は、ドライバステータスレジスタ901とは異なるレジスタでありかつ複数のプラットフォーム2−1〜2−8の通信ステータスを記憶するレジスタである。 Further, the common area 900 has a PCIe status register 903 as shown in FIG. Here, the PCIe status register 903 is a register different from the driver status register 901 and is a register that stores the communication status of the plurality of platforms 2-1 to 2-8.

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 platform 2 by the physical layer of the PCIe bridge controller 3. Detect changes. Then, the bridge firmware updates the communication status stored in the PCIe status register 903 based on the detection result of the change in the link state.

本実施形態では、ブリッジファームウェアは、定期的に、リンク状態の変化を検出する。例えば、ブリッジファームウェアは、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 PCIe bridge controller 3, the bridge firmware cannot communicate from the state in which the link state can communicate with the platform 2 (hereinafter referred to as the connect state CTD). It detects whether the state (hereinafter referred to as the not-connect state NOC) has changed, or whether the communication state with the platform 2 has changed from the not-connect state NOC to the connect state CTD.

そして、ブリッジファームウェアは、リンク状態が、コネクト状態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 PCIe status register 903. The communication status of platform 2 is updated to the communication status indicating that communication is not possible. Further, when the bridge firmware detects that the link state has changed from the not-connect state NOC to the connect state CTD, the platform in which the link state has changed to the connect state CTD among the communication status stored in the PCIe status register 903. The communication status of 2 is updated to the communication status indicating that communication is possible.

共通エリア900が、ドライバステータスレジスタ901に加えて、PCIeステータスレジスタ903を有する場合、プラットフォーム2−1のブリッジドライバ20は、共通レジスタ902およびPCIeステータスレジスタ903に記憶される通信ステータスを参照して、プラットフォーム2と通信を行う。 If the common area 900 has a PCIe status register 903 in addition to the driver status register 901, the bridge driver 20 on platform 2-1 will refer to the communication status stored in the common register 902 and the PCIe status register 903. Communicate with platform 2.

これにより、プラットフォーム2における通信エラー等によって当該プラットフォーム2自身に対応する共通レジスタ902に記憶される通信ステータスを更新できない場合に、当該プラットフォーム2との通信が行われることを防止できる。その結果、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することをより効果的に抑制できる。 As a result, it is possible to prevent communication with the platform 2 when the communication status stored in the common register 902 corresponding to the platform 2 itself cannot be updated due to a communication error or the like on the platform 2. As a result, it is possible to more effectively suppress the occurrence of a communication error on any of the platforms 2 in the information processing system 1 due to the occurrence of a communication error on the other platform 2.

本実施形態では、共通エリア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 common area 900 has both the driver status register 901 and the PCIe status register 903 will be described. However, the common area 900 has at least one of the driver status register 901 and the PCIe status register 903. Just do it. When the common area 900 has only one of the driver status register 901 and the PCIe status register 903, the bridge driver 20 of the platform 2 has the communication status stored in one of the driver status register 901 and the PCIe status register 903. It is assumed that communication with the platform 2 is performed with reference to.

図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 other platform 2 with respect to the platform 2 corresponding to the common register 902. It is a bit indicating whether or not.

また、図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 platform 2 connected to the slot 34 assigned to the common register 902. The bridge driver 20 of the platform 2 updates the 24th bit active to 0 when the bridge driver 20 transitions from a valid state to an invalid state. On the other hand, the bridge driver 20 of the platform 2 updates the 24th bit active to 1 when the bridge driver 20 transitions from the invalid state to the valid state.

また、図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 platform 2 corresponding to the common register 902.

例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2において初期化が行われている場合、16番目〜23番目までのビットmоdeを、初期化を表す0x00に更新する。 For example, the bridge driver 20 of the platform 2 updates the bits mоde from the 16th to the 23rd to 0x00, which represents the initialization, when the initialization is performed on the platform 2.

また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2において初期化が完了している場合、16番目〜23番目までのビットmоdeを、初期化の完了を表す0x01に更新する。 Further, for example, when the initialization is completed on the platform 2, the bridge driver 20 of the platform 2 updates the bits mоde from the 16th to the 23rd to 0x01 indicating the completion of the initialization.

また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が無効な状態から有効な状態へと変化している通信準備中である場合、16番目〜23番目までのビットmоdeを、通信準備中を表す0x20に更新する。 Further, for example, when the bridge driver 20 of the platform 2 is preparing for communication in which the platform 2 is changing from the invalid state to the valid state, the 16th to 23rd bits mоde are being prepared for communication. Update to 0x20 to represent.

また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が有効な状態へ変更している場合、16番目〜23番目のビットmоdeを、有効な状態を表す0x21に更新する。 Further, for example, the bridge driver 20 of the platform 2 updates the 16th to 23rd bits mоde to 0x21 indicating the valid state when the platform 2 is changed to the valid state.

また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が有効な状態から無効な状態への遷移準備中である場合、16番目〜23番目までのビットmоdeを、遷移準備中を表す0x30に更新する。 Further, for example, when the platform 2 bridge driver 20 is preparing for the transition from the valid state to the invalid state, the 16th to 23rd bits mоde are updated to 0x30 indicating that the transition is being prepared. To do.

また、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が有効な状態から無効な状態へ遷移している遷移完了待ちである場合、16番目〜23番目までのビットmоdeを、遷移完了待ちを表す0x31に更新する。 Further, for example, when the bridge driver 20 of the platform 2 is waiting for the transition completion when the platform 2 is transitioning from the valid state to the invalid state, the 16th to 23rd bits mоde represent the transition completion waiting. Update to 0x31.

さらに、例えば、プラットフォーム2のブリッジドライバ20は、プラットフォーム2が無効な状態である場合、16番目〜23番目までのビットmоdeを、無効な状態を表す0x32に更新する。 Further, for example, the bridge driver 20 of the platform 2 updates the bits mоde from the 16th to the 23rd to 0x32 indicating the invalid state when the platform 2 is in the invalid state.

また、図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 platform 2 with which the platform 2 corresponding to the common register 902 can communicate. Here, the bit numbers match the numbers in slot 34 to which platform 2 is connected.

例えば、0番目のビットは、スロット#0に対応しており、当該スロット#0に接続されるプラットフォーム2が通信可能か否かを示す。1番目〜15番目までのビットも同様に、スロット34の番号と一致しており、各スロット34に接続されるプラットフォーム2が通信可能か否かを示している。 For example, the 0th bit corresponds to slot # 0 and indicates whether or not the platform 2 connected to the slot # 0 can communicate. Similarly, the first to fifteenth bits also match the numbers of the slots 34, indicating whether or not the platform 2 connected to each slot 34 can communicate.

本実施形態では、プラットフォーム2のブリッジドライバ20は、複数のプラットフォーム2のそれぞれに対応する共通レジスタ902の24番目のビットactiveを参照して、複数のスロット34の番号と一致する番号(0番目〜15番目)のビットactive_nоdeを更新する。 In the present embodiment, the bridge driver 20 of the platform 2 refers to the 24th bit active of the common register 902 corresponding to each of the plurality of platforms 2, and has a number (0th to 0th to) that matches the number of the plurality of slots 34. The 15th) bit active_nоde is updated.

そして、プラットフォーム2のブリッジドライバ20は、他のプラットフォーム2との通信を終了する際(言い換えると、当該ブリッジドライバ20自身がアンロードされる際)、プラットフォーム2のブリッジドライバ20は、当該プラットフォーム2自身の共通レジスタ902の24番目のビットactiveが0であるか否かをチェックする。 Then, when the bridge driver 20 of the platform 2 terminates communication with another platform 2 (in other words, when the bridge driver 20 itself is unloaded), the bridge driver 20 of the platform 2 is the platform 2 itself. It is checked whether or not the 24th bit active of the common register 902 of is 0.

次いで、プラットフォーム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 platform 2 itself is 0, the bridge driver 20 of the platform 2 has all the bits active_nоde from the 0th to the 15th bits of the common register 902 of the platform 2 itself. Check if it is 0 or not. Then, when all the bits active_nоde from the 0th to the 15th common registers 902 of the platform 2 itself are 0, the bridge driver 20 of the platform 2 terminates the communication with the other platform 2.

図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 platforms 2 in the information processing system 1 according to the present embodiment will be described with reference to FIG. Here, an example of the flow of communication processing between the processor A of the platform 2-1 and the processor E of the platform 2-5 will be described, but the communication processing is also performed between the other platforms 2 in the same manner. And.

プラットフォーム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 PCIe bridge controller 3 executes a link-up process for changing to a link state (connect state CTD) capable of communicating with each other (step S1101). In addition, the bridge firmware of the processor E of the platform 2-5 and the PCIe bridge controller 3 also executes the link-up process in the same manner.

送信元のプラットフォーム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 platform 2 at the time of initializing the platform 2 and uploading the network I / F (not shown) until the PCIe bridge controller 3 can be accessed. Wait without doing. When the PCIe bridge controller 3 becomes accessible, the processor A of the source platform 2-1 acquires the address of the BAR space (common area 900) of the register 35 of the PCIe bridge controller 3 (step S1102).

次いで、プラットフォーム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 PCIe bridge controller 3 is physically connected to the RC. In other words, the processor A of the platform 2-1 executes a confirmation process of whether or not the platform 2 facing the PCIe bridge controller 3 exists (step S1103).

その際、プラットフォーム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 bridge controller 3 to transmit the existence / absence report (step S1104). Here, the presence / absence report is a report showing the detection result of the link state with the platform 2 by the physical layer of the PCIe bridge controller 3. In other words, the presence / absence report is a report indicating whether or not the platform 2 facing the PCIe bridge controller 3 exists.

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 bridge controller 3 generates a presence / absence report (step S1105) and transmits the generated presence / absence report to the platform 201 (step S1106).

本実施形態では、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 PCIe bridge controller 3 acquires the PRSNT2 # signal output from the GPIO (General Purpose Input Output) terminal for each slot 34 of the PCIe bridge controller 3. Here, the PRSNT # signal is a signal indicating whether or not the RC of the platform 2 is physically connected to the microcomputer included in the PCIe bridge controller 3. In the present embodiment, the PRSNT # signal is in the case of a connected state CTD in which the RC of the platform 2 and the microcomputer of the PCIe bridge controller 3 are physically connected (that is, when the opposite platform 2 exists). It becomes Low, and in the case of a not-connect state NOC in which the RC of the platform 2 and the microcomputer of the PCIe bridge controller 3 are not physically connected (that is, when the opposite platform 2 does not exist), it becomes High. The bridge firmware of the PCIe bridge controller 3 updates the communication status of platforms 2-1 and 2-6 stored in the PCIe status register 903 based on the PRSNT2 # signal. Then, the bridge firmware of the PCIe bridge controller 3 refers to the communication status stored in the PCIe status register 903 to determine whether or not the opposite platform 2 exists, and based on the determination result, reports the existence or nonexistence. Generate.

次に、プラットフォーム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 PCIe bridge controller 3 has been linked up (step S step S1107). Specifically, when accessing the other platform 2-5 in an unaccessed state without accessing the other platform 2-5, the processor A periodically reports the existence / absence from the PCIe bridge controller 3. To the other platform 2-5 until it is confirmed that the other platform 2-5 is in normal operation (that is, there is a platform 2-5 facing the PCIe bridge controller 3). Suppress access to. Processor A periodically checks the presence / absence report to confirm that the other Platform 2-5 is not in normal operation (ie, there is no Platform 2-5 facing the PCIe Bridge Controller 3). Does not communicate with other platforms 2-5.

一方、他のプラットフォーム2が通常稼働中であることが確認された場合、プラットフォーム2−1のプロセッサAは、図示しないPCIe/Wrapperレジスタにアクセスして、PCIeブリッジコントローラ3のポート(EP)である該当ポートに対してリンクアップ済みか否かを判断する。 On the other hand, when it is confirmed that the other platform 2 is operating normally, the processor A of the platform 2-1 accesses the PCIe / Wrapper register (not shown) and is the port (EP) of the PCIe bridge controller 3. Determine if the link has been uploaded to the corresponding port.

例えば、プロセッサ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 bridge driver 20 determines that the link is down, and when the LINK_MONITOR register is "1", the bridge driver 20 determines that the link is up.

そして、該当ポートがリンクアップ済みであると判断した場合、プラットフォーム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 PCIe bridge controller 3, communication with the processor E of the destination platform 2-5 is realized (step S1108).

このように、本実施形態にかかる情報処理システム1によれば、カーネルパニック等による突然の再起動が行われて通信エラーが発生しているプラットフォーム2との通信が行われることを防止できるので、情報処理システム1内のいずれかのプラットフォーム2における通信エラーの発生によって、他のプラットフォーム2においても通信エラーが発生することを抑制できる。 As described above, according to the information processing system 1 according to the present embodiment, it is possible to prevent communication with the platform 2 in which a communication error has occurred due to a sudden restart due to a kernel panic or the like. It is possible to suppress the occurrence of a communication error on the other platform 2 due to the occurrence of a communication error on any of the platforms 2 in the information processing system 1.

上述の実施形態では、各部の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 Platform 3 PCIe bridge controller 20 Bridge driver 21-11 to 21-8, 21 Processor 22 Memory 221 Communication buffer 23 Storage 31 CPU
32 Memory 33 Interconnect 34-1-3-4-8, 34 Slot 35 Register 900 Common Area 901 Driver Status Register 902-0-902-7,902 Common Register

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.
前記転送バスは、PCI(Peripheral Component Interconnect Express)のバスであって、
前記中継装置は、
前記ドライバステータスレジスタとは異なるレジスタでありかつ前記複数のプラットフォームの前記通信ステータスを記憶する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.
前記通信ドライバは、当該通信ドライバ自身がアンロードされた際に、前記通信ステータスを、前記プラットフォームが通信不可であること示す値に更新する請求項1または2に記載の情報処理システム。 The information processing system according to claim 1 or 2 , wherein the communication driver updates the communication status to a value indicating that the platform cannot communicate when the communication driver itself is unloaded.
JP2020077840A 2020-04-24 2020-04-24 Information information system Active JP6826300B1 (en)

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)

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