1
Resumen
Modelo de von Neumann
Características de los sistemas de memoria
Memorias semiconductoras
Almacenamiento en el computador
Brecha de rendimiento entre el procesador y la memoria
Principio de localidad
Jerarquía de memoria
Aspectos básicos de memoria cache
Modelo de von Neumann
Concepto del programa almacenado
Las instrucciones y los datos de un programa se guardan en una memoria de lectura/escritura
2
CPU
Busses
Controllers
Working storage
SRAM (Cache)
DRAM (Main memory)
Permanent storage
Magnetic disks
Optical disks
Tapes
Input
Keyboard
Mouse
Scanner
Digital Camera
Network
Sound, Video cards
Screen
Printer
Output
Memory system
I/O system
Características de los sistemas de memoria
Ubicación (Interna, Externa)
Capacidad
Unidad de transferencia
Método de acceso (Secuencial, Directo, Aleatorio, Asociativo)
Rendimiento (Tiempo de acceso (latencia), Tiempo de ciclo de memoria, Tasa de transferencia)
Tecnología de fabricación (Semiconductor (Transistores CMOS), Superficie magnética, Óptica)
Características físicas (Volátil, No volátil)
3
Memorias semiconductoras
Memoria de acceso aleatorio (RAM)
Memoria volátil
Lectura/escritura
El tiempo de acceso es independiente de la posición de memoria y de la secuencia previa de accesos
La memoria RAM es la memoria a la que se refieren las características de un computador
Almacena las instrucciones y los datos que requiere el computador para ejecutar los programas
1981: 640KB of memory ought to be enough for anybody Bill Gates
2007: Windows Vista requiere mínimo de 2GB de RAM para comportarse decentemente!!!
4
Memorias semiconductoras
Dynamic RAM (DRAM)
Es la forma más popular de RAM
Construcción basada en celdas que almacenan el dato como la carga de un capacitor (es, en esencia, un dispositivo analógico)
La presencia o ausencia de carga se interpreta como un estado binario (0, 1)
Requiere de un refrescamiento periódico de la carga para conservar el dato almacenado
Gran densidad de integración (1 transistor por celda) y bajo costo
5
Memorias semiconductoras
Static RAM (SRAM)
Dispositivo digital que usa la misma tecnología de fabricación de la CPU
Se emplea para ofrecer una interfaz directa a la CPU (memoria cache)
Una celda SRAM consiste en un flip-flop biestable: cuando no se direcciona la celda, los dos transistores de acceso están abiertos y el dato se conserva en un estado estable
El flip-flop necesita de un suministro eléctrico constante para conservar la información (volátil)
No es necesario un ciclo de refrescamiento
SRAM es más rápida, menos densa (6 transistores por celda), consume más potencia que DRAM, y es mucho más costosa
6
Almacenamiento en el computador
Static RAM (SRAM)
0.5ns 2.5ns, USD $2000 $5000 por GB
Dynamic RAM (DRAM)
50ns 70ns, USD $20 $75 por GB
Disco magnético
5ms 20ms, USD $0.20 $2 por GB
Memoria ideal
Tiempo de acceso de SRAM
Capacidad y costo/GB del disco
7
Brecha de rendimiento entre el procesador y la memoria
8
?P: 50%/year
DRAM: 10%/year
Processor-Memory
performance gap
(grows ~40%/year)
Ley de Moore
Acerca del sistema de memoria
9
Hechos:
Es necesario suministrar al procesador una instrucción y algunos operandos cada nuevo ciclo de reloj
Las memorias grandes son lentas, y las memorias rápidas son pequeñas
¿Cómo crear una memoria que ofrezca la ilusión de ser grande, barata y rápida (la mayor parte del tiempo)?
Con una jerarquía
Con paralelismo
Principio de localidad
10
En un momento dado, un programa sólo accede a una pequeña porción de su espacio de direcciones
Localidad temporal
Es muy probable que los ítems a los que se ha accedido recientemente sean referenciados pronto otra vez
Ejemplo: las instrucciones de un bucle
? Mantener los ítems accedidos más recientemente cerca del procesador
Localidad espacial
Es muy probable que los ítems cercanos a aquellos accedidos recientemente sean referenciados pronto
Ejemplos: acceso secuencial a instrucciones, elementos de un array
? Mover bloques consistentes en varias palabras contiguas cerca del procesador
Jerarquía de memoria
11
Sacando provecho del principio de localidad se puede tener la ilusión de disponer de tanta memoria como lo permite la tecnología más barata, a la velocidad de la tecnología más rápida
Jerarquía de memoria
Consiste en disponer de diferentes niveles de memoria con diferentes velocidades y tamaños
Almacenar todo en el disco
Copiar los ítems accedidos recientemente (y sus vecinos) desde el disco a una memoria DRAM más pequeña
Memoria principal
Copiar los ítems accedidos recientemente (y sus vecinos) desde la DRAM a una memoria SRAM más pequeña
Memoria caché unida a la CPU
Memoria cache ($ memory)
12
Nivel de la jerarquía de memoria que ubicado entre el procesador y la memoria principal
Se implementa usando la misma tecnología de fabricación de la CPU (normalmente integrada en el mismo chip)
Más rápida pero también más costosa que la DRAM
La memoria cache almacena un subconjunto de la memoria principal
La mayoría de los procesadores poseen caches de datos e instrucciones separadas
Representación de la jerarquía de memoria
13
Procesador
(Gp:) Tamaño de memoria en cada nivel
(Gp:) Mayor distancia al procesador, mayor tiempo de acceso
(Gp:) Nivel 1
(Gp:) Nivel 2
(Gp:) Nivel n
(Gp:) Nivel 3
(Gp:) . . .
Mayor
Menor
(Gp:) Niveles en la jerarquía de memoria
En niveles inferiores, la latencia crece y el precio por bit disminuye
Terminología de la jerarquía de memoria
14
Bloque:
Unidad de información que está presente o no en un nivel de la jerarquía
Unidad mínima de transferencia
Puede ser de varias palabras
Cuando el procesador solicita un dato:
Si el dato accedido está en el nivel superior:
Acierto (Hit): acceso satisfecho por el nivel superior
Tasa de aciertos (Hit ratio): aciertos/accesos
Tiempo de acierto (Hit time)
Si el dato accedido no está en el nivel superior:
Fallo (Miss): el bloque es copiado desde el nivel inferior
Tiempo necesario: penalización de fallo (miss penalty)
Tasa de fallos (Miss ratio): fallos/accesos= 1 tasa de aciertos
Tiempo de acierto, penalización de fallo
15
Hit time: Tiempo de acierto
Tiempo para acceder a un nivel de la jerarquía
Consiste en:
Tiempo para acceder al bloque + Tiempo para determinar si hay acierto/fallo
Miss Penalty: Penalización de fallo
Tiempo para reemplazar un bloque en un nivel de la jerarquía con el bloque correspondiente del nivel inferior
Consiste en:
Tiempo para acceder al bloque en el nivel inferior +
Tiempo para transferir ese bloque al nivel que sufrió el fallo +
Tiempo para insertar el bloque en este nivel +
Tiempo para pasar el bloque a quien lo solicita
Para la que el diseño de la jerarquía de memoria tenga sentido:
Hit Time