Story Transcript
Arquitectura de Computadores II Clases #10 Facultad de Ingeniería Universidad de la República
Instituto de Computación Curso 2009
Veremos…
E/S avanzada
DMA Procesadores de E/S
Periféricos
Interfaces de alta velocidad Almacenamiento
E/S: características generales
Conexión de memoria y E/S
Direccionamiento
Buses del sistema E/S aislada E/S mapeada en Memoria
Estructuras de Control de E/S
Polling Interrupciones
Técnicas para leer un bloque de datos de entrada
Transferencia de datos basada en interrupciones CPU (1) Int. de E/S Memoria
C. E/S dispositivo
Ejemplo
programa de usuario
(2) salvar PC (3) Dirección del servicio de Int.
• 1000 transferencias de 1000 bytes, vel de transf. del dispositivo = 10 MBytes/s => 1000 bytes = 100 µseg(4) • 1000 transferencias x 100 µsecs = 100 ms = 0.1 segundos de CPU • C/int (contexto + handler) = 100µseg • 1000 interrupciones = 0.1 segundos de CPU
add sub and or nop
2x overhead en las interrupciones!
read store ... rti memoria
rutina de servicio de la Int.
Una posible solución: Direct Memory Access
E/S programada y por interrupciones requieren la intervención activa de la CPU
Limita la velocidad de transferencia CPU “queda atada” a la E/S
Alternativa DMA
Módulo adicional (hardware) en el bus El controlador de DMA “sustituye” a la CPU en tareas de E/S
Direct Memory Access: Cómo funciona?
La CPU programa el controlador de DMA:
Lectura/Escritura Dirección del dispositivo Dirección de comienzo del bloque de memoria Cantidad de datos a transferir
La CPU hace otra tarea mientras el controlador de DMA se encarga de la transferencia El controlador de DMA interrumpe cuando finaliza
“Robo” de ciclos del DMA
Por cada palabra transferida, el DMA se adueña del bus No es una interrupción (no hay que cambiar de contexto) La CPU queda suspendida antes de acceder al bus • Ej. Antes de leer o escribir en memoria
Enlentece la CPU, pero no tanto como si hiciera la transferencia
Breakpoints del DMA e Interrupciones durante el Ciclo de Instrucción
Direct Memory Access: Conexión al bus (i)
Como afecta el cache al DMA? Buses? Un solo Bus, controlador de DMA desacoplado
Cada transferencia usa el bus dos veces • E/S a DMA, DMA a memoria
CPU suspendida dos veces!
Direct Memory Access: Conexión al bus (ii)
Un solo Bus, controlador de DMA integrado con E/S
El controlador puede soportar más de un dispositivo Cada transferencia usa el bus una sola vez • DMA a memoria
CPU suspendida una sola vez
Direct Memory Access: Conexión al bus (iii)
Bus de E/S separado
Permite escalar el DMA • El bus soporta todos los dispositivos que usan el DMA
Cada transferencia usa el bus una sola vez • DMA a memoria
CPU suspendida una sola vez
Ejemplo: controlador DMA Intel 8237
Interfaz con DRAM y familia 80x86 Cuando el módulo de DMA necesita el bus manda señal HOLD al procesador CPU responde con HLDA (hold acknowledge)
Módulo DMA puede usar el bus
Ej. transferencia de datos de memoria a disco 1. 2. 3.
4. 5.
6.
El dispositivo requiere servicio del DMA mediante DREQ (DMA request) DMA pide el bus mediante HRQ (hold request), CPU finaliza el ciclo de bus actual (no necesariamente la instrucción) y entrega el bus mediante HDLA (hold acknowledge). HOLD se mantiene activo durante el servicio del DMA DMA activa DACK (DMA acknowledge) para que el dispositivo inicia la transferencia DMA arranca la transferencia poniendo la dirección del primer byte en el bus de direcciones y activando MEMR; luego activa IOW para escribir al periférico. El DMA decrementa en countador E incrementa el puntero de direcciones hasta que el contador llega a cero DMA desactiva HRQ, y devuelve el bus a la CPU
DMA Intel 8237: uso del bus
Direct Memory Access: Ejemplo
En el ejemplo anterior:
1000 transferencias x 100 µsecs = 100 ms = 0.1 segundos de CPU 1 secuencia de Inicialización del DMA = 50 µsec 1 interrupción = 100µseg .00015 segundos de CPU! • (más el robo de ciclos)
Mas eficiente para transferir bloques de datos contiguos!
Procesadores de Entrada/Salida (i)
Sofisticación de los dispositivos de E/S
Ej. placa de gráficos 3D
CPU requiere transferencia al controlador de E/S
El controlador de E/S es capaz de ejecutar instrucciones especializadas • Es un computador en si mismo • Procesador • Puede tener memoria local
Canales Procesadores
La velocidad mejora
Descarga de la CPU El procesador dedicado es más veloz
Procesadores de Entrada/Salida (ii) CPU
D1
IOP
bus de memoria principal Mem bus E/S (1)
CPU IOP (3)
dispositivo destino
D2
donde están los comandos
. . . Dn
(4) manda instrucción al IOP
OP disp. Dirección se buscan los comandos en memoria
interrumpe cuando (2) completa memoria
Transferencias entre el dispositivo y memoria son controladas por el IOP directamente El IOP roba ciclos de memoria
OP Addr Cnt Otros que hacer donde poner los datos
cuanto
Relación con la Arquitectura del Procesador
Los Caches requeridos para la performance del procesador causan problemas a la E/S
Vaciado es caro, la E/S “ensucia” el cache Existe una solución desarrollada para multiprocesadores con memoria compartida: "snooping"
La Memoria Virtual “frustra” el DMA
La inclusión de Procesadores de E/S tiene consecuencias visibles al programador
Altera la arquitectura! (ISA) Debe mantenerse a futuro… Qué pasa si las CPUs mejoran su performance más rápido que los IOP?
Interfaces de alta velocidad
El objetivo es conectar dispositivos a alta velocidad Históricamente:
Extensiones de IP/Ethernet para SANs (Storage Area Networks)
Procesador/memoria/buses dedicados Ethernet, ATM (WAN) Evolución Ethernet: 1Gbps, 10Gbps…
iSCSI i Fibre Channel
Otras tecnologías…
Myrinet, bonding: usada en clusters HPC FireWire InfiniBand
IEEE 1394 FireWire
Bus serial de alta performance
Rápido Bajo costo Fácil de implementar También usado en cámaras digitales, VCRs y TV
Tasas de tranferencia desde 25 a 400Mbps Similar a USB. Veamos…
USB 2.0 (2001) llega a 480 Mbps. USB 2.0 host-based FireWire peer-to-peer FireWire IEEE 1394b: tasas > 800 Mbps, fibra óptica
IEEE 1394 FireWire: Configuración
Daisy chain Hasta 63 dispositivos en cada puerto Hasta 1022 buses usando puentes Configuración automática No se necesitan terminadores de bus Soporta estructura de árbol
InfiniBand (i)
Especificación de E/S para servidores “high end”
Arquitectura y especificación para flujo de datos entre la CPU y dispositivos de E/S inteligentes Reemplazo de PCI en servidores
Unión de “Future I/O” (Cisco, HP, Compaq, IBM) y “Next Generation I/O” (Intel) Version 1 publicada en 2001, Implementación futura
Existen adaptadores InfinibandPCI-X
Compite con (y es capaz de transportar)
Gigabit Ethernet Fibre Channel
InfiniBand (ii)
Almacenamiento remoto, conectividad entre servidores
Mayor densidad de servidores “Data center” escalable Nodos independientes se pueden agregar en demanda Distancias de la E/S al servidor
La idea es interconectar servidores, almacenamiento y dispositivos remotos a un switch común
17m en cobre 300m fibra multimodo 10km fibra monomodo
Hasta 30 Gbps
InfiniBand:
I/O Area Network
Convergencia de clusters, redes y almacenamiento (SANs) en una sola “switch fabric” IAN (I/O Area Network) Se usa básicamente en clusters HPC
InfiniBand Switch Fabric
Interfaces de alta velocidad: una observación final
En las últimas décadas la performance de las interfaces de alta velocidad ha crecido en varios órdenes de magnitud
Ethernet, Fast Ethernet, Gigabit Ethernet, 10Gbit Ethernet, Infiniband, etc etc….
Pero la performance de E/S no ha crecido comparativamente! Qué pasa?
Desde los 80’s de usa TCP/IP, casi sin cambios ni optimizaciones! Qué hacer?
Tipos de Memoria Externa
Discos Magnéticos
Discos Ópticos
RAID Removible CD-ROM CD-Recordable (CD-R) CD-R/W DVD
Cinta Magnética
Recordemos: por qué interesa la E/S?
Performance CPU: >60% por año Performance de E/S (discos) limitada por retardos mecánicos
Recordar la Ley de Amdahl: la aceleración del sistema limitada por la parte más lenta!
10% E/S & 10x CPU => 5x Performance (se pierde 50%) 10% E/S & 100x CPU => 10x Performance (se pierde 90%)
Cuello de botella de la E/S:
< 10% por año (E/S por segundo)
Disminuye fracción del tiempo de uso de la CPU Disminuye el valor de tener CPUs más rápidas
Obs: la gente se preocupa más por almacenar y comunicar información que por el cálculo
"Information Technology" vs. "Computer Science" 1960s - 1980s: Computing Revolution 1990s - 2000s: Information Age
Discos Magnéticos
Sustrato cubierto por material magnetizable (p.ej. óxido de hierro)
Mecanismos de lectura y escritura
Grabado y recuperación mediante una cabeza magnética • Puede haber una cabeza de lectura/escritura o separadas
Durante la lectura/escritura la cabeza está fija y rotan los platos Escritura • Corriente en la cabeza produce un campo magnético • Se aplican pulsos de corriente en la cabeza • Patrón magnético grabado en la superficie
Lectura • El campo magnético debido al movimiento relativo a la cabeza induce corriente • Actualmente se usan cabezas de lectura magneto-resistivas • Permiten mayor frecuencia de operación • Mejor densidad de almacenamiento y más velocidad de acceso
Discos Magnéticos:
Escritura inductiva, lectura MR
Discos Magnéticos:
Formato y organización de los datos
Anillos concéntricos o tracks
“Gaps” entre tracks Gap más pequeño -> mayor capacidad Igual cantidad de bits por track (densidad variable) Velocidad angular constante
Tracks divididas en sectores
“Block size” mínimo es un sector Puede haber más de un sector por bloque
Discos Magnéticos: Múltiples platos
Una cabeza por lado
Cabezas se alinean juntas
Traks alineadas n cada plato forman cilindros
Los datos son repartidos por cilindro
Reduce movimiento de las cabezas Aumenta velocidad (tasa de transferencia)
Discos Magnéticos: Cilindros
Discos Magnéticos: De la vida real…
Actuador
Cabeza Platos (12)
{
Discos Magnéticos: Performance (i)
Disk Latency = Seek Time + Rotation Time + Transfer Time + Controller Overhead
Seek Time • Situar cabeza en el track correcto
Rotation Time • Esperar que los datos roten debajo de la cabeza
Transfer Time • Depende de la tasa de transferencia del disco (ancho de banda, “bit density”), tamaño del bloque requerido
Parámetros que interesan
Capacidad: 100%/año (2X / año) Tasa de Transferencia (BW): 40%/año (2X / 2 años) Rotation + Seek time: 8%/ year (1/2 en 10 años) MB/$: 100%/año (2X / año) • Agrupar funciones en chips + densidad
Discos Magnéticos: Performance (ii)
Estado del Arte: Barracuda 180 • • • • • • • •
181.6 GB, 3.5 inch disk 12 platos, 24 superficies 24,247 cilindros 7,200 RPM; (4.2 ms avg. latency) 7.4/8.2 ms avg. seek (r/w) 64 to 35 MB/s (interno) 0.1 ms controller time 10.3 watts (idle)
Calcular tiempo para leer 64 KB (128 sectores)
Disk latency = average seek time + average rotational delay + transfer time + controller overhead • = 7.4 ms + 0.5 * 1/(7200 RPM) + 64 KB / (65 MB/s) + 0.1 ms • = 7.4 ms + 0.5 /(7200 RPM/(60000ms/M)) + 64 KB / (65 KB/ms) + 0.1 ms • = 7.4 + 4.2 + 1.0 + 0.1 ms = 12.7 ms
Discos Magnéticos: Historia (i) Data density Mbit/sq. in. Capacity of Unit Shown Megabytes
1973: 1. 7 Mbit/sq. in 140 MBytes
1979: 7. 7 Mbit/sq. in 2,300 MBytes
source: New York Times, 2/23/98, page C3, “Makers of disk drives crowd even more data into even smaller spaces”
Discos Magnéticos: Historia (ii)
1989: 63 Mbit/sq. in 60,000 MBytes
1997: 1450 Mbit/sq. in 2300 MBytes
1997: 3090 Mbit/sq. in 8100 MBytes
source: New York Times, 2/23/98, page C3, “Makers of disk drives crowd even mroe data into even smaller spaces”
Discos Magnéticos: Historia (iii)
2000 IBM MicroDrive
1.7” x 1.4” x 0.2” 1 GB, 3600 RPM, 5 MB/s, 15 ms seek Cámaras digitales, PalmPC?
2009 MicroDrive
3-8 GB, 10 MB/s • (se pronosticaba 9GB y 50MB/s)
Flash Cards
Almacenamiento de decenas de MBs Random access a los datos “Wake-up time” instantáneo desde standby Tolerante a choques y vibraciones 2008/2009: Apple y Dell -> notebooks con disco de estado sólido de hasta 256 GB. Experimentales de 1TB!
Discos Magnéticos: Historia (iv) -> 2005
Travelstar C4K60 Slim hard disk drives
Capacidad: 60, 20, 30, 20 (GB), 4200 RPM Interface transfer rate (MB/sec, max): 100 Ultra DMA mode-5 Tamaño (mm): 8.0 x 54 x 71, Peso (g): 60 Aplicaciones: • • • •
Digital video camera (DVC) Portable digital audio / video (MP3, PMP) -> iPOD Portable digital video (PMP) Handheld navigation
Hitachi Microdrive 3K8 digital media hard disk drives
Capacidad: 8 GB, 3600 RPM Interface transfer rate (MB/sec, max) 33 Ultra DMA mode-2 Tamaño (mm): 5 x 40 x 30, Peso (g): 13 Aplicaciones: teléfonos móviles, Portable Digital Audio (MP3), Fotografía Digital…
Array de discos pequeños?
Katz & Patterson, 1987: podemos usar discos pequeños para cerrar la brecha de performance con la CPU?
Conventional: 4 disk 3.5” 5.25” designs Low End Disk Array: 1 disk design 3.5”
10”
14”
High End
Array de discos pequeños? (Discos de 1988) Capacity Volume Power Data Rate I/O Rate MTTF Cost
IBM 3.5" 0061 320 MBytes 0.1 cu. ft. 11 W 1.5 MB/s 55 I/Os/s 50 KHrs $2K
x70 23 GBytes 11 cu. ft. 1 KW 120 MB/s 3900 IOs/s ??? Hrs $150K
Interesante… pero que pasa con la confiabilidad?
IBM 3390K 20 GBytes 97 cu. ft. 3 KW 15 MB/s 600 I/Os/s 250 KHrs $250K
Confiabilidad de N discos = Confiabilidad de 1 Disco ÷ N 50,000 Horas ÷ 70 discos = 700 horas -> MTTF baja de 6 años a 1 mes!
Arrays (sin redundancia) muy poco confiables….
9X 3X 8X 6X
RAID
Redundant Array of Independent (Inexpensive) Disks Conjunto de discos físicos vistos como un solo volumen lógico por el Sistema Operativo
Datos distribuidos en los discos físicos Se usa capacidad redundante para almacenar información de paridad
Los archivos se “parten” en múltiples discos
Redundancia -> alta disponibilidad
Disponibilidad: se mantiene el servicio al usuario aunque algunos componentes fallen
Discos fallan…
Información se reconstruye a partir de la redundancia almacenada en el array • Penalización de capacidad x redundancia • Penalización de Ancho de Banda para actualizar información redundante
RAID 0
No tiene redundancia Datos distribuidos en todos los discos
Stripping Round Robin
Mejora velocidad
Es probable que requerimientos múltiples no estén en el mismo disco Búsqueda en paralelo Conjunto de datos repartido en muchos discos
Data Mapping en RAID 0
RAID 1
RAID 1: Discos espejados (“mirrored”)
Los datos son distribuidos en los discos 2 copias de cada “tira” de datos en discos separados Se puede leer de cualquiera Se escribe en ambos • Sacrificio de Ancho de banda • Escritura Lógica = dos escrituras físicas
Recuperación es simple
Cambiar disco fallado y re-mirror No hay “down time”
Caro! Obs: la figura es RAID 0+1
RAID 2
Discos sincronizados Stripes muy pequeños
Por ej. byte/word
Corrección de errores se calcula usando bits correspondientes en los discos Múltiples discos de paridad almacenan código de Hamming para la corrección de errores Mucha redundancia
# discos redundantes proporcional a logaritmo del # discos de datos Caro No se usa
RAID 3
RAID 3: Solo un disco redundante por array
Se calcula y almacena el bit de paridad en el disco P Los datos del disco fallado se pueden reconstruir a partir de la información sobreviviente y el disco P
Lógicamente se dispone de un disco de alta capacidad y alta tasa de transferencia Array ancho reduce costo/capacidad, pero baja la disponibilidad
P 1 0 1 0 0 0 1 1
1 1 0 0 1 1 0 1
1 0 1 0 0 0 1 1
1 1 0 0 1 1 0 1
RAID 4
En RAID 3 cada acceso necesita todos los discos: paridad de bit RAID 4 opera sobre bloques Cada disco puede operar en forma independiente
Bueno para “pequeñas lecturas” Altas tasas de acceso de E/S
Penalización de RAID 4: escrituras
Cuando se actualiza un bloque, se deben leer todos los bloques de una tira para actualizar el bit de paridad
RAID 3 & 4
Problema del RAID: Small Writes D0' new data
RAID-5: Algoritmo para “Small Write”
1 Logical Write = 2 Physical Reads + 2 Physical Writes
D0
D1
D2
D3
old data (1. Read)
P old (2. Read) parity
+ XOR + XOR
(3. Write) D0'
D1
(4. Write) D2
D3
P'
RAID 5 (y 6)
Igual a RAID 4 Mejora: paridad repartida en todos los discos
Paridad se escribe en round robin
Elimina cuello de botella del disco de paridad Comunmente usado en servidores de red RAID 6: doble paridad, no se usa
Resumen RAID
El objetivo era mejorar la performance, popular gracias a confiabilidad del almacenamiento Disk Mirroring, Shadowing (RAID 1)
Parity Data Bandwidth Array (RAID 3)
Cada disco es duplicado en su “espejo” Escritura lógica = dos escrituras físicas 100% overhead de capacidad Cálculo de Paridad horizontal Lógicamente un solo disco de gran ancho de banda
High I/O Rate Parity Array (RAID 5)
Bloques de Paridad “interleaved” Lecturas y escrituras independientes Escritura lógica = 2 lecturas + 2 escrituras
1 0 0 1 0 0 1 1
1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1
1 1 0 0 1 1 0 1
1 0 0 1 0 0 1 1
0 0 1 1 0 0 1 0
Disponibilidad a nivel del sistema host I/O Controller
host Fully dual redundant I/O Controller
Array Controller ...
Array Controller ... ... ...
Objetivo: evitar punto de falla único
... Recovery Group
. . .
Con caminos duplicados, se tiene mayor Performance mientras no haya fallas
Discos Removibles
Pen-drive USB Discos externos USB, Firewire
Histórico
ZIP • Barato • Solo 100MB
JAZ • No es barato • 1G
L-120 (a: drive) • También lee 3.5” floppy
Lo más usado: CD-R y CD-R/W
Almacenamiento Óptico: CD-ROM
Originalmente para audio 650Mbytes, 70 minutos de audio Polycarbonato revestido de material reflejante, usualmente aluminio Datos se almacenan como “huecos”
Se leen mediante un laser que refleja Densidad y velocidad constante
Velocidades del CD-ROM
El audio tiene una velocidad única
Velocidad lineal constante 1.2 m/s Track (espiral) tiene 5.27km de largo 4391 segundos de audio = 73.2 minutos
Otras velocidades se notan como múltiplos
Ej. 48x Este número es el máximo
Otros Almacenamientos Ópticos
CD-Recordable (CD-R)
WORM Compatible con CD-ROM drives
CD-RW
Borrable Cada vez más barato Normalmente compatible con CD-ROM drive Funciona porque el material tiene diferente reflectividad en distintas fases
DVD
La sigla…
Digital Video Disk • Reproductor de películas
Digital Versatile Disk • Disco genérico para computador
DVD - tecnología
Multi-capa Alta capacidad (4.7G por capa) Película completa en un disco • Compresión MPEG • Codificación x región
Blu-ray
25GB x capa Video de alta definición, PS3
Cinta Magnética (i)
Acceso serial Lento Barato Respaldo, archivo
Ejemplo
7.7 feet 8200 pounds, 1.1 kilowatts 10.7 feet
Robot de almacenamiento StorageTek Powderhorn 9310 6000 x 50 GB 9830 cintas = 300 TBytes (sin comprimir) • Obs: todos los libros de la Biblioteca del Congreso USA son 30 TB ASCII
Puede cambiar 450 cintas por hora 1.7 a 7.7 Mbyte/seg por lectorr, hasta 10 lectores
Cinta Magnética (ii)
Digital Audio Tape (DAT)
Usa cabeza rotativa (como el video) Alta capacidad en cinta pequeña. Originalmente: • 4Gbyte sin comprimir • 8Gbyte comprrimido
Actualmente llega a 20G/40G Respaldo de PCs/servidores
Próxima clase
Rendimiento