Les différences entre ARM et Intel x86-64
Les puces ARM étant désormais omniprésentes dans les ordinateurs portables hautes performances et les serveurs Edge, il est légitime de se demander si ces nouveaux appareils valent la peine d’être achetés. Il est temps de comprendre les différences techniques entre les processeurs ARM et leurs prédécesseurs x86-64 plus puissants qui dominaient auparavant le marché des puces sans entraves.
Que signifie x86-64 au juste ?
Les processeurs Intel présents dans les ordinateurs de bureau et portables sont parfois appelés processeurs « x86 ». L’architecture 64 bits utilisée aujourd’hui par tous les ordinateurs modernes repose sur le modèle x86, désormais appelé « x86-64 ».
Tout cela semble un peu confus, mais cela aide à expliquer pourquoi il existe deux dossiers Program Files différents sous Windows.
Pour simplifier les choses, toutes les applications 32 bits se trouvent dans le dossier x86 et celles 64 bits dans l’autre dossier. Il s’agit d’une convention depuis que Microsoft a sorti sa version 64 bits de Windows XP en 2001.
Pour simplifier un peu les choses, nous appellerons « x86-64 » « x86 », car il existe suffisamment de similitudes entre les puces 32 bits et 64 bits pour les regrouper.
Le terme « x86 » vient du grand-père du traitement moderne, un microprocesseur créé par Intel appelé le 8086. Cette puce 16 bits fonctionnait sous un jeu d’instructions encore largement utilisé aujourd’hui par les processeurs modernes pour effectuer des tâches informatiques avancées.
De votre éditeur de texte à votre logiciel de rendu vidéo avancé, tout a toujours la capacité de fonctionner sous une architecture née en 1978 !
Depuis la sortie du microprocesseur 8086, Intel a continué à utiliser cette convention de dénomination pour les futurs modèles tels que le 80286 et le 80386 jusqu’à ce qu’elle rompe avec 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 jeu d’instructions sous le nom de « x86 ».
Même les processeurs 64 bits les plus modernes, lancés pour la première fois par AMD dans la série Opteron dans les années 2000, reçoivent la même désignation, car l’écrasante majorité des processeurs 64 bits des systèmes de bureau et des serveurs continuent de reposer sur le pilier du désormais humble 8086.
Ensembles d’instructions
Toutes les fonctionnalités d’un processeur reposent sur ce que l’on appelle un jeu d’instructions. Il s’agit d’un ensemble d’opérations rudimentaires câblées qu’une puce peut effectuer. Chaque instruction indique à la puce d’effectuer des opérations telles que des opérations mathématiques de base et de déplacer des données. Au bas de chaque élément de code de 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 appelé langage assembleur, qui se traduit une étape plus loin dans les instructions de base souvent appelées code machine ou langage machine.
C’est ici que nous arrivons à la différence fondamentale entre les puces ARM et x86.
Les puces x86 utilisent un ensemble d’instructions complexe (CISC) , tandis que les puces ARM utilisent un ensemble d’instructions réduit (RISC) . Alors que les puces CISC tentent de mettre plus de « travail » dans une instruction tout en sacrifiant des cycles d’horloge pour accomplir cette tâche, les puces RISC ont (comme leur nom l’indique) un ensemble d’instructions beaucoup plus petit qui décompose tout en étapes plus simples qui peuvent être exécutées en un seul cycle d’horloge.
ICSC c. RISQUE
Si une puce CISC doit multiplier deux nombres, elle peut exécuter une seule commande : MULT 2, 3
. Cette commande unique couvrira le chargement des nombres depuis la mémoire, leur multiplication et le stockage du résultat dans l’emplacement mémoire approprié. Une puce RISC effectuant la même opération nécessiterait beaucoup plus d’étapes. Tout d’abord, une LOAD
instruction pour déplacer les nombres des registres vers l’unité d’exécution. Ensuite, une PROD
instruction pour multiplier les nombres. Enfin, une STOR
instruction pour placer le résultat dans le registre approprié.
Bien que la puce CISC puisse sembler plus efficace parce que ses commandes semblent plus simples, gardez à l’esprit quelques différences importantes :
- Premièrement, les puces CISC exécutent des commandes sur plusieurs cycles d’horloge, alors que chaque instruction d’une puce RISC est exécutée sur un seul cycle d’horloge. De ce fait, notre
MULT
commande hypothétique pourrait s’exécuter sur le même nombre de cycles que l’ensemble des instructions RISC qui effectuent la même tâche. - Deuxièmement, toutes les instructions et la logique du 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.
Le CISC présente certains avantages. Tout d’abord, l’ordinateur n’a pas besoin de beaucoup de travail pour passer d’un langage de programmation de niveau humain comme le C à un langage d’assemblage de niveau processeur. En fait, la MULT
commande mentionnée ci-dessus est très similaire à la commande foo = foo * bar
C.
Les puces RISC demandent au compilateur beaucoup plus de travail pour convertir le code en langage assembleur. Les puces CISC peuvent également effectuer 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 les utiliser.
Dans cette compétition de performances entre les deux entreprises, il n’y a pas de vainqueur évident du point de vue des consommateurs. Cependant, RISC a un atout de plus dans sa manche pour vraiment prendre l’avantage sur CISC.
Consommation d’énergie
Entre CISC et RISC, il n’y a absolument aucune concurrence en matière de consommation d’énergie. RISC remporte ici la palme. Un jeu d’instructions réduit permet d’obtenir une empreinte de plaquette réduite, ce qui rend la puce plus petite et donc moins gourmande en énergie.
Les puces plus petites, dotées de moins de composants microscopiques, ont également une résistance électrique moindre et ne nécessitent pas autant de puissance pour fonctionner. Le meilleur exemple est la technologie éprouvée du smartphone, un appareil « informatique léger » qui offre une quantité immense de performances pour sa taille relativement petite, mais parvient dans de nombreux cas à fonctionner pendant plus de 24 heures avec une batterie relativement petite.
Cela étant 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 généralement d’une connexion directe à une prise murale plutôt que d’une batterie, l’efficacité énergétique n’est pas une priorité aussi importante. Les puces CISC fonctionnent toujours de manière étonnante dans ces situations et il n’y a aucun signe de changement dans un avenir proche, vraiment.
Dois-je obtenir un système ARM ou x86 ?
Cependant, tout se résume à une question très simple : essayez-vous de tirer le meilleur parti des performances par wattheure d’énergie fournie par votre batterie ? Ou êtes-vous plutôt enclin à exploiter au maximum les performances brutes de votre appareil au détriment de l’autonomie de la batterie ?
Pour la plupart des cas d’utilisation pour lesquels quelqu’un achèterait un système, la décision est aussi simple que cela. En fin de compte, assurez-vous simplement de ne pas oublier d’apporter votre câble de chargement avec vous !
Crédit photo : Un ingénieur en combinaison stérile tient une puce électronique par DepositPhotos
Laisser un commentaire