top of page
BUSES
UC -4
Bus:
Conjunto de líneas de señal que enlaza la CPU, la memoria y los periféricos de E/S, permitiendo la transferencia de información entre ellos.
– Líneas de dirección: @ de memoria o de puertos de E/S
– Líneas de datos: información a leer o escribir
– Líneas de control:
operaciones a realizar: lectura, escritura, ...
control de transferencia: protocolo y temporización
arbitraje: determina qué dispositivo utiliza el bus (CPU, DMA, dispositivos E/S,...) en caso de conflicto
Funcionamiento general: el dispositivo debe obtener el uso del bus y transferir el dato a través del bus, todo ello siguiendo un determinado protocolo
Operaciones en un bus: lectura/escritura (dato/bloque), Read- Modify-Write, etc.
Introducción: definiciones
• Ciclo de bus: tiempo necesario para realizar una transferencia elemental de un dato entre dos dispositivos.
Operación básica del bus
Etapas: petición del bus, arbitraje, direccionamiento, transferencia, detección de error, notificación
• Anchura del bus: número de líneas de datos en el bus
• Ancho de banda del bus: parámetro que expresa el máximo número de elementos de información (bytes) que se pueden transmitir por el bus en unidad de tiempo
– Ejemplo: 1 MB/s ®106 bytes/s
– Velocidad de transmisión: longitud, medio físico, lógica de control, etc.
• Protocolo del bus: pautas que tienen que seguir los dispositivos conectados al bus para lograr una comunicación correcta
Maestro y esclavo:
– Dispositivo maestro (master): capaz de iniciar una transferencia de bus ya que es el dueño del bus
– Dispositivo esclavo (slave): dispositivo pasivo, que espera peticiones
Ejemplos:
-
Maestro Esclavo Operación
-
CPU Memoria Búsqueda de inst. y datos
-
CPU Dispositivos E/S Inicializar transferencia
-
DMA Memoria Transferencia de datos
– Relación dinámica: el dispositivo A puede ser maestro en una transferencia, pero esclavo en otra. Por ejemplo, el controlador de DMA.
Introducción: jerarquía de buses
• Bus interno: comunicación interna dentro de la CPU
• Bus del procesador: fundamentalmente, comunicación entre la CPU
y la cache externa. Ejemplo: bus 400 MHz del P4
– Poca longitud y alta velocidad
– Específicos para cada sistema (señales del procesador)
• Bus local: buses para la conexión procesador/DRAM y dispositivos
de E/S con altas prestaciones. Pueden ser buses de carácter general,
como el PCI, o dedicados, como IDE, SCSI, AGP, USB...
• Bus de expansión: conexión de dispositivo de E/S con menores
prestaciones (fax, puerto serie, modems,…). Ejemplo: ISA, MCA
– Gran número de dispositivos diferentes, con ancho de banda variable
• Bus del sistema: conexión entre distintos sistemas procesador que
forman un mismo sistema. Ejemplo: VME
Temporización
Protocolo de Transmisión
• Forma en la que se coordinan los eventos en el bus para garantizar que la transmisión sea correcta.
• Dos tipos básicos de protocolos: síncrono y asíncrono
• Protocolo síncrono: fácil de implementar, pero con poca flexibilidad (dispositivos con diferentes velocidades).
-Buses cortos (bus skew). Mayor ancho de banda.
• Protocolo asíncrono: permite adaptar la transferencia a la
velocidad del dispositivo, compagina dispositivos lentos y rápidos.
Bus síncrono
– Transferencias controladas por una señal de reloj en el bus
– Una transferencia requiere un número entero de ciclos
Ejemplo de protocolo:
• TAD: tiempo máximo que transcurre entre el flanco ascendente de reloj del primer ciclo y la estabilización de la dirección
• TDS: los datos leídos deben estar en el bus al menos 50 ns antes del flanco descendente del tercer ciclo, para que se estabilicen antes de que se lean
• TM y TRL: indican que las señales IO/M.L y RD/WR.L deben activarse en los primeros 85 ns que transcurren después del flanco de bajada del primer ciclo
Bus asíncrono
• No existe señal de reloj en el bus. La comunicación entre
dispositivos se realiza mediante una “conversación” (handshake)
entre ambos, en base a dos nuevas señales: MSYN.L (master
synchronization) y SSYN.L (slave synchronization)
– El maestro activa las señales de dirección y control (p.e., lectura mem.)
– Tras un breve intervalo de estabilización de las señales, activa la señal
MSYN.L, indicando la presencia de señales de dirección y control válidas
– Tras un tiempo no determinado a priori, el esclavo proporciona los datos y
activa la señal SSYN.L para indicar que los datos están listos
– El maestro recoge los datos y desactiva MSYN.L
– El esclavo desactiva SSYN.L
Multiplexación de los buses
• Se utilizan las mismas líneas para enviar más de un tipo de
señal: por ejemplo, direcciones y datos
®las líneas del bus se multiplexan en el tiempo
• Nueva señal: ALE (Address Latch Enable), que indica qué es lo
que en ese momento se envía por las líneas multiplexadas
• La multiplexación de las líneas de datos o dirección tiene como
objetivo aumentar las prestaciones del bus con poco coste:
– Aumentar el espacio de direccionamiento: si se multiplexan las líneas de datos, se pueden utilizar estas líneas para aumentar el número de bits para las direcciones
– Aumentar el ancho de banda: si se multiplexan las líneas de dirección,
se pueden utilizar estas líneas para transferir datos simultáneamente
El hardware es más sencillo, pero el protocolo es más lento (no
se puede enviar toda la información en paralelo)
Arbitraje del bus
• Si existen varios dispositivos maestros en un bus, ¿qué maestro
puede utilizar el bus en caso de peticiones simultáneas? ¿cómo
se gestionan las prioridades en el acceso al bus?
• Todos los protocolos trabajan básicamente con 3 señales:
– Petición de bus (Bus Request): es activada por el dispositivo
que requiere el acceso al bus
– Concesión de bus (Bus Grant): señal que envía el árbitro del bus al dispositivo para indicarle que tiene concedido el uso del bus
– Bus ocupado (Busy): una vez que el dispositivo tiene concedido el uso del bus, activa esta señal para tomar el control del bus

bottom of page