Memoria Caché Estructura y Tecnolología de Ordenadores.

48
Memoria Caché Estructura y Tecnolología de Ordenadores

Transcript of Memoria Caché Estructura y Tecnolología de Ordenadores.

Page 1: Memoria Caché Estructura y Tecnolología de Ordenadores.

Memoria Caché

Estructura y Tecnolología

de Ordenadores

Page 2: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Tema 3: Jerarquía de Memoria: Memoria Caché y Memoria Virtual Definición de memoria caché Estrategias de Mapeado: Directo,

Asociativo y Asociativo por conjunto Algoritmos de reemplazamiento: FIFO,

LRU, Aleatorio Coherencia del caché.

Page 3: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

D

red

Hemos visto…. Jerarquías de memoria

disco

RAM

cache

CPU

disco

RAM

Cache L2

I

CPU

Page 4: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Terminología básica

procesador

nivel superior

nivel inferior

bloques

Niveles de una jerarquia de memoria

El nivel superior -el más cercano al procesador es mas rápido y pequeño que el nivel inferior.

Mínima unidad de información en una jerarquía de dos niveles

bloque

Page 5: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Page 6: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Memoria Caché

Para usos normales, a partir de 1 MB (1024 Kb) la caché resulta ineficaz, e incluso pudiera llegar a ralentizar el funcionamiento del ordenador.

El tamaño idóneo depende del de la RAM

RAM (MB) Caché (Kb)

1 a 4 128 ó 256

4 a 12 256

12 a 32 512

más de 32 512 a 1024

Page 7: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo:

Pentium II/III tienen 32 Kb de caché interna, y 512 Kb de caché externa al encapsulado del microchip (L2, en este caso

de dos chips). Funciona a una frecuencia que es la mitad de

la del micro (es decir, a 133, 150 MHz o más), mientras que la caché externa clásica funciona a la de la placa base (de 50 a 66 MHz en los Pentium y 100 MHz en los AMD K6-2).

Page 8: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo ICPU Memoria Caché L2

Pentium, K5, K6 Externa, en la placa base

Pentium Pro Interna, en la CPU

Pentium II, Athlon Externa, en un módulo cercano a la CPU

Celeron (1ra generación) Ninguna

Celeron (generaciones posteriores), Pentium III, 4, Duron, Athlon XP

Interna, en la CPU

Page 9: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo IIProcesadores mas comunes y sus memorias caché

CPU Caché L1 Caché L2

Celeron 32 KB 128 KB

Duron 128 KB 64 KB

Athlon XP 128 KB 512 KB

Pentium 4 20 KB 256 KB

Pentium 4 “Northwood”

20 KB 512 KB

Page 10: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Hemos visto….Ley de localidad

todo programa favorece una parte de su espacio de direcciones en cualquier instante de tiempo.

2 dimensiones:

Localidad temporal (tiempo). Si se referencia un elemento tenderá a ser referenciado pronto.

Localidad espacial (espacio). Si se referencia un elemento, los elementos cercanos a él tenderán a ser referenciados pronto.

Page 11: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Terminología básica (1)Mapa de Memoria: espacio direccionable (2n)

Acierto (hit) : un acceso a un bloque de memoria que se encuentra en el nivel superior

Fallo (miss) : el bloque no se encuentra en ese nivel

Frecuencia de aciertos : fracción de accesos a memoria encontrados en el nivel superior

Frecuencia de fallos (1 - frecuencia de aciertos) : fracción de accesos a memoria no encontrados en el nivel superior

Page 12: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Terminología básica (2)Tiempo de acierto : tiempo necesario para acceder a un dato presente en el nivel superior de la jerarquía

incluye el tiempo necesario para saber si el acceso es un acierto o un fallo

Penalización de fallo : tiempo necesario para sustituir un bloque de nivel superior por el correspondiente bloque de nivel más bajo, más el tiempo necesario para proporcionar este bloque al dispositivo que lo solicito (generalmente la CPU).

Page 13: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Penalización de fallo...2 componentes:

tiempo de acceso : tiempo necesario para acceder a la primera palabra de un bloque en un fallo

relacionado con la latencia del nivel más bajo

tiempo de transferencia : tiempo para transferir las restantes palabras del bloquerelacionado con el ancho de banda entre las memoria

de nivel más bajo y más alto.

Page 14: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Cómo se pasan las direcciones entre la jerarquía de memorias?

Ubicación del bloque

Dónde puede ubicarse un bloque en el nivel superior?

Identificación del bloque

Cómo se encuentra un bloque en el nivel superior?

Sustitución de bloque

Qué bloque debe reemplazarse en caso de fallo?

Estrategia de escritura

Qué ocurre en una escritura?

Page 15: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Entonces el diseño de la memoria caché ha de resolver los siguientes problemas:

MIGRACIÓN: ¿Qué objetos migran de la memoria principal a la cache?

IDENTIFICACIÓN: ¿Cómo se busca una palabra en la cache?

UBICACIÓN: ¿En que marco de línea se puede almacenar cada línea?

EXTRACCIÓN: ¿Qué líneas se copian a la cache y cuándo?

REEMPLAZO: ¿Qué información debe desalojarse para almacenar una nueva línea producto de un fallo?

ESCRITURA: ¿Cómo se tratan las escrituras?

Page 16: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Migración

La política que cumplen todas las caches es la de migrar bloques de información de tamaño fijo que se denominan “líneas”.

Por ello se considera dividida la memoria principal en líneas y la cache en marcos de línea.

Las líneas suelen tener un tamaño de 2v palabras. La dirección de la línea se obtiene eliminando los v bits

menos significativos de la dirección de la palabra. Valores típicos de v=1,2, 3 o 4 Esto da líneas de 2, 4, 8 o 16 palabras.

Page 17: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Identificación de un bloque de cache (línea)

Bloque de datos

etiqueta

0 1 1 0 1 0 1 1

Dirección de memoria

comparador

Hit

Bloquede

Cache(MARCO)

Page 18: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ubicación de un bloque en la cache (marco)

• correspondencia directa cada bloque debe ir solamente en un lugar dentro de la cache

asociativa un bloque puede ubicarse en cualquier lugar de la cache

asociativa por conjuntos un bloque puede ser colocado en un grupo restringido de lugares de la cache un conjunto es un grupo de dos o más marcos (bloques) de la cache

Page 19: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ecuaciones de ubicación de bloques (marcos)

• correspondencia directa

ubicación = dirección (x) mod (m) marcos

asociativa

ubicación = cualquiera

asociativa por conjuntos

ubicación = dirección (x) mod (m) conj.

Page 20: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo

01234567bloquenum 01234567

bloquenum 01234567

bloquenum

0000000000111111111122222222223301234567890123456789012345678901

asociativa total corresp. directa asoc. por conj.

• cache de 8 bloques (marcos)• memoria de 32 celdas. • cache asociativa por conjuntos tiene 4 conjuntos de 2 bloques c/u

Page 21: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

EjemploEstructura de la Caché:

Page 22: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo de Caché: DECStation 3100

Procesador MIPS R2000

Segmentación similar a la vista

Cada ciclo de reloj solicita (velocidad máxima): Una palabra de instrucción y una de datos

Posee dos Cachés: Instrucciones y datos

16 Kbloques (Bloque = 1 palabra)

Page 23: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo de Caché:DECStation 3100

Pasos para una petición de lectura1. Enviar dirección a la caché adecuada Del PC (Instrucciones) De la salida de la ALU (Datos)

2. Si hay acierto toma I ó D Si hay fallo envía dirección a MP y lo escribimos en la Caché

Pasos y problemas de escritura en Caché (Datos) Formas de mantener la coherencia: Escritura directa (write-through),

Postescritura (write-back)

DECStation utiliza escritura directa1. Indexa la Caché utilizando los bits 15-22. Escribir en la palabra de la Caché

Page 24: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo 1 Proceso de

acceso a la caché en un ejemplo

Contenido de la Caché

Page 25: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo 2

Dirección de bloque de memoria accedido

Acierto o fallo

Contenido de la cache después de la referencia

0 1 2 3

0 Fallo Memoria [0]

8 Fallo Memoria [8]

0 Fallo Memoria [0]

6 Fallo Memoria [0] Memoria [6]

8 Fallo Memoria [8] Memoria [6]

Dirección de bloque

Bloque de cache

0 (0 modulo 4) = 0

6 (6 modulo 4) = 2

8 (8 modulo 4) = 0

Page 26: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Dirección de bloque Conjunto de la cache

0 (0 modulo 2) = 0

6 (6 modulo 2) = 2

8 (8 modulo 2) = 0

Dirección de bloque de memoria accedido

Acierto o fallo

Contenido de la cache después de la referencia

0 1 2 3

0 Fallo Memoria [0]

8 Fallo Memoria [0] Memoria [8]

0 Acierto Memoria [0] Memoria [8]

6 Fallo Memoria [0] Memoria [6]

8 Fallo Memoria [8] Memoria [6]

Page 27: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Dirección de bloque de memoria accedido

Acierto o fallo

Contenido de la cache después de la referencia

0 1 2 3

0 Fallo Memoria [0]

8 Fallo Memoria [0] Memoria [8]

0 Acierto Memoria [0] Memoria [8]

6 Fallo Memoria [0] Memoria [8] Memoria [6]

8 Acierto Memoria [0] Memoria [8] Memoria [6]

Page 28: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Identificación

La memoria cache se divide en 2r

conjuntos Cada conjunto tiene m marcos de línea (2

y 4) Una línea se ubica en el conjunto

x mod 2r

Page 29: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Identificación

Nos quedamos con los r bits menos significativos de la dirección x

Estos r bits menos significativos de la dirección identifican el conjunto donde debe ubicarse la línea

Page 30: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo

MP de 228 bytes Organizada en: palabras de 4 bytes Líneas de 16 palabras – 24

La cache tiene 28 - 256 conjuntos asociativos de 2 marcos cada uno Los 2 bits menos significativos identifican el byte Los 4 bits siguientes la palabra Los 8 bits siguientes el conjunto La dirección de la línea, formada por 28-4-2= 22 bits, se divide en: 8 bits menos significativos – conjunto 22-8 = 14 bits restantes- etiqueta

Page 31: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo (parte 1)Caché de 512 bytes dividida en bloques de 16 bytes (32 bloques)La caché está, a su vez, agrupada en 8 conjuntos de 4 bloques cada uno (4 vías).

El nivel inferior es una RAM de 16 Kbytes. Entonces tiene 1024 bloques de 16 bytes cada uno

0 1 2 3 4 5 6 7

0 1 . . . . . . . . . . . . . . . . . . . . . . . .1023

Page 32: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo (parte 2)Si la dirección que necesita la CPU es 9000 entonces:

bloque = 9000 DIV 16 = 562

desplaz = 9000 MOD 16 = 8

En la caché irá en el conjunto:

conjunto = 562 MOD 8 = 2

y el valor de la etiqueta será:

etiqueta = 562 DIV 8 = 70

70 2 8etiqueta indice desplazamiento

Page 33: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ejemplo (parte 3)en binario sería:

9000 = 1000 1100 101 000

Como el bloque es de 16 bytes, el desplazamiento lo dan los 4 últimos bits

desplazamiento = 1000 ( = 8)dir. est. bloque = 1000 1100 10

Como la caché es de 8 conjuntos, entonces, el MOD 8 representa los últimos3 bits de la dirección de estructura de bloque. Entonces:

indice = 010 ( = 2)

etiqueta = 1000 110 ( = 70)

1000110 010 1000etiqueta indice desplazamiento

Page 34: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Extracción

Determina qué líneas se transfieren a la cache y cuando.

Existen dos técnicas: Extracción por demandaExtracción por anticipación

Page 35: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Extracción

Por demanda: se transfiere una línea a la caché cuando hay un falloCuando la palabra pedida NO está en la

caché Por anticipación: se aprovecha la

proximidad secuencial trayendo líneas antes que se produzcan fallos

Page 36: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Extracción por anticipación

Alternativas Traer la línea j+1 cuando se accede a una

palabra de la línea j (siempre que NO este) Cuando se produce un fallo en la línea j, se

traen las líneas j y j+1 La línea j+1 se marca como anticipada

Son exitosas en las caches de instrucciones por la gran proximidad secuencial

Page 37: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Reemplazo

Cuando se ha producido un fallo de acceso en la cache se procede a obtener la línea afectada de la memoria principal y almacenarla en la cache.

Sabemos que se almacenará en el conjunto que le corresponda por su dirección, pero ¿dónde se debe almacenar la nueva línea?

Page 38: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Reemplazo de bloques (marcos)Ante un fallo de cache es necesario traer un bloque nuevo y

ubicarlo en algún lugar del nivel superior

Si existe algún bloque de cache con datos no válidos, el reemplazo se hace en ese lugar

Debido a la alta frecuencia de aciertos de la cache esnecesario tomar estrategias de reemplazo

Page 39: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Reemplazo de bloques (marcos)Si la cache es de mapeo directo no hay problema, ya queel nuevo bloque puede ir en un solo lugar

En caso de caches asociativas el bloque puede ubicarse endiferentes lugares.

Estrategias:• reemplazo aleatorio• reemplazo pseudo aleatorio• LRU (menos recientemente usado)

Page 40: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Reemplazo de bloques (marcos)

Aleatorio : se selecciona aleatoriamente uno de los m marcos del conjunto afectado (mediante algún mecanismo de hardware) .

FIFO (First in First out): se elimina la línea que lleva más tiempo almacenada en el conjunto. Cada marco debe incluir unos bits de antigüedad.

LRU (Least recently used): se elimina la línea que lleva más tiempo sin ser utilizada. Se guarda unos bits de utilización que se actualizan con cada acceso al conjunto.

Page 41: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Notas•La estrategia aleatoria es sencilla de construir en hardware

•Cuando el número de bloques a gestionar aumenta, la •estrategia LRU se convierte es muy cara•frecuentemente se utiliza una aproximación de ésta

•La política de reemplazo juega un papel más importante en•las caches más pequeñas que en las más grandes donde hay •más opciones para sustituir.

• Asociatividad 2 vías 4 vías 8 vías•tamaño LRU aleatorio LRU aleatorio LRU aleatorio•16 Kb 5.18% 5.69% 4.67% 5.29% 4.39% 4.96%•64 Kb 1.88% 2.01% 1.54% 1.66% 1.39% 1.53%•256 Kb 1.15% 1.17% 1.17% 1.13% 1.12% 1.12%

Page 42: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Más notas….

Coherencia: ¿qué ocurre si un dato de la caché se modifica? En tal caso se produce una inconsistencia entre los contenidos

memoria caché y memoria principal Problema grave en sistemas multiprocesador Estrategias de actualización:

Write back Write through

También cabe considerar las estrategias de sustitución de líneas de caché cuando existen varias vías por conjunto

Normalmente se emplean cachés separadas para instrucciones y para datos

Page 43: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Estrategias de escrituraPolíticas de escritura:

Escritura directa (Write Through): la información se escribe en el bloque de cache y también en el bloque de memoria de nivel inferior.

Postescritura (Write Back): la información se escribe solo en el bloque de la cache. La línea en la que se ha escrito se dice que esta sucia (dirty bit).El bloque modificado de la cache se escribe en memoria principal sólo cuando es reemplazado.

Page 44: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Ventajas de cada políticaEscritura directa

• los fallos de lectura no ocasionan escrituras en el nivel inferior• más fácil de implementar que el anterior• mantiene siempre coherente la memoria cache y la memoria inferior (útil en sistemas multiproceso en los que varias CPU's acceden simultáneamente a los datos)

Postescritura• las escrituras se realizan a velocidad de la cache• múltiples escrituras de un bloque requieren una única escritura en la memoria de nivel inferior

Page 45: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Fallos de escrituraEl fallo se produce cuando se intenta escribir una palabra de

un bloque que no está en la cache

políticas

• Ubicar en escritura : el bloque se carga en la cache, seguido de las acciones anteriores de acierto de escritura. Esto es similar a un fallo de lectura.

No ubicar en escritura : el bloque se modifica en el nivel inferior y no se carga en la cache.

Page 46: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Rendimiento de la cacheTiempo de CPU

• ciclos de reloj de ejecución del programa• ciclos de reloj de espera al sistema de memoria

TCPU = (ciclos ejecución-CPU + ciclos detención-memoria) * Tciclo de reloj

Ejecución de instruccionesaciertos de cache

Accesos a memoria RAMpenalizaciones de fallo

Page 47: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Rendimiento de la cache

TCPU = (ciclos ejecución-CPU + ciclos detención-memoria) * Tciclo de reloj

ciclos detención-memoria = accesos memoria * PF * FF programa

Con :

Factorizando el recuento de instrucciones:

TCPU = IC * (CPIejecución + accesos-memoria * FF * PF) * Tciclo

instrucción

Page 48: Memoria Caché Estructura y Tecnolología de Ordenadores.

Estructura y Tecnología de OrdenadoresETSII- ULL2004

Tipos de fallos de cacheForzosos : el primer acceso a un bloque no está en la cache; así que el bloque debe ser traído a la misma. Estos también se denominan fallos de arranque en frío o de primera referencia.

Capacidad : si la cache no puede contener todos los bloques necesarios durante la ejecución de un programa, se presentarán fallos de capacidad debido a los bloques que se descartan y luego se recuperan.

Conflicto : si la estrategia de ubicación es asociativa por conjuntos o de mapeo directo, estos fallos ocurrirán, ya que se puede descartar un bloque y posteriormente recuperarlo si a un conjunto le corresponden demasiados bloques.