Arquitectura de Computadoras
  Memoria - Cache
 
 
 
 

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.

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 n 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 qué 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. Esta política se basa en la propiedad de localidad espacial de los programas.

 

Política de reemplazo

Determina qué bloque de memoria caché debe abandonarla cuando no existe espacio disponible para un bloque entrante. Basicamente hay cuatro políticas que son:

  • Aleatoria: El bloque es reemplazado de forma aleatoria.

  • FIFO: Se usa un algoritmo First In First Out FIFO (PEPS, primero entrado primero salido en español) 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.

  • Menos frecuentemente usado (LFU): Se reemplaza el bloque que se ha usado con menos frecuencia.

 
 

Siendo la Aleatoria y la LRU las de mejor rendimiento.

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 o escritura directa: En inglés Write Through. Cuando se escribe en un bloque que se encuentra en memoria caché, la información se modifica también simultáneamente en memoria principal, manteniendo así la coherencia en todo momento. Suele combinarse con la técnica de "No carga en escritura" (No Write Allocation) que significa que, cuando haya que escribir en un bloque que no se encuentra en la caché, la modificación se realizará únicamente en memoria principal, sin traer dicho bloque a caché, y además sólo se actualizará la palabra concreta que haya cambiado.

  • Escritura aplazada o post-escritura: En inglés Write Back. Cuando se escribe en un bloque que se encuentra en memoria caché, queda marcado como suciobitdirty bit o bit sucio. Cuando el bloque sea desalojado de memoria caché (mediante la correspondiente política de reemplazo), se comprueba el bit sucio, y si está activado se escribe la información de dicho bloque en memoria principal. Esta política suele combinarse con la técnica de "Carga en escritura" (Write Allocation), que significa que, cuando haya que escribir en un bloque que no se encuentra en la caché, traeremos a caché el bloque en cuestión y lo modificaremos ahí. especial llamado normalmente dirty bit o bit sucio. Cuando el bloque sea desalojado de memoria caché (mediante la correspondiente política de reemplazo), se comprueba el bit sucio, y si está activado se escribe la información de dicho bloque en memoria principal. Esta política suele combinarse con la técnica de "Carga en escritura" (Write Allocation), que significa que, cuando haya que escribir en un bloque que no se encuentra en la caché, traeremos a caché el bloque en cuestión y lo modificaremos ahí.

 
  Hoy habia 8 visitantes (8 clics a subpáginas) ¡Aqui en esta página!  
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis