K10statを使ったCPUの電圧設定@X6[ 2016 / 01 / 27 ]

AMDのK10アーキテクチャ用設定ツールK10statで電圧を変更し、Phenom II X6 1065Tを省エネ方面の設定にしてみます。設定方法などは前の記事を参照してください。

テスト環境と作業内容

そのうち手ごろな価格になったらK10の6コアを試してみたいと思ってから約5年、同時期に販売されていたCore2やCorei初代は下落していきましたが、K10は価格の動きが鈍く割高になる一方です。そんな中、末期の新品価格に近い値段でしたが近所で売っているのを見かけ衝動買いしたPhenom II X6 1065Tを今更いじってみます。

Phenom II X6のラインナップ

型番1035T1045T1055T1065T1075T1090T1100T
周波数2.6GHz2.7GHz2.8GHz2.9GHz3.0GHz3.2GHz3.3GHz
ターボ3.1GHz3.2GHz3.3GHz3.4GHz3.5GHz3.6GHz3.7GHz
TDP95W125/95W95W125W

1035Tはメーカー製PCに搭載されていました。1055Tは最初に販売された製品のTDPが125Wでその後95Wに切り替わっています。今回の1065TはTDP95W品では一番高クロックになります。

PhenomはX6からTurbo COREが実装されました。マルチコア非対応のアプリケーションなどで少数のコアを使用してそれなりの負荷がかかった時、一部コアだけ周波数を定格以上に上げる機能です。型番の末尾のTはターボコアを意味します。

テスト環境

CPUPhenom II X6 1065T
マザーA7GM-S (780G & SB700)
メモリDDR2-800 CL6 16GB (4GB x4)
HDD1WD1600HLFS-60G6U2 (2.5" 160GB 10000rpm)
HDD2HN-M101MBB (2.5" 1TB 5400rpm)
VGAN640GT-MD2GD3/LP (GT640 DDR3 2GB)
SOUNDX-Fi Bravura 7.1 (CA0110)
電源KRPW-PT600W/92+ (600W 80+PLATINUM)
OSWindows 10 64bit Pro

A7GM-SでX6を使うにはBIOSの更新が必要です。A7GM-SはリビジョンによってBIOS更新に使うファイルが異なるので要確認です。手持ちのA7GM-Sは電解コンデンサが多く使われている初期リビジョンです。電源投入時やOS起動前などの通常電圧時に、マザーへの負荷が多少でも和らぐのに期待してTDP95WのX6を選びました。

作業の流れ

テストをしながらPCが落ちない電圧設定を探ります。CnQ&C1Eは有効、BIOSから電圧や周波数などの変更は無しの初期状態、Windows側のCPU制御設定は上限と下限を5%にして周波数を固定、K10statのロック機能で周波数を設定します。

  • テストしたい周波数と電圧を設定し反映させる
  • Prime95を動作させる
  • K10statで電圧の設定を一つずつ下げて反映させる
  • エラーが起きてフリーズしたら再起動後に1つ上の電圧でPrime95を動作させる
  • しばらく放って置いてフリーズしたら1つ電圧を上げる
  • その設定で10分動作したらそのまま使わず、少し余裕を取って2つ上の電圧を採用

この流れで設定を探っていきます。Primeはテスト時に最新だったv28.7を使っています。

電力の測定方法

ワットモニターでワット数を確認します。アイドル状態はWindows10のデスクトップ画面でしばらく放置して数値が安定した時の最も低い値、負荷状態はPrime95開始1分の間で一番高い電力を拾っています。6コア全てが100%になるそこそこの負荷ですが、より消費電力が増える処理もいろいろとあるので目安程度にどうぞ。

定格設定と定格周波数電圧下げの消費電力

2つ並んでいる数値は左がアイドル状態、右が負荷状態です。K10statで指定した電圧は環境によって値が変わるので、CPU-Zに表示される電圧も記述しています。テスト時の室温は17℃前後でした。

デフォルト設定

P-State周波数設定電圧CPU-Z電圧電力温度
B03400 MHz1.4250 V1.408 / 1.424 V142 W31 ℃
P02900 MHz1.3250 V1.312 / 1.328 V71.0 / 173 W15 / 42 ℃
P12200 MHz1.3000 V1.296 / 1.312 V64.4 / 155 W14 / 36 ℃
P21500 MHz1.2500 V1.232 / 1.248 V62.4 / 131 W13 / 30 ℃
P3800 MHz1.1750 V1.168 / 1.168 V60.4 / 102 W13 / 22 ℃

Turbo COREのB0は一部のコアにだけ負荷がかかった時に適応される設定なので、Primeを2スレッドで実行して確認しています。ターボが有効でP0に固定してアイドルになった時、周波数はP0のままですが電圧はB0で設定されている値が適用されるようで、B0のアイドル時の電圧はその値です。

低電圧設定

P-State周波数設定電圧CPU-Z電圧電力温度
B03400 MHz1.2375 V1.232 / 1.232 V116 W28 ℃
P02900 MHz1.1375 V1.120 / 1.136 V57.9 / 138 W13 / 33 ℃
P12200 MHz0.9750 V0.960 / 0.976 V55.1 / 114 W12 / 25 ℃
P21500 MHz0.8375 V0.832 / 0.832 V53.8 / 97.3 W11 / 20 ℃
P3800 MHz0.7125 V0.704 / 0.704 V53.3 / 82.5 W11 / 17 ℃

B0は3コアだけ周波数が3.4GHzになり電圧も高くなっていますが、テストで走らせているPrimeが2スレッドのみと6コアをフルには使っていないので、消費電力はP0よりも低い値になっています。それでも2.2GHzで6コアを稼働させた時と同じ値になっています。

周波数と電圧と消費電力

周波数設定電圧CPU-Z電圧電力
2900 MHz1.1375 V1.120 V58.3 W
800 MHz1.1750 V1.168 V60.4 W

アイドル時のデータ比較です。800MHzは定格設定、2900MHzは電圧を下げています。より低電圧の2900MHzの方が消費電力は低くなっており、周波数より電圧の方が電力への影響が大きい事が分かります。

TDP65W相当?の設定

X6と同世代のTDP65WのCPUと同程度の消費電力になる設定です。今回はTDP65WのAthlon II X2 240を同じ環境で使った時のデータと比べます。Athlonの方が温度が高いですが、グリスが塗られてから6年程度経過しているのが影響したのかもしれません。

Athlon II X2 240の定格と比較

CPU周波数電圧電力温度
Athlon II X2 240800 / 2800 MHz1.008 / 1.376 V54.0 / 118 W15 / 36 ℃
Phenom II X6 1065T1500 / 2200 MHz0.832 / 0.976 V53.8 / 114 W11 / 25 ℃

数値は左がアイドル時、右が負荷時の値です。周波数を抑えて電圧を下げればX2の定格と同程度の消費電力にできました。

両方定格周波数で電圧を下げた場合

CPU周波数電圧電力温度
Athlon II X2 240800 / 2800 MHz0.704 / 1.072 V51.7 / 93.0 W15 / 28 ℃
Phenom II X6 1065T800 / 2900 MHz0.704 / 1.136 V53.3 / 138 W11 / 33 ℃

負荷は2と6というコアの数で大きく差が付いていますが、アイドルはL3キャッシュ6MBの有無やコア数の差を感じさせない僅差で健闘しています。旧PCの消費電力削減をしたい時はコア数の少ないCPUに交換するより、多コアのクロック上限を控えめにするだけでよいかもしれません。

他の周波数とP-Stateの変更

初期設定以外の周波数をいくつか試します。FIDとPIDの値を変更すると他の周波数になります。

P-StateFID-PID周波数設定電圧CPU-Z電圧電力
B018-03400 MHz1.2375 V1.232 / 1.232 V115 W
P013-02900 MHz1.1375 V1.120 / 1.136 V57.9 / 138 W
12-02800 MHz1.1250 V1.120 / 1.120 V57.5 / 135 W
10-02600 MHz1.0750 V1.056 / 1/072 V56.4 / 126 W
P18-02400 MHz1.0125 V0.992 / 1.008 V55.5 / 120 W
7-02300 MHz1.0000 V0.992 / 0.992 V55.3 / 116 W
6-02200 MHz0.9750 V0.960 / 0.976 V55.1 / 114 W
P24-02000 MHz0.9375 V0.928 / 0.928 V54.8 / 108 W
P30-01600 MHz0.8625 V0.848 / 0.864 V53.9 / 99.7 W
14-11500 MHz0.8375 V0.832 / 0.832 V53.8 / 97.3 W
8-11200 MHz0.7875 V0.768 / 0.784 V53.5 / 92.2 W
0-1800 MHz0.7125 V0.704 / 0.704 V53.3 / 82.5 W

0.9V未満の電圧ではアイドル時の電力はあまり変わらないようです。アイドル時の800MHzはレスポンスが悪いので、P3を電力差の少ない1600MHzまで上げる事にします。800MHzと1600MHzで負荷時の電力差は大きいですが、負荷がかかれば周波数も上がるので問題ないでしょう。あとは400MHz刻みで周波数を増やしています。

Altanate VID

BIOSでC1Eを有効にしてP3でアイドル状態の時、特定の条件を満たしているとコアの電圧をAltVidで指定した値にします。K10statのreadmeに必要な条件などが書かれているので目を通しておいた方がよいでしょう。

適用するにはK10STAT.exeのショートカットをどこかに置いて、リンク先のパスの後ろに「-AltVid:700」などと付け足してから起動します。

周波数1600 MHz
AltVid未指定700600500450400
CPU-Z電圧0.848 V0.688 V0.576 V0.480 V0.432 V0.384 V
待機電力53.9 W53.3 W52.9 W52.6 W52.4 W52.2 W

やはり0.9V未満の電圧だと消費電力は下がりますが差はごく僅かです。

100単位で値を下げていくと400までは特に問題なし、300は即再起動、350もダメ、380は再起動後にOSが起動失敗するようになりました。やり過ぎるとファイルが破損しやすいかもしれません。

AltVid設定時の動作

例えば400を指定すると、コアの電圧は0.848Vから0.384Vまでの間で上下に変動します。特に操作をせずにバックグラウンドの動作が落ち着くと0.384Vのままになります。

AltVidが効いている状態からPrime実行でP0に遷移し、終了させるとP3に戻って低電圧になりました。mp3を再生すると、負荷が軽いせいか0.8V以下で再生できました。

高電圧のアイドルとAltVid

電圧の変更をしていない初期状態とAltVidを組み合わせてみました。

周波数AltVid設定電圧CPU-Z電圧電力
2900 MHz未指定1.3250 V1.312 V71.0 W
2900 MHz10001.3250 V0.976 V56.1 W

AltVidを800にすると落ちたので1000にしています。AltVidを併用する事で高い周波数で高電圧のまま常用、アイドルは低電圧という動作が実現できます。アイドル時に低電圧になる設定だと効果は1~2Wでしたが、高電圧からならそこそこ抑える事ができます。

NB電圧の変更

NorthBridgeの電圧であまりいじらない方がPCは安定します。今回の環境のNB電圧初期値は1.1500Vです。クロック固定でNB電圧を変化させました。NB電圧はCPU電圧と同じ区切りで変更できますが、おおざっぱに0.05V単位で動かしています。

設定2900 MHz - 1.1375 V
NB電圧1.0000 V1.0500 V1.1000 V1.1500 V1.2000 V
電力56.5 / 129 W56.9 / 132 W57.5 / 135 W57.9 / 138 W58.9 / 140 W

0.9500Vにするとデスクトップ画面でフリーズしました。

タスクスケジューラで自動起動の設定にしていたままだったので、起動途中で必ずフリーズするようになりました。Win10は起動時にキー入力を受け付けないようで、CTRLキーを押したまま起動してもK10statを無効化できません。

BIOSでFSBを200から190MHz、"CPU-NB HT Link Speed"をAUTO(2000MHz)から1000MHzに変更してみるとデスクトップが表示されたので、すぐに設定ファイルのk10stat.datを削除して復帰させる事ができました。このBIOS設定でも削除操作の直後にフリーズしたので、NBとHTの周波数を変更しても下限の電圧はあまり変わらなさそうです。

CPU-NB HT Link Speedの変更

A7GM-SのNorthBridgeには780Gが搭載されています。

チップセット690G780G880G
ソケットAM2AM2+AM3
バージョン2.03.03.1
最大周波数1400 MHz2600 MHz3200 MHz

780Gの前後世代のチップセットとHyperTransportの仕様です。780GからHyperTransportのバージョンが3.0になり、それに伴い周波数は最大2600MHzとなりました。X6のHyperTransportは2000MHz動作なので780Gでもカバーできます。

デフォルトはAUTOで2000MHzですが、最大2600MHzなら多少上げてもいいだろうと試しにBIOSで変更してみるとPOSTしなくなりました。

常用設定

以上のテストを踏まえた設定です。

P-StateFID-PID周波数設定電圧CPU-Z電圧電力NB電圧
B018-03400 MHz1.2375 V1.232 / 1.232 V112 W1.0000 V
P013-02900 MHz1.1375 V1.232 / 1.136 V60.0 / 129 W1.0000 V
P110-02600 MHz1.0750 V1.056 / 1.072 V55.4 / 118 W1.0000 V
P27-02300 MHz1.0000 V0.992 / 0.992 V54.2 / 109 W1.0000 V
P34-02000 MHz0.9375 V0.432 / 0.928 V51.0 / 102 W1.0000 V

「-AltVid:450」を指定しています。それに伴いP3を2000MHzに引き上げ、そこからP0まで300MHz刻みにしています。NB電圧を1.0000Vにした事で各ステートの消費電力が若干下がっています。

AltVidのおかげで2000MHzでもアイドルは800MHzよりも低い消費電力になっています。ターボコアを有効にしているとP0のアイドル時の電圧がB0の値になるので、P0固定時のアイドル電力が高めになっています。P0固定で使う場合はB0を無効にした方がよいでしょう。

PsiVid

指定した電圧以下になった時に、動作中のフェーズ数を減らして省電力になります。試しにPsiVidを指定してみましたが特に変化はありませんでした。

例えばすぐ上の表の設定と対応マザーで「-PsiVid:950」と指定すれば約0.95V以下、P3になるとフェーズ数を減らした状態で動作するはずです。P3を固定して高負荷をかけると、少ないフェーズ数で高電力に対応しないといけないので危険かもしれません。「-PsiVid:900」にすればAltVidで指定している電圧の範囲内になるので、アイドルか低負荷の時にのみフェーズ数を減らすようになるはずです。

メモリの設定

A7GM-Sのメモリに関するBIOS設定で電力に影響しそうな項目を変更します。

MemClk Tristate C3/ALTVID

C3やALTVIDとあるので電力に関連していそうに見える項目です。デフォルトはDisableでした。EnableにしてAltVidが効いている状態で放置してみましたが、有効無効で目立った変化はありませんでした。

Power Down Enable

いかにも電力に影響していそうな項目です。デフォルトはEnableでした。Disableにするとアイドル状態で1.2W増えました。

"Power Down Enable"が有効な時に出てくる"Power Down Mode Channel(Channel / Chip Select)"を、デフォルトのChannelからChip Selectに変更してみると、POSTしなくなりました。

メモリの速度周りの設定

ついでに速度周りの設定も変更してみます。K10にはUngangedというランダムアクセスに強いとされるメモリアクセス方法が実装されています。デフォルト設定で従来のデュアルチャネル動作のGangedモードではなくUngangedが設定されていたりするので、K10の売りの機能の1つと言えるでしょう。

BIOS画面にはUngangedの設定の他に「Bank Interleaving」と「Channel Interleaving」というデュアルチャネル動作の設定項目があります。そのあたりを変更すると実際どうなるか分からないので、組み合わせを変えて試してみます。

タイミングの変更

使用しているDDR2-800メモリはCL6ですが、以下のようにCL5相当のタイミングに変更しています。

変更前:6-6-6-18-24(tCAS-tRCD-tRP-tRAS-tRC)
変更後:5-5-5-16-21

Ramdiskの読み書き速度とその他ベンチ

Ramdiskの作成にRamPhantomEX、読み書きはCrystalDiskMarkを使っています。ターボは無効でクロックは2.9GHz固定、テストサイズは8GBで9回行う設定です。表は有効を○、無効を×で表記しています。数字の並びはRead / Writeで速度の単位はMB/sです。BIOSの初期値は一番上のUnganged、Disable、Enableです。BIOSでインターリーブを両方無効にしていても、CPU-Zの表示はDualでUnganged/Gangedでした。

M = DCT Unganged Mode(Always:Unganged / Auto:Ganged)
B = Bank Interleaving(Auto / Disable)
C = Channel Interleaving(Enable / Disable)
PCM / 3DM = PCMark 7 / 3DMark 11

MBCSeq Q324k Q32Seq4kPCM / 3DM
Un×2002 / 252258.76 / 63.432564 / 320159.50 / 58.182852 / 2256
×2031 / 269659.03 / 64.652620 / 334659.76 / 58.902879 / 2253
2020 / 268158.92 / 62.502570 / 318359.85 / 58.042859 / 2261
××2003 / 248558.95 / 64.192604 / 327059.75 / 58.382868 / 2259
Ga×1839 / 219960.12 / 63.452674 / 325161.44 / 59.132874 / 2199
×1810 / 237861.14 / 66.442700 / 330861.91 / 61.112855 / 2252
1814 / 232557.69 / 63.522616 / 317758.31 / 56.632847 / 2251
××1802 / 219157.36 / 62.632549 / 318558.37 / 56.092822 / 2243

微妙な差ですが、どちらのモードでもBank InterleavingだけをAutoにするとよさそうに見えます。