JP4437519B2 - 多値セルメモリ用のメモリコントローラ - Google Patents
多値セルメモリ用のメモリコントローラ Download PDFInfo
- Publication number
- JP4437519B2 JP4437519B2 JP2001252400A JP2001252400A JP4437519B2 JP 4437519 B2 JP4437519 B2 JP 4437519B2 JP 2001252400 A JP2001252400 A JP 2001252400A JP 2001252400 A JP2001252400 A JP 2001252400A JP 4437519 B2 JP4437519 B2 JP 4437519B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- bit
- ecc
- error correction
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Read Only Memory (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Description
【発明の属する技術分野】
本発明は,多値セルメモリ用のメモリコントローラに関し,特に,多値セルのエラー検出・訂正コードの生成と検出・訂正を行うECC回路を有するメモリコントローラに関する。
【0002】
【従来の技術】
携帯情報端末,携帯電話など携帯型の情報機器を中心に,フラッシュメモリが普及している。フラッシュメモリは,半導体不揮発性メモリであり,電源がオフになっても記憶データを保持することができるので,主に電池駆動の携帯型情報機器に広く採用されている。
【0003】
近年の高機能化やブロードバンドなどに伴い,フラッシュメモリの記憶容量の増大が広く求められている。それに応えるものとして,多値セルのフラッシュメモリが提案されている。この多値セルメモリは,広義には3値以上の状態をセルが記憶するメモリであり,通常は2n(n≧2の整数)の状態をセルが記憶するメモリである。従って、4つのチャージ状態であれば2ビットのデータが1個のセルに記憶され,8つのチャージ状態であれば3ビットのデータが1個のセルに記憶され,2nのチャージ状態であればnビットのデータが1個のセルに記憶されることになる。
【0004】
フラッシュメモリのような半導体メモリは,1ビット当たりのコストが高いため,あまり多くのビットを必要とするECCコードの利用は,フラッシュメモリには適していない。一方,フラッシュメモリは,ハードディスクなどの他の記録媒体に比較して信頼性が高く,高々1個のセルに不良が発生する程度である。従って,従来の単ビットセルのメモリでは,ECCコードに1ビットエラーの訂正まで可能なハミングコードが採用されることが多い。複数ビットエラーの訂正を可能とするECCコードでは,ビット数が多くなりすぎると共に,複数ビットエラー訂正の必要性に欠けるからである。つまり,フラッシュメモリのように,1ビット当たりのコストが高いが,高々1個のセルに不良が発生する程度に信頼性が高い場合は,少ないビット数で1ビットエラーまで訂正可能なハミングコードが,ECCコードとして適している。
【0005】
大容量化に対応した多値セルメモリは,あるセルに不良が発生すると,その不良セルに属するnビットのデータが同時に不良ビットになる可能性がある。このため,上記の1ビットエラーまで訂正できるハミングコードを利用した誤り訂正コードでは,1個の不良セルに伴うnビット(nは2以上)のエラーを訂正することはできないので,ハミングコード以外のビット数が大きい別の種類のECCコードに利用が必要になる。例えば,ハードディスクで採用されている複雑なECCコードなどである。しかし,そのようなビット数が大きいECCコードは,1ビット当たりのコストが高いフラッシュメモリには不向きである。
【0006】
上記の問題に対処するものとして,米国特許第5,754,566号に,メモリデバイス内にECC回路を設け,そのECC回路が,シリアルなデータを複数のデータワードに分離し,このデータワード内には1セルのnビットから1ビットのみが属するようにし,そして,データワード毎にECCコードを生成し,それをnビットセルに記憶させることが提案されている。
【0007】
【発明が解決しようとする課題】
しかしながら,メモリデバイスにECC回路を内蔵させることは,メモリデバイスのコストアップを招き,好ましくない。特に,複数個のメモリデバイスが搭載されるシステムでは,同じECC回路が複数のメモリデバイス内に重複して設けられることになり,システム全体のコストを押し上げてします。
【0008】
そこで,本発明の目的は,多ビットセルメモリに対するECC回路を内蔵したメモリコントローラを提供することにある。
【0009】
更に,本発明の別の目的は,多ビットセルメモリに対して,少ないビット数で誤り訂正可能なECCコードを生成し,誤り訂正を行うメモリコントローラを提供することにある。
【0010】
【課題を解決するための手段】
上記の目的を達成するために,本発明の第1の側面は,ホストとN(N=2n,nは2以上の整数)値セルメモリとの間に,それぞれ複数ビットのデータバスを介して接続されたメモリコントローラにおいて,ホストに接続される第1のデータバスの第1乃至第M(Mはn以上)のデータ群をそれぞれ並列に入力し,当該第1乃至第Mのデータ群に対して,単ビット不良を訂正可能な第1乃至第Mのエラー訂正コードをそれぞれ生成する第1乃至第MのECC回路と,1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,当該データ群を前記N値セルメモリのデータ入出力端子に接続される第2のデータバスに出力するデータ出力手段とを有し,前記データ出力手段は,更に前記ECC回路が生成したそれぞれのエラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラである。
【0011】
上記多値セルメモリ用のメモリコントローラに接続されるN値セルメモリは,第2のデータバス経由で入力された複数ビットのデータのうち,第1乃至第Mのデータ群それぞれから高々1ビットのデータを組み合わせて,1つのN値セルに記憶する。また,第1乃至第MのECC回路が生成したエラー訂正コードも,それぞれから高々1ビットのデータを組み合わせて,1つのN値セルに記憶することが好ましい。
【0012】
上記発明のメモリコントローラが制御するN値セルメモリは,第2のデータバスに接続される複数のデータ入出力端子が,1つのN値セルに属するnビットデータが重複しないように,第1乃至第Mのデータ入出力端子群に分離される内部構成を有する。それに合わせて,メモリコントローラは,第1のデータバスの複数ビットデータを第1乃至第Mのデータ群に分割し,それぞれのデータ群についてECC回路でエラー訂正コードを生成し,第1乃至第Mのデータ群と第1乃至第Mのエラー訂正コードとを,N値セルメモリの第1乃至第Mのデータ入出力端子に第2のデータバスを介して入力する。
【0013】
その結果,各N値セルに属するnビットのデータは,重複することなく複数のECCゾーンに分離され,それぞれのECCゾーンのデータに対してエラー訂正コードが生成され,記憶される。従って,1つのN値セルに不良が生じて同時にnビットのデータが不良になっても,それぞれのECCゾーンで生成したエラー訂正コードを利用して,nビットのデータの訂正を行うことができる。つまり,単ビット不良を訂正可能なエラー訂正コードであっても,nビットの不良を訂正することができる。
【0014】
N値セルメモリのデータ入出力端子が,下位から順に第1,第2...第Mのデータ群に分割されている場合は,メモリコントローラのデータ出力手段は,第2のデータバスに対して,下位から順に第1,第2...第Mのデータ群が割り当てられるようにデータを出力する。それに伴い,第1のデータバスのデータも,下位から順に第1,第2...第Mのデータ群に分割して第1乃至第MのECC回路に入力することができ,メモリコントローラ内のデータ群に分割する構成が比較的簡単になる。
【0015】
また,N値セルメモリのデータ入出力端子が,下位から順にN値セルに属するデータ群に分割されている場合は,メモリコントローラのデータ出力手段は,第2のデータバスに対して,下位から順に第1,第2...第Mのデータ群のデータが周期的に繰り返されるようにデータを出力する。つまり,データ出力手段が,1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,第1乃至第Mのデータ群のデータを組み合わせて,第2のデータバスに出力する。
【0016】
上記の発明において,N値セルメモリからデータを読み出す場合は,第2のデータバスの第1乃至第Mのデータ群及び第1乃至第Mのエラー訂正コードが,メモリコントローラ内の第1乃至第MのECC回路にそれぞれ供給され,第1乃至第MのECC回路が第1乃至第Mのデータ群内の1ビットエラー訂正を行う。
【0017】
従って,ホストとN値セルメモリとの間において,第1のデータバス,第1乃至第MのECC回路,データ出力手段及び第2のデータバスの経路で書き込みが行われ,その逆の経路で読み出しが行われる。
【0018】
更に,クロックに同期して書き込みデータがECC回路に供給され,メモリに供給されると共に,クロックに同期して読み出しデータがメモリから出力され,ECC回路に供給される。従って,ホストとメモリデバイスとの間のクロック同期動作への影響を最小限に抑えて,エラー訂正コードの生成とエラー訂正を行うことができる。
【0019】
上記目的を達成するために,本発明の第2の側面は,ホストとN(N=2n,nは2以上の整数)値セルメモリとの間に,それぞれ複数ビットのデータバスを介して接続されたメモリコントローラにおいて,ホストに接続される第1のデータバスのデータ群について,アドレス方向に分離された第1乃至第M(Mはn以上)のデータ群を順番に入力し,当該第1乃至第Mのデータ群に対して,単ビット不良を訂正可能な第1乃至第Mのエラー訂正コードをそれぞれ生成する共通のECC回路と,第1乃至第(M−1)のエラー訂正コードを保持するエラー訂正コード保持手段と,1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,当該データを前記N値セルメモリに接続される第2のデータバスに出力するデータ出力手段とを有し,前記データ出力手段は,更に前記エラー訂正コード保持手段が保持する第1乃至第(M−1)のエラー訂正コードと前記ECC回路が生成した第Mのエラー訂正コードとを,前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラである。
【0020】
上記目的を達成するために,本発明の第3の側面は,ホストとN(N=2n,nは2以上の整数)値セルメモリとの間に,それぞれ複数ビットのデータバスを介して接続されたメモリコントローラにおいて,ホストに接続される第1のデータバスのデータ群について,アドレス方向に分離された第1乃至第M(Mはn以上)のデータ群をそれぞれ入力し,当該第1乃至第Mのデータ群に対して,単ビット不良を訂正可能な第1乃至第Mのエラー訂正コードをそれぞれ生成する第1乃至第MのECC回路と,1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,当該データを前記N値セルメモリに接続される第2のデータバスに出力するデータ出力手段とを有し,前記データ出力手段は,更に前記ECC回路が生成したそれぞれのエラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラである。
【0021】
より好ましい実施例では,上記発明の第1,第2,第3の側面において,メモリデバイスは,前記データバスの複数ビットのデータを複数有するページ単位で書き込み及び読み出しを行い,前記データバスの複数ビットのデータを,内部アドレス順に,内部のページバッファに書き込み及び読み出す。更に,ページ内のデータが,(1)データ入出力端子(列)で,または(2)内部アドレス(行)で,第1乃至第Mのデータ群に分離され,そのデータ群毎に単ビットエラー訂正可能なエラー訂正コードがECC回路で生成され,訂正される。従って,メモリコントローラのECC回路及びデータ出力手段は,上記分離方法に応じた構成を有する。
【0022】
上記の発明では,ECC生成回路は,各ECCゾーン内のデータにおいて単ビット不良を訂正可能なエラー訂正符号方式に基づくECCコードを生成する。従って,生成されるECCコードのビット数は最小限に抑えられ,フラッシュメモリのスペア領域に記憶させることができる。そして,各ECCゾーン内には,1つのN値セルに属するnビットデータのうち1ビットのみが属するように分離されているので,1個の多値セルに不良が発生してnビット不良が発生しても,各ECCゾーン内で1ビットの誤り訂正を行うことで,nビットの誤り訂正を可能にする。
【0023】
【発明の実施の形態】
以下,図面を参照して本発明の実施の形態例を説明する。しかしながら,本発明の保護範囲は,以下の実施の形態例に限定されるものではなく,特許請求の範囲に記載された発明とその均等物にまで及ぶものである。
【0024】
図1は,多値セルメモリを使用したメモリシステムの構成図である。ここで多値セルメモリとは,1個のセル内にnビット(nは2以上の整数)のデータが保持可能なメモリであり,従って1個のセルはN=2nの状態を持つ。この例では,ホスト1と多値セルメモリ3とがデータバス5,6で接続されて,その間にメモリコントローラ2が設けられる。具体的には,ホスト1とメモリコントローラ2との間に第1のデータバス5が,メモリコントローラ2と多値セルメモリ3との間に第2のデータバス6がそれぞれ設けられる。そして,メモリコントローラ2は,データバス5,6から供給されるデータに対してエラー訂正コード(以下ECCコード)を生成し,誤り訂正を行うECC回路4を内蔵する。
【0025】
ホスト1は,多値セルメモリ3からデータを読み出すと共に,データを書き込む。その場合,メモリコントローラ2は,ホスト1による多値セルメモリ3へのアクセスを仲介する。ECC回路は,ホスト1が多値セルメモリ3にデータを書き込む時,そのデータに対するECCコードを生成し,データと共にそのECCコードも多値セルメモリ3に書き込む。通常,多値セルメモリ3の冗長セル領域であるスペア領域に,このECCコードが書き込まれる。そして,ホスト1が多値セルメモリ3からデータを読み出す時は,ECC回路4は,読み出したデータに対するECCコードを生成し,読み出したECCコードとの比較を行うことで,データの誤りを検出し,その誤りを訂正する。
【0026】
図1のメモリシステム例では,ECC回路4は,データの誤りを検出すると,エラー検出手段7によりホストにエラー発生を通知すると共に,データバス5を介して,誤り訂正情報(エラー発生アドレスなど)をホスト1に送信する。従って,ホスト1は,その誤り訂正情報に従って,読み出しデータの誤り訂正を行う。別のメモリシステム例では,ECC回路4が例えば1ページ分のデータを保持するデータバッファを内蔵し,ECC回路内で誤りを訂正し,訂正されたデータがデータバス5を介してホスト1に転送される。本実施の形態例におけるメモリコントローラは,いずれの構成であっても良い。
【0027】
図2は,多値セルメモリの構成例を示す回路図である。この例は,NAND型のフラッシュメモリである。また,簡単の為に,1個のセルに2ビットデータが保持される例で説明する。図2の多値セルメモリでは,複数のセルMCを縦列に接続したセルストリングスがビット線BL0,BL1に接続され,各セルのコントロールゲートにはワード線WL0,WL1が接続される。各セルMCは,例えばフローティングゲートを有し,フローティングゲート内に4つのチャージ状態が記憶される。従って,各セルMCは,2ビットデータを記憶する。
【0028】
それに伴い,各ビット線BL0,BL1には,2つのページバッファPBがそれぞれ接続され,1個のセルMCにアクセスしたとき,2つのページバッファPBに1ビットずつのデータが読み出され,逆に2つのページバッファPBに入力された2ビットデータに従って,1個のセルMCにチャージ状態が記憶される。
【0029】
読み出し時において,ワード線を選択することにより全てのページバッファPB内にデータが読み出され,1ページ分のデータが保持される。そして,図示しない選択信号に応じて,データバスのビット数単位で,ページバッファPB内のデータが入出力回路10から出力される。逆に,書き込み時において,データバスからデータバスのビット数単位でデータが供給され,図示しない選択信号に応じて,ページバッファ内にデータが格納され,その後セルMCがデータに対応したチャージ状態にプログラムされる。
【0030】
図3は,セルのチャージ状態を示す図である。縦軸がセルの閾値電圧を,横軸がセル数を示す。つまり,セルの複数の閾値電圧分布が示される。図示されるとおり,セルのフローティングゲート内のチャージ状態は,チャージ(電子)が非常に多くて閾値電圧が最も高いデータ(0,1)の状態と,次にチャージが多くて閾値電圧も次に高いデータ(0,0)の状態と,その次にチャージが多くて閾値電圧も次に高いデータ(1,0)の状態と,その次のデータ(1,1)の状態とが存在する。ワード線の電位を閾値分布の間のレベルにすると,状態に応じてセルトランジスタのドレイン電流の違いが発生し,どの分布のチャージ状態かを検出することができる。
【0031】
図4は,多値セルメモリ装置の構成図である。図4には,1ページ分のセルアレイが示され,セルアレイは,データが記憶されるデータ領域8と,不良セルの置き換え用の冗長セルを有するスペア領域9とを有する。そして,このスペア領域9に書き込みデータに対して生成されたECCコードが書き込まれる。図4に示されるとおり,各セルMCには,4つのチャージ状態が記憶可能であり,それに伴い,2ビットデータが記憶されることになる。
【0032】
図4の例では,1ページに対して,データ領域8は512バイトの容量を有し,スペア領域9は16バイトの容量を有する。つまり,1ページのデータ容量は512バイトであり,それに対応してスペア領域9は16バイトの容量を有する。1本のワード線WLが選択されるとデータ領域8から512ビットのデータが,スペア領域9から16ビットのデータが,合計で528ビット,それぞれ図示しないページバッファに読み出される。そして,8本のワード線が同時に選択されることで,データ領域8から512バイトのデータが,スペア領域9から16バイトのデータがページバッファに読み出されることになる。その後は,アドレスのインクリメントに同期して,8ビットずつのデータ(1バイト)が,8本のI/O端子から出力される。
【0033】
図5は,多値セルメモリのページ構成を示す図である。フラッシュメモリは,通常ページ単位で読み出し及び書き込みが行われる。従って,セル領域は複数のページを有する。図4に示したとおり,各ページは,512バイトのデータ領域8と,16バイトのスペア領域9とを有する。図4の例は,入出力端子I/Oが8本の場合である。入出力端子I/Oが16本の場合は,各ページは512ワードのデータ領域8と,16ワードのスペア領域9とで構成されることになる。
【0034】
フラッシュメモリは,どのページに対して読み出し又は書き込みを行うかをメモリコントローラから指示されるのみである。従って,フラッシュメモリは,指定されたページ内においては,メモリ内でクロックに同期してアドレスをインクリメント(又はデクリメント)して,ページ内のアドレス管理を行う。即ち,フラッシュメモリは,あるページに対してアクセス要求があると,ページ内のアドレスをインクリメントしながら,最初にデータ領域8に対して512バイトのデータをアクセスし,その後,スペア領域9に対して16バイトのデータをアクセスする。
【0035】
N(Nは4以上)値セルメモリは,1個のセル内にnビット(2n=N)のデータを記憶する。具体的には,図3で示した2nの状態を1個のセルが保持することにより,nビットのデータを記憶する。従って,1ページ内に1個の不良セルが発生すると,nビットのデータが同時にエラーになる。このような複数ビットのデータエラーを,単ビット不良を訂正可能なエラー訂正コード方式で救済可能にするために,本実施の形態では,1ページのデータを複数のデータ群に分割し,それぞれのデータ群で単ビット不良訂正可能なエラー訂正コードを生成し,メモリデバイス内のスペア領域に記憶する。そして,1個の多値セルに属するnビットデータが,重複することなく複数のデータ群に分割され,それぞれ分割されたデータ群において高々1ビットエラーまでの修正を可能にする。そうすることで,1個のセルに不良が発生しても,それぞれのデータ群内では高々1ビットエラーにしか過ぎず,簡単な単ビット不良訂正可能なエラー訂正コードでも,多値セルの不良に対して誤り訂正を行うことが可能になる。
【0036】
前述の通り,1ページのデータは,データバスの複数ビットに対応する入出力端子方向(列方向)と,データバスの複数ビットに対応付けられるアドレスの方向(行方向)とに分離可能である。1ページのデータは,アドレスをインクリメントしてワード単位でアクセスされるので,入出力端子方向(列方向)に分離すると,データバスの複数ビットのデータが,データバス内で複数のデータ群に分離され,アドレス方向(行方向)に分離すると,データバスの複数ビットのデータが,複数アドレス内で複数のデータ群に分離される。
【0037】
図6は,ページデータを入出力端子(列)単位で複数のECCゾーンに分離する場合のメモリデバイスとメモリコントローラの構成例を示す図である。この例では,メモリデバイス3が,1個のセルに2ビットデータが保持される例であり,同じアドレスAiに対して4個のセルの8ビットデータにアクセス可能な構成になっている。そして,各セルの2ビットデータは,重複することなく下位の入出力端子群I/O0〜I/O3と上位の入出力端子群I/O4〜I/O7に分離される。つまり,図中示されたセルMCの2ビットデータは,一方が入出力端子I/O0に他方が入出力端子I/O4に割り当てられる。それ以外のセルの2ビットデータも,それぞれI/O1,5,I/O2,6,I/O3,7に割り当てられる。そして,メモリデバイス3内の入出力配線構造40により,4組の2ビットデータI/O0,1,I/O1,5,I/O2,6,I/O3,7が8ビットの入出力端子I/O0〜I/O7に接続され,その入出力端子が第2のデータバス6に接続される。
【0038】
上記メモリデバイス3の構成の場合は,データ領域8とスペア領域9の512バイト及び16バイトのデータを,入出力端子(列)方向で少なくとも2つのECCゾーンに分離して,それぞれでECCコードを生成することが必要である。1個のセルMCが不良になって2ビットデータがエラーになっても,2ビットデータがそれぞれ異なるECCゾーンに分離されてECCコードが生成されているので,たとえECCコードが単ビットのみ訂正可能なコードであっても,2つのECCコードにより2ビットデータを訂正することができる。
【0039】
このメモリデバイス構造に伴い,本実施の形態のメモリコントローラ2では,第1のデータバス5の8ビットが,下位の4ビットDB0〜3と上位の4ビットDB4〜7に分離され,それぞれのデータ群DB0〜3,DB4〜7が,ゾーン0,1のECC回路20,22に供給される。ECC回路20,22では,供給されるデータ群DB0〜3,DB4〜7に対して,それぞれのECCコードを生成すると共に,供給されたデータ群DB0〜3,DB4〜7を,データ出力回路30からそのまま第2のデータバス6の8本のバス線に出力し,メモリデバイス3の8個の入出力端子I/O0〜7に供給する。
【0040】
メモリデバイス3では,入出力配線構造により,第1のデータ群I/O0〜3から1ビットと第2のデータ群I/O4〜7から1ビットとが組み合わされ,4組の2ビットデータI/O0,1,I/O1,5,I/O2,6,I/O3,7が,4個の2ビットセルMCに書き込まれる。
【0041】
メモリデバイス3のデータ領域8に,512バイトのデータが書き込まれると,ECC回路20,22は,それぞれのECCコードの生成が終了し,生成された第1及び第2ECCコードが,第2のデータバスの下位ビットと上位ビットを介して,メモリデバイスの入出力端子I/O0〜3,I/O4〜7にそれぞれ供給される。そして,メモリデバイス内では,データと同様にして,スペア領域9のセルに2ビットデータが書き込まれる。
【0042】
一方,読み出し時は,メモリデバイス3内において,512バイトと16バイトのデータが図示しないページバッファに読み出され,ページバッファに保持されたデータが,アドレスをインクリメントすることで,8ビットずつ入出力端子I/O0〜7から出力される。メモリコントローラ内のECC回路20,22は,それぞれ第1及び第2データ群のデータを入力してECCコードを生成し,その後スペア領域9から読み出された第1及び第2のECCコードと比較し,エラー検出とエラー訂正を行う。
【0043】
読み出された第1及び第2データ群のデータは,第1のデータバス5を経由してホスト1に転送されると共に,エラー訂正データが図示しないエラー通知手段7を経由してホスト1に供給される。
【0044】
図6の例では,メモリデバイス内の入出力配線構造40にて,1個の2値セルに属する2ビットデータが,第1及び第2のデータ群に重複しないように分離し,その第1及び第2のデータ群が,下位の入出力端子群I/O0〜3と上位の入出力端子群I/O4〜7とにそれぞれ割り当てられている。従って,メモリコントローラ2では,第1及び第2のECC回路20,22が,第1のデータバスにおける下位のデータ群DB0〜3と上位のデータ群DB4〜7を入力して,それぞれのECCコードを生成し,データ出力手段30が,第1及び第2のデータ群と第1及び第2のECCコードとを,第2のデータバスにおける下位のデータ群と上位のデータ群に出力する。
【0045】
図7は,ページデータを入出力端子(列)単位で複数のECCゾーンに分離する場合の別のメモリデバイスとメモリコントローラの構成例を示す図である。このメモリデバイスには,図6の入出力配線構造40がなく,入出力端子が,下位から各セルの2ビットデータに割り当てたままになっている。それ以外のデータ領域8やスペア領域9は図6と同じである。従って,この場合も,入出力端子(列)方向に第1及び第2のデータ群に分離される必要がある。
【0046】
メモリデバイス3内に入出力配線構造40がないので,メモリコントローラ2のデータ出力手段30では,第1のデータバス5における下位の第1のデータ群DB0〜3と上位の第2のデータ群DB4〜7とをインターリーブして,第1及び第2のデータ群から1ビットずつのデータが,交互に配置されるようにデータを第2のデータバスに出力する。つまり,図6の入出力配線構造40の機能をデータ出力手段30に持たせている。その結果,各2値セルMCには,第1及び第2のデータ群から1ビットずつのデータ,計2ビットデータが,それぞれ書き込まれる。また,2つのECC回路20が生成する第1及び第2のエラー訂正コード(ECCコード)も,同様にスペア領域9内の2値セルに書き込まれる。
【0047】
それ以外のメモリコントローラ2の構成は,図6の例と同じである。従って,第1データバス5の複数のデータが第1,第2のECCゾーンに分離され,それぞれのECCゾーンのデータについてECC回路20,22がECCコードを生成する。そして,メモリコントローラ2のデータ出力手段30が,データDB0,DB4,DB1,DB5,DB2,DB6,DB3,DB7を,メモリデバイス3の入出力端子I/O0〜7に供給する。その結果,4個の2ビットセルには,4組のデータDB0,4,DB1,5,DB2,6,DB3,DB7がそれぞれ書き込まれる。ECCコードについても同じである。更に,読み出し時は,逆の経路でデータが読み出され,メモリコントローラ2では,それぞれのデータ群について生成したECCコードが,スペア領域9から読み出したECCコードと比較され,エラー検出,エラー訂正が行われる。
【0048】
図8は,ページデータをアドレス(行)単位で複数のECCゾーンに分離する場合のメモリデバイスとメモリコントローラの構成例を示す図である。このメモリデバイスは,図6,7の場合と異なり,8つの入出力端子I/O0〜7には,1個の2ビットセルの2ビットデータが重複せずに出力される。つまり,あるアドレスに対して,8個のセルから1ビットずつのデータが8つの入出力端子I/O0〜7に出力される。従って,1個のセルに属する2ビットデータを複数のECCゾーンに分離するためには,1ページのデータをアドレス(行)単位で分離する必要がある。
【0049】
図8のメモリデバイス3は,(データ領域8がアドレスA0〜7で8バイトのデータと仮定すると,)下位のアドレスA0,A1,A2,A3が4つのセルにおける1ビット目のデータに対して割り当てられ,上位のアドレスA4,A5,A6,A7が同じ4つのセルにおける2ビット目のデータに割り当てられる。従って,この場合は,1ページのデータを,下位アドレスA0〜3と上位アドレスA4〜8とに分離してそれぞれECCコードを生成することで,単ビットエラー訂正可能なECCコードでも,1個の不良セルに伴う2ビットデータ誤りを訂正することができる。
【0050】
この場合,アドレスは最下位A0からインクリメントされるので,メモリコントローラ2のECC回路20は,第1のデータバス5から供給される8ビットのデータを順に入力し,アドレスA0〜4に属する第1のデータ群に対して第1のECCコードを生成し,更に,アドレスA4〜7に属する第2のデータ群に対して第2のECCコードを生成する。そして,アドレスA0〜A7のデータをデータ領域8に書き込んだ後に,第1及び第2のECCコードを順番にスペア領域9に書き込む。
【0051】
従って,メモリコントローラ2のECC回路20は,第1及び第2のECCゾーンに対して共通に設けることができる。但し,図示しないECC保持回路が必要になる。また,メモリコントローラ2内のデータ出力回路30も,第1のデータバス5の8ビットのデータを,そのまま第2のデータバス6に出力し,メモリデバイス3の8ビットの入出力端子I/O0〜7に供給する。
【0052】
図9は,ページデータをアドレス(行)単位で複数のECCゾーンに分離する場合の別のメモリデバイスとメモリコントローラの構成例を示す図である。この例においても,メモリデバイス3において,8つの入出力端子I/O0〜7には,1個のセルの2ビットデータが重複せずに出力される。つまり,あるアドレスに対して,8個のセルから1ビットずつのデータが8つの入出力端子I/O0〜7に出力される。従って,1個のセルに属する2ビットデータを複数のECCゾーンに分離するためには,1ページのデータをアドレス(行)単位で分離する必要がある。
【0053】
具体的には,メモリデバイス3は,(データ領域8がアドレスA0〜7で8バイトのデータと仮定すると,)偶数のアドレスA0,A2,A4,A6が4つのセルにおける1ビット目のデータに対して割り当てられ,奇数のアドレスA1,A3,A5,A7が同じ4つのセルにおける2ビット目のデータに割り当てられる。従って,この場合は,1ページのデータは,奇数アドレスと偶数アドレスとに分離してそれぞれECCコードを生成することで,単ビットエラー訂正可能なECCコードでも,1個の不良セルに伴う2ビットデータ誤りを訂正することができる。
【0054】
このようなメモリデバイスの場合は,メモリコントローラ2は,第1のデータバス5の8ビットデータDB0〜8をそれぞれ順番に第1及び第2のECC回路に供給するデータ入力手段32と,第1及び第2のECC回路を経由する8ビットデータとECCコードとを,第2のデータバス6に出力するデータ出力手段30とを有する。また,ECC回路は共通化されずに,第1及び第2のデータ群に対応して設けられる。
【0055】
図10は,多値セルメモリへの書き込み動作を説明する図である。書き込み動作は,次の通りである。最初に,ホスト1は,多値セルメモリ3にデータを書き込むため,多値セルメモリ3の書き込み先のアドレス(ページアドレス)と,多値セルメモリ3に書き込むデータを,第1のデータバス5を経由して,メモリコントローラ2に供給する(S1)。次に,メモリコントローラ2は,ホスト1から供給された,多値セルメモリ3の書き込み先のアドレス(ページアドレス)と,多値セルメモリ3に書き込むデータを,第2のデータバス6を経由して,多値セルメモリ3に供給する。また,そのデータのエラー検出及び訂正を,そのデータの読み出し時に行えるようにするため,ECC回路4が,そのデータにしたがってECCコードを生成して,第2のデータバス6を経由して,多値セルメモリ3に供給する(S2)。次に,多値セルメモリ3は,メモリコントローラ2から供給された書き込み先のアドレスに対応するページのデータ領域8に,同じくメモリコントローラ2から供給されたデータを多値セルメモリ3に書き込み,その後,冗長データ領域9に,そのデータを元に生成されたECCコードを書き込む(S3)。
【0056】
上記の書き込みデータとECCデータの多値セルメモリ3への供給は,システムクロックに同期して行われ,クロックに同期して多値セルメモリ3内でインクリメントされるアドレスに対応するページバッファ内に,それらの書き込みデータ及びECCデータが格納される。
【0057】
図11は,多値セルメモリからの読み出し動作を説明する図である。読み出し動作は,次の通りである。ホスト1は,多値セルメモリ3からデータを読み出すため,多値セルメモリ3の読み出し元のアドレス(ページアドレス)を,第1のデータバス5を経由して,メモリコントローラ2に供給する(S11)。次に,メモリコントローラ2は,ホスト1から供給された,多値セルメモリ3の読み出し元のアドレスを,第2のデータバス6を経由して,多値セルメモリ3に供給する(S12)。
【0058】
次に,多値セルメモリ3は,メモリコントローラ2から供給されたアドレスに対応するページのデータ領域8からデータを,冗長データ領域9からECCコードを,それぞれ順に読み出し,第2のデータバス6を経由して,メモリコントローラ2に供給する(S13)。
【0059】
メモリコントローラ2は,多値セルメモリ3から供給された読み出しデータとECCコードを,エラー検出及び訂正のためにECC回路4に供給する(S14)。また,読み出しデータを,第1のデータバス5を経由して,ホスト1に供給する(S15)。
【0060】
ECC回路4は,メモリコントローラ2から供給された読み出しデータとECCコードを元に,エラー検出及び訂正を行い,その結果を,エラー通知手段7を使って,ホストに通知する(S16)。そして,エラーを検出し,かつエラー訂正可能な場合は,訂正すべきデータビットの位置を,メモリコントローラ2に第1のデータバス5を経由して通知する。
【0061】
或いは,ECC回路4は,内部に1ページ分のデータバッファを有している場合は,1ページ分のデータを一旦データバッファに格納し,そのデータとECCコードから訂正すべきデータビットの位置を検出し,データ訂正をする。そして,その訂正後のデータを第1のデータバス5を経由してホスト1に供給する。この場合は,エラー通知は不要である。
【0062】
次に,入出力端子(列)単位の分割の例とアドレス(行)単位の分割の例を,具体的なECC方式も含めて詳細に説明する。
【0063】
[入出力端子(列)単位の分割の例]
図12は,入出力端子(列)単位で分割した例を示す図である。この例は,図12の上段に示されるとおり,多値セルメモリの各ページのデータ領域8が,512ワードの容量を持ち,それが列0-3,4-7,8-11,12-15の4つのゾーンZ0〜Z3に分割されている。更に,図12の中段に示されるとおり,各ゾーンの4x512ビットのデータに対して,それぞれビット番号を割り付ける。このビット番号は,2進数表現で行番号と列番号との組み合わせからなる。
【0064】
本例のECCコードは,1ビットエラーを訂正可能であり,ビット番号の各桁で「0」と「1」を有する1対のデータ群に分けて,それぞれのデータ群に属する全ビットのパリティからなる。即ち,図12の下段に示したとおり,ECCコードlp00,lp01のペアは,ビット番号のうち行番号を示すビット番号の最下位ビットが「0」になるデータ群のパリティlp00(lp:ラインパリティ)と,最下位ビットが「1」になるデータ群のパリティlp01とを有する。また,次のECCコードlp02,lp03のペアは,行番号を示すビット番号の最下位から2ビット目が「0」になるデータ群のパリティlp02と,「1」になるデータ群のパリティlp03とを有する。同様にして,ECCコードは,行番号を示すビット番号の各桁について1対のパリティからなる。
【0065】
同様に,ECCコードは,列番号を示す2桁のビット番号についても,「0」になるデータ群のパリティと「1」になるデータ群のパリティとからなる2対のECCコードcp01〜cp03(cp:コラムパリティ)を有する。1つのECCゾーンのデータについて,ビット番号が11桁からなるので,各桁で1対のパリティからなるECCコードを生成すると,合計で22ビットのECCコードとなる。
【0066】
このECCコード方式は,ECCゾーン内の512x4ビットのデータを,11通りの分割方法で2分割し,それぞれの分割されたデータの全ビットのパリティを生成する。従って,ECCコードの生成回路は,供給されるデータの「1」または「0」の数をカウントして,合計で偶数か奇数かによりECCコードを「1」または「0」にする。つまり,ECCコード生成回路は,例えば供給されるデータに応じて反転する22個のフリップフロップ回路により実現される。22個のフリップフロップ回路には,ビット番号に応じて供給されるデータが分配される。そして,その構成は,奇数パリティを採用するか偶数パリティを採用するかで異なる。
【0067】
図13は,ECCコードをスペア領域への格納を説明する図である。メモリデバイスのスペア領域は,不良セルに置き換えられるセルとECCコードが格納されるセルとを有し,16ワードの容量を有する。ページ内のデータが列方向に4分割されたことに伴い,スペア領域9も列方向に4つのゾーンZ0〜Z3に分割される。そして,各ゾーンに対応して生成されたECCコードが,スペア領域9の各ゾーン内に格納される。
【0068】
図14は,図12,13の例に適用されるメモリコントローラ内のECC回路を示す図である。この例は,図6に対応するECC回路である。図12,13の例では,各ページが512バイトのデータで構成されるのに伴い,第1のデータバス5と第2のデータバス6は16ビット構成になる。また,16ビットが4つのゾーンに分割されることに伴い,ECC回路も4つのゾーンに対応した4列構成になる。
【0069】
図12で説明したとおり,ホスト1から第1のデータバス5を経由して供給された各バイトデータは,4ビットずつに分割され,対応するECCコード生成回路20A〜26Aにそれぞれ供給される。また同時に,各バイトデータは,データ出力手段30を介して,第2のデータバス6経由でメモリデバイスに供給される。各ECCコード生成回路20A〜26Aは,供給されるデータをカウントし,前述のパリティコードを生成する。
【0070】
メモリコントローラ内には,ECC制御回路50が設けられ,システムクロックCLKに同期した内部クロックCLKを生成し,このクロックCLKに同期して供給されるデータを,メモリデバイス側に転送すると共に,ECCコード生成回路がデータのカウント動作を行う。
【0071】
そして,512バイトのデータが供給された時点で,ECC生成回路20A〜26Aは各ゾーンのECCコードの生成を終了する。従って,データに引き続いて,ECCコードが,データ出力手段30から第2のデータバス6を経由して,メモリデバイスに供給される。各ゾーン毎に生成したECCコードは,各ゾーンに分割したデータと同様にして第2のデータバス6から出力されるので,図13で説明したとおり,メモリデバイス内のスペア領域の各ゾーンにそのECCコードが格納される。
【0072】
読み出し動作時においては,メモリデバイス内のデータ領域から512バイトのデータが読み出され,第2のデータバスからメモリコントローラに供給される。データ出力手段30を逆方向に転送されて,16ビットの読み出しデータが4つのゾーンに分割され,それぞれ対応するECCコード生成回路20A〜26Aに供給される。それと同時に,読み出しデータは,第1のデータバス5を経由してホスト1に供給される。
【0073】
512バイトのデータの読み出しが終了すると,各ECCコード生成回路20A〜26Aでも対応するECCコードの生成が終了する。もし読み出しデータに各ECCゾーンで高々1ビットのエラーが発生していると,読み出し時に生成されたECCコードは,書き込み時に格納したECCコードと異なる。従って,それを検出して誤りビットを検出するために,引き続き読み出されるECCコードと,新たに生成されたECCコードとの比較が,エラー検出・訂正回路20B〜26Bで行われる。
【0074】
各エラー検出・訂正回路は,11対のパリティが一致するか否かを検出するために,22個の排他的論理和回路を有する。そして,メモリデバイスのスペア領域から読み出されるECCコードと,読み出し時に新たに生成されたECCコードとの比較,つまり11対のパリティの比較が行われる。本例のパリティ対を利用したECCコード方式では,排他的論理和演算結果により,次の通りエラー検出が行われる。
【0075】
第1に,ECCコードlp00〜lp17,cp00〜cp03の全てが一致して,排他的論理和結果が全て「0」の場合は,データが正常であり誤り訂正不要となる。第2に,ECCコードlp00〜lp17,cp00〜cp03の全てのペアで一方が「0」で他方が「1」(不一致)の時は,1ビットエラーが発生し,誤り訂正可能なエラーの発生となる。第3に,ECCコードlp00〜lp17,cp00〜cp03のうち,1つだけ「1」(不一致)の時は,データは正常であるが,ECCコードにエラーが発生したことを意味し,データの誤り訂正は不要になる。第4に,上記以外の排他的論理和結果の場合は,訂正不可能なエラーの発生となる。
【0076】
上記第2の場合は,不一致が発生した11個のデータ群から,エラーデータを特定することができる。即ち,奇数パリティの場合は,訂正すべきビット番号は,22個の排他的論理和演算結果のうち,奇数番目のECCコードlp17,lp15,lp13,lp11,lp09,lp07,lp05,lp03,lp01,cp03,cp01のEORデータとなる。また,偶数パリティの場合は,訂正すべきビット番号は,偶数番目のECCコードに対するEORデータになる。
【0077】
従って,エラー検出・訂正回路は,読み出したECCコードと読み出しデータを元に生成したECCコードとの排他的論理和の結果を,誤りが発生したデータのビット番号として,ホスト1に通知すればよい。
【0078】
上記のエラー訂正コードによるNビットエラー訂正は,メモリデバイスの信頼性が高く,高々1個のN値セルがエラーになった場合のエラー訂正を行うことを前提にしている。複数個のN値セルがエラーになる場合の訂正には対応できない。
【0079】
[アドレス(行)単位の分割の例]
図15は,アドレス(行)単位で分割した例を示す図である。この例は,図15の上段に示されるとおり,多値セルメモリの各ページのデータ領域8が,512ワードの容量を持ち,それがアドレス0-127,128-255,256-383,384-511の4つのゾーンZ0〜Z3に分割されている。そして,図15の下段に示されるとおり,各ゾーンの16x128ビットのデータに対して,それぞれビット番号を割り付ける。このビット番号は,2進数表現で行番号と列番号との組み合わせからなる。
【0080】
図15の下段には,ゾーンZ3のデータに対してビット番号が割り付けられている。即ち,行番号は0-127,列番号は0-16であり,各ビット番号は,11ビットで表現される。
【0081】
図16は,上記のゾーン毎に生成されるECCコードの例を示す図である。この例のECCコードも,ビット数は少ないがゾーン内で単ビットエラーを訂正可能な方式であり,図15でゾーン内のデータに割り付けたビット番号の各桁について,「0」のデータ群と「1」のデータ群に分けて,それぞれのデータ群のパリティビットを利用する。従って,図16に示されるとおり,1対のECCコードlp00,lp01は,行番号の最下位ビットが「0」のデータ群のパリティビットと,同ビットが「1」のデータ群のパリティビットとで構成される。他のECCコードも同様であり,全部で11対のパリティビットで構成される。
【0082】
図17は,生成したECCコードの格納を説明する図である。N値セルメモリの各ページに割り当てられている16ワードのスペア領域9を,アドレス(行)で4分割し,アドレス0-3のスペア領域にゾーンZ0のECCコードを,アドレス4-7のスペア領域にゾーンZ1のECCコードを,アドレス8-11のスペア領域にゾーンZ2のECCコードを,アドレス12-15のスペア領域にゾーンZ3のECCコードをそれぞれ格納する。
【0083】
図18は,図15〜17の例に適用されるメモリコントローラ内のECC回路を示す図である。この例は,図8に示したメモリコントローラに対応する。入出力端子(列)方向に分割した場合の図14のECC回路と異なり,図18では,ECCコード生成回路20Aとエラー検出・訂正回路22AからなるECC回路が1組のみ設けられる。そして,3つのECCゾーンのECCコードを保持するためのECCコード保持手段54,56,58とそのセレクタ回路52とが設けられる。
【0084】
上記の例では,ページ内の512ワードのデータが,下位アドレス0-127,その上位アドレス128-255,256-382,383-511の4つのゾーンに分離されている。一方,ホスト1から書き込み対象のページアドレスが供給されると,メモリデバイスではシステムクロックに同期してページ内の内部アドレスをインクリメントする。従って,最初は下位アドレス0-127の16ビットのデータがホスト1から順次第1のデータバス5に出力され,出力制御回路30から第2のデータバス6を経由してメモリデバイスに転送されると共に,その下位アドレスのデータが,順番にECCコード生成回路20Aに供給される。
【0085】
ECCコード生成回路20Aは,例えば22個のフリップフロップ回路で構成され,アドレスADDに応じて,データがフリップフロップ回路に分配される。従って,下位アドレス0-127に属する512ワードのデータがホスト1からメモリデバイス3に転送終了した時点で,そのゾーンZ0のECCコードの生成も終了し,セレクタ52を介してECCコード保持手段54に一時的に格納される。
【0086】
次のアドレス128-255のデータも同様にホスト1からメモリデバイス3にワード単位で順次転送されると共に,ECCコード生成回路20Aに供給され,ゾーンZ1のECCコードが生成される。生成後にECCコードは,ECCコード保持手段56に一時的に格納される。ゾーンZ2,Z3のデータも同様にしてメモリデバイス3に第2のデータバス6を経由して転送され,それぞれのECCコードが生成される。
【0087】
そして,全てのデータがメモリデバイス3に転送終了した時点で,ゾーンZ0,Z1,Z2のECCコードが保持手段54,56,58にそれぞれ保持され,ECCコード生成回路20AがゾーンZ3のECCコードの生成を終了する。そこで,データに続いて,4つのゾーンのECCコードが,スペア領域内のアドレス0-3,4-7,8-11,12-15にそれぞれ格納される。
【0088】
次に,メモリデバイスからの読み出し時は,ホスト1から指定されたページのデータが,システムクロックに同期してインクリメントされる内部アドレスに応じて,順次読み出され,ECCコード生成回路20Aに供給される共に,ホスト1側にも転送される。アドレスがインクリメントされることに伴い,ゾーンZ0,Z1,Z2のECCコードが順次生成され,ECCコード保持手段54,56,58にそれぞれ格納される。そして,ゾーンZ3のECCコードが生成回路20Aで生成された後,引き続いてメモリデバイスのスペア領域から先に生成し格納しておいたECCコードが順次読み出され,エラー検出・訂正回路22Aに供給される。
【0089】
エラー検出・訂正回路22Aは,11対のECCコードに対応して22個の排他的論理和回路を有し,各ゾーンの読み出し時に生成したECCコードとメモリデバイスのスペア領域から読み出したECCコードとが一致するか否かのチェックを行う。
【0090】
この例のECCコードは,前述の例と同じであり,エラー検出方法と1ビットエラー発生時の訂正ビットのアドレス生成方法も同じである。エラー検出・訂正回路22Aも,アドレスのインクリメントに応じて,ゾーンZ0,Z1,Z2,Z3の順にECCコードの比較を行う。
【0091】
上記の例では,512バイトのデータを4つのECCゾーンに分離して,それぞれのエラー訂正コードを生成し,メモリに格納した。しかし,N値セルメモリの1個のN値セルが2ビットデータを格納する場合は,データは2つのECCゾーンに分離するだけで良い。即ち,データをN以上に分離して,それぞれのECCコードを生成すれば良い。
【0092】
以上,実施の形態例をまとめると以下の付記の通りである。
【0093】
(付記1)ホストとN(N=2n,nは2以上の整数)値セルメモリとの間に,それぞれ複数ビットのデータバスを介して接続されたメモリコントローラにおいて,
前記ホストに接続される第1のデータバスの第1乃至第M(Mはn以上)のデータ群をそれぞれ並列に入力し,当該第1乃至第Mのデータ群に対して,単ビット不良を訂正可能な第1乃至第Mのエラー訂正コードをそれぞれ生成する第1乃至第MのECC回路と,
1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,当該データ群を前記N値セルメモリのデータ入出力端子に接続される第2のデータバスに出力するデータ出力手段とを有し,
前記データ出力手段は,更に前記ECC回路が生成したそれぞれのエラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。
【0094】
(付記2)付記1において,
前記N値セルメモリのデータ入出力端子が,下位から順に第1,第2...第Mのデータ群に分割されており,
前記データ出力手段は,第2のデータバスに対して,下位から順に第1,第2...第Mのデータ群が割り当てられるようにデータを出力することを特徴とする多値セルメモリ用メモリコントローラ。
【0095】
(付記3)付記2において,
前記第1のデータバスのデータが,下位から順に第1,第2...第Mのデータ群に分割して第1乃至第MのECC回路に入力されることを特徴とする多値セルメモリ用メモリコントローラ。
【0096】
(付記4)付記1において,
前記N値セルメモリのデータ入出力端子が,下位から順にN値セルに属するデータ群に分割されて,
前記データ出力手段は,第2のデータバスに対して,下位から順に第1,第2...第Mのデータ群のデータが周期的に繰り返されるようにデータを出力することを特徴とする多値セルメモリ用メモリコントローラ。
【0097】
(付記5)付記1において,
前記N値セルメモリからデータを読み出す場合は,前記第1乃至第MのECC回路は,前記第2のデータバスの第1乃至第Mのデータ群及び第1乃至第Mのエラー訂正コードを入力し,当該第1乃至第MのECC回路が第1乃至第Mのデータ群内の1ビットエラー訂正を行うことを特徴とする多値セルメモリ用メモリコントローラ。
【0098】
(付記6)付記5において,
前記ホストとN値セルメモリとの間において,第1のデータバス,第1乃至第MのECC回路,データ出力手段及び第2のデータバスの経路で前記N値セルメモリへのデータ及びECCコードの書き込みが行われ,前記経路の逆の経路でデータの読み出しが行われることを特徴とする多値セルメモリ用メモリコントローラ。
【0099】
(付記7)付記1において,
前記多値セルメモリへの書き込み時に,クロックに同期して,前記第1のデータバスからデータが供給され,前記データ出力手段が当該データを前記第2のデータバスに出力すると共に,前記ECC回路が各データ群のエラー訂正コードを生成し,
クロックに同期して,1ページ分のデータを前記第2のデータバスに出力した後,前記データ出力手段が前記エラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。
【0100】
(付記8)付記1において,
前記多値セルメモリからの読み出し時に,クロックに同期して,前記第2のデータバスからデータが供給され,前記ECC回路が各データ群のエラー訂正コードを生成し,
クロックに同期して,1ページ分のデータを供給された後,前記第2のデータバスからエラー訂正コードが供給され,前記ECC回路が前記生成したエラー訂正コードと当該供給されたエラー訂正コードとを比較して,エラー検出及び訂正を行うことを特徴とする多値セルメモリ用メモリコントローラ。
【0101】
(付記9)付記1乃至8のいずれかにおいて,
前記エラー訂正コードは,各データ群に割り付けられたビット番号の各桁が「0」の第1のグループと「1」の第2のグループそれぞれのパリティビットを有することを特徴とする多値セルメモリ用メモリコントローラ。
【0102】
(付記10)付記9において,
前記ECC回路は,エラー検出・訂正時において,全てのビット番号の桁における1対のパリティビットの一方が一致し,他方が不一致の場合に,1ビットエラーの発生を検出することを特徴とする多値セルメモリ用メモリコントローラ。
【0103】
(付記11)付記10において,
前記ECC回路は,エラー検出・訂正時において,前記メモリから供給される供給エラー訂正コードと前記メモリから供給されるデータについて生成した生成エラー訂正コードとの排他的論理和演算を行い,全てのビット番号の桁における1対のパリティビットの一方が一致し,他方が不一致の場合に,前記奇数ビット番号または偶数ビット番号の排他的論理和演算値を,エラー発生ビット番号とすることを特徴する多値セルメモリ用メモリコントローラ。
【0104】
(付記12)ホストとN(N=2n,nは2以上の整数)値セルメモリとの間に,それぞれ複数ビットのデータバスを介して接続されたメモリコントローラにおいて,
前記ホストに接続される第1のデータバスのデータ群について,アドレス方向に分離された第1乃至第M(Mはn以上)のデータ群を順番に入力し,当該第1乃至第Mのデータ群に対して,単ビット不良を訂正可能な第1乃至第Mのエラー訂正コードをそれぞれ生成する共通のECC回路と,
前記第1乃至第(M−1)のエラー訂正コードを保持するエラー訂正コード保持手段と,
1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,当該データを前記N値セルメモリに接続される第2のデータバスに出力するデータ出力手段とを有し,
前記データ出力手段は,更に前記エラー訂正コード保持手段が保持する第1乃至第(M−1)のエラー訂正コードと前記ECC回路が生成した第Mのエラー訂正コードとを,前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。
【0105】
(付記13)付記12において,
前記多値セルメモリへの書き込み時に,クロックに同期して,前記第1のデータバスからデータが供給され,前記データ出力手段が当該データを前記第2のデータバスに出力すると共に,前記ECC回路が各データ群のエラー訂正コードを順次生成し,
クロックに同期して,1ページ分のデータを前記第2のデータバスに出力した後,前記データ出力手段が前記エラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。
【0106】
(付記14)付記12において,
前記多値セルメモリからの読み出し時に,クロックに同期して,前記第2のデータバスからデータが供給され,前記ECC回路が各データ群のエラー訂正コードを順次生成し,
クロックに同期して,1ページ分のデータを供給された後,前記第2のデータバスからエラー訂正コードが供給され,前記ECC回路が前記生成したエラー訂正コードと当該供給されたエラー訂正コードとを比較して,エラー検出及び訂正を行うことを特徴とする多値セルメモリ用メモリコントローラ。
【0107】
(付記15)付記12乃至14のいずれかにおいて,
前記エラー訂正コードは,各データ群に割り付けられたビット番号の各桁が「0」の第1のグループと「1」の第2のグループそれぞれのパリティビットを有することを特徴とする多値セルメモリ用メモリコントローラ。
【0108】
(付記16)ホストとN(N=2n,nは2以上の整数)値セルメモリとの間に,それぞれ複数ビットのデータバスを介して接続されたメモリコントローラにおいて,
前記ホストに接続される第1のデータバスのデータ群について,アドレス方向に分離された第1乃至第M(Mはn以上)のデータ群をそれぞれ入力し,当該第1乃至第Mのデータ群に対して,単ビット不良を訂正可能な第1乃至第Mのエラー訂正コードをそれぞれ生成する第1乃至第MのECC回路と,
1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,当該データを前記N値セルメモリに接続される第2のデータバスに出力するデータ出力手段とを有し,
前記データ出力手段は,更に前記ECC回路が生成したそれぞれのエラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。
【0109】
(付記17)付記16において,
前記多値セルメモリへの書き込み時に,クロックに同期して,前記第1のデータバスからデータが供給され,前記データ出力手段が当該データを前記第2のデータバスに出力すると共に,前記ECC回路が各データ群のエラー訂正コードを生成し,
クロックに同期して,1ページ分のデータを前記第2のデータバスに出力した後,前記データ出力手段が前記エラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。
【0110】
(付記18)付記16において,
前記多値セルメモリからの読み出し時に,クロックに同期して,前記第2のデータバスからデータが供給され,前記ECC回路が各データ群のエラー訂正コードを生成し,
クロックに同期して,1ページ分のデータを供給された後,前記第2のデータバスからエラー訂正コードが供給され,前記ECC回路が前記生成したエラー訂正コードと当該供給されたエラー訂正コードとを比較して,エラー検出及び訂正を行うことを特徴とする多値セルメモリ用メモリコントローラ。
【0111】
(付記19)付記16乃至18のいずれかにおいて,
前記エラー訂正コードは,各データ群に割り付けられたビット番号の各桁が「0」の第1のグループと「1」の第2のグループそれぞれのパリティビットを有することを特徴とする多値セルメモリ用メモリコントローラ。
【0112】
【発明の効果】
以上,本発明によれば,多値セルメモリのデータのエラー訂正を可能にするECCコードを生成し,そのエラー検出・訂正を行うメモリコントローラを提供することができる。
【0113】
また,本発明によれば,多値セルメモリのデータを,多値セルに属するnビットデータが重複しないように第1乃至第M(Mはn以上)のデータ群に分離して,それら第1乃至第Mのデータ群について第1乃至第Mのエラー訂正コードを生成するので,1つの多値セルに不良が発生してnビットエラーが発生しても,各データ群のエラー訂正コードにより各1ビットずつ訂正することで,nビットエラーを訂正することができる。
【図面の簡単な説明】
【図1】多値セルメモリを使用したメモリシステムの構成図である。
【図2】多値セルメモリの構成例を示す回路図である。
【図3】セルのチャージ状態を示す図である。
【図4】多値セルメモリ装置の構成図である。
【図5】多値セルメモリのページ構成を示す図である。
【図6】ページデータを入出力端子(列)単位で複数のECCゾーンに分離する場合のメモリデバイスとメモリコントローラの構成例を示す図である。
【図7】ページデータを入出力端子(列)単位で複数のECCゾーンに分離する場合の別のメモリデバイスとメモリコントローラの構成例を示す図である。
【図8】ページデータをアドレス(行)単位で複数のECCゾーンに分離する場合のメモリデバイスとメモリコントローラの構成例を示す図である。
【図9】ページデータをアドレス(行)単位で複数のECCゾーンに分離する場合の別のメモリデバイスとメモリコントローラの構成例を示す図である。
【図10】多値セルメモリへの書き込み動作を説明する図である。
【図11】多値セルメモリからの読み出し動作を説明する図である。
【図12】入出力端子(列)単位で分割した例を示す図である。
【図13】 ECCコードをスペア領域への格納を説明する図である。
【図14】図12,13の例に適用されるメモリコントローラ内のECC回路を示す図である。
【図15】アドレス(行)単位で分割した例を示す図である。
【図16】ゾーン毎に生成されるECCコードの例を示す図である。
【図17】生成したECCコードのスペア領域への格納を説明する図である。
【図18】図15〜17の例に適用されるメモリコントローラ内のECC回路を示す図である。
【符号の説明】
1 ホスト
2 メモリコントローラ
3 多値セルメモリ
4 ECC回路
5 第1のデータバス
6 第2のデータバス
Claims (10)
- ホストとN(N=2n,nは2以上の整数)値セルメモリとの間に,それぞれ複数ビットのデータバスを介して接続されたメモリコントローラにおいて,
前記ホストに接続される第1のデータバスの第1乃至第M(Mはn以上)のデータ群をそれぞれ並列に入力し,当該第1乃至第Mのデータ群に対して,単ビット不良を訂正可能な第1乃至第Mのエラー訂正コードをそれぞれ生成する第1乃至第MのECC回路と,
1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,当該データ群を前記N値セルメモリのデータ入出力端子に接続される第2のデータバスに出力するデータ出力手段とを有し,
前記データ出力手段は,更に前記ECC回路が生成したそれぞれのエラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。 - 請求項1において,
前記N値セルメモリのデータ入出力端子が,下位から順に第1,第2...第Mのデータ群に分割されており,
前記データ出力手段は,第2のデータバスに対して,下位から順に第1,第2...第Mのデータ群が割り当てられるようにデータを出力することを特徴とする多値セルメモリ用メモリコントローラ。 - 請求項2において,
前記第1のデータバスのデータが,下位から順に第1,第2...第Mのデータ群に分割して第1乃至第MのECC回路に入力されることを特徴とする多値セルメモリ用メモリコントローラ。 - 請求項1において,
前記N値セルメモリのデータ入出力端子が,下位から順にN値セルに属するデータ群に分割されて,
前記データ出力手段は,第2のデータバスに対して,下位から順に第1,第2...第Mのデータ群のデータが周期的に繰り返されるようにデータを出力することを特徴とする多値セルメモリ用メモリコントローラ。 - 請求項1において,
前記N値セルメモリからデータを読み出す場合は,前記第1乃至第MのECC回路は,前記第2のデータバスの第1乃至第Mのデータ群及び第1乃至第Mのエラー訂正コードを入力し,当該第1乃至第MのECC回路が第1乃至第Mのデータ群内の1ビットエラー訂正を行うことを特徴とする多値セルメモリ用メモリコントローラ。 - 請求項1において,
前記多値セルメモリへの書き込み時に,クロックに同期して,前記第1のデータバスからデータが供給され,前記データ出力手段が当該データを前記第2のデータバスに出力すると共に,前記ECC回路が各データ群のエラー訂正コードを生成し,
クロックに同期して,1ページ分のデータを前記第2のデータバスに出力した後,前記データ出力手段が前記エラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。 - 請求項1において,
前記多値セルメモリからの読み出し時に,クロックに同期して,前記第2のデータバスからデータが供給され,前記ECC回路が各データ群のエラー訂正コードを生成し,
クロックに同期して,1ページ分のデータを供給された後,前記第2のデータバスからエラー訂正コードが供給され,前記ECC回路が前記生成したエラー訂正コードと当該供給されたエラー訂正コードとを比較して,エラー検出及び訂正を行うことを特徴とする多値セルメモリ用メモリコントローラ。 - 請求項1乃至7のいずれかにおいて,
前記エラー訂正コードは,各データ群に割り付けられたビット番号の各桁が「0」の第1のグループと「1」の第2のグループそれぞれのパリティビットを有することを特徴とする多値セルメモリ用メモリコントローラ。 - ホストとN(N=2n,nは2以上の整数)値セルメモリとの間に,それぞれ複数ビットのデータバスを介して接続されたメモリコントローラにおいて,
前記ホストに接続される第1のデータバスのデータ群について,アドレス方向に分離された第1乃至第M(Mはn以上)のデータ群を順番に入力し,当該第1乃至第Mのデータ群に対して,単ビット不良を訂正可能な第1乃至第Mのエラー訂正コードをそれぞれ生成する共通のECC回路と,
前記第1乃至第(M−1)のエラー訂正コードを保持するエラー訂正コード保持手段と,
1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,当該データを前記N値セルメモリに接続される第2のデータバスに出力するデータ出力手段とを有し,
前記データ出力手段は,更に前記エラー訂正コード保持手段が保持する第1乃至第(M−1)のエラー訂正コードと前記ECC回路が生成した第Mのエラー訂正コードとを,前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。 - ホストとN(N=2n,nは2以上の整数)値セルメモリとの間に,それぞれ複数ビットのデータバスを介して接続されたメモリコントローラにおいて,
前記ホストに接続される第1のデータバスのデータ群について,アドレス方向に分離された第1乃至第M(Mはn以上)のデータ群をそれぞれ入力し,当該第1乃至第Mのデータ群に対して,単ビット不良を訂正可能な第1乃至第Mのエラー訂正コードをそれぞれ生成する第1乃至第MのECC回路と,
1つのN値セルに属するnビットデータが重複せずに第1乃至第Mのデータ群に分離されるように,当該データを前記N値セルメモリに接続される第2のデータバスに出力するデータ出力手段とを有し,
前記データ出力手段は,更に前記ECC回路が生成したそれぞれのエラー訂正コードを前記第2のデータバスに出力することを特徴とする多値セルメモリ用メモリコントローラ。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001252400A JP4437519B2 (ja) | 2001-08-23 | 2001-08-23 | 多値セルメモリ用のメモリコントローラ |
US10/097,499 US7096406B2 (en) | 2001-08-23 | 2002-03-15 | Memory controller for multilevel cell memory |
DE60217591T DE60217591T2 (de) | 2001-08-23 | 2002-03-18 | Speicher-Steuerung für Mehrpegel-Speicherzelle |
EP02251916A EP1286359B1 (en) | 2001-08-23 | 2002-03-18 | Memory controller for multilevel cell memory |
KR1020020021125A KR100873656B1 (ko) | 2001-08-23 | 2002-04-18 | 멀티레벨 셀 메모리용 메모리 제어기 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001252400A JP4437519B2 (ja) | 2001-08-23 | 2001-08-23 | 多値セルメモリ用のメモリコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003067260A JP2003067260A (ja) | 2003-03-07 |
JP4437519B2 true JP4437519B2 (ja) | 2010-03-24 |
Family
ID=19080883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001252400A Expired - Fee Related JP4437519B2 (ja) | 2001-08-23 | 2001-08-23 | 多値セルメモリ用のメモリコントローラ |
Country Status (5)
Country | Link |
---|---|
US (1) | US7096406B2 (ja) |
EP (1) | EP1286359B1 (ja) |
JP (1) | JP4437519B2 (ja) |
KR (1) | KR100873656B1 (ja) |
DE (1) | DE60217591T2 (ja) |
Families Citing this family (145)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6857099B1 (en) * | 1996-09-18 | 2005-02-15 | Nippon Steel Corporation | Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program |
ITMI20022669A1 (it) * | 2002-12-18 | 2004-06-19 | Simicroelectronics S R L | Struttura e metodo di rilevamento errori in un dispositivo |
JP4550439B2 (ja) * | 2003-02-28 | 2010-09-22 | 東芝メモリシステムズ株式会社 | Ecc制御装置 |
JP4400081B2 (ja) * | 2003-04-08 | 2010-01-20 | エルピーダメモリ株式会社 | 半導体記憶装置 |
US7372731B2 (en) * | 2003-06-17 | 2008-05-13 | Sandisk Il Ltd. | Flash memories with adaptive reference voltages |
JP4346975B2 (ja) * | 2003-06-27 | 2009-10-21 | 株式会社ルネサステクノロジ | 連想メモリ機能付き集積回路及び侵入検知装置 |
KR100546348B1 (ko) * | 2003-07-23 | 2006-01-26 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그 데이터 저장 방법 |
JP4270994B2 (ja) * | 2003-09-29 | 2009-06-03 | 株式会社東芝 | 不揮発性半導体記憶装置 |
KR100645058B1 (ko) | 2004-11-03 | 2006-11-10 | 삼성전자주식회사 | 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법 |
US7409623B2 (en) * | 2004-11-04 | 2008-08-05 | Sigmatel, Inc. | System and method of reading non-volatile computer memory |
US7493457B2 (en) * | 2004-11-08 | 2009-02-17 | Sandisk Il. Ltd | States encoding in multi-bit flash cells for optimizing error rate |
US20060218467A1 (en) * | 2005-03-24 | 2006-09-28 | Sibigtroth James M | Memory having a portion that can be switched between use as data and use as error correction code (ECC) |
US7307902B2 (en) * | 2005-08-30 | 2007-12-11 | Hewlett-Packard Development Company, L.P. | Memory correction system and method |
US7681109B2 (en) * | 2005-10-13 | 2010-03-16 | Ramot At Tel Aviv University Ltd. | Method of error correction in MBC flash memory |
US7774684B2 (en) * | 2006-06-30 | 2010-08-10 | Intel Corporation | Reliability, availability, and serviceability in a memory device |
US7369434B2 (en) * | 2006-08-14 | 2008-05-06 | Micron Technology, Inc. | Flash memory with multi-bit read |
JP2008077810A (ja) | 2006-09-25 | 2008-04-03 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR100845526B1 (ko) * | 2006-10-19 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법 |
KR100766042B1 (ko) * | 2006-12-06 | 2007-10-12 | 삼성전자주식회사 | 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치 |
KR100822030B1 (ko) * | 2006-12-26 | 2008-04-15 | 삼성전자주식회사 | 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치 |
KR100799688B1 (ko) * | 2007-01-03 | 2008-02-01 | 삼성전자주식회사 | 백업 회로를 갖는 메모리 시스템 및 그것의 프로그램 방법 |
KR100845529B1 (ko) * | 2007-01-03 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템 |
US7865805B1 (en) * | 2007-02-26 | 2011-01-04 | Lockheed Martin Corporation | Multiple bit upset insensitive error detection and correction circuit for field programmable gate array based on static random access memory blocks |
US20110022776A1 (en) * | 2007-03-20 | 2011-01-27 | Nxp B.V. | Data reliability in storage architectures |
KR100921748B1 (ko) * | 2007-06-04 | 2009-10-15 | 삼성전자주식회사 | Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법 |
US7721181B2 (en) * | 2007-07-11 | 2010-05-18 | Macronix International Co., Ltd. | Memory and 1-bit error checking method thereof |
JP4564520B2 (ja) | 2007-08-31 | 2010-10-20 | 株式会社東芝 | 半導体記憶装置およびその制御方法 |
JP5150245B2 (ja) | 2007-12-27 | 2013-02-20 | 株式会社東芝 | 半導体記憶装置 |
US7934052B2 (en) * | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
KR101378349B1 (ko) * | 2008-01-30 | 2014-03-28 | 삼성전자주식회사 | 메모리 장치 및 메모리 데이터 읽기 방법 |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
KR101378602B1 (ko) * | 2008-05-13 | 2014-03-25 | 삼성전자주식회사 | 메모리 장치 및 메모리 프로그래밍 방법 |
KR101506655B1 (ko) | 2008-05-15 | 2015-03-30 | 삼성전자주식회사 | 메모리 장치 및 메모리 데이터 오류 관리 방법 |
US8521979B2 (en) * | 2008-05-29 | 2013-08-27 | Micron Technology, Inc. | Memory systems and methods for controlling the timing of receiving read data |
US7979757B2 (en) | 2008-06-03 | 2011-07-12 | Micron Technology, Inc. | Method and apparatus for testing high capacity/high bandwidth memory devices |
US8756486B2 (en) * | 2008-07-02 | 2014-06-17 | Micron Technology, Inc. | Method and apparatus for repairing high capacity/high bandwidth memory devices |
US7855931B2 (en) * | 2008-07-21 | 2010-12-21 | Micron Technology, Inc. | Memory system and method using stacked memory device dice, and system using the memory system |
US8289760B2 (en) * | 2008-07-02 | 2012-10-16 | Micron Technology, Inc. | Multi-mode memory device and method having stacked memory dice, a logic die and a command processing circuit and operating in direct and indirect modes |
TWI382422B (zh) * | 2008-07-11 | 2013-01-11 | Genesys Logic Inc | 根據錯誤更正碼更新快閃記憶體之資料頁面之儲存裝置與方法 |
US8127204B2 (en) | 2008-08-15 | 2012-02-28 | Micron Technology, Inc. | Memory system and method using a memory device die stacked with a logic die using data encoding, and system using the memory system |
TWI404067B (zh) * | 2009-02-27 | 2013-08-01 | Macronix Int Co Ltd | 記憶體裝置及其操作方法 |
KR20100104840A (ko) * | 2009-03-19 | 2010-09-29 | 삼성전자주식회사 | 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템 |
KR101056876B1 (ko) * | 2009-06-30 | 2011-08-12 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 동작 방법 및 이를 구현하는 불휘발성 메모리 장치 |
US8615700B2 (en) * | 2009-08-18 | 2013-12-24 | Viasat, Inc. | Forward error correction with parallel error detection for flash memories |
US8413015B2 (en) | 2009-09-21 | 2013-04-02 | Sandisk Technologies Inc. | Nonvolatile memory controller with scalable pipelined error correction |
TWI381392B (zh) * | 2010-02-04 | 2013-01-01 | Transcend Information Inc | 雙層面記憶體錯誤修正方法以及相關的記憶體裝置 |
JP2011197819A (ja) | 2010-03-17 | 2011-10-06 | Toshiba Corp | 半導体装置 |
US8365041B2 (en) | 2010-03-17 | 2013-01-29 | Sandisk Enterprise Ip Llc | MLC self-raid flash data protection scheme |
US9195540B2 (en) * | 2010-10-06 | 2015-11-24 | HGST, Inc. | Multiple sector parallel access memory array with error correction |
KR101198250B1 (ko) | 2010-12-06 | 2012-11-07 | 에스케이하이닉스 주식회사 | 오류코드 패턴 형성 회로 및 이를 포함하는 메모리 장치 |
US8400808B2 (en) | 2010-12-16 | 2013-03-19 | Micron Technology, Inc. | Phase interpolators and push-pull buffers |
CN102714493B (zh) | 2011-01-20 | 2015-05-06 | 松下电器产业株式会社 | 非易失性闩锁电路及非易失性触发电路 |
US8909982B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | System and method for detecting copyback programming problems |
US8910020B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | Intelligent bit recovery for flash memory |
US8656251B2 (en) * | 2011-09-02 | 2014-02-18 | Apple Inc. | Simultaneous data transfer and error control to reduce latency and improve throughput to a host |
JP2013089082A (ja) | 2011-10-19 | 2013-05-13 | Toshiba Corp | メモリコントローラ、半導体記憶システムおよびメモリ制御方法 |
US9058289B2 (en) | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
US9048876B2 (en) | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US8924815B2 (en) | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
US8954822B2 (en) | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
US8694862B2 (en) * | 2012-04-20 | 2014-04-08 | Arm Limited | Data processing apparatus using implicit data storage data storage and method of implicit data storage |
US8898545B2 (en) | 2012-05-18 | 2014-11-25 | Hitachi, Ltd. | Semiconductor storage device and control method of nonvolatile memory |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9009576B1 (en) | 2013-03-15 | 2015-04-14 | Sandisk Enterprise Ip Llc | Adaptive LLR based on syndrome weight |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
KR20160002820A (ko) | 2013-04-24 | 2016-01-08 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 멀티레벨 메모리 셀의 그룹을 사용하는 데이터의 표현 |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented in non-volatile data storage systems |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9171597B2 (en) | 2013-08-30 | 2015-10-27 | Micron Technology, Inc. | Apparatuses and methods for providing strobe signals to memories |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9158349B2 (en) | 2013-10-04 | 2015-10-13 | Sandisk Enterprise Ip Llc | System and method for heat dissipation |
US9323637B2 (en) | 2013-10-07 | 2016-04-26 | Sandisk Enterprise Ip Llc | Power sequencing and data hardening architecture |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US10073731B2 (en) * | 2013-11-27 | 2018-09-11 | Intel Corporation | Error correction in memory |
US9122636B2 (en) | 2013-11-27 | 2015-09-01 | Sandisk Enterprise Ip Llc | Hard power fail architecture |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9280429B2 (en) | 2013-11-27 | 2016-03-08 | Sandisk Enterprise Ip Llc | Power fail latching based on monitoring multiple power supply voltages in a storage device |
US9250676B2 (en) | 2013-11-29 | 2016-02-02 | Sandisk Enterprise Ip Llc | Power failure architecture and verification |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9092370B2 (en) | 2013-12-03 | 2015-07-28 | Sandisk Enterprise Ip Llc | Power failure tolerant cryptographic erase |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9323610B2 (en) | 2014-01-30 | 2016-04-26 | Sandisk Technologies Inc. | Non-blocking commands |
US9549457B2 (en) | 2014-02-12 | 2017-01-17 | Sandisk Technologies Llc | System and method for redirecting airflow across an electronic assembly |
US9497889B2 (en) | 2014-02-27 | 2016-11-15 | Sandisk Technologies Llc | Heat dissipation for substrate assemblies |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9485851B2 (en) | 2014-03-14 | 2016-11-01 | Sandisk Technologies Llc | Thermal tube assembly structures |
US9519319B2 (en) | 2014-03-14 | 2016-12-13 | Sandisk Technologies Llc | Self-supporting thermal tube structure for electronic assemblies |
US9348377B2 (en) | 2014-03-14 | 2016-05-24 | Sandisk Enterprise Ip Llc | Thermal isolation techniques |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
KR102112559B1 (ko) * | 2014-04-08 | 2020-05-21 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작방법 |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US9093160B1 (en) | 2014-05-30 | 2015-07-28 | Sandisk Technologies Inc. | Methods and systems for staggered memory operations |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US8891303B1 (en) | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
US9070481B1 (en) | 2014-05-30 | 2015-06-30 | Sandisk Technologies Inc. | Internal current measurement for age measurements |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
US9653185B2 (en) * | 2014-10-14 | 2017-05-16 | International Business Machines Corporation | Reducing error correction latency in a data storage system having lossy storage media |
JP2016162466A (ja) | 2015-02-26 | 2016-09-05 | 株式会社東芝 | 半導体記憶装置及びメモリシステム |
US10067825B2 (en) * | 2015-09-14 | 2018-09-04 | Samsung Electronics Co., Ltd. | Memory device and method of controlling ECC operation in the same |
CN108346452B (zh) * | 2017-01-25 | 2023-05-02 | 三星电子株式会社 | 存储器装置和控制存储器装置中的ecc操作的方法 |
EP3370152B1 (en) * | 2017-03-02 | 2019-12-25 | INTEL Corporation | Integrated error checking and correction (ecc) in memory devices with fixed bandwidth interfaces |
WO2021199409A1 (ja) * | 2020-04-02 | 2021-10-07 | 三菱電機株式会社 | 誤り訂正符号化装置、誤り訂正復号装置、制御回路、記憶媒体、誤り訂正符号化方法および誤り訂正復号方法 |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
US11605441B1 (en) | 2021-08-30 | 2023-03-14 | Samsung Electronics Co., Ltd. | Memory systems having memory devices therein with enhanced error correction capability and methods of operating same |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0877066A (ja) * | 1994-08-31 | 1996-03-22 | Tdk Corp | フラッシュメモリコントローラ |
JPH09244961A (ja) * | 1996-03-08 | 1997-09-19 | Mitsubishi Electric Corp | フラッシュata−pcカード |
US5754566A (en) | 1996-09-06 | 1998-05-19 | Intel Corporation | Method and apparatus for correcting a multilevel cell memory by using interleaving |
US5754567A (en) * | 1996-10-15 | 1998-05-19 | Micron Quantum Devices, Inc. | Write reduction in flash memory systems through ECC usage |
US5859858A (en) * | 1996-10-25 | 1999-01-12 | Intel Corporation | Method and apparatus for correcting a multilevel cell memory by using error locating codes |
US6076182A (en) | 1996-12-16 | 2000-06-13 | Micron Electronics, Inc. | Memory fault correction system and method |
JPH10222992A (ja) | 1997-02-06 | 1998-08-21 | Fujitsu Ltd | 多値メモリ及び多値メモリに対するデータアクセス方法 |
JP3602294B2 (ja) * | 1997-05-28 | 2004-12-15 | 株式会社ルネサステクノロジ | 半導体メモリおよび情報記憶装置 |
JP3165101B2 (ja) | 1998-03-05 | 2001-05-14 | 日本電気アイシーマイコンシステム株式会社 | 多値式半導体メモリ装置およびその不良救済方法 |
JPH11339496A (ja) * | 1998-05-22 | 1999-12-10 | Nec Corp | 多値セルのecc回路 |
JP2000251484A (ja) * | 1999-02-26 | 2000-09-14 | Sony Corp | 不揮発性半導体記憶装置 |
-
2001
- 2001-08-23 JP JP2001252400A patent/JP4437519B2/ja not_active Expired - Fee Related
-
2002
- 2002-03-15 US US10/097,499 patent/US7096406B2/en not_active Expired - Lifetime
- 2002-03-18 DE DE60217591T patent/DE60217591T2/de not_active Expired - Lifetime
- 2002-03-18 EP EP02251916A patent/EP1286359B1/en not_active Expired - Lifetime
- 2002-04-18 KR KR1020020021125A patent/KR100873656B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1286359A2 (en) | 2003-02-26 |
JP2003067260A (ja) | 2003-03-07 |
EP1286359A3 (en) | 2004-05-19 |
EP1286359B1 (en) | 2007-01-17 |
KR20030017310A (ko) | 2003-03-03 |
US7096406B2 (en) | 2006-08-22 |
US20030041299A1 (en) | 2003-02-27 |
KR100873656B1 (ko) | 2008-12-12 |
DE60217591T2 (de) | 2007-11-22 |
DE60217591D1 (de) | 2007-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4437519B2 (ja) | 多値セルメモリ用のメモリコントローラ | |
US9201718B2 (en) | Data recovery in a solid state storage system | |
US8943387B2 (en) | Programming management data for a memory | |
US7747903B2 (en) | Error correction for memory | |
US8725944B2 (en) | Implementing raid in solid state memory | |
US9164830B2 (en) | Methods and devices to increase memory device data reliability | |
US7765455B2 (en) | Semiconductor memory device | |
US8699269B1 (en) | Systems and methods for improving error distributions in multi-level cell memory systems | |
JP5657079B1 (ja) | 半導体記憶装置 | |
US11868210B2 (en) | Memory device crossed matrix parity | |
JP2012014807A (ja) | 不揮発性半導体記憶装置 | |
US20020174397A1 (en) | Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function | |
CN113345511B (zh) | 存储器件及其测试方法 | |
JP2013246855A (ja) | 半導体メモリ | |
JP5710815B1 (ja) | 半導体記憶装置 | |
JP2012243332A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20060719 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070126 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20070919 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071029 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091218 |
|
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: 20091222 |
|
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: 20091223 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130115 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4437519 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |