メモリ搭載量の上限

※この記事は、筆者が世代とチップセットを数え間違えていたため後日書き直されています。

うちのMacBookは最初期型で、2006年5月に購入したものだ。
当時の最新ノート用メモリであるSO-DIMM DDR2-667はとても高くて
初期状態で512MBであったメモリを1GBにカスタムして買ったのだが
昨年、MacOSX10.5 Leopardを入れたら1GBじゃ足りなくなってしまった。
LeopardでXcodeとiTunesとFirefoxを同時に利用するときつい。

今は、4GBでも4千円前後と非常に安値になっているので、
交換を考えている。飲み会代より安い。

ところで、4GB搭載しても、実際は全て利用できない。
2世代目以降では使用できるようだ。
5世代目以降のMacBookでは4GB利用が可能だ。
これは何故かと言うと、チップセット(ノースブリッジ)の差だ。

よく、OSが32bitのせいで利用できないと言われている。
それはちょっと間違いだ。
実際はCPUの機能やチップセットのサポートアドレス空間(最大メモリ量)も上限になる。
CPU的にはPentiumPro以降のCPUには物理アドレス拡張(PAE)という機能が存在し、4GBを超えるメモリも搭載できる。
そしてチップセットがどれだけのメモリを認識できるかがハードウェアの制限となる。

例えば、Core2シリーズなら64GB、Xeonは128GB、Phenomは1TB搭載できる。
しかしチップセットの最大メモリ量がそれを制限してしまう。

初期型MacBookに搭載されているチップセットは945GMだ。
最大8bankで4rankだが、一般的なノンスタックSO-DIMM(64Mチップ)だと
64M x 16b x 4 devices x 4 ranks = 2GB
と、最大2GBになってしまう。つまり2GBしか搭載できない。

しかし、2世代目のMacBookでは965GMが使われている。
こちらは本来8GBまで対応しており、同じ構成だと4GBまで搭載可能。
ただし上限の4GB目からバス等に利用するアドレスを1GB近く使用してしまい、
残った3GB強しか物理メモリを利用できないらしい(EFI仕様?)。

更に5世代目では4GBをフルに使う事ができる。
チップセットは本来8GBまで対応しているからアドレス空間の仮想上限を広げたのだろうか。
4GBの物理メモリをフルに使える。

MacOSXでは、後者の条件であれば4GBをフルに使える。
しかしWindowsXPでは、OSが最大メモリ量を4GBに制限している。
しかも制限された4GB目からメモリマップドI/O用の領域を奪うため、どんなに物理メモリを搭載しようが、3?3.6GB程度しか使えないのである。奪われる領域はOSの状態によって変わる。