Está en la página 1de 79

ARQUITECTURA DEL COMPUTADOR

BUSES
PERIFERICOS e INTERFASES

1
Buses
Un bus es un camino de comunicacin compartido
entre dos o ms dispositivos

Cualquier seal transmitida estar disponible para


todos los dems dispositivos
Slo un dispositivo puede transmitir en un momento dado
Si dos dispositivos transmiten al mismo tiempo, sus seales
se solaparn y, probablemente, se distorsionarn
Los dispositivos deben obtener el control del bus antes de
poder utilizarlo para transferir informacin

[STALLINGS 3.4] 2
Lneas de comunicacin
Un bus suele estar formado por varias lneas de
comunicacin
Cada lnea tiene un significado o funcin particular
Fsicamente, las lneas de comunicacin no son sino
un conjunto de conductores elctricos

Cada lnea transmite seales digitales binarias (0,1)


Se puede transmitir una secuencia de dgitos binarios a travs
de una nica lnea durante un intervalo de tiempo
Se pueden utilizar varias lneas del bus para transmitir dgitos
binarios simultneamente en paralelo

[STALLINGS 3.4] 3
Estructura del tema
Introduccin
Buses: conceptos generales
Estructura de un bus
Jerarquas de buses mltiples
Elementos de diseo de un bus
El bus PCI
Estructura
rdenes
Transferencia de datos
Arbitraje

4
El bus del sistema
Los computadores poseen diferentes tipos de buses
que proporcionan comunicacin a distintos niveles
entre sus componentes
El bus que conecta los componentes principales del
computador (procesador, memoria y E/S) es el llamado
bus del sistema

[STALLINGS 3.4] 5
Estructura del tema
Introduccin
Buses: conceptos generales
Estructura de un bus
Jerarquas de buses mltiples
Elementos de diseo de un bus
El bus PCI
Estructura
rdenes
Transferencia de datos
Arbitraje

6
Estructura del bus del sistema
Aunque existen diseos muy diversos, las lneas que
forman el bus del sistema pueden clasificarse en tres
grupos funcionales: datos, direccin y control
Tambin pueden existir lneas de alimentacin para
suministrar energa a los mdulos conectados al bus

[STALLINGS 3.4] 7
Lneas de datos
Las lneas de datos proporcionan un camino para
transmitir datos entre los mdulos del sistema

El conjunto de las lneas de datos suele


denominarse bus de datos
Se suele hablar de anchura del bus para
referirse al nmero de lneas de datos
La anchura del bus de datos es un factor clave para
determinar el rendimiento de un sistema
Cada lnea puede transportar un nico bit cada vez
La anchura del bus determina cuantos bits se puden transmitir de
forma simultnea y, por tanto, la velocidad de transferencia

[STALLINGS 3.4] 8
Lneas de direccin
Las lneas de direccin se utilizan para designar la
fuente o el destino del dato situado en el bus de datos
Posicin de memoria
Dispositivo de E/S

La anchura del bus de direcciones determina el tamao


mximo del espacio de direcciones del sistema
Cuando la E/S est asignada en memoria, el espacio
de direcciones se comparte entre memoria y E/S
Cuando la E/S est aislada de memoria, los espacios
de direcciones estn separados y tienen el mismo
tamao mximo

[STALLINGS 3.4] [STALLINGS 7.3] 9


Lneas de control
Dado que las lneas de datos y direcciones son
compartidas por todos los dispositivos conectados
al bus, debe existir alguna forma de controlar su uso

El propsito de las lneas de control es:


Determinar quien accede a las lneas de datos y direcciones
Gestionar el uso que se hace de esas lneas
Transmitir rdenes que especifican las operaciones a realizar
Transmitir informacin de temporizacin que indica la validez de los
datos y direcciones

[STALLINGS 3.4] 10
Algunas lneas de control tpicas
Escritura en memoria: hace que el dato presente en el
bus se escriba en la posicin direccionada
Lectura de memoria: hace que el dato de la posicin
direccionada se site en el bus
Escritura de E/S: hace que el dato presente en el bus se
transfiera a travs del puerto de E/S direccionado
Lectura de E/S: hace que el dato presente en el puerto
de E/S direccionado se site en el bus
Transferencia reconocida: indica a un dispositivo que
el dato que envi ha sido aceptado o que el dato que
desea est disponible en el bus
[STALLINGS 3.4] 11
Algunas lneas de control tpicas
Peticin de bus: indica que un dispositivo necesita
disponer del control del bus
Cesin de bus: indica que se cede el control del bus a
un dispositivo que lo haba solicitado
Peticin de interrupcin: indica que hay una
interrupcin pendiente
Interrupcin reconocida: seala que la interrupcin
pendiente ha sido aceptada
Reloj: se utiliza para sincronizar operaciones
Reinicio: devuelve los dispositivos conectados a su
estado inicial
[STALLINGS 3.4] 12
Estructura fsica
El bus del sistema se extiende a traves de todos los
componentes del sistema, cada uno de los cuales se
conecta a algunas o a todas las lneas del bus

Una organizacin clsica


consiste en una distribucin
longitudinal a lo largo de la que
se distribuyen ranuras de
conexin (slots) a intervalos
regulares

[STALLINGS 3.4] 13
Estructura fsica
El sistema completo se introduce dentro de un
chasis que tambin contiene la fuente de
alimentacin, algunos dispositivos perifricos, etc

Cada uno de los componentes


principales del sistema
ocupa una o varias tarjetas
que se conectan al bus a
travs de las ranuras de
conexin

[STALLINGS 3.4] 14
Estructura fsica
Esta disposicin es muy prctica porque permite
expandir el sistema aadiendo nuevas tarjetas o
actualizarlo/repararlo sustituyendo tarjetas

No obstante, los sistemas actuales tienden a tener sus


componentes principales en una misma tarjeta
El procesador, la memoria cach y el bus que los
comunica se integran en un nico componente
La memoria y otros dispositivos siguen estando en tarjetas
separadas que se comunican con el procesador por medio
del bus del sistema

[STALLINGS 3.4] 15
Estructura del tema
Introduccin
Buses: conceptos generales
Estructura de un bus
Jerarquas de buses mltiples
Elementos de diseo de un bus
El bus PCI
Estructura
rdenes
Transferencia de datos
Arbitraje

16
Inconvenientes de tener un bus nico
El rendimiento de un bus puede disminuir si se conecta
un gran nmero de dispositivos
A ms dispositivos conectados, mayor retardo de propagacin
Los dispositivos tardarn ms en coordinarse para usar el bus
Si el control del bus pasa con frecuencia de un dispositivo a otro,
los retardos afectarn al rendimiento
Entre ms peticiones reciba el bus, ms probable ser que
se cruce la barrera de su capacidad mxima, convirtindose
el bus en un cuello de botella
Puede resolverse usando buses ms rpidos y/o ms anchos
La velocidad y la anchura tienen lmites fsicos, mientras que la
velocidad de transferencia que necesitan los dispositivos conectados
al bus se est incrementando rpidamente

[STALLINGS 3.4] 17
Jerarqua de buses
El bus nico est destinado a dejar de utilizarse
La mayora de los computadores utilizan varios buses
organizados de forma jerrquica

[STALLINGS 3.4] 18
Jerarqua de buses
El procesador se conecta con la memoria cach
por medio de un bus local al que tambin pueden
conectarse dispositivos de E/S locales

[STALLINGS 3.4] 19
Jerarqua de buses
El controlador de la memoria cach se conecta tanto al
bus local como al bus del sistema, donde se encuentran
los distintos mdulos de la memoria principal

[STALLINGS 3.4] 20
Jerarqua de buses
Los controladores de E/S se pueden conectar
directamente al bus del sistema
Las transferencias entre la memoria y la E/S no
interferirn en la actividad del procesador

[STALLINGS 3.4] 21
Jerarqua de buses
Es ms eficiente conectar los controladores
de E/S a un bus de expansin
Su interfaz regula las transferencias de datos entre los
controladores E/S conectados a l y el bus del sistema

[STALLINGS 3.4] 22
Jerarqua de buses
El bus de expansin permite:
Conectar una amplia variedad de dispositivos de E/S
Aislar el trfico de informacin Memoria Procesador
del trfico correspondiente a la E/S

[STALLINGS 3.4] 23
Jerarqua de buses de alto rendimiento
La jerarqua de buses tradicional es razonablemente
eficiente, pero no consigue adaptarse al continuo
aumento del rendimiento de los dispositivos de E/S

La respuesta a este problema consiste en utilizar un


bus de alta velocidad
Estrechamente integrado al resto del sistema
Slo se requiere un adaptador (bridge) entre el bus del
procesador y el bus de alta velocidad

Esta arquitectura recibe el nombre de


arquitectura de entreplanta
[STALLINGS 3.4] 24
Jerarqua de buses de alto rendimiento
El procesador se conecta por medio de un bus local al
controlador de la memoria cach
El controlador de la memoria cach se conecta a su vez
al bus del sistema donde est la memoria principal

[STALLINGS 3.4] 25
Jerarqua de buses de alto rendimiento
El controlador de la memoria cach est integrado junto
con el adaptador o dispositivo de acoplo que permite la
conexin con el bus de alta velocidad

[STALLINGS 3.4] 26
Jerarqua de buses de alto rendimiento
El bus de alta velocidad se utiliza para conectar los
controladores de E/S rpidos que as lo necesiten
Los ms lentos pueden conectarse al bus de expansin,
que usa una interfaz para adaptar el trfico que circula

[STALLINGS 3.4] 27
Jerarqua de buses de alto rendimiento
La ventaja de esta organizacin es que el bus de alta
velocidad acerca al procesador los dispositivos que
exigen un rendimiento elevado pero, al mismo tiempo,
es independiente del procesador

[STALLINGS 3.4] 28
Jerarqua de buses de alto rendimiento
Los adaptadores e interfaces tratan con las diferencias
de velocidad y de definicin de lneas de los buses
Los cambios realizados en una parte de la arquitectura
no afectan a las dems partes

[STALLINGS 3.4] 29
Estructura del tema
Introduccin
Buses: conceptos generales
Estructura de un bus
Jerarquas de buses mltiples
Elementos de diseo de un bus
El bus PCI
Estructura
rdenes
Transferencia de datos
Arbitraje

30
Elementos de diseo de un bus
Existe una gran variedad de diseos de buses pero, en
general, hay unos pocos elementos comunes de diseo
que permiten clasificarlos y distinguirlos unos de otros

[STALLINGS 3.4] 31
Tipos de buses
Las lneas de bus se pueden dividir en
dos tipos genricos:
Dedicadas: estn permanentemente asignadas a una funcin o
a un conjunto de componentes del computador
Un ejemplo tpico de dedicacin funcional es el uso de lneas
separadas para direcciones y datos
Multiplexadas: pueden utilizarse para propsitos diferentes
Direcciones y datos podran transmitirse por la misma lnea si se
utilizara una seal de control Direccin Vlida
Se pone la direccin en el bus y se activa la lnea de control, dando un
tiempo para que los distintos controladores lean el bus y comprueben
si estn siendo direccionados
Despus de un periodo de tiempo se quita la direccin del bus y se
utilizan las mimas lneas para realizar la transferencia

[STALLINGS 3.4] 32
Tipos de buses
La dedicacin fsica requiere el uso de mltiples buses,
cada uno de los cuales conecta solo a un conjunto de
controladores
Ventaja: alto rendimiento por el menor nmero de conflictos
Desventaja: incremento del costo y el tamao del sistema

El multiplexado en el tiempo de las lneas permite


utilizar las mismas lneas para usos diferentes
Ventaja: normalmente ahorra espacio y costes
Desventajas:
Los controladores necesitarn una circuitera ms compleja
La falta de paralelismo puede reducir el rendimiento

[STALLINGS 3.4] 33
Mtodo de arbitraje
En un momento dado puede haber ms de un
controlador intentando usar el bus, pero slo uno de
ellos puede obtener el control y usarlo para transmitir

Es necesario disponer de un mtodo de arbitraje que


determine quin utiliza el bus

En general, los diversos mtodos de arbitraje se


pueden clasificar en:
Centralizados
Distribuidos

[STALLINGS 3.4] 34
Mtodo de arbitraje
El objetivo de ambos mtodos de arbitraje es designar
un dispositivo como maestro del bus, el cual iniciar
una transferencia hacia otro dispositivo (esclavo)

En un esquema centralizado hay un nico dispositivo


fsico llamado controlador de bus o rbitro
El rbitro es el responsable de asignar tiempos en el bus
Puede ser un mdulo separado o parte del propio procesador
En un esquema distribuido no existe un rbitro central
Cada mdulo dispone de lgica para controlar el acceso
Los mdulos actan conjuntamente para compartir el bus

[STALLINGS 3.4] 35
Temporizacin
El trmino temporizacin hace referencia a la forma en
la que se coordinan los eventos en el bus
Con temporizacin sncrona, la presencia de un evento en el
bus est determinada por una seal de reloj
El reloj es una lnea del bus a travs de la que se transmite una
secuencia de 1s y 0s a intervalos regulares de igual duracin
El ciclo de reloj o de bus es el intervalo mnimo en el que la seal
toma los dos valores posibles y define la unidad de medida del tiempo
dentro del bus (time slot)
Todos los eventos empiezan al principio del ciclo de bus
Con temporizacin asncrona, la presencia de un evento
en el bus es consecuencia y depende de que se produzca
un evento previo

[STALLINGS 3.4] 36
Temporizacin
La temporizacin sncrona es ms fcil de
implementar y comprobar

Sin embargo, la temporizacin sncrona es menos


flexible debido a que todos los dispositivos conectados
al bus deben operar a la misma frecuencia de reloj y,
por tanto, no siempre se aprovecharn sus posibilidades

La temporizacin asncrona permite que una mezcla de


dispositivos rpidos y lentos, construidos con distintas
tecnologas, compartan un mismo bus
[STALLINGS 3.4] 37
Temporizacin sncrona

[STALLINGS 3.4] 38
Temporizacin asncrona: lectura

[STALLINGS 3.4] 39
Temporizacin asncrona: escritura

[STALLINGS 3.4] 40
Anchura del bus
La anchura de un bus es el nmero de lneas distintas
que lo componen

La anchura del bus afecta tanto a la capacidad como al


rendimiento del sistema
Cuanto ms ancho es el bus de datos, mayor es el nmero
de bits que se transmiten a la vez y, por tanto, mayor es el
rendimiento del sistema
Cuanto ms ancho es el bus de direcciones, mayor es el rango
de posiciones a las que se puede hacer referencia y, por tanto,
mayor es la capacidad mxima del sistema

[STALLINGS 3.4] 41
Tipos de transferencia de datos
Un bus permite varios tipos de transferencias de datos
Todos los buses permiten transferencias de lectura y escritura
Transferencias de lectura: esclavo maestro
Transferencias de escritura: maestro esclavo
En el caso de un bus multiplexado,
primero se especifica la direccin y
luego se transmite el dato
Las lecturas implican esperar la
respuesta del esclavo
Tanto en lecturas como en escrituras
pueden aparecer retardos adicionales
si es necesario tomar el control del
bus dos veces por medio de un
procedimiento de arbitraje

[STALLINGS 3.4] 42
Tipos de transferencia de datos
Un bus permite varios tipos de transferencias de datos
Todos los buses permiten transferencias de lectura y escritura
Transferencias de lectura: esclavo maestro
Transferencias de escritura: maestro esclavo
En el caso de lneas dedicadas, la
direccin se sita en el bus de
direcciones y se mantiene ah mientras
que el dato se ubica en el bus de datos
En una escritura, el maestro pone el
dato tan pronto se estabiliza la direccin
y el esclavo ha podido reconocerla
En una lectura, el esclavo pone el dato
tan pronto como haya reconocido la
direccin y disponga del mismo

[STALLINGS 3.4] 43
Tipos de transferencia de datos
Algunos buses permiten operaciones combinadas
Una lectura-modificacin-escritura es una lectura seguida
inmediatamente de una escritura en la misma direccin
La direccin se proporciona una sola vez al comienzo de la operacin
La operacin se considera indivisible para evitar el acceso al dato por
parte de otros maestros del bus (proteccin de memoria compartida)

[STALLINGS 3.4] 44
Tipos de transferencia de datos
Algunos buses permiten operaciones combinadas
Una lectura-despus-de-escritura consiste en una escritura
seguida de una lectura en la misma direccin
Tambin es una operacin indivisible
La lectura puede tener el propsito de comprobar el resultado

[STALLINGS 3.4] 45
Tipos de transferencia de datos
Algunos buses permiten transferencias de
bloques de datos
Hay un ciclo de direccin y luego varios ciclos de datos
El primer dato se transmite a/desde la direccin
especificada, mientras que el resto de datos se
transfieren a/desde las direcciones siguientes

[STALLINGS 3.4] 46
Estructura del tema
Introduccin
Buses: conceptos generales
Estructura de un bus
Jerarquas de buses mltiples
Elementos de diseo de un bus
El bus PCI
Estructura
rdenes
Transferencia de datos
Arbitraje

47
El bus PCI
El bus PCI (Peripheral Component Interconnect)
es un bus muy popular de ancho de banda elevado
e independiente del procesador

Est diseado para permitir una cierta variedad de


configuraciones basadas en sistemas monoprocesador
y sistemas multiprocesador
Proporciona un conjunto de funciones de uso general
Las direcciones y datos estn multiplexadas en el tiempo
El esquema de arbitraje empleado es centralizado
Utiliza temporizacin sncrona

[STALLINGS 3.5] 48
El bus PCI
El diseo del bus PCI se ha realizado especficamente
para ajustarse a los requisitos de E/S de los
sistemas actuales

Podemos distinguir tres ventajas del bus PCI


Es econmico: se implementa con muy pocos circuitos
Es flexible: permite que otros buses se conecten a l
Es rpido: comparado con otras especificaciones comunes de
bus, proporciona un mejor rendimiento para los subsistemas
de E/S de alta velocidad
Puede utilizarse como bus de perifricos
Tambin puede utilizarse para una arquitectura de entreplanta

[STALLINGS 3.5] 49
El bus PCI
Las especificaciones del bus PCI son
de dominio pblico
Son respetadas por un amplio abanico de fabricantes de
procesadores y perifricos, por lo que los productos de
diferentes compaas son compatibles
La asociacin PCI SIG (special interest group) contina el
desarrollo de las especificaciones y vela por que se mantenga
la compatibilidad

El resultado ha sido que el bus PCI no solo est


ampliamente adoptado en la actualidad sino que
su uso se sigue extendiendo

[STALLINGS 3.5] 50
PCI en sistemas monoprocesador
Un dispositivo integra el controlador de
memoria y el adaptador al bus PCI
Proporciona el acoplamiento al procesador (buffer temporal)
Asla la capacidad de E/S del procesador de la velocidad real
del bus, lo que posibilita transmitir datos a alta velocidad

[STALLINGS 3.5] 51
PCI en sistemas multiprocesador
Se pueden conectar una o varias configuraciones
PCI al bus del sistema por medio de adaptadores
Al bus del sistema slo se conectan las unidades
procesador/cach, la memoria principal y los adaptadores
Los adaptadores mantienen la independencia procesador-PCI

[STALLINGS 3.5] 52
Estructura del tema
Introduccin
Buses: conceptos generales
Estructura de un bus
Jerarquas de buses mltiples
Elementos de diseo de un bus
El bus PCI
Estructura
rdenes
Transferencia de datos
Arbitraje

53
Estructura del bus PCI
El estndar actual permite configurar el bus PCI como
un bus de 32 64 bits
Hay 49 lneas de seal obligatorias que se dividen en los
siguientes grupos funcionales:
Terminales de sistema: reloj y reinicio
Terminales de direcciones y datos
32 lneas para direcciones y datos multiplexadas en el tiempo
Lneas adicionales para interpretar y validar las direcciones y datos
Terminales de control de interfaz: controlan la temporizacin de las
transferencias y permiten la coordinacin entre emisor y receptor
Terminales de arbitraje: no son lneas compartidas cada maestro
tiene su propio par de lneas que lo conectan con el rbitro del bus
Terminales para seales de error: utilizadas para indicar errores
(paridad)

[STALLINGS 3.5] 54
Estructura del bus PCI

[STALLINGS 3.5] 55
Estructura del bus PCI

[STALLINGS 3.5] 56
Estructura del bus PCI

[STALLINGS 3.5] 57
Estructura del bus PCI
El estndar actual permite configurar el bus PCI como
un bus de 32 64 bits
La especificacin tambin define 51 seales opcionales que
se dividen en los siguientes grupos funcionales:
Terminales de interrupcin: no son lneas compartidas cada
dispositivo tiene sus propias lneas para generar peticiones a un
controlador de interrupciones
Terminales de soporte de cach: necesarios para permitir memorias
cach en el bus asociadas a un procesador o a otro dispositivo
Terminales de ampliacin a bus de 64 bits
32 lneas para direcciones y datos multiplexadas en el tiempo que
se pueden combinar con las obligatorias para tener un total de 64
Lneas adicionales para interpretar y validar las direcciones y datos, as
como para permitir que dos dispositivos acuerden el uso de los 64 bits
Terminales de test: siguen estndar IEEE para procedimientos de test
[STALLINGS 3.5] 58
Estructura del bus PCI

[STALLINGS 3.5] 59
Estructura del bus PCI

[STALLINGS 3.5] 60
Estructura del tema
Introduccin
Buses: conceptos generales
Estructura de un bus
Jerarquas de buses mltiples
Elementos de diseo de un bus
El bus PCI
Estructura
rdenes
Transferencia de datos
Arbitraje

61
rdenes del bus PCI
La actividad del bus consiste en transferencias entre
dispositivos conectados al bus
El dispositivo que inicia la transferencia es el maestro
Cuando el maestro adquiere el control del bus determina el
tipo de transferencia que se realizar (lneas C/BE)

Los tipos de rdenes son:


Reconocimiento de interrupcin
Orden de lectura generada por el controlador de interrupciones del bus
Las lneas de direccin no se utilizan para direccionar el dispositivo
Las lneas de byte activo (byte enable) indican el tamao del
identificador de interrupcin a devolver

[STALLINGS 3.5] 62
rdenes del bus PCI
Los tipos de rdenes son:
Ciclo especial: se utiliza para iniciar la difusin de un
mensaje a uno o ms destinatarios
Ciclo de direccin dual: el maestro utiliza esta orden para
indicar que la transferencia utiliza direcciones de 64 bits
Lectura de E/S y Escritura de E/S
Se utilizan para intercambiar datos entre el maestro y
un controlador de E/S
Cada dispositivo de E/S tiene su propio espacio de direcciones
Las lneas de direcciones se utilizan para indicar un
dispositivo concreto y para especificar los datos a
transferir a/desde ese dispositivo

[STALLINGS 3.5] 63
rdenes del bus PCI
Los tipos de rdenes son:
Lectura de memoria
Se utiliza para especificar la transferencia de una secuencia de datos
desde memoria durante uno o ms ciclos de reloj
Si el controlador de memoria utiliza el protocolo PCI para las
transferencias entre la cach y la memoria principal, la transferencia
se realizar en trminos de lneas de cach
Hay tres rdenes de lectura de memoria distintas:

[STALLINGS 3.5] 64
rdenes del bus PCI
Los tipos de rdenes son:
Escritura en memoria
Se usa para transferir datos a memoria durante uno
o ms ciclos del bus
Hay dos rdenes de escritura en memoria distintas
Escritura en memoria
Escritura e invalidacin de memoria
Transfiere datos e indica que al menos se ha escrito una lnea de cach
Permite el funcionamiento de una cach write back (postescritura)

Lectura de configuracin y Escritura de configuracin


Permiten que el maestro lea y actualice los parmetros de
configuracin de un dispositivo conectado al bus
Cada dispositivo puede disponer de hasta 256 registros internos
que permitan configurarlo

[STALLINGS 3.5] 65
Estructura del tema
Introduccin
Buses: conceptos generales
Estructura de un bus
Jerarquas de buses mltiples
Elementos de diseo de un bus
El bus PCI
Estructura
rdenes
Transferencia de datos
Arbitraje

66
Transferencias de datos en el bus PCI
Toda transferencia de datos en un bus PCI es una
transaccin nica que consta de una fase de
direccionamiento y una o ms fases de datos

Como ejemplo veremos la temporizacin de una


operacin de lectura tpica (la de escritura es anloga)
Los dispositivos conectados al bus interpretan las lneas en los
flancos de subida de la seal de reloj (comienzo del ciclo)
Todos los eventos se sincronizan en los flancos de bajada de
la seal de reloj (punto medio del ciclo)

[STALLINGS 3.5] 67
Transferencias de datos en el bus PCI

[STALLINGS 3.5] 68
Transferencias de datos en el bus PCI
a. Una vez que el maestro del bus tiene el control del mismo
inicia la transaccin
Sita la direccin de inicio en AD y la orden de lectura en C/BE
Activa la seal FRAME, la cual debe permanecer activa hasta que
el maestro est listo para terminar la ltima fase de datos
b. Al comienzo del segundo ciclo de reloj, el dispositivo del
que se lee reconocer su direccin en las lneas AD
c. El dispositivo de lectura activa DEVSEL para indicar que
reconoce su direccin (se mantendr activa durante toda la
transmisin) mientras que el maestro deja libre AD
En todas las lneas que pueden ser activadas por ms de un dispositivo se
necesita un ciclo de cambio para que la liberacin se complete
El maestro cambia las lneas C/BE para indicar cules de
las lneas AD se utilizarn para transferir el dato
El maestro activa IRDY indicando que est listo para recibir el primer dato

[STALLINGS 3.5] 69
Transferencias de datos en el bus PCI
d. El dispositivo de lectura responde
Sita el dato solicitado en las lneas AD
Activa TRDY para indicar que hay un dato vlido en el bus
e. El maestro lee el dato al comienzo del cuarto ciclo de reloj y
cambia las lneas de habilitacin de byte segn se necesite para
la prxima lectura
f. En este ejemplo, el dispositivo de lectura necesita algn tiempo
para preparar el segundo bloque de datos
Desactiva TRDY para indicar que no transmitir el prximo ciclo
El maestro, en consecuencia, no lee las lneas de datos al comienzo del
quinto ciclo de reloj y no cambia la seal de habilitacin de byte
El nuevo bloque de datos se leer al comienzo del sexto ciclo

[STALLINGS 3.5] 70
Transferencias de datos en el bus PCI
g. Durante el sexto ciclo de reloj, el dispositivo de lectura
sita el tercer bloque de datos en el bus, pero el maestro
no est preparado para leerlo
El maestro desactiva IRDY
El dispositivo de lectura mantiene el dato en el bus durante un ciclo extra
h. El maestro sabe que el tercer bloque de datos es el ltimo,
Desactiva FRAME para indicarle al dispositivo de lectura que ste es el
ltimo dato a transferir
Activa IRDY para indica que est listo para completar la transferencia
i. El maestro desactiva IRDY y el dispositivo de lectura desactiva
TRDY y DEVSEL: el bus vuelve a estar libre

[STALLINGS 3.5] 71
Estructura del tema
Introduccin
Buses: conceptos generales
Estructura de un bus
Jerarquas de buses mltiples
Elementos de diseo de un bus
El bus PCI
Estructura
rdenes
Transferencia de datos
Arbitraje

72
Arbitraje del bus PCI
El bus PCI utiliza un esquema de arbitraje centralizado
sncrono en el que cada maestro tiene una nica seal
de peticin (REQ) y cesin (GNT) del bus
Estas lneas se conectan a un rbitro central, lo que
permite que los dispositivos accedan al bus tras un
simple intercambio de seales de peticin y cesin

[STALLINGS 3.5] 73
Arbitraje del bus PCI
La especificacin del bus PCI no indica un algoritmo
particular de arbitraje
El rbitro puede utilizar cualquier esquema de prioridad
Primero en llegar, primero en servirse
Rotatorio (round robin)

El maestro establece, para cada transferencia que desee
realizar, si tras la fase de direccin sigue una o ms fases
de datos consecutivas
Como ejemplo veremos el intercambio de seales
necesario para decidir cual de entre dos dispositivos, A
y B, obtiene el control del bus

[STALLINGS 3.5] 74
Arbitraje del bus PCI

[STALLINGS 3.5] 75
Arbitraje del bus PCI
a. Al comienzo del primer ciclo de reloj el rbitro detecta que A ha
activado su seal REQ
b. Durante el primer ciclo de reloj, B activa tambin su seal REQ
c. Al mismo tiempo, el rbitro activa GNT-A para ceder el bus a A
d. A detecta al comienzo del segundo ciclo de reloj que se le ha
cedido el bus
IRDY y TRDY estn desactivadas, por lo que el bus est libre
En consecuencia activa FRAME, pone la direccin en el bus AD y
la orden correspondiente en las lneas C/BE
Adems, mantiene activa su seal REQ porque debe realizar otra
transferencia despus de sta

[STALLINGS 3.5] 76
Arbitraje del bus PCI
e. Al comienzo del tercer ciclo de reloj el rbitro vuelve a
comprobar las lneas REQ y decide ceder el bus a B para
la siguiente transaccin
El rbitro desactiva GNT-A y activa GNT-B
A pesar de tener acceso al bus, B tendr que esperar a que est libre,
pues IRDY y TRDY indican que sigue ocupado
f. A desactiva FRAME para indicar que su ltima transferencia
de datos est activa
Pone los datos en el bus AD y se lo indica al dispositivo destino con IRDY
El dispositivo lee el dato al comienzo del siguiente ciclo de reloj
g. Al comienzo del quinto ciclo de reloj, B encuentra IRDY y
TRDY desactivadas
Toma el control del bus activando FRAME
Desactiva REQ porque no desea transmitir un segundo dato

[STALLINGS 3.5] 77
Arbitraje del bus PCI
Ms adelante, el dispositivo A (que mantena REQ
activa) recuperar el control del bus y continuar la
transmisin pendiente

Es importante destacar que el arbitraje se produce al


mismo tiempo que el actual maestro del bus realiza
una transferencia
No se pierden ciclos de bus para realizar el arbitraje
Esto se conoce como arbitraje oculto o solapado
(hidden arbitration)

[STALLINGS 3.5] 78
Bibliografa
[STALLINGS]
Organizacin y arquitectura de computadores
William Stallings
Pearson Education Prentice Hall, 2005 (7 edicin)

79

También podría gustarte