PCI Express: Características y Velocidad de Todas sus Versiones
El PCIe (Peripheral Component Interconect Express) es una evolución del conector PCI tradicional que servía para conectar periféricos internos en los ordenadores, añadiendo mucha más velocidad y una nueva interfaz escalable y retro compatible que pasaba a conectar los periféricos en serie en vez de en paralelo como lo hacía el conector PCI tradicional.
La principal introducción del PCIe fue el uso de líneas de transmisión, las cuales serían escalables haciendo que dispositivos con más líneas puedan funcionar en puertos con menos al negociar la velocidad al conectarse. Esto permitía a los periféricos adaptarse a los requisitos de ancho de banda pudiendo diseñarse con menos líneas o usarse en un sistema con menos líneas disponibles y permitiendo también distribuir el uso de líneas entre varios dispositivos dependiendo de lo que haya conectado y las líneas disponibles en el sistema.
El conector fue otra gran novedad, diseñado desde el primer momento para ser retro compatible y escalable además de venir en versiones de 1, 4, 8 y 16 líneas para usarse con los diferentes formatos de tarjetas.
Al conector ha ido actualizándose con bastante frecuencia desde su lanzamiento en 2003, casi duplicando su velocidad máxima por línea en cada actualización hasta llegar a la versión 5.0, la última que podemos encontrar en los productos orientados a los consumidores en el momento de escribir esto y manteniendo la alimentación de 75W a través del conector. Aun así, ya se está desarrollando la versión 6.0, la cual cambiará de manera radical la forma de transmitir datos del estándar como veremos al final de la publicación e incluso la versión 7.0 ya se habría empezado a diseñar.
Así pues, a continuación, iremos explorando el estándar PCIe, todas sus versiones y características y como afectan al rendimiento según el diseño de nuestro sistema para que podamos elegir y conocer mejor estos puertos de nuestro ordenador.
El PCI Express ha avanzado mucho desde su lanzamiento, con varias versiones hasta la 5.0 que tenemos ahora, con cada nueva versión casi doblando la velocidad de transmisión y manteniendo el mismo conector, y se espera que las siguientes sigan así, por eso en esta tabla numeraremos la velocidad máxima teórica que podemos de cada versión según el número de líneas que estén en uso, y tras ello haremos una breve explicación de cada versión y sus introducciones más importantes.
1.0 | 2.0 | 3.0 | 4.0 | 5.0 | 6.0 | |
---|---|---|---|---|---|---|
x1 | 250 MB/s | 500 MB/s | 985 MB/s | 1.97 GB/s | 3.94 GB/s | 7.56 GB/s |
x4 | 1 GB/s | 2 GB/s | 3.94 GB/s | 7.87 GB/s | 15.75 GB/s | 30.25 GB/s |
x8 | 2 GB/s | 4 GB/s | 7.87 GB/s | 15.75 GB/s | 31.5 GB/s | 60.5 GB/s |
x16 | 4 GB/s | 8 GB/s | 15.75 GB/s | 31.5 GB/s | 63 GB/s | 121 GB/s |
- 1.0 Lanzada en 2003 y dando 250 MB/s de transferencia por línea, se actualizaría a la 1.1 que es la que podemos encontrar en la mayoría de implementaciones modernas.
- 2.0 Presentada en 2007, dobló la velocidad de la primera versión hasta los 500 MB/s por línea de transmisión. Se actualizaría a la versión 2.1, la cual introduciría algunas de las características de gestión del PCIe 3.0.
- 3.0 Llegaría en 2010 y cambiaría la codificación de los datos para poder seguir aumentando el ancho de banda, que en esta generación subiría a 985 MB/s por línea, pero no llegaría al doble por el espacio de transmisión de la nueva codificación. También se añadirían nuevas tecnologías de gestión de transmisión y optimización como el ReBAR. Luego se actualizaría a la 3.1 con más actualizaciones menores.
- 4.0 Aparecería por primera vez para los consumidores con el zócalo AM4 de AMD en 2019. Ahora la velocidad llegaría a 1969 MB/s por línea y hasta 31.5 GB/s en el puerto x16.
- 5.0 Doblaría la velocidad de la versión anterior con 3.938 MB/s por cada línea, la cual se encuentra a día de hoy en las últimas plataformas de sobremesa con su primera aparición con la decimosegunda generación de Intel en 2021.
Como hemos visto antes, el PCIe consigue un ancho de banda muy alto, sobre todo en las últimas versiones y gracias al sistemas de líneas se puede distribuir entre varios dispositivos, aunque esto también lleva a varias confusiones, la primera sobre la cantidad de líneas que usa cada dispositivo y luego la versión de PCIe real que tienen.
Para empezar, las líneas que suelen tener las plataformas de sobremesa suelen ser muy limitadas. Las de Intel tienen 16 líneas hasta la generación 12, que empezaron a tener 16+4. Luego las de AMD tienen 16+4 en AM4 y 16+2x4. Las primeras 16 para las gráficas y las adicionales para almacenamiento. Ahora bien, si solo hay 16 líneas eso solo da para un conector completo, entonces, ¿cómo es que hay placas base con 4 o más conectores PCIe?
Pues lo que pasa es que muchas veces los puertos adicionales no están cableados al completo, con solo 8, 4 o incluso menos líneas aunque el conector físico sea x16. Esto pasa porque al conectarse dos dispositivos se suele dividir el ancho de banda a x8 al puerto principal y x8 al secundario, haciendo que de todas maneras el segundo puerto no pueda funcionar a x16 al no haber suficientes líneas en el sistema.
Esto por ejemplo no pasa en las plataformas profesionales como por ejemplo los Threadripper, donde es común tener 64 líneas o más para todo el sistema y, por tanto, se pueden usar al completo más puertos.
Luego tenemos otro problema con la versión, como hemos dicho antes la CPU solo nos da 16 lineas para los puertos principales más 4 u 8 para el almacenamiento en el caso de las más modernas, por lo que todas las adicionales tendrán que ir al chipset como líneas adicionales, lo cual afecta mucho a su rendimiento dado que tienen que compartir el ancho de banda con los puertos USB, SATA u otros elementos de la placa base. Esto también hace que su versión se vea reducida, teniendo puertos una o dos versiones por detrás de los puertos principales debido a las limitaciones del chipset. Aunque todo esto depende finalmente del diseño de la placa base, ya que los puertos adicionales dependerán de su diseño y del chipset que tenga.
Como hemos comentado en la sección anterior muchas veces se reduce el ancho de banda de los puertos PCIe de forma discreta, pero aun así muchas veces no nos damos cuenta debido al tremendo ancho de banda del estándar y el poco uso que le dan los dispositivos actuales, por lo que surge la pregunta, ¿Realmente necesitamos tanta velocidad?
Esta pregunta daría a un artículo entero, pero la realidad es que muchas veces no necesitamos tanto ancho de banda para los usos que la mayoría de personas le damos a un ordenador. Por ejemplo, uno podría pensar que las tarjetas gráficas necesitan la ultima verssón de PCIe, pero en realidad no hace mucho las gráficas funcionaban en puertos PCIE 2.0 y 3.0 sin problemas e incluso las gráficas actuales funcionaran sin problemas en ellos sin casi perder rendimiento o sin perderlo dependiendo del uso que le demos.
Lo mismo pasa con los SSD, ahora tenemos puertos PCIe 5.0 que con 4 líneas nos dan casi 16 GB/s de velocidad de transmisión para hacernos a la idea la mayoría de SSD M2 no llegan todavía a esa cifra y de hacerlo es de forma puntual y no sostenida. Y aunque mantuvieran esas velocidades tendríamos el cuello de botella en otro lado, ya que para la mayoría de tareas no es posible aprovechar esa velocidad. Para hacernos una idea de esa velocidad si descargamos un juego con una conexión de 10 Gbit/s solo llegaríamos a los 1.25 GB/s.
Mirando al futuro del PCIe podemos esperar que las versiones siguientes casi vuelvan a duplicar el rendimiento de las anteriores, no llegando a ser el doble por el espacio que ocupa la codificación, la cual además cambiará con el PCIe 6.0. A partir de esa versión tendremos una codificación por modulación de pulso de 4 estados (PAM4), la cual además necesitará de corrección de errores para llegar a las altas velocidades con el mismo conector. Por ahora esta especificación ya está lanzada y podremos verla en unos años en nuestros ordenadores, y la 7.0 ya estaría preparándose también, aunque con el reto pendiente de mantener la integridad de la señal con velocidades tan altas.