Author Archives: Overclock Odyssey

How to do Stable DDR4 Tuning on Ryzen: Finding the Appropriate Values of the Termination Resistance (Rev. 2)

If you want to overclock DRAMs or reduce DRAM timings from XMP further, it is known that you can use Ryzen DRAM Calculator released by 1usmus. This calculates some values very easily, including detailed items. However, it is largely depends on your individual environment (system configuration) that those values are appropriate or not. Therefore, you just only enter values calculated by the calculator, you often get failure to start your system or instability on your daily operation. Thus, the calculator only provides a draft, and based on that, you should specify the optimal values of each item according to your own environment. It can be said that that is appropriate usage of Ryzen DRAM Calculator.

XMPからさらにDRAMをオーバークロックしたりDRAMタイミングを減少させる場合,1usmus氏によってリリースされているRyzen DRAM Calculatorを利用できることが知られています.これは細かな項目を含めて非常に簡単にいくつかの値を算出してくれますが,これらの項目の値が適切であるか否かは,個別の環境(システム構成)に大きく依存しています.したがって,ただ計算機から算出された値を入力しただけでは,システムの起動に失敗したり日常動作が不安定になることがしばしばあります.つまり,計算機はあくまでたたき台を提示するものであって,それを元に自分の個別の環境に合わせて各項目の適切な値を特定していく必要があります.それが,Ryzen DRAM Calculatorの適切な使用法だと言えます.

On this article, I will instruction a method for stable DRAM tuning, especially finding the optimal values of termination resistances, on Ryzen. Termination resistances are used for impedance matching that are ratio of current to voltage. If there are no termination resistances or inadequate termination resistances, impedances among the side of signal output, the side of signal input, and of the transmission passes (called “characteristic impedance”) become inconsistent. In this case, the transmitted signal is reflected at the end of the circuit, and the power which transmits the signal is attenuated (similar to a water wave bouncing off a wall). That is recognized that noises which degrade the signal waveform, and this can be fatal in the exchange of high-frequency signals, causing read/write errors. Because of that, tuning termination resistances to reduce noise is important when you overclock DRAMs.

今回は,Ryzenにおける安定したメモリの調整方法,特に,適切な終端抵抗の値を調べる方法を説明します.終端抵抗は,インピーダンス(電流と電圧の比)を整合させるためのものです.終端抵抗がない,あるいは不適切な終端抵抗になっている場合,信号の発信側と受信側,そして伝送路のインピーダンス(これを特性インピーダンスといいます)が不整合になります.この場合,送信された信号は回路の末端で反射し,信号を送信する電力が減衰します(壁で跳ね返る水の波のようなものです).それは信号波形を劣化させるノイズとして認識され,これは高周波信号のやりとりにおいては致命的となって読み書きのエラーを生じさせます.このため,ノイズを抑えるための終端抵抗の調整は,DRAMのオーバークロックにおいて重要になります.


Things to Prepare

memtest86 (bootable from an USB stick)

https://www.memtest86.com/

DRAM Calculator for Ryzen v1.7.0 by 1usmus (latest version as of February 5th, 2020)

https://www.techpowerup.com/download/ryzen-dram-calculator/

*Thank you, 1usmus!


Equipment Used for the Tests for This Article

  • Ryzen 9 3950X (core clock 4100 MHz)
  • F4-3600C14Q-32GTZN (use only 2 DRAMs)
  • X570 ROG Crosshair VIII HERO Wi-Fi (AGESA 1.0.0.4)

STEP1. Set Some Basic Items

Set target values, memory frequency, DRAM timings, DRAM voltage, CPU SoC voltage, VTT DDR voltage, and BGS (BankGroupSwap), for daily-use from UEFI.

UEFIから,DRAMクロック,DRAMタイミング,DRAM電圧,CPU SoC電圧,VTT DDR電圧,BGS(BankGroupSwap)を,常用の目標値に設定します.

memory frequency… For Zen2, the optimal memory frequency is 3733 MHz or 3800 MHz (https://ocod.home.blog/2019/12/08/why-tuning-ddr4-is-important-for-ryzen/).

メモリクロック… Zen2の場合,最適なメモリクロックは3733 MHzまたは3800 MHzです https://ocod.home.blog/2019/12/08/why-tuning-ddr4-is-important-for-ryzen/

If fClk does not synchronize automatically with mClk, you should set manually fClk to 1867 MHz or 1900 MHz from UEFI.

fClkが自動でmClkと自動的に同期しない場合,UEFIから手動で1867 MHzまたは1900 MHzに設定します.

DRAM timings… ( https://ocod.home.blog/2020/02/29/what-are-dram-timings-some-knowledge-about-operation-of-sdram-and-a-brief-memorandum-about-dram-timings/ )

DRAMタイミング… ( https://ocod.home.blog/2020/02/29/what-are-dram-timings-some-knowledge-about-operation-of-sdram-and-a-brief-memorandum-about-dram-timings/

If Gear Down Mode is enabled, you cannot set an odd value of tCL, so turn it off. And Power Down Mode is the function that puts the DRAM in sleep mode when your system is inactive. If you want to use the full performance of the DRAM, turn it off.

Gear Down Modeが有効になっていると奇数の値のtCLを設定することができないので,これをオフにします.また,Power Down Modeは非アクティブ時にDRAMを休止状態にする機能ですが,DRAMの性能をフルで使いたい場合,これをオフにします.

DRAM voltage… If you use Samsung B-Die memories, up to 1.5 V or slightly higher for daily-use.

DRAM電圧… Samsung B-dieを使用する場合,常用では1.5 Vかそれよりわずかに高い値を上限とします.

VTT DDR voltage… It means termination voltage. If impedances among the side of signal output, the side of signal input, and a characteristic impedance are matched, termination voltage will be half of DRAM voltage ( = voltage applied a side of signal output). That is because a termination voltage is affected by two resistances, one is the resistance applied to the side of signal output and the other is the termination resistance. When impedances are matched, resistance applied to the side of signal output and termination resistance will have same value generally, so the optimal termination voltage become half of DRAM voltage. As I’ll do below, our purpose in this article is find optimal termination resistance. When you want to find optimal value of a variable, you should fix values of another variables which effect that variable. So you should set VTT DDR voltage half of DRAM Voltage.

VTT DDR電圧… これは終端電圧を意味します.信号出力側,信号入力側,特性インピーダンスのインピーダンスが一致している場合,終端電圧はDRAM電圧(=信号出力側の電圧)の半分になります.これは終端電圧が2つの抵抗の影響を受けるためです.1つは信号出力側の抵抗で,もう1つは終端抵抗です.インピーダンスが一致すると,信号出力側に適用される抵抗と終端抵抗は,一般的に同じ値になるため,最適な終端電圧はDRAM電圧の半分になります.以下で行うように,ここでの目的は最適な終端抵抗を見つけることです.ある変数の最適値を見つけたいときには,その変数に影響を与える他の変数の値を固定する必要があります.したがって,DRAM電圧の半分のVTT DDRを設定します.

CPU SoC voltage… It is applied to memory controller on the CPU. Up to 1.1 V or slightly higher for daily-use.

CPU SoC電圧… これはCPUのメモリコントローラーに適用されます.常用では1.1 Vかそれよりわずかに高い値を上限とします.

BGS… BGS is a function to assign applications to physical areas of memory modules. When this is turned on, it brings benefit at running synthetic test apps and disadvantage at running game apps (https://community.amd.com/community/gaming/blog/2017/07/14/memory-oc-showdown-frequency-vs-memory-timings). If you value practicality, I think it is better to turn BankGroupSwap and BankGroupSwapAlt off.

BGS… BGSは,メモリモジュールの物理領域にアプリケーションを割り当てる機能です.これをオンにすると,総合テストアプリの実行における利益をもたらす一方で,ゲームアプリの実行におけるデメリットがもたらされます(https://community.amd.com/community/gaming/blog/2017/07/14/memory-oc-showdown-frequency-vs-memory-timings).実用性を重視する場合,BankGroupSwapとBankGroupSwapAltをオフにする方が良いと考えます.


STEP2. Set Values of CAD_Bus Drive Strength

The appropriate values for impedance matching depends on the combination of a motherboard, a memory, a SoC (in a CPU), and a value of memory clock, so you have to test each values one by one.

インピーダンスマッチングの適切な値は,マザーボード,メモリ,(CPU内の)SoC,メモリクロックの組み合わせに依存するため,しらみつぶしにテストしていくしかありません.

CAD_Bus (Command/Address/Data_Bus) Drive Strength… It means resistances which is applied to pins on a DRAM. Enter provisionally the values calculated by the DRAM Calculator. The optimal values of CAD_Bus Drive Strength depend on the circumstance composed by your PC parts, so you should adjust that later.

CAD_Bus(Command/Address/Data_Bus)Drive Strength… これはDRAM上のピンにかかる抵抗を意味します.DRAM Calculatorで計算された値を暫定的に入力します.適切なCAD_Bus Drive Strengthの値はPCパーツによって構成される状況に依存しているため,後で調整する必要があります.

  • ClkDrvStren (Clock Drive Strength)… It means a resistance of MEMCLK (Memory Clock) pin.
  • AddrCmdDrvStren (Address/Command Drive Strength)… It means resistances of each pins; Address, RAS# (Row Address Strobe), CAS# (Column Address Strobe), WE# (Write Enable), Bank, and Parity.
  • CsOdtDrvStren… (Chip Select/On-Die Termination Drive Strength)… It means resistances of each pins of CS# (Chip Select), and ODT (On-Die Termination).
  • CkeDrvStren (Clock Enable Drive Strength)… It means a resistance of CKE (Clock Enable) pin.
  • ClkDrvStren (Clock Drive Strength)… MEMCLK(Memory Clock)ピンの抵抗を意味します.
  • AddrCmdDrvStren (Address/Command Drive Strength)…Address,RAS#(Row Address Strobe),CAS#(Column Address Strobe),WE#(Write Enable),Bank,Parityの各ピンの抵抗を意味します.
  • CsOdtDrvStren… (Chip Select/On-Die Termination Drive Strength)… CS#(Chip Select)及びODT(On-Die Termination)ピンの抵抗を意味します.
  • CkeDrvStren (Clock Enable Drive Strength)… CKE(Clock Enable)ピンの抵抗を意味します.

STEP3. Set Values of Termination Resistance (1): Set Values of Rtt

Rtt… It means termination resistance which is applied each dies of DRAM individually, and it depends on the number of ranks of DRAM. Enter the values calculated by the DRAM Calculator.

Rtt… これはDRAMの各ダイに個別に適用される終端抵抗を意味し,DRAMのランクの数に依存します.DRAM Calculatorで計算された値を入力します.

  • Rtt_NOM (Nominal On-Die Termination Impedance) & Rtt_PARK (Park On-Die Termination Impedance)…They contribute to prevent signal degradation about dies which is not executing write commands.
  • Rtt_WR (Write On-Die Termination Impedance)… It contribute to prevent signal degradation about dies which is executing writing commands.
  • Rtt_NOM (Nominal On-Die Termination Impedance) & Rtt_PARK (Park On-Die Termination Impedance)… これらは書き込みコマンドを実行していないダイについての信号の乱れの防止に貢献します.
  • Rtt_WR (Write On-Die Termination Impedance)… これは書き込みコマンドを実行しているダイについての信号の乱れの防止に貢献します.

STEP4. Set Values of Termination Resistance (2): Find the Optimal ProcODT

ProcODT (Processor On-Die Termination)… It means termination resistance. We will test each values one by one, and safe line for daily-use is under 60 Ohm.

ProcODT (Processor On-Die Termination)… これは終端抵抗を意味します.ProcODTの値を1つずつ検証します.常用では60 Ω以下が安全です.

Boot memtest86 and execute only test8, ‘Random Number Sequence,’ for 4 times.

memtest86を起動し,test8「Random Number Sequence」のみを4回実行します.

Run the test for 1 and half minute and record the number of errors for each ProcODT. The one with the fewest number of errors is the optimal ProcODT (it is recommended to list some ProcODTs with fewer number of errors, because memtest86 don’t provide rigid results). If the number of errors is large (such as over 100), the values set in STEP 1 is inappropriate. In that case, you should adjust some values by increasing values of the DRAM timings or the DRAM voltage.

テストを1分30秒実行し,それぞれのProcODTごとのエラー数を記録します.もっともエラー数の少ないものが最適なProcODTになります(テスト結果に誤差が生じる場合があるため,少ないエラー数のProcODTをいくつかリストアップしておくことをおすすめします).エラー数が多い場合(100を超える等),STEP 1で設定した数値は不適切です.DRAMタイミングを緩めたりDRAM電圧を上げる等してください.

If you have no errors, decrease DRAM voltage temporarily to occurring errors to find the adequate value. In that case, restore the DRAM voltage as soon as the optimal values is found.

エラーが生じない場合,DRAM電圧を一時的に下げてエラーを発生させ,最適値を見つけます.最適値が見つかり次第,DRAM電圧を元に戻してください.


STEP5. Find the Optimal Values of CAD_Bus Drive Strength

Run test8 of memtest86 again and note the error results (“Expected” and “Actual”) as much as possible. Then, compare the values of “Expected” and “Actual” and records the numbers of results where “Actual” is higher(/lower) than “Expected”. Current CAD_BUS Drive Strength is lower than optimal one when the numbers of result of “‘Expected’ < ‘Actual'” (overshoot errors) was more occur than opposite ones. And current CAD_BUS Drive Strength is higher than optimal one when the numbers of case of “‘Expected’ > ‘Actual'” (undershoot errors) was more occur than opposite ones.

再度memtest86のtest8を実行し,生じたエラーの結果(「Expected」,「 Actual」)を可能な限りメモします.そして,「Expected」と「Actual」の数値を比較し,「Actual」が「Expected」より高い結果の数と低い結果の数を記録します.「Actual」が「Expected」より高い結果が多い(オーバーシュートエラーが多い)場合は今のCAD_Bus Drive Strengthが理想値より低く,「Actual」が「Expected」より低い結果が多い(アンダーシュートエラーが多い)場合は今のCAD_Bus Drive Strengthが理想値より高いことを示しています.

When changing the value of CAD_Bus Drive Strength, increase/decrease the value of all items of CAD_Bus Drive Strength at the same time. If the number of overshoot and undershoot errors is close to the same number, that is the appropriate values of CAD Bus Drive Strength.

CAD_Bus Drive Strengthの値を変更する場合,全てのCAD_Bus Drive Strengthの項目の値を同時に増減させてください.オーバーシュートエラーとアンダーシュートエラーが同数近くなったら,それが適切なCAD_Bus Drive Strengthの値です.

If you have no errors, decrease DRAM voltage temporarily to occurring errors to find the adequate value. In that case, restore the DRAM voltage as soon as the optimal values is found.

エラーが生じない場合,DRAM電圧を一時的に下げてエラーを発生させ,最適値を見つけます.最適値が見つかり次第,DRAM電圧を元に戻してください.


STEP6. Durability Test, and Revising Values of Some Items

If you find the optimal values of ProcODT and CAD Bus Drive Strength, run HCI Mem Test on DRAM Calculator (set default RAM size, task scope 400%, and single task mode). And adjust DRAM timings, DRAM voltage, and CPU SoC voltage until no errors are occurred.

ProcODTとCAD_Bus Drive Strengthの値が決まったら,DRAM CalculatorのHCI Mem Test(RAMサイズはデフォルト,task scopeは400%,single taskモードに設定)を実行します.そして,エラーが0になるまでDRAMタイミングとDRAM電圧,CPU SoC電圧を調整します.


Appendix. Tweaking VDDP Voltage

When some errors occur though you set optimal values of above items, increase the value of VDDP voltage may be effective. VDDP voltage means a voltage which is applied to interface (on SoC) with signals from DDR4. Try to increase the value of VDDP voltage in units of 10 mV or 15 mV from 855 mV up to 950 mV.

上記の各項目について最適値を設定しているにもかかわらずエラーが生じる場合,VDDP電圧を上げると効果があるかもしれません.VDDP電圧はDDR4からの信号との(SoC上の)インターフェースにかかる電圧を意味します.VDDP電圧を855 mV から950 mVにかけて,10 mVか15 mV単位で上げてみてください.


Result in the Test for This Article

DRAM frequency… 3800 MHz

1st timings: CL 14, tRCD_R 15, tRCD_W 15, tRP 15, tRAS 32

Command Rate: 1T

2nd timings: tRRD, 47; tRRD_S, 4; tRRD_L, 6; tFAW, 16; tWTR_S, 6; tWTR_L, 8; tWR, 12; tRFC, 282; tCWL, 14; tRTP, 6; tCKE, 1

3rd timings: TrdrdScL, 5; TwrwrScL, 5; TwrwrScl, 5; Trdwr, 8; Twrrd, 2; TwrwrSc, 1; TwrwrSd, 6; TwrwrDd, 6; TrdrdSc, 1; TrdrdSd, 4; TrdrdDd, 4

DRAM voltage: 1.48000 V

VTT DDR: 0.74375 V

CPU SoC voltage: 1.08125 V

Rtt: RTT_NOM, Disable; RTT_WR, off; RTT_PARK, RZQ/5

ProcODT: 28.2 Ohm

CAD_Bus Drive Strength: CAD_Bus ClkDrv, 60.0 Ohm; CAD_Bus AddCmdDrv, 24.0 Ohm; CAD_Bus CsOdtDrv, 24.0 Ohm; CAD_Bus CkeDrv, 30.0 Ohm

VDDP Voltage: 0.94500 V

I got a X570 Motherboard

I purchased a X570 motherboard, ASUS ROG Crosshair VIII HERO (Wi-Fi).

I had wanted to get a X570 motherboard for a long time since I used the Ryzen 3000 series. I already had the X470 motherboard, and X470 motherboards doesn’t fully support Ryzen 3000 series. In my case, I didn’t get any problems about overclocking cores, but I’ve felt a limit to memory tuning. Looking at QVLs on each manufacturer’s website, it can be seen that X570 motherboards support officially higher speed DRAMs than X470 motherboards.

There are many nice X570 motherboards among middle-high to high-end crass. The reason which I chose ASUS ROG Crosshair VIII Hero (Wi-Fi) is that it supports DRAMs which have more tight XMP. As far as I see QVLs, ASUS and MSI release high-end X570 motherboards which can manage DRAMs with higher frequency. In particular, MSI’s high-end motherboards (MEG X570 Godlike, PRESTIGE X570 Creation, etc.) are famous for to support 5000 MHz DRAMs officially. However, since I plan to use 32GB of memory capacity (using four 8GB DRAMs) in the future, I focused on to support of four DRAMs. In addition, ASUS ROG Crosshair VIII Hero (Wi-fi) was very attractive because of supporting F4-3600C14Q-32GTZN which I already have.

Now I am using it in a trial state without making extreme adjustments, and it works without any problems. From now on, I would like to try to various verifications with this motherboard.


私はX570マザーボード,ASUS ROG Crosshair VIII HERO(Wi-Fi)を購入しました.

Ryzen 3000シリーズを使用して以来,私はずっとX570マザーボードを入手したかったのです.私は既にX470マザーボードを使用していますが,X470マザーボードはRyzen 3000シリーズを完全にはサポートしていません.私の場合,コアのオーバークロックについて問題はありませんでしたが,メモリのチューニングには限界を感じていました.各メーカーのWebサイトでQVLを見ると,X570マザーボードはX470マザーボードよりも高速なDRAMを公式にサポートしていることがわかります.

ミドルハイからハイエンドのクラスには,多くの素晴らしいX570マザーボードがあります。.ASUS ROG Crosshair VIII Hero(Wi-Fi)を選んだ理由は,よりタイトなXMPを備えたDRAMをサポートしているためです. QVLを見る限り,ASUSとMSIはより高いクロックでDRAMを運用できるハイエンドのX570マザーボードをリリースしています。特にMSIのハイエンドマザーボード(MEG X570 GodlikeやPRESTIGE X570 Creationなど)は,5000 MHzのDRAMを公式にサポートしていることで有名です.しかし,私は将来は32GBのメモリ容量(4枚の8GBのDRAMを使用)を使用する予定なので,4枚のDRAMのサポートを重視しました.また,ASUS ROG Crosshair VIII Hero(Wi-fi)は,私が既に持っているF4-3600C14Q-32GTZNをサポートしているため,非常に魅力的でした.

今,私は極端な調整を行わずに試用状態で使用していますが問題なく動作しています.これからはこのマザーボードで様々な検証を行っていこうと思います.

Purchasing the Supreme DDR4 for Zen2 (at This Time)

I purchased a DRAM from G.Skill, F4-3600C14Q-32GTZN. This equips Samsung B-dies, and which has the lowest timings (14-15-15-35) in the range of 3600 MHz, at 1.4 V. G.Skill has also released the DRAM, F4-3800C14Q-32GTZN, which have a lower actual latency. But it requires 1.5 V, thus there are little potential. So I think that F4-3600C14Q-32GTZN is the best memory for Zen2 at this time.

私はG.SkillのDRAM,F4-3600C14Q-32GTZNを購入しました.これにはSamsung B-dieが用いられており,3600 MHz帯で最小のタイミング(14-15-15-35)を1.4 Vで達成できます.G.Skillはより低い実レイテンシを誇るF4-3800C14Q-32GTZNもリリースしていますが,これは1.5 Vが必要になり,伸びしろがあまりありません.したがって,私はF4-3600C14Q-32GTZNが現状Zen2にとって最高のメモリであると考えています.


Postscript (at December 16, 2019)

Using the previous article ,”How to do Stable DDR4 Tuning on Ryzen,” as a reference, I tuned two DIMMs for stable overclocking at 1900 MHz. Please see the results from “Benchmarks.”

以前の記事「How to do Stable DDR4 Tuning on Ryzen」を参考にして,私は2枚のDIMMを1900MHzで,安定したオーバークロックのためにチューニングを行いました.結果は「Benchmarks」からご覧ください.

What is the HBM2?: Is It a Relic for Consumers?

In this article, I will write about the HBM2 which had been used in high-end class GPU, especially Radeon Vega series from AMD or TITAN V from NVIDIA. The HBM (High Bandwidth Memory) is a stacked memory that realize the very high memory bus width.


Two ways to extend the memory bandwidth

There are two ways to extend the memory bandwidth. One is increasing the memory clock, which can be seen in the progress of GDDR. The other is expanding the bus width, and the stacked memory such as the HBM aims at this.

The memory clock and the memory bus width are related as shown below. Extending the memory bandwidth can be thought as conveying more cargo to a location. If cargo are carried by trucks, getting up speed the memory clock corresponds to accelerating the trucks, and expanding the bus width corresponds to increasing the lane of the road. It can be seen that both methods contribute to extending the memory bandwidth.


The Structure of the HBM

HBM has two main features. One is that multiple memories are stacked and connected by TSV (Through-Silicon Via), and the other is that a sub-board called Silicon Interposer is interposed between the processor and memory.

Some advantages of the HBM

When trying to achieve a high bus width, a physical distance between a memory and a processor has increased, and as a result, the operating voltage and the power consumption get higher. On the other hand, a stacking memory can save the mounting area (see below) and solves the above problems.

Also, a TSV has a short connection distance, so it makes less resistance and less possibility to suffer noise. Thus, power consumption can be reduced, waveform deterioration and signal delay can be restrained, and high-speed operation can be achieved.

The silicon Interposer is a substrate made from silicon, and it can reduce the operating voltage and the power consumption due to high electrical conductivity of silicon. In addition, silicon allows large amounts of wiring in tight spaces, so it can made that wire which has high bus width are connected directly between memory and processors (without to bundle signals). It also contributes to reduce in mounting area compared to wire on a substrate.

The serious disadvantage of the HBM

However, the HBM has a fatal disadvantage of high cost. It is inevitable as long as the TSV and the Silicon Interposer are adopted. Due to this problem, and the progress of GDDR, HBM2 is no longer used in GPUs for consumers (actually, AMD had adopted HBM2 in the Vega series, but in followng Navi series, they has adopted GDDR6).

Probably, the best and last GPU for consumers which equips HBM2 will be Radeon VII (with 16GB VRAM). HBM2 which realize high bus width is attractive, but will it become a relic?


この記事では,ハイエンドGPU,特にAMDのRadeon VegaシリーズやNVIDIAのTITAN Vで使用されていたHBM2について説明します.HBM2(High Bandwidth Memory 2)は非常に広いメモリバス幅を実現する積層型メモリです.


メモリ帯域を拡大する2つの方法

メモリ帯域を拡張する方法は大きく2つあります.1つはメモリクロックを高速化するというもので,これはGDDRの進歩に見ることができます.もう1つがバス幅を拡大するというもので,HBMをはじめとする積層型メモリはこれをねらうものです.

メモリクロックとメモリバス幅は下図のような関係にあります.メモリ帯域の向上は,より多くの荷物をある場所に届けられるようにすることだと考えられます.荷物をトラックによって運ぶとすると,メモリクロックの高速化はトラックの速度を上げること,バス幅の拡大は道路の車線を増やすことに対応しています.いずれの方法もメモリ帯域の拡張に寄与していることがわかります.


HBMの構造

HBMには大きく2つの特徴があります.1つは複数のメモリが積層されTSV (Through-Silicon Via)でつながれていること,もう1つはプロセッサとメモリの間にシリコンインターポーザというサブ基板が介されていることです.

HBMのいくつかの利点

高いバス幅を実現しようとすると,メモリとプロセッサの間の物理的距離が拡大し,それに伴って動作電圧が上昇,消費電力が増大してしまいます.これに対し, 積層メモリを使用すると実装面積が節約され (下図) ,上記の問題は解決されます.

Radeon VII (HBM2)
RTX 2080 (GRRR6)

また,TSVの接続距離は短いため,抵抗が少なくなりノイズが発生する可能性が低くなります.したがって,消費電力を削減でき,波形劣化や信号遅延を抑え,高速動作を実現できます.

シリコンインターポーザはシリコンを用いた基板であり,シリコンの高い電導特性によって動作電圧と消費電力を抑えることができます.さらに,シリコンは狭い場所での大量の配線が可能なため,高いバス幅の信号線を(一度束ねることなく)直接メモリとプロセッサに接続できます.また,基板に配線するのに比べ実装面積の縮小にも寄与します.

HBMの深刻な欠点

ただし,HBMにはコストが高いという致命的なデメリットがあります.それは,TSVとシリコンインターポーザを採用する以上避けられないものです.この問題とGDDRの進歩により,HBM2はコンシューマ向けのGPUには採用されなくなっています(実際,AMDはVegaシリーズでHBM2を採用していましたが,後続のNaviシリーズではGDDR6を採用するに至っています).

おそらく,コンシューマ向けのHBM2を採用した最高で最後のGPUはRadeon VIIになるでしょう (16GBのVRAMを搭載).高いバス幅を実現したHBM2は魅力あるものですが,それは過遺物になってしまうのでしょうか.

Types of Memory Layouts of Motherboards

This article introduces the types of memory layouts of the motherboard that connect memories and memory controllers in a CPU. Memory layouts affect raising a memory clock, so it can say that actual memory behavior depends not only on the CPU and memory but also on the motherboard (and these combination). Especially when using Ryzen, it is important to tune the memory ( https://ocod.home.blog/2019/12/08/why-tune-ddr4-is-important-for-ryzen/ ), and for example, when you attempt to overclock the memory while keeping low latency, should consider the memory layouts of the motherboard which you will use.

Two Types of Memory Layouts

For ATX motherboards, it is currently standard to equip 4 memory slots and support dual channels. Therefore, two memories are connected to one memory controller, and there are two patterns for connecting two memories.

One is called daisy chain (or flyby) and the other is t-topology. The outline of each is shown below.

daisy chain (fly-by)
t-topology

The most important difference between these two types is the distance of the transmission lines which connect the two memory slots corresponded to one channel and the memory controller. Daisy chain has the different distance between each memory slots and the memory controller, in contrast, the t-topology has the same distance.

The Distance of Transmission Lines and the Memory Clock

How does the distance between the slot and memory controller affects the memory clock? If the distance of the transmission lines is different as in a daisy chain, the characteristic impedance is different between two slots, thus it is hard to reduce noise with impedance matching. On contrary, as in a t-topology, the distance of the transmission lines between slots of the same channel is same, so the impedance matching can be done easily, thus the frequency of occurring noise and signal degradation can be reduced. Because of that, if you use two memories on the same channel in a daisy chain (that is, you use a total of four memories), there are more possibility that noise occur more than tolerability than in t-topology. And when a memory clock is faster, there are much frequently to occurring noise. In these sense, in a t-topology, there are more possibility to achieve a faster clock when you use four memories.

However, a t-topology has a disadvantage. A t-topology has a longer physical distance of transmission lines between slots to memory controllers than a daisy chain, and a long physical distance is not suitable for increasing a clock speed. Also, unused transmission lines will be source of noise. In these sense, a t-topology which have longer transmission lines have a disadvantage in achieving faster clock.

Conclusion

In summary, in memory overclocking, a daisy chain has advantage when operating two memories and a t-topology is advantageous when operating four memories. As the number of chips of memory are increases, it becomes more difficult to operate with a fast clock. When overclock memory, it is general to use only two memories which are single rank operated on separate channels. So if you try to operate memories in faster clock, you should choose motherboards which have daisy chain layouts about memory.


Appendix: ITX Motherboards is the Best for Pursuit the Faster Clock of Memories

Most of ITX motherboards which have only two memory slots are the best for challenging the fastest memory clock. This is because that these have short transmission lines between the memories and the memory controllers as shown below, and there is no extra transmission lines that cause noise.

ITX boards with only two memory slots

この記事では,CPUのメモリコントローラとメモリとを接続するマザーボードのメモリ配線の種類を紹介します.メモリの配線の仕方はメモリクロックの上昇に影響するため,実際のメモリの動作はCPUとメモリだけでなくマザーボード(およびこれらの組み合わせ)にも依存していると言えます.特にRyzenを使用する場合,メモリを調整することが重要です( https://ocod.home.blog/2019/12/08/why-tune-ddr4-is-important-for-ryzen/ ).例えば,低レイテンシを維持しながらメモリをオーバークロックしようとする場合,使用するマザーボードのメモリ配線を考慮することが重要です.

2種類のメモリ配線

ATXマザーボードの場合,メモリスロットが4本搭載され,デュアルチャネルに対応しているのが現在標準的です.したがって,1つのメモリコントローラに2本のメモリが接続されることになりますが,ここで2本のメモリをつなぐ方法に2パターンが存在します.

1つがデイジーチェーン(またはフライバイ),もう1つがTトポロジーと呼ばれるものです.それぞれの概要は下図のとおりです.

daisy chain (fly-by)
t-topology

この2方式のもっとも重要な違いは,1チャネルに対応するメモリスロットとメモリコントローラとを結ぶ伝送線路の距離です.デイジーチェーンは双方のメモリスロットとメモリコントローラとの距離が異なり,Tトポロジーは距離が等しくなっています.

伝送線路の距離とメモリクロック

スロットとメモリコントローラ間の距離の違いがどのようにメモリクロックに影響を与えるのでしょうか.デイジーチェーンのように伝送線路の距離が異なる場合,特性インピーダンスが2つのスロットで異なるため、インピーダンスマッチングでノイズを低減することは困難になります.それに対し,Tトポロジーでは同チャネルのメモリ同士の伝送路の距離が等しいため,インピーダンスマッチングが容易であり,ノイズと信号劣化の発生頻度を低下させることができます.したがって, デイジーチェーンで同チャネルに2本のメモリを用いると(つまり,合計4本のメモリを用いると),ノイズがその許容量を超えてしまう可能性が高くなります.また,メモリクロックが高速になるとノイズが頻繁に発生します.これらの点で,Tトポロジーでは4つのメモリを使用する場合,高いクロックを実現できる可能性が高くなります.

ただし,Tトポロジーには欠点があります.Tトポロジーはデイジーチェーンよりも,スロットとメモリコントローラーとの伝送線路の物理的距離が長くなっています.長い物理的距離はクロックを上げるのに適していません.また,使用していない伝送線路はノイズの原因になります.これらの点で,より長い伝送線路を持つTトポロジーは,より速いクロックを達成する上で不利です.

結論

要約すると,メモリのオーバークロックにおいて,デイジーチェーンは2枚のメモリを扱う場合に,Tトポロジーは4枚のメモリを扱う場合に有利になります.メモリのチップ数が増えると高速クロックでの動作が難しくなります.メモリをオーバークロックする場合,シングルランクのメモリを2枚だけ,別々のチャネルにおいて使用するのが一般的です.したがって,より速いメモリクロックを目指す場合は,メモリについてデイジーチェーンレイアウトのマザーボードを選択すると良いでしょう.


補足 ITXマザーボードはメモリの高速クロックを追求するのに最適である

ほとんどの(2つのみのメモリスロットを備える)ITXマザーボードは,最速のメモリクロックを目指すのに最適です.それは,下図のようにメモリとメモリコントローラとの伝送線路が短い上,ノイズ源となる余分な伝送線路がないからです.

ITX boards with only two memory slots