JP2014057203A - Galois field arithmetic circuit and memory device - Google Patents
Galois field arithmetic circuit and memory device Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
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(2m)によるガロア体演算回路を用いた回路がある(特許文献1を参照)。この特許文献1に記載のガロア体演算回路は、ガロア体GF(2m)上の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
ところで、BCH符号やRS符号で代表される線形ブロック符号を用いたエラー訂正処理において、最も時間がかかるのが、誤り位置検出多項式(エラー位置探索方程式)P(X)の零点を求める(誤りであるか否かを検出する)処理である。一般的にこの零点を求める処理は、例えば、図12に示すガロア体演算回路(4次多項式のガロア体演算回路)において、誤り位置検出多項式P(X)の係数p0,p1,p2,p3,p4が確定した後、ガロア体要素(元)Xとして、1,α,α2,α3,・・・,αt−2(ただしt=2m)、を順次入力して、P(X)の零点を求める。この処理にかかる時間は、多項式の変数Xの取りうる値のすべてを一度に計算することで大幅に短縮できる。例えば、図13に示すように、各要素1,α,α2,α3,・・・,αt−2のそれぞれについての並列演算回路を設け、P(1),P(α1),P(α2),・・・,P(αt−2)(ただしt=2m)を同時に演算することにより、誤り位置検出多項式における演算時間を大幅に短縮できる。しかしながら、図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
そこで本発明が解決しようとする課題は、誤り位置検出多項式を演算するための回路の規模を縮小することができる、ガロア体演算回路、及びメモリ装置を提供することにある。 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(2m)上(mは整数、以下同じ)のmビットによりベクトル表現される(2m−1)個の元を誤り位置検出多項式へ代入するガロア体演算回路であって、前記(2m−1)個の元のうちから、線形独立なm個の元を計算する基底計算部と、前記(2m−1)個の元のうちから前記線形独立なm個の元を除いた(2m−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(2m)上の(2m−1)個の元のうちから、線形独立なm個の元を計算する基底計算部と、上記(2m−1)個の元のうちから上記線形独立なm個の元を除いた(2m−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.
以下、本発明の実施の形態を添付図面を参照して説明する。
[概要]
従来のガロア体演算回路は、例えば、図12に示す回路(4次多項式の回路)において、誤り位置検出多項式P(X)の係数p0,p1,p2,p3,p4が確定した後、ガロア体要素(元)Xとして、1(=α0),α(=α1),α2,α3,・・・を順次入力していき、P(X)の零点を求めている。
より具体的には、従来のガロア体多項式の零点を求めるガロア体演算回路では、第1の手順として、係数pi(i=0,2,3,4)を計算し、第2の手順として、項piXiを計算し、第3手順として、i=0,1,3,4に対応する各項を足し合わせる。そして、上記第1、第2及び第3の手順を、取り得る全ての要素X(1,α,α2,α3,・・・)、あるいはその一部に対して行い、多項式P(X)の零点を求める。しかしながら、この方法では、ガロア体の要素1,α,α2,α3,・・・を順次入力していき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
これに対処するために、多項式P(X)の零点を一度に求める回路(4次多項式の例)を用いることができる。例えば、図13に示すガロア体演算回路に示すように、各要素1(α0),α,α2,α3,・・・,αt−2(ただしt=2m)のそれぞれについての並列演算回路を設け、P(1),P(α1),P(α2),P(α3),・・・,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(2m)を採用した場合(mはガロア体要素をバイナリデータとみなした場合のデータ長に相当)、行列演算部分に対応する回路は約m(m−1)/2個のEXOR素子で構成される。そして、多項式の次数nのとき、これら行列演算の結果mビットをn+1項分足し合わせるので、これにm×n個のEXOR素子が必要である。Xが取りうる値の範囲をガロア体全体とすると、図13のユニット数は2m−1個であり、総計が、
(n+1)×(2m−1)×m(m−1)/2+n×(2m−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、X2、X4、X8、・・・」、X3についての線形性の有る部分「X3、X6、X12、・・・」、X5についての線形性の有る部分「X5、X10、X20、・・・」のように分け、この各々を同一の線形関数として統合する。そして、統合した線形関数については、基底値を用いて計算する基底計算部と、線形展開部とに分けて元を計算する。
基底計算部は、ガロア体GF(2m)上の線形独立なm個の元に対して誤り位置検出多項式を計算する。また、線形独立なm個の元を除いた残りの(2m−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, · · ·,"
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
The nonvolatile
The configuration of the nonvolatile
以下、不揮発性半導体記憶装置10の全体の構成について説明する。不揮発性半導体記憶装置10において、メモリセルアレイ11は、複数のスタックゲート構造のトランジスタ、すなわち電気的書き換え可能な不揮発性メモリセル(記憶素子)をカラム方向(列方向)に直列接続して、ビット線毎に設けられたNANDセルストリングを、行方向(ビット線の配列方向)に複数個配置したブロックから構成される。このブロックは、ビット線の配線方向に複数個配置される。また、このブロックは、メモリセルのデータの消去単位で設けられている。各ブロックにおいては、同一行に配置された不揮発性メモリ各々のゲートには、ビット線に直交したワード線が接続される。
1本のワード線により選択される不揮発性メモリセルの範囲がプログラム及び読み出しの単位となる1ページである。
Hereinafter, the overall configuration of the nonvolatile
A range of nonvolatile memory cells selected by one word line is one page as a unit for programming and reading.
ページバッファ12は、ページ単位のデータのプログラム及び読み出しを行うため、ビット線毎に設けられたページバッファ回路から構成されている。このページバッファ12におけるページバッファ回路各々は、それぞれのビット線に接続され、接続されたビット線の電位を増幅して判定するセンスアンプ回路として用いるラッチ回路を有する。
The
ページバッファ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
この符号データ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
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
誤り検出訂正回路13は、不揮発性半導体記憶装置10のデータ読み出し動作において、ページバッファ12から読み出されたデータを、セクタ毎に処理して、誤り位置検出多項式の係数を算出し、内部にラッチして保持する。また、誤り検出訂正回路13は、読み出し動作において、カラムアドレスにより位置が示されるビットのデータの誤りを訂正し、I/Oパッド15を介して訂正済データCorrected Dataとして外部へ出力する。
The error detection and
また、誤り検出訂正回路13は、不揮発性半導体記憶装置10のデータ書き込み動作において、I/Oパッド15から入力される情報データInformation Dataを、バッファ14を介して受け取る。誤り検出訂正回路13は、受け取った情報データInformation DataからパリティデータParityを生成するとともに、受け取った情報データInformation Data、及びパリティデータParityをページバッファ12に対して出力する。ページバッファ12は、これらのデータを符号データCode Dataとして、選択されているページに接続されるメモリセルに書き込む。
Further, the error detection and
制御回路16は、各種制御信号が入力され、不揮発性メモリセルに対するデータのプログラム、読み出し、消去などの動作、及びベリファイの動作の制御を行う。
例えば、制御信号は、外部クロック信号、チップイネーブル信号/CE、読み出しイネーブル信号/RE、プログラムイネーブル信号/WE、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトプロテクト信号/WPなどである。制御回路16は、これらの制御信号と、I/Oパッド15から入力されるコマンドデータとが示す動作モードに応じて、各回路に対して内部制御信号を出力する。
例えば、制御回路16は、プログラムイネーブル信号/WEの立ち上がり時にコマンドラッチイネーブル信号CLEがロウ(L)レベルからハイ(H)レベルになることにより、I/Oパッド15からコマンドデータを取り込み、内部のレジスタに保持する。
The
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
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
アドレスデコーダ17は、I/Oパッド15から入力されるアドレス(ロウアドレス、ブロックアドレス、カラムアドレス)を制御回路16からの内部制御信号に基づいて保持する。また、アドレスデコーダ17は、保持したアドレスを、制御回路16からの内部制御信号に基づいて、ロウ及びブロックデコーダ18、ページバッファ12、及び誤り検出訂正回路13へ出力する。
The
例えば、制御回路16は、プログラムイネーブル信号/WEの立ち上がり時にアドレスラッチイネーブル信号ALEがロウ(L)レベルからハイ(H)レベルになることにより、I/Oパッド15からアドレスを取り込み、アドレスデコーダ17の内部レジスタに保持する。
For example, the
ロウ及びブロックデコーダ18は、アドレスデコーダ17が保持し、出力するロウアドレス、及びブロックアドレスに応じて、メモリセルアレイ11のブロック、及びワード線の選択を行い、1ページ上のメモリセルを選択する。また、アドレスデコーダ17は、内部に保持するカラムアドレスに応じて、メモリセルアレイ11のビット線及びページバッファ12の選択を行う。
The row and
誤り検出訂正回路13は、不揮発性半導体記憶装置10のデータ読み出し動作において、ページバッファ12から読み出されたデータを、セクタ毎に処理して、誤り位置検出多項式の係数を算出する。また、誤り検出訂正回路13は、読み出し動作において、カラムアドレスにより位置が示されるビット毎のデータの誤りを訂正し、I/Oパッド15を介して訂正済データCorrected Dataとして外部へ出力する。
In the data read operation of the nonvolatile
また、誤り検出訂正回路13は、不揮発性半導体記憶装置10のデータ書き込み動作において、I/Oパッド15から入力される情報データInformation Dataを、バッファ14を介して受け取る。誤り検出訂正回路13は、受け取った情報データInformation DataからパリティデータParityを生成するとともに、受け取った情報データInformation Data、及びパリティデータParityをページバッファ12に対して出力する。ページバッファ12は、これらのデータを符号データCode Dataとして、選択されているページに接続されるメモリセルに書き込む。
Further, the error detection and
上記構成のNAND型フラッシュメモリにおいて、図2は、誤り検出訂正回路13の構成例を示す図である。
FIG. 2 is a diagram showing a configuration example of the error detection /
本実施形態においては、誤り検出訂正回路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 /
誤り検出訂正回路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
Among these, the
デコーダ部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
The
誤り係数計算部32は、これらのシンドロームS1、S3、S5、S7を使用して、誤り位置検出多項式の係数を計算する。例えば、誤り位置検出多項式が4次の多項式P(X)=p4X4+p3X3+p2X2+p1X+p0である場合に、誤り係数計算部32は、係数p4、p3、p2、p1、及びp0を計算する。そして、チェン探索部33では、ガロア体演算回路34により、誤り位置検出多項式P(X)を計算する。なお、この誤り位置検出多項式P(X)において、変数Xには、符号データ、つまりページバッファに格納されたセルデータCell Dataのビット位置(例えば、ビット線の位置)を示す値(ガロア体の要素)が入力される。つまり、この誤り位置検出多項式P(X)は、ページバッファ12から読み出されたビットに誤りがあるか否かを探索する際にチェン探索部33において用いられる。
The error
例えば、チェン探索部33は、ガロア体演算回路34において、誤り位置検出多項式P(X)=p4X4+p3X3+p2X2+p1X+p0を計算し、P(X)の値が0である場合、エラー検出信号ErrorをHレベルとして出力する。一方、P(X)の値が0でない場合、チェン探索部33は、エラー検出信号ErrorをLレベルとして出力する。
For example, the
誤り訂正部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
すなわち、チェン探索部33では、ガロア体演算回路34により誤り位置検出多項式P(X)=p4X4+p3X3+p2X2+p1X+p0にx=αi(ガロア体の要素:iはビット線の位置)をそれぞれ代入したときに、P(X)の値が0である場合、エラー検出信号Error<i>はHレベルとなる。一方、P(X)の値が0でない場合、エラー検出信号Error<i>はLレベルとなる。
In other words, the
誤り訂正部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
[多項式が持つ線形性とガロア体がもつ線形構造]
本実施形態の不揮発性半導体記憶装置10において、誤り検出訂正回路13は、ガロア体演算回路34において誤り位置検出多項式の演算を行う際に、ガロア体及び多項式が持つ線形構造を利用して回路規模の縮小を行っている。ここで、最初に、ガロア体と多項式が持つ線形性について補足して説明する。
なお、以下の説明においては、図面の見易さと説明を分かりやすさのために、ガロア体GF(2m)において、m=3(或いは、m=4)とし、誤り位置検出多項式の次数を4次(n=4)とした場合を例にとり説明するが、もちろん、次数m及びnは、誤り検出の対象となるデータのビット長と、誤り訂正ビット数とに応じて設定される任意の値のものである。
[Linearity of polynomials and linear structures of Galois fields]
In the nonvolatile
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(X1+X2)=F(X1)+F(X2)
(条件2)F(aX1)=aF(X1)
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)=X2はXの線形関数である。なぜならば、X1,X2をガロア体の要素、また、a=0,1とした時、
F(X1+X2)=(X1+X2)2
=X1 2+2X1・X2+X2 2
=X1 2+X2 2(∵ガロア体上での加算は排他的論理和であり、1+1=2=0のため2X1・X2は0)
=F(X1)+F(X2)
となり、(条件1)を満たす。また、aは、0,1なので、(条件2)を満たすのは明らかである。同様に、ガロア体上で「1+1=0」であることから、X4,X8,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)=p4X4+p2X2+p1X」と置く。
このとき、X,Yをガロア体の要素として、
Q(X+Y)=p4(X+Y)4+p2(X+Y)2+p1(X+Y)
=p4(X4+Y4)+p2(X2+Y2)+p1(X+Y)
(∵ガロア体上での加算は排他的論理和であり、1+1=2=0のため、2=4=0)
=p4X4+p4Y4+p2X2+p2Y2+p1X+p1Y
=(p4X4+p2X2+p1X)+(p4Y4+p2Y2+p1Y)
=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)=p4X4+p2X2+p1X」は、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.
一方、他の項(X4,X2,X以外の項)に関しても、例えば、X3やX5などを変数とみなすことで、線形関数とみなすことが可能である。例えば、3次、6次、12次の項に着目し、
R(X)=p12X12+p6X6+p3X3と置けば、R(X)はX3の線形関数である。
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
次に、ガロア体がもつ線形構造について説明する。
図3は、原始多項式F(X)を「F(X)=X4+X+1」としたときのガロア体GF(24)の要素1(=α0),α1,α2,・・・,α14を表(表1)で示したものである。ここで、1,α,α2,α3の4要素(点線で囲んだ部分)に着目すると、これらは自分以外の要素の和で自分自身が決して表現されない線形独立な組であることが分かる。これらを基底ベクトルであると考えると、他の要素はこの基底ベクトルの線形結合で表現される。すなわち、「α4+α1+α0=0」の関係を用いて、各要素0,α0(=1),α1,α2,・・・,α14は、α0,α,α2,α3を要素とする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
例えば、α4=1+α1であり、
また、α12=α(α1+α2+α3)=α2+α3+α4=1+α1+α2+α3のように表わされる。
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=β3α3+β2α2+β1α1+β0α0(j=0,1,2,・・・)と表わすことができる。ここで、(β3,β2,β1,β0)は、αjに対応するベクトル表現である。 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)に対して、Qj=Q(αj)(j=0,1,2,・・・)と書くことにする。Q(X)に、αj=β3α3+β2α2+β1α1+β0α0を代入すると、
Qj=Q(αj)・・・(a)
=Q(β3α3+β2α2+β1α1+β0α0)
=β3Q(α3)+β2Q(α2)+β1Q(α1)+β0Q(α0)
(∵Q(X)の線形性より)
=β3Q3+β2Q2+β1Q1+β0Q0・・・(b)
を得る。従来、上記(a)式から、「Qj=p4α4+p2α2+p1α」として、各項を行列演算した結果をさらに加算する必要があったが、本実施形態では上記(b)式を利用し、基底1(=α0),α1,α2,α3に対応するQ0,Q1,Q2,Q3をあらかじめ行列演算で求めて、これらの単純加算で他のQjを求めることができる。
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)=X3+X+1」としたときのガロア体GF(23)の要素1(=α0),α1,α2,・・・,α6を表(表2)で示したものである。こここで、1,α,α2の3要素(点線で囲んだ部分)に着目すると、これらは自分以外の要素の和で自分自身が決して表現されない線形独立な組であることが分かる。これらを基底ベクトルであると考えると、他の要素はこの基底ベクトルの線形結合で表現される。すなわち、「α3+α1+α0=0」の関係を用いて、各要素0,α0(=1),α1,α2,・・・,α6は、α0,α,α2を要素とする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
[ガロア体演算回路34の構成]
次に、ガロア体多項式(誤り位置検出多項式)の零点を求めるガロア体演算回路34の構成について説明する。このガロア体演算回路34は、上述した誤り位置検出多項式(誤り位置検出多項式)が持つ線形性とガロア体がもつ線形構造とを利用して回路規模を縮小するように構成されている。すなわち、ガロア体演算回路34は、誤り位置検出多項式P(X)を演算する際に、同じ線形空間を構成する項を統合した線形関数について、後述する基底計算部と線形展開部とを用いて演算を行うことにより、回路規模を縮小することができる。
[Configuration of Galois Field Arithmetic Circuit 34]
Next, the configuration of the Galois field
図5(A)は、ガロア体演算回路34の構成例を示す図であり、「m=3」の場合の例である。このガロア体演算回路34は、基底計算部330と線形展開部340とを有して構成される。また、基底計算部330は、3組の演算部R0,R1,R2を有し、線形展開部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
In the Galois field
このように、本実施形態のガロア体演算回路34では、誤り位置検出多項式に含まれる線形関数に対して、基底計算部330により基底を計算し、線形展開部340は、これらの基底の計算結果の単純加算で、線形関数のXの取りうるすべての値を一度に出力する。すなわち、このガロア体演算回路34では、Xの取りうる値の全組み合わせ2m−1から基底の個数mを引いた2m−1−m個に対して、行列演算部(EXOR素子を約m(m−1)/2個使用)を単純加算(EXOR素子をm−1個使用)に置き換えることで、回路規模を縮小することができる。
As described above, in the Galois field
一方、図5(B)は、従来のガロア体演算回路34’の構成を示す図であり、このガロア体演算回路34’では、各要素Xのそれぞれについての7個の並列演算回路R0〜R6を設け、この7個の並列演算回路R0〜R6により、信号y0,y1,y2,・・・,y6を同時に演算する。
On the other hand, FIG. 5 (B) is a diagram showing a configuration of a conventional Galois field
つまり、図6に示すように、4次の誤り位置検出多項式「P(X)=p4X4+p3X3+p2X2+p1X1+p0」の場合に、従来のガロア体演算回路34’では、図6(A)に示すように、各項piXiごとに演算を行っていた。これに対して、本実施形態のガロア体演算回路34では、図6(B)に示すように、Xについての同一の線形構造をもつ項を多項式(線形関数Q(X)=p4X4+p2X2+p1X)に統合する。
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
そして、この線形関数「Q(X)=p4X4+p2X2+p1X」に対して、図5(A)に示したガロア体演算回路34より、基底計算部330と線形展開部340とにより演算を行うことにより、誤り位置検出多項式P(X)の演算において、各項を計算するユニット数が減り、さらに、各ユニット間の出力を加算する回路の素子数も低減される。
なお、Q(X)以外の項「p3X3」「P0」は、ガロア体演算回路34内の不図示の回路で別途に計算され、後に、「Q(X)=p4X4+p2X2+p1X」の演算結果と加算されるものである。
Then, for this linear function “Q (X) = p 4 X 4 + p 2 X 2 + p 1 X”, the Galois field
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
図7は、図5(A)に示すガロア体演算回路34の動作を説明するための図であり、変数Xをαのベキ乗表現で示した図である。この図7に示すガロア体演算回路34は、基底計算部330に入力される要素(元)Xを、1,α,α2とし、基底計算部330により、Xについての線形関数Q(1),Q(α),Q(α2)を算出し、線形展開部340により、Q(α3),Q(α4),Q(α5),Q(α6)を算出する例である。
FIG. 7 is a diagram for explaining the operation of the Galois field
この図7に示すように、ガロア体演算回路34は、基底計算部330と、線形展開部340とで構成されており、基底計算部330には、3つの演算部R0,R1,R2を有し、線形展開部340には、4つのEXOR素子341,342,343,344を有している。
As shown in FIG. 7, the Galois field
基底計算部330内の演算部R0は、要素X(1=α0)に対する誤り位置検出多項式内の線形関数「Q(1)=p414+p212+p111」を行列演算により算出する。演算部R1は、要素X(=α1=α)に対する線形関数「Q(α)=p4α4+p2α2+p1α1」を行列演算により算出する。演算部R2は、要素X(=α2)に対する線形関数「Q(α2)=p4(α2)4+p2(α2)2+p1α2」を行列演算により算出する。
The calculation unit R 0 in the
そして、線形展開部340は、この基底計算部330により算出された演算結果Q(1),Q(α),Q(α2)を単純加算で展開して他の出力を得る。
例えば、Q(α3)は、図4のガロア体GF(23)の表2に示すように、「α3=α+1」であるため、上述した線形性により、「Q(α3)=Q(α)+Q(1)」で表すことができる。このため、Q(α3)は、EXOR素子(加算器)341により、基底計算部330の出力Q(1)とQ(α)を加算することにより得られる。
Then, the
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
また、Q(α4)は、図4のガロア体GF(23)の表2に示すように、「α4=α2+α」であるため、上述した線形性により、「Q(α4)=Q(α2)+Q(α)」で表すことができる。このため、Q(α4)は、EXOR素子342により、基底計算部330の出力Q(α)とQ(α2)を加算することにより得られる。
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
また、Q(α5)は、「α5=α2+α+1」であり、また、「α4=α2+α」であるため、「α5=α4+1」となる。このため、Q(α5)はEXOR素子343により、基底計算部330の出力Q(1)と、EXOR素子342の出力Q(α4)とを加算することにより得られる。
同様にして、Q(α6)は、「α6=α2+1」であるため、Q(α6)は、EXOR素子344により、基底計算部330の出力Q(1)とQ(α2)とを加算することにより得られる。
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
Similarly, since Q (α 6 ) is “α 6 = α 2 +1”, Q (α 6 ) is output by the
このように、ガロア体GF(23)の場合に、基底計算部330は、3個の線形独立な元(1、α1、α2)に対して、この元に対応する3組の線形関数Q(1),Q(α1),Q(α2)を計算する。そして、線形展開部340は、線形関数Q(α3),Q(α4),Q(α5),Q(α6)を、基底計算部330におけるQ(1),Q(α1),Q(α2)の演算結果を基に、EXOR素子により加算して計算することができる。このように、ガロア体演算回路34では、要素Xの取りうる値の全組み合わせ数7から基底の個数3を引いた「4個」の誤り位置検出多項式(より正確には、誤り位置検出多項式内の線形関数)に対して、行列演算を単純加算に置き換えることで、回路規模を縮小することができる。
As described above, in the case of the Galois field GF (2 3 ), the
なお、図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
[誤り位置検出多項式がX2とX3の線形関数を含む場合]
上述の実施形態では、Xについての線形関数「Q(X)=p1X4+p2x2+p1X」を計算するガロア体演算回路34の例について説明したが、ここで、誤り位置検出多項式Λ(X)が、Xについての線形関数と、X3についての線形関数を含む場合の例について説明する。
例えば、誤り位置検出多項式Λ(X)が、P(X)=「σ1X+σ2X2+σ4X4+・・・」+「σ3X3+σ6X6+σ12X12+・・・」で表される場合は、Xについての線形関数「M(X)=σ1X+σ2X2+σ4X4+・・・」と、X3についての線形関数「N(X)=σ3X3+σ6X6+σ12X12+・・・」とのそれぞれに分けて統合し、それぞれの線形関数について個別に演算を行うことができる。
[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
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
基底計算部400は、演算部401により、M(α0)を算出し、演算部402により、M(α1)を算出し、演算部403により、M(α2)を算出する。すなわち、演算部401は、要素X(1=α0)に対する誤り位置検出多項式「M(X)=σ11+σ212+σ414+・・・」を行列演算により算出する。また、演算部402は、要素X(=α1=α)に対する誤り位置検出多項式「M(X)=σ1α+σ2α2+σ4α4+・・・」を行列演算により算出する。また、演算部403は、要素X(=α2)に対する誤り位置検出多項式「M(X)=σ1(α2)+σ2(α2)2+σ4(α2)4+・・・」を行列演算により算出する。
The
そして、線形展開部410は、EXOR素子411,412,413,414により、基底計算部400により算出された演算結果を単純加算で展開し、M(α3),M(α4),M(α5),M(α6)、を算出する。
例えば、M(α3)は、図4のガロア体GF(23)の表2に示すように、「α3=α+1」であるため、上述した線形性により、「M(α3)=M(α)+M(α0=1)」で表すことができる。このため、M(α3)は、EXOR素子(加算器)411により、基底計算部400の出力M(α0=1)とM(α)を加算することにより得られる。
The
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
また、M(α4)は、図4のガロア体GF(23)の表2に示すように、「α4=α2+α」であるため、上述した線形性により、「M(α4)=M(α2)+M(α)」で表すことができる。このため、M(α4)は、EXOR素子412により、基底計算部400の出力M(α)とM(α2)を加算することにより得られる。
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
また、M(α5)は、「α5=α2+α+1」であり、また、「α4=α2+α」であるため、「α5=α4+1」となる。このため、M(α5)はEXOR素子413により基底計算部400の出力M(α0=1)と、EXOR素子342の出力M(α4)とを加算することにより得られる。
同様にして、M(α6)は、「α6=α2+1」であるため、M(α6)は、EXOR素子414により、基底計算部400の出力M(α0=1)とM(α2)とを加算することにより得られる。
これにより、ガロア体演算回路34において、線形関数「σ1X+σ2X2+σ4X4+・・・」に対する演算回路の回路規模を縮小することができる。
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
Similarly, since M (α 6 ) is “α 6 = α 2 +1”, M (α 6 ) is output from the output M (α 0 = 1) and M of the
Thereby, in the Galois field
次に、X3についての関数「N(X)=σ3X3+σ6X6+σ12X12+・・・」の演算について説明する。
図9は、図4に示す原始多項式X3+X+1としたときのガロア体GF(23)についての元(表2に示す元)を、3乗したものを表(表3)で示したものである。この場合に、図9において点線で囲まれた部分(1,α3,α6)を基底として、その他の元(α9,α12,α15,α18)を基底の和で表すことができる。
It will be described operation of the
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.
このため、本実施形態では、X3、X6、X12、・・・の項をまとめた部分「線形関数N(X)=σ3X3+σ6X6+σ12X12+・・・」について、図10に示すように、基底計算部500と線形展開部510とに分けて演算することがでる。ただし、線形展開部510において基底を展開する回路パターンは図8の場合とは異なる。これはN(X)に対して、Y=X3と置いたとき、N(Y)=σ3Y+σ6Y2+σ12Y4+・・・、と線形関数となり、さらにYの取りうる値が、図9の表3に示すような基底の加算で表現できるからである。この例では、N(X)をXの非線形関数ではなく、X3を変数とする線形関数とみなし、基底展開による計算を行うため、図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
この図10に示す例では、多項式「N(X)=σ1X3+σ6X6+σ12X12+・・・」について、基底計算部500内の演算部501により、N(α0)を行列演算により算出し、演算部502により、N(α3)を行列演算により算出し、演算部503により、N(α6)を行列演算により算出する。そして、線形展開部510は、基底計算部500により算出した基底の演算結果N(α0),N(α3),N(α6)を基に、EXOR素子511,512,513,514により、N(α9),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
例えば、N(α9)は、図9の表3に示すように、「α9=α6+1」であるため、上述した線形性により、「N(α9)=N(α6)+N(α0=1)」で表すことができる。このため、N(α9)は、EXOR素子(加算器)511により、基底計算部500の出力N(α0=1)とN(α6)を加算することにより得られる。
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
また、N(α12)は、図9の表3に示すように、「α12=α6+α3+1」であり、また、「α9=α6+1」であるため、「α12=α9+α3」となる。このため、上述した線形性により、「N(α12)=N(α9)+N(α3)」で表すことができる。このため、N(α12)は、EXOR素子512により、基底計算部500の出力N(α3)と、EXOR素子512の出力N(α9)を加算することにより得られる。
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
また、N(α15)は、「α15=α3+1」である。このため、上述した線形性により、N(α15)はEXOR素子513により基底計算部500の出力N(α0=1)とN(α3)とを加算することにより得られる。
同様にして、M(α18)は、「α18=α6+α3」であるため、N(α18)は、EXOR素子514により、基底計算部500の出力N(α6)とN(α3)とを加算することにより得られる。
N (α 15 ) is “α 15 = α 3 +1”. Therefore, N (α 15 ) is obtained by adding the outputs N (α 0 = 1) and N (α 3 ) of the
Similarly, since M (α 18 ) is “α 18 = α 6 + α 3 ”, N (α 18 ) is output by the
これにより、ガロア体演算回路34では、線形関数「N(X)=σ3X3+σ6X6+σ12X12+・・・」に対して演算を行う際の回路規模の縮小を図ることができる。
As a result, the Galois field
以上説明したように、本実施形態の誤り検出訂正回路13において、ガロア体演算回路34は、基底を計算する基底計算部の回路と、基底を単純加算で展開する線形展開部の回路の2つを有している。
このガロア体演算回路34では、ガロア体多項式P(X)の係数pi(i=0,1,2,・・・)が確定したのち、誤り位置検出多項式P(X)に含まれる各線形関数に対して、基底計算部330により基底を計算し、線形展開部340は、これらの基底の単純加算で、P(X)のXの取りうるすべての値を一度に出力することができる。このため、ガロア体演算回路34の回路規模が縮小される。
また、図8及び図10で示したように、同一の線形構造をもつ項を統合して計算することで、多項式の項を計算するユニット数が減り、さらに、各ユニット間出力を加算する回路の素子数も削減される。
As described above, in the error detection and
In the Galois field
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.
[本実施形態による素子数の削減効果の具体例]
次に、係数pi(i=0,1,2,・・・)、変数Xをガロア体GF(2m)の要素とするm次多項式P(X)の零点を求める回路について、使用される素子数を計算し、従来技術の場合(図5(B)のガロア体演算回路34’の場合)と、本実施形態のガロア体演算回路34の場合との比較を行う。
従来技術の場合では、EXOR素子を約m(m−1)/2個必要とする行列演算回路が2m−1組必要であり、これがさらに多項式の項数分n+1組必要である。また、各項を加算するためのEXOR素子はm個の組が2m−1組、さらにこれがn組必要である。よって、回路に必要な総素子数は、
(n+1)×(2m−1)×m(m−1)/2+n×(2m−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
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個の組が「2m−1−m」個必要である。「X2,X4,X8,X16,・・・」などXを2のべき乗回だけ乗じる関数はガロア体上の線形関数であり、線形関数どうしの線形結合もまた線形関数であることから、これらの項は統合可能である。同様に、X3,X6,X12,・・・」…や、「X5,X10,X20,・・・」もまた、統合可能である。
In the Galois field
これより、統合後の線形関数の個数は、多項式の次数n以下である奇数の個数に等しいことが分かる。定数項p0も併せて考えると、統合後に必要なユニット数は、
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)(2m−1−m)×m+(2m−1−m)n/2である。
また、nが奇数のときは、
(n+1)×m×m(m−1)/2+m×m×n+{(n+1)/2+1}(2m−1−m)×m+(2m−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
次に、回路規模の縮小以外の有効性についても述べる。図5(A)に示す線形展開部340の回路構造は取り扱うデータの各ビットについて独立な形をとる。つまり、1ビット分の回路をm個用意することで、これを実現することが可能である。これによって、回路のレイアウト面積の縮小が容易となる。
Next, the effectiveness other than the reduction of the circuit scale will be described. The circuit structure of the
また、1ビット分に対応する線形展開部分は「m入力/2m−1出力」の回路である。mビット分をフラットに記述した際は、「m2入力/2の2m−1乗出力」の回路であり、全入出力パターンを現実的な時間で検証することが困難である。一方、1ビット分をユニット化したものは、「m入力/2m−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
以上本発明の実施形態について説明したが、ここで、本発明と上述した実施形態との対応関係について補足して説明する。すなわち、上記実施形態において、本発明におけるガロア体演算回路は、図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
The error detection and correction circuit in the present invention corresponds to the error detection and
そして、上記実施形態において、ガロア体演算回路34は、ガロア体GF(2m)上(mは整数、以下同じ)のmビットによりベクトル表現される(2m−1)個の元を誤り位置検出多項式へ代入するガロア体演算回路であって、(2m−1)個の元のうちから、線形独立なm個の元を計算する基底計算部330と、(2m−1)個の元のうちから上記m個の元を除いた(2m−1−m)個の元を、それぞれ上記m個の元の組合せとして求める線形展開部340と、を備える。
このような構成のガロア体演算回路34は、基底計算部330と線形展開部340を有して構成される。基底計算部330は、ガロア体GF(2m)上の線形独立なm個の元に対して誤り位置検出多項式を計算する。また、線形独立なm個の元を除いた残りの(2m−1−m)個の元に対する誤り位置検出多項式の計算については、線形展開部340により、基底計算部330における演算結果を加算して計算を行う。
例えば、ガロア体GF(23)の場合に、誤り位置検出多項式「P(X)=p4X4+p3X3+p2X2+p1X1+p0」におけるXの線形関数「例えば、Q(X)=p4X4+p2X2+p1X」について、基底計算部330は、3個の線形独立な元(1,α1、α2)に対してQ(1),Q(α1),Q(α2)を計算する。そして、線形展開部340は、元(α3,α4、α5,α6)に対する線形関数Q(α3),Q(α4),Q(α5),Q(α6)について、Q(1),Q(α1),Q(α2)の演算結果を基に、この演算結果Q(1),Q(α1),Q(α2)をEXOR素子341,342,343により加算して計算する。
このように、ガロア体演算回路34では、従来の行列演算を単純加算に置き換えることができるので、回路規模を縮小することができる。
In the above-described embodiment, the Galois field
The Galois field
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
Thus, in the Galois field
また、上記実施形態において、ガロア体演算回路34は、誤り位置検出多項式において同一の線形空間を構成している項を線形関数として統合し、この統合された線形関数に対して、基底計算部330と線形展開部340とにより演算を行う
このような構成のガロア体演算回路34では、誤り位置検出多項式において、同一の線形構造をもつ項は統合して計算する。このように、同一の線形構造をもつ項を統合して計算することで、多項式の項を計算するユニット数が減り、さらに、各ユニット間出力を加算する回路の素子数も削減される。
Further, in the above embodiment, the Galois field
また、上記実施形態において、メモリ装置(不揮発性半導体記憶装置10)は、上記のガロア体演算回路34を用いて誤り位置検出多項式の演算を行い、入力されるデータ列の誤り検出を行う誤り訂正回路を備えるメモリ装置(不揮発性半導体記憶装置10)であって、誤り検出訂正回路13は、入力されるデータ列からシンドロームを計算するシンドローム計算部31と、シンドロームから誤り位置検出多項式の係数を算出する誤り係数計算部32と、データ列のデータのビット位置を示す値と、上記係数とを誤り位置検出多項式に代入して演算する上記ガロア体演算回路34と、誤り位置検出多項式への代入結果に応じて、データ列のビット毎に誤りが有るか否かを示すエラー検出信号を出力するチェン探索部33と、エラー検出信号によりデータ列におけるビットのデータの誤りを訂正して出力する誤り訂正部35と、を備える。
このような構成のメモリ装置(不揮発性半導体記憶装置10)では、ガロア体演算回路34において、誤り位置検出多項式を演算する際に、基底計算部330により、ガロア体GF(2m)上の線形独立なm個の元に対して誤り位置検出多項式を計算する。そして、線形展開部340は、線形独立なm個の元を除いた残りの(2m−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
In the memory device (nonvolatile semiconductor memory device 10) having such a configuration, when the Galois
Thereby, the circuit scale of the Galois field
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 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
Claims (3)
前記(2m−1)個の元のうちから、線形独立なm個の元を計算する基底計算部と、
前記(2m−1)個の元のうちから前記m個の元を除いた(2m−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.
前記誤り検出訂正回路は、
前記入力されるデータ列からシンドロームを計算するシンドローム計算部と、
前記シンドロームから前記誤り位置検出多項式の係数を算出する誤り係数計算部と、
前記データ列のデータのビット位置を示す値と、前記係数とを前記誤り位置検出多項式に代入して演算する前記ガロア体演算回路と、
前記誤り位置検出多項式への代入結果に応じて、前記データ列のビット毎に誤りが有るか否かを示すエラー検出信号を出力するチェン探索部と、
前記エラー検出信号により前記データ列におけるビットのデータの誤りを訂正して出力する誤り訂正部と、
を備えることを特徴とするメモリ装置。 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:
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)
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 |
-
2012
- 2012-09-12 JP JP2012200621A patent/JP2014057203A/en active Pending
-
2013
- 2013-04-11 KR KR1020130039897A patent/KR102064857B1/en active IP Right Grant
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 |