ARM版Windowsはどうなるのか?


 お正月気分でいたときに、米国の家電ショー「International CES 2011(以下、CES 2011)」の基調講演で、Microsoftが「次世代のWindows OSでARMプロセッサをサポートする」と発表した。

 発表内容に関しては、米国のMicrosoftから、いくつかプレスリリースが出され、CES 2011におけるスティーブ・バルマー氏の基調講演でいくつかのデモが行われたぐらいだ。断片的な情報ばかりで、はっきりしないことが多い。

 そこで、今回は、発表された情報からARM版Windowsとはどんなモノになるのかを推測したい。特に、サーバーがARM版Windowsの登場によってどのように変わっていくのかを予想していく。

 

発表時点で分かっていることは?

CES 2011の基調講演で、ARM版Windowsに関して発表するMicrosoftのスティーブ・バルマー氏

 MicrosoftがCES 2011で発表したリリースでは、「Windowsの次バージョンで、IntelとAMDのx86アーキテクチャ、NVIDIAとQualcommとTI(Texas Instruments)などのARMアーキテクチャのSoC(System on Chip)をサポートする」としている。

 特筆すべきは、SoCをサポートするWindowsが、フル機能版のWindowsということだ。また、Microsoftが発表している次期バージョンのWindowsということは、2012年ごろのリリースが計画されているWindows 8(開発コード名)のことだろう。

 現在、組み込み機器用にリリースされているWindows Embedded Compact 7(以前のWindows CE)ではなく、多くのPCで採用されているWindows 7系統のOSがARMアーキテクチャに移植される。

 CES 2011のスティーブ・バルマー氏の基調講演では、ARM版Windowsが単なるリリースではなく、いくつかのデモも行われた。

 QualcommのSnapdragonベースのネットブックに移植したほか、TIのOMAPを使ったネットブックに移植したARM版Windows上でARM版のWord2010を動かし、エプソンのプリンタに印刷を行っている。さらに、NVIDIAのTegra2チップのプラットフォームでは、HDのビデオを再生したり、PowerPoint2010を動作させたりしていた。

 特に、IntelのAtomチップのデモによれば、CPUやグラフィック、周辺インターフェイスなどを1つにまとめた、次世代のAtomプラットフォームが名刺ほどの大きさに、メインメモリを含めてPCのほとんどの機能(外部記憶メディアは別)が収まってしまう。

 SoCは、CPUだけでなく、グラフィック機能や周辺インターフェイスなど、さまざまな機能を1つのチップにまとめることで、コンパクト化されている。同時に、システム全体で低消費電力化されているため、今までのPCと比べると同じバッテリでも長時間動作が可能になる。

 こういったメリットから、SoCは、PCよりも、携帯電話やスマートフォン、タブレットなどのデジタル家電の組み込み用チップとして利用されている。


CES 2011では、IntelのAtom、QualcommのSnapdragon、TIのOMAP、NVIDIAのTegra2をベースしたプラットフォームに次世代Windowsを移植して動かしていたIntelの次世代Atomは、名刺の大きさにCPUやメモリなどPCとしての機能のほとんどが入ってしまう。これがSoCのメリットだ
QualcommのSnapdragonで動かしていたARM版Windows。開発中のため、UIにはWindows 7と同じモノが移植されていたTIのOMAPプラットフォームでは、移植したARM版Word 2010を動かしていた

 スティーブ・バルマー氏の基調講演では、デモされたARM版Windowsは、Windows 7をベースとしたテスト版のため、ユーザーインターフェイスなどはWindows 7のままだった。

 また、ここで分かったこととしては、ARM版Windowsでは、x86アーキテクチャのエミュレーション機能などは提供されないことだ。このため、現在PCで流通しているアプリケーションは、ARM版Windowsでは全く動作しないことになる。ソフトメーカーは、新たにARM版Windowsに対応したバイナリを開発する必要がある。

 しかしMicrosoftでは、フルWindowsをARMアーキテクチャに移植するため、ARM版Windowsに対応するには、再コンパイルだけで対応すると説明していた。

 また、周辺機器を動かすデバイスドライバに関しても、ARMアーキテクチャ版を開発する必要がある。ただし、現在の周辺機器はUSBインターフェイスを使っているため、Microsoftが、USBの周辺機器のデバイスドライバに対する開発フレームワークを提供している。このため、x86アーキテクチャのデバイスドライバをベースにして、比較的簡単にARM版のデバイスドライバの開発ができると説明していた。

ARM版Windowsのデバイスドライバは、ARMバイナリで開発する必要がある。ただし、x86からの移植は簡単のようで、CES 2011の基調講演でエプソンのプリンタでWord 2010の印刷を行っていた。デバイスドライバの移植は、それほど難しいモノではなさそうだNVIDIAのTegra2プラットフォームでは、ARM版のPowerPoint 2010を動かしていた。NVIDIAのGPUの機能を生かして、PowerPoint 2010のGPUを使ったアニメーションもサポートされていた

 

クライアントPCにとってARM版Windowsの意味は?

 クライアントPCにとって、ARM版Windowsは、SoC化によりPCの機能のほとんどがコンパクト化され、軽くて、小さなPCが登場する可能性がある。また、SoCにより低消費電力化されることで、現在のPCと同じバッテリーによる長時間動作が可能になる。もしかすると、フル充電すれば、まる2日間動作するノートパソコンが発売されるかもしれない。

 このように考えれば、ARM版WindowsはノートPCやネットブックなどのモバイル用途ではメリットはある。CPUパワーを使うデスクトップPCにおいては、ARM版Windowsはそれほど、メリットはないかもしれない。

 ARMチップ自体は、IntelやAMDなどのx86アーキテクチャとは異なり、どちらかといえばCPUパワーよりも、低消費電力化に開発リソースが注がれていた。このため、低い動作クロックなどを使って、低消費電力化されていた。これを高いクロックで動かし、ある程度のCPUパワーを引き出すには、ARMアーキテクチャ自体を大幅に改良する必要があると思う。

 ソフトメーカーにとっては、ARMアーキテクチャに対応したアプリケーションを作成する必要がある。Microsoftでは、現状のx86版のアプリケーションを再コンパイルするだけで動作すると説明しているが、本当にそうなのかどうかは、実際にOSが完成してみないと分からない。

 現在、多くのソフトメーカーが採用している開発ツールVisual Studioには、ARMアーキテクチャのコンパイラは提供されていない。ただし、組み込み用のWindows Embedded Compact 7に向けたVisual Studioの拡張機能では、ARMアーキテクチャ、MIPS、ルネサスのSH4、x86がサポートされている。

 このようなことを考えれば、クライアントにとってARM版Windowsは、GoogleのChrome OSのような位置づけなのかもしれない。ブラウザをベースとしたOSよりも、フル機能をサポートしたWindows OSを利用できれば大きなメリットがある。

 ブラウザでGoogle Appsなどを動作させて、ワープロや表計算を使うよりも、x86版Office 2010と完全な互換性があるARM版Office 2010が動作すれば、多くのユーザーにとっては使いやすいだろう。

 Microsoftの次期ブラウザであるIE9では、GPU機能をサポートすることで、ブラウザ自体のパフォーマンスをアップしている。こういった仕組みをWindows Embedded Compact 7に移植するのではなく、フルWindowsがARMでそのまま動くため、ソフトメーカーにとっても、プラットフォームの単一化が進み、多くのプラットフォームに移植しなくてもフルWindows版を作成すれば、デスクトップからネットブックまでカバーすることができる。

 次世代のWindowsはSoCでも動作するようになるため、スマートフォンやタブレットなどでも利用されるかもしれない。ユーザーインターフェイスに関しては、それぞれのフォームファクタに合わせて開発する必要があるが、PCからスマートフォンなどのプラットフォームのOSのベースとしてフルWindowsが利用されれば、ソフトメーカー側にとっては複数のプラットフォームを意識しなくてもいいため、開発がやりやすくなるのではと思われる。

 もしかすると、組み込み機器用のWindows Embeddedは、次世代のWindowsでは、フルWindowsの一機能になるのかもしれない。

 

サーバーにとってのARM版Windowsの影響は?

 Windows OSにとっては、x86アーキテクチャをサポートするというのは特別なことではない。

 Windows 3.1やWindows 95などのコンシューマ向けの系列では、x86アーキテクチャだけがサポートされていた。しかし、企業向けのWindows NTは、x86アーキテクチャだけでなく、PowerPC、MIPS、DEC AlphaなどのCPUアーキテクチャをサポートしていた。

 企業向けのWindows NTも時代がたつと、複数のCPUアーキテクチャをサポートしている必然性がなくなってきた。当初考えたように、PowerPC、MIPS、DEC AlphaなどのCPUは一般的にはならず、発売されるハードウェアも減ってきた。このため、Windows 2000がリリースされる時点で、x86アーキテクチャだけになった。

 ただし、現在でもWindows Server 2008 R2 Datacenterなどの大規模なサーバーOSでは、IntelのItaniumアーキテクチャがサポートされている。

 今回発表されたARMアーキテクチャがWindows 8ベースのサーバーOSでサポートされるのかは不明だ。ただし、現状のARMアーキテクチャではサーバーOSはリリースされないのではと思っている。

 これは、現在のARMアーキテクチャが64ビットをサポートしていなかったり、サーバーで必要とするような性能をARMアーキテクチャのCPUが実現していなかったりするためだ。

 例えば、CPUコアだけを取り上げても、ARMアーキテクチャではCortex-A9からマルチコアに対応している。しかし、低消費電力化がメインになっているため、x86アーキテクチャのようにCPUコアを多数搭載するベクトルにはあまり向かっていなかった。Cortex-A9世代では、NVIDIAのTegra2のようにデュアルコアをサポートしたCPUがリリースされている。しかし、ARMアーキテクチャで、CPUコアを8、16コアといったところまでサポートしているCPUはまだない。

 また、最近のサーバーにとって必要となるCPUでの仮想化支援機能なども、現在のCortex-A9ではサポートされていない。

 しかし、次世代のCortex-A15では、クアッドコアをサポートし、仮想化支援機能やハイパーバイザーの正当性を保証するTrustZoneなどのサポート、さらに1TBものメモリ空間をサポートする。これ以外にも、フォールトトレランス機能サポートなども行われる。

 CortexーA15世代では、マルチCPUに対応したCPU間のインターコネクトもサポートされる。これにより、クアッドコアをベースとして、デュアルソケットのシステムも構築できる。

ARM社が計画している次世代のARMアーキテクチャ。最大4つのCPUコアが搭載できるCortex-A15では、仮想化支援機能、ラージメモリ、フォールトトレランス機能などがサポートされる
Cortex-A15では、AMBA4というインターコネクトにより、マルチプロセッサのシステム構成をサポートするCortex-A15までくれば、マルチプロセッサのデザインは、サーバーとほとんど変わらなくなる
NVIDIAは、Project DenverでSuper Computer並の性能を実現する

 NVIDIAでは、Cortex-A15をベースにして、独自の拡張を行ったARMプロセッサをGPUに統合しようという「Project Denver」というプロジェクトを発表した。

 Project Denverでは、Tegra 2などのスマートフォン向けのモバイルSoCだけでなく、SupercomputerまでカバーするCPU+GPGPUの開発を目指している。Project Denverに対応したSoCは、2013年にリリースが予定されている次々世代のGPUアーキテクチャ「Maxwell」でリリースされる。Maxwellは、現在リリースされているFermi世代のGPUに対して10倍以上の倍精度浮動小数点演算の性能を実現する。

 NVIDIAのMaxwell世代のGPGPUがリリースされれば、ARM版Windowsサーバーというのも実現するかもしれない。まずは、ARM版WindowsがどのようなOSになるのかは、今年秋ごろに開催されるPDC2011などで明らかにされていくだろう。

関連情報