OnNow design ensures that PCs are instantly accessible to users when needed, while remaining silent and consuming the least possible power when not actively working.
In earlier laptop designs, designers tried to provide power management through BIOS control of devices. This resulted in problems such as delays while hard disks spin up, screens going blank during presentations, and low battery life due to inappropriate device usage. And previously, the only power management for desktop PCs was the power switch.
Advances in Microsoft Windows operating systems are built on technologies defined in the Advanced Configuration and Power Interface (ACPI) Specification and other industry standards.
With PCs designed to work with Windows power management, including good BIOS and device implementations, users can realize great power savings and take advantage of new PC usage scenarios that werent previously possible.
Home and business PCs that run Windows XP should be evaluated against new baselines for robust performance, fast startup, and maximum power savings, as described here.
Most users prefer to leave PCs turned off when not in use to reduce noise and electricity use. However, for new uses at home and in business, the PC must be instantly available to answer the phone, display e-mail, or browse the Web, but be silent and use minimal energy when not in use.
To achieve this, the OnNow-capable hardware, operating system, and applications must work together in these ways:
| • | The PC appears to be off, but is ready for use immediately when the user presses the On buttonand return to its "off but ready" state automatically when the system is idle. |
| • | Software adjusts its behavior when the PCs power state changesfor example, software does not inadvertently keep the PC busy with unnecessary background tasks. |
| • | All devices participate in power management. Any device can have its power state changed by the system. |
| The power-managed PC experience |
The PC appears to be off but can respond to wake-up events received from an application, a modem or network connection. |
| Home and Business Users | |
Continuous availability | The PC can be available 24x7, going into sleep mode when not in active use. |
Instant resume | The user can wake the PC and begin work immediatelyeven waking another PC on the network if needed. A PC that serves as the Internet Connection Sharing host or that hosts a shared printer can remain in a silent sleep state, but be instantly available if another PC needs the Internet connection or the printer. |
Preserved work state | Windows saves the complete system state when the PC goes to sleep, then restores applications and network connections automatically when the system wakes. |
Automated system maintenance | An application can be scheduled to wake the PC during off-peak times to perform system maintenance tasks, including connecting to the Internet to receive software updates. A remote network administration application can wake a networked PC for software updates or backup. |
Web-based alerts | PC-networked devicessuch as a webcam or home security detection devicecould wake the PC to send e-mail or pager messages based on programmed events. |
| Mobile Users | |
Extended battery life | Windows provides processor performance state control to support new capabilities for optimizing CPU power utilization. |
Graceful docking state changes | After removing a PC from its docking station, the user can begin working later with the entire system state preserved. |
Keep applications alive when CPU is idle | An application can keep the PC awake even if the processor is idlefor example, the PC wont go to sleep during a long pause in a Microsoft PowerPoint presentation |
OnNow capabilities are only possible when the operating system controls power management across the entire PC system. For example, only the operating system can know that an application might be playing back video, even though the processor is idle. The operating system knows that a USB modem was added after BIOS POST completed, or that an IEEE 1394 camera was attached.
The operating system can provide a command center, and it can know system parameters and states that applications and BIOS cannot know, such as:
| • | Thermal zone conditions |
| • | Stop Clock throttling |
| • | Processor power performance capabilities and states |
| • | The sudden appearance of new devices that cause power demands or that indicate a users intention to begin certain tasks |
| • | System states that need to be saved before the PC can safely go to sleep |
In an OnNow system, Windows directs power management, integrates the activities of other components, and administers power policy. The power policiesthat is, the collection of decisions that determine how to save energy and when to go to sleepare based on end-user preferences, application needs, and system hardware capabilities.
The operating system is responsible for the policy of when to go to sleep and how deep a sleep to go into, as well as how to operate the processor to obtain energy conservation and to meet thermal goals. Other components in the system are responsible for other aspects of power policy.
Energy shortages in the Western U.S. have focused public, government, and industry attention on the amount of power consumed by computers and related equipment. It is clear that further efforts are required to reduce the power consumption of PCs.
System manufacturers, firmware developers, chipset designers, and many other members of the PC industry worked with Microsoft to develop the combination of hardware, firmware, and operating system support for a new power management model:
| • | The ACPI Specification, together with industry-defined bus-class and device-class standards, define control interfaces and power state definitions. |
| • | Core operating system functionality coordinates power management at all levels and defines power-state transitions for the entire PC system. |
| • | Windows driver architecture and sample driver code from Microsoft support device power management and Plug and Play. |
| • | Win32 API delivers capabilities for applications that want to participate in OnNow power management. |
Power States
To the user, the PC is either on or off, and other conditions are not visible. However, the ACPI specification defines a number of different power states that are supported by Windows operating systems.
| System power state definitions |
Corresponding power states are also defined in the ACPI specification for devices, buses, and processors |
| State | Description |
S0/Working | On. The CPU is fully up and running; power conservation is on a per-device basis. |
S1 Sleep | Appears off. The CPU is stopped; RAM is refreshed; the system is running in a low power mode. |
S2 Sleep | Appears off. The CPU has no power; RAM is refreshed; the system is in a lower power mode than S1. |
S3 Sleep | Appears off. The CPU has no power; RAM is in slow refresh; the power supply is in a reduced power mode. |
S4 Hibernate | Appears off. The hardware is completely off, but system memory has been saved to disk. |
S5/Off | Off. The hardware is completely off, the operating system has shut down; nothing has been saved. Requires a complete reboot to return to the Working state. |
System Wakeup and Devices
The OnNow power management architecture in Windows supports a wide range of wake-up devices. However, wake-up features are enabled for a device only when requested by an application or when an application performs an action that implies wake-up, such as using the Telephony API (TAPI) to await an incoming phone call.
When a device is enabled for wake-up, the combined capabilities of that device and the operating system dictate which sleeping states (S1S4) are available. The operating system policy is to put the system into the lowest power sleeping state that can support all enabled wake-up devices.
Wake-up signals from devices on peripheral buses, USB devices, PCI add-on cards, and CardBus devices come through their host bus.
Device Support for Power Management
Each device in the system must implement power management in its driver and as required for the bus that it uses to attach to the PC. Each bus and each device class has a specification for how power management is to be enabled, and that defines the degree to which the device can participate in system-wide power management.
USB devices, for example, can be especially good members of a power-managed PC. The USB specifications define device-specific power management, and the Windows XP operating system can selectively suspend USB devices and the USB host controller, which allows the system to switch more often to a lower CPU power state.
Windows Drivers and Power Management
All driver sample and driver models for Windows XP, Windows 2000, and Windows Me implement power management support, without the driver developer having to apply special concern for the details of power control. Windows driver support provides an interface for drivers to perform these power management functions:
| • | Get a devices power-related capabilities |
| • | Query, set, or get a devices power state |
| • | Enable a device to wake the system |
| • | Get battery status |
Applications and Power Management
Windows provides an architecture for applications to participate in power management. Although Windows performs most power management tasks, applications can be designed specifically to handle power management functions.
Application developers can integrate certain power management functions through system messages and APIs that provide mechanisms for:
| • | Allowing an application to inform the operating system about its processing state and devices in use, to avoid disruptions by changes in the power state |
| • | Giving applications more knowledge of and control over the power state of specific devices |
For information, application developers can refer to the "Power Management" topic in the Microsoft Platform SDK.
Win32 APIs for Power Management
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/power/power_3v6t.asp
Microsoft first delivered OnNow power management and ACPI support in Windows 98 and extended that support in Windows 2000 and Windows Me. Windows XP delivers new benefits and usage scenarios for end users, in addition to cost and environmental savings:
| • | The fastest resume time of any PC operating system |
| • | Improved support for processor C-state control |
| • | Native processor performance control for mobile PC processors such as Intel SpeedStep, AMD PowerNow, and Transmeta Longrun |
| • | Improved power management of USB devices |
The Windows development team took bold steps in making fast resume times a reality for PCs running Windows XP. Heres a summary of key changes.
| • | Support for BIOS Improvements. Windows XP supports the Simple Boot Flag specification, which can result in reduced time spent in BIOS self tests if the previous system boot was successful. Simple Boot Flag Specification |
| • | Boot Loader Improvements. The Windows XP boot loader caches file and directory metadata in large chunks in a "most recently used" manner, dramatically reducing time spent seeking data on hard disks. Each system file is now read with a single I/O operation. The result is that the boot loader is about 4 to 5 times faster than in Windows 2000, with similar improvements in hibernation resume times. |
| • | Windows Boot Improvements. Optimizations include overlapping device initialization with the required disk I/Os, and removing or delaying the loading of processes and services that are unnecessary at boot time. |
| • | Windows Hibernation Improvements. Before Windows XP writes to the hibernation file, all memory pages on the zero, free, and standby lists are freed, so these are not written to disk. Memory pages are also compressed before being written. |
| • | Windows Standby Resume Improvements. Many changes were made to the mechanisms by which Windows XP components manage the resume processes. |
Technical details about these changes and evaluation tools are provided on the FastBoot/Fast Resume web site.
Fast Resume Tools and Guidelines
http://www.microsoft.com/ whdc/ hwdev/ platform/ performance/ fastboot/default.mspx
Windows XP Optimizations for Mobile PCs. The most radical behavior enhancement that mobile PC users will recognize when running Windows XP come from the optimizations for resume state performances described in the previous section. The mobile PC user can close the lid while working, then open it hours later and begin working in the same place immediately.
Windows XP also includes optimizations for C-state performancethat is, the ability to run the processor in lower power states when the PC is idle. To do this, Windows developers made it possible for system manufacturers to program the C-state behavior for the specific processor used in a new mobile unit.
Windows XP and Processor Control. Today’s mobile PC users want to play DVD titles and games. This introduces new high-CPU-utilization demands to add to the problems that designers have struggled with in working to conserve battery life. To solve some of this problem, CPU manufacturers have introduced microprocessors that employ different performance states:
| • | High voltage/high frequency states for use when processor utilization is high |
| • | Low voltage/low frequency states to conserve battery life |
To support these new processors, Windows XP has implemented native processor performance control and new processor performance control policies.
| Processor control policy types |
In Windows XP, the processor performance control policy is linked to the Power Scheme setting in the standard Power Options control panel applet. |
| Policy | Description |
None | Highest performance state |
Constant | Lowest Performance state |
Adaptive | Performance state chosen according to demand |
Degrade | Lowest performance state + additional linear performance reduction as battery discharges |
Windows XP supports processor performance control using the Processor Objects defined in the ACPI Version 2.0 specification and the legacy SMI interface defined by Intel. Microsoft defines functionality, policy, and implementation details for each CPU vendor in a white paper.
Windows XP Native Processor Performance Control
http://www.microsoft.com/whdc/system/pnppwr/powermgmt/devicepm.mspx
The Windows XP developers implemented support for the individual technologies from different CPU vendors to provide key advances for processor performance control:
| • | New processor driver architecture | ||||||
| • | New APIs provided to control C-state behavior | ||||||
| • | All processor control moved from the hardware abstraction layer (HAL) to the processor driver, which provides:
|
| Windows XP processor control policy |
The user selects the Power Scheme to be used, and Windows XP matches it with a processor control policy. |
| Power scheme | AC power | DC power |
Home/Office Desktop | None | Adaptive |
Portable/Laptop | Adaptive | Adaptive |
Minimal Power Management | Adaptive | Adaptive |
Maximize Battery Life | Adaptive | Degrade |
Presentation | Adaptive | Degrade |
Always On | None | None |
Recommendations to Mobile PC Manufacturers.
| • | Support processor control as defined in Section 8.3.3 of ACPI 2.0, following the guidelines from Microsoft. | ||||||
| • | Do not provide CPU performance state control through any means other than the operating system when running Windows XP. | ||||||
| • | Use tools from the Windows DDK to optimize systems C-state utilization:
|
Prepare for the "Designed for Windows" Logo: Support S3 State.Windows Logo Program System and Device Requirements, Version 2.0, requires support for power management for x86-based PC client systems and devices, based on ACPI and other industry specifications. In particular, the baseline requirement for the "Designed for Windows" logo is:
System ensures optimal user experience for suspend and hibernate, including correct BIOS support for the supported sleep states plus a Fast POST implementation.
Target goals for fast system startup and resume times are required for x86-based client systems by January 1, 2002. (Note, however, that the initial release of the 64-bit Windows operating system will not include support for power management sleep states.)
Windows Logo Program Requirements
http://www.microsoft.com/whdc/winlogo/downloads.mspx
BIOS Setup. For PCs designed to run Windows 2000 and Windows XP:
| • | The default BIOS settings should be:
| ||||||
| • | Optimize your BIOS code for S3 Resume:
| ||||||
| • | Implement the Simple Boot Specification. |
Chip Support. Take advantage of CPU and chipset power management features:
| • | Get register-specific information from your vendors |
| • | Ensure proper register programming |
| • | Ensure correct ACPI reporting |
| • | Probe boards to ensure they are working |
Design for Fast Resume. The recommended performance guidelines for a consumer PC running Windows XP are:
| • | Boot to a useable state in a total of 30 seconds |
| • | Resume from Hibernate (S4) in a total of 20 seconds |
| • | Resume from Standby (S3) in a total of 5 seconds |
Boot and resume times are measured from the time the power switch is pressed to being able to start a program from a desktop shortcut.
Test and Evaluate. Thorough power management testing should begin with Windows XP. Microsoft provides the Bootvis tool for manufacturers who want to improve boot and resume times for new PCs.
| • | Use Bootvis to:
| ||||||
| • | Use Windows XP HCT 10.0 to test power management capabilities of systems and devices, to ensure robust performance. |
Windows HCT 10.0 from WHQL
http://www.microsoft.com/whdc/whql/default.mspx
ACPI Specification, Revisions 1.0b and 2.0 This specification defines an interface to the system board that enables the operating system to implement directed power management and system configuration. ACPI allows system manufacturers to build OnNow-capable systems. See
http://www.acpi.info/ ![]()
Device Class Power Management Reference Specifications
http://www.microsoft.com/ whdc/ hwdev/ resources/ specs/ PMref/default.mspx
1394 Trade Association Power Specification, Part 1: Cable Power Distribution; Part 3: Power State Management
http://www.1394ta.org/ Technology/ Specifications/ specifications.htm/ ![]()
PCI Bus Power Management Interface (PCI-PM) Specification, 1.1
This is the only specification that ensures PCI compatibility with Windows 2000/Windows XP power management, which use PME# as the wake-up signal. See the PCI SIG web site at
http://www.pcisig.com ![]()
Simple Boot Flag Specification
This specification defines a mechanism for Windows, the system BIOS, and option ROM BIOSes to work together to optimize the boot process. See
http://www.microsoft.com/ whdc/ hwdev/ resources/ specs/ simp_boot.mspx
USB 1.1 Specification and USB device class specifications
These specifications define bus class and device class power management implementations. See the USB Implementers Forum web site at
http://www.usb.org/developers/ ![]()
OnNow InitiativeImplementation Guidelines
http://www.microsoft.com/whdc/system/pnppwr/powermgmt/devicepm.mspx
Fast startup/fast resume and Bootvis tool for Windows XP
http://www.microsoft.com/ whdc/ hwdev/ platform/ performance/ fastboot/default.mspx
Windows Logo Program for Hardware
http://www.microsoft.com/whdc/winlogo/default.mspx
Windows XP HCT 10.0 from WHQL
http://www.microsoft.com/whdc/whql/default.mspx