cache

27
Memoria cache Organización del Computador 1 Memoria Cache Dr. Ing. Marcelo Risk Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 2011 Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Upload: felixsafar3243

Post on 08-Feb-2016

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cache

Memoria cache

Organización del Computador 1Memoria Cache

Dr. Ing. Marcelo Risk

Departamento de ComputaciónFacultad de Ciencias Exactas y Naturales

Universidad de Buenos Aires

2011

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 2: Cache

Memoria cache

Memorias: Evolución

Pioneros:Maurice Wilkes con la primer memoria detanque de mercurio para la computadoraEDSAC. 2 bytes: 1947.

Visionarios...640K debe ser suficiente para cualquiera.Bill Gates, 1981.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 3: Cache

Memoria cache

Tecnología de Integración Actual

Imágenes obtenidas con TEM (Transmission ElectronMicroscope) de una cepa del virus de la gripe, y de untransistor construido con la tecnología de 65 nm utilizadadesde el año 2005 en el Procesador Pentium IV y posteriores.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 4: Cache

Memoria cache

Tecnología de Memorias: RAM Dinámica

Buffer

Bit de datos de salida al bus

CASRAS

Cd

Transistor

Almacena la información como una carga en una capacidadespuria de un transistor.

Una celda (un bit) se implementa con un solo transistor ⇒máxima capacidad de almacenamiento por chip.

Ese transistor consume mínima energía ⇒ Muy bajo consumo.

Al leer el bit, se descarga la capacidad ⇒ necesita regenerar lacarga ⇒ aumenta entonces el tiempo de acceso de la celda.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 5: Cache

Memoria cache

Tecnología de Memorias: RAM Estática

1 3 4 6

52

Línea de Bit Línea de Bit

Selección

Almacena la información en un biestable.

Una celda (un bit) se compone de seis transistores menorcapacidad de almacenamiento por chip.

3 transistores consumen energía máxima en formapermanente y los otros 3 consumen mínima energía ⇒ Mayorconsumo.

La lectura es directa y no destructiva ⇒ tiempo de acceso muybajo.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 6: Cache

Memoria cache

Estructura de Bus clásica

Procesador

Bus decontrol

E/S delSistema

Memoria delSistema

Bufferde datos

Buffer deaddress

BUS DEL SISTEMA

CO

NTR

OL

DAT

OS

AD

DR

ESS

Bus Local delProcesador

Desde fines de losaños 80, losprocesadoresdesarrollabanvelocidades muysuperiores a lostiempos de acceso amemoria.

En este escenario, elprocesador necesitagenerar wait statespara esperar que lamemoria esté listaREADY para elacceso.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 7: Cache

Memoria cache

Crecimiento de la velocidad de clock de las CPU versusmemoria

1100

1000

900

800

700

600

500

400

300

200

100

Pentium III1 GHz

Pentium II400 MHz

486 DX4100 MHz

386 DX433 MHz

Memorias

89 90 91 92 93 94 95 96 97 98 99 00

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 8: Cache

Memoria cache

El problema

RAM dinámica (DRAM)Consumo mínimo.

Capacidad de almacenamiento comparativamente alta.

Costo por bit bajo.

Tiempo de acceso alto (lento), debido al circuito deregeneración de carga.

Si construímos el banco de memoria utilizando RAM dinámica,no aprovechamos la velocidad del procesador.

RAM estática (SRAM)Alto consumo relativo.

Capacidad de almacenamiento comparativamente baja.

Costo por bit alto.

Tiempo de acceso bajo (es mas rápida).

Si construímos el banco de memoria utilizando RAM estática,el costo y el consumo de la computadora son altos.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 9: Cache

Memoria cache

La solución: Memoria cache

Se trata de un banco de SRAM de muy alta velocidad, quecontiene una copia de los datos e instrucciones que están enmemoria principal.

El arte consiste en que esta copia esté disponible justo cuandoel procesador la necesita permitiéndole acceder a esos ítemssin recurrir a wait states.

Combinada con una gran cantidad de memoria DRAM, paraalmacenar el resto de códigos y datos, resuelve el problemamediante una solución de compromiso típica.

Requiere de hardware adicional que asegure que este pequeñobanco de memoria cache contenga los datos e instruccionesmás frecuentemente utilizados por el procesador.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 10: Cache

Memoria cache

Referencias

El tamaño del banco de memoria cache debe ser:Suficientemente grande para que el procesador resuelva lamayor cantidad posible de búsquedas de código y datos en estamemoria asegurando una alta performance.

Suficientemente pequeña para no afectar el consumo ni elcosto del sistema.

Se dice que se logra un hit cuando se accede a un ítem (dato ocódigo) y éste se encuentra en la memoria cache.

En caso contrario, se dice que el resultado del acceso es unmiss.

Se espera un hit rate lo más alto posible

hit rate = Cantidad de accesos con presencia en Memoria CacheCantidad total de accesos a memoria

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 11: Cache

Memoria cache

Operación de Lectura de memoria

Inicio

Hit! Miss

Fin

Busca ítem encache y envía

a la CPU

CPU envía señalde lectura

Busca ítemen cache

Busca ítem enmemoria

del sistema

Escribe ítemen el cache

Actualizadirectorio cache

Envía ítema la CPU

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 12: Cache

Memoria cache

Estructura de Bus del sistema con cache

Procesador

Memoriacaché

Bus decontrol

Controlador deMemoria cachéCONTROL

CO

NT

RO

L

DA

TO

S

AD

DR

ES

S

Bufferde

Datos

Bufferde

Address

Bus local delprocesador

Bus local delcontrolador caché

BUS DEL SISTEMA

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 13: Cache

Memoria cache

Cómo trabaja el controlador cache

El controlador cache trabaja mediante dos principios quesurgen de analizar el comportamiento de los algoritmos desoftware que se emplean habitualmente.

Principio de vecindad temporal: Si un ítem es referenciado, laprobabilidad de ser referenciado en el futuro inmediato es alta.

Principio de vecindad espacial: Si un ítem es referenciado, esaltamente probable que se referencie a los ítems vecinos a éste.

Ejemplo: Algoritmo de convolución

i, j, suma, se utilizan a menudo. Por lo tanto si se mantienen enel cache, el tiempo de acceso a estas variables por parte delprocesador es óptimo.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 14: Cache

Memoria cache

Estructura de memoria cache

Tag Línea

Línea: Elemento mínimo de palabra de datos dentro delcache. Corresponde a un múltiplo del tamaño de lapalabra de datos de memoria. Razón: Cuando sedirecciona un ítem en memoria generalmente serequerirá de los ítems que lo rodean (Principio devecindad espacial)

Ancho de palabra

Dirección

Línea

0123456789

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 15: Cache

Memoria cache

Memoria Cache

Interfazcon el

Bus Local

Interfazcon el

Procesador

Directoriode

Cache

Controlde

Cache

Control de bus localdel controlador cache

Bus de Addressdel procesador

Bus del procesador(Bus local)

Bus de Snoop

Bus de Control dela Memoria Cache

Control del bus localdel procesador

Decodificación del buslocal del procesador

Arbitración del Bus

Configuración

MemoriaDRAM

Procesador

Bus del sistema

Controlador deMemoria Cache

Subsistema Cache

Memoria SRAMultrarápida

(cache)

Hardware adicional. Mantiene el cachecon los datos más frecuentemente

utilizados por el procesador.

Baja capacidad, pero ¡accesible ala velocidad del procesador!

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 16: Cache

Memoria cache

Organización del cache: Mapeo Directo

Tag

Bit de validez del Tag

Directorio de Cache Interno

17 bitsBits devalidezde laslíneas

Set 0

Set 1

Set 1023

Línea

32 Kbytes(igual tamaño

que el del cache)

Pág. 0

Pág. 217

Memoria Caché 4 Gbytes de Memoria Principal

1 línea = 4 bytes

Línea

- 1

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 17: Cache

Memoria cache

Organización del cache de mapeo directo

Directorio de Cache Interno

Nro. de Set

Tag de 17 bits (1 de las 217 páginas)

0

1

1023

Bits de validez de la línea

Set Address(1 de 1024 sets)

Cache Address (1 de 8 Klíneas)

Bits de validez del Tag

A31 A14 A5 A4 A2A13

Selector deLínea

(1 de 8 líneas)

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 18: Cache

Memoria cache

Organización del cache: Asociativo de dos vías

Tag

Bit de validez del Tag

Directorio de Cache Interno

18 bitsBits devalidezde laslíneas

BitsLRU

18 bits

18 bitsBitsLRU

18 bits

18 bitsBitsLRU

18 bits

Set 0

Set 1

Set 512

Línea Línea

16 K

bytes(igu

al tamañ

o que el d

ecad

a banco d

e cache)

Pág. 0

Pág. 218

Memoria Caché 4 Gbytes de Memoria Principal

1 línea = 4 bytes

Línea

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 19: Cache

Memoria cache

Organización del cache asociativo de dos vías

Directorio de Cache Interno

Nro. de Set

Tag de 18 bits (1 de las 218 páginas)

0

1

512

Bits de validez de la línea

Selector deLínea

(1 de 8 líneas)

Set Address(1 de 512 sets)

Cache Address (1 de 4 Klíneas)

Bits de validez del Tag

A31 A14 A5 A4 A2A13

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 20: Cache

Memoria cache

Manejo del contenido

Algoritmos de reemplazo del contenido de la memoria cache:LRU: Least Recently Used: Se corresponde con el principio devecindad temporal.

LFU: Least Frecuently Used.

Random.

FIFO.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 21: Cache

Memoria cache

Cache miss: Impacto en el Pipeline de instrucciones

Pipeline: permite superponer enel tiempo la ejecución de variasinstrucciones a la vez.

No requiere hardware adicional.Sólo se necesita lograr que todaslas partes del procesadortrabajen a la vez.

Trabaja con el concepto de unalínea de montaje:

Cada operación sedescompone en partes.Se ejecutan en un mismomomento diferentes partes dediferentes operaciones.Cada parte se denomina etapa(stage).

Búsq.Inst. 1

Búsq.Inst. 2

Búsq.Inst. 3

Búsq.Inst. 4

Búsq.Inst. 5

Búsq.Inst. 6

Búsq.Inst. 7

Dec.FIInst. 1

Dec.Inst. 2

Dec.Inst. 3

Dec.Inst. 4

Dec.Inst. 5

Dec.Inst. 6

Búsq.Op. 1

Búsq.Op. 2

Búsq.Op. 3

Búsq.Op. 4

Búsq.Op. 5

Ejec.Inst. 1

Ejec.Inst. 2

Ejec.Inst. 3

Ejec.Inst. 4

Escrib.Res. 1

Escrib.Res. 2

Escrib.Res. 3

RESULTADO: UNA VEZ EN REGIMEN EJECUTA A RAZON DE UNAINSTRUCCION POR CICLO DE CLOCK.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 22: Cache

Memoria cache

Cache miss: Impacto en el Pipeline de instrucciones

Si la búsqueda de una instrucción o de un operando en elcache falla, entonces el procesador debe recurrir a la memoriaprincipal.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 recuperarel ritmo de operación del pipeline!

Búsq.Inst. 1

Búsq.Inst. 2

Búsq.Inst. 3

Búsq.Inst. 4

Búsq.Inst. 5

Búsq.Inst. 6

Búsq.Inst. 7

Dec.FIInst. 1

Dec.Inst. 2

Dec.Inst. 3

Dec.Inst. 4

Dec.Inst. 5

Dec.Inst. 6

Búsq.Op. 1

Búsq.Op. 2

Búsq.Op. 3

Búsq.Op. 4

Búsq.Op. 5

Ejec.Inst. 1

Ejec.Inst. 2

Ejec.Inst. 3

Ejec.Inst. 4

Escrib.Res. 1

Escrib.Res. 2

Escrib.Res. 3

Búsq.Inst. 8

Búsq.Inst. 9

Búsq.Inst. 10

Búsq.Inst. 11

Dec.FIInst. 7

Dec.Inst. 8

Dec.Inst. 9

Dec.Inst. 10

Búsq.Op. 7

Búsq.Op. 8

Búsq.Op. 9

Ejec.Inst. 7

Ejec.Inst. 8

Escrib.Res. 7

Búsq.Op. 6

Ejec.Inst. 5

Escrib.Res. 4

Ejec.Inst. 6

Escrib.Res. 5

Escrib.Res. 6

Cache MISS

PIPELINE STALLED

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 23: Cache

Memoria cache

Coherencia de un cache

Una variable que está en el caché también está alojada enalguna dirección de la DRAM.Ambos valores deben ser iguales.Cuando el procesador la modifica hay varios modos de actuar:

Write through: el procesador escribe en la DRAM y elcontrolador 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 memoriaDRAM mientras el procesador continúa ejecutandoinstrucciones y usando datos de la memoria cache.Copy back: Se marcan las líneas de la memoria cache cuando elprocesador escribe en ellas. Luego en el momento de eliminaresa línea del cache el controlador cache deberá actualizar lacopia de DRAM.

Si el procesador realiza un miss mientras el controlador cacheestá accediendo a la DRAM para actualizar el valor, deberáesperar hasta que controlador cache termine la actualizaciónpara recibir desde éste la habilitación de las líneas de controlpara acceder a la DRAM.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 24: Cache

Memoria cache

Estructura de Bus del sistema Multiprocesador concache

Procesador

Memoriacaché

Bus decontrol

Controlador deMemoria cachéCONTROL

CO

NT

RO

L

DA

TO

S

AD

DR

ES

S

Procesador

Memoriacaché

Bufferde

Datos

Bufferde

Address

Controlador deMemoria cachéCONTROL

CO

NT

RO

L

DA

TO

S

AD

DR

ES

S

Bufferde

Datos

Bufferde

AddressSNOOP BUS

BUS DEL SISTEMA

SN

OO

P B

US

Bus del caché

Bus local del procesador

Bus local del controlador caché

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 25: Cache

Memoria cache

Multilevel cache

CacheNivel 2

CacheNivel 1

En chip

ControladorCache

Memoriadel Sistema

(DRAM)

CPU

Tamaño Cache N2 › Tamaño Cache N1Velocidad Cache N1 › Velocidad Cache N2

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 26: Cache

Memoria cache

Implementaciones prácticas de memoria cache (1)

Intel 80486:8 Kbytes de cache L1 on chip.Tamaño de línea: 16 bytes.Organización asociativa de 4-vías.

Pentium:Dos caches on-chip, uno para datos y otro para instrucciones.Tamaño de cada cache: 8 Kbytes.Tamaño de línea: 32 bytes.Organización asociativa de 4-vías.

PowerPC 601:Cache on-chip de 32 Kbytes.Tamaño de línea: 32 bytes.Organización asociativa de 8-vías.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache

Page 27: Cache

Memoria cache

Implementaciones prácticas de memoria cache (2)

PowerPC 603:Dos caches on-chip, una para datos y otra para instrucciones.Tamaño de cada cache: 8 Kbytes.Tamaño de línea: 32 bytes.Organización asociativa de 2-vías (organización del cache mássimple que en el 601 pero un procesador mas fuerte).

PowerPC 604:Dos caches on-chip, uno para datos y otro para instrucciones.Tamaño de cada cache: 16 Kbytes.Tamaño de línea: 32 bytes.Organización asociativa de 4-vías.

PowerPC 620:Dos caches on-chip, uno para datos y otro para instrucciones.Tamaño de cada cache: 32 bytes.Tamaño de línea: 64 bytes.Organización asociativa de 8-vías.

Dr. Ing. Marcelo Risk Organización del Computador 1 Memoria Cache