Im iPhone 7 wurde erstmals ein SoC mit vier CPUs verbaut, die sich an den im Android-Umfeld seit 2014 bekannten Big.LITTLE-Ansatz von ARM orientieren. Das Gerät gibt es noch nicht, es wurden jedoch schon z.T. unsinnige Gerüchte verbreitet. Wir haben uns mit den Top-3 auseinandergesetzt.
Gerücht 1: Der A10 wird bei TSMC in einem 10-nm-Prozess gefertigt
Tatsächlich wird das iPhone-7-SoC laut Apple statt 2 Mrd. (Apple A9) nunmehr 3,3 Mrd. Transistoren enthalten. Der A9 weist in TSMCs 16-nm-FF+-Prozess eine Siliziumfläche von 104 mm2 auf (in Samsungs 14-nm-FF-Prozess nur 96 mm2), so daß die Fläche in identischer Fertigung den bisherigen Rekordhalter, den in 45 nm gefertigten Apple A5X aus dem iPad der 3. Generation und seine 165 mm2 sogar noch leicht übertreffen könnte. Technisch ist dies überhaupt kein Problem, Intels Xeon-Serverprozessor der Haswell-Generation bringt z.B. seine 5,69 Mrd. Transistoren auf 662 mm2 Silizium unter.
Fakt ist: TSMC ist von einer 10-nm-Massenfertigung noch so weit weg wie der FC Bayern von einem Abstieg in Liga 2.
Gerücht 2: Der A10 adaptierte ARMs Big.LITTLE-Architektur
Richtig ist, es wird erstmals in einem iPhone eine Quadcore-CPU-Architektur mit 2 „großen“ und 2 „kleinen“ Energiespar-CPUs geben, denen die Workloads je nach CPU-Belastung zugeteilt werden. Es handelt sich jedoch keineswegs um ARMs Big.LITTLE-Implementierung, da es signifikante Unterschied gibt:
a) ARMs Urkonzept basierte auf einer durch das Betriebssystem gesteuerten Umschaltung zwischen dem Big- und dem LITTLE-Cluster mit entsprechenden Latenzzeiten. Apple hat für die Umschaltung einen eigenen Hardware-Block designt, der die CPU-Cluster transparent für die Anwendung vornimmt. Tatsächlich sieht eine iOS-App nach wie vor nur 2 CPUs ohne zu wissen, auf welchem Cluster sie gerade läuft.
b) Neue im Android-Umfeld angewendete Verfahren haben Big.LITTLE soweit aufgebohrt, daß nun beliebige CPU-Konfigurationen gebildet werden können, z.B. bei 4 Big- und 4 LITTLE-CPUs können parallel 1-4 Big- und 1-4 LITTLE-CPUs in fast jeder Kombination aktiviert werden. Urheber dieser Konzepterweiterung war Samsung. Auch hier spielt für die Aktivierung/Deaktivierung von CPU-Clustern bzw. einzelnen CPUs das Betriebssystem eine wichtige Rolle.
Gerücht 3: Die Mikroarchitektur der A9-CPUs wurde nicht verändert
Viele Kollegen sind offenbar der Meinung, daß die „Twister“ genannte ARMv8-kompatible Mikroarchitektur vom Apple A9 nicht verändert wurde, sondern der Rechenleistungsgewinn (laut Apple 40 %) ausschließlich über eine höhere Taktfrequenz erzielt würde. Bei 1,85 GHz im A9 müssten die A10-CPUs somit rechnerisch mit fast 2,6 GHz getaktet werden.
Auch wenn man sich durch die neue Quad-Core-Architektur eine vor allen Dingen eine thermische Entlastung des SoCs vorstellen kann (das Grundproblem ist keineswegs wie immer behauptet die Batterielaufzeit, sondern die Wärmeabführung von dem Silizium-Plättchen bei maximaler Taktfrequenz), ist eine Anhebung auf maximal 2 GHz realistisch – der Rest kommt von einer weiter verbesserten Mikroarchitektur mit der Bezeichnung „Hurricane“. Wir vermuten, daß an den üblichen Stellschrauben der CPU-Architektur (die Tabelle zeigt die Verbesserungen von „Twister“ gegenüber „Swift“ (A6), „Cyclone“ (A7) und „Typhoon“ aus dem Apple-A8) weitergedreht wurde und auch die Speicher-Latenzen weiter reduziert werden konnten.
Apple A6 | Apple A7 | Apple A8 | Apple A9 | |
---|---|---|---|---|
CPU Codename | Swift | Cyclone | Typhoon | Twister |
Befehlssatz | ATMv7-A 32 bit | ARMv8-A 64 bit | ARMv8-A 64 bit | ARMv8-A 64 bit |
Befehlsdekoder | 3 | 6 | 6 | 6 |
Ausführungseinheiten für | ||||
ALU | 2 | 4 | 4 | 4 |
Laden/Speichern | 1 | 2 | 2 | 2 |
Verzweigung | 1 | 1 | 1 | 1 |
Indirekte Sprünge | 0 | 1 | 1 | 1 |
Gleitkomma/NEON | 1 | 3 (Addieren, 2 für Multiplikationen) | 3 (Addieren, 2 für Multiplikationen) | 3 (Addieren und Multiplizieren) |
L1-Cache (KB Befehle/Daten) | 32/32 | 64/64 | 64/64 | 64/64 |
L2-Cache (MB) | 1 | 1 | 1 | 3 |
L3-Cache (MB) | - | 4 | 4 | 4 |
Zusätzliche Taktzyklen bei Sprungfehlvorhersage | 14 | 14 (14 Minimum, bis 19 möglich) | 14 (14 Minimum, bis 19 möglich) | 9 |
Latenzzeiten Integer (Add/Mul) | ? | ? | 1/3 | 1/3 |
Latenzzeiten Gleitkomma (Add FP32/Mul FP32) | ? | ? | 4/5 | 3/4 |