»Artemis« zu gut für Konkurrenz?: ARM Cortex-A73 toppt High-End-CPUs

In einem 10-nm-Prozess sollen ab 2017 erste SoCs mit ARMs neuer High-End-CPU Cortex-A73 von vermutlich Intel-Fabriken ausgeliefert werden. Für eine maximale Energieeffizienz wurde die Architektur des A72 an der einen oder anderen Stelle sogar zurückgebaut – mit bemerkenswerten Ergebnissen.

Abgespeckte Mikroarchitektur aus Frankreich

Bild 1: Die 11/12-stufige Pipeline des Cortex-A73.

Waren die Vorgänger Cortex-A72 wie auch A15 und A57 noch ein Design mit drei Befehlsdecodern und 15 Pipelinestufen, erinnert der Cortex-A73 eher an eine 64-bit-Version der 32-bit-CPU A17 (Bild 1). Die erste Stufe zum Laden der Befehle umfasst statt fünf nur noch vier Stufen, die Decodierstufe kann die meisten Instruktionen in nur einem Taktzyklus verarbeiten (statt in drei beim A72). Lediglich Gleitkomma-Mikrobefehle (µOps) durchlaufen eine zusätzliche Decodierstufe, sodass für diese Befehle die gesamte Pipeline zwölf Stufen lang ist.

Wie beim A17 können seitens der Reservation-Station der Gleitkomma-Pipeline zwei µOps in die Ausführungs-Warteschlange für die beiden NEON-Pipelines eingespeist werden, seitens der Integer-Reservation-Station verdoppelte sich diese Zahl jedoch auf vier µOps, wobei jede der drei Ausführungswarteschlangen mit bis zu zwei µOPs gefüttert werden kann.

Bild 2: Implementierung des Cortex-A73 auf Systemebene. Möglich sind Single-Core- bis Quad-Core-Konfigurationen.

Im Backend gibt es anders als beim A72, wo für Laden und Speichern separate Einheiten vorhanden waren, zwei Adress-Computation-Einheiten (ACU), die beide jeweils Laden und Speichern beherrschen. Dazu gibt es eine ALU, die neben den Basisoperationen wie Addieren, Subtrahieren und Bit-Verschiebeoperationen nur Multiplizieren kann, während eine zweite daneben nur dividieren kann. MAC-Operationen werden nicht mehr unterstützt, eine solche Instruktion benötigt die parallele Ausführung in beiden ALUs.

Bild 2 zeigt eine typische Quad-Core-Konfiguration auf Systemebene. Auffällig ist die optionale Vergrößerung des L2-Caches bis hin zu 8 MB (wie bei A17; A72: 4 MB), bekannt die Snoop-Kohärenz-Einheit (SCU) für Kohärenz zwischen den Cores und der z. B. für Netzwerk-Anwendungen wichtige optionale Accelerated-Kohärenz-Port (ACP) für die Anbindung von Hardware-Beschleunigern, die ebenfalls den L2-Cache nutzen wollen und Kohärenz zu den CPU-Cores benötigen. Der 4-Wege-assoziative L1-Cache beträgt für Befehle nunmehr 64 KB (optional 32/64 KB bei A17; 48 KB bei A72) und wurde von ARM weiter für maximalen Datendurchsatz und minimale Leistungsaufnahme optimiert. Wenn z. B. ein Zugriff erfolgt und die datenanfordernde Quelle die Daten nicht länger benötigt, kann der Zugriff on-the-fly abgebrochen werden. Alle vier Cores und der L2-Cache teilen sich Taktfrequenz und Versorgungsspannung, sie können aber individuell per Power-Gating abgeschaltet werden.