Jusqu’ici la couche d’émulation Intel embarquée au cœur de Windows On ARM était limitée au 32 bits. Le support du 64 bits fait son apparition dans une nouvelle build Windows Insiders. Mais comment fonctionne une telle émulation sur Windows et sur Mac…
L’arrivée des Mac sous processeurs Apple M1 à architecture ARM a bouleversé le marché. D’abord parce que ces processeurs se sont révélés bien plus véloces qu’attendu avec des performances qui sont un vrai camouflet pour les processeurs Qualcomm qui équipent les Surface Pro X par exemple mais aussi pour les processeurs mobiles d’Intel et AMD. Ensuite parce que Rosetta 2, la couche d’émulation Intel embarquée dans la version ARM de macOS Big Sur, s’est avérée bien plus capable et performante que la couche d’émulation Intel de Windows on ARM limitée aux instructions x86 32 bits et donc aux anciennes générations de logiciels Windows.
Rosetta 2 vs WoA x86 émulation

Parce que les applications sont un peu plus complexes qu’un simple exécutable, Rosetta 2 combine en réalité une pré-compilation « AOT » et une traduction à la volée « Just In Time » (JIT) pour adresser tous les scénarios et étendre sa compatibilité à un maximum de logiciels Mac Intel.

Pour ce qui est des applications UWP (diffusées via le Windows Store), les choses sont subtilement différentes : si le développeur a soumis une version ARM de son app, c’est celle-ci qui est déployée sur Windows on ARM pour une exécution native sinon c’est la version x86 qui est déployée avec émulation par WOW64.
L’émulation x64 débarque enfin dans Windows on ARM

Mais les choses sont en train de changer. Microsoft a en effet dévoilé cette semaine une nouvelle version de Windows 10 on ARM embarquant une nouvelle version de l’émulation WOW64 supportant à la fois le jeu d’instructions x86 et le jeu d’instructions x64. Le nouveau JIT embarqué semble être le fruit de plus de deux ans de travail chez Microsoft. Pour l’instant, cette version de Windows n’est qu’en pré-bêta et uniquement accessible aux « Windows Insiders » disposant d’une machine Windows à base de processeurs ARM (Surface Pro X, Samsung Galaxy Book S, Lenovo Yoga 5G).

Des performances comparables ?
Il est pour l’instant assez difficile de comparer les performances de Rosetta 2 et celle de WOW 64. Parce qu’il n’existe pas de versions officielles de Windows on ARM pour les processeurs M1 et que les processeurs M1 d’Apple sont significativement plus performants que les processeurs Qualcomm actuellement utilisés sur les PC ARM (comme la Surface Pro X), aucune comparaison directe révélatrice n’est possible.
Certes, des geeks ont bien réussi à faire tourner Windows on ARM sur des Mac M1 mais en utilisant une couche QEMU intermédiaire qui ralentit l’exécution. Les quelques tests réalisés ont surtout démontré la supériorité du processeur M1 d’Apple sur le processeur Qualcomm/Microsoft SQ2. WOW64 fonctionne sur cette « bidouille » mais est freiné par la couche QEMU.
Malgré les différences d’implémentation, il est probable – surtout avec les optimisations apportées par cette nouvelle version Beta de Windows 10 – que les performances des couches d’émulation Intel d’Apple et Microsoft soient en réalité assez similaires. Il faudrait disposer d’une version Windows on ARM officielle pour les Mac M1 (avec les drivers optimisés pour) pour en avoir la preuve. Ce qui n’arrivera peut-être jamais…





puis