Caché

De MadriSX wiki
Ir a la navegaciónIr a la búsqueda

En informática, una caché es un conjunto de datos duplicados de otros originales, con la propiedad de que los datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en el caché. Cuando se accede por primera vez a un dato, se hace una copia en el caché; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso medio al dato sea menor.

El término caché puede utilizarse también para una zona de memoria de disco denominado caché de disco (Disk cache o Cache buffer en inglés).


Composición interna

Las memorias caché están compuestas por dos elementos distintos, un directorio que almacena etiquetas que identifican la dirección de memoria almacenada, y bloques de información, todos de igual tamaño, que guardan la información propiamente dicha. Por lo cual este tipo de memoria no es de tipo temporal como la ram.En informática, un caché: es un conjunto de datos duplicados de otros originales, con la propiedad de que los datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en el caché. Cuando se accede por primera vez a un dato, se hace una copia en el caché; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso medio al dato sea menor.

El término caché puede utilizarse también para una zona de memoria de disco denominado caché de disco (Disk cache o Cache buffer en inglés).´´

Diseño

En el diseño de la memoria caché se deben considerar varios factores que influyen directamente en el rendimiento de la memoria y por lo tanto en su objetivo de aumentar la velocidad de respuesta de la jerarquía de memoria. Estos factores son las políticas de ubicación, extracción, reemplazo, escritura y el tamaño de la caché y de sus bloques.

Política de ubicación

Decide dónde debe colocarse un bloque de memoria principal que entra en la memoria caché. Las más utilizadas son:

  • Directa: Al bloque n-ésimo de memoria principal le corresponde la posición n módulo k donde k es el número de bloques de la memoria caché.
  • Asociativa: Cualquier bloque de memoria principal puede ir en cualquier lado del bloque de memoria caché.
  • Asociativa por conjuntos: La memoria caché se divide en varios conjuntos de bloques, así al bloque i-ésimo de memoria principal le corresponde el conjunto i módulo (k/n) donde k es el número de bloques de memoria caché. Dicho bloque de memoria podrá ubicarse en cualquier posición dentro del conjunto asociado de la memoria caché.

Política de extracción

La política de extracción determina cuándo y cuál bloque de memoria principal hay que traer a memoria caché. Existen dos políticas muy extendidas:

  • Por demanda: Un bloque sólo se trae a memoria caché cuando ha sido referenciado y se produzca un fallo.
  • Con prebúsqueda: Cuando se referencia el bloque i-ésimo de memoria principal, se trae además el bloque (i+1)-esimo.

Política de reemplazo

Determina qué bloque de memoria caché debe abandonarla cuando no existe espacio disponible para un bloque entrante. Hay dos políticas muy importantes que son:

  • Aleatoria: El bloque es reemplazado de forma aleatoria.
  • FIFO: Se usa un algoritmo FIFO (First In First Out, "el primero que entra es el primero que sale") para determinar qué bloque debe abandonar la caché. Este algoritmo generalmente es poco eficiente.
  • Menos recientemente usado (LRU): Se sustituye el bloque que hace más tiempo que no se ha utilizado.

Política de escritura

Determina cuándo se actualiza la información en memoria principal cuando se ha escrito en memoria caché. Existen dos políticas principales:

  • Escritura inmediata: También llamada en inglés Write Through. Cuando se escribe un bloque en memoria caché se actualiza directamente la información también en memoria principal, manteniendo la coherencia en todo momento. Suele mezclarse con la técnica de With No Alocation que significa que en el momento de escribir siempre va a ir a la memoria principal.
  • Escritura aplazada': En inglés Write Back, cuando se escribe un bloque en memoria caché, se marca como sucio usando un bit especial llamado normalmente dirty bit. Cuando el bloque sea desalojado de memoria caché (mediante la correspondiente política de reemplazo), se comprueba el bit de sucio, y si está activado se escribe la información de dicho bloque en memoria principal. En este caso es "With Alocation" que significa si hay que escribir y no esta en la cache, entonces necesitamos subirlo a cache.

También es llamada como política de post-escritura.

Véase también

Enlaces externos

Atribución

Este artículo proviene originalmente de Wikipedia y por ello no sigue la licencia general del site, sino la

GNU head GFDL: Se autoriza la copia, la distribución y la modificación de este documento bajo los términos de la licencia de documentación libre GNU, versión 1.2 o cualquier otra que posteriormente publique la Fundación del Software Libre (Free Software Fundation); sin secciones invariables (Unvariant Sections), textos de portada (Front-Cover Texts), ni textos de contraportada (Back-Cover Texts).

Se incluye una copia en inglés de esta licencia en el artículo "GNU Free Documentation License".