(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-30
(45)【発行日】2022-12-08
(54)【発明の名称】共有データ統計情報を使用したコンテンツアウェア復号(Content Aware Decoding)
(51)【国際特許分類】
H03M 13/19 20060101AFI20221201BHJP
G06F 12/00 20060101ALI20221201BHJP
G06F 11/10 20060101ALI20221201BHJP
【FI】
H03M13/19
G06F12/00 597U
G06F11/10 662
(21)【出願番号】P 2021103680
(22)【出願日】2021-06-22
【審査請求日】2021-06-22
(32)【優先日】2020-11-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504056130
【氏名又は名称】ウェスタン デジタル テクノロジーズ インコーポレーテッド
(74)【代理人】
【識別番号】110000110
【氏名又は名称】弁理士法人 快友国際特許事務所
(72)【発明者】
【氏名】ダディ・デヴィット・アブラハム
(72)【発明者】
【氏名】ラン・ザミール
(72)【発明者】
【氏名】オマー・ファインジルバー
【審査官】吉江 一明
(56)【参考文献】
【文献】特開2012-118979(JP,A)
【文献】特開2017-097942(JP,A)
【文献】特開2008-176911(JP,A)
【文献】米国特許出願公開第2016/0006462(US,A1)
【文献】米国特許出願公開第2018/0091172(US,A1)
【文献】米国特許出願公開第2021/0344356(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 13/19
G06F 12/00
G06F 11/10
(57)【特許請求の範囲】
【請求項1】
データ記憶デバイスであって、
不揮発性メモリ(NVM)と、
前記NVMに連結されたコントローラであって、
複数のデコーダであって、
第1のコードワードを受信するように構成された第1のデコーダであって、前記第1のコードワードに関する第1のデータ統計情報を生成するように構成された、第1のデコーダと、
第2のコードワードを受信するように構成された第2のデコーダであって、前記第2のコードワードに関する第2のデータ統計情報を生成するように構成された、第2のデコーダと、を含む、複数のデコーダと、
前記第1のデータ統計情報及び前記第2のデータ統計情報を受信するように構成された統合データ統計情報モジュールと、を含む、コントローラと、を備える、データ記憶デバイス。
【請求項2】
前記統合データ統計情報モジュールが、前記第1のデータ統計情報及び前記第2のデータ統計情報に基づいてデータヒストグラムを作成するように更に構成されている、請求項1に記載のデータ記憶デバイス。
【請求項3】
前記コントローラは、第3のコードワードを受信するように構成されており、前記第1のコードワード、前記第2のコードワード、及び前記第3のコードワードがそれぞれ、シンドローム重み又はビット誤り率に基づいて前記複数のデコーダのうちの1つに割り当てられる、請求項1に記載のデータ記憶デバイス。
【請求項4】
前記第1のコードワード及び前記第2のコードワードは、実質的に同様であり、前記第1のデータ統計情報は、前記統合データ統計情報モジュール内の前記第2のデータ統計情報によって更新される、請求項1に記載のデータ記憶デバイス。
【請求項5】
前記第1のデコーダが前記第1のデータ統計情報を記憶し、前記コントローラが、第3のコードワードを受信するように構成されており、前記第3のコードワードは、前記
第1のデータ統計情報
および前記第2のデータ統計情報に基づいて前記第1のデコーダに割り当てられ、前記第1のデコーダは、前記第1のデータ統計情報に基づいて前記複数のデコーダのうちの1つに前記第3のコードワードを提供する、請求項4に記載のデータ記憶デバイス。
【請求項6】
前記複数のデコーダのそれぞれのデコーダが、階層1デコーダ、階層2デコーダ、及び階層3デコーダのうちの1つで構成される、請求項1に記載のデータ記憶デバイス。
【請求項7】
前記コントローラが、第3のコードワードを受信するように構成されており、前記第3のコードワードは
、シンドローム重み又
はビット誤り率に基づいて、前記階層1デコーダ、前記階層2デコーダ、及び前記階層3デコーダのうちの1つに割り当てられる、請求項6に記載のデータ記憶デバイス。
【請求項8】
データ記憶デバイス用のコントローラであって、
1つ以上の不揮発性メモリ(NVM)に対するI/Oと、
コンテンツアウェア復号のための方法を実行するように構成されたプロセッサであって、前記方法は、
第1のデコーダにおいて前記1つ以上のNVMからコードワードを受信することと、
前記コードワードに関するデータ統計情報を生成することと、
統合統計情報モジュールを動作させることであって、前記統合統計情報モジュールは、前記第1のデコーダを含む複数のデコーダに連結されており、前記データ統計情報に基づいて出力を提供する、ことと、を含む、プロセッサと、を備える、コントローラ。
【請求項9】
前記複数のデコーダのそれぞれのデコーダが、階層1デコーダ、階層2デコーダ、及び階層3デコーダのうちの1つを含む、請求項8に記載のコントローラ。
【請求項10】
前記プロセッサによって実行可能である前記方法が、前記NVMのうちの1つ以上から第2のコードワードを受信することと、シンドローム重み又はビット誤り率に基づいて、前記第2のコードワードを前記複数のデコーダのうちの1つに割り当てることと、を更に含む、請求項9に記載のコントローラ。
【請求項11】
前記プロセッサによって実行可能である前記方法が、前記複数のデコーダのそれぞれがデータ統計情報をローカルに維持し、前記統合統計情報モジュールにデータ統計情報を提供することを更に含む、請求項10に記載のコントローラ。
【請求項12】
前記プロセッサによって実行可能である前記方法が、ローカルに維持されたデータ統計情報に基づいて、前記第2のコードワードを前記複数のデコーダのうちの1つに割り当てることを更に含む、請求項11に記載のコントローラ。
【請求項13】
前記プロセッサによって実行可能である前記方法が、ローカルに維持されたデータ統計情報と前記統合統計情報モジュールとの間で統計的ミスマッチが検出されることを更に含む、請求項12に記載のコントローラ。
【請求項14】
前記プロセッサによって実行可能である前記方法が、前記統合統計情報モジュール及びローカルに維持されたデータ統計情報のうちの1つがそれぞれヒストグラムを含むことを更に含む、請求項13に記載のコントローラ。
【請求項15】
前記プロセッサによって実行可能である前記方法が、前記データ統計情報のうちの新しいものが、前記データ統計情報のうちのより古いものよりも関連性が高いものとして重み付けされることを更に含む、請求項14に記載のコントローラ。
【請求項16】
データを記憶するためのシステムであって、
不揮発性メモリ(NVM)手段と、
コンテンツアウェア復号のための方法を実行するように構成されたコントローラ手段であって、前記方法は、
複数のデコーダ手段の第1のデコーダ手段において、前記NVM手段から第1のコードワードを受信することと、
前記第1のデコーダ手段において前記第1のコードワードを復号することと、
前記第1のコードワードを復号することに基づいて第1のデータ統計情報を生成することと、
前記複数のデコーダ手段のそれぞれに連結され、出力を生成するように構成された統合データ統計情報モジュールを動作させ、前記第1のデータ統計情報を前記統合データ統計情報モジュールに提供することと、
前記NVM手段か
ら第2のコードワードを受信することと、
シンドローム重み又はビット誤り率に基づいて、前記第2のコードワードを前記複数のデコーダ手段の第2のデコーダ手段に割り当てることと、を含む、コントローラ手段と、を含む、システム。
【請求項17】
前記方法が、前記第2のデコーダ手段において第2のデータ統計情報を生成することと、前記第2のデータ統計情報に基づいて前記統合データ統計情報モジュールを更新することと、を更に含む、請求項16に記載のシステム。
【請求項18】
前記第2のデータ統計情報が、前記
第1のデータ統計情報よりも関連性が高いものとして重み付けされる、請求項17に記載のシステム。
【請求項19】
前記複数のデコーダ手段のそれぞれが、前記統合データ統計情報モジュールにデータ統計を提供するように構成されている、請求項16に記載のシステム。
【請求項20】
前記NVM手段から前記複数のデコーダ手段のうちの1つへの後続のコードワードの割り当てが、前記シンドローム重み又は前記ビット誤り率に基づいている、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、参照により本明細書に組み込まれる、2020年11月6日に出願された米国特許仮出願第63/110,738号の利益を主張する。
【0002】
(発明の分野)
本開示の実施形態は、概して、データの誤り検出及び補正に関し、より具体的には、コンテンツアウェアの誤り検出及び補正のためのデータ統計情報の使用に関する。
【背景技術】
【0003】
関連技術の説明
データ記憶製品要件が増加するにつれて、ホストに送信するための記憶データの単一デコーダの性能限界に達してきた。これに応じて、多くのデータ記憶製品がデコーダのプールを採用している。一緒に復号されるデータのブロックは、典型的には、同様のデータ特性を有するため、サービス品質(QoS)を改善するために、個々のデコーダは、コンテンツ特性に関する統計情報を維持してもよい。統計情報を維持することによって、データ統計情報に基づくその復号ストラテジを予測的に構成して、デコーダをより効率的に復号するように構成することができる。
【0004】
しかしながら、データ統計情報は、個々のデコーダによって復号されたデータに基づいているため、それらの予測能力は限定され得、例えば、QoSを劣化させ得る「ヘッドオブラインブロッキング」シナリオをもたらす予測の見逃しにつながる。
【0005】
必要なのは、これら及び他の欠陥を克服するシステム及び方法である。
【発明の概要】
【0006】
本開示は、概して、共有データ統計情報を使用したコンテンツアウェア復号に関する。各デコーダは、各デコーダが復号し、これらの統計情報を統合統計情報プールに提供するコンテンツの統計データを生成する。コードワードがデコーダプールに到着すると、統合統計情報を利用して、破損したビット値又は欠落したビット値を推定又は予測する。コードワードは、シンドローム重み又はビット誤り率に基づいて、階層1デコーダ、階層2デコーダ、又は階層3デコーダなどの特定のデコーダに割り当てられてもよい。割り当てられたデコーダは、コードワードを処理した後に、統合統計情報プールを更新する。いくつかの実施形態では、各デコーダは、コードワードに関するローカル統計情報を追加的に維持し、ローカル統計情報と統合統計情報プールとの間に統計的に有意な不一致があるときにローカル統計情報を使用することができる。
【0007】
一実施形態では、不揮発性メモリ(NVM)と、複数のデコーダ、すなわち第1のコードワードを受信するように構成された第1のデコーダ及び第2のコードワードを受信するように構成された第2のデコーダを含む、NVMに連結されたコントローラと、を含むデータ記憶デバイスが開示され、第1のデコーダは、第1のコードワードに関する第1のデータ統計情報を生成するように構成されており、第2のデコーダは、第2のコードワードに関する第2のデータ統計情報を生成するように構成されている。データ記憶デバイスは、第1のデータ統計情報及び第2のデータ統計情報を受信するように構成された統合データ統計情報モジュールを更に含む。
【0008】
別の実施形態では、データ記憶デバイス用のコントローラが開示される。コントローラは、1つ以上のNVMに対するI/Oと、コンテンツアウェア復号のための方法を実行するように構成されたプロセッサと、を含む。この方法は、第1のデコーダにおいて1つ以上のNVMからコードワードを受信することと、コードワードに関するデータ統計情報を生成することと、データ統計情報を統合統計情報モジュールに提供することと、を含み、統合統計情報モジュールは、第1のデコーダを含む複数のデコーダに連結される。
【0009】
別の実施形態では、NVM手段と、コンテンツアウェア復号のための方法を実行するためのコントローラ手段とを含む、データを記憶するためのシステムが開示される。本方法は、複数のデコーダ手段の第1のデコーダ手段において、NVM手段から第1のコードワードを受信することと、第1のデコーダ手段において第1のコードワードを復号することと、第1のコードワードを復号することに基づいて第1のデータ統計情報を生成することと、を含む。本方法は、複数のデコーダ手段のそれぞれに連結された統合データ統計情報モジュールを、第1のデータ統計情報で更新することと、NVM手段から第2の第2のコードワードを受信することと、統合データ統計情報モジュールに基づいて、第2のコードワードを複数のデコーダ手段の第2のデコーダ手段に割り当てることと、を更に含む。
【図面の簡単な説明】
【0010】
本開示の上記の特徴を詳細に理解することができるように、簡潔に上で要約した本開示のより具体的な説明は、実施形態を参照することによってなされてもよく、それらのいくつかが添付の図面に示されている。しかしながら、添付の図面は、本開示の典型的な実施形態のみを示し、したがって、その範囲を限定するものと見なされるべきではなく、本開示が他の同等に有効な実施形態を認め得ることに留意すべきである。
【0011】
【
図1】特定の実施形態による、データ記憶デバイスがホストデバイスの記憶デバイスとして機能し得る記憶システムを示す概略ブロック図である。
【0012】
【
図2】特定の実施形態による、デコーダプールアーキテクチャを示す概略ブロック図である。
【0013】
【
図3B】特定の実施形態による4ビットワード配列出現頻度を示すヒストグラムである。
【0014】
【
図4】特定の実施形態による、反復型コンテンツアウェアデコーダ(ICAD)論理(Iterative Content Aware Decoder logic)の概略図である。
【0015】
【
図5】特定の実施形態による、デコーダプール内のICADの実装を示す概略ブロック図である。
【0016】
【
図6】特定の実施形態による、デコーダプール内の選択的データ共有ICADの実装を示す概略ブロック図である。
【0017】
【
図7】特定の実施形態による、デコーダプール内のICADの実装を示すフローチャートである。
【0018】
理解を容易にするために、図面に共通する同一の要素を示すために、可能な限り、同一の参照番号を使用している。一実施形態で開示される要素は、特に断ることなく、他の実施形態に有益に利用され得ることが想到される。
【発明を実施するための形態】
【0019】
以下では、本開示の実施形態を参照する。しかしながら、本開示は、具体的に説明される実施形態に限定されないことを理解されたい。その代わりに、以下の特徴及び要素の任意の組み合わせは、異なる実施形態に関連するか否かに関わらず、本開示を実施及び実践することが企図される。更に、本開示の実施形態は、他の可能な解決策及び/又は先行技術を上回る利点を達成することができるが、所与の実施形態によって特定の利点が達成されるか否かは、本開示を限定するものではない。したがって、以下の態様、特徴、実施形態、及び利点は、単なる例示に過ぎず、請求項に明示的に記載されている場合を除いて、添付の「特許請求の範囲」の要素又は制限と見なされない。同様に、「本開示」への言及は、本明細書に開示される任意の発明の主題の一般化として解釈されるものではなく、請求項に明示的に記載されている場合を除いて、添付の「特許請求の範囲」の要素又は制限であると見なされるべきではない。
【0020】
本開示は、概して、共有データ統計情報を使用したコンテンツアウェア復号に関する。各デコーダは、各デコーダが復号し、これらの統計情報を統合統計情報プールに提供するコンテンツの統計データを生成する。コードワードがデコーダプールに到着すると、統合統計情報を利用して、破損したビット値又は欠落したビット値を推定又は予測する。コードワードは、シンドローム重み又はビット誤り率に基づいて、階層1デコーダ、階層2デコーダ、又は階層3デコーダなどの特定のデコーダに割り当てられてもよい。割り当てられたデコーダは、コードワードを処理した後に、統合統計情報プールを更新する。いくつかの実施形態では、各デコーダは、コードワードに関するローカル統計情報を追加的に維持し、ローカル統計情報と統合統計情報プールとの間に統計的に有意な不一致があるときにローカル統計情報を使用することができる。
【0021】
図1は、特定の実施形態による、データ記憶デバイス106がホストデバイス104の記憶デバイスとして機能し得る記憶システム100を示す概略ブロック図である。例えば、ホストデバイス104は、データ記憶デバイス106に含まれる不揮発性メモリ(NVM)110を利用して、データを記憶及び取得することができる。ホストデバイス104は、ホストDRAM138を含む。いくつかの実施形態では、記憶システム100は、記憶アレイとして動作し得るデータ記憶デバイス106などの複数の記憶デバイスを含んでもよい。例えば、記憶システム100は、ホストデバイス104のための大量記憶デバイスとして集合的に機能する安価な/独立ディスクの冗長アレイ(RAID)として構成された複数のデータ記憶デバイス106を含んでもよい。
【0022】
ホストデバイス104は、データ記憶デバイス106などの1つ以上の記憶デバイスに、かつ/又は1つ以上の記憶デバイスからデータを記憶及び/又は取得することができる。
図1に示すように、ホストデバイス104は、インターフェース114を介してデータ記憶デバイス106と通信することができる。ホストデバイス104は、コンピュータサーバ、ネットワーク接続ストレージ(NAS)ユニット、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォン、いわゆる「スマート」パッドなどの電話送受器、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、又はデータ記憶デバイスからデータを送信若しくは受信することができる他の機器を含む広範囲のデバイスのうちのいずれかを含んでもよい。
【0023】
データ記憶デバイス106は、コントローラ108、NVM110、電源111、揮発性メモリ112、インターフェース114、及び書き込みバッファ116を含む。いくつかの実施形態では、データ記憶デバイス106は、明確にするために
図1に示されていない追加の構成要素を含んでもよい。例えば、データ記憶デバイス106は、データ記憶デバイス106の構成要素が機械的に取り付けられ、データ記憶デバイス106の構成要素を電気的に相互接続する導電性トレースなどを含む、プリント回路基板(PCB)を含んでもよい。いくつかの実施形態では、データ記憶デバイス106の物理的寸法及びコネクタ構成は、1つ以上の標準的なフォームファクタに適合し得る。いくつかの例示の標準的なフォームファクタとしては、3.5インチデータ記憶デバイス(例えば、HDD又はSSD)、2.5インチデータ記憶デバイス、1.8インチデータ記憶デバイス、周辺構成要素相互接続(PCI)、PCI拡張(PCI-X)、PCIエクスプレス(PCIe)(例えば、PCIe x1、x4、x8、x16、PCIe Mini Card、MiniPCIなど)が挙げられるが、これらに限定されない。いくつかの実施例では、データ記憶デバイス106は、ホストデバイス104のマザーボードに直接連結(例えば、直接半田付け)されてもよい。
【0024】
データ記憶デバイス106のインターフェース114は、ホストデバイス104とデータを交換するためのデータバス、及びホストデバイス104とコマンドを交換するための制御バスのうちの一方又は両方を含み得る。インターフェース114は、任意の好適なプロトコルに従って動作することができる。例えば、インターフェース114は、以下のプロトコルのうちの1つ以上に従って動作することができる:アドバンスドテクノロジーアタッチメント(ATA)(例えば、シリアルATA(SATA)及びパラレルATA(PATA))、ファイバチャネルプロトコル(FCP)、スモールコンピュータシステムインターフェース(SCSI)、シリアルアタッチドSCSI(serially attached SCSI)(SAS)、PCI、及びPCIe、不揮発性メモリエクスプレス(NVMe)、OpenCAPI、GenZ、キャッシュコヒーレントインターフェースアクセラレータ(Cache Coherent Interface Accelerator)(CCIX)、オープンチャネルSSD(OCSSD)など。インターフェース114(例えば、データバス、制御バス、又はその両方)の電気的接続は、ホストデバイス104とコントローラ108との間に電気的接続を提供し、ホストデバイス104とコントローラ108との間でデータを交換することを可能にしながらコントローラ108に電気的に接続されている。いくつかの実施形態では、インターフェース114の電気的接続はまた、データ記憶デバイス106がホストデバイス104から電力を受け取ることを可能にし得る。例えば、
図1に示すように、電源111は、インターフェース114を介してホストデバイス104から電力を受け取り得る。
【0025】
NVM110は、複数のメモリデバイス又はメモリユニットを含み得る。NVM110は、データを記憶及び/又は取得するように構成されていてもよい。例えば、NVM110のメモリユニットは、データ及びデータを記憶するようにメモリユニットに命令するメッセージをコントローラ108から受信してもよい。同様に、NVM110のメモリユニットは、データを取得するようにメモリユニットに命令するメッセージをコントローラ108から受信してもよい。いくつかの実施例では、メモリユニットのそれぞれをダイと呼ぶことができる。いくつかの実施形態では、単一の物理チップは、複数のダイ(すなわち、複数のメモリユニット)を含み得る。いくつかの実施形態では、各メモリユニットは、比較的大量のデータ(例えば、128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TBなど)を記憶するように構成されてもよい。
【0026】
いくつかの実施形態では、NVM110の各メモリユニットは、フラッシュメモリデバイス、相変化メモリ(PCM)デバイス、抵抗変化型メモリ(ReRAM)デバイス、磁気抵抗メモリ(MRAM)デバイス、強誘電体メモリ(F-RAM)、ホログラフィックメモリデバイス、及び任意の他の種類のNVMデバイスなどの、任意の種類のNVMデバイスを含み得る。
【0027】
NVM110は、複数のフラッシュメモリデバイス又はメモリユニットを備えてもよい。NVMフラッシュメモリデバイスは、NAND又はNORベースのフラッシュメモリデバイスを含んでもよく、各フラッシュメモリセルのトランジスタの浮遊ゲートに含まれる電荷に基づいてデータを記憶することができる。NVMフラッシュメモリデバイスでは、フラッシュメモリデバイスは、複数のダイに分割されてもよく、複数のダイの各ダイは複数のブロックを含み、これらは更に複数のページに分割され得る。特定のメモリデバイス内の複数のブロックの各ブロックは、複数のNVMセルを含み得る。NVMセルの行は、複数のページのうちのあるページを定義するためにワード線を使用して電気的に接続されてもよい。複数のページのそれぞれの対応するセルは、それぞれのビット線に電気的に接続されてもよい。更に、NVMフラッシュメモリデバイスは、2D又は3Dデバイスであってもよく、シングルレベルセル(SLC)、マルチレベルセル(MLC)、トリプルレベルセル(TLC)、又はクアッドレベルセル(QLC)であってもよい。コントローラ108は、NVMフラッシュメモリデバイスにページレベルでデータを書き込み、NVMフラッシュメモリデバイスからページレベルでデータを読み取り、NVMフラッシュメモリデバイスからブロックレベルでデータを消去することができる。
【0028】
データ記憶デバイス106は、データ記憶デバイス106の1つ以上の構成要素に電力を供給し得る電源111を含む。標準モードで動作するとき、電源111は、ホストデバイス104などの外部デバイスによって供給される電力を使用して、1つ以上の構成要素に電力を供給することができる。例えば、電源111は、インターフェース114を介してホストデバイス104から受け取った電力を使用して、1つ以上の構成要素に電力を供給してもよい。いくつかの実施形態では、電源111は、電力を外部デバイスから受け取ることを停止する場合などのシャットダウンモードで動作するときに、1つ以上の構成要素に電力を供給するように構成された1つ以上の蓄電構成要素(power storage component)を含んでもよい。このように、電源111は、オンボードバックアップ電源として機能してもよい。1つ以上の蓄電構成要素のいくつかの例としては、コンデンサ、スーパーキャパシタ、電池などが挙げられるが、これらに限定されない。いくつかの実施形態では、1つ以上の蓄電構成要素によって蓄えられ得る電力の量は、1つ以上の蓄電構成要素のコスト及び/又はサイズ(例えば、面積/体積)の関数であり得る。換言すれば、1つ以上の蓄電構成要素によって蓄えられる電力の量が増加するにつれて、1つ以上の蓄電構成要素のコスト及び/又はサイズも増加する。
【0029】
データ記憶デバイス106はまた、情報を記憶するためにコントローラ108によって使用され得る揮発性メモリ112を含む。揮発性メモリ112は、1つ以上の揮発性メモリデバイスを含んでもよい。いくつかの実施形態では、コントローラ108は、揮発性メモリ112をキャッシュとして使用してもよい。例えば、コントローラ108は、キャッシュされた情報がNVM110に書き込まれるまで、揮発性メモリ112にキャッシュされた情報を記憶してもよい。
図1に示すように、揮発性メモリ112は、電源111から受け取った電力を消費し得る。揮発性メモリ112の例としては、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックRAM(SRAM)、及び同期ダイナミックRAM(SDRAM(例えば、DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4など)が挙げられるが、これらに限定されない。
【0030】
データ記憶デバイス106は、データ記憶デバイス106の1つ以上の動作を管理し得るコントローラ108を含む。例えば、コントローラ108は、NVM110とのデータの読み取り及び/又はデータの書き込みを管理してもよい。いくつかの実施形態では、データ記憶デバイス106がホストデバイス104から書き込みコマンドを受信すると、コントローラ108は、データをNVM110に記憶するデータ記憶コマンドを開始し、データ記憶コマンドの進捗を監視してもよい。コントローラ108は、記憶システム100の少なくとも1つの動作特性を決定し、少なくとも1つの動作特性をNVM110に記憶してもよい。いくつかの実施形態では、データ記憶デバイス106がホストデバイス104から書き込みコマンドを受信すると、コントローラ108は、書き込みコマンドに関連付けられたデータをNVM110に送信する前に、内部メモリ又は書き込みバッファ116に一時的にデータを記憶する。
【0031】
コントローラ108は、デコーダプール150を含む。デコーダプール150は、コントローラ108の低密度パリティック検査(LDPC)エンジンの一部であってもよい。デコーダプール150は、1つ以上のデコーダを含んでもよく、1つ以上のデコーダのそれぞれは1つ以上のギアを有する。1つ以上のギアのそれぞれは、階層1、階層2、又は階層3デコーダであってもよい。デコーダの異なる階層の例示は、限定することを意図するものではなく、可能な実施形態の例を提供することを意図するものである。例えば、用語「階層」の使用は、異なる状況に特化された異なるデコーダのためのプレースホルダとして利用されてもよい。更に、例示されたデコーダの階層よりも多いか、又はそれよりも少ないことが想到される。
【0032】
階層2デコーダは、低ビット誤り率(BER)コードワードのためなど、あまり集約的でない復号タスクのために利用されてもよく、階層3デコーダは、より高いBERコードワードのためなど、より集約的な復号タスクのために利用されてもよい。他の実施形態では、選択デコーダは、受信コードワードが階層1デコーダ、階層2デコーダ、又は階層3デコーダのいくつかの特定のシンドローム重み閾値を超えるかどうかに基づいてもよい。利用されるデコーダは、復号動作、並びにデータ記憶デバイスの他の構成要素による現在の電力消費などの、利用される現在のリソースに依存し得る。様々なデコーダは、トレードオフがギアシフト方式であるように、待ち時間と補正能力に対する出力との間のトレードオフを使用することができる。例えば、階層1デコーダは、ビットフリッピングデコーダであってもよいが、一方で階層2及び階層3デコーダは、メッセージパッシングデコーダであってもよい。この文脈では、階層2デコーダは、より速いメッセージパッシングデコーダであるが、階層3はより強力なメッセージパッシングデコーダである。
【0033】
図2は、開示される実施形態によるデコーダプールアーキテクチャ200を示す概略ブロック図である。デコーダプールアーキテクチャ200は、
図1のデコーダプール150であってもよい。従来の手法では、デコーダプールに提供されるコードワードは、最初に下位デコーダ(例えば、階層1デコーダ)に提供されてもよいが、下位デコーダが故障した場合、コードワードを上位デコーダ(例えば、階層2及び/又は階層3デコーダ)に送信することができる。単一の階層1+階層2+階層3エンジンを使用するのではなく、これらのギアは、独立したデコーダのプールに分割される。例えば、コードワードが階層3デコーダで長い復号待ち時間を要する場合、階層1デコーダ及び階層2デコーダは、階層3デコーダよりも短い復号待ち時間を有し得る他のコードワードを更に復号することができる。デコーダプールアーキテクチャは、複数の階層1デコーダ204a~n、複数の階層2デコーダ206a~n、及び複数の階層3デコーダ208a~nを含む。いくつかの実施形態では、階層1デコーダの数は、階層2デコーダの数よりも多く、階層2デコーダの数は階層3デコーダの数よりも多い。
【0034】
更に、コントローラ108などのコントローラは、複数のデコーダ204a~n、206a~n、208a~nのうちのどのデコーダが受信されたコードワードを復号するかを判定するように構成されてもよい。受信されたコードワードは、
図1の揮発性メモリ112などの揮発性メモリから、又は
図1のNVM110などのNVMからであってもよい。例えば、受信したコードワードが高BERを含むとコントローラが判定した場合、受信されたコードワードは、複数の階層1デコーダ204a~nのうちの1つ又は複数の階層2デコーダ206a~nのうちの1つではなく、複数の階層3デコーダ208a~nのうちの1つによって復号され得る。コードワードが下位デコーダに送信されるが、適切に復号することができない場合、階層1デコーダは、統合統計情報プール(以下で論じられる)を更新し、いくつかの実施形態では、コードワードを上位デコーダに渡す前に、それ自体のデータ統計情報(以下で論じる)を更新してもよい。
【0035】
反復型コンテンツアウェアデコーダ(ICAD)は、デコーダプール202の複数のデコーダ204a~n、206a~n、208a~nのそれぞれのデコーダに埋め込まれてもよい。ICADは、デコーダ演算論理にホストデータ統計情報が埋め込まれることを可能にし、それにより、より良好なホストデータ統計情報が記憶されると、デコーダがより良好に機能する。ホストデータ統計情報が利用できない場合、データ統計情報は、関連するコードワードについて推定される。更に、ICADは、ICADがコードワードの復号とホストデータ統計情報の再推定との間を反復するような繰り返し方法で機能する。
【0036】
ホスト最小データサイズは、フラッシュメモリユニット(FMU)サイズよりも大きくてもよいため、データは、
図1のNVM110など、NVMの複数のシーケンシャルFMUにわたって記憶されてもよい。データが順次読み取られるため、コードワードは同様のホストデータを保持し、同様のデータ統計情報を有することができる。ICADは、データ統計情報を抽出し、デコーダプール202の複数のデコーダ204a~n、206a~n、208a~nのデコーダ間で抽出されたデータ統計情報を共有することができる。更に、データ統計情報はまた、デコーダプール202の複数のデコーダ204a~n、206a~n、208a~nのデコーダ間で併せて推定及び共有されてもよい。データ統計情報を併せて推定し、デコーダプール202の複数のデコーダ204a~n、206a~n、208a~nのそれぞれのデコーダにわたって統合推定統計情報を共有することにより、デコーダ待ち時間、補正能力、及びシステム性能を改善することができる。前述の実施例は、限定することを意図するものではないことを理解されたい。
【0037】
図3Aは、4ビットワードの組300の例である。
図3Bは、
図3Aの組300の4ビットワード配列出現頻度を示すヒストグラム350である。4つのビットの組み合わせはそれぞれ、10進値の2進表現であるビットワードに対応する。例えば、4つのビットの組み合わせは、「abcd」の形態であってもよく、「a」、「b」、「c」、及び「d」はそれぞれ0又は1のいずれかに対応する。4つのビットの組み合わせは、以下の式によって2進数から10進数に変換され得る:(abcd)
2=(a×2
3)+(b×2
2)+(c×2
1)+(d×2
0)=(x)
10(式中、「x」は、2進数の4ビットの組み合わせの10進値である。4ビットワードのそれぞれは、0~15の値に対応する。例えば、0000は0と等しく、0110は6と等しく、1111は15と等しい。
【0038】
ヒストグラム350は、組300の4ビットワードの各値の出現頻度のグラフ表示である。例えば、組300において、0000すなわち0は4回発生し、1111すなわち15は10回発生する。ヒストグラム350は、組300の新しい4ビットワードごとに動的に更新されてもよい。例えば、値15は最も高い出現頻度を有し、値5は最も低い出現頻度を有する。デコーダ又は統合データ統計情報モジュールが4ビットワードを受信したときに、ビットのうちの1つ以上が破壊されている場合、デコーダ又は統合データ統計情報モジュールは、ヒストグラム350を利用して、1つ以上のビット値がどのようになり得るかを判定することができる。例えば、4ビットワードx110が、デコーダ又は統合データ統計情報モジュールによって受信され、「x」は、未知のビットを指す。この4ビットワードは、4ビットワードが0110である6、又は4ビットワードが1110である14であり得る。ヒストグラム350を解析すると、6の値は、14の値よりも発生する確率が高いことにより、デコーダ又は統合データ統計情報モジュールは、未知のビットが「0」であると推定することができる。しかしながら、ヒストグラム350の統計情報を有さない場合、未知のビットがなり得るものの最良の推定値(guess estimate)は「0」が50%、及び「1」が50%になるであろう。
【0039】
図4は、開示される実施形態によるICAD論理400の概略図である。ICAD論理400は、1つ以上の記号ノード402、404、複数のビットノード406a~p、及び複数のチェックノード408a~hを含む。複数のビットノード406a~pは、複数のビットノード406と総称されてもよく、複数のチェックノード408a~hは、複数のチェックノード408と総称されてもよい。1つ以上の記号ノード402、404のそれぞれは、図示された実施形態において、ほぼ8個のビットノードに関連付けられてもよく、第1の記号ノード402はビットノード406a~hに関連付けられ、第2の記号ノード404はビットノード406i~pに関連付けられる。
【0040】
一実施形態では、データ内のビットは依存している。例えば、テキストファイルでは、ビットはバイトで編成され、各バイトは文字を表す。テキストファイルの例では、最も使用される文字は英数字、スペース、及び句読点マークであるが、残りの文字は、あまり一般的ではない。これは、同じバイトからのビットが統計的に依存し、バイト内のビットの一部を知ることにより、同じバイト内の他のビットの信頼性が増大することを示す。データは、グループ内の全てのビットが統計的に依存するようにグループに分割されてもよい。各グループは記号又は記号ノードと見なされる。
【0041】
図4では、記号は、8個のビットノード406a~h、406i~pによって示される8ビットのグループである。ICADによって実行される復号動作中に、1つ以上の記号ノード402、404のそれぞれは、複数のビットノード406の各ビットノードにメッセージを送信する。メッセージは、同じコードワードの他のビットからの情報及び各記号の確率を反映するデータ統計情報に従って、上記の
図3A及び
図3Bに記載されるような「0」又は「1」になるビットの確率を含み得る。チェックノード408は、ビットノード値が正確であることを確実にするために、複数のビットノード406のビットノードのそれぞれの値をチェックするために提供される。チェックノード408は、ビットノード値が制約されるように、コードワードビットのパリティ制約を含んでもよい。
【0042】
確率は、符号化手順中に学習することができ、データは誤りなしに取得される。しかしながら、符号化手順中に統計情報を学習することは、学習した統計情報を、データ記憶デバイスの
図1のNVM110などのメモリに記憶する必要があるため、コストがかかる場合がある。上述のデータ統計推定方式の間などに、データをスキャンし、データ内の各記号の発生をカウントすることによって、確率が計算され、データの将来の読み取りのための追加情報として記憶される。更に、確率は読み取りデータ自体から学習されてもよい。誤差の数は、高い精度を有する確率が得られるように、十分に低くてもよい。また、復号手順の間に、確率を推定することもできる。復号の各段階において、各ビットは、上述のように、そえ確率を「0」又は「1」に保持する。これらの確率を考慮すると、各記号の各発生(occurence)の確率を得ることができる。
【0043】
図5は、開示される実施形態による、デコーダプール内のICADの実装を示す概略ブロック図である。デコーダプールは、
図2のデコーダプール202であってもよい。複数のデコーダ502a~nのそれぞれのデコーダ用のホストデータ統計情報推定モジュールを有するのではなく、複数のデコーダ502a~nは、統合データ統計情報推定モジュール504に連結され、その結果、統合データ統計情報推定モジュール504に連結された複数のデコーダ502a~nのデコーダの全てによって併せて推定される。
【0044】
「k」ビット長の全てのコードワードに関するデータ統計情報の統合表現を保持することによって、複数のデコーダ502a~nのそれぞれのデコーダについて、データ統計情報を併せて推定することができ、「k」はビット長の数値を指す。データ統計情報は、
図3のヒストグラム350などのヒストグラムとして、複数のデコーダ502a~nの各デコーダ内に記憶されてもよく、ヒストグラムは、「k」ビット長で復号された各コードワードで連続的に更新される。複数のデコーダ502a~nのそれぞれは、更新された統計情報を統合データ統計情報推定モジュール504に送信し、ここで、統合データ統計情報モジュール504は、個々の更新された統計情報を統合し、グローバル統計情報を複数のデコーダ502a~nの各デコーダに返送する。
【0045】
第1のデコーダ502aなどの個々のデコーダが、更新されたデータ統計情報を統合データ統計情報推定モジュール504に渡す各ステップにおいて、デコーダは、前の推定との差を渡す。例えば、差は、「bin1:+5、bin2:-7」などのように例示されてもよい。コードワードの復号が完了すると、復号されたコードワードに関連付けられたホストデータは、データ統計情報がノイズを伴わないバージョンであり得る、ホストデバイスなどの標的位置に転送される。
【0046】
復号動作の開始時の又は高いビット誤り率を有するコードワードが、ほぼ又は完全に復号されるコードワードよりも高い重みを与えられるように、各デコーダからのデータは、信頼性を反映する重みを使用して取られてもよい。更に、過去の復号されたコードワードはまた、特定の重みで考慮されてもよく、特定の重みは、データの変化を反映するために時間と共に減少し、データ統計情報が時間に関して変化するようにすることができる。重みは、
図3A及び
図3Bに記載されるように、コードワードの特定のビットを受信する確率を考慮してもよい。
【0047】
図7のフローチャート700を参照すると、第1のデコーダ502aは、ブロック702において、
図1のNVM110などのNVMから第1のコードワードを受信する。第1のコードワードは、ビット誤り率などのコードワードの特性に基づいて、階層1、階層2、又は階層3デコーダに割り当てられてもよい。ブロック704において、第1のコードワードは、第1デコーダ502aによって復号され、第1のコードワードに関する第1のデータ統計情報が生成され、第1のデコーダ502aによって記憶される。ブロック706において、第1のコードワードに関する第1のデータ統計情報を生成した後、生成された第1のデータ統計情報は、統合データ統計情報推定モジュール504に転送される。生成された第1のデータ統計情報を統合データ統計情報推定モジュールに送信するタイミングは、
図1のデータ記憶デバイス106などのデータ記憶デバイスの動作又は条件に基づいて構成可能な又は適応的タイミングであってもよいことを理解されたい。ブロック708において、
図1のコントローラ108などのコントローラは、統合データ統計情報推定モジュール504が2つ以上の同様のデータ統計情報を含むかどうかを判定する。ホストデータがECCコードワードよりも長いことが多く、通常、順次読み出されるので、時間近接性の復号されたECCワードは、同様のデータ統計情報を有し得る。同様のデータ統計情報が存在しない場合、コントローラは、第2のコードワードを受信しデコーダに割り当てるのを待つ。
【0048】
ブロック702において、第2のデコーダ502bは、NVMから第2のコードワードを受信する。第2のコードワード及び第1のコードワードは実質的に同様であり、その結果、コードワードのデータ統計情報は、同様である。ブロック704において、第2のデコーダ502bは、第2のコードワードを復号し、第2のコードワードに関連付けられた第2のデータ統計情報を生成する。ブロック706において、生成された第2のデータ統計情報は、統合データ統計情報推定モジュール504に転送される。
【0049】
ブロック708において、統合データ統計情報推定モジュール504は、生成された第1のデータ統計情報及び生成された第2のデータ統計情報の両方を受信する。第1のコードワード及び第2のコードワードは実質的に同様であるため、生成された第1のデータ統計情報は、生成された第2のデータ統計情報によって更新され、その結果、ブロック710において、グローバル統計情報は、生成された第1のデータ統計情報及び生成された第2のデータ統計情報を含む。更に、統合データ統計情報推定モジュール504は、ブロック710でグローバル統計情報を利用してヒストグラムを生成する。
【0050】
第3のコードワードは、ブロック712において、
図1のコントローラ108などのコントローラによってNVMから取得される。グローバル統計情報に基づいて、複数のデコーダ502a~nの適切なデコーダは、第3のコードワードを受信する。例えば、第1のデコーダ502aは、生成されたヒストグラム及びグローバル統計情報に基づいて第3のコードワードを受信してもよい。ブロック714において、第3のコードワードが復号され、第3のデータ統計情報が生成される。ブロック716において、コントローラは、生成された第3のデータ統計情報とグローバル統計情報との間に不一致があるかどうかを判定する。ブロック716において不一致が存在しない場合、生成された第3のデータ統計情報は、ブロック718において統合データ統計情報推定モジュール504に転送され、生成された第3のデータ統計情報を用いてブロック710でグローバル統計情報及びヒストグラムが更新される。いくつかの実施例では、第1のコードワード、第2のコードワード、及び第3のコードワードは、連続的である。
【0051】
図6は、開示された実施形態による、デコーダプール内の選択的データ共有ICADの実装を示す概略ブロック図である。
図6のデコーダプールにおける選択的データ共有ICADの態様は、
図5に記載されるデコーダプール内のICADの態様と同様であり得る。更に、デコーダプールは、
図2のデコーダプール202であってもよい。複数のデコーダ602a~nの各デコーダを、
図5に示される実施形態などの統合データ統計情報推定モジュール604に連結するのではなく、複数のデコーダ602a~nの各デコーダは、複数のデータ統計情報推定モジュール606a~nのそれぞれのデータ統計情報推定モジュールに連結される。したがって、第1のデコーダ602a及び第1のデータ統計情報推定モジュール606aなどの各デコーダ-データ統計情報推定モジュール対は、統合データ統計情報推定モジュール604に連結される。
【0052】
第1のデコーダなどのデコーダのデータ統計情報と、統合データ統計情報推定モジュール604のグローバル統計情報との間に不一致がある場合、デコーダは、グローバル統計情報よりもむしろローカルデータ統計情報を使用し続けることを決定してもよい。同様に、グローバル統計情報は、ローカルデータ統計情報を使用して更新されなくてもよい。不一致は、相関によって、又はKL若しくはJS発散などの何らかの他の形態の距離によって測定することができ、どちらの側についても異なる閾値を保持してもよい。例えば、グローバル統計情報が更新されるが、ローカルデータ統計情報は更新されない場合があり得、逆もまた同様である。
【0053】
図5の例について更に詳細に記載すると、生成された第1のデータ統計情報、生成された第2のデータ統計情報、及び生成された第3のデータ統計情報を、統合データ統計情報推定モジュール604に直接提供するのではなく、生成されたデータ統計情報を、関連するデータ統計情報推定モジュール606a、606bによって記憶することができる。例えば、生成された第1のデータ統計情報及び生成された第2のデータ統計情報は、ブロック706において統合データ統計情報推定モジュール604に転送され、統合データ統計情報推定モジュール604は、ブロック710においてグローバル統計情報及びグローバル統計情報に基づくヒストグラムを生成する。
【0054】
しかしながら、ブロック716における、生成された第3のデータ統計情報と第1のデータ統計情報推定モジュール606aに提供されるグローバル統計情報とのミスマッチに起因して、生成された第3のデータ統計情報は、ブロック720でローカルに記憶されてもよい。次いで、第1のデータ統計情報推定モジュール606aは、グローバル統計情報及び関連ヒストグラムではなく、ローカルに記憶された集約データ統計情報及び関連ヒストグラムを、ブロック720で利用することができる。複数のデコーダ602a~nのそれぞれのデコーダは、不一致の場合には、より正確な集約データ統計情報及び関連付けられたヒストグラムを利用できるように、ローカルデータ統計情報を維持することができる。
【0055】
更に、生成されたデータ統計情報のそれぞれは、新たに生成されたデータ統計情報の重みが、古くに生成されたデータ統計情報よりも関連性が高いように重み付けされるように、重みに関連付けることができる。データ統計情報及び関連ヒストグラムが、新たに生成されたコードワード上により大きい値を置くように、重みは、受信されたコードワードに対するグローバル統計情報又はローカルデータ統計情報のより良好な柔軟性及び適応性を可能にし得る。例えば、第2の生成されたデータ統計情報は、第1の生成されたデータ統計情報のものよりも、生成されたデータ統計情報に関連付けられたより大きな重みを有してもよく、このとき第1の生成されたデータ統計情報は、第2の生成されたデータ統計情報の前に生成されている。
【0056】
図5及び
図6を参照すると、特定の実装形態では、第1の統合データ統計情報推定モジュールが第2の統計情報推定モジュールに連結されるように、2つ以上の統合データ統計情報推定モジュールが存在してもよい。更に、異なる種類のデコーダは、データ統計情報の異なる実現を必要とする場合があることを理解されたい。例えば、ビットフリッピングデコーダなどの第1のデコーダは、「k」ビットヒストグラムを利用してもよく、メッセージパッシングデコーダなどの第2のデコーダは、「n」ビットヒストグラムを利用してもよく、このとき「k」及び「n」は各ヒストグラムに関連付けられたビット数の値である。同じ種類のデコーダ(すなわち、「k」ビットヒストグラムを利用するデコーダ)の各グループは、同じタイプのデータ統計情報に関連付けられたグローバル統計を保持することになる。統合データ統計情報推定モジュール504、604は、異なる種類のグローバル統計情報を個別に記憶するように構成されてもよい。
【0057】
別の例では、上述の各デコーダグループがデータ統計情報の異なる基準(すなわち、「n」ビットヒストグラムを利用するデコーダ及び「n」ビットヒストグラムを利用するデコーダ)用であり得るとしても、同じ分布からのデータは、グループ間で渡すことができる。グループ間でデータを渡すために、データを調整することができる。例えば、8ビットヒストグラムは、データの損失なしに同じ4つのMSBを共有する全ての組み合わせを蓄積することによって、4ビットヒストグラムに変換することができる。別の例では、4ビットヒストグラムは、8ビットヒストグラムの結果と組み合わされてもよく、このとき8ビットの各グループに特定の係数が与えられる。8ビットのそれぞれにおいて、関連する4つのLSB又は4つのMSBは、4ビットヒストグラム内の特定の値に対応し得る。
【0058】
共有データ統計情報を使用してコンテンツアウェア復号を考慮するためにデコーダプールのアーキテクチャを適応させることにより、復号の待ち時間を減少させることができ、QoSを改善することができ、デコーダの補正能力を改善することができる。
【0059】
一実施形態では、NVMと、第1のコードワードを受信するように構成された第1のデコーダ及び第2のコードワードを受信するように構成された第2のデコーダを含む複数のデコーダを含む、NVMに連結されたコントローラと、を含むデータ記憶デバイスが開示され、第1のデコーダは、第1のコードワードに関する第1のデータ統計情報を生成するように構成されており、第2のデコーダは、第2のコードワードに関する第2のデータ統計情報を生成するように構成されている。データ記憶デバイスは、第1のデータ統計情報及び第2のデータ統計情報を受信するように構成された統合データ統計情報モジュールを更に含む。
【0060】
統合データ統計情報モジュールは、第1のデータ統計情報及び第2のデータ統計情報に基づいてデータヒストグラムを作成するように更に構成されている。コントローラは、第3のコードワードを受信するように構成されており、第3のコードワードは、データヒストグラムに基づいて複数のデコーダのうちの1つに割り当てられる。第1のコードワード及び第2のコードワードは実質的に同様であり、第1のデータ統計情報は、統合データ統計情報モジュール内の第2のデータ統計情報によって更新される。第1のデコーダは、第1のデータ統計情報を記憶する。コントローラは、第3のコードワードを受信するように構成されている。第1のコードワード、第2のコードワード、及び第3のコードワードは、それぞれ、シンドローム重み又はビット誤り率に基づいて第1のデコーダに割り当てられる。第1のデコーダは、第1のデータ統計情報に基づいて、第3のコードワードを複数のデコーダのうちの1つに提供する。複数のデコーダのそれぞれのデコーダは、階層1デコーダ、階層2デコーダ、及び階層3デコーダのうちの1つを含む。コントローラは、第3のコードワードを受信するように構成されている。第3のコードワードは、シンドローム重み又はビット誤り率に基づいて、階層1デコーダ、階層2デコーダ、及び階層3デコーダのうちの1つに割り当てられる。
【0061】
別の実施形態では、データ記憶デバイス用のコントローラが開示される。コントローラは、1つ以上のNVMに対するI/Oと、コンテンツアウェア復号のための方法を実行するように構成されたプロセッサと、を含む。この方法は、第1のデコーダにおいて1つ以上のNVMからコードワードを受信することと、コードワードに関するデータ統計情報を生成することと、データ統計情報を統合統計情報モジュールに提供することと、を含み、統合統計情報モジュールは、第1のデコーダを含む複数のデコーダに連結される。
【0062】
複数のデコーダのそれぞれのデコーダは、階層1デコーダ、階層2デコーダ、及び階層3デコーダのうちの1つを含む。本方法は、NVMのうちの1つ以上から第2のコードワードを受信することと、統合統計情報モジュールに基づいて複数のデコーダのうちの1つに第2のコードワードを割り当てることと、を更に含む。複数のデコーダのそれぞれは、データ統計情報をローカルに維持し、データ統計情報を統合統計情報モジュールに提供する。本方法は、ローカルに維持されたデータ統計情報に基づいて、第2のコードワードを複数のデコーダのうちの1つに割り当てることを更に含む。本方法は、ローカルに維持されたデータ統計情報と統合統計情報モジュールとの間で統計的不一致が検出される場合を更に含む。本方法は、統合統計情報モジュール及びローカルに維持されたデータのうちの1つがヒストグラムを含む場合を更に含む。本方法は、データ統計情報のうちの新しいものが、データ統計のうちの古いものよりも関連性が高いものとして重み付けされる場合を更に含む。
【0063】
別の実施形態では、NVM手段と、コンテンツアウェア復号のための方法を実行するためのコントローラ手段とを含む、データを記憶するためのシステムが開示される。本方法は、複数のデコーダ手段の第1のデコーダ手段において、NVM手段から第1のコードワードを受信することと、第1のデコーダ手段において第1のコードワードを復号することと、第1のコードワードを復号することに基づいて第1のデータ統計情報を生成することと、を含む。本方法は、複数のデコーダ手段のそれぞれに連結された統合データ統計情報モジュールを、第1のデータ統計情報で更新することと、NVM手段から第2の第2のコードワードを受信することと、シンドローム重み又はビット誤り率に基づいて、第2のコードワードを複数のデコーダ手段の第2のデコーダ手段に割り当てることと、を更に含む。
【0064】
本方法は、第2のデータ統計情報を第2のデコーダ手段において生成することと、第2のデータ統計情報に基づいて統合データ統計情報モジュールを更新することと、を更に含む。第2のデータ統計情報は、データ統計情報よりも関連性が高いとして重み付けされる。複数のデコーダ手段のそれぞれは、データ統計情報を統合データ統計情報モジュールに提供するように構成されている。NVM手段から複数のデコーダ手段のうちの1つへの後続のコードワードの割り当ては、シンドローム重み又はビット誤り率に基づく。
【0065】
上記は本開示の実施形態を目的とするが、本開示の他の及び更なる実施形態が、その基本的範囲から逸脱することなく考案されてもよく、その範囲は、以下の特許請求の範囲によって決定される。