Así es PCIe 6.0 para las GPU AMD, NVIDIA e Intel, ¿qué novedades trae?

Así es PCIe 6.0 para las GPU AMD, NVIDIA e Intel, ¿qué novedades trae?

Josep Roca

La tecnología PCI Express se lleva tiempo utilizando para conectar las tarjetas gráficas y otros periféricos como por ejemplo los discos SSD NVMe. La implementación de la quinta generación de la interfaz se da con la llegada de los procesadores Alder Lake de Intel y los Zen 4 de AMD. Pero la especificación del PCI Express 6.0 (PCIe 6.0) ha sido terminada y trae varias mejoras sobre la quinta generación.

De cara a la sexta generación de la interfaz PCI Express vamos a ver un serie de cambios importantes con tal de poder continuar con la tradición a la que hemos siso acostumbrados. La cual dice que en cada nueva gen del PCIe se duplica su ancho de banda y, por tanto, la cantidad de datos que se pueden transmitir de extremo a extremo. No obstante, en el caso del PCI Express 6.0 se han necesitado cambios profundos en el desarrollo de la sexta generación de esta interfaz.

Especificaciones generales del PCI Express 6.0

PCI Express 6.0 evolucion ancho banda

Lo primero que nos interesa del PCI Express 6.0 es saber cuanta información podemos transmitir por segundo a través de esta interfaz. No olvidemos que en las placas base de nuestros PC podemos encontrar interfaces de 1, 4, 8 y hasta 16 líneas diferentes, donde en cada una se envían datos en paralelo. ¿El ancho de banda total? 256 GB/s en ambas direcciones para la interfaz utilizada en tarjetas gráficas y 64 GB/s para la de los SSD M.2. Eso sí, hemos de tener en cuenta que estamos hablando del ancho de banda sumado en ambas direcciones, es decir, teniendo en cuenta lectura y escritura al mismo tiempo.

Compatibilidad hacia atrás

La interfaz PCI Express ha sido siempre compatible hacia atrás con versiones anteriores del protocolo, esto significa que podemos conectar una tarjeta PCI Express 1.0 en un slot PCI Express 6.0 y funcionará debido a que el pinaje va a ser exactamente el mismo. Esto es un arma de doble filo, ya que para aumentar el ancho de banda no se pueden colocar pines adicionales y, por tanto, se ha de aumentar la velocidad de reloj a la que funciona la interfaz. Es decir, los bombeos de datos por segundo para transmitir los datos.

¿El problema con el PCI Express 6.0? A medida que aumentamos la velocidad de reloj de una interfaz esta se va volviendo más inestable con la distancia y después de seis generaciones han tenido que hacer cambios en la interfaz debido a la alta velocidad a la que funciona la interfaz de manera tradicional. El problema viene cuando para transmitir 256 GB/s en una interfaz Full Duplex. La cual permite transmitir 1 bit por cada dirección simultáneamente, necesitamos que la velocidad de la interfaz suba hasta 128 GHz y a esas velocidades la integridad de la señal se ve seriamente comprometida.

Esto ha obligado a adoptar una serie de medidas para hacer posible el salto al PCI Express 6.0, empezando por la codificación.

PCI Express 6.0 y codificación PAM4

Mejoras PCI Express 6.0 PAM4

¿Cómo sabe una interfaz externa o interna de un chip si el valor es un 1 o un 0? Pues sencillo, dependiendo del voltaje en el que se transmite la información. Los sistemas binarios se basan en el uso de dos voltajes con la suficiente distancia entre ellos para que la bajada o subida de voltaje haga que la señal no se confunda. En los sistemas analógicos una simple variación en el voltaje supone un cambio en la información. Por ese motivo los ordenadores hablan en binario.

¿Qué tiene que ver esto con el PCI Express 6.0? Dado que no podemos aumentar el ancho de banda porque la señal se distorsiona y tampoco el número de pines por compatibilidad hacia atrás se ha de buscar una solución y esta pasa por el uso codificación PAM4 o Pulse Amplitude Modulation, la cual ya hemos visto en la GDDR6X y no se basa en el uso de dos valores de voltaje sino de 4 valores de voltaje por cada pin. De esta manera podemos codificar los valores 00, 01, 10 y 11 en cada pin. Cuatro valores en total, en vez de los dos valores clásicos que serían 0 o 1.

La solución evita aumentar el ancho de banda y los pines, pero nos adelanta que en el PCI Express 7.0 ya no será posible desde los métodos convencionales. Quizás veamos el uso de fotónica y de interfaces ópticas, pero con las mejoras del PCI Express 6.0 recién salidas del horno, mejor tener paciencia con su sucesor.

Cambios en el sistema de paquetes

PCI Express

El salto a PAM-4 ha cambiado la forma en la que la interfaz PCI Express 6.0 envía sus paquetes, pese a que es compatible con las generaciones anteriores a base de comunicarse en el tradicional modo PAM-2 o NRZ. La realidad es que el formato PAM-4 no soporta el sistema de paquetes anterior y, por tanto, el protocolo de comunicación ha cambiado debido a ello.

Forward Error Correction

Forward Error Correction

El primer cambio ha sido el llamado Forward Error Correction o FEC, el cual es el nuevo protocolo para corregir los errores en el envío de los datos. El problema es que el ancho de banda a procesar es tan alto que el FEC añade una enorme latencia al envío de los datos. Para paliar esto en el estándar PCI Express 6.0 se utiliza un tipo de paquete llamado FLIT. Un paquete no es más que un conjunto de bits con un destino en concreto. ¿La latencia de envío de cada FLIT? Depende de la cantidad de líneas de la interfaz, pero cada paquete tiene una latencia de solo 2 ns en un PCI Express 6.0 de 16 líneas, pero llega hasta los 32 ns en una interfaz con una sola línea.

El FEC solamente trabaja con tamaños fijos, es por ello que el FLIT tiene un tamaño de 256 bytes por envío. Cada paquete o TLP puede tener un tamaño que va de los 0 bytes a los 4096 bytes y, por tanto, cada paquete puede estar compuesto por varios FLITS.

Cyclic Redundancy Check

Cyclic Redundancy Check

La comprobación redundante cíclica es un sistema de corrección de errores en el código que se usa normalmente en unidades de almacenamiento y en redes digitales y que se ha integrado dentro del estándar PCI Express 6.0 para comprobar que los datos transmitidos de extremo a extremo mantienen su integridad y ni un solo bit se ha visto cambiado en el proceso.

Esto se consigue con una serie de cálculos polinomiales realizados por una serie de unidades especializadas para ello que se van a incluir con la interfaz. Esto es algo que tiene sentido con la enorme cantidad de datos que se van a transmitir y supone un ahorro en el caso de los futuros fabricantes de los M.2 SSD que no van a tener que añadir esta funcionalidad en sus unidades de estado sólido al ya venir de serie el CRC en la interfaz.

Nuevo modo de bajo consumo en PCI Express 6.0

Velocidad Datos

El PCI Express 6.0 añade un nuevo estado de bajo consumo bautizado como L0P. Este modo le permite a la interfaz recortar su consumo energético cuando el flujo de datos que se envía es más bajo de los que puede transmitir la interfaz. Para ello varía la velocidad de reloj a la que esta funcione para los momentos puntuales en los que los datos a transmitir se encuentran en menor volumen.

Este mecanismo se encuentra estrechamente relacionado con las nuevas tecnologías introducidas en la sexta versión del PCIe 6, por lo que solo se podrá utilizar con dispositivos compatibles con esta generación de la interfaz.

4 Comentarios