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[…]
米Microsoftは28日(現地時間)、Windows 11 on ARMにおいて新たなx64互換機能「ARM64E…
Today, we’re announcing ARM64EC (“Emulation Compatible”), a …