performance - ¿TLB falla frente al caché?
caching operating-system (3)
Bueno, todos los sistemas operativos modernos usan algo llamado memoria virtual. Cada dirección generada por la CPU es virtual. Hay tablas de página que asignan tales direcciones virtuales a direcciones físicas. Y un TLB es solo un caché de entradas de la tabla de la página.
Por otro lado, L1, L2, L3 almacena en caché el contenido de la memoria principal del caché.
Se produce un error de TLB cuando la asignación de virtual memory address => physical memory address
para una dirección virtual solicitada por la CPU no está en TLB. Luego, esa entrada debe buscarse en la tabla de páginas en el TLB.
Una falta de caché se produce cuando la CPU requiere algo que no está en la memoria caché. Los datos luego se buscan en la memoria primaria (RAM). Si no está allí, los datos deben obtenerse de la memoria secundaria (disco duro).
¿Podría alguien explicar la diferencia entre un TLB (Translation lookaside buffer) miss y un caché miss?
Creo que descubrí que TLB se refiere a algún tipo de dirección de memoria virtual, pero no estaba muy claro qué significaba realmente.
Entiendo que el error de caché se produce cuando se carga un bloque de memoria (el tamaño de una línea de caché) en el caché (L3?) Y si una dirección requerida no se mantiene dentro de las líneas de caché actuales, esta es una falta de caché.
La siguiente secuencia después de cargar la primera dirección de instrucción (es decir, la dirección virtual) en PC hace que el concepto de falta de TLB y la falta de memoria caché sean muy claros.
La primera instrucción • Accediendo a la primera instrucción
- Tome la PC inicial
- Acceda a iTLB con la VPN extraída de la PC: iTLBmiss
- Invoca el controlador iTLBmiss
- Calcular la dirección PTE
- Si los archivos PTE se guardan en caché en los datos L1 y en los cachés L2, búsquelos con la dirección PTE: también extrañará
- Acceda a la tabla de páginas en la memoria principal: PTE no es válido: error de página
- Controlador de fallas de la página Invocar
Asigne el marco de página, lea la página del disco, actualice el PTE, cargue el PTE en iTLB, reinicie la recuperación • Ahora tiene la dirección física
Acceda a Icache: señorita
- Enviar solicitud de recarga a niveles más altos: se pierde en todas partes
- Enviar solicitud al controlador de memoria (puente norte)
- Acceda a la memoria principal
- Leer la línea de caché
- Rellene todos los niveles de caché a medida que la línea de caché regresa al procesador
- Extraiga la instrucción adecuada de la línea de caché con el desplazamiento del bloque • Esta es la latencia más larga posible en una instrucción / acceso a datos
fuente https://software.intel.com/en-us/articles/recap-virtual-memory-and-cache
Como se menciona el CÓMO de ambos procesos. En la nota de rendimiento, una falla de caché no necesariamente paraliza la CPU. Se puede tolerar un pequeño número de errores de caché utilizando técnicas algorítmicas de precarga. Sin embargo, una falla TLB hace que la CPU se bloquee hasta que el TLB se haya actualizado con la nueva dirección. En otras palabras, la captación previa puede enmascarar una falla de caché pero no una falla de TLB.