Dans un commentaire à cette réponse Kortuk demande ce que l'avantage ARM est . J'ai d'abord ajouté quelques arguments dans ma réponse, mais je pense que la question est suffisamment intéressante pour être une question en soi, de sorte que davantage de réponses soient possibles.
61
Réponses:
La performance est un avantage. En tant que processeur 32 bits, il surpasse (presque) tous les contrôleurs 8 bits en termes de DMIPS. Le noyau a également traversé plusieurs générations, optimisations de lecture.
Ces optimisations ne montrent pas seulement les performances, mais également la consommation électrique . Le noyau le plus récent a doublé son ratio DMIPS / mW par rapport à la génération précédente (voir aussi cette réponse ).
ARM est proposé par un grand nombre de fabricants , plus que n’importe quel autre microcontrôleur, et chacun d’entre elles est disponible en plusieurs versions, avec différentes combinaisons de périphériques sur puce, de mémoire et de packages. Exemple: NXP ne propose pas moins de 35 contrôleurs avec Ethernet sur puce .
Les armes sontpeu coûteux ; ARM a probablement été le premier contrôleur 32 bits à franchir la barre des 1 USD.
Cette combinaison de performance , d’ offre étendue et de faible coût fait que vous ne pouvez tout simplement pas ignorer ARM:
Le marché de la téléphonie mobile a également un autre effet. Les téléphones mobiles sont très limités en espace et nécessitent de petits paquets. Le LPC1102 de NXP est fourni dans un boîtier WLP-16 de seulement 5 mm sur , une échelle précédemment utilisée uniquement par les microcontrôleurs 8 bits à faible nombre de broches.2
la source
Un point qui n’a pas encore été mentionné: en 1908, un certain M. PL Robertson a inventé une nouvelle tête de vissage améliorée . Il voulait être le seul à fabriquer des vis et des tournevis à sa conception. Des décennies plus tard, un autre nom, M. Henry F. Phillips, a proposé un autre modèle . Contrairement à M. Robertson, M. Phillips était plus intéressé par la licence de son dessin que par la production de vis et de pilotes.
De même, dans les années 1970, Sony a mis au point une technologie appelée Betamax ; JVC est venu avec un appelé VHS. Sony était intéressé par la production de magnétoscopes. JVC était plus intéressé par les licences.
Il semble y avoir une tendance ici. (Remarque: pendant un certain temps, Intel a licencié sa technologie 80x86 , mais depuis des décennies, elle se concentre davantage sur le développement de technologies destinées à son usage interne.)
la source
Même matériel / logiciel à développer pour les bras de tous les fournisseurs. Vous achetez une fois JLINK / ULINK et certains IDE Keil et pouvez l’utiliser pour développer, émuler et déboguer presque tous les bras sur une planète.
Nul besoin d'apprendre la nouvelle architecture lors du passage à un nouveau fournisseur de puces => moins de blocage des fournisseurs => plus de concurrence => des prix plus bas
Dans les processus technologiques modernes (0,18 µm et moins), le coeur ARM est si petit que le sacrifier pour un coeur 8 bits n’économise aucune fraction visible du prix. D'où la raison d'opter pour une architecture standard à la fois performante et économique.
Performances - avec ARM uniquement, vous pouvez bénéficier d'une multiplication d'horloge unique 32 * 32-> 32, d'une prise en charge matérielle pour 32 * 32-> 64 et d'une division pour les périphériques sub-1dollar (notamment les modèles STM32 bas de gamme, par exemple).
ARM n’est pas trop gourmand et ne facture pas de frais déraisonnables pour les licences, de sorte que les fabricants peuvent produire des micros bon marché.
la source
Je me concentre sur les processeurs ARM de milieu de gamme pour ces raisons:
Prise en charge complète de Linux
Cela signifie que les pilotes de périphériques sont presque gratuits. J'ai fait assez de code hôte et périphérique USB, je ne veux plus faire CELA. Je ne suis pas non plus ravi d’essayer d’ajouter TCP / IP à une plate-forme de processeur aléatoire (même si LwIP / uIP n’est pas si mauvais). Je n'ai même jamais essayé de faire du Wi-Fi, une vraie pile Bluetooth, des webcams, etc. Utiliser Linux signifie qu'il est beaucoup plus facile de parler à un très grand nombre d'appareils.
J'ai également été vraiment étonné de la rationalité et de la simplicité d'écriture des pilotes de périphérique Linux. Après avoir fait quelques pilotes de périphériques Windows, Linux est un rêve. (Pour être juste, le framework de pilotes Windows s'est beaucoup amélioré depuis que je le faisais.)
La plateforme logicielle est également géniale. Je reçois le cryptage SSL, les systèmes de fichiers, la gestion à distance, les mises à jour faciles des applications (copier un fichier au lieu d'un chargeur de démarrage complexe), etc. Oh, et de nombreux utilitaires existants si vous avez besoin de quelque chose.
Il est également gratuit et beaucoup plus facile de vous plier à votre volonté qu’une plate-forme WinCE à source fermée . (Non pas que je suis vraiment un idéaliste open source ... c'est un raisonnement très pratique pour moi.)
Je parle de cœurs ARM avec de véritables MMU , il s’agit donc de puces de taille moyenne à élevée (bien que vous puissiez utiliser μClinux, je suppose).
Consommation d'énergie
C'est en gros une répétition des commentaires des autres, mais c'est un facteur important pour moi. Ma plate-forme ARM actuelle à 454 MHz consomme 1/2 watt, 1 watt avec un maximum de ressources processeur. Vous ne pouvez même pas vous en approcher avec x86.
C'est à peu près mon raisonnement. Je ne vois pas l'équation changer de sitôt.
la source
L'ARM a connu une progression:
L'architecture ARM permet d'effectuer très rapidement certaines opérations sophistiquées, beaucoup plus rapidement que sur n'importe quelle autre puce. Par exemple (en utilisant ARM7-TDMI):
Chaque gestionnaire est stocké sous forme d'octet, ce qui donne 1/4 du déplacement d'adresse à partir du début de la table. L’effet net est que, une fois que le contenu du bus d’adresses a été extrait, il ne faut que six cycles (deux instructions) pour accéder à un gestionnaire basé sur les cinq bits supérieurs de l’extraction, à l’aide d’une table de sauts de 32 octets.
Le code THUMB correspondant ressemblerait davantage à:
C'est très bien du point de vue de la densité du code, étant donné que les instructions ne sont que la moitié de celles des originaux, mais qu'il faudrait neuf cycles après l'extraction au lieu de six. Dans une application où le bus surveillé fonctionnera à son rythme, que l'ARM ait ou non réussi à le gérer, les instructions ARM plus rapides sont un avantage considérable.
Incidemment, Thumb2 est compatible binaire avec Thumb, ce qui facilite l'utilisation des outils précédents, mais signifie qu'il y a certaines choses qu'il ne peut pas faire aussi bien que l'ARM d'origine. Par exemple, dans ARM, on pourrait "faire pivoter" un bitmap 8x8 dans quatre registres en utilisant environ 3 instructions sur deux bits:
Dans Thumb2, il serait nécessaire d'ajouter des instructions conditionnelles explicites:
Réduction nette de 33% de l'efficacité en termes de temps et d'espace par rapport à ARM; il s'agit probablement d'un exemple du pire cas où le code du pouce est moins efficace qu'ARM, et même ce n'est pas vraiment horrible.
Un autre léger inconvénient de Thumb2 par rapport à ARM: dans le code ARM, toutes les instructions commencent par des limites de mots complets, facilitant ainsi l’analyse statique. Dans Thumb2, les instructions peuvent commencer arbitrairement aux limites d'un demi-mot et chevaucher les limites d'un mot entier. L'analyse statique peut donc être beaucoup plus difficile.
la source
Un peu d’histoire, Acorn voulait un processeur personnalisé (par exemple avec des commandes de mémoire intégrées, etc.) pour un nouvel ordinateur dans les années 1980 (le 6502 8 bits limitait ce qu’ils pouvaient faire). Ils ont parlé à Intel, mais Intel ne leur aurait pas octroyé de licence.
Acorn a donc conçu un processeur RISC très simple, mais comme ils n’étaient pas un fabricant de processeurs, ils étaient disposés à le concéder sous licence à qui que ce soit (et avaient besoin de tout l’argent qu’ils pouvaient obtenir!). (Je pense que le processeur a fonctionné pour la première fois, en partie parce que c'était si simple et que le concepteur a créé beaucoup de processeurs de recherche à l'université de Cambridge.)
Au fil des ans, la conception du processeur est devenue de plus en plus facile à inclure dans la conception de la puce client.
Le fabricant de puces s’est senti en sécurité avec les licences d’Acorn, qui n’était pas un concurrent. En outre, personne ne pensait se rendre dans la ville natale d'un concurrent pour obtenir une licence, comme Acorn à Cambridge (le vrai!) . (Est-ce que la chance d'un «voyage d'information» à Cambridge afin de rendre visite à Acorn a une influence sur la liste des options à court terme….)
Un grand nombre des conceptions qui incluent le processeur Acorn Risc Machine étaient conçues pour un système intégré dans lequel la consommation d'énergie était importante. De bons outils de développement bon marché ont également été créés pour le processeur Acorn Risc Machine.
Ainsi, lorsque les téléphones mobiles ont commencé à avoir besoin de puces personnalisées avec un processeur intégré, Acorn a été renommé ARM et le reste appartient à l’histoire. (Peut-être était-ce aussi un peu que les autres processeurs étaient principalement contrôlés par les États-Unis, mais les téléphones portables sont devenus normaux en Europe)
(Cela vous rappelle-t-il Microsoft et Dos avec une petite équipe IBM inconnue?)
Le fait que l'ARM soit l'un des meilleurs processeurs à l'époque (et le soit toujours) pour de nombreuses tâches a également aidé - mais il ne suffit pas d'avoir la "meilleure" conception de processeur.
la source
Problèmes techniques mis à part, il existe de nombreuses raisons non techniques pour ARM. Mais la réponse rapide est la suivante: ce n'est pas Intel (ou x86).
Si vous regardez où les dollars de R & D des processeurs sont actuellement investis, ils se répartissent en deux camps: ARM et Intel. (J'ignore les petits MCU et j'utilise AMD avec Intel.) Il y a très peu d'argent qui va à PowerPC, MIPS, SPARC et autres grands processeurs. ARM et Intel sont les seuls à rester debout.
Avec Intel et d'autres processeurs x86, vous obtenez une énorme quantité de bagages hérités. Par exemple, vous avez besoin d’un chipset, d’un BIOS, etc. Même si le processeur consomme très peu d'énergie, ces autres appareils ont tendance à alourdir votre système et à le rendre plus gros, plus gourmand en énergie et plus coûteux. Le développement d'un circuit imprimé avec un processeur Intel est un problème énorme. Vous devez ensuite négocier avec un fournisseur de BIOS, etc. Pour aggraver les choses, beaucoup de fournisseurs de chipsets, de BIOS, de puces vidéo, etc. faire des affaires avec les petites personnes qui ne vendront pas moins d'un million d'unités par an.
Avec ARM, vous n’avez pas ce bagage. Il existe de nombreuses sources de puces, allant des microcontrôleurs aux monstres multicœurs. Vous n'avez pas besoin de licence pour un BIOS (ce qui revient beaucoup à aller chez un vendeur de voitures d'occasion). Et les fabricants et les vendeurs sont généralement gentils avec vous.
la source
Comparez ARM7 / ARM9 à MIPS IV et il n’ya guère d’avantage que les problèmes de licence déjà bien mentionnés. Les composants internes du jeu d'instructions MIPS et du bus interne le rendent supérieur (performance par coût) pour certains types de conceptions; C'est pourquoi de nombreux routeurs Wi-Fi utilisent des cœurs MIPS plutôt que des cœurs ARM.
Étant donné que les cœurs ARM ont été principalement appliqués aux périphériques de poche, les ASIC ont ajouté davantage de fonctionnalités de contrôle de la consommation, alors que MIPS est davantage axé sur les performances par cycle que sur la réduction de la consommation. L'avantage de RISC sur Intel x86 est une discussion différente.
la source
Il n'y a pas de réel avantage. Les contrôleurs DSP et autres, tels que GSM, sont ce qui les rend si populaires.
la source