28
Departamento de Informática. Curso 2 005-2006 1 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Embed Size (px)

Citation preview

Page 1: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 1

SISTEMAS DE MEMORIA DEL COMPUTADOR

LECCIÓN 2. MEMORIAS CACHE

Page 2: Departamento de Informática. Curso 2005-20061 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

Page 3: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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

Page 4: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 4

ESTRUCTURA DE UNA MEMORIA CACHE

Page 5: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 5

Page 6: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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

Page 7: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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.

Page 8: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS 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

Page 9: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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

Page 10: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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

Page 11: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS 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

Page 12: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 12

MECANISMO DE BÚSQUEDA EN CACHE

Page 13: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS 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

Page 14: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 14

EJEMPLO

Page 15: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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

Page 16: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 16

MECANISMO DE BÚSQUEDA

Page 17: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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.

Page 18: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 18

EJEMPLO

Page 19: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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.

Page 20: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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).

Page 21: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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

Page 22: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 22

MECANISMO DE BÚSQUEDA

Page 23: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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

Page 24: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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.

Page 25: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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.

Page 26: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

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é)

Page 27: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 27

Power-PC

Page 28: Departamento de Informática. Curso 2005-20061 SISTEMAS DE MEMORIA DEL COMPUTADOR LECCIÓN 2. MEMORIAS CACHE

Departamento de Informática. Curso 2005-2006 28

PENTIUM IV