SATOXのシテオク日記

~ふもっふ、ふもふも~

次期WindowsがARM対応

ウィンテルの牙城が崩れ去る発表がありました。
SATOXも行きたかった(2回目)5日のCESにて、マイクロソフトは次期Windowsの対応CPUにARMを追加すると発表したんだそうな。
これまで、モバイル向けのWindows CEWindows MobileWindows PhoneなどではMIPSやARM向けに対応していましたが、オリジナルのWindows NTカーネルを使うOSはx86のみでした。この対応でWindowsがARMベースの端末でも動作するようになります。
既にデモが完成しており、3Dレンダリングやメディア再生、IE、Office、USB機器動作などがARMベースで実現できてるとのこと。これは本気だ(笑)。

ARMのメリット
さて、ARMのメリットはズバリ低消費電力とパフォーマンスであると言えます。
x86アーキテクチャはかなり古いもので、互換性を保持したままマルチメディア命令の拡張などを繰り返してきました。Atomプロセッサは低消費電力を目的に設計されたプロセッサですが、それでもARMにはとてもかないません。
また、ARM社はARMアーキテクチャを他社にライセンスしており、各メーカが独自に機能を追加してARMチップを製造する事ができます。独自チップを製造できることで、拡張したい機能などを外部チップに用意する必要がなく、ワンチップ化出来ることでコストやパフォーマンス、そして消費電力面で有利に働くわけです。
余談ですが、かつてインテルもStrongARMというARMを製造しており(その後Xscaleへ)、一部のPalmなどで使われてたことがありました。

Microsoftは5日、2011 International CESにおいて、Windowsの次期バージョンでARMアーキテクチャをサポートすると発表した。
リリースの中で、次期Windowsは、AMDIntelx86アーキテクチャに加えて、NVIDIAQualcommTexas InstrumentsなどのARMベースのSoC(System on a Chip)プラットフォームをサポートするとした。

ARM上でx86ネイティブコードは動作するのか
ちょっと良く分かりませんが、.NETのアプリならともかく、x86ネイティブのコードはどうなるんでしょ。恐らくエミュレートされるとは思うのですが、そのときアプリのパフォーマンスは悪くなってしまうかもしれません。
Windows携帯で既存のx86アプリが動くようになるという噂もありますが、そもそもエミュレーション出来たとしても、UIが違う環境でまともに使えるのかどうかはちょっと不安です。
というわけで、ちょっと合点がいったのですが、Windows7 PhoneやXbox360のアプリも.NET Framework(XNA)の中間コードであり、CPUを選ばないOS/アプリ動作環境を構築していこう、というのがマイクロソフトの目指す最終形態なんだと思います。(MacユニバーサルバイナリというPowerPCx86のネイティブコードを入れたり、MacOS XではPowerPCコードをx86に変換する仕組みを搭載してイタリアします)
ちなみにAndroidもアプリは独自Javaの中間コードとなっているので、アプリは基本的にはARMだろうとMIPSだろうとx86だろうと対応できますね。