T4.1. S. Memoria

Anuncio
Tema 4. Subsistema de Memoria
4.1. Introducción
4.2. Memoria cache
4.3. Memoria principal
4.4. Memoria virtual
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
1
Tema 4. Subsistema de Memoria
4.1. Introducción
Jerarquía de memoria y
tecnologías asociadas
4.2. Memoria cache
Principio de localidad
4.3. Memoria principal
Terminología
4.4. Memoria virtual
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
2
1
4.1
I
N
T
R
O
Introducción
•
Memoria Ideal Æ Rápida, grande y barata.
– ¿Qué significa que sea “rápida”?
• Monociclo Æ Poca latencia de operación (tciclo pequeño)
• Multiciclo Æ Que no determine el tiempo de ciclo.
– ¿Qué significa que sea “grande”?
• Que el tamaño de la memoria no limite los programas que puedo
ejecutar.
– ¿Qué significa que sea “barata?
• Abordable económicamente.
•
Sin embargo, la realidad es otra:
– Las memorias grandes son lentas
– Las memorias rápidas son pequeñas (y caras)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
3
4.1
Diferencia de rendimientos entre memoria y procesador
Gap Procesador- Memoria DRAM (latencia)
1000
CPU
µProc
60%/año
(2X/1.5años)
“Ley de Moore”
100
Gap: crece 50%/año
10
DRAM
DRAM
9%/año
(2X/10 años)
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
1
1980
1981
Rendimiento
I
N
T
R
O
Año
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
4
2
4.1
I
N
T
R
O
Tecnologías de memoria (1)
•
Las tecnologías principales de memoria son
• SRAM: Static Random Access Memory
• Baja densidad, alto consumo potencia, cara, rápida
• Estática Æ no necesita ser “refrescada”
• DRAM: Dynamic Random Access Memory
• Alta densidad, baja potencia, barato, lento
• Dinámica Æ necesita ser “refrescada” regularmente
• Disco Magnético
•
Cada tipo de memoria tiene sus características (1997):
Tecnología de memoria
Tiempo de acceso
Coste por Mbyte
SRAM
5-25 ns
100-250 $
DRAM
60-120 ns
5-100 $
10-20 millones ns
0,10-0,20 $
Disco Magnético
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
5
4.1
I
N
T
R
O
Tecnologías de memoria (2)
•
Tendencias tecnológicas:
Capacidad
2x en 3 años
2x en 3 años
DRAM:
4x en 3 años
2x en 10 años
Disco:
4x en 3 años
2x en 10 años
Año
1980
1983
1986
1989
1992
1995
•
Velocidad (latencia)
SRAM:
Evolución de la memoria DRAM
Tamaño
Tiempo ciclo
64 Kb
250 ns
256 Kb
220 ns
1 Mb
190 ns
4 Mb
165 ns
16 Mb
145 ns
64 Mb
120 ns
1000:1!
2:1!
¿Podríamos hacer una memoria ideal con tecnología SRAM? Compromisos:
• Capacidad-Velocidad Æ Alta capacidad y alta velocidad
• Coste-Velocidad Æ Alta velocidad y bajo coste
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
6
3
4.1
I
N
T
R
O
Tecnologías de memoria y tipos de acceso
•
El acceso puede ser aleatorio, pseudo-aleatorio y secuencial.
– Acceso Aleatorio:
• El tiempo de acceso es el mismo para todas las posiciones de memoria
– Ejemplo: DRAM, SRAM
– Acceso Pseudo-aleatorio:
• El tiempo de acceso varía de una posición a otra y depende del
momento en que se realice.
– Ejemplo: Disco magnético, CDROM
– Acceso Secuencial:
• El tiempo de acceso depende de la localización del dato en el medio.
– Ejemplo: Cinta magnética
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
7
4.1
I
N
T
R
O
Impacto de la velocidad de la memoria en el rendimiento
•
Supongamos un procesador a 200 MHz (tciclo=5 ns), con un CPI medio de 1.1
ciclos con un sistema de memoria ideal para un programa determinado que
tiene 50% de instrucciones aritmético-lógicas, 30% de instrucciones de cargaalmacenamiento (memoria) y 20% de instrucciones de control.
•
Si ahora ponemos un sistema de memoria real que provoca que el 10% de las
instrucciones de memoria tengan una penalización de 50 ciclos, ¿cómo varía el
CPI?
CPI = CPImem_ideal + ciclos de bloqueo promedio por instrucción =
= 1.1
+ 0,30 * 0,10 * 50 = 1.1 + 1.5 = 2,6 ciclos por instrucción
Rendimiento = Tcpu_mem_ideal / Tcpu_mem_real
= N * 1.1 * 5 / N * 2.6 * 5 = 0.42
Æ
Hemos perdido el 58% de rendimiento Æ El procesador pasa ahora el
58% del tiempo bloqueado esperando que lleguen los datos de memoria
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
8
4
4.1
I
N
T
R
O
Organización jerárquica de la memoria
•
Objetivo: Dar la impresión al usuario de que tiene una memoria grande,
rápida y barata.
•
¿Cómo?
– Organizando la memoria de forma jerárquica,
compromiso entre Tecnología, Coste y Velocidad.
•
llegando
así
a
un
¿En qué consiste?
– En utilizar distintos niveles de memorias de forma que los niveles más
cercanos al procesador utilizan tecnología más rápida (aunque son de
menor tamaño y más caras) y los niveles más lejanos al procesador
utilizan tecnología más lenta (y son de mayor tamaño y más baratas).
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
9
4.1
I
N
T
R
O
Visión general del sistema de memoria
Procesador
Control
Memoria
Memoria
Memoria
Ruta de
Datos
Velocidad: Más rápida
Tamaño: Más pequeña
Coste: Más cara
Memoria
Memoria
Más lenta
Más grande
Más barata
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
10
5
4.1
I
N
T
R
O
¿Por qué funciona la jerarquía de memorias?
•
Los programas no acceden de forma aleatoria a su código y a sus datos, sino
que tienden a tener un comportamiento predefinido que sigue un determinado
patrón.
•
Principio de localidad de referencia: Los programas acceden en cualquier
instante de tiempo a una porción de memoria relativamente pequeña del
espacio de direcciones total.
Probabilidad de referencia
en un instante de tiempo
determinado
0
n
Espacio de direcciones
2 -1
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
11
4.1
I
N
T
R
O
Principio de localidad
•
Localidad Temporal: Si se referencia una posición de memoria en un
instante de tiempo determinado, existe una alta probabilidad de que vuelva a
ser referenciada en los instantes siguientes.
– Ejemplo: Instrucciones en bucles, variables
•
Localidad Espacial: Si se referencia una posición de memoria en un instante
determinado, existe una alta probabilidad de que en los instantes siguientes se
referencien las posiciones de memoria cercanas.
– Ejemplo: Acceso a los elementos de un vector de datos, acceso a
instrucciones secuenciales.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
12
6
4.1
I
N
T
R
O
Niveles de la jerarquía y tecnologías asociadas
•
Aplicando el Principio de Localidad:
– Presentamos al usuario tanta memoria como sea posible en la tecnología
más barata.
– Proporcionamos acceso a la velocidad ofrecida por la tecnología más
rápida.
CPU
Procesador
Tipo de memoria
Semiconductor
SRAM
Semiconductor
L1 Cache
SRAM
Semiconductor
L2 Cache
SRAM
Semiconductor
Memoria principal
DRAM
Registros
Registros
Sistema
Tarjeta
Nivel jerárquico
L1 Cache
L2 Cache
Memoria principal
Disco
Cinta Magnética
Tecnología
Tamaño
Tiempo
acceso
512 bytes
5 ns
32 KB
10 ns
512 KB
25 ns
32 MB
Disco magnético
Disco duro
2 GB
Disco óptico
CD-ROM
xx GB
Cinta magnética
Cinta
xx GB
75 ns
10 ms
10 MB/seg
300 ms
600 KB/seg
seg-min
10 MB/min
Discos ópticos
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
13
4.1
I
N
T
R
O
Terminología (1)
•
Nivel superior e inferior
– Entre dos niveles adyacentes de la jerarquía de memoria se denomina
nivel superior al que está más cerca del procesador y nivel inferior al
que está más lejos.
– El nivel superior es siempre mas pequeño y rápido que el inferior.
•
Bloque
– Es la unidad mínima de información que está presente o no en un nivel de
la jerarquía.
→ Las transferencias de información se realizan siempre entre niveles adyacentes
de la jerarquía.
→ La cantidad mínima de información que se transfiere es un bloque.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
14
7
4.1
I
N
T
R
O
Terminología (2)
•
Acierto y Fallo
– Si los datos que se piden a un nivel se encuentran allí, se dice que se ha
producido un acierto (hit). En caso contrario se produce un fallo (miss).
– Cuando se produce un fallo en un nivel se accede al nivel inmediatamente
inferior para buscar esa información.
•
Tasa de fallos y de aciertos
– La tasa de aciertos de un nivel (hit rate) Æ porcentaje de accesos
encontrados en ese nivel, sobre el total de accesos realizados a dicho
nivel.
– La tasa de fallos de un nivel (miss rate) Æ porcentaje de accesos no
encontrados en ese nivel, sobre el total de accesos realizados a dicho
nivel. También se define como (1-tasa de aciertos).
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
15
4.1
I
N
T
R
O
Terminología (3)
•
La tasa de aciertos y/o la tasa de fallos se usan a menudo como medida del
rendimiento de la jerarquía de memoria.
– Menor tasa de fallos Æ menos veces hay que recurrir a los niveles más
bajos (y más lentos) de la jerarquía Æ tiempo medio de acceso a memoria
es mucho menor.
– Una tasa de fallos baja indica que se accede pocas veces a los niveles más
lentos de la jerarquía de memoria.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
16
8
4.1
I
N
T
R
O
Terminología (4)
•
Tiempo de acierto
– Tiempo necesario para acceder a un datos en el nivel superior de la
jerarquía.
– Incluye el tiempo necesario para detectar si se trata de un acierto o de un
fallo.
•
Penalización de fallo
– Tiempo necesario para reemplazar un bloque del nivel superior por el
correspondiente bloque del nivel inferior + Tiempo de suministrar este
bloque al procesador.
Tiempo de acierto << Penalización de fallo
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
17
4.1
I
N
T
R
O
Evaluación del rendimiento de una jerarquía de memoria
•
Métrica de rendimiento
– Tiempo medio que se tarda en hacer un acceso a memoria
TMEDIO= Tiempo de acierto + Tasa de fallos * Penalización de fallos
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
18
9
4.1
I
N
T
R
O
Cuestiones sobre cualquier nivel de la jerarquía de memoria
•
Q1: ¿Dónde puede ubicarse un bloque en el nivel superior?
– Ubicación de bloque
•
Q2: ¿Cómo se encuentra un bloque si está en el nivel superior?
– Identificación del bloque
•
Q3: ¿Qué bloque debe reemplazarse en caso de fallo?
– Sustitución de bloque
•
Q4: ¿Qué ocurre en una escritura?
– Estrategias de escritura
•
A continuación analizaremos cada una de estas cuestiones para los niveles de
cache (nivel superior) y memoria principal (nivel inferior).
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
19
10
Tema 4. Subsistema de Memoria
4.1. Introducción
4.2. Memoria cache
4.3. Memoria principal
4.4. Memoria virtual
Introducción
Métodos de correspondencia
(ubicación de bloque)
Identificación de bloque
Sustitución de bloque
Estrategias de escritura
Evaluación del rendimiento
Clasificación de los fallos
Elección del tamaño de bloque
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
20
4.2
M
C
A
C
H
E
Introducción
•
Originariamente, cache es el nombre del nivel de la jerarquía de memoria
entre los registros y la memoria principal.
•
Hoy día es cualquier memoria gestionada para aprovechar la localidad de los
accesos.
– Ejemplo: Cache de disco.
•
La práctica totalidad de las máquinas actuales poseen uno o varios niveles de
memoria cache que se encuentran dentro y/o fuera del chip.
•
(En alguna bibliografía, al bloque de la cache se le denomina línea)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
21
1
4.2
M
C
A
C
H
E
Q1: ¿Dónde puede ubicarse un bloque en una cache? (1)
•
Cuando una cache solicita un bloque al nivel inferior, tiene que decidir dónde
lo ubica
•
La posible ubicación de un bloque crea tres categorías en la organización de
las caches
– Caches de correspondencia directa (direct mapped cache)
– Caches completamente asociativas (fully associative cache)
– Caches de correspondencia
asociative cache)
asociativa
por
conjuntos
(set
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
22
4.2
M
C
A
C
H
E
Q1: ¿Dónde puede ubicarse un bloque en una cache? (2)
•
Correspondencia directa
– Cada bloque solo puede ir en una posición de la cache.
– Para asignar la posición donde debe ir cada bloque se utiliza la dirección de
memoria:
Dirección de la estructura de bloque MODULO Número de bloques de la cache
00
01
10 11
Memoria cache
Memoria
principal
Bloque 0
Bloque 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
23
2
4.2
M
C
A
C
H
E
Q1: ¿Dónde puede ubicarse un bloque en una cache? (3)
•
Correspondencia totalmente asociativa
– Cada bloque puede ir en cualquier posición de la cache.
00
01
10 11
Memoria cache
Memoria
principal
Bloque 0
Bloque 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
24
4.2
M
C
A
C
H
E
Q1: ¿Dónde puede ubicarse un bloque en una cache? (4)
•
Correspondencia asociativa por conjuntos
– Conjunto: Grupo de bloques de la cache.
– Primero se hace corresponder el bloque a un conjunto, y luego dentro del
conjunto puede ubicarse en cualquiera de los bloques.
Dirección de la estructura de bloque MODULO Número de conjuntos de la cache
Asociativa por conjuntos de N vías ≡ Asociatividad N ≡ N bloques por conjunto
00 01
Conjunto 0
10 11
Conjunto 1
Memoria
cache
Memoria
Bloque 0
principal
Bloque 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
25
3
4.2
M
C
A
C
H
E
Ejemplo de ubicación de bloque
•
En una cache de 8 bloques ¿En qué bloque de la cache se ubicaría el
bloque 12 de memoria principal?
Totalmente
asociativa
El bloque 12 puede ir
en cualquier bloque de
la cache
Correspondencia
directa
El bloque 12 sólo puede
ir en el bloque 4:
12 MOD 8
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0
1
2
3
4
5
6
7
8
Asociativa por
conjuntos (2 vías)
El bloque 12 puede ir
en cualquier bloque del
conjunto 0:
12 MOD 4
0 1 2 3 4 5 6 7
c0 c1 c2 c3
9 10 11 12 13 14 15 16 17
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
26
4.2
M
C
A
C
H
E
Extremos en la organización de la cache (1)
•
Para un tamaño dado, las diversas organizaciones son realmente un continuo
de la política de asociatividad por conjuntos:
Correspondencia directa = asociativa por conjuntos de 1 vía
Totalmente asociativa = asociativa por conjuntos de L vías
Parámetros de la organización:
A: Asociatividad o número de vías por conjunto
B: Tamaño de bloque
S: Número de conjuntos
L: Número de bloques en la cache
C: Tamaño de la cache
Asociatividad (A)
Nombre
Nº conjuntos (S)
Relaciones de interés:
C=S*A*B
L = C/B
L=S*A
Características
Menor tiempo de acceso
1
Correspondencia directa
L
n
Asociativa por conjuntos n vías
L/n
Compromiso entre ambas
L
Totalmente asociativa
1
Mejor tasa de aciertos
Menor tasa de aciertos
Número de comparadores
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
27
4
4.2
M
C
A
C
H
E
Extremos en la organización de la cache (2)
One-way set associative
(direct mapped)
Asociativa por conjuntos
1 vía (directa)
Block
Asociativa por conjuntos
2 vías
Tag Data
0
Two-way set associative
1
Set
2
3
0
4
1
5
2
6
3
Tag Data Tag Data
7
Asociativa por conjuntos
8 vías (totalmente asociativa)
Four-way set associative
Set
Asociativa por conjuntos
4 vías
Tag Data Tag Data Tag Data Tag Data
0
1
Eight-way set associative (fully associative)
Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
28
4.2
M
C
A
C
H
E
Q2: ¿Cómo se encuentra un bloque en una cache? (1)
•
Puesto que en el bloque 0 de la cache pueden haber bloques distintos de
memoria principal....
...¿cómo se sabe qué bloque de memoria principal está ocupando en cada
momento cada bloque de la cache? Æ Identificación del bloque
00
01
10 11
Memoria cache
Memoria
principal
Bloque 0
Bloque 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
29
5
4.2
M
C
A
C
H
E
Q2: ¿Cómo se encuentra un bloque en una cache? (2)
•
Identificación de bloque Æ Información adicional para cada bloque de la
cache que permite identificar el bloque de memoria que ocupa ese bloque de
cache.
– Campo de etiqueta de dirección (tag) Æ Parte alta de la dirección que no
se utiliza para indexar la cache.
– Bit de validez Æ Indica si el bloque tiene datos válidos (V=1) o no (V=0)
•
Ejemplo: cache con 4 bloques y 8 bytes/bloque.
B lo que
0
1
2
3
V alide z
V
V
V
V
E tiq ueta
tag
tag
tag
tag
b7
b7
b7
b7
b6
b6
b6
b6
D a to s (8
b5
b4
b5
b4
b5
b4
b5
b4
b ytes)
b3
b2
b3
b2
b3
b2
b3
b2
b1
b1
b1
b1
b0
b0
b0
b0
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
30
4.2
M
C
A
C
H
E
Q2: ¿Cómo se encuentra un bloque en una cache? (3)
•
La dirección que suministra el procesador tiene los siguientes campos:
Dirección del bloque de memoria
Índice
Tag
Desplazamiento
(byte dentro del bloque)
• Índice Æ selecciona el conjunto
• Tag Æ chequea todos los bloques del conjunto
• Desplazamiento Æ dirección del dato dentro del bloque
( Las caches totalmente asociativas no tienen índice)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
31
6
4.2
M
C
A
C
H
E
Q2: ¿Cómo se encuentra un bloque en una cache? (4)
•
Ejemplo: En una cache de correspondencia directa con 64 bloques y tamaño
de bloque de 16 bytes, ¿en qué bloque está el dato cuya dirección es 1200?
• 64 bloques
• Correspondencia directa
→ 64 conjuntos = 26 → 6 bits para el índice
→ 1 vía
• Tamaño del bloque = 16 bytes = 24
• 32 – 6 – 4 = 22
→ 4 bits para el desplazamiento
→ 22 bits para tag
120010 = 0000 04B016 = 0000 0000 0000 0000 0000 0100 1011 00002
0000 0000 0000 0000 0000 01
001011
0000
(6 bits)
(4bits)
Bloque cache = Dirección bloque MODULO Nº bloques cache = 75 MOD 64 = 11
Dirección bloque = parte entera (dirección / nº bytes por bloque)
= parte entera (1200/16) = 75
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
32
4.2
M
C
A
C
H
E
Tamaño total de la cache
•
Tamaño total de la cache = tamaño datos + tamaño etiquetas + tamaño bits
validez
•
Ejemplo: Calcular el tamaño total de una memoria cache de correspondencia
directa con 64 KB de datos y bloques de 4 palabras suponiendo que la dirección
es de 32 bits.
Nº bloques =Nº conjuntos= 64 Kbytes/ 16 bytes = 4 K = 212 → 12 bits para el índice
Tamaño del bloque = 16 bytes = 24
→ 4 bits para el desplazamiento
32-4-12= 16 bits
12 bits
4 bits
TAG
Nº de bloque
Desplazamiento
Tamaño de datos = 64Kbytes
Tamaño etiqueta = 4 K * 16 bits = 64 Kbits
Tamaño bits validez = 4 K * 1 bit = 4 Kbits
Tamaño total = 64 Kbytes + 64 Kbits + 4 Kbits = 72.5 Kbytes
De otra forma: 4K * (16 bytes + 16 bits + 1 bit) = 72.5 Kbytes
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
33
7
4.2
M
C
A
C
H
E
Hardware necesario (1)
•
Correspondencia directa o asociativa por conjuntos de 1 vía
Address (showing bit positions)
31 30
210
20
10
Byte
offset
Parámetros:
–
–
–
13 12 11
Hit
Bloques de 1 palabra
1024 bloques o conjuntos
Tamaño total de la cache =
= (1+20+32)*1024
= 53kbits
Data
Tag
Index
Index Valid Tag
Data
0
1
2
1021
1022
1023
20
32
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
34
4.2
M
C
A
C
H
E
Hardware necesario (2)
•
Asociativa por conjuntos de 4 vías
31 30
–
–
A = 4 bloques/conjunto
B = 1 palabra = 4 bytes
S = 28 = 256 conjuntos
L = S*A = 256 *4
= 1024 bloques
C=S*A*B
= 256*4*4
= 4096 bytes (datos)
Index
0
1
2
V
Tag
Data
V
3210
8
22
Parámetros:
–
–
–
–
12 11 10 9 8
Tag
Data
V
Tag
Data
V
Tag
Data
253
254
255
22
32
Tamaño total =
= 256*[4*(1+22+32)]
= 7040 bytes
4-to-1 multiplexor
Hit
•
Data
Aumento de la asociatividad Æ Aumento de la complejidad hardware
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
35
8
4.2
M
C
A
C
H
E
Efecto de aumentar la asociatividad (1)
•
Incrementando la asociatividad se disminuye el índice y se expande la
etiqueta
– El índice selecciona al conjunto
– La etiqueta se usa para seleccionar el bloque correspondiente
– El desplazamiento se usa para obtener el dato
•
Aumentar la asociatividad es una decisión de compromiso entre el coste de un
fallo frente al coste de la asociatividad (en tiempo y en circuitería extra).
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
36
4.2
M
C
A
C
H
E
Efecto de aumentar la asociatividad (2)
•
Ejemplo:
Dada una cache con 4K bloques distintos de tamaño 4 bytes y direcciones de
32 bits, encontrar el número total de conjuntos y el número total de bits
necesarios para las etiquetas suponiendo que la cache fuese de
correspondencia directa, asociativa por conjuntos de 2 vías y de 4 vías, y
totalmente asociativa.
Tamaño de las etiquetas:
Correspondencia directa Æ 72 Kbits
Asociativa por conjuntos de 2 vías Æ 76 Kbits
Asociativa por conjuntos de 4 vías Æ 80 Kbits
Totalmente asociativa Æ 120 Kbits
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
37
9
4.2
M
Características extremas de las caches
C
A
C
H
E
Correspondencia directa
Totalmente asociativa
•
Un bloque solo puede ubicarse en un
bloque de la cache
•
Un bloque puede estar
cualquier lugar de la cache
•
Tasa de aciertos baja
– Casos patológicos pueden dar 0%
de tasa de aciertos.
•
Mejor tasa de aciertos
•
Tiempo de acceso bajo
– No multiplexor para datos
•
Tiempo de acceso más alto.
•
Hardware más sencillo
– Acceso paralelo al tag y a los
datos
•
Hardware más complejo.
– Muchos comparadores
– Memorias y buses anchos
(tag grande)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
en
38
4.2
M
C
A
C
H
E
Q3: ¿Qué bloque debe reemplazarse en caso de fallo?
•
Cache con Correspondencia directa Æ No tenemos que decidir. Un bloque sólo
puede estar en un lugar de la cache.
•
Cache con Asociatividad Æ Se puede escoger dónde situar el nuevo bloque, y
qué bloque reemplazar. Existen distintas políticas de reemplazo:
– Aleatoria (a veces pseudoaleatoria)
• El bloque de la cache a sustituir se elige aleatoriamente.
• Fácil implementación hardware.
– Menos recientemente usado (LRU)
• Se registran los accesos a los datos. El bloque a sustituir es el que
hace más tiempo que no se referencia.
• Solución muy cara cuando aumenta el número de bloques a gestionar
Æ se implementa una aproximación.
– FIFO
• Menos eficiente que la aleatoria y más difícil de implementar.
•
La política de reemplazo juega un papel más importante en las memorias
cache más pequeñas.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
39
10
4.2
M
C
A
C
H
E
Tasa de falllos vs. Política de reemplazo
•
Ejemplo tomado de una traza VAX con tamaño de bloque de 16 bytes
Tasa de fallos
Tamaño
•
2 Vías
LRU
Aleatorio
4 Vías
LRU
Aleatorio
8 Vías
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,13 %
1,13 % 1,12 %
1,12 %
Observaciones realizadas:
– Para un tamaño de cache dado, a medida que aumentamos la asociatividad
disminuye la tasa de fallos, independientemente de la política de reemplazo.
– Para caches pequeñas funciona mejor la política de reemplazo LRU.
– También se observa que para caches de mayor tamaño hay poca diferencia entre los
algoritmos LRU y aleatorio, sobre todo cuando se aumenta la asociatividad.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
40
4.2
M
C
A
C
H
E
Q4: ¿Qué ocurre en una escritura? (1)
•
Las lecturas dominan los accesos a la cache ya que todas las instrucciones
deben leerse.
•
Las escrituras son menos frecuentes y tardan más
– La comparación de las etiquetas y la escritura de los datos no pueden
realizarse en paralelo Æ La escritura no puede comenzar hasta que se
comprueba que las etiquetas coinciden.
•
Políticas de escritura:
– Escritura directa (write through)
– Postescritura (write back ó copy back)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
41
11
4.2
M
C
A
C
H
E
Q4: ¿Qué ocurre en una escritura? (2)
•
Políticas de escritura: Escritura directa (write through)
– La información se escribe en la cache y en la memoria principal.
– La CPU debe esperar a que finalice la escritura en el nivel inferior Æ Detención
– Optimización Æ Buffer de escritura
• La CPU escribe en un buffer y sigue sin detención.
• Aspectos:
Profundidad
del
buffer
y
velocidades
generación/realización de escrituras.
relativas
de
– Mantiene la coherencia de forma natural.
– Aumenta el tráfico de memoria.
– Los fallos de cache son más sencillos de tratar puesto que permiten desechar el
bloque en un reemplazo sin necesidad de una actualización previa de la memoria
principal.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
42
4.2
M
C
A
C
H
E
Q4: ¿Qué ocurre en una escritura? (3)
•
Políticas de escritura: Postescritura (write back ó copy back)
– La información se escribe sólo en el bloque de la cache y se marca que ha sido
modificada mediante el bit de modificación (dirty bit).
– Un bloque modificado en la cache (dirty bit=1) se escribe en memoria principal sólo
cuando es reemplazado. Si no fue modificado, simplemente se desecha.
– No mantiene la coherencia de forma natural Æ hay que introducir métodos de
coherencia (entrada/salida por DMA y multiprocesadores).
– Bajo tráfico de memoria
– Las escrituras son rápidas pero las
lecturas pueden ser más lentas si
dirty bit=1.
Fallo de lectura
¿Bloque modificado?
No
Sí
Actualizar bloque en memoria
Leer bloque
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
43
12
4.2
M
C
A
C
H
E
Q4: ¿Qué ocurre en una escritura? (4)
•
Cuando el procesador intenta escribir en una dirección de memoria que no se
encuentra en ningún bloque de la cache se produce un fallo de escritura
•
Si se produce Fallo de escritura, ¿qué se hace con el bloque?:
– Ubicar en escritura (write allocate)
• El bloque se carga en la cache y luego se actúa como en un acierto de
escritura.
• Similar a un fallo de lectura.
• Generalmente utilizada por caches de postescritura, esperando que
siguientes escrituras sean capturadas por la cache.
– No ubicar en escritura (no write allocate)
• El bloque se modifica directamente en la memoria principal (nivel
inferior) y no se carga en la cache.
• Generalmente utilizada por caches de escritura directa, ya que las
escrituras posteriores a ese bloque deberán ir, en cualquier caso, a
memoria.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
44
4.2
M
C
A
C
H
E
Evaluación del rendimiento de una cache (1)
•
El comportamiento de la cache influye en el rendimiento de la CPU puesto que
puede generar más ciclos de ejecución de los estrictamente necesarios para
ejecutar el programa, cuando los datos no se encuentran en la cache.
TCPU = (Ciclos_Ejecución_CPU + Ciclos_Bloqueo_Memoria) x Tiempo de ciclo
Tiempo que la CPU está
ejecutando instrucciones.
Incluye:
• Ciclos de reloj de aciertos
en cache
Tiempo que la CPU está
bloqueada
esperando
por
datos de memoria.
Incluye:
• Penalización de fallos
• Detenciones en el buffer de
escritura
• Detenciones en la memoria
virtual
TCPU = N x (CPIEjecución + CPIBloqueo_Memoria) x Tciclo
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
45
13
4.2
M
C
A
C
H
E
Evaluación del rendimiento de una cache (2)
• Si asumimos que los ciclos de
fundamentalmente a fallos en cache:
bloqueo
de
memoria
se
deben
Ciclos_Bloqueo_Memoria = Ciclos_Bloqueo_Lectura + Ciclos_Bloqueo_Escritura
Ciclos_Bloqueo_Lectura = Tasa _ lecturas ×Tasa_fallos_lecturas × Penalización_fallos_lectura
Ciclos_Bloqueo_Escritura = Tasa _ escrituras ×Tasa_fallos_escritura × Penalización_fallo_escritura +
+ Bloqueos_buffer_escritura
• Además, con escritura write-through las penalizaciones de lectura y
escritura son las mismas, por lo que
Ciclos_Blo queo_Memor ia = Tasa _ accesos _ a _ memoria × Tasa_fallo s × Penalizaci ón_fallos
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
46
4.2
M
C
A
C
H
E
Evaluación del rendimiento de una cache (3) - Ejemplo
•
Supongamos que tenemos un procesador con cache ideal en el que
ejecutamos un programa que realiza 1.4 accesos a memoria por instrucción. A
este procesador el conectamos una cache real que presenta una tasa de fallos
del 10% y una penalización de fallos de 10 ciclos. Calcular del impacto en el
rendimiento de haber incluido una cache real
TCPU_con_Cache
= N x (CPIEjecución + 1.4 x 0.1 x 10) x Tciclo
TCPU_sin_Cache
= N x (CPIEjecución) x Tciclo
Si CPIEjecución= 1.4 (Ej. RISC) → CPIMedio= 1.4 + 1.4 = 2.8 (50% más lento)
Si CPIEjecución=
•
8 (Ej. CISC) → CPIMedio= 8 + 1.4 = 9.4 (15 % más lento)
Conclusión: El efecto de la detención de memoria es muy significativo cuando
el CPI y Tciclo son bajos.
– A más bajo CPI, el impacto es más pronunciado.
– La penalización de fallos se mide en ciclos de reloj. A igual tiempo de
acceso a memoria y menor Tciclo (mayor frecuencia) la penalización de
fallos es mayor.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
47
14
4.2
M
C
A
C
H
E
Evaluación del rendimiento de una cache (4) - Ejercicio
•
Supongamos que ejecutamos un programa y obtenemos una tasa de fallos del 3%. Si la
máquina donde lo ejecutamos tiene un CPI de 2 sin bloqueos a memoria y una
penalización de fallos de 40 ciclos para todos los fallos, determinar cuánto más rápida
sería una máquina con una cache perfecta (sin fallos).
(Suponga que el 36% de las instrucciones del programa son de acceso a memoria)
•
Suponga ahora que a la máquina se le aplica una segmentación mejor consiguiendo
disminuir el CPI de 2 a 1, sin cambiar la frecuencia de reloj. ¿Cuánto más rápida es ahora
la máquina con cache ideal respecto a la máquina con cache real? ¿Qué porcentaje de
tiempo de ejecución se emplea en bloqueos de memoria en cada caso?
•
Si en vez de tocar la segmentación se dobla la frecuencia de reloj de la máquina original,
compare los CPI de la máquina rápida y lenta cuando ambas tienen memoria real.
¿Cuánto más rápida será la máquina con cache real y reloj rápido respecto a la máquina
con cache real y reloj lento? (supónganse los mismos datos de tasa de fallos, etc..)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
48
4.2
M
C
A
C
H
E
Clasificación de los fallos de la cache
•
Los fallos de la cache son de uno de los tipos siguientes:
– Forzosos (compulsory)
• El primer acceso a un bloque no está en la cache y debe ser traído
desde la memoria principal a la cache. También llamados fallos de
primera referencia o de arranque frío.
– Capacidad (capacity)
• Si la cache no puede contener todos los bloques necesarios durante la
ejecución del programa, se descartan bloques de la cache (sustitución)
que posteriormente se recuperan.
– Conflicto (conflict)
• Si la estrategia de ubicación de bloque es de correspondencia directa o
asociativa por conjuntos, se pueden producir fallos de conflicto ya que
a varios bloques de la memoria principal les puede corresponder el
mismo conjunto en la cache. En estos casos es necesario descartar un
bloque a pesar de que existen bloques libres en la cache.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
49
15
4.2
M
C
A
C
H
E
Introducción de la cache en el diseño del procesador
•
¿Cómo?
– Cambiando las memorias del diseño del procesador por memorias cache.
•
Si hay un acierto Æ la ruta de datos continúa usando los datos igual que antes
(modificaciones mínimas)
•
Si hay un fallo Æ bloquear el procesador, buscar los datos en el siguiente nivel
de memoria, copiarlos en la cache y reanudar la ejecución de la instrucción
que causó el fallo.
•
Tratamiento de fallo de lectura de instrucción:
1. Enviar el valor del (PC-4) a la memoria.
2. Acceso a memoria principal y esperar a que se complete el acceso.
3. Escribir el bloque en la cache (datos, etiqueta y bit de validez).
4. Reiniciar la ejecución de la instrucción desde el principio.
•
Tratamiento de fallo de lectura de datos Æ Similar.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
50
4.2
M
C
A
C
H
E
Elección del tamaño de bloque en la cache
• Bloque de Tamaño 1 palabra
– No explota localidad espacial
– Escrituras sencillas (no importa si hay fallo de escritura)
• Bloque de Tamaño multipalabra
– Explota mejor la localidad espacial, disminuyendo entonces la tasa de fallos,
EXCEPTO si se aumenta mucho el tamaño de bloque (dejando fijo el tamaño total de
la cache) porque entonces el número de bloques diferentes en la cache es muy
pequeño para poder explotar la localidad temporal y se produce un aumento de la
tasa de fallos.
– El tratamiento de las escrituras es más complicado: Si hay fallo de escritura se
requiere hacer una lectura previa.
– Aumenta la penalización de un fallo. A medida que el bloque comienza a ser muy
grande la penalización de fallos crece. Si crece más de lo que disminuye la tasa de
fallos entonces el producto (tasa de fallos * penalización de fallos) aumenta,
produciéndose una disminución global del rendimiento.
– Aumenta la eficiencia de la cache, al aumentar el ratio (información útil de datos
/información total) (por disminuir el nº de etiquetas en relación a los datos)
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
51
16
4.2
M
C
A
C
H
E
Algunas técnicas para mejorar el rendimiento de la cache
• Asociatividad – reduce la tasa de fallos
– Introducir asociatividad permite mayor flexibilidad en la ubicación de los bloques en
la cache, permitiendo así explotar mejor la localidad temporal.
• Memorias cache multinivel – reducen la penalización de fallos
– Se añade un segundo nivel de cache fuera del chip (L2) con un tiempo de acceso
menor que el de la memoria principal.
– Cuando ocurre un fallo en la cache primaria (L1), se accede a la cache secundaria
(L2) para buscar los datos.
• Si están allí Æ se reduce la penalización de fallo.
• Si no están Æ accedemos a la memoria principal. En este caso la penalización de
fallo es mucho mayor porque incluye el tiempo de acceder a la L2 y fallar.
– Como el acceso a la L2 cuesta pocos ciclos (en relación con lo que cuesta un acceso a
la memoria principal), el diseño se centra en disminuir el tiempo de acierto de la L1
(para así poder disminuir el tciclo) más que en disminuir su tasa de fallos.
– Normalmente la L1 es de pequeño tamaño y con asociatividad 2 o 4, mientras que la
L2 es grande y con asociatividad 2, como mucho.
Fundamentos de Computadores 2 - ITIG 2004/2005 – Tema 4. Subsistema de memoria
52
17
Descargar