E N D
1. 1 Tema 4. Caractersticas y protocolos de los buses
2. 2 1. introduccin Funcin: permitir la correcta comunicacin entre los dispositivos interconectados
3. 3 1. introduccin 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 bsicos de transferencia:
Escritura:
Lectura:
Ciclo de bus: cualquier transferencia completa
Operaciones bsicas:
1. Direccionamiento del slave
2. Especificacin del tipo de operacin (lectura o escritura)
3. Transferencia del dato
4. Finalizacin del ciclo de bus
Control de la transferencia:
Sincronizacin: determinar el inicio y el final de cada transferencia
Arbitraje: controlar del acceso al bus en caso de varios masters
4. 4 1. introduccin Capacidad de conexin: nmero mximo de dispositivos conectables
Longitud de bus: mxima distancia que puede separar a dos dispositivos conectados
Ancho de bus: nmero total de lneas
ejemplos: i8086: 40; MC68000: 64; Multibus II: 96; VME: 128
Ancho de datos: nmero total de lneas para datos
Ancho de banda: caudal mximo de informacin que puede transmitirse
ejemplos: VME: 40 Mb/s; PCI: 132 Mb/s; POWERpath-2: 12 Gb/s; AlphaServer 8000: 21 Gb/s
Protocolo de transferencia o de sincronizacin: mtodo utilizado para sincronizar master y slave
Protocolo de arbitraje: mtodo utilizado para la resolucin de conflictos de acceso por varios masters
5. 5 2. clasificacin de las lneas del bus Lneas de datos (bus de datos): transmiten datos
Lneas de direcciones (bus de direcciones): designan la fuente o el destino de un dato
Lneas de control: gobiernan el acceso y el uso de las lneas de datos y direcciones
Lneas de operacin: determinan el tipo de operacin que debe realizar el slave
Lneas de sincronizacin: determinan el comienzo y final de cada transferencia
Lneas de arbitraje: determinan cual de los elementos conectados puede usar el bus
6. 6 2. clasificacin de las lneas del bus Lneas unidireccionales con un transmisor y mltiples receptores
En cada instante, slo un dispositivo puede escribir sobre la lnea
Ejemplo: lneas de direccin
Tipo de driver: TRI-STATE (tres estados de salida: high, low, off)
Lneas unidireccionales con mltiples transmisores y un receptor
Mltiples dispositivos pueden escribir sobre la lnea de forma simultnea
Seal resultante: O-lgica (cableada) de las distintas fuentes
Ejemplo: lneas de peticin de interrupcin
Tipo de driver: OPEN-COLLECTOR (dos estados de salida: activo e inactivo)
Lneas bidireccionales
Un mismo dispositivo puede transmitir o recibir a travs de las lneas
Ejemplo: lneas de datos
Tipo de driver: TRANSCEIVER (tiene capacidad para transmitir o recibir)
7. 7 3. protocolos de transferencia Funcin:
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-modificacin-escritura
Lectura despus de escritura
Tipos de protocolos de transferencia:
Sncrono
Asncrono
Semisncrono
Ciclo partido
8. 8 3. protocolos de transferencia
9. 9 3. protocolos de transferencia Las transferencias estn gobernadas por una nica seal de reloj compartida por todos los dispositivos
Cada transferencia se realiza en un nmero 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 Temporizacin:
Tiempo de decodificacin (decode time): tiempo necesario para que slave decodifique la direccin
Tiempo de estabilizacin (setup time): tiempo antes del flanco de reloj que deben permanecer estables las seales para asegurar su correcto almacenamiento
Tiempo de permanencia (hold time): tiempo despus del flanco de reloj que deben permanecer estables las seales para asegurar su correcto almacenamiento
Tiempo de desplazamiento relativo de las seales (skew time): diferencia de tiempo entre la llegadas al receptor de dos seales que partieron del emisor simultneamente
11. 11 No existe seal de reloj
Los dispositivos implicados en la transmisin fijan el comienzo y el final de la misma mediante el intercambio de seales de control (handshake)
Se utilizan 2 seales de sincronizacin:
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 recepcin siempre se confirma.
Desventajas:
El intercambio de seales de control introduce retardos adicionales
A igualdad de velocidades de los dispositivos, menos eficiente que el sncrono
Ejemplos: Unibus (PDP-11), MC680XX(10,20,30), Bus VME, FutureBus+
13. 13 Las transferencias se rigen por una nica seal de reloj
Cada transferencia puede ocupar uno o varios periodos de reloj
Seal de WAIT (puede activarla cualquier Slave sin no es capaz de realizar la transf. en 1 solo ciclo)
Dispositivos rpidos: operan como en un bus sncrono (una transferencia por ciclo)
Dispositivos lentos: activan la seal de WAIT y congelan actuacin 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 enva al Slave la peticin de lectura y deja el bus libre
Cuando el Slave dispone del dato solicitado, inicia un ciclo de bus y enva el dato al Master (Slave acta como master del bus)
Desventajas:
Lgica ms 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 Funcin:
Garantizar el acceso al bus libre de conflictos cuando existen varios masters alternativos
Procesador + Controladores DMA
Procesador + Procesador de E/S + Coprocesador matemtico + ...
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 lneas de identificacin
Protocolo de cdigos de identificacin
16. 16 4. protocolos de arbitraje Cada master se conecta al rbitro mediante dos lneas individuales:
BUS REQUEST (REQ): lnea de peticin del bus
BUS GRANT (GNT): lnea de concesin del bus
17. 17 4. protocolos de arbitraje
18. 18 4. protocolos de arbitraje
19. 19 4. protocolos de arbitraje Lneas de arbitraje:
BUS REQUEST: lnea de peticin de bus
BUS GRANT: lnea de concesin del bus
BUS BUSY: lnea 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
Lneas de arbitraje:
BUS REQUEST: lnea de peticin de bus
BUS GRANT: lnea de concesin del bus
BUS BUSY: lnea de bus ocupado
BUS ACK: lnea de confirmacin
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 lnea de identificacin
Cada lnea de identificacin tiene asignada una prioridad: Prioridad(ID0)<Prioridad(ID1)< ....< Prioridad(IDn-1)
Si varios masters activan simultneamente sus lneas de identificacin, gana el de mayor prioridad
Funcionamiento alternativo: las prioridades pueden ser variables
Desventajas:
Nmero de dispositivos limitado por el nmero de lneas 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 cdigo de identificacin de n bits (mximo 2n masters)
Existen n lneas de arbitraje: ARB0, ARB1, ..., ARBn-1
Cuando un master quiere tomar el control del bus pone su cdigo en las n lneas de arbitraje
Si varios masters compiten por el bus, gana el de mayor identificador
Ejemplos: Multibus II, Futurebus+
24. 24
Bus datos (16 bits)
lneas D0-D15
Bus de direcciones (24 bits)
lneas A1-A23 (no existe lnea A0)
LDS* (Lower Data Strobe)Selecciona el byte menos significativo
UDS* (Upper Data Strobe)Selecciona el byte ms significativo
Control de operacin:
R/W* (Read/Write)
1 ? Lectura; 0 ? Escritura
Protocolo de transferencia asncrono:
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 seales AS* y DTACK*: hacen la funcin de BUS BUSY (si estn 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 asncrono)
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 actan como BUS BUSY) estn 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
lneas AD0-AD15
Bus de direcciones (20 bits)
lneas AD0-AD15/A16-A19
Control de operacin:
RD*: lectura
WR*: escritura
MEM/IO*
1 ? con memoria; 0 ? con E/S
ALE (Address Latch Enable)Direccin vlida
Protocolo de transferencia semisncrono:
CLK: reloj
ciclo de bus = 4 ciclos de reloj mnimo
READY: equivale a WAITActivada al inicio de cada transferencia, la desactiva el slave si no puede completar la transferencia en el tiempo mnimo (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