錦です。
Microsoftは、ARMデバイス上で動作させる同一のアプリにx64とARM64のコードを混在することができるアプリケーションバイナリインターフェイス(ABI)の「ARM64EC」を発表しました。Windows 11に新しく導入されます。
「ARM64EC」は、同一のアプリにx64とARM64のコードを混在させることができる新しいバイナリで、既存のARM 64 ABIとは異なりx64コードとバイナリ互換性があります。ARM移行中のアプリでアプリの中にx64で書かれたコードが含まれていても動作させることができるので、アプリ単位でARM以降する必要はなくなり、アプリを段階的にARMに移行したい場合に役立つとしています。
基本的に呼び出し規則・スタックの使用方法・データの配置などはARMではなくx64の規則となっており、x64のアプリをベースとなっています。
Windows 10 on ARMでは、x64/x86アプリ自体をOSでエミュレートしてARMデバイス向けに提供していましたが、ARM64ECではx64とARM64を混在できるので、ARM64コードで書かれた部分はネイティブで、x64で書かれたものはエミュレートで動かすということができるようになっています。もちろん、エミュレートで動作させる部分はネイティブで動作させるよりも動作は遅くなりますが、これまではアプリ単位でのARM対応だったので、全部エミュレートで動くアプリよりも動作は高速になります。
Microsoftは、Windows 11 on ARMのx64で書かれたシステムコードをARM64ECでリビルドすることで、ネイティブ速度でどう刺さることができる他、MS Officeにも導入して、既存のx64プラグインを利用できるようにしているとのこと。
動作環境
ARM64ECを利用するには、最新のWindows Insider SDKとVisual Studio Preview v6.11 Preview 2以降が必要とのことです。
via 窓の杜