JP4113225B2 - Semiconductor device - Google Patents

Semiconductor device Download PDF

Info

Publication number
JP4113225B2
JP4113225B2 JP2006126365A JP2006126365A JP4113225B2 JP 4113225 B2 JP4113225 B2 JP 4113225B2 JP 2006126365 A JP2006126365 A JP 2006126365A JP 2006126365 A JP2006126365 A JP 2006126365A JP 4113225 B2 JP4113225 B2 JP 4113225B2
Authority
JP
Japan
Prior art keywords
circuit
data
bits
bit
memory cell
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.)
Expired - Lifetime
Application number
JP2006126365A
Other languages
Japanese (ja)
Other versions
JP2006209969A (en
Inventor
昇 柴田
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006126365A priority Critical patent/JP4113225B2/en
Publication of JP2006209969A publication Critical patent/JP2006209969A/en
Application granted granted Critical
Publication of JP4113225B2 publication Critical patent/JP4113225B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、NAND型フラッシュメモリ等の半導体装置に係り、特に、チップ内に誤り訂正機能を持たせた半導体装置に関する。   The present invention relates to a semiconductor device such as a NAND flash memory, and more particularly to a semiconductor device having an error correction function in a chip.

NAND型フラッシュメモリは、書き換えを繰り返すとセルの特性が劣化すること、及び長時間放置するとデータ化けすることが知られている。したがって、この種のNAND型フラッシュメモリの信頼性を上げるため、従来より、チップ内に誤り検出訂正用のECC(Error Correcting Code)回路を搭載した半導体メモリが提案されている(例えば特開2000−348497号、特開2001−14888号等)。 It is known that NAND-type flash memory has cell characteristics that deteriorate when rewriting is repeated and that data becomes garbled when left for a long time. Therefore, in order to increase the reliability of this type of NAND flash memory, conventionally, a semiconductor memory equipped with an ECC (Error Correcting Code) circuit for error detection and correction in the chip has been proposed (for example, Japanese Open 2 000 No. -348497, JP open 2 001-14888 No., etc.).

図21は、ECC回路を搭載した従来のNAND型フラッシュメモリの構成を簡略的に示すブロック図である。   FIG. 21 is a block diagram schematically showing a configuration of a conventional NAND flash memory equipped with an ECC circuit.

このメモリは、8つのメモリセルエリア10,11,…,17から構成されている。各メモリセルエリア10〜17は、マトリクス状に配列された図示しない複数のメモリセルからなり、共通のワード線に接続された528個のメモリセルに対して528本のビット線を介して528ビットのデータ(=1ページ)を一括して書き込み及び読み出しができるようになっている。各メモリセルエリア10〜17には、528ビットの書き込みデータ及び読み出しデータを保持するページバッファ20〜27が接続されている。ページバッファ20〜27と、各メモリセルエリア10〜17毎に設けられたI/O端子40〜47との間には、各メモリセルエリア10〜17毎にECC回路30〜37がそれぞれ設けられている。 This memory, eight memory cell area 1 0, 1 1, ..., and a 1 7. Each memory cell area 1 0-1 7 includes a plurality of memory cells (not shown) are arranged in a matrix, through the 528 bit lines to the connected 528 memory cells to a common word line 528 bits of data (= 1 page) can be written and read at once. Page buffers 2 0 to 2 7 for holding 528 bits of write data and read data are connected to the memory cell areas 1 0 to 17 , respectively. A page buffer 2 0-2 7, between the I / O terminals 4 0-4 7 provided in each memory cell area 1 0-1 every 7, ECC for each memory cell area 1 0-1 7 circuit 3 0-3 7 are provided.

各ECC回路30〜37は、各メモリセルエリア10〜17に記憶される1ページ分(528ビット)の情報ビットに対し、所定ビット数の検査ビット(ECC)を付加する符号化機能と、検査ビットが付加された情報ビットから所定ビット数の誤り検出及び誤り訂正を行う復号機能とを備えたもので、誤り訂正符号として、例えば比較的少ない回路規模で複数ビットの誤り訂正が可能なBCH(Bose-Chaudhuri-Hocquenghem)符号が使用されている。外部とメモリとの間は、例えばメモリセル数に対応する8ビット単位でデータがリード・ライトされる。従って、各ECC回路30〜37には、1ビットずつデータが入力され、内部の巡回型シフトレジスタを1ビットずつ巡回し、1ビットずつ出力することで、符号化処理及び復号処理が実行される。 Each of the ECC circuits 3 0 to 3 7 encodes a check bit (ECC) having a predetermined number of bits to one page (528 bits) of information bits stored in the memory cell areas 1 0 to 17 . And a decoding function that performs error detection and error correction for a predetermined number of bits from information bits with check bits added. For example, error correction codes can be used for error correction of multiple bits with a relatively small circuit scale. Possible BCH (Bose-Chaudhuri-Hocquenghem) codes are used. Between the outside and the memory, for example, data is read / written in units of 8 bits corresponding to the number of memory cells. Therefore, the ECC circuits 3 0 to 3 7 receive data one bit at a time, circulate the internal cyclic shift register one bit at a time, and output one bit at a time, thereby executing the encoding process and the decoding process. Is done.

次に、BCH符号を利用した従来のECC回路30〜37の符号化及び復号動作ついて説明する。 Next, a description will be given of encoding and decoding operation of a conventional ECC circuit 3 0-3 7 using BCH codes.

なお、情報ビット数528ビットで、2ビット誤り訂正3ビット誤り検出を行うBCH符号の検査ビット数は21ビットになるが、ここでは説明を簡単にするため、情報ビット数k=7、符号長n=15、訂正ビット数t=2の2ビット誤り訂正3ビット誤り検出が可能なBCH符号を用いた誤り検出・訂正方式を例にとり説明する。   Note that the number of check bits of a BCH code that performs 528 bits of information and performs 2-bit error correction and 3-bit error detection is 21 bits, but here, for simplicity of explanation, the number of information bits k = 7, the code length An error detection / correction method using a BCH code capable of 2-bit error correction and 3-bit error detection with n = 15 and the number of correction bits t = 2 will be described as an example.

この場合の符号化、復号化に必要な生成多項式は以下のようになることが一般に知られている。   It is generally known that a generator polynomial necessary for encoding and decoding in this case is as follows.

[数1]
原始多項式 : F(X) =X4+X+1
αの最小多項式 : M1(x)=X4+X+1
α3の最小多項式: M3(x)=X4+X3+X2+X+1
生成多項式 : G(x) =M13=X8+X7+X6+X4+1
(1)符号化回路
図22は、従来のECC回路3i(i=0,1,…,又は7)の内部に機能的に構成される符号化回路10を示すブロック図である。この符号化回路10は、レジスタD7,D6,D5,D4,D3,D2,D1,D0からなるシフトレジスタ11と、モジュロ2の演算を行うXOR回路121,122,123,124と、切替スイッチSW1,SW2とから構成されている。
[Equation 1]
Primitive polynomial: F (X) = X 4 + X + 1
Minimum polynomial of α: M 1 (x) = X 4 + X + 1
Minimum polynomial of α 3 : M 3 (x) = X 4 + X 3 + X 2 + X + 1
Generator polynomial: G (x) = M 1 M 3 = X 8 + X 7 + X 6 + X 4 +1
(1) Encoding Circuit FIG. 22 is a block diagram showing an encoding circuit 10 functionally configured inside a conventional ECC circuit 3i (i = 0, 1,..., Or 7). The encoding circuit 10 includes a shift register 11 composed of registers D 7 , D 6 , D 5 , D 4 , D 3 , D 2 , D 1 , and D 0 and XOR circuits 12 1 and 12 that perform modulo 2 operations. 2 , 12 3 , 12 4 and change-over switches SW1, SW2.

シフトレジスタ11を1回動かす動作は、シフトレジスタ11の値をそれぞれX倍することに相当する。いま、シフトレジスタ11に格納されたデータの値を、次のように表す。   The operation of moving the shift register 11 once corresponds to multiplying the value of the shift register 11 by X times. Now, the value of the data stored in the shift register 11 is expressed as follows.

[数2]
00+a11+a22+a33+a44+a55+a66+a77
[但しaiはレジスタDiに格納された値でai=0又は1(i=0〜7)]
これを1回シフトすることにより、
[数3]
01+a12+a23+a34+a45+a56+a67+a78
となる。数1の生成多項式G(x)よりX8=X7+X6+X4+1の関係があるため、数3は、
[数4]
70+a01+a12+a23+(a3+a7)X4+a45+(a5+a7)X6+(a6+a7)X7
のように表せる。これは各ビットをシフトさせた際に、レジスタD7の値a7をレジスタD0に格納し、レジスタD3,D7の値a3,a7をXOR回路121で足し込んでレジスタD4に格納し、レジスタD5,D7の値a5+a7をXOR回路122で足し込んでレジスタD6に格納し、レジスタD6,D7の値a6+a7をXOR回路123で足し込んでレジスタD7に格納することに相当する。
[Equation 2]
a 0 X 0 + a 1 X 1 + a 2 X 2 + a 3 X 3 + a 4 X 4 + a 5 X 5 + a 6 X 6 + a 7 X 7
[Where a i is a value stored in the register D i and a i = 0 or 1 (i = 0 to 7)]
By shifting this once,
[Equation 3]
a 0 X 1 + a 1 X 2 + a 2 X 3 + a 3 X 4 + a 4 X 5 + a 5 X 6 + a 6 X 7 + a 7 X 8
It becomes. Since there is a relationship of X 8 = X 7 + X 6 + X 4 +1 from the generator polynomial G (x) of Equation 1, Equation 3 is
[Equation 4]
a 7 X 0 + a 0 X 1 + a 1 X 2 + a 2 X 3 + (a 3 + a 7 ) X 4 + a 4 X 5 + (a 5 + a 7 ) X 6 + (a 6 + a 7 ) X 7
It can be expressed as This is when the shifting each bit, and stores the value a 7 of the register D 7 to the register D 0, the register D 3, the value of D 7 a 3, register crowded plus a 7 in XOR circuit 12 1 D stored in the 4 registers D 5, the value a 5 + a 7 of D 7 is stored in the register D 6 crowded adding an XOR circuit 12 2, register D 6, the value of D 7 a 6 + a 7 the XOR circuit 12 3 corresponds to storing crowded in the register D 7 added in.

符号化時には、まず、スイッチSW1,SW2がON側に接続され、I/O端子4iを介して外部から入力データ(情報ビット)I0,I1,I2,I3,I4,I5,I6(I0〜I6=0又は1)が1ビットずつ入力される。入力データI0〜I6が1ビット入力される毎に、シフトレジスタ11が1回動作する。データI0〜I6が入力されている間はスイッチSW1はONであるため、これらのデータがそのまま1ビットずつページバッファ2iに出力される。同時に、データI0〜I6は、XOR回路121でレジスタD7の値a7と足し込まれ、順次シフトレジスタ11に格納されていく。データI0〜I6のページバッファ2iへの入力が終了すると、シフトレジスタ11のレジスタD7,D6,D5,D4,D3,D2,D1,D0の内部には検査ビットI7,I8,I9,I10,I11,I12,I13,I14がそれぞれ格納された状態となる。その後、スイッチSW1,SW2は共にOFF側に接続され、シフトレジスタ11が動作する毎に、スイッチSW1を介して、検査ビットI7〜I14がページバッファ2iにシリアルに出力される。そして、ページバッファ2iに格納された情報ビットと検査ビットとがメモリセルエリア1iに記憶される。同時に、シフトレジスタ11の値はリセットされる。 At the time of encoding, first, the switches SW1 and SW2 are connected to the ON side, and input data (information bits) I 0 , I 1 , I 2 , I 3 , I 4 , I 5 from the outside via the I / O terminal 4i. , I 6 (I 0 to I 6 = 0 or 1) are input bit by bit. Every time one bit of input data I 0 to I 6 is input, the shift register 11 operates once. Because while the data I 0 ~I 6 is input switch SW1 is ON, the these data are output to the page buffer 2i bit by bit. At the same time, the data I 0 to I 6 are added to the value a 7 of the register D 7 by the XOR circuit 12 1 and sequentially stored in the shift register 11. When the input of the data I 0 to I 6 to the page buffer 2 i is completed, the registers D 7 , D 6 , D 5 , D 4 , D 3 , D 2 , D 1 , D 0 of the shift register 11 are inspected. Bits I 7 , I 8 , I 9 , I 10 , I 11 , I 12 , I 13 , and I 14 are stored. Then, switches SW1, SW2 are both connected to the OFF side, each time the shift register 11 is operated, via the switch SW1, the check bits I 7 ~I 14 is serially outputted to the page buffer 2i. Then, the information bits and check bits stored in the page buffer 2i are stored in the memory cell area 1i. At the same time, the value of the shift register 11 is reset.

(2)復号回路
次に、復号回路について説明する。復号回路は、シンドローム計算回路と、誤り位置検出回路とから構成される。2ビット誤り訂正の場合、復号に際して2つのシンドロームS1,S3が必要であり、これらは最小多項式M1(x)=X4+X+1により求められることが知られている。図23(a)は、従来のS1シンドローム計算回路20を具体的に表した図、同図(b)は、従来のS3シンドローム計算回路30を示す図である。
(2) Decoding Circuit Next, the decoding circuit will be described. The decoding circuit includes a syndrome calculation circuit and an error position detection circuit. In the case of 2-bit error correction, it is known that two syndromes S 1 and S 3 are required for decoding, and these are obtained by the minimum polynomial M 1 (x) = X 4 + X + 1. FIG. 23A is a diagram specifically illustrating the conventional S 1 syndrome calculation circuit 20, and FIG. 23B is a diagram illustrating the conventional S 3 syndrome calculation circuit 30.

同図(a)のS1シンドローム計算回路20は、最小多項式M1(x)に基づき、レジスタD3,D2,D1,D0からなるシフトレジスタ21とXOR回路221,222とにより構成されている。ここでシフトレジスタ21を1回動かす動作はシフトレジスタ21の値をX倍することに相当する。いま、シフトレジスタ21に格納された値を、次のように表す。 The S 1 syndrome calculation circuit 20 in FIG. 6A is based on the minimum polynomial M 1 (x), and includes a shift register 21 composed of registers D 3 , D 2 , D 1 , D 0 and XOR circuits 22 1 , 22 2 . It is comprised by. Here, the operation of moving the shift register 21 once corresponds to multiplying the value of the shift register 21 by X times. Now, the value stored in the shift register 21 is expressed as follows.

[数5]
00+a11+a22+a33
[但しaiはレジスタDiに格納された値でai=0又は1(i=0〜3)]
これを1回シフトすることにより
[数6]
01+a12+a23+a34
となるが、αの最小多項式M1(x)よりX4=X+1の関係があるため、
[数7]
30+(a0+a3)X1+a12+a23
となる。これは、各ビットをシフトさせた際に、レジスタD3の値a3をレジスタD0に格納し、レジスタD0,D3の値a0,a3をXOR回路122で足し込んでレジスタD1に格納することに相当する。メモリセルに記憶された情報ビットI0〜I6と検査ビットI7〜I14とは、この順にS1シンドローム計算回路20に1ビットずつ入力され、1ビット入力される毎に、シフトレジスタ21が1回動作する。全てのビットI0〜I14が入力されたらシフトレジスタ21(D0〜D3)にシンドロームS1が生成される。
[Equation 5]
a 0 X 0 + a 1 X 1 + a 2 X 2 + a 3 X 3
[Where a i is a value stored in the register D i and a i = 0 or 1 (i = 0 to 3)]
By shifting this once, [Equation 6]
a 0 X 1 + a 1 X 2 + a 2 X 3 + a 3 X 4
However, since there is a relationship of X 4 = X + 1 from the minimum polynomial M 1 (x) of α,
[Equation 7]
a 3 X 0 + (a 0 + a 3 ) X 1 + a 1 X 2 + a 2 X 3
It becomes. This is when the shifting each bit, and stores the value a 3 of register D 3 to the register D 0, crowded adding value a 0, a 3 register D 0, D 3 at the XOR circuit 12 2 Register It corresponds to storing in D 1. The information bits I 0 to I 6 and the check bits I 7 to I 14 stored in the memory cell are input to the S 1 syndrome calculation circuit 20 one by one in this order, and each time one bit is input, the shift register 21 Operates once. When all the bits I 0 to I 14 are input, the syndrome S 1 is generated in the shift register 21 (D 0 to D 3 ).

図23(b)のS3シンドローム計算回路30も、S1シンドローム計算回路20と同様にD3,D2,D1,D0からなるシフトレジスタ31及びXOR回路321,322,323,324からなり、最小多項式M1(x)のX3回路により構成されている。S3シンドローム計算回路30では、シフトレジスタ31を1回動かす動作はシフトレジスタ31の値をX3倍することに相当する。いま、シフトレジスタ31に格納された値を数5のように表し、これをX3 すると、
[数8]
03+a14+a25+a36
となるが、αの最小多項式M1(x)よりX4=X+1の関係があるため、
[数9]
10+(a1+a2)X1+(a2+a3)X2+(a0+a3)X3
となる。これは、各ビットをシフトさせた際に、レジスタD1の値a1をレジスタD0に格納し、レジスタD1,D2の値a1,a2をXOR回路322で足し込んでレジスタD1に格納し、レジスタD2,D3の値a2,a3をXOR回路323で足し込んでレジスタD2に格納し、レジスタD0,D3の値a0,a3をXOR回路324で足し込んでレジスタD3に格納することに相当する。このS3シンドローム計算回路30にも、メモリセルに記憶された情報ビットI0〜I6と検査ビットI7〜I14とが、この順に1ビットずつ入力され、1ビット入力される毎に、シフトレジスタ31が1回動作する。全てのビットI0〜I14が入力されたらシフトレジスタ31(D0〜D3)にシンドロームS3が生成される。
Similarly to the S 1 syndrome calculation circuit 20, the S 3 syndrome calculation circuit 30 in FIG. 23B is also composed of a shift register 31 composed of D 3 , D 2 , D 1 , D 0 and XOR circuits 32 1 , 32 2 , 32 3. , 32 4 , and is constituted by an X 3 circuit of the minimum polynomial M 1 (x). In the S 3 syndrome calculation circuit 30, the operation of moving the shift register 31 once corresponds to multiplying the value of the shift register 31 by X 3 . Now, represents the value stored in the shift register 31 as in equation 5, 3-fold Then this X,
[Equation 8]
a 0 X 3 + a 1 X 4 + a 2 X 5 + a 3 X 6
However, since there is a relationship of X 4 = X + 1 from the minimum polynomial M 1 (x) of α,
[Equation 9]
a 1 X 0 + (a 1 + a 2 ) X 1 + (a 2 + a 3 ) X 2 + (a 0 + a 3 ) X 3
It becomes. This is when the shifting each bit, and stores the value a 1 of the register D 1 to the register D 0, crowded adding value a 1, a 2 of the register D 1, D 2 by XOR circuit 32 2 Register stored in D 1, register D 2, the value a 2, a 3 of D 3 is stored in the register D 2 crowded adding an XOR circuit 32 3, the register D 0, D 3 values a 0, a 3 to XOR corresponds to storing in the register D 3 crowded added at circuit 32 4. The S 3 syndrome calculation circuit 30 also receives information bits I 0 to I 6 and check bits I 7 to I 14 stored in the memory cell one by one in this order, and every time one bit is input, The shift register 31 operates once. When all the bits I 0 to I 14 are input, the syndrome S 3 is generated in the shift register 31 (D 0 to D 3 ).

図24は、復号処理のアルゴリズムを示すフローチャートである。まず、S1,S2シンドローム計算回路20,30で、メモリセルエリア1iから読み出された情報ビットと検査ビットからシンドロームS1,S3を計算する(ステップS1)。シンドロームS1,S3が、S1=S3=0の場合、エラー無しとして読み出された情報ビットがそのまま出力される(ステップS2,S3,S4)。シンドロームS1,S3のうち、いずれか一方のみが0のときには、訂正不能としてデータがそのまま出力される(ステップS2,S3,S5,S6,S7)。S1≠0,S3≠0場合、計算を行い、σ1=S1 2、σ2=S1 3+S3を求める(ステップS2,S6,S8)。ここでσ2=0の場合(ステップS9)、1ビットエラーがあることが分かるので、1ビット訂正して出力する(ステップS10)。σ2≠0の場合(ステップS9)、2ビットエラーがあることが分かるので、2ビット訂正して出力する(ステップS11)。 FIG. 24 is a flowchart showing the algorithm of the decoding process. First, the syndromes S 1 and S 3 are calculated by the S 1 and S 2 syndrome calculation circuits 20 and 30 from the information bits read from the memory cell area 1 i and the check bits (step S 1). If the syndromes S 1 and S 3 are S 1 = S 3 = 0, the information bits read as no error are output as they are (steps S2, S3, S4). When only one of the syndromes S 1 and S 3 is 0, the correction is impossible and the data is output as it is (steps S2, S3, S5, S6, S7). When S 1 ≠ 0 and S 3 ≠ 0, calculation is performed to obtain σ 1 = S 1 2 and σ 2 = S 1 3 + S 3 (steps S2, S6, S8). Here, when σ 2 = 0 (step S9), since it is found that there is a 1-bit error, 1-bit correction is performed and output (step S10). When σ 2 ≠ 0 (step S9), since it is found that there is a 2-bit error, the 2-bit error is corrected and output (step S11).

誤りビットの位置は、数10に示す誤り位置多項式σ(Z)にZ=αI(I=0,1,2,3,4,5,6)を順次代入することによって求められることが一般に知られている。σ(αI)=0となったiが誤りの位置である。 In general, the position of the error bit can be obtained by sequentially substituting Z = α I (I = 0, 1, 2, 3, 4, 5, 6) into the error position polynomial σ (Z) shown in Equation 10. Are known. i where σ (α I ) = 0 is the position of the error.

[数10]
σ(Z)=S1+σ1×Z+σ2×Z2
このような点に基づき構成された誤り位置検出回路の構成を図25及び図26に示す。図25は、S1、σ1及びσ2を計算すると共に格納する第1の演算部40aを示し、図26は、第1の演算部40aの演算結果に基づいて数10の演算を行ってデータの誤り位置を示す検出信号を出力する第2の演算部40bを示している。第1の演算部40aは、図25に示すようにシフトレジスタ41、X演算回路42及びX2演算回路43により構成されている。シフトレジスタ41aには、シンドロームS1が格納され、シフトレジスタ42a,43aにはσ1=S1 2、σ2=S1 3+S3の演算結果が格納される。ここでシフトレジスタ42aの値を、
[数11]
00+a11+a22+a33
[但しaiはレジスタDiに格納された値でai=0又は1(i=0〜3)]
とすると、X演算回路42は、これをX倍するので、シフトレジスタ42aの値は、
[数12]
01+a12+a23+a34
となるが、αの最小多項式M1(x)よりX4=X+1の関係があるため、数12は、
[数13]
30+(a0+a3)X1+a12+a23
となる。これは、各ビットをシフトさせた際に、レジスタD3の値a3をレジスタD0に格納し、レジスタD0,D3の値a0,a3をXOR回路42bで足し込んでレジスタD1に格納することに相当する。
[Equation 10]
σ (Z) = S 1 + σ 1 × Z + σ 2 × Z 2
The configuration of the error position detection circuit configured based on such points is shown in FIG. 25 and FIG. FIG. 25 shows a first calculation unit 40a that calculates and stores S 1 , σ 1, and σ 2 , and FIG. 26 performs calculation of Formula 10 based on the calculation result of the first calculation unit 40a. A second calculation unit 40b that outputs a detection signal indicating an error position of data is shown. First calculation unit 40a is configured by a shift register 41, X arithmetic circuit 42 and X 2 arithmetic circuit 43 as shown in FIG. 25. The syndrome S 1 is stored in the shift register 41a, and the calculation results of σ 1 = S 1 2 and σ 2 = S 1 3 + S 3 are stored in the shift registers 42a and 43a. Here, the value of the shift register 42a is set to
[Equation 11]
a 0 X 0 + a 1 X 1 + a 2 X 2 + a 3 X 3
[Where a i is a value stored in the register D i and a i = 0 or 1 (i = 0 to 3)]
Then, since the X arithmetic circuit 42 multiplies this by X, the value of the shift register 42a is
[Equation 12]
a 0 X 1 + a 1 X 2 + a 2 X 3 + a 3 X 4
However, since there is a relationship of X 4 = X + 1 from the minimum polynomial M 1 (x) of α,
[Equation 13]
a 3 X 0 + (a 0 + a 3 ) X 1 + a 1 X 2 + a 2 X 3
It becomes. This is when the shifting each bit, and stores the value a 3 of register D 3 to the register D 0, the register D 0, D 3 values a 0, crowded plus a 3 in XOR circuit 42b register D Equivalent to storing in 1 .

また、X2演算回路43は、シフトレジスタ43aの値をX2倍するので、シフトレジスタ43aの値に数11で示す値が格納されているとすると、これをX2倍することにより、シフトレジスタ43aの値は、
[数14]
02+a13+a24+a35
となるが、αの最小多項式M1(x)よりX4=X+1の関係があるため、数14は、
[数15]
20+(a2+a3)X1+(a0+a3)X2+a13
となる。これは、各ビットをシフトさせた際に、レジスタE2の値a2をレジスタE0に格納し、レジスタE1の値a1をレジスタE3に格納し、レジスタE2,E3の値a2,a3をXOR回路43b1で足し込んでレジスタE1に格納し、レジスタE0,E3の値a0,a3をXOR回路43b2で足し込んでレジスタE2に格納することに相当する。
Further, since the X 2 arithmetic circuit 43 multiplies the value of the shift register 43a by X 2 , assuming that the value indicated by the equation 11 is stored in the value of the shift register 43a, the X 2 arithmetic circuit 43 shifts the value by multiplying it by X 2. The value of the register 43a is
[Formula 14]
a 0 X 2 + a 1 X 3 + a 2 X 4 + a 3 X 5
However, since there is a relationship of X 4 = X + 1 from the minimum polynomial M 1 (x) of α,
[Equation 15]
a 2 X 0 + (a 2 + a 3 ) X 1 + (a 0 + a 3 ) X 2 + a 1 X 3
It becomes. This is when the shifting each bit, and stores the value a 2 of register E 2 in the register E 0, stores the value a 1 of the register E 1 to the register E 3, register E 2, the value of E 3 a 2, stores a 3 to register E 1 crowded adding an XOR circuit 43 b 1, register E 0, storing the values a 0, a 3 of E 3 in the register E 2 crowded adding an XOR circuit 43 b 2 It corresponds to.

1ビットのデータI0〜I6の出力時、シフトレジスタ41a,42a,43aを1回動作させることにより、X演算回路42では、σ1の項がZ倍され、X2演算回路43では、σ2の項がZ2倍ずつされる。NAND型フラッシュメモリでは、メモリセルに記憶された情報ビットをチップの外部に出力する際のトグル信号に同期させてシフトレジスタ41a,42a,43aを動かす。これにより、第2の演算部40bでは、XOR回路44とNORゲート45とで演算された結果の出力が、誤り位置となったところで1となり、この出力で対応するデータIiを反転させることにより誤り検出訂正が行われる。 When the 1-bit data I 0 to I 6 is output, the shift register 41 a, 42 a, 43 a is operated once, whereby the term of σ 1 is multiplied by Z in the X arithmetic circuit 42, and in the X 2 arithmetic circuit 43, The term of σ 2 is multiplied by Z 2 times. In the NAND flash memory, the shift registers 41a, 42a, and 43a are moved in synchronization with a toggle signal when the information bits stored in the memory cells are output to the outside of the chip. As a result, in the second arithmetic unit 40b, the output of the result calculated by the XOR circuit 44 and the NOR gate 45 becomes 1 when the error position is reached, and the error is caused by inverting the corresponding data Ii with this output. Detection and correction are performed.

このように、BCH符号を用いた従来のECC回路では、1ビットの入力に対し1回のシフト及び計算が基本動作となる。NAND型フラッシュメモリでは、1つのアドレスに対して8IO又は16IO等の単位で外部よりデータが並列に入力されるため、各IO毎に誤り訂正させるか、この一度の入力の間に8又は16回の計算を行なわなくてはならない。しかし、一度の入力の間に8又は16回の計算行なうことは、この部分のみ高速で動作させることを意味し、特別なプロセスなどが必要なため、現実には行なえない。   As described above, in the conventional ECC circuit using the BCH code, one shift and calculation for a 1-bit input is a basic operation. In the NAND flash memory, data is input from the outside in units of 8 IO or 16 IO for one address, so that error correction is performed for each IO or 8 or 16 times during this one input. Must be calculated. However, performing 8 or 16 calculations during one input means that only this part is operated at high speed, and a special process is required, so that it cannot be performed in reality.

そこで従来は、各メモリセルエリア1i(各I/O)毎にECC回路3iを設けて各メモリセルエリア1i単位で誤り訂正を行うようにしている。この場合、NAND型フラッシュメモリでは、1ページ(528バイト)単位でデータをリードしたり、プログラムしたりするので、各I/O毎に2ビット誤り訂正3ビット誤り検出をすると、情報ビット数は528ビット、検査ビット数は21ビットとなり、チップ全体で合計21×8=168ビットの余分な検査ビットが必要になる。これがチップの集積度を高める際の阻害要因となっていた。   Therefore, conventionally, an ECC circuit 3i is provided for each memory cell area 1i (each I / O) to perform error correction in units of each memory cell area 1i. In this case, in the NAND flash memory, data is read or programmed in units of one page (528 bytes), so if 2-bit error correction 3-bit error detection is performed for each I / O, the number of information bits is 528 bits and the number of inspection bits are 21 bits, and a total of 21 × 8 = 168 bits of extra inspection bits are required for the entire chip. This has been an impediment to increasing the integration density of the chip.

本発明は、このような問題点に鑑みなされたもので、情報ビット数に対する検査ビット数を削減してチップの集積度を向上させることができる半導体装置を提供することを目的とする。   The present invention has been made in view of such problems, and an object of the present invention is to provide a semiconductor device that can reduce the number of inspection bits with respect to the number of information bits and improve the integration degree of the chip.

本発明は、複数のメモリセルがマトリクス配列された複数のメモリセルエリアと、前記複数のメモリセルエリアに書き込むデータに対して誤り訂正用の検査ビットを生成して付加する符号化器及び前記生成された検査ビットを使用して前記複数のメモリセルエリアから読み出されたデータに対して誤り訂正処理を行う復号器を備えた誤り訂正回路とを備えた半導体装置において、前記誤り訂正回路は、前記誤り訂正回路は、複数の前記メモリセルエリアのうち、N個(Nは自然数)のメモリセルエリアに亘るk=b×cビット(cは2以上の整数)の情報ビットのうち次数を順番に異ならせたcビットのデータを並列に入力し、b回のシフト動作で内部に1つのhビット(hは2以上の整数)の検査ビットを生成し、(k+h)ビットのデータを同時に書き込み及び読出しを行う単位とし、前記複数のメモリセルエリアは、前記誤り訂正回路のシフト動作に同期してcビットずつ出力された前記データと、前記b回のシフト動作が終了したのちに出力された前記検査ビットとをページ単位として記憶していることを特徴とする。 The present invention relates to a plurality of memory cell areas in which a plurality of memory cells are arranged in a matrix, an encoder that generates and adds check bits for error correction to data to be written in the plurality of memory cell areas, and the generator In the semiconductor device including an error correction circuit including a decoder that performs error correction processing on data read from the plurality of memory cell areas using the check bits, the error correction circuit includes: The error correction circuit sequentially orders the order of k = b × c bits (c is an integer of 2 or more) of information bits over N (N is a natural number) memory cell areas among the plurality of memory cell areas. The c-bit data varied in parallel is input in parallel, and one h-bit (h is an integer of 2 or more) check bits are generated internally by b shift operations, and (k + h) -bit data is generated. And at the same time unit for writing and reading, the plurality of memory cell areas, after which said data outputted by c bits in synchronism with the shift operation of the error correction circuit, said b times the shift operation is completed The check bits output in the above are stored in page units .

本発明はまた、複数のメモリセルがマトリクス配列された複数のメモリセルエリアと、前記複数のメモリセルエリアに書き込むデータに対して誤り訂正用の検査ビットを生成して付加する符号化器を含む誤り訂正回路を備えた半導体装置において、前記符号化器は、複数の前記メモリセルエリアのうち、N個(Nは自然数)のメモリセルエリアに亘るk=b×aビット(aは2以上の整数)の情報ビットのデータに対し1つのhビット(hは2以上の整数)の検査ビットを付加すると共に、前記符号化器には、次数を順番に異ならせたaビットのデータを並列に入力し、b回のシフト動作で内部に前記検査ビットを生成し、前記複数のメモリセルエリアは、前記誤り訂正回路のシフト動作に同期してaビットずつロードされた前記データと、前記b回のシフト動作が終了したのちにロードされた前記検査ビットとをページ単位の書き込み動作で記憶することを特徴とする。 The present invention also includes a plurality of memory cell areas in which a plurality of memory cells are arranged in a matrix, and an encoder that generates and adds check bits for error correction to data to be written in the plurality of memory cell areas. in the semiconductor device having an error correction circuit, the encoder of the plurality of the memory cell area, N (N is a natural number) over the memory cell area k = b × a bit (a of 2 or more 1 h) (h is an integer of 2 or more) check bits are added to the information bit data of the integer), and a-bit data having different orders in order is added to the encoder in parallel. input to the generating check bits therein in b times shift operation, the plurality of memory cell areas, the data and loaded by a bit in synchronism with the shift operation of the error correction circuit And to store the said b times said check bit shift operation is loaded in at the end of completion of the write operation in page units.

本発明は、複数のメモリセルがマトリクス配列された複数のメモリセルエリアと、各メモリセルエリアのデータ入出力部に設けられて前記メモリセルエリアへの書き込みデータ及び前記メモリセルエリアからの読み出しデータを一時格納する複数のバッファと、前記各メモリセルエリアへの書き込み用のデータを外部から入力すると共に前記各メモリセルエリアから読み出されたデータを外部に出力する複数の入出力端子と、前記複数の入出力端子と前記複数のバッファとの間に設けられて前記複数のメモリセルエリアに書き込むデータに対して誤り訂正用の検査ビットを生成して付加する符号化器及び前記生成された検査ビットを使用して前記複数のメモリセルエリアから読み出されたデータに対して誤り訂正処理を行う復号器を備えた誤り訂正回路とを備えた半導体記憶装置において、前記誤り訂正回路は、1つの前記メモリセルエリアに対する書き込み及び読み出しの単位となるデータのビット数をMとしたとき、M×Nビット(Nは2以上の整数)を情報ビット長として1つの検査ビットを割り当て、符号化処理及び復号処理の少なくとも一方をNビットのデータを並列に処理して実行するものであることを特徴とすることを特徴とする。   The present invention provides a plurality of memory cell areas in which a plurality of memory cells are arranged in a matrix, and write data to the memory cell area and read data from the memory cell area provided in a data input / output section of each memory cell area. A plurality of input / output terminals for inputting data for writing to each memory cell area from the outside and outputting data read from each memory cell area to the outside, An encoder that is provided between a plurality of input / output terminals and the plurality of buffers, and generates and adds an error correction check bit to data to be written to the plurality of memory cell areas, and the generated check An error is provided with a decoder that performs error correction processing on data read from the plurality of memory cell areas using bits. In the semiconductor memory device including the correction circuit, the error correction circuit has M × N bits (N is 2 or more), where M is the number of data bits as a unit of writing and reading with respect to one memory cell area. 1) is assigned as one information bit length, and at least one of the encoding process and the decoding process is executed by processing N-bit data in parallel. .

本発明によれば、従来、各メモリセルエリアに対するアクセスの単位であるMビット毎に情報ビットを生成していたのに対し、Nビットの並列処理が可能になったことにより、M×Nビットに対して1つの検査ビットを割り当てることが可能になり、トータル的な情報ビットに対する検査ビット数を削減することができる。これにより、誤り訂正回路を搭載しつつチップの集積度を向上させることができる。   According to the present invention, information bits are conventionally generated for each M bits, which is a unit of access to each memory cell area. However, since N bits can be processed in parallel, M × N bits Thus, one check bit can be assigned to the total number of check bits, and the number of check bits for the total information bits can be reduced. Thereby, the integration degree of the chip can be improved while mounting the error correction circuit.

一例を挙げると、tビット訂正(t+1)ビット誤り検出BCH符号では、
[数16]
符号長 n=2m−1
情報ビット数 k≦2m−1−m×t
検査ビット数 mt+1≦n−k
訂正ビット数 t
の関係があるため、mの数を大きくすると、符号長及び情報ビット数は指数関数的に増加するが、検査ビット数はそれほど増加しない。このため、情報ビット数は、2m−1−m×tを超えない限度で大きい方が情報ビット数に対する検査ビット数の割合が小さくなる。従って、できるだけ大きな情報ビット数に対し、検査ビットを設けた方が有利である。
As an example, in a t-bit correction (t + 1) bit error detection BCH code,
[Equation 16]
Code length n = 2 m −1
Number of information bits k ≦ 2 m −1−m × t
Number of inspection bits mt + 1 ≦ n−k
Number of correction bits t
Therefore, if the number of m is increased, the code length and the number of information bits increase exponentially, but the number of check bits does not increase so much. For this reason, the ratio of the number of check bits to the number of information bits becomes smaller as the number of information bits is larger as long as it does not exceed 2 m −1−m × t. Therefore, it is advantageous to provide check bits for as many information bits as possible.

例えば、NAND型フラッシュメモリは、1ページ(528バイト)でリードしたり、プログラムするが、各IO毎(メモリセルエリア毎)に2ビット誤り訂正3ビット誤り検出をすると、情報ビット数はk=528ビット、検査ビット数は21ビットとなるため、合計21×8=168ビットの余分な検査ビットが必要である。   For example, a NAND flash memory reads or programs in one page (528 bytes), but when 2-bit error correction and 3-bit error detection are performed for each IO (each memory cell area), the number of information bits is k = Since 528 bits and the number of check bits are 21 bits, a total of 21 × 8 = 168 extra check bits are required.

しかし、1ページを1つの単位で、2ビット誤り訂正3ビット誤り検出をすると、情報ビット数が4224ビットのとき、検査ビット数は27ビットで良い。3ビット誤り訂正4ビット誤り検出としても、情報ビット数が4224ビットのとき、検査ビット数は40ビットで足りる。   However, when 2-bit error correction and 3-bit error detection are performed in one unit for one page, when the number of information bits is 4224 bits, the number of check bits may be 27 bits. Even for 3-bit error correction and 4-bit error detection, when the number of information bits is 4224 bits, the number of check bits is 40 bits.

本発明の一つの実施形態においては、前記メモリセルエリアは、N個設けられている。符号化器は、例えば情報ビット長k=M×N、符号長n、訂正ビット長tで定められる生成多項式G(X)から導かれる巡回符号を検査ビットとして生成するシフトレジスタ及び演算回路からなり、前記シフトレジスタが、次数を順番に異ならせたNビットのデータを並列に入力し、1回のシフト動作で各データをXN倍し、M回のシフト動作で内部に前記検査ビットを生成するものである。 In one embodiment of the present invention, N memory cell areas are provided. The encoder is composed of, for example, a shift register and an arithmetic circuit that generate a cyclic code derived from a generator polynomial G (X) defined by an information bit length k = M × N, a code length n, and a correction bit length t as check bits. The shift register inputs N bits of data of different orders in parallel, multiplies each data by X N by one shift operation, and generates the check bit internally by M shift operations To do.

また、復号器は、例えば前記情報ビットと検査ビットとを入力してシンドロームを計算するシンドローム計算回路と、前記計算されたシンドロームから誤り位置多項式の項を計算する第1の演算部及び計算された誤り多項式の項から誤り位置多項式を算出して誤り位置を検出する第2の演算部からなる誤り位置検出回路と、前記メモリセルエリアからバッファを介して読み出されたデータに対して前記検出された誤り位置でデータ反転処理を施すデータ反転回路とを備え、前記シンドローム計算回路が、情報ビット長k=M×N、符号長n、訂正ビット長tで定められるα演算子の最小多項式M(X)に基づく巡回符号をシンドロームとして生成するシフトレジスタ及び演算回路からなり、前記シフトレジスタが、次数を順番に異ならせたNビットのデータを並列に入力し、1回のシフト動作で各データをXKN(Kは整数)倍し、全ての前記情報ビット及び検査ビットが入力されることにより内部にシンドロームを生成するものである。 In addition, the decoder receives, for example, the information bit and the check bit, calculates a syndrome, a syndrome calculation circuit, a first arithmetic unit that calculates an error locator polynomial term from the calculated syndrome, and a calculation An error position detection circuit comprising a second calculation unit for detecting an error position by calculating an error position polynomial from an error polynomial term, and the detection for the data read from the memory cell area via a buffer. A data inversion circuit that performs data inversion processing at the error position, and the syndrome calculation circuit has a minimum polynomial M of an α operator defined by an information bit length k = M × N, a code length n, and a correction bit length t. X) based on a shift register that generates a cyclic code as a syndrome and an arithmetic circuit, and the shift register has N bits with different orders. Data is input in parallel, each data is multiplied by X KN (K is an integer) in one shift operation, and all the information bits and check bits are input to generate a syndrome internally. It is.

また、誤り位置検出回路は、前記第2の演算部が、情報ビット長k=M×N、符号長n、訂正ビット長tで定められるα演算子の最小多項式M(X)に基づく巡回符号を誤り位置多項式の項として生成するシフトレジスタ及び演算回路からなり、前記シフトレジスタが、前記メモリエリアからのデータ出力に同期してシフト動作をし、各データをXK(Kは整数)倍し、順次、誤り訂正位置を検出するものである。 The error position detection circuit includes a cyclic code based on a minimum polynomial M (X) of an α operator defined by an information bit length k = M × N, a code length n, and a correction bit length t. The shift register performs a shift operation in synchronization with the data output from the memory area, and each data is multiplied by X K (K is an integer). The error correction position is sequentially detected.

前記符号化器、シンドローム計算回路及び第1の演算部は、演算用ロジック回路を構成するレジスタと演算回路とを切り替えて構成されるようにしても良い。また、復号器は、シンドローム又は誤り位置多項式の項を計算する際に使用されるガロア演算回路を更に含むようにしても良い。更に、前記第2の演算部は、例えば前記Nビットのデータに対してそれぞれ設けられたN個のローケータと、隣接するローケータ間に介挿されて隣接するローケータへのデータをXL倍するXL演算回路(Lは整数)とを備えたものである。 The encoder, the syndrome calculation circuit, and the first arithmetic unit may be configured by switching between a register and an arithmetic circuit constituting the arithmetic logic circuit. The decoder may further include a Galois arithmetic circuit used when calculating a syndrome or error locator polynomial term. Further, the second arithmetic unit, for example, N locators respectively provided for the N-bit data, and X L times the data to the adjacent locators inserted between adjacent locators X And an L arithmetic circuit (L is an integer).

以下、図面を参照しながら、本発明の実施形態について説明する。
(1)第1の実施形態
まず、本発明を理解するため、第1の実施形態として、情報ビット数k=7、符号長n=15、訂正ビット数t=2の2ビット誤り訂正の例について説明する。
(1−1)符号化回路
図22に示した従来の符号化回路10に入力データI0が符号化回路10に入力されると、この入力データI0は、XOR回路124によって符号化回路のX7の項に足しこまれ、その後X倍される。初期状態では符号化回路10の各レジスタ11の値は0であるため、この値を(0)とすると
[数17]
(0+I07)X
となる。次に入力データI1が符号化回路10に入力されると、この入力データI1は、符号化回路10のX7の項に足しこまれ、この後X倍されているので、
[数18]
((0+I07)X+I17)X
となる。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(1) First Embodiment First, in order to understand the present invention, as a first embodiment, as an example of 2-bit error correction with the number of information bits k = 7, the code length n = 15, and the number of correction bits t = 2 Will be described.
(1-1) when the input data I 0 of the conventional coding circuit 10 shown in encoding circuit diagram 22 is input to the encoding circuit 10, the input data I 0 is coded circuit by XOR circuit 12 4 are added up in the section of X 7, is then X times. Since the value of each register 11 of the encoding circuit 10 is 0 in the initial state, when this value is (0), [Equation 17]
(0 + I 0 X 7 ) X
It becomes. Next, when the input data I 1 is input to the encoding circuit 10, the input data I 1 is added to the term X 7 of the encoding circuit 10 and is then multiplied by X.
[Equation 18]
((0 + I 0 X 7 ) X + I 1 X 7 ) X
It becomes.

次に入力データI2が符号化回路10に入力されると、この入力データI2は、符号化回路10のX7の項に足しこまれ、この後X倍されているので、
[数19]
(((0+I07)X+I17)X+I27)X
となる。
Next, when the input data I 2 is input to the encoding circuit 10, the input data I 2 is added to the term X 7 of the encoding circuit 10 and is then multiplied by X.
[Equation 19]
(((0 + I 0 X 7 ) X + I 1 X 7 ) X + I 2 X 7 ) X
It becomes.

同様に、入力データI6まで符号化回路10に入力されると、
[数20]
(((((((0+I07)X+I17)X+I27)X+I37)X+I47)X
+I57)X+I67)X
となる。この式を変形すると
[数21]
((((0+I07+I16)X2+I27+I36)X2+I47+I56)X2+I67)X
となり、これは、入力データI0,I1がそれぞれ符号化回路10のX7,X6の項に足しこまれ、この後X2倍され、次に入力データI2,I3がそれぞれが符号化回路10のX7,X6の項に足しこまれ、この後X2倍され、次に入力データI4,I5がそれぞれが符号化回路10のX7,X6の項に足しこまれ、この後X2倍されることを意味する。つまり2ビットの入力の後、1回のシフトレジスタ11の動作でデータがX2倍される。但し、最後のI6は従来通り1ビットの入力で、X倍されることになる。
Similarly, when the input data I 6 is input to the encoding circuit 10,
[Equation 20]
(((((((0 + I 0 X 7 ) X + I 1 X 7 ) X + I 2 X 7 ) X + I 3 X 7 ) X + I 4 X 7 ) X
+ I 5 X 7 ) X + I 6 X 7 ) X
It becomes. When this equation is transformed, [Equation 21]
((((0 + I 0 X 7 + I 1 X 6 ) X 2 + I 2 X 7 + I 3 X 6 ) X 2 + I 4 X 7 + I 5 X 6 ) X 2 + I 6 X 7 ) X
This is because the input data I 0 and I 1 are respectively added to the X 7 and X 6 terms of the encoding circuit 10 and then multiplied by X 2 , and then the input data I 2 and I 3 are respectively It is added to the terms X 7 and X 6 of the encoding circuit 10 and then multiplied by X 2 , and then the input data I 4 and I 5 are added to the terms X 7 and X 6 of the encoding circuit 10 respectively. This means that it is multiplied by 2 after this. That is, after 2-bit input, the data is multiplied by X 2 by one operation of the shift register 11. However, the last I 6 is a 1-bit input as usual, and is multiplied by X.

ここで、シフトレジスタ11の値を、数2で示した値として、これをX2倍すると、
[数22]
02+a13+a24+a35+a46+a57+a68+a79
となるが、数1の生成多項式G(x)よりX8=X7+X6+X4+1の関係があるため、数21は、
[数23]
(a6+a7)X0+a71+a02+a13+(a2+a6+a7)X4+(a3+a7)X5+(a4+a6+a7)X6+(a5+a6)X7
となる。
Here, assuming that the value of the shift register 11 is the value shown in Equation 2, and multiplying this by X 2 ,
[Equation 22]
a 0 X 2 + a 1 X 3 + a 2 X 4 + a 3 X 5 + a 4 X 6 + a 5 X 7 + a 6 X 8 + a 7 X 9
However, since there is a relationship of X 8 = X 7 + X 6 + X 4 +1 from the generator polynomial G (x) of Equation 1, Equation 21 is
[Equation 23]
(A 6 + a 7 ) X 0 + a 7 X 1 + a 0 X 2 + a 1 X 3 + (a 2 + a 6 + a 7 ) X 4 + (a 3 + a 7 ) X 5 + (a 4 + a 6 + a 7 ) X 6 + (a 5 + a 6 ) X 7
It becomes.

図1は数23を具体的に回路で構成した本実施形態に係る符号化回路50の構成を示すブロック図である。   FIG. 1 is a block diagram showing a configuration of an encoding circuit 50 according to this embodiment in which Equation 23 is specifically configured by a circuit.

この符号化回路50は、レジスタD7,D6,D5,D4,D3,D2,D1,D0からなるシフトレジスタ51と、XOR回路521,522,523,524,525,526,527と、入力データ及び出力データを切り換えるための4つのスイッチSW11,SW12,SW21,SW22とから構成されている。シフトレジスタ51は、図2に示すように、リセット信号RSTnによりデータの内容がリセットされ、クロック信号CLKに同期して入力端子INから出力端子OUTへと1ビットのデータを転送する4段のトランスファーゲート51aと、必要なゲート回路51bとから構成されている。XOR回路52は、図3に示すように、入力端子IN1,IN2に入力されたデータにモジュロ2の演算を施して出力端子OUTから出力する。 The encoding circuit 50 includes a shift register 51 composed of registers D 7 , D 6 , D 5 , D 4 , D 3 , D 2 , D 1 , D 0 and XOR circuits 52 1 , 52 2 , 52 3 , 52. 4, and 52 5, 52 6, 52 7, and an input four switches SW11 for switching the data and output data, SW12, SW21, SW22 Prefecture. As shown in FIG. 2, the shift register 51 is a four-stage transfer in which the data content is reset by a reset signal RSTn and 1-bit data is transferred from the input terminal IN to the output terminal OUT in synchronization with the clock signal CLK. A gate 51a and a necessary gate circuit 51b are included. As shown in FIG. 3, the XOR circuit 52 performs a modulo 2 operation on the data input to the input terminals IN1 and IN2, and outputs the result from the output terminal OUT.

この符号化回路50は、数23に基づき、1回のシフト動作で、レジスタD6,D7の値a6,a7をXORゲート526で足し込んでレジスタD0に格納し、レジスタD7の値a7をレジスタD1に格納し、レジスタD0の値a0をレジスタD2に格納し、レジスタD1の値a1をレジスタD3に格納し、レジスタD2,D6,D7の値a2,a6,a7をXOR回路521,526で足し込んでレジスタD4に格納し、レジスタD3,D7の値a3,a7をXOR回路522で足し込んでレジスタD5に格納し、レジスタD4,D6,D7の値a4,a6,a7をXOR回路523,526で足し込んでレジスタD6に格納し、レジスタD5,D6の値a5,a6をXOR回路525で足し込んでレジスタD7に格納する。 The encoding circuit 50 based on the number 23, a single shift operation, the value a 6, a 7 registers D 6, D 7 and stored in the register D 0 crowded added in XOR gate 52 6, register D 7 value a 7 is stored in register D 1 , register D 0 value a 0 is stored in register D 2 , register D 1 value a 1 is stored in register D 3 , and registers D 2 , D 6 , The values a 2 , a 6 and a 7 of D 7 are added by the XOR circuits 52 1 and 52 6 and stored in the register D 4. The values a 3 and a 7 of the registers D 3 and D 7 are added by the XOR circuit 52 2 . crowded added and stored in the register D 5, and stores the value a 4, a 6, a 7 registers D 4, D 6, D 7 to the register D 6 crowded adding an XOR circuit 52 3, 52 6, register D 5, to store the value a 5, a 6 in D 6 to the register D 7 crowded adding an XOR circuit 52 5.

メモリに書き込まれるため外部から入力された入力データ(情報ビット)I0,I1,I2,I3,I4,I5,I6は、入力データI0,I2,I4と、入力データI1,I3,I5の2つに分割され、入力データI0,I2,I4がスイッチSW11,SW21のON側の端子に入力され、入力データI1,I3,I5がスイッチSW12,SW22のON側の端子に入力されている。つまり入力データは、2ビットづつ(I0,I1),(I2,I3),(I4,I5)の順で並列に入力され、入力後にシフトレジスタ51が1回動作する。但し、シフトレジスタ51は、1つおきに結線されているので、1回のシフト動作でデータがX2倍される。データ(I0,I1),(I2,I3),(I4,I5)が入力されている間は、スイッチSW11,SW21,SW12,SW22は全てONであり、これらのデータがそのまま2ビットずつ並列に出力される。同時に、データI0,I2,I4は、XOR回路527でレジスタD7の値a7と足し込まれ、順次シフトレジスタ51に格納され、データI1,I3,I5は、XOR回路524でレジスタD7の値a7と足し込まれ、順次シフトレジスタ51に格納されていく。但し、入力データの最後のI6は1ビットの入力であるため、図22に示した従来の符号化回路10と同じ結線状態に切り替わるようにする。このような切替を行うのは、情報ビット数としてk=7を選択したためである。データI0,I1,I2,I3,I4,I5,I6の入力が終了すると、シフトレジスタ51のレジスタD7,D6,D5,D4,D3,D2,D1,D0の内部には検査ビットI7,I8,I9,I10,I11,I12,I13,I14がそれぞれ格納された状態となる。その後、スイッチSW11,SW21,SW12,SW22は全てOFF側に接続され、シフトレジスタ51を動作させる毎に、SW11の出力に検査ビットI7,I9,I11,I13が出力され、SW12の出力に検査ビットI8,I10,I12,I14が出力される。同時に、シフトレジスタ51の値はリセットされる。これにより、2ビット入力の並列処理による検査ビットの生成が可能になる。
(1−2)復号回路
(1−2−1)S1シンドローム計算回路
図23(a)の従来のS1シンドローム計算回路20では、まず、S1シンドローム計算回路20内の値がX倍された後、XOR回路221によりX0の項に入力データI0が足しこまれる。初期状態ではS1シンドローム計算回路20のシフトレジスタ21の値は0であるため、この値を(0)とすると、
[数24]
0×X+I0
となる。次にS1シンドローム計算回路20内の値がX倍された後、X0の項に入力データI1が足しこまれるので、
[数25]
(0×X+I0)X+I1
となる。続いてS1シンドローム計算回路20内の値がX倍された後、X0の項に入力データI2が足しこまれるので、
[数26]
((0×X+I0)X+I1)X+I2
となる。このようにして入力データI14までがS1シンドローム計算回路20に入力されると、
[数27]
(((((((((((((0×X+I0)X+I1)X+I2)X+I3)X+I4)X+I5)X
+ I6)X+I7)X+I8)X+I9)X+I10)X+I11)X+I12)X+I13)X+I14
となる。この式を変形すると、
[数28]
(((((((0×X2+I0X+I1)X2+I2X+I3)X2+I4X+I5)X2+I6X+I7)X2+I8X+I9)X2+I10X+I11)X2+I12X+I13)X+I14
になり、これは、S1シンドローム計算回路20内の値をX2倍した後、入力データI0,がX1の項、入力データI1がX0の項にそれぞれ足しこまれ、次に、S1シンドローム計算回路20内の値をX2倍した後、入力データI2,がX1の項、入力データI3がX0の項にそれぞれ足しこまれ、次に、S1シンドローム計算回路20内の値をX2倍した後、入力データI4がX1の項、入力データI5がX0の項にそれぞれ足しこまれることを意味する。つまり1回のシフトレジスタの動作でデータがX2倍され、その後、2ビットのデータを入力している。但し、最後はS1シンドローム計算回路20内の値をX倍した後、1ビットの入力で入力データI14がX0の項に足しこまれている。
Input data (information bits) I 0 , I 1 , I 2 , I 3 , I 4 , I 5 , I 6 input from the outside because they are written in the memory are input data I 0 , I 2 , I 4 , The input data I 1 , I 3 , and I 5 are divided into two, and the input data I 0 , I 2 , and I 4 are input to the ON terminals of the switches SW11 and SW21, and the input data I 1 , I 3 , I 4 are input. 5 is input to the ON-side terminals of the switches SW12 and SW22. That is, input data is input in parallel in the order of (I 0 , I 1 ), (I 2 , I 3 ), (I 4 , I 5 ) in units of 2 bits, and the shift register 51 operates once after input. However, the shift register 51, because it is connected to every other data in a single shift operation is doubled X. While the data (I 0 , I 1 ), (I 2 , I 3 ), (I 4 , I 5 ) are being input, the switches SW11, SW21, SW12, SW22 are all ON, and these data are The two bits are output in parallel as they are. At the same time, the data I 0, I 2, I 4 is added up by the XOR circuit 52 7 and the value a 7 of the register D 7, stored sequentially in the shift register 51, data I 1, I 3, I 5 are XOR are added up by the circuit 52 4 with the value a 7 of the register D 7, it will be stored sequentially in the shift register 51. However, since the last I 6 of the input data is a 1-bit input, the connection state is switched to the same connection state as that of the conventional encoding circuit 10 shown in FIG. Such switching is performed because k = 7 is selected as the number of information bits. When the input of the data I 0 , I 1 , I 2 , I 3 , I 4 , I 5 , I 6 is completed, the registers D 7 , D 6 , D 5 , D 4 , D 3 , D 2 , In D 1 and D 0 , check bits I 7 , I 8 , I 9 , I 10 , I 11 , I 12 , I 13 and I 14 are stored. Thereafter, the switches SW11, SW21, SW12, and SW22 are all connected to the OFF side, and each time the shift register 51 is operated, the check bits I 7 , I 9 , I 11 , and I 13 are output to the output of SW 11 . Check bits I 8 , I 10 , I 12 , and I 14 are output as outputs. At the same time, the value of the shift register 51 is reset. As a result, it is possible to generate check bits by parallel processing of 2-bit input.
(1-2) Decoding Circuit (1-2-1) S 1 Syndrome Calculation Circuit In the conventional S 1 syndrome calculation circuit 20 shown in FIG. 23A, first, the value in the S 1 syndrome calculation circuit 20 is multiplied by X. Thereafter, the input data I 0 is added to the term X 0 by the XOR circuit 22 1 . Since the value of the shift register 21 of the S 1 syndrome calculation circuit 20 is 0 in the initial state, if this value is (0),
[Equation 24]
0 × X + I 0
It becomes. Next, after the value in the S 1 syndrome calculation circuit 20 is multiplied by X, the input data I 1 is added to the term of X 0 .
[Equation 25]
(0 × X + I 0 ) X + I 1
It becomes. Subsequently, after the value in the S 1 syndrome calculation circuit 20 is multiplied by X, the input data I 2 is added to the term of X 0 .
[Equation 26]
((0 × X + I 0 ) X + I 1 ) X + I 2
It becomes. When the input data I 14 is input to the S 1 syndrome calculation circuit 20 in this way,
[Equation 27]
((((((((((((0 × X + I 0 ) X + I 1 ) X + I 2 ) X + I 3 ) X + I 4 ) X + I 5 ) X
+ I 6 ) X + I 7 ) X + I 8 ) X + I 9 ) X + I 10 ) X + I 11 ) X + I 12 ) X + I 13 ) X + I 14
It becomes. If this equation is transformed,
[Equation 28]
(((((((0 × X 2 + I 0 X + I 1) X 2 + I 2 X + I 3) X 2 + I 4 X + I 5) X 2 + I 6 X + I 7) X 2 + I 8 X + I 9) X 2 + I 10 X + I 11 ) X 2 + I 12 X + I 13 ) X + I 14
Becomes, which, after the value of the S 1 syndrome calculation circuit 20 and two times X, the input data I 0, but the term X 1, input data I 1 are added up respectively in section X 0, then after the value of the S 1 syndrome calculation circuit 20 and two times X, the input data I 2, but X 1 term, the input data I 3 are added up respectively in section X 0, then, S 1 syndrome calculation after the value of the circuit 20 is doubled X, means that the input data I 4 is the section X 1, the input data I 5 are added up respectively in section X 0. That data in a single operation of the shift register is doubled X, after that, enter the 2-bit data. However, finally, after the value in the S 1 syndrome calculation circuit 20 is multiplied by X, the input data I 14 is added to the term of X 0 by 1-bit input.

ここで、シフトレジスタ21の値を、数5で示した値として、これをX2倍すると、
[数29]
02+a13+a24+a35
となるが、αの最小多項式M1(x)より、X4=X+1の関係があるため、
[数30]
20+(a2+a3)X1+(a0+a3)X2+a13
となる。
Here, assuming that the value of the shift register 21 is the value shown in Equation 5 and is multiplied by X 2 ,
[Equation 29]
a 0 X 2 + a 1 X 3 + a 2 X 4 + a 3 X 5
However, since there is a relationship of X 4 = X + 1 from the minimum polynomial M 1 (x) of α,
[Equation 30]
a 2 X 0 + (a 2 + a 3 ) X 1 + (a 0 + a 3 ) X 2 + a 1 X 3
It becomes.

図4(a)は数30を具体的に回路で構成した本実施形態に係るS1シンドローム計算回路60の構成を示すブロック図である。 FIG. 4A is a block diagram showing a configuration of the S 1 syndrome calculation circuit 60 according to the present embodiment in which Equation 30 is specifically configured by a circuit.

このS1シンドローム計算回路60は、レジスタD0,D1,D2,D3からなるシフトレジスタ61と、XOR回路621,622,623,624とから構成されている。 The S 1 syndrome calculation circuit 60 includes a shift register 61 composed of register D 0, D 1, D 2, D 3, and an XOR circuit 62 1, 62 2, 62 3, 62 4.

このS1シンドローム計算回路60は、数30に基づき、1回のシフト動作で、レジスタD2の値a2をレジスタD0に格納し、レジスタD2,D3の値a2,a3をXOR回路622で足し込んでレジスタD1に格納し、レジスタD0,D3の値a0,a3をXOR回路624で足し込んでレジスタD2に格納し、レジスタD1の値a1をレジスタD3に格納する。 The S 1 syndrome calculation circuit 60 based on the number 30, a single shift operation, and stores the value a 2 of the register D 2 to the register D 0, the value a 2, a 3 register D 2, D 3 crowded adding an XOR circuit 62 2 is stored in the register D 1, register D 0, the value of D 3 a 0, and stores the a 3 to register D 2 crowded adding an XOR circuit 62 4, the register D 1 value a and stores 1 in the register D 3.

図示しないメモリセルエリアから読み出された情報ビットI0,I1,I2,I3,I4,I5,I6と、検査ビットI7,I8,I9,I10,I11,I12,I13,I14とは、I0,I2,I4,I6,I8,I10,I12,I14と、I1,I3,I5,I7,I9,I11,I13とに分割され、S1シンドローム計算回路60に2ビットづつ(I0,I1),(I2,I3),(I4,I5),…の順で並列に入力され、入力後にシフトレジスタ61が1回動作する。但し、シフトレジスタ61は、1つおきに結線されているので、1回のシフト動作でデータがX2倍される。データI0,I2,I4,…,I14は、XOR回路623でXOR回路622の出力a2+a3と足し込まれ、レジスタD1に格納され、データI1,I3,I5,…,I13は、XOR回路621でレジスタD2の値a2と足し込まれ、レジスタD0に格納される。但し、情報ビットの最後のI6は1ビットの入力であるため、図23の回路と同じ配線に切り替わる。又は、I15=0を、S1シンドローム計算回路60に入力させ、シフト動作させた後、シフトレジスタにX-1を掛ける。これにより、2ビット入力の並列処理が可能になる。
(1−2−2)S3シンドローム計算回路
次に、図4(b)のS3シンドローム計算回路70について説明する。図23(b)の従来のS3シンドローム計算回路30では、まず、S3シンドローム計算回路30内の値がX3倍された後、XOR回路321によりX0の項に入力データI0が足しこまれる。初期状態では、S3シンドローム計算回路30のシフトレジスタ31の値は0であるため、この値を(0)とすると
[数31]
0×X3+I0
となる。次にS3シンドローム計算回路30内の値がX3倍された後、X0の項に入力データI1が足しこまれるので、
[数32]
(0×X3+I0)X3+I1
となる。続いてS3シンドローム計算回路30内の値がX3倍された後、X0の項に入力データI2が足しこまれるので、
[数33]
((0×X3+I0)X3+I1)X3+I2
となる。このようにして、入力データI14までがS3シンドローム計算回路30に入力されると、
[数34]
(((((0X3+I0)X3+I1)X3+I2)X3+I3)X3+I4)X3+I5)X3+I6)X3+I7)X3+I8)X3+I9)X3+I10)X3+I11)X3+I12)X3+I13)X3+I14
となる。この式を変形すると、
[数35]
(((((0×X6+I03+I1)X6+I23+I3)X6+I43+I5)X6+I63+I7)X6+I83+I9)X6+I103+I11)X6+I123+I13)X3+I14
になり、これは、S3シンドローム計算回路30内の値をX6倍した後、入力データI0がX3の項、入力データI1がX0の項にそれぞれ足しこまれ、次に、S3シンドローム計算回路30内の値をX6倍した後、入力データI2がX3の項、入力データI3がX0の項にそれぞれ足しこまれ、次にS3シンドローム計算回路30内の値をX6倍した後、入力データI4がX3の項、入力データI5がX0の項にそれぞれ足しこまれることを意味している。つまり1回のシフトレジスタの動作でデータがX6倍され、その後、2ビットのデータを入力している。但し、最後はS3シンドローム計算回路30内の値をX3倍した後、1ビットの入力で入力データI14がX0の項に足しこまれている。
Information bits I 0 , I 1 , I 2 , I 3 , I 4 , I 5 , I 6 read from a memory cell area (not shown) and check bits I 7 , I 8 , I 9 , I 10 , I 11 , I 12 , I 13 , I 14 are I 0 , I 2 , I 4 , I 6 , I 8 , I 10 , I 12 , I 14 , I 1 , I 3 , I 5 , I 7 , I 14 9 , I 11 , and I 13, and the S 1 syndrome calculation circuit 60 in the order of (I 0 , I 1 ), (I 2 , I 3 ), (I 4 , I 5 ),. The shift register 61 operates once after input in parallel. However, the shift register 61, because it is connected to every other data in a single shift operation is doubled X. Data I 0, I 2, I 4 , ..., I 14 is added up by the XOR circuit 623 and the output a 2 + a 3 XOR circuits 62 2, stored in the register D 1, data I 1, I 3, I 5, ..., I 13 is added up by the XOR circuit 62 1 and the value a 2 of the register D 2, is stored in the register D 0. However, since the last I 6 of the information bits is a 1-bit input, it is switched to the same wiring as the circuit of FIG. Alternatively, I 15 = 0 is input to the S 1 syndrome calculation circuit 60 and shifted, and then the shift register is multiplied by X −1 . This enables parallel processing of 2-bit inputs.
(1-2-2) S 3 Syndrome Calculation Circuit Next, the S 3 syndrome calculation circuit 70 in FIG. 4B will be described. In the conventional S 3 syndrome calculation circuit 30 of FIG. 23B, first, after the value in the S 3 syndrome calculation circuit 30 is multiplied by X 3 , the input data I 0 is input to the term X 0 by the XOR circuit 32 1. I'm stuck. In the initial state, since the value of the shift register 31 of the S 3 syndrome calculation circuit 30 is 0, when this value is (0), [Equation 31]
0 × X 3 + I 0
It becomes. Next, after the value in the S 3 syndrome calculation circuit 30 is multiplied by X 3 , the input data I 1 is added to the term of X 0 .
[Formula 32]
(0 × X 3 + I 0 ) X 3 + I 1
It becomes. Subsequently, after the value in the S 3 syndrome calculation circuit 30 is multiplied by X 3 , the input data I 2 is added to the term of X 0 .
[Equation 33]
((0 × X 3 + I 0 ) X 3 + I 1 ) X 3 + I 2
It becomes. In this way, when the input data I 14 is input to the S 3 syndrome calculation circuit 30,
[Formula 34]
(((((0X 3 + I 0 ) X 3 + I 1 ) X 3 + I 2 ) X 3 + I 3 ) X 3 + I 4 ) X 3 + I 5 ) X 3 + I 6 ) X 3 + I 7 ) X 3 + I 8 ) X 3 + I 9 ) X 3 + I 10 ) X 3 + I 11 ) X 3 + I 12 ) X 3 + I 13 ) X 3 + I 14
It becomes. If this equation is transformed,
[Equation 35]
(((((0 × X 6 + I 0 X 3 + I 1 ) X 6 + I 2 X 3 + I 3 ) X 6 + I 4 X 3 + I 5 ) X 6 + I 6 X 3 + I 7 ) X 6 + I 8 X 3 + I 9 ) X 6 + I 10 X 3 + I 11 ) X 6 + I 12 X 3 + I 13 ) X 3 + I 14
After the value in the S 3 syndrome calculation circuit 30 is multiplied by X 6 , the input data I 0 is added to the term of X 3 and the input data I 1 is added to the term of X 0 . after the value of S 3 syndrome calculation circuit 30 and 6 fold X, the input data I 2 is X 3 sections, the input data I 3 are added up respectively in section X 0, then S 3 syndrome calculation circuit 30 after the value was 6 times X, which means that the input data I 4 the term of X 3, the input data I 5 are added up respectively in section X 0. That data in a single operation of the shift register is six times X, after that, enter the 2-bit data. However, finally, after the value in the S 3 syndrome calculation circuit 30 is multiplied by X 3 , the input data I 14 is added to the term of X 0 by 1-bit input.

ここで、シフトレジスタ31の値を数5で示した値として、これをX6倍すると、
[数36]
06+a17+a28+a39
となるが、αの最小多項式M1(x)よりX4=X+1の関係があるため、
[数37]
(a1+a2)X0+(a1+a3)X1+(a0+a2)X2+(a0+a1+a3)X3
となる。
Here, assuming that the value of the shift register 31 is the value shown in Equation 5, and multiplying this by X 6 ,
[Equation 36]
a 0 X 6 + a 1 X 7 + a 2 X 8 + a 3 X 9
However, since there is a relationship of X 4 = X + 1 from the minimum polynomial M 1 (x) of α,
[Equation 37]
(a 1 + a 2 ) X 0 + (a 1 + a 3 ) X 1 + (a 0 + a 2 ) X 2 + (a 0 + a 1 + a 3 ) X 3
It becomes.

図4(b)は数37を具体的に回路で構成した本実施例に係るS3シンドローム計算回路70の構成を示すブロック図である。このS3シンドローム計算回路70は、レジスタD0,D1,D2,D3からなるシフトレジスタ71と、XOR回路721,722,723,724,725,726とから構成されている。 4 (b) is a block diagram showing the configuration of S 3 syndrome calculation circuit 70 according to this embodiment constructed as specifically circuit number 37. The S 3 syndrome calculation circuit 70 includes a shift register 71 composed of registers D 0 , D 1 , D 2 , and D 3 and XOR circuits 72 1 , 72 2 , 72 3 , 72 4 , 72 5 , and 72 6. Has been.

このS3シンドローム計算回路70は、数37に基づき、1回のシフト動作で、レジスタD1,D2の値a1,a2をXOR回路721で足し込んでレジスタD0に格納し、レジスタD1,D3の値a1,a3をXOR回路726で足し込んでレジスタD1に格納し、レジスタD0,D2の値a0,a2をXOR回路724で足し込んでレジスタD2に格納し、レジスタD0,D1,D3の値a0,a1,a3をXOR回路725,726で足し込んでレジスタD3に格納する。 The S 3 syndrome calculation circuit 70 based on the number 37, a single shift operation, the value a 1, a 2 of the register D 1, D 2 stored in the register D 0 crowded adding an XOR circuit 72 1, the values a 1, a 3 register D 1, D 3 is stored in the register D 1 crowded adding an XOR circuit 72 6, crowded adding a value a 0, a 2 registers D 0, D 2 in XOR circuit 72 4 in stored in the register D 2, is stored in the register D 0, D 1, the value of D 3 a 0, a 1, a 3 and the XOR circuit 72 5, 72 crowded added at 6 register D 3.

図示しないメモリセルエリアから読み出された情報ビットI0,I1,I2,I3,I4,I5,I6と、検査ビットI7,I8,I9,I10,I11,I12,I13,I14とは、I0,I2,I4,I6,I8,I10,I12,I14と、I1,I3,I5,I7,I9,I11,I13とに分割され、S3シンドローム計算回路70に2ビットづつ(I0,I1),(I2,I3),(I4,I5),…の順で並列に入力され、入力後シフトレジスタ71が1回動作する。データI0,I2,I4,…,I14は、XOR回路723でXOR回路726の出力a1+a3と足し込まれ、レジスタD1に格納され、データI1,I3,I5,…,I13は、XOR回路722でXOR回路721の出力a1+a2と足し込まれ、レジスタD0に格納される。但し、情報ビットの最後のI6は1ビットの入力であるため、図23のS3シンドローム計算回路30と同じ配線に切り替わる。又は、I15=0を、S3シンドローム計算回路70に入力させ、シフト動作させた後、シフトレジスタにX-3を掛ける。これにより、2ビット入力の並列処理が可能になる。 Information bits I 0 , I 1 , I 2 , I 3 , I 4 , I 5 , I 6 read from a memory cell area (not shown) and check bits I 7 , I 8 , I 9 , I 10 , I 11 , I 12 , I 13 , I 14 are I 0 , I 2 , I 4 , I 6 , I 8 , I 10 , I 12 , I 14 , I 1 , I 3 , I 5 , I 7 , I 14 9 , I 11 , and I 13, and the S 3 syndrome calculation circuit 70 in the order of (I 0 , I 1 ), (I 2 , I 3 ), (I 4 , I 5 ),. Input is performed in parallel, and the shift register 71 operates once after input. Data I 0, I 2, I 4 , ..., I 14 is added up by the XOR circuit 72 3 and output a 1 + a 3 XOR circuits 72 6, stored in the register D 1, data I 1, I 3, I 5, ..., I 13 is added up by the XOR circuit 72 2 and the output a 1 + a 2 XOR circuits 72 1 is stored in the register D 0. However, since the last I 6 of the information bits is a 1-bit input, it is switched to the same wiring as the S 3 syndrome calculation circuit 30 in FIG. Alternatively, I 15 = 0 is input to the S 3 syndrome calculation circuit 70 to perform a shift operation, and then the shift register is multiplied by X −3 . This enables parallel processing of 2-bit inputs.

(1−2−3)誤り位置検出回路
次に誤り位置検出回路について説明する。本実施形態の誤り位置検出回路では、S1,S3シンドローム計算回路60,70が1回のシフト動作で従来の2回分のシフト動作を行うものであるから、誤り位置検出回路も、従来の2回分のシフト動作に相当する演算を行う。いま、数10の誤り位置多項式を、
[数38]
σ(Z)=S1+σ1×Z2+σ2×Z4
とする。
(1-2-3) Error Position Detection Circuit Next, the error position detection circuit will be described. In the error position detection circuit according to the present embodiment, the S 1 and S 3 syndrome calculation circuits 60 and 70 perform the conventional two shift operations by one shift operation. An operation corresponding to the shift operation for two times is performed. Now, the error locator polynomial of tens is
[Equation 38]
σ (Z) = S 1 + σ 1 × Z 2 + σ 2 × Z 4
And

図5及び図6は、数38に基づいて構成された誤り位置検出回路の構成を示す図である。この誤り位置検出回路80は、S1、σ1及びσ2を計算すると共に格納する第1の演算部80a(図5)と、数38に基づいてデータの誤り位置を検出して検出信号を出力する第2の演算部80bとから構成されている。第1の演算部80aは、図5に示すようにシフトレジスタ81、X2演算回路82及びX4演算回路83により構成されている。シフトレジスタ81aには、初期状態としてシンドロームS1が格納され、シフトレジスタ82a,83aには初期状態としてσ1=S1 2、σ2=S1 3+S3の演算結果が格納される。この誤り位置検出回路80では、出力データI0,I1,I2,I3,I4,I5,I6のうち1つおきの出力データI0,I2,I4,I6、に同期して、誤り検出が行なわれ、シフトレジスタ81a,82a,83aを1回動作させることにより、X2演算回路82ではσ1の項がZ2倍、X4演算回路83では、σ2の項がZ4倍ずつされる。エラーがあるとσ=0となる。 5 and 6 are diagrams showing the configuration of the error position detection circuit configured based on the equation (38). The error position detection circuit 80 calculates and stores S 1 , σ 1, and σ 2 and detects the error position of the data based on Equation 38 and the first arithmetic unit 80a (FIG. 5), and outputs a detection signal. And a second arithmetic unit 80b for outputting. First calculation unit 80a is configured by a shift register 81, X 2 arithmetic circuit 82, and X 4 arithmetic circuit 83 as shown in FIG. The shift register 81a is a syndrome S 1 is stored as the initial state, the shift register 82a, σ 1 = S 1 2 as an initial state in 83a, the operation result of σ 2 = S 1 3 + S 3 are stored. In the error position detection circuit 80, the output data I 0, I 1, I 2 , I 3, I 4, I 5, 1 every output data I 0 of I 6, I 2, I 4 , I 6, in synchronism with, is performed error detection, shift registers 81a, 82a, by operating once 83a, X 2 arithmetic circuit 82 in sigma 1 term is Z 2 times, the X 4 arithmetic circuit 83, sigma 2 Are multiplied by Z 4 times. If there is an error, σ = 0.

ここで、X2演算回路82は、図25のX2演算回路43と同一構成であり、シフトレジスタ43aとシフトレジスタ82aとが対応し、XOR回路43b1,43b2とXOR回路82b1,82b2とが対応するので、詳細な構成説明は割愛する。 Here, the X 2 arithmetic circuit 82 has the same configuration as the X 2 arithmetic circuit 43 in FIG. 25, the shift register 43a and the shift register 82a correspond to each other, and the XOR circuits 43b 1 and 43b 2 and the XOR circuits 82b 1 and 82b. Since 2 corresponds, detailed description of the configuration is omitted.

4演算回路83は、数11に示すシフトレジスタ83aの値をX4倍するので、シフトレジスタ83aの値は、
[数39]
04+a15+a26+a37
となるが、αの最小多項式M1(x)よりX4=X+1の関係があるため、
[数40]
(a0+a3)X0+(a0+a1+a3)X1+(a1+a2)X2+(a2+a3)X3
となる。これは、このX4演算回路83は、数40に基づき、1回のシフト動作で、レジスタE0,E3の値a0,a3をXOR回路83b1で足し込んでレジスタE0に格納し、レジスタE0,E1,E3の値a0,a1,a3をXOR回路83b1,83b2で足し込んでレジスタE1に格納し、レジスタE1,E2の値a1,a2をXOR回路83b3で足し込んでレジスタE2に格納し、レジスタE2,E3の値a2,a3をXOR回路83b4で足し込んでレジスタE3に格納する。
Since the X 4 arithmetic circuit 83 multiplies the value of the shift register 83a shown in Equation 11 by X 4, the value of the shift register 83a is
[Equation 39]
a 0 X 4 + a 1 X 5 + a 2 X 6 + a 3 X 7
However, since there is a relationship of X 4 = X + 1 from the minimum polynomial M 1 (x) of α,
[Equation 40]
(A 0 + a 3 ) X 0 + (a 0 + a 1 + a 3 ) X 1 + (a 1 + a 2 ) X 2 + (a 2 + a 3 ) X 3
It becomes. This is the X4 arithmetic circuit 83 based on the number 40, a single shift operation, the value a 0, a 3 register E 0, E 3 and stored in the register E 0 crowded adding an XOR circuit 83 b 1 , register E 0, E 1, and stores the value a 0, a 1, a 3 of E 3 in the register E 1 crowded adding an XOR circuit 83 b 1, 83 b 2, register E 1, the value a 1 of E 2, the a 2 stored in the register E 2 crowded adding an XOR circuit 83 b 3, and stores the values a 2, a 3 register E 2, E 3 in the register E 3 crowded adding an XOR circuit 83 b 4.

図6の第2の演算部80bは、出力データI0,I2,I4,I6の誤り位置を検出する第1検出部84と、データI1,I3,I5の誤り位置を検出する第2検出部85と、データI1,I3,I5に関してσ1の項をZ倍するX演算回路86と、データI1,I3,I5に関してσ2の項をZ2倍するX2演算回路87とからなる。各検出部84,85のXOR回路88とNORゲート89とで演算された結果の出力が、誤り位置となったところで1となり、この出力で対応するデータIiを反転させることにより、1回のシフト動作で2ビット同時の並列的な誤り位置検出が可能になる。なお、X演算回路86、X2演算回路87の構成は図25及び図26に示した従来回路と同じであるが、データを記憶するためのレジスタは必要ない。
(2)第2の実施形態
図7は、チップ上にECC回路を搭載した第2の実施形態に係るNAND型フラッシュメモリのブロック図である。
6 includes a first detection unit 84 that detects error positions of the output data I 0 , I 2 , I 4 , and I 6 , and error positions of the data I 1 , I 3 , and I 5. a second detector 85 for detecting the data I 1, I 3, the sigma 1 of terms and X arithmetic circuit 86 to Z times with respect to I 5, a data I 1, I 3, the sigma 2 sections with respect to I 5 Z 2 consisting multiplies X 2 arithmetic circuit 87.. The output of the result calculated by the XOR circuit 88 and the NOR gate 89 of each of the detection units 84 and 85 becomes 1 when the error position is reached, and the corresponding data Ii is inverted by this output, thereby shifting one time. In operation, it is possible to detect error positions in parallel at the same time by 2 bits. Although configuration of the X arithmetic circuit 86, X 2 arithmetic circuit 87 is the same as the conventional circuit shown in FIGS. 25 and 26, no register for storing the data required.
(2) Second Embodiment FIG. 7 is a block diagram of a NAND flash memory according to a second embodiment in which an ECC circuit is mounted on a chip.

このメモリは、8つのメモリセルエリア1010,1011,…,1017を備えている。これらメモリセルエリア1010〜1017に対してメモリセルエリア1010〜1017への書き込みデータ(D0〜D7)及びメモリセルエリア1010〜1017からの読み出しデータ(D0〜D7)を一時格納する8つのページバッファ1020,1021,…,102が設けられている。ページバッファ1020〜1027と、I/O端子1040,1041,…,1047との間には、書き込みデータに対する誤り訂正の検査ビットECCを生成すると共に、検査ビット(ECC)を使用して読み出しデータの誤り訂正を行うECC回路103が設けられている。このECC回路103は、従来のものとは異なり、全メモリセルエリア1010〜1017に対して1回にリード・ライトされる528ビット×8I/O=4224ビット分(M=528,N=8)のデータを情報ビットとし、これに共通の40ビットの検査ビットを付加して誤り検出訂正を行う。 This memory, eight memory cell area 101 0, 101 1, ..., and a 101 7. These memory cell area 101 0-101 7 temporary storage read data (D0 to D7) from the write data (D0 to D7) and the memory cell area 101 0-101 7 in the memory cell area 101 0-101 7 against eight page buffers 102 to 0, 102 1, ..., 102 7 is provided. Between the page buffers 102 0 to 102 7 and the I / O terminals 104 0 , 104 1 ,..., 104 7 , error correction check bits ECC for write data are generated and check bits (ECC) are used. Thus, an ECC circuit 103 that performs error correction of the read data is provided. Unlike the conventional circuit, this ECC circuit 103 is 528 bits × 8 I / O = 4224 bits (M = 528, N = read) written and written at once to all the memory cell areas 101 0 to 101 7 . The data of 8) is used as information bits, and 40 common check bits are added to the information bits to perform error detection and correction.

I/O端子105から入力されるアドレス及び制御信号は、それぞれ制御信号動作回路106及びアドレスデコーダ107に供給されている。制御信号動作回路106は、各種制御信号ALE,CLE,CE,WE,RE,WP等を入力して各部に供給する制御電圧を発生すると共に、外部回路にREADY/BUSY信号を出力する。アドレスデコーダ107は、外部からI/O端子105を介して入力されたアドレスを、一時的に記憶し、カラムデコーダ108及びブロック選択回路109を駆動する。カラムデコーダ108は、ページバッファ1020〜1021の各1つのカラムを活性化する。ブロック選択回路109は、メモリセルエリア1010〜1011中のワード線に読み出し、書き込み又は消去に必要な電圧を与える。 The address and control signal input from the I / O terminal 105 are supplied to the control signal operation circuit 106 and the address decoder 107, respectively. The control signal operation circuit 106 inputs various control signals ALE, CLE, CE, WE, RE, WP and the like to generate a control voltage to be supplied to each part, and outputs a READY / BUSY signal to an external circuit. The address decoder 107 temporarily stores an address input from the outside via the I / O terminal 105 and drives the column decoder 108 and the block selection circuit 109. The column decoder 108 activates each one of the page buffers 102 0 to 102 1 . The block selection circuit 109 applies a voltage necessary for reading, writing or erasing to the word lines in the memory cell areas 101 0 to 101 1 .

各メモリセルエリア101j(但し、j=0〜7)は、図8に示すように、電気的書換え可能な不揮発性メモリセルMCをマトリクス状に配列して構成されている。この例では、16個のメモリセルMCが1つの単位として直列に接続され、一方の端のメモリセルMCのドレインは、選択ゲートトランジスタSG1を介してビット線BLに接続され、他方の端のメモリセルMCのソースは、選択ゲートトランジスタSG2を介して共通ソース線SLに接続されている。ロウ方向のメモリセルMCの制御ゲートは、共通のワード線WLに接続され、ロウ方向の選択ゲートトランジスタSG1,SG2のゲート電極は、共通の選択ゲート線SGL1,SGL2に接続されている。この実施形態の場合、制御ゲート線に沿った1056個のメモリセルMCのうち、奇数番目と偶数番目にそれぞれ配置されたメモリセルMCに記憶される528ビットのデータが1回の書き込み及び読み出しの単位である1ページとなる。また、この例ではカラム方向に隣接する16ページ分のデータが1回の消去の単位である1ブロックとなる。但し、メモリセルエリア1017には、ワード線WLに沿った1056(528×2)個の情報ビット記憶用のメモリセルMCの他、誤り訂正用の検出ビットを80(40×2)ビット分記憶するためのメモリセルMCが設けられている。 Each memory cell area 101j (where j = 0 to 7) is configured by arranging electrically rewritable nonvolatile memory cells MC in a matrix as shown in FIG. In this example, 16 memory cells MC are connected in series as one unit, the drain of the memory cell MC at one end is connected to the bit line BL via the selection gate transistor SG1, and the memory at the other end is connected. The source of the cell MC is connected to the common source line SL via the selection gate transistor SG2. The control gates of the memory cells MC in the row direction are connected to the common word line WL, and the gate electrodes of the selection gate transistors SG1 and SG2 in the row direction are connected to the common selection gate lines SGL1 and SGL2. In this embodiment, 528 bits of data stored in the odd-numbered and even-numbered memory cells MC out of 1056 memory cells MC along the control gate line are written and read once. One page is a unit. In this example, data for 16 pages adjacent in the column direction is one block which is a unit of one erase. However, the memory cell area 101 7, other memory cells MC for 1056 (528 × 2) information bits stored along the word line WL, and the detection bit 80 (40 × 2) for error correction bits A memory cell MC for storing is provided.

各ページバッファ102jは、図8に示すように、528個のデータ記憶回路121を備え、各データ記憶回路121は、それぞれ2本のビット線BLi,BLi+1に接続され、アドレスによって選択されたいずれか一方のビット線BLを介してメモリセルエリア101j中のメモリセルMCのデータを読み出したり、ビット線BLを介してメモリセルエリアMC中のメモリセルの状態を検出したり、ビット線BLを介してメモリセルエリア101j中のメモリセルMCに書き込み制御電圧を印加してメモリセルMCに書き込みを行う。528個のデータ記憶回路121のうち、いずれか1つのデータ記憶回路121がカラムデコーダ108によって選択され、選択されたデータ記憶回路121だけがECC回路103と接続される。   As shown in FIG. 8, each page buffer 102j includes 528 data storage circuits 121, and each data storage circuit 121 is connected to two bit lines BLi and BLi + 1, and is selected by an address. The data of the memory cell MC in the memory cell area 101j is read via the one bit line BL, the state of the memory cell in the memory cell area MC is detected via the bit line BL, and the data via the bit line BL is detected. Writing is performed to the memory cell MC by applying a write control voltage to the memory cell MC in the memory cell area 101j. One of the 528 data storage circuits 121 is selected by the column decoder 108, and only the selected data storage circuit 121 is connected to the ECC circuit 103.

従って、メモリ全体では、カラムデコーダ108により同一カラムアドレスを示す8ビット分(8IO分)のデータ記憶回路121とECC回路103とが接続される。読み出し動作のときは、図8の点線で示す1ページ分のメモリセルMCが選択され、528×8ビットのデータが一時に全てのデータ記憶回路121に記憶される。カラムデコーダ108は、外部より入力されるリードイネーブル(RE)信号に同期してカラムアドレスを1つずつインクリメントする。これにより、メモリセルエリア1010〜1017の各1つ、計8つのデータ記憶回路121が次々と選択され、順次8ビット分(8IO分)のデータがECC回路103に出力されることになる。書き込み動作のときも同様に、外部よりI/O端子1040〜1047を介して8ビット分(8IO分)のデータが順次ECC回路103に入力され、ECC回路103から順次8ビット分のデータが出力される。カラムデコーダ108は、外部より入力されるライトイネーブル(WE)信号に同期してカラムアドレスを、1づつインクリメントする。これにより、メモリセルエリア1010〜1017の各1つ、計8つのデータ記憶回路121が次々と選択され、ECC回路103からの8ビット分のデータが、選択された記憶回路121に入力されていく。 Therefore, in the entire memory, the data storage circuit 121 for 8 bits (8 IOs) indicating the same column address is connected to the ECC circuit 103 by the column decoder 108. In the read operation, one page of memory cells MC indicated by the dotted line in FIG. 8 is selected, and 528 × 8-bit data is stored in all the data storage circuits 121 at a time. The column decoder 108 increments the column address one by one in synchronization with a read enable (RE) signal input from the outside. As a result, a total of eight data storage circuits 121 are selected one by one in each of the memory cell areas 101 0 to 101 7 , and data for 8 bits (8 IOs) is sequentially output to the ECC circuit 103. . Similarly, during the write operation, data of 8 bits (8 IO) is sequentially input from the outside to the ECC circuit 103 via the I / O terminals 104 0 to 104 7, and data of 8 bits is sequentially input from the ECC circuit 103. Is output. The column decoder 108 increments the column address by one in synchronization with a write enable (WE) signal input from the outside. As a result, a total of eight data storage circuits 121 are selected one by one for each of the memory cell areas 101 0 to 101 7 , and 8-bit data from the ECC circuit 103 is input to the selected storage circuit 121. To go.

次にECC回路103について詳細に説明する。   Next, the ECC circuit 103 will be described in detail.

図9は、ECC回路103の詳細を示すブロック図である。ECC回路103は、複数段のレジスタ、XOR回路、スイッチ等から構成される演算用ロジック回路131と、シンドローム計算等に用いるガロア演算回路132と、復号時に動作する誤り位置検出回路133(主として第2の演算部)及びデータ反転回路134とを備えて構成されている。演算用ロジック回路131は、ECC回路103が符号化回路として機能するときには、検査ビット生成回路を構成し、ECC回路103が復号器として機能する場合には、シンドローム演算回路及び誤り位置検出回路の主として第1の演算部を構成する。
(2−1)符号化回路
このECC回路103では、データを8ビット(D0〜D7)ずつ入力し、528×8=4224ビットのデータを単位として誤り検出訂正をおこなう。例えば、3ビット訂正4ビット誤り検出のBCH符号について考えると、情報ビットk=4224、符号長n=8191、訂正ビットt=3、m=13となり符号化及び復号に必要な生成多項式は以下のようになる。
FIG. 9 is a block diagram showing details of the ECC circuit 103. The ECC circuit 103 includes an arithmetic logic circuit 131 including a plurality of stages of registers, XOR circuits, switches, a Galois arithmetic circuit 132 used for syndrome calculation, and an error position detection circuit 133 (mainly a second circuit) that operates during decoding. And a data inversion circuit 134. The arithmetic logic circuit 131 constitutes a check bit generation circuit when the ECC circuit 103 functions as an encoding circuit, and mainly functions as a syndrome arithmetic circuit and an error position detection circuit when the ECC circuit 103 functions as a decoder. A first arithmetic unit is configured.
(2-1) Coding Circuit In this ECC circuit 103, data is input 8 bits (D0 to D7), and error detection and correction are performed in units of 528 × 8 = 4224 bits. For example, when considering a BCH code with 3-bit correction and 4-bit error detection, information bit k = 4224, code length n = 8191, correction bit t = 3, m = 13, and a generator polynomial necessary for encoding and decoding is as follows: It becomes like this.

[数41]
原始多項式 : F(X) =X13+X4+X3+X+1
パリティ多項式 : M0(x)=X+1
αの最小多項式 : M1(x)=X13+X4+X3+ X+1
α3の最小多項式: M3(x)=X13+X10+X9+X7+X5+X4+1
α5の最小多項式: M5(x)=X13+X11+X8+X7+X4+X1+1
生成多項式 : G(x)=M0135
=X40+X39+X38+X35+X34+X33
+X32+X28+X27+X26+X25+X23+X22
+X20+X18+X17+X16+X15+X14+X10
+X9+X5+X4+X2+X1+1
先の第1の実施形態と同様に、数42を変形し、数43を求める。
[Equation 41]
Primitive polynomial: F (X) = X 13 + X 4 + X 3 + X + 1
Parity polynomial: M 0 (x) = X + 1
Minimum polynomial of α: M 1 (x) = X 13 + X 4 + X 3 + X + 1
Minimum polynomial of α 3 : M 3 (x) = X 13 + X 10 + X 9 + X 7 + X 5 + X 4 +1
Minimum polynomial of α 5 : M 5 (x) = X 13 + X 11 + X 8 + X 7 + X 4 + X 1 +1
Generator polynomial: G (x) = M 0 M 1 M 3 M 5
= X 40 + X 39 + X 38 + X 35 + X 34 + X 33
+ X 32 + X 28 + X 27 + X 26 + X 25 + X 23 + X 22
+ X 20 + X 18 + X 17 + X 16 + X 15 + X 14 + X 10
+ X 9 + X 5 + X 4 + X 2 + X 1 +1
As in the first embodiment, Equation 42 is transformed to obtain Equation 43.

[数42]
(((((0+I039)X+I139)X+I239)X+I339)………
)X+I52739)X
[数43]
(((((0+I039+I138+I237……I732)X8+(I839……
1532))X8………(I52039+I52138……I52732)X8
数43の意味するところは次の通りである。まず、一回のWE信号のクロックに対し入力される8ビットのデータD0〜D7=I0,I1,I2,…,I7のそれぞれにX39,X38,X37,…,X32を掛け、内部のレジスタ値に足しこみ、その後、レジスタの値をX8する。続いて、次のWE信号のクロックに対し入力される8ビットのデータD0〜D7=I8,I9,I10,…,I15のそれぞれにX39,X38,X37,…,X32を掛け、内部のレジスタ値に足しこみ、その後、レジスタの値をX8する。これを、最後の8ビットのデータD0〜D7=I4216,I4217,I4218,…,I4223まで528回繰り返す。
[Formula 42]
(((((0 + I 0 X 39 ) X + I 1 X 39 ) X + I 2 X 39 ) X + I 3 X 39 ) ...
) X + I 527 X 39 ) X
[Equation 43]
(((((0 + I 0 X 39 + I 1 X 38 + I 2 X 37 ...... I 7 X 32 ) X 8 + (I 8 X 39 ......
I 15 X 32 )) X 8 ......... (I 520 X 39 + I 521 X 38 ...... I 527 X 32 ) X 8
The meaning of Equation 43 is as follows. First, 8-bit data D0 to D7 = I 0 , I 1 , I 2 ,..., I 7 input to the clock of one WE signal are respectively X 39 , X 38 , X 37 ,. 32 multiplied by summation in an internal register values, then the value of register X 8. Subsequently, 8-bit data D0 to D7 = I 8 , I 9 , I 10 ,..., I 15 input to the clock of the next WE signal are respectively added to X 39 , X 38 , X 37 ,. 32 multiplied by summation in an internal register values, then the value of register X 8. This is repeated 528 times until the last 8-bit data D0 to D7 = I 4216 , I 4217 , I 4218 ,..., I 4223 .

図10は、演算用ロジック回路131に備えられた40段のレジスタREG0,REG1,…,REG39を示す。これらは符号化回路の巡回シフトレジスタを構成する。これらレジスタREG0〜REG39の入力をB0,B1,…,B39、出力をA0,A1,…,A39とする。演算用ロジック回路131は、上記数41の生成多項式と数43とに基づき、1回のデータ入力で下記数45及び数46に示すXOR演算を実行する。ここで使用されるXOR演算は数44に示される。レジスタREG32〜REG39は、出力A32〜A39を出力する前に、数45で示すように、外部より入力される8ビットのデータD0〜D7がレジスタ値にXOR演算により足しこまれた結果である出力AA32〜AA39を出力する。出力A0〜31、AA32〜AA39はXOR回路に繋がり、数46で示すXOR演算の結果B0〜39は、レジスタREG0〜REG39の入力に繋がり、シフトレジスタのクロックに同期し、取りこまれる。この演算を528回繰り返すと、演算ロジック回路131レジスタREG0〜REG39には、40ビットの検査ビットI4224,I4225,I4226,…,I4264が生成される。 FIG. 10 shows 40 stages of registers REG0, REG1,..., REG39 provided in the arithmetic logic circuit 131. These constitute the cyclic shift register of the encoding circuit. These registers REG0 to REG39 have inputs B0, B1,..., B39, and outputs A0, A1,. The arithmetic logic circuit 131 executes the XOR operation represented by the following equations 45 and 46 with one data input based on the generator polynomial of the equation 41 and the equation 43. The XOR operation used here is shown in Equation 44. Before the outputs A32 to A39 are output, the registers REG32 to REG39 are outputs obtained by adding 8-bit data D0 to D7 input from the outside to the register values by the XOR operation, as shown in Expression 45. AA32 to AA39 are output. The outputs A0 to A31 and AA32 to AA39 are connected to the XOR circuit, and the results B0 to 39 of the XOR operation represented by the equation 46 are connected to the inputs of the registers REG0 to REG39 and are captured in synchronization with the clock of the shift register. When this operation is repeated 528 times, 40 check bits I 4224 , I 4225 , I 4226 ,..., I 4264 are generated in the arithmetic logic circuit 131 registers REG0 to REG39.

図11は、このECC回路103の符号化処理を示すフローチャート、図12は、同じく符号化処理のタイミングチャートである。   FIG. 11 is a flowchart showing the encoding process of the ECC circuit 103, and FIG. 12 is a timing chart of the encoding process.

まず外部からデータ入力コマンド(80h)を入力すると(S21)、演算用ロジック回路131の内部のレジスタREG0〜40がリセットされ(S22)、次にアドレス(Add)が与えられる。続いてWE(ライトイネーブル)信号が外部から入力され、これに同期してデータが8ビットずつページバッファ102jにロードされる(S23,S24,S25)。これと同時にデータが演算用ロジック回路131に送りこまれ、検査ビットECCが計算される。カラムアドレスが最終の528に達したら(S25)、データロードを終了する。続いて外部よりプログラムコマンド(10h)が入力され、これによりメモリセルMCへのデータ書き込みのための図示しないチャージポンプによる昇圧動作が開始される。これと同時に、書込み動作を行なう前に、図示しない内部オシレータ等により40ビットのREG0〜REG39から順次5バイトずつ検査ビットが出力され、ページバッファ1027のデータ記憶回路121に格納される。この後、データ記憶回路121に格納されたデータが、外部アドレスAddにより選択された1ページ(図8の点線で示す)のメモリセルMCに記憶される。
(2−2)号回路
(2−2−1)シンドローム計算回路
3ビット誤り訂正、4ビット誤り検出のためには4つのシンドロームS0,S1,S3,S5が必要であることが知られている。シンドロームS0は最小多項式M0(x)=x+1により求められる。最小多項式M1(x)=x10+x3+1により求められるx10=x3+1をα演算子とすると、シンドロームS1はα演算子より、シンドロームS3はα3演算子より、シンドロームS5はα5演算子より求められる。従来の復号回路では、一回のWE信号のクロックに対し1ビットしか入力できなかったが、第1の実施形態の数27から数28に、また数34から数35に変形されたときと同様に変形し、一回のWE信号のクロックに対し8ビットのデータを取り込めるようにする。したがって、シンドロームS1はα8演算子より、シンドロームS3はα24演算子より、シンドロームS5はα40演算子より求められる。
First, when a data input command (80h) is input from the outside (S21), the registers REG0 to REG40 in the arithmetic logic circuit 131 are reset (S22), and then an address (Add) is given. Subsequently, a WE (write enable) signal is inputted from the outside, and data is loaded into the page buffer 102j 8 bits at a time in synchronization with this (S23, S24, S25). At the same time, the data is sent to the arithmetic logic circuit 131 and the check bit ECC is calculated. When the column address reaches the final 528 (S25), the data load is terminated. Subsequently, a program command (10h) is input from the outside, whereby a boosting operation by a charge pump (not shown) for writing data to the memory cell MC is started. At the same time, before performing the write operation, the check bits one by 5 bytes REG0~REG39 of 40 bits by an internal oscillator (not shown) or the like is output and stored in the data storage circuit 121 of the page buffer 102 7. Thereafter, the data stored in the data storage circuit 121 is stored in the memory cell MC of one page (indicated by a dotted line in FIG. 8) selected by the external address Add.
(2-2) decrypt circuit (2-2-1) syndrome calculation circuit 3-bit error correction, it for 4-bit error detection requires four syndromes S 0, S 1, S 3 , S 5 It has been known. The syndrome S 0 is obtained by the minimum polynomial M 0 (x) = x + 1. When x 10 = x 3 +1 obtained by the minimum polynomial M 1 (x) = x 10 + x 3 +1 is an α operator, the syndrome S 1 is from the α operator, and the syndrome S 3 is from the α 3 operator to the syndrome S. 5 is obtained from the α 5 operators. In the conventional decoding circuit, only one bit can be input with respect to the clock of one WE signal, but it is the same as when the first embodiment is changed from Equation 27 to Equation 28 and from Equation 34 to Equation 35. In other words, 8-bit data can be captured with respect to a single WE signal clock. Accordingly, the syndrome S 1 is obtained from the α 8 operator, the syndrome S 3 is obtained from the α 24 operator, and the syndrome S 5 is obtained from the α 40 operator.

図13は、演算用ロジック回路131に備えられた40段のレジスタREG0〜REG39を示す。レジスタREG0はS0シンドローム計算回路の巡回シフトレジスタを構成し、レジスタREG1〜13はS1シンドローム計算回路の巡回シフトレジスタを構成し、レジスタREG14〜26はS3シンドローム計算回路の巡回シフトレジスタを構成し、レジスタREG27〜39はS5シンドローム計算回路の巡回シフトレジスタを構成する。ここで、レジスタREG0の入力をPP0、出力をP0、レジスタREG1〜13の入力をAA0,AA1,…,AA12、出力をA0,A1,…,A12、レジスタREG14〜26の入力をBB0,BB1,…,BB12、出力をB0,B1,…,B12、レジスタREG27〜39の入力をCC0,CC1,…,CC12、出力をC0,C1,…,C12とする。演算ロジック回路131は、1回のデータ入力で下記数47,数48,数49及び数50の演算を実行する。データ記憶回路121から読み出された、8ビットのデータD0〜D7と、それぞれのレジスタREG0〜REG39の出力P0、A0〜13、B0〜13、C0〜13とはXOR回路により足しこまれ、XOR回路の出力PP0、AA0〜13、BB0〜13、CC0〜13となり、レジスタREG0〜REG39の入力に繋がり、シフトレジスタのクロックに同期し、取りこまれる。レジスタREG1〜13に繋がるXOR回路はα8演算回路で、データD0〜D7の入力が加わっている。レジスタREG14〜REG26に繋がるXOR回路はα24演算回路で、データD0〜D7の入力が加わっている。レジスタREG27〜39に繋がるXOR回路はα40演算回路で、データD0〜D7の入力が加わっている。しかし、α40演算回路は回路規模が大きいため、図9に示したガロア演算回路132の片方の入力にα40を入力し、その出力とデータD0〜D7とをXOR回路で適宜演算して求めることも出来る。 FIG. 13 shows 40-stage registers REG0 to REG39 provided in the arithmetic logic circuit 131. The register REG0 constitutes the cyclic shift register of the S 0 syndrome calculation circuit, the registers REG1 to 13 constitute the cyclic shift register of the S 1 syndrome calculation circuit, and the registers REG14 to 26 constitute the cyclic shift register of the S 3 syndrome calculation circuit. and, register REG27~39 constitute a cyclic shift register of the S 5 syndrome calculation circuit. Here, the input of the register REG0 is PP0, the output is P0, the inputs of the registers REG1 to REG13 are AA0, AA1,..., A12, the outputs are A0, A1, ..., A12, and the inputs of the registers REG14 to 26 are BB0, BB1, .., BB12, the outputs are B0, B1,..., B12, the inputs of the registers REG27-39 are CC0, CC1,. The arithmetic logic circuit 131 executes the following mathematical expressions 47, 48, 49, and 50 with one data input. The 8-bit data D0 to D7 read from the data storage circuit 121 and the outputs P0, A0 to 13, B0 to 13, and C0 to 13 of the respective registers REG0 to REG39 are added by the XOR circuit, and the XOR The circuit outputs PP0, AA0 to 13, BB0 to 13, and CC0 to 13, which are connected to the inputs of the registers REG0 to REG39 and are captured in synchronization with the clock of the shift register. The XOR circuit connected to the register REG1~13 with alpha 8 calculation circuit, the input data D0~D7 is applied. The XOR circuit connected to the register REG14~REG26 with alpha 24 calculation circuit, the input data D0~D7 is applied. The XOR circuit connected to the register REG27~39 with alpha 40 calculation circuit, the input data D0~D7 is applied. However, since the α 40 arithmetic circuit has a large circuit scale, α 40 is input to one input of the Galois arithmetic circuit 132 shown in FIG. 9, and the output and data D0 to D7 are appropriately calculated by the XOR circuit. You can also

(2−2−2)誤り位置検出回路(第1の演算部)
図14は、このECC回路103の復号処理を示すフローチャートである。
(2-2-2) Error position detection circuit (first arithmetic unit)
FIG. 14 is a flowchart showing the decoding process of the ECC circuit 103.

外部よりデータリードコマンド(00h)を入力した後、読み出すアドレス(Add)を入力することにより、リード動作が開始される(S31)。まず、アドレスにより選択された、1ページ(528バイト)分のメモリセルMCのデータをページバッファ1020〜1027に読み出す(S32)。この後、内部オシレータにより発振される信号に同期し、データD0〜D7が1バイトずつECC回路103に入力され、シンドロームを計算する(S33)。数47〜数50に示すように、シンドロームS0,S1,S3,S5を計算した後、S1=S3=S5=0 の場合(S34)で、S0=0だと(S35)エラー無し(正常出力:S36)となる。S0≠0(S35)では、訂正不能となる(S37)。S1=S3=S5=0でない場合(S34)、σ2=S1 23+S5 とσ0=S1 3+S3を計算する(S38)。σ0=0の場合(S39)で、σ2=0かつS0=0の場合(S40)、1ビットエラーがあるので1ビット訂正のアルゴリズムに移行する(S41)。σ2=0かつS0=0でない場合(S40)、訂正不能となる(S42)。σ0≠0の場合(S39)、σ1=S1(S1 3+S3) とσ3=(S1 3+S32+S1(S1 23+S5)を計算する(S43)。σ3=0の場合(S44)で、σ2≠0かつS0=0の場合(S45)、2ビットエラーがあるので2ビット訂正するアルゴリズムに移行する(S46)。σ2≠0かつS0=0でない場合、訂正不能となる(S47)。σ3≠0の場合(S44)で、S0=1だと(S48)3ビットエラーがあるので3ビット訂正するアルゴリズムに移行する(S49)。但し、2ビット訂正と3ビット訂正のアルゴリズムは同じである。S0≠1だと(S48)訂正不能となる(S50)。 After inputting the data read command (00h) from the outside, the read operation is started by inputting the read address (Add) (S31). First, the data of the memory cells MC for one page (528 bytes) selected by the address are read out to the page buffers 102 0 to 102 7 (S32). Thereafter, in synchronization with the signal oscillated by the internal oscillator, the data D0 to D7 are input to the ECC circuit 103 byte by byte, and the syndrome is calculated (S33). As shown in the equations 47 to 50 , after calculating the syndromes S 0 , S 1 , S 3 , S 5 , when S 1 = S 3 = S 5 = 0 (S 34), S 0 = 0 (S35) No error (normal output: S36). If S 0 ≠ 0 (S35), correction is impossible (S37). When S 1 = S 3 = S 5 = 0 is not satisfied (S 34), σ 2 = S 1 2 S 3 + S 5 and σ 0 = S 1 3 + S 3 are calculated (S 38). When σ 0 = 0 (S39), and when σ 2 = 0 and S 0 = 0 (S40), since there is a 1-bit error, the process proceeds to a 1-bit correction algorithm (S41). When σ 2 = 0 and S 0 = 0 are not satisfied (S40), correction is impossible (S42). When σ 0 ≠ 0 (S39), σ 1 = S 1 (S 1 3 + S 3 ) and σ 3 = (S 1 3 + S 3 ) 2 + S 1 (S 1 2 S 3 + S 5 ) are calculated (S43). ). When σ 3 = 0 (S44), and when σ 2 ≠ 0 and S 0 = 0 (S45), since there is a 2-bit error, the process proceeds to an algorithm that corrects 2-bit (S46). If σ 2 ≠ 0 and S 0 = 0, correction is impossible (S47). When σ 3 ≠ 0 (S44) and S 0 = 1 (S48), there is a 3-bit error, so the process shifts to an algorithm for 3-bit correction (S49). However, the 2-bit correction and 3-bit correction algorithms are the same. If S 0 ≠ 1 (S48), correction becomes impossible (S50).

図15に、これらの計算を行う誤り位置検出回路を示す。この誤り位置検出回路は、演算用ロジック回路131に内蔵された各13ビットの4つのレジスタR,A,B,C及び図示しないXOR回路により構成される第1の演算部と、ガロア演算回路132と、8つのローケータ141及びこれらローケータ141の間に挿入された×α,×α2,×α3の演算を行う演算回路142からなる第2の演算部133と、これらの間を接続する13ビットのバスBUSR,BUSA,BUSB,BUSCとを備えて構成されている。ガロア演算回路132の出力はレジスタRに接続されている。 FIG. 15 shows an error position detection circuit for performing these calculations. This error position detection circuit includes a first calculation unit including four 13-bit registers R, A, B, and C incorporated in the calculation logic circuit 131 and an XOR circuit (not shown), and a Galois calculation circuit 132. When connects × inserted between the eight locator 141 and these locators 141 alpha, a second arithmetic unit 133 consisting × alpha 2, the arithmetic circuit 142 for performing an operation of × alpha 3, between these 13 Bit buses BUSR, BUSA, BUSB, and BUSC are provided. The output of the Galois operation circuit 132 is connected to the register R.

図16は、誤り位置多項式の項であるσ0,σ1,σ3,σ2を算出するアルゴリズムを示している。レジスタA,B,CにシンドロームS1,S3,S5がそれぞれ格納されており、これらが全て0であればエラー無しなので、この演算は実行しない(S61)。そうでない場合、σ2=S1 23+S5の演算を行い、レジスタRに順次演算結果が格納されていき、最後に得られた演算結果がレジスタRからレジスタCに転送される(S62)。次に、σ0=S1 3+S3の演算を行い、レジスタRに順次演算結果が格納されていき、最後に得られた演算結果がレジスタRからレジスタBに転送される(S63)。レジスタB,Cに求められた演算結果が共に0であれば、1ビットエラーとして(S64)、1をレジスタRに格納し(S65)、そうでない場合には、σ1=S1(S1 3+S3)とσ3=(S1 3+S32+S1(S1 23+S5)の演算を行う(S66,S67,S68)。 FIG. 16 shows an algorithm for calculating σ 0 , σ 1 , σ 3 , and σ 2 that are terms of the error locator polynomial. The syndromes S 1 , S 3 , and S 5 are stored in the registers A, B, and C, respectively, and if these are all 0, there is no error, so this calculation is not executed (S61). Otherwise, the operation of σ 2 = S 1 2 S 3 + S 5 is performed, the operation results are sequentially stored in the register R, and the operation result obtained at the end is transferred from the register R to the register C (S62). ). Next, an operation of σ 0 = S 1 3 + S 3 is performed, the operation results are sequentially stored in the register R, and the operation result obtained last is transferred from the register R to the register B (S63). If the calculation results obtained in the registers B and C are both 0, a 1-bit error is stored (S64), 1 is stored in the register R (S65), and if not, σ 1 = S 1 (S 1 3 + S 3 ) and σ 3 = (S 1 3 + S 3 ) 2 + S 1 (S 1 2 S 3 + S 5 ) are calculated (S 66, S 67, S 68).

一方、本実施形態では、符号長n=8191のうち情報ビットk=4224(528×8ビット)を誤り訂正するようにしているが、符号長n=8191の符号では、本来、情報ビットとして検査ビット40ビットを除いた8151ビットを持つことができる。このため、誤り位置は、8151−4224+1=3928ビット分だけずれていることになり、カラムアドレス0番地から読み出す場合、σ1にα3928、σ2にα7856(=3928×2)、σ3にα3593(=3928×3-8191)を掛ける計算を行なう(S69,S70,S71)。同様に、カラムアドレスi番地から読み出す場合、σ1にα3928+i、σ2にα7858(=(3928+i)×2)、σ3にα3596(=(3928+i)×3-8191)を掛ける計算を行なう。α3928+i等の係数は例えばROMに書きこんでおく。これらの係数はカラムアドレスiによるため、図7のカラムデコーダ108により選択されるカラムデータ記憶付近に、もしくはメモリセルエリア101内に格納する。又は、カラムアドレス0番地の係数のみ記憶し、他のアドレスがアクセスした場合は、誤り位置検出の動作をダミーで動かし係数を合わせるようにしても良い。 On the other hand, in this embodiment, the information bit k = 4224 (528 × 8 bits) is corrected in the code length n = 8191. However, the code having the code length n = 8191 is originally checked as an information bit. It can have 8151 bits excluding 40 bits. Therefore, error location, 8151-4224 + 1 = 3928 will be are shifted by bits, when reading from the column address 0, the sigma 1 alpha 3928, the σ 2 α 7856 (= 3928 × 2), σ 3 Is multiplied by α 3593 (= 3928 × 3-8191) (S69, S70, S71). Similarly, when reading from the column address address i, the sigma 1 alpha 3928 + i, the σ 2 α 7858 (= (3928 + i) × 2), the σ 3 α 3596 (= (3928 + i) × 3- 8191) is multiplied. Coefficients such as α 3928 + i are written in a ROM, for example. Since these coefficients depend on the column address i, they are stored in the vicinity of the column data storage selected by the column decoder 108 in FIG. Alternatively, only the coefficient at the column address 0 may be stored, and when another address is accessed, the error position detection operation may be moved with a dummy to match the coefficients.

図17は、ガロア演算回路132の詳細を示すブロック図である。   FIG. 17 is a block diagram showing details of the Galois arithmetic circuit 132.

いま、同図(a)に示す13ビットの入力A,Bをそれぞれ、次のように示す。   Now, the 13-bit inputs A and B shown in FIG.

[数51]
A=a00+a11+a22+ … +a1212
B=b00+b11+b22+ … +b1212
この場合、A×Bは、数52のようになる。
[Formula 51]
A = a 0 X 0 + a 1 X 1 + a 2 X 2 +... + A 12 X 12
B = b 0 X 0 + b 1 X 1 + b 2 X 2 +... + B 12 X 12
In this case, A × B is as shown in Formula 52.

[数52]
A×B=A(b00+b11+b22+ … +b1212
=Ab0+X(Ab1+X(Ab2+X(Ab3+ …
… +X(Ab12))))))))))))
これを回路を表すと、図17(b)の構成となる。AとbiとがAND回路151でAND演算され、その演算結果をX乗算回路152でX倍して、XOR回路153で次のAとbi+1とのAND演算結果とXOR演算する。ここで、X乗算回路152は、同図(c)に示すように、数41のαの最小多項式M1(X)より、X13=X4+X3+X+1の関係があるので、X12の項がX0の項にシフトすると共に、XOR回路154により、X3,X1,X0の項に足し込まれ、それぞれX4,X3,X1の項に格納されるという演算を行う。
[Formula 52]
A × B = A (b 0 X 0 + b 1 X 1 + b 2 X 2 +... + B 12 X 12 )
= Ab 0 + X (Ab 1 + X (Ab 2 + X (Ab 3 +...
... + X (Ab 12)) ))))))))))
When this is expressed as a circuit, the configuration shown in FIG. A and bi are ANDed by AND circuit 151, the result is multiplied by X by X multiplier circuit 152, and the XOR circuit 153 performs an XOR operation with the next AND result of A and bi + 1. Here, X multiplication circuit 152, as shown in FIG. (C), the minimum polynomial M 1 of α number 41 (X), since there is a X 13 = X 4 + X 3 + X + 1 relationship, the X 12 performed with claim shifts in the section X 0, the XOR circuit 154, are added up in terms of X 3, X 1, X 0, the operation that is stored in the section X 4, X 3, X 1 respectively .

以上の演算の結果、13ビットのレジスタA,B,C,Rにはそれぞれ、σ1、σ3、σ2、σ0が初期値として与えられる。 As a result of the above calculation, σ 1 , σ 3 , σ 2 , and σ 0 are given as initial values to the 13-bit registers A, B, C, and R, respectively.

(2−2−3)誤り位置検出回路(第2の演算部)
誤りビットの位置の検出は、3ビット訂正と4ビット訂正の場合、下記数53の誤り位置多項式に従うことが知られている。
(2-2-3) Error position detection circuit (second arithmetic unit)
It is known that the detection of the error bit position follows the error position polynomial of the following equation 53 in the case of 3-bit correction and 4-bit correction.

[数53]
σ(Z)=S1+σ1×Z+σ2×Z2+σ3×Z3
この数53にZ=αI(I=0,1,2,3・・・…)を順次代入してσ(α)= 0となったiが誤りの位置となる。本実施形態では、一回のWEのクロックに対し8ビットのデータを出力するため、第1の実施形態で数10を数38に変形したように、数53を、次の数54のように変形する。
[Formula 53]
σ (Z) = S 1 + σ 1 × Z + σ 2 × Z 2 + σ 3 × Z 3
Z = α I (I = 0, 1, 2, 3...) Is sequentially substituted into the equation 53, and i where σ (α I ) = 0 is the error position. In this embodiment, since 8-bit data is output for one WE clock, the equation 53 is changed into the following equation 54 as in the first embodiment, which is transformed from the equation 10 into the equation 38. Deform.

[数54]
σ(Z)=σ0+σ1×Z8+σ2×Z16+σ3×Z24
これにより、8ビットおきに8ビットずつ同時に誤り検出を行う。つまり8I/O分の出力データのうちI/O0に対して、誤り検出を行い、誤りがあるとσ=0となる。図16の演算の結果、13ビットのシフトレジスタA,B,C,Rにはそれぞれ、σ1、σ3、σ2、σ0が初期値として与えられている、演算用ロジック回路131のシフトレジスタAに繋がるXOR回路はα8演算回路、シフトレジスタBに繋がるXORはα24演算回路、シフトレジスタCに繋がるXORはα16演算回路を構成する。レジスタAの入力をAA0,AA1,…,AA12、出力をA0,A1,…,A12、レジスタBの入力をBB0,BB1,…,BB12、出力をB0,B1,…,B12、レジスタCの入力をCC0,CC1,…,CC12、出力をC0,C1,…,C12とすると、これらのα8,α16,α24演算回路では、それぞれ数55,数56及び数57の演算を行う。
[Formula 54]
σ (Z) = σ 0 + σ 1 × Z 8 + σ 2 × Z 16 + σ 3 × Z 24
Thus, error detection is performed at the same time every 8 bits by 8 bits. That is, error detection is performed on I / O0 of the output data for 8 I / O, and if there is an error, σ = 0. As a result of the operation shown in FIG. 16, the shift of the arithmetic logic circuit 131, in which σ 1 , σ 3 , σ 2 , and σ 0 are given as initial values to the 13-bit shift registers A, B, C, and R, respectively. XOR circuit alpha 8 calculation circuit connected to the register a, XOR is alpha 24 calculation circuit connected to the shift register B, the XOR lead to shift register C constituting the alpha 16 arithmetic circuits. Register AA0, AA1, ..., A12, output A0, A1, ..., A12, register B input BB0, BB1, ..., BB12, output B0, B1, ..., B12, register C input Are CC0, CC1,..., CC12, and outputs are C0, C1,..., C12, and these α 8 , α 16 , α 24 arithmetic circuits perform arithmetic operations of 55, 56 and 57, respectively.

図18は、ローケータ141の具体的な構成を示す回路図である。ローケータ141は、XOR回路161とNOR回路162とからなり、σ(Z)を計算し、I/O0(j=0〜7)にエラーがある(σ= 0)とHを出力する。これにより、図9のデータ反転回路134で、このときのページバッファ1020のデータ記憶回路121のデータが反転されて出力される。 FIG. 18 is a circuit diagram showing a specific configuration of locator 141. Locator 141 consists XOR circuits 1 61 and NOR circuit 162. calculates the sigma (Z), and outputs the H and there is an error in the I / O0 (j = 0~7) (σ = 0). Thus, the data inversion circuit 134 of FIG. 9, the data of the data storage circuit 121 of the page buffer 102 0 at this time is output after being inverted.

一方、I/O1のデータに関しては、σ(Z)のσ1の項がZ倍、σ2の項がZ2倍、σ3の項がZ3倍された値なので、図15に示すように、σ1の項×Xを、σ2の項に×X2、σ3の項に×X3を演算する演算回路1421を搭載させ、その出力を、誤り位置多項式を解くためにローケータ1411に供給する。誤りが検出される(σ= 0)と、出力がHとなる。これらのX演算回路、X2演算回路、X3演算回路の入力をX0〜X12、出力Y0〜Y12とすると、これら演算回路は、次のような演算を実行する。これら演算回路には、データを記憶するためのレジスタは必要はない。 On the other hand, for the I / O1 data, the σ 1 term of σ (Z) is Z times, the σ 2 term is Z 2 times, and the σ 3 term is Z 3 times. Is equipped with an arithmetic circuit 142 1 for calculating the term σ 1 × X, the term σ 2 × X 2 , and the term σ 3 × X 3, and outputs the locator to solve the error locator polynomial. 141 1 is supplied. When an error is detected (σ = 0), the output becomes H. These X arithmetic circuit, X 2 arithmetic circuit, X 3 the input of the arithmetic circuit X0~X12, when an output Y0~Y12, these arithmetic circuit performs the following operation. These arithmetic circuits do not need a register for storing data.

次に、I/O2のデータに関しては、σ(Z)のσ1の項がZ2倍、σ2の項がZ4倍、σ3の項がZ6倍された値であるが、I/O0を基準としてσ1の項×X2を、σ2の項に×X4、σ3の項に×X6を演算する演算回路を搭載させると、X6など大きな倍数の演算回路の回路規模が大きくなってしまう。このため、この実施形態では、演算回路1421の出力を再度、×X、×X2、×X3させる演算回路1411を設ける。以下、同様にしてI/O7のデータまで演算回路1427を配置する。 Next, regarding the I / O2 data, the σ 1 term of σ (Z) is a value obtained by multiplying Z 2 times, the σ 2 term is Z 4 times, and the σ 3 term is Z 6 times. When an arithmetic circuit that calculates the term σ 1 × X 2 on the basis of / O 0, the term σ 2 × X 4 , and the term σ 3 × X 6 is installed, the arithmetic circuit of a large multiple such as X 6 The circuit scale becomes large. For this reason, in this embodiment, an arithmetic circuit 141 1 is provided that causes the output of the arithmetic circuit 142 1 to be again XX, × X 2 , and XX 3 . In the same manner to place the arithmetic circuit 142 7 until the data of I / O7.

もし、I/O7までの信号伝搬遅延時間が問題となる場合には、図19に示すように、誤り位置検出回路(第2の演算部)133を構成する8つのローケータ141を演算用ロジック回路131の両側に4つずつ分割して配置することにより、ローケータ141までの信号伝搬路を1/2にすれば良い。   If the signal propagation delay time up to I / O 7 becomes a problem, as shown in FIG. 19, the eight locators 141 constituting the error position detection circuit (second arithmetic unit) 133 are connected to an arithmetic logic circuit. It is only necessary to halve the signal propagation path to the locator 141 by dividing it into four on both sides of 131.

図20は、このECC回路103の復号時のタイミングチャートである。同図(a)は、誤り位置多項式の項を全て計算してからデータの読み出しと誤り訂正とを行う場合を示している。   FIG. 20 is a timing chart when the ECC circuit 103 is decoded. FIG. 4A shows a case where data reading and error correction are performed after all the terms of the error position polynomial are calculated.

外部よりデータリードコマンド(00h)を入力した後、読み出すアドレス(Add)を入力することにより、READY/BUSY信号がアクティブになり、リード動作が開始される。まず、アドレスにより選択された、1ページ(528バイト)分のメモリセルMCのデータがページバッファ1020〜1027に読み出される。続いて、内部オシレータにより発振される信号に同期し、データD0〜D7が1バイトずつECC回路103に入力され、シンドロームが計算され、算出されたシンドロームS0,S1,S3,S5を用いて誤り位置多項式の項を演算する。その後、ライトイネーブル(RE)信号に同期してデータが読み出されると同時に、誤り訂正処理が実行される。この場合、ECC回路103がない場合に比べ、トータルのビジー時間の追加分は、シンドローム計算と誤り訂正用の演算子の計算時間分となり、1回のシンドローム計算に50ns、演算子の演算時間に3.6μsとすると、528×50ns+3.6μs=30μsとなる。 After inputting the data read command (00h) from the outside and inputting the address (Add) to be read, the READY / BUSY signal becomes active and the read operation is started. First, the data of the memory cell MC for one page (528 bytes) selected by the address is read to the page buffers 102 0 to 102 7 . Subsequently, in synchronization with the signal oscillated by the internal oscillator, the data D0 to D7 are input to the ECC circuit 103 byte by byte, the syndrome is calculated, and the calculated syndromes S 0 , S 1 , S 3 , S 5 are stored. To compute the term of the error locator polynomial. After that, data is read in synchronization with the write enable (RE) signal, and at the same time, error correction processing is executed. In this case, compared to the case where the ECC circuit 103 is not provided, the additional amount of the busy time is calculated for the syndrome calculation and the error correction operator, which is 50 ns for one syndrome calculation and the operator calculation time. Assuming 3.6 μs, 528 × 50 ns + 3.6 μs = 30 μs.

同図(b)は、データの読み出しと同時にシンドロームS0,S1,S3,S5を計算するようにした例で、上記と同様にリード動作が開始され、1ページ(528バイト)分のメモリセルMCのデータがページバッファ1020〜1027に読み出されると、RE信号に同期してページバッファ1020〜1027からデータD0〜D7が1バイトずつ出力されると共にECC回路103でシンドローム計算が実行される。もし、シンドローム計算の結果、エラーが検出された場合には、ステータス・フェイルコマンド(70h)がアクティブになるので、誤り訂正用の演算子が計算され、その後、再度データを出力して誤り訂正を行う。この場合、エラーが無い場合、トータルのビジー時間の追加は0となる。 FIG. 6B shows an example in which the syndromes S 0 , S 1 , S 3 , and S 5 are calculated simultaneously with the data read. The read operation is started in the same manner as described above, and one page (528 bytes) is shown. of the data of the memory cell MC is read to the page buffer 102 0-102 7, the syndrome in the ECC circuit 103 together with the data D0~D7 from the page buffer 102 0-102 7 in synchronization with the RE signal is output byte by byte Calculation is performed. If an error is detected as a result of the syndrome calculation, the status / fail command (70h) becomes active, so an operator for error correction is calculated, and then the data is output again to correct the error. Do. In this case, if there is no error, the addition of the total busy time is zero.

ところで、情報ビットを528ビットとしたときと、情報ビットを4224ビットとしたときとでは、2ビット誤り訂正3ビット誤り検出をした場合、許容されるランダム不良数(デバイス不良確率が1ppmとなるときのランダム不良数)は、当然情報ビットを528ビットとしたときの方がよい。これを256Mビットの記憶容量のNAND型フラッシュメモリに適用した場合が表1となる。表1は、左側より、デバイス不良確率が1ppmとなる時の256Mヒ゛ット中のランダム不良数、1ページ当たり必要コード長、及び不良数を示している。   By the way, when the information bit is set to 528 bits and the information bit is set to 4224 bits, when 2-bit error correction and 3-bit error detection are performed, the number of allowable random defects (when the device defect probability is 1 ppm) The number of random defects) is naturally better when the information bits are 528 bits. Table 1 shows the case where this is applied to a NAND flash memory having a storage capacity of 256 Mbits. Table 1 shows, from the left side, the number of random defects in 256M bits, the required code length per page, and the number of defects when the device defect probability is 1 ppm.

表1より、情報ビット数が528ビットの2ビット訂正BCH符号では、許されるランダム不良数は100ビットであり、情報ビット数を4224ビットとすると30ビットしか許されなくなるが、3ビット訂正BCH符号で情報ビット数4224ビットでは、300ビットまでランダム不良を許し、また必要コードも40ビットと短い。更に、4ビット訂正BCH符号で情報ビット数4224ビットでは、1000ビットまでランダム不良が許容され、必要コードも53ビットと短いという効果がある。   According to Table 1, in the 2-bit corrected BCH code having the number of information bits of 528 bits, the allowable number of random defects is 100 bits. If the number of information bits is 4224 bits, only 30 bits are allowed. In the information bit number 4224 bits, random defects are allowed up to 300 bits, and the necessary code is as short as 40 bits. Furthermore, with the 4-bit corrected BCH code and the number of information bits of 4224 bits, random defects are allowed up to 1000 bits, and the necessary code is also as short as 53 bits.

[表1]
2ヒ゛ット訂正BCH符号(情報ヒ゛ット数528ヒ゛ット) 21×8=168ヒ゛ット 100ヒ゛ット
2ヒ゛ット訂正BCH符号(情報ヒ゛ット数4224ヒ゛ット) 27ヒ゛ット 30ヒ゛ット
3ヒ゛ツト訂正BCH符号(情報ヒ゛ット数4224ヒ゛ット) 40ヒ゛ット 300ヒ゛ット
4ヒ゛ット訂正BCH符号(情報ヒ゛ット数4224ヒ゛ット) 53ヒ゛ット 1000ヒ゛ット
ここで、128Mビットと512MビットのNAND型フラッシュメモリにECC回路を搭載しない場合、2ビット訂正の従来構成のECCを搭載した場合、2ビット訂正の本実施形態のECC回路を搭載した場合について、チップサイズで比較してみると、下記表2のようになる。
[Table 1]
2 bit correction BCH code (number of information bits: 528 bits) 21 x 8 = 168 bits 100 bits
2-bit correction BCH code (number of information bits: 4224 bits) 27 bits 30 bits
3-bit correction BCH code (number of information bits: 4224 bits) 40 bits 300 bits
4-bit correction BCH code (number of information bits: 4224 bits) 53 bits 1000 bits Here, when an ECC circuit is not installed in a 128-Mbit and 512-Mbit NAND flash memory, when a 2-bit correction ECC is installed, Table 2 below shows a comparison of chip sizes with the 2-bit correction ECC circuit according to this embodiment mounted.

[表2] 128M(0.16μm) 512M(0.16μm)
ECC回路無し 41.88mm2(100.0%) 136.99mm2(100.0%)
従来ECC回路 44.72mm2(106.8%) 143.96mm2(105.1%)
本実施形態ECC回路 43.21mm2(103.2%) 140.42mm2(102.5%)
このように、本実施形態に係るECC回路を搭載したフラッシュメモリでは、従来型のECC回路搭載メモリがそれぞれ6.8%(128M),5.1%(512M)のチップサイズの増加があったのに対し、本実施形態のECC回路搭載メモリは、チップサイズの増加がその半分の3.2%(128M),2.5%(512M)であった。
[Table 2] 128M (0.16μm) 512M (0.16μm)
No ECC circuit 41.88mm 2 (100.0%) 136.99mm 2 (100.0%)
Conventional ECC circuit 44.72mm 2 (106.8%) 143.96mm 2 (105.1%)
This embodiment ECC circuit 43.21mm 2 (103.2%) 140.42mm 2 (102.5%)
As described above, in the flash memory equipped with the ECC circuit according to this embodiment, the conventional ECC circuit mounted memory has an increase in chip size of 6.8% (128M) and 5.1% (512M), respectively. On the other hand, in the ECC circuit mounted memory of this embodiment, the increase in chip size was 3.2% (128M) and 2.5% (512M), half of that.

本発明の第1の実施形態に係るフラッシュメモリに搭載されるECC回路に使用される符号化器の構成を示すブロック図である。1 is a block diagram showing a configuration of an encoder used in an ECC circuit mounted on a flash memory according to a first embodiment of the present invention. 同符号化器に使用されるシフトレジスタの構成を示すブロック図である。It is a block diagram which shows the structure of the shift register used for the encoder. 同符号化器に使用されるXOR回路の真理値表である。It is a truth table of the XOR circuit used for the encoder. 同ECC回路に使用される復号器におけるシンドローム計算回路を示すブロック図である。It is a block diagram which shows the syndrome calculation circuit in the decoder used for the ECC circuit. 同復号器に使用される誤り位置検出回路を構成する第1の演算部を示すブロック図である。It is a block diagram which shows the 1st calculating part which comprises the error position detection circuit used for the decoder. 同位置検出回路を構成する第2の演算部を示すブロック図である。It is a block diagram which shows the 2nd calculating part which comprises the position detection circuit. 本発明の第2の実施形態に係るNAND型フラッシュメモリのブロック図である。FIG. 4 is a block diagram of a NAND flash memory according to a second embodiment of the present invention. 同フラッシュメモリのメモリセルエリアの構成を示す回路図である。3 is a circuit diagram showing a configuration of a memory cell area of the flash memory. FIG. 同フラッシュメモリのECC回路を示すブロック図である。It is a block diagram which shows the ECC circuit of the same flash memory. 同ECC回路における符号化時の演算用ロジック回路を構成するレジスタを示す図である。It is a figure which shows the register | resistor which comprises the logic circuit for an operation at the time of the encoding in the ECC circuit. 同符号化回路の符号化処理を示すフローチャートである。It is a flowchart which shows the encoding process of the encoding circuit. 同符号化処理のタイミングチャートである。It is a timing chart of the encoding process. 同ECC回路における復号時の演算ロジック回路を構成するレジスタを示す図である。It is a figure which shows the register | resistor which comprises the arithmetic logic circuit at the time of decoding in the ECC circuit. 同復号処理を示すフローチャートである。It is a flowchart which shows the decoding process. 同ECC回路における誤り位置検出回路のブロック図である。It is a block diagram of an error position detection circuit in the ECC circuit. 同誤り位置検出回路における誤り位置多項式の各項の算出アルゴリズムを示すフローチャートである。It is a flowchart which shows the calculation algorithm of each term of an error position polynomial in the error position detection circuit. 同ECC回路におけるガロア演算回路のブロック図である。It is a block diagram of a Galois arithmetic circuit in the ECC circuit. 同誤り位置検出回路の第2の演算部を示す図である。It is a figure which shows the 2nd calculating part of the error position detection circuit. 同ECC回路における誤り位置検出回路の他の例を示すブロック図である。It is a block diagram which shows the other example of the error position detection circuit in the same ECC circuit. 同ECC回路における復号処理のタイミングチャートである。It is a timing chart of the decoding process in the ECC circuit. 従来のECC回路を搭載したNAND型フラッシュメモリの構成を示すブロック図である。It is a block diagram which shows the structure of the NAND type flash memory carrying the conventional ECC circuit. 従来のECC回路における符号化器の構成を示すブロック図である。It is a block diagram which shows the structure of the encoder in the conventional ECC circuit. 従来のECC回路の復号器におけるシンドローム計算回路を示すブロック図である。It is a block diagram which shows the syndrome calculation circuit in the decoder of the conventional ECC circuit. 従来のECC回路の復号アルゴリズムを示すフローチャートである。It is a flowchart which shows the decoding algorithm of the conventional ECC circuit. 従来のECC回路の誤り位置検出回路の第1の演算部を示すブロック図である。It is a block diagram which shows the 1st calculating part of the error position detection circuit of the conventional ECC circuit. 従来のECC回路の誤り位置検出回路の第2の演算部を示すブロック図である。It is a block diagram which shows the 2nd calculating part of the error position detection circuit of the conventional ECC circuit.

符号の説明Explanation of symbols

0〜17,1010〜1017・・・メモリセルエリア
0〜27,1020〜1027ページバッファ
0〜37,103…ECC回路
0〜47,1040〜1047,105…I/O端子
10,50…符号化器
20,60…S1シンドローム計算回路
30,70…S3シンドローム計算回路
40,80,133…誤り位置検出回路
40a,80a…第1の演算部
40b,80b…第2の演算部
131…演算用ロジック回路、
132…ガロア演算回路
134…データ反転回路
1 0-1 7, 101 0-101 7 ... memory cell area 2 0-2 7, 102 0-102 7 page buffer 3 0 ~3 7, 103 ... ECC circuit 4 0-4 7, 104 0-104 7 , 105 ... I / O terminals 10, 50 ... encoder 20, 60 ... S 1 syndrome calculation circuit 30, 70 ... S 3 syndrome calculation circuit 40, 80, 133 ... error position detection circuit 40 a, 80 a ... first Arithmetic units 40b, 80b ... second arithmetic unit 131 ... logic circuit for calculation,
132 ... Galois arithmetic circuit 134 ... Data inversion circuit

Claims (9)

複数のメモリセルがマトリクス配列された複数のメモリセルエリアと、
前記複数のメモリセルエリアに書き込むデータに対して誤り訂正用の検査ビットを生成して付加する符号化器及び前記生成された検査ビットを使用して前記複数のメモリセルエリアから読み出されたデータに対して誤り訂正処理を行う復号器を備えた誤り訂正回路と
を備えた半導体装置において、
前記誤り訂正回路は、複数の前記メモリセルエリアのうち、N個(Nは自然数)のメモリセルエリアに亘るk=b×cビット(cは2以上の整数)の情報ビットのうち次数を順番に異ならせたcビットのデータを並列に入力し、b回のシフト動作で内部に1つのhビット(hは2以上の整数)の検査ビットを生成し、(k+h)ビットのデータを同時に書き込み及び読出しを行う単位とし、
前記複数のメモリセルエリアは、前記誤り訂正回路のシフト動作に同期してcビットずつ出力された前記データと、前記b回のシフト動作が終了したのちに出力された前記検査ビットとをページ単位として記憶している
ことを特徴とする半導体装置。
A plurality of memory cell areas in which a plurality of memory cells are arranged in a matrix; and
An encoder that generates and adds check bits for error correction to data to be written to the plurality of memory cell areas, and data read from the plurality of memory cell areas using the generated check bits In a semiconductor device provided with an error correction circuit including a decoder that performs error correction processing on
The error correction circuit sequentially orders the order of k = b × c bits (c is an integer of 2 or more) of information bits over N (N is a natural number) memory cell areas among the plurality of memory cell areas. C bits of data that are different from each other are input in parallel, one h bit (h is an integer of 2 or more) is generated internally by b shift operations, and (k + h) bits of data are written simultaneously. And a unit for reading ,
In the plurality of memory cell areas, the data output in units of c bits in synchronization with the shift operation of the error correction circuit and the check bits output after the b-th shift operation is completed in page units. As a semiconductor device.
N=cであることを特徴とする請求項1記載の半導体装置。   2. The semiconductor device according to claim 1, wherein N = c. 前記復号器は、前記情報ビットと検査ビットとを入力してシンドロームを計算するシンドローム計算回路と、
前記計算されたシンドロームから誤り位置多項式の項を計算する第1の演算部及び計算された誤り多項式の項から誤り位置多項式を算出して誤り位置を検出する第2の演算部からなる誤り位置検出回路と、
前記メモリセルエリアから読み出されたデータに対して前記検出された誤り位置でデータ反転処理を施すデータ反転回路と
を備えた
ことを特徴とする請求項1記載の半導体装置。
The decoder inputs a syndrome bit and calculates a syndrome by inputting the information bit and the check bit;
Error position detection comprising a first calculation unit for calculating an error locator polynomial term from the calculated syndrome and a second calculation unit for calculating an error locator polynomial from the calculated error polynomial term and detecting an error position Circuit,
The semiconductor device according to claim 1, further comprising: a data inversion circuit that performs data inversion processing on the data read from the memory cell area at the detected error position.
前記符号化器、シンドローム計算回路及び第1の演算部は、演算用ロジック回路を構成するレジスタと演算回路とを切り替えて構成されるものであることを特徴とする請求項3記載の半導体装置。   4. The semiconductor device according to claim 3, wherein the encoder, the syndrome calculation circuit, and the first arithmetic unit are configured by switching between a register and an arithmetic circuit constituting the arithmetic logic circuit. 前記シンドローム又は誤り位置多項式の項を計算する際に使用されるガロア演算回路を更に含むことを特徴とする請求項3記載の半導体装置。   4. The semiconductor device according to claim 3, further comprising a Galois arithmetic circuit used when calculating a term of the syndrome or error locator polynomial. 複数のメモリセルがマトリクス配列された複数のメモリセルエリアと、
前記複数のメモリセルエリアに書き込むデータに対して誤り訂正用の検査ビットを生成して付加する符号化器を含む誤り訂正回路と
を備えた半導体装置において、
前記符号化器は、複数の前記メモリセルエリアのうち、N個(Nは自然数)のメモリセルエリアに亘るk=b×aビット(aは2以上の整数)の情報ビットのデータに対し1つのhビット(hは2以上の整数)の検査ビットを付加すると共に、前記符号化器には、次数を順番に異ならせたaビットのデータを並列に入力し、b回のシフト動作で内部に前記検査ビットを生成し、
前記複数のメモリセルエリアは、前記誤り訂正回路のシフト動作に同期してaビットずつロードされた前記データと、前記b回のシフト動作が終了したのちにロードされた前記検査ビットとをページ単位の書き込み動作で記憶する
ことを特徴とする半導体装置。
A plurality of memory cell areas in which a plurality of memory cells are arranged in a matrix; and
In a semiconductor device comprising: an error correction circuit including an encoder that generates and adds a check bit for error correction to data to be written to the plurality of memory cell areas;
The encoder is 1 for data of information bits of k = b × a bits (a is an integer of 2 or more) over N (N is a natural number) memory cell areas among the plurality of memory cell areas. A check bit of two h bits (h is an integer of 2 or more) is added, and a-bit data having different orders in order is input in parallel to the encoder, and an internal operation is performed by b shift operations. Generating the check bit ,
In the plurality of memory cell areas, the data loaded bit by bit in synchronism with the shift operation of the error correction circuit and the check bit loaded after the b-th shift operation is completed are page units. A semiconductor device which stores data by a write operation .
N=aであることを特徴とする請求項6記載の半導体装置。   7. The semiconductor device according to claim 6, wherein N = a. 前記第2の演算部は、複数個のローケータと、前記ローケータ間に繋がる複数個の演算器により構成され、
前記第1の演算部は、前記第2の演算部と複数本のバスにより接続されている
ことを特徴とする請求項3記載の半導体装置。
The second arithmetic unit is composed of a plurality of locators and a plurality of arithmetic units connected between the locators,
It said first operation unit, according to claim 3 Symbol mounting semiconductor device, characterized in that it is connected by the second arithmetic unit and a plurality of buses.
前記第2の演算部は、前記第1の演算部の両側に分割して配置されることを特徴とする請求項3記載の半導体装置。 It said second operation unit, according to claim 3 Symbol mounting semiconductor device characterized in that it is arranged by dividing both sides of the first arithmetic unit.
JP2006126365A 2006-04-28 2006-04-28 Semiconductor device Expired - Lifetime JP4113225B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006126365A JP4113225B2 (en) 2006-04-28 2006-04-28 Semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006126365A JP4113225B2 (en) 2006-04-28 2006-04-28 Semiconductor device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001356571A Division JP4112849B2 (en) 2001-11-21 2001-11-21 Semiconductor memory device

Publications (2)

Publication Number Publication Date
JP2006209969A JP2006209969A (en) 2006-08-10
JP4113225B2 true JP4113225B2 (en) 2008-07-09

Family

ID=36966590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006126365A Expired - Lifetime JP4113225B2 (en) 2006-04-28 2006-04-28 Semiconductor device

Country Status (1)

Country Link
JP (1) JP4113225B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7719919B2 (en) 2007-03-20 2010-05-18 Kabushiki Kaisha Toshiba Semiconductor memory device in which word lines are driven from either side of memory cell array
JP5036416B2 (en) * 2007-06-15 2012-09-26 トヨタ自動車株式会社 Power supply system, vehicle equipped with the same, and charge / discharge control method
JP6131207B2 (en) 2014-03-14 2017-05-17 ウィンボンド エレクトロニクス コーポレーション Semiconductor memory device

Also Published As

Publication number Publication date
JP2006209969A (en) 2006-08-10

Similar Documents

Publication Publication Date Title
JP4112849B2 (en) Semiconductor memory device
JP4856110B2 (en) Chain search apparatus and chain search method
KR930003997B1 (en) Method and apparatus for decoding error correction code
US8069389B2 (en) Error correction circuit and method, and semiconductor memory device including the circuit
JP3272903B2 (en) Error correction detection circuit and semiconductor memory device
US8990667B2 (en) Error check and correction circuit, method, and memory device
US20090319863A1 (en) Error-correcting system of semiconductor memory, error-correcting method, and memory system with error-correcting system
JP2010518464A (en) Semiconductor memory device
JP4846384B2 (en) Semiconductor memory device
JP4113225B2 (en) Semiconductor device
US20030061560A1 (en) Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function
TWI479317B (en) Memory system
KR100566162B1 (en) Semiconductor memory device inputting/outputting data and parity data in burst operation
JP2001202792A (en) Error correction encoding method for semiconductor memory, and semiconductor storage device
JP2014033364A (en) Error detection and correction circuit and memory device
JP5617776B2 (en) MEMORY CIRCUIT, MEMORY DEVICE, AND MEMORY DATA ERROR CORRECTION METHOD
JP2007328894A (en) Semiconductor storage device, and method of inspecting thereof
KR100377490B1 (en) Nonvolatile semiconductor memory device
US11831335B2 (en) Memory system and control method of controlling nonvolatile memory
JP2002544622A (en) Error correction circuit and method for storage device
US20140245101A1 (en) Semiconductor memory
JPS58222497A (en) Microprogram controller
JPS60163300A (en) Semiconductor memory having error correcting function
JP2023034442A (en) Semiconductor storage
JP3600562B2 (en) Semiconductor storage device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071029

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080225

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080317

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080410

R151 Written notification of patent or utility model registration

Ref document number: 4113225

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110418

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130418

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140418

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term