Si habéis leído las especificaciones de muchos procesadores y placas base para el mercado alto rendimiento, es decir, estaciones de trabajo, servidores, centros de datos y similares, veréis que siempre aparece nombrada una tecnología llamada CXL o Compute Express Link que suele coincidir con el PCI Express. En este artículo os vamos a explicar qué es y para qué se usa y por qué no suele verse en PC.
Una de las particularidades del PC y todos los sistemas derivados, entre ellos algunos que no son de uso doméstico, es el hecho de que su memoria o acceso a la misma no es unificado, lo que obliga a la creación de nuevos protocolos para conseguir dicha función. Durante un largo tiempo, los diferentes fabricantes tienen que romperse los sesos para conseguir que los diferentes componentes. Pese a tener distintas memorias, usarán el mismo direccionamiento. Si bien podían hacerlo entre dispositivos una misma marca, la cosa se complicaba cuando en varias compañías la idea del CXL no es otra que conseguir ese objetivo desde un protocolo abierto que pueda usar cualquier fabricante sin miedo incompatibilidades de ningún tipo
Bajo el nombre de Compute Express Link, o CXL, se conoce un estándar que es una expansión del PCI Express. Esto es debido a que utiliza su misma interfaz de datos, pero que añade un elemento ausente que es la coherencia de memoria. Es decir, que pese a que físicamente los diferentes dispositivos tengan distintos pozos de memoria físicos, estos tienen acceso a una forma común de comunicarse entre ellos.
Obviamente, aquí hemos de diferenciar entre direccionamiento y situación física. Ya que lo primero es la forma en la que la CPU, GPU o cualquiera de los componentes clave localiza los datos en memoria y conoce la situación de los mismos. Como por ejemplo si se ha reescrito una celda de memoria recientemente.
Esto se suele conseguir con un sistema de cachés, donde varios núcleos, independientemente de si son simétricos o no, comparten una caché de último nivel que les permite tener una visión común del contenido de la RAM, lo cual se facilita por el hecho que suelen estar en el mismo chip, SoC, con un único controlador de memoria integrado y un pozo de memoria en común.
¿Pero qué ocurre cuando tenemos un sistema del tipo NUMA Non-Uniform Memory Access? Es decir, lo que se suele tener en PC que consiste en que, por un lado, tenemos la CPU con la RAM del sistema y por el otro, la tarjeta gráfica con su VRAM. Pues en este punto es donde entra el CXL o Compute Express Link, que lo que busca es que todos los componentes del PC, al menos los de alto rendimiento. Ya que estos son los que se comunican por la interfaz PCI Express, de ahí a usar estar como base para la creación de este estándar abierto.
CXL 1.0 y 2.0 se construyen a partir de la interfaz PCI Express 5.0. En cambio, la versión 3.0 del estándar lo hace bajo PCI Express 6.0. No existe una versión del Compute Express Link que funcione con generaciones anteriores de esta interfaz de comunicación en paralelo de alta velocidad. Sin embargo, hemos de tener en cuenta que para que las ventajas del CXL se activen, no solo ha de estar soportado por la placa base o el controlador PCI Express del sistema, sino que también por los dispositivos que se conectan.
Y es que el Compute Express Link añade una serie de normas de comunicación con tal de conseguir la coherencia de memoria entre los diferentes dispositivos que requieren que el hardware se encuentre adaptado para ello. Por el momento, dicha adaptación solo la podemos ver en estaciones de trabajo, servidores y centros de datos, ya que no se encuentra ni tan siquiera en las placas base más avanzadas para PC de Intel y AMD.
No obstante, el uso de este protocolo tiene como principal utilidad, el poder convertir a memorias RAM que no son la principal y que en jerarquía vendrían después de la misma en principales para ciertas tareas. De esta forma se evita el tener que recorrer memorias de alta capacidad de las que se saben que no contienen los datos. Dicho de otra forma, nos permite usar el puerto PCI Express para así acceder a memoria desde una GPU o una CPU ajena a la de cada dispositivo
Tenemos tres tipos de dispositivos CXL, los cuales son los siguientes:
En cuanto a los protocolos de comunicación, todo dispositivo CXL ha de ser seguir a rajatabla los tres siguientes:
A partir de la versión 2.0 del CXL, los componentes que son compatibles con este estándar pueden utilizar otras memorias que no sean las suyas propias para trabajar. Sin embargo, para evitar problemas de contención con el uso de pozos de RAM externos, lo que se permite es utilizar espacios de memoria y asignarlos a dichos aceleradores. Esto se hace para evitar conflictos en el acceso a memoria entre los diferentes dispositivos que acceden a la misma. No obstante, permite asignar espacios de memoria concretos a las necesidades de cada dispositivo fuera de su memoria local.
Para ello, el CXL.cache es muy importante, ya que actúa como una especie de caché de último nivel de cara a los pozos de memoria adicionales que se encuentran más allá del controlador de memoria integrado en el chip y permite su acceso directo a ellos como si fuesen parte de su RAM principal. La utilidad de todo esto es fácil de entender y tiene varios usos.
Por ejemplo, imaginad por un momento que tenemos que entrenar una IA en una GPU y que su VRAM nos resulta un factor limitante en tamaño, entonces el acelerador puede ir más allá de su propia memoria local. Ya sea utilizando la RAM principal del sistema, de otro dispositivo similar compatible con CXL en el mismo ordenador o un dispositivo de memoria.
Todo ello es clave en sistemas que por limitaciones físicas no permiten ir más allá de su asignación de memoria. El caso más claro es el de una tarjeta gráfica por el hecho que suelen tener la RAM soldada, pero puede que nos encontremos en la misma situación con una CPU o cualquier otro dispositivo.
Para poder comprar, aprovechar las promociones y utilizar los medios de pago en nuestro sitio es requisitio estar correctamente registrado. En ningún momento recibirá correo electrónico que no haya solicitado. Pero se le pediran una serie de datos personales indispensables para cualquier operación comercial.
Los datos solicitados son necesarios para confeccionar la factura de los productos comprados y la dirección física para el envio de su compra.
Para más informació sobre nuestras políticas en el tratamiento de los datos personales visite la sección Terminos y Condiciones.
