Sunteți pe pagina 1din 27

Organizacin del Computador I

Memoria Cache

Autor: Alejandro Furfaro - 2006 1


Memorias: Evolucin

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


Tecnologa de Integracin Actual

65 nm
nanotechnology

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.

Autor: Alejandro Furfaro - 2006 3


Tecnologa de memorias: RAM Dinmica
CAS
RAS
Cd

Buffer

Transistor
Bit de datos de salida al bus
Diagrama de un bit elemental de DRAM (Dynamic RAM).
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.
Autor: Alejandro Furfaro - 2006 4
Tecnologa de memorias: RAM Esttica

Lnea de Bit Lnea de Bit

Seleccin

3 4 6
1

2 5

Diagrama del biestable de un bit bsico de SRAM (Static RAM).


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
Autor: Alejandro Furfaro - 2006 5
Estructura de Bus clsica
Desde fines de los aos
Procesador 80, los procesadores
desarrollaban velocidades
muy superiores a los

ADDRESS
CONTROL
tiempos de acceso a

DATOS
Bus Local del
Procesador memoria.

Buffer Buffer
Bus de
de de
En este escenario, el
Control
Datos Address procesador necesita
generar wait states para
esperar que la memoria
est lista (READY) para
el acceso.
BUS DEL SISTEMA
Tiene sentido lograr
altos clocks en los
procesadores si no puede
Memoria del E/S del
aprovecharlos por tener
Sistema Sistema que esperar (wait) a la
memoria? 6
Autor: Alejandro Furfaro - 2006
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 dinmica (DRAM)
2 Consumo mnimo.
2 Capacidad de almacenamiento comparativamente alta.
2 Costo por bit bajo.
2 Tiempo de acceso alto (lento), debido al circuito de
regeneracin de carga.
2 Si construimos el banco de memoria utilizando RAM
dinmica, no aprovechamos la velocidad del procesador.
RAM esttica (SRAM)
2 Alto consumo relativo.
2 Capacidad de almacenamiento comparativamente baja.
2 Costo por bit alto.
2 Tiempo de acceso bajo (es mas rpida).
2 Si construimos el banco de memoria utilizando RAM
esttica, el costo y el consumo de la computadora son altos.
Autor: Alejandro Furfaro - 2006 8
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 mas frecuentemente utilizados
por el procesador.
Autor: Alejandro Furfaro - 2006 9
Referencias
El tamao del banco de memoria cache debe ser:
2 Suficientemente grande para que el procesador resuelva la
mayor cantidad posible de bsquedas de cdigo y datos en
esta memoria asegurando una alta performance
2 Suficientemente 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 mas alto posible

Cantidad de accesos con presencia en Memoria Cache


hit rate =
Cantidad total de accesos a memoria
Autor: Alejandro Furfaro - 2006 10
Operacin de Lectura de memoria

Inicio

CPU enva seal


de lectura

Hit!! Miss Busca tem en


Busca tem
memoria del
en cache
sistema
Busca tem en
cache y enva a Escribe tem en
la CPU el cache

Actualiza Enva tem a la


directorio cache CPU

Fin

Autor: Alejandro Furfaro - 2006 11


Estructura de Bus del sistema con cache

Procesador

CONTROL

ADDRESS
DATOS
Bus Local del
Memoria Controlador de procesador
cache CONTROL Memoria cach

Buffer Buffer
de de Bus Local del
Datos Address controlador
cache

Bus de
Control

BUS DEL SISTEMA


Autor: Alejandro Furfaro - 2006 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 convolucin
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 Lnea Direccin
0
1
2
3 Lnea
4
5
6
7
8
9

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 tem que lo rodean (Principio de Ancho de palabra
vecindad espacial)
Autor: Alejandro Furfaro - 2006 14
Memoria Cache

Baja capacidad, pero accesible a


Procesador Bus del Procesador la velocidad del procesador!!
(Bus local)

Subsistema cach
Memoria
Hardware adicional. Mantiene el cache
Controlador de SRAM con los datos mas frecuentemente
Memoria cach ultrarrpida
(cache) utilizados por el procesador
Bus del Sistema
Control del bus local del
controlador cache Bus de Address
del procesador
Interfaz
Directorio
Arbitracin del Bus
con el
de Cache
Bus Local Bus de Snoop
Memoria
DRAM Control del bus Local
del Procesador Interfaz con Bus de Control de
el Control del
la Memoria Cache
Procesador Cache
Decodificaciones del bus
local del procesador
Configuracin
Autor: Alejandro Furfaro - 2006 15
Organizacin del cach: Mapeo Directo
Bit de validez del Tag 1 Lnea = 4 bytes
Lnea
Tag

17 bits Lnea
Bits de validez
Set 0 de las lneas

32 Kbytes
(igual tamao
Que el del cache)
Set 1

Pag.217 -1

Set 1023

Directorio de Cach Interno Memoria Cach Pag.0


4 Gbytes de Memoria Principal
Autor: Alejandro Furfaro - 2006 16
Organizacin del cach de mapeo
directo
Cach Address (1 de 8 KLneas)

A 31 A 15 A 14 A5 A 4 A 2

Tag de 17 bits (1 de las 217 pginas) Set Address (1 de 1024 sets) Selector de
Lnea
(1 de 8 lneas)

Bit de validez del Tag


0
Bits de validez de la lnea

1
Nro de Set

1023
Directorio de
Cach Interno
Autor: Alejandro Furfaro - 2006 17
Organizacion del cache: Asociativo de dos
vas
1 Lnea = 4 bytes
Bit de validez del Tag

Lnea Lnea
Tag

18 bits 18 bits Lnea

(igual tamao Que el de


Bits de Bits

cada banco del cache)


Set 0 validez LRU
de las
lneas

16 Kbytes
Bits
18 bits LRU 18 bits

Set 1

Pag.218 -1
Bits
18 bits 18 bits
LRU
Set 512

Directorio de Cach Interno Pag.0


Memoria Cach 4 Gbytes de Memoria Principal
Autor: Alejandro Furfaro - 2006 18
Organizacin del cach asociativo de
dos vas
Cach Address (1 de 4 KLneas)
A31 A14 A13 A5 A4 A2

Selector de
Tag de 18 bits (1 de las 218 pginas) Set Address (1 de 512 sets)
Lnea
(1 de 8 lneas)

Bit de validez del Tag


0
Bits de validez de la lnea

1
Nro de Set

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 ejecucin de varias
instrucciones a la vez. Busq. Busq. Busq. Busq. Busq. Busq. Busq.
Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6 Inst. 7
No requiere hardware adicional.
Solo se necesita lograr que Dec.FI Dec. Dec. Dec. Dec. Dec.
todas las partes del procesador Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 6
trabajen a la vez. Busq. Busq. Busq. Busq. Busq.
Trabaja con el concepto de una Op. 1 Op. 2 Op. 3 Op. 4 Op. 5
lnea de montaje: Ejec. Ejec. Ejec. Ejec.
2 Cada operacin se descompone Inst. 1 Inst. 2 Inst. 3 Inst. 4
en partes
Escrib. Escrib. Escrib.
2 Se ejecutan en un mismo Res. 1 Res. 2 Res. 3
momento diferentes partes de
diferentes operaciones
2 Cada parte se denomina etapa
(stage)

Resultado
Una vez en rgimen ejecuta a razn de una
instruccin por ciclo de clock

Autor: Alejandro Furfaro - 2006 21


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!!

Autor: Alejandro Furfaro - 2006 22


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 modifica hay varios modos de actuar
2 Write through: el procesador escribe en la DRAM y el controlador
cache refresca el cache con el dato actualizado
2 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
2 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 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 actualizacin
para recibir desde este la habilitacin de las lneas de control
para acceder a la DRAM.
Autor: Alejandro Furfaro - 2006 23
Estructura de Bus del sistema
Multiprocesador con cache
Procesador Procesador

CONTROL

CONTROL
ADDRESS

ADDRESS
DATOS

DATOS
MemoriaCONTROL Controlador de
cache Memoria
Memoria cach CONTROL Controlador de
cache Memoria cach

Buffer Buffer
de de SNOOP BUS Buffer Buffer
Datos Address de de
Datos Address
SNOOP BUS

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
CPU
On chip

Cache Cache
Level 2 controller

Tamao Cache L2 > Tamao Cache L1


Velocidad Cache L1 > Velocidad Cache L2 System
Memory
(DRAM)
Autor: Alejandro Furfaro - 2006 25
Implementaciones prcticas de memoria
cache (1)
Intel 80486
2 8 Kbytes de cache L1 on chip
2 Tamao de lnea: 16 bytes
2 Organizacin asociativa de 4-vas
Pentium
2 dos caches on-chip, uno para datos y otro para
instrucciones.
2 Tamao de cada cahe: 8 Kbytes
2 Tamao de lnea: 32 bytes
2 Organizacin asociativa de 4-vas
PowerPC 601
2 cache on-chip de 32 Kbytes
2 Tamao de lnea: 32 bytes
2 Organizacin asociativa de 8-vas

Autor: Alejandro Furfaro - 2006 26


Implementaciones prcticas de memoria
cache (2)
PowerPC 603
2 Dos caches on-chip, una para datos y otra para
instrucciones
2 Tamao de cada cache: 8 Kbytes
2 Tamao de lnea: 32 bytes
2 Organizacin asociativa de 2-vas (organizacin del cache
ms simple que en el 601 pero un procesador mas fuerte)
PowerPC 604
2 Dos caches on-chip, una para datos y otra para
instrucciones
2 Tamao de cada cache: 16 Kbytes
2 Tamao de lnea: 32 bytes
2 Organizacin asociativa de 4-vas
PowerPC 620
2 Dos caches on-chip, una para datos y otra para
instrucciones
2 Tamao de cada cache: 32 Kbytes
2 Tamao de lnea: 64 bytes
2 Organizacin asociativa de 8-vas
Autor: Alejandro Furfaro - 2006 27

S-ar putea să vă placă și