Está en la página 1de 12

1

Estructura y Tecnología de Computadores

Módulo D. Buses del computador

Tema 7. Jerarquía de buses y buses estándar

José Manuel Mendías Cuadros


Dpto.
Dpto. Arquitectura de Computadores y Automática
Universidad Complutense de Madrid

contenidos

1. Introducción
Problemas del bus único.
2. Jerarquía de buses
Buses local, del sistema y de expansión. Ventajas de la jerarquía de buses. Función del
interfaz de bus. Otras topologías.
3. Especificaciones de un bus estándar
Niveles de especificación
4. Ejemplos
Jerarquía de buses en un PC Pentium. Otros buses estándar

estructura y tecnología de computadores


3

1. introducción
Problema: Cuando queremos conectar un gran número de dispositivos a un mismo bus,
nos encontramos con dos problemas fundamentales
Ö DISMINUCIÓN DEL RENDIMIENTO GLOBAL DEL SISTEMA
Ø Aumenta el retardo de propagación de las señales
ð El bus debe tener mayor longitud para soportar mayor número de dispositivos
ð Las señales de arbitraje (GRANT), si son encadenadas, debe propagarse a través de un
mayor número de posibles masters
Ø El bus puede actuar como un “cuello de botella”
ð Si la demanda de la transferencia es mayor que la capacidad del bus los dispositivos
deberán esperar mucho tiempo para poder transmitir
Ø La diferencia de velocidad de los dispositivos afecta negativamente al rendimiento global
ð En el mismo tiempo que un dispositivo lento realiza una transferencia, uno rápido podría
haber realizado miles de transferencias

Ö INCOMPATIBILIDAD DEL BUS CON LOS DISPOSITIVOS


Ø Existen dispositivos de E/S diseñados para un determinado bus, que son incompatibles con otros
computadores que utilizan un bus distinto
ð Solución ideal: que todos los computadores utilizasen un estándar de bus uniforme
ð Problema: cada fabricante diseña sus propios buses optimizados para sus arquitecturas,
por lo que es muy difícil que todos se pongan de acuerdo

Solución a ambos problemas: Utilizar una jerarquía de buses en lugar de un único bus

estructura y tecnología de computadores

1. introducción
Ejemplo de reducción del rendimiento del sistema de un sistema con bus único
Ö Procesador a 200 MHz (tiempo ciclo = 5 ns)
Ciclo medio por instrucción: CPI = 2 ciclos
Ø Una instrucción tarda en promedio 2 x 5 ns = 10 ns
Ø El computador puede ejecutar ~100 MIPS
Ö El procesador se conecta a la cache y al resto de
dispositivos a través de un único bus del sistema
Ø Cuando se realiza una operación de E/S se detiene
la actividad del procesador, ya que no puede leer
instrucciones de la cache mientras el bus está ocupado
Ö El disco tiene un tiempo de acceso de 10 ms y
una velocidad de transferencia de 10 MB/seg
Ö Queremos realizar una transferencia de 512 KB de disco a memoria
512 KB
Ø Tiempo = 10 ms + 10.000 KB/s = 61,2 ms

Ø En ese tiempo, la CPU podría haber ejecutado:


ð (0,0612 s) x (100 x 106 instruc /s ) = 6,12 millones de instrucciones

estructura y tecnología de computadores


5

2. jerarquía de buses
Bus Local y Bus del Sistema
Buses local, del sistema y de expansión
Ö Buses rápidos, cortos
Bus Local Ö Buses Propietarios (no estándares)
Procesador Cache Memoria Coprocesador Ø Optimizados para la arquitectura
Matemático Ø Nº fijo de dispositivos de
prestaciones conocidas
Bus Sistema

Interfaz con Bus de expansión


Bus Expansión
Ö Buses más largos y lentos
Interfaz bus Ö Bus abierto (estándar)
Adapta las velocidades de ambos buses Ø Accesible por el usuario
Convierte las señales de un bus a otro Ø Nº indeterminado de dispositivos de distintas
prestaciones
Bus Expansión o de E/S

Controlador Adaptador Adaptador Adaptador Adaptador Adaptador


Disco Vídeo Red Fax/módem Puerto serie Puerto paralelo

Monitor Red Módem Ratón Impresora


Disco

estructura y tecnología de computadores

2. jerarquía de buses
Ventajas de la jerarquía de buses
Ö El bus local entre el procesador y la cache aísla el tráfico de E/S del procesador
Ø Se puede transferir información entre la memoria y la E/S sin interrumpir la actividad del procesador
Ö El bus de expansión reduce el tráfico en el bus del sistema
Ø La transferencia entre cache y memoria principal se pueden realizar de forma más eficiente
ð Se pueden realizar una transferencia de memoria cache a memoria principal al mismo tiempo que el interfaz
recibe datos desde un dispositivo de E/S
ð El procesador+cache o el coprocesador tienen la misma “prioridad” en el acceso al bus que todos los
dispositivos conectados al bus de expansión de forma conjunta

Ö Se elimina el problema de la incompatibilidad


Ø El bus local y del sistema suelen ser propietarios (no estándar) y están optimizados para cada
arquitectura particular
Ø Los buses de expansión son buses estándares o abiertos (ISA, EISA, PCI, VME, etc.)
ð Los buses estándares son independientes del computador
ð Estos buses tienen unas características y especificaciones perfectamente definidas
ð Existe una amplia gama de controladores o adaptadores para periféricos compatibles con estos buses
ð La conexión de un controlador a un bus estándar es sencilla y rápida (mediante conectores estándares)
ð Podemos utilizar los mismos controladores y periféricos en otro computador que disponga del mismo bus
estándar

estructura y tecnología de computadores


7

2. jerarquía de buses
Función del interfaz o adaptador de bus
Ö Adaptar las velocidades de ambos buses
Ø El bus del sistema es, en general, más rápido que el bus de expansión
ð El adaptador debe actuar como buffer de almacenamiento intermedio para evitar la pérdida
de datos
Ö Conversión de líneas del bus
Ø Los buses pueden tener utilizar señales distintas para realizar funciones similares
Ø Ejemplos:
1) Líneas de operación distintas
Bus sistema: Una única línea RD/WR*
Bus expansión: Dos líneas READ - WRITE separadas
2) Líneas multiplexadas y dedicadas
Bus sistema: líneas de dirección/datos multiplexadas (AD0, AD15, A16-A19)
Bus expansión: líneas de dirección y datos dedicadas (A0-A19, D0-D15)
3) Distinto número de líneas de datos
Bus sistema: D0-D31
Bus expansión: D0-D15
⇒ El adaptador debe dividir cada transferencia de 32 bits en dos transferencias de 16 bits
4) Distinto protocolo de transferencia
Bus sistema: síncrono
Bus expansión: asíncrono
⇒ El adaptador deberá comunicarse de forma síncrona con el bus del sistema y de forma
asíncrona con el bus de expansión
⇒ El adaptador deberá ser capaz de generar las señales de sincronización adecuadas dependiendo del
bus con el que se comunique
Etc.

estructura y tecnología de computadores

2. jerarquía de buses
Otras topologías: Bus Local
Coprocesador
Buses para dispositivos Procesador Cache Memoria
Matemático
de distinta velocidad
Bus Sistema
Para conexión de dispositivos
de E/S de alta velocidad
Interfaz con
bus alta velocidad
Bus alta velocidad

Para conexión de Interfaz con bus Controlador Adaptador Adaptador Interfaz con bus
expansión 1 Disco Vídeo Red de E/S externo
dispositivos
de E/S lentos
Monitor Red Bus de E/S
Disco
Bus expansión Externo

Para interconectar Disco Disco


Adaptador Adaptador Adaptador
Fax/módem Puerto serie Puerto paralelo discos externos y otros
dispositivos
Módem Ratón Impresora

estructura y tecnología de computadores


9

2. jerarquía de buses
Ventajas de usar buses de expansión de distinta velocidad
Ö Aumenta la eficiencia del sistema
Ø Con un único bus de expansión los dispositivos lentos pueden degradar el rendimiento
ð En el tiempo que un dispositivo lenta realiza una transferencia, uno rápido podría realizar miles
Ø Con varios buses de expansión, para dispositivos de distintas velocidades, un dispositivo rápido
tiene la misma “probabilidad” de acceder al bus que todos los dispositivos lentos conjuntamente

estructura y tecnología de computadores

10

3. especificaciones de un bus estándar


Niveles de especificación
Ö Las especificaciones de un bus estándar deben estar perfectamente definidas y recogidas
en un documento de estandarización
Ö En las especificaciones se distinguen varios niveles:
Ø Nivel eléctrico
ð Valores de las tensiones de alimentación
ð Límites de valores eléctricos de las señales lógicas
ü P. ej. 1 lógico → de 0,2 V a 0,5 V;
0 lógico → de -0,2 V a -0,5 V
Ø Nivel mecánico
ð Forma y tamaño de los conectores
ð Número de contactos del conector
ð Número de dispositivos que soporta
Ø Nivel lógico
ð Funciones a cada señal (bus de datos, bus de direcciones, bus de control)
ð Asignación de señales a los contactos del conector
Ø Nivel de temporización básico
ð Protocolos de transferencia empleados
Ø Nivel de arbitraje
ð Protocolos de arbitraje empleados

estructura y tecnología de computadores


11

4. ejemplos: jerarquía de buses en un PC Pentium

Organización del sistema de buses en un PC


Bus del sistema
Para interconectar la CPU y la memoria

System Bus Adaptador del bus


Para interconectar el bus del sistema
con el bus PCI
Bus PCI de alta velocidad
Para conectar dispositivos
de alta velocidad
Adaptador del bus SCSI
Para interconectar el bus PCI
con el bus SCSI
Bus de E/S externo SCSI
Para interconectar discos externos
y otros dispositivos compatibles SCSI
Adaptador del bus de expansión
Para interconectar el bus PCI
con el bus de expansión (ISA/EISA)
Bus de expansión ISA o EISA
Para interconectar dispositivos
de baja velocidad

estructura y tecnología de computadores

12

4. ejemplos: jerarquía de buses en un PC Pentium

Organización del sistema de buses en un PC

System Bus

estructura y tecnología de computadores


13

4. ejemplos: jerarquía de buses en un PC Pentium

Comparación de las prestaciones de los buses de un PC

Ancho Frec.
Bus Ancho de banda
datos reloj
Sistema 64 100 MHz 800 Mbytes/s bus de sistema
PCI (V 2.0) 32 33 MHz 132 Mbytes/s buses de expansión de alta
PCI (V 2.1) 64 66 MHz 528 Mbytes/s velocidad
EISA 32 8 MHz 32 Mbytes/s buses de expansión de baja
ISA 16 8 MHz 5-8 Mbytes/s velocidad
SCSI-1 8 5 MHz 4 Mbytes/s
buses de E/S externos
SCSI-2 16/32 10 MHz 20/40 Mbytes/s
IDE 16 1.6 MHz 3.18 Mbytes/s
“buses” para conexión de discos
EIDE 16 5.5 MHz 10.6 Mbytes/s
USB Serie -- 12 Mbits/s bus serie

estructura y tecnología de computadores

14

4. ejemplos: jerarquía de buses en un PC Pentium


Bus ISA (Industry Standard Architecture, 1984)
Ö Bus de expansión diseñado para el IBM PC-AT (i80286)
Ø Bus de datos: 16 bits de datos
Ø Bus de direcciones: 24 bits (16 MB direccionables)
Ø Ciclo de reloj: 8 MHz
Ø Velocidad de transferencia máxima: 8 Mbytes/s
Ø Protocolo de bus: semisíncrono
Ø Protocolo de arbitraje: de 2 hilos
Ø Limitaciones
ð Soporte parcial de varios másters (el master alternativo debe ceder el uso del bus periódicamente para
permitir el refresco de la memoria)
ð Con la de los procesadores de 32 bits (i80386 y posteriores) su eficiencia es muy limitada

Bus EISA (Extended Industry Standard Architecture, 1988)


Ö Bus de expansión diseñado para el i80386 (compatible “hacia abajo” con ISA)
Ø Bus de datos: 32 bits de datos
Ø Bus de direcciones: 32 bits (4 GB direccionables)
Ø Ciclo de reloj: 8 MHz
Ø Velocidad de transferencia máxima: 32 Mbytes/s
Ø Protocolo de bus: semisíncrono
Ø Protocolo de arbitraje: de 2 hilos
Ø Limitaciones
ð Con la aparición del procesador i80486 (66 MHz) y la aparición de periféricos de alta velocidad (discos,
redes, vídeo, ...) la utilización de un único bus comienza a ser un cuello de botella

estructura y tecnología de computadores


15

4. ejemplos: jerarquía de buses en un PC Pentium


Bus PCI (Peripheral Component Interconnect Bus, 1993)
Ö Bus de expansión diseñado para el i80486 y Pentium
Ø Bus de datos:
ð Versión 2.0: 32 bits de datos
ð Versión 2.1: 64 bits de datos
Ø Bus de direcciones: 32 bits (4 GB direccionables)
Ø Ciclo de reloj:
ð Versión 2.0: 33 MHz
ð Versión 2.1: 66 MHz
Ø Velocidad de transferencia máxima:
ð Versión 2.0: 132 Mbytes/s
ð Versión 2.1: 528 Mbytes/s
Ø Protocolo de bus: semisíncrono
Ø Protocolo de arbitraje: centralizado en estrella
Ø Otras características
ð Hasta 16 slots de expansión
ð Soporte para gran variedad de controladores de dispositivos de E/S de alta velocidad
ü Vídeo, Sonido, Redes alta velocidad, Adaptadores SCSI, etc.
ð Soporte Plug-and-Play (conecta y listo)
ü Tarjetas controladoras autoconfigurables (línea de interrupción, dirección de E/S, etc.)

estructura y tecnología de computadores

16

4. ejemplos: jerarquía de buses en un PC Pentium


Protocolo de transferencia del bus PCI
Ö Protocolo semisíncrono
Ö Modos de transferencias
Ø Modo ráfaga
ð Se transmite una única palabra a una dirección de memoria o E/S específica
ð Las palabras pueden ser de 1, 2, 3 ó 4 bytes
Ø Modo bloque
ð Se transfiere un bloque de datos desde/hacia posiciones de memoria consecutivas, a partir de
una posición inicial
Ö Lineas del bus
Ø CLK: señal de reloj
Ø AD0-AD31: Líneas multiplexadas de datos y direcciones
Ø C0*-C3*/BE0*-BE3*: Líneas multiplexadas de orden (command) / byte activo (byte enabled)
ð Orden (C0*-C3*): la activa el master durante el primer ciclo de la transferencia para especificar
el tipo de transferencia a realizar
ü Lectura de memoria, escritura de memoria, lectura de E/S, escritura de E/S, etc.
ð Byte activo (BE0*-BE3*): la activa el master durante la transferencia de datos para indicar qué
líneas del bus transportan los datos
ü BE0* activada ⇒ AD0-AD7 transporta datos
ü BE1* activada ⇒ AD8-AD15 transporta datos
ü BE2* activada ⇒ AD16-AD23 transporta datos
ü BE3* activada ⇒ AD24-AD31 transporta datos

estructura y tecnología de computadores


17

4. ejemplos: jerarquía de buses en un PC Pentium


Protocolo de transferencia del bus PCI
Ö Lineas del bus (cont.)
Ø FRAME*: Señal para indicar el comienzo y la duración de una transferencia
ð La activa el master al poner la dirección en el bus para indicar el comienzo de la transferencia
ð Si la transferencia es modo bloque la señal se mantiene activa durante toda la transferencia
del bloque y se desactiva al transferir la última palabra
Ø DEVSEL*: Señal de dispositivo seleccionado (device selected)
ð La activa el slave para indicar que ha reconocido su dirección
Ø TRDY*: Señal de slave preparado (target ready)
ð La activa el slave al inicio de la transferencia junto con DEVSEL*
ð El slave desactiva esta señal en caso de que no pueda completar la transferencia en un solo
ciclo de reloj
Ø IRDY*: Señal de master preparado (initiator ready)
ð La activa el master al inicio de la transferencia
ð El master desactiva esta señal en caso de que no pueda completar la transferencia en un solo
ciclo de reloj
ü Por ejemplo, en caso de que el master se quede accidentalmente sin capacidad de almacenamiento

estructura y tecnología de computadores

18

4. ejemplos: jerarquía de buses en un PC Pentium


Protocolo de transferencia del bus PCI:
Ejemplo: Lectura de un bloque de 3 palabras

estructura y tecnología de computadores


19

4. ejemplos: jerarquía de buses en un PC Pentium


Protocolo de transferencia del bus PCI:
Ejemplo: Lectura de un bloque de 3 palabras
a El master realiza las siguietes acciones
Ø Pone la dirección en el bus (AD0-AD31)
Ø Indica el tipo de operación a realizar (C0*-C3*)
Ø Activa FRAME* para indicar el inicio de la transferencia
b El slave descodifica y reconoce su dirección en el bus
c El master deja libre el bus de datos e indica en BE0*-BE3* qué líneas transportarán los datos
y activa IRDY* para indicar que está preparado para recibir el 1er dato
d Cuando el slave tiene el 1er dato válido realiza las siguientes acciones
Ø Activa DEVSEL* para indicar ha reconocido su dirección
Ø Pone el dato en el bus y activa TRDY* para indicar que el dato está en el bus
e El master lee el dato
Ø A partir de aquí, mientras esté la señal FRAME* activada, se leerá un dato en cada ciclo de reloj (siempre que el
slave no desactive TRDY*)
f El slave necesita más de 1 ciclo para poner el 2º dato en el bus
Ø Desactiva TRDY* hasta que tiene el nuevo dato preparado
g El master no está preparado para recibir el 3er dato
Ø Desactiva IRDY* hasta que está preparado para poder recibir correctamente el siguiente dato
h Transferencia del último dato
Ø El master desactiva FRAME* para indicar el final de la transferencia del bloque
i El master dsactiva IRDY* y el slave desactiva TRDY* y DEVSEL*
Ø El bus queda libre para la siguiente transferencia

estructura y tecnología de computadores

20

4. ejemplos: jerarquía de buses en un PC Pentium


Protocolo de arbitraje del bus PCI
Ö Protocolo centralizado en estrella
Ø Cada máster se conecta al árbitro mediante 2 líneas dedicadas
ð REQ: petición del bus
ð GNT: concesión del bus
Ø La especificación de PCI no indica un algoritmo de arbitraje particular
ð Pueden utilizarse distintos tipos de algoritmos
ü FIFO
ü Prioridad fija
ü Prioridad variable
ü Rotatorio
ü etc.

Líneas de arbitraje del bus PCI

···
GNT*

GNT*

GNT*
REQ*

REQ*

REQ*

Árbitro
de PCI Dispositivo Dispositivo ··· Dispositivo
PCI PCI PCI

estructura y tecnología de computadores


21

4. ejemplos: otros buses estándar

Bus Multibus I VME Bus Multibus II Nubus FutureBus +


Intel Motorola Intel Western IEEE
Compañía/Año
(1970) (1981) (1983) Digital (1983) (1990)
Ancho Datos 16 8/16/32 32 32 32/64/128/256

Ancho Dirección 24 16/24/32 32 32 32/64


Líneas datos/dir
No No Sí Sí Sí
multiplexadas
Ancho de banda
10 40 40 40 100/200/600/1200
(Mbytes/s)
Protocolo
Asíncrono Asíncrono Semisíncrono Semisíncrono Asíncrono
Sincronización
Protocolo Centralizado Centraliz. Distribuido Distribuido Distribuido o
Arbitraje (2 hilos/estrella) (3 hilos) (cód. de ID) (cód. de ID) Centralizado

estructura y tecnología de computadores

22

4. ejemplos: otros buses estándar


Bus VME (Versatile Module European Bus,1981)
Ö Bus de expansión diseñado por Motorola para equipos basados en MC68000
Ø Bus de datos: 8/16/32 bits (adaptable)
Ø Bus de direcciones: 16/24/32 bits (adaptable)
Ø Protocolo de transferencia: asíncrono
Ø Protocolo de arbitraje: distribuido de 3 hilos con prioridades

Protocolo de transferencia del bus VME


Ö Protocolo de asíncrono similar al de MC68000
Ö Líneas del bus
Ø A1-A31: líneas de dirección (no existe línea A0)
Ø D0-D31: Líneas de datos
ð Tamaño de las transferencias: byte, palabra (16 bits), doble palabra (32 bits)
Ø LWORD*: Long Word
ð Indica que la transferencia es de tamaño doble palabra
Ø DS0*-DS1*: Data Strobe
ð Indica qué líneas del bus transportan los datos en transferencias de tamaño byte y palabra
(similar a LDS*-UDS* del MC68000)
Ø AS*: Address Strobe
ð Indica que el master ha colocado una dirección válida en el bus (señal de Master Sync)
Ø DTACK*: Data Transfer Acknowledge
ð Indica que el slave ha completado la transferencia (señal de SlaveSync)

estructura y tecnología de computadores


23

4. ejemplos: otros buses estándar


Protocolo de arbitraje del bus VME
Ö Arbitraje de tres hilos
Ö Cuatro niveles de petición y concesión de bus de distinta prioridad
Ö Funcionamiento
Ø Peticiones simultáneas por una única línea
ð Igual que el protocolo de tres hilos con un único nivel de petición
Ø Peticiones simultáneas por líneas distintas
ð Se atiende a la de mayor prioridad (BR3>BR2>BR1>BR0)
Ø Si un master controla el bus y se produce una petición más prioritaria, el árbitro activa BCLR
para indicar al master que debe ceder el bus

Líneas de arbitraje del bus VME


BG0out BG0in BG0out BG0in BG: Bus Grant
BG1out BG1in BG1out BG1in BR: Bus Request
BG2out BG2in BG2out BG2in BBSY: Bus Busy
BCLR: Bus Clear
Master 1 BG3out BG3in Master 2 BG3out BG3in Master n
(Arbitro)

BR0
BR1
BR2
BR3
BBSY
BCLR

estructura y tecnología de computadores

También podría gustarte