ScholarGate
Asistente

Jerarquía de memoria y cachés

La jerarquía de memoria organiza el almacenamiento en niveles —registros, cachés, memoria principal y almacenamiento de respaldo— de modo que los niveles pequeños y rápidos contengan los datos con mayor probabilidad de ser utilizados, dando a los programas la ilusión de una memoria que es a la vez grande y rápida.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

Una jerarquía de memoria es una disposición en capas de tecnologías de almacenamiento de diferente velocidad, costo y capacidad, gestionada de modo que los datos accedidos frecuente y recientemente residan en los niveles más rápidos y pequeños —especialmente la caché— para minimizar el tiempo promedio de acceso.

Scope

Esta área cubre por qué y cómo la memoria se organiza como una jerarquía, explotando la localidad de referencia. Incluye la estructura de la caché (políticas de ubicación, reemplazo y escritura), cachés multinivel, coherencia de caché entre procesadores, memoria virtual y traducción de direcciones, y la DRAM subyacente y las tecnologías de memoria emergentes. Excluye la ejecución del procesador en sí (microarquitectura del procesador) y el almacenamiento de archivos y dispositivos a gran escala (sistemas de almacenamiento y E/S), aunque limita con ambos.

Sub-topics

Core questions

  • ¿Por qué la localidad de referencia hace que una jerarquía de memoria en capas sea efectiva?
  • ¿Cómo se organizan las cachés en términos de ubicación, asociatividad, reemplazo y política de escritura?
  • ¿Cómo se mantiene la coherencia cuando múltiples cachés contienen copias de la misma memoria?
  • ¿Cómo traduce las direcciones la memoria virtual y cómo proporciona protección y la ilusión de una memoria grande?
  • ¿Cómo las características de la DRAM y las memorias emergentes moldean el rendimiento del sistema?

Key concepts

  • localidad temporal y espacial
  • acierto y fallo de caché
  • asociatividad y política de reemplazo
  • escritura directa (write-through) y escritura diferida (write-back)
  • cachés multinivel
  • coherencia de caché
  • memoria virtual y paginación
  • búfer de traducción anticipada (translation lookaside buffer)
  • DRAM y ancho de banda de memoria
  • tiempo promedio de acceso a memoria

Key theories

Localidad de referencia
Los programas tienden a reutilizar datos accedidos recientemente (localidad temporal) y a acceder a direcciones cercanas (localidad espacial); la jerarquía de memoria explota ambos al almacenar en caché bloques usados recientemente y al recuperar vecinos juntos.
Compensaciones en el diseño de caché
El rendimiento de la caché se rige por la tasa de fallos, la penalización por fallo y el tiempo de acierto, y se ajusta mediante el tamaño, el tamaño de bloque, la asociatividad y las políticas de reemplazo y escritura; los análisis clásicos identifican los fallos obligatorios, de capacidad y de conflicto como los objetivos de estas elecciones.

Mechanisms

Cuando el procesador solicita datos, primero se verifica la caché; un acierto devuelve los datos rápidamente, mientras que un fallo recupera un bloque de un nivel inferior y puede desalojar otro mediante una política de reemplazo. Las escrituras se propagan mediante esquemas de escritura directa (write-through) o escritura diferida (write-back), y los protocolos de coherencia mantienen múltiples cachés consistentes. La memoria virtual añade un paso de traducción —a través de tablas de páginas y un búfer de traducción anticipada (translation lookaside buffer)— mapeando las direcciones del programa a la DRAM física mientras se aplica la protección.

Clinical relevance

La jerarquía de memoria con frecuencia domina el rendimiento real: debido a que los procesadores son mucho más rápidos que la memoria principal, el comportamiento de la caché y la localidad a menudo importan más que la velocidad bruta de las instrucciones. Las distribuciones de datos conscientes de la caché, el bloqueo y la precarga son fundamentales para la computación de alto rendimiento, las bases de datos y los núcleos de aprendizaje automático, y la temporización de la caché se ha convertido en una fuente de canales laterales de seguridad.

History

Maurice Wilkes propuso la caché (una 'memoria esclava') en 1965, y las cachés entraron en máquinas comerciales como el IBM System/360 Modelo 85. La memoria virtual se originó con la computadora Atlas a principios de la década de 1960, formalizada por el modelo de conjunto de trabajo de Denning. La encuesta de Alan Jay Smith de 1982 consolidó el conocimiento del diseño de cachés, y las cachés multinivel y los sofisticados protocolos de coherencia se convirtieron en estándar a medida que se ampliaban las brechas de velocidad entre el procesador y la memoria.

Debates

Gestión de la localidad por hardware versus software
Existe una tensión continua entre el almacenamiento en caché transparente por hardware y las memorias gestionadas explícitamente (scratchpads, precarga controlada por software): el almacenamiento en caché por hardware es general y fácil de programar, mientras que la gestión explícita puede ser más predecible y eficiente para cargas de trabajo especializadas.

Key figures

  • Maurice Wilkes
  • Alan Jay Smith
  • Peter J. Denning
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • hennessy2019
  • smith1982cache
  • patterson2020

Frequently asked questions

¿Por qué las cachés son efectivas si son tan pequeñas en comparación con la memoria principal?
Porque los programas exhiben localidad: en cualquier momento, tocan solo un pequeño conjunto de trabajo de datos repetidamente, y los accesos se agrupan en direcciones cercanas. Una caché pequeña que contenga ese conjunto de trabajo, por lo tanto, satisface la gran mayoría de las solicitudes.
¿Cuál es la diferencia entre una caché y la memoria virtual?
Ambas mueven datos entre un nivel más rápido y pequeño y uno más lento y grande. Una caché (gestionada por hardware) contiene bloques de memoria principal; la memoria virtual (gestionada con el sistema operativo) mapea las direcciones del programa a la memoria física y pagina datos hacia y desde el disco, proporcionando también protección y un espacio de direcciones mayor que la RAM física.

Methods for this concept

Related concepts