後藤弘茂のWeekly海外ニュース

Intelの64bit拡張技術「Clackamas」がAMD64と互換である謎




 「Intel以外はみんなハッピー」

 今回のIntelの“64bit Extention Technology”の発表を一言で表すとこうなる。「IA-32e」または「Clackamas Technology(CT:クラカマステクノロジ)」とも呼ばれているIntelの64bit拡張は、限りなくAMD64に近いものだった。

 Intelのアーキテクチャでは、動作モードに「IA-32e Mode」と呼ぶ新モードを追加した。このモードの利用には64bit OSが必要になる。IA-32e Modeにはさらに「64bit Mode」と「Compatibility Mode」という2つのサブモードがある。64bit Modeは、64bitの全仕様を利用できるモードで、新しくコンパイルされた64bitコードが必要だ。Compatibility modeは、既存の16/32bitアプリケーションとのバイナリ互換を提供する。これをAMD64と比較すると、基本的な点は全て同じだ。IA-32e ModeがAMD64では「Long Mode」となっているが、違いは名前程度に見える。各モードの仕様も共通している。

【AMD64とIA-64eの動作モード】
 ModeSubmodeDefault SizesGPR
Width
OSアプリケーションの
リコンパイル
Address Operand
Intel 64-Bit
Extention Technology
IA-32e64-bit64326464必要
Compatibility32/1632/163264不要
Legacy32/1632/163232/16不要
AMD64Long64-bit64326464必要
Compatibility32/1632/163264不要
Legacy32/1632/163232/16不要

 IA-32eでは「Extended Feature Enable MSR (IA32_EFER)」でIA-32e Modeを制御する。この制御ピットの位置は、AMD64アーキテクチャのEFERの制御bitの位置と同じだ。また、コードセグメントディスクリプタCS.LとCS.Dで、2つのサブモードを切り変えるのも同じ。

 レジスタセットの拡張も同じだ。IA-32eでは整数レジスタ(GPR)は32bit長から64bit長に拡大されただけでなく8本の新GPR(R8-R15)が追加された。また、SSEレジスタも従来の8本にさらに8本(XMM8-XMM15)が追加された。いずれもAMD64で実現された拡張と同じだ。

 両社ともセグメントのないフラットな64bitアドレッシングで、4レベルのページングストラクチャを取る。ページの切り分けも両アーキテクチャでそっくり同じ。また、アドレッシングのbit数も合わせられている。両社とも、アーキテクチャ的には64bit仮想アドレス/52bit物理アドレスをサポートし、現在の実装では48bit仮想アドレス/40bit物理アドレスをサポートする。PAEをイネーブルして、64bitに移行するメカニズムも同じだ。


 これらの互換性は、ソフトウェアベンダー側から見れば、ひとつのバイナリコードで両アーキテクチャに対応できることを意味する。ソフトウェア側の対応は非常に容易となる。それを裏付けるように、IDFのキーノートスピーチではIA-32eの上で実際にWindowsとアプリケーションを走らせるライブデモが行なわれた。また、IDFの中のNVIDIAの技術セッションでも、IA-32eとNVIDIAの64bitドライバを使ったデモが行なわれた。つまり、NVIDIAはひとつの64bitデバイスドライバで、両アーキテクチャに対応できる。

 Microsoftは、Windows XP 64bit EditionとWindows Server 2003(SP1)で、IA-32eに対応することを発表している。MicrosoftはこれらのOSでAMD64にも対応する予定であり、事実上はAMD64対応が完了した時点で、IA-32eにも対応が完了すると見られる。Microsoftにしてみれば、一粒で二度おいしい的な展開だ。

AMD64とIA-32eのページング構造
PDF版はこちら
AMD64とIA-32eのレジスタ構成
PDF版はこちら

●実装は異なる?

 もっとも、ソフトウェア側からは互換であるものの、マイクロアーキテクチャ的に見ると、両アーキテクチャの実装方式は大きく異なっている可能性は高い。実際、Intelはその点を強調する。

 例えば、Prescottは32bitの整数演算パイプ2本で64bit演算を実行するアーキテクチャだともウワサされている。IDFと同時期に開催されているISSCC(IEEE International Solid-State Circuits Conference)では、Intelが2個の32bit ALUで64bit演算を行なうユニットの設計を発表している。ISSCCでの発表が直接結びつくわけではないが、IntelがPrescottでも似たようなアプローチを取った可能性はある。その場合は、シンプルに32bit演算ユニットを64bitに拡張したAMDの実装とは大きく異なる。

 ただし、それはあくまでもCPU内部の話。AthlonとPentium 4では内部アーキテクチャは大きく異なるし、拡張命令を除くx86命令が共通して走るように、AMD64とIA-32eでも同じコードが走るだろう。

●Yamhill? Clackamas? IA-32e?

 Intelの64bit拡張技術は、長い間「Yamhill(ヤムヒル)」という名でウワサされていた。しかし、今回発表された技術には「Clackamas(クラカマス)」というコードネームがつけられていたという。一部顧客には、Clackamas Technologyの略称「CT」で説明されていたらしい。これは、当初のIntelの64bitプラン(Yamhill)と、現在の技術(Clackamas)の仕様が異なっている可能性を示しているかもしれない。ちなみに、YamhillもClackamasも、Prescott開発部隊がいるオレゴン州の地名だ。

 その他、IA-32eという名称も一般的に使われていたようだ。実際、NVIDIAのTony Tamasi氏(General Manager, Desktop GPUs)はIDFのプレゼンテーションで、この技術をIA-32eと呼んでいた。他のソースからもIA-32eという名称は伝わってきている。

 だが、今回Intelは、公式にはこの技術を単なる“64bit Extension Technology”と呼び、特別な呼称やコードネームを前面に押し出すことをしなかった。これは、同じ新テクノロジであっても、コードネームを前面に押し出したセキュリティ技術「LaGrande(ラグランド)」や仮想マシン技術「Vanderpool(バンダプール)」のケースとは大きく異なる。これは、この技術をなるべく強調したくないというIntelの姿勢の表れだと受け止めることができる。

 また、Intelは真の64bitコンピューティングはIA-64と位置づけ、IA-32eは単なるIA-32の“64bit Addressing Extension”だと説明する。IA-32eというモード名自体、今回の技術が64bitの新アーキテクチャではなく、IA-32のちょっとした拡張だとする、Intelの見解を見事に反映している。

 IA-32eの用途についても同じだ。Intelは今回の技術がサーバー&ワークステーション向けであることを強調。シングルサーバー向けのPrescottでイネーブルにしても、それはあくまでもサーバー向けと位置づけるつもりらしい。つまり、AMDのように64bitを押し立てて、デスクトップPCをマーケティングしようとはしてない。むしろ、雰囲気としては、Intelは嫌々ながら64bit技術を発表しているように見える。

 でも、それは当然だろう。Intelにとって、“AMD64互換”と受け取られかねない今回の64bitは、積極的に歓迎すべきものではない。Intelにとっては、互換性がない方が利点が大きいからだ。AMD64とIA-32eに互換性がなければ、市場で力の強いIntel側がソフトウェアのサポートを集めることができる。その結果、AMD64を失敗に追い込むこともできるかもしれない。だから、Intelの戦略からは、互換性は取らない方がいいわけだ。

 ところが、フタを開けたら、IA-32eの中身はAMD64のそっくりさんだった。これは、Intelにとって屈辱的であるばかりか、相対的なIntelの影響力の低下を象徴してしまう。AMDに対してではなく、Microsoftに対する力の低下だ。それは、両社に互換性を押しつけたのがMicrosoftだろうからだ。


□関連記事
【2月18日】【IDF】64bitアドレス拡張を実装したXeonを第2四半期に出荷
http://pc.watch.impress.co.jp/docs/2004/0218/idf02.htm
【2月2日】【海外】YamhillとAMD64の互換性
http://pc.watch.impress.co.jp/docs/2004/0202/kaigai060.htm

バックナンバー

(2004年2月19日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2004 Impress Corporation All rights reserved.