Solução de memória CXL: O que é isso?

Alguma vez já se sentiu frustrado por ficar sem memória no computador, mas sem conseguir adicionar mais memória com a mesma facilidade com que se liga um pen USB? A tecnologia CXL surgiu para resolver este problema. Funciona como um “sistema de expansão externa” para a memória, permitindo que servidores ou estações de trabalho adicionem com flexibilidade grandes quantidades de memória externa através de cabos dedicados e placas de expansão, e até mesmo que várias máquinas partilhem um conjunto comum de memória. Com a tecnologia CXL, 1 TB de memória de sistema — outrora alcançável apenas em mainframes dispendiosos — está a tornar-se cada vez mais comum na computação de alto desempenho e na inteligência artificial.

O que é a imagem do cabeçalho do artigo CXL? Solução de memória CXL: O que é isso?

Por que surgiu o CXL?

Podemos imaginar a memória tradicional de um servidor como um grande prédio de apartamentos com cacifos individuais: cada quarto (cada servidor) tem o seu próprio espaço de armazenamento, mas o tamanho desse espaço é fixo no momento em que se muda para lá e, mesmo que o cacifo do vizinho esteja vazio, não é possível usá-lo. Com o crescimento da inteligência artificial, da computação em nuvem e do big data, este modelo começou a revelar três problemas graves.

Quando os slots físicos se esgotarem, não será possível adicionar mais memória. O número de ranhuras de memória em cada placa-mãe de servidor é limitado, normalmente oito, doze ou dezasseis. Mesmo que preencha todas as ranhuras com os módulos de memória de maior capacidade disponíveis no mercado, a capacidade total continua a atingir um limite máximo. Quando a sua aplicação necessita de mais memória do que esse limite, a única solução é adquirir um servidor mais caro e de gama superior, em vez de simplesmente adicionar mais memória à máquina existente.

Os recursos de memória não podem ser partilhados, o que gera um enorme desperdício. Nos grandes centros de dados, é frequente que os diferentes servidores atinjam o pico de atividade em momentos distintos. No entanto, numa arquitetura tradicional, esses recursos de memória ociosos não podem ser “utilizados” pelos servidores que deles necessitam. As estatísticas do setor revelam que a utilização da memória nos centros de dados se situa frequentemente abaixo dos cinquenta por cento, o que significa que quase metade do investimento em hardware fica ocioso.

Para fazer face a um aumento repentino da procura, as empresas são obrigadas a investir em excesso. Quando um projeto necessita, ocasionalmente, do dobro da sua capacidade normal de memória, a solução tradicional consiste em adquirir hardware que satisfaça a procura de pico. Esse dinheiro é gasto em capacidade que fica por utilizar a maior parte do tempo. Além disso, uma vez instalados, esses módulos de hardware não podem ser reatribuídos de forma flexível entre diferentes projetos nem facilmente ampliados à medida que a empresa cresce.

O objetivo era resolver os três problemas de uma só vez – capacidade física limitada, incapacidade de partilhar recursos e baixa eficiência dos investimentos – que foram os engenheiros a conceber a tecnologia CXL. Esta altera profundamente a forma como a memória se liga às unidades de processamento, transformando a memória num recurso que pode ser ligado conforme a necessidade e alocado dinamicamente.

O que é o CXL e como funciona?

O CXL é um protocolo de comunicação aberto baseado na interface física padrão PCIe. O seu nome completo é Compute Express Link, e pode pensar nisso como um conjunto de “regras de linguagem” que permitem uma comunicação de alta velocidade, coerente e de baixa latência entre a CPU e os dispositivos de memória externos. O que torna a CXL única é o facto de permitir que a CPU trate a memória externa como se fosse parte do seu próprio corpo, em vez de um periférico que requer um desvio para ser acedido.

Coerência da cache

Imagine o seguinte cenário: você e um colega estão a editar o mesmo documento online. Se cada um guardar uma cópia local e depois fizer alterações, irão surgir conflitos ao fundir as versões – quais alterações prevalecerão? A memória do computador enfrenta o mesmo problema. Dentro da CPU existe uma área de armazenamento muito rápida e pequena chamada “cache”, que contém cópias dos dados recentemente utilizados da memória principal. Quando a CPU acede à memória, lê primeiro a partir da cache, o que é muito mais rápido. Mas se tanto a memória DDR local como a memória CXL externa contiverem cópias dos mesmos dados, e uma cópia for modificada, a outra cópia deve ser atualizada em conformidade. Caso contrário, a CPU poderia ler dados incorretos. Este problema é chamado de “coerência de cache”. O CXL inclui um subprotocolo dedicado para lidar com isso, “comunicando-se” constantemente entre a CPU e a memória externa para garantir que todas as cópias permaneçam consistentes.

Agrupamento de memória e alocação flexível

De acordo com a abordagem tradicional, cada servidor só pode utilizar a memória dos seus próprios slots. A CXL apresenta o conceito de “pooling”: é possível ligar vários dispositivos de memória CXL a um comutador CXL, formando um único conjunto de memória de grande capacidade, e permitir que vários servidores “retirem” memória desse conjunto conforme necessário. É como se num edifício de escritórios se substituíssem os bebedouros individuais em cada gabinete por um bebedouro central no corredor, onde todos se servem de água quando precisam. A capacidade total da estação de água pode ser menor do que a soma de dez bebedouros individuais, mas ainda assim satisfaz as necessidades de todos, porque os seus horários de pico de utilização não coincidem. Da mesma forma, um conjunto de memória CXL permite aos gestores de centros de dados alocar dinamicamente memória com base na carga em tempo real de cada servidor – atribuindo mais quando está ocupado e recuperando-a quando está inativo –, suportando assim mais tarefas de computação com menos hardware total.

Pool de memória CXL e comutadores Solução de memória CXL: O que é isso?

O que inclui a tecnologia CXL?

A CXL é uma solução de memória completa que abrange tudo, desde o hardware físico até à configuração de software. Pode pensar neste sistema como uma autoestrada: a estrada em si (a ligação física) é apenas a base; também são necessárias regras de trânsito (o protocolo de comunicação) para manter os veículos a circular de forma ordenada, e é necessário um sistema de gestão de tráfego (a configuração de software) para indicar aos veículos para onde devem ir e que faixa devem utilizar. Se faltar qualquer uma destas camadas, a autoestrada não pode funcionar verdadeiramente.

Camada de hardware: os componentes visíveis

A componente física da tecnologia CXL inclui vários tipos de dispositivos, que, em conjunto, formam a infraestrutura para a expansão de memória. O hardware mais comum é a placa de expansão de memória CXL, que se assemelha a uma placa gráfica e pode ser ligada diretamente a uma ranhura PCIe existente na placa-mãe de um servidor. Esta placa possui chips de memória soldados ou ranhuras para módulos de memória. Uma vez inserida, o sistema reconhece a capacidade de memória adicional. Outro formato de hardware é o módulo de memória CXL, que é mais pequeno – semelhante a uma unidade de estado sólido compacta – e pode ser instalado em compartimentos de unidade dedicados do servidor, tornando-o adequado para implementações de alta densidade.

Tipos de hardware CXL Solução de memória CXL: O que é isso?

Quando é necessário ligar vários servidores ou vários dispositivos de memória, entra em cena um comutador CXL. Assemelha-se a um comutador de rede, mas em vez de comutar pacotes de rede, comuta pedidos de acesso à memória. Através de um switch CXL, os administradores podem ligar várias placas de memória CXL entre si para formar um conjunto de memória unificado de grande capacidade, permitindo assim que vários servidores partilhem os recursos desse conjunto simultaneamente. Para distâncias maiores, os cabos CXL dedicados podem manter uma transmissão de alta velocidade ao longo de distâncias de vários metros ou mesmo dezenas de metros, permitindo que os dispositivos de memória sejam colocados em racks diferentes dos servidores.

Camada de protocolo: as regras linguísticas da comunicação

Solução de memória CXL na camada de protocolo CXL: O que é isso?

Se o hardware é o esqueleto, o protocolo é a alma que faz tudo funcionar. O protocolo CXL inclui três subprotocolos paralelos, cada um responsável por uma tarefa diferente. Estes podem funcionar simultaneamente sem interferirem uns com os outros.

  • O primeiro subprotocolo chama-se CXL.io, e a sua função é a deteção e inicialização de dispositivos. Quando se insere um cartão de memória CXL num servidor, CXL.io é responsável por permitir que a CPU reconheça o dispositivo, leia as suas informações básicas (tais como a capacidade e os modos suportados) e lhe atribua espaço de endereço. Este processo é muito semelhante ao de ligar uma placa gráfica ou uma placa de rede.
  • O segundo subprotocolo chama-se CXL.cache, que é uma das principais funcionalidades do CXL. O CXL.cache mantém a consistência dos dados entre a cache da CPU e a memória externa. Conforme descrito anteriormente, quando a CPU altera um dado, o CXL.cache garante que a cópia correspondente na memória externa seja também atualizada, e vice-versa.
  • O terceiro subprotocolo chama-se CXL.mem, que se encarrega das operações reais de leitura e gravação de dados. Quando a CPU precisa de ler um dado da memória CXL, o CXL.mem transmite o pedido e devolve os dados; quando a CPU precisa de gravar dados na memória CXL, o CXL.mem realiza a transferência da mesma forma.

Camada de software: configuração e gestão para que tudo funcione

A configuração do software permite que o sistema operativo e as aplicações utilizem efetivamente esta nova memória. No BIOS, o administrador precisa de ativar a funcionalidade CXL e atribuir recursos. Ao nível do sistema operativo, tomando o Linux como exemplo, a memória CXL é reconhecida como um nó NUMA separado, e o administrador pode utilizar comandos para especificar se um programa deve dar preferência à memória local ou à memória CXL. Os sistemas operativos modernos também suportam a hierarquização da memória, que mantém automaticamente os dados mais ativos na DDR local rápida e migra os dados menos ativos para a memória CXL. A grande maioria das aplicações não necessita de qualquer modificação de código para utilizar a memória CXL, uma vez que o sistema operativo a gere tal como a memória normal.

Banner Oscoo 2B 1400x475 1 Solução de memória CXL: O que é isso?

CXL vs. Soluções de memória tradicionais

AspectoSolução DDR tradicionalSolução CXL
Limite máximo de capacidadeLimitado pelos slots de memória da placa-mãe e pela capacidade máxima dos módulos; não é possível expandir mais uma vez atingido o limiteÉ possível continuar a adicionar memória através de placas de expansão CXL ou switches sem substituir a placa-mãe
Flexibilidade dos recursosA memória de cada servidor é fixa; não pode ser reatribuída entre servidoresSuporta pool de memória; vários servidores podem partilhar um pool de memória comum, conforme necessário
Relação custo-benefícioAdquirir grandes quantidades de memória para dar resposta aos picos de procura; a utilização diária situa-se frequentemente abaixo de 50%Suporta a mesma carga de trabalho com menos memória total; a utilização pode ultrapassar os 801 TP6T
Operação de expansãoRequer o desligamento do equipamento e a inserção/remoção física dos módulos de memória; pode implicar na substituição de hardwareSuporta hot-plug e alocação dinâmica; permite adicionar ou remover recursos de memória em tempo real
Cenários adequadosImplementações de pequena escala com requisitos de desempenho exigentes e cargas de trabalho estáveisCentros de dados de grande escala, treino de IA, computação em nuvem e outros cenários que exigem recursos elásticos

Como mostra a tabela, a solução DDR tradicional continua a apresentar vantagens em termos de desempenho extremo e facilidade de implementação, mas à custa de custos elevados e de uma gestão rígida dos recursos. Em contrapartida, a solução CXL sacrifica uma pequena parte da velocidade de acesso em troca de enormes benefícios: capacidade expansível, recursos partilháveis e melhor relação custo-eficiência. Nas operações reais de centros de dados, esta troca é frequentemente muito vantajosa, porque o desperdício de memória ociosa é muito mais prejudicial do que uma pequena diferença de velocidade.

Casos de utilização do CXL

A CXL não se destina a substituir a memória tradicional; destina-se a resolver cenários específicos com os quais a memória tradicional tem dificuldades. As três áreas abaixo são aquelas em que a CXL apresenta as implementações mais maduras e oferece o maior valor.

Inteligência Artificial e Treino de Modelos de Grande Dimensão

O treino de um modelo de linguagem de grande dimensão, com centenas de milhares de milhões de parâmetros, requer o carregamento simultâneo na memória de todos os parâmetros do modelo, dos dados de treino e dos resultados intermédios dos cálculos. Quando o tamanho do modelo excede a capacidade de memória de um único servidor, o CXL permite que um servidor ligue diretamente vários terabytes de memória CXL, mantendo todos os dados num único nó – simplificando significativamente o modelo de programação e melhorando a eficiência do treino. Para equipas de média dimensão que trabalham com modelos de grande dimensão, o CXL oferece uma alternativa mais económica do que a aquisição de mainframes dispendiosos.

Agrupamento de memória no centro de dados

Nos grandes centros de dados na nuvem, os picos de carga de diferentes utilizadores e aplicações ocorrem frequentemente em momentos distintos. Ao implementar switches CXL e um conjunto de memória CXL, o centro de dados pode reunir toda a memória ociosa num conjunto partilhado e atribuí-la dinamicamente de acordo com as necessidades em tempo real de cada servidor. Estimativas do setor sugerem que esta abordagem pode aumentar a utilização da memória dos habituais quarenta a cinquenta por cento para mais de oitenta por cento – o que significa que o mesmo investimento em hardware pode suportar quase o dobro da carga de trabalho de computação.

Computação em nuvem e densidade de máquinas virtuais

Os fornecedores de serviços na nuvem pretendem executar o maior número possível de máquinas virtuais (VMs) num único servidor físico para aumentar as receitas. No entanto, cada VM deve ter uma quantidade fixa de memória atribuída e, mesmo que essa memória não seja realmente muito utilizada, não pode ser ocupada por outras VMs. Como resultado, os servidores ficam frequentemente sem memória muito antes de os seus recursos de CPU se esgotarem, limitando o número de VMs que podem ser criadas. Um pool de memória CXL permite que a plataforma de nuvem trate a memória como um recurso elástico para sobre-subscrição ou ajuste dinâmico: quando uma VM está a utilizar menos memória do que a alocada, o excedente pode ser recuperado e atribuído a outras VMs. Esta tecnologia permite que os fornecedores de nuvem alojem mais clientes nos mesmos servidores físicos, reduzindo os custos operacionais.

Para além destes três principais casos de utilização, a CXL é também utilizada em simulações em grande escala na computação de alto desempenho, na expansão da capacidade de bases de dados em memória (como o SAP HANA) e na aceleração de motores de análise de big data em tempo real (como o Apache Spark). O que estas aplicações têm em comum é uma procura muito elevada de capacidade de memória, combinada com uma certa tolerância à latência – exatamente o domínio em que o CXL se destaca.

Situação atual e perspetivas futuras para a CXL

A CXL passou da fase de laboratório para a implementação real. No que diz respeito ao hardware, os processadores Xeon Scalable de 4.ª geração da Intel e os processadores EPYC de 4.ª geração da AMD suportam nativamente o CXL 1.1 ou 2.0. Os principais fornecedores de servidores, como a Dell, a HPE, a Inspur e a Supermicro, oferecem opções de memória CXL nas suas linhas de gama alta. A Samsung e a Micron produzem agora em massa módulos de memória CXL com capacidades que variam entre 128 GB e 512 GB, alguns com suporte para hot-plug. No que diz respeito ao software, o kernel Linux suporta o CXL nativamente desde a versão 5.18, e os principais sistemas operativos de nuvem estão a melhorar gradualmente o pooling de memória CXL.

Olhando para o futuro, a CXL está a evoluir em duas vertentes principais. A primeira é a atualização dos protocolos. O CXL 2.0 introduziu o pooling de memória e o suporte a switches, já em fase de testes. O CXL 3.0 aumenta a largura de banda para 64 GB/s e adiciona comutação multinível, com previsão de difusão após 2026. O CXL 4.0, baseado no PCIe 7.0, está previsto para duplicar novamente a largura de banda. A segunda vertente é a evolução da implementação. A curto prazo, o CXL funciona como uma memória de “segundo nível”, complementando a DDR local. A médio prazo, o pooling de memória tornar-se-á padrão em grandes centros de dados, tornando a memória dinamicamente alocável, tal como a computação e o armazenamento. A longo prazo, o CXL e a DDR irão provavelmente coexistir: a DDR para cargas de trabalho centrais sensíveis à latência e o CXL para memória de expansão partilhável de grande capacidade.

A tecnologia CXL surgiu como resposta a uma questão que há muito tempo preocupa a indústria informática: por que razão a memória não pode ser expandida e partilhada de forma flexível, tal como o armazenamento? A tecnologia CXL, através de um elegante desenho de protocolo, desenvolve capacidades essenciais, como a coerência de cache e o agrupamento de memória, sobre a infraestrutura PCIe existente. Do hardware ao software, da expansão de uma única máquina à partilha de recursos em todo o centro de dados, a CXL está a mudar gradualmente a forma como pensamos sobre a memória. É claro que esta tecnologia ainda se encontra numa fase inicial; a maturidade do protocolo, a completude do ecossistema e a redução de custos levarão tempo. Mas o que é certo é que, à medida que os modelos de IA continuam a crescer e os tamanhos dos dados continuam a ultrapassar os limites físicos, a CXL — que liberta a memória de slots fixos — tornar-se-á uma peça cada vez mais essencial da infraestrutura no mundo da computação de alto desempenho.

Deslocar para o topo

Contacte-nos

Preencha o formulário abaixo e entraremos em contacto em breve.

Formulário de contacto Produto