概要
近年のAMD Ryzenブームのためか中古で高性能な第1、第2世代Ryzen CPUが安価に手に入りやすくなっています。
またIntel CPUの供給不足などでメモリ価格も下落したことから大容量高品質なDRAMもかなり安くなっています。2年前のおおよそ半値くらいに値下げしているショップも見かけます。これを機にRyzen搭載の自作PCに手を付けてみた人も多いと思います。
OSをインストールし一通り動作確認などをした後にやりたくなってくるのはやはりPCのハードウェア・チューニング。Ryzen CPUはどれもアンロックされているのでマザーボードさえ対応していれば誰でも比較的手頃にCPUのオーバークロックが行えます。
その前にやっておきたいのがメモリのオーバークロックとメモリタイミングを調整する作業。後述しますがRyzen CPU搭載のシステムの性能はメモリの性能にかなり依存するところがあります。この設定を適切にすることで 2%〜10% のCPU性能向上することが期待できます。
CPU自体のオーバークロックよりもリスクが少なくシステムの高速化を図れるため、OCをしてCPUの寿命を縮めたくないという人にもおすすめです。
今回はRyzenでメモリタイミングをチューニングする意義と用語の解説、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による設定について
高性能なメモリを購入するとメモリに下のようなステッカーが貼られていることが多いです。ここにはメモリメーカーが適切だと検証したメモリタイミングやメモリプロファイルが記されています。ここでは3行目書かれているIntel XMP 2.0 Readyの意味を解説します。一番カンタンにメモリタイミングを変更したい場合はこのXMPを利用するのが良いでしよう。
XMP (eXtreme Memory Profile )とは、メーカーが推奨する最適なメモリタイミングや周波数やボルテージが入っているプリセットデータのことです。JEDEC(半導体技術教会)が定めたSPD(Serial Presence Detect)の拡張版でIntel 社が提唱したメモリ拡張規格です。基本的にはJEDECのそれと大きく変わりませんが、G.SkillやCorsairなどのメモリメーカーが調整したより正確なタイミングを設定したデータとなっています。
AMP (AMD Memory Profile)はAMD社が提唱しているXMPの類似規格です。こちらの規格を採用したメモリは市販であまり見かけたことがありません。AMDのチップセット対応のマザーボードではAMPとXMP両方をサポートしていることが多いですが、Intelチップセット搭載のマザーボードの場合はXMPしか対応していないことが多いので注意が必要です。
あらかじめメーカーはメモリモジュールに搭載されているEPROMにXMPあるいはAMPデータを書き込んでおり、ユーザはこのデータを使って比較的安全にメーカーが発表している性能に近づけることができます。オーバークロック対応のマザーボードでXMPデータを読み込むことで煩わしい調整やテスト作業を減らすことができます。単純なリブランディングでASUSの「D.O.C.P」やMSIの「A-XMP」がそれにあたります。マザーボード・ベンダーのスペック表を確認してみましよう。
重要なのはメモリだけではない
XMPプロファイルは CAS、tRCD、tRP、tRAS の4つのデータしか入っていません。あとはSPDデータに沿った数値となっています。さらにメモリ側にXMPプロファイルが書き込まれていたとしてもBIOS側がすべてのコントロールをします。なので結局はASUSやMSIなどのマザーボード製造会社の調整にすべてがかかっていると言っても過言ではありません。
CORSAIR DDR4-4600MHzのような超高速なメモリのXMPを読み込んだときCPUのメモリコントローラやマザーボード、SOCによってはメモリ本来の性能を引き出せないことがあります。XMPの設定を適用しただけなのにOSが起動しなくなった、ということが起こってしまいます。このため高性能なメモリにはそれに見合った高性能なパーツでシステムを構成する必要もあります。
一番良い方法はやはりマザーボードメーカーのサイトにアクセスしてそのメモリに対応しているのか確認することです。まずはCPUを選んでマザーボードを選ぶ、そこからマザーボードの仕様書を見ながらパーツの購入計画をたてましよう。
余談になりますがIntel製のCPUでXMPを使用してメモリをオーバークロックするとなぜかCPUの保証を受けられなくなったという事例が何件か海外であるようです。XMPはIntel自身が作った規格な上、CPU自体の動作周波数をいじっているわけではないのに非常に不可解ではあります。Intel公式の説明文でも免責事項に小文字でうっすく記載があります。 サポートセンターにCPUが壊れたと電話すると真っ先にメモリ設定をいじってないか聞かれるそうですが「なにそれ?」と言うとスルーしてくれるそうなので弄ったとか言わないのが吉です。
Intel – https://www.intel.co.jp/content/www/jp/ja/gaming/extreme-memory-profile-xmp.html
マニュアルでメモリタイミングを設定する
さて、説明が長くなってしまいましたがここからはマニュアルでメモリタイミングを設定する方法を説明させていただきます。上記で述べたようにXMPでセットしてくれる数値は4つだけです。ほかのメモリタイミングはマザーボードベンダーによってまちまちです。手動でメモリタイミングを設定することでXMPのタイミングよりもかなり切り詰めた設定が可能です。RYZENの性能を限界まで絞り出しましよう。
準備
必要なのは以下の2つのツールのみです。
1つ目は「DRAM Calculator for Ryzen」です。これは有志が作った各パーツ構成環境に合った最適な設定値をはじき出してくれるすぐれものです。
2つ目はメモリのモジュール情報やタイプなどを読み取る「Thaiphoon Burner」というツールです。
- 「DRAM Calculator for Ryzen」
https://www.techpowerup.com/download/ryzen-dram-calculator/ - 「Thaiphoon Burner」
http://www.softnology.biz/files.html
それぞれのファイルをダウンロードし展開します。
Thaiphoon Burner でメモリのモジュール情報を読み取る
はじめに Thaiphoon Burner を管理者権限で実行し DRAM Calculator に入力するための情報をメモリモジュールから取得します。
「Read」を押して、メモリを読み込みます。
今回F4-3600C19Dという比較的メモリタイミングが遅いメモリを使います。
たくさん情報が表示されますが必要な項目は3つだけです。
メモリーモジュールのランクとDRAMコンポーネントの製造企業とコンデンサ密度です。
これらをメモ、あるいはスクリーンショットをとった後に「DRAM Calculator for Ryzen」を起動します。
DRAM Calculator for Ryzen で最適値を算出する
DRAM Calculatorにユーザが入力する値は以下の8つです。上の画像では左上の8つの項目に当たります。
- 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」ボタンを押下します。すると左側の項目が埋まります。(バージョン1.7.1からR-XMPボタンが削除されたためこの作業は必要なくなりました。)
これが終えたら「Calculate SAFE」(安全値)か「Calculate FAST」(高速値)いずれかを選びましよう。「Calculate EXTREME」(究極値)はまだ設計段階なので利用できません。(バージョン1.7.1で廃止されました)
私は「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).