今回の自作の第一歩では、CPUにPentiumⅢを選んだ。
次にメモリの増設を考えた。当初、簡単に考えていたメモリだが、実に奥が深いということが調べるにつけて判ってきた。
CPUにPentiumⅢを選んだ場合、メモリは、SDRAMを使う場合が多い(ように思う)。
最初はほとんど疑問を抱くことなく、単に「SDRAM」を買ってきて増設した。所が、マザーボードに搭載されているチップセットにより、使用できるメモリの量やタイプが限定されるのである。
メモリの購入にあたっては、マザーボードのマニュアルに書かれているメモリ情報と同時に、使用されているチップセットの仕様・規格を確認すべきである。
参考までに、私が現在使用中のマザーボードに乗っているチップセットは、インテル「i815E」であり、その主な仕様を下記に示す。
| メーカー | Intel |
| 名称 | i815E |
| 対応プラットフォーム | Socket370 |
| 対応CPU | Pentium3/Celeron |
| 対応FSB | 66/100/133MHz |
| 対応メモリ | SDRAM |
| 最大搭載メモリ | 512MB |
| メモリモジュールあたりの最大容量 | 512MB |
| メモリデバイス(単体のメモリチップ) | 16/64/128/256Mbit |
| メモリ種別 | PC100/133 non-ECC |
基本的に「i815E」の仕様から外れるメモリは使えないと考えたほうがいい。
また、マザーボード上のメモリソケットにいくら空きがあっても、512MB以上のメモリは搭載できない(チップセットがサポートしない)のである。
チップセットのメモリ仕様の確認、次は実際のメモリスペックの確認が必要である。メモリの仕様にも様々あって初心者には判りにくい。以下、個人的な備忘録としてメモリの各機能を記す。
メモリデバイス(メモリチップ)について
256Mbit=32M*8
前の数字はwordと言う。後の数字はそのメモリのbit長(1wordが何bitであるか)を表す。例えば32M*8の構成のものは、
32Mword=32M*8bit=256Mbit=32MByte(1byte= 8bit)となる。
256MBitチップが8つ(片面実装)で256MByte。
256MBitチップが16つ(両面実装)で512MByte。
「i810E」、「440BX」等のチップセットを採用しているマザーボードは、256Mbitチップのメモリを認識できないので注意が必要。
「i815」チップセットのサポートするメモリデバイスは256Mbitまでとなっている。しかし、現行のPC用のメインメモリとして使うことを考慮して、1枚で複数バンク(メモリアクセスの単位となるまとまり)構成を採用しているものが多くある。これは、メモリモジュールレベルでマザーボード側からは256Mbit以下のメモリデバイスを使用しているように見えるよう設計されており、こういったタイプは、512Mbitのメモリデバイスを使用したものでも、「i815/E/EP」チップセットなどで問題なく使用できる。
スループット(PC66/100/133)について
スループットとは、メモリチップからデータの読み書きが行われるクロック数のことで、これはCPUの動作クロックに依存する。「PC66」(最高66MHzで動作)、「PC100」(最高100MHzで動作)、「PC133」(最高133MHzで動作)。CPUのFSBクロックが100MHzなら「PC100」規格のメモリを選ぶ。
キャス・レイテンシ(CAS Latency)(CL2/CL3)について
簡単に書くと、命令後、実際にデータの読み書きが行われるまでの待ち時間(Latency)のことをCAS Latencyという。メモリスペックでは、「CL2」や「CL3」などと表記され、「CL2」は2クロックで、「CL3」は3クロックでデータを読み出す。CL値が小さいほど処理速度は速いが、CL3とCL2の体感差はほとんどない。
可能なら、同じCL値のものを使うようにする。
ECC(Error Correcting Code)について
メモリのデータエラーを検出して自動的に訂正する機能。信頼性を求められるサーバやワークステーションなどで使われることが多い。ECC機能を使う場合、チップセットやBIOSがECCに対応している必要がある。また、搭載メモリすべてをECC対応のものにしなければならない。
クライアント(個人使用)PCとして使用するのならば、高価なECC対応メモリを使う必要性はそれほど高くない。
SDRAMやDDR SDRAMのメモリモジュール(複数のメモリチップが乗った1枚のメモリボード)の場合、メモリチップが9個または18個搭載されていたらECCメモリ。
Unbuffered(アンバッファ)タイプとRegistered(レジスタ)
Registeredタイプのメモリモジュールは、メモリチップとメモリバスの間にRegister(レジスタ)と呼ばれるチップを挿入することで、より多くのメモリチップを搭載可能にしている。つまりRegisteredタイプはUnbufferedタイプに比べ、より大容量のメモリ・モジュールを実現できるというメリットがある。
Registeredタイプのメモリモジュールは、主に、大容量のメモリを必要とするサーバやワークステーションに用いられ、デスクトップPCやノートPCで利用されるメモリモジュールは、通常Unbufferedタイプである。
シングルサイドとダブルサイド(参考までに)
メモリチップが片面に付いているか両面に付いているかという物理的な面の他、メモリモジュールの「バンク」という問題がある。
メモリモジュールのバンクというのは、メモリコントローラがメモリモジュールを管理するときの単位である。メモリコントローラは通常、チップセットに内蔵されいているので、使用できるバンク数の上限はチップセットによって決まる。この上限を超えると、増設したメモリが認識されないといったようなトラブルが起きる。
SDRAMなどのDIMMメモリモジュールでは、1枚あたりに消費されるバンク数が1であったり2であったりする。消費されるバンク数が2ということは、物理的には1枚でありながら、実質的(論理的)には2枚挿しているのと同じであると考えることができる。通常バンク数はメモリモジュールに記載されていないので、実物を見ても特定は難しい。
簡単にいうと、メモリチップが片面にのみ付いているもの(片面実装)のものは1バンク、両面に付いているもの(両面実装)のものは2バンクの場合が多い。そのため、両面実装のメモリモジュールが認識しない場合、片面実装のものに交換したら認識した、ということが起こる。
メモリには相性の問題、メーカーによるクオリティの問題もある。オークションやジャンクショップで安いメモリを買い、中には違う規格のものを一緒に使ったこともあるが、幸運なことに今まで極端な不都合は発生しなかった(何が悪いか判らないが、PCが起動しないことはあったが・・)。
ここでは、オークションの出品説明に出てくる範囲の機能は書いたつもりではあるが、初心者ゆえの誤解や不正確な記述があったら御指摘をお願い致します。
主に参考にさせて頂いたサイトは、「パソコン自作NAVI」、「アットマーク・アイティ」です。