JP6409229B2 - 複数のモジュールを備えるサーバ - Google Patents

複数のモジュールを備えるサーバ Download PDF

Info

Publication number
JP6409229B2
JP6409229B2 JP2015166407A JP2015166407A JP6409229B2 JP 6409229 B2 JP6409229 B2 JP 6409229B2 JP 2015166407 A JP2015166407 A JP 2015166407A JP 2015166407 A JP2015166407 A JP 2015166407A JP 6409229 B2 JP6409229 B2 JP 6409229B2
Authority
JP
Japan
Prior art keywords
module
modules
bmc
fpga
server
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.)
Expired - Fee Related
Application number
JP2015166407A
Other languages
English (en)
Other versions
JP2016045968A (ja
Inventor
ブラサック クロード
ブラサック クロード
ルクルティエ ジョルジュ
ルクルティエ ジョルジュ
Original Assignee
ブル・エス・アー・エス
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 ブル・エス・アー・エス filed Critical ブル・エス・アー・エス
Publication of JP2016045968A publication Critical patent/JP2016045968A/ja
Application granted granted Critical
Publication of JP6409229B2 publication Critical patent/JP6409229B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Radio Relay Systems (AREA)
  • Logic Circuits (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、情報処理及び/又は通信のためのシステムの分野に関する。特に、本発明はマルチモジュールサーバの実現及びこれに関連する機能の実行を提案する。
コンピュータサーバのアーキテクチャの中でも、SMPサーバ、すなわち英語の「Symmetric Multi Processor」の頭文字、として知られている多重プロセッサ網は典型的には、複数の集積回路(一般に、ソケットとして知られる)により、製造される。これらのサーバに対して、ソケットは、システム内のプロセッサであり、これらの集積回路同士が、相互接続用バスを介して、非常に高いスループット及び非常に短い待ち時間で接続され、共有メモリの実現を可能にしている。ここで『相互接続』とは、2つのインタフェースを接続する物理的及び論理的結合のことをいう。
一般に、電気的性能の理由のため、それぞれのソケットは、SMPサーバのメモリ構成部分を直接サポートする。そして、このメモリの全てはメモリーコントローラーにより一致するように構成されているため、ひとつのプロセッサにより行われたあらゆるデータの変更は、他のすべてのプロセッサによっても可視であることが、自動的に確保される。
物理的理由のため、ソケット数の多いSMPサーバは、いくつかのサブシステムに分割する必要がある。これらのサブシステムは、例えば、マザーボードに接続されているドータボード、電源及びシグナルバスをバックプレーンに接続するボード、又は、セクターによる自己出力型電圧及び電流モジュールにより達成することができる。このため、SMPサーバはマルチモジュールと呼ばれる。
これは、SMPサーバのアーキテクチャに関係なく、規格及び/又は規格ベースのハードウェア管理ツールを必要とする。
したがって、IPMI(英語の「Intelligent Platform Management Interface」の頭字語)として知られている装置のインテリジェントマネジメントのインタフェースは、インタフェースに対して、コンピュータ装置内の一部の部品又は電子機器の物理的状態を、処理する、すなわち監視及び制御する、一組の仕様を提案する。IPMI規格は、例えば、サーバ内の温度、電圧、マイクロプロセッサの電力、これらのスイッチングの適正さ、部品の含水量、又は冷却ファンのスピードまでの制御をも、監視することが可能になる。全てのIPMI機能は一般に、基本入出力システム、即ち、BIOS(「Basic Input/Output System」の頭字語)により、又は、装置の製造者によって提供される管理ソフトウェアによって、活性化される。
したがって、必要に応じ、例えばアラートの上昇が装置のイベント(例:過熱)に関係していた場合、ネットワーク管理者は、適切なグラフィックインタフェースを介して、及び、同じ場所から(例えばローカルマシンで、又は、遠隔から)、関連する装置の電源をオフにし、再起動し、必要に応じて、その設定をリセットし、代替的な装置をオンにすることができる。
電子機器又は部品の物理状態のためのハードウェア(英語では“hardware”)は一般に、マザーボード又はメイン装置上で実行されるベースボードマネージメントコントローラ、いわゆるBMC(英語の「Baseboard Management Controler」の頭字語)により監督される。例えば、IPMI規格を実行するファームウェア(英語ではfirmware)を運転するシステムオンチップ、SOC(英語の「System On Chip」の頭字語)のサーバマザーボードの統合により、サーバに対してBMC機能は遂行される。
しかしながら、既存の技術を実行するだけでは、モノマザーボードのサーバの共通の問題に直面してしまう。ロジスティックスデータバスを介してインターコネクト部品に接続される、例えば、規格I2C(「Inter-Integrated Circuit」の頭字語)に従って接続される、複数のモジュール付きのサーバの場合、BMCコントローラの使用は、直ちに限定されてしまう。実際、センサーの数は、相互接続モジュールの数に比例して増えてしまうが、IPMI規格で認められるセンサーは所定の数に限定されている。更に、モジュール数が増加すれば、論理データバスの拡張が必要となる。例えばI2Cの場合に、このような拡張があれば、信頼性が低下し、性能及び柔軟性が不足することとなる。
IPMIを支持しているために生じる問題を回避するための解決策としては、所有者の管理規格を採用することが挙げられる。しかしながら、標準マネージメントインタフェースを用いた既存のデータ管理システムによりサーバの相互接続性及び統合の可能性を確実にし続けたいならば、そのような解法は、あまり有利でない。
したがって、マルチモジュールのコンピュータ装置に対して、装置間の互換性を確保するためには、IPMI標準、及び更に一般には標準マネージメントインタフェースに対するサポートを提供し続けるべきである。
本発明は、上記の不利益を改善することを目的とする。
第1の目的は、マルチモジュールサーバアーキテクチャを提案することにある。
第2の目的は、多数の拡張可能なモジュール、及び、標準マネージメントインタフェースに対するプログラムの互換性を有する、マルチモジュールサーバを提供することにある。
第3の目的は、標準IPMI等の標準マネージメントインタフェースと互換性を有し、かつ、マルチモジュールサーバのあらゆる構成要素モジュールのマネージメントを可能にする、ファームウェアを提案することにある。
この目的のために、複数のモジュールを含むサーバが提案され、それぞれのモジュールは、−モジュールの間で共有メモリの整合性を確実にすることができる、通信要素と、
−互いに接続され、かつ、通信要素に接続される、複数のプロセッサCPUと、
−複数のプロセッサCPU及び通信要素に接続され、ファームウェアを実行する、システムオンチップSOCと、
−システムオンチップSOC、通信要素及び複数のプロセッサCPUに接続される、フィールドプログラマブルゲートアレイ(FPGA)と
を備え、モジュールは、−ネットワークXQPIを介した各通信要素間の相互接続と、
−IPMB標準プロトコルに従って通信プロトコルをカプセル化する、プライベートなプロトコルイーサネット(登録商標)のネットワークを介した各システムオンチップSOC間の相互接続と、により相互接続され、
ファームウェアは、2つのソフトウェアコンポーネントを実行する各モジュールの各システムオンチップSOC上で実行され、すなわち、
−システムのマネージメントサテライトコントローラ要素(SMC)は、このモジュールの物理的パラメータの測定及びこのモジュールの局所機能の管理を行うが可能であり、
−ベースボードのマネージメントコントローラ要素(BMC)は、全モジュールのSMCの全てを監督することと、サーバ機能の全てを中央管理することと、各システムオンチップSOC間の相互接続を介してBMC要素の各々とデータ交換を行うことが、可能である。
有利には、このサーバでは、通信要素の相互接続及びSOCの相互接続は、フィールドプログラマブルゲートアレイ(FPGA)を含む相互接続ボックスの媒介を介して、遂行される。
有利には、このサーバでは、相互接続ボックスは、複数の電気駆動モジュールであり、各モジュールは、少なくとも2つの電源ユニットPSUからなり、電源ユニットPSUは、2Nの冗長性の大きさが与えられる。
有利には、このサーバでは、各BMC要素によって管理される機能の一つは、モジュールの即時性を可能にする機能であり、この機能は、以下の通りに遂行される。
−各モジュールのFPGAにより、システムオンチップSOCを介して相互接続ボックスに、IDのリクエストを送信することと、
−IDのリクエストに応答して、FPGAにより、相互接続ボックスに、FPGAに固有のIDを送信することと、
−BMC要素により、そのモジュールのアドレス及びそれが相互接続するモジュールのアドレスを決定することと、により行われ、これらアドレスは、FPGAにより承認されるIDにより決定される。有利には、このサーバでは、FPGAによって相互接続ボックスに送信される識別子IDは、各モジュールの相互接続モジュールに対する物理的接続の各位置に応じて決定される。
有利には、このサーバでは、各モジュールは、次を備えている。
−そのモジュールのプロセッサCPUに同期させることができるクロック信号ジェネレータ、
−共通の特性に従い、サブセットモジュールへと分割及びグループ化するようプログラムされるそのFPGA。
有利には、このサーバでは、各BMC要素は、下記のようにプログラムされる。
−このセット又はサブセットのモジュールの各々の識別情報に従い、モジュールのセット又はサブセット中の所属を、マスターモジュールかスレーブモジュールかに特定し、
−それがマスターモジュールに属している場合は、FPGAが同じセット又はサブセットのスレーブモジュールに、マスターモジュールのクロック信号を配信するように、FPGAを構成し、
−それがスレーブモジュールに属している場合は、FPGAがスレーブモジュールのクロック信号を無効にするように、FPGAを構成する。
有利には、このサーバでは、各モジュールの各プロセッサCPUは、タスクを複数の軽プロセスと同期させることが可能なタイムスタンプカウンターTSCを含み、セット又はサブセットのモジュールにおけるこれらのプロセッサCPUの全てのタイムスタンプカウンターTSCの同期は、以下のように行われる。
−スレーブモジュールが初期化段階又はリセットされた場合に、このセット又はサブセットの各スレーブモジュールの各BMC要素によって、マスターモジュールのBMCへの通知を送信し
−マスターモジュールが初期化段階又はリセットされた場合に、マスターモジュールのBMCへ通知し、
−全てのマスターモジュール及びスレーブモジュールが初期化段階又はリセットされた場合は、同じセット又はサブセットの全てのモジュールに対して、全てのプロセッサCPUのタイムスタンプカウンターTSCをリセットすることができる同期信号を、マスターモジュールのBMCにより送信する。
有利には、このサーバでは、各モジュールの各FPGAは、そのモジュールにおけるあらゆるエラーの発生において少なくともエラーのタイムスタンプを含むエラーに関する情報を記録することが可能なタイムスタンプカウンターTSCを含み、モジュールのセット又はサブセットの各FPGAのタイムスタンプカウンターTSCのセットの同期は、以下のように行われる
−スレーブモジュールが初期化段階又はリセットされた場合は、マスターモジュールのBMCへの通知を、このセット又はサブセットの各スレーブモジュールの各BMC要素により送信し、
−マスターモジュールが初期化段階又はリセットされた場合は、マスターモジュールのBMCへ通知し、
−全てのマスターモジュール及びスレーブモジュールが初期化段階又はリセットされた場合は、同じセット又はサブセットの全てのモジュールに対して、FPGAの全てのタイムスタンプカウンターTSCを再初期化することができる同期信号を、マスターモジュールのBMCにより送信する。
有利には、このサーバでは、セット又はサブセットのモジュールにおけるエラーの識別は、このセット又はサブセットのFPGAのタイムスタンプカウンターTSCのセットによって記録されたエラーの情報同士を比較するステップによって遂行され、BMCは、モジュールの同じセット又はサブセットにおけるエラー情報を交換及び共有することができる。
本発明の他の目的及び利点は、下記の図面に関して説明される実施形態の説明に照らして明らかである。
ある実施形態において複数のモジュールを含むサーバを説明する図である。 ある実施形態において、サーバ内相互接続の場合における8つのモジュールの相互接続を説明する図である。
図1は、ボード又はプリント回路基板等の、複数のモジュール1、2、3、本例では3つ、を含むサーバ100の一つの実施形態を示す。しかしながら、任意の数(例えば8)のモジュールを、サーバ100に統合することができる。有利には、モジュール1、2、3の各々は、同一であり、かつ、以下を含む。
−1つあるいは複数のプロセッサCPU(英語の「Central Processing Unit」の頭文字)10、11、20、21。ここに示す例では、各モジュール1.2は、2ソケット型であり、これは、2つのプロセッサCPU10、11、20、21を支持するという意味である。有利には、同じモジュール1、2、3のプロセッサCPU10、11、20、21は、リンクQPI(英語の「Quick Path Interconnect」の頭文字)101、201を介して、これらの間で相互接続する。−システムオンチップSOC12、22、例えば、マネージメントファームウェアを実行するマイクロコントローラ。
一実施形態では、ファームウェアは、並列に2つのプロセスを実行することを含み、情報の交換が可能であり、各々のプロセスは、それぞれ論理的方法で以下に述べる部品の機能を実現させる。その部品とは、BMC要素14、24、及び、以下ではSMC(英語の「Satellite Management Controller」の頭文字)15、25との名称で示される、システム管理用サテライトコントローラ要素である。有利には、BMC要素14、24及びSMC要素15、25の機能は、IPMI規格で定義される。
一実施形態では、SOC12、22は、通常インタフェースPECI102、202(英語の「Platform Environment Control Interface」の頭文字)と呼ばれる『プラットホーム環境制御インタフェース』を介してプロセッサCPU10、11、20、21とデータ交換することが可能である。
−FPGA13、23(英語の「Field−Programmable Gate arrays」の頭文字)と一般に呼称され、インタフェースとなるあらゆる要素に、クロック、エラー及び/又はリセット信号等の信号の伝送を可能にする、「ネットワークプログラマブルゲート」要素。有利には、FPGA13、23は、プロセッサCPU10、11、20、21とデータ交換可能な接続部103、203と、SOC12、22とデータ交換が可能な接続部104、204とを備えている。
−キャッシュがプロセッサCPU10、11、20、21に関連する複数のメモリ。
−各プロセッサCPU10、11、20、21へのリンケージ105、205を有し、各モジュール1、2、3のプロセッサCPU10、11、20及び21の間で共有される「グローバル」メモリの一貫性を確保することができる、通信要素16、26。
一実施形態では、通信要素16、26は、これは出願人によって提案され商業上利用可能なソリューションであるBCS(「Bull Coherent Switch」の頭文字)タイプの要素か、又は、この要素BCS2(「ブルコヒーレントスイッチ2」)の事後の全てのバージョンである。
また、通信要素16、26は、接続部103を介してFPGA13と、及び、I2C規格に従ったバス106、206を介してSOC12、22と、データ交換が可能である。
有利には、サーバ100のモジュール1、2、3は、リンクにより高速で相互接続し、以下の相互接続を実現させる。
−出願人によって提案され商業的に利用可能な相互接続のソリューションである、XQPI(英語の「eXtended QuickPath Interconnect」の頭文字)ネットワークを介した、モジュール1、2、3の通信要素16、26間の相互接続27。
有利には、相互接続27は、モジュール1、2、3に固有のBCS2のような通信要素16、26が、情報交換を行うことを可能にし、モジュール1、2、3のセットのメモリの一貫性を確保する。ネットワークXQPIを介した相互接続27は、さらに、同期がFPGA13、23によって管理されるクロック信号のような同期信号の、各モジュール1、2、3間での伝達を可能にする。
−PMPI(英語の「Intelligent Platform Management Bus」の頭文字)標準プロトコルに従って通信プロトコルをカプセル化する、イーサネット(登録商標)プロトコル中のプライベートなネットワークを介したモジュール1、2、3のSOC12、22の相互接続28。現状の技術では、I2C規格に一致したPMPI規格が、通信バスで用いられる。LAN(「Local Area Network」の頭文字)上でのPMPI規格の使用、即ち「PMPIオンLAN」は、サーバ100のモジュール1、2、3のSOC12、22の各々の間でのデータ通信の性能、信頼性及び柔軟性を改良する利益を提供するものとして、ここに提案される。各リンクタイプ相互接続28は、双方向性のイーサネット(登録商標)リンク及び一組の信号側波帯、SPI(シリアル・ペリフェラル・インタフェースの略)信号、を含むことに注目すべきである。
一実施形態では、通信16、26の要素の相互接続27及びSOC12、22の相互接続28は、図2に示され後述されるエンクロージャー相互接続30の媒介を通して、遂行される。
例えば、相互接続30の場合は、一般に英語特有の語法で「switch」と呼ぶスイッチネットワークを含む「バックプレーン」である。有利には、各SOC12、22の上で実行される各BMC要素14、24は、特に各モジュール1、2、3の各BMC要素14、24間でのデータ交換のためのインタフェース、ならびに、あらゆる規格のマネージメントインタフェースと同様に、外部コンピューターファシリティ管理アプリケーションとして用いることができる。
例えば、サーバ100に用いられるコンピュータ装置のマネージメントの外部アプリケーションは、管理者が利用できるグラフィックインタフェースの形態で与えられ、以下を可能にする。
−モジュール1、2、3の物理的パラメータ(例えば、測定温度、測定電圧、特定の相互接続ケーブルの存在/欠如の検出)を監督すること。
−誤動作(例えば、モジュールの電圧のオン/オフ動作又はモジュール1、2、3の再起動)の検出に行うために適したBMC要素と通信を行うこと。
これを行うため、各SOC12、22の相互接続28が、論理的観点から、各モジュール1、2、3の各BMC要素14、24の相互接続を実現する。
したがって、各モジュール1、2、3のBMC要素14、24は、自分自身の間で情報交換を行うことができ、それらの機能及びそれらの情報の共有化は、装置マネージメントの外部アプリケーションの観点から、モノモジュールサーバ100としてのサーバ100に与えることができる。
従って、各BMC要素14、24は、例えば、サーバ100のハイレベルの機能、すなわち集中管理するようにプログラムされる。
−サーバ100の電力不足の管理。
−1つ以上の要素SMC15、25の管理、例えばそれらの状態の管理、測定値又はSMC要素15、25に対して再構築されるあらゆるその他のデータの受領、又はコマンド(操縦)メッセージのSMC要素15、25に向けた再伝送。
−異なるモジュール1、2、3間に存在する区画に基づくクロックの信号の分割。そして、これはマルチモジュールシステム内で、区画との語で呼ばれており、モジュール1、2、3のサブセットは同じシステムの他のモジュール1、2、3と独立して動作することができる。例えば、区画は、同じオペレーティングシステムOS(英語の「Operating System」の頭文字)を実行するモジュール1、2、3のサブセットであり、又は、モジュールがハイパーバイザーの層を含む場合は、オペレーティングシステムOSの同じセットを実行する。
有利には、モジュール1、2、3の1つ以上のセットを、共通の特性を共有する、例えば同じ動作のシステムOSを実行するグループに、グループ化することができるあらゆる分割法を、用いることができる。−異なるモジュール1、2、3間の既存の区画に基づく、同期信号の同期及び、相互接続を介しXQPIネットワーク27を通した伝播すなわちルーティング。各SMC要素15、25は、それが配置されているモジュール1、2、3の低レベルの、すなわちローカルな機能の管理を可能にし、それが監督する、例えば測定する同じSOC12、22のデータを、BMC要素14、24に対して通信する。例えば、サーバ100への電力印加時には、各SMC要素15、25は、予め設定されたプロセス(例えば、シーケンス、そのBCS2のプログラミング、制御電圧)に従って、それ自身のモジュール1、2、3にエネルギーを与え、同じSOC12、22のBMC要素14、24へその電力モジュール1、2、3の状態を報告する。
さらに、各SMC要素15、25は、それ自身の材料の状態を監督し、例えばそれ自身のモジュール1、2、3の一定のパラメータ(例えば温度、電圧)を計測し、そして、この情報を同じSOC12、22のBMC要素14、24、に伝送する。
BMC要素14、24は次に、誤動作の検出に際して個々のモジュール1、2、3を再開する等、SMC要素15、25が提供しようとする設定に基づき、決定を行うことができる。
したがって、各モジュール1、2、3のハードウェアコンポーネントは、モジュール1、2、3にローカルなSMC要素15、25によって、他のモジュール1、2、3と独立してハンドリングされ、その一方、各BMC要素15、25は、LAN上のPMPIを介して相互接続28により、任意の数のモジュール1、2、3のハンドリングすることができる。有利には、このアーキテクチャは非常に柔軟であり、何故なら、モジュール1、2、3の数に拘束されないからである。一実施形態では、イーサネット(登録商標)及びSPI接続の物理的トポロジは、星型である。
側波帯クロック、CATERR又はTSC_SYNCタイプの信号は、メッシュタイプの物理トポロジ(英語では、「All−to−all(全対全)」という)である。他の様々な実施形態では、例えば閉環ネットワーク又は多次元円環体のトポロジ等、他のトポロジも可能である。有利には、相互接続筐体30が、選択されたトポロジに応じて製造される。
例えば、サーバで100がN個のモジュールで、トポロジが『全対全』の場合には、モジュール1、2、3つのポートの各相互接続は、その隣接の各々に対して高速で、N−1個のリンクを支持しなければならない。
8つのモジュール、すなわちN=8、の構成において、各モジュール1、2、3が、8つの一方向性チャネルに7つのリンクを含む場合は、相互接続ボックス30は、高速で8×7×8個すなわち448個の一方向性チャネルを有することができるように製造される。さらに、障害が生じた場合に相互接続ボックス30の障害許容力を向上させるため、このユニットのスイッチを複数のスイッチにより実現させることが可能である。
例えば、モジュール1、2、3のSOC12、22を相互接続する8つのモジュール付きのサーバ100に対して、相互接続ボックス30のスイッチは、8つのポートイーサネット(登録商標)スイッチである。
このスイッチの1つは、以下のようにして5つのポートで2つのスイッチを介して実現することができる:スイッチの各々が派生データリンクの4つのポート(いわゆる「ダウンリンク」ポート)及び基本データリンクの1つのポート(「アップリンク」ポートと呼ばれる)を含む場合それは、プリント回路のトレースを介して「アップリンク」ポートを接続する。
従って、モジュール1、2、3のSOC12、22が、全てのスイッチの障害が生じた場合のみ、ダイアログのそれらの手段の全てを失うことができるというわけではなく、このリスクは、相互接続ボックス30のスイッチの構築に用いられるスイッチの数に比例して低減する。同じ障害許容力の理由のため、モジュール間に物理的接続を提供するハードウェアコンポーネントの全てが、受動素子である。
有利には、これらの受動素子は、「故障間隔平均時間」、MTBF(英語の「mean time between failures」の頭文字)が、モジュール1、2、3のMTBFよりも数桁大きくなるように、選択される。
したがって、サーバ100の可用性を評価しようとする場合、これらの要素によって形成される故障の数は無視できる。常に、電力停止からの良好な障害許容力を確保することを考慮すれば、各モジュール1、2、3は、少なくとも2ブロックの電源PSU(「Power Supply Unit」の頭文字)を含み、それは、例えば、各モジュール1、2、3の入力に、例えば12V未満の電力を供給するAC/DC(「Alternating Current/Direct Current」の頭文字)コンバータの形態で現れてもよい各PSU電源ユニットは、2N冗長性の大きさとすることができ、すなわち、これらの技術要素(例えば電子部品)の倍増を含み、独立した交流ACの2つのネットワークに接続して、ネットワークの一方が故障した場合のサーバ100の機能を確保することが可能である。
相互接続ボックス30は、モジュール1、2、3によって電力が与えられており、そのそれぞれは、所定の電圧、例えば12V、を、相互接続28を通してイーサネット(登録商標)にリンクを伝送する。そしてこれらの電流は、相互接続ボックス30の適切な構成要素である電子デバイス、例えばダイオードスイッチ等によって追加される。現状技術では、PoE(英語の「Power−over−Ethernet」の頭文字)規格は、電力スイッチを有するスイッチで、イーサネット(登録商標)リンクにインタフェースされる装置の電力のことをいう。したがって、スイッチにおける電気的故障は、あらゆる電力装置を予防する。この規格とは対照的に、上記の実施形態は、サーバ100への電源の影響を低減することができ、モジュール1、2、3の見込まれる障害の周辺を限定し、また、故障確率の低減は、電源の冗長ブロックによってもたらされたと考えられる。
したがって、モジュール1、2、3の相互接続27を介して遂行されるイーサネット(登録商標)リンクの全ては、共働して、冗長な電源を相互接続ボックス30からスイッチへ提供し、このスイッチのみが能動部分を備えている。したがって、相互接続ボックス30のスイッチは、1つ以上のモジュール1、2、3の見込まれる障害にもかかわらず動作することができる。有利には、このスイッチで浪費される電力は、非常に低く(2〜3ワットのオーダー)、このスイッチ中に要素の数は、数百万時間のオーダーのMTBFを提供することができる。さらに、SOC要素12、22のBMC14、24を、このスイッチの操作を監督する及びあらゆる故障を管理するように構成する。有利には、上記の実施形態では、あらゆるモジュールに1、2、3が、その中心位置にあっても、スイッチ相互接続ボックス30の故障に抵抗することができるようになる。
スイッチで故障が検出された場合に、モジュールをその場で直ちに交換しても、マルチモジュールサーバ100の機能を損なうことはない。図2は、一実施形態によりかつ上記の特性に従った、相互接続ボックス30を有する8個のモジュール1、2、3、4、5、6、7、8の相互接続を示す。
この図において、各モジュール1、2、3、4、5、6、7、8は、それぞれ前記の要素を含む、
−特定のクロック信号130、230、330、430、530、630、730、830をハンドリングすることができるFPGA13、23、33、43、53、63、73、83。
これらの信号の管理は、後に詳述される。
−インスタンス化、電力再起動及びモジュール1、2、3、4、5、6、7、8のインスタンス化等、高レベルの機能を管理するに適切なBMC要素14、24、34、44、54、64、74、84。
通信要素16、26、プロセッサCPU10、11、20、21、SOC12、及び相互接続27、28は、表現を単純化するため図中には示されないが、存在している。とりわけ、各モジュール1、2、3、4、5、6、7、8は、それぞれ相互接続27、28を介し、相互接続ボックス30を通して、その通信要素16、26及びそのSOC12、22に、他のモジュール1、2、3、4、5、6、7、8で、それぞれ相互接続する。
一実施形態では、相互接続ボックス30上の各モジュール1、2、3、4、5、6、7、8の接続は、バス同期式データSPI(「Serial Peripheral Interface」の頭文字)131、231、331、431、531、631、731、831を介して、それぞれ後者のレベルで実現される。SPI同期データバス331、431、531、631、731、231、831を介しての、各モジュール1、2、3、4、5、6、7、8と相互接続ボックス30との間でのデータ交換は、これらの要素の間での二重矢印で、図中に示される。さらに、SPI同期データバス131、231、331、431、531、631、731、831の各々は、相互接続ボックス30の付属装置、ここではFPGA、のレジストリ132、232、332、432、532、632、732、832に、それぞれインタフェースされる。
有利には、相互接続ボックス30のFPGAは、初期化段階で、各モジュール1、2、3、4、5、6、7、8の各SOC12、22に、認識番号を割り当てることができるようになる。同期式データSPIバス131、231、331、431、531、631、731、831と、レジストリ132、232、332、432、532、632、732、832との間の情報交換は、ここでは、これらの要素の間での二重矢印で象徴化される。モジュール1、2、3、4、5、6、7、8の初期化段階は、例えば、起動中、サーバ100の再起動、又は、BMC要素14、24、34、44、54、64、74、84によりSOC12、22を初期化する際に、生じ得る。
前述の通り、各モジュール1、2、3、4、5、6、7、8の各SOC12、22の相互接続28は、通信ボックス30を介してイーサネット(登録商標)プロトコル中のプライベートなネットワークで実行され、PMPI標準プロトコルに従って通信を内部に閉じ込める。
したがって、各SOC12、22は、初期化段階の間、その隣人のとは異なるアドレスを介して、そのIP(英語の「Internet Protocol」の頭文字)接続を開始することができる。これを実現するため、様々な実施形態に従い、各FPGA13、23、33、43、53、63、73、83は、相互接続28を介してインタフェースされるSOC12、22を通して、相互接続ボックス30上の認識番号のためのリクエストを送信する。各リクエストは、同期式データSPI131、231、331、431、531、631、731、831のバスのレベルで、通信ボックス30が受信し、同期式データSPIは、インタフェースされるFPGAのレジスタ132、232、332、432、532、632、732、832に各リクエストを送信する。
有利には、各リクエストは、固有かつFPGAのレジスタ132、232、332、432、532、632、732、832にのみ既知である認識番号を得ることを可能にする。このID認識番号は、イーサネット(登録商標)信号から物理的に独立したSPIバスの信号によって発行される(もちろん、側波帯信号は、XQPI界面の整数部分ではない)。一実施形態では、あらゆるID認識番号は、例えば3ビットで符号化されるポート番号を参照し、この認識番号は、相互接続モジュール30に物理コネクションの各位置に特異的である。
有利には、このID認識番号は固有であり、すなわち、特異的なモジュール1、2、3、4、5、6、7、8を特定する。通信ボックス30は、受信した各リクエストに応じた認識番号を、そのFPGAによって通信し、その応答は、同期式データSPIバス131、231、331、431、531、631、731、831により、次いでSOC12、22により、リクエストを発行したモジュール1、2、3、4、5、6、7、8のFPGA13、23、33、43、53、63、73、83へと、送信される。
FPGA13、23、33、43、53、63、73、83に承認されたIDは、次いで、インタフェースされて適切なインスタンス化を決定する、例えばIPアドレスをモジュール1、2、3、4、5、6、7、8に割り当てる、SOC12、22の要素BMC14、24、34、44、54、64、74、84により読み出される。
各FPGA13、23、33、43、53、63、73、83における各BMC要素14、24、34、44、54、64、74、84による認識番号の読取りは、これらの要素の間の片側矢印により図中に示される。一実施形態では、各BMC要素14、24、34、44、54、64、74、84は、この認識番号にIPアドレスの計算のアルゴリズムを適用して、そのモジュール1、2、3、4、5、6、7、8のIPアドレスを決定して、ダイナミックに例示する。
さらに、各FPGA13、23、33、43、53、63、73、83は、同期式データSPIバス131、231、331、431、531、631、731、831を介して、相互接続ボックスに接続されるモジュール1、2、3、4、5、6、7、8の数を読み取ることができる。
したがって、各モジュール1、2、3、4、5、6、7、8のBMC要素14、24、34、44、54、64、74、84は、同じIPアドレス計算アルゴリズムを適用することにより、隣接のモジュール1、2、3、4、5、6、7、8のIPアドレスを演繹することもできる。
既知のIPアドレスの全てを、例えば、13、23、33、43、53、63、73、83に保存することができる。他の実施形態では、各モジュール1、2、3、4、5、6、7、8のIPアドレスは、32ビットで形成されたIPv4タイプのアドレスである。
更に、各IPアドレスは、最上位の29ビットを含むと仮定され、このような構成は、相互接続28等のプライベートなイーサネット(登録商標)ネットワークに適用できる。FPGA13、23、33、43、53、63、73、83の各々により各認識番号を復元した後、各要素BMC14、24、34、44、54、64、74、84は、そのFPGA13、23、33、43、53、63、73、83のレベルで読み取るべき認識番号の3ビットで与えられる低位の3ビットを完了することによって、このIPアドレスを完了する。
したがって、各BMC要素14、24、34、44、54、64、74、84は、モジュール1、2、3、4、5、6、7、8の構成インタフェース又は動的再構成(すなわち自身を構成するため)と理解することができ、それらのインスタンス化、すなわち、これらのモジュール1、2、3、4、5、6、7、8の各々に対するIPアドレス、又はより一般的には識別子、の配分、が可能になる。
さらに、各モジュール1、2、3、4、5、6、7、8は、それが有するクロック信号130、230、330、430、530、630、730、830を生成することができるクロックジェネレータを含んでいる。例えばそのようなクロックは、矩形波の形態で実現され、その周波数は、MHzのオーダーであり、例えば14.7MHz、25MHz又は100MHzである。
有利には、モジュール1、2、3、4、5、6、7、8のクロック信号130、230、330、430、530、630、730、830は、このモジュール1、2、3、4、5、6、7、8の全てのプロセッサCPU10、11、20、21の同期を可能にする。各モジュール1、2、3、4、5、6、7、8のプロセッサCPU10、11、20、21への各クロック信号130、230、330、430、530、630、730、830の供給は、ここでは、アイテム130、230、330、430、530、630、730、830の左方への一方向性矢印で示される。様々な実施形態に従い、各クロック信号130、230、330、430、530、630、730、830は、XQPIネットワークを介して相互接続27によって伝送可能である。
有利には、各クロック信号130、230、330、430、530、630、730、830は、各モジュール1、2、3、4、5、6、7、8の入口において、相互接続27の物理リンクによって導入されるあらゆる位相雑音を排除することが可能な位相同期回路PLL型(英語の「Phase−Locked Loop」の頭文字)の電気回路により、フィルタリングが可能である。
クロック信号130、230、330、430、530、630、730、830は、モジュール間信号、すなわち異なるモジュール1、2、3、4、5、6、7、8の間で通過する信号とすることができ、これらの信号の同期も必要となる。
これを行うため、様々な実施形態に従い、各モジュール1、2、3、4、5、6、7、8の各FPGA13、23、33、43、53、63、73、83は、共通の特性に基づき、例えば区画を形成するモジュール1、2、3、4、5、6、7、8で支持されるシステムを動作している同じOSに基づき、モジュール1、2、3、4、5、6、7、8のセットをグループ化する分割のステップに適している。
したがって、各モジュール1、2、3、4、5、6、7、8は、サーバ100を構成するモジュール1、2、3、4、5、6、7、8のセット又は区画(すなわちサブセット)である。例えば、図2では、2つの区画40、50が実現され、第1の区画40は、モジュール1、2、3、4、5、6から成り、第2の区画50は、モジュール7、8から成る。各BMC要素14、24、34、44、54、64、74、84は、それが属するセット又はサブセット(すなわち区画)において、それ自身が所有するモジュール1、2、3、4、5、6、7、8の数を、同じセット又はサブセットのモジュール1、2、3、4、5、6、7、8の数と比較する。前述の通り、モジュール1、2、3、4、5、6、7、8及びその隣接モジュール1、2、3、4、5、6、7、8の数は、そのBMC要素14、24、34、44、54、64、74、84によって遂行される動的インスタンス化ステップで特定される。
これらの比較の結果に基づき、それが属するモジュール1、2、3、4、5、6、7、8が、モジュール1、2、3、4、5、6、7、8のセット又はサブセットにおいてマスター又はスレーブである場合に、各BMC14、24、34、44、54、64、74、84を特定することができる。
一実施形態では、より小さな数/識別子IDのモジュール1、2、3、4、5、6、7、8は、そのBMC14、24、34、44、54、64、74、84により、マスターモジュールとして特定され、残ったモジュールがスレーブモジュールとして特定される。
しかしながら、他のあらゆるタイプの特定も実行することができ、例えば、マスターモジュールは、最大数/IDのモジュールであることとして特定することができ、又は、そのアドレスに基づき特定される。
より一般には、動的インスタンス化の間に得られたモジュール1、2、3、4、5、6、7、8の証明書に基づいて、モジュール1、2、3、4、5、6、7、8の同じセット又はサブセットでスレーブ及びマスターモジュールが特定される。
簡略化のため、セット又はサブセットの数の少ないモジュール1、2、3、4、5、6、7、8が、各BMC要素14、24、34、44、54、64、74、84によってマスターモジュールとして特定され、残りのモジュールがスレーブモジュールとして特定される例も、次いで考えられる。
様々な実施形態に従い、BMC要素14、24、34、44、54、64、74、84がそのモジュール1、2、3、4、5、6、7、8を、以下の通りに特定する
−マスター。同じセット又はサブセットの他のモジュール1、2、3、4、5、6、7、8において、クロック信号130、230、330、430、530、630、730、830を送る方法で、BMC要素14、24、34、44、54、64、74、84は、そのFPGA13、23、33、43、53、63、73、83を構成する場合。
−スレーブ。モジュール1、2、3、4、5、6、7、8にローカルなクロック信号130、230、330、430、530、630、730、830を無効にする方法で、BMC要素14、24、34、44、54、64、74、84が、そのFPGA13、23、33、43、53、63、73、83を構成する場合。
例えば、区画されていない8つのモジュール1、2、3、4、5、6、7、8の同じセットにおいて、モジュール1は、マスターモジュールとして、モジュール2、3、4、5、6、7、8はスレーブモジュールとして、特定される。
モジュール1は次に、そのクロック信号130を、自身のクロック信号230、330、430、530、630、730、830がFPGAによって無効にされているモジュール2、3、4、5、6、7、8に対して、配信する。クロック130の配信及びローカル信号クロック230、330、430、530、630、730、830の無効化は、ここでは、FPGA13及びFPGA23、33、43、53、63、73、83によってそれぞれ遂行され、これらは、BMC要素14及びBMC要素24、34、44、54、64、74、84によってそれぞれ構成される。クロックは、側波帯信号によって送信され、すなわち、相互接続28の一部(すなわち、FPGA間のインタフェース)である。
図2に例示される他の例では:
−モジュール1が、第1の区画40内でマスターモジュールとして特定され、モジュール2、3、4、5、6が、この区画内でスレーブモジュールとして特定される。次いで、モジュール1は、FPGA13(複数の一方向矢印がこの要素から出されている)を通してそのクロック信号130をモジュール2、3、4、5、6へ配信するが、これらモジュール2、3、4、5、6は、それらのローカルなFPGA23、33、43、53、63によってそれらの信号クロック130、230、330、430、530、630が無効にされている(一方向矢印は、クロック信号へのFPGAの意味)。
有利には、FPGA13及びFPGA23、33、43、53、63は、BMC要素14及びBMC要素24、34、44、54、64によってそれぞれ構成される(一方向矢印は、FPGAへのクロック信号の意味)。
−モジュール7が、第2の区画50でマスターモジュールとして特定され、モジュール8が、この区画でスレーブモジュールとして特定される。次いでモジュール7は、そのFPGA73(この要素からの一方向矢印)を通して、そのクロック信号730をモジュール8に配信し、モジュール8は、そのFPGA63により、ローカルにそのクロック信号830が無効にされている(一方向矢印は、クロック信号へのFPGAの意味)。
有利には、FPGA73及びFPGA83は、BMC要素74及びBMC要素84によってそれぞれ構成される(一方向矢印は、FPGAへのクロック信号の意味)。したがって、各モジュール1、2、3、4、5、6、7、8の各プロセッサCPU10、11、20、21は、それが属する区画又は全てのモジュール1、2、3、4、5、6、7、8に共通のクロック信号130、230、330、430、530、630、730、830によって支配される。
有利には、各プロセッサCPU10、11、20、21は複数のレジストリを含み、各レジストリは、プロセッサ10、11、20、21で実行される軽プロセス(英語で「thread」)に関連している。これらの記録は一般に、タイムスタンプカウンターTSC(「Time Stamp Counter」の頭文字)と呼ばれ、そして、「マルチスレッド」のタスク、すなわち複数の軽プロセスを有するタスクを同期させるために用いられる。TSCタイムスタンプカウンターは、初期化/リセット(英語で「reset」)の段階の後、プロセッサ中央処理装置10、11、20、21ごとに初期化され、この初期化/リセットは例えば、モジュール1、2、3、4、5、6、7、8の起動/再起動に際して発生し得る。「マルチスレッド」のタスクが良好に実行されるためには、TSCタイムスタンプカウンターは完全に同期される必要がある。
有利には、TSCタイムスタンプカウンター同期は、プロセッサCPU10、11、20、21の入力部で、クロック信号130、230、330、430、530、630、730、830を介してなされる。この同期を確実とするには、特に複数のプロセッサ10、11、20、21を含んで各々相互接続するモジュール1、2、3、4、5、6、7、8に対しては、複雑であり、何故なら、各プロセッサCPU10、11、20、21は初期に、及び、ローカルに、それ自身のクロック信号130、230、330、430、530、630、730、830を有し得るからである。したがって、各モジュール1、2、3、4、5、6、7、8間のタイムスタンプカウンターTSCは、現時点から潜在的に矛盾しており、さらに外れ得る。
したがって、様々な実施形態において、見込まれるモジュール1、2、3、4、5、6、7、8を分割するステップの後、プロセッサCPU10、11、20、21のタイムスタンプカウンターTSCは、以下の方法で同期される。
−モジュール1、2、3、4、5、6、7、8のセット又はサブセットの各マスターモジュールの各BMC要素14、24、34、44、54、64、74、84は、あらゆる同期信号ルーティングが同じセット又はサブセットモジュールに対するスレーブであると限定される方法で、マスターモジュールのFPGA13、23、33、43、53、63、73、83の構成を実行する。
−各スレーブモジュールの各BMC要素14、24、34、44、54、64、74、84は、スレーブモジュールが段階初期化又はリセットにある時(タイムスタンプカウンターTSCの初期化に対応して)に、LANネットワーク上のPMPIを通した相互接続28を介して、マスターモジュールのBMC要素14、24、34、44、54、64、74、84へ、通知メッセージを送信する。
マスターモジュールのBMC要素14、24、34、44、54、64、74、84は、それ自身のモジュール1、2、3、4、5、6、7、8の初期化又はリセットの通知を介して、通知されることも可能である。−マスターモジュールのBMC要素14、24、34、44、54、64、74、84は、自分自身を含む全てのモジュール1、2、3、4、5、6、7、8が初期化の段階から押し出され又はリセットされると予想する。
−全てのモジュール1、2、3、4、5、6、7、8の通知を受けた時、マスターモジュールのBMC14、24、34、44、54、64、74、84は、それが属する同じセット又はサブセットの、それ自身のモジュールを含む全てのモジュール1、2、3、4、5、6、7、8に対して、プロセッサCPU10、11、20、21の全てのタイムスタンプカウンターTSCのリセットを誘発する。
有利には、このリセットは、各モジュール1、2、3、4、5、6、7、8の各プロセッサCPU10、11、20、21を有する物理コネクタブローチ(英語では「pin」)上に、同期信号を送信することにより実行されるしたがって、このような同期信号を送信することで、プロセッサCPU10、11、20の全てのタイムスタンプカウンターTSCの同期再起動21及びすなわち一時的な一貫性が得られるが、その理由は、各プロセッサ中央処理装置10、11、20、21がその後、モジュール1、2、3、4、5、6、7、8のセット又はサブセットの同じクロックで駆動されるカウンターTSCを発するからである。更に、図1に概説されるように、各モジュール1、2、3、4、5、6、7、8の各FPGA13、23、33、43、53、63、73、83は、各プロセッサCPU10、11、20、21とのデータリンクに加えてBCS2等の通信要素16、26を含む。
非補正、致命的又は破滅的なタイプの第1のエラーが、プロセッサCPU10、11、20、21又はモジュール1、2、3、4、5、6、7、8の通信要素16、26のレベルで発生した場合、それは通常2、3マイクロ秒といった超高速で、XQPIネットワークを通る相互接続27を介して、同じセット又はサブセットの他のモジュール1、2、3、4、5、6、7、8に伝搬し、それらのプロセッサCPU10、11、20、21及び通信要素16、26のレベルでエラーを引き起こす。したがって、マルチモジュールとの関連で、第1のエラーを発見してその後のエラーを診断することが必要となる。
より一般に、正確な方法で、モジュール1、2、3、4、5、6、7、8におけるあらゆるエラーの発生を特定(例えば位置、時間)することができるようにすることが必要である。
したがって、様々な実施形態に従い、各FPGA13、23、33、43、53、63、73、83に対して、タイムスタンプカウンターTSCを利用するが、このタイムスタンプカウンターTSCは、設定可能なサイズ、例えば40ビットのレジスタによって指示され、FPGA13、23、33、43、53、63、73、83が属するモジュール1、2、3、4、5、6、7、8のセット又はサブセットのマスターモジュールのクロック信号130、230、330、430、530、630、730、830を介して例えば25MHzの周波数で同期される。
したがって、FPGA13、23、33、43、53、63、73、83の各々は、モジュール1、2、3、4、5、6、7、8の同じセット又はサブセットのFPGA13、23、33、43、53、63、73、83のそれらと完全に同期するタイムスタンプカウンターTSCを有する。有利には、この同期時間の参照により、各FPGA13、23、33、43、53、63、73、83は、時間を特定(「タイムスタンプ」)することができるとともに、そのモジュール1、2、3、4、5、6、7、8で生じるあらゆるエラー又はイベントに関するレポートを保存することができる。曖昧性の無いさらなるエラー又はイベントの時系列配列を、これらのそれぞれの順序で再構築することは、いつでも可能である。これを行うため、FPGA13、23、33、43、53、63、73、83によるイベント、例えば各モジュール1、2、3、4、5、6、7、8に伝搬されるエラー、のタイムスタンプの後、BMC要素14、24、34、44、54、64、74、84のセットは、これらのイベントに関連した情報を交換し共有することにより、これらのエラーの出所、すなわち最初のエラーを見出すことができるようになる。
エラーのあるモジュール1、2、3、4、5、6、7、8の位置及び正確な診断が、このように、促進される。様々な実施形態において、モジュール1、2、3、4、5、6、7、8の見込まれる区分化の後、FPGA13、23、33、43、53、63、73、83のタイムスタンプカウンターTSCの同期、ならびに、最初のエラーの検出は、以下の通りに遂行される
−モジュール1、2、3、4、5、6、7、8のセット又はサブセットの各マスターモジュールの各BMC要素14、24、34、44、54、64、74、84は、全ての同期信号のルーティングが、同じセット又はサブセットのスレーブモジュールに限定される方法で、マスターモジュールのFPGA13、23、33、43、53、63、73、83の構成を実行する。
−スレーブモジュールが段階の初期化又はリセットを経た(TSCが調整するタイムスタンプの初期化に対応する)時に、各スレーブモジュールの各BMC要素14、24、34、44、54、64、74、84は、LANネットワーク上のPMPIを通る相互接続28を介して、マスターモジュールのBMC要素14、24、34、44、54、64、74、84へ、通知メッセージを送信する。
また、マスターモジュールのBMC要素14、24、34、44、54、64、74、84は、それ自身のモジュール1、2、3、4、5、6、7、8の初期化又はリセットの通知を介して、通知を受けることも可能である。−マスターモジュールのBMC要素14、24、34、44、54、64、74、8は、それ自身を含む全てのモジュール1、2、3、4、5、6、7、8が初期化又はリセットの段階にはないと予測する。
−全てのモジュール1、2、3、4、5、6、7、8の通知を受けた時、マスターモジュールのBMC14、24、34、44、54、64、74、84は、それ自身を含むそれが属する同じセット又はサブセットの全てのモジュール1、2、3、4、5、6、7、8のFPGA13、23、33、43、53、63、73、83の一組のタイムスタンプカウンターTSCのリセットを誘発する。
異なるFPGA13、23、33、43、53、63、73、83のタイムスタンプカウンターが、次いで完全に同期する。
−例えばプロセッサCPU10、11、20、21又は通信要素16、26(例えばBCS2)のレベルでモジュール1、2、3、4、5、6、7、8に生じるエラー(又はイベント)が発生する度に、このモジュール1、2、3、4、5、6、7、8のFPGA13、23、33、43、53、63、73、83は、そのタイムスタンプカウンターTSCを介して、エラーに関する情報を記憶する。
エラー関連情報は、例えば、そのタイプ(例えば非補正、致命的な)、その出所(例えば、モジュール番号、関係する要素のタイプ:CPU又はBCS)を、そのタイムスタンプと共に含んでいる。−各モジュール1、2、3、4、5、6、7、8の各BMC要素14、24、34、44、54、64、74、84は、次いで、TSCタイムスタンプカウンターによりFPGA1、2、3、4、5、6、7、8に格納される情報にアクセスし、また、全ての管理者サーバ100又はサーバ100の管理を可能にしている外部ツールに対して、この情報が適切にアクセス可能になるようにする。
例えば、各BMC要素14、24、34、44、54、64、74、84は、ファシリティ管理の外部アプリケーションからアクセス可能なログファイルを介して、FPGA1、2、3、4、5、6、7、8に読み出された情報を伝達する。
−情報間の比較のストップ、例えば各BMC要素14、24、34、44、54、64、74、84によって提供される各エラーのタイムスタンプ、出所、タイプの間、の比較の段階では、異なるモジュール1、2、3、4、5、6、7、8に発生した一組のエラーの中から最初のエラーを特定することができ、ならびにその後のエラーの時系列配列を作ることができる。
このような比較のステップは、例えば、自動化可能であり、又は、サーバ100の管理者によって直接実行することができる。有利には、最初のエラーの特定、例えばタイミング及び位置を決定すれば、続いて、サーバ100で実行する1つ以上の動作、例えば特定のモジュール1、2、3、4、5、6、7、8を再開する、又は、その中のモジュール1、2、3、4、5、6、7、8にエラーがあれば区画を再構成する等、を決定することができる。
有利には、上に記載される実施形態は、標準的な管理インタフェース、例えば標準的なIPMIに一致するインタフェースとのプログラムの互換性があり、そして、これはサーバ100のモジュール1、2、3、4、5、6、7、8の数には依らない。
これはとりわけ、以下により可能になる。
−BMC要素14、24、34、44、54、64、74、84。各々はデータ通信インタフェースとして用いることができ、タイムスタンプカウンターTSCのクロックの同期、ならびに、異なるモジュール1、2、3、4、5、6、7、8のならびに、高レベルの機能、すなわちコア機能、の管理、が可能になる
−SMC要素15、25。それら自身のモジュール1、2、3、4、5、6、7、8の、低次の、すなわちローカルの、管理機能、例えばそれらの物理的パラメータ及びそれらの電力の測定、を担当する。したがって、ハードウェア及びソフトウエアアーキテクチャに関して大きな柔軟性を得て、サーバ100の修正、適合又は進化等のあらゆる将来見込まれる必要性を容易にする。
有利なことに、前述の実施形態では、モジュールを区分化することにより、ならびにそれぞれのクロック信号230、330、430、530、630、730、830により、モジュール1、2、3、4、5、6、7、8のセット又はサブセットの管理を可能にする。
モジュール1、2、3、4、5、6、7、8のセット又はサブセットの管理は、特に有利であり、何故なら、モジュール1、2、3、4、5、6、7、8、識別、スケジューリング及び位置によって異なるOSのサポートを可能にし、見込まれる診断目的でのあらゆるエラーを明確にし、ならびに、モジュール1、2、3、4、5、6、7、8の故障が生じた場合を含んだ、見込まれる区画を動的再構成するからである。実施形態の他の利点は、サーバ100の物理実行にあり、特に、相互接続ボックス30及びモジュール1、2、3、4、5、6、7、8が相互接続する及び電気的に駆動される方法により、サーバ100の各要素の容易なメンテナンス及びその障害許容力の強化を可能にする。
さらに、サーバ100のための前述の実施形態は、複数のモジュール1、2、3を含む、例えばスーパーコンピュータ等、あらゆる装置又は基盤にも転用可能である。

Claims (10)

  1. 複数のモジュール(1−8)を含むサーバ(100)であって、各モジュール(1−8)は、
    −モジュール(1−8)の間で共有メモリの整合性を確実にすることができる、通信要素(16,26)と、
    −互いに接続され、かつ、通信要素(16,26)に接続される、複数のプロセッサCPU(10、11、20、21)と、
    −複数のプロセッサCPU(10、11、20、21)及び通信要素(16,26)に接続されるシステムオンチップSOC(12,22)であって、前記システムオンチップSOC(12,22)はファームウェアを実行するものである前記システムオンチップSOC(12,22)と、
    −システムオンチップSOC(12,22)、通信要素(16,26)及び複数のプロセッサCPU(10、11、20、21)に接続される、プログラマブルなゲートのネットワーク(FPGA)(13、23、33、43、53、63、73、83)と、を含み、
    モジュール(1−8)は、
    −ネットワークXQPIを介した各通信要素(16,26)間の相互接続(27)と、
    IPMB標準プロトコルに従って通信プロトコルをカプセル化する、プライベートなネットワークを介した相互接続(28)であって、前記相互接続(28)は、システムオンチップSOC(12,22)間を接続するためのものである、前記相互接続(28)と、
    により相互接続され、
    各モジュール(1−8)の各システムオンチップSOC(12,22)は、ファームウェアを実行することにより、2つのソフトウェアコンポーネントを生じさせるものであり、
    前記2つのソフトウェアコンポーネントは、システムのサテライトマネージメントコントローラ(SMC)コンポーネント(15,25)と、ベースボードのマネージメントコントローラ(BMC)コンポーネント(14、24、34、44、54、64、74、84)からなり、
    SMCコンポーネント(15,25)は、当該SMCコンポーネント(15,25)が属するモジュールの物理的パラメータの測定、及び、当該SMCコンポーネント(15,25)が属するモジュールの局所機能の管理を行わせるためのものであり
    BMCコンポーネント(14、24、34、44、54、64、74、84)は、全モジュール(1−8)のSMCコンポーネント(15,25)の全てを監督することと、サーバ(100)の機能の全てを中央管理することと、システムオンチップSOC(12,22)間の相互接続(28)を介して他のBMCコンポーネント(14、24、34、44、54、64、74、84)の各々とデータ交換をすることを行わせるためのものである、サーバ(100)。
  2. 通信要素(16,26)の相互接続(27)及びSOC(12,22)の相互接続(28)は、プログラマブルなゲートのネットワーク(FPGA)を含む相互接続ボックス(30)の媒介を介して、遂行される、請求項1に記載のサーバ(100)。
  3. 相互接続ボックス(30)は、複数のモジュール(1−8)から電力を供給されるものであり、各モジュール(1−8)は、少なくとも2つの電力供給PSUを備える、請求項2に記載のサーバ(100)。
  4. 各BMCコンポーネント(14、24、34、44、54、64、74、84)によって管理される機能の一つは、モジュール(1−8)のインスタンス化を可能にする機能であり、この機能は、
    −各モジュール(1−8)のFPGA(13、23、33、43、53、63、73、83)により、システムオンチップSOC(12,22)を介して相互接続ボックス(30)に、IDのリクエストを送信することと、
    −特定のリクエストに応答して、相互接続ボックス(30)が有するFPGAから、モジュール(1−8)が有するFPGA(13、23、33、43、53、63、73、83)へ、固有のIDを送信することと、
    −BMCコンポーネント(14、24、34、44、54、64、74、84)により、当該BMCコンポーネントが属するモジュール(1−8)のアドレス及び当該BMCコンポーネントが属するモジュールが相互接続するモジュール(1−8)のアドレスを決定することと、
    により行われ、これらアドレスは、FPGA(13、23、33、43、53、63、73、83)により受信されるIDにより決定される、請求項2または3に記載のサーバ(100)。
  5. 相互接続ボックス(30)が有するFPGAから送信される識別子IDは、各モジュール(1−8)の相互接続ボックス(30)に対する物理的接続の各位置に応じて決定される、請求項4に記載のサーバ(100)。
  6. 各モジュール(1−8)が、
    −そのモジュール(1−8)のプロセッサCPU(10、11、20、21)を同期させることができるクロック信号ジェネレータ(130、230、330、430、530、630、730、830)を備え、
    各モジュール(1−8)が備える前記FPGA(13、23、33、43、53、63、73、83)は、共通の特性に従い、複数のモジュール(1−8)のうちのサブセットへと、複数のモジュール(1−8)を分割及びグループ化するようプログラムされるものである、請求項1〜5のいずれかに記載のサーバ(100)。
  7. 各BMCコンポーネント(14、24、34、44、54、64、74、84)は、
    サブセットに含まれるモジュール(1−8)の各々の識別情報に従い、当該BMCコンポーネントが属するモジュールが、サブセットにおけるマスターモジュールであるのか、それとも、サブセットにおけるスレーブモジュールであるのかを特定することと
    当該BMCコンポーネントが属するモジュールがマスターモジュールである場合は、FPGA(13、23、33、43、53、63、73、83)が、同じサブセットのスレーブモジュールに、マスターモジュールのクロック信号(130、230、330、430、530、630、730、830)を配信するように、FPGA(13、23、33、43、53、63、73、83)を構成することと
    当該BMCコンポーネントが属するモジュールがスレーブモジュールである場合は、FPGA(13、23、33、43、53、63、73、83)が、スレーブモジュールのクロック信号(130、230、330、430、530、630、730、830)を無効にするように、FPGA(13、23、33、43、53、63、73、83)を構成することを実行させるためのものである、請求項6に記載のサーバ(100)。
  8. 各モジュール(1−8)の各プロセッサCPU(10、11、20、21)は、複数の軽プロセスを有するタスクを同期させるために用いることが可能なタイムスタンプカウンターTSCを含み、サブセットに含まれるモジュール(1−8)におけるこれらのプロセッサCPU(10、11、20、21)の全てのタイムスタンプカウンターTSCの同期は、以下のように行われる:
    −スレーブモジュールが初期化又はリセットされた場合に、当該スレーブモジュールのBMCコンポーネント(14、24、34、44、54、64、74、84)によって、マスターモジュールのBMCコンポーネント(14、24、34、44、54、64、74、84)への通知を送信し
    −マスターモジュールが初期化又はリセットされた場合に、マスターモジュールのBMCコンポーネント(14、24、34、44、54、64、74、84)へ通知し、
    −全てのマスターモジュール及びスレーブモジュールが初期化又はリセットされた場合は、サブセットに含まれる全てのモジュール(1−8)に対して、全てのプロセッサCPU(10、11、20、21)のタイムスタンプカウンターTSCをリセットすることができる同期信号を、マスターモジュールのBMCコンポーネント(14、24、34、44、54、64、74、84)により送信する、請求項7に記載のサーバ(100)。
  9. 各モジュール(1−8)の各FPGA(13、23、33、43、53、63、73、83)は、そのモジュール(1−8)におけるあらゆるエラーの発生において少なくともエラーのタイムスタンプを含むエラーに関する情報を記録することが可能なタイムスタンプカウンターTSCを含み、サブセットに含まれるモジュール(1−8)における各FPGA(13、23、33、43、53、63、73、83)のタイムスタンプカウンターTSCのセットの同期は、以下のように行われる:
    −スレーブモジュールが初期化又はリセットされた場合は、マスターモジュールのBMCコンポーネント(14、24、34、44、54、64、74、84)への通知を、サブセットに含まれる各スレーブモジュールの各BMCコンポーネント(14、24、34、44、54、64、74、84)により送信し、
    −マスターモジュールが初期化又はリセットされた場合は、マスターモジュールのBMCコンポーネント(14、24、34、44、54、64、74、84)へ通知し、
    −全てのマスターモジュール及びスレーブモジュールが初期化又はリセットされた場合は、サブセットに含まれる全てのモジュール(1−8)に対して、FPGA(13、23、33、43、53、63、73、83)の全てのタイムスタンプカウンターTSCを再初期化することができる同期信号を、マスターモジュールのBMCコンポーネント(14、24、34、44、54、64、74、84)により送信する、請求項7又は8に記載のサーバ(100)。
  10. サブセットに含まれるモジュール(1−8)におけるエラーの識別は、サブセットに含まれる各FPGA(13、23、33、43、53、63、73、83)のタイムスタンプカウンターTSCのセットによって記録されたエラーの情報同士を比較するステップによって遂行され、BMCコンポーネント(14、24、34、44、54、64、74、84)は、サブセットに含まれる各モジュール(1−8)におけるエラー情報を交換及び共有させるためのものである、請求項9に記載のサーバ(100)。
JP2015166407A 2014-08-26 2015-08-26 複数のモジュールを備えるサーバ Expired - Fee Related JP6409229B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1401900A FR3025333B1 (fr) 2014-08-26 2014-08-26 Serveur comprenant une pluralite de modules
FR1401900 2014-08-26

Publications (2)

Publication Number Publication Date
JP2016045968A JP2016045968A (ja) 2016-04-04
JP6409229B2 true JP6409229B2 (ja) 2018-10-24

Family

ID=52473933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015166407A Expired - Fee Related JP6409229B2 (ja) 2014-08-26 2015-08-26 複数のモジュールを備えるサーバ

Country Status (5)

Country Link
US (1) US9934183B2 (ja)
EP (1) EP2998877A3 (ja)
JP (1) JP6409229B2 (ja)
BR (1) BR102015020326A2 (ja)
FR (1) FR3025333B1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11983138B2 (en) 2015-07-26 2024-05-14 Samsung Electronics Co., Ltd. Self-configuring SSD multi-protocol support in host-less environment
US11055252B1 (en) * 2016-02-01 2021-07-06 Amazon Technologies, Inc. Modular hardware acceleration device
JP2018018200A (ja) * 2016-07-26 2018-02-01 Necプラットフォームズ株式会社 電源装置および電源制御方法
US20190109720A1 (en) 2016-07-26 2019-04-11 Samsung Electronics Co., Ltd. Modular system (switch boards and mid-plane) for supporting 50g or 100g ethernet speeds of fpga+ssd
US10210123B2 (en) 2016-07-26 2019-02-19 Samsung Electronics Co., Ltd. System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
US10762023B2 (en) 2016-07-26 2020-09-01 Samsung Electronics Co., Ltd. System architecture for supporting active pass-through board for multi-mode NMVe over fabrics devices
US10346041B2 (en) 2016-09-14 2019-07-09 Samsung Electronics Co., Ltd. Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US10372659B2 (en) 2016-07-26 2019-08-06 Samsung Electronics Co., Ltd. Multi-mode NMVE over fabrics devices
US11461258B2 (en) * 2016-09-14 2022-10-04 Samsung Electronics Co., Ltd. Self-configuring baseboard management controller (BMC)
US11144496B2 (en) 2016-07-26 2021-10-12 Samsung Electronics Co., Ltd. Self-configuring SSD multi-protocol support in host-less environment
US10496566B2 (en) 2016-12-20 2019-12-03 Samsung Electronics Co., Ltd. Method and apparatus for data recovering during a board replacement
CN108289041B (zh) * 2018-01-25 2022-02-22 郑州云海信息技术有限公司 一种服务器信息的处理方法以及相关装置
US10908940B1 (en) 2018-02-26 2021-02-02 Amazon Technologies, Inc. Dynamically managed virtual server system
FR3078799B1 (fr) * 2018-03-12 2021-06-04 Bull Sas Gestion de donnees de configuration pour un serveur multimodule
CN109298660A (zh) * 2018-08-14 2019-02-01 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 一种卫星有效载荷的控制系统
TWI675288B (zh) * 2018-09-21 2019-10-21 神雲科技股份有限公司 伺服器機櫃
CN109709918A (zh) * 2018-12-25 2019-05-03 山东华宇航天空间技术有限公司 一种卫星智能生产可视化管控系统
CN113485661B (zh) * 2021-07-01 2023-08-22 深圳市同泰怡信息技术有限公司 四路服务器及其输出日志信息的方法
CN115442207B (zh) * 2022-07-29 2024-01-26 中电科思仪科技股份有限公司 一种基于BMC+SoC+网络交换模块的硬件运维管理系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6891397B1 (en) * 2003-04-21 2005-05-10 Xilinx, Inc. Gigabit router on a single programmable logic device
TWI244594B (en) * 2004-07-13 2005-12-01 Quanta Comp Inc Method for automatically assigning the address of communication ports and a blade server system
WO2006015366A2 (en) * 2004-07-31 2006-02-09 Server Technology, Inc. Transfer switch with arc suppression
CN1863081B (zh) * 2005-10-14 2010-05-05 华为技术有限公司 基板管理控制器的管理系统和方法
FR2898753B1 (fr) * 2006-03-16 2008-04-18 Commissariat Energie Atomique Systeme sur puce a controle semi-distribue
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US8036247B2 (en) * 2007-01-05 2011-10-11 Frank Paul R System and method of synchronizing real time clock values in arbitrary distributed systems
US7840656B2 (en) * 2008-04-30 2010-11-23 International Business Machines Corporation Policy control architecture for blade servers upon inserting into server chassis
US7788363B2 (en) * 2008-07-15 2010-08-31 Unisys Corporation Secure communication over virtual IPMB of a mainframe computing system
US8201009B2 (en) * 2009-07-14 2012-06-12 T-Win Systems, Inc. Computer management and power backup system and device
US8595550B1 (en) * 2011-03-30 2013-11-26 Google Inc. Back-up power for a network switch
US20130080754A1 (en) * 2011-09-22 2013-03-28 Cisco Technology, Inc. Service Profile Based Peripheral Component Interconnect Device Enumeration And Option ROM Loading
US8832473B2 (en) * 2012-05-24 2014-09-09 Mitac International Corp. System and method for activating at least one of a plurality of fans when connection of a computer module is detected
US20140115137A1 (en) * 2012-10-24 2014-04-24 Cisco Technology, Inc. Enterprise Computing System with Centralized Control/Management Planes Separated from Distributed Data Plane Devices
US9606588B2 (en) * 2012-11-08 2017-03-28 Silicon Graphics International Corp. Closed-loop cooling system for high-density clustered computer system
US9367419B2 (en) * 2013-01-08 2016-06-14 American Megatrends, Inc. Implementation on baseboard management controller of single out-of-band communication access to multiple managed computer nodes
US9529583B2 (en) * 2013-01-15 2016-12-27 Intel Corporation Single microcontroller based management of multiple compute nodes
IN2013CH05264A (ja) * 2013-05-01 2015-05-29 Wyse Technology Llc
US8924899B2 (en) * 2013-05-23 2014-12-30 Daniel Jakob Seidner System and method for universal control of electronic devices

Also Published As

Publication number Publication date
US20160062936A1 (en) 2016-03-03
FR3025333A1 (fr) 2016-03-04
US9934183B2 (en) 2018-04-03
BR102015020326A2 (pt) 2017-05-30
EP2998877A2 (fr) 2016-03-23
JP2016045968A (ja) 2016-04-04
FR3025333B1 (fr) 2017-12-08
EP2998877A3 (fr) 2016-08-03

Similar Documents

Publication Publication Date Title
JP6409229B2 (ja) 複数のモジュールを備えるサーバ
US11194635B2 (en) Orchestration service for a distributed computing system
US9507566B2 (en) Entropy generation for a distributed computing system
US20200104222A1 (en) Systems and methods for managing server cluster environments and providing failure recovery therein
US9619243B2 (en) Synchronous BMC configuration and operation within cluster of BMC
US6681282B1 (en) Online control of a multiprocessor computer system
TW202041061A (zh) 用於組態漂移偵測及補救之系統及方法
US9716612B2 (en) Evaluation of field replaceable unit dependencies and connections
TW201714432A (zh) 管理方法、服務控制器裝置以及非暫態電腦可讀取媒體
US11100228B2 (en) System and method to recover FPGA firmware over a sideband interface
JP2016027470A (ja) 高稼働率環境においてアプリケーションを同期的に実行する方法および装置
US20080303692A1 (en) Method and System for Assigning Identity Addresses to Local Management Modules
US10719310B1 (en) Systems and methods for reducing keyboard, video, and mouse (KVM) downtime during firmware update or failover events in a chassis with redundant enclosure controllers (ECs)
JP6219514B2 (ja) 仮想マルチパス状態アクセスを提供するコンピューティングデバイス、仮想マルチパス用のリモートコンピューティングデバイス、仮想マルチパス状態アクセスを提供する方法、仮想マルチパス用の方法、コンピューティングデバイス、コンピューティングデバイスに複数の方法を実行させるプログラム、及び、機械可読記録媒体
CN116126457A (zh) 容器迁移方法和服务器集群
WO2022078519A1 (zh) 一种计算机设备和管理方法
US11836100B1 (en) Redundant baseboard management controller (BMC) system and method
US20220215001A1 (en) Replacing dedicated witness node in a stretched cluster with distributed management controllers
US20240095020A1 (en) Systems and methods for use of a firmware update proxy
CN113064664A (zh) 一种控制方法、装置、复杂可编程逻辑器件及服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180308

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180906

R150 Certificate of patent or registration of utility model

Ref document number: 6409229

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees