Les différences entre ARM et Intel x86-64

Avec les puces ARM désormais omniprésentes dans les ordinateurs portables haute performance et les serveurs en périphérie, il est légitime de se demander si ces nouveaux appareils valent votre prochain achat. Il est temps de comprendre les différences techniques entre les processeurs ARM et les prédécesseurs x86-64 plus musclés qui ont précédemment dominé le marché des puces sans entrave.
Table des matières
- Que signifie vraiment x86-64 ?
- Ensembles d’instructions
- Consommation d’énergie
- Dois-je opter pour un système ARM ou x86 ?
Lire : ARM peut-il éventuellement remplacer le CPU x86 dans les ordinateurs portables ? Découvrons-le !
Que signifie vraiment x86-64 ?
Les processeurs Intel que l’on trouve dans les ordinateurs de bureau et portables sont parfois appelés processeurs « x86 ». L’architecture 64 bits que tous les ordinateurs modernes utilisent aujourd’hui repose sur le modèle x86, qui est désormais désigné par « x86-64 ».
Tout cela semble un peu confus, mais cela aide à expliquer pourquoi il y a deux dossiers différents Program Files sur Windows.

Pour simplifier, toutes les applications 32 bits vont dans le dossier x86 et les 64 bits dans l’autre dossier. Cela a été une convention depuis que Microsoft a publié sa version 64 bits de Windows XP en 2001.
Pour simplifier encore un peu, nous ferons référence à « x86-64 » en tant que « x86 », car il y a suffisamment de similitudes entre les puces 32 bits et 64 bits pour les regrouper.
L’étiquette « x86 » vient du grand père du traitement moderne, un microprocesseur créé par Intel nommé 8086. Cette puce 16 bits fonctionnait sous un ensemble d’instructions encore largement utilisé par les processeurs modernes aujourd’hui pour effectuer des tâches de calcul avancées.
Tout, de votre éditeur de texte aux logiciels de rendu vidéo avancés, a encore la capacité de fonctionner dans une architecture née en 1978 !
Depuis la sortie du microprocesseur 8086, Intel a continué d’utiliser la convention de nommage pour les modèles futurs tels que le 80286 et le 80386 jusqu’à ce qu’il se détourne de la tradition en lançant la série Pentium. Néanmoins, nous rendons toujours hommage à ces anciennes puces en catégorisant tous les processeurs ultérieurs qui utilisent son ensemble d’instructions comme « x86 ».
Même les processeurs 64 bits plus modernes que AMD a d’abord lancés dans la série Opteron dans les années 2000 reçoivent la même désignation, car la grande majorité des processeurs 64 bits dans les systèmes de bureau et les serveurs continuent de reposer sur le pilier du désormais modeste 8086.
Ensembles d’instructions
Toute la fonctionnalité d’un processeur repose sur ce qu’on appelle un ensemble d’instructions. C’est un ensemble câblé d’opérations élémentaires qu’une puce peut effectuer. Chaque instruction dit à la puce de faire des choses comme des calculs simples et de déplacer des données. Au bas de chaque morceau de code dans chaque programme que vous exécutez sur votre machine se trouve une couche qui communique avec le processeur. Cette couche utilise également son propre code connu sous le nom de langage d’assemblage, qui se traduit un pas plus loin dans les instructions de base souvent appelées code machine ou langage machine.

C’est ici que nous atteignons la différence fondamentale entre les puces ARM et x86.
Les puces x86 utilisent l’informatique à ensemble d’instructions complexe (CISC), tandis que les puces ARM utilisent l’informatique à ensemble d’instructions réduit (RISC). Alors que les puces CISC essaient de mettre plus de « travail » dans une seule instruction tout en sacrifiant des cycles d’horloge pour accomplir cette tâche, les puces RISC ont (comme son nom l’indique) un ensemble d’instructions beaucoup plus petit qui décompose tout en étapes plus simples pouvant être exécutées en un seul cycle d’horloge.
CISC vs. RISC
Si une puce CISC doit multiplier deux nombres, elle pourrait exécuter une seule commande : MULT 2, 3. Cette seule commande couvrira le chargement des nombres à partir de la mémoire, les multipliera ensemble et stockera le résultat à l’emplacement mémoire correct. Une puce RISC exécutant la même opération nécessiterait beaucoup plus d’étapes. D’abord, une instruction LOAD pour déplacer les nombres des registres à l’unité d’exécution. Ensuite, une instruction PROD pour multiplier les nombres. Enfin, une instruction STOR pour placer le résultat dans le registre correct.

Bien que la puce CISC puisse sembler plus efficace parce que ses commandes apparaissent plus simples, gardez à l’esprit quelques différences importantes :
- Premièrement, les puces CISC exécutent des commandes sur plusieurs cycles d’horloge, tandis que chaque instruction dans une puce RISC est exécutée sur un seul cycle d’horloge. De ce fait, notre hypothétique commande
MULTpourrait s’exécuter dans le même nombre de cycles que l’ensemble des instructions RISC qui exécutent la même tâche. - Deuxièmement, toutes les instructions et la logique de CISC doivent être stockées dans des transistors. Les puces RISC peuvent utiliser moins de transistors car elles doivent stocker moins d’instructions.
- Troisièmement, le nombre réduit de transistors requis par RISC permet une consommation d’énergie plus faible.
Il y a certains avantages à CISC. Tout d’abord, l’ordinateur n’a pas besoin de faire beaucoup de travail pour convertir un langage de programmation de niveau humain comme le C en langage d’assemblage au niveau du processeur. En fait, la commande MULT mentionnée ci-dessus est très similaire à la commande C foo = foo * bar.
Les puces RISC demandent au compilateur de faire beaucoup plus de travail pour réduire le code en langage d’assemblage. Les puces CISC peuvent également exécuter leurs opérations directement sur la mémoire système, tandis que les puces RISC doivent extraire les données de la mémoire vers les registres du processeur avant de travailler avec.
Dans un concours de performance direct entre les deux, en ce qui concerne les consommateurs, il n’y a pas de gagnant évident. Cependant, RISC a un atout supplémentaire dans sa manche pour vraiment prendre l’avantage sur CISC.
Consommation d’énergie
Entre CISC et RISC, il n’y a absolument aucun concours en ce qui concerne la consommation d’énergie. RISC prend catégoriquement la couronne ici. Un ensemble d’instructions réduit procure une empreinte plus petite, rendant la puce plus petite et donc moins gourmande en énergie.

Les puces plus petites avec moins de composants microscopiques ont également moins de résistance électrique à gérer et ne nécessitent pas autant de puissance pour fonctionner. Le meilleur exemple de cela est la technologie éprouvée du smartphone, un appareil « léger » qui offre une immense performance pour sa taille relativement petite tout en réussissant, dans de nombreux cas, à subsister pendant plus de 24 heures sur une batterie comparativement petite.
Cela dit, cela ne signifie pas que tous les ordinateurs commenceront à utiliser des puces ARM pour réduire la consommation d’énergie. Sur le marché des ordinateurs de bureau, où le système dépend normalement d’une connexion directe à une prise murale plutôt que d’une batterie, l’efficacité énergétique n’est pas une priorité énorme. Les puces CISC fonctionnent encore étonnamment bien dans ces situations et il n’y a pas de signe que cela changera de sitôt.
Dois-je opter pour un système ARM ou x86 ?
Avec Microsoft qui publie également Windows 11 pour l’architecture ARM et Apple qui passe ses Mac à l’utilisation de puces ARM, vous pourriez être intéressé par l’acquisition d’un PC ARM également. Cependant, tout cela se résume à une question très simple : Essayez-vous de tirer chaque bit de performance par watt-heure d’énergie fourni par votre batterie ? Ou êtes-vous plutôt enclin à pousser autant de performances brutes que possible au détriment de la durée de vie de la batterie ?
Pour la majorité des cas d’utilisation pour lesquels quelqu’un achèterait un système, la décision est aussi simple. En fin de compte, assurez-vous simplement de ne pas oublier d’emporter votre câble de chargement avec vous !