このページの本文へ

Windows Info 第256回

ARM版Windows 10のプレビュー版でx64プログラムの動作に対応したので試した

2020年12月27日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 ARM版Windows 10(Windows On ARM)のx64コードエミュレーションのプレビューが開始された。どの程度のものなのか今回調べた。

ARM版Windows 10で、32bit/64bit版Chromeを使ってベンチマークテストをした。プレビュー版では、x64コードのChromeがインストール/起動が可能になった

 本題に入る前にCPUアーキテクチャにおけるWindowsでの用語を整理しておく。Microsoftでは、俗に言う86系の32bitコードや動作モードをx86と表記する。これに対して86系の64bit版をx64と表記する。86系には、IntelやAMDなどのプロセッサがあり、それぞれの表記などもあるため、ここではMicrosoftの表記に従うことにする。

 ARMプロセッサに関しては、64bitモードや64bitコードをARM64(ARMの表記ではAArch64)、32bitをARM32(同AArch32)と表記する。ARM版Windows 10は64bit版、つまりARM64バイナリーのWindows 10しか存在していない。なお、ARM社はプロセッサの設計のみを提供し、半導体(SoC)自体は各メーカーが設計・製造している。Qualcommもその1社である。

これまでのWindowsアプリも動作するARM版Windows

 Windows On ARM(WOA)ことARM版Windows 10は、QualcommのSnapdragon向けのWindows 10である。現状、ARM版Windows 10を搭載できる製品はQualcommのSoCに限られていることから、Windows On Snapdragon(WOS)と呼ばれることもある。この条件は、Windows 10 Mobileやその前身となるWindows Phone 7/8でも同じだった。

 Microsoftの説明では、SoCごとにドライバーなどを開発する必要があるため、多数のSoCに同時に対応せず、ハードウェアを限定することでOS開発期間が短縮されるということだった。もっとも、QualcommとMicrosoftの間にどういう契約が結ばれていたのかに関しては一切公開されていないため、実際の理由は不明である。

 少しさかのぼって、Windows 8の時点でもARM CPUへの対応がなされていた。このときに登場したのが「Windows RT」と呼ばれるバージョンだ。しかしWindows RTには制限があり、Windows 8用のストアアプリしか追加できなかった。実際にはWindows RTに含まれるデスクトップ環境プログラムもあり、それらはARM32バイナリコードだったが、ユーザーが用意したアプリは起動できなかった。こうした理由から、人気が出ずにすぐに消えてしまった。なお、Windows RTを搭載した「Surface RT」にはNVIDIAの「Tegra 3」が搭載されていた。

 Windows On ARMは、このWindows RTなどでの“反省”から、x86/x64版のWindows 10との互換性を高めた。具体的には、x86バイナリーコードを変換して実行する機能を搭載した。これにより、通常のWindows 10と同じく、32bitのWindowsプログラムが利用できる。

ARM版Windows 10でx64アプリケーションを動かしてみる

 今回はSurface Pro XにWindows 10のプレビュー版を入れ、x64アプリケーションを動作させた。まずはDocker Desktopだが、これはインストールはできたものの、起動時にエラーとなり、実行できなかった。まあ、プレビュー版なのでそういうこともあるだろう。

Docker Desktopは64bitアプリケーションなので、現行のARM版Windows 10ではインストール自体ができないが、プレビュービルド21277(Dev Channel)にするとインストールは可能。しかし、起動時にエラーになってしまった

 次にGoogle Chromeの64bit版をインストールしてみたところ、ちゃんと動作する。そこで、Chromeを使ってベンチマークテストをしている。用いたのは以下の3つである。

●JetStream 2
 https://webkit.org/blog/8685/introducing-the-jetstream-2-benchmark-suite/

●motion mark version 1.1
 https://webkit.org/blog/8434/motionmark-1-1/

●speedometer 2.0
 https://webkit.org/blog/8063/speedometer-2-0-a-benchmark-for-modern-web-app-responsiveness/

 結果は以下の表の通りだが、32bit/64bit版のChromeでそれほど違いが出なかった。x64のWindows 10上で同じテストをしても32bit/64bit版でほぼ同じことを考えると、Chromeは32bit/64bit版で差が出にくいプログラムであり、そのうえでARM版Windows 10でも同じような結果になったということは、x86/x64のどちらのエミュレーションでも同程度の効率で動作していると想像できる。

 そもそも、ARM版Windows 10がちょっともっさりしていることもあって、x86のエミュレーションが特に遅いという印象は受けない。とすると、x64のアプリケーションも同程度になると考えられる。もっとも、今回のテストは限られたソフトウェアのものでしかないため、これでARM版Windows 10のエミュレーション機能のすべてを評価したわけではない。

 それでも現在のPC環境では、ウェブブラウザこそが最も頻繁に使われる“アプリケーション”であり、その実行性能がPCの使い勝手を決める部分が小さくないことを考えると、今回の結果からx64のエミュレーションの性能はそれほど悪くないとは言えそうだ。ARM版Windowsのエミュレーション機能に関しては、あまり詳細な情報がないのだが、x86コードをARM64コードに変換して実行しているのだとすると、x64コードも同様なのだろうから、差が出にくいのだと思われる。

 また、Edgeにおける数値は、エミュレーションで実行しているChromeの倍近い速度になっている。どちらも同じBlink/V8エンジンであることを考えると、ARM64ネイティブでの実行速度はそこそこの性能があると考えられる。比較に用いたのは第6世代のCore i7のマシンだが、最近まで現役で使っていたもの。今はプレビュー版専用となっているが、通常利用で問題を感じることがない速度を持つ。

 現状のARM版Windowsの人気などを見るに、サードパーティがこぞって自社アプリをARM64コードに対応するとは考えにくい。そのためx64コードのアプリケーションに対応できることは重要と考えられる。普段はウェブブラウザとOfficeだけで十分という使い方であれば、ARM版Windowsにも使い道は残されていると言える。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン