This invention relates to the field of server availability. In particular, the invention relates to a platform featuring hot-plug capable multi-node architecture that supports hiberation.
Advances in technology have opened up many opportunities for applications that go beyond the traditional ways of doing business. Electronic commerce over the Internet has become widely accepted, requiring many companies to either install one or more servers to host a web site and maintain accessible databases or to contract with data centers to provide such services. Important functional characteristics for these servers include reliability, availability and serviceability.
A loss of power adversely effects the availability of a server, which is especially costly when such power loss occurs for a server that is responsible for handling mission critical applications. To enhance availability during a power loss condition, critical servers may be equipped with back-up power functionality to allow that server to save its operational states before power-down. Availability may further be enhanced by supporting hibernate.
Initiated by an operating system (OS) of the server, “Hibernate” is a low-power, long wakeup-latency sleeping state where server hardware has powered off most devices. Hibernate is also referred to as “S4” in accordance with terminology set forth by the Advanced Configuration and Power Interface (ACPI) Specification (Version 2.0) published Jul. 27, 2000.
Prior to entering Hibernate, various hardware states of the server as well as its stored contents are copied and stored as an image on its hard disk. Hence, during a wakeup operation, the server may be quickly restored to an operating state that existed prior to entering Hibernate. For correct operation, the OS expects to see the same hardware configuration on resume as was prior to hibernate. However, hot-plug capable multi-node architectures normally do not conduct Hibernate operations for a variety of reasons.
One reason is that, to allow maximum availability, multi-processor servers should conduct boot operations is a non-deterministic manner. In other words, the selection of which processor controls a platform boot operation at one point in time may differ from which processor is selected at a later point in time. As a result, the configuration of the platform after resuming from Hibernate is not guaranteed to match its pre-Hibernate configuration at a first time period.
For example, the order in which nodes of the platform are recognized by the operating system (OS) of the platform at the first time period may differ from how these nodes are recognized by the OS at the second time period. Each node being a collection of interconnected components. Thus, if the nodes differ, the logical identifier (ID) for processors assigned by the OS would differ, which greatly complicates returning the platform back to its pre-Hibernate configuration. Moreover, the amount of memory assigned to a particular node may differ (since the boot node may be different) and the number of processors on the boot node may be different (since the boot node may be different).
The features and advantages of the present invention will become apparent from the following detailed description of the present invention in which:
The invention relates to a platform and method for supporting hibernation despite the presence of hot-plugged nodes and non-deterministic boot operations. Herein, certain details are set forth in order to provide a thorough understanding of the invention. It is apparent to a person of ordinary skill in the art, however, that the invention may be practiced through many embodiments other that those illustrated. Well-known circuits and ACPI parameters are not set forth in detail in order to avoid unnecessarily obscuring the invention.
In the following description, terminology is used to discuss certain features of the present invention. For example, a “platform” includes hardware equipment and/or software that process data. One type of platform is a computer such as a server, although other types of hardware equipment may employ aspects of the invention. A “software module” includes instructions or code that, when executed, performs one or more selected functions. Each software module is stored in platform readable medium, namely any medium that can store or transfer information. Examples of platform readable medium include, but are not limited or restricted to an electronic circuit, a semiconductor memory device, volatile or non-volatile memory, a floppy diskette, a compact disk, an optical disk, a hard drive disk, or any type of link (described below).
In addition, a “node” is a collection of interconnected components. These components may include active components (e.g., integrated circuit, timing or clocking components, etc.) as well as passive component (e.g., resistors, capacitors, inductors, etc.). A “link” is broadly defined as any type of information-carrying medium such as electrical wire, optical fiber, cable, trace bus or even wireless signaling technology. In addition, the term “hot-plug” or any tense thereof indicates a characteristic where a device may be added, removed or replaced while the OS of the platform continues to operate.
I. Platform Hardware Architecture Overview
Referring to
As shown, the processor substrate 110 comprises a first scalable node controller (SNC0) 120 that is configured with hot-plug capability as shown in
Referring still to
Referring now to
More specifically, as shown in both
SNC0120 further includes a first scalability port interface 1241 that enables a communication path over link 260 to a first scalability port switch (SPS0) 275 via connector 115 and mating connector 255. SNC0 also includes a second scalability port interface 1242 that enables a communication path over link 261 to a second scalability port switch (SPS1) 276 via connectors 115 and 255.
As further shown in
Similar in architecture to first processor substrate 110, second processor substrate 210 comprises a second scalable node controller (SNC1) 220 that is mounted on a substrate and coupled to a processor cluster 211, a local memory cluster 216, a firmware hub 240 as well as a connector 215. Connector 215 is adapted to couple with a second mating connector 256 of interconnection substrate 250.
As shown in
As further shown in
Referring still to
As shown in
Referring back to
II. Hibernate Operations
Referring now to
Next, a determination is made whether the _PTS control method has completed (block 440). If so, the boot image of the platform is stored in non-volatile storage and the OS places the platform into a Hibernate state (blocks 450 and 460).
Referring now to
In the event that the hardware of the platform cannot be configuration with the contents of the stored boot image, a print error message is produced for display to the user or perhaps placement into an internal error log within the platform (blocks 550 and 560). After hardware initialization has completed, an OS boot loader is invoked, the saved boot image is loaded and execution is started from where the OS left off prior to entering the Hibernate state (blocks 570, 580 and 590).
While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications of the illustrative embodiments, as well as other embodiments of the invention, which are apparent to persons skilled in the art to which the invention pertains are deemed to lie within the spirit and scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
5269022 | Shinjo et al. | Dec 1993 | A |
5666540 | Hagiwara et al. | Sep 1997 | A |
5708820 | Park et al. | Jan 1998 | A |
5748971 | Choi et al. | May 1998 | A |
5778443 | Swanberg et al. | Jul 1998 | A |
5784628 | Reneris | Jul 1998 | A |
5805910 | Lee et al. | Sep 1998 | A |
5809223 | Lee et al. | Sep 1998 | A |
5812821 | Sugi et al. | Sep 1998 | A |
5822582 | Doragh et al. | Oct 1998 | A |
5822600 | Hallowell et al. | Oct 1998 | A |
5832281 | Maeda | Nov 1998 | A |
5845134 | Arai | Dec 1998 | A |
5862350 | Coulson | Jan 1999 | A |
5875344 | Madina | Feb 1999 | A |
5920728 | Hallowell et al. | Jul 1999 | A |
5925130 | Frame et al. | Jul 1999 | A |
5933134 | Shich | Aug 1999 | A |
5944828 | Matsuoka | Aug 1999 | A |
5963219 | Choi | Oct 1999 | A |
5974552 | Lim et al. | Oct 1999 | A |
5978922 | Arai et al. | Nov 1999 | A |
5978923 | Kou | Nov 1999 | A |
5995139 | Lee | Nov 1999 | A |
5996082 | Cortopassi | Nov 1999 | A |
6021179 | Lee | Feb 2000 | A |
6049884 | Tsuji | Apr 2000 | A |
6072250 | Thandiwe et al. | Jun 2000 | A |
6209088 | Reneris | Mar 2001 | B1 |
6226667 | Matthew et al. | May 2001 | B1 |
6369547 | Suzuki et al. | Apr 2002 | B1 |
6385721 | Puckette | May 2002 | B1 |
6502109 | Aravamudan et al. | Dec 2002 | B1 |
6523125 | Kohno et al. | Feb 2003 | B1 |
6546472 | Atkinson et al. | Apr 2003 | B1 |
6609182 | Pedrizetti et al. | Aug 2003 | B1 |
6611858 | Aravamudan et al. | Aug 2003 | B1 |
6647472 | Atkinson et al. | Nov 2003 | B1 |
6877074 | Naitoh et al. | Apr 2005 | B1 |
6894600 | Phelan | May 2005 | B1 |
6927555 | Johnson | Aug 2005 | B1 |
20020062455 | Lee | May 2002 | A1 |
Number | Date | Country | |
---|---|---|---|
20030018923 A1 | Jan 2003 | US |