Sei sulla pagina 1di 17

1

20
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Tema 4. Subsistema de Memoria
4.1. Introduccin
4.2. Memoria cache
4.3. Memoria principal
4.4. Memoria virtual
Introduccin
Mtodos de correspondencia
(ubicacin de bloque)
Identificacin de bloque
Sustitucin de bloque
Estrategias de escritura
Evaluacin del rendimiento
Clasificacin de los fallos
Eleccin del tamao de bloque
Introduccin
4.2
M
C
A
C
H
E
21
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Originariamente, cache es el nombre del nivel de la jerarqua de memoria
entre los registros y la memoria principal.
Hoy da es cualquier memoria gestionada para aprovechar la localidad de los
accesos.
Ejemplo: Cache de disco.
La prctica totalidad de las mquinas actuales poseen uno o varios niveles de
memoria cache que se encuentran dentro y/o fuera del chip.
(En alguna bibliografa, al bloque de la cache se le denomina lnea)
2
Q1: Dnde puede ubicarse un bloque en una cache? (1)
4.2
M
C
A
C
H
E
22
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Cuando una cache solicita un bloque al nivel inferior, tiene que decidir dnde
lo ubica
La posible ubicacin de un bloque crea tres categoras en la organizacin de
las caches
Caches de correspondencia directa (direct mapped cache)
Caches completamente asociativas (fully associative cache)
Caches de correspondencia asociativa por conjuntos (set
asociative cache)
Q1: Dnde puede ubicarse un bloque en una cache? (2)
4.2
M
C
A
C
H
E
23
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Correspondencia directa
Cada bloque solo puede ir en una posicin de la cache.
Para asignar la posicin donde debe ir cada bloque se utiliza la direccin de
memoria:
Direccin de la estructura de bloque MODULO Nmero de bloques de la cache
00 01 10 11
Memoria
principal
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Bloque 0
Bloque 15
Memoria cache
3
Q1: Dnde puede ubicarse un bloque en una cache? (3)
4.2
M
C
A
C
H
E
24
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Correspondencia totalmente asociativa
Cada bloque puede ir en cualquier posicin de la cache.
Memoria
principal
00 01 10 11
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Bloque 0
Bloque 15
Memoria cache
Q1: Dnde puede ubicarse un bloque en una cache? (4)
4.2
M
C
A
C
H
E
25
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
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.
Asociativa por conjuntos de N vas Asociatividad N N bloques por conjunto
Direccin de la estructura de bloque MODULO Nmero de conjuntos de la cache
00 01 10 11
Bloque 0
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Bloque 15
Memoria
cache
Memoria
principal
Conjunto 0
Conjunto 1
4
Ejemplo de ubicacin de bloque
4.2
M
C
A
C
H
E
26
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
En una cache de 8 bloques En qu bloque de la cache se ubicara el
bloque 12 de memoria principal?

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17


Correspondencia
directa
El bloque 12 slo puede
ir en el bloque 4:
12 MOD 8
0 1 2 3 4 5 6 7
Totalmente
asociativa
El bloque 12 puede ir
en cualquier bloque de
la cache



0 1 2 3 4 5 6 7

Asociativa por
conjuntos (2 vas)
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

Extremos en la organizacin de la cache (1)
4.2
M
C
A
C
H
E
27
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Para un tamao dado, las diversas organizaciones son realmente un continuo
de la poltica de asociatividad por conjuntos:
Correspondencia directa = asociativa por conjuntos de 1 va
Totalmente asociativa = asociativa por conjuntos de L vas
Parmetros de la organizacin:
A: Asociatividad o nmero de vas por conjunto
B: Tamao de bloque
S: Nmero de conjuntos
L: Nmero de bloques en la cache
C: Tamao de la cache
Relaciones de inters:
C = S * A * B
L = C/B
L = S * A
Asociatividad (A) Nombre N conjuntos (S) Caractersticas
1 Correspondencia directa L
Menor tiempo de acceso
Menor tasa de aciertos
n Asociativa por conjuntos n vas L/n Compromiso entre ambas
L Totalmente asociativa 1 Mejor tasa de aciertos


Nmero de comparadores
5
Extremos en la organizacin de la cache (2)
4.2
M
C
A
C
H
E
28
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data
Eight-way set associative (fully associative)
Tag Data Tag Data Tag Data Tag Data
Four-way set associative
Set
0
1
Tag Data
One-way set associative
(direct mapped)
Block
0
7
1
2
3
4
5
6
Tag Data
Two-way set associative
Set
0
1
2
3
Tag Data
Asociativa por conjuntos
1 va (directa)
Asociativa por conjuntos
2 vas
Asociativa por conjuntos
4 vas
Asociativa por conjuntos
8 vas (totalmente asociativa)
Q2: Cmo se encuentra un bloque en una cache? (1)
4.2
M
C
A
C
H
E
29
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Puesto que en el bloque 0 de la cache pueden haber bloques distintos de
memoria principal....
...cmo se sabe qu bloque de memoria principal est ocupando en cada
momento cada bloque de la cache? Identificacin del bloque
00 01 10 11
Memoria
principal
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Bloque 0
Bloque 15
Memoria cache
6
Q2: Cmo se encuentra un bloque en una cache? (2)
4.2
M
C
A
C
H
E
30
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Identificacin de bloque Informacin adicional para cada bloque de la
cache que permite identificar el bloque de memoria que ocupa ese bloque de
cache.
Campo de etiqueta de direccin (tag) Parte alta de la direccin que no
se utiliza para indexar la cache.
Bit de validez Indica si el bloque tiene datos vlidos (V=1) o no (V=0)
Ejemplo: cache con 4 bloques y 8 bytes/bloque.
Bloque Validez Etiqueta Datos (8 bytes)
0 V tag b7 b6 b5 b4 b3 b2 b1 b0
1 V tag b7 b6 b5 b4 b3 b2 b1 b0
2 V tag b7 b6 b5 b4 b3 b2 b1 b0
3 V tag b7 b6 b5 b4 b3 b2 b1 b0

Q2: Cmo se encuentra un bloque en una cache? (3)
4.2
M
C
A
C
H
E
31
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
La direccin que suministra el procesador tiene los siguientes campos:
ndice selecciona el conjunto
Tag chequea todos los bloques del conjunto
Desplazamiento direccin del dato dentro del bloque
( Las caches totalmente asociativas no tienen ndice)
Tag
ndice
Desplazamiento
(byte dentro del bloque)
Direccin del bloque de memoria
7
Q2: Cmo se encuentra un bloque en una cache? (4)
4.2
M
C
A
C
H
E
32
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Ejemplo: En una cache de correspondencia directa con 64 bloques y tamao
de bloque de 16 bytes, en qu bloque est el dato cuya direccin es 1200?
64 bloques
Correspondencia directa 1 va
Tamao del bloque = 16 bytes = 2
4
4 bits para el desplazamiento
32 6 4 = 22 22 bits para tag
1200
10
= 0000 04B0
16
= 0000 0000 0000 0000 0000 0100 1011 0000
2
(6 bits) (4bits)
Bloque cache = Direccin bloque MODULO N bloques cache = 75 MOD 64 = 11
Direccin bloque = parte entera (direccin / n bytes por bloque)
= parte entera (1200/16) = 75
0000 0000 0000 0000 0000 01 001011 0000
64 conjuntos = 2
6
6 bits para el ndice
Tamao total de la cache
4.2
M
C
A
C
H
E
33
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Tamao total de la cache = tamao datos + tamao etiquetas + tamao bits
validez
Ejemplo: Calcular el tamao total de una memoria cache de correspondencia
directa con 64 KB de datos y bloques de 4 palabras suponiendo que la direccin
es de 32 bits.
N bloques =N conjuntos= 64 Kbytes/ 16 bytes = 4 K = 2
12
12 bits para el ndice
Tamao del bloque = 16 bytes = 2
4
4 bits para el desplazamiento
Tamao de datos = 64Kbytes
Tamao etiqueta = 4 K * 16 bits = 64 Kbits
Tamao bits validez = 4 K * 1 bit = 4 Kbits
Tamao total = 64 Kbytes + 64 Kbits + 4 Kbits = 72.5 Kbytes
De otra forma: 4K * (16 bytes + 16 bits + 1 bit) = 72.5 Kbytes
TAG N de bloque Desplazamiento
4 bits 12 bits 32-4-12= 16 bits
8
Hardware necesario (1)
4.2
M
C
A
C
H
E
34
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Correspondencia directa o asociativa por conjuntos de 1 va
Parmetros:
Bloques de 1 palabra
1024 bloques o conjuntos
Tamao total de la cache =
= (1+20+32)*1024
= 53kbits
Address (showing bit positions)
20 10
Byte
offset
Valid Tag Data Index
0
1
2
1021
1022
1023
Tag
Index
Hit Data
20
32
31 30 13 12 11 2 1 0
Hardware necesario (2)
4.2
M
C
A
C
H
E
35
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Asociativa por conjuntos de 4 vas
Parmetros:
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)
Tamao total =
= 256*[4*(1+22+32)]
= 7040 bytes
Aumento de la asociatividad Aumento de la complejidad hardware
22 8
V Tag Index
0
1
2
253
254
255
Data V Tag Data V Tag Data V Tag Data
32 22
4-to-1 multiplexor
Hit Data
1 2 3 8 9 10 11 12 30 31 0
9
Efecto de aumentar la asociatividad (1)
4.2
M
C
A
C
H
E
36
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
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 decisin de compromiso entre el coste de un
fallo frente al coste de la asociatividad (en tiempo y en circuitera extra).
Efecto de aumentar la asociatividad (2)
4.2
M
C
A
C
H
E
37
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Ejemplo:
Dada una cache con 4K bloques distintos de tamao 4 bytes y direcciones de
32 bits, encontrar el nmero total de conjuntos y el nmero total de bits
necesarios para las etiquetas suponiendo que la cache fuese de
correspondencia directa, asociativa por conjuntos de 2 vas y de 4 vas, y
totalmente asociativa.
Tamao de las etiquetas:
Correspondencia directa 72 Kbits
Asociativa por conjuntos de 2 vas 76 Kbits
Asociativa por conjuntos de 4 vas 80 Kbits
Totalmente asociativa 120 Kbits
10
Caractersticas extremas de las caches
4.2
M
C
A
C
H
E
38
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Correspondencia directa
Un bloque solo puede ubicarse en un
bloque de la cache
Tasa de aciertos baja
Casos patolgicos pueden dar 0%
de tasa de aciertos.
Tiempo de acceso bajo
No multiplexor para datos
Hardware ms sencillo
Acceso paralelo al tag y a los
datos
Totalmente asociativa
Un bloque puede estar en
cualquier lugar de la cache
Mejor tasa de aciertos
Tiempo de acceso ms alto.
Hardware ms complejo.
Muchos comparadores
Memorias y buses anchos
(tag grande)
Q3: Qu bloque debe reemplazarse en caso de fallo?
4.2
M
C
A
C
H
E
39
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Cache con Correspondencia directa No tenemos que decidir. Un bloque slo
puede estar en un lugar de la cache.
Cache con Asociatividad Se puede escoger dnde situar el nuevo bloque, y
qu bloque reemplazar. Existen distintas polticas de reemplazo:
Aleatoria (a veces pseudoaleatoria)
El bloque de la cache a sustituir se elige aleatoriamente.
Fcil implementacin hardware.
Menos recientemente usado (LRU)
Se registran los accesos a los datos. El bloque a sustituir es el que
hace ms tiempo que no se referencia.
Solucin muy cara cuando aumenta el nmero de bloques a gestionar
se implementa una aproximacin.
FIFO
Menos eficiente que la aleatoria y ms difcil de implementar.
La poltica de reemplazo juega un papel ms importante en las memorias
cache ms pequeas.
11
Tasa de falllos vs. Poltica de reemplazo
4.2
M
C
A
C
H
E
40
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Ejemplo tomado de una traza VAX con tamao de bloque de 16 bytes
Observaciones realizadas:
Para un tamao de cache dado, a medida que aumentamos la asociatividad
disminuye la tasa de fallos, independientemente de la poltica de reemplazo.
Para caches pequeas funciona mejor la poltica de reemplazo LRU.
Tambin se observa que para caches de mayor tamao hay poca diferencia entre los
algoritmos LRU y aleatorio, sobre todo cuando se aumenta la asociatividad.
Tasa de fallos
2 Vas 4 Vas 8 Vas
Tamao
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,13 % 1,13 % 1,12 % 1,12 %
Q4: Qu ocurre en una escritura? (1)
4.2
M
C
A
C
H
E
41
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Las lecturas dominan los accesos a la cache ya que todas las instrucciones
deben leerse.
Las escrituras son menos frecuentes y tardan ms
La comparacin 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.
Polticas de escritura:
Escritura directa (write through)
Postescritura (write back copy back)
12
Q4: Qu ocurre en una escritura? (2)
4.2
M
C
A
C
H
E
42
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Polticas de escritura: Escritura directa (write through)
La informacin se escribe en la cache y en la memoria principal.
La CPU debe esperar a que finalice la escritura en el nivel inferior Detencin
Optimizacin Buffer de escritura
La CPU escribe en un buffer y sigue sin detencin.
Aspectos: Profundidad del buffer y velocidades relativas de
generacin/realizacin de escrituras.
Mantiene la coherencia de forma natural.
Aumenta el trfico de memoria.
Los fallos de cache son ms sencillos de tratar puesto que permiten desechar el
bloque en un reemplazo sin necesidad de una actualizacin previa de la memoria
principal.
Q4: Qu ocurre en una escritura? (3)
4.2
M
C
A
C
H
E
43
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Polticas de escritura: Postescritura (write back copy back)
La informacin se escribe slo en el bloque de la cache y se marca que ha sido
modificada mediante el bit de modificacin (dirty bit).
Un bloque modificado en la cache (dirty bit=1) se escribe en memoria principal slo
cuando es reemplazado. Si no fue modificado, simplemente se desecha.
No mantiene la coherencia de forma natural hay que introducir mtodos de
coherencia (entrada/salida por DMA y multiprocesadores).
Bajo trfico de memoria
Fallo de lectura
Actualizar bloque en memoria
Bloque modificado?
Leer bloque
S
No
Las escrituras son rpidas pero las
lecturas pueden ser ms lentas si
dirty bit=1.
13
Q4: Qu ocurre en una escritura? (4)
4.2
M
C
A
C
H
E
44
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Cuando el procesador intenta escribir en una direccin de memoria que no se
encuentra en ningn 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 acta 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 debern ir, en cualquier caso, a
memoria.
Evaluacin del rendimiento de una cache (1)
4.2
M
C
A
C
H
E
45
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
El comportamiento de la cache influye en el rendimiento de la CPU puesto que
puede generar ms ciclos de ejecucin de los estrictamente necesarios para
ejecutar el programa, cuando los datos no se encuentran en la cache.
T
CPU
= N x (CPI
Ejecucin
+ CPI
Bloqueo_Memoria
) x T
ciclo
T
CPU
= (Ciclos_Ejecucin_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:
Penalizacin de fallos
Detenciones en el buffer de
escritura
Detenciones en la memoria
virtual
14
Evaluacin del rendimiento de una cache (2)
4.2
M
C
A
C
H
E
46
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Si asumimos que los ciclos de bloqueo de memoria se deben
fundamentalmente a fallos en cache:
lectura n_fallos_ Penalizaci s_lecturas Tasa_fallo lecturas Tasa ra queo_Lectu Ciclos_Blo = _
tura queo_Escri Ciclos_Blo ra queo_Lectu Ciclos_Blo ia queo_Memor Ciclos_Blo + =
ritura buffer_esc Bloqueos_
scritura n_fallo_e Penalizaci a s_escritur Tasa_fallo escrituras Tasa tura queo_Escri Ciclos_Blo
+
+ = _
Adems, con escritura write-through las penalizaciones de lectura y
escritura son las mismas, por lo que
n_fallos Penalizaci s Tasa_fallo memoria a accesos Tasa ia queo_Memor Ciclos_Blo = _ _ _
Evaluacin del rendimiento de una cache (3) - Ejemplo
4.2
M
C
A
C
H
E
47
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Supongamos que tenemos un procesador con cache ideal en el que
ejecutamos un programa que realiza 1.4 accesos a memoria por instruccin. A
este procesador el conectamos una cache real que presenta una tasa de fallos
del 10% y una penalizacin de fallos de 10 ciclos. Calcular del impacto en el
rendimiento de haber incluido una cache real
T
CPU_con_Cache
= N x (CPI
Ejecucin
+ 1.4 x 0.1 x 10) x T
ciclo
T
CPU_sin_Cache
= N x (CPI
Ejecucin
) x T
ciclo
Si CPI
Ejecucin
= 1.4 (Ej. RISC) CPI
Medio
= 1.4 + 1.4 = 2.8 (50% ms lento)
Si CPI
Ejecucin
= 8 (Ej. CISC) CPI
Medio
= 8 + 1.4 = 9.4 (15 % ms lento)
Conclusin: El efecto de la detencin de memoria es muy significativo cuando
el CPI y T
ciclo
son bajos.
A ms bajo CPI, el impacto es ms pronunciado.
La penalizacin de fallos se mide en ciclos de reloj. A igual tiempo de
acceso a memoria y menor T
ciclo
(mayor frecuencia) la penalizacin de
fallos es mayor.
15
Evaluacin del rendimiento de una cache (4) - Ejercicio
4.2
M
C
A
C
H
E
48
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Supongamos que ejecutamos un programa y obtenemos una tasa de fallos del 3%. Si la
mquina donde lo ejecutamos tiene un CPI de 2 sin bloqueos a memoria y una
penalizacin de fallos de 40 ciclos para todos los fallos, determinar cunto ms rpida
sera una mquina 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 mquina se le aplica una segmentacin mejor consiguiendo
disminuir el CPI de 2 a 1, sin cambiar la frecuencia de reloj. Cunto ms rpida es ahora
la mquina con cache ideal respecto a la mquina con cache real? Qu porcentaje de
tiempo de ejecucin se emplea en bloqueos de memoria en cada caso?
Si en vez de tocar la segmentacin se dobla la frecuencia de reloj de la mquina original,
compare los CPI de la mquina rpida y lenta cuando ambas tienen memoria real.
Cunto ms rpida ser la mquina con cache real y reloj rpido respecto a la mquina
con cache real y reloj lento? (supnganse los mismos datos de tasa de fallos, etc..)
Clasificacin de los fallos de la cache
4.2
M
C
A
C
H
E
49
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
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 trado
desde la memoria principal a la cache. Tambin llamados fallos de
primera referencia o de arranque fro.
Capacidad (capacity)
Si la cache no puede contener todos los bloques necesarios durante la
ejecucin del programa, se descartan bloques de la cache (sustitucin)
que posteriormente se recuperan.
Conflicto (conflict)
Si la estrategia de ubicacin 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.
16
Introduccin de la cache en el diseo del procesador
4.2
M
C
A
C
H
E
50
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Cmo?
Cambiando las memorias del diseo del procesador por memorias cache.
Si hay un acierto la ruta de datos contina usando los datos igual que antes
(modificaciones mnimas)
Si hay un fallo bloquear el procesador, buscar los datos en el siguiente nivel
de memoria, copiarlos en la cache y reanudar la ejecucin de la instruccin
que caus el fallo.
Tratamiento de fallo de lectura de instruccin:
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 ejecucin de la instruccin desde el principio.
Tratamiento de fallo de lectura de datos Similar.
Eleccin del tamao de bloque en la cache
4.2
M
C
A
C
H
E
51
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Bloque de Tamao 1 palabra
No explota localidad espacial
Escrituras sencillas (no importa si hay fallo de escritura)
Bloque de Tamao multipalabra
Explota mejor la localidad espacial, disminuyendo entonces la tasa de fallos,
EXCEPTO si se aumenta mucho el tamao de bloque (dejando fijo el tamao total de
la cache) porque entonces el nmero de bloques diferentes en la cache es muy
pequeo para poder explotar la localidad temporal y se produce un aumento de la
tasa de fallos.
El tratamiento de las escrituras es ms complicado: Si hay fallo de escritura se
requiere hacer una lectura previa.
Aumenta la penalizacin de un fallo. A medida que el bloque comienza a ser muy
grande la penalizacin de fallos crece. Si crece ms de lo que disminuye la tasa de
fallos entonces el producto (tasa de fallos * penalizacin de fallos) aumenta,
producindose una disminucin global del rendimiento.
Aumenta la eficiencia de la cache, al aumentar el ratio (informacin til de datos
/informacin total) (por disminuir el n de etiquetas en relacin a los datos)
17
Algunas tcnicas para mejorar el rendimiento de la cache
4.2
M
C
A
C
H
E
52
Fundamentos de Computadores 2 - ITIG 2004/2005 Tema 4. Subsistema de memoria
Asociatividad reduce la tasa de fallos
Introducir asociatividad permite mayor flexibilidad en la ubicacin de los bloques en
la cache, permitiendo as explotar mejor la localidad temporal.
Memorias cache multinivel reducen la penalizacin de fallos
Se aade 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 estn all se reduce la penalizacin de fallo.
Si no estn accedemos a la memoria principal. En este caso la penalizacin 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 relacin con lo que cuesta un acceso a
la memoria principal), el diseo se centra en disminuir el tiempo de acierto de la L1
(para as poder disminuir el tciclo) ms que en disminuir su tasa de fallos.
Normalmente la L1 es de pequeo tamao y con asociatividad 2 o 4, mientras que la
L2 es grande y con asociatividad 2, como mucho.