|
●San Jose Mercury Newsがすっぱ抜いた
IntelがIA-32アーキテクチャの64bit拡張アーキテクチャを密かに開発していた。こんなニュースが、先週末、飛び交った。震源は「Intel's Plan B chip stirs internal debate」(San Jose Mercury News:02/01/24)で、Intel内部で開発に関係していたスタッフの証言を元にした記事ということになっている。記事によると、Intel版の64bit拡張は「Yamhill Technology」と呼ばれ、Pentium 4後継の次世代CPUコア「Prescott(プレスコット)」にインプリメントされるという。AMDの64bit拡張「x86-64」と同じように従来のIA-32アーキテクチャを64bitに拡張したものらしい。ただし、すぐにこの機能がオンにされるというわけではないという。記事は、Yamhillがバックアップだと伝えており、ItaniumのIA-64アーキテクチャのアドバンテージを失わせるため、インプリメントはしても本当に導入するかどうかわからないと言っている。
Intel版x86-64、これは衝撃か? じつは、そうでもない。
業界の一部では、もうかなり前から、Intelがこうしたプランを持っているだろうと噂されていた。特に、メモリの関係の人は、そう考えていた。それは、32bitアーキテクチャのままでは、メモリの物理的に搭載可能な容量が増えると、CPUのメモリアクセス空間が足りなくなってしまうからだ。つまり、半導体側から見ると、Yamhillプランはしごく当然のなりゆきなのだ。
64bitアーキテクチャが必要なのは、64bit演算能力のためではなく、まずは64bitアドレッシングのためだ。32bitでは、メモリのアドレス空間が4GBに制約されてしまう。4GBはかつては無限に近い空間だったが、今となっては壁が目前に迫っている。Intelは、この壁を破るためにXeonファミリでは36bitアドレッシングで64GBのメモリ空間をサポートしている。しかし、これは言ってみれば応急措置で、アーキテクチャ的に言えば64bitフラットアドレッシングが望ましい。
●アドレッシングの拡張プランを認めるIntelのゲルシンガーCTO
そのためにIntelが用意した64bitアーキテクチャは「IA-64」だった。しかし、IA-64はIA-32の拡張ではなく、命令セットレベルから大きなアーキテクチャ転換を目指したものだった。つまり、大きなジャンプだ。そのため、IntelはIA-32とIA-64を平行して開発・提供しつづけることにした。
Intelは、もともとのプランではIA-32の領域のかなりの部分をIA-64で置き換えてゆくつもりだった。つまり、32bitアドレッシングの壁が来る前に、IA-64が浸透してくる見込みだったのだ。アドレッシングの制約が、IA-64移行の原動力となるという読みもあったのだと思う。
ところが、Intelはその計画を大きく変えた。現状では、IA-32が寿命を終える時は見えない。そのため、IA-32アーキテクチャにも、64bit拡張が必要になってしまったのだ。
では、具体的にいつ、64bitアドレッシングが必要となるのか。おそらく、Intelは2世代後、つまり2005~6年にデビューするCPUアーキテクチャまでに、64bit(ないしはそれに類する)拡張をオンにすることになるだろう。
じつは、Intelのパトリック・ゲルシンガー副社長兼CTO(Patrick Gelsinger, Vice President & Chief Technology Officer)に、昨年9月にインタビューした際にこの件について質問した。その時、ゲルシンガー氏は次のように答えている。
[Q] IA-32アーキテクチャは、今後、どれだけの期間残ってゆくと思うか。
[ゲルシンガー氏] 私には3つのタイムフレームがある。来年と次の10年と永遠だ(笑)。IA-32については、次の10年、非常にヘルシーに残ることに疑問はない。もっとも、その先の予測は難しいが。
[Q] IA-32アーキテクチャを10年継続するとしたら、1つ問題がある。それは32bitアドレッシングだ。システムのメモリ搭載量がどんどん増大するため、32bitアドレッシングは10年以内に限界に達する。IA-32アーキテクチャの64bit拡張はしないのか。
[ゲルシンガー氏] 10年以内に、我々が32bit以上のアドレッシングをする必要があるのは確かだ。しかし、これから5年の間は32bit以上の必要はないだろう。5~10年の間のどこかということだ。
●DRAMの大容量化からも計算できるYamhillの時
そう、Intelは2005~2010年(インタビューは去年)の間のどこかで、アドレッシングを拡張する。ゲルシンガー氏もそう言うのだから確実だ。また、これは、DRAMの大容量化トレンドからも、簡単に計算できる。下の図の1つ目がPCのメモリ搭載容量のトレンドの推測、2つ目がミッドレンジのデュアルプロセッサクラスのサーバーのメモリ搭載容量のトレンドの推測だ。
PCのメモリ容量とCPUのアドレス空間 | サーバーのメモリ容量とCPUのアドレス空間 |
まずDRAMデバイス。半導体業界のロードマップである「International Technology Roadmap for Semiconductors (ITRS)」を見ると、量産レベルのチップは次のスケジュールとなっている。
512Mb | 2001年 | 130nmプロセス |
1Gb | 2004年 | 90nmプロセス |
4Gb | 2007年 | 65nmプロセス |
最近のトレンドからすると、実際には4Gbの前にハーフ容量の2Gbが来るような気がする(4Gbは65nm時に183平方mmと予測ダイサイズも大きすぎる)が、とりあえずITRSに沿うとこうなる。サーバーの場合は、こうした新しい大容量ダイが登場すると、すぐに使われる。ロードマップと、それほどずれがない。ちなみに、Stacked(2つのダイを重ねるパッケージ)タイプはこれより早く出てくる。
一方、PCの方はビットクロス(2つの容量世代でbit当たりの単価が同じになること)が来るまでは、大容量チップはほとんど使われない。ちなみに、2002年は128Mbitチップから256Mbitチップへのビットクロス(=移行)の年で、もし順調に大容量化トレンドが続くなら、2年後あたりで512Mbitチップ、4年後に1Gbitチップへの移行が進む。これには異なる見方もあるが、とりあえずはこのスケジュールに沿うと次のようになる。
チップ | PC向け | サーバー向け |
---|---|---|
256Mbit | 2002 | - |
512Mbit | 2004 | 2001 |
1Gbit | 2006 | 2004 |
4Gbit | 2009? | 2007 |
●サーバーは4年後、PCは6年後までにYamhillが必要に
次に、メモリモジュールはどうなるか。容量を推定してみよう。PC向けのUnbufferedの普通のメモリモジュールがマックス16チップで、サーバー向けの普通のRegisteredがECCを含めてマックス36チップという状況が続くと仮定する。これもどうなるか疑問があるし、例外もあるが、いちおう仮定すると下のようなモジュール当たり容量になる。
チップ | PC向け | サーバー向け |
---|---|---|
256Mbit | 512MB | 1GB |
512Mbit | 1GB | 2GB |
1Gbit | 2GB | 4GB |
4Gbit | 8GB | 16GB |
ではこれで、システム搭載メモリ量はどうなるか。PCがUnbufferedで2スロット、サーバーがRegisteredで4スロット×2チャネル=8スロットが続くとする。そうすると、メモリ量は次のようになる。
チップ | PC向け | サーバ向け |
---|---|---|
256Mbit | 1GB | 8GB |
512Mbit | 2GB | 16GB |
1Gbit | 4GB | 32GB |
4Gbit | 16GB | 128GB |
というわけで、IntelのIA-32 64bitアーキテクチャYamhillは、絶対確実に存在する。また、それはIA-64のバックアッププランでも、AMDのx86-64への対抗プランでもない。始めはIA-64のバックアップだったかもしれないが、今はIntelにとっては必然の拡張だ。
そして、もし2006年に32bit以上のアドレッシングが必要になるとしたら、CPUコアアーキテクチャのサイクルで考えると、Intelは必ず次の次の世代のCPUコアで64bit拡張をしなければならない。そして、ソフトウェア側の対応を考えると、その前の世代(Prescott)から64bit拡張をオンにするのが望ましいことになる。サーバーの方が差し迫っていることを考えると、サーバー側で先に発表される可能性が高い。勝手な予測をすると、IntelはまずPrescott/Nocona世代で、まずサーバーで64bitアーキテクチャをオンにし、次のCPUコア世代でPCでもオンにするのではないだろうか……、Hyper-Threadingと同じように。
(2002年1月31日)
[Reported by 後藤 弘茂]