La comunicación entre las distintas unidades funcionales de un computador es esencial. Para ello, se utilizan líneas de interconexión, siendo los buses el medio más común.
Tipos de Transferencias
- Procesador-Memoria
- Procesador-E/S
- Memoria-E/S (DMA)
Buses: Concepto y Características
Un bus es un canal de comunicación compartido que utiliza un conjunto de líneas para conectar múltiples subsistemas. Cada línea transmite un único bit de información en un momento dado.
Ventaja: Versatilidad y bajo coste.
Desventaja: Cuello de botella, limitando la productividad del sistema.
Características Deseables de un Bus
- Heterogeneidad
- Escalabilidad
- Baja Latencia
- Alto Ancho de Banda
Principal Problema en el Diseño de Buses
La velocidad máxima y el rendimiento están limitados por factores físicos (longitud del bus y número de dispositivos conectados) y la necesidad de soportar dispositivos con diferentes latencias y anchos de banda.
Estructura del Bus
Las líneas de un bus se clasifican en tres grupos funcionales:
- Líneas de Datos: Transmiten datos entre módulos.
- Líneas de Dirección: Designan la fuente o destino de los datos.
- Líneas de Control: Gestionan el acceso y uso de las líneas de datos y dirección.
Clasificación según Características Eléctricas
- Unidireccionales con un transmisor y múltiples receptores.
- Unidireccionales con múltiples transmisores y un único receptor.
- Bidireccionales.
Uso Básico del Bus
Para enviar un dato, un módulo debe obtener el uso del bus y transferir el dato. Para solicitar un dato, debe obtener el bus, transferir la petición y esperar la respuesta.
Clases de Buses y Jerarquías
- Bus Procesador-Memoria
- Bus E/S
- Bus Backplane o Mezzanini (ej. PCI)
Para evitar cuellos de botella, se utilizan configuraciones con múltiples buses organizados jerárquicamente.
Diseño de un Bus
Aspectos a considerar en el diseño de un bus:
- Tipo de Bus: Dedicado, multiplexado.
- Anchura de Bus: Dirección, datos.
- Temporización: Síncrono, asíncrono.
- Número de Maestros de Bus: Uno, varios.
- Método de Arbitraje: Centralizado, distribuido.
- Tipo de Transferencia de Datos: Lectura, escritura, bloque, etc.
Temporización
Bus Síncrono: Utiliza una señal de reloj. Ventajas: alta velocidad, implementación sencilla. Desventajas: no adecuado para dispositivos con grandes diferencias de velocidad.
Bus Asíncrono: No utiliza reloj, se coordina con un protocolo de handshaking. Ventajas: permite conectar dispositivos de diferentes velocidades. Desventajas: más lento.
Esquemas de Arbitraje
Gestionan el uso del bus por múltiples maestros, considerando prioridad e imparcialidad.
Tipos de Transferencia de Datos
- Write (multiplexado/no multiplexado)
- Read (multiplexado/no multiplexado)
- Read-modify-write
- Read-after-write
- Block data transfer
Decisiones de Diseño
Decisión | Alto Rendimiento | Bajo Coste |
---|---|---|
Ancho de Bus | Líneas de datos y dirección independientes | Líneas de datos y dirección multiplexadas |
Ancho de Bus | Más ancho es más rápido | Menos ancho es más barato |
Tamaño Transfers | Transferencia en bloque de múltiples palabras | Transferencia en bloque de una palabra |
Maestros de Bus | Múltiples maestros (requiere arbitraje) | Un único maestro |
Transacción Partida | Sí, aumenta ancho de banda | No, conexión continua más barata |
Temporización | Síncrono | Asíncrono |
Ejemplos de Buses Estándar
- ISA: Obsoleto.
- VESA LOCAL BUS: Acceso directo a memoria.
- PCI: Independiente de la CPU, permite interconexión con otros buses.
- PCI-X, AGP, PCI Express: Evoluciones de PCI.
Interfaz Externa
Interfaz de comunicación entre módulo E/S y periférico.
- Interfaz Paralela vs. Interfaz Serie
- Conexión Punto a Punto vs. Multipunto
Interfaz SCSI
Conexión de múltiples periféricos, interfaz paralela.
Nuevos Estándares en la Interfaz Externa
- USB: Conexión simple, plug and play.
- Firewire: Alto rendimiento, permite trabajo sin host.
- AGP: Canal punto a punto dedicado para gráficos.
- PCI Express: Canales serie punto a punto, sustituto de PCI y AGP.