ARM vs x86, Warum ist einer energieeffizienter als der andere?

ARM gegen x86

Mit der Ankündigung dieser Woche des ersten Apple Macintosh basierend auf Prozessoren mit ISA ARMNachdem Apple vor einigen Monaten den Übergang angekündigt hatte, ist das Thema ARM vs x86 aufgetaucht und die Frage, warum es auf Geräten mit geringem Stromverbrauch keine CPUs mit ISA x86 gibt, ist wieder aufgetaucht. Aber was sind die Motive und Mythen rund um dieses Thema?

Wenn Sie sich jemals gefragt haben, warum Sie keine Smartphones, Tablets und Geräte aller Art sehen können, die x86-Prozessoren mit einem Verbrauch von weniger als 10 W und sogar 5 W verwenden, lassen Sie sich sagen, dass dies nicht auf mangelndes Interesse zurückzuführen ist Intel or AMDEs gibt jedoch eine Reihe von Gründen dafür, eine Reihe unüberwindbarer Hindernisse, die mit der Natur der x86-Architektur zu tun haben.

ARM gegen x86 oder CISC gegen RISC

RISC gegen CISC

ARM steht für Advanced RISC Machines, während jedes x86-basierte CPU soll einen CISC-ähnlichen Befehlssatz haben. Aber was bedeutet das? RISC steht für Reduced Instruction Set Computing oder Computing mit einem reduzierten Befehlssatz, während CISC für Complex Instruction Set Computing steht. Daher ist es eine Möglichkeit, die von verschiedenen Prozessoren verwendeten Befehlssätze zu klassifizieren.

Der Hauptunterschied besteht darin, dass RISC aufgrund des reduzierten Befehlssatzes mehrere einfachere Befehle verwenden muss, um einen komplexeren Befehl auszuführen, während im Fall einer CISC-Einheit viele komplexe Befehle in einem einzigen Befehl ausgeführt werden können Daher sparen CISC-Laufwerke Platz in Bezug auf die Speichermenge.

Processador Render Generic

Beispielsweise wäre der Maschinencode einer Summe in RISC wie folgt:

  1. Speichert den ersten Operanden im Akkumulatorregister
  2. Laden Sie den zweiten Operanden und fügen Sie ihn hinzu.
  3. Speichert das Ergebnis im Akkumulatorregister.

Stattdessen auf einem CISC-Prozessor:

  1. Fügen Sie den ersten und zweiten Operanden hinzu.

Was den Maschinencode betrifft, a RISC-Binärdatei hat mehr Anweisungen und daher nimmt viel mehr Speicherplatz in Anspruch In der CISC-Binärdatei ist der Code viel leichter.

Der Befehlszyklus von Prozessoren

Decodierung abrufen ausführen

Jeder Prozessor, unabhängig davon, ob es sich um CISC oder RISC handelt, muss vier verschiedene Phasen durchlaufen:

Holen: Die folgende Anweisung wird im Speicher abgerufen.

Dekodieren: Die Anweisung wird dekodiert und für die Ausführung vorbereitet.

Execute: Der Befehl wird von einer der Ausführungseinheiten der CPU ausgeführt. und das Ergebnis des Befehls wird in die entsprechende Speicherbank oder das entsprechende Register geschrieben.

In RISC-Prozessoren Ein von der CPU ausgeführter Befehl entspricht einem Befehl im Binärcode, während in CISC ein Befehl im Maschinencode sein kann in mehrere Mikrobefehle zerlegt, was bedeutet, dass die Dekodiereinheit von CISC-Prozessoren ist viel komplexer und ist ein weiterer wichtiger Faktor für einen höheren Verbrauch von x86.

Segmentierung auf x86 vs ARM

Segmentierung

Eine der Besonderheiten, die alle CPUs seit Anfang der 90er Jahre aufweisen, ist die Segmentierung, die darin besteht, dass sie nicht darauf warten, dass ein Befehl vollständig im Prozessor ausgeführt wird, um Platz für den nächsten zu machen, sondern von jeder Stufe des Befehls vorgerückt werden Zyklus, der in jeweils mehrere Unterstufen unterteilt werden kann.

Da RISC-Prozessoren eine direkte Korrelation zwischen der Anzahl der Befehle im Binärcode und denen haben, die von der CPU ausgeführt werden, ist es sehr einfach, die Befehle in mehrere Stufen zu unterteilen. Aber in einem x86 ist es extrem schwierig , da die Segmentierung auf den Mikrobefehlen erfolgt, die während der Decodierungsstufe erzeugt wurden, was noch mehr bedeutet zusätzliche Schaltung kontinuierlich laufen und Strom verbrauchen.

Nicht nur das, sondern während beispielsweise die Opcodes jedes Befehls in ARM im Fall von x86 eine feste Größe haben, sind sie variabel, was das Decodieren von Befehlen in Mikrobefehlen im Fall von x86-Prozessoren viel komplexer macht.

Weniger Aufzeichnungen bedeuten weniger Energieeffizienz

Registros

Der ISA x86 hat viel weniger Register In diesem ISAS bedeutet dies, dass viele Anweisungen im Speicher oder in den Caches ausgeführt werden müssen, was dazu führt, dass Sie am Ende viel mehr Energie verbrauchen bei der Ausführung. Dies ist ein klassisches Problem der x86-Architektur und nicht, weil es sich um eine CISC-Architektur handelt.

Um es zu verstehen, ist es notwendig zu berücksichtigen der Energieverbrauch jeder Operation hängt von der Abstand zwischen den Daten und dem Prozessor .

x86 vs ARM auf Geräten mit sehr geringem Stromverbrauch.

Intel-Smartphone

Intel hat es vor einigen Jahren mit dem ausgefallenen Intel Medfield-Prozessor versucht.

Eine der in Betracht gezogenen Möglichkeiten ist die Schaffung eines gemischte CPU , das aus einem x86 besteht, der seine Anweisungen intern in ARM-Anweisungen decodiert und die vollständige Kompatibilität zwischen den beiden ISAS ermöglicht, die der endgültige Prozessor wären.

Leider sind weder ARM noch Intel und AMD, insbesondere letztere, daran interessiert, diesen gemischten Prozessor seitdem herzustellen Arbeit in beiden Modi wäre es sehr schwer zu erreichen, Abgesehen davon wäre die Dekodierung von x86-Befehlen weiterhin ein Problem, sodass wir einen Prozessor hätten, der nur auf eine Weise arbeiten könnte und bei dem der größte Teil der Schaltung verschwendet würde.