DeepLearning/FPGAなどを勉強する人

興味のあることを書く

DDR3 SDRAM: Self Refresh

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

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

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

Self Refresh (SR)

Self Refresh Timing

Param. Symbol DDR3L-1333 Unit
Exit SR -> commands not requiring a locked DLL tXS \rm MIN=Greater(5CK, tRFC) CK
Exit SR -> commands requiring a locked DLL tXSDLL \rm MIN=tDLLK(MIN) CK
Min CKE low pulse width for SRE to SRX timing tCKESR \rm MIN=tCKE(MIN)+CK CK
Valid clocks after SRE or PDE tCKSRE \rm MIN=Greater(5CK,10ns) CK
Valid clocks before SRE,PDE,RE tCKSRX \rm MIN=Greater(5CK,10ns) CK

power-downモード中などでもDRAM内のデータを保持するためのモードで、SRモード中は外部クロックを必要としない。
このモードはDLLのenable/disable、クロック周波数の変更などに対しても便利なものとなっている。全ての電源、参照電圧はentry/exitとSRモード中は正当なレベルに保たれていなければならない。

SRモードへの突入と同時にDLLは自動的に無効となり、抜けるときに自動的にリセットされる。
SR entryのコマンドを発行する前に、DRAMはidle状態で全てのバンクはprechargeされた状態に(tRP経過していて、バーストが実行中でない)、また、ODTはoffにしておかなければならない。ただし、nominal ODT、dynamic ODTのどちらも無効であればODTはDon't Careでもいい。
SR entryコマンドが発行されたらCKEはLOWにしてSRモード中はLOWに保たなければならない。 
SRモードに入ると、CKEとRESET#以外の制御信号はDon't Careになる。DRAMはtCKE内(意味的にはSRモード中)で内部的に最小数のREFRESHコマンドを実行する。

SRモードのenter/exitに関する制約は、モード中のクロックの状態に依存する。
SRモード中、クロックが安定していて、周波数が変わらないならば、DRAMtCKESRを満たしたらSRモードから抜けることができる(この時、CKEはLOWとなったtCKESR後にHIGHにすることができる)。つまり、クロックが安定していて、周波数が変わっていないので、tCKSREとtCKSRXは要求されない。
一方で、クロックがSRモード中に変化する場合(offにするか、周波数が変わる場合)、tCKSREtCKSRXは満たさなければならない。SRモードに入るとき、クロックの周波数を変化させる前に、tCKSREはまず満たさなければならない。SRモードから抜けるtCKSRX前までに、クロックが安定してCKEがHIGHでなければならない。

SR exit中にCKEがHIGHになったら、tXSの間はNOP/DESコマンドを発行しなければならない。tXSは実行中の内部的なrefreshの完了のために必要で、DLLロックを必要としないコマンドが発行可能になる前に満たされなければならない。また、tXSはSRモードへのre-entry可能になる最小時間でもある。DLLロックが必要なコマンドの場合は、その前にZACLコマンドを発行しなくてはならず、tZQOperと、tXSDLLを満たさなければらない。また、tXSDLL中はODTのはoffでなければならない。
f:id:wanwannodao:20170907124008p:plain