This week I have been studying the new and enhanced power saving features of Windows 7. There is a long list of enhancements that present the possibility of running a much more power efficient computer.
Windows 7 power saving features:
- Idle Resource Utilisation
- Trigger start services
- Enhanced processor power management
- Timer coalescing
- Device power management
- Adaptive Display Brightness
- Low-power audio
- Bluetooth power improvements
- Networking power improvements
- Power efficiency diagnostics
- Power policy
- Group policy
Some of these features are implemented to take advantage of newer processors and devices, so if you’re using Windows 7 to breath new life into older kit – something Windows 7 really can do – you’re not going to be able to get the benefit from these features. Additionally, some features require support in software drivers or service implementations. This means developers need to specifically modify code to support these new Windows 7 features. For example, trigger started services enables services not to be started until they are needed. Today your Windows Vista or older machine will start a whole slew of services on start-up, and whether they are needed or not they will sit then in the background consuming processor cycles. Under Windows 7, a service CAN be implemented to start when a system event happens or when requested to via a client application. This approach aids Windows 7 start up time significantly.
The core theme of power saving in Windows 7 seems to be based on the principal of batching up work. Idle resource utilisation, timer coalescing and enhanced processor power management all work as part of this ethos. Modern processors use very little power when they are idle, but they do use power switching from active states to the idle state and back again. The trick therefore, is to ensure that the processor can remain in the idle state for as long as possible. To do this, activities that would interrupt the processor from idle state are gathered together or delayed until really required.
For example, Timer coalescing. USB devices typically work with a polling model. The device expects to be polled at regular intervals based on the system clock. Many such devices on your machine may have their polling frequency in such a way that the processor is ‘hit’ many times for each individual device. By using timer coalescing, Windows 7 is able to co-ordinate the polling of devices into appropriate batches. This enables the processor to idle and then do all the device polling as a single period of operation.
The most dramatic power saving functionality is to be found in the device power management features. Adaptive display brightness is something we are familiar with in mobile devices. On these devices the display is dimmed and then turned off after a period of no use. Additionally, some devices can alter the brightness of the display reactively to the lighting conditions by using an ambient light sensor. Windows 7 now also includes this functionality. With its new sensor platform Windows 7 will automatically adjust display brightness when an ambient light sensor is attached to a machine. See my sensor platform XNA video for an example.
Apparently the display can represent 40% of the power consumed by a computer, so controlling its use more effectively can make for dramatic savings. But likewise, if you have a desktop computer, purchasing a power efficient display is critical! My old DELL 2000FP that I use on my home office tower system uses approximately 40watts of power just in standby.
Low-power audio makes use of the latest Intel HD Audio low-power specification. Intel HD Audio has been around for a while so it is difficult to determine which specific version is required for Windows 7 to obtain the most benefits. Certainly the Intel Atom N270 implementation supports an Intel HD Audio low-power implementation. Support for this technology in Windows 7 should improve power conservation when playing back media such as music and DVDs.
Both the Bluetooth and Wifi power saving implementations have received enhancements in Windows 7 compared to Windows Vista. In Windows 7, the Bluetooth service isn’t started until a Bluetooth device is connected with the Windows 7 machine – an example of a trigger start service. The WiFi power saving implementation appears to correct behaviour caused by wireless access points that didn’t support wifi power saving or did so incorrectly. For wired connections, the removal of the network cable sees the network card placed into a power saving mode immediately, only being restored to full power when the cable is re-attached.
If you’ve read this far – well done! Now we get to the interesting stuff. Windows 7 provides a new tool for determining and configuring the power saving functionality of a PC. Creatively (not) called PowerCFG, the command line tool can be used to produce an HTML or XML report on the power saving configuration issues of the PC. PowerCFG can be used in a script – so if you manage a network of PCs you can automate the analysis or configuration of them. This is something clearly very useful to businesses.
On a personal point, examining my laptops power saving issues using PowerCFG lead me to change how I use it as well as correcting some configuration issues. Chiefly the report tells you what devices may prevent your computer from entering sleep mode. Most of these in my laptop were USB connected devices. This included the Bluetooth module and the fingerprint reader both built into my laptop but clearly integrated into the system using USB. I have a Microsoft Bluetooth Presenter Mouse and when connected to my machine PowerCFG suggested that the Bluetooth device may prevent my machine from entering sleep. PowerCFG only suggests its a problem, but I’ve now switched to using just the built in touchpad of my laptop rather than the mouse, and in doing so, when I’m working from my home office on a wired connection I now turn my wifi and Bluetooth functionality off via the switch at the front of my laptop. Doing this, and exploring and making some small changes to device driver configurations highlighted by PowerCFG reduced the number of potential power saving issues identified significantly.
If you are running Windows 7 RC try this for yourself. Open a CMD box in elevated Administrator mode, then type PowerCFG /ENERGY. You should close all open applications (including IM clients in the system tray!) before doing so. PowerCFG analyses your machine and processor usage for one minute. Then take a look at the Energy_Report.HTML produced. It will show you power saving configuration errors and applications/services which are using your processor extensively in the back ground – preventing it from idling.
By using enhanced Group Policy settings in Windows 7 plus Powershell 2.0 scripts with the PowerCFG tool, network administrators can configure and enforce power saving features.
I used a cheap mains power socket electricity meter to evaluate power savings for my home office. The power meter provided a revelation on the power used by my machines. I was able to configure my meter with the exact per Kw cost of electricity and therefore measure not only the volume of electricity used but also the real cost of that electricity to me.
The first thing that struck me was the difference in power consumption between my work laptop (a chunky Toshiba X200-19) and my personal home brewed tower system. While using Windows 7 on my laptop – a modern Centrino Duo – I was able to reduce my laptop power consumption (while still working on it) to 59w. Yes, less then the typical incandescent 60w light blub. While my home brew tower system with the Dell 2000FP monitor quadrupled my power usage to 240w – of which the display was approx. 70w.
My typical office set up is to have both my work and home machines running. This allows me to work away while monitoring twitter feeds on my home machine as well as using my home machine to run apps when my work machine is engaged in long running, CPU intensive tasks – like video rendering.
But given the enormous power consumption of my home PC – could I really justify running two machines? After all, the running costs are my own as I work at home. A quick bit of math helped add perspective!
My X200 laptop runs at between 59w and 100w depending on the power policy I have active and if the batteries are charged or charging. When charging the power consumption is 100w even with the power saving profile running. Given my cost of electricity for 1Kw is only 8.1pence a working month at home (21days) will cost me between 82pence and 136pence (rounded to the nearest penny). Annually, that’s £9.84 to £16.32. Nothing I’d typically worry about. My home PC however, doubles to triples these values to £21 to £48 a year. And if I leave my all in one printer scanner on that adds more!
But really, worst case £64 a year, that’s just a tank of petrol and compared to the Kilowatts of electricity I use to heat my home office it is minuscule. At best, the Windows 7 power saving features will save me personally less than £50 a year. Of course, if I was responsible for 1000 PCs in a company, then the potential savings do add up to a significant amount. Looking globally, across all the millions of machines that run Windows today, the power saving potential with Windows 7 is enormous.
Do I care about Windows 7 power saving features? On a personal level no, but given I’ve planted over 500 trees at my home over the last 7 years I do care about the world being a greener, more efficient place. So for another contribution to a greener world – yes I do care about Windows 7 power saving features. And yes I will continue to run them at the most efficient levels I can. Are you doing your bit?