De Zen-architectuur
De Zen architectuur is zoals geschreven geen derivaat van Bulldozer, maar een zogeheten clean sheet ontwerp. Zoals AMD’s CTO Mark Papermaster het augustus vorig jaar omschreef: “Uiteraard hebben we al onze kennis en ervaring die we hebben opgedaan bij eerdere architecturen meegenomen, maar alle onderdelen van de chip zijn geheel opnieuw ontworpen.”
AMD’s doelstelling bij de ontwikkeling van Zen was een gebalanceerde architectuur die gebruikt kan worden in chips voor laptops, desktops en servers. Niet alleen op het vlak van ruwe prestaties, maar ook op het vlak van efficiëntie had AMD zich tot doel gesteld flinke stappen te maken. De doelstellingen maakte AMD vorig jaar tijdens diverse presentaties een stuk concreter: Zen CPU-cores zouden op de zelfde klokfrequentie minstens 40% sneller moeten zijn dan AMD’s huidige CPU-cores (codenaam Excavator), met een gelijkblijvend energieverbruik. Dat zijn geen misselijke beloftes.
Kijken we naar een high-level blokkenschema van de Zen core, dan zien we een duidelijk andere opbouw dan bij Bulldozer en de afgeleiden daarvan. Bij Bulldozer maakte AMD de achteraf onverstandige beslissing om te werken met een soort hybride single/dual-core modules met twee integer cores en één gedeelde floating point core. Zen is in principe een conventioneler ontwerp, maar wel een stuk breder en geavanceerder. Iedere Zen-core bevat zes integer rekeneenheden, waarvan vier geschikt voor berekeningen (ALU’s) en twee voor geheugenoperaties (AGU’s). Het floating point gedeelte heeft een viertal execution units, twee geschikt voor optellingen en twee voor vermenigvuldigen. De Zen floating point unit is geschikt voor alle SSE-varianten en 128-bit AVX. In vergelijking met de meest recente Bulldozer-afgeleide, Excavator, is het aantal execution units en het aantal instructies en de breedte van de pipeline met 50% toegenomen. Het aantal instructies dat tegelijkertijd door de pipeline verwerkt kan worden, is zelfs met 75% toegenomen.
Ook in de front-end van de CPU zien we flink verbeteringen. Volgens AMD is de branch predictor, het onderdeel dat inschat welke vertakkingen in code worden genomen, om op die manier voldoende instructies parallel te kunnen uitvoeren, flink verbeterd. Ook heeft de nieuwe architectuur net als we kennen van Intel een micro-op cache. Die maakt het mogelijk om, wanneer de complexe x86-instructies worden vertaald naar kleinere micro-ops die daadwerkelijk door de execution units uitgevoerd kunnen worden, deze vertalingen te cachen, zodat code met veel identieke instructies wordt versneld.
Ook op het vlak van de andere caches zijn er flinke verbeteringen gemaakt. Allereerst heeft AMD de data prefetchers naar eigen zeggen flink verbeterd. Deze voorspellen welke data op korte termijn door instructies benodigd is en haalt die al op uit het relatief langzame RAM-geheugen. Hoe beter de prefetchers, hoe minder vaak de CPU-cores zonder werk zitten omdat ze moeten wachten op data. Zoals gebruikelijk binnen x86-processors bevatten de Zen cores losse L1-caches voor instructies en data met een extreem lage latency. De L2-cache is geschikt voor beide soorten data. De eerste Zen-varianten krijgen verder 8MB gedeelde L3-caches. Opvallend is de grootte van de L2-cache: 512 kB per core, dubbel zoveel als bij Intels recente architecturen. De combinatie van alle verbeteringen aan de caches moet er voor zorgen dat de bandbreedte richting de cores gemiddeld zo’n 5x hoger is dan voorheen.
Om bottlenecks in de cores te beperken zijn vrijwel alle interne communicatiekanalen en queues breder of langer gemaakt. Zo kunnen er nu bijvoorbeeld 84 integer- en 96 floating point-instructies tegelijkertijd ingepland zijn. Dat waren er 48, respectievelijk 60 bij de vorige generatie. Ook de queues voor het opvragen van data uit cache of geheugen zijn flink vergroot.
6 besproken producten
Vergelijk | Product | Prijs | |
---|---|---|---|
![]() |
AMD Ryzen 7 1700 Boxed
|
Niet verkrijgbaar | |
![]() |
AMD Ryzen 7 1700 Tray
|
Niet verkrijgbaar | |
![]() |
AMD Ryzen 7 1700X Boxed
|
Niet verkrijgbaar | |
![]() |
AMD Ryzen 7 1700X Tray
|
Niet verkrijgbaar | |
![]() |
AMD Ryzen 7 1800X Boxed
|
Niet verkrijgbaar | |
![]() |
AMD Ryzen 7 1800X Tray
|
Niet verkrijgbaar |