Anda di halaman 1dari 48

Tema 3

Buses de Entrada/Salida

Perifricos e Interfaces
Referencias:
Tema 3/1

[Stallings03] Chapter 3
[Messmer02] Chapter 25

Conceptos Generales

Sumario

Estructura Universal del Bus


Operaciones en un Bus
Ventajas y Desventajas
Tipos de Buses
Solucin en Computadores: Jerarqua

Normalizacin de un Bus
Niveles de Especificacin Fsico, Elctrico y Lgico
Temporizacin de las Seales
Protocolo de Transferencia

Mtodo de arbitraje
Direccionamiento
Anchura del bus
Tipos de transferencias

Estudio de Casos: Bus PCI

Tema 3/2

Organizacin de Computadores Basados en Bus PCI


Nivel Fsico
Protocolo: arbitraje, lectura/escritura
Autoconfiguracin
Programacin a travs de PCI-BIOS

Conectores a Buses en Placa Base


2 conectores ISA

5 conectores PCI

2 conectores IDE
Placa base
Perifrico esclavo
Perifrico maestro

Tema 3/3

USB

Estructura Universal de un Bus


Procesador

Memoria
Principal

Interfaz
serie

Interfaz
paralelo

LNEAS: Datos, Direcciones, Control


Controlador
de disco

Maestro

Controlador
de cinta

Esclavo

Esclavo
Lneas de Direcciones

Tema 3/4

Lneas de Datos

Operaciones Bsicas
Transacciones: agrupacin de eventos que se
producen en un bus entre Fuente y Destino
Partes en las que frecuentemente se dividen las
Transacciones

Tema 3/5

1: Peticin del bus


2: Obtener el uso del bus (Cesin)
3: Direccionamiento del destinatario
4: Transferir dato
5: Espera confirmacin de envo correcto (control de
errores)

Ventajas

Procesador

Dispositivo E/S

Dispositivo E/S

Dispositivo E/S

BUS

Memoria

Versatilidad:
Nuevos dispositivos pueden ser aadidos fcilmente
Los Perifricos pueden ser conectados a distintos
computadores que usen el mismo estndar de bus
La reparacin consiste en sustituir los mdulos daados
Bajo Costo:
Un nico conjunto de cables es compartido de mltiples
formas
Se maneja la complejidad particionando el diseo
Tema 3/6

Desventajas
BUS

Procesador

Dispositivo 1

Dispositivo 2

Dispositivo 3

Memoria

Se crea un cuello de botella en las comunicaciones


El ancho de banda de un bus puede limitar el ritmo de
transferencia mximo de E/S
El ritmo de transferencia del bus est bsicamente limitada por:
La longitud del bus
El nmero de dispositivos conectados al bus
La necesidad de soportar un rango de dispositivos con distintas
caractersticas:
Latencias (tiempo de ciclo) que varan grandemente
Ritmos de transferencias de datos que varan ampliamente
Tema 3/7

Tipos de Buses
Dedicados: asignar un conjunto de
lneas a una funcin determinada
(datos, direcciones, etc.)
Mayor rendimiento debido a
menor contencin del bus
Incremento del tamao del sistema

Maestro

Esclavo

Lneas de Control
Lneas de Direccin
Lneas de Datos

Multiplexados: por un determinado conjunto de lneas se


transmiten varios tipos de informacin
Ventajas: menos lneas
Desventajas: HW ms complejo y menor prestaciones
Serie: se transmiten bit a bit
Paralelo: se transmiten palabra a palabra
Tema 3/8

Esclavo

Jerarqua de Buses: Un Sistema de 3 Buses


Memoria
Cache

Bus Local
Procesador
Vdeo
LAN
FireWire

Interfaz de Memoria

Adaptador
Bus

Bus Sistema

PCI, AGP

Adaptador
Bus
Adaptador
Bus

Memoria
Principal
Bus Expansin E/S (IDE, USB, etc.)

Bus Expansin E/S

Un pequeo nmero de buses de la placa base se obtienen a partir del Bus Local
La interfaz de memoria se usa para el trfico entre procesador y memoria
A travs de adaptador se obtienen los buses del sistema (PCI)
Los buses de E/S se conectan al bus del sistema (IDE, USB, SCSI, etc.)
Ventaja: la carga del bus del procesador se reduce

Tema 3/9

Ejemplo: Computador basado en Jerarqua PCI

Bus LOCAL:
Procesador/Cache

Interfaz de MEMORIA

Bus del SISTEMA (PCI)

Buses de EXPANSION E/S:


ISA, USB
Tema 3/10

Ejemplo: Computador basado en Jerarqua PCI

Tipos de
Transferencias:
Procesador-Memoria
Procesador-E/S
E/S-Memoria

Tema 3/11

Especificacin Normalizada de un Bus


Protocolo Transaccin

R/W
Direc

Temporizacin de Seales
Datos
Nivel Lgico
Especificacin Elctrica
de las Seales
Caractersticas Fsicas/Mecnicas

BUS

Tema 3/12

v
t

Normalizacin de un Bus
Caractersticas Fsicas/Mecnicas
Topologa de conexin, Nmero mximo de dispositivos
conectados al bus (Capacidad de Conexin), Tipos de cables
y conectores, Longitud

Especificacin Elctrica de las Seales


Caractersticas elctricas de las seales (V, I, Z), Fiabilidad
elctrica de las lneas de bus (interferencias, corto circuito,
tensin del cable), Modos de suministro de alimentacin

Nivel Lgico

Tema 3/13

Asigna un nivel lgico binario (0 1) a cada nivel elctrico


estable de las seales de un bus (Vcc Gnd)
Seales: Datos, Direcciones, Escritura/Lectura de Mem/ES,
Reconocimiento de transaccin, Peticin/Cesin del bus,
Peticin/Reconocimiento de Interrupcin, Reloj, Reset

Temporizacin de Seales
Definicin: forma en la que se coordinan los eventos en el bus
Temporizacin Sncrona (Bus Sncrono):
Incluye una seal de reloj entre las lneas de control
La activacin de seales siempre se realiza de forma relativa a la seal de
reloj
Ventaja: implica muy poca lgica y puede ser muy rpido
Desventajas:
Cada dispositivo en el bus debe funcionar a la misma velocidad
Para evitar el desfase de reloj, las lneas del bus no deben ser muy largas si se
quiere que sea rpido

Temporizacin Asncrona (Bus Asncrono):


No est sincronizado por reloj, la activacin de una seal depende de
activaciones de otras seales
Requiere un Protocolo de Intercambio (Handshaking)
Ventaja: Puede acomodar un rango amplio de dispositivos
Ventaja: El bus puede ser alargado sin preocuparse del desfase de reloj
Tema 3/14

Temporizacin Sncrona
RELOJ

Bus- Acceso
Bus- Peticin
Direccin + Orden

Cmd+Addr

Espera (Wait)

Datos

Data1

Data1

Data2

El destinatario indica cundo est preparado para transferir datos


La transferencia real se realiza a la frecuencia del RELOJ
Tema 3/15

Temporizacin Asncrona
Transaccin de
ESCRITURA
Direccin
Datos

CICLO de Bus
Maestro activa Direccin

Prxima Direccin

Maestro activa Datos

Lectura/Escritura
Peticin
Reconocimiento
t0

t1

t2

t3

t4

t5

t0 : Maestro ha obtenido el control y activa Direccin y Datos


Espera una cantidad de tiempo para que los esclavos decodifiquen

t1: El Maestro activa las lneas de Peticin (Request)


t2: El Esclavo activa Reconocimiento (Ack), reconociendo que
el dato se ha recibido
t3: El Maestro desactiva Peticin
Tema
3/16 t4:
El Esclavo desactiva Reconocimiento

Protocolo de Transferencia: Arbitraje


La transferencia de informacin se realiza a travs de un
convenio entre Maestro y Esclavo:
Slo el maestro del bus puede controlar el acceso al bus: Inicia y controla
todas las peticiones del bus
Un esclavo responde a peticiones de lectura y escritura

El sistema ms sencillo: Maestro Unico


El Procesador es el nico maestro del bus
Todas las peticiones de bus deben estar controladas por el procesador
Inconveniente: el procesador se implica en cada transaccin

Uno de los aspectos ms importantes en el diseo de un bus:


Cmo se reserva el bus a un dispositivo que desea usarlo en un Bus
Multimaestro?: se necesita arbitraje
Tema 3/17

Peticin del Bus :

Arbitraje

Un maestro que quiere usar el bus activa la seal de peticin del bus
Que se dirige a un rbitro central (Arbitraje Centralizado)
Que es compartida por otros maestros y stos detectan la actividad de esta lnea
compartida (Arbitraje Distribuido por Deteccin de Colisin de Seales)
Dependiendo del estado de unas seales de arbitraje (cdigo identificativo,
habilitacin), los mdulos se abstienen de usar el bus o acceden a l (Arbitraje
Distribuido por Autoseleccin)

Cesin del Bus :


2 tipos: Esttica (bajo encuesta), Dinmica (bajo demanda)
Un maestro no puede usar el bus hasta que la peticin sea atendida
Un maestro debe indicar al rbitro que ha terminado de usar el bus

Los esquemas de Cesin equilibran 2 factores :


Prioridad del Bus: el dispositivo de ms alta prioridad debe ser atendido
primero
Completitud: Incluso el dispositivo de prioridad ms baja debe ser atendido

Tema 3/18

Tipos de Arbitrajes
BUS

Centralizado
Arbitro
PCI

Dispositivo
PCI
GNT#
REQ#

Dispositivo
PCI
GNT#
REQ#

Centralizado
Daisy Chain
Arbitro
PCI

Tema 3/19

Dispositivo
PCI
GNT#
REQ#

Dispositivo
PCI
GNT#
REQ#

BUS
Dispositivo
PCI
REQ# GNT#

Dispositivo
PCI
REQ# GNT#

Dispositivo
PCI
REQ# GNT#

Dispositivo
PCI
REQ# GNT#

Tipos de Arbitrajes
BUS

Dispositivo
PCI
GNT# REQ#

Dispositivo
PCI
GNT# REQ#

Distribuido por
Deteccin de Colisin de
Seales (Ethernet)

Tema 3/20

Dispositivo
PCI
GNT# REQ#

Dispositivo
PCI
GNT# REQ#

Tipos de Arbitrajes
Distribuido por
Autoseleccin
(SCSI)

Tema 3/21

Protocolo: Direccionamiento
Lgico: informacin de direccin de destino
est almacenada en el destinatario
Geogrfico: la direccin est asociada a
una posicin fsica
Multicast: forma de distribuir informacin
a ms de un destinatario
Broadcast: forma de distribuir informacin
a todos los destinatarios
Tema 3/22

Protocolo: Anchura del Bus


Anchura del Bus de Datos: Afecta a las
prestaciones del sistema
Anchura del Bus de Direcciones: Afecta a la
capacidad del sistema
Ritmo de Transferencia (Ancho de Banda):
MB/s.
PCI(1X), BW= 32 bits x 33 MHz /8 = 132 MB/s
Tiempo (s)
RELOJ
Datos
Tema 3/23

Data1

Data2

Data3

Transferencias de Ciclo Completo


Buses Multiplexados

Buses Dedicados

Tiempo

Direccin

Dato

Direccin

Operacin de escritura (multiplexada)

Dato
Direccin

Tiempo
acceso

Operacin de escritura
(no multiplexada)

Dato

Operacin de lectura (multiplexada)

Direccin

Lect Escr

Lectura-Modificacin-Escritura

Direccin Escri

Lect

Lectura despus de escritura

Tema 3/24

Direccin
Dato
Operacin de lectura (no multiplexada)

Transferencias de Ciclo Partido


Direccin Dato Dato Dato
Transferencia de un bloque de datos
(Burst)

BCLK
Arbitraje

Peticin

Error

Snoop

Respuesta Datos

Trasaccin 1
Arbitraje
Trasaccin 2

Tema 3/25

Peticin

Error

Snoop

Respuesta Datos

Demandas de Ritmo de Transferencia


en los Perifricos Grficos
Resolucin
160x120
640x480
640x480
1024x768

Colores
8 bits
8 bits
24 bits
24 bits

Redisplay Ancho de Banda


15 Imag/s
288 KB/s
10 Imag/s
1.9 MB/s
30 Imag/s
26.3 MB/s
30 Imag/s
67.5 MB/s

ISA: 8 MHz x 2 Bytes x (1/2)= 8 MB/s


EISA: 8 MHz x 4 Bytes x (1/2)= 16 MB/s
Tema 3/26

Estudio de Casos: Bus PCI

Bus PCI 0

BRIDGE

Agente PCI
Bus PCI

Tema 3/27

Principales Caractersticas PCI


Peripheral Component Interconnect, estndar
independiente del procesador para expansin de
computadores
PCI SIG (Special Interest Group, www.pcisig.org):
asociacin industrial, PCI Express, PCI-X 2.0, PCI
2.3
Bus de tipo multiplexado
Temporizacin sncrona (33/66 MHz) y 32/64 bits de
datos
Alto Ritmo de Transferencia: 1X=132 MB/s (33MHz,
32 bits), 4X=528 MB/s (66 MHz, 64 bits)
Tema 3/28

Estructura General PCI


CLK
IDSEL

Control

PCI
PCI
HOST
HOST

C/BE0-3
AD0-31

(Puente
(Puente
Norte)
Norte)
Arbitro
PCI

Dispositivo
PCI (Slot 1)
GNT# REQ#

Dispositivo
PCI (Slot 2)
GNT# REQ#

Dispositivo
PCI (Slot 3)
GNT# REQ#

/INTA..D

Controlador de Interrupciones
(Puente Sur)
Tema 3/29

Dispositivo
PCI (Slot 4)
GNT# REQ#

Principales Caractersticas PCI


Multimaestro. El procesador no es el nico maestro
del bus. Aplicado a sistemas multiprocesadores
Hasta 256 buses con 32 perifricos/bus y 8
controladores/perifrico
Permite establecer conexiones a travs de puentes
con buffers internos con otras normas de bus: ISA,
EISA, SCSI, etc.
Permite el paralelismo de transacciones procesadormemoria y perifrico PCI-perifrico PCI
Autoconfiguracin: Plug&Play
Tema 3/30

5 voltios

Niveles FsicoMecnico-Elctrico:
Conector PCI

Organizacin de pines
para eliminar Paradiafona
(Crosstalk)
Tema 3/31

Nivel Lgico PCI


Grupos funcionales de lneas obligatorias (49):
Sistema: reloj (CLK), reset (/RST)
Direcciones y Datos: Dir/Dat mux (AD[31:0]), interpretacin
Dir/Dat (/DEVSEL), validacin/comando (C/BE[3:0])
Control de la Interfaz: temporizacin (/FRAME), coordinacin
fuente/destino (/IRDY, /TRDY), parar transaccin (/STOP)
Arbitraje: par de lneas desde cada maestro al rbitro (/REQ,
/GNT), lneas no compartidas
Control de Errores de paridad (PAR, /PERR, /SERR)
Activacin del Espacio de Configuracin: IDSEL
Grupos funcionales de lneas opcionales (+51):
Interrupciones: para pedir servicio
Soporte cache: permite utilizar protocolos de coherencia de
memorias caches en el bus, para sistemas multiprocesadores
Ampliacin del bus a 64 bits
Test: JTAG/Boundary Scan
Alimentacin/Tierra (+24): Soporta: 5 v / 3.3 v (marcas fsicas

en el conector distinitas dependendiendo de 5/3.3 v.)

Tema 3/32

Sincronizacin PCI
Interpretacin de eventos:
Activacin de eventos por maestro del bus: en
transiciones negativas de clk
Interpretacin de eventos por esclavos del bus: en
transiciones positivas de clk

Interrupciones activadas por nivel, lo cual permite


compartir las lneas entre varios perifricos

Tema 3/33

Arbitraje PCI
Centralizado
Interrupciones activas por nivel, se pueden
unir varias lneas
Sin algoritmo especificado para prioridad
No relentiza las transferencias
BUS PCI

Arbitro
PCI

Tema 3/34

Dispositivo
PCI
GNT# REQ#

Dispositivo
PCI
GNT# REQ#

Dispositivo
PCI
GNT# REQ#

Dispositivo
PCI
GNT# REQ#

Tema 3/35

Arbitro
PCI
GNT#B

REQ#B

GNT#A

REQ#A
FRAME#,
IRDY#,
TRDY#,
AD, CLK

Arbitraje PCI

Bus PCI

Transferencias
de Datos
Modos multiplexados :
ciclo completo (escritura: 2
clk/dato, lectura: 3 clk/dato),
ciclo partido (bloques datos, 1
clk/dato)
Estructura de la transferencia:
1 fase de direccionamiento
1 varias fases de datos
Ritmos de Transferencia
Ciclo Completo 1X: escritura= 66 MB/s,
lectura= 44 MB/s
Ciclo Partido: 1X=132 MB/s (33MHz, 32
bits), 4X=528 MB/s (66 MHz, 64 bits)
Tema 3/36

Comandos/Ordenes PCI
Se utilizan las seales C/BE(3:0)
Lectura/Escritura E/S: leer/escribir en registros del controlador de
perifricos
Lectura/Escritura Memoria: transferencias de bloques de datos,
permite ser utilizado en sistemas multiprocesadores en el que se
utiliza un algoritmo de coherencia de cache
Lectura/Escritura Configuracin: permite al usuario del bus leer y
escribir en registros de configuracin del dispositivo conectado a
PCI, mximo nmero registros: 256, utilizado en Plug&Play
Ciclo de Direccin Dual: permite la utilizacin de direcciones de
64 bits
Reconocimiento de Interrupcin: el controlador de interrupciones
utiliza el bus de datos para leer el identificador de la interrupcin
Ciclos Especiales
Tema 3/37

Transaccin PCI de Lectura

Tema 3/38

Transaccin PCI de Escritura

Tema 3/39

Autoconfiguracin PnP-PCI:
Mecanismo Configuracin #1
3er tipo de espacio direccionamiento en PCs
Registros de Configuracin: 2 registros E/S de
32 bits para acceso a la Memoria de
Configuracin PCI
CONFIG_ADDRESS: 0x0cf8
CONFIG_DATA: 0x0cfc, 32 bits

Memoria de Configuracin: 256 bytes por


controlador
Tema 3/40

Autoconfiguracin PnP-PCI:
Mecanismo Configuracin #1
ECD=1: acceso a Espacio Configuracin PCI
ECD=0: acceso a Direccionamiento E/S
CONFIG_ADDRESS (E/S= 0x0cf8)
31 30
EC
D=
1

24 23
RESERVADO

16 15

N de BUS PCI en la estructura


jerrquica (0...255)

11 10

N de dispositivo
PCI (0...31)
conectado a bus

Funcin
(multifunci
onales)

N de Registro de la
Ventana Configuracin
(64 regs)

Tipo

CONFIG_DATA (E/S= 0x0cfc)


31

DATO
Tema 3/41

Area de Configuracin PCI


CONFIG_ADDRESS

CONFIG_DATA

Offset

En el interior del
controlador PCI

31

Formato
64 Byte Header
Fijo
Cabecera
16B

16 15

Unit ID
Status
Class Code
BIST
Header

Manufacturer ID
Command
Revision
Latency
CLS

Base Address Register


192 Bytes
available for PCI
Unit

Dependiente
del Dispositivo

00h
04h
08h
0Ch
10h

(6)

Reserved
Reserved
Expansion ROM Base Address
Reserved
Reserved
INT-Line
INT-Pin
MinGNT
MaxLat

256-byte Configuration Area and 64-byte Header


Tema 3/42

24h
28h
2Ch
30h
34h
38h
3Ch

Campos de Configuracin
Command (16 bits: 9+7): configura cmo reacciona el mdulo PCI a los
distintos ciclos de bus
Status (16 bits): estado del mdulo PCI
Class code (24 bits): indica el tipo de mdulo PCI. MSB=clase,
MediumSB=sub-clase, LSB= interfaz de programacin
Latency (8 bits): duracin mx de operaciones de bus (/FRAME=0, >8 clks)
Header: permite indicar el contenido de los otros 48 bytes de la cabecera
BIST (8 bits): autotest
BAR (32/64 bits): punteros a zonas de memoria o E/S donde se almacenan
datos o programas
INT-Line (8 bits): lnea interrupcin asignada, IRQx (0 .. 15)
INT-Pin (8 bits): peticin de interrupcin, 0000 (no int), 0001 (/INTA),
0010 (/INTB), etc
(MaxLat,MinGNT): mxima y mnima latencia que requiere el mdulo PCI,
y que es indicado por el fabricante de la placa
Tema 3/43

Programacin a travs de BIOS


Ensamblador: INT 1aH
pci_bios_present: indica si BIOS PCI presente
AH= 0xb1, AL=0x01

find_pci_device(); encuentra perifricos PCI


AH= 0xb1, AL=0x02, num. fabricante, num. dispositivo

read_configuration_area(); lee espacio


configuracin sobre registro ECX
AH= 0xb1, AL=0x08 (byte), AL=0x09 (word)

write_configuration_area(); escribe registro de


configuracin desde registro ECX
AH= 0xb1, AL=0x0c (byte), AL=0x0c (word)
Tema 3/44

Ejemplo
pci_bios_present:
find_pci_device();
DX: fabricante (8086=Intel)
CX: unidad (7190=440BX Host/PCI)
SI= indice
Versin: x.y; x=BH, y=BL EDX=PCI; 00 49 43 50

BH=N bus; BL[7..3]=unidad; BL[2..0]=funcin

Tema 3/45

Carry=NC; si PCI-BIOS

Carry=NC; comando OK

Programacin a travs de
BIOS con C++
getinterrupt(0x1a);
pci_bios_present(); indica si BIOS PCI presente
find_pci_device(); encuentra perifricos PCI
read_configuration_byte(); lee espacio
configuracin
write_configuration_byte(); escribe registro de
configuracin

Tema 3/46

Ejemplo: Arranque PC

Tema 3/47

Bus
No

Device No.

Func.
No.

Vendor
ID

Device
ID

Device Class

IRQ

8086

7111

IDE controller

14/15

8086

7112

Serial bus controller

10

11

1307

000B

Unknown PCI device

N/A

12D2

0018

Display controller

11

Ejemplo:
PCItree
(www.pcitree.de)
Jerarqua PCI

Interrupcin IRQx
Interrupcin PCI
DID.VID
Area de
Configuracin
Situacin del mdulo en la jerarqua PCI

Tema 3/48