Professional Documents
Culture Documents
Architecture générique
de décodage de code LDPC
0 1 2 3 4 5 6
F. GUILLOUD
E. BOUTILLON
guilloud@enst-bretagne.fr
emmanuel.boutillon@univ-ubs.fr
1/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Importance du codage...
Emetteur
Compétition LDPC-Turbo-Code...
2/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
3/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
PLAN
n Code de parité
o Principe des codes LDPC
p Architecture de décodeur LDPC
p En guise de conclusion
4/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Parity check
b0 b1 b2 bits
Parity check (3,2,1) :
CP
5/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
wj N(0,σ)
6/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
8/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
9/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Note: itération
-1,1 1,2 2
Tj
b0 b1 b2 b0 b1 b2
Ij -0,3 1 1,9 Ej -0,8 0,2 0,1
Et le système diverge...
10/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
PLAN
n Code de parité
o Principe des codes LDPC
p Architecture de décodeur LDPC
p En guise de conclusion
11/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
LDPC Code
0 1 2 3 4 5 6 Bit bi
Branches
Parity checks
(PC)
(b0, b1, … , b6) mot de code <=> toutes les PC sont respectées
12/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Représentation algébrique :
X = (x0, x1, …, x6)T mot de code si H.X = 0
0111100 0 1 2 3 4 5 6
P=nombre de PC
1011010
H=
1101001
Matrice de parité
N=nombre de bits
14/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
15/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Algorithme à propagation de
croyance
O Step1: calcul du LLR des bits reçus (information
intrinsèque)
O Step2: Message bit->parité + traitement parité
O Step3: Message parité->bit + traitement bit
O Step4: répéter 2 et 3 jusqu'au décodage correct ou
"max iteration".
16/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Décodage itératif
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Décodage itératif
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Décodage itératif
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
in in
Bit Node Bit Node t
t
bn bn
a0= t-e0
e0 e1 e2 e3 a1 a2 a3
t = in + ∑ em ai = in + ∑ei = t − ai
m
m,m≠i
20/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
b0 b1 b2 b3 b4 b0 b1 b2 b3 b4
a1 a2 a3 a4 e0 e1 e2 e3 e4
a0
ei = ⊕a = a ⊕ a ... ⊕ a
j ≠i
i 1 2 i −1 ⊕ ai +1... ⊕ adc
21/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
XOR
22/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Φ( x) = − ln(tanh(x / 2)) +
- - - -
e1 e2 e3 e4
23/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
5 ek = Φ −1 (
∑
i≠ j
Φ(ak ))
4
-ln(tanh(x/2)
3
e=0,3
2
a1=0.5
1 a2=1,2
a3=1,9
0 e a1 a2 a
0 1 23 3 4 5
x
On obtient : e = min(a1,a2,a3) - offset
24/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Exercice
b0 b1 b2 b3 b4 b0 b1 b2 b3 b4
-6 8 3 -2 4 2 -2 -2 3 -2
?
am,n = t n − em,n
• Algorithme BP
O Propagation de croyance
= in +
∑ em',n
m '∈M ( n ) \ m
(Belief Propagation)
O Initialisation :
¾ In = 2yn/σ²
¾ Extrinsèque branche : Em,n=0
¾ Fiabilités : Tm,n=0
Itérations : tous les
∑
O
−1
messages sont traités em,n =Φ Φ ( am,n ' )
n '∈N ( m ) \ n
Traitement des variables Propagation V → P
26/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Performances DVB-S2
64k
50 itérations
LDPC + BCH
27/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
0 1 2 3 4 5
0 1 2 3 4 5
Flooding
28/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Sequencement horizontal
(Mansour)
0 1 2 3 4 5
011110
101101
110101
Matrice LDPC
29/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Sequencement horizontal
(Mansour)
0 1 2 3 4 5
011110
101101
110101
Matrice LDPC
30/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Sequencement horizontal
(Mansour)
0 1 2 3 4 5
011110
101101
110101
Matrice LDPC
31/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Sequencement horizontal
(Mansour)
0 1 2 3 4 5
011110
101101 2 3
110101
Matrice LDPC
Sequencement vertical
(Fossorier)
011110
101101 0 1 2 3 4 5
110101
Matrice LDPC
33/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Sequencement vertical
(Fossorier)
011110
101101 0 1 2 3 4 5
110101
Matrice LDPC
34/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Sequencement vertical
(Fossorier)
011110
101101 0 1 2 3 4 5
110101
Matrice LDPC
35/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Sequencement vertical
(Fossorier)
011110
101101 0 1 2 3 4 5
110101
Matrice LDPC
36/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Problème séquencement H et V
37/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
PLAN
n Code de parité
o Principe des codes LDPC
p Architecture de décodeur LDPC
p En guise de conclusion
38/54 E. Boutillon
http://lester.univ-ubs.fr/
(3)A rchitecture :introduction 7 Avril 2005
Architecture parallèle
O Exemple
¾ Blanksby, Howland, « A 690-mW O Avantages
1-Gb/s 1024-b Rate-1/2 Low- ¾ performance: 1Gb/s 64
Density Parity-Check Code
Decoder » (IEEE Trans. on
iterations
Solid-State Circuits, 2002.) ¾ Power dissipation : 690mW
¾ PER=2 10-4 @ 2,5 dB
O Drawback
¾ Complex routing =>add oc
CAD tool
¾ Fixed code
¾ Size : 52.5mm2 , 0.16µ
Techno
39/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Architecture série-parallèle
Puissance de calcul Pc : nombre de branche à traiter/ cycle d’horloge.
EN it
Pc = [branches/variable]× D [variable/cycle]
N f clk R
107
= 3 × 20 × 8
= 12[branches/cycle]
10 × 0,5
40/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Degré de parallélisme
1 … P.dc’/dv’
O P processeurs de
d = dv ' d = dv ' Processeurs
parités … de variables
(α cycles) dv ' dv ' = dv β dv '
O Processeurs de … …
variables
Entrelacement Entrelacement Permutations
(β cycles) direct inverse spatiales
O Parallèle :
… …
P=M, α=1, β=1
dc ' dc ' = dc α dc '
O Série : … Processeurs
P=1, α=dc, β=dv d = dc ' d = dc ' de parités
Contrôle …
1 P
41/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Opérateur Σ ou x
a) Mode compact
43/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Opérateur Σ ou x
b) Mode distribué mise à jours différée
ancien nouveau
t (i ) = e0(i ) + e1(i ) + ... + ed(i )
- t
itération i
sk(i ) ek(i +1)
Réseau de permutation
44/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Opérateur Σ ou x
b) Mode distribué mise à jours immédiate
nouveau
t (i +1) = e0(i +1) + ek(i−+11) + ek(i ) ... + ed(i )
t (i +1)
ek(i ) ek(i +1)
t
Itération i
sk(i ) ek(i +1)
Réseau de permutation
45/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Modèle générique
Paramètres :
O Processeurs de nœuds:
¾ Architecture
¾ Position du réseau
Toutes les
d’interconnexion
(1,2,3,4)
combinaisons
O Parallélisme : P, α, β sont possibles
O Contrôle des
processeurs
46/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Distribué
Compacte Mise à jour Mise à jour
différée immédiate
Inondation séquencement
Inondation
Compacte parités horizontal
P
A
R Inondation
Mise à jour
variables
Distribué
I
différée
T
Contrôle
E
S Séquencement des branches
Mise à jour
vertical
immédiate
47/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
• Etat de l’art
VARIABLES
Distribué
Compacte Mise à jour Mise à jour
différée immédiate
Blanksby Boutillon,
Compacte (parallèle) Chen, Zhang,
Mansour
P
A
R
Mise à jour
Distribué
I Nouveau
différée
T
E -
S
Mise à jour Nouveau
immédiate (algo Fossorier)
48/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
I N + 2M + E
différée
T
E -
S
Mise à jour
N+M+E
immédiate
49/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
PLAN
n Code de parité
o Principe des codes LDPC
p Architecture de décodeur LDPC
p En guise de conclusion
50/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Conclusion
51/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
Travaux en cours:
Digital fountain
52/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
LDPC vs Turbo-Code
redondance bits d’informations redondance
Une autre vision d'un turbo-code codeur 1 codeur 2
Entrelaceur
LDPC et Turbo-code sont aux deux extrémités du spectre des graphes de Tanner
53/54 E. Boutillon
http://lester.univ-ubs.fr/
7 Avril 2005
54/54 E. Boutillon
http://lester.univ-ubs.fr/
(3)A rchitecture :introduction 7 Avril 2005
Exemple construction
matrice/architecture conjoint
M=mP
10011000
01101100
Matrice prototype : Hi = 10100110 N = nP
01010011
001000 000000
000100 000000
Πi,j(Ip ) = 0 00010
000001
P 000000
000000
100000 000000
010000 000000
P
Très peu d'information pour mémoriser la matrice
55/54 E. Boutillon
http://lester.univ-ubs.fr/
(3)A rchitecture :introduction 7 Avril 2005
Exemple construction
matrice/architecture conjoint
M=mP
10011000
01101100
Matrice prototype : Hi = 10100110 N = nP
01010011
P
Mémoires
t=1..E
m
add