IP Library Granted Patent US 9,934,183
Granted Patent B2
US 9,934,183 · App. 14/824,223 · Granted Apr 3, 2018

Server comprising a plurality of modules

Inventors: Claude Brassac (Saint Germain en Laye, FR); Georges Lecourtier (Versailles, FR)
Assignee: BULL SAS
G06F13/4027G06F1/10G06F1/14G06F11/2015G06F13/4282G06F15/161G06F1/26
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,934,183
App. No.
14/824,223
Granted
Apr 3, 2018
Kind
B2
Abstract

A server ( 100 ) having a plurality of modules ( 1 - 8 ), each module including a communication element ( 16, 26 ), a plurality of processors (CPU) ( 10, 11, 20, 21 ), a system on a chip (SOC) ( 12, 22 ) executing firmware, and a network of programmable ports (FPGA) ( 13, 23 ). The modules interconnected by an interconnection ( 27 ) between each communication element, an interconnection ( 28 ) between each system on a chip (SOC). The executed firmware produces two software components: a satellite management controller (SMC) component of the system ( 15, 25 ) and a baseboard management controller (BMC) component ( 14, 24 ).

Claims (35)

1. A server ( 100 ) comprising a plurality of modules ( 1 - 8 ), each module ( 1 - 8 ) comprising:

a communication element ( 16 , 26 ) capable of ensuring the coherence of a memory shared among the modules ( 1 - 8 );

a plurality of processors (CPU) ( 10 , 11 , 20 , 21 ) connected to each other and connected to the communication element ( 16 , 26 );

a system on a chip (SOC) ( 12 , 22 ) connected to the plurality of processors (CPU) ( 10 , 11 , 20 , 21 ) and to the communication element ( 16 , 26 ), the system on a chip (SOC) ( 12 , 22 ) executing firmware;

a network of programmable ports (FPGA) ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) connected to the system on a chip (SOC) ( 12 , 22 ), to the communication element ( 16 , 26 ) and to the plurality of processors (CPU) ( 10 , 11 , 20 , 21 );

the modules ( 1 - 8 ) being interconnected by:

an interconnection ( 27 ) between each communication element ( 16 , 26 ) via an XQPI network;

an interconnection ( 28 ) between each system on a chip (SOC) ( 12 , 22 ) via an Ethernet protocol private network, encapsulating a communication protocol in accordance with the IPMB standard;

the firmware executed on each system on a chip (SOC) ( 12 , 22 ) of each module ( 1 - 8 ) producing two software components, namely:

a satellite management controller (SMC) component of the system ( 15 , 25 ) capable of measuring the physical parameters of its module ( 1 - 8 ) and managing the local functions of said module ( 1 - 8 );

a baseboard management controller (BMC) component ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) capable of supervising all of the SMCs ( 15 , 25 ) of all of the modules ( 1 - 8 ), providing central management of all functions of the server ( 100 ) and exchanging data with each of the BMC components ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) via the interconnection ( 28 ) between each system on a chip (SOC) ( 12 , 22 ).

2. The server ( 100 ) according to claim 1 , wherein the interconnection ( 27 ) of the communication elements ( 16 , 26 ) and

interconnection ( 28 ) of the SOCs ( 12 , 22 ) are accomplished by means of an interconnection unit ( 30 ), the interconnection unit ( 30 ) comprising a network of programmable ports (FPGA).

3. The server ( 100 ) according to claim 2 , wherein the interconnection unit ( 30 ) is electrically powered by the modules ( 1 - 8 ), each module ( 1 - 8 ) comprising at least two power supply units (PSU) dimensioned with a redundancy of 2N.

4. The server ( 100 ) according to claim 1 , wherein one of the functions managed by each BMC component ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) is a function enabling the instantiation of the modules ( 1 - 8 ), said function being performed in the following manner:

the sending of an identifier (ID) request by the FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) of each module ( 1 - 8 ) to the interconnection unit ( 30 ) by means of the system on a chip (SOC) ( 12 , 22 );

the sending by the FPGA of the interconnection unit ( 30 ) of a unique identifier (ID) to the FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) in response to the identifier request;

the determination by the BMC component ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) of the address of its module ( 1 - 8 ) and of the addresses of the modules ( 1 - 8 ) to which it is interconnected, the determination of said addresses being performed based on the identifier (ID) received by the FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ).

5. The server ( 100 ) according to claim 4 , wherein the identifier (ID) sent by the FPGA of the interconnection unit ( 30 ) is determined based on each physical connection location of each of the modules ( 1 - 8 ) to the interconnection module ( 30 ).

6. The server ( 100 ) according to claim 1 , wherein each of the modules ( 1 - 8 ) comprises

a clock signal generator ( 130 , 230 , 330 , 430 , 530 , 630 , 730 , 830 ) capable of synchronizing the processors (CPU) ( 10 , 11 , 20 , 21 ) of its module ( 1 - 8 );

its FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) programmed to partition and group the modules into subsets ( 1 - 8 ) based on common characteristics.

7. The server ( 100 ) according to claim 6 , wherein each BMC component ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) is programmed to:

identify in a set or subset of modules ( 1 - 8 ) whether it belongs to a master or slave module, based on identification information from each of the modules ( 1 - 8 ) of said set or subset;

if it belongs to a master module, configure its FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) in such a way that the FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) distributes the clock signal ( 130 , 230 , 330 , 430 , 530 , 630 , 730 , 830 ) from the master module to the slave modules of the same set or subset;

if it belongs to a slave module, configure its FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) in such a way that the FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) deactivates the clock signal ( 130 , 230 , 330 , 430 , 530 , 630 , 730 , 830 ) from the slave module.

8. The server ( 100 ) according to claim 7 , wherein each processor (CPU) ( 10 , 11 , 20 , 21 ) of each module ( 1 - 8 ) comprises time stamp counters (TSC) capable of synchronizing tasks involving a plurality of threads, the synchronization of all of the time stamp counters (TSC) of said processors (CPU) ( 10 , 11 , 20 , 21 ) in a set or subset of modules ( 1 - 8 ) being accomplished by:

the sending of a notification, by each BMC component ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) of each slave module of said set or subset, to the BMC ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) of the master module when the slave module leaves an initialization or reinitialization phase;

a notification to the BMC ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) of the master module when the master module leaves an initialization or reinitialization phase;

the sending by the BMC ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) of the master module, when all of the master and slave modules have left an initialization or reinitialization phase, of a synchronization signal capable of reinitializing all of the time stamp counters (TSC) of the processors (CPU) ( 10 , 11 , 20 , 21 ) for all the modules ( 1 - 8 ) of the set or subset.

9. The server ( 100 ) according to claim 7 , wherein each FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) of each module ( 1 - 8 ) comprises time stamp counters (TSC) capable, whenever an error occurs in its module ( 1 - 8 ), of recording information related to the error, comprising at least the time stamp of the error, the synchronization of all of the time stamp counters (TSC) of each FPGA ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) in a module ( 1 - 8 ) set or subset being accomplished by

the sending of a notification, by each BMC component ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) of each slave module of said set or subset, to the BMC ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) of the master module when the slave module leaves an initialization or reinitialization phase;

a notification to the BMC ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) of the master module when the master module leaves an initialization or reinitialization phase;

the sending by the BMC ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) of the master module, when all of the master and slave modules have left an initialization or reinitialization phase, of a synchronization signal capable of reinitializing all of the time stamp counters (TSC) of the FPGAs ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) for all modules ( 1 - 8 ) of the same set or subset.

10. The server ( 100 ) according to claim 9 , wherein the identification of an error in a set or subset of modules ( 1 - 8 ) is performed by a step of comparison between the error information recorded by all of the time stamp counters (TSC) of the FPGAs ( 13 , 23 , 33 , 43 , 53 , 63 , 73 , 83 ) of said set or subset, the BMCs ( 14 , 24 , 34 , 44 , 54 , 64 , 74 , 84 ) being capable of exchanging and sharing the error information in the same set or subset of modules ( 1 - 8 ).

Assignments (3)
PARTIAL TRANSFER AGREEMENT Recorded Nov 8, 2022
From: BULL SAS
To: COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
Reel/Frame 061898/0626 →
PARTIAL TRANSFER AGREEMENT Recorded Oct 7, 2022
From: BULL SAS
To: THE FRENCH ALTERNATIVE ENERGIES AND ATOMIC ENERGY COMMISSION
Reel/Frame 061624/0451 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2015
From: BRASSAC, CLAUDE; LECOURTIER, GEORGES
To: BULL SAS
Reel/Frame 037393/0077 →
Priority Claims (1)
FR 14 01900 · Aug 26, 2014 · national
Continuity (1)
Related Publication 20160062936A1 · Mar 3, 2016