Comment ARM a conquis le monde - et gagné
NouvellesPour autant que la plupart d'entre nous se souviennent bien, la bataille pour le marché des processeurs grand public a été opposée par deux protagonistes principaux, Intel et AMD, tandis que les fabricants de semi-conducteurs comme Sun et IBM se concentraient traditionnellement sur les marchés plus spécialisés des serveurs Unix et des stations de travail..
Inutile de le remarquer, une autre société a atteint un niveau de domination élevé, avec des ventes de puces basées sur sa technologie dépassant de loin celles d'Intel et d'AMD combinées..
La société pionnière est ARM Holdings, et même si ce n'est pas un nom qui est sur toutes les lèvres de la même manière que les "deux grands", il semblerait que cette société continuera à se développer de plus en plus..
Nous mettons ici ARM à l'honneur, explorons son passé et son héritage, mais aussi et surtout, regardons vers l'avenir de ce héros méconnu de la révolution de la microélectronique..
Si la majeure partie du secteur des semi-conducteurs est, et a toujours été, basée dans la Silicon Valley en Californie, le siège d’ARM est situé au Royaume-Uni, dans le soi-disant quartier de Silicon Fen, près de Cambridge..
Bien qu'ARM ne soit pas un nom connu, l'entreprise n'est pas un Johnny arrivé récemment. En effet, si nous retrouvons ARM dans ses racines, nous trouvons une société qui a joué un rôle majeur dans le boom de l’informatique personnelle du début des années 80..
En 1980, le PC IBM était encore en développement et les ordinateurs personnels existants coûtaient extrêmement cher, coûtant l’équivalent de plusieurs milliers de livres aujourd’hui. Le Royaume-Uni venait de marquer les ordinateurs personnels avec le lancement du Sinclair ZX80. Il s’agissait du premier ordinateur vendu à moins de 100 livres sterling - ce qui a aidé le Royaume-Uni à devenir le chef de file mondial en matière de propriété d’ordinateur à la maison au cours des années 1980..
Acorn Computers est l’une des sociétés les plus influentes sur les traces de Sinclair. À peine un an plus tard, Acorn a sorti le BBC Micro, qui a trouvé sa place dans presque toutes les écoles du Royaume-Uni et a vendu environ un million et demi d’unités..
Le successeur d’Acorn à la BBC Micro, l’Archimedes, n’a pas été aussi performant qu’un ordinateur, mais il a eu beaucoup plus d’influence en raison du choix du processeur par Acorn. Alors que BBC Micro utilisait un 6502 8 bits standard de MOS Technology, Archimedes Acorn décida de concevoir sa propre puce RISC (ordinateur à jeu d’instructions réduit) 32 bits hautes performances, qu’elle appela une machine Acorn RISC ou Processeur ARM.
En 1990, dans le cadre d'une coentreprise avec Apple et VLSI Technology (une société qui a conçu et fabriqué des puces personnalisées et semi-personnalisées), Acorn a créé sa division de recherche sous la forme d'une société distincte appelée Advanced RISC Machines. En temps voulu, cette ramification deviendrait la société ARM Holdings que nous connaissons aujourd'hui..
La philosophie du RISC
Après avoir utilisé le terme RISC pour décrire la puce ARM qui a alimenté l’Archimedes, et comme la même étiquette peut être appliquée à la technologie ARM actuelle, il est logique de commencer par étudier cette approche de la conception d’un microprocesseur. Pour ce faire, nous devons commencer par une brève leçon d'histoire..
Les premiers microprocesseurs 8 bits tels que l'Intel 8080 ou le Motorola 6800 n'avaient que quelques instructions simples. Par exemple, ils ne savaient même pas multiplier deux nombres entiers. Il fallait donc utiliser de longues routines logicielles comportant plusieurs quarts de travail et des ajouts..
Partant du principe que le matériel était rapide mais que le logiciel était lent, le développement ultérieur du microprocesseur a consisté à fournir aux processeurs davantage d'instructions pour l'exécution de fonctions de plus en plus complexes. Appelée approche CISC (ordinateur à jeu d'instructions compliqué), telle était la philosophie adoptée par Intel et qui est plus ou moins suivie par les derniers processeurs Core i7 actuels..
Ce passage à des instructions de plus en plus compliquées a eu un coût. Bien que les premiers microprocesseurs puissent exécuter la plupart de leurs instructions en quelques cycles d'horloge, à mesure que les processeurs devenaient plus compliqués, il fallait beaucoup plus de cycles d'horloge.
Au début des années 1980, une philosophie radicalement différente appelée RISC (ordinateur à jeu d'instructions réduit) a été conçue. Selon ce modèle informatique, les processeurs n'auraient que quelques instructions simples mais, grâce à cette simplicité, ces instructions seraient extrêmement rapides, la plupart d'entre elles s'exécutant sur un seul cycle d'horloge. Ainsi, alors que beaucoup plus de travail devrait être fait dans le logiciel, un gain global de performance serait réalisable.
De nombreuses familles de processeurs RISC ont adopté cette approche et ont présenté des performances impressionnantes dans leur application de niche de serveurs Unix et de stations de travail d'ingénierie. Certaines de ces familles ont maintenant disparu depuis longtemps, mais le fait que plusieurs - dont IBM, POWER, SPARC et Sun, bien sûr, donnent à l'architecture x86 un avantage concurrentiel, laisse présager que moins peut être réellement plus..
Nous parlons vraiment d'une approche minimaliste ici. Dans une conception RISC classique, toutes les opérations arithmétiques et logiques sont effectuées sur des données stockées dans les registres internes du processeur. Les seules instructions qui accèdent à la mémoire sont une instruction de chargement, qui écrit une valeur de la mémoire dans un registre de processeur, et l’instruction de stockage qui fait l’inverse..
Un exemple simple illustrera comment il en résulte que plus d'instructions doivent être exécutées. Si vous avez déjà essayé la programmation avec un langage de haut niveau tel que BASIC, vous aurez sûrement écrit une instruction comme A = B + C qui additionne les valeurs dans les variables (emplacements mémoire) A et B et écrit le résultat à une autre variable appelée C.
Avec un processeur CISC, cette instruction deviendrait trois, comme indiqué dans l'exemple suivant, qui concerne un processeur typique:
LOAD A
AJOUTER B
MAGASIN C
Dans cet exemple, l'instruction LOAD écrit la valeur de l'emplacement de mémoire A dans l'accumulateur du processeur (un registre spécial utilisé pour les opérations arithmétiques et logiques), l'instruction ADD ajoute la valeur de l'emplacement de mémoire B à la valeur de l'accumulateur, et la commande STORE. instruction écrit la valeur de l'accumulateur dans l'emplacement de mémoire C.
Dans un processeur RISC, les instructions suivantes seraient nécessaires. Il est important de noter qu'un processeur RISC a plusieurs registres, pas seulement l'accumulateur, ils doivent donc être spécifiquement référencés (comme R1 et R2 par exemple) dans les instructions..
LOAD A, R1
LOAD B, R2
AJOUTER R1, R2
MAGASIN R2, C
Développement d'architecture
Parce que les processeurs et les cœurs ARM actuels (nous distinguerons plus tard entre ces deux termes) sont les descendants directs de la puce ARM originale conçue pour Acorn's Archimedes en 1987, ils sont appelés périphériques d'architecture ARM..
Ceci est similaire aux puces Intel et AMD actuelles, issues du processeur Intel 8086 et de ses successeurs, et qui sont donc décrites comme appartenant à l'architecture x86. Nous examinerons ici ce qui était particulier à l’architecture ARM lorsqu’elle est apparue il y a 25 ans, comment elle a évolué au fil des ans, en quoi cette évolution n’est pas comparable à celle de l’architecture 86 et ce qui la distingue de nos jours..
Ceux qui ont suivi le développement du PC au fil des ans connaîtront sans aucun doute le concept de générations de processeurs au sein de l'architecture x86. Ces dernières années, les lignes de division sont devenues un peu moins distinctes, mais au début, nous avons vu la première génération 8086 (ou 8088) céder le pas au 80286, puis aux 80386, 80486, au Pentium, etc..
Il en va de même pour l’architecture ARM, mais avec une différence importante. Dans le domaine des x86, les nouvelles générations ont été associées à plusieurs reprises à l’introduction d’un nouveau chiffre clé pour la largeur des chemins de données, ce qui a un impact significatif sur les performances..
Ainsi, l'architecture x86 lancée avec le 8086 16 bits et les développements ultérieurs nous ont apporté 32 bits et finalement l'architecture 64 bits dont nous jouissons aujourd'hui. Contrairement à cela, l’architecture ARM a fait ses débuts en 32 bits et doit encore faire la transition à 64 bits..
Toutefois, cela ne doit pas être interprété comme un manque d’innovation, car quelques faits et chiffres révéleront.
Le premier processeur ARM a vu le jour en 1985 et, bien qu’il n’ait jamais été utilisé à des fins commerciales, le bras ARM 2 qui le suivait et qui alimentait le premier PC Archimedes n’était pas si différent. Bien que basé sur une architecture 32 bits, il disposait d'un bus d'adresses 26 bits, ce qui signifiait qu'il pouvait adresser 64 Mo de mémoire. Bien que peu comparé aux normes actuelles, il s’agissait d’une somme énorme au milieu des années 80..
La fréquence d'horloge de 8 MHz semble également plutôt piétonne bien que, grâce à la conception RISC, il ait été en mesure de fournir une vitesse de 4 MIPS (millions d'instructions par seconde). Pour mettre cela dans le contexte, l’Intel 80386, qui est apparu un an plus tard, était juste un peu plus rapide à 5 MIPS, mais pour cela, il devait être cadencé à 16 MHz..
Cependant, pour voir les progrès de l'architecture ARM en un quart de siècle de développement, nous devons vraiment établir des comparaisons avec les offres actuelles..
En termes de performances brutes, le noyau haut de gamme actuel est le Cortex-A15, basé sur l’architecture de septième génération, appelée ARMv7. Bien que la vitesse d'horloge dépende du fabricant (ARM Holdings ne fabrique pas elle-même de silicium), un chiffre de 2,5 GHz est considéré comme un plafond probable. A cette vitesse, il atteindrait une performance d'environ 35 000 MIPS..
Bien que cela ne soit pas à la hauteur du dernier processeur Intel Core i7, nous ne comparons pas les mêmes. Lorsqu'il est exprimé en termes de MIPS par cœur par MHz, bien qu'il ne dépasse toujours pas le Core i7, le Cortex-A15 est beaucoup plus proche - mais même cela manque le point.
Les indications sont que le Cortex-A15 consommera moins d'un watt par noyau comparé à des dizaines de watts par noyau pour le Core i7. À cet égard, il se rapproche de l'Intel Atom, mais avec des performances bien supérieures.