解説

IDF Spring 2004レポート
64bitへ動き出したIAサーバの胎動

1. IA-32の64bit拡張のインパクト

元麻布春男
2004/03/06

解説タイトル

 2004年2月17日から3日間、Intelの開発者向けのカンファレンス「Intel Developer Forum(IDF) 2004 Spring」が開催された。今年で8年目を迎えたこの開発者向けのイベントは、今回から開催地を米国カフォルニア州サンノゼからサンフランシスコへと移したが、14回目にして初めての雨と強風に見舞われた。肝心の内容も、真新しさという点では天候同様もうひとつパッとしない印象が否めない。そんな中で最も話題を呼んだのは、やはり「64-bit Extension Technology」だろう(「解説:64bitプロセッサ新時代の投資術」参照)。最初の基調講演を行った最高経営責任者(CEO)のクレイグ・バレット(Craig Barrett)氏自らが「サンフランシスコ最大の秘密」と呼んだ同テクノロジは、これまで「Yamhill(ヤムヒル)」という開発コード名で知られていたものだ。事前には「CT」という名称で呼ばれる、という情報もあったが、今回のIDFではこの名称が用いられることはなかった。

話題の中心は64-bit Extension Technology

 64-bit Extension Technologyは、汎用レジスタを64bitへ拡張すると同時にいくつかのレジスタを追加し、論理アドレスを64bitへ拡張するものだ。これを採用するプロセッサは、既存のIA-32プロセッサ互換の動作モード(IA-32モード)に加え、上記の64bit拡張をサポートしたIA-32eモードをサポートする。

 Intelは64-bit Extension Technologyを、デュアルプロセッサ対応の次期Intel Xeonを皮切りにサーバ/ワークステーション向けプロセッサに採用すると発表した。この次期Intel Xeonは、開発コード名「Nocona(ノッコナ)」と呼ばれており、90nmプロセス製造により、2004年中ごろにリリースされる予定だ。また、シングルプロセッサ対応のサーバ/ワークステーション向けのPrescottについては2004年内に、4ウェイ以上のマルチプロセッサ構成に対応したIntel Xeon MPについても2005年から同テクノロジを採用するとしている。Intelは、64-bit Extension Technologyを搭載したPrescottについて、Pentium 4とは一切呼んでいないことから、Intel Xeonブランドが用いられる可能性もある。なお、クライアントPC向けのプロセッサでこの技術をサポートするとはついに明言しなかった。また、別の64bitアーキテクチャであるItaniumプロセッサ・ファミリ(IPF)における、IA-32アーキテクチャのソフトウェア・エミュレーション機能であるIA-32EL上でのサポートについても、「顧客からの要望があれば」と述べるにとどまっている。

 64-bit Extension Technologyが話題を呼んだ最大の理由は、これがAMDのAMD64アーキテクチャと互換であるからだ。64-bit Extension Technologyを搭載したIntel製プロセッサがサポートするIA-32eモードは、基本的にAMD64アーキテクチャでいうところのロング・モード(Long Mode)に相当する。ロング・モードは、64bit拡張モードをサポートしたOS下で64bitアプリケーションの実行が可能な64-bitモードと、同OS下で32bitアプリケーション互換性を実現する互換モード(Compatibility Mode)の2つのサブ・モードを持っている。IA-32eモードで拡張されたレジスタ・セットは、AMD64のロング・モードと同一になるよう調整されており、同じプラットフォームでのサポートを意識したものであることは間違いない。実際Intelは、AMD64アーキテクチャとの互換性について、「両社のプロセッサは基本的に異なったアーキテクチャであり、Intelの64-bit Extension TechnologyをサポートしたプロセッサにはIntel固有の機能(SSE3、Hyper-Threadingなど)がある」としながらも、「同じOS上で同じアプリケーションが動作する」と認めている。つまり現行のIA-32プロセッサ間、例えばPentium 4とAthlon XPの間と同じ程度の互換性は64bit拡張プロセッサでも維持されるわけだ。これまでx86アーキテクチャのプロセッサにおいてIntelが他社の後追いをしたことはなかった。64-bit Extension Technologyは、同社が初めてAMDの後追いをした格好となる。

セキュリティの向上を目指す「NX」

 この64bit拡張にも関連する技術としてIntelがサポートを表明したのが、「NX」と呼ばれる技術だ(図1)。No eXecuteの略であるNXは、メモリ・ページの属性に非実行属性を付与するもの。これをサポートしたシステムにおいては、明示的に実行可能(ページ・テーブル上のNX bitをクリア)にしない限り、そのメモリ・ページ上のコードを実行できない。この機能により、例えばウイルスやワームなどがバッファ・オーバーランを利用して攻撃用プログラムを不正に実行することを回避可能だという。同様の機能は、AMD64アーキテクチャにおいても、レガシー・モード(Legacy Mode:32bitモード)とロング・モードの両方でサポートしている。また、IntelもすでにIPFではサポートを行っている。今回のIDFで、Intelは2004年後半にもクライアントPC向けプロセッサでNXをサポートすると表明した。

図1 ビル・スー副社長の基調講演で示されたセキュリティに対する取り組み
企業向けクライアントPCの保護レベルを高めるために実装される機能が示された。「HT」の隣に「NX」と書かれている。

 AMD64アーキテクチャの実装では、NXのサポートにはPAE(Physical Address Extensions)が必須となる。Pentium Proで導入されたPAEは、IA-32プロセッサの32bit論理アドレスはそのままに、物理アドレスを拡張するものだ。理論上は52bit(4Pbytes)まで拡張可能とされているが、実際の実装は36bit(64Gbytes)程度となっている。AMD64プロセッサのロング・モードもこのPAEを利用しており、理論上の最大論理アドレスは64bit(16Ebytes)、最大物理アドレスは52bit(4Pbytes)だ。ただ、現行のAMD Opteronにおける実装では、論理アドレスが48bit(256Tbytes)まで、物理アドレスは40bit(1Tbytes)までとなっている。AMDは、NX bitをPAEで拡張されるテーブルに設定しているため、レガシー・モード、ロング・モードを問わず、NXの利用にはPAEを有効にすることが不可欠となる。

 現時点ではIntelがIA-32プロセッサに、どのようにNXを実装するのかは明らかでない。しかし、IA-32eモードについては現時点でIntelが唯一公開している64bit拡張に関するドキュメントである「64-bit Extension Technology Software Developer's Guide Volume 1(文書番号300834)」では、AMDがNX bitに用いている部分をすべて予約(Reserved)としており、明示的にNX bitとして利用することにはなっていない(Intelの「64-bit extension technologyのページ」)。とはいえMicrosoftは、IPF向け64bit版Windows(Windows XP 64-Bit Edition Version 2003、Windows Server 2003 for 64-Bit)とIA-32e/AMD64アーキテクチャ向けWindows(Windows XP 64-Bit Extended Systems、Windows Server 2003 for 64-Bit Extended Systems)に加え、32bit版のWindows XP Service Pack 2(SP2)でもNXのサポートを行うことを明らかにしている。蛇足になるが、32bit版のWindows XP SP2では、ドライバの互換性問題から物理アドレス空間はPAEをサポートしない現行のWindows XPと同じ4Gbytesに制限される。

 MicrosoftがWindows XP SP2に関して公開している情報によると、NXのサポートにはプロセッサがPAEモードであることが必須とされており、AMDの実装をなぞった形となっている(マイクロソフトの「Windows XP SP2における機能変更点」)。むしろ、NXのアイデアをインプットしたのはMicrosoftだと考えた方が自然かもしれない。Intelがクライアント向けプロセッサでNXをサポートする以上、それはWindows XPで利用できなければ意味がない。とすれば、IA-32モードのNXの実装は、AMD同様PAEモードで拡張されるテーブル上にあると考えた方が自然だろう。そうであれば、IA-32eモードも自ずと同じ方式となるハズだ。現在は「予約」となっているフィールドも、実際はNX bitとして使われることになるだろう。

 このNXの実装に限らず、64-bit Extension Technologyに関してもMicrosoftの強い影響力が感じられた。かねてよりMicrosoftは、IA-32をベースに64bit拡張を施したプロセッサの仕様を統一するよう働きかけていたと伝えられている。Microsoftにしてみれば、IntelとAMDが独自に拡張を行うと、プラットフォームはIA-32(32bit)、IA-64(64bit)、AMD64(64bit)、Intelの拡張アーキテクチャ(64bit)と4分裂してしまう。すでに市場が確立しているIA-32アーキテクチャは別として、64bitアーキテクチャが3分裂しては、共倒れになる危険性があるし、何よりMicrosoftがサポートしきれない。かつて同社は、プロセッサ・ベンダが浮動小数点をサポートしたSIMD命令セットを独自に開発しようとした際に、先行したIntel以外のプロセッサ・ベンダに対して仕様を統一するよう働きかけた経緯もある。64bit拡張仕様の統一を強く迫ったとしてもそう不思議な話ではない。

 バレット氏が基調講演で64-bit Extension Technologyを発表した際、業界各社から支持を表明するビデオが紹介されたが、その冒頭を飾ったのはMicrosoftの最高経営責任者(CEO)であるスティーブ・バルマー(Steve Ballmer)氏であった。ビデオのバルマー氏が喜色満面だったのに対し、バレット氏がつぶやくように、「こんな風に興奮を表現するやり方は見習う必要があるな」とつぶやいたのが印象に残る。少なくとも3日間のIDFを通じて、Intelの関係者から64-bit Extension Technologyに関して晴れやかな表情をうかがうことはできなかった。

64bit Windowsの動向がカギか?

 ともかくIntelとAMDの両社で互換性を持つことになった64bit拡張仕様のWindowsによるサポートだが、上述のWindows XP 64-Bit Extended SystemsとWindows Server 2003 for 64-Bit Extended Systemsで行われることになっている。Microsoftはこの2つのOS(Windows Server 2003はStandard EditionとEnterprise Editionの2種類になるもよう)を現在ベータ・テスト中で、2004年後半に入手可能になるとしている。恐らくWindows XP SP2とWindows Server 2003 SP1のリリース・タイミングに合わせるものと思われる。

 しかし、現在MicrosoftのWebサイトから無償でダウンロード可能なバイナリは、2003年秋に公開されたものと基本的には同一のものだ。デバイス・ドライバなどがほとんど添付されていない、とてもベータ版とはいえない完成度のものである。OEMなどにはもう少し更新されたバージョンが渡されている可能性が高い。だが、ベータ版の定義を製品と同じ周辺機器やアプリケーションをインストールして、本番を想定してテスト可能なものだとするなら、とても年内にリリース可能な状態とは考えられない。特にMicrosoftがTrustworthy Computingを掲げる以上、もっと広範なテストが必要なのではないだろうか。ドライバの互換性に配慮した32bit版にしても、理屈だけでなく実際のデバイス・ドライバとアプリケーションでテストしてみる必要があると思うのは筆者だけではないだろう。

 次ページでは、更新されたIPFのロードマップを解説しよう。

  関連記事
64bitプロセッサ新時代の投資術
 
  関連リンク
64-bit extension technologyのページ英語
Windows XP SP2における機能変更点英語
 
 

 INDEX
  IDF Spring 2004レポート
  64bitへ動き出したIAサーバの胎動
   1.IA-32の64bit拡張のインパクト
     2.更新されたItaniumプロセッサのロードマップ
     3.IA-32プロセッサのロードマップ
     4.クライアントの話題は利用法にフォーカス
 
目次ページへ  「System Insiderの解説」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間