buses pci
DESCRIPTION
BUSES PCITRANSCRIPT
BUSES PCI
9/11/2014 UNIVERSIDAD DE CARTAGENA
ARQUITECTURA DE
COMPUTADORES
BUSES PCI
ING. ALEX JIMENEZ
PRESENTADO POR:
ALBERTO LUNA RIVERA
FABIAN ESCUDERO
PAREJA
INGENIERIA DE
SISTEMAS VI
TABLA DE CONTENIDO
1. Introducción
2. Metodología
3. El bus PCI
4. Estructura
5. Versiones y actualización
6. Reloj
7. Tipo de bus
8. Ancho de Banda
9. Arbitraje
10. Temporización
11. Transferencia de datos
Introducción
¿Qué es un bus de interconexión?
Un bus es un camino de comunicación compartido entre dos o más dispositivos.
Cualquier señal transmitida estará disponible para todos los demás dispositivos:
Sólo un dispositivo puede transmitir en un momento dado
Si dos dispositivos transmiten al mismo tiempo, sus señales se
solaparán y, probablemente, se distorsionarán
Los dispositivos deben obtener el control del bus antes de poder
utilizarlo para transferir información
¿De qué están formados los buses de interconexión?
Un bus suele estar formado por varias líneas de comunicación:
Cada línea tiene un significado o función particular
Físicamente, las líneas de comunicación no son sino un conjunto de
conductores eléctricos
Cada línea transmite señales digitales binarias (0,1):
Se puede transmitir una secuencia de dígitos binarios a través de una
única línea durante un intervalo de tiempo
Se pueden utilizar varias líneas del bus para transmitir dígitos binarios
simultáneamente en paralelo.
Metodología
Para la realización de este trabajo se tuvo en cuenta los conceptos sobre los
diferentes tipos de buses de interconexión y nos centramos en el estudio de buses
PCI, para ello se hizo una investigación profunda sobre el tema ayudándonos con
las herramientas puestas a disposición por parte del profesor, además se buscó
ayuda externa consultando a personas relacionadas con el tema para poder
despejar dudas y así tener una mejor comprensión acerca de los buses PCI.
BUSES PCI
El bus PCI (Peripheral Component Interconnect), es un bus muy popular de
ancho de banda elevada e independiente del procesador, está diseñado 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 están multiplexadas en el tiempo
El esquema de arbitraje empleado es centralizado
Utiliza temporización síncrona
El diseño del bus PCI se ha realizado específicamente para ajustarse a los
requisitos de E/S de los sistemas actuales.
Podemos distinguir tres ventajas del bus PCI
Es económico: se implementa con muy pocos circuitos
Es flexible: permite que otros buses se conecten a él
Es rápido: comparado con otras especificaciones comunes de bus,
proporciona un mejor rendimiento para los subsistemas de E/S de alta
velocidad.
Consiste en un bus de ordenador estándar para conectar dispositivos periféricos
directamente a su placa base.
“El principal motivo de su gran desarrollo no se debió a las altas prestaciones,
sino lo económico de su implementación.”
Estructura
El estándar actual permite configurar el bus PCI como un bus de 32 ó 64 bits
Hay 49 líneas de señal obligatorias que se dividen en los siguientes grupos
funcionales:
Terminales de sistema: reloj y reinicio
Terminales de direcciones y datos
32 líneas para direcciones y datos multiplexadas en el tiempo
Líneas adicionales para interpretar y validar las direcciones y datos
Terminales de control de interfaz: controlan la temporización de las
transferencias y permiten la coordinación entre emisor y receptor
Terminales de arbitraje: no son líneas compartidas – cada maestro tiene
su propio par de líneas que lo conectan con el árbitro del bus
Terminales para señales de error: utilizadas para indicar errores
(paridad…)
La especificación también define 51 señales opcionales que se dividen en los
siguientes grupos funcionales:
Terminales de interrupción: no son líneas compartidas – cada dispositivo
tiene sus propias líneas 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 ampliación a bus de 64 bits
32 líneas para direcciones y datos multiplexadas en el tiempo que se
pueden combinar con las obligatorias para tener un total de 64
Líneas 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 estándar IEEE para procedimientos de test
Versiones y actualización
La versión original del bus PCI es de 32 bits de ancho y su velocidad de reloj es de
33 MHz, lo que en teoría permite un rendimiento de 132 Mb/s a 32 bits. En las
arquitecturas de 64 bits, el bus funciona a 64 bits y su rendimiento teórico es de 264
Mb/s.
Con el fin de actualizar el estándar PCI, se formó un grupo de interés compuesto
por un gran número de fabricantes, apodado PCI-SIG (Grupo de interés especial de
PCI). Se publicaron actualizaciones del bus. La versión 2.0 del 30 de abril de 1993
definió la forma de los conectores y las tarjetas adicionales, y le confirió una
velocidad de reloj de 66 MHz, en contraste con los 33 MHz de la versión 1.0. De
esta manera se logró duplicar el rendimiento teórico hasta alcanzar los 266 MHz a
32 bits.
El 1 de junio de 1995, la revisión 2.1 del bus PCI mejoró su uso hasta 66 MHz. En
ese momento, los ingenieros anticiparon un movimiento progresivo desde un voltaje
señalizado de 5 V hasta 3,3 V.
La versión 2.2 del bus PCI, que apareció el 18 de diciembre de 1998, incorporó la
capacidad de conectar los periféricos directamente (conexión en caliente).
La revisión 2.3, editada el 29 de marzo de 2002, eliminó la posibilidad de utilizar
tarjetas de 5 V adicionales, pero incorporó el uso de tarjetas que admiten ambos
voltajes con el fin de garantizar la compatibilidad descendente. La revisión 3.0 del
estándar PCI eliminó por completo el uso de tarjetas de 5 V compatibles.
En septiembre de 1999, tuvo lugar un cambio importante en el bus PCI, cambio que
fue conocido como PCI-X. El bus PCI-X 1.0 admite frecuencias de 66, 100 y 133
MHz. Dicho bus es completamente compatible con el formato PCI, y las ranuras
PCI-X admiten tarjetas de formato PCI y viceversa.
La revisión 2.0 del bus PCI-X admite frecuencias de 66, 100, 133, 266 y 533 MHz,
y permite un rendimiento de 4,27 Gb/s a 64 bits.
ANCHO DE BANDA y DE BUS (bits)
El ancho de bus PCI puede ser de 32 bits o 64 bits. Con el bus de 32 bits, se alcanza
una tasa de transferencia (ancho de banda) máxima de 133 MB por segundo (33,33
MHz × 32 bits ÷ 8 bits/byte = 133 MB/s), mientras que con el bus de 64 bits se
alcanza una tasa de transferencia (ancho de banda) máxima de 266 MB por
segundo (MB/s).
Las nuevas versiones PCI-X también trabajan con un ancho de bus de 32 o 64 bits,
pero disponen de un ancho de banda más grande que las versiones iniciales (PCI
1.0, 2.0 y 3.0), teniendo una tasa de transferencia máxima de hasta de 4GB/s a 64
bits……
Aquí las versiones y su ancho de banda.
Reloj (frecuencia)
Los buses PCI manejan distintos tipos de frecuencia de reloj.
Las versiones iniciales y las comúnmente usadas por los usuarios finales manejan
velocidades de 33 MHz, para los buses con ancho de bits de 32 y de 66 MHz para
los buses con ancho de bits de 64.
Estas velocidades de reloj fueron ampliadas con la llegada de la versión PCI-X,
aumentando la velocidad desde 100 MHz hasta los 133 MHz en la versión PCI-X
1.0. En la versión PCI-X 2.0, se amplían aún más las velocidades de reloj, llegado
estas hasta los 533 MHz.
Tipo de bus
Las líneas de bus se pueden dividir en dos tipos genéricos:
Dedicadas: están permanentemente asignadas a una función o a un conjunto de
componentes del computador
Un ejemplo típico de dedicación funcional es el uso de líneas separadas para
direcciones y datos
La dedicación física requiere el uso de múltiples buses, cada uno de los cuales
conecta solo a un conjunto de controladores.
Ventaja: alto rendimiento por el menor número de conflictos
Desventaja: incremento del costo y el tamaño del sistema
Multiplexadas: pueden utilizarse para propósitos diferentes direcciones y datos
podrían transmitirse por la misma línea si se utilizara una señal de control “Dirección
Válida”
Se pone la dirección en el bus y se activa la línea de control, dando un tiempo para
que los distintos controladores lean el bus y comprueben si están siendo
direccionados
Después de un periodo de tiempo se quita la dirección del bus y se utilizan las mimas
líneas para realizar la transferencia
El multiplexado en el tiempo de las líneas permite utilizar las mismas líneas para
usos diferentes
Ventaja: normalmente ahorra espacio y costes
Desventajas:
Los controladores necesitarán una circuitería más compleja
La falta de paralelismo puede reducir el rendimiento
Arbitraje
El bus PCI utiliza un esquema de arbitraje centralizado síncrono en el que
cada maestro tiene una única señal de petición (REQ) y cesión (GNT) del
bus
Estas líneas se conectan a un árbitro central, lo que permite que los
dispositivos accedan al bus tras un simple intercambio de señales de petición
y cesión
La especificación 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 dirección sigue una o más fases de datos consecutivas
Como ejemplo veremos el intercambio de señales necesario para decidir cuál de
entre dos dispositivos, A y B, obtiene el control del bus.
a. Al comienzo del primer ciclo de reloj el árbitro detecta que A ha activado su
señal REQ
b. Durante el primer ciclo de reloj, B activa también su señal 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 están desactivadas, por lo que el bus está libre
En consecuencia activa FRAME, pone la dirección en el bus AD y la
orden correspondiente en las líneas C/BE
Además, mantiene activa su señal REQ porque debe realizar otra
transferencia después de ésta.
e. Al comienzo del tercer ciclo de reloj el árbitro vuelve a comprobar las líneas
REQ y decide ceder el bus a B para la siguiente transacción
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
h. Más adelante, el dispositivo A (que mantenía REQ activa) recuperará el
control del bus y continuará la transmisión pendiente
i. 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)
TEMPORIZACIÓN
SÍNCRONA ASÍNCRONA
Está determinado por un reloj.
El bus incluye una línea de reloj a
través de la cual una señal de rejo
secuencia y valida todas las
transferencias (con misma duración
de tiempo). Las señales de duración
transfieren de 1 o 0. Cuando ocurre
un único intervalo de 1 seguido a
otro de 0, se lo llama ciclo de reloj.
Éste intervalo llama al tiempo de
unidad<<Time slot>>.
Los eventos se prolongan durante
un único ciclo reloj.
EJEMPLO:
La CPU activa una señal de lectura
y sitúa una dirección de memoria en
las líneas de dirección. Al mismo
tiempo se activa una señal de inicio,
que indica la presencia en el bus de
dirección y de la información de
control.
El módulo de memoria reconoce la
dirección y luego de un retardo de
ciclo, sitúa el dato y la señal de
reconocimiento en el bus...
No existe reloj.
Se habla de un interbloqueo (se confirman
las transferencias que se están llevando a
cabo), donde se dispone de señales que
validan interactivamente el envío y recogida
de información.
El bus puede ser compartido por una mezcla
de dispositivos lentos y rápidos.
EJEMPLO:
El procesador sitúa las señales de dirección
y lectura en el bus. Después de un breve
intervalo, cuando las señales han sido
estabilizadas, se activa la señal MSYN
(Sincronización del maestro), que indica la
presencia de las señales de dirección y
control válidas.
Luego de ello, el módulo de memoria
responde proporcionando el dato y una
señal SSYN(Sincronización del esclavo)
Transferencia de datos
Toda transferencia de datos en un bus PCI es una transacción única que
consta de una fase de direccionamiento y una o más fases de datos
Como ejemplo veremos la temporización de una operación de lectura típica
(la de escritura es análoga)
Los dispositivos conectados al bus interpretan las líneas en los flancos
de subida de la señal de reloj (comienzo del ciclo)
Todos los eventos se sincronizan en los flancos de bajada de la señal
de reloj (punto medio del ciclo)
a. Una vez que el maestro del bus tiene el control del mismo inicia la
transacción
Sitúa la dirección de inicio en las líneas AD y la
orden de lectura en las líneas C/BE
Activa la señal 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 dirección en las líneas AD
c. El maestro deja libres las líneas AD
En todas las líneas que pueden ser activadas por más de un dispositivo
se necesita un ciclo de cambio para que la liberación se complete y el
bus pueda ser utilizado por el dispositivo
El maestro cambia las líneas C/BE para indicar cuáles de las líneas AD
se utilizarán para transferir el dato
El maestro activa IRDY indicando que está listo para recibir el primer dato
d. El dispositivo de lectura se prepara para responder
Activa DEVSEL para indicar que ha reconocido la dirección y va a
responder; la señal permanecerá activa mientras dure la transferencia
Sitúa el dato solicitado en las líneas AD
Activa TRDY para indicar que hay un dato válido en el bus
e. El maestro lee el dato al comienzo del cuarto ciclo de reloj y cambia las líneas
de habilitación de byte según se necesite para la próxima lectura
f. En este ejemplo, el dispositivo de lectura necesita algún tiempo para preparar
el segundo bloque de datos
Desactiva TRDY para indicar que no transmitirá el próximo ciclo
El maestro, en consecuencia, no lee las líneas de datos al comienzo
del quinto ciclo de reloj y no cambia la señal de habilitación de byte
El nuevo bloque de datos se leerá al comienzo del sexto ciclo
g. Durante el sexto ciclo de reloj, el dispositivo de lectura sitúa el tercer
bloque de datos en el bus, pero el maestro no está preparado para
leerlo
a. El maestro desactiva IRDY
b. 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,
a. Desactiva FRAME para indicarle al dispositivo de lectura que éste es
el último dato a transferir
b. Activa IRDY para indica que está listo para completar la transferencia
i. El maestro desactiva IRDY y el dispositivo de lectura contesta desactivando
TRDY y DEVSEL: el bus vuelve a estar libre