E N D
1. 1 Tema 4. Características y protocolos de los buses
2. 2 1. introducción Función: permitir la correcta comunicación entre los dispositivos interconectados
3. 3 1. introducción Elementos implicados en una transferencia:
Bus master: Inicia y dirige las transferencias (CPU, DMA, ...)
Bus slave: Obedece y accede a las peticiones del master (memoria, interfaz E/S, ...)
Tipos básicos de transferencia:
Escritura:
Lectura:
Ciclo de bus: cualquier transferencia completa
Operaciones básicas:
1. Direccionamiento del slave
2. Especificación del tipo de operación (lectura o escritura)
3. Transferencia del dato
4. Finalización del ciclo de bus
Control de la transferencia:
Sincronización: determinar el inicio y el final de cada transferencia
Arbitraje: controlar del acceso al bus en caso de varios masters
4. 4 1. introducción Capacidad de conexión: número máximo de dispositivos conectables
Longitud de bus: máxima distancia que puede separar a dos dispositivos conectados
Ancho de bus: número total de líneas
ejemplos: i8086: 40; MC68000: 64; Multibus II: 96; VME: 128
Ancho de datos: número total de líneas para datos
Ancho de banda: caudal máximo de información que puede transmitirse
ejemplos: VME: 40 Mb/s; PCI: 132 Mb/s; POWERpath-2: 1’2 Gb/s; AlphaServer 8000: 2’1 Gb/s
Protocolo de transferencia o de sincronización: método utilizado para sincronizar master y slave
Protocolo de arbitraje: método utilizado para la resolución de conflictos de acceso por varios masters
5. 5 2. clasificación de las líneas del bus Líneas de datos (bus de datos): transmiten datos
Líneas de direcciones (bus de direcciones): designan la fuente o el destino de un dato
Líneas de control: gobiernan el acceso y el uso de las líneas de datos y direcciones
Líneas de operación: determinan el tipo de operación que debe realizar el slave
Líneas de sincronización: determinan el comienzo y final de cada transferencia
Líneas de arbitraje: determinan cual de los elementos conectados puede usar el bus
6. 6 2. clasificación de las líneas del bus Líneas unidireccionales con un transmisor y múltiples receptores
En cada instante, sólo un dispositivo puede escribir sobre la línea
Ejemplo: líneas de dirección
Tipo de driver: TRI-STATE (tres estados de salida: high, low, off)
Líneas unidireccionales con múltiples transmisores y un receptor
Múltiples dispositivos pueden escribir sobre la línea de forma simultánea
Señal resultante: O-lógica (cableada) de las distintas fuentes
Ejemplo: líneas de petición de interrupción
Tipo de driver: OPEN-COLLECTOR (dos estados de salida: activo e inactivo)
Líneas bidireccionales
Un mismo dispositivo puede transmitir o recibir a través de las líneas
Ejemplo: líneas de datos
Tipo de driver: TRANSCEIVER (tiene capacidad para transmitir o recibir)
7. 7 3. protocolos de transferencia Función:
Sincronizar los elementos implicados en una transferencia (master y slave)
Determinar el comienzo y el final de cada transferencia
Tipos de transferencia:
Lectura
Escritura
Lectura de bloque
Escritura de bloque
Lectura-modificación-escritura
Lectura después de escritura
Tipos de protocolos de transferencia:
Síncrono
Asíncrono
Semisíncrono
Ciclo partido
8. 8 3. protocolos de transferencia
9. 9 3. protocolos de transferencia Las transferencias están gobernadas por una única señal de reloj compartida por todos los dispositivos
Cada transferencia se realiza en un número fijo de periodos de reloj (1 en el ejemplo)
Los flancos del reloj (de bajada en el ejemplo) determinan el comienzo de un nuevo ciclo de bus y el final del ciclo anterior
10. 10 3. protocolos de transferencia Temporización:
Tiempo de decodificación (decode time): tiempo necesario para que slave decodifique la dirección
Tiempo de estabilización (setup time): tiempo antes del flanco de reloj que deben permanecer estables las señales para asegurar su correcto almacenamiento
Tiempo de permanencia (hold time): tiempo después del flanco de reloj que deben permanecer estables las señales para asegurar su correcto almacenamiento
Tiempo de desplazamiento relativo de las señales (skew time): diferencia de tiempo entre la llegadas al receptor de dos señales que partieron del emisor simultáneamente
11. 11 No existe señal de reloj
Los dispositivos implicados en la transmisión fijan el comienzo y el final de la misma mediante el intercambio de señales de control (handshake)
Se utilizan 2 señales de sincronización:
Master SYNC (procedente del master)
Slave SYNC (procedente del slave)
Protocolo completamente interbloqueado:
A cada flanco del master le sigue uno del slave
Ciclo de escritura:
1: (M a S) Hay un dato en el bus
2: (S a M) He tomado el dato
3: (M a S) Veo que lo has tomado
4: (S a M) Veo que lo has visto (Bus libre)
Ciclo de lectura:
1': (M a S) Quiero un dato
2': (S a M) El dato está en el bus
3': (M a S) He tomado el dato
4': (S a M) Veo que lo has tomado (Bus libre) 3. protocolos de transferencia
12. 12 3. protocolos de transferencia Ventajas:
Facilidad para conectar elementos de diferentes velocidades
Fiabilidad: la recepción siempre se confirma.
Desventajas:
El intercambio de señales de control introduce retardos adicionales
A igualdad de velocidades de los dispositivos, menos eficiente que el síncrono
Ejemplos: Unibus (PDP-11), MC680XX(10,20,30), Bus VME, FutureBus+
13. 13 Las transferencias se rigen por una única señal de reloj
Cada transferencia puede ocupar uno o varios periodos de reloj
Señal de WAIT (puede activarla cualquier Slave sin no es capaz de realizar la transf. en 1 solo ciclo)
Dispositivos rápidos: operan como en un bus síncrono (una transferencia por ciclo)
Dispositivos lentos: activan la señal de WAIT y congelan actuación del Master (una transferencia puede ocupar varios ciclos)
Ejemplos: i80x86, MC68040, Multibus II, Bus PCI, DEC 7000/10000 AXP 3. protocolos de transferencia
14. 14 Mejora el rendimiento del bus en las operaciones de lectura
El ciclo de lectura se divide en dos transacciones separadas
El Master envía al Slave la petición de lectura y deja el bus libre
Cuando el Slave dispone del dato solicitado, inicia un ciclo de bus y envía el dato al Master (Slave actúa como master del bus)
Desventajas:
Lógica más compleja: ambos dispositivos deben ser capaces de actuar como Master y como Slave
Necesidad de incluir un protocolo de arbitraje
Ejemplos: VAX-11/780, iAPX-432 3. protocolos de transferencia
15. 15 4. protocolos de arbitraje Función:
Garantizar el acceso al bus libre de conflictos cuando existen varios masters alternativos
Procesador + Controladores DMA
Procesador + Procesador de E/S + Coprocesador matemático + ...
Sistema multiprocesador
Tipos de protocolos de arbitraje
Centralizados: existe un árbitro del bus o master principal que controla el acceso al bus
Protocolo en estrella
Protocolo daisy-chain de dos hilos
Protocolo de tres hilos
Protocolo de cuatro hilos
Distribuidos: el control de acceso al bus se lleva a cabo entre todos los posibles masters de una forma cooperante
Protocolo de líneas de identificación
Protocolo de códigos de identificación
16. 16 4. protocolos de arbitraje Cada master se conecta al árbitro mediante dos líneas individuales:
BUS REQUEST (REQ): línea de petición del bus
BUS GRANT (GNT): línea de concesión del bus
17. 17 4. protocolos de arbitraje
18. 18 4. protocolos de arbitraje
19. 19 4. protocolos de arbitraje Líneas de arbitraje:
BUS REQUEST: línea de petición de bus
BUS GRANT: línea de concesión del bus
BUS BUSY: línea de bus ocupado
20. 20 4. protocolos de arbitraje
21. 21 4. protocolos de arbitraje Permite solapar la transferencia del ciclo actual con el arbitraje del ciclo siguiente
Líneas de arbitraje:
BUS REQUEST: línea de petición de bus
BUS GRANT: línea de concesión del bus
BUS BUSY: línea de bus ocupado
BUS ACK: línea de confirmación
La activa el master que solicitó el bus en respuesta BUS GRANT, cuando el bus está ocupado
Cuando está activada el árbitro queda inhibido
Ejemplo: Unibus (PDP-11), MC68000
22. 22 4. protocolos de arbitraje Funcionamiento:
Cuando un master quiere tomar el control del bus activa su línea de identificación
Cada línea de identificación tiene asignada una prioridad: Prioridad(ID0)<Prioridad(ID1)< ....< Prioridad(IDn-1)
Si varios masters activan simultáneamente sus líneas de identificación, gana el de mayor prioridad
Funcionamiento alternativo: las prioridades pueden ser variables
Desventajas:
Número de dispositivos limitado por el número de líneas de arbitraje
Ejemplos:
Prioridad fija: VAX SBI, SCSI
Prioridad variable: DEC 70000/10000 AXP, AlphaServer 8000
23. 23 4. protocolos de arbitraje Funcionamiento:
Cada master tiene un código de identificación de n bits (máximo 2n masters)
Existen n líneas de arbitraje: ARB0, ARB1, ..., ARBn-1
Cuando un master quiere tomar el control del bus pone su código en las n líneas de arbitraje
Si varios masters compiten por el bus, gana el de mayor identificador
Ejemplos: Multibus II, Futurebus+
24. 24
Bus datos (16 bits)
líneas D0-D15
Bus de direcciones (24 bits)
líneas A1-A23 (no existe línea A0)
LDS* (Lower Data Strobe)Selecciona el byte menos significativo
UDS* (Upper Data Strobe)Selecciona el byte más significativo
Control de operación:
R/W* (Read/Write)
1 ? Lectura; 0 ? Escritura
Protocolo de transferencia asíncrono:
AS* (Address Strobe): equivale a MASTER SYNC
DTACK* (Data Transfer Acknowledge): equivale a SLAVE SYNC
Protocolo de arbitraje de 4 hilos con MC68000 como arbitro:
BR* (Bus Request): equivale a BUS REQUEST
BG* (Bus Grant): equivale a BUS GRANTBGACK* (Bus Grant Acknowledge): equivale a BUS ACKLas señales AS* y DTACK*: hacen la función de BUS BUSY (si están activadas indican que el bus está ocupado)
El MC68000 utiliza un reloj interno para marcar el inicio de todas las operaciones que realiza sobre el bus, este reloj NO es compartido por los slaves (el protocolo es asíncrono)
5. ejemplos: MC68000
25. 25 5. ejemplos: MC68000
26. 26
NOTA: El MC68000 es a la vez master y árbitro. Por defecto tiene control del bus y por ello AS* y DTACK* (que actúan como BUS BUSY) están habitualmente activadas. Cuando otro master alternativo desea utilizar el bus, el MC68000 solapa el arbitraje con la transferencia actual.
Arbitraje:
1) el master alternativo activa BR*
2) el MC68000 activa BG* para indicar que el bus estará libre al final del ciclo actual (cuando se desactiven AS* y DTACK*)
3) cuando el master alternativo controla el bus activa BGACK*, y el árbitro responde desactivando BG*
4) el control del bus retorna al MC68000 cuando el master alternativo desactiva BACK* 5. ejemplos: MC68000
27. 27 Bus de datos (16 bits)
multiplexado con parte baja de bus
de direcciones
líneas AD0-AD15
Bus de direcciones (20 bits)
líneas AD0-AD15/A16-A19
Control de operación:
RD*: lectura
WR*: escritura
MEM/IO*
1 ? con memoria; 0 ? con E/S
ALE (Address Latch Enable)Dirección válida
Protocolo de transferencia semisíncrono:
CLK: reloj
ciclo de bus = 4 ciclos de reloj mínimo
READY: equivale a WAITActivada al inicio de cada transferencia, la desactiva el slave si no puede completar la transferencia en el tiempo mínimo (4 ciclos)
Protocolo de arbitraje de 2 hilos:
HOLD: equivale a REQUEST
HLDA: equivale a GRANT 5. ejemplos: i8086
28. 28 5. ejemplos: i8086
29. 29 5. ejemplos: i8086