Arquitectura de Computadores Tema 15 Buses Eduardo Daniel Cohen dcohen@arnet.com.ar http://www.herrera.unt.edu.ar/arqcom 1
CONCEPTO DE BUS Un Bus es: Un conjunto de cables que se usa para conectar múltiples sistemas. Processor Control Datapath Memory Input Output Un bus constituye una herramienta sistemática de arquitectura para armar sistemas complejos 2
Qué define a un Bus? Protocolo de Transacciones Especificación de Señales y Tiempos Paquete de Cables Especificación Eléctrica Características físicas y mecánicas conectores 3
Características Esenciales Protocolos Standards. Compatibilidad: Aseguran que dispositivos de terceras partes puedan funcionar. Efectividad: asegurar que las transacciones se realicen correctamente. Eficiencia: - Productividad (ancho de banda). - Latencia (tiempo de espera de los dispositivos). Organización. Posibilidad de conectar diversos standards. - Historia: multiplicidad de standards. Mejorar la Eficiencia. - Buses rápidos para dispositivos rápidos. - Ej. Autopistas, Rutas, Avenidas, Calles. 4
Clasificación de Buses Por la cantidad de líneas. Paralelos. Seriales. Por la cantidad de dispositivos conectados. Punto a Punto. Múltiples. Paralelo es más rápido? Consumo de Potencia? Complejidad de la Placa? Pins de los chips? Cantidad de dispositivos en el bus? Ancho de Banda Fijo o Variable? Confiabilidad? 5
Clasificación Por la sincronización de la información. Sincrónicos. - Una línea lleva la señal de reloj (paralelos). - La señal de reloj está implícita en la señal (Seriales). Ej. Manchester. Asincrónicos. - Se incluye señales de sincronización: Handshaking. Buses paralelos rápidos: Pocos dispositivos, similar velocidad. Sincrónicos (control simple y rápido). Buses paralelos lentos: Multiplicidad de dispositivos y velocidades. Asincrónicos. 6
Buses Paralelos CPU I/O Device I/O Device I/O Device Memory Para mejorar velocidad: Sacrificar número de dispositivos. Complicar cableado (pares retorcidos). Incrementar Consumo (mejorar señal/ruido). Ventaja Simplicidad. Un único conjunto de cables que se comparten. 7
Enlaces Seriales Punto a Punto Conectores dedicados a cada dispositivo. Frecuencias Mayores. D1 Conmutación de Paquetes. Para qué? Ancho de Banda Variable. Más Pistas al más rápido. Pistas independientes D4 4 Port Switch D2 - No hay carreras (skew). Menos pins por chip. D3 Latencia baja en el link. No tanto entre Switchs. Es modular? Es eficiente? (consumo vs ancho de banda). 8
Ejemplos de Standards El ancho de banda se mide en base 10, ej 1GB/s = 10 9 bytes/seg Ejemplos de Buses Frecuencia Ancho (MHz) (bits) Ancho de Banda Comentarios PCI-X 66 a 533 32-64 hasta 4,2 GB/s Basado en Bus, Paralelo, Sincrónico PCI Express 2,5 Gbps Hasta 32 hasta 8 GB/s Punto a Punto 5 para V 2.0 pistas 16 para V 2.0 Hypertransport 200-2600 2-32 hasta 20,8 GB/s Punto a Punto DDR ATA 66 16 hasta 133 MB/s Basado en Bus, Paralelo SATA 1 1.5 a 3 Gb/s Punto a Punto USB2 1 hasta 480 Mb/s Distribuye Potencia, 5m ATA advanced technology attach. 9
Tendencia Mayor parte de los sistemas están migrando: De paralelo a serie. - FSB a Hypertransport. - PCI, PCI-X a PCI Express (PCIe) - ATA a SATA - SCASI a SAS. Todavía y por mucho tiempo habrá una mezcla Buses Paralelos. Nexos Seriales. 10
Arquitectura Server North/South Bridge: Intel 5000 Chip Set DIMM Xeon 5300 Xeon 5300 FB DDR2 667 5,3 GB/seg North Bridge FSB: 10,5 GB/s Servidor Cada Socket: 4 CPUs. PCIe x16 (o 2 PCIe x 8) 4 GB/s ESI (Enterprise Southbridge Interface) 2 GB/seg PCIe x 8 2 GB/sec Disco 6 SATA 300 MB/s c/u South Bridge 2 PCIe x 4 1 GB/sec c/u 2 PCI-X 1 GB/s c/u LPC (Low Pin count) 1 MB/s Teclado / Mouse CD/DVD Parallel ATA (100 MB/s) 60 MB/s Hasta 5 USB 2.0 www.sun.com/servers/x64/x4150 11
Sistema de E/S Problemas Típicos Validar configuración frente a requerimientos. Ver cuellos de botella y comparar con requisitos. En función de configuración, encontrar productividad máxima. 12
Ejemplo Validación Configuración Server presentada (libro pp 610): Cada Procesador procesa 10 9 instruc/seg. (hay 8) Cada Operación E/S requiere 200.000 instrucciones del programa de usuario. El SO debe ejecutar 100.000 instrucciones por cada operación E/S. Cada operación E/S consiste en lecturas de 64 KB. 8 Discos SAS (serial SCASI), en cluster. Conectados a un PCIex8 a la salida de North Bridge. Suponga: - Seek t. = 2,9 ms, 15.000 rpm, 112 MB/s sustained transfer rate. - Localidad 0,25 seek time Una operación siempre se puede realizar en un disco libre (si existe). El controlador RAID no es cuello de botella. 13
Validación I Cant Operaciones máxima por cada Procesador. 10 9 /(200+100)x10 3 = 3.333 Ops/seg 8 Procesadores 26.667 Ops/seg Por cada disco. Si las lecturas fueran al azar: - Seek + latencia + transfer = 2,9. 0,25 + 2 + 64K/112MB/s = 3,3 ms. - Cada disco 1 ops/3,3ms = 303 ops/seg - 8 Discos = 8 x 303 = 2420 ops/seg Peor caso todas las lecturas seguidas: - Ops/seg = transfer rate / tamaño op = 112 MBs/64KB = 1750-8 Discos 14.000 Ops/seg. Conclusión: Los procesadores aguantan. Aguantan los buses y Mem? 14
Validación II De discos a North Bridge PCIex8 2 GB/s Cada OP = 64KB ops/seg = 2 G/64K = 31250 Ops/seg Comparando con un máx. de ops de discos de 14000, no es cuello de botella. De NB a DRAM, bus FBDIMM a 5,3 GB/s Ops/seg = 5,3 GBs/64K = 83.000 Ops/seg (aprox). No es cuello de botella con un único DIMM, y hay 4 de estos (4 veces más Ops/seg todavía!). De NB a CPUs hay 10,5 GB/s por supuesto alcanza. Pregunta: esto es para datos, las instrucciones no ocupan buses? 15