JP6016952B2 - エラーコード化スキームと変調スキームを組合せるための装置及び方法 - Google Patents

エラーコード化スキームと変調スキームを組合せるための装置及び方法 Download PDF

Info

Publication number
JP6016952B2
JP6016952B2 JP2014560983A JP2014560983A JP6016952B2 JP 6016952 B2 JP6016952 B2 JP 6016952B2 JP 2014560983 A JP2014560983 A JP 2014560983A JP 2014560983 A JP2014560983 A JP 2014560983A JP 6016952 B2 JP6016952 B2 JP 6016952B2
Authority
JP
Japan
Prior art keywords
data
memory
encoded
soft
controller
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
JP2014560983A
Other languages
English (en)
Other versions
JP2015513866A (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 JP2015513866A publication Critical patent/JP2015513866A/ja
Application granted granted Critical
Publication of JP6016952B2 publication Critical patent/JP6016952B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/1072Adding 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 multilevel memories
    • 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
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/255Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with Low Density Parity Check [LDPC] codes
    • 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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/256Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with trellis coding, e.g. with convolutional codes and TCM
    • 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/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • 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/63Joint error correction and other techniques
    • H03M13/6331Error control coding in combination with equalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0059Convolutional codes
    • H04L1/006Trellis-coded modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • 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/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • H03M13/4146Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions soft-output Viterbi decoding according to Battail and Hagenauer in which the soft-output is determined using path metric differences along the maximum-likelihood path, i.e. "SOVA" decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本開示は、一般に、半導体メモリ装置及び方法に関し、より詳細には、エラーコード化スキームと変調スキームを組合せるための装置及び方法に関する。
メモリデバイスは、通常、コンピュータ又は他の電子デバイス内の内部半導体集積回路として提供される。とりわけ、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)、同期式ダイナミックランダムアクセスメモリ(SDRAM)、抵抗変化型メモリ(例えば、RRAM(登録商標))、及びフラッシュメモリを含む多くの異なるタイプのメモリが存在する。
メモリデバイスは、広い範囲の電子用途について揮発性及び不揮発性データストレージとして利用される。単なる1つのタイプのメモリであるフラッシュメモリは、通常、メモリセルの多数のアレイを備え、高いメモリ密度、高い信頼性、及び低電力消費を可能にする。不揮発性メモリは、例えば、パーソナルコンピュータ、可搬型メモリスティック、固体ドライブ(SSD)、デジタルカメラ、携帯電話、MP3プレーヤ等の可搬型音楽プレーヤ、ムービープレーヤ、及び他の電子デバイス内で使用されることができる。
本開示の幾つかの実施形態による、少なくとも1つのメモリシステムを含むコンピューティングシステムの形態の装置のブロック図である。 本開示の幾つかの実施形態による、信号セット拡張と低密度パリティチェック(low density parity check)(LDPC)コードとを組合せることを示す機能ブロック図である。 本開示の幾つかの実施形態に従って生成されるトレリスを示す図である。
エラーコード化スキームと変調スキームを組合せるための方法及び装置が提供される。1つの例の方法は、線形エラー訂正コードを使用してデータを符号化すること、符号化されたデータを変調すること、変調されたデータをメモリに書込むこと、及び、ビタビアルゴリズム及び線形エラー訂正コードデコーダを使用して、書込まれたデータを復号化することを含み得る。
ボーズ、チョドーリ、及びオッケンジュム(Bose,Chaudhuri,and Hocquenghem)(BCH)コードは、フラッシュデータ内の一定数のエラーを訂正するために使用され得る。低密度パリティチェック(LDPC)コードは、こうしたBCHコードを上回り得る。例えば、LDPCコードは、ソフトデータ(例えば、信頼性情報)によって復号化され得る。
ストレージ密度が増加するにつれて、読出しオペレーションに関連する信号対雑音比(SNR)は、減少する可能性があり、例えば、読出しエラーを防止するためのより強力なエラー訂正コードについての必要性をもたらし得る。SNRを増加させる1つのアプローチは、例えば、トレリスコード化変調(trellis coded modulation)(TCM)による信号セットの拡張を含む。例えば、信号セットの拡張は、バイナリデータをマルチレベルデータに変換することを含み得る。
本開示の実施形態は、LDPCとTCMとを組合せることによってSNRの増加を提供し得る。実施形態はまた、ビタビコンポーネントによって生成されるソフトデータと連携してデコーダによって生成されるソフトデータを効果的に使用して、SNR利得を増加させ得る。
本開示の以下の詳細な説明では、本開示の一部を形成する添付図面に対して参照が行われ、添付図面において、本開示の1つ又は複数の実施形態がどのように実施されることができるかが例証によって示される。これらの実施形態は、当業者が本開示の実施形態を実施することを可能にするのに十分に詳細に述べられ、また、他の実施形態が利用されることができること、及び、本開示の範囲から逸脱することなく、プロセス的、電気的、及び/又は構造的変更が行われることができることが理解される。本明細書で使用されるように、指示子「N」は、そのように設計された特定の特徴の1つ又は複数が、本開示の1つ又は複数の実施形態に関して含まれ得ることを示す。
本明細書の図は、1つ又は複数の第1のデジットが図面の図番に対応し、残りのデジットが図面内の要素又はコンポーネントを特定する番号付け慣習に従う。異なる図の間の同様の要素又はコンポーネントは、同様のデジットの使用によって特定されることができる。認識されるように、本明細書の種々の実施形態で示す要素は、本開示の幾つかの更なる実施形態を提供するために、追加され得る、交換され得る、かつ/又はなくされ得る。更に、図で提供される要素の割合及び相対スケールは、本開示の種々の実施形態を示すことを意図され、制限的意味で使用されない。
図1は、本開示の幾つかの実施形態による、少なくとも1つのメモリシステム104を含むコンピューティングシステム100の形態の装置のブロック図である。本明細書で使用されるように、メモリシステム104、コントローラ108、又はメモリデバイス110はまた、別々に「装置(apparatus)」と考えられることができる。メモリシステム104は、例えば固体ドライブ(SSD)であり、ホスト(例えば、物理)インタフェース106、コントローラ108(例えば、プロセッサ及び/又は他の制御回路要素)、及び、メモリシステム104用のストレージボリュームを提供する幾つかのメモリデバイス110−1、…、110−N(例えば、NANDフラッシュデバイス等の固体メモリデバイス)を含み得る。別の実施形態では、メモリシステム104は、単に単一メモリデバイスであるとすることができる。
図1に示すように、コントローラ108は、複数のチャネルを介してホストインタフェース106及びメモリデバイス110−1、…、110−Nに結合され、メモリシステム104とホスト102との間でデータを転送するために使用され得る。インタフェース106は、標準的なインタフェースの形態であり得る。例えば、メモリシステム104がコンピューティングシステム100内のデータストレージのために使用されるとき、インタフェース106は、他のコネクタ及びインタフェースの中で、シリアル高度技術アタッチメント(serial advanced technology attachment)(SATA)、ペリフェラルコンポーネントインターコネクトエキスプレス(peripheral component interconnect express)(PCIe)、又はユニバーサルシリアルバス(USB)であり得る。しかし、一般に、インタフェース106は、メモリシステム104と、インタフェース106用の互換性のあるレセプタを有するホスト102との間でコントロール、アドレス、データ、及び他の信号を渡すためのインタフェースを提供し得る。
ホスト102は、種々の他のタイプのホストの中で、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、移動体電話、又はメモリカードリーダ等のホストシステムであり得る。ホスト102は、システムマザーボード及び/又はバックプレーンを含み、幾つかのメモリアクセスデバイス(例えば、幾つかのプロセッサ)を含み得る。ホスト102はまた、メモリシステム104が(例えば、オンダイコントローラを有する)メモリデバイスである場合等にメモリコントローラであり得る。
コントローラ108は、幾つかのメモリデバイス110−1、…、110−N(幾つかの実施形態では、単一ダイ上の幾つかのメモリアレイであり得る)と通信して、他のオペレーションの中で、データ読出し、書込み、及び消去オペレーションを制御し得る。幾つかの実施形態では、コントローラ108は、幾つかのメモリデバイス110の任意又は全てのメモリデバイス110と同じダイ又は異なるダイ上にあり得る。
具体的に示さないが、幾つかの実施形態では、コントローラ108は、コントローラ108をメモリデバイス110−1、…、110−Nに結合する各チャネル用のディスクリートメモリチャネルコントローラを含み得る。コントローラ108は、例えば、幾つかのメモリデバイス110−1、…、110−Nに対するアクセスを制御するための、及び/又は、ホスト102とメモリデバイス110−1、…、110−Nとの間のデータ転送を容易にするための、ハードウェア及び/又はファームウェア(例えば、1つ又は複数の集積回路)及び/又はソフトウェアの形態の幾つかのコンポーネントを含み得る。
図1に示すように、コントローラ108は、エラーコード化コンポーネント107(例えば、エラー訂正コード(error correction code)(ECC)エンジン等のエンコーダ)及び変調コンポーネント109(例えば、TCMで使用するための)を含み得る。エラーコード化コンポーネント107及び変調コンポーネント109のそれぞれは、特定用途向け集積回路(ASIC)等のディスクリートコンポーネントであり得る、又は、コンポーネントは、コントローラ108の他の部分から離れたディスクリートな物理的形態を必ずしも持たない、コントローラ108内の回路要素によって提供される機能を反映することができる。図1においてコントローラ108内のコンポーネントとして示されないが、エラーコード化コンポーネント107及び変調コンポーネント109のそれぞれは、コントローラ108の外部にあり得る、又は、コントローラ108内に配置された幾つかのコンポーネント及びコントローラ108の外部に配置された幾つかのコンポーネントを有し得る。
エラーコード化コンポーネント107は、ホスト102から受信されたデータ(例えば、ユーザデータ)を符号化し、メモリデバイス110−1、…、110−N等のメモリに記憶される(例えば、書込まれる)ように構成され得る。例えば、ユーザデータは、本明細書でより詳細に述べるように、LDPCコード等の線形エラー訂正コード(linear error correcting code)を使用して符号化され得る。
符号化されたデータは、符号化されたデータに対応するコードレートを有し得る。コードレートは、非冗長的である符号化されたデータの割合を指す。本開示の幾つかの実施形態では、バイナリ符号化されたデータは、マルチレベル信号(例えば、3レベル信号)に変換され得る。例えば、2から3への信号セットの拡張が使用されることができ、それは、コードレート損失なしで、3レベルドメイン内の最も近い信号シーケンスの対の間のユークリッド距離を増加させ得る。
幾つかの実施形態では、コントローラ108は、線形エラー訂正コードエンコーダを使用して、バイナリデータを符号化し、変調スキームを使用してバイナリデータをマルチレベルデータに変換し、マルチレベルデータをメモリに書込み、メモリからデータを読出し、ビタビアルゴリズムを使用して、読出されたデータを復号化し、線形エラー訂正コードデコーダによって、ビタビアルゴリズムによって生成されたハードデータ及びソフトデータを復号化するように構成され得る。バイナリデータはLDPCコードを使用して符号化され、バイナリデータを変換するために使用される変調スキームはTCMを含み得る。ビタビアルゴリズムは、ソフト出力ビタビアルゴリズム(soft−output Viterbi algorithm)(SOVA)を含み、線形エラー訂正コードデコーダはLDPCデコーダを含み得る。幾つかの実施形態では、コントローラ108は、SOVAとLDPCデコーダとの間でソフトデータを反復的に交換するように構成され得る。SOVAは、入力シンボルの以前の(former)確率を考慮する修正経路メトリックを使用し、決定の信頼性を示すソフト出力を生成する点で典型的なビタビアルゴリズムと異なり得る。コントローラ108に関連する更なる機能は、本明細書でより詳細に述べられる。
幾つかのメモリデバイス110−1、…、110−Nは、メモリセル(例えば、不揮発性メモリセル)の幾つかのアレイを含み得る。アレイは、例えば、NANDアーキテクチャを有するフラッシュアレイであり得る。しかし、実施形態は、特定のタイプのメモリアレイ又はアレイアーキテクチャに限定されない。メモリセルは、例えば、幾つかの物理ページを含む幾つかのブロックにグループ化され得る。幾つかのブロックはメモリセルのプレーンに含まれ、アレイは幾つかのプレーンを含み得る。一例として、メモリデバイスは、1ページ当たり8KB(キロバイト)のユーザデータ、1ブロック当たり128ページのユーザデータ、1プレーン当たり2048ブロック、及び1デバイス当たり16プレーンを記憶するように構成されることができる。
動作時、データは、例えば、データのページとして、メモリ(例えば、システム104のメモリデバイス110−1、…、110−N)に書込まれ得る、かつ/又は、メモリから読出され得る。したがって、データのページは、メモリシステムのデータ転送サイズと呼ばれ得る。データは、セクタ(例えば、ホストセクタ)と呼ばれるデータセグメント内でホスト(例えば、ホスト102)に/から転送され得る。したがって、データのセクタは、ホストのデータ転送サイズと呼ばれ得る。
データのページはユーザデータ(例えば、データの幾つかのセクタを含むデータペイロード)並びにユーザデータに対応するメタデータの幾つかのバイトを含み得るが、データのページのサイズは、しばしば、ユーザデータのバイト数だけを指し得る。例として、4KBのページサイズを有するデータのページは、4KBのユーザデータ(例えば、512Bのセクタサイズを仮定すると8セクタ)並びにユーザデータに対応するメタデータの幾つかのバイト(例えば、32B、54B、224B等)を含むことができる。メタデータは、ユーザデータに対応する他のメタデータの中で、エラーデータ(例えば、エラー検出及び/又は訂正コードデータ)及び/又はアドレスデータ(例えば、論理アドレスデータ)等の完全性データを含み得る。
図2は、本開示の幾つかの実施形態による、信号セット拡張(例えば、TCM)とLDPCコードとを組合せることに関連する機能ブロック図220である。LDPCコードは、代数エラー訂正コード(例えば、BCHコード)と比較して、エラー訂正能力の増加を提供し、例えば、ソフトデータと共に同様に復号化され得る。
幾つかの実施形態では、LDPCコードと信号セット拡張とを組合せることは、LDPCコードだけ又は信号セット拡張だけを使用して達成されるSNRと比較してSNR利得をもたらし得る。例えば、信号セット拡張を受けない状態での所与のレートでの単一レベルセルに関するバイナリLDPCコードは、所与のコードレート損失がある状態で約7倍SNRを増加させることができる。同様に、信号セット拡張を受けた同じ又は同様の所与のレートでの非LDPCコードは、同じ又は同様の所与のコードレート損失がある状態で9倍SNRを増加させることができる。しかし、幾つかの実施形態では、(例えば、2レベルから3レベルへの)信号セット拡張を受けた同じ又は同様の所与のレートでのバイナリLDPCコードは、同じ又は同様のコードレート損失がある状態で約18倍SNRを増加させることができる。
図2は、線形エラー訂正コードエンコーダ214(例えば、LDPCエンコーダ)によって受信されるホストデータ212−1(例えば、バイナリホストデータ)Hを示す。ホストデータ212−1は、LDPCエンコーダ214によって符号化され、符号化されたデータU216−1は、プリコーダ218に提供される。プリコーダ218は、符号化されたデータ216−1に関してプリコード化オペレーションを実施する。
例として、プリコード化オペレーションは、バイナリの符号化されたデータ(例えば、U216−1)をプリコード化されたデータ(例えば、V)に変換する(1/(1xorD))オペレーションであり得る。プリコーダ218によって出力されるプリコード化されたデータVは、オペレータ224によって受信される。オペレータ224は、(1+D)オペレーションによって、バイナリのプリコード化されたデータVをマルチレベルデータ226(例えば、X)に変換し得る。したがって、信号セットは、バイナリドメイン(例えば、2レベル)からマルチレベルドメイン(例えば3レベル)に拡張される。例として、Uデータ216−1に等価な3レベルであり得るXデータ226は、メモリ(例えば、フラッシュメモリ)に書込まれ得る。
例のオペレーションでは、Dは、1つのユニットの遅延に対応し得る。例えば、あるオペレーションでは、yn=xn+x(n−1)であり、現在のサンプルxnが、以前のサンプルx(n−1)に加算される。これは、表現(1+D)によって表され得る。「1」は現在時点のサンプル(xn)を表し、Dは1つのユニットの遅延(例えば、x(n−1))を表す。
図2に示す例では、(1/(1xorD))先行オペレーションと(1+D)オペレーションとを組合せることは、TCMに関連して利用され、信号セット拡張(例えば、バイナリデータのマルチレベルデータへの変換)をもたらす。信号セット拡張は、例えば、3レベルドメインにおける最も近い信号シーケンスの対の間のユークリッド距離を増加させ得る。幾つかの実施形態では、信号セット拡張は、LDPCに関連するコードレート損失なしで達成され得る。信号セット拡張(例えば、TCM)中に、その例が図3に関して更に詳細に論じられる幾つかの状態(例えば、2状態で3レベルのトレリス)を含み得るマルチレベルトレリスが生成されることができる。
マルチレベルデータXに関連する信号雑音n(例えば、X+n)は、メモリ210から読出され、ビタビコンポーネント234によって復号化され得る。幾つかの実施形態では、また、図2に示すように、ビタビコンポーネント234は、読出されたデータ232に対応するソフトデータ(例えば、対数尤度比(log likelihood ratio)(LLR))を生成することが可能なSOVA(例えば、2状態SOVA)であり得る。ビタビコンポーネント234によって生成されるソフトデータは、LDPCコードビットを、LDPCコードビットに対応する信頼性メトリックと共に含み得る。LLRは、2つのモデル(例えば、コードシーケンス内の「0」及び「1」)の適合度(fit)を比較するために使用され得る。例えば、ビットが「0」である確率が0.7であり、ビットが「1」である確率が0.3である場合、LLRは対数(0.7/0.3)と等価である。
復号化されたハードデータ及びソフトデータUは、ビタビコンポーネント234から出力され、LDPCデコーダ236を使用して更に復号化され得る。結果として得られる復号化されたホストデータH212−1は、要求側エンティティ(例えば、図1に示すホスト102等のホスト)に提供され得る。幾つかの実施形態では、復号化されたホストデータ212−2は、例えば、過去のLDPCアプローチと比較して増加したSNR利得を含む。
幾つかの実施形態では、ビタビコンポーネント234とLDPCデコーダ236との間の反復的なソフトデータ交換は、U216−2に関連するソフトデータを更に洗練するために導入され得る。例えば、LDPCデコーダ236もまた、ソフトデータ(例えば、LLR)を生成し得る。例えば、LDPCデコーダ236は、ホストデータH212−2を有するソフトデータを出力し、このソフトデータは、更に復号化するためにビタビコンポーネント234に送信され、その後、(例えば、反復プロセスで)LDPCデコーダ236に返送され得る。幾つかの実施形態では、この反復プロセスは、データ216−2に関連する雑音が、例えば、所望の閾値レベルまで減少するまで継続し得る。
図3は、本開示の幾つかの実施形態の1つの実施形態に従って生成され得るトレリス330を示す。例として、トレリス330は、図2に示すコンポーネント218及び224等のコンポーネントによって実施されるオペレーションを介して生成され得る。トレリス330は、トレリス変調とも呼ばれるTCM変調スキームにおいて利用され得る2状態(例えば、状態1及び状態0)ビタビトレリスである。TCMは、他の変調スキームと比較して、伝送効率の増加をもたらし得る。
図3に示す例では、LDPCエンコーダ314は、データ(例えば、ホストデータ212−1)を符号化するために使用され得る。符号化されたデータは、信号セットが(例えば、バイナリドメインから3レベルドメインに)拡張するようにTCMを受け得る。例えば、図2に関連して述べるように、(1/(1xorD))オペレーションと(1+D)オペレーションとの組合せは、314から出力されるデータに関して実施され、それは、信号拡張及びトレリス330等のトレリスの生成をもたらし得る。結果として、2状態トレリス330内の2つの最も近い3レベル信号シーケンス間の2乗ユークリッド距離は、未コード化の3レベル信号シーケンスの2倍の距離であり得る。幾つかの実施形態では、トレリス330のレベルは、約4〜3ボルトの電圧値を含み得る。
トレリス330は、「様態0(state 0)」(例えば、状態338−1、338−2、及び338−3)及び「状態1(state 1)」(例えば、状態342−1、342−2、及び342−3)を含む2状態を含む。図3に示す状態間の各ラインはシーケンス経路を示し、各経路は、ビット(例えば、LDPCエンコーダ出力ビット)及び対応する3レベル信号によって表示される。例えば、経路344−1及び344−2は、「0」の対応する3レベル信号と共にビット「0」を示す。同様に、例えば、経路384−1及び384−2は、ビット「0」及び「2」の対応する3レベル信号を示し、一方、経路346−1…346−4は、「1」の対応する3レベル信号と共にビット「1」を示す。
状態シーケンス0−0−0によって形成される経路のエッジ上の3レベルのラベルシーケンスは、0−0(例えば、経路344−1及び344−2)によって与えられ、一方、状態シーケンス0−1−0によって形成される経路のエッジ上の3レベルのラベルシーケンスは、1−1(例えば、経路346−1及び346−2)によって与えられ得る。こうした例では、2つの経路間の2乗ユークリッド距離は2に等しい。例えば、(1−0)+(1−0)=2である。他の経路対は、2つの経路間でより長い距離を常に有することになる。
トレリス330は、トレリスの少なくとも1つの他のレベルと特定の関係を有するトレリスのレベルを含み得る。例えば、図2のバイナリユーザデータU216は、図2のプリコーダ218によって実施される(1/(1xorD))オペレーション及び図2のオペレータ224によって実施される(1+D)オペレーションに基づいて3レベルデータX226に関連するとすることができる。こうしたオペレーションによって達成される関係は、互いに独立であるレベルに対応する未拡張信号セット(例えば、2レベル、3レベル、又は4レベルデータ)と比較して、雑音に対する頑健性(例えば、SNR利得)をもたらし得る。
図3では、経路344−1、344−2、346−1、346−2、346−3、346−4、348−1、及び348−2の値は、U/Xを表し、Uは図2に示すデータ216−1等のバイナリデータであり、Xは図2に示すデータ226等の変調されたデータ(例えば、3レベルデータ)である。例えば、本明細書で更に論じるように、経路348−1は0のU値、2のX値を有し、0/2と表示される。これらの経路は、レベルのシーケンスによってとられる考えられる経路に対応し、この情報は、ビタビコンポーネント(例えば、図2に示すコンポーネント234)によって利用されて、マルチレベルデータがトレリス330を通過したときにマルチレベルデータによって使用された経路を特定し、経路情報を全く持たないコンポーネントと比較して、ビタビコンポーネントの性能の増加をもたらし得る。
例として、図2に示すプリコーダ218等のプリコーダによって受信されるバイナリユーザデータU={100101011…}を考える。Uに関して特定のオペレーション(例えば、(1/(1xorD))オペレーション)を実施することによって、プリコード化されたデータVが決定され得る。例えば、V=xor(U,Vk−1)は、V={111001101…}をもたらす。
に関して(1+D)オペレーションを利用することは、3レベルデータXの生成をもたらし得る。例えば、X={122101211…}であるように、X=V+Vk−1である。したがって、トレリス330のレベル0、1、及び2の間に、特に、UとX(ここで、U=1の場合、X=1である)との間に、或る関係が存在する。この関係は、互いに独立なレベルを有するメモリセルと比較して、SNR利得の増加をもたらし得る。
上記例では、1の偶数が、シーケンスの特定の時点においてUシーケンスで通過する場合、0のU値が、経路344−1及び344−2の場合と同様に、X=0を生成する。これは、状態0(例えば、状態338−1、338−2、及び338−3)と呼ばれ得る。1の奇数が、シーケンスの特定の時点においてUシーケンスで通過する場合、0のU値が、経路348−1及び348−2の場合と同様に、X=2を生成する。これは、状態1(例えば、状態342−1、342−2、及び342−3)と呼ばれ得る。
TCMからのデータ出力(例えば、マルチレベルデータ)は、メモリ(例えば、フラッシュメモリ)310に書込まれ、図2の232で示すように復号化のためにSOVAに送信され得る。幾つかの実施形態では、SNR利得は、トレリス(例えば、トレリス330)に関してビタビアルゴリズムを使用して、メモリ(例えば、メモリ310)から読出されたソフトデータからバイナリLDPCコードビットを回復させることによって実現されることができる。ソフトデータは、図3に関して論じた3レベル信号(例えば、X)の近似を含むことができる。
特定の実施形態が、本明細書で示され述べられたが、同じ結果を達成するために計画される任意の配置構成が、示す特定の実施形態と置換され得ることを当業者は認識するであろう。本開示は、本開示の種々の実施形態の適応形態又は変形形態を包含することを意図される。上記説明が、制限的方法ではなく、例証的な方法で行われていることが理解される。上記実施形態の組合せ及び本明細書で具体的に述べられない他の実施形態は、上記説明を検討すると、当業者に明らかになる。本開示の種々の実施形態の範囲は、上記構造及び方法が使用される他の用途を含む。したがって、本開示の種々の実施形態の範囲は、添付特許請求の範囲を参照して、添付特許請求の範囲が権利を与えられる均等物の全範囲と共に決定されるべきである。
先の詳細な説明では、種々の特徴は、本開示を効率化するために単一の実施形態において共に集められる。本開示のこの方法は、本開示の開示される実施形態が、各請求項において明示的に挙げられるものよりも多い特徴を使用しなければならないという意図を反映するものと解釈されない。むしろ、添付特許請求の範囲が反映するように、本発明の主題は、開示される単一の実施形態の全ての特徴より少ない特徴に存在する。したがって、添付特許請求の範囲は、各請求項が別個の実施形態として独立した状態で、詳細な説明に組込まれる。

Claims (8)

  1. メモリを動作させる方法であって、
    線形エラー訂正コードを使用してデータを符号化すること、
    前記符号化されたデータに関してトレリスコード化変調(TCM)を実施し前記符号化されたデータを変調すること、
    前記変調されたデータをメモリに書込むこと、及び、
    ビタビアルゴリズム及び線形エラー訂正コードデコーダの間の反復的なソフトデータの交換を使用して、前記書込まれたデータを復号化すること
    を含み、
    前記TCMを実施することは、マルチレベルトレリスを生成することを含み、前記マルチレベルトレリスを生成することは、(1/(1xorD))プリコーダオペレーションを使用して前記符号化されたデータをプリコード化すること、及び、前記プリコード化されたエラーコード化データに関して(1+D)オペレーションを実施することを含み、ここで、Dは、1つのユニットの遅延に対応する、
    方法。
  2. データを符号化することは、低密度パリティチェック(LDPC)コードを使用してデータをエラーコード化することを含む、請求項1に記載の方法。
  3. 変調スキームを実施することは、前記符号化されたデータの信号セットを拡張することを含む、請求項1又は2に記載の方法。
  4. 前記符号化されたデータを変調することは、前記符号化されたデータに関連する2つの最も近いマルチレベルシーケンス間の2乗ユークリッド距離を増加させることを含み、
    前記マルチレベルデータ内の2つの最も近いマルチレベルシーケンス間の2乗ユークリッド距離は、前記符号化されたバイナリデータに関連する2つの最も近いマルチレベルシーケンス間の前記2乗ユークリッド距離の約2倍である、
    請求項1又は2に記載の方法。
  5. 装置であって、
    メモリと、
    前記メモリに結合されたコントローラと、
    前記コントローラに結合され、バイナリデータを符号化するように構成されるエラー訂正コードエンコーダと、
    前記コントローラに結合され、トレリスコード化変調(TCM)を使用して前記符号化されたバイナリデータの信号セットを拡張することによって前記符号化されたバイナリデータを変調するように構成される変調コンポーネントと、
    前記コントローラに結合され、ソフト出力ビダビアルゴリズムによって生成されるハードデータ及びソフトデータを復号化するように構成される線形エラー訂正コードデコーダと、
    を備え、
    前記コントローラは、
    前記変調されたデータを前記メモリに書込むこと、
    前記変調されたデータを前記メモリから読出すこと、及び、
    ビタビアルゴリズムを使用して前記変調されたデータを復号化すること
    を制御するように構成されると共に、前記ビタビアルゴリズムと線形エラー訂正コードデコーダとの間でソフトデータを反復的に交換するように構成されることを含み、
    前記TCMを、(1/(1xorD))オペレーションを使用し、その後、(1+D)オペレーションを使用して、前記符号化されたバイナリデータに関して実施する、装置。
  6. 前記ソフトデータを反復的に交換する反復プロセスは、前記ビダビアルゴリズムから出力されるソフトデータに関連する雑音が所望の閾値レベルに到達されるまで実行される請求項に記載の装置。
  7. 前記エラー訂正コードエンコーダは、低密度パリティチェック(LDPC)コードを使用してバイナリデータを符号化するように更に構成される、請求項に記載の装置。
  8. 前記ビタビアルゴリズムは、ソフト出力ビタビアルゴリズム(SOVA)を含む、請求項に記載の装置。
JP2014560983A 2012-03-08 2013-03-01 エラーコード化スキームと変調スキームを組合せるための装置及び方法 Active JP6016952B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/415,422 2012-03-08
US13/415,422 US8892986B2 (en) 2012-03-08 2012-03-08 Apparatuses and methods for combining error coding and modulation schemes
PCT/US2013/028678 WO2013134071A1 (en) 2012-03-08 2013-03-01 Apparatuses and methods for combining error coding and modulation schemes

Publications (2)

Publication Number Publication Date
JP2015513866A JP2015513866A (ja) 2015-05-14
JP6016952B2 true JP6016952B2 (ja) 2016-10-26

Family

ID=49115167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014560983A Active JP6016952B2 (ja) 2012-03-08 2013-03-01 エラーコード化スキームと変調スキームを組合せるための装置及び方法

Country Status (7)

Country Link
US (2) US8892986B2 (ja)
EP (1) EP2823399B1 (ja)
JP (1) JP6016952B2 (ja)
KR (1) KR101645837B1 (ja)
CN (1) CN104303155B (ja)
TW (1) TWI510000B (ja)
WO (1) WO2013134071A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892986B2 (en) * 2012-03-08 2014-11-18 Micron Technology, Inc. Apparatuses and methods for combining error coding and modulation schemes
RU2573243C2 (ru) 2013-10-28 2016-01-20 Общество с ограниченной ответственностью "Топкон Позишионинг Системс" Способ и устройство для измерения текущего отношения сигнал/шум при декодировании ldpc-кодов (варианты)
US9582361B2 (en) 2014-05-20 2017-02-28 Seagate Technology Llc Fixed point conversion of LLR values based on correlation
US9904591B2 (en) 2014-10-22 2018-02-27 Intel Corporation Device, system and method to restrict access to data error information
US10388400B2 (en) * 2015-05-18 2019-08-20 SK Hynix Inc. Generalized product codes for flash storage
US9740558B2 (en) 2015-05-31 2017-08-22 Intel Corporation On-die ECC with error counter and internal address generation
US10127101B2 (en) 2015-08-28 2018-11-13 Intel Corporation Memory device error check and scrub mode and error transparency
CN110463082B (zh) * 2017-06-07 2020-11-17 华为技术有限公司 具有受控比特概率的传输系统
US10886947B2 (en) * 2018-12-20 2021-01-05 Toshiba Memory Corporation Efficient decoding of n-dimensional error correction codes
CN110008054B (zh) * 2019-02-25 2023-05-12 西南交通大学 一种用于存储器差错控制的多级读取译码的方法和装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2668455B2 (ja) * 1990-12-20 1997-10-27 富士通株式会社 ビタビ復調制御方式
US5550683A (en) 1992-12-11 1996-08-27 Eastman Kodak Company Magnetic recording channel employing a non-ideal d.c.-free equalizer and a d.c.-free modulation code
JPH08235593A (ja) * 1994-10-31 1996-09-13 Hitachi Maxell Ltd 光記録媒体並びにその記録・再生方法及び装置
US5968198A (en) 1996-08-16 1999-10-19 Ericsson, Inc. Decoder utilizing soft information output to minimize error rates
JP2000312234A (ja) * 1999-04-27 2000-11-07 Sony Corp ブランチメトリックおよびセクター算出方法とその装置、および、その装置を用いた復号装置
JP4198904B2 (ja) * 2001-06-11 2008-12-17 富士通株式会社 記録再生装置、信号復号回路、エラー訂正方法、及び反復型復号器
JP3578736B2 (ja) * 2001-08-07 2004-10-20 Necマイクロシステム株式会社 ブランチメトリック算出装置およびその算出方法
KR20050072422A (ko) * 2002-09-26 2005-07-11 코닌클리케 필립스 일렉트로닉스 엔.브이. 비터비 비트 검출방법 및 장치
US7401283B2 (en) 2004-09-28 2008-07-15 Broadcom Corporation Amplifying magnitude metric of received signals during iterative decoding of LDPC (Low Density Parity Check) code and LDPC coded modulation
US7486456B2 (en) * 2004-12-17 2009-02-03 Stmicroelectronics, Inc. Finite field based short error propagation modulation codes
TWI255608B (en) 2005-04-01 2006-05-21 Univ Nat Chiao Tung Transmission method combining trellis coded modulation code (TCM) and low-density parity check code (LDPC), and structure thereof
KR100860504B1 (ko) 2005-06-09 2008-09-26 삼성전자주식회사 이동통신 시스템에서 송수신 장치 및 방법
US7971130B2 (en) * 2006-03-31 2011-06-28 Marvell International Ltd. Multi-level signal memory with LDPC and interleaving
US7848465B2 (en) * 2007-04-02 2010-12-07 Broadcom Corporation Joint decoding of ISI (inter-symbol interference) channel and modulation codes
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
US7752531B2 (en) 2007-09-12 2010-07-06 Seagate Technology Llc Defect sensing Viterbi based detector
CN101960766A (zh) * 2008-02-26 2011-01-26 日本电气株式会社 解码装置、解码方法和程序
US8238454B2 (en) 2008-04-01 2012-08-07 Harris Corporation System and method for communicating data using efficient fast fourier transform (FFT) for orthogonal frequency division multiplexing (OFDM) demodulation
CN101567752B (zh) 2008-04-23 2012-08-08 中国科学院微电子研究所 一种基于低密度奇偶校验码的自适应编解码方法
JP5009418B2 (ja) 2008-06-09 2012-08-22 パイオニア株式会社 検査行列の生成方法及び検査行列、並びに復号装置及び復号方法
KR20090130808A (ko) 2008-06-16 2009-12-24 한국전자통신연구원 디지털 케이블 송수신 시스템에서 적응/가변형 변복조 장치
US8413029B2 (en) 2009-01-16 2013-04-02 Lsi Corporation Error correction capability adjustment of LDPC codes for storage device testing
WO2011059166A1 (ko) 2009-11-13 2011-05-19 한국전자통신연구원 통신 시스템에서 데이터 수신 장치 및 방법
US8566683B2 (en) * 2009-12-28 2013-10-22 Nxp, B.V. Power-reduced preliminary decoded bits in viterbi decoders
US8516331B2 (en) * 2010-01-29 2013-08-20 Broadcom Corporation Systems for high-speed backplane applications using FEC encoding
EP2383949B1 (en) 2010-04-29 2016-01-06 Xieon Networks S.à r.l. Method and arrangement for signal processing in a communication system
US8892986B2 (en) * 2012-03-08 2014-11-18 Micron Technology, Inc. Apparatuses and methods for combining error coding and modulation schemes

Also Published As

Publication number Publication date
EP2823399A4 (en) 2015-12-09
TWI510000B (zh) 2015-11-21
KR101645837B1 (ko) 2016-08-04
US8892986B2 (en) 2014-11-18
CN104303155A (zh) 2015-01-21
US20130238952A1 (en) 2013-09-12
EP2823399B1 (en) 2017-10-18
EP2823399A1 (en) 2015-01-14
TW201342812A (zh) 2013-10-16
KR20140139537A (ko) 2014-12-05
US20150074498A1 (en) 2015-03-12
CN104303155B (zh) 2018-12-11
US9251000B2 (en) 2016-02-02
WO2013134071A1 (en) 2013-09-12
JP2015513866A (ja) 2015-05-14

Similar Documents

Publication Publication Date Title
JP6016952B2 (ja) エラーコード化スキームと変調スキームを組合せるための装置及び方法
US9734012B2 (en) Data encoding in solid-state storage devices
US8656263B2 (en) Trellis-coded modulation in a multi-level cell flash memory device
JP6122152B2 (ja) 分類コードを使用したソフトデータの判定
KR101990971B1 (ko) 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
KR20170056407A (ko) 데이터의 인코딩과 디코딩을 위한 메모리 시스템
US9213602B1 (en) Write mapping to mitigate hard errors via soft-decision decoding
US8589765B1 (en) Memory read-out
KR102275717B1 (ko) 플래시 메모리 시스템 및 그의 동작 방법
JP2015507409A (ja) 代数符号を用いるマルチフェーズecc符号化
US8947929B1 (en) Flash-based soft information generation
US11243838B2 (en) Methods and apparatuses for error correction
KR20150129325A (ko) 솔리드 스테이트 메모리에 저장된 데이터 디코딩
US9304851B2 (en) Decoding with log likelihood ratios stored in a controller
US10855314B2 (en) Generating and using invertible, shortened Bose-Chaudhuri-Hocquenghem codewords
Kaynak et al. Classification codes for soft information generation from hard flash reads
US11870461B2 (en) Failure-tolerant error correction layout for memory sub-systems
US11567828B2 (en) Asymmetric LLR generation using assist-read
KR20130136867A (ko) 간섭 채널 환경에서의 오류 정정 방법 및 회로, 이를 이용한 플래시 메모리 장치

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160121

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160725

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160802

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: 20160913

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160927

R150 Certificate of patent or registration of utility model

Ref document number: 6016952

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250