Intel Atomの最低電圧はこう見る
Vaio P いまさらチューニングネタ ~CPU電圧・Clock調整
Ideapad S12もCPU電圧・Clock調整
でAtomの電圧が下げられないと嘆いていたが、どうしてそう判断したのかメモ書きとして残しておきます。
FID / VIDの指定
IntelのSoftware Developer’s Manualを見ますと、OS(プログラム)側からCPUパフォーマンスをコントロールする場合はIA32_PERF_CTL MSR (0199H)の下位16Bitにセットということで、CrystalCPUIDがセットした状況をCPU-Zで見ることができます。
Vaio Pの例
MSR 0x00000199 0x00000000 0x00000609
これはFIDが06でVIDが09。すなわち6倍(=800MHz)で0.8250Vの設定にしていることを表します。
Ideapad S12の例
MSR 0x00000199 0x00000000 0x00000C27
これはFIDが0CでVIDが27。すなわち12倍(=1.6GHz)で1.2000Vの設定にしていることを表します。
実際の動作
じつは上記のVaio Pの例では0.825Vを指定していますが、実際は無視されます。そして、そのときの状態はIA32_PERF_STATUS MSR (0198H)の下位16Bitに現れます。
Vaio Pの例
MSR 0x00000198 0x060B101E 0x0600060B
これはFIDが06でVIDが0B。すなわち6倍(=800MHz)で0.8500Vの状態で動作していることを表します。0.85V未満の指定は全て無視され、0.85Vで動作していたのです。
FID / VIDの指定有効範囲
で、これはIntelのDocumentには書かれていなかったのですが、どうもこの値を見ていると、EAXの方の「060B101E」という値が有効設定範囲を表しているように思えます。
筆者の所持するVaio Pでは「060B」~「101E」、すなわち、FIDは06~10⇒6倍(=800MHz)~16倍(=2.13GHz)。VIDは0B~1E⇒0.8500V~1.0875Vが有効範囲であると、そう読めそうです。
Ideapad S12の場合
MSR 0x00000198 0x060F0C27 0x06000C27
なので「060F」~「0C27」、すなわち、FIDは06~0C⇒6倍(=800MHz)~12倍(=1.6GHz)。VIDは0F~27⇒0.9000V~1.2000Vが有効範囲であると、そう読めそうです。
とりあえず、あまり精査していませんが、今のところこれに反した動きはしていません。
他のCPUには適用できない
とりあえず、45nmのAtomには適用できそうですが、例えば同じく所持しているVaio Eは全く値も動きが違うためCrystalCPUIDも動作しませんし、調整有効範囲も分かっておりません。なんでも開発チームが違うだけでこの辺の使われ方は全然違うとか。Atomは恐らくイスラエルチームでVaio EのCore i3(Nehalem - Arrandale)はオレゴンチームでしょうから、仕方が無い結果かも知れません。
また、上記の内容が今後も保証されるとは限りません。ただ、Atomは世代ごとにチームを移動したりしなさそうですし、組込向けに提供することもあって頻繁かつ無意味に仕様変更されることを嫌うでしょうから、この先の世代でも同じである可能性もありそうです。