Tutoriales

PCI Express – Qué es y para qué sirve

Actualmente, el tipo más común de ranura de expansión disponible se llama PCI Express. En este artículo, aprenderás todo lo que necesitas saber sobre este tipo de conexión: sus comienzos, cómo funciona, versiones, ranuras, y más.

Desde el primer PC, lanzado en 1981, el equipo ha tenido ranuras de expansión en las que se pueden instalar tarjetas adicionales para agregar funciones no disponibles en la placa base del equipo.  Antes de hablar del puerto PCI Express, debemos hablar un poco sobre la historia de las ranuras de expansión de PC y sus principales retos, para que puedas entender qué hace diferente al puerto PCI Express.

Tipos de ranuras de expansión

conexiones ISA, PCI y AGP

A continuación, se enumeran los tipos más comunes de ranuras de expansión que se lanzaron para el PC a lo largo de su historia:

  • ISA (Arquitectura Industrial Estándar)
  • MCA (Arquitectura de Microcanal)
  • EISA (Arquitectura Estándar Industrial Extendida)
  • VLB (VESA Local Bus)
  • PCI (Interconexión de componentes periféricos)
  • PCI-X (Interconexión de componentes periféricos extendido)
  • AGP (Puerto de gráfico acelerado)
  • PCI Express (Interconexión de componentes periféricos Express)

En general, se liberan nuevos tipos de ranuras de expansión cuando se demuestra que los tipos de ranura disponibles son demasiado lentos para ciertas aplicaciones. Por ejemplo, la ranura ISA original disponible en el PC IBM original y en el PC IBM XT y sus clones, tenía una velocidad de transferencia teórica máxima (es decir, ancho de banda) de solo 4,77 MB/s.

La versión de 16 bits del ISA, lanzada con la IBM PC AT en 1984, casi duplicó el ancho de banda disponible a 8 MB/s, pero este número era extremadamente bajo incluso en ese momento para aplicaciones de alto ancho de banda como el vídeo.

Después, IBM liberó la ranura MCA para su línea de ordenadores PS/2, y debido a que estaba protegida por derechos de autor, otros fabricantes solo podían usarla si entraban en un esquema de licenciamiento con IBM, algo que hicieron solo cinco compañías (Tandy, Apricot, Dell, Olivetti y Research Machines).

Por lo tanto, las ranuras MCA se limitaban a unos pocos modelos de PC de estas marcas. Nueve fabricantes de PC se unieron para crear la ranura EISA, pero no tuvo éxito por dos razones.

En primer lugar, mantenía la compatibilidad con la ranura ISA original, por lo que su frecuencia de reloj era la misma que la de la ranura ISA de 16 bits.

En segundo lugar, la alianza no incluía a los fabricantes de placas base, por lo que pocas empresas tenían acceso a esta ranura, del mismo modo que había sucedido con la ranura MCA.

La primera ranura de alta velocidad real que se lanzó fue la VLB. La mayor velocidad se consiguió vinculando la ranura al bus local de la CPU, es decir, al bus externo de la CPU.

De esta forma, la ranura funcionaba a la misma velocidad que el bus externo de la CPU, que es el bus más rápido disponible en el PC.

La mayoría de las CPUs en ese momento usaban una velocidad de reloj externo de 33 MHz, pero también estaban disponibles CPUs con velocidades de reloj externo de 25 MHz y 40 MHz.

El problema con este bus fue que se diseñó específicamente para el bus local de los procesadores de clase 486. Cuando se lanzó el procesador Pentium, era incompatible con este, ya que utilizaba un bus local con diferentes especificaciones (frecuencia de reloj externo de 66 MHz en lugar de 33 MHz, y transferencias de datos de 64 bits en lugar de 32 bits).

La primera solución para todo el sector apareció en 1992, cuando Intel lideró el sector para crear la ranura de expansión definitiva, la PCI.

Más tarde, otras empresas se unieron a la alianza, que hoy se conoce como PCI-SIG (PCI Special Interest Group). El PCI-SIG es responsable de estandarizar las ranuras PCI, PCI-X y PCI Express.

Qué son los puertos PCI Express

El PCI Express, abreviado PCI-E o PCIe, es la última evolución del bus PCI clásico, y permite añadir tarjetas de expansión al ordenador.

Es un puerto serie local, a diferencia del PCI, que es paralelo, y fue desarrollado por Intel, que lo introdujo por primera vez en 2004, en el chipset 915P.

Podemos encontrar buses PCI Express en varias versiones; hay versiones 1, 2, 4, 8, 12, 16 y 32 carriles.

Por ejemplo, la velocidad de transferencia de un sistema PCI Express con 8 carriles (x8) es de 2 GB/s (250 x8). El PCI Express permite velocidades de datos de 250 MB/s a 8 GB/s en la versión 1.1. La versión 3.0 permite 1 GB/s (985 MB en realidad) por carril mientras que la 2.0 solo 500 MB/s.

Para qué sirven los puertos PCI Express

Este nuevo bus se utiliza para conectar las tarjetas de expansión a la placa base y está destinado a reemplazar todos los buses de expansión internos de un PC, incluyendo el PCI y el AGP (el AGP ha desaparecido completamente, pero el PCI clásico todavía resiste).

PCI, PCI-X y PCI Express

Por cierto, algunos usuarios tienen dificultades para distinguir entre PCI, PCI-X y PCI Express («PCIe»). Aunque estos nombres son similares, se refieren a tecnologías completamente diferentes.

El PCI es un bus independiente de la plataforma que se conecta al sistema mediante un chip puente (bridge, que forma parte del chipset de la placa base). Cada vez que se libera una nueva CPU, puede seguir utilizando el mismo bus PCI rediseñando el chip puente en lugar de rediseñar el bus, que era la norma antes de que se creara el bus PCI.

Aunque otras configuraciones eran teóricamente posibles, la implementación más común del bus PCI era con un reloj de 33 MHz con una ruta de datos de 32 bits, permitiendo un ancho de banda de 133 MB/s.

El puerto PCI-X es una versión del bus PCI que funciona a frecuencias de reloj más altas y con rutas de datos más amplias para las placas base de los servidores, logrando un mayor ancho de banda para dispositivos que demandan más velocidad, como tarjetas de red de alta gama y controladores RAID.

Cuando el bus PCI resultó ser demasiado lento para las tarjetas de vídeo de alta gama, se desarrolló la ranura AGP. Esta ranura se utilizaba exclusivamente para tarjetas de vídeo.

Finalmente, el PCI-SIG desarrolló una conexión llamada PCI Express. A pesar de su nombre, el puerto PCI Express funciona radicalmente diferente del bus PCI.

Diferentes buses PCI Express

tipos conexiones PCI Express

  • PCI Express 1x con un rendimiento de 250Mb/s está presente en una o dos copias en todas las placas base actuales.
  • PCI Express 2x con un rendimiento de 500Mb/s está menos extendido, reservado para servidores.
  • PCI Express 4x con un rendimiento de 1000Mb/s también está reservado para servidores.
  • El PCI Express 16x con una velocidad de 4000Mb/s está muy extendido, presente en todas las tarjetas gráficas modernas, y es el formato estándar de las tarjetas gráficas. Las tarjetas gráficas usan PCI-Express 16x porque ofrecen más rendimiento cuanto más raíles.
  • El puerto PCI Express 32x con un rendimiento de 8000 Mb/s tiene el mismo formato que PCI Express 16x, y a menudo se utiliza en placas base de alta gama para alimentar buses SLI o Crossfire. Las referencias de estas placas base tienen a menudo la mención «32». Esto permite dos puertos PCI Express en formato de 16 carriles cableados, a diferencia de los SLI convencionales, cableados en 2 x 8 carriles o Crossfire básico, cableados en 1×16 + 1×4 carriles. Estas placas base también se caracterizan por la presencia de un puente sur adicional, solo dedicado al bus 32x.

El PCI-SIG anunció el PCI Express en la revisión 4.0, ofreciendo el doble de ancho de banda por carril comparado con la revisión 3.0.

Esta revisión incluye márgenes de carril, latencia del sistema reducida, capacidades RAS superiores, etiquetas extendidas y créditos para dispositivos de servicio, escalabilidad para carriles adicionales y ancho de banda, la integración de la plataforma y mejora de la virtualización de E / S.

Diferencias entre PCI y PCI Express

  • PCI es un bus, mientras que PCI Express es una conexión punto a punto en serie, es decir, solo conecta dos dispositivos; ningún otro dispositivo puede compartir esta conexión. Solo para aclarar, en una placa base que utiliza ranuras PCI estándar, todos los dispositivos PCI están conectados al bus PCI y comparten la misma ruta de datos, por lo que puede producirse un cuello de botella (es decir, una disminución del rendimiento porque más de un dispositivo desea transmitir datos al mismo tiempo). En una placa base con ranuras PCI Express, cada ranura PCI Express está conectada al conjunto de chips de la placa base usando un carril dedicado, no compartiendo este carril (ruta de datos) con otras ranuras PCI Express. Además, los dispositivos integrados en la placa base, como los controladores de red, SATA y USB, suelen conectarse al conjunto de chips de la placa base mediante conexiones PCI Express dedicadas.
  • PCI y todos los demás tipos de ranuras de expansión utilizan comunicaciones paralelas, mientras que PCI Express se basa en comunicaciones seriales de alta velocidad.
  • El puerto PCI Express se basa en carriles individuales, que pueden agruparse para crear conexiones de mayor ancho de banda. La «x» que sigue a la descripción de una conexión PCI Express se refiere al número de carriles que utiliza esa conexión.

A continuación, se muestra una tabla comparativa de las principales especificaciones de las ranuras de expansión que han existido para el PC.

Ranura Reloj Número de bits Datos por ciclo de reloj Ancho de banda
ISA 4.77 MHz 8 1 4.77 MB/s
ISA 8 MHz 16 0.5 8 MB/s
MCA 5 MHz 16 1 10 MB/s
MCA 5 MHz 32 1 20 MB/s
EISA 8.33 MHz 32 1 33.3 MB/s (16.7 MB/s typically)
VLB 33 MHz 32 1 133 MB/s
PCI 33 MHz 32 1 133 MB/s
PCI-X 66 66 MHz 64 1 533 MB/s
PCI-X 133 133 MHz 64 1 1,066 MB/s
PCI-X 266 133 MHz 64 2 2,132 MB/s
PCI-X 533 133 MHz 64 4 4,266 MB/s
AGP x1 66 MHz 32 1 266 MB/s
AGP x2 66 MHz 32 2 533 MB/s
AGP x4 66 MHz 32 4 1,066 MB/s
AGP x8 66 MHz 32 8 2,133 MB/s
PCIe 1.0 x1 2.5 GHz 1 1 250 MB/s
PCIe 1.0 x4 2.5 GHz 4 1 1,000 MB/s
PCIe 1.0 x8 2.5 GHz 8 1 2,000 MB/s
PCIe 1.0 x16 2.5 GHz 16 1 4,000 MB/s
PCIe 2.0 x1 5 GHz 1 1 500 MB/s
PCIe 2.0 x4 5 GHz 4 1 2,000 MB/s
PCIe 2.0 x8 5 GHz 8 1 4,000 MB/s
PCIe 2.0 x16 5 GHz 16 1 8,000 MB/s
PCIe 3.0 x1 8 GHz 1 1 1,000 MB/s
PCIe 3.0 x4 8 GHz 4 1 4,000 MB/s
PCIe 3.0 x8 8 GHz 8 1 8,000 MB/s
PCIe 3.0 x16 8 GHz 16 1 16,000 MB/s

Transferencia de datos en el puerto PCI Express

La conexión PCI Express representa un avance extraordinario en la forma en que los dispositivos periféricos se comunican con el ordenador.

Se diferencia del bus PCI en muchos aspectos, pero el más importante es la forma en que se transfieren los datos.

La conexión PCI Express es otro ejemplo de la tendencia a migrar la transferencia de datos de la comunicación paralela a la comunicación serial. Otras interfaces comunes que utilizan la comunicación serial son el USB, Ethernet (red) y SATA y SAS (almacenamiento).

Antes del PCI Express, todos los buses de PC y ranuras de expansión utilizaban comunicación paralela. En la comunicación paralela se transfieren varios bits en la ruta de datos al mismo tiempo, en paralelo.

En la comunicación serial, solo se transfiere un bit en la trayectoria de datos por ciclo de reloj. Al principio, esto hace que la comunicación paralela sea más rápida que la comunicación serial, ya que cuanto mayor sea el número de bits transmitidos a la vez, más rápida será la comunicación.

La comunicación paralela, sin embargo, sufre de algunos problemas que impiden que las transmisiones alcancen velocidades de reloj más altas. Cuanto más alto sea el reloj, mayores serán los problemas con la interferencia electromagnética (EMI) y el retardo de propagación.

Cuando la corriente eléctrica fluye a través de un cable, se crea un campo electromagnético a su alrededor. Este campo puede inducir corriente eléctrica en el cable adyacente, corrompiendo la información que se transmite por este.

Como hemos comentado antes, cada bit de comunicación en paralelo se transmite por un cable separado, pero es casi imposible hacer que esos 32 cables tengan exactamente la misma longitud en una placa base. A velocidades de reloj más altas, los datos transmitidos a través de cables más cortos llegan antes que los datos transmitidos a través de cables más largos.

Es decir, los bits en comunicación paralela pueden llegar con retraso. Como consecuencia, el dispositivo receptor debe esperar a que lleguen todos los bits para procesar los datos completos, lo que representa una pérdida significativa de rendimiento. Este problema se conoce como retardo de propagación y se agrava con el aumento de las frecuencias de reloj.

El proyecto de un bus que utiliza comunicación serial es más sencillo de implementar que el de uno que utiliza comunicación paralela, ya que se necesitan menos cables para transmitir datos.

En una comunicación serial típica, se necesitan cuatro cables: dos para transmitir datos y dos para recibir, generalmente con una técnica contra la interferencia electromagnética llamada cancelación o transmisión diferencial. En caso de cancelación, la misma señal se transmite por dos cables, mientras que el segundo cable transmite la señal «reflejada» (polaridad invertida) en comparación con la señal original.

Además de proporcionar una mayor inmunidad a las interferencias electromagnéticas, las comunicaciones seriales no sufren retrasos de propagación. De esta manera, pueden alcanzar frecuencias de reloj más altas más fácilmente que las comunicaciones paralelas.

Otra diferencia muy importante entre la comunicación paralela y la comunicación serial es que la comunicación paralela suele ser semidúplex (se utilizan los mismos cables para transmitir y recibir datos) debido al elevado número de cables necesarios para su implementación.

La comunicación serial es full-duplex (hay un conjunto separado de cables para transmitir datos y otro conjunto de cables para recibir datos) porque solo necesita dos cables en cada sentido. Con una comunicación semidúplex, dos dispositivos no pueden hablar entre sí al mismo tiempo; uno u otro está transmitiendo datos. Con una comunicación full-duplex, ambos dispositivos pueden estar transmitiendo datos al mismo tiempo.

Estas son las principales razones por las que los ingenieros adoptaron la comunicación serial en lugar de la comunicación paralela con el puerto PCI Express.

¿Es más lenta la comunicación serial?

Depende de lo que estés comparando. Si se compara una comunicación paralela de 33 MHz que transmite 32 bits por ciclo de reloj, será 32 veces más rápida que una comunicación serial de 33 MHz que transmite solo un bit a la vez.

Sin embargo, si se compara la misma comunicación paralela con una comunicación serial que funciona a una frecuencia de reloj mucho mayor, la comunicación serial puede ser, de hecho, mucho más rápida.

Basta con comparar el ancho de banda del bus PCI original, que es de 133 MB/s (33 MHz x 32 bits), con el ancho de banda más bajo que se puede conseguir con una conexión PCI Express (250 MB/s, 2,5 GHz x 1 bit).

La noción de que la comunicación serial es siempre más lenta que la comunicación paralela proviene de ordenadores antiguos que tenían puertos llamados «puerto serie» y «puerto paralelo».

En ese momento, el puerto paralelo era mucho más rápido que el puerto serie. Esto se debió a la forma en que se implementaron estos puertos. Esto no significa que las comunicaciones seriales sean siempre más lentas que las comunicaciones paralelas.

Ranuras y tarjetas gráficas

La especificación PCI Express permite que las ranuras tengan diferentes tamaños físicos, dependiendo del número de carriles conectados a la ranura.

Esto permite reducir el tamaño del espacio necesario en la placa base. Por ejemplo, si se requiere una ranura con una conexión x1, el fabricante de la placa base puede usar una ranura más pequeña, ahorrando espacio en la placa base.

Muchas placas base tienen ranuras x16 que están conectadas a carriles x8, x4 o incluso x1. Con ranuras más grandes es importante saber si sus tamaños físicos realmente corresponden a sus velocidades. Además, algunas máquinas pueden rebajar su velocidad cuando sus carriles son compartidos.

El escenario más común es en placas base con dos o más ranuras x16. Con varias placas base, solo hay 16 carriles que conectan las dos primeras ranuras x16 al controlador PCI Express. Esto significa que cuando instales una sola tarjeta de vídeo, tendrá el ancho de banda x16 disponible, pero cuando se instalen dos tarjetas de vídeo, cada tarjeta de vídeo tendrá un ancho de banda x8 cada una.

El manual de la placa base debe proporcionar esta información. Pero un consejo práctico es mirar dentro de la ranura para ver cuántos contactos tiene.

Si ves que los contactos en una ranura PCI Express x16 se reducen a la mitad de lo que deberían ser, esto significa que aunque esta ranura es físicamente una ranura x16, en realidad tiene ocho carriles (x8). Si con esta misma ranura ves que el número de contactos se reduce a un cuarto de lo que debería tener, estás viendo una ranura x16 que en realidad tiene solo cuatro carriles (x4).

Es importante entender que no todos los fabricantes de placas base siguen este procedimiento; algunos todavía utilizan todos los contactos aunque la ranura esté conectada a un número menor de carriles. El mejor consejo es revisar el manual de la placa base para obtener la información correcta.

Para alcanzar el máximo rendimiento posible, tanto la tarjeta de expansión como el puerto PCI Express tienen que ser de la misma revisión. Si tienes una tarjeta de vídeo PCI Express 2.0 y la instalas en un sistema con un puerto PCI Express 3.0, estarás limitando el ancho de banda a PCI Express 2.0. La misma tarjeta de vídeo instalada en un sistema antiguo con un controlador PCI Express 1.0 se limitará al ancho de banda de PCI Express 1.0.

Usos y beneficios

Con PCIe, los administradores de datacenters pueden beneficiarse de redes de alta velocidad en las placas base de los servidores y conectarse a tecnologías de red Gigabit Ethernet, RAID e Infiniband fuera del rack del servidor. El bus PCIe también permite conexiones entre ordenadores en clúster mediante HyperTransport.

Para portátiles y dispositivos móviles, las minitarjetas PCI-e se utilizan para conectar adaptadores de red inalámbricos, almacenamiento en disco SSD y otros aceleradores de rendimiento.

El PCI Express externo (ePCIe) permite conectar la placa base a una interfaz PCIe externa. En la mayoría de los casos, los diseñadores utilizan ePCIe cuando el ordenador requiere un número inusualmente grande de puertos PCIe.

Miguel Ángel Navas

Amante de la informática, los smartphones y la tecnología en general. Técnico superior en Administración de sistemas informáticos y redes, y un reviewer sin pelos en la lengua. Cualquier duda o cuestión aquí me tenéis.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba