Post on 15-Jan-2016
description
Organización del Sistema de Memoria
1. Tipos de memoria2. Jerarquía de memoria3. El principio de localidad4. Organización de la memoria
1. Tipos de memoria
La memoria se puede clasificar de acuerdo a:
-- Tecnología de manufactura (electrónica, magnética, óptica)-- Ubicación (CPU, motherboard, exterior)-- Densidad (tamaño/capacidad)-- Método de acceso (secuencial, aleatorio)-- Velocidad de acceso-- Costo
1. Tipos de memoriaTecnología de manufactura
Memoria Electrónica:Registros del CPUCircuitos integrados de memoria
1. Tipos de memoriaTecnología de manufactura
Tipos de memoria RAM
DRAM (RAM Dinámica)Necesita refrescadoConsume potencia (corrientes de fuga)No muy rápida (tiempos de acceso ~ 50-100ns)Muy densa => Muy barataMuchos tipos (EDO, SDRAM, DDR, RDRAM)
SRAM (RAM Estática)No necesita refrescadoMuy rápida (tiempos de acceso ~ 10ns)Poco densa => Muy cara
1. Tipos de memoriaTecnología de manufactura
4MB de memoria
VAX, ~1970
1. Tipos de memoriaTecnología de manufactura
Empaques:DIM
SIPP
SIMM 30 pines
SIMM 72 pines
DIMM 168 pines
DDR DIMM 184 pines
1. Tipos de memoriaTecnología de manufactura
Memoria EPROM:
Si se expone a luz UV, seborra su contenido.
1. Tipos de memoriaTecnología de manufactura
Memoria Flashen un USB Memory Key
1. Tipos de memoriaUbicación
Dentro del CPU
Sobre el motherboard
En un dispositivo externo (disco, red)
2. Jerarquía de memoria
En general:las memorias rápidas son caraslas memorias grandes son lentas
2. Jerarquía de memoria
● Registros – Dentro del CPU
● Memoria interna – Puede incluir uno o
más niveles de caché.● Memoria Principal
– RAM● Memoria Externa
– Almacenamiento de respaldo
2. Jerarquía de memoria
● Registros● Caché de nivel 1 (L1)● Caché de nivel 2 (L2)● Memoria Principal● Caché de disco● Disco magnético● Disco Óptico● Cinta
Niveles de la Jerarquía
registers
on-chip L1cache (SRAM)
main memory(DRAM)
local secondary storage(local disks)
Larger, slower,
and cheaper (per byte)storagedevices
remote secondary storage(distributed file systems, Web servers)
Local disks hold files retrieved from disks on remote network servers.
Main memory holds disk blocks retrieved from local disks.
off-chip L2cache (SRAM)
L1 cache holds cache lines retrieved from the L2 cache.
CPU registers hold words retrieved from cache memory.
L2 cache holds cache lines retrieved from memory.
L0:
L1:
L2:
L3:
L4:
L5:
Smaller,faster,and
costlier(per byte)storage devices
Capacidad vs Velocidad y Costo
Registros
On-ChipSRAM
Off-ChipSRAM
DRAM
DISCO
CA
PA
CID
AD
VE
LOC
IDA
D y
CO
ST
O
$$$< 10ns8KB-6MBOn-chip SRAM
~0< 20ms40GB – 1PBDisco
$< 100ns64MB – 1TBDRAM
$$< 20ns1Mb – 16MbOff-chip SRAM
$$$$< 1ns< 1KBRegistros
Costo/bitVelocidadCapacidadTipo
Por qué funciona un sistema jerárquico?
● Localidad de referencia– Localidad Temporal
● Se hace referencia a la misma dirección de memoria repetidamente durante un cierto tiempo
– Localidad Espacial● Durante ese mismo tiempo se hace referencia a direcciones
vecinas.● Observaciones empíricas
– Significativo!– Aún un espacio pequeño de almacenamiento local (8KB)
con frecuencia satisface >90% de las referencias a un conjunto de datos o de instrucciones que ocupe varios MB
3. Principio de localidad
Principio de Localidad
● Localidad Temporal (localidad en el tiempo): si se hace referencia a un objeto (instrucción o dato), existirá la tendencia de que sea referido nuevamente en un próximo momento.
● Localidad Espacial (localidad en el espacio): Si un objeto es referido, habrá la tendencia de que los objetos cercanos a él tambien sean referidos en un próximo momento.
● Localidad de Referencia: Durante el curso de ejecución de un programa, las referencias a memoria tienden a agruparse. Ejemplo. Lazos (loops)
¿Por qué Localidad de referencia?● Analogía:
– Biblioteca (Disco)– Librero (Memoria Principal)– Libros apilados sobre el escritorio (off-chip cache)– Libro abierto en el escritorio (on-chip cache)
● Posibilidad de:– Referirse al mismo libro o al mismo capítulo otra vez?
● La probabilidad decae con el tiempo● El libro se pone abajo de la pila, luego en el librero, finalmente en
la biblioteca
– Referirse al capítulo n+1 si se está viendo actualmente el capítulo n?
¿Queremos velocidad?
● Es posible construir una computadora que use solo RAM estática?
● Sería muy rápida● No necesitaría cache● Sería costosísima
4. Organización de memoria
19
Cache● Memoria rápida y pequeña● Situada entre el CPU y la memoria principal
(relativamente grande y lenta)● Puede encontrarse dentro del chip del CPU o en un
módulo externo a él● Contiene una copia de partes de la memoria principal
Objetivo de la memoria Cache
● Lograr que la velocidad del sistema de memoria memoria sea lo más rápida posible, consiguiendo al mismo tiempo una gran capacidad al precio de las memorias menos costosas.
Organización típica de la Cache
Por qué usar una memoria Cache ?
● Con base en el fenómeno de localidad, es posible tener las instrucciones y los datos con mayor probabilidad de ser requeridos por el procesador, en un bloque de memoria (cache) que se ubica cercano a él.
● Lo anterior reduce el número de veces que se necesita tener acceso a la memoria principal (lenta)
● Además, la memoria cache usa tecnología de RAM estática la cual es más rápida que la tecnología DRAM que típicamente se encuentra en los sistemas de memoria principal
● El efecto resultante de todo esto es un tiempo de acceso menor
Jerarquía de la memoria
CPU
Cache L1 I & D
Cache L2 Compartida
Memoria Principal
Disco
Localidad Temporal•Mantener datos referidos recientemente en niveles más altos
•Así las referencias futuras se satisfacen rápidamente
Localidad Espacial•Llevar los datos vecinos de aquellos referidos recientemente a niveles más altos
•Así las referencias futuras se satisfacen rápidamente
Operación de la Memoria Cache● Cuando el procesador intenta leer una palabra de la
memoria● Se verifica si la palabra está en la cache● Si es así, se entrega al procesador. => Acierto (Hit)● Si no, se transfiere uno de los bloques de memoria
principal a la cache => Falla (Miss)● Después se entrega la palabra al procesador● La cache incluye etiquetas para identificar qué bloque
de la memoria principal está en cada línea de la cache.
Estructura de la memoria cache● Las caches están constituidas por arreglos de etiquetas y de
datos– El arreglo de datos almacena los valores que se van a usar– El arreglo de etiquetas almacena las direcciones de las localidades que
se encuentran actualmente en el arreglo de datos
A
Memoria
B
C
D
1
2
3
4
ArregloEtiquetas
2
4
ArregloDatos
B
D
Cache
E
F
5
6
5 E
Cargar Dir(3)
Falla!
ArregloEtiquetas
2
3
ArregloDatos
B
C
Cache
5 E
Cargar Dir(3)
Acierto!
Obtener la nueva línea de cache
Dir Dato
Desempeño de una memoria cache
Tasa Aciertos % = Aciertos a la cache X 100%
(Hit rate) Solicitudes totales a memoria
Desempeño de una memoria cache● La cache reduce la latencia promedio de la memoria
– Si el valor requerido está en la cache se le llama “acierto”– El valor requerido y no encontrado se carga después de una “falla”– La jerarquía de memoria está diseñada para minimizar la latencia
promedio
50
50
0%
0
10.719.017.021.5Latencia Promedio (ciclos)
4/1414104Latencia Cache
(ciclos)
65%/90%90%86%65%Tasa de aciertos
4/128128324Tamaño (KB)
El tamaño y la latencia de la cache son importantes para el desempeño
Criterios de diseño de la Cache
● Tamaño de la cache● Arquitectura● Función de correspondencia (mapeo)● Algoritmo de reemplazo● Políticas de escritura● Tamaño de la línea● Número de caches
El tamaño importa
● Costo – Más cache es más cara
● Velocidad– Más cache es más rápida (hasta cierto punto) – Buscar datos en la cache toma tiempo