c't 6/2017
S. 72
Know-how
AMD-Ryzen: Mikroarchitektur
Aufmacherbild

Von Grund auf neu

Die Zen-Mikroarchitektur von AMD

Make AMD great again, so das erklärte Ziel von AMD-Chefin Lisa Su – nachdem die CPU-Generation Bulldozer AMD an den Rand des Abgrunds brachte. Was bei Zen herausgekommen ist, beeindruckt.

Die Prozessor-Mikroarchitektur namens Zen, die im AMD Ryzen debütiert, soll AMD wieder in die Spur bringen – und die enttäuschende Bulldozer-Phase vergessen machen. Lisa Sus Vorgänger Rory Read hatte das Bulldozer-Desaster unumwunden zugegeben, bevor er das Handtuch schmiss: viel zu schwache Single-Thread-Leistung, schlechte Unterstützung von Gleitkomma- und SIMD-Berechnungen sowie ein Frontend, das mit zwei Kernen überfordert war. „Frontend Starvation“ hieß eines der Bulldozer-Menetekel: Die Recheneinheiten „verhungerten“ mangels Nachschub an Instruktionen. Überdies litt der L1-Instruktions-Cache, der nahezu unverändert vom K10 übernommen worden war, stark an sogenannten Alias-Problemen: Er kannte nur einen Herrn und war mit seiner bloß zweifachen Assoziativität ebenfalls ungenügend zur Bedienung zweier Kerne geeignet. Bei jüngeren Bulldozer-Generationen von Piledriver über Steamroller bis Excavator wurde zwar jedes Mal das missratene Frontend nachgebessert, aber der Single-Thread-Durchsatz gemessen in IPC (Befehle pro Takt) stieg nur verhalten an. Auch andere Elemente wie der L1-Datencache (L1D) mit Write-Through-Technik waren nicht mehr wirklich zeitgemäß.

Bei Zen sollte das alles anders werden. Er orientiert sich auch eher an Intels erfolgreichem Haswell als am verunglückten Bulldozer. „From scratch“, also von Grund auf neu soll Zen sein. Der von Apple abgeworbene alte Prozessorhase Jim Keller bekam ein gut ausgestattetes Budget und freie Hand. Keller hatte früher wie viele seiner Mitstreiter – unter anderem der jetzige Chefarchitekt Mike Clark – am erfolgreichen Hammer-Design „K8“ mitgewirkt. Damals geplante K8-Nachfolger wie Greyhound (K9) hatten schon so schöne Dinge, wie sie jetzt im Zen auftauchen, etwa Simultaneous Multi-Threading (SMT) oder einen Cache für dekodierte Micro-Operations (µOp-Cache). Seinerzeit machte jedoch das konservativste Design unter dem Namen K10 das Bulldozer-Rennen.