Professional Documents
Culture Documents
4
Design and Implementation of
High-Performance Radix-4 Turbo Decoder
for Multiple 4G Standards
( Kim, Ji-Hoon)
School of Electrical Engineering & Computer Science
Division of Electrical Engineering
KAIST
2009
2009 4 29aa
()
()
()
()
()
d
ddfasdf
DEE
20047150
. Kim, Ji-Hoon. Design and Implementation of HighPerformance Radix-4 Turbo Decoder for Multiple 4G Standards. 4
. School of Electrical Engineering & Computer Science, Division of
Electrical Engineering. 2009. 85 p. Advisor Prof. Park, In-Cheol. Text in
English
Abstract
Recently, turbo codes have been adopted for high-speed data transmission of the 4G
communications systems such as Mobile WiMAX (IEEE 802.16e standard) and 3GPPLTE in the form of the double-binary and the single-binary, respectively. Especially,
double-binary convolutional turbo code (CTC) shows superior advantages over the
classical single-binary turbo codes. However, compared with the classical single-binary
turbo code, nonbinary turbo code is much more complex in hardware implementation and
its decoding requires more memory especially for storing the extrinsic information to be
exchanged between the two soft-input soft-output (SISO) decoders. Additionally, due to its
iterative decoding behavior, implementing a high-performance turbo decoder for nextgeneration mobile communication systems becomes challenging. Also, as the need to
support multiple standards in a single mobile handheld device increases, the efficient
implementation of the advanced channel decoders, which is the most area-consuming and
computationally intensive block in baseband modem, becomes more important.
In order to deal with these issues in resource limited handheld systems, this dissertation
presents several solutions from every aspect algorithm, architecture, and implementation.
As an algorithmic solution, two techniques are proposed, which are especially suitable for
nonbinary / high-radix single-binary turbo decoding. The first one, an energy-efficient
SISO decoder based on border metric encoding, eliminates the complex dummy
calculation at the cost of a small-sized memory that holds encoded border metrics. Due to
the infrequent accesses to the border memory and its small size, the energy consumed for
SISO decoding is reduced hugely. As the second one, to reduce the memory size required
for double-binary turbo decoding, a new method to convert the symbolic extrinsic
information to the bit-level information and vice versa is presented. By exchanging the bitlevel extrinsic information, the number of extrinsic information values to be exchanged in
double-binary turbo decoding is reduced to the same amount as single-binary turbo
decoding. Since the size of the extrinsic information memory is significant, the proposed
method is effective in reducing the total memory size needed in double-binary turbo
decoder.
Based on the proposed algorithmic solutions, to verify the proposed methods, two chips
have been implemented. The first implemented chip contains a double-binary turbo
decoder for the mobile WiMAX standard with the dedicated hardware interleaver and
fabricated using a 0.13m CMOS process. The proposed decoder is based on the timemultiplexing architecture consisting of a single optimized SISO decoder, a low-complexity
hardware interleaver, and it can provide up to 50Mb/s at the frequency of 200MHz with
simple early stopping criterion exploiting the bit-level extrinsic information. The second
chip presents the unified radix-4 turbo decoder architecture which can support both Mobile
WiMAX and 3GPP-LTE. To exhibit a decoding rate of more than 100Mb/s, the proposed
chip consists of eight retimed radix-4 SISO decoders and a dual-mode parallel hardware
interleaver to support both standards. The second chip can show more than 400Mb/s at the
frequency of 250MHz with simple early stopping criterion. The proposed chip can achieve
an energy efficiency of 0.34nJ/bit/iteration while achieving more than 100Mb/s with fixed
eight iterations when the supply voltage is scaled since the peak operating frequency is
relatively high due to the retiming technique.
Contents
CHAPTER 1
INTRODUCTION ......................................................... 8
1.1 Motivation................................................................................................................ 8
1.2 Previous Works ........................................................................................................ 9
1.3 Contributions .......................................................................................................... 11
CHAPTER 2
BACKGROUNDS .........................................................14
CHAPTER 3
CHAPTER 7
CONCLUSIONS ...........................................................80
REFERENCE .........................................................................................82
List of Figures
Figure 1.1: The Need for Supporting Multiple Standards ............................................ 9
Figure 1.2: Research Overview ....................................................................................12
Figure 1.3: Proposed Solutions for Nonbinary CTC Decoder Implementation ..........13
Figure 2.1: Model of a digital communication system .................................................15
Figure 2.2: Turbo code encoder structure . ..................................................................17
Figure 2.3: A turbo decoder structure ..........................................................................20
Figure 2.4: Double-binary CRSC constituent encoder used by WiMAX ....................29
Figure 2.5: A decoder for the WiMAX turbo code .......................................................30
Figure 2.6: A Turbo Encoder for 3GPP-LTE ...............................................................33
Figure 2.7: A Trellis Diagram of a 3GPP-LTE Turbo Encoder....................................33
Figure 3.1: Trellis Diagrams .........................................................................................36
Figure 3.2: Sliding window diagrams...........................................................................37
Figure 3.3: 3-bit border metric encoding function .......................................................39
Figure 3.4: BER performance comparison with 8 iterations for 4800-bit frame. .......40
Figure 3.5: BER performance of 1920-bit frame according to the number of iterations
......................................................................................................................................41
Figure 4.1: Memory Requirements in Double-Binary Turbo Decoder ........................47
Figure 4.2: Block diagram of the proposed bit-level extrinsic information exchange .48
Figure 4.3: Proposed Bit-Level Extrinsic Information Exchange ...............................54
Figure 4.4: Comparison of BER performance of 8 iterations for 1920-bit frame. ......54
Figure 4.5: Block diagram of the proposed double-binary turbo decoder ..................56
Figure 4.6: Block diagram and complexity of the proposed bit-to-symbol converter .56
Figure 5.1: Branch metric memory width comparison ................................................60
Figure 5.2: Block diagram of the proposed two converters .........................................61
Figure 5.3: Interleaving procedure for the WiMAX ....................................................61
Figure 5.4: Interleaver structure based on the incremental calculation ......................62
Figure 5.5: Need of LIFO for Interleaved Address ......................................................63
Figure 5.6: Double-flow hardware interleaver based on incremental calculation.......64
Figure 5.7: Double-flow hardware interleaver based on incremental calculation.......65
Figure 5.8: Block diagram of the proposed double-binary turbo decoder ..................65
Figure 5.9: Average number of iterations for the proposed turbo decoder .................66
Figure 5.10: Comparison of BER performance for 1920-bit frame.............................66
Figure 5.11: Die photo of the proposed double-binary turbo decoder chip .................67
Figure 6.1: Overall Unified Turbo Decoder Architecture with Time-Multiplexing.....70
Figure 6.2: The Proposed Chip Architecture with Eight SISO Decoders ....................71
Figure 6.3: Add-Compare-Select (ACS) block with Retiming .....................................72
Figure 6.4: Sliding Window with Register Retiming ...................................................73
Figure 6.5: Input Frame Memory Configurations .......................................................74
Figure 6.6: Dual-Mode Dedicated Hardware Interleaver............................................76
Figure 6.7: FER Performance and Average Iteration Number with Early Termination
in an AWGN Channel ...................................................................................................78
Figure 6.8: Memory Size Reduction in the Proposed Architecture .............................78
Figure 6.9: Micrograph of the Chip .............................................................................79
List of Tables
Table 1.1 Differences between the 3GPP-LTE and Mobile WiMAX Turbo Codes......10
Table 3.1 Simulation environment ...............................................................................39
Table 3.2 Encoded values for border metrics ...............................................................40
Table 3.3 Single-port SRAM size required for a SISO decoder ...................................43
Table 3.4 Energy consumptions of SISO decoders.......................................................43
Table 4.1 Simulation environment ...............................................................................46
Table 4.2 Memory Configuration for one SISO Decoder ............................................46
Table 4.3 Memory Configuration for the Extrinsic Information .................................46
Table 4.4 Single-port SRAM Size required for the Turbo Decoder .............................55
Table 5.1 CTC Interleaver Parameters for WiMAX....................................................62
Table 5.2 Single-port SRAM Size Required for the Turbo Decoder ............................67
Table 6.1 Comparison of Decoder Implementation .....................................................77
List of Abbreviations
4G: 4th Generation
RSC: Recursive Systematic Convolutional
CTC: Convolutional Turbo Code
SISO: Soft-Input Soft-Output
LLR: Log Likelihood Ratio
ML: Maximum Likelihood
SOVA: Soft-Output Viterbi Algorithm
MAP: Maximum a posteriori
APP: a posteriori Probability
ECC: Error Correction Coding
FEC: Forward Error Correction
BPSK: Binary Phase Shift Keying
OFDMA: Orthogonal Frequency Division Multiple Access
NLOS: Non-Link-of-Sight
AWGN: Additive White Gaussian Noise
ARP: Almost Regular Permutation
QPP: Quadratic Polynomial Permutation
Chapter 1
Introduction
The turbo code introduced in 1993 is one of the most powerful forward error correction
channel codes, and provides near optimal bit-error rates (BERs), that is, within 0.5 dB of
Shannons limit at BER of 10-5 [1]. Having this remarkable performance, the turbo codes
have been accepted in many standardized mobile radio systems.
Recent advance in convolutional turbo code (CTC) attracts much interest in its
applications. Conventional CTC suffers from high error floor due to its relative small
minimum Hamming distance and suffers from performance degradation due to puncturing.
Nonbinary CTC has recently emerged and it seems to solve many flaws of classical singlebinary CTC [2]. In addition, the concept of tail-biting convolutional code has been applied
to CTC. The tail-biting code called circular code improves the spectral efficiency of CTC
since it solves the problem of tail bits used to terminate the state of the encoder.
Recently, turbo codes have been adopted for high-speed data transmission of the 4G
mobile communication systems such as Mobile WiMAX (IEEE 802.16e standard) and
3GPP-LTE in the form of the double-binary and the single-binary, respectively.
1.1 Motivation
There has been little research dedicated to the hardware implementation of the doublebinary turbo decoder although the previous works on the classical single-binary turbo
codes can be applied to the nonbinary turbo codes [4]-[11]. Compared with the classical
single-binary turbo code, nonbinary turbo code is much more complex in hardware
implementation and its decoding requires more memory especially for storing the extrinsic
information to be exchanged between the two soft-input soft-output (SISO) decoders.
Table 1.1 Differences between the 3GPP-LTE and Mobile WiMAX Turbo Codes
Standards
RSC
code
Type
Constraint
Length
Trellis
Termination
Type
Interleaver
Frame size
(N)
3GPP-LTE
Single-Binary
Mobile WiMAX
Double-Binary
N
1024 32 f , 0 f 32
2048 64 f , 0 f 64
Tail-Biting
(Circular Coding)
ARP Interleaver
24, 36, 48, 72, 96, 108,
120, 144, 180, 192, 216,
240, 480, 960, 1440,
1920, 2400 (pairs)
10
the extrinsic information memory size hugely with negligible performance degradation
although the number of extrinsic information values is still three.
In addition, there have been several turbo decoder implementations for single-binary
turbo codes [9][20]. To support multiple 3G standards, such as CDMA2000 and W-CDMA,
the programmable single-instruction multiple-data (SIMD) processor has been proposed
for interleaving in order to provide interleaved data at the speed of the hardware SISO [20].
Compared to the ROM-based interleaver which needs a large ROM to store all of the
possible interleaved patterns, the proposed approach can achieve the small area, high
performance, and low power consumption of hardware, as well as the flexibility and
programmability of software needed to support multiple standards.
Also, to support higher user data rates, up to 24Mb/s, a radix-4 log-MAP turbo decoder
for 3GPP-HSDPA has been introduced in [9]. The log-MAP SISO decoder processes two
received symbols per clock cycle using a windowed radix-4 architecture doubling the
throughput for a given clock rate over a similar radix-2 architecture.
1.3 Contributions
The major contribution of this paper is to present the algorithmic modifications for
low-complexity
hardware
implementation,
architectural
solutions
and
several
optimizations for high-performance turbo decoding with the capability of supporting two
4G communication standards as illustrated in Figure 1.2 and Figure 1.3. In other words, the
contribution can be categorized as follows.
The first one is the energy-efficient SISO decoding structure for nonbinary turbo
decoders. With border metric encoding scheme, the complex dummy calculation in
nonbinary turbo decoding can be avoided at the cost of a small-sized memory that holds
encoded border metrics. Due to the infrequent accesses to the border memory and its small
size, the energy consumed for SISO decoding is reduced hugely.
The second one is to present the bit-level extrinsic information exchange. To reduce the
memory size required for double-binary turbo decoding, a new method to convert the
symbolic extrinsic information to the bit-level information and vice versa is presented. By
exchanging the bit-level extrinsic information rather than the symbol-level extrinsic
11
Algorithm
Nonbinary Max-log-MAP
Border Metric Encoding
Bit-level Extrinsic Info.
ARP/QPP Interleaving
Architecture
Implementation
Time-Multiplexing
Parallel Turbo Decoding
Unified SISO Decoding
Memory Sharing
12
Hardware Interleaver
loss ~ 0.15 dB
No Error Floor
13
Chapter 2
Backgrounds
The efficient design of a communication system that enables reliable high-speed
service is challenging. Efficient design refers to the efficient use of primary
communication resources, namely, power and bandwidth. The reliability of such systems is
usually measured by the required signal-to-noise ratio (SNR) to achieve a specific error
rate. Also, a bandwidth efficient communication system with perfect reliability, or as
reliable as possible, using as low as SNR as possible is desired.
Error correction coding (ECC) is a technique that improves the reliability of
communication over a noisy channel. The use of the appropriate ECC allows a
communication system to operate at very low error rates, using low to moderate SNR
values, enabling reliable high-speed multimedia services over a noisy channel.
14
15
16
(a)
(b)
Figure 2.2: Turbo code encoder structure. (a) General structure of turbo codes. (b)
Typical structure of turbo codes.
introduced randomness through an interleaver and structure by employing parallel
concatenated convolutional codes. These codes are called turbo codes and offer an
excellent tradeoff between complexity and error correcting capability. Concatenated codes
are very powerful error correcting codes that are capable of closely approaching the
Shannon limit by using iterative decoding [1].
17
2.2.1.2 Interleaving
Interleaving refers to the process of permuting symbols in the information sequence
before it is fed to the second constituent encoder. The primary function of the interleaver is
the creation of a code with good distance properties. Note that interleaving alone cannot
achieve good distance properties unless it is used together with recursive constituent
encoders. De-interleaving acts on the interleaved information sequence and restores the
sequence to its original order.
Achieving good distance properties is a common criterion for interleaver design. This
fits very well with the concept of maximum likelihood (ML) decoding. Unfortunately,
turbo decoding is not guaranteed to perform a ML decoding, because of the independence
assumption made on the sequence to be decoded and the probabilistic information (known
as extrinsic information) passed between constituent decoders. This suggests an additional
design criterion based on the correlation between the extrinsic information.
18
2.2.1.3 Puncturing
Puncturing refers to the process of removing certain bits from the codeword. The
purpose of puncturing is to increase the overall code rate. It is common to puncture only
the parity symbols of the first and second encoders.
19
Deinterleaver
L 2e
L1e
S
yK
yP1
K
SISO
Interleaver
SISO
Decoder 1
Deinterleaver
Decoder 2
~S
yK
Lr2
Interleaver
yP2
K
Output
LR (uk ) log
P (uk 1 R1 )
N
(2.1)
In the final operation, the decoder makes a hard decision by comparing LR(uk) to a
threshold equal to zero, as shown in the expression (2.2).
20
if L R (u k ) 0
1
uk
0
(2.2)
otherwise
P ( Sk 1 s ', Sk s , R1N )
R1N
(2.3)
where Sk is encoder state at time k, U+ is the set of pairs (s, s) for the state transitions (Sk-1
= s ) (Sk = s) which correspond to the event uk = +1, and U- is similarly defined.
Also
P (uk 0 | R1N ) P ( Sk 1 s ', Sk s | R1N )
U
P ( Sk 1 s ', Sk s , R1N )
R1N
(2.4)
LR
P (S
(u ) log
P (S
U
k 1
s ', Sk s , R1N )
k 1
s ', Sk s , R1N )
(2.5)
N
k 1
(2.6)
| s ) P ( s, R k | s ') P ( s ', R )
k-1
1
k ( s ) k ( s ', s ) k 1 ( s ')
LR (uk ) ln
k 1
( s ') k ( s ', s) k ( s)
k 1
( s ') k ( s ', s) k ( s)
(2.7)
where k 1 ( s ') is the forward metric, k ( s ) is the backward metric and k ( s ', s) is the
branch metric. They are defined as
k ( s ) P ( S k s, R1k )
21
(2.8)
k ( s ', s) P ( Sk s, R k | Sk 1 s ')
(2.9)
k ( s) P (R kN1 | Sk s)
(2.10)
k ( s ) P ( s, R1k )
P ( s ', s, R1k )
s'
(2.11)
s'
k ( s ', s ) k 1 ( s ')
s'
k 1 ( s ') P (R kN | s ')
P (R
N
k
, s | s ')
P (R kN | s ', s, R k ) P ( s, R k | s ')
(2.12)
P (R kN | s) P ( s, R k | s ')
s
k ( s ) k ( s ', s )
s
0 (s)
s0
s0
(2.13)
which makes the reasonable assumption that the component encoder is initialized to the
zero state. The recursion for the k ( s) is initialized according to
1
0
N ( s)
s0
s0
(2.14)
which assumes that termination bits have been appended at the end of the data word so
that the component encoder is again in state zero at time N.
All that remains at this point is the computation of k ( s ', s) P ( s, R k | s ') . Observe that
22
P ( s ', s) P ( s ', s, R k )
P ( s ')
P ( s ', s)
k ( s ', s)
P ( s | s ') P (R k | s ', s)
(2.15)
P (uk ) P (R k | uk )
k ( s ', s)
P(uk )
2
exp[
yk xk
2 2
(2.16)
where it is assumed that codes are transmitted on an AWGN channel and 2 is noise
variance.
k ( s) ln( k ( s))
(2.17)
(2.18)
k ( s) ln( k ( s))
(2.19)
k ( s) ln( k ( s))
(2.20)
s'
0 ( s)
The expression (2.18) is rewritten as
23
s0
s0
(2.21)
(2.22)
s0
s0
N ( s)
(2.23)
LR (uk
) ln
k 1
( s ') k ( s ', s ) k ( s )
k 1
( s ') k ( s ', s ) k ( s )
(2.24)
(2.25)
Given the max function, we may now rewrite (2.20), (2.22), and (2.24) as
(2.26)
(2.27)
s'
LR (uk ) max[
k 1 ( s ') k ( s ', s) k ( s)]
- max[
k 1 ( s ') k (s ', s ) k (s)]
(2.28)
As shown in the above operations, the multiplications in the MAP are replaced by
additions in the Max-log-MAP, which results in the low complexity of Max-log-MAP. The
calculation of k (s) will be given in Section 2.2.3.3.
24
Le (uk ) ln(
P (uk 1)
)
P (uk 1)
(2.29)
The a priori term P(uk ) shows up in (2.16) in an expression for k ( s, s ') . In the logdomain, (2.16) becomes
yk xk
(2.30)
2 2
(2.31)
A k exp[uk Le (uk ) / 2]
(2.32)
P_ /P
(
) P_ /P P_ when u k 1,
1 P_ /P
P P(uk 1) and
P P(uk 1) for
convenience.
k ( s ', s) ln( Ak / 2 )
uk Le (uk ) yk xk
2
2 2
(2.33)
and that
(2.34)
only the terms dependent on U or U , 2 xks yks and 2 xkp ykp , survive after
25
k ( s ' s) uk Le (uk )
Given LC
xks yks
xkp ykp
(2.35)
, we have
k ( s ' s) Le (uk )
LC s s LC p p
xk yk
xk yk
2
2
(2.36)
U
2
2
LR (uk ) max[
k ( s ') Le (uk )
(2.37)
LC s s
L
xk yk Le (uk ) C yks under the first max() operation in
2
2
LC s s
L
xk yk C yks under the second max() operation. Using the
2
2
definition for max(), it is easy to see that these terms may be isolated out so that
LR (uk ) LC yks Le (uk ) max[
k ( s ')
LC p p
xk yk k ( s) ]
2
(2.38)
L
max[
k ( s ') C xkp ykp k ( s) ]
U
2
The interpretation of this new expression for LR (uk ) is that the first term is likelihood
information received directly from the channel, the second is extrinsic likelihood
information received from a companion decoder, and the third term ( max
) is
max
extrinsic likelihood information to be passed to a companion decoder. Note that this third
term is likelihood information gleaned from received parity not available to the companion
decoder. Using notation Le ,OUT (uk ) for extrinsic information to be passed and Le , IN (uk )
for extrinsic information received, we have
LR (uk ) Le, IN (uk ) LC yks Le,OUT (uk )
(2.39)
26
(2.40)
27
2.3.1 Encoding
The CSRC constituent encoder used by WiMAX is shown in Figure 2.4. The encoder is
fed blocks of k message bits which are grouped into N = k/2 couples. In Figure 2.4, A
represents the first bit of the couple, and B represents the second bit. The two parity bits
are denoted W and Y. For ease of exposition, subscripts are left off the figure, but below a
single subscript is used to denote the time index k {0, , N-1} and an optional second
is used on the parity bits W and Y to indicate which of the two constituent encoders
produced them.
Let the vectors Sk = [Sk,1 Sk,2 Sk,3]T, Sk,m {0,1} denote the state of the encoder at time
k. Note that although the input s and outputs of the encoder are defined over GF(4), only
binary values are stored within the shift register and thus the encoder has just eight states.
The encoder state at time k is related to the state at time k
(2.41)
where
Ak Bk
Xk Bk
Bk
1 0 1
G 1 0 0
0 1 0
(2.42)
Because of the tailbiting nature of the code, the block must be encoded twice by each
28
(2.43)
where the above operations are over GF(2). In practice, the circulation state Sc can be
found from SN by using a lookup table [3]. Once the circulation state is found, the data is
encoded again. This time, the encoder is set to start in state Sc and will be guaranteed to
also end in state Sc.
The first encoder operates on the data in its natural order, yielding parity couples {Wk,1,
Yk,1}. The second encoder operates on the data after it has been interleaved.
2.3.2 Decoding
Decoding is complicated by the fact that the constituent codes are double-binary and
circular. As with conventional turbo codes, decoding involves the iterative exchange of
extrinsic information between the two component decoders. While decoding can be
performed in the probability domain, the log-domain is preferred since the low complexity
Max-log-MAP algorithm can then be applied. Unlike the decoder for a single-binary turbo
code, which can represent each binary symbol as a single log-likelihood ratio, the decoder
for a double-binary code requires three log-likelihood ratios. For example, the likelihood
ratios for message couple (Ak, Bk) can be represented in the form
29
a ,b ( Ak , Bk ) log
P( Ak a, Bk b)
P( Ak 0, Bk 0)
(2.44)
(i )
a ,b
(o)
a ,b
(i )
a ,b
bits generated by the corresponding encoder (in LLR form). Using these inputs and
knowledge of the code constraints, it is able to produce the updated LLRs
(o)
a ,b
( Ak , Bk ) at
its output.
As with single-binary turbo codes, extrinsic information is passed to the other
constituent decoder instead of the raw LLRs. This prevents the positive feedback of
previously resolved information. Extrinsic information is found by simply subtracting the
appropriate input LLR from each output LLR, as indicated in Figure 2.5.
The extrinsic information that is passed between the two decoders must be interleaved
or de-interleaved so that it is in the proper sequence at the input of the other decoder.
30
( sk sk 1 ,00)
max
(2.45)
are the forward, backward, and branch metrics, respectively. The metrics are calculated
as expressed in equations (2.46), (2.47) and (2.48), where A is the set of states at time k-1
connected to state sk, and B is the set of states at time k+1 connected to state sk.
k ( sk ) max k 1 ( sk 1 ) k ( sk 1 sk )
(2.46)
k ( sk ) max k 1 ( sk 1 ) k 1 ( sk sk 1 )
(2.47)
sk 1 A
sk 1 B
k ( sk sk 1 ) ln P(y k | x k ) P(uk z )
Lc s1 s1
)
( xk yk xks2 yks2 xkp1 ykp1 xkp2 ykp2 ) L(ez, IN
2
(2.48)
where z belongs to {00,01,10,11} , uk is the input symbol consisting of two bits, P(uk)
is a priori probability of uk, and xk and yk are transmitted and received codewords
associated with uk, respectively. The superscripts p and s denote the parity bits and
)
systematic bits, respectively. In (4), L(ez, IN
is the extrinsic information received from the
other SISO decoder and the code is assumed to be transmitted through an AWGN channel
with a noise variance 2 . Since the Max-log-MAP decoding algorithm is independent of
the signal-to-noise ratio (SNR), Lc 2 2 is usually set to a constant value, although it
can be obtained from channel estimation [8].
After the turbo decoder has completed a fixed number of iterations or met some other
convergence criteria, a final decision on the bits must be made. This is accomplished by
computing the LLR of each bit in the couple (Ak, Bk) according to
31
11
( Ak ) max 10
k , k
01
max 00
k , k
11
( Bk ) max 01
k , k
(2.49)
10
max 00
k , k
where 00
k 0 . The hard bit decisions can be found by comparing each of these likelihood
ratios to a threshold.
2.4.1 Encoding
Figure 2.6 shows the structure of a 3GPP-LTE turbo encoder. The transfer function of
each component encoder is given as the following equation.
g ( D)
G ( D) 1, 1
g 0 ( D)
(2.50)
where g0 ( D) 1 D2 D3 and g1 ( D) 1 D D3 .
The trellis diagram of a 3GPP-LTE turbo encoder is shown in Figure 2.7. Trellis
diagram is a state diagram which explicitly shows all possible state transitions of the
component encoder at each discrete time instants. The component encoder has 8-state.
Since turbo codes are recursive, it is not possible to terminate the trellis by transmitting
zero tail bits. Trellis termination means driving the encoder to the all-zero state. This is
required at the end of each block to make sure that the initial state for the next block is the
all-zero state. The tail bits depend on the state of the component encoder after N
information bits. A simple solution to this problem is shown in Figure 2.6. A switch in each
parallel component encoder is in position A for the first N clock cycles and in position
32
Xs
1st component encoder
+
Uk
Input
XP1
+
D
Output
2st component encoder
Interleaver
+
Uk
XP2
+
D
0
6
0
6
0
6
0
6
0
6
0
4
0
4
0
4
0
4
0
4
0
2
0
2
0
2
0
2
0
2
0
2
N-1
N+1
6
0
4
0
4
0
2
0
N+2 N+3
33
xNs 1 , xNp11 , xNs 2 , xNp12 , xNs 3 , xNp13 , xNs 1 , xNp 21 , xNs 2 , xNp 2 2 , xNs 3 , xNp 23
where N is the number of bits.
2.4.2 Decoding
Based on the MAP algorithm, how to decode the single-binary turbo codes is well
described in Section 2.2.3. In this Section, radix-4 single-binary turbo decoding based on
Max-log-MAP is presented.
k ( sk ) max k 2 ( sk 2 ) k ( sk 2 sk )
(2.51)
k ( sk ) max k 2 ( sk 2 ) k ( sk sk 2 )
(2.52)
sk 2 , sk 1
sk 1 , sk 2
k ( sk sk 2 ) ln P(y k | x k ) P(vk 1)
+ ln P (y k 1 | x k 1 ) P (vk 1 1)
x y x y Le , IN (vk ) x
s
k
s
k
p
k
p
k
s
s
k 1 k 1
(2.53)
p
p
k 1 k 1
Le, IN (vk 1 )
where sk is the state of an encoder at time k and vk is the input bit. Also, P(vk) is a priori
probability of vk,
respectively. The superscripts p and s denote the parity bits and systematic bits,
respectively. In (2.53), Le, IN (vk ) is the extrinsic information received from the other SISO
decoder. As indicated in (2.46)-(2.48) and (2.51)-(2.53), the radix-4 single-binary SISO
decoding is almost the same with the double-binary SISO decoding which enables the
efficient unified SISO decoder implementation for both decodings.
34
Chapter 3
Border Metric Encoding
This chapter presents an energy-efficient soft-input soft-output (SISO) decoder based
on border metric encoding, which is especially suitable for nonbinary circular / high-radix
single-binary turbo codes. In the proposed method, the size of the branch memory is
reduced to half and the dummy calculation is removed at the cost of a small-sized memory
that holds encoded border metrics. Due to the infrequent accesses to the border memory
and its small size, the energy consumed for SISO decoding is reduced by 25.3%.
(3.1)
It is possible to compute the four-operand max operation serially using a two-operand max
operator, but this structure requires more than one cycles and additional buffers to hold the
intermediate values. Moreover, the serial max computation results in severe throughput
degradation, as the forward and backward metrics are recursively defined using the
35
xksxk+1s /xkpxk+1p
sk
(a)
xks1xks2 /xkp1xkp2
sk
sk+1
(b)
Figure 3.1: Trellis Diagrams for (a) Radix-4 Single-Binary Turbo Code in 3GPPLTE and (b) Double-Binary Turbo Code in Mobile WiMAX
previously calculated metrics. Compared to the single-binary SISO decoders [6][7], the
wordlength of internal metrics should be increased in hardware implementation, as the
number of terms to be added in the branch metric calculation is increased from three to
five as expressed in (2.48).
36
Forward Metric
Calculation
Dummy
Backward Metric
Calculation
N = 7L
6L
5L
Branch Metric
Calculation
4L
3L
2L
Processing Time
2T
3T
4T
5T
6T
7T
8T
9T 10T
Dummy Calc.
Active
Duty Ratio 1
(a)
Trellis Time (Blocks)
N =7L
Load
Address
6L
4L
Store
Address
n-2
2L
n-1
3L
n-1
5L
n+1
n
2T
3T
4T
5T
6T
7T
Load Active
8T
9T 10T
Store Active
(b)
Figure 3.2: Sliding window diagrams (a) with dummy calculation and (b) with
border memory
conventional sliding window diagram where forward metrics are calculated prior to
backward metrics [6]. In the sliding window technique, however, the initial values at the
border of each window are also required. To obtain the reliable initial values of each
window, the dummy calculation is performed for the backward metrics as shown in Figure
3.2(a). If the window size is sufficiently long, the initial values obtained by the dummy
37
(3.2)
where WS is the window size. Since Nmax and K are fixed for a standard, the border
memory size depends only on the window size and the wordlength of state metrics. To
reduce the border memory size, we can either increase the window size or decrease the
38
SISO Algorithm
Window Size
Quantization
Encoded
Value
64
32
-64
16
-32 -16
16 32
-16
64
Original
Value
-32
-64
wordlength of state metrics. Increasing the window size, however, increases the sizes of
the memories storing the forward and branch metrics, and the window size is usually set to
32 for 8-state trellis. Therefore, we should decrease P to reduce the overall border memory
size. Otherwise the sliding window associated with the border memory may not be suitable
for the hardware implementation because a large border memory is indispensable for the
3GPP-LTE whose Nmax is 6144 (3072 in case of radix-4 processing) and for the WiMAX
whose Nmax is 2400.
The reduction of the border memory can be realized by allowing a few values to represent
the border metrics. Though the reliability of the border metric is slightly decreased due to
the loss of accuracy, this can be totally recovered after a few trellis stages. A simple
encoding with low hardware complexity is to floor the original metric value to
39
4-bit encoding
3-bit encoding
Figure 3.4: BER performance comparison with 8 iterations for 4800-bit frame.
the closest power-of-two number. The experimental environment for the WiMAX is
indicated in Table 3.1, where (q, f) denotes a quantization scheme that uses q bits in total
and f bits to represent the fractional part. The final quantization schemes shown in Table
3.1 are determined by performing several simulations and referring to [6] and [8]. The
encoding function for the proposed 3-bit encoding is depicted in Figure 3.3. The encoding
function for the 4-bit encoding can be similarly defined. Possible values at the border are
listed in Table 3. 2. As the range of the original border metrics is [-512, +511] which can be
represented with 10 bits, the proposed border metric encoding can be obtained by limiting
the value into [-256, +256] for the 4-bit encoding and [-64, +64] for the 3-bit encoding and
by allowing only power-of-two values. In Figure 3.4, the BER performance of the
proposed encoding is compared with those of various methods. The schemes in which the
border metric is initialized with the value of the previous iteration degrade the performance
40
1st Iteration
2nd Iteration
4th Iteration
6th Iteration
8th Iteration
41
k (s0 ) , from other metrics at the same trellis stage in order to avoid overflow in state
metrics, which also eliminates the need to store the metric value of state 0. Since the SISO
decoder takes two systematic bits and two parity bits as inputs, the number of possible
branch metrics is 16 while the number of possible branch metrics is 4 in the classical
single-binary turbo codes. Among the 16 possible branch metrics, only 8 branch metrics
are distinguishable and sufficient to derive the others. Although the number of branch
metrics to be stored is reduced by half, the branch memory size is still considerable if the
conventional sliding window with the dummy calculation is adopted as indicated in Table
3.3. Even in the case that the sliding window is associated with the border memory, the
total memory size is increased because of the border memory requirement. By applying the
proposed border metric encoding method, the total memory size needed in the SISO
decoder is reduced by 20.7% as summarized in Table 3.3.
In Table 3.4, the energy consumption of the proposed SISO decoder is compared with
that of the conventional decoder, which is measured for 1.2 dB SNR and 8 iterations at the
operating frequency of 200MHz. Due to the increased computational complexity of the
double-binary turbo codes, the energy consumption of the SISO logic is also increased
compared to the classical single-binary turbo codes [6][7]. As shown in Table V, the energy
consumption of the SISO logic is reduced by eliminating the dummy calculation. Also, as
shown in Figure 3.2(b), the energy consumption of the border memory is very low because
the memory is small and infrequently accessed. While processing a window, we need to
access the border memory only two times one for load and the other for store. For the
42
With
Border Memory
(No Encoding)
2 banks,
32*(10*7)
bits/bank
4480 bits
2 banks,
32*(10*8)
bits/bank
5120 bits
With
Border Memory
(4-bit Encoding)
2 banks,
32*(10*7)
bits/bank
4480 bits
2 banks,
32*(10*8)
bits/bank
5120 bits
Border
Memory
N.A.
[(2400/32)-1]
*(10*7) bits
= 5180 bits
[(2400/32)-1]
*(4*7) bits
= 2072 bits
Total
14780 bits
(100.4 %)
11672 bits
(79.3 %)
Forward
Memory
Branch
Memory
With
Border Memory
(4-bit Encoding)
SISO Logic
2347.9 pJ/bit/iter
1876.9 pJ/bit/iter
Branch Memory
1288.4 pJ/bit/iter
649.9 pJ/bit/iter
Forward Memory
559.1 pJ/bit/iter
559.1 pJ/bit/iter
Border Memory
N.A.
49.4 pJ/bit/iter
Total
4195.4 pJ/bit/iter
(100%)
3135.3 pJ/bit/iter
(74.7 %)
case of dummy calculation, however, the dummy calculation logic should operate almost
all the time as indicated in Figure 3.2(a). Therefore, the proposed SISO decoder can reduce
the energy consumption by 25.3% compared to the conventional SISO decoder based on
the dummy calculation and the table-based interleaver.
43
Chapter 4
Bit-Level Extrinsic Information Exchange
The nonbinary turbo code has many advantages over the single-binary turbo code, but
its decoding requires more memory especially for storing the extrinsic information to be
exchanged between the two soft-input soft-output (SISO) decoders. To reduce the memory
size required for double-binary turbo decoding, this paper presents a new method to
convert the symbolic extrinsic information to the bit-level information and vice versa. By
exchanging the bit-level extrinsic information, the number of extrinsic information values
to be exchanged in double-binary turbo decoding is reduced to the same amount as singlebinary turbo decoding. Since the size of the extrinsic information memory is significant,
the proposed method is effective in reducing the total memory size needed in doublebinary turbo decoders. A double-binary turbo decoder is designed for the WiMAX standard
to verify the proposed method, which reduces the total memory size by 28.4%.
44
follows [13][14].
Lez ln
p(uk z )
p(uk z ) p(uk 00) exp[ Lez ]
p(uk 00)
where z belongs to {01,10,11} , uk is the input symbol consisting of two bits and
(4.1)
p()
means the probability. The extrinsic information is exchanged iteratively between the two
SISO decoders during the whole decoding process. As indicated in (4.1), the extrinsic
information in the double-binary turbo code is defined as the ratio of two input symbols
each of which consists of two bits. In non-binary turbo decoding, more extrinsic
information values are to be exchanged compared to the classical single-binary turbo
decoding that stores only one extrinsic information value. To store the increased number of
extrinsic information values, therefore, a large memory is needed in implementing a
nonbinary turbo decoder.
45
Quantization
Max-log-MAP
32
Received input : (4, 2)
Branch Metric : (10, 2)
State Metrics : (10, 2)
Extrinsic Information : (8, 2)
LLR value : (11, 2)
Forward Metric
Memory
Branch Metric
Memory
[(2400/32)-1]*(10*7) bits
Border Metric
Memory
5180 bits
Extrinsic
Info.
Memory
L01
e
L10
e
L11
e
2 banks,
8*2400bits/bank
2 banks,
8*2400bits/bank
2 banks,
8*2400bits/bank
38400 bits
38400 bits
38400 bits
Total
115200 bits
extrinsic information values in Table 4.3. It is crucial to reduce the extrinsic information
memory even if several SISO decoders are adopted for parallel decoding, as the extrinsic
information memory is much bigger than the memory required in SISO decoding as
indicated in Table 4.2 and 4.3 and Figure 4.1.
It has been reported that higher-order non-binary turbo codes are appropriate to achieve
higher data rate and bandwidth efficiency [13][19]. In the higher-order non-binary turbo
46
47
Double-Binary
SISO Decoder #1
Le01
Reduced
Memory Size
Le10
Shared with
Hard Decision Unit
Le11
Symbol-to-Bit
Converter (SBC)
LbeA
LbeB
(Bit-Level)
With Negligible
Hardware Overhead
Extrinsic
Memory
LbeA
LbeB
Bit-to-Symbol
Converter (BSC)
In an interleaved order
Le01
Le10
Le11
Double-Binary
SISO Decoder #2
Figure 4.2: Block diagram of the proposed bit-level extrinsic information exchange
Lbe ln
A
LBbe ln
p ( A 1)
p ( A 0)
p ( B 1)
p ( B 0)
p ( A 1) p ( A 0) exp[ Lbe ]
A
(4.2)
p ( B 1) p ( B 0) exp[ LBbe ]
where the input symbol uk consists of a pair of two bits, A and B, i.e., uk = AB. The bit-level
probabilities in (4.2) can be derived from the symbol-level probabilities in (4.1) as
described below.
p( A 0) p(uk 00) p(uk 01)
(4.3a)
(4.3b)
(4.3c)
(4.3d)
p( B 0) p( B 1) p( B 0) 1 exp[ L ] 1
A
p( A 0) p( A 1) p( A 0) 1 exp[ Lbe
] 1
B
be
48
(4.4a)
(4.4b)
10
11
p (uk 00) 1 exp[ L01
e ] exp[ Le ] exp[ Le ] 1
(4.5)
01
1 exp[ Le ]
1 exp[ L ]
A
be
(4.6)
1 exp[ L ] 1 exp[ L ]
10
e
B
be
(4.7)
p( A 1) p ( B 0)
A
exp[ Lbe
]
1
1
A
B
exp[ LBbe ]
1.
B
A
(4.8)
] 1 exp[ L ] exp[ L
exp[ LBbe
01
10
10
e
01
e ].
(4.9)
Since p(A=0) p(B=1) p(A=1) p(B=0) = p(uk=01) p(uk=10), we can obtain the
following relations from (4.6).
exp[ Le ]
01
exp[ Le ]
10
A
exp[ LBbe ] exp[ Lbe
]
A
1 exp[ Lbe
]
A
exp[ Lbe
] exp[ LBbe ]
1 exp[ LBbe ]
1 exp[ LBbe ]
A
1 exp[ Lbe
]
A
1 exp[ Lbe
]
1 exp[ LBbe ]
exp[ Le ]
(4.10a)
exp[ Le ]
(4.10b)
10
01
By considering both (4.9) and (4.10), we can obtain the relations among the symbol-level
extrinsic information values with the bit-level extrinsic information values.
49
11
1 exp[ Lbe ]
exp[ L
A
be
Lbe ] 1
B
1 exp[ Lbe ]
exp[ Le ]
1 exp[ Lbe ]
B
exp[ L
exp[ Le ]
10
(4.11)
B
Lbe ] 1
01
exp[ Le ]
B
exp[ Lbe ]
A
be
Based on the relations discussed above, we can derive the symbol-to-bit conversion and
bit-to-symbol conversion of the extrinsic information.
(4.12a)
A
01)] exp[ Lbe
]
(4.12b)
B
[ p(uk 00) p (uk 10)] exp[ Lbe
]
As a consequence, two bit-level extrinsic information values can be obtained from (4.12)
as follows.
p (uk 10) p (uk 11)
A
Lbe
ln
exp[
L
]
e
LBbe
(4.13)
exp[
L
]
e
As expressed in (4.13), two bit-level extrinsic information values can be obtained from
three symbol-level extrinsic information values. Therefore, the number of values to be
stored in the memory can be reduced from three to two.
50
A
exp[ Lbe
]
1
1
1
A
B
p (uk 00) 1 exp[ Lbe ] 1 exp[ Lbe ]
A
exp[ Lbe
]
1
1
1
A
B
A
B
1 exp[ Lbe
] 1 exp[ Lbe
]
(4.14)
A
exp[ Lbe
]
1
1
1 exp[ LA ] 1 exp[ LB ]
be
be
A
exp[ Lbe
] exp[ LBbe ]
A
B
A
B
L11
e ln exp[ Lbe ] exp[ Lbe ] max( Lbe , Lbe )
(4.15)
]) exp[ L11
e ] exp[ Lbe ] (exp[ Lbe ] 1)
ln
L10
e
A
B
exp[ LA LB ] 1
exp[ Lbe Lbe ] 1
be
be
ln exp[ L
B
B
A
B
B
Lbe
] L11
e Lbe max( Lbe , Lbe ) Lbe
11
A
A
B
A
Similarly, L01
e Le Lbe max( Lbe , Lbe ) Lbe .
51
(4.16)
ln
exp[ L01
e
e ]
B
B
1 exp[ Lbe ]
1 exp[ Lbe ]
A
B
exp[ Lbe ] exp[ Lbe ]
ln
( p(uk 01) p(uk 00))
1 exp[ LBbe ]
(4.17)
A
B
( Lbe
0 & & Lbe
0)
A
Lbe
A
B
exp[ LBbe ] exp[ Lbe
] 1 exp[ Lbe
]
L01
ln
exp[ L10
]
e
e
A
A
1 exp[ Lbe ]
1 exp[ Lbe ]
A
A
10
ln 1 exp[ Lbe
L10
e ] Lbe Le
(4.18)
A
( from (17), L10
e Lbe )
B
10
01
L11
e ln exp[ Lbe ] (1 exp[ Le ]) exp[ Le ]
(4.19)
A
B
10
A
LBbe L10
e Lbe Lbe ( from (17), Le Lbe )
L10
e 0,
A
B
L11
e Lbe Lbe
(4.20)
1
A
B
1 exp[ Lbe
] exp[ Lbe
]
52
A
be
B
0 & & Lbe
0
(4.21)
A
B
L11
e ln 1 exp[ Lbe ] exp[ Lbe ]
ln
1
B
be ]
L ]
1
1 exp[
exp[ L ] 1 exp[ L
A
B
exp[ Lbe
Lbe
]
A
B
exp[ Lbe ] exp[ Lbe
]
A
B
( Lbe
0 & & Lbe
0)
A
B
A
B
Lbe
Lbe
max Lbe
, Lbe
A
be
A
be
(4.22)
(4.23)
A
B
01
exp[ Lbe
] exp[ L10
e ] exp[ Lbe ] exp[ Le ]
B
A
10
Therefore, L01
e Lbe and Le Lbe .
53
LbeA = ln
LbeB
(Bit-Level)
LbeA
Extrinsic
B
Memory Lbe
Le01
Le10
Le11
DoubleBinary
SISO
Decoder #2
Case-I
(+/+)
Case-II
(+/)
Case-III
(/+)
Case-IV
(/)
Le01
MAX LbeA
LbeA + LbeB
LbeA + LbeB
MIN
Le10
MAX LbeB
LbeA
LbeA
Le11
MAX
LbeB
LbeB
LbeA
Bit-to-Symbol
Converter
(BSC)
Symbol-to-Bit
Converter
(SBC)
Le01
DoubleLe10
Binary
SISO
L 11
Decoder #1 e
* MAX
= max(LbeA, LbeB)
* MIN
= min(LbeA, LbeB)
54
Table 4.4 Single-port SRAM Size required for the Turbo Decoder
Forward Metric
Memory
Branch Metric
Memory
Border Metric
Memory
Extrinsic Info.
Memory
SISO x 1
Total
SISO x 5
Conventional [22]
Proposed
4480 bits/SISO
4480 bits/SISO
5120 bits/SISO
5120 bits/SISO
2*5180 bits
= 10360 bits
2*5180 bits
= 10360 bits
115200 bits
76800 bits
135160 bits
(100%)
173560 bits
(100%)
96760 bits
(71.6%)
135160 bits
(77.9 %)
signal-to-noise ratio (SNR), about less than 0.1dB, since the extrinsic information does not
need to be exact in decoding [4][5]. Consequently, we can reduce the number of extrinsic
information values to be exchanged without inducing a considerable loss of error
correcting capability.
55
SISO Decoder
Branch
Memory
Input
Forward
Memory
Le01
LbeA
A
Bit-Level Lbe
B
Extrinsic Lbe
Memory
LbeB
B
S
C
Le10
Metric
Calc.
Unit
Le11
Border
Memory
Le01
Le10
Data
Le
11
S
B
C
LbeA
LbeB
Read Address
Address
Interleaver
Address
Queue
Write Address
(delayed by the SISO latency)
LbeA LbeB
Bit-to-Symbol Converter (BSC)
MAX
ADD
Le11
ADD
Le10
SISO Decoder
with interleaver
47501 gates
(100%)
Bit-to-Symbol
Converter
430 gates
(0.9%)
ADD
Le01
Figure 4.6: Block diagram and complexity of the proposed bit-to-symbol converter
56
proposed BSC is negligible compared to that of the total SISO decoder including the
dedicated hardware interleaver and the hard-decision unit.
Since the amount of values per symbol required for m-ary extrinsic information is 2m-1,
the memory saving resulting from the proposed bit-level extrinsic information exchange
increases as m increases, although no results on performance loss have been reported yet
for m larger than 2.
57
Chapter 5
A 50Mbps Double-Binary Circular Turbo
Decoder for Mobile WiMAX
This chapter presents a double-binary turbo decoder developed for the WiMAX
standard. To reduce the large extrinsic memory needed in double-binary turbo decoding,
the proposed decoder exchanges the bit-level extrinsic information values rather than the
traditional symbol-level extrinsic information values by including two simple converters.
In addition, an optimized SISO decoder structure and a low-complexity hardware
interleaver are presented to achieve an area-efficient decoder implementation by generating
interleaved addresses for two data flows simultaneously. To verify the proposed
architecture, a double-binary turbo decoder is designed for WiMAX using a 0.13m
CMOS process. The decoder occupies an area of 2.24mm2 and provides up to 50Mbps
throughput at 200MHz with employing only a single SISO decoder.
58
where z belongs to
(5.1)
respectively, and we assume the binary phase shift keying modulation. The superscripts p
)
and s denote the parity bits and systematic bits, respectively. In (3), L(ez, IN
is the extrinsic
information received from the other SISO decoder. Since there are 16 unique branch
metrics in the double-binary turbo code, the branch metric memory size becomes
significant. Therefore, we propose a new branch metric recovery scheme which does not
store whole branch metric values, but stores only essential values required to recover the
branch metrics. From (3), we can obtain following relation;
(5.2)
L10i 2 y s1 ,
L11i 2 y s1 2 y s2
(5.3)
59
16 x 10 bits
STEP 1:
160bits
(100%)
8 x 7 bits
3 x 8 bits
STEP 2 [22]:
2 x 4 bits
3 x 9 bits
Li(z) +
STEP 3:
Le(z)
p1
p2
3 Extrinsic Info.
(Le01, Le10, Le11)
80bits
(50%)
5 bits
ys1+ys2
40bits
(25%)
Memory Size = Width * Depth
2 x 8 bits
STEP 4:
LeA
LeB
2 x 4 bits
ys1
ys2
2 x 4 bits
yp1
yp2
60
Le11 Le10
LbeA LbeB
Le01
ADD
MAX
MAX
MAX
MAX
MAX
+
ADD
ADD
ADD
ADD
ADD
Le11
LbeB
LbeA
(a)
Le10
Le01
(b)
Figure 5.2: Block diagram of the proposed (a) symbol-to-bit converter and (b) bit-tosymbol converter.
61
P0
5
11
13
11
7
11
13
17
11
11
13
13
53
43
43
31
53
P1
0
18
24
6
48
54
60
74
90
96
108
120
62
64
720
8
66
P2
0
0
0
0
24
56
0
72
0
48
0
60
12
300
360
24
24
P3
0
18
24
6
72
2
60
2
90
144
108
180
2
824
540
16
2
01
10
11
F/F
Addr[1:0]
MSB
(sign)
ADD
0
+
ADD
ADD
+
1
N
MSB
(sign)
permutated
address
ADD
P0
62
63
00
00
01
10
11
01
10
11
F/F
Addr_DEC[1:0]
+ADD
WRITE
ADDRESS
N
0
READ
ADDRESS
0
MSB
(sign)
PAddr_DEC
Addr_INC[1:0]
ADD
+
ADD
ADD
+
ADD
1
(0)
MSB
(sign)
MSB
(sign)
ADD
PAddr_INC
P0
(5.4)
At the end of SISO decoding, the proposed double-binary turbo decoder stops if the
following condition is satisfied for all pairs in a frame.
A
e
(5.5)
The proposed stopping criterion can be implemented with low hardware complexity as
64
SeA
SllrA
RST
D
STOP
EN
SeB
SllrB
CLK
Input
Forward
Memory
Lbe
LbeB
Lbe
Bit-Level
Extrinsic
Memory
Metric
Calc.
Unit
LbeB
Read
Address
Data
Address
Border
Memory
Le01
Le10
S
B
C
LbeA
LbeB
Le11
Double-Flow
Interleaver
Write
Address
65
8 maximum
iterations
24.26Mbps
50.20Mbps
32.35Mbps
Figure 5.9: Average number of iterations for the proposed turbo decoder
66
Table 5.2 Single-port SRAM Size Required for the Turbo Decoder
Forward Metric
Memory
Branch Metric
Memory
Border Metric
Memory
Extrinsic Info.
Memory
SISO x 1
Total
SISO x 4
Conventional [22]
Proposed
4480 bits/SISO
4480 bits/SISO
5120 bits/SISO
2048 bits/SISO
2*2072bits
= 4144 bits
2*2072bits
= 4144 bits
115200 bits
76800 bits
128944 bits
(100%)
157744 bits
(100%)
87472 bits
(67.8%)
107056 bits
(67.9 %)
1.4mm
Test ROM
1.6mm
Core
Border Buffer
One SISO Decoder
Dedicated Interleaver
MEMORY
MEMORY
MEMORY
Technology
Size
1.4mm x 1.6mm
Gate Count
(NAND2 Equiv.)
64.2K Gates
Operating
Frequency
200MHz
Figure 5.11: Die photo of the proposed double-binary turbo decoder chip
0.1dB, since the extrinsic information does not need to be exact in decoding [4][5]. The
memory size required for the proposed turbo decoder is summarized in Table 5.2. By
adopting the proposed bit-level extrinsic information exchange, the memory size required
for the extrinsic information is reduced to two-third of the conventional method as denoted
in Table IV. When several SISO decoders are adopted to achieve a higher throughput [23],
the size of the state metric memory should be increased, but the proposed conversion is
still effective in reducing the total memory size, as the extrinsic information memory is
much larger than the state metric memory as indicated in Table IV.
Figure 5.11 summarizes implementation results. The proposed turbo decoder is
67
implemented with 0.13m 1-poly 6-metal standard CMOS process. The decoder occupies
2.24mm2 and takes 4,948 cycles for each iteration to process a 2400-pair (4800 bit) frame.
As a result, the proposed decoder provides up to 50Mbps at the frequency of 200MHz.
68
Chapter 6
A Unified Parallel Radix-4 Turbo Decoder
for Mobile WiMAX and 3GPP-LTE
This chapter presents a unified parallel radix-4 turbo decoder architecture developed
for supporting both the Mobile WiMAX and the 3GPP-LTE standards. To exhibit a
decoding rate of more than 100Mb/s with lower power consumption, the proposed decoder
mainly consists of eight retimed radix-4 SISO decoders and a dual-mode parallel hardware
interleaver to support both the almost regular permutation (ARP) interleaver and the
quadratic polynomial permutation (QPP) interleaver defined in two standards. A prototype
chip supporting both Mobile WiMAX and 3GPP-LTE standards is fabricated using a
0.13m CMOS process. The decoder core occupies 10.7mm2 and can exhibit a decoding
rate of more than 100Mb/s with eight iterations while achieving an energy efficiency of
0.31nJ/bit/iter for both standards.
69
yA, yB(Systematic)
yY, yW(Parity)
SBC
Frame
MEM
Branch
Buffer
dA
LbeB
Reduced
Memory Size
LbeA
(Bit-Level)
BSC
Border
Buffer
Decision
MEM
LbeA
Metric
Calc.
Unit
Forward
Buffer
LbeB
Extrinsic
MEM
dB
Sign(LbeA)
Sign(LbeB)
dA
dB
Stop decoding if
(dA == Sign(LbeA) && (dB == Sign(LbeB))
for all pairs in a frame
STOP
70
Frame
MEM #0
Decision
MEM #0
Frame
MEM #1
Extrinsic
MEM #0
Decision
MEM #1
Extrinsic
MEM #1
Frame
MEM #7
Decision
MEM #7
Extrinsic
MEM #7
READ / WRITE
Exchange Network
Radix-4
Radix-4
Radix-4
SISO #0
SISO #1
SISO #7
Figure 6.2: The Proposed Chip Architecture with Eight SISO Decoders
SISO decoders are activated. For the deactivated SISO decoders, their clocks are gated to
reduce the power consumed in such decoders. Each SISO decoder reads/writes the
appropriate values from/to the specific memory determined by the address provided by the
interleaver, and can access the exchange networks independently without collision due to
the collision-free property of the ARP/QPP interleavers defined in Mobile WiMAX/3GPPLTE standards [31].
71
-(0)/(0)
: Normalization
: Flip Flop
1
CMP
CMP
CMP
CMP
2
3
2
CMP
CMP
Td = 2TCMP + 2TADD
Td = 2TCMP + TADD
Not Stored
in Forward Buffer
CMP
1
CMP
1
2
CMP
CMP
2
3
CMP
2
3
CMP
3
4
Td = 2TCMP
Td = 2TCMP + TADD
4
Metric to be stored in
Forward Buffer
72
2W
2T
Processing Time
as shown in Figure 6.3. The new metrics to be kept during the recursion in
forward/backward directions can be expressed as follows.
( z ) sk k ( sk ) ( z ) ( sk sk 1 )
(6.1)
( z ) sk ( z ) ( sk sk 1 ) k 1 ( sk 1 )
(6.2)
k 1
k 1
k 1
73
(6.3)
Frame MEM
Frame MEM
yW1
yY1
yp2
For even
time index
(k = 0, 2, )
yS1
yW2
yp1
yp2
For odd
time index
yY2
yS2
Parity
Input
Systematic
Input
ys
yp1
ys
Parity
Input
Systematic
Input
(k = 1, 3, )
(a)
(b)
Figure 6.5: Input Frame Memory Configurations for (a) Double-Binary Turbo
Decoding Mode and (b) Radix-4 Single-Binary Turbo Decoding Mode
(kz ) max k sk k(z1) sk max k sk k(00)
sk
1
( sk sk 1 , z )
( sk sk 1 ,00)
(6.4)
74
be shared by radix-4 single-binary turbo decoding which also requires two extrinsic
information values to be exchanged.
As shown in Figure 6.5(a), six memory banks are required to store input frames in
double-binary turbo decoding mode (two systematic inputs and four parity inputs). For the
input memory sharing, parity property of the QPP interleaver in 3GPP-LTE, which means
that even (odd) positions in the input are mapped to even (odd) positions in the output, is
exploited. Even in the second SISO decoding where the values are read in an interleaved
order, memory configuration shown in Figure 6.5(b) can avoid two values required for
each cycle to reside in the same memory due to the parity property. Therefore, the
proposed memory partitioning according to the parity of the time index is useful in radix-4
processing.
(6.5)
where 0 i N-1 is the sequential index of the symbol positions after interleaving, (i) is
the symbol index before interleaving corresponding to position i, P0 and O are constant
values defined in standard, and d(i) is also constant values determined by two LSBs of i.
Efficient implementation of the ARP interleaver based on incremental calculation is
proposed in the first chip implementation where P0 is accumulated and added to an initial
value selected by two LSBs as shown in Figure 6.6.
Similarly, the QPP interleaver defined as follows can be rearranged to share the
hardware resources with ARP interleaver.
(i ) f1 i f 2 i 2 mod N
where f1 and f2 are the coefficients defined in the standard [27].
By rearranging (6.6) in the recursive form, we can obtain the following relation.
75
(6.6)
10
01
11
Addr[1:0]
F/F
mode
ADD
N
0
+
ADD
0
F/F
MSB
(sign)
ADD
0
+
ADD
ADD
+
1
0
N
MSB
(sign)
MSB
(sign)
ADD
+
1
N
MSB
(sign)
ADD
F/F
ADD
F/F
mode
8f2
8f2
P0
(2m)/(i)
(2m+1)
Not Activated
@ Mobile WiMAX
(i 1) f1 (i 1) f 2 (i 1)2 mod N
( (i) (i)) mod N
(6.7)
76
0.13
[30]
[9]
[20]
WiMAX
HSDPA
HSDPA
UMTS/
CDMA2000
Double-Binary
Max-log-MAP
Radix-2
Single-Binary
Max-log-MAP
Radix-4
Single-Binary
Log-MAP
Radix-2
Single-Binary
Log-MAP
0.13
0.13
0.18
0.25
1.2 (0.9 )
1.2
1.2
1.8
2.5
Gate Count
800K
(including 300K
for Buffers)
64.2K
44.1K
410K
34.4K
10.7
2.2
1.2
14.5 (7.32)
8.9 (2.22)
24.3
14.0
18.0 (24.92)
4.1 (7.92)
0.63
0.7
10.0 (2.72)
6.9 (0.92)
Energy
Efficiency
[nJ/bit/iteration]
1st Chip
Implementation
CMOS
[m]
Supply Voltage
[V]
# of SISO
Decoders
Core Area
[mm2]
Max.
Throughput
[Mb/s]
with 8 iterations
2nd Chip
Implementation
Mobile WiMAX/
3GPP-LTE
Double-Binary/
Radix-4
Single-Binary
Max-log-MAP
187.5/186.0
@ 1.2V, 250MHz
1051/1041
@ 0.9V, 140MHz
0.61
@ 1.2V, 250MHz
0.341
@ 0.9V, 140MHz
6.1, the stopping criterion for the double-binary / radix-4 single-binary turbo decoding
proposed in the first chip implementation is adopted. Compared to the HDA criterion
[9][20], it does not require additional memory to store the decision bits and has no error
floor at high SNR. Figure 6.7 shows the frame-error rate (FER) performance obtained by
applying the proposed early termination and the effect of the stopping criterion. Table 6.1
compares the characteristics of the developed turbo decoder with previous turbo decoders.
A prototype chip containing eight SISO decoders, hardware interleavers, and on-chip dualport SRAMs is fabricated in a 0.13m CMOS process with 8 metal layers. The decoder
core occupies 10.7mm2 and operates at a maximum frequency of 250MHz due to the
actively applying the retiming technique to the complex ACS operation as shown in Figure
6.3. As denoted in Table 6.1 and Table 6.2, the proposed decoder achieves an energy
77
Vdd = 1.2V
187.5Mb/s @ WiMAX
186.0Mb/s @ LTE
105Mb/s @ WiMAX
104Mb/s @ LTE
Vdd = 0.9V
WiMAX : 4800bits
LTE : 6144bits
WiMAX : 480bits
LTE : 480bits
Vdd = 1.2V
408Mb/s @ WiMAX
478Mb/s @ LTE
228Mb/s @ WiMAX
267.5Mb/s @ LTE
Vdd = 0.9V
Figure 6.7: FER Performance and Average Iteration Number with Early Termination
in an AWGN Channel
78
3.10mm
MEM
#0
MEM
#1
MEM
#2
MEM
#3
MEM
#4
MEM
#5
MEM
#6
MEM
#7
Exchange Network
3.45mm
79
Chapter 7
Conclusions
For efficient nonbinary/high-radix single-binary turbo decoding, two techniques are
proposed. The first one, an energy-efficient SISO decoder based on border metric encoding,
eliminates the complex dummy calculation at the cost of a small-sized memory that holds
encoded border metrics. Due to the infrequent accesses to the border memory and its small
size, the energy consumed for SISO decoding is reduced hugely.
Also, to reduce the memory size required for double-binary turbo decoding, a new
method to convert the symbolic extrinsic information to the bit-level information and vice
versa is presented. By exchanging the bit-level extrinsic information, the number of
extrinsic information values to be exchanged in double-binary turbo decoding is reduced to
the same amount as single-binary turbo decoding. Since the size of the extrinsic
information memory is significant, the proposed method is effective in reducing the total
memory size needed in double-binary turbo decoder.
Based on the proposed algorithmic solutions, to verify the proposed methods, two chips
have been implemented. The first implemented chip contains a double-binary turbo
decoder for the mobile WiMAX standard with the dedicated hardware interleaver and
fabricated using a 0.13m CMOS process. The proposed decoder is based on the timemultiplexing architecture consisting of a single optimized SISO decoder, a low-complexity
hardware interleaver, and it can provide up to 50Mb/s at the frequency of 200MHz with
simple early stopping criterion exploiting the bit-level extrinsic information. The second
chip presents the unified radix-4 turbo decoder architecture which can support both Mobile
WiMAX and 3GPP-LTE. To exhibit a decoding rate of more than 100Mb/s, the proposed
chip consists of eight retimed radix-4 SISO decoders and a dual-mode parallel hardware
interleaver to support both standards. The second chip can show more than 400Mb/s at the
80
frequency of 250MHz with simple early stopping criterion. The proposed chip can achieve
an energy efficiency of 0.34nJ/bit/iteration while achieving more than 100Mb/s with fixed
eight iterations when the supply voltage is scaled since the peak operating frequency is
relatively high due to the retiming technique.
81
Reference
[1] C. Berrou, A. Glavieux, and P. Thitimajshima, Near Shannon limit error correcting
coding and decoding: Turbo codes, in Proc. Int. Conf. Commun., May 1993, pp. 1064
1070.
[2] C. Douillard and C. Berrou, Turbo Codes With Rate-m/(m+1) Constituent
Convolutional Codes, IEEE Trans. Commun., vol. 53, no. 10, pp. 16301638, Oct. 2005.
[3] Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems
Amendment for Physical and Medium Access Control Layers for Combined Fixed and
Mobile Operation in Licensed Bands, IEEE Std 802.16e/D5-2004, Nov. 2004.
[4] D. Garrett, B. Xu, and C. Nicol, Energy efficient turbo decoding for 3G mobile, in
Proc. ISLPED01, Aug. 2001, pp. 328333.
[5] J. Vogt, J. Ertel, and A. Finger, Reducing bit width of extrinsic memory in turbo
decoder realizations, Electron. Lett., vol. 36, no. 20, pp. 17141716, Sep. 2000.
[6] D. S. Lee and I. C. Park, Low-power log-MAP decoding based on reduced metric
memory access, IEEE Trans. Circuits Systm. I, Reg. Papers, vol. 53, no. 6, pp. 12441253,
Jun. 2006.
[7] H. M. Choi and J. H. Kim, and I. C. Park, Low-power hybrid turbo decoding based on
reverse calculation, in Proc. IEEE Int. Symp. Circuits Syst., 2006, pp. 20532056.
82
[8] A. Worm, P. Hoeher, and N. When, Turbo decoding without SNR estimation, IEEE
Commun. Lett., vol. 4, pp. 193195, June 2000.
[9] M. A. Bickerstaff, L. M. Davis, C. Thomas, D. Garett, and C. Nicol, A 24Mb/s radix-4
logMAP Turbo decoder for 3GPP-HSDPA mobile wireless, in Proc. IEEE Int. Solid-State
Circuits Conf. (ISSCC), Feb. 2003, pp. 150151.
[10] J. Vogt and A. Finger, Improving the Max-log-MAP turbo decoder, Electron. Lett.,
vol. 36, no. 23, pp. 19371939, Jun. 2000.
[11] S. J. Lee, R. Shanbhag, and A. C. Singer, Area-Efficient High-Throughput MAP
Decoder Architecture, IEEE Trans. Very Large Scale Integr. (VLSI) Syst., vol. 13, no. 8,
pp. 921933, Aug. 2005.
[12] S. Papaharalabos, P. Sweeny, and B. G. Evans, Constant log-MAP decoding
algorithm for duo-binary turbo codes, Electron. Lett., vol. 42, no. 12, pp. 709710, Jun.
2006.
[13] C. Zhan, T. Arslan, A. T. Erdogan, and S. MacDougall, An efficient decoder scheme
for double binary circular turbo codes, in Proc. IEEE ICASSP06, May 2006, pp. IV-229
IV-232.
[14] S. M. Park, J. Kwak, and K. Lee, Extrinsic Information Memory Reduced
Architecture for Non-Binary Turbo Decoder Implementation, in Proc. IEEE Vehicular
Technology Conference, May 2008, pp. 539543.
[15] J. B. Anderson and S. M. Hladik, Tailbiting MAP decoders, IEEE J. Sel., Areas
Commun., vol. 16, no. 2, pp. 297302, Feb. 1998.
83
[24] K. K. Parhi, VLSI Digital Signal Processing Systems: Design and Implementation.
New York: Wiley, 1999.
84
[25] C. Berrou et al., Designing good permutations for turbo codes: towards a single
model, in Proc. Int. Conf. Commun., May 2004, pp. 341345.
[26] B. Bougard et al., A scalable 8.7nJ/bit 75.6 Mb/s parallel concatenated convolutional
(turbo-) codec, in IEEE Int. Solid-State Circuits Conf. (ISSCC) Dig. Tech. Papers, 2003,
pp. 152153.
[27] 3GPP, Multiplexing and channel coding, 3GPP TS 36.212, V8.2.0, Mar. 2008.
[28] J. H. Kim and I. C. Park, Bit-Level Extrinsic Information Exchange Method for
Double-Binary Turbo Codes, IEEE Trans. Circuits Syst. II, Express Briefs, vol. 56, no. 1,
pp. 8185, Jan. 2009.
[29] J. H. Kim and I. C. Park, A 50Mbps Double-Binary Turbo Decoder for WiMAX
Based on Bit-level Extrinsic Information Exchange, IEEE Asian Solid-State Circuit
Conference (A-SSCC), 2008, pp. 305308.
[30] C. Benkeser, A. Burg, T. Cupaiuolo, and Q. Huang, A 58mW 1.2mm2 HSDPA Turbo
Decoder ASIC in 0.13m CMOS, in ISSCC Dig. Tech. Papers, 2008, pp. 264265.
[31] J. Kwak and K. Lee, Design of dividable interleaver for parallel decoding in turbo
codes, in IET Electron. Lett., vol. 38, no. 22, pp. 13621364, Oct. 2002.
85
Mobile WiMAX 3GPP-LTE
4
. , Nonbinary
Mobile WiMAX 3GPP-LTE
.
double-binary Single-binary
Radix-4
.
, Border Metric Encoding
SISO(soft-input soft-output)
, Bit-level Extrinsic Information Exchange doublebinary 2 SISO
.
incremental calculation
1 SISO Mobile WiMAX
0.13m .
double-binary
single-binary 2bit
radix-4 processing ,