Memoria Cache

27
MEMORIA INTERNA. ORGANIZACIÓN Y ARQUITECTURA DEL ORGANIZACIÓN Y ARQUITECTURA DEL COMPUTADOR II COMPUTADOR II

Transcript of Memoria Cache

Page 1: Memoria Cache

MEMORIA INTERNA.

ORGANIZACIÓN Y ARQUITECTURA ORGANIZACIÓN Y ARQUITECTURA DEL COMPUTADOR IIDEL COMPUTADOR II

Page 2: Memoria Cache

Memoria Interna

2

Programa1. Jerarquía de Memoria

2. Memoria Caché• Definición y Funcionamiento • Elementos de diseño de la caché• Ejemplo de funcionamiento

3. Memoria Virtual.• Memoria Segmentada• Memoria Paginada• Memoria Virtual

4. Conclusiones

Page 3: Memoria Cache

Memoria Interna

3

Características de los sistemas Características de los sistemas de memoriade memoria

Ubicación:Ubicación:

Procesador.Procesador.

Interna (Principal).Interna (Principal).

Externa (Secundaria).Externa (Secundaria).

Capacidad:Capacidad:

Tamaño de la Palabra. (8, 16, 32 y Tamaño de la Palabra. (8, 16, 32 y 64bits).64bits).

Numero de palabras.Numero de palabras.

Unidad de Transferencia: (64, 128 y 256 bits)Unidad de Transferencia: (64, 128 y 256 bits)

Palabra.Palabra.

Bloque.Bloque.

Método de Acceso:Método de Acceso:

Acceso Secuencial.Acceso Secuencial.

Acceso Directo.Acceso Directo.

Acceso Aleatorio.Acceso Aleatorio.

Acceso Asociativo.Acceso Asociativo.

Prestaciones: (Tn = Ta + N/R)Prestaciones: (Tn = Ta + N/R)

Tiempo de Acceso.Tiempo de Acceso.

Tiempo de Ciclo.Tiempo de Ciclo.

Velocidad de Transferencia.Velocidad de Transferencia.

Dispositivo Físico:Dispositivo Físico:

Semiconductor.Semiconductor.

Soporte Magnético.Soporte Magnético.

Características Físicas:Características Físicas:

Volátil / No Volátil.Volátil / No Volátil.

Borrable / No Borrable.Borrable / No Borrable.

Organización.Organización.

Page 4: Memoria Cache

Memoria Interna

4

Los programas y datos se almacenan en memoria.

La jerarquía de memoria surge para optimizar la relación que existe entre el coste, tiempo de acceso y tamaño de la memoria.

Localidad de las referencias Existe una alta probabilidad de que dos referencias consecutivas en el tiempo se encuentren alojadas en posiciones relativamente próximas en memoria. Además, una referencia reciente tiene cierta probabilidad de ser referenciada de nuevo.

1. Jerarquía de Memoria.

Page 5: Memoria Cache

Memoria Interna

5

Esquema de la jerarquía de memoria.

La información sube y baja por la pirámide según las necesidades.El vértice de la pirámide tiene menos capacidad pero más velocidad y

contiene los datos que están siendo utilizados.

1. Jerarquía de Memoria.

Page 6: Memoria Cache

Memoria Interna

6

El objetivo de la memoria caché es lograr que la velocidad de la memoria sea la mas rápida posible, consiguiendo al mismo tiempo un tamaño más grande al precio de memorias semiconductoras menos costosas.

La memoria caché es una memoria muy rápida pero de pequeño tamaño entre la CPU y la memoria principal.

Entre Caché y Memoria Principal la transferencia de información se realiza en unidades mayores que la palabra, es decir, en “bloques”.

2. Memoria caché

Page 7: Memoria Cache

Memoria Interna

7

Estructura de un sistema de memoria Estructura de un sistema de memoria caché/principalcaché/principal

BloqueEtiqueta

Número

de línea

0

1

2

C - 1

Longitud

de bloque

(K palabras)

Caché

Dirección

De Memoria

0

1

2

2n - 1

3

Longitud

de

palabra

Bloque

(K palabras)

Bloque

Memoria Principal

M = 2n/K Bloques

Page 8: Memoria Cache

Memoria Interna

8

2. Memoria caché (Operación de Lectura de la Caché)

Page 9: Memoria Cache

Memoria Interna

9

2. Memoria caché (Organización)

Page 10: Memoria Cache

Memoria Interna

10

Los elementos a tener en cuenta son:

Función de correspondencia: Es el mecanismo que asigna una línea de caché a un bloque de memoria.Algoritmo de sustitución: Una vez llena la caché, ante una nueva petición debe decidir cual de las líneas es eliminada.Política de escritura. Si se modifica un dato en la caché debemos decidir cuando se modifica también en memoria principal.Mecanismo de coherencia de caché: Si hay una memoria principal y varias CPUs cada una con su caché, debemos mantener una relación lógica entre los datos en las cachés y la memoria principal.Otros elementos de diseño:

2. Elementos de diseño de la caché

Page 11: Memoria Cache

Memoria Interna

11

La caché va a ser una memoria asociativa (se accede por medio de una etiqueta).

Las direcciones ahora se pueden dividir en dos partes: número de bloque y desplazamiento (para la dirección física de la memoria principal).

La dirección para obtener un dato de la caché se puede descomponer de varias formas.

2. Memoria caché.

Page 12: Memoria Cache

Memoria Interna

12

Un bloque de memoria principal sólo puede ir a una línea. Cada bloque de memoria principal ya tiene su línea asignada:

Bloque 0-> Línea 0Bloque 1 -> Línea 1etc….. Bloque M -> Línea 0 (Si hay M líneas)Bloque M+1 -> Línea 1,…

La dirección se descompone en

Etiqueta Línea Palabra

2. Correspondencia directa

Page 13: Memoria Cache

Memoria Interna

13

Un bloque de memoria principal sólo puede ir a una línea.

2. Correspondencia directa

Page 14: Memoria Cache

Memoria Interna

14

2. Correspondencia directa

•Longitud de las direcciones = (s + w) bits•Numero de unidades direccionables = 2s+w palabras o bytes•Tamaño de bloque = Tamaño de línea = 2w palabras o bytes•Numero de bloques en memoria principal = 2s+w/2w = 2s

•Numero de líneas en cache = m = 2r

•Tamaño de la etiqueta = (s-r)bits

Page 15: Memoria Cache

Memoria Interna

15

Supongamos una memoria caché con correspondencia directa que almacena 64KB, cada bloque es de 512 Bytes. La Memoria Principal es de 16MB. Calcular la dirección virtual para la caché. (Palabra = Byte).

Solución:La caché tiene 64* 1024 / 512 = 128 líneas, es decir necesitamos 7 bits para codificar la línea.Cada línea tiene 512 palabras, es decir necesitamos 9 bits para codificar la palabra dentro de la línea.La memoria principal necesita 24 bits en el bus de direcciones para codificar los 16 MB. Es decir, las direcciones son de 24 bits.Por lo tanto:

Dirección virtual: 8 bits para etiqueta (= 24 -7-9)7 bits para la línea9 bits para la palabra

2. Ejercicio 2

Page 16: Memoria Cache

Memoria Interna

16

Un Computador dispone de una memoria RAM de 256 MB

y una Memoria Cache por correspondencia directa de 512KB.

Cada bloque contiene 8 palabras.

– Cuántos bloques hay en memoria principal

– Cuántas líneas tiene la memoria Cache

– Diseña el formato de direcciones de memoria principal.

– Dónde se hace corresponder , dentro de la Cache, la palabra de la

posición de memoria 3ABC8F8

Page 17: Memoria Cache

Memoria Interna

17

Considere un computador con las siguientes características: un total de 1 MB de memoria principal, el tamaño de palabra es de un Byte; el tamaño del bloque es de 16 Bytes, en un tamaño de cache de 64 KB. 3P

Las direcciones de memoria principal: F0010, 01234 Y CABEE, indique los valores de las etiquetas, dirección de línea de cache y desplazamientos de palabras con una cache con correspondencia directa.

Indique dos direcciones cualesquiera de memoria principal con etiquetas diferentes que se correspondan con la misma línea para una cache con correspondencia directa.

Page 18: Memoria Cache

Memoria Interna

18

Correspondencia asociativa.Cada bloque de memoria puede ir a cualquier línea de la caché.

Las direcciones están formadas por:

Etiqueta Palabra

2. Correspondencia asociativa.

Page 19: Memoria Cache

Memoria Interna

19

Correspondencia asociativa.

2. Correspondencia asociativa.

Page 20: Memoria Cache

Memoria Interna

20

•Longitud de las direcciones = (s + w) bits•Numero de unidades direccionables = 2s+w palabras o bytes•Tamaño de bloque = Tamaño de línea = 2w palabras o bytes•Numero de bloques en memoria principal = 2s+w/2w = 2s

•Numero de líneas en cache = indeterminado•Tamaño de la etiqueta = s bits

2. Correspondencia asociativa.

Page 21: Memoria Cache

Memoria Interna

21

Correspondencia asociativa por conjuntos.La caché se divide en n conjuntos, cada uno de k líneas. Un bloque de

memoria principal va al conjunto que le corresponde (en cualquiera de sus líneas).

Las direcciones están formadas por

Etiqueta Conjunto Palabra

2. Correspondencia asociativa por conjuntos.

Page 22: Memoria Cache

Memoria Interna

22

Correspondencia asociativa por conjuntos.

2. Correspondencia asociativa por conjuntos.

Page 23: Memoria Cache

Memoria Interna

23

2. Correspondencia asociativa por conjuntos.

•Longitud de las direcciones = (s + w) bits•Numero de unidades direccionables = 2s+w palabras o bytes•Tamaño de bloque = Tamaño de línea = 2w palabras o bytes•Numero de bloques en memoria principal = 2s+w/2w = 2s

•Numero de líneas en el conjunto = k•Numero de conjuntos = v = 2d

•Numero de líneas en cache = kv = k x 2d

•Tamaño de la etiqueta = (s-d)bits

Page 24: Memoria Cache

Memoria Interna

24

2. Algoritmos de sustitución.

Algoritmos de sustitución:Nos indica la línea que debe ser reemplazada.En el caso de correspondencia directa no hay problemas (sólo puede ir a una línea).

LRU (Least Recentlly Used: Menos Recientemente Utilizado). Se reemplaza la línea que se usó hace más tiempoFIFO (First Input First Output: El primero en entrar es el primero en salir). Se reemplaza la línea que se cargó en memoria hace más tiempo.LFU (Least Frecuently Used: Menos Frecuentemente Utilizada). Se reemplaza la línea que se usa con menos frecuencia.

Page 25: Memoria Cache

Memoria Interna

25

2. Política de escritura.

Política de EscrituraEs el mecanismo que nos indica cuando se actualizan los datos en memoria principal.

Escritura inmediata: Cuando se modifica un dato en la caché, se modifica en Memoria Principal. Inconveniente: Muchos accesos a memoria.Post escritura: Sólo se escribe en memoria principal cuando el bloque ha sido modificado en caché y debe ser reemplazado. Inconveniente: caché y memoria principal pueden tener datos distintos.

Page 26: Memoria Cache

Memoria Interna

26

2. Coherencia de caché.Mecanismo de coherencia de caché.

Si hay una memoria principal y varias CPUs cada una con su caché, debemos mantener una relación lógica entre los datos en las cachés y la memoria principal.

Vigilancia del bus en escritura inmediata: Si una caché escribe en memoria, las demás activan un indicador señalando que esa línea ya no es valida.

Transparencia Hardware: Se utiliza Hardware adicional para modificar todas las cachés.

Memoria excluida de la caché: Los datos que se pueden compartir entre procesadores se excluyen de la caché, sólo pueden estar en memoria principal.

Page 27: Memoria Cache

Memoria Interna

27

2. Otros elementos.Otros elementos del diseño de una caché.

Caché de dos niveles: Puedo definir dos niveles de caché.

Caché unificada frente a partida: Puedo definir una caché para datos y otra para instrucciones o bien una única caché dónde se almacena todo.

Longitud de la línea. Cuanto mayor longitud tenga la línea, menos fallos tendremos, pero un fallo supone un coste muy alto (hay que trasvasar muchos datos de la memoria principal a la caché).