Les codes de vérification de la parité de faible densité (LDPC) sont une classe de codes de correction linéaire des erreurs qui sont devenus la pierre angulaire de la communication numérique moderne. Leur performance quasi-shannon-limit et leur parallélisme inhérent les rendent idéaux pour des applications à haut débit telles que 5G NR, Wi-Fi 6 (802.11ax), les communications par satellite et les futurs systèmes 6G. Cependant, les algorithmes itératifs de décodage requis pour les codes LDPC – le plus souvent la propagation de croyance (somme-produit) ou ses variantes de somme min-complexité réduite – exigent un débit de calcul et une bande passante de mémoire considérables.

Comprendre les algorithmes de décodage de la LDPC

Avant de plonger dans la conception matérielle, il est crucial de comprendre l'épine dorsale mathématique du décodage LDPC. Le processus de décodage fonctionne généralement sur un graphique Tanner composé de nœuds variables (représentant des bits de code) et de cochez des nœuds (représentant des équations de parité). Les messages sont transmis itérativement entre ces nœuds, mettant à jour les estimations de fiabilité (rapports de probabilité de log ou LLR) jusqu'à ce qu'un mot de code valide soit trouvé ou qu'un nombre maximal d'itération soit atteint.

Propagation de la croyance (produit de base) Algorithme

L'algorithme sum-product est le décodeur itératif optimal en supposant qu'aucun cycle n'est prévu dans le graphique Tanner. Il calcule exactement les probabilités postérieures en échangeant des informations extrinsèques. Pour chaque itération, les noeuds variables envoient des LLR aux nœuds de contrôle connectés, qui mettent à jour en utilisant une règle de tangage hyperbolique (la règle « tangh »).

Algorithme min-sum (et écalé)

Pour réduire les frais généraux, l'algorithme de la somme minimale remplace les opérations de la somme minimale par des opérations de recherche minimale plus simples. Cette simplification introduit une surestimation des LLR, une performance de décodage dégradante. Les implémentations pratiques utilisent des facteurs de graduation ou des corrections offset (par exemple, la somme minimale normalisée, la somme minimale compensée) pour compenser.

Décodage en couches

Le décodage en couches réorganise le graphique en couches (basé sur la matrice de contrôle de parité). Au sein de chaque couche, les nœuds variables sont mis à jour de façon séquentielle, ce qui permet une convergence plus rapide (généralement la moitié des itérations). Du point de vue matériel, le décodage en couches réduit la largeur de bande requise et permet de réduire la zone de décodeur car la mémoire variable-noeud peut être mise à jour en place.

Pourquoi les accélérateurs de matériel sont essentiels

Le passage du logiciel à l'accélération matérielle est soumis à plusieurs contraintes fondamentales. D'abord, le débit : les débits de pointe de 5G dépassent 20 Gbps, exigeant des décodeurs pour traiter des milliards de bits par seconde à travers des centaines d'itérations. Un décodeur logiciel sur un processeur haut de gamme peut atteindre seulement quelques centaines de Mbps avec une consommation d'énergie élevée. Deuxièmement, l'efficacité énergétique : les dispositifs IoT alimentés par batterie fonctionnent dans la gamme de sous-milliwatts; un accélérateur dédié peut obtenir des ordres de grandeur meilleure énergie par bits décodés par rapport à un noyau à usage général.

Considérations de conception pour les appareils de prochaine génération

La conception d'un accélérateur de décodeur LDPC à haute performance implique l'équilibre de nombreux paramètres interdépendants. Les considérations suivantes sont particulièrement critiques pour la 5G et au-delà.

Débit et latence

Par exemple, un décodeur ciblant 10 Gbps avec une longueur de bloc de 10 000 bits et 10 itérations doit traiter chaque itération en 10 μs. Cela impose des limites serrées sur le chemin critique. Les modèles haut de gamme utilisent souvent des datapaths entièrement non laminés avec plusieurs itérations dans un cycle d'horloge unique. La latence – le temps de réception du dernier bit de code à la sortie des bits décodés – doit également être minimisé, souvent par des critères de terminaison précoce (par exemple, arrêter lorsque tous les contrôles de parité sont satisfaits).

Efficacité énergétique

La puissance est dominée par les accès à la mémoire (à la fois SRAM sur puce pour les messages variables et les messages de contrôle des nœuds) et la logique de calcul. Les techniques pour réduire l'énergie comprennent : minimiser la largeur de la mémoire (en utilisant la quantification et la saturation), réduire l'activité de commutation par l'intermédiaire de la gatation des données, utiliser la gatation d'horloge pour les unités de ralenti, et utiliser les circuits sous-seuils pour le fonctionnement à basse vitesse.

Écailabilité et flexibilité

5G NR définit plusieurs longueurs de blocs de code (jusqu'à 26 112 bits pour le graphique de base 2) et de nombreux taux de code (de 1/5 à 8/9). Un accélérateur matériel doit être reconfigurable pour supporter tous les graphiques de base et les tailles de levage sans frais matériels massifs. Ceci est généralement obtenu par la conception d'un ensemble modulaire d'unités de traitement qui peuvent être connectées à différentes banques de mémoire et qui prennent en charge des facteurs de décalage/calage programmables et des modèles de levage.

Architecture de la mémoire

La mémoire est souvent le goulot d'étranglement. Les deux principales catégories de mémoire sont la mémoire de nœud variable (logement LLR) et la mémoire de nœud de contrôle (logiciel de stockage intermédiaire des messages). Pour le décodage en couches, le décodeur lit les messages de nœud de contrôle d'un calque, met à jour les nœuds variables et les écritures en retour.

Fin rapide et convergence

Pour éviter les itérations inutiles, les accélérateurs matériels mettent en place une terminaison précoce. La méthode la plus simple vérifie si toutes les équations de contrôle de parité sont satisfaites après chaque itération. Des techniques plus avancées surveillent les changements de signe des LLR ou calculent un syndrome approximatif.

Architectures matérielles pour les décoders LDPC

Le choix de l'architecture est un compromis entre le débit, la zone, la puissance et la flexibilité. Les principales catégories sont entièrement parallèles, partiellement parallèles, série et hybrides.

Architectures entièrement parallèles

Dans un décodeur entièrement parallèle, chaque nœud variable et nœud de vérification est instancié comme matériel dédié (par exemple, un nœud de vérification par ligne de la matrice de contrôle de parité). Tous les nœuds calculent simultanément, ce qui conduit au débit le plus élevé possible. Cette architecture est idéale pour les courtes longueurs de blocs (par exemple, 400 bits) et les applications à grande vitesse. Cependant, pour les longueurs de blocs 5G supérieures à 10 000 bits, le nombre d'unités de traitement devient prohibitif (par exemple, jusqu'à 26 000 nœuds variables et 13 000 nœuds de vérification pour le graphique de base 1).

Architectures partiellement parallèles

Les décodeurs partiellement parallèles mettent en œuvre moins d'éléments de traitement que le nombre total de nœuds. Les opérations de nœuds sont multiplexes dans le temps : chaque élément de traitement gère plusieurs nœuds variables ou vérifie sur plusieurs cycles d'horloges. Cela réduit considérablement le coût matériel tout en maintenant un débit raisonnable. La décision clé de conception est le nombre d'éléments de traitement (le facteur parallélisme) et la façon dont ils sont programmés sur le graphique Tanner.

Architectures sérielles

Les décodeurs sérienels utilisent un ou quelques éléments de traitement, traitant un nœud de contrôle et un noeud variable par cycle. Les décodeurs série ont la plus petite surface et la puissance la plus faible (appropriée pour l'IoT), mais le débit est limité à des dizaines de Mbps. Ils sont souvent utilisés pour des taux de code près de 1/2 sur les petites longueurs de blocs.

Architectures hybrides et en couches

Les conceptions modernes combinent souvent un traitement partiellement parallèle avec une programmation en couches. Le décodeur traite la matrice de contrôle par parité ligne par ligne (couche par couche) en utilisant une banque de processeurs de nœuds de contrôle et une banque de processeurs de nœuds variables. Dans chaque ligne, plusieurs nœuds de contrôle sont traités en parallèle, et des mises à jour de nœuds variables se produisent de façon progressive. L'approche en couches réduit la largeur de bande de mémoire requise de moitié et converge plus rapidement, ce qui en fait le choix de facto pour les décodeurs 5G NR LDPC.

Technologies de mise en œuvre : FPGA vs ASIC vs SIC structurée

La plateforme cible influence fortement les choix de conception. Chaque technologie offre des compromis distincts en termes de coûts, de puissance, de performances et de temps à mettre en marché.

Accélérateurs FPGA

Les cartes de porte programmables sur le terrain (FPGA) sont attrayantes pour le prototypage, la production à faible volume et les applications nécessitant des décodeurs à mise à niveau sur le terrain (p. ex., charge utile par satellite). Les cartes de données modernes Xilinx (maintenant AMD) et les cartes de données Intel Agilex FPGA contiennent des dizaines de milliers de blocs LUT et DSP, ainsi que des émetteurs-récepteurs à grande vitesse. Les décodeurs LDPC sur FPGA peuvent atteindre jusqu'à 10 Gbps pour des longueurs de blocs modérées. L'avantage principal est la flexibilité : les concepteurs peuvent modifier la matrice de contrôle de parité ou l'algorithme sur le terrain.

Accélérateurs ASIC

Les circuits intégrés spécifiques à l'application (ASIC) sont les plus performants en termes de performance et d'efficacité énergétique. Ils peuvent être entièrement personnalisés pour le code exact et l'algorithme, sans frais généraux pour la reprogrammabilité. Un décodeur 5G LDPC ASIC dans un processus de 7nm peut atteindre 20 Gbps tout en consommant moins de 1 pJ/bit, ce qui le rend adapté aux processeurs de bande de base dans les téléphones et les stations de base.

ASIC et eFPGA structurés

Les ASI (plateforme ASIC) et les FPGA embarqués (eFPGA) sont structurés entre les FPGA et les ASIC. Ils offrent un tissu logique prédéfini avec routage configurable, permettant une certaine programmabilité à un niveau de NRE et une puissance inférieure à un FPGA. Pour les décodeurs LDPC, un bloc eFPGA peut être utilisé pour les pièces flexibles (p. ex., les réseaux de permutation pour le levage de code) tandis que les unités calculées à forte intensité de calcul sont câblées.

Techniques d'optimisation de conception

Les techniques d'optimisation avancées sont essentielles pour répondre aux spécifications exigeantes de 6G et au-delà.

Pipeline et optimisation

La canalisation divise la boucle itérative du décodeur en plusieurs étapes (par exemple, mémoire de lecture, calcul des nœuds de contrôle, écriture, calcul des nœuds variables). Chaque étape fonctionne à la même fréquence d'horloge, augmentant le débit en chevauchant les opérations de différentes itérations. Il peut être nécessaire de procéder à un réglage pour équilibrer les retards et respecter la fermeture du timing.

Partitionnement de mémoire et double-port

Pour faciliter l'accès parallèle par plusieurs unités de traitement, la mémoire de nœud variable est divisée en plusieurs banques. La structure de la matrice de contrôle de parité détermine quelles banques sont accessibles simultanément. Certains modèles utilisent des SRAM à double port pour permettre la lecture et l'écriture de la même banque dans le même cycle d'horloge.

Quantification et optimisation de la longueur des mots

L'arithmétique à point fixe avec une quantification adéquate est essentielle pour l'efficacité matérielle. La largeur typique des bits varie de 4 à 8 bits par LLR. Les simulations approfondies doivent vérifier que le bruit de quantification ne provoque pas de perte de performance. L'utilisation de la saturation et de l'arrondi peut réduire la largeur des bits plus loin.

Compensation pour l'augmentation et la compensation

Pour les décodeurs à somme min, des facteurs de graduation ou des valeurs offset peuvent être appliqués pour vérifier les sorties des nœuds. Ces facteurs peuvent être fixés pour toutes les itérations (simpler) ou peritération adaptée (meilleure performance).

Fin précoce de la grossesse avec contrôle du syndrome

Si tous les bits du syndrome sont nuls après une itération, le décodage s'arrête. Cela nécessite un arbre de réduction (par exemple, OR-tree) pour combiner toutes les sorties de contrôle des nœuds. Les décodeurs puissants peuvent désactiver l'arbre jusqu'à la dernière étape d'une itération pour éviter les basculements inutiles.

Étude de cas: Accélérateur de décoder 5G NR LDPC

La norme 5G définit deux graphiques de base : BG1 (longueur des blocs de ciblage jusqu'à 26 112 bits) et BG2 (jusqu'à 84 000 bits mais gain de codage plus élevé). Le décodeur doit supporter toutes les tailles de levage Z de 2 à 384. Une conception ASIC de pointe pourrait utiliser une architecture en parallèle avec 32 processeurs de nœuds de contrôle. La mémoire de nœud variable est divisée en 384 banques (une par taille de levage) de SRAM à double port. Les messages de nœud de contrôle sont stockés dans des fichiers de registre. Le décodeur fonctionne à 800 MHz et réalise 20 Gbps avec une moyenne de 10 itérations. La consommation de puissance à 0,8 V est d'environ 150 mW. La surface de silicium résultante est d'environ 2,5 mm2 dans un processus de 10 nm. Les optimisations clés comprennent des modèles de permutation précalculés pour chaque taille de levage (entreposée en petite ROM), une échelle dynamique basée sur le nombre d'itération et une grille d'horloge globale.

Orientations futures

Les appareils de communication de la prochaine génération poussent déjà la conception du décodeur LDPC vers de nouveaux horizons. Trois tendances importantes se distinguent.

Le décodage amélioré par l'apprentissage automatique

Les décodeurs neuraux peuvent apprendre à corriger des déficiences spécifiques des canaux (p. ex., la diminution, l'interférence) sans modèles explicites. Cependant, la mise en place matérielle des décodeurs neuraux reste difficile en raison des activations non linéaires et de la charge de calcul élevée. Une direction hybride prometteuse consiste à utiliser un petit réseau neural pour ajuster dynamiquement les facteurs d'échelle ou les seuils de terminaison précoce, qui peuvent être réalisés avec un minimum de frais généraux matériels (quelques unités multi-accumulation).

Codes de CLD non-Binaires

Les codes LDPC non binaires fonctionnent sur des champs d'ordre Galois supérieurs à 2 (p. ex. GF(64)). Ils offrent une correction d'erreur supérieure pour les longueurs courtes de blocs, mais au coût d'un traitement de nœuds de contrôle beaucoup plus complexe (qui nécessite des transformations de Fourier ou des tables de recherche massives).

Accélérateurs reconfigurables et auto-adaptatifs

Les futurs appareils peuvent devoir supporter plusieurs normes (5G, Wi-Fi 7, satellite, Li-Fi) simultanément ou en succession rapide. Cela nécessite des accélérateurs reconfigurables qui peuvent basculer dynamiquement entre différents graphiques de base, tailles de levage et algorithmes (p. ex., de la somme min-sum-product) avec un minimum de frais de configuration.

Intégration avec le décryptage et la démodulation des canaux

La prochaine étape consiste à coupler étroitement le décodage LDPC avec la démodulation (démappeur de décision en douceur) et d'autres blocs de codec de canal. Le décodage en démodulation en combinaison peut améliorer les performances en échangeant plus fréquemment des informations douces.

Conclusion

Les accélérateurs matériels pour le décodage LDPC sont une technologie essentielle pour atteindre le débit élevé, la faible latence et l'efficacité énergétique exigés par les appareils de communication de nouvelle génération. Les concepteurs doivent soigneusement équilibrer le parallélisme, l'architecture de mémoire, la flexibilité et la quantisation pour répondre aux diverses exigences de la 5G et au-delà. Bien que les architectures entièrement parallèles offrent une vitesse maximale pour les codes courts, les décodeurs partiellement parallèles sont devenus la norme pour les 5G NR de grande longueur. La plate-forme d'implémentation – que ce soit FPGA, ASIC ou ASIC structurée – doit être choisie en fonction des besoins en volume, en puissance et en upgradabilité.

Ressources extérieures

  • 5G NR LDPC Code Spécifications:[ 3GPP TS 38 212, V17.0.0, "Multiplexing and channel coding", décembre 2021. Disponible à 3GPP.
  • Architectures de décoder de LDPC précoces: M. Fossurier, «Codes de vérification de la parité de faible densité de la quasi-cyclique des matrices de permutation du cirque», IEEE Trans. Inf. Theory, vol. 50, no 8, 2004. Disponible à IEEE Xplore.
  • Mise en œuvre des décodeurs mineurs : J. Chen et al., « A 1.82-Gb/s LDPC Decoder for 5G NR in 16nm FinFET », Journal IEEE des circuits à État solide, vol. 56, no 8, 2021. Disponible à IEEE Xplore.
  • Décodage en couches pour 5G: S. M. Kim et al., «A 20-Gb/s Decoder LDPC pour 5G NR en 10nm FinFET», IEEE Solid-State Circuits Letters, vol. 4, 2021. Disponible à IEEE Xplore.
  • Décoders LDPC non-Binaires: D. Declercq et al., «Conception et mise en oeuvre d'un décoder LDPC non-Binary pour DVB-S2X», Opérations IEEE sur circuits et systèmes I, vol. 68, no 3, 2021. Disponible à IEEE Xplore.