(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-11
(45)【発行日】2022-03-22
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
H03M 13/45 20060101AFI20220314BHJP
G11C 16/26 20060101ALI20220314BHJP
G06F 11/10 20060101ALI20220314BHJP
【FI】
H03M13/45
G11C16/26 100
G06F11/10 672
(21)【出願番号】P 2018005143
(22)【出願日】2018-01-16
【審査請求日】2020-09-15
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】國分 直明
(72)【発明者】
【氏名】清岡 雅弘
(72)【発明者】
【氏名】野谷 嘉樹
(72)【発明者】
【氏名】櫻田 健次
(72)【発明者】
【氏名】渡邉 大毅
(72)【発明者】
【氏名】内川 浩典
【審査官】谷岡 佳彦
(56)【参考文献】
【文献】米国特許出願公開第2015/0188577(US,A1)
【文献】特開2014-150528(JP,A)
【文献】米国特許出願公開第2012/0213001(US,A1)
【文献】国際公開第2013/065334(WO,A1)
【文献】特開2017-168089(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 13/45
G11C 16/26
G06F 11/10
(57)【特許請求の範囲】
【請求項1】
不揮発性メモリと、
前記不揮発性メモリに記録されたデータを受信値として読み出すメモリインタフェースと、
前記不揮発性メモリから読み出された前記受信値を第1変換テーブルを用いて第1尤度情報に変換する変換部と、
前記第1尤度情報を復号する復号器と、
前記復号器による復号に成功した場合、前記復号により得られた復号結果である前記受信値に対する推定値を出力する制御部と、
前記復号器により前記第1尤度情報の復号に失敗した場合、前記復号により得られた復号結果に基づいて、第2変換テーブルを作成する作成部と、
を備え、
前記第1尤度情報の復号に失敗した場合、
前記復号器は、前記復号結果として事後確率情報を出力し、
前記制御部は、前記事後確率情報のうち所定の閾値よりも大きい事後確率情報から前記推定値を生成し、
前記作成部は、前記制御部により生成された推定値に基づいて前記第2変換テーブルを作成し、
前記変換部は
、前記第2変換テーブルを用いて前記受信値
を第2尤度情報に変換し、
前記復号器は、前記第2尤度情報を復号する
メモリシステム。
【請求項2】
前記作成部は、前記復号器が前記第2尤度情報の復号に失敗する度に、前記失敗した復号の結果に基づいて新たな第2変換テーブルを作成し、
前記変換部は、前記作成部が前記第2変換テーブルを作成する度に、前記第2変換テーブルを用いて前記受信値を前記第2尤度情報に変換し、
前記復号器は、前記受信値を前記第2尤度情報に変換する度に、前記第2尤度情報を復号する
請求項1に記載のメモリシステム。
【請求項3】
前記復号器が前記第1尤度情報又は前記第2尤度情報の復号に失敗した場合、前記受信値と前記推定値との組の出現数を集計する集計部をさらに備え、
前記集計部は、前記事後確率情報が前記所定の閾値よりも大きい前記推定値について、前記受信値と前記推定値との組の出現数を集計し、
前記作成部は、前記集計部による集計結果に基づいて前記第2変換テーブルを作成する
請求項2に記載のメモリシステム。
【請求項4】
前記作成部が作成した前記第2変換テーブルを補正する補正部をさらに備え、
前記変換部は、前記補正部による補正後の前記第2変換テーブルを用いて前記受信値を前記第2尤度情報に変換する
請求項1に記載のメモリシステム。
【請求項5】
前記変換部は、所定数の前記受信値で構成された受信値系列を単位として、前記受信値系列を前記所定数の前記第1尤度情報又は前記第2尤度情報で構成された尤度情報系列に変換し、
前記復号器は、前記尤度情報系列を単位として前記復号を実行する
請求項1に記載のメモリシステム。
【請求項6】
前記復号器が前記尤度情報系列の復号に失敗した場合、前記受信値と前記推定値との組の出現数を集計する集計部をさらに備え、
前記集計部は、前記復号器が複数の前記尤度情報系列に対して実行した復号により得られた前記受信値と前記推定値との組の出現数を集計し、
前記作成部は、前記集計部による集計結果に基づいて前記第2変換テーブルを作成する
請求項
5に記載のメモリシステム。
【請求項7】
前記制御部は、前記作成部が所定回数、前記第2変換テーブルの作成を実行した後に、前記復号器が前記第2尤度情報の復号に失敗した場合、復号失敗を出力する請求項1に記載のメモリシステム。
【請求項8】
前記第1尤度情報及び前記第2尤度情報は、対数尤度比である請求項1に記載のメモリシステム。
【請求項9】
前記不揮発性メモリに記録された前記データは、軟判定復号可能な誤り訂正符号で符号化されたデータである請求項1に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
以下の実施形態は、一般的に、メモリシステムに関する。
【背景技術】
【0002】
フラッシュメモリ等の不揮発性メモリを備えたメモリシステムでは、データ保護の観点から、一般的に、不揮発性メモリに書き込むデータを符号化する。このため、メモリシステムに記憶されたデータを読み出す際には、符号化されたデータに対する復号が行われる。
【0003】
不揮発性メモリに記録されたデータの読出し方式としては、例えば、硬判定読出し(ハードビットリードともいう)と軟判定読出し(ソフトビットリードともいう)とが存在する。不揮発性メモリの各メモリセルが1ビットのデータを格納するシングルレベルセル(SLC)である場合の硬判定読出しでは、各メモリセルに記録されているデータが‘0’又は‘1’のビット値として読み出される。一方、SLCに対する軟判定読出しでは、記録されているデータが‘0’であるか‘1’であるかの確率に関する情報として読み出される。この確率に関する情報には、対数尤度比(LLR:Log-Likelihood Ratio)が用いられるのが一般的である。LLRは、記録されたビットが‘0’である確率と‘1’である確率とを対数比で表現した情報である。軟判定読出しでは、不揮発性メモリから読み出されたデータがLLRテーブルと呼ばれる事前に作成されたテーブルに従ってLLR列に変換されて復号される。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-208309号公報
【文献】米国特許出願公開第2017/0125114号明細書
【文献】特開2010-109468号公報
【文献】米国特許第9183083号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の一つの実施形態は、通信路の不一致に基づく復号特性の劣化を抑えることが可能なメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
実施形態によれば、メモリシステムは、不揮発性メモリと、前記不揮発性メモリに記録されたデータを受信値として読み出すメモリインタフェースと、前記不揮発性メモリから読み出された前記受信値を第1変換テーブルを用いて第1尤度情報に変換する変換部と、前記第1尤度情報を復号する復号器と、前記復号器による復号に成功した場合、前記復号により得られた復号結果である前記受信値に対する推定値を出力する制御部と、前記復号器により前記第1尤度情報の復号に失敗した場合、前記復号により得られた復号結果に基づいて、第2変換テーブルを作成する作成部とを備え、前記変換部は、前記作成部が前記第2変換テーブルを作成した場合、前記第2変換テーブルを用いて前記受信値を前記第2尤度情報に変換し、前記復号器は、前記第2尤度情報を復号する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、第1の実施形態に係るメモリシステムの概略構成例を示すブロック図である。
【
図2】
図2は、第1の実施形態に係る復号部の構成例を示すブロック図である。
【
図3】
図3は、第1の実施形態に係るデータの読出し処理の一例を示すフローチャートである。
【
図4】
図4は、第1の実施形態に係る軟判定復号部のより詳細な構成例を示すブロック図である。
【
図5】
図5は、第1の実施形態に係る復号動作の概略例を示すフローチャートである。
【
図6】
図6は、第2の実施形態に係る軟判定復号部のより詳細な構成例を示すブロック図である。
【
図7】
図7は、閾値電圧分布と読出し電圧との関係を示す模式図である。
【
図8】
図8は、第2の実施形態に係る復号動作の概略例を示すフローチャートである。
【
図9】
図9は、第3の実施形態に係る復号動作の概略例を示すフローチャートである。
【
図10】
図10は、第3の実施形態に係るメモリシステムにより得られる復号特性とその補間曲線とを示す図である。
【
図11】
図11は、第3の実施形態に係るメモリシステムにより得られる他の復号特性とその補間曲線とを示す図である。
【
図12】
図12は、第4の実施形態に係る軟判定復号部のより詳細な構成例を示すブロック図である。
【
図13】
図13は、第4の実施形態における推定LLRテーブル作成制御部での事後LLRの具体的な使用例を示す図である。
【
図14】
図14は、第4の実施形態に係る復号動作の概略例を示すフローチャートである。
【
図15】
図15は、第4の実施形態に係るメモリシステムにより得られる復号特性とその補間曲線とを示す図である。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、実施形態に係るメモリシステムを詳細に説明する。なお、以下の実施形態により本発明が限定されるものではない。
【0009】
また、実施形態を説明するにあたり、用語について以下のように定義する。
「通信路(ストレスともいう)」とは、書込み値(送信値ともいう)xへの雑音の影響を表す確率モデルであり、通信路行列で特徴付けられるものである。なお、通信路行列を特徴付ける要因としては、いわゆるプログラムディスターブやデータリテンションやリードディスターブや温度交差などが考えられる。
「尤度」とは、ある書込み値xが与えられたときに通信路の出力値(受信値ともいう)yが得られる条件付き確率P(y|x)である。
「通信路行列」とは、尤度を全ての(x,y)の組に関して記載した行列である。
「対数尤度比(LLR)」とは、上述したように、記録されたビットが‘0’である時の尤度と‘1’である時の尤度とを対数比で表現した情報であり、尤度情報とも称される。
「LLRテーブル」とは、通信路の出力値yと復号器の入力であるLLRとの対応関係を示すテーブルである。したがって、通信路行列から得られた値ln[P(y|x=0)/P(y|x=1)]が出力値yに対応するLLR値となる。一般的に、異なる通信路行列に対しては、異なるLLRテーブルが用意される。
「既定のLLRテーブル」とは、デフォルトで使用されるLLRテーブルである。この既定のLLRテーブルには、例えば、多様な通信路での訂正が想定される中で、典型的に使用されそうな通信路から得られたLLRテーブルが用いられる。
「ECCフレーム」とは、復号器が動作するためのデータブロックであり、受信値の系列から符号語を再構成するためのデータブロックのことである。
「復号結果の推定書込み値(推定値ともいう)k」は、復号器の出力である一つ一つの推定書込み値である。したがって、復号の終了時には、ECCフレームに対応する推定書込み値kの系列{k}が得られる。なお、復号に成功するとは、答えの系列{x}と復号結果の系列{k}とが完全に一意することを意味する。一方、復号に失敗するとは、ECCフレーム内でx≠kとなる箇所が発生し、系列{x}と{k}とが一致しないことを意味する。
「真の通信路行列」とは、正確な答えであるxに基づいた条件付き確率P(y|x)を要素とした通信路行列である。一方、「推定通信路行列」とは、復号器から出力された推定書込み値kを用いた条件付き確率P(y|k)を要素とした通信路行列である。
「推定LLRテーブル」とは、推定通信路行列に基づいたLLRテーブルである。
【0010】
(第1の実施形態)
まず、第1の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。
図1は、第1の実施形態に係るメモリシステムの概略構成例を示すブロック図である。
図1に示すように、メモリシステム1は、メモリコントローラ10と不揮発性メモリ20とを備える。メモリシステム1は、ホスト30と接続可能であり、
図1ではホスト30と接続された状態が示されている。ホスト30は、例えば、パーソナルコンピュータ、携帯端末などの電子機器であってよい。
【0011】
不揮発性メモリ20は、データを不揮発に記憶する不揮発性メモリであり、例えば、NAND型フラッシュメモリ(以下、単にNANDメモリという)である。以下の説明では、不揮発性メモリ20としてNANDメモリが用いられた場合を例示するが、不揮発性メモリ20として3次元構造フラッシュメモリ、ReRAM(Resistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)等のNANDメモリ以外の記憶装置を用いることも可能である。また、不揮発性メモリ20が半導体メモリであることは必須ではなく、半導体メモリ以外の種々の記憶媒体に対して本実施形態を適用することも可能である。
【0012】
メモリシステム1は、いわゆるSSD(Solid State Drive)や、メモリコントローラ10と不揮発性メモリ20とが1つのパッケージとして構成されるメモリカード等、不揮発性メモリ20を備える種々のメモリシステムであってよい。
【0013】
メモリコントローラ10は、ホスト30からの書込み要求に従って不揮発性メモリ20への書込みを制御する。また、ホスト30からの読出し要求に従って不揮発性メモリ20からの読み出しを制御する。メモリコントローラ10は、例えばSoC(System On a Chip)として構成される半導体集積回路である。メモリコントローラ10は、ホストI/F(ホストインタフェース)15、メモリI/F(メモリインタフェース)13、制御部11、符号化/復号部(コーデック)14及びデータバッファ12を備える。ホストI/F15、メモリI/F13、制御部11、符号化/復号部14及びデータバッファ12は、内部バス16で相互に接続されている。以下で説明するメモリコントローラ10の各構成要素の動作の一部又は全部は、CPU(Central Processing Unit)がファームウエアを実行することによって実現されてもよいし、ハードウエアで実現されてもよい。
【0014】
ホストI/F15は、ホスト30との間のインタフェース規格に従った処理を実施し、ホスト30から受信した命令、書込み対象のユーザデータなどを内部バス16に出力する。また、ホストI/F15は、不揮発性メモリ20から読み出されて復元されたユーザデータ、制御部11からの応答などをホスト30へ送信する。
【0015】
メモリI/F13は、制御部11の指示に基づいて、不揮発性メモリ20への書込み処理を行う。また、メモリI/F13は、制御部11の指示に基づいて、不揮発性メモリ20からの読み出し処理を行う。
【0016】
制御部11は、メモリシステム1の各構成要素を統括的に制御する。制御部11は、ホスト30からホストI/F15経由で命令を受けた場合に、その命令に従った制御を行う。例えば、制御部11は、ホスト30からの命令に従って、不揮発性メモリ20へのユーザデータ及びパリティの書き込みをメモリI/F13へ指示する。また、制御部11は、ホスト30からの命令に従って、不揮発性メモリ20からのユーザデータ及びパリティの読み出しをメモリI/F13へ指示する。
【0017】
また、制御部11は、ホスト30から書込み要求を受信した場合、データバッファ12に蓄積されるユーザデータに対して、不揮発性メモリ20上の格納領域(メモリ領域)を決定する。すなわち、制御部11は、ユーザデータの書込み先を管理する。ホスト30から受信したユーザデータの論理アドレスと該ユーザデータが格納された不揮発性メモリ20上の格納領域を示す物理アドレスとの対応はアドレス変換テーブルとして格納される。
【0018】
また、制御部11は、ホスト30から読出し要求を受信した場合、読出し要求により指定された論理アドレスを上述のアドレス変換テーブルを用いて物理アドレスに変換し、該物理アドレスからの読み出しをメモリI/F13へ指示する。
【0019】
NANDメモリでは、一般に、ページと呼ばれるデータ単位で、書き込み及び読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。本実施形態では、この同一のワード線に接続される複数のメモリセルをメモリセルグループと呼ぶ。メモリセルがシングルレベルセル(SLC:Single Level Cell)である場合は、1つのメモリセルグループが1ページに対応する。メモリセルがマルチレベルセル(MLC:Multiple Level Cell)である場合は、1つのメモリセルグループが複数ページに対応する。なお、本説明において、MLCには、TLC(Triple Level Cell)やQLC(Quad Level Cell)等が含まれる。また、各メモリセルはワード線に接続するとともにビット線にも接続される。したがって、各メモリセルは、ワード線を識別するアドレスとビット線を識別するアドレスとで識別することが可能である。
【0020】
データバッファ12は、メモリコントローラ10がホスト30から受信したユーザデータを不揮発性メモリ20へ記憶するまでに一時格納する。また、データバッファ12は、不揮発性メモリ20から読み出したユーザデータをホスト30へ送信するまでに一時格納する。データバッファ12には、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリを用いることができる。なお、データバッファ12は、メモリコントローラ10に内蔵されずに、メモリコントローラ10の外部に搭載されてもよい。
【0021】
ホスト30から送信されるユーザデータは、内部バス16に転送されてデータバッファ12に一旦格納される。符号化/復号部14は、不揮発性メモリ20に格納されるユーザデータを符号化して符号語を生成する。また、符号化/復号部14は、不揮発性メモリ20から読み出された受信語を復号してユーザデータを復元する。そこで符号化/復号部14は、符号化部(Encoder)17と復号部(Decoder)18を備える。なお、符号化/復号部14により符号化されるデータには、ユーザデータ以外にも、メモリコントローラ10内部で用いる制御データ等が含まれてもよい。
【0022】
次に、本実施形態の書込み処理について説明する。制御部11は、不揮発性メモリ20への書込み時に、ユーザデータの符号化を符号化部17に指示する。その際、制御部11は、不揮発性メモリ20における符号語の格納場所(格納アドレス)を決定し、決定した格納場所もメモリI/F13へ指示する。
【0023】
符号化部17は、制御部11からの指示に基づいて、データバッファ12上のユーザデータを符号化して符号語を生成する。符号化方式としては、後述するように、例えば、BCH(Bose-Chaudhuri-Hocquenghem)符号やRS(Reed-Solomon)符号のような代数的符号を用いた符号化方式や、LDPC(Low-Density Parity-Check)符号のような疎グラフに基づく符号を用いた符号化方式を採用することができる。メモリI/F13は、制御部11から指示された不揮発性メモリ20上の格納場所へ符号語を格納する制御を行う。
【0024】
次に、本実施形態の不揮発性メモリ20からの読出し時の処理について説明する。制御部11は、不揮発性メモリ20からの読出し時に、不揮発性メモリ20上のアドレスを指定してメモリI/F13へ読み出しを指示する。また、制御部11は、復号部18へ復号の開始を指示する。メモリI/F13は、制御部11の指示に従って、不揮発性メモリ20の指定されたアドレスから受信語を読み出し、読み出した受信語を復号部18に入力する。復号部18は、この不揮発性メモリ20から読み出された受信語を復号する。
【0025】
復号部18は、不揮発性メモリ20から読み出された受信語を復号する。
図2は、本実施形態に係る復号部の構成例を示すブロック図である。
図2に示すように、復号部18は、硬判定値を入力とし、その結果として硬判定値を出力する硬判定復号を実行する硬判定復号部181と、軟判定値を入力とし、その結果として軟判定値を出力する軟判定復号を実行する軟判定復号部182とを備える。一般に、軟判定復号は、硬判定復号より誤り訂正能力は高いが処理時間が長いという特徴を持つ。そこで、例えば硬判定復号部181がまず硬判定復号を実行し、この硬判定復号により復号できなかった場合に、軟判定復号部182が軟判定復号を実行するように構成することもできる。ただし、本実施形態は、このような構成に限定されず、例えば硬判定復号部181が省略されてもよい。
【0026】
図3は、第1の実施形態に係るデータの読出し処理の一例を示すフローチャートである。制御部11は、メモリI/F13に対して、読み出すアドレスを指定してハードビットリード(HBR)により不揮発性メモリ20からデータを読み出すよう指示し、これに対し、メモリI/F13はハードビットリードを実行する(ステップS1)。ハードビットリードとは、読出し対象のデータを構成する各ビットを0または1の硬判定値の受信語として読出す読出し方法である。読み出された硬判定値の受信語は、例えば、内部バス16を経由して符号化/復号部14の復号部18に入力される。
【0027】
不揮発性メモリ20がNANDメモリの場合、データの書き込み時に、書込み値xに応じて、フローティングゲートの電子数(電荷量)が複数の分布(しきい値分布)のいずれかに対応するように電子を注入する。ここでは、説明を簡略化するため、1つのメモリセルが1ビットを記憶するシングルレベルセル(SLC)の例について説明する。SLCの場合、2つの分布のうちいずれか一方が0に対応し、他方が1に対応する。メモリセルに、電圧を印加した場合、該メモリセルの電荷量に応じた電圧値以上の電圧を印加すると電流が流れ、該電圧値未満の電圧を印加すると電流が流れない。したがって、この境目となる電圧はメモリセルごとに該メモリセルの電荷量に応じて決まる。このメモリセルの電荷量に応じて決まる電圧値を、ここでは閾値電圧とよぶ。初期状態で、2つの閾値電圧分布のいずれかに対応するように電荷を注入して、読出し時には、2つの閾値電圧分布を区切る基準読出し電圧(基準リードレベルともいう)をメモリセルに印加することにより、このメモリセルに記憶されているデータが1であるか0であるかを判定することができる。
【0028】
ハードビットリードでは、メモリセルに基準読出し電圧が印加されて、メモリセルに記憶されているデータが1であるか0であるかが判定され、判定された結果が受信値yとして出力される。なお、ハードビットリードの際に印加する読出し電圧は、基準読出し電圧から変更されることもある。
【0029】
図3の説明に戻る。制御部11は、復号部18に硬判定復号の実施を指示し、これに対し、復号部18の硬判定復号部181は、受信語に対して硬判定復号を行う(ステップS2)。具体的には、硬判定復号部181は、受信語に対して、例えば限界距離復号等の復号を行う。ただし、硬判定復号部181が行う硬判定復号は、限界距離復号に限定されずどのような硬判定復号であってもよい。
【0030】
ステップS2の後、硬判定復号部181は、復号に成功したか否かを判断し、この判断結果を制御部11へ通知する。制御部11は、硬判定復号部181からの通知に基づいて、復号に成功したか否かを判断し(ステップS3)、復号に成功した場合(ステップS3のYES)、読出し処理を終了する。
【0031】
一方、復号に失敗していた場合(ステップS3のNO)、制御部11は、メモリI/F13に対して、読み出すアドレスを指定してソフトビットリード(SBR)により不揮発性メモリ20からデータを読み出すよう指示し、これに対し、メモリI/F13は、各メモリセルが保持するデータをハードビットリードで使用する基準読出し電圧に対して所定の刻み幅で設定された1以上の読出し電圧でも読み出した結果も含んだ受信値yとして読み出す読出しであるソフトビットリードを実行する(ステップS4)。読み出された受信値yは、例えばECCフレーム単位の系列{y}として、内部バス16を経由して符号化/復号部14の復号部18に入力される。
【0032】
ステップS5では、制御部11が復号部18に軟判定復号の実施を指示し、これに対し、復号部18の軟判定復号部182が、ECCフレーム単位で入力された受信値yの系列{y}に対して、軟判定復号を実行する(ステップS5)。その後、本動作は、ステップS3へリターンする。なお、本実施形態に係る軟判定復号の詳細については、次に詳述する。
【0033】
つづいて、本実施形態に係る軟判定復号について詳細に説明する。そこで、まず、「軟判定復号に必要な通信路の推定」と「LLRテーブル」との関係について説明する。なお、以下の説明では、簡単のため、送信値xが取り得る値を0,1とし、受信値yが取り得る値を0,1,2,3とする。
【0034】
軟判定復号では、復号対象の通信路が決定すると、不揮発性メモリ20に書き込まれる送信値xが記録されるとともに、不揮発性メモリ20から読み出された送信値xがどの受信値yに変化したかが記録される。そこで本説明では、以下の表1に示すようなヒストグラムが得られたと仮定する。
【表1】
【0035】
表1には、8128回の観測の結果、(x=0,y=0)という組が1回観測され、(x=1,y=0)という組が3375回観測され、(x=0,y=1)という組が125回観測され、(x=1,y=1)という組が1331回観測され、(x=0,y=2)という組が729回観測され、(x=1,y=2)という組が343回観測され、(x=0,y=3)という組が2197回観測され、(x=1,y=3)という組が27回観測されたことが示されている。
【0036】
真の通信路の条件付き確率P(y|x)は、このような表1に基づいて以下のように推定される。すなわち、(x,y)の組それぞれの観測回数(以下、度数ともいう)をF(x,y)とすると、例えば、(x=0,y=0)という組が観測される条件付き確率P(y=0|x=0)は、以下の式(1)のように求まり、また、(x=1,y=0)という組が観測される条件付き確率Pは、以下の式(2)のように求まる。
【数1】
【数2】
【0037】
そこで、想定した通信路に対しては、例えば受信値yが0である場合に以下の式(3)から求まるLLR値が割り当てられるように、LLRテーブルが作成される。式(3)のLLR値は小数点第二位で四捨五入している。
【数3】
【0038】
同様に、他の受信値yが1~3のそれぞれである場合に対しても、以下の式(4)~(6)から求まるLLRが割り当てられるように、LLRテーブルが作成される。式(4)~(6)のLLR値は小数点第二位で四捨五入している。
【数4】
【数5】
【数6】
【0039】
上記のようにして作成されるLLRテーブルは、十分な数の(x,y)の組を収集することで真の通信路行列から作成されたLLRテーブルに十分に近づけることが可能である。すなわち、十分な数の(x,y)の組を収集することができれば、正確に「軟判定復号に必要な通信路の推定」を行なうことが可能となり、それにより、復号対象の通信路に対して理想的な「LLRテーブル」を作成することが可能となる。
【0040】
つづいて、「通信路の推定」について説明する。例えば、復号対象となる通信路の数が非常に多い場合、全ての異なる通信路について事前にLLRテーブルを用意できない場合がある。そのような場合、運よく復号に成功していれば、誤訂正にならない確率で、推定される送信値(以下、推定値という)kが送信値xと一致している。そこで、送信値xの代わりに推定値kを使用して上記のようなLLRテーブルの作成を実行し、これにより作成されたLLRテーブルを同様の通信路で復号失敗したECCフレームに使用する。これにより、LLRテーブルを事前に用意できなかった場合でも復号特性の劣化を抑えることができる。
【0041】
ただし、復号に失敗していた場合でも、この復号によって誤りビットの数がある程度下げられている場合には、推定値kの系列{k}を使用して上記のLLRテーブル作成を実行し、これにより改めて得られたLLRテーブル(以下、推定LLRテーブルという)を使用することで、復号に成功する場合がある。
【0042】
このように、メモリシステムにおける復号では、事前に想定していた通信路と実際の通信路とが異なっていると、復号に失敗する蓋然性が高まるが、失敗した復号結果に基づくことで、推定する通信路を正しい通信路に近づけることが可能な場合がある。
【0043】
そこで本実施形態では、復号に失敗した場合でも、その失敗の結果から通信路を推定する手順、言い換えれば、LLRテーブルを作成する手順を1回以上行うことで、通信路の不一致に基づく復号失敗を救出することを可能にする。
【0044】
図4は、本実施形態に係る軟判定復号部のより詳細な構成例を示すブロック図である。
図4に示すように、軟判定復号部182は、LLR変換部101と、復号器102と、推定LLRテーブル作成制御部103と、推定通信路行列集計部104と、推定LLRテーブル作成部105と、受信語バッファ106とを備える。
【0045】
この構成において、受信語バッファ106は、受信値yの系列{y}をECCフレーム単位で保存する。具体的には、受信語バッファ106は、不揮発性メモリ20から読み出された受信値yの系列{y}を、ECCフレーム単位で入力して保存する。また、受信語バッファ106は、後述する推定LLRテーブル作成制御部103から、出力開始の指示や、どのECCフレームに関連する受信値yの系列{y}を出力するかを指定する情報、若しくは、ECCフレーム内の特定の受信値yを出力するかを指定する情報を入力する。そして、受信語バッファ106は、出力開始の指示に従い、現在保存しているECCフレーム単位の受信値yのうち、指定された系列{y}又は指定された受信値yを推定通信路行列集計部104へ出力する。
【0046】
推定LLRテーブル作成制御部103は、特定の(k,y)の組から推定通信路行列を逐次的に作成する。具体的には、推定LLRテーブル作成制御部103には、復号器102からの復号結果としてのECCフレーム単位の推定値kの系列{k}が入力される。また、推定LLRテーブル作成制御部103には、復号に成功したか失敗したか等の復号後に得られる情報も入力される。そして、推定LLRテーブル作成制御部103は、入力された推定値kの系列{k}に対し、外部へ出力するか、推定通信路行列集計部104へ出力するかを判断し、判断した先へ推定値kの系列{k}を出力する。また、推定LLRテーブル作成制御部103は、受信語バッファ106に出力開始を指示する信号、及び、推定通信路行列集計部104を制御するための制御信号を出力する。
【0047】
推定通信路行列集計部104は、(k,y)の組を集計して推定通信路行列を作成し保存する。具体的には、推定通信路行列集計部104は、推定LLRテーブル作成制御部103によって選定されたECCフレーム単位の推定値kの系列{k}と、受信語バッファ106からの出力であって、推定LLRテーブル作成制御部103から入力された推定値kの系列{k}と同じECCフレームに所属する受信値yの系列{y}とを入力する。そして、推定通信路行列集計部104は、入力された系列{k}及び{y}から(k,y)の組を集計し、これにより得られた現在の集計結果に基づいて、尤度P(y|k)の一覧である推定通信路行列若しくは尤度Pの元となる度数分布を作成する。また、推定通信路行列集計部104は、作成した推定通信路行列若しくは度数分布を推定LLRテーブル作成部105へ出力する。なお、推定通信路行列集計部104には、推定LLRテーブル作成制御部103から、集計結果のリセット信号や、出力のタイミングを知らせる制御信号等も入力される。
【0048】
推定LLRテーブル作成部105は、推定通信路行列集計部104から入力された推定通信路行列又は度数分布から推定LLRテーブルを計算する。そして、推定LLRテーブル作成部105は、計算により得られた推定LLRテーブルをLLR変換部101へ出力する。
【0049】
LLR変換部101は、推定LLRテーブル作成制御部105から指定されたLLRテーブル又は推定LLRテーブルを用いることで、不揮発性メモリ20から読み出されて入力された受信値yをLLR値に変換する。具体的には、LLR変換部101へは、不揮発性メモリ20から読み出された受信値yの系列{y}が入力される。また、LLR変換部101には、受信値yとLLR値との変換に使用される既定のLLRテーブルと、同じく受信値yとLLR値との変換に使用される推定LLRテーブル作成部105からのLLRテーブルとも入力される。さらに、LLR変換部101には、推定LLRテーブル作成制御部103から、使用するLLRテーブルの指定情報も入力される。そして、LLR変換部101は、推定LLRテーブル作成制御部103から指定されたLLRテーブルを用いて受信値yを変換することで得られたLLR値の系列を復号器102へ出力する。
【0050】
復号器102は、ECCフレーム単位のLLR値の系列から復号に関する情報や推定値kの系列{k}を計算する。具体的には、復号器102は、LLR変換部101からLLR値の系列を入力する。なお、復号器102には、一度の復号でECCフレームに対応する系列が入力される。そして、復号器102は、入力されたLLR値の系列を復号することで得られた推定値kの系列{k}を推定LLRテーブル作成制御部103へ出力する。なお、復号器102は、一度の復号の結果として、ECCフレームに対応する系列{k}を出力する。また、復号器102は、復号の成否など、復号で得られた情報も推定LLRテーブル作成制御部103へ出力する。
【0051】
つづいて、本実施形態に係る復号動作を、図面を参照して詳細に説明する。
図5は、本実施形態に係る復号動作の概略例を示すフローチャートである。
図5に示すように、本動作では、まず、メモリI/F13によって不揮発性メモリ20から読み出されたECCフレーム単位の受信値yの系列{y}が軟判定復号部182に入力される(ステップS101)。軟判定復号部182に入力された系列{y}は、受信語バッファ106に保存されると共に、LLR変換部101に入力される。
【0052】
次に、例えば推定LLRテーブル作成制御部103が、推定LLRテーブル作成の繰返し回数をカウントする不図示のカウンタのカウント値Sをリセット(S=0)する(ステップS102)。つづいて、入力された受信値yの系列{y}が既定のLLRテーブルを用いて復号される(ステップS103)。具体的には、推定LLRテーブル作成制御部103が、例えばカウント値Sが0であることに基づき、入力された受信値yの系列{y}に対して使用するLLRテーブルを既定のLLRテーブルとする旨の指示をLLR変換部101に入力する。LLR変換部101は、指定された既定のLLRテーブルを用いて、受信値yの系列{y}をLLR値の系列に変換し、これにより得られたLLR値の系列を復号器102に入力する。復号器102は、入力されたLLR値の系列を復号し、その結果として得られた推定値kの系列{k}と、復号の成否などの情報とを推定LLRテーブル作成制御部103へ出力する。なお、以下の説明では、カウント値Sのときに得られた推定値kをkSとし、推定値kSの系列を復号系列{kS}とする。
【0053】
次に、例えば推定LLRテーブル作成制御部103が、復号器102から入力された情報に基づいて、復号に成功したか否かを判断する(ステップS104)。復号に成功していた場合(ステップS104のYES)、本動作は、ステップS109へ進む。一方、復号に失敗していた場合(ステップS104のNO)、例えば推定LLRテーブル作成制御部103が、カウント値Sを1インクリメントする(ステップS105)。つづいて、推定LLRテーブル作成制御部103は、カウント値Sが繰返し回数の最大値S_maxより大きいか否かを判定する(ステップS106)。この最大値S_maxは、復号に成功するまで失敗した復号結果に基づく推定LLRテーブルの作成(ステップS104~S108)が繰り返されることを回避するための制限値である。カウント値Sが最大値S_maxより大きい場合(ステップS106のYES)、本動作は、ステップS111へ進む。一方、カウント値Sが最大値S_max以下である場合(ステップS106のNO)、本動作は、ステップS107へ進む。
【0054】
ステップS107では、ステップS103又はS108の復号により得られた推定値kSと受信値yとの組(kS,y)それぞれの度数から、推定LLRテーブルが作成される。具体的には、推定通信路行列集計部104が、推定LLRテーブル作成制御部103を経由して入力された推定値kSの系列{kS}と、受信語バッファ106から入力された受信値yの系列{y}とから(kS,y)の組を作成し、それぞれの組の度数を集計する。そして、推定通信路行列集計部104は、現在の集計結果に基づいて、尤度P(y|kS)の一覧である推定通信路行列若しくは度数分布を作成し、作成した推定通信路行列若しくは度数分布を推定LLRテーブル作成部105に入力する。推定LLRテーブル作成部105は、入力された推定通信路行列若しくは度数分布に基づき、例えば上述した式(3)~(6)を用いることで、推定LLRテーブルを作成する。作成した推定LLRテーブルは、LLR変換部101へ入力される。
【0055】
次に、受信値yの系列{y}が推定LLRテーブルを用いて復号される(ステップS108)。具体的には、推定LLRテーブル作成制御部103が、例えば非零のカウント値Sに基づき、受信値yの系列{y}に対して使用するLLRテーブルを新たに作成された推定LLRテーブルとする旨の指示をLLR変換部101に入力する。LLR変換部101は、指定された推定LLRテーブルを用いて、受信値yの系列{y}をLLR値の系列に変換し、これにより得られたLLR値の系列を復号器102に入力する。復号器102は、入力されたLLR値の系列を復号し、その結果として得られた推定値kSの復号系列{kS}と、復号の成否などの情報とを推定LLRテーブル作成制御部103へ出力する。その後、本動作は、ステップS104へリターンする。
【0056】
ステップS109、すなわち、ステップS103又はS108の復号に成功していた場合(ステップS104のYES)、復号成功が例えば推定LLRテーブル作成制御部103から制御部11(
図1参照)へ通知される。また、推定LLRテーブル作成制御部103からは、復号により得られた推定値k
Sの復号系列{k
S}も出力される(ステップS110)。その後、本動作が終了する。なお、出力された復号系列{k
S}は、例えば、データバッファ12(
図1参照)に蓄積され、書込み値であるユーザデータに復元された後、読出し要求を発行したホスト30へ送信される。
【0057】
また、ステップS111、すなわち、カウント値Sが最大値S_maxに達するまで推定LLRテーブルの作成を繰り返しても復号に成功しなかった場合(ステップS106のYES)には、復号失敗が例えば推定LLRテーブル作成制御部103から制御部11(
図1参照)へ通知され、本動作が終了する。これに対し、制御部11は、例えば、要求されたデータの読出しエラーを読出し要求を発行したホスト30へ送信する。
【0058】
以上のように、本実施形態では、復号に失敗した場合でも、この失敗した復号により得られた推定値kの系列{k}を使用して、推定LLRテーブルの作成を1回以上実行する。これにより、推定する通信路を正しい通信路に近づけることが可能になる。その結果、通信路の不一致に基づく復号失敗を救済できる可能性が高まるため、通信路の不一致に基づく復号特性の劣化を抑えることが可能なメモリシステムを実現することができる。
【0059】
(第2の実施形態)
次に、第2の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。なお、以下の説明において、第1の実施形態と同様の構成及び動作については、それを引用することで、重複する説明を省略する。
【0060】
第1の実施形態は、失敗した復号結果に基づいて推定LLRテーブルを作成する動作を1回以上繰り返すことで、推定する通信路を正しい通信路に近づける構成を備えていた。これに対し、第2の実施形態は、第1の実施形態と同様にして作成された推定LLRテーブルをさらに補正する構成を備える。
【0061】
本実施形態に係るメモリシステムは、第1の実施形態において
図1を用いて説明したメモリシステム1と同様の構成を備えてよい。ただし、本実施形態では、
図4における軟判定復号部182が
図6に示す軟判定復号部282に置き換えられる。
【0062】
図6に示すように、本実施形態に係る軟判定復号部282は、
図4に示す軟判定復号部182と同様の構成に加え、推定LLRテーブル補正部201をさらに備える。推定LLRテーブル201は、例えば推定LLRテーブル作成制御部103からの指示に従い、推定LLRテーブル作成部105で作成された推定LLRテーブルを補正し、補正後の推定LLRテーブルをLLR変換器101に入力する。
【0063】
ここで、推定LLRテーブル補正部201が実行する補正の一例について説明する。
図7は、不揮発性メモリ20を構成する各メモリセルが1ビットのデータを記録するシングルレベルセル(SLC)である場合の閾値電圧分布と読出し電圧との関係を示す模式図である。
図7において、Er分布は、例えば‘1’のデータが書き込まれたメモリセルの閾値電圧の分布を示し、A分布は、例えば‘0’のデータが書き込まれたメモリセルの閾値電圧の分布を示している。また、Vr1~Vr7は、メモリセルからデータを読み出す際に使用する読出し電圧(以下、リードレベルという)の例を示している。なお、Vr1~Vr7のうち、Vr4は、硬判定読出し(ハードビットリード)の際に使用するリードレベルの例を示し、Vr1~Vr3及びVr5~Vr7は、軟判定読出(ソフトビットリード)の際に使用するリードレベルの例を示している。ただし、ソフトビットリードの際に使用されるリードレベルには、Vr4が含まれてもよい。
【0064】
このような閾値電圧分布に対し、メモリセルの閾値電圧が例えばEr分布のピーク付近の電圧である場合、そのメモリセルが保持するデータの値は‘1’である可能性が高い。同様に、メモリセルの閾値電圧が例えばA分布のピーク付近の電圧である場合、そのメモリセルが保持するデータの値は‘0’である可能性が高い。そこで、このような場合に推定LLRテーブル補正部201が実行する補正の一例としては、読出しデータからメモリセルの閾値電圧がいずれかの分布のピーク付近にあると認められる場合には、その分布に対応する値である確率が高いとして、そのLLR値の絶対値が高い値となるように補正する。
【0065】
また、メモリセルの閾値電圧が例えばEr分布とA分布との境界付近の電圧である場合、そのメモリセルが保持するデータの値が‘1’である可能性と‘0’である可能性とはほぼ同等である。そこで、このような場合に推定LLRテーブル補正部201が実行する補正の一例としては、読出しデータからメモリセルの閾値電圧が隣接する分布の境界付近にあると認められる場合には、いずれの分布に対応する値であるかが不確定であるとして、そのLLR値の絶対値が低い値となるように補正する。その際、LLR値の正負が反転してもよい。
【0066】
なお、補正の方法としては、LLR値の絶対値を固定値とする方法や、LLR値の絶対値に対して所定の値を加算又は減算する方法など、種々の方法を適用することが可能である。
【0067】
つづいて、本実施形態に係る復号動作を、図面を参照して詳細に説明する。
図8は、本実施形態に係る復号動作の概略例を示すフローチャートである。
図8に示すように、本実施形態に係る復号動作は、
図5に示した第1の実施形態に係る復号動作と同様の動作において、ステップS108がステップS201~S202に置き換えられている。
【0068】
すなわち、本実施形態では、ステップS103又はS202の復号により得られた推定値kSと受信値yとの組(kS,y)それぞれの度数から推定LLRテーブルを作成すると(ステップS107)、作成した推定LLRテーブルが補正される(ステップS201)。具体的には、推定LLRテーブル作成部105によって作成された推定LLRテーブルが推定LLRテーブル補正部201に入力されると、推定LLRテーブル補正部201は、推定LLRテーブル作成制御部103から入力された補正情報に基づいて推定LLRテーブルを補正し、補正後の推定LLRテーブルをLLR変換部101に入力する。
【0069】
次に、受信値yの系列{y}が補正後の推定LLRテーブルを用いて復号される(ステップS202)。具体的には、推定LLRテーブル作成制御部103が、例えば非零のカウント値Sに基づき、受信値yの系列{y}に対して使用するLLRテーブルを新たに作成されて補正された推定LLRテーブルとする旨の指示をLLR変換部101に入力する。LLR変換部101は、指定された補正後の推定LLRテーブルを用いて、受信値yの系列{y}をLLR値の系列に変換し、これにより得られたLLR値の系列を復号器102に入力する。復号器102は、入力されたLLR値の系列を復号し、その結果として得られた推定値kSの復号系列{kS}と、復号の成否などの情報とを推定LLRテーブル作成制御部103へ出力する。
【0070】
以上のように、本実施形態では、失敗した復号結果に基づいて作成された推定LLRテーブルを補正する構成を備える。それにより、本実施形態では、ストレスにとって補正が適切であれば、より安定して復号に成功するように推定LLRテーブルを補正することが可能となる。
【0071】
なお、その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【0072】
(第3の実施形態)
次に、第3の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。なお、以下の説明において、第1又は第2の実施形態と同様の構成及び動作については、それを引用することで、重複する説明を省略する。
【0073】
上述した第1又は第2の実施形態では、1つのECCフレームの復号結果に基づいて推定LLRテーブルを作成する場合を例示した。これに対し、第3の実施形態では、複数のECCフレームの復号結果に基づいて推定LLRテーブルを作成する場合を例示する。
【0074】
同じような雑音の影響を受けることが想定される通信路であれば、それらの通信路から得られる条件付き確率P(y|x)は同様のものとなる。そこで本実施形態では、同様の通信路で雑音の影響を受けると思われる複数のECCフレームを一括で処理できる場合に、その全てのECCフレームの集計結果から推定LLRテーブルを作成する。それにより、推定LLRテーブルの作成に使用する(k,y)の組の数を増加させることが可能となるため、推定する通信路をより真の通信路に近づけることが可能となる。なお、同じような雑音の影響を受けることが想定される通信路としては、同一又は隣接するワードラインに書き込まれたECCフレームなどが想定されるが、これに限定されるものではない。
【0075】
本実施形態に係るメモリシステム及びその復号部の構成は、例えば上述した第1又は第2の実施形態に係るメモリシステム1及びその軟判定復号部182又は282と同様であってよい。ただし、本実施形態では、軟判定復号部182又は282が、複数のECCフレームを一括に処理できるように構成され、復号部102には、複数のECCフレームが入力され、受信語バッファ106には、複数のECCフレームが保存される。
【0076】
つづいて、本実施形態に係る復号動作を、図面を参照して詳細に説明する。なお、以下の説明では、第2の実施形態において例示した復号動作(
図8参照)をベースとするが、これに限定されず、第1の実施形態において例示した復号動作(
図5参照)をベースとするなど、種々変形することが可能である。
【0077】
図9は、本実施形態に係る復号動作の概略例を示すフローチャートである。
図9に示すように、本実施形態に係る復号動作は、
図8に示した第2の実施形態に係る復号動作と同様の動作において、ステップS101、S104、S107及びS202がそれぞれステップS301、S302、S303及びS304に置き換えられている。
【0078】
すなわち、本実施形態では、まず、メモリI/F13によって不揮発性メモリ20から読み出された複数のECCフレームの系列{y}が軟判定復号部282に入力される(ステップS301)。軟判定復号部282に入力された複数のECCフレームの系列{y}は、受信語バッファ106に保存されると共に、LLR変換部101に入力される。
【0079】
次に、カウント値Sをリセット(S=0)した後(ステップS102)、入力された複数のECCフレームの系列{y}が既定のLLRテーブルを用いて復号される(ステップS103)。なお、個々のECCフレームの系列{y}に対する復号は、上述した実施形態と同様であってよい。
【0080】
次に、例えば推定LLRテーブル作成制御部103が、復号器102から入力された情報に基づいて、全てのECCフレームに対する復号に成功したか否かを判断する(ステップS302)。全てのECCフレームに対する復号に成功していた場合(ステップS302のYES)、本動作は、ステップS109へ進み、以降の動作を実行する。一方、復号に失敗したECCフレームが存在する場合(ステップS302のNO)、カウント値Sが1インクリメントされ(ステップS105)、インクリメント後のカウント値Sが最大値S_maxより大きいか否かが判定される(ステップS106)。その後、カウント値Sが最大値S_maxより大きい場合(ステップS106のYES)、本動作は、ステップS111へ進み、以降の動作を実行する。一方、カウント値Sが最大値S_max以下である場合(ステップS106のNO)、本動作は、ステップS303へ進む。
【0081】
ステップS303では、ステップS103又はS304の復号により得られた推定値kSの系列{kS}のうち、同様のストレスを受けた1以上のECCフレームの推定値kSの系列{kS}と受信値yとの組(kS,y)それぞれの度数から、推定LLRテーブルが作成される。具体的には、推定通信路行列集計部104が、推定LLRテーブル作成制御部103を経由して入力された複数のECCフレームのうち、同様のストレスを受けていると想定される1以上のECCフレームを特定する。つづいて、推定通信路行列集計部104は、特定した1以上のECCフレームそれぞれの推定値kSの系列{kS}と、受信語バッファ106から入力された受信値yの系列{y}とから(kS,y)の組を作成し、それぞれの組の度数を集計する。そして、推定通信路行列集計部104は、現在の集計結果に基づいて、尤度P(y|kS)の一覧である推定通信路行列若しくは度数分布を作成し、作成した推定通信路行列若しくは度数分布を推定LLRテーブル作成部105に入力する。推定LLRテーブル作成部105は、入力された推定通信路行列若しくは度数分布に基づき、例えば上述した式(3)~(6)を用いることで、推定LLRテーブルを作成する。作成した推定LLRテーブルは、推定LLRテーブル補正部201に入力されて補正される(ステップS201)。
【0082】
次に、全てのECCフレームのうち、未だ復号に成功していないECCフレームの受信値yの系列{y}が補正後の推定LLRテーブルを用いて復号される(ステップS304)。なお、個々のECCフレームの系列{y}に対する復号は、上述した実施形態と同様であってよい。その後、本動作は、ステップS302へリターンする。
【0083】
以上のように、本実施形態では、同様の通信路で雑音の影響を受けると思われる複数のECCフレームを一括で処理できる場合に、その全てのECCフレームの集計結果から推定LLRテーブルを作成する。それにより、推定LLRテーブルの作成に使用する(k,y)の組の数を増加させることが可能となるため、推定する通信路をより真の通信路に近づけることが可能となる。
【0084】
なお、その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【0085】
次に、上述した実施形態の効果について、具体例を挙げて説明する。なお、以下の説明では、第3の実施形態に着目するとともに、各ECCフレームが受けるストレスの条件を同一とするが、各ECCフレームが記録された場所のバラつきによって各ECCフレームの真の通信路が同一ではない場合を例示する。
【0086】
図10は、ある世代のNAND型フラッシュメモリに対し、あるストレスを与えた多数のECCフレームを集計することで得られた復号結果と、その補間曲線とを示す図である。
図10は、第2の実施形態で例示した補正(
図8又は
図9のステップS201参照)を行なわない場合に、繰返し回数S_maxの値で復号特性がどのように変化するかを表している。
【0087】
図10において、横軸は、誤りビットの数を表し、縦軸は、復号失敗確率を表している。
図10における一つ一つの点は、特定の値の誤りビットを含んだECCフレームが複数観測された場合にその複数のECCフレームの中で復号失敗になったECCフレームの割合を表している。なお、補間曲線は視覚的な目安であって、その線の通りの復号失敗確率となることを保証しているわけではない。
【0088】
また、曲線L1は、既定のLLRテーブルを使用して復号した場合(第1のケースという)の復号特性を示す補間曲線である。
【0089】
曲線L2は、既存の復号失敗結果に基づいて作成した推定LLRテーブルを使用して再復号した場合の復号特性を示す補間曲線である。曲線L3は、繰返し回数S_maxを2とした場合の復号特性を示す補間曲線である。曲線L4は、繰返し回数S_maxを5とした場合の復号特性を示す補間曲線である。
【0090】
図10から分かるように、繰返し回数S_maxの増加により誤り訂正能力が向上していることが分かる。
【0091】
また、
図11は、
図10で使用したのと同一のデータに対して、補正を行わなかった場合と、非常に強く尤度が最大値を取ると思われる値について、LLR値の絶対値を大きくする補正を行なった場合との違いを表したグラフである。
図11の曲線L1と曲線L2は、
図10の曲線L1と曲線L4と同一である。
図11の曲線L3は、繰返し回数S_maxを5とし、上記補正を行った場合の補間曲線である。
【0092】
図11から分かるように、あるストレスにおいて、補正によって誤り訂正能力が向上することが分かる。
【0093】
(第4の実施形態)
次に、第4の実施形態に係るメモリシステムについて、図面を参照して詳細に説明する。なお、以下の説明において、第1~第3の実施形態のいずれかと同様の構成及び動作については、それを引用することで、重複する説明を省略する。
【0094】
第1の実施形態は、失敗した復号結果に基づいて推定LLRテーブルを作成する動作を1回以上繰り返すことで、推定する通信路を正しい通信路に近づける構成を備えていた。これに対し、第4の実施形態は、推定LLRテーブルを作成するために事後確率情報を利用することができる構成を備える。
【0095】
本実施形態に係るメモリシステムは、第1の実施形態において
図1を用いて説明したメモリシステム1と同様の構成を備えてよい。ただし、本実施形態では、
図1における軟判定復号部182が
図12に示す軟判定復号部382に置き換えられる。
【0096】
図12に示すように、本実施形態に係る軟判定復号部382は、
図4に示す軟判定復号部182と同様の構成に加え、
図4における推定値を出力する復号器102が
図12に示す事後LLRを出力する復号器302に置き換えられる。事後LLRは、推定値の元になる情報であって、事後確率情報に関する対数尤度比であり、受信値の系列{y}に加えて符号情報による推定も加わった軟判定復号部の出力である。事後LLRから推定値kが得られ、記録されたビットが‘0’である確率と‘1’である確率とが同じである通常のケースであれば、その値の正負がビット‘0’と‘1’に対応し、絶対値が復号器による書込み値の推定の信頼度と関係する。
【0097】
復号器302の出力は、事後LLRに代わって外部値であってもよい。外部値とは、事後LLRから入力時点でのLLRを引いたものである。事後LLRに代えて外部値を用いた場合でも第4の実施形態を実現できる。
【0098】
また、本実施形態では、
図4における推定値の系列{k}を使用する推定LLRテーブル作成制御部103が、
図12における事後LLRの系列{l}を使用する推定LLRテーブル作成制御部303に置き換えられる。
【0099】
推定LLRテーブル作成制御部303での事後LLRの具体的な使用例を
図13を用いて説明する。
図13には、受信値の系列{y}、事後LLRの系列{l}、そして事後LLRの系列から得られる推定値の系列{k}の一例が示されている。
図13において、縦に並んだ受信値、推定値及び事後LLRは、それぞれ同一のビットに関する情報である。一番右のビットに着目すると、受信値3と組になる事後LLRは+5である。この値はプラスであるため、一番右のビットに関しては、ビット‘0’が推定値となる。この時、事後LLRの絶対値が5と小さい値ではないため、(k=0,y=3)という組が推定通信路行列集計部104で使用される。一方、右から二番目のビットに関しては、その事後LLRの絶対値が1と小さい値である。そのため、二番目のビットに関わる(k=1,y=0)は推定通信路行列集計部104で使用されない。なお、
図13では、絶対値が2以下の事後LLRに対応する推定値と受信値との組を推定通信路行列集計部104で使用しない場合が例示されているが、使用/不使用を判断する際に使用する事後LLRの絶対値に対する閾値は2に限定されず、種々変更することが可能である。
【0100】
つづいて、本実施形態に係る復号動作を、図面を参照して詳細に説明する。
図14は、本実施形態に係る復号動作の概略例を示すフローチャートである。
図14に示すように、本実施形態に係る復号動作では、
図5に示した第1の実施形態に係る復号動作と同様の動作において、ステップS107がステップSS401~S403に置き換えられている。また、
図14のステップS103及びS108では、復号結果として、推定値の系列{k
S}の代わりに事後LLRの系列{l
S}が出力される。
【0101】
ステップS401では、すなわち、ステップS103又はS108の復号に失敗し(ステップS104のNO)、且つ、繰返し回数を示すカウント値Sが最大値S_max以下である場合(ステップS106のNO)、推定LLRテーブル作成制御部303は、ステップS103又はS108の復号により得られた事後LLRの系列{l
S}から、絶対値が所定の閾値(
図13に示す例では2)以下である事後LLRを除外する(ステップS401)。つづいて、推定LLRテーブル作成制御部303は、残った事後LLRの系列{l
S’}に対して推定値の系列{k
S’}を生成する(ステップS402)。
【0102】
生成された推定値の系列{kS’}は、推定通信路行列集計部104に入力される。また、推定通信路行列集計部104には、絶対値が所定の閾値より大きい事後LLRに対応する受信値の系列{y’}も入力される。したがって、ステップS403では、推定通信路行列集計部104が、推定LLRテーブル作成制御部103から入力された推定値の系列{kS’}と、受信語バッファ106から入力された受信値の系列{y’}とから(kS’,y’)の組を作成し、それぞれの組の度数を集計し、その集計結果に基づいて推定通信路行列若しくは度数分布を作成し、作成した推定通信路行列若しくは度数分布を推定LLRテーブル作成部105に入力する。これに対し、推定LLRテーブル作成部105は、入力された推定通信路行列若しくは度数分布に基づき、例えば上述した式(3)~(6)を用いることで、推定LLRテーブルを作成する。なお、作成した推定LLRテーブルは、LLR変換部101へ入力される。
【0103】
次に、本実施形態の効果について、具体例を挙げて説明する。
図15は、
図10で使用したデータと同一のデータに対して、補正を行わずに全ての(k,y)の組を推定通信路行列集計部104で使用した場合と、事後LLRの絶対値が小さい(k,y)の組を推定通信路行列集計部104で使用しない場合との違いを表したグラフである。
図15の曲線L1と曲線L2は
図10の曲線L1と曲線L4と同一である。
図15の曲線L3は、繰返し回数S_maxを5とし、事後LLRの絶対値が小さい(k,y)を使用しなかった結果の補間曲線である。
【0104】
図15からわかるように、あるストレスにおいて、使用する(k,y)の組に制限を付けることで誤り訂正能力が向上することが分かる。
【0105】
以上のように、本実施形態によれば、推定LLRテーブルの作成に事後確率情報を利用した場合でも、上述した第1~第3の実施形態と同様の効果を奏することが可能である。また、本実施形態において、推定通信路行列集計部104で集計する(k,y)の組をその事後LLRの絶対値に基づいて制限することで、誤り訂正能力を向上することが可能となる。
【0106】
なお、その他の構成、動作及び効果は、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。また、本実施形態では、第1の実施形態に係る構成をベースとして、推定LLRテーブルの作成に事後確率情報を利用する構成を適用した場合を例示したが、ベースとする構成は第1の実施形態に限られない。例えば、第2又は第3の実施形態に係る構成に対し、本実施形態を適用することも可能である。
【0107】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0108】
1…メモリシステム、10…メモリコントローラ、11…制御部、12…データバッファ、13…メモリI/F、14…符号化/復号部、15…ホストI/F、16…内部バス、17…符号化部、18…復号部、101…LLR変換部、102,302…復号器、103,303…推定LLRテーブル作成制御部、104…推定通信路行列集計部、105…推定LLRテーブル作成部、106…受信語バッファ、181…硬判定復号部、182,282,382…軟判定復号部、201…推定LLRテーブル補正部。