●誰もが64bitへと向かう CPUに64bit化(オーバー32bit化)への波が巻き起こっている。AMDは来年導入する「Hammer(ハマー)」ファミリにx86命令セットアーキテクチャの独自の64bit拡張「x86-64」を搭載する。サーバー&ワークステーション向け64bitアーキテクチャ「IA-64」を軌道に乗せようとしているIntelにも、IA-32(x86)アーキテクチャの64bit拡張「Yamhill(ヤムヒル)」の噂が出ている。また、IBMも、先月のMicroprocessor Forumで、64bitアーキテクチャの比較的ローコストなCPU「PowerPC 970」を発表した。これらの背後には、どうしても32bitの制約を外さなければならない切実な事情がある。 まず最初に、先々週の記事の訂正から。「PowerPC 970はApple Computerに何をもたらすのか」のPowerPC 970の記載には大きな間違いがあった。PowerPC 970にインプリメントされているのは、Power4同様にPowerPCのオリジナルの64bitモードでBook Eの64bitではない。だから、32bitモードと64bitモードの切り替えは「Machine State Register」の制御bitで行なう。モードbitによる切り替えは、x86系CPUで言うと「Extended Feature Enable Register (EFER)」の制御bitで64bitモードに切り替えるx86-64に近い。こういうばかな間違いをして本当にもうしわけない。 いずれにせよ、PowerPC 970で、Power/PowerPC系CPUも、サーバー向けのPower系列だけでなく、クライアントサイドのPowerPCも64bit化に片足をかけた(実際にはPowerPC 620で一度64bitをインプリメントした)ことになる。つまり、x86系PCもMacintoshも、64bitへの道が開けてきたわけだ。ここで重要なポイントとして浮かび上がってくるのは、なぜCPUが64bitへ向かうのか、どういう方法で64bitへ向かうのかの2点だ。 じつは、今回の超32bit化の波は、以前のサーバー&ワークステーション向けCPUの64bit化の波とは、様々な面で異なっている。そのため、単純に64bitデータ幅の演算ユニットと64bitフラットメモリモデルのサポートという展開にならない可能性がある。 ●16EB(エクサバイト)までのメモリ空間 そもそも、CPUを64bit化をしただけでは性能はそんなに上がらない。もちろん、64bit整数演算ユニットと64bit整数レジスタは、演算性能をある程度向上させる。例えば、32bitCPUでは2回に分けて行なっていた、32bitを超える整数データの処理を1回で行なえるようになる。 しかし、全体で見ると効果は劇的とは言えない。そもそも、浮動小数点演算ではすでに倍精度浮動小数点演算をサポートしているし、マルチメディア系処理ではSSE/SSE2のように128bitレジスタを使ったSIMD演算もできる。これらの部分は、CPUを64bit化しただけでは何も変わらない。例えば、CPUの並列処理性が向上するといった、アーキテクチャ上の改善はない。そのため、IntelはIA-64では、64bit化だけでなく命令セットアーキテクチャを根本から変えて、並列性の向上を図った。 では、サーバー&ワークステーションではどうして64bit化が望まれたのか。それは、もちろんメモリ空間のためだ。32bitアドレスでは最大4GBのメモリ空間までしかリニアに扱えないが、64bitアドレスなら最大16EB(エクサバイト)までのメモリが扱えるようになる。これは換算すると180億GBになる。 サーバーでは、もう10年近く前からRDBやOLTP(オンライン・トランザクション処理)で、4GB以上のメモリを望む声が上がっていた。それは、データベースをメモリに展開して、巨大なディスクキャッシュとして使うことで、応答性能を向上させようとしていたからだ。そのために、GBクラスの論理メモリ空間と、その論理メモリ空間を実メモリ上の載せるための32bitを超える物理メモリアドレッシング能力が望まれ、CPUとOSの64bit化が促進された。64bit整数レジスタによって、OSのファイルシステムを拡張できることも利点だった。 ●物理メモリ空間の必要から64bitへ だが、今回のクライアントとローエンドサーバー&ワークステーション向けCPUでの64bit化の波は、サーバー向けハイエンドCPUの時とは、かなりストーリーが異なっている。それは、アプリケーション側は、まだ4GBを超える論理メモリ空間を必要としていないからだ。 「今日、典型的なPC(の利用)では仮想メモリ(空間)は物理メモリ(空間)より小さい。それは典型的なアプリケーションのワーキングセットが、物理メモリより小さいからだ。一般的に言って、ワーキングセットがギガバイトを超えるようなアプリケーションはPCではほぼない。膨大な量のビデオや画像を(編集などで)ロードするならギガバイトの仮想メモリも必要だが、それは非常にまれなケースだ」とIntelのPatrick Gelsinger(パトリック・ゲルシンガー)CTO兼副社長(Vice President & Chief Technology Officer)は9月のIDFの際に指摘した。 つまり、サーバー&ワークステーションとは異なり、PCではそもそも仮想メモリサイズが物理メモリ以下であり、論理メモリ空間が32bitの壁を破ることを緊急に必要としていない。なのに64bitへ向かうのは、なぜか。それは、物理メモリ空間の制約が近づいているからだ。PCに搭載できる最大メモリ容量が、32bitの限界を超えつつあるからだ。 ムーアの法則で半導体チップの搭載トランジスタ数は着実に増えていく。現在のトレンドは2年に2倍のペース。DRAMチップの容量はPC向けが256Mbit品へと移行、サーバー&ワークステーション向け大容量チップは512Mbit品がやって来たところだ。今後も2年毎に容量が2倍になるとすると、PCの搭載メモリ量も2年毎に倍々になる。「今日の典型的なデスクトップPCの物理メモリの量は、512MBから約1GBになったばかりだ。約2年毎にこれが2倍になるため、2年毎に1bit分のアドレス能力が必要となる」とGelsinger氏は説明する。
ムーアの法則に従って、2年に1bit(2倍)ずつアドレス能力の必要性が増す。これは、わかりやすい法則だ。「現状では、4GBの物理メモリの制約にぶつかるまで、あと2bitの余裕がある。2年で1bitなので、これは少なくとも4年、2006年のタイムフレームまでは余裕があるということだ」とGelsinger氏は言う。 ●64bitフラットメモリかセグメントメモリモデルか
DRAMチップのトレンドの推定を元に、PCは最大16チップ/モジュールで最大2DIMM/チャネル、サーバー&ワークステーションは最大32チップ/モジュールで最大4DIMM/チャネルとしてPCやサーバー&ワークステーションの搭載メモリ量を計算すると、右の図のようになる。この図では、4GBの壁に当たる時期も、おおまかに予測ができる。 こうして図にすると、実際にはGelsinger氏の説明より、やや余裕が少ないことがわかる。それは、Intelが来年からデュアルチャネルDDRメモリをデスクトップPCに導入しようとしているからだ。これは、CPUのFSB(フロントサイドバス)に合わせたメモリ帯域を確保するためで、その結果、搭載できるメモリの量は2倍に増える。例えば、来年のチップセットSpringdaleの場合は、512Mbitチップで4GBまでをサポートする。つまり、マックスの容量では、ついに4GBの壁に到達してしまうわけだ。Intelが、DDR II世代以降でもデュアルチャネルを続けるなら、1世代早く壁が来る。 しかし、PCではまず必要とされるのは物理メモリ空間の拡張であって、論理メモリ空間の拡張ではない。そのため、サーバーCPUと異なり、解決策は複数ある。つまり、論理メモリ空間も広げてしまう64bitフラットメモリモデルか、論理メモリ空間は広げないでセグメントメモリモデルで物理メモリアドレスを広げるか、という選択だ。 フラットメモリモデルでは、64bitのメモリ空間を直接プログラム側がアドレス指定できるようになる。プログラムからは、64bitのリニアなメモリ空間に見える。それに大してセグメントメモリモデルでは64bitのメモリ空間を、仮想メモリ空間のセグメントに区切って使う。それぞれの仮想メモリ空間は、CPUによって物理メモリ空間にマッピングされる。
AMDのx86-64は、64bitフラットメモリモデル(実際には最初のインプリメントであるHammerは64bitまではサポートしない)を提供する。では、Intelはどうするのだろう。
□関連記事
(2002年11月7日) [Reported by 後藤 弘茂]
【PC Watchホームページ】
|
|