1
Estructura y Tecnología de Computadores
Módulo D. Buses del computador Módulo
Tema 7. Jerarquía de buses buses y y buses buses estándar estándar
José Manuel Mendías Cuadros Dpto. Dpto. Arquitectura de Computadores y Automática Universidad Complutense de Madrid
2
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 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 GLOB AL DEL SISTEMA Ø Aumenta el retardo de prop agación de las señales para soportar mayor número de dispositivos ð El bus debe tener mayor longitud ales d e arb itr aje (GRANT), si son encadenadas, debe propagarse a través de un ð Las señ mayor número de posibles masters Ø El bus puede actuar como un “cuello de b otella” ð Si la demanda de la transferencia es mayor que la capacidad del bus los dispositivos deberán esperar mucho tiempo para poder transmitir afecta negativamente al rendimiento global Ø La diferencia de velocidad de los dispositivos ð En el mismo tiempo que un dispositivo lento realiza una transferencia, uno rápido podría haber realizado miles de transferencias
Ö
INCOMPATIBILIDAD DEL B US 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 que todos los computadores utilizasen un estándar de bus uniforme ð Solución ideal: cada fabricante diseña sus propios buses optimizados para sus arquitecturas, ð Problema: por lo que es muy difícil que todos se pongan de acuerdo
Solución a ambos problemas: Utilizar un a jerarquía de bu ses en lu gar d e un único bu s
estructura y tecnología de computadores
4
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 10 6 instruc /s ) = 6,12 millones de instrucciones
estructura y tecnología de computadores
5
2. jerarquía de buses Buses local, del sistema y de expansión Bus Local
Procesador
Cache
Memoria
Coprocesador Matemático
Bus Local y Bus del Sistema Ö Buses rápidos, cortos Ö Buses Propietarios (no estándares) Optimizados para la arquitectura Nº fijo de dispositivos de prestaciones conocidas
Ø Ø
Bus Sistema
Bus de expansión
Interfaz con Bus Expansión
Ö
Interfaz bus Adapta las velocidades de ambos buses Convierte las señales de un bus a otro
Ö
Buses más largos y lentos Bus abierto (estándar) Ø Ø
Accesible por el usuario Nº indeterminado de dispositivos de distintas prestaciones
Bus Expansión o de E/S
Controlador Disco
Disco
Adaptador Vídeo
Adaptador Red
Adaptador Fax/módem
Adaptador Puerto serie
Adaptador Puerto paralelo
Monitor
Red
Módem
Ratón
Impresora
estructura y tecnología de computadores
6
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 transferenci a 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 sincronizac ión adecuadas dependiendo del bus con el que se comunique Etc.
estructura y tecnología de computadores
8
2. jerarquía de buses Otras topologías:
Bus Local
Buses para dispositivos de distinta velocidad
Procesador
Cache
Coprocesador Matemático
Memoria
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 dispositivos de E/S lentos
Interfaz con bus expansión 1
Controlador Disco
Disco
Bus expansión
Adaptador Fax/módem
Adaptador Puerto serie
Adaptador Puerto paralelo
Módem
Ratón
Impresora
estructura y tecnología de computadores
Adaptador Vídeo
Adaptador Red
Monitor
Red
Para interconectar discos externos y otros dispositivos
Interfaz con bus de E/S externo
Bus de E/S Externo
Disco
Disco
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) señales a los contactos del conector
ð Asignación de Ø
Nivel de temporización básico
Ø
Nivel de arbitraje
ð ð
Protocolos de transferencia empleados 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
B u s
Ancho datos
Frec. reloj
Sistema PCI (V 2.0) PCI (V 2.1) EISA ISA SCSI-1 SCSI-2 IDE EIDE USB
64 32 64 32 16 8 16/32 16 16 Serie
100 MHz 33 MHz 66 MHz 8 MHz 8 MHz 5 MHz 10 MHz 1.6 MHz 5.5 MHz --
Ancho de banda
800 Mbytes/s 132 Mbytes/s 528 Mbytes/s 32 Mbytes/s 5-8 Mbytes/s 4 Mbytes/s 20/40 Mbytes/s 3.18 Mbytes/s 10.6 Mbytes/s 12 Mbits/s
bus de sistema buses de expansión de alta velocidad buses de expansión de baja velocidad buses de E/S externos “buses” para conexión de discos 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 ð ð
Ø
Modo bloque ð
Ö
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 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
ð
ü 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é
el tipo de transferencia a realizar líneas del bus transportan los datos ü ü ü ü
BE0* BE1* BE2* BE3*
activada ⇒ AD0-AD7 transporta datos activada ⇒ AD8-AD15 transporta datos activada ⇒ AD16-AD23 transporta datos 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 1 er dato d Cuando el slave tiene el 1 er 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 3 er dato Ø
Desactiva IRDY* hasta que está preparado para poder recibir correctamente el siguiente dato
h Transferencia del último dato Ø
i
El master desactiva FRAME* para indicar el final de la transferencia del bloque
El master dsactiva IRDY* y el slave desactiva TRDY* y D EVSEL* Ø
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
··· Árbitro de PCI
* Q E R
* T N G
Dispositivo PCI
* Q E R
* T N G
Dispositivo PCI
estructura y tecnología de computadores
···
* Q E R
* T N G
Dispositivo PCI
21
4. ejemplos: otros buses buses estándar estándar
Bus
Mu ltib u s I
VME B u s
Mu ltibu s II
Nub u s
Compañía/Año
Intel (1970)
Motorola (1981)
Intel (1983)
Western Digital (1983)
IEEE (1990)
Ancho Datos
16
8/16/32
32
32
32/64/128/256
Ancho Dirección
24
16/24/32
32
32
32/64
No
No
Sí
Sí
Sí
10
40
40
40
100/200/600/1200
Asíncrono
Asíncrono
Centralizado (2 hilos/estrella)
Centraliz. (3 hilos)
Líneas datos/dir multiplexadas Ancho de banda (Mbytes/s) Protocolo Sincronización Protocolo Arbitraje
Fu tureB u s +
Semisíncrono Semisíncrono Distribuido (cód. de ID)
Distribuido (cód. de ID)
Asíncrono Distribuido o Centralizado
estructura y tecnología de computadores
22
4. ejemplos: otros buses buses estándar 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
Ø
LWORD*: Long Word
Ø
DS0*-DS1*: Data Strobe
Ø
ð ð
Tamaño de las transferencias: byte, palabra (16 bits), doble palabra (32 bits) Indica que la transferencia es de tamaño doble palabra
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 buses estándar 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 BG1out BG2out Master 1 BG3out (Arbitro)
BG0in BG1in BG2in BG3in
BG0out BG1out BG2out Master 2 BG3out
BR0 BR1 BR2 BR3 BBSY BCLR
estructura y tecnología de computadores
BG0in BG1in BG2in BG3in
Master n
BG: Bus Grant BR: Bus Request BBSY: Bus Busy BCLR: Bus Clear