Estructura y Tecnología de Computadores. Módulo D. Buses del computador

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 Dp

0 downloads 36 Views 697KB Size

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







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

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.