(57)【要約】【課題】通信路の不一致に基づく復号特性の劣化を抑える。【解決手段】実施形態によれば、メモリシステムは、不揮発性メモリと、前記不揮発性メモリに記録されたデータを受信値として読み出すメモリインタフェースと、前記不揮発性メモリから読み出された前記受信値を第１変換テーブルを用いて第１尤度情報に変換する変換部と、前記第１尤度情報を復号する復号器と、前記復号器による復号に成功した場合、前記復号により得られた復号結果である前記受信値に対する推定値を出力する制御部と、前記復号器により前記第１尤度情報の復号に失敗した場合、前記復号により得られた復号結果に基づいて、第２変換テーブルを作成する作成部とを備え、前記変換部は、前記作成部が前記第２変換テーブルを作成した場合、前記第２変換テーブルを用いて前記受信値を前記第２尤度情報に変換し、前記復号器は、前記第２尤度情報を復号する。【選択図】図４
2019125910.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
前記不揮発性メモリに記録されたデータを受信値として読み出すメモリインタフェースと、
前記不揮発性メモリから読み出された前記受信値を第１変換テーブルを用いて第１尤度情報に変換する変換部と、
前記第１尤度情報を復号する復号器と、
前記復号器による復号に成功した場合、前記復号により得られた復号結果である前記受信値に対する推定値を出力する制御部と、
前記復号器により前記第１尤度情報の復号に失敗した場合、前記復号により得られた復号結果に基づいて、第２変換テーブルを作成する作成部と、
を備え、
前記変換部は、前記作成部が前記第２変換テーブルを作成した場合、前記第２変換テーブルを用いて前記受信値を前記第２尤度情報に変換し、
前記復号器は、前記第２尤度情報を復号する
メモリシステム。
【請求項２】
前記作成部は、前記復号器が前記第２尤度情報の復号に失敗する度に、前記失敗した復号の結果に基づいて新たな第２変換テーブルを作成し、
前記変換部は、前記作成部が前記第２変換テーブルを作成する度に、前記第２変換テーブルを用いて前記受信値を前記第２尤度情報に変換し、
前記復号器は、前記受信値を前記第２尤度情報に変換する度に、前記第２尤度情報を復号する
請求項１に記載のメモリシステム。
【請求項３】
前記復号器が前記第１尤度情報の復号に失敗した場合、前記受信値と前記推定値との組の出現数を集計する集計部をさらに備え、
前記作成部は、前記集計部による集計結果に基づいて前記第２変換テーブルを作成する
請求項１に記載のメモリシステム。
【請求項４】
前記復号器が前記第１尤度情報又は前記第２尤度情報の復号に失敗した場合、前記受信値と前記推定値との組の出現数を集計する集計部をさらに備え、
前記作成部は、前記集計部による集計結果に基づいて前記第２変換テーブルを作成する
請求項２に記載のメモリシステム。
【請求項５】
前記復号器が前記第１尤度情報又は前記第２尤度情報の復号に失敗した場合、前記受信値と前記推定値との組の出現数を集計する集計部をさらに備え、
前記復号器は、前記復号の結果として事後確率情報を出力し、
前記制御部は、前記事後確率情報のうち所定の閾値よりも大きい事後確率情報から前記推定値を生成し、
前記集計部は、前記事後確率情報が前記所定の閾値よりも大きい前記推定値について、前記受信値と前記推定値との組の出現数を集計し、
前記作成部は、前記集計部による集計結果に基づいて前記第２変換テーブルを作成する
請求項２に記載のメモリシステム。
【請求項６】
前記作成部が作成した前記第２変換テーブルを補正する補正部をさらに備え、
前記変換部は、前記補正部による補正後の前記第２変換テーブルを用いて前記受信値を前記第２尤度情報に変換する
請求項１に記載のメモリシステム。
【請求項７】
前記変換部は、所定数の前記受信値で構成された受信値系列を単位として、前記受信値系列を前記所定数の前記第１尤度情報又は前記第２尤度情報で構成された尤度情報系列に変換し、
前記復号器は、前記尤度情報系列を単位として前記復号を実行する
請求項１に記載のメモリシステム。
【請求項８】
前記復号器が前記尤度情報系列の復号に失敗した場合、前記受信値と前記推定値との組の出現数を集計する集計部をさらに備え、
前記集計部は、前記復号器が複数の前記尤度情報系列に対して実行した復号により得られた前記受信値と前記推定値との組の出現数を集計し、
前記作成部は、前記集計部による集計結果に基づいて前記第２変換テーブルを作成する
請求項７に記載のメモリシステム。
【請求項９】
前記制御部は、前記作成部が所定回数、前記第２変換テーブルの作成を実行した後に、前記復号器が前記第２尤度情報の復号に失敗した場合、復号失敗を出力する請求項１に記載のメモリシステム。
【請求項１０】
前記第１尤度情報及び前記第２尤度情報は、対数尤度比である請求項１に記載のメモリシステム。
【請求項１１】
前記不揮発性メモリに記録された前記データは、軟判定復号可能な誤り訂正符号で符号化されたデータである請求項１に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の実施形態は、一般的に、メモリシステムに関する。
【背景技術】
【０００２】
フラッシュメモリ等の不揮発性メモリを備えたメモリシステムでは、データ保護の観点から、一般的に、不揮発性メモリに書き込むデータを符号化する。このため、メモリシステムに記憶されたデータを読み出す際には、符号化されたデータに対する復号が行われる。
【０００３】
不揮発性メモリに記録されたデータの読出し方式としては、例えば、硬判定読出し（ハードビットリードともいう）と軟判定読出し（ソフトビットリードともいう）とが存在する。不揮発性メモリの各メモリセルが１ビットのデータを格納するシングルレベルセル（ＳＬＣ）である場合の硬判定読出しでは、各メモリセルに記録されているデータが‘０’又は‘１’のビット値として読み出される。一方、ＳＬＣに対する軟判定読出しでは、記録されているデータが‘０’であるか‘１’であるかの確率に関する情報として読み出される。この確率に関する情報には、対数尤度比（ＬＬＲ：Log-Likelihood Ratio）が用いられるのが一般的である。ＬＬＲは、記録されたビットが‘０’である確率と‘１’である確率とを対数比で表現した情報である。軟判定読出しでは、不揮発性メモリから読み出されたデータがＬＬＲテーブルと呼ばれる事前に作成されたテーブルに従ってＬＬＲ列に変換されて復号される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−２０８３０９号公報
【特許文献２】米国特許出願公開第２０１７／０１２５１１４号明細書
【特許文献３】特開２０１０−１０９４６８号公報
【特許文献４】米国特許第９１８３０８３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の一つの実施形態は、通信路の不一致に基づく復号特性の劣化を抑えることが可能なメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態によれば、メモリシステムは、不揮発性メモリと、前記不揮発性メモリに記録されたデータを受信値として読み出すメモリインタフェースと、前記不揮発性メモリから読み出された前記受信値を第１変換テーブルを用いて第１尤度情報に変換する変換部と、前記第１尤度情報を復号する復号器と、前記復号器による復号に成功した場合、前記復号により得られた復号結果である前記受信値に対する推定値を出力する制御部と、前記復号器により前記第１尤度情報の復号に失敗した場合、前記復号により得られた復号結果に基づいて、第２変換テーブルを作成する作成部とを備え、前記変換部は、前記作成部が前記第２変換テーブルを作成した場合、前記第２変換テーブルを用いて前記受信値を前記第２尤度情報に変換し、前記復号器は、前記第２尤度情報を復号する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態に係るメモリシステムの概略構成例を示すブロック図である。
【図２】図２は、第１の実施形態に係る復号部の構成例を示すブロック図である。
【図３】図３は、第１の実施形態に係るデータの読出し処理の一例を示すフローチャートである。
【図４】図４は、第１の実施形態に係る軟判定復号部のより詳細な構成例を示すブロック図である。
【図５】図５は、第１の実施形態に係る復号動作の概略例を示すフローチャートである。
【図６】図６は、第２の実施形態に係る軟判定復号部のより詳細な構成例を示すブロック図である。
【図７】図７は、閾値電圧分布と読出し電圧との関係を示す模式図である。
【図８】図８は、第２の実施形態に係る復号動作の概略例を示すフローチャートである。
【図９】図９は、第３の実施形態に係る復号動作の概略例を示すフローチャートである。
【図１０】図１０は、第３の実施形態に係るメモリシステムにより得られる復号特性とその補間曲線とを示す図である。
【図１１】図１１は、第３の実施形態に係るメモリシステムにより得られる他の復号特性とその補間曲線とを示す図である。
【図１２】図１２は、第４の実施形態に係る軟判定復号部のより詳細な構成例を示すブロック図である。
【図１３】図１３は、第４の実施形態における推定ＬＬＲテーブル作成制御部での事後ＬＬＲの具体的な使用例を示す図である。
【図１４】図１４は、第４の実施形態に係る復号動作の概略例を示すフローチャートである。
【図１５】図１５は、第４の実施形態に係るメモリシステムにより得られる復号特性とその補間曲線とを示す図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、実施形態に係るメモリシステムを詳細に説明する。なお、以下の実施形態により本発明が限定されるものではない。
【０００９】
また、実施形態を説明するにあたり、用語について以下のように定義する。
「通信路（ストレスともいう）」とは、書込み値（送信値ともいう）ｘへの雑音の影響を表す確率モデルであり、通信路行列で特徴付けられるものである。なお、通信路行列を特徴付ける要因としては、いわゆるプログラムディスターブやデータリテンションやリードディスターブや温度交差などが考えられる。
「尤度」とは、ある書込み値ｘが与えられたときに通信路の出力値（受信値ともいう）ｙが得られる条件付き確率Ｐ（ｙ｜ｘ）である。
「通信路行列」とは、尤度を全ての（ｘ，ｙ）の組に関して記載した行列である。
「対数尤度比（ＬＬＲ）」とは、上述したように、記録されたビットが‘０’である時の尤度と‘１’である時の尤度とを対数比で表現した情報であり、尤度情報とも称される。
「ＬＬＲテーブル」とは、通信路の出力値ｙと復号器の入力であるＬＬＲとの対応関係を示すテーブルである。したがって、通信路行列から得られた値ｌｎ［Ｐ（ｙ｜ｘ＝０）／Ｐ（ｙ｜ｘ＝１）］が出力値ｙに対応するＬＬＲ値となる。一般的に、異なる通信路行列に対しては、異なるＬＬＲテーブルが用意される。
「既定のＬＬＲテーブル」とは、デフォルトで使用されるＬＬＲテーブルである。この既定のＬＬＲテーブルには、例えば、多様な通信路での訂正が想定される中で、典型的に使用されそうな通信路から得られたＬＬＲテーブルが用いられる。
「ＥＣＣフレーム」とは、復号器が動作するためのデータブロックであり、受信値の系列から符号語を再構成するためのデータブロックのことである。
「復号結果の推定書込み値（推定値ともいう）ｋ」は、復号器の出力である一つ一つの推定書込み値である。したがって、復号の終了時には、ＥＣＣフレームに対応する推定書込み値ｋの系列｛ｋ｝が得られる。なお、復号に成功するとは、答えの系列｛ｘ｝と復号結果の系列｛ｋ｝とが完全に一意することを意味する。一方、復号に失敗するとは、ＥＣＣフレーム内でｘ≠ｋとなる箇所が発生し、系列｛ｘ｝と｛ｋ｝とが一致しないことを意味する。
「真の通信路行列」とは、正確な答えであるｘに基づいた条件付き確率Ｐ（ｙ｜ｘ）を要素とした通信路行列である。一方、「推定通信路行列」とは、復号器から出力された推定書込み値ｋを用いた条件付き確率Ｐ（ｙ｜ｋ）を要素とした通信路行列である。
「推定ＬＬＲテーブル」とは、推定通信路行列に基づいたＬＬＲテーブルである。
【００１０】
（第１の実施形態）
まず、第１の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。図１は、第１の実施形態に係るメモリシステムの概略構成例を示すブロック図である。図１に示すように、メモリシステム１は、メモリコントローラ１０と不揮発性メモリ２０とを備える。メモリシステム１は、ホスト３０と接続可能であり、図１ではホスト３０と接続された状態が示されている。ホスト３０は、例えば、パーソナルコンピュータ、携帯端末などの電子機器であってよい。
【００１１】
不揮発性メモリ２０は、データを不揮発に記憶する不揮発性メモリであり、例えば、ＮＡＮＤ型フラッシュメモリ（以下、単にＮＡＮＤメモリという）である。以下の説明では、不揮発性メモリ２０としてＮＡＮＤメモリが用いられた場合を例示するが、不揮発性メモリ２０として３次元構造フラッシュメモリ、ＲｅＲＡＭ（Resistive Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）等のＮＡＮＤメモリ以外の記憶装置を用いることも可能である。また、不揮発性メモリ２０が半導体メモリであることは必須ではなく、半導体メモリ以外の種々の記憶媒体に対して本実施形態を適用することも可能である。
【００１２】
メモリシステム１は、いわゆるＳＳＤ（Solid State Drive）や、メモリコントローラ１０と不揮発性メモリ２０とが１つのパッケージとして構成されるメモリカード等、不揮発性メモリ２０を備える種々のメモリシステムであってよい。
【００１３】
メモリコントローラ１０は、ホスト３０からの書込み要求に従って不揮発性メモリ２０への書込みを制御する。また、ホスト３０からの読出し要求に従って不揮発性メモリ２０からの読み出しを制御する。メモリコントローラ１０は、例えばＳｏＣ（System On a Chip）として構成される半導体集積回路である。メモリコントローラ１０は、ホストＩ／Ｆ（ホストインタフェース）１５、メモリＩ／Ｆ（メモリインタフェース）１３、制御部１１、符号化／復号部（コーデック）１４及びデータバッファ１２を備える。ホストＩ／Ｆ１５、メモリＩ／Ｆ１３、制御部１１、符号化／復号部１４及びデータバッファ１２は、内部バス１６で相互に接続されている。以下で説明するメモリコントローラ１０の各構成要素の動作の一部又は全部は、ＣＰＵ（Central Processing Unit）がファームウエアを実行することによって実現されてもよいし、ハードウエアで実現されてもよい。
【００１４】
ホストＩ／Ｆ１５は、ホスト３０との間のインタフェース規格に従った処理を実施し、ホスト３０から受信した命令、書込み対象のユーザデータなどを内部バス１６に出力する。また、ホストＩ／Ｆ１５は、不揮発性メモリ２０から読み出されて復元されたユーザデータ、制御部１１からの応答などをホスト３０へ送信する。
【００１５】
メモリＩ／Ｆ１３は、制御部１１の指示に基づいて、不揮発性メモリ２０への書込み処理を行う。また、メモリＩ／Ｆ１３は、制御部１１の指示に基づいて、不揮発性メモリ２０からの読み出し処理を行う。
【００１６】
制御部１１は、メモリシステム１の各構成要素を統括的に制御する。制御部１１は、ホスト３０からホストＩ／Ｆ１５経由で命令を受けた場合に、その命令に従った制御を行う。例えば、制御部１１は、ホスト３０からの命令に従って、不揮発性メモリ２０へのユーザデータ及びパリティの書き込みをメモリＩ／Ｆ１３へ指示する。また、制御部１１は、ホスト３０からの命令に従って、不揮発性メモリ２０からのユーザデータ及びパリティの読み出しをメモリＩ／Ｆ１３へ指示する。
【００１７】
また、制御部１１は、ホスト３０から書込み要求を受信した場合、データバッファ１２に蓄積されるユーザデータに対して、不揮発性メモリ２０上の格納領域（メモリ領域）を決定する。すなわち、制御部１１は、ユーザデータの書込み先を管理する。ホスト３０から受信したユーザデータの論理アドレスと該ユーザデータが格納された不揮発性メモリ２０上の格納領域を示す物理アドレスとの対応はアドレス変換テーブルとして格納される。
【００１８】
また、制御部１１は、ホスト３０から読出し要求を受信した場合、読出し要求により指定された論理アドレスを上述のアドレス変換テーブルを用いて物理アドレスに変換し、該物理アドレスからの読み出しをメモリＩ／Ｆ１３へ指示する。
【００１９】
ＮＡＮＤメモリでは、一般に、ページと呼ばれるデータ単位で、書き込み及び読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。本実施形態では、この同一のワード線に接続される複数のメモリセルをメモリセルグループと呼ぶ。メモリセルがシングルレベルセル（ＳＬＣ：Single Level Cell）である場合は、１つのメモリセルグループが１ページに対応する。メモリセルがマルチレベルセル（ＭＬＣ：Multiple Level Cell）である場合は、１つのメモリセルグループが複数ページに対応する。なお、本説明において、ＭＬＣには、ＴＬＣ（Triple Level Cell）やＱＬＣ（Quad Level Cell）等が含まれる。また、各メモリセルはワード線に接続するとともにビット線にも接続される。したがって、各メモリセルは、ワード線を識別するアドレスとビット線を識別するアドレスとで識別することが可能である。
【００２０】
データバッファ１２は、メモリコントローラ１０がホスト３０から受信したユーザデータを不揮発性メモリ２０へ記憶するまでに一時格納する。また、データバッファ１２は、不揮発性メモリ２０から読み出したユーザデータをホスト３０へ送信するまでに一時格納する。データバッファ１２には、例えば、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）などの汎用メモリを用いることができる。なお、データバッファ１２は、メモリコントローラ１０に内蔵されずに、メモリコントローラ１０の外部に搭載されてもよい。
【００２１】
ホスト３０から送信されるユーザデータは、内部バス１６に転送されてデータバッファ１２に一旦格納される。符号化／復号部１４は、不揮発性メモリ２０に格納されるユーザデータを符号化して符号語を生成する。また、符号化／復号部１４は、不揮発性メモリ２０から読み出された受信語を復号してユーザデータを復元する。そこで符号化／復号部１４は、符号化部（Encoder）１７と復号部（Decoder）１８を備える。なお、符号化／復号部１４により符号化されるデータには、ユーザデータ以外にも、メモリコントローラ１０内部で用いる制御データ等が含まれてもよい。
【００２２】
次に、本実施形態の書込み処理について説明する。制御部１１は、不揮発性メモリ２０への書込み時に、ユーザデータの符号化を符号化部１７に指示する。その際、制御部１１は、不揮発性メモリ２０における符号語の格納場所（格納アドレス）を決定し、決定した格納場所もメモリＩ／Ｆ１３へ指示する。
【００２３】
符号化部１７は、制御部１１からの指示に基づいて、データバッファ１２上のユーザデータを符号化して符号語を生成する。符号化方式としては、後述するように、例えば、ＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号やＲＳ（Reed-Solomon）符号のような代数的符号を用いた符号化方式や、ＬＤＰＣ（Low-Density Parity-Check）符号のような疎グラフに基づく符号を用いた符号化方式を採用することができる。メモリＩ／Ｆ１３は、制御部１１から指示された不揮発性メモリ２０上の格納場所へ符号語を格納する制御を行う。
【００２４】
次に、本実施形態の不揮発性メモリ２０からの読出し時の処理について説明する。制御部１１は、不揮発性メモリ２０からの読出し時に、不揮発性メモリ２０上のアドレスを指定してメモリＩ／Ｆ１３へ読み出しを指示する。また、制御部１１は、復号部１８へ復号の開始を指示する。メモリＩ／Ｆ１３は、制御部１１の指示に従って、不揮発性メモリ２０の指定されたアドレスから受信語を読み出し、読み出した受信語を復号部１８に入力する。復号部１８は、この不揮発性メモリ２０から読み出された受信語を復号する。
【００２５】
復号部１８は、不揮発性メモリ２０から読み出された受信語を復号する。図２は、本実施形態に係る復号部の構成例を示すブロック図である。図２に示すように、復号部１８は、硬判定値を入力とし、その結果として硬判定値を出力する硬判定復号を実行する硬判定復号部１８１と、軟判定値を入力とし、その結果として軟判定値を出力する軟判定復号を実行する軟判定復号部１８２とを備える。一般に、軟判定復号は、硬判定復号より誤り訂正能力は高いが処理時間が長いという特徴を持つ。そこで、例えば硬判定復号部１８１がまず硬判定復号を実行し、この硬判定復号により復号できなかった場合に、軟判定復号部１８２が軟判定復号を実行するように構成することもできる。ただし、本実施形態は、このような構成に限定されず、例えば硬判定復号部１８１が省略されてもよい。
【００２６】
図３は、第１の実施形態に係るデータの読出し処理の一例を示すフローチャートである。制御部１１は、メモリＩ／Ｆ１３に対して、読み出すアドレスを指定してハードビットリード（ＨＢＲ）により不揮発性メモリ２０からデータを読み出すよう指示し、これに対し、メモリＩ／Ｆ１３はハードビットリードを実行する（ステップＳ１）。ハードビットリードとは、読出し対象のデータを構成する各ビットを０または１の硬判定値の受信語として読出す読出し方法である。読み出された硬判定値の受信語は、例えば、内部バス１６を経由して符号化／復号部１４の復号部１８に入力される。
【００２７】
不揮発性メモリ２０がＮＡＮＤメモリの場合、データの書き込み時に、書込み値ｘに応じて、フローティングゲートの電子数（電荷量）が複数の分布（しきい値分布）のいずれかに対応するように電子を注入する。ここでは、説明を簡略化するため、１つのメモリセルが１ビットを記憶するシングルレベルセル（ＳＬＣ）の例について説明する。ＳＬＣの場合、２つの分布のうちいずれか一方が０に対応し、他方が１に対応する。メモリセルに、電圧を印加した場合、該メモリセルの電荷量に応じた電圧値以上の電圧を印加すると電流が流れ、該電圧値未満の電圧を印加すると電流が流れない。したがって、この境目となる電圧はメモリセルごとに該メモリセルの電荷量に応じて決まる。このメモリセルの電荷量に応じて決まる電圧値を、ここでは閾値電圧とよぶ。初期状態で、２つの閾値電圧分布のいずれかに対応するように電荷を注入して、読出し時には、２つの閾値電圧分布を区切る基準読出し電圧（基準リードレベルともいう）をメモリセルに印加することにより、このメモリセルに記憶されているデータが１であるか０であるかを判定することができる。
【００２８】
ハードビットリードでは、メモリセルに基準読出し電圧が印加されて、メモリセルに記憶されているデータが１であるか０であるかが判定され、判定された結果が受信値ｙとして出力される。なお、ハードビットリードの際に印加する読出し電圧は、基準読出し電圧から変更されることもある。
【００２９】
図３の説明に戻る。制御部１１は、復号部１８に硬判定復号の実施を指示し、これに対し、復号部１８の硬判定復号部１８１は、受信語に対して硬判定復号を行う（ステップＳ２）。具体的には、硬判定復号部１８１は、受信語に対して、例えば限界距離復号等の復号を行う。ただし、硬判定復号部１８１が行う硬判定復号は、限界距離復号に限定されずどのような硬判定復号であってもよい。
【００３０】
ステップＳ２の後、硬判定復号部１８１は、復号に成功したか否かを判断し、この判断結果を制御部１１へ通知する。制御部１１は、硬判定復号部１８１からの通知に基づいて、復号に成功したか否かを判断し（ステップＳ３）、復号に成功した場合（ステップＳ３のＹＥＳ）、読出し処理を終了する。
【００３１】
一方、復号に失敗していた場合（ステップＳ３のＮＯ）、制御部１１は、メモリＩ／Ｆ１３に対して、読み出すアドレスを指定してソフトビットリード（ＳＢＲ）により不揮発性メモリ２０からデータを読み出すよう指示し、これに対し、メモリＩ／Ｆ１３は、各メモリセルが保持するデータをハードビットリードで使用する基準読出し電圧に対して所定の刻み幅で設定された１以上の読出し電圧でも読み出した結果も含んだ受信値ｙとして読み出す読出しであるソフトビットリードを実行する（ステップＳ４）。読み出された受信値ｙは、例えばＥＣＣフレーム単位の系列｛ｙ｝として、内部バス１６を経由して符号化／復号部１４の復号部１８に入力される。
【００３２】
ステップＳ５では、制御部１１が復号部１８に軟判定復号の実施を指示し、これに対し、復号部１８の軟判定復号部１８２が、ＥＣＣフレーム単位で入力された受信値ｙの系列｛ｙ｝に対して、軟判定復号を実行する（ステップＳ５）。その後、本動作は、ステップＳ３へリターンする。なお、本実施形態に係る軟判定復号の詳細については、次に詳述する。
【００３３】
つづいて、本実施形態に係る軟判定復号について詳細に説明する。そこで、まず、「軟判定復号に必要な通信路の推定」と「ＬＬＲテーブル」との関係について説明する。なお、以下の説明では、簡単のため、送信値ｘが取り得る値を０，１とし、受信値ｙが取り得る値を０，１，２，３とする。
【００３４】
軟判定復号では、復号対象の通信路が決定すると、不揮発性メモリ２０に書き込まれる送信値ｘが記録されるとともに、不揮発性メモリ２０から読み出された送信値ｘがどの受信値ｙに変化したかが記録される。そこで本説明では、以下の表１に示すようなヒストグラムが得られたと仮定する。
【表１】
2019125910.tif 000003
【００３５】
表１には、８１２８回の観測の結果、（ｘ＝０，ｙ＝０）という組が１回観測され、（ｘ＝１，ｙ＝０）という組が３３７５回観測され、（ｘ＝０，ｙ＝１）という組が１２５回観測され、（ｘ＝１，ｙ＝１）という組が１３３１回観測され、（ｘ＝０，ｙ＝２）という組が７２９回観測され、（ｘ＝１，ｙ＝２）という組が３４３回観測され、（ｘ＝０，ｙ＝３）という組が２１９７回観測され、（ｘ＝１，ｙ＝３）という組が２７回観測されたことが示されている。
【００３６】
真の通信路の条件付き確率Ｐ（ｙ｜ｘ）は、このような表１に基づいて以下のように推定される。すなわち、（ｘ，ｙ）の組それぞれの観測回数（以下、度数ともいう）をＦ（ｘ，ｙ）とすると、例えば、（ｘ＝０，ｙ＝０）という組が観測される条件付き確率Ｐ（ｙ＝０｜ｘ＝０）は、以下の式（１）のように求まり、また、（ｘ＝１，ｙ＝０）という組が観測される条件付き確率Ｐは、以下の式（２）のように求まる。
【数１】
2019125910.tif 000004
【数２】
2019125910.tif 000005
【００３７】
そこで、想定した通信路に対しては、例えば受信値ｙが０である場合に以下の式（３）から求まるＬＬＲ値が割り当てられるように、ＬＬＲテーブルが作成される。式（３）のＬＬＲ値は小数点第二位で四捨五入している。
【数３】
2019125910.tif 000006
【００３８】
同様に、他の受信値ｙが１〜３のそれぞれである場合に対しても、以下の式（４）〜（６）から求まるＬＬＲが割り当てられるように、ＬＬＲテーブルが作成される。式（４）〜（６）のＬＬＲ値は小数点第二位で四捨五入している。
【数４】
2019125910.tif 000007
【数５】
2019125910.tif 000008
【数６】
2019125910.tif 000009
【００３９】
上記のようにして作成されるＬＬＲテーブルは、十分な数の（ｘ，ｙ）の組を収集することで真の通信路行列から作成されたＬＬＲテーブルに十分に近づけることが可能である。すなわち、十分な数の（ｘ，ｙ）の組を収集することができれば、正確に「軟判定復号に必要な通信路の推定」を行なうことが可能となり、それにより、復号対象の通信路に対して理想的な「ＬＬＲテーブル」を作成することが可能となる。
【００４０】
つづいて、「通信路の推定」について説明する。例えば、復号対象となる通信路の数が非常に多い場合、全ての異なる通信路について事前にＬＬＲテーブルを用意できない場合がある。そのような場合、運よく復号に成功していれば、誤訂正にならない確率で、推定される送信値（以下、推定値という）ｋが送信値ｘと一致している。そこで、送信値ｘの代わりに推定値ｋを使用して上記のようなＬＬＲテーブルの作成を実行し、これにより作成されたＬＬＲテーブルを同様の通信路で復号失敗したＥＣＣフレームに使用する。これにより、ＬＬＲテーブルを事前に用意できなかった場合でも復号特性の劣化を抑えることができる。
【００４１】
ただし、復号に失敗していた場合でも、この復号によって誤りビットの数がある程度下げられている場合には、推定値ｋの系列｛ｋ｝を使用して上記のＬＬＲテーブル作成を実行し、これにより改めて得られたＬＬＲテーブル（以下、推定ＬＬＲテーブルという）を使用することで、復号に成功する場合がある。
【００４２】
このように、メモリシステムにおける復号では、事前に想定していた通信路と実際の通信路とが異なっていると、復号に失敗する蓋然性が高まるが、失敗した復号結果に基づくことで、推定する通信路を正しい通信路に近づけることが可能な場合がある。
【００４３】
そこで本実施形態では、復号に失敗した場合でも、その失敗の結果から通信路を推定する手順、言い換えれば、ＬＬＲテーブルを作成する手順を１回以上行うことで、通信路の不一致に基づく復号失敗を救出することを可能にする。
【００４４】
図４は、本実施形態に係る軟判定復号部のより詳細な構成例を示すブロック図である。図４に示すように、軟判定復号部１８２は、ＬＬＲ変換部１０１と、復号器１０２と、推定ＬＬＲテーブル作成制御部１０３と、推定通信路行列集計部１０４と、推定ＬＬＲテーブル作成部１０５と、受信語バッファ１０６とを備える。
【００４５】
この構成において、受信語バッファ１０６は、受信値ｙの系列｛ｙ｝をＥＣＣフレーム単位で保存する。具体的には、受信語バッファ１０６は、不揮発性メモリ２０から読み出された受信値ｙの系列｛ｙ｝を、ＥＣＣフレーム単位で入力して保存する。また、受信語バッファ１０６は、後述する推定ＬＬＲテーブル作成制御部１０３から、出力開始の指示や、どのＥＣＣフレームに関連する受信値ｙの系列｛ｙ｝を出力するかを指定する情報、若しくは、ＥＣＣフレーム内の特定の受信値ｙを出力するかを指定する情報を入力する。そして、受信語バッファ１０６は、出力開始の指示に従い、現在保存しているＥＣＣフレーム単位の受信値ｙのうち、指定された系列｛ｙ｝又は指定された受信値ｙを推定通信路行列集計部１０４へ出力する。
【００４６】
推定ＬＬＲテーブル作成制御部１０３は、特定の（ｋ，ｙ）の組から推定通信路行列を逐次的に作成する。具体的には、推定ＬＬＲテーブル作成制御部１０３には、復号器１０２からの復号結果としてのＥＣＣフレーム単位の推定値ｋの系列｛ｋ｝が入力される。また、推定ＬＬＲテーブル作成制御部１０３には、復号に成功したか失敗したか等の復号後に得られる情報も入力される。そして、推定ＬＬＲテーブル作成制御部１０３は、入力された推定値ｋの系列｛ｋ｝に対し、外部へ出力するか、推定通信路行列集計部１０４へ出力するかを判断し、判断した先へ推定値ｋの系列｛ｋ｝を出力する。また、推定ＬＬＲテーブル作成制御部１０３は、受信語バッファ１０６に出力開始を指示する信号、及び、推定通信路行列集計部１０４を制御するための制御信号を出力する。
【００４７】
推定通信路行列集計部１０４は、（ｋ，ｙ）の組を集計して推定通信路行列を作成し保存する。具体的には、推定通信路行列集計部１０４は、推定ＬＬＲテーブル作成制御部１０３によって選定されたＥＣＣフレーム単位の推定値ｋの系列｛ｋ｝と、受信語バッファ１０６からの出力であって、推定ＬＬＲテーブル作成制御部１０３から入力された推定値ｋの系列｛ｋ｝と同じＥＣＣフレームに所属する受信値ｙの系列｛ｙ｝とを入力する。そして、推定通信路行列集計部１０４は、入力された系列｛ｋ｝及び｛ｙ｝から（ｋ，ｙ）の組を集計し、これにより得られた現在の集計結果に基づいて、尤度Ｐ（ｙ｜ｋ）の一覧である推定通信路行列若しくは尤度Ｐの元となる度数分布を作成する。また、推定通信路行列集計部１０４は、作成した推定通信路行列若しくは度数分布を推定ＬＬＲテーブル作成部１０５へ出力する。なお、推定通信路行列集計部１０４には、推定ＬＬＲテーブル作成制御部１０３から、集計結果のリセット信号や、出力のタイミングを知らせる制御信号等も入力される。
【００４８】
推定ＬＬＲテーブル作成部１０５は、推定通信路行列集計部１０４から入力された推定通信路行列又は度数分布から推定ＬＬＲテーブルを計算する。そして、推定ＬＬＲテーブル作成部１０５は、計算により得られた推定ＬＬＲテーブルをＬＬＲ変換部１０１へ出力する。
【００４９】
ＬＬＲ変換部１０１は、推定ＬＬＲテーブル作成制御部１０５から指定されたＬＬＲテーブル又は推定ＬＬＲテーブルを用いることで、不揮発性メモリ２０から読み出されて入力された受信値ｙをＬＬＲ値に変換する。具体的には、ＬＬＲ変換部１０１へは、不揮発性メモリ２０から読み出された受信値ｙの系列｛ｙ｝が入力される。また、ＬＬＲ変換部１０１には、受信値ｙとＬＬＲ値との変換に使用される既定のＬＬＲテーブルと、同じく受信値ｙとＬＬＲ値との変換に使用される推定ＬＬＲテーブル作成部１０５からのＬＬＲテーブルとも入力される。さらに、ＬＬＲ変換部１０１には、推定ＬＬＲテーブル作成制御部１０３から、使用するＬＬＲテーブルの指定情報も入力される。そして、ＬＬＲ変換部１０１は、推定ＬＬＲテーブル作成制御部１０３から指定されたＬＬＲテーブルを用いて受信値ｙを変換することで得られたＬＬＲ値の系列を復号器１０２へ出力する。
【００５０】
復号器１０２は、ＥＣＣフレーム単位のＬＬＲ値の系列から復号に関する情報や推定値ｋの系列｛ｋ｝を計算する。具体的には、復号器１０２は、ＬＬＲ変換部１０１からＬＬＲ値の系列を入力する。なお、復号器１０２には、一度の復号でＥＣＣフレームに対応する系列が入力される。そして、復号器１０２は、入力されたＬＬＲ値の系列を復号することで得られた推定値ｋの系列｛ｋ｝を推定ＬＬＲテーブル作成制御部１０３へ出力する。なお、復号器１０２は、一度の復号の結果として、ＥＣＣフレームに対応する系列｛ｋ｝を出力する。また、復号器１０２は、復号の成否など、復号で得られた情報も推定ＬＬＲテーブル作成制御部１０３へ出力する。
【００５１】
つづいて、本実施形態に係る復号動作を、図面を参照して詳細に説明する。図５は、本実施形態に係る復号動作の概略例を示すフローチャートである。図５に示すように、本動作では、まず、メモリＩ／Ｆ１３によって不揮発性メモリ２０から読み出されたＥＣＣフレーム単位の受信値ｙの系列｛ｙ｝が軟判定復号部１８２に入力される（ステップＳ１０１）。軟判定復号部１８２に入力された系列｛ｙ｝は、受信語バッファ１０６に保存されると共に、ＬＬＲ変換部１０１に入力される。
【００５２】
次に、例えば推定ＬＬＲテーブル作成制御部１０３が、推定ＬＬＲテーブル作成の繰返し回数をカウントする不図示のカウンタのカウント値Ｓをリセット（Ｓ＝０）する（ステップＳ１０２）。つづいて、入力された受信値ｙの系列｛ｙ｝が既定のＬＬＲテーブルを用いて復号される（ステップＳ１０３）。具体的には、推定ＬＬＲテーブル作成制御部１０３が、例えばカウント値Ｓが０であることに基づき、入力された受信値ｙの系列｛ｙ｝に対して使用するＬＬＲテーブルを既定のＬＬＲテーブルとする旨の指示をＬＬＲ変換部１０１に入力する。ＬＬＲ変換部１０１は、指定された既定のＬＬＲテーブルを用いて、受信値ｙの系列｛ｙ｝をＬＬＲ値の系列に変換し、これにより得られたＬＬＲ値の系列を復号器１０２に入力する。復号器１０２は、入力されたＬＬＲ値の系列を復号し、その結果として得られた推定値ｋの系列｛ｋ｝と、復号の成否などの情報とを推定ＬＬＲテーブル作成制御部１０３へ出力する。なお、以下の説明では、カウント値Ｓのときに得られた推定値ｋをｋＳとし、推定値ｋＳの系列を復号系列｛ｋＳ｝とする。
【００５３】
次に、例えば推定ＬＬＲテーブル作成制御部１０３が、復号器１０２から入力された情報に基づいて、復号に成功したか否かを判断する（ステップＳ１０４）。復号に成功していた場合（ステップＳ１０４のＹＥＳ）、本動作は、ステップＳ１０９へ進む。一方、復号に失敗していた場合（ステップＳ１０４のＮＯ）、例えば推定ＬＬＲテーブル作成制御部１０３が、カウント値Ｓを１インクリメントする（ステップＳ１０５）。つづいて、推定ＬＬＲテーブル作成制御部１０３は、カウント値Ｓが繰返し回数の最大値Ｓ＿ｍａｘより大きいか否かを判定する（ステップＳ１０６）。この最大値Ｓ＿ｍａｘは、復号に成功するまで失敗した復号結果に基づく推定ＬＬＲテーブルの作成（ステップＳ１０４〜Ｓ１０８）が繰り返されることを回避するための制限値である。カウント値Ｓが最大値Ｓ＿ｍａｘより大きい場合（ステップＳ１０６のＹＥＳ）、本動作は、ステップＳ１１１へ進む。一方、カウント値Ｓが最大値Ｓ＿ｍａｘ以下である場合（ステップＳ１０６のＮＯ）、本動作は、ステップＳ１０７へ進む。
【００５４】
ステップＳ１０７では、ステップＳ１０３又はＳ１０８の復号により得られた推定値ｋＳと受信値ｙとの組（ｋＳ，ｙ）それぞれの度数から、推定ＬＬＲテーブルが作成される。具体的には、推定通信路行列集計部１０４が、推定ＬＬＲテーブル作成制御部１０３を経由して入力された推定値ｋＳの系列｛ｋＳ｝と、受信語バッファ１０６から入力された受信値ｙの系列｛ｙ｝とから（ｋＳ，ｙ）の組を作成し、それぞれの組の度数を集計する。そして、推定通信路行列集計部１０４は、現在の集計結果に基づいて、尤度Ｐ（ｙ｜ｋＳ）の一覧である推定通信路行列若しくは度数分布を作成し、作成した推定通信路行列若しくは度数分布を推定ＬＬＲテーブル作成部１０５に入力する。推定ＬＬＲテーブル作成部１０５は、入力された推定通信路行列若しくは度数分布に基づき、例えば上述した式（３）〜（６）を用いることで、推定ＬＬＲテーブルを作成する。作成した推定ＬＬＲテーブルは、ＬＬＲ変換部１０１へ入力される。
【００５５】
次に、受信値ｙの系列｛ｙ｝が推定ＬＬＲテーブルを用いて復号される（ステップＳ１０８）。具体的には、推定ＬＬＲテーブル作成制御部１０３が、例えば非零のカウント値Ｓに基づき、受信値ｙの系列｛ｙ｝に対して使用するＬＬＲテーブルを新たに作成された推定ＬＬＲテーブルとする旨の指示をＬＬＲ変換部１０１に入力する。ＬＬＲ変換部１０１は、指定された推定ＬＬＲテーブルを用いて、受信値ｙの系列｛ｙ｝をＬＬＲ値の系列に変換し、これにより得られたＬＬＲ値の系列を復号器１０２に入力する。復号器１０２は、入力されたＬＬＲ値の系列を復号し、その結果として得られた推定値ｋＳの復号系列｛ｋＳ｝と、復号の成否などの情報とを推定ＬＬＲテーブル作成制御部１０３へ出力する。その後、本動作は、ステップＳ１０４へリターンする。
【００５６】
ステップＳ１０９、すなわち、ステップＳ１０３又はＳ１０８の復号に成功していた場合（ステップＳ１０４のＹＥＳ）、復号成功が例えば推定ＬＬＲテーブル作成制御部１０３から制御部１１（図１参照）へ通知される。また、推定ＬＬＲテーブル作成制御部１０３からは、復号により得られた推定値ｋＳの復号系列｛ｋＳ｝も出力される（ステップＳ１１０）。その後、本動作が終了する。なお、出力された復号系列｛ｋＳ｝は、例えば、データバッファ１２（図１参照）に蓄積され、書込み値であるユーザデータに復元された後、読出し要求を発行したホスト３０へ送信される。
【００５７】
また、ステップＳ１１１、すなわち、カウント値Ｓが最大値Ｓ＿ｍａｘに達するまで推定ＬＬＲテーブルの作成を繰り返しても復号に成功しなかった場合（ステップＳ１０６のＹＥＳ）には、復号失敗が例えば推定ＬＬＲテーブル作成制御部１０３から制御部１１（図１参照）へ通知され、本動作が終了する。これに対し、制御部１１は、例えば、要求されたデータの読出しエラーを読出し要求を発行したホスト３０へ送信する。
【００５８】
以上のように、本実施形態では、復号に失敗した場合でも、この失敗した復号により得られた推定値ｋの系列｛ｋ｝を使用して、推定ＬＬＲテーブルの作成を１回以上実行する。これにより、推定する通信路を正しい通信路に近づけることが可能になる。その結果、通信路の不一致に基づく復号失敗を救済できる可能性が高まるため、通信路の不一致に基づく復号特性の劣化を抑えることが可能なメモリシステムを実現することができる。
【００５９】
（第２の実施形態）
次に、第２の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。なお、以下の説明において、第１の実施形態と同様の構成及び動作については、それを引用することで、重複する説明を省略する。
【００６０】
第１の実施形態は、失敗した復号結果に基づいて推定ＬＬＲテーブルを作成する動作を１回以上繰り返すことで、推定する通信路を正しい通信路に近づける構成を備えていた。これに対し、第２の実施形態は、第１の実施形態と同様にして作成された推定ＬＬＲテーブルをさらに補正する構成を備える。
【００６１】
本実施形態に係るメモリシステムは、第１の実施形態において図１を用いて説明したメモリシステム１と同様の構成を備えてよい。ただし、本実施形態では、図４における軟判定復号部１８２が図６に示す軟判定復号部２８２に置き換えられる。
【００６２】
図６に示すように、本実施形態に係る軟判定復号部２８２は、図４に示す軟判定復号部１８２と同様の構成に加え、推定ＬＬＲテーブル補正部２０１をさらに備える。推定ＬＬＲテーブル２０１は、例えば推定ＬＬＲテーブル作成制御部１０３からの指示に従い、推定ＬＬＲテーブル作成部１０５で作成された推定ＬＬＲテーブルを補正し、補正後の推定ＬＬＲテーブルをＬＬＲ変換器１０１に入力する。
【００６３】
ここで、推定ＬＬＲテーブル補正部２０１が実行する補正の一例について説明する。図７は、不揮発性メモリ２０を構成する各メモリセルが１ビットのデータを記録するシングルレベルセル（ＳＬＣ）である場合の閾値電圧分布と読出し電圧との関係を示す模式図である。図７において、Ｅｒ分布は、例えば‘１’のデータが書き込まれたメモリセルの閾値電圧の分布を示し、Ａ分布は、例えば‘０’のデータが書き込まれたメモリセルの閾値電圧の分布を示している。また、Ｖｒ１〜Ｖｒ７は、メモリセルからデータを読み出す際に使用する読出し電圧（以下、リードレベルという）の例を示している。なお、Ｖｒ１〜Ｖｒ７のうち、Ｖｒ４は、硬判定読出し（ハードビットリード）の際に使用するリードレベルの例を示し、Ｖｒ１〜Ｖｒ３及びＶｒ５〜Ｖｒ７は、軟判定読出（ソフトビットリード）の際に使用するリードレベルの例を示している。ただし、ソフトビットリードの際に使用されるリードレベルには、Ｖｒ４が含まれてもよい。
【００６４】
このような閾値電圧分布に対し、メモリセルの閾値電圧が例えばＥｒ分布のピーク付近の電圧である場合、そのメモリセルが保持するデータの値は‘１’である可能性が高い。同様に、メモリセルの閾値電圧が例えばＡ分布のピーク付近の電圧である場合、そのメモリセルが保持するデータの値は‘０’である可能性が高い。そこで、このような場合に推定ＬＬＲテーブル補正部２０１が実行する補正の一例としては、読出しデータからメモリセルの閾値電圧がいずれかの分布のピーク付近にあると認められる場合には、その分布に対応する値である確率が高いとして、そのＬＬＲ値の絶対値が高い値となるように補正する。
【００６５】
また、メモリセルの閾値電圧が例えばＥｒ分布とＡ分布との境界付近の電圧である場合、そのメモリセルが保持するデータの値が‘１’である可能性と‘０’である可能性とはほぼ同等である。そこで、このような場合に推定ＬＬＲテーブル補正部２０１が実行する補正の一例としては、読出しデータからメモリセルの閾値電圧が隣接する分布の境界付近にあると認められる場合には、いずれの分布に対応する値であるかが不確定であるとして、そのＬＬＲ値の絶対値が低い値となるように補正する。その際、ＬＬＲ値の正負が反転してもよい。
【００６６】
なお、補正の方法としては、ＬＬＲ値の絶対値を固定値とする方法や、ＬＬＲ値の絶対値に対して所定の値を加算又は減算する方法など、種々の方法を適用することが可能である。
【００６７】
つづいて、本実施形態に係る復号動作を、図面を参照して詳細に説明する。図８は、本実施形態に係る復号動作の概略例を示すフローチャートである。図８に示すように、本実施形態に係る復号動作は、図５に示した第１の実施形態に係る復号動作と同様の動作において、ステップＳ１０８がステップＳ２０１〜Ｓ２０２に置き換えられている。
【００６８】
すなわち、本実施形態では、ステップＳ１０３又はＳ２０２の復号により得られた推定値ｋＳと受信値ｙとの組（ｋＳ，ｙ）それぞれの度数から推定ＬＬＲテーブルを作成すると（ステップＳ１０７）、作成した推定ＬＬＲテーブルが補正される（ステップＳ２０１）。具体的には、推定ＬＬＲテーブル作成部１０５によって作成された推定ＬＬＲテーブルが推定ＬＬＲテーブル補正部２０１に入力されると、推定ＬＬＲテーブル補正部２０１は、推定ＬＬＲテーブル作成制御部１０３から入力された補正情報に基づいて推定ＬＬＲテーブルを補正し、補正後の推定ＬＬＲテーブルをＬＬＲ変換部１０１に入力する。
【００６９】
次に、受信値ｙの系列｛ｙ｝が補正後の推定ＬＬＲテーブルを用いて復号される（ステップＳ２０２）。具体的には、推定ＬＬＲテーブル作成制御部１０３が、例えば非零のカウント値Ｓに基づき、受信値ｙの系列｛ｙ｝に対して使用するＬＬＲテーブルを新たに作成されて補正された推定ＬＬＲテーブルとする旨の指示をＬＬＲ変換部１０１に入力する。ＬＬＲ変換部１０１は、指定された補正後の推定ＬＬＲテーブルを用いて、受信値ｙの系列｛ｙ｝をＬＬＲ値の系列に変換し、これにより得られたＬＬＲ値の系列を復号器１０２に入力する。復号器１０２は、入力されたＬＬＲ値の系列を復号し、その結果として得られた推定値ｋＳの復号系列｛ｋＳ｝と、復号の成否などの情報とを推定ＬＬＲテーブル作成制御部１０３へ出力する。
【００７０】
以上のように、本実施形態では、失敗した復号結果に基づいて作成された推定ＬＬＲテーブルを補正する構成を備える。それにより、本実施形態では、ストレスにとって補正が適切であれば、より安定して復号に成功するように推定ＬＬＲテーブルを補正することが可能となる。
【００７１】
なお、その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【００７２】
（第３の実施形態）
次に、第３の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。なお、以下の説明において、第１又は第２の実施形態と同様の構成及び動作については、それを引用することで、重複する説明を省略する。
【００７３】
上述した第１又は第２の実施形態では、１つのＥＣＣフレームの復号結果に基づいて推定ＬＬＲテーブルを作成する場合を例示した。これに対し、第３の実施形態では、複数のＥＣＣフレームの復号結果に基づいて推定ＬＬＲテーブルを作成する場合を例示する。
【００７４】
同じような雑音の影響を受けることが想定される通信路であれば、それらの通信路から得られる条件付き確率Ｐ（ｙ｜ｘ）は同様のものとなる。そこで本実施形態では、同様の通信路で雑音の影響を受けると思われる複数のＥＣＣフレームを一括で処理できる場合に、その全てのＥＣＣフレームの集計結果から推定ＬＬＲテーブルを作成する。それにより、推定ＬＬＲテーブルの作成に使用する（ｋ，ｙ）の組の数を増加させることが可能となるため、推定する通信路をより真の通信路に近づけることが可能となる。なお、同じような雑音の影響を受けることが想定される通信路としては、同一又は隣接するワードラインに書き込まれたＥＣＣフレームなどが想定されるが、これに限定されるものではない。
【００７５】
本実施形態に係るメモリシステム及びその復号部の構成は、例えば上述した第１又は第２の実施形態に係るメモリシステム１及びその軟判定復号部１８２又は２８２と同様であってよい。ただし、本実施形態では、軟判定復号部１８２又は２８２が、複数のＥＣＣフレームを一括に処理できるように構成され、復号部１０２には、複数のＥＣＣフレームが入力され、受信語バッファ１０６には、複数のＥＣＣフレームが保存される。
【００７６】
つづいて、本実施形態に係る復号動作を、図面を参照して詳細に説明する。なお、以下の説明では、第２の実施形態において例示した復号動作（図８参照）をベースとするが、これに限定されず、第１の実施形態において例示した復号動作（図５参照）をベースとするなど、種々変形することが可能である。
【００７７】
図９は、本実施形態に係る復号動作の概略例を示すフローチャートである。図９に示すように、本実施形態に係る復号動作は、図８に示した第２の実施形態に係る復号動作と同様の動作において、ステップＳ１０１、Ｓ１０４、Ｓ１０７及びＳ２０２がそれぞれステップＳ３０１、Ｓ３０２、Ｓ３０３及びＳ３０４に置き換えられている。
【００７８】
すなわち、本実施形態では、まず、メモリＩ／Ｆ１３によって不揮発性メモリ２０から読み出された複数のＥＣＣフレームの系列｛ｙ｝が軟判定復号部２８２に入力される（ステップＳ３０１）。軟判定復号部２８２に入力された複数のＥＣＣフレームの系列｛ｙ｝は、受信語バッファ１０６に保存されると共に、ＬＬＲ変換部１０１に入力される。
【００７９】
次に、カウント値Ｓをリセット（Ｓ＝０）した後（ステップＳ１０２）、入力された複数のＥＣＣフレームの系列｛ｙ｝が既定のＬＬＲテーブルを用いて復号される（ステップＳ１０３）。なお、個々のＥＣＣフレームの系列｛ｙ｝に対する復号は、上述した実施形態と同様であってよい。
【００８０】
次に、例えば推定ＬＬＲテーブル作成制御部１０３が、復号器１０２から入力された情報に基づいて、全てのＥＣＣフレームに対する復号に成功したか否かを判断する（ステップＳ３０２）。全てのＥＣＣフレームに対する復号に成功していた場合（ステップＳ３０２のＹＥＳ）、本動作は、ステップＳ１０９へ進み、以降の動作を実行する。一方、復号に失敗したＥＣＣフレームが存在する場合（ステップＳ３０２のＮＯ）、カウント値Ｓが１インクリメントされ（ステップＳ１０５）、インクリメント後のカウント値Ｓが最大値Ｓ＿ｍａｘより大きいか否かが判定される（ステップＳ１０６）。その後、カウント値Ｓが最大値Ｓ＿ｍａｘより大きい場合（ステップＳ１０６のＹＥＳ）、本動作は、ステップＳ１１１へ進み、以降の動作を実行する。一方、カウント値Ｓが最大値Ｓ＿ｍａｘ以下である場合（ステップＳ１０６のＮＯ）、本動作は、ステップＳ３０３へ進む。
【００８１】
ステップＳ３０３では、ステップＳ１０３又はＳ３０４の復号により得られた推定値ｋＳの系列｛ｋＳ｝のうち、同様のストレスを受けた１以上のＥＣＣフレームの推定値ｋＳの系列｛ｋＳ｝と受信値ｙとの組（ｋＳ，ｙ）それぞれの度数から、推定ＬＬＲテーブルが作成される。具体的には、推定通信路行列集計部１０４が、推定ＬＬＲテーブル作成制御部１０３を経由して入力された複数のＥＣＣフレームのうち、同様のストレスを受けていると想定される１以上のＥＣＣフレームを特定する。つづいて、推定通信路行列集計部１０４は、特定した１以上のＥＣＣフレームそれぞれの推定値ｋＳの系列｛ｋＳ｝と、受信語バッファ１０６から入力された受信値ｙの系列｛ｙ｝とから（ｋＳ，ｙ）の組を作成し、それぞれの組の度数を集計する。そして、推定通信路行列集計部１０４は、現在の集計結果に基づいて、尤度Ｐ（ｙ｜ｋＳ）の一覧である推定通信路行列若しくは度数分布を作成し、作成した推定通信路行列若しくは度数分布を推定ＬＬＲテーブル作成部１０５に入力する。推定ＬＬＲテーブル作成部１０５は、入力された推定通信路行列若しくは度数分布に基づき、例えば上述した式（３）〜（６）を用いることで、推定ＬＬＲテーブルを作成する。作成した推定ＬＬＲテーブルは、推定ＬＬＲテーブル補正部２０１に入力されて補正される（ステップＳ２０１）。
【００８２】
次に、全てのＥＣＣフレームのうち、未だ復号に成功していないＥＣＣフレームの受信値ｙの系列｛ｙ｝が補正後の推定ＬＬＲテーブルを用いて復号される（ステップＳ３０４）。なお、個々のＥＣＣフレームの系列｛ｙ｝に対する復号は、上述した実施形態と同様であってよい。その後、本動作は、ステップＳ３０２へリターンする。
【００８３】
以上のように、本実施形態では、同様の通信路で雑音の影響を受けると思われる複数のＥＣＣフレームを一括で処理できる場合に、その全てのＥＣＣフレームの集計結果から推定ＬＬＲテーブルを作成する。それにより、推定ＬＬＲテーブルの作成に使用する（ｋ，ｙ）の組の数を増加させることが可能となるため、推定する通信路をより真の通信路に近づけることが可能となる。
【００８４】
なお、その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【００８５】
次に、上述した実施形態の効果について、具体例を挙げて説明する。なお、以下の説明では、第３の実施形態に着目するとともに、各ＥＣＣフレームが受けるストレスの条件を同一とするが、各ＥＣＣフレームが記録された場所のバラつきによって各ＥＣＣフレームの真の通信路が同一ではない場合を例示する。
【００８６】
図１０は、ある世代のＮＡＮＤ型フラッシュメモリに対し、あるストレスを与えた多数のＥＣＣフレームを集計することで得られた復号結果と、その補間曲線とを示す図である。図１０は、第２の実施形態で例示した補正（図８又は図９のステップＳ２０１参照）を行なわない場合に、繰返し回数Ｓ＿ｍａｘの値で復号特性がどのように変化するかを表している。
【００８７】
図１０において、横軸は、誤りビットの数を表し、縦軸は、復号失敗確率を表している。図１０における一つ一つの点は、特定の値の誤りビットを含んだＥＣＣフレームが複数観測された場合にその複数のＥＣＣフレームの中で復号失敗になったＥＣＣフレームの割合を表している。なお、補間曲線は視覚的な目安であって、その線の通りの復号失敗確率となることを保証しているわけではない。
【００８８】
また、曲線Ｌ１は、既定のＬＬＲテーブルを使用して復号した場合（第１のケースという）の復号特性を示す補間曲線である。
【００８９】
曲線Ｌ２は、既存の復号失敗結果に基づいて作成した推定ＬＬＲテーブルを使用して再復号した場合の復号特性を示す補間曲線である。曲線Ｌ３は、繰返し回数Ｓ＿ｍａｘを２とした場合の復号特性を示す補間曲線である。曲線Ｌ４は、繰返し回数Ｓ＿ｍａｘを５とした場合の復号特性を示す補間曲線である。
【００９０】
図１０から分かるように、繰返し回数Ｓ＿ｍａｘの増加により誤り訂正能力が向上していることが分かる。
【００９１】
また、図１１は、図１０で使用したのと同一のデータに対して、補正を行わなかった場合と、非常に強く尤度が最大値を取ると思われる値について、ＬＬＲ値の絶対値を大きくする補正を行なった場合との違いを表したグラフである。図１１の曲線Ｌ１と曲線Ｌ２は、図１０の曲線Ｌ１と曲線Ｌ４と同一である。図１１の曲線Ｌ３は、繰返し回数Ｓ＿ｍａｘを５とし、上記補正を行った場合の補間曲線である。
【００９２】
図１１から分かるように、あるストレスにおいて、補正によって誤り訂正能力が向上することが分かる。
【００９３】
（第４の実施形態）
次に、第４の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。なお、以下の説明において、第１〜第３の実施形態のいずれかと同様の構成及び動作については、それを引用することで、重複する説明を省略する。
【００９４】
第１の実施形態は、失敗した復号結果に基づいて推定ＬＬＲテーブルを作成する動作を１回以上繰り返すことで、推定する通信路を正しい通信路に近づける構成を備えていた。これに対し、第４の実施形態は、推定ＬＬＲテーブルを作成するために事後確率情報を利用することができる構成を備える。
【００９５】
本実施形態に係るメモリシステムは、第１の実施形態において図１を用いて説明したメモリシステム１と同様の構成を備えてよい。ただし、本実施形態では、図１における軟判定復号部１８２が図１２に示す軟判定復号部３８２に置き換えられる。
【００９６】
図１２に示すように、本実施形態に係る軟判定復号部３８２は、図４に示す軟判定復号部１８２と同様の構成に加え、図４における推定値を出力する復号器１０２が図１２に示す事後ＬＬＲを出力する復号器３０２に置き換えられる。事後ＬＬＲは、推定値の元になる情報であって、事後確率情報に関する対数尤度比であり、受信値の系列｛ｙ｝に加えて符号情報による推定も加わった軟判定復号部の出力である。事後ＬＬＲから推定値ｋが得られ、記録されたビットが‘０’である確率と‘１’である確率とが同じである通常のケースであれば、その値の正負がビット‘０’と‘１’に対応し、絶対値が復号器による書込み値の推定の信頼度と関係する。
【００９７】
復号器３０２の出力は、事後ＬＬＲに代わって外部値であってもよい。外部値とは、事後ＬＬＲから入力時点でのＬＬＲを引いたものである。事後ＬＬＲに代えて外部値を用いた場合でも第４の実施形態を実現できる。
【００９８】
また、本実施形態では、図４における推定値の系列｛ｋ｝を使用する推定ＬＬＲテーブル作成制御部１０３が、図１２における事後ＬＬＲの系列｛ｌ｝を使用する推定ＬＬＲテーブル作成制御部３０３に置き換えられる。
【００９９】
推定ＬＬＲテーブル作成制御部３０３での事後ＬＬＲの具体的な使用例を図１３を用いて説明する。図１３には、受信値の系列｛ｙ｝、事後ＬＬＲの系列｛ｌ｝、そして事後ＬＬＲの系列から得られる推定値の系列｛ｋ｝の一例が示されている。図１３において、縦に並んだ受信値、推定値及び事後ＬＬＲは、それぞれ同一のビットに関する情報である。一番右のビットに着目すると、受信値３と組になる事後ＬＬＲは＋５である。この値はプラスであるため、一番右のビットに関しては、ビット‘０’が推定値となる。この時、事後ＬＬＲの絶対値が５と小さい値ではないため、（ｋ＝０，ｙ＝３）という組が推定通信路行列集計部１０４で使用される。一方、右から二番目のビットに関しては、その事後ＬＬＲの絶対値が１と小さい値である。そのため、二番目のビットに関わる（ｋ＝１，ｙ＝０）は推定通信路行列集計部１０４で使用されない。なお、図１３では、絶対値が２以下の事後ＬＬＲに対応する推定値と受信値との組を推定通信路行列集計部１０４で使用しない場合が例示されているが、使用／不使用を判断する際に使用する事後ＬＬＲの絶対値に対する閾値は２に限定されず、種々変更することが可能である。
【０１００】
つづいて、本実施形態に係る復号動作を、図面を参照して詳細に説明する。図１４は、本実施形態に係る復号動作の概略例を示すフローチャートである。図１４に示すように、本実施形態に係る復号動作では、図５に示した第１の実施形態に係る復号動作と同様の動作において、ステップＳ１０７がステップＳＳ４０１〜Ｓ４０３に置き換えられている。また、図１４のステップＳ１０３及びＳ１０８では、復号結果として、推定値の系列｛ｋＳ｝の代わりに事後ＬＬＲの系列｛ｌＳ｝が出力される。
【０１０１】
ステップＳ４０１では、すなわち、ステップＳ１０３又はＳ１０８の復号に失敗し（ステップＳ１０４のＮＯ）、且つ、繰返し回数を示すカウント値Ｓが最大値Ｓ＿ｍａｘ以下である場合（ステップＳ１０６のＮＯ）、推定ＬＬＲテーブル作成制御部３０３は、ステップＳ１０３又はＳ１０８の復号により得られた事後ＬＬＲの系列｛ｌＳ｝から、絶対値が所定の閾値（図１３に示す例では２）以下である事後ＬＬＲを除外する（ステップＳ４０１）。つづいて、推定ＬＬＲテーブル作成制御部３０３は、残った事後ＬＬＲの系列｛ｌＳ’｝に対して推定値の系列｛ｋＳ’｝を生成する（ステップＳ４０２）。
【０１０２】
生成された推定値の系列｛ｋＳ’｝は、推定通信路行列集計部１０４に入力される。また、推定通信路行列集計部１０４には、絶対値が所定の閾値より大きい事後ＬＬＲに対応する受信値の系列｛ｙ’｝も入力される。したがって、ステップＳ４０３では、推定通信路行列集計部１０４が、推定ＬＬＲテーブル作成制御部１０３から入力された推定値の系列｛ｋＳ’｝と、受信語バッファ１０６から入力された受信値の系列｛ｙ’｝とから（ｋＳ’，ｙ’）の組を作成し、それぞれの組の度数を集計し、その集計結果に基づいて推定通信路行列若しくは度数分布を作成し、作成した推定通信路行列若しくは度数分布を推定ＬＬＲテーブル作成部１０５に入力する。これに対し、推定ＬＬＲテーブル作成部１０５は、入力された推定通信路行列若しくは度数分布に基づき、例えば上述した式（３）〜（６）を用いることで、推定ＬＬＲテーブルを作成する。なお、作成した推定ＬＬＲテーブルは、ＬＬＲ変換部１０１へ入力される。
【０１０３】
次に、本実施形態の効果について、具体例を挙げて説明する。図１５は、図１０で使用したデータと同一のデータに対して、補正を行わずに全ての（ｋ，ｙ）の組を推定通信路行列集計部１０４で使用した場合と、事後ＬＬＲの絶対値が小さい（ｋ，ｙ）の組を推定通信路行列集計部１０４で使用しない場合との違いを表したグラフである。図１５の曲線Ｌ１と曲線Ｌ２は図１０の曲線Ｌ１と曲線Ｌ４と同一である。図１５の曲線Ｌ３は、繰返し回数Ｓ＿ｍａｘを５とし、事後ＬＬＲの絶対値が小さい（ｋ，ｙ）を使用しなかった結果の補間曲線である。
【０１０４】
図１５からわかるように、あるストレスにおいて、使用する（ｋ，ｙ）の組に制限を付けることで誤り訂正能力が向上することが分かる。
【０１０５】
以上のように、本実施形態によれば、推定ＬＬＲテーブルの作成に事後確率情報を利用した場合でも、上述した第１〜第３の実施形態と同様の効果を奏することが可能である。また、本実施形態において、推定通信路行列集計部１０４で集計する（ｋ，ｙ）の組をその事後ＬＬＲの絶対値に基づいて制限することで、誤り訂正能力を向上することが可能となる。
【０１０６】
なお、その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。また、本実施形態では、第１の実施形態に係る構成をベースとして、推定ＬＬＲテーブルの作成に事後確率情報を利用する構成を適用した場合を例示したが、ベースとする構成は第１の実施形態に限られない。例えば、第２又は第３の実施形態に係る構成に対し、本実施形態を適用することも可能である。
【０１０７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０８】
１…メモリシステム、１０…メモリコントローラ、１１…制御部、１２…データバッファ、１３…メモリＩ／Ｆ、１４…符号化／復号部、１５…ホストＩ／Ｆ、１６…内部バス、１７…符号化部、１８…復号部、１０１…ＬＬＲ変換部、１０２，３０２…復号器、１０３，３０３…推定ＬＬＲテーブル作成制御部、１０４…推定通信路行列集計部、１０５…推定ＬＬＲテーブル作成部、１０６…受信語バッファ、１８１…硬判定復号部、１８２，２８２，３８２…軟判定復号部、２０１…推定ＬＬＲテーブル補正部。
【図１】
2019125910.tif 000010
【図２】
2019125910.tif 000011
【図３】
2019125910.tif 000012
【図４】
2019125910.tif 000013
【図５】
2019125910.tif 000014
【図６】
2019125910.tif 000015
【図７】
2019125910.tif 000016
【図８】
2019125910.tif 000017
【図９】
2019125910.tif 000018
【図１０】
2019125910.tif 000019
【図１１】
2019125910.tif 000020
【図１２】
2019125910.tif 000021
【図１３】
2019125910.tif 000022
【図１４】
2019125910.tif 000023
【図１５】
2019125910.tif 000024