WO2010053152A1 - 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 - Google Patents
復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 Download PDFInfo
- Publication number
- WO2010053152A1 WO2010053152A1 PCT/JP2009/068980 JP2009068980W WO2010053152A1 WO 2010053152 A1 WO2010053152 A1 WO 2010053152A1 JP 2009068980 W JP2009068980 W JP 2009068980W WO 2010053152 A1 WO2010053152 A1 WO 2010053152A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- node processing
- check node
- decoding
- processing device
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
- H03M13/1122—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
Definitions
- the present invention is based on the priority claim of Japanese Patent Application: Japanese Patent Application No. 2008-286458 (filed on Nov. 7, 2008), the entire contents of which are incorporated herein by reference. Shall.
- the present invention relates to a decoding apparatus that decodes a pseudo cyclic low-density parity check code in an error correction coding system and outputs an estimated transmission bit string that is a decoding result, and in particular, divides an information sequence into blocks of a certain length,
- the present invention relates to a block error correction decoding system and circuit for adding a redundant sequence independently, and more particularly to a quasi-cyclic low-density parity check (Low-Density-Parity-Check) code decoding apparatus.
- Low-Density-Parity-Check quasi-cyclic low-density parity check
- the low density parity check code is known as an error correction code having a very large coding gain, and has been introduced into various communication systems and storage devices such as magnetic recording.
- Low-density parity check code does not indicate just one error correction coding scheme, but the check matrix is sparse (most of the components in the matrix are 0, and the number of components that are 1 is very small) It is a general term for error correction codes with the characteristics of
- Non-Patent Documents 1 and 2 By selecting a sparse check matrix and using an iterative decoding method such as the sum-product algorithm or the min-sum algorithm, an error with a very large coding gain close to the theoretical limit It has a feature that it is possible to configure a correction coding system (for example, see Non-Patent Documents 1 and 2).
- RAM random access memories
- the intermediate data is repeatedly updated, and after it has been repeated a sufficient number of times, transmission data is determined by the sign of the data calculated from the intermediate data.
- the intermediate data update process uses the same number of intermediate data as the hamming weight of the row vector for each row vector of the parity check matrix. Therefore, for high-speed processing, it is necessary to refer to a large amount of data at the same time. It is necessary to use a large number of random access memories (RAM) and divide and hold intermediate data.
- RAM random access memories
- the Hamming weight of the row vector becomes large, so that much RAM is required.
- the size of each RAM is determined by the parity check matrix of the code to be used, and does not necessarily match the size of the RAM prepared by the device on which the decoding device is mounted. In some cases.
- Non-Patent Document 3 An example of the prior art relating to a low-density parity check code decoding apparatus will be described (see Non-Patent Document 3).
- the matrix H is represented by [Equation 1] with r rows and n columns (n is an integer larger than 1 and r is a positive integer smaller than n), and each component is an m ⁇ m cyclic permutation matrix, or
- the block matrix is a zero matrix (m is a positive number).
- I i, j represents an m ⁇ m cyclic permutation matrix or zero matrix (i is an integer between 0 and r ⁇ 1, j is an integer between 0 and n ⁇ 1),
- I i, j denote an m ⁇ m cyclic permutation matrix.
- a low density parity check code in which the matrix H in [Equation 1] is a check matrix is particularly called a pseudo cyclic low density parity check code.
- FIG. 7 shows a block diagram of a conventional decoding apparatus related to a pseudo cyclic low density parity check code.
- the decoding device of FIG. 7 includes a check node processing circuit for updating the message, an adding device, and a delay circuit, in addition to a memory group for holding intermediate data generated during the decoding process called a message.
- N mn
- FIG. 7A will be mainly described.
- Each of the memory (0), the memory (1),..., The memory (n ⁇ 1) in FIG. 7A holds m data, and a total of mn data Z 0 , Z 1 , ..., Z N-1 is held.
- the data Z 0, Z 1, ..., ( the output data of the channel) F 0 input data of the initial value of Z N-1 is the decoding apparatus, F 1, ..., a F N-1, decoding shown below Sequentially updated in the course of processing.
- the data Z u ⁇ v is input to the delay circuit and also to the check node processing circuit.
- the check node processing circuit performs the processing shown in [Formula 3] below.
- L ′ u ⁇ v calculated by [Formula 3] is an update result of the data L u ⁇ v and is held in the memory (L) in the lower stage in FIG.
- the check node process shown in [Formula 3] plays a central role in the decoding process of the low density parity check code.
- FIG. 8 is a block diagram showing an example of the configuration of the check node processing circuit 7-2 in FIG. Enter Z u ⁇ v for all elements u of the set B (v).
- the data Z u ⁇ v is quantized, the most significant bit is positive and negative, and the remaining lower bits are absolute values.
- the data L ′ u ⁇ v is added to the data Z u ⁇ v obtained through the delay circuit 7-4 in FIG. 7 as shown in [Formula 5], and the addition result Z u is stored in the memory in FIG. 7-1 is held at the same location.
- variable v indicates the v-th row vector of the parity check matrix, and one decoding process is completed by executing the process for all the row vectors. After repeating this until sufficient number of times, and 1 to decoding result of the received data F u If the number value is the negative Z u, and if not, terminates the decoding process as 0.
- this corresponds to the storage device for storing the data Z u that is the estimation information of the transmission bit string and the update history of the data Zu that is the estimation information of the transmission bit string.
- a storage device for storing data L u ⁇ v as information is required.
- FIG. A block diagram of a decoding device according to this technique is shown in FIG. Although this is effective in reducing the circuit scale, in addition to using a large number of random access memories for holding the data Z u , the decoding device can be realized by not performing subtraction with the data L u ⁇ v. However, a bit error remains in the output of the output signal and the decoding characteristics are deteriorated.
- the code length N is several thousand bits or more, or the number of redundant bits is large and the coding rate is high.
- the circuit scale becomes large (see, for example, Patent Document 1).
- Patent Document 1 and Non-Patent Documents 1 to 4 are incorporated herein by reference. The following analysis is given from the perspective of the present invention.
- the conventional decoding apparatus related to the low density parity check code, it is necessary to hold / update intermediate data generated during the calculation of the decoding process, and it is necessary to refer to a lot of intermediate data in one process.
- the size required for each storage device is determined by the check matrix of the code used, and may not necessarily match the size of the storage device (random access memory; RAM) prepared by the device on which the decoder is mounted.
- RAM random access memory
- the intermediate data When the intermediate data is simply held together in one (or a small number) of storage devices, it is read from the storage device multiple times in order to collect the intermediate data necessary for the check node processing, which is the core of the decoding process. (The same applies when the updated intermediate data is written to the storage device), which increases the decoding processing time and delay time and decreases the processing speed.
- the present invention has been made in view of the above points, and in the pseudo cyclic low-density parity check code, the number of necessary random access memories (RAM) is greatly increased without significantly increasing the decoding processing time and delay time. It is an object of the present invention to provide a decoding device that can be reduced.
- a decoding apparatus is a decoding apparatus that decodes a pseudo cyclic low-density parity check code in an error correction coding system and outputs an estimated transmission bit string that is a decoding result, and stores at least transmission bit string estimation information
- Two sets of feedback shift registers including an information storage device and a feedback register composed of a plurality of registers connected in a loop, which inputs estimation information and generates and outputs a message for updating the input estimation information
- Type check node processing device a multiplexer for selecting one of the two sets of check node processing devices for inputting estimation information, and one of the two sets of check node processing devices for selecting one of the message output devices From the demultiplexer and the check node processor selected by the demultiplexer
- An adder circuit that updates the estimated information from the received message and outputs the updated estimated information
- the check node processing device includes a replacement circuit for rearranging the estimated information, and a register included in the check node processing device
- a comparison circuit that selects the data having the
- n for holding a total of N mn pieces of data Z 0 , Z 1 ,..., Z N ⁇ 1 generated for each column vector of the parity check matrix H shown in [Formula 1].
- a check node processing device comprising a comparison process of n memories and n input data, but with a storage device such as a single RAM (or a fractional number according to device requirements), a plurality of registers and two It has a configuration including a feedback shift register type check node processing device in which a comparison circuit composed of two two-input comparison processes is connected in a loop.
- FIG. 3 is a block diagram illustrating an example of a comparison circuit in FIG. 2. It is a block diagram which shows an example of the check node processing apparatus parallelized.
- FIG. 3 is a block diagram illustrating an example of an adder circuit in FIG. 2. It is a block diagram which shows one Example of the decoding apparatus by this invention technique which deleted some memories. It is a block diagram which shows an example of the decoding apparatus in a prior art. It is a block diagram which shows the check node processing apparatus in a prior art. It is a block diagram which shows one Example of the decoding apparatus by the prior art which deleted some memory.
- FIG. 3 is a schematic diagram illustrating an example of an initial state of a memory 1-1.
- FIG. It is a time chart which shows an example of operation
- FIG. It is a block diagram which shows an example of the data communication / memory
- a decoding apparatus is a decoding apparatus that decodes a quasi-cyclic low-density parity check code in an error correction coding scheme and outputs an estimated transmission bit string that is a decoding result, the transmission bit string estimation information
- Two sets of information storage devices for storing at least a feedback register composed of a plurality of registers connected in a loop, inputting estimated information, and generating and outputting a message for updating the inputted estimated information
- a feedback shift register type check node processing device, a multiplexer for selecting one of two sets of check node processing devices for inputting estimation information, and one of two sets of check node processing devices for outputting a message.
- the check node processing device includes a replacement circuit for rearranging the estimated information, and the check node processing device.
- a comparison circuit that selects the data having the smallest value and the data having the second smallest value among the data stored in the register and the data output from the estimation information, and stores the selected data in the next-stage register. And the comparison circuit is installed between the registers of the check node processing device.
- the decoding device of the present invention further includes a history storage device for storing the update history of the estimated information, and the adding circuit obtains the estimated information from the message and the update history output from the check node processing device selected by the demultiplexer.
- the updated estimated information is output, and the message output from the check node processing device may be temporarily stored in the history storage device as an update history.
- the check node processing apparatus may have the same number of registers as the size of the cyclic matrix of components constituting the parity check matrix of the pseudo cyclic low-density parity check code.
- the multiplexer that selects the input of the estimation information of the transmission bit string is the check node processing.
- the demultiplexer that outputs the message selects the check node processing device R, and when the multiplexer selects the check node processing device R, the demultiplexer selects the check node processing device L. You may do it.
- all the information storage devices that store the estimated information of the transmission bit string operate in synchronization with the operation clock for reading from the information storage device, and 0 every time the value becomes a preset positive number.
- the address that matches the value counted by the clock counter is read out and the multiplexer and the demultiplexer are switched at the stage where the address generation based on the value counted by the clock counter is completed. Also good.
- the data communication device of the present invention may have the above-described decryption device.
- the data storage device of the present invention may have the decryption device described above.
- the various components of the present invention need only be formed so as to realize their functions.
- dedicated hardware that exhibits a predetermined function
- data processing in which a predetermined function is provided by a computer program It can be realized as an apparatus, a predetermined function realized in the data processing apparatus by a computer program, an arbitrary combination thereof, or the like.
- the various components of the present invention do not necessarily have to be independent of each other.
- a plurality of components are formed as a single member, and a single component is formed of a plurality of members. It may be that a certain component is a part of another component, a part of a certain component overlaps with a part of another component, or the like.
- the decoding apparatus according to this embodiment is a decoding apparatus for a pseudo cyclic low density parity check code having a parity check matrix of [Equation 1], and as shown in FIG. , 1-3 and two feedback shift register (FSR) type check node processing devices 1-2A and 1-2B, and a multiplexer 1 for switching between the two check node processing devices 1-2A and 1-2B.
- 4 includes a demultiplexer 1-5, an adder circuit 1-6, and address generators 1-7 and 1-8.
- each symbol F i constituting the received data string is represented by b ′ bits (i is 0 To N ⁇ 1, b ′ is a positive number), and the memory 1-1 requires a storage capacity of (b + r) N bits at the maximum (b is a positive number greater than b ′).
- the memory 1-1 is an information storage device that mainly stores estimated information of transmission bit strings. Further, the memory (L) 1-3 in FIG. 1 requires a maximum storage capacity of (2b-1 + log 2 n) mr bits (the log 2 n part is rounded up).
- a memory (L) 1-3 is a history storage device that stores an update history of estimated information of a transmission bit string.
- FIG. 2 is a block diagram of an embodiment related to the FSR type check node processing devices 1-2A and 1-2B shown in FIG. As shown in FIG. 2, the check node processing device includes m registers 2-1, a comparison circuit 2-2, and two replacement circuits 2-3 and 2-4.
- each register is a maximum (2b-1 + log 2 n) bits, and the breakdown is two pieces of data corresponding to L v (1) and L v (2) in the above [Equation 4] (each b-1 bits ), the maximum log 2 n bits pointers corresponding to u min in [equation 4], and a 1 bit which corresponds to s v in [equation 4].
- N data consisting of nm b bits is input to the check node processing device in parallel over m unit time. During that time, the data in the register is sequentially updated, and the data held in the register is sequentially output when the input is completed.
- the replacement circuit 2-3 is a device that divides and rearranges input data and distributes the data to each comparison circuit arranged between the registers.
- the rearrangement and distribution methods are components of the check matrix [Equation 1]. Depending on the selection of the cyclic permutation matrix, the following determination is made.
- the m registers in FIG. 2 are denoted as 0, 1, 2,..., M ⁇ 1 from right to left, and the n inputs are denoted as 0, 1, 2,. To distinguish.
- the i-th row block of the parity check matrix is (I i, 0 , I i, 1 ,..., I i, n ⁇ 1 ) (i is an integer between 0 and r ⁇ 1), and an m ⁇ m cyclic permutation matrix
- the substitution circuit 2-3 on the input side positions the input j (j is an integer between 0 and n ⁇ 1) between the register m ⁇ h i, j and the register m ⁇ h i, j ⁇ 1.
- the replacement circuit 2-4 is on the output side, the connection method is the same as that of the replacement circuit 2-3 on the input side.
- the comparison circuit in FIG. 3 compares the numerical values of two input data and outputs a smaller one of the numerical values, a multiplexer 3-2 for selecting an output, a pointer update circuit 3- 3.
- a device 3-4 for separating the most significant bit of input data from other lower bits and an exclusive OR circuit 3-5.
- the comparison circuit used in the check node processing device of FIG. 2 also has a function of outputting the input data (L (1) , L (2) , u min , s) shown in FIG. 3 as it is. Since this can be realized simply by selecting the input data and the output data of FIG. 3 with a multiplexer, the description in the figure is omitted. Details regarding the data (L (1) , L (2) , u min , s) in the figure will be described later.
- FIG. 4 shows a block diagram of an embodiment relating to a device in which the check node processing device of FIG. 2 is double-parallelized. Similar to FIG. 2, it comprises a register 4-1, a comparison circuit 4-2 in FIG. 3, and replacement circuits 4-3 and 4-4.
- the number of registers is m as in FIG. 2, but the number of comparison circuits is doubled.
- 2n pieces of data each consisting of nm pieces of b bits are input in parallel over m / 2 unit times.
- the case of paralleling more than three times is basically the same as double paralleling, and is therefore omitted.
- FIG. 5 shows a block diagram of an embodiment relating to the components of the adder circuit 1-6 in FIG.
- the adding circuit 1-6 has a configuration in which a maximum of n circuits shown in FIG. 5 are arranged in parallel.
- the circuit of FIG. 5 mainly includes an adder 5-1 and multiplexers 5-2 and 5-3, and inputs are denoted as L (1) , L (2) , u min , s, Z, q in the figure. Data.
- L (2 ), u min, data indicated by s is L in FIG. 3 (1)
- L (2 ), u min, corresponding to s the data output from check node processor Match.
- [Equation 6] shows the relationship between the six pieces of data and the output Z ′.
- bit widths of the data L (1) , L (2) , u min , and s are b ⁇ 1, b ⁇ 1, log 2 n, 1 bit (total 2b ⁇ 1 + log 2 n bits), and Z, q Are b and 1 bit respectively.
- bit width of the input data q is larger than 1 bit, 1 bit is selected by a predetermined means.
- u is a predetermined constant.
- the adder circuit can be said to be a device that performs the operations shown in [Equation 4] and [Equation 5].
- FIG. 6 shows a decoding device in which the memory (L) 1-3 in FIG. 1 is deleted.
- the required storage capacity can be reduced and the number of adder circuits can be reduced.
- the error rate characteristic deteriorates due to the memory deletion.
- the error rate characteristic (error correction capability) may be very slightly deteriorated.
- FIG. 10 is a block diagram showing an outline of the flow of decoding processing according to the prior art.
- the memory (0) corresponds to the 0th to 2nd column vectors of the check matrix
- the memory (1) corresponds to the 3rd to 5th column vectors
- the memory (2) corresponds to the 6th to 8th column vectors.
- the data reading order from each memory is determined by the column vector of the check matrix. In each column vector, data corresponding to the place where the component is 1 is read out.
- the three data (A 0 , B 1 , C 2 ) read out here are input to the check node processing device and updated as (A 0 * , B 1 * , C 2 * ) (the update process is ⁇ Written in each memory (the same address as when reading).
- (A 1 , B 2 , C 0 ) read / update / write
- (iii) time (A 2 , B 0 , C 1 ) read / update / Writing is performed.
- the data (A 2 * , B 1 * , C 0 * ) updated at the (i) to (iii) time points are read and updated, and the following (A 0 * , B 2 *, read / update / write of C 1 *), (a 1 *, B 0 *, C 2 *) performs a read / update / write, one iteration is completed.
- FIG. 11 is a block diagram showing an outline of the flow of decoding processing according to the present invention for a pseudo cyclic low density parity check code having a check matrix of [Formula 6].
- a pseudo cyclic low density parity check code having a check matrix of [Formula 6].
- the block diagram of FIG. 11 includes a check node processing device in which one memory and three registers and a comparison circuit ( ⁇ ) are connected in a loop.
- the memory stores data (A 0 , B 0 , C 0 ) at the 0th address, (A 1 , B 1 , C 1 ) at the first address, and the second address (A 2 , B 2 , C 2 ).
- data (A 0 , B 0 , C 0 ) is read from the memory, and the data is divided into three.
- a 0 is the right end
- C 0 is the center
- B 0 is the left end comparison circuit ⁇ . Is input. It is assumed that the multiplexer (MUX) is selected on the (a) side during the time points (i) to (iii).
- Each register is initialized as described above, and the values held by each register after input are A 0 , B 0 , and C 0 from the left as shown in the figure.
- a 1 is input to the right end
- C 1 is the center
- B 1 is input to the comparison circuit ⁇ at the left end.
- the values held by the registers after input are ⁇ (C 0 , A 1 ) from the left, ⁇ (A 0 , B 1 ), ⁇ (B 0 , C 1 ).
- a 2 is input to the comparison circuit ⁇ at the right end, C 2 is at the center, and B 2 is input at the left end, and the values held by the registers after input are ⁇ (B 0 , C 1 , A 2 ), ⁇ (C 0 , A 1 , B 2 ), and ⁇ (A 0 , B 1 , C 2 ).
- ⁇ ( ⁇ (A, B), C) ⁇ (A, B, C) holds for any input A, B, C due to the nature of the comparison calculation process ⁇ .
- the order of reading data from the memory is the same as the order described above, but the multiplexer, which is the previous stage of input to the register, is between the time points (iv), (V), (Vi), and (b) side. I will choose.
- the bit width is set to n (b + r) bits and the number of words is set to m.
- the bit width is set to (2b-1 + log 2 n). A case where m bits and the number of words are set to r will be described.
- each memory can be divided into any appropriate number in the bit width direction. Note that the read / write address can be shared even when divided into any appropriate number in the bit width direction.
- Initialization of the memory (L) 1-3 is performed by setting all data to zero.
- An example of initialization of the memory 1-1 is shown in FIG.
- the left check node processing device will be indicated as 1-2B and the right check node processing device will be indicated as 1-2A.
- each register in the two check node processing devices 1-2A and 1-2B is a maximum (2b-1 + log 2 n) bits, and the initial value is determined as follows.
- the initial value of the register of the check node processing device 1-2B is the data (each b-1 bits) corresponding to L v (1) and L v (2) described in [Description of Configuration] b-1 Sets the maximum numerical value expressed in bits, and sets the others to zero.
- the initial values of the registers in the check node processing device 1-2A are all zero.
- the initialization method is the initialization method 1-2B described above.
- ⁇ C (t) The output result of the adder circuit (1-6L) is written to the t-th address of the memory 1-1.
- the output result is input to the check node processing device 1-2B (or 1-2A) via the multiplexer 1-4 and held in the register of the check node processing device 1-2B (or 1-2A). Update data.
- the data is read from the 0th address of the memory 1-1, and the data held in each register of the check node processing device (FSR-CN processing in FIG. 13) 1-2A is output and shifted. To do.
- the data is read from the first address of the memory 1-1 and the data calculated in the process B (0) is written to the zeroth address.
- the above data is represented as (W 0 , W m ,..., W (n ⁇ 1) m )
- the data at the 0th address in FIG. 12 after writing is (W 0 , W m ,..., W (n ⁇ 1) ) M , q 0 ′, q m ′,..., Q (n ⁇ 1) m ′).
- q im ′ represents data obtained by setting 1 bit at a predetermined position of the r-bit data q im shown in FIG. 12 to 1 when W im is negative, and 0 otherwise.
- the data (W 0 , W m ,..., W (n ⁇ 1) m , q 0 ′, q m ′,..., Q (n ⁇ 1) m ′) are input to the check node processing device 1-2B.
- the data held in the register is updated.
- the above data is simultaneously input to the check node processing device 1-2B, and the data held in the register is updated.
- the process B (0) is executed again.
- the multiplexer 1-4 and the demultiplexer 1-5 in FIG. 1 are switched, and each register of the check node processing device 1-2B is switched. Output and shift the data to be held.
- the check node processing apparatus has an output / shift mode and an input / update mode, and these two modes are alternately performed.
- check node processing device 1-2B is in the input / update mode
- 1-2A is in the output / shift mode
- vice versa between time m + 1 and time 2m + 1 (check node processing device 1 -2B is the output / shift mode
- 1-2A is the input / update mode.
- the data held in the register is copied to the memory (L) 1-3. Since the same data is held in the register for m unit time, the writing method to the memory (L) 1-3 is as follows. There is a degree of freedom such as performing at one unit time at a time or sequentially over m unit time.
- the read and write addresses from the memory 1-1 are in the order of the natural numbers of the zeroth address, the first address, the second address, and so on.
- the generation device 1-7 can be realized simply by a clock counter.
- the switching between the multiplexer 1-4 and the demultiplexer 1-5 is executed at the stage where the read and write addresses to the memory 1-1 are completed.
- the check node processing apparatus has an output / shift mode and an input / update mode, and the above two modes are switched at a period of time m as shown in the time chart of FIG.
- the output / shift mode simply consists of shifting the data held in each register to adjacent registers according to a loop connection.
- the comparison circuit disposed between the registers outputs the input from the register as it is (without depending on the input from the multiplexer side).
- the data held in the register is updated by the input from the multiplexer 1-4 in FIG. 1, and the data is held in the adjacent register according to the loop connection.
- the configuration of data held in each register is (L (1) , L (2) , u min , s), and this is one input to the comparison circuit.
- L (1) and L (2) are non-negative values, and there is a magnitude relationship of L (1) ⁇ L (2) .
- Z be the other input from the multiplexer side.
- the operation of the comparison circuit of FIG. 3 is as follows.
- the input Z is separated into Z B consisting of bits other than the most significant bit Z A and the most significant bit.
- Z A is one bit representing the sign of Z
- Z B represents the absolute value of Z.
- Z B is L (1), with L (2), is input to the comparison unit 3-1 in FIG. 3, three non-negative number Z B, L (1), the smallest value among the L (2) Is output as L (1) ′, and the second smallest value among the three non-negative numbers is output as L (2) ′.
- bit width of Z B is an absolute value portion excluding the most significant bit Z A , it becomes b ⁇ 1 bits, which matches the bit width of L (1) and L (2) .
- Another input u min from the register is updated to a value set in advance for each comparison circuit only when L (1) is replaced with input Z B , and otherwise, no processing is performed. Is output as u min ′.
- the preset value is a pointer that points to one of the column blocks of the parity check matrix, and in [Equation 1], the number of column blocks of the parity check matrix is n, so the number of bits is log 2 n. .
- [Other Embodiments of the Invention] 4 is an apparatus in which the check node processing apparatus of FIG. 2 is double-parallelized as described in [Description of Configuration].
- FIG. 4 the check node processing apparatus in the decoding apparatus of FIG. 1
- the time required for the decoding process can be performed in two unit times of the decoding process shown in FIG. 12 in one unit time. Can be halved.
- the number of comparison circuits increases in proportion to the number of parallel processes.
- FIG. 6 is a block diagram showing an embodiment of a decoding apparatus according to the present invention in which the memory (L) 1-3 is deleted. Compared with the decoding device according to the present invention of FIG. 1, in addition to the deletion of the memory (L) 1-3, one addition circuit is also reduced. As shown in FIG. 6, the configurations of the check node processing device 6-2, multiplexer 6-3, and demultiplexer 6-4 are the same as those in the decoding device of FIG.
- the memory 6-1 may have 1 bit for the portion of the data q i (i is an integer between 0 and nm ⁇ 1), so the storage capacity of the memory is nm (b + 1) bits. And less.
- the memory can be reduced as compared with the decoding device of FIG.
- the error rate characteristics deteriorate due to the deletion of the memory, but the error rate characteristics may be very slightly deteriorated depending on the selection of the check matrix H in [Formula 1]. Also in the decoding device of FIG. 6, by applying the paralleled check node processing device of FIG. 4, the decoding process can be performed in half the time compared to the case of using the check node processing device of FIG.
- each register is two data (each b-1 bits) corresponding to the above L v (1) and L v (2) , and u min in [Formula 4] maximum log 2 n bits pointers corresponding, and it is possible has been described as the sum (2b-1 + log 2 n ) bits of 1 bit corresponding to s v in [equation 4], to reduce this.
- the two data corresponding to the above L v (1) and L v (2) are each b ⁇ 1 bits, and are equal to the bit width of the data portion indicated by F in FIG. Although it is set, it is not always necessary to do so, and it may be set with a smaller number of bits.
- the number of bits is reduced, for example, by dividing the input data Z to the comparison circuit of FIG. 3 by a constant set in advance.
- absolute value portion Z B (corresponding to dividing by a constant 2) by shifting right by one bit reduction in 2 bits for each register after separation apparatus 3-4 in the FIG.
- the number of bits of the pointer is log 2 n bits. For example, only the lower d bits of the pointer (d is a positive number smaller than log 2 n) is held in the register, and the other bits are discarded. Reduction is possible. In general, the reduction in the number of pointer bits may change the calculation result and cause the error rate characteristics to deteriorate. However, the degree of deterioration also depends on the selection of the check matrix in [Equation 1], and the deterioration is very slight. There is also.
- FIG. 1 An example of a data communication (storage) device using the decoding device of the present invention is shown in FIG.
- the data transmission side is a low-density parity check code encoding device 14-1, control for frame synchronization, and synchronization control / modulation period input generation device 14-2 for conversion to data suitable for the modulator, And a modulator 14-3.
- the output of the modulator is output to the communication path or storage device.
- the bit width b of each symbol constituting the input data to the decoder is 6 bits
- the number of bits of each register of the check node processing device is about 18 bits. Therefore, the register bits in the two check node processing devices The total number is about 2.3 Kbits, and the number of RAMs can be reduced without significantly affecting the circuit scale.
- the present invention is not limited to the present embodiment, and various modifications are allowed without departing from the scope of the present invention.
- an error correction technique for satisfying system configuration requirements such as reduction of required power and antenna miniaturization in satellite communication or mobile communication system, or magnetic recording Application
- an error correction technique for improving the reliability of a storage device can be mentioned.
- the embodiments and examples can be changed and adjusted within the scope of the entire disclosure (including claims) of the present invention and based on the basic technical concept.
- Various combinations and selections of various disclosed elements are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
本発明は、日本国特許出願:特願2008-286458号(2008年11月 7日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、誤り訂正符号化方式における擬似巡回型低密度パリティ検査符号を復号し、復号結果である推定送信ビット列を出力する復号装置に関し、特に、情報系列を一定長のブロックに分割し、ブロック毎独立に冗長系列を付加するブロック誤り訂正の復号方式及びその回路であって、特に擬似巡回型(Quasi-Cyclic)低密度パリティ検査(Low-Density-Parity-Check)符号の復号装置に関する。
以下の分析は、本発明の観点から与えられる。
低密度パリティ検査符号に関する従来の復号装置においては、復号処理の演算中に生じる中間データを保持/更新する必要があり、更に一つの処理に多くの中間データを参照する必要があるため、中間データを多数のランダムアクセスが可能な記憶装置に分割して保持する必要がある点が問題となる。
本発明の実施の一形態を図面を参照して以下に説明する。
本実施の形態の復号装置全体の構成を図1のブロック図に示す。本実施の形態の復号装置は、[数式1]の検査行列を持つ擬似巡回型低密度パリティ検査符号の復号装置であり、図1に示すように、二組の記憶装置であるメモリ1-1,1-3と二つのフィードバックシフトレジスタ(FSR)型のチェックノード処理装置1-2A,1-2Bを備え、上記二つのチェックノード処理装置1-2A,1-2Bを切り替えるためのマルチプレクサ1-4、デマルチプレクサ1-5、加算回路1-6、および、アドレス生成装置1-7,1-8からなる。
加算回路1-6は図5の回路が最大n個並列に配置された構成となる。図5の回路は主に加算器5-1とマルチプレクサ5-2,5-3からなり、入力は図中でL(1),L(2),umin,s,Z,qと記されたデータである。
図1の復号装置の動作に関する詳細を説明する前に、本発明の復号方式の原理について、例を用い、従来方式との対比で説明する。簡単のため[数式1]の検査行列において、r=2、n=m=3とし、次の[数式7]で表される検査行列を持つ擬似巡回型低密度パリティ検査符号を例として説明する。
図4は[構成の説明]において述べたように、図2のチェックノード処理装置を2重に並列化した装置である。図1の復号装置におけるチェックノード処理装置として図4を使用することにより、図12で動作の流れを示した復号処理の2単位時間分を1単位時間で行うことができ、復号処理に要する時間を半分にすることができる。但し、この場合[構成の説明]において述べたように比較回路の個数は並列処理数に比例して多くなる。
本発明の復号装置を使用したデータ通信(蓄積)装置の一例を図14に示す。データの送信側は低密度パリティ検査符号の符号化装置14-1、フレーム同期をとるための制御と、変調器に合わせたデータへ変換するための同期制御・変調期入力生成装置14-2、および、変調器14-3からなる。
なお、本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1-2,6-2 チェックノード処理装置
1-4,3-2,5-2,5-3,6-3,8-4 マルチプレクサ
1-5,6-4 デマルチプレクサ
1-6,6-5 加算回路
1-7,1-8,6-6 アドレス生成装置
2-1,4-1 レジスタ
2-2,4-2 比較回路
2-3,2-4,4-3,4-4 置換回路
3-1 比較器
3-3 ポインタ更新回路
3-4,8-2 分離回路
3-5,5-4,8-3 排他的論理和回路
5-1,7-5,9-4 加算器
7-2,9-2 チェックノード処理回路
7-4,9-3 遅延回路
7-6,9-5 置換器
8-1 第1/第2最小値算出回路
14-1 符号化装置
14-2 同期制御・変調器入力生成装置
14-3 変調器
14-4 復調器
14-5 同期制御・復号装置入力生成装置
14-6 復号装置
Claims (7)
- 誤り訂正符号化方式における擬似巡回型低密度パリティ検査符号を復号し、復号結果である推定送信ビット列を出力する復号装置であって、
送信ビット列の推定情報を少なくとも記憶する情報記憶装置と、
ループ状に結線された複数のレジスタからなるフィードバックレジスタを含み、前記推定情報を入力し、入力された前記推定情報を更新するためのメッセージを生成して出力する二組のフィードバックシフトレジスタ型のチェックノード処理装置と、
二組の前記チェックノード処理装置のうち前記推定情報を入力する一方を選択するためのマルチプレクサと、
二組の前記チェックノード処理装置のうち前記メッセージを出力する一方を選択するためのデマルチプレクサと、
前記デマルチプレクサによって選択された前記チェックノード処理装置から出力されたメッセージから前記推定情報を更新し、更新された前記推定情報を出力する加算回路と、を備え、
前記チェックノード処理装置は、前記推定情報を並べ替えるための置換回路と、前記チェックノード処理装置が有する前記レジスタに保存されたデータのうちの二つと前記推定情報が出力したデータとのうち、値が最も小さいデータと2番目に小さいデータと、を選択して次の段のレジスタに保存する比較回路と、を含み、
前記比較回路は、前記チェックノード処理装置が有する前記レジスタ間にそれぞれ設置されることを特徴とする復号装置。 - 前記推定情報の更新履歴を記憶する履歴記憶装置を、さらに有し、
前記加算回路は、前記デマルチプレクサによって選択された前記チェックノード処理装置から出力されたメッセージと前記更新履歴から前記推定情報を更新し、更新された前記推定情報を出力し、
前記チェックノード処理装置から出力されるメッセージは前記更新履歴として前記履歴記憶装置に一時記憶されることを特徴とする請求項1に記載の復号装置。 - 前記チェックノード処理装置は、擬似巡回型低密度パリティ検査符号の検査行列を構成する成分の巡回行列のサイズと同数の前記レジスタを有することを特徴とする請求項1,2の内いずれか1項に記載の復号装置。
- 二つの前記チェックノード処理装置の内、一方をチェックノード処理装置L,他方をチェックノード処理装置Rとする時、前記送信ビット列の推定情報の入力を選択する前記マルチプレクサが前記チェックノード処理装置Lを選択した場合には、前記メッセージの出力する前記デマルチプレクサは前記チェックノード処理装置Rを選択し、前記マルチプレクサが前記チェックノード処理装置Rを選択した場合には、前記デマルチプレクサは前記チェックノード処理装置Lを選択することを特徴とする請求項3に記載の復号装置。
- 前記送信ビット列の推定情報を記憶するすべての情報記憶装置は、前記情報記憶装置からの読出しの動作クロックに同期して動作し、値が予め設定した正数になるごとに0にリセットするクロックカウンタを含み、前記クロックカウンタがカウントした値に一致するアドレスを読出しアドレスし、前記マルチプレクサ、および、デマルチプレクサの切り替えを前記クロックカウンタがカウントした値によるアドレス生成が一巡した段階で行うことを特徴とする請求項4記載の復号装置。
- 請求項1,2,3,4,5の内いずれか1項に記載の復号装置を有することを特徴とするデータ通信装置。
- 請求項1,2,3,4,5の内いずれか1項に記載の復号装置を有することを特徴とするデータ記憶装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010536797A JP5488472B2 (ja) | 2008-11-07 | 2009-11-06 | 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 |
US13/119,251 US8667376B2 (en) | 2008-11-07 | 2009-11-06 | Decoding device, data communication apparatus having the decoder device, and data memory |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008-286458 | 2008-11-07 | ||
JP2008286458 | 2008-11-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010053152A1 true WO2010053152A1 (ja) | 2010-05-14 |
Family
ID=42152959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2009/068980 WO2010053152A1 (ja) | 2008-11-07 | 2009-11-06 | 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8667376B2 (ja) |
JP (1) | JP5488472B2 (ja) |
WO (1) | WO2010053152A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270449A (zh) * | 2016-12-30 | 2018-07-10 | 西部数据技术公司 | 支持多种编码率和编码长度的编码器 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10142091B2 (en) * | 2016-12-22 | 2018-11-27 | Macom Connectivity Solutions, Llc | Power optimization mechanisms for framers by using serial comparison in frame alignment process |
EP3652863B1 (en) * | 2017-07-13 | 2023-09-06 | Huawei Technologies Co., Ltd. | Generalized low-density parity check codes (gldpc) |
KR102467072B1 (ko) | 2017-10-26 | 2022-11-11 | 삼성전자주식회사 | 반복 연산 과정을 이용하여 디코딩을 수행하는 디코더 및 이를 이용한 스토리지 장치 |
CN114362831B (zh) * | 2021-12-28 | 2024-01-26 | 杭州电子科技大学 | 基于光学单环镶嵌式谐振腔的2线-4线译码器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006191246A (ja) * | 2005-01-05 | 2006-07-20 | Nec Corp | 復号装置及びその方法並びにプログラム |
JP2007089064A (ja) * | 2005-09-26 | 2007-04-05 | Nec Corp | 復号装置および受信装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4807063B2 (ja) | 2005-12-20 | 2011-11-02 | ソニー株式会社 | 復号装置、制御方法、およびプログラム |
JP4821724B2 (ja) * | 2007-07-18 | 2011-11-24 | ソニー株式会社 | 復号装置および復号方法 |
JP4487213B2 (ja) | 2007-10-19 | 2010-06-23 | ソニー株式会社 | 復号装置および方法、並びにプログラム |
US8266493B1 (en) * | 2008-01-09 | 2012-09-11 | L-3 Communications, Corp. | Low-density parity check decoding using combined check node and variable node |
-
2009
- 2009-11-06 JP JP2010536797A patent/JP5488472B2/ja not_active Expired - Fee Related
- 2009-11-06 WO PCT/JP2009/068980 patent/WO2010053152A1/ja active Application Filing
- 2009-11-06 US US13/119,251 patent/US8667376B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006191246A (ja) * | 2005-01-05 | 2006-07-20 | Nec Corp | 復号装置及びその方法並びにプログラム |
JP2007089064A (ja) * | 2005-09-26 | 2007-04-05 | Nec Corp | 復号装置および受信装置 |
Non-Patent Citations (2)
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270449A (zh) * | 2016-12-30 | 2018-07-10 | 西部数据技术公司 | 支持多种编码率和编码长度的编码器 |
CN108270449B (zh) * | 2016-12-30 | 2021-05-04 | 西部数据技术公司 | 支持多种编码率和编码长度的编码器 |
Also Published As
Publication number | Publication date |
---|---|
US20110219286A1 (en) | 2011-09-08 |
JP5488472B2 (ja) | 2014-05-14 |
JPWO2010053152A1 (ja) | 2012-04-05 |
US8667376B2 (en) | 2014-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7343548B2 (en) | Method and apparatus for encoding and decoding data | |
RU2395902C2 (ru) | Способы и устройство ldpc-кодирования | |
US8352847B2 (en) | Matrix vector multiplication for error-correction encoding and the like | |
KR100958234B1 (ko) | 패리티 검사 디코더들에서 사용하기 위한 노드 처리기들 | |
US9070453B2 (en) | Multiple programming of flash memory without erase | |
US8572463B2 (en) | Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size | |
JP4320418B2 (ja) | 復号装置および受信装置 | |
JP4978625B2 (ja) | 誤り訂正符号化方法及び装置 | |
US20070204197A1 (en) | Decoding device, control method, and program | |
WO2010073922A1 (ja) | 誤り訂正符号化装置、復号装置、符号化方法、復号方法、及びそのプログラム | |
CN101154948B (zh) | 解码代码的方法和解码器 | |
US8843810B2 (en) | Method and apparatus for performing a CRC check | |
CN112332856B (zh) | 一种准循环ldpc码的层译码方法及装置 | |
US9116825B2 (en) | Memory controller | |
JP5488472B2 (ja) | 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 | |
US10833704B1 (en) | Low-density parity check decoder using encoded no-operation instructions | |
JP5333233B2 (ja) | 復号装置、データ蓄積装置、データ通信システム、および復号方法 | |
US10778251B2 (en) | Method and apparatus for encoding quasi-cyclic low-density parity check codes | |
JP2004510380A (ja) | 線形ブロック符号の符号化のための方法および装置 | |
TW201029337A (en) | Method for decoding LDPC code and the circuit thereof | |
JP5510447B2 (ja) | 復号装置および復号方法 | |
KR100739684B1 (ko) | 저밀도 패리티 체크 행렬 생성 장치 및 방법 | |
US20230170921A1 (en) | Decoding apparatus, decoding method, and electronic apparatus | |
KR101073636B1 (ko) | 저밀도 패리티 검사 부호를 이용한 복호화 장치 | |
KR20230078478A (ko) | 복호화 장치, 복호화 방법 및 전자 장치 |
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: 09824851 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13119251 Country of ref document: US |
|
ENP | Entry into the national phase |
Ref document number: 2010536797 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: 09824851 Country of ref document: EP Kind code of ref document: A1 |