Ist die x86-Architektur speziell für die Verwendung mit einer Tastatur konzipiert, während ARM erwartet, mobil zu sein? Was sind die Hauptunterschiede zwischen den beiden?
Ist die x86-Architektur speziell für die Verwendung mit einer Tastatur konzipiert, während ARM erwartet, mobil zu sein? Was sind die Hauptunterschiede zwischen den beiden?
Antworten:
ARM
ist eine RISC- Architektur (Reduced Instruction Set Computing), während x86
es sich um eine CISC- Architektur (Complex Instruction Set Computing) handelt.
Der Hauptunterschied zwischen diesen Aspekten besteht darin, dass ARM-Befehle nur in Registern mit wenigen Anweisungen zum Laden und Speichern von Daten aus / in den Speicher ausgeführt werden, während x86 auch direkt im Speicher ausgeführt werden kann. Bis v8 war ARM 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 Energiesparfunktionen führt, während x86 sowohl hinsichtlich des Stromverbrauchs als auch der Produktion zu einem Energietier wird.
Informationen zu " Ist die x86-Architektur speziell für die Verwendung mit einer Tastatur konzipiert, während ARM erwartet, mobil zu sein? ". x86
ist nicht speziell für die Arbeit mit einer Tastatur konzipiert, auch nicht ARM
für Handys. Aufgrund der zentralen Architekturoptionen verfügt x86 jedoch auch über Anweisungen, mit denen direkt gearbeitet werden kann, IO
während ARM dies nicht tut. Mit speziellen E / A-Bussen wie USBs verschwindet jedoch auch der Bedarf an solchen Funktionen.
Wenn Sie ein Dokument zum Zitieren benötigen, finden Sie in den Programmieranleitungen der Cortex-A-Serie (4.0) Informationen zu 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 verfügen häufig über erhebliche Mengen an interner Logik, die Maschinenbefehle in Sequenzen interner Operationen (Mikrocode) decodieren.
Im Gegensatz dazu weisen RISC-Architekturen eine geringere Anzahl allgemeinerer Befehle auf, die möglicherweise mit erheblich weniger Transistoren ausgeführt werden, wodurch das Silizium billiger und energieeffizienter wird. Wie andere RISC-Architekturen verfügen ARM-Kerne über eine große Anzahl von Allzweckregistern, und viele Befehle werden in einem einzigen Zyklus ausgeführt. Es verfügt über einfache Adressierungsmodi, in denen alle Lade- / Speicheradressen aus Registerinhalten und Anweisungsfeldern ermittelt werden können.
Das Unternehmen ARM bietet außerdem einen Artikel mit dem Titel " Architektur, Prozessoren und Geräteentwicklung" an, in dem beschrieben wird, wie diese Begriffe für das Geschäft gelten.
Ein Beispiel für den Vergleich der Befehlssatzarchitektur:
Wenn Sie beispielsweise in Ihrer Anwendung einen byteweisen Speichervergleichsblock benötigen (vom Compiler generiert, Details übersprungen), sieht dies möglicherweise so aus x86
repe cmpsb /* repeat while equal compare string bytewise */
während in ARM
kürzester Form aussehen könnte (ohne Fehlerprüfung etc.)
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 geben, wie sich die Komplexität von RISC- und CISC-Befehlssätzen unterscheidet.
Weder hat etwas Spezielles für Tastatur oder Handy, außer der Tatsache, dass ARM seit Jahren einen ziemlich erheblichen Vorteil in Bezug auf den Stromverbrauch hat, was es für alle Arten von batteriebetriebenen Geräten attraktiv machte.
Was die tatsächlichen Unterschiede angeht: ARM verfügt über mehr Register, unterstützt die Prädikation für die meisten Anweisungen, lange bevor Intel sie hinzufügte, und hat seit langem alle möglichen Techniken (nennen Sie sie "Tricks", wenn Sie es vorziehen) integriert, um fast überall Strom zu sparen.
Es gibt auch einen erheblichen Unterschied darin, wie die beiden Anweisungen codieren. Intel verwendet eine ziemlich komplexe Codierung mit variabler Länge, bei der ein Befehl zwischen 1 und 15 Byte belegen kann. Dies ermöglicht es, dass Programme recht klein sind, macht jedoch das Dekodieren von Befehlen relativ schwierig (wie in: Das parallele Dekodieren von Befehlen ist eher ein Albtraum).
ARM verfügt über zwei verschiedene Befehlskodierungsmodi: ARM und THUMB. Im ARM-Modus erhalten Sie Zugriff auf alle Anweisungen, und die Codierung ist äußerst einfach und schnell zu decodieren. Leider ist der ARM-Modus-Code in der Regel ziemlich groß, sodass ein Programm häufig etwa doppelt so viel Speicher belegt wie Intel-Code. Der Daumenmodus versucht dies zu mildern. Es verwendet immer noch eine recht reguläre Befehlskodierung, reduziert jedoch die meisten Befehle von 32 Bit auf 16 Bit, z. B. durch Verringern der Anzahl der Register, Eliminieren von Prädikationen aus den meisten Befehlen und Verringern des Bereichs von Verzweigungen. Zumindest meiner Erfahrung nach gibt dies normalerweise immer noch nicht ganz nachDie Codierung ist so dicht wie x86-Code, aber sie ist ziemlich eng und die Decodierung ist immer noch recht einfach und unkompliziert. Eine geringere Codedichte bedeutet, dass Sie im Allgemeinen mindestens etwas mehr Speicher und (im Allgemeinen ernsthafter) einen größeren Cache benötigen, um eine gleichwertige Leistung zu erzielen.
Zu einer Zeit legte Intel viel mehr Wert auf Geschwindigkeit als auf Stromverbrauch. Sie begannen, den Stromverbrauch hauptsächlich 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 begonnen, auf mobile Geräte (Telefone, Tablets usw.) abzuzielen. Für diesen Markt sehen sie höchstens ein paar Watt oder so. Sie scheinen darin ziemlich gut abzuschneiden, obwohl sich ihr Ansatz wesentlich von dem von ARM unterscheidet und die Herstellungstechnologie betont, bei der ARM hauptsächlich die Mikroarchitektur betont hat (nicht überraschend, wenn man bedenkt, dass ARM Designs verkauft und die Herstellung anderen überlässt).
Je nach Situation ist der Energieverbrauch einer CPU jedoch häufig wichtiger als der Stromverbrauch. Zumindest wenn ich die Begriffe verwende, bezieht sich der Stromverbrauch auf den (mehr oder weniger) sofortigen Stromverbrauch. Der Energieverbrauch normalisiert sich jedoch in Bezug auf die Geschwindigkeit. Wenn also beispielsweise CPU A 2 Sekunden lang 1 Watt verbraucht, um einen Job auszuführen, und CPU B 1 Sekunde lang 2 Watt verbraucht, um denselben Job auszuführen, verbrauchen beide CPUs dieselbe Gesamtmenge Energie (zwei Wattsekunden), um diesen Job zu erledigen - aber mit CPU B erhalten Sie doppelt so schnelle Ergebnisse.
ARM-Prozessoren schneiden in Bezug auf den Stromverbrauch sehr gut ab. Wenn Sie also etwas benötigen, das die "Präsenz" eines Prozessors fast ständig benötigt, aber nicht wirklich viel Arbeit leistet, können sie ziemlich gut funktionieren. Wenn Sie beispielsweise Videokonferenzen durchführen, erfassen Sie einige Millisekunden Daten, komprimieren sie, senden sie, empfangen Daten von anderen, dekomprimieren sie, spielen sie ab und wiederholen sie. Selbst ein sehr schneller Prozessor kann nicht viel Zeit mit Schlafen verbringen. Für solche Aufgaben ist ARM also sehr gut geeignet.
Die Prozessoren von Intel (insbesondere die Atom-Prozessoren, die eigentlich für Anwendungen mit geringem Stromverbrauch vorgesehen sind) sind hinsichtlich des Energieverbrauchs äußerst wettbewerbsfähig. Während sie fast ihre volle Geschwindigkeit erreichen, verbrauchen sie mehr Strom als die meisten ARM-Prozessoren - aber sie beenden die Arbeit auch schnell, sodass sie früher wieder einschlafen können. Infolgedessen können sie eine gute Akkulaufzeit mit einer guten Leistung kombinieren.
Wenn Sie also die beiden vergleichen, müssen Sie vorsichtig sein, was Sie messen, um sicherzugehen, dass es das widerspiegelt, was Sie ehrlich interessiert. ARM ist sehr gut im Stromverbrauch, aber je nach Situation interessiert Sie der Energieverbrauch möglicherweise mehr als der momentane Stromverbrauch.
Zusätzlich zu Jerry Coffins erstem Absatz. Das heißt, das ARM-Design bietet einen geringeren Stromverbrauch.
Das Unternehmen 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. Auf diese Weise können Chiphersteller den Rest des Chips an eine bestimmte Anwendung anpassen. Dies hat zusätzliche Vorteile,
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 wie MIPS unterstützen dies, aber MIPS ist nicht so leistungsbewusst.
All dies ist für ein handgehaltenes / batteriebetriebenes Design von Vorteil. Einige sind einfach rundum gut. Hat auch ARM
eine Geschichte von batteriebetriebenen Geräten; Apple Newton , Psion Organisatoren . Die Infrastruktur der PDA-Software wurde von einigen Unternehmen genutzt, um Geräte vom Typ Smartphone zu erstellen . Mehr Erfolg hatten jedoch diejenigen, die die GUI für die Verwendung mit einem Smartphone neu erfunden haben .
Der Aufstieg der Open source
Werkzeugsätze operating systems
erleichterte auch die verschiedenen SOC
Späne. Eine geschlossene Organisation hätte Probleme beim Versuch, alle 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
unterstützt SOC
Anbieter bei der Bereitstellung von Softwareunterstützung für ihre Chipsätze.
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, genauso wichtig ist wie Funktionen wie ein geringer Stromverbrauch. ARM
strebt seit einiger Zeit (Mitte bis Ende der 1980er Jahre) nach Computern mit geringer Leistung und höherer Leistung und hat viele Leute an Bord.
Hinweis 1: Mehrere Chips benötigen Bustreiber, um bei bekannten Spannungen und Antrieben miteinander zu kommunizieren. Außerdem benötigen separate Chips normalerweise Unterstützungskondensatoren und andere Leistungskomponenten, die in einem SOC- System gemeinsam genutzt werden können.
Der ARM ist wie ein italienischer Sportwagen:
Der x86 ist wie ein amerikanisches Muscle-Car:
Zusammenfassend: Der x86 basiert auf einem Design von 1974 und ist in einer geraden Linie gut (verbraucht aber viel Kraftstoff). Der Arm verbraucht wenig Kraftstoff, verlangsamt sich nicht für Ecken (Äste).
Metapher vorbei, hier sind einige echte Unterschiede.
Die ARM-Architektur wurde ursprünglich für Acorn-PCs (siehe Acorn Archimedes , circa 1987, und RiscPC ) entwickelt, bei denen es sich ebenso um tastaturbasierte PCs handelte wie um x86-basierte IBM PC-Modelle. Erst spätere ARM-Implementierungen waren hauptsächlich auf das mobile und eingebettete Marktsegment ausgerichtet.
Ursprünglich konnten einfache RISC-CPUs mit ungefähr gleicher Leistung von viel kleineren Entwicklungsteams (siehe Berkeley RISC ) entworfen werden 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, nicht in Auftrag gegebene Instruktionsversandeinheiten mit mehreren Ausgaben, und x86-Kerne verfügen möglicherweise über einen RISC-Kern, der von einer Instruktionsübersetzungseinheit 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 macht wahrscheinlich mehr Lizenzgebühren für eingebettete Anwendungen, die tendenziell viel leistungsfähiger und kostenintensiver sind. Und Intel muss einen Leistungsvorteil bei PCs und Servern für ihre Gewinnspannen aufrechterhalten. Daher sehen Sie unterschiedliche Implementierungsoptimierungen.)