JP7186262B2 - 共有データ統計情報を使用したコンテンツアウェア復号(Content Aware Decoding) - Google Patents

共有データ統計情報を使用したコンテンツアウェア復号(Content Aware Decoding) Download PDF

Info

Publication number
JP7186262B2
JP7186262B2 JP2021103680A JP2021103680A JP7186262B2 JP 7186262 B2 JP7186262 B2 JP 7186262B2 JP 2021103680 A JP2021103680 A JP 2021103680A JP 2021103680 A JP2021103680 A JP 2021103680A JP 7186262 B2 JP7186262 B2 JP 7186262B2
Authority
JP
Japan
Prior art keywords
decoder
data
codeword
statistics
data statistics
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021103680A
Other languages
English (en)
Other versions
JP2022075487A (ja
Inventor
ダディ・デヴィット・アブラハム
ラン・ザミール
オマー・ファインジルバー
Original Assignee
ウェスタン デジタル テクノロジーズ インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ウェスタン デジタル テクノロジーズ インコーポレーテッド filed Critical ウェスタン デジタル テクノロジーズ インコーポレーテッド
Publication of JP2022075487A publication Critical patent/JP2022075487A/ja
Application granted granted Critical
Publication of JP7186262B2 publication Critical patent/JP7186262B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/353Adaptation to the channel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)
  • Memory System (AREA)

Description

(関連出願の相互参照)
本出願は、参照により本明細書に組み込まれる、2020年11月6日に出願された米国特許仮出願第63/110,738号の利益を主張する。
(発明の分野)
本開示の実施形態は、概して、データの誤り検出及び補正に関し、より具体的には、コンテンツアウェアの誤り検出及び補正のためのデータ統計情報の使用に関する。
関連技術の説明
データ記憶製品要件が増加するにつれて、ホストに送信するための記憶データの単一デコーダの性能限界に達してきた。これに応じて、多くのデータ記憶製品がデコーダのプールを採用している。一緒に復号されるデータのブロックは、典型的には、同様のデータ特性を有するため、サービス品質(QoS)を改善するために、個々のデコーダは、コンテンツ特性に関する統計情報を維持してもよい。統計情報を維持することによって、データ統計情報に基づくその復号ストラテジを予測的に構成して、デコーダをより効率的に復号するように構成することができる。
しかしながら、データ統計情報は、個々のデコーダによって復号されたデータに基づいているため、それらの予測能力は限定され得、例えば、QoSを劣化させ得る「ヘッドオブラインブロッキング」シナリオをもたらす予測の見逃しにつながる。
必要なのは、これら及び他の欠陥を克服するシステム及び方法である。
本開示は、概して、共有データ統計情報を使用したコンテンツアウェア復号に関する。各デコーダは、各デコーダが復号し、これらの統計情報を統合統計情報プールに提供するコンテンツの統計データを生成する。コードワードがデコーダプールに到着すると、統合統計情報を利用して、破損したビット値又は欠落したビット値を推定又は予測する。コードワードは、シンドローム重み又はビット誤り率に基づいて、階層1デコーダ、階層2デコーダ、又は階層3デコーダなどの特定のデコーダに割り当てられてもよい。割り当てられたデコーダは、コードワードを処理した後に、統合統計情報プールを更新する。いくつかの実施形態では、各デコーダは、コードワードに関するローカル統計情報を追加的に維持し、ローカル統計情報と統合統計情報プールとの間に統計的に有意な不一致があるときにローカル統計情報を使用することができる。
一実施形態では、不揮発性メモリ(NVM)と、複数のデコーダ、すなわち第1のコードワードを受信するように構成された第1のデコーダ及び第2のコードワードを受信するように構成された第2のデコーダを含む、NVMに連結されたコントローラと、を含むデータ記憶デバイスが開示され、第1のデコーダは、第1のコードワードに関する第1のデータ統計情報を生成するように構成されており、第2のデコーダは、第2のコードワードに関する第2のデータ統計情報を生成するように構成されている。データ記憶デバイスは、第1のデータ統計情報及び第2のデータ統計情報を受信するように構成された統合データ統計情報モジュールを更に含む。
別の実施形態では、データ記憶デバイス用のコントローラが開示される。コントローラは、1つ以上のNVMに対するI/Oと、コンテンツアウェア復号のための方法を実行するように構成されたプロセッサと、を含む。この方法は、第1のデコーダにおいて1つ以上のNVMからコードワードを受信することと、コードワードに関するデータ統計情報を生成することと、データ統計情報を統合統計情報モジュールに提供することと、を含み、統合統計情報モジュールは、第1のデコーダを含む複数のデコーダに連結される。
別の実施形態では、NVM手段と、コンテンツアウェア復号のための方法を実行するためのコントローラ手段とを含む、データを記憶するためのシステムが開示される。本方法は、複数のデコーダ手段の第1のデコーダ手段において、NVM手段から第1のコードワードを受信することと、第1のデコーダ手段において第1のコードワードを復号することと、第1のコードワードを復号することに基づいて第1のデータ統計情報を生成することと、を含む。本方法は、複数のデコーダ手段のそれぞれに連結された統合データ統計情報モジュールを、第1のデータ統計情報で更新することと、NVM手段から第2の第2のコードワードを受信することと、統合データ統計情報モジュールに基づいて、第2のコードワードを複数のデコーダ手段の第2のデコーダ手段に割り当てることと、を更に含む。
本開示の上記の特徴を詳細に理解することができるように、簡潔に上で要約した本開示のより具体的な説明は、実施形態を参照することによってなされてもよく、それらのいくつかが添付の図面に示されている。しかしながら、添付の図面は、本開示の典型的な実施形態のみを示し、したがって、その範囲を限定するものと見なされるべきではなく、本開示が他の同等に有効な実施形態を認め得ることに留意すべきである。
特定の実施形態による、データ記憶デバイスがホストデバイスの記憶デバイスとして機能し得る記憶システムを示す概略ブロック図である。
特定の実施形態による、デコーダプールアーキテクチャを示す概略ブロック図である。
4ビットワードの組の例である。 特定の実施形態による4ビットワード配列出現頻度を示すヒストグラムである。
特定の実施形態による、反復型コンテンツアウェアデコーダ(ICAD)論理(Iterative Content Aware Decoder logic)の概略図である。
特定の実施形態による、デコーダプール内のICADの実装を示す概略ブロック図である。
特定の実施形態による、デコーダプール内の選択的データ共有ICADの実装を示す概略ブロック図である。
特定の実施形態による、デコーダプール内のICADの実装を示すフローチャートである。
理解を容易にするために、図面に共通する同一の要素を示すために、可能な限り、同一の参照番号を使用している。一実施形態で開示される要素は、特に断ることなく、他の実施形態に有益に利用され得ることが想到される。
以下では、本開示の実施形態を参照する。しかしながら、本開示は、具体的に説明される実施形態に限定されないことを理解されたい。その代わりに、以下の特徴及び要素の任意の組み合わせは、異なる実施形態に関連するか否かに関わらず、本開示を実施及び実践することが企図される。更に、本開示の実施形態は、他の可能な解決策及び/又は先行技術を上回る利点を達成することができるが、所与の実施形態によって特定の利点が達成されるか否かは、本開示を限定するものではない。したがって、以下の態様、特徴、実施形態、及び利点は、単なる例示に過ぎず、請求項に明示的に記載されている場合を除いて、添付の「特許請求の範囲」の要素又は制限と見なされない。同様に、「本開示」への言及は、本明細書に開示される任意の発明の主題の一般化として解釈されるものではなく、請求項に明示的に記載されている場合を除いて、添付の「特許請求の範囲」の要素又は制限であると見なされるべきではない。
本開示は、概して、共有データ統計情報を使用したコンテンツアウェア復号に関する。各デコーダは、各デコーダが復号し、これらの統計情報を統合統計情報プールに提供するコンテンツの統計データを生成する。コードワードがデコーダプールに到着すると、統合統計情報を利用して、破損したビット値又は欠落したビット値を推定又は予測する。コードワードは、シンドローム重み又はビット誤り率に基づいて、階層1デコーダ、階層2デコーダ、又は階層3デコーダなどの特定のデコーダに割り当てられてもよい。割り当てられたデコーダは、コードワードを処理した後に、統合統計情報プールを更新する。いくつかの実施形態では、各デコーダは、コードワードに関するローカル統計情報を追加的に維持し、ローカル統計情報と統合統計情報プールとの間に統計的に有意な不一致があるときにローカル統計情報を使用することができる。
図1は、特定の実施形態による、データ記憶デバイス106がホストデバイス104の記憶デバイスとして機能し得る記憶システム100を示す概略ブロック図である。例えば、ホストデバイス104は、データ記憶デバイス106に含まれる不揮発性メモリ(NVM)110を利用して、データを記憶及び取得することができる。ホストデバイス104は、ホストDRAM138を含む。いくつかの実施形態では、記憶システム100は、記憶アレイとして動作し得るデータ記憶デバイス106などの複数の記憶デバイスを含んでもよい。例えば、記憶システム100は、ホストデバイス104のための大量記憶デバイスとして集合的に機能する安価な/独立ディスクの冗長アレイ(RAID)として構成された複数のデータ記憶デバイス106を含んでもよい。
ホストデバイス104は、データ記憶デバイス106などの1つ以上の記憶デバイスに、かつ/又は1つ以上の記憶デバイスからデータを記憶及び/又は取得することができる。図1に示すように、ホストデバイス104は、インターフェース114を介してデータ記憶デバイス106と通信することができる。ホストデバイス104は、コンピュータサーバ、ネットワーク接続ストレージ(NAS)ユニット、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォン、いわゆる「スマート」パッドなどの電話送受器、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、又はデータ記憶デバイスからデータを送信若しくは受信することができる他の機器を含む広範囲のデバイスのうちのいずれかを含んでもよい。
データ記憶デバイス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のマザーボードに直接連結(例えば、直接半田付け)されてもよい。
データ記憶デバイス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から電力を受け取り得る。
NVM110は、複数のメモリデバイス又はメモリユニットを含み得る。NVM110は、データを記憶及び/又は取得するように構成されていてもよい。例えば、NVM110のメモリユニットは、データ及びデータを記憶するようにメモリユニットに命令するメッセージをコントローラ108から受信してもよい。同様に、NVM110のメモリユニットは、データを取得するようにメモリユニットに命令するメッセージをコントローラ108から受信してもよい。いくつかの実施例では、メモリユニットのそれぞれをダイと呼ぶことができる。いくつかの実施形態では、単一の物理チップは、複数のダイ(すなわち、複数のメモリユニット)を含み得る。いくつかの実施形態では、各メモリユニットは、比較的大量のデータ(例えば、128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TBなど)を記憶するように構成されてもよい。
いくつかの実施形態では、NVM110の各メモリユニットは、フラッシュメモリデバイス、相変化メモリ(PCM)デバイス、抵抗変化型メモリ(ReRAM)デバイス、磁気抵抗メモリ(MRAM)デバイス、強誘電体メモリ(F-RAM)、ホログラフィックメモリデバイス、及び任意の他の種類のNVMデバイスなどの、任意の種類のNVMデバイスを含み得る。
NVM110は、複数のフラッシュメモリデバイス又はメモリユニットを備えてもよい。NVMフラッシュメモリデバイスは、NAND又はNORベースのフラッシュメモリデバイスを含んでもよく、各フラッシュメモリセルのトランジスタの浮遊ゲートに含まれる電荷に基づいてデータを記憶することができる。NVMフラッシュメモリデバイスでは、フラッシュメモリデバイスは、複数のダイに分割されてもよく、複数のダイの各ダイは複数のブロックを含み、これらは更に複数のページに分割され得る。特定のメモリデバイス内の複数のブロックの各ブロックは、複数のNVMセルを含み得る。NVMセルの行は、複数のページのうちのあるページを定義するためにワード線を使用して電気的に接続されてもよい。複数のページのそれぞれの対応するセルは、それぞれのビット線に電気的に接続されてもよい。更に、NVMフラッシュメモリデバイスは、2D又は3Dデバイスであってもよく、シングルレベルセル(SLC)、マルチレベルセル(MLC)、トリプルレベルセル(TLC)、又はクアッドレベルセル(QLC)であってもよい。コントローラ108は、NVMフラッシュメモリデバイスにページレベルでデータを書き込み、NVMフラッシュメモリデバイスからページレベルでデータを読み取り、NVMフラッシュメモリデバイスからブロックレベルでデータを消去することができる。
データ記憶デバイス106は、データ記憶デバイス106の1つ以上の構成要素に電力を供給し得る電源111を含む。標準モードで動作するとき、電源111は、ホストデバイス104などの外部デバイスによって供給される電力を使用して、1つ以上の構成要素に電力を供給することができる。例えば、電源111は、インターフェース114を介してホストデバイス104から受け取った電力を使用して、1つ以上の構成要素に電力を供給してもよい。いくつかの実施形態では、電源111は、電力を外部デバイスから受け取ることを停止する場合などのシャットダウンモードで動作するときに、1つ以上の構成要素に電力を供給するように構成された1つ以上の蓄電構成要素(power storage component)を含んでもよい。このように、電源111は、オンボードバックアップ電源として機能してもよい。1つ以上の蓄電構成要素のいくつかの例としては、コンデンサ、スーパーキャパシタ、電池などが挙げられるが、これらに限定されない。いくつかの実施形態では、1つ以上の蓄電構成要素によって蓄えられ得る電力の量は、1つ以上の蓄電構成要素のコスト及び/又はサイズ(例えば、面積/体積)の関数であり得る。換言すれば、1つ以上の蓄電構成要素によって蓄えられる電力の量が増加するにつれて、1つ以上の蓄電構成要素のコスト及び/又はサイズも増加する。
データ記憶デバイス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など)が挙げられるが、これらに限定されない。
データ記憶デバイス106は、データ記憶デバイス106の1つ以上の動作を管理し得るコントローラ108を含む。例えば、コントローラ108は、NVM110とのデータの読み取り及び/又はデータの書き込みを管理してもよい。いくつかの実施形態では、データ記憶デバイス106がホストデバイス104から書き込みコマンドを受信すると、コントローラ108は、データをNVM110に記憶するデータ記憶コマンドを開始し、データ記憶コマンドの進捗を監視してもよい。コントローラ108は、記憶システム100の少なくとも1つの動作特性を決定し、少なくとも1つの動作特性をNVM110に記憶してもよい。いくつかの実施形態では、データ記憶デバイス106がホストデバイス104から書き込みコマンドを受信すると、コントローラ108は、書き込みコマンドに関連付けられたデータをNVM110に送信する前に、内部メモリ又は書き込みバッファ116に一時的にデータを記憶する。
コントローラ108は、デコーダプール150を含む。デコーダプール150は、コントローラ108の低密度パリティック検査(LDPC)エンジンの一部であってもよい。デコーダプール150は、1つ以上のデコーダを含んでもよく、1つ以上のデコーダのそれぞれは1つ以上のギアを有する。1つ以上のギアのそれぞれは、階層1、階層2、又は階層3デコーダであってもよい。デコーダの異なる階層の例示は、限定することを意図するものではなく、可能な実施形態の例を提供することを意図するものである。例えば、用語「階層」の使用は、異なる状況に特化された異なるデコーダのためのプレースホルダとして利用されてもよい。更に、例示されたデコーダの階層よりも多いか、又はそれよりも少ないことが想到される。
階層2デコーダは、低ビット誤り率(BER)コードワードのためなど、あまり集約的でない復号タスクのために利用されてもよく、階層3デコーダは、より高いBERコードワードのためなど、より集約的な復号タスクのために利用されてもよい。他の実施形態では、選択デコーダは、受信コードワードが階層1デコーダ、階層2デコーダ、又は階層3デコーダのいくつかの特定のシンドローム重み閾値を超えるかどうかに基づいてもよい。利用されるデコーダは、復号動作、並びにデータ記憶デバイスの他の構成要素による現在の電力消費などの、利用される現在のリソースに依存し得る。様々なデコーダは、トレードオフがギアシフト方式であるように、待ち時間と補正能力に対する出力との間のトレードオフを使用することができる。例えば、階層1デコーダは、ビットフリッピングデコーダであってもよいが、一方で階層2及び階層3デコーダは、メッセージパッシングデコーダであってもよい。この文脈では、階層2デコーダは、より速いメッセージパッシングデコーダであるが、階層3はより強力なメッセージパッシングデコーダである。
図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デコーダの数よりも多い。
更に、コントローラ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デコーダは、統合統計情報プール(以下で論じられる)を更新し、いくつかの実施形態では、コードワードを上位デコーダに渡す前に、それ自体のデータ統計情報(以下で論じる)を更新してもよい。
反復型コンテンツアウェアデコーダ(ICAD)は、デコーダプール202の複数のデコーダ204a~n、206a~n、208a~nのそれぞれのデコーダに埋め込まれてもよい。ICADは、デコーダ演算論理にホストデータ統計情報が埋め込まれることを可能にし、それにより、より良好なホストデータ統計情報が記憶されると、デコーダがより良好に機能する。ホストデータ統計情報が利用できない場合、データ統計情報は、関連するコードワードについて推定される。更に、ICADは、ICADがコードワードの復号とホストデータ統計情報の再推定との間を反復するような繰り返し方法で機能する。
ホスト最小データサイズは、フラッシュメモリユニット(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のそれぞれのデコーダにわたって統合推定統計情報を共有することにより、デコーダ待ち時間、補正能力、及びシステム性能を改善することができる。前述の実施例は、限定することを意図するものではないことを理解されたい。
図3Aは、4ビットワードの組300の例である。図3Bは、図3Aの組300の4ビットワード配列出現頻度を示すヒストグラム350である。4つのビットの組み合わせはそれぞれ、10進値の2進表現であるビットワードに対応する。例えば、4つのビットの組み合わせは、「abcd」の形態であってもよく、「a」、「b」、「c」、及び「d」はそれぞれ0又は1のいずれかに対応する。4つのビットの組み合わせは、以下の式によって2進数から10進数に変換され得る:(abcd)=(a×2)+(b×2)+(c×2)+(d×2)=(x)10(式中、「x」は、2進数の4ビットの組み合わせの10進値である。4ビットワードのそれぞれは、0~15の値に対応する。例えば、0000は0と等しく、0110は6と等しく、1111は15と等しい。
ヒストグラム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%になるであろう。
図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に関連付けられる。
一実施形態では、データ内のビットは依存している。例えば、テキストファイルでは、ビットはバイトで編成され、各バイトは文字を表す。テキストファイルの例では、最も使用される文字は英数字、スペース、及び句読点マークであるが、残りの文字は、あまり一般的ではない。これは、同じバイトからのビットが統計的に依存し、バイト内のビットの一部を知ることにより、同じバイト内の他のビットの信頼性が増大することを示す。データは、グループ内の全てのビットが統計的に依存するようにグループに分割されてもよい。各グループは記号又は記号ノードと見なされる。
図4では、記号は、8個のビットノード406a~h、406i~pによって示される8ビットのグループである。ICADによって実行される復号動作中に、1つ以上の記号ノード402、404のそれぞれは、複数のビットノード406の各ビットノードにメッセージを送信する。メッセージは、同じコードワードの他のビットからの情報及び各記号の確率を反映するデータ統計情報に従って、上記の図3A及び図3Bに記載されるような「0」又は「1」になるビットの確率を含み得る。チェックノード408は、ビットノード値が正確であることを確実にするために、複数のビットノード406のビットノードのそれぞれの値をチェックするために提供される。チェックノード408は、ビットノード値が制約されるように、コードワードビットのパリティ制約を含んでもよい。
確率は、符号化手順中に学習することができ、データは誤りなしに取得される。しかしながら、符号化手順中に統計情報を学習することは、学習した統計情報を、データ記憶デバイスの図1のNVM110などのメモリに記憶する必要があるため、コストがかかる場合がある。上述のデータ統計推定方式の間などに、データをスキャンし、データ内の各記号の発生をカウントすることによって、確率が計算され、データの将来の読み取りのための追加情報として記憶される。更に、確率は読み取りデータ自体から学習されてもよい。誤差の数は、高い精度を有する確率が得られるように、十分に低くてもよい。また、復号手順の間に、確率を推定することもできる。復号の各段階において、各ビットは、上述のように、そえ確率を「0」又は「1」に保持する。これらの確率を考慮すると、各記号の各発生(occurence)の確率を得ることができる。
図5は、開示される実施形態による、デコーダプール内のICADの実装を示す概略ブロック図である。デコーダプールは、図2のデコーダプール202であってもよい。複数のデコーダ502a~nのそれぞれのデコーダ用のホストデータ統計情報推定モジュールを有するのではなく、複数のデコーダ502a~nは、統合データ統計情報推定モジュール504に連結され、その結果、統合データ統計情報推定モジュール504に連結された複数のデコーダ502a~nのデコーダの全てによって併せて推定される。
「k」ビット長の全てのコードワードに関するデータ統計情報の統合表現を保持することによって、複数のデコーダ502a~nのそれぞれのデコーダについて、データ統計情報を併せて推定することができ、「k」はビット長の数値を指す。データ統計情報は、図3のヒストグラム350などのヒストグラムとして、複数のデコーダ502a~nの各デコーダ内に記憶されてもよく、ヒストグラムは、「k」ビット長で復号された各コードワードで連続的に更新される。複数のデコーダ502a~nのそれぞれは、更新された統計情報を統合データ統計情報推定モジュール504に送信し、ここで、統合データ統計情報モジュール504は、個々の更新された統計情報を統合し、グローバル統計情報を複数のデコーダ502a~nの各デコーダに返送する。
第1のデコーダ502aなどの個々のデコーダが、更新されたデータ統計情報を統合データ統計情報推定モジュール504に渡す各ステップにおいて、デコーダは、前の推定との差を渡す。例えば、差は、「bin1:+5、bin2:-7」などのように例示されてもよい。コードワードの復号が完了すると、復号されたコードワードに関連付けられたホストデータは、データ統計情報がノイズを伴わないバージョンであり得る、ホストデバイスなどの標的位置に転送される。
復号動作の開始時の又は高いビット誤り率を有するコードワードが、ほぼ又は完全に復号されるコードワードよりも高い重みを与えられるように、各デコーダからのデータは、信頼性を反映する重みを使用して取られてもよい。更に、過去の復号されたコードワードはまた、特定の重みで考慮されてもよく、特定の重みは、データの変化を反映するために時間と共に減少し、データ統計情報が時間に関して変化するようにすることができる。重みは、図3A及び図3Bに記載されるように、コードワードの特定のビットを受信する確率を考慮してもよい。
図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のコードワードを受信しデコーダに割り当てるのを待つ。
ブロック702において、第2のデコーダ502bは、NVMから第2のコードワードを受信する。第2のコードワード及び第1のコードワードは実質的に同様であり、その結果、コードワードのデータ統計情報は、同様である。ブロック704において、第2のデコーダ502bは、第2のコードワードを復号し、第2のコードワードに関連付けられた第2のデータ統計情報を生成する。ブロック706において、生成された第2のデータ統計情報は、統合データ統計情報推定モジュール504に転送される。
ブロック708において、統合データ統計情報推定モジュール504は、生成された第1のデータ統計情報及び生成された第2のデータ統計情報の両方を受信する。第1のコードワード及び第2のコードワードは実質的に同様であるため、生成された第1のデータ統計情報は、生成された第2のデータ統計情報によって更新され、その結果、ブロック710において、グローバル統計情報は、生成された第1のデータ統計情報及び生成された第2のデータ統計情報を含む。更に、統合データ統計情報推定モジュール504は、ブロック710でグローバル統計情報を利用してヒストグラムを生成する。
第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のコードワードは、連続的である。
図6は、開示された実施形態による、デコーダプール内の選択的データ共有ICADの実装を示す概略ブロック図である。図6のデコーダプールにおける選択的データ共有ICADの態様は、図5に記載されるデコーダプール内のICADの態様と同様であり得る。更に、デコーダプールは、図2のデコーダプール202であってもよい。複数のデコーダ602a~nの各デコーダを、図5に示される実施形態などの統合データ統計情報推定モジュール604に連結するのではなく、複数のデコーダ602a~nの各デコーダは、複数のデータ統計情報推定モジュール606a~nのそれぞれのデータ統計情報推定モジュールに連結される。したがって、第1のデコーダ602a及び第1のデータ統計情報推定モジュール606aなどの各デコーダ-データ統計情報推定モジュール対は、統合データ統計情報推定モジュール604に連結される。
第1のデコーダなどのデコーダのデータ統計情報と、統合データ統計情報推定モジュール604のグローバル統計情報との間に不一致がある場合、デコーダは、グローバル統計情報よりもむしろローカルデータ統計情報を使用し続けることを決定してもよい。同様に、グローバル統計情報は、ローカルデータ統計情報を使用して更新されなくてもよい。不一致は、相関によって、又はKL若しくはJS発散などの何らかの他の形態の距離によって測定することができ、どちらの側についても異なる閾値を保持してもよい。例えば、グローバル統計情報が更新されるが、ローカルデータ統計情報は更新されない場合があり得、逆もまた同様である。
図5の例について更に詳細に記載すると、生成された第1のデータ統計情報、生成された第2のデータ統計情報、及び生成された第3のデータ統計情報を、統合データ統計情報推定モジュール604に直接提供するのではなく、生成されたデータ統計情報を、関連するデータ統計情報推定モジュール606a、606bによって記憶することができる。例えば、生成された第1のデータ統計情報及び生成された第2のデータ統計情報は、ブロック706において統合データ統計情報推定モジュール604に転送され、統合データ統計情報推定モジュール604は、ブロック710においてグローバル統計情報及びグローバル統計情報に基づくヒストグラムを生成する。
しかしながら、ブロック716における、生成された第3のデータ統計情報と第1のデータ統計情報推定モジュール606aに提供されるグローバル統計情報とのミスマッチに起因して、生成された第3のデータ統計情報は、ブロック720でローカルに記憶されてもよい。次いで、第1のデータ統計情報推定モジュール606aは、グローバル統計情報及び関連ヒストグラムではなく、ローカルに記憶された集約データ統計情報及び関連ヒストグラムを、ブロック720で利用することができる。複数のデコーダ602a~nのそれぞれのデコーダは、不一致の場合には、より正確な集約データ統計情報及び関連付けられたヒストグラムを利用できるように、ローカルデータ統計情報を維持することができる。
更に、生成されたデータ統計情報のそれぞれは、新たに生成されたデータ統計情報の重みが、古くに生成されたデータ統計情報よりも関連性が高いように重み付けされるように、重みに関連付けることができる。データ統計情報及び関連ヒストグラムが、新たに生成されたコードワード上により大きい値を置くように、重みは、受信されたコードワードに対するグローバル統計情報又はローカルデータ統計情報のより良好な柔軟性及び適応性を可能にし得る。例えば、第2の生成されたデータ統計情報は、第1の生成されたデータ統計情報のものよりも、生成されたデータ統計情報に関連付けられたより大きな重みを有してもよく、このとき第1の生成されたデータ統計情報は、第2の生成されたデータ統計情報の前に生成されている。
図5及び図6を参照すると、特定の実装形態では、第1の統合データ統計情報推定モジュールが第2の統計情報推定モジュールに連結されるように、2つ以上の統合データ統計情報推定モジュールが存在してもよい。更に、異なる種類のデコーダは、データ統計情報の異なる実現を必要とする場合があることを理解されたい。例えば、ビットフリッピングデコーダなどの第1のデコーダは、「k」ビットヒストグラムを利用してもよく、メッセージパッシングデコーダなどの第2のデコーダは、「n」ビットヒストグラムを利用してもよく、このとき「k」及び「n」は各ヒストグラムに関連付けられたビット数の値である。同じ種類のデコーダ(すなわち、「k」ビットヒストグラムを利用するデコーダ)の各グループは、同じタイプのデータ統計情報に関連付けられたグローバル統計を保持することになる。統合データ統計情報推定モジュール504、604は、異なる種類のグローバル統計情報を個別に記憶するように構成されてもよい。
別の例では、上述の各デコーダグループがデータ統計情報の異なる基準(すなわち、「n」ビットヒストグラムを利用するデコーダ及び「n」ビットヒストグラムを利用するデコーダ)用であり得るとしても、同じ分布からのデータは、グループ間で渡すことができる。グループ間でデータを渡すために、データを調整することができる。例えば、8ビットヒストグラムは、データの損失なしに同じ4つのMSBを共有する全ての組み合わせを蓄積することによって、4ビットヒストグラムに変換することができる。別の例では、4ビットヒストグラムは、8ビットヒストグラムの結果と組み合わされてもよく、このとき8ビットの各グループに特定の係数が与えられる。8ビットのそれぞれにおいて、関連する4つのLSB又は4つのMSBは、4ビットヒストグラム内の特定の値に対応し得る。
共有データ統計情報を使用してコンテンツアウェア復号を考慮するためにデコーダプールのアーキテクチャを適応させることにより、復号の待ち時間を減少させることができ、QoSを改善することができ、デコーダの補正能力を改善することができる。
一実施形態では、NVMと、第1のコードワードを受信するように構成された第1のデコーダ及び第2のコードワードを受信するように構成された第2のデコーダを含む複数のデコーダを含む、NVMに連結されたコントローラと、を含むデータ記憶デバイスが開示され、第1のデコーダは、第1のコードワードに関する第1のデータ統計情報を生成するように構成されており、第2のデコーダは、第2のコードワードに関する第2のデータ統計情報を生成するように構成されている。データ記憶デバイスは、第1のデータ統計情報及び第2のデータ統計情報を受信するように構成された統合データ統計情報モジュールを更に含む。
統合データ統計情報モジュールは、第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つに割り当てられる。
別の実施形態では、データ記憶デバイス用のコントローラが開示される。コントローラは、1つ以上のNVMに対するI/Oと、コンテンツアウェア復号のための方法を実行するように構成されたプロセッサと、を含む。この方法は、第1のデコーダにおいて1つ以上のNVMからコードワードを受信することと、コードワードに関するデータ統計情報を生成することと、データ統計情報を統合統計情報モジュールに提供することと、を含み、統合統計情報モジュールは、第1のデコーダを含む複数のデコーダに連結される。
複数のデコーダのそれぞれのデコーダは、階層1デコーダ、階層2デコーダ、及び階層3デコーダのうちの1つを含む。本方法は、NVMのうちの1つ以上から第2のコードワードを受信することと、統合統計情報モジュールに基づいて複数のデコーダのうちの1つに第2のコードワードを割り当てることと、を更に含む。複数のデコーダのそれぞれは、データ統計情報をローカルに維持し、データ統計情報を統合統計情報モジュールに提供する。本方法は、ローカルに維持されたデータ統計情報に基づいて、第2のコードワードを複数のデコーダのうちの1つに割り当てることを更に含む。本方法は、ローカルに維持されたデータ統計情報と統合統計情報モジュールとの間で統計的不一致が検出される場合を更に含む。本方法は、統合統計情報モジュール及びローカルに維持されたデータのうちの1つがヒストグラムを含む場合を更に含む。本方法は、データ統計情報のうちの新しいものが、データ統計のうちの古いものよりも関連性が高いものとして重み付けされる場合を更に含む。
別の実施形態では、NVM手段と、コンテンツアウェア復号のための方法を実行するためのコントローラ手段とを含む、データを記憶するためのシステムが開示される。本方法は、複数のデコーダ手段の第1のデコーダ手段において、NVM手段から第1のコードワードを受信することと、第1のデコーダ手段において第1のコードワードを復号することと、第1のコードワードを復号することに基づいて第1のデータ統計情報を生成することと、を含む。本方法は、複数のデコーダ手段のそれぞれに連結された統合データ統計情報モジュールを、第1のデータ統計情報で更新することと、NVM手段から第2の第2のコードワードを受信することと、シンドローム重み又はビット誤り率に基づいて、第2のコードワードを複数のデコーダ手段の第2のデコーダ手段に割り当てることと、を更に含む。
本方法は、第2のデータ統計情報を第2のデコーダ手段において生成することと、第2のデータ統計情報に基づいて統合データ統計情報モジュールを更新することと、を更に含む。第2のデータ統計情報は、データ統計情報よりも関連性が高いとして重み付けされる。複数のデコーダ手段のそれぞれは、データ統計情報を統合データ統計情報モジュールに提供するように構成されている。NVM手段から複数のデコーダ手段のうちの1つへの後続のコードワードの割り当ては、シンドローム重み又はビット誤り率に基づく。
上記は本開示の実施形態を目的とするが、本開示の他の及び更なる実施形態が、その基本的範囲から逸脱することなく考案されてもよく、その範囲は、以下の特許請求の範囲によって決定される。

Claims (20)

  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に記載のシステム。
JP2021103680A 2020-11-06 2021-06-22 共有データ統計情報を使用したコンテンツアウェア復号(Content Aware Decoding) Active JP7186262B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063110738P 2020-11-06 2020-11-06
US63/110,738 2020-11-06
US17/211,605 US11528038B2 (en) 2020-11-06 2021-03-24 Content aware decoding using shared data statistics
US17/211,605 2021-03-24

Publications (2)

Publication Number Publication Date
JP2022075487A JP2022075487A (ja) 2022-05-18
JP7186262B2 true JP7186262B2 (ja) 2022-12-08

Family

ID=81453669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021103680A Active JP7186262B2 (ja) 2020-11-06 2021-06-22 共有データ統計情報を使用したコンテンツアウェア復号(Content Aware Decoding)

Country Status (3)

Country Link
US (1) US11528038B2 (ja)
JP (1) JP7186262B2 (ja)
KR (1) KR102479236B1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230396271A1 (en) * 2022-06-01 2023-12-07 Micron Technology, Inc. Early stopping of bit-flip low density parity check decoding based on syndrome weight

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176911A (ja) 2006-12-29 2008-07-31 Marvel Internatl Ltd ホログラフィック記憶のための連結コード
JP2012118979A (ja) 2010-12-03 2012-06-21 Internatl Business Mach Corp <Ibm> Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US20160006462A1 (en) 2014-07-07 2016-01-07 Ocz Storage Solutions, Inc. Non-volatile memory controller with error correction (ecc) tuning via error statistics collection
JP2017097942A (ja) 2015-11-19 2017-06-01 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 時間変動信号品質に適合したトラック依存復号化のためのシステム
US20180091172A1 (en) 2016-03-04 2018-03-29 Western Digital Technologies, Inc. Ecc and raid-type decoding
US20210344356A1 (en) 2020-05-04 2021-11-04 Samsung Electronics Co., Ltd. Mobile data storage

Family Cites Families (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381106B1 (en) 2000-04-12 2002-04-30 International Business Machines Corporation Top spin valve sensor that has a free layer structure with a cobalt iron boron (cofeb) layer
US6809900B2 (en) 2001-01-25 2004-10-26 Seagate Technology Llc Write head with magnetization controlled by spin-polarized electron current
US7035062B1 (en) 2001-11-29 2006-04-25 Seagate Technology Llc Structure to achieve sensitivity and linear density in tunneling GMR heads using orthogonal magnetic alignments
US6928590B2 (en) 2001-12-14 2005-08-09 Matrix Semiconductor, Inc. Memory device and method for storing bits in non-adjacent storage locations in a memory array
US7696548B2 (en) 2005-08-09 2010-04-13 Magic Technologies, Inc. MRAM with super-paramagnetic sensing layer
WO2007082626A2 (en) 2006-01-17 2007-07-26 Thomson Licensing Method and apparatus for error correction decoding
US20080112095A1 (en) 2006-11-15 2008-05-15 Hitachi Global Storage Technologies Netherlands B.V. Dual current-perpendicular-to-the-plane (cpp) magnetoresistive sensor with heusler alloy free layer and minimal current-induced noise
TW200908569A (en) 2007-05-21 2009-02-16 Ramot At Tel Aviv University Co Ltd Memory-efficient LDPC decoding
KR20080108016A (ko) 2007-06-07 2008-12-11 가부시끼가이샤 도시바 자기 기록 헤드 및 자기 기록 장치
JP4919901B2 (ja) 2007-09-04 2012-04-18 株式会社東芝 磁気記録ヘッド及び磁気記録装置
US20090122450A1 (en) 2007-11-08 2009-05-14 Headway Technologies, Inc. TMR device with low magnetostriction free layer
JP5036585B2 (ja) 2008-02-13 2012-09-26 株式会社東芝 磁性発振素子、この磁性発振素子を有する磁気ヘッド、および磁気記録再生装置
US8057925B2 (en) 2008-03-27 2011-11-15 Magic Technologies, Inc. Low switching current dual spin filter (DSF) element for STT-RAM and a method for making the same
US20090310244A1 (en) 2008-06-17 2009-12-17 Tdk Corporation Thin-film magnetic head for microwave assist and microwave-assisted magnetic recording method
US8416539B2 (en) 2008-08-07 2013-04-09 HGST Netherlands B.V. Magnetic field sensing system using spin-torque diode effect
JP5320009B2 (ja) 2008-10-06 2013-10-23 株式会社東芝 スピントルク発振子、磁気記録ヘッド、磁気ヘッドアセンブリ及び磁気記録装置
US8301979B2 (en) 2008-10-07 2012-10-30 Sandisk Il Ltd. Low density parity code (LDPC) decoding for memory with multiple log likelihood ratio (LLR) decoders
JP5173750B2 (ja) 2008-11-06 2013-04-03 株式会社東芝 スピントルク発振子、磁気記録ヘッド、磁気ヘッドアセンブリ及び磁気記録装置
JP5448438B2 (ja) 2008-12-19 2014-03-19 エイチジーエスティーネザーランドビーブイ 磁気リード・ヘッド
US8286048B1 (en) 2008-12-30 2012-10-09 Qualcomm Atheros, Inc. Dynamically scaled LLR for an LDPC decoder
US8374026B2 (en) 2009-01-30 2013-02-12 Sandisk Il Ltd. System and method of reading data using a reliability measure
US8259409B2 (en) 2009-06-25 2012-09-04 Hitachi Global Storage Technologies Netherlands B.V. Spin torque oscillator sensor
US7982996B2 (en) 2009-12-07 2011-07-19 Hitachi Global Storage Technologies Netherlands B.V. Perpendicular magnetic recording write head and system with improved spin torque oscillator for microwave-assisted magnetic recording
US8549385B2 (en) 2009-12-15 2013-10-01 Marvell World Trade Ltd. Soft decoding for quantizied channel
US8085490B2 (en) 2009-12-23 2011-12-27 Hitachi Global Storage Technologies, Netherlands B.V. Slider fly-height control in a hard disk drive
KR101678053B1 (ko) * 2010-04-02 2016-11-22 삼성전자 주식회사 반도체 장치 및 이의 복호 방법
US8300356B2 (en) 2010-05-11 2012-10-30 Headway Technologies, Inc. CoFe/Ni Multilayer film with perpendicular anistropy for microwave assisted magnetic recording
US8320080B1 (en) 2011-05-31 2012-11-27 Hitachi Global Storage Technologies Netherlands B.V. Three-terminal spin-torque oscillator (STO)
US20130064971A1 (en) 2011-09-13 2013-03-14 Matthew J. Carey Method for making a current-perpendicular-to-the-plane (cpp) magnetoresistive (mr) sensor with an antiparallel free (apf) structure formed of an alloy requiring post-deposition high temperature annealing
JP5172004B1 (ja) 2011-09-20 2013-03-27 株式会社日立製作所 磁気記録ヘッド及び磁気記録装置
US8924815B2 (en) * 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
JP5808273B2 (ja) 2012-03-01 2015-11-10 株式会社日立製作所 磁気ヘッド、ヘッド駆動制御装置、磁気記憶装置、その制御方法
JP5701801B2 (ja) 2012-03-22 2015-04-15 株式会社東芝 磁気記録ヘッド、これを備えたヘッドジンバルアッセンブリ、およびディスク装置
US9203432B2 (en) 2012-08-28 2015-12-01 Marvell World Trade Ltd. Symbol flipping decoders of non-binary low-density parity check (LDPC) codes
US8582240B1 (en) 2012-08-29 2013-11-12 Headway Technologies, Inc. Magnetic recording assisted by spin torque oscillator with a radio frequency current bias
US8970996B2 (en) 2012-09-27 2015-03-03 HSGT Netherlands B.V. Spin-torque oscillator for microwave assisted magnetic recording
US9577673B2 (en) * 2012-11-08 2017-02-21 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders
JP2014103172A (ja) 2012-11-16 2014-06-05 Toshiba Corp 磁性薄膜、その製造方法、磁性薄膜を用いた、高周波発振素子、磁気ヘッド、磁気記録媒体、及び磁気記録再生装置
US8953283B2 (en) 2012-11-29 2015-02-10 Kabushiki Kaisha Toshiba Magnetic head, magnetic head assembly, and magnetic recording/reproduction apparatus
US8988826B2 (en) 2012-12-20 2015-03-24 HGST Netherlands B.V. MAMR head with a multi-layered side gap for stable oscillation of the STO
US8760818B1 (en) 2013-01-09 2014-06-24 Western Digital (Fremont), Llc Systems and methods for providing magnetic storage elements with high magneto-resistance using heusler alloys
US20140203383A1 (en) 2013-01-24 2014-07-24 T3Memory, Inc. Perpendicular magnetoresistive memory element
JP2015011745A (ja) 2013-06-28 2015-01-19 株式会社東芝 磁気ヘッド、及び磁気記録再生装置
US9076467B2 (en) 2013-07-02 2015-07-07 HGST Netherlands B.V. Current-perpendicular-to-the-plane (CPP) magnetoresistive sensor with multilayer reference layer including a crystalline CoFeX layer and a Heusler alloy layer
JP6028709B2 (ja) * 2013-10-18 2016-11-16 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US9230597B2 (en) 2013-11-01 2016-01-05 HGST Netherlands B.V. Magnetic head having a spin torque oscillator (STO) with a hybrid heusler field generation layer (FGL)
US9236564B2 (en) 2013-12-11 2016-01-12 Samsung Electronics Co., Ltd. Method and system for providing an engineered magnetic layer including Heusler layers and an amorphous insertion layer
US9064508B1 (en) 2014-03-17 2015-06-23 HGST Netherlands B.V. Pile spin-torque oscillator with AF-mode oscillation for generating high AC-field in microwave-assisted magnetic recording
US9368135B2 (en) 2014-07-25 2016-06-14 Seagate Technology Llc Data storage device with phase lock spin-torque oscillation stabilization
JP6092162B2 (ja) 2014-07-25 2017-03-08 株式会社東芝 磁気記録ヘッド及び磁気記録装置
US9230571B1 (en) 2014-08-26 2016-01-05 Headway Technologies, Inc. MgO based perpendicular spin polarizer in microwave assisted magnetic recording (MAMR) applications
US9305574B1 (en) 2014-09-23 2016-04-05 HGST Netherlands B.V. Negative-polarization spin-torque-oscillator
US9099124B1 (en) 2014-09-28 2015-08-04 HGST Netherlands B.V. Tunneling magnetoresistive (TMR) device with MgO tunneling barrier layer and nitrogen-containing layer for minimization of boron diffusion
US9099107B1 (en) 2015-01-23 2015-08-04 HGST Netherlands B.V. Stabilizing layer for a spin torque oscillator (STO)
US9337415B1 (en) 2015-03-20 2016-05-10 HGST Netherlands B.V. Perpendicular spin transfer torque (STT) memory cell with double MgO interface and CoFeB layer for enhancement of perpendicular magnetic anisotropy
US9412410B1 (en) * 2015-11-19 2016-08-09 International Business Machines Corporation Track-dependent decoding
US10498366B2 (en) 2016-06-23 2019-12-03 SK Hynix Inc. Data dependency mitigation in parallel decoders for flash storage
JP6495841B2 (ja) 2016-02-16 2019-04-03 株式会社東芝 磁気記録ヘッド及び磁気記録再生装置
US10063258B2 (en) 2016-03-04 2018-08-28 Sandisk Technologies Llc Method and data storage device to estimate a number of errors using convolutional low-density parity-check coding
US9893273B2 (en) 2016-04-08 2018-02-13 International Business Machines Corporation Light element doped low magnetic moment material spin torque transfer MRAM
US10366714B1 (en) 2016-04-28 2019-07-30 Western Digital Technologies, Inc. Magnetic write head for providing spin-torque-assisted write field enhancement
US10460752B2 (en) 2016-12-08 2019-10-29 Western Digital Technologies, Inc. Spin-torque oscillator with multilayer seed layer between the write pole and the free layer in a magnetic recording write head
US10566015B2 (en) 2016-12-12 2020-02-18 Western Digital Technologies, Inc. Spin transfer torque (STT) device with template layer for heusler alloy magnetic layers
US9881637B1 (en) 2017-02-17 2018-01-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods and devices for spin torque oscillator control and monitoring
JP2018147540A (ja) 2017-03-08 2018-09-20 株式会社東芝 磁気ヘッド及び磁気記録再生装置
JP7011768B2 (ja) 2017-03-17 2022-01-27 株式会社東芝 磁気記録装置および磁気記録ヘッド
US10446175B2 (en) 2017-05-16 2019-10-15 Western Digital Technologies, Inc. Spin transfer torque device with oxide layer beneath the seed layer
US10491243B2 (en) 2017-05-26 2019-11-26 SK Hynix Inc. Deep learning for low-density parity-check (LDPC) decoding
JP2019057337A (ja) 2017-09-19 2019-04-11 株式会社東芝 磁気ヘッド及び磁気記録再生装置
JP6850231B2 (ja) 2017-09-19 2021-03-31 株式会社東芝 磁気ヘッド及び磁気記録再生装置
US10700706B2 (en) 2017-09-22 2020-06-30 SK Hynix Inc. Memory system with decoders and method of operating such memory system and decoders
US10734013B2 (en) 2017-10-03 2020-08-04 Western Digital Technologies, Inc. Spin transfer torque (STT) device with multilayer seed layers for magnetic recording and memory
US10522744B2 (en) 2017-10-10 2019-12-31 Taiwan Semiconductor Manufacturing Company, Ltd. High thermal stability by doping of oxide capping layer for spin torque transfer (STT) magnetic random access memory (MRAM) applications
US10121497B1 (en) 2017-10-12 2018-11-06 Tdk Coporation Magnetic recording head with spin torque oscillator layers satisfying width, thickness and angle relationship formulas
KR102426047B1 (ko) * 2017-11-06 2022-07-26 삼성전자주식회사 폴라 부호 복호화 장치 및 방법
US10613927B1 (en) * 2018-03-09 2020-04-07 Toshiba Memory Corporation System and method for improved memory error rate estimation
CN110275796B (zh) 2018-03-16 2023-08-08 爱思开海力士有限公司 具有混合解码方案的存储器系统及其操作方法
US10742237B2 (en) 2018-06-21 2020-08-11 Western Digital Technologies, Inc. Memory device with adaptive descrambling
US10325618B1 (en) 2018-07-17 2019-06-18 Headway Technologies, Inc. Perpendicular magnetic recording (PMR) writer with one or more spin flipping elements in the gap
US10735031B2 (en) 2018-09-20 2020-08-04 Western Digital Technologies, Inc. Content aware decoding method and system
US10862512B2 (en) 2018-09-20 2020-12-08 Western Digital Technologies, Inc. Data driven ICAD graph generation
US11005029B2 (en) 2018-09-28 2021-05-11 Samsung Electronics Co., Ltd. Spin transfer torque switching of a magnetic layer with volume uniaxial magnetic crystalline anistotropy
US10911069B2 (en) * 2019-01-22 2021-02-02 Western Digital Technologies, Inc. Memory device with enhanced error correction

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176911A (ja) 2006-12-29 2008-07-31 Marvel Internatl Ltd ホログラフィック記憶のための連結コード
JP2012118979A (ja) 2010-12-03 2012-06-21 Internatl Business Mach Corp <Ibm> Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US20160006462A1 (en) 2014-07-07 2016-01-07 Ocz Storage Solutions, Inc. Non-volatile memory controller with error correction (ecc) tuning via error statistics collection
JP2017097942A (ja) 2015-11-19 2017-06-01 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 時間変動信号品質に適合したトラック依存復号化のためのシステム
US20180091172A1 (en) 2016-03-04 2018-03-29 Western Digital Technologies, Inc. Ecc and raid-type decoding
US20210344356A1 (en) 2020-05-04 2021-11-04 Samsung Electronics Co., Ltd. Mobile data storage

Also Published As

Publication number Publication date
KR102479236B1 (ko) 2022-12-19
KR20220061833A (ko) 2022-05-13
JP2022075487A (ja) 2022-05-18
US11528038B2 (en) 2022-12-13
US20220149870A1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
US10372534B2 (en) Method of operating memory device using a compressed party difference, memory device using the same and memory system including the device
US9430344B2 (en) Memory system for mirroring data
US11817883B2 (en) Variable length ECC code according to value length in NVMe key value pair devices
JP7186262B2 (ja) 共有データ統計情報を使用したコンテンツアウェア復号(Content Aware Decoding)
US11537510B2 (en) Storage devices having minimum write sizes of data
US20210409038A1 (en) Optimizations for variable sector size in storage device namespaces
US11687405B2 (en) Centralized SRAM error location detection and recovery mechanism
US11294598B2 (en) Storage devices having minimum write sizes of data
US10922025B2 (en) Nonvolatile memory bad row management
US11704027B2 (en) Optimizing recovery of recurrent blocks using bloom filter
US11733876B2 (en) Content aware decoding in KV devices
US11853160B2 (en) Variable length ECC code according to data entropy in NVMe key value pair devices
US11755407B2 (en) Multi-rate ECC parity for fast SLC read
US20230342244A1 (en) Read Look Ahead Optimization According To NVMe Dataset Management Hints
US11537292B2 (en) Methods and apparatus for enhancing uber rate for storage devices
US11681581B1 (en) Data integrity protection with partial updates
US20240143337A1 (en) Data Storage With Optimized Boot Files Loading
US20240054047A1 (en) NVMe Boot Partition Error Correction Code Enhancement
US20220121640A1 (en) Emulation of relational data table relationships using a schema
US20240028524A1 (en) Accelerated Encryption During Power Loss
CN117642716A (zh) 从hmb丢失的恢复
CN115840661A (zh) 从hmb丢失恢复的无dram ssd

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210622

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210706

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20211027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220819

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221128

R150 Certificate of patent or registration of utility model

Ref document number: 7186262

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150