Comment ARM a dominé le marché mobile

Chaque fois que vous pensez au matériel informatique mobile, ARM est probablement la première entreprise qui vous vient à l’esprit, ou devrait être. Alors qu'Intel était historiquement reconnu comme le leader de la fabrication de puces – et cela reste vrai à ce jour – pendant des années, ARM s'est lentement creusé dans une niche qui a finalement atteint un point d'inflexion, où les appareils informatiques n'avaient plus besoin d'être plus rapides, mais ils devaient être plus efficaces et portables.

C'est pourquoi ARM domine le marché des processeurs mobiles avec presque toutes les versions majeures construites au-dessus de son architecture. Nous parlons de milliards de puces utilisées sur des applications embarquées, des systèmes biométriques, des téléviseurs intelligents, des iPhones, des ordinateurs portables et des tablettes. Mais pourquoi est-ce le cas, et pourquoi d'autres architectures comme x86 n'ont-elles pas réussi? Dans cet article, nous vous donnerons un aperçu technique de ce qu'est ARM, d'où il vient et pourquoi il est devenu si populaire.

La première chose à noter est que ARM (plus récemment stylisé en tant que «bras», en minuscules) ne fait pas réellement de processeurs. Au lieu de cela, ils conçoivent l'architecture d'un processeur et octroient une licence pour ces conceptions à d'autres sociétés comme Qualcomm ou Samsung qui l'intègrent dans leurs processeurs. Puisqu'ils utilisent tous une norme commune, le code qui s'exécute sur un processeur Qualcomm Snapdragon s'exécutera également sur un processeur Samsung Exynos.

Qu'est-ce qu'une ISA (Instruction Set Architecture)?

Chaque puce informatique a besoin d'un ISA pour fonctionner et c'est ce que représente ARM. Pour un aperçu détaillé du fonctionnement interne des processeurs, notre série de conception de processeurs est une lecture incontournable. La première étape pour expliquer ARM consiste à comprendre ce qu'est et ce qu'est exactement un ISA.

Ce n'est pas un composant physique comme un cache ou un noyau, mais il définit plutôt le fonctionnement de tous les aspects d'un processeur. Cela inclut des éléments comme le type d'instructions que la puce peut traiter, la façon dont les données d'entrée et de sortie doivent être formatées, la façon dont le processeur interagit avec la RAM, et bien plus encore. Une autre façon de penser est qu'un ISA est un ensemble de spécifications alors qu'un CPU est une réalisation ou une implémentation de ces spécifications. C'est un plan pour la façon dont toutes les parties d'un CPU fonctionneront.

Par exemple, les ISA spécifient la taille de chaque élément de données avec les plus modernes en utilisant un modèle 64 bits. Tandis que tous les processeurs exécutent les trois fonctions de base de lecture des instructions, d'exécution de ces instructions et de mise à jour de leur état en fonction des résultats, différentes normes ISA peuvent décomposer ces étapes. Un ISA complexe comme x86 divisera généralement ce processus en plusieurs dizaines d'opérations plus petites pour améliorer le débit. D'autres tâches telles que la prédiction de branche pour les instructions conditionnelles et la prélecture des futures données sont également spécifiées par un ISA.

En plus de définir la micro-architecture d'un processeur, un ISA spécifiera également un ensemble d'instructions qu'il pourra traiter. Les instructions sont ce qu'un processeur exécute à chaque cycle et sont produites par un compilateur. Il existe de nombreux types d'instructions telles que la lecture / écriture en mémoire, les opérations arithmétiques, les opérations de branchement / saut, etc. Un exemple pourrait être "ajouter le contenu de l'adresse mémoire 1 au contenu de l'adresse mémoire 2 et stocker le résultat dans l'adresse mémoire 3."

Chaque instruction aura généralement une longueur de 32 ou 64 bits et aura plusieurs champs. Le plus important est le opcode qui indique au processeur de quel type d’instruction il s’agit. Une fois que le processeur sait quel type d'instruction il exécute ensuite, il récupère les données pertinentes nécessaires à cette opération. L'emplacement et le type de données seront donnés dans une autre partie de l'opcode. Voici quelques liens vers des parties des listes d'opcode ARM et x86.

RISC vs CISC

Maintenant que nous avons une idée de base de ce qu'est et de ce qu'est un ISA, commençons par regarder ce qui rend ARM spécial. La caractéristique la plus importante est que ARM est une architecture RISC (Reduced Instruction Set Computing) tandis que x86 est une architecture CISC (Complex Instruction Set Computing). Ce sont deux paradigmes majeurs de la conception des processeurs et tous deux ont leurs forces et leurs faiblesses.

Avec une architecture RISC, chaque instruction spécifie directement une action à effectuer par le CPU et elles sont relativement basiques. D'un autre côté, les instructions dans une architecture CISC sont plus complexes et spécifient une idée plus large pour le CPU. Cela signifie qu'un CPU CISC décompose généralement chaque instruction en une série de micro-opérations. Une architecture CISC peut coder beaucoup plus de détails en une seule instruction, ce qui peut considérablement améliorer les performances. Par exemple, une architecture RISC peut simplement avoir une ou deux instructions "Ajouter" tandis qu'une architecture CISC peut en avoir 20 selon le type de données et d'autres paramètres pour le calcul. Une comparaison plus détaillée entre RISC et CISC peut être trouvée ici.

CISC RISC
Poussez la complexité vers le matériel Poussez la complexité vers le logiciel
De nombreux types et formats différents pour les instructions Les instructions suivent un format similaire
Peu de registres internes De nombreux registres internes
Décodage complexe pour décomposer les parties d'instruction Compilateur complexe pour écrire du code avec des instructions granulaires
Formes complexes d'interaction avec la mémoire Peu de formes d'interaction avec la mémoire
Les instructions prennent différents nombres de cycles pour terminer Toutes les instructions se terminent en un cycle
Difficile de diviser et de paralléliser le travail Travail en parallèle facile

Une autre façon de voir les choses est de les comparer à la construction d'une maison. Avec un système RISC, vous n'avez qu'un marteau et une scie de base, tandis qu'avec un système CISC, vous avez des dizaines de différents types de marteaux, scies, perceuses, etc. Un constructeur utilisant un système de type CISC serait en mesure de faire plus de travail car ses outils sont plus spécialisés et plus puissants. Le constructeur RISC serait toujours en mesure de faire le travail, mais cela prendrait plus de temps car leurs outils sont beaucoup plus basiques et moins puissants.

Vous pensez maintenant probablement "pourquoi quelqu'un utiliserait-il un système RISC si un système CISC est tellement plus puissant?" La performance est cependant loin d'être la seule chose à considérer. Notre constructeur CISC doit embaucher un tas de travailleurs supplémentaires parce que chaque outil nécessite un ensemble de compétences spécialisées. Cela signifie que le chantier est beaucoup plus complexe et nécessite beaucoup de planification et d'organisation. Il est également beaucoup plus coûteux de gérer tous ces outils car chacun peut fonctionner avec un type de matériau différent. Notre ami RISC n'a pas à s'en soucier, car ses outils de base peuvent fonctionner avec n'importe quoi.

Le concepteur de la maison a le choix de la façon dont il souhaite construire sa maison. Ils peuvent créer des plans simples pour notre constructeur RISC ou ils peuvent créer des plans plus complexes pour notre constructeur CISC. L'idée de départ et le produit fini seront les mêmes, mais le travail au milieu sera différent. Dans cet exemple, le concepteur domestique est équivalent à un compilateur. Il prend comme code d'entrée (dessin à la maison) produit par un programmeur (concepteur de maison) et sort un ensemble d'instructions (plans de construction) en fonction du style préféré. Cela permet à un programmeur de compiler le même programme pour un processeur ARM et un processeur x86 même si la liste d'instructions qui en résulte sera très différente.

Nous avons besoin de moins de puissance!

Revenons à ARM. Si vous avez connecté les points, vous pouvez probablement deviner ce qui rend ARM si attrayant pour les concepteurs de systèmes mobiles. La clé ici est l'efficacité. Dans un scénario intégré ou mobile, l'efficacité énergétique est bien plus importante que les performances. Presque à chaque fois, un concepteur de système subira une légère baisse de performances si cela signifie une économie d'énergie. Tant que la technologie de la batterie ne s'améliorera pas, la consommation de chaleur et d'énergie restera le principal facteur limitant lors de la conception d'un produit mobile. C'est pourquoi nous ne voyons pas de gros processeurs de bureau sur nos téléphones mobiles. Bien sûr, ce sont des ordres de grandeur plus rapides que les puces mobiles, mais votre téléphone deviendrait trop chaud pour tenir et la batterie ne durerait que quelques minutes. Alors qu'un processeur x86 de bureau haut de gamme peut consommer 200 watts à la charge, un processeur mobile maximisera environ 2 à 3 watts.

Vous pouvez certainement créer un processeur x86 moins puissant, mais le paradigme CISC est le mieux adapté aux puces plus puissantes. C'est pourquoi vous ne voyez pas souvent les puces ARM sur les ordinateurs de bureau ou les puces x86 dans les téléphones; ils ne sont tout simplement pas conçus pour cela. Pourquoi ARM est-il en mesure d'atteindre une si bonne efficacité énergétique? Tout cela remonte à sa conception RISC et à la complexité de l'architecture. Puisqu'il n'a pas besoin de pouvoir traiter autant de types d'instructions, l'architecture interne peut également être beaucoup plus simple. Il y a également moins de frais généraux dans la gestion d'un processeur RISC.

Tout cela se traduit directement par des économies d'énergie. Une conception plus simple signifie que davantage de transistors peuvent contribuer directement aux performances plutôt que d'être utilisés pour gérer d'autres parties de l'architecture. Une puce ARM donnée ne peut pas traiter autant de types d'instructions ou aussi rapidement qu'une puce x86 donnée, mais elle compense cela en efficacité.

Dis bonjour à mon petit ami

Une autre caractéristique clé qu'ARM a apportée à la table est l'architecture informatique hétérogène big.LITTLE. Ce type de conception comporte deux processeurs compagnons sur la même puce. L'un sera un cœur à très faible puissance tandis que l'autre est un cœur beaucoup plus puissant. La puce analysera l'utilisation du système pour déterminer le cœur à activer. Dans d'autres scénarios, le compilateur peut dire à la puce de faire apparaître le noyau le plus puissant s'il sait qu'une tâche à forte intensité de calcul est à venir.

Si l'appareil est inactif ou exécute simplement un calcul de base, le cœur de faible puissance (LITTLE) s'allumera et le cœur plus puissant (gros) s'éteindra. ARM a déclaré que cela peut permettre d'économiser jusqu'à 75% d'énergie. Bien qu'un processeur de bureau traditionnel diminue certainement sa consommation d'énergie pendant les périodes de charge plus légère, certaines parties ne s'arrêtent jamais. Comme ARM a la capacité de désactiver complètement un noyau, il surpasse clairement la concurrence.

La conception du processeur est toujours une série de compromis à chaque étape du processus. ARM est all-in sur l'architecture RISC et il a largement payé. En 2010, ils détenaient une part de marché de 95% sur les processeurs de téléphonie mobile. Cela a légèrement baissé alors que d'autres sociétés ont tenté d'entrer sur le marché, mais il n'y a toujours personne de proche.

Licence et utilisation généralisée

L'approche de licence d'ARM pour les entreprises est une autre raison de leur domination sur le marché. Construire physiquement des puces est extrêmement difficile et coûteux, donc ARM ne le fait pas. Cela permet à leurs offres d'être plus flexibles et personnalisables.

Selon le cas d'utilisation, un titulaire de licence peut choisir les fonctionnalités qu'il souhaite, puis demander à ARM de sélectionner le meilleur type de puce pour lui. Les clients peuvent également concevoir leurs propres puces propriétaires et implémenter uniquement certains des jeux d'instructions ARM. La liste des entreprises de technologie utilisant l'architecture ARM est trop longue pour tenir ici, mais pour n'en nommer que quelques-unes: Apple, Nvidia, Samsung, AMD, Broadcom, Fujitsu, Amazon, Huawei et Qualcomm utilisent toutes la technologie ARM est une certaine capacité.

Au-delà de l'alimentation des smartphones (ordinateurs de poche), Microsoft a poussé l'architecture de sa Surface et d'autres appareils légers. Nous avons écrit un examen complet de Windows 10 sur ARM il y a plus d'un an, et bien que cet effort n'ait pas encore amené le système d'exploitation à la ligne d'arrivée, nous avons depuis vu des initiatives plus récentes et meilleures comme la Surface Pro X. Apple a également été rumeur depuis longtemps d'apporter macOS à ARM, en théorie afin que nous puissions avoir des ordinateurs portables qui fonctionnent aussi efficacement qu'un téléphone.

Même dans le centre de données, pendant des années, la promesse d’Arm était avant tout d’économiser de l’énergie – un facteur critique lorsque vous parlez de milliers et de milliers de serveurs. Cependant, récemment, ils ont vu plus d'adoption sur les installations informatiques à grande échelle qui visent à offrir à la fois des améliorations de puissance et de performances par rapport aux solutions existantes d'Intel et d'AMD. Franchement, ce n'est pas quelque chose que beaucoup de gens s'attendaient à voir arriver si tôt.

ARM a également mis en place un vaste écosystème de propriété intellectuelle (IP) supplémentaire pouvant fonctionner sur leurs architectures. Cela inclut des accélérateurs, des encodeurs / décodeurs et des processeurs multimédias pour lesquels les clients peuvent tous acheter les droits de licence pour les utiliser dans leurs produits.

ARM est également l'architecture de choix pour la grande majorité des appareils IoT. Echo d'Amazon et Google Home Mini fonctionnent tous deux sur des processeurs ARM Cortex. Ils sont devenus la norme de facto, et vous avez besoin d'une très bonne raison ne pas utilisez un processeur ARM lors de la conception de l'électronique mobile.

Vous rentrez tout cela dans une seule puce?

En plus de son unité centrale ISA, ARM s'est également étendu à l'espace système sur puce (SoC). Le marché de l'informatique mobile a évolué vers une approche de conception plus intégrée à mesure que les besoins en espace et en énergie se sont durcis. Un CPU et un SoC ont de nombreuses similitudes, mais un SoC est vraiment la prochaine génération de l'informatique mobile.

Un système sur puce fait exactement ce à quoi il ressemble. Il combine de nombreux composants distincts sur une seule puce pour augmenter l'efficacité. Imaginez réduire une carte mère de bureau entière en une seule puce et c'est ce qu'est un SoC. Il a généralement un processeur, un processeur graphique, une mémoire, des contrôleurs périphériques, une gestion de l'alimentation, une mise en réseau et certains accélérateurs. Avant l'adoption de cette conception, les systèmes auraient besoin d'une puce individuelle pour chacune de ces fonctions. La communication entre les puces peut être 10 à 100 fois plus lente et utiliser 10 à 100 fois plus d'énergie qu'une connexion interne sur la même puce. C'est pourquoi le marché mobile a si fortement adopté ce concept.

Représentation des nombreuses fonctionnalités d'un SoC Qualcomm basé sur ARM

De toute évidence, les SoC ne conviennent pas à tous les types de systèmes. Vous ne voyez pas d'ordinateurs de bureau ou d'ordinateurs portables grand public avec des SoC, car il y a une limite à la quantité de choses que vous pouvez entasser dans une seule puce. Il n'y a aucun moyen d'intégrer la fonctionnalité d'un GPU discret entier, une quantité adéquate de RAM et toutes les interconnexions requises sur une seule puce. Tout comme le paradigme RISC, les SoC sont parfaits pour les conceptions à faible consommation mais pas tant pour les modèles plus performants.

Nous espérons que vous avez maintenant compris pourquoi ARM est devenu si dominant sur le marché des processeurs mobiles. Leur modèle RISC ISA leur permet de concéder des licences aux fabricants de puces. En optant pour le modèle RISC, ils maximisent l'efficacité énergétique par rapport aux performances. Quand il s'agit de l'informatique mobile, c'est le nom du jeu et ce sont des grands maîtres.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.