パソコン用メモリの選び方
○メモリとは
メモリが何なのかいまいち分からない方は、このページに解り易く説明されているのでご参考に。
http://buffalo.jp/products/catalog/memory/memory-guide/index.html
○どのくらいメモリ容量があれば快適になるのか
一般的には、そのOSが推奨しているメモリ容量の2~4倍程度あれば十分に快適であると言われている。
例えば、Windows XPでは256MBが推奨メモリ容量なので512MB~1GB。Vista(32ビット)では1GBを推奨メモリとしているので2GB以上。もちろんこれ 以上にメモリを積んでいてもいいが、費用対効果のことを考えるとこのくらいの容量が最も適当。
これらの目安はあくまでもWindowsのデスクトップ用途に限る。画像や音楽、動画編集などの重い処理をするのであればメモリは利用可能な限り多いほうがよい。
○認識できるメモリ容量
使用可能な最大のメモリ容量を制限する4つの壁
1.CPU
64ビット対応であれば最大16EB(約1641万テラバイト)
64ビット非対応なら4GBが最大使用可能メモリ。
2004年以降の一部の機種で64ビット(x86-64)に対応。
現行の機種はほとんどが対応している。
x86-64は従来の32ビット命令(IA32)と64ビット命令(AMD64,Intel64)の両方を使うことができるアーキテクチャで、現在これが主流。
ちなみに64ビットアーキテクチャはx86-64の他に、ppc64やIA64などがある。
2.マザーボード、チップセット
自作PCの場合はマザーボードの仕様、メーカー製PCの場合はその機種の仕様に最大搭載可能メモリが記載されている。
Vista登場前後までの機種は64ビットメモリ空間に対応していないものが多く、4GBまでしかサポートしない機種がほとんど。
現行の機種の多くは64ビットに対応し、現在は1スロットあたり最大4GBのメモリを搭載すると予想して最大搭載可能メモリを決めることが多い。
(実際の制限はチップセットのメモリコントローラによる。また、Intel Core i7等はCPUにメモリコントローラを内蔵しており、最大32GBまでサポートする。)
3.OS
OSには32ビットプログラムにしか対応しない32ビット版OS と64ビットプログラムにも対応する64ビット版OSがある。
64ビット版OSで32ビットプログラムを実行することはできるが、32ビット版OSで64ビットプログラムは実行できない(作り方次第では32ビット/64ビット両対応のプログラムを作成でき、これは32ビットOSでも実行できる。)
また、32ビットOS用ドライバは64ビット(32ビットの範囲外)のプログラムのデータを処理できないので、64ビットOSを使う場合は64ビット対応のドライバが必須。
そして、32ビット版OSは32ビットの範囲のメモリしか管理できないので最大使用可能メモリは4GB。ただし上位約1GB分はメモリではなくハードウェアとの入出力に割り当てられるので使用できない。よって約3GBが32ビット版OSの最大使用可能メモリ。
実は一部の32ビットOSではPAE機能を有効にすることで最大64GBまで使えるようになるのだが、グラフィックやサウンド関係のデバイスドライバでア ドレスを正しく処理できないことがあり動作が安定しないということで、Windowsではサーバー向けのラインナップでしか使用できない。多くの Linux系OSでも標準では無効になっている。
現行の64ビット版OSは64ビットとは言うものの、64ビットの範囲のメモリを全て扱うことはできない(メモリ管理の問題、大容量メモリを搭載するテスト環境がない以上サポートできない、エディションの差別化のため、など)
x86-64版での最大使用可能メモリの例を挙げると、
Windows Vista / 7 Home Basic : 8GB
Windows Vista / 7 Home Premium : 16GB
Windows XP x64 Edition / Vista Business, Ultimate : 128GB
Windows 7 Professional, Ultimate : 192GB
Windows Server 2008 R2 Enterprise : 2TB
Mac OS X Server v10.6(Snow Leopard) : 96GB(理論上は16TB)
Red Hat Enterprise Linux 5 : 256GB(理論上は1TB)
SUSE Linux Enterprise Server 11 : 16TB(理論上は64TB)
4.プログラム(アプリケーション)
これは壁どころか、上の3つの壁を満たす以前の問題なのかもしれないが、位置関係上ここで挙げておく。
ハードやOSが対応していてもプログラム(CPUに送る命令)が対応していないと意味がない。
32ビット命令しか使わないプログラム(32ビットアプリケーション)は結局64ビットの拡張範囲を扱えない。
つまり、せっかく上の3つの壁を満たしてメモリを存分に搭載していてもその意味がない。
64ビットの広大なメモリ領域を存分に使うのであれば、64ビット命令を使うようにプログラムを作り直す必要がある。
(利用者側としては64ビット対応のアプリケーションを利用する。)
○メモリの種類
・DIMM, SO-DIMM, MicroDIMM
広義にはこれら3つ全てをDIMMと呼ぶ。従来のSIMM(Single Inline Memory Module)は両面の接点が同じで32ビット幅であったのに対し、両面の接点を別々に全て使い、64ビット幅で1度に2倍の64ビットのデータをやり取 りできるのでDIMM(Dual Inline Memory Module)と呼ぶようになった。
広義のDIMMはデスクトップPC用(普通DIMMと呼んだらこれ)とノートPC用(SO-DIMMやMicroDIMM)に分かれている。
この3つは見た目が大きく異なるので区別がつきやすい。
・DDR-SDRAM, DDR2-SDRAM, DDR3-SDRAM
DIMMが広義には概念、狭義には デスクトップ用DIMM という意味であるのに対しこれらはメモリの規格。駆動周波数や発熱、高速化の頭打ちが問題になる度に改訂され、DDR3が現行の最新規格。製品では SDRAMの部分が数字になっていて、これは転送レート(MT/s)を表している。これをDDRメモリは2、DDR2は4、DDR3は8で割ると駆動周波 数になる。品番によってはDDR2をPC2、DDR3をPC3と表記していることもあり、この場合、後ろにつく番号はMB/s単位で速さを表す。
DIMM、SO-DIMM、MicroDIMMの形や配線もこれらの規格で定められている。
DDR、DDR2、DDR3はそれぞれパッと見比べただけでは違いがわからないが、切り欠きの位置、ピン数、信号タイミングなどが違い互換性はない。
・(DDR3-)1066, (PC3-)8500
1066や8500は転送レートや速さを表わしていて、単位はそれぞれMT/s, MB/s。ちなみにこの2つは同じ規格のもの。
当然数字が大きいほど性能が良いので高価。
機種によっては速い駆動周波数(転送レート)に対応していない。その場合はその機種が対応する最大の駆動周波数に合わせてメモリの駆動周波数を落とす。
そのまた逆も然り。
詳しくはそのパソコンの取扱説明書等に記載されている仕様一覧に 使用できるメモリの種類(規格)が載っているのでそちらを参照。
下の2つはワークステーションやサーバーなど信頼性が求められるコンピュータのための負荷付加機能
これらの機能の対応製品を揃えようとするとかなり高価になる上、パフォーマンスも落ちるので一般ユーザーにはお勧めできない。
一般に使うパソコンはUnbuffered Non-ECCのメモリしか使わないので、"Unbuffered Non-ECC"だけを覚えればよい。
・Unbuffered, Buffered(Registered), Fully Buffered DIMM(FB-DIMM)
マザーボードとメモリチップの間に取り次ぎ役(Registered buffer)を置いているのがBuffered DIMM、これを進化させて信号線を減らした(シリアル通信化した)ものがFB-DIMM。これらとは違って信号線がメモリチップとマザーボードとで直結 しているのがUnbuffered DIMM。
ほとんどのパソコンはUnbuffered DIMMを選べばよい。
32GB以上(メモリが8枚以上)の大容量メモリを扱うことがあるワークステーションやサーバーではBuffered DIMMやFB-DIMMを使用する。これらのメモリはチップセットが対応している必要があり、一般向けのマザーボードはほとんどが対応していない。
・Non-ECC, ECC
ECC機能付きメモリは64ビットの入力データごとに8ビットの訂正符号をメモリ上のECC部に追加。データ出力の際に入力データとの食い違い(エラー) を検出・訂正することができる。これにより物理的要因でメモリのデータが変わっても訂正して稼働を続けたり、重大な問題を起こさないうちに停止することが できる。連続稼働するサーバーなど、長期に渡ってメモリにデータを保存する場合はECC機能付きのメモリを使用することが多い(一般に物理的要因によるエ ラーは1年間連続稼働して2程度と言われている。)
Non-ECCはECC機能がないメモリ。
一般のパソコンではプログラムのバグのほうがずっと多いわけで、マザーボードもほとんどがECC機能に対応していない。
以上をまとめるとメモリの種類は
・Unbuffered Non-ECC : 一般のパソコンはこれ。一般に売られているものは特に記述がない限りはこのタイプ。
・Unbuffered ECC : ワークステーションの一部はこれを使っていることがある
・Buffered/Fully Buffered ECC : ワークステーション・サーバー向け
×
・DIMM : デスクトップ型PCやサーバーその他向け
・SO-DIMM : ノート型PC向け
・MicroDIMM : さらに小さいPC向け
×
規格・速さ別に、
・DDR-XXX (PC-YYYY)
・DDR2-XXX (PC2-YYYY)
・DDR3-XXXX (PC3-YYYYY) ※XはMT/s単位、YはMB/s単位
の組み合わせから成り立っている
○メモリの品質
(一般的に)安全性の高い順に挙げる。
*メーカー純正・・・そのPCを製造したメーカーが動作を確認・保証したメモリ。最も安全性が高くサポートもある。ただしメーカー直販のため、市場に出回る製品と比べると価格が非常に高い。
*A級品・・・生産したメモリチップやメモリに対してテストを行い、結果が特に良好だったメモリがA級品として選ばれる。品質は一部のサーバー用メモリや メーカー純正品相当。残りはB級品やバルク品として出回ることになる。パッケージにちょっとしたソフトが付いてくる場合もある。価格は少し高め。
*B級品・・・A級品として選ばれなかったものの、生産上の誤差や個体差の範囲内にあるメモリはこちらに回される。A級品と比べ品質にばらつきがあるもの の、通常動作には問題ないものが多く、メーカーによっては永久保証を行っているところもある。品質レベルではA級品との明確な差はないし、メモリのラベル にもそのような記述があるわけではない。
相性問題・初期不良の製品は少なめ。パッケージはシンプル。価格は手ごろなものが多い。
オーバークロックメモリやヒートシンク付きメモリなど変わったラインナップもある。
*バルク品・・・化粧箱や付属品はなくメモリだけで売られる品。ノーブランドとも言う。ノーブランド=出所不明で、全てが動作不良品というわけではない が、テストの過程で信号特性が悪い等の理由で落とされたメモリが含まれ、中には粗悪品(コンデンサーや抵抗を省略したもの等)も含まれる。また、保証も付 いていないものが多い。価格は安い。
※信号特性が悪い(メモリの電源電圧が不安定になる)と、相性問題が起きやすくなったり動作が不安定になることがある。
よくそこらのQ&Aにも挙がっているので言っておくと、
BuffaloやIO-DATA、Transcendなどでは同規格、同スペックで違う品番の製品が出ているが、
これはA級品とB級品の両方をラインナップに出しているところである。
Buffaloでは品番の後ろに/E、IO-DATAでは/EC、TranscendではJMから始まる品番がB級品(TSで始まる品番がA級品)と言える。
これらはパッケージや付属ソフト、保証期間が異なる場合があるので注意(TranscendはJM品番でも永久保証)
ただ、売上ランキングなどから見てもほとんどの人は安価なB級品を買っていく上、悪いうわさもあまり聞かないのでそれほどの品質差はないように思える。
SO-DIMM DDR3の4GBメモリは高い品質が求められるせいか、Buffalo、IO-DATA、TranscendともA級品相当の品番の商品だけがラインナップに出ている。
※A級品とかB級品はここで勝手につけた名称であって、一般には区別されずこのように呼ばれることもない。
○追記
10/07/25 ちょっと修正
10/07/20 メモリの駆動周波数(MHz)と転送レート(MHzと表記する場合もあるが混同しないようにMT/sと表記すべし)を混同してた。
DDRメモリは2ビットプリフェッチ、DDR2メモリは4ビットプリフェッチ、DDR3メモリは8ビットプリフェッチであり、DDR2、DDR3となるにつれて同じ駆動周波数でより多くのデータをやり取りできるようになっている。
他にもいろいろ修正。
10/07/19 全面的に書き直した。あれこれ書いたらまとまりがなくなって余計に読みにくくなったような
08/01/27 一部補正・訂正