Arm上でWindows11用のネイティブアプリが使用可能になりそう【ARM64EC】

Microsoftは2021年6月28日、Windows11の新機能としてARM64EC(Emulation Compatible)を発表しました。

ARM64ECは、ARM上のWindows 11でアプリを構築するための新しい方法です。

ARM64ECがあれば、Visual StudioツールとWindows 11 Insider SDKを使用して、Windows11上にARMをまだサポートしていないプラグインがあっても、アプリをエミュレートしてARM上で実行できるようになる可能性があるようです。

 

ARM64ECについて

ARM64ECは、ARM版Windows 11のためのアプリケーション・バイナリ・インターフェース(ABI)で、x64との相互運用性を備えています。

アプリ、プロセス、あるいはモジュールは、必要に応じてARM64ECとx64を自由に組み合わせて使用することができるようです。

アプリ内のARM64ECコードはネイティブに動作し、x64コードはARM版Windows 11の内蔵エミュレーションを使用して動作します。

ARM64EC ABIは、既存のARM64 ABIとは若干異なり、x64コードとのバイナリ互換性があります。

具体的には、ARM64EC ABIは、呼び出し規則、スタックの使用法、データの配置など、x64のソフトウェア規則に従っており、ARM64ECとx64の相互運用性を実現しています。

ARM64ECとして構築されたアプリケーションは、x64コードを含むことができますが、その必要はありません。

なぜなら、ARM64ECはWindows用の完全なファーストクラスのABIだからです。

 

開発者のメリット

従来、ARM用にアプリを再構築するには、アプリ全体を再コンパイルする必要がありました。

その結果、ARMデバイスのパワーを最大限に引き出し、お客様に素晴らしいネイティブ体験を提供することができます。

しかし、開発者の立場からすると、アプリのポーティングは、お客様にメリットを感じていただく前に、プロセス内のすべてのバイナリを再構築する必要があるため、すべてか無かになってしまいます。

ARM64ECでは、小さく始めて段階的に構築していくことができます。

ネイティブパフォーマンスの恩恵を最も受けられるコードベースの一部を特定し、それをARM64ECとして再構築することができます。

アプリの残りの部分はエミュレートされたx64として完全な機能を維持しますが、再コンパイルされたARM64ECの部分はネイティブのスピードを持つことになります。

将来的には、より多くのアプリをARM64ECとして再コンパイルすることで、パフォーマンスをさらに向上させ、アプリの顧客のバッテリー寿命を節約することができます。

x64とARM64ECを混在させることができるので、たとえ自分の管理外のx64コードに依存していても、ARM版Windows 11用のアプリを構築することができます。

ARMをサポートしていないサードパーティの依存関係があるプロジェクトは、それらをx64のままにしておくことができます。

また、プラグインのエコシステムが組み込まれているアプリは、ARM64ECとしてビルドすることで、ネイティブな速度を得ることができる一方で、x64プラグインを引き続きロードして使用することができます。

 

まとめ

ARM64ECの発表についてまとめました。

最後まで読んでいただきありがとうございます。

 

以上です。

 

関連記事

Windows 11の発表が2021年6月25日にありました。私は素晴らしくまとめてきた発表だったと思います。 Windows 11 を発表 - Microsofthttps://news.micr[…]

PC Watch

 米Microsoftは28日(現地時間)、Windows 11 on ARMにおいて新たなx64互換機能「ARM64E…

Windows Developer Blog

Today, we’re announcing ARM64EC (“Emulation Compatible”), a …