(57)【要約】【課題】軟判定アルゴリズムに応じて読み出されるデータの信頼性を高めることができるメモリシステム及びそのデータ処理方法を提供する。【解決手段】本発明に係るメモリシステムは、データのプログラム時、前記データに対する状態情報が追加的にプログラムされる不揮発性メモリ装置と、前記データを読み出す時、前記状態情報にアクセスし、前記状態情報に基づいて前記データの事前確率を計算し、前記事前確率に基づいて読み出された各々のビットに対する事後確率を計算し、前記事後確率に基づき前記データの論理状態を検出する軟判定工程を実行するメモリコントローラとを有する。【選択図】      図２
2011176825.tif 000002
【特許請求の範囲】
【請求項１】
データのプログラム時、前記データに対する状態情報が追加的にプログラムされる不揮発性メモリ装置と、
前記データを読み出す時、前記状態情報にアクセスし、前記状態情報に基づいて前記データの事前確率を計算し、前記事前確率に基づいて読み出された各々のビットに対する事後確率を計算し、前記事後確率に基づき前記データの論理状態を検出する軟判定工程を実行するメモリコントローラとを有することを特徴とするメモリシステム。
【請求項２】
前記状態情報は、前記データのメタデータのうちの一部として格納されることを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記状態情報は、前記データに含まれる論理値の数に対する情報を含むことを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記事前確率は、前記データに含まれる全体ビット数に対する論理‘１’の割合を示す第１事前確率Ｐ（Ｓ＝１）と、前記データに含まれる全体ビット数に対する論理‘０’の割合を示す第２事前確率Ｐ（Ｓ＝０）とを含み、
ここで、Ｓはビットの論理状態に対応する確立変数であることを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記事後確率は、プログラムビットに対する読み出しビットの条件部確率に前記第１事前確率を掛けた第１事後確率と、
前記プログラムビットに対する読み出しビットの条件部確率に前記第２事前確率を掛けた第２事後確率とを含むことを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記軟判定工程は、前記第１事後確率と第２事後確率とを比較し、その中で大きい値に対応するプログラムビットを読み出しビットとして決めることを特徴とする請求項５に記載のメモリシステム。
【請求項７】
前記事後確率は、プログラムビットに対する読み出しビットの条件部確率に前記第１事前確率と第２事前確率とを各々加重値として適用して計算することを特徴とする請求項４に記載のメモリシステム。
【請求項８】
前記メモリコントローラは、前記状態情報に基づいて事前確率を計算する事前確率計算ユニットと、
前記データのビット値の各々に対する事後確率を前記事前確率に基づいて計算する事後確率計算ユニットと、
前記事後確率に基づいて前記データのビット値を軟判定工程を実行することによって決める軟判定デコーダとを含むことを特徴とする請求項１に記載のメモリシステム。
【請求項９】
不揮発性メモリ装置のデータ処理方法において、
前記不揮発性メモリ装置からデータと前記データに対する状態情報が提供される段階と、
前記状態情報に従って前記データに対する事前確率を計算する段階と、
前記データのビット値の各々または符号語に対する事後確率を前記事前確率に基づいて計算する段階と、
前記データのビット値または符号語の各々に対する事後確率に基づいて前記データのビット値または符号語の各々を決める軟判定工程を実行する段階とを有することを特徴とするデータ処理方法。
【請求項１０】
前記データと前記状態情報は同一のページに格納されることを特徴とする請求項９に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体メモリ装置に関し、さらに具体的には、事前確率情報を用いるメモリシステム及びそのデータ処理方法に関する。
【背景技術】
【０００２】
半導体メモリ装置は衛星機器から消費者向け電子技術までの広範囲に属するマイクロプロセッサに基づいた応用、及びコンピュータのようなデジタルロジック設計において最も必須なマイクロ電子素子である。
半導体メモリ装置は大きく揮発性半導体メモリ装置と不揮発性半導体メモリ装置に区分される。
不揮発性半導体メモリ装置は電源が遮断されてもデータを格納することができる。不揮発性メモリに格納されるデータは、メモリ製造技術によって永久的であるか、または再プログラム可能である。不揮発性半導体メモリ装置はコンピュータ、航空電子工学、通信、消費者向け電子技術産業のような広い範囲の応用でデータ及びプログラムコードの格納のために用いられる。
【０００３】
不揮発性メモリ装置の代表的な例としてフラッシュメモリ装置がある。最近、メモリ装置に対する高容量の要求が増加することによって、１つのメモリセルにマルチビットを格納するマルチビットメモリ装置が普及されてきている。マルチビットフラッシュメモリ装置のメモリセルはスレッショルド電圧分布間の間隔が稠密に制御されなければならない。
また、高容量の要求を満足させるために、不揮発性メモリ装置の単位面積当たりメモリセルの数を増加させるための集積度の向上のための技術が研究されている。
【０００４】
しかしながら、上述の高容量化の努力に伴う問題はメモリセルに格納されるデータの信頼性の低下である。不揮発性メモリ装置の高容量化の実現と不揮発性メモリ装置に対する信頼性の向上を同時に達成することができる技術が切実に要求されているという問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】韓国特許出願公開第２００８―５３３４６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明は上記従来の不揮発性メモリ装置における問題点に鑑みてなされたものであって、本発明の目的は、読み出されるデータの信頼性を高めることができるメモリシステム及びそのデータ処理方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するためになされた本発明によるメモリシステムは、データのプログラム時、前記データに対する状態情報が追加的にプログラムされる不揮発性メモリ装置と、前記データを読み出す時、前記状態情報にアクセスし、前記状態情報に基づいて前記データの事前確率を計算し、前記事前確率に基づいて読み出された各々のビットに対する事後確率を計算し、前記事後確率に基づき前記データの論理状態を検出する軟判定工程を実行するメモリコントローラとを有することを特徴とする。
【０００８】
上記目的を達成するためになされた本発明によるデータ処理方法は、不揮発性メモリ装置のデータ処理方法において、前記不揮発性メモリ装置からデータと前記データに対する状態情報が提供される段階と、前記状態情報に従って前記データに対する事前確率を計算する段階と、前記データのビット値の各々または符号語に対する事後確率を前記事前確率に基づいて計算する段階と、前記データのビット値または符号語の各々に対する事後確率に基づいて前記データのビット値または符号語の各々を決める軟判定工程を実行する段階とを有することを特徴とする。
【発明の効果】
【０００９】
本発明に係るメモリシステム及びそのデータ処理方法によれば、読み出されるデータがプログラムされる状態の数及びプログラムパターンを通じて事前確率を求めることができるので、高信頼性を有する軟判定アルゴリズムの実現が可能になるという効果がある。
【図面の簡単な説明】
【００１０】
【図１】不揮発性メモリ装置のスレッショルド電圧分布を示す図である。
【図２】本発明のメモリシステムを示すブロック図である。
【図３】図２のコントローラの構成を示すブロック図である。
【図４】本発明に係る事後確率の分布を例示的に示すグラフである。
【図５】本発明のデータ構造を示すブロック図である。
【図６】本発明の実施形態に係るデータ処理方法を説明するためのフローチャートである。
【図７】本発明の実施形態に係るソリッドステートドライブ（ＳＳＤ）を示すブロック図である。
【図８】本発明の実施形態に係るメモリシステムを示すブロック図である。
【図９】本発明の実施形態に係るコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【００１１】
次に、本発明に係るメモリシステム及びそのデータ処理方法を実施するための形態の具体例を図面を参照しながら説明する。
明細書の全体にかけて同じ符号は同じ要素を示す。
【００１２】
以下のフラッシュメモリ装置は本発明の特徴及び機能を説明するために不揮発性メモリの一例として用いられている。しかし、この技術分野に精通した者であれば、ここに記載した内容によって本発明の他の利点及び性能を容易に理解することができる。
例えば、格納媒体としてＰＲＡＭ、ＭＲＡＭ、ＲｅＲＡＭ、ＦＲＡＭ、ＮＯＲフラッシュメモリなどを用いることがことができ、異種のメモリ装置が混用するメモリシステムにも適用することができる。
【００１３】
そして、２ビットマルチレベルセル（ＭＬＣ）を本発明の特徴を説明するための例として用いられた。しかし、１つのメモリセルにシングルビットが格納されるシングルレベルセル（ＳＬＣ）メモリ装置及び１つのメモリセルに３ビット以上のデータを書き込むマルチビットメモリ装置に本発明の技術を容易に適用することができる。
【００１４】
図１は、エラーが含まれるマルチビット不揮発性メモリ装置のスレッショルド電圧分布を例示的に示す図である。
図１は、１つのメモリセルに２ビットが格納されるメモリセルのスレッショルド電圧分布を示す。
【００１５】
消去状態Ｅ０は、メモリセルの最も低いスレッショルド電圧レベルに対応する。そしてプログラム状態Ｐ１、プログラム状態Ｐ２、及びプログラム状態Ｐ３にメモリセルをプログラムすることができる。説明の便宜のために、２ビットマルチレベルセル（Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ：ＭＬＣ）を例示的に示したが、３ビット、４ビットＭＬＣでも本発明と同一の技術的特徴を適用することができる。
【００１６】
不揮発性メモリ装置において、メモリセルは、基準分布１０、２０、３０、４０にプログラムされる。
しかし、読み出しの時、多様な要因によってメモリセルのスレッショルド電圧は基準分布１０、２０、３０、４０の形態を維持しないことがある。そして、このようなメモリセルのスレッショルド電圧変化は読み出しエラーの原因になる。
【００１７】
スレッショルド電圧の変化の例として、隣接メモリセルによる干渉効果を例としてあげることができる。このような干渉の例としては、プログラムディスターブ（Ｐｒｏｇｒａｍ  ｄｉｓｔｕｒｂａｎｃｅ）と側面電荷拡散（Ｌａｔｅｒａｌ  Ｃｈａｒｇｅ  Ｓｐｒｅａｄｉｎｇ）などがある。
【００１８】
不揮発性メモリ装置で隣接したメモリセルと異なるスレッショルド電圧を有する場合、メモリセルは互いに影響を及ぼす。例えば、プログラムディスターブや側面電荷拡散のように隣接したメモリセルのスレッショルド電圧に応じてメモリセルのスレッショルド電圧は増加、または減少する。特に、メモリセルのうちで消去状態Ｅ０にプログラムされたメモリセルと最も高いスレッショルド電圧を有するプログラム状態Ｐ３にプログラムされたメモリセルとの間でこのような側面電荷拡散やプログラムディスターブ現象が顕著である。
【００１９】
最初、メモリセルがプログラムされれば、メモリセルのスレッショルド電圧は実線に示した基準分布１０、２０、３０、４０を形成するようになる。
しかし、側面電荷拡散やプログラムディスターブ現象によって基準分布１０に対応するメモリセルの分布は基準分布１５に移動する。基準分布４０に対応するメモリセルは側面電荷拡散やプログラムディスターブ現象によって基準分布４５に移動する。側面電荷拡散現象によって、消去状態Ｅ０にプログラムされたメモリセルのスレッショルド電圧が高くなる。そしてプログラム状態Ｐ３にプログラムされたメモリセルのスレッショルド電圧は側面電荷拡散やプログラムディスターブによって低くなる。
【００２０】
以上では、不揮発性メモリ装置のスレッショルド電圧散布の拡散を読み出しエラーの要因として説明した。しかし、不揮発性メモリ装置を含めたストレージにおいて読み出しエラーは多様な要因から発生する可能性がある。
隣接セル間の干渉及び工程的な欠陥、外部からの多様なノイズによる信号の干渉、チャンネルの不安定性による歪曲などの要因によって読み出しエラーが発生しうる。本発明はこのようなエラーから元々プログラムされたデータの信頼性を高めることができるメモリシステム及びデータ処理方法を提供するものである。
【００２１】
図２は、本発明のメモリシステム１００を示すブロック図である。
図２を参照すると、本発明に係るメモリシステム１００は不揮発性メモリ装置１１０とメモリコントローラ１２０とを含む。
【００２２】
不揮発性メモリ装置１１０は、例えばフラッシュメモリ装置で構成することができる。
不揮発性メモリ装置１１０はメモリコントローラ１２０から提供されるデータをページ単位（例えば、２ＫＢｙｔｅ）に格納する。各々のページにはユーザデータ（Ｕｓｅｒ  ｄａｔａ）とメタデータ（Ｍｅｔａ  ｄａｔａ）が含まれる。本発明の不揮発性メモリ装置１１０はユーザデータに対する状態情報（Ｓｔａｔｅ  Ｉｎｆｏｒｍａｔｉｏｎ）を格納する。状態情報をメタデータの一部として格納することができる。
【００２３】
状態情報は、メモリコントローラ１２０によって実行される軟判定演算で用いられる事前確率（Ａ  Ｐｒｉｏｒｉ  Ｐｒｏｂａｂｉｌｉｔｙ）を計算するソースになる。例えば、ユーザデータ（Ｕｓｅｒ  ｄａｔａ）に含まれる論理状態（ｌｏｇｉｃａｌ  ｓｔａｔｅ）‘０’または論理状態‘１’のビット数やメモリセルのスレッショルド電圧状態数などを状態情報に含むことができる。
例えば、１０ビットからなるページ中からランダムに選択されるビットが、１０のうち７が論理状態‘０’であれば、事前確率は０．７と計算される。この事前確率は、Ｐ（Ｓ＝０）＝０．７として表され、ここで、Ｓはデータのビットの論理状態に対応する確立変数である。
【００２４】
不揮発性メモリ装置１１０は、メモリコントローラ１２０の読み出し命令語に応答して状態情報を含む読み出しデータを提供する。状態情報はメタデータとして提供することができる。メタデータは情報を入れているユーザデータの制御情報（Ｃｏｎｔｒｏｌ  ｉｎｆｏｒｍａｔｉｏｎ）である。例えば、１つのページを読み出しデータとして提供する時、状態情報はメタデータに含まれ得る。
【００２５】
メモリコントローラ１２０は、状態情報を参照して軟判定のための事前確率（Ａ  Ｐｒｉｏｒｉ  Ｐｒｏｂａｂｉｌｉｔｙ）及び事後確率（Ａ  Ｐｏｓｔｅｒｉｏｒｉ  Ｐｒｏｂａｂｉｌｉｔｙ）を計算する。
既に発生した事件を条件として過去の不確実な事件に対する仮説を設定すれば、各々の仮説に対する条件部確率が事後確率になる。そして最大の事後確率に対応する仮説を‘正’として決めるのが最大事後確率（Ｍａｘｉｍｕｍ  Ａ  Ｐｏｓｔｅｒｉｏｒｉ  Ｐｒｏｂａｂｉｌｉｔｙ：ＭＡＰ）基準と言う。
【００２６】
事後確率は、事前確率に既に発生した事件の条件での事前確率を掛けて計算することができる。
一般的に、データの伝送が行われるチャンネルに対する事後確率は、事前確率を考慮しせずに計算される。なぜなら、すべての仮説に対する事前確率は固定された値として見なされるためである。すなわち、データの受信側で送信側の状態を分からないためである。
軟判定手順を実行する時、読み出されたデータの特定ビットに対する事前確率はすべての仮説に対して同一（Ｅｑｕｉ−ｐｒｏｂａｂｌｅ）であると考慮された。
【００２７】
しかし、チャンネルの一種として不揮発性メモリを考慮する場合、データの送信側と受信側がメモリコントローラ１２０という特徴を有する。
したがって、メモリコントローラ１２０は書き込むデータの状態を予め分かっており、このような情報を状態情報に再構成して不揮発性メモリ装置１１０に格納することができる。軟判定手順に事前確率が提供される場合には、軟判定条件は変えることができる。メモリコントローラ１２０は固定されない事前確率情報を参照して軟判定を実施する。
【００２８】
メモリコントローラ１２０が状態情報を得るためには、プログラムの時に、このような状態情報をメタデータにプログラムしなければならない。プログラム動作の時、ホスト（Ｈｏｓｔ）から提供されるユーザデータを参照して、メモリコントローラ１２０は状態情報を含むメタデータを不揮発性メモリ装置１１０にプログラムする。
【００２９】
そして読み出し要請が発生すれば、メモリコントローラ１２０はプログラムされたユーザデータとメタデータを不揮発性メモリ装置１１０から読み出す。読み出したメタデータに含まれた状態情報を参照して、メモリコントローラ１２０は事前確率及び事後確率を各々計算する。メモリコントローラ１２０は事後確率からユーザデータを構成する各々のビット値を軟判定デコーディング（ｓｏｆｔ−ｄｅｃｉｓｉｏｎ  ｄｅｃｏｄｉｎｇ）方式に基づいて決める。
【００３０】
事前確率の大きさによって、ユーザデータのビットの各々の論理値は、より正確な値に決められる。理解を助けるために、軟判定デコーディングの時に事前確率の適用例を説明する。
例えば、１つのページが１０ビットサイズであり、その中に論理状態‘１’が８ビット、論理状態‘０’が２ビットの場合を仮定する。この場合、１０ビットのうちで論理状態‘０’としてメモリコントローラ１２０に伝達されたビットの軟判定の時に、全体論理ビットのうちで論理状態‘０’が２０％を占める事実を適用することができる。状態情報を適用しない場合には、論理状態‘０’でも論理状態‘１’でも事前確率５０％を固定させて軟判定に適用するしかなかった。
【００３１】
図３は、図２のメモリコントローラ１２０の構成を示すブロック図である。
図３を参照すると、メモリコントローラ１２０は事前確率計算ユニット１２１、事後確率計算ユニット１２２、軟判定デコーダ１２３を含む。
【００３２】
事前確率計算ユニット１２１は、不揮発性メモリ装置１１０から提供される読み出しデータ（Ｒｅａｄ  ｄａｔａ）から状態情報を抽出する。読み出しデータはユーザ情報が含まれるユーザデータと状態情報が含まれるメタデータで構成される。状態情報は、例えば、読み出しデータに含まれるユーザデータで論理状態‘０’と論理状態‘１’の割合情報になることができる。または状態情報はユーザデータで論理状態‘０’または論理状態‘１’の各々のビット数になることができる。あるいは、状態情報は選択されたメモリセルのプログラム状態の数（または、シンボル数）として提供され得る。
状態情報の内容は本発明の実施形態にだけ限らない。ユーザデータがプログラムされる時のデータ状態に対する多様な情報を状態情報として用いることができる。
【００３３】
事前確率計算ユニット１２１は、状態情報を参照して事前確率Ｐ（Ｓ＝ｓｉ）を計算する。
ここで、‘ｓｉ’は‘ｉ’の場合に対応する事件を意味する。例えば、状態情報（Ｓｔａｔｅ  Ｉｎｆｏｒｍａｔｉｏｎ）が論理状態‘０’と論理状態‘１’の各々のビット数を示すことができる。すなわち、ｓ０は論理状態‘０’に対応するビットを意味し、ｓ１は論理状態‘１’に対応するビットを意味する。
【００３４】
これによって、事前確率Ｐ（Ｓ＝ｓｉ）は下記の数式１として表現することができる。
【数１】
2011176825.tif 000003
ここで、‘Ａ’はプログラムされた状態（Ｓｔａｔｅ）の集合を意味する。そして‘ｓｉ’は‘Ａ’のうちで‘ｉ’元素に対応する個別事件（例えば、論理状態‘０’や論理状態‘１’にプログラムされたビット）を意味する。
【００３５】
すなわち、論理状態‘０’や論理状態‘１’にプログラムされる二進データの場合、‘ｉ’∈｛０、１｝として表現することができる。Ｎ（ｓｉ）は事件‘ｓｉ’の数を示す。
すなわち、事前確率Ｐ（Ｓ＝ｓｉ）は全体事件の数で‘ｉ’事件に対する割合を意味する。
【００３６】
状態情報がユーザデータに含まれる論理状態‘０’と論理状態‘１’の各々の割合に表示する場合を例としてあげれば、ユーザデータが１０ビットであり、そのうちの論理状態‘０’が７ビット、論理状態‘１’が３ビットであると仮定すれば、論理状態‘１’の割合を示す事前確率Ｐ（Ｓ＝ｓ１）は３／１０に該当する。一方論理状態‘０’の割合を示す事前確率Ｐ（Ｓ＝ｓ０）は７／１０に該当する。事前確率計算ユニット１２１は上述の数式１に基づいて事前確率Ｐ（Ｓ＝ｓｉ）を計算する。
【００３７】
従来では、すべての事件に対する事前確率が同一であるという仮定下に、上述の事前確率は軟判定手順で考慮されなかった。しかし、不揮発性メモリ装置１１０にデータをプログラムする時にこのようなデータの条件に対する把握が可能である。そして把握された条件をメタデータとして格納することができる。事前確率計算ユニット１２１はこのような各々の場合ごとに変わる条件を参照して事前確率Ｐ（Ｓ＝ｓｉ）に計算する。事前確率Ｐ（Ｓ＝ｓｉ）は軟判定手順で判定の信頼度を高めることができる根拠を提供する。
【００３８】
事後確率計算ユニット１２２は、事前確率Ｐ（Ｓ＝ｓｉ）及びユーザデータから事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）を計算する。条件部確率である事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）は下記の数式２から計算することができる。
【数２】
2011176825.tif 000004
ここで、‘Ｙ’は読み出し値の全体事件を意味し、‘ｙ’は読み出し値の特定事件を意味する。また他の条件部確率Ｐ（Ｙ＝ｙ│Ｓ＝ｓｉ）は論理状態‘ｉ’を書き込んだ時、読み出し値が‘ｙ’に判定される確率を示す。
【００３９】
事後確率計算ユニット１２２は、ユーザデータの特定列のデータビットが‘ｙ’の場合、既に固定的な値として提供される確率Ｐ（Ｙ＝ｙ）と条件部確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）を選択する。
これら確率値は、読み出されたビットが論理状態‘１’であるか、または論理状態‘０’であるかによって決められる。そして、事後確率計算ユニット１２２は、事前確率計算ユニット１２１から提供される事前確率Ｐ（Ｓ＝ｓｉ）を掛けて事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）を計算する。
【００４０】
事後確率計算ユニット１２２が、尤度（Ｌｉｋｅｌｉｈｏｏｄ  Ｒａｔｉｏ：ＬＲ）方式により動される場合、各々の事件に対する尤度（ＬＲ）に事前確率が追加的に掛けられる。もし、事後確率計算ユニット１２２がログ尤度（Ｌｏｇ−Ｌｉｋｅｌｉｈｏｏｄ  Ｒａｔｉｏ：ＬＬＲ）方式により処理される場合、各々の事件に対するログ尤度（ＬＬＲ）に計算された事前確率のログ値が加えられる。
【００４１】
軟判定デコーダ１２３は、事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）を参照して読み出されたビットの各々に対する仮説のうちのいずれか１つを選択する。１つのビットに対して事後確率を利用して仮説を選択する、
例えばユーザデータで論理状態‘１’として提供されるビットに対して事後確率Ｐ（Ｓ＝１│Ｙ＝１）、及びＰ（Ｓ＝０│Ｙ＝１）を比較する。そして最大事後確率に対応する仮説Ｓを選択する。
【００４２】
このような軟判定方式を最大事後確率（Ｍａｘｉｍｕｍ  Ａ  Ｐｏｓｔｅｒｉｏｒｉ  Ｐｒｏｂａｂｉｌｉｔｙ：ＭＡＰ）デコーディング方式と言う。
多数のビットに対しては多数のビットに対する事件が同時に発生する事後確率を利用して様々な仮説のうちで事後確率が最大になる仮説を選択するようになる。最大事後確率を有する仮説を選択する復号器を最大事後確率復号器と言う。最大事後確率（ＭＡＰ）デコーディング方式により決められたデータをホストが要請した読み出しデータとして提供することができる。
【００４３】
図４は、本発明の事前確率を考慮した各仮説に対する事後確率を簡略に示す確率密度関数を示すグラフである。
図４を参照すると、ユーザデータのビットが論理状態‘１’の場合、事後確率Ｐ（Ｓ＝１│Ｙ＝１）と事後確率Ｐ（Ｓ＝０│Ｙ＝１）の大きさをグラフに示す。
【００４４】
この場合、不揮発性メモリ装置１１０に論理状態‘１’がプログラムされたという仮説に対する事後確率Ｐ（Ｓ＝１Ｙ＝１）は確率関数２１０として表現することができる。そして不揮発性メモリ装置１１０に論理状態‘０’がプログラムされたという仮説に対する事後確率Ｐ（Ｓ＝０Ｙ＝１）は確率関数２２０として表現することができる。上述の図３の例示のように、ユーザデータのビット数が１０ビットであり、その中に論理状態‘１’が７ビット、論理状態‘０’が３ビットにプログラムされたとメタデータに記録されていると仮定すれば、数式１によって事前確率Ｐ（Ｓ＝１）は０．７、事前確率Ｐ（Ｓ＝０）は０．３になる。
【００４５】
事前確率Ｐ（Ｓ＝１）と事前確率Ｐ（Ｓ＝０）は事後確率Ｐ（Ｓ＝１│Ｙ＝１）及び事後確率Ｐ（Ｓ＝０│Ｙ＝１）において各々互いに異なる加重値として作用する。
示したように、事後確率Ｐ（Ｓ＝１│Ｙ＝１）を示す確率関数２１０は事後確率Ｐ（Ｓ＝０│Ｙ＝１）を示す確率関数２２０より相対的に大きい。よって、軟判定デコーダ１２３で実行される最大事後確率（ＭＡＰ）デコーディングの時に仮説を選択する基準ηが平均値ａ１、ａ２の中値に固定されないこともある。
【００４６】
図５は、本発明の不揮発性メモリ装置１１０に格納されるデータの構成を簡略的に示す図である。
もし、不揮発性メモリ装置１１０がＮＡＮＤフラッシュメモリの場合、データ３００は１つのページ単位に該当することができる。
【００４７】
データ３００は、ユーザデータ３１０とメタデータ３２０とを含む。ユーザデータ３１０にはユーザによって提供されるユーザ情報が入っている。メタデータ３２０はユーザデータ３１０に対する制御情報を含む。メタデータ３２０は第１メタデータ３２１と第２メタデータ３２２とを含む。第１メタデータ３２１はユーザデータの形態、ランダムシード、パリティ、プログラム／消去サイクルのような制御情報（Ｃｏｎｔｒｏｌ  Ｉｎｆｏｒｍａｔｉｏｎ）を含む。
【００４８】
第２メタデータ３２２は、状態情報を含む。
例えば、ユーザデータ３１０の全体で論理状態‘１’のビット数と論理状態‘０’のビット数を含むことができる。または、データがシンボル単位に処理される場合には状態情報をシンボルの数として提供することができる。しかし、状態情報の範囲は上述の例示に限らない。状態情報は仮説の条件に使用することができる多様な情報を含むことができる。
【００４９】
図６は、本発明の実施形態に係るデータ処理方法を説明するためのフローチャートである。
図６を参照すると、ホストから読み出し命令が提供されれば、本発明のメモリコントローラ１２０によるデータ処理手順が開始される。
【００５０】
段階Ｓ１０において、メモリコントローラ１２０は読み出し命令語及びアドレスを不揮発性メモリ装置１１０に提供する。不揮発性メモリ装置１１０は読み出し要請されたデータを入出力ユニット（Ｉ／Ｏ  ｕｎｉｔ）に提供する。例えば、不揮発性メモリ装置１１０はユーザデータとメタデータとを含む１つのページを読み出すデータとして出力することができる。メタデータには状態情報が含まれる。
【００５１】
段階Ｓ２０において、メモリコントローラ１２０の事前確率計算ユニット１２１は、読み出しデータで状態情報を利用して事前確率Ｐ（Ｓ＝ｓｉ）を計算する。
例えば、状態情報がユーザデータの論理状態‘１’のビット数と論理状態‘０’のビット数とを含む場合、事前確率計算ユニット１２１はプログラムされた論理ビットの割合を事前確率に計算する。事前確率Ｐ（Ｓ＝ｓｉ）の計算方法は上述の数式１に基づいて行われる。
【００５２】
段階Ｓ３０において、メモリコントローラ１２０の事後確率計算ユニット１２２は、不揮発性メモリ装置１１０から提供されたユーザデータの各ビットまたは符号語単位に対する事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）を計算する。
事後確率計算ユニット１２２は、ユーザデータのビットの各々または符号語に対する事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）を事前確率計算ユニット１２１が提供する事前確率Ｐ（Ｓ＝ｓｉ）を参照して計算する。事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）の計算は上述の数式２に基づいて行われる。
【００５３】
段階Ｓ４０において、メモリコントローラ１２０の軟判定デコーダ１２３は、事後確率計算ユニット１２２から提供された事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）が最大になるユーザデータの各々のビットまたは符号語に対する値を決める。
軟判定デコーダ１２３は、事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）が最も大きい値を‘正’として判断し、事後確率Ｐ（Ｓ＝ｓｉ│Ｙ＝ｙ）がさらに小さい値を‘誤’として判定することができる。軟判定デコーダ１２３は最大事後確率（ＭＡＰ）の基準に応じて読み出しデータのビットまたは符号語を決めてホストに提供する。
【００５４】
図７は、本発明の実施形態に係るメモリシステムの一例としてソリッドステートドライブ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ：ＳＳＤ）システムを示すブロック図である。
図７を参照すると、ＳＳＤシステム１０００は、ホスト１１００と、ＳＳＤ１２００とを含む。ＳＳＤ１２００はＳＳＤコントローラ１２１０と、バッファメモリ１２２０と、不揮発性メモリ装置（ＮＶＭ）１２３０とを含む。
【００５５】
ＳＳＤコントローラ１２１０は、ホスト１１００とＳＳＤ１２００との物理的接続を提供する。すなわち、ＳＳＤコントローラ１２１０はホスト１１００のバスフォーマット（Ｂｕｓ  ｆｏｒｍａｔ）に対応してＳＳＤ１２００とのインターフェーシングを提供する。特に、ＳＳＤコントローラ１２１０はホスト１１００から提供される命令語をデコーディングする。
【００５６】
デコーディングされた結果に応じて、ＳＳＤコントローラ１２１０は不揮発性メモリ装置１２３０にアクセスする。ホスト１１００のバスフォーマットとしてはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＰＣＩ  ｅｘｐｒｅｓｓ、ＡＴＡ、ＰＡＴＡ（Ｐａｒａｌｌｅｌ  ＡＴＡ）、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）などを含むことができる。
【００５７】
ＳＳＤコントローラ１２１０は、不揮発性メモリ装置１２３０にデータを格納する時、メタデータに事前確率情報を含ませる。ＳＳＤコントローラ１２１０はホスト１１００からの読み出し要請が発生すれば、不揮発性メモリ装置１２３０から提供されるデータを上述の事前確率情報を参照して事前確率を計算する。
【００５８】
そしてＳＳＤコントローラ１２１０は計算された事前確率を参照して事後確率を計算する。ＳＳＤコントローラ１２１０は計算された事後確率を参照して読み出されたユーザデータに含まれるビットの各々を決めるようになる。不揮発性メモリ装置１２３０から読み出されたデータはバッファリングのためにバッファメモリ１２２０に一時格納され得る。
【００５９】
バッファメモリ１２２０にはホスト１１００から提供された書き込みデータまたは不揮発性メモリ装置１２３０から読み出されたデータが一時格納される。
ホスト１１００の読み出し要請の時に不揮発性メモリ装置１２３０に存在するデータがキャッシュされている場合には、バッファメモリ１２２０はキャッシュされたデータを直接、ホスト１１００に提供するキャッシュ機能を支援する。
【００６０】
一般的に、ホスト１１００のバスフォーマット（例えば、ＳＡＴＡまたはＳＡＳ）によるデータ伝送速度はＳＳＤ１２００のメモリチャンネルの伝送速度より顕著に速い。すなわち、ホスト１１００のインターフェース速度が顕著に高い場合、大容量のバッファメモリ１２２０を提供することによって、速度差により発生するパフォーマンス低下を最小化することができる。
【００６１】
バッファメモリ１２２０は、大容量の補助記憶装置として用いられるＳＳＤ１２００で十分なバッファリングを提供するために同期式ＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ）からなることができる。しかし、バッファメモリ１２２０はこれに限らないことはこの分野の通常的な知識を習得した者に自明である。
【００６２】
不揮発性メモリ装置１２３０は、ＳＳＤ１２００の格納媒体として提供される。例えば、不揮発性メモリ装置１２３０は、大容量の格納能力を有するＮＡＮＤフラッシュメモリ（ＮＡＮＤ−ｔｙｐｅ  Ｆｌａｓｈ  ｍｅｍｏｒｙ）からなることができる。不揮発性メモリ装置１２３０は複数のメモリ装置で構成することもできる。この場合、各々のメモリ装置はチャンネル単位でＳＳＤコントローラ１２１０と接続する。
【００６３】
不揮発性メモリ装置１２３０は、格納媒体としてＮＡＮＤフラッシュメモリを例としてあげて説明したが、また他の不揮発性メモリ装置で構成することもできる。例えば、格納媒体として、ＰＲＡＭ（Ｐｈａｓｅ  ｃｈａｎｇｅ  ＲＡＭ）、ＭＲＡＭ（Ｍａｇｎｅｔｉｃ  ＲＡＭ）、ＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  ＲＡＭ）、ＦＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）、ＮＯＲフラッシュメモリなどを用いることができ、異種のメモリ装置が混用するメモリシステムにも適用することができる。そして格納媒体として揮発性メモリ装置（例えば、ＤＲＡＭ）を含むこともできる。
【００６４】
図８は、本発明の実施形態に係るメモリシステム２０００を簡略的に示すブロック図である。
図８を参照すると、本発明に係るメモリシステム２０００は、不揮発性メモリ装置（ＮＶＭ）２２００と、メモリコントローラ２１００とを含む。
【００６５】
不揮発性メモリ装置２２００とメモリコントローラ２１００との結合によってメモリカードまたは半導体ディスク装置（ソリッドステートドライブ）（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ：ＳＳＤ）からなることができる。
ＳＲＡＭ２１１０は、プロセッシングユニット（ＣＰＵ）２１２０の動作メモリとして用いられる。
【００６６】
ホストインターフェース２１３０は、メモリシステム２０００と接続するホストのデータ交換プロトコルを具備する。
エラー訂正ブロック（ＥＣＣ）２１４０は、不揮発性メモリ装置２２００から読み出されたデータに含まれるエラーを検出及び訂正する。エラー訂正ブロック２１４０は本発明の事前確率計算ユニット１２１、事後確率計算ユニット１２２、軟判定デコーダ１２３を含むことができる。
メモリインターフェース２１５０は、本発明の不揮発性メモリ装置２２００とインターフェーシングする。プロセッシングユニット（ＣＰＵ）２１２０はメモリコントローラ２１００のデータ交換のためのあらゆる動作を制御する。
【００６７】
図示しないが、本発明に係るメモリシステム２０００はホストとのインターフェーシングのためのコードデータを格納するＲＯＭ（図示せず）などをさらに提供することができることはこの分野の通常的な知識を習得した者に自明である。
【００６８】
不揮発性メモリ装置２２００は、複数のフラッシュメモリチップで構成されるマルチチップパッケージからなることもできる。
以上の本発明のメモリシステム２０００は、エラーの発生確率が低い高信頼性の格納媒体で構成することができる。特に、最近活発に研究されているソリッドステートドライブ（ＳＳＤ）のようなメモリシステムで本発明のフラッシュメモリ装置を具備することができる。
【００６９】
この場合、メモリコントローラ２１００は、ＵＳＢ、ＭＭＣ、ＰＣＩ−Ｅ、ＳＡＳ、ＳＡＴＡ、ＰＡＴＡ、ＳＣＳＩ、ＥＳＤＩ、ＩＤＥなどのような多様なインターフェースプロトコルのうちの１つを通じて外部（例えば、ホスト）と通信するように構成する。また、メモリコントローラ２１００にはランダム演算を実行するための構成をさらに含むことができる。
【００７０】
図９は、本発明に係る不揮発性メモリ装置３１２０を含んだコンピューティングシステム３０００を概略的に示すブロック図である。
図９を参照すると、本発明に係るコンピューティングシステム３０００は、システムバス３６００に電気的に接続されたマイクロプロセッサ（ＣＰＵ）３２００、ＲＡＭ３３００、ユーザインターフェース３４００、ベースバンドチップセット（Ｂａｓｅｂａｎｄ  ｃｈｉｐ  ｓｅｔ）のようなモデム３５００、メモリシステム３１００を含む。
【００７１】
メモリシステム３１００は、図２に示したように構成される。
本発明に係るコンピューティングシステム３０００がモバイル装置の場合、コンピューティングシステム３０００の動作電圧を供給するためのバッテリー（図示せず）を追加的に提供する。図示しないが、本発明に係るコンピューティングシステム３０００には応用チップセット（Ａｐｐｌｉｃａｔｉｏｎ  ｃｈｉｐｓｅｔ）、カメライメージプロセッサ（Ｃａｍｅｒａ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ：ＣＩＳ）、モバイルＤＲＡＭなどをさらに提供することができることはこの分野の通常的な知識を習得した者に自明である。
【００７２】
メモリシステム３１００は、例えば、データの格納に不揮発性メモリを用いるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ／Ｄｉｓｋ）を構成することができる。または、メモリシステム３１００は、フュージョンフラッシュメモリ（例えば、ＯｎｅＮａｎｄフラッシュメモリ）で構成することができる。
【００７３】
本発明に係る不揮発性メモリ装置やメモリコントローラは、多様な形態のパッケージを利用して実装することができる。
例えば、本発明に係るラッシュメモリ装置やメモリコントローラは、ＰｏＰ（Ｐａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ）、Ｂａｌｌ  ｇｒｉｄ  ａｒｒａｙｓ（ＢＧＡｓ）、Ｃｈｉｐ  ｓｃａｌｅ  ｐａｃｋａｇｅｓ（ＣＳＰｓ）、Ｐｌａｓｔｉｃ  Ｌｅａｄｅｄ  Ｃｈｉｐ  Ｃａｒｒｉｅｒ（ＰＬＣＣ）、Ｐｌａｓｔｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＰＤＩＰ）、Ｄｉｅ  ｉｎ  Ｗａｆｆｌｅ  Ｐａｃｋ、Ｄｉｅ  ｉｎ  Ｗａｆｅｒ  Ｆｏｒｍ、Ｃｈｉｐ  Ｏｎ  Ｂｏａｒｄ（ＣＯＢ）、Ｃｅｒａｍｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＣＥＲＤＩＰ）、Ｐｌａｓｔｉｃ  Ｍｅｔｒｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋ（ＭＱＦＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＳＯＩＣ）、Ｓｈｒｉｎｋ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ（ＳＳＯＰ）、Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ（ＴＳＯＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔｐａｃｋ（ＴＱＦＰ）、Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ（ＳＩＰ）、Ｍｕｌｔｉ  Ｃｈｉｐ  Ｐａｃｋａｇｅ（ＭＣＰ）、Ｗａｆｅｒ−ｌｅｖｅｌ  Ｆａｂｒｉｃａｔｅｄ  Ｐａｃｋａｇｅ（ＷＦＰ）、Ｗａｆｅｒ−Ｌｅｖｅｌ  Ｐｒｏｃｅｓｓｅｄ  Ｓｔａｃｋ  Ｐａｃｋａｇｅ（ＷＳＰ）などのようなパッケージを利用して実装することができる。
【００７４】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００７５】
１０、１５、２０、２５、３０、３５、４０、４５    基準分布
１００    メモリシステム
１１０    不揮発性メモリ装置
１２０    メモリコントローラ
１２１    事前確率計算ユニット
１２２    事後確率計算ユニット
１２３    軟判定デコーダ
１０００    ＳＳＤシステム
１１００    ホスト
１２００    ＳＳＤ
１２１０    ＳＳＤコントローラ
１２２０    バッファメモリ
１２３０    不揮発性メモリ装置
２０００    メモリシステム
２１００    メモリコントローラ
２１１０    ＳＲＡＭ
２１２０    プロセッシングユニット
２１３０    ホストインターフェース
２１４０    エラー訂正ブロック
２１５０    メモリインターフェース
２２００    不揮発性メモリ装置
３０００    コンピューティングシステム
３１００    メモリシステム
３２００    マイクロプロセッサ
３３００    ＲＡＭ
３４００    ユーザインターフェース
３５００    モデム
３６００    システムバス
【図１】
2011176825.tif 000005
【図２】
2011176825.tif 000006
【図３】
2011176825.tif 000007
【図４】
2011176825.tif 000008
【図５】
2011176825.tif 000009
【図６】
2011176825.tif 000010
【図７】
2011176825.tif 000011
【図８】
2011176825.tif 000012
【図９】
2011176825.tif 000013