JP6122152B2 - 分類コードを使用したソフトデータの判定 - Google Patents

分類コードを使用したソフトデータの判定 Download PDF

Info

Publication number
JP6122152B2
JP6122152B2 JP2015553731A JP2015553731A JP6122152B2 JP 6122152 B2 JP6122152 B2 JP 6122152B2 JP 2015553731 A JP2015553731 A JP 2015553731A JP 2015553731 A JP2015553731 A JP 2015553731A JP 6122152 B2 JP6122152 B2 JP 6122152B2
Authority
JP
Japan
Prior art keywords
decoder
codeword
code
ldpc
data
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
JP2015553731A
Other languages
English (en)
Other versions
JP2016509420A (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 JP2016509420A publication Critical patent/JP2016509420A/ja
Application granted granted Critical
Publication of JP6122152B2 publication Critical patent/JP6122152B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/45Soft decoding, i.e. using symbol reliability information
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/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
    • 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/13Linear 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] 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/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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Read Only Memory (AREA)

Description

本開示は、概して、メモリエラー訂正に関し、より具体的には、分類コードを使用してソフトデータを判定するための装置及び方法に関する。
メモリデバイスは、典型的に、コンピュータまたは他の電子デバイスにおいて、内部、半導体、集積回路として提供される。揮発性及び不揮発性メモリを含む、多くの異なるタイプのメモリがある。揮発性メモリは、そのデータを維持するために電力を必要とし得、とりわけランダムアクセスメモリ(RAM)、動的ランダムアクセスメモリ(DRAM)、及び同期動的ランダムアクセスメモリ(SDRAM)が含まれる。不揮発性メモリは、給電されていないときに、記憶されたデータを保持することによって永続的なデータを提供することができ、とりわけ、NANDフラッシュメモリ、NORフラッシュメモリ、相変化ランダムアクセスメモリ(PCRAM)、抵抗性ランダムアクセスメモリ(RRAM)、及び磁気ランダムアクセスメモリ(MRAM)を挙げることができる。
メモリデバイスは、一緒に組合わせて、固体状態ドライブ(SSD)を形成することができる。SSDは、種々の他の種類の不揮発性及び揮発性メモリの中でもとりわけ、不揮発性メモリ、例えば、NANDフラッシュメモリ及び/もしくはNORフラッシュメモリを含むことができ、ならびに/または揮発性メモリ、例えば、DRAM及び/もしくはSRAMを含むことができる。フラッシュメモリデバイスは、例えば、フローティングゲートなどの、電荷貯蔵構造内に情報を記憶するメモリセルを含むことができ、広範な電子用途のための不揮発性メモリとして利用することもできる。
メモリは、広範な電子用途のための揮発性及び不揮発性データ記憶として利用される。不揮発性メモリは、例えば、パーソナルコンピュータ、携帯メモリスティック、デジタルカメラ、携帯電話、MP3プレイヤーなどの携帯音楽プレイヤー、ムービープレイヤー、及び他の電子デバイスに使用することができる。メモリセルは、アレイがメモリデバイスとして使用されている状態で、アレイ内に配置することができる。
ハード読み取りは、メモリセルがプログラムされ得る複数の状態間を区別するような読み取り動作である。ハード読み取りは、ハードデータ、例えば、読み取り動作によって判定される状態に対応する桁を返す。ソフトデータは、ハードデータ以外のデータであり得る。ソフトデータは、ハードデータに関連付けられる確信度に関する確信度レベルを示す(または、示すために使用される)ことができる。例えば、ソフト読み取りは、メモリセルが帯電される特定の電圧を判定するために使用することができ、それは、ハードデータの信頼性を特徴付けるために使用することができる。ハードデータの信頼性は、2つの状態間の境界付近の特定の電圧に対して帯電されたメモリセルに関して、ある状態に対応する電圧範囲の中心付近の特定の電圧に対して帯電されたメモリセルよりも少ない場合がある。種々のエラー訂正コードスキームは、ソフトデータを使用して遥かにより良好に実施することができる。しかしながら、ソフト読み取りによって判定されるソフトデータはハード読み取りと比較してより遅く、ソフト読み取りによって判定されるソフトデータの通信は、帯域幅を消費し、メモリスループットに影響を及ぼす可能性がある。
本開示のいくつかの実施形態に従う、不揮発性メモリアレイの一部分の概略図を例解する。 本開示のいくつかの実施形態に従う、少なくとも1つのメモリシステムを含む計算システムの形態の装置のブロック図である。 本開示のいくつかの実施形態に従う、コントローラの形態の装置の機能ブロック図である。 本開示のいくつかの実施形態に従う、CC符号化されたシーケンス例を例解する図である。 本開示のいくつかの実施形態に従う、分類コードを使用して復号するための方法のフローチャートである。
分類コードを使用してソフトデータを判定するための装置及び方法が、提供される。1つの装置例は、分類コード(CC)復号器と、CC復号器に連結される外符号復号器(CC以外の1つ以上のコードに対応する)とを含むことができる。CCは、最内符号であり得、低密度パリティチェック(LDPC)コードなどの1つ以上の外部エラー訂正コード(単数または複数)(ECC)が存在し得る。CC復号器は、CCコードワードを受信するように構成される。CCコードワードは、外部ECCコードワードの一片を含む。CC復号器は、少なくとも部分的に、対応するCCパリティ桁、例えば、パリティビットに基づいて、外部ECCコードワードの一片に関連付けられるソフトデータを判定するように構成される。
本開示の種々の実施形態によれば、「分類コード」は、メモリ、例えば、フラッシュメモリからのハード読み取りから獲得されるデータに基づいて、ソフトデータを生成するために使用される。この様式で生成されるソフトデータは、反復復号器、例えば、LDPC復号器において使用することができる。分類コードは、単純で簡単なフォワード符号化及び復号技術と共に利用することができ、その使用は、先行アプローチと比較して、特定の反復範囲における最良の生のビットエラー率(RBER)性能を提供することができる。本開示の装置及び方法の1つの利点は、ECCオーバーヘッドのごく一部のみを使用して達成することができる、メモリからのハード読み取りに基づいてソフトデータを生成するための分類コードの使用である。本開示の分類コードは、LDPCコード、及びその復号器が任意の形態のソフト情報を利用することができる任意のECCと協調して使用することができる。
LDPCコードの利点としては、シャノン容量に近い性能及び効率的/構造的ハードウェア実装を挙げることができる。LDPC復号器は、信頼性情報、例えば「信念」の反復交換に基づく、「信念伝播」アルゴリズムを利用する。LDPC復号器は、確率的な性質であり、したがって、ソフトデータを利用することができる。実際、LDPCコードは、例えば、信頼性値などのソフトデータの存在下でのみ、シャノン容量に近い性能を達成することができる。
しかしながら、メモリからのソフトデータ読み取りを伴う作業は、複数の読み取りを必要とし、ハード読み取りと比較してより遅い読み取り時間をもたらし得るメモリのソフト読み取りを介したソフトデータの獲得を含むがそれらに限定されない、いくつかの課題を含む。ハード読み取りの場合、単一ビットの代わりに複数のビットが転送されるため、メモリからのソフトデータ読み取りの転送は、ハード読み取りデータの転送と比較して、より低いスループット率をもたらし得る。メモリ内の全てのページ/ブロック/ダイを含むであろうソフト読み取り位置の算出は、困難であり得る。したがって、それは、可能な限りハード読み取りモードでフラッシュデバイスを動作させるのにより効率的であり得る。
図1は、本開示のいくつかの実施形態に従う、不揮発性メモリアレイ100の一部分の概略図を例解する。図1の実施形態は、NANDアーキテクチャの不揮発性メモリアレイ、例えば、NANDフラッシュを例解する。しかしながら、本明細書において説明される実施形態は、本実施例に限定されない。図1に示されるように、メモリアレイ100は、アクセス線(例えば、ワード線105−1、...、105−N)、及び交差するデータ線(例えば、ローカルビット線107−1、107−2、107−3、...、107−M)を含む。デジタル環境におけるアドレス指定を容易にするために、ワード線105−1、...、105−Nの数、及びローカルビット線107−1、107−2、107−3、...、107−Mの数は、2のいくらかの累乗であり得る(例えば、256ワード線と4,096ビット線)。
メモリアレイ100は、NANDストリング109−1、109−2、109−3、...、109−Mを含む。各NANDストリングは、不揮発性メモリセル111−1、...、111−Nを含み、各々、それぞれのワード線105−1、...、105−Nに連結される。各NANDストリング(及びその構成メモリセル)はまた、ローカルビット線107−1、107−2、107−3、...、107−Mと関連付けられる。各NANDストリング109−1、109−2、109−3、...、109−Mの不揮発性メモリセル111−1、...、111−Nは、ソース選択ゲート(SGS)、例えば、電界効果トランジスタ(FET)、113とドレイン選択ゲート(SGD)、例えば、FET、119との間で、直列にソース・トゥ・ドレイン接続される。各ソース選択ゲート113は、ソース選択線117上の信号に応答して、それぞれのNANDストリングを共通のソース123に選択的に連結するように構成され、一方で、各ドレイン選択ゲート119は、ドレイン選択線115上の信号に応答して、それぞれのNANDストリングをそれぞれのビット線に選択的に連結するように構成される。
図1に例解される実施形態に示されるように、ソース選択ゲート113のソースは、共通のソース線123に接続される。ソース選択ゲート113のドレインは、対応するNANDストリング109−1のメモリセル111−1のソースに接続される。ドレイン選択ゲート119のドレインは、ドレインコンタクト121−1において、対応するNANDストリング109−1のビット線107−1に接続される。ドレイン選択ゲート119のソースは、対応するNANDストリング109−1の最後のメモリセル111−N、例えば、フローティングゲートトランジスタのドレインに接続される。
いくつかの実施形態では、不揮発性メモリセル111−1、...、111−Nの構造は、ソース、ドレイン、フローティングゲートなどの電荷貯蔵構造、及び制御ゲートを含む。不揮発性メモリセル111−1、...、111−Nは、それぞれ、ワード線、105−1、...、105−Nに連結されるそれらの制御ゲートを有する。不揮発性メモリセル、111−1、...、111−Nの「列」は、NANDストリング109−1、109−2、109−3、...、109−Mを作成し、それぞれ、所与のローカルビット線107−1、107−2、107−3、...、107−Mに連結される。不揮発性メモリセルの「行」は、所与のワード線105−1、...、105−Nに共通して連結されるメモリセルである。用語「列」及び「行」の使用は、不揮発性メモリセルの特定の線形、例えば、垂直及び/または水平の配向を示唆することを意味されない。NORアレイアーキテクチャは、メモリセルのストリングが選択されたゲート間で並列に連結されることを除き、同様に配列することができる。
選択されたワード線、例えば、105−1、...、105−Nに連結されるセルのサブセットは、メモリセルのページとして、一緒にプログラムする及び/または読み取ることができる。プログラム動作、例えば、書き込み動作は、その選択されたアクセス線に連結される選択されたセルの閾値電圧(Vt)を、標的の、例えば、所望の状態、例えば、電荷貯蔵状態に対応する所望のプログラム電圧レベルまで増加させるために、多数のプログラムパルス、例えば、16V〜20Vを、選択されたワード線に印加することを含むことができる。
読み取り動作(本明細書において使用するとき、「読み取り」動作は、プログラム検証動作を指すことができる)は、選択されたセルのデータ値を判定するために、選択されたセルに連結されたビット線の電圧及び/または電流の変化を感知することを含むことができる。読み取り動作は、ビット線を予め帯電させること、及び選択されたセルが導通し始めるときに放電を感知することを含むことができる。本明細書において使用するとき、感知することは、読み取ることに含まれる行為である。
選択されたセルの状態を判定する、例えば、感知することは、選択されたワード線に多数の感知信号、例えば、読み取り電圧を提供しつつ、選択されていないセルの閾値電圧とは独立して、選択されていないセルを導通状態に定置するのに十分なストリングの選択されていないセルに連結されるワード線に、多数の電圧、例えば、読み取りパス電圧を提供することを含むことができる。読み取り及び/または検証されている選択されたセルに対応するビット線は、選択されたワード線に印加される特定の感知信号に応答して、選択されたセルが導通するかどうかを判定するように感知することができる。例えば、選択されたセルの状態は、ビット線電流が、特定の状態に関連付けられる特定の参照電流に達する、ワード線電圧によって判定することができる。
NANDストリング内の選択されたメモリセル上で実施される感知動作において、ストリングの選択されていないメモリセルは、導通状態であるようにバイアスされる。かかる感知動作においては、選択されたセルの状態は、ストリングに対応するビット線上で感知される電流及び/または電圧に基づいて、判定することができる。例えば、選択されたセルの状態は、所与の期間中にビット線電流が特定の量だけ変化するか、または特定のレベルに達するかどうかに基づいて、判定することができる。
例として、図1に示されるアレイ100などのアレイのメモリセルは、シングルレベル(メモリ)セル(SLC)またはマルチレベル(メモリ)セル(MLC)であり得る。SLCは、単一ビット、例えば、2つの状態メモリセルであり得る。すなわち、セルは、2つの状態、例えば、P0及びP1のうちの1つに、それぞれプログラムすることができる。動作中、選択されたブロック内などの多数のメモリセルは、P0かまたはP1のいずれかに対応するVtレベルを有するようにプログラムすることができる。例として、状態P0は、バイナリ「1」などの記憶されたデータ値を表すことができる。状態P1は、バイナリ「0」などの記憶されたデータ値を表すことができる。
MLCは、2ビット、例えば、4つの状態のメモリセルであることができ、または、1メモリセル当たりデータの小数部のビットを含む、1メモリセル当たり2つを超えるビットのデータを記憶することができる。例えば、2ビットメモリセルは、4つの状態、例えば、P0、P1、P2、及びP3のうちの1つに、それぞれプログラムすることができる。動作中、選択されたブロック内などの多数のメモリセルは、P0、P1、P2、またはP3のいずれかに対応するVtレベルを有するようにプログラムすることができる。例として、状態P0は、バイナリ「11」などの記憶されたデータ値を表すことができる。状態P1は、バイナリ「10」などの記憶されたデータ値を表すことができる。状態P2は、バイナリ「00」などの記憶されたデータ値を表すことができる。状態P3は、バイナリ「01」などの記憶されたデータ値を表すことができる。しかしながら、実施形態は、これらの例に限定されない。
図2は、本開示のいくつかの実施形態に従う、少なくとも1つのメモリシステム234を含む計算システム230の形態の装置のブロック図である。本明細書において使用するとき、メモリシステム234、コントローラ238、またはメモリデバイス239も、別々に「装置」であると見なされることがある。メモリシステム234は、例えば、固体状態ドライブ(SSD)であることができ、ホストインターフェース236と、コントローラ238、例えば、プロセッサ及び/または他の制御回路と、多数のメモリデバイス239−1、...、239−M、例えば、NANDフラッシュデバイスなどの、メモリシステム234のための記憶容量を提供する固体状態メモリデバイスとを含むことができる。いくつかの実施形態では、コントローラ238、メモリデバイス239−1〜239−M、及び/またはホストインターフェース236は、単一のダイ上にか、または単一のパッケージ、例えば、管理されたNANDアプリケーション内に物理的に位置付けることができる。また、いくつかの実施形態では、メモリ、例えば、メモリデバイス239−1〜239−Mは、単一のメモリデバイスを含むことができる。
図2に例解されるように、コントローラ234は、1つ以上のチャネルを介してホストインターフェース236及びメモリデバイス239−1、...、239−Mに連結され得、メモリシステム234及びホスト232の間でデータを転送するために使用され得る。インターフェース236は、標準インターフェースの形態であり得る。例えば、メモリシステム234が計算システム230内のデータ記憶のために使用されるとき、インターフェース236は、他のコネクタ及びインターフェースの中でもとりわけ、シリアルアドバンスドテクノロジーアタッチメント(SATA)、周辺構成要素相互接続エクスプレス(PCIe)、またはユニバーサルシリアルバス(USB)であり得る。しかしながら、概して、インターフェース236は、メモリシステム234とホストインターフェース236のための互換性のあるレセプタを有するホスト232との間で、制御、アドレス、データ、及び他の信号を渡すためのインターフェースを提供することができる。
ホスト232は、種々の他の種類のホストの中でもとりわけ、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、携帯電話、またはメモリカードリーダーなどのホストシステムであり得る。ホスト232は、システムマザーボード及び/またはバックプレーンを含むことができ、多数のメモリアクセスデバイス、例えば、多数のプロセッサを含むことができる。ホスト232は、通信チャネル233によってホストインターフェース236に連結され得る。
コントローラ238は、他の動作の中でもとりわけ、データ読み取り、書き込み、及び消去動作を制御するために、メモリデバイス239−1、...、239−Mと通信することができる。コントローラ238は、例えば、いくつかのメモリデバイス239−1、...、239−Mへのアクセスを制御するため、及び/もしくはホスト232とメモリデバイス239−1、...、239−Mとの間のデータ転送を促進するためのハードウェア、ならびに/またはファームウェア、例えば、1つ以上の集積回路、ならびに/またはソフトウェアの形態の多数の構成要素を含むことができる。例えば、図2に例解される例では、コントローラ238は、ソフトデータ構成要素242及びエラーコード/復号構成要素244を含むことができる。しかしながら、コントローラ238は、本開示の実施形態を曖昧にしないために例解されていない、種々の他の構成要素を含むことができる。また、構成要素242及び/または244は、いくつかの実施形態では、コントローラ238の構成要素でなくてもよく、例えば、構成要素242及び/または244は、独立した構成要素であり得る。
ソフトデータ構成要素242は、ソフトデータを判定する、例えば、参照するために使用することができる。例えば、ソフトデータ構成要素242は、ハード読み取りからソフトデータを判定するために使用することができる。エラーコード/復号構成要素244は、例えば、BCH符号器/復号器、LDPC符号器/復号器、分類コード符号器/復号器、及び/または他の種類の符号器/復号器であり得、ホスト232とメモリデバイス239−1、...、239−M間で転送されるユーザデータを符号化/復号することができる。ソフトデータ構成要素242は、エラーコード/復号構成要素244に連結されて、例えば、それにソフトデータを提供することができる。それに加えて、エラーコード/復号構成要素244の復号器は、ソフトデータを別のエラーコード/復号構成要素244の復号器に提供することができる。
メモリデバイス239−1、...、239−Mは、メモリセルの多数のアレイ、例えば、図1に示されるアレイ100などのアレイを含むことができる。アレイは、例えば、NANDアーキテクチャを有するフラッシュアレイであり得る。しかしながら、実施形態は、特定の種類のメモリアレイまたはアレイアーキテクチャに限定されない。メモリセルは、例えば、多数の物理的ページを含む多数のブロックにグループ化することができる。多数のブロックは、メモリセルのプレーン内に含まれ得、アレイは、多数のプレーンを含むことができる。
図3は、本開示のいくつかの実施形態に従う、コントローラ338の形態の装置の機能ブロック図である。コントローラ338は、メモリ339に連結され得、コントローラ338は、ECC符号化/復号構成要素344を含むことができる。コントローラ338は、図2の計算システム230の一部として示されるコントローラ238と同等のものであり得る。本開示の装置及び方法は、計算システムに関して、またより具体的には、メモリからのデータ読み取りの復号に関して例解されているが、本開示の実施形態はそのように限定されるものではなく、通信チャネル233を通じて伝送されるデータの復号などの他の様式で実装することもできる。
メモリ339は、非一時的媒体であり、メモリセル、例えば、不揮発性メモリセルの多数のアレイを含むことができる。アレイは、例えば、図1に示されるアレイ100などのNANDアーキテクチャを有するフラッシュアレイであり得る。しかしながら、本開示の実施形態は、特定の種類のメモリアレイまたはアレイアーキテクチャに限定されない。本開示の方法及び装置はまた、他のメモリセル、例えば、典型的にはDRAM、PCRAM、及び/またはRRAMメモリに使用されるメモリセルなどと共に使用または実装することもできる。
コントローラ338は、メモリ339と通信して、動作する、例えば、メモリセルを読み取る、書き込む、動かす、プログラムする、感知する、消去することができる。したがって、コントローラ338は、メモリ339との通信、及びメモリ339内に記憶されたデータを管理することができる。コントローラ338は、多数の集積回路を利用する回路、及び他の別個の構成要素を有することができる。いくつかの実施形態では、コントローラ338は、ホストインターフェース108、及び/またはメモリデバイス339を含む、プリント基板に連結される特定用途向け集積回路(ASIC)であり得る。メモリ339及び/またはコントローラ338は、本開示の実施形態を曖昧にしないために例解されていない、追加の回路を含むことができる。本明細書において使用するとき、コントローラ338及び/またはメモリ339はまた、別々に実装される、及び/または「装置」と見なされてもよい。
ECC符号化/復号構成要素344は、メモリ339に伝送されている、及び/またはメモリ339から受信されているデータを符号化及び復号するために構成される論理を含むことができる。データの符号化及び/または復号は、ハードウェア及び/またはソフトウェアにおいて達成することができる。例えば、ECC符号化/復号構成要素344は、入力時に符号化されていないデータを受信し、出力時に符号化されたデータを提供することができる。
図3に例解されるように、ECC符号化/復号構成要素344は、多数の種々の種類のエラーコード/復号構成要素、例えば、特定のECCエンジンを実装する符号器/復号器を含むことができる。エラー符号化構成要素は、メモリ339に書き込む、例えば、記憶するための、例えば、ホスト、例えば、図2に示される232から受信されたデータ、例えば、ユーザデータを、符号化するように構成することができる。代替的な実施形態(単数または複数)によると、種々の種類のエラーコード/復号構成要素は、ECC符号化/復号構成要素344の構成要素としてよりもむしろ、コントローラ338の構成要素として実装することができる。
いくつかの実施形態によると、ECC符号化/復号構成要素344は、多数の符号化部分(単数または複数)及び/または復号部分(単数または複数)を含むことができる。例えば、ECC符号化/復号構成要素344は、1つ以上の外符号符号器(単数または複数)、例えば、LDPC符号器348、1つ以上の外符号復号器、例えば、LDPC復号器354などの反復復号器、CC符号器350、及びCC復号器352を含むことができる。ECC符号化/復号構成要素344はまた、例えば、任意追加的なボーズ・チョドーリ・オッケンジェム(BCH)符号器346及びBCH復号器356を含むこともできる。任意追加的なBCH符号器346及びBCH復号器356は、1つ以上の中間コード符号器、例えば、LDPC符号器348、及び1つ以上の中間コード復号器、例えば、LDPC復号器354などの反復復号器が存在するように、最外符号符号器及び復号器として実装することができる。任意追加的なBCH符号器346及びBCH復号器356は、別々の構成要素として実装することができ、またはBCH符号器/復号器347として実装することができる。LDPC符号器348及びLDPC復号器354は、別々の構成要素として実装することができ、または符号器/反復復号器349の構成要素として実装してもよい。CC符号器350及び/またはCC復号器352は、別々の構成要素として実装することができ、またはCC符号器/復号器351の構成要素として実装してもよい。本開示の実施形態は、上に記載した特定の量及び/または種類のコード符号器/復号器セットに限定されるものではなく、追加の符号器/復号器、及び/または上述のもの以外の異なる種類もしくは順序の符号化/復号を含むことができる。
本開示の種々の実施形態によると、CC復号器352は、コントローラの構成要素として、またはプロセッサ、マイクロプロセッサ、システムオンチップ、特定用途向け集積回路,ハードウェア論理、もしくは開示される機能性の全部または一部を提供する1つ以上の集積回路上での包含に好適な他の回路を介して、ハードウェア内に実装することができる。種々の実施形態では、CC復号器352は、フィールドもしくはマスクプログラム可能ゲートアレイ集積回路などのプログラム可能技術、完全にもしくは部分的にセルベースの集積回路などのセミカスタム技術、特殊集積回路などの技術、それらの組合せ、または集積回路の設計及び/もしくは製造に適合する別の技術を含む種々の技術に従って、設計可能及び/もしくは製造可能であり得る。
ユーザデータは、まず任意追加的なBCH符号器346を使用して符号化することができ、それは、LDPC符号器348を使用してさらに符号化することができ、それは、CC符号器350を使用してさらに符号化することができる。したがって、LDPCコードは、BCHコードに対する内符号であり、CCは、LDPCコードに対する内符号である。種々の実施形態によると、BCH符号器346及び/またはBCH復号器356は、点線によって図3に示されるように、所望により省略することができる。
本開示の種々の実施形態によると、ECC符号化/復号構成要素344は、全LDPC ECCスキーム、または内部LDPCコードと外部BCHコードとを有する連接されたECCスキームを選択的に実装することができる。連接されたECCスキームにおいては、LDPC復号器は、例えば、1または2反復、走ることができる。1または2反復後の残りのエラーは、例えば、外部BCHコードを実装する構成要素(単数または複数)によって訂正することができる。
高精度LDPC復号器は、LDPC復号器が所望の量の反復に制御され得るように、使用することができる。全LDPC ECCスキームは、それが必要なだけ多くの反復を走ることができるならば、特定の用途に関するハード及びソフトモードの双方において、連接されたECCスキーム、例えば、外/内符号とのLDPCコードの連接と比較してより高いRBER性能を支持することができる。全LDPC ECCスキームは、LDPC復号器反復の数及び利用可能なハードウェアリソースに応じて、多様なスループット率を提供することができる。しかしながら、全LDPC ECCスキームは、連接されたECCスキームと比較して、同一のRBER性能に達するためにより多くの復号器反復を必要とする可能性があり、より複雑なECC復号構成要素、例えば、LDPC復号器354を利用する。より高い復号器の反復は、より高い復号器電力に変わる。
例えば、1または2反復を実装するLDPC復号器を伴う連接されたECCスキームは、相対的により複雑でないECC符号化/復号構成要素344と共に実装することができ、より少ない反復を必要とすることができ、全LDPC ECCスキームより少ない電力を使用することができ、(いくつかの用途に関して)持続したスループットを提供することができる。しかしながら、連接されたECCスキームは、例えば、フラッシュメモリにおけるサイクリング及び保持効果の後、RBERの寿命の最後に対応するRBER領域において、全LDPC ECCスキームと比較して同程度に高いRBER性能を提供しない。
いくつかの実施形態によると、1または2反復のLDPC復号器に限定される用途、例えば、電力及びハードウェアの制約に関しては、連接されたECCスキームは、全LDPC ECCスキームより良好に機能し、1または2反復のLDPC復号器に限定されない用途に関しては、全LDPC ECCスキームは、連接されたECCスキームより良好に機能する。
本開示の種々の実施形態によると、メモリのハード読み取りに基づいて判定されるソフトデータが、LDPC復号器に提供される。ハード読み取りモードにおける全LDPC ECCスキーム及び連接されたECCスキームは、どちらもより遅い復号器収束を抱え、それは、より高い数の復号器反復へと変わる。所与のRBERに関して、LDPC復号器の平均反復数は、ソフトデータの存在下ではより少なくなるであろう。ソフトデータは、LDPC復号器が、高い信頼性を有すると判定された、例えば、ビットなどのデータ桁と、低い信頼性を有すると判定されたデータ桁とを区別することを可能にすることができ、これは、LDPC復号器の確率的性質のため、低い信頼性を有すると判定されたデータ桁のより速い訂正に転じることができる。信頼性のあるデータ桁と信頼性のないデータ桁とを区別するソフトデータを使用するLDPC復号器は、より良好なRBER性能、及びより速いLDPC復号器収束、例えば、より少ない平均数のLDPC復号器反復を提供することができる。
本開示の種々の実施形態によると、ECCオーバーヘッドの一部分は、CCパリティ桁を含む「分類コード」(CC)のために使用される。CCパリティ桁は、メモリからのハード読み取りによって獲得されるデータに基づいてソフトデータを生成するために、使用することができる。生成されたソフトデータは、LDPC復号器性能を改善するために、LDPC復号器において使用することができる。いくつかの実施形態によると、ソフトデータの品質、例えば、粒度は、分類コードに割り当てられるECCオーバーヘッドバジェットの量に基づくことができる。粗いソフトデータでさえも、特定の反復数におけるLDPC復号器からの改善されたRBER結果につながることができる。したがって、本開示のCCは、LDPC復号器結果を達成するために、改善された相対的に小さいECCオーバーヘッドを使用して実装することができる。
本開示の種々の実施形態によると(及び、図3を参照すると)、書き込みパスにおいて、CC符号器350は、LDPC符号器348によって提供されるLDPCコードワード、例えば、LDPC符号化されたシーケンスを受信することができる。LDPCコードワードは、CCコードワードに関するユーザデータに対応する、特定の数のより小さい片に分割することができる。CC符号器350は、LDPC符号化シーケンスの各片にCCパリティ桁を追加することができる。付加されたCCパリティ桁を有するLDPCコードワードの一片は、CCコードワードである。単一のLDPCコードワード内には、複数のCCコードワードが存在し得る。LDPCコードワードに対応するCCコードワードは、CC符号化されたシーケンスである。換言すれば、CC符号化されたシーケンスは、多数のCCコードワードを含むことができ、各CCコードワードは、図4に関してさらに説明されるように、LDPCコードワードの一片から形成される。
CC符号器350出力、例えば、CCコードワード(単数または複数)は、メモリ339に書き込むことができる。換言すれば、CCコードは、LDPCコードに対する内符号である。下により詳細に述べるように、CC符号化は、CC符号器352が、LDPCコードワードの片に付加され得る多数のCCパリティ桁を含むCCコードワードを生成するように、系統的であり得る。本明細書において使用するとき、「コードワード」は、例えば、ユーザデータ、例えば、入力データとそれぞれのコードのパリティ桁とを含むことができる、データ桁のシーケンスを指す。
復号パスにおいて、CC復号器352は、ハード読み取りによってメモリ339から獲得されるデータなどのデータを受信することができる。CC復号器352によって受信されるデータは、多数のCCコードワードを含むCC符号化されたシーケンスであり得る。CC復号器352によって受信されるCC符号化されたシーケンスは、桁エラーが生じているか否かに応じて、メモリ339に記憶されたCC符号化されたシーケンスと同一であってもよく、または同一でなくてもよい。すなわち、CC復号器352によって受信されるCCコードワードは、1つ以上の桁における起こり得るエラーのため、メモリ339に書き込まれた対応するCCコードワードと同一であってもよく、または同一でなくてもよい。
CC復号器352は、CC制約に関連付けられる能力に基づいて、LDPCコードワードのそれぞれの片に関連付けられるソフトデータを生成することができる。LDPCコードワードの片及び関連付けられるソフトデータは、LDPC復号器354に提供され得る。種々の実施形態によると、CC復号器352は、例えば、(メモリから受信されるCCコードワードの)LDPCコードワード片に対して、いかなる訂正も行わない。すなわち、CC復号器352の出力におけるRBERは、メモリからのRBERと同じである。
いくつかの実施形態によると、LDPC符号器348は、ユーザデータを入力として受信し、LDPCコードワードをCC符号器350に出力することができる。所望により、BCH符号器346は、ユーザデータを入力として受信し、BCHコードワードをLDPC符号器348に、例えば、LDPC符号器348に対する入力として、出力することができる。LDPC符号器348は、BCHコードワードを受信し、それからLDPCコードワードを生成することができる。したがって、LDPCコードは、BCHコードに対する内符号である。
いくつかの実施形態によると、LDPC復号器354は、LDPCコードワードとLDPCコードワードの各片に関連付けられるソフトデータとを含む1つ以上の片をCC復号器352から受信し、LDPCコードワード及びソフトデータから判定されるユーザデータを出力することができる。LDPCコードワードに対応する複数のCCコードワードに関連付けられるソフトデータは、一緒にグループ化され、LDPC復号器354に渡されることができ、該LDPC復号器354は、集約されたソフトデータを使用してLDPCコードワードを復号する。
所望により、LDPC復号器354は、LDPCコードワードとLDPCコードワードのそれぞれの片に関連付けられるソフトデータとを含む1つ以上の片をCC復号器352から受信し、BCHコードワードをBCH復号器356に出力することができる。BCH復号器356は、BCHコードワードを入力として受信し、ユーザデータを出力することができる。いくつかの実施形態によると、LDPC復号器354は、下にさらに述べられるように、フィードバックパス358を介して信頼性データをCC復号器352に提供することができる。
種々の実施形態によると、CC復号器352は、それぞれの信頼性値を、LDPCコードワードの一片の種々の部分に、例えば、LDPCコードワードのそれぞれの片の桁(単数または複数)に関連付けるように構成することができる。信頼性値は、例えば、対数尤度比(LLR)であり得る。CC復号器352は、LDPCコードワードの一片の一部分に関する信頼性値を、(LDPCコードワードの一片と併せて)LDPC復号器に提供するように構成される。種々の実施形態によると、信頼性値は、3つの値:不確実な信頼性に対応する1つの値、強い信頼性に対応する別の値、及び弱い信頼性に対応する第3の値のうちの1つであり得る。いくつかの実施形態によると、信頼性値は、少なくとも部分的に、特定の桁に関連付けられる他のソフトデータに基づいて、上述の3つの値のうちの1つからさらに調整することができる。
図4は、本開示のいくつかの実施形態に従う、CC符号化されたシーケンス例を例解する図である。CC符号化されたシーケンス460は、LDPCコードワードから、多数のCCパリティ桁469をその中に挿入することによって形成され、各CCコードワード468は、LDPCコードワード467の一片及び関連付けられるCCパリティ桁469から形成される。LDPCコードワードは、ユーザデータ462、LDPCパリティ桁466、及び/または任意追加的なBCHパリティ桁464を含むことができる。したがって、CC符号化されたシーケンス460は、ユーザデータ462、ユーザデータ桁462、LDPCパリティ桁466、任意追加的なBCHパリティ桁464、及びCCパリティ桁469を含むことができる。したがって、CC符号化されたシーケンス460は、連接されたコードワードである。いくつかの実施形態によると、CC符号化されたシーケンス460は、多数のCCコードワード468を含み、各CCコードワード468は、LDPCコードワード467の一片、及びLDPCコードワード467の一片に関連付けられるCCパリティ桁469から成る。
例として、CC符号化されたシーケンス460は、多数のCCパリティ桁469と併せて、LDPCコードワードから成り得る。LDPCコードワードは、例えば、16,000の桁、例えば、ビットのサイズを有することができる。したがって、この例では、CC符号化されたシーケンス460は16,000桁のLDPCコードワードに加えて多数のCCパリティ桁469を含むため、CC符号化されたシーケンス460のサイズは、16,000桁より大きい。LDPCコードユーザデータは、任意追加的なBCHコードパリティビットに加えて、ホストからのユーザデータから成る。
CC符号化されたシーケンス460は、多数のCCコードワード468から成り得る。図4は、100個のCCコードワード468を含むCC符号化されたシーケンス460を示す。CCコードワード468のLDPCコードワード467の一片は、多数の部分470、例えば、「チャンク」を含むことができる。CCパリティ桁469は、多数の部分470に付加され得る。図4は、8個の部分470を有するCCコードワード468を示す。すなわち、CCコードワードが構成されるLDPCコードワード467の一片は、複数の部分を含むことができる。
LDPCコードワード例のサイズが16,000桁であると仮定すると、各部分470はしたがって、20桁から成り、各CCコードワード468は、8×20=160桁を有するLDPCコードワード467の一片と、それに付加されるCCパリティ桁469(量は、CCコード比率に依存する)とを含む。しかしながら、LDPCコードワード467の一片、CCコードワード468、CCパリティ桁469、及び/または部分470は、この例に説明される桁の量に限定されず、各々、この例に説明されるものより多いまたは少ない桁から成ってもよい。各部分470、例えば、この例では20ビットは、LDPCコードワード460の一片の一部分であり、各部分470はまた、C1コードワードである(下にさらに述べられる)。
本開示の種々の実施形態によると、CCは、代数コード(「C1」)及びバイナリ代数コード(「C2」)のテンソル積である。C1は、任意の検出コードであり得る。種々の実施形態によると、C1は、各C1コードワードに対応するパリティチェックコード、例えば、各C1コードワードに対応する一桁パリティチェックコードから成る。例えば、C1桁は、「1」に設定して、C1コードワードの桁に関する偶数または奇数パリティのうちの1つを示すことができる。いくつかの実施形態によると、C1は、部分470の全ての桁の加算のうちの最下位桁として計算することができる。CCコードワード468のLDPCコードワード467の一片が8個の部分を含むと仮定すると、各チャンクに関して計算されるC1と併せて、8桁のベクトルが得られる。したがって、C1は、LDPCコードワード467の一片の一部分、例えば、部分470内の奇数の桁エラーを検出するために使用することができる。逆に、C1は、LDPCコードワード460の一片の一部分内、例えば、部分470内の偶数の桁エラーを検出するためには使用することができない。
C2は、任意の訂正コードであり得る。例えば、C2は、ハミングコードなどのバイナリ代数コードであり得る。しかしながら、C2は、ハミングコード実装に限定されない。C2は、「t」エラーを識別する、及び「t+1」エラーを検出するために使用することができる。すなわち、C2は、エラーであるCCコードワード468の「t」部分470を直接識別するために使用することができ、CCコードワード468の「t+1」部分470がエラーであるかを検出するために使用することができる(しかし、どの部分470がエラーであるかを識別することができない)。「t+1」を超えるエラーが存在する場合、CCコードは、エラーである部分470を正確に検出することができない。この場合、部分470は、エラーである、及び/またはエラーでないとして誤認される可能性がある。その結果、一部のビットは、(下にさらに述べるように)不適切な信頼性値に割り当てられる場合がある。
C1及びC2のテンソル積は、例によってさらに例解することができる。C1が比率4/5の単一パリティコードであると仮定すると、C2は、比率4/7のハミングコードである。C1、C2、及びH(C1)とH(C2)とのテンソル積のパリティチェックマトリックスは、以下に与えられる:
H(C1)は、1×5マトリックスであり、H(C2)は、3×7マトリックスであり、結果として得られるH(TPC)は、3×35マトリックスである。したがって、結果として得られるコード比率は、32/35である。
テンソル積を決定するために、H(C1)を、例えば、マトリックス乗算によって、H(C2)の各入力によって乗じる。例えば、H(TPC)の第1の行の初めの5入力は、H(C1)をH(C2)で乗じることによって計算され、例えば、(1,1)は1である。同様に、H(TPC)の第2の行の最後の5ビットは、例えば、H(C1)をH(C2)で乗じることによって計算され、(2,7)=0である。C1(検出コード)及びC2(訂正コード)のテンソル積に基づく結果として得られるコードは、「検出コード」である。
CC符号器、例えば、図3の350は、CCコードワード468を生成し、これは、メモリ、例えば、図3の339に書き込まれる。CCは、系統的なコードである。したがって、符号化は、CC469のパリティ桁の生成に関与する。これは、バイナリ加算に関与する線形の動作である。CCが最内符号であるとすると、CC符号器、例えば、図3の350への入力は、LDPCコードワード、例えば、LDPC符号化されたビットシーケンスである。CC符号器は、この入力シーケンスを取得し、CCパリティ桁をそこへ付加する。結果として得られるCCコードワードはその後、例えば、図2に示される238などのコントローラによって、メモリに書き込まれる。
以下の考察は、CCコードワードの生成を例解する例である。この例に関するコード比率は32/35であり、したがって各々32ビットのCC符号器へのデータ入力が、35ビットのCCコードワードにマッピングされ、これは、3個のパリティ桁を含む。以下の例において、32ビットのCC符号器への入力は、以下のように仮定される:
U=[U1 U2…U32]。次に、CCコードワード(付加されたCCの3個のパリティ桁を伴う)は以下の形態である:
P1、P2、及びP3は、パリティ桁である。i番目の「ファントムシンドローム」は、例えば、バイナリ加算を使用して、例えば、i番目の列中の5ビットを加算することによって、計算することができる。用語S1、S2、S3、及びS4は、数として計算することができる。用語S5、S6、及びS7は、P1、P2、及びP3を含む。結果として得られるシンドローム(ベクトル)[S1 S2…S7]は、使用した4/7ハミングコードに関する有効なコードワードである。ファントムシンドロームをハミングコードのパリティチェックマトリックスで乗じることによって、S5、S6、及びS7は、S1、S2、S3、及び S4から以下のように決定することができる(全ての加算はバイナリである):
S5=S1+S2+S3、
S6=S1+S2+S4、
S7=S1+S3+S4、また
次に、S5、S6、及びS7を使用して、P1、P2、及びP3を以下のように得ることができる:
P1=S5+U21+U22+U23+U24、
P2=S6+U25+U26+U27+U28、
P3=S7+U29+U30+U31+U32。
シンドローム(ベクトル)[S1 S2…S7]は、C2のパリティチェックマトリックス、例えば、ハミングコードパリティチェックマトリックスによって乗じることができ、これは、先に述べたようにエラーである部分470を検出または識別するために使用することができる別のシンドロームをもたらす。
図5は、本開示のいくつかの実施形態に従う、分類コードを復号するための方法のフローチャートである。CC復号器への入力は、例えば、ハード読み取り571などによる、例えば、メモリから読み取られたデータであり得る。一度に読み取られるデータの量は、例えば、データのページに対応することができる。CC復号器、例えば、図3の352は、多数のCCコードワードを含むように、受信されたCC符号化されたシーケンスのCCコードワード、例えば、LDPCコードワード上で動作することができる。CC符号化されたシーケンスを含むデータは、複数のCCコードワードを含むことができる。所与のLDPCコードワード中のCCコードワードの正確な数は、CC及びLDPCコードコードワードサイズに依存する。
この例では、各CCコードワードに関して、復号するステップは、以下の通りである。CCシンドロームは、572に示されるように、受信されたCCコードワードを、分類コードのパリティチェックマトリックスによって乗じることによって計算される。多数の部分が、573に示されるように、エラーであってもよい。エラーである部分の量に応じて、異なる結果が生じることになる。すなわち、結果は、エラーであるt以下の部分が存在するか、エラーであるt+1の部分が存在するか、またはエラーであるt+1超、例えば、t+2以上の部分が存在するかに応じて異なる。
受信されたCCコードワード内で「t」以下の部分がエラーである場合、シンドロームは、574に示されるように、エラーである部分を正確に識別する。エラーであると識別された部分は、C1が単一のパリティコードであるとき、エラー内に奇数のビットを有することになる。575に示されるように、弱い信頼性(適切なサインを伴う)に対応する信頼性値は、エラーであると識別された部分内の全てのビットに関連付けられ、強い信頼性(適切なサインを伴う)に対応する信頼性値は、例えば、エラーであるとは識別されない、他の部分内の全てのビットに関連付けられる。本開示の種々の実施形態によると、特定のセルの桁に関する弱い及び/または強い信頼性に対応する信頼性値は、特定のメモリセルの条件、例えば、プログラム/消去サイクル、保持、データが保持されていた時間量、読み取り阻害の数などに少なくとも部分的に基づいて、調整する、例えば、精緻化する、整調するなどすることができる。
「t+1」の部分がエラーである場合、シンドロームは、576に示されるように、エラーである部分を識別することなく、「t+1」の部分がエラーであることを検出する。この場合、CCコードワード内の全てのビットは、577に示されるように、不確実な信頼性に対応する信頼性値を割り当てられる。本開示の種々の実施形態によると、特定のセルの桁に関する不確実な信頼性に対応する信頼性値は、特定のメモリセルの条件、例えば、プログラム/消去サイクル、保持、データが保持されていた時間量、読み取り阻害の数などに少なくとも部分的に基づいて、調整する、例えば、精緻化する、整調するなどすることができる。
「t+1」を超える部分がエラーである場合、シンドロームは、578に示されるように、エラーである部分を誤認する。エラーであると誤認された部分に関して、弱い信頼性に対応する信頼性値(適切なサインを伴う)は、579に示されるようにエラーであると誤認された部分内の全てのビットに関連付けられ、また、強い信頼性に対応する信頼性値(適切なサインを伴う)は、579に示されるように、例えば、エラーであるとは識別されない、他の部分内の全てのビットに関連付けられる。これは、エラーである「t」以下の部分が存在する場合と同様に処理される。
誤認の結果として、一部のビットは、不適切な信頼性を割り当てられることがある。弱い信頼性に対応する信頼性値は、エラーであると誤認された部分内のビットに関連付けられる。C1内の検出不可能なエラー事象(エラーである偶数のビット)を無視すると、弱い信頼性に対応する信頼性値は、実際には正しいビット、例えば、CCコードワードのビットに関連付けられ得る。残りの部分、例えば、エラーであると誤認されていない部分に関して、これらの部分の一部には、エラーである奇数のビットが存在することになり、強い信頼性に対応する信頼性値は、これらの誤りのあるビット、及び残りの正しいビットに関連付けられる。
一部のビットとの不正確及び/または不適切な信頼性値の関連付けは、例えば、LDPC復号器において、いくらかの性能の劣化を引き起こす可能性がある。しかしながら、信頼性値の関連付けはRBERを変化させないとすると、性能の劣化は小規模であり得、したがってLDPC復号器におけるソフトデータの使用に関連付けられる利益の観点から、許容され得る。
CC復号器動作の詳細な例を、下に説明する。メモリ内の記憶されたCCコードワードを、例えば、ハード読み取りを介して受信した後、1×7のファントムシンドロームが計算される。1×7のファントムシンドロームを、3×7H(C2)によって乗じて、1×3のエラー場所マトリックスを獲得し、これは、奇数のビットエラーを有する部分を位置付けるために10進数に変換することができる。例として:
を考察する(ビットエラーは、単一下線によって示され、パリティ桁は、二重下線によって示される)。
C(25)にビットエラーが存在すると仮定すると、C’は:
である。この場合、シンドロームは、[1100011]であり、エラーロケータは、[010]=2であり、これは右から2番目の5ビット部分を指す。C2がエラーであるt=1の部分を識別することができ、C’がエラーである単一の部分を有したとすると、CC復号器は、エラーである部分を正確に識別することができる。
別の例として、同じU及びCに関して、エラーがU(7)、U(8)、及びU(10)において作成された(単一の部分内の3ビットエラーは、エラーである単一の部分を引き起こす)と仮定すると:
シンドロームは、[1100001]であり、エラーロケータは、[110]=6であり、これは、右から6番目の部分を指す。
最後の例に関して、部分6内の3ビットエラー及び部分2内の1ビットエラーは:
であり、
シンドロームは、[1100011]であり、エラーロケータは、[010]=2である。したがって、エラーロケータは、奇数のビットエラーを有する第2の部分を示す。この特定のCCコードは、奇数のビットエラーを有するただ1つの部分のみを位置付けることが可能である。この例は、エラーである2つの部分を有するため、これは、図5の578及び579に対応する。この場合、CC復号器は、正しい(エラーではない)部分6を誤認し、これは、部分6の誤りのあるビットにおける高い信頼性の関連付けをもたらすことになる。
分類コードの選択及び/または設計は、本装置または方法が実装されている計算システム及び/またはメモリデバイスの必要に基づいて行うことができる。CCは、RBERを変化させない。CC復号器は、ソフトデータ、例えば、信頼性値を、メモリから読み取られたものと同じサインを有するビットに関連付ける。部分内の全てのビットは、同様に処理することができる。例えば、部分がエラーであると識別される場合、一部の、例えば、奇数のビットがエラーであり得る場合であっても、弱い信頼性に対応する信頼性値は、その部分内の全てのビットに関連付けることができる。このことを考慮すると、より短い部分を有することがより良い。しかしながら、より短い部分は、より多くのECCオーバーヘッドを使用する。例えば、以下の2つのコード例を考察する。
コード1は、25ビットの単一パリティコード(K,N)=(24,25)であるC1、及びハミングコード(K,N)=(4,8)を検出する2ビットを訂正する1ビットであるC2を有する。CCは、(K,N)=(196,200)_比率=0.98(2%オーバーヘッド)である。コード2は、10ビットの単一パリティコード(K,N)=(9,10)であるC1、及びハミングコード(K,N)=(4,8)を検出する2ビットを訂正する1ビットであるC2を有する。CCは、(K,N)=(76,80)_比率=0.95(5% オーバーヘッド)である。これらの例は、より小さい部分サイズと比率とのトレードオフを示す(より細かいソフト信頼性割当てを示唆する)。固定されたECCバジェットを仮定すると、ECCバジェットから取得された任意の過剰の比率は、より高い比率のLDPCコードの使用につながり得る。したがって、結果として得られるRBER性能は、より不良となり得る。
C2に関してより大きい「t」を有することは、有益であり得る。しかしながら、この効果は、結果として得られるコードに関する増加されたコードワードサイズであろう。以下の2つの事例を考察する。コード1は、25ビットの単一パリティコード(K,N)=(24,25)であるC1、及びハミングコード(K,N)=(4,8)を検出する2ビットを訂正する1ビットであるC2を有する。CCは、(K,N)=(196,200)比率=0.98(2%オーバーヘッド)である。コード2は、25ビットの単一パリティコード(K,N)=(24,25)であるC1、及びゴーレイコード(K,N)=(12,24)を検出する4ビットを訂正する3ビットであるC2を有する。CCは、(K,N)=(588,600)比率=0.98(2%オーバーヘッド)である。どちらのコード例も、同一のオーバーヘッド(2%)を有する。コード1は、200ビット(8つの25ビットの部分)当たり、エラーである1つの部分を識別し、エラーである2つの部分を検出することができる。コード2は、600ビット(24個の25ビットの部分)当たり、エラーである3つの部分を識別し、エラーである4つの部分を検出することができる。これらの2つのコードを比較すると、コード2は、ECCリソースをプールしており、より大きいコードワードをそれらに提供している。200ビットの3つの区分としてのコード2の600ビットのコードワードを考察すると、コード2は、該区分のうちの1つが、エラーである2、3、または4つの部分を有し、またエラーである部分の総数が、24個の部分のうち4以下であるときにのみ、より良好に機能するであろう。シミュレーションは、RBER領域が約5E−3の例では、両コードは同様に機能することを示しており、これは、関心のRBER領域では、8つの部分のうちエラーである2つ超の部分を有する確率は、極めて低いことを表している。しかしながら、種々の製品及び技術に関する関心のRBER領域に応じて、CCコードワードのECCリソースのプーリングは、有益であり得る。
エラーであると誤認された部分のビットに対する不正確な信頼性値の関連付けの可能性を考慮すると、弱い信頼性、不確実な信頼性、及び/または強い信頼性に対応する信頼性値の選択は、良好な性能を達成するために使用することができる。同一の構成に関しては、より不良な選択は、遥かにより不良な結果につながり得る。
再び図3を参照すると、LDPC復号器354からCC復号器352へのフィードバックパス358は、それらの間にターボ等化を提供するために使用することができる。ターボ等化は、CC復号器352の動作を潜在的に助けることができる。CC復号器352が、まず、メモリからのハード読み取りを介してデータを受信することができ、LDPC復号器354における使用のためにソフトデータを生成することができる。LDPC復号器354は、例えば、数回の反復を走らせた後に、この生成されたソフトデータをエラー訂正のために使用することができる。LDPC復号器354からのハード決定は、フィードバックパス358を介してCC復号器352にフィードバックされ得る。LDPC復号器354からのハード決定を用いて、CC復号器352は、メモリ339から読み取られたデータと比較して、潜在的により少ないエラーをその中に有するハード読み取りからのデータと共に稼働することができる。
LDPC復号器354からのこの新しいデータを使用して、CC復号器352は、ソフトデータを再生成し、それをLDPC復号器354に送り返すことができる。LDPC復号器354からのフィードバックは、無視することができ、CC復号器は、ソフトデータが全く存在しないかのように(CC復号器352が、ハード読み取りを介してメモリ339から獲得したデータに基づいてソフトデータを生成する状況と同様に)ソフトデータを生成することができる。または、CC復号器352は、潜在的にエラーである部分を識別することができる。信頼性値を同じ弱い信頼性に対応する全てのビットに関連付ける代わりに、エラーである部分を識別するCC復号器352によって、CC復号器352は、(LDPC復号器354からフィードバックされるソフトデータを使用して)エラーであるビット(単数または複数)を識別するよう試みることができる。例えば、最も低い信頼性ビットは、エラーである可能性がより高いものとして識別することができ、弱い信頼性に対応する信頼性値は、部分のいくつかのビットに関連付けることができ、一方、強い信頼性に対応する信頼性値は、チャンク内の他のビットに関連付けることができる。
低密度パリティチェック(LDPC)コードなどの高度なエラー訂正コード(ECC)の復号は、対数尤度比(LLR)情報などのソフトデータを使用して達成することができる。バイナリデータ値決定に関する確信度は、LLRとして表すことができ、これは、
として算出され、式中、P(0)は、データ値の桁、例えば、ビットが、第1の値、例えば、ゼロを有する条件付き確率であり、P(1)は、データ値の桁が第2の値、例えば、1を有する条件付き確率である。(コードワードがメモリに記憶される場合、メモリに実際に記憶されるデータ値は、コードワードのデータ値であることに留意されたい。)確信度全体が感知された状態に起因するとき、上述の式は、
であるため、「0」を表す状態が感知されるときである正の無限大と、また
であるため、「1」を表す状態が感知されるときである負の無限大とをもたらす。確信度の測定は、1ビットに切り捨てて、例えば、読み取り要求に応答して、正の無限大の代わりに+1を返し、また負の無限大の代わりに−1を返すことができる。
1つの方法例は、ハード読み取りを使用して、メモリセルの状態を判定することを含むことができる。ソフトデータは、少なくとも部分的に、判定された状態に基づいて判定される。本開示のいくつかの実施形態によると、確率は、特定のデータ値配置内の近隣の状態に対応するデータ値に基づいて、特定のデータ値配置内の各状態に対応するデータ値の各桁、例えば、ビットに関して予め判定することができる。これらの予め判定された確率から、LLRも、特定のデータ値配置内の近隣の状態に対応するデータ値に基づいて、特定のデータ値配置内の各状態に対応するデータ値の各桁、例えば、ビットに関して計算することができる。データ値確率及び/またはLLRは、参照テーブル(LUT)などのデータ構造内に記憶することができる。したがって、適当なデータ値確率及び/またはLLRは、例えば、ハード読み取りによるインデックスに基づいて、LUTから読み出すことができる。
図5に関して先に述べたように、「t+1」の部分がエラーである場合、例えば、図3に示されるCC復号器352によって、シンドロームは、576に示されるように、エラーである部分を識別することなく、「t+1」の部分がエラーであることを検出する。本開示のいくつかの実施形態によると、CCコードワード内の全ての桁、例えば、ビットは、577に示されるように、不確実な信頼性に対応する同一の信頼性値を割り当てられる。本開示の種々の実施形態によると、エラーであると識別された「t+1」の部分を有するCCコードワード内の特定のビットに関して、不確実な信頼性に対応する同一の信頼性値は、少なくとも部分的に、エラーであると識別された「t+1」の部分を有するCCコードワード内の特定の桁に関して判定されたソフトデータに基づいて、それぞれ調整する、例えば、精緻化することができる。エラーであると識別された「t+1」の部分を有するCCコードワード内の特定の桁に関して判定されたソフトデータは、例えば、特定の桁のハード読み取りを使用して判定されたLLR、または特定の桁の複数の読み取りから判定されたLLRであり得る。
図5に関して先に述べたように、受信されたCCコードワード内で「t」以下の部分がエラーである場合、シンドロームは、574に示されるように、エラーである部分を正確に識別する。575に示されるように、弱い信頼性(適切なサインを伴う)に対応する信頼性値は、エラーであると識別された部分内の全てのビットに関連付けられ、強い信頼性(適切なサインを伴う)に対応する信頼性値は、例えば、エラーであるとは識別されない、他の部分内の全てのビットに関連付けられる。本開示の種々の実施形態によると、エラーであると識別された「t」以下の部分を有するCCコードワード内の特定のビットに関して、関連付けられた特定の桁の信頼性値は、少なくとも部分的にCCコードワード内の特定の桁に関して判定されたソフトデータに基づいて、調整する、例えば、精緻化することができる。CCコードワード内の特定の桁に関して判定されたソフトデータは、例えば、特定の桁のハード読み取りを使用して判定されたLLR、または特定の桁の複数の読み取りから判定されたLLRであり得る。
具体的な実施形態を本明細書において例解及び説明してきたが、当業者は、同じ結果を達成すると算出される配設を、示される具体的な実施形態に代用することができることを理解するであろう。本開示は、本開示の種々の実施形態の適応または改変を網羅することが意図される。上の説明は、制限的ではなく、例解的に行われていることが理解されるものとする。上の実施形態の組合せ、及び本明細書において具体的に説明されていない他の実施形態は、上の説明を再考察すれば、当業者には明らかであろう。本開示の種々の実施形態の範囲は、上の構造及び方法が使用される、他の用途を含む。したがって、本開示の種々の実施形態の範囲は、添付の特許請求の範囲を、かかる特許請求の範囲が権利付与される均等物の全範囲と共に、参照して決定されるべきである。
前述の発明を実施するための形態において、種々の特性は、本開示を合理化する目的で、単一の実施形態に一緒にグループ化される。本開示の方法は、本開示の開示される実施形態が、各請求項で明示的に列挙されるものよりも多い特性を使用しなければならないという意図を反映するものとして解釈されないものとする。むしろ、以下の請求項が反映するように、発明の主題は、単一の開示される実施形態の全ての特性よりも少ない特性にある。このため、以下の特許請求の範囲は、本明細書において、各請求項は、別個の実施形態として自立する状態で、発明を実施するための形態に組み込まれる。

Claims (16)

  1. 外符号コードワードの一片及び対応するCCパリティ桁を含むCCコードワードを受信し、少なくとも部分的に、前記対応するCCパリティ桁を使用して、前記外符号コードワードの一片に関連付けられるソフトデータを生成する、分類コード(CC)復号器と、
    前記CC復号器に連結され、前記外符号コードワード及び前記ソフトデータの少なくとも一部に基づき符号化されたユーザデータを出力する外符号復号器と、
    前記外符号復号器に連結され、前記符号化されたユーザデータの少なくとも一部に基づき、復号されたユーザデータを出力するECC符号化/復号構成要素と、を含
    前記外符号復号器は、低密度パリティチェック(LDPC)反復復号器であり、前記外符号コードワードの前記一片は、LDPCコードワードの一片である、
    装置。
  2. 前記CC復号器に連結されるメモリをさらに備え、前記CC復号器は、前記メモリのハード読み取りを介して前記CCコードワードを受信するように構成される、請求項1に記載の装置。
  3. 前記ソフトデータは、前記外符号コードワードの前記一片に関連付けられる信頼性値であり、前記信頼性値は、少なくとも部分的に、ハード読み取りを使用して判定される前記CCコードワードの桁に関して判定される対数尤度比(LLR)を含む、請求項1〜のいずれかに記載の装置。
  4. 前記ソフトデータは、前記外符号コードワードの前記一片の一部分に関連付けられる信頼性値であり、前記CC復号器は、それぞれの信頼性値を、前記外符号コードワードの前記一片の前記一部分の各桁に関連付けるように構成される、請求項1〜のいずれかに記載の装置。
  5. 前記外符号復号器は、前記外符号コードワードの復号において前記信頼性値を利用するように構成される、請求項に記載の装置。
  6. 前記CCは、2つの代数コードのテンソル積である、請求項1に記載の装置。
  7. 外符号復号器は、フィードバックパスを介して前記CC復号器にハード決定をフィードバックするように構成され、前記CC復号器は、前記ハード決定を使用してソフトデータを判定するように構成される、請求項1に記載の装置。
  8. 方法であって、
    第1の復号器に、低密度パリティチェック(LDPC)コードワードの一片及びCCパリティ桁を含むCCコードワードを受信することと、
    前記第1の復号器を介して、少なくとも部分的にCCパリティ桁に基づいて、前記LDPCコードワードの前記一片に関連付けられるソフトデータを生成することと、
    前記LDPCコードワードの前記一片及び前記ソフトデータを、前記第1の復号器から第2の復号器に提供することと、
    前記第2の復号器を介して、少なくとも部分的に前記LDPCコードワードの前記一片及び前記ソフトデータからBCHコードワードを生成することと、
    前記BCHコードワードを第3の復号器に提供することと、を含む、方法。
  9. 最大2反復動作する前記第2の復号器を介して、少なくとも部分的に、前記外符号コードワードの前記一片及び前記判定されたソフトデータに基づくデータを判定することをさらに含む、請求項に記載の方法。
  10. 前記ソフトデータを判定することは、前記第2の符号器コードワードの前記一片の桁に関連付けられる信頼性値を判定することを含む、請求項9に記載の方法。
  11. 前記第1の復号器を介して、前記第1のコードパリティ桁からパリティチェックコード(C1)及びバイナリ代数コード(C2)を判定することをさらに含み、前記第1のコードパリティ桁は、C1及びC2のテンソル積から計算される、請求項9〜10のいずれかに記載の方法。
  12. 前記第1の復号器は、分類コード(CC)復号器であり、前記第2の復号器は、LDPC復号器であり、前記第3の復号器は、ECC符号化/復号構成要素である、請求項9〜11のいずれかに記載の方法。
  13. ユーザデータを受信し符号化されたユーザデータを出力するECC符号化/復号構成要素と、
    前記符号化されたユーザデータを受信し前記符号化されたユーザデータ及び低密度パリティチェック(LDPC)パリティ桁を含むLDPCコードワードを出力するLDPC符号器と、
    前記LDPCコードワードを複数の片に分割し、前記複数の片のそれぞれにCCパリティ桁を追加して複数のCCコードワードを生成して出力するCC符号器と、を備え、
    前記CC符号器は、メモリへの前記CCコードワードの書き込みを制御するように構成される、装置。
  14. 前記ECC符号化/復号化要素は、前記LDPC符号器に連結されるボーズ・チョドーリ・オッケンジェム(BCH)符号器をさらに含み、前記LDPC符号器は、前記BCH符号器からBCHコードワードを受信し、前記CC符号器に前記LDPCコードワードを提供するように構成される、請求項13に記載の装置。
  15. 前記CC符号器は、前記外符号コードワードの前記一片の複数の部分の各々に関して、一桁パリティチェックコード(C1)の桁を判定するように構成され、前記CC符号器は、前記外符号コードワードの前記一片からバイナリ代数コード(C2)を判定するように構成される、請求項1314のいずれか一項に記載の装置。
  16. 前記CC符号器は、C1及びC2のテンソル積として前記CCを判定するように構成される、請求項15に記載の装置。
JP2015553731A 2013-01-21 2013-12-13 分類コードを使用したソフトデータの判定 Active JP6122152B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/746,195 US9065483B2 (en) 2013-01-21 2013-01-21 Determining soft data using a classification code
US13/746,195 2013-01-21
PCT/US2013/074972 WO2014113161A1 (en) 2013-01-21 2013-12-13 Determining soft data using a classification code

Publications (2)

Publication Number Publication Date
JP2016509420A JP2016509420A (ja) 2016-03-24
JP6122152B2 true JP6122152B2 (ja) 2017-04-26

Family

ID=51208747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015553731A Active JP6122152B2 (ja) 2013-01-21 2013-12-13 分類コードを使用したソフトデータの判定

Country Status (6)

Country Link
US (2) US9065483B2 (ja)
EP (2) EP2946386B1 (ja)
JP (1) JP6122152B2 (ja)
KR (1) KR101674339B1 (ja)
CN (1) CN104937669B (ja)
WO (1) WO2014113161A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9637264B2 (en) 2010-01-28 2017-05-02 Avery Dennison Corporation Label applicator belt system

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9064575B2 (en) * 2012-08-03 2015-06-23 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US10108489B2 (en) * 2015-10-28 2018-10-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for efficient soft data based flash memory data recovery
US10204006B2 (en) * 2015-10-28 2019-02-12 Avago Technologies International Sales Pte. Limited Systems and methods for side data based soft data flash memory access
US10198316B2 (en) * 2015-10-28 2019-02-05 Avago Technologies International Sales Pte. Limited Systems and methods for efficient flash memory access
CN106816179B (zh) 2015-11-30 2020-12-25 华为技术有限公司 一种闪存纠错方法和装置
JP2017175352A (ja) * 2016-03-23 2017-09-28 パナソニック株式会社 ターボ等化装置およびターボ等化方法
US10176040B2 (en) * 2016-04-05 2019-01-08 Micron Technology, Inc. Error correction code (ECC) operations in memory
KR20170140931A (ko) 2016-06-14 2017-12-22 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR20180033740A (ko) * 2016-09-26 2018-04-04 에스케이하이닉스 주식회사 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US20180175885A1 (en) * 2016-12-19 2018-06-21 Toshiba Memory Corporation Hybrid LDPC-SEC/SECDED Decoding
US10333554B2 (en) * 2017-06-30 2019-06-25 Samsung Electronics Co., Ltd. Efficient generalized tensor product codes encoding schemes
TWI645683B (zh) * 2018-01-31 2018-12-21 大陸商深圳衡宇芯片科技有限公司 使用代數碼與ldpc碼的部分聯結編碼系統
CN108092673B (zh) * 2018-02-10 2021-04-16 中国传媒大学 一种基于动态调度的bp迭代译码方法及系统
CN111756453A (zh) * 2019-03-28 2020-10-09 创发信息科技(苏州)有限公司 通过一对双绞线或两对双绞线来传输的以太网通信系统

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958048A (en) * 1996-08-07 1999-09-28 Elbrus International Ltd. Architectural support for software pipelining of nested loops
US5966412A (en) * 1997-06-30 1999-10-12 Thomson Consumer Electronics, Inc. Apparatus and method for processing a Quadrature Amplitude Modulated (QAM) signal
KR100693682B1 (ko) * 1997-10-10 2007-03-09 콸콤 인코포레이티드 다중 사용자 통신 시스템의 다층 pn 코드 확산
DE69923970T2 (de) * 1999-09-14 2006-04-27 Lucent Technologies Inc. Kanaldecodiereinrichtung und Verfahren zum Kanaldecodieren
US6684367B1 (en) * 2000-10-13 2004-01-27 Agere Systems Inc. Channel coding based on hidden puncturing for partial-band interference channels
FR2816773B1 (fr) * 2000-11-10 2004-11-26 France Telecom Module, dispositif et procede de decodage a haut debit, d'un code concatene
US6587372B2 (en) 2001-01-11 2003-07-01 Micron Technology, Inc. Memory device with multi-level storage cells and apparatuses, systems and methods including same
KR100807466B1 (ko) * 2003-06-18 2008-02-25 니폰덴신뎅와 가부시키가이샤 무선패킷 통신방법
US7071849B2 (en) 2004-04-04 2006-07-04 Guobiao Zhang Fractional-Bit Systems
US7516389B2 (en) * 2004-11-04 2009-04-07 Agere Systems Inc. Concatenated iterative and algebraic coding
US7861131B1 (en) * 2005-09-01 2010-12-28 Marvell International Ltd. Tensor product codes containing an iterative code
WO2007089165A1 (en) * 2006-01-31 2007-08-09 Intel Corporation Iterative decoding of concatenated low-density parity-check codes
US8848442B2 (en) 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US7502254B2 (en) 2006-04-11 2009-03-10 Sandisk Il Ltd Method for generating soft bits in flash memories
US7934143B1 (en) * 2006-04-24 2011-04-26 Marvell International Ltd. Parity insertion for inner architecture
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US8028216B1 (en) * 2006-06-02 2011-09-27 Marvell International Ltd. Embedded parity coding for data storage
US8190976B1 (en) * 2006-08-07 2012-05-29 Marvell International Ltd. High-speed interface for holographic storage read channel
JP2008065969A (ja) * 2006-08-09 2008-03-21 Fujitsu Ltd 符号化装置、復号化装置、符号化方法、復号化方法および記憶装置
KR100833600B1 (ko) 2006-08-25 2008-05-30 삼성전자주식회사 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
TWI353521B (en) 2006-09-28 2011-12-01 Sandisk Corp Soft-input soft-output decoder for nonvolatile mem
US8166379B1 (en) 2006-11-03 2012-04-24 Marvell International Ltd. Calculating soft information from a multi-level modulation signal
US8059763B1 (en) 2006-11-09 2011-11-15 Marvell International Ltd. Approximate soft-information computation in multi-level modulation signaling schemes
US7814401B2 (en) 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US8583981B2 (en) * 2006-12-29 2013-11-12 Marvell World Trade Ltd. Concatenated codes for holographic storage
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US7848142B2 (en) 2007-10-31 2010-12-07 Micron Technology, Inc. Fractional bits in memory cells
US8335977B2 (en) * 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
US7656707B2 (en) 2007-12-14 2010-02-02 Intel Corporation Systems and methods for discrete channel decoding of LDPC codes for flash memory
US8533563B2 (en) * 2008-03-31 2013-09-10 Qimonda Ag Memory read-out
JP2009271956A (ja) * 2008-04-30 2009-11-19 Toshiba Corp データ復号装置,データ再生装置,およびデータ復号方法
US8406048B2 (en) 2008-08-08 2013-03-26 Marvell World Trade Ltd. Accessing memory using fractional reference voltages
CN102203876B (zh) 2008-09-30 2015-07-15 Lsi公司 用于存储器器件的软数据生成的方法和装置
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
JP2010109468A (ja) * 2008-10-28 2010-05-13 Toshiba Corp 復号器、メモリコントローラおよび半導体メモリ装置
US8321769B1 (en) 2008-11-06 2012-11-27 Marvell International Ltd. Multi-parity tensor-product code for data channel
US7787307B2 (en) 2008-12-08 2010-08-31 Micron Technology, Inc. Memory cell shift estimation method and apparatus
US20100220514A1 (en) 2009-03-02 2010-09-02 Lyric Semiconductor, Inc. Storage devices with soft processing
US8619474B2 (en) 2009-09-10 2013-12-31 Micron Technology, Inc. Data line management in a memory device
JP5523120B2 (ja) * 2010-01-14 2014-06-18 三菱電機株式会社 誤り訂正符号化方法、誤り訂正復号方法、誤り訂正符号化装置、および、誤り訂正復号装置
KR101633048B1 (ko) 2010-02-25 2016-06-24 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
US8700970B2 (en) 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
KR101541040B1 (ko) 2010-03-12 2015-08-03 엘에스아이 코포레이션 플래시 메모리들을 위한 ldpc 소거 디코딩
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8332728B2 (en) 2010-04-02 2012-12-11 Skymedi Corporation Method and apparatus of generating a soft value for a memory device
US8996967B2 (en) * 2010-08-06 2015-03-31 Stmicroelectronics, Inc. Rendering data write errors detectable
US8595585B2 (en) * 2010-08-20 2013-11-26 Nec Laboratories America, Inc. Reverse concatenated encoding and decoding
US8243511B2 (en) 2010-09-27 2012-08-14 Seagate Technology Llc Reuse of information from memory read operations
US20120240007A1 (en) 2010-10-20 2012-09-20 Stec, Inc. Ldpc decoding for solid state storage devices
US8812939B2 (en) 2011-01-28 2014-08-19 Marvell World Trade Ltd. Soft decoding systems and methods for flash based memory systems
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
WO2012164929A1 (ja) * 2011-05-31 2012-12-06 三菱電機株式会社 誤り訂正符号化装置、誤り訂正復号装置、およびその方法
EP2536030A1 (en) * 2011-06-16 2012-12-19 Panasonic Corporation Bit permutation patterns for BICM with LDPC codes and QAM constellations
US8656257B1 (en) * 2012-01-11 2014-02-18 Pmc-Sierra Us, Inc. Nonvolatile memory controller with concatenated error correction codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9637264B2 (en) 2010-01-28 2017-05-02 Avery Dennison Corporation Label applicator belt system

Also Published As

Publication number Publication date
US20140208189A1 (en) 2014-07-24
EP2946386A1 (en) 2015-11-25
EP2946386A4 (en) 2017-01-04
WO2014113161A1 (en) 2014-07-24
US9065483B2 (en) 2015-06-23
CN104937669B (zh) 2019-02-22
EP3614569A1 (en) 2020-02-26
US9391645B2 (en) 2016-07-12
JP2016509420A (ja) 2016-03-24
KR20150107862A (ko) 2015-09-23
KR101674339B1 (ko) 2016-11-08
US20150270855A1 (en) 2015-09-24
EP2946386B1 (en) 2020-02-05
CN104937669A (zh) 2015-09-23

Similar Documents

Publication Publication Date Title
JP6122152B2 (ja) 分類コードを使用したソフトデータの判定
US10860416B2 (en) Tiered error correction code (ECC) operations in memory
TWI627634B (zh) 記憶體中錯誤校正碼操作
KR101645906B1 (ko) 계층적 반복 에러 교정을 위한 종료 기준
US11243838B2 (en) Methods and apparatuses for error correction
US11170847B2 (en) Determining soft data for fractional digit memory cells
US11431355B2 (en) Error correction code (ECC) operations in memory for providing redundant error correction
US11106518B2 (en) Failure mode study based error correction
TWI682399B (zh) 操作記憶體之方法及用於錯誤率降低之設備
US10855316B2 (en) Error correction code (ECC) operations in memory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170330

R150 Certificate of patent or registration of utility model

Ref document number: 6122152

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