Arkitekturen Zen 3

Avtäckandet av Ryzen 5000-processorerna kom med stora löften om prestandamässiga framsteg. De förhållandevis stora framstegen kommer i att arkitekturen Zen 3 är ett större steg än vad föregångaren bjöd på, sett till både arkitektonisk utveckling och upplägget för processorernas interna struktur. På en övergripande nivå syns dessa förändringar först i upplägget för kärnor och hur de kommunicerar med varandra.

Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-18.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-3.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-4.jpg

CCD – kärnor flyttar ihop med L3-cache

Med Zen 2 introducerade AMD chiplet-strukturen, där fyra kärnor huserar i ett kärnkluster (CCX) och två sådana kluster kan monteras i en processorkrets (CCD) för totalt åtta kärnor. Både processorkretsar och kärnkluster kommunicerar med varandra via en separat I/O-krets (cIOD), och denna ansvarar också för att låta olika CCD-kretsar kommunicera med varandra. En Zen 2-processors L3-cache delas också mellan CCX-kluster, och en processor med 32 MB L3-cache delas därmed upp i 16 MB per CCX-kluster.

Med Zen 3 behåller AMD samma upplägg med CCD-kretsar som huserar kärnor och separat I/O-krets (cDIO) för kommunikation mellan CCD-kretsar och resten av systemet. Den stora skillnaden är att alla kärnor i en CCD nu monteras tillsammans, och delar nu på samma L3-cache. Det innebär att alla kärnor kan kommunicera med hela mängden cache, och undviker därmed de prestandamässiga straff som inträffar när en kärna från ett CCX-kluster inte har tillgång till cachedata från ett annat kluster.

Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-19.jpg
Ryzen5000_RobertHallock_Zen3.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-23.jpg

Utöver att latenser för cacheåtkomst sänks medger det nya upplägget också sänkta latenser mellan kärnorna. Med Zen 2 måste en kärna i ett CCX-kluster lämna CCD-kretsen och kommunicera med I/O-kretsen för att i sin tur kunna kommunicera med en kärna i det andra CCX-klustret. I applikationer som frekvent ställer krav på kommunikation mellan de olika kärnorna leder detta till en hög nivå av latens, något som bland annat påverkar prestanda i datorspel.

AMD anger just vinster för spelande med det nya upplägget, där spel flitigt fyller L2-cache varpå data som inte får plats flyttas över till L3. Problemet växer ytterligare med processorer som hyser flera CCD-kretsar, då latens- och cache-problemet där gäller både inom CCD-kretsarna och mellan dessa via den separata I/O-kretsen. När Zen 3 tillämpas i processorer med 16-, 32- eller 64 kärnor minskas alltså de totala latensnivåerna och cache-straffen genom att de individuella CCD-kretsarna med åtta kärnor vardera kommunicerar mer effektivt internt.

En genomgående renovering

En förändrad struktur utgör dock inte de enda förändringarna i Zen 3. Faktum är att arkitekturen har breddats och optimerats på en mängd olika plan, där AMD själva kategoriserar dessa som "Front-end", "Execution" och "Load/Store". Med front-end avses den del av processorn som hämtar data från cache eller primärminne och förbereder denna för exekvering. Här har AMD bland annat dubblerat processorns L1-cache för förutsägelse av vilket mål en instruktion har (L1 BTB), vilken stiger från 512 poster till 1 024.

Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-5.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-6.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-7.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-8.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-10.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-12.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-31.jpg

Vidare finlir med Zen 3 innefattar att processorns exekvering av instruktioner återhämtar sig snabbare när förgreningar i exekveringen (branch prediction) beräknas fel. Bandbredden för just dessa branch prediction-beräkningar har också ökats. Att kunna utföra fler spekulativa beräkningar där färre av dessa spås fel låter Zen 3 öka utföra mer arbete per klockcykel, och är en del av den den IPC-ökning om 19 procent AMD anger.

Sett till själva exekveringen av instruktioner, den tidigare nämnda "Execution"-delen av de tre stora framstegen i Zen 3, har AMD breddat kapaciteten för beräkningar av både flyttal (floating-point, FP) och heltal (integer, INT). Sett till heltal kan schemaläggaren nu hantera 96 poster vid exekvering, upp från 92 i Zen 2. Registerfilen som temporärt lagrar heltalsvärden har också ökat från 180 till 192 poster. Antalet heltal som kan beräknas per klockcykel ökar också från 7 till 10, och sorteringskapacitet (ROB) ökar från 224 till 256.

Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-13.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-14.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-15.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-17.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-16.jpg

Breddningen av kapaciteten i Zen 3 fortsätter med beräkning av flyttal, där registerstorleken ökar från 192 poster i Zen 2 till 256 i Zen 3. Det kombineras med en större schemaläggare, högre bandbredd för exekvering av flyttal och snabbare matematiska beräkningar av avrundningar (FMAC). Registerfiler för både heltal och flyttal placerar schemalagda poster i Load/Store-köer, och kapaciteten i dessa har vuxit från 48 poster i Zen 2 till 64 i Zen 3.

Individuellt kan dessa förbättringar te sig relativt små, men sammantaget bidrar de till att ge Zen 3 avsevärt mer effektiv exekvering. Högre IPC och sänkta latenser mellan kärnor och L3-cache gör tillsammans med arkitektoniska optimeringar Zen 3 bättre lämpad för tillämpningar som fokuserar på prestanda per kärna, som exempelvis spel.

Optimerade energilägen och överklockning

Med Ryzen 2000-serien (med arkitekturen Zen+, reds. anm) introducerade AMD tekniken Precision Boost 2, vilken fortsatt används med Zen 3. Sammanfattat handlar det om en teknik där kärnornas klockfrekvenser justeras dynamiskt efter belastning, hur många kärnor som belastas och vilka av dessa som är bäst lämpade för högsta möjliga boostfrekvenser.

Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-42.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-41.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-37.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-39.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-38.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-40.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-43.jpg

Den del i detta är att processorn dynamiskt växlar mellan olika strömprofiler beroende på arbetsuppgiften. När datorn står inaktiv kan processorn växla mellan 0,9 och 1,2 volt, för att sedan växla upp till mellan 1 och 1,5 volt vid datorspelande. När maximal boostfrekvens sätter enskilda kärnor under tung belastning kan en strömprofil om 1,4 till 1,5 volt tillämpas, vilket sjunker till 1,35 när flertrådade kreativa sysslor står på agendan.

Enligt AMD:s uppgifter gör Zen 3-processorer stickprov för så kallad Voltage Identification (VID) avsevärt oftare än vad operativsystemet gör, och kan därför finjustera betydligt mer finmaskigt. Företaget anger att dagens operativsystem som mest gör stickprov i intervall om 250 millisekunder, något strömbalanseringen i Zen 3 gör med 1 millisekunds intervall. Det innebär att processorn mycket snabbare kan växla mellan högsta tillgängliga klockfrekvens och viloläge, något som optimerar både prestanda och värmeutveckling.

AMD lyfter också fram att energinivåerna i Zen 3 och mjukvaran Ryzen Master använder sig av ett system för mätning av kärnornas strömnivå vid namn Average Core Voltage (AVC). Mjukvaruverktyg som CPU-Z och liknande lösningar läser av processorns VID-nivå, vilken typiskt representerar den högsta strömnivån som krävs för processorns kärnor under tidsrymden där mätningen görs.

Med en flerkärnig Ryzen 5000-processor blir detta missvisande, då ett flertal kärnor kan befinna sig i lågenergiläge (p1 pState) eller till och med i viloläge (C6 sleep). Med ACV-mätningen i Ryzen Master räknas en genomsnittlig strömnivå ut baserat både på belastade kärnor och de som befinner sig i viloläge. Utvecklare kan använda ACV-systemet i egen mjukvara via utvecklarpaketet AMD Ryzen Master SDK.

Utökad även sett till säkerhet

Med tre generationer Ryzen har AMD gradvis ökat arkitekturernas kapacitet för säkerhet. Dessa egenskaper har blivit allt viktigare i takt med att både säkerhetsforskare och illasinnade grävt upp allt fler sårbarheter relaterade till spekulativ exekvering, och även angreppsformer som kringgår säkerhetsmekanismer i processorn.

Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-24.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-25.jpg
Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-26.jpg

Med Zen 2 introducerades stöd för funktionen GMET, där värdsystemet i en virtualiserad miljö kan stänga av gästsystems möjlighet att exekvera virtuellt minnesutrymme (guest pages). Nytt var också UMIP, en funktion som när den är aktiv gör det möjligt att förhindra användare som befinner sig över behörighetsnivå 0 att exekvera vissa instruktioner. Med Zen 3 utökas detta till att även förhindra de idag allt vanligare ROP-angreppen.

ROP står för Return-oriented Programming, en typ av attacker där angriparen kringgår säkerhetsmekanismer för att exekvera maskinkod. Angriparen tar här kontroll över processorns call stack, en datastruktur som lagrar information om aktiva subrutiner. Den kapade call stack-strukturen används sedan för att exekvera maskinkod som redan finns tillgänglig i datorns minne.

Åtgärder för denna sortens attacker implementeras i form av så kallade "shadow stacks", vilket som namnet antyder handlar om en sekundär struktur som speglar programmets call stack. När data ska returneras jämförs returadressen från både call stack-strukturen och dess shadow stack. Om returadressen i den primära stacken inte matchar dess skuggvariant noteras en attack, och den begärda exekveringen nekas.

Med Zen 3 motar AMD dessa ROP-attacker genom kontroll av exekveringsflödet, eller Control-flow Enforcement Technology (CET). Här tillämpas tidigare nämnda shadow stack-teknik och exekveringsprocessen kapas och återställs när en ROP-attack upptäcks. Intel introducerade CET 3.0 i och med lanseringen av processorerna i "Tiger Lake"-familjen, och stöd för tekniken finns på plats i Windows 10 version 2004.

Temperaturer, kylare och överklockning

Med dokumentationen för Ryzen 5000-serien anger AMD också temperaturer för processorerna i standardutförande (stock), och vilka nivåer som kan väntas med olika nivåer av kylarlösningar. För modeller med TDP-nivå om 65 watt kan användaren vänta sig temperaturer om 95 grader Celcius, medan TDP-nivån 105 watt ger temperatur om 90 grader Celcius.

Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-36.jpg

Med en kylarlösning i instegsklassen, vilket innefattar en kompakt luftkylare som utformats för att täcka in TDP-nivån, väntas temperaturer om 80 till 95 grader Celcius vid full belastning. Med en kylare i mellanklassen, vilket innefattar en tornkylare eller slutna AIO-kylare, väntas ge temperaturer om 70 till 85 grader under belastning. Kylare i den här klassen anses vara överdimensionerade, vilket ska låta dessa arbeta vid lägre varvtal och därmed lägre ljudnivåer.

Med kylarlösningar i den absoluta toppklassen, där varianter med dubbla tornkylare eller AIO-lösningar med radiator på 240 mm eller högre ingår, väntas temperaturer istället ligga på 60 till 80 grader Celsius vid full belastning. Här är kapaciteten för kylning väl över vad processorerna kräver vilket ska ge ytterligare möjligheter till sänkta ljudnivåer.

Ryzen 5000 Series Tech Day - Zen 3 Architecture - Deep Dive-35.jpg

Som avslöjats på förhand höjer AMD också standardnivån för minnesöverklockning med Zen 3 och Ryzen 5000-serien. Precis som tidigare generationer Zen används här ett upplägg med tre klockhastigheter som är direkt beroende av varandra, närmare bestämt Infinity Fabric Clock (fclk), minneskontrollerns hastighet (uclk) och minnesfrekvensen (mclk). Samtliga tre nivåer är beroende av varandra i ett 1:1:1-förhållande, vilket bestäms av minneshastigheten.

Användare har tidigare kunnat överklocka primärminnet genom att justera en rad parametrar, men för Ryzen 3000-serien och Zen 2 låg den optimala klockfrekvensen på 3 800 MHz i form av DDR4-3800. Med Ryzen 5000 tar detta steget upp och den som vill överklocka minnet utan att ta till allt för avancerade manövrar ska istället kunna ta steget upp till DDR4-4000 utan att stöta på patrull.