cache
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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