メモリーが高速に動くどうかは、クロックスピードだけでは決まりません。実際にデータにどれだけ速くアクセスできるかが重要です。
レイテンシ
命令を受けてから実際の行動が起こるまでの待ち時間のこと
メモリータイミング
メモリーの仕様には、下のように、CLの後に数字を4つ並べたものがあります。この数字の列は、メモリータイミングを表しています。
メモリータイミングはたくさんあり、重要度から3つの群に分けられています。そのうちの第1群のタイミング4つです。
CL 18-18-18-43
4つの数はそれぞれのレイテンシです。単位はclockです。
- clock -
メモリータイミングでのクロックとは、メモリーのクロック周波数の1サイクル分です。
実時間は、 1÷クロック周波数 で求められます。
それぞれの数の意味
ファーストタイミング
tCL(CAS レイテンシ)-tRCD-tRP-tRAS
tCL=CAS(Column Address Strobe Latency)
… | read/write命令 → | データ転送…
最も重要なタイミングです。
Column位置を指定し、データの読み書き(read/write)を準備する時間。
単にレイテンシという場合にはこの値を指します。
「CL=18」と簡略に表示されているものもあります。
tRCD(Row Address to Column Address Delay)
|activate命令 → |read/write命令 …
データを読み書きするバンクとRow(行)位置を指定するのにかかる時間。
tRP(Row Precharge Time)
… | precharge命令 →| …
データ処理の終わったRow位置へデータの書き戻し(=Rowアドレスの選択を解除)にかかる時間。
tRAS(Raw Address Strobe Latency)
|activate命令 → read/write命令 → データ転送 |precharge命令 → |
バンクとRow位置を指定し、データの読み書きが終わるまでの時間。
ファーストタイミングに関連して以下のレイテンシも触れておきます。
tRC(Row Cycle Time)
|activate命令 → read/write命令 → データ転送 |precharge命令 →|
データの読み書きのRow(行)1サイクル分の時間。
※メモリー(チップ)の中の位置は、Row(行)とColumn(列)で順に指定されます。
Row(行)位置の管理は〔メモリー〕バンク(ページ)が行います。
バンク → Row → Column (何ページの何行目の何番目か)
RAMチップ
CR:命令(コマンド)の発行時間(コマンドレート)
CR(Command Rate)コマンドレート
コマンド(命令)発行の際のクロック数です。
1Tとか2Tで表示されています。Tの代わりにNで表示されることもあります。
命令(コマンド)を送るには1クロック使います。1Tは1回送っていることを表し、2Tならば2回送っていることを意味します。
True Latency(真のレイテンシ)
実際にかかる時間(True Latency)は、計算で求めます。
実際にかかる時間=(メモリータイミング)÷(クロック周波数)です。
クロック周波数
クロック周波数はメモリー周波数の1/2です。
実際のメモリーでは、きっちり1/2の値にはなっておらず、製品ごと実際の駆動している周波数で表示されます。
計算用にはメモリー周波数を使う方が分かり易いので、
CL × 2000 ÷ メモリー周波数(ナノ秒) を使います。
メモリーの性能はクロック周波数の高さだけでは決まらない
DDR4-2666 は、標準では CL=19 です。
19 × 2000 ÷ 2666 = 14.25… → 14.25ns(ナノ秒)
DDR4-2666 より高クロックな DDR4-3200 は、標準では CL=22 です。
22 × 2000 ÷ 3200 = 13.75 → 13.75ns
DDR4-3200 は、DDR4-2666 よりも高速であることが分かります。
では、DDR4-2666 のレイテンシを1つだけ減らして、CL=18 にすると
18 × 2000 ÷ 2666 = 13.50… → 13.5ns となります。
13.5ns > 13.75ns
CL=18 DDR4-2666 > CL=22 DDR4-3200
CL=18 DDR4-2666 のメモリーは、タイミング的には、CL=22 DDR4-3200のメモリーと同等以上の性能を持つことがわかります。
メモリーの性能は実際にかかる時間も含めて比べないと実力は分かりません。