web-dev-qa-db-de.com

Wie unterscheidet sich die ARM Architektur von x86?

Ist die x86-Architektur speziell für die Verwendung mit einer Tastatur konzipiert, während ARM mobil sein soll? Was sind die Hauptunterschiede zwischen den beiden?

142
user1922878

ARM ist eine [~ # ~] zufällige [~ # ~] (Reduced Instruction Set Computing) Architektur, während x86 ist eine [~ # ~] cisc [~ # ~] (Complex Instruction Set Computing).

Der Hauptunterschied zwischen diesen in diesem Aspekt besteht darin, dass ARM Befehle nur für Register mit einigen Anweisungen zum Laden und Speichern von Daten aus/in den Speicher ausgeführt werden, während x86 auch für den direkten Speicher ausgeführt werden kann v8 ARM war eine native 32-Bit-Architektur, die Vier-Byte-Operationen gegenüber anderen bevorzugte.

ARM ist also eine einfachere Architektur, die zu einer kleinen Siliziumfläche und vielen Stromsparfunktionen führt, während x86 sowohl in Bezug auf den Stromverbrauch als auch in Bezug auf die Produktion zu einem Power Beast wird.

Über Frage zu " Ist die x86-Architektur speziell für die Verwendung mit einer Tastatur konzipiert, während ARM Mobil sein soll?". x86 ist nicht speziell für die Verwendung mit einer Tastatur und ARM für Handys konzipiert. Aufgrund der wichtigsten Architekturoptionen verfügt x86 jedoch auch über Anweisungen, die direkt mit IO verwendet werden können, während dies mit ARM nicht der Fall ist. Jedoch mit spezialisierten IO Busse wie USBs, die solche Funktionen benötigen, verschwinden ebenfalls.

Wenn Sie ein Dokument zum Zitieren benötigen, finden Sie in Cortex-A Series Programmers Guide (4.0) folgende Informationen zu den Unterschieden zwischen RISC- und CISC-Architekturen:

Ein ARM Prozessor ist ein RISC-Prozessor (Reduced Instruction Set Computer).

CISC-Prozessoren (Complex Instruction Set Computer) verfügen wie der x86 über einen umfangreichen Befehlssatz, mit dem komplexe Aufgaben mit einem einzigen Befehl ausgeführt werden können. Solche Prozessoren weisen oft erhebliche Mengen an interner Logik auf, die Maschinenbefehle in Sequenzen interner Operationen (Mikrocode) decodieren.

Im Gegensatz dazu enthalten RISC-Architekturen eine geringere Anzahl von Befehlen für allgemeine Zwecke, die möglicherweise mit erheblich weniger Transistoren ausgeführt werden, wodurch das Silizium billiger und energieeffizienter wird. Wie andere RISC-Architekturen haben ARM Kerne eine große Anzahl von Allzweckregistern und viele Befehle werden in einem einzigen Zyklus ausgeführt. Sie verfügen über einfache Adressierungsmodi, aus denen alle Lade-/Speicheradressen ermittelt werden können Registrieren Sie Inhalte und Anweisungsfelder.

Das Unternehmen ARM stellt auch einen Artikel mit dem Titel Architekturen, Prozessoren und Geräteentwicklung zur Verfügung, in dem beschrieben wird, wie diese Begriffe auf ihre Geschäftstätigkeit zutreffen.

Ein Beispiel für einen Vergleich der Befehlssatzarchitektur:

Beispiel: Wenn Sie in Ihrer Anwendung einen byteweisen Speichervergleichsblock benötigen (generiert vom Compiler, Überspringen von Details), könnte dies wie folgt aussehen: x86

repe cmpsb         /* repeat while equal compare string bytewise */

während auf ARM kürzeste Form wie folgt aussehen könnte (ohne Fehlerprüfung usw.)

top:
ldrb r2, [r0, #1]! /* load a byte from address in r0 into r2, increment r0 after */
ldrb r3, [r1, #1]! /* load a byte from address in r1 into r3, increment r1 after */
subs r2, r3, r2    /* subtract r2 from r3 and put result into r2      */
beq  top           /* branch(/jump) if result is zero                 */

dies sollte Ihnen einen Hinweis darauf geben, wie sich RISC- und CISC-Befehlssätze in ihrer Komplexität unterscheiden.

243
auselen

Weder hat etwas spezielles für Tastatur oder Handy, außer der Tatsache, dass ARM) seit Jahren einen beachtlichen Vorteil im Hinblick auf den Stromverbrauch hatte, was es attraktiv für alle Arten von batteriebetriebenen Geräten machte.

Was die tatsächlichen Unterschiede betrifft: ARM hat mehr Register, unterstützt Prädikation für die meisten Anweisungen, lange bevor Intel sie hinzufügte, hat einen "Daumen" -Modus, der primär dazu gedacht ist, die Codedichte zu erhöhen (also passt ein Programm) in weniger Speicher) und hat seit langem alle Arten von Techniken (nennen Sie sie "Tricks", wenn Sie es vorziehen) eingebaut, um fast überall Strom zu sparen.

Früher legte Intel mehr Wert auf Geschwindigkeit als auf Stromverbrauch. Sie fingen an, den Stromverbrauch vor allem im Zusammenhang mit Laptops zu betonen. Für Laptops lag ihr typisches Leistungsziel in der Größenordnung von 6 Watt für einen relativ kleinen Laptop. In jüngerer Zeit (viel in jüngerer Zeit) haben sie angefangen, mobile Geräte (Telefone, Tablets usw.) ins Visier zu nehmen. Für diesen Markt sind es höchstens ein paar Watt. Sie scheinen ziemlich gut darin abzuschneiden, obwohl ihr Ansatz sich wesentlich von dem von ARM unterschied und die Herstellungstechnologie hervorhob, bei der ARM) hauptsächlich die Mikroarchitektur betont hat (nicht überraschend, wenn man bedenkt, dass ARM verkauft Designs und überlässt die Herstellung anderen).

87
Jerry Coffin

Zusätzlich zu Jerry Coffins erster Absatz. Dh, ARM Design ergibt einen geringeren Stromverbrauch.

Die Firma ARM lizenziert nur die CPU-Technologie. Sie machen keine physischen Chips. Auf diese Weise können andere Unternehmen verschiedene Peripherietechnologien hinzufügen, die normalerweise als [~ # ~] soc [~ # ~] oder System-on-Chip bezeichnet werden. Ob es sich bei dem Gerät um ein Tablet, ein Mobiltelefon oder ein Unterhaltungssystem im Auto handelt. Dies ermöglicht es den Chipanbietern, den Rest des Chips auf eine bestimmte Anwendung zuzuschneiden. Dies hat zusätzliche Vorteile,

  1. Niedrigere Boardkosten
  2. Niedrigere Leistung (note1)
  3. Einfachere Herstellung
  4. Kleinerer Formfaktor

ARM unterstützt SOC-Anbieter mit AMBA , sodass SOC-Implementierer Module von Drittanbietern von der Stange kaufen können. wie ein Ethernet, Speicher und Interrupt-Controller. Einige andere CPU-Plattformen unterstützen dies, wie MIPS , aber MIPS ist nicht so energiebewusst.

All dies ist für ein hand-/batteriebetriebenes Design von Vorteil. Einige sind einfach rundum gut. Außerdem hat ARM eine Geschichte von batteriebetriebenen Geräten. Apple Newton , Psion Organizers . Die PDA-Software-Infrastruktur wurde von einigen Unternehmen genutzt, um Geräte vom Typ für Smartphones zu erstellen. Mehr Erfolg hatten jedoch diejenigen, die die Benutzeroberfläche für die Verwendung mit einem Smartphone neu erfanden.

Der Aufstieg von Open source Werkzeugsätze und operating systems erleichterte auch die verschiedenen SOC Chips. Eine geschlossene Organisation hätte Probleme beim Versuch, alle verschiedenen für den ARM verfügbaren Geräte zu unterstützen. Die beiden beliebtesten Mobilfunkplattformen, Andriod und OSx/IOS, basieren auf Linux und FreeBSD, Mach und NetBSD Betriebssystemen. Open Source hilft SOC Anbietern, Software-Unterstützung für ihre Chipsätze bereitzustellen.

Hoffentlich ist es selbstverständlich, warum x86 für die Tastatur verwendet wird. Es verfügt über die Software und vor allem über Personen, die für die Verwendung dieser Software geschult sind. Netwinder ist ein ARM System, das ursprünglich für die Tastatur entwickelt wurde. Außerdem suchen Hersteller derzeit nach ARM64 für den Servermarkt. Strom/Wärme ist in Rechenzentren rund um die Uhr ein Problem.

Daher würde ich sagen, dass das Ökosystem , das um diese Chips herum wächst, ebenso wichtig ist wie Funktionen wie ein geringer Stromverbrauch. ARM strebt seit einiger Zeit (Mitte bis Ende der 1980er Jahre) nach leistungsarmen und leistungsstärkeren Computern und hat eine Menge Leute an Bord.

Hinweis 1: Mehrere Chips benötigen Bustreiber, um bei bekannten Spannungen zu kommunizieren und zu treiben. Außerdem benötigen separate Chips in der Regel Stützkondensatoren und andere Leistungskomponenten, die in einem [~ # ~] soc [~ # ~] -System gemeinsam genutzt werden können.

35
artless noise

Der ARM ist wie ein italienischer Sportwagen:

  • Gut ausbalanciert, gut abgestimmt, Motor. Gibt gute Beschleunigung und Höchstgeschwindigkeit.
  • Ausgezeichnete Verfolgungsjagden, Bremsen und Federung. Kann schnell anhalten, kann in Kurven fahren, ohne langsamer zu werden.

Der x86 ist wie ein amerikanisches Muscle-Car:

  • Großer Motor, große Kraftstoffpumpe. Bietet hervorragende Höchstgeschwindigkeit und Beschleunigung, verbraucht aber viel Kraftstoff.
  • Fürchterliche Bremsen, du musst einen Termin in dein Tagebuch eintragen, wenn du langsamer werden willst.
  • Schreckliches Lenken, man muss bis zur Kurve bremsen.

Fazit: Der x86 basiert auf einem Design von 1974 und ist geradlinig gut (verbraucht aber viel Kraftstoff). Der Arm verbraucht wenig Kraftstoff, bremst nicht für Ecken (Äste).


Metapher vorbei, hier sind einige echte Unterschiede.

  • Arm hat mehr Register.
  • Arm hat nur wenige Spezialregister, x86 ist alles Spezialregister (also weniger bewegte Sachen).
  • Arm hat wenige Speicherzugriffsbefehle, nur Lade-/Speicherregister.
  • Arm ist intern Harvard-Architektur mein Entwurf.
  • Arm ist einfach und schnell.
  • Armbefehle sind architektonisch einzelne Zyklen (außer Laden/Speichern mehrerer Zyklen).
  • Arm Anweisungen machen oft mehr als eine Sache (in einem einzigen Zyklus).
  • Wo mehr als ein Arm-Befehl benötigt wird, wie z. B. der x86-Schleifenspeicher und das automatische Inkrementieren, erledigt der Arm dies immer noch in weniger Taktzyklen.
  • Arm hat mehr bedingte Anweisungen.
  • Arm's Branch Predictor ist trivial einfach (wenn er bedingungslos oder rückwärts ist, dann nehme er einen Zweig an, sonst nehme er einen Nicht-Zweig an) und bietet eine bessere Leistung als der sehr sehr komplexe in x86 (es gibt hier nicht genug Platz, um ihn zu erklären, nicht dass ich könnte) ).
  • Arm verfügt über einen einfachen konsistenten Befehlssatz (Sie können ihn von Hand kompilieren und schnell erlernen).
15
ctrl-alt-delor

Die ARM -Architektur wurde ursprünglich für Acorn-Personalcomputer entwickelt (siehe Acorn Archimedes , circa 1987, und RiscPC ), die genauso stark auf der Tastatur basierten PCs sowie x86-basierte IBM PC-Modelle. Erst spätere ARM Implementierungen waren in erster Linie auf das mobile und eingebettete Marktsegment ausgerichtet.

Ursprünglich konnten einfache RISC-CPUs mit ungefähr gleicher Leistung von viel kleineren Entwicklungsteams entwickelt werden (siehe Berkeley RISC ) als diejenigen, die an der x86-Entwicklung bei Intel arbeiten.

Heutzutage verfügen die schnellsten ARM Chips jedoch über sehr komplexe, von großen Entwicklungsteams entworfene Multi-Issue-Instruction-Dispatch-Units, und x86-Cores können so etwas wie einen RISC-Core aufweisen, der von einer Instruction Translation Unit gespeist wird .

Daher hängen aktuelle Unterschiede zwischen den beiden Architekturen eher mit den spezifischen Marktanforderungen der Produktnischen zusammen, auf die die Entwicklungsteams abzielen. (Zufällige Meinung: ARM erhöht wahrscheinlich die Lizenzgebühren für eingebettete Anwendungen, die in der Regel weitaus leistungsstärker und kostenintensiver sind. Und Intel muss einen Leistungsvorteil bei PCs und Servern aufrechterhalten, um die Gewinnspanne zu senken siehe unterschiedliche Implementierungsoptimierungen.)

15
hotpaw2