Mac OS X Snow Leopard への道: 64 ビット、Santa Rosa、その他

Mac OS X Snow Leopard への道: 64 ビット、Santa Rosa、その他

カーネルからバンドルアプリに至るまで、Snow Leopardが全面的に64ビット化したことによるメリットは、単にメモリ容量の増加だけではありません。PCにおける大きな罠が明るみに出るだけでなく、Appleが64ビットコンピューティングにおいていかにリードしているかを浮き彫りにするでしょう。その理由を以下に説明します。

Snow Leopardに至るまでの64ビットコンピューティングの初期の導入に続き、この第2部では、システムにインストール可能で実際に使用できるRAMの量に関連する問題について考察します。さらに、特定のアプリが自身で予約できるメモリ量、64ビットアドレッシングによってOSが追加のオーバーヘッドにもかかわらずどのように高速化されるか、64ビットアプリ市場の展開状況、そしてAppleがデスクトップにおける64ビット化をどのように先駆的に進めているかについても検証します。

Mac OS X Snow Leopard 1への道: 64ビット

2: 64ビット、サンタローザ、そしてPCの大詐欺

3: RAMが2倍、価格が半分、64ビット

4: 64ビットアプリの将来

仮想メモリ、PAE、そして4GBの壁

現時点では、64ビットOSを使用している場合でも、4GBを超えるRAMを必要とするメインストリームユーザーはほとんどいません。OSは広大な64ビット仮想アドレス空間を管理し、必要に応じて限られたRAM容量にメモリをページングし、必要に応じてハードドライブをオーバーフローとして使用することができます(左下)。しかし、一般ユーザーはいずれ4GBのメモリをフルに使いたがるようになり、多くのパワーユーザーは現在、それ以上のメモリを必要としています。

32ビットアドレス指定のハードウェアは一度に4GBのRAMしか扱えないため、より多くの物理RAM(右下)を活用するには、IntelのPAE(物理アドレス拡張)などの特別な技術が必要です。PAEは、システムがアクセスできるRAMの量に余裕を持たせることができ、カーネルが比較的低速なハードドライブにメモリをページイン/ページアウトする必要性を軽減する上で重要な要素となります。

新しいMac ProまたはXserveで動作するMac OS Xは、PAEを使用することで最大32GBのRAMを搭載できます。LinuxもPAEを使用できますが、32ビットWindows PCでは搭載RAMの最大容量は4GBに制限されています。Windows XPは当初、PAEを使用して4GBを超えるRAMの使用をサポートしていましたが、ドライバのバグに関連する問題が発生したため、MicrosoftはWindows XP SP2からWindows Vistaに至るまで、4GBを超えるRAMのサポートを無効化しました。Vista x64、または高価な「データセンター」または「エンタープライズ」エディションを使用している場合を除き、Windows PCで4GBを超えるRAMを使用することはできません。

システム RAM vs MMIO: 「4GB はどこ?」問題

4GBのメモリ容量に窮屈さを感じているなら、ちょっと待ってください。状況はさらに悪化するからです。まず最初の問題は、Intel x86アーキテクチャの歴史的な制約で、「メモリマップドI/O」に関連しています。基本的に、ビデオカードやその他の拡張カードが使用するデバイスメモリはすべて、システムRAMが使用する4GBのアドレスの上にマッピングされます。4GBのアドレス空間全体をシステムRAMに使用したいと考えるようになる以前は、これは問題ではありませんでした。

これはMMIOがRAMを「消費する」という意味ではなく、ハードウェアがデバイス関連のメモリを物理メモリの上にマッピングするため、オペレーティングシステムがシステムRAMに使用できるアドレスが少なくなるという点に注意してください。この問題は、CPUから独立した32ビットチップセットに関連しています。32ビットチップセットを搭載した64ビットPCも存在します。例えば、2007年後半以前のAppleの64ビットCore 2 Duoラップトップはすべて32ビットアドレス指定を採用していました。

つまり、64ビットコードを実行し、64ビット仮想メモリを処理できる一方で、物理RAMは4GBまでしかアクセスできず、MMIOは約0.75GBを差し引くため、使用可能なRAMは合計3.2GBとなります。4GBをフルに搭載した場合、MMIOと競合する部分は使用されません。1GBのVRAMを搭載したハイエンドビデオカードを搭載するPCユーザーにとって、追加のMMIOはさらに大きな問題となり、使用可能なシステムRAMは約2.3GBまで減少します。

Windows PCとMacのアドレス指定可能なRAM

PC RAMの大詐欺

Intelの「Santa Rosa」プラットフォームにより、AppleのCore 2 Duo搭載マシンはチップセットのサポートを得て、内部で8GBのアドレス空間を処理できるようになりました。これにより、Santa Rosa MacはMMIOをメモリ空間の上限に押し上げ、4GB未満のアドレスをすべて解放することで、システムでメモリの全容量を利用できるようになりました。32ビット版Windowsはこれに対応しておらず、逆にMac OS X Leopardにも32ビット版は存在しないため、「4GBの空き容量はどこにある?」という問題は、今後Windowsのみの問題となります。

AppleはSanta Rosaプラットフォームを採用する以前、このため、ラップトップのRAMを最大3GBまでしかサポートしないと宣伝していました。しかし、多くのOEM(Original Equipment Manufacturer)PCメーカーは、オペレーティングシステムが実際にはRAMの大部分を活用できないにもかかわらず、自社のマシンが4GBのRAMをサポートしていると宣伝しています。32ビットアドレス指定しかサポートしないハードウェアでは、どのオペレーティングシステムも4GBのRAMをフルに活用することはできません。しかし、4GBのRAMをフルに活用できるSanta Rosaスタイルのハードウェアであっても、主流の32ビットWindows VistaはMMIOの再マッピングができないため、3.2GB以下しか使用できません。

この問題について相談したある開発者は、「消費者はPC OEMによって大規模に騙されています。OEMは、使用可能なRAMが2.3GBに制限されているにもかかわらず、顧客に2GBマシンを4GBにアップグレードするよう勧めます。これは、大容量のRAMに加え、巨大なグラフィックカードを搭載したハイエンドゲーム機で特に問題となります」と指摘しました。

「MicrosoftはOSが利用可能なRAM容量を報告する方法まで変更しました。噂によると、これはOEMからの圧力によるものだそうです」と開発者は語った。「Vista以前では使用可能なRAMを報告していましたが、SP1では搭載されているRAMを報告するように変更されました。ビデオメモリとの重複によりRAMの大部分が使用できないという事実を無視しているのです。」そして、多くのPCユーザーがPCに4GBのRAMを搭載し、それがシステムによって使用されていると考えていますが、実際にはRAMをCDスロットに半分だけ差し込んだだけのものと同じくらいしかメリットがありません。

例えば、Dellの最高級ゲーマー向けPC、Alienware(5,799ドル)は、標準で1GBのビデオカード、2GBのRAM、32ビット版Windows Home Premiumを搭載しています。つまり、システムで使用できるRAMは2.3GB程度にとどまりますが、Dellはユーザーに250ドル(または分割払いの場合は月額8ドル)で4GBのアップグレード(下記参照)を「推奨」しています。しかし、1GBのビデオカードと約750MBのその他のMMIOメモリによって、残りの2GBは使えなくなるため、4GBのアップグレードは自慢できる程度にしかならないでしょう。Dellは「メモリをアップグレードすると、システム性能を最大限に活用できるだけでなく、システム効率も向上します」と述べていますが、このページではそれは全く事実ではありません。

Dell Alienware RAM詐欺

次のセグメントでは、Mac OS X での RAM の使用に関する別の側面を見て、なぜアプリが Windows Vista のアプリよりも多くのメモリを使用できるのか、またこれが Snow Leopard でのパフォーマンス向上とどのように関係するのかを説明します。