PDF de programación - Tema 6: Memoria Caché

Imágen de pdf Tema 6: Memoria Caché

Tema 6: Memoria Cachégráfica de visualizaciones

Publicado el 4 de Diciembre del 2018
971 visualizaciones desde el 4 de Diciembre del 2018
255,1 KB
23 paginas
Creado hace 12a (02/10/2011)
Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12



Tema 6: Memoria Caché.

Objetivos:


Introducir la terminología y los principios básicos de funcionamiento de la memoria caché,
resaltando la localidad referencial de los programas que explican su elevado rendimiento.

 Analizar las alternativas de diseño que determinan el comportamiento de una caché,
resaltando la función de correspondencia, las políticas de búsqueda y sustitución de
bloques, y el mantenimiento de la coherencia con memoria principal en las escrituras.

 Estudiar los factores que más influencia tienen en el rendimiento de una caché junto a las

alternativas de diseño hardware y software que permiten optimizar dichos factores.

 Analizar el sistema de memoria caché de algunos procesadores, especialmente el del ARM.

Contenido:

1. Principios básicos de funcionamiento de la memoria caché

2. Elementos de diseño.

3. Factores que determinan el rendimiento de la memoria caché.

4. Ejemplos de sistemas de memoria caché.

La velocidad de la memoria se ha distanciado progresivamente de la velocidad de los
procesadores. En la figura siguiente se muestran las gráficas de la evolución experimentada por el
rendimiento de las CPUs y las memoria DRAM (soporte de la memoria principal de los
computadores actuales) en los últimos años. Las curvas muestran que el rendimiento de la CPU
aumentó un 35% anual desde 1980 hasta 1987; y un 55% anual a partir de ese año. En cambio la
memoria ha mantenido un crecimiento sostenido del 7% anual desde 1980 hasta la fecha. Esto
significa que si se mantiene la tendencia, el diferencial de rendimiento no sólo se mantendrá sino
que aumentará en el futuro. Para equilibrar esta diferencia se viene utilizando una solución
arquitectónica: la memoria caché

100.000

10.000

1000

100

10

0.1

55%

Diferencia
progresiva

35%

7%

1980 1987 2000

Evolución de la mejora de rendimiento de la CPU y memoria DRAM

64 KB (DRAM)



CPU

Memoria
(DRAM)



1

Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12


La memoria caché es una memoria pequeña y rápida que se interpone entre la CPU y la
memoria principal para que el conjunto opere a mayor velocidad. Para ello es necesario mantener
en la caché aquellas zonas de la memoria principal con mayor probabilidad de ser referenciadas.
Esto es posible gracias a la propiedad de localidad de referencia de los programas.

1.1. Localidad de referencia: temporal y espacial
Los programas manifiestan una propiedad que se explota en el diseño del sistema de gestión
de memoria de los computadores en general y de la memoria caché en particular, la localidad de
referencias: los programas tienden a reutilizar los datos e instrucciones que utilizaron
recientemente. Una regla empírica que se suele cumplir en la mayoría de los programas revela que
gastan el 90% de su tiempo de ejecución sobre sólo el 10% de su código. Una consecuencia de la
localidad de referencia es que se puede predecir con razonable precisión las instrucciones y datos
que el programa utilizará en el futuro cercano a partir del conocimiento de los accesos a memoria
realizados en el pasado reciente. La localidad de referencia se manifiesta en una doble dimensión:
temporal y espacial.

Localidad temporal: las palabras de memoria accedidas recientemente tienen una alta
probabilidad de volver a ser accedidas en el futuro cercano. La localidad temporal de los programas
viene motivada principalmente por la existencia de bucles.

Localidad espacial: las palabras próximas en el espacio de memoria a las recientemente
referenciadas tienen una alta probabilidad de ser también referenciadas en el futuro cercano. Es
decir, que las palabras próximas en memoria tienden a ser referenciadas juntas en el tiempo. La
localidad espacial viene motivada fundamentalmente por la linealidad de los programas
(secuenciamiento lineal de las instrucciones) y el acceso a las estructuras de datos regulares.

CPU

Memoria cache

(Mc)

Memmoria principal

Mp

palabras

bloques (líneas)

Para implementar el mecanismo de actualización de la caché con los datos con mayor
probabilidad de ser refernciados se divide la memoria principal en bloques de un número de bytes
(4,8,16 etc.) y la caché en marcos de bloque o líneas de igual tamaño. El bloque será, pues, la
unidad de intercambio de información entre la memoria principal y la caché, mientras que entre la
caché y la CPU sigue siendo la palabra. El directorio contiene la información de qué bloques de Mp
se encuentran ubicados en Mc



2



Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12



n

Dirección
de memoria
0
1
2



direccion



2n -1



Mp

Directorio

Mc

Bloque 0



Bloque 1



Bloque 2n/K -1

m marcos de bloque o líneas
2n palabras
K palabras/bloque
M = 2n/K bloques >> m

Marco de
Bloque 0



Marco de
Bloque m -1



El funcionamiento de la memoria caché se puede resumir en el diagrama de flujo de la
siguiente figura. En él se describe el proceso de traducción de la dirección física procedente de la
CPU (en el supuesto que el procesador no disponga de memoria virtual o esté desactivado) en el
dato ubicado en la posición de memoria determinada por dicha dirección:

Mc <-- CPU(DF)

Recibe la

Dirección Física
(DF) de la CPU

¿ DF bloque
en la cache?

no

(fallo)

Acceso a Mp para obtener
el bloque que contiene DF

si (acierto)

Leer el contenido de DF

y llevarlo a la CPU

CPU <-- <DF>

Asignar un marco de la
cache al bloque de Mp

Mc <-- Mp(bloque)

Cargar el bloque de

Mp en el marco

asignado de la cahe

Llevar el contenido
de la DF a la CPU

1.2. Tasa de aciertos y tasa de fallos:
Cuando una dirección se presenta en el sistema caché pueden ocurrir dos cosas:



 Acierto de caché (hit): el contenido de la dirección se encuentre en un bloque ubicado en

una línea de la caché.

 Fallo de caché (miss): el contenido de la dirección no se encuentre en ningún bloque

ubicado en alguna línea de la caché.

Si en la ejecución de un programa se realizan Nr referencias a memoria, de las que Na son

aciertos caché y Nf fallos caché, se definen los siguientes valores:



3

Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12


 Tasa de aciertos:
 Tasa de fallos:
Evidentemente se cumple:



Ta = Na/ Nr
Tf = Nf/ Nr
Ta = 1 - Tf

2. Elementos de diseño.

A la hora de diseñar un sistema de memoria caché hay que elegir entre una serie de

alternativas para cada uno de los siguientes elementos de diseño:

 Función de correspondencia: determina las posibles líneas de la caché (marcos de bloque)
en las que se puede ubicar un determinado bloque de la memoria principal que ha sido
referenciado por el programa y hay que llevarlo a memoria caché.

 Algoritmo de sustitución: determina el bloque que hay que desubicar de una línea de la

caché cuando ésta está llena y hay que ubicar un nuevo bloque.

 Política de escritura: determina la forma de mantener la coherencia entre memoria caché y

memoria principal cuando se realizan modificaciones (escrituras)

 Política de búsqueda de bloques: determina la causa que desencadena la llevada de un

bloque a la caché (normalmente un fallo en la referencia)

 Cachés independientes para datos e instrucciones: frente a cachés unificadas.
2.1. Función de correspondencia
Existen tres funciones de correspondencia para definir la posible ubicación de un bloque de
memoria principal (Mp) en la memoria caché (Mc): directa, asociativa y asociativa por conjuntos.
En el primer caso un bloque de Mp sólo puede ubicarse en una línea de la caché, aquella que
coincide con el bloque cuando superponemos Mc sobre Mp respetando fronteras de Mc, es decir,
sobre espacios de Mp que son múltiplos del tamaño de Mc. En la correspondencia asociativa un
bloque puede ubicarse en cualquier línea de Mc. Finalmente, la correspondencia asociativa por
conjuntos es un compromiso entre las dos anteriores.

Mp

Mc

Mc

Mc

B0
B1
B2
B3
B4
B5
B6
B7

B0
B1
B2
B3
B4
B5
B6
B7

C0
C1
C2
C3

Directa Asociativa Asociativa por conjuntos

2.1.1. Correspondencia directa



En la correspondencia directa el bloque Bj de Mp se puede ubicar sólo en el marco de bloque
o línea MBi que cumple la siguiente relación i = j mod m, donde m es el número total de líneas que
tiene la caché. En la tabla siguiente se especifica el conjunto de bloques que se pueden ubicar en
una línea de Mc:



4

Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12



Bloques de Mp
0, m, 2m, ... , 2s-1m
1, m+1, 2m+1,..., 2s-1m+1
......
m-1, 2m-1, 3m-1,..., 2sm-1

Marcos de bloque de Mc
0
1
...
m-1

Interpretación de una dirección física en correspondencia directa:

s

bloque

etiqueta marco de bloque palabra

s-r r w



2w palabras/bloque
2s bloques de Mp
2r marcos de bloque en Mc (2r = m)
2s-r veces contiene Mp a Mc
Los s - r bits de la etiqueta diferenciarán a cada uno de los bloques de Mp que pueden
ubicarse en el mismo marco de bloque de Mc. El directorio caché en correspondencia directa
contendrá un registro de s - r bits por cada m
  • Links de descarga
http://lwp-l.com/pdf14409

Comentarios de: Tema 6: Memoria Caché (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad