JP2003157697A - 半導体記憶装置 - Google Patents

半導体記憶装置

Info

Publication number
JP2003157697A
JP2003157697A JP2001356571A JP2001356571A JP2003157697A JP 2003157697 A JP2003157697 A JP 2003157697A JP 2001356571 A JP2001356571 A JP 2001356571A JP 2001356571 A JP2001356571 A JP 2001356571A JP 2003157697 A JP2003157697 A JP 2003157697A
Authority
JP
Japan
Prior art keywords
circuit
data
bit
bits
error
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.)
Granted
Application number
JP2001356571A
Other languages
English (en)
Other versions
JP4112849B2 (ja
Inventor
Noboru Shibata
昇 柴田
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 JP2001356571A priority Critical patent/JP4112849B2/ja
Priority to US10/292,397 priority patent/US7076722B2/en
Publication of JP2003157697A publication Critical patent/JP2003157697A/ja
Priority to US11/414,826 priority patent/US7644342B2/en
Application granted granted Critical
Publication of JP4112849B2 publication Critical patent/JP4112849B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 【課題】 情報ビット数に対する検査ビット数を削減し
てチップの集積度を向上させる。 【解決手段】 I/O端子1040〜1047とページバ
ッファ1020〜1027との間に、複数のメモリセルエ
リア1010〜1017に書き込むデータに対して誤り訂
正用の検査ビットECCを生成して付加する符号化器及
び生成された検査ビットECCを使用してメモリセルエ
リア1010〜1017から読み出されたデータに対して
誤り訂正処理を行う復号器を備えたECC回路103と
を備える。ECC回路103は、1つのメモリセルエリ
ア101jに対する書き込み及び読み出しの単位となる
528ビットの8倍の4224ビットを情報ビット長と
して1つの40ビットの検査ビットECCを割り当て、
符号化処理及び復号処理を8ビットで並列に実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、NAND型フラッ
シュメモリ等の半導体記憶装置に係り、特に、チップ内
に誤り訂正機能を持たせた半導体記憶装置に関する。
【0002】
【従来の技術】NAND型フラッシュメモリは、書き換
えを繰り返すとセルの特性が劣化すること、及び長時間
放置するとデータ化けすることが知られている。したが
って、この種のNAND型フラッシュメモリの信頼性を
上げるため、従来より、チップ内に誤り検出訂正用のE
CC(Error Correcting Code)回路を搭載した半導体
メモリが提案されている(例えば特開平2000−34
8497号、特開平2001−14888号等)。
【0003】図21は、ECC回路を搭載した従来のN
AND型フラッシュメモリの構成を簡略的に示すブロッ
ク図である。このメモリは、8つのメモリセルエリア1
0,11,…,17から構成されている。各メモリセルエ
リア10〜17は、マトリクス状に配列された図示しない
複数のメモリセルからなり、共通のワード線に接続され
た528個のメモリセルに対して528本のビット線を
介して528ビットのデータ(=1ページ)を一括して
書き込み及び読み出しができるようになっている。各メ
モリセルエリア10〜17には、528ビットの書き込み
データ及び読み出しデータを保持するページバッファ2
0〜27が接続されている。ページバッファ20〜27と、
各メモリセルエリア10〜17毎に設けられたI/O端子
0〜47との間には、各メモリセルエリア10〜17毎に
ECC回路30〜37がそれぞれ設けられている。
【0004】各ECC回路30〜37は、各メモリセルエ
リア10〜17に記憶される1ページ分(528ビット)
の情報ビットに対し、所定ビット数の検査ビット(EC
C)を付加する符号化機能と、検査ビットが付加された
情報ビットから所定ビット数の誤り検出及び誤り訂正を
行う復号機能とを備えたもので、誤り訂正符号として、
例えば比較的少ない回路規模で複数ビットの誤り訂正が
可能なBCH(Bose-Chaudhuri-Hocquenghem)符号が使
用されている。外部とメモリとの間は、例えばメモリセ
ル数に対応する8ビット単位でデータがリード・ライト
される。従って、各ECC回路30〜37には、1ビット
ずつデータが入力され、内部の巡回型シフトレジスタを
1ビットずつ巡回し、1ビットずつ出力することで、符
号化処理及び復号処理が実行される。
【0005】次に、BCH符号を利用した従来のECC
回路30〜37の符号化及び復号動作ついて説明する。な
お、情報ビット数528ビットで、2ビット誤り訂正3
ビット誤り検出を行うBCH符号の検査ビット数は21
ビットになるが、ここでは説明を簡単にするため、情報
ビット数k=7、符号長n=15、訂正ビット数t=2
の2ビット誤り訂正3ビット誤り検出が可能なBCH符
号を用いた誤り検出・訂正方式を例にとり説明する。こ
の場合の符号化、復号化に必要な生成多項式は以下のよ
うになることが一般に知られている。
【0006】
【数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
【0007】(1)符号化回路 図22は、従来のECC回路3i(i=0,1,…,又
は7)の内部に機能的に構成される符号化回路10を示
すブロック図である。この符号化回路10は、レジスタ
7,D6,D5,D4,D3,D2,D1,D0からなるシフ
トレジスタ11と、モジュロ2の演算を行うXOR回路
121,122,123,124と、切替スイッチSW1,
SW2とから構成されている。
【0008】シフトレジスタ11を1回動かす動作は、
シフトレジスタ11の値をそれぞれX倍することに相当
する。いま、シフトレジスタ11に格納されたデータの
値を、次のように表す。
【0009】
【数2】a00+a11+a22+a33+a44+a
55+a66+a77 [但しaiはレジスタDiに格納された値でai=0又は
1(i=0〜7)]
【0010】これを1回シフトすることにより、
【0011】
【数3】a01+a12+a23+a34+a45+a
56+a67+a78
【0012】となる。数1の生成多項式G(x)よりX
8=X7+X6+X4+1の関係があるため、数3は、
【0013】
【数4】a70+a01+a12+a23+(a3
7)X4+a45+(a5+a7)X6+(a6+a7)X7
【0014】のように表せる。これは各ビットをシフト
させた際に、レジスタD7の値a7をレジスタD0に格納
し、レジスタD3,D7の値a3,a7をXOR回路121
で足し込んでレジスタD4に格納し、レジスタD5,D7
の値a5+a7をXOR回路122で足し込んでレジスタ
6に格納し、レジスタD6,D7の値a6+a7をXOR
回路123で足し込んでレジスタD7に格納することに相
当する。
【0015】符号化時には、まず、スイッチSW1,S
W2がON側に接続され、I/O端子4iを介して外部
から入力データ(情報ビット)I0,I1,I2,I3,I
4,I5,I6(I0〜I6=0又は1)が1ビットずつ入
力される。入力データI0〜I6が1ビット入力される毎
に、シフトレジスタ11が1回動作する。データI0
6が入力されている間はスイッチSW1はONである
ため、これらのデータがそのまま1ビットずつページバ
ッファ2iに出力される。同時に、データI0〜I6は、
XOR回路121でレジスタD7の値a7と足し込まれ、
順次シフトレジスタ11に格納されていく。データI0
〜I6のページバッファ2iへの入力が終了すると、シ
フトレジスタ11のレジスタD7,D6,D5,D4
3,D2,D1,D0の内部には検査ビットI7,I8,I
9,I10,I11,I12,I13,I14がそれぞれ格納され
た状態となる。その後、スイッチSW1,SW2は共に
OFF側に接続され、シフトレジスタ11が動作する毎
に、スイッチSW1を介して、検査ビットI7〜I14
ページバッファ2iにシリアルに出力される。そして、
ページバッファ2iに格納された情報ビットと検査ビッ
トとがメモリセルエリア1iに記憶される。同時に、シ
フトレジスタ11の値はリセットされる。
【0016】(2)復号回路 次に、復号回路について説明する。復号回路は、シンド
ローム計算回路と、誤り位置検出回路とから構成され
る。2ビット誤り訂正の場合、復号に際して2つのシン
ドロームS1,S3が必要であり、これらは最小多項式M
1(x)=X4+X+1により求められることが知られて
いる。図23(a)は、従来のS1シンドローム計算回
路20を具体的に表した図、同図(b)は、従来のS3
シンドローム計算回路30を示す図である。
【0017】同図(a)のS1シンドローム計算回路2
0は、最小多項式M1(x)に基づき、レジスタD3,D
2,D1,D0からなるシフトレジスタ21とXOR回路
221,222とにより構成されている。ここでシフトレ
ジスタ21を1回動かす動作はシフトレジスタ21の値
をX倍することに相当する。いま、シフトレジスタ21
に格納された値を、次のように表す。
【0018】
【数5】a00+a11+a22+a33 [但しaiはレジスタDiに格納された値でai=0又は
1(i=0〜3)]
【0019】これを1回シフトすることにより
【0020】
【数6】a01+a12+a23+a34
【0021】となるが、αの最小多項式M1(x)より
4=X+1の関係があるため、
【0022】
【数7】 a30+(a0+a3)X1+a12+a23
【0023】となる。これは、各ビットをシフトさせた
際に、レジスタD3の値a3をレジスタD0に格納し、レ
ジスタD0,D3の値a0,a3をXOR回路122で足し
込んでレジスタD1に格納することに相当する。メモリ
セルに記憶された情報ビットI0〜I6と検査ビットI7
〜I14とは、この順にS1シンドローム計算回路20に
1ビットずつ入力され、1ビット入力される毎に、シフ
トレジスタ21が1回動作する。全てのビットI0〜I
14が入力されたらシフトレジスタ21(D0〜D3)にシ
ンドロームS1が生成される。
【0024】図23(b)のS3シンドローム計算回路
30も、S1シンドローム計算回路20と同様にD3,D
2,D1,D0からなるシフトレジスタ31及びXOR回
路32 1,322,323,324からなり、最小多項式M
1(x)のX3回路により構成されている。S3シンドロ
ーム計算回路30では、シフトレジスタ31を1回動か
す動作はシフトレジスタ31の値をX3倍することに相
当する。いま、シフトレジスタ31に格納された値を数
5のように表し、これをX3すると、
【0025】
【数8】a03+a14+a25+a36
【0026】となるが、αの最小多項式M1(x)より
4=X+1の関係があるため、
【0027】
【数9】a10+(a1+a2)X1+(a2+a3)X2
(a0+a3)X3
【0028】となる。これは、各ビットをシフトさせた
際に、レジスタD1の値a1をレジスタD0に格納し、レ
ジスタD1,D2の値a1,a2をXOR回路322で足し
込んでレジスタD1に格納し、レジスタD2,D3の値
2,a3をXOR回路323で足し込んでレジスタD2
格納し、レジスタD0,D3の値a0,a3をXOR回路3
4で足し込んでレジスタD3に格納することに相当す
る。このS3シンドローム回路30にも、メモリセルに
記憶された情報ビットI0〜I6と検査ビットI7〜I14
とが、この順に1ビットずつ入力され、1ビット入力さ
れる毎に、シフトレジスタ31が1回動作する。全ての
ビットI0〜I14が入力されたらシフトレジスタ31
(D0〜D3)にシンドロームS3が生成される。
【0029】図24は、復号処理のアルゴリズムを示す
フローチャートである。まず、S1,S2シンドローム計
算回路20,30で、メモリセルエリア1iから読み出
された情報ビットと検査ビットからシンドロームS1
3を計算する(ステップS1)。シンドロームS1,S
3が、S1=S3=0の場合、エラー無しとして読み出さ
れた情報ビットがそのまま出力される(ステップS2,
S3,S4)。シンドロームS1,S3のうち、いずれか
一方のみが0のときには、訂正不能としてデータがその
まま出力される(ステップS2,S3,S5,S6,S
7)。S1≠0,S3≠0場合、計算を行ない、σ1=S1
2、σ2=S1 3+S3を求める(ステップS2,S6,S
8)。ここでσ2=0の場合(ステップS9)、1ビッ
トエラーがあることが分かるので、1ビット訂正して出
力する(ステップS10)。σ2≠0の場合(ステップ
S9)、2ビットエラーがあることが分かるので、2ビ
ット訂正して出力する(ステップS11)。
【0030】誤りビットの位置は、数10に示す誤り位
置多項式σ(Z)にZ=αI(I=0,1,2,3,
4,5,6)を順次代入することによって求められるこ
とが一般に知られている。σ(αI)=0となったiが
誤りの位置である。
【0031】
【数10】σ(Z)=S1+σ1×Z+σ2×Z2
【0032】このような点に基づき構成された誤り位置
検出回路の構成を図25及び図26に示す。図25は、
1、σ1及びσ2を計算すると共に格納する第1の演算
部40aを示し、図26は、第1の演算部40aの演算
結果に基づいて数10の演算を行ってデータの誤り位置
を示す検出信号を出力する第2の演算部40bを示して
いる。第1の演算部40aは、図25に示すようにシフ
トレジスタ41、X演算回路42及びX2演算回路43
により構成されている。シフトレジスタ41aには、シ
ンドロームS1が格納され、シフトレジスタ42a,4
3aにはσ1=S 1 2、σ2=S1 3+S3の演算結果が格納
される。ここでシフトレジスタ42aの値を、
【0033】
【数11】a00+a11+a22+a33 [但しaiはレジスタDiに格納された値でai=0又は
1(i=0〜3)]
【0034】とすると、X演算回路42は、これをX倍
するので、シフトレジスタ42aの値は、
【0035】
【数12】a01+a12+a23+a34
【0036】となるが、αの最小多項式M1(x)より
4=X+1の関係があるため、数12は、
【0037】
【数13】 a30+(a0+a3)X1+a12+a23
【0038】となる。これは、各ビットをシフトさせた
際に、レジスタD3の値a3をレジスタD0に格納し、レ
ジスタD0,D3の値a0,a3をXOR回路42bで足し
込んでレジスタD1に格納することに相当する。
【0039】また、X2演算回路43は、シフトレジス
タ43aの値をX2倍するので、シフトレジスタ43a
の値に数11で示す値が格納されているとすると、これ
をX2倍することにより、シフトレジスタ43aの値
は、
【0040】
【数14】a02+a13+a24+a35
【0041】となるが、αの最小多項式M1(x)より
4=X+1の関係があるため、数14は、
【0042】
【数15】 a20+(a2+a3)X1+(a0+a3)X2+a13
【0043】となる。これは、各ビットをシフトさせた
際に、レジスタE2の値a2をレジスタE0に格納し、レ
ジスタE1の値a1をレジスタE3に格納し、レジスタ
2,E3の値a2,a3をXOR回路43b1で足し込ん
でレジスタE1に格納し、レジスタE 0,E3の値a0,a
3をXOR回路43b2で足し込んでレジスタE2に格納
することに相当する。
【0044】1ビットのデータI0〜I6の出力時、シフ
トレジスタ41a,42a,43aを1回動作させるこ
とにより、X演算回路42では、σ1の項がZ倍され、
2演算回路43では、σ2の項がZ2倍ずつされる。N
AND型フラッシュメモリでは、メモリセルに記憶され
た情報ビットをチップの外部に出力する際のトグル信号
に同期させてシフトレジスタ41a,42a,43aを
動かす。これにより、第2の演算部40bでは、XOR
回路44とNORゲート45とで演算された結果の出力
が、誤り位置となったところで1となり、この出力で対
応するデータIiを反転させることにより誤り検出訂正
が行われる。
【0045】
【発明が解決しようとする課題】このように、BCH符
号を用いた従来のECC回路では、1ビットの入力に対
し1回のシフト及び計算が基本動作となる。NAND型
フラッシュメモリでは、1つのアドレスに対して8IO
又は16IO等の単位で外部よりデータが並列に入力さ
れるため、各IO毎に誤り訂正させるか、この一度の入
力の間に8又は16回の計算を行なわなくてはならな
い。しかし、一度の入力の間に8又は16回の計算行な
うことは、この部分のみ高速で動作させることを意味
し、特別なプロセスなどが必要なため、現実には行なえ
ない。
【0046】そこで従来は、各メモリセルエリア1i
(各I/O)毎にECC回路3iを設けて各メモリセル
エリア1i単位で誤り訂正を行うようにしている。この
場合、NAND型フラッシュメモリでは、1ページ(5
28バイト)単位でデータをリードしたり、プログラム
したりするので、各I/O毎に2ビット誤り訂正3ビッ
ト誤り検出をすると、情報ビット数は528ビット、検
査ビット数は21ビットとなり、チップ全体で合計21
×8=168ビットの余分な検査ビットが必要になる。
これがチップの集積度を高める際の阻害要因となってい
た。
【0047】本発明は、このような問題点に鑑みなされ
たもので、情報ビット数に対する検査ビット数を削減し
てチップの集積度を向上させることができる半導体記憶
装置を提供することを目的とする。
【0048】
【課題を解決するための手段】本発明は、複数のメモリ
セルがマトリクス配列された複数のメモリセルエリア
と、各メモリセルエリアのデータ入出力部に設けられて
前記メモリセルエリアへの書き込みデータ及び前記メモ
リセルエリアからの読み出しデータを一時格納する複数
のバッファと、前記各メモリセルエリアへの書き込み用
のデータを外部から入力すると共に前記各メモリセルエ
リアから読み出されたデータを外部に出力する複数の入
出力端子と、前記複数の入出力端子と前記複数のバッフ
ァとの間に設けられて前記複数のメモリセルエリアに書
き込むデータに対して誤り訂正用の検査ビットを生成し
て付加する符号化器及び前記生成された検査ビットを使
用して前記複数のメモリセルエリアから読み出されたデ
ータに対して誤り訂正処理を行う復号器を備えた誤り訂
正回路とを備えた半導体記憶装置において、前記誤り訂
正回路は、1つの前記メモリセルエリアに対する書き込
み及び読み出しの単位となるデータのビット数をMとし
たとき、M×Nビット(Nは2以上の整数)を情報ビッ
ト長として1つの検査ビットを割り当て、符号化処理及
び復号処理の少なくとも一方をNビットのデータを並列
に処理して実行するものであることを特徴とすることを
特徴とする。
【0049】本発明によれば、従来、各メモリセルエリ
アに対するアクセスの単位であるMビット毎に情報ビッ
トを生成していたのに対し、Nビットの並列処理が可能
になったことにより、M×Nビットに対して1つの検査
ビットを割り当てることが可能になり、トータル的な情
報ビットに対する検査ビット数を削減することができ
る。これにより、誤り訂正回路を搭載しつつチップの集
積度を向上させることができる一例を挙げると、tビッ
ト訂正(t+1)ビット誤り検出BCH符号では、
【0050】
【数16】符号長 n=2m−1 情報ビット数 k≦2m−1−m×t 検査ビット数 mt+1≦n−k 訂正ビット数 t
【0051】の関係があるため、mの数を大きくする
と、符号長及び情報ビット数は指数関数的に増加する
が、検査ビット数はそれほど増加しない。このため、情
報ビット数は、2m−1−m×tを超えない限度で大き
い方が情報ビット数に対する検査ビット数の割合が小さ
くなる。従って、できるだけ大きな情報ビット数に対
し、検査ビットを設けた方が有利である。例えば、NA
ND型フラッシュメモリは、1ページ(528バイト)
でリードしたり、プログラムするが、各IO毎(メモリ
セルエリア毎)に2ビット誤り訂正3ビット誤り検出を
すると、情報ビット数はk=528ビット、検査ビット
数は21ビットとなるため、合計21×8=168ビッ
トの余分な検査ビットが必要である。しかし、1ページ
を1つの単位で、2ビット誤り訂正3ビット誤り検出を
すると、情報ビット数が4224ビットのとき、検査ビ
ット数は27ビットで良い。3ビット誤り訂正4ビット
誤り検出としても、情報ビット数が4224ビットのと
き、検査ビット数は40ビットで足りる。
【0052】本発明の一つの実施形態においては、前記
メモリセルエリアは、N個設けられている。符号化器
は、例えば情報ビット長k=M×N、符号長n、訂正ビ
ット長tで定められる生成多項式G(X)から導かれる
巡回符号を検査ビットとして生成するシフトレジスタ及
び演算回路からなり、前記シフトレジスタが、次数を順
番に異ならせたNビットのデータを並列に入力し、1回
のシフト動作で各データをXN倍し、M回のシフト動作
で内部に前記検査ビットを生成するものである。
【0053】また、復号器は、例えば前記情報ビットと
検査ビットとを入力してシンドロームを計算するシンド
ローム計算回路と、前記計算されたシンドロームから誤
り位置多項式の項を計算する第1の演算部及び計算され
た誤り多項式の項から誤り位置多項式を算出して誤り位
置を検出する第2の演算部からなる誤り位置検出回路
と、前記メモリセルエリアからバッファを介して読み出
されたデータに対して前記検出された誤り位置でデータ
反転処理を施すデータ反転回路とを備え、前記シンドロ
ーム計算回路が、情報ビット長k=M×N、符号長n、
訂正ビット長tで定められるα演算子の最小多項式M
(X)に基づく巡回符号をシンドロームとして生成する
シフトレジスタ及び演算回路からなり、前記シフトレジ
スタが、次数を順番に異ならせたNビットのデータを並
列に入力し、1回のシフト動作で各データをXKN(Kは
整数)倍し、全ての前記情報ビット及び検査ビットが入
力されることにより内部にシンドロームを生成するもの
である。
【0054】また、誤り位置検出回路は、前記第2の演
算部が、情報ビット長k=M×N、符号長n、訂正ビッ
ト長tで定められるα演算子の最小多項式M(X)に基
づく巡回符号を誤り位置多項式の項として生成するシフ
トレジスタ及び演算回路からなり、前記シフトレジスタ
が、前記メモリエリアからのデータ出力に同期してシフ
ト動作をし、各データをXK(Kは整数)倍し、順次、
誤り訂正位置を検出するものである。
【0055】前記符号化器、シンドローム計算回路及び
第1の演算部は、演算用ロジック回路を構成するレジス
タと演算回路とを切り替えて構成されるようにしても良
い。また、復号器は、シンドローム又は誤り位置多項式
の項を計算する際に使用されるガロア演算回路を更に含
むようにしても良い。更に、前記第2の演算部は、例え
ば前記Nビットのデータに対してそれぞれ設けられたN
個のローケータと、隣接するローケータ間に介挿されて
隣接するローケータへのデータをXL倍するXL演算回路
(Lは整数)とを備えたものである。
【0056】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施形態について説明する。 (1)第1の実施形態 まず、本発明を理解するため、第1の実施形態として、
情報ビット数k=7、符号長n=15、訂正ビット数t
=2の2ビット誤り訂正の例について説明する。
【0057】(1−1)符号化回路 図22に示した従来の符号化回路10に入力データI0
が符号化回路10に入力されると、この入力データI0
は、XOR回路124によって符号化回路のX7の項に足
しこまれ、その後X倍される。初期状態では符号化回路
10の各レジスタ11の値は0であるため、この値を
(0)とすると
【0058】
【数17】(0+I07)X
【0059】となる。次に入力データI1が符号化回路
10に入力されると、この入力データI1は、符号化回
路10のX7の項に足しこまれ、この後X倍されている
ので、
【0060】
【数18】((0+I07)X+I17)X となる。
【0061】次に入力データI2が符号化回路10に入
力されると、この入力データI2は、符号化回路10の
7の項に足しこまれ、この後X倍されているので、
【0062】
【数19】 (((0+I07)X+I17)X+I27)X
【0063】となる。同様に、入力データI6まで符号
化回路10に入力されると、
【0064】
【数20】(((((((0+I07)X+I17)X+I27)
X+I37)X+I47)X+I57)X+I67)X
【0065】となる。この式を変形すると
【0066】
【数21】((((0+I07+I16)X2+I27+I3
6)X2+I47+I56)X2+I67)X
【0067】となり、これは、入力データI0,I1がそ
れぞれ符号化回路10のX7,X6の項に足しこまれ、こ
の後X2倍され、次に入力データI2,I3がそれぞれが
符号化回路10のX7,X6の項に足しこまれ、この後X
2倍され、次に入力データI4,I5がそれぞれが符号化
回路10のX7,X6の項に足しこまれ、この後X2倍さ
れることを意味する。つまり2ビットの入力の後、1回
のシフトレジスタ11の動作でデータがX2倍される。
但し、最後のI6は従来通り1ビットの入力で、X倍さ
れることになる。
【0068】ここで、シフトレジスタ11の値を、数2
で示した値として、これをX2倍すると、
【0069】
【数22】a02+a13+a24+a35+a46
57+a68+a79
【0070】となるが、数1の生成多項式G(x)より
8=X7+X6+X4+1の関係があるため、数21は、
【0071】
【数23】(a6+a7)X0+a71+a02+a13
+(a2+a6+a7)X4+(a3+a7)X5+(a4+a
6+a7)X6+(a5+a6)X7
【0072】となる。
【0073】図1は数23を具体的に回路で構成した本
実施形態に係る符号化回路50の構成を示すブロック図
である。この符号化回路50は、レジスタD7,D6,D
5,D4,D3,D2,D1,D0からなるシフトレジスタ5
1と、XOR回路521,522,523,524,5
5,526,527と、入力データ及び出力データを切
り換えるための4つのスイッチSW11,SW12,S
W21,SW22とから構成されている。シフトレジス
タ51は、図2に示すように、リセット信号RSTnに
よりデータの内容がリセットされ、クロック信号CLK
に同期して入力端子INから出力端子OUTへと1ビッ
トのデータを転送する4段のトランスファーゲート51
aと、必要なゲート回路51bとから構成されている。
XOR回路52は、図3に示すように、入力端子IN
1,IN2に入力されたデータにモジュロ2の演算を施
して出力端子OUTから出力する。
【0074】この符号化回路50は、数23に基づき、
1回のシフト動作で、レジスタD6,D7の値a6,a7
XORゲート526で足し込んでレジスタD0に格納し、
レジスタD7の値a7をレジスタD1に格納し、レジスタ
0の値a0をレジスタD2に格納し、レジスタD1の値a
1をレジスタD3に格納し、レジスタD2,D6,D7の値
2,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に格納する。
【0075】メモリに書き込まれるため外部から入力さ
れた入力データ(情報ビット)I0,I1,I2,I3,I
4,I5,I6は、入力データI0,I2,I4と、入力デー
タI1,I3,I5の2つに分割され、入力データI0,I
2,I4がスイッチSW11,SW21のON側の端子に
入力され、入力データI1,I3,I5がスイッチSW1
2,SW22のON側の端子に入力されている。つまり
入力データは、2ビットづつ(I0,I1),(I2
3),(I4,I5)の順で並列に入力され、入力後に
シフトレジスタ51が1回動作する。但し、シフトレジ
スタ51は、1つおきに結線されているので、1回のシ
フト動作でデータがX2倍される。データ(I0
1),(I2,I3),(I4,I5)が入力されている
間は、スイッチSW11,SW21,SW12,SW2
2は全てONであり、これらのデータがそのまま2ビッ
トずつ並列に出力される。同時に、データI0,I2,I
4は、XOR回路527でレジスタD7の値a7と足し込ま
れ、順次シフトレジスタ51に格納され、データI1
3,I5は、XOR回路524でレジスタD7の値a7
足し込まれ、順次シフトレジスタ51に格納されてい
く。但し、入力データの最後のI6は1ビットの入力で
あるため、図22に示した従来の符号化回路10と同じ
結線状態に切り替わるようにする。このような切替を行
うのは、情報ビット数としてk=7を選択したためであ
る。データI0,I1,I2,I3,I4,I5,I6の入力
が終了すると、シフトレジスタ51のレジスタD7
6,D5,D4,D3,D2,D1,D0の内部には検査ビ
ットI7,I8,I9,I10,I11,I12,I13,I14
それぞれ格納された状態となる。その後、スイッチSW
11,SW21,SW12,SW22は全てOFF側に
接続され、シフトレジスタ51を動作させる毎に、SW
11の出力に検査ビットI7,I9,I11,I13が出力さ
れ、SW12の出力に検査ビットI8,I10,I12,I
14が出力される。同時に、シフトレジスタ51の値はリ
セットされる。これにより、2ビット入力の並列処理に
よる検査ビットの生成が可能になる。
【0076】(1−2)復号回路 S1シンドローム計算回路 図23(a)の従来のS1シンドローム計算回路20で
は、まず、S1シンドローム計算回路20内の値がX倍
された後、XOR回路221によりX0の項に入力データ
0が足しこまれる。初期状態ではS1シンドローム計算
回路20のシフトレジスタ21の値は0であるため、こ
の値を(0)とすると、
【0077】
【数24】0×X+I0
【0078】となる。次にS1シンドローム計算回路2
0内の値がX倍された後、X0の項に入力データI1が足
しこまれるので、
【0079】
【数25】(0×X+I0)X+I1
【0080】となる。続いてS1シンドローム計算回路
20内の値がX倍された後、X0の項に入力データI2
足しこまれるので、
【0081】
【数26】((0×X+I0)X+I1)X+I2
【0082】となる。このようにして入力データI14
でがS1シンドローム計算回路20に入力されると、
【0083】
【数27】(((((((((((((0×X+I0)X+I1)X+
2)X+I3)X+I4)X+I5)X+ I6)X+I7)X+
8)X+I9)X+I10)X+I11)X+I12)X+I13)X
+I14
【0084】となる。この式を変形すると、
【0085】
【数28】(((((((0×X2+I0X+I1)X2+I2X+
3)X2+I4X+I5)X2+I6X+I7)X2+I8X+I
9)X2+I10X+I11)X2+I12X+I13)X+I14
【0086】になり、これは、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
0の項に足しこまれている。
【0087】ここで、シフトレジスタ21の値を、数5
で示した値として、これをX2倍すると、
【0088】
【数29】a02+a13+a24+a35
【0089】となるが、αの最小多項式M1(x)よ
り、X4=X+1の関係があるため、
【0090】
【数30】 a20+(a2+a3)X1+(a0+a3)X2+a13
【0091】となる。
【0092】図4(a)は数30を具体的に回路で構成
した本実施形態に係るS1シンドローム計算回路60の
構成を示すブロック図である。このS1シンドローム計
算回路60は、レジスタD0,D1,D2,D3からなるシ
フトレジスタ61と、XOR回路621,622,6
3,624とから構成されている。
【0093】このS1シンドローム計算回路60は、数
30に基づき、1回のシフト動作で、レジスタD2の値
2をレジスタD0に格納し、レジスタD2,D3の値
2,a3をXOR回路622で足し込んでレジスタD1
格納し、レジスタD0,D3の値a 0,a3をXOR回路6
4で足し込んでレジスタD2に格納し、レジスタD1
値a1をレジスタD3に格納する。
【0094】図示しないメモリセルエリアから読み出さ
れた情報ビットI0,I1,I2,I3,I4,I5,I
6と、検査ビットI7,I8,I9,I10,I11,I12,I
13,I14とは、I0,I2,I4,I6,I8,I10
12,I14と、I1,I3,I5,I7,I9,I11,I13
とに分割され、S1シンドローム計算回路60に2ビッ
トづつ(I0,I1),(I2,I3),(I4,I5),…
の順で並列に入力され、入力後にシフトレジスタ61が
1回動作する。但し、シフトレジスタ61は、1つおき
に結線されているので、1回のシフト動作でデータがX
2倍される。データI0,I 2,I4,…,I14は、XOR
回路623でXOR回路622の出力a2+a3と足し込ま
れ、レジスタD1に格納され、データI1,I3,I5
…,I13は、XOR回路621でレジスタD2の値a2
足し込まれ、レジスタD0に格納される。但し、情報ビ
ットの最後のI6は1ビットの入力であるため、図23
の回路と同じ配線に切り替わる。又は、I15=0を、S
1シンドローム計算回路60に入力させ、シフト動作さ
せた後、シフトレジスタにX-1を掛ける。これにより、
2ビット入力の並列処理が可能になる。
【0095】S3シンドローム計算回路 次に、図4(b)のS3シンドローム計算回路70につ
いて説明する。図23(b)の従来のS3シンドローム
計算回路30では、まず、S3シンドローム計算回路3
0内の値がX3倍された後、XOR回路321によりX0
の項に入力データI0が足しこまれる。初期状態では、
3シンドローム計算回路30のシフトレジスタ31の
値は0であるため、この値を(0)とすると
【0096】
【数31】0×X3+I0
【0097】となる。次にS3シンドローム計算回路3
0内の値がX3倍された後、X0の項に入力データI1
足しこまれるので、
【0098】
【数32】(0×X3+I0)X3+I1
【0099】となる。続いてS3シンドローム計算回路
30内の値がX3倍された後、X0の項に入力データI2
が足しこまれるので、
【0100】
【数33】((0×X3+I0)X3+I1)X3+I2
【0101】となる。このようにして、入力データI14
までがS3シンドローム計算回路30に入力されると、
【0102】
【数34】(((((0X3+I0)X3+I1)X3+I2)X3
3)X3+I4)X3+I5)X3+I6)X3+I7)X3+I8)
3+I9)X3+I10)X3+I11)X3+I12)X3+I13)
3+I14
【0103】となる。この式を変形すると、
【0104】
【数35】(((((0×X6+I03+I1)X6+I23
3)X6+I43+I5)X6+I63+I7)X6+I83
+I9)X6+I103+I11)X6+I123+I13)X3
14
【0105】になり、これは、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の項に足しこまれている。
【0106】ここで、シフトレジスタ31の値を数5で
示した値として、これをX6倍すると、
【0107】
【数36】a06+a17+a28+a39
【0108】となるが、αの最小多項式M1(x)より
4=X+1の関係があるため、
【0109】
【数37】(a1+a2)X0+(a1+a3)X1+(a0+a2)
2+(a0+a1+a3)X3
【0110】となる。
【0111】図4(b)は数37を具体的に回路で構成
した本実施例に係るS3シンドローム計算回路70の構
成を示すブロック図である。このS3シンドローム計算
回路70は、レジスタD0,D1,D2,D3からなるシフ
トレジスタ71と、XOR回路721,722,723
724,725,726とから構成されている。
【0112】このS3シンドローム計算回路70は、数
37に基づき、1回のシフト動作で、レジスタD1,D2
の値a1,a2をXOR回路721で足し込んでレジスタ
0に格納し、レジスタD1,D3の値a1,a3をXOR
回路726で足し込んでレジスタD1に格納し、レジスタ
0,D2の値a0,a2をXOR回路724で足し込んで
レジスタD2に格納し、レジスタD0,D1,D3の値
0,a1,a3をXOR回路725,726で足し込んで
レジスタD3に格納する。
【0113】図示しないメモリセルエリアから読み出さ
れた情報ビットI0,I1,I2,I3,I4,I5,I
6と、検査ビットI7,I8,I9,I10,I11,I12,I
13,I14とは、I0,I2,I4,I6,I8,I10
12,I14と、I1,I3,I5,I7,I9,I11,I13
とに分割され、S3シンドローム計算回路70に2ビッ
トづつ(I0,I1),(I2,I3),(I4,I5),…
の順で並列に入力され、入力後シフトレジスタ71が1
回動作する。データI0,I2,I4,…,I14は、XO
R回路723でXOR回路726の出力a1+a3と足し込
まれ、レジスタD1に格納され、データI1,I3,I5
…,I13は、XOR回路722でXOR回路721の出力
1+a2と足し込まれ、レジスタD0に格納される。但
し、情報ビットの最後のI6は1ビットの入力であるた
め、図23のS3シンドローム計算回路30と同じ配線
に切り替わる。又は、I15=0を、S3シンドローム計
算回路70に入力させ、シフト動作させた後、シフトレ
ジスタにX-3を掛ける。これにより、2ビット入力の並
列処理が可能になる。
【0114】誤り位置検出回路 次に誤り位置検出回路について説明する。本実施形態の
誤り位置検出回路では、S1,S3シンドローム計算回路
60,70が1回のシフト動作で従来の2回分のシフト
動作を行うものであるから、誤り位置検出回路も、従来
の2回分のシフト動作に相当する演算を行う。いま、数
10の誤り位置多項式を、
【0115】
【数38】σ(Z)=S1+σ1×Z2+σ2×Z4
【0116】とする。図5及び図6は、数38に基づい
て構成された誤り位置検出回路の構成を示す図である。
この誤り位置検出回路80は、S1、σ1及びσ2を計算
すると共に格納する第1の演算部80a(図5)と、数
38に基づいてデータの誤り位置を検出して検出信号を
出力する第2の演算部80bとから構成されている。第
1の演算部80aは、図5に示すようにシフトレジスタ
81、X2演算回路82及びX4演算回路83により構成
されている。シフトレジスタ81aには、初期状態とし
てシンドロームS1が格納され、シフトレジスタ82
a,83aには初期状態としてσ1=S1 2、σ2=S1 3
3の演算結果が格納される。この誤り位置検出回路8
0では、出力データI0,I1,I2,I3,I4,I5,I
6のうち1つおきの出力データI0,I2,I4,I6、に
同期して、誤り検出が行なわれ、シフトレジスタ81
a,82a,83aを1回動作させることにより、X2
演算回路82ではσ1の項がZ2倍、X4演算回路83で
は、σ2の項がZ4倍ずつされる。エラーがあるとσ=0
となる。
【0117】ここで、X2演算回路82は、図25のX2
演算回路43と同一構成であり、シフトレジスタ43a
とシフトレジスタ82aとが対応し、XOR回路43b
1,43b2とXOR回路82b1,82b2とが対応する
ので、詳細な構成説明は割愛する。
【0118】X4演算回路83は、数11に示すシフト
レジスタ83aの値をX4倍するので、シフトレジスタ
83aの値は、
【0119】
【数39】a04+a15+a26+a37
【0120】となるが、αの最小多項式M1(x)より
4=X+1の関係があるため、
【0121】
【数40】(a0+a3)X0+(a0+a1+a3)X1
(a1+a2)X2+(a2+a3)X3
【0122】となる。これは、このX4演算回路83
は、数40に基づき、1回のシフト動作で、レジスタE
0,E3の値a0,a3をXOR回路83b1で足し込んで
レジスタE0に格納し、レジスタE0,E1,E3の値
0,a1,a3をXOR回路83b1,83b2で足し込
んでレジスタE1に格納し、レジスタE1,E2の値a1
2をXOR回路83b3で足し込んでレジスタE2に格
納し、レジスタE2,E3の値a2,a3をXOR回路83
4で足し込んでレジスタE3に格納する。
【0123】図6の第2の演算部80bは、出力データ
0,I2,I4,I6の誤り位置を検出する第1検出部8
4と、データI1,I3,I5の誤り位置を検出する第2
検出部85と、データI1,I3,I5に関してσ1の項を
Z倍するX演算回路86と、データI1,I3,I5に関
してσ2の項をZ2倍するX2演算回路87とからなる。
各検出部84,85のXOR回路88とNORゲート8
9とで演算された結果の出力が、誤り位置となったとこ
ろで1となり、この出力で対応するデータIiを反転さ
せることにより、1回のシフト動作で2ビット同時の並
列的な誤り位置検出が可能になる。なお、X演算回路8
6、X2演算回路87の構成は図25及び図26に示し
た従来回路と同じであるが、データを記憶するためのレ
ジスタは必要ない。
【0124】(2)第2の実施形態 図7は、チップ上にECC回路を搭載した第2の実施形
態に係るNAND型フラッシュメモリのブロック図であ
る。このメモリは、8つのメモリセルエリア1010
1011,…,1017を備えている。これらメモリセル
エリア1010〜1017に対してメモリセルエリア10
0〜1017への書き込みデータ(D0〜D7)及びメ
モリセルエリア1010〜1017からの読み出しデータ
(D0〜D7)を一時格納する8つのページバッファ1
020,1021,…,1027が設けられている。ペー
ジバッファ1020〜1027と、I/O端子1040
1041,…,1047との間には、書き込みデータに対
する誤り訂正の検査ビットECCを生成すると共に、検
査ビット(ECC)を使用して読み出しデータの誤り訂
正を行うECC回路103が設けられている。このEC
C回路103は、従来のものとは異なり、全メモリセル
エリア1010〜1017に対して1回にリード・ライト
される528ビット×8I/O=4224ビット分(M
=528,N=8)のデータを情報ビットとし、これに
共通の40ビットの検査ビットを付加して誤り検出訂正
を行う。
【0125】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は、メモリセルエリア10
0〜1011中のワード線に読み出し、書き込み又は消
去に必要な電圧を与える。
【0126】各メモリセルエリア101j(但し、j=
0〜7)は、図8に示すように、電気的書換え可能な不
揮発性メモリセルMCをマトリクス状に配列して構成さ
れている。この例では、16個のメモリセルMCが1つ
の単位として直列に接続され、一方の端のメモリセルM
Cのドレインは、選択ゲートトランジスタSG1を介し
てビット線BLに接続され、他方の端のメモリセルMC
のソースは、選択ゲートトランジスタSG2を介して共
通ソース線SLに接続されている。ロウ方向のメモリセ
ルMCの制御ゲートは、共通のワード線WLに接続さ
れ、ロウ方向の選択ゲートトランジスタSG1,SG2
のゲート電極は、共通の選択ゲート線SGL1,SGL
2に接続されている。この実施形態の場合、制御ゲート
線に沿った1056個のメモリセルMCのうち、奇数番
目と偶数番目にそれぞれ配置されたメモリセルMCに記
憶される528ビットのデータが1回の書き込み及び読
み出しの単位である1ページとなる。また、この例では
カラム方向に隣接する16ページ分のデータが1回の消
去の単位である1ブロックとなる。但し、メモリセルエ
リア1017には、ワード線WLに沿った1056(5
28×2)個の情報ビット記憶用のメモリセルMCの
他、誤り訂正用の検出ビットを80(40×2)ビット
分記憶するためのメモリセルMCが設けられている。
【0127】各ページバッファ102jは、図8に示す
ように、528個のデータ記憶回路121を備え、各デ
ータ記憶回路121は、それぞれ2本のビット線BL
i,BLi+1に接続され、アドレスによって選択され
たいずれか一方のビット線BLを介してメモリセルエリ
ア101j中のメモリセルMCのデータを読み出した
り、ビット線BLを介してメモリセルエリアMC中のメ
モリセルの状態を検出したり、ビット線BLを介してメ
モリセルエリア101j中のメモリセルMCに書き込み
制御電圧を印加してメモリセルMCに書き込みを行う。
528個のデータ記憶回路121のうち、いずれか1つ
のデータ記憶回路121がカラムデコーダ108によっ
て選択され、選択されたデータ記憶回路121だけがE
CC回路103と接続される。
【0128】従って、メモリ全体では、カラムデコーダ
108により同一カラムアドレスを示す8ビット分(8
IO分)のデータ記憶回路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に入力され、EC
C回路103から順次8ビット分のデータが出力され
る。カラムデコーダ108は、外部より入力されるライ
トイネーブル(WE)信号に同期してカラムアドレス
を、1づつインクリメントする。これにより、メモリセ
ルエリア1010〜1017の各1つ、計8つのデータ記
憶回路121が次々と選択され、ECC回路103から
の8ビット分のデータが、選択された記憶回路121に
入力されていく。
【0129】次にECC回路103について詳細に説明
する。図9は、ECC回路103の詳細を示すブロック
図である。ECC回路103は、複数段のレジスタ、X
OR回路、スイッチ等から構成される演算用ロジック回
路131と、シンドローム計算等に用いるガロア演算回
路132と、復号時に動作する誤り位置検出回路133
(主として第2の演算部)及びデータ反転回路134と
を備えて構成されている。演算用ロジック回路131
は、ECC回路103が符号化回路として機能するとき
には、検査ビット生成回路を構成し、ECC回路103
が復号器として機能する場合には、シンドローム演算回
路及び誤り位置検出回路の主として第1の演算部を構成
する。
【0130】(2−1)符号化回路 このECC回路103では、データを8ビット(D0〜
D7)ずつ入力し、528×8=4224ビットのデー
タを単位として誤り検出訂正をおこなう。例えば、3ビ
ット訂正4ビット誤り検出のBCH符号について考える
と、情報ビットk=4224、符号長n=8191、訂
正ビットt=3、m=13となり符号化及び復号に必要
な生成多項式は以下のようになる。
【0131】
【数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
【0132】先の第1の実施形態と同様に、数42を変
形し、数43を求める。
【0133】
【数42】(((((0+I039)X+I139)X+I
239)X+I339)………)X+I52739)X
【0134】
【数43】(((((0+I039+I138+I237……I
732)X8+(I839……I1532))X8………(I520
39+I52138……I52732)X8
【0135】数43の意味するところは次の通りであ
る。まず、一回のWE信号のクロックに対し入力される
8ビットのデータD0〜D7=I0,I1,I2,…,I7
のそれぞれにX39,X38,X37,…,X32を掛け、内部
のレジスタ値に足しこみ、その後、レジスタの値をX8
する。続いて、次のWE信号のクロックに対し入力され
る8ビットのデータD0〜D7=I8,I9,I10,…,
15のそれぞれにX39,X38,X37,…,X32を掛け、
内部のレジスタ値に足しこみ、その後、レジスタの値を
8する。これを、最後の8ビットのデータD0〜D7
=I4216,I4217,I4218,…,I4223まで528回繰
り返す。
【0136】図10は、演算用ロジック回路131に備
えられた40段のレジスタREG0,REG1,…,R
EG39を示す。これらは符号化回路の巡回シフトレジ
スタを構成する。これらレジスタREG0〜REG39
の入力をB0,B1,…,B39、出力をA0,A1,
…,A39とする。演算用ロジック回路131は、上記
数41の生成多項式と数43とに基づき、1回のデータ
入力で下記数45及び数46に示すXOR演算を実行す
る。ここで使用されるXOR演算は数44に示される。
レジスタREG32〜REG39は、出力A32〜A3
9を出力する前に、数45で示すように、外部より入力
される8ビットのデータD0〜D7がレジスタ値にXO
R演算により足しこまれた結果である出力AA32〜A
A39を出力する。出力A0〜31、AA32〜AA3
9はXOR回路に繋がり、数46で示すXOR演算の結
果B0〜39は、レジスタREG0〜REG39の入力
に繋がり、シフトレジスタのクロックに同期し、取りこ
まれる。この演算を528回繰り返すと、演算ロジック
回路131レジスタREG0〜REG39には、40ビ
ットの検査ビットI4224,I4225,I4226,…,I4264
が生成される。
【0137】
【数44】
【0138】
【数45】
【0139】
【数46】
【0140】図11は、このECC回路103の符号化
処理を示すフローチャート、図12は、同じく符号化処
理のタイミングチャートである。まず外部からデータ入
力コマンド(80h)を入力すると(S21)、演算用
ロジック回路131の内部のレジスタREG0〜40が
リセットされ(S22)、次にアドレス(Add)が与
えられる。続いてWE(ライトイネーブル)信号が外部
から入力され、これに同期してデータが8ビットずつペ
ージバッファ102jにロードされる(S23,S2
4,S25)。これと同時にデータが演算用ロジック回
路131に送りこまれ、検査ビットECCが計算され
る。カラムアドレスが最終の528に達したら(S2
5)、データロードを終了する。続いて外部よりプログ
ラムコマンド(10h)が入力され、これによりメモリ
セルMCへのデータ書き込みのための図示しないチャー
ジポンプによる昇圧動作が開始される。これと同時に、
書込み動作を行なう前に、図示しない内部オシレータ等
により40ビットのREG0〜REG39から順次5バ
イトずつ検査ビットが出力され、ページバッファ102
7のデータ記憶回路121に格納される。この後、デー
タ記憶回路121に格納されたデータが、外部アドレス
Addにより選択された1ページ(図8の点線で示す)
のメモリセルMCに記憶される。
【0141】(2−2)複号回路 シンドローム計算回路 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から数3
5に変形されたときと同様に変形し、一回のWE信号の
クロックに対し8ビットのデータを取り込めるようにす
る。したがって、シンドロームS1はα8演算子より、シ
ンドロームS3はα24演算子より、シンドロームS5はα
40演算子より求められる。
【0142】図13は、演算用ロジック回路131に備
えられた40段のレジスタREG0〜REG39を示
す。レジスタREG0はS0シンドローム計算回路の巡
回シフトレジスタを構成し、レジスタREG1〜13は
1シンドローム計算回路の巡回シフトレジスタを構成
し、レジスタREG14〜26はS3シンドローム計算
回路の巡回シフトレジスタを構成し、レジスタREG2
7〜39はS5シンドローム計算回路の巡回シフトレジ
スタを構成する。ここで、レジスタREG0の入力をP
P0、出力をP0、レジスタREG1〜13の入力をA
A0,AA1,…,AA12、出力をA0,A1,…,
A12、レジスタREG14〜26の入力をBB0,B
B1,…,BB12、出力をB0,B1,…,B12、
レジスタREG27〜39の入力をCC0,CC1,
…,CC12、出力をC0,C1,…,C12とする。
演算ロジック回路131は、1回のデータ入力で下記数
47,数48,数49及び数50の演算を実行する。デ
ータ記憶回路121から読み出された、8ビットのデー
タD0〜D7と、それぞれのレジスタREG0〜REG
39の出力P0、A0〜13、B0〜13、C0〜13
とはXOR回路により足しこまれ、XOR回路の出力P
P0、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回路で適宜演算
して求めることも出来る。
【0143】
【数47】
【0144】
【数48】
【0145】
【数49】
【0146】
【数50】
【0147】誤り位置検出回路(第1の演算部) 図14は、このECC回路103の復号処理を示すフロ
ーチャートである。外部よりデータリードコマンド(0
0h)を入力した後、読み出すアドレス(Add)を入
力することにより、リード動作が開始される(S3
1)。まず、アドレスにより選択された、1ページ(5
28バイト)分のメモリセルMCのデータをページバッ
ファ1020〜1027に読み出す(S32)。この後、
内部オシレータにより発振される信号に同期し、データ
D0〜D7が1バイトずつECC回路103に入力さ
れ、シンドロームを計算する(S33)。図27に示す
ように、シンドロームS0,S1,S3,S5を計算した
後、S1=S3=S5=0 の場合(S34)で、S0=0
だと(S35)エラー無し(正常出力:S36)とな
る。S0≠0(S35)では、訂正不能となる(S3
7)。S1=S3=S5=0でない場合(S34)、σ2
1 23+S5 とσ0=S1 3+S3を計算する(S3
8)。σ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
5)を計算する(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)訂正不能となる(S5
0)。
【0148】図15に、これらの計算を行う誤り位置回
路を示す。この誤り位置検出回路は、演算用ロジック回
路131に内蔵された各13ビットの4つのレジスタ
R,A,B,C及び図示しないXOR回路により構成さ
れる第1の演算部と、ガロア演算回路132と、8つの
ローケータ141及びこれらローケータ141の間に挿
入された×α,×α2,×α3の演算を行う演算回路14
2からなる第2の演算部133と、これらの間を接続す
る13ビットのバスBUSR,BUSA,BUSB,B
USCとを備えて構成されている。ガロア演算回路13
2の出力はレジスタRに接続されている。
【0149】図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+S 32+S
1(S1 23+S5)の演算を行う(S66,S67,
S68)。
【0150】一方、本実施形態では、符号長n=819
1のうち情報ビット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(=(39 28+i)×3-8191)を掛ける計算を行なう。α
3928+i等の係数は例えばROMに書きこんでおく。これ
らの係数はカラムアドレスiによるため、図7のカラム
デコーダ108により選択されるカラムデータ記憶付近
に、もしくはメモリセルエリア101内に格納する。又
は、カラムアドレス0番地の係数のみ記憶し、他のアド
レスがアクセスした場合は、誤り位置検出の動作をダミ
ーで動かし係数を合わせるようにしても良い。
【0151】図17は、ガロア演算回路132の詳細を
示すブロック図である。いま、同図(a)に示す13ビ
ットの入力A,Bをそれぞれ、次のように示す。
【0152】
【数51】 A=a00+a11+a22+ … +a1212 B=b00+b11+b22+ … +b1212
【0153】この場合、A×Bは、数52のようにな
る。
【0154】
【数52】 A×B=A(b00+b11+b22+ … +b1212) =Ab0+X(Ab1+X(Ab2+X(Ab3+ … … +X(Ab12))))))))))))
【0155】これを回路を表すと、図17(b)の構成
となる。AとbiとがAND回路151でAND演算さ
れ、その演算結果をX乗算回路152でX倍して、XO
R回路153で次のAとbi+1とのAND演算結果と
XOR演算する。ここで、X乗算回路152は、同図
(c)に示すように、数41のαの最小多項式M
1(X)より、X13=X4+X3+X+1の関係があるの
で、X12の項がX0の項にシフトすると共に、XOR回
路154により、X3,X1,X0の項に足し込まれ、そ
れぞれX4,X3,X1の項に格納されるという演算を行
う。以上の演算の結果、13ビットのレジスタA,B,
C,Rにはそれぞれ、σ1、σ3、σ2、σ0が初期値とし
て与えられる。
【0156】誤り位置検出回路(第2の演算部) 誤りビットの位置の検出は、3ビット訂正と4ビット訂
正の場合、下記数53の誤り位置多項式に従うことが知
られている。
【0157】
【数53】 σ(Z)=S1+σ1×Z+σ2×Z2+σ3×Z3
【0158】この数53にZ=αI(I=0,1,2,
3・・・…)を順次代入してσ(αI)= 0となった
iが誤りの位置となる。本実施形態では、一回のWEの
クロックに対し8ビットのデータを出力するため、第1
の実施形態で数10を数38に変形したように、数53
を、次の数54のように変形する。
【0159】
【数54】 σ(Z)=σ0+σ1×Z8+σ2×Z16+σ3×Z24
【0160】これにより、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,A
A1,…,AA12、出力をA0,A1,…,A12、
レジスタBの入力をBB0,BB1,…,BB12、出
力をB0,B1,…,B12、レジスタCの入力をCC
0,CC1,…,CC12、出力をC0,C1,…,C
12とすると、これらのα8,α16,α24演算回路で
は、それぞれ数55,数56及び数57の演算を行う。
【0161】
【数55】
【0162】
【数56】
【0163】
【数57】
【0164】図18は、ローケータ141の具体的な構
成を示す回路図である。ローケータ141は、XOR回
路数161とNOR回路162とからなり、σ(Z)を
計算し、I/O0(j=0〜7)にエラーがある(σ=
0)とHを出力する。これにより、図9のデータ反転
回路134で、このときのページバッファ1020のデ
ータ記憶回路121のデータが反転されて出力される。
一方、I/O1のデータに関しては、σ(Z)のσ1
項がZ倍、σ2の項がZ 2倍、σ3の項がZ3倍された値な
ので、図15に示すように、σ1の項×Xを、σ 2の項に
×X2、σ3の項に×X3を演算する演算回路1421を搭
載させ、その出力を、誤り位置多項式を解くためにロー
ケータ1411に供給する。誤りが検出される(σ=
0)と、出力がHとなる。これらのX演算回路、X2
算回路、X3演算回路の入力をX0〜X12、出力Y0
〜Y12とすると、これら演算回路は、次のような演算
を実行する。これら演算回路には、データを記憶するた
めのレジスタは必要はない。
【0165】
【数58】
【0166】
【数59】
【0167】
【数60】
【0168】次に、I/O2のデータに関しては、σ
(Z)のσ1の項がZ2倍、σ2の項がZ4倍、σ3の項が
6倍された値であるが、I/O0を基準としてσ1の項
×X2を、σ2の項に×X4、σ3の項に×X6を演算する
演算回路を搭載させると、X6など大きな倍数の演算回
路の回路規模が大きくなってしまう。このため、この実
施形態では、演算回路1421の出力を再度、×X、×
2、×X3させる演算回路1411を設ける。以下、同
様にしてI/O7のデータまで演算回路1427を配置
する。もし、I/O7までの信号伝搬遅延時間が問題と
なる場合には、図19に示すように、誤り位置検出回路
(第2の演算部)133を構成する8つのローケータ1
41を演算用ロジック回路131の両側に4つずつ分割
して配置することにより、ローケータ141までの信号
伝搬路を1/2にすれば良い。
【0169】図20は、このECC回路103の復号時
のタイミングチャートである。同図(a)は、誤り位置
多項式の項を全て計算してからデータの読み出しと誤り
訂正とを行う場合を示している。外部よりデータリード
コマンド(00h)を入力した後、読み出すアドレス
(Add)を入力することにより、READY/BUS
Y信号がアクティブになり、リード動作が開始される。
まず、アドレスにより選択された、1ページ(528バ
イト)分のメモリセルMCのデータがページバッファ1
020〜1027に読み出される。続いて、内部オシレー
タにより発振される信号に同期し、データD0〜D7が
1バイトずつECC回路103に入力され、シンドロー
ムが計算され、算出されたシンドロームS0,S1
3,S5を用いて誤り位置多項式の項を演算する。その
後、ライトイネーブル(RE)信号に同期してデータが
読み出されると同時に、誤り訂正処理が実行される。こ
の場合、ECC回路103がない場合に比べ、トータル
のビジー時間の追加分は、シンドローム計算と誤り訂正
用の演算子の計算時間分となり、1回のシンドローム計
算に50ns、演算子の演算時間に3.6μsとする
と、528×50ns+3.6μs=30μsとなる。
【0170】同図(b)は、データの読み出しと同時に
シンドロームS0,S1,S3,S5を計算するようにした
例で、上記と同様にリード動作が開始され、1ページ
(528バイト)分のメモリセルMCのデータがページ
バッファ1020〜1027に読み出されると、RE信号
に同期してページバッファ1020〜1027からデータ
D0〜D7が1バイトずつ出力されると共にECC回路
103でシンドローム計算が実行される。もし、シンド
ローム計算の結果、エラーが検出された場合には、ステ
ータス・フェイルコマンド(70h)がアクティブにな
るので、誤り訂正用の演算子が計算され、その後、再度
データを出力して誤り訂正を行う。この場合、エラーが
無い場合、トータルのビジー時間の追加は0となる。
【0171】ところで、情報ビットを528ビットとし
たときと、情報ビットを4224ビットとしたときとで
は、2ビット誤り訂正3ビット誤り検出をした場合、許
容されるランダム不良数(デバイス不良確率が1ppm
となるときのランダム不良数)は、当然情報ビットを5
28ビットとしたときの方がよい。これを256Mビッ
トの記憶容量のNAND型フラッシュメモリに適用した
場合が表1となる。表1より、情報ビット数が528ビ
ットの2ビット訂正BCH符号では、許されるランダム
不良数は100ビットであり、情報ビット数を4224
ビットとすると30ビットしか許されなくなるが、3ビ
ット訂正BCH符号で情報ビット数4224ビットで
は、300ビットまでランダム不良を許し、また必要コ
ードも40ビットと短い。更に、4ビット訂正BCH符
号で情報ビット数4224ビットでは、1000ビット
までランダム不良が許容され、必要コードも53ビット
と短いという効果がある。
【0172】
【表1】 デバイス不良確率が1ppmとなる時の、256Mヒ゛ット中のランダム不良数 1page(528B)当たり 不良数 必要コート゛長 2ヒ゛ット訂正BCH符号(情報ヒ゛ット数528ヒ゛ット) 21×8=168ヒ゛ット 100ヒ゛ット 2ヒ゛ット訂正BCH符号(情報ヒ゛ット数4224ヒ゛ット) 27ヒ゛ット 30ヒ゛ット 3ヒ゛ツト訂正BCH符号(情報ヒ゛ット数4224ヒ゛ット) 40ヒ゛ット 300ヒ゛ット 4ヒ゛ット訂正BCH符号(情報ヒ゛ット数4224ヒ゛ット) 53ヒ゛ット 1000ヒ゛ット
【0173】ここで、128Mビットと512Mビット
のNAND型フラッシュメモリにECC回路を搭載しな
い場合、2ビット訂正の従来構成のECCを搭載した場
合、2ビット訂正の本実施形態のECC回路を搭載した
場合について、チップサイズで比較してみると、下記表
2のようになる。
【0174】
【表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%)
【0175】このように、本実施形態に係るECC回路
を搭載したフラッシュメモリでは、従来型のECC回路
搭載メモリがそれぞれ6.8%(128M),5.1%
(512M)のチップサイズの増加があったのに対し、
本実施形態のECC回路搭載メモリは、チップサイズの
増加がその半分の3.2%(128M),2.5%(5
12M)であった。
【0176】
【発明の効果】以上述べたように、本発明によれば、従
来、各メモリセルエリアに対するアクセスの単位である
Mビット毎に情報ビットを生成していたのに対し、Nビ
ットの並列処理が可能になったことにより、M×Nビッ
トに対して1つの検査ビットを割り当てることが可能に
なり、トータル的な情報ビットに対する検査ビット数を
削減することができる。これにより、誤り訂正回路を搭
載しつつチップの集積度を向上させることが可能にな
る。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態に係るフラッシュメ
モリに搭載されるECC回路に使用される符号化器の構
成を示すブロック図である。
【図2】 同符号化器に使用されるシフトレジスタの構
成を示すブロック図である。
【図3】 同符号化器に使用されるXOR回路の真理値
表である。
【図4】 同ECC回路に使用される復号器におけるシ
ンドローム計算回路を示すブロック図である。
【図5】 同復号器に使用される誤り位置検出回路を構
成する第1の演算部を示すブロック図である。
【図6】 同位置検出回路を構成する第2の演算部を示
すブロック図である。
【図7】 本発明の第2の実施形態に係るNAND型フ
ラッシュメモリのブロック図である。
【図8】 同フラッシュメモリのメモリセルエリアの構
成を示す回路図である。
【図9】 同フラッシュメモリのECC回路を示すブロ
ック図である。
【図10】 同ECC回路における符号化時の演算用ロ
ジック回路を構成するレジスタを示す図である。
【図11】 同符号化回路の符号化処理を示すフローチ
ャートである。
【図12】 同符号化処理のタイミングチャートであ
る。
【図13】 同ECC回路における復号時の演算ロジッ
ク回路を構成するレジスタを示す図である。
【図14】 同復号処理を示すフローチャートである。
【図15】 同ECC回路における誤り位置検出回路の
ブロック図である。
【図16】 同誤り位置検出回路における誤り位置多項
式の各項の算出アルゴリズムを示すフローチャートであ
る。
【図17】 同ECC回路におけるガロア演算回路のブ
ロック図である。
【図18】 同誤り位置検出回路の第2の演算部を示す
図である。
【図19】 同ECC回路における誤り位置検出回路の
他の例を示すブロック図である。
【図20】 同ECC回路における復号処理のタイミン
グチャートである。
【図21】 従来のECC回路を搭載したNAND型フ
ラッシュメモリの構成を示すブロック図である。
【図22】 従来のECC回路における符号化器の構成
を示すブロック図である。
【図23】 従来のECC回路の復号器におけるシンド
ローム計算回路を示すブロック図である。
【図24】 従来のECC回路の復号アルゴリズムを示
すフローチャートである。
【図25】 従来のECC回路の誤り位置検出回路の第
1の演算部を示すブロック図である。
【図26】 従来のECC回路の誤り位置検出回路の第
2の演算部を示すブロック図である。
【符号の説明】
0〜17,1010〜1017…メモリセルエリア 20〜27,1020〜1027…ページバッファ 30〜37,103…ECC回路 40〜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…データ反転回路
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B001 AA04 AB03 AB05 AC02 AD04 AE07 5B025 AA03 AB01 AC01 AD04 AD05 AD13 AE08 5J065 AA01 AB01 AC03 AD04 AG02 AH04 AH06 AH17 5L106 AA10 BB12

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 複数のメモリセルがマトリクス配列され
    た複数のメモリセルエリアと、 各メモリセルエリアのデータ入出力部に設けられて前記
    メモリセルエリアへの書き込みデータ及び前記メモリセ
    ルエリアからの読み出しデータを一時格納する複数のバ
    ッファと、 前記各メモリセルエリアへの書き込み用のデータを外部
    から入力すると共に前記各メモリセルエリアから読み出
    されたデータを外部に出力する複数の入出力端子と、 前記複数の入出力端子と前記複数のバッファとの間に設
    けられて前記複数のメモリセルエリアに書き込むデータ
    に対して誤り訂正用の検査ビットを生成して付加する符
    号化器及び前記生成された検査ビットを使用して前記複
    数のメモリセルエリアから読み出されたデータに対して
    誤り訂正処理を行う復号器を備えた誤り訂正回路とを備
    えた半導体記憶装置において、 前記誤り訂正回路は、1つの前記メモリセルエリアに対
    する書き込み及び読み出しの単位となるデータのビット
    数をMとしたとき、M×Nビット(Nは2以上の整数)
    を情報ビット長として1つの検査ビットを割り当て、符
    号化処理及び復号処理の少なくとも一方をNビットのデ
    ータを並列に処理して実行するものであることを特徴と
    する半導体記憶装置。
  2. 【請求項2】 前記メモリセルエリアはN個設けられて
    いることを特徴とする請求項1記載の半導体記憶装置。
  3. 【請求項3】 前記符号化器は、情報ビット長k=M×
    N、符号長n、訂正ビット長tで定められる生成多項式
    G(X)から導かれる巡回符号を検査ビットとして生成
    するシフトレジスタ及び演算回路からなり、 前記シフトレジスタは、次数を順番に異ならせたNビッ
    トのデータを並列に入力し、1回のシフト動作で各デー
    タをXN倍し、M回のシフト動作で内部に前記検査ビッ
    トを生成するものであることを特徴とする請求項2記載
    の半導体記憶装置。
  4. 【請求項4】 前記復号器は、前記情報ビットと検査ビ
    ットとを入力してシンドロームを計算するシンドローム
    計算回路と、 前記計算されたシンドロームから誤り位置多項式の項を
    計算する第1の演算部及び計算された誤り多項式の項か
    ら誤り位置多項式を算出して誤り位置を検出する第2の
    演算部からなる誤り位置検出回路と、 前記メモリセルエリアからバッファを介して読み出され
    たデータに対して前記検出された誤り位置でデータ反転
    処理を施すデータ反転回路とを備え、 前記シンドローム計算回路は、情報ビット長k=M×
    N、符号長n、訂正ビット長tで定められるα演算子の
    最小多項式M(X)に基づく巡回符号をシンドロームと
    して生成するシフトレジスタ及び演算回路からなり、 前記シフトレジスタは、次数を順番に異ならせたNビッ
    トのデータを並列に入力し、1回のシフト動作で各デー
    タをXKN(Kは整数)倍し、全ての前記情報ビット及び
    検査ビットが入力されることにより内部にシンドローム
    を生成するものであることを特徴とする請求項2記載の
    半導体記憶装置。
  5. 【請求項5】 前記復号器は、前記情報ビットと検査ビ
    ットとを入力してシンドロームを計算するシンドローム
    計算回路と、 前記計算されたシンドロームから誤り位置多項式の項を
    計算する第1の演算部及び計算された誤り多項式の項か
    ら誤り位置多項式を算出して誤り位置を検出する第2の
    演算部からなる誤り位置検出回路と、 前記メモリセルエリアからバッファを介して読み出され
    たデータに対して前記検出された誤り位置でデータ反転
    処理を施すデータ反転回路とを備え、 前記第2の演算部は、情報ビット長k=M×N、符号長
    n、訂正ビット長tで定められるα演算子の最小多項式
    M(X)に基づく巡回符号を誤り位置多項式の項として
    生成するシフトレジスタ及び演算回路からなり、 前記シフトレジスタは、前記メモリエリアからのデータ
    出力に同期してシフト動作をし、各データをXK(Kは
    整数)倍し、順次、誤り訂正位置を検出するものである
    ことを特徴とする請求項2記載の半導体記憶装置。
  6. 【請求項6】 前記符号化器、シンドローム計算回路及
    び第1の演算部は、演算用ロジック回路を構成するレジ
    スタと演算回路とを切り替えて構成されるものであるこ
    とを特徴とする請求項4又は5記載の半導体記憶装置。
  7. 【請求項7】 前記シンドローム又は誤り位置多項式の
    項を計算する際に使用されるガロア演算回路を更に含む
    ことを特徴とする請求項4又は5記載の半導体記憶装
    置。
  8. 【請求項8】 前記第2の演算部は、 前記Nビットのデータに対してそれぞれ設けられたN個
    のローケータと、 隣接するローケータ間に介挿されて隣接するローケータ
    へのデータをXL倍するXL演算回路(Lは整数)とを備
    えたものであることを特徴とする請求項4又は5記載の
    半導体記憶装置。
JP2001356571A 2001-11-21 2001-11-21 半導体記憶装置 Expired - Lifetime JP4112849B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001356571A JP4112849B2 (ja) 2001-11-21 2001-11-21 半導体記憶装置
US10/292,397 US7076722B2 (en) 2001-11-21 2002-11-12 Semiconductor memory device
US11/414,826 US7644342B2 (en) 2001-11-21 2006-05-01 Semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001356571A JP4112849B2 (ja) 2001-11-21 2001-11-21 半導体記憶装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006126365A Division JP4113225B2 (ja) 2006-04-28 2006-04-28 半導体装置

Publications (2)

Publication Number Publication Date
JP2003157697A true JP2003157697A (ja) 2003-05-30
JP4112849B2 JP4112849B2 (ja) 2008-07-02

Family

ID=19168071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001356571A Expired - Lifetime JP4112849B2 (ja) 2001-11-21 2001-11-21 半導体記憶装置

Country Status (2)

Country Link
US (2) US7076722B2 (ja)
JP (1) JP4112849B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005109446A1 (ja) * 2004-05-06 2005-11-17 Matsushita Electric Industrial Co., Ltd. 半導体メモリ装置
JP2007220260A (ja) * 2006-02-20 2007-08-30 Toshiba Corp 半導体記憶装置
JP2007234086A (ja) * 2006-02-27 2007-09-13 Toshiba Corp 半導体記憶装置
JP2008525937A (ja) * 2004-12-22 2008-07-17 サンディスク コーポレイション 消去されたセクタの検出メカニズム
JP2009070509A (ja) * 2007-09-14 2009-04-02 Oki Electric Ind Co Ltd 半導体記憶装置
JP2011060386A (ja) * 2009-09-11 2011-03-24 Nec Personal Products Co Ltd 不揮発性メモリの試験方法及びメモリ試験装置
JP2011233207A (ja) * 2010-04-28 2011-11-17 Univ Of Tokyo データ入出力制御装置および半導体記憶装置システム
JP2012243338A (ja) * 2011-05-17 2012-12-10 Sharp Corp 不揮発性半導体記憶装置
JP2014063503A (ja) * 2013-11-07 2014-04-10 Univ Of Tokyo データ入出力制御装置および半導体記憶装置システム

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4112849B2 (ja) * 2001-11-21 2008-07-02 株式会社東芝 半導体記憶装置
JP4550439B2 (ja) * 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
JP4217887B2 (ja) * 2003-07-22 2009-02-04 日本電気株式会社 受信装置
KR100546348B1 (ko) 2003-07-23 2006-01-26 삼성전자주식회사 플래시 메모리 시스템 및 그 데이터 저장 방법
JP2005327437A (ja) * 2004-04-12 2005-11-24 Nec Electronics Corp 半導体記憶装置
US7099221B2 (en) 2004-05-06 2006-08-29 Micron Technology, Inc. Memory controller method and system compensating for memory cell data losses
US20060010339A1 (en) * 2004-06-24 2006-01-12 Klein Dean A Memory system and method having selective ECC during low power refresh
US7340668B2 (en) * 2004-06-25 2008-03-04 Micron Technology, Inc. Low power cost-effective ECC memory system and method
US7116602B2 (en) * 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US6965537B1 (en) * 2004-08-31 2005-11-15 Micron Technology, Inc. Memory system and method using ECC to achieve low power refresh
JP4791831B2 (ja) * 2006-01-20 2011-10-12 株式会社東芝 半導体記憶装置
DE102006010820A1 (de) 2006-03-07 2007-09-13 Micronas Gmbh Fehlerkorrektur- und Fehlererfassungs-Verfahren zum Auslesen von gespeicherten Informationsdaten und Speichersteuereinrichtung dafür
JP2007305267A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
JP2008021390A (ja) * 2006-07-14 2008-01-31 Toshiba Corp 半導体記憶装置
KR100833600B1 (ko) * 2006-08-25 2008-05-30 삼성전자주식회사 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
JP4891704B2 (ja) * 2006-08-28 2012-03-07 株式会社東芝 半導体記憶装置
US7894289B2 (en) * 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
US7900120B2 (en) * 2006-10-18 2011-03-01 Micron Technology, Inc. Memory system and method using ECC with flag bit to identify modified data
JP2008217857A (ja) * 2007-02-28 2008-09-18 Toshiba Corp メモリコントローラ及び半導体装置
US8069395B2 (en) * 2007-03-01 2011-11-29 Cisco Technology, Inc. Three bit error detection using ECC codes
US8042022B2 (en) 2007-03-08 2011-10-18 Micron Technology, Inc. Method, system, and apparatus for distributed decoding during prolonged refresh
JP4621715B2 (ja) * 2007-08-13 2011-01-26 株式会社東芝 メモリ装置
CN101140809A (zh) * 2007-09-07 2008-03-12 炬力集成电路设计有限公司 支持流水线纠错码和可配置操作的flash控制器及其控制方法
US7791974B2 (en) * 2008-03-31 2010-09-07 Intel Corporation Recovery of existing SRAM capacity from fused-out blocks
US8023358B2 (en) * 2008-04-02 2011-09-20 International Business Machines Corporation System and method for providing a non-power-of-two burst length in a memory system
JP2010009141A (ja) * 2008-06-24 2010-01-14 Toshiba Corp データ転送方法
JP2010097600A (ja) * 2008-09-22 2010-04-30 Panasonic Corp 半導体記録装置
JP5259343B2 (ja) * 2008-10-31 2013-08-07 株式会社東芝 メモリ装置
US20100198902A1 (en) * 2009-02-03 2010-08-05 Microsoft Corporation Computing minimal polynomials of radical expressions
US8533564B2 (en) * 2009-12-23 2013-09-10 Sandisk Technologies Inc. System and method of error correction of control data at a memory device
TWI473105B (zh) * 2011-01-18 2015-02-11 Macronix Int Co Ltd 具有錯誤自動檢查與更正位元之三維記憶體結構
US8615690B2 (en) * 2011-05-05 2013-12-24 Mediatek Inc. Controller of memory device and method for operating the same
US9471419B2 (en) 2013-03-12 2016-10-18 Sandisk Technologies Llc Systems and methods for performing data recovery in a memory system
US9239756B2 (en) * 2013-12-13 2016-01-19 Sandisk Technologies Inc. Systems and methods for performing data recovery in a memory system
US20150193301A1 (en) * 2014-01-06 2015-07-09 Kabushiki Kaisha Toshiba Memory controller and memory system
US9720772B2 (en) 2015-03-04 2017-08-01 Kabushiki Kaisha Toshiba Memory system, method for controlling magnetic memory, and device for controlling magnetic memory
US9659610B1 (en) * 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US10394648B2 (en) * 2016-11-07 2019-08-27 Samsung Electronics Co., Ltd. Method to deliver in-DRAM ECC information through DDR bus
TWI643201B (zh) * 2017-11-27 2018-12-01 慧榮科技股份有限公司 編碼器及相關的編碼方法與快閃記憶體控制器
CN109756235A (zh) * 2018-12-07 2019-05-14 天津津航计算技术研究所 一种可配置的并行bch纠错编码方法
US20230267043A1 (en) * 2022-02-23 2023-08-24 Micron Technology, Inc. Parity-based error management for a processing system

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62214599A (ja) 1986-03-14 1987-09-21 Fujitsu Ltd 半導体記憶装置
JPH03119835A (ja) 1989-10-03 1991-05-22 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正回路
US5291496A (en) * 1990-10-18 1994-03-01 The United States Of America As Represented By The United States Department Of Energy Fault-tolerant corrector/detector chip for high-speed data processing
US5226043A (en) * 1990-12-27 1993-07-06 Raytheon Company Apparatus and method for data error detection and correction and address error detection in a memory system
JP2662472B2 (ja) 1991-06-13 1997-10-15 シャープ株式会社 誤り訂正処理用シンドローム演算回路
US5343426A (en) * 1992-06-11 1994-08-30 Digital Equipment Corporation Data formater/converter for use with solid-state disk memory using storage devices with defects
JP3241851B2 (ja) 1993-03-18 2001-12-25 株式会社東芝 誤り訂正復号装置
JPH09180496A (ja) 1995-12-28 1997-07-11 Fujitsu Ltd 半導体記憶装置
US5699368A (en) * 1994-03-25 1997-12-16 Mitsubishi Denki Kabushiki Kaisha Error-correcting encoder, error-correcting decoder, and data transmitting system with error-correcting codes
JPH08167857A (ja) 1994-12-15 1996-06-25 Mitsubishi Electric Corp 復号方式
JP3272903B2 (ja) * 1995-03-16 2002-04-08 株式会社東芝 誤り訂正検出回路と半導体記憶装置
WO1996032674A2 (en) * 1995-04-13 1996-10-17 Cirrus Logic, Inc. Semiconductor memory device for mass storage block access applications
US5757826A (en) * 1995-07-12 1998-05-26 Quantum Corporation Word-wise processing for reed-solomon codes
US5754563A (en) * 1995-09-11 1998-05-19 Ecc Technologies, Inc. Byte-parallel system for implementing reed-solomon error-correcting codes
JPH09162753A (ja) 1995-12-05 1997-06-20 Fuji Electric Co Ltd 符号語の復号方式
JPH09288895A (ja) * 1996-04-19 1997-11-04 Toshiba Corp 3値記憶半導体記憶システム
US5740188A (en) * 1996-05-29 1998-04-14 Compaq Computer Corporation Error checking and correcting for burst DRAM devices
US6308295B1 (en) * 1996-10-08 2001-10-23 Arizona Board Of Regents Parallel spectral reed-solomon encoder and decoder
US5784391A (en) * 1996-10-08 1998-07-21 International Business Machines Corporation Distributed memory system with ECC and method of operation
JPH10126280A (ja) 1996-10-18 1998-05-15 Matsushita Electric Ind Co Ltd 並列処理誤り訂正復号装置
JPH10334697A (ja) 1997-05-28 1998-12-18 Sony Corp 半導体記憶装置およびその誤り訂正方法
JPH1173797A (ja) 1997-08-27 1999-03-16 Sony Corp 記憶装置
US6360346B1 (en) * 1997-08-27 2002-03-19 Sony Corporation Storage unit, method of checking storage unit, reading and writing method
US6732322B1 (en) * 1998-01-21 2004-05-04 Sony Corporation Encoding method and memory device
WO1999048097A1 (en) * 1998-03-18 1999-09-23 Stmicroelectronics S.R.L. Reed-solomon decoding of data read from dvd or cd supports
US6158040A (en) * 1998-07-29 2000-12-05 Neomagic Corp. Rotated data-aligmnent in wade embedded DRAM for page-mode column ECC in a DVD controller
KR100287018B1 (ko) * 1998-08-07 2001-04-16 윤종용 에러 정정 회로를 구비한 반도체 메모리 장치
JP4105819B2 (ja) * 1999-04-26 2008-06-25 株式会社ルネサステクノロジ 記憶装置およびメモリカード
JP2000348497A (ja) 1999-06-08 2000-12-15 Toshiba Corp 半導体記憶装置
JP4074029B2 (ja) * 1999-06-28 2008-04-09 株式会社東芝 フラッシュメモリ
KR100322542B1 (ko) * 1999-08-11 2002-03-18 윤종용 파이프 라인상의 고속동작을 구현하는 ecc 회로를 구비하는동기식 반도체 메모리장치 및 이 동기식 반도체 메모리장치의 에러 체크 및 정정방법
JP3975245B2 (ja) * 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
US6862662B1 (en) * 2000-03-03 2005-03-01 Micron Technology, Inc. High density storage scheme for semiconductor memory
US6731538B2 (en) * 2000-03-10 2004-05-04 Kabushiki Kaisha Toshiba Semiconductor memory device including page latch circuit
JP4707803B2 (ja) * 2000-07-10 2011-06-22 エルピーダメモリ株式会社 エラーレート判定方法と半導体集積回路装置
US20030120858A1 (en) * 2000-09-15 2003-06-26 Matrix Semiconductor, Inc. Memory devices and methods for use therewith
US6661730B1 (en) * 2000-12-22 2003-12-09 Matrix Semiconductor, Inc. Partial selection of passive element memory cell sub-arrays for write operation
JP2002251884A (ja) * 2001-02-21 2002-09-06 Toshiba Corp 半導体記憶装置及びそのシステム装置
US6957378B2 (en) * 2001-06-04 2005-10-18 Kabushiki Kaisha Toshiba Semiconductor memory device
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
JP4112849B2 (ja) * 2001-11-21 2008-07-02 株式会社東芝 半導体記憶装置
JP3914839B2 (ja) * 2002-07-11 2007-05-16 エルピーダメモリ株式会社 半導体記憶装置
JP4102313B2 (ja) 2004-02-05 2008-06-18 株式会社東芝 半導体集積回路装置
JP4191100B2 (ja) * 2004-06-18 2008-12-03 エルピーダメモリ株式会社 半導体記憶装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101115843B1 (ko) 2004-05-06 2012-03-09 파나소닉 주식회사 반도체 메모리장치
CN100576360C (zh) * 2004-05-06 2009-12-30 松下电器产业株式会社 半导体存储器装置
US7793192B2 (en) 2004-05-06 2010-09-07 Panasonic Corporation Semiconductor memory device
JPWO2005109446A1 (ja) * 2004-05-06 2008-03-21 松下電器産業株式会社 半導体メモリ装置
WO2005109446A1 (ja) * 2004-05-06 2005-11-17 Matsushita Electric Industrial Co., Ltd. 半導体メモリ装置
JP4791356B2 (ja) * 2004-05-06 2011-10-12 パナソニック株式会社 半導体メモリ装置
US8327238B2 (en) 2004-12-22 2012-12-04 Sandisk Technologies Inc. Erased sector detection mechanisms
JP2008525937A (ja) * 2004-12-22 2008-07-17 サンディスク コーポレイション 消去されたセクタの検出メカニズム
JP2007220260A (ja) * 2006-02-20 2007-08-30 Toshiba Corp 半導体記憶装置
JP2007234086A (ja) * 2006-02-27 2007-09-13 Toshiba Corp 半導体記憶装置
JP2009070509A (ja) * 2007-09-14 2009-04-02 Oki Electric Ind Co Ltd 半導体記憶装置
US7656322B2 (en) 2007-09-14 2010-02-02 Oki Semiconductor Co., Ltd. Semiconductor memory device having error correction function
JP2011060386A (ja) * 2009-09-11 2011-03-24 Nec Personal Products Co Ltd 不揮発性メモリの試験方法及びメモリ試験装置
JP2011233207A (ja) * 2010-04-28 2011-11-17 Univ Of Tokyo データ入出力制御装置および半導体記憶装置システム
US8677217B2 (en) 2010-04-28 2014-03-18 The University Of Tokyo Data input / output control device and semiconductor memory device system
JP2012243338A (ja) * 2011-05-17 2012-12-10 Sharp Corp 不揮発性半導体記憶装置
JP2014063503A (ja) * 2013-11-07 2014-04-10 Univ Of Tokyo データ入出力制御装置および半導体記憶装置システム

Also Published As

Publication number Publication date
US20060195766A1 (en) 2006-08-31
JP4112849B2 (ja) 2008-07-02
US7076722B2 (en) 2006-07-11
US20030101405A1 (en) 2003-05-29
US7644342B2 (en) 2010-01-05

Similar Documents

Publication Publication Date Title
JP2003157697A (ja) 半導体記憶装置
JP5043562B2 (ja) エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US8339854B2 (en) Nonvolatile memory device and data randomizing method thereof
US7464320B2 (en) Synchronous semiconductor storage device having error correction function
US7366971B2 (en) Semiconductor memory having sub-party cell array error correction
US20090319863A1 (en) Error-correcting system of semiconductor memory, error-correcting method, and memory system with error-correcting system
US8990667B2 (en) Error check and correction circuit, method, and memory device
US7984363B2 (en) Integrated circuit device including a circuit to generate error correction code for correcting error bit for each of memory circuits
JP2006190425A (ja) 半導体記憶装置
US20080082872A1 (en) Memory controller, memory system, and data transfer method
KR20120063329A (ko) 에러 체크 및 정정기 및 그것을 포함하는 메모리 시스템
JP4113225B2 (ja) 半導体装置
US7075851B2 (en) Semiconductor memory device inputting/outputting data and parity data in burst operation
JP2014033364A (ja) 誤り検出訂正回路、及びメモリ装置
JP2001202792A (ja) 半導体記憶装置のエラー訂正符号化方法及び半導体記憶装置
CN115732017A (zh) 半导体存储装置及读出方法
JP5617776B2 (ja) メモリ回路,メモリ装置及びメモリデータの誤り訂正方法
JP7178465B1 (ja) 半導体記憶装置
US11831335B2 (en) Memory system and control method of controlling nonvolatile memory
JPH10334697A (ja) 半導体記憶装置およびその誤り訂正方法
JPS58222497A (ja) マイクロプログラム制御装置
JPH01119997A (ja) 半導体記憶装置
JPS61233500A (ja) 半導体記憶装置
JPS63214840A (ja) エラ−検出訂正回路
JP2014057203A (ja) ガロア体演算回路、及びメモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040929

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

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