Memoria caché - Departamento de Computación

Anuncio
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
Memoria cache
Memorias: Evolución
Pioneros:
Maurice Wilkes con la primer memoria de
tanque de mercurio para la computadora
EDSAC. 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 Electron
Microscope) de una cepa del virus de la gripe, y de un
transistor construido con la tecnología de 65 nm utilizada
desde 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
CAS
RAS
Cd
Buffer
Transistor
Bit de datos de salida al bus
Almacena la información como una carga en una capacidad
espuria 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 la
carga ⇒ 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
Línea de Bit
Línea de Bit
Selección
1
3
4
2
5
6
Almacena la información en un biestable.
Una celda (un bit) se compone de seis transistores menor
capacidad de almacenamiento por chip.
3 transistores consumen energía máxima en forma
permanente y los otros 3 consumen mínima energía ⇒ Mayor
consumo.
La lectura es directa y no destructiva ⇒ tiempo de acceso muy
bajo.
Dr. Ing. Marcelo Risk
Organización del Computador 1 Memoria Cache
Memoria cache
Estructura de Bus clásica
CONTROL
DATOS
ADDRESS
Procesador
Bus de
control
Buffer
de datos
Buffer de
address
Bus Local del
Procesador
BUS DEL SISTEMA
Memoria del
Sistema
E/S del
Sistema
Dr. Ing. Marcelo Risk
Desde fines de los
años 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.
Organización del Computador 1 Memoria Cache
Memoria cache
Crecimiento de la velocidad de clock de las CPU versus
memoria
1100
1000
Pentium III
1 GHz
900
800
700
600
Pentium II
400 MHz
500
400
486 DX4
100 MHz
300
Memorias
200
386 DX4
33 MHz
100
89
90
91
92
93
Dr. Ing. Marcelo Risk
94
95
96
97
98
99
00
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 de
regeneració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, que
contiene una copia de los datos e instrucciones que están en
memoria principal.
El arte consiste en que esta copia esté disponible justo cuando
el procesador la necesita permitiéndole acceder a esos ítems
sin recurrir a wait states.
Combinada con una gran cantidad de memoria DRAM, para
almacenar el resto de códigos y datos, resuelve el problema
mediante una solución de compromiso típica.
Requiere de hardware adicional que asegure que este pequeño
banco de memoria cache contenga los datos e instrucciones
má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 la
mayor cantidad posible de búsquedas de código y datos en esta
memoria asegurando una alta performance.
Suficientemente pequeña 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
código) 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 más alto posible
hit rate =
Cantidad de accesos con presencia en Memoria Cache
Cantidad 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
CPU envía señal
de lectura
Hit!
Miss
Busca ítem
en cache
Busca ítem en
cache y envía
a la CPU
Busca ítem en
memoria
del sistema
Escribe ítem
en el cache
Actualiza
directorio cache
Envía ítem
a la CPU
Fin
Dr. Ing. Marcelo Risk
Organización del Computador 1 Memoria Cache
Memoria cache
Estructura de Bus del sistema con cache
CONTROL
ADDRESS
Memoria
caché
DATOS
CONTROL
Procesador
Buffer
de
Datos
Buffer
de
Address
Controlador de
Memoria caché
Bus local del
procesador
Bus local del
controlador caché
Bus de
control
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 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 convolución
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
Organización del Computador 1 Memoria Cache
Memoria cache
Estructura de memoria cache
Tag
Línea
Dirección
0
1
2
3
4
5
6
7
8
9
Línea: Elemento mínimo de palabra de datos dentro del
cache. Corresponde a un múltiplo del tamaño de la
palabra de datos de memoria. Razón: Cuando se
direcciona un ítem en memoria generalmente se
requerirá de los ítems que lo rodean (Principio de
vecindad espacial)
Dr. Ing. Marcelo Risk
Línea
Ancho de palabra
Organización 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
ultrarápida
(cache)
Hardware adicional. Mantiene el cache
con los datos más frecuentemente
utilizados por el procesador.
Bus del procesador
(Bus local)
Bus del sistema
Control de bus local
del controlador cache
Arbitración del Bus
Memoria
DRAM
Control del bus local
del procesador
Decodificación del bus
local del procesador
Interfaz
con el
Bus Local
Directorio
de
Cache
Interfaz
con el
Procesador
Control
de
Cache
Bus de Address
del procesador
Bus de Snoop
Bus de Control de
la Memoria Cache
Configuración
Dr. Ing. Marcelo Risk
Organización del Computador 1 Memoria Cache
Memoria cache
Organización del cache: Mapeo Directo
1 línea = 4 bytes
Bit de validez del Tag
Línea
Tag
17 bits
Set 0
Línea
Bits de
validez
de las
líneas
32 Kbytes
(igual tamaño
que el del cache)
Set 1
Pág. 217 - 1
Set 1023
Directorio de Cache Interno
Pág. 0
Memoria Caché
Dr. Ing. Marcelo Risk
4 Gbytes de Memoria Principal
Organización del Computador 1 Memoria Cache
Memoria cache
Organización del cache de mapeo directo
Cache Address (1 de 8 Klíneas)
A31
A14 A13
Tag de 17 bits (1 de las 217 páginas)
A5 A4
Set Address
(1 de 1024 sets)
A2
Selector de
Línea
(1 de 8 líneas)
Bits de validez del Tag
0
Nro. de Set
1
Bits de validez de la línea
1023
Directorio de Cache Interno
Dr. Ing. Marcelo Risk
Organización del Computador 1 Memoria Cache
Memoria cache
Organización del cache: Asociativo de dos vías
1 línea = 4 bytes
Bit de validez del Tag
Línea
Línea
Tag
18 bits
18 bits
Set 1
18 bits
Set 512
Bits de
validez
de las
líneas
Bits
LRU
Bits
LRU
Bits
LRU
18 bits
Línea
16 Kbytes
(igual tamaño que el de
cada banco de cache)
Set 0
18 bits
Pág. 218
18 bits
Directorio de Cache Interno
Pág. 0
Memoria Caché
Dr. Ing. Marcelo Risk
4 Gbytes de Memoria Principal
Organización del Computador 1 Memoria Cache
Memoria cache
Organización del cache asociativo de dos vías
Cache Address (1 de 4 Klíneas)
A31
A14 A13
Tag de 18 bits (1 de las 218 páginas)
A5 A4
Set Address
(1 de 512 sets)
A2
Selector de
Línea
(1 de 8 líneas)
Bits de validez del Tag
0
Nro. de Set
1
Bits de validez de la línea
512
Directorio de Cache Interno
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 de
vecindad 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 en
el tiempo la ejecución de varias
instrucciones a la vez.
No requiere hardware adicional.
Sólo se necesita lograr que todas
las partes del procesador
trabajen a la vez.
Trabaja con el concepto de una
línea de montaje:
Cada operación se
descompone en partes.
Se ejecutan en un mismo
momento diferentes partes de
diferentes 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.FI
Inst. 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. Escrib. Escrib.
Res. 1 Res. 2 Res. 3
RESULTADO: UNA VEZ EN REGIMEN EJECUTA A RAZON DE UNA
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 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 operación del pipeline!
Cache MISS
Búsq.
Inst. 1
Búsq.
Inst. 3
Búsq.
Inst. 4
Búsq.
Inst. 5
Búsq.
Inst. 6
Búsq.
Inst. 7
Búsq.
Inst. 8
Búsq.
Inst. 9
Búsq.
Inst. 10
Búsq.
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
Búsq.
Op. 1
Búsq.
Op. 2
Búsq.
Op. 3
Búsq.
Op. 4
Búsq.
Op. 5
Búsq.
Op. 6
Búsq.
Op. 7
Búsq.
Op. 8
Búsq.
Op. 9
Ejec.
Inst. 1
Ejec.
Inst. 2
Ejec.
Inst. 3
Ejec.
Inst. 4
Ejec.
Inst. 5
Ejec.
Inst. 7
Ejec.
Inst. 8
E
N
LI
PE
PI
Búsq.
Inst. 2
D
LE
Dr. Ing. Marcelo Risk
AL
Escrib. Escrib. Escrib. Escrib. Escrib. Escrib.
Res. 1 Res. 2 Res. 3 Res. 4 Res. 5 Res. 6
ST
Ejec.
Inst. 6
Escrib.
Res. 7
Organización del Computador 1 Memoria Cache
Memoria cache
Coherencia de un cache
Una variable que está en el caché también está alojada en
alguna 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 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 continúa ejecutando
instrucciones y usando datos de la memoria cache.
Copy back: Se marcan las líneas de la memoria cache cuando el
procesador escribe en ellas. Luego en el momento de eliminar
esa línea 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 actualización
para recibir desde éste la habilitación de las líneas de control
Dr. Ing. Marcelo Risk
Organización del Computador 1 Memoria Cache
Memoria cache
Estructura de Bus del sistema Multiprocesador con
cache
Buffer
de
Address
CONTROL
Controlador de
Memoria caché
SNOOP BUS
ADDRESS
Buffer
de
Datos
Memoria
caché
DATOS
ADDRESS
Controlador de
Memoria caché
DATOS
CONTROL
Buffer
de
Datos
Buffer
de
Address
SNOOP BUS
Memoria
caché
CONTROL
Procesador
CONTROL
Procesador
Bus del caché
Bus de
control
Bus local del procesador
Bus local del controlador caché
BUS DEL SISTEMA
Dr. Ing. Marcelo Risk
Organización del Computador 1 Memoria Cache
Memoria cache
Multilevel cache
Cache
Nivel 1
CPU
En chip
Cache
Nivel 2
Controlador
Cache
Tamaño Cache N2 › Tamaño Cache N1
Velocidad Cache N1 › Velocidad Cache N2
Dr. Ing. Marcelo Risk
Memoria
del Sistema
(DRAM)
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ás
simple 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
Descargar