Mit dem Cortex-A77 hat ARM einen CPU-Kern für das 7-nm-Verfahren entwickelt, der teils ein Drittel flotter ist als der Cortex-A76. Ein Fünftel davon macht die IPC aus, denn der Kern wurde deutlich breiter als bisher.
Während 2019 für AMD und Intel das Jahr der neuen CPU-Architekturen ist, hat ARM mit dem Cortex-A77 ein Design entworfen, was auf dem Cortex-A76 genannten Vorgänger basiert. Ungeachtet dessen oder - besser gesagt - gerade deswegen konnte der britische Entwickler die Leistung pro Takt (IPC) laut eigener Aussage signifikant steigern, hinzu kommen Geschwindigkeitszuwächse durch die aktuelle 7-nm-EUV-Fertigung.
Intern wird der Cortex-A77 als Deimos bezeichnet, einer von zwei Begleitern des Kriegsgottes Ares in der griechischen Mythologie. Der neue CPU-Kern entstand wie sein Vorgänger bei ARMs Design-Team im texanischen Austin, der Cortex-A73 und der Cortex-A75 hingegen wurden im französischen Sophia entworfen. Ein weiteres Team sitzt im britischen Cambridge, von dort kommen der Cortex-A53 und der Cortex-A55, also die Little-Cores. Künftig soll auch in Chandler im US-Bundesstaat Arizona eine Gruppe an Designs arbeiten.
Mit dem Cortex-A76 hatte das Austin-Team eine neue Basis geschaffen, der CPU-Kern war ARMs eigenen Messungen zufolge rund 35 Prozent schneller als der Cortex-A75; allerdings mit 7-nm- statt 10-nm-Technik und daher 3 GHz statt 2,8 GHz. Für den Cortex-A77 nennt ARM ein Leistungsplus von 20 Prozent bei demselben Herstellungsverfahren und identischer Frequenz. Die Eckdaten bleiben gleich: Auch der Deimos-Kern hat wieder 64 KByte L1-Instruktionen- und 64 KByte L1-Daten-Cache, der L2-Pufffer fasst 256 KByte oder 512 KByte und der L3-Cache kann je nach Implementierung von 512 KByte bis 4 MByte aufnehmen. Hier entscheidet der Partner, welche Performance pro mm² gewollt ist. Generell soll ein der Cortex-A77 inklusive L2-Cache rund 17 Prozent größer sein als der Cortex-A76.
ARM sieht den Cortex-A77 dabei erneut als Quadcore-Block im Verbund mit vier Cortex-A55, weil ein Octacore noch immer den Sweet Spot bilden würden. Stattdessen erwarten die Briten eher Umsetzungen wie den Prime-Core bei Qualcomm, denn deren Kryo 485 im Snapdragon 855 ist ein modifizierter Cortex-A76. Anders als die drei Gold-Kerne mit 2,42 GHz und 256 KByte L2-Cache taktet der Prime-Core mit bis zu 2,8 GHz und hat 512 KByte Puffer. Er wird vor allem zum Laden von Apps oder Webseiten verwendet. Für Varianten des Cortex-A77 erwartet ARM ähnliche Frequenzen, deutlich über 3 GHz dürften daher höchst selten sein und wenn, dann nur als sehr kurzer Boost-Takt.
Zusammengefasst hat ARM beim Cortex-A77 verglichen zum Cortex-A76 das Frontend unter anderem für mehr Bandbreite überarbeitet und einen L0-Puffer für bereits dekodierte Instruktionen integriert, der Hersteller nennt dies Mop-Cache. Im Backend wurden zwei weitere Funktionseinheiten hinzugefügt, die von einem breiteren Dispatcher mit Daten beliefert werden. So will ARM die Leistung pro Takt um 20 Prozent gesteigert haben und vergleicht die IPC des Cortex-A77 mit der eines Coffee-Lake-Designs von Intel. Deren aktuelle Implementierung für Ultrabooks mit 5 Watt heißt Amber Lake Y und schafft für wenige Sekunden bis zu 4,2 GHz - der Basistakt liegt allerdings bei nur 1,5 GHz.
Im Frontend hat ARM die Sprungvorhersage (Branch Prediction) so überarbeitet, dass sie mit 64 Bytes pro Takt doppelt so viele Daten erhalten kann. Zudem soll sie genauer geworden sein, was L1-Cache-Misses reduziert. Die kosten ansonsten unnötig Zeit und Energie, weshalb alle modernen Achitekturen mit solch einer spekulativen Ausführung arbeiten. Für Seitenkanal-Angriffe soll das Cortex-A77-Design allerdings nicht anfällig sein. Passend zur Sprungvorhersage fasst der Main-BTB (Branch Target Buffer) nun 8.000 Einträge und somit ein Drittel mehr als beim Cortex-A76.
Erstmals ein µOp-Cache
Ganz neu ist der Macro-Op-Puffer, welcher 1.500 bereits dekodierte Instruktionen aufnimmt. Laut ARM ist diese Menge nahe am Sweet Spot aus Platzbedarf und Performance, generell soll der Mop-Cache etwa die Hälfte der Fläche eines 64 KByte großen L1-Caches belegen. Anders als ein komplexerer Trace-Cache wie bei Intels Netburst ist er zwar einfacher zu implementieren, jedoch alles andere als trivial. Intel führte einen µOp-Cache bereits Anfang 2011 mit Sandy Bridge ein, primär um im Frontend wertvolle Energie zu sparen. Bei einem RISC-Kern wie dem Cortex-A77 nimmt dieses weniger Leistung auf, weshalb ARM den Mop-Cache mehr für die Geschwindigkeit eingebaut hat.
Er kann sechs Mops pro Takt erhalten und verkürzt bei einem falschen Sprung die Latenz im besten Fall auf zehn Taktzyklen. In 85 Prozent der Fälle müssen Instruktionen nicht neu dekodiert werden, sondern können vom Mop-Cache direkt über die Reorder/Dispatch-Stufe an das Backend mit den Ausführungseinheiten geleitet werden. Zum Vergleich: Intel nannte für x86-Instruktionen eine Trefferquote von 80 Prozent für den µOp-Cache von Sandy Bridge, womit die Hitrate nahe an dem liegt, was ARM angibt.
Die Decode-Stufe schafft nun sechs statt vier Instruktionen und das Out-of-Order-Fenster wächst um ein Viertel auf 160 Einträge. So steigt die Instruction-level Parallelism (ILP), was für mehr Durchsatz vom Frontend zum Backend hin sorgt. ARM spricht hier wie viele andere Hersteller von 'feeding the beast', denn auch die Dispatch-Stufe fällt mit zehn statt acht Micro-Ops pro Takt breiter aus als bisher. Designs wie Samungs M3-Core nutzten allerdings schon 2018 einen Decoder für sechs Instruktionen und einen Dispatcher für sechs Micro-Ops. Die ARM-Kerne von Apple sind noch weiter ausgelegt, die Vortex-Cores des A12 dekodieren sieben Befehle und haben gleich 13 Ausführungseinheiten.
ARMs Cortex-A77 hingegen weist acht auf, was allerdings deutlich mehr sind als die sechs Ausführungseinheiten zuvor: Eine davon ist eine vierte ALU für einfache Integer-Berechnungen, sie ergänzt die beiden anderen simplen ALUs und die eine für komplexere Aufgaben wie Divisionen oder schnellere Multiplikationen. Damit die Balance stimmt, hat ARM neben der ALU eine zweite Branch-Unit hinzufügt. Die Store-Pipelines haben nun eigene Ports statt mit den AGUs geteilte für eine bessere Auslastung und ein größeres Puffer-Fenster.
Interessant ist noch, dass ARM eine zweite Pipeline für AES-Verschlüsselung integriert hat. Da Android hiervon Gebrauch macht, erwartet der Hersteller eine teils bessere gefühlte Geschwindigkeit, vor allem aber eine höhere Effizienz und somit tendenziell mehr Akkulaufzeit. Bei der generellen Performance fällt auf, dass die Floating-Point- stärker gestiegen ist als die Integer-Leistung, obgleich die 128 Bit breiten Neon-Gleitkomma-Einheiten nicht überarbeitet wurden. ARM zufolge liegt das am deutlich besseren Data-Prefetching.
Erste Systems-on-a-Chip mit dem Cortex-A77 erwarten wir noch 2019: Huawei dürfte das Design für den Kirin 985 verwenden, der sich wohl bei TSMC in der Fertigung im N7+ genannten Node befindet und zur Ifa im September angekündigt werden soll. Dieser nutzt extrem ultra-violette Strahlung für einige Schichten des SoC. Auch Qualcomm könnte zumindest einen modifizierten Cortex-A77 als Basis für die Kryo-Kerne eines kommenden Snapdragon-Chips verwenden, eine Vorstellung im Dezember wäre typisch.