Вы находитесь на странице: 1из 27

Memoria cache

Organizacin del Computador 1 Memoria Cache


Dr. Ing. Marcelo Risk
Departamento de Computacin Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires

2011

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Memorias: Evolucin

Pioneros: Maurice Wilkes con la primer memoria de tanque de mercurio para la computadora EDSAC. 2 bytes: 1947.

Visionarios... 640K debe ser suciente para cualquiera. Bill Gates, 1981.
Dr. Ing. Marcelo Risk Organizacin del Computador 1 Memoria Cache

Memoria cache

Tecnologa de Integracin Actual

Imgenes obtenidas con TEM (Transmission Electron Microscope) de una cepa del virus de la gripe, y de un transistor construido con la tecnologa de 65 nm utilizada desde el ao 2005 en el Procesador Pentium IV y posteriores.
Dr. Ing. Marcelo Risk Organizacin del Computador 1 Memoria Cache

Memoria cache

Tecnologa de Memorias: RAM Dinmica


CAS RAS Cd

Buffer

Transistor

Bit de datos de salida al bus

Almacena la informacin como una carga en una capacidad espuria de un transistor. Una celda (un bit) se implementa con un solo transistor mxima capacidad de almacenamiento por chip. Ese transistor consume mnima energa Muy bajo consumo. Al leer el bit, se descarga la capacidad necesita regenerar la carga aumenta entonces el tiempo de acceso de la celda.
Dr. Ing. Marcelo Risk Organizacin del Computador 1 Memoria Cache

Memoria cache

Tecnologa de Memorias: RAM Esttica


Lnea de Bit Lnea de Bit Seleccin 1 3 4 6

Almacena la informacin en un biestable. Una celda (un bit) se compone de seis transistores menor capacidad de almacenamiento por chip. 3 transistores consumen energa mxima en forma permanente y los otros 3 consumen mnima energa Mayor consumo. La lectura es directa y no destructiva tiempo de acceso muy bajo.
Dr. Ing. Marcelo Risk Organizacin del Computador 1 Memoria Cache

Memoria cache

Estructura de Bus clsica


Desde nes de los aos 80, los procesadores desarrollaban velocidades muy superiores a los tiempos de acceso a memoria. En este escenario, el procesador necesita generar wait states para esperar que la memoria est lista READY para el acceso.
Organizacin del Computador 1 Memoria Cache

Procesador
CONTROL ADDRESS DATOS

Bus Local del Procesador

Bus de control

Buffer de datos

Buffer de address

BUS DEL SISTEMA

Memoria del Sistema

E/S del Sistema

Dr. Ing. Marcelo Risk

Memoria cache

Crecimiento de la velocidad de clock de las CPU versus memoria


1100 1000 900 800 700 600 500 400 300 200 100 Pentium III 1 GHz

Pentium II 400 MHz

486 DX4 100 MHz Memorias 386 DX4 33 MHz

89

90

91

92

93

94

95

96

97

98

99

00

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

El problema
RAM dinmica (DRAM)
Consumo mnimo. Capacidad de almacenamiento comparativamente alta. Costo por bit bajo. Tiempo de acceso alto (lento), debido al circuito de regeneracin de carga. Si construmos el banco de memoria utilizando RAM dinmica, no aprovechamos la velocidad del procesador.

RAM esttica (SRAM)


Alto consumo relativo. Capacidad de almacenamiento comparativamente baja. Costo por bit alto. Tiempo de acceso bajo (es mas rpida). Si construmos el banco de memoria utilizando RAM esttica, el costo y el consumo de la computadora son altos.
Dr. Ing. Marcelo Risk Organizacin del Computador 1 Memoria Cache

Memoria cache

La solucin: Memoria cache


Se trata de un banco de SRAM de muy alta velocidad, que contiene una copia de los datos e instrucciones que estn en memoria principal. El arte consiste en que esta copia est disponible justo cuando el procesador la necesita permitindole acceder a esos tems sin recurrir a wait states. Combinada con una gran cantidad de memoria DRAM, para almacenar el resto de cdigos y datos, resuelve el problema mediante una solucin de compromiso tpica. Requiere de hardware adicional que asegure que este pequeo banco de memoria cache contenga los datos e instrucciones ms frecuentemente utilizados por el procesador.
Dr. Ing. Marcelo Risk Organizacin del Computador 1 Memoria Cache

Memoria cache

Referencias
El tamao del banco de memoria cache debe ser:
Sucientemente grande para que el procesador resuelva la mayor cantidad posible de bsquedas de cdigo y datos en esta memoria asegurando una alta performance. Sucientemente pequea para no afectar el consumo ni el costo del sistema.

Se dice que se logra un hit cuando se accede a un tem (dato o cdigo) y ste se encuentra en la memoria cache. En caso contrario, se dice que el resultado del acceso es un miss. Se espera un hit rate lo ms alto posible hit rate =
Cantidad de accesos con presencia en Memoria Cache Cantidad total de accesos a memoria
Dr. Ing. Marcelo Risk Organizacin del Computador 1 Memoria Cache

Memoria cache

Operacin de Lectura de memoria


Inicio
CPU enva seal de lectura

Hit!

Busca tem en cache

Miss

Busca tem en memoria del sistema

Busca tem en cache y enva a la CPU

Escribe tem en el cache

Actualiza directorio cache

Enva tem a la CPU

Fin

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Estructura de Bus del sistema con cache


Procesador
CONTROL

CONTROL

Buffer de Datos

DATOS

Memoria cach

Controlador de Memoria cach

ADDRESS

Bus local del procesador

Buffer de Address

Bus local del controlador cach

Bus de control

BUS DEL SISTEMA

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Cmo trabaja el controlador cache

El controlador cache trabaja mediante dos principios que surgen de analizar el comportamiento de los algoritmos de software que se emplean habitualmente.
Principio de vecindad temporal: Si un tem es referenciado, la probabilidad de ser referenciado en el futuro inmediato es alta. Principio de vecindad espacial: Si un tem es referenciado, es altamente probable que se referencie a los tems vecinos a ste. Ejemplo: Algoritmo de convolucin i, j, suma, se utilizan a menudo. Por lo tanto si se mantienen en el cache, el tiempo de acceso a estas variables por parte del procesador es ptimo.

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Estructura de memoria cache


Tag Lnea
Direccin 0 1 2 3 4 5 6 7 8 9

Lnea

Lnea: Elemento mnimo de palabra de datos dentro del cache. Corresponde a un mltiplo del tamao de la palabra de datos de memoria. Razn: Cuando se direcciona un tem en memoria generalmente se requerir de los tems que lo rodean (Principio de vecindad espacial)
Dr. Ing. Marcelo Risk

Ancho de palabra

Organizacin del Computador 1 Memoria Cache

Memoria cache

Memoria Cache
Procesador
Baja capacidad, pero accesible a la velocidad del procesador!

Subsistema Cache Controlador de Memoria Cache Memoria SRAM ultrarpida (cache)

Bus del procesador (Bus local)

Bus del sistema

Hardware adicional. Mantiene el cache con los datos ms frecuentemente utilizados por el procesador.

Control de bus local del controlador cache Arbitracin del Bus

Interfaz con el Bus Local

Directorio de Cache

Bus de Address del procesador Bus de Snoop

Memoria DRAM

Control del bus local del procesador Decodificacin del bus local del procesador

Interfaz con el Procesador

Control de Cache

Bus de Control de la Memoria Cache

Configuracin

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Organizacin del cache: Mapeo Directo


Bit de validez del Tag Tag 17 bits
Set 0

1 lnea = 4 bytes
Lnea

Bits de validez de las lneas

Lnea

32 Kbytes (igual tamao que el del cache)


Set 1

Pg. 217 - 1
Set 1023

Directorio de Cache Interno Memoria Cach


Dr. Ing. Marcelo Risk

Pg. 0

4 Gbytes de Memoria Principal


Organizacin del Computador 1 Memoria Cache

Memoria cache

Organizacin del cache de mapeo directo


Cache Address (1 de 8 Klneas)
A31 A14 A13 A5 A4 A2

Tag de 17 bits (1 de las 217 pginas)

Set Address (1 de 1024 sets)

Selector de Lnea (1 de 8 lneas)

Bits de validez del Tag 0

Nro. de Set

1 Bits de validez de la lnea 1023


Directorio de Cache Interno

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Organizacin del cache: Asociativo de dos vas


1 lnea = 4 bytes
Lnea Lnea

Bit de validez del Tag Tag 18 bits


Set 0

Bits de validez de las lneas

Bits LRU

18 bits

Lnea

16 Kbytes (igual tamao que el de cada banco de cache)

18 bits
Set 1

Bits LRU

18 bits

18 bits
Set 512

Bits LRU

18 bits

Pg. 218

Directorio de Cache Interno Memoria Cach

Pg. 0

4 Gbytes de Memoria Principal

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Organizacin del cache asociativo de dos vas


Cache Address (1 de 4 Klneas)
A31 A14 A13 A5 A4 A2

Tag de 18 bits (1 de las 218 pginas)

Set Address (1 de 512 sets)

Selector de Lnea (1 de 8 lneas)

Bits de validez del Tag 0

Nro. de Set

1 Bits de validez de la lnea 512


Directorio de Cache Interno

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Manejo del contenido

Algoritmos de reemplazo del contenido de la memoria cache:


LRU: Least Recently Used: Se corresponde con el principio de vecindad temporal. LFU: Least Frecuently Used. Random. FIFO.

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Cache miss: Impacto en el Pipeline de instrucciones


Pipeline: permite superponer en el tiempo la ejecucin de varias instrucciones a la vez. No requiere hardware adicional. Slo se necesita lograr que todas las partes del procesador trabajen a la vez. Trabaja con el concepto de una lnea de montaje:
Cada operacin se descompone en partes. Se ejecutan en un mismo momento diferentes partes de diferentes operaciones. Cada parte se denomina etapa (stage).
Dr. Ing. Marcelo Risk
Bsq. Inst. 1 Bsq. Inst. 2 Bsq. Inst. 3 Bsq. Inst. 4 Bsq. Inst. 5 Bsq. Inst. 6 Bsq. Inst. 7

Dec.FI Inst. 1

Dec. Inst. 2

Dec. Inst. 3

Dec. Inst. 4

Dec. Inst. 5

Dec. Inst. 6

Bsq. Op. 1

Bsq. Op. 2

Bsq. Op. 3

Bsq. Op. 4

Bsq. Op. 5

Ejec. Inst. 1

Ejec. Inst. 2

Ejec. Inst. 3

Ejec. Inst. 4

Escrib. Escrib. Escrib. Res. 1 Res. 2 Res. 3

RESULTADO: UNA VEZ EN REGIMEN EJECUTA A RAZON DE UNA


Organizacin del Computador 1 Memoria Cache

Memoria cache

Cache miss: Impacto en el Pipeline de instrucciones


Si la bsqueda de una instruccin o de un operando en el cache falla, entonces el procesador debe recurrir a la memoria principal. La demora en el acceso hace que el pipeline se atasque (stall). Una vez recuperado el dato de memoria principal se requieren (en este ejemplo), 5 ciclos de reloj adicionales para recuperar el ritmo de operacin del pipeline!
Cache MISS

Bsq. Inst. 1

Bsq. Inst. 2

Bsq. Inst. 3

Bsq. Inst. 4

Bsq. Inst. 5

Bsq. Inst. 6

Bsq. Inst. 7

Bsq. Inst. 8

Bsq. Inst. 9

Bsq. Inst. 10

Bsq. Inst. 11

Dec.FI Inst. 1

Dec. Inst. 2

Dec. Inst. 3

Dec. Inst. 4

Dec. Inst. 5

Dec. Inst. 6

Dec.FI Inst. 7

Dec. Inst. 8

Dec. Inst. 9

Dec. Inst. 10

PI PE

Bsq. Op. 1

Bsq. Op. 2

Bsq. Op. 3

Bsq. Op. 4

Bsq. Op. 5

Bsq. Op. 6

Bsq. Op. 7

Bsq. Op. 8

Bsq. Op. 9

LI E N ST

Ejec. Inst. 1

Ejec. Inst. 2

Ejec. Inst. 3

Ejec. Inst. 4

Ejec. Inst. 5

Ejec. Inst. 6

Ejec. Inst. 7

Ejec. Inst. 8

AL LE

Escrib. Escrib. Escrib. Escrib. Escrib. Escrib. Res. 1 Res. 2 Res. 3 Res. 4 Res. 5 Res. 6

Escrib. Res. 7

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Coherencia de un cache
Una variable que est en el cach tambin est alojada en alguna direccin de la DRAM. Ambos valores deben ser iguales. Cuando el procesador la modica hay varios modos de actuar:
Write through: el procesador escribe en la DRAM y el controlador cache refresca el cache con el dato actualizado. Write through buffered: el procesador actualiza la SRAM cache, y el controlador cache luego actualiza la copia en memoria DRAM mientras el procesador contina ejecutando instrucciones y usando datos de la memoria cache. Copy back: Se marcan las lneas de la memoria cache cuando el procesador escribe en ellas. Luego en el momento de eliminar esa lnea del cache el controlador cache deber actualizar la copia de DRAM.

Si el procesador realiza un miss mientras el controlador cache est accediendo a la DRAM para actualizar el valor, deber esperar hasta que controlador cache termine la actualizacin para recibir desde ste la habilitacin de las lneas de control
Dr. Ing. Marcelo Risk Organizacin del Computador 1 Memoria Cache

Memoria cache

Estructura de Bus del sistema Multiprocesador con cache


Procesador
CONTROL CONTROL ADDRESS

Procesador

DATOS

CONTROL

CONTROL

Buffer de Datos

Buffer de Address

SNOOP BUS

Buffer de Datos

DATOS

Memoria cach

Controlador de Memoria cach

Memoria cach

Controlador de Memoria cach

Buffer de Address

SNOOP BUS

Bus de control

Bus del cach Bus local del procesador Bus local del controlador cach BUS DEL SISTEMA

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

ADDRESS

Memoria cache

Multilevel cache

Cache Nivel 1 En chip

CPU

Cache Nivel 2

Controlador Cache

Tamao Cache N2 Tamao Cache N1 Velocidad Cache N1 Velocidad Cache N2

Memoria del Sistema (DRAM)

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Implementaciones prcticas de memoria cache (1)


Intel 80486:
8 Kbytes de cache L1 on chip. Tamao de lnea: 16 bytes. Organizacin asociativa de 4-vas.

Pentium:
Dos caches on-chip, uno para datos y otro para instrucciones. Tamao de cada cache: 8 Kbytes. Tamao de lnea: 32 bytes. Organizacin asociativa de 4-vas.

PowerPC 601:
Cache on-chip de 32 Kbytes. Tamao de lnea: 32 bytes. Organizacin asociativa de 8-vas.

Dr. Ing. Marcelo Risk

Organizacin del Computador 1 Memoria Cache

Memoria cache

Implementaciones prcticas de memoria cache (2)


PowerPC 603:
Dos caches on-chip, una para datos y otra para instrucciones. Tamao de cada cache: 8 Kbytes. Tamao de lnea: 32 bytes. Organizacin asociativa de 2-vas (organizacin del cache ms simple que en el 601 pero un procesador mas fuerte).

PowerPC 604:
Dos caches on-chip, uno para datos y otro para instrucciones. Tamao de cada cache: 16 Kbytes. Tamao de lnea: 32 bytes. Organizacin asociativa de 4-vas.

PowerPC 620:
Dos caches on-chip, uno para datos y otro para instrucciones. Tamao de cada cache: 32 bytes. Tamao de lnea: 64 bytes. Organizacin asociativa de 8-vas.
Dr. Ing. Marcelo Risk Organizacin del Computador 1 Memoria Cache

Вам также может понравиться