Vad är översättningsbufferten?

CPU: er är otroligt komplexa bestar. Det finns ett stort antal sammankopplade delar som alla måste fungera perfekt unisont för att uppnå de prestandanivåer som vi ser. Minnesprestanda är en nyckelfaktor för prestandan hos moderna processorer, särskilt som en begränsande faktor.

Varför är minneshastighet så viktig?

CPU:er är otroligt snabba, med de senaste generationerna som körs på 5,7 GHz när de är tillräckligt kylda. Detta gör att de kan genomföra 5,7 miljarder operationer varje sekund. Många av dessa operationer utför en åtgärd på någon typ av data som behöver lagras i minnet.

Huvudsystemminnet, känt som RAM, är också mycket snabbt. Tyvärr är den väldigt snabb jämfört med allt annat än processorn. Den absoluta latensen på modernt avancerad RAM är i storleksordningen 60 nanosekunder. Tyvärr översätts det till ungefär 342 CPU-cykler. För att snabba upp minnesåtkomsten används en CPU-cache som dynamiskt cachar data. Denna cache finns på själva CPU-matrisen och använder SRAM-celler snarare än DRAM-celler, vilket gör det mycket snabbare. Tyvärr är CPU-cachen också mycket mindre än system-RAM, i allmänhet inte ens 100 MB. Ändå, trots sin ringa storlek, ökar det skiktade CPU-cachesystemet avsevärt systemets prestanda.

Här kommer virtuellt minne för att förstöra allt

Moderna datorer använder ett system som kallas virtuellt minne. Istället för att allokera fysiska minnesadresser till processer används virtuella minnesadresser. Varje process har sitt eget virtuella minnesadressutrymme. Detta har två fördelar. För det första ger det enkel åtskillnad mellan minne som tillhör en process och minne som tillhör en annan. Detta hjälper till att förhindra attacker där skadlig programvara läser data från minnet av annan programvara, vilket kan komma åt känslig information. Det döljer också den fysiska minnesstrukturen från processen. Detta gör att CPU:n kan flytta sällan använda minnesbitar till en personsökningsfil på lagring, utan att nödvändigtvis avmontera den från virtuellt RAM. Detta gör det möjligt för datorn att försiktigt hantera scenarier där mer RAM krävs än vad som finns fysiskt. Utan virtuellt minne,

Tyvärr, om du använder virtuella minnesadresser, måste datorn faktiskt översätta dessa virtuella minnesadresser till fysiska minnesadresser för att läsa data. Detta kräver en tabell för att lagra alla översättningar av virtuella minnesadresser till fysiska minnesadresser. Storleken på detta beror direkt på mängden RAM som används. Det är i allmänhet ganska litet, åtminstone jämfört med kapaciteten hos system-RAM. Tyvärr, om du lagrar översättningen mellan virtuella adresser och fysiska adresser i RAM, måste du göra två förfrågningar till RAM för varje begäran till RAM. En för att hitta den fysiska adressen att begära och sedan en annan för att faktiskt komma åt den platsen.

Ange översättningsbufferten

Lösningen på detta problem är att lagra översättningstabellen någonstans snabbare. CPU-cachen skulle passa bra, åtminstone ur ett hastighetsperspektiv. Problemet med det är dock att CPU-cachen är liten och redan hårt utnyttjad. Inte nog med att tabellen inte får plats i cachen, utan att göra det skulle störa dess redan prestandadefinierande användning.

Naturligtvis, om principen för cachen redan fungerar för minnesåtkomst, varför inte upprepa det för översättningstabellen? Och det är precis vad Translation Lookaside Buffer, eller TLB, är. Det är en höghastighetscache för senaste adressöversättningar. Den är inte tillräckligt stor för att förvara hela bordet, men dess ringa storlek gör att den kan svara mycket snabbt, inom en enda klockcykel.

Varje minnesbegäran går via TLB. Om det finns en TLB-träff kan den tillhandahålla den fysiska minnesadressen för den faktiska begäran, vanligtvis lägga till en enskild latenscykel. Om det finns en TLB-miss måste sökningen utföras från huvudminnet. Det finns en liten prestationsstraff för en TLB-miss på cirka 5 cykler, en förlust mer än överskuggad av minnesåtkomstfördröjningen. När adressöversättningen väl har hämtats från systemets RAM, skjuts den in i TLB:n och begäran upprepas sedan med en omedelbar TLB-träff.

Obs: Det finns olika scheman för TLB vräkning. Vissa kan använda ett först in-, först ut- eller FIFO-schema. Andra kan använda ett minst ofta använda- eller LFU-schema.

I det sällsynta fallet att det inte finns någon post i adressöversättningstabellen, orsakas ett sidfel, eftersom den begärda informationen inte finns i RAM. OS måste sedan hantera felet och överföra data från lagring till RAM innan begäran kan fortsätta.

Slutsats

Translation Lookaside Buffer, eller TLB, är en höghastighets CPU-cache dedikerad till att cachelagra nya adressöversättningar från sidfilen i systemets RAM. Detta är nödvändigt eftersom virtuella minnessystem, som implementeras i alla moderna datorer, skulle kräva två förfrågningar till RAM för varje begäran till RAM. En för att översätta den virtuella minnesadressen till en fysisk minnesadress, och en annan för att faktiskt komma åt den fysiska adressen. Genom att cachelagra senaste översättningar kan minneslatens reduceras avsevärt för TLB-träffar.

Försiktighet måste vidtas för att säkerställa att cachade översättningar är relevanta för den för närvarande aktiva processen. Eftersom varje process har ett annat virtuellt adressutrymme kan de inte återanvändas. Att inte strikt begränsa detta var orsaken bakom Meltdown-sårbarheten.


Leave a Comment

Hur man använder AirPods med Samsung-telefoner

Hur man använder AirPods med Samsung-telefoner

Om du är osäker på om du ska köpa AirPods för din Samsung-telefon, kan denna guide verkligen hjälpa. Den mest uppenbara frågan är om de två är

Grunderna för 3D-utskrift: Underhållstips för din 3D-skrivare

Grunderna för 3D-utskrift: Underhållstips för din 3D-skrivare

Att hålla dina 3D-skrivare i gott skick är mycket viktigt för att få de bästa resultaten. Här är några viktiga tips att tänka på.

Canon Pixma MG5220: Skanna utan bläck

Canon Pixma MG5220: Skanna utan bläck

Hur man aktiverar scanning på Canon Pixma MG5220 när du har slut på bläck.

Hur man fixar GeForce Now felkod 0xC272008F

Hur man fixar GeForce Now felkod 0xC272008F

Du förbereder dig för en kväll av spelande, och det kommer att bli en stor sådan – du har precis köpt "Star Wars Outlaws" på GeForce Now streamingtjänsten. Upptäck den enda kända lösningen som visar dig hur man fixar GeForce Now felkod 0xC272008F så att du kan börja spela Ubisoft-spel igen.

10 Bästa NAS-lagringsenheter för hem- och yrkesbruk

10 Bästa NAS-lagringsenheter för hem- och yrkesbruk

Oavsett om du letar efter en NAS för ditt hem eller kontor, kolla in denna lista över de bästa NAS-lagringsenheterna.

5 Anledningar till varför din bärbara dator överhettas

5 Anledningar till varför din bärbara dator överhettas

Ta reda på några möjliga orsaker till varför din bärbara dator överhettas, tillsammans med tips och tricks för att undvika detta problem och hålla din enhet sval.

Grunderna i 3D-utskrift: En nödvändig underhållskontrollista

Grunderna i 3D-utskrift: En nödvändig underhållskontrollista

Att hålla din utrustning i gott skick är ett måste. Här är några användbara tips för att hålla din 3D-skrivare i toppskick.

Hur man ansluter en Windows 11-laptop till projektor/TV

Hur man ansluter en Windows 11-laptop till projektor/TV

Läs denna artikel för att lära dig den enkla steg-för-steg-processen för att ansluta en laptop till en projektor eller en TV på Windows 11 och Windows 10-operativsystem.

Hur man hittar IP-adressen till en skrivare

Hur man hittar IP-adressen till en skrivare

Har du problem med att ta reda på vilken IP-adress din skrivare använder? Vi visar dig hur du hittar den.

Vad du ska göra om Powerbeats Pro inte laddar i fodralet

Vad du ska göra om Powerbeats Pro inte laddar i fodralet

Om dina Powerbeats Pro inte laddar, använd en annan strömkälla och rengör dina hörsnäckor. Lämna fodralet öppet medan du laddar dina hörsnäckor.