パーツの選び方 メモリの知識

AMD Ryzenのメモリ設定(FCLK:UCLK:MCLK)をさぐる

今回は、AMD Ryzenのメモリクロック設定の詳細を見ていきます。
基本的にはAMD EXPO対応のものはBIOSにてEXPOをONにすれば、メモリスペックでの設定はOKですが、今回は一歩進んで、高パフォーマンスを確保する「1:1モード」についての解説になります。

この記事ではDDR5-6400にて「1:1モード」に設定する方法を紹介しています。

販売されているメモリの「DDR5-6000」や「DDR5-8000」などのスペックはメモリクロックを表していて、この数値が高いほどメモリは高速に動作します。しかしながら、内部では「Infinity Fabricクロック(FCLK)」と「メモリコントローラークロック(UCLK)」が関係していて、これらは通常は自動で設定されます。この2つのクロックがどのように設定されるかを見ることで、メモリのパフォーマンスの最適化を行ってみましょう。

メモリのパフォーマンスに関する設定として、Ryzen 5000シリーズまでのDDR4環境ではInfinity Fabricクロック(FCLK):メモリコントローラークロック(UCLK):メモリクロック(MCLK)が「1:1:1」の状態が推奨されていました。ですが、DDR5では「AUTO:1:1」が推奨されています。

DDR5世代ではInfinity Fabricの挙動がちょっとわかりにくいので検証しました。まずは実際の挙動から見てください。

AUTO設定で各クロックはどうなるか?

実機でテストしてみた結果です。以下はそれぞれクロック別のメモリを使っているのではなく、クロックに余裕のあるDDR5-8000メモリで、メモリ設定を変更してテストしています。

テスト環境
CPUAMD Ryzen 5 9600X
マザーボードASUS TUF GAMING X670E-PLUS (BIOS:3208)
メモリOCMEMORY OCM8000CL34D-32GBHR

Infinity FabricのクロックはAMD製のツール、AMD Ryzen Masterにより確認できます。

Ryzen Masterの「Memory Control」の項目で「Memory Clock」(MCLK)、「U Clock」(UCLK)、「Fabric Clock」(FCLK)の確認ができます。

FCLK設定はデフォルトのAUTOのままで、BIOSにてメモリクロックを変更していくと以下のような結果となります。

Memory Frequency 設定MCLKUCLK DIV1 MODEUCLKFCLK Frequency 設定FCLK
DDR5-48002400AUTO2400AUTO1800
DDR5-52002600AUTO2600AUTO1733
DDR5-56002800AUTO1400AUTO1750
DDR5-60003000AUTO3000AUTO2000
DDR5-62003100AUTO1550AUTO2000
DDR5-64003200AUTO1600AUTO2000
DDR5-72003600AUTO1800AUTO2000
DDR5-80004000AUTO2000AUTO2000

MCLKとUCLKを見てください。この数値が「UCKL=MCLK」同じであれば「1:1モード」となります。
そもそも「1:1モード」という言い方はDDR4世代を引きずっていますが、「UCKL=MCLK」や「メモリコントローラークロック=メモリクロック」と言うより「1:1モード」と言ったほうがシンプルなので、これで統一して記載します。

この結果でわかることは、AUTO設定で「UCKL=MCLK」になるのは、DDR5-6000までで、DDR5-6200設定では「UCKL=MCLK/2」となり、「1:2モード」となっています。「1:2モード」はメモリコントローラのクロックがメモリクロックの半分になってしまう、ということです。そしてメモリクロックコントローラーのクロックが下がればパフォーマンスが落ちてしまいます。

メモリクロックは「1:1モード」で使えるほうがいいということで、前回の記事「ある意味最強、DDR5-6000低レイテンシーモデルとは?」を書いています。

なぜかDDR5-5600だけ、UCLKが半分になってしまいました。このマザー独自の問題かBIOSのバージョンの問題かもしれません。

またDDR5-6000より下のクロックではFLCKは2000以下のクロックで自動調整されています。そしてDDR5-6000以上は一定の2000となっています。DDR4世代とは異なり、MCLKとは非同期であることがわかります。なお、クロックの挙動はメモリのランク(チップ実装)によっても違ってくるので、必ずしもこのテスト結果がすべてではありません。

「1:1モード」でのメモリクロックの限界値は?

デフォルト設定ではDDR5-6000までが「1:1」となりましたが、次に「1:1モード」でどこまでメモリクロックが伸ばせるかのテストです。UCLKはデフォルトではAUTO設定となっていますが、BIOSで強制的に「1:1」設定を行うことでが可能です。

設定はBIOSの「Memory Timings」の「UCLK DIV1 MODE」で行います。ASUS TUF GAMING X670 PLUSでは、この設定項目はBIOSメニューの中でも結構奥にあり、あまり設定をいじることは想定していないように思えます。

「UCLK DIV1 MODE」では3つの選択があり、「AUTO」(デフォルト値)、「UCKL=MCLK」(1:1モード)、「UCKL=MCLK/2」(1:2モード)となります。

「UCKL=MCLK」に設定してメモリクロックを上げていきます。DDR5-6000までは「1:1」で動作するのは「AUTO」設定で確認できているので、DDR5-6000から始めます。

Memory Frequency 設定MCLKUCLK DIV1 MODEUCLKFCLK Frequency 設定動作
DDR5-60003000UCKL=MCLK3000AUTO起動
DDR5-62003100UCKL=MCLK3100AUTO起動
DDR5-64003200UCKL=MCLK3200AUTO起動
DDR5-66003300UCKL=MCLK3300AUTO起動せず

今回のテスト環境ではDDR5-6400まで動作して、DDR5-6600は不安定な動作となりました。ですが、AUTOでは「1:2モード」に切り替わってしまうDDR5-6200やDDR5-6400は「1:1モード」でも動作しました。
製品的にはDDR5-6200メモリはあまり見かけないので、DDR5-6400までが「1:1モード」で使えるメモリということになります。

FCLKを上げてみる

次にFCLKを手動設定でアップして見たテストです。
BIOSで「FCLK Frequency」にて設定します。デフォルトでは「AUTO」になっています。

AUTO設定ではFCLKは2000が最高値の設定でした。これを2000から上に上げていきます。DDR5-6000とDDR5-6400でテストしてみました。

Memory Frequency 設定MCLKUCLK DIV1 MODEUCLKFCLK Frequency 設定動作
DDR5-60003000AUTO30002133起動
DDR5-60003000AUTO30002167起動
DDR5-60003000AUTO30002200起動するが安定しない
DDR5-60003000AUTO30002233起動せず
DDR5-64003200UCKL=MCLK32002133起動
DDR5-64003200UCKL=MCLK32002167起動
DDR5-64003200UCKL=MCLK32002200起動するが安定しない
DDR5-64003200UCKL=MCLK32002233起動せず

FCLKは「2133」、「2167」までは動作しましたが、「2200」~は安定動作しませんでした。少しでもチューンしたい場合は、この設定を試してみてもいいでしょう。ですがAUTOでも「2000」で設定されるので、問題なく適正クロックが設定されていると言えるでしょう。

見えてきたAMD Ryzen 9000シリーズでのメモリベスト設定

これらの結果から、「1:1モード」での設定はDDR5-6400、FCLK2167が各クロックの最高値セッティングとなります。DDR5-6000やDDR5-6400の低レイテンシーモデルで設定を見直すことで、DDR5-8000などハイクロックモデルに迫るパフォーマンスが得られる可能性があります。

G.SkillのAMD向けDDR5製品ラインナップではDDR5-6400の上はDDR5-7200となり、INTELモデルで存在するDDR5-6600やDDR5-6800はありません。これは「1:2モード」動作ではDDR5-7200以上でないと意味がない(つまりDDR5-6400よりパフォーマンスが得られない)ということだと思っています。メモリクロックを上げればパフォーマンスが右肩上がりとなるのではなく、UCLKが半分になるMCLK付近でパフォーマンスの谷間が存在するということです。

設定をおこなえば、DDR5-6400メモリはパフォーマンスを発揮しますが、AUTO設定では、「1:2モード」で起動するので、「1:1モード」設定をしないと、DDR5-6000よりパフォーマンスが落ちる可能性が高いです。DDR5-6400メモリを使用されていて、「UCLK DIV1 MODE」をまだ設定されてない方は、試してみてください。

ただしこれらは細かなチューニングになりますので、どのクロックでベストパフォーマンスが得られるかは、それぞれの環境や、使用の用途で変わってきます。答えは一つではありません。各自お試しいただければと思います。

DDR5-6000:特別な設定必要なし。低レイテンシーモデルでパフォーマンスアップ
DDR5-6400:設定が必要だが、「1:1モード」で使える最大メモリクロック
DDR5-8000:メモリパフォーマンスは高いが、対応マザーボードが限られる

なお以上はRyzen 5 9600Xでのテスト結果です。APU(Ryzen 8000シリーズ)は今回テストしたメモリ周りのクロック耐性はもう少し高いという報告も多いので、詰める場合の設定値はもう少し探ってみてもいいかと思います。この設定はメモリ周りのクロックの数値上でのことですので、実際は用途に応じてベンチマークテストをして、設定の効果と動作の安定度を確かめて運用してください。

【注意】
今回のAUTO設定以外のセッティングは、マザーボードの耐性、CPUのメモリ耐性に左右されます。これらの設定は、いわゆるオーバークロックと同じ範疇で、動作する・しないは保証対象外であり、自己責任で行ってください。あらかじめ断っておきますが「DDR5-6400で1:1は必ず動きますか?」という類のご質問にはお答えできませんので、ご了承ください。

-パーツの選び方, メモリの知識

Amazon プライム対象