Anda di halaman 1dari 28

Memoria cach

Arquitectura de Ordenadores

MEMORIA CACH

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 1

Memoria cach

Arquitectura de Ordenadores

Componentes principales de un ordenador


Procesador
Entrada
Control
Memoria

Datapath

Salida

Elemento a estudiar

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 2

Memoria cach

Arquitectura de Ordenadores

Evolucin de memoria y CPU


CPU

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

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 3

Memoria cach

Arquitectura de Ordenadores

Impacto de la relacin entre CPU y memoria

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 %

Cada instruccin hay que leerla de memoria !!

Mientras la CPU est leyendo una instruccin de memoria, no se


puede leer la siguiente.
Nmero medio de ciclos de acceso a memoria en cada instruccin: 10
+ 0.3 * 10 = 13 CPI
CPI de la CPU con la memoria: 1 + 9 + 9*0.3 = 12.7

Cmo solucionar el problema?


Memoria ms rpida?
Qu tipos de memoria hay disponibles?

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 4

Memoria cach

Arquitectura de Ordenadores

Tipos de memoria

Bit de DRAM

Memoria dinmica (DRAM)

Seleccin fila

Dinamic Random Access Memory


Alta capacidad de almacenamiento,
bajo consumo, barata, lenta
Dinmica: el contenido necesita ser
refrescado regularmente
Cada celda correspondiente a un bit es
equivalente a un condensador con 1
transistor.

Transistor
FET

bit

Bit de SRAM

Memoria esttica (SRAM)

Equivalente
a un
registro de
1 bit

Seleccin fila

Baja capacidad de almacenamiento,


alto consumo, cara, rpida
Esttica: el contenido permanece
inalterable mientras haya alimentacin
Cada celda correspondiente a un bit
es la versin simplificada de un registro
de 1 bit. Tamao equivalente a 6
transistores
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez

Celda:
condensador

bit

bit

UPCO ICAI Departamento de Electrnica y Automtica 5

Memoria cach

Arquitectura de Ordenadores

Esquema simplificado de una memoria de 4x2bits


R/W
CS
Descodificacin
direccin
00

A0

01

A1

10

Lectura/escritura
dato

11

D1
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez

D0

UPCO ICAI Departamento de Electrnica y Automtica 6

Memoria cach

Arquitectura de Ordenadores

Memoria y tamao

A igualdad de tecnologa, al
aumentar la capacidad de la
memoria disminuye su velocidad:

A0..A9

Los decodificadores son mayores


Se intenta solucionar utilizando una
disposicin en matriz

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

Diferente tamao para columnas y


filas

Decodificador Columnas

En general: al aumentar la
capacidad de un sistema de
almacenamiento disminuye la
velocidad

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

De
co
dif
ic
ad
or
Fil
as

UPCO ICAI Departamento de Electrnica y Automtica 7

Memoria cach

Arquitectura de Ordenadores

Organizacin de una memoria DRAM

Decodificador Columnas

De
co
dif
ic
ad
or
Fil
as

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 8

Memoria cach

Arquitectura de Ordenadores

Ejemplo: 256 Mbit DRAM sncrona (100/133 MHz)


Columnas

Filas

Decodificador
ms rpido en
columnas que
en filas

Bancos

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 9

Memoria cach

Arquitectura de Ordenadores

Soluciones al problema de la memoria DRAM

Ejemplo: memoria DRAM de 60 ns

Cambiar de fila y columna simultneamente necesita 110 ns


Seleccionar un dato en una columna necesita 15 ns.
Cambiar de columna dentro de una misma fila necesita 35 ns
Estos tiempos aumentan con el retraso en las seales en el bus de
direcciones y de datos
El dato tiene que llegar a donde se necesita.

Para una memoria de 60 ns la latencia real entre memoria y


microprocesador vara entre 180 ns y 250 ns: manejar memorias
en paralelo, buses, pines, zcalos de conexin.

La diferencia de acceso entre filas y columnas se intenta


utilizar para mejorar el tiempo de acceso a la memoria
EDO
SDRAM, DDR SDRAM
RDRAM (RAMBUS)

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

En el fondo son protocolos de bus


para adaptarse a los tiempos
cambiantes en el acceso a memoria
UPCO ICAI Departamento de Electrnica y Automtica 10

Memoria cach

Arquitectura de Ordenadores

Arquitectura SDRAM y RDRAM

Poner el nfasis en el ancho


de bus (ancho de banda - pico)

Poner el nfasis en la
latencia

Ms ancho de banda:
ms canales RDRAM
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez

Memoria cach

UPCO ICAI Departamento de Electrnica y Automtica 11

Arquitectura de Ordenadores

Cronograma SDRAM
Ciclos acceso fila columna - dato

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 12

Memoria cach

Arquitectura de Ordenadores

SDRAM comparada con DDR SDRAM

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Memoria cach

RDRAM (RAMBUS)

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 13

Arquitectura de Ordenadores
Mayor frecuencia, pero ms ciclos
por cada operacin

UPCO ICAI Departamento de Electrnica y Automtica 14

Memoria cach

Arquitectura de Ordenadores

Comparacin entre RDRAM y SDRAM

RDRAM a 800 MHz no significar que el tiempo de acceso es


1.25ns
Utiliza un reloj a 800 MHz para la lgica interna de control de la
RDRAM (Sony PlayStation2)
Igual ocurre con las SDRAM

Sigue
siendo
muy lenta
frente a la
CPU

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 15

Memoria cach

Arquitectura de Ordenadores

Ms datos para comparar


SDRAM

DDR SDRAM

RDRAM

Speeds

66, 100, 133 MHz

200, 266 MHz

600, 800 MHz

Peak Bandwidth

528MB/s, 800
MB/s, 1.064 GB/s

1.6 GB/s, 2.1


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

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 16

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

DDR2: nueva versin de DDR SDRAM

Fuente: IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 11. NOVEMBER 2001

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Memoria cach

UPCO ICAI Departamento de Electrnica y Automtica 17

Arquitectura de Ordenadores

Comparacin rendimiento vs potencia consumida

Fuente: VIA Technology Forum - September 2000

Con todos estos datos, Cul es la mejor?


La MEMORIA PRINCIPAL sigue siendo un problema

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 18

Memoria cach

Arquitectura de Ordenadores

Aspecto fsico de los mdulos


Mdulo RIMM:
Rambus Inline
Memory
Module

Mdulo RIMM:
128MB RDRAM
800 MHz

Mdulo DIMM: Dual


In-line Memory
Module

Mdulo DIMM
(PC2100):
128MB DDR
SDRAM 266
MHz

9 Chips: 8 + 1
para ECC

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Mdulo DIMM:
128MB SDRAM
100 MHz

UPCO ICAI Departamento de Electrnica y Automtica 19

Memoria cach

Arquitectura de Ordenadores

Otros temas relacionados con la memoria

Memoria ECC
La memoria ECC detecta errores de bits mltiples y corrige errores de bits
nicos generalmente.

Su tamao viene regida por la aplicacin de la ecuacin de la


distancia de hamming
r

2 = n + r +1

Si se quiere tener capacidad de detectar y corregir al menos un error en un


bit, el nmero de bits a aadir (r) a los n bits originales debe generar
suficientes cdigos diferentes que contemplen los posibles errores de un
solo bit (n+r) ms el cdigo original.
Otro tema es cmo construir esos cdigos: codificacin de hamming

Ejemplo documentacin PowerPC


The 750CXs L2 cache is implemented with an on-chip, two-way setassociative tag memory with 2048 tags per way, and an on-chip 256 Kbyte
SRAM for data storage. The tags are sectored to support two cache blocks
per tag entry (two sectors, 64 bytes). Each sector (32-byte L1 cache block)
in the L2 cache has its own valid and modified bits. In addition, the SRAM
includes an 8-bit ECC for every double word.

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 20

10

Memoria cach

Arquitectura de Ordenadores

Solucin al problema: Memoria cach

Memoria pequea y rpida situada


entre la memoria principal y la CPU.

Memoria
Principal

SRAM

Disminuye el tiempo de acceso a los


datos:
SRAM: 5 ns
DRAM: 40 ns
Cuando la CPU accede por primera vez
a un dato, se busca en la memoria
principal.
Se copia en la memoria cach
Si se necesita nuevamente se va a la
cach.
10 accesos

Cach

CPU

Sin cach: 400 ns


Con cach: 40 + 9*5 = 85 ns
Aumento de rendimiento: 4.7
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 21

Memoria cach

Arquitectura de Ordenadores

Por qu puede mejorar con una cach?

Gracias al Principio de localidad:


El rango de direcciones de memoria al que accede un programa es
relativamente pequeo para periodos de tiempo cortos.
La informacin de las direcciones ms frecuentadas pueden estar
en una memoria pequea y rpida (memoria cach), y el resto de
datos en una grande y barata.
Lo ms referenciado tenerlo ms cerca de la CPU
En la vida prctica hay muchos ejemplos de cachs: habitacin de un
estudiante, empresa de logstica, etc.
Los accesos se
concentran en ciertos
rangos de direcciones

Probabilidad
de referencia

2^n - 1
Espacio de memoria

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 22

11

Memoria cach

Arquitectura de Ordenadores

Cmo se cumple el principio de localidad?

Localidad temporal
Si se accede a una posicin de memoria, frecuentemente se
vuelve a acceder a la misma posicin de memoria

Cdigo: bucles, recursividad, funciones frecuentemente llamadas


Datos: datos globales

Localidad espacial
Si se accede a una posicin de memoria, frecuentemente tambin
se accede a posiciones cercanas
Cdigo: cdigo secuencial
Datos: vectores, matrices

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 23

Memoria cach

Arquitectura de Ordenadores

Solucin en general: jerarqua de memoria

Compromiso entre velocidad de acceso al dato, capacidad


de almacenamiento y coste
La jerarqua de memoria de un servidor es diferente a la de un PC

Resultado: memoria grande, rpida y barata


Procesador

Cach o buffer del nivel


siguiente ms lento

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

Ejemplo de jerarqua de memoria (I)

Aprovechar los diferentes grados de cumplimiento del


principio de localidad

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 25

Memoria cach

Arquitectura de Ordenadores

Ejemplo de jerarqua de memoria (II)


Tamao

Velocidad

32x4bytes

CPU (<2ns) 1c

~10 GB/s

<64 KB

CPU (<2ns) 1-2c

~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

100 MB/s a 2 GB/s

100 100.000 c. 10MBit a 1GBit/s


10 1000 c.

132 MB/s

El objetivo es conseguir un ordenador cuya velocidad de


memoria sea equivalente a la ms rpida y su capacidad de
almacenamiento equivalente a la memoria ms grande.
Cada nivel acta de memoria cach del nivel inferior ms
lento. Tambin se utiliza el trmino buffer.

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 26

13

Memoria cach

Arquitectura de Ordenadores

Relacin entre jerarqua de memoria y pipeline


Cach de
instrucciones
(L1)

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

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

D
c
a
c
h
e

1-3
ciclos

1-3
ciclos

Procesador

R
e
g
s

Cach
de datos
(L1)

UPCO ICAI Departamento de Electrnica y Automtica 27

Memoria cach

Arquitectura de Ordenadores

Organizacin en general de la memoria cach

La CPU lanza la direccin al


bus de direcciones
El controlador de cach
indica a la memoria cach la
direccin.
Si el dato est en la memoria
cach, sta devuelve acierto.
Tambin hay que comprobar
que el dato es correcto (bit de
validez)
El dato de la cach pasa a la
CPU.
Si hay fallo, la direccin se
lanza a la memoria principal.
El mecanismo es
transparente a la CPU.

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Bit
de
validez

CPU

Memoria Hit
Cach

Controlador
Memoria
Cach

Memoria
Principal

UPCO ICAI Departamento de Electrnica y Automtica 28

14

Memoria cach

Arquitectura de Ordenadores

Preguntas sobre el funcionamiento de la cach

Dnde ubicar un dato en la cach? Estrategia de


ubicacin
La cach es ms pequea que la memoria principal
Los datos se traen a la cach en bloques (principio de localidad)

Cmo encontrar un dato en la cach? Estrategia de


identificacin
Si el dato no est en la cach y est llena, qu bloque
sustituir? Estrategia de reemplazo
Qu ocurre cuando se escribe en la cach? Estrategia de
escritura
El dato en la cach y en memoria principal debera ser siempre el
mismo.

stas preguntas son comunes a cualquier sistema de


cach o buffer: sistema operativo, sistema de ficheros, etc.
Respuesta a estas preguntas: ORGANIZACIN

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Memoria cach

UPCO ICAI Departamento de Electrnica y Automtica 29

Arquitectura de Ordenadores

Organizacin de la cach

Una cach est organizada en lneas o bloques


Cada lnea o bloque contiene ms de un dato. Cuando se traen
datos desde memoria principal se traen varios para aprovechar el
Memoria Principal
principio de localidad.
00
02

La cach duplica
la informacin

Memoria Cach
Lnea 0
Lnea 1
Lnea 2
Lnea 3

06
08
0a
0c
0e
10

Cada lnea contiene 2 bytes


consecutivos de la memoria
principal

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 30

15

Memoria cach

Arquitectura de Ordenadores

Organizacin de cada lnea de la cach

Bloque de datos
Bit de validez

Etiqueta: Referencia a la direccin del bloque en memoria


principal

Indica si el dato es correcto

Como la cach es ms pequea que la memoria principal, en cada


lnea de la cach hay que almacenar informacin adicional para
saber cul es la direccin del dato en la memoria principal
Memoria Cach
Linea0 0
Linea1 1

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

La forma de hacer la correspondencia entre direccin de


memoria principal (la que enva la CPU) y el lugar donde
est almacenado el dato requerido en la cach define los
diferentes tipos de cach:
ASOCIATIVA
El dato puede ocupar cualquier lnea de la memoria
Utiliza memorias especiales tipo CAM (content addressable memory)

MAPEO DIRECTO
El dato slo puede ocupar una determinada lnea de la cach
Utiliza memorias convencionales SRAM

ASOCIATIVA POR GRUPOS (O CONJUNTOS)


El dato slo puede ser almacenado en unas pocas lneas de la cach

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 32

16

Memoria cach

Arquitectura de Ordenadores

Cach asociativa

La etiqueta de cada lnea


de la cach almacena la
direccin del bloque en
memoria principal

CPU

Direccin

Se quitan los bits bajos


(linea de 4 bytes: 2 bits)

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

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Datos

UPCO ICAI Departamento de Electrnica y Automtica 33

Memoria cach

Arquitectura de Ordenadores

Cach asociativa trabajando


Bus de direcciones CPU
Bus de datos

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
=

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Hit

AND

AND
UPCO ICAI Departamento de Electrnica y Automtica 34

17

Memoria cach

Arquitectura de Ordenadores

Cach de mapeo directo

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

UPCO ICAI Departamento de Electrnica y Automtica 35

Memoria cach

Arquitectura de Ordenadores

Cach mapeo directo trabajando


Bus de direcciones CPU
19

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

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 36

18

Memoria cach

Arquitectura de Ordenadores

Comparacin entre asociativa y mapeo directo

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: Mapeo directo

Poco flexible: programa que


genera direcciones que utilizan
la misma lnea de la cach

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.

Mejor: Mapeo directo


Un slo comparador

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Combinacin: Asociativa por


conjuntos

UPCO ICAI Departamento de Electrnica y Automtica 37

Memoria cach

Arquitectura de Ordenadores

Cach asociativa por conjuntos

Varias cachs de mapeo directo en paralelo

Conjunto 0
Etiquetas
Datos

Conjunto 1
Etiquetas
Datos

19

1211

21 0

Asociativa

Bus de direcciones

Mapeo Directo

La lnea se direcciona como mapeo directo


Cada lnea puede almacenar varios bloques. Se distingue el bloque
a travs de la etiqueta
Comportamiento intermedio entre asociativa y mapeo directo

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Hit
=

OR

AND
=

AND

UPCO ICAI Departamento de Electrnica y Automtica 38

19

Memoria cach

Arquitectura de Ordenadores

Estrategia de reemplazo

Qu hacer cuando no hay hueco para el nuevo dato?


Mapeo directo

Asociativas

Se reemplaza la lnea directamente


Aleatoria
Eliminar cualquier bloque
Se puede eliminar un bloque que todava va a seguir siendo utilizado

LRU (Least-recently used)


Eliminar el bloque que lleva ms tiempo sin ser utilizado
Cada bloque necesita un contador para llevar su historia de
utilizaciones.
Caso ms simple de contador: 1 bit
Cada vez que se accede se pone el bit del bloque a 1.
Cada vez que no se accede se pone a 0.

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 39

Memoria cach

Arquitectura de Ordenadores

Estrategia de escritura

Cuando se actualiza el dato en la cach, se actualiza en la


memoria principal?
Estrategia Write-Through
Siempre se actualiza la memoria principal
La cach mejora el rendimiento nicamente en la lectura

Estrategia Write-Back
Slo se actualiza la memoria principal cuando el dato va a ser
eliminado de la cach para albergar otro dato.

La fase de escritura se puede mejorar mediante un buffer


de escritura
Procesador

Cach

DRAM

Write Buffer
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 40

20

Memoria cach

Arquitectura de Ordenadores

Problema de la saturacin del buffer de escritura

Un buffer de escritura es una fifo de pocos bloques


Problema: Saturacin
Velocidad de retirada de datos hacia la memoria principal menor
que velocidad de entrada de nuevos datos
El nmero de operaciones de escritura suele bastante inferior al
nmero de operaciones de lectura.

Para solucionarlo: segunda cach (L2)

Procesador

Cach

Cach
L2

DRAM

Write Buffer

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Memoria cach

UPCO ICAI Departamento de Electrnica y Automtica 41

Arquitectura de Ordenadores

Cmo mejorar el diseo de una cach?

Reduciendo la tasa de fallos


Reduciendo la prdida de tiempo asociado a cada fallo
Reduciendo el tiempo de acceso a la cach en el caso de
acierto

Hennessy&Patterson han encontrado ms de 1600 artculos


relacionados con el diseo y mejora de la cach.

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 42

21

Memoria cach

Arquitectura de Ordenadores

Parmetros de diseo de la cach

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

Tiempo de acceso a la cach


Niveles de cach
Consumo

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Memoria cach

UPCO ICAI Departamento de Electrnica y Automtica 43

Arquitectura de Ordenadores

Clculo del tiempo de acceso medio (tm)

Frmula de clculo:

Ejemplo 1:

t m = tasa aciertos t acceso _ acierto + tasa fallos t penalizaci n


Expresado en unidades de tiempo o en ciclos
Una mquina cuyo tiempo de acceso a la cach es 1 ciclo
Si el dato no est en la cach el tiempo de acceso se incrementa
en 10 ciclos
La tasa media de fallos es 10%
Tiempo de acceso medio a la memoria: tm = 1 + 0.1*10 = 2 ciclos

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

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 44

22

Memoria cach

Arquitectura de Ordenadores

Impacto sobre el rendimiento total

Tiempo de ejecucin actualizado

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

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 45

Memoria cach

Arquitectura de Ordenadores

Ejemplo de impacto de la cach

Calcular el impacto en el tiempo de


ejecucin cuando se incluye la cach
50 ciclos de penalizacin cuando el dato no
est en la cach. 0 ciclos cuando est en la
cach
Todas las instrucciones requieren 2 ciclos de
reloj, excluyendo los ciclos de parada por
acceso del dato o la instruccin
Tasa de fallos de la cach: 2%
Nmero de referencias por instruccin a
memoria: 1.33

Una pequea mejora


en la cach
repercute de forma
extraordinaria en el
rendimiento del
ordenador

1: Leer la instruccin
0.33: Leer o escribir en la memoria

n = (2 +0.98*0*1.33+ 0.02 * 50 * 1.33)/2 = 1.88


Un 2% repercute aumentando el tiempo de
ejecucin en un 88 %
Si es un 4%: (2+0.04*50*1.33)/2=2.33 133%
Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 46

23

Memoria cach

Arquitectura de Ordenadores

Origen de los fallos en la cach

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

Incrementar el tamao de la cach


Incrementar el grado de asociatividad

Por capacidad (relacin inversa al tamao de la memoria)


La cach no puede almacenar todos los bloques
Incrementar el tamao de la cach: ojo con la velocidad.

Por invalidacin
Operacin de DMA

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 47

Memoria cach

Arquitectura de Ordenadores

Relacin entre fallos y tipo de cach


Mapeo Directo

Asociativa por conjuntos

Grande

Mediana

Pequea

Igual

Igual

Igual

Por conflicto

Alta

Media

Por capacidad

Baja

Tamao cach
Fallos fijos

Invalidacin

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Igual

Media
Igual

Asociativa

Muy baja
Alta
Igual

UPCO ICAI Departamento de Electrnica y Automtica 48

24

Memoria cach

Arquitectura de Ordenadores

Influencia del tamao del bloque

Al aumentar el tamao de la lnea aumenta el tiempo de


penalizacin
Se tardar ms en rellenar la lnea con datos desde memoria
principal.

A igualdad de tamao de cach, el aumento del bloque


puede provocar el aumento de la tasa de fallos

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

UPCO ICAI Departamento de Electrnica y Automtica 49

Arquitectura de Ordenadores

Tasa de fallos y divisin de la cach (datos e inst)

En el cdigo hay generalmente ms localidad que en los


datos:
Cdigo: bucles
Datos: Se intentan ubicar en los registros de la CPU (STACK).

Dentro de la CPU se suele utilizar la divisin de cachs


Aumenta ancho de banda: instrucciones y datos simultneos
Instrucciones y datos tienen diferentes necesidades
La cach de instrucciones suele trabajar slo en lectura
Ms simple y rpida
Permite mejorar las tcnicas de gestin de saltos

Tasa de fallos igual o mayor que la unificada (menos flexibilidad)


Diseo conjunto con la memoria virtual

Fuera de la CPU se suele utilizar unificada


Tasa de fallos menor
Ms flexibilidad: el cdigo puede estar mezclado con los datos

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 50

25

Memoria cach

Arquitectura de Ordenadores

Tasa de fallos y divisin de la cachs (datos e inst)

Es interesante partirla

No es interesante
partirla

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 51

Memoria cach

Arquitectura de Ordenadores

Tasa de fallos y asociatividad


No es necesario llegar a 8, con
4 es suficiente

La cach de mapeo directo es


una buena solucin

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 52

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

Partida para mejorar el ancho de banda

Nivel 2 (L2)
Fuera del chip
Ms lenta: mayor tiempo de acceso
Ms grande: mayor tasa de aciertos
CPU

Procesador

Cach
L1

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Cach
L2

DRAM

UPCO ICAI Departamento de Electrnica y Automtica 53

Memoria cach

Arquitectura de Ordenadores

Resumen sobre diseo de la cach

Incrementar tamao del


bloque
Mejora la tasa de fallos si no
nos acercamos al tamao de la
cach
Empeora el tiempo de
penalizacin

Aumentar grado de
asociatividad
Mejora la tasa de fallos

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

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

Incrementa el tiempo de acceso


a la cach en el acierto
Incrementa el coste

Total flexibilidad para ubicar


instrucciones y datos en la
cach

Incrementar los niveles de


cach
L1 para mejorar el tiempo de
acceso: I-cach y D-cach
L2 para mejorar la tasa de
fallos

UPCO ICAI Departamento de Electrnica y Automtica 54

27

Memoria cach

Arquitectura de Ordenadores

No est claro que es lo mejor

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

L1: 8-way, I-Data: 32 KB, I-Code: 32 KB


L2: 8-way, 256 KB
L3: hasta 2 MB

Aumenta el gap: aumenta el nmero de niveles de cach

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

Memoria cach

UPCO ICAI Departamento de Electrnica y Automtica 55

Arquitectura de Ordenadores

Errores tpicos del alumno

Creer que la bsqueda en la cach asociativa es secuencial


No diferenciar entre latencia expresada en ciclos de la
memoria y penalizacin en ciclos del acceso a la memoria.
Pensar que aumentando simplemente el tamao de la
cach aumenta el rendimiento del sistema.

Jos A. Rodrguez Mondjar


Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 56

28

Anda mungkin juga menyukai