martes, 19 de mayo de 2009

La interfaz PCI

PCI ("Peripheral Component Interconnect") es básicamente una especificación para la interconexión de componentes en ordenadores. Ha dado lugar a un bus PCI, denominado también Mezzanine, en español entresuelo, porque funciona como una especie de nivel añadido al bus ISA/EISA tradicional de la placa madre. Es un bus de 32 bits que funciona a 5 V, 33 MHz, con una velocidad de transferencia inicial de 133 Mb/s (Megabits por segundo).

Aunque seguiremos llamándolo "bus PCI", en realidad no es un bus local; por esto, ocupa un lugar intermedio (de ahí el nombre mezzanine) entre el bus del procesador / memoria / cache y el bus estándar ISA. El bus PCI se encuentra separado del bus local mediante un controlador que hace de pasarela. Cuando la CPU escribe datos en los periféricos PCI (por ejemplo un disco duro), el controlador PCI los almacena en su buffer. Esto permite que la CPU atienda la próxima operación en vez de tener que esperar a que se complete la transacción. A continuación el buffer envía los datos al periférico de la forma más eficiente posible.

Ha sido diseñado pensando en sistemas de máximas prestaciones e incluye todas las funcionalidades y características de los diseños más modernos (soporte para multiprocesador, transferencia a ráfagas -burst mode-, etc.). Presenta características que no eran usuales en los sistemas de bus anteriores, por ejemplo:

  • Configuración por software (sin jumpers): PCI se creó pensando en el estándar PnP ("Plug and Play"), por lo que los dispositivos PCI pueden ser configurados exclusivamente mediante software (aunque algunos fabricantes rompen la norma). Cada dispositivo PCI debe estar diseñado para solicitar de forma inequívoca los recursos que necesita (Zona de memoria mapeada, direcciones E/S, canales DMA, Interrupciones, etc.).

· Identificación: Los dispositivos PCI deben identificarse a sí mismos señalando su fabricante, modelo, número de serie y código de clase. Los códigos de fabricante son administrados por una autoridad central, el PCI SIG. El código de clase proporciona un método de identificación, de modo que el controlador genérico del S.O. disponga de cierta información básica sobre el dispositivo PCI conectado, e incluso en ausencia de un controlador específico, proporcionar algún control básico del dispositivo.

· Diseño flexible: En cualquier momento pueden añadirse nuevos códigos de fabricante o de clase. De hecho, la especificación ya ha realizado muchas mejoras y extensiones. Por ejemplo, el bus AGP ("Advanced Graphics Port" H2.2) es una extensión reciente de la especificación PCI; también el conector SmallPCI, el soporte para 64bits y las versiones de 3.3 V.

  • Independencia: PCI no está ligada a ninguna plataforma particular; puede ser implementada virtualmente en cualquiera, además de la conocida arquitectura IBM-PC/x86. De hecho, ha sido adoptado por muchos fabricantes de otras arquitecturas, por ejemplo Apple y SUN.

No hay comentarios:

Publicar un comentario