In einem Kommentar zu dieser Antwort fragt Kortuk, was der ARM-Vorteil ist . Ich habe in meiner Antwort zuerst einige Argumente hinzugefügt, aber ich denke, die Frage ist interessant genug, um eine Frage für sich zu sein, sodass mehr Antworten möglich sind.
61
Antworten:
Leistung ist ein Vorteil. Als 32-Bit-Prozessor übertrifft er (fast) alle 8-Bit-Controller in Bezug auf DMIPS. Der Kern hat auch mehrere Generationen durchlaufen, Optimierungen zu lesen.
Diese Optimierungen zeigen sich nicht nur in den Leistungszahlen, sondern auch im Stromverbrauch . Der jüngste Core hat sein DMIPS / mW-Verhältnis gegenüber der Vorgängergeneration verdoppelt (siehe auch diese Antwort ).
ARM ist von sehr vielen Herstellern erhältlich , mehr als jeder andere Mikrocontroller, und jeder hat eine Reihe von Versionen zur Auswahl, mit verschiedenen Kombinationen von On-Chip-Peripheriegeräten und -Speicher sowie Paketen. Ein typisches Beispiel: NXP bietet nicht weniger als 35 Controller mit On-Chip-Ethernet .
ARMs sindpreiswert ; ARM war wahrscheinlich der erste 32-Bit-Controller, der die USD 1-Grenze überschritten hat.
Diese Kombination aus Leistung , breitem Angebot und geringen Kosten sorgt dafür, dass Sie ARM einfach nicht ignorieren können:
quelle
Ein Punkt, der noch nicht erwähnt wurde: 1908 erfand ein Mann namens Mr. PL Robertson einen neuen, verbesserten Schraubenkopf und Schraubendreher . Er wollte der einzige sein, der Schrauben und Schraubendreher nach seinem Entwurf herstellte. Jahrzehnte später jemand anderes namens Mr. Henry F. Phillips kam mit bis einer alternativen Gestaltung . Im Gegensatz zu Herrn Robertson war Herr Phillips mehr an der Lizenzierung seines Designs als an der Herstellung von Schrauben und Treibern interessiert.
Ebenfalls in den 1970er Jahren entwickelte Sony eine Technologie namens Betamax . JVC hat sich eine mit dem Namen VHS ausgedacht. Sony war an der Herstellung von Videorecordern interessiert. JVC war mehr an Lizenzen interessiert.
Hier scheint es ein Muster zu geben. (Hinweis: Intel lizenzierte eine Weile lang seine 80x86- Technologie, konzentrierte sich aber seit Jahrzehnten mehr auf die Entwicklung von Technologien für den internen Gebrauch.)
quelle
Dieselbe Hardware / Software, die für ARMs aller Hersteller entwickelt werden muss. Sie kaufen einmal JLINK / ULINK und einige Keil IDE und können damit nahezu jeden ARM auf einem Planeten entwickeln, emulieren und debuggen.
Keine Notwendigkeit, neue Architektur zu erlernen, wenn Sie zu einem neuen Chip-Anbieter wechseln => weniger Anbietersperrung => mehr Wettbewerb => niedrigere Preise
In modernen Technologieprozessen (0,18 um und darunter) ist der ARM-Kern so klein, dass ein Verzicht auf den 8-Bit-Kern keinen sichtbaren Bruchteil eines Preises einsparen würde. Dies ist der Grund, sich für eine leistungsfähige und dennoch kostengünstige Standardarchitektur zu entscheiden.
Leistung - nur mit ARM können Sie eine Single Clock 32 * 32-> 32-Multiplikation und Hardware-Unterstützung für 32 * 32-> 64- und Division für Sub-1-Dollar-Geräte (z. B. STM32-Geräte der unteren Preisklasse) erhalten.
ARM ist nicht zu gierig und erhebt keine unangemessenen Gebühren für Lizenzen, sodass Hersteller billige Mikros herstellen können.
quelle
Ich konzentriere mich aus folgenden Gründen auf ARM- Prozessoren der Mittelklasse :
Volle Linux-Unterstützung
Dies bedeutet, dass Gerätetreiber fast kostenlos sind. Ich habe genug USB-Host- und Gerätecode erstellt, DAS möchte ich nicht mehr. Ich bin auch nicht besonders begeistert, wenn ich versuche, TCP / IP zu einer zufälligen Prozessorplattform hinzuzufügen (obwohl LwIP / uIP nicht so schlecht ist). Ich habe noch nie versucht, Wi-Fi, einen echten Bluetooth-Stack, Webcams usw. zu nutzen. Unter Linux ist eine sehr breite Palette von Geräten viel einfacher zu erreichen.
Ich war auch sehr erstaunt darüber, wie rational und einfach das Schreiben von Linux-Gerätetreibern ist. Nach einigen Windows-Gerätetreibern ist Linux ein Traum. (Um fair zu sein, das Windows-Treiber-Framework hat sich seitdem sehr verbessert.)
Die Software-Plattform ist auch super. Ich bekomme SSL-Verschlüsselung, Dateisysteme, Fernverwaltung, einfache Anwendungsaktualisierungen (kopieren Sie eine Datei anstelle eines komplexen Bootloaders) usw. Oh, und viele vorhandene Dienstprogramme, wenn Sie etwas erledigen müssen.
Es ist auch lizenzfrei und viel einfacher, sich nach Ihrem Willen zu biegen, als es eine WinCE- Plattform mit geschlossener Quelle wäre. (Nicht, dass ich wirklich ein Open-Source-Idealist wäre ... das ist alles eine sehr praktische Argumentation für mich.)
Ich spreche von ARM-Kernen mit tatsächlichen MMUs , also ist dies für die Mid- bis High-End-Chips (obwohl Sie vermutlich μClinux verwenden könnten ).
Energieverbrauch
Dies ist im Grunde eine Wiederholung der Kommentare anderer, aber es ist ein großer Faktor für mich. Meine aktuelle 454 MHz ARM-Plattform verbraucht 1/2 Watt, 1 Watt bei maximaler CPU. Mit x86 kommt man dem nicht einmal nahe.
Das ist so ziemlich meine Argumentation. Ich sehe nicht, dass sich die Gleichung bald ändert.
quelle
Die ARM hat einen Fortschritt durchgemacht:
Durch die ARM-Architektur können einige anspruchsvolle Vorgänge sehr schnell ausgeführt werden - viel schneller als auf jedem anderen Chip. Zum Beispiel (mit ARM7-TDMI):
Jeder Handler wird als Byte gespeichert, das 1/4 der Adressverschiebung vom Tabellenanfang an angibt. Der Nettoeffekt ist, dass, sobald der Inhalt des Adressbusses abgerufen wurde, nur sechs Zyklen (zwei Anweisungen) erforderlich sind, um zu einem Handler zu springen, der auf den oberen fünf Bits des abgerufenen Bits basiert, wobei eine 32-Byte-Sprungtabelle verwendet wird.
Entsprechender THUMB-Code wäre eher wie folgt:
Unter dem Gesichtspunkt der Codedichte ist das in Ordnung, da die Anweisungen nur halb so groß sind wie die Originale, aber nach dem Abruf neun Zyklen statt sechs Zyklen dauern würden. In einer Anwendung, in der der beobachtete Bus mit seiner eigenen Geschwindigkeit läuft, unabhängig davon, ob der ARM es geschafft hat oder nicht, sind die schnelleren ARM-Anweisungen ein großes Plus.
Im Übrigen ist Thumb2 binärkompatibel mit Thumb, was die Verwendung früherer Tools erleichtert, aber bedeutet, dass es einige Dinge gibt, die nicht so gut wie der ursprüngliche ARM sind. In ARM könnte man beispielsweise eine 8x8-Bitmap, die in vier Registern gespeichert ist, mit etwa 3 Befehlen pro zwei Bits "drehen":
In Thumb2 müssten explizite bedingte Anweisungen hinzugefügt werden:
Zeit- und Raumersparnis um netto 33% im Vergleich zu ARM; Das ist wahrscheinlich ein Worst-Case-Beispiel dafür, dass Thumb-Code weniger effizient als ARM ist, und selbst das ist nicht gerade schrecklich.
Ein weiterer kleiner Nachteil von Thumb2 gegenüber ARM: Im ARM-Code beginnen alle Anweisungen an Vollwortgrenzen, was die statische Analyse erleichtert. In Thumb2 können Befehle beliebig an Halbwortgrenzen beginnen und sich über Vollwortgrenzen erstrecken. Die statische Analyse kann daher sehr viel schwieriger sein.
quelle
Ein bisschen ist Geschichte, Acorn wollte in den 1980er Jahren eine benutzerdefinierte CPU (z. B. mit eingebauten Speichersteuerelementen usw.) für einen neuen Computer (die 8-Bit-Version 6502 schränkte die Möglichkeiten ein). Sie sprachen mit Intel, aber Intel würde ihnen keine CPU lizenzieren.
Deshalb hat Acorn eine sehr einfache RISC-CPU entworfen, aber da sie kein CPU-Hersteller waren, waren sie bereit, sie an jedermann zu lizenzieren (und benötigten das schnelle Geld, das sie bekommen konnten!). (Ich glaube, die CPU hat zum ersten Mal funktioniert, auch weil sie so einfach war und der Designer während seines Studiums an der Universität Cambridge viele Forschungs-CPUs entwickelt hat.)
Im Laufe der Jahre wurde das CPU-Design immer einfacher in das Design der Kundenchips einzubeziehen.
Der Chiphersteller fühlte sich bei der Lizenzierung durch Acorn sicher, da er kein Konkurrent war. Auch dachte niemand, dass sie in die Heimatstadt eines Konkurrenten gehen würden, um eine Lizenz zu erhalten, da Acorn in Cambridge war (die echte!) . (Hat die Chance, eine Reise nach Cambridge zu unternehmen, um Acorn zu besuchen, die Auflistung der Optionen zu einem beliebigen Zeitpunkt beeinflusst?)
Viele der Designs, die die Acorn Risc Machine-CPU enthalten, waren für das Embed-System vorgesehen, da der Stromverbrauch wichtig war. Auch für die Acorn Risc Machine-CPU wurden günstige und gute Entwicklungstools entwickelt.
Als Mobiltelefone also benutzerdefinierte Chips mit einer eingebetteten CPU benötigten, wurde Acorn in ARM umbenannt und der Rest ist Geschichte. (Vielleicht war es auch ein bisschen so, dass die anderen CPUs größtenteils von den USA gesteuert wurden, aber Handys werden erst in Europa normal.)
(Erinnert Sie dies an Microsoft und Dos mit einem kleinen, unbekannten Team von IBM?)
Die Tatsache, dass der ARM zu der Zeit eine der besten CPUs war (und immer noch ist), für viele Aufgaben, hat ebenfalls geholfen - aber nur das "beste" CPU-Design zu haben, ist nicht genug.
quelle
Abgesehen von technischen Problemen gibt es viele nichttechnische Gründe für ARM. Aber die schnelle Antwort lautet: Es ist nicht Intel (oder x86).
Wenn Sie sich ansehen, wo die CPU-F & E-Dollars gerade investiert werden, fallen sie im Grunde genommen in zwei Lager: ARM und Intel. (Ich ignoriere kleine MCUs und stelle AMD mit Intel in Verbindung.) Es wird sehr wenig Geld für PowerPC, MIPS, SPARC und andere große CPUs ausgegeben. ARM und Intel sind die einzigen, die noch stehen.
Mit Intel und anderen x86-CPUs erhalten Sie eine riesige Menge Altgepäck. Zum Beispiel benötigen Sie einen Chipsatz, ein BIOS und andere Dinge. Selbst wenn die CPU sehr stromsparend war, belasten diese anderen Geräte Ihr System in der Regel und machen es größer, leistungsintensiver und teurer. Die Entwicklung einer Platine mit einer Intel-CPU ist ein großes Problem, und dann müssen Sie mit einem BIOS-Hersteller usw. verhandeln. Um die Sache noch schlimmer zu machen, wollen viele Hersteller von Chipsätzen, BIOS, Videochips usw. einfach nicht Geschäfte mit kleinen Leuten zu machen, die nicht weniger als eine Million Einheiten pro Jahr verkaufen.
Mit ARM haben Sie dieses Gepäck nicht. Es gibt viele Quellen für Chips, von Microcontroller-Line-Dingen bis hin zu Multi-Core-Monstern. Sie müssen sich nicht mit der Lizenzierung eines BIOS befassen (ähnlich wie beim Gebrauchtwagenhändler). Und Hersteller und Lieferanten sind im Allgemeinen nett zu Ihnen.
quelle
Vergleichen Sie ARM7 / ARM9 mit MIPS IV, und es gibt nur wenige Vorteile als die bereits erwähnten Lizenzierungsprobleme. Die Interna des MIPS-Befehlssatzes und des internen Busses machen ihn für bestimmte Arten von Konstruktionen überlegen (Leistung pro Kosten). Aus diesem Grund verwenden viele Wi-Fi-Router MIPS-Kerne anstelle von ARM-Kernen.
Da ARM-Kerne hauptsächlich für Handheld-Geräte verwendet wurden, fügten die ASICs mehr Leistungssteuerungsfunktionen hinzu, während sich MIPS eher auf die Leistung pro Zyklus als auf eine geringere Leistung konzentriert. Der Vorteil von RISC gegenüber Intel x86 ist eine andere Diskussion.
quelle
Es gibt keine wirklichen Vorteile. Angeschlossene DSPs und andere Controller wie GSM machen sie so beliebt.
quelle