<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic MSR_PERF_STATUS voltage reading in Software Tuning, Performance Optimization &amp; Platform Monitoring</title>
    <link>https://community.intel.com/t5/Software-Tuning-Performance/MSR-PERF-STATUS-voltage-reading/m-p/1169884#M7224</link>
    <description>&lt;P&gt;On Sandy Bridge CPUs (as well as on later chips, empirically), you can read the "Core Voltage" from bits 47:32 of the MSR_PERF_STATUS MSR (0x198, seems to be the same as IA32_PERF_STATUS, not what the meaning of the different prefixes "MSR" vs "IA32" mean).&lt;/P&gt;&lt;P&gt;SDM volume 4 describes this as (note the typo 37:32, it should be 47:32):&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Core Voltage (R/O)&lt;BR /&gt;P-state core voltage can be computed by&lt;BR /&gt;MSR_PERF_STATUS[37:32] * (float) 1/(2^13).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;What isn't clear if this is the VID (voltage requested from the voltage regulator by the CPU), or the &lt;EM&gt;measured &lt;/EM&gt;actual voltage "vcore" or "vcc" at the core. Normally the two will be close, but the not the same.&lt;/P&gt;&lt;P&gt;Various tools refer to it as the VID, while others call it "core voltage". The SDM text would make one lean slightly towards VID as it says "P-state core voltage", where the reference to p-state makes one thing it is the required voltage associated with a p-state (i.e., the VID) rather than a measured, actual voltage.&lt;BR /&gt;&lt;BR /&gt;Note that bits 7:0 of this MSR used to return the VID, but not on any more (on Skylake, they seem to always be zero). Bits 15:8 do seem to return the FID (frequency ID, i.e., an ID which maps directly to the frequency multiplier).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 11 Jan 2020 22:21:53 GMT</pubDate>
    <dc:creator>Travis_D_</dc:creator>
    <dc:date>2020-01-11T22:21:53Z</dc:date>
    <item>
      <title>MSR_PERF_STATUS voltage reading</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/MSR-PERF-STATUS-voltage-reading/m-p/1169884#M7224</link>
      <description>&lt;P&gt;On Sandy Bridge CPUs (as well as on later chips, empirically), you can read the "Core Voltage" from bits 47:32 of the MSR_PERF_STATUS MSR (0x198, seems to be the same as IA32_PERF_STATUS, not what the meaning of the different prefixes "MSR" vs "IA32" mean).&lt;/P&gt;&lt;P&gt;SDM volume 4 describes this as (note the typo 37:32, it should be 47:32):&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Core Voltage (R/O)&lt;BR /&gt;P-state core voltage can be computed by&lt;BR /&gt;MSR_PERF_STATUS[37:32] * (float) 1/(2^13).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;What isn't clear if this is the VID (voltage requested from the voltage regulator by the CPU), or the &lt;EM&gt;measured &lt;/EM&gt;actual voltage "vcore" or "vcc" at the core. Normally the two will be close, but the not the same.&lt;/P&gt;&lt;P&gt;Various tools refer to it as the VID, while others call it "core voltage". The SDM text would make one lean slightly towards VID as it says "P-state core voltage", where the reference to p-state makes one thing it is the required voltage associated with a p-state (i.e., the VID) rather than a measured, actual voltage.&lt;BR /&gt;&lt;BR /&gt;Note that bits 7:0 of this MSR used to return the VID, but not on any more (on Skylake, they seem to always be zero). Bits 15:8 do seem to return the FID (frequency ID, i.e., an ID which maps directly to the frequency multiplier).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Jan 2020 22:21:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/MSR-PERF-STATUS-voltage-reading/m-p/1169884#M7224</guid>
      <dc:creator>Travis_D_</dc:creator>
      <dc:date>2020-01-11T22:21:53Z</dc:date>
    </item>
    <item>
      <title>For Sandy Bridge, MSR_PERF</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/MSR-PERF-STATUS-voltage-reading/m-p/1169885#M7225</link>
      <description>&lt;P&gt;For Sandy Bridge, MSR_PERF_STATUS (0x198) has package scope. &amp;nbsp;&lt;/P&gt;&lt;P&gt;Starting with Haswell, Volume 1 of each (server)&amp;nbsp;processor's data sheet notes:&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;Individual processor VID values may be calibrated during manufacturing such that two processor units with the same core frequency may have different default VID settings.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Interestingly, none of the mainline processors newer than Sandy Bridge list this MSR in Volume 4. &amp;nbsp;This is perhaps&amp;nbsp;not surprising since it is "Architectural", but the table of Architectural MSRs does not contain information on the scope of these MSRs. &amp;nbsp; Obviously bits 15:0 have to have core-scope in processors that support per-core p-states, but that may not imply anything about the scope of the undocumented/reserved bits. &amp;nbsp;&lt;/P&gt;&lt;P&gt;It should be easy enough to determine whether the reserved bits of this MSR are&amp;nbsp;reporting VCCin (which is intrinsically package scope) or reporting per-core values. &amp;nbsp;I would try a long-running code with Power License 0 instructions on one core and long-running code with Power License 2 instructions on another core, then comparing each core's MSR values. &amp;nbsp;(Running in the kernel would certainly help -- I have seen&amp;nbsp;that the kernel crossing is often enough to cause changes in the p-state value in this register.)&lt;/P&gt;</description>
      <pubDate>Tue, 21 Jan 2020 18:06:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/MSR-PERF-STATUS-voltage-reading/m-p/1169885#M7225</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2020-01-21T18:06:00Z</dc:date>
    </item>
  </channel>
</rss>

