Martin Kinkelin, 15.03.2009
A utility to completely customize the Cool & Quiet feature of AMD K10 (Phenom etc.) processors. It may be used to overclock and/or undervolt the CPU. Its primary aim is to allow on-demand use of the powersaving Cool & Quiet feature even when running the CPU above its original speed.
PhenomMsrTweaker allows to fully customize two CPU performance states: multiplicator (per core), Vcore (CPU VID) and integrated Northbridge voltage (NB VID) of P-states 0 (performance) and 1 (powersaving).
Additionally, it provides a customizable replacement for the standard implementation of Cool & Quiet in the Windows driver and allows to control standard or custom Cool & Quiet via on-the-fly power scheme switching.
Each core of a K10 CPU may run in one of up to 5 performance states (P-states). P0 is the highest-performing (default) state, the others ascend to the max-powersaving state. Phenom CPUs use only 2 states, P0 (high performance) and P1 (powersaving). Phenom II CPUs specify 4 states, P0 to P3.
Each core boots in the P0 state. If Cool & Quiet is enabled, a driver may put a core later in a powersaving state if its load is low and then back to a higher-performing state when its load increases.
Each one of these per-core P-states consists in:
PhenomMsrTweaker allows you to customize these settings for all cores and the first two P-states, P0 and P1. Therefore you may choose your optimal settings for P0 (overclocked state) and P1 (undervolted state).
Cool & Quiet (C&Q) consists in offering a driver full control over the CPU core P-states. So a driver may switch between a core's performance states based on its current load, saving power when the CPU idles.
This is a good thing, but has 2 disadvantages:
It decreases system stability if not all P-states are configurable in your BIOS.
If you overclock the Northbridge and/or the HT reference clock, you'll probably need higher voltages. But since most BIOS versions do not allow to customize P-states above P0, they select default voltages which may cause the system to crash as soon as all cores are in a powersaving state - and this might already occur during Windows startup.
It doesn't work too well.
Firstly, more than 2 P-states are not really useful in my opinion. Switching between a state may take up to 1 ms, or roughly 1 million clock cycles. So frequent switching should be avoided.
Secondly, the concept of individual P-states per core is not that useful.
These 2 disadvantages are remedied by using the PhenomMsrTweaker service. It allows to automatically apply custom P-state settings when Windows is starting/resuming and to use a configurable C&Q replacement which uses only P0 and P1 and keeps all cores' P-state in sync.
Replacing standard C&Q by custom C&Q may improve the run-time of single-threaded applications by more than 20% (Super PI mod 1.5 XS 1M test: 32.43 secs vs. 25.88 on my machine). Only Phenom II CPUs on Vista+ seem to use a pretty well-working standard implementation - but feel free to perform your own benches. :)
Windows power schemes control, among other powersaving-related settings, Cool & Quiet (if it is enabled in the BIOS menu). E.g. on my machine, selecting the 'Power Saver' scheme results in only P1 being used, 'High Performance' in only P0 and 'Balanced' enables switching between both states based on the current load.
This flexibility is useful in case you want to temporarily make use of all available computation power, e.g. when playing a game. You should generally use 'Balanced' for normal operation, but you may switch to 'High Performance' before starting the game and later back to 'Balanced'.
On Vista+, these power schemes can only be switched quickly if you use a mobile PC (because you may choose to display the energy options in the system tray). If you have a desktop system or if you use Windows XP, you need to enter the control panel and select your scheme under energy options.
PhenomMsrTweaker allows you to switch between the schemes in the main window and via the system tray icon. On Vista+, you may switch between all available Windows power schemes, while on WinXP you may switch between pseudo power schemes which only affect PhenomMsrTweaker's custom Cool & Quiet.
When using standard C&Q, it is controlled by the min CPU and max CPU settings of the active power scheme. PhenomMsrTweaker's custom C&Q though ignores these advanced settings and always uses P0 in 'High Performance', P1 in 'Power Saver' and both states in 'Balanced'.
My CPU is a power-hungry X4 9950 (140W) and sadly has never been a great overclocker, requiring at least 1.425V Vcore for stable operation at 3 GHz. Reading reviews in the web, I set myself a limit of 1.4V, i.e. +0.1V because higher values distort the gain/cost ratio (some more MHz vs. quadratic increase in energy consumption and heat) too much for my liking. So I was not able to hit the 3 GHz wall, quite a delusion.
While doing some testing (Prime95 on a single core), I found out that core 3 gets hotter during load (by 2-3 °C). ACC didn't help me, so I tried to clock the cores individually (all to 3 GHz except for core 3 @ 2.88 GHz) using AMD OverDrive and a Vcore of 1.4V. The system is prime-stable, so it seems that core 3 needs more voltage than the rest while getting hotter.
I was still unsatisfied because OverDrive cannot be used together with Cool and Quiet (on the next P-state transition, the OverDrive settings are lost) and I didn't find any other tool which allows to set the core multis individually.
The default NB voltage in P1 is 1.3V for my CPU. This is enough for 2.25 GHz, but not for 2.5 GHz (for which it needs 1.35V). By replacing standard C&Q by PhenomMsrTweaker's custom C&Q I am now able to use the following settings:
P-states 0 and 1:
|Default settings set by BIOS||PhenomMsrTweaker settings|
|P0||11.5x,11.5x,11.5x,11.5x, 1.4V, 1.35V||12x,12x,11.5x,12x, 1.4V, 1.35V|
|P1||6.5x,6.5x,6.5x,6.5x, 1.05V, 1.3V|
(designed for 6.5x200 MHz = 1.3 GHz @ 1.05V)
|6x,6x,6x,6x, 1V, 1.35V|
(results in 6x250 MHz = 1.5 GHz @ 1V)
Custom Cool & Quiet enabled; the active power scheme is almost exclusively 'Balanced'