メモリ設定流行って欲し過ぎてメモリ義人化VTuberでもやろうか考えたけど面倒臭くて辞めたはみでてるです、こんにちは
だらだら長く説明がすると「わからねぇ!」「めんどくせぇ!」ってなるので
UEFIの設定項目表と簡単な説明から
表はM11A(orM11G)+Samsung Bダイ用です。
M/Bやメモリの違いで多少の調整が必要です。
計算式が入ったExcelが欲しい方はこちらからダウンロードして下さい。
■超簡単な説明
手持ちのメモリ(XMP等)に合わせてクロックと1stタイミングを設定します。
参考①~⑤を見てわかる通りクロック違いでも2ndと3rdは殆どの項目が変わりません。
表を参考に下記の値を設定します。
[tWR,tRRD_L,tRRD_S,tWTR,tWTR_L,tWTR_S,tRTP,tFAW,tCKE,tRDRD~,tWRWR~]
クロックに合わせる設定は「tRFC・tREFI・tRDWR_sg・tRDWR_dg」だけです。
表にあるクロックならそのまま、なければ割合で計算して設定します。
tWCLを緩める場合は「tWRRD_sg・tWRRD_dg・TWRPRE」も一緒に変更します。
これだけでほぼベストなパフォーマンスを発揮します。
■M/B違いやメモリ的に表通りで厳しい場合
1Tが苦手なM/Bやメモリの場合は2Tにする。2TならtWCLは+1して偶数に
tRFCはサムBなら参考位は詰まるがメモリに合わせて倍位まで緩める
tWCLはM/Bによっては+2~+4する
tRDWRはM/Bによっては+1~+5する
_drと_ddが0で通らないM/BはAutoないしRajaを参考にする
2RANKメモリなら_drの設定が必要
メモリ4枚刺しなら_ddの設定が必要
■詳細説明前に
私が良く出す計算式(CL÷クロック×2000=実レイテンシ)の解説
例えばDDR4-4000CL17の場合、CLに17クロック必要なので1回辺りかかる時間(秒)は
17 ÷ (4,000,000,000 ÷ 2) = 0.0000000085s ・・・÷2はDDRで実周波数は半分
↓ 秒だとわかりにくいのでナノ秒(s→ms→μs→ns)に直す
17 ÷ (4,000,000,000 ÷ 2) × 1,000,000,000 = 8.5ns
↓ 省略して計算しやすく
17 ÷ 4000 × 2000 = 8.5ns
というものとなってます。
元はAmazonにてCenturyMicroのメモリ販売ページで
真のレイテンシとして紹介されていました。(今は消えちゃったっぽい?)
CLだけでなく色々なタイミングの実時間も同じように計算できます。
次に参考情報を出すので何となく見ておいて下さい。
代表的なシーケンス
コマンドと状態遷移図(SamsungのDDR4資料から)
真のレイテンシ表
※高クロック程詰まった設定が厳しくなるのは考慮してない単純な詰まり具合の表
■詳細説明
基本的にZ390+Samusung Bダイ向けですが他にも流用が効くように説明します。
<1st Timing>
CL CAS# Latency
[Read]発行~[Read]開始まで
実レイテンシでランク分けすると以下の通り
9.0ns(4000CL18、F4-3600C16D相当)は、並のB-Dieや選別HynixやMicronで常用可
8.5ns(4000CL17、F4-4000C17D相当)は、ある程度選別されたB-Dieで常用可
8.0ns(4000CL16、F4-4266C17Q相当)は、大分選別されたB-Dieで常用可
7.5ns(4000CL15、F4-4800C18D相当)は、超選別されたB-Dieで常用可
7.0ns(4000CL14、売ってないレベル)は、大分電圧盛るかつ冷却が必要
5.8ns以下位で競技設定
tRCD RAS# to CAS# Delay
[Active]発行~[Read/Write]可能まで
クロックを上げるとCLより先にtRCDやtRPが厳しくなる
そのためCL+1↑なXMP設定のメモリが多いです。
現状CL=tRCDで使用しているならならCL+1=tRCDだと
一つ上のクロック(4133→4200等)が使える可能性もあります。
競技設定やRyzen環境等でCLには余裕があるがクロックを上げられない場合
CL-1=tRCDという選択肢も出て来ます。
M/Bとメモリの組み合わせにより特定のCL+クロックだと不安定な場合も
(4000CL16は動くのに4000CL17は動かないなどもあります)
そのためCL=tRCDとCL=tRCD+1のどちらが最適か環境で変わります。
tRP RAS# Precharge
[Precharge]発行~[Active]可能まで
Intel環境はtRCDと設定項目が同じため同一値になる
Ryzen環境はtRCDと別項目なので少し有利
tRCDよりtRPの方が大きい値を要求される事が多いです。
tRAS RAS# active time
[Active]発行~[Read/Write]~[Precharge]可能まで
最適値は色々な説があります。
「tRCD + tCL + tRP ± 2 - オフセット分」(高過ぎ)だったり
「tRCD + tBL(8)」(低過ぎ)だったり図も実情と合いません。
AMD環境だと27以下に設定出来ますがIntel環境だと出来ません。
最近のIntel環境だと28にしてハイクロックで厳しい場合に段階的に
緩める感じで最適値を探るのが良いです。
CR Command Rate
コマンドの遅延(各コマンド発行で設定クロック分の遅延が付く)
基本1T、1Tがパフォーマンス向け、2Tや3Tは互換性やハイクロック向け
パーツ構成によっては1Tでも高クロックまで伸びるが
2Tでないと全く伸びない場合もあるので環境に合わせる。
M11Aだと高クロックは1TならTrace Centering=Enableが必須
<2nd Timing>
tWR Write Recovery Time
[Write]完了~[Precharge]可能まで
tRTP×2が良いらしいです。
基本12、tRTPが基本6なので
tRFC Refresh Cycle Time
リフレッシュ時間(メモリセルの充電時間)
数値が小さい程良い
Autoは350ns換算になっている。
例:805÷4600×2000=350ns
Auto÷2の値は大抵通るらしい。
tREFIクロック毎にtRFCクロックの間コマンドを受け付けず充電を行う
tRFCとtREFIは相互に影響しているためセットで調整が必要
高電圧だと充電が早く終わるので小さく出来る
同じ値でも高クロックだと実質充電時間が減るので大きくする必要がある。
コマンド受け付け可能な時間の割合「tREFI/(tREFI+tRFC)」は
3200CL14(XMP①)で95.81%
3200CL14(参考①)で98.59%
スーパータイトで99.67%
常用であれば参考あたりで十分かも?
tRRD_L RAS to RAS Delay L
[Active]~[Active] アクティブが同時に存在してはいけない期間(同バンクグループ)
基本6、余裕があれば4、高クロック記録狙いのみ7以上
3以下も設定出来るが恐らく4に補正されてそう?
tRRD_S RAS to RAS Delay S
[Active]~[Active] アクティブが同時に存在してはいけない期間(別バンクグループ)
基本4、高クロック記録狙いのみ5以上
3以下も設定出来るが恐らく4に補正されてそう?
tWTR Write to Read Delay
[Write]完了~[Read]可能まで
何処にも反映される様子はないので無設定でいい
tWTR_L Write to Read Delay L
[Write]完了~[Read]可能まで 同バンクグループ
基本8、競技電圧だと6行けるが常用電圧だと7が限度
tWRRD_sgがAutoの場合、tWTR_Lを元にtWRRD_sgが設定されるけどズレる
tWRRD_sgを設定してこちらは無設定でも問題ない
tWTR_S Write to Read Delay S
[Write]完了~[Read]可能まで 別バンクグループ
基本6、競技電圧だと1行けるが常用電圧だと2が限度
tWRRD_dgがAutoの場合、tWTR_Sを元にtWRRD_dgが設定されるけどズレる
tWRRD_dgを設定してこちらは無設定でも問題ない
tRTP Read to Precharge
[Read]完了~[Precharge]可能まで
基本は6、理論上4が可能らしいがM11Aだと無理、超高クロックなら緩める
8や12にしたらtWRも一緒に16や24に更新すること
TRDPREを設定してこちらは無設定でも問題ない
tFAW Four Activate Window
[Active]を4回発行する時間
基本16、一般的にtRRD_S×4といわれる(意味的にも正しいはず)
でもtRRD_S×3な12が通る
tWCL CAS Write Latency
[Write]発行~書込開始まで
Intel環境だと基本的に1Tは奇数で2Tは偶数を指定する。
CL-3前後が丁度いいという説もあるがクロックに依存してそう。
M9A@7700Kの時は3600以下で11が通ったがM11A@9900Kだと13以下は通らない
M11Aだと4600あたりまで13(または14)が可能、板により15~20まで緩める必要あり
<3rd Timing>
tREFI
リフレッシュ間隔(メモリセルの充電間隔)
数値が大きい程良い
Autoは秒換算で7800ns~8000ns程度になっている。
例:17973÷4600×2000=7,814ns
Auto×2の値は大抵通るらしい。
tRFCと相互に影響する(tRFC参照)
負荷テスト通るなら最大値の65535がいい。
ちなみに高クロック程同じ値でも実時間は短くなってしまう。
(同じ65535で4133→31.7μsの4800→27.3μs)
tCKE
CKE信号のチェック間隔
基本4、競技設定でも4、詰めて3
Intelだと1まで詰めても逆効果っぽい?
Ryzenだとよく見る設定は1
以降は、R→R、R→W、W→R、W→Wの4つのアクセスパターンと
_sg(同一チャンネル同バンクグループ用設定)
_dg(同一チャンネル別バンクグループ用設定)
_dr(同一チャンネル別ランク用設定)
_dd(同一チャンネル別DIMM用設定)の組み合わせ
tRDRD_sg 6 6基本、7は高クロックで厳しい場合のみ
tRDRD_dg 4 4固定、高クロック記録狙う時以外は緩めない
tRDWR_sg 11 環境依存かつクロック連動、8~16で試す
tRDWR_dg 11 M11Aだと3200=9~4266=11、板によっては+2位
tWRRD_sg 26 tWTR_L=tWRRD_sg-tWCL-6になる
tWRRD_dg 21 tWTR_S=tWRRD_dg-tWCL-6になる
tWRWR_sg 6 6基本、7は高クロックで厳しい場合のみ
tWRWR_dg 4 4固定、高クロック記録狙う時以外は緩めない
↓↓↓2DIMMでシングルランクはここから設定不要(=0でよい)↓↓↓
CoffeeLake-Rから?シングルランク2枚刺しだと不要になった模様
デュアルランクや4DIMMだと必要なので下記を参考に設定する
tRDRD_dr 6
tRDRD_dd 6
tRDWR_dr 11 tRDWR_sgとtRDWR_dgと同じ
tRDWR_dd 12 tRDWR_sgとtRDWR_dgと同じか+1
tWRRD_dr 8
tWRRD_dd 8
tWRWR_dr 8
tWRWR_dd 8
↑↑↑2DIMMでシングルランクはここまで設定不要(=0でよい)↑↑↑
TWRPRE
[Write]発行~[Precharge]可能まで
AutoはtWR+tWCL+4
AsRock Timing ConfiguratorのtWRはTWRPRE-tWCL-4を表示する
Raja氏のプロファイルだとtWRが10になるようにAuto-2で調整されている
競技設定でも10になるようAuto-2で調整されている
-2する事に何か意味があるのかもしれない?
TRDPRE
[Read]完了~[Precharge]可能まで
tRTPと同値を設定する。
tRTPと異なる場合はこちらが優先される
<RTL/IO-L>
M/Bとメモリとクロック(IMCも?)で最適な値が決まる。
49/50/6/6や50/51/7/7みたいに値が揃ってないとパフォーマンスが出ない事がある。
基本は自動調整でよいが、高クロック帯でメモリートレーニングが効かない場合は
UEFI>Dram Timing Settings>MFC FAST BOOT = Disable
UEFI>Dram Timing Settings>Memory Training Algorithms>
Round Trip Latency = Enable
で、トレーニングされるようになる事もある。
クロックで値が増えるため切り替わりに丁度被ったクロックで不安定な事が稀にある。
例:4500は安定、4533は不安定、4600は安定 など
■まとめ
正直詳細の部分まで把握してなくても設定を出せると思います。
知っていると設定が出しやすい場合もあるかな?とも思います。
あと、私は専門家ではないので間違っている部分もあるかもしれません。
この記事を読んだ人が自分で判断して参考にして頂ければ幸いです。
To be continued.
-
次の記事これより新しい記事はありません。
-
前の記事2019-03-17 20:18:19メモリOCで2ndタイミング以降を設定した場合の効果測定