Memorias Cache

18
Universidad Nacional de La Matanza Sistemas de Computación I Prof. Titular: Ing. Fernando I. Szklanny Curso lectivo 2005

Transcript of Memorias Cache

Page 1: Memorias Cache

Universidad Nacional de La Matanza

Sistemas de Computación I

Prof. Titular: Ing. Fernando I. Szklanny

Curso lectivo 2005

Page 2: Memorias Cache

Bloque de almacenamiento

Memoria caché

Autores: Ing. Miriam Pérez Berró – Ing. Carlos Rodríguez –

A.S. Silvia Perrone

Page 3: Memorias Cache

Presentacion general del tema

• Se plantea la necesidad de mejorar el rendimiento del sistema formado por la CPU de una computadora y su memoria principal.

• Las velocidades de respuesta (tiempos de acceso) de las memorias no se corresponden con las necesidades de velocidad de la CPU.

• El sistema de memoria caché permite acelerar los procesos entre CPU y memoria principal.

Page 4: Memorias Cache

MEMORIA CACHE

Se corresponden con un conjunto reducido de locaciones.

Se sugiere colocar una memoria pequeña, pero rápida

•Posiciones cercanas a la accedida:

Localidad espacial

Referencia a una locación de memoria

Probabilidad de acceso cercano a:

•La misma posición anterior:

Localidad temporal

Principio de localidad: el 90% del tiempo de ejecución se consume en el 10% del código

Para mejorar el rendimiento del sistema de memoria

La mayoría de las referencias a memoria principal.

Page 5: Memorias Cache

GENERALIDADES

- Los sistemas modernos pueden tener distintos niveles de memoria cache en su jerarquía, los que se distinguen como Nivel 1 (L1), Nivel 2 (L2), y aún en ciertos casos Nivel 3 (L3). La memoria cache de Nivel 1, en muchos casos viene incorporada directamente en el mismo circuito integrado de la CPU.

-Tasa de aciertos (%):

Ta : {N° de veces que la palabra buscada se encuentra en la cache / N° Total de accesos a memoria}.100

- Si la memoria caché contiene instrucciones y operandos, esta memoria se denomina memoria unificada.- Se puede mejorar el rendimiento, si se separa la memoria cache en dos, una parte para los datos (se lee más de lo que se escribe), y otra para el código (instrucciones de programa, que solo se leen). En este caso se habla de una memoria cache fragmentada o fraccionada. Este planteo se justifica ya que estadísticamente existe una operación de escritura cada cuatro o más operaciones de lectura.

-Tiempo efectivo (medio) de acceso (nseg):

tea: {(N° aciertos).(tiempo por acierto)+ (N° fallas).(tiempo por falla)} / N° Total de accesos a memoria

Page 6: Memorias Cache

ETIQUETA

DIRECCION de MEMORIA

S bits W bits

COMPARADOR

ROTULO-PALABRA

E0

E1

E..

E..

E..

Er-1

B0

B1

B..

B..

Bi..

BIT DE VALIDEZ

BIT DE SUCIEDAD

ACIERTO

L0

L1

L..

L..

L..

Lr-1 B..

B2S-1..

FALLA

MEMORIA CACHE DE ASIGNACION ASOCIATIVA

MEMORIA CACHE 2r

LINEASMEMORIA PPAL 2S BLOQUES

+

Siendo r << s

Page 7: Memorias Cache

ETIQUETADIRECCION de MEMORIA

S bits W bits

ROTULO

E0

E1

E..

E..

E..

Er-1

B0

B1

B..

B..

Bi..

L0

L1

L..

L..

L..

Lr-1 B..

B2S-1..

MEMORIA CACHE DE ASIGNACION ASOCIATIVA

MEMORIA PPAL

2S BLOQUES de 2W PALABRAS

BIT DE VALIDEZ

BIT DE SUCIEDAD

ETIQUETAS : 2S ETIQUETAS

LINEAS: 2r LINEAS

TAMAÑO DE LA CACHE = 2R . 2W PALABRAS

Page 8: Memorias Cache

MEMORIA CACHE DE ASIGNACION ASOCIATIVA

EXISTEN MAS BLOQUES EN LA MEMORIA PRINCIPAL QUE LINEAS EN LA MEMORIA CACHE

BUSQUEDA DE ETIQUETAS

BLOQUE DE MEMORIA PRINCIPAL

SE CARGA POR PRIMERA VEZ UN PROGRAMA

SE PRODUCE UNA FALLA

SE LIMPIA PREVIAMENTE LA MEMORIA CACHE

SE REALIZA EN PARALELO

PUEDE ASIGNARSE A CUALQUIER LINEA

SE DEBE MODIFICAR UNA LINEA PREVIAMENTE SE ESCRIBE EN MEMORIA PRINCIPAL

SE REUTILIZA CON OTRO BLOQUE

SE UBICA EN MEMORIA PRINCIPAL EL BLOQUEQUE LA CAUSO Y SE LO CARGA EN LA CACHE

Page 9: Memorias Cache

ETIQUETA

DIRECCION de MEMORIA

S- Q bits Q bits

COMPARADOR

LINEA

E0

E1

E..

E..

E..

Er-1

B0

B1

B..

B..

Bi..

BIT DE VALIDEZ

BIT DE SUCIEDAD

ACIERTO

L0

L1

L..

L..

L..

Lr-1 B..

B2S-1..

FALLA

MEMORIA CACHE DE ASIGNACION DIRECTA

PALABRA

W bits

+

r =cantidad de líneas de cache,

donde cada línea, posee 2w palabras.

MEMORIA PRINCIPAL

Page 10: Memorias Cache

ETIQUETADIRECCION de MEMORIA

S- Q bits Q bits

LINEA

E0

E1

E..

E...

E...

Er-1

B0

B1

B..

B..

B 2 q

BIT DE VALIDEZ

BIT DE SUCIEDAD

L0

L1

L..

L..

L..

Lr-1

B..

B2s-1..

MEMORIA CACHE DE ASIGNACION DIRECTA

PALABRA

W bits

B 2q+1

Tendremos 2 s bloques en memoria principal, 2 q líneas de cache, de 2w palabras cada una y 2 s-q etiquetas.

MEMORIA PRINCIPAL

MEMORIA CACHE

Page 11: Memorias Cache

MEMORIA CACHE DE ASIGNACION DIRECTA

EXISTEN MAS BLOQUES EN MEMORIA PRINCIPAL QUE LINEAS EN MEMORIA CACHE

BLOQUE DE MEMORIA PRINCIPAL

LINEA DE MEMORIA CACHE

ASIGNADO A UNA SOLA LINEA

PUEDE RECIBIR MAS DE UN BLOQUE

SE CORRESPONDE CON UN CONJUNTO EXPLÍCITO DE BLOQUES DE MEMORIA PRINCIPAL

SE HACE REFERENCIA A UNA DIRECCION DE MEMORIA PRINCIPAL

EL CAMPO DE LINEA INDICA EN QUE LINEA PUEDE ENCONTRARSE

SI EL BIT DE VALIDEZ ES “1” SE COMPARA EL CAMPO DE ETIQUETAS

SI COINCIDE, LA PALABRA SE TOMA DESDE LA POSICIÓN

ESPECIFICADA EN EL CAMPO DE PALABRA.

Page 12: Memorias Cache

VENTAJAS Y DESVENTAJAS

•MENOR TAMAÑO DE LA MEMORIA DE ETIQUETAS.

•NO SE NECESITA EFECTUAR BUSQUEDA ASOCIATIVA

•SE DEBEN EVITAR LAS REFERENCIAS SUCESIVAS A MEMORIA CON SEPARACION MAYOR A 2Q+W (tamaño de la Memoria Cache), CASO CONTRARIO LA REFERENCIA A MEMORIA PRODUCIRA UNA FALLA.

Page 13: Memorias Cache

ETIQUETA

DIRECCION de MEMORIA

S- Q bits Q bits

COMPARADOR

CONJUNTO

E0

E1

E..

E..

E..

Er-1

B0

B1

B..

B..

Bi..

BIT DE VALIDEZ

BIT DE SUCIEDAD

ACIERTO

L0

L1

L..

L..

L..

Lr-1 B..

B2S-1..

FALLA

MEMORIA CACHE DE ASIGNACION POR CONJUNTOS

PALABRA

W bits

C0

C..

Cr/2 -1

MEMORIA PRINCIPAL

MEMORIA CACHE

Suponemos para este caso, que un grupo está formado por dos líneas consecutivas de la memoria Cache

+

Page 14: Memorias Cache

ETIQUETADIRECCION de MEMORIA

S- Q bits Q bits

CONJUNTO

B0

B1

B..

B..

B 2 q

BIT DE VALIDEZ

BIT DE SUCIEDAD

L0

L1

L..

L..

L..

L r-1 B..

B2S -1..

MEMORIA CACHE DE ASIGNACION POR CONJUNTOS

PALABRA

W bits

B 2 q +1

C 0

C r/2 - 1

C 1

Tendremos 2 s bloques en memoria principal, 2 q

conjuntos de cache y 2 q+1 líneas de cache, de 2w palabras cada una y 2 s-q etiquetas.

Suponemos para este caso, que un grupo está formado por dos líneas consecutivas de la memoria Cache

Page 15: Memorias Cache

MEMORIA CACHE DE ASIGNACION POR CONJUNTOS

COMBINA LA SIMPLICIDAD DE LA ASIGNACION DIRECTA CON LA FLEXIBILIDAD DE LA ASIGNACION ASOCIATIVA

SI DOS LINEAS FORMAN UN CONJUNTO

VENTAJAS Y DESVENTAJAS.

SE TIENE UNA MEMORIA ASOCIATIVA DE DOS VIAS

ASIGNACION DE UNA DIRECCION PARA UN CONJUNTO SE UTILIZA EL ESQUEMA DE LA ASIGNACION DIRECTA

DENTRO DEL CONJUNTO SE UTILIZA LA ASIGNACIONASOCIATIVA

•SE INCREMENTA LIGERAMENTE LA MEMORIA DE ETIQUETAS CON RESPECTO A LA ASIGNACION DIRECTA

•EN CADA REFERENCIA SOLO SE DEBEN ANALIZAR DOS ETIQUETAS

Page 16: Memorias Cache

POLITICAS DE LECTURA Y ESCRITURA DE MEMORIA CACHE

ESCRITURA INMEDIATA

ESCRITURA DE CACHE

LOS DATOS ESTAN EN MEMORIA CACHE

LOS DATOS NO ESTAN EN MEMORIA CACHE

ESCRITURA DIFERIDA

ESCRITURA CON ASIGNACIÓN

ESCRITURA SIN ASIGNACIÓN

Write through, se realizan dos copias, una en memoria cache y otra en memoria principal.

Write back, se difiere la escritura hasta después de la limpieza de la memoria cache.

Write allocate, se ingresa el bloque en la memoria cache y se lo actualiza.

Write no allocate, se lo actualiza en memoria principal sin involucrar a la memoria cache.

Page 17: Memorias Cache

POLITICAS DE LECTURA Y ESCRITURA DE MEMORIA CACHE

LECTURA DE CACHE

LOS DATOS ESTAN EN MEMORIA CACHE

LOS DATOS NO ESTAN EN MEMORIA CACHE

ENVIAR A LA CPU

CARGA INMEDIATA

CARGA DIFERIDA

Load through, la palabra buscada se transfiere a la CPU sin esperar que se complete la transferencia del resto de la línea.

Load back, se actualiza la memoria cache, y luego se lo transfiere a la CPU. La CPU siempre lee desde memoria cache.

Page 18: Memorias Cache

POLITICAS DE REEMPLAZO EN MEMORIAS DE ASIGNACION ASOCIATIVA

LRU - Menos Recientemente Usado (least recently used)

- Se actualiza una línea por vez mediante un contador de frecuencia adosado a cada línea, se libera el bloque que muestra la menor tasa de actualización.

LFU - Menos Frecuentemente Usado (least frequently used)

- Se agrega en cada línea una identificación de tiempo, la que se actualiza cada vez que se accede, y se descarta el contenido de la usada menos recientemente.

FIFO - El primero que entra es el primero que sale (first in first out)

- Se reemplazan las líneas en forma ordenada, una tras otra en el orden en el que se encuentran ordenados en la memoria.

ALEATORIA

- Se elige simplemente una línea al azar.