IP Library › Granted Patent US 7,398,380
Granted Patent B1
US 7,398,380 · App. 11/256,269 · Granted Jul 8, 2008

Dynamic hardware partitioning of symmetric multiprocessing systems

Assignee: Fabric7 Systems, Inc.
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 7,398,380
App. No.
11/256,269
Granted
Jul 8, 2008
Kind
B1
Abstract

Dynamic hardware partitioning of symmetric multiprocessing systems enables on-the-fly provisioning of servers of varying performance characteristics by configuring physical partitions having selectable numbers of processors. Processors are directed to disable included coherency links (for example by de-asserting respective Power-Good indicators to each of the processors). Then processors selected for inclusion in a first physical partition are directed to form coherency links with all adjacent processors (for example by asserting the respective Power-Good indicators to each of the processors of the first physical partition). All other processors in the system remain isolated (i.e. their respective Power-Good indicators remain de-asserted). The processors of the first physical partition are then directed to fetch and execute instructions (for example by de-asserting respective Reset indicators to each of the processors). The processors of the first physical partition complete booting and then a second physical partition is formed in a manner similar to the first.

Claims (48)

1. A system including:

a plurality of compute elements included in a physically-partitionable symmetric multiprocessor, each of the compute elements being a symmetric multiprocessor and having a respective boot resource;

boot circuitry enabled to:

direct a portion of the compute elements to initialize coherency link interfaces included therein to isolate all of the compute elements of the portion from each other,

disable all but one of the boot resources and enable the one boot resource, and

direct all of the compute elements of the portion to fetch instructions;

wherein the compute element having the enabled boot resource programs routing tables associated with the coherency link interfaces to enable shared-memory coherency transactions between the compute elements of the portion;

wherein the compute elements having the disabled boot resources access instructions from the enabled boot resource via the enabled shared-memory coherency transactions in response to the directing to fetch instructions; and

wherein the compute elements are capable of communicating inter-process data via a switch fabric.

2. The system of claim 1 , wherein all of the coherency link interfaces are compatible with a HyperTransport (HT) link.

3. The system of claim 1 , wherein the one boot resource includes a SouthBridge.

4. The system of claim 3 , wherein the SouthBridge provides access to Basic Input/Output System (BIOS) instructions.

5. The system of claim 1 , wherein the disabling of all but one of the boot resources includes

providing a test-mode request to a group of pins of each of the respective all but one of the boot resources, and in response the respective all but one of the boot resources float respective output pins to high-impedance.

6. A method including the steps of:

directing a plurality of compute elements to isolate themselves from each other by disabling included coherent memory link endpoints; then

directing a first plurality of the compute elements to aggregate themselves into a first physical partition by enabling the coherent memory link endpoints included in the first plurality of compute elements; then

directing the first physical partition to isolate itself by disabling the coherent memory link endpoints included in the first plurality of compute elements that are coupled to a disabled one of the coherent memory link endpoints; then

directing a second plurality of the compute elements to aggregate themselves into a second physical partition by enabling the coherent memory link endpoints included in the second plurality of compute elements; then

directing the second physical partition to isolate itself by disabling the coherent memory link endpoints included in the second plurality of compute elements that are coupled to a disabled one of the coherent memory link endpoints; and

wherein each of the coherent memory link endpoints are arranged in pairs that are operable, when the two endpoints of the pair are enabled, to communicate bidirectional shared memory coherency traffic between the pair of compute elements that include the respective memory link endpoint pair;

wherein the first plurality of compute elements are distinct from the second plurality of compute elements;

wherein the compute elements are included in a plurality of physically partitionable symmetric multiprocessor modules; and

wherein the compute elements are symmetric multiprocessors.

7. The method of claim 6 , further including after the directing the second physical partition to isolate itself, directing the first plurality of compute elements to isolate themselves from each other by disabling the coherent memory link endpoints included in the first plurality of compute elements.

8. The method of claim 6 , further including disabling all but one boot resource of a plurality of boot resources included in the first physical partition and enabling the one boot resource.

9. The method of claim 8 , wherein a configuration file identifies one of the first plurality of the compute elements as a boot processor.

10. The method of claim 9 , wherein the boot processor is enabled to communicate with the one boot resource via a boot resource interface that is distinct from the coherent memory link endpoints.

11. The method of claim 10 , wherein the disabling the all but one boot resource of the boot resources includes directing each of the all but one boot resource of the boot resources to float respective output pins to a high impedance state.

12. The method of claim 8 , wherein each of the boot resources includes a respective SouthBridge.

13. The method of claim 6 , further including disabling all but one peripheral interface of a plurality of peripheral interfaces included in the first physical partition and enabling the one peripheral interface.

14. The method of claim 6 , further including directing the physical partitions to exchange inter-process communication data via a coupled switch fabric.

15. The method of claim 6 , wherein all of the coherent memory link endpoints are compatible with a HyperTransport (HT) link.

16. A method including the steps of:

(A) in a first processing element, disabling a first plurality of included ports;

(B) in a second processing element, disabling a second plurality of included ports;

(C) in the first processing element, enabling the first plurality of ports while the second plurality of ports is disabled;

(D) in the first processing element, fetching a first instruction at least in part via one of the first plurality of ports;

(E) in the first processing element, disabling the first plurality of ports after (D);

(F) in the first processing element, enabling the first plurality of ports after (E);

(G) in the second processing element, enabling the second plurality of ports after (E);

(H) in the second processing element, fetching a second instruction at least in part via one of the second plurality of ports and at least in part via one of the first plurality of ports; and

wherein the ports are adapted to send and receive shared memory coherency transactions between the processing elements; and

wherein the second instruction is provided by memory coupled to the first processing element at least in part via one of the shared memory coherency transactions.

17. The method of claim 16 , wherein each of the processing elements is a symmetric multi-processor.

18. The method of claim 16 , wherein the first plurality of ports are external ports and the first processing element is a symmetric multi-processor having included internal ports.

19. The method of claim 18 , wherein the internal ports and the external ports operate equivalently.

20. The method of claim 18 , wherein the processors are enabled to exchange inter-process communication data with each other via a coupled switch fabric.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2013
From: HABANERO HOLDINGS, INC.
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 029661/0587 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2012
From: FABRIC7 SYSTEMS, INC.
To: FABRIC7 (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 028306/0281 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2012
From: FABRIC7 (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
To: HABANERO HOLDINGS
Reel/Frame 028306/0648 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2006
From: LOVETT, THOMAS DEAN; MCDANIEL, DARYL V.
To: FABRIC7 SYSTEMS, INC.
Reel/Frame 017539/0752 →
Continuity (19)
Continuation In Part 1105712000 · Feb 12, 2005
Continuation In Part 1105704800 · Feb 12, 2005
Continuation In Part 1105711700 · Feb 12, 2005
Continuation In Part 1105703500 · Feb 12, 2005
Continuation In Part 1105711200 · Feb 12, 2005
Continuation In Part 1105711900 · Feb 12, 2005
Continuation In Part 1105703600 · Feb 12, 2005
Continuation In Part 1105703700 · Feb 12, 2005
Continuation In Part 1105711600 · Feb 12, 2005
Continuation In Part 1088946900 · Jul 12, 2004
Continuation In Part 1088946700 · Jul 12, 2004
Continuation In Part 1088946800 · Jul 12, 2004
Provisional Application 6069076300 · Jun 14, 2005
Provisional Application 6065070700 · Feb 7, 2005
Provisional Application 6065102600 · Feb 7, 2005
Provisional Application 6065102700 · Feb 7, 2005
Provisional Application 6060325000 · Aug 20, 2004
Provisional Application 6056322200 · Apr 17, 2004
Provisional Application 6054491600 · Feb 13, 2004