Title: Tema 4' Caractersticas y protocolos de los buses
1Tema 4. Características y protocolos de los buses
Estructura y Tecnología de Computadores Módulo C.
Buses del computador
CONTENIDOS 1. Introducción Definición de bus.
Modo de operación. Parámetros de caracterización.
2. Clasificación de las líneas del bus Según su
función. Según su uso. Según sus características
eléctricas 3. Protocolos de transferencia Función
. Protocolo síncrono. Protocolo asíncrono.
Protocolo semisíncrono. Protocolo de ciclo
partido 4. Protocolos de arbitraje Función.
Protocolos centralizados vs. protocolos
distribuídos. Protocolo en estrella. Protocolo
daisy-chain de 2 hilos. Protocolo de 3 hilos.
Protocolo de 4 hilos. Protocolo de líneas de
identificación. Protocolo de códigos de
identificación 5. Ejemplos MC68000. i8086
21. introducción
Un bus es un medio de transmisión compartido que
interconecta dos o más dispositivos de un sistema
digital
- Función permitir la correcta comunicación entre
los dispositivos interconectados
- Constitución
- Conjunto de líneas (conductores eléctricos)
compartidas por todos los dispositivos - Cualquier señal transmitida por un dispositivo
está disponible para los demás - Si dos dispositivos transmiten simultáneamente
las señales se solapan y la información
resultante es inválida - Conexiones en paralelo varias señales viajan
juntas sobre distintas líneas
31. introducción
Modo de operació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
DATO
Slave
Master
DATO
Slave
Master
41. introducción
Parámetros de caracterizació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 12 Gb/s AlphaServer 8000 21 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
52. clasificación de las líneas del bus
según su función
- 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
según su uso
- Líneas dedicadas tienen asignada una única
función - Líneas multiplexadas realizan distintas
funciones a lo largo del tiempo - Ventajas menor número de líneas ? ahorra espacio
? menor coste - Desventajas Circuitería más compleja y menor
rendimiento (las funciones que realizan las
líneas multiplexadas no pueden realizarse en
paralelo)
62. clasificación de las líneas del bus
según sus características eléctricas
- 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)
73. 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
83. protocolos de transferencia
Tipos de transferencia
Data
Access Time
93. protocolos de transferencia
Protocolo síncrono
- 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
Ciclo
Ciclo
Ciclo
Reloj
Dirección
MS
SM
MS
Datos
ESCRITURA
LECTURA
ESCRITURA
tiempo que debe ser superior a t. decodificación
t. setup t. skew
tiempo que debe ser superior a t. setup t. skew
tiempo que debe ser superior a t. hold
103. 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
Retardo Relativo (Skew)
Destino
Origen
A0
Ventajas y desventajas del protocolo síncrono
skew
A1
- Ventajas
- Simplicidad (de diseño y de uso)
- Sólo se necesita una señal (reloj) para llevar a
cabo la sincronización - Mayor velocidad (en relación a protocolo
asíncrono) - Desventajas
- El periodo de reloj se tiene que adaptar a la
velocidad del dispositivo más lento (por lo que
suele usarse para conectar dispositivos
homogéneos) - No existe confirmación de la recepción de los
datos - La necesidad de distribuir la señal de reloj
limita la longitud del bus - Ejemplos MC6800, MC6809
113. protocolos de transferencia
Protocolo asíncrono
- 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)
Dirección
3
1'
3'
1
Master SYNC
Slave SYNC
2
4
2'
4'
Datos
MS
SM
ESCRITURA
LECTURA
estabilización decodificación desplazamiento
relativo
Tiempos de
estabilización desplazamiento relativo
Tiempos de
123. protocolos de transferencia
Ventajas y desventajas del protocolo asíncrono
- 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
133. protocolos de transferencia
Protocolo semisíncrono
- 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
Reloj
Dirección
MS
MS
SM
SM
Datos
WAIT
ESCRITURA NORMAL
ESCRITURA LENTA
LECTURA NORMAL
LECTURA LENTA
143. protocolos de transferencia
Protocolo de ciclo partido
- 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
154. 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
164. protocolos de arbitraje
Protocolo en estrella
- 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
- Varias peticiones de bus pendientes el árbitro
puede aplicar distintos algoritmos de decisión - FIFO
- Prioridad fija
- Prioridad variable
- Ventajas
- Algoritmos de arbitraje simples
- Pocos retardos de propagación de las señales (en
comparación con protocolos daisy-chain) - Desventajas
- Número elevado de líneas de arbitraje en el bus
(dos por cada posible master) - Número de masters alternativos limitado por el
número de líneas de arbitraje - Ejemplo PCI
174. protocolos de arbitraje
Protocolo daisy-chain de 2 hilos
- Dos líneas de arbitraje comunes
- BUS REQUEST Línea de petición del bus
- BUS GRANT Línea de concesión del bus
- Funcionamiento
- El master que quiere tomar el control del bus
activa REQUEST - Los restantes masters propagan REQUEST hasta el
árbitro - El árbitro activa GRANT
- Si un master recibe GRANT y no pidió el bus,
propaga GRANT al siguiente - Si un master recibe GRANT y tiene una petición
pendiente, toma el control del bus - Prioridades
- El orden en que se conectan los Masters a las
líneas de arbitraje determina la prioridad de los
mismos - Ejemplo bus i8086
Situaciones típicas 1) Mk pide el Bus Cuando
Mk recibe GRANT toma el control del bus 2) Mk
recibe una petición de Mk1 Cuando Mk recibe
GRANT la propaga a Mk1 3) Mk pide el
bus Cuando Mk recibe GRANT toma el control del
bus Mientras Mk controla el bus, recibe una
petición de Mk1 Cuando Mk termina de usar el
bus, propaga GRANT a Mk1
184. protocolos de arbitraje
Protocolo daisy-chain de 2 hilos (cont)
Situación conflictiva 1 1) M2 pide el Bus 2) M2
detecta GRANT IN y toma el control del bus 3) M1
pide el bus. M1 detecta GRANT IN y toma el
control del bus Solución Un master sólo puede
tomar el control del bus cuando detecta el flanco
de subida de GRANT IN
Situación conflictiva 2 1) M2 controla el
bus 2) Cuando M2 deja de controlar el bus, a)
M1 pide el control b) M3 pide el
control 3) Como M2 tiene GRANT IN todavía
activada M2 propaga GRANT a M3, que toma el
control 4) Al mismo tiempo M1 recibe GRANT in
del árbitro y M1 toma el control Solución Un
master Mi sólo puede propagar GRANT al terminar
de usar el bus, si REQUEST IN se activó antes de
que Mi desactivase su petición local
Petición local
Petición local Control del bus
194. protocolos de arbitraje
Protocolo de 3 hilos
- 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
- Funcionamiento
- Cuando un master toma el control del bus activa
BUS BUSY - Un master solicita el bus activando REQUEST
- El árbitro activa GRANT cuando detecta REQUEST
activado y BUS BUSY desactivado - Si un master recibe GRANT y no ha pedido el bus,
entonces propaga GRANT al siguiente - Un master puede tomar el control del bus si se
cumplen las tres condiciones siguientes - a) El master tiene una petición local pendiente
- b) La línea BUS BUSY está inactiva
- c) El master recibe el flanco de subida de la
señal GRANT - Ejemplo VME
204. protocolos de arbitraje
Protocolo de 3 hilos (cont)
Situaciones típicas 1) M1 solicita el bus. Bus
libre Cuando M1 detecta el flanco de GRANT toma
el control del bus 2) M2 solicita el bus. Bus
ocupado M2 debe esperar bus libre y detectar
el flanco de GRANT 3) M1 solicita el bus. Bus
libre. GRANT activado M1 debe esperar que GRANT
baje y vuelva a subir
214. protocolos de arbitraje
Protocolo de 4 hilos
- 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
224. protocolos de arbitraje
Protocolo de líneas de identificación
- 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)ltPrioridad(ID1)lt ....lt
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
234. protocolos de arbitraje
Protocolo de códigos de identificación
- 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
Siendo k ? 2n
245. ejemplos MC68000
- 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)
255. ejemplos MC68000
Ciclo de escritura
Ciclo de lectura
265. ejemplos MC68000
- 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
275. ejemplos i8086
- 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
285. ejemplos i8086
Ciclo de lectura T1 - Master pone la
dirección - Master activa ALE T2 - Master
pone el bus de datos en "estado flotante"
- Master desactiva ALE T3 - Slave pone el
dato - Slave activa READY - Master copia el
dato T4 - Master prepara bus para siguiente
transferencia Ciclo de escritura T1 - Master
pone la dirección - Master activa ALE T2 -
Master pone el dato T3 - Slave copia
datos - Slave activa READY T4 - Master
prepara bus para siguiente transferencia Ciclo
s Twait Son ciclos de espera que introduce el
master si el slave desactiva READY durante
T2
295. ejemplos i8086
Arbitraje 1) El master alternativo activa
HOLD 2) El i8086 finaliza el ciclo de bus actual
y activa HLDA para indicar que el bus estará
libre en el siguiente ciclo de reloj 3) El master
alternativo desactiva HOLD y toma el control del
bus durante un ciclo de bus