stanford-oval/wikipedia huggingface dataset:
DDR3 SDRAMにおけるコマンドとオペレーション
コマンドとオペレーション > モードレジスタ (Mode Register) MR1と設定できる機能 > ライトレベリング (Write Leveling)

| A7 | ライトレベリングイネーブル |
| --- | --- |
0: ライトレベリングを使用しない (Disable)
1: ライトレベリングを使用する (Enabled)
ライトレベリングを設定するとデバイスはライトレベリングモードに突入する。ライトレベリングモード時、デバイスはDQSの上がりエッジでサンプリングしたクロックの値をDQピンから出力する。
DDR3のメモリモジュールでは波形品質の向上のために、コマンドやアドレス、クロックを各デバイスを各ピン一つのラインで数珠繋ぎ（デイジーチェイン）でつなぐフライバイ構造 (Fly-by) を用いる。従来のメモリモジュールはクロックをトーナメント方式で分岐して各デバイスに同一タイミングで入力するように調整していた。このためメモリデバイス・コントローラはクロックとコマンド・アドレス・データのタイミングがずれることを考慮する必要がなかった反面、データ転送が高速化するにつれて等長配線への要求が厳しくなるとともに等長配線のための引き回しが配線長を伸張し波形品質の劣化を招いた。そこでデバイスを最短距離で数珠繋ぎに接続するフライバイ構造の提案がなされた。
フライバイ構造によって波形品質の向上とDIMM内の配線の短縮が可能になるが、反面クロックがDIMM内の各DRAMに伝播する時間に差が生じ、クロックとDQSの位相差が発生する。そこでメモリコントローラはDQS入力タイミングをクロックの伝播遅延にあわせて遅らせるという処理が必要になる。ライトレベリングはこの遅延量の決定のために必要となる機能である。
ライトレベリングとはDDR3 SDRAMからの簡易なフィードバックによってメモリコントローラがクロックとDQSの位相補正を行う機能のことを言う。
DDR3 SDRAMはDQSの上がりエッジでクロックをサンプルした結果をDQピンからメモリコントローラに返す。このフィードバックは非同期で行われる。
メモリコントローラはDQSのタイミングを変更しながら、この値が0から1に変化するタイミングを検出する。この位相差はDQピンにも同時にフィードバックしなければならない。DQS,DQS#,DQピンは全てコントローラで終端する。x16デバイスでは上位8ビットと下位8ビットは独立しておりそれぞれ別々に制御する。
コマンドとオペレーション > モードレジスタ (Mode Register) MR1と設定できる機能 > 出力禁止 (Output Buffer Disable:Qoff)

| A12 | Qoff |
| --- | --- |
0: 出力を禁止しない
1: 出力を禁止する
出力禁止(Qoff)を設定するとデバイスの出力ピン (DQ, DQS DQS#) は何も接続しない状態(Hi-Z)になる。
コマンドとオペレーション > モードレジスタ (Mode Register) MR1と設定できる機能 > ターミネーションDQSイネーブル (Termination DQS Enable:TDQS)

| A11 | TDQS | DM/TDQSピン | NU/TDQS#ピン |
| --- | --- | --- | --- |
| 0 | TDQSを使用しない(Disable) | データマスク (DM) として動作 | Hi-Z状態 |
| 1 | TDQSを使用する(Enable) | TDQSとして動作 | TDQS#として動作 |
TDQS, TDQS#ピンはx8デバイスで構成されているDIMMモジュールとx4デバイスで構成されているDIMMモジュールが混在するようなシステムでx4デバイスのDQS,DQS#をx8デバイスのTDQS/TDQS#で終端し反射を抑制することで波形品質を維持するために付けられたピンである。大規模なシステムで複数の種類のモジュールの混在を許容することでシステムの柔軟性を高めるのに役立つ。
TDQSはx8デバイスのみ有効にすることが可能で、x4/x16デバイスでは有効にすることができない。TDQS/TDQS#の終端抵抗値はDQS/DQS#と等しい。DDR2 SDRAMにおけるRDQSと近い機能でRDQSはデータ出力時にデータストローブ信号を出力するのに対して、TDQSは終端抵抗だけを提供する。
TDQSとデータマスク (Data Mask:DM) は同じピンを使うため、TDQSを使用する場合はDMは使用できない。TDQSを使用しない場合のみはDMを使用可能となる。TDQSを使用しない場合、TDQS#ピンは使われない。
コマンドとオペレーション > モードレジスタ (Mode Register)MR2と設定できる機能

| BA2 | BA1 | BA0 | A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | RTT_WR | RTT_WR | 0 | SRF | ASR | CWL | CWL | CWL | PASR | PASR | PASR |
コマンドとオペレーション > モードレジスタ (Mode Register)MR2と設定できる機能 > パーシャルアレイセルフリフレッシュ (Partial Array Self Refresh:PASR) - オプション機能

| A2 | A1 | A0 | パーシャルアレイセルフリフレッシュ |
| --- | --- | --- | --- |
| 0 | 0 | 0 | 全アレイ |
| 0 | 0 | 1 | 1/2アレイ (BA0～BA2:0,1,2,3 ) 000,001,010, &011) |
| 0 | 1 | 0 | 1/4アレイ (BA0～BA2:0,1 ) |
| 0 | 1 | 1 | 1/8アレイ (BA0～BA2:0 ) |
| 1 | 0 | 0 | 3/4アレイ (BA0～BA2: 2,3,4,5,6,7) |
| 1 | 0 | 1 | 1/2アレイ (BA0～BA2: 4,5,6,7) |
| 1 | 1 | 0 | 1/4アレイ (BA0～BA2: 6,7) |
| 1 | 1 | 1 | 1/8アレイ (BA0～BA2: 7) |
オプション機能なのでデータシートを確認すること。PASRはデバイスの一部のバンクだけをセルフリフレッシュの対象にする機能。必要なバンクだけリフレッシュするため全体をリフレッシュする場合よりも消費電力を抑えられる。PASRが有効の場合、指定された領域のメモリがセルフリフレッシュの対象となる(対象外の領域のデータは失われる場合がある)
コマンドとオペレーション > モードレジスタ (Mode Register)MR2と設定できる機能 > CASライトレイテンシ (CAS Write Latency:CWL)

| A5 | A4 | A3 | CASライトレイテンシ |
| --- | --- | --- | --- |
| 0 | 0 | 0 | 5 ( tCK≧2.500ns) |
| 0 | 0 | 1 | 6 (2.500ns>tCK≧1.875ns) |
| 0 | 1 | 0 | 7 (1.875ns>tCK≧1.500ns) |
| 0 | 1 | 1 | 8 (1.500ns>tCK≧1.250ns) |
| 1 | 0 | 0 | Reserved |
| 1 | 0 | 1 | Reserved |
| 1 | 1 | 0 | Reserved |
| 1 | 1 | 1 | Reserved |
CASライトレイテンシ (CAS write latency:CWL) は内部ライトコマンドから実際にデータの書き込み準備が完了し最初のデータ書き込みが始まるまでの遅延サイクル数を表す。
DDR2 SDRAMでライトレイテンシ (Write Latency:WL) はリードレイテンシ (Read Latency:RL) で与えられる計算式WL=RL-1で自動的に決定する。ただしリードレイテンシはCASレイテンシ (CAS Latency:CL) とアディティブレイテンシ (Additive Latency:AL) の和 (RL=CL+AL)。DDR3 SDRAMではDDR2 SDRAMと異なりWLは新たに定義されたCASライトレイテンシ (CAS Write Latency:CWL) とALで与えられる計算式WL=AL+CWLで決定する。CWLはモードレジスタMR2で5～8の値を指定する。
コマンドとオペレーション > モードレジスタ (Mode Register)MR2と設定できる機能 > オートセルフリフレッシュ (Auto Self Refresh Method:ASR) とセルフリフレッシュテンプラチャ (Self-Refresh Temperature Range:SRT)

| A6 | オートセルフリフレッシュ |
| --- | --- |
0: オートセルフリフレッシュを使用しない
1: オートセルフリフレッシュを使用する - オプション機能
| A7 | セルフリフレッシュテンプラチャ |
| --- | --- |
0: 通常温度範囲でセルフリフレッシュを行う
1: 拡張温度範囲でセルフリフレッシュを行う - オプション機能
オプション機能なのでデータシートを確認すること。DDR3 SDRAMは動作保証温度範囲内 (TOPER:0～95℃) においてセルフリフレッシュの動作を保証しているが、より広範な温度帯域でセルフリフレッシュ動作を期待する場合がある。そのような場合、ASR機能かSRTを使用しなければならない。
動作保証温度範囲ではオートセルフリフレッシュかオートセルフのいずれかを有効にしなければならない。動作保証温度範囲を超える場合、セルフリフレッシュテンプラチャを有効にする。
コマンドとオペレーション > モードレジスタ (Mode Register)MR2と設定できる機能 > ライト時の終端抵抗 (RTT_WR)

| A10 | A9 | RTT_WR |
| --- | --- | --- |
| 0 | 0 | ダイナミックODT (Dynamic ODT) オフ |
| 0 | 1 | RZQ/4 |
| 1 | 0 | RZQ/2 |
| 1 | 1 | Reserved |
RTT_WRに0以外を設定することでダイナミックODTが有効になる。データバスの波形品質を向上させるためにDDR3 SDRAMにライト時の終端抵抗値を動的に変更する機能ダイナミックODTが加えられた。ただしライトレベリング (Write Leveling) 時はRTT_Nomだけが有効。RZQ=240Ω。
コマンドとオペレーション > モードレジスタ (Mode Register) MR3と設定できる機能

| BA2 | BA1 | BA0 | A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ODTS | MPR | MPR Loc | MPR Loc |
コマンドとオペレーション > モードレジスタ (Mode Register) MR3と設定できる機能 > マルチパーパスレジスタ (Multi-Purpose Register:MPR) - リードレベリング (Read Leveling)

| A1 | A0 | MPR Loc |
| --- | --- | --- |
| 0 | 0 | 定義済パターンの出力 (Predefined pattern) |
| 0 | 1 | Reserved |
| 1 | 0 | Reserved |
| 1 | 1 | Reserved |
| A2 | マルチパーパスレジスタ |
| --- | --- |
0: 通常動作
1: MPRからデータ出力
MPRはデータ読み出し時のタイミング補正のために用いられる。DDR3のメモリモジュールでは波形品質の向上のために、コマンドやアドレス、クロックを各デバイスを各ピン一つのラインで数珠繋ぎ（デイジーチェイン）でつなぐフライバイ (Fly-by) 構造を用いる。フライバイ構造によって波形品質の向上とDIMM内の配線の短縮が可能になるが、反面クロックがDIMM内の各DRAMに伝播する時間に差が生じ、データ出力タイミングが各デバイスごとに異なる。そこでメモリコントローラ内にデータを受け取るタイミング差を修正する遅延回路を設けて対応する。このとき各デバイスの遅延時間を見積もる操作をリードレベリング (Read Leveling) と呼ぶ。
MPRを有効にした後、リードコマンド (RDまたはRDA) を入力するとリードコマンドはメモリセルアレイではなくMPRに入力される。メモリセルアレイのデータの読み出しはMPRを無効にするまでできない。またMPRが有効であるとき、MRSコマンド、リードコマンド、リセット入力以外は無効である。
MPR読み出し動作中は1ビットの論理インタフェイスとなる。つまりDQ0 (DQU0/DQL0) はMPRからのデータを出力し、DQ0以外のピンはDQ0と同一データかもしくは0を出力する。DQS, DQS#からは通常のリードコマンド入力時と同様データストローブ信号を出力する。読み出し動作時のバースト長、バーストタイプ、リードレイテンシ(Read Latency)はMRSの設定に従い、バーストチョップ(Burst Chop:BC)はリードコマンド入力時のA12/BCに従う。リードコマンド入力時、A0～A1は0でなければならない。A12はバーストチョップの判断に用いられる。その他のアドレス入力は無視する。MR3:A1=0, A0=0のとき、MPRから常に0,1,0,1というデータが読み出される。
コマンドとオペレーション > アクティブコマンド (Active:ACT)

アクティブコマンドはこれからアクセスするバンクアドレスをBA0-BA2、ロウアドレスをA0-A15で指定し開く（有効にする）。このロウアドレスはプリチャージコマンド (precharge) の入力でそのバンクがアイドルになるまで有効となる。他のロウアドレスを指定する場合、プリチャージコマンドを入力する必要がある。
コマンドとオペレーション > プリチャージコマンド (Precharge:PRE,PREA)

プリチャージコマンドはアクティブコマンドで開いたバンク/ローアドレスを閉じる（ロウアドレスを無効にして保存する）。オートプリチャージを使っている場合を除き、プリチャージコマンドからtRP時間経過しなければ同一バンクをActiveすることができない。プリチャージコマンドを入力すると当該バンクはアイドル状態に復帰する。プリチャージコマンドはアクティブしていないバンクに対しても有効。
プリチャージコマンドは単一バンクを対象とするプリチャージコマンド (PRE) と全バンクを対象とするプリチャージオールコマンド (PREA) がある。プリチャージコマンドはA10をローにし、BA0-BA2で対象バンクを指定する。プリチャージオールコマンドはA10をハイにし、BA0-BA2は0にしておく。
コマンドとオペレーション > リードコマンド

リードコマンドはデータを読み出すコマンド。メモリデバイスはアクティブコマンドで指定したバンクおよびロウアドレス、リードコマンドで指定したカラムアドレスからバースト長分だけデータを連続で出力する。データはリードコマンドからアディティブレーテンシ (AL) とCASレーテンシ (CL) の和 (AL+CL) のサイクル数分送れて出力される。データと同期してデータストローブ信号 (DQS) も出力する。DQSはデータの出始め前にtRPRE期間プリアンブル (Preamble)、データ終了時にtRPST期間のポストアンブル (Postamble) を出力する。
リード/ライトコマンドの入力時にA12/BC#で動的にバーストチョップ (Burst Chop:BC) の有無 (BC4/BL8) を切り替えることができる。リード作時のタイミングパラメタを以下に示す。
tDQSCKmax/tDQSCKminはCK/CK#の交点に対するDQS/DQS#の交点の許容される振れ幅に対する規定値
tDQSCKはCK/CK#の交点に対するDQS/DQS#の交点のタイミング
tQSHはDQSのハイ区間、tQSLはDQSのロー区間。
tLZ/tHZはCK/CK#の交点からDQS/DQが信号を出力を開始するまでの時間、およびHi-Zになるまでの時間
tDQSQはDQS/DQS#の交点から最も出力タイミングが遅いDQピンからデータが出始めるまでの時間
tQHははDQS/DQS#の交点から最も出力タイミングの早いDQピンからデータが出終わるまでの時間
有効データ区間はtQH-tDQSQと等しい。
ただしtLZ/tHZおよびtRPREの起点/TRPSTの終点はは下図で示すように計算する。
以下にリードコマンドと他のコマンドを組合せたときのタイミングチャートを示す。
ただしBL=8、AL=0、CL=5、Dout nはCol nに対応して読み出されたデータである。
DDR3 SDRAMではCAS#から次のCAS#までのタイミング制限tCCDは4サイクルである。そのためリードコマンドは4サイクルごとにしか入力できない。データの読み出しが連続する場合、1つ目のリードコマンドに対するポストアンブル (Postamble)、2つ目のリードコマンドに対するプリアンブル (Preamble) は消失し連続した読み出しの先頭にプリアンブル、最後にポストアンブルが現われる。
ただしBC4、CL=5、AL=5、Dout nはCol nに対応して読み出されたデータである。
バーストチョップ (Burst Chop:BC4) を用いてリードデータを途中で停止しても続くリードコマンドをtCCDより短いタイミングで入力することはできない。そのため2つ目のリードコマンドに対応する読み出しは1つ目のリードコマンドがバーストチョップでなかった場合と等しい。
ただしBL8、CL=5、CL=0、CWL=5、Dout nはCol nに対応して読み出されたデータ、Din bはCol bに対応して書き込まれるデータである。
バーストチョップしないリードコマンドからライトコマンドには RL+tCCD+2\times tCK-WL期間が必要になる。ただしRLはリードレイテンシ (Read Latency)、WLはライトレイテンシ (Write Latency)、tCCDはCAS#から次のCAS#までのタイミング制限、tCKは1サイクルの時間。図の例ではリードからライトの切り替わりに2サイクル ( 2\times tCK) の空き時間が発生する。
ただしBC4、CL=5、AL=0、CWL=5、Dout nはCol nに対応して読み出されたデータ、Din bはCol bに対応して書き込まれるデータである。
バーストチョップしたリードコマンドからライトコマンドまでの期間は RL+tCCD/2+2\times tCK-WLに短縮される。このためtCCD/2サイクル早くライトコマンドを入力できる。
ただしCL=5、AL=0、Dout nはCol nに対応して読み出されたデータである。
ただしCL=5、AL=0、Dout nはCol nに対応して読み出されたデータである。
先に読み出すデータに対してバーストチョップを行ってもtCCDは変わらない。そのため1つ目のリードコマンドに対応するデータの読み出しと2つ目のリードコマンドに対応するデータの読み出しの間に2サイクルデータの出力されない区間が発生する。このような場合、それぞれのデータの読み出し始めと終わりにプリアンブル・ポストアンブルが挿入される。
ただしCL=5、AL=0、CWL=5、Dout nはCol nに対応して読み出されたデータ、Din bはCol bに対応して書き込まれるデータである。
バーストチョップしたリードコマンドからライトコマンドまでの期間はライトコマンドがバーストチョップかどうかに関係なく RL+tCCD/2+2\times tCK-WLに短縮される。このためtCCD/2サイクル早くライトコマンドを入力できる。
ただしCL=5、AL=0、CWL=5、Dout nはCol nに対応して読み出されたデータ、Din bはCol bに対応して書き込まれるデータである。
リードコマンドからライトコマンドまでの期間は RL+tCCD+2\times tCK-WLである。これはライトコマンドがバーストチョップしていてもリードコマンドがバーストチョップされていなければ短縮されない。
コマンドとオペレーション > ライトコマンド

ライトコマンドはデータを書き込むコマンド。メモリデバイスはアクティブコマンドで指定したバンクおよびロウアドレス、ライトコマンドで指定したカラムアドレスに対してバースト長分だけデータを連続で書き込む。データはライトコマンドからアディティブレーテンシ (AL) とCASライトレーテンシ (CWL) の和 (AL+CWL) のサイクル数分送れて書き込み可能になる。データの中央を打ち抜くタイミングでデータストローブ信号 (DQS) も入力しなければならない。DQSはデータの出始め前にtWPRE期間プリアンブル (Preamble)、データ終了時にtWPST期間のポストアンブル (Postamble) を入力しなければならない。
リード/ライトコマンドの入力時にA12/BC#で動的にバーストチョップ (Burst Chop:BC) の有無 (BC4/BL8) を切り替えることができる。リード作時のタイミングパラメタを以下に示す。
ライト動作時のタイミングパラメタを以下に示す。
以下にライトコマンドと他のコマンドを組合せたときのタイミングチャートを示す。
ただしCWL=5、AL=0、Din nはCol nに対応して書き込まれるデータである。
ライトからプリチャージコマンド入力可能になるまでのライトリカバリタイム (tWR) は書き込み終了を起点とするためバーストチョップ使用時はプリチャージコマンドを2サイクル早く入力することができる。
ただしBL8、CWL=5、AL=0、Din nはCol nに対応して書き込まれるデータである。
リードコマンド同様ライトコマンドも4サイクルごとにしか入力できない。データの書き込みが連続する場合、1つ目のライトコマンドに対するポストアンブル (Postamble)、2つ目のライトコマンドに対するプリアンブル (Preamble) は不要で連続した読み出しの先頭にプリアンブル、最後にポストアンブルを入力する。
ただしBC4、CWL=5、AL=0、Din nはCol nに対応して書き込まれるデータである。
リードコマンド同様ライトコマンドもバーストチョップを入れても二つのコマンドの間隔を縮めることは出来ない。データが連続しない場合、一つ目のデータと二つ目のデータのそれぞれの先頭にプリアンブル、末尾にポストアンブルを入れなければならない。
ただしCWL=5、AL=0、Din nはCol nに対応して書き込まれるデータ、Dout bはCol bに対応して読み出されるデータである。
ライトコマンドに対応するデータ入力の終了からtWR後にリードコマンドを入力することができる。
ただしCWL=5、AL=0、Din nはCol nに対応して書き込まれるデータ、Dout bはCol bに対応して読み出されるデータである。
tWRの起点はバーストチョップしてもバーストチョップしなかったときと同一である。そのためライト動作でバーストチョップしてもリードサイクルは早まらない。
ただしCWL=5、AL=0、Din nはCol nに対応して書き込まれるデータである。
ただしCWL=5、AL=0、Din nはCol nに対応して書き込まれるデータである。
先に書き込まれるデータに対してバーストチョップを行ってもtCCDは変わらない。そのため1つ目のライトコマンドに対応するデータの書き込みと2つ目のライトコマンドに対応するデータの書き込みの間に2サイクルデータの書き込めない区間が発生する。このような場合、それぞれのデータの書き込み始めと終わりにプリアンブル・ポストアンブルを挿入しなければならない。
次にライトコマンドとデータマスク (Data Mask:DM) との関係を示す。
DMはライト動作時にデータを書き込むか否かを示すマスクとして利用する。DMがローのときのデータのみデバイスに書き込まれ、ハイのときのデータはデバイスに書き込まれない。DMは書き込みデータとタイミングを同期させて入力する。DMはライト動作時にのみ有効でリード動作を含むほかの動作時にはどんな値も無効な入力になる。
コマンドとオペレーション > セルフリフレッシュエントリ (Self Refresh Entry:SRE) コマンドとセルフリフレッシュイグジット (Self Refresh Exit:SRX) コマンド

DDR3 SDRAMでは省電力モード時などでもデバイスのデータの内容を保持するためにセルフリフレッシュモードを使える。セルフリフレッシュモードに入った場合、デバイスは外部クロックの入力無しでメモリデータの保持動作を行える。SREコマンドの入力でデバイスはセルフリフレッシュモードに入る。
SREコマンドはアイドル状態でなければ受け付けない。SREコマンド前にバンクプリチャージを行い、かつtRPが経過していなければならない。またODTをオフにしておかなければならない。ODTをオフにするはODTピンをローにするかMR1でODT無効にする。セルフリフレッシュ中はCKEはローに保たなければならない。セルフリフレッシュ開始時にDLLは一旦オフにされ、セルフリフレッシュ終了時にDLLは再度有効になる。
セルフリフレッシュモード中はCKEとRESET#を除く全てのピンからの入力は無効となる。当然、電源やVref（参照電圧）ピンは適正な電圧を維持しなければならない。セルフリフレッシュモード中は内部クロックは電力消費を抑えるために停止している。そのためセルフリフレッシュモードに入ってからtCKSRE経過後外部クロックの周波数を落としたり停止してもかまわない。ただしセルフリフレッシュモードから抜けるtCKSRX前までには外部クロックは再起動し安定させていなければならない。セルフリフレッシュモードは最低tCKE時間保持しなければならない。
SRXコマンドを入力すればセルフリフレッシュモードを終了する。SRXコマンド入力前に外部クロックを安定させていなければならない。通常のコマンド入力はSRXコマンド入力後に内部のリフレッシュ動作が終了する時間 (tXS) を待たなければならない。またDLLロックを前提としたコマンドの入力はDLL再ロック/ZQキャリブレーション (ZQ calibration:ZQCL) が終了する時間 (tXSDLL) を待たなければならない。
コマンドとオペレーション > リフレッシュ (Auto Refresh:REF) コマンド

セルフリフレッシュと同様、デバイスのデータを保持するためにオートリフレッシュモードが用意されている。デバイスはリフレッシュ (REF) コマンドを指定するとデバイスはRefreshモードに入る。REFコマンドはアイドル状態でなければ受け付けない。REFコマンド前にバンクプリチャージを行い、かつtRPが経過していなければならない。リフレッシュ期間中、デバイス内部にあるアドレスカウンタがバンクアドレスを供給する。オートリフレッシュ中、外部からアドレスを供給する必要はない。
オートリフレッシュサイクルが終了したら全てのバンクはプリチャージが完了しアイドル状態に復帰する。REFコマンド入力から次のアクティブコマンドまたはオートリフレッシュコマンド入力までtRFCの間隔をあけなければならない。
コマンドとオペレーション > パワーダウン (Power Down)

DDR3 SDRAMはCKEをローに落とすことでパワーダウン（省電力モード）に入る。ただしMRSコマンド入力中、MPR動作中、ZQCAL実行中、DLLロック中、リード/ライト動作中、CKEをローに落としてはならない。ローアドレスをアクティブ (Active) にしている最中、プリチャージ (precharge) やオートプリチャージ (auto precharge) 中、リフレッシュ (refresh) 中はCKEをローに落としてもかまわない。ただしパワーダウンの電流スペックはこれらの操作が終わっていることを前提にしているので、電流スペックを満たさないかもしれない。
パワーダウン時にDLLを解除してしまうスローイグジットモード (Slow Exit Mode) を使用するとパワーダウンから抜けたときにリードやODTの同期のために再度DLLをリセットしなければならないのでパワーダウンから抜けたときに素早く復帰するにはDLLはロックしたままのファストイグジットモード (Fast Exit Mode) を使用すべきである。
実行中のコマンドが全て完了した段階で全てのバンクがプリチャージされてからパワーダウンに入ることをプリチャージパワーダウン (precharge power Down) といい、いずれかのバンクがアクティブのままパワーダウンに入ることをアクティブパワーダウン (active power down) という。
パワーダウンに入るとCK, CK#, ODT, CKE, RESET#を除く全ての入力・出力が不活性になる。パワーダウンに入ってからtCPDED期間はNOPかDESLコマンドしか入力してはならない。tCPDED経過後、コマンドやアドレスは不活性になる。
| 状態 | MR0:A12 | DLL | パワーダウンの終了 | 関係するパラメタ |
| --- | --- | --- | --- | --- |
| 1つ以上のバンクがアクティブ | 無効 | オン | 早い | tXP経過後にコマンド入力可能 |
| 全バンクプリチャージ後 | 0 | オフ | 遅い | tXP経過後にACT, AR, MRS, PRE, PALL入力可能。 tXPDLL経過後にDLLコントロールの必要なREAD, READAなどのコマンド入力やODTコントロールが可能。 |
| 全バンクプリチャージ後 | 1 | オン | 早い | tXP経過後にコマンド入力可能 |
プリチャージパワーダウンのスローイグジットモードはDLLを解除するが、プリチャージパワーダウンのファストイグジットモードを利用するか、アクティブパワーダウンを利用する場合、DLLを解除しないのでパワーダウンからの復帰は早い。パワーダウン中はCKE ロー、RESET ハイ、安定したクロック入力、有効な状態のODTを維持しなければならない。その他の入力ピンは無効である。RESET#がローになった場合、パワーダウンは解除され、デバイスはリセットされる。
パワーダウンはCKE ハイに同期して終了する。CKE ハイはtCKE期間維持されなければならない。CKEがハイになってからtXPまたはtXPDLL経過後にコマンド入力が可能になる。
ただしCL=5、AL=0、Dout nはCol nに対応して読み出されたデータである。
バーストチョップを使用してもリードコマンドからパワーダウンエントリを入力できるようになるまでの時間:tRPDENは変わらない。
ただしCWL=5、AL=0、Din nはCol nに対応して書き込まれるデータである。
オートプリチャージ付ライトコマンドの入力時にはデータの書き込み完了からWRサイクル間はパワーダウンすることはできない。バーストチョップを使用してもWRの起点となるサイクルは変わらない。
ただしCWL=5、AL=0、Din nはCol nに対応して書き込まれるデータである。
ライトコマンドの入力時にはデータの書き込み完了からtWR期間経過後からパワーダウンできる。バーストチョップを使用してもtWRの起点となるサイクルは変わらない。
アクティブパワーダウンまたはファストイグジットモードでパワーダウンしている場合はパワーダウンイグジットからtXP経過後にコマンド入力が可能になる。スローイグジットモードでパワーダウンしている場合はDLLの再ロックのためにtXPDLL経過後にコマンド入力が可能になる。ただしこの場合でもDLLリセットコマンドの入力は不要である。
オートリフレッシュコマンドからtREFPDEN経過後、パワーダウンできる。
アクティブコマンドからtACTPDEN経過後、パワーダウンできる。
プリチャージコマンドからtPRPDEN経過後、パワーダウンできる。
MRSコマンドからtMRSPDEN経過後、パワーダウンできる。
パワーダウン終了からtCKE経過後、再度パワーダウンできる。
パワーダウン終了後、オートリフレッシュコマンドを入力して再度パワーダウンするとき、パワーダウン終了からtXPDLL経過後、再度パワーダウンできる。
オートリフレッシュコマンド入力後パワーダウンしたとき、リフレッシュコマンドからtRFC経過後かつパワーダウン終了からtCKE経過後、コマンド入力が有効になる。
パワーダウン中にクロック周波数(おそらく位相変化を含む)を変更した場合、パワーダウン終了からtXP経過後にDLLリセットを行わなければならない。
コマンドとオペレーション > ダイナミックオンダイターミネーション (Dynamic On Die Termination:Dynamic ODT) > 信号の反射について

一般にPCで使われているスタブバス (Stub BUS) はCPU/メモリコントローラとメモリモジュールをつなぐデータラインを複数のメモリモジュールで共有する。各データラインは、メインのデータラインからメモリモジュールのコネクタで分岐する。デバイスの接合部でインピーダンスが大きく異なるためにデバイス端に達した信号はスタブバスはシステムやモジュール,デバイスの設計を簡素化できる反面、デバイス端で発生した反射波が分岐を通してメインの伝送線路に達するために伝送線路上の波形品質が悪化するために高速なデータ転送には不向きとされている。
このような場合に高速なデータ転送に必要な波形品質を確保するために、以下のような対策が考えられる。
全てのデバイスを1対1で接続する (Point to Point接続)
終端抵抗をデバイスの直近に設けデバイス端での反射を抑制する。
スタブの距離を短くする。
ODTはデバイス内部に終端抵抗を設けることで、部品点数を増やしコストを増大させることなくデバイス端での反射波を抑制し高速なデータ転送に必要な波形品質を確保している。ODTはDDR2 SDRAMから導入されている。
DDR3 SDRAMではDQ, DQS, DQS#, DM, TDQS, TDQS#（x8デバイスでTDQSを利用する場合のみ）の終端抵抗のオン/オフのコントロールをODTピンの入力で行うことができる。ODTピンからの入力がハイのときODTはオンに、ローのときODTはオフになる。ただしMR1:A2,A6,A9でODT無効を選択した場合はODTピンの入力によらずODTは常にオフとなる。ODT オフ時セルフリフレッシュの動作は保証されない。ODT オン時の抵抗値 (RTT) はMR1:A2,A6,A9で指定した値となる。
コマンドとオペレーション > ダイナミックオンダイターミネーション (Dynamic On Die Termination:Dynamic ODT) > 同期ODT (Synchronous ODT)

同期ODTとはODTピンの入力からアディティブレイテンシ (Additive Latency) 分遅延してDQピンなどの終端抵抗 (RTT) の値のオン/オフが同期する機能を指す。同期ODTモードを使用する場合はDLLがロックされていなければならない。DLL オフでODTの動作は保証されない。そのためDLL オフの場合、ODTピンの入力をローにするか、MR1:A2,A6,A9でODT無効を選択しODTを継続してオフにしていなければならない。
同期ODTモード時、ODTピンの入力がハイになってからODT オンレイテンシ (ODTLon) 後にRTTはオンになる。同様にODTピンの入力がローになってからODT オフレイテンシ (ODTLoff) 後にRTTはオフになる。ODTLon, ODTLoffはそれぞれODTLon=WL-2=AL+CWL-2, ODTLoff=WL-2=AL+CWL-2で計算する。
同期ODTモード時、以下のタイミングパラメタが適用される。
最小RTTオン時間 (tAONmin) はODTLonからメモリデバイスがHi-Z状態からODT抵抗をオンに切り替え始めるタイミング、最大RTTオン時間 (tAONmax) はODTLonからメモリデバイスがODT抵抗を完全にオンにしたタイミングである。逆に最小RTT オフ時間 (tAOFmin) はODTLoffからメモリデバイスがODT抵抗をオフに切り替え始めたタイミング、最大RTT オフ時間 (tAOFmax) はODTLoffからメモリデバイスが完全にHi-Z状態になったタイミングである。
ただし、Hi-Z⇔RTTの切り替わりのタイミングを得るのは非常に難しいため簡易的にDQなどの出力が変化する上がり/下がりエッジの任意の2点を結ぶ直線とVSSQ/VRTTとの交点をスペックとして用いる。
ODTH4を満たす時間ODTの入力はハイを保たなければODTオンとなったとは見なされない。ODT ハイでライトコマンドが入力された場合、ライトコマンドからBL4のときはODTH4の間、BL8のときはODTH8の間、ODTの入力はハイを保たなければならない。
ODTH4/ODTH8はODTピンの入力がハイになってからODTピンの入力がローになるまで、またはライトコマンドの入力からODTピンの入力がローになるまでの間を指す。
コマンドとオペレーション > ダイナミックオンダイターミネーション (Dynamic On Die Termination:Dynamic ODT) > リード動作中のODT

DDR3 SDRAMは終端と出力を同時に行えない。リード時のプリアンブル (Preamble) より半サイクル以上前にODTピンの入力をローにしてRTTをオフにしていなければならない。またPostamble出力から1サイクル程度RTTは有効にならないだろう。
コマンドとオペレーション > ダイナミックオンダイターミネーション (Dynamic On Die Termination:Dynamic ODT) > ダイナミックODT (Dynamic ODT) の導入

通常動作時とデータ書き込み時で異なる終端抵抗を設定することで、波形品質が向上する場合がある。DDR2 SDRAMではODTの抵抗値を変更するためにはMRSの再設定しなければならなかったが、DDR3 SDRAMでは動的に終端抵抗を変更できる機能ダイナミックODTを導入した。ダイナミックODTはMR2:A9,A10を設定することで有効になる。ダイナミックODTの仕様は以下の通り。
2つのRTT値 (RTT_Nom/RTT_WR) を利用できる。
RTT_NomはMR1:A2,A6,A9で設定する
RTT_WRはMR2:A9,A10で設定する。
終端のオン/オフはODTピンのハイ/ローで指定し、レイテンシはODTLon/ODTLoffである。
ライトコマンド入力からODTLcnw (ODT RTT_Nom⇒RTT_WT レイテンシ)サイクル後にRTT_WRが有効になる。
BL8時、ライトコマンド入力からODTLcwn8 (ODT RTT_WR⇒RTT_Nom レイテンシ) サイクル後にRTT_Nomに戻る。
BC4時、ライトコマンド入力からODTLcwn8 (ODT RTT_WR⇒RTT_Nom レイテンシ) サイクル後にRTT_Nomに戻る。
DLLオフ時、ダイナミックODTの動作は保証されない。DLL オフ時は必ずダイナミックODTをMRSコマンドで無効にしておかなければならない。
| 名称と詳細 | 略称 | 定義 | 規定されているスペック |
| --- | --- | --- | --- |
| ODT ターンオン レイテンシ | ODTLon | ODTがハイになってから 終端が入るまで | WL-2サイクル |
| ODT ターンオフ レイテンシ | ODTLoff | ODTがロー になってから 終端が切れるまで | WL-2サイクル |
| RTT_Nom⇒RTT_WR時のODTレイテンシ | ODTLcnw | ライトコマンド入力からRTTがRTT_NomからRTT_WRに変化するまで | WL-2サイクル |
| RTT_WR⇒RTT_NOM時のODTレイテンシ (BL4) | ODTLcwn4 | ライトコマンド入力からRTTがRTT_WRからRTT_Nomに変化するまで | 4+ODTLoffサイクル |
| RTT_WR⇒RTT_NOM時のODTレイテンシ (BL8) | ODTLcwn8 | ライトコマンド入力からRTTがRTT_WRからRTT_Nomに変化するまで | 6+ODTLoffサイクル |
| ODT設定後の最小ODTホールド時間 | ODTH4 | ODTがハイになってからODTがローになるまで | 4 |
| ライト後の最小ODTホールド時間 (BL4) | ODTH4 | ODTがハイでライトコマンドの入力があってからODTがローになるまで | 4 |
| ライト後の最小ODTホールド時間 (BL8) | ODTH8 | ODTがハイでライトコマンドの入力があってからODTがローになるまで | 6 |
| RTT変更スキュー | tADC | ODTLcnw/ODTLcwnからRTTが有効になるまで | 0.3～0.7サイクル |
| MR1> A9 | MR1> A6 | MR1> A2 | RTT_Nom | MR2> A10 | MR2> A9 | RTT_WR |
| --- | --- | --- | --- | --- | --- | --- |
| 0 | 0 | 0 | オフ (-) | 0 | 0 | RTT_Nom |
| 0 | 0 | 1 | RZQ/4 (60Ω) | 0 | 1 | RZQ/4 (60Ω) |
| 0 | 1 | 0 | RZQ/2 (120Ω) | 1 | 0 | RZQ/2 (120Ω) |
| 0 | 1 | 1 | RZQ/6 (40Ω) | 1 | 1 | RFU (RFU) |
| 1 | 0 | 0 | RZQ/12 (20Ω) | - | - | - |
| 1 | 0 | 1 | RZQ/8 (30Ω) | - | - | - |
| 1 | 1 | 0 | RFU (RFU) | - | - | - |
| 1 | 1 | 1 | RFU (RFU) | - | - | - |
RZQはZQピンにつながる外部抵抗の抵抗値 (240Ω±1%)。ZQピンは外部抵抗RZQを介してGNDに接続する。
コマンドとオペレーション > ダイナミックオンダイターミネーション (Dynamic On Die Termination:Dynamic ODT) > 非同期ODTモード

メモリデバイスがDLL オンモードで動作中にプリチャージパワーダウン (Precharge Power Down) で一時的にDLLをオフにしたときに非同期ODTモードが選択される。非同期ODTモード中、ODTピンからのコントロールはアディティブレイテンシ (Additive Latency:AL) 時間の遅延は発生しない。
最小RTT オン時間 (tAONPDmin) はODT ハイからメモリデバイスがHi-Z状態からODT抵抗をオンに切り替え始めるタイミング、最大RTT オン時間 (tAONPDmax) はODT ハイからメモリデバイスがODT抵抗を完全にオンにしたタイミングである。逆に最小RTT オフ時間 (tAOFPDmin) はODT ハイからメモリデバイスがODT抵抗をオフに切り替え始めたタイミング、最大RTT オフ時間 (tAOFPDmax) はODT ハイからメモリデバイスが完全にHi-Z状態になったタイミングである。
非同期ODTタイミングパラメタは以下のように規定されている。
| 略称 | 内容 | 最小 | 最大 |
| --- | --- | --- | --- |
| tAONPD | 非同期ODT オン遅延時間 | 1[ns] | 9[ns] |
| tAOFPD | 非同期ODT オフ遅延時間 | 1[ns] | 9[ns] |
| 説明 | 最小 | 最大 |
| --- | --- | --- |
| ODT ⇒ RTT オン遅延時間 | ODTLon×tCK+tAONmin または tAONPDminのうち小さい方 | ODTLon×tCK+tAONmax または tAONPDmaxのうち大きい方 |
| ODT ⇒ RTT オン遅延時間 | (WL-2)×tCK+tAONmin または tAONPDminのうち小さい方 | (WL-2)×tCK+tAONmax または tAONPDmaxのうち小さい方 |
| ODT ⇒ RTT オフ遅延時間 | ODTLoff×tCK+tAOFmin または tAOFPDminのうち小さい方 | ODTLoff×tCK+tAOFmax または tAOFPDmaxのうち大きい方 |
| ODT ⇒ RTT オフ遅延時間 | (WL-2)×tCK+tAOFmin または tAOFPDminのうち小さい方 | (WL-2)×tCK+tAOFmax または tAOFPDmaxのうち小さい方 |
tANPD: WL-1
コマンドとオペレーション > ダイナミックオンダイターミネーション (Dynamic On Die Termination:Dynamic ODT) > 同期ODTモード ⇔ 非同期ODTモードの移行

プリチャージパワーダウン (Precharge Power Down) のスローイグジットモード (Slow Exit Mode) を開始するとODTのモードが同期ODTモードから非同期ODTモードへ移行する。
プリチャージパワーダウンのスローイグジットモードを終了するとODTのモードが非同期ODTモードから同期ODTモードへ移行する。
コマンドとオペレーション > ZQキャリブレーション (ZQ Calibration:ZQCAL) コマンド

ZQキャリブレーションは出力抵抗RonおよびODTを補正するために用いられる。DDR3 SDRAMは初期化時のRONとODTの補正により長い時間を要する。また定期的にRON/ODTの補正が必要になる。この補正は初期化時よりも短い時間で完了する。
ZQキャリブレーションロング (ZQ Calibration Long:ZQCL) コマンドは電源投入後の初期化シーケンス内で行われる初期補正で使用される（もちろん、このコマンドは電源投入時だけではなくシステム環境に応じてコントローラはいつでも入力できる）。ZQCLコマンドはメモリデバイス内部の補正回路を起動する。補正完了と共に補正値は補正回路から入出力部へ送られ、RON/ODTを更新・反映される。
リセット後の最初のZQCLコマンドは完全な補正と全ての値の更新のためにtZQinit (512サイクル) の期間を必要とする。それ以外のときはZQCLはtZQoper (256サイクル) で完了する。
ZQキャリブレーションショート (ZQ Calibration Short:ZQCS) コマンドは定期的な補正で使用される。ZQCSコマンドはZQCLコマンドに比べて短い時間:tZQCS(64サイクル)で補正を完了する。
tZQinit/tZQopen/tZQCSの間は抵抗値の補正精度を高めるためにメモリデバイスの入出力チャンネルを静止状態に保たなければならない。DLL ロックと同時にZQキャリブレーションを行うことは可能である。
ZQCSは下式で示される間隔以下で実行することが推奨されている。
\Delta ZQCS={\frac {0.5^{[\%]}}{(T_{sens}\times T_{driftrate})+(V_{sens}\times V_{driftrate})}}
ただし、式中の \Delta ZQCSはZQCSコマンド間隔の推奨値、 T_{sens}は最大温度感度(抵抗値がどれくらい温度の変化に敏感かを示す値)、 T_{driftrate}はシステムの温度変化の周期、 V_{sens}は最大電圧感度(抵抗値がどれくらい電源電圧の変化に敏感かを示す値)、 V_{driftrate}は電圧変化の周期を表す。
ここで、対象デバイスの T_{sens}および V_{sens}のスペックが
 T_{sens}=2.0^{[\%/^{\circ }C]}
 T_{driftrate}=0.20^{[\%/mV]}\,
であり、システム環境が
 V_{sens}=1.0^{[^{\circ }C/s]}
 V_{driftrate}=5^{[mV/s]}\,
で、あたえられるときZQCSコマンド間隔の推奨値 \Delta ZQCSは以下のように求めることができる。
{\begin{aligned}\Delta ZQCS&={\frac {0.5^{[\%]}}{(T_{sens}\times T_{driftrate})+(V_{sens}\times V_{driftrate})}}\\&={\frac {0.5^{[\%]}}{(2.0^{[\%/^{\circ }C]}\times 1.0^{[^{\circ }C/s]})+(0.20^{[\%/mV]}\times 5^{[mV/s]})}}\\&={\frac {0.5^{[\%]}}{2.0^{[\%/s]}+1.0^{[\%/s]}}}\\&=167^{[ms]}\\\end{aligned}}
関係記事

DDR3 SDRAM
DDR3 SDRAMにおける電流スペックと測定条件
状態遷移図
リセットと初期化シーケンス
アディティブレイテンシとポステッドCASが有効になる場合の例
メモリモジュールにおける分岐構造 (Forked) とフライバイ構造の違い
ライトレベリングを行いデータ到達タイミングを補正する
x8 DIMMモジュールと x4 DIMMモジュールが混在する場合はTDQSを使用する
リードレベリングで各デバイスからのデータ出力タイミング差を見積もる
リード動作時のタイミングパラメタ定義
tLZ/tHZの計算方法とtRPRE/tRPSTの起点終点
リード (BL8) ⇒リード (BL8) を連続した場合のタイミングチャート
リード(BC4)⇒リード(BC4)を連続した場合のタイミングチャート
リード (BL8) ⇒ライト (BL8) を連続した場合のタイミングチャート
リード (BC4) ⇒ライト (BC4) を連続した場合のタイミングチャート
リード (BL8) ⇒リード (BC4) を連続した場合のタイミングチャート
リード (BC4) ⇒リード (BL8) を連続した場合のタイミングチャート
リード (BC4) ⇒ライト (BL8) を連続した場合のタイミングチャート
リード(BL8)⇒ライト(BC4)を連続した場合のタイミングチャート
ライト動作時のタイミングパラメタ定義
ライト (BC4) ⇒プリチャージを連続した場合のタイミングチャート
ライト (BL8) ⇒ライト (BL8) を連続した場合のタイミングチャート
ライト (BC4) ⇒ライト (BC4) を連続した場合のタイミングチャート
ライト (BL8) ⇒ライト (BC4) を連続した場合のタイミングチャート
ライト (BC4) ⇒ライト (BL8) を連続した場合のタイミングチャート
ライト動作時、DMがハイのサイクルデータはデバイスに書き込まれない
セルフリフレッシュモードのタイミングチャート
オートリフレッシュモードのタイミングチャート
ライトオートプリチャージ(Write Auto Precharge)コマンド入力後のパワーダウンタイミングチャート
ライトコマンド入力後のパワーダウンタイミングチャート
上:アクティブパワーダウンまたはプリチャージパワーダウンのファストイグジットモードのタイミングチャートとプリチャージパワーダウンのスローイグジットモードのタイミングチャート比較
オートリフレッシュ⇒パワーダウンタイミングチャート
アクティブ⇒パワーダウンタイミングチャート
プリチャージ⇒パワーダウンタイミングチャート
MRS⇒パワーダウンタイミングチャート
パワーダウン再入タイミングチャート
パワーダウン再入前にオートリフレッシュ (Auto Refresh) がある場合のタイミングチャート
リフレッシュ⇒パワーダウンタイミングチャート
パワーダウン中にクロック周期を変えた場合のタイミングチャート
スタブバスは反射波の影響で波形品質が劣化する
ODTはスタブバスへの反射の影響を小さくする
tAON/tAONPD定義説明
同期ODTタイミングチャート (AL=3, CWL=5, ODTLon=AL+CWL-2=6)
同期ODTタイミングチャート (BC4,WL=7)
リード中ODTは無効 (ODT:ロー) にしておかなければならない (CL=6, AL=CL-1=5,RL=AL+CL=11,CWL=5, ODTLon=CWL+AL-2=8)
ライトコマンドの前後でODT オン/オフしたときのダイナミックODTの振る舞い
ライトコマンドを入力しないときのダイナミックODTの振る舞い
ライトコマンド (BL8) と同時にODT オンし6サイクル後にオフした場合のダイナミックODTの振る舞い
ライトコマンド (BC4) と同時にODT オンし6サイクル後にオフした場合のダイナミックODTの振る舞い
非同期ODTタイミングチャート
プリチャージパワーダウンのスローイグジットモード開始でODTのモードが同期ODTモードから非同期ODTモードへ変化する様子
プリチャージパワーダウンのスローイグジットモード終了でODTのモードが非同期ODTモードから同期ODTモードへ変化する様子
フリート横田

フリート横田（ふりーと　よこた、1979年‐）は日本の文筆家、ノンフィクション作家。
略歴

出版社退職後、タウン誌の編集長等を経て、新聞、雑誌などにルポやエッセイを寄稿。戦後、昭和中期ごろの歓楽街を取り上げたもの、終戦後の闇市や庶民生活をフィールドワークを行って執筆する作風。テレビや、ラジオへも出演。路地徘徊家と自称している。