PDF (Fondo Blanco)

Anuncio
Organización del Computador I
Memoria Cache
Autor: Alejandro Furfaro - 2006
1
Memorias: Evolución
Pioneros:
Maurcice 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
Autor: Alejandro Furfaro - 2006
2
Tecnología de Integración Actual
65 nm
nanotechnology
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.
Autor: Alejandro Furfaro - 2006
3
Tecnología de memorias: RAM Dinámica
CAS
RAS
Cd
Buffer
Bit de datos de salida al bus
Transistor
Diagrama de un bit elemental de DRAM (Dynamic RAM).
‰ 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.
Autor: Alejandro Furfaro - 2006
4
Tecnología de memorias: RAM Estática
Línea de Bit
Línea de Bit
Selección
1
3
4
2
5
6
Diagrama del biestable de un bit básico de SRAM (Static RAM).
‰ 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
Autor: Alejandro Furfaro - 2006
5
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
Autor: Alejandro Furfaro - 2006
E/S del
Sistema
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.
¿Tiene sentido lograr
altos clocks en los
procesadores si no puede
aprovecharlos por tener
que esperar (wait) a la
memoria?
6
Crecimiento de la velocidad de clock
de las CPU versus memoria
1100
1000
Pentium III
1GHz
900
800
700
600
Pentium II
400 MHz.
500
400
486 DX4
100 MHz.
300
Memorias
200
386 DX
33 MHz
100
89
90
Autor: Alejandro Furfaro - 2006
91
92
93
94
95
96
97
98
99
00
7
El problema
‰
RAM dinámica (DRAM)
2
2
2
2
2
‰
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 construimos el banco de memoria utilizando RAM
dinámica, no aprovechamos la velocidad del procesador.
RAM estática (SRAM)
2
2
2
2
2
Alto consumo relativo.
Capacidad de almacenamiento comparativamente baja.
Costo por bit alto.
Tiempo de acceso bajo (es mas rápida).
Si construimos el banco de memoria utilizando RAM
estática, el costo y el consumo de la computadora son altos.
Autor: Alejandro Furfaro - 2006
8
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 mas frecuentemente utilizados
por el procesador.
9
Autor: Alejandro Furfaro - 2006
Referencias
‰
‰
‰
‰
El tamaño del banco de memoria cache debe ser:
2
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
2
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 mas alto posible
hit rate =
Cantidad de accesos con presencia en Memoria Cache
Cantidad total de accesos a memoria
Autor: Alejandro Furfaro - 2006
10
Operación de Lectura de memoria
Inicio
CPU envía señal
de lectura
Hit!!
Busca ítem
en cache
Busca ítem en
cache y envía a
la CPU
Miss
Busca ítem en
memoria del
sistema
Escribe ítem en
el cache
Actualiza
directorio cache
Envía ítem a la
CPU
Fin
Autor: Alejandro Furfaro - 2006
11
Estructura de Bus del sistema con cache
ADDRESS
DATOS
CONTROL
Procesador
Bus Local del
procesador
Memoria
Controlador de
cache CONTROL Memoria caché
Buffer
de
Datos
Buffer
de
Address
Bus Local del
controlador
cache
Bus de
Control
Autor: Alejandro Furfaro - 2006
BUS DEL SISTEMA
12
Como 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.
2
Principio de vecindad temporal: Si un ítem es referenciado, la
probabilidad de ser referenciado en el futuro inmediato es alta.
2
Principio de vecindad espacial: Si un ítem es referenciado, es
altamente probable que se referencie a los ítems vecinos a éste.
2
Ejemplo: Algoritmo de convolución
for (i = 0 ; i < 256 ; i++ ){
suma = 0.0f;
for (j = 0 ; (j <= i && j < 256) ; j++)
suma += v0[i-j] * v1[j];
fAux[i] = suma;
}
2
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.
Autor: Alejandro Furfaro - 2006
13
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 ítem que lo rodean (Principio de
vecindad espacial)
Autor: Alejandro Furfaro - 2006
Línea
Ancho de palabra
14
Memoria Cache
Procesador
Bus del Procesador
(Bus local)
Baja capacidad, pero ¡¡accesible a
la velocidad del procesador!!
Subsistema caché
Controlador de
Memoria caché
Memoria
SRAM
ultrarrápida
(cache)
Hardware adicional. Mantiene el cache
con los datos mas frecuentemente
utilizados por el procesador
Bus del Sistema
Control del bus local del
controlador cache
Memoria
DRAM
Interfaz
con el
Arbitración del Bus
Bus Local
Control del bus Local
del Procesador
Interfaz con
el
Procesador
Bus de Address
del procesador
Directorio
de Cache
Control del
Cache
Bus de Snoop
Bus de Control de
la Memoria Cache
Decodificaciones del bus
local del procesador
Configuración
Autor: Alejandro Furfaro - 2006
15
Organización del caché: Mapeo Directo
Bit de validez del Tag
1 Línea = 4 bytes
Línea
Tag
Línea
17 bits
Set 0
Bits de validez
de las líneas
Set 1
32 Kbytes
(igual tamaño
Que el del cache)
Pag.217 -1
Set 1023
Directorio de Caché Interno Memoria Caché
Autor: Alejandro Furfaro - 2006
Pag.0
4 Gbytes de Memoria Principal
16
Organización del caché de mapeo
directo
Caché Address (1 de 8 KLíneas)
A 15 A 14
A 31
Tag de 17 bits (1 de las 217 páginas)
A5 A 4 A 2
Set Address (1 de 1024 sets) Selector de
Línea
(1 de 8 líneas)
Bit de validez del Tag
0
Nro de Set
Bits de validez de la línea
1
1023
Directorio de
Caché Interno
Autor: Alejandro Furfaro - 2006
17
Organizacion del cache: Asociativo de dos
vías
Bit de validez del Tag
Línea
Tag
Set 0
18 bits
Bits de Bits
validez LRU
de las
líneas
Bits
LRU
Línea
Línea
18 bits
18 bits
Set 1
18 bits
Bits
LRU
16 Kbytes
(igual tamaño Que el de
cada banco del cache)
18 bits
1 Línea = 4 bytes
Pag.218 -1
18 bits
Set 512
Directorio de Caché Interno
Autor: Alejandro Furfaro - 2006
Memoria Caché
Pag.0
4 Gbytes de Memoria Principal
18
Organización del caché asociativo de
dos vías
Caché Address (1 de 4 KLíneas)
A31
Tag de 18 bits (1 de las 218 páginas)
A14 A13
A5 A4
A2
Set Address (1 de 512 sets)
Selector de
Línea
(1 de 8 líneas)
Bit de validez del Tag
0
Nro de Set
Bits de validez de la línea
1
512
Directorio de
Caché Interno
Autor: Alejandro Furfaro - 2006
19
Manejo del contenido
‰
Algoritmos de reemplazo del contenido
de la memoria cache
2 LRU:
ƒ
Least Recently Used.
Se corresponde con el principio de vecindad
temporal.
2 LFU:
Last Frecuently Used
2 Random
2 FIFO
Autor: Alejandro Furfaro - 2006
20
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.
Solo se necesita lograr que
todas las partes del procesador
trabajen a la vez.
Trabaja con el concepto de una
línea de montaje:
2
2
2
Cada operación se descompone
en partes
Se ejecutan en un mismo
momento diferentes partes de
diferentes operaciones
Cada parte se denomina etapa
(stage)
Busq. Busq. Busq. Busq. Busq. Busq. Busq.
Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Inst. 7
Dec.FI Dec. Dec. Dec. Dec. Dec.
Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6
Busq. Busq. Busq. Busq. Busq.
Op. 1 Op. 2 Op. 3 Op. 4 Op. 5
Ejec. Ejec. Ejec. Ejec.
Inst. 1 Inst. 2 Inst. 3 Inst. 4
Escrib. Escrib. Escrib.
Res. 1 Res. 2 Res. 3
Resultado
Una vez en régimen ejecuta a razón de una
instrucción por ciclo de clock
Autor: Alejandro Furfaro - 2006
21
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!!
Autor: Alejandro Furfaro - 2006
22
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
2
2
2
‰
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 caché 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 este la habilitación de las líneas de control
para acceder a la DRAM.
23
Autor: Alejandro Furfaro - 2006
Estructura de Bus del sistema
Multiprocesador con cache
SNOOP BUS
SNOOP BUS
Buffer
de
Datos
ADDRESS
Buffer
de
Address
Memoria
CONTROL Controlador de
cache
Memoria caché
DATOS
Buffer
de
Datos
CONTROL
ADDRESS
MemoriaCONTROL Controlador de
cache
Memoria caché
Procesador
DATOS
CONTROL
Procesador
Buffer
de
Address
Bus del cache
Bus de
Control
Bus local del procesador
Bus local del controlador cache
BUS DEL SISTEMA
Autor: Alejandro Furfaro - 2006
24
Multilevel cache
Cache
Level1
On chip
Cache
Level 2
CPU
Cache
controller
Tamaño Cache L2 > Tamaño Cache L1
Velocidad Cache L1 > Velocidad Cache L2
Autor: Alejandro Furfaro - 2006
System
Memory
(DRAM)
25
Implementaciones prácticas de memoria
cache (1)
‰
Intel 80486
8 Kbytes de cache L1 on chip
2 Tamaño de línea: 16 bytes
2 Organización asociativa de 4-vías
2
‰
Pentium
dos caches on-chip, uno para datos y otro para
instrucciones.
2 Tamaño de cada cahe: 8 Kbytes
2 Tamaño de línea: 32 bytes
2 Organización asociativa de 4-vías
2
‰
PowerPC 601
cache on-chip de 32 Kbytes
2 Tamaño de línea: 32 bytes
2 Organización asociativa de 8-vías
2
Autor: Alejandro Furfaro - 2006
26
Implementaciones prácticas de memoria
cache (2)
‰
PowerPC 603
2
2
2
2
‰
PowerPC 604
2
2
2
2
‰
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)
Dos caches on-chip, una para datos y otra 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
2
2
2
2
Dos caches on-chip, una para datos y otra para
instrucciones
Tamaño de cada cache: 32 Kbytes
Tamaño de línea: 64 bytes
Organización asociativa de 8-vías
Autor: Alejandro Furfaro - 2006
27
Descargar