VID -> voltage translation for mobile Penryn (45nm) CPUs

Discuss everything about PHCTool here. If you have any trouble with PHCTool please use the PHCTool Help forum.
Post Reply
Posts: 2
Joined: Thu 2. Jul 2009, 18:17

VID -> voltage translation for mobile Penryn (45nm) CPUs

Post by 7oby » Thu 2. Jul 2009, 18:56

use case: I spent a hell of a time trying to find for each FID (multiplier) the lowest possible stable VID (voltage) in Windows with RMClock. Now I don't want to iterate through this process again and instead just want to reuse my findings in Windows for Linux.

I'm referring to this statement of the-fallen:
How ever there is no reason to use voltages. It is only more pleasant to the human mind because people know "voltage" from somewhere ..

The only thing that really matters is to find the lowest usable value, no matter what it looks like, don't you think so?

The above use case is an example where you might be very interested in the voltage values since you obtained those through time consuming testing with RMClock or NHC.

In fact I reused my Windows obtained values with a T7500 CPU just fine. Actually I just launched phc-tool 0.5.2 once, to find the voltage <-> VID value correlations and then echo these values to /sys/devices/system/cpu/cpu0/cpufreq/phc_vids during booting linux. I never had to use phc tool again.

Meanwhile I switched to a T8300 Penryn 45nm CPU. I found my undervolting settings in Windows and wanted to apply those to Linux as well. I started phc tool 0.5.2 (though the GUI says 0.5.1 - looks like the version string hasn't been updated in the GUI) and faced this screen:


When switching to the voltage tab I recognized it wouldn't translate voltages anymore:


It seems the promise the-fallen once made is no longer true:
But I promise to keep the VID to Voltage calculation in future PHCTool releases even if they might be incorrect

I see the voltage calculation gone in phc tool 0.5.2 when switching to a Penryn CPU. And interestingly I never saw voltage values in PHCTool2 Pre-Release (neither for Merom nor Penryn CPU).

Anyway, here's my way to fix it and I hope being corrected in case something is wrong. Should work for all mobile 45nm Dual Core Penryn processors - be it FSB800/1066 ones:

fast way: voltage = 0.7125 + VID * 0.0125

verbose way:

I start with a voltage that I take from the windows configuration and want to apply to phc. Let's consider 1,0375 Volt. Next I use the table at the bottom of this posting and lookup the corresponding row:


Now I write down the number from left to right VID[5:0], which is 100101 in this example. Next every bit get's switched to its opposite: 0->1 and 1->0. The result is:

100101 => 011010

Fire up some calculator and select view / scientific . Select binary number mode and punch in the number:


The leading zero won't be displayed. Select "dec" and this number gets translated to its decimal representation, which is 26 in this example:


Done! That's the number you were looking for and can now be used in phctool for a certain FID.

Voltage / VID table taken from CPU documentation:

p. 26 ... 012001.pdf

P.S.: Comparing the VID table from above with the VID table for the Merom CPUs (p. 23) ... 674505.pdf
it suggests both Merom (65nm) and Penryn (45nm) Mobile CPUs share the same VID table. Which means all that has to be done for phc-tool is to extend its VID -> translation to family 0x6 model 0x17 (Penryn).

The translation of VID -> voltages for desktop processors is different though. E.g. see p. 15 of Core2 Duo Penryn datasheet: ... 318732.pdf
Last edited by 7oby on Fri 3. Jul 2009, 11:39, edited 3 times in total.

Posts: 2
Joined: Thu 2. Jul 2009, 18:17

Re: VID -> voltage translation for Penryn (45nm) CPUs

Post by 7oby » Fri 3. Jul 2009, 11:27

patch for phctool 0.5.2 to enable display of voltages for Penryn CPUs

Apply this way:
. current directy contains folder 0.5.2, which has been extracted from 0.5.2.tar.gz
. put 0.5.2_penryn.patch.gz in current directory
. gunzip 0.5.2_penryn.patch.gz
. cd 0.5.2
. patch -p1 <../0.5.2_penryn.patch
(313 Bytes) Downloaded 561 times

Posts: 346
Joined: Wed 9. Jul 2008, 19:57

Re: VID -> voltage translation for mobile Penryn (45nm) CPUs

Post by the-fallen » Sun 5. Jul 2009, 09:03

Hey 7oby,

thanks for the patch. I hjave applied it and added it to the download page (and mentioned your name).

I am sorry that I did not kept my promise.

PHCTool2 can have VID to Voltage translation, too but there is no such plugin yet. Somehow I do not really come further with this due lack of time.

How ever, I am happy that users contribute to PHC.

By the way. Your how to get VIDs from Intel Specs is well written. Do you think you could write it again as a new thread?
And if you like you can help me with PHCTool2 (for example adding a Voltage calculation plugin).

Again, thank you. :)

Post Reply