You are on page 1of 97

2. Buses locales normalizados.

1. Concepto de bus normalizado.


2. Bus AT, ISA, EISA.
3. Bus PCI, AGP.
4. Plug and Play.
5. Ejemplos de aplicación.

1
2. Buses locales normalizados. Periféricos e Interfaces , 3º ITIS
2.1. Concepto de bus normalizado

• Bus: Conjunto de líneas eléctricas (tiras de metal


sobre una placa de circuito impreso).
• Medio compartido: Impresora

Teclado Monitor H.D.

CPU Memoria Módulo Módulo Módulo Módulo


E/S E/S E/S E/S

Bus del sistema

Gestor del bus


(Bus Master) Mecanismos de contienda
2
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
• Estructura: Impresora

Teclado Monitor H.D.

CPU Memoria Módulo Módulo Módulo Módulo


E/S E/S E/S E/S

direcciones

datos

control

sincronización

3
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Líneas típicas del bus de control.

• Escritura en memoria (Memory write).


• Lectura de memoria (Memory Read).
• Escritura de E/S (I/O Write).
• Lectura de E/S (I/O Read).
• Transferencia reconocida (Transfer ACK-
Acknowledge).
• Petición del bus (Bus Request).
• Cesión del bus (Bus Grant).
• Petición de interrupción (Interrupt Request).
• Interrupción reconocida (Interrupt ACK).
• Reloj (Clock).
• Inicio (Reset).

4
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Procesos de transferencia.

• Escritura de E/S.
• El módulo de E/S que quiere iniciar la transferencia solicita el
uso del bus (Bus Request).
• El arbitrador le concede el bus (Bus Grant).
• Sitúa en el bus de direcciones la dirección de memoria o
puerto de E/S donde se quiere transferir el dato.
• Sitúa el dato a transferir en el bus de datos.
• Activa la línea de I/O Write del bus de control.
• El destinatario ha recibido el dato (Transfer ACK).
• Deja libre el bus para ser usado por otro módulo.

5
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
• Lectura de E/S.
• El módulo de E/S que quiere iniciar la transferencia solicita el
uso del bus (Bus Request).
• El arbitrador le concede el bus (Bus Grant).
• Sitúa en el bus de direcciones la dirección de memoria o
puerto de E/S donde se quiere transferir el dato.
• Sitúa el dato a transferir en el bus de datos.
• Activa la línea de I/O Read del bus de control.
• El destinatario ha recibido el dato (Transfer ACK).
• Lectura del dato en el bus de datos.
• Deja libre el bus para ser usado por otro módulo.

6
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Notación.

• Módulo que inicia la transferencia: Bus Master.


• Módulo direccionado por el Bus Master se
denomina Bus Slave.
• Arbitrador: circuito especial que recoge las
peticiones para tomar el control del bus y
decide quién debe tomarlo en cada momento.

7
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Elementos de diseño.

• Criterios:
• Tipo:
• dedicados o
• multiplexados
(en sentido temporal o físico)
• Método de arbitraje:
• Centralizado o
• distribuido
• Temporización:
• Síncronos o
• asíncronos
• Anchura del Bus:
• Dirección o datos
• Ancho de banda.
8
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Ancho de banda de algunos buses típicos.

BUS Reloj (MHz) Bits A.B. (MB/S)

PC original 4.77 8 4.77


ISA 8 16 16
EISA 8 32 32
MCA 10 32 40
VLB 33 32 132(lectura)
66(escritura)
PCI 33 32/64 132/264
AGP
Pentium (system) 66 64 528
SCSI-2 10 16/32 20/40
PCMCIA 1 16 2
9
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Ancho de banda requerido en algunas aplicaciones.

Aplicación A.B. (MB/S)

Puerto serie 9600 bps 1.17·10-3


Modem 56 K 7·10-3
Sonido telefónico 8·10-3
Sonido CD 0.15
Ethernet 10 Mps 1.25
Ethernet 100 Mps 12.5
CD-ROM 32X 4.7
Video 1024x768 67.5

10
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Reseña histórica.

• Inicialmente el bus del PC se concibe para la


comunicación entre CPU y Memoria.
• Necesidad de sacar el bus de sistema al exterior del
PC.
• Con la aparición del PC-XT (IBM, 1980) se provee al
PC de la posibilidad de expandir el bus del sistema
mediante un zócalo en el cual conectar tarjetas para
conexión con los distintos buses de periféricos.

Bus de expansión:
Varias (6, 8, …) ranuras (slots) en los que conectar
tarjeta controladora de CD-ROM, video, fax-modem, …
11
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
• Inicialmente el bus de expansión XT presentaba las mismas
características que el bus de sistema (procesador Intel
8088):
Bus de datos de 8 bits
Reloj: 4.77 MHz
• Con la aparición del PC-AT (IBM, 1984) se rompe la relación
entre bus y microprocesador (Intel 80286).
• En principio el reloj de procesador de un AT funcionaba a la
misma velocidad de reloj de bus.
Bus de datos de 16 bits
Reloj: 8.33 MHz
• Sin embargo, IBM posibilitó que el microprocesador fuese
más rápido que el bus, abriendo una puerta importante a la
arquitectura del PC.

ISA (Industry Standard Arquitecture), 1988


12
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
• Objetivo:
mejora de la velocidad de comunicación de datos
entre los buses de dispositivos externos y el bus de sistema.
• Estrategias:
diseño de arquitecturas y software de comunicación
(protocolos)
Ejemplos: ISA, EISA, EDSI, SCSI, IDE, ect.
• Las limitaciones del bus de expansión ISA impulsaron
nuevas propuestas.
• IBM sacó al mercado otro bus que rompía con la
compatibilidad con el estándar ISA: MCA
Microchannel, montado en la gama PS/2.

Bus de datos de 32 bits, reloj: 10 MHz


13
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
• MCA tuvo poca aceptación entre los fabricantes de
tarjetas de expansión puesto que debían ser
diseñadas exclusivamente para él.
• Buscando compatibilidad con las tarjetas ya existentes
los fabricantes establecieron las especificaciones del
bus EISA (Extended ISA):
Bus de datos de 32 bits
Reloj: 8.33 MHz (por compatibilidad con ISA)
• La revolución en el mercado de los buses surgió con la
aparición del procesador Intel 80486 (reloj: 33 MHz) y
los sistemas gráficos de ventanas (Microsoft
Windows).

Cuello de botella en el bus


14
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
• Solución:
Enlazar el adaptador gráfico y otros
periféricos directamente al microprocesador

Creación de buses locales


• Comité VESA (Video Electronics Standards Association,
organismo para la estandarización de dispositivos de video)
presentó el primer tipo de bus local: VLB.

Bus de datos de 32 bits y en su versión 2.0 de 64 bits.


Reloj: partiendo de 33 MHz podía alcanzar hasta 50 MHz.

15
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
• En 1992 Intel saca al mercado su bus local: PCI
(Peripherical Component Interconnect). No mejoraba a VLB
en rendimiento, pero sí superaba carencias que
presentaba este último.

Inicialmente bus de datos de 32 bits y la actualidad de 64 bits.


Reloj: partiendo de 20 MHz ha llegado en la actualidad a 66 MHz.
Posibilidad de conectar tarjetas que trabajen a distinto voltaje.

16
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Evolución de los procesadores Intel para PC.

PROCESADOR Bus de direcciones Bus de datos


8086 20 16
8088 20 8
80186 20 16
80188 20 8
80286 24 16
80386 SX 32 16
80386 DX 32 32
80486 DX 32 32
80486 SX 32 32
PENTIUM 32 64
PENTIUM PRO 32 64

17
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Arquitectura de un PC actual.

18
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
2.2. Bus AT, ISA, EISA.

• Diferencias entre bus AT y XT:


XT AT
Síncrono Asíncrono
Bus de datos de 8bits Bus de datos de 16bits
Bus de direcciones de 20 bits Bus de direcciones de 24 bits
Reloj: 4.77 MHz Reloj: 8.33 MHz

• Para garantizar compatibilidad entre ambas tarjetas se


le asigna a las tarjetas de ampliación de un freno de
seguridad (señal de estado de espera, wait state),
para dar más tiempo a las tarjetas lentas para
depositar los datos deseados en la CPU.
19
2.2. Bus AT, ISA, EISA. Periféricos e Interfaces , 3º ITIS
• Bus MCA:

La aparición a mediados de los 80 del procesador Intel


80386DX (bus de datos 32 bits) decidió a IBM apostar por la
creación de un bus que se adaptara a este tamaño de bus de
datos. El bus MCA incorpora, además de este cambio, las
siguientes prestaciones:
• Reloj: 10 MHz.
• Tasa de transferencia de hasta 40 Mbytes por segundo.
(teniendo en cuenta que existe una transferencia por ciclo de
reloj).
• Incluye un circuito de control especial a cargo del bus
(conocido como CAP, punto de decisión central),
permitiéndole operar independientemente de la velocidad
e incluso del tipo de procesador empleado.

20
2.2. Bus AT, ISA, EISA. Periféricos e Interfaces , 3º ITIS
• Bus MCA:

• Se establece un mecanismo de arbitraje mediante el cual


la CPU no es más que uno de los posibles dispositivos
que pueden gestionar transferencias. Un proceso
denominado control del bus enlaza con el CAP para
determinar y responder a las prioridades de cada uno de
los dispositivos. Bus Mastering.
• Para permitir la conexión de más dispositivos se
introduce un sistema de interrupciones sensibles al nivel,
más fiable que el sistema de interrupciones del bus ISA.
Compartición de interrupciones.
• Plug & Play (8 años antes de que Microsoft lo introdujera
en el mercado).
• Se introduce una línea de tierra cada cuatro líneas, con lo
cual se reducen interferencias.
21
2.2. Bus AT, ISA, EISA. Periféricos e Interfaces , 3º ITIS
• Bus MCA:

Errores cometidos:
• Consecuencia de las anteriores características hacen que el bus
MCA no sea compatible con ISA (solo trabajan con ranuras
Micro Canal).
• IBM no cedió patentes a los fabricantes de tarjetas y periféricos
• Alto coste de los equipos con MCA.

22
2.2. Bus AT, ISA, EISA. Periféricos e Interfaces , 3º ITIS
• Bus EISA:
Rival de MCA, diseñado por la mayoría de ordenadores
compatibles PC, en un intento por evitar el monopolio de IBM
con su bus MCA.
(AST, Compaq, Epson, Hewlett Packard, NEC, Olivetti, Tandy, Wyse
y Zenith).
Basado en la idea de controlar el bus desde la CPU y
ensanchar la ruta de datos. Mantuvo compatibilidad con ISA
(8.33 MHz) y aportó
• Sistema abierto.
• La arquitectura permite multiproceso:
Varios buses dentro del sistema, cada uno con su
procesador.
• Presencia de un chip (Chip de Sistema Peripérico Integrado,
ISP) en el bus, encargado de controlar el tráfico de datos
señalando prioridades para cada posible punto de colisión o
bloqueo mediante las reglas de control de la especificación
EISA.
23
2.2. Bus AT, ISA, EISA. Periféricos e Interfaces , 3º ITIS
Comparación de tarjetas de ampliación
AT y MCA

24
2.2. Bus AT, ISA, EISA. Periféricos e Interfaces , 3º ITIS
Bus EISA.

25
2.2. Bus AT, ISA, EISA. Periféricos e Interfaces , 3º ITIS
2.3. Bus PCI, AGP.

• Bus PCI:
• Aparición en 1990 de la mano de IBM. Más adelante se liberalizó
su patente.
• Bus de conexión de periféricos de alta velocidad.
• Independiente de la CPU:
Entre el bus y la CPU se instala un controlador de bus PCI.
Esto permite independencia del microprocesador dentro de
un mismo tipo de arquitectura (procesadores Pentium de
Intel, procesadores Alpha de DEC) y entre distintos tipos de
arquitectura (procesadores PowerMacintosh de Apple).
• Bus rápido 33/66 MHz con 32 o 64 bits de datos.
• Soporta un ancho de banda máximo de 132/264 MB/s.
• Conector estilo Miro Channel de 124 pines (188 en su
implementación de 64 bits de datos).
• Cada señal activa del bus PCI está junto o frente a una señal de
alimentación o de tierra. Con ello se minimiza la radiación.
26
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
2.3. Bus PCI, AGP.

• Bus PCI:
• Límite máximo de conectores PCI: 3.
• Diseño basado en la simplicidad y flexibilidad.
• Permite varios procesadores funcionando simultáneamente.
• Configuración automática de dispositivos conectados a él.
• Posibilidad de adaptar tarjetas de expansión ISA a PCI,
mediante un puente (PCI-To-ISA-Bridge).

27
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Escenario de desarrollo del bus PCI.

• Dispositivos que precisan transferencias de grandes


bloques de datos (ej.: tarjeta de video, SCSI, tarjeta
de red) estaban conectados a una de las ranuras del
bus de expansión (ISA, EISA o MCA).
• Todos estos buses sufren de una inadecuada tasa de
transferencia de datos.
• En muchas ocasiones, subsistemas (tarjeta de video),
eran integradas en la misma placa base. Esto podría
hacer pensar que no estaban conectadas al bus de
expansión. Sin embargo sí lo hacía a través de una
versión del bus con buffer. A este bus se le conocía
como X-bus (eXtension del bus de expansión)

28
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
X-bus.

29
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Métodos de conexión de un dispositivo al
bus local del microprocesador.

• Conexión directa.
• Restricciones:
• Dependencia del procesador.
• Sólo puede ser utilizado un dispositivo local para evitar problemas
de impedancia por extra carga.
• Interfaz de conexión del dispositivo con el bus local costosa, dada
la alta frecuencia a la que se trabaja.
• No permite transferencias de datos entre la CPU y otros
dispositivos mientras el dispositivo conectado directamente al bus
local mantenga transferencias con otros periféricos.
• Ejemplo: VLB tipo A.
• Conexión mediante buffer.
• Mejoras respecto a la conexión directa:
• Al estar el bus local con buffer eléctricamente aislado del bus local
del procesador, sólo presenta una impedancia. Usualmente se
pueden ubicar hasta tres dispositivos.

30
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
• Restricciones:
• En esencia, el bus local con buffer y el bus local del procesador
son un único bus: cualquier transferencia iniciada por la CPU
alcanzará el bus local con buffer, aunque no se dirija a ninguno de
los dispositivos alojados allí. Es decir, no es posible la utilización
simultánea.
• Ejemplo: VLB tipo B.
• Conexión con filosofía de estación de trabajo.
• Mejoras respecto a los anteriores:
• Introducción de un a caché de nivel 2 unida a un puente para
adaptar las velocidades de transferencia entre el bus local del
procesador y el bus de entrada/salida de alta velocidad.
• Independencia del procesador que implementa la CPU.
• Ejemplo: PCI.

31
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Conexión directa al bus local.

32
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Conexión al bus local mediante buffer.

33
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Conexión al bus local mediante filosofía de
estación de trabajo.

34
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
VLB.

• Características:
• Aparición en Agosto de 1992 (coetáneo al Intel 80486).
• VLB es una expansión homogeneizada del bus local, que funciona
a 32 bits.
• Puede realizar operaciones a 16 bits.
• No existen límites de frecuencia (ni superiores ni inferiores).
• Problemas de fiabilidad cuando hay muchas conexiones que
incrementan la capacitancia y aumenta la frecuencia de reloj.
• Recomendaciones del fabricante:
• Con frecuencias de reloj > 33 MHz, máximo 3 dispositivos.
• Con frecuencias de reloj a 40 MHz, máximo 2 dispositivos.
• Con frecuencias de reloj a 50 MHz, máximo 1 dispositivo.

35
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
VLB.

36
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
VLB.

• Restricciones:
• Fuerte dependencia del diseño VLB de la arquitectura 486.

• Dificultad para ser readaptado a las familias Pentium.


• Poca viabilidad eléctrica del sistema al ser capaz de soportar un
número muy reducido de tarjeta VLB (como mucho 3).
• No compatibilidad del VLB con las normas “Bus Mastering” y “Plug
& Play”.

37
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Bus PCI.

38
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Bus PCI.

39
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Señales funcionales de maestro y esclavo.

40
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Características físicas de las tarjetas de
ampliación PCI.

• Dos formatos según anchura de bus: 32 o 64 bits.


• Dos formatos según voltaje de alimentación: 5 y 3.3 V.

41
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
• Tarjeta universal.

42
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Pines de las tarjetas de ampliación PCI.

43
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Comandos PCI.

44
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Mapeado de caminos de datos y ubicación dentro
del bus AD.

45
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Interpretación de los bytes habilitados
durante una fase de datos.

...
46
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Protocolo de transacciones: ejemplo de proceso
de lectura (de un maestro a un esclavo).
1 2 3 4 5 6 7 8 9 10
CLK El maestro tiene el control del bus,
adjudicado por el arbitrador

El iniciador comienza la
GNT# transacción, activando FRAME# El iniciador desactiva
FRAME#, para indicar
y seleccionando el dispositivo e que es la última
Bytes habilitados
indicando la orden transferencia de la
FRAME# Bytes habilitados transacción

C/BE# CMD

AD DATO 1 D2 DATO 3

Selección del
dispositivo esclavo Bytes habilitados Estado El iniciador desactiva
de IRDY#, volviendo el
Estado espera bus a un estado libre
de
IRDY# espera
El esclavo
desactiva TRDY
Transferencia de
datos
TRDY#

Transferencia de El esclavo
Transferencia de
datos desactiva DEVSEL
DEVSEL# datos

47
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Protocolo de transacciones: ejemplo de proceso
de escritura (de un maestro a un esclavo).

48
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Arbitraje en el bus PCI.

• Procedimiento por el que se


selecciona el maestro que adquiere el
control del bus para la próxima
transferencia.

• Arbitraje centralizado síncrono.

• EL arbitrador suele estar integrado


en el chipset PCI (específicamenete en
el chip host/PCI o en el chip puente de
bus de expansión PCI).

49
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Algoritmo de arbitraje en bus PCI.

• La especificación no define un algoritmo de arbitraje.


• El arbitrador utilizará uno de los algoritmos usuales:
• Prioridad fija.
• Primero-en-llegar-primero-en-servirse: el bus se cede por
orden de llegad de las peticiones.
• Prioridad rotacional. (Cesión cíclica)
• Round Robin: el bus se cede por turnos a cada maestro. Si uno
no tiene una petición en un momento dado, se pasa al siguiente.
• Combinación de los anteriores (rotacional dentro de un grupo de un
grupo de maestros y fijo dentro de otro grupo).

50
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Ejemplo de arbitraje entre dos maestros.

• Escenario: 2 maestros (Bus Master A, Bus Master B) compitiendo por el


control del bus PCI.
• Asunciones:
• El maestro de bus A solicita el bus para realizar dos transacciones. En la
primera desea escribir en un dispositivo esclavo tres secuencias de
datos y en la segunda desea escribir una única secuencia de datos.
• El esquema de arbitraje es “de prioridad fija”, siendo el maestro B el de
más prioridad.
• El maestro B sólo solicita el bus para ejecutar una única transacción
consistente en una secuencia de datos.
• Las señales PCI son muestreadas en el flanco de subida del reloj
PCI.
• Proceso:
1. El Maestro A activa su REQ# para solicitar el control del bus PCI. El arbitrador
recoge la petición en el flanco de subida del reloj del bus. En este punto, el
maestro B no ha requerido aún el bus.

51
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Durante un ciclo de reloj, el arbitrador activa la señal GNT# del bus A, indicando
que es él el que controla el bus PCI. Durante este mismo ciclo, el maestro B
solicita el control del bus, activando su señal REQ#.
2. El maestro A muestrea su línea GNT# en el flanco de subida del segundo ciclo de
reloj, capturando su activación. Por ello, muestrea también las señales IRDY# y
FRAME#, encontrando que se encuentran desactivadas, lo que significa que el
bus se encuentra en un estado de desocupación. En respuesta a esto, el maestro
A inicia la primera de sus dos transacciones. Activa la línea FRAME# y sitúa en
las líneas del bus de direcciones/datos (AD[31:0]) el comienzo de la dirección del
dispositivo esclavo. Simultáneamente especifica la orden a realizar en las líneas
C/BE. Si el maestro A no tuviera otra transacción que realizar después de esta,
desactivaría su línea REQ# durante el segundo ciclo de reloj. En el ejemplo que
tratamos, el maestro A sí tiene que realizar otra transacción, por lo que mantiene
su línea REQ# activa.
3. El arbitrador del bus PCI muestrea las solicitudes de control del bus de los
maestros A y B, en el flanco de subida del segundo ciclo de reloj. En este
momento ejecuta el algoritmo de arbitraje, para determinar el maestro que gana
la contienda.

52
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
• Durante el segundo ciclo de reloj, el arbitrador desactiva la línea GNT# del
maestro A. En el flanco de subida del tercer ciclo, el maestro A determina que ha
sido deseleccionado, pero continua su transacción mientras no pase el periodo
de latencia (período desde que un maestro solicita el bus, hasta que completa
la primera transferencia de datos de la transacción).
• Durante el tercer ciclo de reloj, el arbitrador activa la línea GNT# del maestro B.
En el flanco de subida del cuarto ciclo, el maestro B muestrea su línea GNT#,
reconociendo que ha sido elegido como ganador de la contienda. Deberá
continuar muestreando su línea GNT# en cada ciclo de reloj, hasta que obtenga
el control del bus. Esto es necesario, porque el arbitrador puede asignar el
control del bus a otro maestro antes de que el bus alcance un estado de
desocupación. El maestro B no puede comenzar a usar el bus hasta que el bus
no alcance este estado de desocupación.
• El maestro A ubica el primer dato en el bus AD (se trata de una transacción de
escritura), durante el tercer ciclo de reloj. En este mismo ciclo los bytes
habilitados en el bus AD mediante en el bus C/BE. También activa la línea IRDY#
para indicarle al esclavo que el dato está presente en el bus. En el flanco de
subida del cuarto ciclo de reloj, IRDY# y TRDY# se encuentran activadas, por lo
que tiene lugar en este momento la primera transferencia de datos.

53
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
1. En el flanco de subida del quinto ciclo de reloj, IRDY# y TRDY# siguen estando
activadas, por lo que se completa la segunda transferencia de datos.
2. Durante el quinte ciclo de reloj, el maestro A mantiene IRDY# activa y desactiva
FRAME#, indicando con ello el final del progreso de transferencia de datos. En el
flanco de sbida del sexto ciclo de reloj, IRDY# y TRDY# siguen en estado activo
para completar la tercera transferencia de datos.
3. Durante el sexto ciclo de reloj, el maestro A desactiva IRDY#, devolviendo el bus
a un estado desocupado.
4. En el flanco de subida del séptimo ciclo de reloj, el maestro B muestrea FRAME#
y IRDY#. Ambos se encuentran desactivos determinando el estado ocioso del
bus. El maestro B también muestrea su línea GNT#, la cual permanece todavía
activa, indicando que tiene el control del bus. En respuesta, el maestro B
comienza la transacción y desactiva su línea REQ# durante el séptimo ciclo de
reloj (puesto que sólo requiere el bus para realizar una transacción).
5. Durante el séptimo ciclo de reloj, el maestro B activa FRAME# y coloca la
dirección del esclavo en el bus AD y la orden en el bus C/BE.
6. En el flanco de subida del octavo ciclo de reloj, el arbitrador muestrea la línea
REQ# de los maestros A y B. (REQ# A activa y REQ# B desactiva). En
consecuencia, el arbitrador desactiva la línea GNT# del maestro B y activa la del
A, durante el octavo ciclo de reloj.

54
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
El maestro A, ahora muestrea la línea IRDY# y FRAME# en el flanco de subida
de cada ciclo de reloj siguiente hasta encontrar el bus ocioso. En ese momento
podrá comenzar su siguiente transacción.
2. Durante el octavo ciclo de reloj, el maestro B desactiva la línea FRAME#,
indicando que su primera (y única) fase de transferencia de datos está en
progreso Comienza a escribir en el bus AD y configura el bus C/BE de forma
apropiada. Activa la línea IRDY# para que el esclavo sepa que tiene los datos en
el bus AD.
3. En el flanco de subida del noveno ciclo de reloj, IRDY# y TRDY# están activas y
la transferencia del dato tiene lugar.
4. El iniciador, el maestro B, desactiva IRDY# para devolver al bus a un estado de
desocupación.
5. El maestro A muestrea el bus para reconocer el estado ocioso del bus y detecta
activa su señal GNT# en el flanco de subida del décimo ciclo de reloj. Desactiva
su REQ#, después de activar la línea FRAME#, indicando al arbitrador que no
require el bus de nuevo tras completar de su transacción.

55
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
56
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Espacio de configuración del Interfaz PCI.

• Todos los dispositivos deben implementar 256 bytes de espacio de


configuración para albergar información relativa a la identificación del
dispositivo, funcionalidades, espacio de direcciones, etc.
• Estructura del espacio de configuración:
• 64 bytes de cabecera.
• 192 bytes dedicados al dispositivo.
• Configuración:
• Un PC al arrancar realiza ciclos de configuración en todos los dispositivos
conectados al bus PCI. Parte de la configuración de cada dispositivo PCI
permite a la BIOS del sistema habilitar el dispositivo PCI y asignarle un
espacio de memoria de sistema (de esto se encarga el software de
arranque).

57
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
31 16 15 0

Device ID Vendor ID
Status Command
Class Code Rev ID
BIST Header Type Latency Timer Cache Line
(sólo maestros)
BAR0

Max_Lat Min_Gt Interrupt Pin Interrupt Lin


(sólo maestros) (sólo maestros)

58
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
• Los registros de dirección base (Base Address Register), BARs son los
encargados de informar a la BIOS del número y tamaño de los
espacios de memoria o de E/S necesarios (para el dispositivo PCI)
• Proceso de información a la BIOS:
1. El contenido de cada BAR es leído para determinar si se relaciona con un
espacio de memoria o de E/S, y qué tamaño precisa.
Bit 0 de cada bar: 0 = memoria, 1 = espacio E/S.
Los demás bits indican el espacio necesario (primer bit no nulo).
2. Posteriormente, el sistema decodifica esta información y escribe en cada
BAR la dirección de memoria que le ha asignado el software de arranque.
• Ejemplos:
BAR Tamaño y tipo Valor asignado en Valor asignado por la
tiempo de BIOS
configuración
BAR0 8 bytes E/S FFFF FFF9 000 FFF1
BAR1 128 Bytes Memoria FFFF FF80 FFFB FF80
BAR2 Inhabilitado 0000 0000
59
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Registro de estado.

• Describe la funcionalidad del


dispositivos PCI
(operaciones/comandos que
puede realizar, velocidad de
respuesta, capacidad de
señalizar un error de paridad, …)
• El registro de estado puede ser
programado mediante escritura
en tiempo de configuración o
bien implementado por el propio
dispositivo (hardwired).

60
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Registro de clase.

23 16 15 8 7 0

Class Code Sub-Class Code Prog. I/F

61
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Diseño de interrupciones PCI.

62
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
63
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
64
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
65
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Bus AGP.

• Necesidad de un nuevo bus gráfico para gráficos:


• 1er objetivo: Aceleración gráfica 2D.
• 2º objetivo: Aceleración gráfica 3D.
• Solución aportada por los fabricantes, haciendo uso del bus PCI:
• Tratamiento de gráficos a una velocidad de 33 MHz procesando
simultáneamente 32 bits de información -> 133 MB/s.
• Problema de compartición de otras aplicaciones de gran
demanda de ancho de banda: tarjeta de red (100 MB/S), discos duros
UltraDMA, etc.
• Problemática de generación de gráficos 3D:
1. Lectura de mapas de textura de disco duro o CD-ROM e
instalación en la memoria principal.
2. Cuando debe aparecer en memoria, la textura se traslada a la
CPU. Ésta realiza operaciones de transformación para definir el
tamaño, posición, iluminación… de la textura en la escena
renderizada. Después se devuelve a memoria principal.
3. El procesador de la tarjeta gráfica lee la textura transformada y la
lleva a la memoria gráfica, mediante el bus PCI.
66
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
1. El procesador gráfico realiza una serie de transformaciones dentro
del buffer de cuadros (porción de memoria pequeña), para
establecer la aplicación de color, conversión digital/analógico,…

• Inconvenientes:
• 2 copias exactas de la textura (en la memoria principal y en la
memoria gráfica).
• Limitación de calidad y resolución debido al buffer de cuadros.
67
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
68
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
• Solución: Acelerated Graphics Port:
• Controversia bus-puerto.
• Rendimiento, especificación AGP 1x, basada en la PCI 2.1:
Bus de datos de 32 bits
Reloj: 66 MHz
Tasa de transferencia de 266 MB/s
• Versiones posteriores AGP 2x (533 MB/s), 4x (1066 MB/s) y 8x
(2133 MB/s).
• Modos de tratamiento de la información gráfica:
1. Memoria AGP.
2. Modo SBA y Pipeline.
3. Bus Mastering.

69
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
1. Memoria AGP:
• Adopción del modo DIME (Ejecución directa en Memoria) -> la
memoria principal se trata como memoria gráfica -> posibilidad de
tratar gráficos mas grandes que la capacidad de la memoria de la
tarjeta de video.
Ejemplo: PC con 32 MB de RAM y 4 MB de AGP, ejecutando un
programa de 16 MB y representando imágenes como si su
tarjeta dispusiera de 20 MB de tamaño (32 + 4 – 16).
• Variación: DIMEL. Utiliza memoria principal y de video (local)
para procesar texturas. Las texturas más usadas se sitúan en la
memoria local (más rápido) y las demás en la memoria principal.
• Dispositivo GART (Tabla de remapeado de direcciones gráficas),
para solucionar conflictos de direcciones entre ambas memorias.
Con ello se consigue que el chip gráfico vea las direcciones de una
forma única, consiguiéndose la transparencia.

70
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
GART:

71
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
1. Modo SBA:
• Direccionamiento de líneas de señal adicionales.
• 8 bits adicionales para generar nuevos comandos, pudiendose
realizar múltiples peticiones (hasta 35) mientras se transfieren
datos a través del bus AD[31..0]. Esto es conocido como
Pipeline.

2. Bus Mastering:
• Independencia de la CPU, siendo posible la simultaneidad de
transferencias entre ambas entidades.

72
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Procesamiento de gráficos 3D resultado:
• Las texturas son accedidas directamente en memoria principal durante
el renderizado, evitando el paso previo de transferirla a la memoria
local, y permitiendo el tratamiento de imágenes de mayor tamaño,
dando mayor realialismo.

73
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
74
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Modelo de programación como estación de trabajo.

75
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Transferencias de datos 1x.

76
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Transferencias de datos 2x.

77
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Transferencias de datos 4x.

78
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Señales PCI

79
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Señales AGP

80
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
2.4. Plug and Play.
• PnP, definición:
• Sistema de detección automática de dispositivos (discos, tarjetas de sonido,
NIC, modems, etc.)
• Configuración a bajo nivel.
• PnP, ¿qué debería hacer?
• Establecimiento de canales de comunicación entre dispositivo físico y su
controlador.
• Asignación los recursos de bus:
• Direcciones de I/O.
• Regiones de memoria.
• IRQs.
• Canales DMA (sólo para ISA).
• Para controlar un dispositivo, la CPU (bajo el control del driver de este
dispositivo), envía órdenes y datos a éste. Posteriormente lee el estado del
periférico. Para ello, la CPU deberá conocer la dirección del dispositivo que
pretende controlar. Dirección de acceso al dispositivo = canal de
comunicaciones.
• Ejemplo: un puerto serie utiliza dos de los cuatro posibles recursos: una IRQ y
una dirección de E/S. Ambos datos deben ser conocidos tanto por el periférico
como por su controlador. Para el caso de PnP esta asignación debe ser realizada
cada vez que el PC arranca.
81
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
• Acceso a un dispositivo: dirección -> rango de direcciones.
• Acceso a la CPU por parte de un dispositivo: interrupciones.
• Espacios de direcciones del PC dedicados a E/S:
• Puertos de E/S (IO ports o Base Address).
• E/S mapeada en memoria principal (IO memory).
• Configuración.
Todas comparten el mismo bus, pero se discriminan mediante la ausencia o
presencia de voltaje en algunas líneas de control.

82
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
83
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
84
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
• Puertos de E/S (IO ports).
• Pasos para alojar una dirección de E/S (u otro tipo de recurso de
bus, como IRQs en bus ISA):
1. Establecer la dirección de E/S en la tarjeta (en uno de sus registros).
2. Permitir al controlador del dispositivo (driver) conocer cuál es la dirección de
E/S.
• Estas labores, a menudo, son desarrolladas por el driver (analogía
con encontrar el número de la casa de alguien en una calle).
• E/S mapeada en memoria principal (IO memory).
• A muchos dispositivos se les asigna un espacio de direcciones de la memoria
principal (memoria compartida o E/S mapeada en memoria). Esta memoria está
físicamente alojada en el dispositivo.
• IRQ.
• En el bus ISA a cada dispositivo le es asignado una IRQ específica. Para el bus
PCI, está permitida la compartición de IRQ, existiendo un dispositivo
programable encaminador de interrupciones (APIC) encargado de asignar la IRQ
correspondiente.
85
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
• DMA.
• Proceso de transferencia de datos desde un periférico hacia memoria, mediante
la CPU:
1. Lectura de la CPU de unos datos de un dispositivo accesible a través de un
espacio de memoria de E/S.
2. Escritura de la CPU de esos datos en la memoria principal.
• Proceso de transferencia de datos desde un periférico hacia memoria, mediante
DMA:
1. Envío de datos directamente del periférico hacia la memoria principal.
• No todos los dispositivos tienen está capacidad implementadas.
• Los canales DMA son sólo usados por el bus ISA. El bus PCI no implementa
este mecanismo, en cambio utiliza un mecanismo mejor: gestión del bus (bus
mastering). Es parecido a DMA (discos duros denominados UltraDMA). Permite a
los dispositivos convertirse en gestores del bus temporalmente. No utiliza
canales DMA, puesto que la organización del bus PCI, permite conocer qué
dispositivo tiene el control del bus y cuál lo tendrá. Por ello no hay ninguna
asignación de canales DMA para el bus PCI.
• Cuando un dispositivo en el bus ISA quiere utilizar el mecanismo DMA, realiza una petición
DMA usando una línea dedicada a tal efecto (similar a una interrupción). Al igual que las
interrupciones, las peticiones DMA son numeradas. Cada número es un canal DMA.

86
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
• El problema.
• Número limitado de IRQs, canales DMA, puertos de E/S y
regiones de memoria de E/S) -> Necesidad de flexibilidad de
conexión de periféricos a buses.
• Algunas IRQs y direcciones están muy estandarizadas (ej.:
teclado, reloj) -> No hay necesidad de flexibilidad.
• No automatización de las tareas de configuración de
dispositivos periféricos.
• Solución PnP.
1. El programa de configuración PnP encuentra todos los
dispositivos que soportan PnP y pregunta a cada uno qué
recursos de bus necesita.
2. Decide qué recursos puede adjudicar (hace un listado de los
recursos adjudicados a dispositivos no-PnP).
3. Establece un criterio (no determinado en la especificación PnP)
mediante el cual adjudicar los recursos de bus.
87
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
1. Comunica a cada dispositivo qué recursos le ha sido asignado.
2. El software de control de cada dispositivo busca, de alguna
manera, los recursos asignados al dispositivo que controla.
• Ejemplo:
• Una tarjeta necesita los siguientes recursos:
• Una interrupción IRQ.
• 1 MB de memoria compartida.
• El programa de configuración PnP lee la petición de la tarjeta.
• Asigna la IRQ 5 y 1 MB del espacio de direcciones de memoria,
comenzando por la 0xe9000000.
• Informa al controlador del dispositivo la asignación de recursos realizada.
• Las peticiones pueden tener restricciones (ej.: se peticiona una IRQ
determinada).
• Diferentes particularidades para PCI e ISA.
• Un criterio común de adjudicar recursos consiste en:
• Se comienza atendiendo la petición de un dispositivo.
• Se continua con el siguiente, hasta que todos los dispositivos están
servidos.
88
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
• Si en el proceso de adjudicación hay un conflicto por escasez de recursos, se
vuelve hacia atrás, reasignando recursos (Rebalanceo, rebalancing). Linux
no realiza esta técnica mientras que MS Windows sí, en algunas casos.
• Atajos de PnP:
• Guardar la forma en la que se realizó la última asignación de recursos. Las
versiones Windows9x (y posteriores) y las BIOS PnP realizan esta labor. Linux
en cambio no. Windows9x (y posteriores) guarda esta información en su
“registro” en el disco duro y una BIOS PnP almacena esta información en una
memoria no-volatil del PC (conocida como ESCD, Extended System
Configuration Data)
• Iniciando el PC:
• Cuando el PC se arranca por primera vez, el chip BIOS ejecuta su programa.
Lo primero que realiza es una comprobación del hardware existente.
• Si existe S.O. en el disco la BIOS deberá reconocer el disco y su driver.
• Si el disco es PnP entonces la BIOS utilizará un método PnP para encontrarlo.
• Por otro lado, para permitir al usuario la configuración manual de la BIOS
CMOS y responder a los mensajes de error cuando arranca el PC, deben estar
habilitadas la pantalla y el teclado. De esta forma, la BIOS debe siempre
utilizar una configuración PnP de dispositivos para cargar el S.O. desde el
disco.
89
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
• Una vez que la BIOS ha identificado el disco, la tarjeta de video y el teclado,
está preparado para arrancar (cargar el S.O. dentro de la memoria desde
disco duro).
duro)
• Si se le especifica a la BIOS que el S.O. es PnP (PnP SO), la BIOS arrancará el
PC y permitirá al S.O. finalizar la configuración PnP. En caso contrario, la
BIOS-PnP intentará realizar la configuración PnP de todos los dispositivos.

Aplicaciones
ICU Base de datos de
Utility de configuración ISA configuración del fabricante

CM
Administrador de cofiguración

ESCD
BIOS PnP (Datos de configuración
del sistema ampliado)
90
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
• UPnP:
• Network PnP, desarrollado por Microsoft, disponible para Linux.
• Destinado a instalación de routers, pasarelas, impresoras en red,
etc.
• UPnP utiliza:
• Protocolo SSDP (Simple Service Discovery Protocol) para
encontrar los dispositivos.
• Arquitectura GENA (General event Notification Architecture).
• Protocolo SOAP (Simple Object Access Protocol) para controlar
los dispositivos.
• http://www.cs.umbc.edu/~dchakr1/papers/mcommerce.html

91
2.4. Plug and Play. Periféricos e Interfaces , 3º ITIS
2.5. Ejemplos de aplicación.
• PCI:
• ASIC’s PCI: Circuitos integrados que admiten cierta
programación. Se pueden utilizar librerías de macroceldas.
Ejemplo: sistema de desarrollo S5920DK1 AMCC.
• Dispositivos programables FPGA: sistemas de desarrollo de
interfaces PCI en los que ciertos detalles de implementación
están ya previamente definidos. Existen herramientas para la
síntesis y verificación del diseño.
Ejemplos: Altera, Ciprés, QuickLogic, Xilinx.
• Modelados de alto Nivel, LogiCores: se trata de descripciones
de alto nivel (VHDL o C) configurables de componentes
sintetizables para implementar el interfaz en un ASIC o en un
dispositivo lógico programable.

92
2.5. Ejemplos de aplicación. Periféricos e Interfaces , 3º ITIS
Ejemplo de implementación PCI mediante
chipset VL82C59x con tecnología VLSI.

93
2.5. Ejemplos de aplicación. Periféricos e Interfaces , 3º ITIS
• El chipset VL82C59x provee el diseño lógico necesario para la
implementación de buses PCI e ISA basados en microprocesadores
Pentium.
• Características de diseño:
• Puentes de host a buses PCI.
• Puentes de PCI a ISA.
• Caché L2 integrada.
• Controlador del sistema de memoria DRAM integrado.
• Arbitrador del bus PCI integrado.
• Provisión de buffers de memoria en ambos puentes.
• Soporte de pipelining para Pentium.
• Soporte de relojes de procesador y de bus PCI síncronos o asíncronos.
• Miembros del Chipset:
• VL82C591: Controlador del sistema Pentium.
• VL82C592: Buffer de datos del procesador Pentium.
• VL82C593: Puente PCI/ISA.

94
2.5. Ejemplos de aplicación. Periféricos e Interfaces , 3º ITIS
Registros de configuración del ’591.

95
2.5. Ejemplos de aplicación. Periféricos e Interfaces , 3º ITIS
Registros de configuración del ’593.

96
2.5. Ejemplos de aplicación. Periféricos e Interfaces , 3º ITIS
• Ejemplo de uso del bus PCI en un PC (comando scanpci en SO Linux):

pci bus 0x0000 cardnum 0x00 function 0x00:


vendor 0x1106 device 0x0305 VIA Technologies, Inc. VT8363/8365 [KT133/KM133]
pci bus 0x0000 cardnum 0x01 function 0x00:
vendor 0x1106 device 0x8305 VIA Technologies, Inc. VT8363/8365 [KT133/KM133 AGP]
pci bus 0x0000 cardnum 0x07 function 0x00:
vendor 0x1106 device 0x0686 VIA Technologies, Inc. VT82C686 [Apollo Super South]
pci bus 0x0000 cardnum 0x07 function 0x01:
vendor 0x1106 device 0x0571 VIA Technologies, Inc. VT82C586/B/686A/B PIPC Bus Master IDE
pci bus 0x0000 cardnum 0x07 function 0x02:
vendor 0x1106 device 0x3038 VIA Technologies, Inc. USB
pci bus 0x0000 cardnum 0x07 function 0x03:
vendor 0x1106 device 0x3038 VIA Technologies, Inc. USB
pci bus 0x0000 cardnum 0x07 function 0x04:
vendor 0x1106 device 0x3057 VIA Technologies, Inc. VT82C686 [Apollo Super ACPI]
pci bus 0x0000 cardnum 0x07 function 0x05:
vendor 0x1106 device 0x3058 VIA Technologies, Inc. VT82C686 AC97 Audio Controller
pci bus 0x0000 cardnum 0x0a function 0x00:
vendor 0x10ec device 0x8139 Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
pci bus 0x0001 cardnum 0x00 function 0x00:
vendor 0x10de device 0x002d nVidia Corporation NV5M64 [RIVA TNT2 Model 64/Model 64 Pro]

97
2.5. Ejemplos de aplicación. Periféricos e Interfaces , 3º ITIS

You might also like