¿Qué es el búfer de búsqueda de traducción?

Las CPU son bestias increíblemente complejas. Hay una gran cantidad de piezas interconectadas que tienen que funcionar al unísono para lograr los niveles de rendimiento que vemos. El rendimiento de la memoria es un factor clave en el rendimiento de las CPU modernas, específicamente como factor limitante.

¿Por qué es tan importante la velocidad de la memoria?

Las CPU son increíblemente rápidas, con las últimas generaciones funcionando a 5,7 GHz cuando se enfrían adecuadamente. Esto les permite completar 5.700 millones de operaciones cada segundo. Muchas de estas operaciones realizan una acción en algún tipo de datos que deben almacenarse en la memoria.

La memoria principal del sistema, conocida como RAM, también es muy rápida. Desafortunadamente, es muy rápido en comparación con cualquier otra cosa que no sea la CPU. La latencia absoluta en la RAM moderna de gama alta es del orden de 60 nanosegundos. Desafortunadamente, eso se traduce en aproximadamente 342 ciclos de CPU. Para acelerar el acceso a la memoria, se utiliza un caché de CPU que almacena datos en caché de forma dinámica. Este caché se encuentra en la CPU y utiliza celdas SRAM en lugar de celdas DRAM, lo que lo hace mucho más rápido. Desafortunadamente, la memoria caché de la CPU también es mucho más pequeña que la RAM del sistema, por lo general, no alcanza ni siquiera los 100 MB. Aún así, a pesar de su tamaño diminuto, el sistema de caché de CPU en niveles aumenta enormemente el rendimiento del sistema.

Aquí viene la memoria virtual para estropearlo todo

Las computadoras modernas utilizan un sistema llamado memoria virtual. En lugar de asignar direcciones de memoria física a los procesos, se utilizan direcciones de memoria virtual. Cada proceso tiene su propio espacio de direcciones de memoria virtual. Esto tiene dos beneficios. En primer lugar, proporciona una fácil separación entre la memoria que pertenece a un proceso y la memoria que pertenece a otro. Esto ayuda a prevenir ataques en los que el software malintencionado lee datos de la memoria de otro software y accede potencialmente a información confidencial. También oculta la estructura de la memoria física del proceso. Esto permite que la CPU mueva bits de memoria que rara vez se usan a un archivo de paginación en el almacenamiento, sin necesariamente desmontarlo de la RAM virtual. Esto permite que la computadora administre suavemente escenarios donde se requiere más RAM de la que está físicamente presente. Sin memoria virtual,

Desafortunadamente, si usa direcciones de memoria virtual, la computadora necesita traducir esas direcciones de memoria virtual a direcciones de memoria física para leer los datos. Esto requiere una tabla para almacenar todas las traducciones de direcciones de memoria virtual a direcciones de memoria física. El tamaño de este depende directamente de la cantidad de RAM en uso. Por lo general, es bastante pequeño, al menos en comparación con la capacidad de RAM del sistema. Desafortunadamente, si almacena la traducción entre direcciones virtuales y direcciones físicas en la RAM, debe realizar dos solicitudes a la RAM por cada solicitud a la RAM. Uno para encontrar la dirección física para solicitar y luego otro para acceder a esa ubicación.

Ingrese el búfer de búsqueda de traducción

La solución a este problema es almacenar la tabla de traducción en algún lugar más rápido. El caché de la CPU encajaría muy bien, al menos desde una perspectiva de velocidad. El problema con eso, sin embargo, es que el caché de la CPU es pequeño y ya se utiliza mucho. La tabla no solo no cabe en la memoria caché, sino que hacerlo interrumpiría su uso que ya define el rendimiento.

Por supuesto, si el principio del caché ya funciona para el acceso a la memoria, ¿por qué no repetirlo para la tabla de traducción? Y eso es exactamente lo que es Translation Lookaside Buffer, o TLB. Es un caché de alta velocidad para traducciones de direcciones recientes. No es lo suficientemente grande para almacenar toda la tabla, pero su pequeño tamaño significa que puede responder muy rápidamente, dentro de un solo ciclo de reloj.

Cualquier solicitud de memoria pasa por la TLB. Si hay un acierto de TLB, puede proporcionar la dirección de memoria física para la solicitud real, por lo general agregando un solo ciclo de latencia. Si hay una falta de TLB, la búsqueda debe realizarse desde la memoria principal. Hay una pequeña penalización de rendimiento por una falta de TLB de alrededor de 5 ciclos, una pérdida más que eclipsada por la latencia de acceso a la memoria. Una vez que la traducción de la dirección se recupera de la RAM del sistema, se inserta en la TLB y luego se repite la solicitud con una coincidencia inmediata de la TLB.

Nota: Existen diferentes esquemas para el desalojo de TLB. Algunos pueden usar un esquema First In, First Out o FIFO. Otros pueden usar un esquema de uso menos frecuente o LFU.

En el raro caso de que no haya una entrada en la tabla de traducción de direcciones, se produce un error de página, ya que los datos solicitados no están en la RAM. Luego, el sistema operativo debe manejar la falla y transferir los datos del almacenamiento a la RAM antes de que la solicitud pueda continuar.

Conclusión

Translation Lookaside Buffer, o TLB, es una caché de CPU de alta velocidad dedicada a almacenar en caché traducciones de direcciones recientes del archivo de página en la RAM del sistema. Esto es necesario ya que los sistemas de memoria virtual, implementados en todas las computadoras modernas, necesitarían dos solicitudes a la RAM por cada solicitud a la RAM. Uno para traducir la dirección de memoria virtual a una dirección de memoria física y otro para acceder realmente a la dirección física. Al almacenar en caché las traducciones recientes, la latencia de la memoria se puede reducir en gran medida para las coincidencias de TLB.

Se debe tener cuidado para garantizar que las traducciones almacenadas en caché sean relevantes para el proceso actualmente activo. Como cada proceso tiene un espacio de direcciones virtuales diferente, no se pueden reutilizar. No limitar estrictamente esto fue la causa detrás de la vulnerabilidad Meltdown.



Leave a Comment

Qué Hacer Si Powerbeats Pro No Carga en el Estuche

Qué Hacer Si Powerbeats Pro No Carga en el Estuche

Si tus Powerbeats Pro no cargan, utiliza otra fuente de energía y limpia tus auriculares. Deja el estuche abierto mientras cargas tus auriculares.

Fundamentos de Impresión 3D: Una Lista de Verificación de Mantenimiento Imprescindible

Fundamentos de Impresión 3D: Una Lista de Verificación de Mantenimiento Imprescindible

Mantener tu equipo en buen estado es fundamental. Aquí hay algunos consejos útiles para mantener tu impresora 3D en óptimas condiciones.

Canon Pixma MG5220: Escanear Sin Tinta

Canon Pixma MG5220: Escanear Sin Tinta

Cómo habilitar el escaneo en la Canon Pixma MG5220 cuando se queda sin tinta.

5 Razones por las Que Tu Portátil Se Está Sobrecalentando

5 Razones por las Que Tu Portátil Se Está Sobrecalentando

Descubre algunas de las posibles razones por las que tu portátil se está sobrecalentando, junto con consejos y trucos para evitar este problema y mantener tu dispositivo fresco.

Cómo instalar un SSD en PCs de escritorio y portátiles

Cómo instalar un SSD en PCs de escritorio y portátiles

¿Acabas de comprar un SSD con la esperanza de mejorar el almacenamiento interno de tu PC, pero no sabes cómo instalarlo? ¡Lee este artículo ahora!

Cómo solucionar el código de error 0xC272008F de GeForce Now

Cómo solucionar el código de error 0xC272008F de GeForce Now

Te estás preparando para una noche de juegos y va a ser una gran noche: acabas de conseguir “Star Wars Outlaws” en el servicio de streaming GeForce Now. Descubre la única solución conocida que te muestra cómo arreglar el error 0xC272008F de GeForce Now para que puedas empezar a jugar los juegos de Ubisoft nuevamente.

Fundamentos de la Impresión 3D: Consejos de Mantenimiento para su Impresora 3D

Fundamentos de la Impresión 3D: Consejos de Mantenimiento para su Impresora 3D

Mantener sus impresoras 3D es muy importante para obtener los mejores resultados. Aquí hay algunos consejos importantes a tener en cuenta.

Cómo encontrar la dirección IP de una impresora

Cómo encontrar la dirección IP de una impresora

¿Tienes problemas para averiguar cuál es la dirección IP de tu impresora? Te mostraremos cómo encontrarla.

Cómo usar AirPods con teléfonos Samsung

Cómo usar AirPods con teléfonos Samsung

Si tienes dudas sobre si comprar AirPods para tu teléfono Samsung, esta guía te ayudará. La pregunta más obvia es si son compatibles, y la respuesta es: ¡sí, lo son!

Solución de problemas de Roku no actualiza el software

Solución de problemas de Roku no actualiza el software

Asegúrate de que tu dispositivo Roku funcione correctamente actualizando el software. Aquí tienes soluciones efectivas para el problema de actualizaciones de Roku.