Embodiment
Embodiments of the invention provide a kind of Turbo decoder and interpretation method thereof, can improve the performance and the throughput of Turbo decoder.
Below in conjunction with accompanying drawing the embodiment of the invention is described in detail.
What the Turbo decoder was realized is the inverse process of Turbo coding, as shown in Figure 1, is the Turbo encoder block diagram in the agreement.
Wherein, the Turbo encoder is output as:
x
1,z
1,z′
1,x
2,z
2,z′
2,......,x
K,z
K,z′
K,
x
K+1,z
K+1,x
K+2,z
K+2,x
K+3,z
K+3,x′
K+1,z′
k+1,x′
K+2,z′
K+2,x′
K+3,z′
K+3
What the Turbo decoder that the present invention realizes adopted is basic 4 algorithms, therefore the data of decoder being distributed to input-buffer, four buffer memory: A, B, Y1W1, Y2W2 buffer memory is for example arranged, and reads for the Turbo decoder, as follows:
A buffer memory: x
1, x
2..., x
k, x
K+1, x
K+2, x
K+3, x '
K+1, x '
K+2, x '
K+3
B buffer memory: x
1, x
2..., x
k, x
K+1, x
K+2, x
K+3, x '
K+1, x '
K+2, x '
K+3
Y1W1 buffer memory: z
1, z
2... .., z
k, z
K+1, z
K+2, z
K+3
Y2W2 buffer memory: z '
1, z '
2..., z '
k, z '
K+1, z '
K+2, z '
K+3
Block diagram is realized as shown in Figure 2 in the inside of decoder, after A, B, Y1W1, Y2W2 buffer memory input data, the length of data is informed interleaver, generates the table that interweaves, and softly goes into the soft SISO of going out module and interweaves according to this and show to carry out iterative decoding.
The Turbo decoder that embodiments of the invention provide as shown in Figure 3, comprising:
Data ping-pong buffer unit 301 is respectively applied for the buffer memory data to decode;
The table ping-pong buffer unit 302 that interweaves is used for the buffer memory table that interweaves;
Input Control Element 303 is used for when data table tennis buffer unit free time and data pang buffer unit take, and to data table tennis buffer unit input data to decode, and informs data to decode length to interleave unit 304; Perhaps when data pang the buffer unit free time, and data table tennis buffer unit is when taking, and to data pang buffer unit input data to decode, and informs data to decode length to interleave unit 304;
Interleave unit 304 is used to receive the data to decode length of the data table tennis buffer unit of informing from Input Control Element 303, generates to interweave table and deposit the table table tennis buffer unit that interweaves in; Perhaps receive the data to decode length of data pang the buffer unit of informing from Input Control Element 303, generating interweaves shows and deposits in table pang the buffer unit that interweaves;
Softly go into the soft SISO unit 305 that goes out, be used for the data to decode of data table tennis buffer unit storage being carried out iterative computation, obtain decode results according to the table that interweaves of the table table tennis buffer unit storage that interweaves; Perhaps the data to decode of data pang buffer unit being stored according to the table that interweaves of table pang the buffer unit storage that interweaves carries out iterative computation, obtains decode results.
Wherein, data ping-pong buffer unit 301 can be specially A, B, Y1W1, Y2W2 buffer memory in practice.
The Turbo decoder that the embodiment of the invention provides, adopt data ping-pong buffer unit and interweaved table ping-pong buffer unit, when data table tennis buffer unit free time and data pang buffer unit take,, and inform data length to the table table tennis buffer unit that interweaves to data table tennis buffer unit input data; Perhaps when data pang buffer unit free time and data table tennis buffer unit takies,, and inform data length to table pang the buffer unit that interweaves to data pang buffer unit input data; Therefore, can the ping-pong buffer data, and start the table ping-pong buffer unit that the interweaves table that becomes to interweave.The time has been saved in the input of this data and distribution, has improved degree of parallelism, thereby has improved efficient and throughput.
Further, in another embodiment of the present invention, as shown in Figure 4, data ping-pong buffer unit 301 specifically comprises:
Data table tennis cache module 301A, data pang cache module 301B;
Have, the table ping-pong buffer unit 302 that interweaves also specifically comprises again:
Interweave and show table tennis cache module 302A, table pang cache module 302B interweaves.
The Turbo decoder that further embodiment of this invention provides, as shown in Figure 5, the iterative decoding that carries out in SISO unit 303 is to adopt sliding window algorithm to add gama computing module, beta training module, alpha computing module, beta computing module to realize that so-called sliding window algorithm also is by limiting the maximum number of cell that can receive in each time window traffic carrying capacity to be controlled.In addition, alpha computing module, beta training module, beta computing module, gama computing module and input data computing relation are as follows:
The gama computing module need be used A, B, Y1W1, Y2W2 buffer memory;
Alpha computing module and beta training module, beta computing module all to use the gama computing module the result;
The alpha computing module order and the gama computing module of each window, the computation sequence of beta computing module, beta training module is opposite;
The input data of N window need be finished in the time of N+2 window.
Its SISO is inner to be realized as shown in Figure 5, the gama computing module calculates window since N+1, calculate the 0th always and calculate window, calculate the result of calculation that each window obtains each window, the beta training module will use the gama computing module to calculate the result who works as front window, the alpha computing module will use the gama computing module to calculate the computer result of next window gained, and the beta computing module will use the gama computing module to calculate the result of calculation of two windows down.
Therefore, as shown in Figure 7, SISO provided by the invention unit 305 comprises:
Gama computing module 305A is used for obtaining data from data ping-pong buffer unit 301, calculates result of calculation, deposits result of calculation in memory module 305B, and sends this result of calculation to Bata training module 305C;
Memory module 305B, the result of calculation that is used to store Gama computing module 305A;
Bata training module 305C is used for obtaining the result of calculation of Gama computing module from the Gama computing module or from memory module, calculates;
Alpha computing module 305D is used for obtaining from memory module 305B the result of calculation of Gama computing module 305A, calculates;
Bata computing module 305E is used for obtaining from memory module 305B the result of calculation of Gama computing module 305A, calculates.
Wherein, memory module 305B is three, and first memory module 305B1 storage is when the result of calculation of the Gama computing module of front window; The second memory module 305B2 stores the result of calculation of the Gama computing module of next window; The 3rd memory module 305B3 storage is the result of calculation of the Gama computing module of two windows down, every calculating one window of Gama computing module just deposits data in a memory module, when three memory modules all deposit in after one time, once more since the first memory module 305B1, the circulation storage; It realizes circuit as shown in Figure 6;
Concrete, Bata training module 305C can directly obtain result of calculation when front window from Gama computing module 305A, also can obtain the result of calculation when front window from the first memory module 305B1, calculates;
Alpha computing module 305D calculates from the result of calculation that the second memory module 305B2 obtains the Gama computing module 305A of next window;
Bata computing module 305E calculates from the result of calculation that the 3rd memory module 305B3 obtains down the Gama computing module 305A of two windows.
Further, Bata training module 305C, Alpha computing module 305D and Bata computing module 305E parallel processing.
Three memory modules in the present embodiment can realize with memories such as RAM in practice.
The Turbo decoder that the embodiment of the invention provides, in the SISO internal configurations three memory modules, be used for storing respectively the result of calculation of Gama computing module when front window, next window and following two windows, therefore, Bata training module, Alpha computing module and Bata computing module can get access to the result of calculation of required Gama computing module from three memory modules, thereby can realize parallel processing, save and calculated the time, improve efficient and throughput.
The Turbo decoder for decoding method that the embodiment of the invention provides comprises: data ping-pong buffer unit is set and interweaves table ping-pong buffer unit; As shown in Figure 8, the step of this method comprises:
S801, when data table tennis buffer unit free time and data pang buffer unit take, to data table tennis buffer unit input data to decode,, generate and interweave table and deposit the table table tennis buffer unit that interweaves in according to data to decode length; Perhaps when data pang the buffer unit free time, and data table tennis buffer unit is when taking, and to data pang buffer unit input data to decode, according to data to decode length, generates and interweaves table and deposit table pang the buffer unit that interweaves in;
S802, there is data to decode and the table table tennis buffer unit that interweaves stores when interweaving table accordingly when data table tennis buffer unit, show the data to decode of data table tennis buffer unit storage is carried out iterative computation according to the interweaving of table table tennis buffer unit storage that interweave, obtain decode results; Perhaps there is data to decode and table pang the buffer unit that interweaves stores when table of interweaving accordingly when data pang buffer unit, the data to decode of data pang buffer unit being stored according to the table that interweaves of table pang the buffer unit storage that interweaves carries out iterative computation, obtains decode results.
The Turbo decoder for decoding method that the embodiment of the invention provides, adopt data ping-pong buffer unit and interweaved table ping-pong buffer unit, when data table tennis buffer unit free time and data pang buffer unit take, to data table tennis buffer unit input data, and show the table tennis buffer unit to interweaving and inform data length; Perhaps when data pang buffer unit free time and data table tennis buffer unit takies,, and inform data length to table pang the buffer unit that interweaves to data pang buffer unit input data; Therefore, can the ping-pong buffer data, and start the table ping-pong buffer unit that the interweaves table that becomes to interweave.The time has been saved in the input of this data and distribution, has improved degree of parallelism, thereby has improved efficient and throughput.
Further, in another embodiment of the present invention, as shown in Figure 9, among the above-mentioned steps S802 data to decode is carried out iterative computation, obtain decode results, use Gama computing module, memory module, Bata training module in the SISO unit, Alpha computing module, Beta computing module, data to decode is carried out iterative computation, obtain decode results and specifically can comprise the steps:
S901, Gama computing module obtain the input data from data ping-pong buffer unit, calculate result of calculation;
S902, described result of calculation is deposited in the memory module;
S903, Bata training module are from the Gama computing module or obtain the result of calculation of Gama computing module from the storage mould is determined, and calculate;
S904, Alpha computing module obtain the result of calculation of Gama computing module from memory module, calculate;
S905, Bata computing module obtain the result of calculation of Gama computing module from memory module, calculate.
Wherein, step S902 specifically comprises:
Three memory modules are set, comprise: first memory module, second memory module, the 3rd memory module;
The Gama computing module calculates the result of calculation when front window, deposits result of calculation in first memory module;
The Gama computing module calculates the result of calculation of next window, deposits result of calculation in second memory module;
The Gama computing module calculates the result of calculation of two windows down, deposits result of calculation in the 3rd memory module;
Same as the previously described embodiments, every calculating one window of Gama computing module just deposits data in a memory module, when three memory modules all deposit in after one time, and once more since first memory module, the circulation storage.
So, step S903, step S904 and step S905 are specially;
The Bata training module obtains result of calculation when front window from Gama computing module or first memory module, calculates;
The Alpha computing module obtains the result of calculation of the Gama computing module of next window from second memory module, calculate;
The Bata computing module obtains down the result of calculation of the Gama computing module of two windows from the 3rd memory module, calculate;
Because this three memory modules have been arranged, above-mentioned steps S903, step S904 and step S905 can parallel processings.
The Turbo decoder for decoding method that the embodiment of the invention provides, in the SISO internal configurations three memory modules, be used for storing respectively the result of calculation when front window, next window and following two windows of Gama computing module, therefore, Bata training module, Alpha computing module and Bata computing module can get access to the result of calculation of required Gama computing module from three memory modules, thereby can realize parallel processing, save and calculated the time, improve efficient and throughput.
One of ordinary skill in the art will appreciate that all or part of flow process that realizes in the foregoing description method, be to instruct relevant hardware to finish by computer program, described program can be stored in the computer read/write memory medium, this program can comprise the flow process as the embodiment of above-mentioned each side method when carrying out.Wherein, described storage medium can be magnetic disc, CD, read-only storage memory body (Read-Only Memory, ROM) or at random store memory body (Random Access Memory, RAM) etc.
The above; only be the specific embodiment of the present invention, but protection scope of the present invention is not limited thereto, anyly is familiar with those skilled in the art in the technical scope that the present invention discloses; can expect easily changing or replacing, all should be encompassed within protection scope of the present invention.Therefore, protection scope of the present invention should be as the criterion by described protection range with claim.