Vous êtes sur la page 1sur 35

BUS PCI

Estructura del tema

El Bus PCI

Estructura
rdenes
Transferencia de datos
Arbitraje

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
3

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
4

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
5

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

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

Estructura del tema

El bus PCI

Estructura
rdenes
Transferencia de datos
Arbitraje

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)
9

Estructura del bus PCI

10

Estructura del bus PCI

11

Estructura del bus PCI

12

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


13

Estructura del bus PCI

14

Estructura del bus PCI

15

Estructura del tema

El bus PCI

Estructura
rdenes
Transferencia de datos
Arbitraje

16

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
17

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

18

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:

19

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

20

Estructura del tema

El bus PCI

Estructura
rdenes
Transferencia de datos
Arbitraje

21

Transferencias de datos en el bus PCI

Toda transferencia de datos en un bus PCI es


transaccin nica que consta de una fase
direccionamiento y una o ms fases de datos

una
de

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)

22

Transferencias de datos en el bus PCI

23

Transferencias de datos en el bus PCI


a.

Una vez que el maestro del bus tiene el control del mismo
inicia la transaccin

b.
c.

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

Al comienzo del segundo ciclo de reloj, el dispositivo del


que se lee reconocer su direccin en las lneas AD
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
24

Transferencias de datos en el bus PCI


d.

El dispositivo de lectura responde

e.

f.

Sita el dato solicitado en las lneas AD


Activa TRDY para indicar que hay un dato vlido en el bus

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
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

25

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

h.

El maestro sabe que el tercer bloque de datos es el ltimo,

i.

El maestro desactiva IRDY


El dispositivo de lectura mantiene el dato en el bus durante un ciclo extra
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

El maestro desactiva IRDY y el dispositivo de lectura desactiva


TRDY y DEVSEL: el bus vuelve a estar libre

26

Estructura del tema

El bus PCI

Estructura
rdenes
Transferencia de datos
Arbitraje

27

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 sesin (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 sesin.

28

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
29

Arbitraje del bus PCI

30

Arbitraje del bus PCI


a.
b.
c.
d.

Al comienzo del primer ciclo de reloj el rbitro detecta que A ha


activado su seal REQ
Durante el primer ciclo de reloj, B activa tambin su seal REQ
Al mismo tiempo, el rbitro activa GNT-A para ceder el bus a A
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

31

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

f.

A desactiva FRAME para indicar que su ltima transferencia


de datos est activa

g.

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

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

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

32

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)

33

Palabras claves

34

FIN
35

Vous aimerez peut-être aussi