Patent ID: 8572470

Claim:
A method of decoding a turbo code by a decoder implementing the Balh-Cocke-Jelinek-Raviv (BCJR) algorithm, the method comprising: a) iteratively calculating forward metrics and backward metrics according to maximum a posteriori (MAP) type algorithm; b) storing each of the forward metrics as they are calculated in sequence beginning from a head position of a memory unit having a plurality of storage locations equal in number to a length of the turbo code, wherein the plurality of storage locations are initially unloaded with any of the forward metrics or the backward metrics; c) storing each of the backward metrics as they are calculated in sequence beginning from a tail position of the memory unit; d) after a number of the forward metrics and a number of the backward metrics fill up all of the initially unloaded storage locations of the memory unit, iteratively calculating a plurality of extrinsic information corresponding to the forward metrics and the backward metrics stored in the memory unit, wherein at least one of the forward metrics already used for calculating its corresponding one of the plurality of extrinsic information is overwritten in its corresponding storage location by one of the backward metrics calculated after the at least one of the forward metrics, and wherein at least one of the backward metrics already used for calculating its corresponding one of the plurality of extrinsic information is overwritten in its corresponding storage location by one of the forward metrics calculated after the at least one of the backward metrics.