Find Bitsum On Google+ Find Bitsum On Twitter Find Bitsum On Facebook
→ TRY OUR NEW WEBSITE!
BE OPTIMAL - Real-Time CPU Optimization & Automation!

Frequency Scaling

To understand TurboCore and TurboBoost, you must first understand CPU Dynamic Frequency Scaling (CPU Throttling). Basically, the CPU frequency is scaled down when idle, then scaled back up when there is a load. Simple enough, and it makes sense. This lowers power consumption and decreases thermal emissions when the CPU is idle. In the last few years, CPUs can not only dynamically adjust the clock speed of the CPU as a whole, but also adjust the clock speeds of individual cores. This is where TurboBoost and TurboCore come in ...

Power Options - Frequency Scaling Settings

Pushing It To The Limit

CPU makers face a battle against heat and energy consumption. The less energy, the less heat. For each CPU you therefore define a set of frequencies at which it is able to safely operated at sustained high loads while staying within its nominal temperature and voltage without malfunctioning. Of course, they use the stock cooler for this test, and we'll leave the 'better CPU heatsink' market out of this. (Side note on enhanced cooling) From my experience, unless you go 'extreme', you won't gain much - but if you do go 'extreme', you can gain a lot - e.g. liquid cooled).

AMD's TurboCore or Intel's TurboBoost

AMD's Turbo Core (TurboCore) and Intel's Turbo Boost (TurboBoost) are essentially the older, energy and heat conserving, frequency scaling in reverse. They increase the frequency of a select group of cores when only a few are in use. They can't boost all cores to the higher frequency, else the CPU or thermal solution (e.g. Heatsink) would be overwhelmed.

These technologies may push individual cores, again when only a FEW are active, to as high as 150% of their base clock speed. That is a good boost, assuming you are only using a few of your cores. It matters most for primarily single threaded situations, where there isn't excessive other activity also going on. There it can be a big boost in performance.

Advantages

The advantage of these technologies is that a few cores can dynamically operate at a higher frequency under certain circumstances. This means proportionally faster code execution for CPU bound threads. A CPU bound thread is essentially one where the CPU is the bottleneck.

Disadvantages

The largest disadvantage at this time is that the Windows CPU scheduler may not be aware of processors (cores) clocked at a higher frequency, with either technology. It therefore will haphazardly throw a thread's next time slice onto which core it chooses. Due to core thrashing, it may make some attempt to keep that thread on that CPU, but the thread can be swapped around every time slice if the scheduler decides. Therefore, there is no guarantee that the active thread(s) will be executing on up-clocked processor(s).

Optimizations

Therefore, using software like Process Lasso can help you to set default (sticky/permanent) CPU affinities on processes (applications) you know only use a maximum of X active threads. While an application may have 10 threads, it could be that only 1 does any real work, so do not let the total thread count confuse you. For those processes, you can be sure that their threads are limited to a subset of available cores, all of which can be overclocked by AMD's TurboCore or Intel's TurboBoost if properly configured (with not too many cores selected).

Warning to Overclockers

Since many enthusiast overclock their PC to achieve marginal performance gains, we should warn that you should turn off these frequency boosting technologies *before* doing any over-clocking, or at least be very careful to properly load test overclocked settings. It is generally better for overclockers to disable these frequency boosting technologies. Enabling this function would limit your range as stability tests would fail due to the up-clocked cores. Given that the Windows scheduler is not aware of these technologies, that is yet another reason to go farther by turning it off. Make all cores execute at the maximum frequency, while achieving stability and safety. Be *sure* to run stability tests, as you'd be surprised as how well a PC can act, but have hidden surprises during high loads that will get you in trouble later down the road.

Somewhat related -- As of Jan 2012 Microsoft has released an update for the Windows 7 and 2008/R2 scheduler that views the new AMD Bulldozer platform as having 1/2 real CPUs, and 1/2 'fake' hyper-threaded CPUs. This helps to try to put the workload onto every other processor, an important thing for two reasons. One, TurboCore will be more likely to kick in. Two, the design of AMD Bulldozer is such that there are 2 pairs of cores that share an L2 cache, FPU, and other items. Thus, they are not fully independent, and you certainly want to back-fill utilization of them after the first core of each module is saturated. Don't worry, if full computing power is needed, all cores get used -- this just helps them perform better in 'lightly threaded' situations.

Patches for Windows 7 / 2008 R2:
http://support.microsoft.com/kb/2645594
http://support.microsoft.com/kb/2646060

NO gimmicks!

This article is part of a collection of information available at Bitsum Technologies as part of our Process Lasso software. These articles attempt to be hybrid type documents easily understood by laymen, yet with enough technical specifics included for peer review.

Get Process Lasso to experience the benefits of automated process priority adjustment and more. It will allow automated switching of power profiles when an application is launched, when you go Idle, or on other conditions. It has too many features to list. If you ever wanted to automate some system process or power setting, Process Lasso is for you!

Application vs. Process

An Application may consist of one or more processes. Most consist of a single process, with ancillary processes for installation and uninstallation. However, some more complex applications may have many processes running on the system. For example, security software often has multiple processes to monitor various aspects of the system and perform other tasks.

Process vs. Thread

A Process is simply a collection of Threads. The CPU Scheduler (the part of the OS that doles out tasks to the CPU) of Windows only sees threads. A process is just a higher level abstraction to group these threads together into a common unit.

What does 'CPU %' represent?

I want to remind people that CPU utilization occurs in micro-bursts, and the % use per second is not a perfect representation of how fast or slow a CPU is. That is to say, just because that metric shows only 75% of a CPU consumed, that doesn't mean that you had an 'extra' 25% laying around. The speed at which that 75% was executed matters too. At best this metric gives you some idea of how CPU intensive your operations are.