Windows-optimeringar och säkerhet för Zen 2

År 2018 inleddes av säkerhetshålen Meltdown och Spectre, där framförallt Intel drabbades hårt. Alla moderna processorer använder spekulativ exekvering för att nå högre prestanda och det var detta som kunde nyttjas med Meltdown, Spectre och många av de säkerhetshål som följde i samma fotspår.

Lösningen för Intel blev att täppa till dessa genom BIOS/UEFI-uppdateringar och i operativsystem, men mycket behövde täppas igen på hårdvarunivå. Resultatet av allt detta har blivit prestandaförluster. AMD:s processorer var inte alls lika illa drabbade, men var ändå i viss grad exponerade mot vissa av säkerhetshålen. Det värsta gick dock att täppa till genom BIOS/UEFI och mjukvara.

Mark_Papermaster-Next_Horizon_Gaming-Architecture_06092019-14.jpg

Under hela tiden har AMD valt att uttala sig försiktigt och inte använda detta mot Intel, då de inte kan vara helt säkra att bolagets Zen-arkitekturer inte är påverkade. Med Zen 2 har de i alla fall täppt till de kända bristerna på hårdvarunivå och lovar samtidigt att de följer utvecklingen noga.

Optimeringar för Windows

När Ryzen 1000-serien först lanserades rapporterades det om att schemaläggaren i Windows inte var optimerad för AMD:s design, något bolaget då gjorde gällande var felaktigt. Sedan dess har AMD och Microsoft ändå arbetat på att optimera schemaläggaren för Zen-arkitekturen.

Nyligen släppte Microsoft en ny uppdatering för Windows 10 med två funktioner ämnade att ge högre prestanda för AMD-processorer. Den ena gäller såväl Zen som Zen+ och Zen 2, medan den andra endast gäller den sistnämnda.

David_McAfee-Next_Horizon_Gaming-3rd_Gen_Ryzen_06092019-8.jpg

Den första som gäller samtliga iterationer av Zen är Topology Awareness, som fyller ett Core Complex-kluster (CCX) om fyra kärnor innan den börjar på nästa. Varje gång en kärna i ett CCX måste kommunicera med en kärna i en annan CCX ger det ett påslag i latenser och lägre prestanda, något det här ska avhjälpa.

Med tidigare designer från AMD och dagens Intel-processorer har det varit till fördel att använda kärnor som är så långt ifrån varandra som möjligt fysiskt. Det här gör att värmen sprids ut, vilket gör processorn lättare att kyla samtidigt som varje individuell kärna får större möjligheter att automatiskt kliva upp i frekvens via turbofunktioner.

AMD erkänner att det här är en nackdel, men ser trots eventuella förluster i klockfrekvens att det här ger bättre prestanda överlag. AMD lyfter gärna fram spel som exempel, där framförallt lätt trådade speltitlar har mycket att tjäna på att så mycket arbete som möjligt samlas i så få CCX-kluster som möjligt.

David_McAfee-Next_Horizon_Gaming-3rd_Gen_Ryzen_06092019-9.jpg

Den andra nyheten kallas Collaborative Power Performance Control 2, eller kort CPPC2, och är en ny funktion i Zen 2. Tekniken är samma sak som Speed Shift, vilken Intel introducerade med Skylake och som aktiverades i Windows först några månader senare.

Som dynamiska klockfrekvenser fungerat historiskt har operativsystemet till stor del bestämt. När mjukvaran är i behov av högre prestandan har operativsystemet skickat en förfrågan till processorn om högre klockfrekvens. Det här kallas för en Performance State (P-State). Först därefter justeras klockfrekvensen baserat på om det går inom ramarna för spänning, temperaturgränser och strömbudget.

Nackdelen med att låta operativsystemet styra är att det tar lång tid att gå från en frekvens till en annan, med Zen och Zen+ omkring 30 millisekunder. Med CPPC2 och Speed Shift lämnar operativsystemet över kontrollen till processorn, som då kan reglera sin klockfrekvens på endast 1–2 millisekunder.

Att snabbare växla mellan klockfrekvenser ger inget större utslag i exempelvis flertrådade prestandatester, som belastar många kärnor kontinuerligt under längre tid. Större skillnader märks i mer vardaglig belastning, exempelvis när en applikation ska öppnas eller när mjukvaran plötsligt och i kortare stötar vill ha mer prestanda (högre klockfrekvens).