WO2011142133A1 - 誤り訂正符号処理方法及びその装置 - Google Patents

誤り訂正符号処理方法及びその装置 Download PDF

Info

Publication number
WO2011142133A1
WO2011142133A1 PCT/JP2011/002639 JP2011002639W WO2011142133A1 WO 2011142133 A1 WO2011142133 A1 WO 2011142133A1 JP 2011002639 W JP2011002639 W JP 2011002639W WO 2011142133 A1 WO2011142133 A1 WO 2011142133A1
Authority
WO
WIPO (PCT)
Prior art keywords
symbol
word
syndrome
error correction
elements
Prior art date
Application number
PCT/JP2011/002639
Other languages
English (en)
French (fr)
Inventor
正治 今井
良典 武内
圭史 坂主
崇 浜辺
一紀 君家
公章 安部
Original Assignee
エイシップ・ソリューションズ株式会社
国立大学法人大阪大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エイシップ・ソリューションズ株式会社, 国立大学法人大阪大学 filed Critical エイシップ・ソリューションズ株式会社
Priority to JP2012514716A priority Critical patent/JPWO2011142133A1/ja
Priority to US13/697,576 priority patent/US9166624B2/en
Priority to EP11780392.4A priority patent/EP2571172A4/en
Publication of WO2011142133A1 publication Critical patent/WO2011142133A1/ja

Links

Images

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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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
    • 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
    • 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/11Error 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
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Definitions

  • the present invention relates to an error correction code processing method and apparatus for achieving error correction efficiency and low power in information communication and data transmission within an electronic system (hereinafter referred to as information transmission together). is there.
  • Non-Patent Documents 1 to 3 are used in Non-Patent Documents 1 to 3.
  • Figure 1 shows the general procedure for information transmission with error correction.
  • the transmission side system transmits the information symbol X to the reception side system
  • the transmission side system first generates a code word Y by adding a check symbol for error correction to the information symbol X using an encoding device. Transmit to the receiving system.
  • E transmission error
  • FIG. 2 shows the relationship between information symbols, check symbols, and code words to be transmitted.
  • a code word of length N configured by adding a check symbol of length NL to an information symbol of length L is called an (N, L) code.
  • L / N is referred to as a coding rate of (N, L) code.
  • the decoding and error correction procedures are shown in FIG.
  • the receiving system decodes the received codeword Y ′, calculates information called a syndrome for performing error detection / correction, and checks whether the received codeword Y ′ contains a transmission error. If it is found that a correctable error is included, the information symbol is corrected.
  • An information symbol output from the decoding / error correction circuit is represented by Z. At this time, depending on the capability of the employed error detection / correction method, the error included in the output information symbol Z is one of the following four types. Here, an encoding method capable of 1-bit error correction and 2-bit error detection will be described.
  • the decoding / error correction circuit can detect that the received codeword Y ′ has an error. Therefore, it cannot be corrected to the correct value.
  • the encoding and decoding method using an extended Hamming code capable of 1-bit error correction and 2-bit error detection, and the basic operations used there will be described.
  • a 1-bit error correction method using a simple Hamming code will be described, and an extended Hamming code capable of 1-bit error correction and 2-bit detection will be described.
  • a generator matrix G is used for encoding processing, and a check matrix H is used for decoding.
  • the check matrix H is a matrix having a size of n ⁇ (2 n ⁇ 1), and each column includes all n-dimensional column vectors other than all zeros.
  • An example of a Hamming code check matrix H in the case of n 4 is shown in FIG.
  • the arrangement of the columns of the check matrix H is arbitrary.
  • a generator matrix G corresponding to the check matrix H is a matrix that satisfies the property of Equation 3. However, all additions are performed by addition modulo 2 (exclusive OR operation).
  • G T and H T represent transposed matrices of G and H, respectively. Similarly, when the superscript of the character representing the matrix is T, it represents the transposed matrix of the matrix.
  • A is any matrix of size n ⁇ (2 n -n-1 ), I n is the identity matrix of size n ⁇ n.
  • the generator matrix G corresponding to the parity check matrix H can be easily obtained by Equation 5.
  • a T is a transposed matrix of A.
  • a generator matrix G corresponding to the parity check matrix H in FIG. 4 is shown in FIG.
  • Encoding is performed by multiplying the information symbol X by the generator matrix G.
  • a code word obtained by encoding the information symbol X is Y.
  • Decoding and error correction are performed as follows. Assume that the received codeword is Y ′ and that the received codeword has no more than one bit error. At this time, the syndrome S of the received codeword Y ′ is defined by Equation 6.
  • ⁇ Whether or not an error is included in the received codeword is determined according to the value of syndrome S as follows.
  • a 1-bit error can be corrected by using a Hamming code.
  • a 2-bit error occurs, it cannot be correctly corrected because it cannot be distinguished whether a 1-bit error or a 2-bit error has occurred.
  • an extended Hamming code which is an extension of the Hamming code, is used.
  • a code word in the extended Hamming code is obtained by adding a parity bit of the entire code word (exclusive OR of all bits of the code word) to the code word resulting from encoding using the generator matrix G. Therefore, the code word length in the extended Hamming code is 2 n .
  • FIG. 8 shows an enlarged parity check matrix H ′ corresponding to the parity check matrix H in FIG.
  • the syndrome Y′H ′ T is calculated for the codeword Y ′ using the expanded check matrix, [0 1 1 1 1] is obtained as shown in FIG.
  • the vector [0 1 1 1 1] of the multiplication result is transposed, it matches the eighth column from the left of the expanded check matrix, so it is known that an error has occurred in the eighth bit from the left of the received codeword.
  • the received codeword is 2 bits error, because it contains the first even number with codewords received, the last element of Y'H 'T becomes zero. Since all the elements in the last row of the expanded check matrix are 1, the column vector obtained by transposing the check result does not match any column of the expanded check matrix. In this case, it is determined that a 2-bit error has occurred. If there is an error of 3 bits or more, detection is impossible.
  • the following ⁇ Case 1> to ⁇ Case 3> are obtained.
  • element 1, element 2,..., Element n is a logical function that performs a logical sum of all elements.
  • the position where the error has occurred is an element corresponding to a column having a pattern that matches S.
  • conventional methods implemented as an apparatus for performing these encodings and an apparatus for performing decoding / error correction are as follows: (A) Implementation by software on a general-purpose processor (hereinafter referred to as conventional method (A)) (B) Implementation using dedicated hardware (ASIC: Application Specific Integrated Circuit) (hereinafter referred to as conventional method (B)) It can be classified into two types.
  • FIG. 10 is a diagram showing an implementation of conventional error correction code processing by software on a general-purpose processor.
  • the instruction memory 111 holds instructions for encoding and decoding operations for error correction code processing.
  • the general-purpose processor 110 performs encoding and decoding operations for error correction code processing in accordance with instructions read from the instruction memory 111. Further, the general-purpose processor 110 reads data held in the data memory 112 through the data bus 113 in accordance with the instruction read from the instruction memory 111. Further, the general-purpose processor 110 stores the operation result performed by the general-purpose processor 110 in the data memory 112 through the data bus 113.
  • FIG. 11 is a diagram showing an implementation of conventional error correction code processing using a general-purpose processor and a dedicated peripheral circuit (ASIC).
  • an instruction memory 121, a data memory 122, an encoding circuit 123, and a decoding circuit 124 are outside the general-purpose processor 120.
  • the instruction memory 121 holds instructions for encoding and decoding operations for error correction code processing.
  • the general-purpose processor 120 reads commands and data held in the data memory 122 through the data bus 125 in accordance with the instructions read from the instruction memory 121, and sends the commands and data to the encoding circuit 123 and the decoding circuit 124 through the data bus 125.
  • the command and data for instructing the processing to be executed are passed.
  • the general-purpose processor 120 reads status information such as whether encoding and decoding are possible and the calculation result after the encoding and decoding processing from the encoding circuit 123 and the decoding circuit 124, and outputs the status through the data bus 125. Information and calculation results are stored in the data memory 122.
  • the encoding circuit 123 performs an encoding operation for error correction code processing in accordance with the instruction read from the instruction memory 121.
  • the decoding circuit 124 performs a decoding operation of error correction code processing according to the instruction read from the instruction memory 121.
  • the encoding circuit 123 and the decoding circuit 124 use ASIC.
  • the encoding circuit 123 generates a check symbol, and the decoding circuit 124 performs syndrome generation and error correction.
  • the conventional method (A) has the following advantages (a) and (b) compared to the conventional method (B).
  • (a) The amount of hardware required for implementation is small (only memory for storing the program is sufficient).
  • (b) It is possible to flexibly cope with specification changes (easily deal with changes in encoding method and code length).
  • the conventional method (A) has the following disadvantages (c) and (d) compared to the conventional method (B).
  • RobertH. Morelos-Zaragoza The art of error correcting coding, Second Ed., Wiley Shu Lin, D.J. Costello, Jr .: Error Control Coding, Pearson Prentice Hall Eiji Fujiwara: Code Design for Dependable Systems, Wiley
  • Extended Hamming code is superior in terms of coding rate and more practical than other coding methods with equivalent error correction capability.
  • the extended Hamming code has a problem that it is not easy to efficiently determine the position of the bit where the error has occurred from the information of the bit error obtained when decoding.
  • the extended Hamming code has a feature that the coding rate is the highest among coding methods capable of correcting 1-bit error and detecting 2-bit error.
  • the systematic code when the systematic code is used, there is no monotonicity of the columns when each column of the check matrix is regarded as a binary number. It is not obvious how to perform both efficiently.
  • the conventional method (B) is superior to the conventional method (A) in terms of power consumption, but it is difficult to flexibly cope with specification changes and changes in the transmission channel error rate. Therefore, it is an object to develop an error correction code processing apparatus that can flexibly cope with a change in specifications and a change in transmission path error rate of a transmission path and that uses a mounting method that consumes less power.
  • An object of the present invention is to provide an error correction code processing method and apparatus that can be used and that consumes less power.
  • the elements of information symbol X are arranged and expanded from the right.
  • No. X ' (x L-1 , x L-2, ⁇ , x LN / 2 + 1, 0, x LN / 2, ⁇ , x 10, x 9, x 8, x 7, x 6 , x 5 , x 4 , 0, x 3 , x 2 , x 1 , 0, x 0 , 0, 0 , 0)
  • the error correction code processing can be encoded with the super hamming code.
  • the code word Y ′ (y ′ N ⁇ 1 , y ′ N ⁇ 2 ,..., Y ′ 1 , y ′ 0 ), which is the information data received and transmitted by the code word Y, is decoded.
  • code word Y ′ (y ′ 0 ,, y ′ 1 ,..., Y ′ N ⁇ 2 , y ′ N ⁇ 1 ), which is the information data received and transmitted by the code word Y, is decoded.
  • the code word Y ′ is used as the information symbol string V and the above method is used.
  • the dedicated arithmetic circuit includes a parity check matrix / syndrome arithmetic circuit that calculates a parity check matrix / syndrome and outputs the result data, and an error correction circuit that performs error correction calculation and outputs the result data. Is provided.
  • PP (pp m + n ⁇ 1 , pp m + n ⁇ 2 ,...
  • the code word Y ′ (y ′ 0 ,, y ′ 1 ,..., Y ′ N ⁇ 2 , y ′ N ⁇ 1 ), which is the information data received and transmitted by the code word Y, is decoded.
  • the received check symbols corresponding to the transmitted check symbols Q and PP are respectively
  • Q ′ (q ′ m + n ⁇ 1 , q ′ m + n ⁇ 2 ,...
  • a first information is obtained by dividing a shift information symbol polynomial obtained by multiplying an information symbol polynomial expressed by a polynomial in which x is a variable (modulo 2) by x k (degree k of the generator polynomial) by the generator polynomial, and calculating a remainder.
  • x is a variable (modulo 2)
  • x k degree k of the generator polynomial
  • Is a CRC encoding method that obtains a coefficient of a remainder polynomial as a check symbol, generates a code word together with an information symbol, and transmits the code word as data, and includes the shift information symbol polynomial in the first operation.
  • Each step from the highest order of the variable x is eliminated in stages by multiplying and subtracting the generator polynomial by a power of x.
  • the second operation at each stage starts from a vector in which the coefficients of the shift information symbol polynomial are arranged.
  • Step 1 as the partial operation matrix expressing the partial operation unit of the first operation after the return, and the product of the vector of the shift information symbol polynomial and the partial operation matrix is obtained as a remainder vector in the middle
  • Step 2 is a step of generating a check symbol by performing an operation for obtaining a product of a remainder vector in the intermediate stage every the predetermined number of times and the partial operation matrix as a next intermediate stage remainder vector.
  • the partial operation matrix has m product matrices G mk , G (m ⁇ 1) k where the predetermined number of times is mk, (m ⁇ 1) k,..., K (multiple of k ). , G (m ⁇ 2) k ,..., G k , and in step 2, start with the vector of the shift information symbol polynomial and perform an operation for sequentially obtaining the intermediate vector at the predetermined stage every predetermined number of times.
  • the first vector in the word is divided into vectors having k elements of bit width k in one word.
  • a logical OR is performed as the batch operation in a word.
  • a CRC decoding method for decoding a received codeword in which the codeword is transmitted and received, and a received codeword polynomial representing the received codeword by a polynomial is divided by the generator polynomial.
  • the generator polynomial When generating the coefficient of the remainder polynomial as a syndrome by the third operation for calculating the remainder, each term from the highest order of the variable x of the received codeword polynomial in the third operation is used as the generator polynomial.
  • the total number of 1 bits in the resulting syndrome is 1, and the bit width of the check symbol is the unit width.
  • the tth time in the bit width at the position t + 1 from the lower order of the received codeword And correcting the codeword by inverting the value of the bit specified at the bit position which is 1 of the resultant syndrome.
  • the number of bits in one word is a natural number multiple m of the bit length k of the check symbol.
  • the partial operation matrix sets the predetermined number of times to mk, (m ⁇ 1) k,..., K (multiple of k).
  • the first in the word divided into vectors with elements A vector element obtained by exclusive-ORing a vector element obtained by multiplying a bit-width vector by the product matrix G mk and a vector element obtained as a result of the batch operation on the previous word, and a word G (m ⁇ 1) k , G (m ⁇ 2) k ,..., G k for (m ⁇ 1) vectors having k elements at the next and subsequent bit width positions. It performs a calculation to the batch in word XORs the elements of the resulting vector multiplied by, wherein the inverse matrix of the above are inverse matrix G -k of G k.
  • the present invention can be applied to decoding error correction code processing using CRC codes.
  • an instruction memory having an instruction for error correction of the codeword issues an instruction in the instruction memory to calculate a check matrix / syndrome or error correction
  • a dedicated arithmetic circuit for outputting the data, the information data to be transmitted, the received information data, a data memory for storing the result data, and data for transferring data between the processor, the dedicated arithmetic circuit and the data memory And a bus.
  • the dedicated arithmetic circuit includes a parity check matrix / syndrome arithmetic circuit that calculates a parity check matrix / syndrome and outputs the result data, and an error correction circuit that performs error correction calculation and outputs the result data. Is provided.
  • the data memory includes a look-up area holding a Look-up Table for error position calculation.
  • the dedicated arithmetic circuit is configured by reconfigurable hardware.
  • step 110 Receiving a codeword sent from the transmission system and counting the number of codewords; step 110 counting the number of bit errors when a correctable error is detected; and
  • the bit error rate is the quotient with the number of codewords
  • the error correction level is increased, and the error correction level exceeds the upper limit of the error correction level.
  • the upper limit of the error correction level is set to the error correction level, the error correction level is notified to the transmission system 120, and the number of codewords exceeds the minimum number of receptions required for changing the error correction level.
  • the error correction level is lowered, and the error correction level is If the lower limit of the correction level, the lower limit of the error correction level with the said error correction level, and a step 130 of notifying the error correction level in the transmission system.
  • the present invention can easily identify the position where an error has occurred, can flexibly cope with a change in specification or a change in transmission path error rate of the transmission path, and an error correction code processing method with low power consumption and its An apparatus can be provided.
  • FIG. 1 is a diagram for explaining an information transmission procedure with error correction.
  • FIG. 2 is a diagram for explaining an encoding procedure.
  • FIG. 3 is a diagram for explaining procedures of decoding and error correction.
  • FIG. 4 is a diagram illustrating an example of a conventional check matrix of a Hamming code.
  • FIG. 5 is a diagram illustrating an example of a conventional hamming code generator matrix.
  • FIG. 6 is a diagram illustrating an example of codeword calculation in a conventional Hamming code.
  • FIG. 7 is a diagram illustrating an example of a method for specifying a 1-bit error occurrence position in a conventional Hamming code.
  • FIG. 8 is a diagram illustrating an example of a parity check matrix in a conventional extended Hamming code.
  • FIG. 1 is a diagram for explaining an information transmission procedure with error correction.
  • FIG. 2 is a diagram for explaining an encoding procedure.
  • FIG. 3 is a diagram for explaining procedures of decoding and error correction.
  • FIG. 9 is a diagram illustrating an example of a method for specifying a 1-bit error occurrence position in a conventional extended Hamming code.
  • FIG. 10 is a diagram showing an implementation of conventional error correction code processing by software on a general-purpose processor.
  • FIG. 11 is a diagram showing an implementation of conventional error correction code processing using a general-purpose processor and a dedicated peripheral circuit (ASIC).
  • FIG. 12 is a diagram showing an example of a correspondence table between syndromes and bit error positions in a conventional extended Hamming code.
  • FIG. 13 is a diagram illustrating an example of a parity check matrix in a super hamming code according to the present invention.
  • FIG. 14 is a diagram illustrating check symbol and parity calculation formulas in the super hamming code according to the present invention.
  • FIG. 10 is a diagram showing an implementation of conventional error correction code processing by software on a general-purpose processor.
  • FIG. 11 is a diagram showing an implementation of conventional error correction code processing using a general-purpose processor
  • FIG. 15 is a diagram showing an example of the correspondence between information symbols and codewords in the super hamming code according to the present invention.
  • FIG. 16 is a diagram illustrating an example of a check symbol calculation formula in the super hamming code according to the present invention.
  • FIG. 17 is a diagram showing a derivation procedure (1) of a generator matrix with a super Hamming code according to the present invention.
  • FIG. 18 is a diagram showing a derivation procedure (2) of the generator matrix in the super hamming code according to the present invention.
  • FIG. 19 is a diagram showing a derivation procedure (3) of the generator matrix in the super hamming code according to the present invention.
  • FIG. 20 is a diagram illustrating an example of a check matrix calculation pattern in a conventional extended Hamming code.
  • FIG. 21 is a diagram showing an example of a check symbol calculation pattern in the super hamming code according to the present invention.
  • FIG. 22 is a diagram showing an error correction processing apparatus according to the present invention.
  • FIG. 23 is a diagram showing an index allocation method for each bit when the length of one word is 16 bits according to the present invention.
  • FIG. 24 is a diagram showing a check symbol embedding position in a 4-word codeword according to the present invention.
  • FIG. 25 is a diagram showing an information symbol rearrangement instruction (1) in the super hamming code according to the present invention.
  • FIG. 26 is a diagram showing an information symbol rearrangement instruction (2) in the super hamming code according to the present invention.
  • FIG. 27 is a diagram showing an information symbol rearrangement instruction (3) in the super hamming code according to the present invention.
  • FIG. 28 is a diagram showing an application example of the information symbol rearrangement instruction (1) in the super hamming code according to the present invention.
  • FIG. 29 is a diagram showing an application example of the information symbol rearrangement instruction (2) in the super hamming code according to the present invention.
  • FIG. 30 is a diagram showing an application example (1) ⁇ of the information symbol rearrangement instruction (3) in the super hamming code according to the present invention.
  • FIG. 31 is a diagram showing an application example (2) of the information symbol rearrangement instruction (3) in the super hamming code according to the present invention.
  • FIG. 32 is a diagram illustrating an example of a barrel shifter mounting method according to the present invention.
  • FIG. 33 is a diagram showing an information symbol extraction instruction (1) in super hamming code according to the present invention.
  • FIG. 34 is a diagram showing an information symbol extraction instruction (2) in super hamming code according to the present invention.
  • FIG. 35 is a diagram showing an information symbol extraction instruction (3) in super hamming code according to the present invention.
  • FIG. 36 is a diagram showing an application example of the information symbol extraction instruction (1) in the super hamming code according to the present invention.
  • FIG. 37 is a diagram showing an application example of the information symbol extraction instruction (2) in the super hamming code according to the present invention.
  • FIG. 33 is a diagram showing an information symbol extraction instruction (1) in super hamming code according to the present invention.
  • FIG. 34 is a diagram showing an information symbol extraction instruction (2) in super hamming code according to the present invention.
  • FIG. 35 is a diagram showing an information symbol extraction instruction (3)
  • FIG. 38 is a diagram showing an application example (1) of the information symbol extraction instruction (3) in the super hamming code according to the present invention.
  • FIG. 39 is a diagram showing an application example (2) of the information symbol extraction instruction (4) in the super hamming code according to the present invention.
  • FIG. 40 is a diagram illustrating the calculation formulas of the check symbol and syndrome in the super hamming code according to the present invention.
  • FIG. 41 is a diagram showing an example of a check symbol and syndrome calculation pattern in the super hamming code according to the present invention.
  • FIG. 42 is a diagram of a 1-bit error correction circuit in a super hamming code according to the present invention.
  • FIG. 43 is a diagram showing a check symbol calculation formula for information symbols stored in a plurality of words in the super hamming code according to the present invention.
  • FIG. 44 is a diagram showing a check symbol calculation procedure for information symbols stored in a plurality of words in the super hamming code according to the present invention.
  • FIG. 45 is a diagram showing a calculation formula for syndromes of codewords stored in a plurality of words in the super hamming code according to the present invention.
  • FIG. 46 is a diagram showing a calculation procedure of syndromes of code words stored in a plurality of words in the super hamming code according to the present invention.
  • FIG. 47 is a diagram illustrating check symbol and syndrome calculation formulas in a high-dimensional parity code according to the present invention.
  • FIG. 48 is a diagram illustrating an example of check symbol and syndrome calculation patterns in a high-dimensional parity code according to the present invention.
  • FIG. 49 is a diagram showing an example of a codeword length adjustment procedure in the adaptive codeword length adjustment type communication system according to the present invention.
  • FIG. 50 is a diagram showing a check symbol calculation flow in the conventional CRC code.
  • FIG. 51 is a diagram showing a matrix G representing a generator polynomial x 8 + x 2 + x + 1 according to the present invention.
  • FIG. 52 is a diagram showing a matrix representing G 8 according to the present invention.
  • FIG. 53 is a diagram showing a matrix representing G 16 according to the present invention.
  • FIG. 54 is a diagram showing a configuration of a ⁇ G m dedicated arithmetic unit (n-cycle version) using a CRC code according to the present invention.
  • FIG. 55 is a diagram showing an example of the (G 8 ) T table in FIG. 51 according to the present invention.
  • FIG. 56 is a diagram showing a configuration of a ⁇ G m dedicated arithmetic unit (1-cycle version) using a CRC code according to the present invention.
  • FIG. 57 is a diagram showing a configuration of a check symbol calculation circuit using a CRC code according to the present invention.
  • FIG. 58 is a diagram showing a configuration of an error correction circuit using a CRC code according to the present invention.
  • FIG. 60A is a diagram showing a configuration of the proposed method (1) according to the present invention.
  • FIG. 60B is a diagram showing a configuration of the proposed method (2) according to the present invention.
  • FIG. 60C is a diagram showing a configuration of the proposed method (3) according to the present invention.
  • FIG. 61 is a diagram showing a configuration of the ⁇ G m dedicated arithmetic unit in FIG. 60C according to the present invention.
  • FIG. 62 is a diagram showing an example (receiving side) of a procedure for adjusting a codeword length and a generator polynomial according to the present invention.
  • An error correction method based on an extended Hamming code using a systematic code that is widely used has a problem regarding speeding up and power reduction.
  • the inventor of the present application has paid attention to the fact that the reason is that a systematic code that makes it easy to obtain a generator matrix from a check matrix is employed.
  • a systematic code that makes it easy to obtain a generator matrix from a check matrix is employed.
  • each row of the check matrix has monotonicity.
  • the parity check matrix cannot maintain the form of Equation 4, so that the condition of Equation 3 is satisfied from a given parity check matrix for any n Finding a generator matrix is not easy.
  • the extended Hamming code scheme is improved so that the generation matrix can be easily determined and execution with dedicated instructions can be performed efficiently.
  • the improved coding scheme will be called super hamming code.
  • the check matrix used in the super hamming code is monotonic between columns, and the position where a bit error has occurred from the syndrome can be identified very easily. Therefore, error correction can be speeded up and power consumption can be reduced.
  • the information symbol X to be transmitted is expressed by Equation 7.
  • the code word Y is expressed by Equation 11.
  • Figure 15 shows the correspondence between information symbol X and codeword Y.
  • This configuration is easy when generating a code word and when extracting information symbols by decoding, but as described above, it is not easy to specify the position of a bit where a 1-bit error has occurred. .
  • a check symbol is arranged at the 2 i index position of the codeword. This is one of the features of the present invention, whereby the position where an error occurs can be easily identified from the value of the syndrome.
  • Encoding in this way is equivalent to encoding using the generator matrix G (3) obtained by the following (Step 1) to (Step 3) .
  • Step 1 An expanded generator matrix G (1) having a size of 2 n ⁇ (2 n ⁇ 1) is constructed as shown in Equation 13.
  • Step 2 Replace the rows of the generator matrix G (1) as follows.
  • the row vector of the submatrix corresponding to H T of the generator matrix G (1) is regarded as a binary number, the rows of the entire generator matrix G (1) are switched so that they are arranged in descending order from top to bottom.
  • G (2) be the generator matrix thus obtained.
  • Step 3 The columns of the generator matrix G (2) are switched so that the diagonal element is 1.
  • G (3) be a generator matrix with this operation added.
  • An example of the generator matrix G (3) when n 4 is shown in FIG.
  • the result encoded using the generator matrix G (3) is a symbol string in which the order of the elements of the code word calculated using Equation 5 is changed.
  • the procedures of decoding, error detection, and error correction with the super Hamming code are almost the same as the processing procedure with the extended Hamming code.
  • the received codeword Y ′ is decoded by applying a check matrix in the same manner as in the case of the extended Hamming code, and the presence / absence of a 1-bit error and the presence / absence of a 2-bit error are checked. If a 1-bit error is found, the location of the transmission error is specified using the syndrome. At this time, if each column of the check matrix is regarded as a binary number, it is arranged in descending order from the left to the right, so that it is possible to identify the position where the transmission error has occurred without using a bit pattern comparison or a complicated correspondence table. . Therefore, error correction can be performed more easily than the expanded Hamming code. Finally, by removing the check symbols embedded in the code word, corrected data can be obtained. This method has 1-bit error correction capability and 2-bit error detection capability, and is equivalent to the error correction / error detection capability of the extended Hamming code.
  • a descending order symbol Q (q m + n ⁇ 1 , q m) arranged in descending order of j with the exclusive OR of 2 m + n ⁇ 1 different elements in total of the information symbol string V selected every other element. + n ⁇ 2 ,...
  • Ascending order PP () in which j is a group of exclusive OR of 2 m + n-1 different elements in total and 2 j + selected information symbol strings V are arranged in descending order.
  • a total of 2 n-1 of information symbol strings W i selected every 2 k as a set of 2 k (k 0, 1, 2,..., n ⁇ 1) in descending order from the largest j.
  • Descending symbol Q Li (q i, n ⁇ 1 , q i, n ⁇ 2 ,...
  • FIGS. 4, 5, and 8 The check symbol and syndrome calculation formulas in the Hamming code and the expanded Hamming code do not have high regularity (see FIGS. 4, 5, and 8). Therefore, by devising the encoding method using the super hamming code, the syndrome can be calculated using a highly regular calculation formula as shown in FIGS. 13 and 19, and the position where the bit error occurs can be specified. Easy to do.
  • FIG. 20 and FIG. 21 show the bit positions of the information symbols used for the calculation in the expanded Hamming code and the super Hamming code and the symbols obtained by extending the information symbols, respectively. As apparent from FIGS.
  • the arithmetic expression of the super hamming code has the same pattern repetition structure, and the same calculation expression may be repeatedly applied even if the length of the code word changes. I understand that. Also, if this calculation pattern is prepared as an instruction, inspection symbols and syndromes can be calculated efficiently.
  • the input x L-1, x L- 2 information symbols, ..., and the x 0 in reverse order, x 0, x 1, ⁇ , x L-1 and then, symbol string q h of check symbol -1 , q h-2 ,... Q 1 , q 0 can be processed in the same way as a check symbol using the same type of symbol as the calculation formula. That is, in FIG. 21, this corresponds to the inversion of the bit position of the symbol obtained by expanding the information symbol used for the calculation and the bit position not used for the calculation.
  • the super hamming code is highly flexible with respect to the code length, it is possible to construct a communication system using the optimum code length according to the transmission error rate during communication by utilizing this feature. For example, when the transmission error rate is low, it is possible to increase the transmission efficiency by increasing the code length, and it is possible to reduce the processing time overhead and the power consumption. Also, when the transmission error rate is high, the code length can be shortened to improve the resistance to bit errors.
  • an error correction code such as an extended Hamming code
  • a check symbol corresponding to an information symbol is calculated when encoding.
  • the syndrome is calculated in order to decode the received codeword and perform error correction.
  • These calculations require calculation of the inner product of bit vectors. This calculation is performed by adding modulo 2 of the corresponding bits of the two vectors and all the resulting bits, and this operation can be performed by using an exclusive OR operation.
  • the calculation of the check vector and syndrome must be executed by combining a plurality of calculation instructions and control instructions. Therefore, a long execution cycle number is required for the calculation of the check symbol and syndrome.
  • error correction it is necessary to specify the position where the error occurred using the value of the syndrome.
  • a general-purpose computer does not include an instruction suitable for this operation, the error position is specified. Requires a long run cycle.
  • ASIP Application Specific Specific Instruction
  • FIG. 22 having an instruction that can execute calculation of check symbols and syndromes with a small number of execution cycles and an instruction that can execute error correction with a small number of execution cycles.
  • An error correction code processing device 220 using set Processor will be described below as one embodiment.
  • an error correction code processing device 220 includes a RISC (Reduced Instruction Set Computer) processor 222, a check matrix / syndrome arithmetic circuit 223, and an error correction circuit 224, which are connected by an internal bus 227. .
  • an instruction memory 225 is provided outside the error correction code processing device 220, from which instructions are read to the RISC processor 222 and executed. Data is stored in the data memory 226.
  • the data read from the data memory 226 is input to the error correction code processor 220 through the data bus 228 according to the necessity of the instruction to be executed and used for the check matrix / syndrome calculation circuit 223, the error correction circuit 224, and the like. Thereafter, the calculation result is stored in the data memory 226 through the data bus 228. Data that is written to or read from the data memory 226 from / to the outside is exchanged with the outside of the error correction code processing device 220 via the data bus 228 through an input / output interface (not shown).
  • RISC Reduced Instruction Set Computer
  • the RISC processor 222 includes dedicated instructions and auxiliary instructions shown in the following (a) to (f) in the instruction memory 225 as instructions. Although the RISC processor is used here, a processor such as a CISC processor may be used.
  • the position where the check symbol and the parity are embedded in the code word has a bit index that is a power of 0 or 2.
  • FIG. 24 shows the positions where the inspection symbols are embedded in this example. Even if the value of N w is different, the position where the check symbol is embedded follows the same rule.
  • N w 16 as an example.
  • the processing can be performed with the same three types of instructions even if the word length is longer. Is possible.
  • the 57-bit information symbol X in the form of Expression 7 expressed by using 4 words is expanded in the form of Expression 8. Examples of conversion to the information symbol X ′ are shown in FIGS. In order to obtain word 0 of X ′, the relocation instruction (1) in FIG. 25 may be used.
  • the relocation instruction (2) of FIG. 26 may be used.
  • the rearrangement instruction (3) of FIG. 27 may be used. Note that the suffix of the element of X ′ is displayed not by a serial number but by a number in each word. Barrel shifter used in FIG. 26 and FIG. 27, the bit sequence of 2 words entered [a 2n-1, ⁇ , a 1, a 0] from one word of the bit string [b n-1, ⁇ .., an arithmetic unit that efficiently cuts out b 1 , b 0 ].
  • the square box at the center of FIG. 32 is a 2-to-1 multiplexer that selects one of the two inputs according to the value of the control signal.
  • FIG. 33 to FIG. 35 show the function of an instruction in a processor in which one word is a 16-bit. If the word length of the processor is a power of 2, the same three kinds of functions are used even if the word length is longer. Can be processed with commands.
  • FIGS. For example, when a 1-word length is 16 bits and a 57-bit information symbol is extracted from a code word represented by 4 words (64 bits), the information symbol extraction instructions shown in FIGS. Can be used. A method of extracting information symbols from a 4-word code word using these three types of instructions is shown in FIGS. Even when the codeword is longer, information symbols can be extracted efficiently by using these three types of instructions.
  • An instruction for correcting a 1-bit error can be easily implemented using, for example, the circuit shown in FIG.
  • the check symbol (or syndrome) may be calculated as follows. First, calculation of inspection symbols will be described.
  • the word number is 0 to M-1.
  • the exclusive OR of all the bits of the i-th word be p i .
  • check symbols Q [q m + n ⁇ 1 ,..., Q 1 , q 0 ] for all words are obtained by using a check symbol of each word and an exclusive OR of all bits. Can be calculated.
  • FIG. 44 shows an example of a check symbol calculation procedure for the extended information symbols stored in the M words W M ⁇ 1 , W M ⁇ 2 ,..., W 1 , W 0 .
  • f (W i) is the check symbol sequence for W i
  • the exclusive OR of all pits of parity (W i) is W i
  • binary (i) is a binary representation of an integer i, respectively It is a function to represent.
  • the syndrome can be calculated using the exclusive OR of the syndrome of each word and all bits.
  • FIG. 46 shows an example of a syndrome calculation procedure for codewords stored in M words W M ⁇ 1 , W M ⁇ 2 ,..., W 1 , W 0 .
  • g (W i ) represents a syndrome for W i
  • parity (W i ) represents an exclusive OR of all pits of W i
  • binary (i) represents a binary representation of an integer i. It is.
  • the bit in which an error has occurred can be easily identified using the lower n bits S L of the syndrome.
  • the method of mounting the apparatus for performing the encoding of the present invention and the apparatus for performing decoding / error correction is not limited to the above.
  • the conventional mounting method shown in FIG. 10 (conventional method (A)) and FIG. 11 (conventional method (B)) may be used.
  • the characteristics of Embodiment 1 of the present invention are summarized as follows (1) to (3).
  • (2) ⁇ High performance and low power consumption> As a mounting method, as shown in FIG. 22, by using a processor having dedicated instructions suitable for encoding and decoding, the same mounting method as a general-purpose processor and software is used.
  • the above feature (1) is an advantage of using a new encoding method.
  • Features (2) and (3) are advantages associated with the encoding and decoding processing implementation methods.
  • the conventional method and the method of the first embodiment are compared and shown in Table 2.
  • the method of Example 1 corresponds to the method of Embodiment 1, and is hereinafter also referred to as the proposed method.
  • the other method (A) corresponds to the conventional method (A)
  • the other method (B) corresponds to the conventional method (B).
  • the number of elements of x is n, and n x (n-1) exclusive OR operations are required.
  • the length is O (n 2 ).
  • a standard method is to connect the decoding circuit 124 as a peripheral circuit to a data bus 125 of a computer and exchange data by input / output of the data memory 122. It is.
  • the general-purpose processor 120 passes a command and data for instructing a process to be executed (initialization, encoding, decoding, etc.) to the decoding circuit 124, waits for the process to end, and whether there is an error. Then, status information such as whether correction was possible and data after correction are received.
  • the implementation method by the processor to which the dedicated instruction is added proposed in the first embodiment is as follows: (1) an instruction for rearranging information symbols to the RISC processor 222 having a simple instruction set shown in FIG. This is a method for efficiently executing encoding and decoding processes by adding instructions for calculating symbols and syndromes, and (3) instructions for error detection and correction.
  • Table 2 the features of the proposed method are as follows: Software processing on a general-purpose processor while having processing performance (number of execution cycles) comparable to that of the conventional method (B) and execution capability with low power consumption The same flexibility and extensibility is achieved.
  • the proposed method is likely to be able to process with fewer cycles than the conventional method (B).
  • the reason is as follows.
  • execution of an instruction corresponds to execution of a command, and data can be passed to an arithmetic circuit using a register of a processor. Therefore, the protocol overhead required in the conventional method (B) can be reduced. Along with this, it can be expected that the power consumption will be smaller than that of the conventional method (B).
  • the present invention can be applied to application fields such as error correction of transmission paths such as a computer memory and a bus in addition to information transmission.
  • application fields such as error correction of transmission paths such as a computer memory and a bus in addition to information transmission.
  • parameters such as the number of bits of data to be transferred at the same time are fixed in a memory or transmission path of a computer
  • the maximum effect can be achieved by mounting with a dedicated hardware circuit.
  • ASIP application field
  • FIG. 47 shows check symbols and syndrome calculation formulas used in the high-dimensional parity code.
  • This type of high-dimensional parity is capable of 1-bit error correction and 2-bit error detection. Therefore, it has the same bit error correction / detection capability as the extended Hamming code and the super Hamming code.
  • the high-dimensional parity code is inferior to the Hamming code, the extended Hamming code, and the super-Hamming code, but the check symbols and syndrome calculation formulas of the high-dimensional parity code have high regularity.
  • the check symbol calculation formulas used in the high-dimensional parity code the calculation formulas of q n ⁇ 1 , q n ⁇ 2 ,..., Q 0 , r are the same as the check symbol calculation formulas of the super Hamming code. Format. Further, as shown in FIG.
  • the decoding procedure is as follows. (1) A syndrome is generated by calculating an exclusive OR of the received check symbol and the check symbol calculated from the received information symbol. Inspecting the syndrome, (a) If all bits are 0, there is no error. (b) If any bit is not 0, go to the next step (2). (2) Take the exclusive OR of the p and q components of the syndrome, (a) If all bits are 1, there is a 1-bit error in the received information symbol. (b) If there is only one 1 in any bit, the received check symbol has a 1-bit error. c) If all bits are 0, it is assumed that there is a 2-bit error in the received information symbol. (3) When there is a 1-bit error in the received information symbol, the received information symbol error specified by the q component of the syndrome is corrected.
  • codeword length adjustment procedure An example of the codeword length adjustment procedure is shown in FIG.
  • the code word length is adjusted using the two threshold values (E H , E L ) of the bit error rate, so that the code is frequently corrected for minute fluctuations in the bit error rate. No need to change word length.
  • the response (sensitivity) of the codeword length adjustment procedure to changes in the bit error rate can be controlled by modifying the values of the parameters E H , E L , and C L.
  • Burst error detection is a means of detecting and correcting errors when a portable terminal that performs data transmission is used in an environment where multiple consecutive bit errors (hereinafter referred to as burst errors) may occur during transmission.
  • a CRC Cyclic Redundancy Checking
  • the CRC encoding method of the present invention includes a check symbol calculation method performed in the following circuit (1).
  • the CRC decoding method of the present invention includes a syndrome calculation and error correction method performed by the following circuits (2) and (3).
  • the coefficient ⁇ i of x i is calculated on a Galois field of 2, and the addition of the coefficients is calculated as an exclusive OR.
  • the information is represented by a bit string in which the coefficient ⁇ i of x i is arranged at the i-th bit.
  • FIG. 50 shows a calculation flow of CRC code check symbols.
  • the remainder calculation for calculating the check symbol of the encoding method using the generator polynomial is calculated by the following procedures (a) to (d), of which (b) and (c) need to be repeated a plurality of times. It becomes.
  • (A) The initial value A 0 of the intermediate data A j is used as an information symbol.
  • (B) The intermediate data A j is shifted by 1 bit to obtain data A ′ j .
  • (C) The most significant bit of A ′ j is 1. Then, the exclusive OR of A ′ j and the bit string representing the generator polynomial is calculated to obtain intermediate data A j + 1 of the next step.
  • the calculation of check symbols is accelerated by using a circuit that multiplies G n by an arbitrary n. G for the generator polynomial xx 8 + x 2 + x + 1 is shown in FIG.
  • the processing is divided into n-bit units according to Expression 16, and the calculation of the check symbol is accelerated using a circuit for calculating G 2n and G n .
  • G 8 and G 16 are used when the parity check matrix is calculated in units of 8 bits.
  • G 8 and G 16 for the generator polynomial x 8 + x 2 + x + 1 are represented in FIGS. 52 and 53, respectively.
  • the generator polynomial can be dynamically changed.
  • a method for executing the operation (A) in n cycles will be described in (i) to (vi).
  • (I) It has an n-bit input data register. The input data is stored in the input data register.
  • (Ii) It has an n-bit row storage register and an n-bit ⁇ n-bit matrix table. The matrix table designates a row, and outputs information on the designated row to the row storage register.
  • the matrix (G m ) T table in FIG. 54 is obtained by arranging a transposed matrix of a matrix representing G m in the table.
  • a table for a dedicated arithmetic unit that multiplies G 8 in the generator polynomial x 8 + x 2 + x + 1 is configured as shown in FIG.
  • the matrix table is implemented by, for example, a RAM or a plurality of registers.
  • (Iii) It has an n-bit 2-input AND operator, and the AND operator outputs a logical product of an input data register and a row storage register.
  • Iv It has an n-bit parity calculator, and the parity calculator outputs an exclusive OR of all bits with respect to the output of the AND calculator.
  • V It has an n-bit shift register, and the shift register stores the operation result of the parity calculator in the least significant bit. The shift register shifts the stored value by one bit to the left by inputting a shift signal.
  • the output of the shift register is used as the output of the arithmetic unit.
  • a dedicated arithmetic unit that multiplies G m may be configured as shown in FIG. In FIG. 56, by using a dedicated arithmetic unit that processes the plurality of operations (ii) to (v) in parallel, the processing can be parallelized and the same operation as that in FIG. 54 can be executed in one cycle. .
  • FIG. FIG. 57 is a circuit for incorporating a (24, 16) CRC code processing circuit into a 16-bit processor.
  • the generator polynomial is x 8 + x 2 + x + 1.
  • G 8 and G 16 are circuits that multiply the matrices of FIGS. 52 and 53, respectively.
  • the circuit in FIG. 57 inputs the value during the calculation of the check symbol to the rd register and the information symbols to the rs register sequentially, so that 16 operations (A) are performed in one cycle when using the dedicated arithmetic unit in FIG. When the dedicated arithmetic unit of FIG. 56 is used, it is performed in 8 cycles, and the result of the next check symbol obtained as a result is written back to the rd register.
  • Equation 18 is divisible by g (x), so the syndrome is expressed by Equation 19.
  • a dedicated arithmetic unit for multiplying by G m is configured as shown in FIG.
  • FIG. FIG. 58 is a circuit for incorporating a (24, 16) CRC code processing circuit into a 16-bit processor.
  • the generator polynomial is x 8 + x 2 + x + 1.
  • a bit test in FIG. 58 is a circuit that outputs an input value when only one 1 bit exists in the input value, and outputs 0 in other cases.
  • G- 8 in FIG. 58 is a circuit that multiplies the matrix in FIG.
  • the circuit shown in FIG. 58 inputs the code word into the rd register and the syndrome into the upper 8 bits of the rs register, so that the cycle is performed in 2 cycles when the dedicated arithmetic unit in FIG. 54 is used and in 16 cycles when the special arithmetic unit in FIG. 56 is used.
  • the corrected code word is written back to the rd register.
  • x is a variable (modulo 2)
  • x k degree k of the generator polynomial
  • a code word is generated together with the information symbol, and transmitted as data
  • each term from the highest order of the variable x of the shift information symbol polynomial in the first operation is A vector in which the second operation of each stage, which is erased in stages by multiplying and subtracting the generator polynomial by a power of x, starts with a vector in which the coefficients of the shift information symbol polynomial are arranged, and the coefficients of the remainder in the middle of each stage are arranged Is expressed by a product of the same matrix G with respect to, and a partial operation
  • the intermediate vector of the intermediate stage and the partial arithmetic matrix Every predetermined number of times An operation for sequentially obtaining a product as a remainder vector in the next intermediate stage is performed, and a coding process is performed by a method including a step 2 for generating a check symbol.
  • Step 10 for performing a sequential calculation as a remainder vector at the next intermediate stage, generating a syndrome
  • Step 11 for calculating an inverse matrix of a partial matrix in advance
  • Step 12 for determining the presence and type of an error from the syndrome, If the total number of bits that are 1 in the syndrome is 1, and it is determined that there is a 1-bit error in the bit width of the check symbol from the lower part of the received codeword, reception specified at the bit position that is 1 in the syndrome
  • Step 13 of inverting the codeword bit value to correct the codeword, and the total number of bits that are 1 in the syndrome being two or more
  • the total number of bits that are 1 in the syndrome of the t-th (t is an integer of 1 or more) result is 1, and the bit width of the check symbol is the unit width.
  • the decoding process is performed by a method including the step 14 of inverting the value of the bit specified at the bit position which is 1 of the syndrome and correcting the code word.
  • the partial operation matrix has m product matrices G mk , G (m ⁇ 1) k , G (m ⁇ 2) , where mk , (m ⁇ 1) k ,. k ,..., G k , and instead of performing an operation for sequentially obtaining a remainder vector at a predetermined number of times starting from the vector of the shift information symbol polynomial in step 2, the vector of the shift information symbol polynomial is obtained.
  • the product matrix G mk is divided into vectors having k elements in the unit of bit width k in one word and the first bit width vector in the word.
  • the vector element and the previous word (M ⁇ 1) elements having a vector element obtained by exclusive ORing with a vector element obtained as a result of a batch operation on a node and k elements at the bit width positions after the next in the word
  • a CRC decoding method for decoding a received codeword, which is data received and transmitted by a codeword, in which the number of bits of one word is m times the natural number of the bit length k of the check symbol and the information is M words
  • the partial operation matrix has m product matrices G mk , G (m ⁇ m ⁇ ), where mk, (m ⁇ 1) k ,. 1) k , G (m ⁇ 2) k ,..., G k , and in step 10, an operation is performed for sequentially obtaining a remainder vector in the middle stage every predetermined number of times, starting from the vector of the received codeword polynomial.
  • the vector of the received codeword polynomial for each word and performing the batch operation for each word sequentially is divided into a vector having k elements of bit width k unit in one word and the first in the word Result of multiplying bit width vector by product matrix G mk
  • a vector element obtained by exclusive ORing the vector element of the vector and the vector element of the result of the batch operation on the previous word, and k elements at the next and subsequent bit width positions in the word (m-1) respectively pieces of vector G (m-1) takes k, G (m-2) k, ⁇ , the exclusive OR of the elements of the vector result multiplied by G k performed as collectively the calculation in the word, the inverse matrix can be reversed matrix G -k of G k.
  • a conventional method of adding a function of performing encoding based on a CRC code and a function of performing decoding to a processor-based system is as follows. (1) Implementation by software on a general-purpose processor (hereinafter referred to as conventional method (1)) (2) Implementation by adding dedicated hardware (ASIC) (hereinafter referred to as conventional method (2)) (3) Implementation by adding dynamically reconfigurable hardware (hereinafter referred to as conventional method (3)) It can be classified into three types. The above methods have the following trade-offs.
  • the software implementation method of the conventional method (1) can use the general-purpose processor used for the original processing as it is, so it is not necessary to add hardware, and it can easily cope with changes in coding method and code length. Although there are many execution cycles, the execution time is long and the power consumption is large.
  • the generator polynomial and code length specifications can be changed by dynamically reconfiguring the circuit, but the power consumption is large and the amount of hardware necessary for implementation is also large. There are drawbacks.
  • VLSI integration has been improved, clock frequency has been improved, and performance has been improved.
  • performance has been improved.
  • the power consumption of VLSI is increasing.
  • the conventional method (2) is superior to the conventional method (1) in terms of power consumption, but it is difficult to flexibly cope with specification changes.
  • the conventional method (3) using hardware that can flexibly cope with specification changes has a large amount of hardware power consumption and is not suitable for low power consumption. Therefore, it is a challenge to develop a mounting method that can flexibly cope with code error tolerance and code length change, consumes less power, and has a shorter execution time.
  • the mounting method according to the fifth embodiment of the present invention (hereinafter referred to as the proposed method (1)) has dedicated instructions for check symbol calculation, syndrome calculation, and error correction according to the fourth embodiment.
  • the proposed method (1) has dedicated instructions for check symbol calculation, syndrome calculation, and error correction according to the fourth embodiment.
  • an error correction code processing device is mounted.
  • FIG. 60A is a diagram showing a configuration of the proposed method (1) according to the present invention.
  • the instruction memory 311 holds instructions including dedicated instructions for check symbol calculation, syndrome calculation, and error correction.
  • the processor 310 including a dedicated instruction performs encoding and decoding operations for error correction code processing according to the instruction read from the instruction memory 311.
  • the processor 310 including a dedicated instruction reads data held in the data memory 312 through the data bus 313 in accordance with the instruction read by the instruction memory 311.
  • the processor 310 including the dedicated instruction stores the operation result performed by the processor 310 including the dedicated instruction in the data memory 312 through the data bus 313.
  • the proposed method (1) has the following features (a) to (c).
  • Table 3 summarizes the characteristics of the conventional method (1), the conventional method (2), the conventional method (3), and the proposed method (1).
  • the method for implementing the device for encoding and the device for decoding according to the present invention is not limited to the above.
  • an apparatus for performing encoding and an apparatus for performing decoding can be implemented.
  • the proposed method (2) uses the dedicated processor used in the proposed method (1) for the check symbol / syndrome calculation, and uses the conventional table lookup for the error correction.
  • FIG. 60B is a diagram showing a configuration of the proposed method (2) according to the present invention.
  • the instruction memory 321 holds instructions including dedicated instructions for check symbol calculation, syndrome calculation, and error correction.
  • the processor 320 including a dedicated instruction performs encoding and decoding operations of error correction code processing according to the instruction read from the instruction memory 321.
  • the processor 320 including the dedicated instruction reads data held in the data memory 322 including the table lookup area through the data bus 323 according to the instruction read by the instruction memory 321.
  • the data memory 322 including a table lookup area is a memory including a table lookup area that holds a Look-up Table for calculating an error position.
  • the processor 320 including the dedicated instruction stores the operation result performed by the processor 320 including the dedicated instruction in the data memory 322 including the table lookup area through the data bus 323.
  • the proposed method (1) the number of cycles proportional to the code length is required to calculate the error position, but in the proposed method (2), it is possible to calculate by the number of cycles for one memory access by using a table lookup. Become. However, since the memory area necessary for storing the data for table lookup increases significantly, the proposed method (2) needs to increase the data memory as compared with the proposed method (1).
  • the proposed method (3) is both check symbols / syndrome calculation and error correction, a method of configuring a dedicated computing unit that performs ⁇ G m in FPGA (Field-Programmable Gate Array) or the like of the reconfigurable hardware.
  • FIG. 60C is a diagram showing a configuration of the proposed method (3) according to the present invention.
  • the instruction memory 331 holds instructions including dedicated instructions for check symbol calculation, syndrome calculation, and error correction.
  • the dynamically reconfigurable processor 330 including a dedicated instruction performs encoding and decoding operations of error correction code processing according to the instruction read from the instruction memory 331.
  • the dynamically reconfigurable processor 330 including the dedicated instruction reads data held in the data memory 332 through the data bus 333 according to the instruction read from the instruction memory 331.
  • the dynamically reconfigurable processor 330 including the dedicated instruction stores the operation result performed by the dynamically reconfigurable processor 330 including the dedicated instruction in the data memory 332 through the data bus 333.
  • a dedicated arithmetic unit that performs ⁇ G m can be configured using the FPGA's Look-up Table, so that the calculation is as fast as the proposed method (1). Is possible.
  • ECC Error Checking and Correction
  • Table 4 summarizes the check symbol / syndrome calculation and error correction methods in the proposed method (1), the proposed method (2), and the proposed method (3).
  • Table 5 summarizes the features of the proposed method (1), the proposed method (2), and the proposed method (3).
  • FIG. 62 and Table 6 show an example of the procedure for adjusting the codeword length and generator polynomial (receiving side) as the sixth embodiment.
  • the error correction level L is divided into six stages, and the generator polynomial and code length used at each level are determined.
  • generator polynomials of 8-bit CRC (CRC-8) and 16-bit CRC (CRC-16) are used (specifically, x 8 + x 2 + x + 1 and x 16 + x 15 + respectively). x 2 + 1).
  • the error correction level L is increased and no error is detected (error detection processing is not shown). not) If the received code word number C R exceeds the minimum number of reception times C L required error correction level changes and the bit error rate C E / C R is below E L is the lower the error correction level L . Also, when in the receiving system, the error correction level L is to the L H if it exceeds the upper limit L H error correction level by calculating the L + 1, below the lower limit L L error correction level by calculating the L-1 Is L L. Then, by notifying the transmission system of the error correction level calculated in the reception system, the setting of the transmission / reception system can be changed on both the transmission system side and the reception system side.
  • the response (sensitivity) to the bit error rate variation of the codeword length and generator polynomial adjustment procedure can be controlled by modifying the values of the parameters E H , E L , and C L.
  • the length of the code length can be adaptively changed in accordance with the bit error rate, so that a long code length error correction code with high coding efficiency can be used for communication with few errors, and communication with many errors.
  • Table 7 shows a comparison of the number of execution cycles when an error code processing device using a CRC code is implemented using a processor incorporating a circuit according to the fourth embodiment and a general-purpose processor.
  • Table 7 the method using a processor incorporating the circuits shown in FIGS. 56, 57 and 58 is the proposed method (1), and the method using a general-purpose processor is the conventional method (1).
  • Table 7 shows the number of execution cycles necessary for encoding and decoding of 16, 32, and 64 bit information symbols and the reduction rate of the number of execution cycles of the proposed method (1) with respect to the conventional method (1). From Table 7, the proposed method (1) can confirm the effect of reducing the number of execution cycles by 90% or more compared to the conventional method (1).
  • the configuration of the error correction code apparatus is for illustration in order to specifically describe the present invention, and the error correction code apparatus according to the present invention is not necessarily provided with all of the above configurations.
  • the error correction coding apparatus according to the present invention only needs to have a minimum configuration capable of realizing the effects of the present invention.
  • the error correction code processing method is for the purpose of illustrating the present invention, and the error correction code processing method according to the present invention is not necessarily required to include all of the above steps. Absent. In other words, the error correction code processing method according to the present invention needs to include only the minimum steps that can realize the effects of the present invention.
  • the order in which the above steps are executed is for illustration in order to specifically describe the present invention, and may be in an order other than the above. Moreover, a part of the above steps may be executed simultaneously (in parallel) with other steps.
  • the present invention can perform information transmission and error detection and error correction in a transmission path such as a computer memory or bus.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

 誤り訂正符号処理方法は、降順記号若しくは昇順記号のいずれかまたは両方を算出し、情報記号列のすべての要素の排他的論理和をパリティとして算出する第1ステップと、降順記号の要素毎に排他的論理和を算出し、降順記号の下位nビット、若しくは昇順記号の要素毎に排他的論理和を算出し、昇順記号の下位nビットのいずれかまたは両方として生成する第2ステップと、パリティを並べた要素列の要素から降順に選択した要素の排他的論理和を算出し、降順記号の上位mビット、若しくは要素から昇順に選択した要素の排他的論理和を算出し、昇順記号の上位mビットのいずれかまたは両方を生成する第3ステップと、生成された降順記号若しくは昇順記号のいずれかまたは両方を、検査記号或いはシンドロームとして出力する第4ステップとを有する。

Description

誤り訂正符号処理方法及びその装置
 本発明は、情報通信や電子システム内部でのデータ伝送(以下では、両者を合わせて情報伝送という)における誤り訂正の効率化と低電力化を達成できる誤り訂正符号処理方法及びその装置に関するものである。
 情報伝送の分野では伝送誤りの可能性が常に存在するので、誤りを検出し訂正する手段が必要である。伝送中に1ビット誤りが発生する確率(以下、ビット誤り率という)が比較的低い応用分野では、符号化の効率が高く伝送効率の良い、拡大ハミング符号や高次元パリティ符号などの符号化方式が用いられている(非特許文献1~3)。
 誤り訂正を伴う情報伝送の一般的な手順を図1に示す。送信側システムが、情報記号Xを受信側システムに伝送する場合、送信側システムは、まず符号化装置を用いて情報記号Xに誤り訂正用の検査記号を付加して符号語Yを生成して受信側システムに伝送する。このとき、通信路上で外乱による伝送誤り(E)が発生し、符号語Yの一部の値が変化する可能性がある。受信側システムが受信した符号語をY'とする。送信する情報記号、検査記号、符号語の関係を図2に示す。長さLの情報記号に長さN-Lの検査記号をつけて構成される長さNの符号語を(N,L)符号と呼ぶ。また、L/Nを(N,L)符号の符号化率と呼ぶ。
 復号及び誤り訂正の手順を図3に示す。受信側システムは、受信した符号語Y'を復号し、誤り検出・訂正を行うためのシンドロームと呼ばれる情報を計算し、受信した符号語Y'に伝送誤りが含まれているかどうかを検査する。もし訂正可能な誤りが含まれていることが分かった場合には、情報記号を訂正する。復号・誤り訂正回路が出力する情報記号をZで表わす。このとき、採用した誤り検出・訂正方式の能力に依存して、出力される情報記号Zに含まれる誤りは、次の4通りのいずれかになる。ここでは、1ビット誤り訂正・2ビット誤り検出可能な符号化方式について説明する。
(1)伝送路上で誤りが発生しなかった場合、復号・誤り訂正回路は、受信した符号語Y'には誤りがない(Y'=Y)と判断する。
(2)伝送路上で、復号・誤り訂正回路が検出・訂正可能な誤り(1ビット誤り)が発生した場合、復号・誤り訂正回路は、受信した符号語Y'の1ビット誤りを検出し、正しい値に訂正できる。
(3)伝送路上で、復号・誤り訂正回路が検出可能であるが訂正不可能な誤り(2ビット誤り)が発生した場合、復号・誤り訂正回路は、受信した符号語Y'の2ビット誤りを検出するが、正しい値に訂正出来ない。
(4)伝送路上で、復号・誤り訂正回路が検出可能でない誤り(3ビット以上の誤り)があった場合、復号・誤り訂正回路は、受信した符号語Y'に誤りがあることを検出できず、したがって、正しい値に訂正出来ない。
 1ビット誤り訂正可能・2ビット誤り検出可能な、拡大ハミング符号での符号化及び復号の方法とそこで用いられる基本演算について説明する。まず、単純なハミング符号を用いた1ビット誤り訂正法について説明し、1ビット誤り訂正・2ビット検出が可能な拡大ハミング符号について説明する。
(1-1)ハミング符号を用いた符号化と復号
 ハミング符号は、長さL=2n-n-1ビットの情報記号に対して、nビットの検査記号を付加して符号語を構成する(2n-1,2n-n-1)符号であり、1ビット誤り訂正符号である。たとえば、n=4の場合には、(15,11) 符号となる。以下では、情報記号Xを式1で表し、符号語Yを式2で表す。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 ハミング符号では、符号化処理には生成行列Gが用いられ、復号には、検査行列Hが用いられる。検査行列Hは、大きさがn×(2n-1)の行列で、各列には、全零以外のすべてのn次元の列ベクタが含まれる。n=4の場合のハミング符号の検査行列Hの例を図4に示す。検査行列Hの列の並べ方は任意である。
 検査行列Hに対応する生成行列Gは、式3の性質を満たす行列である。ただし、加算は全て2を法とする加算(排他的論理和演算)によって行われる。GT,HTは、それぞれG,Hの転置行列を表し、以下同様に行列を表す文字の上付き文字がTである場合は、その行列の転置行列を表すものとする。
Figure JPOXMLDOC01-appb-M000003
 検査行列Hが式4の形式をしている場合、この符号化方式を組織符号と呼ぶ。
Figure JPOXMLDOC01-appb-M000004
 ここで、Aは大きさn×(2n-n-1)の任意の行列、Inは、大きさn×nの単位行列である。組織符号では、検査行列Hに対応する生成行列Gは、式5で容易に求めることができる。
Figure JPOXMLDOC01-appb-M000005
 ここで、m=2n-n-1であり、ATは、Aの転置行列である。図4の検査行列H に対応する生成行列G を図5に示す。
 符号化は、情報記号Xに生成行列Gを掛けることによって行われる。情報記号Xを符号化して得られる符号語をYとする。たとえば、X=[ 1 0 1 1 0 1 1 1 0 1 1 ] に対応する符号語は、図6に示すように、Y = [ 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 ] となる。
 復号と誤り訂正は、次のようにして行われる。受信した符号語をY'とし、受信した符号語にはたかだか1ビットしか誤りがないと仮定する。このとき、受信した符号語Y'のシンドロームSを式6で定義する。
Figure JPOXMLDOC01-appb-M000006
 受信した符号語に誤りが含まれているかどうかは、シンドロームSの値によって、次のように判定する。
 Sの要素が全て0の場合、伝送誤りがなかったと判定する。
 Sが0以外の要素を含む場合、Sを転置したベクタと一致するHの列の位置に誤りがあったと判定される。
 たとえば、上記の例で、左から8ビット目に伝送誤りが発生し、受信した符号がY'=[ 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 ]であったとすると、シンドロームは、図7に示すように、S=[ 0 1 1 1 ]となり、このベクトルを転置すると、検査行列Hの左から8列目の値と一致するので、受信した符号語の左から8ビット目に誤りがあることが分かる。(ビット誤りが生じた位置に下線を引いてある。)
(1-2)拡大ハミング符号を用いた符号化と復号
 ハミング符号を用いると、1ビット誤りの訂正が可能である。しかし、2ビット誤りが発生した場合に、1ビット誤りが発生したのか2ビット誤りが発生したのかの区別が出来ないので、正しく訂正できない。1 ビット誤り訂正・2ビット誤り検出を行う方法として、ハミング符号を拡張した、拡大ハミング符号が用いられている。拡大ハミング符号での符号語は、生成行列G を用いて符号化した結果の符号語に、符号語全体のパリティビット(符号語の全ビットの排他的論理和)を付加することによって得られる。したがって、拡大ハミング符号での符号語長は2nとなる。
 先の例では、入力記号X=[ 1 0 1 1 0 1 1 1 0 1 1 ]に対して生成行列Gを適用して得られる符号語[ 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 ]のパリティが0なので、末尾に0を付加して、Y=[ 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 0 ]となる。
 拡大ハミング符号での復号及び誤り検出・訂正は、もとのハミング符号での検査行列Hの最後の列の後に要素が全て零の列ベクトルを追加し、その行列の最後の行の下に要素が全て1のベクトルを追加して得られる拡大検査行列H'を用いて行う。図4の検査行列H に対応する拡大検査行列H'を図8に示す。
 先の例で用いた符号語の左から8ビット目に誤りがある場合には、受信する符号語はY'=[ 1 0 1 1 0 1 1 0 0 1 1 1 1 0 0 ]となる。この符号語Y'に対して、拡大検査行列を用いてシンドロームY'H'Tを計算すると図9のように、[ 0 1 1 1 1 ] が得られる。
 乗算結果のベクトル[ 0 1 1 1 1 ]を転置すると、拡大検査行列の左から8列目と一致するので、受信した符号語の左から8ビット目に誤りが発生したことが知られる。受信した符号語に2ビット誤りがある場合には、受信する符号語に偶数個の1が含まれるので、Y'H'Tの最後の要素は0となる。拡大検査行列の最後の行の要素は全て1なので、検査結果を転置した列ベクトルは、拡大検査行列のどの列とも一致しない。この場合、2ビット誤りが発生したと判定する。3ビット以上の誤りがあった場合には、検出は不可能である。まとめると、次の<場合1>~<場合3>のようになる。以下では、シンドロームをS=[sn-1,sn-2,・・・,s1,s0,r]で表す。また、or(要素1,要素2,・・・,要素n)は、全ての要素の論理和を行う論理関数とする。
<場合1> Sの要素が全て0の場合(r=0かつor(sn-1,sn-2,・・・,s1,s0)=0)には、誤りは発生しなかったと判定する。
<場合2> Sの要素r=1の場合、1ビット誤りが発生したと判定する。誤りが発生した位置は、Sと一致するパターンを持つ列に対応する要素である。
<場合3> <場合1>及び<場合2>以外の場合(r=0かつor(sn-1,sn-2,・・・,s1,s0)=1)には、2ビット誤りが発生したと判定する。
 次に、これらの符号化を行うための装置及び復号・誤り訂正を行うための装置として実装する従来の手法は、
(A)汎用プロセッサ上のソフトウェアによる実装(以下、従来手法(A)と呼ぶ)
(B)専用ハードウェア(ASIC: Application Specific Integrated Circuit)による実装(以下、従来手法(B)と呼ぶ)
の2種類に分類できる。
 図10は、汎用プロセッサ上のソフトウェアによる従来の誤り訂正符号処理の実装を示す図である。図10において、汎用プロセッサ110の外側には、命令メモリ111とデータメモリ112がある。命令メモリ111は、誤り訂正符号処理の符号化及び復号化演算のための命令を保持している。汎用プロセッサ110は、命令メモリ111から読み出された命令に従って、誤り訂正符号処理の符号化及び復号化演算を行う。また、汎用プロセッサ110は、命令メモリ111から読み出された命令に従って、データバス113を通じてデータメモリ112に保持されているデータを読み出す。さらに、汎用プロセッサ110は、汎用プロセッサ110で行われた演算結果を、データバス113を通じてデータメモリ112に格納する。
 図11は、汎用プロセッサと専用周辺回路(ASIC)を用いた従来の誤り訂正符号処理の実装を示す図である。図11において、汎用プロセッサ120の外側には、命令メモリ121、データメモリ122、符号化回路123及び復号化回路124がある。命令メモリ121は、誤り訂正符号処理の符号化及び復号化演算のための命令を保持している。汎用プロセッサ120は、命令メモリ121から読み出された命令に従って、データバス125を通じてデータメモリ122に保持されているコマンドとデータを読み出し、データバス125を通じて、符号化回路123及び復号化回路124に対し、実行すべき処理を指示するコマンドとデータを渡す。また、汎用プロセッサ120は、符号化回路123及び復号化回路124から、符号化及び復号化可能であったか等のステータス情報と、符号化及び復号化処理後の演算結果を読み出し、データバス125を通じてステータス情報と演算結果をデータメモリ122に格納する。符号化回路123は、命令メモリ121から読み出された命令に従って、誤り訂正符号処理の符号化演算を行う。復号化回路124は、命令メモリ121から読み出された命令に従って、誤り訂正符号処理の復号化演算を行う。ここで、符号化回路123及び復号化回路124は、ASICを用いている。また、符号化回路123は、検査記号を生成し、復号化回路124は、シンドローム生成及び誤り訂正を行う。
 従来手法(A)と従来手法(B)との間には、次のようなトレードオフが存在する。
 従来手法(A)は、従来手法(B)と比較して、次の(a)、(b)のような利点を持つ。
(a)実装するために必要なハードウェア量が少ない(プログラムを格納するためのメモリだけで十分である)。
(b)仕様変更に柔軟に対応できる(符号化方式の変更や符号長の変更に容易に対応できる)。
 しかし、従来手法(A)は、従来手法(B)と比較して、次の(c)、(d)のような欠点がある。
(c)実行時間が長い(実行サイクル数が多い)。
(d)消費電力量が大きい。
RobertH. Morelos-Zaragoza: The art of error correcting coding, Second Ed., Wiley Shu Lin, D.J. Costello, Jr.: Error Control Coding, Pearson Prentice Hall Eiji Fujiwara: Code Design for Dependable Systems, Wiley
 拡大ハミング符号は、他の同等の誤り訂正能力を持つ符号化方式よりも符号化率の点で優れており実用性が高い。しかし、拡大ハミング符号では、復号を行なったときに得られるビット誤りの情報から、誤りが発生したビットの位置を効率良く決定することが容易ではないという問題点がある。
 すなわち、拡大ハミング符号は、1ビット誤り訂正可能・2ビット誤り検出可能な符号化方式の中で、符号化率が最も高いという特徴を持っている。しかし、背景技術の従来例に示したように、1ビット誤りを検出した場合に、ビット誤りが含まれている位置を判定するためには、シンドロームS=Y'H'Tの演算結果を転置した列ベクトルと拡大検査行列の各列を比較して一致する列を特定する必要がある。ところが、組織符号を用いた場合には、検査行列の各列を2進数とみなした場合に列の並びに単調性がないので、シンドロームSと一致する列の特定を、ハードウェア量及び実行時間の両方で効率良く実行する方法は自明ではない。
 たとえば、組織符号を用いる拡大ハミング符号をソフトウェアによる従来手法(A)の方法で実装する場合、誤りが生じた位置を効率良く特定するためには、(a)一致する列ベクトルを逐次的に探索する、(b)ハッシングの技法を用いて探索を効率化する、(c)図12に示すような、シンドロームからビット誤りの位置を求めるための変換表をあらかじめ用意し、表引きによって計算時間を短縮するなどの方法が考えられる。しかし、(a)の方法は計算量が多く、(b)、(c)の方法は、符号長が長い場合に多量のメモリが必要になるなどの問題がある。いずれも消費電力量の面では不利である。
 また、組織符号を用いる拡大ハミング符号を、従来手法(B)の方法で、専用ハードウェアを用いて高速化するためには、誤り位置の特定のための機構をハードウェアで実装せざるを得ない。その結果、ハードウェア量が増大し、消費電力も増大してしまうという問題がある。
 半導体の微細化が進んだ結果、VLSI(Very Large Scale Integration:大規模集積回路)の集積度が向上し、クロック周波数も向上し、性能が向上している。しかし、その結果、VLSIの消費電力が増大傾向にある。特に、汎用プロセッサでは、消費電力の増大に伴う発熱量の増大と温度上昇が大きな問題になっている。従来手法(B)は、消費電力量の点で従来手法(A)よりも優れているが、仕様変更や伝送路の伝送路誤り率の変化に柔軟に対応することが困難である。したがって、仕様変更や伝送路の伝送路誤り率の変化に柔軟に対応でき、かつ消費電力量の少ない実装方法を用いた誤り訂正符号処理装置を開発することが課題となっている。
 そこで、本発明は、このような従来の課題を解決するためになされたものであり、誤りの発生した位置を容易に特定でき、仕様変更や伝送路の伝送路誤り率の変化に柔軟に対応することができ、かつ、消費電力量の少ない誤り訂正符号処理方法及びその装置を提供することを目的とする。
 上記目的を達成するために、本発明の一形態に係る誤り訂正符号処理方法及びその装置は、長さL=2m+n(mは1以上の整数、nは2以上の整数)の情報記号列V=(vL-1,vL-2,・・・v1,v0)をデータとして処理する誤り訂正符号処理方法であって、情報記号列Vの要素viの添字の大きいほうから降順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した情報記号列Vの全部で2m+n-1個の異なる要素の排他的論理和を要素とし、jの降順に並べた降順記号Q=(qm+n-1,qm+n-2,・・・q1,q0)、若しくは情報記号列Vの要素viの添字の小さいほうから昇順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した情報記号列Vの全部で2m+n-1個の異なる要素の排他的論理和を要素とし、jの降順に並べた昇順記号PP=(ppm+n-1, ppm+n-2,・・・pp1, pp0)のいずれかまたは両方を算出する際に、前記情報記号列VがMワード(M=2m、1ワードのビット長Lw=2n)の長さでi番目のワードの情報記号列をWi=(vi,Lw-1,vi,Lw-2,・・・,vi,1,vi,0)とし前記情報記号列Vをワードの情報記号列を降順に並べたもの(WM-1,WM-2, ・・・, W1,W0)で表した時、i番目の情報記号列Wiの要素vi,j(j=0,1,2,・・・,2n-1)から添字jの大きいほうから降順に2k(k=0,1,2,・・・,n-1)個を1組として2k個おきに選択した情報記号列Wiの全部で2n-1個の異なる要素の排他的論理和を要素としkの降順に並べた降順記号QLi=(qi,n-1,qi,n-2,・・・qi,1,qi,0)、若しくは情報記号列Wiの要素vi,j(j=0,1,2,・・・,2n-1)から添字jの小さいほうから昇順に2k(k=0,1,2,・・・,n-1)個を1組として2k個おきに選択した情報記号列Wiの全部で2n-1個の異なる要素の排他的論理和を要素としkの降順に並べた昇順記号PPLi=(ppi,n-1, ppi,n-2,・・・ppi,1, ppi,0)のいずれかまたは両方を算出し、情報記号列Wiのすべての要素の排他的論理和をパリティpiとして算出する第1ステップと、前記降順記号QLiの要素毎に添字i=0,1,2,・・・,M-1のすべてについて排他的論理和を算出し、前記降順記号Qの下位nビットのQL=(qn-1,qn-2,・・・q1,q0)、若しくは前記昇順記号PPLiの要素毎に添字i=0,1,2,・・・,M-1のすべてについて排他的論理和を算出し、前記昇順記号PPの下位nビットのPPL=(ppn-1, ppn-2,・・・pp1, pp0)のいずれかまたは両方として生成する第2ステップと、前記パリティpiを並べた要素列Pw=(pM-1,pM-2, ・・・, p1, p0)の要素piの添字iの大きいほうから降順に2k(k=0,1,2,・・・,m-1)個を1組として2k個おきに選択した全部で2m-1個の異なる要素の排他的論理和を算出し、前記降順記号Qの上位mビットのQH=(qm+n-1,qm+n-2,・・・qn+1,qn)、若しくは要素piの添字iの小さいほうから昇順に2k(k=0,1,2,・・・,m-1)個を1組として2k個おきに選択した全部で2m-1個の異なる要素の排他的論理和を算出し、前記昇順記号PPの上位mビットのPPH=(ppm+n-1,ppm+n-2,・・・ppn+1,ppn)のいずれかまたは両方を生成する第3ステップと、生成された前記降順記号Q若しくは前記昇順記号PPのいずれかまたは両方を、検査記号或いはシンドロームとして出力する第4ステップとを有する。
 これにより、検査記号及びシンドロームが規則性を持つため、誤りの発生した位置を容易に特定でき、仕様変更や伝送路の伝送路誤り率の変化に柔軟に対応することができ、かつ、消費電力量の少ない誤り訂正符号処理方法を提供することができる。
 また、長さL=2h-h-1(hは2以上の整数)の情報記号X=(xL-1,xL-2,・・・,x1,x0)を情報データとして伝送する場合の誤り訂正符号処理方法であって、符号語Yの符号長をN=2h、検査記号をQ=(qh-1,qh-2,・・・q1,q0)及びパリティpとした時、符号語Yの符号長が1ワード以下の場合は、長さNの記号X'の要素x'i(i=0,1,2,・・・,2h-1)の内の添字iが0,20,21,・・・,2h-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に前記情報記号Xの要素を右から並べ拡張した記号X'=(xL-1,xL-2,・・・,xL-N/2+1,0,xL-N/2,・・・,x10,x9,x8,x7,x6,x5,x4,0,x3,x2,x1,0,x0,0,0,0)の要素x'i(i=0,1,2,・・・,2h-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2h-1個の異なる要素の排他的論理和を算出し、前記検査記号Qの要素qj(j=0,1,2,・・・,h-1)とし検査記号のデータとして生成する第5ステップと、前記計算されたqi及び情報記号のxiの全要素の排他的論理和を算出しパリティpとしデータとして生成する第6ステップとを有し、符号語YがMワード(M=2m、1ワードのビット長Lw=2n、mは1以上の整数でh=m+n)の長さの場合は、長さNの記号X'の要素x'i(i=0,1,2,・・・,2m+n-1)の内の添字iが0,20,21,・・・,2m+n-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に前記情報記号Xの要素を右から並べ拡張した記号X'=(xL-1,xL-2,・・・,xL-N/2+1,0,xL-N/2,・・・,x10,x9,x8,x7,x6,x5,x4,0,x3,x2,x1,0,x0,0,0,0)の要素x'i(i=0,1,2,・・・,2m+n-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した全部で2m+n-1個の異なる要素の排他的論理和をとり前記検査記号Qの要素を算出する際に、上記の前記情報記号列Vとして拡張した記号X' を使い上記の方法を用いて得られる前記降順記号Qを前記検査記号Qとし検査記号のデータとし、得られる前記要素列Pwの全ての要素の排他的論理和をパリティpとして生成する第7ステップとを有し、前記拡張した記号X'の追加された0の位置にある要素x'i(i=0,20,21,・・・,2h-1)を添字iの昇順に前記パリティp,qk(k=0,1,2,・・・,h-1)で置き換えることにより符号語Y=(xL-1,xL-2,・・・,xL-N/2+1,qh-1,xL-N/2,・・・,x10,x9,x8,x7,x6,x5,x4,q3,x3,x2,x1,q2,x0,q1,q0,p)をデータとして生成する第8ステップとを有する。
 また、長さL=2h-h-1(hは2以上の整数)の情報記号X=(x0,x1,・・・xL-2,xL-1)を情報データとして伝送する場合の誤り訂正符号処理方法であって、符号語Yの符号長をN=2h、検査記号をPP=(pph-1,pph-2 ,・・・pp1 ,pp0)及びパリティpとした時、符号語Yの符号長が1ワード以下の場合は、長さNの記号X'の要素x'i(i=0,1,2,・・・,2h-1)の内の添字iが0,20,21,・・・,2h-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に前記情報記号Xの要素を左から並べ拡張した記号X'=(0,0,0,x0,0,x1,x2,x3,0,x4,x5,x6,x7,x8,x9,x10,・・・,xL-N/2,0,xL-N/2+1,・・・, xL-2,xL-1)の要素x'i(i=0,1,2,・・・,2h-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2h-1個の異なる要素の排他的論理和を算出し前記検査記号PPの要素ppj(j=0,1,2,・・・,h-1)とし検査記号のデータとして生成する第18ステップと、前記計算されたppi及び情報記号のxiの全要素の排他的論理和を算出し前記検査記号の内のパリティpとしデータとして生成する第19ステップとを有し、符号語YがMワード(M=2m、1ワードのビット長Lw=2n、mは1以上の整数でh=m+n)の長さの場合は、長さNの記号X' =(x'0,x'1,x'2,x'3,x'4,・・・, x'N-2,xN-1)の要素x'i(i=0,1,2,・・・,2h-1)の内の添字iが0,20,21,・・・,2h-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に前記情報記号Xの要素を左から並べ拡張した記号X'=(0,0,0,x0,0,x1,x2,x3,0,x4,x5,x6,x7,x8,x9,x10,・・・,xL-N/2,0,xL-N/2+1,・・・, xL-2,xL-1)の要素x'i(i=0,1,2,・・・,2m+n-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した全部で2m+n-1個の異なる要素の排他的論理和を算出する際に、上記の前記情報記号列Vとして拡張した記号X' を使い上記の方法を用いて得られる前記昇順記号PPを前記検査記号PPとし検査記号のデータとし、得られる前記要素列Pwの全ての要素の排他的論理和をパリティpとして生成する第20ステップとを有し、前記拡張した記号X'の追加された0の位置にある要素x'i(i=0,20,21,・・・,2h-1)を添字iの昇順に前記パリティp,ppk(k=0,1,2,・・・,h-1)で置き換えることにより符号語Y=(p,pp0,pp1,x0,pp2,x1,x2,x3,pp3,x4,x5,x6,x7,x8,x9,x10,・・・,xL-N/2,pph-1,xL-N/2+1,・・・, xL-2,xL-1)をデータとして生成する第21ステップとを有する。
 上記により、スーパー・ハミング符号での誤り訂正符号処理の符号化をすることができる。
 また、上記の符号語Yがデータ伝送され受信した情報データである符号語Y'=(y'N-1,y'N-2,・・・,y'1,y'0)を復号する誤り訂正符号処理方法であって、符号語Y'の符号長が1ワード以下の場合は、前記受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2h-1個の異なる要素の排他的論理和を算出しシンドロームS=(sh-1,sh-2,・・・s1,s0,r)の要素sj(j=0,1,2,・・・,h-1)として生成する第9ステップと、前記符号語Y'の要素y'iの全要素の排他的論理和を算出し前記シンドロームSの要素rとしデータとして生成する第10ステップと、前記シンドロームから誤りの有無と種類を判定する第11ステップと、r=1で1ビット誤りと判定された場合は、(sh -1, sh -2,・・・s1,s0)で指定される位置の前記符号語Y'の要素の値を反転し前記符号語Y'を訂正する第12ステップと、前記訂正された符号語Y'から情報記号Z=(zL-1,zL-2,・・・,z1,z0)を抽出し誤り訂正後の情報データとして出力する第13ステップとを有し、符号語Y'がMワードの長さの場合は、前記受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,n-1)個を1組として2j個おきに選択した全部で2n-1個の異なる要素の排他的論理和を算出する際に、上記の前記情報記号列Vとして符号語Y'を使い上記の方法を用いて得られる前記降順記号Qの要素をシンドロームS=(sm+n-1,sm+n-2,・・・,sn, ,sn-1, ・・・,s1,s0,r)の要素sj(j=0,1,2,・・・,m+n-1)とし、得られる前記要素列Pwの全ての要素の排他的論理和を前記シンドロームSの要素rとして生成する第14ステップと、前記シンドロームから誤りの有無と種類を判定する第15ステップと、r=1で1ビット誤りと判定された場合は、前記シンドロームSの上位mビットSH=(sm+n-1,sm+n-2,・・・,sn)に対応するワード番号及び前記シンドロームSのrのビット位置を除く下位nビットSL=(sn-1, ・・・,s1,s0)に対応するワード中のビット位置で指定される前記符号語Y'の要素の値を反転し前記符号語Y'を訂正する第16ステップと、前記訂正された符号語Y'から情報記号Z=(zL-1,zL-2,・・・,z1,z0)を抽出し誤り訂正後の情報データとして出力する第17ステップとを有する。
 また、上記の符号語Yがデータ伝送され受信した情報データである符号語Y'= (y'0, ,y'1,・・・,y'N-2,y'N-1)を復号する誤り訂正符号処理方法であって、符号語Y'の符号長が1ワード以下の場合は、前記受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2n-1個の異なる要素の排他的論理和を算出しシンドロームS=(sh-1,sh-2,・・・s1,s0,r)の要素sj(j=0,1,2,・・・,h-1)として生成する第22ステップと、前記符号語Y'の要素y'iの全要素の排他的論理和を算出し前記シンドロームSの要素rとしデータとして生成する第23ステップと、前記シンドロームから誤りの有無と種類を判定する第24ステップと、r=1で1ビット誤りと判定された場合は、(sh-1,sh-2,・・・s1,s0)で指定される位置の前記符号語Y'の要素の値を反転し前記符号語Y'を訂正する第25ステップと、前記訂正された符号語Y'から情報記号Z=(z0,z1,・・・,zL-2,zL-1)を抽出し誤り訂正後の情報データとして出力する第26ステップとを有し、符号語Y'がMワードの長さの場合は、前記受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,n-1)個を1組として2j個おきに選択した全部で2n-1個の異なる要素の排他的論理和を算出する際に、上記の前記情報記号列Vとして符号語Y'を使い上記の方法を用いて得られる前記降順記号Qの要素をシンドロームS=(sm+n-1,sm+n-2,・・・,sn, ,sn-1, ・・・,s1,s0,r)の要素sj(j=0,1,2,・・・,n-1)とし、得られる前記要素列Pwの全ての要素の排他的論理和を前記シンドロームSの要素rとして生成する第27ステップと、前記シンドロームから誤りの有無と種類を判定する第28ステップと、r=1で1ビット誤りと判定された場合は、前記シンドロームSの上位mビットSH=(sm+n-1,sm+n-2,・・・,sn)に対応するワード番号及び前記シンドロームSのrのビット位置を除く下位nビットSL=(sn-1, ・・・,s1,s0)に対応するワード中のビット位置で指定される前記符号語Y'の要素の値を反転し前記符号語Y'を訂正する第29ステップと、前記訂正された符号語Y'から情報記号Z=(z0,z1,・・・,zL-2,zL-1)を抽出し誤り訂正後の情報データとして出力する第30ステップとを有する。
 上記により、スーパー・ハミング符号での誤り訂正符号処理の復号化をすることができる。
 また、プロセッサと、上記の方法を実行させる際に発行する命令として、検査記号の要素の符号語における位置の規則性に基づく、情報記号から符号語を生成するために情報記号を再配置する専用命令、復号された符号語から情報記号を抽出する専用命令、1ワード以下の長さの符号語に対する検査記号とシンドロームの計算を1サイクルで実行する専用命令、1ワード以下の長さの符号語の誤りの検出と訂正を1サイクルで実行する専用命令、及び2ワード以上の記号列の排他的論理和をとる規則性に基づく、2ワード以上の長さの記号列の検査記号とシンドロームの計算を効率よく実行するための補助命令、2ワード以上の長さの符号語の誤り検出・誤り訂正を効率よく実行するための補助命令を備えた命令メモリと、前記プロセッサが前記命令メモリの専用命令と補助命令を含む命令を発行し検査行列・シンドロームの計算または誤り訂正の計算をして結果のデータを出力する専用演算回路と、前記伝送する情報データ、前記受信した情報データ、前記結果のデータを入れるデータメモリと、前記プロセッサ、前記専用演算回路及び前記データメモリ間のデータ転送を行うデータバスとを備える。
 また、前記専用演算回路は、検査行列・シンドロームの計算をして前記結果のデータを出力する検査行列・シンドローム演算回路と、誤り訂正の計算をして前記結果のデータを出力する誤り訂正回路とを備える。
 上記により、スーパー・ハミング符号での誤り訂正符号処理を実装化した装置を提供することができる。
 また、長さL=2m+n(mは1以上の整数、nは2以上の整数)の情報記号X=(xL-1,xL-2,・・・,x1,x0)を情報データとして伝送する場合の誤り訂正符号処理方法であって、符号語Yの符号長がN=2m+n+2(m+n)、検査記号がQ=(qm+n-1,qm+n-2,・・・q1,q0),PP=(ppm+n-1,ppm+n-2,・・・pp1,pp0)で、前記情報記号XがMワード(M=2m、1ワードのビット長Lw=2n)の長さの場合、上記の前記情報記号列Vとして拡張した前記情報記号Xを使い、上記の方法を用いて得られる前記降順記号Qを前記検査記号Qとし、前記昇順記号PPを前記検査記号PPとして生成する第31ステップを有する。
 これにより、高次元パリティ符号での誤り訂正符号処理の符号化をすることができる。
 また、上記の符号語Yがデータ伝送され受信した情報データである符号語Y'= (y'0, ,y'1,・・・,y'N-2,y'N-1)を復号する誤り訂正符号処理方法であって、前記符号語Y'に含まれる受信した情報記号をX'=(x'L-1,x'L-2,・・・,x'1,x'0)、送信した検査記号Q,PPに対応する受信した検査記号がそれぞれQ'=(q'm+n-1,q'm+n-2,・・・q'1,q'0),PP'=(pp'm+n-1,pp'm+n-2,・・・pp1,pp0)とした場合、上記の前記情報記号列Vとして受信した情報記号X'を使い上記の方法を用いて得られる前記降順記号Qを検査記号SQ=(sqm+n-1, sqm+n-2,・・・sq1, sq0)とし、前記昇順記号PPを検査記号SPP=(sppm+n-1, sppm+n-2,・・・spp1, spp0)として生成する第32ステップと、受信した検査記号Q'と生成した検査記号SQの要素毎の排他的論理和を算出しシンドロームSSQ=(ssqm+n-1, ssqm+n-2,・・・ssq1, ssq0)を生成し、受信した検査記号PP'と生成した検査記号SPPの要素毎の排他的論理和を算出し、シンドロームSSP=(sspm+n-1, sspm+n-2,・・・ssp1, ssp0)を生成する第33ステップと、前記シンドロームSSQ,SSPから誤りの有無と種類を判定する第34ステップと、前記シンドロームSSQ,SSPの要素の少なくとも1ビットが1であり誤り有りと判定され、かつSSQとSSPの要素毎に排他的論理和をとった結果すべてのビットが1であり前記情報記号X'に1ビット誤りがあると判定された場合、前記シンドロームSSQの上位mビットをSSQHとし、下位nビットをSSQLとした時、前記情報記号X' においてSSQHで指定される位置のワード中で、SSQLで指定される位置の要素の値を反転し、前記情報記号X'を訂正する第35ステップとを有する。
 これにより、高次元パリティ符号での誤り訂正符号処理の復号化をすることができる。
 また、情報記号をxを変数(モジュロ2)とする多項式で表現した情報記号多項式にxk(生成多項式の次数k)を乗じたシフト情報記号多項式を生成多項式で除算し剰余を算出する第1の演算により、剰余の多項式の係数を検査記号として求め、情報記号と合わせて符号語を生成し、データとして送信するCRC符号化方法であって、前記第1の演算における前記シフト情報記号多項式の変数xの最高次からの各項を前記生成多項式にxのべき乗を乗算し引くことにより段階的に消去する各段の第2の演算を前記シフト情報記号多項式の係数を並べたベクトルから始まり各段の途中段階の剰余の係数を並べたベクトルに対する同一の行列Gとの積で表現し、所定の回数の前記行列Gのみの積を予め算出して前記第2の演算を前記所定の回数繰り返した後の前記第1の演算の部分演算単位を表現する部分演算行列とするステップ1と、前記シフト情報記号多項式のベクトルと前記部分演算行列との積を途中段階の剰余のベクトルとして求めることから始めて前記所定の回数ごとの途中段階の剰余のベクトルと前記部分演算行列との積を次の途中段階の剰余のベクトルとして順次求める演算を行い、検査記号を生成するステップ2とを有する。
 また、符号語を生成しデータとして送信する上記のCRC符号化方法であって、1ワードのビット数が前記検査記号のビット長kの自然数倍mで前記情報がMワードの長さの時、前記ステップ1において前記部分演算行列は前記所定の回数をmk,(m-1)k,・・・,k(kの倍数)としてm個の積行列Gmk,G(m-1)k,G(m-2)k,・・・,Gkであり、前記ステップ2において前記シフト情報記号多項式のベクトルから始めて前記所定の回数ごとの途中段階の剰余のベクトルを順次求める演算を行うに替えて、前記シフト情報記号多項式のベクトルをワード毎にわけワード毎に一括した演算を順次行うに際して、1ワード中のビット幅k単位のk個の要素を持つベクトルにわけてワード中の最初のビット幅のベクトルに対して積行列Gmkを乗じた結果のベクトルの要素とひとつ前のワードに対する前記一括した演算の結果のベクトルの要素との排他的論理和をとったベクトルの要素と、ワード中の次以降のビット幅の位置のk個の要素を持つ(m-1)個のベクトルに対してそれぞれG(m-1)k,G(m-2)k,・・・,Gkを乗じた結果のベクトルの要素との排他的論理和をとりワード中の前記一括した演算として行うことを特徴とする。
 上記により、CRC符号での誤り訂正符号処理の符号化をすることができる。
 また、上記の符号語がデータ伝送され受信したデータである受信符号語を復号するCRC復号化方法であって、前記受信符号語を多項式で表現した受信符号語多項式を上記の前記生成多項式により除算し剰余を算出する第3の演算により、剰余の多項式の係数をシンドロームとして生成する際に、前記第3の演算における前記受信符号語多項式の変数xの最高次からの各項を前記生成多項式にxのべき乗を乗算し引くことにより段階的に消去する各段の第4の演算において、前記受信符号語多項式のベクトルと前記部分演算行列との積を途中段階の剰余のベクトルとして求めることから始めて前記所定の回数ごとの途中段階の剰余のベクトルと上記の前記部分演算行列との積を次の途中段階の剰余のベクトルとして順次求める演算を行い、シンドロームを生成するステップ10と、上記の前記部分行列の逆行列を予め算出するステップ11と、前記シンドロームから誤りの有無と種類を判定するステップ12と、前記シンドロームにおいて1であるビットの総数が1個であり、前記受信符号語の下位から前記検査記号のビット幅中に1ビット誤りがあると判定された場合、前記シンドロームの1であるビット位置で指定される前記受信符号語のビットの値を反転し前記符号語を訂正するステップ13と、前記シンドロームにおいて1であるビットの総数が2個以上であり、前記シンドロームに前記逆行列を乗ずることを繰り返した結果、t回目(tは1以上の整数)の結果のシンドロームにおいて1であるビットの総数が1個となり、前記検査記号のビット幅を単位幅として前記受信符号語の下位からt+1番目の位置のビット幅中に1ビット誤りがあると判定された場合、前記受信符号語の下位からt+1番目の位置のビット幅中の前記t回目の結果のシンドロームの1であるビット位置で指定されるビットの値を反転し前記符号語を訂正するステップ14とを有する。
 また、上記の符号語がデータ伝送され受信したデータである受信符号語を復号する上記のCRC復号化方法であって、1ワードのビット数が前記検査記号のビット長kの自然数倍mで、前記情報がMワードの長さの時、前記ステップ10において、前記部分演算行列は前記所定の回数をmk,(m-1)k,・・・,k(kの倍数)としてm個の積行列Gmk,G(m-1)k,G(m-2)k,・・・,Gkであり、前記ステップ10において、前記受信符号語多項式のベクトルから始めて前記所定の回数ごとの途中段階の剰余のベクトルを順次求める演算を行うに替えて、前記受信符号語多項式のベクトルをワード毎にわけワード毎に一括した演算を順次行うに際して、1ワード中のビット幅k単位のk個の要素を持つベクトルにわけてワード中の最初のビット幅のベクトルに対して積行列Gmkを乗じた結果のベクトルの要素とひとつ前のワードに対する前記一括した演算の結果のベクトルの要素との排他的論理和をとったベクトルの要素と、ワード中の次以降のビット幅の位置のk個の要素を持つ(m-1)個のベクトルに対してそれぞれG(m-1)k,G(m-2)k,・・・,Gkを乗じた結果のベクトルの要素との排他的論理和をとりワード中の前記一括した演算として行い、上記の逆行列はGkの逆行列G-kであることを特徴とする。
 上記により、CRC符号での誤り訂正符号処理の復号化に応用することができる。
 また、プロセッサと、上記の方法を実行させる際に発行する命令として、前記ステップ2または前記ステップ10においてそれぞれ前記検査記号または前記シンドロームを算出するにおけるワード毎に一括した演算をする命令、及び、前記ステップ13または前記ステップ14において前記符号語の誤り訂正を行う命令を備えた命令メモリと、前記プロセッサが前記命令メモリの命令を発行し、検査行列・シンドロームの計算または誤り訂正の計算をして結果のデータを出力する専用演算回路と、前記伝送する情報データ、前記受信した情報データ、前記結果のデータを入れるデータメモリと、前記プロセッサ、前記専用演算回路及び前記データメモリ間のデータ転送を行うデータバスとを備える。
 また、前記専用演算回路は、検査行列・シンドロームの計算をして前記結果のデータを出力する検査行列・シンドローム演算回路と、誤り訂正の計算をして前記結果のデータを出力する誤り訂正回路とを備える。
 また、前記データメモリは、誤り位置計算のためのLook-up Tableを保持している表引き用領域を含む。
 また、前記専用演算回路は、再構成可能ハードウェアで構成されている。
 上記により、CRC符号での誤り訂正符号処理を実装化した装置を提供することができる。
 また、送信システムから送られてくる符号語を受信し、符号語数をカウントするステップ100と、ビット誤り回数を、訂正可能な誤りを検出した場合にカウントするステップ110と、前記ビット誤り回数と前記符号語数との商をビット誤り率としたとき、前記ビット誤り率がビット誤り率の上限を超えた場合には、誤り訂正レベルを上げ、前記誤り訂正レベルが前記誤り訂正レベルの上限を超えた場合には、前記誤り訂正レベルの上限を前記誤り訂正レベルとするとともに、前記誤り訂正レベルを前記送信システムに通知するステップ120と、前記符号語数が誤り訂正レベル変更に必要な最小受信回数を超えかつ前記ビット誤り率がビット誤り率の下限を下回った場合には、前記誤り訂正レベルを下げ、前記誤り訂正レベルが前記誤り訂正レベルの下限を下回った場合には、前記誤り訂正レベルの下限を前記誤り訂正レベルとするとともに、前記誤り訂正レベルを前記送信システムに通知するステップ130とを含む。
 これにより、ビットの誤り率に対応して、適応的に符号長の長さを変更できるので、通信に必要となる電力量を削減することができる。
 本発明は、誤りの発生した位置を容易に特定でき、仕様変更や伝送路の伝送路誤り率の変化に柔軟に対応することができ、かつ、消費電力量の少ない誤り訂正符号処理方法及びその装置を提供することができる。
図1は、誤り訂正を伴う情報伝送の手順を説明する図である。 図2は、符号化の手順を説明する図である。 図3は、復号及び誤り訂正の手順を説明する図である。 図4は、従来のハミング符号の検査行列の例を示す図である。 図5は、従来のハミング符号の生成行列の例を示す図である。 図6は、従来のハミング符号での符号語の計算例を示す図である。 図7は、従来のハミング符号での1ビット誤り発生位置の特定方法の例を示す図である。 図8は、従来の拡大ハミング符号での検査行列の例を示す図である。 図9は、従来の拡大ハミング符号での1ビット誤り発生位置の特定方法の例を示す図である。 図10は、汎用プロセッサ上のソフトウェアによる従来の誤り訂正符号処理の実装を示す図である。 図11は、汎用プロセッサと専用周辺回路(ASIC)を用いた従来の誤り訂正符号処理の実装を示す図である。 図12は、従来の拡大ハミング符号でのシンドロームとビット誤り位置の対応表の例を示す図である。 図13は、本発明に係る、スーパー・ハミング符号での検査行列の例を示す図である。 図14は、本発明に係る、スーパー・ハミング符号での検査記号及びパリティの計算式を示す図である。 図15は、本発明に係る、スーパー・ハミング符号での情報記号と符号語の対応関係の例を示す図である。 図16は、本発明に係る、スーパー・ハミング符号での検査記号の計算式の例を示す図である。 図17は、本発明に係る、スーパー・ハミング符号での生成行列の導出手順(1)を示す図である。 図18は、本発明に係る、スーパー・ハミング符号での生成行列の導出手順(2)を示す図である。 図19は、本発明に係る、スーパー・ハミング符号での生成行列の導出手順(3)を示す図である。 図20は、従来の拡大ハミング符号での検査行列の計算パターンの例を示す図である。 図21は、本発明に係る、スーパー・ハミング符号での検査記号の計算パターンの例を示す図である。 図22は、本発明に係る、誤り訂正処理装置を示す図である。 図23は、本発明に係る、1ワードの長さが16ビットの場合の各ビットのインデックスの割り当て方法を示す図である。 図24は、本発明に係る、4ワードからなる符号語での検査記号の埋め込み位置を示す図である。 図25は、本発明に係る、スーパー・ハミング符号での情報記号再配置命令(1)を示す図である。 図26は、本発明に係る、スーパー・ハミング符号での情報記号再配置命令(2)を示す図である。 図27は、本発明に係る、スーパー・ハミング符号での情報記号再配置命令(3)を示す図である。 図28は、本発明に係る、スーパー・ハミング符号での情報記号再配置命令(1)の適用例を示す図である。 図29は、本発明に係る、スーパー・ハミング符号での情報記号再配置命令(2)の適用例を示す図である。 図30は、本発明に係る、スーパー・ハミング符号での情報記号再配置命令(3)の適用例(1) を示す図である。 図31は、本発明に係る、スーパー・ハミング符号での情報記号再配置命令(3)の適用例(2) を示す図である。 図32は、本発明に係る、バレルシフタの実装方法の例を示す図である。 図33は、本発明に係る、スーパー・ハミング符号での情報記号抽出命令(1)を示す図である。 図34は、本発明に係る、スーパー・ハミング符号での情報記号抽出命令(2)を示す図である。 図35は、本発明に係る、スーパー・ハミング符号での情報記号抽出命令(3)を示す図である。 図36は、本発明に係る、スーパー・ハミング符号での情報記号の抽出命令(1)の適用例を示す図である。 図37は、本発明に係る、スーパー・ハミング符号での情報記号抽出命令(2)の適用例を示す図である。 図38は、本発明に係る、スーパー・ハミング符号での情報記号抽出命令(3)の適用例(1) を示す図である。 図39は、本発明に係る、スーパー・ハミング符号での情報記号抽出命令(4)の適用例(2) を示す図である。 図40は、本発明に係る、スーパー・ハミング符号での検査記号及びシンドロームの計算式を示す図である。 図41は、本発明に係る、スーパー・ハミング符号での検査記号及びシンドロームの計算パターンの例を示す図である。 図42は、本発明に係る、スーパー・ハミング符号での1ビット誤り訂正回路の図である。 図43は、本発明に係る、スーパー・ハミング符号での複数のワードに格納された情報記号に対する検査記号の計算式を示す図である。 図44は、本発明に係る、スーパー・ハミング符号での複数のワードに格納された情報記号に対する検査記号の計算手順を示す図である。 図45は、本発明に係る、スーパー・ハミング符号での複数のワードに格納された符号語のシンドロームの計算式を示す図である。 図46は、本発明に係る、スーパー・ハミング符号での複数のワードに格納された符号語のシンドロームの計算手順を示す図である。 図47は、本発明に係る、高次元パリティ符号での検査記号及びシンドロームの計算式を示す図である。 図48は、本発明に係る、高次元パリティ符号での検査記号及びシンドロームの計算パターンの例を示す図である。 図49は、本発明に係る、適応的符号語長調整型通信方式での符号語長調整手続きの例を示す図である。 図50は、従来のCRC符号での検査記号の計算フローを示す図である。 図51は、本発明に係る、生成多項式x8+x2+x+1を表す行列Gを示す図である。 図52は、本発明に係る、G8を表す行列を示す図である。 図53は、本発明に係る、G16を表す行列を示す図である。 図54は、本発明に係る、CRC符号での×Gm専用演算器(nサイクル版)の構成を示す図である。 図55は、本発明に係る、図51における(G8T表の例を示す図である。 図56は、本発明に係る、CRC符号での×Gm専用演算器(1サイクル版)の構成を示す図である。 図57は、本発明に係る、CRC符号での検査記号計算回路の構成を示す図である。 図58は、本発明に係る、CRC符号での誤り訂正回路の構成を示す図である。 図59は、本発明に係る、G-8を表す行列を示す図である。 図60Aは、本発明に係る、提案手法(1)の構成を示す図である。 図60Bは、本発明に係る、提案手法(2)の構成を示す図である。 図60Cは、本発明に係る、提案手法(3)の構成を示す図である。 図61は、本発明に係る、図60Cにおける×Gm専用演算器の構成を示す図である。 図62は、本発明に係る、符号語長及び生成多項式の調整手続きの例(受信側)を示す図である。
 本発明の実施の一形態を説明する。
 一般に広く用いられている組織符号を用いた拡大ハミング符号に基づく誤り訂正方式は高速化及び低電力化に関して問題がある。本願発明者は、その原因が検査行列から生成行列を求めるのが容易な組織符号を採用しているためであることに着目した。検査の容易さを考えると、検査行列の各行の並び方を工夫し、シンドロームから誤り位置を簡単に特定できるようにする必要があるが、そのためには、たとえば、検査行列の各行に単調性を持たせて、降順に並べればよいが、このような並べ方をすると、検査行列が式4の形式を保てなくなくなるので、任意のnに対して、与えられた検査行列から式3の条件を満たす生成行列を求めるのは簡単ではない。また、符号長を変えるたびに生成行列を求めなおす必要がある。
 生成行列の決定が容易で、かつ専用命令での実行が効率良く実行できるように、拡大ハミング符号方式を改良する。改良された符号方式を、スーパー・ハミング符号と呼ぶことにする。スーパー・ハミング符号で用いる検査行列は、列の間に単調性があり、シンドロームからビット誤りが発生した位置を非常に容易に特定できる。したがって誤り訂正が高速化でき、消費電力量も削減できる。n=4の場合のスーパー・ハミング符号の検査行列の例を図13に示す。スーパー・ハミング符号での符号化及び復号化方法は次の通りである。以下では、符号長をN=2n、情報記号の長さをL=2n-n-1とする。検査記号の長さはn+1である。送信する情報記号Xは式7で表される。
Figure JPOXMLDOC01-appb-M000007
 情報記号Xから、符号語Yを次のようにして生成する。まず、情報記号Xを式8のように拡張して符号語X'に変換する。
Figure JPOXMLDOC01-appb-M000008
 XとX'との対応関係は次のとおりである。まず、Xの要素を、右側(添字の値の小さい方)から、1個、3個、7個、...、2n-1-1個の、n-1個のグループに分割し、それぞれをXi(i=0,・・・,n-2)とする。各Xi(i=0,・・・,n-2)は、式9のようになる。
Figure JPOXMLDOC01-appb-M000009
 次に、各Xi(i=0,・・・,n-2)の右側に0を1個ずつ追加し最後にさらに0を2個追加し、X'とする。X'は式10で表される。この段階では、検査記号は付加されていない。
Figure JPOXMLDOC01-appb-M000010
 ここで、0を追加した位置(要素のインデックス)は、右から順に0,20,21,・・・,2n-1である。また、L=2n-n-1であることから、X'の要素数は、N=L+n+1=2nとなる。
 次に、X'の検査記号Q=[qn-1,qn-2,・・・,q0]及び符号語全体のパリティpを図14の式を用いて計算する。
 符号化は、式10で、ベクトルX'に0を挿入した要素、x'i(i=20,21,・・・,2n-1)を検査記号qi(i=0,1,・・・,n-1)で置き換えることによって行う。さらに、x0(最も右にある0)をこのようにして得られたX'の全ビットの排他的論理和(パリティ)pで置き換えて符号語Yとする。符号語Yは式11で表される。
Figure JPOXMLDOC01-appb-M000011
 情報記号Xと符号語Yの対応関係を図15に示す。また、n=4の場合の検査記号及びパリティの計算式の例を図16に示す。
 従来手法であるハミング符号や拡大ハミング符号では、符号語を構成する際に、図2に示すように、情報記号のブロックと検査記号のブロックを分離して配置している。たとえば、拡大ハミング符号の場合、情報記号X=[xL-1,xL-2,・・・,x0]の検査記号をQ=[qn-1,qn-2,・・・,q0]とすると、符号語Y は式12のような構成になる。
Figure JPOXMLDOC01-appb-M000012
 この構成は、符号語を生成する場合及び復号して情報記号を抽出する場合には容易であるが、先に述べたように、1ビット誤りが発生したビットの位置の特定が容易に行えない。
 本発明では、符号語の2iのインデックスの位置に検査記号を配置する。これが本発明の特徴の一つであり、これにより、シンドロームの値から誤りの発生位置が容易に特定できる。
 このようにして符号化することは、次の(Step1)~(Step3)によって得られる生成行列G(3)を用いて符号化することと等価である。
(Step1)拡張された、大きさ2n×(2n-1)の生成行列G(1)を式13のようにして構成する。
Figure JPOXMLDOC01-appb-M000013
 ここで、Imは式5に示されたm×mの単位行列、HTは式4の検査行列の転置行列である。n=4の場合の生成行列G(1)の例を図17に示す。
(Step2)生成行列G(1)の行を次のように入れ替える。生成行列G(1)のHTに相当する部分行列の行ベクトルを2進数とみなしたとき上から下へと降順に並ぶように生成行列G(1)全体の各行を入れ替える。このようにして得られた生成行列をG(2)とする。n=4の場合の生成行列G(2)の例を図18に示す。
(Step3)対角要素が1になるように生成行列G(2)の列を入れ替える。この操作を加えた生成行列をG(3)とする。n=4の場合の生成行列G(3)の例を図19に示す。
 生成行列G(3)を用いて符号化された符号語に含まれる情報記号は、単位行列を用いて計算が行われているので、式5を用いた計算結果と同じ値になる。また、検査記号の計算は、検査行列の転置の単位行列の部分には0が入力されるので、式5を用いて計算される検査記号と同じ値になる。生成行列G(3)を用いて符号化された結果は、式5を用いて計算した符号語の要素の順序を入れ替えた記号列になっている。スーパー・ハミング符号での復号、誤り検出、誤り訂正の手順は、拡大ハミング符号での処理手順とほぼ同じである。受信した符号語Y'に対して、拡大ハミング符号の場合と同様に検査行列を適用して復号し、1ビット誤りの有無、2ビット誤りの有無を検査する。1ビット誤りが発見された場合には、シンドロームを用いて伝送誤りの位置を特定する。その際、検査行列の各列を2進数とみなすと、左から右に降順に並んでいるので、ビットパターンの比較や複雑な対応表などを用いることなく、伝送誤りが発生した位置が特定できる。したがって、拡大ハミング符号よりも誤り訂正は容易に行える。最後に、符号語の中に埋め込んであった検査記号を取り除けば、訂正されたデータが得られる。本方式は1ビット誤り訂正能力と2ビット誤り検出能力を持ち、拡大ハミング符号の誤り訂正・誤り検出能力と等価である。
 以上、スーパー・ハミング符号での符号化及び復号化方法の手順をまとめると、以下の通りとなる。
 長さL=2m+n(mは1以上の整数、nは2以上の整数)の情報記号列V=(vL-1,vL-2,・・・v1,v0)をデータとして処理を行う場合、情報記号列Vの要素viの添字の大きいほうから降順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した情報記号列Vの全部で2m+n-1個の異なる要素の排他的論理和を要素とし、jの降順に並べた降順記号Q=(qm+n-1,qm+n-2,・・・q1,q0)、若しくは情報記号列Vの要素viの添字の小さいほうから昇順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した情報記号列Vの全部で2m+n-1個の異なる要素の排他的論理和を要素とし、jの降順に並べた昇順記号PP=(ppm+n-1, ppm+n-2,・・・pp1, pp0)のいずれかまたは両方を算出する際に、情報記号列VがMワード(M=2m、1ワードのビット長Lw=2n)の長さでi番目のワードの情報記号列をWi=(vi,Lw-1,vi,Lw-2,・・・,vi,1,vi,0)とし情報記号列Vをワードの情報記号列を降順に並べたもの(WM-1,WM-2, ・・・, W1,W0)で表した時、i番目の情報記号列Wiの要素vi,j(j=0,1,2,・・・,2n-1)から添字jの大きいほうから降順に2k(k=0,1,2,・・・,n-1)個を1組として2k個おきに選択した情報記号列Wiの全部で2n-1個の異なる要素の排他的論理和を要素としkの降順に並べた降順記号QLi=(qi,n-1,qi,n-2,・・・qi,1,qi,0)、若しくは情報記号列Wiの要素vi,j(j=0,1,2,・・・,2n-1)から添字jの小さいほうから昇順に2k(k=0,1,2,・・・,n-1)個を1組として2k個おきに選択した情報記号列Wiの全部で2n-1個の異なる要素の排他的論理和を要素としkの降順に並べた昇順記号PPLi=(ppi,n-1, ppi,n-2,・・・ppi,1, ppi,0)のいずれかまたは両方を算出し、情報記号列Wiのすべての要素の排他的論理和をパリティpiとして算出する第1ステップと、降順記号QLiの要素毎に添字i=0,1,2,・・・,M-1のすべてについて排他的論理和を算出し、降順記号Qの下位nビットのQL=(qn-1,qn-2,・・・q1,q0)、若しくは昇順記号PPLiの要素毎に添字i=0,1,2,・・・,M-1のすべてについて排他的論理和を算出し、昇順記号PPの下位nビットのPPL=(ppn-1, ppn-2,・・・pp1, pp0)のいずれかまたは両方として生成する第2ステップと、パリティpiを並べた要素列Pw=(pM-1,pM-2, ・・・, p1, p0)の要素piの添字iの大きいほうから降順に2k(k=0,1,2,・・・,m-1)個を1組として2k個おきに選択した全部で2m-1個の異なる要素の排他的論理和を算出し、降順記号Qの上位mビットのQH=(qm+n-1,qm+n-2,・・・qn+1,qn)、若しくは要素piの添字iの小さいほうから昇順に2k(k=0,1,2,・・・,m-1)個を1組として2k個おきに選択した全部で2m-1個の異なる要素の排他的論理和を算出し、昇順記号PPの上位mビットのPPH=(ppm+n-1,ppm+n-2,・・・ppn+1,ppn)のいずれかまたは両方を生成する第3ステップと、生成された降順記号Q若しくは昇順記号PPのいずれかまたは両方を、検査記号或いはシンドロームとして出力する第4ステップとを有する方法を、符号化方法及び復号化方法の共通の処理として、長さL=2h-h-1(hは2以上の整数)の情報記号X=(xL-1,xL-2,・・・,x1,x0)を情報データとして伝送する場合、符号語Yの符号長をN=2h、検査記号をQ=(qh-1,qh-2,・・・q1,q0)及びパリティpとした時、符号語Yの符号長が1ワード以下の場合は、長さNの記号X'の要素x'i(i=0,1,2,・・・,2h-1)の内の添字iが0,20,21,・・・,2h-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に情報記号Xの要素を右から並べ拡張した記号X'=(xL-1,xL-2,・・・,xL-N/2+1,0,xL-N/2,・・・,x10,x9,x8,x7,x6,x5,x4,0,x3,x2,x1,0,x0,0,0,0)の要素x'i(i=0,1,2,・・・,2h-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2h-1個の異なる要素の排他的論理和を算出し、検査記号Qの要素qj(j=0,1,2,・・・,h-1)とし検査記号のデータとして生成する第5ステップと、計算されたqi及び情報記号のxiの全要素の排他的論理和を算出し検査記号の内のパリティpとしデータとして生成する第6ステップとを有し、符号語YがMワード(M=2m、1ワードのビット長Lw=2n、mは1以上の整数でh=m+n)の長さの場合は、長さNの記号X'の要素x'i(i=0,1,2,・・・,2m+n-1)の内の添字iが0,20,21,・・・,2m+n-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に情報記号Xの要素を右から並べ拡張した記号X'=(xL-1,xL-2,・・・,xL-N/2+1,0,xL-N/2,・・・,x10,x9,x8,x7,x6,x5,x4,0,x3,x2,x1,0,x0,0,0,0)の要素x'i(i=0,1,2,・・・,2m+n-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した全部で2m+n-1個の異なる要素の排他的論理和をとり検査記号Qの要素を算出する際に、共通の処理において情報記号列Vとして拡張した記号X' を使い得られる降順記号Qを検査記号Qとし検査記号のデータとし、得られる要素列Pwの全ての要素の排他的論理和をパリティpとして生成する第7ステップを有し、拡張した記号X'の追加された0の位置にある要素x'i(i=0,20,21,・・・,2h-1)を添字iの昇順にパリティp,qk(k=0,1,2,・・・,h-1)で置き換えることにより符号語Y=(xL-1,xL-2,・・・,xL-N/2+1,qh-1,xL-N/2,・・・,x10,x9,x8,x7,x6,x5,x4,q3,x3,x2,x1,q2,x0,q1,q0,p)をデータとして生成する第8ステップとを有する方法によって符号化処理がされ、符号語Yがデータ伝送され受信した情報データである符号語Y'=(y'N-1,y'N-2,・・・,y'1,y'0)を復号する場合、符号語Y'の符号長が1ワード以下の場合は、受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2h-1個の異なる要素の排他的論理和を算出しシンドロームS=(sh-1,sh-2,・・・s1,s0,r)の要素sj(j=0,1,2,・・・,h-1)として生成する第9ステップと、符号語Y'の要素y'iの全要素の排他的論理和を算出しシンドロームSの要素rとしデータとして生成する第10ステップと、シンドロームから誤りの有無と種類を判定する第11ステップと、r=1で1ビット誤りと判定された場合は、(sh -1, sh -2,・・・s1,s0)で指定される位置の符号語Y'の要素の値を反転し符号語Y'を訂正する第12ステップと、訂正された符号語Y'から情報記号Z=(zL-1,zL-2,・・・,z1,z0)を抽出し誤り訂正後の情報データとして出力する第13ステップとを有し、符号語Y'がMワードの長さの場合は、受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,n-1)個を1組として2j個おきに選択した全部で2n-1個の異なる要素の排他的論理和を算出する際に、共通の処理において情報記号列Vとして符号語Y'を使い得られる降順記号Qの要素をシンドロームS=(sm+n-1,sm+n-2,・・・,sn, ,sn-1, ・・・,s1,s0,r)の要素sj(j=0,1,2,・・・,m+n-1)とし、得られる要素列Pwの全ての要素の排他的論理和をシンドロームSの要素rとして生成する第14ステップと、シンドロームから誤りの有無と種類を判定する第15ステップと、r=1で1ビット誤りと判定された場合は、シンドロームSの上位mビットSH=(sm+n-1,sm+n-2,・・・,sn)に対応するワード番号及びシンドロームSのrのビット位置を除く下位nビットSL=(sn-1, ・・・,s1,s0)に対応するワード中のビット位置で指定される符号語Y'の要素の値を反転し符号語Y'を訂正する第16ステップと、訂正された符号語Y'から情報記号Z=(zL-1,zL-2,・・・,z1,z0)を抽出し誤り訂正後の情報データとして出力する第17ステップとを有する方法によって復号化処理がされる。ハミング符号及び拡大ハミング符号での検査記号及びシンドロームの計算式は高い規則性を持たない(図4、図5、図8参照)。そこで、スーパー・ハミング符号で符号化の方法を工夫することにより、図13及び図19のような規則性の高い計算式を用いてシンドロームの計算が行え、かつビット誤りが発生した位置の特定が容易に行える。n=4の場合について、拡大ハミング符号及びスーパー・ハミング符号で演算に用いる情報記号及び情報記号を拡張した記号のビット位置を、それぞれ図20及び図21に示す。図20及び図21から明らかなように、スーパー・ハミング符号の演算式は同じパターンの繰り返し構造になっており、符号語の長さが変化しても、同じ計算式を繰り返して適用すれば良いことがわかる。また、この計算パターンを命令として用意しておけば、効率
良く検査記号やシンドロームの計算が行える。
 なお、情報記号の入力xL-1,xL-2,・・・,x0を逆順にして、x0,x1,・・・,xL-1とし、検査記号の記号列qh-1,qh-2,・・・q1,q0の計算式と同じ形式の記号を検査記号として同様の処理が可能である。すなわち、図21においては演算に用いる情報記号を拡張した記号のビット位置と演算に用いないビット位置を反転したことに相当する。
 このように、スーパー・ハミング符号は符号長に対する柔軟性が高いので、この特徴を活かして、通信時の伝送誤り率に応じて最適な符号長を用いた通信システムを構築できる。たとえば、伝送誤り率が低い場合には、符号長を長くして伝送効率を上げることができ、処理時間のオーバーヘッドの減少と消費電力量の削減が可能になる。また、伝送誤り率が高い場合には、符号長を短くして、ビット誤りに対する耐性を向上させることが可能になる。
 (実施の形態1)
 拡大ハミング符号などの誤り訂正符号では、符号化を行うときに、情報記号に対応する検査記号を計算する。また、受信した符号語を復号し、誤り訂正を行うために、シンドロームを計算する。これらの計算では、ビットベクトルの内積の計算が必要になる。この計算は、2つのベクトルの対応するビットごとの論理積とその結果の全ビットの2を法とした加算によって計算されるが、この演算は、排他的論理和演算を用いることによって行える。しかし、汎用計算機には、このような演算は命令としては用意されていないので、検査ベクトルやシンドロームの計算は、複数の演算命令や制御命令を組み合わせて実行せざるを得ない。そのため、検査記号やシンドロームの計算には、長い実行サイクル数が必要となる。また、誤り訂正の際にも、シンドロームの値を用いて、誤りが生じた位置を特定する必要があるが、汎用計算機にはこの演算に適した命令が含まれていないので、誤り位置の特定には長い実行サイクルが必要である。
 そこで、検査記号やシンドロームの計算を少ない実行サイクル数で実行できる命令や、誤り訂正を少ない実行サイクルで実行できる命令を備えた図22に示すような特定応用分野向きプロセッサ(ASIP: Application Specific Instruction-set Processor)を用いる誤り訂正符号処理装置220を実施例のひとつとして以下に説明する。これにより、データの符号化、復号、誤り訂正、誤り検出などの処理を、効率良くかつ少ない消費電力量で実行できる。
 図22において、誤り訂正符号処理装置220はRISC(Reduced Instruction Set Computer:縮小命令セットコンピュータ)プロセッサ222、検査行列・シンドローム演算回路223及び誤り訂正回路224を含み、これらは内部バス227でつながっている。また、誤り訂正符号処理装置220の外部には命令メモリ225があり、ここからRISCプロセッサ222に命令を読み出し実行する。また、データメモリ226にはデータが保存されている。実行する命令の必要に応じて誤り訂正符号処理装置220にデータバス228を通じてデータメモリ226から読みだされたデータが入力され検査行列・シンドローム演算回路223及び誤り訂正回路224等の演算に使用された後、演算結果を、データバス228を通じてデータメモリ226に保存する。データメモリ226に書き込み或いは読み出される外部からの或いは外部へのデータは、データバス228を介し入出力インターフェース(図示せず)を通じ誤り訂正符号処理装置220の外部とやりとりされる。
 RISCプロセッサ222は命令として以下の(a)から(f)で示す専用命令と補助命令を命令メモリ225に備える。なお、ここでプロセッサをRISCプロセッサとしたが、CISCプロセッサなどのプロセッサでもよい。
 (a)情報記号から符号語を生成するために情報記号を再配置する専用命令
 プロセッサの1ワードのビット長をNw=2nとし、ビットのインデックスは、右端を0とし、左端をNw-1とする。Nw=16の場合のインデックスの付け方を図23に示す。式10で、符号語に検査記号及びパリティを埋めていく位置は、ビットのインデックスが0もしくは2のべき乗になっている。1ワードが16ビットの場合(n=4)に、4ワードからなるデータに一連のインデックスを割り当てる場合を考える。最も小さいインデックスを持つ最初のワードの中には、n+1個の検査記号及びパリティが埋め込まれる。2ワード目の右端のインデックスは2n=16なので、この位置に検査記号が埋め込まれる。また同様に、3ワード目の右端のインデックスは2n+1=32なので、この位置にも検査記号が埋め込まれる。しかし、4ワード目に含まれるビットのインデックスは48~63であり、いずれも2のべき乗ではないので、4ワード目には検査記号が埋め込まれない。この例について、検査記号が埋め込まれる位置を図24に示す。Nwの値が異なっても、検査記号が埋め込まれる位置は、同様の規則に従う。
 まとめると、検査記号が埋め込まれる位置は次の(1)~(3)のような規則に従うことが知られる。
(1)1ワード目にはn+1個の検査記号が埋め込まれる。
(2)2ワード目以降で検査記号が埋め込まれる場合には、必ずワードの右端になる。
(3)4ワード目以降では、検査記号が埋め込まれないワードが存在する。
 上記の規則を考慮すると、図25~図27に示すブロック図の機能を持つ3種類の命令を用いれば、任意の長さの情報記号を符号語の形式に変換できることが知られる。なお、図25~図27は、Nw=16の場合を例として示してあるが、Nwが2のべき乗であれば、より長い語長であっても同様の3種類の命令で処理が可能である。これら3種類の命令を用いて、1ワードの長さが16ビットの場合に、4ワードを用いて表現される、式7の形の57ビットの情報記号Xを式8の形式の拡張された情報記号X'に変換する例を、図28~図31に示す。X'のワード0を得るためには、図25の再配置命令(1)を用いれば良い。X'のワード1及びワード2を得るためには、図26の再配置命令(2)を用いれば良い。X'のワード3を得るためには、図27の再配置命令(3)を用いれば良い。なお、X'の要素のサフィックスについては通し番号ではなく、各ワード内の番号で表示している。図26及び図27で用いられているバレルシフタは、入力された2ワード分のビット列[a2n-1,・・・,a1,a0]から1ワード分のビット列[bn-1,・・・,b1,b0]を効率良く切り出す演算器である。このとき、シフト量をk(0≦k<n)とすると、出力は[bn-1,・・・,b1,b0]=[an+k-1,・・・,ak+1,ak]となる。バレルシフタの実装例を図32に示す。図32の中央部の正方形の箱は、2対1のマルチプレクサであり、制御信号の値によって、2つの入力のうちの一方を選択する。
 Xのワード長が4よりも長い場合にも同様に、図25~27の3種類の再配置命令を用いることにより、情報記号の再配置を効率良く行える。
 (b)復号された符号語から情報記号を抽出する専用命令
 前記(a)で述べた、検査記号が埋め込まれる位置に関する規則を考慮すると、図33~図35に示すブロック図の機能を持つ3種類の命令を用いれば、任意の長さの符号語から情報記号を抽出できる。これら3種類の命令のうち、図35の情報記号抽出命令行目(3)は、図27の情報記号再配置命令(3)と同じ機能を持っているので、図27の命令を両方の目的に用いてもよい。図33~図35は、1語が16ビットのプロセッサでの命令の機能を示しているが、プロセッサの語長が2のべき乗であれば、より長い語長であっても同様の3種類の命令で処理が可能である。たとえば、1ワードの長さが16ビットの場合に、4ワード(64ビット)で表現される符号語から57ビットの情報記号を抽出する場合には、図33~図35に示す情報記号抽出命令を用いれば良い。これら3種類の命令を用いて4ワードの符号語から情報記号を抽出する方法を、図36~図39に示す。符号語がさらに長い場合にも、これら3種類の命令を用いることにより、情報記号の抽出を効率良く行える。
 (c)1ワード以下の長さの符号語に対する検査記号とシンドロームの計算を1サイクルで実行する専用命令
 1ワードのビット数がNwの場合、L=2n-n-1以下の長さの情報記号を入力し、検査記号及びパリティまたはシンドロームを1サイクルで計算する専用命令は容易に実現できる。このとき、検査記号の計算では図14のように、また、シンドロームの計算では図40のように、入力の全ビットの排他的論理和p及びrを同時に計算しておくと、2ワード以上の長さの記号列の検査記号とシンドロームの計算で必要となる情報も同時に計算できる。演算対象となるビットの位置を図41に示す。出力は、pまたはrを含めてもn+1ビットなので、1ワード(Nw=2nビット)に十分に納まる。
 (d)1ワード以下の長さの符号語の誤りの検出と訂正を1サイクルで実行する専用命令
 前記(c)の専用命令で計算されたシンドロームS=[sn-1,sn-2,・・・,s1,s0,r]を用いて、誤り検出を行うためには、拡大ハミング符号の場合と同様に、表1に示すようにして誤りの有無と種類を判定できる。表1で、tは、ベクトル(sn-1,sn-2,・・・,s1,s0)の全ビットの論理和を表わす。
Figure JPOXMLDOC01-appb-T000001
  1ビット誤りの訂正を行う命令は、たとえば、図42に示す回路を用いれば容易に実装できる。
 (e)上記(c)の命令を繰り返し用いて、2ワード以上の長さの記号列の検査記号とシンドロームの計算を効率良く実行するための補助命令
 式10で表現される記号列の長さが2ワード分以上の長さを持つ場合には、検査記号(またはシンドローム)は次のようにして計算すれば良い。まず、検査記号の計算について説明する。1ワードのビット長N=2nとする。また、符号化すべき記号列の長さをM=2mワードとする。ワードの番号を、0からM-1とする。i番目のワードの検査記号をQi=[qi,n-1,qi,n-2,・・・,qi,1,qi,0]とする。また、i番目のワードの全ビットの排他的論理和をpiとする。全ワードに対する検査記号Q=[qm+n-1,・・・,q1,q0]は、図43に示すように、各ワードの検査記号と全ビットの排他的論理和を用いて計算できる。
 M個のワードWM-1,WM-2,・・・,W1,W0に格納された拡張された情報記号に対する検査記号の計算手順の例を図44に示す。図44で、f(Wi)はWiに対する検査記号列を、parity(Wi)はWiの全ピットの排他的論理和を、binary(i)は整数iの二進数表現を、それぞれ表わす関数である。シンドロームの計算も図45の式に示すように、各ワードのシンドロームと全ビットの排他的論理和を用いて計算できる。M個のワードWM-1,WM-2,・・・,W1,W0に格納された符号語に対するシンドロームの計算手順の例を図46に示す。図46で、g(Wi)はWiに対するシンドロームを、parity(Wi)はWiの全ピットの排他的論理和を、binary(i)は整数iの二進数表現を、それぞれ表わす関数である。
 (f)2ワード以上の長さの符号語の誤り検出・誤り訂正を効率良く実行するための補助命令
 2ワード以上の長さの符号語に対して上記(e)の補助命令で生成されたシンドロームを解析すれば、符号語全体の誤り検出及び誤り訂正が容易に行える。得られたシンドロームの上位mビットSH=[sm+n-1,・・・,sn+1,sn]は、ワードの番号に対応し、下位nビットSL=[sn-1,・・・,s1,s0]は、ワード中のビット位置に対応しているので、1ビット誤りを訂正する場合、シンドロームの上位mビットSHを用いて誤りが発生したワードを特定でき、シンドロームの下位nビットSLを用いて誤りが発生したビットを容易に特定できる。なお、本願発明の符号化を行うための装置及び復号・誤り訂正を行うための装置を実装する手法は、上記のものに限られない。たとえば、図10(従来手法(A))及び図11(従来手法(B))に示す従来の実装手法を用いてもよい。本発明の実施の形態1の特徴をまとめると、次の(1)~(3)の通りである。
(1)<高符号化率>拡大ハミング符号と同じ高い符号化率を持つので、効率よく情報伝送が行える。
(2)<高性能かつ低消費電力量>実装方法として、図22に示すように、符号化、復号化に適した専用命令を持つプロセッサを用いることにより、汎用プロセッサとソフトウェアによる実装方法と同様に仕様変更に柔軟に対応可能であり、専用ハードウェアによる実装方法と同様に、高性能かつ低消費電力量となる。実施の形態1での実装方法の特徴を従来手法と比較して表2に示す。
(3)<仕様変更に対する柔軟性>拡大ハミング符号を改良して検査記号の計算式に対称性を持たせている。これにより、符号語の長さが大きい場合にも計算が容易に行えるようになる。また、符号語の長さが変更されても対応が容易になる。
 上記の特徴(1)は、新しい符号化方式を用いることによる利点である。また、特徴(2)及び(3)は、符号化及び復号化処理の実装方法に伴う利点である。特徴(2)及び(3)に関して、従来手法と実施の形態1の手法を比較して表2に示す。なお、表2中で、実施例1の手法は、実施の形態1の手法に対応し、以下、提案手法とも呼ぶ。また、表2中で、他の手法(A)は、従来手法(A)に対応し、他の手法(B)は、従来手法(B)に対応する。
Figure JPOXMLDOC01-appb-T000002
 従来手法(A)を用いて、シンドロームの計算を行うためには、xの要素数をnとして、n×(n-1)回の排他的論理和演算が必要になるので、計算時間の複雑さはO(n2)となる。また、受信したデータに対するシンドロームの計算が終わった後で、誤りの検出・訂正を行うためには、上記の場合分けに対応する条件判断と分岐、それに引き続くビット演算をソフトウェアで実行する必要がある。
 一方、従来手法(B)を用いてこれらの式を計算するためには、排他的論理和演算器を配置した規則性の高い演算回路を用いることにより、O(n)の遅延時間で効率よく計算できる。また、受信した符号語に対するシンドロームの計算、誤りの検出・訂正は組合せ論理回路で実装可能である。ただし、符号長が長い場合には、複数のクロックサイクルで演算を行う必要があるので、データパス(演算回路)とコントローラ(順序回路)を組み合わせて実装することになる。
 従来手法(B)では、図11に示すように、復号化回路124を周辺回路として、コンピュータのデータバス125に接続し、データメモリ122の入出力によってデータの授受を行うのが標準的な方法である。この場合、汎用プロセッサ120は、復号化回路124に対して、実行すべき処理(初期化、符号化、復号など)を指示するコマンドとデータを渡し、処理が終了するのを待ち、誤りがあったか、訂正可能であったかなどのステータス(状態)情報と訂正後のデータを受け取ることになる。
 従来手法(B)では、符号化で用いられる生成行列とシンドロームの計算に用いられる検査行列には共通点があるので、符号化と復号を同時に行わない場合には、同一の専用ハードウェア回路を用いて、符号化と復号の処理を効率的に行える。しかし、専用ハードウェアの内部構成(レジスタやメモリの大きさ、制御回路など)は、取り扱う符号化方式と符号長の上限を考慮して、あらかじめ作りこんでおく必要があるので、あらかじめ仕様が確定している場合以外には過剰な仕様にせざるを得ず、柔軟性や拡張性が乏しい。
 実施の形態1で提案する、専用命令を追加したプロセッサによる実装方式は、図22に示す単純な命令セットを持つRISCプロセッサ222に、(1)情報記号の再配置を行う命令、(2)検査記号やシンドロームの計算を行う命令、(3)誤り検出と訂正を行う命令などを追加することにより符号化や復号の処理を効率良く実行させる方法である。提案手法の特徴は、表2に示したように、従来手法(B)と同程度の処理性能(実行サイクル数)と少ない消費電力量での実行能力を持ちつつ、汎用プロセッサ上でのソフトウェア処理と同様の柔軟さと拡張性が達成されることである。
 実行サイクル数に関しては、提案手法は従来手法(B)よりも少ないサイクル数で処理できる可能性が高い。その理由は次の通りである。従来手法(B)では、図11に示す復号化回路124にコマンドとデータを与え、ステータスを確認し、結果のデータを取得するというプロトコルを実行する必要があり、これがオーバーヘッドになる。提案手法では、命令の実行がコマンドの実行に対応しており、プロセッサのレジスタを用いて演算回路にデータを渡すことができる。そのため、従来手法(B)で必要だった、プロトコルのオーバーヘッドを軽減できることになる。また、これに伴い、消費電力量も従来手法(B)よりも少なくなると期待できる。
 一方、本願発明は、情報伝送の他に、コンピュータのメモリやバスなどの伝送路の誤り訂正などの応用分野に適用可能である。コンピュータのメモリや伝送路などで、同時に転送するデータのビット数などのパラメータは固定されている場合には、専用ハードウェア回路で実装することで最大限の効果が発揮できる。また、情報伝送の場合には、通信方式の仕様が固定的かどうかによって、専用ハードウェア回路での実装と特定応用分野向きプロセッサ(ASIP)による実装の両方の選択肢がある。
 (実施の形態2)
 高次元パリティ符号は、L=2n個の情報記号に対して、2n個の検査記号を付加して符号語を構成する。高次元パリティ符号で用いられる検査記号及びシンドロームの計算式を図47に示す。この形式の高次元パリティは、1ビット誤り訂正可能、2ビット誤り検出可能である。したがって、拡大ハミング符号やスーパー・ハミング符号と同じ強さのビット誤り訂正・検出能力を持っている。
 符号化率の点では、高次元パリティ符号はハミング符号、拡大ハミング符号、スーパー・ハミング符号に劣るが、高次元パリティ符号の検査記号及びシンドロームの計算式は高い規則性を持っている。高次元パリティ符号で用いられる検査記号の計算式のうち、qn-1,qn-2,・・・,q0,rの計算式は、スーパー・ハミング符号の検査記号の計算式と同じ形式である。また、図48に示すように、高次元パリティ符号で用いられる検査記号の計算式のうち、p0,p1,・・・,pn-1の計算式は、入力xn-1,xn-2,・・・,x0を逆順にして、x0,x1,・・・,xn-1とすると、q0,q1,・・・,qn-1の計算式と全く同じ形式になる。したがって、実施の形態1で述べた、スーパー・ハミング符号のための専用命令を拡張することにより、高次元パリティ符号を効率良く処理できる専用命令を実装できる。
 情報記号の長さが複数のワードに格納されている場合についても、実施の形態1で述べたスーパー・ハミング符号の場合と同様にして、容易に拡張できる。なお、復号化の手順は、以下のようになる。
(1)受信した検査記号と受信した情報記号から計算した検査記号の排他的論理和をとリ、シンドロームを生成する。シンドロームを検査し、
(a)全てのビットが0の場合は、誤りなし、(b)一つでも0でないビットがあった場合 は、次の(2)のステップへ。
(2)シンドロームのp成分とq成分の排他的論理和をとり、
(a)全てのビットが1の場合は、受信した情報記号に1ビット誤りあり、(b)いずれかのビットに一つだけ1がある場合は、受信した検査記号に1ビット誤りあり、(c)全てのビットが0の場合は、受信した情報記号に2ビット誤りありとする。
(3) 受信した情報記号に1ビット誤りがある場合に、シンドロームのq成分で指定される受信した情報記号の誤りを訂正する。
 (実施の形態3)
 スーパー・ハミング符号は符号長に対する柔軟性が高いので、この特徴を活かして、通信時の伝送誤り率に応じて最適な符号長を用いた通信システムを構築できる。たとえば、伝送誤り率が低い場合には、符号長を長くして伝送効率を上げることができ、処理時間のオーバーヘッドの減少と消費電力量の削減が可能になる。また、伝送誤り率が高い場合には、符号長を短くして、ビット誤りに対する耐性を向上させることが可能になる。このような符号語長の調整による適用的通信方式は、次の(a)、(b)のような状況に有効に応用できる。
(a)ビット誤り率が未知の通信路に対する適用
(b)ビット誤り率が時間とともに緩やかに変化する通信路に対する適用
 符号語長の調整手続きの例を図49に示す。符号長を変更する場合、送信システム側及び受信システム側の双方で、送受信システムの設定変更を行う必要があり、そのための時間的及びエネルギー(消費電力量)のオーバーヘッドが生じる。したがって、頻繁に符号語長の変更を行うことは好ましくない。上記の符号語長調整手続きでは、ビット誤り率の2つのしきい値(EH,EL)を用いて符号語長を調整することにより、ビット誤り率の微小な変動に対して頻繁に符号語長を変更する必要がなくなる。符号語長調整手続きの、ビット誤り率の変動に対するレスポンス(感度)は、パラメータEH、EL、及びCLの値を修正することによって制御可能である。
 (実施の形態4)
 データ伝送を行う携帯端末を、伝送中に連続した複数ビットの誤り(以下、バースト誤りという)が発生する可能性がある環境で使用する場合、誤りを検出し訂正する手段としては、バースト誤り検出符号の中では計算量が小さく、複雑な演算が不要なCRC(Cyclic Redundancy Checking:巡回)符号が用いられている。
 以下、本発明の実施の形態4に係るCRC符号に基づく誤り訂正符号処理方法について説明する。ここで、本発明のCRC符号化方法とは、以下(1)の回路で行われる検査記号計算方法を含む。また、本発明のCRC復号化方法とは、以下(2)及び(3)の回路で行われるシンドローム計算及び誤り訂正方法を含む。
(1)検査記号計算回路
 CRC符号における検査記号は、情報記号Xの生成多項式g(x)による剰余で求められる。ここで、情報記号Xは、式14によって表される。
Figure JPOXMLDOC01-appb-M000014
 xiの係数αiは2のガロア体上で計算され、係数の加算は排他的論理和として計算される。計算機上では、情報はxiの係数αiをiビット目に配置したビット列で表現される。
 CRC符号の検査記号の計算フローを図50に示す。生成多項式を用いた符号化方法の検査記号を計算するための剰余演算は、以下(a)~(d)の手順で計算され、そのうち、(b)及び(c)は複数回の繰り返しが必要となる。
(a)中間データAjの初期値A0を情報記号をとする
(b)中間データAjを1ビットシフトし、データA’jを得る
(c)A’jの最上位ビットが1のとき、A’jと生成多項式を表すビット列の排他的論理和を計算し、次ステップの中間データAj+1を得る
(d)情報記号のビット幅をLiとすると、j<Li-1であればj=j+1 として(b)にもどり、j=Li-1であればA’Li-1(iは下付き文字)を検査記号とする
 以下、上記(b)及び(c)を操作(A)と表記する。
 操作(A)は、Aj+1=AjGの形式の行列演算に帰着させることができる。 また、n回の連続した操作はAj+1=Ajnと表すことができる。本発明では、任意のnに対してGnを乗ずる回路を使用することにより、検査記号の計算を高速化する。生成多項式xx8+x2+x+1に対するGを図51に示す。
 情報記号のビット幅をLi、検査記号のビット幅をLcとすると、検査記号計算処理は式15によって表される。
Figure JPOXMLDOC01-appb-M000015
 ここで、Lc<Ld<Li+Lcとすると、検査記号計算処理は式16により再帰的に分割することができる。
Figure JPOXMLDOC01-appb-M000016
 式16により処理をnビット単位に分割し、G2n、Gnを計算する回路を用いて検査記号の計算を高速化する。たとえば、8ビット単位で検査行列を計算する場合にはG8及びG16を使用する。生成多項式x8+x2+x+1に対するG8及びG16はそれぞれ図52及び図53で表される。
 Gmを乗ずる専用演算器を図54のように構成することにより、生成多項式を動的に変化させることができる。以下、操作(A)の演算をnサイクルで実行する方法について、(i)~(vi)で説明する。
(i)nビットの入力データ用レジスタを持つ。入力されたデータは入力データ用レジスタに格納される。
(ii)nビットの行格納用レジスタ及びnビット×nビットの行列表を持ち、行列表は行を指定することにより、指定された行の情報を行格納用レジスタに出力する。なお、図54中の行列(GmT表は、Gmを表す行列の転置行列を表に配置したものである。たとえば、生成多項式x8+x2+x+1においてG8を乗ずる専用演算器のための表は、図55のように構成される。行列表は、たとえば、RAMまたは複数のレジスタ等で実装する。
(iii)nビットの2入力AND演算器を持ち、AND演算器は入力データ用レジスタと行格納用レジスタの論理積を出力する。
(iv)nビットのパリティ演算器を持ち、パリティ演算器はAND演算器の出力に対して、すべてのビットの排他的論理和を出力する。
(v)nビットのシフトレジスタを持ち、シフトレジスタはパリティ演算器の演算結果を最下位ビットに格納する。また、シフトレジスタはシフト信号を入力することにより格納されている値を1ビット左シフトする。
(vi)シフトレジスタの出力を演算器の出力とする。
 なお、Gmを乗ずる専用演算器を図56のように構成してもよい。図56では、上記(ii)~(v)の複数回の演算を並列に処理する専用演算器を用いることにより、処理をn並列化し、図54と同じ演算を1サイクルで実行することができる。
 検査記号計算回路の実装例を図57に示す。図57は、16bitプロセッサに (24,16)CRC符号処理回路を組み込むための回路である。生成多項式はx8+x2+x+1を用いる。図57中の、G8、G16はそれぞれ図52、図53の行列を乗ずる回路である。図57の回路は、検査記号の計算途中の値をrdレジスタに、情報記号を順次rsレジスタに入力することにより、16回の操作(A)を、図54の専用演算器使用時には1サイクル、図56の専用演算器使用時には8サイクルで行い、結果として得られる次の検査記号の途中結果をrdレジスタに書き戻す。
(2)シンドローム計算回路
 CRC符号における符号語からシンドロームを求める計算は、情報記号から検査記号を求める計算と同じである。したがって、シンドロームの計算には、(1)の検査記号計算回路を用いるため、説明を省略する。
(3)誤り訂正回路
 CRC符号において1ビット誤りの誤り位置は、(2)のシンドローム計算回路により得られたシンドロームより計算する。
 情報記号のビット幅をLi、検査記号のビット幅をLcとし、eビット目に誤りがある場合、シンドロームの計算は式17で表される。
Figure JPOXMLDOC01-appb-M000017
 また、CRC符号の性質上、以下に表される式18は、g(x)で割り切れるため、シンドロームは式19で表される。
Figure JPOXMLDOC01-appb-M000018
Figure JPOXMLDOC01-appb-M000019
 g(x)はLc次以上の多項式であることから、1ビット誤りが下位のLcビット中にある場合、つまりe<Lcである場合、xemodg(x)=xeであるため誤り位置はeに一致する。
 以下(i)、(ii)では、1ビット誤りが下位のLcビット中にある場合とそれ以外の場合についての誤り訂正について説明する。
(i)1ビット誤りが下位のLcビット中にある場合
 検査記号のビット幅をLcとする符号語の下位のLcビット中に1ビット誤りがある場合は、シンドロームにおいて1であるビットの位置は誤りビットの位置と一致する。また、シンドロームにおいて1であるビットの総数が1個であるのは、下位からLcビットに1ビット誤りがある場合のみである。
(ii)1ビット誤りが下位のLcビット中にない場合
 符号語Yに対するシンドロームをS’としたとき、符号語Yをkビット右シフトしたビット列Y’に対するシンドロームS’は、S’×G-nと一致する。G-nを乗ずる操作は、検査記号計算回路で用いたGの逆行列をn回乗ずる操作を表す。
 符号語をkビット右シフトし、同時にシンドロームにG-kを乗ずる。このとき、シンドロームにG-kを掛けたビット列S’において1であるビットの総数が1個である場合、下位からLcビットに1ビット誤りがあると判定して誤りを訂正する。S’に1であるビットが2個以上の場合は上記操作を繰り返す。
 誤り訂正回路においても、生成多項式を動的に変更する場合は、検査記号計算と同様にGmを乗ずる専用演算器を図54または図56のように構成する。
 誤り訂正回路の実装例を図58に示す。図58は、16bitプロセッサに (24,16)CRC符号処理回路を組み込むための回路である。生成多項式はx8+x2+x+1を用いる。図58中のbit testは、入力値に1のビットが1個のみ存在する場合は入力値を、それ以外の場合は0を出力する回路である。また、図58中のG-8は,図59の行列を乗ずる回路である。図58の回路は、符号語をrdレジスタに、シンドロームをrsレジスタの上位8ビットに入力することにより、図54の専用演算器使用時には2サイクル、図56の専用演算器使用時には16サイクルで行い、訂正済みの符号語をrdレジスタに書き戻す。
 以上、CRC符号での符号化及び復号化方法の手順をまとめると、以下の通りとなる。情報記号をxを変数(モジュロ2)とする多項式で表現した情報記号多項式にxk(生成多項式の次数k)を乗じたシフト情報記号多項式を生成多項式で除算し剰余を算出する第1の演算により、剰余の多項式の係数を検査記号として求め、情報記号と合わせて符号語を生成し、データとして送信する場合、第1の演算におけるシフト情報記号多項式の変数xの最高次からの各項を生成多項式にxのべき乗を乗算し引くことにより段階的に消去する各段の第2の演算をシフト情報記号多項式の係数を並べたベクトルから始まり各段の途中段階の剰余の係数を並べたベクトルに対する同一の行列Gとの積で表現し、所定の回数の前記行列Gのみの積を予め算出して第2の演算を所定の回数繰り返した後の第1の演算の部分演算単位を表現する部分演算行列とするステップ1と、シフト情報記号多項式のベクトルと部分演算行列との積を途中段階の剰余のベクトルとして求めることから始めて所定の回数ごとの途中段階の剰余のベクトルと部分演算行列との積を次の途中段階の剰余のベクトルとして順次求める演算を行い、検査記号を生成するステップ2とを有する方法によって符号化処理がされ、符号語がデータ伝送され受信したデータである受信符号語を復号する場合、受信符号語を多項式で表現した受信符号語多項式を生成多項式により除算し剰余を算出する第3の演算により、剰余の多項式の係数をシンドロームとして生成する際に、第3の演算における受信符号語多項式の変数xの最高次からの各項を生成多項式にxのべき乗を乗算し引くことにより段階的に消去する各段の第4の演算において、受信符号語多項式のベクトルと部分演算行列との積を途中段階の剰余のベクトルとして求めることから始めて前記所定の回数ごとの途中段階の剰余のベクトルと部分演算行列との積を次の途中段階の剰余のベクトルとして順次求める演算を行い、シンドロームを生成するステップ10と、部分行列の逆行列を予め算出するステップ11と、シンドロームから誤りの有無と種類を判定するステップ12と、シンドロームにおいて1であるビットの総数が1個であり、受信符号語の下位から検査記号のビット幅中に1ビット誤りがあると判定された場合、シンドロームの1であるビット位置で指定される受信符号語のビットの値を反転し符号語を訂正するステップ13と、シンドロームにおいて1であるビットの総数が2個以上であり、シンドロームに逆行列を乗ずることを繰り返した結果、t回目(tは1以上の整数)の結果のシンドロームにおいて1であるビットの総数が1個となり、検査記号のビット幅を単位幅として受信符号語の下位からt+1番目の位置のビット幅中に1ビット誤りがあると判定された場合、受信符号語の下位からt+1番目の位置のビット幅中のt回目の結果のシンドロームの1であるビット位置で指定されるビットの値を反転し符号語を訂正するステップ14とを有する方法によって復号化処理がされる。
 なお、符号語を生成しデータとして送信するCRC符号化方法であって、1ワードのビット数が検査記号のビット長kの自然数倍mで情報がMワードの長さの時、ステップ1において部分演算行列は所定の回数をmk,(m-1)k,・・・,k(kの倍数)としてm個の積行列Gmk,G(m-1)k,G(m-2)k,・・・,Gkであり、ステップ2においてシフト情報記号多項式のベクトルから始めて所定の回数ごとの途中段階の剰余のベクトルを順次求める演算を行うに替えて、シフト情報記号多項式のベクトルをワード毎にわけワード毎に一括した演算を順次行うに際して、1ワード中のビット幅k単位のk個の要素を持つベクトルにわけてワード中の最初のビット幅のベクトルに対して積行列Gmkを乗じた結果のベクトルの要素とひとつ前のワードに対する一括した演算の結果のベクトルの要素との排他的論理和をとったベクトルの要素と、ワード中の次以降のビット幅の位置のk個の要素を持つ(m-1)個のベクトルに対してそれぞれG(m-1)k,G(m-2)k,・・・,Gkを乗じた結果のベクトルの要素との排他的論理和をとりワード中の一括した演算として行ってもよい。
 また、符号語がデータ伝送され受信したデータである受信符号語を復号するCRC復号化方法であって、1ワードのビット数が検査記号のビット長kの自然数倍mで、情報がMワードの長さの時、ステップ10において、部分演算行列は所定の回数をmk,(m-1)k,・・・,k(kの倍数)としてm個の積行列Gmk,G(m-1)k,G(m-2)k,・・・,Gkであり、ステップ10において、受信符号語多項式のベクトルから始めて所定の回数ごとの途中段階の剰余のベクトルを順次求める演算を行うに替えて、受信符号語多項式のベクトルをワード毎にわけワード毎に一括した演算を順次行うに際して、1ワード中のビット幅k単位のk個の要素を持つベクトルにわけてワード中の最初のビット幅のベクトルに対して積行列Gmkを乗じた結果のベクトルの要素とひとつ前のワードに対する一括した演算の結果のベクトルの要素との排他的論理和をとったベクトルの要素と、ワード中の次以降のビット幅の位置のk個の要素を持つ(m-1)個のベクトルに対してそれぞれG(m-1)k,G(m-2)k,・・・,Gkを乗じた結果のベクトルの要素との排他的論理和をとりワード中の一括した演算として行い、逆行列はGkの逆行列G-kであってもよい。
 (実施の形態5)
 プロセッサベースのシステムにCRC符号に基づく符号化を行う機能及び復号化を行う機能を付加する従来の手法は、
(1)汎用プロセッサ上のソフトウェアによる実装 (以下、従来手法(1)と呼ぶ。)
(2)専用ハードウェア(ASIC)を追加することによる実装 (以下、従来手法(2)と呼ぶ。)
(3)動的再構成可能ハードウェアを追加することによる実装 (以下、従来手法(3)と呼ぶ。)
の3種類に分類できる。上記の手法には、次のようなトレードオフが存在する。
 従来手法(1)のソフトウェアによる実装方法は、元の処理に使用する汎用プロセッサをそのまま使うことができるためハードウェアを追加する必要がなく、符号化方式の変更や符号長の変更に容易に対応できるが、実行サイクル数が多いため実行時間が長く、消費電力量が多いという欠点がある。
 従来手法(2)は、専用の回路を使用できるため実行サイクル数が少ないが、実装するために追加するハードウェア量が多く、また、符号化方式の変更や符号長の変更に容易に対応できないという欠点がある。
 従来手法(3)は、動的に回路を再構成することにより生成多項式や符号長の仕様を変更することができるが、消費電力量が多く、実装するために必要なハードウェア量も多いという欠点がある。
  半導体の微細化が進んだ結果、VLSIの集積度が向上し、クロック周波数も向上し、性能が向上している。しかし、その結果、VLSIの消費電力が増大傾向にある。特に、汎用プロセッサでは、消費電力の増大に伴う発熱量の増大と温度上昇が大きな問題になっている。従来手法(2)は、消費電力の点で従来手法(1)よりも優れているが、仕様変更に柔軟に対応することが困難である。また、仕様変更に柔軟に対応できるハードウェアを用いる従来手法(3)もハードウェアの消費電力量が多く、低電力化には適さない。したがって、符号の誤り耐性や符号長の変更に柔軟に対応でき、消費電力が少なく、かつ実行時間の短い実装方法を開発することが課題となっている。しかし、前述のように従来手法ではこのような要求を満たすことは困難である。
 そこで、本発明の実施の形態5に係る実装手法(以下、提案手法(1)と呼ぶ)は、実施の形態4に係る検査記号の計算、シンドロームの計算及び誤り訂正のための専用命令を持つプロセッサを用いることにより、誤り訂正符号処理装置を実装している。
 図60Aは、本発明に係る、提案手法(1)の構成を示す図である。図60Aにおいて、専用命令を含むプロセッサ310の外側には、命令メモリ311とデータメモリ312がある。命令メモリ311は、検査記号の計算、シンドロームの計算及び誤り訂正のための専用命令を含む命令を保持している。専用命令を含むプロセッサ310は、命令メモリ311から読み出された命令に従って、誤り訂正符号処理の符号化及び復号化演算を行う。また、専用命令を含むプロセッサ310は、命令メモリ311によって読み出された命令に従って、データバス313を通じてデータメモリ312に保持されているデータを読み出す。さらに、専用命令を含むプロセッサ310は、専用命令を含むプロセッサ310で行われた演算結果を、データバス313を通じてデータメモリ312に格納する。
 提案手法(1)は、以下(a)~(c)の特徴を持つ。
(a)専用ハードウェア及び再構成可能ハードウェアによる実装方法と同様に、実行時間が短い。
(b)汎用プロセッサによる実装方法と同様に、低消費電力である。
(c)汎用プロセッサ及び再構成可能ハードウェアによる実装方法と同様に符号の誤り耐性や符号長の仕様変更に柔軟に対応可能である。
 表3は、従来手法(1)、従来手法(2)、従来手法(3)及び提案手法(1)の特徴をまとめたものである。
Figure JPOXMLDOC01-appb-T000003
 なお、本願発明の符号化を行うための装置及び復号化を行うための装置を実装する手法は、上記のものに限られない。たとえば、以下に示す提案手法(2)及び提案手法(3)により、符号化を行うための装置及び復号化を行うための装置を実装することができる。
 提案手法(2)は、検査記号/シンドローム計算については、提案手法(1)で用いる専用プロセッサを使用し、誤り訂正については、従来手法である表引きを使用する方法である。
 図60Bは、本発明に係る、提案手法(2)の構成を示す図である。図60Bにおいて、専用命令を含むプロセッサ320の外側には、命令メモリ321と表引き用領域を含むデータメモリ322がある。命令メモリ321は、検査記号の計算、シンドロームの計算及び誤り訂正のための専用命令を含む命令を保持している。専用命令を含むプロセッサ320は、命令メモリ321から読み出された命令に従って、誤り訂正符号処理の符号化及び復号化演算を行う。また、専用命令を含むプロセッサ320は、命令メモリ321によって読み出された命令に従って、データバス323を通じて表引き用領域を含むデータメモリ322に保持されているデータを読み出す。ここで、表引き用領域を含むデータメモリ322は、誤り位置計算をするためのLook-up Tableを保持している表引き用領域を含むメモリのことである。さらに、専用命令を含むプロセッサ320は、専用命令を含むプロセッサ320で行われた演算結果を、データバス323を通じて表引き用領域を含むデータメモリ322に格納する。
 提案手法(1)では、符号長に比例したサイクル数を誤り位置の計算に要するが、提案手法(2)では、表引きを用いることで、メモリアクセス1回分のサイクル数での計算が可能となる。ただし、表引き用のデータを格納するために必要なメモリの領域が大幅に増加するため、提案手法(2)は、提案手法(1)と比較してデータメモリの増加させる必要がある。
 提案手法(3)は、検査記号/シンドローム計算及び誤り訂正ともに、FPGA(Field-Programmable Gate Array)等の再構成可能ハードウェアで×Gmを行う専用演算器を構成する方法である。
 図60Cは、本発明に係る、提案手法(3)の構成を示す図である。図60Cにおいて、専用命令を含む動的再構成可能プロセッサ330の外側には、命令メモリ331とデータメモリ332がある。命令メモリ331は、検査記号の計算、シンドロームの計算及び誤り訂正のための専用命令を含む命令を保持している。専用命令を含む動的再構成可能プロセッサ330は、命令メモリ331から読み出された命令に従って、誤り訂正符号処理の符号化及び復号化演算を行う。また、専用命令を含む動的再構成可能プロセッサ330は、命令メモリ331から読み出された命令に従って、データバス333を通じてデータメモリ332に保持されているデータを読み出す。さらに、専用命令を含む動的再構成可能プロセッサ330は、専用命令を含む動的再構成可能プロセッサ330で行われた演算結果を、データバス333を通じてデータメモリ332に格納する。
 図61に示すように、提案手法(3)は、×Gmを行う専用演算器をFPGAのLook-up Tableを用いて構成することができるため、提案手法(1)と同等に高速な演算が可能である。なお、提案手法(3)は、ECC(Error Checking and Correction)命令追加対象のベースシステムが再構成可能ハードウェアで構成されている場合、ハードウェアを追加する必要がない。
 表4は、提案手法(1)、提案手法(2)及び提案手法(3)における、検査記号/シンドローム計算及び誤り訂正方法をまとめたものである。
Figure JPOXMLDOC01-appb-T000004
 表5は、提案手法(1)、提案手法(2)及び提案手法(3)の特徴をまとめたものである。
Figure JPOXMLDOC01-appb-T000005
 (実施の形態6)
 実施の形態6として、符号語長及び生成多項式の調整手続きの例(受信側)を図62及び表6に示す。
Figure JPOXMLDOC01-appb-T000006
 誤り訂正レベルLは、例えば表6に示すように6段階に分け各レベルにおいて使用する生成多項式と符号長を決めておく。ここでは、生成多項式として8ビットCRC(CRC-8)と16ビットCRC(CRC-16)のものを用いる(具体的には、それぞれx8+x2 +x+ 1とx16 +x15 +x2 + 1)。
 図62において、受信した符号語数CRをカウントし、またビット誤り回数CEを訂正可能な誤りを検出した場合にカウントし、ビット誤り率CE/CRを計算し、伝送誤り率の指標としている。
 符号長又は生成多項式を変更する場合、送信システム側および受信システム側の双方で、送受信システムの設定変更を行う必要があり、そのための時間的およびエネルギー(消費電力量)のオーバーヘッドが生じる。したがって、頻繁に符号語長及び生成多項式の変更を行うことは好ましくない。上記の符号語長及び生成多項式の調整手続きでは、ビット誤り率の2つのしきい値(EH,EL)を用いて符号語長を調整することにより、ビット誤り率の微小な変動に対して頻繁に符号語長を変更する必要がなくなる。
 すなわち、受信システムにおいて、例えば図62に示すように、ビット誤り率CE/CRがEHを超えた場合は、誤り訂正レベルLを上げ、誤りが検出されず(誤り検出処理は図示せず)受信した符号語数CRが誤り訂正レベル変更に必要な最小受信回数CLを超えかつビット誤り率CE/CRがELを下回った場合は、誤り訂正レベルLを下げるようにする。また、受信システムにおいて、誤り訂正レベルLは、L+1の計算により誤り訂正レベルの上限LHを超えた場合はLHとして、L-1の計算により誤り訂正レベルの下限LLを下回る場合はLLとする。そして、受信システムにおいて算出された誤り訂正レベルを送信システムに通知することで、送信システム側および受信システム側の双方で、送受信システムの設定変更を行うことができる。
 符号語長及び生成多項式の調整手続きの、ビット誤り率の変動に対するレスポンス(感度)は、パラメータEH、EL、およびCLの値を修正することによって制御可能である。
 これにより、ビットの誤り率に対応して、適応的に符号長の長さを変更できるので、誤りの少ない通信では符号化効率の高い長い符号長の誤り訂正符号を利用でき、誤りの多い通信では誤り訂正強度の強い短い符号長の誤り訂正符号を利用することができ、情報の再送を減らしつつできるだけ通信効率の良い符号長を選択可能となり通信に必要となる電力量を削減することができる。
 次に、本発明の実施の形態5に係る誤り符号処理装置の効果を確かめる実験が行われたので、その実験結果について、表7を参照しながら説明する。
 表7は、本実施の形態4に係る回路を組み込んだプロセッサと、汎用プロセッサとを使用して、CRC符号での誤り符号処理装置を実装した際の実行サイクル数の比較を示す。ここで、表7では、図56、図57及び図58で構成される回路を組み込んだプロセッサを用いる手法を提案手法(1)とし、汎用プロセッサを用いる手法を従来手法(1)としている。
Figure JPOXMLDOC01-appb-T000007
 表7では、16,32,64ビットの情報記号の符号化及び復号化に必要な実行サイクル数及び従来手法(1)に対する提案手法(1)の実行サイクル数の削減率を記載している。表7より、提案手法(1)は、従来手法(1)と比べて90%以上の実行サイクル数の削減効果を確認することができる。
 これにより、計算の実行サイクル数が削減できるので、符号化及び復号化の処理に必要な電力量を削減することができる。
 以上、本発明の実施の形態に係る誤り訂正符号処理方法及び誤り訂正符号装置について説明したが、本発明は、この実施の形態に限定されるものではない。
 たとえば、上記誤り訂正符号装置の構成は、本発明を具体的に説明するために例示するためのものであり、本発明に係る誤り訂正符号装置は、上記構成の全てを必ずしも備える必要はない。言い換えると、本発明に係る誤り訂正符号装置は、本発明の効果を実現できる最小限の構成のみを備えればよい。
 同様に、上記の誤り訂正符号処理方法は、本発明を具体的に説明するために例示するためのものであり、本発明に係る誤り訂正符号処理方法は、上記ステップの全てを必ずしも含む必要はない。言い換えると、本発明に係る誤り訂正符号処理方法は、本発明の効果を実現できる最小限のステップのみを含めばよい。また、上記のステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
 さらに、本発明の主旨を逸脱しない限り、本実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本発明に含まれる。
 本発明は、情報伝送や、コンピュータのメモリやバスなどの伝送路における誤り検出及び誤り訂正を行うことができる。
    110、120  汎用プロセッサ
    111、121、225、311、321、331  命令メモリ
    112、122、226、312、332  データメモリ
    113、125、228、313、323、333  データバス
    123  符号化回路
    124  復号化回路
    220  誤り訂正符号処理装置
    222  RISCプロセッサ
    223  検査行列・シンドローム演算回路
    224  誤り訂正回路
    227  内部バス
    310、320  専用命令を含むプロセッサ
    322  表引き用領域を含むデータメモリ
    330  専用命令を含む動的再構成可能プロセッサ

Claims (18)

  1.  長さL=2m+n(mは1以上の整数、nは2以上の整数)の情報記号列V=(vL-1,vL-2,・・・v1,v0)をデータとして処理する誤り訂正符号処理方法であって、
     情報記号列Vの要素viの添字の大きいほうから降順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した情報記号列Vの全部で2m+n-1個の異なる要素の排他的論理和を要素とし、jの降順に並べた降順記号Q=(qm+n-1,qm+n-2,・・・q1,q0)、若しくは情報記号列Vの要素viの添字の小さいほうから昇順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した情報記号列Vの全部で2m+n-1個の異なる要素の排他的論理和を要素とし、jの降順に並べた昇順記号PP=(ppm+n-1, ppm+n-2,・・・pp1, pp0)のいずれかまたは両方を算出する際に、前記情報記号列VがMワード(M=2m、1ワードのビット長Lw=2n)の長さでi番目のワードの情報記号列をWi=(vi,Lw-1,vi,Lw-2,・・・,vi,1,vi,0)とし前記情報記号列Vをワードの情報記号列を降順に並べたもの(WM-1,WM-2, ・・・, W1,W0)で表した時、
     i番目の情報記号列Wiの要素vi,j(j=0,1,2,・・・,2n-1)から添字jの大きいほうから降順に2k(k=0,1,2,・・・,n-1)個を1組として2k個おきに選択した情報記号列Wiの全部で2n-1個の異なる要素の排他的論理和を要素としkの降順に並べた降順記号QLi=(qi,n-1,qi,n-2,・・・qi,1,qi,0)、若しくは情報記号列Wiの要素vi,j(j=0,1,2,・・・,2n-1)から添字jの小さいほうから昇順に2k(k=0,1,2,・・・,n-1)個を1組として2k個おきに選択した情報記号列Wiの全部で2n-1個の異なる要素の排他的論理和を要素としkの降順に並べた昇順記号PPLi=(ppi,n-1, ppi,n-2,・・・ppi,1, ppi,0)のいずれかまたは両方を算出し、情報記号列Wiのすべての要素の排他的論理和をパリティpiとして算出する第1ステップと、
     前記降順記号QLiの要素毎に添字i=0,1,2,・・・,M-1のすべてについて排他的論理和を算出し、前記降順記号Qの下位nビットのQL=(qn-1,qn-2,・・・q1,q0)、若しくは前記昇順記号PPLiの要素毎に添字i=0,1,2,・・・,M-1のすべてについて排他的論理和を算出し、前記昇順記号PPの下位nビットのPPL=(ppn-1, ppn-2,・・・pp1, pp0)のいずれかまたは両方として生成する第2ステップと、
     前記パリティpiを並べた要素列Pw=(pM-1,pM-2, ・・・, p1, p0)の要素piの添字iの大きいほうから降順に2k(k=0,1,2,・・・,m-1)個を1組として2k個おきに選択した全部で2m-1個の異なる要素の排他的論理和を算出し、前記降順記号Qの上位mビットのQH=(qm+n-1,qm+n-2,・・・qn+1,qn)、若しくは要素piの添字iの小さいほうから昇順に2k(k=0,1,2,・・・,m-1)個を1組として2k個おきに選択した全部で2m-1個の異なる要素の排他的論理和を算出し、前記昇順記号PPの上位mビットのPPH=(ppm+n-1,ppm+n-2,・・・ppn+1,ppn)のいずれかまたは両方を生成する第3ステップと、
     生成された前記降順記号Q若しくは前記昇順記号PPのいずれかまたは両方を、検査記号或いはシンドロームとして出力する第4ステップと
     を有する誤り訂正符号処理方法。
  2.  長さL=2h-h-1(hは2以上の整数)の情報記号X=(xL-1,xL-2,・・・,x1,x0)を情報データとして伝送する場合の誤り訂正符号処理方法であって、
     符号語Yの符号長をN=2h、検査記号をQ=(qh-1,qh-2,・・・q1,q0)及びパリティpとした時、
     符号語Yの符号長が1ワード以下の場合は、長さNの記号X'の要素x'i(i=0,1,2,・・・,2h-1)の内の添字iが0,20,21,・・・,2h-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に前記情報記号Xの要素を右から並べ拡張した記号X'=(xL-1,xL-2,・・・,xL-N/2+1,0,xL-N/2,・・・,x10,x9,x8,x7,x6,x5,x4,0,x3,x2,x1,0,x0,0,0,0)の要素x'i(i=0,1,2,・・・,2h-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2h-1個の異なる要素の排他的論理和を算出し、前記検査記号Qの要素qj(j=0,1,2,・・・,h-1)とし検査記号のデータとして生成する第5ステップと、
     前記計算されたqi及び情報記号のxiの全要素の排他的論理和を算出しパリティpとしデータとして生成する第6ステップと
     を有し、符号語YがMワード(M=2m、1ワードのビット長Lw=2n、mは1以上の整数でh=m+n)の長さの場合は、長さNの記号X'の要素x'i(i=0,1,2,・・・,2m+n-1)の内の添字iが0,20,21,・・・,2m+n-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に前記情報記号Xの要素を右から並べ拡張した記号X'=(xL-1,xL-2,・・・,xL-N/2+1,0,xL-N/2,・・・,x10,x9,x8,x7,x6,x5,x4,0,x3,x2,x1,0,x0,0,0,0)の要素x'i(i=0,1,2,・・・,2m+n-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した全部で2m+n-1個の異なる要素の排他的論理和をとり前記検査記号Qの要素を算出する際に、請求項1記載の前記情報記号列Vとして拡張した記号X' を使い請求項1の方法を用いて得られる前記降順記号Qを前記検査記号Qとし検査記号のデータとし、得られる前記要素列Pwの全ての要素の排他的論理和をパリティpとして生成する第7ステップとを有し、
     前記拡張した記号X'の追加された0の位置にある要素x'i(i=0,20,21,・・・,2h-1)を添字iの昇順に前記パリティp,qk(k=0,1,2,・・・,h-1)で置き換えることにより符号語Y=(xL-1,xL-2,・・・,xL-N/2+1,qh-1,xL-N/2,・・・,x10,x9,x8,x7,x6,x5,x4,q3,x3,x2,x1,q2,x0,q1,q0,p)をデータとして生成する第8ステップとを有する誤り訂正符号処理方法。
  3.  請求項2記載の符号語Yがデータ伝送され受信した情報データである符号語Y'=(y'N-1,y'N-2,・・・,y'1,y'0)を復号する誤り訂正符号処理方法であって、
     符号語Y'の符号長が1ワード以下の場合は、前記受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2h-1個の異なる要素の排他的論理和を算出しシンドロームS=(sh-1,sh-2,・・・s1,s0,r)の要素sj(j=0,1,2,・・・,h-1)として生成する第9ステップと、
     前記符号語Y'の要素y'iの全要素の排他的論理和を算出し前記シンドロームSの要素rとしデータとして生成する第10ステップと、
     前記シンドロームから誤りの有無と種類を判定する第11ステップと、
     r=1で1ビット誤りと判定された場合は、(sh -1, sh -2,・・・s1,s0)で指定される位置の前記符号語Y'の要素の値を反転し前記符号語Y'を訂正する第12ステップと、
     前記訂正された符号語Y'から情報記号Z=(zL-1,zL-2,・・・,z1,z0)を抽出し誤り訂正後の情報データとして出力する第13ステップと
     を有し、
     符号語Y'がMワードの長さの場合は、前記受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,n-1)個を1組として2j個おきに選択した全部で2n-1個の異なる要素の排他的論理和を算出する際に、請求項1記載の前記情報記号列Vとして符号語Y'を使い請求項1の方法を用いて得られる前記降順記号Qの要素をシンドロームS=(sm+n-1,sm+n-2,・・・,sn, ,sn-1, ・・・,s1,s0,r)の要素sj(j=0,1,2,・・・,m+n-1)とし、得られる前記要素列Pwの全ての要素の排他的論理和を前記シンドロームSの要素rとして生成する第14ステップと、
     前記シンドロームから誤りの有無と種類を判定する第15ステップと、
     r=1で1ビット誤りと判定された場合は、前記シンドロームSの上位mビットSH=(sm+n-1,sm+n-2,・・・,sn)に対応するワード番号及び前記シンドロームSのrのビット位置を除く下位nビットSL=(sn-1, ・・・,s1,s0)に対応するワード中のビット位置で指定される前記符号語Y'の要素の値を反転し前記符号語Y'を訂正する第16ステップと、
    前記訂正された符号語Y'から情報記号Z=(zL-1,zL-2,・・・,z1,z0)を抽出し誤り訂正後の情報データとして出力する第17ステップと
     を有する誤り訂正符号処理方法。
  4.  長さL=2h-h-1(hは2以上の整数)の情報記号X=(x0,x1,・・・xL-2,xL-1)を情報データとして伝送する場合の誤り訂正符号処理方法であって、
     符号語Yの符号長をN=2h、検査記号をPP=(pph-1,pph-2 ,・・・pp1 ,pp0)及びパリティpとした時、符号語Yの符号長が1ワード以下の場合は、長さNの記号X'の要素x'i(i=0,1,2,・・・,2h-1)の内の添字iが0,20,21,・・・,2h-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に前記情報記号Xの要素を左から並べ拡張した記号X'=(0,0,0,x0,0,x1,x2,x3,0,x4,x5,x6,x7,x8,x9,x10,・・・,xL-N/2,0,xL-N/2+1,・・・, xL-2,xL-1)の要素x'i(i=0,1,2,・・・,2h-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2h-1個の異なる要素の排他的論理和を算出し前記検査記号PPの要素ppj(j=0,1,2,・・・,h-1)とし検査記号のデータとして生成する第18ステップと、
     前記計算されたppi及び情報記号のxiの全要素の排他的論理和を算出し前記検査記号の内のパリティpとしデータとして生成する第19ステップと
     を有し、
     符号語YがMワード(M=2m、1ワードのビット長Lw=2n、mは1以上の整数でh=m+n)の長さの場合は、長さNの記号X' =(x'0,x'1,x'2,x'3,x'4,・・・, x'N-2,xN-1)の要素x'i(i=0,1,2,・・・,2h-1)の内の添字iが0,20,21,・・・,2h-1の要素の位置を0とし、残りの位置の要素x'iとして添字iの昇順に前記情報記号Xの要素を左から並べ拡張した記号X'=(0,0,0,x0,0,x1,x2,x3,0,x4,x5,x6,x7,x8,x9,x10,・・・,xL-N/2,0,xL-N/2+1,・・・, xL-2,xL-1)の要素x'i(i=0,1,2,・・・,2m+n-1)の添字の大きいほうから降順に2j(j=0,1,2,・・・,m+n-1)個を1組として2j個おきに選択した全部で2m+n-1個の異なる要素の排他的論理和を算出する際に、請求項1記載の前記情報記号列Vとして拡張した記号X' を使い請求項1の方法を用いて得られる前記昇順記号PPを前記検査記号PPとし検査記号のデータとし、得られる前記要素列Pwの全ての要素の排他的論理和をパリティpとして生成する第20ステップとを有し、
     前記拡張した記号X'の追加された0の位置にある要素x'i(i=0,20,21,・・・,2h-1)を添字iの昇順に前記パリティp,ppk(k=0,1,2,・・・,h-1)で置き換えることにより符号語Y=(p,pp0,pp1,x0,pp2,x1,x2,x3,pp3,x4,x5,x6,x7,x8,x9,x10,・・・,xL-N/2,pph-1,xL-N/2+1,・・・, xL-2,xL-1)をデータとして生成する第21ステップと
     を有する誤り訂正符号処理方法。
  5.  請求項4記載の符号語Yがデータ伝送され受信した情報データである符号語Y'= (y'0, ,y'1,・・・,y'N-2,y'N-1)を復号する誤り訂正符号処理方法であって、
     符号語Y'の符号長が1ワード以下の場合は、前記受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,h-1)個を1組として2j個おきに選択した全部で2n-1個の異なる要素の排他的論理和を算出しシンドロームS=(sh-1,sh-2,・・・s1,s0,r)の要素sj(j=0,1,2,・・・,h-1)として生成する第22ステップと、
     前記符号語Y'の要素y'iの全要素の排他的論理和を算出し前記シンドロームSの要素rとしデータとして生成する第23ステップと、
     前記シンドロームから誤りの有無と種類を判定する第24ステップと、
     r=1で1ビット誤りと判定された場合は、(sh-1,sh-2,・・・s1,s0)で指定される位置の前記符号語Y'の要素の値を反転し前記符号語Y'を訂正する第25ステップと、
     前記訂正された符号語Y'から情報記号Z=(z0,z1,・・・,zL-2,zL-1)を抽出し誤り訂正後の情報データとして出力する第26ステップと
     を有し、
     符号語Y'がMワードの長さの場合は、前記受信した符号語Y'の要素y'i(i=0,1,2,・・・,N-1)から添字の大きいほうから降順に2j(j=0,1,2,・・・,n-1)個を1組として2j個おきに選択した全部で2n-1個の異なる要素の排他的論理和を算出する際に、請求項1記載の前記情報記号列Vとして符号語Y'を使い請求項1の方法を用いて得られる前記降順記号Qの要素をシンドロームS=(sm+n-1,sm+n-2,・・・,sn, ,sn-1, ・・・,s1,s0,r)の要素sj(j=0,1,2,・・・,n-1)とし、得られる前記要素列Pwの全ての要素の排他的論理和を前記シンドロームSの要素rとして生成する第27ステップと、
     前記シンドロームから誤りの有無と種類を判定する第28ステップと、
     r=1で1ビット誤りと判定された場合は、前記シンドロームSの上位mビットSH=(sm+n-1,sm+n-2,・・・,sn)に対応するワード番号及び前記シンドロームSのrのビット位置を除く下位nビットSL=(sn-1, ・・・,s1,s0)に対応するワード中のビット位置で指定される前記符号語Y'の要素の値を反転し前記符号語Y'を訂正する第29ステップと、
     前記訂正された符号語Y'から情報記号Z=(z0,z1,・・・,zL-2,zL-1)を抽出し誤り訂正後の情報データとして出力する第30ステップと
    を有する誤り訂正符号処理方法。
  6.  プロセッサと、
     請求項2、請求項3、請求項4または請求項5記載の方法を実行させる際に発行する命令として、検査記号の要素の符号語における位置の規則性に基づく、情報記号から符号語を生成するために情報記号を再配置する専用命令、復号された符号語から情報記号を抽出する専用命令、1ワード以下の長さの符号語に対する検査記号とシンドロームの計算を1サイクルで実行する専用命令、1ワード以下の長さの符号語の誤りの検出と訂正を1サイクルで実行する専用命令、及び2ワード以上の記号列の排他的論理和をとる規則性に基づく、2ワード以上の長さの記号列の検査記号とシンドロームの計算を効率よく実行するための補助命令、2ワード以上の長さの符号語の誤り検出・誤り訂正を効率よく実行するための補助命令を備えた命令メモリと、
     前記プロセッサが前記命令メモリの専用命令と補助命令を含む命令を発行し検査行列・シンドロームの計算または誤り訂正の計算をして結果のデータを出力する専用演算回路と、
     前記伝送する情報データ、前記受信した情報データ、前記結果のデータを入れるデータメモリと、
     前記プロセッサ、前記専用演算回路及び前記データメモリ間のデータ転送を行うデータバスと
    を備える請求項2、請求項3、請求項4または請求項5記載の方法を用いる誤り訂正符号処理装置。
  7.  前記専用演算回路は、
    検査行列・シンドロームの計算をして前記結果のデータを出力する検査行列・シンドローム演算回路と、誤り訂正の計算をして前記結果のデータを出力する誤り訂正回路と
     を備える請求項6記載の誤り訂正符号処理装置。
  8.  長さL=2m+n(mは1以上の整数、nは2以上の整数)の情報記号X=(xL-1,xL-2,・・・,x1,x0)を情報データとして伝送する場合の誤り訂正符号処理方法であって、
     符号語Yの符号長がN=2m+n+2(m+n)、検査記号がQ=(qm+n-1,qm+n-2,・・・q1,q0),PP=(ppm+n-1,ppm+n-2,・・・pp1,pp0)で、前記情報記号XがMワード(M=2m、1ワードのビット長Lw=2n)の長さの場合、
     請求項1記載の前記情報記号列Vとして拡張した前記情報記号Xを使い、請求項1の方法を用いて得られる前記降順記号Qを前記検査記号Qとし、前記昇順記号PPを前記検査記号PPとして生成する第31ステップ
     を有する誤り訂正符号処理方法。
  9.  請求項8記載の符号語Yがデータ伝送され受信した情報データである符号語Y'= (y'0, ,y'1,・・・,y'N-2,y'N-1)を復号する誤り訂正符号処理方法であって、
     前記符号語Y'に含まれる受信した情報記号をX'=(x'L-1,x'L-2,・・・,x'1,x'0)、送信した検査記号Q,PPに対応する受信した検査記号がそれぞれQ'=(q'm+n-1,q'm+n-2,・・・q'1,q'0),PP'=(pp'm+n-1,pp'm+n-2,・・・pp1,pp0)とした場合、
     請求項1記載の前記情報記号列Vとして受信した情報記号X'を使い請求項1記載の方法を用いて得られる前記降順記号Qを検査記号SQ=(sqm+n-1, sqm+n-2,・・・sq1, sq0)とし、前記昇順記号PPを検査記号SPP=(sppm+n-1, sppm+n-2,・・・spp1, spp0)として生成する第32ステップと、
     受信した検査記号Q'と生成した検査記号SQの要素毎の排他的論理和を算出しシンドロームSSQ=(ssqm+n-1, ssqm+n-2,・・・ssq1, ssq0)を生成し、受信した検査記号PP'と生成した検査記号SPPの要素毎の排他的論理和を算出し、シンドロームSSP=(sspm+n-1, sspm+n-2,・・・ssp1, ssp0)を生成する第33ステップと、
     前記シンドロームSSQ,SSPから誤りの有無と種類を判定する第34ステップと、
     前記シンドロームSSQ,SSPの要素の少なくとも1ビットが1であり誤り有りと判定され、かつSSQとSSPの要素毎に排他的論理和をとった結果すべてのビットが1であり前記情報記号X'に1ビット誤りがあると判定された場合、前記シンドロームSSQの上位mビットをSSQHとし、下位nビットをSSQLとした時、前記情報記号X' においてSSQHで指定される位置のワード中で、SSQLで指定される位置の要素の値を反転し、前記情報記号X'を訂正する第35ステップと
     を有する誤り訂正符号処理方法。
  10.  情報記号をxを変数(モジュロ2)とする多項式で表現した情報記号多項式にxk(生成多項式の次数k)を乗じたシフト情報記号多項式を生成多項式で除算し剰余を算出する第1の演算により、剰余の多項式の係数を検査記号として求め、情報記号と合わせて符号語を生成し、データとして送信するCRC符号化方法であって、
     前記第1の演算における前記シフト情報記号多項式の変数xの最高次からの各項を前記生成多項式にxのべき乗を乗算し引くことにより段階的に消去する各段の第2の演算を前記シフト情報記号多項式の係数を並べたベクトルから始まり各段の途中段階の剰余の係数を並べたベクトルに対する同一の行列Gとの積で表現し、所定の回数の前記行列Gのみの積を予め算出して前記第2の演算を前記所定の回数繰り返した後の前記第1の演算の部分演算単位を表現する部分演算行列とするステップ1と、
     前記シフト情報記号多項式のベクトルと前記部分演算行列との積を途中段階の剰余のベクトルとして求めることから始めて前記所定の回数ごとの途中段階の剰余のベクトルと前記部分演算行列との積を次の途中段階の剰余のベクトルとして順次求める演算を行い、検査記号を生成するステップ2と
     を有するCRC符号化方法。
  11.  請求項10記載の符号語がデータ伝送され受信したデータである受信符号語を復号するCRC復号化方法であって、
     前記受信符号語を多項式で表現した受信符号語多項式を請求項10記載の前記生成多項式により除算し剰余を算出する第3の演算により、剰余の多項式の係数をシンドロームとして生成する際に、前記第3の演算における前記受信符号語多項式の変数xの最高次からの各項を前記生成多項式にxのべき乗を乗算し引くことにより段階的に消去する各段の第4の演算において、前記受信符号語多項式のベクトルと前記部分演算行列との積を途中段階の剰余のベクトルとして求めることから始めて前記所定の回数ごとの途中段階の剰余のベクトルと請求項10記載の前記部分演算行列との積を次の途中段階の剰余のベクトルとして順次求める演算を行い、シンドロームを生成するステップ10と、
     請求項10記載の前記部分行列の逆行列を予め算出するステップ11と、
     前記シンドロームから誤りの有無と種類を判定するステップ12と、
     前記シンドロームにおいて1であるビットの総数が1個であり、前記受信符号語の下位から前記検査記号のビット幅中に1ビット誤りがあると判定された場合、前記シンドロームの1であるビット位置で指定される前記受信符号語のビットの値を反転し前記符号語を訂正するステップ13と、
     前記シンドロームにおいて1であるビットの総数が2個以上であり、前記シンドロームに前記逆行列を乗ずることを繰り返した結果、t回目(tは1以上の整数)の結果のシンドロームにおいて1であるビットの総数が1個となり、前記検査記号のビット幅を単位幅として前記受信符号語の下位からt+1番目の位置のビット幅中に1ビット誤りがあると判定された場合、前記受信符号語の下位からt+1番目の位置のビット幅中の前記t回目の結果のシンドロームの1であるビット位置で指定されるビットの値を反転し前記符号語を訂正するステップ14と
     を有するCRC復号化方法。
  12.  符号語を生成しデータとして送信する請求項10記載のCRC符号化方法であって、
     1ワードのビット数が前記検査記号のビット長kの自然数倍mで前記情報がMワードの長さの時、
     前記ステップ1において前記部分演算行列は前記所定の回数をmk,(m-1)k,・・・,k(kの倍数)としてm個の積行列Gmk,G(m-1)k,G(m-2)k,・・・,Gkであり、
    前記ステップ2において前記シフト情報記号多項式のベクトルから始めて前記所定の回数ごとの途中段階の剰余のベクトルを順次求める演算を行うに替えて、前記シフト情報記号多項式のベクトルをワード毎にわけワード毎に一括した演算を順次行うに際して、1ワード中のビット幅k単位のk個の要素を持つベクトルにわけてワード中の最初のビット幅のベクトルに対して積行列Gmkを乗じた結果のベクトルの要素とひとつ前のワードに対する前記一括した演算の結果のベクトルの要素との排他的論理和をとったベクトルの要素と、ワード中の次以降のビット幅の位置のk個の要素を持つ(m-1)個のベクトルに対してそれぞれG(m-1)k,G(m-2)k,・・・,Gkを乗じた結果のベクトルの要素との排他的論理和をとりワード中の前記一括した演算として行うことを特徴とするCRC符号化方法。
  13.  請求項12記載の符号語がデータ伝送され受信したデータである受信符号語を復号する請求項11記載のCRC復号化方法であって、
     1ワードのビット数が前記検査記号のビット長kの自然数倍mで、前記情報がMワードの長さの時、
     前記ステップ10において、前記部分演算行列は前記所定の回数をmk,(m-1)k,・・・,k(kの倍数)としてm個の積行列Gmk,G(m-1)k,G(m-2)k,・・・,Gkであり、
     前記ステップ10において、前記受信符号語多項式のベクトルから始めて前記所定の回数ごとの途中段階の剰余のベクトルを順次求める演算を行うに替えて、前記受信符号語多項式のベクトルをワード毎にわけワード毎に一括した演算を順次行うに際して、1ワード中のビット幅k単位のk個の要素を持つベクトルにわけてワード中の最初のビット幅のベクトルに対して積行列Gmkを乗じた結果のベクトルの要素とひとつ前のワードに対する前記一括した演算の結果のベクトルの要素との排他的論理和をとったベクトルの要素と、ワード中の次以降のビット幅の位置のk個の要素を持つ(m-1)個のベクトルに対してそれぞれG(m-1)k,G(m-2)k,・・・,Gkを乗じた結果のベクトルの要素との排他的論理和をとりワード中の前記一括した演算として行い、
     請求項11記載の逆行列はGkの逆行列G-kであることを特徴とするCRC復号化方法。
  14.  プロセッサと、
     請求項12または請求項13記載の方法を実行させる際に発行する命令として、前記ステップ2または前記ステップ10においてそれぞれ前記検査記号または前記シンドロームを算出するにおけるワード毎に一括した演算をする命令、及び、前記ステップ13または前記ステップ14において前記符号語の誤り訂正を行う命令を備えた命令メモリと、
     前記プロセッサが前記命令メモリの命令を発行し、検査行列・シンドロームの計算または誤り訂正の計算をして結果のデータを出力する専用演算回路と、
     前記伝送する情報データ、前記受信した情報データ、前記結果のデータを入れるデータメモリと、
     前記プロセッサ、前記専用演算回路及び前記データメモリ間のデータ転送を行うデータバスと
     を備える、請求項12または請求項13記載の方法を用いる誤り訂正符号処理装置。
  15.  前記専用演算回路は、
     検査行列・シンドロームの計算をして前記結果のデータを出力する検査行列・シンドローム演算回路と、
     誤り訂正の計算をして前記結果のデータを出力する誤り訂正回路と
     を備える請求項14記載の誤り訂正符号処理装置。
  16.  前記データメモリは、誤り位置計算のためのLook-up Tableを保持している表引き用領域を含む
     請求項14または請求項15に記載の誤り訂正符号処理装置。
  17.  前記専用演算回路は、再構成可能ハードウェアで構成されている
     請求項14または請求項15に記載の誤り訂正符号処理装置。
  18.  送信システムから送られてくる符号語を受信し、符号語数をカウントするステップ100と、
     ビット誤り回数を、訂正可能な誤りを検出した場合にカウントするステップ110と、
     前記ビット誤り回数と前記符号語数との商をビット誤り率としたとき、前記ビット誤り率がビット誤り率の上限を超えた場合には、誤り訂正レベルを上げ、前記誤り訂正レベルが前記誤り訂正レベルの上限を超えた場合には、前記誤り訂正レベルの上限を前記誤り訂正レベルとするとともに、前記誤り訂正レベルを前記送信システムに通知するステップ120と、
     前記符号語数が誤り訂正レベル変更に必要な最小受信回数を超えかつ前記ビット誤り率がビット誤り率の下限を下回った場合には、前記誤り訂正レベルを下げ、前記誤り訂正レベルが前記誤り訂正レベルの下限を下回った場合には、前記誤り訂正レベルの下限を前記誤り訂正レベルとするとともに、前記誤り訂正レベルを前記送信システムに通知するステップ130と
     を含む符号語長及び生成多項式の調整方法。
PCT/JP2011/002639 2010-05-11 2011-05-11 誤り訂正符号処理方法及びその装置 WO2011142133A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012514716A JPWO2011142133A1 (ja) 2010-05-11 2011-05-11 誤り訂正符号処理方法及びその装置
US13/697,576 US9166624B2 (en) 2010-05-11 2011-05-11 Error-correcting code processing method and device
EP11780392.4A EP2571172A4 (en) 2010-05-11 2011-05-11 METHOD AND DEVICE FOR PROCESSING ERROR CORRECTING CODE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010109590 2010-05-11
JP2010-109590 2010-05-11

Publications (1)

Publication Number Publication Date
WO2011142133A1 true WO2011142133A1 (ja) 2011-11-17

Family

ID=44914193

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/002639 WO2011142133A1 (ja) 2010-05-11 2011-05-11 誤り訂正符号処理方法及びその装置

Country Status (4)

Country Link
US (1) US9166624B2 (ja)
EP (1) EP2571172A4 (ja)
JP (1) JPWO2011142133A1 (ja)
WO (1) WO2011142133A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981923A (zh) * 2012-11-07 2013-03-20 上海大学 一种结合奇偶校验的三阶征兆测试方法
CN109921805A (zh) * 2019-03-01 2019-06-21 桂林理工大学 一种基于[63,12,24]循环码的纠错编码方法
CN112687324A (zh) * 2019-10-17 2021-04-20 爱思开海力士有限公司 奇偶校验生成电路、存储器控制器和含该电路的存储模块
CN114173164A (zh) * 2021-12-18 2022-03-11 杭州视洞科技有限公司 一种基于国标gb28181协议的平滑推流方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013038464A1 (en) * 2011-09-16 2013-03-21 Hitachi, Ltd. Multi-stage encoding and decoding of bch codes for flash memories
US8694872B2 (en) * 2011-11-28 2014-04-08 Texas Instruments Incorporated Extended bidirectional hamming code for double-error correction and triple-error detection
US9077381B2 (en) * 2013-02-27 2015-07-07 Kabushiki Kaisha Toshiba Memory controller, storage device and memory control method
GB2537876A (en) * 2015-04-29 2016-11-02 Advanced Risc Mach Ltd Error protection key generation method and system
US20170147430A1 (en) 2015-11-20 2017-05-25 Texas Instruments Incorporated Methods and apparatus to detect and correct errors in destructive read non-volatile memory
US10114696B2 (en) 2016-07-14 2018-10-30 International Business Machines Corporation Tracking data access in a dispersed storage network
GB201710839D0 (en) * 2017-07-05 2017-08-16 Irdeto Bv Data protection
CN110489351B (zh) * 2018-05-14 2021-03-09 英韧科技(上海)有限公司 芯片指纹管理装置及安全芯片
KR102045437B1 (ko) * 2018-09-07 2019-12-02 고려대학교 산학협력단 저복잡도 신드롬 기반 복호 장치 및 그 방법
TWI688223B (zh) * 2019-02-11 2020-03-11 義守大學 代數幾何碼的赫米特碼之編碼及解碼方法
CN109873647A (zh) * 2019-03-01 2019-06-11 桂林理工大学 一种基于[255,16,112]循环码的强纠错编码方法
CN110071727B (zh) * 2019-04-26 2023-05-05 成都海光集成电路设计有限公司 编码方法、译码方法、纠错方法及装置
GB2585271B (en) * 2019-07-01 2022-04-13 Accelercomm Ltd Cyclic redundancy check computation circuit, communication unit, and method therefor
GB2585207B (en) * 2019-07-01 2021-06-16 Accelercomm Ltd Cyclic redundancy check computation circuit, communication unit, and method therefor
CN110460340B (zh) * 2019-07-11 2022-04-05 西安电子科技大学 基于随机卷积网络纠错码的自适应构造与译码方法
US11133831B2 (en) * 2019-10-29 2021-09-28 Seagate Technology Llc Code rate adaptation
CN110932736B (zh) * 2019-11-09 2024-04-05 天津大学 一种基于Raptor码及四进制RS码的DNA信息存储方法
US11132244B2 (en) 2019-11-14 2021-09-28 Seagate Technology Llc Block health checking
CN112838872B (zh) * 2019-11-25 2024-07-05 中国科学院微电子研究所 卫星导航用ldpc码译码方法、译码器及接收机
CN112838871A (zh) * 2019-11-25 2021-05-25 中国科学院微电子研究所 卫星导航用ldpc码编码方法、编码器及卫星导航系统
CN112990406B (zh) * 2021-04-15 2021-08-31 北京风筝科技有限公司 一种可加入动态扩展信息的二维码生成、识别方法及装置
CN113935347B (zh) * 2021-10-12 2022-06-21 南通大学 一种基于防伪图片置乱解密的商品防伪码识别方法
CN117220832B (zh) * 2023-11-07 2024-03-15 苏州联讯仪器股份有限公司 一种误码插入方法、装置、系统及计算机存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08265172A (ja) * 1995-03-20 1996-10-11 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正符号処理回路及びその構成方法
JPH09298471A (ja) * 1996-05-07 1997-11-18 Canon Inc 2元巡回符号符号化装置及び2元巡回符号符号化方法、並びに2元巡回符号復号化装置及び2元巡回符号復号化方法
JPH11225133A (ja) * 1998-02-06 1999-08-17 Fujitsu Ltd 誤り訂正符号・復号装置
JP2001237808A (ja) * 2000-02-25 2001-08-31 Matsushita Electric Ind Co Ltd 巡回冗長検査用の符号化装置及びその方法
JP2005006298A (ja) * 2003-06-06 2005-01-06 Agilent Technol Inc Crc値を計算するためのシステムおよび方法
JP2009253440A (ja) * 2008-04-02 2009-10-29 Sony Corp 送信装置および方法、受信装置および方法、並びにプログラム
JP2010009643A (ja) * 2008-06-24 2010-01-14 Toshiba Corp エラー訂正システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313475A (en) 1991-10-31 1994-05-17 International Business Machines Corporation ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
EP0684712B1 (en) 1994-05-17 2005-05-04 Nippon Telegraph And Telephone Corporation Line terminating equipment in SDH networks, using forward error correcting codes
JP3562544B2 (ja) 1996-08-13 2004-09-08 ソニー株式会社 復号化装置および復号化方法
US6799287B1 (en) 2000-05-01 2004-09-28 Hewlett-Packard Development Company, L.P. Method and apparatus for verifying error correcting codes
JP3880934B2 (ja) * 2003-01-28 2007-02-14 Necエレクトロニクス株式会社 Crc符号生成方法
US7103832B2 (en) * 2003-12-04 2006-09-05 International Business Machines Corporation Scalable cyclic redundancy check circuit
US7328396B2 (en) * 2004-05-28 2008-02-05 International Business Machines Corporation Cyclic redundancy check generating circuit

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08265172A (ja) * 1995-03-20 1996-10-11 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正符号処理回路及びその構成方法
JPH09298471A (ja) * 1996-05-07 1997-11-18 Canon Inc 2元巡回符号符号化装置及び2元巡回符号符号化方法、並びに2元巡回符号復号化装置及び2元巡回符号復号化方法
JPH11225133A (ja) * 1998-02-06 1999-08-17 Fujitsu Ltd 誤り訂正符号・復号装置
JP2001237808A (ja) * 2000-02-25 2001-08-31 Matsushita Electric Ind Co Ltd 巡回冗長検査用の符号化装置及びその方法
JP2005006298A (ja) * 2003-06-06 2005-01-06 Agilent Technol Inc Crc値を計算するためのシステムおよび方法
JP2009253440A (ja) * 2008-04-02 2009-10-29 Sony Corp 送信装置および方法、受信装置および方法、並びにプログラム
JP2010009643A (ja) * 2008-06-24 2010-01-14 Toshiba Corp エラー訂正システム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
EIJI FUJIWARA: "Code Design for Dependable Systems", WILEY
ROBERT H. MORELOS-ZARAGOZA: "The art of error correcting coding", WILEY
See also references of EP2571172A4 *
SHU LIN; D. J. COSTELLO, JR.: "Error Control Coding", PEARSON PRENTICE HALL

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981923A (zh) * 2012-11-07 2013-03-20 上海大学 一种结合奇偶校验的三阶征兆测试方法
CN102981923B (zh) * 2012-11-07 2015-12-02 上海大学 一种结合奇偶校验的三阶征兆测试方法
CN109921805A (zh) * 2019-03-01 2019-06-21 桂林理工大学 一种基于[63,12,24]循环码的纠错编码方法
CN112687324A (zh) * 2019-10-17 2021-04-20 爱思开海力士有限公司 奇偶校验生成电路、存储器控制器和含该电路的存储模块
CN114173164A (zh) * 2021-12-18 2022-03-11 杭州视洞科技有限公司 一种基于国标gb28181协议的平滑推流方法
CN114173164B (zh) * 2021-12-18 2023-08-15 杭州视洞科技有限公司 一种基于国标gb28181协议的平滑推流方法

Also Published As

Publication number Publication date
EP2571172A4 (en) 2013-10-16
EP2571172A1 (en) 2013-03-20
US9166624B2 (en) 2015-10-20
US20130061115A1 (en) 2013-03-07
JPWO2011142133A1 (ja) 2013-07-22

Similar Documents

Publication Publication Date Title
WO2011142133A1 (ja) 誤り訂正符号処理方法及びその装置
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US8954828B2 (en) Memory controller
KR101616478B1 (ko) 프로그램가능한 프로세서 상에서의 임의의 갈루아 필드 산술연산의 구현
JP4978625B2 (ja) 誤り訂正符号化方法及び装置
CN103886915B (zh) 用于校正包括邻近2比特错误的3比特错误的电路和方法
US20190108093A1 (en) Encoding and decoding of permuted cyclic codes
CN101483442B (zh) 根据Nand Flash多余空间来配置纠错能力的BCH解码器
US8700971B2 (en) Parallel residue arithmetic operation unit and parallel residue arithmetic operating method
WO2016050323A1 (en) Method and device for calculating a crc code in parallel
US9614550B2 (en) Parallel BCH coding circuit, encoder and method
CN101296053A (zh) 计算循环冗余校验码之方法及系统
KR20190003315A (ko) 일반화된 텐서곱(gtp) 코드의 효율적인 인코딩 방법 및 그 장치
JP2012050008A (ja) 誤り検出訂正方法および半導体メモリ装置
US10404278B2 (en) Parallel pipeline logic circuit for generating CRC values utilizing lookup table
KR19990026630A (ko) 리드-솔로몬 복호기와 그 복호방법
CN107688506B (zh) 一种流水结构的bch译码系统
US10367529B2 (en) List decode circuits
CN118251844A (zh) 在极化码中使用特殊节点进行极化编码的系统和方法
Mondal et al. Efficient hardware design architectures for BCH product codes in the frequency domain
CN101777922B (zh) 用于BCH译码器的高速低延时Berlekamp-Massey迭代译码电路
US9467173B2 (en) Multi-code Chien&#39;s search circuit for BCH codes with various values of m in GF(2m)
Lee et al. Implementation of parallel BCH encoder employing tree-type systolic array architecture
Shukla LFSR based versatile divider architectures for BCH and RS error correction encoders
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012514716

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13697576

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2011780392

Country of ref document: EP