Title | GII EC Tema 05 expandido |
---|---|
Author | José Luis Artiles Mendoza |
Course | Algebra Lineal |
Institution | Universidade da Coruña |
Pages | 114 |
File Size | 4.1 MB |
File Type | |
Total Downloads | 37 |
Total Views | 153 |
11111111111111...
COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface
Tema 5 – Parte I Jerarquía de memoria del sistema computador. Niveles. Influencia en el rendimiento
5th Edition
Referencias
Computer Organization and Design: the hardware/software interface. David A. Patterson, John L. Hennesy. Fifth Edition. Morgan Kaufmann. ISBN: 978-0-12-407726-3
Tema 5 — Sistema de memoria — 2
§5.1 Introduction
Introducción
Memoria Ideal Rápida, grande y barata. ¿Qué significa que sea “Rápida”? Monociclo Poca latencia de operación (tciclo pequeño) Multiciclo Que no determine el tiempo de ciclo ¿Qué significa que sea “grande”? Que el tamaño de la memoria no limite los programas que puedo ejecutar. ¿Qué significa que sea “barata”? Abordable económicamente. Sin embargo, la realidad es que no existe una memoria así
Eso tiene impacto en el rendimiento
Tema 5 — Sistema de memoria — 3
§5.1 Introduction
Impacto en el rendimiento de la velocidad de la memoria
Supongamos un procesador que alcanza un CPI medio de 1.1 ciclos con un sistema de memoria ideal para un programa determinado que tiene 50% de instrucciones aritmético-lógicas, 30% de instrucciones de load/store y 20% de instrucciones de control. Si ahora conectamos un sistema de memoria real que provoca que el 10% de las instrucciones de memoria tengan una penalización de 50 ciclos, ¿cómo varía el CPI? CPI = CPI_mem_ideal + ciclos de bloqueo promedio por instrucción = = 1.1 + 0,30 * 0,10 * 50 = 1.1 + 1.5 = 2.6 ciclos por instrucción Rendimiento real / Rendimiento ideal = Tcpu_mem_ideal / Tcpu_mem_real = = N * 1.1 * tciclo / N * 2.6 * tciclo = 1.1 / 2.6 = 0.42 Hemos perdido el 58% de rendimiento => El procesador pasa ahora el 58% del tiempo bloqueado esperando que lleguen los datos de memoria Rend ideal/Rend real = 2.6/1.1 = 2.36 => Mem ideal es 136% mejor que Mem real
Tema 5 — Sistema de memoria — 4
Objetivo: Dar la impresión al usuario de que tiene una memoria grande, rápida y barata.
Organizando la memoria de forma jerárquica, llegando así a un compromiso entre Tecnología, Coste y Velocidad.
¿En qué consiste?
Tan grande y barata como los discos magnéticos. “Casi” tan rápida como la SRAM.
¿Cómo?
§5.1 Introduction
¿Cómo lo solucionamos?
En utilizar distintos niveles de memorias de forma que los niveles más cercanos al procesador utilizan tecnología más rápida (aunque son de menor tamaño y más caras) y los niveles más lejanos al procesador utilizan tecnología más lenta (y son de mayor tamaño y más baratas).
Todo se basa en el Principio de localidad de los programas
Tema 5 — Sistema de memoria — 5
Los programas acceden en cualquier momento a una pequeña parte de todo su espacio de direcciones Localidad temporal
§5.1 Introduction
Principio de Localidad
Es probable que se acceda de nuevo a los elementos accedidos recientemente Ej: las instrucciones de un bucle, las variables de inducción de los bucles
Localidad espacial
Es probable que se acceda a los elementos cercanos a los accedidos recientemente Ej: acceso a instrucciones secuenciales, acceso a datos en arrays
Tema 5 — Sistema de memoria — 6
Aprovechar
la localidad
Organizar la memoria de forma jerárquica:
Almacenar todo en el nivel más lento
Copiar los elementos accedidos recientemente (y los cercanos a ellos) desde el disco a una memoria DRAM más pequeña
Disco magnético
Memoria principal
Copiar los elementos accedidos más recientemente (y los cercanos a ellos) desde la DRAM a una memoria SRAM más pequeña
Memoria cache conectada a la CPU
Tema 5 — Sistema de memoria — 7
Niveles de la Jerarquía de Memoria
Bloque (o línea): cantidad mínima de información que se transfiere entre 2 niveles consecutivos
Pueden ser varias palabras
Si el dato a acceder está en el nivel superior
Acierto (hit): el nivel superior suministra el dato
Tasa de aciertos (Hit rate) = nº aciertos/nº accesos
Si el dato no está en el nivel superior
Fallo (miss): se copia el bloque que contiene el dato desde el nivel inferior
Penalización de fallo (miss penalty): tiempo que se tarda en copiar el bloque desde el nivel inferior
Incluye tiempo de acceso + tiempo de transferencia
Tasa de fallos (miss rate) = nºfallos/nºaccesos = 1 – tasa de aciertos
Después, se suministra el dato desde el nivel superior Tema 5 — Sistema de memoria — 8
Static RAM (SRAM)
Dynamic RAM (DRAM)
Tiempo de acceso: 5us – 50us Coste: $0.75 - $1 por GB
Discos magnéticos
Tiempo de acceso: 50ns – 70ns Coste: $20 – $75 por GB
• + lentas • + baratas • mayor tamaño
Memoria Flash
Tiempo de acceso: 0.5ns – 2.5ns, Coste: 2000 – $5000 por GB
§5.2 Memory Technologies
Tecnologías de Memoria
Tiempo de acceso: 5ms – 20ms Coste: $0.20 – $2 por GB
Memoria ideal:
Que tenga el tiempo de acceso de la SRAM Que tenga capacidad y coste/GB de los discos magnéticos Tema 5 — Sistema de memoria — 9
Tecnología SRAM
Circuitos integrados formados por arrays de celdas de memoria Tiempo fijo de acceso a cualquier dato Tiempo de acceso diferente para lectura y escritura El dato permanece mientras esté conectada a la corriente eléctrica
No necesita ser refrescada Necesitan una potencia mínima para mantener la carga en modo standby
Utilizan de 6 a 8 transistores por bit almacenado
Tema 5 — Sistema de memoria — 10
Tecnología DRAM
Los datos se almacenan como la carga de un condensador
Se usa un solo transistor para acceder a la carga almacenada
Más densas y baratas que las SRAM
Se debe refrescar periódicamente
Refrescar = leer los contenidos y volverlos a escribir El refresco se realiza por filas
Tema 5 — Sistema de memoria — 11
Organización avanzada de las DRAM
Los bits de una DRAM se organizan como un array rectangular
Double data rate SDRAM (DDR SDRAM)
DRAM accede a una fila completa Modo Burst (ráfaga): proporciona palabras secuenciales de una fila con latencia reducida Se añade reloj (Synchronous DRAM – SDRAM) lo que las hace más rápidas, al eliminar el tiempo de sincronización
Transfieren en los flancos de subida y bajada de la señal de reloj
Quad data rate SDRAM (QDR SDRAM)
Entradas y salidas DDR separadas
Tema 5 — Sistema de memoria — 12
Generaciones DRAM Year
Capacity
$/GB
1980
64Kbit
$1500000
1983
256Kbit
$500000
1985
1Mbit
$200000
1989
4Mbit
$50000
1992
16Mbit
$15000
1996
64Mbit
$10000
1998
128Mbit
$4000
2000
256Mbit
$1000
2004
512Mbit
$250
50
2007
1Gbit
$50
0
2010
2Gbit
$30
2012
4Gbit
$1
300 Tiempo_acceso_fila (ns)
250
Tiempo_acceso_columna (ns)
200 150 100
80 83 85 89 92 96 98 00 04 07 10 12
Tema 5 — Sistema de memoria — 13
Factores de rendimiento de las DRAM
Buffer de fila (Row buffer)
DRAM Síncronas (Synchronous DRAM – SDRAM)
Permite leer y refrescar varias palabras en paralelo
Permite realizar accesos consecutives en ráfagas sin necesidad de enviar cada dirección individual Elimina la necesidad de sincronización explícita (CLK sincroniza) Mejora el ancho de banda
DRAM en bancos
Permite el acceso simultáneo a múltiples DRAMs Mejora el ancho de banda
Tema 5 — Sistema de memoria — 14
Mejora del ancho de banda
Tiempo acceso a memoria = 15 ciclos; bloque a transferir = 16 bytes Memoria de ancho 1 palabra
Memoria de ancho 4 palabras
Penalización de fallo = 1 + 4*15 + 4*1 = 65 ciclos de bus Ancho de banda = 16 bytes / 65 ciclos = 0.25 B/ciclo Penalización de fallo = 1 + 15 + 1 = 17 ciclos de bus Ancho de banda = 16 bytes / 17 ciclos = 0.94 B/ciclo
Memoria entrelazada de 4 bancos
Penalización de fallo = 1 + 15 + 4*1 = 20 ciclos de bus Ancho de banda = 16 bytes / 20 cycles = 0.8 B/ciclo Tema 5 — Sistema de memoria — 15
Almacenamiento en semiconductor no volátil
Es una memoria EEPROM (Electrically Erasable Programmable Read-Only Memory) 100× – 1000× más rápidos que los discos magnéticos Más pequeñas, menor consumo, más robustas …aunque mayor $/GB (entre los discos magnéticos y la DRAM)
§6.4 Flash Storage
Almacenamiento Flash
Tema 5 — Sistema de memoria — 16
Tipos de memorias Flash
Flash NOR: cada celda de bit similar a una puerta NOR
Acceso random de lectura/escritura Se utiliza para memorias de instrucciones en sistemas empotrados (embedded systems)
Flash NAND: cada celda de bit similar a una puerta NAND
Son más densas (bits/area), pero los accesos son por bloques Más baratas por GB Se utilizan para memorias USB, discos SSD,…
Ojo con la nomenclatura, los discos SSD realmente no son discos…¡piénsalo!
Las celdas de las memorias flash dejan de funcionar después de unos miles de accesos
No es adecuada para reemplazar a los discos magnéticos o a las RAM de acceso directo (DRAM) Equiparar el nivel de desgaste de las celdas: remapear los datos a las celdas menos utilizadas => disminuye el rendimiento Tema 5 — Sistema de memoria — 17
Almacenamiento magnético, no volátil, en platos giratorios
§6.3 Disk Storage
Almacenamiento en Disco
Tema 5 — Sistema de memoria — 18
Sectores del disco y accesos
En cada sector se almacena:
ID del sector Datos (512B - 4KB) Códigos de corrección de errores (ECC)
Existen también campos de sincronización y huecos (gaps):
Se usan para subsanar los errores de grabación y del propio disco ID – gap – Datos+ECC – gap – ID – gap – Datos+ECC – gap …
El tiempo para acceder a un sector incluye:
Retardo de hacer cola, si existen otros accesos pendientes Tiempo de posicionado (seek): para mover los cabezales hasta la pista Latencia rotacional: tiempo que tarda la información en pasar por debajo del cabezal
Tiempo de transferencia de datos
Se utiliza la latencia rotacional media = tiempo que tarda el disco en dar media Vuelta Ej: 8000 rpm = 8000 vueltas en 60 segundos Depende de la velocidad de transferencia del disco Ej: 100 MB/s = 100 2 Bytes en 1 segundo
Overhead del controlador Tema 5 — Sistema de memoria — 19
Ej: Cálculo del tiempo de acceso al disco
Dado las siguientes características de un disco:
Tiempo de lectura promedio =
Sector de 512B, velocidad de rotación de 15000 rpm, tiempo medio de posicionamiento (seek) de 4ms, velocidad de transferencia de 100MB/s, overhead del controlador de 0.2ms, y no existen peticiones pendientes de acceso al disco
(tiempo de posicionamiento) 4ms + (latencia rotacional media) ½ / (15000/60) = 2ms + (tiempo de tranferencia) 512 / 100MB/s = 0.005ms + (retardo del controlador) 0.2ms = 6.205ms = 6.2ms Reflexión: La mayor cantidad de tiempo se emplea en los elementos mecánicos del disco
Si el tiempo posicionamiento real es de 1ms
Tiempo de lectura promedio = 3.2ms Tema 5 — Sistema de memoria — 20
Aspectos de rendimiento del disco
Los fabricantes proporcionan:
El tiempo mínimo y máximo de acceso al disco El tiempo de acceso promedio al disco
Basándose en todos los posicionamientos posibles La localidad en los accesos y la planificación que realiza el SO produce que los tiempos de acceso medios reales sean más pequeños
Las unidades de disco incluyen caches
Prebúsqueda de sectores para anticiparse a los accesos solicitados Evitan los retardos de posicionamiento y la latencia rotacional Nota importante: la cache del disco no es lo mismo que los niveles de memoria cache de la jerarquía de memoria, aunque funcionan con la misma filosofía. Tema 5 — Sistema de memoria — 21
COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface
Tema 5 – Parte II Jerarquía de memoria del sistema computador. Niveles. Influencia en el rendimiento
5th Edition
Memoria cache
Nivel de la jerarquía de memoria más cercano a la CPU
Dados los accesos X1, …, Xn–1, y se produce un nuevo acceso Xn
§5.3 The Basics of Caches
Memoria cache
¿Cómo sabemos si los datos que buscamos están en la cache? ¿Cómo los encontramos?
Tema 5 — Sistema de memoria — 23
Cache de Mapeo Directo
La ubicación de los datos en la cache está determinada por su dirección Mapeo directo: solo es posible una ubicación
(Dirección de Bloque) modulo (#Bloques en cache)
#Bloques es una potencia de 2 Se utilizan los bits menos significativos de la dirección
Dirección de bloque = dirección de memoria/tamaño de bloque Tema 5 — Sistema de memoria — 24
Etiquetas y bits de validez
¿Cómo sabemos qué bloque en particular está almacenado en una posición de la cache?
Almacenamos en cache los datos del bloque y también la dirección del bloque Realmente solo es necesario almacenar los bits más significativos de la dirección
Se les denomina etiqueta (o tag)
¿Y cómo sabemos si hay o no hay datos almacenados en una posición de la cache?
Cada bloque posee un bit de validez:
1 = existen datos válidos almacenados 0 = no existen datos válidos almacenados
Inicialmente los bits de validez de todos los bloques valen 0
Tema 5 — Sistema de memoria — 25
Ejemplo de acesos a la Cache
8 bloques, 1 palabra/bloque, mapeo directo Estado inicial
Index
V
000
N
001
N
010
N
011
N
100
N
101
N
110
N
111
N
Tag
Data
Tema 5 — Sistema de memoria — 26
Ejemplo de acesos a la Cache Dirección de palabra
Dirección binaria
Hit/miss
Bloque de cache
22
10 110
Miss
110
Index
V
000
N
001
N
010
N
011
N
100
N
101
N
110
Y
111
N
Tag
Data
10
Mem[10110]
Tema 5 — Sistema de memoria — 27
Ejemplo de acesos a la Cache Dirección de palabra
Dirección binaria
Hit/miss
Bloque de cache
26
11 010
Miss
010
Index
V
000
N
001
N
010
Y
011
N
100
N
101
N
110
Y
111
N
Tag
Data
11
Mem[11010]
10
Mem[10110]
Tema 5 — Sistema de memoria — 28
Ejemplo de acesos a la Cache Dirección de palabra
Dirección binaria
Hit/miss
Bloque de cache
22
10 110
Hit
110
26
11 010
Hit
010
Index
V
000
N
001
N
010
Y
011
N
100
N
101
N
110
Y
111
N
Tag
Data
11
Mem[11010]
10
Mem[10110]
Tema 5 — Sistema de memoria — 29
Ejemplo de acesos a la Cache Dirección de palabra
Dirección binaria
Hit/miss
Bloque de cache
16
10 000
Miss
000
3
00 011
Miss
011
16
10 000
Hit
000
Index
V
Tag
Data
000
Y
10
Mem[10000]
001
N
010
Y
11
Mem[11010]
011
Y
00
Mem[00011]
100
N
101
N
110
Y
10
Mem[10110]
111
N Tema 5 — Sistema de memoria — 30
Ejemplo de acesos a la Cache Dirección de palabra
Dirección binaria
Hit/miss
Bloque de cache
18
10 010
Miss
010
Index
V
Tag
Data
000
Y
10
Mem[10000]
001
N
010
Y
10
Mem[10010]
011
Y
00
Mem[00011]
100
N
101
N
110
Y
10
Mem[10...