Introducción a códigos de baja densidad de paridad-consultados

Los códigos de paridad de baja densidad (LDPC) son uno de los códigos de corrección de errores más potentes en las comunicaciones digitales modernas. Primero introducido por Robert Gallager en su tesis de doctor de 1960, estos códigos fueron olvidados en gran medida durante décadas antes de ser redescubiertos a mediados de los años 90. Su capacidad para acercarse al límite de Shannon con complejidad decodificación práctica les ha hecho la piedra angular de innumerables sistemas, desde las entradas de la televisión por satélite y el flashG

En entornos de alto rendimiento, la decodificación basada en software no puede seguir el ritmo. A medida que las tasas de datos suben hacia 100 Gbps y más allá en redes de transporte óptico, las demandas de los decodificadores LDPC se vuelven extremas. Esto ha empujado a la industria hacia aceleradores de hardware dedicados que explotan el paralelismo a cada nivel. Los avances descritos en este artículo representan el estado del arte en arquitecturas de de decodificación paralela, ofreciendo tanto velocidad como eficiencia para aplicaciones reales.

Tecnología relacionada: Para una visión general de los fundamentos del código de la LDPC, vea el Wikipedia artículo sobre códigos de la LDPC.

Antecedentes teóricos: Decodificación de Algoritmos

Antes de examinar arquitecturas de hardware, es esencial entender los algoritmos que sustentan la decodificación de LDPC. El algoritmo más utilizado es la propagación de creencias (BP) decodificador, también conocido como el algoritmo de subproducto. Funciona en un gráfico bipartito, el gráfico Tanner, compuesto por nodos variables (representando bits de codeword) y nodos de verificación (representando restricciones de paridad).

El coste computacional de la PB es sustancial debido a las funciones hiperbólicas tangentes requeridas para cálculos de probabilidad. Una aproximación práctica es el algoritmo de la suma de min, que reemplaza la función compleja con las operaciones de min y de signos. Mientras esto incurre en una ligera pérdida de rendimiento, la simplificación es crítica para la implementación de hardware de alta velocidad. Los investigadores han desarrollado muchas variantes - rendimiento de menos corregido, normalizado de la suma, y error auto-

La naturaleza iterativa de estos algoritmos significa que la decodificación de la latencia es directamente proporcional al número de iteraciones y el tiempo por iteración. Las arquitecturas paralelas tienen como objetivo reducir el tiempo por iteración realizando múltiples actualizaciones simultáneamente, o superando las iteraciones mediante tuberías.

Arquitecturas tradicionales de decodificación y sus limitaciones

Los decodificadores de hardware de hardware temprano LDPC utilizaron un enfoque totalmente secuencial: una unidad de procesamiento única actualiza cada nodo variable a su vez, cada nodo de comprobación a su vez, repitiendo hasta la convergencia. Esta arquitectura serie requiere los recursos menos hardware —sólo una unidad de computación— pero sufre de alta latencia y baja rendimiento. Por ejemplo, un decodificador que maneja una longitud de código de 10.000 bits puede requerir decenas de micros por cada sistema de multisectación,

Otra limitación es el ancho de banda de memoria. En las arquitecturas seriales, todos los mensajes intermedios deben almacenarse en memoria en chip y accederse repetidamente. Esto crea un cuello de botella, ya que los tiempos de acceso a la memoria se convierten en el factor dominante en la duración de la iteración. Además, el calendario de actualización secuencial no explota el hecho de que muchas actualizaciones de nodos variables y de verificación son independientes y podrían ser computadas simultáneamente.

La ineficiencia de los métodos de serie motivó el desarrollo de decodificadores parciales y totalmente paralelos. El desafío es aumentar el paralelismo sin causar contención de recursos o violar el calendario de paso de mensajes requerido para la convergencia.

Arquitecturas de decodificación paralelas: Estado del arte

Los decodificadores LDPC de hardware modernos emplean una variedad de técnicas paralelas, a menudo en combinación. Los enfoques más destacados son la decodificación estratificada, el procesamiento oleoducto y las arquitecturas totalmente paralelas. Cada una ofrece diferentes ventajas entre la capacidad de rendimiento, área, potencia y corrección de errores.

Decodificación de capas

La decodificación de capas reorganiza la matriz de verificación de paridad en capas —normalmente filas o grupos de filas— que corresponden a subconjuntos no superpuestos de ecuaciones de verificación. Dentro de cada capa, todas las actualizaciones de nodos variables que tocan esa capa se pueden procesar simultáneamente, siempre que no compartan el mismo nodo variable. Esto requiere un diseño de matriz cuidadoso para asegurar que los pesos de columna sean lo suficientemente bajos para evitar conflictos.

El programa de capas acelera la convergencia dramáticamente. Mientras que un calendario de inundación estándar actualiza todos los nodos variables entonces todos los nodos de verificación por iteración, el programa de capas actualiza tanto los nodos variable como los nodos de verificación dentro de cada capa en un solo paso. Esto reduce efectivamente el número de iteraciones requeridas por un factor de dos o más. Por ejemplo, un decodificador estrato puede converger en 5-10 iteraciones donde un resultado de de de decoder tardía.

Los decodificadores de capas también ofrecen beneficios intermedios de rendimiento. Dado que sólo los mensajes de una capa deben almacenarse en un momento, los requisitos de memoria son más pequeños que en diseños totalmente paralelos, haciendo que la decodificación de capas sea atractiva para la implementación de FPGA donde la RAM de bloque es limitada. Los principales fabricantes de FPGA proporcionan núcleos IP que implementan decodificadores LDPC de capa compatibles con Wi-Fi, 5G y estándares de satélite.

Ejemplo:] Un decodificador de capas para un código (64800, 64800-17280) usado en DVB-S2 puede lograr rendimientos superiores a 1 Gbps en las FPGAs Xilinx modernas, como se documenta en este papel de IEEE sobre decodificadores de alto rendimiento LDPC [FLT3]

Proceso de tuberías

La pipelinación es una técnica de diseño digital clásica que rompe una computación en múltiples etapas, cada una completando en un ciclo de reloj, con registros entre etapas que sostienen resultados intermedios. En los decodificadores LDPC, la tubería se puede aplicar en varios niveles: dentro de una sola iteración (pielización de la penetración) o a través de múltiples iteraciones (pielización de la inter-iteración).

La tubería de penetración divide el cálculo de mensajes para una variable o nodo de verificación en pasos aritméticos más pequeños, como la min-finificación, producto-de-signos y normalización, permitiendo que el hardware funcione con una frecuencia de reloj más alta. Sin embargo, esto aumenta la latencia por iteración, que puede compensar el aumento de rendimiento si no se gestiona cuidadosamente.

La tubería de inter-iteración es más agresiva: superpone el procesamiento de la iteración i con iteración i+1. Esto requiere descodificar los recuerdos de mensaje para que se pueda escribir mientras se lee otro. La profundidad de los conductos puede ser varias iteraciones, y los resultados de atención especial deben ser tomados como peligro

Las arquitecturas pipelined se utilizan comúnmente en implementaciones ASIC donde el decodificador es parte de un sistema-en-Chip más grande (SoC). Por ejemplo, el decodificador LDPC en un procesador de banda base 5G suele emplear un oleoducto de 4 etapas para mantener un rendimiento de 20 Gbps mientras que encaja dentro de un sobre de potencia estricto.

Arquitecturas de paralelo completo

El último en paralelismo es un decodificador totalmente paralelo que asigna una unidad de procesamiento dedicada a cada nodo variable y cada nodo de comprobación en el gráfico Tanner. Todos los nodos pueden actualizar sus mensajes en un solo ciclo de reloj, utilizando un calendario de inundación. Esto elimina la superposición secuencial de enfoques estratados o con tuberías, alcanzando la máxima eficiencia posible.

El precio es una enorme complejidad de hardware. Un decodificador totalmente paralelo para un código con 10.000 nodos variables y 5.000 nodos de verificación requeriría 15.000 elementos de procesamiento, además de una red de enrutamiento para conectarlos según la matriz de verificación de paridad. El cableado domina el área de chips. Históricamente, sólo los códigos LDPC muy cortos (con unos pocos cientos de bits) se podrían implementar completamente en paralelo en un solo chip.

Sin embargo, los avances en la tecnología ASIC — los nodos de proceso de rociado, la integración 3D densa y las redes de ancho de banda alto en chip— han hecho decodificadores totalmente paralelos más fáciles. Los prototipos recientes de investigación demuestran decodificadores totalmente paralelos para códigos de longitud 2000–4000 bits que pueden operar a 1–10 Gbps ideales. Estos todavía no son adecuados para códigos muy largos (por ejemplo, 64kear).

Estudio de caso:] Un decodificador LDPC totalmente paralelo para el estándar IEEE 802.11ad (60 GHz WiGig) se demostró en un chip CMOS de 28 nm, logrando 10 Gbps con una potencia de 350 mW, como se describe en este periódico IEEE Journal of Solid-State Circuits .

Otros enfoques notables

Se merecen mencionar varias técnicas adicionales de paralización:

  • Decodificación estocástica: Representa mensajes como secuencias de bits aleatorios, permitiendo un hardware extremadamente sencillo (un solo flip-flop por mensaje) a un costo de convergencia más lenta. El paralismo es naturalmente alto porque cada nodo opera de forma independiente. Se han explorado decodificadores estocásticos para aplicaciones de muy baja potencia, como dispositivos médicos implantados.
  • ]Decodificadores QCasi-cíclicos (QC) LDPC: La mayoría de los estándares modernos utilizan códigos LDPC cuasi-cíclicos, donde la matriz de control de paridad está compuesta de submatrices de identidad circulares cambiadas. Esta estructura permite al decodificador utilizar los conmutadores de barril o redes de permutación para la ruta de mensajes entre elementos de procesamiento, simplificando mucho la interconextracción total.
  • Arquitecturas paralelas parciales: Un compromiso entre diseños estratos y totalmente paralelos, decodificadores paralelos parciales asignan un número fijo de unidades de procesamiento para procesar múltiples nodos durante varios ciclos de reloj. Mediante operaciones de programación cuidadosa, pueden lograr rendimientos cercanos a totalmente paralelos mientras utilizan significativamente menos área.

Hardware Platforms for LDPC Decoder Implementation

La elección de plataforma –FPGA, ASIC o GPU – influye enormemente en el paralelismo y diseño de los intercambios.

Decodificadores FPGA-Based

Los FPGA ofrecen reconfigurabilidad, haciendo que sean populares para prototipado y para sistemas que deben soportar múltiples estándares. Los FPGA modernos contienen miles de rodajas DSP y RAM de bloque abundante, decodificadores con capas con paralelismo moderado. Los decodificadores totalmente paralelos son raramente implementados en FPGAs debido a la congestión de enrutamiento, pero diseños parciales paralelos y capas pueden lograr un código multi-tiempo definido.

Decodificadores basados en ASIC

Los circuitos integrados específicos para aplicaciones (ASIC) son los caballos de trabajo de los chips de comunicaciones de mercado masivo. Pueden integrar cientos de elementos de procesamiento con jerarquías de memoria personalizadas y routing dedicado. Decodificadores ASIC para 5G NR y Wi-Fi 6 normalmente superan 10 Gbps utilizando arquitecturas estratadas o con tuberías. La eficiencia de la energía es una ventaja clave: un decodificador ASIC bien optimizado puede lograr bajo 1 deJ.

Decodificadores basados en GPU

Las unidades de procesamiento de gráficos (GPU) no se utilizan normalmente en los receptores de comunicación de producción, pero son invaluables para la investigación y decodificación offline. Una GPU moderna puede simular miles de actualizaciones de nodos en paralelo utilizando su arquitectura SIMT (instrucción de sonido, multi-pan). Los investigadores utilizan decodificadores basados en GPU para probar nuevos algoritmos y diseños de código sin comprometerse a hardware.

Desafíos en el diseño de decodificador paralelo

A pesar de los impresionantes progresos, quedan varios obstáculos antes de que los decodificadores paralelos de la LDPC puedan cumplir todos los requisitos de aplicación.

  • Consumo de potencia: Las unidades de procesamiento paralelo consumen una potencia dinámica significativa. Para los dispositivos propulsados por baterías, el presupuesto de energía puede restringir el grado de paralelismo. El bloqueo de gatitos, escalado de tensión y cálculo aproximado son áreas de investigación activas para reducir la potencia sin grandes penalizaciones de rendimiento.
  • Complejidad de hardware: La enrutamiento y la memoria requeridas para el alto paralelismo aumentan el área de chip y el esfuerzo de diseño. Para decodificadores totalmente paralelos, la interconexión puede ocupar más del 70% de la zona de la muerte. Se están explorando arquitecturas jerárquicas y de red en chip para gestionar la complejidad.
  • Planta de emergencia: Algunas arquitecturas paralelas introducen efectos de cuantificación o algoritmos simplificados que causan un piso de error: una región donde la tasa de error de bits deja de mejorar como aumento de la relación de señal a ruido. Mitigar los niveles de error a menudo requiere un ajuste de algoritmo cuidadoso o pasos de post-procesamiento que agregan latencia.
  • Scalability:] A medida que crecen las longitudes de código LDPC (a 64k o 128k bits), mantener la concurrencia sin conflictos de memoria se hace más difícil. Decodificadores a capas requieren que cada capa se tramite sin conflictos; diseño de matriz y algoritmos de capa son un campo de investigación activo.

Future Directions

La próxima generación de decodificadores de la LDPC probablemente combinará el paralelismo con nuevos paradigmas de computación.

  • ]Aprendizaje de la máquina – Descodificación de la máquina: Las redes neuronales pueden ser entrenadas para aproximar el algoritmo de propagación de creencias, potencialmente reduciendo la cantidad de iteración manteniendo el rendimiento. Por ejemplo, los decodificadores de propagación de creencias neuronales usan pesos y compensaciones aprendidos, y pueden ser implementados en hardware con una sobrecarga mínima.
  • Arquitecturas reconfigurables y adaptables: Los decodificadores futuros pueden ajustar dinámicamente su grado de paralelismo basado en la calidad del canal y los requisitos de rendimiento. Por ejemplo, un decodificador podría cambiar entre modos estrados y totalmente paralelos en tiempo real. Esto requiere una estructura de comunicación flexible y una lógica de control de tiempo de ejecución.
  • ]Integración con corrección de error cuántico: Como cálculo cuántico madura, la corrección de errores para los qubits exigirá decodificadores extremadamente rápidos, en el orden de nanosegundos.Decodificadores LDPC paralelos inspirados en los diseños clásicos se están evaluando para los códigos de superficie y otros códigos de corrección de errores cuánticos, aunque las limitaciones son bastante diferentes.
  • Integración 3D e interconexión óptica: La memoria de bloqueo muere directamente en la parte superior de los defectos lógicos puede aliviar los cuellos de botella de ancho de memoria. Interconexión óptica en chip podría sustituir las rutas de cable globales en decodificadores totalmente paralelos, reduciendo la la latencia y la potencia.

En se pueden encontrar encuestas más exhaustivas este documento de Encuestas y Tutoriales de Comunicación de IEEE sobre arquitecturas decodificadoras de LDPC y este artículo de Encuestas de Computación de ACM sobre decodificadores de LDPC eficientes en energía].

Conclusión

Las arquitecturas de decodificación paralelas han transformado códigos LDPC desde una curiosidad teórica en un habilitador práctico de comunicación moderna de alta velocidad. Diseños atrasados, con tuberías y totalmente paralelos cada dirección diferentes puntos en el espacio de diseño de rendimiento, área y potencia. Avances continuos en tecnología semiconductor y optimización de algoritmo prometen incluso decodificadores más rápidos y eficientes en los años venideros.