Original-URL des Artikels: https://www.golem.de/news/cpu-architektur-darum-ist-apples-a7-so-schnell-1404-105518.html    Veröffentlicht: 01.04.2014 12:20    Kurz-URL: https://glm.io/105518

CPU-Architektur

Darum ist Apples A7 so schnell

Anandtech hat anhand von Apples Kommentaren in einem Compiler und eigenen Programmen Apples A7-SoC im iPhone 5S und im iPad Air analysiert. Das Ergebnis: Apples ARM-Kerne orientieren sich viel stärker an großen PC-Prozessoren, als man bisher annehmen konnte.

Mit dem ARM-SoC A7, das erstmals im iPhone 5S zum Einsatz kam, hat Apple die Rechenleistung seiner selbst entwickelten Chips in etwa verdoppelt - ein Kunststück, das heute von einer Architektur zur nächsten nicht mehr selbstverständlich ist. Anders als andere Prozessorentwickler wie AMD, IBM und Intel dokumentiert Apple seine Designs aber nicht öffentlich, mit der Zeit kommen einige Details aber doch ans Licht. Das ist unter anderem durch Kommentare im Quelltext des LLVM-Compilers der Fall, den Apple einsetzt. Damit Programmierer die Vorzüge einer neuen Architektur kennen, müssen sie ihren Code entsprechend auslegen, sonst bleiben die Techniken, die mehr Tempo möglich machen, ungenutzt.

So kommt auch Anand Lal Shimpi zu dem Schluss: "Bisher gibt es fast keine Anwendung unter iOS, welche die Rechenleistung des Prozessors ausnutzt." Dazu hat Shimpi sowohl die Kommentare im Compiler untersucht als auch auf Tipps von anderen Programmierern gehört und seine Theorien mit einigen Beispielprogrammen untersucht.

Die Architektur des A7 trägt den Codenamen "Cyclone", der Vorgänger heißt "Swift". Dabei fand auch ein Wechsel des ARM-Designs v7 auf v8 statt, ARM-v8 ist die erste 64-Bit-Architektur für die kleinen Kerne - obwohl klein hier nicht mehr ganz passt: Der A7 besteht aus über einer Milliarde Transistoren und ist 102 Quadratmillimeter groß.

Diese große Die-Fläche hat Apple zunächst für das Offensichtliche genutzt, denn die L1-Caches für Daten und Befehle wurden von je 32 auf 64 KByte verdoppelt. Der L2-Cache blieb mit 1 MByte unverändert, zusätzlich gibt es aber noch einen L3-Cache von 4 MByte. Damit spart Apple viele Zugriffe auf den Hauptspeicher ein, da dieser bei den ARM-Designs wie auch bei PCs in der vergangenen Zeit kaum schneller wird.

Vor allem aber hat Apple die Parallelität in den CPU-Kernen stark erhöht. Wie auch moderne PC-CPUs sind die ARM-Cores superskalar, sie können mehr als einen Befehl in einem Takt abarbeiten. Außerdem arbeiten sie mit Micro-Ops, welche im Out-of-Order-Verfahren umsortiert werden können. Die Grundlagen solcher Architekturen hat Golem.de am Beispiel von Intels erster Core-Architektur ausführlich erklärt.

Gegenüber dem A6 kann der A7 ganze sechs statt drei Befehle gleichzeitig verarbeiten. Der Puffer, in dem die Micro-Ops in eine optimale Reihenfolge gebracht werden können, fasst nun 192 statt 45 Einträge. Zum Vergleich: Selbst bei Intels aktueller Architektur Haswell ist dieser Reorder-Buffer nicht größer.

A7 orientiert sich an x86-CPUs

Wichtigste Funktion solcher Out-of-Order-CPUs ist eine genaue Sprungvorhersage, denn wenn sie fehlschlägt, muss die Pipeline fast von vorne anfangen. Je mehr Befehle parallel bearbeitet werden, desto schlimmer wirkt sich so ein Branch-Mispredict auch aus, im Falle des A7 sind es 16 Takte, beim A6 waren es nur 14. Daher hat Apple auch zwei statt bisher eine Verzweigungseinheit vorgesehen. Auch die Zahl der Rechenwerke selbst (ALU) hat sich von zwei auf vier verdoppelt, und statt einer Load/Store-Einheit gibt es zwei.

In Verbindung mit den für eine ARM-CPU sehr großen Caches ergibt sich so eine sehr hohe Bandbreite innerhalb des Prozessors, die durch die hohe Parallelität auch nötig ist. Das erinnert stark an Intels Entwicklungen, die vom ersten Core bis zum Core-i-4000 ebenfalls beide Wege verfolgten: mehr Bandbreite durch große Caches - und inzwischen seit Sandy Bridge (Core-i-2000) auch ein L3-Cache - sowie stärkere Parallelität in den Kernen selbst.

Auf die 64-Bit-Eignung geht Anand Lal Shimpis Analyse kaum ein, es liegt aber nahe, dass vor allem die großen Caches für den größeren 64-Bit-Code und ebenso wachsende Datentypen ausgelegt ist. Der Nachteil einer so komplexen CPU soll auch nicht verschwiegen werden: Wenn sie voll ausgelastet ist, benötigt sie viel Energie.

Das ist bei ARM-Designs durch die enge Verzahnung mit dem Betriebssystem aber weniger tragisch, weil die Kerne, Caches und Busse stets schnell in den Schlafmodus gehen können. Ein so stark multitaskendes Betriebssystem wie Windows sind weder Android noch iOS bisher, die Systeme achten stets auf schnelle Abarbeitung und Wiederherstellen der Schlafzustände.

Damit ist der A7 alias Cyclone wohl eines der modernsten ARM-Designs und nicht nur eine sehr kleine und sparsame Architektur wie Intels neuer Atom mit Silvermont-Kernen. Apple sprach bei der Vorstellung des A7 auch von "Desktop-class performance", was den seit Jahren immer wieder auftauchenden Gerüchten von Macs mit ARM-CPUs neue Nahrung geben dürfte. Bisher ist Apple aber noch ein treuer Intel-Kunde, seit jeher aber nur für die großen Core-CPUs - die Atoms hat Apple noch nie verbaut.  (nie)


Verwandte Artikel:
Universal Apps: Apple will iOS- und Mac-Anwendungen vereinheitlichen   
(21.12.2017, https://glm.io/131792 )
Sprungvorhersage: Apples A7 soll Patent von US-Universität verletzen   
(04.02.2014, https://glm.io/104349 )
SoC A8: Samsung soll Apple-Chipproduktion an TSMC verloren haben   
(18.02.2014, https://glm.io/104624 )
Mobile Games: Apple setzt Gewinnwahrscheinlichkeit bei Lootboxen durch   
(09.03.2018, https://glm.io/133254 )
ARM-SoC-Hersteller: Qualcomm darf NXP übernehmen   
(19.01.2018, https://glm.io/132261 )

© 1997–2019 Golem.de, https://www.golem.de/