Non-binary LDPC Decoder Architecture
3.4 Check Node Unit (CNU)
3.4.2 Bubble Check Algorithm
In [24], the author proposed a method to reduce the number of elements when searching the largest possibility, and the size of candidate set Sc is smaller than nm. Every clock cycle, the operation of a CES is to find out an element with the largest possibility from the sorter. For this reason, it just needs to ensure that the element with the largest possibility is in the sorter in every clock cycle. Bubble check algorithm [25] uses this property to efficiently reduce the number of elements in Sc at one time. It means that only the element which probably has the largest possibility at that time will be considered, and this is based on the regular distributing property of possibilities in M .
We use an example to describe the basic concept of bubble check algorithm. Assuming that there are already 4 elements in the output vector, and then we want to find next element with the fifth largest possibility. In Figure 3.5, it illustrates all possible distributions of the output symbols and their corresponding candidates which should be considered. Note that white circle represents the element in the output vector, and the black circle stands for the candidate which will be inserted to the sorter. The number in the white circle stands for the order in possibilities of output symbols.
(1) (2) (3) (4) (5)
1 2 3 4 1 3 4
2
1 2 4 3
1 2 3
4 1
2 3 4
Figure 3.5: 5 possible conditions when finding the 5thlargest possibility.
According to the possibilities stored in input vectors are in decreasing order, the larger possibilities are centralized in the upper left of M . Based on the regularity in M , candidates choosing are decided from the right or down side of the output symbols. Because bubble check algorithm only considers the possible candidates with the largest possibility, we do not need to take account of more than one elements in the same row or the same column. Therefore,
the minimum required number of candidates depends on the distributing shape of the output symbols. In the second and forth graphs, when the distributing shape is close to triangular, the number of possible candidates is more. Looking into other graphs, the number of candidates is the least when the distributing shape of the output symbols is rectangular. After considering these five situations, we can infer that the minimum required sorter size with nm5 should be 3.
Therefore, the minimum required sorter size depends on the distributing shape of elements in the output vector, and the worst case is when the distributing shape is triangular. Without considering the symbol repetition problem, the sorter size ns is calculated by supposing there are already (nm− 1) symbols in the output vector and the distributing shape of these symbols is triangular. The relation between nm and ns is described by
(1+ns)ns
2 = (nm− 1) + ns
⇒ ns =
⌈
1+√
1+8(nm−1) 2
⌉ (3.3)
Table 3.1: The relation between nsand nm nm 4 8 16 32 64
ns 3 5 6 9 12
Based on (3.3), the number of nswith different nmare listed in Table 3.1. The process of the CES applying the bubble check algorithm is similar with conventional CES mentioned above, and the main difference is the smaller sorter size nsand the way of choosing the candidate. The procedures are illustrated in Figure 3.6 and the operations are described as follows:
1. Initialization
Insert nssymbols in the first column of M to the sorter.
2. Output
Output the symbol with the largest possibility in the sorter.
3. Check
Check whether the symbol is redundant. If this symbol is already in the output vector, discard this symbol.
I2
Figure 3.6: Procedure of bubble check algorithm in the beginning.
4. Candidate choose
(a) If the output symbol is in the first column/row, choose its down/right side symbol as the candidate. (b) If not, maintain the same direction with last clock cycle.
5. Sort
According to the possibility, insert the candidate symbol into the sorted sequence which is reduced to ns.
Repeat (2) to (5) till output vector is full or the predetermined processing cycles is reached.
The overall processing steps are described in Algorithm 3.
In bubble check algorithm, it needs to decide the candidate from right or down side of the element with the largest possibility as shown in Figure 3.7(a). This increases some complexity in the controlling circuit when choosing candidate. In order to simplify the controlling circuit, L-bubble check [26] is to determine the paths of choosing next candidate in advance. There is an example when ns is equal to 4 in Figure 3.7(b), and the elements in dark zone will not be considered.
Using the regularity of candidate map M , bubble check algorithm can efficiently reduce the
Algorithm 3:Check Elementary Step with Bubble Check Algorithm Input: I1 and I2(input vectors)
Output: O (output vector)
Data: M (candidate map), S (sorter size ns), flag (the direction of candidate choosing)
1 Initialization:
number of candidates and have√
nm complexity reduction [25]. But like traditional CES, it still has symbol repetition problem and requires more than nm processing cycles to fill up the
(a) (b)
Figure 3.7: (a) The illustration of choosing the candidate from right or down direction (b)Example of predetermined path for ns = 4 in L-bubble check algorithm
output vector. In average, the processing time of a CES is equal to 2nm cycles for avoiding the performance loss as shown in Figure 3.8. For this reason, if we want to improve the throughput, the processing cycles in a CES should be reduced.
1.4 1.6 1.8 2 2.2 2.4 2.6 2.8
10−7 10−6 10−5 10−4 10−3 10−2
10−1 (112,56), R=1/2,Iteration=50,BPSK
Eb/N
0 (dB)
Bit Error Rate
2nm processing cycles nm processing cycles no predetermined cycles
Figure 3.8: Performance curve when the processing cycles is decided as nm and 2nm. No predetermined cycles stands for the case that the CES stop computing until output vector is full.