WO2013067697A1 - Parallel decoding method and turbo decoder - Google Patents

Parallel decoding method and turbo decoder Download PDF

Info

Publication number
WO2013067697A1
WO2013067697A1 PCT/CN2011/082028 CN2011082028W WO2013067697A1 WO 2013067697 A1 WO2013067697 A1 WO 2013067697A1 CN 2011082028 W CN2011082028 W CN 2011082028W WO 2013067697 A1 WO2013067697 A1 WO 2013067697A1
Authority
WO
WIPO (PCT)
Prior art keywords
buffer
interleaver
data
module
interleaving
Prior art date
Application number
PCT/CN2011/082028
Other languages
French (fr)
Chinese (zh)
Inventor
王毅
刘勇
王书歌
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Priority to PCT/CN2011/082028 priority Critical patent/WO2013067697A1/en
Publication of WO2013067697A1 publication Critical patent/WO2013067697A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • H03M13/2775Contention or collision free turbo code internal interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving

Definitions

  • the present invention relates to decoding processing techniques, and in particular, to a parallel decoding method and a turbo decoder. Background technique
  • Turbo code is an efficient channel coding method. Its essence is a variant of convolutional code. It is characterized by high complexity of coding and decoding, large delay, but excellent error performance. It is suitable for long code blocks with large data volume. And data transmission that does not require high latency.
  • the great advantage of Turbo code is that it can satisfactorily satisfy the random condition in Shannon channel coding theory, and iterative decoding is used to obtain the coding gain, so the ultimate performance close to Shannon limit can be obtained.
  • the turbo decoder includes two soft input soft output (SISO) decoding units (first decoding unit 101, second decoding unit 103) connected to each other by a first interleaver 102.
  • the output of the second decoding unit 103 is connected to the second interleaver 104 for deinterleaving, and the output of the second interleaver 104 is connected to the first decoding unit 101 and the hard decision module 105.
  • the Turbo decoder receives the externally sent three-way data, that is, the system bit sb, the uninterleaved first parity bit ⁇ , and the interleaved second parity bit pi, and the output data of each decoding unit is externally assigned.
  • the information (abl, ab2) is input as a priori information, systematic bits (sb) and check bits ( ⁇ or pi).
  • the decoding process of the turbo decoder is an iterative process.
  • the extra assignment information ab2 output by the second decoding unit 103 is deinterleaved by the second interleaver 104 and is used as the a priori information of the first decoding unit 101.
  • the input of the first decoding unit 101 further includes a system bit sb and a first parity bit ⁇ ; the external assignment information abl output by the first decoding unit 101 is interleaved by the second interleaver 102 as a second
  • the a priori information of the decoding unit 103 performs auxiliary decoding, and at the same time, the input of the second decoding unit 103 further includes the interleaved system bit sb and the second check ratio.
  • the pi is repeated iteratively until the hard bit data hdb output by the hard decision module 105 satisfies the decoding requirement or the number of iterations reaches the specified value.
  • the hardware structures of the first decoding unit 101 and the second decoding unit 103 are identical, and there is no simultaneous decoding. Therefore, the two decoding units can be designed as the same set of circuits, and are time-multiplexed. Sharing, saving hardware resources.
  • the first decoding unit 101 and the second decoding unit 103 mainly implement a log-domain Max-Log-MAP algorithm, in which multiplication and exponential operations are simplified to addition and maximum operations, thereby reducing computational complexity. , Conducive to hardware implementation.
  • Turbo decoders which are one of the key components in mobile communication terminal systems, are also subject to higher requirements, on the one hand, to meet the speed of the system, and on the other hand, to reduce the size of the hardware circuit as much as possible.
  • the existing Turbo decoder can only support one mode, or only supports Long-Term Evolution (LTE) mode, or only (TD/W, TD-SCDMA/WCDMA/HSPA+) mode.
  • the main object of the present invention is to provide a parallel decoding method and decoder for solving the multi-mode compatibility problem of the turbo decoder.
  • another object of the present invention is to solve the Turbo decoder in the TD. Parallel interleaving problem in /W mode, making multimode of Turbo decoder Compatibility is more optimized.
  • the present invention provides an interleaver, the interleaver including: an LTE interlace module, a TD/W interlace module, and a selector;
  • the LTE interleaving module is configured to perform interlace processing and/or deinterleave processing on the input data and the a priori information in the LTE mode;
  • the TD/W interleaving module is configured to perform TD/W mode interleaving processing and/or deinterleaving processing on the input data and the a priori information;
  • the selector is configured to select data obtained by outputting the LTE interleaving module or data obtained by the TD/W interworking module.
  • the present invention also provides a Turbo decoder, the Turbo decoder comprising: a first interleaver and a second interleaver;
  • the first interleaver includes a first LTE interlace module, a first TD/W interleaving module, and a first selector, where the first LTE interleaving module is configured to perform input data and external information obtained by the last MAP iteration.
  • the interleaving process of the LTE mode, the first TD/W interleaver is configured to perform TD/W mode interleaving processing on the input data and the external assignment information obtained by the last MAP iteration, and the first selector is configured to use the preset mode according to the preset mode. Selecting to output the interleaved data obtained by the first LTE interleaving module or the interleaved data obtained by the first TD/W interleaving module;
  • the second interleaver includes a second LTE interlace module, a second TD/W interleaving module, and a second selector, where the second LTE interleaving module is configured to deinterleave the external assignment information output by the parallel MAP unit in the LTE mode.
  • the second TD/W interleaving module is configured to perform de-interleaving processing and/or de-interleaving processing in the TD/W mode on the external assignment information output by the parallel MAP unit, and the second selector is configured to select according to the preset mode. And outputting data obtained by the second LTE interleaving module or data obtained by the second TD/W interleaving module.
  • the Turbo decoder further includes: a prior information buffer, a system ratio a special buffer, a parity bit buffer, a parity bit selector, a parallel MAP unit, and a main control module;
  • the main control module issues a read command to the a priori information buffer, the system bit buffer and the check bit buffer, and the a priori information buffer and the system bit buffer are received by the main control module.
  • the a priori information ab and the systematic bit sb are respectively output to the first interleaver, and the first interleaver performs interleaving processing on the input data according to a preset mode, and outputs the interleaved data or directly inputs the input data.
  • Data is output to the parallel MAP unit;
  • the check bit buffer After receiving the read command issued by the main control module, the check bit buffer outputs a first check bit ⁇ or a second check bit pi to the parallel MAP unit through a check bit selector;
  • the parallel MAP unit performs MAP calculation processing on the data of the input itself, and outputs the obtained MAP calculation result to the second interleaver; the second interleaver deinterleaves the input data according to a preset mode. / or deinterleaving processing to output de-interleaved and / or deinterleaved data or directly output the input data to the a priori information buffer.
  • the turbo decoder further includes: a buffering device connected between the second TD/W interleaving module and the a priori information buffer, or as a component of the second TD/W interleaving module The prior information buffer is connected;
  • the cache device includes N first FIFO groups and N select one selectors, and a first in first out group is connected to an N select selector, wherein each FIFO group includes N first in first out buffers (FIFO), the N inputs of an N-selector are connected to the outputs of N FIFOs in a FIFO grou; where N represents the maximum value of the number of parallel decoded data paths, and N is the power of 2.
  • the parallel MAP unit includes N MAP sub-units; the a priori information buffer, the system bit buffer, and the check bit buffer are evenly divided into N sub-blocks (Bank).
  • the MAP subunit includes: a Beta overlap reverse recursive module and a Beta sliding window reverse recursive module, wherein the beta overla reverse recursive module is configured to calculate an overlap portion of the beta sliding window, and the beta sliding window is reversely delivered.
  • the push module is used to calculate the sliding window portion of the beta sliding window.
  • the system bit buffer, and the first parity bit buffer and the second parity bit buffer in the parity bit buffer all adopt a ping-pong structure, and each buffer includes one ping ( Ping sub-buffer and a pang sub-buffer; the total memory bank size of each sub-buffer is 6144.
  • the system bit buffer, the first parity bit buffer, and the second parity bit buffer respectively comprise two parts, one part of the memory group length is 5120, and the other part of the memory group length is 1024.
  • the present invention also provides a parallel decoding method, the method comprising: performing interleaving processing on multiple data through a first interleaver in a turbo decoder, and performing parallel MAP calculation through a parallel MAP unit, according to the foregoing The multi-path row address generated by the second interleaver and the sequence of outputting the multiplexed data by the parallel MAP unit, buffering the de-interleaved and/or de-interleaved multiplexed data and the multiplexed column address generated by the second interleaver to In the buffer device of the turbo decoder, the multiplexed data buffered by the buffer device and the corresponding column address are output to the a priori information buffer.
  • the de-interleaved and/or de-interleaved multiplexed data and the first according to the multiplexed row address generated by the second interleaver and the parallel MAP unit outputting multiplexed data Buffering the multiplexed column address generated by the second interleaver into the buffer device of the turbo decoder includes: inputting the multiplexed data output by the parallel MAP unit to the row address generated by the second interleaver Corresponding multiple FIFO groups in the cache device, and then generating the multiplexed a priori information and the second interleaver output by the MAP unit according to the sequence in which the parallel MAP unit outputs the multiplexed data
  • the column address corresponds to the FIFO buffer stored in each FIFO group.
  • the outputting the multiplexed data cached by the cache device includes: Each N-selector in the cache device selects and outputs data buffered by the FIFO buffer with the most stagnation data in each FIFO group and a corresponding column address to a plurality of sub-blocks of the a priori information buffer.
  • the performing parallel MAP calculation by the parallel MAP unit includes: performing, by the MAP subunits in the parallel MAP unit, MAP calculation, output, and a priori information ab, system bit sb, and parity bit pb of the input itself.
  • a priori information ab for the external information eb and the hard bit hdb, including the Alpha calculation process and the Beta calculation process;
  • the Alpha calculation process and the Beta calculation process include: dividing each beta sliding window into "overlap” and "sliding window", setting the overlap and the sliding window to have the same length; when performing the calculation, the first beat is calculated first.
  • the overlap portion of the beta sliding window, the second beat calculates the sliding window portion of the first beta sliding window, and calculates the overlap portion of the second beta sliding window.
  • the third beat calculates the alpha value of the first sliding window and The outer information eb and the hard bit hdb are obtained, and the beta sliding window portion of the second sliding window is calculated, and the overlap portion of the third sliding window is calculated, and so on, until the last beta value and alpha value are obtained.
  • the Turbo decoder provided by the invention comprises an interleaver compatible with the LTE mode and the TD/W mode, realizes multi-mode compatibility of the Turbo decoder, and can realize parallel decoding in the TD/W mode, and solves the TD.
  • the parallel interleaving problem in /W mode enables the LTE mode Turbo decoder and the TD/W Turbo decoder to be combined into one, achieving the goal of reducing the hardware scale.
  • FIG. 1 is a schematic structural diagram of a Turbo decoder in the prior art
  • FIG. 2 is a schematic structural diagram of a Turbo decoder according to an embodiment of the present invention.
  • FIG. 3 is a schematic diagram of a parallel decoding process performed by a Turbo decoder according to Embodiment 2 of the present invention
  • FIG. 4 is a schematic structural diagram of a buffer device in a Turbo decoder according to Embodiment 2 of the present invention
  • FIG. 6 is a schematic diagram of a composition structure of a MAP subunit and a MAP calculation process according to Embodiment 4 of the present invention.
  • the basic idea of the present invention is to provide an interleaver and a turbo decoder that are compatible with the LTE mode and the TD/W mode, and implement parallel decoding in the TD/W mode based on the Turbo decoder.
  • the interleaver includes: an LTE interlace module, a TD/W interleaving module, and a first selector, where the LTE interleaving module is configured to use the input data and the last MAP iteration
  • the TD/W interleaving module is configured to perform interleaving processing and/or interleaving processing in the TD/W mode on the input data and the external assignment information obtained by the last MAP iteration.
  • Deinterleave processing a selector, configured to select data obtained by outputting the LTE interleaving module or data obtained by the TD/W interleaving module.
  • the turbo decoder includes: a first interleaver and a second interleaver, wherein the first interleaver includes a first LTE interlace module, and a first TD/W interleaving module And the first selector, the first LTE interleaver module is configured to perform inter-LTE processing on the input data and the external assignment information obtained by the last MAP iteration, where the first TD/W interleaver is used to input the data.
  • the first selector is configured to select, according to the preset mode, output the interleaved data obtained by the first LTE interlacing module or the interleaved data obtained by the first TD/W interleaving module;
  • the second interleaver includes a second LTE interlace module, a second TD/W interleaving module, and a second selector, where the second LTE interleaving module is configured to deinterleave the external assignment information output by the parallel MAP unit in the LTE mode.
  • the second TD/W interleaving module is configured to perform TD/W on the external assignment information output by the parallel MAP unit
  • the de-interleaving (even times, the same below) and/or de-interleaving processing, de-interleaving and/or de-interleaving processing of the pattern is buffered in the a priori information buffer as a priori information for the next MAP iteration.
  • the second selector is used to select according to a preset mode And outputting data obtained by the second LTE interleaving module or data obtained by the second TD/W interleaving module.
  • the TD/W mode deinterleaving is performed in an even number of MAP iterations, and the TD/W mode deinterleaving is performed in an odd number of MAP iterations.
  • the Turbo decoder further includes: a prior information buffer, a system bit buffer, a parity bit buffer, a parity bit selector, a parallel MAP unit, and a main control module;
  • the main control module issues a read command to the a priori information buffer, the system bit buffer and the check bit buffer, and the a priori information buffer and the system bit buffer are received by the main control module.
  • the a priori information ab and the systematic bit sb are respectively output to the first interleaver, and the first interleaver performs interleaving processing on the input data according to a preset mode, and outputs the interleaved data or directly inputs the input data.
  • Data is output to the parallel MAP unit;
  • the check bit buffer After receiving the read command issued by the main control module, the check bit buffer outputs a first check bit ⁇ or a second check bit pi to the parallel MAP unit through a check bit selector;
  • the parallel MAP unit performs MAP calculation processing on the data of the input itself, and outputs the obtained MAP calculation result to the second interleaver; the second interleaver deinterleaves the input data according to a preset mode. And/or deinterleaving processing, outputting the deinterleaved and/or deinterleaved data to the a priori information buffer, or directly outputting the input data to the a priori information buffer.
  • the de-interleaving process is for the TD/W mode, and the LTE mode does not require de-interleaving.
  • TD/W mode when the number of MAP iterations is even, the calculation result of the parallel MAP unit output is itself uninterleaved positive sequence data, so deinterleaving is performed without deinterleaving.
  • the purpose of deinterleaving is to The interleaved data is directly read from the a priori information buffer with the positive sequence address at the next odd MAP iteration, thus solving the memory conflict problem of the multiple parallel interleaving in the TD/W mode.
  • the order of the data after the de-interlacing process is actually the order after the interleaving.
  • the second TD/W interleaving module further includes a buffer device connected to the second Between the TD/W interleaving module and the a priori information buffer, or as a component internal to the second TD/W interleaving module, the a priori information buffer, the buffer device comprising N first in first out groups (FIFO groups) And N select one selectors, a first in first out group is connected to an N select one selector, wherein each FIFO group includes N first in first out buffers (FIFOs), and N selects one input N input The end is connected to the output of N FIFOs in a FIFO grou; where N represents the maximum value of the number of parallel decoded data paths, and N is the power of 2.
  • the parallel MAP unit includes N MAP sub-units; the a priori information buffer, the systematic bit buffer, and the check bit buffer are evenly divided into N sub-blocks (Bank).
  • the MAP subunit may include: a Beta overlap recursive module and a Beta sliding window reverse recursive module, wherein the beta overla reverse recursive module is configured to calculate an overlap portion of the beta sliding window, and the beta sliding The window reverse recursive module is used to calculate the sliding window portion of the beta sliding window.
  • the system bit buffer, and the first parity bit buffer and the second parity bit buffer in the parity bit buffer all adopt a ping-pong structure, and each buffer includes a ping (ping) Buffer and a pang sub-buffer; the total memory bank size of each sub-buffer is 6144.
  • the system bit buffer, the first parity bit buffer, and the second parity bit buffer comprise two parts, one part of which has a memory group length of 5120 and the other part of which has a length of 1024.
  • the present invention also provides a parallel decoding method, the method may include: interleaving multiplexed data through a first interleaver in a Turbo decoder, performing parallel MAP calculation through a parallel MAP unit, and passing through a second The interleaver de-interleaves and/or deinterleaves the N data output by the parallel MAP unit, and writes the de-interleaved and/or de-interleaved data back into the N sub-blocks of the a priori information buffer.
  • the multipath a priori information output by the unit and the column address generated by the second interleaver are correspondingly stored in the FIFO buffers in each FIFO group.
  • the outputting the multiplexed data buffered by the cache device includes: each N-selector in the cache device selects and outputs a buffer cached by a FIFO buffer with the most stagnation data in each FIFO group.
  • the external assignment information and its corresponding column address are written to the plurality of sub-blocks of the a priori information buffer with the multi-way column address as a write address.
  • the performing the parallel MAP calculation by the parallel MAP unit may include: each MAP subunit in the parallel MAP unit performs MAP calculation on the a priori information ab, the system bit sb, and the check bit pb of the input itself, and the output is external.
  • the information eb and the hard bit hdb include an Alpha calculation process and a Beta calculation process; wherein, the Alpha calculation process and the Beta calculation process include: dividing each beta sliding window into "overlap" and "sliding window", setting overlap and sliding The length of the window is equal; when calculating, the first beat calculates the overlap portion of the first beta sliding window, the second beat calculates the sliding window portion of the first beta sliding window, and calculates the overlap of the second beta sliding window.
  • the third beat calculates the alpha value of the first sliding window and obtains the outer information eb and the hard bit hdb, and simultaneously calculates the beta sliding window portion of the second sliding window, and simultaneously calculates the overla portion of the third sliding window, in turn By analogy, until the last beta and alpha values are obtained.
  • an interleaver supporting both the LTE mode and the TD/W mode is provided, and at the same time, a Turbo decoder including the interlace is provided, so that the Turbo decoder can be compatible with the LTE mode and the TD/W mode.
  • the interleaver provided in this embodiment is configured to input the input according to a preset mode.
  • the data is subjected to an interleaving process and/or a deinterleaving process, and the interleaver mainly includes: an LTE interleaving module, a TD/W interleaving module, and a selector, where the LTE interleaving module is configured to perform interlacing processing on the input data in an LTE mode.
  • the TD/W interleaving module configured to perform TD/W mode interleaving processing and/or deinterleaving processing on the input data
  • a selector configured to select and output the LTE interleaving module Data or data obtained by the TD/W interleaving module.
  • the LTE interleaving module and the TD/W interleaving module in the interleaver can only turn on one of them. Specifically, the LTE interleaving module and the TD/W interleaving module in the interleaver can determine whether to enable the interleaving function according to a preset mode.
  • the Turbo decoder provided in this embodiment mainly includes: a prior information buffer, a system bit buffer, a parity bit buffer, a parity bit selector, a first interleaver, a parallel MAP unit, The second interleaver and the main control module.
  • the first interleaver is configured to perform interleaving processing on the input data according to a preset mode, where the first interleaver includes a first LTE interlace module, a first TD/W interleaving module, and a first selector, where the first LTE interlace
  • the module is configured to perform interleaving processing on the input data in an LTE mode
  • the first TD/W interleaver is configured to perform interleaving processing on the input data in a TD/W mode
  • the first selector is configured to use a preset mode (Mode).
  • the first selector selects and outputs the a priori information ab and the system bit sb output by the first LTE interleaving module to the parallel MAP unit. If the current mode is the TD/W mode, the first selector selects the output by The a priori information ab and the systematic bit sb output by the first TD/W interleaving module are given to the parallel MAP unit.
  • the parallel MAP unit is configured to perform MAP calculation processing on the data of the input itself, and output the obtained MAP calculation result to the second interleaver.
  • the second interleaver is configured to perform deinterleaving and/or deinterleaving processing on the input data according to a preset mode, where the second interleaver includes a second LTE interlacing module, a second TD/W interleaving module, and a second a second LTE interleaving module, configured to perform deinterleaving processing on the input data in an LTE mode, where the second TD/W interleaving module is configured to deinterleave the input data in a TD/W mode and/or
  • the second selector is configured to select, according to the preset mode, output data obtained by the second LTE interleaving module or data obtained by the second TD/W interleaving module to the a priori information buffer.
  • the main control module is used to control the start and end of the decoding process; the a priori information buffer is used to store the a priori information ab obtained in the last MAP iteration, the system bit buffer is used to store the system bit sb, and the check bit buffer includes a first check bit buffer storing a first check bit ⁇ and a second check bit buffer for storing a second check bit pi, each buffer receiving a read command issued by the main control module, Output the data saved by itself.
  • a MAP iterative process in the decoding process is:
  • the main control module issues a read command to the a priori information buffer, the system bit buffer, and the check bit buffer;
  • the a priori information buffer and the system bit buffer respectively output the a priori information ab and the systematic bit sb to the first interleaver; in the LTE mode, the current MAP iteration number is an odd number
  • the first interleaver interleaves the input a priori information ab and the systematic bit sb according to a preset mode, and outputs the result to the parallel MAP unit.
  • the first interleaver directly inputs the first The information ab and the system bit sb are output to the parallel MAP unit.
  • the first interleaver uses the a priori information ab that has been deinterleaved in advance as an interleaving according to a preset mode.
  • the a priori information ab is directly output to the parallel MAP unit, and the input system bit sb is interleaved and output to the parallel MAP unit.
  • the first interleaver directly inputs the a priori information ab. And the system bit sb is output to the parallel MAP unit.
  • the a priori information ab data is empty
  • the first interleaver is straight
  • the input system bit sb is output to the parallel MAP unit.
  • the first check bit buffer and the second check bit buffer in the check bit buffer After receiving the read command issued by the main control module, acquire the current number of MAP iterations from the main control module, and determine the current number of MAP iterations.
  • the second check bit pi When the number is odd, the second check bit pi is output to the parallel MAP unit by the check bit selector, and when the current MAP iteration number is determined to be an even number, the first check bit ⁇ is output to the parallel MAP unit by the check bit selector;
  • the parallel MAP unit performs MAP iterative operation on the input a priori information ab, the systematic bit sb, and the first parity bit ⁇ or the second parity bit pi, and outputs the MAP calculation result to the second interleaver.
  • the second interleaver deinterleaves the input MAP external assignment information to obtain the de-interleaved external assignment information eb; when the current MAP iteration number is even, the second interlace in the LTE mode
  • the input MAP calculation result is directly used as its own external assignment information eb, and the second interleaver in the TD/W mode de-interleaves the input MAP calculation result to obtain the external assignment information eb.
  • the second selector outputs the external assignment information eb as the a priori information ab required for the next MAP iteration to the a priori information buffer buffer, or the logarithmic domain similarity llr corresponding to the external assignment information eb is positive and negative
  • the hard bit output information hdb converted to the Turbo decoder is output to an external device, which can be controlled by the main control module.
  • the main control module controls the second interleaver to convert the positive and negative polarity of the logarithmic domain 11r corresponding to the external assignment information eb into hard bit data hdb, and determines that the current number of MAP iterations reaches a preset threshold or hard bit.
  • the Turbo decoder is controlled to output the current hard bit data hdb as a decoding result of the Turbo decoder to the external device, and the current decoding process is ended; the current MAP iteration number is not up to the pre-determination
  • the second interleaver is controlled to output the external information eb as the a priori information ab required for the next MAP iteration to the a priori information buffer buffer, and continues. The next MAP iteration of the current decoding process.
  • the system bits and check bits of the external input are entered.
  • the row repeats the MAP iteration, and each iteration, the number of iterations is incremented by 1, until the hard bit data hdb output by the Turbo decoder is correctly verified or the number of iterations reaches the specified value.
  • the main control module can count the number of MAP iterations and end the decoding process when the number of MAP iterations reaches a preset threshold.
  • the main control module can also check the hard bit output information hdb, and when the check is correct, end the decoding process.
  • the first interleaver and the second interleaver described above may be identical in hardware structure and algorithm for the LTE mode, except that the first interleaver is used to implement interleaving, and the second interleaver is used to implement deinterleaving.
  • the first interleaver only needs to interleave the input system bit sb, and does not perform any processing on the check bit pb and the a priori information ab, directly input the first check bit ⁇ or the first
  • the second parity bit pi and the a priori information ab are output to the parallel MAP unit; the second interleaver de-interleaves the external assignment information eb output by the parallel MAP unit at an even number of MAP iterations and buffers the processing result in the prior information.
  • the second interleaver deinterleaves the external assignment information eb output by the parallel MAP unit at an odd number of MAP iterations and buffers the processing result in the a priori information buffer.
  • a parallel decoding method and a corresponding Turbo decoder are provided, which can solve the memory conflict problem of parallel decoding in the TD/W mode, thereby implementing parallel decoding in the TD/W mode.
  • the method for parallel decoding mainly includes: after performing interleaving processing, parallel MAP calculation, and deinterleaving and/or de-interleaving processing on the multiplexed data, the multiplexed data after the de-interleaving and/or de-interleaving processing and Its corresponding column address is buffered by the cache device and output to a plurality of sub-blocks of the a priori information buffer.
  • the multiple derivation information output by the parallel MAP unit and the multi-path column address generated by the second interleaver are respectively input to corresponding multiple advanced firsts. Out group ( FIFO group ), and then output multiple channels according to the parallel MAP unit And assigning the information to the FIFO grou's first in first out buffer (FIFO, First In First Out).
  • the buffered multiplexed data is outputted, including: each N-selector in the cache device selects and outputs each advanced first by comparing the number of data retained in the N first-in first-out buffers (FIFOs)
  • FIFOs first-in first-out buffers
  • the data buffered by the FIFO buffer with the most data retained in the group and its corresponding column address are sent to multiple sub-blocks (Bank) of the a priori information buffer.
  • the Turbo decoder provided in this embodiment includes: a buffer device, where the buffer device includes N first-in first-out groups (FIFO groups) and N-n selection selectors, and a first-in first-out group (FIFO) Group ) connects an N-selector, where each FIFO grou contains N FIFOs, and the N inputs of an N-selector are connected to the outputs of N FIFOs in a FIFO grou.
  • N represents the maximum value of the number of parallel decoded data paths
  • N is a power of 2
  • the value range of N is [1, 16], and specifically, N can be determined according to the needs of practical applications. Value.
  • the buffer device may be added to the turbo decoder provided in the first embodiment, and the buffer device is used as a part of the second interleaver to implement parallel decoding of the embodiment.
  • the buffer device may be connected between the second TD/W interleaving module and the a priori information buffer, or may be connected to the a priori information buffer as a component inside the second TD/W interleaving module.
  • the parallel MAP unit includes N MAP sub-units, such as MAP-0, MAP-1 as shown in FIG.
  • MAP — N-l The a priori information buffer, the systematic bit buffer, and the check bit buffer are evenly divided into N banks, Bank-0, Bank-1, ..., Bank_Nl shown in Figure 3, each bank having the same size.
  • each interleave module in each interleaver includes an interleave address calculation unit and an interleave unit, where the interleave address calculation unit is configured to perform interleave address calculation according to the corresponding mode, Obtaining a row address and a column address for performing interleaving processing or deinterleaving processing on the data; a cross unit, configured to input the column address obtained by the interleaving address calculating unit into its own data, and obtain a row address according to the interleaving address calculating unit Perform cross sorting.
  • the interleave address calculation unit in the LTE interleave module is configured to perform interleave address calculation according to an interleave algorithm and/or a deinterleave algorithm in the LTE mode; the first interleave address calculation unit in the TD/W interleave module is used to follow the TD The interleaving algorithm and/or the de-interleaving algorithm in the /W mode performs interleaving address calculation.
  • the first interleaving unit and the first interleaving address calculating unit are used to jointly implement interleaving processing on data
  • the second interleaving unit and the second interleaving address calculating unit are used to jointly implement deinterleaving processing on data.
  • the Turbo decoder when the Turbo decoder performs parallel decoding in the LTE mode, the Turbo decoder performs a MAP iteration on the externally input systematic bits and parity bits as follows:
  • the first interleave address calculation unit outputs N "column addresses” to N banks of the system bit buffer and the a priori information buffer for each beat as a "read address” for reading data held by itself, and each The beat outputs N "row addresses” to the cross unit; after receiving the read command of the main control module, the system bit buffer and the a priori information buffer read from their own N banks according to the N "column addresses", respectively.
  • each of the N banks of the first check bit buffer After receiving the read command of the main control module, each of the N banks of the first check bit buffer outputs N first check bits ⁇ to the N MAP sub-units of the parallel MAP unit through the check bit selector. Or N banks of the second parity bit buffer output N second parity bits pi to the check bit selector to N MAP sub-units of the parallel MAP unit; N MAP sub-units of the parallel MAP unit Enter the system bits, a priori, respectively
  • the information, and the first check bit ⁇ or the second check bit p 1 are subjected to Max-Log-MAP calculation, and N MAP calculation results are obtained, and the N MAP calculation results are output to the second cross unit, and the second cross unit
  • the N MAP calculation results of the input itself are cross-ordered to implement line deinterleaving, and the current MAP iteration number does not reach a preset threshold or hard bit data hdb If the verification is incorrect, according to the N column addresses output by
  • the N column addresses output by the first interleave address calculation unit are based on the N system bits.
  • the interleave address of the N pieces of a priori information is obtained by modulo L, and the N row addresses output by the first interleave address calculation unit are obtained by quoting L based on the interleave address of the N system bits and the N pieces of prior information.
  • the positive order address of the systematic bits and a priori information is its save address.
  • the interleaving address of the systematic bit and the a priori information is calculated by interleaving the systematic bit and the positive sequence address of the prior information by the first interleaving address calculating unit.
  • the N column addresses and the N row addresses output by the second interleaving address calculation unit are also obtained in the above manner, and are not described again.
  • the read address is obtained by modulo the length of the reserved sub-data code block in each bank based on its positive sequence address; the second interleave address calculation unit outputs The N column addresses, based on the N first parity bits ⁇ or the second parity
  • the positive sequence address of the bit pi is obtained by modulo L, and the N row addresses output by the second interleave address calculation unit are identical to the order of the N MAP subunits in the parallel MAP unit.
  • the N column addresses output by the first interleave address calculation unit are the same, and in actual applications, one column address can be used.
  • the Turbo decoder When the Turbo decoder performs parallel decoding in the TD/W mode, the Turbo decoder performs the same MAP iteration process on the externally input system bits and check bits, and the MAP iterative process under the LTE module is basically the same.
  • the second cross unit After the second cross unit outputs the N external assignment information, the N external assignment information is input to the buffer device, and the cache device generates the row address generated by the second interleave address calculation unit and
  • the parallel MAP unit outputs the sequence of the multiple assignment information, buffers the N external assignment information and the corresponding column address generated by the second interleave address calculation unit to itself, and then according to each FIFO in each FIFO group
  • the number of data retained, the FIFO that selects the current data for each beat writes its buffered data to the N banks of the a priori information buffer.
  • the buffer device includes N FIFO grous and N N-selectors, and each FIFO grou includes N FIFOs, that is, FIFO_0, FIFO shown in FIG. — 1, FIFO — Nl.
  • the N pieces of external assignment information output by the parallel MAP unit and the N column addresses generated by the second interleaver are stored in the FIFO group according to the N row addresses generated by the second interleaver, and
  • the order of the N pieces of external information output by the parallel MAP unit determines N pieces of external assignment information output by the parallel MAP unit and a first in first out buffer (FIFO) to which the N column addresses should be stored.
  • FIFO first in first out buffer
  • the cache device outputs the cached external assignment information and the column address in the above manner, and writes the external assignment information to the N of the a priori information buffers by using the column address as a write address.
  • the method includes: in the TD/W mode, the second interleave unit, according to the N row addresses generated by the second interleave address calculation unit, the N column addresses generated by the second interleave address calculation unit and the parallel MAP
  • the N external assignment information output by the unit is input into the buffer device together
  • Corresponding FIFO grou according to the sequence of N pieces of external information output by the parallel MAP unit, buffer the N pieces of external assignment information and the N column addresses output by the second interleave address calculation unit to the corresponding FIFO.
  • each of the N-selectors in the cache device selects one of the N FIFOs of the FIFO grou to which it is connected, and selects one of the FIFO output assignment information to the corresponding bank in the a priori information buffer.
  • the FIFO depth in each FIFO group converges within a limited range, and the maximum depth of the FIFO does not exceed 8 when N is 16.
  • the structure of the turbo decoder is the same as that of the first embodiment, except that the system bit buffer, the first parity bit buffer, and the second parity buffer all adopt a ping-pong structure, and each The buffer contains a ping sub-buffer and a pang sub-buffer.
  • each memory buffer In order to meet the requirement of a maximum code block length of 6144 in LTE mode, the total length (Length) of each memory buffer (Memory grou) is 6144.
  • the maximum code block length is only 5114, each sub-buffer in TD/W mode has some spare space on the basis of storing one longest code block.
  • the system will be separately The bit buffer, the first parity buffer, and the second parity buffer are split into two parts, one portion of the Memory grou is 5120 in length, and the other Memory grou is 1024 in length.
  • the two memory groups in each buffer are used to store the corresponding data.
  • the maximum code block length in the TD/W mode is 5114.
  • the Memory Grou with a length of 5120 in each buffer is used to store the corresponding data.
  • the Memory group with a length of 1024 in each buffer is shown. Combined, it can be used to store system bits as interlaced.
  • the memory group of length 1024 is combined to have a total length of 6144, and the interleaved system bit code block length is 5114. Therefore, it can be used to store system bits after interleaving.
  • Embodiment 4 the structure of the turbo decoder and the parallel decoding process are identical to those of the second embodiment.
  • N is 16
  • the parallel MAP unit internally includes 16 MAP sub-units
  • the parallel MAP unit adopts a Max-Log-MAP algorithm
  • each MAP sub-unit is a Max-Log-MAP algorithm.
  • Hardware implementation circuit
  • the data length to be calculated for each MAP subunit is L, and L is the sub-data block length of a Bank.
  • the Max-MAP-Log algorithm implemented by the MAP subunit includes a forward recursive Alpha calculation process and a reverse recursive Beta calculation process. The data of the corresponding positions of the Alpha sequence and the Beta sequence are further calculated. MAP calculation results.
  • the alpha recursion process is positive.
  • the output order of the alpha recursive result is as follows: 0,1,2,3...k
  • the output order of the beta recursive result is as follows: k,kl,k-2...1 , 0. Where k represents the data length.
  • the three inputs of sb, pb, and ab are input in the reverse order of beta, and the obtained gamma value is naturally reversed, then the inverse gamma value sent to the beta reverse recursive module can be directly used for beta reverse recursion, and , the reverse gamma value is buffered into the gamma buffer, and after the beta reverse recursion is completed, the gamma value is read from the gamma buffer in the positive order.
  • alpha forward recursive module to do alpha forward recursion.
  • the beta value of the reverse recursion obtained by the beta recursion is first buffered into the beta buffer, and when the alpha positive sequence recursively outputs the alpha value of the positive sequence, the beta value is read from the beta buffer in the positive order, with the positive sequence
  • the alpha value is sent to the eb calculation module together, and the eb calculation module outputs the eb value of the positive sequence after the eb calculation.
  • the hdb of the decision output is also the positive sequence.
  • the beta value of the reverse order is first calculated and saved, and the alpha value of the positive sequence is calculated, and the beta value of the positive sequence is read, and the calculation of eb and hdb is completed.
  • the sliding window control mode shown in c) of FIG. 6 is generally adopted, specifically, a packet of length k is divided into several.
  • a sliding window each time calculating the beta of a sliding window, begins to calculate the alpha corresponding to the sliding window, and starts the calculation of eb and hdb of the sliding window. While calculating the alpha and eb ⁇ hdb of the current sliding window, the beta calculation of the next sliding window is started.
  • the beta of the next sliding window is also calculated, and then You can start the calculation of alpha and eb ⁇ hdb for the next sliding window, and so on. In this way, it is not necessary to buffer the entire packet with k gamma values and k beta values, and only need to buffer the gamma value and the beta value of the two sliding windows, thereby reducing the size of the buffer.
  • FIG d) is a schematic diagram of the flow mode of the recursive mode shown in Figure c).
  • Each sliding window of beta has an overlap length, so the length of the beta sliding window is twice the length of the alpha sliding window, each After the alpha sliding window is calculated, wait for a sliding window time before starting the calculation of the next sliding window.
  • FIG 6 is a logical structure diagram of the improved MAP subunit of Figure a).
  • Each beta sliding window is divided into two parts: "overlap” and “sliding window”.
  • Figure 6 f) is the pipeline corresponding to Figure e), first the first beat calculates the first beta sliding window The overlap portion, the second beat calculates the sliding window portion of the first beta sliding window, and calculates the overlap portion of the second beta sliding window, and the third beat calculates the alpha/eb/hdb of the first sliding window, Calculate the beta sliding window portion of the second sliding window, calculate the overlap portion of the third sliding window, and so on.
  • the improved pipeline of Figure f) is shorter and faster than the pipeline of Figure d), improving throughput and pipeline efficiency.

Abstract

Provided are a Turbo decoder and a parallel decoding method. The Turbo decoder includes a first interleaver and a second interleaver. The first interleaver includes a first LTE interleaving module, a first TD/W interleaving module and a first selector. The second interleaver includes a second LTE interleaving module, a second TD/W interleaving module and a second selector. The method realizes multi-mode compatibility of the Turbo decoder, solves the parallel interleaving problem in the TD/W mode, and enables the Turbo decoder in the LTE mode and the Turbo decoder in the TD/W mode to integrate as one, thus reducing the hardware scale.

Description

一种并行译码方法及 Turbo译码器 技术领域  Parallel decoding method and Turbo decoder
本发明涉及译码处理技术, 尤其涉及一种并行译码方法及 Turbo译码 器。 背景技术  The present invention relates to decoding processing techniques, and in particular, to a parallel decoding method and a turbo decoder. Background technique
Turbo码是一种高效的信道编码方式, 其本质是一种卷积码的变形, 其 特征是编译码复杂度高, 时延大, 但误码性能优异, 适合于大数据量的长 码块及对时延要求不高的数据传输。 Turbo码的巨大优势在于它能很好地满 足香农信道编码理论中的随机性条件, 并且采用了迭代译码的方式来获得 编码增益, 因此能够获得逼近香农限的极限性能。  Turbo code is an efficient channel coding method. Its essence is a variant of convolutional code. It is characterized by high complexity of coding and decoding, large delay, but excellent error performance. It is suitable for long code blocks with large data volume. And data transmission that does not require high latency. The great advantage of Turbo code is that it can satisfactorily satisfy the random condition in Shannon channel coding theory, and iterative decoding is used to obtain the coding gain, so the ultimate performance close to Shannon limit can be obtained.
如图 1所示, Turbo译码器包括两个软输入软输出(SISO )的译码单元 (第一译码单元 101 , 第二译码单元 103 ) , 它们之间由第一交织器 102相 连, 其中, 第二译码单元 103的输出连接用于解交织的第二交织器 104, 第 二交织器 104的输出连接第一译码单元 101和硬判模块 105。 Turbo译码器 接收外部送来的三路数据, 即系统比特 sb、 未经交织的第一校验比特 ρθ和 经交织的第二校验比特 pi , 每个译码单元的输出数据为外赋信息 (abl , ab2 ) , 输入为先验信息、 系统比特(sb )和校验比特(ρθ或 pi ) 。  As shown in FIG. 1, the turbo decoder includes two soft input soft output (SISO) decoding units (first decoding unit 101, second decoding unit 103) connected to each other by a first interleaver 102. The output of the second decoding unit 103 is connected to the second interleaver 104 for deinterleaving, and the output of the second interleaver 104 is connected to the first decoding unit 101 and the hard decision module 105. The Turbo decoder receives the externally sent three-way data, that is, the system bit sb, the uninterleaved first parity bit ρθ, and the interleaved second parity bit pi, and the output data of each decoding unit is externally assigned. The information (abl, ab2) is input as a priori information, systematic bits (sb) and check bits (ρθ or pi).
Turbo译码器的译码过程是一个反复迭代的过程,第二译码单元 103所 输出的外赋信息 ab2经过第二交织器 104解交织后作为第一译码单元 101 的先验信息进行辅助译码, 同时, 第一译码单元 101 的输入还包括系统比 特 sb和第一校验比特 ρθ; 第一译码单元 101所输出的外赋信息 abl经过第 二交织器 102交织后作为第二译码单元 103的先验信息进行辅助译码, 同 时, 第二译码单元 103的输入还包括经过交织的系统比特 sb和第二校验比 特 pi , 如此反复迭代, 直至硬判模块 105输出的硬比特数据 hdb满足译码 要求或迭代次数达到指定的数值。 第一译码单元 101 和第二译码单元 103 的硬件结构完全相同, 且不存在同时译码的情形, 因此可以将两个译码单 元设计为同一套电路, 以分时复用的方式进行共享, 节省了硬件资源。 第 一译码单元 101和第二译码单元 103中主要是实现对数域的 Max-Log-MAP 算法, 其中将乘法和指数运算简化为加法和取最大值的运算, 从而降低了 计算复杂度, 利于硬件实现。 The decoding process of the turbo decoder is an iterative process. The extra assignment information ab2 output by the second decoding unit 103 is deinterleaved by the second interleaver 104 and is used as the a priori information of the first decoding unit 101. Decoding, at the same time, the input of the first decoding unit 101 further includes a system bit sb and a first parity bit ρθ; the external assignment information abl output by the first decoding unit 101 is interleaved by the second interleaver 102 as a second The a priori information of the decoding unit 103 performs auxiliary decoding, and at the same time, the input of the second decoding unit 103 further includes the interleaved system bit sb and the second check ratio. The pi is repeated iteratively until the hard bit data hdb output by the hard decision module 105 satisfies the decoding requirement or the number of iterations reaches the specified value. The hardware structures of the first decoding unit 101 and the second decoding unit 103 are identical, and there is no simultaneous decoding. Therefore, the two decoding units can be designed as the same set of circuits, and are time-multiplexed. Sharing, saving hardware resources. The first decoding unit 101 and the second decoding unit 103 mainly implement a log-domain Max-Log-MAP algorithm, in which multiplication and exponential operations are simplified to addition and maximum operations, thereby reducing computational complexity. , Conducive to hardware implementation.
在移动通讯技术的发展日新月异的背景之下, 移动终端系统对于多种 通讯模式的并存性以及各种模式的速度提出了更高的要求。 对作为移动通 讯终端系统中关键部件之一的 Turbo译码器也提出了更高的要求, 一方面 要满足系统的速率, 另一方面又要尽可能的降低硬件电路的规模。 但现有 的 Turbo译码器只能支持一种模式,要么仅支持长期演进(LTE, Long-Term Evolution )模式, 要么仅能够支持( TD/W, TD-SCDMA/WCDMA/HSPA+ ) 模式。 此外, 在并行译码过程中, 要保证交织器输出的多路数据——映射 到緩沖器的多个区域中, 否则在进行下一次迭代时将出现同一个节拍需要 从同一区域读取两个以上数据的问题, 或者同一节拍需要将输出的两个以 上数据写回到同一区域,从而导致存储器(memory )访问沖突。 由于 TD/W 模式的 Turbo交织算法不能解决 memory沖突的问题, 因此, 支持 TD/W模 式的 Turbo译码器也不能实现并行交织。鉴于此,在 Turbo译码器中需要着 重解决以下问题: 1、 实现 Turbo译码器的多模式兼容; 2、 解决 Turbo译码 器在 TD/W模式下的并行交织问题。 发明内容  In the context of the rapid development of mobile communication technologies, mobile terminal systems have placed higher demands on the coexistence of multiple communication modes and the speed of various modes. Turbo decoders, which are one of the key components in mobile communication terminal systems, are also subject to higher requirements, on the one hand, to meet the speed of the system, and on the other hand, to reduce the size of the hardware circuit as much as possible. However, the existing Turbo decoder can only support one mode, or only supports Long-Term Evolution (LTE) mode, or only (TD/W, TD-SCDMA/WCDMA/HSPA+) mode. In addition, in the parallel decoding process, it is necessary to ensure that the multiplexed data output by the interleaver is mapped to multiple regions of the buffer, otherwise the same tempo will appear in the next iteration. The above data problem, or the same beat, needs to write more than two pieces of output data back to the same area, resulting in a memory access violation. Since the TD/W mode Turbo interleaving algorithm cannot solve the memory conflict problem, the turbo coder supporting the TD/W mode cannot implement parallel interleaving. In view of this, it is necessary to solve the following problems in the Turbo decoder: 1. Implement multi-mode compatibility of the Turbo decoder; 2. Solve the parallel interleaving problem of the Turbo decoder in the TD/W mode. Summary of the invention
有鉴于此, 本发明的主要目的在于提供一种并行译码方法及译码器, 解决 Turbo译码器的多模式兼容问题; 其次, 本发明的另一目的在于, 解 决 Turbo译码器在 TD/W模式下的并行交织问题,使得 Turbo译码器的多模 式兼容更优化。 In view of this, the main object of the present invention is to provide a parallel decoding method and decoder for solving the multi-mode compatibility problem of the turbo decoder. Secondly, another object of the present invention is to solve the Turbo decoder in the TD. Parallel interleaving problem in /W mode, making multimode of Turbo decoder Compatibility is more optimized.
为达到上述目的, 本发明的技术方案是这样实现的:  In order to achieve the above object, the technical solution of the present invention is achieved as follows:
本发明提供了一种交织器, 所述交织器包括: LTE交织模块、 TD/W交 织模块和选择器; 其中,  The present invention provides an interleaver, the interleaver including: an LTE interlace module, a TD/W interlace module, and a selector;
所述 LTE交织模块, 用于对输入的数据以及先验信息进行 LTE模式的 交织处理和 /或解交织处理;  The LTE interleaving module is configured to perform interlace processing and/or deinterleave processing on the input data and the a priori information in the LTE mode;
所述 TD/W交织模块, 用于对输入的数据以及先验信息进行 TD/W模 式的交织处理和 /或解交织处理;  The TD/W interleaving module is configured to perform TD/W mode interleaving processing and/or deinterleaving processing on the input data and the a priori information;
所述选择器, 用于选择输出所述 LTE交织模块得到的数据或 TD/W交 织模块得到的数据。  The selector is configured to select data obtained by outputting the LTE interleaving module or data obtained by the TD/W interworking module.
本发明还提供了一种 Turbo译码器,所述 Turbo译码器包括: 第一交织 器和第二交织器; 其中,  The present invention also provides a Turbo decoder, the Turbo decoder comprising: a first interleaver and a second interleaver;
所述第一交织器包括第一 LTE交织模块、 第一 TD/W交织模块和第一 选择器, 所述第一 LTE交织模块用于对输入的数据以及上一次 MAP迭代 得到的外赋信息进行 LTE模式的交织处理, 所述第一 TD/W交织器用于对 输入的数据以及上一次 MAP迭代得到的外赋信息进行 TD/W模式的交织处 理, 第一选择器用于根据预设的模式, 选择输出所述第一 LTE交织模块得 到的交织数据或第一 TD/W交织模块得到的交织数据;  The first interleaver includes a first LTE interlace module, a first TD/W interleaving module, and a first selector, where the first LTE interleaving module is configured to perform input data and external information obtained by the last MAP iteration. The interleaving process of the LTE mode, the first TD/W interleaver is configured to perform TD/W mode interleaving processing on the input data and the external assignment information obtained by the last MAP iteration, and the first selector is configured to use the preset mode according to the preset mode. Selecting to output the interleaved data obtained by the first LTE interleaving module or the interleaved data obtained by the first TD/W interleaving module;
所述第二交织器包括第二 LTE交织模块、 第二 TD/W交织模块和第二 选择器, 所述第二 LTE交织模块用于对并行 MAP单元输出的外赋信息进 行 LTE模式的解交织处理, 所述第二 TD/W交织模块用于对并行 MAP单 元输出的外赋信息进行 TD/W模式的反交织处理和 /或解交织处理, 第二选 择器用于根据预设的模式, 选择输出所述第二 LTE交织模块得到的数据或 第二 TD/W交织模块得到的数据。  The second interleaver includes a second LTE interlace module, a second TD/W interleaving module, and a second selector, where the second LTE interleaving module is configured to deinterleave the external assignment information output by the parallel MAP unit in the LTE mode. Processing, the second TD/W interleaving module is configured to perform de-interleaving processing and/or de-interleaving processing in the TD/W mode on the external assignment information output by the parallel MAP unit, and the second selector is configured to select according to the preset mode. And outputting data obtained by the second LTE interleaving module or data obtained by the second TD/W interleaving module.
在上述方案中, 所述 Turbo译码器还包括: 先验信息緩沖器、 系统比 特緩沖器、 校验比特緩沖器、 校验比特选择器、 并行 MAP单元、 和主控制 模块; In the above solution, the Turbo decoder further includes: a prior information buffer, a system ratio a special buffer, a parity bit buffer, a parity bit selector, a parallel MAP unit, and a main control module;
其中, 主控制模块发出读命令给所述先验信息緩沖器、 系统比特緩沖 器和校验比特緩沖器 , 所述先验信息緩沖器和系统比特緩沖器在接收到所 述主控制模块发出的读命令后,分别将先验信息 ab和系统比特 sb输出到所 述第一交织器, 所述第一交织器按照预设的模式对输入的数据进行交织处 理后输出交织数据或直接将输入的数据输出给所述并行 MAP单元;  Wherein, the main control module issues a read command to the a priori information buffer, the system bit buffer and the check bit buffer, and the a priori information buffer and the system bit buffer are received by the main control module. After the command is read, the a priori information ab and the systematic bit sb are respectively output to the first interleaver, and the first interleaver performs interleaving processing on the input data according to a preset mode, and outputs the interleaved data or directly inputs the input data. Data is output to the parallel MAP unit;
所述校验比特緩沖器在接收到所述主控制模块发出的读命令后 , 通过 校验比特选择器将第一校验比特 ρθ 或第二校验比特 pi 输出给所述并行 MAP单元;  After receiving the read command issued by the main control module, the check bit buffer outputs a first check bit ρθ or a second check bit pi to the parallel MAP unit through a check bit selector;
所述并行 MAP单元对输入自身的数据进行 MAP计算处理, 并将得到 的 MAP计算结果输出给所述第二交织器;所述第二交织器按照预设的模式 对输入的数据进行反交织和 /或解交织处理后输出反交织和 /或解交织后的 数据或直接将输入的数据输出给所述先验信息緩沖器。  The parallel MAP unit performs MAP calculation processing on the data of the input itself, and outputs the obtained MAP calculation result to the second interleaver; the second interleaver deinterleaves the input data according to a preset mode. / or deinterleaving processing to output de-interleaved and / or deinterleaved data or directly output the input data to the a priori information buffer.
在上述方案中, 所述 Turbo译码器还包括: 緩存装置, 连接在所述第 二 TD/W交织模块与先验信息緩沖器之间, 或作为第二 TD/W交织模块的 一个部件与先验信息緩沖器相连;  In the above solution, the turbo decoder further includes: a buffering device connected between the second TD/W interleaving module and the a priori information buffer, or as a component of the second TD/W interleaving module The prior information buffer is connected;
所述緩存装置包括 N个先进先出组( FIFO group )和 N个 N选一选择 器, 一个先进先出组连接一个 N选一选择器, 其中, 各 FIFO group包含 N 个先进先出緩沖器( FIFO ),一个 N选一选择器的 N个输入端连接一个 FIFO grou 中 N个 FIFO的输出端; 其中, N表示并行译码数据路数的最大值, N为 2的幂次方。  The cache device includes N first FIFO groups and N select one selectors, and a first in first out group is connected to an N select selector, wherein each FIFO group includes N first in first out buffers (FIFO), the N inputs of an N-selector are connected to the outputs of N FIFOs in a FIFO grou; where N represents the maximum value of the number of parallel decoded data paths, and N is the power of 2.
在上述方案中, 所述并行 MAP单元包括 N个 MAP子单元; 所述先验信息緩沖器、系统比特緩沖器和校验比特緩沖器均匀划分为 N 个子块(Bank )。 在上述方案中, 所述 MAP子单元包括: Beta overlap逆向递推模块和 Beta滑窗逆向递推模块, 其中, beta overla 逆向递推模块用于计算 beta滑 窗的 overlap部分, beta滑窗逆向递推模块用于计算 beta滑窗的滑窗部分。 In the above solution, the parallel MAP unit includes N MAP sub-units; the a priori information buffer, the system bit buffer, and the check bit buffer are evenly divided into N sub-blocks (Bank). In the above solution, the MAP subunit includes: a Beta overlap reverse recursive module and a Beta sliding window reverse recursive module, wherein the beta overla reverse recursive module is configured to calculate an overlap portion of the beta sliding window, and the beta sliding window is reversely delivered. The push module is used to calculate the sliding window portion of the beta sliding window.
在上述方案中, 所述系统比特緩沖器、 以及所述校验比特緩沖器中的 第一校验比特緩沖器和第二校验比特緩沖器均采用乒乓结构, 每个緩沖器 包含一个乒(ping )子緩沖器和一个乓(pang )子緩沖器; 每个子緩沖器的 内存组总长度为 6144。  In the above solution, the system bit buffer, and the first parity bit buffer and the second parity bit buffer in the parity bit buffer all adopt a ping-pong structure, and each buffer includes one ping ( Ping sub-buffer and a pang sub-buffer; the total memory bank size of each sub-buffer is 6144.
在上述方案中, 所述系统比特緩沖器、 第一校验比特緩沖器、 和第二 校验比特緩沖器分别包括两部分, 一部分的内存组长度为 5120, 另一部分 内存组长度为 1024。  In the above solution, the system bit buffer, the first parity bit buffer, and the second parity bit buffer respectively comprise two parts, one part of the memory group length is 5120, and the other part of the memory group length is 1024.
本发明还提供了一种并行译码方法, 所述方法包括: 通过 Turbo译码 器中的第一交织器对多路数据进行交织处理、通过并行 MAP单元进行并行 MAP计算后, 按照所述第二交织器产生的多路行地址及所述并行 MAP单 元输出多路数据的顺序, 将反交织和 /或解交织后的多路数据和所述第二交 织器产生的多路列地址緩存到所述 Turbo译码器的緩存装置中, 再将所述 緩存装置緩存的多路数据及相应的列地址输出给先验信息緩沖器。  The present invention also provides a parallel decoding method, the method comprising: performing interleaving processing on multiple data through a first interleaver in a turbo decoder, and performing parallel MAP calculation through a parallel MAP unit, according to the foregoing The multi-path row address generated by the second interleaver and the sequence of outputting the multiplexed data by the parallel MAP unit, buffering the de-interleaved and/or de-interleaved multiplexed data and the multiplexed column address generated by the second interleaver to In the buffer device of the turbo decoder, the multiplexed data buffered by the buffer device and the corresponding column address are output to the a priori information buffer.
在上述方案中, 所述按照所述第二交织器产生的多路行地址及所述并 行 MAP单元输出多路数据的顺序, 将反交织和 /或解交织后的多路数据和 所述第二交织器产生的多路列地址緩存到所述 Turbo译码器的緩存装置中, 包括: 按照所述第二交织器产生的行地址, 分别将所述并行 MAP单元输出 的多路数据输入到所述緩存装置中对应的多个先进先出组, 再按照所述所 述并行 MAP单元输出多路数据的顺序, 将所述 MAP单元输出的多路先验 信息和所述第二交织器产生的列地址对应存放到各先进先出组中的先进先 出緩沖器中。  In the above solution, the de-interleaved and/or de-interleaved multiplexed data and the first according to the multiplexed row address generated by the second interleaver and the parallel MAP unit outputting multiplexed data Buffering the multiplexed column address generated by the second interleaver into the buffer device of the turbo decoder includes: inputting the multiplexed data output by the parallel MAP unit to the row address generated by the second interleaver Corresponding multiple FIFO groups in the cache device, and then generating the multiplexed a priori information and the second interleaver output by the MAP unit according to the sequence in which the parallel MAP unit outputs the multiplexed data The column address corresponds to the FIFO buffer stored in each FIFO group.
在上述方案中, 所述将所述緩存装置緩存的多路数据输出, 包括: 所述緩存装置中的各 N选一选择器选择输出各先进先出组中滞留数据 最多的先进先出緩沖器所緩存的数据及对应的列地址到先验信息緩沖器的 多个子块。 In the above solution, the outputting the multiplexed data cached by the cache device includes: Each N-selector in the cache device selects and outputs data buffered by the FIFO buffer with the most stagnation data in each FIFO group and a corresponding column address to a plurality of sub-blocks of the a priori information buffer.
在上述方案中, 所述通过并行 MAP单元进行并行 MAP计算, 包括: 所述并行 MAP单元中各 MAP子单元对输入自身的先验信息 ab、 系统 比特 sb、 校验比特 pb进行 MAP计算, 输出为外信息 eb和硬比特 hdb, 包 含 Alpha计算过程和 Beta计算过程;  In the above solution, the performing parallel MAP calculation by the parallel MAP unit includes: performing, by the MAP subunits in the parallel MAP unit, MAP calculation, output, and a priori information ab, system bit sb, and parity bit pb of the input itself. For the external information eb and the hard bit hdb, including the Alpha calculation process and the Beta calculation process;
其中, 所述 Alpha计算过程和 Beta计算过程包括: 将每个 beta滑窗都 分成 "overlap" 和 "滑窗", 设置 overlap和滑窗的长度相等; 进行计算时, 第一个节拍计算第一个 beta滑窗的 overlap部分, 第二个节拍计算第一个 beta滑窗的滑窗部分, 同时计算第二个 beta滑窗的 overlap部分, 第三个节 拍计算第一个滑窗的 alpha值和得到外信息 eb和硬比特 hdb,同时计算第二 个滑窗的 beta滑窗部分, 同时计算第三个滑窗的 overlap部分, 依次类推, 直至得到最后一个 beta值和 alpha值。  The Alpha calculation process and the Beta calculation process include: dividing each beta sliding window into "overlap" and "sliding window", setting the overlap and the sliding window to have the same length; when performing the calculation, the first beat is calculated first. The overlap portion of the beta sliding window, the second beat calculates the sliding window portion of the first beta sliding window, and calculates the overlap portion of the second beta sliding window. The third beat calculates the alpha value of the first sliding window and The outer information eb and the hard bit hdb are obtained, and the beta sliding window portion of the second sliding window is calculated, and the overlap portion of the third sliding window is calculated, and so on, until the last beta value and alpha value are obtained.
本发明提供的 Turbo译码器, 包含有兼容 LTE模式和 TD/W模式的交 织器, 实现了 Turbo译码器的多模式兼容, 并且能够实现 TD/W模式下的 并行译码, 解决了 TD/W模式下的并行交织问题, 使 LTE模式的 Turbo译 码器和 TD/W的 Turbo译码器能够合二为一, 达到降低硬件规模的目的。 附图说明  The Turbo decoder provided by the invention comprises an interleaver compatible with the LTE mode and the TD/W mode, realizes multi-mode compatibility of the Turbo decoder, and can realize parallel decoding in the TD/W mode, and solves the TD. The parallel interleaving problem in /W mode enables the LTE mode Turbo decoder and the TD/W Turbo decoder to be combined into one, achieving the goal of reducing the hardware scale. DRAWINGS
图 1为现有技术中 Turbo译码器的组成结构示意图;  1 is a schematic structural diagram of a Turbo decoder in the prior art;
图 2为本发明实施例一 Turbo译码器的组成结构示意图;  2 is a schematic structural diagram of a Turbo decoder according to an embodiment of the present invention;
图 3为本发明实施例二 Turbo译码器实现并行译码过程的示意图; 图 4为本发明实施例二 Turbo译码器中緩存装置的组成结构示意图; 图 5 为本发明实施例三中系统比特緩沖器、 第一校验比特緩沖器和第 二校验比特緩沖器的结构示意图; 图 6为本发明实施例四中 MAP子单元的组成结构以及进行 MAP计算 过程的示意图。 具体实施方式 FIG. 3 is a schematic diagram of a parallel decoding process performed by a Turbo decoder according to Embodiment 2 of the present invention; FIG. 4 is a schematic structural diagram of a buffer device in a Turbo decoder according to Embodiment 2 of the present invention; FIG. A schematic diagram of a structure of a bit buffer, a first parity buffer, and a second parity buffer; FIG. 6 is a schematic diagram of a composition structure of a MAP subunit and a MAP calculation process according to Embodiment 4 of the present invention. detailed description
本发明的基本思想是: 提供一种能够兼容 LTE模式和 TD/W模式的交 织器及 Turbo译码器,并基于该 Turbo译码器实现 TD/W模式下的并行译码。  The basic idea of the present invention is to provide an interleaver and a turbo decoder that are compatible with the LTE mode and the TD/W mode, and implement parallel decoding in the TD/W mode based on the Turbo decoder.
本发明一种交织器, 所述交织器包括: LTE交织模块、 TD/W交织模块 和第一选择器, 其中, 所述 LTE交织模块, 用于对输入的数据以及上一次 MAP迭代得到的外赋信息进行 LTE模式的交织处理和 /或解交织处理; 所 述 TD/W交织模块,用于对输入的数据以及上一次 MAP迭代得到的外赋信 息进行 TD/W模式的交织处理和 /或解交织处理; 选择器, 用于选择输出所 述 LTE交织模块得到的数据或 TD/W交织模块得到的数据。  An interleaver according to the present invention, the interleaver includes: an LTE interlace module, a TD/W interleaving module, and a first selector, where the LTE interleaving module is configured to use the input data and the last MAP iteration The TD/W interleaving module is configured to perform interleaving processing and/or interleaving processing in the TD/W mode on the input data and the external assignment information obtained by the last MAP iteration. Deinterleave processing; a selector, configured to select data obtained by outputting the LTE interleaving module or data obtained by the TD/W interleaving module.
本发明的一种 Turbo译码器, 所述 Turbo译码器包括: 第一交织器和第 二交织器, 其中, 所述第一交织器包括第一 LTE交织模块、 第一 TD/W交 织模块和第一选择器, 所述第一 LTE交织模块用于对输入的数据以及上一 次 MAP迭代得到的外赋信息进行 LTE模式的交织处理,所述第一 TD/W交 织器用于对输入的数据进行 TD/W模式的交织处理, 第一选择器用于根据 预设的模式,选择输出所述第一 LTE交织模块得到的交织数据或第一 TD/W 交织模块得到的交织数据;  A turbo decoder according to the present invention, the turbo decoder includes: a first interleaver and a second interleaver, wherein the first interleaver includes a first LTE interlace module, and a first TD/W interleaving module And the first selector, the first LTE interleaver module is configured to perform inter-LTE processing on the input data and the external assignment information obtained by the last MAP iteration, where the first TD/W interleaver is used to input the data. Performing an interleaving process in the TD/W mode, the first selector is configured to select, according to the preset mode, output the interleaved data obtained by the first LTE interlacing module or the interleaved data obtained by the first TD/W interleaving module;
所述第二交织器包括第二 LTE交织模块、 第二 TD/W交织模块和第二 选择器, 所述第二 LTE交织模块用于对并行 MAP单元输出的外赋信息进 行 LTE模式的解交织处理, 解交织处理后的数据作为下一次 MAP迭代的 先验信息緩存于先验信息緩沖器当中; 所述第二 TD/W交织模块用于对并 行 MAP单元输出的外赋信息进行 TD/W模式的反交织(偶数次, 下同 )和 /或解交织处理, 反交织和 /或解交织处理的数据作为下一次 MAP迭代的先 验信息緩存于先验信息緩沖器中。 第二选择器用于根据预设的模式, 选择 输出所述第二 LTE交织模块得到的数据或第二 TD/W交织模块得到的数据。 实际应用中, 在偶数次 MAP迭代中进行 TD/W模式的反交织, 在奇数 次 MAP迭代进行 TD/W模式的解交织。 The second interleaver includes a second LTE interlace module, a second TD/W interleaving module, and a second selector, where the second LTE interleaving module is configured to deinterleave the external assignment information output by the parallel MAP unit in the LTE mode. Processing, deinterleaving the data as the a priori information of the next MAP iteration is buffered in the a priori information buffer; the second TD/W interleaving module is configured to perform TD/W on the external assignment information output by the parallel MAP unit The de-interleaving (even times, the same below) and/or de-interleaving processing, de-interleaving and/or de-interleaving processing of the pattern is buffered in the a priori information buffer as a priori information for the next MAP iteration. The second selector is used to select according to a preset mode And outputting data obtained by the second LTE interleaving module or data obtained by the second TD/W interleaving module. In practical applications, the TD/W mode deinterleaving is performed in an even number of MAP iterations, and the TD/W mode deinterleaving is performed in an odd number of MAP iterations.
其中, 所述 Turbo译码器还包括: 先验信息緩沖器、 系统比特緩沖器、 校验比特緩沖器、 校验比特选择器、 并行 MAP单元、 和主控制模块;  The Turbo decoder further includes: a prior information buffer, a system bit buffer, a parity bit buffer, a parity bit selector, a parallel MAP unit, and a main control module;
其中, 主控制模块发出读命令给所述先验信息緩沖器、 系统比特緩沖 器和校验比特緩沖器 , 所述先验信息緩沖器和系统比特緩沖器在接收到所 述主控制模块发出的读命令后,分别将先验信息 ab和系统比特 sb输出到所 述第一交织器, 所述第一交织器按照预设的模式对输入的数据进行交织处 理后输出交织数据或直接将输入的数据输出给所述并行 MAP单元;  Wherein, the main control module issues a read command to the a priori information buffer, the system bit buffer and the check bit buffer, and the a priori information buffer and the system bit buffer are received by the main control module. After the command is read, the a priori information ab and the systematic bit sb are respectively output to the first interleaver, and the first interleaver performs interleaving processing on the input data according to a preset mode, and outputs the interleaved data or directly inputs the input data. Data is output to the parallel MAP unit;
所述校验比特緩沖器在接收到所述主控制模块发出的读命令后 , 通过 校验比特选择器将第一校验比特 ρθ 或第二校验比特 pi 输出给所述并行 MAP单元;  After receiving the read command issued by the main control module, the check bit buffer outputs a first check bit ρθ or a second check bit pi to the parallel MAP unit through a check bit selector;
所述并行 MAP单元对输入自身的数据进行 MAP计算处理, 并将得到 的 MAP计算结果输出给所述第二交织器;所述第二交织器按照预设的模式 对输入的数据进行反交织和 /或解交织处理后输出反交织和 /或解交织后的 数据给所述先验信息緩沖器, 或直接将输入的数据输出给所述先验信息緩 沖器。  The parallel MAP unit performs MAP calculation processing on the data of the input itself, and outputs the obtained MAP calculation result to the second interleaver; the second interleaver deinterleaves the input data according to a preset mode. And/or deinterleaving processing, outputting the deinterleaved and/or deinterleaved data to the a priori information buffer, or directly outputting the input data to the a priori information buffer.
这里, 反交织处理是针对 TD/W模式的, LTE模式不需要反交织。 在 TD/W模式下, MAP迭代次数为偶数时,并行 MAP单元输出的计算结果本 身是未经交织的正序数据, 因此不需进行解交织而要进行反交织, 反交织 处理的目的是为了在下一次奇数次 MAP迭代时直接从先验信息緩沖器中 用正序地址读取交织数据,如此,解决 TD/W模式下多路并行交织的 memory 沖突问题。 其中, 反交织处理之后数据的顺序实际上就是交织之后的顺序。  Here, the de-interleaving process is for the TD/W mode, and the LTE mode does not require de-interleaving. In TD/W mode, when the number of MAP iterations is even, the calculation result of the parallel MAP unit output is itself uninterleaved positive sequence data, so deinterleaving is performed without deinterleaving. The purpose of deinterleaving is to The interleaved data is directly read from the a priori information buffer with the positive sequence address at the next odd MAP iteration, thus solving the memory conflict problem of the multiple parallel interleaving in the TD/W mode. The order of the data after the de-interlacing process is actually the order after the interleaving.
其中, 所述第二 TD/W 交织模块还包括緩存装置, 连接在所述第二 TD/W交织模块与先验信息緩沖器之间,或作为第二 TD/W交织模块内部的 一个部件与先验信息緩沖器相连,所述緩存装置包括 N个先进先出组( FIFO group )和 N个 N选一选择器, 一个先进先出组连接一个 N选一选择器, 其中, 各 FIFO group包含 N个先进先出緩沖器(FIFO ), —个 N选一选择 器的 N个输入端连接一个 FIFO grou 中 N个 FIFO的输出端; 其中, N表 示并行译码数据路数的最大值, N为 2的幂次方。 The second TD/W interleaving module further includes a buffer device connected to the second Between the TD/W interleaving module and the a priori information buffer, or as a component internal to the second TD/W interleaving module, the a priori information buffer, the buffer device comprising N first in first out groups (FIFO groups) And N select one selectors, a first in first out group is connected to an N select one selector, wherein each FIFO group includes N first in first out buffers (FIFOs), and N selects one input N input The end is connected to the output of N FIFOs in a FIFO grou; where N represents the maximum value of the number of parallel decoded data paths, and N is the power of 2.
这里, 所述并行 MAP单元包括 N个 MAP子单元; 所述先验信息緩沖 器、 系统比特緩沖器和校验比特緩沖器均匀划分为 N个子块(Bank )。  Here, the parallel MAP unit includes N MAP sub-units; the a priori information buffer, the systematic bit buffer, and the check bit buffer are evenly divided into N sub-blocks (Bank).
特别地, 所述 MAP子单元可以包括: Beta重叠窗(overlap )逆向递 推模块和 Beta滑窗逆向递推模块, 其中, beta overla 逆向递推模块用于计 算 beta滑窗的 overlap部分, beta滑窗逆向递推模块用于计算 beta滑窗的 滑窗部分。  Specifically, the MAP subunit may include: a Beta overlap recursive module and a Beta sliding window reverse recursive module, wherein the beta overla reverse recursive module is configured to calculate an overlap portion of the beta sliding window, and the beta sliding The window reverse recursive module is used to calculate the sliding window portion of the beta sliding window.
其中, 所述系统比特緩沖器、 以及所述校验比特緩沖器中的第一校验 比特緩沖器和第二校验比特緩沖器均采用乒乓结构, 每个緩沖器包含一个 乒(ping )子緩沖器和一个乓(pang )子緩沖器; 每个子緩沖器的内存组总 长度为 6144。  The system bit buffer, and the first parity bit buffer and the second parity bit buffer in the parity bit buffer all adopt a ping-pong structure, and each buffer includes a ping (ping) Buffer and a pang sub-buffer; the total memory bank size of each sub-buffer is 6144.
这里, 所述系统比特緩沖器、 第一校验比特緩沖器、 和第二校验比特 緩沖器包括两部分, 一部分的内存组长度为 5120, 另一部分内存组长度为 1024。  Here, the system bit buffer, the first parity bit buffer, and the second parity bit buffer comprise two parts, one part of which has a memory group length of 5120 and the other part of which has a length of 1024.
本发明还提供了一种并行译码方法, 所述方法可以包括: 通过 Turbo 译码器中的第一交织器对多路数据进行交织处理、通过并行 MAP单元进行 并行 MAP计算、 以及通过第二交织器对并行 MAP单元输出的 N个数据进 行反交织和 /或解交织处理、 并将反交织和 /或解交织处理后的数据回写到先 验信息緩沖器的 N个子块中。  The present invention also provides a parallel decoding method, the method may include: interleaving multiplexed data through a first interleaver in a Turbo decoder, performing parallel MAP calculation through a parallel MAP unit, and passing through a second The interleaver de-interleaves and/or deinterleaves the N data output by the parallel MAP unit, and writes the de-interleaved and/or de-interleaved data back into the N sub-blocks of the a priori information buffer.
其中,所述通过第二交织器对并行 MAP单元输出的 N个外赋信息进行 反交织和 /或解交织处理, 并将反交织和 /或解交织处理后的数据回写到先验 信息緩沖器的 N个子块当中, 包括: 按照第二交织器产生的多路行地址, 分别将所述并行 MAP 单元输出的多路外赋信息输入到所述緩存装置中对 应的多个先进先出组, 再按照所述 MAP单元输出的多路外赋信息的顺序, 将所述 MAP单元输出的多路先验信息和所述第二交织器产生的列地址对 应存放到各先进先出组中的先进先出緩沖器中。 The performing, by the second interleaver, the N external assignment information output by the parallel MAP unit Deinterleaving and/or deinterleaving processing, and writing back the deinterleaved and/or deinterleaved data to the N sub-blocks of the a priori information buffer, including: according to the multi-line address generated by the second interleaver, And inputting the multiple external assignment information outputted by the parallel MAP unit to a corresponding plurality of FIFO groups in the cache device, and then performing the MAP according to the sequence of the multiple routing information output by the MAP unit. The multipath a priori information output by the unit and the column address generated by the second interleaver are correspondingly stored in the FIFO buffers in each FIFO group.
其中, 所述将所述緩存装置緩存的多路数据输出, 包括: 所述緩存装 置中的各 N选一选择器选择输出各先进先出组中滞留数据最多的先进先出 緩沖器所緩存的外赋信息及其对应的列地址, 并以所述多路列地址作为写 地址将所述多路外赋信息写回到先验信息緩沖器的多个子块。  The outputting the multiplexed data buffered by the cache device includes: each N-selector in the cache device selects and outputs a buffer cached by a FIFO buffer with the most stagnation data in each FIFO group. The external assignment information and its corresponding column address are written to the plurality of sub-blocks of the a priori information buffer with the multi-way column address as a write address.
其中, 所述通过并行 MAP单元进行并行 MAP计算, 可以包括: 所述 并行 MAP单元中各 MAP子单元对输入自身的先验信息 ab、 系统比特 sb、 校验比特 pb进行 MAP计算, 输出为外信息 eb和硬比特 hdb, 包含 Alpha 计算过程和 Beta计算过程; 其中 , 所述 Alpha计算过程和 Beta计算过程包 括: 将每个 beta滑窗都分成 "overlap" 和 "滑窗", 设置 overlap和滑窗的 长度相等; 进行计算时, 第一个节拍计算第一个 beta滑窗的 overlap部分, 第二个节拍计算第一个 beta滑窗的滑窗部分, 同时计算第二个 beta滑窗的 overlap部分, 第三个节拍计算第一个滑窗的 alpha值和得到外信息 eb和硬 比特 hdb, 同时计算第二个滑窗的 beta滑窗部分, 同时计算第三个滑窗的 overla 部分, 依次类推, 直至得到最后一个 beta值和 alpha值。  The performing the parallel MAP calculation by the parallel MAP unit may include: each MAP subunit in the parallel MAP unit performs MAP calculation on the a priori information ab, the system bit sb, and the check bit pb of the input itself, and the output is external. The information eb and the hard bit hdb include an Alpha calculation process and a Beta calculation process; wherein, the Alpha calculation process and the Beta calculation process include: dividing each beta sliding window into "overlap" and "sliding window", setting overlap and sliding The length of the window is equal; when calculating, the first beat calculates the overlap portion of the first beta sliding window, the second beat calculates the sliding window portion of the first beta sliding window, and calculates the overlap of the second beta sliding window. In part, the third beat calculates the alpha value of the first sliding window and obtains the outer information eb and the hard bit hdb, and simultaneously calculates the beta sliding window portion of the second sliding window, and simultaneously calculates the overla portion of the third sliding window, in turn By analogy, until the last beta and alpha values are obtained.
实施例一  Embodiment 1
本实施例中, 提供一种同时支持 LTE模式和 TD/W模式的交织器, 并 同时提供一种包含该交织的 Turbo译码器,从而使得 Turbo译码器能够兼容 LTE模式和 TD/W模式。  In this embodiment, an interleaver supporting both the LTE mode and the TD/W mode is provided, and at the same time, a Turbo decoder including the interlace is provided, so that the Turbo decoder can be compatible with the LTE mode and the TD/W mode. .
具体地, 本实施例中提供的交织器, 用于按照预设的模式, 对输入的 数据进行交织处理和 /或解交织处理, 该交织器主要包括: LTE交织模块、 TD/W交织模块和选择器, 其中, 所述 LTE交织模块, 用于对输入的数据 进行 LTE模式的交织处理和 /或解交织处理; 所述 TD/W交织模块, 用于对 输入的数据进行 TD/W模式的交织处理和 /或解交织处理; 选择器, 用于选 择输出所述 LTE交织模块得到的数据或 TD/W交织模块得到的数据。 Specifically, the interleaver provided in this embodiment is configured to input the input according to a preset mode. The data is subjected to an interleaving process and/or a deinterleaving process, and the interleaver mainly includes: an LTE interleaving module, a TD/W interleaving module, and a selector, where the LTE interleaving module is configured to perform interlacing processing on the input data in an LTE mode. And/or deinterleaving processing; the TD/W interleaving module, configured to perform TD/W mode interleaving processing and/or deinterleaving processing on the input data; and a selector, configured to select and output the LTE interleaving module Data or data obtained by the TD/W interleaving module.
交织器中的 LTE交织模块和 TD/W交织模块可以仅开启其中之一。 具 体地, 交织器中的 LTE 交织模块和 TD/W 交织模块可以根据预设的模式 ( Mode )确定是否开启自身的交织功能。  The LTE interleaving module and the TD/W interleaving module in the interleaver can only turn on one of them. Specifically, the LTE interleaving module and the TD/W interleaving module in the interleaver can determine whether to enable the interleaving function according to a preset mode.
如图 2所示, 本实施例提供的 Turbo译码器主要包括: 先验信息緩沖 器、 系统比特緩沖器、 校验比特緩沖器、 校验比特选择器、 第一交织器、 并行 MAP单元、 第二交织器和主控制模块。  As shown in FIG. 2, the Turbo decoder provided in this embodiment mainly includes: a prior information buffer, a system bit buffer, a parity bit buffer, a parity bit selector, a first interleaver, a parallel MAP unit, The second interleaver and the main control module.
其中, 第一交织器用于按照预设的模式对输入的数据进行交织处理, 第一交织器包括第一 LTE交织模块、 第一 TD/W交织模块和第一选择器, 所述第一 LTE交织模块用于对输入的数据进行 LTE模式的交织处理, 所述 第一 TD/W交织器用于对输入的数据进行 TD/W模式的交织处理, 第一选 择器用于根据预设的模式(Mode ), 选择输出所述第一 LTE交织模块得到 的交织数据或第一 TD/W交织模块得到的交织数据到并行 MAP单元。如果 当前 Mode为 LTE模式, 第一选择器选择输出由第一 LTE交织模块输出的 先验信息 ab和系统比特 sb给并行 MAP单元, 如果当前 Mode为 TD/W模 式, 第一选择器选择输出由第一 TD/W交织模块输出的先验信息 ab和系统 比特 sb给并行 MAP单元。  The first interleaver is configured to perform interleaving processing on the input data according to a preset mode, where the first interleaver includes a first LTE interlace module, a first TD/W interleaving module, and a first selector, where the first LTE interlace The module is configured to perform interleaving processing on the input data in an LTE mode, where the first TD/W interleaver is configured to perform interleaving processing on the input data in a TD/W mode, and the first selector is configured to use a preset mode (Mode). And selecting to output the interleaved data obtained by the first LTE interleaving module or the interleaved data obtained by the first TD/W interleaving module to the parallel MAP unit. If the current mode is the LTE mode, the first selector selects and outputs the a priori information ab and the system bit sb output by the first LTE interleaving module to the parallel MAP unit. If the current mode is the TD/W mode, the first selector selects the output by The a priori information ab and the systematic bit sb output by the first TD/W interleaving module are given to the parallel MAP unit.
并行 MAP单元用于对输入自身的数据进行 MAP计算处理, 并将得到 的 MAP计算结果输出给第二交织器。  The parallel MAP unit is configured to perform MAP calculation processing on the data of the input itself, and output the obtained MAP calculation result to the second interleaver.
第二交织器用于按照预设的模式对输入的数据进行反交织和 /或解交织 处理, 该第二交织器包括第二 LTE交织模块、 第二 TD/W交织模块和第二 选择器, 所述第二 LTE交织模块用于对输入的数据进行 LTE模式的解交织 处理, 所述第二 TD/W交织模块用于对输入的数据进行 TD/W模式的解交 织和 /或反交织处理, 第二选择器用于根据预设的模式, 选择输出所述第二 LTE交织模块得到的数据或第二 TD/W交织模块得到的数据到先验信息緩 沖器。 The second interleaver is configured to perform deinterleaving and/or deinterleaving processing on the input data according to a preset mode, where the second interleaver includes a second LTE interlacing module, a second TD/W interleaving module, and a second a second LTE interleaving module, configured to perform deinterleaving processing on the input data in an LTE mode, where the second TD/W interleaving module is configured to deinterleave the input data in a TD/W mode and/or In the de-interleaving process, the second selector is configured to select, according to the preset mode, output data obtained by the second LTE interleaving module or data obtained by the second TD/W interleaving module to the a priori information buffer.
主控制模块用于控制译码过程的开始和结束; 先验信息緩沖器用于保 存上一次 MAP迭代中得到的先验信息 ab,系统比特緩沖器用于保存系统比 特 sb,校验比特緩沖器包括用于保存第一校验比特 ρθ的第一校验比特緩沖 器和用于保存第二校验比特 pi的第二校验比特緩沖器, 各緩沖器在接收到 主控制模块发出的读命令后, 将自身所保存的数据输出。  The main control module is used to control the start and end of the decoding process; the a priori information buffer is used to store the a priori information ab obtained in the last MAP iteration, the system bit buffer is used to store the system bit sb, and the check bit buffer includes a first check bit buffer storing a first check bit ρθ and a second check bit buffer for storing a second check bit pi, each buffer receiving a read command issued by the main control module, Output the data saved by itself.
具体地, 应用本实施例所提出的 Turbo译码器, 进行译码时, 译码过 程中的一次 MAP迭代过程为:  Specifically, when the Turbo decoder proposed in this embodiment is used for decoding, a MAP iterative process in the decoding process is:
主控制模块发出读命令给先验信息緩沖器、 系统比特緩沖器和校验比 特緩沖器;  The main control module issues a read command to the a priori information buffer, the system bit buffer, and the check bit buffer;
先验信息緩沖器和系统比特緩沖器在接收到主控制模块发出的读命令 后, 分别将先验信息 ab和系统比特 sb输出到第一交织器; LTE模式下, 在当前 MAP迭代次数为奇数时,第一交织器按照预设的模式对输入的先验 信息 ab和系统比特 sb进行交织处理后输出到并行 MAP单元,在当前 MAP 迭代次数为偶数时, 第一交织器直接将输入的先验信息 ab 和系统比特 sb 输出到并行 MAP单元; TD/W模式下, 在当前 MAP迭代次数为奇数时, 第一交织器按照预设的模式将事先已经经过反交织的先验信息 ab作为交织 的先验信息 ab直接输出到并行 MAP单元, 并对输入的系统比特 sb进行交 织处理后输出到并行 MAP单元, 在当前 MAP迭代次数为偶数时, 第一交 织器直接将输入的先验信息 ab和系统比特 sb输出到并行 MAP单元。  After receiving the read command issued by the main control module, the a priori information buffer and the system bit buffer respectively output the a priori information ab and the systematic bit sb to the first interleaver; in the LTE mode, the current MAP iteration number is an odd number The first interleaver interleaves the input a priori information ab and the systematic bit sb according to a preset mode, and outputs the result to the parallel MAP unit. When the current number of MAP iterations is even, the first interleaver directly inputs the first The information ab and the system bit sb are output to the parallel MAP unit. In the TD/W mode, when the current number of MAP iterations is an odd number, the first interleaver uses the a priori information ab that has been deinterleaved in advance as an interleaving according to a preset mode. The a priori information ab is directly output to the parallel MAP unit, and the input system bit sb is interleaved and output to the parallel MAP unit. When the current MAP iteration number is even, the first interleaver directly inputs the a priori information ab. And the system bit sb is output to the parallel MAP unit.
特别的, 在第零次 map迭代时, 先验信息 ab数据为空, 第一交织器直 接将输入的系统比特 sb输出到并行 MAP单元。 In particular, in the zeroth map iteration, the a priori information ab data is empty, the first interleaver is straight The input system bit sb is output to the parallel MAP unit.
校验比特緩沖器中的第一校验比特緩沖器和第二校验比特緩沖器在接 收到主控制模块发出的读命令后, 从主控制模块获取到当前 MAP迭代次 数, 判断当前 MAP迭代次数为奇数时, 通过校验比特选择器输出第二校验 比特 pi给并行 MAP单元 ,判断当前 MAP迭代次数为偶数时 ,通过校验比 特选择器输出第一校验比特 ρθ给并行 MAP单元;  After receiving the read command issued by the main control module, the first check bit buffer and the second check bit buffer in the check bit buffer acquire the current number of MAP iterations from the main control module, and determine the current number of MAP iterations. When the number is odd, the second check bit pi is output to the parallel MAP unit by the check bit selector, and when the current MAP iteration number is determined to be an even number, the first check bit ρθ is output to the parallel MAP unit by the check bit selector;
并行 MAP单元对输入的先验信息 ab、 系统比特 sb、 以及第一校验比 特 ρθ或第二校验比特 pi进行 MAP迭代运算处理后, 输出 MAP计算结果 给第二交织器。  The parallel MAP unit performs MAP iterative operation on the input a priori information ab, the systematic bit sb, and the first parity bit ρθ or the second parity bit pi, and outputs the MAP calculation result to the second interleaver.
在当前 MAP迭代次数为奇数时, 第二交织器对输入的 MAP外赋信息 进行解交织处理,得到解交织后的外赋信息 eb;在当前 MAP迭代次数为偶 数时, LTE模式下第二交织器直接将输入的 MAP计算结果作为自身的外赋 信息 eb, TD/W模式下第二交织器将输入的 MAP计算结果进行反交织处理, 得到外赋信息 eb。 第二选择器将该外赋信息 eb作为下一次 MAP迭代所需 的先验信息 ab输出到先验信息緩沖器緩存,或者将该外赋信息 eb对应的对 数域相似性 llr的正负性转换为 Turbo译码器的硬比特输出信息 hdb输出到 外部设备, 具体可以通过主控制模块进行控制。 例如, 主控制模块控制第 二交织器将该外赋信息 eb 对应的对数域 llr 的正负性转换为硬比特数据 hdb, 并在判断当前的 MAP迭代次数达到了预设的阈值或硬比特数据 hdb 校验正确时,控制 Turbo译码器将当前的硬比特数据 hdb作为 Turbo译码器 的译码结果输出到外部设备, 并结束当前译码过程; 在判断当前的 MAP迭 代次数未达到预设的阈值并且硬比特数据 hdb校验不正确时, 则控制第二 交织器将该外赋信息 eb作为下一次 MAP迭代所需的先验信息 ab输出到先 验信息緩沖器緩存, 并继续进行当前译码过程的下一次 MAP迭代。  When the current MAP iteration number is an odd number, the second interleaver deinterleaves the input MAP external assignment information to obtain the de-interleaved external assignment information eb; when the current MAP iteration number is even, the second interlace in the LTE mode The input MAP calculation result is directly used as its own external assignment information eb, and the second interleaver in the TD/W mode de-interleaves the input MAP calculation result to obtain the external assignment information eb. The second selector outputs the external assignment information eb as the a priori information ab required for the next MAP iteration to the a priori information buffer buffer, or the logarithmic domain similarity llr corresponding to the external assignment information eb is positive and negative The hard bit output information hdb converted to the Turbo decoder is output to an external device, which can be controlled by the main control module. For example, the main control module controls the second interleaver to convert the positive and negative polarity of the logarithmic domain 11r corresponding to the external assignment information eb into hard bit data hdb, and determines that the current number of MAP iterations reaches a preset threshold or hard bit. When the data hdb check is correct, the Turbo decoder is controlled to output the current hard bit data hdb as a decoding result of the Turbo decoder to the external device, and the current decoding process is ended; the current MAP iteration number is not up to the pre-determination When the threshold is set and the hard bit data hdb is incorrectly verified, the second interleaver is controlled to output the external information eb as the a priori information ab required for the next MAP iteration to the a priori information buffer buffer, and continues. The next MAP iteration of the current decoding process.
Turbo译码器进行译码的过程中,对外部输入的系统比特和校验比特进 行反复 MAP迭代, 每迭代一次, 迭代次数累加 1 , 直到 Turbo译码器输出 的硬比特数据 hdb校验正确或迭代次数达到了指定的数值。 During the decoding process of the Turbo decoder, the system bits and check bits of the external input are entered. The row repeats the MAP iteration, and each iteration, the number of iterations is incremented by 1, until the hard bit data hdb output by the Turbo decoder is correctly verified or the number of iterations reaches the specified value.
实际应用中 ,主控制模块可以通过对 MAP迭代次数进行计数,在 MAP 迭代次数达到预设的阈值时, 结束译码过程。 或者, 主控制模块还可以对 硬比特输出信息 hdb进行校验, 在校验正确时, 结束译码过程。  In practical applications, the main control module can count the number of MAP iterations and end the decoding process when the number of MAP iterations reaches a preset threshold. Alternatively, the main control module can also check the hard bit output information hdb, and when the check is correct, end the decoding process.
上述的第一交织器和第二交织器对于 LTE模式其在硬件结构以及算法 上可以是完全相同的, 所不同的是, 第一交织器用于实现交织, 第二交织 器用于实现解交织。 对于 TD/W模式, 第一交织器只需对输入的系统比特 sb进行交织处理, 而对于校验比特 pb和先验信息 ab不做任何处理, 直接 将输入的第一校验比特 ρθ或第二校验比特 pi , 以及先验信息 ab输出给并 行 MAP单元; 第二交织器在偶数次 MAP迭代时对并行 MAP单元输出的 外赋信息 eb进行反交织处理并将处理结果緩存于先验信息緩沖器中, 第二 交织器在奇数次 MAP迭代时对并行 MAP单元输出的外赋信息 eb进行解交 织处理并将处理结果緩存于先验信息緩沖器中。  The first interleaver and the second interleaver described above may be identical in hardware structure and algorithm for the LTE mode, except that the first interleaver is used to implement interleaving, and the second interleaver is used to implement deinterleaving. For the TD/W mode, the first interleaver only needs to interleave the input system bit sb, and does not perform any processing on the check bit pb and the a priori information ab, directly input the first check bit ρθ or the first The second parity bit pi and the a priori information ab are output to the parallel MAP unit; the second interleaver de-interleaves the external assignment information eb output by the parallel MAP unit at an even number of MAP iterations and buffers the processing result in the prior information. In the buffer, the second interleaver deinterleaves the external assignment information eb output by the parallel MAP unit at an odd number of MAP iterations and buffers the processing result in the a priori information buffer.
实施例二  Embodiment 2
本实施例中, 提供一种并行译码方法及相应的 Turbo译码器, 能够解 决 TD/W模式下并行译码的 memory沖突问题, 从而实现 TD/W模式下的 并行译码。  In this embodiment, a parallel decoding method and a corresponding Turbo decoder are provided, which can solve the memory conflict problem of parallel decoding in the TD/W mode, thereby implementing parallel decoding in the TD/W mode.
本实施例中, 并行译码的方法主要包括: 对多路数据进行交织处理、 并行 MAP计算以及解交织和 /或反交织处理后, 将解交织和 /或反交织处理 之后的多路数据及其对应的列地址经过緩存装置緩存并输出到先验信息緩 沖器的多个子块当中。  In this embodiment, the method for parallel decoding mainly includes: after performing interleaving processing, parallel MAP calculation, and deinterleaving and/or de-interleaving processing on the multiplexed data, the multiplexed data after the de-interleaving and/or de-interleaving processing and Its corresponding column address is buffered by the cache device and output to a plurality of sub-blocks of the a priori information buffer.
具体地, 按照所述第二交织器产生的行地址, 分别将所述并行 MAP单 元输出的多路外赋信息以及所述第二交织器产生的多路列地址输入到对应 的多个先进先出组( FIFO group ), 再按照所述并行 MAP单元输出多路外 赋信息的顺序, 将所述多路外赋信息及其对应的所述多路列地址分别对应 緩存到 FIFO grou 的先进先出緩沖器( FIFO, First In First Out ) 中。 Specifically, according to the row address generated by the second interleaver, the multiple derivation information output by the parallel MAP unit and the multi-path column address generated by the second interleaver are respectively input to corresponding multiple advanced firsts. Out group ( FIFO group ), and then output multiple channels according to the parallel MAP unit And assigning the information to the FIFO grou's first in first out buffer (FIFO, First In First Out).
实际应用中,将所緩存的多路数据输出, 包括: 所述緩存装置中的各 N 选一选择器通过比较 N个先进先出緩沖器(FIFO ) 中滞留数据的数量, 选 择输出各先进先出组中滞留数据最多的先进先出緩沖器所緩存的数据及其 对应的列地址到先验信息緩沖器的多个子块( Bank )。  In practical applications, the buffered multiplexed data is outputted, including: each N-selector in the cache device selects and outputs each advanced first by comparing the number of data retained in the N first-in first-out buffers (FIFOs) The data buffered by the FIFO buffer with the most data retained in the group and its corresponding column address are sent to multiple sub-blocks (Bank) of the a priori information buffer.
相应的, 本实施例提供的 Turbo译码器中, 包括: 緩存装置, 所述緩 存装置包括 N个先进先出组( FIFO group )和 N个 N选一选择器, 一个先 进先出组( FIFO group )连接一个 N选一选择器, 其中, 各 FIFO grou 包 含 N个 FIFO, —个 N选一选择器的 N个输入端连接一个 FIFO grou 中 N 个 FIFO的输出端。 这里, N表示并行译码数据路数的最大值, N为 2的幂 次方, 本实施例中, N的取值范围为 [1,16] , 具体可以根据实际应用的需要 来确定 N的取值。  Correspondingly, the Turbo decoder provided in this embodiment includes: a buffer device, where the buffer device includes N first-in first-out groups (FIFO groups) and N-n selection selectors, and a first-in first-out group (FIFO) Group ) connects an N-selector, where each FIFO grou contains N FIFOs, and the N inputs of an N-selector are connected to the outputs of N FIFOs in a FIFO grou. Here, N represents the maximum value of the number of parallel decoded data paths, and N is a power of 2, and in this embodiment, the value range of N is [1, 16], and specifically, N can be determined according to the needs of practical applications. Value.
具体地, 可以在实施例一提供的 Turbo译码器中增加所述緩存装置, 该緩存装置作为第二交织器的一部分, 实现本实施例的并行译码。 其中, 所述緩存装置可以连接在第二 TD/W交织模块与先验信息緩沖器之间, 或 作为第二 TD/W交织模块内部的一个部件与先验信息緩沖器相连。 相应的, 并行 MAP单元包括 N个 MAP子单元,如图 3所示的 MAP— 0、 MAP— 1 Specifically, the buffer device may be added to the turbo decoder provided in the first embodiment, and the buffer device is used as a part of the second interleaver to implement parallel decoding of the embodiment. The buffer device may be connected between the second TD/W interleaving module and the a priori information buffer, or may be connected to the a priori information buffer as a component inside the second TD/W interleaving module. Correspondingly, the parallel MAP unit includes N MAP sub-units, such as MAP-0, MAP-1 as shown in FIG.
MAP— N-l。 先验信息緩沖器、 系统比特緩沖器和校验比特緩沖器均匀划分 为 N个 Bank, 口图 3所示的 Bank— 0、 Bank—1、 ……、 Bank— N-l , 每个 Bank的大小相同, 对应的将一个数据码块划分 N个子数据码块, 每个子数 据码块的长度相同, 一个 Bank存放一个子数据码块。 如果一个数据码块的 长度为 K, 则每个子数据码块的长度为 L=K/N。 MAP — N-l. The a priori information buffer, the systematic bit buffer, and the check bit buffer are evenly divided into N banks, Bank-0, Bank-1, ..., Bank_Nl shown in Figure 3, each bank having the same size. Correspondingly, one data code block is divided into N sub-data code blocks, each sub-data code block has the same length, and one bank stores one sub-data code block. If the length of one data block is K, the length of each sub-code block is L = K / N.
本实施例中, 各交织器中的各交织模块均包括交织地址计算单元和交 叉单元, 其中, 交织地址计算单元用于按照相应的模式进行交织地址计算, 得到对数据进行交织处理或解交织处理的行地址和列地址; 交叉单元, 用 于将按照所述交织地址计算单元得到的列地址输入自身的数据, 依据所述 交织地址计算单元得到的行地址进行交叉排序。 例如, LTE 交织模块中的 交织地址计算单元用于按照 LTE模式下的交织算法和 /或解交织算法, 进行 交织地址计算; TD/W 交织模块中的第一交织地址计算单元则用于按照 TD/W模式下的交织算法和 /或解交织算法, 进行交织地址计算。 图 3 中, 第一交叉单元和第一交织地址计算单元用于共同实现对数据的交织处理, 第二交叉单元和第二交织地址计算单元用于共同实现对数据的解交织处 理。 In this embodiment, each interleave module in each interleaver includes an interleave address calculation unit and an interleave unit, where the interleave address calculation unit is configured to perform interleave address calculation according to the corresponding mode, Obtaining a row address and a column address for performing interleaving processing or deinterleaving processing on the data; a cross unit, configured to input the column address obtained by the interleaving address calculating unit into its own data, and obtain a row address according to the interleaving address calculating unit Perform cross sorting. For example, the interleave address calculation unit in the LTE interleave module is configured to perform interleave address calculation according to an interleave algorithm and/or a deinterleave algorithm in the LTE mode; the first interleave address calculation unit in the TD/W interleave module is used to follow the TD The interleaving algorithm and/or the de-interleaving algorithm in the /W mode performs interleaving address calculation. In FIG. 3, the first interleaving unit and the first interleaving address calculating unit are used to jointly implement interleaving processing on data, and the second interleaving unit and the second interleaving address calculating unit are used to jointly implement deinterleaving processing on data.
如图 3所示, Turbo译码器在 LTE模式下进行并行译码时, Turbo译码 器对外部输入的系统比特和校验比特进行一次 MAP迭代的过程如下:  As shown in Figure 3, when the Turbo decoder performs parallel decoding in the LTE mode, the Turbo decoder performs a MAP iteration on the externally input systematic bits and parity bits as follows:
第一交织地址计算单元每个节拍输出 N个 "列地址" 到系统比特緩沖 器和先验信息緩沖器的 N个 Bank,作为其读取自身所保存数据的 "读地址" , 同时, 每个节拍输出 N个 "行地址" 给交叉单元; 接收到主控制模块的读 命令后, 系统比特緩沖器和先验信息緩沖器分别按照所述 N个 "列地址" 从自身的 N个 Bank中读取 N个系统比特和 N个先验信息, 实现列交织, 并将列交织后的 N个系统比特或 N个先险信息输出到交叉单元; 所述交叉 单元按照所述 N个 "行地址", 分别输入的对 N个系统比特和 N个先险信 息进行交叉排序, 实现行交织, 并将行交织之后的 N个系统比特和 N个先 验信息送给并行 MAP单元的 N个 MAP子单元;  The first interleave address calculation unit outputs N "column addresses" to N banks of the system bit buffer and the a priori information buffer for each beat as a "read address" for reading data held by itself, and each The beat outputs N "row addresses" to the cross unit; after receiving the read command of the main control module, the system bit buffer and the a priori information buffer read from their own N banks according to the N "column addresses", respectively. Taking N systematic bits and N a priori information, implementing column interleaving, and outputting column interleaved N systematic bits or N first risk information to the intersecting unit; the intersecting unit according to the N "row addresses" And respectively inputting N system bits and N pre-risk information for cross-ordering, implementing row interleaving, and sending N system bits and N a priori information after row interleaving to N MAP sub-units of parallel MAP unit ;
接收到主控制模块的读命令后,第一校验比特緩沖器的 N个 Bank每个 节拍通过校验比特选择器输出 N个第一校验比特 ρθ到并行 MAP单元的 N 个 MAP子单元,或者第二校验比特緩沖器的 N个 Bank每个节拍输出 N个 第二校验比特 pi给校验比特选择器到并行 MAP单元的 N个 MAP子单元; 并行 MAP单元的 N个 MAP子单元分别对输入自身的系统比特、先验 信息、 以及第一校验比特 ρθ或第二校验比特 p 1进行 Max-Log-MAP计算, 得到 N个 MAP计算结果, 并将 N个 MAP计算结果输出给第二交叉单元, 第二交叉单元根据第二交织地址计算单元输出的 N个行地址, 对输入自身 的 N个 MAP计算结果进行交叉排序, 实现行解交织, 并在当前 MAP迭代 次数未达到预设的阈值或硬比特数据 hdb校验不正确时, 按照第二交织地 址计算单元输出的 N个列地址, 将所述 N个 MAP计算结果作为自身的外 赋信息写回到先验信息緩沖器的 N个 Bank,实现列解交织,至此一次 MAP 迭代完成,先验信息緩沖器的 N个 Bank所緩存的数据作为下一轮迭代的先 验信息。 After receiving the read command of the main control module, each of the N banks of the first check bit buffer outputs N first check bits ρθ to the N MAP sub-units of the parallel MAP unit through the check bit selector. Or N banks of the second parity bit buffer output N second parity bits pi to the check bit selector to N MAP sub-units of the parallel MAP unit; N MAP sub-units of the parallel MAP unit Enter the system bits, a priori, respectively The information, and the first check bit ρθ or the second check bit p 1 are subjected to Max-Log-MAP calculation, and N MAP calculation results are obtained, and the N MAP calculation results are output to the second cross unit, and the second cross unit According to the N row addresses output by the second interleave address calculation unit, the N MAP calculation results of the input itself are cross-ordered to implement line deinterleaving, and the current MAP iteration number does not reach a preset threshold or hard bit data hdb If the verification is incorrect, according to the N column addresses output by the second interleave address calculation unit, the N MAP calculation results are written as their own external assignment information to the N banks of the a priori information buffer to implement column deinterleaving. At this point, once the MAP iteration is completed, the data buffered by the N banks of the a priori information buffer is used as the a priori information of the next iteration.
其中, 对于 N个系统比特和 N个先险信息: 在当前 MAP迭代次数为 偶数时, 不需要对系统比特和先验信息进行交织处理, 因此, 第一交织地 址计算单元输出的所述 N个列地址,基于所述 N个系统比特和 N个先险信 息的正序地址对 L求模得到, 第一交织地址计算单元输出的所述 N个行地 址与所述并行 MAP单元中 N个 MAP子单元的顺序一致; 而在当前 MAP 迭代次数为奇数时, 需要对系统比特和先验信息进行交织处理, 因此, 第 一交织地址计算单元输出的 N个列地址,基于所述 N个系统比特和 N个先 验信息的交织地址对 L求模得到, 第一交织地址计算单元输出的所述 N个 行地址基于所述 N个系统比特和 N个先验信息的交织地址对 L求商得到。 这里, 系统比特和先验信息的正序地址为其保存地址。 系统比特和先验信 息的交织地址由第一交织地址计算单元对系统比特和先验信息的正序地址 进行交织计算得到。 同理, 第二交织地址计算单元输出的 N个列地址和 N 个行地址也通过上述方式得到, 不再赘述。  Wherein, for the N system bits and the N pieces of risk information: when the current number of MAP iterations is even, the system bits and the a priori information need not be interleaved, and therefore, the N pieces output by the first interleave address calculation unit a column address obtained by modulo L based on the positive sequence address of the N system bits and the N pieces of risk information, the N row addresses output by the first interleave address calculation unit and N MAPs in the parallel MAP unit The order of the subunits is the same; when the current number of MAP iterations is an odd number, the system bits and the a priori information need to be interleaved. Therefore, the N column addresses output by the first interleave address calculation unit are based on the N system bits. The interleave address of the N pieces of a priori information is obtained by modulo L, and the N row addresses output by the first interleave address calculation unit are obtained by quoting L based on the interleave address of the N system bits and the N pieces of prior information. . Here, the positive order address of the systematic bits and a priori information is its save address. The interleaving address of the systematic bit and the a priori information is calculated by interleaving the systematic bit and the positive sequence address of the prior information by the first interleaving address calculating unit. Similarly, the N column addresses and the N row addresses output by the second interleaving address calculation unit are also obtained in the above manner, and are not described again.
对于 N个第一校验比特 ρθ或第二校验比特 pi , 其读地址基于其正序 地址对每个 Bank中所保存子数据码块的长度求模得到; 第二交织地址计算 单元输出的所述 N个列地址, 基于所述 N个第一校验比特 ρθ或第二校验 比特 pi的正序地址对 L求模得到 ,第二交织地址计算单元输出的所述 N个 行地址与所述并行 MAP单元中 N个 MAP子单元的顺序一致。 For N first parity bits ρθ or second parity bits pi, the read address is obtained by modulo the length of the reserved sub-data code block in each bank based on its positive sequence address; the second interleave address calculation unit outputs The N column addresses, based on the N first parity bits ρθ or the second parity The positive sequence address of the bit pi is obtained by modulo L, and the N row addresses output by the second interleave address calculation unit are identical to the order of the N MAP subunits in the parallel MAP unit.
在 LTE模式下, 第一交织地址计算单元输出的 N个列地址相同, 实际 应用中, 可以用一个列地址表示。  In the LTE mode, the N column addresses output by the first interleave address calculation unit are the same, and in actual applications, one column address can be used.
Turbo译码器在 TD/W模式下进行并行译码时, Turbo译码器对外部输 入的系统比特和校验比特进行一次 MAP迭代的过程与 LTE模块下的一次 MAP迭代过程基本相同, 所不同的是: 为消除 memory沖突, 第二交叉单 元将 N个外赋信息输出后, 该 N个外赋信息输入到緩存装置中, 该緩存装 置按照所述第二交织地址计算单元产生的行地址以及并行 MAP单元输出 多路外赋信息的顺序, 将所述 N个外赋信息及其对应的、 由第二交织地址 计算单元产生的列地址緩存到自身, 之后根据各个先进先出组中各个 FIFO 所滞留数据的数量,每个节拍选择当前数据最多的 FIFO将其所緩存的数据 写入到先验信息緩沖器的 N个 Bank中。  When the Turbo decoder performs parallel decoding in the TD/W mode, the Turbo decoder performs the same MAP iteration process on the externally input system bits and check bits, and the MAP iterative process under the LTE module is basically the same. To eliminate the memory conflict, after the second cross unit outputs the N external assignment information, the N external assignment information is input to the buffer device, and the cache device generates the row address generated by the second interleave address calculation unit and The parallel MAP unit outputs the sequence of the multiple assignment information, buffers the N external assignment information and the corresponding column address generated by the second interleave address calculation unit to itself, and then according to each FIFO in each FIFO group The number of data retained, the FIFO that selects the current data for each beat writes its buffered data to the N banks of the a priori information buffer.
具体地, 如图 4所示, 所述所述緩沖装置包括 N个 FIFO grou 和 N个 N选一选择器,每个 FIFO grou 中包含 N个 FIFO, 即图 4所示的 FIFO— 0、 FIFO— 1、 FIFO— N-l。 其中, 根据所述第二交织器产生的 N个行地址, 将所 述并行 MAP单元输出的 N个外赋信息以及所述第二交织器产生的 N个列 地址应存放到 FIFO group, 同时, 由所述并行 MAP单元输出的 N个外赋信 息的顺序决定所述并行 MAP单元输出的 N个外赋信息以及所述 N个列地 址应存放的先进先出緩沖器(FIFO )。  Specifically, as shown in FIG. 4, the buffer device includes N FIFO grous and N N-selectors, and each FIFO grou includes N FIFOs, that is, FIFO_0, FIFO shown in FIG. — 1, FIFO — Nl. The N pieces of external assignment information output by the parallel MAP unit and the N column addresses generated by the second interleaver are stored in the FIFO group according to the N row addresses generated by the second interleaver, and The order of the N pieces of external information output by the parallel MAP unit determines N pieces of external assignment information output by the parallel MAP unit and a first in first out buffer (FIFO) to which the N column addresses should be stored.
如图 4所示, 緩存装置采用上述方式输出所緩存的外赋信息及列地址, 并以所述列地址作为写地址, 将所述外赋信息分别写入到先验信息緩沖器 的 N个 Bank中, 包括: 在 TD/W模式下, 第二交叉单元按照所述第二交织 地址计算单元产生的 N个行地址, 将第二交织地址计算单元产生的 N个列 地址与所述并行 MAP单元输出的 N个外赋信息一起输入到所述緩沖装置中 相应的 FIFO grou ,再根据所述并行 MAP单元输出的 N个外赋信息的顺序, 将所述 N个外赋信息和第二交织地址计算单元输出的 N个列地址对应緩存 到相应的 FIFO。 之后, 緩存装置中的各 N选一选择器每个节拍从自身所连 接 FIFO grou 的 N个 FIFO中选择滞留数据最多的一个 FIFO输出外赋信息 至先验信息緩沖器中的对应 Bank。 本发明经过建模统计, 各个 FIFO group 中的 FIFO深度收敛于一个有限的范围之内, N为 16时 FIFO的最大深度不 超过 8。 As shown in FIG. 4, the cache device outputs the cached external assignment information and the column address in the above manner, and writes the external assignment information to the N of the a priori information buffers by using the column address as a write address. In the Bank, the method includes: in the TD/W mode, the second interleave unit, according to the N row addresses generated by the second interleave address calculation unit, the N column addresses generated by the second interleave address calculation unit and the parallel MAP The N external assignment information output by the unit is input into the buffer device together Corresponding FIFO grou, according to the sequence of N pieces of external information output by the parallel MAP unit, buffer the N pieces of external assignment information and the N column addresses output by the second interleave address calculation unit to the corresponding FIFO. Thereafter, each of the N-selectors in the cache device selects one of the N FIFOs of the FIFO grou to which it is connected, and selects one of the FIFO output assignment information to the corresponding bank in the a priori information buffer. According to the modeling statistics, the FIFO depth in each FIFO group converges within a limited range, and the maximum depth of the FIFO does not exceed 8 when N is 16.
实施例三  Embodiment 3
本实施例中, Turbo译码器的结构与实施例一完全相同, 所不同的是, 系统比特緩沖器、 第一校验比特緩沖器、 第二校验比特緩沖器均采用乒乓 结构,每个緩沖器包含一个乒(ping )子緩沖器和一个乓(pang )子緩沖器。  In this embodiment, the structure of the turbo decoder is the same as that of the first embodiment, except that the system bit buffer, the first parity bit buffer, and the second parity buffer all adopt a ping-pong structure, and each The buffer contains a ping sub-buffer and a pang sub-buffer.
为了满足 LTE模式下最大码块长度为 6144的需求,每个子緩沖器的内 存组(Memory grou ) 总长度(Length ) 为 6144。 而在 TD/W模式下, 由 于最大码块长度仅为 5114, 因此, TD/W模式下每个子緩沖器在满足存放 一个最长码块的基础上还有部分空余, 鉴于此, 分别将系统比特緩沖器、 第一校验比特緩沖器、 和第二校验比特緩沖器拆分成两部分, 一部分的 Memory grou 长度为 5120, 另一部分 Memory grou 长度为 1024。  In order to meet the requirement of a maximum code block length of 6144 in LTE mode, the total length (Length) of each memory buffer (Memory grou) is 6144. In TD/W mode, since the maximum code block length is only 5114, each sub-buffer in TD/W mode has some spare space on the basis of storing one longest code block. In view of this, the system will be separately The bit buffer, the first parity buffer, and the second parity buffer are split into two parts, one portion of the Memory grou is 5120 in length, and the other Memory grou is 1024 in length.
如图 5中( a )所示,在 LTE模式下,各緩沖器中的两部分 Memory group 均用于存放相应的数据。 如图 5中 (b )所示, TD/W模式下最大码块长度 为 5114, 各緩沖器中长度为 5120的 Memory grou 用于存放相应的数据, 将各緩沖器中长度为 1024的 Memory group合并起来, 可以用于存放作为 交织后的系统比特。 其中, 长度为 1024的 Memory group合并起来总长度 为 6144, 而交织后的系统比特码块长度为 5114, 因此, 可以用于存放交织 之后的系统比特。  As shown in (a) of Figure 5, in LTE mode, the two memory groups in each buffer are used to store the corresponding data. As shown in Figure 5(b), the maximum code block length in the TD/W mode is 5114. The Memory Grou with a length of 5120 in each buffer is used to store the corresponding data. The Memory group with a length of 1024 in each buffer is shown. Combined, it can be used to store system bits as interlaced. The memory group of length 1024 is combined to have a total length of 6144, and the interleaved system bit code block length is 5114. Therefore, it can be used to store system bits after interleaving.
实施例四 本实施例中, Turbo译码器的结构、 以及并行译码过程与实施例二完全 相同。 特别地, 本实施例中, N取 16, 即所述并行 MAP单元内部包含 16 个 MAP子单元, 并行 MAP单元采用 Max-Log-MAP算法,各 MAP子单元 均为 Max-Log-MAP算法的硬件实现电路。 Embodiment 4 In this embodiment, the structure of the turbo decoder and the parallel decoding process are identical to those of the second embodiment. Specifically, in this embodiment, N is 16 , that is, the parallel MAP unit internally includes 16 MAP sub-units, and the parallel MAP unit adopts a Max-Log-MAP algorithm, and each MAP sub-unit is a Max-Log-MAP algorithm. Hardware implementation circuit.
图 6所示,每个 MAP子单元所要计算的数据长度为 L, L为一个 Bank 的子数据码块长度。 MAP子单元所实现的 Max— MAP— Log算法包含一个正 向递推的 Alpha计算过程和一个逆向递推的 Beta计算过程, Alpha序列和 Beta序列对应位置上的数据再做进一步的计算得出最终的 MAP计算结果。  As shown in Figure 6, the data length to be calculated for each MAP subunit is L, and L is the sub-data block length of a Bank. The Max-MAP-Log algorithm implemented by the MAP subunit includes a forward recursive Alpha calculation process and a reverse recursive Beta calculation process. The data of the corresponding positions of the Alpha sequence and the Beta sequence are further calculated. MAP calculation results.
如图 6中 a)所示为现有相关技术中, 并行 MAP模块中一个 MAP子单 元的逻辑结构图, 总共 sb、 pb、 ab三个输入, 输出外信息 eb和硬比特 hdb。  As shown in Figure 6 a), in the related art, a logical structure diagram of a MAP sub-unit in the parallel MAP module, a total of three inputs sb, pb, ab, output external information eb and hard bit hdb.
图 6中 b)为 a)所示逻辑结构下, 常规递推方式的实现示意图, 其中, beta递推过程是逆向的, beta逆向递推的过程为: 给倒数第一个 beta赋一 个初值, 然后根据公式 beta(i- 1 ) = f 1 (beta(i),gamma(i))依次得出倒数第二个 beta值、 倒数第三个 beta值 , 直到得到正数第一个 beta值。 而 alpha 递推过程是正向的, alpha逆向递推的过程为: 先给正数第一个 alpha赋一 个初值, 然后根据公式 alpha(i+l) = £2(alpha(i),gamma(i))—次得出第二个 alpha值, 第三个 alpha值…直到得到正数最后一个 alpha值。 其中,  Figure 6b) is a schematic diagram of the implementation of the conventional recursive method under the logical structure shown in a), wherein the beta recursive process is reversed, and the process of beta reverse recursion is: assigning an initial value to the first last beta Then, according to the formula beta(i- 1 ) = f 1 (beta(i), gamma(i)), the second to last beta value and the third last beta value are obtained, until the first beta value of the positive number is obtained. . The alpha recursion process is positive. The process of alpha reverse recursion is: first assign an initial value to the first alpha of the positive number, and then according to the formula alpha(i+l) = £2(alpha(i), gamma( i)) - Get the second alpha value, the third alpha value... until you get the last alpha value of the positive number. among them,
综上所述, alpha递推结果的输出顺序是这样的: 0,1,2,3...k, beta递推 结果的输出顺序是这样的: k,k-l,k-2...1,0。 其中, k表示数据长度。 通过 gamma緩沖器和 beta緩沖器将 alpha递推结果和 beta递推结果的次序调整 为一致, 在基于公式 eb(i) = G(alpha(i),beta(i))计算 eb, 得到硬判 hdb或 eb。  In summary, the output order of the alpha recursive result is as follows: 0,1,2,3...k, the output order of the beta recursive result is as follows: k,kl,k-2...1 , 0. Where k represents the data length. The order of the alpha recursive result and the beta recursive result are adjusted to be consistent by the gamma buffer and the beta buffer, and the eb is calculated based on the formula eb(i) = G(alpha(i), beta(i)). Hdb or eb.
具体地, sb、 pb、 ab三路输入是按照 beta的逆序输入的,得到的 gamma 值自然也是逆序的,那么送给 beta逆向递推模块的逆序 gamma值可以直接 供 beta逆向递推所用 , 同时, 将逆序的 gamma值緩存到 gamma緩沖器中 , 等 beta逆向递推完成后, 再从 gamma緩沖器中按照正序把 gamma值读出 来送给 alpha正向递推模块做 alpha正向递推。 并且, beta递推得到的逆序 的 beta值先緩存到 beta緩沖器中,等 alpha正序递推输出正序的 alpha值时, 从 beta緩沖器中按照正序读出 beta值, 与正序的 alpha值一起送给 eb计算 模块, eb计算模块进行 eb计算后输出正序的 eb值, 如此, 判决输出的 hdb 也是正序。 总之, 图 6的 b ) 中是先计算逆序的 beta值并保存, 再计算正 序的 alpha值, 同时读出正序的 beta值, 完成 eb和 hdb的计算。 Specifically, the three inputs of sb, pb, and ab are input in the reverse order of beta, and the obtained gamma value is naturally reversed, then the inverse gamma value sent to the beta reverse recursive module can be directly used for beta reverse recursion, and , the reverse gamma value is buffered into the gamma buffer, and after the beta reverse recursion is completed, the gamma value is read from the gamma buffer in the positive order. To give alpha forward recursive module to do alpha forward recursion. Moreover, the beta value of the reverse recursion obtained by the beta recursion is first buffered into the beta buffer, and when the alpha positive sequence recursively outputs the alpha value of the positive sequence, the beta value is read from the beta buffer in the positive order, with the positive sequence The alpha value is sent to the eb calculation module together, and the eb calculation module outputs the eb value of the positive sequence after the eb calculation. Thus, the hdb of the decision output is also the positive sequence. In summary, in b) of Fig. 6, the beta value of the reverse order is first calculated and saved, and the alpha value of the positive sequence is calculated, and the beta value of the positive sequence is read, and the calculation of eb and hdb is completed.
为了降低等待时间提高吞吐率, 同时也为了降低等待过程中緩存 Beta 值的 memory资源, 通常采用图 6中 c)所示的滑窗控制方式, 具体地, 将一 个长度为 k的数据包分成若干个滑窗, 每计算得到一个滑窗的 beta, 就开 始计算对应该滑窗的 alpha, 同时开始该滑窗的 eb和 hdb的计算。在计算当 前滑窗的 alpha和 eb\hdb的同时, 开始下一个滑窗的 beta计算, 如此, 当 前滑窗的 alpha和 eb\hdb计算完成时, 下一个滑窗的 beta也计算结束, 之 后, 可以开始下一个滑窗的 alpha和 eb\hdb的计算, 以此类推。 如此, 不需 要緩沖整个数据包得 k个 gamma值和 k个 beta值, 而只需緩存两个滑窗的 gamma值和 beta值即可, 降低了緩沖器的大小。  In order to reduce the waiting time and increase the throughput rate, and also to reduce the memory resources of the cached Beta value during the waiting process, the sliding window control mode shown in c) of FIG. 6 is generally adopted, specifically, a packet of length k is divided into several. A sliding window, each time calculating the beta of a sliding window, begins to calculate the alpha corresponding to the sliding window, and starts the calculation of eb and hdb of the sliding window. While calculating the alpha and eb\hdb of the current sliding window, the beta calculation of the next sliding window is started. Thus, when the alpha and eb\hdb calculations of the current sliding window are completed, the beta of the next sliding window is also calculated, and then You can start the calculation of alpha and eb\hdb for the next sliding window, and so on. In this way, it is not necessary to buffer the entire packet with k gamma values and k beta values, and only need to buffer the gamma value and the beta value of the two sliding windows, thereby reducing the size of the buffer.
图 6中 d)为图 c)所示递推方式的流水方式示意图, beta的每一个滑窗 都多带一个 overlap的长度,因此 beta滑窗的长度是 alpha滑窗长度的 2倍, 每一个 alpha滑窗计算完成后都要等待一个滑窗的时间再开始下一个滑窗 的计算。  Figure d) is a schematic diagram of the flow mode of the recursive mode shown in Figure c). Each sliding window of beta has an overlap length, so the length of the beta sliding window is twice the length of the alpha sliding window, each After the alpha sliding window is calculated, wait for a sliding window time before starting the calculation of the next sliding window.
图 6中 e)对图 a )进行改进后的 MAP子单元逻辑结构图, 将每个 beta 滑窗都分成 "overlap" 和 "滑窗" 两个部分, 设置 Beta overlap和 Beta滑 窗的长度相等, 并设置 Beta overla 逆向递推模块和 Beta滑窗逆向递推模 块, beta overlap逆向递推模块用于计算 beta滑窗的 overlap部分, beta滑 窗逆向递推模块用于计算 beta滑窗的滑窗部分。  Figure 6 is a logical structure diagram of the improved MAP subunit of Figure a). Each beta sliding window is divided into two parts: "overlap" and "sliding window". Set the length of the Beta overlap and the Beta sliding window to be equal. And set the Beta overla reverse recursive module and the Beta sliding window reverse recursive module, the beta overlap reverse recursive module is used to calculate the overlap portion of the beta sliding window, and the beta sliding window reverse recursive module is used to calculate the sliding window of the beta sliding window. section.
图 6中 f)为对应图 e )的流水线, 首先第一个节拍计算第一个 beta滑窗 的 overlap部分, 第二个节拍计算第一个 beta滑窗的滑窗部分, 同时计算第 二个 beta滑窗的 overlap部分, 第三个节拍计算第一个滑窗的 alpha/eb/hdb, 同时计算第二个滑窗的 beta滑窗部分,同时计算第三个滑窗的 overlap部分, 依次类推。 显而易见, 改进后的图 f)的流水线比图 d)的流水线时间更短, 速度更快, 提高了吞吐率和流水线的效率。 In Figure 6 f) is the pipeline corresponding to Figure e), first the first beat calculates the first beta sliding window The overlap portion, the second beat calculates the sliding window portion of the first beta sliding window, and calculates the overlap portion of the second beta sliding window, and the third beat calculates the alpha/eb/hdb of the first sliding window, Calculate the beta sliding window portion of the second sliding window, calculate the overlap portion of the third sliding window, and so on. Obviously, the improved pipeline of Figure f) is shorter and faster than the pipeline of Figure d), improving throughput and pipeline efficiency.
以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保 护范围。  The above is only the preferred embodiment of the present invention and is not intended to limit the scope of the present invention.

Claims

权利要求书 Claim
1、 一种交织器, 其特征在于, 所述交织器包括: LTE交织模块、 TD/W 交织模块和选择器; 其中,  An interleaver, the interleaver comprising: an LTE interlace module, a TD/W interleaving module, and a selector;
所述 LTE交织模块, 用于对输入的数据以及先验信息进行 LTE模式的 交织处理和 /或解交织处理;  The LTE interleaving module is configured to perform interlace processing and/or deinterleave processing on the input data and the a priori information in the LTE mode;
所述 TD/W交织模块, 用于对输入的数据以及先验信息进行 TD/W模 式的交织处理和 /或解交织处理;  The TD/W interleaving module is configured to perform TD/W mode interleaving processing and/or deinterleaving processing on the input data and the a priori information;
所述选择器, 用于选择输出所述 LTE交织模块得到的数据或 TD/W交 织模块得到的数据。  The selector is configured to select data obtained by outputting the LTE interleaving module or data obtained by the TD/W interworking module.
2、 一种 Turbo译码器, 其特征在于, 所述 Turbo译码器包括: 第一交 织器和第二交织器; 其中,  2. A Turbo decoder, the Turbo decoder comprising: a first interleaver and a second interleaver;
所述第一交织器包括第一 LTE交织模块、 第一 TD/W交织模块和第一 选择器, 所述第一 LTE交织模块用于对输入的数据以及上一次 MAP迭代 得到的外赋信息进行 LTE模式的交织处理, 所述第一 TD/W交织器用于对 输入的数据以及上一次 MAP迭代得到的外赋信息进行 TD/W模式的交织处 理, 第一选择器用于根据预设的模式, 选择输出所述第一 LTE交织模块得 到的交织数据或第一 TD/W交织模块得到的交织数据;  The first interleaver includes a first LTE interlace module, a first TD/W interleaving module, and a first selector, where the first LTE interleaving module is configured to perform input data and external information obtained by the last MAP iteration. The interleaving process of the LTE mode, the first TD/W interleaver is configured to perform TD/W mode interleaving processing on the input data and the external assignment information obtained by the last MAP iteration, and the first selector is configured to use the preset mode according to the preset mode. Selecting to output the interleaved data obtained by the first LTE interleaving module or the interleaved data obtained by the first TD/W interleaving module;
所述第二交织器包括第二 LTE交织模块、 第二 TD/W交织模块和第二 选择器, 所述第二 LTE交织模块用于对并行 MAP单元输出的外赋信息进 行 LTE模式的解交织处理, 所述第二 TD/W交织模块用于对并行 MAP单 元输出的外赋信息进行 TD/W模式的反交织处理和 /或解交织处理, 第二选 择器用于根据预设的模式, 选择输出所述第二 LTE交织模块得到的数据或 第二 TD/W交织模块得到的数据。  The second interleaver includes a second LTE interlace module, a second TD/W interleaving module, and a second selector, where the second LTE interleaving module is configured to deinterleave the external assignment information output by the parallel MAP unit in the LTE mode. Processing, the second TD/W interleaving module is configured to perform de-interleaving processing and/or de-interleaving processing in the TD/W mode on the external assignment information output by the parallel MAP unit, and the second selector is configured to select according to the preset mode. And outputting data obtained by the second LTE interleaving module or data obtained by the second TD/W interleaving module.
3、 根据权利要求 2所述的 Turbo译码器, 其特征在于, 所述 Turbo译 码器还包括: 先验信息緩沖器、 系统比特緩沖器、 校验比特緩沖器、 校验 比特选择器、 并行 MAP单元、 和主控制模块; 3. The turbo decoder according to claim 2, wherein the turbo decoder further comprises: a prior information buffer, a system bit buffer, a parity bit buffer, and a checksum. a bit selector, a parallel MAP unit, and a main control module;
其中, 主控制模块发出读命令给所述先验信息緩沖器、 系统比特緩沖 器和校验比特緩沖器 , 所述先验信息緩沖器和系统比特緩沖器在接收到所 述主控制模块发出的读命令后,分别将先验信息 ab和系统比特 sb输出到所 述第一交织器, 所述第一交织器按照预设的模式对输入的数据进行交织处 理后输出交织数据或直接将输入的数据输出给所述并行 MAP单元;  Wherein, the main control module issues a read command to the a priori information buffer, the system bit buffer and the check bit buffer, and the a priori information buffer and the system bit buffer are received by the main control module. After the command is read, the a priori information ab and the systematic bit sb are respectively output to the first interleaver, and the first interleaver performs interleaving processing on the input data according to a preset mode, and outputs the interleaved data or directly inputs the input data. Data is output to the parallel MAP unit;
所述校验比特緩沖器在接收到所述主控制模块发出的读命令后 , 通过 校验比特选择器将第一校验比特 ρθ 或第二校验比特 pi 输出给所述并行 MAP单元;  After receiving the read command issued by the main control module, the check bit buffer outputs a first check bit ρθ or a second check bit pi to the parallel MAP unit through a check bit selector;
所述并行 MAP单元对输入自身的数据进行 MAP计算处理, 并将得到 的 MAP计算结果输出给所述第二交织器;所述第二交织器按照预设的模式 对输入的数据进行反交织和 /或解交织处理后输出反交织和 /或解交织后的 数据或直接将输入的数据输出给所述先验信息緩沖器。  The parallel MAP unit performs MAP calculation processing on the data of the input itself, and outputs the obtained MAP calculation result to the second interleaver; the second interleaver deinterleaves the input data according to a preset mode. / or deinterleaving processing to output de-interleaved and / or deinterleaved data or directly output the input data to the a priori information buffer.
4、 根据权利要求 3所述的 Turbo译码器, 其特征在于, 所述 Turbo译 码器还包括: 緩存装置, 连接在所述第二 TD/W交织模块与先验信息緩沖 器之间, 或作为第二 TD/W交织模块的一个部件与先验信息緩沖器相连; 所述緩存装置包括 N个先进先出组( FIFO group )和 N个 N选一选择 器, 一个先进先出组连接一个 N选一选择器, 其中, 各 FIFO group包含 N 个先进先出緩沖器( FIFO ),一个 N选一选择器的 N个输入端连接一个 FIFO grou 中 N个 FIFO的输出端; 其中, N表示并行译码数据路数的最大值, N为 2的幂次方。  4. The turbo decoder according to claim 3, wherein the turbo decoder further comprises: a buffer device connected between the second TD/W interleaving module and the a priori information buffer, Or as a component of the second TD/W interleaving module, connected to the a priori information buffer; the buffer device includes N FIFO groups and N select one selectors, and a first in first out group connection An N-select selector, wherein each FIFO group includes N first-in first-out buffers (FIFOs), and N inputs of an N-selector are connected to outputs of N FIFOs in a FIFO grou; wherein, N Indicates the maximum value of the number of parallel decoded data paths, where N is the power of 2.
5、 根据权利要求 4所述的 Turbo译码器, 其特征在于,  5. The turbo decoder according to claim 4, wherein:
所述并行 MAP单元包括 N个 MAP子单元;  The parallel MAP unit includes N MAP subunits;
所述先验信息緩沖器、系统比特緩沖器和校验比特緩沖器均匀划分为 N 个子块(Bank )。 The a priori information buffer, the systematic bit buffer, and the check bit buffer are evenly divided into N sub-blocks (Bank).
6、 根据权利要求 5所述的 Turbo译码器, 其特征在于, 6. The turbo decoder according to claim 5, wherein:
所述 MAP子单元包括: Beta overla 逆向递推模块和 Beta滑窗逆向递 推模块,其中 , beta overla 逆向递推模块用于计算 beta滑窗的 overlap部分, beta滑窗逆向递推模块用于计算 beta滑窗的滑窗部分。  The MAP subunit includes: a Beta overla reverse recursive module and a Beta sliding window reverse recursive module, wherein a beta overla reverse recursive module is used to calculate an overlap portion of a beta sliding window, and a beta sliding window reverse recursive module is used for calculation The sliding window portion of the beta sliding window.
7、 根据权利要求 3至 6任一项所述的 Turbo译码器, 其特征在于, 所 述系统比特緩沖器、 以及所述校验比特緩沖器中的第一校验比特緩沖器和 第二校验比特緩沖器均采用乒乓结构, 每个緩沖器包含一个乒(ping )子緩 沖器和一个乓(pang ) 子緩沖器; 每个子緩沖器的内存组总长度为 6144。  The turbo decoder according to any one of claims 3 to 6, wherein: the system bit buffer, and a first parity buffer and a second of the parity buffer The check bit buffers are all in a ping-pong structure. Each buffer contains a ping sub-buffer and a pang sub-buffer; the total memory bank size of each sub-buffer is 6144.
8、 根据权利要求 7所述的 Turbo译码器, 其特征在于, 所述系统比特 緩沖器、 第一校验比特緩沖器、 和第二校验比特緩沖器分别包括两部分, 一部分的内存组长度为 5120, 另一部分内存组长度为 1024。  8. The turbo decoder according to claim 7, wherein the system bit buffer, the first parity bit buffer, and the second parity bit buffer respectively comprise two parts, a part of the memory group The length is 5120, and the other part of the memory group is 1024.
9、 一种并行译码方法, 其特征在于, 所述方法包括:  9. A parallel decoding method, the method comprising:
通过 Turbo译码器中的第一交织器对多路数据进行交织处理、 通过并 行 MAP单元进行并行 MAP计算后, 按照所述第二交织器产生的多路行地 址及所述并行 MAP单元输出多路数据的顺序, 将反交织和 /或解交织后的 多路数据和所述第二交织器产生的多路列地址緩存到所述 Turbo译码器的 緩存装置中, 再将所述緩存装置緩存的多路数据及相应的列地址输出给先 验信息緩沖器。  After the multiplexed data is interleaved by the first interleaver in the Turbo decoder and the parallel MAP is calculated by the parallel MAP unit, the multiplexed row address generated by the second interleaver and the parallel MAP unit are outputted. The order of the road data, buffering the deinterleaved and/or deinterleaved multiplexed data and the multiplexed column address generated by the second interleaver into the buffer device of the turbo decoder, and then the buffer device The buffered multiplexed data and the corresponding column address are output to the a priori information buffer.
10、 根据权利要求 9所述的并行译码方法, 其特征在于, 所述按照所 述第二交织器产生的多路行地址及所述并行 MAP单元输出多路数据的顺 序, 将反交织和 /或解交织后的多路数据和所述第二交织器产生的多路列地 址緩存到所述 Turbo译码器的緩存装置中, 包括:  The parallel decoding method according to claim 9, wherein the demultiplexing is performed according to the multiplexed row address generated by the second interleaver and the sequence of outputting multiplexed data by the parallel MAP unit. And/or the demultiplexed multiplexed data and the multiplexed column address generated by the second interleaver are buffered into the buffer device of the Turbo decoder, including:
按照所述第二交织器产生的行地址,分别将所述并行 MAP单元输出的 多路数据输入到所述緩存装置中对应的多个先进先出组, 再按照所述所述 并行 MAP单元输出多路数据的顺序, 将所述 MAP单元输出的多路先验信 息和所述第二交织器产生的列地址对应存放到各先进先出组中的先进先出 緩沖器中。 And inputting, by the row address generated by the second interleaver, the multiplexed data output by the parallel MAP unit to a corresponding plurality of FIFO groups in the cache device, and outputting according to the parallel MAP unit. Sequence of multiplexed data, multiple multiplexed signals output by the MAP unit And the column address generated by the second interleaver is correspondingly stored in the FIFO buffer in each FIFO group.
11、 根据权利要求 9所述的并行译码方法, 其特征在于, 所述将所述 緩存装置緩存的多路数据输出, 包括:  The parallel decoding method according to claim 9, wherein the outputting the multiplexed data buffered by the cache device comprises:
所述緩存装置中的各 N选一选择器选择输出各先进先出组中滞留数据 最多的先进先出緩沖器所緩存的数据及对应的列地址到先验信息緩沖器的 多个子块。  Each of the N select selectors in the cache device selects and outputs data buffered by the FIFO buffer having the most accumulated data in each of the FIFO groups and a corresponding column address to a plurality of sub-blocks of the a priori information buffer.
12、 根据权利要求 9至 11任一项所述的并行译码方法, 其特征在于, 所述通过并行 MAP单元进行并行 MAP计算 , 包括:  The parallel decoding method according to any one of claims 9 to 11, wherein the parallel MAP calculation by the parallel MAP unit comprises:
所述并行 MAP单元中各 MAP子单元对输入自身的先验信息 ab、 系统 比特 sb、 校验比特 pb进行 MAP计算, 输出为外信息 eb和硬比特 hdb, 包 含 Alpha计算过程和 Beta计算过程;  Each MAP subunit in the parallel MAP unit performs MAP calculation on the a priori information ab, the system bit sb, and the check bit pb of the input itself, and outputs the external information eb and the hard bit hdb, including the Alpha calculation process and the Beta calculation process;
其中, 所述 Alpha计算过程和 Beta计算过程包括: 将每个 beta滑窗都 分成 "overlap" 和 "滑窗", 设置 overlap和滑窗的长度相等; 进行计算时, 第一个节拍计算第一个 beta滑窗的 overlap部分, 第二个节拍计算第一个 beta滑窗的滑窗部分, 同时计算第二个 beta滑窗的 overlap部分, 第三个节 拍计算第一个滑窗的 alpha值和得到外信息 eb和硬比特 hdb,同时计算第二 个滑窗的 beta滑窗部分, 同时计算第三个滑窗的 overlap部分, 依次类推, 直至得到最后一个 beta值和 alpha值。  The Alpha calculation process and the Beta calculation process include: dividing each beta sliding window into "overlap" and "sliding window", setting the overlap and the sliding window to have the same length; when performing the calculation, the first beat is calculated first. The overlap portion of the beta sliding window, the second beat calculates the sliding window portion of the first beta sliding window, and calculates the overlap portion of the second beta sliding window. The third beat calculates the alpha value of the first sliding window and The outer information eb and the hard bit hdb are obtained, and the beta sliding window portion of the second sliding window is calculated, and the overlap portion of the third sliding window is calculated, and so on, until the last beta value and alpha value are obtained.
PCT/CN2011/082028 2011-11-10 2011-11-10 Parallel decoding method and turbo decoder WO2013067697A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/082028 WO2013067697A1 (en) 2011-11-10 2011-11-10 Parallel decoding method and turbo decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/082028 WO2013067697A1 (en) 2011-11-10 2011-11-10 Parallel decoding method and turbo decoder

Publications (1)

Publication Number Publication Date
WO2013067697A1 true WO2013067697A1 (en) 2013-05-16

Family

ID=48288458

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/082028 WO2013067697A1 (en) 2011-11-10 2011-11-10 Parallel decoding method and turbo decoder

Country Status (1)

Country Link
WO (1) WO2013067697A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1639986A (en) * 2001-11-19 2005-07-13 日本电气株式会社 Interleaving order generator, interleaver, Turbo encoder, and Turbo decoder
CN101616115A (en) * 2008-06-27 2009-12-30 华为技术有限公司 A kind of chain circuit self-adaptive method, data transmission device and communication system
CN101764667A (en) * 2008-12-26 2010-06-30 富士通株式会社 Wireless transmitting apparatus and method and wireless receiving apparatus and method
CN102130696A (en) * 2010-01-14 2011-07-20 联发科技股份有限公司 Interleaving/de-interleaving method, soft-in/soft-out decoding method and error correction code encoder and decoder utilizing the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1639986A (en) * 2001-11-19 2005-07-13 日本电气株式会社 Interleaving order generator, interleaver, Turbo encoder, and Turbo decoder
CN101616115A (en) * 2008-06-27 2009-12-30 华为技术有限公司 A kind of chain circuit self-adaptive method, data transmission device and communication system
CN101764667A (en) * 2008-12-26 2010-06-30 富士通株式会社 Wireless transmitting apparatus and method and wireless receiving apparatus and method
CN102130696A (en) * 2010-01-14 2011-07-20 联发科技股份有限公司 Interleaving/de-interleaving method, soft-in/soft-out decoding method and error correction code encoder and decoder utilizing the same

Similar Documents

Publication Publication Date Title
JP5479580B2 (en) Method and apparatus for parallel TURBO decoding in LTE
Kim et al. A unified parallel radix-4 turbo decoder for mobile WiMAX and 3GPP-LTE
KR101323444B1 (en) Iterative decoder
KR100955305B1 (en) Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutationqpp interleave
WO2011082509A1 (en) Method and device for decoding turbo code
Sun et al. Configurable and scalable high throughput turbo decoder architecture for multiple 4G wireless standards
JP5490320B2 (en) Turbo code parallel interleaver and its parallel interleaving method
JP6022085B2 (en) Method and apparatus for realizing multimode decoder
US7584389B2 (en) Turbo decoding apparatus and method
WO2012034097A1 (en) Accessing memory during parallel turbo decoding
Prescher et al. A parametrizable low-power high-throughput turbo-decoder
Wong et al. Turbo decoder using contention-free interleaver and parallel architecture
CN108270452B (en) Turbo decoder and decoding method
WO2012034398A1 (en) Method and device for implementing viterbi decoding
US20080115032A1 (en) Efficient almost regular permutation (ARP) interleaver and method
US7752530B2 (en) Apparatus and method for a collision-free parallel turbo decoder in a software-defined radio system
WO2013067697A1 (en) Parallel decoding method and turbo decoder
Chen et al. A 691 Mbps 1.392 mm 2 configurable radix-16 turbo decoder ASIC for 3GPP-LTE and WiMAX systems in 65nm CMOS
Karim et al. High-throughput turbo decoder using pipelined parallel architecture and collision-free interleaver
May et al. Evaluation of high throughput turbo-decoder architectures
KR101066287B1 (en) Apparatus and method for decoding using a map algorithm in mobile communication system
KR100625242B1 (en) Apparatus and method for turbo decoder
Liu et al. Benefit and cost of cross sliding window scheduling for low latency 5G Turbo decoding
Zhong et al. Hardware implementation of turbo coder in lte system based on picochip pc203
KR100355452B1 (en) Turbo decoder using MAP algorithm

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11875430

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11875430

Country of ref document: EP

Kind code of ref document: A1