Was ist so toll an ARM?

61

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.

stevenvh
quelle
1
Ihre Antworten scheinen auf die am wenigsten konstruktiven Fragen konstruktiv zu sein, aber ich mache mir Sorgen, dass andere sehr meinungsbewusste Antworten schreiben. Wir werden sehen, ob die Leute versuchen, die von Ihnen gesetzte Messlatte zu umgehen.
Kortuk
@Kortuk - Sie können den Wortlaut der Frage oder den Titel ändern, wenn Sie der Meinung sind, dass es hilfreich ist, bessere Antworten zu erhalten. (Es war sowieso Ihre Frage)
Stevenvh
5
Diese Frage fordert einen Religionskrieg. Wenn nicht die Leute gefragt und kommentiert hätten, würde ich abstimmen, um dies sofort zu schließen. Denken Sie daran, Sie wissen, dass Sie immer Recht haben und der andere ein barbarischer Heide, wenn es um Glauben geht. Lassen Sie den Dschihad beginnen ...
Olin Lathrop
@olinLathrop, darauf passe ich auf. Momentan scheint es so, als würden wir qualitativ sehr hochwertige Antworten erhalten, ohne zu streiten. Ich werde dies wahrscheinlich langfristig zum CW machen und den Google-Köder in Verbindung mit interessanten Informationen über Waffen zum Leben erwecken. Normalerweise hätte ich das sofort geschlossen, aber @stevenvh hat es mit einer tollen Antwort geöffnet und scheint einen qualitativen Akzent gesetzt zu haben.
Kortuk

Antworten:

51

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:

Im Jahr 2005 verwenden rund 98 Prozent aller Mobiltelefone mindestens einen von ARM entworfenen Kern auf ihren Motherboards, so eine Untersuchung des Analystenunternehmens Linley Group. ( Quelle )

2

stevenvh
quelle
1
Ich kann nur hinzufügen, dass ARM definitiv das erste 32-Bit-Mikro ist, das 0.5 $ Preispunkt (Cortex M0 in Quantiny)
knackt
@Barsmonster - Cool! Sieht aus wie die einzige Zukunft für 8-Bit ist in 2 x 3 mm DFNs
Stevenvh
@self - und vielleicht auch nicht. Siehe den Zusatz zum LPC1102 in meiner Antwort.
Stevenvh
@stevenvh - Naja da ist noch der Stromverbrauchsvorteil. Der LPC1102 @ 12MHz-Ruhemodus verwendet 1 mA. Nicht schlecht, aber ungefähr 1000 mal mehr als ein [16 bit] msp430.
Imbrondir
1
@self - Scratch auch diesen Vorteil. Nach einigem Suchen scheint Energy Micro einen M3 zu haben, der im Schlafmodus + RTC auf 0,6 uA sinken kann.
Imbrondir
37

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.)

Peter Mortensen
quelle
4
Ja. Ich denke, das Lizenzierungsschema für geistiges Eigentum von ARM ist der Grund für den Erfolg.
10
ARM bietet eine enorme Flexibilität bei der Lizenzierung. Wenn Sie nur die IP für ein paar Kerne benötigen, kostet es nicht zu viel. Wenn Sie jedoch einen stark angepassten Chip herstellen möchten, der von Ihren Chip-Designern vollständig optimiert wurde, kostet dies mehr , ist jedoch eine verfügbare Option. So kann ein Unternehmen wie Apple eine eigene Reihe von Prozessoren entwickeln, die für ihre Anwendung optimiert sind. Die meisten Unternehmen würden nicht so viel von den Kronjuwelen außerhalb ihrer Kontrolle lassen.
Mike DeSimone
Es ist wichtig zu beachten, dass ARM nicht mit der x86-Linie von Intel konkurriert (nicht einmal wirklich auf dem Platz, auf dem die neuen Atom-Prozessoren laufen). Wenn Ihre Antwort dies implizieren sollte, ist sie falsch. Intels Moorestown- und Medfield-Architekturen konkurrieren im selben Raum wie ARM.
Mark
1
Es ist lange her, dass Intels 80x86-Produktreihe in den Anwendungsbereichen, in denen heute ein ARM verwendet wird, wettbewerbsfähig war, aber die 8088, 8086, 80286 und 80386, die alle lizenziert wurden, waren bei eingebetteten Systemen beliebt. Mein Kommentar zu Intel bezog sich hauptsächlich darauf, anzuerkennen, dass Intel heute populär ist, obwohl es nicht wie der ARM lizenziert ist.
Supercat
@supercat: Intel lizenziert heutzutage viele Soft-IPs. Es bietet auch Designtools und SIP für das FPGA-Design ( intel.com/content/www/us/en/fpga/ip-and-design-tools.html )
jbord39
32
  1. 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.

  2. Keine Notwendigkeit, neue Architektur zu erlernen, wenn Sie zu einem neuen Chip-Anbieter wechseln => weniger Anbietersperrung => mehr Wettbewerb => niedrigere Preise

  3. 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.

  4. 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.

  5. ARM ist nicht zu gierig und erhebt keine unangemessenen Gebühren für Lizenzen, sodass Hersteller billige Mikros herstellen können.

BarsMonster
quelle
27

Ich konzentriere mich aus folgenden Gründen auf ARM- Prozessoren der Mittelklasse :

  1. 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 ).

  2. 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.

darron
quelle
2
Verwandte: Mehrere RTOS-Optionen.
Steve S
Die meisten Ihrer Antworten gelten für die meisten CPU-Architekturen auf dem Markt genauso wie für ARM. Viele von ihnen sind auch auf 2) anwendbar. Die Liste der von Linux unterstützten Architekturen ist LONG und ARM ist nur eine davon.
Mark
19

Die ARM hat einen Fortschritt durchgemacht:

  1. Eine 32-Bit-Befehlsarchitektur mit umfangreicherem Code als viele andere Architekturen, die jedoch schnell dekodiert werden konnte und viele Operationen mit weniger Befehlen ausführen konnte als konkurrierende Architekturen
  2. Eine Architektur im Dual-Instruction-Format, die zwischen dem netten und leistungsstarken (aber leider etwas aufgeblähten) ARM-Befehlssatz und einem weniger leistungsstarken (aber weitaus kompakteren) 16-Bit-Befehlssatz "Thumb" wechseln könnte. Jeder Thumb-Befehl hatte einen entsprechenden ARM-Befehl, wodurch die Notwendigkeit für Programmierer, zwei Befehlssätze zu lernen, etwas minimiert wurde.
  3. Eine Thumb2-Architektur, die dem Thumb-Befehlssatz Anweisungen mit zwei Wörtern hinzufügte und zu einer Win-Win-Situation führte: Der typische ARM-Code enthielt eine Mischung aus Anweisungen, die nur im ARM verfügbar waren, und Anweisungen, die im Thumb verfügbar gewesen wären musste aber trotzdem als 32 Bit dargestellt werden; In Thumb2 hat ein solcher Code den Vorteil, dass einige der 32-Bit-Befehle durch 16-Bit-Befehle ersetzt werden.
  4. Eine Thumb-only-Architektur, die einschränkender ist als ich es mir vorgestellt hätte, die aber kleiner und billiger ist als alle anderen.

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):

  ldrh r0, [r10, # ADDR_BUS_OFS]; Adressbus des Zielsystems lesen (13 Bit)
  ldrb r1, [r9, r0, lsr # 8]; Verwenden Sie die oberen Bits, um die Adresse in einer Tabelle von Handlern nachzuschlagen
  add pc, r9, r1 lsl # 2; Zum entsprechenden Händler gehen

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:

; Vorausgesetzt, wir brauchen r6 / r7 für nichts anderes, werden sie von r9 / r10 neu zugewiesen
  ldrh r0, [r7, # ADDR_BUS_OFS]
  mov r1, r0
  lsr r1, r1, # 8; THUMB setzt voraus, dass Quelle und Ziel identisch sind
  ldrb r1, [r6, r1]
  lsl r1, r1, # 1; Könnte shift-left-two verwenden, wenn die Zieladressen wortgenau ausgerichtet wären
  add pc, r1

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":

  movs r0, r4, lsl # 25; Setzen Sie das oberste Bit von LSB in C und das nächste Bit in N
  orrcs r6, # 0x00000001
  orrmi r6, # 0x00000100

In Thumb2 müssten explizite bedingte Anweisungen hinzugefügt werden:

  movs r0, r4, lsl # 25; Setzen Sie das oberste Bit von LSB in C und das nächste Bit in N
  itcs
  orrcs r6, # 0x00000001
  itmi
  orrmi r6, # 0x00000100

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.

Superkatze
quelle
14

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.

Ian Ringrose
quelle
Acorn RISC Machine wird in Advanced RISC Machines (ARM) umbenannt. Außerdem wurde nur der ARM-CPU-Zweig von Acorn unabhängig und ist als Advanced RISC Machines bekannt. Acorn hat sein RISC-OS weiterentwickelt, und ich glaube, es ist jetzt auch letzterem bekannt.
jippie
13

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.

user3624
quelle
2
Ignorieren Sie keine kleinen MCUs. Mit der Cortex-M-Serie erobert ARM auch diesen Markt. Ich würde mir heutzutage zweimal überlegen, ob ich einen 32-Bit-Controller ohne ARM verwenden soll.
Mike DeSimone
Ja, ich stimme @Mike zu. ARM versucht derzeit, in den Hochleistungsmarkt einzudringen, der Intel wie Server beherrscht. Sie sind bekannt für ihre Mid-High-Range-Mikrocontroller und Low-Mid-Range-Mikroprozessoren
Kortuk
Intel lizenziert in diesen Tagen mehr IP (insbesondere mit Altera-Akquisition). Siehe zum Beispiel : intel.com/content/www/us/en/fpga/ip-and-design-tools.html .
jbord39
12

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.

Peter Mortensen
quelle
1
Beachten Sie, dass die PIC 32-Reihe von Microchip den MIPS-Kern verwendet. MIPS ist daher auch in kleinen, billigen, eigenständigen und stromsparenden Paketen erhältlich. Außerdem können Sie MPLAB verwenden, was mit keinem ARM möglich ist.
Olin Lathrop
Der andere Kommentar, den ich von ASIC-Designern höre, ist, dass es schwierig ist, mit dem ARM AHB und dem APB zu arbeiten (möglicherweise aufgrund einer separaten Lizenzierung oder aufgrund von Designproblemen). Während die MIPS-Busse irgendwie einfacher sind. Das heißt: Der Kern ist eine Sache; Die Peripheriegeräte außerhalb des Kerns müssen ebenfalls berücksichtigt werden.
Jonathan Cline
-8

Es gibt keine wirklichen Vorteile. Angeschlossene DSPs und andere Controller wie GSM machen sie so beliebt.

Peter Mortensen
quelle
3
andere antworten scheinen nicht zu stimmen.
Kortuk
1
-1 Alles auf der Erde hat Vor- und Nachteile!
RHaguiuda