CL
CLとは、CAS Latencyの略で、キャス・レイテンシと読みます。
RAMを構成するメモリセルは、その位置が何行何列と指定できるように格子状に並んでいます。
RAMからデータを取り出す手順としては、
- CPUがデータを格納しているメモリセルの行を指定する。
- CPUがデータを格納しているメモリセルの列を指定する。
- データを入出力する。
となります。
CPUがメモリモジュールに対して、 取り出したいデータが格納されているメモリセルの場所を伝えるとき、 行を指定する信号をRAS(Row Address Strobe)、 列を指定する信号をCAS(Column Address Strobe)といいます。
CLとは、メモリモジュールがCAS信号を受け取ってから、データを入出力するまでの時間、 つまり、上の手順2から3までに要する時間をクロック数で表したものです。
例えば、PC2100のメモリモジュールでCL=2のものとCL=3のものとがあったとき、 CLが小さいほどデータの転送速度が早くなるので、 CL=2のもののほうが性能が良いといえます。
SPD
SPD(Serial Presence Detect)は、 メモリモジュールの仕様(種類、容量、エラーチェックの種類や有無、アクセスタイミングなど)が記憶されたROM(Read Only Memory)です。
パソコンが起動するとき、チップセットはSPDに記憶された情報を読みこみ、 メモリモジュールへのアクセスタイミングを自動的に設定します。
ECC
ECC(Error Checking and Correction)とは、 メモリモジュールからチップセットへ送られるデータのエラーを検出し、 それを訂正する機能のことです。
ECC機能を持ったメモリモジュールは、データを送るとき、同時に、ECCコードと呼ばれる符号を付加します。 ECCコードは送られるデータから生成されるもので、チップセットは受け取ったデータとECCコードとを 比較して、エラーを検出したり、訂正したりします。
ECC機能は、メモリモジュールの動作に必須というわけではありません。 ECC機能を持つメモリモジュールは主に、高い信頼性が要求される、サーバやワークステーションにおいて利用されます。 個人で使用するパソコンに搭載されているメモリモジュールには通常、ECC機能はありません。
RegisteredタイプとUnbufferedタイプ
メモリモジュールがRegisteredタイプであるとは、レジスタチップを搭載していることを意味します。 逆に、レジスタチップを搭載していないメモリモジュールをUnbufferedタイプといいます。
レジスタチップは半導体チップの一種です。 レジスタチップは、入力される電気信号の波形やタイミングを正しく調整する機能を持っています。 よって、RegisteredタイプのメモリモジュールはUnbufferedタイプよりも動作が安定します。
Registeredタイプのメモリモジュールは、メモリチップとメモリバスとの間にレジスタチップが仲立ちします。 そのため、データのやりとりの際、メモリバスへの負担が軽減され、より多くのメモリチップが搭載可能になります。 一方、Unbufferedタイプのメモリモジュールは、メモリチップとメモリバスとの間で直接データのやりとりをしています。
Registeredタイプのメモリモジュールは、主に、大容量のメモリを必要とするサーバやワークステーションに用いられます。 一方、デスクトップPCやノートPCで利用されるメモリモジュールは、通常、Unbufferedタイプです。
シングルサイドとダブルサイド
SIMMあるいはDIMMにおいて、メモリモジュールの片面のみにメモリチップが搭載されているものをシングルサイドもしくは片面実装といい、両面に搭載されているものをダブルサイドもしくは両面実装といいます。
なお、メモリチップが付いているのが片面だけなのか両面なのかという物理的な話と、バンク数を消費するのは1つなのか2つなのかという論理的な話を厳密に区別したい場合には、前者の場合には片面実装・両面実装という言葉を使用し、後者の場合にはシングルサイド・ダブルサイドという言葉を使用します。ここで、バンク数については、「メモリモジュールのバンク」のところで解説しています。
メモリモジュールのバンク
メモリに関しての「バンク」という言葉には、メモリモジュールのバンクと、メモリチップのバンクとあります。パソコンの自作で話題となるバンクは、メモリモジュールのほうです。
ちなみに、SDRAMは4バンク構成で、DRDRAMは32バンク構成だ、といった話に登場するバンクはメモリチップのほうのバンクです。
(メモリモジュールの)バンクというのは、メモリコントローラがメモリモジュールを管理するときの単位です。メモリコントローラは通常、チップセットに内蔵されいているので、使用できるバンク数の上限はチップセットによって決まります。この上限を超えると、増設したメモリが認識されないといったようなトラブルが起こります。
原則としては、メモリモジュールを最低増設単位枚数分だけ増設すると1バンク消費します。例えばSIMMやRIMMでは2枚単位で増設し、その際1バンク消費しています。
ところが、DIMMメモリモジュールにおいては、1枚あたりに消費されるバンク数が1であったり2であったりします。消費されるバンク数が2ということは、物理的には1枚でありながら、実質的(論理的)には2枚挿しているのと同じであると考えることができます。
バンク数はメモリモジュールに記載されていないことがほとんどなので、実物を見ても特定は難しいです。大雑把にいうと、メモリチップが片面にのみ付いているもの(片面実装)のものは1バンク、両面に付いているもの(両面実装)のものは2バンクの場合が多いです。そのため、両面実装のメモリモジュールを片面実装のものに交換したら認識した、ということが起こります。