ニュース

ARMネイティブの速度とx64相互運用を両立 ~Microsoft、「ARM64EC」を発表

ARM未サポートのライブラリ・プラグインはそのまま、アプリをARM対応に

「MSVC」のARM64ECビルドツールを試験機能として提供

 米Microsoftは6月28日(現地時間)、「ARM64EC」(Emulation Compatible)を発表した。同一のアプリにx64コードとARM64を混在させることが可能で、まだARMをサポートしていないライブラリやプラグインが含まれていても、ARMデバイス上でアプリをネイティブに近い速度で動作させることが可能。x64アプリをARM64へ段階的に移行させたい場合に役立つ。

 「ARM64EC」はARM版「Windows 11」に設けられた新しいアプリケーションバイナリインターフェイス(ABI)。既存のARM64 ABIとは若干異なり、x64コードとバイナリ互換性があり、呼び出し規則、スタックの使用法、データの配置などはx64の規約に従っている。そのため、ARM64ECのコードはARMコードと同等の速度で動作するが、必要に応じてx64コードと混ぜて利用することが可能。x64コードの部分はARM版「Windows 11」に内蔵されているエミュレーション機能で動作するため当然遅くなるが、徐々にARM64ECコードへ置き換えていけば、無理なくアプリをARM64へ移植・移行できるというわけだ。

 この技術はMicrosoft社内でも用いられており、「Windows 11 on ARM」ではx64アプリによって読み込まれるシステムコードをARM64ECでリビルドすることで、システムコード部分をネイティブ速度で実行できるようにしているという。また、「Microsoft Office」チームはARM64版「Office」にARM64ECを採用し、既存のx64プラグインをシームレスに動かせるようにしているという。

 ARM64ECは最新の「Windows Insider SDK」と「Visual Studio Preview」v6.11 Preview 2以降の組み合わせで利用可能。「MSVC」のARM64ECビルドツールが試験機能として提供されており、Win32アプリを実際にARM64ECとしてビルドできる。