WO2016151868A1 - Information processing apparatus, information processing method, and program - Google Patents

Information processing apparatus, information processing method, and program Download PDF

Info

Publication number
WO2016151868A1
WO2016151868A1 PCT/JP2015/059819 JP2015059819W WO2016151868A1 WO 2016151868 A1 WO2016151868 A1 WO 2016151868A1 JP 2015059819 W JP2015059819 W JP 2015059819W WO 2016151868 A1 WO2016151868 A1 WO 2016151868A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
state
row
path metric
stored
Prior art date
Application number
PCT/JP2015/059819
Other languages
French (fr)
Inventor
Xiao Peng
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Priority to JP2017549834A priority Critical patent/JP6551534B2/en
Priority to PCT/JP2015/059819 priority patent/WO2016151868A1/en
Publication of WO2016151868A1 publication Critical patent/WO2016151868A1/en

Links

Classifications

    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/395Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using a collapsed trellis, e.g. M-step algorithm, radix-n architectures with n>2
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management

Definitions

  • the present invention relates to an information processing apparatus, an information processing method, and programs.
  • Patent Literatures 1 and the Non Patent Literature 1 disclose a solution for the conflicting problem which comes from the state transferring property in the decoding process.
  • the disadvantage of this solution is that the hardware cost of the storage unit is double.
  • the extra hardware cost increases as the power of 2. For application with large state number, the extra hardware cost is not acceptable.
  • Patent Literature 1 with the dual-port RAM based implementation can only
  • the register based implementation can adapt to Viterbi decoder with any radix.
  • the Non Patent Literature 1 uses the register based implementation.
  • the hardware cost is quite high especially for the case of large possible state number.
  • the present invention enables to provide a technique of solving the above-described problem.
  • One aspect of the present invention provides an apparatus comprising:
  • path matric storing unit for storing path metric data
  • a reordering unit for changing positions of the path metric data
  • control unit for controlling the path metric data in Viterbi decoder.
  • Another aspect of the present invention provides a method comprising: storing path metric data;
  • the data conflicting problem is solved without extra PMSU and using RAM based implementation to realize Viterbi decoder with any radix.
  • Fig. 1 is a schematic diagram illustrating the basic Viterbi decoding process.
  • FIG. 2 is a diagram illustrating the three operations in each decoding step of Viterbi decoder.
  • FIG. 3 is a schematic diagram illustrating the basic architecture of the Viterbi decoder.
  • FIG. 4 is a schematic diagram illustrating the data conflicting problem in ACS processing.
  • FIG. 5 is a schematic diagram illustrating the solution to conflicting problem.
  • FIG. 6A is a schematic diagram illustrating the example of necessary number of RAM ports for radix-2 and radix-4 decoder.
  • Fig. 6B is a schematic diagram illustrating the example of necessary number of RAM ports for radix-2 and radix-4 decoder.
  • FIG. 7 is a schematic diagram illustrating the architecture of the first embodiment of the present invention.
  • FIG. 8 is a schematic diagram illustrating the PM data storing initialization method of the first embodiment.
  • FIG. 9 is a schematic diagram illustrating the first embodiment.
  • FIG. 10A is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
  • FIG. 10B is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
  • Fig. IOC is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
  • FIG. 10D is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
  • FIG. 10E is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
  • FIG. 10F is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
  • FIG. 11 A is a schematic diagram illustrating the PM data storing pattern transforming in the first embodiment.
  • FIG. 1 I B is a schematic diagram illustratmg the PM data storing pattern transforming in the first embodiment.
  • FIG. 12 is a schematic diagram illustrating the second embodiment of present invention.
  • FIG. 13 A is a schematic diagram illustrating the data transferring flow in the second embodiment for two adaptive cases.
  • FIG. 13B is a schematic diagram illustrating the data transferring flow in the second embodiment for two adaptive cases.
  • FIG. 13C is a schematic diagram illustrating the data transferring flow in the second embodiment for two adaptive cases.
  • FIG. 13D is a schematic diagram illustrating the data transferring flow in the second embodiment for two adaptive cases.
  • FIG. 14A is a schematic diagram illustrating the PM data storing pattern transforming in the second embodiment.
  • FIG. 14B is a schematic diagram illustrating the PM data storing pattern transforming in the second embodiment.
  • FIG. 15 is a schematic diagram illustrating the third embodiment of present invention.
  • Fig. 16A is a schematic diagram illustrating the data transferring flow in the third embodiment for two adaptive cases.
  • FIG. 16B is a schematic diagram illustrating the data transferring flow in the third embodiment for two adaptive cases.
  • FIG. 16C is a schematic diagram illustrating the data transferring flow in the third embodiment for two adaptive cases.
  • FIG. 16D is a schematic diagram illustrating the data transferring flow in the third embodiment for two adaptive cases.
  • Convolutional code is a type of error-correcting code which is used for eliminating errors in data transmission over unreliable or noisy channels. Convolutional codes are widely used in numerous areas and applications, including digital video, radio, fiber communication, and wireless communication.
  • the Viterbi algorithm is universally used as it provides
  • Viterbi decoders are thus the most popular VLSI hardware implementation solution of convolutional decoder.
  • Fig. 1 illustrates the basic procedure of Viterbi decoding for the case of two possible states.
  • the decoding is a step by step process. For each step, the transitions between the possible states form the possible paths. Thus, there is one-to-one correspondence between the possible paths and the possible decoding outputs.
  • the difference which is called the path metric (PM)
  • the target of the decoding process is to find a path with minimum PM, which means that this path and the actual path have the minimum difference, that is to say, this path has the minimum errors.
  • the number of possible paths increases in the exponential way. It is not wise to compare the PM at the end of decoding. Alternatively, it is easy to compare the PM of paths which have the same end point at each step.
  • the possible states are marked with the PM value which is the minimum one within the paths end at that state in the step.
  • the decoding process contains three operations, as shown in Fig. 2.
  • the first operation is adding the branch metrics (BM) to the PMs before this step.
  • the second operation is comparing the sums of the first operation.
  • the third operation is selecting the minimum results as the PMs after this step.
  • This three operation process is the so-called add-compare-select (ACS) process.
  • ACS add-compare-select
  • a branch metric unit (BMU) 301 is used to calculate a branch metric.
  • An add-compare-select unit (ACSU) 302 is used to carry out the ACS processing step by step.
  • PEs processing elements
  • the number of PM data which can be processed at one time of one processing element is called the radix of the Viterbi decoder.
  • the Viterbi decoder is marked as radix-n Viterbi decoder.
  • the number of PEs and the radix decide the parallelism of the decoder.
  • a path metric storage unit (PMSU) 303 is used for storing the PM of each step.
  • TBU (TBU) 304 is used to produce the final output.
  • the data conflicting problem comes from the state transferring property in the decoding process.
  • the position of each PM data is according with the corresponding state one by one.
  • the PM data are fetched from the PMSU 304 and fed into the processing unit.
  • the positions of these data in the PMSU 304 are called blank positions, which can be occupied by other data.
  • the processed data need to be stored into the PMSU 304. Since the state transition has quite high probability to transmit from one state to different state, the target positions of the processed data in the PMSU 304 and the blank positions in the PMSU 304 are probably different.
  • the data conflicting problem means that the target positions of the processed data conflict with the remaining data's positions.
  • Fig. 5 is the block diagram illustrating the solution to conflicting problem.
  • PMSU 501 and a PMSU 502 with the same size.
  • Two selectors 503, 504 are used to choose the proper PMSU in the processing.
  • the PMSU 502 is blank.
  • the PM data are fetched from the PMSU 501 and fed into the ACSU 302.
  • the processed data are stored into the PMSU 502 without data conflicting problem.
  • the PMSU 501 becomes blank and the ACS processing of this step is finished.
  • the PM data are fetched from the PMSU 502. With this processing loop, the conflicting problem can be avoided.
  • the storing unit can be implemented in VLSI circuit with
  • RAM random access memory
  • the port number of RAM is according with the number of radix in the RAM based implementation. Since there is only single-port and dual-port RAM in ordinary VLSI circuit, it is difficult to implement the radix-n Viterbi decoder wherein n is larger than 2 with the RAM based implementation.
  • RAM 601 and RAM 602 are the ordinary dual-port structure with one write port and one read port.
  • each of a PE 603 and a PE 604 can process two PM data, so the dual port RAM can satisfy the requirement.
  • the radix- 4 case in Fig. 6B each of a PE 613 and a PE 614 can process four PM data, port number should be double and two row of data should be read out at one time, which exceeds the limitation.
  • FIG. 7 A block diagram of an information processing apparatus 700 according to the first embodiment is shown in Fig. 7.
  • a PMSU 704 divided into several RAM blocks 741.
  • the PM data are initialized into these blocks 741 in cyclic shifting pattern. This architecture guarantees that the data needed for the same time can be fetched from different RAM blocks 741.
  • a reordering unit (RU) 705 is used to change the order of the PM data.
  • the RU 705 can be realized as one unit or divided into more than one parts.
  • a control unit (CU) 706 produces the selecting signals which can choose the proper row of the blocks in the PMSU 704 and the controlling signals which can control the RU 705.
  • the CU 706 can be realized as many forms, such as read only memory (ROM) based structure, logic gates based structure and processor based structure.
  • the CU 706 can be designed to enable multiple modes which are adaptive to various con- volutional codes with different possible states.
  • the PM data are fetched from the proper rows of the blocks of the PMSU 704 according to AG and fed into the RU 705.
  • the RU 705 is used to reorder the sequence of the PM data so that the PM data can be fed into a proper PE 721.
  • all the processed data are stored in the blank positions where the data have been brought out for processing. Based on this architecture, there is no conflicting problem and no need for additional storage unit.
  • the positions of the PM data in the PMSU 704 are not fixed, but in limited patterns.
  • the positions change from one pattern to another. After several steps, the pattern returns to the initial one.
  • the PM data storing initialization method is listed as following steps shown in Fig. 8, wherein the number of the PE 721 is denoted as "p,” the radix is denoted as “n,” the possible state number is denoted as "s.”
  • the first step is listing the PM data as the ascending order row by row.
  • the second step is splitting the whole block into n blocks.
  • the first embodiment is the implementation with the radix-2
  • Viterbi decoder Radix-2 Viterbi decoder is the most widely used Viterbi decoder.
  • the first embodiment is implemented for single convolutional code, or can be
  • the implementation is adaptive to two modes for two cases.
  • the possible state number is 32.
  • the possible state number is 16.
  • the PMSU 704 is divided into two blocks as BO and Bl .
  • the RU 705 is realized by several switches that are controlled by the CU 706.
  • the switches can connect to the desired ports and make data reordering.
  • the number of switches is the product of the number of PEs and the radix number. Therefore, there are 8 switches in the RU 705.
  • the CU 706 needs to provide 8 control signals to the switches in the RU 705 and 2 address signals for B0 and Bl.
  • the CU 706 is realized as the ROM structure.
  • the control signals are stored in a ROM 761 in advance. All the control signals which are needed at one time are stored at the same row. During the processing, the control signals are fetched out from the ROM 761 according to the processing mode and phase.
  • the first mode for the first case with 4 phases is illustrated in Fig. 10A, Fig. 10B, Fig. IOC and Fig. 10D.
  • the second mode for the second case with 2 phases is illustrated in Fig. 10E and Fig. 10F.
  • the PM data for the 32 possible states are stored in the two blocks in the PMSU 704 before processing.
  • the PM data for state 0, 1 , 2 and 3 are stored in the first row of B0.
  • the PM data for state 4, 5, 6 and 7 are stored in the first row of Bl .
  • the PM data for state 8, 9, 10 and 11 are stored in the second row of B0.
  • the PM data for state 12, 13, 14 and 15 are stored in the second row of B 1.
  • the PM data for state 16, 17, 18 and 19 are stored in the third row of B 1.
  • the PM data for state 20, 21, 22 and 23 are stored in the third row of BO.
  • the PM data for state 24, 25, 26 and 27 are stored in the fourth row of Bl.
  • the PM data for state 28, 29, 30 and 31 are stored in the fourth row of B0.
  • the storing order in the first layer including the first and the second row is the ascending order.
  • the storing order in the second layer including the third and fourth row is the cyclic shift pattern of the ascending order. For each block, only one row of the block can be read out at one time.
  • the processing of one ACS step contains 4 phases.
  • the input mode and the phase are both 0 for the CU 706.
  • the first row of the ROM 761 in the CU 706 is read out as the control signal.
  • the address signals from the CU 706 are 0 for B0 and 2 for Bl, so the PM data for state 0, 1, 2 and 3 in the first row of B0, and the PM data for state 16, 17, 18 and 19 in the third row of Bl are fetched from the PMSU 704. These PM data are reordered in the RU 705.
  • the control signals for the RU 705 are 02461357, which indicate the positions of the data after reordering.
  • the PM data for state 0 and 16 are fed into the PE 901
  • the PM data for state 1 and 17 are fed into the PE 902
  • the PM data for state 2 and 18 are fed into the PE 903
  • the PM data for state 3 and 19 are fed into the PE 904.
  • the processed data are for state 0, 1 , 2, 3, 4, 5, 6 and 7.
  • the processed data are marked as ⁇ ', , 2', 3', 4', 5', 6', T. This distinction will be used through this document.
  • the processed PM data ⁇ ', ⁇ , 2', 3', 4', 5', 6' and 7' are fed into the blank positions of the PMSU 704.
  • PM data for state ⁇ ', ⁇ , 2' and 3' are stored into the first row of B0.
  • PM data for state 4', 5', 6' and 7' are stored into the third row of B 1.
  • the input mode is 0 and the phase is 1 for the CU 706.
  • the second row of the ROM 761 in the CU 706 is read out as the control signal.
  • the address signals from the CU 706 are 1 for B0 and 3 for Bl , so the PM data for state 8, 9, 10 and 1 1 in the second row of B0, and the PM data for state 24, 25, 26 and 27 in the fourth row of B I are fetched from the PMSU 704. These PM data are reordered in the RU 705.
  • the control signals for the RU 705 are 02461357, which indicate the positions of the data after reordering.
  • the PM data for state 8 and 24 are fed into the PE 901
  • the PM data for state 9 and 25 are fed into the PE 902
  • the PM data for state 10 and 26 are fed into the PE 903
  • the PM data for state 11 and 27 are fed into the PE 904.
  • the processed PM data 8', 9', 10', I !', 12', 13', 14' and 15' are fed into the blank positions of the PMSU 704.
  • PM data for state 8', 9', 10' and ⁇ ⁇ are stored into the second row of B0.
  • PM data for state 12', 13', 14' and 15' are stored into the fourth row of Bl .
  • the input mode is 0 and the phase is 1 for the CU 706.
  • the second row of the ROM 761 in the CU 706 is read out as the control signal.
  • the address signals from the CU 706 are 1 for B0 and 3 for Bl, so the PM data for state 8, 9, 10 and 11 in the second row of B0, and the PM data for state 24, 25, 26 and 27 in the fourth row of B 1 are fetched from the PMSU 704. These PM data are reordered in the RU 705.
  • the control signals for the RU 705 are 02461357, which indicate the positions of the data after reordering.
  • the PM data for state 8 and 24 are fed into the PE 901
  • the PM data for state 9 and 25 are fed into the PE 902
  • the PM data for state 10 and 26 are fed into the PE 903
  • the PM data for state 11 and 27 are fed into the PE 904.
  • the processed PM data 8", 9', 10', 11', 12', 13', 14' and 15' are fed into the blank positions of the PMSU 704.
  • PM data for state 8', 9', 10' and 1 ⁇ are stored into the second row of B0.
  • PM data for state 12', 13', 14' and 15' are stored into the fourth row of Bl.
  • the third row of the ROM 761 in the CU 706 is read out as the control signal.
  • the address signals from the CU 706 are 2 for B0 and 0 for Bl, so the PM data for state 20, 21, 22 and 23 in the third row of B0, and the PM data for state 4, 5, 6 and 7 in the first row of B 1 are fetched from the PMSU 704. These PM data are reordered in the RU
  • the control signals for the RU 705 are 46025713, which indicate the positions of the data after reordering.
  • the PM data for state 22 and 6 are fed into the PE 901
  • the PM data for state 23 and 7 are fed into the PE 902
  • the PM data for state 20 and 4 are fed into the PE 903
  • the PM data for state 21 and 5 are fed into the PE 904.
  • the processed PM data 16', 17', 18', 19', 20', 21', 22' and 23' are fed into the blank positions of the PMSU 704.
  • PM data for state 20', 2 , 22' and 23' are stored into the third row of B0.
  • PM data for state 16', 17', 18' and 19' are stored into the first row of Bl .
  • the fourth row of the ROM 761 in the CU 706 is read out as the control signal.
  • the address signals from the CU 706 are 3 for BO and 1 for Bl, so the PM data for state 28, 29, 30 and 31 in the fourth row of B0, and the PM data for state 12, 13, 14 and 15 in the second row of B 1 are fetched from the PMSU 704. These PM data are reordered in the RU 705.
  • the control signals for the RU 705 are 46025713, which indicate the positions of the data after reordering.
  • the PM data for state 30 and 14 are fed into the PE 901
  • the PM data for state 31 and 15 are fed into the PE 902
  • the PM data for state 28 and 12 are fed into the PE 903
  • the PM data for state 29 and 13 are fed into the PE 904.
  • the processed PM data 24', 25', 26', 27', 28', 29', 30' and 31' are fed into the blank positions of the PMSU 704.
  • PM data for state 28', 29', 30' and 3 ⁇ are stored into the fourth row of B0.
  • PM data for state 24', 25', 26' and 27' are stored into the second row of Bl.
  • one ACS processing step is finished.
  • the PM data for the possible states are stored in different positions compared with the original positions.
  • the storing position pattern of PM data in the PMSU 704 is changed.
  • the storing position pattern of PM data return to the original positions in the PMSU 704.
  • the PM data for the 16 possible states are stored in the two blocks in the PMSU 704 before processing.
  • the PM data for state 0, 1, 2 and 3 are stored in the first row of B0.
  • the PM data for state 4, 5, 6 and 7 are stored in the first row of Bl.
  • the PM data for state 8, 9, 10 and 11 are stored in the second row of Bl.
  • the PM data for state 12, 13, 14 and 15 are stored in the second row of B0.
  • the storing order in the first row is the ascending order.
  • the storing order in the second row of the two blocks is the cyclic shift pattern of the ascending order. For each block, only one row of the block can be read out at one time.
  • the processing of one ACS step contains two phases. In the phase 0 shown in Fig.
  • the input mode is 1 and the phase is 0 for the CU 706.
  • the fifth row of the ROM 761 in the CU 706 is read out as the control signal.
  • the address signals from the CU 706 are 0 for B0 and 1 for B 1, so the PM data for state 0, 1, 2 and 3 in the first row of B0, and the PM data for state 8, 9, 10 and 11 in the second row of Bl are fetched from the PMSU 704. These PM data are reordered in the RU 705.
  • the control signals for the RU 705 are 02461357, which indicate the positions of the data after reordering.
  • the PM data for state 0 and 8 are fed into the PE 901
  • the PM data for state 1 and 9 are fed into the PE 902
  • the PM data for state 2 and 10 are fed into the PE 903
  • the PM data for state 3 and 11 are fed into the PE 904.
  • the processed PM data 0', V, 2', 3', 4', 5', 6' and T are fed into the blank positions of the PMSU 704.
  • PM data for state ⁇ ', ⁇ , 2' and 3' are stored into the first row of B0.
  • PM data for state 4', 5', 6' and 7 are stored into the second row of B l.
  • the input mode and the phase are both 1 for the CU 706.
  • the second row of the ROM 761 in the CU 706 is read out as the control signal.
  • the address signals from the CU 706 are 1 for B0 and 0 for Bl , so the PM data for state 12, 13, 14, 15 in the second row of B0, and the PM data for state 4, 5, 6, 7 i the first row of B 1 are fetched from the PMSU 704. These PM data are reordered in the RU 705.
  • the control signals for the RU 705 are still 46025713, which indicate the positions of the data after reordering.
  • the PM data for state 14 and 6 are fed into the PE 901
  • the PM data for state 15 and 7 are fed into the PE 902
  • the PM data for state 12 and 4 are fed into the PE 903
  • the PM data for state 3 and 11 are fed into the PE 904.
  • the processed data for state 8', 9', 10', 1 ⁇ , 12', 13', 14' and 15' are fed into blank positions of the PMSU 704.
  • PM data for state 12', 13', 14' and 15' are stored into the second row of BO.
  • PM data for state 8', 9', 10' and 1 ⁇ are stored into the first row of B 1.
  • a CU 1206 is realized as the ROM structure.
  • the control signals are stored in a ROM 1261 in advance. All the control signals which are needed at one time are stored at the same row. During the processing, the control signals are fetched out from the ROM 1261 according to the processing mode and phase.
  • the RU is divided into two parts RU 1201 and RU 1202.
  • the merit of dividing the RU into two parts is that the control signals will become simpler.
  • the RU 1201 is realized by several switches that are controlled by the CU 1206.
  • the switches can connect to the desired ports and make data reordering.
  • the number of switches is the product of the number of PEs and the radix number.
  • the RU 1202 is composed of several cross bar switches.
  • the cross bar switch has two inputs and two outputs. When the control signal is 0, the input data go through the cross bar switch in the input direction. When the control signal is 1, the input data go through the cross bar switch in the cross direction which means the output exchange the input order.
  • the present invention can be implemented for single convolutional code, or can be adaptive to various convolutional codes with different possible states at the same time.
  • the second embodiment is adaptive to two modes for two cases. In the first case, the possible state number is 16, PE number is 4. In the second case, the possible state number is 8, PE number is 2. There are 4 PEs in the ACSU 702 and 16 storing positions in the PMSU 1204. In the RU 1201, the number of switches is product of number of PEs and radix number. Therefore, there are 8 switches in the RU 1201 and 4 cross bar switches in the RU 1202. The CU 1206 needs to provide 8 control signals to the switches in the RU 1201, 2 address signals for B0 and Bl and 1 control signal for the cross bar switches in the RU 1202.
  • control signals are stored in the ROM 1261 of the CU 1206 in advance.
  • the first mode for the first case is illustrated in Fig. 13A and Fig. 13B.
  • the second mode for the second case is illustrated in Fig. 13C and Fig. 13D.
  • the PM data for the 16 possible states are stored in the two blocks in the PMSU 1204.
  • the PM data for state 0, 1, 2, and 3 are stored in the first row of B0.
  • the PM data for state 4, 5, 6, and 7 are stored in the first row of B 1.
  • the PM data for state 8, 9, 10, and 11 are stored in the second row of B l .
  • the PM data for state 12, 13, 14, and 15 are stored in the second row of B0.
  • the storing order in the first row of the two blocks is 0, 1, 2, 3, 4, 5, 6, 7, which is the ascending order.
  • the storing order in the second row of the two blocks is 12, 13, 14, 15, 8, 9, 10, 11, which is the cyclic shift pattern of the ascending order. For each block, only one row of the block can be read out at one time.
  • the processing of one ACS step contains two phases. In the phase 0 shown in Fig.
  • the input mode and the phase are both 0 for the CU 1206.
  • the first row of the ROM 1261 in the CU 1206 is read out as the control signal.
  • the address signals from the CU 1206 are 0 for BO and 1 for B 1 , so the PM data for state 0, 1 , 2, 3 in the first row of B0, and the PM data for state 8, 9, 10, 11 in the second row of B 1 are fetched from the PMSU 1204. These PM data are reordered in the RU 1201.
  • the control signals for the RU 1201 are 02461357, which indicate the positions of the data after reordering.
  • the PM data for state 0 and 8 are fed into the PE 901
  • the PM data for state 1 and 9 are fed into the PE 902
  • the PM data for state 2 and 10 are fed into the PE 903
  • the PM data for state 3 and 1 1 are fed into the PE 904.
  • the processed PM data ⁇ ', , 2', 3', 4', 5', 6' and 7' are fed into the RU 1202. Since the control signal is 0, all the cross switches keep the input order of PM data.
  • the PM data for state ⁇ ', ⁇ , 2', 3', 4', 5', 6' and T are stored into the blank positions.
  • PM data for state ⁇ ', , 2' and 3' are stored into the first row of B0.
  • PM data for state 4', 5', 6' and 7' are stored into the second row of Bl .
  • the input mode is 0 and the phase is 1 for the CU 1206.
  • the second row of the ROM 1261 in the CU 1206 is read out as the control signal.
  • the address signals from the CU 1206 are 1 for B0 and 0 for B l , so the PM data for state 12, 13, 14, 15 in the second row of B0, and the PM data for state 4, 5, 6, 7 in the first row of B 1 are fetched from the PMSU 1204. These PM data are reordered in the RU 1201.
  • the control signals for the RU 1201 are still 02461357, which indicate the positions of the data after reordering.
  • the PM data for state 14 and 6 are fed into the PE 901
  • the PM data for state 15 and 7 are fed into the PE 904
  • the PM data for state 12 and 4 are fed into the PE 903
  • the PM data for state 3 and 11 are fed into the PE 904.
  • the processed data for state 8', 9', 10', 11', 12', 13', 14' and 15' are fed into the RU 1202. Since the control signal is 1, all the cross bar switches exchange the input data order.
  • the PM data for state 12', 13', 14', 15', 8', 9', 10' and 11' are stored into the blank positions.
  • PM data for state 12', 13', 14' and 15' are stored into the second row of BO.
  • PM data for state 8', 9", 10' and 1 ⁇ are stored into the first row of B 1.
  • one ACS processing step is finished.
  • the PM data for the possible states are stored in different positions compared with the original positions.
  • the storing position pattern of PM data in the PMSU 1204 is changed.
  • the storing position pattern of PM data return to the original positions in the PMSU 1204.
  • the PM data for state 0, 1 are stored in the first row of BO.
  • the PM data for state 2, 3 are stored in the first row of B 1.
  • the PM data for state 4, 5 are stored in the second row of B 1.
  • the PM data for state 6, 7 are stored in the second row of B0.
  • the storing order in the first row of the two blocks is 0, 1, 2, 3, which is the ascending order.
  • the storing order in the second row of the two blocks is 6, 7, 4, 5, which is the cyclic shift pattern of the ascending order.
  • the processing of one ACS step also contains two phases.
  • the input mode is 1 and the phase is 0 for the CU 1206.
  • the third row of the ROM 1261 in the CU 1206 is read out as the control signal.
  • the address signals from the CU 1206 are 0 for B0 and 1 for B 1.
  • the PM data for state 0 and 1 in the first row of B0, and the PM data for state 4 and 5 in the second row of B 1 are fetched from the PMSU 1204. These PM data are reordered in the RU 1201.
  • the control signals for the RU 1201 are 0415, which indicate the positions of the data after reordering. After the reordering in the RU 1201, the PM data for state 0 and 4 are fed into the PE 901, the PM data for state 1 and 5 are fed into the PE 903.
  • the processed PM data for state 0', 1 ', 2' and 3' are fed into the RU 1202. Since the control signal is 0, all the cross switches keep the input order of PM data.
  • the PM data for state ⁇ ', , 2' and 3' are stored into the blank positions.
  • PM data for state 0' and ⁇ are stored into the first row of B0.
  • PM data for state 2' and 3' are stored into the second row of Bl.
  • the input mode and the phase are both 1 for the CU 1206.
  • the fourth row of the ROM 1261 in the CU 1206 is read out as the control signal.
  • the address signals from the CU 1206 are 1 for B0 and 0 for B 1.
  • the PM data for state 6 and 7 in the second row of B0, and the PM data for state 2 and 3 in the first row of B 1 are fetched from the PMSU 1204. These PM data are reordered in the RU 1201.
  • the control signals for the RU 1201 are 0415, which indicate the positions of the data after reordering. After the reordering in the RU 1201, the PM data for state 7 and 3 are fed into the PE 901, the PM data for state 6 and 2 are fed into the PE 903.
  • the processed PM data for state 4', 5', 6' and T are fed into the RU 1202. Since the control signal is 1, all the cross switches exchange the input order of PM data.
  • the processed data for state 6', 7', 4', and 5' are stored into the blank positions.
  • PM data for state 6' and 7' are stored into the second row of B0.
  • PM data for state 4' and 5' are stored into the first row of Bl .
  • the storing position pattern of PM data in the PMSU 1204 is changed.
  • the storing position pattern of PM data return to the original positions in the PMSU 1204.
  • FIG. 15 An information processing apparatus 1500 according to the third embodiment is shown in Fig. 15, the CU 1506 is realized as the logic gates based structure.
  • the control signals are not stored in advance, but produced in real time by the logic gates according to the input mode and phase.
  • the RU is still divided into two parts RU 1501 and RU 1502.
  • the RU 1501 is realized by several switches that are controlled by the CU 1506.
  • the switches can connect to the desired ports and make data reordering.
  • the number of switches is the product of the number of PEs and the radix number.
  • the RU 1502 is composed of several cross bar switches.
  • the cross bar switch has two inputs and two outputs. When the control signal is 0, the input data go through the cross bar switch in the input direction. When the control signal is 1, the input data go through the cross bar switch in the cross direction which means the output exchange the input order.
  • the third embodiment is also adaptive to two modes for two cases.
  • the possible state number is 16, PE number is 4.
  • the possible state number is 8, PE number is 2.
  • the design for this adaptive architecture should satisfy the maximum requirement.
  • the number of switches is product of number of PEs and radix number. Therefore, there are 8 switches in the RU 1501 and 4 cross bar switches in the RU 1502.
  • the CU 1506 needs to provide 8 control signals to the switches in the RU 1501, 2 address signals for B0 and B l and 1 control signal for the cross bar switches in the the RU 1502.
  • [0081 J AO, Al , A2, A3, A4 and A5 in the CU 1506 are the adders with two inputs and one output.
  • M0 and Ml are multiplexers controlled by the mode signal. When mode is 0, the output is the left input. When mode is 1, the output is the right input.
  • SO, SI, S2 and S3 are the switches controlled by the mode signal. When mode is 0, the switch is in connecting state. When mode is 1, the switch is in cutting off state. NO is the invertor which turns 0 to 1 or turns 1 to 0.
  • the first mode for the first case is illustrated in Fig. 16A and Fig. 16B.
  • the second mode for the second case is illustrated in Fig. 16C and Fig. 16D.
  • the PM data for the 16 possible states are stored in the two blocks in the PMSU 1504 before processing.
  • the PM data for state 0, 1, 2, and 3 are stored in the first row of B0.
  • the PM data for state 4, 5, 6, and 7 are stored in the first row of B 1.
  • the PM data for state 8, 9, 10, and 11 are stored in the second row of Bl.
  • the PM data for state 12, 13, 14, and 15 are stored in the second row of BO.
  • the storing order in the first row of the two blocks is 0, 1, 2, 3, 4, 5, 6, 7, which is the ascending order.
  • the storing order in the second row of the two blocks is 12, 13, 14, 15, 8, 9, 10, 1 1, which is the cyclic shift pattern of the ascending order. For each block, only one row of the block can be read out at one time.
  • the processing of one ACS step contains two phases. In the phase 0 shown in Fig.
  • the input mode and the phase are both 0 for the CU 1506.
  • M0 and Ml choose the left input.
  • SO, SI, S2 and S3 are in connecting state.
  • the CU 1506 generates the address signals 0 for B0 and 1 for Bl , so the PM data for state 0, 1, 2 and 3 in the first row of B0, and the PM data for state 8, 9, 10 and 1 1 in the second row of B 1 are fetched from the PMSU 1504. These PM data are reordered in the RU.
  • the control signals for the RU 1501 are 02461357, which indicate the positions of the data after reordering.
  • the PM data for state 0 and 8 are ted into the PE 901
  • the PM data for state 1 and 9 are fed into the PE 902
  • the PM data for state 2 and 10 are fed into the PE 903
  • the PM data for state 3 and 1 1 are fed into the PE 904.
  • the processed PM data 0', 1 ', 2', 3', 4', 5', 6' and 7' are fed into the the RU 1502. Since the control signal is 0, all the cross switches keep the input order of PM data.
  • the PM data for state ⁇ ', ⁇ , 2', 3', 4', 5', 6' and T are stored into the blank positions.
  • PM data for state ⁇ ', , 2' and 3' are stored into the first row of B0.
  • PM data for state 4', 5', 6' and T are stored into the second row of Bl.
  • the input mode is 0 and the phase is 1 for the CU 1506.
  • M0 and Ml choose the left input.
  • SO, SI, S2 and S3 are in connecting state.
  • the CU 1506 generates the address signals 1 for B0 and 0 for Bl, so the PM data for state 12, 13, 14, 15 in the second row of B0, and the PM data for state 4, 5, 6, 7 in the first row of Bl are fetched from the PMSU 1504. These PM data are reordered in the RU 1501.
  • the control signals for the RU 1501 are still 02461357, which indicate the positions of the data after reordering.
  • the PM data for state 14 and 6 are fed into the PE 901
  • the PM data for state 15 and 7 are fed into the PE 902
  • the PM data for state 12 and 4 are fed into the PE 903
  • the PM data for state 3 and 11 are fed into the PE 904.
  • the processed data for state 8', 9', 10', 11', 12', 13', 14' and 15' are fed into the RU 1502. Since the control signal is 1, all the cross bar switches exchange the input data order.
  • the PM data for state 12', 13', 14', 15', 8', 9', 10' and 1 ⁇ are stored into the blank positions.
  • PM data for state 12', 13', 14' and 15' are stored into the second row of B0.
  • PM data for state 8', 9', 10' and 11 ' are stored into the first row of Bl.
  • one ACS processing step is finished.
  • the PM data for the possible states are stored in different positions compared with the original positions.
  • the storing position pattern of PM data in the PMSU 1504 is changed.
  • the storing position pattern of PM data return to the original positions in the PMSU 1504.
  • the PM data for state 0, 1 are stored in the first row of B0.
  • the PM data for state 2, 3 are stored in the first row of B 1.
  • the PM data for state 4, 5 are stored in the second row of B 1.
  • the PM data for state 6, 7 are stored in the second row of B0.
  • the storing order in the first row of the two blocks is 0, 1, 2, 3, which is the ascending order.
  • the storing order in the second row of the two blocks is 6, 7, 4, 5, which is the cyclic shift pattern of the ascending order.
  • the processing of one ACS step also contains two phases.
  • the input mode is 1 and the phase is 0 for the CU 1506.
  • M0 and Ml choose the right input.
  • SO, SI , S2 and S3 are in cutting off state.
  • the CU 1506 generates the address signals 0 for B0 and 1 for Bl.
  • the PM data for state 0 and 1 in the first row of B0, and the PM data for state 4 and 5 in the second row of B 1 are fetched from the PMSU 1504. These PM data are reordered in the RU 1501.
  • the control signals for the RU 1501 are 1502, which indicate the positions of the data after reordering. After the reordering in the RU 1501, the PM data for state 0 and 4 are fed into the PE 901, the PM data for state 1 and 5 are fed into the PE 903.
  • the processed PM data for state 0', 1', 2' and 3' are fed into the RU 1502. Since the control signal is 0, all the cross switches keep the input order of PM data.
  • the PM data for state ⁇ ', ⁇ , 2' and 3' are stored into the blank positions.
  • PM data for state 2' and 3' are stored into the second row of Bl.
  • the input mode and the phase are both 1 for the CU 1506.
  • M0 and Ml choose the right input.
  • SO, SI, S2 and S3 are in cutting off state.
  • the CU 1506 generates the address signals 1 for B0 and 0 for Bl.
  • the PM data for state 6 and 7 in the second row of B0, and the PM data for state 2 and 3 in the first row of B 1 are fetched from the PMSU 1504. These PM data are reordered in the RU 1501.
  • the control signals for the RU 1501 are 0415, which indicate the positions of the data after reordering. After the reordering in the RU 1501, the PM data for state 7 and 3 are fed into the PE 901, the PM data for state 6 and 2 are fed into the PE 903.
  • the processed PM data for state 4', 5', 6' and 7' are fed into the RU 1502. Since the control signal is I, all the cross switches exchange the input order of PM data.
  • the processed data for state 6', 7', 4', and 5' are stored into the blank positions.
  • PM data for state 6' and 7' are stored into the second row of B0.
  • PM data for state 4' and 5' are stored into the first row of B 1.
  • the storing position pattern of PM data in the PMSU 1504 is changed.
  • the storing position pattern of PM data return to the original positions in the PMSU 1504.
  • the logic gates based implementation can be easily realized in the processor based implementation. The only difference is that in the processor based implementation, the control signals are produced by the processor.
  • the present invention is applicable to a system including a plurality of devices or a single apparatus.
  • the present invention is also applicable even when a control program for implementing the functions of the embodiments is supplied to the system or apparatus directly or from a remote site.
  • the present invention also incorporates the control program installed in a computer to implement the functions of the present invention on the computer, a medium storing the control program, and a WWW (World Wide Web) server that causes a user to download the control program.
  • the present invention specifically incorporates at least a non-transitory computer readable medium storing a program for causing the computer to execute the processing steps included in the above-described embodiments.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

An information processing apparatus comprising a path matric storing unit for storing path metric data, a reordering unit for changing positions of the path metric data and a control unit for controlling the path metric data in Viterbi decoder in order to make the data conflicting problem solved without extra PMSU and using RAM based implementation to realize Viterbi decoder with any radix.

Description

Description
Title of Invention: INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND PROGRAM Technical Field
[0001] The present invention relates to an information processing apparatus, an information processing method, and programs.
Background Art
[0002] The Patent Literatures 1 and the Non Patent Literature 1 disclose a solution for the conflicting problem which comes from the state transferring property in the decoding process. The disadvantage of this solution is that the hardware cost of the storage unit is double. The extra hardware cost increases as the power of 2. For application with large state number, the extra hardware cost is not acceptable.
[0003] The Patent Literature 1 with the dual-port RAM based implementation can only
realize radix-2 Viterbi decoder. The register based implementation can adapt to Viterbi decoder with any radix. The Non Patent Literature 1 uses the register based implementation. The hardware cost is quite high especially for the case of large possible state number.
Citation List
Patent Literature
[0004] [PTL 1 ] US patent US6477682B 1
Non Patent Literature
[0005] [NPL 1 ] IEEE ICC 2009 proceedings "Architecture of Run-time Reconfigurable Channel Decoder"
Summary of Invention
Technical Problem
[0006] However, the data conflicting problem has not been solved without extra PMSU and using RAM based implementation to realize Viterbi decoder with any radix.
[0007] The present invention enables to provide a technique of solving the above-described problem.
Solution to Problem
[0008] One aspect of the present invention provides an apparatus comprising:
a path matric storing unit for storing path metric data;
a reordering unit for changing positions of the path metric data; and
a control unit for controlling the path metric data in Viterbi decoder.
[0009] Another aspect of the present invention provides a method comprising: storing path metric data;
changing positions of the path metric data; and
controlling the path metric data in Viterbi decoder.
Advantageous Effects of Invention
[0010] According to the present invention, the data conflicting problem is solved without extra PMSU and using RAM based implementation to realize Viterbi decoder with any radix.
Brief Description of Drawings
[0011] [fig.l]Fig. 1 is a schematic diagram illustrating the basic Viterbi decoding process.
[fig.2]Fig. 2 is a diagram illustrating the three operations in each decoding step of Viterbi decoder.
[fig.3]Fig. 3 is a schematic diagram illustrating the basic architecture of the Viterbi decoder.
[fig.4]Fig. 4 is a schematic diagram illustrating the data conflicting problem in ACS processing.
[fig.5]Fig. 5 is a schematic diagram illustrating the solution to conflicting problem. [fig.6A]Fig. 6A is a schematic diagram illustrating the example of necessary number of RAM ports for radix-2 and radix-4 decoder.
[fig.6B]Fig. 6B is a schematic diagram illustrating the example of necessary number of RAM ports for radix-2 and radix-4 decoder.
[fig.7]Fig. 7 is a schematic diagram illustrating the architecture of the first embodiment of the present invention.
[fig.8]Fig. 8 is a schematic diagram illustrating the PM data storing initialization method of the first embodiment.
[fig.9]Fig. 9 is a schematic diagram illustrating the first embodiment.
[fig.l0A]Fig. 10A is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
[fig.l0B]Fig. 10B is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
[fig.l 0C]Fig. IOC is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
[fig.l0D]Fig; 10D is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
[fig.l0E]Fig. 10E is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases.
[fig.l0F]Fig. 10F is a schematic diagram illustrating the data transferring flow in the first embodiment for two adaptive cases. [fig.11 A]Fig. 11 A is a schematic diagram illustrating the PM data storing pattern transforming in the first embodiment.
[fig.1 l B]Fig. 1 I B is a schematic diagram illustratmg the PM data storing pattern transforming in the first embodiment.
[fig.l2]Fig. 12 is a schematic diagram illustrating the second embodiment of present invention.
[fig.l3A]Fig. 13 A is a schematic diagram illustrating the data transferring flow in the second embodiment for two adaptive cases.
[fig.l3B]Fig. 13B is a schematic diagram illustrating the data transferring flow in the second embodiment for two adaptive cases.
[fig.l3C]Fig. 13C is a schematic diagram illustrating the data transferring flow in the second embodiment for two adaptive cases.
[fig. l3D]Fig. 13D is a schematic diagram illustrating the data transferring flow in the second embodiment for two adaptive cases.
[fig.l4A]Fig. 14A is a schematic diagram illustrating the PM data storing pattern transforming in the second embodiment.
[fig.l4B]Fig. 14B is a schematic diagram illustrating the PM data storing pattern transforming in the second embodiment.
[fig.l5]Fig. 15 is a schematic diagram illustrating the third embodiment of present invention.
[fig. l6A]Fig. 16A is a schematic diagram illustrating the data transferring flow in the third embodiment for two adaptive cases.
[fig. l6B]Fig. 16B is a schematic diagram illustrating the data transferring flow in the third embodiment for two adaptive cases.
[fig.l6C]Fig. 16C is a schematic diagram illustrating the data transferring flow in the third embodiment for two adaptive cases.
[fig.16D]Fig. 16D is a schematic diagram illustrating the data transferring flow in the third embodiment for two adaptive cases.
Description of Embodiments
[0012] Preferred embodiments of the present invention will now be described in detail with reference to the drawings. It should be noted that the relative arrangement of the components, the numerical expressions and numerical values set forth in these embodiments do not limit the scope of the present invention unless it is specifically stated otherwise.
[0013] (First Embodiment)
-Prerequisite Technique-
Convolutional code is a type of error-correcting code which is used for eliminating errors in data transmission over unreliable or noisy channels. Convolutional codes are widely used in numerous areas and applications, including digital video, radio, fiber communication, and wireless communication.
[0014] In these applications, the Viterbi algorithm is universally used as it provides
maximum likelihood performance and can achieve high parallelism. Viterbi decoders are thus the most popular VLSI hardware implementation solution of convolutional decoder.
[0015] In the hardware implementation of the Viterbi decoder, there must be a storage unit for storing the PM after each ACS processing step. The hardware implementation always encounters two problems: data conflicting problem and parallel problem.
[0016] Fig. 1 illustrates the basic procedure of Viterbi decoding for the case of two possible states. The decoding is a step by step process. For each step, the transitions between the possible states form the possible paths. Thus, there is one-to-one correspondence between the possible paths and the possible decoding outputs. The difference, which is called the path metric (PM), between the actual path and the possible decoding path is accumulated at each step. The target of the decoding process is to find a path with minimum PM, which means that this path and the actual path have the minimum difference, that is to say, this path has the minimum errors. As the number of steps increases, the number of possible paths increases in the exponential way. It is not wise to compare the PM at the end of decoding. Alternatively, it is easy to compare the PM of paths which have the same end point at each step. Thus, the possible states are marked with the PM value which is the minimum one within the paths end at that state in the step.
[0017] In greater detail, the decoding process contains three operations, as shown in Fig. 2.
The first operation is adding the branch metrics (BM) to the PMs before this step. The second operation is comparing the sums of the first operation. The third operation is selecting the minimum results as the PMs after this step. This three operation process is the so-called add-compare-select (ACS) process. In the final step of the decoding, after all the PMs of the possible states are selected, all the recorded PMs are compared and the path with the minimum PM is selected as the final output of the decoding.
[0018] According to the basic decoding process of the Viterbi decoder, the block diagram of the Viterbi decoder architecture is illustrated in Fig. 3. A branch metric unit (BMU) 301 is used to calculate a branch metric. An add-compare-select unit (ACSU) 302 is used to carry out the ACS processing step by step. In the ACSU, there are several processing elements (PEs), which have the same structure and function. The number of PM data which can be processed at one time of one processing element is called the radix of the Viterbi decoder. The Viterbi decoder is marked as radix-n Viterbi decoder. The number of PEs and the radix decide the parallelism of the decoder. A path metric storage unit (PMSU) 303 is used for storing the PM of each step. A trace back unit
(TBU) 304 is used to produce the final output.
[0019] The hardware implementation always encounters two problems: data conflicting problem and parallel problem.
[0020] Firstly, the data conflicting problem comes from the state transferring property in the decoding process.
[0021] As illustrated in Fig. 4, in the PMSU 304, the position of each PM data is according with the corresponding state one by one. In each ACS processing step, the PM data are fetched from the PMSU 304 and fed into the processing unit. The positions of these data in the PMSU 304 are called blank positions, which can be occupied by other data. After the ACS processing, the processed data need to be stored into the PMSU 304. Since the state transition has quite high probability to transmit from one state to different state, the target positions of the processed data in the PMSU 304 and the blank positions in the PMSU 304 are probably different. Thus, the data conflicting problem means that the target positions of the processed data conflict with the remaining data's positions.
[0022] On the other hand, the possible states in real application are usually quite large so as that ACS processing can only deal with part of the whole data in the storage unit at one time. Therefore, the conventional solutions to this data conflicting problem are adding another PMSU with the same size.
[0023] Fig. 5 is the block diagram illustrating the solution to conflicting problem. There are a PMSU 501 and a PMSU 502 with the same size. Two selectors 503, 504 are used to choose the proper PMSU in the processing. In the first ACS processing step of this solution, the PMSU 502 is blank. The PM data are fetched from the PMSU 501 and fed into the ACSU 302. The processed data are stored into the PMSU 502 without data conflicting problem. When all the data from the PMSU 501 are processed, the PMSU 501 becomes blank and the ACS processing of this step is finished. In the next ACS processing step, the PM data are fetched from the PMSU 502. With this processing loop, the conflicting problem can be avoided.
[0024] Secondly, the parallel problem comes from the tradeoff between hardware cost and processing parallelism.
[0025] As everyone knows, the storing unit can be implemented in VLSI circuit with
register or random access memory (RAM). The implementation with RAM costs less hardware but has the accessing restriction that only one row in one RAM block can be accessed at one time. The implementation with register has no such a restriction but costs more hardware.
[0026] Generally, the port number of RAM is according with the number of radix in the RAM based implementation. Since there is only single-port and dual-port RAM in ordinary VLSI circuit, it is difficult to implement the radix-n Viterbi decoder wherein n is larger than 2 with the RAM based implementation. As the example shown in the Fig. 6 A, RAM 601 and RAM 602 are the ordinary dual-port structure with one write port and one read port. For the radix-2 case in Fig. 6A, each of a PE 603 and a PE 604 can process two PM data, so the dual port RAM can satisfy the requirement. For the radix- 4 case in Fig. 6B, each of a PE 613 and a PE 614 can process four PM data, port number should be double and two row of data should be read out at one time, which exceeds the limitation.
[0027] -Explanation of Functional Arrangement-
A block diagram of an information processing apparatus 700 according to the first embodiment is shown in Fig. 7. In this apparatus 700, a PMSU 704 divided into several RAM blocks 741. The PM data are initialized into these blocks 741 in cyclic shifting pattern. This architecture guarantees that the data needed for the same time can be fetched from different RAM blocks 741.
[0028] A reordering unit (RU) 705 is used to change the order of the PM data. In the implementation, the RU 705 can be realized as one unit or divided into more than one parts.
[0029] A control unit (CU) 706 produces the selecting signals which can choose the proper row of the blocks in the PMSU 704 and the controlling signals which can control the RU 705. The CU 706 can be realized as many forms, such as read only memory (ROM) based structure, logic gates based structure and processor based structure. The CU 706 can be designed to enable multiple modes which are adaptive to various con- volutional codes with different possible states.
[0030] During the ACS processing, the PM data are fetched from the proper rows of the blocks of the PMSU 704 according to AG and fed into the RU 705. the RU 705 is used to reorder the sequence of the PM data so that the PM data can be fed into a proper PE 721. After ACS processing, all the processed data are stored in the blank positions where the data have been brought out for processing. Based on this architecture, there is no conflicting problem and no need for additional storage unit.
[0031] The positions of the PM data in the PMSU 704 are not fixed, but in limited patterns.
For each processing step, the positions change from one pattern to another. After several steps, the pattern returns to the initial one.
[0032] The PM data storing initialization method is listed as following steps shown in Fig. 8, wherein the number of the PE 721 is denoted as "p," the radix is denoted as "n," the possible state number is denoted as "s."
(1) The first step is listing the PM data as the ascending order row by row. The number of PM data in each row is the product of PE number and radix number, which is denoted as c=np. Thus, the number of rows is "r=s/np."
(2) The second step is splitting the whole block into n blocks. (3) The third step is cyclically shifting the PM data layer by layer. The number of layer is calculated as "l=s/n2p." The first layer is shifting 0 blocks on the right, the second layer is shifting 1 block on the right, and so on.
[0033] As illustrated in Fig. 9, the first embodiment is the implementation with the radix-2
Viterbi decoder. Radix-2 Viterbi decoder is the most widely used Viterbi decoder.
[0034] The first embodiment is implemented for single convolutional code, or can be
adaptive to various convolutional codes with different possible states at the same time.
In the first embodiment, the implementation is adaptive to two modes for two cases. In the first case, the possible state number is 32. In the second case, the possible state number is 16.
[0035] There are PEs 901-904 in the ACSU 702 and 32 storing positions in the PMSU 704.
For the second case, half of the storing positions are blank during the processing.
According to the PM data storing initialization method described in Fig. 8, the PMSU 704 is divided into two blocks as BO and Bl .
[0036] the RU 705 is realized by several switches that are controlled by the CU 706.
According to the signals from the CU 706, the switches can connect to the desired ports and make data reordering. The number of switches is the product of the number of PEs and the radix number. Therefore, there are 8 switches in the RU 705.
[0037] The CU 706 needs to provide 8 control signals to the switches in the RU 705 and 2 address signals for B0 and Bl. In the first embodiment, the CU 706 is realized as the ROM structure. The control signals are stored in a ROM 761 in advance. All the control signals which are needed at one time are stored at the same row. During the processing, the control signals are fetched out from the ROM 761 according to the processing mode and phase.
[0038] The first mode for the first case with 4 phases is illustrated in Fig. 10A, Fig. 10B, Fig. IOC and Fig. 10D. The second mode for the second case with 2 phases is illustrated in Fig. 10E and Fig. 10F.
[0039] As shown in Fig. 10A for the first case, the PM data for the 32 possible states are stored in the two blocks in the PMSU 704 before processing. The PM data for state 0, 1 , 2 and 3 are stored in the first row of B0. The PM data for state 4, 5, 6 and 7 are stored in the first row of Bl . The PM data for state 8, 9, 10 and 11 are stored in the second row of B0. The PM data for state 12, 13, 14 and 15 are stored in the second row of B 1. The PM data for state 16, 17, 18 and 19 are stored in the third row of B 1. The PM data for state 20, 21, 22 and 23 are stored in the third row of BO. The PM data for state 24, 25, 26 and 27 are stored in the fourth row of Bl. The PM data for state 28, 29, 30 and 31 are stored in the fourth row of B0.
[0040] Thus, the storing order in the first layer including the first and the second row is the ascending order. The storing order in the second layer including the third and fourth row is the cyclic shift pattern of the ascending order. For each block, only one row of the block can be read out at one time.
[0041] The processing of one ACS step contains 4 phases. In the phase 0 shown in Fig. 10a, the input mode and the phase are both 0 for the CU 706. The first row of the ROM 761 in the CU 706 is read out as the control signal. The address signals from the CU 706 are 0 for B0 and 2 for Bl, so the PM data for state 0, 1, 2 and 3 in the first row of B0, and the PM data for state 16, 17, 18 and 19 in the third row of Bl are fetched from the PMSU 704. These PM data are reordered in the RU 705. The control signals for the RU 705 are 02461357, which indicate the positions of the data after reordering. After the reordering in the RU 705, the PM data for state 0 and 16 are fed into the PE 901, the PM data for state 1 and 17 are fed into the PE 902, the PM data for state 2 and 18 are fed into the PE 903, the PM data for state 3 and 19 are fed into the PE 904.
[0042] After ACS processing in the ACSU 702, the processed data are for state 0, 1 , 2, 3, 4, 5, 6 and 7. In order to distinguish the before processing data and processed data, the processed data are marked as Ο', , 2', 3', 4', 5', 6', T. This distinction will be used through this document. The processed PM data Ο', Γ, 2', 3', 4', 5', 6' and 7' are fed into the blank positions of the PMSU 704. PM data for state Ο', Γ, 2' and 3' are stored into the first row of B0. PM data for state 4', 5', 6' and 7' are stored into the third row of B 1.
[0043] In the phase 1 shown in Fig. 10B, the input mode is 0 and the phase is 1 for the CU 706. The second row of the ROM 761 in the CU 706 is read out as the control signal. The address signals from the CU 706 are 1 for B0 and 3 for Bl , so the PM data for state 8, 9, 10 and 1 1 in the second row of B0, and the PM data for state 24, 25, 26 and 27 in the fourth row of B I are fetched from the PMSU 704. These PM data are reordered in the RU 705. The control signals for the RU 705 are 02461357, which indicate the positions of the data after reordering. After the reordering in the RU 705, the PM data for state 8 and 24 are fed into the PE 901, the PM data for state 9 and 25 are fed into the PE 902, the PM data for state 10 and 26 are fed into the PE 903, the PM data for state 11 and 27 are fed into the PE 904.
[0044] After ACS processing in the ACSU 702, the processed PM data 8', 9', 10', I !', 12', 13', 14' and 15' are fed into the blank positions of the PMSU 704. PM data for state 8', 9', 10' and Ι Γ are stored into the second row of B0. PM data for state 12', 13', 14' and 15' are stored into the fourth row of Bl .
[0045] In the phase 1 shown in Fig. 10B, the input mode is 0 and the phase is 1 for the CU 706. The second row of the ROM 761 in the CU 706 is read out as the control signal. The address signals from the CU 706 are 1 for B0 and 3 for Bl, so the PM data for state 8, 9, 10 and 11 in the second row of B0, and the PM data for state 24, 25, 26 and 27 in the fourth row of B 1 are fetched from the PMSU 704. These PM data are reordered in the RU 705. The control signals for the RU 705 are 02461357, which indicate the positions of the data after reordering. After the reordering in the RU 705, the PM data for state 8 and 24 are fed into the PE 901, the PM data for state 9 and 25 are fed into the PE 902, the PM data for state 10 and 26 are fed into the PE 903, the PM data for state 11 and 27 are fed into the PE 904.
[0046] After ACS processing in the ACSU 702, the processed PM data 8", 9', 10', 11', 12', 13', 14' and 15' are fed into the blank positions of the PMSU 704. PM data for state 8', 9', 10' and 1 Γ are stored into the second row of B0. PM data for state 12', 13', 14' and 15' are stored into the fourth row of Bl.
[0047] In the phase 2 shown in Fig. IOC, the input mode is 0 and the phase is 2 for the CU
706. The third row of the ROM 761 in the CU 706 is read out as the control signal. The address signals from the CU 706 are 2 for B0 and 0 for Bl, so the PM data for state 20, 21, 22 and 23 in the third row of B0, and the PM data for state 4, 5, 6 and 7 in the first row of B 1 are fetched from the PMSU 704. These PM data are reordered in the RU
705. The control signals for the RU 705 are 46025713, which indicate the positions of the data after reordering. After the reordering in the RU 705, the PM data for state 22 and 6 are fed into the PE 901, the PM data for state 23 and 7 are fed into the PE 902, the PM data for state 20 and 4 are fed into the PE 903, the PM data for state 21 and 5 are fed into the PE 904.
[0048] After ACS processing in the ACSU 702, the processed PM data 16', 17', 18', 19', 20', 21', 22' and 23' are fed into the blank positions of the PMSU 704. PM data for state 20', 2 , 22' and 23' are stored into the third row of B0. PM data for state 16', 17', 18' and 19' are stored into the first row of Bl .
[0049] In the phase 3 shown in Fig. 10D, the input mode is 0 and the phase is 3 for the CU
706. The fourth row of the ROM 761 in the CU 706 is read out as the control signal. The address signals from the CU 706 are 3 for BO and 1 for Bl, so the PM data for state 28, 29, 30 and 31 in the fourth row of B0, and the PM data for state 12, 13, 14 and 15 in the second row of B 1 are fetched from the PMSU 704. These PM data are reordered in the RU 705. The control signals for the RU 705 are 46025713, which indicate the positions of the data after reordering. After the reordering in the RU 705, the PM data for state 30 and 14 are fed into the PE 901 , the PM data for state 31 and 15 are fed into the PE 902, the PM data for state 28 and 12 are fed into the PE 903, the PM data for state 29 and 13 are fed into the PE 904.
[0050] After ACS processing in the ACSU 702, the processed PM data 24', 25', 26', 27', 28', 29', 30' and 31' are fed into the blank positions of the PMSU 704. PM data for state 28', 29', 30' and 3 Γ are stored into the fourth row of B0. PM data for state 24', 25', 26' and 27' are stored into the second row of Bl.
[0051] After the 4 phases, one ACS processing step is finished. The PM data for the possible states are stored in different positions compared with the original positions. As il- lustrated in Fig. 11 A, after the ACS processing step 0, the storing position pattern of PM data in the PMSU 704 is changed. After the ACS processing step 1, the storing position pattern of PM data return to the original positions in the PMSU 704. These two kinds of storing position patterns appear alternatively in the whole decoding process.
[0052] In Fig. 10E for the second case, the PM data for the 16 possible states are stored in the two blocks in the PMSU 704 before processing. The PM data for state 0, 1, 2 and 3 are stored in the first row of B0. The PM data for state 4, 5, 6 and 7 are stored in the first row of Bl. The PM data for state 8, 9, 10 and 11 are stored in the second row of Bl. The PM data for state 12, 13, 14 and 15 are stored in the second row of B0. Thus, the storing order in the first row is the ascending order. The storing order in the second row of the two blocks is the cyclic shift pattern of the ascending order. For each block, only one row of the block can be read out at one time.
[0053] The processing of one ACS step contains two phases. In the phase 0 shown in Fig.
10E, the input mode is 1 and the phase is 0 for the CU 706. The fifth row of the ROM 761 in the CU 706 is read out as the control signal. The address signals from the CU 706 are 0 for B0 and 1 for B 1, so the PM data for state 0, 1, 2 and 3 in the first row of B0, and the PM data for state 8, 9, 10 and 11 in the second row of Bl are fetched from the PMSU 704. These PM data are reordered in the RU 705. The control signals for the RU 705 are 02461357, which indicate the positions of the data after reordering. After the reordering in the RU 705, the PM data for state 0 and 8 are fed into the PE 901, the PM data for state 1 and 9 are fed into the PE 902, the PM data for state 2 and 10 are fed into the PE 903, the PM data for state 3 and 11 are fed into the PE 904.
[0054] After ACS processing in the ACSU 702, the processed PM data 0', V, 2', 3', 4', 5', 6' and T are fed into the blank positions of the PMSU 704. PM data for state Ο', Γ, 2' and 3' are stored into the first row of B0. PM data for state 4', 5', 6' and 7 are stored into the second row of B l.
[0055] In the phase 1 shown in Fig. lOF, the input mode and the phase are both 1 for the CU 706. The second row of the ROM 761 in the CU 706 is read out as the control signal. The address signals from the CU 706 are 1 for B0 and 0 for Bl , so the PM data for state 12, 13, 14, 15 in the second row of B0, and the PM data for state 4, 5, 6, 7 i the first row of B 1 are fetched from the PMSU 704. These PM data are reordered in the RU 705. The control signals for the RU 705 are still 46025713, which indicate the positions of the data after reordering. After the reordering in the RU 705, the PM data for state 14 and 6 are fed into the PE 901, the PM data for state 15 and 7 are fed into the PE 902, the PM data for state 12 and 4 are fed into the PE 903, the PM data for state 3 and 11 are fed into the PE 904.
[0056] After ACS processing in the ACSU 702, the processed data for state 8', 9', 10', 1 Γ, 12', 13', 14' and 15' are fed into blank positions of the PMSU 704. PM data for state 12', 13', 14' and 15' are stored into the second row of BO. PM data for state 8', 9', 10' and 1 Γ are stored into the first row of B 1.
[0057] After the two phases, one ACS processing step is finished. The PM data for the
possible states are stored in different positions compared with the original positions. As illustrated in Fig. 1 IB, after the ACS processing step 0, the storing position pattern of PM data in the PMSU 704 is changed. After the ACS processing step 1, the storing position pattern of PM data return to the original positions in the PMSU 704. These two kinds of storing position patterns appear alternatively in the whole decoding process.
[0058] (Second Embodiment)
An information apparatus 1200 according to the second embodiment is shown in Fig. 12. A CU 1206 is realized as the ROM structure. The control signals are stored in a ROM 1261 in advance. All the control signals which are needed at one time are stored at the same row. During the processing, the control signals are fetched out from the ROM 1261 according to the processing mode and phase.
[0059] The RU is divided into two parts RU 1201 and RU 1202. The merit of dividing the RU into two parts is that the control signals will become simpler.
[0060] the RU 1201 is realized by several switches that are controlled by the CU 1206.
According to the signals from the CU 1206, the switches can connect to the desired ports and make data reordering. The number of switches is the product of the number of PEs and the radix number.
[0061] the RU 1202 is composed of several cross bar switches. The cross bar switch has two inputs and two outputs. When the control signal is 0, the input data go through the cross bar switch in the input direction. When the control signal is 1, the input data go through the cross bar switch in the cross direction which means the output exchange the input order.
[0062] The present invention can be implemented for single convolutional code, or can be adaptive to various convolutional codes with different possible states at the same time. The second embodiment is adaptive to two modes for two cases. In the first case, the possible state number is 16, PE number is 4. In the second case, the possible state number is 8, PE number is 2. There are 4 PEs in the ACSU 702 and 16 storing positions in the PMSU 1204. In the RU 1201, the number of switches is product of number of PEs and radix number. Therefore, there are 8 switches in the RU 1201 and 4 cross bar switches in the RU 1202. The CU 1206 needs to provide 8 control signals to the switches in the RU 1201, 2 address signals for B0 and Bl and 1 control signal for the cross bar switches in the RU 1202. Before processing, these control signals are stored in the ROM 1261 of the CU 1206 in advance. [0063] The first mode for the first case is illustrated in Fig. 13A and Fig. 13B. The second mode for the second case is illustrated in Fig. 13C and Fig. 13D.
[0064] In Fig. 13A for the first case, the PM data for the 16 possible states are stored in the two blocks in the PMSU 1204. The PM data for state 0, 1, 2, and 3 are stored in the first row of B0. The PM data for state 4, 5, 6, and 7 are stored in the first row of B 1. The PM data for state 8, 9, 10, and 11 are stored in the second row of B l . The PM data for state 12, 13, 14, and 15 are stored in the second row of B0. Thus, the storing order in the first row of the two blocks is 0, 1, 2, 3, 4, 5, 6, 7, which is the ascending order. The storing order in the second row of the two blocks is 12, 13, 14, 15, 8, 9, 10, 11, which is the cyclic shift pattern of the ascending order. For each block, only one row of the block can be read out at one time.
[0065] The processing of one ACS step contains two phases. In the phase 0 shown in Fig.
3 A, the input mode and the phase are both 0 for the CU 1206. The first row of the ROM 1261 in the CU 1206 is read out as the control signal. The address signals from the CU 1206 are 0 for BO and 1 for B 1 , so the PM data for state 0, 1 , 2, 3 in the first row of B0, and the PM data for state 8, 9, 10, 11 in the second row of B 1 are fetched from the PMSU 1204. These PM data are reordered in the RU 1201. The control signals for the RU 1201 are 02461357, which indicate the positions of the data after reordering. After the reordering in the RU 1201 , the PM data for state 0 and 8 are fed into the PE 901 , the PM data for state 1 and 9 are fed into the PE 902, the PM data for state 2 and 10 are fed into the PE 903, the PM data for state 3 and 1 1 are fed into the PE 904.
[0066] After ACS processing in the ACSU 702, the processed PM data Ο', , 2', 3', 4', 5', 6' and 7' are fed into the RU 1202. Since the control signal is 0, all the cross switches keep the input order of PM data. The PM data for state Ο', Γ, 2', 3', 4', 5', 6' and T are stored into the blank positions. PM data for state Ο', , 2' and 3' are stored into the first row of B0. PM data for state 4', 5', 6' and 7' are stored into the second row of Bl .
[0067] In the phase 1 shown in Fig. 13B, the input mode is 0 and the phase is 1 for the CU 1206. The second row of the ROM 1261 in the CU 1206 is read out as the control signal. The address signals from the CU 1206 are 1 for B0 and 0 for B l , so the PM data for state 12, 13, 14, 15 in the second row of B0, and the PM data for state 4, 5, 6, 7 in the first row of B 1 are fetched from the PMSU 1204. These PM data are reordered in the RU 1201. The control signals for the RU 1201 are still 02461357, which indicate the positions of the data after reordering. After the reordering in the RU 0122, the PM data for state 14 and 6 are fed into the PE 901, the PM data for state 15 and 7 are fed into the PE 904, the PM data for state 12 and 4 are fed into the PE 903, the PM data for state 3 and 11 are fed into the PE 904.
[0068] After ACS processing in the ACSU 702, the processed data for state 8', 9', 10', 11', 12', 13', 14' and 15' are fed into the RU 1202. Since the control signal is 1, all the cross bar switches exchange the input data order. The PM data for state 12', 13', 14', 15', 8', 9', 10' and 11' are stored into the blank positions. PM data for state 12', 13', 14' and 15' are stored into the second row of BO. PM data for state 8', 9", 10' and 1 Γ are stored into the first row of B 1.
[0069] After the two phases, one ACS processing step is finished. The PM data for the possible states are stored in different positions compared with the original positions. As illustrated in Fig. 14A, after the first step of ACS processing, the storing position pattern of PM data in the PMSU 1204 is changed. After the second step of ACS processing, the storing position pattern of PM data return to the original positions in the PMSU 1204. These two kinds of storing position patterns appear alternatively in the whole decoding process.
[0070] For the second case shown in Fig. 13C, since the possible states is just half of the maximum storing positions, only half of the row in each block is occupied. The PM data for state 0, 1 are stored in the first row of BO. The PM data for state 2, 3 are stored in the first row of B 1. The PM data for state 4, 5 are stored in the second row of B 1. The PM data for state 6, 7 are stored in the second row of B0. Thus, the storing order in the first row of the two blocks is 0, 1, 2, 3, which is the ascending order. The storing order in the second row of the two blocks is 6, 7, 4, 5, which is the cyclic shift pattern of the ascending order.
[0071] The processing of one ACS step also contains two phases. In the phase 0 shown in Fig. 13C, the input mode is 1 and the phase is 0 for the CU 1206. The third row of the ROM 1261 in the CU 1206 is read out as the control signal. The address signals from the CU 1206 are 0 for B0 and 1 for B 1. The PM data for state 0 and 1 in the first row of B0, and the PM data for state 4 and 5 in the second row of B 1 are fetched from the PMSU 1204. These PM data are reordered in the RU 1201. The control signals for the RU 1201 are 0415, which indicate the positions of the data after reordering. After the reordering in the RU 1201, the PM data for state 0 and 4 are fed into the PE 901, the PM data for state 1 and 5 are fed into the PE 903.
[0072] After ACS processing in the ACSU 702, the processed PM data for state 0', 1 ', 2' and 3' are fed into the RU 1202. Since the control signal is 0, all the cross switches keep the input order of PM data. The PM data for state Ο', , 2' and 3' are stored into the blank positions. PM data for state 0' and Γ are stored into the first row of B0. PM data for state 2' and 3' are stored into the second row of Bl.
[0073] In the phase 1 shown in Fig. 13D, the input mode and the phase are both 1 for the CU 1206. The fourth row of the ROM 1261 in the CU 1206 is read out as the control signal. The address signals from the CU 1206 are 1 for B0 and 0 for B 1. The PM data for state 6 and 7 in the second row of B0, and the PM data for state 2 and 3 in the first row of B 1 are fetched from the PMSU 1204. These PM data are reordered in the RU 1201. The control signals for the RU 1201 are 0415, which indicate the positions of the data after reordering. After the reordering in the RU 1201, the PM data for state 7 and 3 are fed into the PE 901, the PM data for state 6 and 2 are fed into the PE 903.
[0074] After ACS processing in the ACSU 702, the processed PM data for state 4', 5', 6' and T are fed into the RU 1202. Since the control signal is 1, all the cross switches exchange the input order of PM data. The processed data for state 6', 7', 4', and 5' are stored into the blank positions. PM data for state 6' and 7' are stored into the second row of B0. PM data for state 4' and 5' are stored into the first row of Bl .
[0075] After the two phases, the ACS processing step is finished. The PM data for the
possible states are stored in different positions. As illustrated in Fig. 14B, after the first step of ACS processing, the storing position pattern of PM data in the PMSU 1204 is changed. After the second step of ACS processing, the storing position pattern of PM data return to the original positions in the PMSU 1204. These two kinds of storing position patterns appear alternatively in the whole decoding process.
[0076] (Third embodiment)
An information processing apparatus 1500 according to the third embodiment is shown in Fig. 15, the CU 1506 is realized as the logic gates based structure. The control signals are not stored in advance, but produced in real time by the logic gates according to the input mode and phase.
[0077] The RU is still divided into two parts RU 1501 and RU 1502.
[0078] the RU 1501 is realized by several switches that are controlled by the CU 1506.
According to the signals from the CU 1506, the switches can connect to the desired ports and make data reordering. The number of switches is the product of the number of PEs and the radix number.
[0079] The RU 1502 is composed of several cross bar switches. The cross bar switch has two inputs and two outputs. When the control signal is 0, the input data go through the cross bar switch in the input direction. When the control signal is 1, the input data go through the cross bar switch in the cross direction which means the output exchange the input order.
[0080] The third embodiment is also adaptive to two modes for two cases. In the first case, the possible state number is 16, PE number is 4. In the second case, the possible state number is 8, PE number is 2. The design for this adaptive architecture should satisfy the maximum requirement. Thus, there are 4 PEs in the ACSU 702 and 16 storing positions in a PMSU 1504. In the RU 1501, the number of switches is product of number of PEs and radix number. Therefore, there are 8 switches in the RU 1501 and 4 cross bar switches in the RU 1502. The CU 1506 needs to provide 8 control signals to the switches in the RU 1501, 2 address signals for B0 and B l and 1 control signal for the cross bar switches in the the RU 1502.
[0081 J AO, Al , A2, A3, A4 and A5 in the CU 1506 are the adders with two inputs and one output. M0 and Ml are multiplexers controlled by the mode signal. When mode is 0, the output is the left input. When mode is 1, the output is the right input. SO, SI, S2 and S3 are the switches controlled by the mode signal. When mode is 0, the switch is in connecting state. When mode is 1, the switch is in cutting off state. NO is the invertor which turns 0 to 1 or turns 1 to 0.
[0082] The first mode for the first case is illustrated in Fig. 16A and Fig. 16B. The second mode for the second case is illustrated in Fig. 16C and Fig. 16D.
[0083] In Fig. 16A for the first case, the PM data for the 16 possible states are stored in the two blocks in the PMSU 1504 before processing. The PM data for state 0, 1, 2, and 3 are stored in the first row of B0. The PM data for state 4, 5, 6, and 7 are stored in the first row of B 1. The PM data for state 8, 9, 10, and 11 are stored in the second row of Bl. The PM data for state 12, 13, 14, and 15 are stored in the second row of BO. Thus, the storing order in the first row of the two blocks is 0, 1, 2, 3, 4, 5, 6, 7, which is the ascending order. The storing order in the second row of the two blocks is 12, 13, 14, 15, 8, 9, 10, 1 1, which is the cyclic shift pattern of the ascending order. For each block, only one row of the block can be read out at one time.
[0084] The processing of one ACS step contains two phases. In the phase 0 shown in Fig.
16 A, the input mode and the phase are both 0 for the CU 1506. M0 and Ml choose the left input. SO, SI, S2 and S3 are in connecting state. The CU 1506 generates the address signals 0 for B0 and 1 for Bl , so the PM data for state 0, 1, 2 and 3 in the first row of B0, and the PM data for state 8, 9, 10 and 1 1 in the second row of B 1 are fetched from the PMSU 1504. These PM data are reordered in the RU. The control signals for the RU 1501 are 02461357, which indicate the positions of the data after reordering. After the reordering in the RU 1501, the PM data for state 0 and 8 are ted into the PE 901 , the PM data for state 1 and 9 are fed into the PE 902, the PM data for state 2 and 10 are fed into the PE 903, the PM data for state 3 and 1 1 are fed into the PE 904.
[0085] After ACS processing in the ACSU 702, the processed PM data 0', 1 ', 2', 3', 4', 5', 6' and 7' are fed into the the RU 1502. Since the control signal is 0, all the cross switches keep the input order of PM data. The PM data for state Ο', Γ, 2', 3', 4', 5', 6' and T are stored into the blank positions. PM data for state Ο', , 2' and 3' are stored into the first row of B0. PM data for state 4', 5', 6' and T are stored into the second row of Bl.
[0086] In the phase 1 shown in Fig. 16B, the input mode is 0 and the phase is 1 for the CU 1506. M0 and Ml choose the left input. SO, SI, S2 and S3 are in connecting state. The CU 1506 generates the address signals 1 for B0 and 0 for Bl, so the PM data for state 12, 13, 14, 15 in the second row of B0, and the PM data for state 4, 5, 6, 7 in the first row of Bl are fetched from the PMSU 1504. These PM data are reordered in the RU 1501. The control signals for the RU 1501 are still 02461357, which indicate the positions of the data after reordering. After the reordering in the RU 1501, the PM data for state 14 and 6 are fed into the PE 901, the PM data for state 15 and 7 are fed into the PE 902, the PM data for state 12 and 4 are fed into the PE 903, the PM data for state 3 and 11 are fed into the PE 904.
[0087] After ACS processing in the ACSU 702, the processed data for state 8', 9', 10', 11', 12', 13', 14' and 15' are fed into the RU 1502. Since the control signal is 1, all the cross bar switches exchange the input data order. The PM data for state 12', 13', 14', 15', 8', 9', 10' and 1 Γ are stored into the blank positions. PM data for state 12', 13', 14' and 15' are stored into the second row of B0. PM data for state 8', 9', 10' and 11 ' are stored into the first row of Bl.
[0088] After the two phases, one ACS processing step is finished. The PM data for the possible states are stored in different positions compared with the original positions. As illustrated in Fig. 14A, after the first step of ACS processing, the storing position pattern of PM data in the PMSU 1504 is changed. After the second step of ACS processing, the storing position pattern of PM data return to the original positions in the PMSU 1504. These two kinds of storing position patterns appear alternatively in the whole decoding process.
[0089] For the second case shown in Fig. 16C, since the possible states is just half of the maximum storing positions, only half of the row in each block is occupied. The PM data for state 0, 1 are stored in the first row of B0. The PM data for state 2, 3 are stored in the first row of B 1. The PM data for state 4, 5 are stored in the second row of B 1. The PM data for state 6, 7 are stored in the second row of B0. Thus, the storing order in the first row of the two blocks is 0, 1, 2, 3, which is the ascending order. The storing order in the second row of the two blocks is 6, 7, 4, 5, which is the cyclic shift pattern of the ascending order.
[0090] The processing of one ACS step also contains two phases. In the phase 0 shown in Fig. 16C, the input mode is 1 and the phase is 0 for the CU 1506. M0 and Ml choose the right input. SO, SI , S2 and S3 are in cutting off state. The CU 1506 generates the address signals 0 for B0 and 1 for Bl. The PM data for state 0 and 1 in the first row of B0, and the PM data for state 4 and 5 in the second row of B 1 are fetched from the PMSU 1504. These PM data are reordered in the RU 1501. The control signals for the RU 1501 are 1502, which indicate the positions of the data after reordering. After the reordering in the RU 1501, the PM data for state 0 and 4 are fed into the PE 901, the PM data for state 1 and 5 are fed into the PE 903.
[0091 ] After ACS processing in the ACSU 702, the processed PM data for state 0', 1', 2' and 3' are fed into the RU 1502. Since the control signal is 0, all the cross switches keep the input order of PM data. The PM data for state Ο', Γ, 2' and 3' are stored into the blank positions. PM data for state 0' and are stored into the first row of BO. PM data for state 2' and 3' are stored into the second row of Bl.
[0092] In the phase 1 shown in Fig. 16D, the input mode and the phase are both 1 for the CU 1506. M0 and Ml choose the right input. SO, SI, S2 and S3 are in cutting off state. The CU 1506 generates the address signals 1 for B0 and 0 for Bl. The PM data for state 6 and 7 in the second row of B0, and the PM data for state 2 and 3 in the first row of B 1 are fetched from the PMSU 1504. These PM data are reordered in the RU 1501. The control signals for the RU 1501 are 0415, which indicate the positions of the data after reordering. After the reordering in the RU 1501, the PM data for state 7 and 3 are fed into the PE 901, the PM data for state 6 and 2 are fed into the PE 903.
[0093] After ACS processing in the ACSU 702, the processed PM data for state 4', 5', 6' and 7' are fed into the RU 1502. Since the control signal is I, all the cross switches exchange the input order of PM data. The processed data for state 6', 7', 4', and 5' are stored into the blank positions. PM data for state 6' and 7' are stored into the second row of B0. PM data for state 4' and 5' are stored into the first row of B 1.
[0094] After the two phases, the ACS processing step is finished. The PM data for the
possible states are stored in different positions. As illustrated in Fig. 14B, after the first step of ACS processing, the storing position pattern of PM data in the PMSU 1504 is changed. After the second step of ACS processing, the storing position pattern of PM data return to the original positions in the PMSU 1504. These two kinds of storing position patterns appear alternatively in the whole decoding process.
[0095] The logic gates based implementation can be easily realized in the processor based implementation. The only difference is that in the processor based implementation, the control signals are produced by the processor.
[0096] (Other Embodiments)
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
[0097] The present invention is applicable to a system including a plurality of devices or a single apparatus. The present invention is also applicable even when a control program for implementing the functions of the embodiments is supplied to the system or apparatus directly or from a remote site. Hence, the present invention also incorporates the control program installed in a computer to implement the functions of the present invention on the computer, a medium storing the control program, and a WWW (World Wide Web) server that causes a user to download the control program. The present invention specifically incorporates at least a non-transitory computer readable medium storing a program for causing the computer to execute the processing steps included in the above-described embodiments.

Claims

Claims
An information processing apparatus comprising:
a path matric storing unit for storing path metric data;
a reordering unit for changing positions of the path metric data; and a control unit for controlling the path metric data in Viterbi decoder.
The apparatus according to claim 1, wherein said control unit produces address signals for each block in the path metric storing unit.
The apparatus according to claim 1 or 2, wherein the control unit produces control signals for said reordering unit.
The apparatus according to claim 1, 2 or 3, wherein said path matric storing unit is a random access memory.
The apparatus according to any one of claims 1 to 4, wherein said path metric storing unit is divided into blocks, wherein a number of the blocks is a radix of the Viterbi decoder.
The apparatus according to any one of claims 1 to 5, wherein said path metric storing unit stores the path metric data in cyclic shifting pattern. The apparatus according to any one of claims 1 to 6, wherein the path metric data are fetched from different rows of different blocks and fed into the reordering unit as one sequence.
The apparatus according to any one of claims 1 to 7, wherein the path metric data in said reordering unit are changed into the required order for different radix, possible state and processing element number.
An information processing method comprising:
storing path metric data;
changing positions of the path metric data; and
controlling the path metric data in Viterbi decoder.
An information processing program for causing a computer to execute: storing path metric data;
changing positions of the path metric data; and
controlling the path metric data in Viterbi decoder.
PCT/JP2015/059819 2015-03-23 2015-03-23 Information processing apparatus, information processing method, and program WO2016151868A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017549834A JP6551534B2 (en) 2015-03-23 2015-03-23 INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND PROGRAM
PCT/JP2015/059819 WO2016151868A1 (en) 2015-03-23 2015-03-23 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/059819 WO2016151868A1 (en) 2015-03-23 2015-03-23 Information processing apparatus, information processing method, and program

Publications (1)

Publication Number Publication Date
WO2016151868A1 true WO2016151868A1 (en) 2016-09-29

Family

ID=56979240

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/059819 WO2016151868A1 (en) 2015-03-23 2015-03-23 Information processing apparatus, information processing method, and program

Country Status (2)

Country Link
JP (1) JP6551534B2 (en)
WO (1) WO2016151868A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08340262A (en) * 1995-06-13 1996-12-24 Nec Eng Ltd Viterbi decoder
EP1102408A2 (en) * 1999-11-22 2001-05-23 Matsushita Electric Industrial Co., Ltd. Viterbi decoder
US20010037486A1 (en) * 2000-02-02 2001-11-01 Mario Traeber Method for storing path metrics in a viterbi decoder
US20130007568A1 (en) * 2010-03-08 2013-01-03 Nec Corporation Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10107651A (en) * 1996-09-27 1998-04-24 Nec Corp Viterbi decoder
JP3837913B2 (en) * 1998-06-02 2006-10-25 株式会社デンソー Viterbi decoder
US7020214B2 (en) * 2000-09-18 2006-03-28 Lucent Technologies Inc. Method and apparatus for path metric processing in telecommunications systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08340262A (en) * 1995-06-13 1996-12-24 Nec Eng Ltd Viterbi decoder
EP1102408A2 (en) * 1999-11-22 2001-05-23 Matsushita Electric Industrial Co., Ltd. Viterbi decoder
US20010037486A1 (en) * 2000-02-02 2001-11-01 Mario Traeber Method for storing path metrics in a viterbi decoder
US20130007568A1 (en) * 2010-03-08 2013-01-03 Nec Corporation Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program

Also Published As

Publication number Publication date
JP2018509857A (en) 2018-04-05
JP6551534B2 (en) 2019-07-31

Similar Documents

Publication Publication Date Title
EP1049001B1 (en) Arithmetic apparatus
EP1102408B1 (en) Viterbi decoder
CN110719111B (en) Improved decoder for low density parity check codes
EP0926836B1 (en) Viterbi decoding apparatus and viterbi decoding method
US7724163B2 (en) Apparatus of multi-stage network for iterative decoding and method thereof
JP6327605B2 (en) Variable shifter, LDPC decoder, and data shift method
US6523146B1 (en) Operation processing apparatus and operation processing method
US7278088B2 (en) Configurable architecture and its implementation of viterbi decorder
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
US6343105B1 (en) Viterbi decoder
US7793200B1 (en) Method of and circuit for accessing a memory of a trellis decoder
EP3996285A1 (en) Parallel backtracking in viterbi decoder
EP1146652B1 (en) High speed coding apparatus for convolutional codes
US5257263A (en) Circuit for decoding convolutional codes for executing the survivor path storage and reverse scanning stage of a Viterbi algorithm
US9112533B2 (en) Encoding method, decoding method, encoding device, and decoding device
US8635259B2 (en) Barrel shifter
US6978415B1 (en) Variable redundancy cyclic code encoders
KR20030036845A (en) A Decoder For Trellis-Based Channel Encoding
WO2016151868A1 (en) Information processing apparatus, information processing method, and program
EP1295401B1 (en) Viterbi decoding with path metric update implemented in the order of bit-slices
JP2007214918A (en) Viterbi decoding circuit and radio device
KR20070066926A (en) Coding circuit and digital signal processing circuit
Mandwale et al. Implementation of High Speed Viterbi Decoder using FPGA
Han et al. High performance Viterbi decoder using modified register exchange methods
Muhammad et al. Low complexity FPGA implementation of register exchange based viterbi decoder

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: 15886420

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017549834

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15886420

Country of ref document: EP

Kind code of ref document: A1