DIMMのスペック(CL/RCD/RP)

DIMMのスペックを見ると以下のような記述を見ることがある。

DDR3-1333 容量4GB CL-tRCD-tRP=9-9-9 RANK=2

ここでは、これらのCL, tRCD, tRPなどのパラメータが具体的に何を意味するかを掘り下げてみる。

ここでは1Gbitでデータ幅が16BitのDDR3メモリチップを例に取る。考え方は、DDR1/2/3全てで共通だ。

DDR系のメモリでは、このアドレスをBANK,ROW.COLの3要素に分割する。これら3要素のビット数はJEDECにより規格化されており、DDR3で容量1Gbit、データ幅16Bitの場合は、以下のようになっている

BANK: 3bit

ROW: 13bit

COL: 10bit

概念的には以下に示す絵のようになる。

メモリにライト、あるいはメモリからリードするには上記3つのアドレスを指定しなければならないわけだが、DRAMの場合、このアドレスを指定する手続きが独特の方式になっている。リードでは以下のようになる。

    1. DRAMにBANKとROWアドレスを入力する(ACTコマンドの入力)

    2. DRAMにCOLアドレスを入力する(READコマンドの入力)

    3. DRAMからデータが出力される

    4. BANKとROWアドレスが同じで、COLアドレスが異なるだけの場合、2と3のみを繰り返し異なるアドレスのリードが行う

    5. 当該BANKのアクセス終了処理をする(PREコマンドの入力)

    6. 1に戻って、別のBANK/ROWアドレスのデータにアクセスする

上記からわかるように、BANKとROWアドレスが同じでCOLアドレスだけを変化させる場合、ACT-READ-READ-...-PREというようにデータを読み出すことができる。

一方、異なるBANKやROWアドレスからデータを読み出す場合ACT-READ-PRE-ACT-READ-PREのように、より多くのコマンドを入れる必要がある。

ACT-READ-READ-PRE-ACTのタイミングチャートを以下に示す。

それぞれのコマンドの間に何サイクルか空きサイクルがあるが、これらは、DRAMのスペックとして最小サイクルが規定されている。代表的なものとしては、図にも示すとおり、以下のようなものが挙げられる。

    • ACTコマンドからREADコマンドの最小サイクル数間隔(tRCD)

    • READコマンドからデータが出力されるまでのサイクル数(CL)

    • PREコマンドから次のACTコマンドまでの最小サイクル数間隔(tRP)

    • ACTコマンドからPREコマンドの最小サイクル数間隔(tRAS)

READコマンドからデータが出力されるまでのサイクル数は、DRAMの初期化時にユーザが設定できるようになっており、CLは設定可能な最小値となる。

それぞれの値が小さいほど、DRAMの反応が早くなるわけで、高速なメモリということができる。理想的には全て1となるわけだ。上のタイミングチャートが、最短のタイミングで動作させているものだとすると、そのDRAMのスペックはCL-tRCD-tRP-tRAS=2-3-3-15ということになる。

このスペックは、DRAMの内部では時間で規定されるものを、動作クロックでサイクライズしたものとなっている。メモリチップのデータシートでは、時間のほうの値も記載されており、クロックスピードを落として使う場合は、サイクルで計算すると遅くなってしまうため、時間のほうで計算することもある。