Un guide simple sur ARM vs. RISC-V vs. x86

RISC-V vs ARM vs x86 Image de titre

Introduction

Nous avons beaucoup parlé de Raspberry Pi 5 ici à PiCockpit, bien sûr. L'autre jour, j'ai trouvé une discussion sur le Raspberry Pi 5 qui était centrée sur l'architecture ARM du Pi et sur la façon dont elle se compare à l'architecture RISC-V. Depuis des années, les gens parlent de la compatibilité du Raspberry Pi avec x86. Mais qu'en est-il d'un Pi RISC-V ?

Ceci est d'autant plus intéressant que le Raspberry Pi est membre de l'association RISC-V International.

Tout comme Arduino, d'ailleurs.

Donc les puces d'architecture RISC-V ont potentiellement un avenir sur les Raspberry Pis. Cependant, je ne retiendrais pas mon souffle en espérant un Raspberry Pi x86.

Après tout, dans une discussion récente publiée par Raspberry PiGordon Hollingworth a déclaré : "Les gens nous demandent : "Pourriez-vous faire cela ? Pouvez-vous fabriquer un Raspberry Pi x86 ?C'est comme si on se disait : "Oh, mon Dieu, c'est beaucoup de travail". C'est possible, mais..."

Une puce Intel

J'ai donc pensé qu'il était temps de passer en revue les principales différences et similitudes entre les architectures RISC-V, ARM et x86. Je passerai en revue leur histoire, leurs avantages et leurs inconvénients, et ce qui les distingue les unes des autres.

À la fin, vous comprendrez pourquoi la fabrication d'un Raspberry Pi x86 demande tant de travail, mais pourquoi un Raspberry Pi RISC-V n'est pas exclu.

Vue d'ensemble

RISC-VARMx86
OrigineRISC-V InternationalArm Ltd.Intel et AMD
Jeu d'instructionsRISC (Reduced Instruction Set Computing)RISC (Reduced Instruction Set Computing)CISC (Complex Instruction Set Computing)
Ordre des octetsTypiquement little-endian (configurable par l'utilisateur)Généralement bi-endian (configurable par l'utilisateur)Little-endian
ApplicationsSystèmes embarqués, dispositifs IoT, solutions personnaliséesAppareils mobiles, systèmes embarqués, serveursOrdinateurs de bureau, ordinateurs portables, serveurs, postes de travail
Modèle de licenceLicence ouverte et libre de droitsARM concède des licences de conception aux fabricantsIntel et AMD produisent leurs propres puces
ÉcosystèmeDéveloppement de l'écosystème, initiatives de logiciels libresVaste écosystème, soutien étendu de tiersVaste écosystème de logiciels et de matériel

Passons maintenant en revue chacun de ces points.

Origine

Commençons par l'architecture x86, la plus ancienne des trois. L'architecture x86 remonte à 1978, lorsque Intel a lancé la famille 8086. L'architecture x86 était CISC, ce qui était en vogue à l'époque. Aujourd'hui, l'architecture x86 reste sous le contrôle d'Intel et d'AMD.

L'architecture ARM a démarré sept ans plus tard, lorsque Acorn Computers Ltd. a lancé l'ARM1. Acorn Computers n'existe plus aujourd'hui, mais son architecture ARM est maintenue par Arm Ltd. Arm Ltd. concède aujourd'hui des licences d'architecture ARM à d'autres entreprises.

En comparaison, RISC-V est extrêmement récent, puisqu'il a vu le jour en 2010 à l'université de Californie à Berkeley. En 2015, un groupe d'entreprises technologiques (d'IBM à Google en passant par Nvidia) s'est réuni pour fonder la RISC-V Foundation. En 2020, en raison de problèmes géopolitiques, la Fondation RISC-V a déménagé en Suisse et est devenue RISC-V International.

Logo RISC-V

Jeu d'instructions

Tout d'abord, permettez-moi de clarifier la différence entre RISC et CISC.

Les processeurs RISC utilisent un ensemble restreint et optimisé d'instructions, chacune prenant un seul cycle d'horloge, ce qui permet une exécution plus rapide et plus prévisible.

En revanche, les processeurs CISC disposent d'un jeu d'instructions plus large et plus diversifié, comprenant souvent des instructions complexes qui peuvent nécessiter plusieurs cycles d'horloge, ce qui se traduit par des performances potentiellement plus lentes mais plus polyvalentes dans le traitement de diverses tâches.

RISC-V est donc basé sur RISC, évidemment. Mais ce qui le différencie, c'est le fait qu'il soit open-source.

Dans leur article de 2014, Les jeux d'instructions devraient être libres : le cas du RISC-VDans le cadre de l'étude sur les logiciels libres, Krste Asanović et David A. Patterson comparent RISC-V à Linux. L'idée est qu'il existe une architecture de jeu d'instructions entièrement libre. Les gens devraient donc pouvoir la manipuler, jouer avec et la partager.

Asanović et Patterson affirment que cela pourrait favoriser l'innovation, une meilleure transparence et une réduction des coûts.

Il convient de préciser que, bien que RISC-V lui-même soit un logiciel libre, les implémentations spécifiques de RISC-V peuvent être à la fois libres et propriétaires.

Les instructions ARM sont également basées sur la technologie RISC. Toutefois, étant donné qu'Arm Ltd. octroie des licences pour l'architecture, elles sont tout sauf libres. Comme l'expliquent Asanović et Patterson, "une licence ARM ne vous permet même pas de concevoir un cœur ARM : "Une licence ARM ne vous permet même pas de concevoir un cœur ARM ; vous ne faites qu'utiliser leurs conceptions." Bien que ce ne soit pas aussi simple, c'est généralement le cas.

J'ai dit plus haut que l'architecture x86 est basée sur le CISC. C'est vrai, mais je dois mentionner que, depuis les années 90, les processeurs x86 comprennent également des instructions SIMD (Single Instruction, Multiple Data) pour les tâches de traitement parallèle. Cela permet aux processeurs multicœurs de fonctionner rapidement.

Après tout, le superordinateur le plus rapide du monde - Frontier - est basé sur x86.

Mais le deuxième superordinateur le plus rapide au monde, Fugaku, est basé sur ARM.

De nombreuses personnes affirment que la distinction entre RISC et CISC n'est plus très importante aujourd'hui. Les processeurs modernes étant si puissants, ils affirment que les différences entre ces types de jeux d'instructions ont pratiquement disparu. Cependant, dans leur appel à RISC-V, Asanović et Patterson affirment que "[cela] fait des décennies qu'aucune nouvelle ISA CISC n'a été couronnée de succès" et qu'il est donc plus logique d'opter pour une architecture basée sur RISC.

Ordre des octets

L'endianité fait référence à l'ordre des octets dans lequel les types de données multioctets sont stockés dans la mémoire de l'ordinateur.

Dans les systèmes little-endian, l'octet le moins significatif est stocké à l'adresse mémoire la plus basse, tandis que dans les systèmes big-endian, l'octet le plus significatif est stocké à l'adresse la plus basse.

L'endianité est très importante lorsque vous souhaitez échanger des données entre processeurs. Si vous envoyez des informations d'un système big-endian vers un système little-endian, vos données peuvent facilement être corrompues si vous ne les convertissez pas correctement.

RISC-V est typiquement little-endian. C'est quelque chose que vous pouvez configurer si vous voulez que votre RISC-V ait un ordre d'octets big-endian.

L'architecture ARM peut être soit little-endian, soit big-endian, en fonction de l'implémentation spécifique. Comme pour RISC-V, il est possible de configurer une puce ARM pour qu'elle soit big-endian.

Les Raspberry Pis sont, par défaut, little-endian. Vous pouvez le vérifier vous-même en allant sur votre Raspberry Pi, en ouvrant le terminal, et en exécutant :

lscpu

L'architecture x86 est little-endian. Mais contrairement aux architectures RISC-V et ARM, il n'est pas possible de la modifier. Le fait d'être little-endian est une caractéristique de l'architecture x86.

Applications

Je voudrais revenir un instant sur l'article d'Asanović et Patterson. Bien que l'article date de 2014, il soulève un point très important. Ils affirment que "[s]i le 80×86 a gagné la guerre des PC, le RISC domine les tablettes et les smartphones de l'ère post-PC ; en 2013, plus de 10 [milliards] d'ARM ont été livrés, contre 0,3 [milliard] de 80x86."

C'est un écart considérable, mais cela montre aussi que les applications d'une architecture contribuent à définir son importance. C'est pourquoi la présentation par Apple de la puce M1 pour ses nouveaux ordinateurs a fait grand bruit en 2020. Si Apple passait de x86 à ARM, qu'est-ce que cela signifiait pour l'avenir de x86 ?

Néanmoins, l'architecture x86 domine toujours le marché des ordinateurs. Les ordinateurs de bureau, les ordinateurs portables et les serveurs continuent tous à s'appuyer principalement sur l'architecture x86.

ARM, quant à lui, est typiquement utilisé dans les smartphones et les tablettes. Et, bien sûr, dans votre humble Raspberry Pi. Cependant, il n'en reste pas moins que la technologie ARM est utilisée dans les smartphones et les tablettes, Il semble que l'ARM pourrait commencer à s'imposer dans le monde de l'informatique également..

smartphone sur la table

RISC-V espère clairement s'approprier une part de l'espace de l'architecture ARM, mais il reste ouvert sur ce qu'il pourrait faire à l'avenir. Les universités et l'industrie investissent dans le RISC-V et suivent de près son évolution.

Si ARM a commencé à s'attaquer à x86, RISC-V commencera-t-il à s'attaquer à ARM ?

Modèle de licence

La plus restrictive des trois est la x86. Comme je l'ai mentionné plus haut, seules deux entreprises produisent des puces à architecture x86 : Intel et AMD. Les puces ne sont pas personnalisables et l'architecture est entièrement propriétaire.

L'architecture ARM fonctionne différemment, en raison du modèle de licence. Une licence ARM classique ne vous permet pas de créer un modèle d'architecture ARM. Il existe toutefois des exceptions, car la puce M1 d'Apple a été personnalisée en fonction de ses désirs.

L'architecture RISC-V est open-source et libre de droits, ce qui permet à quiconque de concevoir et de fabriquer des processeurs RISC-V sans payer de droits de licence. C'est en quelque sorte le Linux des ISA.

Il est intéressant de noter qu'Intel et AMD sont tous deux membres de RISC-V International. Il est donc clair qu'ils pensent également qu'il est utile de contribuer à l'architecture RISC-V.

Écosystème

L'écosystème RISC-V se développe rapidement, de nombreuses entreprises et chercheurs contribuant à des projets à code source ouvert et développant des produits basés sur RISC-V.

Bien que l'écosystème du logiciel ne soit pas énorme pour le moment, il se développe. Vous pouvez voir ses développements avec le projet RISE (RISE signifie RISC-V Software Ecosystem).

ARM et x86 dominent tous deux leurs marchés respectifs. Les écosystèmes des deux sont bien établis et vastes.

C'est l'un des inconvénients les plus évidents du RISC-V. Il n'est tout simplement pas aussi largement adopté que les deux autres et la concurrence est féroce.

RISC et CISC en action

Dans cette fantastique vidéo de Le programmateur [Remplir le blanc].Vous pouvez ainsi voir exactement comment fonctionnent les systèmes RISC et CISC au niveau du code assembleur.

Ici, vous pouvez voir en détail la différence entre RISC et CISC.

Sur ARM et RISC-V, le code assembleur comporte des lignes plus courtes, mais plus nombreuses. Sur x86, les lignes de code assembleur sont plus complexes, mais elles sont moins nombreuses.

La vidéo explique comment le compilateur GCC et le compilateur Clang transforment le code C++ en code Assembleur pour chacun des trois ISA - ARM vs. RISC-V vs. x86_64. Voir la vidéo :

Conclusion

Nous avons récemment publié un article comparant le Pi 5 Plus d'Orange avec Raspberry Pi 5 et Rock 5 Model B. Il est intéressant de noter que si ces trois SBC sont basés sur ARM, Radxa dispose d'un modèle x86 appelé Rock Pi X.

Certains craignent qu'une adoption plus large de RISC-V n'entraîne une plus grande fragmentation. Cela correspond bien à la comparaison avec Linux. Combien de distributions Linux existe-t-il aujourd'hui ? Cependant, la communauté RISC-V travaille activement à l'élaboration de normes afin de minimiser les problèmes de fragmentation et de compatibilité.

Nombreux sont ceux (y compris certains détracteurs) qui voient dans RISC-V un moyen de faire évoluer l'architecture des puces vers l'avenir.

Bien entendu, avec l'intensification des guerres commerciales entre les pays, les choses deviennent beaucoup plus délicates. Arm Ltd. est basée au Royaume-Uni, tandis qu'Intel et AMD sont basés aux États-Unis. Il n'est pas surprenant que des pays comme la Chine et la Russie se tournent vers RISC-V.

Certains pensent cependant que RISC-V est voué à l'échec. Ils affirment que RISC-V ne se contentera pas d'être une solution de rechange. cause fragmentation, mais plutôt que RISC-V est déjà est fragmenté. Il ne pourra donc pas décoller.

Mise à joure (Novem6 ber 2023): Arm Holdings vient d'annoncer l'acquisition d'une participation minoritaire dans Raspberry Pi Ltd. On ne sait pas encore ce que cela signifie pour l'avenir. Pour en savoir plus, cliquez ici :

Qu'en pensez-vous ? RISC-V est-il l'avenir ? Faites-nous part de votre avis dans les commentaires !

3 commentaires

  1. tozo sur novembre 6, 2023 à 1:13 pm

    Comme je l'ai mentionné plus haut, seules trois entreprises produisent des puces d'architecture x86 : Intel et AMD.
    C'est-à-dire... seulement deux 🙂 .

    • Adam sur novembre 7, 2023 à 12:36 pm

      Tout à fait d'accord - merci, tozo !

  2. Bruce Hoult sur novembre 8, 2023 à 10:27 pm

    Je pense qu'il est un peu injuste de compter l'âge du RISC-V à partir de la date à laquelle quelques chercheurs universitaires se sont retrouvés dans un pub (ou autre) en 2010 et ont décidé de commencer à concevoir leur propre ISA, alors que les autres sont comptés à partir de la date à laquelle la première puce commerciale a été introduite sur le marché.

    L'ISA a connu de multiples versions incompatibles au fur et à mesure de l'évolution des idées, tant au niveau du langage d'assemblage que de l'encodage binaire.

    La première puce RISC-V que l'on pouvait acheter, la FE310 de SiFive, est sortie en décembre 2016 sur la carte HiFive1 Arduino-clone. C'est juste un microcontrôleur, avec seulement les instructions du mode utilisateur. Les instructions et les CSR du mode machine et du mode superviseur ont fait l'objet d'un développement actif et de changements incompatibles jusqu'à peu de temps avant que l'ISA de base ne soit ratifiée (gelée, publiée) en juillet 2019. SiFive a sorti un SBC Linux, HiFive Unleashed (avec le SoC FU540) début 2018, avec environ 500 exemplaires fabriqués, mais c'était expérimental et ils étaient prêts à ce qu'il devienne orphelin si des changements incompatibles étaient apportés à l'ISA avant la ratification.

    Je pense que la date juste de l'origine du RISC-V se situe quelque part entre la publication de Privileged Architecture 1.10 en mai 2017 et la ratification en juillet 2019. Certainement pas 2010.

    Sur un autre sujet, je note que le 8086 était de loin le moins CISC des puces CISC et c'est une grande raison pour laquelle il a pu survivre à l'ère RISC (les milliards du PC IBM et de ses clones ont aussi beaucoup aidé !) VAX, M68000, Z8000, NS 16032/32032 étaient tout simplement trop complexes pour être rapides.

    "Depuis les années 90, les processeurs x86 comprennent également des instructions SIMD (Single Instruction, Multiple Data) pour les tâches de traitement parallèle. Cela permet aux processeurs multicœurs de fonctionner rapidement également." Ces deux éléments n'ont absolument rien à voir l'un avec l'autre.

    "L'architecture RISC-V est open-source et libre de droits, ce qui permet à quiconque de concevoir et de fabriquer des processeurs RISC-V sans payer de droits de licence. C'est vraiment comme le Linux des ISA". C'est vrai, mais concevoir son propre processeur coûte beaucoup plus cher que d'acquérir une licence auprès d'une douzaine de fournisseurs de noyaux RISC-V commerciaux (dont les modèles commerciaux sont très similaires à ceux d'Arm).

Laissez un commentaire