1 / 28

Tema 4. Caracter sticas y protocolos de los buses

2. 1. introducci

salim
Download Presentation

Tema 4. Caracter sticas y protocolos de los buses

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    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 GRANT BGACK* (Bus Grant Acknowledge): equivale a BUS ACK Las 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 WAIT Activada 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

More Related