Insider's Eye

64bit時代のWindowsアプリケーション開発(2)

Michael Cherry
2005/07/27
Copyright (C) 2005, Redmond Communications Inc. and Mediaselect Inc.

パフォーマンスとセキュリティ向上の仕組み

 現在の64bitプロセッサは、32bitシステムよりも優れたパフォーマンスとセキュリティを提供する。

■メモリ利用の拡大で高パフォーマンスを
 64bitプロセッサが実現するパフォーマンスの向上は、主にメモリのアドレス空間の拡大によるものだ。32bitのx86プロセッサは4Gbytesのメモリしか確保できず、これはほとんどの場合(特殊なブート・スイッチやコンパイラ・オプションを無視すれば)、アプリケーションとOSに平等に分配され、それぞれ最大で2Gbytesしか利用できなかった。対照的に、64bitプロセッサは16Tbytes、64bitプロセス当たり8Tbytesのメモリを確保できる。例えばWindows XP Professional x64 Editionを実行するコンピュータであれば、最大128Gbytesの物理メモリをサポートし、Windows Server 2003 Enterprise x64 Editionを実行するコンピュータは最大1Tbytesの物理メモリをサポートできる。いずれの場合も、仮想メモリは16Tbytesまで確保できる。

 利用できるメモリが拡大したことで、ディスクとのデータのやりとり(ページング)を頻繁に行う必要がないため、Windows Terminal ServicesやSQL Serverなど、大量のメモリが必要なアプリケーションの処理速度を格段に向上できる。アプリケーションの処理速度が向上すれば、サーバを統合し、管理を簡素化できる。例えばMicrosoftによると、リリース前のテストでは、32GbytesのRAMを搭載したサーバで64bit版のWindows Terminal Servicesを実行した場合、32bit版と比べて1.7倍の数のユーザーをサポートできたという。

 64bitプロセッサのパフォーマンス上のメリットは、これだけではない。例えばレジスタ(オンチップ・メモリ領域)の数やデータ幅も拡張されているため、コンパイラを最適化し、頻繁にアクセスされるデータを直接チップ上に保存して、プロセッサのキャッシュやメイン・メモリからデータを取得する必要を減らすことで、高速なコードを生成できる。これは、エンジニアリング・アプリケーションや財務分析アプリケーションなど、複雑な計算を要するアプリケーションでは特にメリットが大きい。(64bitへの移植によりパフォーマンスの向上が期待できるアプリケーションの例については、コラム「64bit化で効果を発揮するアプリケーション、Officeアプリの64bit化は?」を参照)。

[コラム]
64bit化で効果を発揮するアプリケーション、Officeアプリの64bit化は?


 64bitチップは、主にレジスタ(プログラム変数を一時的に格納する領域)の数の増加、レジスタ幅の拡大、確保できるメモリ量の増大によりパフォーマンスを改善している。プロダクティビティ・スイート製品など、ほとんどのデスクトップ・アプリケーションは、現在のPCで得られる以上のメモリ性能を必要とはしないため、当面は64bit化されることはないだろう。

 しかし、次の2種類のアプリケーションについては、64bit化による恩恵が得られる可能性が高い。

■大量のメモリを消費するビジネス・アプリケーション
 OLAP(オンライン分析処理)やERP(Enterprise Resource Planning)システムなどのビジネス・アプリケーションは、大容量メモリの恩恵を受けることができるだろう。

 基本的に、データベース全体をメモリに読み込むことができるため、アクセス速度がけた違いに遅いディスクからデータを読み取る必要がなくなる。一般的には、SQL Serverの64bitバージョンを業務アプリケーションのバックエンドのデータベースとして導入し、中間層とフロントエンドは現行の32bitアプリケーションを維持する構成が考えられる。これは、Systems Management ServerやMicrosoft Operations ManagerなどのMicrosoft製品のシステムを構築する場合にも当てはめることができるだろう。システムのデータベースにはSQL Serverの64bit版を採用し、ほかのアプリケーション・コンポーネントはx64プロセッサで32bitまたは64bit版を実行できる。

■複雑な計算を要する大規模アプリケーション
 構造工学や流体解析、CADなどのエンジニアリング・アプリケーション、プロ仕様の音声画像編集・制作アプリケーション、RSAなどの高度な暗号化技術の多くは、64bitプロセッサが実現する強力な計算性能の恩恵にあずかることができる。例えば、RSAでは32bitでは表現できない数値データを操作する必要があるため、32bitプロセッサの場合は処理に先立ち、データを複数のチャンク(かたまり)に分割しなければならない。しかし、ブラウザや電子メール・クライアント、ワープロなど、ほとんどのクライアント・アプリケーションにとって、64bitへの移行により得られるメリットはほとんどない。行列データを扱うことが多い表計算プログラムであっても、極端に複雑な計算に使われるのでなければ、実質的なパフォーマンスの向上は認められないだろう。

 以上のように64bit化に適したアプリケーションの特徴を考えると、WordやExcelなどのOfficeアプリケーション製品における64bit版の提供は望めないだろう。逆に、SharePoint Portal ServerやProject ServerなどOfficeサーバ製品は、x64対応バージョンが提供される可能性がある。

■データ実行防止によるセキュリティ強化
 64bit版のWindowsは、データ実行防止(DEP:Data Execution Prevention)機能を実装している。これはアプリケーションが、メモリ領域からのコード実行を禁止する属性を付与できるようにするものだ。結果として、悪意のあるプログラム(ウイルスやトロイの木馬など)が、不正なコードをアプリケーションのデータ領域に挿入し、実行するのを防ぐ効果が得られる。

 DEPは、AMDの64bitプロセッサのNo-Execute bit(NX bit)サポートと、IntelのItaniumおよびx64プロセッサ(新しいXeonシリーズおよびPentiumシリーズ)のExecute Disable bit(XD bit)を基に実現されている。

Windows OSの64bit対応状況

 Windows OSに関しては、x64はワークステーションとサーバの両方でサポートされるが、Itaniumへの対応は今後サーバのみになる予定だ。いずれのアーキテクチャの場合も、64bit版の各種ドライバが出そろうことが、成功の鍵となる。

■ワークステーションおよびサーバでのx64対応
 デスクトップPCやワークステーション用には、今年5月にWindows XP Professional SP2ベースのWindows XP Professional x64 Editionの提供が開始されている。

 x64サーバ用には、Standard、Enterprise、Datacenterの3つのWindows Server 2003 64bitエディションが用意されている。これらは、いずれもWindows Server 2003 SP1をベースにしている。Windows Serverの今後のバージョンでは、次の中間リリース(コード名:Windows Server 2003 R2)と、次期メジャー・リリース(同Longhorn Server)も含め、x64プロセッサがサポートされる(これらのリリースの詳細については、コラム「64bit対応製品のロードマップ」の図を参照)。

 Windows Server 2003 Web Editionについては、64bit版が開発される予定はないため、このエディションがほとんど普及していないことが分かる。Web Editionは、当初Webアプリケーションの安価なホスト・サーバ製品として売り出されたが、大半のユーザーはStandard Editionなど、そのほかのWindows Serverを利用しているようだ。

■Itanium対応はサーバ版で継続
 ワークステーション向けには、Windows XP 64bit Edition 2002およびWindows XP 64bit Edition 2003のサポートが継続される予定だ。この2製品は、Itaniumを搭載した64bitワークステーションを早期導入しているユーザーが利用している可能性がある。ただし、今後のWindowsクライアントOSではItanium対応バージョンが開発される計画はない。

 Itanium搭載サーバ用には、Windows Server 2003 Enterprise EditionとDatacenter Editionが引き続き提供およびサポートされる予定である。Windows Server 2003 R2やLonghorn Serverなど、Windows Serverの今後のバージョンは、Itaniumとx64の両方のプロセッサに対応すると見られる。

■普及の課題はドライバ・サポート
 64bit Windowsの普及を妨げる最大の障害の1つは、64bit用のデバイス・ドライバがまだあまり提供されていないことである。主な理由としては2つある。1つは、周辺機器メーカーが各社のハードウェア製品の64bit用のデバイス・ドライバを提供する必要があることであり、2つ目は、開発者が32bitのカーネル・モードのデバイス・ドライバをインストールするアプリケーションを書き直す必要があることだ。

 OEMが提供する新しい64bit PCでは、グラフィック・カードなど各PCに搭載されるハードウェア用の64bitデバイス・ドライバが用意される。ただし、プリンタやエンジニアリング・アプリケーションで使われるグラフィック・タブレットなど、既存のデバイス用の64bit版ドライバが開発されるまでは時間がかかるだろう。場合によっては、メーカー側は、多くの既存の周辺機器の64bitドライバを見送る可能性もある。

 Microsoftは周辺機器メーカーに働きかけ、64bitドライバの開発を推進および支援している。2005年4月に開催されたWindows Hardware Engineering Conference(WinHEC)の基調講演においても、同社のチーフ・ソフトウェア・アーキテクトBill Gates氏が、64bitドライバの必要性を強調していた。


 INDEX
  Insider's Eye
    64bit時代のWindowsアプリケーション開発(1)
  64bit時代のWindowsアプリケーション開発(2)
    64bit時代のWindowsアプリケーション開発(3)
 
 「Insider's Eye」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間