WO2008023684A1 - Unité d'opération arithmétique de résidus en parallèle et procédé d'opération arithmétique de résidus en parallèle - Google Patents

Unité d'opération arithmétique de résidus en parallèle et procédé d'opération arithmétique de résidus en parallèle Download PDF

Info

Publication number
WO2008023684A1
WO2008023684A1 PCT/JP2007/066156 JP2007066156W WO2008023684A1 WO 2008023684 A1 WO2008023684 A1 WO 2008023684A1 JP 2007066156 W JP2007066156 W JP 2007066156W WO 2008023684 A1 WO2008023684 A1 WO 2008023684A1
Authority
WO
WIPO (PCT)
Prior art keywords
parallel
partial
crc
sub
modg
Prior art date
Application number
PCT/JP2007/066156
Other languages
English (en)
French (fr)
Inventor
Hiroyuki Motozuka
Original Assignee
Panasonic 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 Panasonic Corporation filed Critical Panasonic Corporation
Priority to JP2008530909A priority Critical patent/JP4976397B2/ja
Priority to US12/377,772 priority patent/US8700971B2/en
Publication of WO2008023684A1 publication Critical patent/WO2008023684A1/ja

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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation

Definitions

  • the present invention relates to a parallel residue calculator and a parallel residue calculation method, for example, to a parallel residue calculator and a parallel residue calculation method for detecting an error in digital information when outputs from a turbo decoder or the like are input in parallel.
  • CRC Cyclic Redundancy Check
  • a wireless communication system an error correction circuit using CRC is provided because there is a possibility that an error may occur in transmission data in a wireless transmission path because communication is performed via a wireless line.
  • a CRC bit is generated based on the transmission data sequence on the transmission side, and added to the end of the transmission data sequence.
  • the bit string to which the CRC bits are added is encoded using an encoding method such as convolutional encoding or turbo encoding, and the resulting encoded bit string is transmitted.
  • FIG. 1 is a diagram illustrating how the CRC code is used.
  • an input data sequence A from an input source (source) 11 is C RC encoded by a CRC encoding unit 12 and transmitted as a transmission data sequence B to a receiving side via a communication path 13.
  • the communication path 13 is, for example, a wireless transmission path, and a bit error (noise) E is added thereto.
  • the CRC check unit 14 performs CRC check, and the received data A ′ based on the CRC check is passed to the output side (sink) 15.
  • the CRC check unit 14 performs CRC check to check the error occurrence status. If no error is detected, the received data A ′ of the data string A is output and an ACK signal is formed as an ACK / NACK signal to be transmitted to the communication partner. On the other hand, if an error occurs, the received data is not output and the communication partner A NACK signal is formed as an ACK / NACK signal to be transmitted to.
  • HARQ Hybrid Auto Repeat reQuest
  • bit string is represented by a polynomial as shown in the following equation (1).
  • a (D) . . "+ ⁇ D" -1 + ⁇ ⁇ + a is + a réelle— 2 D + a sans _,
  • the input data string A is CRC-encoded and becomes B in the following equation (2).
  • CRC encoding generally used, a bit string of length c is added after an n-bit input data string. The added c bits are sometimes called CRC.
  • R (D) ⁇ is-ZT- 1 + ⁇ £>"+ ⁇ ⁇ ⁇ + r c — 2 D + r c _,
  • R (D) is determined so that B (D) is completely defeated by G (D) with respect to a predetermined c-th order polynomial G (D). That is, the remainder of A a (D) D e divided by G (D) is R (D).
  • G (D) is called a generator polynomial, and is expressed by the following equation (5).
  • the order c of the generator polynomial may be referred to as the CRC order.
  • n + c bits CRC-encoded as described above are transmitted via the communication path 13.
  • a bit error (noise) E (D) is added.
  • FIG. 2 is a diagram for explaining how the CRC code applied to a more practical system is used.
  • input data A (D) from an information source (source) 21 is CRC-encoded by a CRC encoder 22, and CRC-encoded data B (D) is an error correction encoder. 23 is transmitted as transmission data C (D) to the receiving side via the communication path 24.
  • error correction coding is performed after CRC coding.
  • Reed-Solomon code, convolutional code, turbo code, or the like is used as a method of error correction coding.
  • a bit error (noise) E may be added.
  • the transmission data sequence C ′ (D) to which the bit error E is added is received, the error correction decoding unit 25 performs error correction decoding and outputs the transmission data B ′ (D), and the CRC check
  • the CRC check is performed by the unit 26, and the received data A ′ based on the CRC check is passed to the output side (sink) 27.
  • the error correction code is decoded. This eliminates most of the bit errors added on channel 24.
  • the CRC check by the CRC checker 26 checks whether there are errors that could not be removed by error correction decoding.
  • FIG. 3 is a diagram showing a configuration of a generally well-known sequential CRC calculation circuit.
  • the sequential CRC calculation circuit 30 includes an EXOR (exclusive OR) circuit 31 and [0] to
  • FIG. 3 shows a general configuration using a shift register, in which every clock cycle is input every 1 bit from the head of the input data string.
  • a to a are set to 1 at the input terminal indicated by a [t].
  • the received n + c-bit data B ′ (D) is input bit by bit, and then it is determined whether the value remaining in the flip-flop is zero.
  • the first n bits of B ′ (D) may be input to determine whether the value remaining in the flip-flop matches the remaining c bits of B ′ (D).
  • Patent Document 1 discloses a partial CRC calculation method that shortens the processing delay time by calculating a partial CRC.
  • the partial CRC circuit 40 includes a calculation target bit string A [0] A [15] input terminal 41 and each bit string A [0] A [15].
  • An AND circuit 42 that takes the AND of and an adder circuit 43 that collects partial CRCs. [0030] The AND circuit 42 decodes the effective value of each calculation target bit string of the partial CRC calculated in advance into a partial CRC code, and the addition circuit 43 obtains a CRC code for the entire calculation target bit string.
  • Patent Documents 2 and 3 disclose sub-block divided parallel CRC circuits that divide data into sub-blocks and perform parallel processing.
  • the calculation formula of the remainder R (D) is modified as the following expression (8).
  • the most common parallelization method is a serial CRC conversion type parallel CRC circuit.
  • FIG. 5A and FIG. 5B are diagrams illustrating a serial CRC conversion type parallel CRC circuit.
  • the S / P conversion type parallel CRC circuit 50 includes an S / P converter 51 and a parallel CRC circuit 52.
  • the S / P conversion type parallel CRC circuit 50 performs serial / parallel conversion of the input by the S / P converter 51, and the parallel CRC circuit 52 performs CRC calculation by parallel processing.
  • parallel processing for example, lbytes are processed.
  • This parallelization method has many implementations and application examples, both hardware and software.
  • Non-Patent Document 1 Hideki Imai, "Code Theory", IEICE, March 1990 Patent Document 1: JP-A-8-149017
  • Patent Document 2 Special Table 2003-No. 523682 Noriyuki
  • Patent Document 3 Japanese Patent Laid-Open No. 2005-6188
  • the sequential CRC calculation circuit has a portion C in which the processing delay time is very large.
  • the RC circuit increases the capacity of the memory that holds the partial CRC and causes an increase in cost.
  • the output of the parallel turbo decoder is a sub-block division type
  • a sub-block division type parallel CRC circuit can be applied, there is an advantage that it can be directly input without going through a memory. That is, since the output of the parallel turbo decoder is directly input to the CRC calculation circuit, the parallel CRC calculation circuit is not a serial-to-parallel conversion type (for example, processing 1 byte at a time from the beginning), but a sub-block division type (for example, The data series must be divided into small blocks of length M). Therefore, the sub-block division parallel CRC circuit does not require an interface memory compared to the S / P type parallel CRC circuit, leading to a reduction in processing delay and a reduction in circuit size.
  • the sub-block division parallel CRC circuit has a great advantage when combined with a parallel turbo decoder that performs sub-block division, but the conventional sub-block division parallel CRC circuit has a processing delay. ⁇ Processing delay with large circuit scale ⁇ CRC circuit with small circuit scale is required.
  • An object of the present invention is to provide a parallel residue calculator that can reduce the processing delay and can reduce the circuit scale by eliminating the need for an additional multiplier circuit and a residue circuit. Means to do
  • the parallel residue calculator of the present invention is a parallel residue calculator in which input data is divided into a plurality of sub-blocks and input in parallel, and the partial residue corresponding to the head point of each sub-block is calculated.
  • An initial value generating means for generating an initial value, and a partial remainder for receiving a partial remainder corresponding to the head of each sub-block from the initial value generating means as an initial value and sequentially generating the remaining partial remainders according to a predetermined recurrence formula Generation means; logic means for calculating the logic of the partial remainder value output from the partial data generation means; and cumulative addition means for cumulatively adding values output from the logic means.
  • the parallel remainder computing unit of the present invention is a parallel remainder computing unit in which input data is divided into a plurality of sub-blocks and input in parallel, and a partial remainder corresponding to the final point of each sub-block is calculated.
  • An initial value generating means for generating an initial value, and a reverse order part for receiving a partial remainder corresponding to the final point of each sub-block from the initial value generating means as an initial value and sequentially generating the remaining partial remainder according to a predetermined recurrence formula Remainder generation means, the input data, a logic means for calculating the logic of the value of the reverse order partial remainder output from the reverse order partial residue generation means, and a cumulative addition of the values output from the logic means
  • a configuration comprising an adding means is adopted.
  • the parallel residue calculation method of the present invention converts input data of length n into data strings of length nm and m.
  • the processing delay can be reduced, and it is not necessary to store all of the partial CRCs, and the circuit scale is reduced by eliminating the need for an additional multiplier circuit / residue circuit. I can do this.
  • the processing delay can be significantly reduced when combined with a parallel turbo decoder that performs sub-block division.
  • FIG. 3 Diagram showing the configuration of a conventional CRC calculation circuit
  • FIG. 5A is a diagram showing a conventional serial 'parallel conversion type parallel CRC circuit.
  • FIG. 5B is a diagram showing a conventional serial to parallel conversion type parallel CRC circuit.
  • FIG. 6 is a block diagram showing an overall configuration of a parallel residue calculator according to Embodiment 1 of the present invention.
  • FIG. 7 is a timing chart showing data input / output of the parallel remainder computing unit according to the first embodiment.
  • FIG. 8 A part to be calculated by the partial CRC generation unit of the parallel remainder computing unit according to the first embodiment.
  • FIG. 9 is a diagram showing a circuit configuration of a partial CRC generator of the parallel residue calculator according to the first embodiment.
  • FIG. 10 is a timing chart showing the operation of the partial CRC generation unit of the parallel residue calculator according to the first embodiment.
  • FIG. 11 is a diagram showing a circuit configuration of an AND unit of the parallel residue arithmetic unit according to the first embodiment.
  • FIG. 12 is a timing chart showing an operation of the AND unit of the parallel residue arithmetic unit according to the first embodiment.
  • FIG. 13 is a diagram showing a circuit configuration of a cumulative addition unit of the parallel remainder computing unit according to the first embodiment.
  • FIG. 14 is a program showing a configuration of an initial value generation unit of the parallel remainder computing unit according to the first embodiment. Illustration
  • FIG. 15 is a diagram showing a circuit configuration of an initial value candidate generation unit of the parallel residue calculator according to the first embodiment.
  • FIG. 16 is a timing diagram illustrating the operation of the initial value generation unit of the parallel remainder arithmetic unit according to the first embodiment.
  • FIG. 17 is a block diagram showing the overall configuration of the parallel residue arithmetic unit according to the second embodiment of the present invention.
  • FIG. 18 shows the circuit configuration of the reverse-order partial CRC generation unit of the parallel residue arithmetic unit according to the second embodiment. Illustration
  • FIG. 19 is a table in which partial CRCs calculated by the partial CRC generation units of the parallel residue calculator according to Embodiment 2 are summarized in a table.
  • FIG. 20 is a timing diagram illustrating the operation of the initial value generation unit of the parallel remainder computing unit according to the second embodiment.
  • the present invention has [Point 1] related to the overall configuration, [Point 2] related to the partial CRC generation circuit, and [Point 3] related to the partial CRC generation circuit (reverse order). [0054] [Point 1]: In relation to the overall structure
  • the partial remainder (partial CRC) is calculated as follows.
  • the input data is sub-block 1 corresponding to (a) in the above formula (9).
  • the sub-block division parallel CRC circuit of the present invention does not need to store (1) all partial CRCs. (2) Additional multiplier circuit 'Since no remainder circuit is required, there is a feature of small size and low delay.
  • G (D) Z) C + and-]-'+ g 0 D c ⁇ l + gi D +-+ g c — 3 D 2 + g c . 2 D + g c _,
  • the lowest order coefficient of) M T () is ⁇ ) ⁇ ⁇ ( ⁇ )). Is the coefficient.
  • the sub-block division parallel CRC circuit of the present invention performs the division of the polynomial defined on modG (D). Partial CRC can be calculated with a small circuit that does not need to be performed.
  • the parallel CRC calculation circuit that inputs the data of each sub-block in order according to the original data order (for example, a to a) and reverse order (for example, a to a) is also realized. it can. [0064] That is, in the following calculation formula (12), in sub-block 1, support is performed in the order of a to a.
  • the sub-block division parallel CRC circuit of the present invention is used when data is (partially) reverse in order.
  • FIG. 6 is a block diagram showing the overall configuration of the parallel residue calculator according to Embodiment 1 of the present invention based on the above basic principle.
  • the present embodiment is an example corresponding to the above [Point 1] and [Point 2].
  • point an example in which data is divided into two (two parallel) is shown, but in the first embodiment, a case of four parallel will be described as an example.
  • a parallel CRC calculation circuit (parallel remainder calculator) 100 includes an input terminal 10;
  • Partial CRC generators 111 to 114 receive partial CRCs corresponding to the heads of the respective sub-blocks as initial values from initial value generator 110, and the rest. Are sequentially generated based on the recurrence formula. The configuration and operation of the partial CRC generation unit 11;! To 114 will be described later with reference to FIGS.
  • AND sections 121 to 124 are 1 bit input from input terminals 101 to 104 and 24 bits output from partial CRC generation sections 111 to 114. Calculate the AND of the values of. Any logic circuit that calculates the logic of the partial CRC value is not limited to AND (logical product). The configuration and operation of the AND units 121 to 124 will be described later with reference to FIGS.
  • the cumulative addition unit 130 cumulatively adds the values output from the AND units 121 to 124.
  • the length of the input data is N [bits]
  • the length of sub-blocks 1 to 3 is M [bits]
  • the size of sub-block 4 is the remaining N—3M [bits]. Divided. This division method Is an example and may be determined in any way.
  • FIG. 7 is a timing chart showing input / output of data, and the input data is represented as A [n— 1: 0].
  • t represents time.
  • Signal t in Figure 6 is not specified
  • Sub-block 1 data (A [0] A [M-1]) shown in al is input to the input terminal 101 bit by bit starting with A [0].
  • the data (A [M] A [2M-1]) force A [M] of sub-block 2 indicated by a2 is input bit by bit.
  • the size of sub-block 4 is different from the other sub-blocks (because it is a fraction, it is 1 bit less than the other). Therefore, as indicated by a4 in FIG. 7, 0 is input to the input terminal 104 at time M-1.
  • a desired CRC value is output from the CRC output terminal (r).
  • a desired CRC value is held at the output terminal (r) as long as the value of the input terminal is held at 0 even after all inputs are completed.
  • FIG. 8 is a table summarizing the partial CRCs calculated (in charge) by the partial CRC generation unit 11 ;! 114.
  • the notation DM ⁇ T ⁇ (D) was used.
  • Partial CRC generators 111 to 114 (partial CRC generators 1> to 4>) generate initial values using the partial CRC corresponding to the head (0 M 2M 3M) of each sub-block as an initial value. Receiving from circuit 110, the remaining partial CRCs are sequentially generated based on the recurrence formula (11) described above.
  • the partial CRC generation unit 111 of the circuit number 1 is generated when the input data number 0 M ⁇ 1 and the initial value is DM ⁇ N ⁇ 1 + c ⁇ (D).
  • the partial CRCs to be performed are DM ⁇ N ⁇ 1 + c ⁇ 1 ⁇ (D) to DM ⁇ N ⁇ l + c ⁇ (M ⁇ l) ⁇ (D).
  • the partial CRC generators 112 to 114 sequentially generate the remaining partial CRCs based on the equation (11) with the partial CRC corresponding to the head (M 2M 3M) of each sub-block as an initial value.
  • FIG. 9 is a diagram illustrating a circuit configuration of the partial CRC generation unit 111. Partial CRC generator 111
  • partial CRC generation section 111 includes selector 201, D flip-flop (FF) 202
  • An EXOR circuit 203 An EXOR circuit 203, and an AND circuit 204.
  • the partial CRC generator 111 has a configuration centered on a 24-bit D flip-flop 202.
  • a configuration in which flip-flops are connected in a row is often called a shift register.
  • [0088] 11 [23: 0] is an initial value, and g [23: 0] is a value representing a generator polynomial.
  • the generator polynomial is defined by the following equation (14),
  • g [i] is the coefficient of D — 1 . Since the coefficient of D e is always 1, it is not necessary to define g [—l].
  • pl [23: 0] is the generated partial CRC.
  • FIG. 10 is a timing chart showing the operation of partial CRC generation section 111.
  • Id is a control signal.
  • ld l
  • the initial value II is loaded into the shift register.
  • the value of I 1 is specifically DM ⁇ N ⁇ l + c ⁇ (D) as shown in the table of FIG.
  • N-l + c 98 for ease of viewing.
  • the loaded value itself is output as a partial CRC corresponding to A [0].
  • the next DM [97] value is calculated based on the recurrence formula.
  • pi is the contents of the shift register before update (eg DM [98]).
  • pl, [23: 0] ⁇ pl [22: 0], 0 ⁇ + pl [23] * ⁇ g [22: 0], 1 ⁇ -• (15)
  • the partial CRC generation units 111 to 114 of the parallel CRC calculation circuit 100 have only a simple configuration of a shift register and an AND'EXOR for each bit, and a portion that is necessary in a timely manner according to input data. CRC can be calculated.
  • FIG. 11 is a diagram showing a circuit configuration of the AND unit 121. As shown in FIG. Since the AND sections 121 to 124 have the same configuration, the AND section 121 will be described as a representative.
  • an AND unit 121 includes an AND circuit 211 that calculates an AND of one bit input from the input terminal 101 and a 24-bit value output from the partial CRC generation units 111 to 114. Is done.
  • the AND unit 121 shown in FIG. 11 calculates an AND of one bit input from the input terminal 101 and the 24-bit value output from the partial CRC generation units 111 to 114. That is, the following equation (15)! /, A I win.
  • FIG. 12 is a timing chart showing the operation of the AND unit 121.
  • t representing time is the same as t in FIG. That is, the partial CRC generation units 111 to 114 generate the partial CRC to be associated with the input data with good timing.
  • [0102] [Cumulative adder 130]
  • FIG. 13 is a diagram illustrating a circuit configuration of the cumulative addition unit 130.
  • the cumulative addition unit 130 includes an EXOR circuit 211, a flip-flop (FF) 222, and a switch circuit 223.
  • Cumulative addition section 130 cumulatively adds the values output from AND sections ⁇ 1> to ⁇ 4>.
  • s is the value of the flip-flop before the update
  • s' is the direct value of the flip-flop after the update.
  • D wAe "(Z) r modG () has the highest coefficient of 0)
  • D c modG (D) G (D) ⁇ D c .
  • FIG. 14 is a block diagram showing a configuration of the initial value generation unit 110.
  • the initial value generation unit 110 includes an initial value candidate generation unit 230, a data acquisition timing generation unit 231, a data acquisition unit 24;! To 244 (data acquisition units 1> to 4>), And initial value storage unit 25;! To 254 (initial value storage units 1> to 4>).
  • FIG. 15 is a diagram showing a circuit configuration of the initial value candidate generation unit 230.
  • initial value candidate generation section 230 includes selector 261, flip-flop (FF) 26
  • the internal configuration is as shown in Figure 15.
  • FIG. 16 is a timing chart showing the operation of the initial value generation unit 110.
  • the data acquisition unit 241 acquires the initial value DM ⁇ N—l + c ⁇ (D) used by the partial CRC generation unit 111 (see FIG. 6).
  • the storage unit 251 (stored in the initial value storage unit 1. That is, the data acquisition timing generation unit 231 includes the initial value candidate generation unit 230 as DM ⁇ N— 1 + C ⁇ (D), as shown in FIG.
  • the data acquisition unit 241 obtains the output of the initial value candidate generation unit 230 in response to the trigger signal of ldl, so that the value DM to be stored in the initial value storage unit 1 is transmitted. ⁇ - 1 + c ⁇ can be obtained.
  • parallel CRC calculation circuit 100 has input terminals 101 to 104 to which input data is divided into a plurality of sub-blocks and input in parallel.
  • An initial value generation unit 110 that generates a partial CRC corresponding to the head point as an initial value, receives a partial CRC corresponding to the head of each sub-block as an initial value, and the remaining partial CRC
  • the partial CRC generators 111 to 114 which sequentially generate the values according to a predetermined recurrence formula, calculate the logical product of the values of the partial CRCs, AND units 121 to 124, and AND units 121 to 124;
  • a cumulative addition unit 130 for performing addition automatically.
  • the partial CRC corresponding to the head point of each sub-block is generated.
  • the processing delay can be reduced, and the circuit scale can be reduced by eliminating the need for an additional multiplier circuit and a redundant circuit.
  • turbo code As described above, particularly when combined with a parallel turbo decoder that performs sub-block division, the processing delay can be significantly reduced. Regardless of the type of turbo code, it is applicable to general purposes and easy to implement.
  • FIG. 17 is a block diagram showing an overall configuration of the parallel residue calculator according to Embodiment 2 of the present invention.
  • the same components as those in FIG. 6 are denoted by the same reference numerals.
  • the present embodiment is an example corresponding to [Point 3] described in the basic principle.
  • [Point 3] an example was given in which the data input order was reversed for each sub-block. Dividing the data into 4 In the 4 parallel, subblock 2> and subblock 4> will be described as an example.
  • a parallel CRC calculation circuit (parallel remainder arithmetic unit) 300 includes an input terminal 10;! To 04 (input terminals 1> to 4>), an initial value generation unit 310, a partial CRC generation unit. 111, 113 (partial RC generators 1>, 3>), reverse partial CRC generators 312, 314 (reverse partial CRC generators 2>, 4>), AND units 121 to 124 (AND units) ⁇ 1> to ⁇ 4>), and a cumulative adder 130.
  • the parallel CRC calculation circuit 300 in FIG. 17 has a sub-block size of M and input terminals 102, 1
  • the partial CRC generation units 112 and 114 are changed to reverse partial CRC generation units 312 and 314, respectively. Also, the initial value input to the reverse partial CRC generation circuits 312 and 314 was changed. Therefore, the initial value generated by the initial value generating unit 310 is different from that of the initial value generating unit 110 in FIG. 6, but the configuration is the same (see FIG. 14).
  • FIG. 18 is a diagram showing a circuit configuration of the reverse order partial CRC generation unit 312. Since the reverse order partial CRC generation units 312 and 314 have the same configuration, the reverse order partial CRC generation unit 312 will be described as a representative.
  • the reverse order partial CRC generation unit 312 includes a selector 401, a D flip-flop (F F) Consists of 402, EXOR circuit 403, and AND circuit 404.
  • the reverse partial CRC generation unit 312 has a configuration centered around the 24-bit D flip-flop 402, and the generation direction of force data is in the reverse direction. It is.
  • FIG. 19 shows respective partial CRC generation units, ie, partial CRC generation unit 111, reverse order portion
  • FIG. 7 is a table in which partial CRCs calculated (in charge) by CRC generation unit 312, partial CRC generation unit 113, and reverse order partial CRC generation unit 314 are tabulated.
  • the notation DM ⁇ T ⁇ (D) was used.
  • the forward partial CRC generators 111 and 113 calculate T in the decreasing direction, while the reverse partial CRC generators 312 and 314 calculate in the direction of increasing T. I'm doing it.
  • initial value generation section 310 has the same configuration as partial CRC generation section 111 of the first embodiment.
  • the initial value required by the reverse order partial CRC generation unit 312 is not DM ⁇ N — 1 + c— M ⁇ (D) but DM ⁇ N— 1 + c— (2M—1) ⁇ (D).
  • FIG. 20 is a timing chart showing the operation of the initial value generation unit 310.
  • FIG. 16 which is a timing chart showing the operation of the initial value generation unit 100 of the parallel CRC calculation circuit 100, it can be seen that the trigger output timings for the signals ld2 and ld4 are different.
  • the input order of data can be input in reverse order for each sub-block. Therefore, it has a high affinity when combined with a parallel turbo decoder that performs sub-block division.
  • the output of the turbo decoder can be directly input to the parallel CRC calculation circuit (parallel remainder calculator) 300.
  • the processing delay can be significantly reduced.
  • partial CRC generation section 111 calculates one partial CRC per one clock cycle as shown in Fig. 10 using formula (8). It is also possible to calculate two or more partial CRCs per clock cycle by repeatedly using. For example, the partial CRC generation unit 111 obtains two partial CRCs DM ⁇ N—l + c + i + l ⁇ (D) from DM ⁇ N ⁇ l + c + i ⁇ (D) (i is an integer). DM ⁇ N—l + c + i + 2 ⁇ (D) is output. With such a configuration, it becomes possible to input 2 bits of data to each input terminal 101 to 104 in every clock cycle.
  • the force obtained by reversing the sub-blocks 2 and 4 and any sub-block may be reversed, and only some of the sub-blocks may be reversed.
  • the names of a parallel remainder calculator and a parallel CRC calculation circuit are used. However, this is for convenience of explanation, and includes a CRC calculation circuit, an error correction circuit, an error correction method, and the like. Also good.
  • the present invention is realized by software for functioning the parallel residue calculation method, as well as by hardware as long as the parallel residue calculator and the parallel residue calculation method according to the present algorithm can be realized. It is also possible to do.
  • This software is Stored on a computer-readable recording medium.
  • Each functional block used in the description of each of the above embodiments is typically realized as an LSI which is an integrated circuit. These may be individually made into one chip, or may be made into one chip so as to include a part or all of them. Here, it may be called IC, system LSI, super LSI, or ultra LSI, depending on the difference in power integration as LSI. Also, the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. Field programmable gate arrays (FPGAs) that can be programmed after LSI manufacturing and reconfigurable processors that can reconfigure the connection and settings of circuit cells inside the LSI may be used. Furthermore, if integrated circuit technology that replaces LSI emerges as a result of advances in semiconductor technology or other derived technologies, it is naturally possible to integrate functional blocks using this technology. For example, the possibility of applying technology is possible.
  • FPGAs Field programmable gate arrays
  • the parallel residue computing unit and parallel residue computing method according to the present invention replaces a conventional CRC calculation circuit in a communication system in which outputs of a turbo decoder or the like are inputted in parallel and an error of digital information is detected. It is useful as a new parallel residue calculator and parallel residue calculation method. For example, in order to decode transmission data encoded by convolutional code, turbo coding, etc. for error correction, on the receiving side, whether there is a soft output decoder such as a Viterbi decoder or a turbo decoder, or whether there is a transmission error. It is suitable for use in a communication terminal device such as a receiver or a mobile phone that uses a cyclic code for detection.

Description

明 細 書
並列剰余演算器及び並列剰余演算方法
技術分野
[0001] 本発明は、並列剰余演算器及び並列剰余演算方法に関し、例えば、ターボ復号器 などの出力が並列で入力され、デジタル情報の誤りを検出する並列剰余演算器及び 並列剰余演算方法に関する。
背景技術
[0002] 無線によるパケット通信や、光ディスクなどの記録ディスクなど、さまざまな分野で C RC (Cyclic Redundancy Check :巡回冗長検査)符号が用いられている。例えば、無 線通信システムでは、無線回線を介して通信することから無線伝送路にお!/、て送信 データに誤りが発生する可能性があるので、 CRCを使用した誤り訂正回路を設ける。 送信側で送信データ列に基づレ、て CRCビットを生成し、それを送信データ列の後ろ に付加する。 CRCビットを付加したビット列は、畳み込み符号化やターボ符号化など の符号化方式を用いて符号化され、これにより得られる符号化ビット列が送信される
[0003] CRC符号の原理については、非特許文献 1に詳細に記載されている。
[0004] 図 1は、 CRC符号の使われ方を説明する図である。
[0005] 図 1において、入力源(ソース) 11からの入力データ列 Aは、 CRC符号化部 12で C RC符号化され、送信データ列 Bとして通信路 13を介して受信側に送信される。通信 路 13は、例えば無線伝送路でありビット誤り(ノイズ) Eが付加される。受信側では、ビ ット誤り Eが付加された送信データ列 B'を受信し、 CRC検査部 14で CRC検査し、 C RC検査に基づく受信データ A'を出力側(シンク) 15に渡す。無線通信システムが、 誤り訂正能力が高いターボ符号化と ARQ (Auto Repeat reQuest)とを組み合わせた HARQ (Hybrid Auto Repeat reQuest)の場合、 CRC検査部 14で CRCチェックを行 い、誤りの発生状況を検出し、誤りが発生していない場合、データ列 Aの受信データ A'を出力するとともに、通信相手に送信する ACK/NACK信号として ACK信号を 形成する。これに対して、誤りが発生した場合、受信データを出力せずに、通信相手 に送信する ACK/NACK信号として NACK信号を形成する。
[0006] より一般的に説明する。
[0007] nビットの入力データ列を A = [a a - - -a a ]とする。 aが MSB (Most Significant
0 1 n— 2 n— 1 0
Bit)、すなわち先に送信されるビットでる。 a , · · · , a をそれぞれ GF(2)の元(すな
0 n— 1
わち、ィ直 0又は 1をとる)とし、ビット列を次式(1)のように多項式で表す。
[0008] 國
A(D) = 。。" + ^D"-1 +■■· + a が + a„—2D + a„_,
入力データ列 Aは、 CRC符号化され、次式(2)の Bとなる。一般に用いられる CRC 符号化では、 nビットの入力データ列の後に長さ cのビット列を追加することで行われ る。追加された cビットを CRCと呼ぶこともある。
[0009] B = [a a - - -a a r r - · τ r ] …(2)
0 1 c 2 c— 1 0 1 c 2 c— 1
CRCの多項式表現を、次式(3)で表すとすると、 Bの多項式表現は、次式 (4)で示 される。
[0010] [数 2]
R(D) = ^ が- ZT- 1 + η£>" +■·■ + rc2D + rc_,
… 3 )
B(D)=A(D)DC + R(D) …(4)
CRC符号化は、あらかじめ定められた c次の多項式 G(D)に対し、 B(D)が G(D)で害 ij り切れるように R(D)が定められる。すなわち、 A(D)Deを G(D)で割った剰余が R(D)で ある。
[0011] 上記 G(D)は生成多項式と呼ばれ、次式(5)で示される。
[0012] [数 3]
G(D) = ZT + ^g,Dc- l =び + g。 -' + gび-1 + - + gc_3D2 + g D + gc_x
- ( 5 )
以下では、生成多項式の次数 cを CRCの次数と呼ぶ場合がある。
[0013] 以上をまとめると、次式(6)になる。 Q(D)は A(D)Deを G(D)で除した商である。 [0014] B(D)=A(D)DC + R(D) = G(D)Q(D) …(6)
以上のようにして CRC符号化された n + cビットが、通信路 13を介して送信される。 通信路 13では、ビット誤り(ノイズ) E(D)が付加される。
[0015] CRC検査は、受信値 B' (D) = B(D) + E(D)が G(D)で割り切れるかどうかを検査す ることで行われる。受信値にビット誤りがなければ (すなわち、 E(D) = 0のとき)、 B' (D G(D)で割り切れる。受信値にビット誤りがある場合、 E(D)が G(D)で割り切れない 場合には B' (D)が G(D)で割り切れなくなる。したがって、通信路でビット誤りが発生し たことを検出できる。 E(D)が G(D)で割り切れる場合、誤りがあることを CRCにより検出 できない。しかし、 cが十分な長さを持っていればその発生確率は低い。 cとしては、 3 2〜8といった値がよく用いられる。
[0016] 図 2は、より実際的なシステムに適用した CRC符号の使われ方を説明する図である
[0017] 図 2において、情報源(ソース) 21からの入力データ A(D)は、 CRC符号化部 22で CRC符号化され、 CRC符号化されたデータ B(D)は誤り訂正符号化部 23で送信デ ータ C(D)として通信路 24を介して受信側に送信される。送信側では、 CRC符号化 ののち、誤り訂正符号化が行われる。誤り訂正符号化の方法としては、リードソロモン 符号、畳み込み符号、ターボ符号、などが用いられる。
[0018] 通信路 24において、ビット誤り(ノイズ) Eが付加されることがある。受信側では、ビッ ト誤り Eが付加された送信データ列 C' (D)を受信し、誤り訂正復号部 25で誤り訂正の 復号を行って送信データ B' (D)を出力し、 CRC検査部 26で CRC検査し、 CRC検査 に基づく受信データ A'を出力側(シンク) 27に渡す。受信側では、誤り訂正符号の 復号が行われる。これにより、通信路 24で加えられたビット誤りの大部分が取り除か れる。 CRC検査部 26による CRC検査では、誤り訂正復号で取りきれなかった誤りが あるかどうかを検査する。
[0019] (従来例 1:逐次 CRC計算回路)
図 3は、一般的によく知られる逐次 CRC計算回路の構成を示す図である。
[0020] 図 3において、逐次 CRC計算回路 30は、 EXOR (排他的論理和)回路 31と、 [0]〜
[c— 1]のフリップフロップ(FF) 32と、 AND回路 33とから構成される。 [0021] 図 3は、シフトレジスタを用いた一般的な構成であり、入力データ列の先頭から lbit ずつ毎クロックサイクル入力する。
[0022] 逐次 CRC計算回路 30の CRC符号化では、 a[t]で示す入力端子に、 a〜a を 1
0 1 ビットずつ入力する。すべて入力した後、 cビットのフリップフロップ (FF)に保持されて いる値が、 CRC演算結果となる。
[0023] CRC検査では、受信した n + cビットのデータ B' (D)を 1ビットずつ入力した後、フリ ップフ口ップに残った値が 0かどうかを判定する。又は、 B ' (D)の先頭の nビットを入力 し、フリップフロップに残った値が B' (D)の残りの cビットと一致するかどうかを判定して あよい。
[0024] しかし、この構成では、入力が nビットの場合、 CRC符号化に少なくとも nクロックを 要し、処理遅延時間が大きいという問題がある。
[0025] (従来例 2:部分 CRCを算出する方法)
特許文献 1には、部分 CRCを算出することで処理遅延時間を短縮する部分 CRC 算出方法が開示されている。
[0026] 特許文献 1では、剰余 R(D)の計算式を次式(7)のように変形する。
[0027] [数 4]
R(D) = A(D)modG(D)
= 。 lmodG(£>)
= J ^D'-'^-' modGiD))
…(7 ) ここで、
Figure imgf000006_0001
をあら力、じめ求めておき 、入力データをパラレルで一度に入力することで 1クロックサイクルで CRCを求めるこ と力 Sできる。
[0028] 図 4は、部分 CRC回路の構成を示す図であり、上記式(7)において n= 16, c = 24 の場合の部分 CRC回路を示す。
[0029] 図 4において、部分 CRC回路 40は、演算対象ビット列 A[0]A[15]入力端子 41と、 各ビット列 A[0]A[15]とあら力、じめ算出された部分 CRCの ANDをとる AND回路 42 と、部分 CRCをまとめる加算回路 43とから構成される。 [0030] AND回路 42では、あらかじめ算出された部分 CRCの、各演算対象ビット列の有効 値を部分 CRC符号にデコードし、加算回路 43では、演算対象ビット列全体に対する CRC符号を求める。
[0031] しかし、特許文献 1に示される並列度 nの構成では、 nが大きくなると、回路規模がと ても大きくなつてしまう。並列度を下げ、データの一部を順次入力していくことも考えら れるが、 i = 0〜n— 1に対する任意の部分 CRCを即座に計算することは回路規模や 処理遅延の面から困難である。そこで、すべての部分 CRCをあらかじめ求めておく 必要があるが、 nが大きい場合には、部分 CRCを保持しておくメモリの容量が大きく なってしまい、コストの増大を招く。
[0032] (従来例 3:サブブロックに分割する方法)
また、特許文献 2, 3には、データをサブブロックに分割して並列処理を行うサブブ ロック分割型並列 CRC回路が開示されている。特許文献 2, 3では、剰余 R(D)の計 算式を次式 (8)のように変形する。
[0033] [数 5コ
R(D) = A(D)mod G(D)
= g a, >"-I+<;-i j mod G(Z))
= 2 " ) mod G{D) + ( 2 a,£>"-1+c-' I mod G(D)
Figure imgf000007_0001
( 8 ) すなわち、上記式(8)長さ nのデータを、長さ mと n— mに分割し、(a)長さ n— mの C RC計算と、(b)長さ mの CRC計算とに分解する。
[0034] しかし、このサブブロック分割方法では、(a)の結果に DmmodG(D)を乗算したのち、 G(D)による剰余を計算しなければならない。これらの処理のため、乗算器と剰余計 算器が追加で必要となり、回路規模及び処理遅延の増加を招いていた。
[0035] 最も一般的な並列化方法として、シリアル 'パラレル変換型の並列 CRC回路がある
[0036] 図 5A及び図 5Bは、シリアル 'パラレル変換型の並列 CRC回路を示す図である。図 5Aにおいて、 S/P変換型並列 CRC回路 50は、 S/P変換器 51と、並列 CRC回路 52とから構成される。
[0037] S/P変換型並列 CRC回路 50は、図 5Bに示すように、 S/P変換器 51により入力 をシリアル 'パラレル変換し、並列 CRC回路 52で並列処理による CRC計算を行う。 並列処理は、例えば lbyteずつ処理する。この並列化方法は、ハード ' ·ソフトいずれ におレ、ても実装及び応用例が多レ、。
非特許文献 1 :今井秀樹著、「符号理論」、電子情報通信学会、 1990年 3月 特許文献 1 :特開平 8— 149017号公報
特許文献 2:特表 2003— 523682号公幸
特許文献 3 :特開 2005— 6188号公報
発明の開示
発明が解決しょうとする課題
[0038] しかしながら、このような従来の CRC計算回路にあっては、以下のような課題がある
[0039] (1)上述したように、逐次 CRC計算回路は、処理遅延時間が非常に大きぐ部分 C
RC回路は、部分 CRCを保持しておくメモリの容量が大きくなりコストの増大を招く。
[0040] (2)サブブロック分割型並列 CRC回路は、以下の点で必要性が高!/、。
[0041] 並列ターボデコーダの出力は、サブブロック分割型であるため、サブブロック分割 型並列 CRC回路を適用できれば、メモリを介さずに直接入力可能という利点がある。 すなわち、並列ターボ復号器の出力を CRC計算回路に直接入力するため、並列 CR C計算回路は、シリアル 'パラレル変換型 (例えば、先頭から lbyteずつ処理)ではな く、サブブロック分割型 (例えば、データ系列を長さ Mの小ブロックに分割)である必 要がある。したがって、サブブロック分割型並列 CRC回路は、 S/P型並列 CRC回路 を使う場合に比べ、インターフェースとなるメモリが不要となり、処理遅延の削減、回 路規模 '電流の削減につながる。し力もながら、このサブブロック分割型並列 CRC回 路では、サブブロックに分割し並列処理するため、並列処理する複数 CRC剰余発生 器の後段に、乗算器と加算器などの剰余計算器が追加で必要となり、回路規模及び 処理遅延の増加を招く。 [0042] (3)シリアル 'パラレル変換型並列 CRC回路では、インターフェースメモリが必要と なり、このことは、処理遅延の増加をもたらし、 ACK送信の遅れ、反復停止の遅れに よる消費電流増加を招く。
[0043] 上述したように、サブブロック分割型並列 CRC回路は、サブブロック分割を行う並列 ターボ復号器と組み合わせる場合には、利点が大きいが、従来のサブブロック分割 型並列 CRC回路は、処理遅延 ·回路規模が大きぐ処理遅延 ·回路規模の小さい C RC回路が求められている。
[0044] 本発明の目的は、処理遅延を小さくすることができ、追加の乗算回路'剰余回路を 不要にして回路規模を小さくすることができる並列剰余演算器を提供することである 課題を解決するための手段
[0045] 本発明の並列剰余演算器は、入力データが複数のサブブロックに分割されて並列 に入力される並列剰余演算器であって、前記各サブブロックの先頭点に対応する部 分剰余を初期値として生成する初期値生成手段と、前記初期値生成手段から各サ ブブロックの先頭に対応する部分剰余を初期値として受け取り、残りの部分剰余を所 定の漸化式に従って順次生成する部分剰余生成手段と、前記入力データと、前記 部分剰余生成手段から出力される部分剰余の値の論理を計算する論理手段と、前 記論理手段から出力される値を、累積的に加算する累積加算手段とを備える構成を 採る。
[0046] 本発明の並列剰余演算器は、入力データが複数のサブブロックに分割されて並列 に入力される並列剰余演算器であって、前記各サブブロックの最終点に対応する部 分剰余を初期値として生成する初期値生成手段と、前記初期値生成手段から各サ ブブロックの最終点に対応する部分剰余を初期値として受け取り、残りの部分剰余を 所定の漸化式に従って順次生成する逆順部分剰余生成手段と、前記入力データと 、前記逆順部分剰余生成手段から出力される逆順部分剰余の値の論理を計算する 論理手段と、前記論理手段から出力される値を、累積的に加算する累積加算手段と を備える構成を採る。
[0047] 本発明の並列剰余演算方法は、長さ nの入力データを長さ n— mと mのデータ列に 分割し、分割された個々のデータ列をサブブロックとするとき、最大次数 cにおいて定 められる多項式 G(D)の値に応じて、 各サブブロックの i = 0, mにおける先頭点の部 分剰余である Dn_1+emodG(D)と Dn_1+e_mmodG(D)を初期値としてあらかじめ求める ステップと、前記 Dn_1+cmodG(D)と Dn_1+c_mmodG(D)を初期値として、 i= l〜m— 1 及び i = m + l〜n— 1に対応する部分剰余を、順次算出するステップとを有する。
[0048] 本発明の並列剰余演算方法は、長さ nの入力データを長さ n— mと mのデータ列に 分割し、分割された個々のデータ列をサブブロックとするとき、最大次数 cにおいて定 められる多項式 G(D)の値に応じて、 各サブブロックの i = m— 1 , n— 1における最終
Figure imgf000010_0001
υπιο(1θω)を初期値として あらかじめ求めるステップと、
Figure imgf000010_0002
初期値として、 i = m— 2〜0及び i = n— 2〜mに対応する逆順部分剰余を、順次算 出するステップとを有する。
発明の効果
[0049] 本発明によれば、処理遅延を小さくすることができ、部分 CRCをすベて保存してお く必要が無ぐまた追加の乗算回路 ·剰余回路を不要にして回路規模を小さくするこ と力できる。特に、サブブロック分割を行う並列ターボ復号器と組み合わせた場合に 処理遅延を格段に小さくすることができる。
図面の簡単な説明
[0050] [図 1]CRC符号の使われ方を説明する図
[図 2]実際的なシステムに適用した CRC符号の使われ方を説明する図
[図 3]従来の CRC計算回路の構成を示す図
[図 4]従来の部分 CRC回路の構成を示す図
[図 5A]従来のシリアル 'パラレル変換型の並列 CRC回路を示す図
[図 5B]従来のシリアル 'パラレル変換型の並列 CRC回路を示す図
[図 6]本発明の実施の形態 1に係る並列剰余演算器の全体構成を示すブロック図
[図 7]上記実施の形態 1に係る並列剰余演算器のデータの入出力を示すタイミングチ ヤー卜
[図 8]上記実施の形態 1に係る並列剰余演算器の部分 CRC生成部が計算する部分 CRCを表にまとめた図
[図 9]上記実施の形態 1に係る並列剰余演算器の部分 CRC生成部の回路構成を示 す図
[図 10]上記実施の形態 1に係る並列剰余演算器の部分 CRC生成部の動作を示すタ イミングチャート
[図 11]上記実施の形態 1に係る並列剰余演算器の AND部の回路構成を示す図 [図 12]上記実施の形態 1に係る並列剰余演算器の AND部の動作を示すタイミング チャート
[図 13]上記実施の形態 1に係る並列剰余演算器の累積加算部の回路構成を示す図 [図 14]上記実施の形態 1に係る並列剰余演算器の初期値生成部の構成を示すプロ ック図
[図 15]上記実施の形態 1に係る並列剰余演算器の初期値候補生成部の回路構成を 示す図
[図 16]上記実施の形態 1に係る並列剰余演算器の初期値生成部の動作を示すタイミ
[図 17]本発明の実施の形態 2に係る並列剰余演算器の全体構成を示すブロック図 [図 18]上記実施の形態 2に係る並列剰余演算器の逆順部分 CRC生成部の回路構 成を示す図
[図 19]上記実施の形態 2に係る並列剰余演算器のそれぞれの部分 CRC生成部が計 算する部分 CRCを表にまとめた図
[図 20]上記実施の形態 2に係る並列剰余演算器の初期値生成部の動作を示すタイミ 発明を実施するための最良の形態
[0051] 以下、本発明の実施の形態について、図面を参照して詳細に説明する。
[0052] (基本原理)
まず、本発明の基本原理について説明する。
[0053] 本発明は、全体構成に関連する [ポイント 1]、部分 CRC生成回路に関連する [ボイ ント 2]、部分 CRC生成回路(逆順)に関連する [ポイント 3]を有する。 [0054] [ポイント 1] :全体構成に関連して
本発明では、剰余 R(D)の計算式を次式 (9)のように変形する。
[0055] [数 6]
R(D) ^ A(D)mod G(D)
= (aiD"-l+c i mod G(D))
= ; mod G(Z))) +J{aiD" c -' modG(£»))
(a) .(b)
... ( 9 ) すなわち、上記従来例 2 (部分 CRCを算出する方法)と同様に、部分 CRC(Dn— ^odG D の和として CRCを計算するよう式変形し、さらに、上記従来例 3 (サブブロ ックに分割する方法)と同様に、長さ nのデータを長さ n— mと mに分割する。以下、分 割された個々のデータ列をサブブロックと呼ぶことにする。入力データは、上記式(9) 中 (a)に対応する a〜a と、(b)に対応する a〜a に分割され、それぞれを並列に
0 m— 1 m n— 1
計算することで高速計算を実現する。
[0056] このとき、本発明では、次のようにして部分剰余(部分 CRC)を算出する。ここで、入 力データは、上記式(9)中 (a)に対応するサブブロック 1は、 a力も 1ビットずつ順に、 a
0
まで、上記式(9)中 (b)に対応するサブブロック 2は、 a力も 1ビットずつ順に、 a ま m— 1 m n— 1 で、それぞれ与えられる(入力される)ものとする。 [手順 1] i = 0, mにおける部分 CR Cの値(すなわち、サブブロックの先頭点における部分 CRC) Dn_1+emodG(D))、 Dn_ 1+e_mmodG(D》をあらかじめ求めておく。 [手順 2] 上記の 2つの値を初期値として、 i = l〜m— 1及び i = m + l〜n— 1に対応する部分 CRCを、順次算出する。
[0057] 上記のような計算方法をとつたので、本発明のサブブロック分割型並列 CRC回路 は、(1)部分 CRCをすベて保存しておく必要が無ぐ(2)追加の乗算回路'剰余回路 が不要のため、小型 ·低遅延という特徴がある。
[0058] [ポイント 2]:部分 CRC生成回路に関連して
上記、サブブロックの先頭点における部分 CRCを元に、その他の部分 CRCを順次 求める方法につ!/、て、好適な計算方法にっレ、て説明する。
[0059] 生成多項式を次式(10)としたとき、通常用いられる CRCの生成多項式は、最低次 の項の係数 g の値が 1である、という特徴がある。 [0060] [数 7]
G(D) = Z)C + び-】-' + g0Dc~l + giD + - + gc3D2 + gc.2D + gc_,
… ( 1 0 ) この特徴を利用すると、次式(11)に示す漸化式により、 DTmodG(D)の値から D' modG(D)の値を容易に求めることができる。
[0061] [数 8]
DMT{D) = DT modG(D)tおくとき、
UDMT (£>) + G(Z))) » 1 wAe"(DM(r)の最低次の係数が 1 )
) DMT (D) » \ w/w¾(i)M(r)の最低次の係数が 0)
… (1 1 )
ここで、 演算子》を、 次のように定義した。
A{D) = iD' としたとき、
Figure imgf000013_0001
なお、 演算》は、 シフトレジスタのみで実現することができる。
また、 )MT ( )の最低次の係数とは、 Ζ)Λ^ (Ζ))の 。の係数である。
( DMT (D) = y " £>' ' としたとき、 D0の係数は ατ 0 ) 以上から、次の手順により、上記 [ポイント 1]で述べた並列 CRC計算を効率よく実現 できる。 [手 1噴 1,] DM (D) = Dn1+cmodG(D)及び DM (D) = Dn1+cm modG(D)をあらかじめ求めておく。 [手順 2,] DM (D)を元に、 i= l〜m— 1に 対応する部分 CRC(DM (D)〜DM (D))及び、 i二 m+ l〜n— 1に 対応する部分 CRC(DM (D)〜DM (D))を、順次求める。
[0062] 上記のように、部分 CRCをシフトレジスタを用いて順次計算する方法をとつたので、 本発明のサブブロック分割型並列 CRC回路は、 modG(D)上で定義される多項式の 除算を行うことなぐ小型の回路で部分 CRCを算出することができる。
[0063] [ポイント 3]:部分 CRC生成回路(逆順)に関連して
上記では、各サブブロックのデータは、元のデータ順に従い順序良く入力する(例 えば a 〜a )とした力 S、逆順 (例えば a 〜a )に入力するような並列 CRC計算回 路も実現できる。 [0064] すなわち、下記の算出式(12)において、サブブロック 1では、 a 〜aの順に、サ
m-l 0
ブブロック 2では、 a 〜a の順にデータを入力する。これは、ターボ復号器の出力を
1 m
並列 CRC計算器に直接入力するような場合に特に有効である。
[0065] [数 9]
R(D) = A(D)mod G(D)
mod G(D))+ Y (α, -1 +'.-'· mod G(D))
Figure imgf000014_0001
·· . ( 1 2 ) 部分 CRCの生成手順は次の通りである。 [手順 1] i = m-l, n— 1における部分 CR Cの値 (すなわち、サブブロックの最終点における部分 CRC) Dn_1+e_(m_UmodG(D) 、 Dn_1+e_ (n_UmodG(D)をあらかじめ求めておく。 [手順 2] 上記の 2つの値を初期値 として、 i = m— 2〜0及び i = n— 2〜mに対応する部分 CRCを、順次算出する。
[0066] 好適な方法では、次の漸化式(13)を用いると良い。
[0067] [数 10]
DMT (D) = DT modG(D)tおくとき、
(DMT (D)D + G(D) w/!e"CDM(r)の最高次の係数が 0)
) = | DMT (D)D wAe«(Z)M(r)の最高次の係数が 1)
- ( 1 3 ) 上記のように、部分 CRCを逆順に順次生成する方法をとつたので、本発明のサブ ブロック分割型並列 CRC回路は、データが(部分的に)逆順になっている場合にも、 並べ替え操作を行うことなぐ CRC計算が行えるようになった。その結果、並べ替え 操作のための処理遅延をなくすことができた。
[0068] (実施の形態 1)
図 6は、上記基本原理に基づく本発明の実施の形態 1に係る並列剰余演算器の全 体構成を示すブロック図である。本実施の形態は、上記 [ポイント 1]及び [ポイント 2]に 対応する例である。「ポイント」の説明では、データを 2分割する(2並列)例を示したが 、実施の形態 1では、 4並列の場合を例として説明する。すなわち、長さ nの入力デー タを i = 0〜m— 1、 i = m〜2m— 1、 i = 2m〜3m—丄、 i = 3m〜: ιι― 1の 4つのケププ ロックに分害 ijする。また、 CRCの長さを 24ビット(c = 24)とした。
[0069] 図 6において、並列 CRC計算回路(並列剰余演算器) 100は、入力端子 10;!〜 10
4 (入力端子く 1〉〜く 4〉)、初期値生成部 110、部分 CRC生成部 111〜; 114 (部分 C
RC生成部く 1〉〜く 4〉)、 AND部 121〜; 124 (AND部く 1〉〜く 4〉)、及び累積加算部
130を備えて構成される。
[0070] 初期値生成部 110は、部分 CRC生成部 111〜; 114に入力する初期値 I;!〜 14 (初 期値く 1〉〜く 4〉)を生成する。具体的には、各サブブロックの i = 0, m, 2m, 3mにお ける先頭点の部分 CRC (部分剰余)である Dn1+emodG(D)Dn1+emmodG(D)と Dn
1+e_2mmodG(D)と Dn_1+e_3mmodG(D)を初期値として生成する。初期値生成部 110 の実装方法については、図 14乃至図 16により後述する。
[0071] 部分 CRC生成部 111〜; 114 (部分 CRC生成部く 1〉〜く 4〉)は、それぞれのサブブ ロックの先頭に対応する部分 CRCを初期値として初期値生成部 110から受け取り、 残りの部分 CRCを漸化式に基づき順次生成する。部分 CRC生成部 11;!〜 114の構 成及び動作については、図 8乃至図 10により後述する。
[0072] AND部 121〜; 124 (AND部く 1〉〜く 4〉)は、入力端子 101〜; 104から入力された 1 ビットと、部分 CRC生成部 111〜; 114から出力された 24ビットの値の AND (論理積) を計算する。なお、部分 CRCの値の論理を計算する論理回路であればよぐ AND ( 論理積)には限定されない。 AND部 121〜; 124の構成及び動作については、図 11 及び図 12により後述する。
[0073] 累積加算部 130は、 AND部 121〜; 124から出力される値を、累積的に加算する。
この加算は、ビットごとの排他的論理和(EXOR)である。累積加算部 130の構成及 び動作については、図 13により後述する。
[0074] 以下、上述のように構成された並列剰余演算器の動作について説明する。まず、 並列 CRC計算回路 100の全体の動作タイミングについて述べる。
[0075] 本実施の形態では、データを 4分割する 4並列の場合を例に採る。また、 CRCの長 さを 24ビット (c = 24)としている。
[0076] 入力データの長さを N [ビット]とし、サブブロック 1〜3の長さを M [ビット]とし、サブブ ロック 4のサイズを残りの N— 3M [ビット]とするようにデータを分割した。この分割方法 は一例であり、どのように定めてもよい。
[0077] 図 7は、データの入出力を示すタイミングチャートであり、入力データを A[n— 1 : 0] のように表記した。また、図 7中、 tは時刻を表す。図 6中の信号 tは、明記していない
[0078] 入力端子 101には、 alに示すサブブロック 1のデータ(A[0] A[M— 1])が、 A[0] を先頭に 1ビットずつ入力される。入力端子 102には、 a2に示すサブブロック 2のデ ータ(A[M] A[2M— 1])力 A[M]を先頭に 1ビットずつ入力される。入力端子 103 , 104も同様である。なお、上記の例では、サブブロック 4のサイズは他のサブブロッ クと異なる(端数のため、他より 1ビット少ない)とした。そこで、図 7の a4に示すように、 時刻 M— 1には、入力端子 104には 0を入力するようにした。
[0079] すべてのデータが入力されると、所望の CRCの値が CRC出力端子 (r)から出力さ れる。本実施の形態では、すべての入力が完了した後も、入力端子の値を 0に保持 している限り、出力端子 (r)に所望の CRCの値が保持されるようになっている。
[0080] 次に、並列 CRC計算回路 100の個々のモジュールについて説明する。
[0081] 〔部分 CRC生成部 111〜; 114〕
図 8は、部分 CRC生成部 11;! 114が計算(担当)する部分 CRCを表にまとめた 図である。ここで、 DM{T}(D)という表記を用いた。 DM{T}(D) = DM (D) = DTmod τ
G(D)である。
[0082] 部分 CRC生成部 111〜; 114 (部分 CRC生成部く 1〉〜く 4〉)は、それぞれのサブブ ロックの先頭(0 M 2M 3M)に対応する部分 CRCを初期値として初期値生成回 路 110から受け取り、残りの部分 CRCを前述した漸化式(11)に基づき順次生成する
[0083] 例えば、図 8の表において、回路番号 1の部分 CRC生成部 111は、入力データ番 号 0 M—1、初期値を DM{N—l + c}(D)とするとき、生成する部分 CRCは DM{N - 1 + c— 1 }(D)〜DM{N— l + c - (M- l) }(D)である。同様に、部分 CRC生成部 112〜; 114は、それぞれのサブブロックの先頭(M 2M 3M)に対応する部分 CRC を初期値として残りの部分 CRCを前記式(11)に基づき順次生成する。
[0084] 次に、部分 CRC生成部 111を例に採り、さらに詳細に説明する。 [0085] 図 9は、部分 CRC生成部 111の回路構成を示す図である。部分 CRC生成部 111
〜; 114は、同一構成をとるため部分 CRC生成部 111を代表して説明する。
[0086] 図 9において、部分 CRC生成部 111は、セレクタ 201、 Dフリップフロップ(FF) 202
、 EXOR回路 203、及び AND回路 204から構成される。
[0087] 部分 CRC生成部 111は、 24ビット分の Dフリップフロップ 202を中心とした構成とな つている。なお、フリップフロップが数珠繋ぎになっている構成はしばしばシフトレジス タとも呼ば'れる。
[0088] 11[23 : 0]は初期値であり、 g[23 : 0]は生成多項式を表す値である。例えば、生成 多項式が次式(14)で定義されるとき、
g[0] = g[17] = g[18] = g[22] = g[23] = l ,
g[l] = g[2] = ... =g[15] = g[16] = g[19] = g[20] = g[21] = 0と定める。ここで、 g[i] は、 D —1の係数である。 Deの係数は常に 1であるから、 g[—l]を定義する必要はな い。
[0089] G(D) = D24 + D23 + D6 + D5 + D+ 1 - - - (14)
16進数で表記すると、
g = C60001Hである。
[0090] pl[23 : 0]は、生成された部分 CRCである。
[0091] 次に、部分 CRC生成部 111の動作を説明する。
[0092] 図 10は、部分 CRC生成部 111の動作を示すタイミングチャートである。図 10中、 Id は制御信号で、 ld= lのとき、初期値 IIの値がシフトレジスタにロードされる。ここで、 I 1の値は、具体的には、図 8表に示した通り DM{N— l + c}(D)である。図 10のタイミ ングチャートでは、見易さのため N— l + c = 98であるとした。
[0093] すると、時亥 ijt = 0には、ロードされた値そのものが A[0]に対応する部分 CRCとして 出力される。同時に、部分 CRC生成部 111内部では、次の DM[97]の値が漸化式 に基づき算出される。
[0094] 回路図の信号名に従うと、計算式は次式(15)のようになる。なお、 pi 'は更新後の
(例えば DM[97])、 piは更新前の(例えば DM[98])シフトレジスタの内容である。
[0095] pl,[23 : 0] = {pl[22 : 0], 0} +pl[23] * {g[22 : 0], 1 } -• (15)
上記式(15)中の +はビットごとの排他的論理和(EXOR)、 *は論理積 (AND)で ある。また、 {pl[22:0], 0}という表記は、シフト操作を表す。すなわち、 piの値を 1ビ ット分上位方向にシフトし、 LSBに 0を揷入することを意味する。 {g[22:0], 1}は、同 様にシフト操作である力 S、 LSBに 1を揷入することを意味する。
[0096] 以上のように、並列 CRC計算回路 100の部分 CRC生成部 111〜; 114は、シフトレ ジスタと、ビットごとの AND'EXORという簡易な構成のみで、入力データに合わせて 適時必要な部分 CRCを算出することができる。
[0097] 〔AND部 121〜; 124〕
AND部 12;!〜 124 (AND部く 1〉〜く 4〉)は、入力端子 101〜104から入力された 1 ビットと、上記部分 CRC生成部 111〜; 114から出力された 24ビットの値の AND (論 理積)を計算する。
[0098] 図 11は、 AND部 121の回路構成を示す図である。 AND部 121〜; 124は、同一構 成をとるため AND部 121を代表して説明する。
[0099] 図 11において、 AND部 121は、入力端子 101から入力された 1ビットと、部分 CRC 生成部 111〜; 114から出力された 24ビットの値の ANDを計算する AND回路 211か ら構成される。
[0100] 図 11に示す AND部 121では、入力端子 101から入力された 1ビットと、部分 CRC 生成部 111〜; 114から出力された 24ビットの値の ANDを計算する。すなわち、次式 (15)にお!/、て、 a
Figure imgf000018_0001
当する。
[0101] [数 11]
R(D) = A(D)modG(D)
= (aiDn'l+c-,modG(D))
= +J (f modG(/))) + V modG(£i))
(a) (b)
… (15) 図 12は、 AND部 121の動作を示すタイミングチャートである。図 12において、時刻 を表す tは、前記図 10の tと共通である。すなわち、部分 CRC生成部 111〜; 114では 、入力データと対応付けられるべき部分 CRCをタイミング良く生成しているのである。 [0102] 〔累積加算部 130〕
図 13は、累積加算部 130の回路構成を示す図である。
[0103] 図 13において、累積加算部 130は、 EXOR回路 211、フリップフロップ(FF) 222、 及びスィッチ回路 223から構成される。
[0104] 累積加算部 130では、 AND部く 1〉〜く 4〉から出力される値を、累積的に加算して いく。ここで、加算はビットごとの排他的論理和(EXOR)である。すなわち、 i = 0〜23 に対し、次式(16)に示す演算を行う。
[0105] s' [i] = s[i] EXOR ql[i] EXOR q2[i] EXOR q3[i] EXOR q4[i]
-•(16)
上記式(16)中、 sは更新前のフリップフロップの値、 s'は更新後のフリップフロップ のィ直である。
[0106] 〔初期値生成部 110〕
初期値生成部 110の実装方法について説明する。
[0107] サブブロックサイズ Mと生成多項式があらかじめ定められている場合は、必要な Dn +ImodG(D)の値をあら力、じめ求めておき、メモリ(RAMや ROM)に保存しておけば よい。とりうる Iの種類は少ないので、メモリ容量は少なくてよい。
[0108] 本実施の形態では、サブブロックサイズ Mが固定値であるとすれば、 DM{N— 1 + c }(D)、 DM{N— 1 + c— M}(D)、 DM{N— 1 + c— 2M}(D)、 DM{N— 1 + c— 3M} (D)の 4つの値のみ求めておけばよ!/、ので、メモリ容量は 24ビット X 4通り = 96ビット のみでよい。
[0109] また、サブブロックサイズ Mや生成多項式が変更される場合にも、変更される度に、 CPUや DSPを用いてソフトウェアにより値を求め、 RAMに保存すればよい。
[0110] Dn+ImodG(D) (I = 0〜N— 1)は、次の漸化式(17)により求めることができる。 T = c + I, I = 0〜N— 1である。
[0111] [数 12]
Dr+l mod G(D) = (DT modG(D))DmodG(D)
_ \{DT mod G(D))D + G(D) when(DT mod G(D)の最高次の係数が 1)
~ | τ mod G(D))D wAe"(Z)r modG( )の最高次の係数が 0) ここで、 DcmodG(D) = G(D)— Dcである。
[0112] 上記の初期値生成を高速に行う必要がある場合には、次に示すようなハードウェア を用いるとよい。
[0113] 図 14は、初期値生成部 110の構成を示すブロック図である。
[0114] 図 14において、初期値生成部 110は、初期値候補生成部 230、データ取得タイミ ング生成部 231、データ取得部 24;!〜 244 (データ取得部く 1〉〜く 4〉)、及び初期値 記憶部 25;!〜 254 (初期値記憶部く 1〉〜く 4〉)を備えて構成される。
[0115] 図 15は、上記初期値候補生成部 230の回路構成を示す図である。
[0116] 図 15において、初期値候補生成部 230は、セレクタ 261、フリップフロップ(FF) 26
2、 EXOR回路 263、及び AND回路 264から構成される。
[0117] 初期値候補生成部 230は、 Dn+ImodG(D)の値を I = 0〜N—1まで順次求める。内 部構成は、図 15の通りである。
[0118] 図 16は、初期値生成部 110の動作を示すタイミングチャートである。
[0119] データ取得部 241 (データ取得部く 1〉)は、部分 CRC生成部 111 (図 6参照)で使 用する初期値 DM{N—l + c }(D)を取得し、初期値記憶部 251 (初期値記憶部く 1 に保存する。すなわち、データ取得タイミング生成部 231は、図 16に示すように、初 期値候補生成部 230が DM{N— 1 + C }(D)を出力したときに ldlにトリガ信号を送る。 データ取得部 241は、 ldlのトリガ信号に応じて初期値候補生成部 230の出力を取 得することにより、初期値記憶部 1に格納すべき値 DM {Ν- 1 + c }を取得することが できる。
[0120] 同様に、 DM{N— 1 + c— M}(D)が出力されるタイミングで ld2にトリガ信号が出力 され、 DM{N— 1 + c— 2M}(D)が出力されるタイミング (I=j=N— 1— 2M)で ld3にト リガ信号が出力され、 DM{N—l + c— 3M}(D)が出カされるタィミング(I = k = N—l 3M)で ld4にトリガ信号が出力される。
[0121] 以上のように、本実施の形態によれば、並列 CRC計算回路 100は、入力データが 複数のサブブロックに分割されて並列に入力される入力端子 101〜; 104、各サブブ ロックの先頭点に対応する部分 CRCを初期値として生成する初期値生成部 110、各 サブブロックの先頭に対応する部分 CRCを初期値として受け取り、残りの部分 CRC を所定の漸化式に従って順次生成する部分 CRC生成部 111〜; 114、部分 CRCの 値の論理積を計算する AND部 121〜; 124、及び AND部 121〜; 124から出力される 値を累積的に加算する累積加算部 130を備える。部分 CRC生成では、 m番目の入 力の次数(n— 1 m)に生成多項式の次数 cを足した次数(i = n— 1 m + c)につ!/、 て示される剰余 R(D)の計算式を、
Figure imgf000021_0001
に変形して、各サブブロックの先頭点に対応する部分 CRCを生成している。これによ り、本実施の形態では、処理遅延を小さくすることができ、追加の乗算回路'剰余回 路を不要にして回路規模を小さくすることができる。具体的な効果は以下の通りであ
[0122] (1)従来構成では、分割した入力データの CRCを求めてから合成していたので、 追加の乗算回路'剰余回路が必要となり、回路規模や処理遅延の増大を招いていた 。本実施の形態では、並列度に応じた個数の部分 CRC生成部 11;!〜 114を設ける ことにより、簡易な構成でサブブロック分割型の並列 CRC計算を行うことができる。ま た、従来の乗算回路の代わりに AND回路が使用できるので遅延が小さい、さらに、 最終段に追加の剰余計算回路が不要となり、遅延及び回路規模が小さい利点があ
[0123] (2)従来例 2のように従来構成では、あらかじめ部分 CRCを求めておく必要があつ たため、入力データのサイズに比例して、記憶容量の増加を招いていた。これに対し 、本実施の形態では、部分 CRC生成部 111〜; 114は、初期値を元に順次新たな値 を生成するようにしたので、入力データのサイズにかかわらない回路規模 '記憶容量 で部分 CRCを算出できる。
[0124] (3)本実施の形態では、部分 CRCをシフトレジスタを用いて順次計算する方法をと つているので、 modG(D)上で定義される多項式の除算を行うことなぐ小型の回路で 部分 CRCを算出できる。
[0125] このように、サブブロック分割型並列 CRC回路の新しい構成を実現することができ た。ターボ復号器と組み合わせて用いる場合に、処理遅延を少なくし、 ACK/NAC K送信までの遅延を短縮することができる。ターボ符号の反復復号を行う場合に、反 復ごとに即座に CRC判定ができるので、復号を早期に停止し、消費電力を低減でき る。ターボ復号器と CRC計算回路の間のインターフェースメモリへのアクセスを不要 とできるので、消費電力を低減できる。
[0126] 以上のように、特に、サブブロック分割を行う並列ターボ復号器と組み合わせた場 合に処理遅延を格段に小さくすることができる。ターボ符号の種別を問わず、汎用に 適用可能であり、実施も容易である。
[0127] (実施の形態 2)
図 17は、本発明の実施の形態 2に係る並列剰余演算器の全体構成を示すブロック 図である。図 6と同一構成部分には同一符号を付している。
[0128] 本実施の形態は、基本原理で述べた [ポイント 3]に対応する例である。 [ポイント 3]で は、サブブロックごとにデータ入力順を逆順にする例について述べた。データを 4分 割する 4並列において、サブブロックく 2〉とサブブロックく 4〉を逆順にする場合を例と して説明する。
[0129] 図 17において、並列 CRC計算回路(並列剰余演算器) 300は、入力端子 10;!〜 1 04 (入力端子く 1〉〜く 4〉)、初期値生成部 310、部分 CRC生成部 111 , 113 (部分 C RC生成部く 1〉,く 3〉)、逆順部分 CRC生成部 312, 314 (逆順部分 CRC生成部く 2〉 ,く 4〉)、 AND部 121〜; 124 (AND部く 1〉〜く 4〉)、及び累積加算部 130を備えて構 成される。
[0130] 図 17の並列 CRC計算回路 300は、サブブロックサイズを Mとし、入力端子 102, 1
04についてのみデータの入力順を逆にした例である。
[0131] 構成上の特徴は、次の通りである。
[0132] 図 6の並列 CRC計算回路 100と比較して、部分 CRC生成部 112, 114を、それぞ れ逆順部分 CRC生成部 312, 314に変更した。また、逆順部分 CRC生成回路 312 , 314に入力する初期値を変更した。このため、初期値生成部 310で生成する初期 値は、図 6の初期値生成部 110と異なるが、構成は同一(図 14参照)である。
[0133] 図 18は、逆順部分 CRC生成部 312の回路構成を示す図である。逆順部分 CRC 生成部 312, 314は、同一構成をとるため逆順部分 CRC生成部 312を代表して説明 する。
[0134] 図 18において、逆順部分 CRC生成部 312は、セレクタ 401、 Dフリップフロップ(F F) 402、 EXOR回路 403、及び AND回路 404から構成される。
[0135] 逆順部分 CRC生成部 312は、部分 CRC生成部 111 (図 9参照)と同様、 24ビット分 の Dフリップフロップ 402を中心とした構成となっている力 データの生成方向が逆方 向である。
[0136] 図 19は、それぞれの部分 CRC生成部、すなわち部分 CRC生成部 111 ,逆順部分
CRC生成部 312,部分 CRC生成部 113,逆順部分 CRC生成部 314が計算(担当) する部分 CRCを表にまとめた図である。ここで、 DM{T}(D)という表記を用いた。 D
M{T}(D) = DM (D) = DTmodG(D)である。
τ
[0137] 図 19の表に示すように、回路番号 2, 4の入力データ順が逆になつており、それに 対応して初期値と部分 CRCの生成順が変わっている。
[0138] 基本原理の [ポイント 3]で説明した通り、次の漸化式(18)に基づき DM{N— 1 + c
— (2M— 1)}(D)を初期値として、 DM{N— 1 + c— (2M— 2)}(D)〜DM{N— 1 + c M}(D)の値を順次求めるものである。
[0139] [数 13]
_ (DMT(D)D + G(D) w¾e«(£!M(r)の最高次の係数が 0)
Γ+1ν I DMT(D)D w/ze«(Z)M(r)の最高次の係数が 1)
(1 8 ) 正順の部分 CRC生成部 111 , 113では、 Tが減少していく方向に算出したのに対 し、逆順部分 CRC生成部 312, 314では、 Tが増加していく方向に算出しているのが ゎカゝる。
[0140] 上述したように、初期値生成部 310は、実施の形態 1の部分 CRC生成部 111と同 等の構成となる。但し、逆順部分 CRC生成部 312で必要とされる初期値は、 DM{N — 1 + c— M}(D)ではなぐ DM{N— 1 + c— (2M—1)}(D)であるから、 ld2のトリガを 発生するタイミングが異なる。すなわち、 I = N—1—(2M—1)のタイミングで ld2 = lと なる。 ld4のタイミングについても同様であり、 1 = 0のタイミングで 14 = 0となる。
[0141] 図 20は、初期値生成部 310の動作を示すタイミングチャートである。並列 CRC計 算回路 100の初期値生成部 100の動作を示すタイミングチャート図 16と比較すると、 信号 ld2と ld4に対しトリガが出力されるタイミングが異なることが分かる。 [0142] このように、本実施の形態では、実施の形態 1の効果に加えてさらに、サブブロック ごとにデータの入力順を逆順に入力することができる。したがって、サブブロック分割 を行う並列ターボ復号器と組み合わせる場合の親和性が高い。例えば、ターボ複合 器で Max— log— MAP復号を行うとき、ターボ復号器の出力を本並列 CRC計算回 路(並列剰余演算器) 300に直接入力することができる。特に、サブブロック分割を行 う並列ターボ復号器と組み合わせた場合に処理遅延を格段に小さくすることができる
[0143] 以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに 限定されることはない。
[0144] 例えば、上記各実施の形態では、データを 4分割する(4並列)の場合を例にとって 説明したが、分割数や CRCのビット長さはこれに限定されない。
[0145] また、上記実施の形態 1では、部分 CRC生成部 111は図 10に示したように 1クロッ クサイクルあたり 1つの部分 CRCを式(8)により計算するものとした力 式(8)を繰り返 し用いることにより、 1クロックサイクルあたり 2以上の部分 CRCを計算するようにしても 良い。例えば、部分 CRC生成部 111は、 DM{N—l + c + i}(D) (iは整数)から、 2つ の部分 CRC、 DM{N— l + c + i+ l }(D)と DM{N— l + c + i + 2}(D)を出力する。こ のような構成により、各入力端子 101〜; 104には 1クロックサイクルごとに 2ビットのデ ータを入力すること力 Sできるようになる。すなわち、データをサブブロック分割した上で 、各サブブロックのデータをシリアル 'パラレル変換する場合にも、本明細に「ポイント 1」「ポイント 2」として示した方法を用いて、簡易な構成で並列計算が可能となる。
[0146] また、上記実施の形態 2では、サブブロック 2, 4を逆順にした力、どのサブブロック を逆順にしてもよく、一部のサブブロックのみ逆順としてもよい。
[0147] また、本実施の形態では、並列剰余演算器及び並列 CRC計算回路という名称を用 いたが、これは説明の便宜上であり、 CRC計算回路、誤り訂正回路、誤り訂正方法 等であってもよい。
[0148] また、本発明を本アルゴリズムによる並列剰余演算器及び並列剰余演算方法が実 現できればよぐハードウェアで構成する場合は勿論のこと、並列剰余演算方法を機 能させるためのソフトウェアで実現することも可能である。このソフトウェアはコンビユー タで読み取り可能な記録媒体に格納されている。
[0149] また、上記各実施の形態の説明に用いた各機能ブロックは、典型的には集積回路 である LSIとして実現される。これらは個別に 1チップ化されても良いし、一部又は全 てを含むように 1チップ化されても良い。ここでは、 LSIとした力 集積度の違いにより 、 IC、システム LSI、スーパー LSI、ウルトラ LSIと呼称されることもある。また、集積回 路化の手法は LSIに限るものではなぐ専用回路又は汎用プロセッサで実現しても良 い。 LSI製造後に、プログラムすることが可能な FPGA (Field Programmable Gate Arr ay)や、 LSI内部の回路セルの接続や設定を再構成可能なリコンフィギユラブル 'プロ セッサ一を利用しても良い。さらには、半導体技術の進歩又は派生する別技術により LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブ ロックの集積化を行っても良い。例えば、ノ^オ技術の適用等が可能性としてありえる
[0150] 2006年 8月 22曰出願の特願 2006— 225934の曰本出願に含まれる明細書、図 面および要約書の開示内容は、すべて本願に援用される。
産業上の利用可能性
[0151] 本発明に係る並列剰余演算器及び並列剰余演算方法は、ターボ復号器などの出 力が並列で入力され、デジタル情報の誤りを検出する通信システムにおいて、従来 の CRC計算回路に代えて使用される新規な並列剰余演算器及び並列剰余演算方 法として有用である。例えば、誤り訂正のために畳み込み符号、ターボ符号化等で符 号化された送信データを復号するため、受信側で、ビタビ復号器やターボ復号器等 の軟出力復号器や伝送誤りの有無を検出するための巡回符号を使用する受信装置 や携帯電話等の通信端末装置に用いるに好適である。

Claims

請求の範囲
[1] 入力データが複数のサブブロックに分割されて並列に入力される並列剰余演算器 であって、
前記各サブブロックの先頭点に対応する部分剰余を初期値として生成する初期値 生成手段と、
前記初期値生成手段から各サブブロックの先頭に対応する部分剰余を初期値とし て受け取り、残りの部分剰余を所定の漸化式に従って順次生成する部分剰余生成 手段と、
前記入力データと、前記部分剰余生成手段から出力される部分剰余の値の論理を 計算する論理手段と、
前記論理手段から出力される値を、累積的に加算する累積加算手段と を備える並列剰余演算器。
[2] 入力データが複数のサブブロックに分割されて並列に入力される並列剰余演算器 であって、
前記各サブブロックの最終点に対応する部分剰余を初期値として生成する初期値 生成手段と、
前記初期値生成手段から各サブブロックの最終点に対応する部分剰余を初期値と して受け取り、残りの部分剰余を所定の漸化式に従って順次生成する逆順部分剰余 生成手段と、
前記入力データと、前記逆順部分剰余生成手段から出力される逆順部分剰余の 値の論理を計算する論理手段と、
前記論理手段から出力される値を、累積的に加算する累積加算手段と を備える並列剰余演算器。
[3] 前記初期値生成手段は、長さ nの入力データを長さ n— mと mのデータ列に分割し 、分割された個々のデータ列をサブブロックとするとき、最大次数 cにおいて定められ る多項式 G(D)の値に応じて、各サブブロックの i = 0, mにおける先頭点の部分剰余 である Dn_1+emodG(D)と Dn_1+e_mmodG(D)を初期値として生成する請求項 1記載の 並列剰余演算器。
[4] 前記初期値生成手段は、長さ nの入力データを長さ n— mと mのデータ列に分割し 、分割された個々のデータ列をサブブロックとするとき、最大次数 cにおいて定められ る多項式 G(D)の値に応じて、各サブブロックの i = m— 1 , n—1における最終点の部 分剰余である Dn1+e(m— "modG D)と Dn1+e(n— "modG D)を初期値として生成す る請求項 2記載の並列剰余演算器。
[5] 前記部分剰余生成手段は、元のデータ順に従いデータが入力され、
前記 Dn1+emodG(D)と Dn1+emmodG(D)を初期値として、 i= l〜m— 1及び i = m + l〜n— 1に対応する部分剰余を、所定の漸化式により算出する請求項 1記載の並 列剰余演算器。
[6] 前記逆順部分剰余生成手段は、元のデータ順を逆順にしてデータが入力され、 前記 Dn1+c— (m— "modG D)と Dn1+c— (n— "modG D)を初期値として、 i = m— 2〜0 及び i = n— 2〜mに対応する逆順部分剰余を、所定の漸化式により算出する請求項
2記載の並列剰余演算器。
[7] 前記累積加算手段は、ビットごとの排他的論理和により加算する請求項 1に記載の 並列剰余演算器。
[8] 長さ nの入力データを長さ n— mと mのデータ列に分割し、分割された個々のデータ 列をサブブロックとするとき、最大次数 cにおいて定められる多項式 G(D)の値に応じ て、各サブブロックの i = 0, mにおける先頭点の部分剰余である Dn_1+emodG(D)と D n_1+e_mmodG(D)を初期値としてあらかじめ求めるステップと、
前記 Dn1+emodG(D)と Dn1+emmodG(D)を初期値として、 i= l〜m— 1及び i = m + l〜n— 1に対応する部分剰余を、順次算出するステップと
を有する並列剰余演算方法。
[9] 長さ nの入力データを長さ n— mと mのデータ列に分割し、分割された個々のデータ 列をサブブロックとするとき、最大次数 cにおいて定められる多項式 G(D)の値に応じ て、各サブブロックの i = m— 1 , n— 1における最終点の部分剰余である Dn_1+e(m_" modG(D)と ϋη_1+ (η_υιηο(1θ )を初期値としてあらかじめ求めるステップと、 前記 Dn1+c— (m— "modG D)と Dn1+c— (n— "modG D)を初期値として、 i = m— 2〜0 及び i = n— 2〜mに対応する逆順部分剰余を、順次算出するステップと を有する並列剰余演算方法。
[10] 前記部分剰余を算出するステップでは、
元のデータ順に従いデータを入力し、
前記 Dn1+emodG(D)と Dn1+emmodG(D)を初期値として、 i= l〜m— 1及び i = m + l〜n— 1に対応する部分剰余を、所定の漸化式により算出する請求項 8記載の並 列剰余演算方法。
[11] 前記逆順部分剰余を算出するステップでは、
元のデータ順を逆順にしてデータを入力し、
前記 Dn— (m— "modG D)と Dn— (n— "modG D)を初期値として、 i = m— 2〜0 及び i = n— 2〜mに対応する部分剰余を、所定の漸化式により算出する請求項 9記 載の並列剰余演算方法。
[12] さらに、入力データと、前記部分剰余の値の論理を計算するステップと、
前記論理計算された値を、累積的に加算するステップとを有する請求項 8記載の並 列剰余演算方法。
[13] さらに、入力データと、前記逆順部分剰余の値の論理を計算するステップと、
前記論理計算された値を、累積的に加算するステップとを有する請求項 9記載の並 列剰余演算方法。
PCT/JP2007/066156 2006-08-22 2007-08-21 Unité d'opération arithmétique de résidus en parallèle et procédé d'opération arithmétique de résidus en parallèle WO2008023684A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008530909A JP4976397B2 (ja) 2006-08-22 2007-08-21 並列剰余演算器及び並列剰余演算方法
US12/377,772 US8700971B2 (en) 2006-08-22 2007-08-21 Parallel residue arithmetic operation unit and parallel residue arithmetic operating method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006-225934 2006-08-22
JP2006225934 2006-08-22

Publications (1)

Publication Number Publication Date
WO2008023684A1 true WO2008023684A1 (fr) 2008-02-28

Family

ID=39106769

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/066156 WO2008023684A1 (fr) 2006-08-22 2007-08-21 Unité d'opération arithmétique de résidus en parallèle et procédé d'opération arithmétique de résidus en parallèle

Country Status (4)

Country Link
US (1) US8700971B2 (ja)
JP (1) JP4976397B2 (ja)
CN (1) CN101507120A (ja)
WO (1) WO2008023684A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011505109A (ja) * 2007-11-28 2011-02-17 クゥアルコム・インコーポレイテッド 分割された並列的なエンコーディング動作を伴う畳込みエンコーディング
JP2012169926A (ja) * 2011-02-15 2012-09-06 Fujitsu Ltd Crc演算回路
US9524206B2 (en) 2014-08-28 2016-12-20 Fujitsu Limited Decoding device and error detection method

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930431B2 (en) * 2010-12-15 2015-01-06 International Business Machines Corporation Parallel computation of a remainder by division of a sequence of bytes
CN102318250B (zh) * 2011-08-02 2014-03-05 华为技术有限公司 通信系统中的循环冗余校验处理方法、装置和lte终端
JP2015019276A (ja) * 2013-07-11 2015-01-29 株式会社東芝 記憶装置、crc生成装置およびcrc生成方法
EP3202045A1 (en) * 2014-10-03 2017-08-09 Telefonaktiebolaget LM Ericsson (publ) Method and device for calculating a crc code in parallel
US9787434B2 (en) * 2014-12-11 2017-10-10 Mediatek Inc. Cyclic redundancy check device and method
KR20220083883A (ko) 2020-12-11 2022-06-21 삼성전자주식회사 메모리 장치, 그것의 데이터 출력 방법 및 그것을 갖는 메모리 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001036414A (ja) * 1999-07-21 2001-02-09 Nec Corp Crc符号生成回路及びcrcエラー検出回路
JP2002319867A (ja) * 2001-04-19 2002-10-31 Nec Microsystems Ltd パラレル処理回路及びその構成方法
WO2003090362A1 (fr) * 2002-04-22 2003-10-30 Fujitsu Limited Codeur et decodeur de detection d'erreur, et diviseur
JP2006521730A (ja) * 2003-03-28 2006-09-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 巡回冗長検査(crc)計算のための反復回路を最適化するためのシステムおよび方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3257298B2 (ja) 1994-11-16 2002-02-18 松下電器産業株式会社 Crc符号生成方法
WO2001037432A1 (fr) * 1999-11-15 2001-05-25 Mitsubishi Denki Kabushiki Kaisha Dispositif et procede de traitement des erreurs, utilisant un code cyclique
CN1411630A (zh) 2000-02-17 2003-04-16 模拟装置公司 用于生成循环余数核对代码以及生成其他基于余数的编码的方法、设备和产品
US6677869B2 (en) 2001-02-22 2004-01-13 Panasonic Communications Co., Ltd. Arithmetic coding apparatus and image processing apparatus
JP2005006188A (ja) 2003-06-13 2005-01-06 Mitsubishi Electric Corp Crc演算方法およびcrc演算装置
US7168024B2 (en) * 2003-10-03 2007-01-23 Jennic Limited Data processing system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001036414A (ja) * 1999-07-21 2001-02-09 Nec Corp Crc符号生成回路及びcrcエラー検出回路
JP2002319867A (ja) * 2001-04-19 2002-10-31 Nec Microsystems Ltd パラレル処理回路及びその構成方法
WO2003090362A1 (fr) * 2002-04-22 2003-10-30 Fujitsu Limited Codeur et decodeur de detection d'erreur, et diviseur
JP2006521730A (ja) * 2003-03-28 2006-09-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 巡回冗長検査(crc)計算のための反復回路を最適化するためのシステムおよび方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011505109A (ja) * 2007-11-28 2011-02-17 クゥアルコム・インコーポレイテッド 分割された並列的なエンコーディング動作を伴う畳込みエンコーディング
JP2012169926A (ja) * 2011-02-15 2012-09-06 Fujitsu Ltd Crc演算回路
US9524206B2 (en) 2014-08-28 2016-12-20 Fujitsu Limited Decoding device and error detection method

Also Published As

Publication number Publication date
US20100198892A1 (en) 2010-08-05
CN101507120A (zh) 2009-08-12
JP4976397B2 (ja) 2012-07-18
US8700971B2 (en) 2014-04-15
JPWO2008023684A1 (ja) 2010-01-14

Similar Documents

Publication Publication Date Title
WO2008023684A1 (fr) Unité d&#39;opération arithmétique de résidus en parallèle et procédé d&#39;opération arithmétique de résidus en parallèle
WO1999012265A1 (fr) Codeur/decodeur turbo et procede de codage/decodage turbo
CN110771047B (zh) 具有f功能和g功能的llr域计算的极性解码器
JP4124893B2 (ja) インターレーサ、符号化装置、置換方法、符号化方法、復号化装置およびその方法、これらを使ったシステム
JP7365335B2 (ja) ポーラー符号化のための電子デバイス、集積回路、及び方法
US9444494B2 (en) Systems and methods for network coding using convolutional codes
WO2007034870A1 (ja) 復号装置および受信装置
JP2002009633A (ja) 復号回路および復号方法、並びに符号化回路および符号化方法
EP1204211A1 (en) Butterfly processor for telecommunications
US7539918B2 (en) System and method for generating cyclic codes for error control in digital communications
WO2005006564A1 (ja) 復号装置および復号方法
CN112468161A (zh) 一种rs高速编码电路
Zhang et al. Fast factorization architecture in soft-decision Reed-Solomon decoding
KR100876566B1 (ko) 연산 회로
US7266757B1 (en) Pipelined architecture implementing recursion processes for forward error correction
KR20060121312A (ko) 컨볼루션 터보 부호 인터리버
US7178090B2 (en) Error correction code decoding device
WO2012109872A1 (zh) 通信系统中的循环冗余校验处理方法、装置和lte终端
CN1133276C (zh) 一种高速并行级联码的译码方法及译码器
Benaissa et al. Reconfigurable hardware architectures for sequential and hybrid decoding
Zhu et al. Efficient Reed-Solomon decoder with adaptive error-correcting capability
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法
Do et al. High-speed parallel architecture for software-based CRC
Kavian et al. High speed Reed-Solomon decoder with pipeline architecture
JP3268926B2 (ja) 誤り訂正回路

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200780030783.6

Country of ref document: CN

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

Ref document number: 07792768

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2008530909

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 12377772

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 07792768

Country of ref document: EP

Kind code of ref document: A1