Intel Core Duo USB Issue: A Mischaracterized Bug
by Anand Lal Shimpi on February 13, 2006 1:40 PM EST- Posted in
- Laptops
Starting at the Beginning
It wasn't too long ago that power consumption was hardly discussed, but these days, you can't have a technical discussion about microprocessors without mentioning it as a design consideration. Mobile CPUs in particular have had to be power-conscious for a pretty long time, thanks to a desire for longer battery life and smaller form factors. But with power consumption, noise and heat dissipation all becoming major issues on the desktop, we are seeing many mobile technologies make their way into desktop CPUs.
The primary goal of a mobile CPU is no different than a desktop CPU, and that is to get its work done as quickly as possible. However, a very important secondary goal of the mobile CPU is to strive to be at the lowest power state possible while getting that work done. The Dothan core used in the 90nm Pentium M processor had a choice of five operating states:
With Core Duo, Intel introduced a sixth operating state: deep C4, or a deeper sleep state. Intel made some serious improvements to the core to allow it to not only get to lower C-states more often, but to reduce power even more at these lower C-states. We talked about this briefly in our series of articles on the Core Duo processor, documenting how Intel not only brought forth a dual core mobile processor, but also optimized the performance and power consumption of each individual core.
If you ran any mobile CPU in its full power (C0) state constantly, never allowing it to transition to lower states, you would wreak havoc on your notebook's battery life. While not quite this extreme, the USB 2.0 battery life issue involves a similar concept.
Microsoft describes the USB 2.0 issue as follows:
Keep in mind that Microsoft's description of the issue does not place the blame on Intel's Core Duo processor, and instead, implies that it would exist on all platforms regardless of CPU. Later on in this article, we'll attempt to find out whether this is indeed a universal problem or something that only really impacts Core Duo.
It is also important to note that the problem appears limited to USB 2.0 devices under Windows XP SP2 and not USB 1.x devices or USB 2.0 devices under other operating systems. There are some USB 2.0 devices that can avoid the problem; in order for a device to be immune to this problem, it must support a power management mode called Selective Suspend, which allows the OS to put the device to sleep until it's needed. The vast majority of devices don't seem to support Selective Suspend, and although some USB hubs apparently do, we weren't able to get our hands on any in time for this article.
It wasn't too long ago that power consumption was hardly discussed, but these days, you can't have a technical discussion about microprocessors without mentioning it as a design consideration. Mobile CPUs in particular have had to be power-conscious for a pretty long time, thanks to a desire for longer battery life and smaller form factors. But with power consumption, noise and heat dissipation all becoming major issues on the desktop, we are seeing many mobile technologies make their way into desktop CPUs.
The primary goal of a mobile CPU is no different than a desktop CPU, and that is to get its work done as quickly as possible. However, a very important secondary goal of the mobile CPU is to strive to be at the lowest power state possible while getting that work done. The Dothan core used in the 90nm Pentium M processor had a choice of five operating states:
C0 - full powerAs you can guess, the higher the C number, the lower the power consumption. Switching between these states is completely seamless to the end user because the switching occurs in a number of CPU clocks (nanoseconds). With each processor generation, the CPU designers attempt, as best as possible, to get the CPU to stay in the lowest C-state more than it could previously. That means making the processor faster so that it can complete its tasks quicker, and thus get to those lower C states faster than before.
C1 - auto halt
C2 - stop clock
C3 - sleep
C4 - deep sleep
With Core Duo, Intel introduced a sixth operating state: deep C4, or a deeper sleep state. Intel made some serious improvements to the core to allow it to not only get to lower C-states more often, but to reduce power even more at these lower C-states. We talked about this briefly in our series of articles on the Core Duo processor, documenting how Intel not only brought forth a dual core mobile processor, but also optimized the performance and power consumption of each individual core.
If you ran any mobile CPU in its full power (C0) state constantly, never allowing it to transition to lower states, you would wreak havoc on your notebook's battery life. While not quite this extreme, the USB 2.0 battery life issue involves a similar concept.
Microsoft describes the USB 2.0 issue as follows:
"Windows XP SP2 installs a USB 2.0 driver that initializes any connected USB device. However, the USB 2.0 driver leaves the asynchronous scheduler component continuously running. This problem causes continuous instances of memory access that prevent the computer from entering the deeper Advanced Configuration and Power Interface (ACPI) processor idle sleep states. These processor idle sleep states are also known as C states. For example, these include the C3 and C4 states. These sleep states are designed, in part, to save battery power. If an otherwise idle portable computer cannot enter or maintain the processor idle sleep states, the computer uses its battery power more quickly than you expect."Basically, if you have a USB 2.0 device plugged in to a computer running Windows XP SP2, your processor will not be able to enter lower power states (e.g. C3, C4 or Deep C4 in the case of Core Duo). The problem is that if a very power-efficient CPU is prevented from going into its C3 or C4 states, then it's consuming a lot more power than it needs to be. It's particularly bad because the problem could exist just by having any USB 2.0 device plugged in, even if you're not using the device.
Keep in mind that Microsoft's description of the issue does not place the blame on Intel's Core Duo processor, and instead, implies that it would exist on all platforms regardless of CPU. Later on in this article, we'll attempt to find out whether this is indeed a universal problem or something that only really impacts Core Duo.
It is also important to note that the problem appears limited to USB 2.0 devices under Windows XP SP2 and not USB 1.x devices or USB 2.0 devices under other operating systems. There are some USB 2.0 devices that can avoid the problem; in order for a device to be immune to this problem, it must support a power management mode called Selective Suspend, which allows the OS to put the device to sleep until it's needed. The vast majority of devices don't seem to support Selective Suspend, and although some USB hubs apparently do, we weren't able to get our hands on any in time for this article.
61 Comments
View All Comments
Mezcal - Tuesday, February 14, 2006 - link
Hello, I tested perfmon after reading your test. I own an Acer Aspire 5024 with a Turion 64 ML34 inside. So, I was wondering if this could cause me any battery problem. After testing Perfmon with % C3 time with USB wireless mini mouse, I can see a graph with mountains (between 60 and 100%) while the USB mouse is not plugged in and completely flat (0%) while plugged in. So, this may be the result of the problem you described? No?I didn't test the battery life with the USB mouse plugged in and without it 'cause I can't find any utility to test that. So, I can't say if it affects the battery life.
IntelUser2000 - Tuesday, February 14, 2006 - link
According to AT, it means Turion systems also have the same problem as the Centrinos in terms of battery life reduction when USB 2.0 devices are connected. Since % mean HOW OFTEN THE CPU IS IN LOW POWER C-STATE, 0% means its not going into low power states AT ALL, while 60-100% means its going into low power state 60-100% of the time.
NullSubroutine - Monday, February 13, 2006 - link
I am awaiting my new Dell Inspiron E1705 (2ghz Duo, 2GB 667mhz, 80GB SATA 7200, Ultrasharp 1920x1200, 7800GTX Go) I hope this issue has a better fix because it seemed the fix didnt work will with this system. I think the USB hub that is built into the system may be the cause of this, hopefully Anand can get the review of this system and see if he can fix. Personal request if anyone reads this, apply new artic silver on the cpu/gpu then see how much cooler it runs, and how much more you can overclock the gpu...pretty please...IntelUser2000 - Tuesday, February 14, 2006 - link
quasarsky - Tuesday, February 14, 2006 - link
weird. u say c4 is the 'sixth' power state. 0,1,2,3,4. sounds like it would be fifth. ???? am i missing something here?IntelUser2000 - Tuesday, February 14, 2006 - link
Anand said this:
For Pentium M
C0
C1
C2
C3
C4
Core Duo adds: deep C4
Coldfusion - Monday, February 13, 2006 - link
Or is it strictly a Windows issue?bobsmith1492 - Monday, February 13, 2006 - link
Wow.. so maybe this explains why my battery life is so different now than when my computer was new - I swear, when I first looked at it, it was saying 7 hours and I got like 5 when doing normal activities. With my mouse, though, it's more like 3-4... of course, it's a year older also. (P-M 1.7 Dothan)How can you tell whether or not a device is USB 2.0? I'm sure something in the device manager says, but I can't tell..
huges84 - Monday, February 13, 2006 - link
Why is it that the two Asus systems that are the same, except for motherboard and a slight difference in memory speed, showed that the Sonoma platform had better battery life than the Napa platform? I know it isn't much difference, but shouldn't the Napa be noticably ahead of Sonoma?Does the memory difference make that much of an impact? Or are the power consumption improvements in Napa pretty much only for when the processor is basically completely idle? If so then I don't think many people will see the extended battery life. Unless you like to leave your computer idle when it is running on battery. Maybe the improvements are also on the upper end and it is just the middle ground that didn't get improved. How high is CPU utilization in this test?
IntelUser2000 - Tuesday, February 14, 2006 - link
Well the difference is within margin of error. While W5F based on Core Duo gains less than W5A based on Pentium M, the difference is very little, less than 15 min.
Lenovo shows better results. T60 based on Core Duo always gets slightly better than T43 based on Pentium M, whether before or after, and T60 can support higher resolution, otherwise identical components.