http://www.itmedia.co.jp/pcuser/articles/1706/27/news103.html

2017年06月27日 15時30分 更新
鈴木淳也の「Windowsフロントライン」:
(1/3)
MicrosoftとQualcommが開発を進める「Windows 10 on Snapdragon」の実力、そしてIntelも関係するWindows 10の新モバイルPCコンセプト「Always Connected PC」とは何か?
[鈴木淳也(Junya Suzuki),ITmedia]
米Microsoftと米Qualcommは、「Snapdragon 835プロセッサで動作するWindows 10搭載モバイルPC」を投入すべく、準備を進めている。OEMパートナーのPCメーカーとしては、ASUS、HP、Lenovoが名乗りを上げており、2017年後半以降にこうした製品を発売する見通しだ。

 このWindows 10はかつてのWindows RTと異なり、ARM系プロセッサで動作しながらも既存のPC版Windows 10同様、Universal Windows Platform(UWP)アプリとx86向けに記述されたWin32アプリが動作するという。

 これに対し、Intelが「x86 ISA(命令セットアーキテクチャ)の特許」を侵害している可能性について指摘していることは前回紹介した通りだ。まだ具体的な製品がないタイミングということもあり、Intelは訴訟など具体的なアクションを起こしていないが、この新しいARM版Windows 10を「無視できないレベルの競合」と認識したからこそ、このようなけん制をしたのだろう。

 今回は、6月1日に台北で報道関係者向けに披露された「Snapdragon 835で動作するWindows 10のテストプラットフォーム」を振り返りつつ、この「Windows 10 on Snapdragon」と、さらに「Always Connected PC(常時接続PC)」というMicrosoftが掲げた新しいPCのコンセプトについて掘り下げていこう。
http://image.itmedia.co.jp/pcuser/articles/1706/27/tm_1706_win10J_04_01.jpg
「Always Connected PC(常時接続PC)」というMicrosoftが掲げた新しいPCのコンセプト
「Windows 10 on Snapdragon」のパフォーマンスとエミュレーション

 QualcommがCOMPUTEX TAIPEI 2017に合わせて台北で披露したSnapdragon 835のプラットフォーム上で動作するWindows 10は非常に軽快だった。一連の動きを見る限り、何も説明されなければ、x86系CPU搭載の標準的なPCと思う方も多いかもしれない。

 デモの画面ではx86向けのOfficeアプリ各種がパフォーマンス的に問題なく動作する様子を紹介していたが、これらはエミュレーションで実現している。このエミュレーションは、通常のx86プラットフォームで動作させる場合に比べてメモリ上のフットプリントを余分に消費するという。完全な逐次実行ではなく、プログラムのx86バイナリをある程度動作中にARMバイナリに変換してしまい、これでパフォーマンスを捻出しているのではないかと推察する。
http://image.itmedia.co.jp/pcuser/articles/1706/27/tm_1706_win10J_04_02.jpg
x86版OfficeのExcelでセルを編集している様子。このデモを見る限りでは、ARM上でエミュレーション動作しているとは思わないだろう
 実際の製品投入時には、本体付属のソフトウェアの他、OfficeのようにMicrosoftが提供するアプリを中心に、ARMバイナリベースのものが用意されるという。Windowsストアで提供されるUWPアプリについても、同プラットフォームをターゲットにしたものについては、ARMバイナリ版がダウンロードされるようだ。

 UWPアプリの実体であるAPPXファイルは、アプリをダウンロードするデバイスの環境に応じて、パッケージするファイルの中身の構成を適時変更する仕組みになっている。

 つまり、通常の64bit版Windows 10であれば、それに対応したバイナリがパッケージングされ、今回のSnapdragon 835搭載PCであれば、ARMバイナリがパッケージングされた状態でダウンロードが行われる仕組みだ。これはAPPXのファイルサイズを最小限にし、ストレージやネットワーク帯域を圧迫させないための工夫となる。

 ただし、ARMバイナリを含んで最適化した形でWindowsストアに登録するかはデベロッパー次第であり、もしx86バイナリしか存在しない場合に必要となるのがエミュレーションというわけだ。

(中略)

(続きはソースで)