Android unterstützt drei unterschiedliche Prozessor Architekturen: ARM, Intel und MIPS. Die bekannteste und verbreitetste ist ohne Frage die ARM Technologie. Die Firma Intel ist hauptsächlich wegen ihrer Desktop- und Server Sparte bekannt, im Mobilbereich ist der Bekanntheitsgrad jedoch ehr gering. Auch MIPS kann auf eine lange Geschichte und große Erfolge im 32- und 64-Bit Bereich für Embedded Lösungen zurückblicken. Dennoch ist es das am wenigsten bekannte, von Android unterstützte CPU Design.

Kurz zusammengefasst kann man sagen, dass ARM derzeit der Marktführer im Bereich der Prozessoren für Mobile Geräte ist und Intel in diesem Bereich den großen Rivalen darstellt. Was ist jedoch der Unterschied zwischen ARM Prozessoren und Intel Prozessoren? Weshalb ist ARM beliebter? Und ist es überhaupt entscheidend, welche CPU in Ihrem Smartphone oder Tablet verbaut wurde?

Die CPU

Der Hauptprozessor, der auch CPU genannt wird, ist das „Gehirn“ Ihres Gerätes. Er ist für das Ausführen von Anweisungssequenzen zuständig und kontrolliert so die Hardware des Gerätes, welche zum Beispiel das Display, der Touch-Screen, das Mobilfunk-Modem und viele mehr sein können, um einen „Klumpen aus Plastik und Metall“ in ein funktionsfähiges Smartphone oder Tablet zu verwandeln. Mobilgeräte sind komplexe Teile, dessen CPUs Millionen von Anweisungen ausführen müssen, bis sie sich so verhalten, wie man es von ihnen erwartet. Die Geschwindigkeit sowie die Energieeffizienz dieser CPUs sind entscheidend, denn die Geschwindigkeit beeinflusst das Nutzungserlebnis, während sich die Effizienz direkt auf die Batterielaufzeit auswirkt. Ein perfektes Mobilgerät muss deshalb eine hohe Leistung bieten und gleichzeitig mit einem niedrigen Stromverbrauch aufwarten.

Intel ist der Marktführer im Bereich Desktop- und Server Prozessoren.

Deshalb ist die Wahl der CPU wichtig. Ein Strom verschlingender, schneller Prozessor wird Ihre Batterie schnell leeren; eine gut dimensionierte, effiziente CPU bietet Ihnen jedoch die nötige Performance sowie eine hohe Batterielaufzeit. Betrachtet man die Unterschiede auf dem höchsten Level, ist der erste Unterschied zwischen einer ARM CPU und einer Intel CPU, dass der ARM ein RISC (Reduced Instruction Set Computing) und der zweite ein CISC (Complex Instruction Set Computing) Prozessor ist. Vereinfacht gesagt, und ich betone nochmals das Wort „vereinfacht“, sind RISC Befehlsätze im Gegensatz zu den Befehlssätzen eines CISC Prozessors kleiner und atomarer. Die Befehlsätze eines CISC Prozessors sind hingegen größer und komplexer. Mit atomar möchte ich ausdrücken, dass eine Anweisung dieses Befehlssatzes ungefähr einer Operation entspricht, die direkt von der CPU ausgeführt werden kann. Dies kann zum Beispiel ein Addiervorgang von Inhalten zweier Register sein. CISC Anweisungen stellen hingegen immer eine Idee dar, für die drei oder vier Anweisungen nötig sind, um diese auszuführen zu können. Beispielsweise kann man eine CISC CPU dazu anweisen, zwei Zahlen aus dem Arbeitsspeicher zu addieren. Um dies ausführen zu können, muss die CPU zuerst die erste Zahl von der ersten Adresse lesen, dies ist die erste Operation, anschließend muss die zweite Zahl von einer anderen Adresse gelesen werden, dies ist die zweite Operation, weiter müssen beide Zahlen addiert werden, was die dritte Operation darstellt. Dies kann weiter fortgeführt werden.

Moderne CPUs nutzen ein Konzept, dass unter dem Namen Microcode bekannt ist. Der Microcode ist ein interner Befehlssatz der CPU, der die atomaren Operationen beschreibt, welche der Prozessor ausführen kann. Nur diese kleineren (mikro) Operationen kann die CPU tatsächlich ausführen. Wie bereits erwähnt, sind bei RISC Prozessoren diese Operationen im Befehlssatz sehr ähnlich zu den Operationen des Microcodes. Bei CISC müssen die komplexen Anweisungen zuerst in kleinere Microcode Operationen übersetzt werden, wie dies im Addieren Beispiel weiter oben beschrieben wurde. Dies bedeutet, dass die Dekodiereinheit für Anweisungen sehr viel einfacher ist. Eine solche Einheit erarbeitet, was die CPU wirklich zu tun hat. „Einfacher“ kann man in diesem Fall mit „benötigt weniger Strom“ und „erzielt eine größere Effizienz“ gleich setzen.

Mikrochip Fabrikat

Der nächste große Unterschied zwischen einem ARM Prozessor und einem Intel Prozessor ist die Tatsache, dass ARM bisher lediglich effiziente Prozessoren entworfen hat. Die Daseinsberechtigung von ARM besteht darin, stromsparende Prozessoren zu entwickeln, das ist ihr Fachgebiet. Intel hingegen besitzt eine hohe Kompetenz im Bereich der Hochleistungsprozessoren für Desktop und Server und hat in diesen Bereichen gute Arbeit verrichtet. Deshalb ist Intel der Marktführer in den Bereichen Desktops und Server. Jeder PC, Laptop und Server, mit der Ausnahme von einem Gerät, den ich in den letzten 20 Jahren besessen habe, hatte einen Intel Prozessor. Um im Mobilmarkt Fuß zu fassen, verwendet Intel die gleiche CISC Befehlssatz Architektur wie für Desktop Systeme, versucht diese jedoch in kleinere, für mobile Geräte geeignete Prozessoren hinein zu quetschen.

Auch im Bereich des 64-Bit Computing gibt es signifikante Unterschiede zwischen ARM und Intel

Ein durchschnittlicher Intel i7 Prozessor erzeugt zirka 45 Watt Hitze. Im Vergleich hierzu weißt ein durchschnittlicher Smartphone SoC, inklusive der GPU, in der Spitze eine Leistungsaufnahme von ungefähr 3Watt auf., was 15 mal geringer ist, als die des Intel i7. Intel ist jedoch eine große Firma, bei der viele schlaue Leute beschäftigt sind und kann daher mittlerweile bei dem neuesten Atom Prozessor mit einem ähnlichen Thermaldesign aufwarten, wie dies ein ARM basierter Prozessor bieten kann. Dies gelingt jedoch nur mit dem aktuellsten 22nm Fabrikationsprozess. Im Vergleich dazu bieten ARM Prozessoren diese günstigen thermalen Eigenschaften, obwohl sie noch in einem größeren Nanometer-Fabrikationsprozess gefertigt werden. Ein Beispiel hierfür ist der Qualcomm Snapdragon 805, der im 28nm Prozess gefertigt wird.

64-Bit

Auch wenn es um 64-Bit geht, gibt es signifikante Unterschiede zwischen ARM und Intel. Wussten Sie, dass Intel nicht einmal die 64-Bit Version ihres x86 Befehlssatzes erfunden hat. Der Befehlssatz, der unter dem Namen x86-64 bekannt ist und manchmal lediglich x64 genannt wird, wurde von AMD entwickelt. Die Geschichte war wie folgt: Intel wollte in das 64-Bit Computing einsteigen, war sich jedoch bewusst, dass es ineffizient wäre, wenn sie ihre 32-Bit x86 Architektur hernehmen und daraus eine 64-Bit Version machen würden. Daher starteten Sie ein Projekt, aus dem der IA64 Prozessor entstand, und letztendlich zur Itanium Prozessor Serie wurde. Währenddessen fand AMD heraus, dass es nicht in der Lage war, einen IA64 kompatiblen Prozessor zu produzieren und erweiterte deshalb das x86 Design um die 64-Bit Adressierung sowie 64-Bit Register. Die daraus entstandene Architektur, welche auch unter dem Namen AMD64 bekannt ist, wurde zum Standard für 64-Bit in x86 Prozessoren.

Das IA64 Projekt konnte keine großen Erfolg aufweisen und ist mittlerweile nahezu tot. Deshalb übernahm Intel die AMD64 Technologie und bietet derzeit 64-Bit Prozessoren für Mobile Geräte an, die den 64-Bit Befehlssatz von AMD verwenden. Dieser wurde lediglich an wenigen Stellen ein bisschen modifiziert.

Die Geschichte von ARM verlief komplett anders. Da ARM erkannte, dass auch im Mobilbereich 64-Bit benötigt wird, kündigten sie 2011 die 64-Bit ARMv8 Architektur an. Dies war der Höhepunkt von vielen Jahren Arbeit, die an der nächsten ARM Befehlssatz Architektur verrichtet wurde. Um eine saubere 64-Bit Implementierung zu erstellen, die auf den bereits vorhandenen Prinzipien und Befehlssätzen basiert, benutzt die ARMv8 Architektur zwei Ausführungsstatus, AArch32 und AArch64.

Wie der Name bereits andeutet, ist ein Status dafür da, 32-Bit Code ausführen zu können, der andere für 64-Bit Code. Das Schöne am ARM Design ist, dass der Prozessor während der normalen Ausführung nahtlos zwischen den beiden Modi wechseln kann. Dies bedeutet, dass der Dekoder für 64-Bit Anweisungen ein neues Design hat, das nicht mit der 32-Bit Ära kompatibel sein muss. Der Prozessor im Gesamten ist jedoch abwärtskompatibel.

Heterogenes Computing

Die big.LITTLE Architektur von ARM ist eine Innovation, die von Intel noch lange nicht kopiert hat. Bei big.LITTLE müssen die Kerne der CPU nicht zwangsweise vom gleichen Typ sein, in einem Dual-Core oder Quad-Core Prozessor sind jedoch normalerweise zwei oder vier Kerne des gleichen Typs verbaut. Beispielsweise besitzt ein Dual-Core Atom Prozessor zwei identische x86-64 Kerne, die beide die gleiche Leistung bieten und die gleiche Leistungsaufnahme aufweisen. Mit big.LITTLE hat ARM heterogenes Computing für Mobilgeräte vorgestellt. Dies bedeutet, dass die Kerne mit einer unterschiedlichen Geschwindigkeit und Leistungsaufnahme aufwarten können. Ist ein Mobilgerät nicht ausgelastet, kann ein energiesparender Kern die Aufgaben übernehmen, falls Sie jedoch ein komplexes Spiel starten, kommt der performante Kern zum Einsatz.

Die Magie steckt jedoch im Folgenden: Wenn man über CPU Designs diskutiert, gibt es eine Menge technische Design Entscheidungen, die die Performance und den Energieverbrauch des Prozessors beeinflussen. Bei der Dekodierung und der Vorbereitung der Ausführung benutzen die Prozessoren von ARM und Intel Pipelines. Dies bedeutet, dass alle Teile des Dekodier-Prozesses parallelisiert werden. Im ersten Schritt wird die nächste Anweisung aus dem Speicher geladen, im zweiten Schritt wird der Typ der Anweisung untersucht und dekodiert, im dritten Schritt wird die Anweisung letztendlich ausgeführt. Das Schöne an Piplines ist, dass wenn die erste Anweisung im zweiten Schritt bearbeitet wird, wird die nächste Anweisung bereits im Ersten abgearbeitet. Im nächsten Schritt ist die erste Anweisung im dritten Schritt der Bearbeitung, die zweite Anweisung im Zweiten und eine dritte Anweisung wird im ersten Schritt verarbeitet. Dies wird für alle ankommende Anweisungen im selben Prinzip weitergeführt.

Das Prinzip, dass in schnelleren Prozessoren komplexere Logiken und ich langsameren Prozessoren einfachere Logiken eingesetzt werden, trifft nicht nur auf die Anweisungspipeline zu.

Um noch mehr Geschwindigkeit zu gewinnen, können diese Pipelines so konstruiert werden, dass die Anweisungen in einer anderen Reihenfolge ausgeführt werden können, wie das Programm dies vorgesehen. Dazu wird eine clevere Logik verwendet, die herausfindet, ob die nächste Anweisung das Ergebnis der Vorherigen benötigt. Hierzu verwenden Intel und ARM eine Logik für Out-of-order execution, was in deutsch so viel bedeutet wie „Ausführung in einer anderer Reihenfolge, als die, die im Programmcode vorgesehenen wurde“. Sie können sich bestimmt vorstellen, dass dies eine sehr komplexe Technologie ist, wobei komplex mit hohem Stromverbrauch gleichzusetzen ist. Bei Intel entscheiden die Designer, ob sie die Out-of-order execution verwenden möchten oder nicht. Beim heterogenen Rechnen stellt dies jedoch kein Problem dar. Der ARM Cortex-A53 verwendet In-order execution, was in übersetzt so viel bedeutet wie „Ausführung in der Reihenfolge, die der Programmcode vorgibt“, und benötigt daher weniger Strom. Der Cortex-A57 benutzt hingegen die Out-of-order execution, erzielt so höhere Geschwindigkeiten, benötigt jedoch auch mehr Energie. In einem big.LITTLE Prozessor können Cortex-A53 sowie Cortex-A57 Kerne verbaut werden. An die momentan benötigte Leistung angepasst, werden die passenden Kerne verwendet. Um eine Hintergrund-Synchronisation der Emails durchzuführen benötigt man keine schnelle Out-of-order execution, bei komplexen Spielen ist diese jedoch sehr wohl erforderlich. Deshalb wird der richtige Kern zum richtigen Zeitpunkt verwendet.

Das Prinzip, dass in schnelleren Prozessoren komplexere Logiken und ich langsameren Prozessoren einfachere Logiken eingesetzt werden, trifft nicht nur auf die Anweisungspipeline zu. Es kann gleichermaßen auf die Gleitkommaeinheit, die SIMD Logik (beispielsweise NEON bei ARM und SSE/MMX bei Intel) und die Arbeitsweise der L1 und L2 Caches angewandt werden. Intel bietet eine Lösung pro Atom SoC an, ARM kann wegen seiner Partner in der Silizium Branche mehrere Konfigurationen anbieten, von denen viele gleichzeitig im selben Silizium implementiert werden können.

Kompatibilität

ARM ist derzeit der Marktführer im Bereich der Prozessoren für Mobilgeräte. Die Partner von ARM haben bereits 50 Milliarden Chips, die auf dem Design von ARM basieren, versandt und jeder dieser Prozessoren war für den Markt der Mobilgeräte und Embedded Systeme bestimmt. ARM ist der Industriestandard bei Android Geräten, was für Intel und MIPS zum Problem geworden ist. Weiter wird unter Android in der Programmiersprache Java entwickelt, was den App-Entwicklern erlaubt, ihren bereits geschriebenen Code, der beispielsweise in C oder C++ vorliegt, in neue Apps zu verwenden. Normalerweise werden diese „nativen“ Apps nur für ARM Prozessoren kompiliert, was die Prozessor Architekturen von Intel und MIPS ausschließt. Um diesem Problem Herr zu werden, mussten Intel und MIPS spezielle Übersetzungsprogramme schreiben, welche die Anweisungen der ARM Prozessoren in Code für ihre CPUs umwandelt. Dies wirkt sich natürlich negativ auf die Performance der Apps aus. Momentan können ungefähr 90 Prozent aller im Play Store verfügbaren Apps auf MIPS und Intel Prozessoren ausgeführt werden. Betrachtet man lediglich die besten 150 Apps, ist die Zahl vermutlich näher an der 100. Einerseits ist dies ein hoher Deckungsgrad, andererseits zeigt es sehr deutlich die Dominanz von ARM. Andere Prozessor-Designer müssen eine Kompatibilitätsschicht anbieten, um am Markt bestehen zu können.

Zusammenfassung

Eine CPU zu bauen ist ein eine komplexe Angelegenheit. ARM, Intel und MIPS arbeiten hart, um die beste Technologie für Mobilgeräte anbieten zu können, ARM ist jedoch derzeit der klare Marktführer. Mit dem Hauptaugenmerk auf stromsparende Prozessoren, einer sauberen 64-Bit Implementierung, dem heterogenen Computing und die Rolle als Industriestandard für Mobilgeräte sieht es so aus, als könne ARM seine Spitzenposition am Markt behaupten.

 

Dieser Beitrag ist eine Übersetzung des Artikels „ARM vs X86 – Key differences explained!“ von Gary Sims, der zuerst auf der Homepage http://www.androidauthority.com veröffentlich wurde. Hier geht es zum Original:  http://www.androidauthority.com/arm-vs-x86-key-differences-explained-568718/

Artikel Quellen: Android Authority

avatar

Sie müssen sich anmelden um einen Kommentar zu veröffentlichen

avatar

Sie müssen sich anmelden um einen Kommentar zu veröffentlichen