JP2006209969A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2006209969A
JP2006209969A JP2006126365A JP2006126365A JP2006209969A JP 2006209969 A JP2006209969 A JP 2006209969A JP 2006126365 A JP2006126365 A JP 2006126365A JP 2006126365 A JP2006126365 A JP 2006126365A JP 2006209969 A JP2006209969 A JP 2006209969A
Authority
JP
Japan
Prior art keywords
circuit
data
bits
bit
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
JP2006126365A
Other languages
English (en)
Other versions
JP4113225B2 (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 JP2006126365A priority Critical patent/JP4113225B2/ja
Publication of JP2006209969A publication Critical patent/JP2006209969A/ja
Application granted granted Critical
Publication of JP4113225B2 publication Critical patent/JP4113225B2/ja
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)

Abstract

【課題】情報ビット数に対する検査ビット数を削減してチップの集積度を向上させる。
【解決手段】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ビットで並列に実行する。
【選択図】図7

Description

本発明は、NAND型フラッシュメモリ等の半導体装置に係り、特に、チップ内に誤り訂正機能を持たせた半導体装置に関する。
NAND型フラッシュメモリは、書き換えを繰り返すとセルの特性が劣化すること、及び長時間放置するとデータ化けすることが知られている。したがって、この種のNAND型フラッシュメモリの信頼性を上げるため、従来より、チップ内に誤り検出訂正用のECC(Error Correcting Code)回路を搭載した半導体メモリが提案されている(例えば特開平2000−348497号、特開平2001−14888号等)。
図21は、ECC回路を搭載した従来のNAND型フラッシュメモリの構成を簡略的に示すブロック図である。
このメモリは、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がそれぞれ設けられている。
各ECC回路30〜37は、各メモリセルエリア10〜17に記憶される1ページ分(528ビット)の情報ビットに対し、所定ビット数の検査ビット(ECC)を付加する符号化機能と、検査ビットが付加された情報ビットから所定ビット数の誤り検出及び誤り訂正を行う復号機能とを備えたもので、誤り訂正符号として、例えば比較的少ない回路規模で複数ビットの誤り訂正が可能なBCH(Bose-Chaudhuri-Hocquenghem)符号が使用されている。外部とメモリとの間は、例えばメモリセル数に対応する8ビット単位でデータがリード・ライトされる。従って、各ECC回路30〜37には、1ビットずつデータが入力され、内部の巡回型シフトレジスタを1ビットずつ巡回し、1ビットずつ出力することで、符号化処理及び復号処理が実行される。
次に、BCH符号を利用した従来のECC回路30〜37の符号化及び復号動作ついて説明する。
なお、情報ビット数528ビットで、2ビット誤り訂正3ビット誤り検出を行うBCH符号の検査ビット数は21ビットになるが、ここでは説明を簡単にするため、情報ビット数k=7、符号長n=15、訂正ビット数t=2の2ビット誤り訂正3ビット誤り検出が可能なBCH符号を用いた誤り検出・訂正方式を例にとり説明する。
この場合の符号化、復号化に必要な生成多項式は以下のようになることが一般に知られている。
[数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とから構成されている。
シフトレジスタ11を1回動かす動作は、シフトレジスタ11の値をそれぞれX倍することに相当する。いま、シフトレジスタ11に格納されたデータの値を、次のように表す。
[数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に格納することに相当する。
符号化時には、まず、スイッチ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の値はリセットされる。
(2)復号回路
次に、復号回路について説明する。復号回路は、シンドローム計算回路と、誤り位置検出回路とから構成される。2ビット誤り訂正の場合、復号に際して2つのシンドロームS1,S3が必要であり、これらは最小多項式M1(x)=X4+X+1により求められることが知られている。図23(a)は、従来のS1シンドローム計算回路20を具体的に表した図、同図(b)は、従来のS3シンドローム計算回路30を示す図である。
同図(a)のS1シンドローム計算回路20は、最小多項式M1(x)に基づき、レジスタD3,D2,D1,D0からなるシフトレジスタ21とXOR回路221,222とにより構成されている。ここでシフトレジスタ21を1回動かす動作はシフトレジスタ21の値をX倍することに相当する。いま、シフトレジスタ21に格納された値を、次のように表す。
[数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が生成される。
図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が生成される。
図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)。
誤りビットの位置は、数10に示す誤り位置多項式σ(Z)にZ=αI(I=0,1,2,3,4,5,6)を順次代入することによって求められることが一般に知られている。σ(αI)=0となったiが誤りの位置である。
[数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に格納することに相当する。
また、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に格納することに相当する。
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を反転させることにより誤り検出訂正が行われる。
このように、BCH符号を用いた従来のECC回路では、1ビットの入力に対し1回のシフト及び計算が基本動作となる。NAND型フラッシュメモリでは、1つのアドレスに対して8IO又は16IO等の単位で外部よりデータが並列に入力されるため、各IO毎に誤り訂正させるか、この一度の入力の間に8又は16回の計算を行なわなくてはならない。しかし、一度の入力の間に8又は16回の計算行なうことは、この部分のみ高速で動作させることを意味し、特別なプロセスなどが必要なため、現実には行なえない。
そこで従来は、各メモリセルエリア1i(各I/O)毎にECC回路3iを設けて各メモリセルエリア1i単位で誤り訂正を行うようにしている。この場合、NAND型フラッシュメモリでは、1ページ(528バイト)単位でデータをリードしたり、プログラムしたりするので、各I/O毎に2ビット誤り訂正3ビット誤り検出をすると、情報ビット数は528ビット、検査ビット数は21ビットとなり、チップ全体で合計21×8=168ビットの余分な検査ビットが必要になる。これがチップの集積度を高める際の阻害要因となっていた。
本発明は、このような問題点に鑑みなされたもので、情報ビット数に対する検査ビット数を削減してチップの集積度を向上させることができる半導体装置を提供することを目的とする。
本発明は、複数のメモリセルがマトリクス配列されたa個のメモリセルエリアと、前記複数のメモリセルエリアに書き込むデータに対して誤り訂正用の検査ビットを生成して付加する符号化器及び前記生成された検査ビットを使用して前記複数のメモリセルエリアから読み出されたデータに対して誤り訂正処理を行う復号器を備えた誤り訂正回路とを備えた半導体装置において、前記誤り訂正回路は、k=b×aビット(bは自然数)を情報ビット長として、その情報ビット長に対し1つのhビットの検査ビットを生成し、(k+h)ビットのデータを同時に書き込み及び読出しを行う単位とすることを特徴とする。
本発明はまた、データに対して誤り訂正用の検査ビットを生成して付加する符号化器を含む誤り訂正回路を備えた半導体装置において、前記符号化器は、k=b×aビット(bは自然数)の情報ビットのデータに対し1つのhビットの検査ビットを付加すると共に、前記符号化器には、前記データがaビットずつ入力されることを特徴とする。
本発明はまた、検査ビットを使用してデータに対して誤り訂正処理を行う復号器を含む誤り訂正回路を備えた半導体装置において、前記復号器は、k=b×aビット(bは自然数)の情報ビットのデータに対し1つのhビットの検査ビットが付加された(k+h)ビットのデータをaビットずつ入力されシンドロームを計算するシンドローム計算回路と、前記計算されたシンドロームから誤り位置多項式の項を計算する第1の演算部及び計算された誤り多項式の項から誤り位置多項式を算出して誤り位置を検出する第2の演算部からなる誤り位置検出回路と、前記データに対して前記検出された誤り位置でデータ反転処理を施すデータ反転回路とを備えることを特徴とする。
本発明は、複数のメモリセルがマトリクス配列された複数のメモリセルエリアと、各メモリセルエリアのデータ入出力部に設けられて前記メモリセルエリアへの書き込みデータ及び前記メモリセルエリアからの読み出しデータを一時格納する複数のバッファと、前記各メモリセルエリアへの書き込み用のデータを外部から入力すると共に前記各メモリセルエリアから読み出されたデータを外部に出力する複数の入出力端子と、前記複数の入出力端子と前記複数のバッファとの間に設けられて前記複数のメモリセルエリアに書き込むデータに対して誤り訂正用の検査ビットを生成して付加する符号化器及び前記生成された検査ビットを使用して前記複数のメモリセルエリアから読み出されたデータに対して誤り訂正処理を行う復号器を備えた誤り訂正回路とを備えた半導体記憶装置において、前記誤り訂正回路は、1つの前記メモリセルエリアに対する書き込み及び読み出しの単位となるデータのビット数をMとしたとき、M×Nビット(Nは2以上の整数)を情報ビット長として1つの検査ビットを割り当て、符号化処理及び復号処理の少なくとも一方をNビットのデータを並列に処理して実行するものであることを特徴とすることを特徴とする。
本発明によれば、従来、各メモリセルエリアに対するアクセスの単位であるMビット毎に情報ビットを生成していたのに対し、Nビットの並列処理が可能になったことにより、M×Nビットに対して1つの検査ビットを割り当てることが可能になり、トータル的な情報ビットに対する検査ビット数を削減することができる。これにより、誤り訂正回路を搭載しつつチップの集積度を向上させることができる。
一例を挙げると、tビット訂正(t+1)ビット誤り検出BCH符号では、
[数16]
符号長 n=2m−1
情報ビット数 k≦2m−1−m×t
検査ビット数 mt+1≦n−k
訂正ビット数 t
の関係があるため、mの数を大きくすると、符号長及び情報ビット数は指数関数的に増加するが、検査ビット数はそれほど増加しない。このため、情報ビット数は、2m−1−m×tを超えない限度で大きい方が情報ビット数に対する検査ビット数の割合が小さくなる。従って、できるだけ大きな情報ビット数に対し、検査ビットを設けた方が有利である。
例えば、NAND型フラッシュメモリは、1ページ(528バイト)でリードしたり、プログラムするが、各IO毎(メモリセルエリア毎)に2ビット誤り訂正3ビット誤り検出をすると、情報ビット数はk=528ビット、検査ビット数は21ビットとなるため、合計21×8=168ビットの余分な検査ビットが必要である。
しかし、1ページを1つの単位で、2ビット誤り訂正3ビット誤り検出をすると、情報ビット数が4224ビットのとき、検査ビット数は27ビットで良い。3ビット誤り訂正4ビット誤り検出としても、情報ビット数が4224ビットのとき、検査ビット数は40ビットで足りる。
本発明の一つの実施形態においては、前記メモリセルエリアは、N個設けられている。符号化器は、例えば情報ビット長k=M×N、符号長n、訂正ビット長tで定められる生成多項式G(X)から導かれる巡回符号を検査ビットとして生成するシフトレジスタ及び演算回路からなり、前記シフトレジスタが、次数を順番に異ならせたNビットのデータを並列に入力し、1回のシフト動作で各データをXN倍し、M回のシフト動作で内部に前記検査ビットを生成するものである。
また、復号器は、例えば前記情報ビットと検査ビットとを入力してシンドロームを計算するシンドローム計算回路と、前記計算されたシンドロームから誤り位置多項式の項を計算する第1の演算部及び計算された誤り多項式の項から誤り位置多項式を算出して誤り位置を検出する第2の演算部からなる誤り位置検出回路と、前記メモリセルエリアからバッファを介して読み出されたデータに対して前記検出された誤り位置でデータ反転処理を施すデータ反転回路とを備え、前記シンドローム計算回路が、情報ビット長k=M×N、符号長n、訂正ビット長tで定められるα演算子の最小多項式M(X)に基づく巡回符号をシンドロームとして生成するシフトレジスタ及び演算回路からなり、前記シフトレジスタが、次数を順番に異ならせたNビットのデータを並列に入力し、1回のシフト動作で各データをXKN(Kは整数)倍し、全ての前記情報ビット及び検査ビットが入力されることにより内部にシンドロームを生成するものである。
また、誤り位置検出回路は、前記第2の演算部が、情報ビット長k=M×N、符号長n、訂正ビット長tで定められるα演算子の最小多項式M(X)に基づく巡回符号を誤り位置多項式の項として生成するシフトレジスタ及び演算回路からなり、前記シフトレジスタが、前記メモリエリアからのデータ出力に同期してシフト動作をし、各データをXK(Kは整数)倍し、順次、誤り訂正位置を検出するものである。
前記符号化器、シンドローム計算回路及び第1の演算部は、演算用ロジック回路を構成するレジスタと演算回路とを切り替えて構成されるようにしても良い。また、復号器は、シンドローム又は誤り位置多項式の項を計算する際に使用されるガロア演算回路を更に含むようにしても良い。更に、前記第2の演算部は、例えば前記Nビットのデータに対してそれぞれ設けられたN個のローケータと、隣接するローケータ間に介挿されて隣接するローケータへのデータをXL倍するXL演算回路(Lは整数)とを備えたものである。
以下、図面を参照しながら、本発明の実施形態について説明する。
(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
となる。
次に入力データI2が符号化回路10に入力されると、この入力データI2は、符号化回路10のX7の項に足しこまれ、この後X倍されているので、
[数19]
(((0+I07)X+I17)X+I27)X
となる。
同様に、入力データ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倍されることになる。
ここで、シフトレジスタ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
となる。
図1は数23を具体的に回路で構成した本実施形態に係る符号化回路50の構成を示すブロック図である。
この符号化回路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から出力する。
この符号化回路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に格納する。
メモリに書き込まれるため外部から入力された入力データ(情報ビット)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の項に足しこまれている。
ここで、シフトレジスタ21の値を、数5で示した値として、これをX2倍すると、
[数29]
02+a13+a24+a35
となるが、αの最小多項式M1(x)より、X4=X+1の関係があるため、
[数30]
20+(a2+a3)X1+(a0+a3)X2+a13
となる。
図4(a)は数30を具体的に回路で構成した本実施形態に係るS1シンドローム計算回路60の構成を示すブロック図である。
このS1シンドローム計算回路60は、レジスタD0,D1,D2,D3からなるシフトレジスタ61と、XOR回路621,622,623,624とから構成されている。
このS1シンドローム計算回路60は、数30に基づき、1回のシフト動作で、レジスタD2の値a2をレジスタD0に格納し、レジスタD2,D3の値a2,a3をXOR回路622で足し込んでレジスタD1に格納し、レジスタD0,D3の値a0,a3をXOR回路624で足し込んでレジスタD2に格納し、レジスタD1の値a1をレジスタD3に格納する。
図示しないメモリセルエリアから読み出された情報ビット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の項に足しこまれている。
ここで、シフトレジスタ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
となる。
図4(b)は数37を具体的に回路で構成した本実施例に係るS3シンドローム計算回路70の構成を示すブロック図である。このS3シンドローム計算回路70は、レジスタD0,D1,D2,D3からなるシフトレジスタ71と、XOR回路721,722,723,724,725,726とから構成されている。
この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に格納する。
図示しないメモリセルエリアから読み出された情報ビット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ビット入力の並列処理が可能になる。
(1−2−3)誤り位置検出回路
次に誤り位置検出回路について説明する。本実施形態の誤り位置検出回路では、S1,S3シンドローム計算回路60,70が1回のシフト動作で従来の2回分のシフト動作を行うものであるから、誤り位置検出回路も、従来の2回分のシフト動作に相当する演算を行う。いま、数10の誤り位置多項式を、
[数38]
σ(Z)=S1+σ1×Z2+σ2×Z4
とする。
図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となる。
ここで、X2演算回路82は、図25のX2演算回路43と同一構成であり、シフトレジスタ43aとシフトレジスタ82aとが対応し、XOR回路43b1,43b2とXOR回路82b1,82b2とが対応するので、詳細な構成説明は割愛する。
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に格納する。
図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型フラッシュメモリのブロック図である。
このメモリは、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ビットの検査ビットを付加して誤り検出訂正を行う。
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中のワード線に読み出し、書き込み又は消去に必要な電圧を与える。
各メモリセルエリア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が設けられている。
各ページバッファ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と接続される。
従って、メモリ全体では、カラムデコーダ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に入力されていく。
次にECC回路103について詳細に説明する。
図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となり符号化及び復号に必要な生成多項式は以下のようになる。
[数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を求める。
[数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回繰り返す。
図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が生成される。
図11は、このECC回路103の符号化処理を示すフローチャート、図12は、同じく符号化処理のタイミングチャートである。
まず外部からデータ入力コマンド(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演算子より求められる。
図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回路で適宜演算して求めることも出来る。
(2−2−2)誤り位置検出回路(第1の演算部)
図14は、このECC回路103の復号処理を示すフローチャートである。
外部よりデータリードコマンド(00h)を入力した後、読み出すアドレス(Add)を入力することにより、リード動作が開始される(S31)。まず、アドレスにより選択された、1ページ(528バイト)分のメモリセル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)では、訂正不能となる(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)。
図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に接続されている。
図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)。
一方、本実施形態では、符号長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番地の係数のみ記憶し、他のアドレスがアクセスした場合は、誤り位置検出の動作をダミーで動かし係数を合わせるようにしても良い。
図17は、ガロア演算回路132の詳細を示すブロック図である。
いま、同図(a)に示す13ビットの入力A,Bをそれぞれ、次のように示す。
[数51]
A=a00+a11+a22+ … +a1212
B=b00+b11+b22+ … +b1212
この場合、A×Bは、数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の項に格納されるという演算を行う。
以上の演算の結果、13ビットのレジスタA,B,C,Rにはそれぞれ、σ1、σ3、σ2、σ0が初期値として与えられる。
(2−2−3)誤り位置検出回路(第2の演算部)
誤りビットの位置の検出は、3ビット訂正と4ビット訂正の場合、下記数53の誤り位置多項式に従うことが知られている。
[数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のように変形する。
[数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の演算を行う。
図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の項がZ2倍、σ3の項がZ3倍された値なので、図15に示すように、σ1の項×Xを、σ2の項に×X2、σ3の項に×X3を演算する演算回路1421を搭載させ、その出力を、誤り位置多項式を解くためにローケータ1411に供給する。誤りが検出される(σ= 0)と、出力がHとなる。これらのX演算回路、X2演算回路、X3演算回路の入力をX0〜X12、出力Y0〜Y12とすると、これら演算回路は、次のような演算を実行する。これら演算回路には、データを記憶するためのレジスタは必要はない。
次に、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を配置する。
もし、I/O7までの信号伝搬遅延時間が問題となる場合には、図19に示すように、誤り位置検出回路(第2の演算部)133を構成する8つのローケータ141を演算用ロジック回路131の両側に4つずつ分割して配置することにより、ローケータ141までの信号伝搬路を1/2にすれば良い。
図20は、このECC回路103の復号時のタイミングチャートである。同図(a)は、誤り位置多項式の項を全て計算してからデータの読み出しと誤り訂正とを行う場合を示している。
外部よりデータリードコマンド(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となる。
同図(b)は、データの読み出しと同時にシンドロームS0,S1,S3,S5を計算するようにした例で、上記と同様にリード動作が開始され、1ページ(528バイト)分のメモリセルMCのデータがページバッファ1020〜1027に読み出されると、RE信号に同期してページバッファ1020〜1027からデータD0〜D7が1バイトずつ出力されると共にECC回路103でシンドローム計算が実行される。もし、シンドローム計算の結果、エラーが検出された場合には、ステータス・フェイルコマンド(70h)がアクティブになるので、誤り訂正用の演算子が計算され、その後、再度データを出力して誤り訂正を行う。この場合、エラーが無い場合、トータルのビジー時間の追加は0となる。
ところで、情報ビットを528ビットとしたときと、情報ビットを4224ビットとしたときとでは、2ビット誤り訂正3ビット誤り検出をした場合、許容されるランダム不良数(デバイス不良確率が1ppmとなるときのランダム不良数)は、当然情報ビットを528ビットとしたときの方がよい。これを256Mビットの記憶容量のNAND型フラッシュメモリに適用した場合が表1となる。表1は、左側より、デバイス不良確率が1ppmとなる時の256Mヒ゛ット中のランダム不良数、1ページ当たり必要コード長、及び不良数を示している。
表1より、情報ビット数が528ビットの2ビット訂正BCH符号では、許されるランダム不良数は100ビットであり、情報ビット数を4224ビットとすると30ビットしか許されなくなるが、3ビット訂正BCH符号で情報ビット数4224ビットでは、300ビットまでランダム不良を許し、また必要コードも40ビットと短い。更に、4ビット訂正BCH符号で情報ビット数4224ビットでは、1000ビットまでランダム不良が許容され、必要コードも53ビットと短いという効果がある。
[表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のようになる。
[表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)であった。
本発明の第1の実施形態に係るフラッシュメモリに搭載されるECC回路に使用される符号化器の構成を示すブロック図である。 同符号化器に使用されるシフトレジスタの構成を示すブロック図である。 同符号化器に使用されるXOR回路の真理値表である。 同ECC回路に使用される復号器におけるシンドローム計算回路を示すブロック図である。 同復号器に使用される誤り位置検出回路を構成する第1の演算部を示すブロック図である。 同位置検出回路を構成する第2の演算部を示すブロック図である。 本発明の第2の実施形態に係るNAND型フラッシュメモリのブロック図である。 同フラッシュメモリのメモリセルエリアの構成を示す回路図である。 同フラッシュメモリのECC回路を示すブロック図である。 同ECC回路における符号化時の演算用ロジック回路を構成するレジスタを示す図である。 同符号化回路の符号化処理を示すフローチャートである。 同符号化処理のタイミングチャートである。 同ECC回路における復号時の演算ロジック回路を構成するレジスタを示す図である。 同復号処理を示すフローチャートである。 同ECC回路における誤り位置検出回路のブロック図である。 同誤り位置検出回路における誤り位置多項式の各項の算出アルゴリズムを示すフローチャートである。 同ECC回路におけるガロア演算回路のブロック図である。 同誤り位置検出回路の第2の演算部を示す図である。 同ECC回路における誤り位置検出回路の他の例を示すブロック図である。 同ECC回路における復号処理のタイミングチャートである。 従来のECC回路を搭載したNAND型フラッシュメモリの構成を示すブロック図である。 従来のECC回路における符号化器の構成を示すブロック図である。 従来のECC回路の復号器におけるシンドローム計算回路を示すブロック図である。 従来のECC回路の復号アルゴリズムを示すフローチャートである。 従来のECC回路の誤り位置検出回路の第1の演算部を示すブロック図である。 従来のECC回路の誤り位置検出回路の第2の演算部を示すブロック図である。
符号の説明
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…データ反転回路

Claims (8)

  1. 複数のメモリセルがマトリクス配列されたa個のメモリセルエリアと、
    前記複数のメモリセルエリアに書き込むデータに対して誤り訂正用の検査ビットを生成して付加する符号化器及び前記生成された検査ビットを使用して前記複数のメモリセルエリアから読み出されたデータに対して誤り訂正処理を行う復号器を備えた誤り訂正回路と
    を備えた半導体装置において、
    前記誤り訂正回路は、k=b×aビット(bは自然数)を情報ビット長として、その情報ビット長に対し1つのhビットの検査ビットを生成し、(k+h)ビットのデータを同時に書き込み及び読出しを行う単位とする
    ことを特徴とする半導体装置。
  2. 前記復号器は、前記情報ビットと検査ビットとを入力してシンドロームを計算するシンドローム計算回路と、
    前記計算されたシンドロームから誤り位置多項式の項を計算する第1の演算部及び計算された誤り多項式の項から誤り位置多項式を算出して誤り位置を検出する第2の演算部からなる誤り位置検出回路と、
    前記メモリセルエリアから読み出されたデータに対して前記検出された誤り位置でデータ反転処理を施すデータ反転回路と
    を備えた
    ことを特徴とする請求項1記載の半導体装置。
  3. 前記符号化器、シンドローム計算回路及び第1の演算部は、演算用ロジック回路を構成するレジスタと演算回路とを切り替えて構成されるものであることを特徴とする請求項2記載の半導体装置。
  4. 前記シンドローム又は誤り位置多項式の項を計算する際に使用されるガロア演算回路を更に含むことを特徴とする請求項2記載の半導体装置。
  5. データに対して誤り訂正用の検査ビットを生成して付加する符号化器を含む誤り訂正回路を備えた半導体装置において、
    前記符号化器は、k=b×aビット(bは自然数)の情報ビットのデータに対し1つのhビットの検査ビットを付加すると共に、前記符号化器には、前記データがaビットずつ入力される
    ことを特徴とする半導体装置。
  6. 検査ビットを使用してデータに対して誤り訂正処理を行う復号器を含む誤り訂正回路を備えた半導体装置において、
    前記復号器は、
    k=b×aビット(bは自然数)の情報ビットのデータに対し1つのhビットの検査ビットが付加された(k+h)ビットのデータをaビットずつ入力されシンドロームを計算するシンドローム計算回路と、
    前記計算されたシンドロームから誤り位置多項式の項を計算する第1の演算部及び計算された誤り多項式の項から誤り位置多項式を算出して誤り位置を検出する第2の演算部からなる誤り位置検出回路と、
    前記データに対して前記検出された誤り位置でデータ反転処理を施すデータ反転回路と
    を備えることを特徴とする半導体装置。
  7. 前記第2の演算部は、複数個のローケータと、前記ローケータ間に繋がる複数個の演算器により構成され、
    前記第1の演算部は、前記第2の演算部と複数本のバスにより接続されている
    ことを特徴とする請求項2または6記載の半導体装置。
  8. 前記第2の演算部は、前記第1の演算部の両側に分割して配置されることを特徴とする請求項2または6記載の半導体装置。
JP2006126365A 2006-04-28 2006-04-28 半導体装置 Expired - Lifetime JP4113225B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (2)

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

Family

ID=36966590

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4113225B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008153170A1 (ja) * 2007-06-15 2008-12-18 Toyota Jidosha Kabushiki Kaisha 電源システムおよびそれを備えた車両、ならびに充放電制御方法
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
CN104916332A (zh) * 2014-03-14 2015-09-16 华邦电子股份有限公司 半导体存储装置及nand型快闪存储器的程序化方法

Cited By (7)

* 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
WO2008153170A1 (ja) * 2007-06-15 2008-12-18 Toyota Jidosha Kabushiki Kaisha 電源システムおよびそれを備えた車両、ならびに充放電制御方法
CN104916332A (zh) * 2014-03-14 2015-09-16 华邦电子股份有限公司 半导体存储装置及nand型快闪存储器的程序化方法
JP2015176616A (ja) * 2014-03-14 2015-10-05 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR101731576B1 (ko) * 2014-03-14 2017-04-28 윈본드 일렉트로닉스 코포레이션 반도체 기억장치 및 nand 플래시 메모리의 프로그램 방법
US10068659B2 (en) 2014-03-14 2018-09-04 Winbond Electronics Corp. Semiconductor memory device and programming method of NAND flash memory
CN104916332B (zh) * 2014-03-14 2018-10-30 华邦电子股份有限公司 半导体存储装置及nand型快闪存储器的程序化方法

Also Published As

Publication number Publication date
JP4113225B2 (ja) 2008-07-09

Similar Documents

Publication Publication Date Title
JP4112849B2 (ja) 半導体記憶装置
JP4856110B2 (ja) チェンサーチ装置およびチェンサーチ方法
US7581153B2 (en) Memory with embedded error correction codes
US8069389B2 (en) Error correction circuit and method, and semiconductor memory device including the circuit
JP3272903B2 (ja) 誤り訂正検出回路と半導体記憶装置
US8990667B2 (en) Error check and correction circuit, method, and memory device
JP2010518464A (ja) 半導体記憶装置
US20090319863A1 (en) Error-correcting system of semiconductor memory, error-correcting method, and memory system with error-correcting system
JP4846384B2 (ja) 半導体記憶装置
KR20120063329A (ko) 에러 체크 및 정정기 및 그것을 포함하는 메모리 시스템
JP4113225B2 (ja) 半導体装置
KR100566162B1 (ko) 버스트 동작에 의해 데이터 및 패리티 데이터를입출력하는 반도체 기억 장치
JP2001202792A (ja) 半導体記憶装置のエラー訂正符号化方法及び半導体記憶装置
JP2014033364A (ja) 誤り検出訂正回路、及びメモリ装置
CN108665940B (zh) Ecc编码电路、解码电路以及存储器控制器
JP5617776B2 (ja) メモリ回路,メモリ装置及びメモリデータの誤り訂正方法
US11831335B2 (en) Memory system and control method of controlling nonvolatile memory
US20230387942A1 (en) Memory system and method of controlling nonvolatile memory
US20140245101A1 (en) Semiconductor memory
JPS58222497A (ja) マイクロプログラム制御装置
JP3600562B2 (ja) 半導体記憶装置
KR102064857B1 (ko) 갈로아체 연산 회로 및 메모리 장치
KR102027949B1 (ko) 에러 검출 정정 회로 및 반도체 메모리
JPH01119997A (ja) 半導体記憶装置
JPS61233500A (ja) 半導体記憶装置

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