(2024/12/10更新)
メモリOCしようと思ったら情報を集めるのがかなり大変だったので、できる範囲でちょこちょこまとめています。
情報の提供や訂正があればぜひお願いします。
もくじ
#筆者のPC構成
おりたたんでます
RAM G.Skill Trident Z5 RGB*1
GPU GIGABYTE GeForce RTX3090 VISION OC 24G
M/B GIGABYTE B650M AORUS ELITE AX ICE
PSU Corsair RM850x(2021)
#購入する場合の簡単な選び方
DDR5-6000以上
容量が欲しい場合は32GB*2か48*2
設定を詰めたい場合は16GB*2か24GB*2
8GBx2は避ける
メモリ性能を活かしたい場合は2CCDがおすすめ
3D V-Cache非搭載の方が効果大きめ
#サードパーティツール
HYDRA
Yuri Bubliy | creating software for Ryzen community | Patreon
1usmus氏が開発している多機能ツールです。
Ryzen CPUのOC、PBO2のリアルタイム調整、GPUのOCや低電圧化などかなり色々できます。独自のOC機能や電源プラン、最適なOC設定を自動で見つけてくれる診断機能なんかもあって盛りだくさんです。メモリの調整機能もあります。
クロックや各種電圧はもちろんGDMやPDM、サブも含めたタイミング調整なんかもソフト上で数値入れて再起動で適用できます。自動でタイミング詰めたあと電圧絞ってくれる機能もあります。
ただ手放しにはおすすめできないです。有志のツールである以上不具合もそこそこ多いです。タイミングのプリセット取得がZen4対応したあたりから壊れてたり、マザボによって電圧設定が反映されなかったり、カスタム電源プランがWindowsを英語にしないと壊れたり。多くのファンやRGB制御ソフトと干渉するのも結構痛いかも。ちなみに開発者さんはASUSのマザボを使ってるみたいです。
面白いツールではあるので、上級者の方は是非遊んでみてください。Patreonにて月額10ドルからアーリーアクセスに参加できます。
RAM Test
メモリの安定性テストです。海外のフォーラムでKarhuって呼ばれてるのをよく見ます。
かなりシンプルなGUIで扱いやすく、エラー検出の精度もかなり高いと感じます。5~10分程度でエラーが出なければ次の設定を試してみていいと思います。
多重起動の必要なく、起動時の空き容量に応じてメモリ使用量を調整してくれます。起動してから自分で調整もできます。
9.99ユーロで5台までのライセンスが買えます。2024年内のアップデートで価格が上がるらしいので今のうちですね。あと1ヶ月ありませんが……
GUI拡張がGithubにあります。Max Coverageの設定とMax Speedの表示が結構好きです。自己責任で。
GitHub - jjgraphix/KGuiX: Advanced GUI for Karhu RAM Test
MicrobenchmarksGui
メモリ帯域幅とレイテンシのベンチマークツールです。複数のブロックサイズで測定すると同時にグラフを作成してくれます。
GitHub - clamchowder/MicrobenchmarksGui: An attempt to make a more accessible microbenchmark
TestMem 5
2010年に公開されたメモリテスト。現在でも人気です。
cfgファイルを用意することでカスタマイズが可能。筆者は1usmus氏の設定で25サイクル回してます。
TestMem support page - TestMem V
DDR5 Timing Calculator for AMD by RedF & Wolf87, Guided by Veii
正確な配布場所がわからないので名称だけ載せておきます。スプレッドシートをローカルにコピーして使うやつです。
プライマリタイミングとクロックさえ決まっていればこれで大体決められます。電圧の情報もあります。個人的には電圧名称の対応表がかなり助かりました。何故か各社で統一されてないんですよね……
私自身はoverclock.netのフォーラムで見つけました。編集に参加している方々の投稿はとても勉強になるので、もしよければ掘ってみてください。
#DRAMチップについて
製造会社
現状3社によって製造されています。
- SK Hynix
- Samsung
- Micron (SpecTek)
OCするならHynixがいいみたい。
Hynix A-Die,M-Die
HynixのDRAMには16GBと24GBが存在し、それぞれに世代があります。
世代はM,A,B,C,D,E...Jと進んでいき、現在は16GBが第2世代、24GBが第1世代です。つまり、16GBにのみM-DieとA-Dieの2つが存在します。
6000MHzまでは混在していますが、6400MHz以上ではほとんどがA-Dieのようです。
16GBのM-Dieは2023年末に製造が終了しているため、現行では全てA-Dieが使われているという情報もありました。
16GBではM-Dieの方がより低クロックにおいてタイミングを詰めやすく、A-Dieの方がより高クロックに耐性を持つらしいです。
#Rankについて
市場には主にSingle RankとDual Rankがあります。
日本ではシングルランク、デュアルランクと書かれることもあるので情報が分散しやすいかも。ここではSR、DRと略します。
簡単に言えば、1枚のモジュールで16GB、24GBの場合はSRです。1枚で32GB以上の場合はDRになります。
DRAMは複数枚のチップがワンセットになって構成されています。そのセットがRankです。
Hynix 16GB DDR5 DRAMの場合は1Rankにつき8枚のチップで構成されています。
32GBモジュールにはこの16GB DRAMを2セット使うのでDRということになります。
SRの方がクロックやタイミング、電圧といった設定を詰めやすい傾向にあります。DRに比べてメモリコントローラに余裕が生まれているからです。
じゃあDRは避けたほうがいいのかというとそうではなく、全く同じ設定であればDRの方が高性能になります。
Micronの資料に比較検証のグラフがありました。(4頁、図5)
#EXPO/XMPについて
DDR5-6400以上のメモリだとこれら適用で簡単に扱えるとはならない可能性があります。その場合は適用後に6000に下げるかUCLK=MCLK/2に設定することで対応できる場合があります。
基本的にどちらでもいいですが、EXPO対応だといくつかの自動OC機能が解放されるっぽいです。
編集中……
#BIOS設定項目
編集中……
Gear Down Mode
メモリをコントローラの半分のクロックで動かす機能。有効だとかなり安定しますが、レイテンシは増えます。DRだったら有効にしないと6200以上は厳しい。
Power Down Enable
メモリのC-stateみたいなもの。有効にした方が省電力になりますが、電圧変動によるV Droopの事を考えると詰めるなら無効って感じ。
必ず下のMCRとニコイチで切り替えましょう。不安定になるバグがあります。(仕様……?)
Memory Context Restore
有効の場合、再起動時に前回のメモリトレーニング結果を引き継いで起動時間を短縮してくれます。一応有効にしててもBIOSやパーツに変更があったらトレーニングは入ります。
単体で無効化しても大丈夫そうです。
TSME
メモリ内容の改竄を防ぐ機能。セキュリティと引き換えに若干レイテンシを下げられます。
#電圧について
不確定情報多め。随時編集。
メモリOCで調整する基本的な電圧は以下の6つです。初期値も載せておきます。
上の3つはVRM、下の3つはDDR5モジュール上のPMICによって制御されます。
VDDCR_SOCはX3Dシリーズの焼損問題以降、最大1300mVに制限されています。また、下げることでFCLKの安定に繋がるようなので、最適な値を見つけてあげたいところ。経験上850mVまでは下げられます。
UCLKを上げるためにVDDCR_SOCが必要になるという意見もあるようです。UCLK=MCLK/2で動作させる場合はVDDCR_SOCを大幅に下げられるとのこと。
VDDP_DDRはVDDIO_MEM_S3から派生する電圧です。片方を調整するだけでもう片方が自動調整される場合もありますが、メーカー側で手を入れていない限りはそうならないので個別に手動で調整してあげる必要があります。VDDP_DDRのみ上げた場合の実際の挙動としてはVDDIOからdLDOを介して50mV程度低い電圧が出てきます。
VDDはVDDQ以上にすると良いです。10%ほどを目安に。
VDDQはクロックを上げたいときに盛ると良いです。
調整にはいくつか制限があります。
- VDDCR_SOCはVDDIO_MEM_S3+100mv以下
- VDDP_DDRはVDDIO_MEM_S3-100mV以下
またFCLKに関係する電圧のVDDG系、信号強度などに関する各種レジスタなどもあります。
#クロックについて
ここでは3つのクロックが関わってきます。
- FCLK (Infinity Fabric)
- UCLK (メモリコントローラ)
- MCLK (システムメモリ、DDR5モジュール)
AMD的にはこれらの比率がAuto:1:1になればOKって感じです。
UCLKはMCLKと同じ*5か半分*6のクロックで動作します。MCLKが5800MHz以下であれば同じクロックで動作するはずです。
MCLKはDDR5モジュールのクロックを示します。
FCLKは他2つとは独立してクロックを設定できるのですが、メモリコントローラとCPUの間などの経路にも関わるクロックのため高いほうがいいです。2000MHz程度が安定します。
Zen4においては2000MHz/3000MHz/3000MHz*7が最適とされています。
(なんか今は2133MHz/3200MHz/3200MHzが新たなスイートスポットだと主張する人が結構な数いるっぽいです、BIOS成熟の影響?歩留まり改善とかもあるのかもしれない)
ちなみに一切OCしないZen4公式設定の場合、3つは
1733MHz/2600MHz/2600MHz*8
となります。
クロックを上げれば上げるほどUCLKとMCLKを1:1で動作させるのが難しくなりますが、あえて1:2で高クロックを狙う場合はDDR5-8000あたりで釣り合いが取れるらしいです。
FCLKの追加情報と考察
上記の通りFCLKは他2つと独立しているため安定動作する範囲でOCすればいいという感じなのですが、FCLK:UCLK:MCLKが2:3:3になるように設定するとレイテンシが改善されるようです。3つのクロックが同期するタイミングが増えるからでしょうか。
2000/3000と2033/3000で比較すると2000の方が0.8ns程度有利でした。
FCLKのバグについて
DDR5-6000環境においてFCLKを2033MHzに設定するべきという話を聞いたことがある方もいると思いますが、現在は2000MHzの方が低レイテンシになります。
2022年11月時点ではFCLKにバグがあり、特定のクロックの組み合わせで50MT/sほど速くなる状態でした。すでに修正されています。
#タイミングについて
Zen4ではクロックより重要かも。スイートスポット以上で安定動作する設定を見つけるのが難しいので必然的にこっち詰めることになりますよね。
プライマリタイミング
XMP/EXPO対応であればその数値を基準にするのがいいです。tRASのみ複数の計算式があります。
セカンダリタイミング
ほとんどの数値は一定のルールに従って調整することになります。一番調整幅と影響が大きいのはtREFIとtRFCかと。
編集中……