●大容量メモリを活用するために 前回もお伝えしたメモリ価格の低落は、相変わらず止まらない。すでに底値に近いと見られていた1GB DIMMはほぼ下げ止まってきたが、2GB DIMMの最安値は3,780円と、1,000円以上も下がった。こうした、いわゆる最安値のノーブランド/バルク品のメモリ価格に引きずられるように、保証が付いたブランド品のメモリも下がり続けており、前回筆者が1枚1万円弱で購入した2GB DIMMを、今週は6,000円強で購入することができた。1週間で3,000円あまりも価格が低下したことになる。 こうしたメモリ価格の低下は、メモリメーカーの収益を直撃していることは間違いない。また、これだけDDR2メモリの価格が安くなってしまっては、DDR3メモリへの移行はかなり難しくなる。現時点でDDR2メモリ最速がDDR2-800なのに対し、DDR3メモリの最速はDDR3-1333だが、この速度差がそのまま性能差になるわけではない。現在のCPUは大容量のキャッシュメモリを搭載するため、おそらく一般的なアプリケーションでは最大で数%程度の差しか生じないだろう。これだけの性能差で、10倍以上の価格差(DDR3-1333メモリは1GB DIMMで約26,000円、2GB DIMMで約48,000円もする)を正当化することはできないからだ。 すでにAMDはCPUにメモリコントローラを内蔵しており、Intelも2008年後半に登場する“Nehalem”でメモリコントローラをCPUに内蔵しようとしている。メモリコントローラ自体をDDR2とDDR3の両対応にすることは可能だが、マザーボードを両対応にすることは、必ずしも容易ではない。2008年末~2009年にかけてのプラットフォームをどのような仕様に定めるのか、現実(安価なDDR2メモリ)と理想(高速で低消費電力なDDR3メモリ)のギャップに悩むことになるかもしれない。 それはさておき、まずは今、安価なメモリをどう活用するか、ということを考えよう。前回は大容量のメモリを利用するために必要な原則の話にとどまったので、今回は実際のシステムでメモリがどのように利用できるのかを確認することにしよう。 最初に用いたのは、ASUS「P5K-E」マザーボードによるテストマシン1(表1)だ。P5K-Eは、8GBのメモリをサポートしたIntel P35チップセットをベースにしたマザーボード。シリアルやパラレルといったレガシーI/Oを排除しつつ、PS/2キーボード端子は残しているという、古いキーボードを愛する筆者のようなユーザーにはありがたい製品だ。I/Oを追加して満艦飾になった上位モデルと異なり、余分な機能が最小限に抑えられている点、ヒートパイプなどを廃し価格を抑えている点も、筆者にとっては好ましい。P35チップセットはビデオ機能を内蔵していないので、ビデオカードにAMD Radeon HD 3850ベースの製品を組み合わせた。
【表1】テストマシン1
用意したメモリはすべてDDR2-800で、1GB DIMMが4本と2GB DIMMが4本。もちろんメモリスロットは4本しかないから、可能な限りの組み合わせ(デュアルチャネルモード限定)を 1. 2GB(1GB DIMM×2本) 上記1~5で用意し、32bit OS(Windows XP SP2、Windows Vista Ultimate 32bit版)と64bit OS(Windows Vista Ultimate 64bit版)の3種類のOSをインストール、メモリがどう認識されるのかをテストした。加えて、それぞれについてPCMark(XPではPCMark 05、VistaではPCMark Vantage)を実施、顕著な性能差が生じるかどうかも確認してみた。 OSでメモリがどう利用できるかをまとめた結果が表2だ。32bit OSでは、最大で3.25GBのメモリしか利用できない。前回述べたように、メモリマップドI/Oなどシステムが利用するアドレス領域が、32bit OSが扱える4GB以下のアドレス領域に確保されるからだ。この数字は、使用するマザーボードや周辺機器によって若干変動するものと思われるが、32bit OSでは4GB以上のメモリを積んでも、消費電力が増えるだけで、何もメリットがないことが分かる。これはVista、XPを問わない。一方、64bit OS(Vista Ultimate 64bit版)では、上限の8GBまで、メモリを搭載すればするほどOSが認識するメモリ容量が増える。
【表2】テストマシン1(P35)によるメモリ実装量と
Windowsが認識するメモリ容量(Vistaのウェルカムセンターでの表示)
ただしWindows XP SP2の結果がWindows Vista Ultimate 32bit Editionと同じであることを確認済み
ただし、利用可能なメモリ量が増えるからといって、必ずしも性能が向上するわけでもない。表3は、テストマシン1に32bit版のVistaをインストールし、PCMark Vantageを実行した際の結果をまとめたものだが、2GB以上メモリを搭載したからといって、ベンチマークのスコアは向上しない。おそらく、同時に複数のアプリケーションを利用すれば、2GBと3.25GB(4GB以上の物理メモリを実装した場合)の差は出るだろうが、物理メモリが4GBと8GBではOSが認識するメモリ容量が変わらない以上、性能差は生じない。
【表3】テストマシン1にVista Ultimate 32bit版を
インストールした場合のPCMark Vantageの結果
表4はVista 64bit版のをインストールした場合の結果だ。PCMark Vantageには、Vista 32bit版とVista 64bit版で共通に利用できる32bit版のPCMark Vantageと、Vista 64bit版でのみ利用できるPC Mark Vantageがある。ここでは両方を実行している。
【表4】テストマシン1にWindows Vista Ultimate 64bitをインストールした場合のPCMark Vantageの結果
どうやら32bit版のバイナリを使う限り、メモリ実装量やメモリ認識量が増えても、直接性能差には結びつかない。メモリ搭載量の恩恵を受けることができるのは、同時に複数のアプリケーションを動作させた場合のみという点では32bit OSと同様で、複数アプリケーションを動作させた時の上限がより高くなる、という理解で良いようだ。 64bit版のバイナリでは、2GBと4GBの間に若干の性能差があるように見える。64bitアプリケーションであれば、複数アプリケーションを利用しなくても4GBのメモリを積む意味はあるとも考えられるが、そう言い切れるほどの自信はない。 というのも、64bit版のバイナリになっても、ユーザーモードのプロセスが利用可能なアドレス空間(仮想アドレス)は、デフォルトでは2GBのままだからだ。32bit版Windowsが4GBの仮想アドレス空間を2GBのカーネルと2GBのユーザーに分割したように、64bit版Windowsでは16TB(44bit)の仮想アドレス空間を8TBのカーネルと8TBのユーザーに分割する(64bit版Windowsの仕様)。しかし、アプリケーション作成時に明示的に8TBのユーザーアドレスを利用すると指示しない限り、ユーザープロセスが利用可能なアドレス空間は2GBのままなのである(おそらくは64bit版Windows上で同時実行されるであろう32bitバイナリとの互換性のため)。 確実に言えることは、OSが認識するメモリ容量が増えれば増えるほど、同時に複数のアプリケーションを利用した際の性能低下を防ぐことができる、ということだ。64bit版OSを利用することで認識可能なメモリ量の上限はさらに引き上げられ、同時に快適に利用できるアプリケーション数の上限も上がる。また、特別に設計すれば、32bit版アプリケーションでは利用できない大規模なアプリケーションを開発することが可能で、その場合大容量のメモリも不可欠になる。 ●古いチップセットでは物理メモリのサポートが壁 ここまでは8GBのメモリをサポートしたP35チップセットを前提にした話だった。では少し古いマシンを使っているユーザーはどうだろう。というわけで、ここではもう1台、Intel 945Gチップセットをベースにしたテストマシン2(表5)でもメモリ実装量とOSによるメモリ認識量のテストを行なった。945Gチップセットがサポートするメモリは最大4GBだ。
【表5】テストマシン2
その結果は表6のとおり。32bit OSを用いた結果は、テストマシン1と変わらない。ただ、グラフィック用に128MBを割り当てているため、その分が少なくなっている。
【表6】テストマシン2(945G)によるメモリ実装量と
Windowsが認識するメモリ容量(ウェルカムセンターでの表示)
注:945Gチップセットは4GBまでのメモリしかサポートしていない
ところが64bit OSでは様子が異なる。P35チップセットでは4GB以上のメモリを実装した場合、OSがメモリを認識する量が、物理メモリの実装量に比例して伸びていったのに対し、945Gチップセットでは4GBを越えるメモリを実装しても、メモリの認識量は増えない。945Gチップセットがサポートするメモリが4GBまでという制約がハッキリと現れている。 ここでもう1つ注目されるのは、4GBのメモリを実装しても、945GチップセットではOSはメモリを3.24GBしか認識しない、ということだ。P35チップセットと4GBメモリ、64bit版OSの組み合わせでは、OSは4GB丸ごとメモリとして認識していた。それどころか、8GBのメモリをフル実装しても、P35チップセットはメモリマップドI/OやPCIコンフィギュレーションスペースのようなシステム領域に邪魔されることなく、8GB丸ごとメモリとして利用できる。
実は、この違いの理由はチップセットの改良にある。945シリーズのチップセットでは物理メモリのサポートが4GBまでであると同時に、チップセットがサポート可能なアドレス空間も4GBであった。そこで、どうしてもシステム領域とメモリの領域が重なってしまう。955Xチップセット以降の、8GBメモリをサポートしたチップセットでは、物理メモリサポートの拡張は8GBにとどめられたが、チップセットが扱えるアドレス空間は64GB(36bit)まで拡張されている。4GB以上のアドレスを扱うことが可能な64bit版OSと組み合わせる限り、メモリと重複しないアドレスにシステム領域を置くことが可能になった。 この改良は、現行の3シリーズチップセットにも受け継がれているため、G31チップセットやP31チップセットといった、サポートするメモリが4GBしかないチップセットでも利用可能だ。つまり、G31やP31では、物理メモリのサポートは4GB止まりだが、64bit版OSとの組合せにおいて、945シリーズのような3.25GBではなく、4GBを丸ごとメモリとして利用できる。 要は945シリーズの頃は、ユーザーが4GBのアドレス空間いっぱいまでメモリを実装すると想定できるほどメモリは安価ではなかったし、64bit版OSも普及していなかった、ということなのだろう。こうした細かい違いは、スペックシートを読まないと分からないことが多いので、大容量のメモリを搭載したいというユーザーは注意する必要がある。
□関連記事 (2007年12月7日) [Reported by 元麻布春男]
【PC Watchホームページ】
|