PCI Express, una guía con todo lo que debes saber
Si estás leyendo estas líneas seguro que te suena el término PCI Express (PCIe) pero quizás no tienes tan claro cómo funciona o por qué es importante. En esta guía abordaremos con detalle uno de los estándares más importantes de la informática actual, desde sus orígenes al importante papel que juega hoy día.
Un poco de historia
El PCI (Peripheral Component Interconnect) fue creado por Intel en 1991, aunque su presentación oficial fue el 22 de junio de 1992. El nuevo estándar se presentaba con el objetivo de superar las limitaciones de los buses de la época, ISA, MCA, EISA y VESA, unificando estos formatos en una solución universal.
Como ha ocurrido tantas veces en la historia de la tecnología, a pesar de que sobre el papel el PCI no era superior al VESA en términos de velocidad de transferencia, terminó por imponerse gracias a su bajo coste y una decisión empresarial clave: al no ser una extensión del bus del microprocesador era posible cambiar de micro sin tener que cambiar toda la placa.
Además, la arquitectura del PCI estaba diseñada para hacer realidad ese sueño llamado “Plug & Play” y funciones como las asignaciones DMA, las IRQ dinámicas o las posibilidades para aprovechar el rendimiento del bus cuando teníamos varios dispositivos al mismo tiempo terminaron por convencer a la industria de su adopción masiva.
La aparición de la versión 2.0 en 1993 y el lanzamiento del Intel Pentium en 1994 fueron dos claves para la consagración del PCI como el estándar que hoy conocemos. Durante los siguientes años se fue mejorando el estándar, ampliando el ancho de banda disponible hasta que se iban produciendo cuellos de botella. El más grave, provocado por la popularización de las tarjetas de vídeo, se solucionó creando un puerto exclusivo (AGP) y “liberando” al PCI de esa pesada carga.
Qué es el PCI Express
El PCI Express fue desarrollado por Intel e introducido en el mercado por primera vez en 2004, gobernado por el chipset 915P. Lejos de ser un parche o una solución temporal, el salto a PCI Express supuso un importante cambio de paradigma tecnológico.
La diferencia fundamental del PCI Express respecto a sus predecesores es que no es un bus para conectar varios dispositivos al mismo tiempo, sino una conexión punto a punto que solo conecta dos dispositivos a la máxima velocidad disponible. De esta forma, se supera uno de los inconvenientes de la conexión paralela del PCI, la disminución de rendimiento cuando varios dispositivos necesitan comunicarse con el procesador al mismo tiempo.
Simplificando, la arquitectura PCI Express se basa en carriles individuales que se pueden agrupar para aumentar el ancho de banda. Así, podemos entender un PCI Express x16 como una conexión serial de 16 carriles de comunicación.
Antes de la llegada del PCI Express, la comunicación paralela dominaba el hardware. Hoy día, interfaces tan conocidas como el USB o el SATA funcionan con comunicación serial. En este protocolo, solo se transmite un bit por cada ciclo de reloj, algo que le penaliza respecto a la paralela que puede transmitir varios.
Sin embargo, a medida que pasa el tiempo la comunicación paralela puede sufrir retrasos (conocidos como retardos de propagación) que aumentan a medida que subimos la frecuencia del reloj. Además, al ser menos complejas técnicamente no sufren de problemas relacionados con interferencias electromagnéticas y adoptan una arquitectura full-duplex, es decir, tienen un conjunto de cableado separado para transmitir y recibir datos.
El resultado es un estándar rápido, fiable y de bajo coste que se ha convertido en la mejor opción cuando hay grandes necesidades de transferencias de datos. Las modernas tarjetas gráficas son el mejor ejemplo de ello.
Tipos y Versiones del PCI Express
Para conectar tarjetas de expansión con la placa base, PCI Express utiliza ranuras físicas. Pueden ir de x1 a x16, y cuánto mayor es el número mayores son las dimensiones de la ranura porque contiene más pines.
- PCIe x1: tiene 1 carril , 18 pines y 25 mm de longitud
- PCIe x4: tiene 4 carriles , 32 pines y 39 mm de longitud
- PCIe x8: tiene 8 carriles , 49 pines y 56 mm de longitud
- PCIe x16: tiene 16 carriles , 82 pines y 89 mm de longitud
Como hemos comentado, en PCI Express cada carril es individual y no se puede compartir entre diferentes dispositivos. Así, si conectamos nuestra GPU a una ranura PCIe x16 significa que tiene 16 carriles a su disposición de manera exclusiva e indipendente a otros dispositivos que tengamos conectados.
Las ranuras PCI Express son retrocompatibles. Puedes utilizar una tarjeta PCIe x1 en una ranura PCIe x16 pero no al revés, porque físicamente es imposible y además no tendría sentido.
Actualmente se utilizan cuatro versiones de PCI Express: PCI Express 1.0, PCI Express 2.0, PCI Express 3.0 y PCI Express 4.0. Cada versión de PCIe admite aproximadamente el doble del ancho de banda de la PCIe anterior . Esto es lo que ofrece cada uno de ellos:
- PCI Express 1.0: tiene un ancho de banda de 250 MB / s por carril
- PCI Express 2.0: tiene un ancho de banda de 500 MB / s por carril
- PCI Express 3.0: tiene un ancho de banda de 984.6 MB / s por carril
- PCI Express 4.0: tiene un ancho de banda de 1969 MB / s por carril
Los valores de ancho de banda indicados se multiplican por la cantidad de carriles disponibles en una ranura PCIe. Si desea calcular cuánto ancho de banda está disponible para una determinada tarjeta de expansión, basta con multiplicar su ancho de banda PCIe por línea con la cantidad de líneas disponibles.
Por ejemplo, una tarjeta gráfica que admite PCI Express 4.0 y está conectada a una ranura PCIe x16 tiene acceso a un ancho de banda total de aproximadamente 31.51 GB / s. Ese es el resultado de multiplicar 1969 MB / s por 16 (ancho de banda PCIe por carril x 16 carriles).
Versión | Código en línea | Velocidad de transferencia | Ancho de banda | |
Por carril | En x16 | |||
1.0 | 8b/10b | 2,5 GT/s | 2 Gbit/s (250 MB/s) | 32 Gbit/s (4 GB/s) |
2.0 | 8b/10b | 5 GT/s | 4 Gbit/s (500 MB/s) | 64 Gbit/s (8 GB/s) |
3.0 | 128b/130b | 8 GT/s | 7,9 Gbit/s (984,6 MB/s) | 126 Gbit/s (15,8 GB/s) |
4.0 | 128b/130b | 16 GT/s | 15,8 Gbit/s (1969,2 MB/s) | 252,1 Gbit/s (31,5 GB/s) |
5.0 | 128b/130b | 32 GT/s | 31,5 Gbit/s (3938,4 MB/s) | 504 Gbit/s (63 GB/s) |
6.0 | b/b | GT/s | , Gbit/s (, MB/s) | Gbit/s ( GB/s) |
En el futuro, hay nuevas versiones de PCI Express, como PCI Express 5.0 y PCI Express 6.0. La especificación PCIe 5.0 se concretó en el verano de 2019, ofreciendo un ancho de banda de hasta 3938 MB / s por carril y hasta 63 GB / s en configuración x16. Sin embargo, lo más probable es que tardemos en verlo en soluciones de consumo.
¿Funcionará mejor mi GPU en un PCI Express más rápido?
Una pregunta habitual entre los usuarios si conectar su GPU a un PCI Express más rápido implica necesariamente una mejora de rendimiento. La realidad es que ninguna gráfica actual aprovecha los más de 30 Gpbs que ofrece PCI Express 4.0 y solo utilizan la interfaz cuando tiene que usar la RAM del sistema o comunicarse con el procesador.
Cualquier gráfica moderna incluye una gran cantidad de RAM que, normalmente, es más rápida que la del propio sistema, así que es extremadamente raro que se produzca un cuello de botella. Los problemas suelen tener más que ver con falta de optimización por parte de los desarrolladores o de unos drivers inmaduros.
Terminamos con un ejemplo con datos reales. Una NVIDIA RTX 2080 Ti obtiene su mejor rendimiento cuando la conectamos a un puerto PCI Express 3.0. No vamos a ganar más frames por conectarla a un 4.0, pero sí tendríamos mermas de rendimiento (entre un 7 y un 14% en función del escenario) si bajamos a un 2.0.
La cosa cambia cuando en lugar de versiones hablamos de los carriles disponibles. Otro ejemplo real es la nueva AMD Radeon RX 5500 XT que esta limitada a PCIe 4.0 x8 o PCIe 3.0 x8. Aquí el salto entre 4.0 y 3.0 si es dramático, porque al no aprovechar los 16 carriiles es necesario un plus de ancho de banda.
Obviamemente, en realidad las cosas no son tan sencillas y hay que tener en cuenta aspectos como la CPU utilizada, la RAM o el chipset pero, en términos generales PCI Express ofrece ancho de banda más que suficiente como para tener que preocuparse por ello.