近年の AMD Ryzen ブームのためか中古 CPU や市販品でも高性能な第1、第2世代 Ryzen CPU が安価に手に入りやすく市場にあふれています。
また、Intel CPU の供給不足などでメモリ価格も下落したことから大容量高品質なDRAMもかなり安くなっています。2年前おおよそ半値くらいになっています。
これを機に Ryzen 搭載自作PCに手を付けてみた人もおられるのではないでしようか。
一通り動作確認などをした後にやりたくなってくるのはやはりPCのハードウェア・チューニングです。 Ryzen CPU はどれもオーバークロックできるようアンロックされていますから、マザーボードさえ対応していれば誰でも比較的手頃に設定変更できます。一度は触ってみたくなると思います。
その前にやっておきたいのがメモリのオーバークロックとメモリタイミングを調整する作業。後述しますが、 Ryzen CPU はメモリの性能にかなり依存するところがあります。この設定を適切にすることで 2%〜10% のCPU性能向上ができます。
CPU のオーバークロック自体よりもリスクが少なくシステムの高速化を図れます。
今回は Ryzen オーナーが簡単にそのDDR4メモリをチューニングする方法をご紹介します。
第2世代 Ryzenまではかなりの効力
AMD Ryzen、特に第 2 世代(Zen+)までのRyzenシリーズの一番大きな欠点はメモリの相性問題です。これに対処するために AMD はメモリタイミングをかなりゆるくしています。様々なメモリモジュールに対応するためにかなりの性能を犠牲にしているのです。
特にメモリレイテンシーが Ryzen のパフォーマンスに大きく関わっています。ざっくりした説明になってしまいますが、 CCX (CPU complex) モジュール (CPU 4コアとCPUキャッシュのユニット) を繋いでいる AMD の「Infinity Fabric」は メモリクロックに依存しています。なのでメモリが早ければ早いほどコア同士の遅延が少なくなります。
第 3 世代 Ryzen、Zen 2 アーキテクチャでは大きく設計が見直され、CCX が一つに統合されました。この問題は大きく改善され、メモリによって CPU パフォーマンスが変わる振れ幅は小さくなりました。しかし Ryzen の性能をギリギリまで絞り出したりならばメモリタイミングをいじるのは依然として有効な手段です。
オーバークロックに最適なメモリ
メモリをオーバークロックする際、重要なのがメモリダイです。特に Samsung B-DIE(サムスン・ビー・ダイ)が品質が高く、これを搭載したメモリはオーバークロックに適しています。
どのメモリが Samsung B-DIE メモリモジュールを搭載しているのか知りたい場合は下記のサイトをご覧ください。ブランド、周波数、CASなどで絞り込むことができます。メモリ購入時の参考になります。
B-Die Finder – https://benzhaomin.github.io/bdiefinder/
XMPやAMPによるメモリタイミング最適化

XMP (eXtreme Memory Profile )とは、メーカーが推奨する最適なメモリタイミングや周波数やボルテージが入っているプリセットデータのことです。 JEDEC(半導体技術教会) が定めた SPD(Serial Presence Detect)の拡張版で Intel 社が提唱したメモリ拡張規格です。基本的には JEDEC のそれと代わりはありませんが、G.SkillやCorsairなどのメモリメーカーが調整しより正確なタイミングを設定したデータとなっています。
各メモリモジュールに XMP データをあらかじめメーカーがメモリモジュールに搭載されている EPROM に書きこまれており、ユーザはこのデータを利用し比較的安全にメーカーが発表している性能に近づけることができます。オーバークロック対応のマザーボードで XMP データを読み込むことで煩わしい調整やテスト作業を減らすことができます。昨今では AMD チップセット搭載のマザーボードでも XMP に対応していることがあります。 単純なリブランディングでASUS の「D.O.C.P」や MSI の「A-XMP」がそれにあたります。マザーボード・ベンダーのスペック表を確認してみましよう。

XMPプロファイルは、CAS、tRCD、tRP、tRAS の4つのデータしか入っていません。あとは SPD データに沿った数値となっています。さらにメモリ側にXMPプロファイルが書き込まれていたとしても、BIOS側がすべてのコントロールをします。なので、結局はマザーボードベンダーの調整にすべてがかかっていると言っても過言ではありません。
CORSAIR DDR4-4600MHz のような超高速なメモリの XMP を読み込んだとき、CPUのメモリコントローラやマザーボード、SOCによっては本来の性能を引き出せないことがあるので、そのメモリに見合った高性能なパーツを用意する必要性もあります。
一番良い方法はやはりマザーボードメーカーのサイトにアクセスしてそのメモリに対応しているのか確認することです。
AMP (AMD Memory Profile)は AMD 社が提唱している XMP の類似規格です。こちらの規格を採用したメモリは市販であまり見かけたことがありません。 AMD のチップセット対応のマザーボードではサポートしていることが多いです。裏を返せば、Intel チップセット搭載のマザーボードの場合は XMP しか対応していないことが多いので注意が必要です。
Intel製の CPU で XMP を使用してメモリをオーバークロックするとなぜか CPU の保証を受けられなくなったという事例が何件か海外であるようです。 CPU 自体の動作周波数をいじっているわけではないのに非常に不可解ではあります。Intel 公式の説明文でも免責事項に小文字でうっすく記載があります。
Intel – https://www.intel.co.jp/content/www/jp/ja/gaming/extreme-memory-profile-xmp.html
マニュアルでメモリタイミングを設定する
上記で述べたように XMP プロファイルでプリセットしてくれる数値は4つだけです。ほかのメモリタイミングはマザーボードベンダーによってまちまちです。
手動でメモリタイミングを設定することで XMP プリセットタイミングよりもよりもかなり切り詰めた設定が可能です。
準備
今回、2つのツールを使います。
1つ目は「DRAM Calculator for Ryzen」です。これは有志が作った各パーツ構成環境に合った最適な設定値をはじき出してくれるすぐれものです。
2つ目はメモリのモジュール情報やタイプなどを読み取る「Thaiphoon Burner」というツールです。
まず、「DRAM Calculator for Ryzen」をダウンロードします。

次に、「Thaiphoon Burner」をダウンロードします。
それぞれのファイルを展開し実行します。
Thaiphoon Burner でメモリのモジュール情報を読み取る
はじめに Thaiphoon Burner を管理者権限で実行し DRAM Calculator に入力するための情報をメモリモジュールから取得します。


「Read」を押して、メモリを読み込みます。

今回 F4-3600C19D という比較的メモリタイミングが遅いメモリを使います。
たくさん情報が表示されますが必要な項目は3つだけです。
メモリーモジュールのランクとDRAMコンポーネントの製造企業とコンデンサ密度です。
これらをメモ、あるいはスクリーンショットをとった後に「DRAM Calculator for Ryzen」を起動します。
DRAM Calculator for Ryzen で最適値を算出する

・Processor :こちらにRyzenのどの世代のCPUを搭載しているのか入力します。
・Memory Type :製造企業とDIEタイプを選びます。私の場合は Hynix C-die となりますので Hynix CJR を選びました。
・Profile version:ここはV1のままで良いです。
・Memory Rank:先ほど調べた値、ORGANAIZATION下にある数値を選びます。
・Frequency (MT/s):メモリ(周波数)スピードを入力します。後でいじくりまわしたい場合は主にここの値を変更して実験しましよう。
・BCLK:ベースクロックを設定します。マザーボード、CPUやPCIに接続されたデバイスに影響を与えます。よくわからない場合は規定値で大丈夫です。
・DIMM Modules:はメモリスロットに挿入されたメモリの数÷2を選択します。つまり、2つメモリを刺している場合は1、4つ刺している場合は2です。
・Motherboard:マザーボードのチップセットを選びます。
これらすべての値を入力、選択したら一度スクリーンショットかメモをとりましよう。こうすることであとでまた入力したいときに役に立ちます。
次に XMP(eXtream Memory Profile)を読み込みます。下の「R-XMP」ボタンを押下します。
すると、左側の項目が埋まります。
これが終えたら、「Calculate SAFE」(安全値)か「Calculate FAST」(高速値)いずれかを選びましよう。「Calculate EXTREME」(究極値)はまだ設計段階なので利用できません。

右側に出力された赤枠のデータを参考にメモリタイミングを入力していくことになります。
もし低電圧に設定したい場合は「Calculate SAFE」を選びましよう。私は「Calculate FAST」で運用していますが、今のところなにも不具合は出ていません。
これを終えたら、またメモかスマホでスナップショットをとるかして BIOS 画面に移動しましよう。
BIOS(UEFI)でメモリタイミングを設定する
マザーボードは Asus 社製 B450 Plus という型です。
「Ai Tweaker」という項目の「DRAM Timing Control」を選びます。
マザーボードベンダーによって差異はありますがオーバークロックに対応しているマザーボードでしたら大体こんな感じです。

先程 Ryzen Caucilator で算出された数値を入力していきます。
大文字小文字や配列の違いがあり、最初戸惑うかと思いますが見比べながら慎重に数値を入れていきましよう。

最後に必ずボルテージを忘れずに設定してください。上げすぎるとメモリが高温になってしまい、システムが不安定化してしまいます。 Ryzen Caucilator で算出した数値を元に入力してください。 個人的には 1.4V を超えないくらいが限度だと思います。
限界まで引き上げたい場合、Corsiar や G.Skill 製品のような高品質なヒートシンクを装備したメモリを使うことをおすすめします。

わからないものがあれば Auto のままで大丈夫です。
Memtest86 で安定性を確認
最後に Memtest86 などで、システムの不安定化が起きていないか確認しましよう。
コメント
Самый дешёвый шестиядерник стал ещё лучше: AMD Ryzen 5 1600 теперь построен на Zen+ (неопр.) . 3DNews Daily Digital Digest (18 декабря 2019).