Part2では、RAMの物理的な構造について解説する。動作周波数と読み書き速度の関係や、「DDR」の意味などを理解しよう。

 一般的なパソコンのRAMは図1のようなメモリーモジュールとして装着されている。モジュール上にある黒いチップが記憶素子の「DRAM」だ。DRAMチップには「シンクロナスDRAM(SDRAM)」「DDR SDRAM」「ダイレクトラムバスDRAM(DRDRAM)」などがあるが、ここではかつて主流のSDRAMとその流れを汲むDDR SDRAMを主に説明する。

図1●DRAMを搭載したメモリーモジュール
図1●DRAMを搭載したメモリーモジュール
パソコンのメモリーモジュールは、記憶素子であるDRAMチップを複数搭載している。DRAMチップの種類にはシンクロナスDRAM(写真)、DDR SDRAM、ダイレクトラムバスDRAMなどがある。

 いずれのDRAMチップも、内部は図2のようになっている。0か1かを記憶する1ビットの記憶素子(メモリーセル)が格子状に配置されている。各メモリーセルはトランジスターとコンデンサーで構成され、コンデンサー内の電荷の有無で0か1を区別する。

図2●DRAMの内部構造
図2●DRAMの内部構造
DRAMの中は1ビットのデータを記録するメモリーセルが格子状に配置されている。アドレスは、行、列の2回に分けて入力され、デコーダーによって該当する行と列が選ばれ、その交点となったメモリーセルのデータが入出力回路を経由して、データバスから出力される。一般的なパソコン用DRAMでは格子面が1チップの中に4、8、16個内蔵されており、アドレスを入力するとそれぞれ4、8、16ビットのデータが同時に出力される。

 CPUはメモリー空間を読み書きする際、その対象を先に述べたアドレスで指定する。このアドレス指定はメモリー制御回路を経て、メモリーモジュール上にあるDRAMチップ内のメモリーセルの位置に変換される。最終的にDRAMチップに送られるのは、格子の行と列を指定する信号で、それらを「行アドレス」「列アドレス」と呼ぶ。それと同時に、読み出し命令が制御バスからコントロール回路に送られ、入出力回路からデータバスにデータが送り出される。書き込みの場合も基本動作は同じである。

 パソコンのDRAMチップは、メモリーセルの格子面を複数持つのが一般的だ。このため、1回の行/列アドレス指定で複数(格子面の数)のデータを出力できる。パソコンでは一度に4ビット、8ビット、16ビットを出力するDRAMが使われており、それぞれ「×4」「×8」「×16」のDRAMなどと呼ばれる。

 メモリーモジュールにDRAMチップが複数搭載されているのは、最終的な出力をCPUのデータバス幅(通常は64ビット)に合わせるためだ(図3)。例えば×8のDRAMなら8個で64ビット、×16なら4個となる。

図3●メモリーモジュールのデータ出力
図3●メモリーモジュールのデータ出力
読み出しの命令とアドレスを受け取ると、各DRAMチップからデータが出力される。SDRAMやDDR SDRAMを搭載したメモリーモジュール(DIMM)のデータバス幅は64ビットなので、DRAMからのデータ出力の合計が64ビットになるようにDRAMチップの種類や数が設計される。例えば8ビット出力(×8)のDRAMを使うならチップ上には8個の、4ビット出力(×4)なら16個のDRAMが実装されることになる。