The present application is related to the following United States Patent Applications, which are assigned to the assignee hereof and incorporated herein by reference in their entireties and for all purposes: U.S. patent application Ser. No. 11/148,579, entitled, “DISTRIBUTED SYSTEM ANT) METHOD FOR MANAGING POWER USAGE AMONG SERVER DATA PROCESSING SYSTEMS,” and filed concurrently herewith. U.S. patent application Ser. No. 11/148,692, entitled, “POWER MANAGEMENT SERVER ANT) METHOD FOR MANAGING POWER CONSUMPTION,” and filed concurrently herewith. U.S. patent application Ser. No. 11/148,580, entitled, “SYSTEM AND METHOD FOR MANAGING POWER USAGE OF A DATA PROCESSING SYSTEM SUBSYSTEM,” and filed concurrently herewith. U.S. patent application Ser. No. 11/148,934, entitled, “HIERARCHICAL SYSTEM AND METHOD FOR MANAGING POWER USAGE AMONG SERVER DATA PROCESSING SYSTEMS,” and filed concurrently herewith.
1. Technical Field
Embodiments of the present invention relate generally to power allocation within a data processing system and more particularly to a power-managed server and method for managing power consumption among a plurality of server data processing systems.
2. Description of the Related Art
Recently, the development of data processing systems (e.g., computer systems) has begun to focus on the amount of electrical power consumed rather than solely on more traditional aspects such as the volume of data stored, the speed at which operations are completed, or the flexibility of the types of operations which may be performed. This is true not only in the context of mobile data processing system devices where the weight and charge/discharge cycle time of portable power sources such as battery cells is critical, but also in the context of desktop or large data processing systems not intended to be user-portable.
In the larger data processing system context, a reduction in power consumption may be necessary to achieve eligibility for certain environmental impact standards or labels such as the “Energy Star” rating system established by the United States Department of Energy and the Environmental Protection Agency or merely to reduce the cost of operating a data processing system associated with system power. The issue of power management is even more critical in larger scale data processing systems such as supercomputers, parallel processing data processing systems (e.g., massively parallel processing systems), server data processing system “farms”, and rack servers.
A rack server is a data processing system including a storage rack element into which one or more server data processing system modules are inserted. In a typical configuration, a single power input or source (e.g., a conventional wall-mounted power outlet) is coupled to each storage rack element with power being distributed or subdivided among the elements of the rack as needed (e.g., via a power distribution unit or “PDU”).
The available space of a rack server is typically defined in terms of rack units or “U” with storage rack elements being available in a variety of sizes (e.g., 14U, 25U and 42U). Conventional server data processing system modules are measured in terms of the number of rack units they occupy, with rack density being determined by the number of “U” occupied within a storage rack element. Until recently, a conventional rack server would include a 42U rack having 6 7U-sized server data processing system modules. More modern rack servers may frequently include 21 2U-sized server data processing system modules, 42 1U-sized server data processing system modules, or even 84 half rack unit-sized or “blade” server data processing system modules.
Each server data processing system module typically includes a separate power supply element and consequently, as the number of modules in a rack server increases, the amount of power consumed may increase disproportionately as compared with a rack server including a smaller number of larger modules. Electrical power consumption in such power-dense rack servers may be so great that a single power input/source, server farm, or data center may be unable to provide sufficient power to operate all modules as needed.
In a conventional data processing system, power management is frequently accomplished by reducing rail or source voltages applied to a processing element (e.g., a central processing unit) or the frequency of a clock signal applied to such a processing element in response to a user selection of a particular power “mode” (e.g., maximum system performance or minimum power consumption mode) or following the detection of an external event such as the application or removal of an external (e.g., alternating current) power source. While such power management techniques may result in a reduction in the amount of power consumed, they either require explicit user input which may not accurately reflect the power consumption needs of a data processing system affected or operate completely independently of data processing system power requirements based upon external events. Moreover, such power management techniques provide no manner to coordinate the power consumption of multiple data processing systems which depend on a single power input or source.
A power-managed server and method for managing power consumption are provided herein. According to one embodiment, a power-managed server data processing system is provided among a plurality of server data processing systems which comprises a power management communication port to communicatively couple the power-managed server data processing system to a power management server data processing system of the plurality of server data processing systems. The power-managed server data processing system of the described embodiment further comprises a system management processor coupled to the power management communication port which comprises power-managed logic configured to transmit power management data to the power management server data processing system and to receive a power management command utilizing the power management communication port. Moreover, the power management command is generated utilizing the power management data, and the power management data comprises power management capability data.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. As will also be apparent from the accompanying description, the operations disclosed herein may be implemented in a number of ways including implementation in hardware, software, firmware, or a combination thereof, and such changes and modifications may be made without departing from this invention and its broader aspects. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous features and advantages made apparent to those skilled in the art by referencing the accompanying drawings in which:
a-4c illustrate a high-level flow diagram of an operational process of a power management-enabled server data processing system according to an embodiment of the present invention.
The use of similar reference symbols in different drawings is intended to indicate similar or identical items.
The following sets forth a detailed description of at least the best contemplated mode for carrying out the one or more systems, devices and/or processes described herein. The description is intended to be illustrative and should not be taken to be limiting.
In the following detailed description, numerous specific details such as specific method orders, structures, elements, and connections have been set forth. It is to be understood however that these and other specific details need not be utilized to practice embodiments of the present invention. In other circumstances, well-known structures, elements, or connections have been omitted, or have not been described in particular detail in order to avoid unnecessarily obscuring this description.
References within the specification to “one embodiment,” “an embodiment,” or “embodiments” are intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. The appearance of such phrases in various places within the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.
Embodiments of the present invention provide a power-managed server and method for managing power consumption among a group or plurality of server data processing systems within a data processing system such as a rack server. Within the present description, the term “power” is intended to indicate electrical power or data or a factor which represents or specifies electrical power or is proportional to electrical power (e.g., current, voltage, duty cycle, or the like). According to one embodiment, power consumption is managed among a group or plurality of server data processing systems including one or more power-managed server data processing systems and at least one power-management server data processing system by the power management server data processing system.
In an alternative embodiment, power management may be accomplished using a separate power management device or element rather than a server data processing system incorporating such functionality as described herein. As all server data processing systems of a group sharing a single power input or source do not typically consume the maximum rated or required quantity of power substantially simultaneously, embodiments of the present invention enable a group (e.g., a rack, server farm, or data center) of server data processing systems to be supplied with significantly less power than the maximum configuration would require, while preserving application performance on all server data processing systems.
To determine the level of power management which needs to be applied, power management data is requested from and supplied by the described power-managed server data processing system(s) to either a power management server data processing system or discrete power management device. Such power management data may comprise any data relevant to the management or regulation of server data processing system power consumption and in one or more embodiments includes power management capability data such as data specifying minimum, maximum, and average or “typical” required power, data specifying a proportion or percentage of power (e.g., maximum required power) to which a corresponding power-managed server data processing system may regulate or “throttle” power consumption. In other embodiments of the present invention, power management data may include data specifying a static (e.g., installation) or dynamic priority level as further described herein.
In one embodiment of the present invention, a single server data processing system includes both power management logic and power-managed logic within a system management processor. Consequently, the single server data processing system may act as both a power management server data processing system and a power-managed server data processing system, communicating power management data among its system elements, logic or processes and acting to self-regulate power consumption.
While a group or plurality of server data processing systems have been described herein primarily as server data processing system modules within the context of a rack server, embodiments of the present invention are not limited to use in conjunction with rack servers or component modules thereof. For example, in alternative embodiments of the present invention, a group or plurality of server data processing system may comprise one or more free-standing, enclosed server data processing systems or a combination of free-standing, enclosed server data processing systems and server data processing system modules of a rack or blade server. According to one embodiment, a plurality or group of server data processing systems is defined by coupling to a particular power input or source (e.g., a wall outlet, a power line/link, a power substation, or the like).
In other embodiments of the present invention, static and/or static and dynamic priority values may be utilized to determine in what manner power consumption is managed or regulated. Data specifying a static priority value associated with a server data processing system remains constant for some definite period of time during which data specifying a dynamic priority value associated with the same server data processing system may vary. For example, a static priority value may be determined based upon the order in which server data processing systems of a plurality or group are installed or brought into an operational state. Consequently, static priority values may remain constant until some physical data processing system reconfiguration occurs. In other embodiments of the present invention, other appropriate metrics may be used for establishing static priority (e.g., device class, class of service requested by an associated customer, or the like).
By contrast, a dynamic priority value may reflect an immediate need for greater power or operational/execution speed and/or reduced power management. According to one embodiment of the present invention, a dynamic priority value is utilized merely to indicate a desire to reduce or eliminate the application of power management techniques (e.g., throttling) for some period of time at a smaller level of granularity than is associated with static priority. For example, a dynamic priority value may be established or requested in association with a specific high priority operation or transaction (e.g., the critical section of an application program) to be performed by an application program on a server data processing system. According to one embodiment, although a dynamic priority level may be requested by or for a particular a server data processing system, an associated modification of power management may or may not be applied to that server data processing system depending on other system parameters (e.g., the operating state and/or static priority of the requesting server data processing system or other server data processing systems, the available power, or the like).
A dynamic priority value may be a binary indicator (i.e., either active or inactive) associated with a predetermined dynamic power management or consumption level (e.g., no power management, some modified maximum level beyond which power consumption may not be reduced, a fixed relationship with the power management applied to one or more other server data processing systems, or the like). Alternatively, a dynamic priority value may comprise data specifying a modified power management level (on the same or a separate scale as is utilized for static priority values) which may be combined with or supplant an existing static priority level designation.
Power distribution among server data processing system modules 106 is accomplished in the illustrated embodiment by coupling UPS 110 to a power supply (e.g., power source 104A of
Each system management processor 114 of the illustrated rack server embodiment includes power management logic 116 and power-managed logic 118. In operation, power management logic 116 requests and receives power management data from power-managed server data processing systems (e.g., modules) within the overall data processing systems and directs or manages power consumption or allocation among those server data processing systems which are power-managed via power management commands as further described herein. Conversely, power-managed logic 118 receives and responds to requests for such power management data as well as receiving power management commands and, where possible, satisfying those commands received.
In the illustrated rack server embodiment, each of server data processing system modules 106A . . . 106N further includes a power management operational mode selection or activation element (not illustrated) utilized to select whether an associated server data processing system module is configured as a power management or power-managed server element. Such a selection element may be physical (e.g., a switch) or a combination of physical and logical elements (e.g., a data storage element coupled with data such as a flag specifying an operational state). While each of server data processing system modules 106A . . . 106N has been depicted within
Server data processing system module 200 of the depicted embodiment includes a number of system processors 202A . . . 202D and a system management processor 214 coupled to memory modules 206A . . . 206F and input/output (I/O) modules 208A . . . 208E via a memory hub 210 and an I/O hub 212 as shown. Server data processing system module 200 of the illustrated embodiment further includes a power management communication port 220 as described further herein.
Memory (not illustrated) coupled with one or more of memory modules 206A . . . 206F may comprise any of a number of system memory-type storage elements such as random access memory (RAM), read-only memory (ROM), flash memory, and cache. Similarly, an I/O device (not illustrated) coupled with one or more of I/O modules 208A . . . 208E may include traditional I/O devices such as keyboards, displays, printers, cursor control devices (e.g., trackballs, mice, tablets, etc.), speakers, and microphones; storage devices such as fixed or “hard” magnetic media storage devices, optical storage devices (e.g., CD or DVD ROMs), solid state storage devices (e.g., USB, Secure Digital SD™, CompactFlash™, MMC, or the like), removable magnetic medium storage devices such as floppy disks and tape, or other storage devices or mediums; and wired or wireless communication devices or media (e.g., communication networks accessed via modem or direct network interface).
Embodiments of the present invention may include software, data processing hardware, and various processing operations further described herein. The features and process operations of the present invention may be embodied in executable instructions embodied within a machine-readable medium such as a memory coupled with a memory module of memory modules 206A . . . 206F, a storage device, a communication device or medium, or the like. A machine-readable medium may include any mechanism that provides (i.e., stores and/or transmits) data in a form readable by a machine (e.g., server data processing system module 200). For example, a machine-readable medium may include but is not limited to: random access memory (RAM); read only memory (ROM); magnetic storage media; optical storage media; flash memory devices; electrical, optical, and/or acoustical propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.); or the like. The described executable instructions can be used to cause a general or special purpose processor such as one or more of system processors 202A . . . 202D, programmed with the instructions, to perform operations, methods or processes of the present invention. Alternatively, the features or operations of the present invention may be performed by specific hardware components that contain hard-wired logic for performing such operations, or by any combination of programmed data processing components and custom hardware components.
The present invention has been described in the context of fully functional data processing system; however, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product in a variety of forms and of being applied equally, regardless of the particular type of machine-readable or signal-bearing media used to carry out the distribution. Examples of signal-bearing media include recordable media such as floppy disks and CD-ROM, transmission type media such as digital and analog communications links, as well as media storage and distribution systems. Embodiments of the present invention may similarly be implemented using software modules used to perform certain operations or tasks. The described software modules may include script, batch, library, or other executable files and may be stored on a machine- or computer-readable medium. Thus, the modules may be stored within a computer system memory to configure a data processing or computer system to perform one or more functions of a software module. Various types of machine or computer-readable storage media may be used to store the modules discussed herein.
While a distinct power management communication link or port connection has been illustrated with respect to various invention embodiments herein, in an alternative embodiment such a coupling may be performed using a power management communication link which is integral with an enclosure (e.g., a storage rack element) within which one or more of server data processing systems are disposed. Consequently, each server data processing system of a power management group may be coupled to a power management communication link by insertion into an enclosure. Once coupled to a power management communication link, a server data processing system of the power management group is then designated or selected to act as a power management server data processing system (process block 304).
According to one embodiment, (e.g., where all server data processing systems include power management as well as power-managed logic) the first server data processing system activated within the power management group is designated as the power management server data processing system. In other embodiments, selection or designation of a power management server data processing system or “power manager” is performed utilizing other data or attributes. For example, all server data processing systems may be polled to identify which, if any, include power management logic with a power manager being selected from the server data processing systems so identified. Moreover, the physical position of a server data processing system within the overall system may be examined to designate a server data processing system as power manager, for example to reduce the physical distance separating the power manager from the other server data processing systems of the power management group (and consequently the communication latency), or to reduce the likelihood that a power management server data processing system will become decoupled or disconnected from other servers of the system.
Thereafter, at least one server data processing system of the power management group is designated or selected to be “power-managed” (process block 306) as shown. In one or more embodiments of the present invention, a selection or designation of a power management and/or power-managed server data processing system may be performed utilizing a power management operational mode selection or activation element as previously described herein. Once selected, all power-managed server data processing systems then transfer power management data (e.g., power management capability data as previously described herein) to the power management server data processing system of the power management group via the power management communication link (process block 308). Power consumption of one or more server data processing systems of the power management group may then be managed or regulated utilizing the transferred power management data (process block 310). Additional or modified power management data (e.g., resulting from the association of additional server data processing systems with the power management group or changes to existing server data processing systems) is then transferred and additional power management operations are performed as appropriate.
a-4c illustrate a high-level flow diagram of an operational process of a power management-enabled server data processing system according to an embodiment of the present invention. Such an operational process may be embodied, in one embodiment, within a software application, routine, process, or the like stored within and executed from a machine-readable medium such as a server data processing system memory element of a power management-enabled (e.g., power management or power-managed server data processing system). With reference to the figures and in particular referring to
If a determination is made that no power management server data processing system exists within an associated power management group, the server data processing system performing the depicted operational process assumes a predetermined power management or consumption state (process block 404). No associated power management server data processing system may exist in any of a number of circumstances (e.g., an existing power management server data processing system has become disconnected, a power management server data processing system has not yet been designated or selected, the power management group has been configured to not include such a server, a power-managed server data processing system has become disconnected from the remainder of the power management group and consequently cannot identify a power management server data processing system, or the like).
While no further operations have been depicted with respect to
If a determination is made that a power management server data processing system is associated with the power management group, the server data processing system performing the depicted process determines whether it is in fact that server by determining whether associated power management logic has been activated (process block 406). If a determination is made that associated power management logic has not been activated (and consequently that the current server data processing system is not a power-management server), the illustrated process embodiment is continued as illustrated in
With reference now to the figures and in particular to
If a determination is made that no request for power management data has been received, a determination is subsequently made whether a power management command has been received (process block 412) (e.g., from an associated power management server data processing system). If no power management command has been received, the illustrated process embodiment continues until a request for power management data or a power management command is determined to have been received as shown. Once a power management command is received however, a determination is made whether the receiving server data processing system has the capability to perform the requested power management command or operation (process block 414). The server data processing system receiving a power management command then performs the requested power management command (process block 416) and/or awaits further commands or data requests as shown.
With reference now to the figures and in particular to
Thereafter in the illustrated process embodiment, a power usage or consumption level of each power-managed server data processing system which has been disconnected or decoupled from the power management communication link to the power management server data processing system performing the depicted process is determined (process block 422). A request is then issued to each connected power-managed server data processing system for power management data such as current or average power usage or consumption, current power management state, and/or a dynamic priority value or state (process block 426) and data specifying one or more of the requested attributes is received (process block 426).
Based upon such data received from power-managed server data processing systems, a determination is made whether or not a power usage threshold has been exceeded (process block 428). According to one embodiment of the present invention, a power-management server data processing system is configured at start-up (e.g., when added to an associated power management group or storage rack element) with power management group (e.g., rack server) power parameters such as the maximum amount of power that may be supplied and such power parameters are utilized in performing the described determination. If a power usage threshold has not been exceeded, the depicted process embodiment cycles to determine whether any previously-connected server data processing systems have become disconnected along with such newly-disconnected server data processing systems' power usage profiles (process block 422) and to request and receive updated power management data from all connected power-managed server data processing systems (process blocks 424 and 426, respectively) as shown.
If a determination is made that a power usage threshold has been exceeded however, one or more power management commands are generated based upon previously-received power management data (process block 430) and such power management commands are transferred, as appropriate, to power-managed server data processing systems within an associated power management group utilizing a power management communication link (process block 432). In various alternative embodiments of the present invention, power management commands as described herein may be applied individually to server data processing systems within a power management group, to a power management group as a whole, or a sub-group of server data processing systems within a power management group. Data specifying the power consumption of a power management group or server data processing system may also be transmitted (e.g., as a power usage report) to other elements or users within an associated data processing system or communications network.
Although the flow diagrams depicted in
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from this invention and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention.
Consequently, the invention is intended to be limited only by the scope of the appended claims, giving full cognizance to equivalents in all respects.
Number | Name | Date | Kind |
---|---|---|---|
5249297 | Brockmann et al. | Sep 1993 | A |
5251320 | Kuzawinski et al. | Oct 1993 | A |
5307409 | Driscoll | Apr 1994 | A |
5398244 | Mathews et al. | Mar 1995 | A |
5483656 | Oprescu et al. | Jan 1996 | A |
5579524 | Kikinis | Nov 1996 | A |
5652893 | Ben-Meir et al. | Jul 1997 | A |
5719800 | Mittal et al. | Feb 1998 | A |
5724592 | Garner | Mar 1998 | A |
5752050 | Hernandez et al. | May 1998 | A |
5764913 | Jancke et al. | Jun 1998 | A |
5787294 | Evoy | Jul 1998 | A |
5987614 | Mitchell et al. | Nov 1999 | A |
6029006 | Alexander et al. | Feb 2000 | A |
6266735 | Isobe | Jul 2001 | B1 |
6301527 | Butland et al. | Oct 2001 | B1 |
6377874 | Ykema | Apr 2002 | B1 |
6477483 | Scarlat et al. | Nov 2002 | B1 |
6525895 | Wakui | Feb 2003 | B2 |
6564274 | Heath et al. | May 2003 | B1 |
6564328 | Grochowski | May 2003 | B1 |
6564332 | Nguyen et al. | May 2003 | B1 |
6643771 | Tsushima et al. | Nov 2003 | B2 |
6701446 | Tsern et al. | Mar 2004 | B2 |
6708278 | Howard et al. | Mar 2004 | B2 |
6802014 | Suurballe | Oct 2004 | B1 |
6931553 | Plante et al. | Aug 2005 | B1 |
20020007463 | Fung | Jan 2002 | A1 |
20020062454 | Fung | May 2002 | A1 |
20030037268 | Kistler et al. | Feb 2003 | A1 |
20030055969 | Begun et al. | Mar 2003 | A1 |
20030061448 | Rawson, III | Mar 2003 | A1 |
20030065961 | Koenen | Apr 2003 | A1 |
20030131119 | Noonan et al. | Jul 2003 | A1 |
20050102544 | Brewer et al. | May 2005 | A1 |
20060168416 | Kessels et al. | Jul 2006 | A1 |
20070005994 | Bahali et al. | Jan 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
20060282687 A1 | Dec 2006 | US |