¿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

Cómo clonar un disco duro

Cómo clonar un disco duro

En la era digital moderna, donde los datos son un activo valioso, clonar un disco duro en Windows puede ser un proceso crucial para muchos. Esta guía completa

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Cómo reparar el controlador WUDFRd que no se pudo cargar en Windows 10?

¿Se enfrenta al mensaje de error al iniciar su computadora que dice que el controlador WUDFRd no se pudo cargar en su computadora?

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

Cómo reparar el código de error 0x0003 de la experiencia NVIDIA GeForce

¿Tiene el código de error 0x0003 de la experiencia NVIDIA GeForce en su escritorio? En caso afirmativo, lea el blog para descubrir cómo solucionar este error de forma rápida y sencilla.

Cómo quitar una GPU de una PC con Windows en 2023

Cómo quitar una GPU de una PC con Windows en 2023

¿Necesitas quitar la GPU de tu PC? Únase a mí mientras explico cómo quitar una GPU de su PC en esta guía paso a paso.

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

Cómo instalar un SSD NVMe en una computadora de escritorio y una computadora portátil

¿Compró un nuevo SSD NVMe M.2 pero no sabe cómo instalarlo? Siga leyendo para aprender cómo instalar un SSD NVMe en una computadora portátil o de escritorio.

¿Qué es una bomba lógica?

¿Qué es una bomba lógica?

Una bomba lógica es un incidente de seguridad en el que un atacante establece una acción retrasada. Sigue leyendo para saber más.

¿Qué es Stuxnet?

¿Qué es Stuxnet?

Stuxnet era un gusano que se propagaba a sí mismo. Fue el primer uso de un arma cibernética y la primera instancia de malware.

¿Qué es un hacker ético?

¿Qué es un hacker ético?

Un hacker ético es un hacker que actúa dentro de los límites de la ley. Sigue leyendo para saber más sobre el tema.

¿Qué es el cifrado simétrico?

¿Qué es el cifrado simétrico?

Hay muchas partes diferentes de la criptografía. Sin embargo, si desea cifrar algunos datos, hay dos tipos de algoritmos que puede usar: simétrico

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

Cómo hacer una prueba de estrés de GPU en 2023: + 6 mejores herramientas

¿Quiere hacer una prueba de estrés de la GPU en su PC con Windows para garantizar un rendimiento confiable para los juegos de alta definición? ¡Lea esta guía de GPU de prueba de estrés ahora!