このページの本文へ

Windows Info 第106回

スマホサイズのPCが登場する!? Windows On ARMを知る

2017年11月26日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

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

 Windows On ARMは、Windows 10のARMプロセッサ版である。これはマイクロソフト最初の64bit ARM対応となる。これまでのWindows MobileでもARMプロセッサに対応していたが、32bitコードを利用していた。

2017年6月のCOMPUTEXで行なわれたQualcommによるWindows On ARMのデモ

PC向けのOSを動かすにも十分な性能を持つ
ARMの64bitアーキテクチャ

 詳しい話の前にARMの64bit版について簡単に確認しておく。ARMの64bitアーキテクチャは、ARMv8と呼ばれている。

ARMプロセッサのアーキテクチャには32bitのARMv7と64bitのARMv8があり、ARMv8はARMv7の32bitアーキテクチャを含み、実行時にモードを切り替えて動作できる

 これに対して32bitアーキテクチャはARMv7である。ただしARMv8は、32bitアーキテクチャを含んでいる。このため、ARMv8の64bitアーキテクチャ部分はAArch64、同32bitアーキテクチャは、AArch32と呼ばれる。AArchは「ARM Architecture」の略で、ARMv8は64bitアーキテクチャモードと32bitアーキテクチャモードを持ち、64bitアーキテクチャモードでは、32bitアーキテクチャの機械語命令を実行する32bitモードが利用できる。このあたりはインテルの64bitプロセッサと同じだ。

 AArch64とAArch32は、命令セットが完全に異なり、相互に互換性がない。AArch32はどちらかというと組み込み系などを意識した命令セットだったが、AArch64は、汎用的なRISC命令セットになっている。

 逆に言えば、AArch64は汎用的なコンピューターとしての性能が出せるように作られた命令セットであり、過去のアーキテクチャに縛られない。ある意味、最も最後に登場した64bitアーキテクチャであるため、過去に作られたさまざまなプロセッサで得られた知見などを盛り込むことが可能だった。

 たとえば、命令セットによってはアウトオブオーダー実行やスーパースケーラー実行がやりにくい、命令デコードが複雑で、数バイト以上を読み込まないと命令の長さが決定できないといった問題があったが、AArch64はこうした問題があるといった認識の上で設計された命令セットになっている。

 AArch64とAArch32に関しては、マイクロソフトは、ARM64、ARMという表記を用いている(Visual Studio2017など)。しかし「ARM」は、汎用的に使われているため、本記事では、64bit/32bitアーキテクチャを指す場合には、AArch64/AArch32という表記を使うことにする。

 以後の説明では、マイクロソフトの呼び方にならい、インテルの32bitアーキテクチャをx86、64bitアーキテクチャをx64と表記する。

インテルプロセッサには32bit、64bitの実行モードがあり、これを切り替えて実行することができる。このときアドレスの長さが違って来るためWin32、Win64の2つのAPIが対応する

 また、32bitのx86ネイティブコードから呼び出すWindowsのAPIをWin32API、64bitのx64から呼び出すAPIをWin64APIと呼ぶ。この両者は機能的には同等だが、パラメーターとして渡されるアドレスが32bitなのか64bitなのかという違いがある。また、これにともない、メモリ内の位置を示すポインターを含む構造体も意味的には同じだが、アドレス長の違いからメモリ内での配置が変わってしまう。

再び異なるアーキテクチャのCPUに移植されたWindows 10

 Windows On ARMは、Windows 10をAArch64に移植したものとなる。Windows 10の祖先であるWindows NTは、当初から複数プロセッサへの移植を想定してC言語で開発された。

 このため過去には、DEC(当時)のAlphaやインテルのItanium、IBMのPowerアーキテクチャ、MIPSアーキテクチャなどに移植された。そもそも初期の開発段階では、IntelのRISCプロセッサであるi860が対象だった。このため、Windows 10のAArch64への移植自体は、それほど困難なものではなかったと考えられる。

 ただ、マイクロソフトは、ARMプロセッサに関しては、ずっと32bitアーキテクチャを対象としており、Windows 10 Mobileも32bit版しかなかった。また、Windows 8のときに開発されたWindows RTも32bit版だった。

 Windows On ARMのカーネルやシステム自体は、AArch64のネイティブコードとなっている。スマートフォンで使われるようなプロセッサでWindowsを実行して十分な性能が出るのかというと、AArch64の場合には「yes」である。

 AArch64は前述のように汎用的なRISCアーキテクチャであり、アウトオブオーダー実行などでクロックあたりの実行命令数を増やすことが可能。あとはキャッシュメモリなどを使い、さまざまな高速化もできるため、Windowsの実行に対して十分な性能を持つ。また、CPUコアの実装面積が小さく、コア数を増やしやすいというメリットもある。

 ただし、Windows On ARMでは、プロセッサをQualcomm社のSnapdragonに限定している。これはWindows Phoneのときと同じく、SoCを固定とすることで、開発や検証の手数を削減するためだと考えられる。

x86用の32bitアプリが動作するWindows On ARM

 Windows On ARM最大の特徴は、現在多数流通しているx86の32bitネイティブコードのデスクトップアプリケーションを実行可能なことだ。Windows On ARMはWoW(Windows On Windows)の仕組みを使い、実行時にx86ネイティブコードをAArch64コードに変換して実行する。

Windows On ARMは、WoWの仕組みを使って32bitのx86ネイティブコードを変換しながら実行するという(マイクロソフト社ビデオより引用)

 これはWindows RTやWindows 10 Mobileがなぜ普及しなかったか? と考えた結果であろう。ただし、Windows On ARMが実行できるのはx86の32bitコードのみで、x64つまり64bitのネイティブコードは実行することができない。

 Windows On ARMでは、UWPアプリケーションはそのまま動作する。これは実行ファイルが仮想マシンコード(CLI、Common Language Infrastructure)で作られているからである。ただし、UWPアプリでも、高速化のためネイティブコードを含むことができ、その場合には、ARMプロセッサ用のコードを用意する必要がある。

 CLIは、CLR(Common Language Runtime)によって実行されるが、このとき、ネイティブコードへ変換される。変換は実行時なので、実行先のプラットフォームのプロセッサアーキテクチャにあわせたネイティブコードが生成される。

 またWindows On ARMでは、AArch64のネイティブコードからなるデスクトップアプリケーションが動作する。というのは、現在のWindows 10には、エクスプローラーやメモ帳などWin64に対応した64bitネイティブコードアプリケーションが含まれているからだ。また、その開発も原理的には、Visual Studioでできるはずだ。そもそもVisual StudioでAArch64のデスクトップで動作するプログラムを開発できないとWindows On ARM自体が開発できない。

 もっとも、マイクロソフトがそのことを可能にするかどうかについては別問題だ。過去に提供されたARMプロセッサ用のWindows RTは、マイクロソフトがWindowsに標準で搭載しているAArch32ネイティブコードのデスクトップアプリケーション(Windowsの標準アプリケーションや標準付属のOfficeなど)以外の実行ができない形で出荷されていたからだ。

 Windows RTが登場したときには、マイクロソフトは、従来のデスクトップ環境で動作するアプリケーションと別にWindowsストアで配布するモダン環境(当時はメトロと呼ばれた)アプリケーションの2つがあり、後者を標準的にしようとしていた。また、配布形式が一定でないデスクトップアプリケーションにARM、x86/x64の2つのバイナリ形式ができることを嫌っていたからだと言われている。複数のCPUアーキテクチャのネイティブコードを1つのファイルに格納する、いわゆる「FAT Binary」といった形式もWindowsには存在していなかった。

 Windows以外のプラットフォームでは、複数のプロセッサアーキテクチャに対応した実行ファイルを格納できるFAT Binaryを提供したものものあるが、基本的にはプロセッサアーキテクチャを移行時に存在するもので、最終的には片方に収束させることを目的としたものが多かった。

 また、複数のプロセッサアーキテクチャに対応しているLinuxなどでも、複数のネイティブコードを1つの実行ファイルに入れるといったことは行なわれていない。Linuxの場合、ソフトウェアはどのような形でもインストール可能だが、標準的な手順として「パッケージマネージャ」が使われているため、各ディストリビューションなどが提供するリポジトリから適切なプロセッサアーキテクチャのバイナリ実行ファイルを含むインストールパッケージをもってきてインストールができるため、複数のネイティブコードを1つのファイルにする必要がない。

 これに対して、Windowsのデスクトップアプリケーションは、これまでずっとx86/x64用として配布されてきたため、ここに新たなネイティブコード形式が入ることは、自分のマシンのプロセッサさえ区別できないユーザーが多数いることを考えると大きな混乱が生じ、Windows自体の評判さえ悪くなると、マイクロソフトが考えても不思議ではないだろう。

 ただ、マイクロソフトもUWPしか実行できない「Windows 10S」といったエディションを提供しているように、簡易な利用しかしないユーザーにはUWPのみを使ってもらうという方向性を考えている。こうしたエディションであれば、プロセッサアーキテクチャの違いは問題にはならないだろう。なお、誤解されないように念を押しておくが、Windows On ARMとWindows 10Sはまったく違うものであり、Windows10Sはx86/x64プロセッサの上で動作している。

 Windows RTがハードウェアにプレインストールされた形式のみで販売され、そのアップデートはすべてWindows Update経由だったことを考えると、Windows On ARMもすべてハードウェアにプレインストールされて販売されることになると思われる。このためパッケージなどで入手することはできないだろう。

 さて次回は、Windows On ARMでx86コードを動作させる仕組みを詳しく見ていくことにしよう。

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
1
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥35,130
2
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - ミッドナイト
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - ミッドナイト
¥177,333
3
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、256GB SSDストレージ、1080p FaceTime HDカメラ - シトラス
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、256GB SSDストレージ、1080p FaceTime HDカメラ - シトラス
¥95,768
4
【Amazon.co.jp限定】ASUS ノートパソコン Vivobook 15 M1502NAQ 15.6インチ AMD Ryzen 7 170 メモリ16GB SSD 512GB Windows 11 重量1.7kg Wi-Fi 6E クワイエットブルー M1502NAQ-R7165BUW
【Amazon.co.jp限定】ASUS ノートパソコン Vivobook 15 M1502NAQ 15.6インチ AMD Ryzen 7 170 メモリ16GB SSD 512GB Windows 11 重量1.7kg Wi-Fi 6E クワイエットブルー M1502NAQ-R7165BUW
¥98,800
5
ESBOOKノートパソコン 【MS Office 2024搭載&Windows 11 Pro】14インチIPS液晶/1920×1080FHDディスプレイ カメラ付き/薄型PCノート高性能CPU/初期設定不要/8Gメモリ/無線LAN/大容量SSD/初心者向け・パソコンノート/日本語キーボードフィルム付き/ワイヤレスマウス付き(256G SSD, ローズゴールド)
ESBOOKノートパソコン 【MS Office 2024搭載&Windows 11 Pro】14インチIPS液晶/1920×1080FHDディスプレイ カメラ付き/薄型PCノート高性能CPU/初期設定不要/8Gメモリ/無線LAN/大容量SSD/初心者向け・パソコンノート/日本語キーボードフィルム付き/ワイヤレスマウス付き(256G SSD, ローズゴールド)
¥38,999

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,386
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,080
4
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
5
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥743
6
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
7
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,519
8
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
¥2,424
9
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,690
10
JAMJAKE iPad用ペンシル アップルペンシル代用ペン 2018年~2026年 iPad対応 タッチペン 超高感度 極細 スタイラスペン Type-C急速充電 傾き感知/磁気吸着/誤作動防止機能対応 軽量 耐摩 学生 子供 筆記 絵を描く デザイン用 ドローイング用
JAMJAKE iPad用ペンシル アップルペンシル代用ペン 2018年~2026年 iPad対応 タッチペン 超高感度 極細 スタイラスペン Type-C急速充電 傾き感知/磁気吸着/誤作動防止機能対応 軽量 耐摩 学生 子供 筆記 絵を描く デザイン用 ドローイング用
¥1,880

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

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