Story Transcript
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
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
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
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 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 Ö Buses Propietarios (no estándares)
Bus Local Procesador
Cache
Memoria
Coprocesador Matemático
Ø Ø
Optimizados para la arquitectura Nº fijo de dispositivos de prestaciones conocidas
Bus Sistema
Bus de expansión
Interfaz con Bus Expansión
Ö Buses más largos y lentos Ö Bus abierto (estándar)
Interfaz bus Adapta las velocidades de ambos buses Convierte las señales de un bus a otro
Ø Ø
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 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
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) ð 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 Bus Sistema PCI (V 2.0) PCI (V 2.1) EISA ISA SCSI-1 SCSI-2 IDE EIDE USB
Ancho datos 64 32 64 32 16 8 16/32 16 16 Serie
Frec. reloj 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 ð 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 Ø
f
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*)
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 Ø
i
El master desactiva FRAME* para indicar el final de la transferencia del bloque
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
Dispositivo PCI
Dispositivo PCI
estructura y tecnología de computadores
GNT*
···
REQ*
GNT*
REQ*
GNT*
Árbitro de PCI
REQ*
···
Dispositivo PCI
21
4. ejemplos: otros buses estándar
Bus
Multibus I
VME Bus
Multibus II
Nubus
FutureBus +
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
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 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 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
BG: Bus Grant BR: Bus Request BBSY: Bus Busy BCLR: Bus Clear Master n