Cédric MARCHAND (PhD student NXP-Lab-STICC)
Jean-Baptiste DORE (NXP)
Emmanuel BOUTILLON (Lab-STICC)
Conflict Resolution for Pipelined
Layered LDPC Decoders
2/06/08
July 22, 2015
Layered LDPC decoder \ 2
Genetic algorithm
Scheduling of the layers
Memory conflicts
Outline
Outline
Matrix split process
Layered decoder
July 22, 2015
Layered LDPC decoder \ 3
Structured code example
1010
0111H
100000100000
010000010000
001000001000
000100100100
000010010010
000001001001
1H
001000100000
100000010000
010000001000
000010100100
000001010010
000100001001
2H
10
2003
IzIz
zIIIH
Code Structure
July 22, 2015
Layered LDPC decoder \ 5
Semi-parallel architecture principle
001000100000
100000010000
010000001000
000010100100
000001010010
000100001001
2 H
Read VN Write VN
CNP
CNP
CNP
VGi
-1 3 messages
Architecture
CG1 CG2
VG1 VG2 VG3 VG4
July 22, 2015
Layered LDPC decoder \ 6
Pipelining the semi parallel architecture
1 2 3
2 4 1 2 3
2 4
+ Throughput - Memory conflicts
…
…
Non pipelined
Read VG
Write VGnew
First layer Second layer
… 1 2 3
1 2 3 2 4 - 1 2 3
1 2 3 2 4 -
… Pipelined
Read VG
Write VGnew
July 22, 2015
Layered LDPC decoder \ 7
Genetic algorithm
Scheduling of the layers
Memory conflicts
Outline
Outline
Matrix split process
Layered decoder
July 22, 2015
Layered LDPC decoder \ 8
Memory conflict on pipelined layered decoder
1 2 3
1 2 3 2 4 - 1 2 3
1 2 3 2 4 -
…
Read VN
Write VNnew
Not update yet from previous layer
Overwrite the result of the previous layer
Solution: avoid VN in common with previous layer
VGCG1={VG1,VG2,VG3}
1ll CGCG VGVG
VGCG2={VG2,VG4}
July 22, 2015
Layered LDPC decoder \ 9
Memory conflict on pipelined layered decoder
1 2 3
1 2 3 2 4 - 1 2 3
1 2 3 2 4 - … Read VN
Write VNnew
Not update yet from previous layer l-2
Overwrite the result of the previous layer l-2
Solution: avoid VN in common with previous layer
2ll CGCG VGVG
…
July 22, 2015
Layered LDPC decoder \ 10
Genetic algorithm
Scheduling of the layers
Memory conflicts
Outline
Outline
Matrix split process
Layered decoder
July 22, 2015
Layered LDPC decoder \ 11
Matrix of a short frame, 2/3 rate
Simplified matrix (prototype matrix)
July 22, 2015
Layered LDPC decoder \ 12
Scheduling in linear order
Total cost of one iteration: 58 x 360
CG1CG2: Cost=4 CG2CG3: Cost=2
Schedule of one iteration: 1234 …
Cost between two layer i and j: ji cgcg vgvgjic ,
July 22, 2015
Layered LDPC decoder \ 13
Reordering the Schedule
Solution: find a schedule that
minimize the cost
Minimum cost of
one iteration = 20
Schedule: 1111410 …
CG1CG11: Cost=0
CG11CG14: Cost=1 CG10CG14: Cost=0
July 22, 2015
Layered LDPC decoder \ 14
The cost matrix
CG1CG11:
Cost=0
CG10CG14:
Cost=0
The cost matrix
shows the cost
between CGi and
CGj
July 22, 2015
Layered LDPC decoder \ 15
Cost function of one iteration
0,min itc
)1(,)1(),(1
1
mgciiccmgi
i
it
Problem: find the least costly schedule going thought all the CGs
Cost of one iteration:
Problem:
Solution: split the matrix to relax constraints
mg,,2,1 where is one permutation in the set
where is the group of all the possible permutations of
July 22, 2015
Layered LDPC decoder \ 16
Genetic algorithm
Scheduling of the layers
Memory conflicts
Outline
Outline
Matrix split process
Layered decoder
July 22, 2015
Layered LDPC decoder \ 17
Matrix split example
Before split After split
SiPSii s /)mod()(
- The parallelism is reduced by a factor of S
0 1 2 5 8 11 0 1 2 8 11 5 0
3
6
9
July 22, 2015
Layered LDPC decoder \ 18
Split factor two on a rate 2/3 short frame
The split matrix representation is two time sparser the average risk of
memory conflict is divided by two
July 22, 2015
Layered LDPC decoder \ 19
New cost matrix short frame, rate 2/3, Split 2
split
Before split
After a split 2
,0min,min itsplitsplitsplitit cc
After a split 4
July 22, 2015
Layered LDPC decoder \ 20
Use of graph theory
Rate 1/4 long frame, split 4: more than 101000 solutions (540 cities)
Problem known in graph theory as ”The Traveling
Salesman Problem (TSP):
What is the least cost trip to visit each city once
and return to the starting city?
+ Genetic algorithm
Use of heuristic :
Compute all permutation and select the best is NP hard in O(mg!)
- Nearest neighbor algorithm (not optimal solution)
July 22, 2015
Layered LDPC decoder \ 21
Genetic algorithm
Scheduling of the layers
Memory conflicts
Outline
Outline
Matrix split process
Layered decoder
July 22, 2015
Layered LDPC decoder \ 22
Parents
Children
Generic GA
Select the best
Initial population
Crossover
Mutate
Best first 250 permutations
Ne
w p
op
ula
tio
n
Implementation of the GA
N=1000 random permutations
EXIT
1 4 3 2 5 6
1 3 6 4 5 2
Select 2 parents 1 3 6 4 5 6
1 4 3 2 5 2 Crossover
swap
1 3 2 4 5 6
1 4 3 6 5 2 Repair
1 3 2 4 5 6 1 3 2 4 5 6 4 3 2 1 5 6
1 3 2 4 5 6 1 3 2 4 5 6 1 3 2 4 5 6 Swap segment
Swap two VGs
July 22, 2015
Layered LDPC decoder \ 23
Using GA to solve TSP
+ Find solution for great number of cities (up to 1215)
+ Find solution for cost at n+2 by changing cost function
+ Give schedule in 15 minutes
July 22, 2015
Layered LDPC decoder \ 24
Results for long frames
+ Serial scheduling of the SO + Idle time Layer Scheduling
July 22, 2015
Layered LDPC decoder \ 25
Serial scheduling and idle time principle
x x x x 5 x x x 5 x
x x x x 5 x x x 5 x
5 x x x x x x 5 x x
5 x x x x x x 5 x x
x x 5 x x I I
5 x x x x x x 5 x x I I
Serial scheduling of the SO
Add Idle time
Read
Read
Read
Write
Write
Write
5 x x x x
OK
Delay before 5 is updated
July 22, 2015
Layered LDPC decoder \ 26
Conclusion
Scheduling the layer allows to reduce the number conflict
The splitting process upgrade the solutions by scheduling
The splitting process reduce the parallelism and thus the throughput
The problem of finding the schedule is equivalent to the well known
TSP
The TSP problem is solved using Genetic Algorithm heuristic
Genetic algorithm find schedule that solve memories conflicts at
layer+1 and layer+2