22

I’m trying to get a big virtual disk file compressed (using WinRar) before I go home today, but my CPU frequency keeps merrily going up and down between the nominal 2.8 GHz and a measly 800 MHz!

The frequency fluctuations as seen in Resource Monitor (blue line is frequency, green is utilization):

Resource Monitor Graph

And CoreTemp:

CoreTemp Screenshot

I’m plugged-in (not on battery). My temperatures are normal (CPU core at least is not at Max, but I don't have readings for other parts of the system). There is a full workload available. Why is it throttling back? Short of melting the CPU, I’d like this job to go as fast as possible right now.


Update: The main problem here was the total thermal load was causing the CPU throttling. After I added a laptop cooler (fan blowing underneath) the CPU stays in the highest performance state indefinitely. Read-on for other interesting info and answers on managing SpeedStep.


As a control enthusiast (control freak), I’d like to get a handle on this, and change it or at least know why it does what it does.

All I’ve seen in the BIOS is enable/disable SpeedStep and on this Dell it states that disabling SpeedStep means it will run in the lowest performance state all the time… I can understand that design decision for a laptop. So there is nothing for me in BIOS.

Edit: I tried disabling SpeedStep in the BIOS, I do get a steady frequency now, but it is 1.6 GHz instead of 2.8 GHz. At least it doesn't drop to 800 MHz now, but overall this is not an improvement.

Is SpeedStep controlled by the OS? I’ve configured power settings to use 100% CPU as the minimum when plugged in:

Power Options set to 100% minimum CPU

This setting apparently doesn’t do what I think it does…? Or maybe something is overriding it.

Is the throttling driven by hardware temperatures? When it throttles back, my processor core temps are always fine. Maybe outside the processor, or elsewhere on the motherboard the temp has risen too high so the throttling kicks in until that part cools off? What drives this behavior? Currently it makes no sense and is very annoying.

If it dropped to 800 MHz on battery while I'm reading a web page, that would be great. But when I'm plugged in have 10 apps open, and I've got a large compression job, I'd like the full 2.8GHz.

4
  • 3
    It could be IO bound, not CPU bound. It has to both read a lot of data and write a lot of data at the same time.
    – Nifle
    Sep 1, 2010 at 16:02
  • 1
    Could be, but it's not in this case, I have an SSD, the average disk queue length is less than 0.1.
    – DanO
    Sep 1, 2010 at 16:08
  • 2
    Adding a laptop cooler (a platform with USB powered fans blowing on the bottom of the laptop) has completely resolved my issue. With this active cooling, SpeedStep doesn't kick in and the CPU clock stays at full speed even under extended periods of full load.
    – DanO
    Feb 4, 2011 at 23:19
  • 1
    I'd like the opposite. My Thinkpad is overheating and shutting down when I put it under heavy load. I'd like it to throttle back the i5 CPU before losing my work.
    – endolith
    Mar 26, 2012 at 14:19

6 Answers 6

17

Since none of the answers take on what speed step does exactly and how to disable/enable it here is what I found:

Let's look at how it works. SpeedStep has two key components:

C1E (Enhanced Halt State): C1E is the simpler of the two components. It can be enabled or disabled in the BIOS, and performs independently of the operating system. C1E has two configurations - idle, and load. When CPU usage is relatively low, this feature lowers your processor's multiplier to its lowest setting (usually 6x) and slightly lowers its vCore. During a CPU-intensive application, it will raise the multipler to its maximum value, and will provide a small boost in vCore to compensate. In our example, C1E will make your processor run at either 6x or 9x the FSB.

EIST (Enhanced Intel SpeedStep Technology): This is a very robust feature and has a wide variety of power-saving capabilities. Like its simpler cousin, EIST can affect both your CPU's voltage and it's multiplier - however, it has many more levels of configuration. Instead of a simple "slow or fast" setting, SpeedStep can utilize all of the available multipliers. In our example case, EIST will allow your processor to run with a multiplier of 6, 7, 8, or 9, and chooses which one to use based on how much demand your CPU is under. EIST is controlled by Windows, and utilizes the different "power schemes" you may have seen in your control panel.

It sounds like SpeedStep can be found in either the BIOS or the OS and maybe even both. My guess is that DELL maybe lying to you about the performance, I say try disabling it and see what happens.

To disable it under windows, select the Power Options and select High Performance. Make sure that the minimum and maximum processor states are 100% and the System Cooling Policy to be Active.

Here are two supporting forums and a site that may help you out:

SpeedStep Guide

Let's Talk about C1E

Bay Wolf's Speedstep FAQ

2
  • 1
    Thanks for the good info. So, basically both the BIOS and the OS could crank the speed up and down. The OS would be guided by the power scheme preferences you set, and the BIOS logic is either on or off. After experimenting a bit, I think on my Dell Laptop the BIOS, or Dell/chipset drivers are throttling the CPU guided by heat build-up. This makes sense for laptop design, and it also makes sense that I can't or shouldn't override it in this case.
    – DanO
    Sep 2, 2010 at 18:34
  • 1
    I don't know about can't, or even shouldn't but beware of the possible consequences that may follow, as with anything of this nature (i.e. overclocking). You could purchase a cooling pad that the laptop sits on to protect overheating if you so choose. Here is a list of some to look at Sep 2, 2010 at 18:51
7

Update: adding an active laptop cooler has completely resolved this issue. When the overall temperature is kept down this throttling does not kick-in at all, and I can sustain a full processor load indefinitely.


Thanks for the good info in the other answers. I think I've been able to put together an idea of what is going on:

There are elements of speedstep that can be controled by the BIOS, and also by the OS. In windows 7, the power scheme preferences (minimum processor state, active/passive cooling, AC/DC power) are primarily what guides the OS in setting the processor speed.

Some simple experimentation on this laptop, indicates that something is down-regulating the CPU in response to temperature. It could be the BIOS, or the Dell chipset/drivers.

If I let it idle until the fan spins down and the air venting out the side is room temperature, and then I start a 7-zip benchmark, I get about a minute and a half of full-speed CPU. About the time the exhaust air is too hot to keep my finger there, the CPU starts throttling down until it eventually gets as low as 667 MHz. Then it gradually steps back up to nearly full-speed for about 40-60 seconds, and then the cycle of throttle-back and cool-down begins again. The whole cycle takes about three minutes.

Given the obvious heat-sink and fan size/weight/power constraints in a laptop, I can understand that the system needs a backup method to prevent overheating. I also understand why I can't or shouldn't override this, even if I could figure out how to do so. Basically I can only expect to get full speed from my processor for brief bursts of time until the total heat build-up is too much, then it has to throttle back while that heat is dissipated.

I guess putting 2.8 GHz in a laptop gives you some good bursts of speed when you need it, but it simply can't have the same stamina as a workstation.

2

Check the 'System cooling policy', the next item in the power window. It should be set to active (when plugged in), so that increases in processor temperature increase the fan speed, rather than decreasing the processor freqency (passive).

2
  • Thanks, That is a good thing to check. but in my case it is already set to active/active (even on battery).
    – DanO
    Sep 1, 2010 at 18:01
  • It is good to know that those options do in-theory drive the SpeedStep behavior. That is what I was asking. Any idea why or where it gets a mind of it's own.
    – DanO
    Sep 1, 2010 at 18:12
2

There is a tool notebook hardware control, it allows changing the speed stepping options on the fly. In your case the option would be full performance.

2
  • 2
    That would be a great tool for a control freak like me, unfortuantely (on Win7 x64), even as administrator, I it gives an error on start-up "Could not load the NHC driver!" Since it was last update May 2007, I don't hold much hope that they are working on a Windows 7 version.
    – DanO
    Sep 1, 2010 at 18:15
  • Lenovo has an Energy Management program Open EnergyManagement.exe in the 32 bit Program Files / Lenovo folder though it won't work on my new Acer laptop. There has got to be an updated third-party program out there somewhere...
    – John
    Mar 9, 2015 at 21:46
1

I would suggest getting the notebook hardware control tool that is mentioned above and use the custom dynamic speedstep funtion. It lets you put a cap on the slowest and the fastest speeds. I also suggest dropping the multiplier voltage by 1 or 2 options in the drop down menu. This will lower the wattage consumed by the processor and help with the amount of heat generated. Just don't drop the voltage to much or the system will crash. I use it with a Dell Latitude D400 with no problems along with http://www.diefer.de/i8kfan/index.html to control the fans speeds based on temperature.

1

I did some searching for a third-party vendor-neutral taskbar utility (like Lenovo's Energy Management utility) and found Power Switch. I tested it quickly with CPUz; in power mode the CPU maxed out and stayed in that state, in balanced while playing a video it would jump all over the place and in power saver mode it just stayed at 800h MHz. Tested on a laptop with an Intel i7-4720 CPU.

Power Switch Taskbar Utility

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .