Processors
Intel® Processors, Tools, and Utilities
14499 Discussions

DVFS on Intel SandyBridge

sbhal1
New Contributor I
3,022 Views

Hi All,

I wanted to experiment with DVFS on Intel SandyBridge and through the Intel Manual 3B, I see that the DVFS is achieved on SandyBridge using Enhanced Intel SpeedStep.

It says that IA32_PERF_CTL could be set to achieve DVFS. However the Manual does not explain how to set the lower 16 bits in IA32_PERF_CTL to achieve this. I went across searching on different forums to ascertain how to set this to no avail. However, what I could learn is that the 16 bits are divided into two 8-bit blocks that specify the Multiplier and VID.

I also found that the multiplier can be found on intel sandy bridge as

  • [CPU frequency] = BCLK x [CPU multiplier].

I am using a Xeon E5-2680 with 2.7GHz. The https://www-ssl.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e5-1600-2600-vol-1-datasheet.pdf data sheet says the BCLK0 and BCLK1 are 100MHz(Table:6-11). So the current multiplier seems to be 27. The VID range is 0.60V-1.35V.

1. Now if I have to scale the frequency, do the go about changing 8-MSB(15-8) to any value lesser than 27 only?

2. Or do I need to change the 8-LSB(7-0) between 0.6 and 1.35V.

I am aware that SandyBridge has a limited set of P-states from P0 to PN and I just can't go about setting the 16-bits as per my will.

So, What I basically wanna know is how do I do DVFS on SandyBridge?

PS: Please correct me if my understanding so far is incorrect.

Thanks in advance.

Best,

Sridutt

0 Kudos
7 Replies
Silvia_L_Intel1
Employee
928 Views

Please allow me to check this information for you.

0 Kudos
sbhal1
New Contributor I
928 Views

Hi Sylvia,

Could you get any info on this? I know of the tool cpu_freq that can be used for DVFS but I just wanted to know if it can be achieved just by setting the MSR.

Thanks,

Sridutt

0 Kudos
Silvia_L_Intel1
Employee
928 Views

Sridutt, I haven't received any information on this. Please allow me to request an update. I apologize.

0 Kudos
TIM_S_Intel
Employee
928 Views

I was able to ask around and get this response:

The easiest way to achieve what you are trying to do is to is 

to disable package C3/C6 and Turbo in BIOS. Then write the value 100h to

 

the FREQUENCY_FLOOR_OVERRIDE MSR(0A00h). This will keep the processor

 

from entering C3 or C6 and it will still enter C1E but when it does instead of

 

dropping to the default 1.2Ghz it will stay at 2.7Ghz since you set the floor

 

to 100h. But it is important that Turbo is disabled in conjunction with

 

these other settings.
0 Kudos
sbhal1
New Contributor I
928 Views

Hi tmsimmon,

Thanks for your reply.

I am not trying to put the processor in turbo mode. I want to see what doesn't changing the frequency at different levels lower than the default processor frequency, affect my program performance.

To put it directly, I want to know how to set the bits of IA32_PERF_CTL correctly. If I understand correctly, there are certain discrete values of frequency on which the processor can operate. I want to know how to find these frequency points below the default processor frequency where the processor can operate and thereby convert these points to proper values in IA32_PERF_CTL.

Let me know if you think I have err'd in my understanding.

Best,

Sridutt

0 Kudos
TIM_S_Intel
Employee
928 Views

this is not turbo mode this is locking it at 2.70GHz and disabling DVFS.

http://ark.intel.com/products/64583/Intel-Xeon-Processor-E5-2680-20M-Cache-2_70-GHz-8_00-GTs-Intel-QPI ARK | Intel&# 174; Xeon&# 174; Processor E5-2680 (20M Cache, 2.70 GHz, 8.00 GT/s Intel&# 174; QPI)

This processor has a max turbo mode of 3.5GHz.

the default lowest speed is 1.2GHz.

regards,

Tim

0 Kudos
sbhal1
New Contributor I
928 Views

Hi,

Sorry for the long delay in replying.

I wasn't able to directly change the bits as I would have liked. But, I got around the problem by using CPUfreq driver to change the frequency. The way to set it up on your machine running unix is explained very well in the guide "https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Power_Management_Guide/cpufreq_setup.html CPUfreq Setup".

Next, the step-by-step explanation for checking the available frequencies and setting the required frequency can be found in "https://software.intel.com/en-us/articles/enhanced-intel-speedstepr-technology-and-demand-based-switching-on-linux Enhanced Intel SpeedStep® Technology and Demand-Based Switching on Linux".

Hope this helps.

Best,

Sridutt

0 Kudos
Reply