Funciones de correspondencia
-
Upload
israel-rey -
Category
Education
-
view
1.079 -
download
0
Transcript of Funciones de correspondencia
Arquitectura de Computadores
Memoria Caché: Funciones de Correspondencia
Objetivos
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
2 Arquitectura de Computadores
Indica la forma como mapeo los bloques de memoria principal en las líneas de la memoria caché
Arquitectura de Computadores3
Determina donde guardar un bloque Determina donde buscar un dato Permite determinar qué bloque hay en cada línea
Memoria Caché
Función de Correspondencia
Arquitectura de Computadores4
Correspondencia Directa (directly mapped)
Correspondencia Asociativa (fully associative)
Correspondencia Asociativa por conjuntos (N-way associative)
Funciones de Correspondencia
Tipos de Correspondencia
Arquitectura de Computadores5
Correspondencia Directa
(directly mapped)
Funciones de Correspondencia
Arquitectura de Computadores6
Correspondencia Directa (directly mapped) Mapea a priori Cada bloque tiene asociada una línea de la caché
Correspondencia Directa
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
00
01
02
13
14
15
62
63
64
82
83
84
85
96
97
98
99
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
00
01
02
13
14
15
62
63
64
82
83
84
85
96
97
98
99
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
00
01
02
13
14
15
62
63
64
82
83
84
85
96
97
98
99
Llega alumno 102 Se estaciona en 02
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
00
01
02
13
14
15
62
63
64
82
83
84
85
96
97
98
99
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.
00
01
02
13
14
15
62
63
64
82
83
84
85
96
97
98
99
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.
82
83
84
85
6
00
01
02
13
14
15
62
63
64
96
97
98
99
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.
82
83
84
85
6
00
01
02
13
14
15
62
63
64
96
97
98
99
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
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
0000 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
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
01010101
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 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
Determina la línea de la caché
0000010110101111
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 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
0000 00000 00000 00000 00000 00000 00000 00000 0
Arquitectura de Computadores19
Correspondencia Directa
¿Qué pasa si duplicamos la memoria principal? El tag aumenta en un bit
Tag asociado a la dirección
00000000
0000 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
0000 00000 00000 00000 00000 00000 00000 00000 0
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
0000 00010000 00100000 00110000 01000000 01010000 01100000 0111
0000010110101111
00000000
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 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
0000010110101111
01010101
00110011
00000000
00001111
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
Arquitectura de Computadores23
Correspondencia Directa
Ej. Memoria principal de 2 Mb
2 * 220 21 bits. Caché de 64 Kb Línea de 4 bytes
64Kb / 4b = 16K_líneas 24 * 210 14 bits
Para una dirección cualquiera
A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
Índice del byte
LíneaTag
Arquitectura de Computadores24
Correspondencia Asociativa
(fully associative)
Funciones de Correspondencia
Arquitectura de Computadores25
Correspondencia Asociativa (fully associative) Mapea en forma dinámica Cada bloque puede estar en cualquier línea
Correspondencia Asociativa
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
00
01
02
13
14
15
62
63
64
82
83
84
85
96
97
98
99
Arquitectura de Computadores27
Llega alumno 814
Correspondencia Asociativa
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
Arquitectura de Computadores28
Ej. 1000 alumnos: 0-999 Cada uno se estaciona en el
primer estacionamiento libre.
Llega alumno 764
Correspondencia Asociativa
00
01
02
13
14
15
62
63
64
82
83
84
85
96
97
98
99
Llega alumno 102
Arquitectura de Computadores29
Correspondencia Asociativa
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
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
TAG814
764102
¿Qué almacenamos en el tag?
Todo el n° de alumno
00
01
02
13
14
15
62
63
64
82
83
84
85
96
97
98
99
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
764102
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
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 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
01010101
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 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
Tag asociado a la dirección
01010101
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.
Arquitectura de Computadores36
Correspondencia Asociativa por conjuntos
(N-way associative)
Funciones de Correspondencia
Arquitectura de Computadores37
Correspondencia Asociativa por conjuntos (N-way associative)
Mezcla de la correspondencia directa y asociativa
Correspondencia Asociativa por Conjuntos
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)
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íneaspor conjunto… NO LA CANTIDAD DE CONJUNTOS
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 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
01010101
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 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
00110011
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 00000000 00010000 00100000 00110000 01000000 01010000 01100000 0111
00110011
01010101
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
Arquitectura de Computadores44
Ej, 4 vías. Memoria Principal de 1Kb 210
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
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 ?
1101100111conjunto 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