Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Thomas Ta - Implémentation sur FPGA d'un turbo codeur-décodeur

SCEE Team
November 20, 2003

Thomas Ta - Implémentation sur FPGA d'un turbo codeur-décodeur

SCEE Team

November 20, 2003
Tweet

More Decks by SCEE Team

Other Decks in Research

Transcript

  1. 08 décembre 2003 1 MITSUBISHI Electric ITE Thomas Quang Khoi

    TA Équipe ETSN, Supélec, campus de Rennes Mitsubishi Electric ITE-TCL, Rennes 08 décembre 2003 2 MITSUBISHI Electric ITE Plan de la présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives.
  2. 08 décembre 2003 3 MITSUBISHI Electric ITE Codes produits ¾

    Introduits en 1954 par P. Elias, -Deux codes en bloc linéaires : C1 (n 1 , k 1 , d 1 ) et C2 (n 2 , k 2 , d 2 ), -Code produit C (n, k, d) = C1 ⊗ C2 , n = n 1 × n 2 , k = k 1 × k 2 , d = d 1 × d 2 , ¾ Construction relativement simple. ¾ Puissants codes correcteurs d’erreurs construits à partir de plusieurs codes en blocs linéaires de faibles pouvoirs de correction, 08 décembre 2003 4 MITSUBISHI Electric ITE Construction des codes produits [I] [M]: k 2 × n 1 C1 n 1 redondance sur les lignes n 2 [M] [C]: n 2 × n 1 C2 redondance sur la redondance redondance sur les colonnes k 1 k 2 matrice [I] des éléments binaires d’information
  3. 08 décembre 2003 5 MITSUBISHI Electric ITE Plan de la

    présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives. 08 décembre 2003 6 MITSUBISHI Electric ITE Décodage itératif des codes produits [R] [R (1)] Décodage des colonnes [R (2)] [R(p – 1)] Décodage des colonnes Décodage des lignes Décodage des lignes 1ère demi-itération 1ère itération pème demi-itération [R(p)] 2ème demi-itération Mémorisation des données Traitement de données
  4. 08 décembre 2003 7 MITSUBISHI Electric ITE Décodage itératif des

    codes produits Décodage à entrée pondérée Décodage à entrée pondérée ¾ Décodage à entrée pondérée exploite mieux les informations reçues (par rapport au décodage binaire), [R(p – 1)] Décodage des colonnes [R(p)] Décodage des lignes Le décodage itératif à entrée et à sortie pondérées permet d’avoir de meilleures performances grâce l’information extrinsèque calculée à chaque demi-itération. bonnes performances. Décodage à sortie pondérée (calcul de l’information extrinsèque) Décodage à sortie pondérée (calcul de l’information extrinsèque) 08 décembre 2003 8 MITSUBISHI Electric ITE Décodage itératif des codes produits Algorithme Chase-Pyndiah ou turbo code en blocs : ¾ Inventé en 1994 par R. Pyndiah à l’ENST Bretagne, ¾ Performances proches de la limite théorique de Shannon, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : algorithme de Pyndiah Calculer l’information extrinsèque.
  5. 08 décembre 2003 9 MITSUBISHI Electric ITE Plan de la

    présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives. 08 décembre 2003 10 MITSUBISHI Electric ITE Décodage à entrée pondérée ¾ Décodage est optimal s’il cherche le mot de code selon le critère du maximum de vraisemblance a posteriori : le mot de code à distance euclidienne minimale, 2k comparaisons de distances euclidiennes, Complexité élevée pour k > 10. k : dimension du code. ¾ Décodage de Chase : le mot de code à distance euclidienne minimale, séquences de test maximum. Complexité raisonnable pour d < 10.   2 C d n d : distance minimale du code.
  6. 08 décembre 2003 11 MITSUBISHI Electric ITE Décodage de Chase

    Algorithme de Chase se limite à une boule B (Y0 , d – 1) : P ≥ Pr [X ∈ B (Y0 , d – 1)] = ∑ − − = − 1 0 1 ) 1 ( C d i n i i n p p X : mot de code émis, Y0 : vecteur binaire obtenu par seuillage du mot reçu, p : probabilité d’erreur binaire sur le canal de transmission. Lorsque p < 10–2 ⇒ P est assez grande. 08 décembre 2003 12 MITSUBISHI Electric ITE Décodage de Chase R Y0 Y1 Y2 - À partir de R, on génère le mot binaire Y0 , t C0 t C2 t C1 - Les séquences de test Yi sont obtenues par inversion d’un ou plusieurs bits de Y0 dont les positions correspondent aux symboles les moins fiables de R - Décodage algébrique de Y0 et des séquences de test Yi donne les mots de code Ci . - Parmi C0 et les Ci , on sélectionne deux mots de code à distance euclidienne minimale de R : d – 1 B D Cc le mot décidé D et le concurrent Cc.
  7. 08 décembre 2003 13 MITSUBISHI Electric ITE Plan de la

    présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives. 08 décembre 2003 14 MITSUBISHI Electric ITE Décodage à sortie pondérée j j d c j r d w − − = ) M (M Md : métrique du mot D, Mc : métrique du concurrent, d j : jème élément binaire de décision β : constante positive, - Sinon : - Si le concurrent est trouvé : j j j r d w − = β ¾ Calcul de l’information extrinsèque w j : ¾ Calcul de fiabilité r’ j de d j : j j j r w r + = '
  8. 08 décembre 2003 15 MITSUBISHI Electric ITE Décodage itératif Décodage

    à entrée et sortie pondérées [W(p – 1)] Ligne de retard [R] [D(p)] [D] : matrice des mots décidés [W(p)] [W] : matrice des informations extrinsèques [R’(p)] [R’] : matrice des données pondérées β(p) β : constante positive [R] α(p – 1) α : cœfficient de confiance À la pème demi-itération 08 décembre 2003 16 MITSUBISHI Electric ITE Plan de la présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives.
  9. 08 décembre 2003 17 MITSUBISHI Electric ITE L’implémentation du turbo

    décodeur des codes produits Objectif : atteindre le haut débit (> 25 Mbit/s) tout en ayant : ¾ faible complexité. ¾ bonnes performances en terme de TEB, 08 décembre 2003 18 MITSUBISHI Electric ITE Plan de la présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives.
  10. 08 décembre 2003 19 MITSUBISHI Electric ITE Nombre d’itérations de

    décodage ¾ Plus le nombre d’itérations est élevé : 4 itérations de décodage est donc un bon compromis performances/complexité. - meilleures sont les performances, - plus la complexité est grande. ¾ Lorsque NbI ≥ 5, gain de codage est peu important. 08 décembre 2003 20 MITSUBISHI Electric ITE Optimisation de divers paramètres ¾ 4 itérations de décodage, ¾ 4 bits de quantification, ¾ 3 composantes les moins fiables, ¾ 8 séquences de test, ¾ 1 seul concurrent. Bon compromis entre les performances (en terme TEB) et la complexité du turbo décodeur est obtenu pour :
  11. 08 décembre 2003 21 MITSUBISHI Electric ITE [W(p)] Architecture du

    décodeur élémentaire Décodage à entrée et à sortie pondérées β(p) [R’(p)] [D(p)] [W(p – 1)] Ligne de retard [R] [R] α(p – 1) 4 5 5 écrêtage Décodage itératif nécessite de sauvegarder [W(p)] : Taille de mémoire de sauvegarde (n × n × 5) bits Mémoire [W(p)] 5 5 Mémoire [R’(p)] 08 décembre 2003 22 MITSUBISHI Electric ITE Architecture du décodeur élémentaire α(p) 4 [R] [W(p)] 5 Décodage à entrée et à sortie pondérées β(p) [R’(p – 1)] [D(p)] Ligne de retard [R] 4 4 4 écrêtage Mémoire [R’(p)] 4 ¾ Taille de mémoire est moins importante : (n × n × 4) bits, ¾ L’écrêtage est retardé. ¾ Principe de décodage reste le même,
  12. 08 décembre 2003 23 MITSUBISHI Electric ITE Plan de la

    présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives. 08 décembre 2003 24 MITSUBISHI Electric ITE Architecture générale du turbo décodeur Plusieurs structures peuvent être utilisées pour implémenter le turbo décodeur : - Structure pipeline, - Structure itérative : ¾ Structure itérative à traitement par symbole, ¾ Structure itérative à traitement par bloc.
  13. 08 décembre 2003 25 MITSUBISHI Electric ITE Structure de pipeline

    à traitement par symboles - Adaptée au traitement à haut débit et souple à implémenter, Décodeur élémentaire Retard R [D] [R’] Décodeur élémentaire Retard [D] [R’] [D] [R’] - Encombrement dépendant du nombre d’itérations, - Latence dépendante du nombre d’itérations : 2×NbI × (n² + 2n) symboles* NbI : nombre d’itérations de décodage utilisé, * On suppose qu’un symbole est traité pendant une période d’horloge. Latence : la durée entre la réception et l’émission d’un symbole, 08 décembre 2003 26 MITSUBISHI Electric ITE Structure itérative RAM [R] RAM [R’] RAM [D] Décodeur élémentaire ¾ Un seul module de décodage pour plusieurs itérations L’encombrement réduit (d’un facteur de 4 pour 4 itérations de décodage par rapport à la structure pipeline), L’encombrement indépendant du nombre d’itération, La latence limitée à 2n² symboles quelque soit le nombre d’itérations.
  14. 08 décembre 2003 27 MITSUBISHI Electric ITE Structure itérative à

    traitement par symbole ¾ Faible encombrement et simple à implémenter, ¾ Temps de traitement d’un symbole : rs s t NbI t × × = 2 débit des données divisé par un facteur égal au nombre de demi-itérations utilisé. t s = temps de calcul d’un symbole, t rs : temps de remplissage d’un symbole, NbI : nombre d’itérations de décodage. 08 décembre 2003 28 MITSUBISHI Electric ITE Structure itérative à traitement par bloc Débit plus élevé car 2×NbI < n. ¾ Encombrement plus élevé, mais reste indépendant du nombre d’itérations. ¾ Requiert une mémoire spécifique : capables d’être lue et écrite par bloc aussi bien en ligne qu’en colonne en une seule période d’horloge. ¾ Temps de traitement d’un vecteur : rs v t NbI n t × × = 2 n : longueur du vecteur.
  15. 08 décembre 2003 29 MITSUBISHI Electric ITE Comparaison des trois

    structures Structure pipeline Structure itérative par symbole Structure itérative par bloc Complexité Débit Mémoire + + – + rs t d 1 = d NbI × × 2 1 d NbI n × × 2 Simple Simple Complexe Structure itérative à traitement par bloc offre un bon compromis performances/complexité. Latence ) 2 ( 2 2 n n NbI + 2 2n 2 2n Latence : la durée entre la réception et l’émission d’un symbole. 08 décembre 2003 30 MITSUBISHI Electric ITE Comparaison des trois structures Structure pipeline Structure itérative par symbole Structure itérative par bloc Complexité Débit 12.000 EL (144.000 portes) 1.500 EL (18000 portes) 12.000 > ? > 1.500 - Codes produits BCH(32,26,4)² ⇒ n = 32, - 4 itérations de décodage (8 demi-itérations). 1 Mbit/s d = 8 Mbit/s 32 Mbit/s Latence 1 ms 0,25 ms 0,25 ms EL : éléments logiques (unité d’encombrement d’ALTERA), Latence : la durée entre la réception et l’émission d ’un symbole.
  16. 08 décembre 2003 31 MITSUBISHI Electric ITE Plan de la

    présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives. 08 décembre 2003 32 MITSUBISHI Electric ITE Architecture des mémoires Créer des mémoires à l ’aide des RAM : ¾ Mise en œuvre simplifiée, ¾ Économique en consommation électrique, ¾ Possibilité de lire et d’écrire les données symbole par symbole ou vecteur par vecteur (en ligne ou en colonne), ¾ Possibilité de lire et d’écrire des données de différentes adresses en même temps (RAM double port), ¾ Possibilité de configuration en 2048×1 bits ou 1024×2 bits … ou 128×16 bits (ALTERA APEX 20K).
  17. 08 décembre 2003 33 MITSUBISHI Electric ITE Architecture des mémoires

    Conception classique à partir d’une RAM double port configurée en 4 mots de 4 bits. Exemple de mémoire de capacité 4×4 bits Entrée A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 4 4 Sortie 2 1 2 1 Adresse d’écriture Adresse de lecture Autorisation d’écriture Autorisation de lecture Écriture et lecture d’un vecteur en ligne en une période d’horloge, Écriture et lecture d’un vecteur en colonne en 4 périodes d’horloge. 08 décembre 2003 34 MITSUBISHI Electric ITE RAM 4 RAM 3 RAM 2 RAM 1 Architecture des mémoires Conception à partir de 4 RAM double port configurée en 4 mots de 1 bit. A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 Entrée 4 4 Sortie 2 4 2 4 Adresse d’écriture Adresse de lecture Autorisation d’écriture Autorisation de lecture Écriture et lecture d’un vecteur en ligne en une période d’horloge, Écriture et lecture d’un vecteur en colonne en 1 période d’horloge est impossible car les données en colonne se trouvent dans les mêmes plans mémoire.
  18. 08 décembre 2003 35 MITSUBISHI Electric ITE Architecture des mémoires

    Conception à partir de 4 RAM double port configurée en 4 mots de 1 bit. Entrée 4 4 Sortie Décalage 4 Décalage inverse Les symboles d’un même vecteur (ligne ou colonne) doivent être mis sur des différents plans mémoire. C3 C4 C1 C2 B4 B1 B2 B3 D2 D3 D4 D1 A1 A2 A3 A4 Lecture/écriture de la 2ème colonne Lecture/écriture de la 1ère colonne 08 décembre 2003 36 MITSUBISHI Electric ITE Implémentation du turbo décodeur des codes produits BCH(32,26,4)² [R] Calcul des syndromes Sélection des composantes les moins fiables Calcul des métriques Sélection de D et de Cc Calcul de R’ [D] [R’] Complexité Débit 9576 EL (≈115.000 portes) 12 Mbit/s EL : éléments logiques. Décodage de Chase
  19. 08 décembre 2003 37 MITSUBISHI Electric ITE Sélection d’une composante

    la moins fiable C/S Couche 1 Couche 2 Couche 5 Composante la moins fiable Max min C/S Max min C/S Max min C/S Max min C/S Max min C/S Max min C/S Max min C/S Max min C/S Max min C/S Max min 31 composantes d’un vecteur de données C/S : comparaison/sélection 08 décembre 2003 38 MITSUBISHI Electric ITE 1ère CLMF 2ème CLMF L’information doit traverser 3 × 5 = 15 couches de « comparaison/sélection », 31 30 Temps de propagation est long (≈ 80 ns), Le débit est limité à 12 Mbit/s. CLMF : composante la moins fiable. 29 Sélection de 3 composantes les moins fiables 3ème CLMF
  20. 08 décembre 2003 39 MITSUBISHI Electric ITE Plan de la

    présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives. 08 décembre 2003 40 MITSUBISHI Electric ITE 2ème CLMF Solution : pipeliner la sélection des composantes les moins fiables, 1ère CLMF 31 3ème CLMF Augmentation de la cadence de traitement (période d’horloge = 20 ns), Augmentation du débit (50 Mbit/s), CLMF : composante la moins fiable. Réduction du temps de propagation 30 Registres Horloge 29 30 Registres Horloge Augmentation de complexité (ajout des registres).
  21. 08 décembre 2003 41 MITSUBISHI Electric ITE A Solution :

    utilisation de la structure itérative. 1ère CLMF 31 30 Réduction de la complexité sans augmenter le temps de propagation CLMF : composante la moins fiable. Réduction de complexité Registres Horloge 2ème CLMF 3ème CLMF 29 30 Registres Horloge 08 décembre 2003 42 MITSUBISHI Electric ITE Implémentation du turbo décodeur des codes produits BCH(32,26,4)² [R] Calcul des syndromes Sélection des composantes les moins fiables Calcul des métriques Sélection de D et de Cc Calcul de R’ [D] [R’] Décodage de Chase Augmentation du débit à 50 Mbit/s, Diminution de complexité plus de la moitié.
  22. 08 décembre 2003 43 MITSUBISHI Electric ITE Encombrement et performances

    Débit maximal (Mbit/s) Nombre de bascules Décodeur 12 Décodeur optimisé 50 4251 (≈ 51.000 portes) Composant APEX 20K (Altera) Complexité (éléments logiques) 539 1980 9576 (≈115.000 portes) Codeur 64 74 140 (≈1700 portes) 08 décembre 2003 44 MITSUBISHI Electric ITE Plan de la présentation 1- Codes produits, 2- Décodage itératif des codes produits : turbo codes en blocs, ¾ Décodage à entrée pondérée : décodage de Chase, ¾ Décodage à sortie pondérée : calcul de l’information extrinsèque. 3- Implémentation du turbo décodeur des codes produits : ¾ Étude et optimisation de divers paramètres, ¾ Architectures du décodeur, ¾ Architecture des mémoires. 4- Optimisation du turbo décodeur, 5- Conclusions et perspectives.
  23. 08 décembre 2003 45 MITSUBISHI Electric ITE Conclusions ¾ Structure

    itérative à traitement par bloc : - Débit : 50 Mbit/s, - Encombrement : 4500 EL, - Paramétrable : nombre d’itérations. ¾ Mémoire à accès multiples : - lecture et écriture des vecteurs aussi bien en ligne qu’en colonne en une seule période d’horloge, 08 décembre 2003 46 MITSUBISHI Electric ITE Perspectives - Mise en parallèle de plusieurs module de turbo décodeur ¾ FPGA = reprogrammable, ¾ Mémoires à accès multiples : Adapter le même turbo codeur/décodeur aux différentes dimensions de codes. Augmentation de débit (de 100 Mbit/s à 1,6 Gbit/s). ¾ Reconfiguration dynamique,