# PCI-X

PCI-X (PCI eXtendido) es un tipo de bus y estándar de tarjeta de expansión interna que supera al bus PCI por su mayor ancho de banda exigido por servidores. Es una versión con el doble de ancho del PCI, ejecutándose hasta cuadruplicar la velocidad de reloj, estrategia similar en otras implementaciones eléctricas que usan el mismo protocolo. Ya está siendo reemplazada por una tecnología de nombre similar PCI-Express, la cual dispone de un diseño lógico muy distinto, aplicando la filosofía de la conexión en serie "estrecho pero rápido", en lugar de "ancho pero lento", de las conexiones en paralelo.

## Desarrollo

PCI-X se desarrolló conjuntamente con IBM, HP y Compaq y presentada para su aprobación en 1998. Se esforzó en codificar extensiones propietarias de servidor al bus local para incrementar el rendimiento de los dispositivos de banda ancha como tarjetas Ethernet Gigabit, Canal de Fibra y SCSI y permitir a los procesadores ser interconectados en clústeres.
PCI-X era necesario ya que algunos dispositivos, como los mencionados anteriormente, podían saturar por completo el ancho de banda del bus PCI (de solo 133 MB/s). La primera solución fue ejecutar el bus PCI de 33 MHz al doble de velocidad, 66 MHz, doblando la tasa de transferencia de manera efectiva a 266 MB/s. Sin embargo, las máquinas con varios dispositivos de banda ancha necesitaban más tasa, así que se añadieron más pines a la ranura, quedando en 184 de 120, para formar una combinación de 64 bits. Al principio solo llegaba a los 33 MHz, que básicamente daba la misma tasa de 266 MB/s. Aunque puertos de 64 bits y 66 MHz ya se estaban implementando, estas extensiones eran soportadas a duras penas como partes opcionales de los estándares PCI 2.x. La compatibilidad entre dispositivos más allá de los básicos 133 MB/s continuó siendo azarosa.
Los desarrolladores usaron en ese momento la combinación de 64 bits y los 66 MHz como base, y anticipándose a la futura demanda, establecieron variaciones de 66 y 133 MHz para alcanzar las máximas velocidades de hasta 533 y 1066 MB/s respectivamente. El resultado conjunto se presentó como PCI-X al PCI Special Interest Group de la Association for Computing Machinery. Su aprobación posterior lo convirtió en Estándar abierto, adaptable a todos los desarrolladores informáticos. El SIG controla el soporte técnico, documentación y pruebas para PCI-X. IBM, Intel Microelectronics y Mylex se encargaron de los chipsets. 3Com y Adaptec se encargaron de los periféricos compatibles. Para acelerar la adopción de PCI-X por la industria, Compaq ofreció herramientas de desarrollo desde su web. Todos los principales fabricantes de chips disponen de alguna variante de PCI-X en sus gamas de productos.

## Descripción Técnica

PCI-X revisó el estándar convencional PCI doblando la velocidad máxima de procesador (de 66 MHz a 133)) y de ahí la cantidad datos intercambiada entre el procesador del ordenador y los periféricos. El bus PCI convencional soporta hasta 64 bits a 66 MHz (aunque cualquier uso sobre los 32 bits a 33 MHz solo se ha visto en sistemas de gama alta) y los estándares de buses adicionales mueven 32 bits a 66 MHz o 64 bits a 33 MHz. La cantidad de datos máxima teórica con PCI-X es 1.06 GB/s, comparada con los 133 MB/s del PCI estándar. PCI-X también mejora la tolerancia a fallos de PCI permitiendo, por ejemplo, a las tarjetas defectuosas ser reinicializadas o extraídas en caliente (sin el apagado de la máquina).
PCI-X normalmente es compatible hacia atrás con la mayoría de tarjetas basadas en el estándar PCI 2.x o posterior, dando lugar a que una tarjeta PCI se puede instalar en una ranura PCI-X, si dispone de la distribución correcta de voltajes y (si se inserta en una ranura de 32 bits) nada obstruye la parte saliente del conector. Originalmente el bus PCI tenía un bus de 5 voltios. Más tarde en la revisión 2.x, el bus tenía una interconexión de voltaje dual. En 3.0 se cambió a únicamente 3,3 voltios. El bus PCI-X no es compatible con las tarjetas más antiguas de 5 voltios pero las nuevas de 3,3 funcionarán en una ranura PCI-X. Aparte, normalmente las tarjetas PCI y PCI-X son entremezcladas en un bus PCI-X, pero se les limita la velocidad a la más lenta de la tarjeta. Por ejemplo, un dispositivo PCI 2,3 funcionando a 32 bits y 66 MHz en un bus PCI-X de 133 MHz limitará su tasa de transferencia total del bus a 266 MB/s. Para solucionar esta limitación y los problemas de compatibilidad, muchas placas base han separado los canales PCI-X de los dedicados exclusivamente a PCI, consiguiendo una mayor compatilidad hacia atrás manteniendo la máxima velocidad del ancho de banda del sistema.

## Versiones

Todas las tarjetas o ranuras PCI-X disponen de una implementación 64 bits y que varía por
* Tarjetas
** 66 MHz (Añadidos en Rev. 1.0)
** 100 MHz (Implementados por un adaptador a 133 MHz en algunos servidores)
** 133 MHz (añadida en Rev. 1.0)
** 266 MHz (añadida en Rev. 2.0)
** 533 MHz (añadida en Rev. 2.0)
* Ranuras
** 66 MHz (se puede encontrar en servidores antiguos)
** 133 MHz (más común en servidores modernos)
** 266 MHz (inusual, está siendo sustituida por PCI-e)
** 533 MHz (inusual, está siendo sustituida por PCI-e)

## PCI-X 2.0

En 2003, el SIG de PCI ratificó PCI-X 2.0. Añade variaciones de 266 MHz y 533 MHz, rindiendo tasas de 2,15 GB/s y 4,26 GB/s respectivamente. PCI-X 2.0 realiza revisiones adicionales al protocolo que están diseñadas para ayudar a la fiabilidad del sistema y añadir códigos de corrección de errores al bus para evitar reenvíos. Para resolver una de las quejas del factor de forma del PCI-X, el conector de 184 pines, puertos de 16 bits se desarrollaron para permitir a PCI-X ser usados en dispositivos con serias limitaciones de espacio. Similar a PCI-Express, se añadieron funciones PtP para permitir a los dispositivos comunicarse entre sí en el bus sin sobrecargar la CPU o el contrador de bus.
Aunque la variedad de ventajas teóricas de PCI-X 2.0 y su compatibilidad hacia atrás con dispositivos PCI-X y PCI, no se ha implementado a gran escala (hasta 2008). Esta ausencia se debe a que los distribuidores de hardware han preferido integrar PCI-Express en su lugar.

## La confusión con PCI-Express

A menudo se confunde PCI-X con PCI-Express, normalmente abreviada como PCI-E o PCIe. Aunque ambos son buses de alta velocidad para ordenadores y periféricos internos, se diferencian en muchas cosas. La primera es que PCI-X es una interfaz paralelo que es compatible hacia atrás con los dispositivos PCI a excepción de los que trabajan con 5 voltios. PCIe es un bus serie con una interfaz física distinta que fue diseñada para superar a PCI y PCI-X, y su retrocompatibilidad empieza a partir del primer PCIe.
Los buses PCI-X y PCI estándar pueden funcionar en un puente PCIe, similar al que los buses ISA funcionan en buses PCI normales en algunos ordenadores. PCIe supera a PCI-X y PCI-X 2.0 en ancho de banda máximo. PCIe 1.0 x1 ofrece 250 MB/s en cada sentido, y hasta en 32 líneas, otorgando un máximo de 8 GB/s en cada sentido, frente al máximo de 4,26 GB/s de PCI-X. PCIe 2.0 dobla sus cifras a 500MB/s por canal, y el 3.0 las redobla a 1000MB/s, con lo que se considera como un bus actual y con futuro.
PCI-X sufre una serie de desventajas tecnológicas y económicas respecto a PCI-Express. La interfaz paralela de 64 bits requiere de por sí un difícil enrutado, ya que como todas las interfaces paralelas, las señales del bus deben llegar simultáneamente o en un margen muy corto de tiempo, y el ruido de las ranuras adyacentes puede causar interferencias. La interfaz serie de PCIe sufre muchos menos problemas y por lo tanto requiere diseños mucho menos complejos y económicos. Los buses PCI-X, como los PCI, son bidireccionales duplex media mientras PCIe son duplex completa. Los buses PCI-X solo son tan rápidos como el dispositivo más lento de su bus, y PCIe puede negociar las velocidades de transferencia dispositivo por dispositivo. También, las ranuras PCI-X ocupan más espacio en las placas, lo cual puede llegar a ser un problema en caso de las ATX y factores más pequeños.