AMD Zen CPU preview: "net zo snel als Broadwell-E"

201 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. De Zen architectuur
  3. 3. 14nm: zelfde productieprocedé als Polaris
  4. 4. De belofte: 40% betere IPC
  5. 5. De eerste Zen-CPU: 8-core Summit Ridge voor desktops vergeleken met Broadwell-E
  6. 6. 32-core Napels server-chip ook gedemonstreerd
  7. 7. Wanneer op de markt?
  8. 201 reacties

De Zen architectuur

De Zen architectuur is dus van de grond af aan opnieuw ontwikkeld. “Uiteraard hebben we al onze kennis en ervaring die we hebben opgedaan bij eerdere architecturen meegenomen,” aldus CTO Mark Papermaster in een interview dat we na de presentatie hadden, “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 binnen 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. En dat is naar eigen zeggen goed gelukt.

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 meer traditioneel ontwerp, maar wel een stuk breder en geavanceerder. Iedere Zen-core bevat een zestal 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.

Maar ook in de front-end van de CPU zien we flink verbeteringen. Volgens AMD is de branch predictor, het onderdeel van de CPU dat vooraf 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. Dat maakt dat wanneer de complexe x86-instructies worden vertaald naar kleinere micro-ops die daadwerkelijk door de execution units uitgevoerd kunnen worden, deze vertalingen worden gecached, zodat code met veel identieke instructies wordt versneld. Al met al zou de opbouw volgens AMD ook juist single-threaded applicaties moeten versnellen, een tak van sport waar de huidige AMD architectuur juist niet goed in is.

Ook op het vlak van caches zijn er flinke verbeteringen gemaakt. Allereerst heeft AMD de data pre-fetchers 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 pre-fetchers, 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.

Zen is AMD’s eerste processorarchitectuur die geschikt is voor simultaneous multi-threading, een technologie die we bij Intel kennen als HyperThreading. Deze technologie zorgt ervoor dat een enkele CPU-core tegelijkertijd instructies van twee programma’s of programmathreads kan uitvoeren. Zoals we weten van HyperThreading kan dit de prestaties van een CPU flink verbeteren, aangezien de kans dat er voldoende variatie aan instructies is om zoveel mogelijk execution units bezig te houden bij het verwerken van twee threads natuurlijk groter is. Een 8-core Zen CPU is binnen een besturingssysteem als Windows dus een 16-core processor. Om SMT op een goede manier te implementeren hebben de Zen-cores een dubbele set registers voor twee threads, waarna vanaf de scheduler instructies voor twee threads gecombineerd worden.

0
*