Professional Documents
Culture Documents
1
2. Buses locales normalizados. Periféricos e Interfaces , 3º ITIS
2.1. Concepto de bus normalizado
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.
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.
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.
10
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Reseña histórica.
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.
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.
16
2.1. Concepto de bus normalizado. Periféricos e Interfaces , 3º ITIS
Evolución de los procesadores Intel para PC.
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.
20
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.
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.
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.
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.
49
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Algoritmo de arbitraje en bus PCI.
50
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Ejemplo de arbitraje entre dos maestros.
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.
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
…
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.
60
2.3. Bus PCI, AGP. Periféricos e Interfaces , 3º ITIS
Registro de clase.
23 16 15 8 7 0
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.
• 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):
97
2.5. Ejemplos de aplicación. Periféricos e Interfaces , 3º ITIS