It should be noted that the adder and subtractor in Fig. 5 are
not component-wise vector adder and subtractor. Since
messages are kept for each vector, it is possible that for a message
in one vector, there is no message with the same finite field
element in the other vector. Taking this into account, the addition/
subtraction is carried out in two rounds. Denote the two
input vectors to the adder/subtractor by row and column vectors.
In the first round, one entry in the row vector is read out
in each clock cycle. If there is an entry in the column vector
with matching finite field element, then the corresponding LLR
is added/subtracted by that from the row vector. In addition, a
flag is set for the entry in the column vector. If there is no entry
with matching field element in the column vector, a compensation
LLR is used for the column vector. It has been shown that
setting the compensation LLR to the largest LLR in the vector
does not lead to noticeable performance loss [13]. In the second
round, one entry is read out from the column vector at a time.
If the corresponding flag is not set, its LLR is added up/subtracted
by the compensation LLR of the row vector. The output
vector also needs to be kept sorted according to increasing LLR.
Hence, the sums/differences from the two rounds are sent to a
parallel sorter, which has comparators, registers, and
multiplexors. This parallel sorter can insert a number
into a sorted sequence of length in one clock cycle. As a
result, the addition/subtraction of two vectors can be completed
in clock cycles, after which the output vector can be found
at the registers of the parallel sorter. For more information, the
interested reader is referred to [13].
It should be noted that the adder and subtractor in Fig. 5 are
not component-wise vector adder and subtractor. Since
messages are kept for each vector, it is possible that for a message
in one vector, there is no message with the same finite field
element in the other vector. Taking this into account, the addition/
subtraction is carried out in two rounds. Denote the two
input vectors to the adder/subtractor by row and column vectors.
In the first round, one entry in the row vector is read out
in each clock cycle. If there is an entry in the column vector
with matching finite field element, then the corresponding LLR
is added/subtracted by that from the row vector. In addition, a
flag is set for the entry in the column vector. If there is no entry
with matching field element in the column vector, a compensation
LLR is used for the column vector. It has been shown that
setting the compensation LLR to the largest LLR in the vector
does not lead to noticeable performance loss [13]. In the second
round, one entry is read out from the column vector at a time.
If the corresponding flag is not set, its LLR is added up/subtracted
by the compensation LLR of the row vector. The output
vector also needs to be kept sorted according to increasing LLR.
Hence, the sums/differences from the two rounds are sent to a
parallel sorter, which has comparators, registers, and
multiplexors. This parallel sorter can insert a number
into a sorted sequence of length in one clock cycle. As a
result, the addition/subtraction of two vectors can be completed
in clock cycles, after which the output vector can be found
at the registers of the parallel sorter. For more information, the
interested reader is referred to [13].
การแปล กรุณารอสักครู่..