• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.
  • The forums have been upgraded with support for dark mode. By default it will follow the setting on your system/browser. You may override it by scrolling to the end of the page and clicking the gears icon.

Core i7 Turbo throttling testing tool

unclewebb

ThrottleStop & RealTemp Author
Joined
Jun 1, 2008
Messages
8,464 (1.35/day)
turboscrn.jpg


http://www.fileden.com/files/2008/3/3/1794507/Turbo.zip

This tool is designed to test for Turbo throttling which can occur on some X58 motherboards when overclocking at high load levels as you approach the TDP limit of your CPU. Most motherboards allow you to turn off TDP based throttling in the bios but not all of them do and not all bios versions work correctly. If you are using the Turbo feature of a Core i7 processor, it's a good idea to make sure that your motherboard properly supports this feature.

The multiplier for a Core i7-920 is typically 20.0 and if Turbo mode is enabled, you get a +1.0 boost for a total of 21.0. With a 920, even if a bios lets you select a multiplier of 21.0 directly, internally it is still using the Turbo feature of your CPU. Turbo throttling can occur at high loads where the +1.0 Turbo boost will start to rapidly cycle on and off hundreds of times a second as you approach the TDP limit. When this first starts to happen, not all software is able to detect that your multiplier is intermittently dropping down to 20.0. Software that only samples your multiplier once per second might completely miss this problem.

There are two ways to read the current multiplier from a CPU. The typical way is to read a model specific register (MSR) within the CPU. This gives you a snapshot of what the multiplier is at that particular instant. If software only reads this value once per second then it can miss what's really going on.

The second way that Intel recommends is to compare two high performance internal timers within their CPU and then to use that information to calculate what the multiplier is.
The Intel Turbo White Paper outlines this method:
http://download.intel.com/design/processor/applnots/320354.pdf

The advantage of the calculated multiplier is that during a one second sample period, it can be used to very accurately calculate the average multiplier during that interval. This method tends to be extremely precise when the CPU is fully loaded.

On a Core i7-920 at full load with the Turbo fully engaged, both the Calculated Multiplier and the MSR Multiplier should be firmly locked on 21.000. At full load, if either multiplier starts to drop, that is an excellent warning sign that Turbo throttling is starting to occur.

For the MSR based multi, I am sampling it once per thread per second to improve its accuracy. If you have hyper threading enabled and it samples 7 of your threads at a multiplier of 21.0 but the eighth thread has dropped down to 20.0 by the time it gets sampled, then it will display 20.875 showing that the Turbo was mostly enabled during that sample period. On Core i7, the multiplier is a whole number and at any instant in time it will be the same for each thread but with multiple samples during a one second interval, we should see better results from the MSR based multiplier.

For severe cases, both multipliers will drop down to 20.000 and clearly show Turbo throttling in progress. Other times, maybe the calculated multiplier will give you an earlier warning of this problem.

Both multipliers and the Average CPU Load can be logged for further analysis. The load of each thread is displayed in the GUI. While testing, you can easily add a note directly to your log file like, "Started Prime95" or "Started LinX." You can use either the Enter key or click on the Add Log Note button.

The EIST section reads this information directly from the CPU. If it disagrees with what you set in the bios then that's usually a sign that your bios is not turning off this feature.

The Load Filter option for the Calculated Multiplier lets you weed out any bad data from the Min and Max areas that can occur with this method when the CPU is lightly loaded. If you set it to 0% then all calculated multiplier data will show up in the Min/Max area. If you use 90% then data will only be added to the Min/Max area if the CPU load is 90% or greater. I added this option so if you're gaming, light load between rounds or when going back to the desktop won't interfere with your Min/Max results.

The Asus P6T Deluxe does not give users the option to disable TDP based Turbo throttling in the bios. Most boards have this option but it's always a good idea to check your board and bios settings to make sure this feature works.

Many thanks to rge at XtremeSystems for helping to thoroughly test this tool. His Gigabyte board used to have Turbo throttling issues too until the bios guys listened to the complaints and fixed the problem.
 
Last edited:
http://www.fileden.com/files/2008/3/3/1794507/Turbo.zip

This tool has been updated with a few more features and the download also includes a new tool called MultiBoost which can help Core i7 owners (mostly DFI) having trouble with their multiplier getting stuck at 12 in Windows 7, even at full load.

If either program is of any use to you then give this thread a bump.
It needs it so this useful testing tool doesn't get lost forever in cyberspace. :)
 
Last edited:
Thanks for this, i'll be trying it out on my P6T to see if i'm hitting any throttling issues :)
 
The P6T seems to start Turbo throttling somewhere around 4 GHz and 1.40 volts. The formula is based on current, power consumption as well as temperature so if you're air cooled and your temps are high then you might start to have this problem at a lower overclock.


Edit: Here's what the Intel Turbo White Paper says.

1.2 Dependencies / Algorithm
Intel® Turbo Boost technology core frequency upside availability is ultimately constrained by power delivery limits, but within those constraints, it is limited by the following factors:

• The estimated current consumption of the processor
• The estimated power consumption of the processor
• The temperature of the processor
 
I transferred some of the i7 Turbo code back into RealTemp 3.30 for more accurate testing of Turbo throttling.

Here's some testing by rge at XtremeSystems which does a good job of showing what Turbo throttling is all about and how to reliably detect it.
--------------------------------------------------------------------------------------------
RT definitely catches throttling prior to cpuz :D

Early throttling caught by RT, not by cpuz down to 23.8 from 24. my i950 starts to throttle almost right at 100W tdp.

rtthrottles238pst.jpg


Again throttling to 23.6, not yet caught by cpuz.

rtthrottles236pst.jpg


Complete throttling/turbo disengaged by 120W, now shown by both cpuz and RT

rtthrottles23cpuz23pst.jpg
 
it is safe to enable this feature when OC'ing?
 
Most motherboards, except the Asus P6T series, let users decide whether they want to have Turbo throttling enabled or disabled. If you are overclocking your CPU which most people on this forum are doing then you are already voiding your warranty. I haven't heard of too many (any) Core i7 CPUs going ka-boom. You'll have to decide for yourself what is safe and not safe.
 
Is there any way to get MultiBoost.exe to run silently, such as at startup? Programs like WinRAR will not cause my i7 to reach full speed during compression which slows the overall compression time down so I use MultiBoost.exe to keep it at 21x all the time. I realize I could disable EIST in the BIOS, but then my power consumption and temperatures go up. With your utility I can get the CPU to 4.2GHz at idle and load and the temps/power only rise when the CPU is actually loaded.
 
i dont have an i7, but another awesome tool by unclewebb :)

thanks man!
 
wrathchild_67: I built the MultiBoost feature into RealTemp 3.30.

http://www.fileden.com/files/2008/3/3/1794507/RealTempBeta_330.zip

Go into the RealTemp.INI file and add this:

MultiBoost=1

I'm glad to hear that MultiBoost is working for you. Let me know if the RealTemp version works for you as well.

If you don't want to monitor your temps with RealTemp then I will consider making a simple version of MultiBoost that you can add to your startup folder so it's always running. Just ask.

Edit: I'm pretty sure that if you are using a 21X multiplier on a Core i7-920 then by default you are using the Turbo feature even though some bios versions try to make it look like you're not and you also will need to have EIST enabled as Turbo mode depends on that. Correct me if I'm wrong. i7 Turbo should show if EIST is on.

Thanks Mussels. The i7 Turbo programs work on Core 2 as well though obviously they won't be as useful.

For the Core 2 guys I wrote CStates today.

http://www.fileden.com/files/2008/3/3/1794507/CStates.zip

Nothing too exciting but if you have a laptop that is cheap with the bios features, it might come in handy.
 
Last edited:
Very nice tool. Nice writeup.
 
wrathchild_67: I built the MultiBoost feature into RealTemp 3.30.

http://www.fileden.com/files/2008/3/3/1794507/RealTempBeta_330.zip

Go into the RealTemp.INI file and add this:

MultiBoost=1

I'm glad to hear that MultiBoost is working for you. Let me know if the RealTemp version works for you as well.

If you don't want to monitor your temps with RealTemp then I will consider making a simple version of MultiBoost that you can add to your startup folder so it's always running. Just ask.

Edit: I'm pretty sure that if you are using a 21X multiplier on a Core i7-920 then by default you are using the Turbo feature even though some bios versions try to make it look like you're not and you also will need to have EIST enabled as Turbo mode depends on that. Correct me if I'm wrong. i7 Turbo should show if EIST is on.

Thanks Mussels. The i7 Turbo programs work on Core 2 as well though obviously they won't be as useful.

For the Core 2 guys I wrote CStates today.

http://www.fileden.com/files/2008/3/3/1794507/CStates.zip

Nothing too exciting but if you have a laptop that is cheap with the bios features, it might come in handy.

...it works on core2? what features?

edit: well the C1E feature works, multi drops to 6x. however the program reads the multi wrong (reads stuff like 7.93 and 8.21, while CPU-Z reads it right)
 
well the C1E feature works, multi drops to 6x. however the program reads the multi wrong (reads stuff like 7.93 and 8.21, while CPU-Z reads it right)

Unfortunately, everyone has been brain washed by CPU-Z.

CPU-Z samples your multiplier once per second and doesn't always give you an accurate reading at idle. When the calculated multiplier is jumping up and down at 7.93 and 8.21 at idle, it is because your multiplier really is jumping up and down. It can be changing internally thousands of times a second. CPU-Z is only giving you a snapshot at one particular instance during the sample period.

A floating multiplier is usually a sign of a conflict between what hardware wants your multiplier to do and what software wants your multiplier to do. In Vista or Windows 7 you need EIST, C1E and your Minimum processor state in the Control Panel - Power Options to all be in agreement. If two of those items disagree then at idle, your multiplier will be constantly bouncing up and down. For a Core 2 chip like an E8400 or Q6600 with a default multiplier of 9.0 and a minimum of 6.0, one of those options will be trying to set it to 6 while another option will be trying to set it to 9. The fight is on.

The end result is an average multiplier somewhere in the middle. Usually it will be jumping around between 7.5 to 8.0 but that depends on how much background activity you have going on.

Intel recommends the Calculated Multiplier but software like CPU-Z, Everest, Core Temp, etc. don't bother using this method because it's too complex.

Edit: In XP instead of Minimum power state in the Power Options you will have to choose between Home/Office Desk or mobile laptop processor. The standard deviation should be close to 0.000 at idle. If it is not then your multiplier is doing a dance internally. You need to adjust your settings.
 
i say it was reading it wrong, cause i'm pretty sure my multi cant be set to three decimal points - it was literally all over the place. (not like bouncing 6 to 7.5 to 9.5, i mean 7.12 to 7.33 to 8.67, and going craaaaazy)
 
That is an average over a one second interval. At any instance in time it will be a whole number like 6 or 7 or 8, etc., but over a one second period it can be at thousands of different values. None of these individual values are correct other than for that instance when it is read. Only the overall average shows you what your true multiplier is.

Go play with your Power Options settings and when they are in agreement with your C-State settings, your multiplier will settle right down at idle and be either at its maximum or at its minimum and not dancing around like crazy.
 
ah, just the way it reads it. gotcha.

i normally have them disabled, since i'm OC'ed. i was merely ticking the box to see what happened.
 
A lot of users have the multiplier in their CPUs dancing all over the place at idle and they have no idea about it because CPU-Z, etc., ignores this. i7 Turbo tells it like it is.
 
If you are overclocking your CPU which most people on this forum are doing then you are already voiding your warranty. I haven't heard of too many (any) Core i7 CPUs going ka-boom. You'll have to decide for yourself what is safe and not safe.


:eek: Eh, just had one go bye-bye on me yesterday. Nice write up BTW;)
 
wow another amazing work from RealTemp Author , great keep move on my friend
 
q6600prime.png


Here's an interesting test. I'm running one thread of Prime95 and I have it locked to core 0 on my Q6600. Because a Quad core consists of two Dual Cores inside, you can see that core 0 and core 1 are locked together. The funny thing is that core 2 and core 3 are not at the full multiplier. If my motherboard would let them, they would rather be closer to 6.0 in an idle state. Their buddies, core 0 and core 1 keep waking them up but when they wake up, there's no work to do so they try to go back to sleep.

The standard deviation just below the real time Calculated multiplier (0.154) is a clear sign that the multiplier is not consistent across all 4 cores like you think it would be at full load. If Prime was running on both Dual Cores within the Quad, then it would drop to 0.000. There's a lot more going on inside CPUs than I imagined.

bogmali: What CPU did you kill and what did you do to kill it or is that a secret. :)

Edit: A smart bios would allow the two cores not working that hard to idle down like this:

smartbios.png


The Core i7 works this way. All active cores run at the same multiplier but if a core enters the C3 or C6 state then it is considered inactive and unused cores are allowed to idle down. When you start overclocking, this can get screwed up depending on the motherboard.
 
Last edited:
I think I found your problem. You weren't overclocking the hell out of it. You need to overclock them to the moon to keep the cob webs from developing in them. :roll:
 
Back
Top