View
11
Download
2
Category
Preview:
Citation preview
Departamento de Informática. Curso 2005-2006 1
SISTEMAS DE MEMORIA DEL COMPUTADOR
LECCIÓN 2. MEMORIAS CACHE
Departamento de Informática. Curso 2005-2006 2
NECESIDAD DE LA MEMORIA CACHE
La CPU y la memoria tienen tiempos de acceso muy diferentes. Para mejorar la situación se inserta una memoria intermedia
CPU MEMORIA RAM
Departamento de Informática. Curso 2005-2006 3
NECESIDAD DE LA MEMORIA CACHE
La CPU y la memoria tienen tiempos de acceso muy diferentes. Para mejorar la situación se inserta una memoria intermedia llamada memoria cache con mejores tiempos de acceso
CPU MEMORIA RAMCACHE
Departamento de Informática. Curso 2005-2006 4
ESTRUCTURA DE UNA MEMORIA CACHE
Departamento de Informática. Curso 2005-2006 5
Departamento de Informática. Curso 2005-2006 6
LECTURA DE UNA MEMORIA CACHE
CPU genera dir
¿Está en cache?
Leer dato y pasar a CPU
Continuar
Acceso a Mp para obtener dato
Asignar bloque en cache
Copiar bloque en cache Pasar dato a CPU
Departamento de Informática. Curso 2005-2006 7
MEDIDAS DE CALIDAD DE UNA MEMORIA CACHE
Tiempo de acceso Ta
Ta = h Tc + (1-h) Tp
Donde Tc es el tiempo de acceso a la cache Tp es el tiempo de acceso a la memoria
principal h es el índice de aciertos de la cache.
Departamento de Informática. Curso 2005-2006 8
MEDIDAS DE CALIDAD DE UNA MEMORIA CACHE
Definimos índice de mejora = TP /Ta
Mide el aumento de rendimiento cuando se incluye una memoria caché en un sistema de memorias.
Se puede demostrar que = 1/(1-h(1- ))
Donde = Tc /Tp
Departamento de Informática. Curso 2005-2006 9
ORGANIZACIÓN DE LA MEMORIA CACHE
FUNCIONES DE MAPA:
Son las distintas formas de correspondencia entre los bloques de la memoria cache y los bloques de la memoria principal. Tenemos tres modelos básicos:
Correspondencia directa Correspondencia asociativa Correspondencia asociativa por conjuntos
Departamento de Informática. Curso 2005-2006 10
CORRESPONDENCIA DIRECTA
Asocia a cada bloque de la memoria principal una línea de la cache, de acuerdo con la siguiente expresión:
Cj Mi si i= j (mod C).
Siendo Cj = línea j de la cache
Mi = bloque i de la memoria principal
C = nº de líneas de la cache
Departamento de Informática. Curso 2005-2006 11
FORMATO DE LAS DIRECCIONES
Palabra : codifica el nº de palabras de memoria de cada bloque de memoria
Línea : codifica el nº de línea de cache donde se realiza la búsqueda
Etiqueta: codifica el bloque de memoria asociado a esa línea de cache
Departamento de Informática. Curso 2005-2006 12
MECANISMO DE BÚSQUEDA EN CACHE
Departamento de Informática. Curso 2005-2006 13
VALORACIÓN DE LA CORRESPONDENCIA DIRECTA
Sencilla de implementar porque no necesita algoritmos de reemplazo
Ocupación de la cache ineficiente
Departamento de Informática. Curso 2005-2006 14
EJEMPLO
Departamento de Informática. Curso 2005-2006 15
CORRESPONDENCIA TOTALMENTE ASOCIATIVA
Cualquier bloque de la memoria principal puede ocupar cualquier línea de la cache.
Donde Etiqueta indica el nº de bloque de memoria principal que se está buscando
Departamento de Informática. Curso 2005-2006 16
MECANISMO DE BÚSQUEDA
Departamento de Informática. Curso 2005-2006 17
VALORACIÓN DE LA CORRESPONDENCIA ASOCIATIVA
Necesita el uso de memorias asociativas
Necesita algoritmos de reemplazo
Es la mas eficiente en la ocupación de la cache.
Departamento de Informática. Curso 2005-2006 18
EJEMPLO
Departamento de Informática. Curso 2005-2006 19
CORRESPONDENCIA ASOCIATIVA POR CONJUNTOS
Es una solución intermedia entre las dos anteriores, las líneas de memoria caché se asocian en conjuntos y la correspondencia se establece de forma directa entre cada bloque de la memoria principal y cada conjunto de la caché.
Dentro de cada conjunto la correspondencia es asociativa.
Al número de bloques del conjunto se le llama número de vias o grado de asociatividad.
Departamento de Informática. Curso 2005-2006 20
CORRESPONDENCIA ASOCIATIVA POR CONJUNTOS
Sea pues una caché con Q conjuntos de R bloques por conjunto. La relación entre los bloques de memoria principal y los conjuntos de la caché, viene dada por la expresión siguiente:
Qj Mi si i= j (mod Q).
Departamento de Informática. Curso 2005-2006 21
FORMATO DE LAS DIRECCIONES
Palabra : codifica el nº de palabras de memoria de cada bloque de memoria
Conjunto : codifica el nº de conjunto de la cache donde se realiza la búsqueda
Etiqueta: codifica el bloque de memoria asociado a ese conjunto
Departamento de Informática. Curso 2005-2006 22
MECANISMO DE BÚSQUEDA
Departamento de Informática. Curso 2005-2006 23
TIPOS DE FALTAS
Frías: Aparecen en el momento inicial cuando la caché está vacía.
Por capacidad: Debida a que la caché está llena
Por conflicto : Cuando varios bloques de memoria principal ocupan una misma línea de la caché y computen por esa posición
Departamento de Informática. Curso 2005-2006 24
ALGORITMOS DE REEMPLAZO
Sustitución aleatoria. Se selecciona un bloque al azar para ser desalojado. Los resultados no son tan malos como cabría esperar.
FIFO. Se desaloja el bloque mas antiguo en la cache. Para facilitar su implementación cada bloque de la cache lleva asociado un contador de edad que se pone a cero en el momento de la carga y se incrementa en uno en cada acceso a memoria.
LRU En este caso se desaloja el bloque que lleva mas tiempo inactivo (Least recently used). Usa un contador similar al caso anterior salvo porque se pone a cero cada vez que se accede al bloque.
LFU Se desaloja al bloque que se usa menos frecuentemente (Least frecuently used). Necesitaremos pues un contador de uso para cada línea.
Departamento de Informática. Curso 2005-2006 25
ACTUALIZACIÓN DE LA CACHE
Lectura: En este caso se utiliza el sistema llamado lectura directa consistente en que el dato se busca en memoria principal y se transfiere a la caché el bloque que contiene a la palabra buscada.
Departamento de Informática. Curso 2005-2006 26
ACTUALIZACIÓN DE LA CACHE
Escritura : En este caso existen dos políticas posibles:
Escritura inmediata (write through) Consiste en actualizar de forma inmediata la memoria principal cada vez que se modifica el bloque en la caché
Escritura diferida (write back) Solo actualiza la memoria principal cuando se desaloja el bloque en la caché. Para ello lleva un bit de control que indica si se ha modificado el bloque o no ( bit sucio). ( Problemas de coherencia caché)
Departamento de Informática. Curso 2005-2006 27
Power-PC
Departamento de Informática. Curso 2005-2006 28
PENTIUM IV
Recommended