画像やリンクが無効になっている可能性もあるのでご了承下さい。
はじめに
Zen2 な Ryzen を触るまでメモリのオーバークロックに関しては知識皆無だった物の、今現在ではある程度自分でチューニング出来る様になってきた。
色々調べているうちにメモリの動作タイミングには関連性のある項目があり、そのセオリーに従ってチューニングしていくと幾らか楽になるし安定もしてくれる。バランスの良いチューニングができると言う事が分かった。
そんなわけで筆者なりのメモリチューニング方法を書いてみようと思う。
各パラメータの役割だとかそういう事は理解していないのでそこはご了承を。
また、記事にする上で手持ちの Samsung B-Die と Micron R-Die を弄った時に調べた情報が多いので、やや隔たった内容になるかもしれないがご容赦を。
ファーストタイミング
tCL
CAS Latency と呼ばれる物で、恐らくメモリといえば動作クロックの次に参照される位には大事なところ。
設定値は任意。CL14~22
と幅広く設定される。
GearDownMode
が Enable の場合、tCL
は偶数値に強制される。
DDR4-3600~3800
“ では CL16
を狙うのが無難な所
tRCDRD
tRCDRD = tCL + 0~2 の設定がスタンダード
Micron チップの場合、tRCDRD = tCL + 2~4 とした方が良い場合もある。
tRCDWR
tRCDWR = tCL + 0~2 の設定がスタンダード
tRP
tRP = tCL + 0~2 の設定がスタンダード
tRAS
tRAS = tCL + tRCDRD + 0~2
tCR
1T
か 2T
の 2 択となる。
後述する GearDownMode
が Enable
でこの項目は無視されるが一応 1T
を選んでおく。
サブタイミング
tRC
tRC = tRP + tRAS + 0~2
tRRDS
tRRDS は任意。4 でキツめ、6 以上は普通に通ることが多い
tRRDL
tRRDL は任意。6 でキツめ、8 以上は普通に通ることが多い
tFAW
tFAW = tRRDS x 4
例えば tRRDS = 4
の時は tFAW = 4 x 4 = 16
になる。
Micron チップでは tFAW = tRRDS x8~10 くらいに緩めないと起動すらしない場合もある。
tWTRS
tWTRS は任意。4 でキツめ、6 以上は普通に通ることが多い
tWTRL
tWTRL は任意。6 でキツめ、8 で少しキツい。10 以上は普通に通ることが多い
tWR
tWR は任意。12 が多く使われる。緩めるときは 2 ずつ加算する。
tRFC
tRFC = tRC x n となり、Samsung B-Die の場合 n は 6 が理想。キツければ 7 を代入して計算する。
他のメモリチップの場合でも tRC の n 倍が通る箇所を模索すると吉。
他のチップの場合、クロック数直ではなく時間から逆算する形でクロック数を設定するとチューニングしやすい。
最初は 350ns
程度から 300ns
前後を目標に詰めていく感じに。
以下の式で tRFC
を求める。
tRFC = 時間 [ns] / ( 1 / MCLK ) / 1000
また、設定値を小さくするほど短時間でリフレッシュしなければならなくなる為、VDIMM
の要求電圧も上がってくるから要注意。
tRFC2 / tRFC4
Ryzen では使用されない項目なので適当で良いが、念のため以下の様に計算しておくと気持ちが良い。
tRFC2 = tRFC / 1.346
tRFC4 = tRFC2 / 1.625
tRDRDSCL
tRDRDSCL = 4~5
選別された Samsung B-die では tRDRDSCL = 2 まで通ることもあるのでチューニング終盤で詰めて見るのも良い。
tWRWRSCL
tWRWRSCL = tRDRDSCL
tRDRDSCL
と tWRWRSCL
は 5 よりも大きな値にするとメモリの帯域が落ちてくるので、5 が最終防衛ラインみたいなところがある。
tCWL
tCWL = tCL
GearDownMode
が Enable
だと tCL
と同値に強制されるので設定する意味が無くなるが入力だけはしておこう。
tRTP
tRTP = tWR / 2
tRDWR
tRDWR は 8 でキツめ。10 以上で通ることが多い
tWRRD
tWRRD は 2 でキツめ。4 以上なら通ることが多い
tRDRDSC
tRDRDSC = 1 がメジャー
※ Single-Rank 4 枚か Dual-Rank 2 枚以上の構成で有効な項目
tRDRDSD
tRDRDSD = 4~5 がメジャー
※ Single-Rank 4 枚か Dual-Rank 2 枚以上の構成で有効な項目
tRDRDDD
tRDRDDD = tRDRDSD
※ Single-Rank 4 枚か Dual-Rank 2 枚以上の構成で有効な項目
tWRWRSC
tWRWRSC = 1 がメジャー
※ Single-Rank 4 枚か Dual-Rank 2 枚以上の構成で有効な項目
tWRWRSD
tWRWRSD = 6~7 がメジャー
※ Single-Rank 4 枚か Dual-Rank 2 枚以上の構成で有効な項目
tWRWRDD
tWRWRDD = tWRWRSD
※ Single-Rank 4 枚か Dual-Rank 2 枚以上の構成で有効な項目
tCKE
tCKE は PowerDown
が Disable
だと無意味になるが、適当に 1
などと入れておく。
動作モード
GearDownMode
GearDownMode = Enable
で安定した動作が得られるが tCR
の設定値が無視される事と、tCL が偶数値に強制され、tCWL = tCL
が強制される。高クロックを目指す場合は Enable
とした方が良い。
GearDownMode = Disable
で tCR
の設定値が生きるので 1T
とすると高速化を図れる。しかし、高クロックになるほど安定した動作が非常に難しくなる。
PowerDownEnable
PowerDownEnable = Disable
メモリをオーバークロックするのであれば省電力機能である PowerDownEnable
は Disable
にしておこう。これにより tCKE
の設定値は無意味になる。
電圧や抵抗値など
VDIMM
や VSoC
と言った電圧は Ryzen DRAM Calculator に示される「Rec.
」(いわゆるオススメ)の項を設定するのが無難。
ProcODT
等の抵抗値は最適値を探す方法がとても 面倒
臭いので、これまた Ryzen DRAM Calculator 任せにしているが問題が起きたことも無いので大丈夫だろうと思われる。
設定例
本記事で書いたセオリー通りなチューニングを行った結果が上記スクリーンショットの通りになる。
これ以上設定値を下げると起動しなくなるので、筆者が使用するメモリの限界まで詰め切った状態だ。
設定後の安定性確認
いわゆるメモリのストレステストが必要になってくる。
これは以前書いた記事を参照して頂ければ幸い。
おわりに
メモリを詰めるときや緩める時は必ず連動する項目も合わせて調整して上げることでバランスの取れたセッティングになると思われる。
もちろん型破りにしたチューニングも良いだろうけど最初はセオリー通りにやっていくことをオススメしたい。
また、メモリモジュールに採用されているチップ次第では設定の通る通らないの値が変わってくるので、そこは根気よく最適値を探していこう。
参考リンク
以下、筆者がメモリチューニングを行う為に参照したサイトをペタリ。
- 2021/07/1118:50
tRFC4 の計算式が
tRFC / 1.625
と間違っていた為、tRFC2 / 1.625
と正しい式に修正を行った。 - 2021/08/0822:20
tCL
にGearDownMode Enable
時の説明を補足。tRDRDSCL
の設定範囲を修正。ともに補足を追記。
記事名の変更。 - 2023/03/2916:45
記事体裁の調整。
各項目の見直しと、一部 Micron R-Die を元にした情報を追記。
「÷」の記号がなんかアレだったので、スラッシュに変更。 - 2023/03/3017:45
tRFC の時間計算を行う式に間違いがあったので修正した。
- 2023/08/1323:50
誤字、体裁修正。
コメント