Què és el Translation Lookaside Buffer?

Les CPU són bèsties increïblement complexes. Hi ha un gran nombre de peces interconnectades que han de funcionar a l'uníson perfecte per aconseguir els nivells de rendiment que veiem. El rendiment de la memòria és un factor clau en el rendiment de les CPU modernes, concretament com a factor limitant.

Per què és tan important la velocitat de la memòria?

Les CPU són increïblement ràpides, amb les últimes generacions que funcionen a 5,7 GHz quan es refreden adequadament. Això els permet completar 5.700 milions d'operacions cada segon. Moltes d'aquestes operacions realitzen una acció sobre algun tipus de dades que cal emmagatzemar a la memòria.

La memòria principal del sistema, coneguda com a RAM, també és molt ràpida. Malauradament, és molt ràpid en comparació amb qualsevol altra cosa que no sigui la CPU. La latència absoluta de la memòria RAM moderna de gamma alta és de l'ordre de 60 nanosegons. Malauradament, això es tradueix en aproximadament 342 cicles de CPU. Per accelerar l'accés a la memòria, s'utilitza una memòria cau de la CPU que emmagatzema les dades de forma dinàmica. Aquesta memòria cau es troba a la matriu de la CPU i utilitza cèl·lules SRAM en lloc de cèl·lules DRAM, fent-la molt més ràpida. Malauradament, la memòria cau de la CPU també és molt més petita que la memòria RAM del sistema, generalment no arriba als 100 MB. Tot i així, malgrat la seva mida reduïda, el sistema de memòria cau de la CPU en nivells augmenta massivament el rendiment del sistema.

Aquí ve la memòria virtual per embrutar-ho tot

Els ordinadors moderns utilitzen un sistema anomenat memòria virtual. En lloc d'assignar adreces de memòria física als processos, s'utilitzen adreces de memòria virtual. Cada procés té el seu propi espai d'adreces de memòria virtual. Això té dos beneficis. En primer lloc, proporciona una separació fàcil entre la memòria que pertany a un procés i la memòria que pertany a un altre. Això ajuda a prevenir atacs en què el programari maliciós llegeix dades de la memòria d'un altre programari i pot accedir a informació sensible. També amaga l'estructura de la memòria física del procés. Això permet a la CPU moure els bits de memòria que s'utilitzen poques vegades a un fitxer de paginació a l'emmagatzematge, sense necessàriament desmuntar-lo de la memòria RAM virtual. Això permet a l'ordinador gestionar amb suavitat els escenaris on es requereix més memòria RAM de la que hi ha físicament. Sense memòria virtual,

Malauradament, si utilitzeu adreces de memòria virtual, l'ordinador ha de traduir aquestes adreces de memòria virtual a adreces de memòria física per llegir les dades. Això requereix una taula per emmagatzemar totes les traduccions d'adreces de memòria virtual a adreces de memòria física. La mida d'això depèn directament de la quantitat de memòria RAM en ús. En general, és bastant petit, almenys si es compara amb la capacitat de la memòria RAM del sistema. Malauradament, si emmagatzemeu la traducció entre adreces virtuals i adreces físiques a la memòria RAM, haureu de fer dues sol·licituds a la memòria RAM per cada sol·licitud a la memòria RAM. Un per trobar l'adreça física a sol·licitar i després un altre per accedir realment a aquesta ubicació.

Introduïu la memòria intermèdia de traducció

La solució a aquest problema és emmagatzemar la taula de traducció en algun lloc més ràpid. La memòria cau de la CPU s'adaptaria molt bé a la factura, almenys des d'una perspectiva de velocitat. El problema, però, és que la memòria cau de la CPU és petita i ja està molt utilitzada. No només la taula no encaixa a la memòria cau, sinó que fer-ho alteraria el seu ús que ja defineix el rendiment.

Per descomptat, si el principi de la memòria cau ja funciona per a l'accés a la memòria, per què no repetir-ho per a la taula de traducció? I això és exactament el que és el Translation Lookaside Buffer, o TLB. És una memòria cau d'alta velocitat per a traduccions d'adreces recents. No és prou gran per emmagatzemar tota la taula, però la seva petita mida significa que pot respondre molt ràpidament, en un sol cicle de rellotge.

Qualsevol sol·licitud de memòria passa a través del TLB. Si hi ha un hit TLB, pot proporcionar l'adreça de memòria física per a la sol·licitud real, normalment afegint un sol cicle de latència. Si hi ha un error de TLB, la cerca s'ha de realitzar des de la memòria principal. Hi ha una petita penalització de rendiment a un error de TLB d'uns 5 cicles, una pèrdua més que eclipsada per la latència d'accés a la memòria. Un cop recuperada la traducció de l'adreça de la memòria RAM del sistema, s'envia a la TLB i la sol·licitud es repeteix amb un cop de TLB immediat.

Nota: hi ha diferents esquemes per al desallotjament de TLB. Alguns poden utilitzar un esquema First In, First Out o FIFO. Altres poden utilitzar un esquema d'ús menys freqüent o LFU.

En el rar cas que no hi hagi cap entrada a la taula de traducció d'adreces, es produeix un error de pàgina, ja que les dades sol·licitades no es troben a la memòria RAM. Aleshores, el sistema operatiu ha de gestionar l'error i transferir les dades de l'emmagatzematge a la memòria RAM abans que la sol·licitud pugui continuar.

Conclusió

El Translation Lookaside Buffer, o TLB, és una memòria cau de la CPU d'alta velocitat dedicada a la memòria cau les traduccions d'adreces recents del fitxer de pàgina a la memòria RAM del sistema. Això és necessari ja que els sistemes de memòria virtual, tal com s'implementa en tots els ordinadors moderns, necessitarien dues sol·licituds a la memòria RAM per cada sol·licitud a la memòria RAM. Un per traduir l'adreça de memòria virtual a una adreça de memòria física i un altre per accedir realment a l'adreça física. Mitjançant l'emmagatzematge a la memòria cau de traduccions recents, la latència de la memòria de traduccions es pot reduir molt per a les visites de TLB.

Cal tenir cura de garantir que les traduccions emmagatzemades en memòria cau són rellevants per al procés actiu actualment. Com cada procés té un espai d'adreces virtuals diferent, no es poden reutilitzar. No limitar-ho estrictament va ser la causa de la vulnerabilitat de Meltdown.


Què és SMPS?

Què és SMPS?

Apreneu què és SMPS i el significat de les diferents classificacions d'eficiència abans de triar un SMPS per al vostre ordinador.

Per què el meu Chromebook no sencén

Per què el meu Chromebook no sencén

Obteniu respostes a la pregunta: Per què el meu Chromebook no s'encén? En aquesta guia útil per als usuaris de Chromebook.

Com informar de les estafes de pesca a Google

Com informar de les estafes de pesca a Google

Obteniu informació sobre com informar d'un estafador a Google per evitar que estafeu altres persones amb aquesta guia.

Roomba satura, senganxa i gira - Arregla

Roomba satura, senganxa i gira - Arregla

Solucioneu un problema en què el vostre robot aspirador Roomba s'atura, s'enganxa i segueix girant.

Com canviar la configuració gràfica a Steam Deck

Com canviar la configuració gràfica a Steam Deck

El Steam Deck ofereix una experiència de joc robusta i versàtil al teu abast. Tanmateix, per optimitzar el vostre joc i garantir el millor possible

Què és la seguretat basada en laïllament?

Què és la seguretat basada en laïllament?

Anàvem a aprofundir en un tema que cada cop és més important en el món de la ciberseguretat: la seguretat basada en l'aïllament. Aquest enfocament a

Com utilitzar el clic automàtic per a Chromebook

Com utilitzar el clic automàtic per a Chromebook

Avui anàvem a aprofundir en una eina que pot automatitzar tasques de clics repetitius al vostre Chromebook: el clic automàtic. Aquesta eina us pot estalviar temps i

Com canviar la cara del rellotge en un Fitbit Versa 4

Com canviar la cara del rellotge en un Fitbit Versa 4

Canvia la cara del rellotge del teu Fitbit Versa 4 per donar-li un aspecte diferent cada dia de manera gratuïta. Mireu que fàcil i ràpid és.

Com treure una GPU dun PC Windows el 2023

Com treure una GPU dun PC Windows el 2023

Necessites treure la GPU del teu ordinador? Uneix-te a mi mentre t'explico com eliminar una GPU del teu PC en aquesta guia pas a pas.

Què és el surf despatlles?

Què és el surf despatlles?

El surf a l'espatlla és una classe d'atac d'enginyeria social. Implica que un atacant recopila informació mirant la pantalla.