L’architecture M1 d’Apple, une menace pour les CPU d’Intel et d’AMD ?

Hicham EL ALAOUI
Rédigé par Hicham EL ALAOUI

Depuis qu’Apple a annoncé l’abandon des processeurs Intel pour son Apple Macintosh afin d’utiliser des processeurs de sa propre conception, le fameux Apple Silicon, la toile est pleine de messages apocalyptiques sur la fin de l’architecture x86 et sur la supériorité des architectures à ISA ARM. Mais à quoi ressemble l’architecture M1 d’Apple et comment se compare-t-elle à un PC ?

Sur ce site web, nous avons couvert toutes sortes de processeurs, mais généralement ce sont ceux qui supportent le jeu d’instructions et de registres x86, mais en raison de la controverse de ces derniers mois avec l’Apple M1, nous avons décidé de faire un article sur son architecture.

L’Apple M1 n’est pas un CPU, c’est un SoC

L'Apple M1 n'est pas un CPU, c'est un SoC

La première chose à garder à l’esprit est que l’Apple M1 n’est pas un CPU comme ceux d’Intel ou d’AMD, mais qu’il s’agit d’un SoC complet qui, outre le CPU, comprend un certain nombre d’unités spécialisées de catégorie et d’utilité différentes, qui sont les suivantes :

  • CPU, qui sera celui dont nous parlerons plus tard dans cet article.
  • GPU, qui traite les graphiques.
  • Unité de traitement d’image ou ISP.
  • Processeur de signaux numériques ou DSP, qui est utilisé pour décompresser les fichiers musicaux ainsi que pour des opérations mathématiques très complexes.
  • Unité de traitement neuronal, un processeur dédié à l’IA.
  • Encodeur et décodeur vidéo pour la lecture et le stockage de films.
  • Unités de cryptage des données pour la sécurité.
  • Les unités d’E/S qui gèrent les périphériques externes ainsi que les informations qui leur sont envoyées.
  • Un grand cache de dernier niveau, qui est essentiel pour la mémoire unifiée et est appelé cache de niveau système.

Si nous devions parler de toutes ces unités, il nous faudrait un livre, c’est pourquoi nous allons parler du CPU exclusivement pour répondre à la question de ses performances, par rapport aux CPU qui sont dans les PC.

Lorsqu’il n’y a pas de variété dans le matériel, il est plus facile d’optimiser les programmes.

L’une des choses qui différencient le PC des autres plates-formes est que chaque composant a un millier de produits différents et finit donc par créer une quantité incroyable de configurations, alors qu’avec les ordinateurs Apple à partir du M1, tout le matériel, à l’exception de la RAM et du stockage, se trouve dans le SoC Apple.

Qu’est-ce que cela permet ? Fondamentalement, il permet d’optimiser les applications pour une seule configuration, ce qui n’est pas différent de ce qui se passe dans une console qui a une vie de plusieurs années sur le marché et qui finit par avoir un code optimisé même cinq ans après sa sortie. Sur PC, en revanche, la polyvalence en matière de choix fait qu’il est impossible d’optimiser quoi que ce soit.

Sur un PC, lorsque nous exécutons un programme, tout va vers l’unité centrale, mais il est possible qu’une partie du code soit agréable à exécuter sur des unités beaucoup plus spécialisées que l’unité centrale, mais l’énorme variété de matériel sur le PC fait de l’optimisation du code pour utiliser d’autres unités matérielles pour accélérer les programmes une tâche sisyphéenne.

Mémoire unifiée

L’une des armes secrètes d’Apple contre le PC est la mémoire unifiée, mais avant tout, nous devons préciser que la mémoire unifiée ne fait pas référence au fait que différents éléments partagent la même mémoire au niveau physique, mais que la mémoire unifiée signifie que tous les éléments du SoC comprennent la mémoire de la même manière.

C’est-à-dire que lorsque le GPU modifie une adresse mémoire, cette donnée est modifiée pour les autres éléments de l’Apple M1 à la même adresse mémoire directement. Dans les PC et les architectures dérivées qui utilisent la mémoire unifiée, il faut même utiliser des unités DMA qui copient les données de l’espace RAM alloué à une unité vers une autre unité, ce qui ajoute de la latence lors de l’exécution du code et réduit la possibilité de collaboration entre les parties.

Ainsi, grâce à la mémoire unifiée du M1, les développeurs de macOS peuvent choisir d’exécuter certains codes sur des unités qui les résolvent plus rapidement que le CPU.

Le processeur haute performance de l’Apple M1 : Firestorm

Le M1 d’Apple, bien qu’il s’agisse d’un processeur multi-core, utilise en fait deux types de processeurs différents. D’une part, un cœur à haute efficacité énergétique, mais moins performant, appelé Icestorm, et d’autres cœurs à haute performance, mais moins performants sur le plan énergétique, appelés Firestorm, qui sont ceux dont nous allons nous occuper, car c’est avec eux qu’Apple affronte les x86 à haute performance.

C’est aux cœurs Firestorm que nous nous intéresserons, qui dans l’Apple M1 sont au nombre de quatre au total et sont ceux avec lesquels Apple a décidé de tenir tête aux processeurs haute performance des PC, et l’a fait avec un cœur haute performance, dont il faut comprendre la raison de ses performances avant de devoir commenter un sujet général à tous les CPU.

Décodeurs dans les unités centrales de traitement hors ordre

Dans la première phase de la deuxième étape du cycle d’instruction, ce qui est fait est de convertir les instructions en micro-instructions, qui sont beaucoup plus simples mais faciles à mettre en œuvre dans le silicium. Une micro-instruction n’est pas une instruction complète en soi car elle ne représente pas une action, mais plusieurs d’entre elles combinées forment des instructions plus complexes.

Ainsi, en interne, aucune unité centrale n’exécute le binaire du programme tel quel, mais chacune d’entre elles dispose d’un processus de transformation des instructions en ensembles de micro-instructions. Mais cela ne s’arrête pas là, dans un processeur contemporain l’exécution est désordonnée, ce qui signifie que le programme n’est pas exécuté dans l’ordre de la séquence, mais dans l’ordre dans lequel les unités d’exécution sont disponibles.

Ainsi, la première chose que fait le décodeur une fois qu’il a converti l’instruction en microinstructions est de les placer dans ce que nous appelons le tampon de réordonnancement, dans lequel elles sont placées sous forme de liste dans l’ordre dans lequel les différentes unités d’exécution vont être disponibles à côté de la position qu’elles occupent dans l’ordre correct du programme. Ainsi, le programme s’exécutera plus efficacement et les instructions ne devront pas attendre que l’unité d’exécution soit libre, puis le résultat est écrit dans l’ordre correct du programme.

L’arme secrète des noyaux Firestorm de l’Apple M1 : son décodeur

L’étape de décodage des instructions est la deuxième étape du cycle d’instruction. Dans tout processeur parallèle, il faut que le décodeur soit capable de traiter plusieurs instructions en même temps et de les envoyer aux unités d’exécution appropriées pour résolution.

L’avantage du M1 ? Le fait qu’il dispose d’un décodeur capable de traiter 8 instructions simultanées, ce qui en fait le processeur le plus large à cet égard, car cela lui permet de traiter une plus grande quantité d’instructions en parallèle, donc cela permet aussi à Apple de placer une plus grande quantité d’instructions. Mais si Apple a pu le faire, c’est en raison de la nature du jeu d’instructions ARM par rapport à x86, notamment en termes de décodage.

Les instructions ARM ont l’avantage d’avoir une taille fixe, cela signifie que dans le code binaire, chaque nombre de bits est une instruction. En revanche, les instructions x86 ont une taille variable. Cela signifie que le code doit passer par plusieurs décodeurs avant de devenir une microinstruction. Les conséquences de cette situation ? Eh bien, le fait que la partie du matériel dédiée au décodage des instructions finit par prendre beaucoup plus de place et consomme plus, mais aussi que moins d’instructions peuvent être décodées simultanément à taille égale.

Et c’est là que se trouve le grand avantage du M1. Combien de décodeurs complets possèdent les CPU Intel et AMD ? Eh bien, la moyenne est de quatre, juste la moitié. Ce qui donne au Firestorm du M1 la capacité d’exécuter deux fois plus d’instructions simultanément que les CPU Intel et AMD.

Apple M1 contre Intel et AMD

Apple M1 contre Intel et AMD

Exécuter deux fois plus d’instructions ne signifie pas résoudre deux fois plus d’instructions. La contrepartie pour les cœurs ARM est qu’ils nécessitent un plus grand nombre de cycles d’instructions uniques et donc de cycles d’horloge pour exécuter un programme. Ainsi, un x86 de même largeur serait beaucoup plus puissant qu’un ARM, mais nécessiterait une plus grande quantité de transistors et un processeur très complexe en termes de taille.

Au fil du temps, AMD et Intel vont augmenter l’IPC de leurs processeurs, mais ils sont limités par la complexité du jeu d’instructions x86 et de son décodeur. Ce n’est pas qu’ils ne peuvent pas fabriquer un CPU x86 avec huit décodeurs, c’est juste que s’il existait, il serait trop gros pour être commercialement viable et ils doivent attendre l’apparition de nouveaux nœuds pour augmenter l’IPC par cœur.

TAGGED :
Laisser un commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Quitter la version mobile