JP2014057203A - Galois field arithmetic circuit and memory device - Google Patents

Galois field arithmetic circuit and memory device Download PDF

Info

Publication number
JP2014057203A
JP2014057203A JP2012200621A JP2012200621A JP2014057203A JP 2014057203 A JP2014057203 A JP 2014057203A JP 2012200621 A JP2012200621 A JP 2012200621A JP 2012200621 A JP2012200621 A JP 2012200621A JP 2014057203 A JP2014057203 A JP 2014057203A
Authority
JP
Japan
Prior art keywords
error
galois field
circuit
data
polynomial
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2012200621A
Other languages
Japanese (ja)
Inventor
Koji Murata
光司 村田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to JP2012200621A priority Critical patent/JP2014057203A/en
Priority to KR1020130039897A priority patent/KR102064857B1/en
Priority to US14/024,758 priority patent/US9317352B2/en
Publication of JP2014057203A publication Critical patent/JP2014057203A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Abstract

PROBLEM TO BE SOLVED: To provide a Galois field arithmetic circuit that has a reduced circuit scale for operation on an error location detection polynomial.SOLUTION: A Galois field arithmetic circuit 34 for substituting (2-1) elements (m is an integer) vector-represented by m bits on a Galois field GF(2) into an error location detection polynomial includes a base calculation section 330 for calculating m linear independent ones of the (2-1) elements, and a linear expansion section 340 for determining (2-1-m) of the (2-1) elements other than the m elements as combinations of the m elements, respectively.

Description

本発明は、誤り検出訂正回路で用いられるガロア体演算回路、及びメモリ装置に関する。   The present invention relates to a Galois field arithmetic circuit used in an error detection and correction circuit, and a memory device.

電気的書き換え可能な不揮発性半導体記憶装置(EEPROM;Electrically Erasable and Programmable Read Only Memory)の一つとして、NAND型フラッシュメモリが知られている。NAND型フラッシュメモリは、複数のメモリセルを直列接続したNANDセルユニット(NANDストリング)を用いることにより、小さいチップ面積での大容量記憶を可能としている。   A NAND flash memory is known as one of electrically rewritable nonvolatile semiconductor memory devices (EEPROM) that are electrically erasable and programmable read only memory (EEPROM). The NAND flash memory uses a NAND cell unit (NAND string) in which a plurality of memory cells are connected in series, thereby enabling large-capacity storage with a small chip area.

NAND型フラッシュメモリでは、データ保持中などに様々な原因で記憶内容が壊れる。例えば、多数回の書き換えに伴うトンネル酸化膜の劣化等に起因して、データ保持中に記憶素子(メモリセル)の保持特性が失われ、エラービットの発生率(エラー率)が大きくなる傾向がある。特に、NAND型フラッシュメモリでは、メモリ容量の大規模化と製造プロセスの微細化が進むとエラー率は上昇する傾向がある。
これに対処するために、誤り検出訂正回路(ECC回路)がNAND型フラッシュメモリの性能向上のため使用されてきた。この誤り検出訂正回路をオンチップで搭載することにより、高信頼性メモリを提供することが可能になる。
In the NAND type flash memory, the stored contents are destroyed due to various reasons while holding data. For example, the retention characteristics of the memory element (memory cell) are lost during data retention due to deterioration of the tunnel oxide film due to many rewrites, and the error bit generation rate (error rate) tends to increase. is there. In particular, in the NAND flash memory, the error rate tends to increase as the memory capacity increases and the manufacturing process becomes finer.
In order to cope with this, an error detection and correction circuit (ECC circuit) has been used for improving the performance of the NAND flash memory. By mounting this error detection and correction circuit on-chip, it is possible to provide a highly reliable memory.

なお、誤り訂正回路として、有限体(ガロア体)GF(2)によるガロア体演算回路を用いた回路がある(特許文献1を参照)。この特許文献1に記載のガロア体演算回路は、ガロア体GF(2)上のmビットでベクトル表現される2つの元の乗算を行う際、乗算過程での下位mビット以外の上位ビットの成分についてそれぞれEXOR演算して求め、その出力を、与えられる原始多項式f(X)により、mビットのベクトル表現に変換し、下位mビットの成分とEXOR演算することにより、乗算されたベクトル出力を得る。これにより、ガロア体上での乗算回路構成の簡略化を図る。 As an error correction circuit, there is a circuit using a Galois field arithmetic circuit based on a finite field (Galois field) GF (2 m ) (see Patent Document 1). In the Galois field arithmetic circuit described in Patent Document 1, when performing two original multiplications represented by m bits on a Galois field GF (2 m ), higher-order bits other than the lower-order m bits in the multiplication process are used. Each component is obtained by performing an EXOR operation, and its output is converted into an m-bit vector representation by a given primitive polynomial f (X), and an EXOR operation is performed on the lower m-bit component to obtain a multiplied vector output. obtain. This simplifies the multiplication circuit configuration on the Galois field.

特開平6−314979号公報JP-A-6-314979

ところで、BCH符号やRS符号で代表される線形ブロック符号を用いたエラー訂正処理において、最も時間がかかるのが、誤り位置検出多項式(エラー位置探索方程式)P(X)の零点を求める(誤りであるか否かを検出する)処理である。一般的にこの零点を求める処理は、例えば、図12に示すガロア体演算回路(4次多項式のガロア体演算回路)において、誤り位置検出多項式P(X)の係数p,p,p,p,pが確定した後、ガロア体要素(元)Xとして、1,α,α,α,・・・,αt−2(ただしt=2)、を順次入力して、P(X)の零点を求める。この処理にかかる時間は、多項式の変数Xの取りうる値のすべてを一度に計算することで大幅に短縮できる。例えば、図13に示すように、各要素1,α,α,α,・・・,αt−2のそれぞれについての並列演算回路を設け、P(1),P(α),P(α),・・・,P(αt−2)(ただしt=2)を同時に演算することにより、誤り位置検出多項式における演算時間を大幅に短縮できる。しかしながら、図13に示す方法では、誤り位置検出多項式を算出するための回路規模が非常に大きくなり、誤り検出訂正回路をメモリ装置にオンチップで搭載することが非常に困難となる。 By the way, in an error correction process using a linear block code represented by a BCH code or an RS code, the most time consuming process is to obtain a zero point of an error position detection polynomial (error position search equation) P (X). Detection process). In general, the processing for obtaining the zero is performed by, for example, the coefficients p 0 , p 1 , and p 2 of the error position detection polynomial P (X) in the Galois field arithmetic circuit (fourth-order polynomial Galois field arithmetic circuit) shown in FIG. , P 3 , p 4 are determined, 1, α, α 2 , α 3 ,..., Α t−2 (where t = 2 m ) are sequentially input as Galois field elements (elements) X Thus, the zero point of P (X) is obtained. The time required for this process can be greatly reduced by calculating all the possible values of the polynomial variable X at once. For example, as shown in FIG. 13, a parallel operation circuit is provided for each of the elements 1, α, α 2 , α 3 ,..., Α t−2 , and P (1), P (α 1 ), By simultaneously calculating P (α 2 ),..., P (α t−2 ) (where t = 2 m ), the calculation time in the error position detection polynomial can be greatly reduced. However, in the method shown in FIG. 13, the circuit scale for calculating the error position detection polynomial becomes very large, and it becomes very difficult to mount the error detection and correction circuit on-chip in the memory device.

そこで本発明が解決しようとする課題は、誤り位置検出多項式を演算するための回路の規模を縮小することができる、ガロア体演算回路、及びメモリ装置を提供することにある。   Therefore, an object of the present invention is to provide a Galois field arithmetic circuit and a memory device that can reduce the scale of a circuit for calculating an error position detection polynomial.

本発明のガロア体演算回路は、ガロア体GF(2)上(mは整数、以下同じ)のmビットによりベクトル表現される(2−1)個の元を誤り位置検出多項式へ代入するガロア体演算回路であって、前記(2−1)個の元のうちから、線形独立なm個の元を計算する基底計算部と、前記(2−1)個の元のうちから前記線形独立なm個の元を除いた(2−1−m)個の元を、それぞれ前記m個の元の組合せとして求める線形展開部と、を備えることを特徴とする。 The Galois field arithmetic circuit of the present invention substitutes (2 m −1) elements represented by m bits on the Galois field GF (2 m ) (m is an integer, the same shall apply hereinafter) into the error position detection polynomial. a Galois field operation circuit, said from (2 m -1) number of elements of the base calculation unit for calculating a linearly independent m-number of the original, from the (2 m -1) number of elements of A linear expansion unit that obtains (2 m −1−m) elements excluding m linearly independent elements as a combination of the m elements.

また、本発明のガロア体演算回路は、前記誤り位置検出多項式において同一の線形空間を構成している項を線形関数として統合し、この統合された線形関数に対して、前記基底計算部と前記線形展開部とにより演算を行うことを特徴とする。   Also, the Galois field arithmetic circuit of the present invention integrates the terms constituting the same linear space in the error position detection polynomial as a linear function, and for the integrated linear function, the basis calculation unit and the The calculation is performed by a linear expansion unit.

また、本発明のメモリ装置は、上記のガロア体演算回路を用いて誤り位置検出多項式の演算を行い、入力されるデータ列の誤り検出を行う誤り訂正回路を備えるメモリ装置であって、前記誤り検出訂正回路は、前記入力されるデータ列からシンドロームを計算するシンドローム計算部と、前記シンドロームから前記誤り位置検出多項式の係数を算出する誤り係数計算部と、前記データ列のデータのビット位置を示す値と、前記係数とを前記誤り位置検出多項式に代入して演算する前記ガロア体演算回路と、前記誤り位置検出多項式への代入結果に応じて、前記データ列のビット毎に誤りが有るか否かを示すエラー検出信号を出力するチェン探索部と、前記エラー検出信号により前記データ列におけるビットのデータの誤りを訂正して出力する誤り訂正部と、を備えることを特徴とする。   The memory device of the present invention is a memory device including an error correction circuit that performs error position detection polynomial calculation using the Galois field calculation circuit and detects an error of an input data string, The detection correction circuit indicates a syndrome calculation unit that calculates a syndrome from the input data sequence, an error coefficient calculation unit that calculates a coefficient of the error position detection polynomial from the syndrome, and indicates a bit position of data in the data sequence Whether or not there is an error for each bit of the data string according to the substitution result to the error position detection polynomial, and the Galois field arithmetic circuit that substitutes the value and the coefficient into the error position detection polynomial. A chain search unit that outputs an error detection signal indicating whether or not an error in the bit data in the data string is corrected by the error detection signal and output. Ri and correction unit, characterized in that it comprises a.

本発明のガロア体演算回路は、ガロア体GF(2)上の(2−1)個の元のうちから、線形独立なm個の元を計算する基底計算部と、上記(2−1)個の元のうちから上記線形独立なm個の元を除いた(2−1−m)個の元を、それぞれ線形独立なm個の元の組合せとして求める線形展開部と、を備える。
これにより、ガロア体演算回路において、誤り位置検出多項式を演算するための回路の規模を縮小することができる。
The Galois field arithmetic circuit of the present invention includes a basis calculation unit that calculates linearly independent m elements from (2 m −1) elements on the Galois field GF (2 m ), and the above (2 m -1) a linear expansion unit that obtains (2 m -1-m) elements obtained by removing the above linearly independent m elements from the elements, as a combination of m linearly independent elements, Is provided.
Thereby, in the Galois field arithmetic circuit, the scale of the circuit for calculating the error position detection polynomial can be reduced.

本発明の実施形態に係わるメモリ装置の全体構成を示す図である。1 is a diagram illustrating an overall configuration of a memory device according to an embodiment of the present invention. 誤り検出訂正回路の構成例を示す図である。It is a figure which shows the structural example of an error detection correction circuit. ガロア体GF(2)の要素を表で示した図である。It is the figure which showed the element of the Galois field GF (2 < 4 >) by the table | surface. ガロア体GF(2)の要素を表で示した図である。It is the figure which showed the element of the Galois field GF (2 3 ) by the table | surface. ガロア体演算回路34の構成例を示す図である。3 is a diagram illustrating a configuration example of a Galois field arithmetic circuit 34. FIG. 多項式の線形構造の例を示す図である。It is a figure which shows the example of the linear structure of a polynomial. 図5に示すガロア体演算回路34の演算動作について説明するための図である。It is a figure for demonstrating the calculation operation | movement of the Galois field arithmetic circuit 34 shown in FIG. Xについての線形項を計算する回路の例を示す図である。2 is a diagram illustrating an example of a circuit that calculates a linear term for X. FIG. 図4の表2に示す元を3乗した例を示す図である。It is a figure which shows the example which cubed the element shown in Table 2 of FIG. についての線形項を計算する回路の例を示す図である。Is a diagram illustrating an example of a circuit for calculating a linear term for X 3. 回路素子の削減効果について説明するための図である。It is a figure for demonstrating the reduction effect of a circuit element. 従来のガロア体多項式の零点を求めるガロア体演算回路の例を示す図である。It is a figure which shows the example of the Galois field arithmetic circuit which calculates | requires the zero of the conventional Galois field polynomial. 並列演算回路を用いたガロア体演算回路の例を示す図である。It is a figure which shows the example of the Galois field arithmetic circuit using a parallel arithmetic circuit. 行列演算の例を示す図である。It is a figure which shows the example of a matrix calculation.

以下、本発明の実施の形態を添付図面を参照して説明する。
[概要]
従来のガロア体演算回路は、例えば、図12に示す回路(4次多項式の回路)において、誤り位置検出多項式P(X)の係数p,p,p,p,pが確定した後、ガロア体要素(元)Xとして、1(=α),α(=α),α,α,・・・を順次入力していき、P(X)の零点を求めている。
より具体的には、従来のガロア体多項式の零点を求めるガロア体演算回路では、第1の手順として、係数p(i=0,2,3,4)を計算し、第2の手順として、項pを計算し、第3手順として、i=0,1,3,4に対応する各項を足し合わせる。そして、上記第1、第2及び第3の手順を、取り得る全ての要素X(1,α,α,α,・・・)、あるいはその一部に対して行い、多項式P(X)の零点を求める。しかしながら、この方法では、ガロア体の要素1,α,α,α,・・・を順次入力していきP(X)の零点を求めるため、零点を求めるのに非常に長い時間がかかる。
Embodiments of the present invention will be described below with reference to the accompanying drawings.
[Overview]
In the conventional Galois field arithmetic circuit, for example, the coefficients p 0 , p 1 , p 2 , p 3 , and p 4 of the error position detection polynomial P (X) are determined in the circuit shown in FIG. 12 (fourth order polynomial circuit). Then, as the Galois field element (element) X, 1 (= α 0 ), α (= α 1 ), α 2 , α 3 ,... Are sequentially input to find the zero of P (X) ing.
More specifically, in the conventional Galois field arithmetic circuit for obtaining the zero of the Galois field polynomial, the coefficient p i (i = 0, 2, 3, 4) is calculated as the first procedure, and the second procedure is performed as the second procedure. , Term p i X i is calculated, and the terms corresponding to i = 0, 1, 3, 4 are added together as a third procedure. Then, the first, second, and third procedures are performed on all possible elements X (1, α, α 2 , α 3 ,...) Or a part thereof, and the polynomial P (X ). However, in this method, Galois field elements 1, α, α 2 , α 3 ,... Are sequentially input to obtain the zero of P (X), and thus it takes a very long time to obtain the zero. .

これに対処するために、多項式P(X)の零点を一度に求める回路(4次多項式の例)を用いることができる。例えば、図13に示すガロア体演算回路に示すように、各要素1(α),α,α,α,・・・,αt−2(ただしt=2)のそれぞれについての並列演算回路を設け、P(1),P(α),P(α),P(α),・・・,P(αt−2)を同時に演算することにより、誤り位置検出多項式における演算時間を大幅に短縮できる。しかしながら、この図13に示す方法では、取りうるすべてのXに対するP(X)を一括で求めるため、各ビットの零点を求めるのに時間はかからないが、回路規模が非常に大きくなる。 In order to cope with this, a circuit (an example of a fourth-order polynomial) that obtains zeros of the polynomial P (X) at a time can be used. For example, as shown in the Galois field arithmetic circuit shown in FIG. 13, each element 1 (α 0 ), α, α 2 , α 3 ,..., Α t−2 (where t = 2 m ) Error position detection by providing a parallel arithmetic circuit and calculating P (1), P (α 1 ), P (α 2 ), P (α 3 ),..., P (α t−2 ) simultaneously The calculation time in the polynomial can be greatly reduced. However, in the method shown in FIG. 13, since P (X) for all possible Xs is obtained at once, it takes no time to obtain the zero of each bit, but the circuit scale becomes very large.

図13に示すような回路構成において、各ユニットの各項に対応する部分は定数元を掛ける演算が線形演算であることから行列演算で表される(例えば、図14に示す行列演算の例を参照)。ここで、演算に使用される行列は、ガロア体要素Xをベクトルとみなした際、これを他のベクトルに変換する行列である。そして、ガロア体GF(2)を採用した場合(mはガロア体要素をバイナリデータとみなした場合のデータ長に相当)、行列演算部分に対応する回路は約m(m−1)/2個のEXOR素子で構成される。そして、多項式の次数nのとき、これら行列演算の結果mビットをn+1項分足し合わせるので、これにm×n個のEXOR素子が必要である。Xが取りうる値の範囲をガロア体全体とすると、図13のユニット数は2−1個であり、総計が、
(n+1)×(2−1)×m(m−1)/2+n×(2−1)×m
となる。
In the circuit configuration as shown in FIG. 13, the portion corresponding to each term of each unit is represented by a matrix operation because the operation of multiplying the constant element is a linear operation (for example, an example of the matrix operation shown in FIG. 14). reference). Here, the matrix used for the calculation is a matrix for converting the Galois field element X into another vector when the Galois field element X is regarded as a vector. When the Galois field GF (2 m ) is adopted (m corresponds to the data length when the Galois field element is regarded as binary data), the circuit corresponding to the matrix operation part is about m (m−1) / 2. It is composed of one EXOR element. When the degree of the polynomial is n, m bits of the matrix operation result are added by n + 1 terms, and this requires m × n EXOR elements. If the range of possible values of X is the entire Galois field, the number of units in FIG. 13 is 2 m −1, and the total is
(N + 1) × (2 m −1) × m (m−1) / 2 + n × (2 m −1) × m
It becomes.

例えば、m=8、n=4の場合は、総計約43800個のEXOR素子が必要になる。このように、各項の演算を2入力の掛け算から行列演算に置き換えたとしても、回路規模が非常に大きくなる。   For example, when m = 8 and n = 4, a total of about 43800 EXOR elements are required. As described above, even if the calculation of each term is replaced from the multiplication of two inputs to the matrix calculation, the circuit scale becomes very large.

そこで、本実施形態のガロア体演算回路では、後述するように、ガロア体及び誤り位置検出多項式における各項の線形性を利用して回路規模の縮小を図る。すなわち、誤り位置検出多項式の各項を、Xについて線形性の有る部分「X、X、X、X、・・・」、Xについての線形性の有る部分「X、X、X12、・・・」、Xについての線形性の有る部分「X、X10、X20、・・・」のように分け、この各々を同一の線形関数として統合する。そして、統合した線形関数については、基底値を用いて計算する基底計算部と、線形展開部とに分けて元を計算する。
基底計算部は、ガロア体GF(2)上の線形独立なm個の元に対して誤り位置検出多項式を計算する。また、線形独立なm個の元を除いた残りの(2−1−m)個の元に対する誤り位置検出多項式の計算については、線形展開部により、基底計算部における演算結果を加算して計算を行う。
これにより、元毎に誤り位置検出多項式を計算するガロア体演算回路に比べて、ガロア体演算回路の回路規模を縮小することができる。これにより、短時間で誤り位置検出多項式の零点を求めるガロア体演算回路を、半導体メモリに搭載可能な回路規模で実現できる。
Therefore, in the Galois field arithmetic circuit of this embodiment, as will be described later, the circuit scale is reduced by utilizing the linearity of each term in the Galois field and the error position detection polynomial. That is, each term of the error locator polynomial, linearity of certain portions for X "X, X 2, X 4, X 8, · · ·," part "X 3 having the linearity of the X 3, X 6 , X 12 ,..., X 5 are divided into linear parts “X 5 , X 10 , X 20 ,...”, And these are integrated as the same linear function. For the integrated linear function, the element is calculated by dividing it into a basis calculation unit that calculates using a basis value and a linear expansion unit.
The basis calculation unit calculates an error position detection polynomial for linearly independent m elements on the Galois field GF (2 m ). For the calculation of the error position detection polynomial for the remaining (2 m −1−m) elements excluding the linearly independent m elements, the calculation result in the base calculation part is added by the linear expansion part. Perform the calculation.
Thereby, the circuit scale of the Galois field arithmetic circuit can be reduced as compared with the Galois field arithmetic circuit that calculates the error position detection polynomial for each element. As a result, a Galois field arithmetic circuit for obtaining the zero point of the error position detection polynomial in a short time can be realized with a circuit scale that can be mounted on a semiconductor memory.

[メモリ装置の構成]
図1は、本発明の実施形態に係わるメモリ装置の全体構成を示す図であり、メモリ装置として、不揮発性半導体記憶装置10であるNAND型フラッシュメモリの全体構成を示した図である。
この不揮発性半導体記憶装置10は、メモリセルアレイ11、ページバッファ12、誤り検出訂正回路(ECC回路)13、バッファ14、I/Oパッド15、制御回路16、アドレスデコーダ17、及びロウ及びブロックデコーダ18を含んで構成される。
この不揮発性半導体記憶装置10の構成は、一般的な構成のNAND型フラシュメモリと同様な構成のものであるが、本実施形態では、誤り検出訂正回路13内に設けられるガロア体演算回路(誤り位置検出多項式の演算回路)(図2)に特徴がある。
[Configuration of memory device]
FIG. 1 is a diagram showing an overall configuration of a memory device according to an embodiment of the present invention, and is a diagram showing an overall configuration of a NAND flash memory that is a nonvolatile semiconductor memory device 10 as a memory device.
The nonvolatile semiconductor memory device 10 includes a memory cell array 11, a page buffer 12, an error detection and correction circuit (ECC circuit) 13, a buffer 14, an I / O pad 15, a control circuit 16, an address decoder 17, and a row and block decoder 18. It is comprised including.
The configuration of the nonvolatile semiconductor memory device 10 is the same as that of a NAND flash memory having a general configuration, but in this embodiment, a Galois field arithmetic circuit (error error correction circuit provided in the error detection / correction circuit 13). The position detection polynomial calculation circuit (FIG. 2) is characterized.

以下、不揮発性半導体記憶装置10の全体の構成について説明する。不揮発性半導体記憶装置10において、メモリセルアレイ11は、複数のスタックゲート構造のトランジスタ、すなわち電気的書き換え可能な不揮発性メモリセル(記憶素子)をカラム方向(列方向)に直列接続して、ビット線毎に設けられたNANDセルストリングを、行方向(ビット線の配列方向)に複数個配置したブロックから構成される。このブロックは、ビット線の配線方向に複数個配置される。また、このブロックは、メモリセルのデータの消去単位で設けられている。各ブロックにおいては、同一行に配置された不揮発性メモリ各々のゲートには、ビット線に直交したワード線が接続される。
1本のワード線により選択される不揮発性メモリセルの範囲がプログラム及び読み出しの単位となる1ページである。
Hereinafter, the overall configuration of the nonvolatile semiconductor memory device 10 will be described. In the nonvolatile semiconductor memory device 10, the memory cell array 11 includes a plurality of stacked gate structure transistors, that is, electrically rewritable nonvolatile memory cells (storage elements) connected in series in the column direction (column direction) to form bit lines. Each NAND cell string provided for each block is composed of blocks arranged in the row direction (bit line arrangement direction). A plurality of blocks are arranged in the wiring direction of the bit lines. Further, this block is provided in units of erasing data of memory cells. In each block, a word line orthogonal to the bit line is connected to the gate of each nonvolatile memory arranged in the same row.
A range of nonvolatile memory cells selected by one word line is one page as a unit for programming and reading.

ページバッファ12は、ページ単位のデータのプログラム及び読み出しを行うため、ビット線毎に設けられたページバッファ回路から構成されている。このページバッファ12におけるページバッファ回路各々は、それぞれのビット線に接続され、接続されたビット線の電位を増幅して判定するセンスアンプ回路として用いるラッチ回路を有する。   The page buffer 12 includes a page buffer circuit provided for each bit line in order to program and read data in units of pages. Each page buffer circuit in the page buffer 12 has a latch circuit that is connected to each bit line and that is used as a sense amplifier circuit that amplifies and determines the potential of the connected bit line.

ページバッファ12(データ格納部)は、不揮発性半導体記憶装置10のデータ読み出し動作において、メモリセルアレイ11の1ページ分のメモリセルが記憶するデータ(データ列)からなるセルデータCell Dataが入力され、このデータを増幅して誤り検出訂正回路13に対して出力する。一方、ページバッファ12は、不揮発性半導体記憶装置10のデータ書込み(プログラム)動作において、誤り検出訂正回路13から供給されるデータを内部のラッチ回路に格納し、ベリファイ動作を行いつつ、全てのデータを符号データCode Dataとして1ページ内のメモリセルに書き込む。   The page buffer 12 (data storage unit) receives cell data Cell Data consisting of data (data string) stored in one page of memory cells in the memory cell array 11 in the data read operation of the nonvolatile semiconductor memory device 10. This data is amplified and output to the error detection and correction circuit 13. On the other hand, the page buffer 12 stores the data supplied from the error detection / correction circuit 13 in the internal latch circuit in the data write (program) operation of the nonvolatile semiconductor memory device 10, and performs all the data while performing the verify operation. Is written as code data Code Data in a memory cell in one page.

この符号データCode Dataには、誤り検出訂正回路13が生成するパリティデータParityが含まれる。
例えば、情報長512byte(バイト)に対しBCH符号を用いて4bit(ビット)訂正を行う誤り訂正システムを例に取るとき、1ページは、2K(=2048)バイト、すなわち、16k(=16384)ビットの通常データを各々記憶するメモリセルと、208ビットのパリティデータを各々記憶するメモリセルから構成される。すなわち、セルデータCell Data、及び符号データCode Dataは、(16k+208)ビットから構成される。また、例えば、1ページは、誤り検出訂正回路13の訂正の単位として、例えば4つのセクタに分割されている。つまり、1セクタに対応するデータは、512バイト(=4096ビット)の通常データ、52ビットのパリティデータから構成される。
The code data Code Data includes parity data Parity generated by the error detection and correction circuit 13.
For example, when an error correction system that performs 4-bit (bit) correction using a BCH code for an information length of 512 bytes (bytes) is taken as an example, one page is 2K (= 2048) bytes, that is, 16k (= 16384) bits. The memory cells each store normal data and the memory cells each store 208-bit parity data. That is, cell data Cell Data and code data Code Data are composed of (16k + 208) bits. For example, one page is divided into, for example, four sectors as a correction unit of the error detection and correction circuit 13. That is, the data corresponding to one sector is composed of normal data of 512 bytes (= 4096 bits) and parity data of 52 bits.

誤り検出訂正回路13は、不揮発性半導体記憶装置10のデータ読み出し動作において、ページバッファ12から読み出されたデータを、セクタ毎に処理して、誤り位置検出多項式の係数を算出し、内部にラッチして保持する。また、誤り検出訂正回路13は、読み出し動作において、カラムアドレスにより位置が示されるビットのデータの誤りを訂正し、I/Oパッド15を介して訂正済データCorrected Dataとして外部へ出力する。   The error detection and correction circuit 13 processes the data read from the page buffer 12 for each sector in the data read operation of the nonvolatile semiconductor memory device 10, calculates the coefficient of the error position detection polynomial, and latches it internally. And hold. Further, the error detection / correction circuit 13 corrects an error in the data of the bit whose position is indicated by the column address in the read operation, and outputs the corrected data to the outside through the I / O pad 15 as corrected data.

また、誤り検出訂正回路13は、不揮発性半導体記憶装置10のデータ書き込み動作において、I/Oパッド15から入力される情報データInformation Dataを、バッファ14を介して受け取る。誤り検出訂正回路13は、受け取った情報データInformation DataからパリティデータParityを生成するとともに、受け取った情報データInformation Data、及びパリティデータParityをページバッファ12に対して出力する。ページバッファ12は、これらのデータを符号データCode Dataとして、選択されているページに接続されるメモリセルに書き込む。   Further, the error detection and correction circuit 13 receives information data Information Data input from the I / O pad 15 through the buffer 14 in the data write operation of the nonvolatile semiconductor memory device 10. The error detection / correction circuit 13 generates parity data parity from the received information data information data, and outputs the received information data information data and parity data parity to the page buffer 12. The page buffer 12 writes these data as code data Code Data in a memory cell connected to the selected page.

制御回路16は、各種制御信号が入力され、不揮発性メモリセルに対するデータのプログラム、読み出し、消去などの動作、及びベリファイの動作の制御を行う。
例えば、制御信号は、外部クロック信号、チップイネーブル信号/CE、読み出しイネーブル信号/RE、プログラムイネーブル信号/WE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号/WPなどである。制御回路16は、これらの制御信号と、I/Oパッド15から入力されるコマンドデータとが示す動作モードに応じて、各回路に対して内部制御信号を出力する。
例えば、制御回路16は、プログラムイネーブル信号/WEの立ち上がり時にコマンドラッチイネーブル信号CLEがロウ(L)レベルからハイ(H)レベルになることにより、I/Oパッド15からコマンドデータを取り込み、内部のレジスタに保持する。
The control circuit 16 receives various control signals and controls operations such as data programming, reading, and erasing of the nonvolatile memory cell, and verification operation.
For example, the control signals are an external clock signal, a chip enable signal / CE, a read enable signal / RE, a program enable signal / WE, a command latch enable signal CLE, an address latch enable signal ALE, a write protect signal / WP, and the like. The control circuit 16 outputs an internal control signal to each circuit in accordance with the operation mode indicated by these control signals and command data input from the I / O pad 15.
For example, when the command latch enable signal CLE changes from the low (L) level to the high (H) level when the program enable signal / WE rises, the control circuit 16 takes in the command data from the I / O pad 15 and Hold in register.

アドレスデコーダ17は、I/Oパッド15から入力されるアドレス(ロウアドレス、ブロックアドレス、カラムアドレス)を制御回路16からの内部制御信号に基づいて保持する。また、アドレスデコーダ17は、保持したアドレスを、制御回路16からの内部制御信号に基づいて、ロウ及びブロックデコーダ18、ページバッファ12、及び誤り検出訂正回路13へ出力する。   The address decoder 17 holds an address (row address, block address, column address) input from the I / O pad 15 based on an internal control signal from the control circuit 16. The address decoder 17 outputs the held address to the row and block decoder 18, the page buffer 12, and the error detection and correction circuit 13 based on the internal control signal from the control circuit 16.

例えば、制御回路16は、プログラムイネーブル信号/WEの立ち上がり時にアドレスラッチイネーブル信号ALEがロウ(L)レベルからハイ(H)レベルになることにより、I/Oパッド15からアドレスを取り込み、アドレスデコーダ17の内部レジスタに保持する。   For example, the control circuit 16 fetches an address from the I / O pad 15 when the address latch enable signal ALE changes from the low (L) level to the high (H) level when the program enable signal / WE rises, and the address decoder 17 In the internal register.

ロウ及びブロックデコーダ18は、アドレスデコーダ17が保持し、出力するロウアドレス、及びブロックアドレスに応じて、メモリセルアレイ11のブロック、及びワード線の選択を行い、1ページ上のメモリセルを選択する。また、アドレスデコーダ17は、内部に保持するカラムアドレスに応じて、メモリセルアレイ11のビット線及びページバッファ12の選択を行う。   The row and block decoder 18 selects a memory cell on one page by selecting a block and a word line of the memory cell array 11 according to a row address and a block address held and output by the address decoder 17. The address decoder 17 selects a bit line of the memory cell array 11 and the page buffer 12 according to a column address held therein.

誤り検出訂正回路13は、不揮発性半導体記憶装置10のデータ読み出し動作において、ページバッファ12から読み出されたデータを、セクタ毎に処理して、誤り位置検出多項式の係数を算出する。また、誤り検出訂正回路13は、読み出し動作において、カラムアドレスにより位置が示されるビット毎のデータの誤りを訂正し、I/Oパッド15を介して訂正済データCorrected Dataとして外部へ出力する。   In the data read operation of the nonvolatile semiconductor memory device 10, the error detection / correction circuit 13 processes the data read from the page buffer 12 for each sector, and calculates the coefficient of the error position detection polynomial. Further, the error detection / correction circuit 13 corrects an error in the data for each bit whose position is indicated by the column address in the read operation, and outputs the corrected data to the outside through the I / O pad 15 as corrected data Corrected Data.

また、誤り検出訂正回路13は、不揮発性半導体記憶装置10のデータ書き込み動作において、I/Oパッド15から入力される情報データInformation Dataを、バッファ14を介して受け取る。誤り検出訂正回路13は、受け取った情報データInformation DataからパリティデータParityを生成するとともに、受け取った情報データInformation Data、及びパリティデータParityをページバッファ12に対して出力する。ページバッファ12は、これらのデータを符号データCode Dataとして、選択されているページに接続されるメモリセルに書き込む。   Further, the error detection and correction circuit 13 receives information data Information Data input from the I / O pad 15 through the buffer 14 in the data write operation of the nonvolatile semiconductor memory device 10. The error detection / correction circuit 13 generates parity data parity from the received information data information data, and outputs the received information data information data and parity data parity to the page buffer 12. The page buffer 12 writes these data as code data Code Data in a memory cell connected to the selected page.

上記構成のNAND型フラッシュメモリにおいて、図2は、誤り検出訂正回路13の構成例を示す図である。   FIG. 2 is a diagram showing a configuration example of the error detection / correction circuit 13 in the NAND flash memory having the above configuration.

本実施形態においては、誤り検出訂正回路13として、BCH符号(Bose−Chaudhuri Hocquenghem code)を用いた誤り検出訂正回路(ECC回路)を例にとって説明する。誤り検出訂正回路は、BCH符号で代表されるガロア体演算を利用したブロック符号である。なお、BCH符号の替りに、例えばHamming符号(Hamming code)、リードソロモン符号(Reed−Solomon code)を用いることも可能である。   In the present embodiment, an error detection / correction circuit (ECC circuit) using a BCH code (Bose-Chudhuri Hocquechem code) will be described as an example of the error detection / correction circuit 13. The error detection and correction circuit is a block code using Galois field arithmetic represented by a BCH code. Instead of the BCH code, for example, a Hamming code (Hamming code) or a Reed-Solomon code (Reed-Solomon code) can be used.

誤り検出訂正回路13は、データの復号を司るデコーダ部30と、訂正用パリティデータParityを生成し、訂正用パリティデータParityをセルへの書き込みデータに付加するエンコーダ部40とを含んで構成される。
このうち、エンコーダ部40は、パリティ生成回路41を有する。パリティ生成回路41は、バッファ14に書き込まれた情報データInformation Dataを生成多項式で除算して得られるパリティデータParityを生成する。また、パリティ生成回路41は、情報データInformation Dataに、生成したパリティデータParityを付加して、ページバッファ12に対して出力する。これらのデータは、不揮発性半導体記憶装置10のデータ書き込み時において、選択された1ページに書き込まれる符号データCode Dataとなる。なお、本実施形態では、不揮発性半導体記憶装置10からのデータ読み出し時において、誤り検出訂正回路13が高速にデータ訂正処理を行うとともに、この誤り検出訂正回路13内のガロア体演算回路34の回路規模を縮小することに特徴を有するものであり、以下ではデコーダ部30について詳細に説明する。
The error detection and correction circuit 13 includes a decoder unit 30 that controls decoding of data, and an encoder unit 40 that generates correction parity data parity and adds the correction parity data parity to data to be written to the cell. .
Among these, the encoder unit 40 includes a parity generation circuit 41. The parity generation circuit 41 generates parity data Parity obtained by dividing the information data Information Data written in the buffer 14 by a generator polynomial. Further, the parity generation circuit 41 adds the generated parity data Parity to the information data Information Data, and outputs the information data Information Data to the page buffer 12. These data become code data Code Data written to one selected page when the nonvolatile semiconductor memory device 10 writes data. In this embodiment, when data is read from the nonvolatile semiconductor memory device 10, the error detection / correction circuit 13 performs data correction processing at a high speed and the circuit of the Galois field arithmetic circuit 34 in the error detection / correction circuit 13. The decoder is characterized by reducing the scale, and the decoder unit 30 will be described in detail below.

デコーダ部30は、シンドローム計算部31、誤り係数計算部32、チェン探索部33、及び誤り訂正部35を含んで構成される。また、チェン探索部33には、ガロア体演算回路34が含まれる。
シンドローム計算部31は、不揮発性半導体記憶装置10のデータ読み出し時に、ページバッファ12に読み出されたセルデータCell Dataが、符号データとして入力され、この符号データを独立な最小多項式で除算することによりシンドロームを計算する。4ビットのデータの誤り訂正が可能なBCH符号で使用される独立な最小多項式は、4つである。シンドローム計算部31は、これら4つの最小多項式に対応して、4つのシンドローム算出回路31_1〜31_4を備えている。これらのシンドローム算出回路31_1〜31_4は、それぞれシンドロームS1、S3、S5、S7を計算する。
The decoder unit 30 includes a syndrome calculation unit 31, an error coefficient calculation unit 32, a chain search unit 33, and an error correction unit 35. The chain search unit 33 includes a Galois field arithmetic circuit 34.
The syndrome calculation unit 31 receives the cell data Cell Data read to the page buffer 12 as code data when reading data from the nonvolatile semiconductor memory device 10, and divides the code data by an independent minimum polynomial. Calculate the syndrome. There are four independent minimum polynomials used in a BCH code capable of correcting an error of 4-bit data. The syndrome calculation unit 31 includes four syndrome calculation circuits 31_1 to 31_4 corresponding to these four minimum polynomials. These syndrome calculation circuits 31_1 to 31_4 calculate syndromes S1, S3, S5, and S7, respectively.

誤り係数計算部32は、これらのシンドロームS1、S3、S5、S7を使用して、誤り位置検出多項式の係数を計算する。例えば、誤り位置検出多項式が4次の多項式P(X)=p+p+p+pX+pである場合に、誤り係数計算部32は、係数p、p、p、p、及びpを計算する。そして、チェン探索部33では、ガロア体演算回路34により、誤り位置検出多項式P(X)を計算する。なお、この誤り位置検出多項式P(X)において、変数Xには、符号データ、つまりページバッファに格納されたセルデータCell Dataのビット位置(例えば、ビット線の位置)を示す値(ガロア体の要素)が入力される。つまり、この誤り位置検出多項式P(X)は、ページバッファ12から読み出されたビットに誤りがあるか否かを探索する際にチェン探索部33において用いられる。 The error coefficient calculation unit 32 uses these syndromes S1, S3, S5, and S7 to calculate the coefficient of the error position detection polynomial. For example, when the error position detection polynomial is a fourth-order polynomial P (X) = p 4 X 4 + p 3 X 3 + p 2 X 2 + p 1 X + p 0 , the error coefficient calculator 32 calculates the coefficients p 4 and p 3. , P 2 , p 1 , and p 0 . In the chain search unit 33, the Galois field arithmetic circuit 34 calculates an error position detection polynomial P (X). In this error position detection polynomial P (X), the variable X has a value (a Galois field) indicating the bit position (for example, the position of the bit line) of the code data, that is, the cell data Cell Data stored in the page buffer. Element) is input. That is, this error position detection polynomial P (X) is used in the chain search unit 33 when searching for an error in the bits read from the page buffer 12.

例えば、チェン探索部33は、ガロア体演算回路34において、誤り位置検出多項式P(X)=p+p+p+pX+pを計算し、P(X)の値が0である場合、エラー検出信号ErrorをHレベルとして出力する。一方、P(X)の値が0でない場合、チェン探索部33は、エラー検出信号ErrorをLレベルとして出力する。 For example, the chain search unit 33 calculates the error position detection polynomial P (X) = p 4 X 4 + p 3 X 3 + p 2 X 2 + p 1 X + p 0 in the Galois field arithmetic circuit 34, and the value of P (X) Is 0, the error detection signal Error is output as an H level. On the other hand, when the value of P (X) is not 0, the chain search unit 33 outputs the error detection signal Error as the L level.

誤り訂正部35は、エラー検出信号ErrorがHレベルであれば、対応する位置のビットのデータの論理(0または1)を反転して、訂正済データCorrected Dataの1ビットとして出力する。一方、誤り訂正部35は、エラー検出信号ErrorがLレベルであれば、対応する位置のビットのデータの論理をそのまま、つまり訂正しないで訂正済データCorrected Dataの1ビットとして出力する。   If the error detection signal Error is at the H level, the error correction unit 35 inverts the logic (0 or 1) of the bit data at the corresponding position, and outputs the inverted data as 1 bit of the corrected data Corrected Data. On the other hand, if the error detection signal Error is L level, the error correction unit 35 outputs the data logic of the bit at the corresponding position as it is, that is, without correction, as 1 bit of the corrected data Corrected Data.

すなわち、チェン探索部33では、ガロア体演算回路34により誤り位置検出多項式P(X)=p+p+p+pX+pにx=α(ガロア体の要素:iはビット線の位置)をそれぞれ代入したときに、P(X)の値が0である場合、エラー検出信号Error<i>はHレベルとなる。一方、P(X)の値が0でない場合、エラー検出信号Error<i>はLレベルとなる。 In other words, the chain search unit 33 uses the Galois field arithmetic circuit 34 to set the error position detection polynomial P (X) = p 4 X 4 + p 3 X 3 + p 2 X 2 + p 1 X + p 0 to x = α i (element of Galois field: If i is the position of the bit line) and the value of P (X) is 0, the error detection signal Error <i> is at the H level. On the other hand, when the value of P (X) is not 0, the error detection signal Error <i> becomes L level.

誤り訂正部35における排他的論理和演算回路35_iは、エラー検出信号Error<i>と、ページバッファ12に読み出し動作において格納されたセルデータCell Dataのうち、(i)番目のビット線の位置のビットとが入力される。つまり、排他的論理和演算回路35_iの各々は、エラー検出信号Error<i>がHレベルであれば、(i)番目のビット線の位置のビットのデータの論理を反転して、訂正済データCorrected Dataの1ビットとして出力する。一方、排他的論理和演算回路35_0は、エラー検出信号Error<i>がLレベルであれば、(i)番目のビット線の位置のビットのデータの論理をそのまま、訂正しないで訂正済データCorrected Dataの1ビットとして出力する。   The exclusive OR operation circuit 35_i in the error correction unit 35 is configured to display the error detection signal Error <i> and the cell data Cell Data stored in the page buffer 12 in the read operation at the position of the (i) th bit line. Bits are input. That is, each of the exclusive OR operation circuits 35_i inverts the logic of the data of the bit data at the position of the (i) th bit line if the error detection signal Error <i> is at the H level, and the corrected data Output as 1 bit of Corrected Data. On the other hand, if the error detection signal Error <i> is L level, the exclusive OR operation circuit 35_0 corrects the logic of the data of the bit data at the position of the (i) th bit line as it is without correcting it. Output as 1 bit of Data.

[多項式が持つ線形性とガロア体がもつ線形構造]
本実施形態の不揮発性半導体記憶装置10において、誤り検出訂正回路13は、ガロア体演算回路34において誤り位置検出多項式の演算を行う際に、ガロア体及び多項式が持つ線形構造を利用して回路規模の縮小を行っている。ここで、最初に、ガロア体と多項式が持つ線形性について補足して説明する。
なお、以下の説明においては、図面の見易さと説明を分かりやすさのために、ガロア体GF(2)において、m=3(或いは、m=4)とし、誤り位置検出多項式の次数を4次(n=4)とした場合を例にとり説明するが、もちろん、次数m及びnは、誤り検出の対象となるデータのビット長と、誤り訂正ビット数とに応じて設定される任意の値のものである。
[Linearity of polynomials and linear structures of Galois fields]
In the nonvolatile semiconductor memory device 10 of the present embodiment, the error detection / correction circuit 13 uses the linear structure of the Galois field and the polynomial when the error position detection polynomial is calculated in the Galois field calculation circuit 34. Is being reduced. Here, first, the linearity of the Galois field and the polynomial will be supplementarily described.
In the following description, in order to make the drawings easy to see and understand, it is assumed that m = 3 (or m = 4) in the Galois field GF (2 m ), and the order of the error position detection polynomial is The case of the fourth order (n = 4) will be described as an example. Of course, the orders m and n are arbitrary values set according to the bit length of the data subject to error detection and the number of error correction bits. Of value.

ある関数F(X)が以下の2条件を満たすとき、F(X)はXに対して線形であるという。
(条件1)F(X+X)=F(X)+F(X
(条件2)F(aX)=aF(X
When a function F (X) satisfies the following two conditions, F (X) is said to be linear with respect to X.
(Condition 1) F (X 1 + X 2 ) = F (X 1 ) + F (X 2 )
(Condition 2) F (aX 1 ) = aF (X 1 )

例えば、Xがガロア体の要素ならば、F(X)=XはXの線形関数である。なぜならば、X,Xをガロア体の要素、また、a=0,1とした時、
F(X+X)=(X+X
=X +2X・X+X
=X +X (∵ガロア体上での加算は排他的論理和であり、1+1=2=0のため2X・Xは0)
=F(X)+F(X
となり、(条件1)を満たす。また、aは、0,1なので、(条件2)を満たすのは明らかである。同様に、ガロア体上で「1+1=0」であることから、X,X,X16,・・・などXを2のべき乗回だけ乗じる関数はガロア体上の線形関数であることが分かる。
For example, if X is a Galois field element, F (X) = X 2 is a linear function of X. Because, when X 1 and X 2 are Galois field elements, and a = 0, 1,
F (X 1 + X 2 ) = (X 1 + X 2 ) 2
= X 1 2 + 2X 1 · X 2 + X 2 2
= X 1 2 + X 2 2 (The addition on the ∵ Galois field is an exclusive OR, and 1 + 1 = 2 = 0, so 2X 1 · X 2 is 0)
= F (X 1 ) + F (X 2 )
And satisfies (Condition 1). Since a is 0 and 1, it is clear that (Condition 2) is satisfied. Similarly, since “1 + 1 = 0” on the Galois field, functions such as X 4 , X 8 , X 16 ,... That multiply X by a power of 2 are linear functions on the Galois field. I understand.

ここで、ガロア体多項式の1次・2次・4次の項に着目し、これらの和を、
「Q(X)=p+p+pX」と置く。
このとき、X,Yをガロア体の要素として、
Q(X+Y)=p(X+Y)+p(X+Y)+p(X+Y)
=p(X+Y)+p(X+Y)+p(X+Y)
(∵ガロア体上での加算は排他的論理和であり、1+1=2=0のため、2=4=0)
=p+p+p+p+pX+p
=(p+p+pX)+(p+p+pY)
=Q(X)+Q(Y)
となり、上記(条件1)を満たす。また、(条件2)を満たすことは明らかであるので、Q(X)はXの線形関数である。
Here, paying attention to the first-order, second-order, and fourth-order terms of the Galois field polynomial,
Put “Q (X) = p 4 X 4 + p 2 X 2 + p 1 X”.
At this time, X and Y are elements of Galois field,
Q (X + Y) = p 4 (X + Y) 4 + p 2 (X + Y) 2 + p 1 (X + Y)
= P 4 (X 4 + Y 4 ) + p 2 (X 2 + Y 2 ) + p 1 (X + Y)
(Addition on the ∵ Galois field is an exclusive OR, and 1 + 1 = 2 = 0, so 2 = 4 = 0)
= P 4 X 4 + p 4 Y 4 + p 2 X 2 + p 2 Y 2 + p 1 X + p 1 Y
= (P 4 X 4 + p 2 X 2 + p 1 X) + (p 4 Y 4 + p 2 Y 2 + p 1 Y)
= Q (X) + Q (Y)
Thus, the above (condition 1) is satisfied. Since it is clear that (Condition 2) is satisfied, Q (X) is a linear function of X.

このように、「Q(X)=p+p+pX」は、Xについて線形関数であることが分かる。 Thus, it can be seen that “Q (X) = p 4 X 4 + p 2 X 2 + p 1 X” is a linear function with respect to X.

一方、他の項(X,X,X以外の項)に関しても、例えば、XやXなどを変数とみなすことで、線形関数とみなすことが可能である。例えば、3次、6次、12次の項に着目し、
R(X)=p1212+p+pと置けば、R(X)はXの線形関数である。
On the other hand, other terms (terms other than X 4 , X 2 , and X) can be regarded as a linear function by regarding X 3 and X 5 as variables, for example. For example, paying attention to the third, sixth, and twelfth terms,
If you put the R (X) = p 12 X 12 + p 6 X 6 + p 3 X 3, R (X) is a linear function of X 3.

次に、ガロア体がもつ線形構造について説明する。
図3は、原始多項式F(X)を「F(X)=X+X+1」としたときのガロア体GF(2)の要素1(=α),α,α,・・・,α14を表(表1)で示したものである。ここで、1,α,α,αの4要素(点線で囲んだ部分)に着目すると、これらは自分以外の要素の和で自分自身が決して表現されない線形独立な組であることが分かる。これらを基底ベクトルであると考えると、他の要素はこの基底ベクトルの線形結合で表現される。すなわち、「α+α+α=0」の関係を用いて、各要素0,α(=1),α,α,・・・,α14は、α,α,α,αを要素とする4次元ベクトル(0,0,0,0)〜(1,1,1,1)で表せる。
Next, the linear structure of the Galois field will be described.
FIG. 3 shows elements 1 (= α 0 ), α 1 , α 2 ,... Of Galois field GF (2 4 ) when the primitive polynomial F (X) is “F (X) = X 4 + X + 1”. , Α 14 is shown in the table (Table 1). Here, paying attention to the four elements 1, α, α 2 , and α 3 (portions surrounded by dotted lines), it can be seen that these are linearly independent sets in which oneself is never expressed by the sum of other elements. . If these are considered to be basis vectors, other elements are expressed by linear combinations of the basis vectors. That is, by using the relationship of “α 4 + α 1 + α 0 = 0”, each element 0, α 0 (= 1), α 1 , α 2 ,..., Α 14 is α 0 , α, α 2. , Α 3 can be represented by four-dimensional vectors (0, 0, 0, 0) to (1, 1, 1, 1).

例えば、α=1+αであり、
また、α12=α(α+α+α)=α+α+α=1+α+α+αのように表わされる。
For example, α 4 = 1 + α 1 and
Further, α 12 = α (α 1 + α 2 + α 3 ) = α 2 + α 3 + α 4 = 1 + α 1 + α 2 + α 3 .

また、ここで、βi=0,1(i=0,1,2,3)と仮定すると、任意のガロア体要素は、α=βα+βα+βα+βα(j=0,1,2,・・・)と表わすことができる。ここで、(β,β,β,β)は、αに対応するベクトル表現である。 Here, assuming that βi = 0, 1 (i = 0, 1, 2, 3), an arbitrary Galois field element is α j = β 3 α 3 + β 2 α 2 + β 1 α 1 + β 0 α 0 (j = 0, 1, 2,...). Here, (β 3 , β 2 , β 1 , β 0 ) is a vector expression corresponding to α j .

上記Q(X)に対して、Q=Q(α)(j=0,1,2,・・・)と書くことにする。Q(X)に、α=βα+βα+βα+βαを代入すると、
=Q(α)・・・(a)
=Q(βα+βα+βα+βα
=βQ(α)+βQ(α)+βQ(α)+βQ(α
(∵Q(X)の線形性より)
=β+β+β+β・・・(b)
を得る。従来、上記(a)式から、「Q=pα+pα+pα」として、各項を行列演算した結果をさらに加算する必要があったが、本実施形態では上記(b)式を利用し、基底1(=α),α,α,αに対応するQ,Q,Q,Qをあらかじめ行列演算で求めて、これらの単純加算で他のQを求めることができる。
For Q (X), Q j = Q (α j ) (j = 0, 1, 2,...) Is written. Substituting α j = β 3 α 3 + β 2 α 2 + β 1 α 1 + β 0 α 0 into Q (X),
Q j = Q (α j ) (a)
= Q (β 3 α 3 + β 2 α 2 + β 1 α 1 + β 0 α 0 )
= Β 3 Q (α 3 ) + β 2 Q (α 2 ) + β 1 Q (α 1 ) + β 0 Q (α 0 )
(From the linearity of ∵Q (X))
= Β 3 Q 3 + β 2 Q 2 + β 1 Q 1 + β 0 Q 0 (b)
Get. Conventionally, from the above formula (a), it was necessary to further add the result of matrix calculation of each term as “Q j = p 4 α 4 + p 2 α 2 + p 1 α”. b) Using equations, Q 0 , Q 1 , Q 2 , Q 3 corresponding to the base 1 (= α 0 ), α 1 , α 2 , α 3 are obtained in advance by matrix operation, and these simple additions are performed. Other Q j can be determined.

また、図4は、原始多項式F(X)を「F(X)=X+X+1」としたときのガロア体GF(2)の要素1(=α),α,α,・・・,αを表(表2)で示したものである。こここで、1,α,αの3要素(点線で囲んだ部分)に着目すると、これらは自分以外の要素の和で自分自身が決して表現されない線形独立な組であることが分かる。これらを基底ベクトルであると考えると、他の要素はこの基底ベクトルの線形結合で表現される。すなわち、「α+α+α=0」の関係を用いて、各要素0,α(=1),α,α,・・・,αは、α,α,αを要素とする3次元ベクトル(0,0,0)〜(1,1,1)で表すことができる。 FIG. 4 shows elements 1 (= α 0 ), α 1 , α 2 ,... Of the Galois field GF (2 3 ) when the primitive polynomial F (X) is “F (X) = X 3 + X + 1”. ... Α 6 is shown in the table (Table 2). Here, paying attention to three elements 1, α and α 2 (portions surrounded by dotted lines), it can be seen that these are linearly independent sets in which oneself is never expressed by the sum of elements other than oneself. If these are considered to be basis vectors, other elements are expressed by linear combinations of the basis vectors. That is, using the relationship of “α 3 + α 1 + α 0 = 0”, each element 0, α 0 (= 1), α 1 , α 2 ,..., Α 6 is expressed as α 0 , α, α 2. Can be represented by three-dimensional vectors (0, 0, 0) to (1, 1, 1).

[ガロア体演算回路34の構成]
次に、ガロア体多項式(誤り位置検出多項式)の零点を求めるガロア体演算回路34の構成について説明する。このガロア体演算回路34は、上述した誤り位置検出多項式(誤り位置検出多項式)が持つ線形性とガロア体がもつ線形構造とを利用して回路規模を縮小するように構成されている。すなわち、ガロア体演算回路34は、誤り位置検出多項式P(X)を演算する際に、同じ線形空間を構成する項を統合した線形関数について、後述する基底計算部と線形展開部とを用いて演算を行うことにより、回路規模を縮小することができる。
[Configuration of Galois Field Arithmetic Circuit 34]
Next, the configuration of the Galois field arithmetic circuit 34 for obtaining the zero point of the Galois field polynomial (error position detection polynomial) will be described. The Galois field arithmetic circuit 34 is configured to reduce the circuit scale using the linearity of the error position detection polynomial (error position detection polynomial) described above and the linear structure of the Galois field. That is, when the Galois field arithmetic circuit 34 calculates the error position detection polynomial P (X), a linear function that integrates terms constituting the same linear space is used by using a basis calculation unit and a linear expansion unit described later. By performing the operation, the circuit scale can be reduced.

図5(A)は、ガロア体演算回路34の構成例を示す図であり、「m=3」の場合の例である。このガロア体演算回路34は、基底計算部330と線形展開部340とを有して構成される。また、基底計算部330は、3組の演算部R,R,Rを有し、線形展開部340は、4個のEXOR素子を有している。
この図5(A)に示すガロア体演算回路34において、基底計算部330は、要素x「m−1:0」のうちの基底となる要素に対する線形関数yを行列演算で計算し、線形展開部340は、基底計算部330の計算結果を展開(加算)して、基底を除く他の要素に対する線形関数yの出力を得る(この図5(A)に示すガロア体演算回路34の動作については、後述する)。
FIG. 5A is a diagram illustrating a configuration example of the Galois field arithmetic circuit 34, and is an example in the case of “m = 3”. The Galois field arithmetic circuit 34 includes a base calculation unit 330 and a linear expansion unit 340. The basis calculation unit 330 includes three sets of calculation units R 0 , R 1 , and R 2 , and the linear expansion unit 340 includes four EXOR elements.
In the Galois field arithmetic circuit 34 shown in FIG. 5A, the base calculation unit 330 calculates a linear function y for the element serving as a base among the elements x “m−1: 0” by matrix operation, and performs linear expansion. The unit 340 expands (adds) the calculation result of the basis calculation unit 330 to obtain the output of the linear function y for the other elements excluding the basis (about the operation of the Galois field arithmetic circuit 34 shown in FIG. 5A). Will be described later).

このように、本実施形態のガロア体演算回路34では、誤り位置検出多項式に含まれる線形関数に対して、基底計算部330により基底を計算し、線形展開部340は、これらの基底の計算結果の単純加算で、線形関数のXの取りうるすべての値を一度に出力する。すなわち、このガロア体演算回路34では、Xの取りうる値の全組み合わせ2−1から基底の個数mを引いた2−1−m個に対して、行列演算部(EXOR素子を約m(m−1)/2個使用)を単純加算(EXOR素子をm−1個使用)に置き換えることで、回路規模を縮小することができる。 As described above, in the Galois field arithmetic circuit 34 of the present embodiment, the basis calculation unit 330 calculates the basis for the linear function included in the error position detection polynomial, and the linear expansion unit 340 calculates the calculation results of these bases. All the possible values of X of the linear function are output at once by simple addition of. That is, in this Galois field arithmetic circuit 34, a matrix arithmetic unit (EXOR element is set to about m for 2 m −1−m subtracting the number m of bases from all combinations 2 m −1 of possible values of X. The circuit scale can be reduced by replacing (m−1) / 2) with simple addition (using m−1 EXOR elements).

一方、図5(B)は、従来のガロア体演算回路34’の構成を示す図であり、このガロア体演算回路34’では、各要素Xのそれぞれについての7個の並列演算回路R〜Rを設け、この7個の並列演算回路R〜Rにより、信号y,y,y,・・・,yを同時に演算する。 On the other hand, FIG. 5 (B) is a diagram showing a configuration of a conventional Galois field arithmetic circuit 34 ′. In this Galois field arithmetic circuit 34 ′, seven parallel arithmetic circuits R 0 to R for each element X are shown. R 6 is provided, and signals y 0 , y 1 , y 2 ,..., Y 6 are calculated simultaneously by the seven parallel arithmetic circuits R 0 to R 6 .

つまり、図6に示すように、4次の誤り位置検出多項式「P(X)=p+p+p+p+p」の場合に、従来のガロア体演算回路34’では、図6(A)に示すように、各項pごとに演算を行っていた。これに対して、本実施形態のガロア体演算回路34では、図6(B)に示すように、Xについての同一の線形構造をもつ項を多項式(線形関数Q(X)=p+p+pX)に統合する。 That is, as shown in FIG. 6, in the case of the fourth-order error position detection polynomial “P (X) = p 4 X 4 + p 3 X 3 + p 2 X 2 + p 1 X 1 + p 0 ”, the conventional Galois field arithmetic In the circuit 34 ′, as shown in FIG. 6A, the calculation is performed for each term p i X i . On the other hand, in the Galois field arithmetic circuit 34 of the present embodiment, as shown in FIG. 6B, a term having the same linear structure for X is expressed by a polynomial (linear function Q (X) = p 4 X 4 + P 2 X 2 + p 1 X).

そして、この線形関数「Q(X)=p+p+pX」に対して、図5(A)に示したガロア体演算回路34より、基底計算部330と線形展開部340とにより演算を行うことにより、誤り位置検出多項式P(X)の演算において、各項を計算するユニット数が減り、さらに、各ユニット間の出力を加算する回路の素子数も低減される。
なお、Q(X)以外の項「p」「P」は、ガロア体演算回路34内の不図示の回路で別途に計算され、後に、「Q(X)=p+p+pX」の演算結果と加算されるものである。
Then, for this linear function “Q (X) = p 4 X 4 + p 2 X 2 + p 1 X”, the Galois field arithmetic circuit 34 shown in FIG. By performing the calculation using 340, the number of units for calculating each term is reduced in the calculation of the error position detection polynomial P (X), and further, the number of elements of the circuit for adding outputs between the units is also reduced.
The terms “p 3 X 3 ” and “P 0 ” other than Q (X) are separately calculated by a circuit (not shown) in the Galois field arithmetic circuit 34, and later “Q (X) = p 4 X 4 + P 2 X 2 + p 1 X ”is added to the calculation result.

図7は、図5(A)に示すガロア体演算回路34の動作を説明するための図であり、変数Xをαのベキ乗表現で示した図である。この図7に示すガロア体演算回路34は、基底計算部330に入力される要素(元)Xを、1,α,αとし、基底計算部330により、Xについての線形関数Q(1),Q(α),Q(α)を算出し、線形展開部340により、Q(α),Q(α),Q(α),Q(α)を算出する例である。 FIG. 7 is a diagram for explaining the operation of the Galois field arithmetic circuit 34 shown in FIG. 5A, in which the variable X is represented by a power of α. In the Galois field arithmetic circuit 34 shown in FIG. 7, the element (element) X input to the basis calculation unit 330 is set to 1, α, α 2 , and the basis calculation unit 330 uses the linear function Q (1) for X. , Q (α), Q (α 2 ), and Q (α 3 ), Q (α 4 ), Q (α 5 ), Q (α 6 ) are calculated by the linear expansion unit 340. .

この図7に示すように、ガロア体演算回路34は、基底計算部330と、線形展開部340とで構成されており、基底計算部330には、3つの演算部R,R,Rを有し、線形展開部340には、4つのEXOR素子341,342,343,344を有している。 As shown in FIG. 7, the Galois field arithmetic circuit 34 includes a base calculation unit 330 and a linear expansion unit 340. The base calculation unit 330 includes three calculation units R 0 , R 1 , R 2 and the linear expansion unit 340 includes four EXOR elements 341, 342, 343, and 344.

基底計算部330内の演算部Rは、要素X(1=α)に対する誤り位置検出多項式内の線形関数「Q(1)=p+p+p」を行列演算により算出する。演算部Rは、要素X(=α=α)に対する線形関数「Q(α)=pα+pα+pα」を行列演算により算出する。演算部Rは、要素X(=α)に対する線形関数「Q(α)=p(α+p(α+pα」を行列演算により算出する。 The calculation unit R 0 in the basis calculation unit 330 is a matrix of the linear function “Q (1) = p 4 1 4 + p 2 1 2 + p 1 1 1 ” in the error position detection polynomial for the element X (1 = α 0 ). Calculate by calculation. The calculation unit R 1 calculates a linear function “Q (α) = p 4 α 4 + p 2 α 2 + p 1 α 1 ” for the element X (= α 1 = α) by matrix calculation. The calculation unit R 2 calculates a linear function “Q (α 2 ) = p 42 ) 4 + p 22 ) 2 + p 1 α 2 ” for the element X (= α 2 ) by matrix calculation.

そして、線形展開部340は、この基底計算部330により算出された演算結果Q(1),Q(α),Q(α)を単純加算で展開して他の出力を得る。
例えば、Q(α)は、図4のガロア体GF(2)の表2に示すように、「α=α+1」であるため、上述した線形性により、「Q(α)=Q(α)+Q(1)」で表すことができる。このため、Q(α)は、EXOR素子(加算器)341により、基底計算部330の出力Q(1)とQ(α)を加算することにより得られる。
Then, the linear expansion unit 340 expands the calculation results Q (1), Q (α), and Q (α 2 ) calculated by the base calculation unit 330 by simple addition to obtain another output.
For example, since Q (α 3 ) is “α 3 = α + 1” as shown in Table 2 of the Galois field GF (2 3 ) in FIG. 4, “Q (α 3 ) = Q (α) + Q (1) ”. Therefore, Q (α 3 ) is obtained by adding the outputs Q (1) and Q (α) of the base calculation unit 330 by the EXOR element (adder) 341.

また、Q(α)は、図4のガロア体GF(2)の表2に示すように、「α=α+α」であるため、上述した線形性により、「Q(α)=Q(α)+Q(α)」で表すことができる。このため、Q(α)は、EXOR素子342により、基底計算部330の出力Q(α)とQ(α)を加算することにより得られる。 Further, since Q (α 4 ) is “α 4 = α 2 + α” as shown in Table 2 of the Galois field GF (2 3 ) in FIG. 4, “Q (α 4) ) = Q (α 2 ) + Q (α) ”. Therefore, Q (α 4 ) is obtained by adding the outputs Q (α) and Q (α 2 ) of the basis calculation unit 330 by the EXOR element 342.

また、Q(α)は、「α=α+α+1」であり、また、「α=α+α」であるため、「α=α+1」となる。このため、Q(α)はEXOR素子343により、基底計算部330の出力Q(1)と、EXOR素子342の出力Q(α)とを加算することにより得られる。
同様にして、Q(α)は、「α=α+1」であるため、Q(α)は、EXOR素子344により、基底計算部330の出力Q(1)とQ(α)とを加算することにより得られる。
Further, since Q (α 5 ) is “α 5 = α 2 + α + 1” and “α 4 = α 2 + α”, “α 5 = α 4 +1”. For this reason, Q (α 5 ) is obtained by adding the output Q (1) of the base calculation unit 330 and the output Q (α 4 ) of the EXOR element 342 by the EXOR element 343.
Similarly, since Q (α 6 ) is “α 6 = α 2 +1”, Q (α 6 ) is output by the EXOR element 344 from the outputs Q (1) and Q (α 2 ) of the base calculation unit 330. ) Are added to each other.

このように、ガロア体GF(2)の場合に、基底計算部330は、3個の線形独立な元(1、α、α)に対して、この元に対応する3組の線形関数Q(1),Q(α),Q(α)を計算する。そして、線形展開部340は、線形関数Q(α),Q(α),Q(α),Q(α)を、基底計算部330におけるQ(1),Q(α),Q(α)の演算結果を基に、EXOR素子により加算して計算することができる。このように、ガロア体演算回路34では、要素Xの取りうる値の全組み合わせ数7から基底の個数3を引いた「4個」の誤り位置検出多項式(より正確には、誤り位置検出多項式内の線形関数)に対して、行列演算を単純加算に置き換えることで、回路規模を縮小することができる。 As described above, in the case of the Galois field GF (2 3 ), the basis calculation unit 330 performs three linear sets corresponding to the three linearly independent elements (1, α 1 , α 2 ). Functions Q (1), Q (α 1 ), and Q (α 2 ) are calculated. Then, the linear expansion unit 340 converts the linear functions Q (α 3 ), Q (α 4 ), Q (α 5 ), and Q (α 6 ) into Q (1) and Q (α 1 ) in the basis calculation unit 330. , Q (α 2 ), and can be calculated by addition using an EXOR element. As described above, the Galois field arithmetic circuit 34 has “4” error position detection polynomials (more precisely, in the error position detection polynomial, which is obtained by subtracting the number of bases 3 from the total number of combinations of possible values of the element X. The circuit scale can be reduced by replacing the matrix operation with simple addition.

なお、図7に示す回路例では、3個の線形独立な基底の組として、図4の表2に示すように、ベクトル表現(001),(010),(100)の基底が用いられているが、必ずしも、このような1ビットのみが1となるベクトルを基底に選ぶ必要はなく、線形独立なベクトルの組でありさえすれば、どのような組み合わせであってもよい。   In the circuit example shown in FIG. 7, the bases of vector expressions (001), (010), and (100) are used as a set of three linearly independent bases as shown in Table 2 of FIG. However, it is not always necessary to select such a vector in which only one bit is 1 as a basis, and any combination may be used as long as it is a set of linearly independent vectors.

このように、本実施形態のガロア体演算回路34では、誤り位置検出多項式において、同一の線形空間を構成する項を線形関数として統合し、この統合した線形関数に対して、基底計算部330と線形展開部340とにより演算を行う。これにより、ガロア体演算回路34では、誤り位置検出多項式を演算する際に必要になる演算素子の規模を大幅に縮小することができる。また、誤り位置検出多項式の各項を計算するユニット数が減り、さらに、各ユニット間の出力を加算する回路の素子数も低減される。   As described above, in the Galois field arithmetic circuit 34 of the present embodiment, the terms constituting the same linear space are integrated as a linear function in the error position detection polynomial, and the basis calculation unit 330 and the integrated linear function are combined. Calculation is performed by the linear expansion unit 340. As a result, the Galois field arithmetic circuit 34 can greatly reduce the scale of arithmetic elements required when calculating the error position detection polynomial. Further, the number of units for calculating each term of the error position detection polynomial is reduced, and further, the number of elements of the circuit for adding outputs between the units is also reduced.

[誤り位置検出多項式がXとXの線形関数を含む場合]
上述の実施形態では、Xについての線形関数「Q(X)=p+p+pX」を計算するガロア体演算回路34の例について説明したが、ここで、誤り位置検出多項式Λ(X)が、Xについての線形関数と、Xについての線形関数を含む場合の例について説明する。
例えば、誤り位置検出多項式Λ(X)が、P(X)=「σX+σ+σ4+・・・」+「σ+σ+σ1212+・・・」で表される場合は、Xについての線形関数「M(X)=σX+σ+σ4+・・・」と、Xについての線形関数「N(X)=σ+σ+σ1212+・・・」とのそれぞれに分けて統合し、それぞれの線形関数について個別に演算を行うことができる。
[When the error position detection polynomial includes a linear function of X 2 and X 3 ]
In the above-described embodiment, the example of the Galois field arithmetic circuit 34 that calculates the linear function “Q (X) = p 1 X 4 + p 2 x 2 + p 1 X” for X has been described. Here, error position detection is performed. An example in which the polynomial Λ (X) includes a linear function for X and a linear function for X 3 will be described.
For example, if the error position detection polynomial Λ (X) is P (X) = “σ 1 X + σ 2 X 2 + σ 4 X 4 +...” + “Σ 3 X 3 + σ 6 X 6 + σ 12 X 12 +. “”, The linear function “M (X) = σ 1 X + σ 2 X 2 + σ 4 X 4 +...” For X and the linear function “N (X) = σ for X 3. 3 integrated separately in each of the X 3 + σ 6 X 6 + σ 12 X 12 + ··· ", can be individually computed for each of the linear function.

例えば、図8は、Xについての線形項を計算する回路の例を示す図である。この図8に示す例では、図5に示す回路と同様にして、基底計算部400は、3つの演算部401,402,403を有して構成され、線形展開部410は、4つのEXOR素子411,412,413,414を有して構成されている。   For example, FIG. 8 is a diagram illustrating an example of a circuit that calculates a linear term for X. In the example shown in FIG. 8, the base calculation unit 400 is configured to include three calculation units 401, 402, and 403, and the linear expansion unit 410 includes four EXOR elements in the same manner as the circuit shown in FIG. 411, 412, 413, 414.

基底計算部400は、演算部401により、M(α)を算出し、演算部402により、M(α)を算出し、演算部403により、M(α)を算出する。すなわち、演算部401は、要素X(1=α)に対する誤り位置検出多項式「M(X)=σ1+σ+σ+・・・」を行列演算により算出する。また、演算部402は、要素X(=α=α)に対する誤り位置検出多項式「M(X)=σα+σα+σα+・・・」を行列演算により算出する。また、演算部403は、要素X(=α)に対する誤り位置検出多項式「M(X)=σ(α)+σ(α+σ(α+・・・」を行列演算により算出する。 The basis calculation unit 400 calculates M (α 0 ) by the calculation unit 401, calculates M (α 1 ) by the calculation unit 402, and calculates M (α 2 ) by the calculation unit 403. That is, the calculation unit 401 calculates an error position detection polynomial “M (X) = σ 1 1 + σ 2 1 2 + σ 4 1 4 +...” For the element X (1 = α 0 ) by matrix calculation. Further, the calculation unit 402 calculates an error position detection polynomial “M (X) = σ 1 α + σ 2 α 2 + σ 4 α 4 +...” For the element X (= α 1 = α) by matrix calculation. Further, the calculation unit 403 calculates an error position detection polynomial “M (X) = σ 12 ) + σ 22 ) 2 + σ 42 ) 4 +...” For the element X (= α 2 ). Is calculated by matrix operation.

そして、線形展開部410は、EXOR素子411,412,413,414により、基底計算部400により算出された演算結果を単純加算で展開し、M(α),M(α),M(α),M(α)、を算出する。
例えば、M(α)は、図4のガロア体GF(2)の表2に示すように、「α=α+1」であるため、上述した線形性により、「M(α)=M(α)+M(α=1)」で表すことができる。このため、M(α)は、EXOR素子(加算器)411により、基底計算部400の出力M(α=1)とM(α)を加算することにより得られる。
The linear expansion unit 410 expands the calculation result calculated by the base calculation unit 400 by simple addition using the EXOR elements 411, 412, 413, and 414, and M (α 3 ), M (α 4 ), M ( α 5 ) and M (α 6 ) are calculated.
For example, M (α 3 ) is “α 3 = α + 1” as shown in Table 2 of the Galois field GF (2 3 ) of FIG. 4, and therefore, “M (α 3 ) = M (α) + M (α 0 = 1) ”. Therefore, M (α 3 ) is obtained by adding the outputs M (α 0 = 1) and M (α) of the base calculation unit 400 by the EXOR element (adder) 411.

また、M(α)は、図4のガロア体GF(2)の表2に示すように、「α=α+α」であるため、上述した線形性により、「M(α)=M(α)+M(α)」で表すことができる。このため、M(α)は、EXOR素子412により、基底計算部400の出力M(α)とM(α)を加算することにより得られる。 Further, since M (α 4 ) is “α 4 = α 2 + α” as shown in Table 2 of the Galois field GF (2 3 ) in FIG. 4, “M (α 4) ) = M (α 2 ) + M (α) ”. Therefore, M (α 4 ) is obtained by adding the outputs M (α) and M (α 2 ) of the basis calculation unit 400 by the EXOR element 412.

また、M(α)は、「α=α+α+1」であり、また、「α=α+α」であるため、「α=α+1」となる。このため、M(α)はEXOR素子413により基底計算部400の出力M(α=1)と、EXOR素子342の出力M(α)とを加算することにより得られる。
同様にして、M(α)は、「α=α+1」であるため、M(α)は、EXOR素子414により、基底計算部400の出力M(α=1)とM(α)とを加算することにより得られる。
これにより、ガロア体演算回路34において、線形関数「σX+σ+σ+・・・」に対する演算回路の回路規模を縮小することができる。
In addition, M (α 5 ) is “α 5 = α 2 + α + 1” and “α 4 = α 2 + α”, and thus “α 5 = α 4 +1”. Therefore, M (alpha 5) and the output M of the base calculation unit 400 by the EXOR element 413 (α 0 = 1), obtained by adding the output M of the EXOR elements 342 (α 4).
Similarly, since M (α 6 ) is “α 6 = α 2 +1”, M (α 6 ) is output from the output M (α 0 = 1) and M of the base calculation unit 400 by the EXOR element 414. It is obtained by adding (α 2 ).
Thereby, in the Galois field arithmetic circuit 34, the circuit scale of the arithmetic circuit with respect to the linear function “σ 1 X + σ 2 X 2 + σ 4 X 4 +...” Can be reduced.

次に、Xについての関数「N(X)=σ+σ+σ1212+・・・」の演算について説明する。
図9は、図4に示す原始多項式X+X+1としたときのガロア体GF(2)についての元(表2に示す元)を、3乗したものを表(表3)で示したものである。この場合に、図9において点線で囲まれた部分(1,α,α)を基底として、その他の元(α,α12,α15,α18)を基底の和で表すことができる。
It will be described operation of the function "N (X) = σ 3 X 3 + σ 6 X 6 + σ 12 X 12 + ··· " for X 3.
FIG. 9 is a table (Table 3) showing the elements (elements shown in Table 2) of the Galois field GF (2 3 ) with the primitive polynomial X 3 + X + 1 shown in FIG. It is. In this case, the portion (1, α 3 , α 6 ) surrounded by the dotted line in FIG. 9 is used as a base, and the other elements (α 9 , α 12 , α 15 , α 18 ) are expressed as the sum of the bases. it can.

このため、本実施形態では、X、X、X12、・・・の項をまとめた部分「線形関数N(X)=σ+σ+σ1212+・・・」について、図10に示すように、基底計算部500と線形展開部510とに分けて演算することがでる。ただし、線形展開部510において基底を展開する回路パターンは図8の場合とは異なる。これはN(X)に対して、Y=Xと置いたとき、N(Y)=σY+σ+σ12+・・・、と線形関数となり、さらにYの取りうる値が、図9の表3に示すような基底の加算で表現できるからである。この例では、N(X)をXの非線形関数ではなく、Xを変数とする線形関数とみなし、基底展開による計算を行うため、図8に示す回路と同等の回路削減効果が得られる。 For this reason, in the present embodiment, a part that summarizes the terms X 3 , X 6 , X 12 ,... “Linear function N (X) = σ 3 X 3 + σ 6 X 6 + σ 12 X 12 +. As shown in FIG. 10, the calculation can be performed separately for the base calculation unit 500 and the linear expansion unit 510. However, the circuit pattern for expanding the base in the linear expansion unit 510 is different from that in FIG. This is a linear function of N (Y) = σ 3 Y + σ 6 Y 2 + σ 12 Y 4 +... When Y = X 3 with respect to N (X). This is because it can be expressed by base addition as shown in Table 3 of FIG. In this example, rather than the non-linear function of N and (X) X, regarded as a linear function of the X 3 and variables, for performing calculations using a basis expansion, circuit reduction equivalent to the circuit shown in FIG. 8 is obtained.

この図10に示す例では、多項式「N(X)=σ+σ+σ1212+・・・」について、基底計算部500内の演算部501により、N(α)を行列演算により算出し、演算部502により、N(α)を行列演算により算出し、演算部503により、N(α)を行列演算により算出する。そして、線形展開部510は、基底計算部500により算出した基底の演算結果N(α),N(α),N(α)を基に、EXOR素子511,512,513,514により、N(α),N(α12),N(α15),N(α18),・・・、を算出する。 In the example shown in FIG. 10, the polynomial “N (X) = σ 1 X 3 + σ 6 X 6 + σ 12 X 12 +...” N (α 0 ) is calculated by the calculation unit 501 in the basis calculation unit 500. Is calculated by matrix calculation, N (α 3 ) is calculated by matrix calculation by the calculation unit 502, and N (α 6 ) is calculated by matrix calculation by the calculation unit 503. The linear expansion unit 510 uses the EXOR elements 511, 512, 513, and 514 based on the base calculation results N (α 0 ), N (α 3 ), and N (α 6 ) calculated by the base calculation unit 500. , N (α 9 ), N (α 12 ), N (α 15 ), N (α 18 ),.

例えば、N(α)は、図9の表3に示すように、「α=α+1」であるため、上述した線形性により、「N(α)=N(α)+N(α=1)」で表すことができる。このため、N(α)は、EXOR素子(加算器)511により、基底計算部500の出力N(α=1)とN(α)を加算することにより得られる。 For example, since N (α 9 ) is “α 9 = α 6 +1” as shown in Table 3 of FIG. 9, “N (α 9 ) = N (α 6 ) + N due to the linearity described above. (Α 0 = 1) ”. Therefore, N (α 9 ) is obtained by adding the outputs N (α 0 = 1) and N (α 6 ) of the base calculation unit 500 by the EXOR element (adder) 511.

また、N(α12)は、図9の表3に示すように、「α12=α+α+1」であり、また、「α=α+1」であるため、「α12=α+α」となる。このため、上述した線形性により、「N(α12)=N(α)+N(α)」で表すことができる。このため、N(α12)は、EXOR素子512により、基底計算部500の出力N(α)と、EXOR素子512の出力N(α)を加算することにより得られる。 Further, N (alpha 12), as shown in Table 3 of FIG. 9, an "α 12 = α 6 + α 3 +1 ", also because of the "α 9 = α 6 +1", "alpha 12 = α 9 + α 3 ”. For this reason, it can represent with "N ((alpha) 12 ) = N ((alpha) 9 ) + N ((alpha) 3 )" by the linearity mentioned above. Thus, N (alpha 12), due EXOR element 512, the output N of the base calculation unit 500 (alpha 3), obtained by adding the output N of the EXOR elements 512 (alpha 9).

また、N(α15)は、「α15=α+1」である。このため、上述した線形性により、N(α15)はEXOR素子513により基底計算部500の出力N(α=1)とN(α)とを加算することにより得られる。
同様にして、M(α18)は、「α18=α+α」であるため、N(α18)は、EXOR素子514により、基底計算部500の出力N(α)とN(α)とを加算することにより得られる。
N (α 15 ) is “α 15 = α 3 +1”. Therefore, N (α 15 ) is obtained by adding the outputs N (α 0 = 1) and N (α 3 ) of the base calculation unit 500 by the EXOR element 513 due to the linearity described above.
Similarly, since M (α 18 ) is “α 18 = α 6 + α 3 ”, N (α 18 ) is output by the EXOR element 514 using the outputs N (α 6 ) and N (α It is obtained by adding (α 3 ).

これにより、ガロア体演算回路34では、線形関数「N(X)=σ+σ+σ1212+・・・」に対して演算を行う際の回路規模の縮小を図ることができる。 As a result, the Galois field arithmetic circuit 34 reduces the circuit scale when performing arithmetic on the linear function “N (X) = σ 3 X 3 + σ 6 X 6 + σ 12 X 12 +. Can do.

以上説明したように、本実施形態の誤り検出訂正回路13において、ガロア体演算回路34は、基底を計算する基底計算部の回路と、基底を単純加算で展開する線形展開部の回路の2つを有している。
このガロア体演算回路34では、ガロア体多項式P(X)の係数p(i=0,1,2,・・・)が確定したのち、誤り位置検出多項式P(X)に含まれる各線形関数に対して、基底計算部330により基底を計算し、線形展開部340は、これらの基底の単純加算で、P(X)のXの取りうるすべての値を一度に出力することができる。このため、ガロア体演算回路34の回路規模が縮小される。
また、図8及び図10で示したように、同一の線形構造をもつ項を統合して計算することで、多項式の項を計算するユニット数が減り、さらに、各ユニット間出力を加算する回路の素子数も削減される。
As described above, in the error detection and correction circuit 13 of the present embodiment, the Galois field operation circuit 34 includes two circuits, a base calculation unit circuit that calculates a base and a linear expansion unit circuit that expands the base by simple addition. have.
In the Galois field arithmetic circuit 34, after the coefficients p i (i = 0, 1, 2,...) Of the Galois field polynomial P (X) are determined, each linear included in the error position detection polynomial P (X). For the function, the basis calculation unit 330 calculates the basis, and the linear expansion unit 340 can output all the possible values of X of P (X) at a time by simple addition of these bases. For this reason, the circuit scale of the Galois field arithmetic circuit 34 is reduced.
Further, as shown in FIG. 8 and FIG. 10, by integrating and calculating terms having the same linear structure, the number of units for calculating polynomial terms is reduced, and furthermore, a circuit for adding outputs between units. The number of elements is also reduced.

[本実施形態による素子数の削減効果の具体例]
次に、係数p(i=0,1,2,・・・)、変数Xをガロア体GF(2)の要素とするm次多項式P(X)の零点を求める回路について、使用される素子数を計算し、従来技術の場合(図5(B)のガロア体演算回路34’の場合)と、本実施形態のガロア体演算回路34の場合との比較を行う。
従来技術の場合では、EXOR素子を約m(m−1)/2個必要とする行列演算回路が2−1組必要であり、これがさらに多項式の項数分n+1組必要である。また、各項を加算するためのEXOR素子はm個の組が2−1組、さらにこれがn組必要である。よって、回路に必要な総素子数は、
(n+1)×(2−1)×m(m−1)/2+n×(2−1)×m、
となる。
[Specific example of effect of reducing the number of elements according to this embodiment]
Next, a circuit for obtaining a zero of an m-th order polynomial P (X) having coefficients p i (i = 0, 1, 2,...) And a variable X as elements of a Galois field GF (2 m ) is used. The number of elements to be calculated is calculated, and the case of the conventional technique (in the case of the Galois field arithmetic circuit 34 ′ in FIG. 5B) is compared with the case of the Galois field arithmetic circuit 34 of the present embodiment.
In the case of the prior art, 2 m −1 sets of matrix operation circuits that require about m (m−1) / 2 EXOR elements are required, and this requires n + 1 sets corresponding to the number of polynomial terms. In addition, the EXOR element for adding each term requires 2 m -1 sets of m sets and n sets of these. Therefore, the total number of elements required for the circuit is
(N + 1) × (2 m −1) × m (m−1) / 2 + n × (2 m −1) × m,
It becomes.

本実施形態のガロア体演算回路34では、EXOR素子を約m(m−1)/2個必要とする行列演算回路はm組だけ必要であり、基底計算部の演算結果を展開してその他の値を決める部分は、EXOR素子m個の組が「2−1−m」個必要である。「X,X,X,X16,・・・」などXを2のべき乗回だけ乗じる関数はガロア体上の線形関数であり、線形関数どうしの線形結合もまた線形関数であることから、これらの項は統合可能である。同様に、X,X,X12,・・・」…や、「X,X10,X20,・・・」もまた、統合可能である。 In the Galois field arithmetic circuit 34 of the present embodiment, only m sets of matrix arithmetic circuits that require about m (m−1) / 2 EXOR elements are necessary. The part that determines the value needs “2 m −1−m” sets of m EXOR elements. Functions such as “X 2 , X 4 , X 8 , X 16 ,...” That multiply X by a power of 2 are linear functions on a Galois field, and linear combinations of linear functions are also linear functions. From these terms, these terms can be integrated. Similarly, “X 3 , X 6 , X 12 ,...” And “X 5 , X 10 , X 20 ,.

これより、統合後の線形関数の個数は、多項式の次数n以下である奇数の個数に等しいことが分かる。定数項pも併せて考えると、統合後に必要なユニット数は、
n=0のとき、1個 (0)、
n=1のとき、2個 (0,1)、
n=2のとき、2個 (0,1)、
n=3のとき、3個 (0,1,3)、
n=4のとき、3個 (0,1,3)、
n=5のとき、4個 (0,1,3,5)、
・・・、と増えていくことが分かる。
From this, it can be seen that the number of linear functions after integration is equal to an odd number that is less than or equal to the order n of the polynomial. Considering the constant term p 0 together, the number of units required after integration is
When n = 0, 1 (0),
When n = 1, 2 (0, 1),
When n = 2, 2 (0, 1),
When n = 3, 3 (0, 1, 3),
When n = 4, 3 (0, 1, 3),
When n = 5, 4 (0, 1, 3, 5),
... and you can see that it increases.

ユニット数は、nが偶数のときn/2+1、nが奇数のとき(n+1)/2+1である。基底計算部分は統合対象外であることを考慮すると、回路に必要な素子数は、nが偶数のとき、
(n+1)×m×m(m−1)/2+m×m×n+(n/2+1)(2−1−m)×m+(2−1−m)n/2である。
また、nが奇数のときは、
(n+1)×m×m(m−1)/2+m×m×n+{(n+1)/2+1}(2−1−m)×m+(2−1−m)(n+1)/2
である。
The number of units is n / 2 + 1 when n is an even number and (n + 1) / 2 + 1 when n is an odd number. Considering that the basis calculation part is not integrated, the number of elements required for the circuit is as follows:
(N + 1) × m × m (m−1) / 2 + m × m × n + (n / 2 + 1) (2 m −1−m) × m + (2 m −1−m) n / 2.
When n is an odd number,
(N + 1) × m × m (m−1) / 2 + m × m × n + {(n + 1) / 2 + 1} (2 m −1−m) × m + (2 m −1−m) (n + 1) / 2
It is.

図11(A)に、多項式の次数n=4の場合の、従来技術(図5(B)に示すガロア体演算回路34’)の場合と本実施形態の場合とにおける総素子数を比較した例を示す。また、図11(B)に、n=8の場合に、従来技術(図5(B)に示すガロア体演算回路34’)の場合と本実施形態の場合とにおける総素子数を比較した例を示す。これより、ガロア体を特徴づけるパラメータmの増加に対して、本実施形態は従来の場合よりも回路規模の増加を抑えられることが分かる。   FIG. 11A compares the total number of elements in the case of the conventional technique (the Galois field arithmetic circuit 34 ′ shown in FIG. 5B) and the case of the present embodiment in the case of the degree n = 4 of the polynomial. An example is shown. FIG. 11B shows an example in which the total number of elements is compared between the case of the conventional technique (the Galois field arithmetic circuit 34 ′ shown in FIG. 5B) and the case of this embodiment when n = 8. Indicates. From this, it can be seen that, with respect to the increase in the parameter m that characterizes the Galois field, this embodiment can suppress the increase in the circuit scale as compared with the conventional case.

次に、回路規模の縮小以外の有効性についても述べる。図5(A)に示す線形展開部340の回路構造は取り扱うデータの各ビットについて独立な形をとる。つまり、1ビット分の回路をm個用意することで、これを実現することが可能である。これによって、回路のレイアウト面積の縮小が容易となる。   Next, the effectiveness other than the reduction of the circuit scale will be described. The circuit structure of the linear expansion unit 340 shown in FIG. 5A takes an independent form for each bit of data to be handled. That is, it is possible to realize this by preparing m circuits for 1 bit. This facilitates the reduction of the circuit layout area.

また、1ビット分に対応する線形展開部分は「m入力/2−1出力」の回路である。mビット分をフラットに記述した際は、「m入力/2の2−1乗出力」の回路であり、全入出力パターンを現実的な時間で検証することが困難である。一方、1ビット分をユニット化したものは、「m入力/2−1出力」の回路であるので、現実的な時間で全入出力パターンを検証可能である。このユニットで全入出力パターンを検証し、上位階層での接続を検証することで、より正確な検証を行うことができる。
また、線形展開部340を、m個のユニットに分けられるので、1ユニットからの出力を保持し、m回のクロックで最終結果を得る構成をとることも可能である。この場合、零点を求めるまでに、m回のクロックが必要になってしまうが、回路規模を上記本実施形態の約1/mに縮小することが可能である。
The linear expansion corresponding to one bit is a circuit of “m input / 2 m −1 output”. When m bits are described flat, it is a circuit of “m 2 inputs / 2 2 m −1 power” and it is difficult to verify all input / output patterns in a realistic time. On the other hand, since the unit of 1 bit is a circuit of “m input / 2 m −1 output”, all input / output patterns can be verified in a realistic time. By verifying all input / output patterns with this unit and verifying connections at higher levels, more accurate verification can be performed.
In addition, since the linear expansion unit 340 can be divided into m units, it is possible to hold the output from one unit and obtain the final result with m clocks. In this case, m clocks are required until the zero point is obtained, but the circuit scale can be reduced to about 1 / m of the present embodiment.

以上本発明の実施形態について説明したが、ここで、本発明と上述した実施形態との対応関係について補足して説明する。すなわち、上記実施形態において、本発明におけるガロア体演算回路は、図2に示すチェン探索部33内のガロア体演算回路34が対応し、本発明におけるメモリ装置は、図1に示す不揮発性半導体記憶装置(NAND型フラシュメモリEEPROM)10が対応する。また、本発明における基底計算部は、例えば、図5に示す基底計算部330が対応し、本発明における線形展開部は、例えば、線形展開部340が対応する。
また、本発明における誤り検出訂正回路は、図2に示す誤り検出訂正回路13が対応し、本発明におけるシンドローム計算部は、図2に示すデコーダ部30内のシンドローム計算部31が対応し、本発明における誤り係数計算部は、誤り係数計算部32が対応し、本発明におけるチェン探索部は、チェン探索部33が対応し、本発明における誤り訂正部は、誤り訂正部35が対応する。
Although the embodiment of the present invention has been described above, the correspondence relationship between the present invention and the above-described embodiment will be supplementarily described. That is, in the above embodiment, the Galois field arithmetic circuit in the present invention corresponds to the Galois field arithmetic circuit 34 in the chain search unit 33 shown in FIG. 2, and the memory device in the present invention is the nonvolatile semiconductor memory shown in FIG. The device (NAND flash memory EEPROM) 10 corresponds. The basis calculation unit in the present invention corresponds to, for example, the basis calculation unit 330 shown in FIG. 5, and the linear expansion unit in the present invention corresponds to, for example, the linear expansion unit 340.
The error detection and correction circuit in the present invention corresponds to the error detection and correction circuit 13 shown in FIG. 2, and the syndrome calculation unit in the present invention corresponds to the syndrome calculation unit 31 in the decoder unit 30 shown in FIG. The error coefficient calculation unit in the invention corresponds to the error coefficient calculation unit 32, the chain search unit in the present invention corresponds to the chain search unit 33, and the error correction unit in the present invention corresponds to the error correction unit 35.

そして、上記実施形態において、ガロア体演算回路34は、ガロア体GF(2)上(mは整数、以下同じ)のmビットによりベクトル表現される(2−1)個の元を誤り位置検出多項式へ代入するガロア体演算回路であって、(2−1)個の元のうちから、線形独立なm個の元を計算する基底計算部330と、(2−1)個の元のうちから上記m個の元を除いた(2−1−m)個の元を、それぞれ上記m個の元の組合せとして求める線形展開部340と、を備える。
このような構成のガロア体演算回路34は、基底計算部330と線形展開部340を有して構成される。基底計算部330は、ガロア体GF(2)上の線形独立なm個の元に対して誤り位置検出多項式を計算する。また、線形独立なm個の元を除いた残りの(2−1−m)個の元に対する誤り位置検出多項式の計算については、線形展開部340により、基底計算部330における演算結果を加算して計算を行う。
例えば、ガロア体GF(2)の場合に、誤り位置検出多項式「P(X)=p+p+p+pX1+p」におけるXの線形関数「例えば、Q(X)=p+p+pX」について、基底計算部330は、3個の線形独立な元(1,α、α)に対してQ(1),Q(α),Q(α)を計算する。そして、線形展開部340は、元(α,α、α,α)に対する線形関数Q(α),Q(α),Q(α),Q(α)について、Q(1),Q(α),Q(α)の演算結果を基に、この演算結果Q(1),Q(α),Q(α)をEXOR素子341,342,343により加算して計算する。
このように、ガロア体演算回路34では、従来の行列演算を単純加算に置き換えることができるので、回路規模を縮小することができる。
In the above-described embodiment, the Galois field arithmetic circuit 34 performs error representation of (2 m −1) elements represented by m bits on the Galois field GF (2 m ) (m is an integer, the same applies hereinafter). a Galois field operation circuit for substituting the detected polynomial, from among the (2 m -1) number of elements, the basis computation unit 330 for calculating a linearly independent m-number of source, (2 m -1) pieces of A linear expansion unit 340 that obtains (2 m -1-m) elements obtained by removing the m elements from the elements as a combination of the m elements.
The Galois field arithmetic circuit 34 having such a configuration includes a base calculation unit 330 and a linear expansion unit 340. The basis calculation unit 330 calculates an error position detection polynomial for linearly independent m elements on the Galois field GF (2 m ). In addition, regarding the calculation of the error position detection polynomial for the remaining (2 m −1−m) elements excluding the linearly independent m elements, the calculation result in the basis calculation unit 330 is added by the linear expansion unit 340. And calculate.
For example, in the case of the Galois field GF (2 3 ), the linear function of X in the error position detection polynomial “P (X) = p 4 X 4 + p 3 X 3 + p 2 X 2 + p 1 X1 + p 0 ” X) = p 4 X 4 + p 2 X 2 + p 1 X ”, the basis calculation unit 330 calculates Q (1), Q (α for three linearly independent elements (1, α 1 , α 2 ). 1 ), Q (α 2 ) is calculated. The linear expansion unit 340 then performs linear functions Q (α 3 ), Q (α 4 ), Q (α 5 ), and Q (α 6 ) on the element (α 3 , α 4 , α 5 , α 6 ). Q (1), Q (α 1), based on the calculation result of Q (α 2), the calculation result Q (1), Q (α 1), EXOR elements Q (α 2) 341,342,343 Calculate by adding.
Thus, in the Galois field arithmetic circuit 34, the conventional matrix operation can be replaced with simple addition, so that the circuit scale can be reduced.

また、上記実施形態において、ガロア体演算回路34は、誤り位置検出多項式において同一の線形空間を構成している項を線形関数として統合し、この統合された線形関数に対して、基底計算部330と線形展開部340とにより演算を行う
このような構成のガロア体演算回路34では、誤り位置検出多項式において、同一の線形構造をもつ項は統合して計算する。このように、同一の線形構造をもつ項を統合して計算することで、多項式の項を計算するユニット数が減り、さらに、各ユニット間出力を加算する回路の素子数も削減される。
Further, in the above embodiment, the Galois field arithmetic circuit 34 integrates the terms constituting the same linear space in the error position detection polynomial as a linear function, and the basis calculation unit 330 for the integrated linear function. In the Galois field arithmetic circuit 34 having such a configuration, terms having the same linear structure are integrated and calculated in the error position detection polynomial. Thus, by integrating and calculating terms having the same linear structure, the number of units for calculating polynomial terms is reduced, and further, the number of elements in a circuit for adding outputs between units is also reduced.

また、上記実施形態において、メモリ装置(不揮発性半導体記憶装置10)は、上記のガロア体演算回路34を用いて誤り位置検出多項式の演算を行い、入力されるデータ列の誤り検出を行う誤り訂正回路を備えるメモリ装置(不揮発性半導体記憶装置10)であって、誤り検出訂正回路13は、入力されるデータ列からシンドロームを計算するシンドローム計算部31と、シンドロームから誤り位置検出多項式の係数を算出する誤り係数計算部32と、データ列のデータのビット位置を示す値と、上記係数とを誤り位置検出多項式に代入して演算する上記ガロア体演算回路34と、誤り位置検出多項式への代入結果に応じて、データ列のビット毎に誤りが有るか否かを示すエラー検出信号を出力するチェン探索部33と、エラー検出信号によりデータ列におけるビットのデータの誤りを訂正して出力する誤り訂正部35と、を備える。
このような構成のメモリ装置(不揮発性半導体記憶装置10)では、ガロア体演算回路34において、誤り位置検出多項式を演算する際に、基底計算部330により、ガロア体GF(2)上の線形独立なm個の元に対して誤り位置検出多項式を計算する。そして、線形展開部340は、線形独立なm個の元を除いた残りの(2−1−m)個の元に対する誤り位置検出多項式を、基底計算部330における演算結果を基に、これらの演算結果の加算により生成する。
これにより、メモリ装置(不揮発性半導体記憶装置10)に搭載するガロア体演算回路34の回路規模を縮小することができる。このため、メモリ装置(不揮発性半導体記憶装置10)は、高速演算が可能な誤り検出訂正回路をオンチップで搭載することができる。
In the above embodiment, the memory device (nonvolatile semiconductor memory device 10) performs error position detection polynomial calculation using the Galois field arithmetic circuit 34, and error correction for detecting an error in the input data string. The error detection / correction circuit 13 is a memory device (nonvolatile semiconductor memory device 10) including a circuit, and a syndrome calculation unit 31 that calculates a syndrome from an input data string, and calculates a coefficient of an error position detection polynomial from the syndrome The error coefficient calculation unit 32, the value indicating the bit position of the data in the data string, the Galois field arithmetic circuit 34 for calculating by substituting the coefficient into the error position detection polynomial, and the result of the substitution into the error position detection polynomial In response, the chain search unit 33 for outputting an error detection signal indicating whether or not there is an error for each bit of the data string, and the error detection signal Provided Ri and error correction unit 35 to output the correcting an error bit of the data in the data row, the.
In the memory device (nonvolatile semiconductor memory device 10) having such a configuration, when the Galois field calculation circuit 34 calculates an error position detection polynomial, the basis calculation unit 330 performs linearity on the Galois field GF (2 m ). An error position detection polynomial is calculated for independent m elements. The linear expansion unit 340 then calculates error position detection polynomials for the remaining (2 m −1−m) elements excluding the linearly independent m elements based on the calculation result in the basis calculation unit 330. It is generated by adding the operation results of.
Thereby, the circuit scale of the Galois field arithmetic circuit 34 mounted in the memory device (nonvolatile semiconductor memory device 10) can be reduced. For this reason, the memory device (nonvolatile semiconductor memory device 10) can be equipped with an error detection and correction circuit capable of high-speed computation on-chip.

以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。   The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes a design and the like within the scope not departing from the gist of the present invention.

10…不揮発性半導体記憶装置、11…メモリセルアレイ、12… ページバッファ、13…誤り検出訂正回路、14…バッファ、15…I/Oパッド、16…制御回路、17…アドレスデコーダ、18…ロウ及びブロックデコーダ、30…デコーダ部、31…シンドローム計算部、32…誤り係数計算部、33…チェン探索部、34…ガロア体演算回路、35…誤り訂正部、40…エンコーダ部、41…パリティ生成回路、330…基底計算部、340…線形展開部、400…基底計算部、410…線形展開部、500…基底計算部、510…線形展開部 DESCRIPTION OF SYMBOLS 10 ... Nonvolatile semiconductor memory device, 11 ... Memory cell array, 12 ... Page buffer, 13 ... Error detection correction circuit, 14 ... Buffer, 15 ... I / O pad, 16 ... Control circuit, 17 ... Address decoder, 18 ... Row and Block decoder, 30 ... Decoder unit, 31 ... Syndrome calculation unit, 32 ... Error coefficient calculation unit, 33 ... Chain search unit, 34 ... Galois field arithmetic circuit, 35 ... Error correction unit, 40 ... Encoder unit, 41 ... Parity generation circuit , 330 ... basis calculation section, 340 ... linear expansion section, 400 ... basis calculation section, 410 ... linear expansion section, 500 ... base calculation section, 510 ... linear expansion section

Claims (3)

ガロア体GF(2)上(mは整数、以下同じ)のmビットによりベクトル表現される(2−1)個の元を誤り位置検出多項式へ代入するガロア体演算回路であって、
前記(2−1)個の元のうちから、線形独立なm個の元を計算する基底計算部と、
前記(2−1)個の元のうちから前記m個の元を除いた(2−1−m)個の元を、それぞれ前記m個の元の組合せとして求める線形展開部と、
を備えることを特徴とするガロア体演算回路。
A Galois field arithmetic circuit for substituting (2 m −1) elements represented by m bits on a Galois field GF (2 m ) (m is an integer, the same applies hereinafter) into an error position detection polynomial,
A basis calculation unit for calculating linearly independent m elements from the (2 m -1) elements;
Wherein the (2 m -1) pieces of the original one except for the m source (2 m -1-m) pieces of the original, and the linear expansion unit for determining a combination of each of the m pieces of the original,
A Galois field arithmetic circuit comprising:
前記誤り位置検出多項式において同一の線形空間を構成している項を線形関数として統合し、この統合された線形関数に対して、前記基底計算部と前記線形展開部とにより演算を行う
ことを特徴とする請求項1に記載のガロア体演算回路。
Terms that constitute the same linear space in the error position detection polynomial are integrated as a linear function, and the integrated linear function is operated by the base calculation unit and the linear expansion unit. The Galois field arithmetic circuit according to claim 1.
請求項1または請求項2に記載のガロア体演算回路を用いて誤り位置検出多項式の演算を行い、入力されるデータ列の誤り検出を行う誤り訂正回路を備えるメモリ装置であって、
前記誤り検出訂正回路は、
前記入力されるデータ列からシンドロームを計算するシンドローム計算部と、
前記シンドロームから前記誤り位置検出多項式の係数を算出する誤り係数計算部と、
前記データ列のデータのビット位置を示す値と、前記係数とを前記誤り位置検出多項式に代入して演算する前記ガロア体演算回路と、
前記誤り位置検出多項式への代入結果に応じて、前記データ列のビット毎に誤りが有るか否かを示すエラー検出信号を出力するチェン探索部と、
前記エラー検出信号により前記データ列におけるビットのデータの誤りを訂正して出力する誤り訂正部と、
を備えることを特徴とするメモリ装置。
A memory device comprising an error correction circuit that performs an error position detection polynomial calculation using the Galois field arithmetic circuit according to claim 1 or 2 and detects an error in an input data string,
The error detection and correction circuit includes:
A syndrome calculation unit for calculating a syndrome from the input data sequence;
An error coefficient calculator that calculates a coefficient of the error position detection polynomial from the syndrome;
The Galois field arithmetic circuit which calculates by substituting the value indicating the bit position of data in the data string and the coefficient into the error position detection polynomial;
A chain search unit that outputs an error detection signal indicating whether or not there is an error for each bit of the data string, according to the substitution result to the error position detection polynomial,
An error correction unit that corrects and outputs an error in the bit data in the data string by the error detection signal; and
A memory device comprising:
JP2012200621A 2012-09-12 2012-09-12 Galois field arithmetic circuit and memory device Pending JP2014057203A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012200621A JP2014057203A (en) 2012-09-12 2012-09-12 Galois field arithmetic circuit and memory device
KR1020130039897A KR102064857B1 (en) 2012-09-12 2013-04-11 Galois field calculating circuit and memory device
US14/024,758 US9317352B2 (en) 2012-09-12 2013-09-12 Galois field arithmetic operation circuit and memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012200621A JP2014057203A (en) 2012-09-12 2012-09-12 Galois field arithmetic circuit and memory device

Publications (1)

Publication Number Publication Date
JP2014057203A true JP2014057203A (en) 2014-03-27

Family

ID=50614159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012200621A Pending JP2014057203A (en) 2012-09-12 2012-09-12 Galois field arithmetic circuit and memory device

Country Status (2)

Country Link
JP (1) JP2014057203A (en)
KR (1) KR102064857B1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06314979A (en) 1993-04-28 1994-11-08 Nec Corp Galois field multiplier circuit
WO1999016175A1 (en) 1997-09-24 1999-04-01 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
JP3556461B2 (en) * 1998-03-18 2004-08-18 富士通株式会社 M-sequence phase shift coefficient calculation method
JP2000315955A (en) 1999-04-30 2000-11-14 Mitsubishi Electric Corp Encoding method, syndrome calculating method, number of erroneous bits estimating method, erroneous bit position estimating method, decoding method and decoder
JP4856110B2 (en) * 2008-03-01 2012-01-18 株式会社東芝 Chain search apparatus and chain search method

Also Published As

Publication number Publication date
KR102064857B1 (en) 2020-02-11
KR20140034677A (en) 2014-03-20

Similar Documents

Publication Publication Date Title
KR100833600B1 (en) Error correction circuit, method there-of and semiconductor memory device including the circuit
US7836377B2 (en) Semiconductor memory device
US11740960B2 (en) Detection and correction of data bit errors using error correction codes
Chen et al. An adaptive-rate error correction scheme for NAND flash memory
US8990667B2 (en) Error check and correction circuit, method, and memory device
US9384083B2 (en) Error location search circuit, and error check and correction circuit and memory device including the same
US10635528B2 (en) Memory controller and method of controlling memory controller
JP2008165808A (en) Error correction circuit and method for reducing miscorrection probability and semiconductor memory device including the circuit
KR102064508B1 (en) Ecc circuit and memory device including the same
JP4836608B2 (en) Semiconductor memory device
US10498364B2 (en) Error correction circuits and memory controllers including the same
US9317352B2 (en) Galois field arithmetic operation circuit and memory device
JP2007220260A (en) Semiconductor memory device
US9152493B2 (en) Error check and correction circuit and semiconductor memory
US10133628B2 (en) Apparatuses and methods for encoding using error protection codes
JP4891704B2 (en) Semiconductor memory device
JP2014033364A (en) Error detection and correction circuit and memory device
KR102021560B1 (en) Error bit search circuit, error check and correction circuit therewith, and memory device therewith
JP2014057203A (en) Galois field arithmetic circuit and memory device
KR102027949B1 (en) Error check and correction circuit and semiconductor memory
JP2014068058A (en) Error location search circuit, error detection and correction circuit and memory device
JP2014116659A (en) Error detection and correction circuit and semiconductor storage device
JP2014064242A (en) Error detection and correction circuit and semiconductor memory

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141226