Patent Publication Number: US-8122264-B2

Title: Power-state change as a function of direction of right-to-use status change

Description:
BACKGROUND OF THE INVENTION 
     Herein, related art is discussed to aid in understanding the invention. Related art labeled “prior art” is admitted prior art; related art not labeled “prior art” is not admitted prior art. 
     Many computer institutional and other customers want to obtain sufficient computing power for their present and short term computing demands, and sufficient expandability and upgradeability to meet projected longer-term demands. Several computer resource vendors have addressed this need using a “right-to-use” business model in which a customer purchases a pre-expanded system with right-to-use limits. For example, a customer needing thirty-two processors in the short term with expandability to sixty-four processors long term, might purchase a sixty-four processor system with rights to use thirty-two of the processors. Likewise, the right-to-use business model can permit other computer components, e.g., memory, input/output devices, and storage. 
     Typically, all processors are active, but the operating system monitors and enforces the right-to-use limits by withholding computer threads from the excluded processors. A customer requiring more performance can obtain (e.g., purchase) an authorization; when the operating system accepts this authorization, it simply starts allocating threads to previously excluded processors. 
     In one refinement of this “limited right-to-use” business model, a customer can purchase rights to use in advance and the operating system can debit the pre-purchased rights as they are used. Another refinement is to allow a customer to reallocate resources (e.g., across hard partitions of a server) by deciding which processors are to be used and which excluded. With these refinements, the limited right-to-use business model affords customers a lower initial cost plus the ability to respond practically instantly to changes in demand by reallocating and adding resources. As a result, this right-to-use business model is becoming more widely adopted, so that further competitive refinements are eagerly sought. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The following drawings are of embodiments/implementations of the invention and not of the invention itself. 
         FIG. 1  schematically represents a server system, a method, and a program on computer-readable media in accordance with a first embodiment of the invention. 
         FIG. 2  is a block diagram of a computer in accordance with a second embodiment of the invention. 
         FIG. 3  is a flow chart of a method in accordance with a third embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION 
     In the course of the present invention, it was recognized that the limited right-to-use business model needed to be modified to better accommodate customer&#39;s economic and ecological interests in reducing energy consumption. Processor manufacturers have addressed reducing power consumption by designing processors (e.g., Pentium and Itanium, available from Intel Corporation) that can assume different power states including low-power reduced performance states and state-data-preserving “sleep” states, the latter coming in variants that do and those that do not reboot to assume an active state. Computer system builders have taken advantage of these different states by building in utilities that allow customers to set power states manually or to set utilization criterion for automatically changing power states. However, none of these approaches are optimized for computers subjected to use limitations. The present invention refines the right-to-use business model by coordinating right-to-use status with power states as described below. 
     A server system AP 1  embodying the present invention includes processors PR 1 -PR 4 , memory  11 , input/output (I/O) devices  13 , firmware  15 , a bus  17 , and a power supply  19 , as shown in  FIG. 1 . Memory  11  encompasses both solid-state memory and disk storage. While server system AP 1  is a server, i.e., a computer that provides services to other computers, the invention applies as well to other types of computers. Also, different embodiments of the invention include different numbers of processors, different amounts and arrangements of memory, I/O devices, and firmware. Also, the invention can apply in a multi-computer environment such as a large-scale data center. 
     Note that this description makes references to states defined in “Advanced Configuration and Power Interface Specification” (ACPI) promulgated by Hewlett-Packard Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Ltd., and Toshiba Corporation, Revision 3.0, Sep. 2, 2004, particularly pages 13-23. The ACPI specification defines global power states G 0 -G 3 , device states D 0 -D 3 , and processor states C 0 -C 3 . In addition, there are “sleeping” states with state G 1  and performance level states P 0 , and P 1 -Pn within device state D 0  and processor state C 0 . Not all systems, devices, and processors have all states. Systems, devices, and processors not necessarily conforming to the ACPI standard, often have analogous states. 
     In the ACPI processor power state C 1 , the operating system is asked to deactivate a processor. It does that by removing it from scheduling computational and I/O work and then gives it to firmware for the firmware to put the processor in a lower power state, e.g., a the HALT_LIGHT state for an Itanium processor (available from Intel Corporation). For activation, the operating system sends an interrupt to the processor to be activated. This wakes the processor out of HALT_LIGHT but in the control of firmware. The firmware returns the processor back to the operating system. Then the operating system allows computational and I/O work to be scheduled for the newly activated processor. 
     Memory  11  stores data  21  and programs, including an operating system  23 , virtual machines  25 , and application programs  27 . In other embodiments, virtual machines are not used; for example, all application programs can run directly on operating system  23 . Operating system  23  encompasses utilities and agents including a power-control utility  31 , a utilization monitor  33 , and a right-to-use agent (RTU)  35 . Power control utility  31  allows a user to set power levels for server AP 1  globally (e.g., global ACPI states G 0 -G 3 ) or on a component-by-component (e.g., ACPI processor states C 0 -C 3  and P 0 -Pn, and device states D 0 -D 3 ) basis. Power control utility  31  also lets the user select power profiles for automatically setting power levels based on utilization data gathered by utilization monitor  33 . Finally, power control utility  21  is responsive to commands from RTU agent  35  to set power levels. 
     The function of RTU agent  35  is quite distinct from the functions of power control utility  31  and utilization monitor  33 . RTU agent commands power control utility  31  to set certain performance-versus-power levels, not in response to manual commands or in response to actual utilization, but as a function of the terms of a right-to-use business agreement. Thus, a component that is fully utilized might have its right-to-use changed to reserved under the right-to-use limitations and thus have its power state reduced. Likewise, a reserved component that becomes available under the right-to-use limitation can have its power state raised, regardless of the utilization levels of other components. In this case, right-to-use agent  35  asks operating system  23  to activate a component; operating system  23  then has firmware  15  set the higher state. Of course, once active, a component can have its power state regulated in response to utilization monitor  33 . 
     RTU agent  35  determines rights to use from right-to-use and configuration data  37  stored in a non-volatile rewritable flash memory of firmware  15 . RTU agent  35  can read and write to this flash memory, which is not user accessible. The use data  37  specifies the number of available and reserved components, instant activation privileges, authentication codes, and pre-purchased temporary utilization rights. RTU agent  35  reads this use data  37  and ensures that computer processes are not allocated to reserved processors. While this description focuses on the processor power states, RTU agent  35  similarly enforces right-to-use limitations on other components, including memory modules and I/O devices that have programmable power states. 
     In  FIG. 1 , by way of example, processors PR 1  and PR 2  are “available”, while processors PR 3  and PR 4  are “reserved”, as indicated in dash. Processor PR 1  is in state C 0 , which is fully operational and at sub-state P 0 , which is the maximum performance state. Processor PR 2  is in state C 0 , but in sub-state P 1 , which is a reduced frequency state. This state may have been entered according to a customer selected utilization profile. 
     Processors PR 3  and PR 4  were booted up in state C 0  so that it can assume a state known to operating system  23 ; then RTU agent  35  sets them to power state C 3  to save power while maintaining their states. State C 3  uses the minimum power sufficient to preserve cache data, but takes the longest time to return to an active state. In state C 3 , cache data is preserved, but snoops are ignored. As long as these processors are not used to run programs, this is acceptable. However, in the event a processor is temporarily activated, it may be set to a power state that permits snooping, such as C 1  or C 2 . Alternatively, the same low-power state can be used for both initial and subsequent inactivations, e.g., state C 1  can be used for all reserved processors to minimize activation latency. 
     Processor PR 4  is shown at power state C 1  instead of C 3 . In the interim, it was temporarily made available under the right-to-use limitations by agent  35 . When the period for availability expired, agent  35  set the reserve power state to C 1  so that its cache, which was then full, could be snooped and so that any further activation would be more instantaneous. Alternatively, agent  35  can be configured to set a power state C 2  upon deactivation following temporary activity. 
     RTU agent  35  implements a business method M 1 , flowcharted at the top of  FIG. 1 , with an initialization method segment MS 1  and a right-to-use change method segment MS 2 . While the following characterization of method M 1  focuses on controlling processors, it provides as well for controlling other components such as memory modules, I/O devices, and storage devices according to their right-to-use provisions. 
     Initialization method segment MS 1  method begins with a step M 1 A of booting both available and reserved processors, as defined by the right-to-use limitations, in performance mode. In the ACPI standard (see below), this would be state C 0 , typically, sub-state P 0 . However, other performance states such as P 1  might be used. For example, if when the system was last shut down, low utilization was anticipated after the next boot, then server AP 1  could have been configured to start up at a lower chip frequency, e.g., as associated with state C 0 , P 1 . Booting is typically controlled by firmware  15 , first by itself, and then in collaboration with software as it is loaded. 
     Once the operating system  23  is running, RTU agent  35  can check use rights and configuration data  37  in firmware  15  to identify processors that are “reserved” in that their use rights are limited. Then, RTU agent  35  causes the state of each reserved processor to be set to a lower but data-preserving power state so that, upon command, it can resume activity without requiring a reboot. More specifically, RTU agent  35  commands operating system  23  to reserve processors; operating system  23  has firmware  15  set the lower state. In the illustrated embodiment, the lower power state can be C 1 , C 2  or C 3 . As in the illustrated embodiment, the reserve power state can differ between processors that have not been temporarily activated and those that have. In other embodiments not conforming to ACPI, functionally similar power states are achieved. In alternative embodiments, other states can be used such as a relatively lower power active state, e.g., P 3  of state C 0 . 
     Once initialization is complete, RTU agent  35  continues to enforce right-to-use limitations at method segment MS 2 . In embodiments where the reserved processors are in a non-dormant state (e.g., C 0 , P 3 ), RTU agent  35  can withhold processes from reserved processors. During method segment M 2 , one or more commands to change the right-to-use status of a processor may be received. For example, a command to activate a reserved processor can result from: 1) a purchase of a permanent or temporary right to use that processor: 2) from automatic activation of a reserved processor with pre-paid temporary activation rights; or 3) from an authorized resource allocation in which one processor&#39;s activation is offset by another processor&#39;s deactivation. Conversely, a command to deactivate a processor (i.e., set it to reserve status) can reflect the end of a period of temporary activation or a reallocation of resources in which the given processor is deactivated to allow another to be activated. 
     Note that right-to-use limitations can vary. For example, some may allow all reserved processors to be temporarily activated, while others may allow a subset of reserved processors to be temporarily activated. In the latter case, RTU agent  35  can appropriately limit temporary activations. 
     In response to such a command, RTU agent  35  changes the right-to-use status of the subject processor, e.g., by updating use rights and configuration data  37  at step M 2 A. Once the status has been updated, RTU agent  35  commands power control  31  to change the power state of the subject processor as a function of the direction of the status change at step M 2 B. If the change was from reserved to available, the power state can be changed from C 3 , C 2 , or C 1  to C 0 . If the change was from available to reserved, the power state change can be from C 0  to C 1  or C 2 . 
     The global states are relevant to embodiments of the invention in which right-to-use limits apply to systems or hard partitions. The device states can apply to I/O devices, including adapters that interface with external devices. Global states G 1  and G 2 , device states D 1 -D 3 , and processor states C 1 -C 3  are useful low-power states in the context of the invention. Where these are unavailable or impose unacceptable latencies, low-power performance states P 1 -Pn (where n is an integer greater than 1) can be used. 
     In the case of a processor, the low-power state can be C 1 , as it provides low power with the lowest latency for instant-on purposes. If high latencies are acceptable, states C 2  and C 3  can be used. However, processor state C 3  precludes cache snooping, and so may be inappropriate for processors deactivated after a post-initialization temporary activation. 
     In a second embodiment of the invention as shown in  FIG. 2 , a computer  201  has a hardware components  203  and  205 , and a right-to-use agent  207 . Component  203  has a power state  211  that can be high or low. Right-to-use agent  207  assigns a status  213  to component  203 ; status  213  can be “reserved” or “available”. 
     In an associated method embodiment of the invention as shown in  FIG. 3 , a method M 2  has method segments M 21  and M 22 . In method segment M 21 , a right-to-use agent responds to a right-to-use command by changing the right-to-use status of a component. In method segment M 22 , the power state of the component is changed in a direction that corresponds to the direction of the right-to-use status change. More specifically, a right-to-use status change from reserved to available results in a power state change from low to high; while a right-to-use status change from available to reserved results in a power state change from high to low. A combination of available status and low power state can occur more than momentarily when the power state is set to low for some reason other than right-to-use status, e.g., in response to an extended period of low utilization while in the high power state. 
     The present invention provides for significant reductions in power consumption when processors are not performing work on behalf of the customer. This is achieved without manual action by the customer and without regard to usage and so without waiting for utilization monitor  33  to make a utilization determination. On the other hand, all the options available for controlling performance-versus-power for active processors are retained. Concomitantly, the invention allows a reduction in cooling capacity because reserve processors are generating less heat as a result of running at lower power settings. The reductions are achieved automatically, obviating the need for operator intervention. All this is achieved while permitting convenient online activations and deactivations. These advantages are realized in the context of the following vendor-specific example. 
     Hewlett-Packard Company (HP) markets enterprise servers with the option to include “reserve” hardware components such as processors—these processors are inactive, but available for temporary use or future purchase. An example of such option is Hewlett-Packard&#39;s (HP) “Instant Capacity” (iCAP) program, described in HP Instant Capacity User&#39;s Guide For Versions B.07.x, 2 nd  edition, Hewlett-Packard Development Company, September 2005. One or more iCAP processor can be configured and installed on an HP server; the customer pays a fraction of the price of the processor for the right to have the processor configured in the system but not the right to use it. When there is a need for additional processor capacity the customer can buy the right to use the iCAP processor permanently or temporarily (TiCAP). 
     This invention takes advantage of “power states” available with modern processors, such as Montecito (available as an Itanium processor from Intel Corporation), to reduce the power consumption of an inactive processor. Given that many enterprises are relying on the flexibility provided by instant-capacity programs, the power consumption associated with inactive processor reserves can be significant. This invention significantly reduces this expense by turning power down while the processor is inactive. 
     Some “capacity-on-demand” programs reboot in order to activate a reserve resource. The most advanced ones do activations/deactivations online. Accordingly, the processor needs to be in “warm” state, known to the operating system, but not able to run user applications. The present invention provides power controls to reduce the power and cooling specifications for reserve processors. 
     The software RTU agent supplied with the operating system is responsible for providing operations to activate/deactivate processors, as well as for maintaining compliance with the desired state of active/inactive processors and providing status information. The RTU agent has the ability to change the power state of each reserve processor on the system. Agent operations, such as processor activation and deactivation, also change the power state of the processor. Here are the most typical cases. 1) System configuration from factory: all inactive processors have been configured to have temporary activation of a processor: power state is reset to the normal value the fully available processors have; this is done automatically as part of the activation. 2) Temporary deactivation of a processor: the power state is set back to a lower power state, so as to leave the inactive processor consuming minimal amount of power. 3) Permanent activation: power state is reset to that of the active processors; this is done automatically as part of the permanent activation. 
     Herein, a “computer” is a machine that manipulates data in accordance with a program of instructions. A “power state” of a computer or computer component is a setting that affects the level of power consumption by that component. A “right-to-use” status is a contractually defined status that determines entitlement to use capabilities of components. 
     The present invention applies in the contexts of variations of the right-to-use limitations business models. In the foregoing example, the reserved components are owned by the vendor but located within a system owned by the customer. Alternatively, the model can provide for customer ownership of reserved components, still subject to the right-to-use limitation. Note also that power conservation is not limited to processors, but can apply to memory modules and I/O devices as well. These and other modifications to and variations upon the illustrated embodiment are provided for by the present invention, the scope of which is defined by the appended claims.