Os códigos de Paridade de Baixa Densidade (LDPC) são uma classe de códigos de correção de erros lineares que se tornaram uma pedra angular da comunicação digital moderna. Seu desempenho quase-limite de Shannon e paralelismo inerente torná-los ideais para aplicações de alta produtividade, como 5G NR, Wi-Fi 6 (802.11ax), comunicações por satélite e futuros sistemas 6G. No entanto, os algoritmos de decodificação iterativos necessários para códigos LDPC – mais comumente propagação de crenças (soma produto) ou suas variantes de somagem de mínimos de complexidade reduzida – exigem uma transferência computacional substancial e largura de banda de memória. Decodificadores baseados em software que funcionam em processadores de uso geral ou processadores de sinais digitais (DSPs) muitas vezes não conseguem atender às rigorosas restrições de latência, potência e área de dispositivos de comunicação de próxima geração. Este artigo explora o papel essencial dos aceleradores de hardware para decodificação LDPC, os desvios de arquitetura e a evolução do design para equipamentos de próxima geração.

Compreendendo os algoritmos de decodificação LDPC

Antes de mergulhar no design de hardware, é crucial entender a espinha dorsal matemática da decodificação do LDPC. O processo de decodificação normalmente opera em um gráfico de Tanner, consistindo em nós variáveis (representando bits de palavra de código) e nós de verificação (representando equações de paridade). As mensagens são passadas iterativamente entre esses nós, atualizando estimativas de confiabilidade (relações de probabilidade de log ou LLRs) até que uma palavra de código válida seja encontrada ou uma contagem de iterações máximas seja alcançada.

Algoritmo da Propagação da Crença (Produto Sum)

O algoritmo de sum- product é o decodificador iterativo ideal, assumindo que não há ciclos no gráfico de Tanner. Ele calcula probabilidades posteriores exatas trocando informações extrínsecas. Para cada iteração, nós variáveis enviam LLRs para nós de verificação conectados, que se atualizam usando uma regra tangente hiperbólica (a regra "tanh"). Enquanto ótimo, a tangente hiperbólica e sua arctangente hiperbólica requerem multiplicações de alta largura de bits e tabelas de busca, aumentando a complexidade do hardware.

Algoritmo de Mín-Sum (e Min-Sum em Escala)

Para reduzir a sobrecarga de hardware, o algoritmo de soma mínima substitui as operações tanh com operações de pesquisa mínima mais simples. Esta simplificação introduz uma superestimação das LLRs, degradando o desempenho de decodificação. As implementações práticas usam fatores de escala ou correções de offset (por exemplo, soma mínima normalizada, soma mínima offset) para compensar. A família de soma mínima é de longe a mais comum em aceleradores de hardware devido à sua baixa complexidade e fácil pipelining.

Decodificação em Camadas

A descodificação em camadas reorganiza o gráfico em camadas (com base na matriz de verificação de paridade). Dentro de cada camada, os nós variáveis são atualizados sequencialmente, permitindo uma convergência mais rápida (tipicamente metade das iterações). De uma perspectiva de hardware, a descodificação em camadas reduz a largura de banda de memória necessária e permite uma área de decodificação menor, porque a memória de nó variável pode ser atualizada no local. A maioria dos descodificadores LDPC modernos usam arquiteturas em camadas.

Por que os aceleradores de hardware são essenciais

A passagem do software para a aceleração do hardware é impulsionada por várias restrições fundamentais. Primeiro, a taxa de pico de dados 5G excede 20 Gbps, exigindo que os decodificadores processem bilhões de bits por segundo através de centenas de iterações. Um decodificador de software em uma CPU de alto nível pode alcançar apenas algumas centenas de Mbps com alto consumo de energia. Segundo, a eficiência energética: os dispositivos IoT movidos a bateria operam na faixa de sub- miliwatts; um acelerador dedicado pode alcançar ordens de magnitude melhor energia por bit decodificado versus um núcleo de propósito geral. Terceiro, latência determinística: aplicações em tempo real, como veículos para tudo (V2X) ou controle industrial, requerem atraso de de decodificação limitado, que só o hardware pode garantir. Finalmente, a área de silício: um acelerador hardwired ocupa uma fração da área em comparação com múltiplos núcleos de CPU que executam instruções complexas.

Considerações de Design para Dispositivos de Próxima Geração

A concepção de um acelerador de decodificação LDPC de alto desempenho envolve equilibrar muitos parâmetros interdependentes. As considerações a seguir são particularmente críticas para 5G e além.

Produção e Latência

A transferência de alvo dita diretamente o paralelismo, a frequência do relógio e a contagem de iteração. Por exemplo, um decodificador com 10 Gbps com um comprimento de bloco de 10.000 bits e 10 iterações deve processar cada iteração em 10 μs. Isso impõe limites apertados no caminho crítico. Os desenhos de ponta usam frequentemente caminhos de dados totalmente não rolados com múltiplas iterações num único ciclo de relógio. A latência – o tempo desde a recepção do último pedaço de uma palavra de código até à saída dos bits decodificados – também deve ser minimizado, muitas vezes através de critérios de terminação precoce (por exemplo, parando quando todas as verificações de paridade são satisfeitas).

Eficiência energética

O poder é dominado por acessos de memória (tanto no chip SRAM para mensagens variáveis e nodos de verificação) e lógica computacional. As técnicas para reduzir a energia incluem: minimização da amplitude de bits de memória (usando a quantização e saturação), redução da atividade de comutação através de gating de dados, emprego de gating de relógio para unidades ociosas e utilização de circuitos de sublimiar para operação de baixa velocidade. Para dispositivos móveis e IoT, o decodificador deve suportar vários modos de operação para escalar energia com exigências de rendimento.

Escalabilidade e flexibilidade

O 5G NR define vários comprimentos de blocos de código (até 26,112 bits para o gráfico de base do LDPC 2) e muitas taxas de código (de 1/5 a 8/9). Um acelerador de hardware deve ser reconfigurado para suportar todos os gráficos de base e tamanhos de elevação sem sobrecarga de hardware maciça. Isto é normalmente conseguido através do desenho de uma matriz modular de unidades de processamento que podem ser conectadas a diferentes bancos de memória e que suportam fatores programáveis de offset/scaling e padrões de elevação.

Arquitetura de Memória

A memória é frequentemente o gargalo. As duas categorias principais de memória são memória de nó variável (Storage LLR) e memória de nó de verificação (Storage de mensagem intermediária). Para a decodificação em camadas, o decodificador lê as mensagens de nó de verificação de uma camada, atualiza os nós variáveis e escreve de volta. Particionamento eficiente de memória (por exemplo, múltiplos bancos para evitar a contenção) e RAMs de porta dupla são comuns. Algumas arquiteturas usam arquivos de registro para pequenos gráficos de base para reduzir a potência.

Cessação antecipada e convergência

Para evitar iterações desnecessárias, aceleradores de hardware implementam terminação precoce. O método mais simples verifica se todas as equações de verificação de paridade estão satisfeitas após cada iteração. Técnicas mais avançadas monitoram as mudanças de sinais de LLRs ou calculam uma síndrome aproximada. Terminação precoce pode reduzir as iterações médias em 30-50%, melhorando diretamente tanto a potência quanto a energia.

Arquiteturas de hardware para Decodificadores LDPC

A escolha da arquitetura é um trade-off entre a transferência, área, potência e flexibilidade. As principais categorias são totalmente paralelas, parcialmente paralelas, seriais e híbridas.

Arquiteturas Totalmente Paralelas

Num decodificador totalmente paralelo, cada nó variável e nó de verificação é instanciado como hardware dedicado (por exemplo, uma unidade de nó de verificação por linha da matriz de verificação de paridade). Todos os nós calculam simultaneamente, levando ao maior rendimento possível. Esta arquitetura é ideal para comprimentos de bloco curtos (por exemplo, 400 bits) e aplicações de alta velocidade. Contudo, para comprimentos de bloco de 5G superiores a 10.000 bits, o número de unidades de processamento torna- se proibitivamente grande (por exemplo, até 26000 nós variáveis e 13.000 nós de verificação para gráfico base 1). A interconexão também se torna um grande desafio porque o gráfico de Tanner é irregular; rotear as mensagens entre grupos de nós muitas vezes requer interruptores de barras cruzadas complexos que consomem área e potência significativas.

Arquiteturas Parcialmente Paralelas

Os decodificadores parcialmente paralelos implementam menos elementos de processamento do que o número total de nós. As operações dos nós são multiplexadas em tempo: cada elemento de processamento lida com múltiplas variáveis ou verifica os nós ao longo de vários ciclos de relógio. Isto reduz drasticamente o custo do hardware, mantendo um rendimento razoável. A decisão de desenho chave é o número de elementos de processamento (o fator de paralelismo) e como eles são agendados através do gráfico de Tanner. Os decodificadores LDPC mais comerciais usam arquiteturas parcialmente paralelas com um fator de paralelismo entre 8 e 64. Esses desenhos podem atingir vários Gbps em área modesta.

Arquiteturas Seriais

Os decodificadores seriais usam um ou alguns elementos de processamento, processando um nó de verificação e um nó variável por ciclo. Os decodificadores seriais têm a menor área e menor potência (adequado para IoT), mas a taxa de rendimento é limitada a dezenas de Mbps. Eles são frequentemente usados para taxas de código perto de 1/2 em comprimentos de bloco pequenos.

Arquiteturas híbridas e de camadas

Os desenhos modernos combinam frequentemente o processamento parcialmente paralelo com o escalonamento em camadas. O decodificador processa a linha da matriz de verificação de paridade por linha (camada por camada) usando um banco de processadores de nó de verificação e um banco de processadores de nó variáveis. Dentro de cada linha, vários nós de verificação são processados em paralelo, e as atualizações de nó variáveis acontecem de forma incremental. A abordagem em camadas reduz a largura de banda de memória necessária pela metade e converge mais rapidamente, tornando- a a a escolha de facto para decodificadores 5G NR LDPC. Muitos trabalhos publicados usam um padrão "serial- em linha, coluna- paralelo", onde colunas dentro de uma memória de nó variável de partilha de linha.

Tecnologias de Implementação: FPGA vs. ASIC vs. ASIC estruturado

A plataforma alvo influencia fortemente as escolhas de design. Cada tecnologia oferece diferentes trocas de custo, potência, desempenho e tempo-para-mercado.

Aceleradores FPGA

Os Arrays de Portão Programáveis no Campo (FPGAs) são atraentes para prototipagem, produção de baixo volume e aplicações que requerem decodificadores de campo (por exemplo, cargas de satélite). Os RFSoCs modernos (agora AMD) e os FPGAs Intel Agilex contêm dezenas de milhares de LUTs e blocos DSP, bem como transceptores de alta velocidade. Os decodificadores LDPC em FPGA podem alcançar até 10 Gbps para comprimentos de bloco moderados. A principal vantagem é a flexibilidade: os designers podem modificar a matriz ou algoritmo de verificação de paridade no campo. As principais desvantagens são o consumo de energia maior por bits decodificados e área maior em comparação com um ASIC equivalente.

Aceleradores ASIC

Os Circuitos Integrados Específicos de Aplicação (ASICs) são o máximo em desempenho e eficiência energética. Eles podem ser totalmente personalizados para o código e algoritmo exatos, sem sobrecarga para reprogramabilidade. Um decodificador LDPC 5G ASC em um processo de 7nm pode alcançar 20 Gbps enquanto consome menos de 1 pJ/bit, tornando-o adequado para processadores de banda base em telefones e estações base. As desvantagens são altos custos de engenharia não recorrentes (NRE) e ciclos de design longos, tornando-os viáveis apenas para produtos de alto volume. Além disso, ASICs são fixados a um conjunto específico de códigos e padrões; as mudanças futuras exigem um novo chip.

ASIC e eFPGA estruturados

Entre as FPGAs e ASICs encontram-se as ASICs estruturadas (ASICs de plataforma) e as FPGAs incorporadas (eFPGAs). Estas oferecem um tecido lógico pré- definido com roteamento configurável, permitindo uma certa programabilidade em NRE e potência inferior a uma FPGA. Para os decodificadores LDPC, um bloco eFPGA pode ser usado para as partes flexíveis (por exemplo, redes de permutação para levantamento de código) enquanto as unidades aritméticas intensivas em computação são ligadas. Esta abordagem híbrida está a ganhar tração em SoCs de banda base 5G que precisam suportar padrões futuros.

Técnicas de otimização de projeto

Técnicas avançadas de otimização são fundamentais para atender as especificações exigentes de 6G e além.

Pipelining e Retiming

O pipelining divide o loop iterativo do decodificador em vários estágios (por exemplo, memória de leitura, nós de verificação de computação, gravação, nós variáveis de computação). Cada estágio roda na mesma frequência do relógio, aumentando a taxa de transferência por operações sobrepostas de diferentes iterações. Pode ser necessário remarcar para equilibrar atrasos e atender ao fechamento de tempo. Para decodificadores em camadas, o pipelining é mais complexo porque as atualizações variáveis de nó dentro de uma camada dependem das saídas de nó de verificação da mesma camada; o agendamento cuidadoso pode evitar bolhas de pipeline.

Particionamento de Memória e Dual-Port

Para suportar o acesso paralelo por várias unidades de processamento, a memória variável de nó é particionada em vários bancos. A estrutura da matriz de verificação de paridade determina quais bancos são acessados simultaneamente. Alguns desenhos usam SRAMs de porta dupla para permitir ler e escrever o mesmo banco no mesmo ciclo de relógio. Outra técnica é armazenar LLRs de uma forma interleaved que minimiza os conflitos de banco entre camadas.

Quantização e otimização de comprimento de palavra

A aritmética de ponto fixo com a quantificação adequada é essencial para a eficiência do hardware. As larguras de bits típicas variam de 4 a 8 bits por LLR. As simulações extensas devem verificar que o ruído de quantização não causa perda de desempenho. Usando saturação e arredondamento pode reduzir a largura de bits ainda mais. Algumas arquiteturas empregam precisão variável: alta precisão para iterações precoces, baixa precisão mais tarde.

Escala e compensação por desvios

Para os decodificadores baseados em somas mínimas, os fatores de escala ou os valores de offset podem ser aplicados para verificar as saídas de nós. Estes fatores podem ser corrigidos para todas as iterações (simples) ou por iteração adaptada (melhor desempenho). Os esquemas adaptativos requerem lógica de controle adicional, mas podem gerar ganhos de 0,1-0,2 dB no ganho de codificação.

Verificação de Síndrome de Exclusão Precoce

O término precoce mais simples compara o vetor da síndrome com o zero. Se todos os bits da síndrome forem zero após uma iteração, a decodificação para. Isto requer uma árvore de redução (por exemplo, árvore OR) para combinar todas as saídas de nó de verificação. Os decodificadores de conhecimento de energia podem desligar a árvore até o estágio final de uma iteração para evitar o comutador desnecessário.

Estudo de caso: 5G NR LDPC Decodificador Acelerador

Uma implementação típica de decodificação 5G NR LDPC ilustra os trade- offs. O padrão 5G define dois gráficos básicos: BG1 (comprimento do bloco de referência até 26,112 bits) e BG2 (até 84,000 bits mas ganho de codificação mais elevado). O decodificador deve suportar todos os tamanhos de elevação Z de 2 a 384. Um desenho ASIC de última geração poderá usar uma arquitetura parcialmente paralela em camadas com 32 processadores de nó de verificação. A memória de nó variável é particionada em 384 bancos (um por tamanho de elevação) de SRAM de porta dupla. Verificar as mensagens de nó são armazenadas em arquivos de registro. O decodificador roda em 800 MHz e atinge 20 Gbps com média de 10 iterações. O consumo de energia em 0. 8V é aproximadamente 150 mW. A área de silício resultante é ~2,5 mm2 num processo de 10nm. As principais otimizações incluem padrões de permutação pré- computados para cada tamanho de elevação (armazenamento em pequena ROM), escala dinâmica baseada na contagem de iteração e gaating global clock.

Instruções futuras

Dispositivos de comunicação de última geração já estão empurrando o projeto de decodificador LDPC para novos horizontes. Três tendências importantes se destacam.

Decodificação aprimorada pelo aprendizado de máquina

As abordagens baseadas em aprendizagem profunda estão sendo exploradas para substituir algoritmos fixos. Os decodificadores neurais podem aprender a corrigir deficiências específicas de canais (por exemplo, desvanecimento, interferência) sem modelos explícitos. No entanto, a implementação de hardware de descodificadores neurais continua a ser desafiadora devido a ativações não lineares e alta carga computacional. Uma direção híbrida promissora é usar uma pequena rede neural para ajustar dinamicamente os fatores de escala ou limiares de terminação precoce, que podem ser realizados com o mínimo de sobrecarga de hardware (umas poucas unidades multiplicadas).

Códigos LDPC não-binários

Os códigos LDPC não- binários funcionam em campos de ordem Galois superiores a 2 (por exemplo, GF( 64)). Eles oferecem uma correção de erro superior para comprimentos de bloco curtos, mas ao custo de processamento de nó de verificação muito mais complexo (requerendo transformadas de Fourier ou tabelas de procura maciças). Os protótipos recentes da ASIC mostram que os decodificadores não- binários podem ser práticos para aplicações de baixa latência e de curto pacote, como comunicações ultra- confiáveis de baixa latência (URLLC) em 6G.

Aceleradores auto-adequativos e reconfiguráveis

Os dispositivos futuros podem precisar suportar vários padrões (5G, Wi-Fi 7, satélite, Li-Fi) simultaneamente ou em rápida sucessão. Isto requer aceleradores reconfiguráveis que podem alternar dinamicamente entre diferentes gráficos base, tamanhos de elevação e algoritmos (por exemplo, de min-sum a sum-product) com uma sobrecarga mínima de configuração. Arrays reconfiguráveis com grainha grossa (CGRA) estão emergindo como solução, proporcionando um meio-termo entre ASIC e FPGA flexibilidade.

Integração com a Decodificação e Demodulação de Canais

O próximo passo é a decodificação LDPC em conjunto com descodificação (desmaper de decisão suave) e outros blocos de codec de canal. A descodificação conjunta pode melhorar o desempenho trocando informações suaves com mais frequência. Aceleradores de hardware que combinam desmapper e descodificador em um único pipeline reduzirão a latência e a energia.

Conclusão

Aceleradores de hardware para decodificação LDPC são uma tecnologia crítica para alcançar a alta produtividade, baixa latência e eficiência energética exigida pelos dispositivos de comunicação de última geração. Os designers devem equilibrar cuidadosamente o paralelismo, arquitetura de memória, flexibilidade e quantização para atender aos diversos requisitos de 5G e além. Embora arquiteturas totalmente paralelas ofereçam máxima velocidade para códigos curtos, decodificadores parcialmente em camadas paralelas tornaram-se o padrão para o comprimento de 5G NR de grande bloco. A plataforma de implementação – seja FPGA, ASIC ou ASIC estruturada – deve ser escolhida com base nas necessidades de volume, potência e atualização. Olhando para frente, aprendizagem de máquina, códigos não binários, arquiteturas reconfiguráveis e integração mais apertada com a demodulação prometem impulsionar ainda mais o desempenho. As empresas que dominam esses desafios de design irão liderar a próxima onda de comunicação sem fio confiável e de alta velocidade.

Recursos externos

  • 5G NR Código LDPC Especificações: 3GPP TS 38.212, V17.0.0, "Multiplexing and canal coding", Dezembro 2021. Disponível em 3GPP.
  • Arquitecturas de decodificação LDPC: M. Fossorier, "Códigos de verificação de paridade de baixa densidade de Quesi-Ciclic de matrizes de permutação circulares", IEEE Trans. Teoria da Inf., vol. 50, no. 8, 2004. Disponível em IEEE Xplore.
  • Implementação de hardware para decodificadores de Mín-Sum: J. Chen et al., "A 1,82-Gb/s LDPC Decodificador para 5G NR em 16nm FinFET", IEEE Journal of Solid-State Circuits, vol. 56, no. 8, 2021. Disponível em IEEE Xplore.
  • Decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por decodificação por descodificação por descodificação por descodificação por descodificação por descodificação por descodificação por descodificação por descodificação por de estados sólidos, vol. 4, 2021. Disponível em
  • Descodificadores LDPC não-binários: D. Declercq et al., "Design e implementação de um Decodificador LDPC não-binário para DVB-S2X", Transações IEE em Circuitos e Sistemas I, vol. 68, no. 3, 2021. Disponível em IEEE Xplore.