IMG_3065


結論から言うとP-stateがうまく動かず失敗しました
どうやら海外のフォーラムでもP-state非動作の報告はあるみたいでした

メモ用の記事なので抜けている部分も多くご了承の上参考程度に閲覧願います



 P-StateとC-Stateでは明確にその機能が違う。

P-State
 負荷に応じて動的にクロック・電圧を変える。P-State値はゼロ~からで,いくつ定義されているかはCPUによって異なる。

C-State
 アイドル時のパワーマネジメントを行う。全く無いものからC1と定義されている物がある。
引用元

BIOSからAMD CBS SettingのCustom P-stateを編集することにより自由にクロックや電圧を変更することが可能とのことでした

Custom P-stateを利用することで定格時と同じように負荷によってクロックと電圧が変動し省電力でOCができるらしいので設定してみました

以下の2台のマシンで検証しましたが画像はすべて検証機2になっています

検証機1
CPU Ryzen5 2600X
M/B Asrock x370 Taichi /Bios L4.64beta
RAM CMK16GX4M2B3600C18R/@3200MHz
VGA MSI GTX1060 Gaming X 6G
PSU KRPW-GT600W/90+

検証機2(加筆修正時に若干の構成変更)
CPU Ryzen5 1600
M/B Gigabyte AB350 Gaming 3/F23→F25
RAM Corsair DDR4 OC2666MHz
VGA GT730→RX570
PSU Thermaltake 850W


以下様々な解説サイトを参考にしたまとめ

P-Stateをいじる前にBIOS設定にてCPUの動作クロック、電圧がAutoもしくはOffsetになっていることを確認します(私はAUTOにしています)
またC-stateもオフにしておきます
これはC-stateとP-stateの挙動を勘違いしないためです
CorePerformanceBoostもオフにします(これはどっちでもいいっぽい?)
Windows上から電源プランの最小プロセッサの設定を5パーセントに設定

なっていることが確認出来たら次に進みます


まずCustom P-stateを編集します
RyzenでP3以降の設定は現状設定しても意味がないのでDisableかAUTOに設定します

P0は最高負荷時のクロックと電圧になります
おそらくどのマザーボードでもVIDと書かれた場所があるかと思いますがそこが電圧の設定になります
CPUには、VID(Voltage Identification Definition)という、各々の個体が定格クロックで動作するのに必要な電圧がインプットされている。
引用元
P1は負荷が低いときの設定です。P2はさらに負荷が低いときの設定です

P0にオーバークロック時の数値を入れます

P1、P2もいじれますがここではここではCustom初期設定のままにしておきます

BIOS設定をセーブし再起動します


Windowsが起動したらHWinfoでクロック、電圧の挙動を確認し両方とも低負荷時に下がっていたら成功です

以上


ネットにはこのように書かれていたのですが私の環境では、この設定で正常に動作しませんでした

二日間何か間違っていないかを確認していたのですが解決できませんでした

試行錯誤の際にわかったことを記載しておきたいと思います

P-stateが動いた設定例
P0、P1、P2すべてAuto(これはそもそもBIOS初期設定)
P0の電圧を1.3以内?

P-stateが動作しない設定例
P0のみOC設定でその他をAUTO設定
P0,P1,P2それぞれ設定

以下参考画像(スクショ時の負荷で電圧変動が起こったので直撮りをしています)
まずは正常にP-stateが動作している設定時の画像です
Custom P-StateをすべてAUTOに設定し
C-Stateを無効にしています

IMG_3068

左側で囲っている部分はCPUの現在のVIDとクロックで、右側で囲っている部分がvcoreです
クロックが1.5GHzまで下がりすべてのコアのVID、VCOREがしっかり下がっています
ちなみに赤で囲った部分が現在値で右横の数値が最低値でそのさらに右が最高値になっています

そしてこちらが正常に動作していない設定
Custom P-StateからP0のみを3.8GHzまでOCしてその他をAUTOもしくはCustom初期数値に設定
C-Stateを無効にしています
IMG_3060

低負荷の状態でクロックは下がっていますがVID、vcoreは全く下がりません



いろいろ探しているうちに、とある掲示板で
「解説サイトはc-stateが効いているだけでp-stateの電圧変動ではない」というような書き込みがありました
というわけでc-stateを有効にして検証してみたところ以下のような結果になりました

ここからがC-stateを有効化した際の数値になります
まずはp-stateが正常動作した設定のほうからです
Custom P-StateをすべてAUTOに設定し
C-Stateを有効化した設定
IMG_3072
C-stateが効いて更に電圧が下がっています
無効化時は0.8vまでしか下がっていませんでしたが今回は0.4vまで下がっています
C-stateはクロックの変動なしで電圧が下がる時もあります
クロック関係なくコアがスリープであるかどうかによるかららしい?
(以下参考画像)
IMG_3071

そして次
P-stateが正常動作しなかった設定です
Custom P-StateからP0のみを3.8GHzまでOCしてその他をAUTOにもしくはCustom初期数値に設定
C-Stateを有効に設定
IMG_3093
クロックが下がって、電圧も下がってますね
確かにこれならp-stateが動作していると思っても仕方ないですね
ただ少し違和感が・・・
見て分かる通り正常に動作している画像と比べるとVIDの変動が1コアのみとVIDの変動が緩慢なんですよね
ずっとアイドルで放置していると稀に2コアのVIDが下がったりしますがすべてのコアのVIDが下がるのは見たことがありません
そしてこの特有のVIDの変動の仕方が私が参考にした1サイトととても似てたんですよね・・・

まあでも一応C-stateを有効化したことによってP-stateもうまく動くようになったという可能性も捨て切れないので今度はP-stateではなくOC設定からクロック、電圧直打ちでOCして、そこでC-stateを有効化してみたいと思います
IMG_3077
こうなりました
クロックは固定されていますが電圧は先ほどと同じ下がり方です
Custom P-stateから設定せずとも同じように電圧が下がってます
つまり電圧の変動はP-state全く関係なかったということになります

というわけで上記の検証結果から「Custom p-stateの設定に失敗」という結論に至りました
うーんこの機能どうやって正常に動かすんだろう…



2019/3/10
加筆修正&画像追加