DeepLearning/FPGAなどを勉強する人

興味のあることを書く

DDR3 SDRAM: ZQ Calibration

DDR3 SDRAMに関するメモ的なもの(特にDDR3L-1333)。

図は全て以下のMicronのドキュメントからの引用であり、このメモの内容もこれを参照する。
2Gb: x4, x8, x16 DDR3L SDRAM

以下も参照。
DDR3 SDRAMにおけるコマンドとオペレーション - Wikipedia

ZQ Calibration

ZQはZero Quotientらしいが意味はわからない。

ZQ CalibrationはDRAM出力ドライバ\rm R_{ON}とODT値\rm R_{TT}の補正のための処理。
power-on時の初期化処理とself refreshから抜ける時における\rm R_{ON}\rm R_{TT}の補正には長い時間を、周期的な補正には比較的短い時間を要する。
ZQ Calibration LongZQ Calibration Shortが用意されている。

ZQ Calibration関連のタイミングは以下の通り。
Calibration Timing

Param. Symbol DDRL-1333 Unit
ZQCL:Power-up/RESET tZQinit 512 CK
ZQCL:normal operation tZQoper 256 CK
ZQCS tZQCS 64 CK

ZQ Calibration Long (ZQCL)

ZQCLはpower-up時の初期化中とリセット時における、初期補正のために使用されるが、システム環境によってコントローラからいつでも発行される可能性はある。
ZQCLはDRAM内部の補正回路(240Ω(\rm \pm 1\%)の外部抵抗がDRAMのZQ ballとV_{SSQ}に繋がっている)を起動し、補正が完了したら補正値を補正回路からDRAM I/Oへ転送され、更新後の\rm R_{ON}\rm R_{TT}として反映される。
初期化処理中にZQCLを発行する場合はtZQinitを、初期化後のZQCLコマンドはtZQoperを満たす必要がある。

ZQ Calibration Short (ZQCS)

ZQCSは、電圧と温度の細かい変化に対する周期的な補正に利用され、tZQCSで完了する。
ZQCSは最小で\rm 0.5 \% R_{ON}、R_{TT}インピーダンス誤差を64サイクルで効率的に修正可能。

ZQ Calibration Operation

ZQCLとZQCSを発行するには、全てのバンクがprechargeされていてtRP経過していなければならない。コントローラはtZQinit/tZQoper中はDRAMチャネルに対していかなる行動もしてはいけない。
この静止時間は補正精度を高めるために必要となっている。補正が完了したら、DRAMは電力削減のために補正回路の電流消費を無効にする。
ZQCL/ZQCSはDLL RESETコマンド、DLLのロック中と並行して発行することができる。self refreshから抜けるときは、ZQ Calibrationが必要であれば明示的なZQCLが必要。
ZQ抵抗(上記の外部抵抗)を共有しているようなデュアルランク構成の場合、コントローラはtZQinit、tZQoper、tZQCSをランク間でオーバーラップさせないようにしなければならない。
また、補正処理中は以下のことに気をつける。

  • CKEはHIGHに保たなければならない。
  • ODTは無効にしなければならない。
  • DQバスに繋がっている全てのデバイスをHigh-Zにしなければならない。

f:id:wanwannodao:20170907103545p:plain