(57)【要約】【課題】ここには、Ｍビットのデータ（Ｍは２以上の正数）を格納するフラッシュメモリ装置のＥＣＣ制御器が提供される。【解決手段】ＥＣＣ制御器は、第１エラー訂正方式によってフラッシュメモリ装置に格納されるプログラムのデータから第１ＥＣＣデータを生成する様に構成された第１ＥＣＣブロックと、第２エラー訂正方式によって前記第１ＥＣＣブロックから出力される第１ＥＣＣデータ及び前記プログラムのデータから第２ＥＣＣデータを生成する様に構成された第２ＥＣＣブロックを含み、前記プログラムのデータと、前記第１ＥＣＣデータと、前記第２ＥＣＣデータは前記フラッシュメモリ装置に格納される。【選択図】図５
2008165805.tif 000002
【特許請求の範囲】
【請求項１】
Ｍビットのデータ（Ｍは２以上の正数）を格納するフラッシュメモリ装置のＥＣＣ制御器に於いて、
第１エラー訂正方式によって前記フラッシュメモリ装置に格納されるプログラムのデータから第１ＥＣＣデータを生成する第１ＥＣＣブロックと、第２エラー訂正方式によって前記第１ＥＣＣブロックから出力される第１ＥＣＣデータ及び前記プログラムのデータから第２ＥＣＣデータを生成する第２ＥＣＣブロックを含み、
前記プログラムのデータと、前記第１ＥＣＣデータと、前記第２ＥＣＣデータは前記フラッシュメモリ装置に格納されることを特徴とするＥＣＣ制御器。
【請求項２】
前記第２ＥＣＣブロックは、前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードし、前記第１ＥＣＣブロックは前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正する様に構成されることを特徴とする請求項１に記載のＥＣＣ制御器。
【請求項３】
前記第１エラー訂正方式は、リニアブロック方式であり、前記第２エラー訂正方式は最尤方式であることを特徴とする請求項２に記載のＥＣＣ制御器。
【請求項４】
前記第２ＥＣＣブロックは、前記プログラムのデータ及び前記第１ＥＣＣデータにパリティ情報を追加して前記第２ＥＣＣデータを生成することを特徴とする請求項１に記載のＥＣＣ制御器。
【請求項５】
前記フラッシュメモリ装置は、ＮＡＮＤフラッシュメモリ装置、ＮＯＲフラッシュメモリ装置、ＰＲＡＭ、ＭＲＡＭの中で何れか一つであることを特徴とする請求項１に記載のＥＣＣ制御器。
【請求項６】
前記フラッシュメモリ装置は、前記プログラムのデータが格納される第１格納領域と、前記第１ＥＣＣデータと前記第２ＥＣＣデータが格納される第２格納領域を含むことを特徴とする請求項１に記載のＥＣＣ制御器。
【請求項７】
前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納することを特徴とする請求項６に記載のＥＣＣ制御器。
【請求項８】
Ｍビットのデータ（Ｍは２以上の正数）を格納するフラッシュメモリ装置と、
前記フラッシュメモリ装置を制御するメモリ制御器を含み、
前記メモリ制御器は、リニアブロック方式で前記フラッシュメモリ装置に格納されるデータをエンコードし、最尤方式で前記リニアブロック方式からエンコーダされたデータをエンコードするＥＣＣ制御器を含み、前記ＥＣＣ制御器によってエンコーダされたデータは、前記フラッシュメモリ装置に格納されることを特徴とするメモリシステム。
【請求項９】
前記ＥＣＣ制御器は、
前記リニアブロック方式によって前記フラッシュメモリ装置に格納されるプログラムのデータから第１ＥＣＣデータを生成する第１ＥＣＣブロックと、前記最尤方式によって前記第１ＥＣＣブロックから出力される第１ＥＣＣデータ及び前記プログラムのデータから第２ＥＣＣデータを生成する第２ＥＣＣブロックを含み、
前記プログラムのデータと、前記第１ＥＣＣデータと、前記第２ＥＣＣデータは前記フラッシュメモリ装置に同時に格納されることを特徴とする請求項８に記載のメモリシステム。
【請求項１０】
前記第２ＥＣＣブロックは、前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードし、前記第１ＥＣＣブロックは、前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正する様に構成されることを特徴とする請求項９に記載のメモリシステム。
【請求項１１】
前記第２ＥＣＣブロックは、前記プログラムのデータ及び前記第１ＥＣＣデータにパリティ情報を追加して前記第２ＥＣＣデータを生成することを特徴とする請求項１０に記載のメモリシステム。
【請求項１２】
前記フラッシュメモリ装置は、前記プログラムのデータが格納される第１格納領域と、前記第１ＥＣＣデータと前記第２ＥＣＣデータが格納される第２格納領域を含むことを特徴とする請求項９に記載のメモリシステム。
【請求項１３】
前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納することを特徴とする請求項１２に記載のメモリシステム。
【請求項１４】
前記メモリ制御器は、コンピュータの使用システムのメインボードに装着されることを特徴とする請求項８に記載のメモリシステム。
【請求項１５】
前記フラッシュメモリ装置と前記メモリ制御器は、フラッシュメモリカードを構成することを特徴とする請求項８に記載のメモリシステム。
【請求項１６】
Ｍビットのデータ（Ｍは２以上の正数）を格納するフラッシュメモリ装置と、
前記フラッシュメモリ装置を制御するメモリ制御器を含み、
前記メモリ制御器は、
前記フラッシュメモリ装置に格納されるプログラムのデータからＣＲＣ値を生成して第１データパターンを出力する第１ＥＣＣブロックと、
リニアブロック方式によって前記第１データパターンから第１ＥＣＣデータを生成して第２データパターンを出力する第２ＥＣＣブロックと、
最尤方式によって前記第２データパターンから第２ＥＣＣデータを生成して第３データパターンを出力する第３ＥＣＣブロックを含むことを特徴とするメモリシステム。
【請求項１７】
前記第３ＥＣＣブロックは、前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードし、前記第２ＥＣＣブロックは、前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正し、前記第１ＥＣＣブロックは、前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれたＣＲＣ値を利用して前記読み出しデータのエラーを検出する様に構成されることを特徴とする請求項１６に記載のメモリシステム。
【請求項１８】
前記第３ＥＣＣブロックは、前記第２データパターンにパリティ情報を追加して前記第２ＥＣＣデータを生成することを特徴とする請求項１７に記載のメモリシステム。
【請求項１９】
前記フラッシュメモリ装置は、前記プログラムのデータが格納される第１格納領域と、前記ＣＲＣ値と、前記第１ＥＣＣデータと、前記第２ＥＣＣデータが格納される第２格納領域を含むことを特徴とする請求項１７に記載のメモリシステム。
【請求項２０】
前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納することを特徴とする請求項１９に記載のメモリシステム。
【請求項２１】
フラッシュメモリ装置に格納されるＭビットのデータ（Ｍは２以上の正数）のエラーを訂正する方法に於いて、
第１エラー訂正方式によって前記フラッシュメモリ装置に格納されるプログラムのデータから第１ＥＣＣデータを生成する段階と、
第２エラー訂正方式によって前記第１ＥＣＣブロックから出力される第１ＥＣＣデータ及び前記プログラムのデータから第２ＥＣＣデータを生成する段階を含み、前記プログラムのデータと、前記第１ＥＣＣデータと、前記第２ＥＣＣデータは前記フラッシュメモリ装置に同時に格納されることを特徴とするエラー訂正方法。
【請求項２２】
前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードする段階と、
前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正する段階をさらに含むことを特徴とする請求項２０に記載のエラー訂正方法。
【請求項２３】
前記第１エラー訂正方式は、リニアブロック方式であり、前記第２エラー訂正方式は最尤方式であることを特徴とする請求項２１に記載のエラー訂正方法。
【請求項２４】
前記第２ＥＣＣデータは、前記プログラムのデータ及び前記第１ＥＣＣデータにパリティ情報を追加して生成されることを特徴とする請求項２１に記載のエラー訂正方法。
【請求項２５】
前記フラッシュメモリ装置は、ＮＡＮＤフラッシュメモリ装置、ＮＯＲフラッシュメモリ装置、ＰＲＡＭ、ＭＲＡＭの中で何れか一つであることを特徴とする請求項２１に記載のエラー訂正方法。
【請求項２６】
前記フラッシュメモリ装置は、前記プログラムのデータが格納される第１格納領域と、前記第１ＥＣＣデータと前記第２ＥＣＣデータが格納される第２格納領域を含むことを特徴とする請求項２１に記載のエラー訂正方法。
【請求項２７】
前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納することを特徴とする請求項２６に記載のエラー訂正方法。
【請求項２８】
フラッシュメモリ装置に格納されるＭビットのデータ（Ｍは２以上の正数）のエラーを訂正する方法に於いて、
前記フラッシュメモリ装置に格納されるプログラムのデータからＣＲＣ値を生成して第１データパターンを出力する段階と、
リニアブロック方式によって前記第１データパターンから第１ＥＣＣデータを生成して第２データパターンを出力する段階と、
最尤方式によって前記第２データパターンから第２ＥＣＣデータを生成して第３データパターンを出力する段階を含み、前記プログラムのデータと、前記ＣＲＣ値と、前記第１ＥＣＣデータと、前記第２ＥＣＣデータから構成された前記第３データパターンは前記フラッシュメモリ装置に格納されることを特徴とするエラー訂正方法。
【請求項２９】
前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードする段階と、
前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正する段階と、
前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれたＣＲＣ値を利用して前記読み出しデータのエラーを検出する段階をさらに含むことを特徴とする請求項２８に記載のエラー訂正方法。
【請求項３０】
前記第２ＥＣＣデータは、前記第２データパターンにパリティ情報を追加して生成されることを特徴とする請求項２８に記載のエラー訂正方法。
【請求項３１】
前記フラッシュメモリ装置は、前記プログラムのデータが格納される第１格納領域と、前記ＣＲＣ値と、前記第１ＥＣＣデータと、前記第２ＥＣＣデータが格納される第２格納領域を含むことを特徴とする請求項２８に記載のエラー訂正方法。
【請求項３２】
前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納することを特徴とする請求項３１に記載のエラー訂正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ格納装置に係り、より詳しくはフラッシュメモリ装置に格納されたマルチビットのデータのエラーを検出及び訂正する技術に関するものである。
【背景技術】
【０００２】
フラッシュメモリ装置は、メモリチップのデータ情報を維持する為に電源の供給が要らない不揮発性メモリ装置である。しかも、ＰＣでメインメモリとして使用されるＤＲＡＭほど速いのではないが、フラッシュメモリ装置は読み出し速度が速く、ハードディスクより衝撃に強い。この特徴によって、フラッシュメモリ装置は、電池で動作する格納装置として多く使用されている。フラッシュメモリ装置のまた他の長所は強い圧力又は高温の水等の悪い環境に露出されても破壊され難い点である
【０００３】
フラッシュメモリ装置は電気的にデータを消し、再書き込みが可能である不揮発性のコンピュータ記憶装置である。ＥＥＰＲＯＭとは異なって、フラッシュメモリ装置はブロックの単位で消し、書き込みが可能である。
【０００４】
フラッシュメモリ装置はＥＥＰＲＯＭより製造コストが低いので大容量の不揮発性又は固形状態のストレージを必要とするとき使用される。代表的な活用例としてデジタル音楽再生器、デジタルカメラ、携帯電話等がある。データを格納し、コンピュータとの間にデータを移す用途にＵＳＢが多く使われるが、このときもフラッシュメモリ装置が使用される。
【０００５】
フラッシュメモリ装置はビット情報を格納するセルと言うフローティングゲートトランジスタ等（ｆｌｏａｔｉｎｇ  ｇａｔｅ  ｔｒａｎｓｉｓｔｏｒｓ）から構成されたアレイに情報を格納する。マルチ−レベルセル（ＭＬＣ）装置と呼ばれるより新しいフラッシュメモリ装置は、セルのフローティングゲートに蓄積される電荷の量を制御することによって一つのセルに１ビット以上を格納することができる。説明の便宜のため、一つのメモリセルに１ビットのデータを格納するフラッシュメモリ装置をＳＬＣフラッシュメモリ装置と称し、一つのメモリセルにＭビットのデータ（Ｍは２以上の正数）を格納するフラッシュメモリ装置をＭＬＣフラッシュメモリ装置と称する。
【０００６】
ＳＬＣフラッシュメモリ装置の場合、一つのメモリセルに格納されたデータはデータ‘１’のしきい値電圧の分布とデータ‘０’のしきい値電圧の分布の間の適切な基準電圧を適用することによって判別できる。例えば、基準電圧がメモリセルの制御ゲートに印加された状態で、メモリセルを通じて電流が流れているか否かによってデータ‘１’又は‘０’を判別する。又、判別技術は異なるが、基本的に、ＭＬＣフラッシュメモリ装置にもこの方式が適用される。図１に図示された様に、一つのメモリセルに１ビットのデータを格納するのに二つのしきい値電圧の分布等が適用される。しかし、図２乃至図４に図示された様に、一つのメモリセルにＭビットのデータを格納するのに２Ｍ個のしきい値電圧の分布等が適用される。例えば、一つのメモリセルに２ビットのデータを格納するのに４個のしきい値電圧の分布等が適用され、一つのメモリセルに３ビットのデータを格納するのに８個のしきい値電圧の分布等が適用され、一つのメモリセルに４ビットのデータを格納するのに１６個のしきい値電圧の分布等が適用される。一つのメモリセルに格納されたデータのビット数が増加することによってさらに多いしきい値電圧の分布等が適用される。
【０００７】
しかし、よく知られた様に、メモリセルのしきい値電圧を高くすることは限界がある。又、メモリセルのしきい値電圧は決められた電圧の範囲の内に分布しなければならない。これは、一つのメモリセルに格納されるデータのビット数に関係なくしきい値電圧の分布等が決められた電圧の範囲の内に分布しなければならないことを意味する。従って、図２乃至図４に図示された様に、隣り合うしきい値電圧の分布等が重なることもある。この現状は、一つのメモリセルに格納されたデータのビット数が増加することによってさらに深刻になる。又、この現状は電荷の損失、時間の経過、温度の増加、隣り合うセルのプログラミングのとき生じるカップリング、隣り合うセルの読み出し、セルの欠陥等の様な様々な原因等によってさらに深刻になる。隣り合うしきい値電圧の分布等が重なることによって、読み出されたデータは多いエラビット等（例えば、数個のエラビット等又は数十個のエラビット等）が発生する。即ち、この分野によく知られたエラー訂正方式を利用して読み出されたデータに含まれたエラビット等を検出及び訂正することは不可能である。
【０００８】
従って、マルチビットのデータを格納するフラッシュメモリ装置から読み出されたデータに対するマルチビットのエラーを検出及び訂正することができる新しい技術の開発が要求されている。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、フラッシュメモリ装置から読み出されたマルチビットのデータの信頼性が向上できるエラー訂正スキームを提供することである。
【課題を解決するための手段】
【００１０】
本発明の例示的な実施形態等はＭビットのデータ（Ｍは２以上の正数）を格納するフラッシュメモリ装置のＥＣＣ制御器を提供し、このＥＣＣ制御器は第１エラー訂正方式によって前記フラッシュメモリ装置に格納されるプログラムのデータから第１ＥＣＣデータを生成する様に構成された第１ＥＣＣブロックと、第２エラー訂正方式によって前記第１ＥＣＣブロックから出力される第１ＥＣＣデータ及び前記プログラムのデータから第２ＥＣＣデータを生成する様に構成された第２ＥＣＣブロックを含み、前記プログラムのデータと、前記第１ＥＣＣデータと、前記第２ＥＣＣデータは前記フラッシュメモリ装置に格納される。
【００１１】
例示的な実施形態に於いて、前記第２ＥＣＣブロックは、前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードする様に構成され、前記第１ＥＣＣブロックは、前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正する様に構成される。
【００１２】
例示的な実施形態に於いて、前記第１エラー訂正方式は、リニアブロック方式であり、前記第２エラー訂正方式は最尤（Ｍａｘｉｍｕｍ  Ｌｉｋｅｌｉｈｏｏｄ：ＭＬ）方式である。
【００１３】
例示的な実施形態に於いて、前記第２ＥＣＣブロックは、前記プログラムのデータ及び前記第１ＥＣＣデータにパリティ情報を追加して前記第２ＥＣＣデータを生成する。
【００１４】
例示的な実施形態に於いて、前記フラッシュメモリ装置は、ＮＡＮＤフラッシュメモリ装置、ＮＯＲフラッシュメモリ装置、ＰＲＡＭ、ＭＲＡＭの中で何れか一つである。
【００１５】
例示的な実施形態に於いて、前記フラッシュメモリ装置は、前記プログラムのデータが格納される第１格納領域と、前記第１ＥＣＣデータと前記第２ＥＣＣデータが格納される第２格納領域を含む。
【００１６】
例示的な実施形態に於いて、前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納する。
【００１７】
本発明の他の例示的な実施形態等は、Ｍビットのデータ（Ｍは２以上の正数）を格納するフラッシュメモリ装置と、前記フラッシュメモリ装置を制御する様に構成されたメモリ制御器を含み、前記メモリ制御器はリニアブロック方式で前記フラッシュメモリ装置に格納されるデータをエンコードし、最尤方式で前記リニアブロック方式からエンコーダされたデータをエンコードする様に構成されたＥＣＣ制御器を含み、前記ＥＣＣ制御器によってエンコーダされたデータは、前記フラッシュメモリ装置に格納されるメモリシステムを提供する。
【００１８】
例示的な実施形態に於いて、前記ＥＣＣ制御器は、前記リニアブロック方式によって前記フラッシュメモリ装置に格納されるプログラムのデータから第１ＥＣＣデータを生成する様に構成された第１ＥＣＣブロックと、前記最尤方式によって前記第１ＥＣＣブロックから出力される第１ＥＣＣデータ及び前記プログラムのデータから第２ＥＣＣデータを生成する様に構成された第２ＥＣＣブロックを含み、前記プログラムのデータと、前記第１ＥＣＣデータと、前記第２ＥＣＣデータは前記フラッシュメモリ装置に同時に格納される。
【００１９】
例示的な実施形態に於いて、前記第２ＥＣＣブロックは、前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードする様に構成され、前記第１ＥＣＣブロックは、前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正する様に構成される。
【００２０】
例示的な実施形態に於いて、前記第２ＥＣＣブロックは、前記プログラムのデータ及び前記第１ＥＣＣデータにパリティ情報を追加して前記第２ＥＣＣデータを生成する。
【００２１】
例示的な実施形態に於いて、前記フラッシュメモリ装置は、前記プログラムのデータが格納される第１格納領域と、前記第１ＥＣＣデータと前記第２ＥＣＣデータが格納される第２格納領域を含む。
【００２２】
例示的な実施形態に於いて、前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納する。
【００２３】
例示的な実施形態に於いて、前記メモリ制御器は、コンピュータの使用システムのメインボードに装着される様に構成される。
【００２４】
例示的な実施形態に於いて、前記フラッシュメモリ装置と前記メモリ制御器は、フラッシュメモリカードを構成する。
【００２５】
本発明のまた他の例示的な実施形態等は、Ｍビットのデータ（Ｍは２以上の正数）を格納するフラッシュメモリ装置と、前記フラッシュメモリ装置を制御する様に構成されたメモリ制御器を含み、前記メモリ制御器は、前記フラッシュメモリ装置に格納されるプログラムのデータからＣＲＣ値を生成して第１データパターンを出力する第１ＥＣＣブロックと、リニアブロック方式によって前記第１データパターンから第１ＥＣＣデータを生成して第２データパターンを出力する第２ＥＣＣブロックと、最尤方式によって前記第２データパターンから第２ＥＣＣデータを生成して第３データパターンを出力する第３ＥＣＣブロックを含む。
【００２６】
例示的な実施形態に於いて、前記第３ＥＣＣブロックは、前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードする様に構成され、前記第２ＥＣＣブロックは前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正する様に構成され、前記第１ＥＣＣブロックは前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれたＣＲＣ値を利用して前記読み出しデータのエラーを検出する様に構成される。
【００２７】
例示的な実施形態に於いて、前記第３ＥＣＣブロックは、前記第２データパターンにパリティ情報を追加して前記第２ＥＣＣデータを生成する。
【００２８】
例示的な実施形態に於いて、前記フラッシュメモリ装置は、前記プログラムのデータが格納される第１格納領域と、前記ＣＲＣ値と、前記第１ＥＣＣデータと、前記第２ＥＣＣデータが格納される第２格納領域とを含む。
【００２９】
例示的な実施形態に於いて、前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納する。
【００３０】
本発明のまた他の例示的な実施形態等は、フラッシュメモリ装置に格納されるＭビットのデータ（Ｍは２以上の正数）のエラーを訂正する方法を提供し、この方法は、第１エラー訂正方式によって前記フラッシュメモリ装置に格納されるプログラムのデータから第１ＥＣＣデータを生成する段階と、第２エラー訂正方式によって前記第１ＥＣＣブロックから出力される第１ＥＣＣデータ及び前記プログラムのデータから第２ＥＣＣデータを生成する段階を含み、前記プログラムのデータと、前記第１ＥＣＣデータと、前記第２ＥＣＣデータは前記フラッシュメモリ装置に同時に格納される。
【００３１】
例示的な実施形態に於いて、この方法は前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードする段階と、前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正する段階をさらに含む。
【００３２】
例示的な実施形態に於いて、前記第１エラー訂正方式は、リニアブロック方式であり、前記第２エラー訂正方式は、最尤（ＭＬ）方式である。
【００３３】
例示的な実施形態に於いて、前記第２ＥＣＣデータは、前記プログラムのデータ及び前記第１ＥＣＣデータにパリティ情報を追加して生成される。
【００３４】
例示的な実施形態に於いて、前記フラッシュメモリ装置は、ＮＡＮＤフラッシュメモリ装置、ＮＯＲフラッシュメモリ装置、ＰＲＡＭ、ＭＲＡＭの中で何れか一つである。
【００３５】
例示的な実施形態に於いて、前記フラッシュメモリ装置は、前記プログラムのデータが格納される第１格納領域と、前記第１ＥＣＣデータと前記第２ＥＣＣデータが格納される第２格納領域を含む。
【００３６】
例示的な実施形態に於いて、前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納する。
【００３７】
本発明のまた他の例示的な実施形態等は、フラッシュメモリ装置に格納されるＭビットのデータ（Ｍは２以上の正数）のエラーを訂正する方法を提供し、この方法は前記フラッシュメモリ装置に格納されるプログラムのデータからＣＲＣ値を生成して第１データパターンを出力する段階と、リニアブロック方式によって前記第１データパターンから第１ＥＣＣデータを生成して第２データパターンを出力する段階と、最尤方式によって前記第２データパターンから第２ＥＣＣデータを生成して第３データパターンを出力する段階を含み、前記プログラムのデータ、前記ＣＲＣ値、前記第１ＥＣＣデータ、前記第２ＥＣＣデータから構成された前記第３データパターンは前記フラッシュメモリ装置に格納される。
【００３８】
例示的な実施形態に於いて、この方法は前記フラッシュメモリ装置から読み出された読み出しデータに含まれた第２ＥＣＣデータを利用して前記読み出しデータをデコードする段階と、前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれた第１ＥＣＣデータを利用して前記読み出しデータのエラーを訂正する段階と、前記第２ＥＣＣブロックから出力される前記読み出しデータに含まれたＣＲＣ値を利用して前記読み出しデータのエラーを検出する段階をさらに含む。
【００３９】
例示的な実施形態に於いて、前記第２ＥＣＣデータは、前記第２データパターンにパリティ情報を追加して生成される。
【００４０】
例示的な実施形態に於いて、前記フラッシュメモリ装置は前記プログラムのデータが格納される第１格納領域と、前記ＣＲＣ値、前記第１ＥＣＣデータ、前記第２ＥＣＣデータが格納される第２格納領域を含む。
【００４１】
例示的な実施形態に於いて、前記第１格納領域のメモリセル等の各々は、Ｍビットのデータを格納し、前記第２格納領域のメモリセル等の各々は、１ビットのデータを格納する。
【発明の効果】
【００４２】
リニアブロック方式と最尤方式からなる２段エラー訂正スキームを通じてマルチビットのデータを格納し、読み出すことによって本来のマルチビットのデータを正確に読み出すことができる。
【発明を実施するための最良の形態】
【００４３】
本発明の詳細な説明は、請求項に記載された発明の付加的な説明である。
【００４４】
参照符号等が本発明の好ましい実施形態及び参照図面等に表示されている。
【００４５】
又、不揮発性メモリ装置としてフラッシュメモリ装置が本発明の特徴及び機能を説明するための一つの例として利用される。しかし、この技術分野に詳しい者は、ここに記載された内容によって本発明の他の長所等及び性能をよく理解できるであろう。本発明は実施形態等を通じて実現できる。又、詳細な説明は本発明の範囲、技術思想、そして他の目的から外れない限り、観点及び応用によって修正又は変更できる。
【００４６】
図５は本発明によるメモリシステムを概略的に示すブロック図である。
【００４７】
図５を参照すれば、本発明によるメモリシステムはフラッシュメモリ装置１００とメモリ制御器２００を含む。フラッシュメモリ装置１００はメモリ制御器２００の制御によって動作し、セル当たりＭビットのデータ情報を格納する様に構成される。ここで、Ｍビットのデータ情報は２ビットのデータ、３ビットのデータ、４ビットのデータ等を含む。例示的な実施形態に於いて、フラッシュメモリ装置１００はＮＡＮＤフラッシュメモリ装置である。しかし、本発明のフラッシュメモリ装置１００がＮＡＮＤフラッシュメモリ装置に限定されないのはこの分野で通常の知識を持つ者に明らかであろう。例えば、本発明のフラッシュメモリ装置１００はＮＯＲフラッシュメモリ装置、ＰＲＡＭ、ＭＲＡＭ又はこれらの様な不揮発性メモリ装置から実現される。
【００４８】
メモリ制御器２００はホスト３００の要求によってフラッシュメモリ装置１００を制御する。メモリ制御器２００はホストインタフェース２１０と、フラッシュインタフェース２２０と、プロセスユニット２３０と、ＥＣＣ制御器２４０とを含む。ホストインタフェース２１０はホスト３００とのインタフェースを提供し、フラッシュインタフェース２２０はフラッシュメモリ装置１００とのインタフェースを提供する。プロセスユニット２３０はメモリ制御器２００の全般の動作を制御する様に構成される。ホスト３００とメモリ制御器２００はＮＯＲ、ＮＡＮＤ、ＰＣＩ、ＩＳＯ、ＵＳＢ等の多様なインタフェース等を通じて通信できる様に構成される。フラッシュメモリ装置１００とメモリ制御器２００はよく知られたＮＡＮＤ／ＮＯＲインタフェース方式を通じて通信できる様に構成される。フラッシュメモリ１００とメモリ制御器２００はフラッシュメモリカード、スマートカード等の様なメモリカードを構成する。又は、本発明によるメモリ制御器２００はＰＣのメイン基板上に設置しても良い。又は、本発明によるメモリ制御器２００はフラッシュメモリ装置がバッファメモリとして使用されるＨＤＤのバッファ制御器に使用しても良い。
【００４９】
続いて、図５を参照すれば、ＥＣＣ制御器２４０はフラッシュメモリ装置１００に格納されるデータに対するエラー制御コード（Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｃｏｄｅ）データ（以下には、ＥＣＣデータと称する）を生成する様に構成される。ここで、ＥＣＣデータはエラー検出又は訂正のために使用される。ＥＣＣ制御器２４０はフラッシュメモリ装置１００から読み出されたデータに対するエラーを検出及び訂正する様に構成される。特に、本発明によるＥＣＣ制御器２４０は２段エラー訂正スキームを有する様に構成される。一番目のエラー訂正スキームはフラッシュメモリ装置１００に格納されるデータからＥＣＣデータとしてリニアブロックコードを生成し、そして、フラッシュメモリ装置１００から読み出されたデータ及びそれに対応するリニアブロックコードを利用してデータエラーを検出及び訂正する。前記一番目のエラー訂正スキームをリニアブロックの符号化方法（ｌｉｎｅａｒ  ｂｌｏｃｋ  ｃｏｄｉｎｇ  ｍｅｔｈｏｄ）と言う。二番目のエラー訂正スキームは最尤（ＭＬ）方法を利用する。最尤方法（以下には、ＭＬ方法と称する）はエラーの低い確率でデータを読み出すためのエンコーダ及びデコーダ方法である。
【００５０】
本発明によるＥＣＣ制御器２４０はリニアブロックの符号化方法を行う様に構成された第１ＥＣＣブロック２４２とＭＬ方法を行う様に構成された第２ＥＣＣブロック２４４を含む。第１ＥＣＣブロック２４２はリニアブロックのエンコーダ方法によってホスト３００から伝送されるデータ（以下には、プログラムのデータと称する）から第１ＥＣＣデータを生成する様に構成される。第２ＥＣＣブロック２４４はＭＬエンコーダ方法によって第１ＥＣＣブロック２４２から出力されるデータ、即ち、プログラムのデータと第１ＥＣＣデータから第２ＥＣＣデータを生成する様に構成される。第２ＥＣＣブロック２４４から出力されるデータ（プログラムのデータ、第１ＥＣＣデータ、第２ＥＣＣデータ）はフラッシュインタフェース２２０を通じてフラッシュメモリ装置１００に格納される。フラッシュメモリ装置１００から読み出されたデータ（プログラムのデータ、第１ＥＣＣデータ、第２ＥＣＣデータを含む）はフラッシュインタフェース２２０を通じて第２ＥＣＣブロック２４０に伝送される。第２ＥＣＣブロック２４０はＭＬデコーダ方法によって入力されたデータ（プログラムのデータ、第１ＥＣＣデータ、第２ＥＣＣデータを含む）に対するエラーを検出又は訂正する様に構成される。第１ＥＣＣブロック２２０はリニアブロックのデコーダ方法によって第２ＥＣＣブロック２４０から出力されたデータ（プログラムのデータ及び第１ＥＣＣデータを含む）に対するエラーを検出及び訂正する様に構成される。第１ＥＣＣブロック２２０から出力されたデータはホストインタフェース２１０を通じてホスト３００に伝送される。
【００５１】
以上の説明から分かる様に、本発明によるＥＣＣ制御器２４０はＭＬ方法によってエラーの低い確率でフラッシュメモリ装置１００からデータを読み出し、そして、エラーの低い確率で読み出されたデータのエラーをリニアブロックの符号化方法によって検出及び訂正する様に構成される。前記２段エラー訂正スキームを通じてマルチビットのデータをより正確に読み出すことができる。
【００５２】
図６は図５に図示されたＥＣＣ制御器を概略的に示すブロック図である。
【００５３】
図６を参照すれば、本発明によるＥＣＣ制御器２４０は第１ＥＣＣブロック２４２と第２ＥＣＣブロック２４４から構成される。第１ＥＣＣブロック２４２はリニアブロックの符号化方法によって動作する様に構成され、リニアブロックのエンコーダ２４２ａ及びリニアブロックのデコーダ２４２ｂを含む。第２ＥＣＣブロック２４４はＭＬ符号化方法によって動作する様に構成され、ＭＬエンコーダ２４４ａ及びＭＬデコーダ２４４ｂを含む。第１ＥＣＣブロック２４２のリニアブロックのエンコーダ２４２ａはリニアブロックのエンコーダ方法によってホスト３００から伝送されるデータ（プログラムのデータ）から第１ＥＣＣデータＥＣＣ１を生成する様に構成される。第２ＥＣＣブロック２４４のＭＬエンコーダ２４４ａはＭＬエンコーダ方法によって第１ＥＣＣブロック２４２のエンコーダ２４２ａから出力されるデータ（プログラムのデータと第１ＥＣＣデータ又はデータパターン）から第２ＥＣＣデータＥＣＣ２を生成する様に構成される。第２ＥＣＣブロック２４４のＭＬエンコーダ２４４ａから出力されるデータ、即ち、プログラムのデータ、第１ＥＣＣデータ、第２ＥＣＣデータ、データパターンはよく知られた方式によってフラッシュインタフェース２２０を通じてフラッシュメモリ装置１００に格納される。
【００５４】
フラッシュメモリ装置１００から読み出されたデータ（プログラムのデータ、第１ＥＣＣデータ、第２ＥＣＣデータを含む）はフラッシュインタフェース２２０を通じて第２ＥＣＣブロック２４０のＭＬデコーダ２４４ｂに伝送される。第２ＥＣＣブロック２４０のＭＬデコーダ２４４ｂはＭＬデコーダ方法によって入力されたデータ（プログラムのデータ、第１ＥＣＣデータ、第２ＥＣＣデータを含む）に対するエラーを検出又は訂正する様に構成される。ＭＬデコーダ２４４ｂはエラーの低い確率でデータを検出する様に構成される。この場合、ＭＬデコーダ２４４ｂによってエラー確率が低いデータが得られる。前記データのエラーは部分的にＭＬデコーダ２４４ｂによって訂正される。しかし、前記得られたデータはエラーの訂正なしに出力されるものもある。
【００５５】
一次にエラー確率が低いデータを判別することによって読み出されたデータのエラー確率が減少される。第１ＥＣＣブロック２４２のリニアブロックのデコーダ２４２ｂはリニアブロックのデコーダ方法によって第２ＥＣＣブロック２４０のＭＬデコーダ２４４ｂから出力されたデータ（プログラムのデータ及び第１ＥＣＣデータを含む）に対するエラーを検出及び訂正する様に構成される。第１ＥＣＣブロック２４２のリニアブロックのデコーダ２４２から出力されたデータはホストインタフェース２１０を通じてホスト３００に伝送される。
【００５６】
この実施形態に於いて、数十乃至数百ビットが訂正できる第１ＥＣＣブロック２４２はＥＣＣコードとしてリニアコードを生成する様に構成され、リニアコードの幾つかの例等は繰り返しコード（Ｒｅｐｅｔｉｔｉｏｎ  ｃｏｄｅｓ）、パリティコード（Ｐａｒｉｔｙ  ｃｏｄｅｓ）、循環コード（Ｃｙｃｌｉｃ  ｃｏｄｅｓ）、ハミングコード（Ｈａｍｍｉｎｇ  ｃｏｄｅ）、ゴレーコード（Ｇｏｌａｙ  ｃｏｄｅ）、ＲＳコード（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ  ｃｏｄｅｓ）、ＢＣＨ（Ｂｏｓｅ、Ｒａｙ−Ｃｈａｕｄｈｕｒｉ、Ｈｏｃｑｕｅｎｇｈｅｍ）コード、ＲＭコード（Ｒｅｅｄ−Ｍｕｌｌｅｒｃｏｄｅｓ）等を含む。第２ＥＣＣブロック２４４のＭＬデコーダ２４４ａは第１ＥＣＣブロック２４２のリニアブロックのエンコーダ２４２ａから出力されるデータにパリティ情報を追加して構成する。
【００５７】
パリティ情報を追加することによって本来のデータが読み出される確率が高くなる。例えば、書き込まれるデータが‘１０１１'であると仮定すれば、データ‘１０１１'が読み出し動作のときデータ‘１０１０'に又はデータ‘１１００'に読み出される可能性が高い。仮にＭＬエンコーダ２４４ａを通じてデータ‘１０１１'にパリティ情報が追加されると、図７に図示された様に、読み出し動作のときデータ‘１０１０'又はデータ‘１１００'が読み出される確率は低くなるが、読み出し動作のときデータ‘１０１１'が読み出される確率は高くなる。第２ＥＣＣブロック２４４がＭＬ方法に限定されないのは、この分野で通常の知識を持つ者に明らかであろう。例えば、第２ＥＣＣブロック２４４は米国特許７、０２３、７３５号に開示された端数読み出し方式（ｆｒａｃｔｉｏｎａｌ  ｒｅａｄ  ｍａｎｎｅｒ）を利用しても良い。本発明に於いて、エラーの低い確率でデータを読み出し、読み出されたデータのエラーを訂正することによって本来のマルチビットのデータを正確に読み出すことができる。
【００５８】
本発明によるＥＣＣ制御器２４０は様々に変更できる。例えば、ＣＲＣ（ＣｙｃｌｉｃＲｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）を通じてホスト３００に伝送されるデータにエラーがあるかを検出する様にＥＣＣ制御器２４０が構成できる。図８に図示された様に、本発明の他の実施形態によるＥＣＣ制御器４００は第１ＥＣＣブロック４１０、第２ＥＣＣブロック４２０、第３ＥＣＣブロック４３０を含む。第１ＥＣＣブロック４１０は入力データからＣＲＣ値（即ちチェックサム値）を生成する様に構成されたエンコーダ４１１と第２ＥＣＣブロック４２０から出力されたデータにエラーがあるかを検出するデコーダ４１２を含む。第２ＥＣＣブロック４２０と第３ＥＣＣブロック４３０は図６に図示されたブロック等２４２、２４４に各々対応する。
【００５９】
本発明に於いて、図面には図示されてないが、フラッシュメモリ装置１００は少なくとも二つの格納領域等から構成されたメモリセルアレイを含む。一番目の格納領域はホストから伝送されたデータが格納されるメインセル領域であり、二番目の格納領域はメインセル領域に格納されたデータに関連されたＥＣＣ情報ＥＣＣ１＋ＥＣＣ２又はＣＲＣ＋ＥＣＣ１＋ＥＣＣ２が格納されたスペア領域である。メインセル領域に属するメモリセル等の各々には、マルチビットのデータが格納されるが、スペア領域に属するメモリセル等の各々には、シングルビットのデータが格納される。又は、メインセル領域にデータ及びＥＣＣ情報がマルチビット状態で格納される。
【００６０】
一般的に、マルチビットのデータのエラーはビット単位で発生する。即ち、隣り合うしきい値電圧の分布等の交差によりデータのエラーが発生する。これは読み出されたデータのエラーは伝染性がないことを意味する。
【００６１】
以上に、本発明の実施形態等を説明したが、本発明を外れない範囲で多様に変形できる。
【図面の簡単な説明】
【００６２】
【図１】１ビットのデータを格納する一般的なフラッシュメモリセルのしきい値電圧の分布等を示す図面である。
【図２】２ビットのデータを格納する一般的なフラッシュメモリセルのしきい値電圧の分布等を示す図面である。
【図３】３ビットのデータを格納する一般的なフラッシュメモリセルのしきい値電圧の分布等を示す図面である。
【図４】４ビットのデータを格納する一般的なフラッシュメモリセルのしきい値電圧の分布等を示す図面である。
【図５】本発明によるメモリシステムを概略的に示すブロック図である。
【図６】図５に図示されたＥＣＣ制御器を概略的に示すブロック図である。
【図７】図６に図示されたＥＣＣ制御器により処理されるデータの変化を示す図面である。
【図８】本発明の他の実施形態によるＥＣＣ制御器を概略的に示すブロック図である。
【符号の説明】
【００６３】
１００  フラッシュメモリ装置   
２００  メモリ制御器
２１０  ホストインタフェース
２２０  フラッシュインタフェース
２３０  プロセスユニット       
２４０  ＥＣＣ制御器
２４２  第１ＥＣＣブロック
２４４  第２ＥＣＣブロック
【図１】
2008165805.tif 000003
【図２】
2008165805.tif 000004
【図３】
2008165805.tif 000005
【図４】
2008165805.tif 000006
【図５】
2008165805.tif 000007
【図６】
2008165805.tif 000008
【図７】
2008165805.tif 000009
【図８】
2008165805.tif 000010