Title: SISTEMAS DE MEMORIA DEL COMPUTADOR
1SISTEMAS DE MEMORIA DEL COMPUTADOR
- LECCIÓN 2.
- MEMORIAS CACHE
2NECESIDAD 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
3NECESIDAD 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
CACHE
MEMORIA RAM
4ESTRUCTURA DE UNA MEMORIA CACHE
5(No Transcript)
6LECTURA DE UNA MEMORIA CACHE
CPU genera dir
Acceso a Mp para obtener dato
Está en cache?
Asignar bloque en cache
Leer dato y pasar a CPU
Pasar dato a CPU
Copiar bloque en cache
Continuar
7MEDIDAS 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.
-
8MEDIDAS 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
9ORGANIZACIÓ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
10CORRESPONDENCIA 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
11FORMATO 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
12MECANISMO DE BÚSQUEDA EN CACHE
13VALORACIÓN DE LA CORRESPONDENCIA DIRECTA
- Sencilla de implementar porque no necesita
algoritmos de reemplazo - Ocupación de la cache ineficiente
14EJEMPLO
15CORRESPONDENCIA 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
16MECANISMO DE BÚSQUEDA
17VALORACIÓ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.
18EJEMPLO
19CORRESPONDENCIA 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.
20CORRESPONDENCIA 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).
21FORMATO 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
22MECANISMO DE BÚSQUEDA
23TIPOS 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
24ALGORITMOS 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.
25ACTUALIZACIÓ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.
26ACTUALIZACIÓ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é)
27Power-PC
28PENTIUM IV