Que é o Translation Lookaside Buffer?

As CPU son bestas incriblemente complexas. Hai un gran número de pezas interconectadas que todas teñen que funcionar ao unísono perfecto para acadar os niveis de rendemento que vemos. O rendemento da memoria é un factor clave no rendemento das CPU modernas, especialmente como factor limitante.

Por que é tan importante a velocidade da memoria?

As CPU son incriblemente rápidas, coas últimas xeracións funcionando a 5,7 GHz cando se arrefrian adecuadamente. Isto permítelles completar 5.700 millóns de operacións por segundo. Moitas destas operacións realizan unha acción sobre algún tipo de datos que se deben almacenar na memoria.

A memoria principal do sistema, coñecida como RAM, tamén é moi rápida. Desafortunadamente, é moi rápido en comparación con calquera outra cousa que non sexa a CPU. A latencia absoluta na memoria RAM moderna de gama alta é da orde de 60 nanosegundos. Desafortunadamente, isto tradúcese en aproximadamente 342 ciclos de CPU. Para acelerar o acceso á memoria, utilízase unha caché da CPU que almacena dinámicamente os datos. Esta caché está situada no propio die da CPU e usa células SRAM en lugar de células DRAM, o que o fai moito máis rápido. Desafortunadamente, a caché da CPU tamén é moito máis pequena que a RAM do sistema, polo que xeralmente non chega a 100 MB. Aínda así, a pesar do seu reducido tamaño, o sistema de caché da CPU en niveis aumenta enormemente o rendemento do sistema.

Aquí vén a memoria virtual para estropear todo

Os ordenadores modernos utilizan un sistema chamado memoria virtual. En lugar de asignar enderezos de memoria física aos procesos, utilízanse enderezos de memoria virtual. Cada proceso ten o seu propio espazo de enderezos de memoria virtual. Isto ten dous beneficios. En primeiro lugar, proporciona unha fácil separación entre a memoria que pertence a un proceso e a memoria que pertence a outro. Isto axuda a evitar ataques nos que o software malicioso le datos da memoria doutro software, podendo acceder a información confidencial. Tamén oculta a estrutura da memoria física do proceso. Isto permite que a CPU mova os bits de memoria que raramente se usan a un ficheiro de paginación no almacenamento, sen necesariamente desmontalo da memoria RAM virtual. Isto permite que o ordenador xestione suavemente escenarios nos que se require máis memoria RAM da que está fisicamente presente. Sen memoria virtual,

Desafortunadamente, se usas enderezos de memoria virtual, o ordenador debe traducir realmente eses enderezos de memoria virtual a enderezos de memoria física para ler os datos. Isto require unha táboa para almacenar todas as traducións de enderezos de memoria virtual a enderezos de memoria física. O tamaño deste depende directamente da cantidade de RAM en uso. En xeral, é bastante pequeno, polo menos en comparación coa capacidade da memoria RAM do sistema. Desafortunadamente, se almacenas a tradución entre enderezos virtuais e enderezos físicos na RAM, debes facer dúas solicitudes á RAM por cada solicitude á RAM. Un para atopar o enderezo físico para solicitar e outro para acceder realmente a esa localización.

Introduce o búfer de tradución

A solución a este problema é almacenar a táboa de tradución nalgún lugar máis rápido. A caché da CPU encaixaría moi ben, polo menos desde a velocidade. O problema con iso, con todo, é que a caché da CPU é pequena e xa está moi utilizada. Non só a táboa non cabe na caché, senón que facelo perturbaría o seu uso que xa define o rendemento.

Por suposto, se o principio da caché xa funciona para o acceso á memoria, por que non repetilo para a táboa de tradución? E iso é exactamente o que é o Translation Lookaside Buffer, ou TLB. É unha caché de alta velocidade para traducións de enderezos recentes. Non é o suficientemente grande como para almacenar toda a táboa, pero o seu pequeno tamaño significa que pode responder moi rapidamente, nun único ciclo de reloxo.

Calquera solicitude de memoria pasa a través do TLB. Se hai un hit TLB, pode proporcionar o enderezo de memoria física para a solicitude real, engadindo normalmente un único ciclo de latencia. Se hai un fallo de TLB, a busca debe realizarse desde a memoria principal. Hai unha pequena penalización de rendemento a un fallo de TLB duns 5 ciclos, unha perda máis que eclipsada pola latencia de acceso á memoria. Unha vez que se recupera a tradución do enderezo da memoria RAM do sistema, envíase ao TLB e a solicitude repítese cun acceso inmediato ao TLB.

Nota: Existen diferentes esquemas para o desaloxo de TLB. Algúns poden usar un esquema First In, First Out ou FIFO. Outros poden usar un esquema de uso menos frecuente ou LFU.

No caso raro de que non haxa ningunha entrada na táboa de tradución de enderezos, prodúcese un erro de páxina, xa que os datos solicitados non están na memoria RAM. A continuación, o sistema operativo debe xestionar o fallo e transferir os datos do almacenamento á memoria RAM antes de que a solicitude poida continuar.

Conclusión

O Translation Lookaside Buffer, ou TLB, é unha caché de CPU de alta velocidade dedicada a almacenar na memoria caché traducións de enderezos recentes do ficheiro de páxina na memoria RAM do sistema. Isto é necesario xa que os sistemas de memoria virtual, tal e como se implementan en todos os ordenadores modernos, necesitarían dúas solicitudes á memoria RAM por cada solicitude á memoria RAM. Un para traducir o enderezo da memoria virtual a un enderezo de memoria física e outro para acceder realmente ao enderezo físico. Ao almacenar na memoria caché de traducións recentes, a latencia da memoria pódese reducir moito para as visitas de TLB.

Hai que ter coidado para asegurarse de que as traducións almacenadas na caché sexan relevantes para o proceso activo actualmente. Como cada proceso ten un espazo de enderezo virtual diferente, non se poden reutilizar. Non limitar estritamente isto foi a causa detrás da vulnerabilidade Meltdown.


Que é SMPS?

Que é SMPS?

Aprende o que é SMPS e o significado das diferentes clasificacións de eficiencia antes de escoller un SMPS para o teu ordenador.

Que é a seguridade baseada no illamento?

Que é a seguridade baseada no illamento?

Imos afondar nun tema cada vez máis importante no mundo da ciberseguridade: a seguridade baseada no illamento. Este enfoque para

Como usar o clic automático para Chromebook

Como usar o clic automático para Chromebook

Hoxe imos afondar nunha ferramenta que pode automatizar tarefas de clic repetitivos no teu Chromebook: o Clicker automático. Esta ferramenta pode aforrar tempo e

Roomba detén, pégase e dá a volta - Solución

Roomba detén, pégase e dá a volta - Solución

Resolve un problema no que o teu robot aspirador Roomba se detén, se pega e segue xirando.

Por que o meu Chromebook non se acende

Por que o meu Chromebook non se acende

Obtén respostas á pregunta Por que non se acende o meu Chromebook? Nesta guía útil para usuarios de Chromebook.

Como cambiar a configuración gráfica en Steam Deck

Como cambiar a configuración gráfica en Steam Deck

O Steam Deck ofrece unha experiencia de xogo robusta e versátil ao teu alcance. Non obstante, para optimizar o teu xogo e garantir o mellor posible

Como cambiar a cara do reloxo nun Fitbit Versa 4

Como cambiar a cara do reloxo nun Fitbit Versa 4

Cambia a esfera do teu Fitbit Versa 4 para darlle ao teu reloxo un aspecto diferente todos os días de forma gratuíta. Mira o rápido e sinxelo que é.

Como denunciar estafas de phishing a Google

Como denunciar estafas de phishing a Google

Aprende a denunciar a un estafador a Google para evitar que estafe a outros con esta guía.

Como eliminar unha GPU do PC con Windows en 2023

Como eliminar unha GPU do PC con Windows en 2023

Necesitas eliminar a GPU do teu PC? Únete a min mentres explico como eliminar unha GPU do teu PC nesta guía paso a paso.

Que é o Shoulder Surf?

Que é o Shoulder Surf?

O hombro surf é unha clase de ataque de enxeñería social. Implica que un atacante recompila información mirando a túa pantalla.