Windows on ARM fait tourner des apps X64, uniquement pour les Insider pour l'instant

Guillaume Belfiore
Lead Software Chronicler
11 décembre 2020 à 16h01
15
Surface Pro X Surface Laptop Go bp

Après des mois d'attente, Microsoft a finalement déployé son émulateur x64 pour Windows ARM. Ce dernier est disponible pour les testeurs du système.

En décembre 2016, à l'occasion du Snapdragon Technology Summit de Qualcomm, Microsoft avait annoncé une édition ARM de Windows. Pour l'éditeur de Redmond, il s'agissait de rectifier le tir de Windows RT jugé trop limité sur les tablettes Surface RT.

Le 64-bits en émulation, enfin sur Windows ARM

Windows ARM ne prend en charge actuellement que les applications 32-bit. Microsoft avait promis la prise en charge du 64-bit via émulation mais ce n'est finalement qu'en octobre dernier que Microsoft a annoncé sa disponibilité prochaine.

Sur l'actuelle Surface Pro X, Microsoft a embarqué le SoC SQ2 articulé autour du Snapdragon 8cx Gen 2 5G (sans la 5G). La tablette tourne donc sur Windows ARM mais n'est actuellement capable d'émuler que les applications conçues sur l'architecture x86 en 32 bit.

Concrètement, les applications x86-64 bit peuvent profiter d'un bus de données plus large pour accéder à la mémoire. Elles affichent donc de meilleures performances. Or, à l'heure actuelle, les applications les plus récentes, les plus puissantes et donc les plus populaires sont optimisées pour des architectures x86 64-bit.

Des app 64-bit émulées plus performantes qu'en 32-bit natives

Dans un billet de blog, Microsoft explique avoir publié une première version expérimentale de cet émulateur auprès des Windows Insiders sur le canal Dev.

Microsoft précise tout de même que s'il est possible d'exécuter des applications initialement conçues pour les architectures x86-64 bit, la société encourage tout de même les développeurs à compiler leurs applications pour une prise en charge native en ARM64.

« Dans cette version preview, vous pouvez installer des applications x64 depuis le Microsoft Store ou depuis n'importe où. Vous pouvez essayer des applications de productivité phares uniquement disponibles en x64 comme Autodesk, Sketchbook ainsi que des jeux comme Rocket League. D'autres applications, comme Chrome fonctionnant aujourd'hui sur ARM64 en 32-bit, peuvent être exécutées en 64-bit via la capacités de l'émulateur x64. »

Par le passé, Microsoft expliquait que les performances de l'émulation en 64-bit n'étaient pas au rendez-vous. Désormais, la société affirme que ces applications profitent de plus de mémoire. L'éditeur sous-entend qu'elles seraient plus performantes que les applications 32-bit natives, et notamment en ce qui concerne Google Chrome.

Pour assurer une meilleure compatibilité, Microsoft conseille d'installer un pilote graphique pour les GPU Adreno fourni par Qualcomm.

Source : Microsoft

Guillaume Belfiore

Lead Software Chronicler

Lead Software Chronicler

Je suis rédacteur en chef adjoint de Clubic, et plus précisément, je suis responsable du développement éditorial sur la partie Logiciels et Services Web.

Lire d'autres articles

Je suis rédacteur en chef adjoint de Clubic, et plus précisément, je suis responsable du développement éditorial sur la partie Logiciels et Services Web.

Lire d'autres articles
Vous êtes un utilisateur de Google Actualités ou de WhatsApp ? Suivez-nous pour ne rien rater de l'actu tech !
google-news

A découvrir en vidéo

Rejoignez la communauté Clubic S'inscrire

Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.

S'inscrire

Commentaires (15)

Guillaume1972
C’est une bonne nouvelle.
TotO
Sur les pas d’Apple.
bmustang
la différence entre apple et micrsoft est ! l’un innove pour le futur, l’autre pour le passé.<br /> Quand est-il du dev ARM pour le soc maison chez micrsoft ? Sortira ou sortira pas ? On peut dire qu’Apple a fait un énorme boulot, tout comme AMD ! C’est deux là ont réussis leurs innovations contrairement à d’autres.
Jolan
Le soucis est que le développement natif ne se fait plus sur l’API Windows historique (normal), mais sur Universal Windows Plateform (UWP) qui oblige à une distribution via le store.<br /> Or les développeurs Windows ne sont pas habitué à donner 30% de leur chiffre d’affaire à un store et ne sont guère enclin à mettre le doigt dans l’engrenage.<br /> C’est pour cela que le Store Windows 10 reste désespérément vide (comparé à celui d’Apple ou de Google).<br /> @bmustang : Avec le M1, Apple frappe fort, mais non, MS innove aussi.<br /> Ils ne sont pas plus bête que les autres.<br /> Ils ont montré des projets vraiment sympa : comme la surface Néo ou la Surface Studio.<br /> Leur téléphone a été un échec commercial, mais il était très très bien.<br /> Les portables sous Windows ont des écrans tactiles depuis un moment, des écran détachables ou retournables etc.<br /> On voit bien - depuis Windows RT - que MS cherche désespérément à se débarrasser de la compatibilité Intel dont ils sont prisonnier. Mais ni les utilisateurs, ni les développeurs ne veulent de cette rupture pour des raisons différentes.<br /> Sans compter qu’il y a d’autres facteurs, comme celui qu’Apple amorti le cout de ses processeurs sur l’ensemble de la machine, contrairement à Intel qui doit vendre ses processeurs sec et des assembleurs qui margent peu.
jbobby
Intel va devoir sortir une architecture avec un jeu d’instruction plus efficace s’ils veulent survivre. Et vite.
xylf
«&nbsp;On voit bien - depuis Windows RT - que MS cherche désespérément à se débarrasser de la compatibilité Intel dont ils sont prisonnier. Mais ni les utilisateurs, ni les développeurs ne veulent de cette rupture pour des raisons différentes.&nbsp;»<br /> Microsoft n’a pas toujours été lié à l’architecture x86. Puisque jusqu’à nt4 inclus on pouvait installer sur du mips ou même alpha, power pc ou itanium par exemple. Cependant les applis porté pour l’une ne fonctionnaient pas sous l’autre sans une nouvelle compilation. Microsoft a grandement aidé le développement d’un parc massif de compatible PC. Ce qui a naturellement entraîné qu’enormement d’acteurs ont concentré leurs efforts uniquement sur du x86. Le marché a donc pousser m$ d’en faire autant. Et avec l’émergence d’ARM il concentre un nouvel effort de portage. L’émulation va ici permettre aux usagers de faciliter la transition d’architecture. Mais il n’y a pas d’histoire d’être prisonniers d’Intel et ça n’a jamais été le cas. C’est une opportunité de marché.
KlingonBrain
Intel va devoir sortir une architecture avec un jeu d’instruction plus efficace s’ils veulent survivre. Et vite.<br /> L’idée que les jeux d’instruction RISC seraient plus efficace, elle date des années 80.<br /> Beaucoup de choses ont changé depuis.
KlingonBrain
En espérant que les developpeurs prennent quand même peu à peu l’habitude developper pour les 2 architectures, pour gagner encore en performance…mais je suis dubitatif.<br /> Intel ou ARM, 32 ou 64 bits, ça ne change absolument rien pour un bon développeur.<br /> Si un programme est écrit correctement au départ, il suffit de recompiler et ça fonctionne.
Skoleras
Ce qui est sûr c’est que les ordinateur portable sous ARM sont le futur pour le grand public. Cela ne m’étonnerait pas que dans quelques années, les ventes de laptop soient monopolisées par des ordinateur sous processeur ARM.<br /> C’est tout bénéf pour le grand public, on a des ordinateurs plus performants, moins chers, avec une meilleure autonomie et moins encombrants comme le refroidissement est passif et non plus actif avec des ventilateurs comme avec les architecture x64…
jbobby
C’est plus complexe qu’une histoire de débat des années 80. Les processeurs x86 et apple ARM sont des processeurs à exécution dans le désordre, qui décodent les instructions à l’avance pour déterminer quelles sont les dépendances de registres et mémoire, pour les distribuer vers les unités d’exécution. On peut multiplier les unités d’exécution, et c’est ce qu’apple a fait, mais il faut pouvoir leur trouver quoi faire, et donc décoder le maximum d’instructions. Or les instructions ARM ont une longueur fixe, ce qui fait qu’on peut les décoder très à l’avance et en parallèle, alors que le décodage des instructions x86 doit se faire en séquence (je simplifie) car la position de chacune dépend du codage des précédentes. On pourrait imaginer un nouveau front end à instructions simples et de taille fixe, avec plus de registres, et ce ne serait pas très difficile à faire pour Intel car l’essentiel de la complexité des processeurs est dans le back-end, et Intel l’a déjà fait avec l’implémentation du mode 64 bit qui a un codage différent.<br /> L’idée que les jeux d’instruction RISC seraient plus efficace, elle date des années 80.<br /> Beaucoup de choses ont changé depuis.<br />
panta
Je regrette mon palm avec piou piou palyer et poulpx , cette architecture récente ARM pourrai me convenir mais au niveau professionnel avec beaucoup de ram pour la mao , version tablette avec prise en charge de ma MOTU
ultrabill
Jolan:<br /> Le soucis est que le développement natif ne se fait plus sur l’API Windows historique (normal), mais sur Universal Windows Plateform (UWP) qui oblige à une distribution via le store.<br /> C’était vrai avec Windows RT, ça n’est plus le cas depuis Windows on ARM.
KlingonBrain
On peut multiplier les unités d’exécution, et c’est ce qu’apple a fait, mais il faut pouvoir leur trouver quoi faire, et donc décoder le maximum d’instructions. Or les instructions ARM ont une longueur fixe, ce qui fait qu’on peut les décoder très à l’avance et en parallèle, alors que le décodage des instructions x86 doit se faire en séquence (je simplifie) car la position de chacune dépend du codage des précédentes. On pourrait imaginer un nouveau front end à instructions simples et de taille fixe, avec plus de registres, et ce ne serait pas très difficile à faire pour Intel car l’essentiel de la complexité des processeurs est dans le back-end, et Intel l’a déjà fait avec l’implémentation du mode 64 bit qui a un codage différent.<br /> Justement, par rapport au fonctionnement d’un processeur moderne, ce n’est pas forcément un problème majeur. Rappelons qu’en pratique les x86 exécutent de nombreuses instructions par cycle. S’il ne parvenaient pas du tout à paralléliser le décodage, il serait par définition impossible de dépasser un IPC unitaire.<br /> Et il ne faut pas mal interpréter le le fait qu’un processeur RISC doit être prévu pour décoder plus d’instructions par cycle. C’est d’abord est lié à un inconvénient majeur de ce type d’architecture : le fait de nécessiter plus d’instructions pour résoudre un même problème. Il faut un IPC plus élevé pour atteindre une efficacité comparable à un CISC. Amusez vous à charger une constante immédiate dans un registre sur un ARM et vous comprendrez ce que je veux dire.<br /> Ce qui nous amène à l’une des tare majeur du RISC, à savoir une consommation de bande passante mémoire supérieure. A long terme, avec l’augmentation du nombre de coeurs, cela pourrait être un inconvénient majeur.<br /> D’ailleurs, les RISC ne sont pas les processeurs les plus efficients en terme de décodage. Car décoder n’est que la première étape d’un processus. Par exemple, les architecture VLIW sont en mesure d’arriver à une complète parallélisation de l’ensemble du processus.<br /> Intel à été l’un des rare fabricant à réaliser un tel processeur généraliste (l’Itanium pour rappel) sait mieux que quiconque pourquoi l’enjeu n’est pas forcément la.<br /> Parce qu’en réalité, c’est un faux débat. La limite majeure de la parallélisation par le processeur n’est aujourd’hui plus tant le matériel que le logiciel lui même qui est écrit de façon majoritairement séquentielle et ne permet pas d’extraire beaucoup plus de parallélisme.
jbobby
Attention, le code est essentiellement séquentiel mais le CPU analyse de 500 à 800 instructions (selon le CPU) pour repérer les chaînes parallélisables. On voit là l’intérêt de décoder le maximum d’instructions pour repérer ces chaînes. Les ARM et x86 continuent de s’améliorer dans ce domaine. De plus, ils continuent d’ajouter des unités d’exécution spécialisées, ce qui prend de la place sur la puce. Et il y a plus de place à prendre sur une architecture simple que sur un x86 qui est ultra-complexe et qui a besoin de plein de transistors juste pour supporter les très nombreux modes et instructions plus ou moins utiles.
Voir tous les messages sur le forum
Haut de page

Sur le même sujet