Organización y Políticas de Caché
La organización de la caché se refiere a cómo una caché asigna bloques de memoria al almacenamiento —su ubicación y asociatividad— y las políticas que rigen el reemplazo y las escrituras, que en conjunto determinan la frecuencia de aciertos de la caché y cómo interactúa con la memoria principal.
Definition
La organización y las políticas de caché son las elecciones estructurales y de gestión de una caché —dónde se pueden colocar los bloques, qué bloque se expulsa en caso de fallo y cómo se propagan las escrituras a los niveles inferiores— que rigen su tasa de aciertos y su comportamiento.
Scope
Este tema cubre el diseño interno de una única caché: ubicación de mapeo directo, asociativa por conjuntos y totalmente asociativa; políticas de reemplazo como LRU y sus aproximaciones; políticas de escritura (write-through versus write-back) y asignación de escritura (write-allocation); tamaño de bloque; y la clasificación de fallos en obligatorios, de capacidad y de conflicto. Excluye la coherencia multicaché (protocolos de coherencia de caché) y la traducción de direcciones (memoria virtual y paginación).
Core questions
- ¿En qué se diferencian la ubicación de mapeo directo, asociativa por conjuntos y totalmente asociativa en cuanto a costo y comportamiento de conflicto?
- ¿Qué política de reemplazo debería expulsar un bloque en caso de fallo y cómo se aproxima de forma económica?
- ¿En qué se diferencian las políticas write-through y write-back en cuanto a tráfico y complejidad?
- ¿Cómo se clasifican los fallos y qué cambios de diseño reducen cada tipo?
Key concepts
- caché de mapeo directo
- caché asociativa por conjuntos
- caché totalmente asociativa
- reemplazo de menos recientemente usado (LRU)
- write-through vs write-back
- write-allocate
- tamaño de bloque (línea)
- fallos obligatorios, de capacidad y de conflicto
Key theories
- Modelo de fallos de las Tres C
- Los fallos de caché se pueden categorizar como obligatorios (primer acceso), de capacidad (caché demasiado pequeña para el conjunto de trabajo) y de conflicto (asociatividad insuficiente), un marco que vincula cada parámetro de diseño —tamaño, tamaño de bloque, asociatividad— con los fallos que reduce.
Mechanisms
Una dirección de memoria se divide en campos de etiqueta (tag), índice (index) y desplazamiento (offset). El índice selecciona un conjunto, la etiqueta identifica el bloque dentro de él y la asociatividad establece cuántos bloques comparten un conjunto. En caso de fallo, la caché busca el bloque y expulsa otro elegido por una política de reemplazo (a menudo una aproximación de "menos recientemente usado"). Las escrituras actualizan la memoria principal inmediatamente (write-through) o marcan el bloque como "sucio" (dirty) y posponen la actualización (write-back).
Clinical relevance
La organización de la caché rige el rendimiento efectivo porque las penalizaciones por fallo son grandes en relación con los aciertos. Los programadores mejoran el comportamiento de la caché mediante la disposición de los datos, el bloqueo y los patrones de acceso que aumentan la localidad, mientras que los arquitectos ajustan la asociatividad, el tamaño del bloque y la política de escritura para equilibrar la tasa de aciertos con el área, la potencia y el ancho de banda.
History
Wilkes propuso la memoria esclava (caché) en 1965, y las cachés pronto fueron adoptadas comercialmente. La encuesta de Alan Jay Smith de 1982 sintetizó extensas mediciones de políticas de ubicación, reemplazo y escritura, estableciendo el vocabulario de diseño que todavía se utiliza hoy en día. El modelo de las tres C proporcionó más tarde una forma estructurada de razonar sobre las causas y los remedios de los fallos.
Key figures
- Maurice Wilkes
- Alan Jay Smith
- John L. Hennessy
- David A. Patterson
Related topics
Seminal works
- smith1982cache
- hennessy2019
Frequently asked questions
- ¿Cuál es la diferencia entre las cachés write-through y write-back?
- Una caché write-through actualiza tanto la caché como la memoria principal en cada escritura, manteniendo la memoria actualizada pero generando más tráfico. Una caché write-back actualiza solo la caché, marcando el bloque como "sucio", y lo escribe en la memoria solo cuando es expulsado, reduciendo el tráfico a costa de una contabilidad adicional.
- ¿Por qué usar cachés asociativas por conjuntos en lugar de cachés de mapeo directo?
- Una caché de mapeo directo permite a cada bloque exactamente una ubicación, por lo que los bloques que se asignan a la misma ranura entran en conflicto. La asociatividad por conjuntos da a cada bloque varias ubicaciones posibles dentro de un conjunto, reduciendo los fallos de conflicto a costa de más hardware de comparación y aciertos ligeramente más lentos.