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

半導体記憶装置 Download PDF

Info

Publication number
JP4791831B2
JP4791831B2 JP2006012648A JP2006012648A JP4791831B2 JP 4791831 B2 JP4791831 B2 JP 4791831B2 JP 2006012648 A JP2006012648 A JP 2006012648A JP 2006012648 A JP2006012648 A JP 2006012648A JP 4791831 B2 JP4791831 B2 JP 4791831B2
Authority
JP
Japan
Prior art keywords
bit
calculation
polynomial
circuit
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.)
Expired - Fee Related
Application number
JP2006012648A
Other languages
English (en)
Other versions
JP2007193910A (ja
Inventor
春希 戸田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006012648A priority Critical patent/JP4791831B2/ja
Priority to US11/625,160 priority patent/US7836377B2/en
Priority to KR1020070006142A priority patent/KR100857947B1/ko
Publication of JP2007193910A publication Critical patent/JP2007193910A/ja
Application granted granted Critical
Publication of JP4791831B2 publication Critical patent/JP4791831B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24CDOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
    • F24C15/00Details
    • F24C15/20Removing cooking fumes
    • F24C15/2078Removing cooking fumes movable
    • F24C15/2085Removing cooking fumes movable adjustable in height
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24CDOMESTIC STOVES OR RANGES ; DETAILS OF DOMESTIC STOVES OR RANGES, OF GENERAL APPLICATION
    • F24C15/00Details
    • F24C15/20Removing cooking fumes
    • F24C15/2071Removing cooking fumes mounting of cooking hood
    • 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/159Remainder calculation, e.g. for encoding and syndrome calculation

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Combustion & Propulsion (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

この発明は、半導体記憶装置に係り、特にオンチップのエラー検出訂正システムに関する。
電気的書き換え可能な不揮発性半導体メモリであるフラッシュメモリは、書き換え回数の増加に従ってエラー率が大きくなる。特に、大容量化と微細化が進むと、エラー率は上昇する。このため、フラッシュメモリチップ内に或いはこれを制御するメモリコントローラにECC(Error Correcting Code)回路を搭載することが行われる(例えば、特許文献1参照)。
フラッシュメモリを利用するホストデバイス側で、フラッシュメモリで生じたエラーを検出し訂正するECCシステムを持つようにすると、エラー率が増えた場合にホストデバイスの負荷が大きいものとなる。例えば、2ビットエラー訂正可能なECCシステムは、計算規模が大きなものとなることが知られている(例えば、特許文献2参照)。
従ってホストデバイスの負荷増大を抑えると共にエラー率増大に対処するためには、フラッシュメモリ内に2ビットエラー訂正可能なECCシステムを搭載することが望まれる。その場合に要求されることは、ECCシステムの演算速度を高速化し、フラッシュメモリの読み出しや書き込み速度の犠牲を抑えることである。
特開2000−173289号公報 特開2004−152300号公報
この発明は、高速演算可能なエラー検出訂正回路を搭載した半導体記憶装置を提供することを目的とする。
この発明の一態様による半導体記憶装置は、エラー検出訂正回路が搭載され、前記エラー検出訂正回路は、複数ビットのエラー訂正が可能な巡回符号を用いたものであって、エラー訂正可能な最大ビット数対応の次数を持つ情報多項式の中から、情報ビットとして利用する次数が、シンドローム多項式の計算規模が可及的に小さくなるように選択されている。
この発明によると、高速演算可能なエラー検出訂正回路を搭載した半導体記憶装置を提供することができる。
以下、図面を参照して、この発明の実施の形態を説明する。
図1は、一実施の形態によるフラッシュメモリの要部構成を示す図である。このフラッシュメモリは、4つのセルアレイ1即ち、T−cellアレイ(0−1),C−cellアレイ(0−2),T−cellアレイ(0−3)及びC−cellアレイ(0−4)により一つのバンクBNK0を構成し、残りの4つのセルアレイ1即ち、T−cellアレイ(1−1),C−cellアレイ(1−2),T−cellアレイ(1−3)及びC−cellアレイ(1−4)により、もう一つのバンクBNK1を構成している。
各セルアレイ1には、ワード線選択を行うロウデコーダ(RDEC)3が配置され、また隣接するT−cellアレイとC−cellアレイとが共有するセンスアンプ回路(SA)2を持つ。T−cellアレイとC−cellアレイは、詳細は後述するが、それぞれ複数の情報セルT−cellとC−cellを有し、それぞれ少なくとも一つずつの参照セルR−cellを有する。
情報セルT−cell,C−cellと参照セルR−cellとは同じメモリセル構造を有する。そして、T−cellアレイから情報セルT−cellが選択されたときに、これと対をなすC−cellアレイからは参照セルR−cellが選択される。同様に、C−cellアレイから情報セルC−cellが選択されたときに、これと対をなすT−cellアレイからは参照セルR−cellが選択される。
上下に4つずつ分けられたセルアレイ1の読み出し/書き込みデータは、データバス5,6を介し入出力バッファ7を介して、センスアンプ回路2と外部入出力端子との間で転送される。上下に4つずつ分けられたセルフアレイ1の間に、読み出しデータのエラー検出訂正回路であるECC回路8が設けられている。
図2は、センスアンプ回路2を共有するT−cellアレイとC−cellアレイの具体構成を示している。T−cellアレイには、一つのビット線BLに、複数の情報セルNANDストリング,T−NANDと、少なくとも一つの参照セルNANDストリングR−NANDとが接続されている。T−cellアレイには、T−cellアレイ側のビット線BLと対をなすビット線BBLに、複数の情報セルNANDストリング,C−NANDと、少なくとも一つの参照セルNANDストリングR−NANDとが接続されている。
センスアンプ回路2は、ビット線対BL,BBLのセル電流差を検出してデータをセンスする、電流検出型のセンスユニットSAUを配置して構成される。図では、一対のビット線BL,BBLに一つずつセンスユニットSAUを配置した場合を示しているが、通常は複数対のビット線で一つのセンスユニットを共有する方式が用いられる。
情報セルNANDストリングT−NAND,C−NAND及び参照セルNANDストリングR−NANDは、ビット線と直交する方向に複数個配列されて、セルブロックを構成する。セルブロックには共通に、ワード線TWL,CWL,RWLが配設される。
図3は、センスユニットSAUに接続される情報セルNANDストリングT−NAND(またはC−NAND)と参照セルNANDストリングR−NANDの具体構成を示している。それぞれ、複数個の直列接続された、電気的書き換え可能な不揮発性メモリセルM0−M31と、選択ゲートトランジスタSG1,SG2とを有する。同じ不揮発性メモリセルM0−M31を用いているが、情報セルNANDストリングT−NAND(またはC−NAND)ではこれらが情報セルT−cell(またはC−cell)として、また参照セルNANDストリングR−NANDでは参照セルR−cellとして用いられる。
センスユニットSAUは、データセンス時、情報セルNANDストリングT−NAND(またはC−NAND)と参照セルNANDストリングR−NAND内の対応するセルが同時に選択され、それらのセル電流Icと参照電流Irの差を検出して、データセンスを行う。
図4は、4値記憶を行う場合のメモリセルのデータレベル(しきい値レベル)分布を示している。情報セルT−cell,C−cellには、4つのデータレベルL0,L1,L2,L3のいずれか一つが書かれる。参照セルR−cellには、例えばデータレベルL0とL1の間に設定された参照レベルLrが書かれる。
4つのデータレベルL0−L3のビット割付は、情報セルT−cellとC−cellの間で異なる。例えば、4値データを上位ビットHBと下位ビットLBで(HB,LB)で表すものとして、T−cellアレイ側の情報セルT−cellでは、L0=(1,0),L1=(1,1),L2=(0,1),L3=(0,0)とされ、C−cellアレイ側の情報セルC−cellでは、L0=(0,0),L1=(0,1),L2=(1,1),L3=(1,0)とされる。
図4には、読み出し時、情報セルT−cell,C−cellに読み出すべきデータに応じて与えられる読み出し電圧R1,R2,R3及び参照セルR−cellに与えられる読み出し電圧Rrを示している。また、書き込み時、情報セルT−cell,C−cellに書き込むべきデータに応じて与えられる書き込みベリファイ電圧P1,P2,P3及び参照セルR−cellに与えられる書き込みベリファイ電圧Prを示している。
この実施の形態では、二つの512MbitのバンクBNK0,BNK1を用いて、1Gbitメモリを構成する場合のECC回路8の搭載方法とそのアクセスモードについて説明する。
ここで想定しているメモリは、×16IO構成であって、各バンクのページアドレスは独立に設定できるが、アドレス発生は全バンクに共通であり、ページアドレスをどのバンクに適用するのかを指定することによって、各バンクに割り付けるものとする。従って、バンク間でインターリーブしてページアドレスを利用する。
1バンク当たり1024kページである。各バンクの16IOに共通のページ長は32ビットで、このうち8ビットがパラレルに出力できるとする。ページ長は1回のワード線アドレスの設定とセンス動作で読み出せる1IOあたり、バンクあたりの最長データ長である。
このような構成ではセンスアンプ回路2からの1回のデータ転送で128ビットのデータが外部に出力される。すなわち構成上2のべき乗のデータが転送される。
このようなフラッシュメモリに搭載するECC回路8として、2ビットのエラーが訂正可能なBCH(Bose−Chaudhuri−Hocquenghem)符号即ち、2重エラー訂正BCH符号を導入する。以下、この符号を2EC−BCH符号という。2ビットエラー訂正を可能とするためには、異なる根をもつ連立方程式が必要である。2EC−BCHコードは、以下に述べるように、二つの原始多項式の積で表されるコード生成多項式を持つ巡回符号である。
使用するビット長は2−1であり、情報として利用できるデータビットは2−1−2nである。2ビットのデータを扱うにはn=m+1とすることになり、必要な量の2倍に近いデータ長を用いなければならない。
図1のメモリ構成で、128ビットの情報データの2ビットエラー訂正を行なうのに必要な2EC−BCHコードは、ガロア体GF(2)であり、使用するビット長は2−1=255であり、エラーの検査ビットとして16ビットが必要である。従って、128ビットデータ長に16ビットの検査ビットを加えた144ビットが必須となるが、残りの111ビットが余分になる。このとき図1に示すように例えば各バンクを2分した上下セルからのデータバス5は、各々72DQ線となり、トータル144ビットのデータを一括転送することになる。
必要のない余分な111ビットの扱いと、BCH符号の内でどのように情報ビット選択するかでECCシステムの効率が変わるので、最適なECCシステムを構成する方法を検討しなければならない。
必要なビット数は不良セルの置き換えのリダンダンシーをも含めて考えれば128ビットより多くなることもあるが、ここで検討する128ビットデータ長の場合から容易に拡張可能である。
(データのエンコーディング)
ガロア体GF(2)上の2EC−BCHについて概要を説明する。GF(256)の原始根をαとすると、これを根とする対応するGF(2)上の8次の原始多項式m(x)は、数1のように表される。即ち、αのべき乗とm(x)によるxのべき乗の既約多項式がお互いに対応するGF(256)の要素となる。
また、αの3乗を根とする8次の既約多項式として、m(x)と互いに素な数1に示す多項式m(x)を用いる。
Figure 0004791831

これらの二つの原始多項式をもとに、2ビットエラー訂正可能なECCが構成される。書き込むべきデータに検査ビットを付加してエンコードするには、コード生成多項式として、数2のようなm(x)とm(x)の積多項式g(x)を作る。
Figure 0004791831

2ビットエラー訂正が可能な、情報ビットとして利用できる最大ビット数は、2−1=255から検査ビット数16を引いた239ビットである。これらを、ビット位置16から254の係数をa16〜a254として、数3のような238次の情報多項式f(x)を作る。
Figure 0004791831

実際にはデータとして用いるのは、239ビット中例えば128ビットであり、このとき111ビットの係数は“0” に固定して対応する次数の項がない情報多項式となる。239の項数の情報多項式f(x)のうち、その係数を“0”に固定する111項として、どの次数を選ぶかによって、後述するデコード時のシンドローム計算の計算量が異なるのでこの選択のしかたが重要となる。これは後に説明する。
情報多項式f(x)から、検査ビット16ビットを含むデータ多項式f(x)x16を作る。このデータ多項式から検査ビットを作るには、データ多項式f(x)x16をコード生成多項式g(x)で割った、数4のような15次の剰余多項式r(x)を求める。
Figure 0004791831

この剰余多項式r(x)の係数b15〜bを検査ビットとして用いる。すなわち、239から選ばれた128の係数ai(128)〜ai(1)を“情報ビット”とし、b15〜bの16ビットを“検査ビット”として、下記数5に示す計144ビットがメモリに記憶させる“データビット”となる。
Figure 0004791831

ここで、ai(k)は、メモリに外部から書き込むデータであり、このデータをもとに、チップ内部のECCシステムで検査ビットbが作られ、これが同時にセルアレイに書き込まれることになる。
(データのデコーディング)
次に、セルアレイから読み出した144ビットのデータからエラーを検出し、2ビットのエラーまでを訂正する方法について説明する。
f(x)x16なる254次のデータ多項式の係数をメモリに記憶させてエラーが生じたとすれば、そのエラーも254次多項式で表される。このエラー多項式をe(x)とすれば、メモリから読み出したデータは、数6のような構造の多項式ν(x)になる。
Figure 0004791831

この数6のエラー多項式e(x)の係数が“1”の項がエラーとなる。即ち、e(x)を検出することがエラー検出と訂正を行なうことに相当する。
第一段階として、読み出しデータ多項式ν(x)を原始多項式m(x),m(x)で割って各々の剰余をS(x),S(x)とする。数7に示すように、これは、e(x)をm(x),m(x)で割った剰余に等しいことは、ν(x)の構造から明らかである。
Figure 0004791831

この剰余S(x)とS(x)をシンドローム(syndrome)多項式という。
2ビットのエラーがiとjビットにあるとすれば、e(x)=x+xである。GF(256)の要素であるm(x)に関する既約剰余多項式の計算でiとjを求める。即ち、x≡p(x)mod m(x)としたとき、数8に示すように、エラーの次数の対応する剰余p(x),p(x)のそれぞれをX,Xとし、シンドローム多項式S(x),S(x)に対してS(x)とS(x)に対応する剰余pσ1(x),pσ3(x)のそれぞれをSとSとする。
Figure 0004791831

(x)がαを根として持ち、m(x)で割り切れることから、次の数9の関係式が得られる。
Figure 0004791831

第二段階として未知数XとXを根とする多項式Λ(x)を考えると、数10のように、積XがSとSで表現できるので、係数がsyndrome多項式から計算できる。
Figure 0004791831

第三段階としてΛ(x)のGF(256)での根となる既約多項式p(x)を見つければ、X,X=p(x)からエラービット位置iやjがp(x)のnとして求められる。即ち、Λ(x)≡0 mod m(x)を、n=0〜254で探索してヒットしたnがエラービットとなる。
下記数11に示すように、1ビットエラーの時は、X=S,X =S=S となり、エラー位置がSからわかる。エラーがないときにはS=S≡0(mod m(x))となる。3ビット以上のエラーでその位置が計算出来ないときにはS,Sの一方のみが0(mod m(x))となる。
Figure 0004791831

具体的な計算を行なう際に必要となるものをまとめると、次の通りである。
エンコードでは、最高254次のデータ多項式f(x)x16からデータビットとして選ばれた128個の項のコード生成多項式g(x)による剰余多項式r(x)の係数の表(剰余テーブル)が必要である。検査ビットの計算にはデータビットで選ばれた項に対応するこの係数を選び、“0”または“1”の2元符号を用いたGF(2)上での加算をおこなう。
デコードでは、syndrome多項式S(x)及びS(x)の計算を行なう際に、254次から0次までのm(x)による剰余p(x)の係数の表(剰余テーブル)が必要でこれから検査ビットと同様にして計算を行なう。
GF(256)を用いた2EC−BCHで使用可能なデータビット239を全て使用しないメモリシステムで、ECCでの計算時間を少なくするためには、情報多項式の中から実際に使用する項(次数)を選択するための具体的な選択方法が必要である。特にシンドロームの計算は剰余を効率的に求められるような項(次数)の選択をしなければならない。
まず剰余の計算の具体的な方法を説明する。
GF(2)上での計算では掛け算、割り算とも多項式の係数の足し算すなわち“1”の数の偶奇判定で行なわれる。関係する項の係数“1”の数が偶数なら“0”、奇数なら“1”が演算結果となるパリティチェックが基本の計算回路となる。
構成の単純な4ビットのパリティチェック回路(PC)を図5Aに示し、その回路記号を図5Bに示す。いろいろな構成のパリティチェックが可能な回路は工夫が可能であるが、ここでは簡単のためにパリティチェックのロジックをそのままトランジスタで表現した回路を示す。
このパリティチェック回路は、4ビットa,b,c,dとその相補信号/a,/b,/c,/dを入力として、偶数個の“1”が入力にあるとき端子EPに“0”を出力する上段回路401と、奇数個の“1”が入力にあるとき端子OPに“0”を出力する下段回路402とから構成されている。回路401,402はいずれも、電源Vddと接地Vssとの間に、4ビットが入力される4つのPMOSトランジスタと4つのNMOSトランジスタが直列接続されたゲートを8個並列接続して構成されている。
即ち上段回路401は、“1”入力が0,2,4個のいずれかのときに、Vss側のNMOSトランジスタが導通して、EP=“0”となる。下段回路402は、“1”入力が1個又は3個のいずれかのときに、Vss側のNMOSトランジスタが導通して、OP=“0”となる。
このパリティチェック回路では、4ビットのパリティチェックをインバータ1段相当の遅延時間で計算できる。
このようなパリティチェック回路を用いて、GF(256)の多項式のGF(2)上での積の計算法を、図6に示す。GF(256)の多項式の演算は、原始多項式が8次であるから、全て7次多項式p(x)間の演算となり、四則演算結果は全てどれかの多項式p(x)になる。{p(x)}−1なる除算は、p(x)255−n(x)の積になる。
(x)のm次の項の係数をP と表して、下記数12の7次多項式p(x),p(x)の積は、図6のように計算される。係数P は無論“0”か“1”である。
Figure 0004791831

≡p(x)(mod m(x))であるので、14次の項は掛けるp(x)の7つ先にpj+7(x)が出てくる、という規則を使うと、多項式p(x)とp(x)の積は、図6に示すように、各多項式の係数間の掛け算と和演算(=パリティチェック)とで可能となる。
すなわち、1か0との掛け算を行なったものを7から0の各次数ごとに和であるパリティチェックを行い、その結果がp(x)p(x)の各次数の係数になる。掛けるp(x)については7つ先までの多項式の係数が必要となる。
回路としてはパリティチェック回路のみでよく、掛けるp(x)からpj+7(x)の係数に固有の入力を行なう回路をもうけることになる。これは係数P =0のパリティチェックはないからである。パリティチェック回路は、図7に示すように、4ビットパリティチェック回路のほか、必要な入力数に応じて、3ビットパリティチェック回路、2ビットパリティチェック回路等を用いることができる。
このような演算方法をエンコードで検査ビットを生成する際に応用する。次にこれを説明する。
検査ビットの計算は、コード生成多項式g(x)で情報データから作られたデータ多項式f(x)x16を割って剰余多項式r(x)を求めることによって得られる。この演算を行うためには単項のxをg(x)で割った15次の剰余多項式r(x)の係数を予め求めておき、この係数をp(x)の積の場合と同じように用いる。r(x)の係数をR (m=0〜15)とし、情報ビットとしてのf(x)x16のxの係数をaとする。
具体的な計算は、データビットをa16〜a254としたとき、このうちの111ビット分を後のシンドローム計算が少なくなるように選んで“0”に固定してから、図8に示すように、データ多項式の係数aと剰余多項式の係数R の掛け算と、同じ次数の項の係数の和演算(パリティチェック)によって行なわれる。すなわちデータビットaが“1”である次数の剰余r(x)の係数R を各mごとにGF(2)上での和すなわちパリティチェックを行い、結果を検査ビットbとする。
次に、111ビットの“0”に固定するビット位置の選択を行なう際に必要となるデコードでの計算法を説明する。
まず、メモリセルから読み出したデータdを係数とする多項式ν(x)のm(x)での剰余を求めるのがシンドローム多項式S(x)の計算である。この演算は、図9に示すように、x(i=254〜0)のm(x)による剰余p(x)の係数P (m=0〜7)とdの積と、その結果の和(パリティチェック)とにより行なわれる。すなわち、dが“1”であるp(x)のm次の係数P のパリティチェックの結果をシンドローム多項式S(x)のm次の係数とする。
この計算では、dが“0”であるところと、P が“0”であるときは計算を行なわないので、239の情報ビット全てを使用しない場合に使用しないビットの選択が計算量を決めることになる。
次にもう一つのシンドローム多項式S(x)に関連する計算法を説明する。
シンドローム多項式S(x)に関連してエラー位置jの検索に必要なのは多項式S(x)である。S(x)自体は、ν(x)のm(x)での剰余である。ν(x)とS(x)との間には、xのm(x)による剰余多項式p(x)の係数をP (m=0〜7)とし、xの係数をdとして、次の数13のような関係がある。
Figure 0004791831
以上の数13から、S(x)はν(x)の係数dと剰余p3i(x)によって計算できる。従って必要なのは、xのm(x)でのp(x)の係数P であり、具体的な計算法は、図10のようになる。
この計算でもdが“0”であるところと、P3i が“0”であるときは計算を行なわないので、239の情報ビット全てを使用しない場合に使用しないビットの選択が計算量を決めることになる。デコードではシンドローム多項式の計算の後エラー位置を検索する演算などを行なうので、計算時間を短くするためにも計算量を出来るだけ少なくしたい。これは、238次の情報多項式f(x)の中から、例えば最適な128個の項(次数)の選択を行なうことにより可能となる。次にこの選択の方法について説明する。
シンドローム多項式S(x)とS(x)は同時に並列に計算を行なう。各多項式の各次数の係数の計算は“1”のパリティチェックであるのでどの次数の係数の計算もバラツキなくほぼ同じ時間で行なわれれば計算量は減る。
そのための選択の一つの方法は、シンドローム計算に用いられる7次の剰余多項式p(x)とp3n(x)の係数が“1”の総和を、各nについて求め、総和の数の少ない方から必要なデータビット数だけのnを選択する。この際最初の16個は検査ビットとしてx〜x15の係数を使うので固定し、17個目以降の選択に係数の“1”の総和の昇順選択をする。
また、同じ総和の数のグループ内で選択が終了する際には、係数“1”がp(x)とp3n(x)内で各次数の項の間に均等に分布するnを基準に同じ次数項での“1”の重なりが少ない順に選択する。すなわち基準となるnのp(x),p3n(x)の係数“1”の次数での項の係数の総和が少ない順に選択する。
このような選択方法で選んだ254次のデータ多項式f(x)x16で144ビットデータを扱う場合に使用する、144個の次数nを、図11に示す。
この選択方法は必ずしもパリティチェックを行なう多項式の各次数の係数“1”の数の最大のものを最も少なくするとは限らないが、全ての組合せの中から計算ステップが最小となるものを探索する様な大規模な計算を必要としないでシンドローム計算回路規模を減らしかつ、シンドローム計算のステップ数を減らす簡便な方法ではある。
シンドローム計算を最適にするように選んだ次数を用いてエンコードを行なう際には、対応する次数の剰余多項式r(x)の係数が必要になるので、これを図12A及び図12Bに示す。
図12A及び図12Bは、データ多項式f(x)x16をコード生成多項式g(x)で割った15次の剰余多項式の係数である。xからx15までは情報ビット多項式にはないので実際には使用しない。また0次から3次、4次から7次、8次から11次、12次から15次の係数を16進表示したものも併せて示した。
これらの剰余多項式r(x)の係数表から選択してデータビットとして使用する128個のxに対応するものについての各係数をまとめたものを、図13に示す。即ち図13は、g(x)の剰余r(x)であって、選択されたxの剰余r(x)の各次数での係数が“1”であるnの表である。
例えば、x15の係数が“1”であるr(x)の次数nは、図13のm=15の列の係数“1”の数が1から62の欄に書かれている17,18,22,…,245,249,250である。チェックビットのx15の係数に相当するb15は情報データ多項式f(x)x16の中のこの選択されたn次の項の係数のパリティチェックの結果として得られる。
このようにして、図13の表から行なう検査ビットの計算回路例を図14に示す。xのm=11,5,2は図13の表からパリティチェックするビット数が最大72個であるので、図14ではこの場合を例として示す。xのg(x)による剰余多項式r(x)のm次項の係数P が“0”でない次数nは表にしてあるので、各mについて表からnを選択し、aと/aを用いてパリティチェックを行なう。
入力の数が4の剰余系のいずれに属するかによって用いるパリティチェック回路(PC)を組合せる。すなわち、4で割り切れれば4ビットPCのみで、1が余れば5ビットPCを加え、2が余れば2ビットPCを加え、3が余れば3ビットPCを加える。
m=11,5,2の例では72入力である。このとき検査ビット計算回路は図14に示すように、3段のパリティチェック回路により構成することができる。初段は、18個の4ビットPCで構成する。2段目は18入力となるので、4個の4ビットPCと1個の2ビットPCを用いて構成する。3段目は5入力となるので1個の5ビットPCで構成する。3段目のパリティチェック回路の出力が検査ビットb,/bとなる。
検査ビットの計算の場合と同様の計算をシンドローム計算でも行なうので次にこれを説明する。
図15はシンドローム多項式S(x)の計算で使用する7次の剰余多項式p(x)の選択されたnでの各次数の係数“1”のnの表である。例えばxの係数が“1”であるp(x)の次数nは、表のm=7の列の係数“1”の数が1から56の欄に書かれている7,11,12,…,237,242,245である。S(x)のxの係数はデータ多項式ν(x)の中のこの選択されたn次の項の係数のパリティチェックの結果として得られる。
このようにして、図15の表から行なうシンドロームS1(x)の計算回路例を図16に示す。m=6,2の場合に、図15からパリティチェックするビット数が最大66個となるので、図16ではこの場合を例として示す。xのm(x)の剰余多項式p(x)のm次項の係数P が“0”でない次数nは表にしてあるので、各mについて表からnを選択し、データビットdと/dを用いてパリティチェックを行なう。
入力の数が4の剰余系のいずれに属するかによって用いるパリティチェッカ(PC)を組合せる。すなわち4で割り切れれば4ビットPCのみで、1が余れば5ビットPCを加え、2が余れば2ビットPCを加え、3が余れば3ビットPCを加える。
m=6,2の例では66入力であるので、この場合も3段のパリティチェック回路で構成する。初段は、4ビットPCを16個と2ビットPC1個で構成する。2段目は17入力となるから、4ビットPCを3個と5ビットPCを1個で構成する。3段目は4入力となるので4ビットPC一つでよい。3段目出力が、係数(s1)となる。
シンドローム多項式S(x)の計算にも同様であり、次にこれを説明する。
図17は、シンドローム多項式S(x)の計算で使用するx3nのm(x)での剰余p3n(x)の選択されたnでの各次数の係数“1”の次数nの表である。
例えば、xの係数が“1”であるp3n(x)の次数nは、表のm=7の列の係数“1”の数が1から58の欄に書かれている4,8,14,…,241,242,249である。S(x)のxの係数に相当する(s3)はデータ多項式ν(x)の中のこの選択されたn次の項の係数のパリティチェックの結果として得られる。
その計算回路例を図18に示す。図17から、xのm=5がパリティチェックするビット数が最大73個であるので、図18はこの場合を例として示す。x3nのm(x)の剰余多項式p3n(x)のm次項の係数P3n が“0”でないnは表にしてあるので、各mについて表からnを選択し、dと/dを用いてパリティチェックを行なう。
入力の数が4の剰余系のいずれに属するかによって用いるパリティチェッカを組合せる。すなわち4で割り切れれば4ビットPCのみで、1が余れば5ビットPCを加え、2が余れば2ビットPCを加え、3が余れば3ビットPCを加える。
m=5の例では73入力であるので、この場合も3段のパリティチェック回路で構成する。初段は、4ビットPCを17個と5ビットPCを1個で構成する。2段目は18入力となるので、4ビットPCを4個と2ビットPCを1個とで構成する。3段目は5入力となるので5ビットPCを1個で構成できる。3段目出力が、係数(s3),/(s3)となる。
次に、デコードで必要となる剰余多項式p(x)の係数を図19に示す。図ではxのm(x)の剰余であるp(x)の各次数の係数の“0”,“1”と、0〜3次及び4〜7次の係数をそれぞれ16進表示で表したものを、各次数nについて示した。この表を用いて先に説明したようにデータビットとして使用する128+16の次数nを選択する。
次にエラー位置を検索する回路システムについて説明する。
エラー位置検索は、数10の多項式Λ(x)を少し書き換えた、次の数14を満たすp(x)を求めることである。
Figure 0004791831
言い換えれば、エラー位置検索計算システムは、多項式(p)S(x)+(S(x))+S(x)/S(x)の係数と、p2nの係数の比較を行い、等しくなるnを見つけることを目的とする。
図20はその様なエラー位置検索計算システムの概要である。各p(x)(n=0〜254)に対応する255個の演算部201を持つ。これらの演算部201の演算結果と(p(x))=p2n(x)の係数を比較して一致したnの位置を見つけると、この位置がエラーのデータビット位置となる。
255個の演算部201は、実際にデータビットとして利用する選択された144ビットの第1の演算部分D−part(数14の右辺第2項、第3項及び第4項対応部分)と、シンドローム多項式のみが関係する第2の演算部分S−part(数14の右辺第3項及び第4項対応部分)に分かれる。
シンドローム多項式の係数データ(s1),/(s1),(s3),/(s3)は、データバス202に出力され、ここから演算部201に供給される。演算部201は、第1の演算部分D−partと第2の演算部分S−partに共通に、シンドローム多項式の係数によって演算部を選択するためのデコーダ部“dec.”を持つ。デコーダ部“dec.”は、各p(x)の位置に対してp2n(x)の係数に相当するS(x)の係数で選択される(n/2)デコーダと、p255−n(x)の係数に相当するS(x)の係数で選択される(−n)デコーダを持つ。
演算部201はまた、(n/2)デコーダによって選ばれる(p(x))=p2n(x)の係数を発生させる部分と、(−n)デコーダによって選ばれるシンドローム多項式S(x)とp(x)を掛けた多項式の係数を発生するパリティチェック部とを持っている。これらの部分がデコーダで選ばれて(S(x))とS(x)/S(x)をそれぞれ各partの共通データバス203へ出力する。
第1の演算部分D−partは更に加えて、p(x)とS(x)の積の多項式の係数を発生するパリティチェック部を持つ。このパリティチェック部は全ての第1の演算部分D−partで同時に演算が行なわれる。更にこのパリティチェック演算結果と、各part共通のデータバス203の(S(x))とS(x)/S(x)とのパリティチェックを行うパリティチェック部204が、各第1の演算部分D−partに付属する。
これらのパリティチェック部204の演算結果は、p(x)の位置のp2n(x)の係数に相当するデコードを行なう(2n)デコーダ部205を選択するようになっている。これにより選択されたp(x)がエラーのビット位置に対応する選択された項xであり、144ビットのデータ位置kとnの対応でエラーを特定することができる。
図21は、図20の演算部201のうち、シンドローム多項式(S(x)),S(x)/S(x)にのみ関係する第2の演算部分S−partの計算回路の詳細を、p(x)位置について示している。S(x)の係数をデコードしてこの第2の演算部分S−partを選択するデコーダとして、係数がp(x)の係数と同じときに選択されるデコーダ211((i) decoder)と、p255−i(x)の係数と同じ時に選択されるデコーダ212((255-i) decoder)とを持っている。
デコーダ211の出力はp2i(x)の係数P2i (m=0〜7)を発生するラッチ213の出力スイッチ214につながり、この第2の演算部分S−partが選択されれば、その係数をバス203の(S側に出力する。デコーダ212の出力は、S(x)の係数を取り込むスイッチ215,216と、これらの係数のパリティチェックを行なうパリティチェック回路218の出力をバス203のS/S側に出力するスイッチ217につながる。
パリティチェック回路218は、係数(s3)と係数Pi+k を掛けて、k=0〜7の和を求めるものである。即ち、Pi+k が“1”である係数(s3)のパリティチェックを行い、その結果が係数(s3/s1)(m=0〜7)となる。このパリティチェック結果は、スイッチ215,216,217がオンになることで、バス203のS/S側に出力される。
パリティチェック回路218の構成は先に示した計算回路例のようにいろいろな種類の回路を組み合わせて、例えば最大2段で構成される。
図22は、第1の演算部分D−partの詳細を、p(x)位置について示している。ここでは、第2の演算部分S−partと同じくシンドローム多項式のみに関連した計算に加えて、第1の演算部分D−partに特有の計算を行う。即ちデコーダ211,212、ラッチ213、スイッチ215−217、パリティチェック回路218は、図21に示した第2の演算部分S−partと同じである。
第2の演算部分D−partに特有の演算は、S(x)の係数を取り込み、これらの係数のパリティチェックを行なうパリティチェック回路219の部分である。このパリティチェック回路219は、係数(s1)と係数Pj+k を掛けてk=0〜7の和を求めるものである。即ち、Pj+k が“1”である(s1)のパリティチェックを行い、その結果がp(x)S(x)の係数(p(m=0〜7)となる。このパリティチェック回路219の構成も、先に示した計算回路例のようにいろいろな種類の回路を組み合わせて、最大2段で構成される。
図23は、上述した第1及び第2の演算部分D−part,S−partの出力の演算をしてエラー訂正を行なうエラー訂正回路の構成である。ここでは、各第1の演算部分D−partに付随して多項式p(x)S(x)+(S(x))+S(x)/S(x)を計算し、その計算結果をp2n(x)と比較して、データのエラー訂正を行う。具体的に図23は、データの実際のビット位置kに対応する第1の演算部分D−partであるpj(k)(x)について示している。
(x)S(x)+(S(x))+S(x)/S(x)なる多項式係数の計算は、パリティチェック回路221で行う。即ちここで、第1の演算部分D−partからの係数(pと、共通バス203上の係数((Sと、共通バス203上の係数(S/Sの3ビットパリティチェックを、m=0〜7の各mについて行う。
その計算結果は、p2j(k)(x)の係数と一致するときに選択されるデコーダ222((2j) decoder)に入力される。このデコーダ222は、NOR回路G1とNAND回路G2とで構成され、互いに相補的な出力を出す。すなわち、係数が“一致”とデコードされれば、NOR回路G1からは“1” 、NAND回路G2からは“0” が出力される。一致しなければ、これらの逆データが出力される。
このデコーダ222の出力は、データビットdとのXOR回路である2ビットパリティチェック回路(データ反転回路)223に入る。この2ビットパリティチェック回路223は、図24に示すように、2ビット入力が一致の場合にEP=“0”を出力する回路である。従って、デコーダ222が一致信号を出せば、データビットdの反転が出力され、不一致ならデータビットdがそのまま出力される。
エラーが3ビット以上あれば訂正は不可能である。これを判断するために判定回路224が設けられている。ここでは、シンドローム多項式S(x)とS(x)の一方のみが、mod m(x)で0であれば、3ビット以上のエラーが有ることになる、という事実を利用する。具体的には、m=0〜7の範囲で係数(s1)=0,(s3)=0をそれぞれ判定するためにNOR回路G3,G4を用い、その判定結果を2ビットパリティチェック回路225で計算する。
パリティチェックの結果が“1”であれば、訂正不能(non correctable)であることを示す。このパリティチェック回路225の“1”出力は、デコーダ222を非活性にしてデータ訂正をしないような制御信号として用いられる。
ここまで、2ビットエラーまで訂正可能な2EC−BCHコードを説明したが、より一般的に、t≧2として、t重エラー訂正BCH符号を用いることができる。この場合、ガロア体GF(2)のt個の元α,α,…,α2t−1をコードの根に持つBCH符号となる。
この発明は、上記実施の形態で説明したフラッシュメモリの他、如何なる半導体メモリにも適用可能である。
例えば図25は、通常のNAND型フラッシュメモリのメモリコア回路構成を示している。このメモリコア回路は、セルアレイ1a、センスアンプ回路2a及びロウデコーダ3aを有する。セルアレイ1aは、直列接続されたメモリセルM0−M31を有するNANDセルユニット(NANDストリング)を配列して構成されている。NANDセルユニットNUの一端は選択ゲートトランジスタS1を介してビット線BLe(BLo)に、他端は選択ゲートトランジスタS2を介して共通ソース線CELSRCに接続されている。
メモリセルの制御ゲートは、ワード線WL0−WL31に接続され、選択ゲートトランジスタS1,S2のゲートは選択ゲート線SGD,SGSに接続されている。ワード線WL0−WL31と選択ゲート線SGD,SGSを選択駆動するのがロウデコーダ3aである。
センスアンプ回路2aは、同時書き込み及び読み出しを行う1ページ分のセンスユニットSAを有する。各センスユニットSAには、ビット線選択回路4により、隣接するビット線BLe,BLoのいずれかが選択されて接続される。これにより、一つのワード線WLiと複数の偶数番ビット線BLe(或いは複数の奇数番ビット線BLo)により同時に選択されるメモリセルの集合が、同時に書き込み/読み出しが行われる1ページ(1セクタ)となる。非選択側のビット線は所定電位を与えたシールド線として利用することにより、選択ビット線間の干渉を防止することができる。
ワード線WL0−WL31を共有するNANDセルユニットの集合は、データ消去の単位とするブロックを構成し、図のようにビット線の方向に複数のブロックBLK0−BLKnが配置される。
この様なコア回路を持つNAND型フラッシュメモリにおいても、微細化や多値化が進むと、2ビット以上のエラー訂正をチップ内で実現する必要性が増える。この発明のエラー訂正システムは、エラー検出訂正の計算規模を抑えて高速演算可能としており、従ってこの様なメモリに適用して有効である。
この発明の実施の形態によるフラッシュメモリの要部構成を示す図である。 同フラッシュメモリのセルアレイの具体的構成を示す図である。 同セルアレイの更に具体的な構成を示す図である。 同フラッシュメモリのデータレベル関係を示す図である。 ECC回路に用いられる“1”の偶奇判定を行う4ビットパリティチェック回路を示す図である。 同パリティチェック回路の記号を示す図である。 GF(2)上での多項式の積演算の方法を示す図である。 その積演算に用いられるパリティチェック回路を示す図である。 ECC回路のエンコードにおける検査ビット計算法を示す図である。 ECC回路のデコードにおけるシンドローム多項式S(x)の計算法を示す図である。 同じくシンドローム多項式S(x)の計算法を示す図である。 情報多項式のうち、データビットに使用するために選択された144個の次数を示す図である。 データ多項式をコード生成多項式で割った15次の剰余多項式の係数表(一部)である。 データ多項式をコード生成多項式で割った15次の剰余多項式の係数表(残部)である。 同15次の剰余多項式の各次数の係数が“1”であるnの表である。 検査ビットの計算に用いられるパリティチェック回路構成を示す図である。 シンドローム多項式S(x)の計算で使用する剰余多項式p(x)の選択されたnでの各次数の係数“1”のnの表である。 シンドローム多項式S(x)の計算回路例である。 シンドローム多項式S(x)の計算で使用する剰余多項式p3n(x)の選択されたnでの各次数の係数“1”のnの表である。 シンドローム多項式S(x)の計算回路例である。 デコードで必要となる剰余多項式p(x)の係数表である。 ECC回路のエラー位置検索回路を示す図である。 同エラー位置検索回路のS−part部の構成を示す図である。 同エラー位置検索回路のD−part部の構成を示す図である。 同エラー位置検索回路に付属するエラー訂正回路の構成を示す図である。 同エラー訂正回路に用いられる2ビットパリティチェック回路を示す図である。 この発明が適用されるNAND型フラッシュメモリのコア回路構成を示す図である。
符号の説明
1,1a…セルアレイ、2,2a…センスアンプ回路、3,3a…ロウデコーダ、5,6…データバス、7…IOバッファ、8…ECC回路、201…演算部、202,203…データバス、204…パリティチェック部、205…デコーダ部、211,212…デコーダ、213…係数ラッチ、214−217…スイッチ、218,219…パリティチェック回路、221…3ビットパリティチェック回路、222…デコーダ、223…2ビットパリティチェック回路(データ反転回路)、224…判定回路。

Claims (5)

  1. エラー検出訂正回路が搭載された半導体記憶装置において、
    前記エラー検出訂正回路は、複数ビットのエラー訂正が可能な巡回符号を用いたものであって、エラー訂正可能な最大ビット数対応の次数を持つ情報多項式の中から、情報ビットとして利用する次数が、シンドローム多項式の計算規模が可及的に小さくなるように選択されている
    ことを特徴とする半導体記憶装置。
  2. 前記エラー検出訂正回路は、ガロア体GF(2)によるt(≧2)ビットエラー訂正BCH符号を用いるものであり、その使用ビット長の中から、複数のシンドローム多項式の計算に用いる既約剰余多項式の係数“1”の総和が少ない順に並べた次数から、所定個数の次数が情報ビット用として選択される
    ことを特徴とする請求項1記載の半導体記憶装置。
  3. 前記エラー検出訂正回路は、ガロア体GF(2)による2ビットエラー訂正BCH符号を用いるものであり、その使用ビット長255の中から、二つのシンドローム多項式の計算に用いる既約剰余多項式の係数“1”の総和が少ない順に並べた144の次数が、16個の検査ビット用及び128個の情報ビット用として選択される
    ことを特徴とする請求項1記載の半導体記憶装置。
  4. 前記エラー検出訂正回路の中のエラー位置検索回路は、
    シンドローム多項式S(x),S(x)の係数データが出力される第1のデータバスと、
    第1のデータバスの係数データにより144個が選択され、エラービット対応の剰余p(x)とシンドローム多項式S(x),S(x)との間で選択された144の要素に対応するp(x)S(x)なる第1の演算と、シンドローム多項式のみの演算である(S(x))+S(x)/S(x)なる第2の演算とが同時並行して行われる255個の演算部と、
    これらの演算部のうち第2の演算の演算結果を出力する第2のデータバスと、
    第2のデータバス上のデータと前記演算部の第1の演算の演算結果との間で和演算を行う144個のパリティチェック部と、
    これらのパリティチェック部の演算結果とp2n(x)とを比較して一致するエラービット位置nを求めるデコード部とを有する
    ことを特徴とする請求項3記載の半導体記憶装置。
  5. 前記エラー検出訂正回路の中のエラー訂正回路は、
    前記エラー位置検索回路の中の各第1の演算の演算結果と第2のデータバス上の係数S(x)とS(x)/S(x)との間の和演算を行う3ビットパリティチェック回路と、
    この3ビットパリティチェック回路の演算結果に応じて読み出しデータビットを反転させる反転回路とを有する
    ことを特徴とする請求項4記載の半導体記憶装置。
JP2006012648A 2006-01-20 2006-01-20 半導体記憶装置 Expired - Fee Related JP4791831B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006012648A JP4791831B2 (ja) 2006-01-20 2006-01-20 半導体記憶装置
US11/625,160 US7836377B2 (en) 2006-01-20 2007-01-19 Semiconductor memory device
KR1020070006142A KR100857947B1 (ko) 2006-01-20 2007-01-19 반도체 메모리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006012648A JP4791831B2 (ja) 2006-01-20 2006-01-20 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2007193910A JP2007193910A (ja) 2007-08-02
JP4791831B2 true JP4791831B2 (ja) 2011-10-12

Family

ID=38429812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006012648A Expired - Fee Related JP4791831B2 (ja) 2006-01-20 2006-01-20 半導体記憶装置

Country Status (3)

Country Link
US (1) US7836377B2 (ja)
JP (1) JP4791831B2 (ja)
KR (1) KR100857947B1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4846384B2 (ja) * 2006-02-20 2011-12-28 株式会社東芝 半導体記憶装置
JP4836608B2 (ja) * 2006-02-27 2011-12-14 株式会社東芝 半導体記憶装置
JP2007305267A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
JP4891704B2 (ja) * 2006-08-28 2012-03-07 株式会社東芝 半導体記憶装置
JP4621715B2 (ja) * 2007-08-13 2011-01-26 株式会社東芝 メモリ装置
US8145977B2 (en) * 2007-10-15 2012-03-27 Joseph Schweiray Lee Methods and apparatus for providing error correction to unwritten pages and for identifying unwritten pages in flash memory
JP2009100369A (ja) * 2007-10-18 2009-05-07 Toshiba Corp 誤り検出訂正回路、半導体メモリコントローラ、および誤り検出訂正方法
US8464141B2 (en) * 2008-08-13 2013-06-11 Infineon Technologies Ag Programmable error correction capability for BCH codes
JP5259343B2 (ja) 2008-10-31 2013-08-07 株式会社東芝 メモリ装置
JP2010218634A (ja) * 2009-03-17 2010-09-30 Toshiba Corp 誤り検出訂正器、メモリコントローラおよび半導体記憶装置
JP5674700B2 (ja) * 2012-03-22 2015-02-25 株式会社東芝 符号化装置および符号化装置の制御方法、ならびに、記憶装置
US8806294B2 (en) 2012-04-20 2014-08-12 Freescale Semiconductor, Inc. Error detection within a memory
JP6072449B2 (ja) * 2012-07-09 2017-02-01 ルネサスエレクトロニクス株式会社 半導体記憶回路及びその動作方法
US9690650B2 (en) * 2013-03-11 2017-06-27 Macronix International Co., Ltd. Storage scheme for built-in ECC operations
JP2016126813A (ja) 2015-01-08 2016-07-11 マイクロン テクノロジー, インク. 半導体装置
US10097207B2 (en) * 2016-03-10 2018-10-09 Toshiba Memory Corporation ECC circuit, storage device and memory system
KR20180073129A (ko) * 2016-12-22 2018-07-02 에스케이하이닉스 주식회사 에러 정정 코드 회로를 갖는 반도체 메모리 장치
CN117079686A (zh) * 2020-09-18 2023-11-17 长鑫存储技术有限公司 存储器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509172A (en) * 1982-09-28 1985-04-02 International Business Machines Corporation Double error correction - triple error detection code
US4556977A (en) * 1983-09-15 1985-12-03 International Business Machines Corporation Decoding of BCH double error correction - triple error detection (DEC-TED) codes
US5107503A (en) * 1987-08-24 1992-04-21 Digital Equipment Corporation High bandwidth reed-solomon encoding, decoding and error correcting circuit
JP2000173289A (ja) 1998-12-10 2000-06-23 Toshiba Corp エラー訂正可能なフラッシュメモリシステム
IT1321049B1 (it) 2000-11-07 2003-12-30 St Microelectronics Srl Metodo di costruzione di un codice a controllo dell'errore polivalenteper celle di memoria multilivello funzionanti a un numero variabile di
US20030192007A1 (en) 2001-04-19 2003-10-09 Miller David H. Code-programmable field-programmable architecturally-systolic Reed-Solomon BCH error correction decoder integrated circuit and error correction decoding method
JP4112849B2 (ja) 2001-11-21 2008-07-02 株式会社東芝 半導体記憶装置
US20040083334A1 (en) 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
JP4253312B2 (ja) 2005-04-15 2009-04-08 株式会社東芝 半導体記憶装置

Also Published As

Publication number Publication date
US7836377B2 (en) 2010-11-16
KR100857947B1 (ko) 2008-09-09
US20070198902A1 (en) 2007-08-23
JP2007193910A (ja) 2007-08-02
KR20070077125A (ko) 2007-07-25

Similar Documents

Publication Publication Date Title
JP4791831B2 (ja) 半導体記憶装置
JP2007305267A (ja) 半導体記憶装置
JP4846384B2 (ja) 半導体記憶装置
JP4836608B2 (ja) 半導体記憶装置
US7408824B2 (en) Ferroelectric memory with spare memory cell array and ECC circuit
JP6195854B2 (ja) 誤り訂正符号の編成を含む装置および方法
CN101960723A (zh) Chien搜索装置和Chien搜索方法
CN109285582B (zh) 存储器系统、非暂时性计算机可读介质及错误校验与校正的方法
JP5657079B1 (ja) 半導体記憶装置
US8572457B2 (en) Outer code protection for solid state memory devices
US9559725B1 (en) Multi-strength reed-solomon outer code protection
US8990667B2 (en) Error check and correction circuit, method, and memory device
CN107643958A (zh) 数据恢复方法和使用其的存储器系统和raid存储系统
TWI479317B (zh) Memory system
JP4891704B2 (ja) 半導体記憶装置
TW202211037A (zh) 記憶體系統、半導體記憶裝置及資料讀出方法
US20200319960A1 (en) Semiconductor memory device, and memory system having the same
JP2014033364A (ja) 誤り検出訂正回路、及びメモリ装置
JP5617776B2 (ja) メモリ回路,メモリ装置及びメモリデータの誤り訂正方法
JP2012123600A (ja) メモリシステム及びメモリコントローラ
JP2021047527A (ja) メモリシステム
JP2005216437A (ja) 誤り訂正機能付き半導体記憶装置およびその誤り訂正方法
JP2011243249A (ja) 不揮発性メモリ
JP2014116659A (ja) 誤り検出訂正回路、及び半導体記憶装置
KR20230116051A (ko) 프로그래밍가능 오류 정정 코드 인코딩 및 디코딩 로직

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110602

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110722

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

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees