Cacheminne, hur påverkar det CPU- och GPU-prestanda? –

Den första PC-processorn med cacheminne var Intel 80486, sedan dess har vi sett hur alla processorer inkluderar cacheminne i en hierarki av flera nivåer, och inte bara när det gäller processorer, utan även GPU:er.

De grundläggande verktygen är kända för alla. För det första, att minska den enorma latensen mellan processorn och RAM, för det andra, strömförbrukningen för var och en av de olika instruktionerna, och för det tredje, att minska konflikter vid åtkomst till minne, vilket kan leda till en ökning av latensen, särskilt om vi pratar om flera kärnor åtkomst till samma minnesadress.

Det finns dock ett sätt att mäta cacheprestanda som tas med i beräkningen när man utvecklar nya processorer. Läs vidare för att ta reda på hur cache påverkar både CPU- och GPU-prestanda.

Cachesammanfattning

Cash primer nivel split

Först och främst måste vi komma ihåg att cachen inte är ett utrymme som adresseras av CPU eller GPU, när vi pratar om adresserbart utrymme menar vi att CPU eller GPU kan peka på en specifik minnesadress där nästa data eller instruktion är bearbetad… CPU:n kan alltså inte peka på cachen och kan därför inte kontrollera den.

Vi kan säga att cachningsmekanismerna fungerar automatiskt, och när CPU-kärnan söker efter vad den gör, letar den igenom de olika cacharna för att hitta specifik data. När kärnan gör ändringar uppdateras även alla kopior av denna data i andra cachar automatiskt. På samma sätt bestämmer cachningsmekanismerna själva vilka kopior av innehållet i RAM som lagras i cachen och vilka som inte är det.

Cachen lagrar kopior av minne som ligger närmast de kodrader som för närvarande exekveras. Detta beror på att koden mestadels är sekventiell, så i de flesta fall kommer nästa kodrad att bearbeta nästa.

Hur mäts cacheprestanda?

När en CPU eller GPU behöver komma åt data i minnet är det första de gör åtkomst till olika nivåer av den tidigare cachen. Så först kommer den att leta efter cachen på första nivån, om den inte hittar data, går den till nästa nivå och så vidare tills den hittar data den letar efter.

När datan inte är på cachenivån inträffar det vi kallar en “cachemiss”, och därför är det nödvändigt att flytta till nästa nivå i hierarkin. Detta lägger till extra tid när det gäller latens. Å andra sidan, om vi har

För att förstå detta, låt oss säga att vi har en CPU eller GPU med 3 nivåer av caching och vi hittar data på den tredje nivån. Sålunda kan söktiden i detta fall sammanfattas enligt följande:

Hittar cachad data tid = L1 cachesökningstid + L2 cacheövergångstid + L2 cachesökningstid + L3 cacheövergångsfördröjning + L3 cachesökningstid

Det bör noteras att om cacheuppslagstiden överskrider RAM-direktuppslagstiden, så kommer cachedesignen för den angivna processorn att vara dåligt implementerad, eftersom det inte är logiskt ur någon logisk synvinkel att det tar längre tid att slå upp data i cachen. än i minnet. Det är därför vi vanligtvis inte ser ytterligare nivåer av caching, eftersom de olika latensen som läggs till av varje nivå ökar åtkomsttiden till ännu större latens.

Mätning av AMAT

cache

AMAT står för Average Memory Access Time eller Average Memory Access Time. Detta är ett genomsnitt eftersom inte alla CPU- eller GPU-instruktioner har samma latens och är lika minnesberoende. Men samtidigt hjälper det oss att mäta prestanda för CPU- eller GPU-cacheminnet.

Följande formel används för att beräkna AMAT för valfri CPU eller GPU:

AMAT = Dags att slå + Chans för missar * Straff för miss

Vi är intresserade av den låga nivån av AMAT, eftersom den mäter CPU-åtkomsttiden till data och därför latensen när man letar efter data. När det gäller de olika värdena för AMAT-formeln för att mäta cacheprestanda är dessa följande:

  • Det första värdet är Hit Time, vilket är den tid det tar för CPU eller GPU att hitta data i cachen. … I det här fallet är det viktigt att cachen är liten så att den kan flyttas snabbare. Ju större cachestorlek, desto längre tid tar det att resa. Det är därför cachenivåerna närmast kärnan är mycket små i storlek.
  • Den andra betydelsen är Missfrekvensen, som är procentandelen fall där data saknas i cachen. … Detta strider mot träfffrekvensen, eftersom det bästa sättet att hitta cachad data är att öka lagringskapaciteten. Cachen behöver också ha mekanismer för att veta vilken data den behöver lagra internt för att ge plats åt andra som på kort sikt kommer att ha mer tillgång till CPU eller GPU.
  • Den tredje betydelsen är Miss Penalty, detta är latensen som krävs för att komma åt data om den är i RAM och inte i cache. Det här är en enorm tid när det kommer till fästingar. Eftersom det är uppenbart att om data finns i RAM och inte i cachen, är det nödvändigt att lägga till uppslagstiderna som anges i cachehierarkin till RAM.

Således kommer cacheprestanda att bero på hur man optimerar Hit Time eller Miss Rate, eftersom optimering av en partition innebär att en annan partition skadas, arkitekter måste bestämma vilket värde de lägger större vikt vid när de utvecklar en ny. CPU eller ny GPU.

Relaterade artiklar

Back to top button