La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura de Computadores Clase 19 Memoria Caché: Funciones de Correspondencia IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica.

Presentaciones similares


Presentación del tema: "Arquitectura de Computadores Clase 19 Memoria Caché: Funciones de Correspondencia IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica."— Transcripción de la presentación:

1 Arquitectura de Computadores Clase 19 Memoria Caché: Funciones de Correspondencia IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

2 Objetivos Capítulo 5 : Sistemas de Memoria Entender el modo de operación de las distintas funciones de correspondencia utilizadas en las memorias caché Entender como cada función mapea las direcciones de la memoria principal en la memoria caché Entender las ventajas y desventajas de cada función de correspondencia Objetivos R.Mitnik 2Arquitectura de Computadores

3 Indica la forma como mapeo los bloques de memoria principal en las líneas de la memoria caché R.Mitnik Arquitectura de Computadores3 Determina donde guardar un bloque Determina donde buscar un dato Permite determinar qué bloque hay en cada línea Memoria Caché Capítulo 5 : Sistemas de Memoria – Memoria Caché Función de Correspondencia

4 R.Mitnik Arquitectura de Computadores4 Correspondencia Directa (directly mapped) Correspondencia Asociativa (fully associative) Correspondencia Asociativa por conjuntos (N-way associative) Funciones de Correspondencia Capítulo 5 : Sistemas de Memoria – Memoria Caché – Elementos de diseño Tipos de Correspondencia

5 R.Mitnik Arquitectura de Computadores5 Correspondencia Directa (directly mapped) Funciones de Correspondencia Capítulo 5 : Sistemas de Memoria – Memoria Caché

6 R.Mitnik Arquitectura de Computadores6 Correspondencia Directa (directly mapped) Mapea a priori Cada bloque tiene asociada una línea de la caché Correspondencia Directa Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

7 R.Mitnik Arquitectura de Computadores7 Ej. 1000 alumnos: 0-999 Cada uno se estaciona en el estacionamiento determinado por sus últimos 2 dígitos del número de alumno. Correspondencia Directa 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

8 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 R.Mitnik Arquitectura de Computadores8 Ej. 1000 alumnos: 0-999 Cada uno se estaciona en el estacionamiento determinado por sus últimos 2 dígitos del número de alumno. Correspondencia Directa Llega alumno 814 Se estaciona en 14 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

9 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 R.Mitnik Arquitectura de Computadores9 Ej. 1000 alumnos: 0-999 Cada uno se estaciona en el estacionamiento determinado por sus últimos 2 dígitos del número de alumno. Correspondencia Directa Llega alumno 764 Se estaciona en 64 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

10 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 Llega alumno 102 Se estaciona en 02 R.Mitnik Arquitectura de Computadores10 Ej. 1000 alumnos: 0-999 Cada uno se estaciona en el estacionamiento determinado por sus últimos 2 dígitos del número de alumno. Correspondencia Directa Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

11 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 R.Mitnik Arquitectura de Computadores11 Correspondencia Directa Queremos ir a buscar el auto del alumno 683 ¿Cómo sabemos si el auto del estacionamiento 83 es el de él? Necesitamos almacenar información extra que indique que auto es el que está en cada estacionamiento. Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

12 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 R.Mitnik Arquitectura de Computadores12 Correspondencia Directa TAG Queremos ir a buscar el auto del alumno 683 ¿Cómo sabemos si el auto del estacionamiento 83 es el de él? Necesitamos almacenar información extra que indique que auto es el que está en cada estacionamiento. Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

13 82 83 84 85 6 00 01 02 13 14 15 62 63 64 96 97 98 99 R.Mitnik Arquitectura de Computadores13 ¿Qué guardo? El dígito de las centenas El resto determinado por número de n° estacionamiento Correspondencia Directa TAG 8 7 1 9 5 Entonces el auto guardado en 83 no corresponde al 683 sino al 583. Hay que ir a buscar el auto 683 fuera del campus y actualizar el tag. Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

14 82 83 84 85 6 00 01 02 13 14 15 62 63 64 96 97 98 99 R.Mitnik Arquitectura de Computadores14 ¿Si quiero el auto del alumno 963? Voy a 63 y leo el tag. El auto es el que busco. Correspondencia Directa TAG 8 7 1 9 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

15 R.Mitnik Arquitectura de Computadores15 Correspondencia Directa Memoria Cache 00 01 10 11 Cada línea de caché corresponde a un “estacionamiento”. Cada bloque de la memoria principal se asocia a una línea particular. Ej.Memoria principal de 256 bytes, caché de 8 bytes, bloques de 2 bytes. Memoria Principal = 128 bloques Caché = 4 líneas Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

16 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 R.Mitnik Arquitectura de Computadores16 Correspondencia Directa Cada línea de caché corresponde a un “estacionamiento”. Cada bloque de la memoria principal es asociada a una línea particular. Ej.Memoria principal de 256 bytes, caché de 8 bytes, bloques de 2 bytes, Determina el byte dentro del bloque o de la línea 0101010101010101 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

17 R.Mitnik Arquitectura de Computadores17 Correspondencia Directa Cada línea de caché corresponde a un “estacionamiento”. Cada bloque de la memoria principal es asociada a una línea particular. Ej.Memoria principal de 256 bytes, caché de 8 bytes, bloques de 2 bytes, 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 Determina la línea de la caché 00 01 10 11 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

18 R.Mitnik Arquitectura de Computadores18 Correspondencia Directa Cada línea de caché corresponde a un “estacionamiento”. Cada bloque de la memoria principal es asociada a una línea particular. Ej.Memoria principal de 256 bytes, caché de 8 bytes, bloques de 2 bytes, Tag asociado a la dirección 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 0 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

19 R.Mitnik Arquitectura de Computadores19 Correspondencia Directa ¿Qué pasa si duplicamos la memoria principal? El tag aumenta en un bit Tag asociado a la dirección 0000000000000000 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 0 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

20 R.Mitnik Arquitectura de Computadores20 Correspondencia Directa ¿Qué pasa si duplicamos la cantidad de líneas de la caché? Los bits que determinan las líneas aumentan en 1 El tag se reduce en un bit Determina la línea de la caché 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 00 01 10 11 0000000000000000 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

21 R.Mitnik Arquitectura de Computadores21 Correspondencia Directa ¿Qué pasa si duplicamos el tamaño de las líneas? Índice del byte en el bloque o línea aumenta en un bit Bit de la línea se mantiene, pero se desplaza. Tag se reduce en 1 Determina el byte dentro del bloque o de la línea 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 00 01 10 11 0101010101010101 0011001100110011 0000000000000000 0000111100001111 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

22 R.Mitnik Arquitectura de Computadores22 Correspondencia Directa Ventajas Tag pequeño (menos memoria extra) Muy rápidas No requieren políticas de reemplazo Lógica simple Desventajas Poca eficiencia en el uso del espacio Puedo sobrescribir datos aún cuando hay lugares libres Muchas colisiones Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

23 R.Mitnik Arquitectura de Computadores23 Correspondencia Directa Ej. Memoria principal de 2 Mb 2 * 2 20  21 bits. Caché de 64 Kb Línea de 4 bytes 64Kb / 4b = 16K_líneas 2 4 * 2 10  14 bits Para una dirección cualquiera A 20 A 19 A 18 A 17 A 16 A 15 A 14 A 13 A 12 A 11 A 10 A9A9 A8A8 A7A7 A6A6 A5A5 A4A4 A3A3 A2A2 A1A1 A0A0 Índice del byte Línea Tag Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

24 R.Mitnik Arquitectura de Computadores24 Correspondencia Asociativa (fully associative) Funciones de Correspondencia Capítulo 5 : Sistemas de Memoria – Memoria Caché

25 R.Mitnik Arquitectura de Computadores25 Correspondencia Asociativa (fully associative) Mapea en forma dinámica Cada bloque puede estar en cualquier línea Correspondencia Asociativa Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

26 R.Mitnik Arquitectura de Computadores26 Ej. 1000 alumnos: 0-999 Cada uno se estaciona en el primer estacionamiento libre. 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 Correspondencia Asociativa Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

27 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 R.Mitnik Arquitectura de Computadores27 Llega alumno 814 Correspondencia Asociativa Ej. 1000 alumnos: 0-999 Cada uno se estaciona en el primer estacionamiento libre. Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

28 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 R.Mitnik Arquitectura de Computadores28 Ej. 1000 alumnos: 0-999 Cada uno se estaciona en el primer estacionamiento libre. Llega alumno 764 Correspondencia Asociativa Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

29 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 Llega alumno 102 R.Mitnik Arquitectura de Computadores29 Correspondencia Asociativa Ej. 1000 alumnos: 0-999 Cada uno se estaciona en el primer estacionamiento libre. Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

30 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 R.Mitnik Arquitectura de Computadores30 Queremos ir a buscar el auto del alumno 683 ¿Cómo sabemos donde está? Correspondencia Asociativa 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 TAG 814 764 102 ¿Qué almacenamos en el tag? Todo el n° de alumno Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

31 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 R.Mitnik Arquitectura de Computadores31 TAG ¿Qué pasa si se llena el estacionamiento? Al llegar un nuevo auto, sacamos alguno conforme a alguna política Correspondencia Asociativa 814 764 102 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

32 R.Mitnik Arquitectura de Computadores32 Memoria Cache 00 01 10 11 Cualquier bloque de memoria principal puede estar en cualquier línea de la caché Ej. Memoria principal de 256 bytes, caché de 8 bytes, bloques de 2 bytes. Memoria Principal = 128 bloques Caché = 4 líneas Correspondencia Asociativa Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

33 R.Mitnik Arquitectura de Computadores33 Cualquier bloque de memoria principal puede estar en cualquier línea de la caché Ej. Memoria principal de 256 bytes, caché de 8 bytes, bloques de 2 bytes. Memoria Principal = 128 bloques Caché = 4 líneas Correspondencia Asociativa Determina el byte dentro del bloque o de la línea 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0101010101010101 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

34 R.Mitnik Arquitectura de Computadores34 Cualquier bloque de memoria principal puede estar en cualquier línea de la caché Ej. Memoria principal de 256 bytes, caché de 8 bytes, bloques de 2 bytes. Memoria Principal = 128 bloques Caché = 4 líneas Correspondencia Asociativa 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 Tag asociado a la dirección 0101010101010101 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

35 R.Mitnik Arquitectura de Computadores35 Correspondencia Asociativa Ventajas Uso eficiente de la memoria (100%) Desventajas Tag muy grande. Requiere politicas de reemplazo Requiere almacenar información adicional para las políticas de reemplazo. Es muy caro determinar qué bloque está en cada línea Búsqueda puede ser muy lenta si la caché aumenta de tamaño O(n). Ó muy cara electrónicamente si se usa búsqueda en paralelo. Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

36 R.Mitnik Arquitectura de Computadores36 Correspondencia Asociativa por conjuntos (N-way associative) Funciones de Correspondencia Capítulo 5 : Sistemas de Memoria – Memoria Caché

37 R.Mitnik Arquitectura de Computadores37 Correspondencia Asociativa por conjuntos (N-way associative) Mezcla de la correspondencia directa y asociativa Correspondencia Asociativa por Conjuntos Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

38 R.Mitnik Arquitectura de Computadores38 Ej. 1000 alumnos: 0-999 00 01 02 13 14 15 62 63 64 82 83 84 85 96 97 98 99 Correspondencia Asociativa por Conjuntos Las 100 entradas se dividen en 10 grupos de 10. El grupo donde se estaciona alguien depende del último dígito de su n° de alumno (~directly mapped) Dentro del grupo se estaciona donde mejor le parezca (~fully-associative) Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

39 R.Mitnik Arquitectura de Computadores39 Memoria Cache 00 01 10 11 Ej. 2 vías. Memoria Principal = 128 bloques Caché = 4 líneas Correspondencia Asociativa por Conjuntos Las vías indican la cantidad de líneas por conjunto… NO LA CANTIDAD DE CONJUNTOS Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

40 R.Mitnik Arquitectura de Computadores40 Ej. 2 vías. Memoria Principal = 128 bloques Caché = 4 líneas Correspondencia Asociativa por Conjuntos Determina el byte dentro del bloque o de la línea 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0101010101010101 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

41 R.Mitnik Arquitectura de Computadores41 Ej. 2 vías. Memoria Principal = 128 bloques Caché = 4 líneas Correspondencia Asociativa por Conjuntos Determina el conjunto de la memoria cache 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0011001100110011 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

42 R.Mitnik Arquitectura de Computadores42 Ej. 2 vías. Memoria Principal = 128 bloques Caché = 4 líneas Correspondencia Asociativa por Conjuntos Tag asociado a la dirección 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0011001100110011 0101010101010101 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

43 R.Mitnik Arquitectura de Computadores43 Ventajas Tag más pequeño que en fully – associative, pero más grande que Directly – Mapped Permite mayor eficiencia en el uso de la memoria por la flexibilidad. Búsqueda dentro del conjunto es más rápida. Correspondencia Asociativa por Conjuntos Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

44 R.Mitnik Arquitectura de Computadores44 Ej, 4 vías. Memoria Principal de 1Kb  2 10 10 bits Líneas de 2 bytes 1 bit para especificar línea Caché de 64 bytes  64 / 2 bytes por línea = 32 líneas.  32 líneas / 4 vías = 8 conjuntos. 3 bits para especificar conjunto. ¿ En que direcciones de la caché podría estar el dato almacenado en la dirección 1101100111 ? Correspondencia Asociativa por Conjuntos Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

45 R.Mitnik Arquitectura de Computadores45 Correspondencia Asociativa por Conjuntos Memoria Caché 00h 01h 02h 03h 04h 05h 06h 07h 08h 1Bh 1Ch 1Dh 1Eh 1Fh Conjunto 0 : líneas 0 – 3 Conjunto 1 : líneas 4 – 7 Conjunto 2 : líneas 8 – 11 … Conjunto n : líneas N*n  N*n + N-1 Ej, 4 vías. ¿ En que dirección de la caché podría estar el dato almacenado en la dirección 1101100111 ? 1101100111 conjunto 3 byte 1 Línea 0 : direcciones 0 – 1 Línea 1 : direcciones 2 – 3 … Línea n : direcciones 2*n + 2*n+1 Conjunto 3 : líneas 12 -15 Línea 12 : direcciones 24 - 25 13 : 26 - 27 14 : 28 - 29 15 : 30 - 31 Capítulo 5 : Sistemas de Memoria – Memoria Caché – Función de Correspondencia

46 Resumen Qué son las funciones de correspondencia Correspondencia directa Correspondencia asociativa Correspondencia asociativa por conjuntos Mapeo Tag Línea Indice del byte (dentro de la línea) Ventajas y desventajas de cada función de correspondencia R.Mitnik 46Arquitectura de Computadores Resumen Capítulo 5 : Sistemas de Memoria – Memoria Caché


Descargar ppt "Arquitectura de Computadores Clase 19 Memoria Caché: Funciones de Correspondencia IIC 2342 Semestre 2008-2 Rubén Mitnik Pontificia Universidad Católica."

Presentaciones similares


Anuncios Google