Arquitectura de Ordenadores
MEMORIA CACH
Memoria cach
Arquitectura de Ordenadores
Datapath
Salida
Elemento a estudiar
Memoria cach
Arquitectura de Ordenadores
Ley de Moore
Procesador-Memoria
brecha rendimiento:
(crece 50% / ao)
100
10
RAM
Proc
60%/ao
Memoria
7%/ao
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
Rendimiento
1000
Ao
D.A. Patterson New directions in Computer Architecture Berkeley, June 1998
Memoria cach
Arquitectura de Ordenadores
Ejemplo:
CPU: 1Ghz
Memoria: 100 Mhz
30 % de las operaciones acceden a memoria
CPI ideal: 1
CPI con la memoria: 1 + 0.3 * 9 = 3.7
Un 30 % de instrucciones hace que la CPU se ralentice un 270 %
Memoria cach
Arquitectura de Ordenadores
Tipos de memoria
Bit de DRAM
Seleccin fila
Transistor
FET
bit
Bit de SRAM
Equivalente
a un
registro de
1 bit
Seleccin fila
Celda:
condensador
bit
bit
Memoria cach
Arquitectura de Ordenadores
A0
01
A1
10
Lectura/escritura
dato
11
D1
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
D0
Memoria cach
Arquitectura de Ordenadores
Memoria y tamao
A igualdad de tecnologa, al
aumentar la capacidad de la
memoria disminuye su velocidad:
A0..A9
Un decodificador de 20 a 1 Mlineas
es mucho ms lento que el uso de 2
decodificadores de 10 a 1 Klneas
No obstante, el problema persiste
A10..A19
Decodificador Columnas
En general: al aumentar la
capacidad de un sistema de
almacenamiento disminuye la
velocidad
De
co
dif
ic
ad
or
Fil
as
Memoria cach
Arquitectura de Ordenadores
Decodificador Columnas
De
co
dif
ic
ad
or
Fil
as
Memoria cach
Arquitectura de Ordenadores
Filas
Decodificador
ms rpido en
columnas que
en filas
Bancos
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
Poner el nfasis en la
latencia
Ms ancho de banda:
ms canales RDRAM
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria cach
Arquitectura de Ordenadores
Cronograma SDRAM
Ciclos acceso fila columna - dato
Memoria cach
Arquitectura de Ordenadores
Memoria cach
RDRAM (RAMBUS)
Arquitectura de Ordenadores
Mayor frecuencia, pero ms ciclos
por cada operacin
Memoria cach
Arquitectura de Ordenadores
Sigue
siendo
muy lenta
frente a la
CPU
Memoria cach
Arquitectura de Ordenadores
DDR SDRAM
RDRAM
Speeds
Peak Bandwidth
528MB/s, 800
MB/s, 1.064 GB/s
1.6 GB/s
(3.2 GB/s Dual
Channel)
3.3V
2.5V
2.5V
Pin Count
168-pin
184-pin
168-pin
Bit Length
64-bit
64-bit
16-bit
Voltage
Memoria cach
Arquitectura de Ordenadores
Comparacin ms realista
Tiempo de ejecucin
Velocidad del procesador (1Gz, 5 GHz, 10 GHz)
Procesador superescalar:
8-way superescalar
Cach L2: 256 Kb
Fuente: IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 11. NOVEMBER 2001
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
Mdulo RIMM:
128MB RDRAM
800 MHz
Mdulo DIMM
(PC2100):
128MB DDR
SDRAM 266
MHz
9 Chips: 8 + 1
para ECC
Mdulo DIMM:
128MB SDRAM
100 MHz
Memoria cach
Arquitectura de Ordenadores
Memoria ECC
La memoria ECC detecta errores de bits mltiples y corrige errores de bits
nicos generalmente.
2 = n + r +1
10
Memoria cach
Arquitectura de Ordenadores
Memoria
Principal
SRAM
Cach
CPU
Memoria cach
Arquitectura de Ordenadores
Probabilidad
de referencia
2^n - 1
Espacio de memoria
11
Memoria cach
Arquitectura de Ordenadores
Localidad temporal
Si se accede a una posicin de memoria, frecuentemente se
vuelve a acceder a la misma posicin de memoria
Localidad espacial
Si se accede a una posicin de memoria, frecuentemente tambin
se accede a posiciones cercanas
Cdigo: cdigo secuencial
Datos: vectores, matrices
Memoria cach
Arquitectura de Ordenadores
Control
Datapath Memoria
Memoria
Velocidad: Rpidas
Capacidad: Pequeas
Coste:
Alto
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria
Memoria
Memoria
Lentas
Grande
Bajo
UPCO ICAI Departamento de Electrnica y Automtica 24
12
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
Velocidad
32x4bytes
CPU (<2ns) 1c
~10 GB/s
<64 KB
~2 GB/s
<1 MB
5 20 ciclos
DRAM
<1 GB
10 100 c.
<500 MB/s
Disco duro
10 GB
10.000.000 c.
10-20 MB/s
Registros
Cach nivel 1 (L1)
Cach nivel 2 (L2)
SRAM interna
SRAM externa
Memoria principal
Red (servidores)
Bus
Ancho de banda
132 MB/s
13
Memoria cach
Arquitectura de Ordenadores
Memoria
L2
Cach
D/
M
a
p
I
S
S
E
x
R
W
R
et
PC
Register
Map
R
e
g
s
Ic
a
c
h
e
80-100
ciclos
5-10
ciclos
D
c
a
c
h
e
1-3
ciclos
1-3
ciclos
Procesador
R
e
g
s
Cach
de datos
(L1)
Memoria cach
Arquitectura de Ordenadores
Bit
de
validez
CPU
Memoria Hit
Cach
Controlador
Memoria
Cach
Memoria
Principal
14
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
Organizacin de la cach
La cach duplica
la informacin
Memoria Cach
Lnea 0
Lnea 1
Lnea 2
Lnea 3
06
08
0a
0c
0e
10
15
Memoria cach
Arquitectura de Ordenadores
Bloque de datos
Bit de validez
002e0
01
2a
3b
fa
00002
23
45
00
23
Linea2 1
Linea3 0
00000
aa
f0
e9
71
3eaa0
20
2d
80
a3
Bit de validez
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria cach
Etiquetas
Datos
UPCO ICAI Departamento de Electrnica y Automtica 31
Arquitectura de Ordenadores
Tipos de cachs
MAPEO DIRECTO
El dato slo puede ocupar una determinada lnea de la cach
Utiliza memorias convencionales SRAM
16
Memoria cach
Arquitectura de Ordenadores
Cach asociativa
CPU
Direccin
19
Forma de operar:
La CPU lanza la direccin
La parte alta de la
direccin se compara
simultneamente con
todas las etiquetas de las
lneas almacenadas en
memoria
Si hay acierto se
selecciona el byte dentro
de la lnea y se enva a la
CPU
18 bits
00000
Memoria 00001
Principal 00002
(1 MByte)
00003
00004
00005
00006
00007
21 0
00008
00009
0000a
2 bits
0000b
0000c
23
45
00
23
2e
ff
10
25
aa
f0
e9
71
23
25
Memoria Cach
Linea0 0
002e0
01
2a
3b
fa
Linea1 1
00002
aa
f0
e9
71
Linea2 1
00000
23
45
00
23
Linea3 0
3eaa0
20
2d
80
a3
Etiquetas
Datos
Memoria cach
Arquitectura de Ordenadores
19
21 0
Memoria Cach
Linea0
002e0
01
Linea1
00002
18 bits 23
Linea2
00000
Linea3
3eaa0
Etiquetas
2a
3b
2 bits
45
00
fa
23
aa
f0
e9
71
20
2d
80
a3
Datos
AND
=
=
OR
AND
=
Hit
AND
AND
UPCO ICAI Departamento de Electrnica y Automtica 34
17
Memoria cach
Arquitectura de Ordenadores
La direccin se
divide en tres
campos:
CPU
Seleccin de byte en
la lnea
Seleccin de lnea
Direccin
19
La direccin que
enva la CPU
selecciona
directamente la
lnea en la cach
12 11
10 bits
00000
Memoria 00001
Principal 00002
(1 MByte)
00003
00004
00005
00006
00007
21 0
00008
00009
0000a
2 bits
0000b
0000c
8 bits
Etiqueta
23
45
00
23
2e
ff
10
25
aa
f0
e9
71
23
25
Memoria Cach
Distinguir entre
todas las
direcciones de
memoria principal
que se mapean en
la misma lnea de
la cach
Linea0 1
00
23
45
00
Linea1 0
00
01
2a
3b
fa
Linea2 1
00
aa
f0
e9
71
3e
20
2d
80
a3
Linea3 0
Etiquetas
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
23
Datos
Memoria cach
Arquitectura de Ordenadores
12 11
00
21 0
02
Memoria Cach
Linea0
00
23
Linea1
00
18 bits 01
Linea2
00
Linea3
3e
Etiquetas
45
00
2 bits
2a
3b
23
fa
aa
f0
e9
71
20
2d
80
a3
Datos
Hit
=
AND
Comparador ms pequeo que
en la asociativa
18
Memoria cach
Arquitectura de Ordenadores
Tasa de fallos
Mejor: Asociativa
Precio
Mejor: Mapeo Directo
Cualquier direccin en
cualquier lnea
Memoria SRAM: 6
transistores/bit
Permite utilizar una memoria
ms lenta para los datos
Peor: CAM
Asociativa necesita un
comparador por lnea. CAM: 9
o 10 transistores/bit
Tamao
Peor: Asociativa
Integrar un comparador por
lnea
Velocidad
Mejor: Mapeo directo
Simplicidad, comparador ms
pequeo.
Memoria cach
Arquitectura de Ordenadores
Conjunto 0
Etiquetas
Datos
Conjunto 1
Etiquetas
Datos
19
1211
21 0
Asociativa
Bus de direcciones
Mapeo Directo
Hit
=
OR
AND
=
AND
19
Memoria cach
Arquitectura de Ordenadores
Estrategia de reemplazo
Asociativas
Memoria cach
Arquitectura de Ordenadores
Estrategia de escritura
Estrategia Write-Back
Slo se actualiza la memoria principal cuando el dato va a ser
eliminado de la cach para albergar otro dato.
Cach
DRAM
Write Buffer
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
20
Memoria cach
Arquitectura de Ordenadores
Procesador
Cach
Cach
L2
DRAM
Write Buffer
Memoria cach
Arquitectura de Ordenadores
21
Memoria cach
Arquitectura de Ordenadores
Tamao
Tamao del bloque
Tipo de cach, grado de asociatividad
Write through vs. Write back
Divisin de la cach
Cach de datos
Cach de instrucciones
Memoria cach
Arquitectura de Ordenadores
Frmula de clculo:
Ejemplo 1:
Ejemplo 2:
Mquina igual a la del ejemplo 1
Se ejecuta un programa que hace 100 referencias a memoria: 90
acierta y 10 falla la cach
tm = ciclos/referencias = (90*1 + 10*11)/100 = 2 ciclos
22
Memoria cach
Arquitectura de Ordenadores
t = I * (CPICPU + C PMEM ) * T
CPI se ha dividido en dos
CPICPU: nmero medio de ciclos que tarda en ejecutarse una
instruccin en la CPU, suponiendo que se tarda un ciclo en el acceso a
la cach (mquina sencilla).
CPMEM: nmero medio de ciclos de parada que provocan los accesos a
memoria de una instruccin (lectura de instruccin + carga/escritura
dato).
Tiempo de acceso a la cach
Tasa de fallos en el acceso a la cach
Tiempo de acceso a la memoria principal
Memoria cach
Arquitectura de Ordenadores
1: Leer la instruccin
0.33: Leer o escribir en la memoria
23
Memoria cach
Arquitectura de Ordenadores
Fallos fijos
Primer acceso
Disminuye al aumentar la probabilidad de cumplirse el principio de
localidad
Por conflicto
Mltiples direcciones mapeadas en la misma lnea de la cach
Solucin
Por invalidacin
Operacin de DMA
Memoria cach
Arquitectura de Ordenadores
Grande
Mediana
Pequea
Igual
Igual
Igual
Por conflicto
Alta
Media
Por capacidad
Baja
Tamao cach
Fallos fijos
Invalidacin
Igual
Media
Igual
Asociativa
Muy baja
Alta
Igual
24
Memoria cach
Arquitectura de Ordenadores
Tiempo
penalizacin
Tasa
fallos
Explota localidad
espacial
Tiempo medio
de acceso
Pocos bloques:
poca flexibilidad
Tamao bloque
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria cach
Tamao bloque
Incremento de tiempo
penalizacin
y tasa de fallos
Tamao bloque
Arquitectura de Ordenadores
25
Memoria cach
Arquitectura de Ordenadores
Es interesante partirla
No es interesante
partirla
Memoria cach
Arquitectura de Ordenadores
26
Memoria cach
Arquitectura de Ordenadores
Niveles de cach
Nivel 1 (L1)
Optimizada en velocidad
Limitada por el tamao (en el mismo chip que la CPU)
Tasa de fallos comprometida
Nivel 2 (L2)
Fuera del chip
Ms lenta: mayor tiempo de acceso
Ms grande: mayor tasa de aciertos
CPU
Procesador
Cach
L1
Cach
L2
DRAM
Memoria cach
Arquitectura de Ordenadores
Aumentar grado de
asociatividad
Mejora la tasa de fallos
Dividir la cach
Util dentro de la CPU.
Datos e instrucciones tienen
diferentes necesidades
No recomendado fuera de la
CPU
Incrementar el tamao de la
cach
Mejora la tasa de fallos
Incrementa el tiempo de acceso
a la cach en el acierto
Incrementa el coste
27
Memoria cach
Arquitectura de Ordenadores
Depende de la aplicacin
Se realizan mltiples simulaciones con diferentes
aplicaciones hasta conseguir un buena relacin entre
prestaciones del sistema con la cach diseada y el coste
Ejemplos
Pentium 4:
L1: I-Data: 8 KB, 4-way I-Code: 12 KB de microoperaciones
L2: 256 KB,8-way, integrada en el cartucho
Athlon:
L1: 2-way, I-Data: 64 KB I-Code: 64 KB
L2: 512 KB ampliable a 8 MB, mapeo directo
Cul es
la mejor
solucin?
PowerPc 7450
Memoria cach
Arquitectura de Ordenadores
28