画像やリンクが無効になっている可能性もあるのでご了承下さい。
はじめに
APU である事からメモリの動作速度が iGPU の性能に直結する為、ここは気を使いたいところ。
幸いにも Ryzen™ 5 5600G は Zen3 コアアーキテクチャを採用しているので、筆者自身が Ryzen 9 5950X で養ったメモリ弄りのノウハウをそのまま活かせそうだからサクッとチューニングをしてみた。
注意事項
特にメモリともなると PC が起動しなくなったり、動作が不安定になりファイルが破損する恐れもある。
電圧設定をミスって過大な電圧を与えすぎると、最悪 CPU/APU、メモリモジュールが破損する恐れもあるから要注意だ。
サブマシンのスペック
メモリの動作に関わる部分としては Ryzen™ 5 5600G と B550 AORUS ELITE V2 に F4-3200C14D-16GFX となる。
このメモリモジュールは Samsung B-Die の選別品となる。
今回目指すセッティング
サブマシンは 24-365 で稼働させることを前提としているので、安定性重視。それでもメモリを OC してパフォーマンスは稼ぎたいというワガママ仕様。
- 極力 VDIMM (メモリモジュールの動作電圧) を抑えつつ余裕を持たせた動作としたい。
- メモリ帯域はさほど重視せず、FCLK (Infinity-Fabric Clock) を稼いで iGPU の性能向上に寄与させる。
と、こんな感じに。
要は FCLK を稼ぎたいからカツカツに攻めず、やや緩いセッティングにしておこうということで。
メモリクロックの上限を探る
巷では Zen3 の APU なら DDR4-4000 とか余裕で回るとかなんとか話題を見聞きしたので、先ずは上限となるクロックを探る事にした。
もちろん UCLK:FCLK = 1:1 で動作するモードで。(UCLK = メモリコントローラーのクロック)
やることはメモリのファーストタイミングだけ CL18~20 辺りにしてサブタイミング以下は AUTO とし、メモリの動作速度に合わせて VDIMM と VSoC (SoC の動作電圧) を盛っていく形式にした。
DDR4-3600 からスタートし、3733、3800、3866 とやってみたが、3866 からして既に BIOS が POST せずに起動不可能だった。
2021/09/29 現在、VSoC 1.082V から DDR4-3866 の POST を確認出来たので、本記事末尾に続きとなる記事へのリンクを追加。
さて、DDR4-4000 とか余裕って話しは何処へいったのやらと。
APU 自体の個体差なのか、それともマザーボード側に原因があるのかなと思うも、どっちが原因だろうと買い替えるとか選択肢にないからこのまま行ける上限の DDR4-3800 でチューニングする運びに。
ProcODT の最適値を探索
今回は先ずここを抑えておいた。
マザーボードで ProcODT を AUTO とした場合、53.3Ω に設定されるからこれを中央とする。
メモリは DDR4-3800 動作と決めたので、おおよそ希望する VDIMM を 1.400V、VSoC を 1.040V とする前提で ProcODT を探る。
上記記事の通り、良い塩梅でエラーを吐くまで VDIMM を落として行って ProcODT を 60.0Ω から 1 ステップずつ下げて行く方向で Memtest86 Test 8 のエラー数をカウントしていった。
するとこうなった。
ProcODT | エラー数 |
60.0 | 29 |
53.3 | 12 |
48.0 | 30 |
43.6 | 24 |
ということで ProcODT は 53.3 に決定。
ClkDrvStr, AddrCmdDrvStr, CsOdtDrvStr, CkeDrvStr に関しては AUTO だと 24-20-24-24 だったが、DRAM Calculator にならって 24-24-24-24 と設定した。
この値で ProcODT 探索中に発生したエラー内容からみるオーバーシュート、アンダーシュートの比率が大雑把に同じ位だったからまぁ適当だけど良いかなって。
ファーストタイミングを決める
VDIMM を過度に要求しない緩いセッティングにしたいという事から、ファーストタイミングは以下のようにセオリー通りに決めた。
tCL 16, tRCDWR 18, TRCDRD 18, tRP 18, tRAS 34
サブタイミングを設定する
ここもファーストタイミングに同じく、要求される電圧が上がらないように tRFC と tRDRDSCL, tWRWRSCL を控えめに。
特に tRDRDSCL と tWRWRSCL は帯域に大きく関わってくるんだけど、ここを欲張ると安定性の面で面倒になるかなってことで 4 に。
tRFC も値が小さい程「メモリが何も出来ない時間が短くなる」から動作としては早くなるけど、その分だけ「電圧を高く入れてチャージが間に合うようにしなければいけない」から緩く 300 (160ns) 以上取れる感じに。もっとも、ここは tRC x6 の値とするから、緩めたファーストタイミングの値が効いてくるってなもんで。
あとはメインマシンの Ryzen™ 9 5950X で設定している値を元に、ちょっと緩めてみたりして BIOS が POST する事を確認しつつチューニングした。
出来上がった設定
DDR4-3800 として UCLK:FCLK = 1:1 の 1900MHz に。
VDIMM 1.410V, VSoC 1.040V, VDDP 0.85V と設定した。
VSoC の安定性も欲しい為、VSoC の LLC (Load Line Calibration) は Medium とした。
ここで分かった事としては、初代 Zen コアアーキテクチャな Ryzen™ 5 2400G だと VSoC が 1.100V 以上じゃないと iGPU Voltage が不足して PC が起動すらしなかったのだが、Ryzen™ 5 5600G では Ryzen™ 9 5950X と同等な VSoC で行けてしまったのがありがたいところ。
あまり VSoC を上げて消費電力が多くなると、PPT の制限値のうち CPU に使える分まで食い始めるから若干の性能低下がある為だ。
だから VSoC はなるべく低く動かせる方が良い事になる。
ストレステストを行う
これは安定性を考える上で必須な作業。適当に済ませると後で痛い目を見るので確実にやっておく。
各テスト終了後には WHEA-Logger の ID 19 が発生していないかも合わせて確認しておくこと。もし出ていたら VSoC を少し盛るなどの対策が必要だ。
先ずは Karhu RAM Test を実行。Coverage 6400% 程でも十分だけど一応 10,000% やっておいた。気になるならもっとやっても良い。
メモリが 16GB なので 2 時間掛からず出来たけど、32GB だったら単純にこの倍は掛かるから面倒なところ。
もう一つ絡めておいた方が良いので、お次は TestMem5 の Extreme1 というこれまたメモリに凶悪な負荷が掛かる代物。
負荷が強いという事はメモリモジュールの温度も上がるので、冷却が不十分だとエラーを起こす場合もある。その場合、エアフローを見直すだとか、VDIMM を落として再チューニングを要する場合もある。
メモリモジュールに温度センサーが付いている場合は HWiNFO 等でチェックしてみることをオススメする。50 度以下であれば問題は無いだろうと思われる。
※以下スクリーンショットは DDR4-3866 でやっていたときの物で、DDR4-3800 時の物はスクリーンショットを撮り忘れていた……
更に APU である場合、iGPU Voltage は VSoC から生成されるため、グラフィックのストレステストも絡めておいた方が良い。
丁度良い物がこれ、3DMark Stress Test。
以上、合計 4 つのテストをノーエラーでパスしたので、ほぼほぼ大丈夫であろうという環境が完成となる。
気になること
筆者環境ではメモリを DDR4-3600 以上にすると、iGPU Clock が 2000MHz、iGPU Voltage が 1350mV に強制されてしまう。
この値を定格となる 1900MHz にしても絶対にこの値がセットされてしまうのでどうしようもならず。
この項目自体、AMD Overclocking 以下にあるので AGESA 側の制御になるのかなぁと思うも確証は得られず。
つまりは APU 側の仕様なのか、それともマザーボード側の仕様なのか現時点では情報も無くて分からないなんて事で。
メモリ動作クロック 3533MHz までは問題無く、3600MHz にした途端こうなるという事と、UCLK:FCLK = 2:1 や FCLK 非同期にした UCLK 1800MHz, FCLK 1600MHz なんてしてもダメだからメモリの動作速度に要因があるという事はハッキリしている。
一応動作はするけど限定的すぎる DDR4-3866
初回に動作クロック上限を探っていたときは DDR4-3800 が上限だったのだが、ProcODT を適正値より 1 つ上げた 60.0Ω とする事で DDR4-3866 でも起動して WHEA-Logger ID 19 が発生する事も無く動作することが分かった。
しかし ProcODT の値が絶対に 60.0Ω でないとダメで、その 1 つ上でも下でもダメ。ファーストタイミングを緩めようが VDIMM を 1.500V まで盛ろうが絶対ダメ。
あまりに限定的すぎて電気的な余裕も無さそうだなと常用は見送った次第。
なんでここまで狭いのかと考えてみたけど分からないから止めておこうと。
おわりに
完成したメモリ OC のセッティングにて約 20 日間ほど常時起動させたままとなっているが、WHEA-Logger すら吐かずに安定した動作を続けてくれている。
性能が上がったことから x264 を用いた適当な温存エンコを Amatsukaze で行っているが、筆者セッティングでエンコード速度が 250fps 前後出ているし、エンコード時のメモリへの負荷で安定性を欠くようなことも全く無い。
今回は割と素直に安定したチューニングが行えたので良かったが、DDR4-4000 に届かなかった事が悔やまれる。
もっとも到達出来ていたとしても VDIMM 1.45V 以上は必要そうだから常用はしたくなかったかなと思うところだが。
その後 DDR4-3866 まで安定を確認
VSoC を弄り忘れていたので改めて弄ったら DDR4-3866 まで安定ラインが広がったお話しで、本記事の続きのようなお話し。
- 2021/09/3000:05記事執筆当時の検証時、VSoC の盛り忘れをしていたようなのでその旨を追記……
- 2021/09/3020:15続きの記事に対するリンクを末尾に追加
コメント
そりゃこのvsocじゃ無理魔界
コメントどうもありがとうございます!!
VSoC!! 盛るの忘れてました!!
本能的に VSoC 1.10V 以上は掛けたくないなぁと思う所があったのですが 1.20V まで盛って VDIMM 1.50V 等としてもうちでは DDR4-4000 は無理ぽい感じでした。
DDR4-3866 なら VSoC 1.10V で行ける感じなので、これでまた調整したいと思います。