JP2015509640A - 誤り訂正符号の編成を含む装置および方法 - Google Patents

誤り訂正符号の編成を含む装置および方法 Download PDF

Info

Publication number
JP2015509640A
JP2015509640A JP2014560980A JP2014560980A JP2015509640A JP 2015509640 A JP2015509640 A JP 2015509640A JP 2014560980 A JP2014560980 A JP 2014560980A JP 2014560980 A JP2014560980 A JP 2014560980A JP 2015509640 A JP2015509640 A JP 2015509640A
Authority
JP
Japan
Prior art keywords
data
memory
error correction
correction code
memory cell
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.)
Granted
Application number
JP2014560980A
Other languages
English (en)
Other versions
JP6195854B2 (ja
JP2015509640A5 (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 JP2015509640A publication Critical patent/JP2015509640A/ja
Publication of JP2015509640A5 publication Critical patent/JP2015509640A5/ja
Application granted granted Critical
Publication of JP6195854B2 publication Critical patent/JP6195854B2/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/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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
    • G06F11/1016Error in accessing a memory location, i.e. addressing 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/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
    • 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/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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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/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/356Unequal error protection [UEP]

Abstract

一部の実施形態は、第1のメモリセルと、第1のメモリセルにアクセスするように構成された第1のアクセスラインと、第2のメモリセルと、第2のメモリセルにアクセスするように構成された第2のアクセスラインとを有する装置および方法を含む。このような装置のうちの1つは、データを第1のメモリセルのあるメモリ部分に記憶させ、データと関連付けられた誤り訂正符号の第1の部分を第1のメモリセルの別のメモリ部分に記憶させ、かつ誤り訂正符号の第2の部分を第2のメモリセルに記憶させるように構成されたコントローラを含み得る。さらなる装置および方法を含む他の実施形態が説明される。【選択図】図7

Description

<優先権出願>
本出願は、2012年3月6日に出願された米国出願第13/413,363号の恩典を主張するものであり、それはその全体が参照により本明細書に組み込まれる。
フラッシュメモリなどのメモリデバイスは、コンピュータおよび多くの電子製品に広く用いられている。このようなメモリデバイスは、多くのメモリセルを有する。情報は、書き込み動作でメモリセルに記憶され得る。記憶された情報は、読み出し動作で取り出され得るか、または消去動作で消去され得る。所与のデバイス面積に対してメモリセル密度が増大するにつれて、メモリデバイスに記憶された情報の信頼性を維持することが、課題をもたらし得る。
本発明の実施形態に従う、メモリデバイスの形態の装置のブロック図を示す。 本発明の実施形態に従う、メモリデバイスの一部分の略図を示す。 本発明の実施形態に従う、図2のメモリデバイスのメモリセルに記憶された情報の値を表すように構成され得る閾値電圧範囲を示すグラフである。 本発明の実施形態に従う、図2のメモリデバイスのメモリ部分に対応するブロック図を示す。 本発明の実施形態に従う、図4のメモリ部分に記憶され得る情報の異なるページを示す。 本発明の実施形態に従う、生成行列の構造を示す。 本発明の実施形態に従う、システムの形態の装置のブロック図を示す。 本発明の実施形態に従う、システムを動作させる方法を示すフロー図である。
図1は、本発明の実施形態に従う、メモリデバイス100の形態の装置のブロック図を示す。メモリデバイス100は、ライン(例えば、アクセスライン)WL0およびWL1〜WLmならびにライン(例えば、データライン)BL0およびBL1〜BLnに加えて行および列に配列することが可能なメモリセル103を有するメモリアレイ102を含むことが可能である。メモリデバイス100は、ラインWL0およびWL1〜WLmならびにメモリセル103にアクセスするラインおよびメモリセル103と情報を交換する(例えば、転送する)ライン105を用いることが可能である。
行アクセス108および列アクセス109の回路は、アドレスレジスタ112に応答して、ライン110、111、または双方上の行アドレスおよび列アドレスの信号に基づいてメモリセル103にアクセスすることが可能である。入/出力回路114は、メモリセル103とライン110との間で情報を交換するように構成することが可能である。ライン110および111は、メモリデバイス100内の結節または、メモリデバイス100が常駐することが可能なパッケージ上のピン(または半田ボール)を含むことがある。
制御回路116は、ライン110および111上に存在する信号に基づいてメモリデバイス100の動作を制御することが可能である。メモリデバイス100の外部のデバイス(例えば、プロセッサまたはメモリコントローラ)は、ライン110、111、または双方上の信号の異なる組み合わせを用いて、異なる指令(例えば、読み出し、書き込み、または消去指令)をメモリデバイス100に送出することが可能である。異なる指令をメモリデバイス100に送出するデバイス(例えば、プロセッサまたはメモリコントローラ)は、メモリデバイス100と同じ半導体ダイ上に形成することが可能であり、または、このようなデバイス(例えば、プロセッサまたはメモリコントローラ)は、メモリデバイス100を形成する半導体ダイとは異なる半導体ダイ上に形成することも可能である。
メモリデバイス100は、指令に応答して、情報をメモリセル103に記憶する(プログラムする)書き込み(例えば、プログラミング)動作または記憶された情報をメモリセル103から取り出す読み出し動作などのメモリ動作をメモリセル103に実施することが可能である。メモリデバイス100はまた、消去動作を実施して、メモリセル103の一部または全部から情報をクリアすることが可能である。
メモリセル103に記憶された情報は、データと、このデータと関連付けられた誤り訂正符号(ECC)とを含むことがある。ECCは、データがメモリセル103に記憶される前にこのデータに基づいて生成することが可能である。ECCは、パリティ検査ビットを含むことがある。データおよびその関連付けられたECCが、メモリセル103から取り出されるとき、このECCを用いて、このデータ中に発生し得た誤りを訂正するように用いることが可能である。データと関連付けられたECCは、メモリデバイス100によって内部で発生する、または別のデバイス(例えば、メモリコントローラもしくはプロセッサ)によって外部で発生することが可能である。
メモリセル103の各々は、ビットの分数の値、1ビットの値、または、2ビット、3ビット、4ビット、もしくは別の数のビットなどの複数のビットの値を表す情報を記憶するようにプログラムすることが可能である。例えば、メモリセル103の各々は、1ビットの二進法数値「0」または「1」を表す情報を記憶するようにプログラムすることが可能である。1ビット/セルは、1レベルセルと呼ばれることもある。別の例では、メモリセル103の各々は、2ビットの4つの可能な値「00」、「01」、「10」、および「11」のうちの一つ、3ビットの8つの可能な値「000」、「001」、「010」、「011」、「100」、「101」、「110」、および「111」のうちの一つ、または別の数の複数ビットの他の値のうちの一つなどの複数のビットの値を表す情報を記憶するようにプログラムすることが可能である。複数のビットを記憶する能力を有するセルは、複数レベルセル(または多状態セル)と呼ばれることもある。
メモリデバイス100は不揮発性メモリデバイスを含むことが可能であり、メモリセル103は不揮発性メモリセルを含むことが可能であり、それで、メモリセル103は、電力がメモリデバイス100から切断されたときに、そこに記憶された情報を保持することが可能である。例えば、メモリデバイス100は、NANDフラッシュもしくはNORフラッシュメモリデバイスなどのフラッシュメモリデバイスまたは、可変抵抗メモリデバイス(例えば、相変化もしくは抵抗RAMデバイス)などの別の種類のメモリデバイスであり得る。
メモリデバイス100は、メモリセル103が同じデバイス上の複数レベルに物理的に位置することが可能なメモリデバイスを含むことが可能であり、それで、メモリセル103の一部を、メモリデバイス100の基板(例えば、半導体基板)上の複数レベルで一部の他のメモリセル103に積み重ねることが可能である。
当業者は、メモリデバイス100は、本明細書に説明する例示の実施形態をあいまいにしないためにそのうちのいくつかを図1に示さない他の部品を含み得ることを認識し得る。
メモリデバイス100の少なくとも一部分は、図2〜図8を参照して以下に説明するメモリデバイスに類似したまたはこれと同一の構造を含み得る。
図2は、本発明の実施形態に従う、メモリデバイス200の一部分の略図を示す。メモリデバイス200は、図1のメモリアレイ102の一部を形成することが可能なメモリアレイ202を含むことが可能である。図2に示すように、メモリアレイ202は、それぞれ、ラインWL0、WL1、WL2、WL3、およびWL4と関連付けられたメモリセル210、211、212、213、および214を含むことが可能である。ラインWL0、WL1、WL2、WL3、およびWL4の各々は、メモリ動作(例えば、読み出しまたは書き込み動作)中に、メモリセルメモリセル210、211、212、213、および214にアクセスするために、メモリデバイス200のアクセスラインの一部を形成することが可能である。メモリデバイス200は、それぞれラインBL0〜BL9を含むことが可能である。ラインBL0〜BL9の各々は、メモリデバイス200のデータラインの一部を形成することが可能である。図2は、一例として、5つのラインWL0、WL1、WL2、WL3、およびWL4ならびに10のラインBL0〜BL9を示している。これらのラインの数は変化し得る。
メモリセル210、211、212、213、および214は、図2に示すように、NAND構成に配列することが可能である。例えば、メモリセル210、211、212、および213は、メモリセルストリング220〜229などのメモリセルストリングとして配列することが可能である。メモリセルストリング220〜229の各々は、トランジスタのうちの一つ(例えば、選択トランジスタ)217を介してラインBL0〜BL9のうちの一つに、かつトランジスタのうちの一つ(例えば、選択トランジスタ)218を介してラインSLに連結することが可能である。ラインSLは、メモリデバイス200のソース(例えば、ソースライン)の一部を形成することが可能である。
メモリ動作(例えば、読み出しまたは書き込み動作)中に、メモリデバイス200は、ラインSGDを用いてトランジスタ217をオンにし、メモリセルストリング220〜229をそれぞれのラインBL0〜BL9に連結する、またはトランジスタ217をオフにし、メモリセルストリング220〜229をそれぞれのラインBL0〜BL9から切り離すことが可能である。メモリデバイス200は、ラインSGSを用いてトランジスタ218をオンにし、メモリセルストリング220〜229をラインSLに連結する、またはトランジスタ218をオフにし、メモリセルストリング220〜229をラインSLから切り離すことが可能である。
メモリセル210、211、212、213、および214は、メモリデバイス200の複数レベルに物理的に位置することが可能であり、それで、同じメモリセルストリング中のメモリセルは、メモリデバイス200の複数レベルで互いの上に積み重ねることが可能である。例えば、メモリセル214は、メモリデバイス200の1つのレベルに物理的に位置することが可能である。メモリセル213は、メモリデバイス200の別のレベルでメモリセル214の上に物理的に位置することが可能である。図2は、各々のメモリセルストリング中での12のメモリセルストリング220〜229ならびに4つのメモリセル210、211、212、および213の例を示す。メモリセルストリングの数および各々のメモリセルストリング中のメモリセルの数は変化し得る。
メモリセル210およびメモリセル214は、メモリアレイ202のそれぞれのエッジに物理的に位置することが可能である。例えば、メモリセル210はメモリアレイ202のエッジに物理的に位置することが可能であり、それで、メモリセル210は、メモリアレイ202の他のメモリセル(例えば、211、212、213、および214)よりもトランジスタ217に近づき得る。別の例では、メモリセル214はメモリアレイ202の別のエッジに物理的に位置することが可能であり、それで、メモリセル210は、メモリアレイ202の他のメモリセル(例えば、210、211、212、および213)よりもトランジスタ218に近づき得る。
メモリ動作では、メモリデバイス200は、メモリセル210、211、212、213、および214のうちの選択されたメモリセルに選択的にアクセスして、選択されたメモリセルに情報を(例えば、書き込み動作で)記憶するか、または選択されたメモリセルから情報を(例えば、読み出し動作で)取り出すことが可能である。メモリセル210、211、212、213、および214に記憶された情報は、データと、このデータと関連付けられたECCとを含み得る。例えば、メモリセル212のうちの選択されたメモリセルに情報を記憶するには、メモリデバイス200は、メモリセル212だけがアクセス可能となるようにラインWL0〜WL4を起動すればよい。これで、メモリデバイス200は、例えば、適切な電圧(例えば、プログラミング電圧)をラインWL2およびラインBL0〜BL9に印加することによって、選択されたメモリセルに情報を記憶することが可能である。別の例では、メモリセル212のうちの選択されたメモリセルから情報(例えば、データおよびECC)を取り出すには、メモリデバイス200は、メモリセル212だけがアクセス可能となるように、ラインWL0〜WL4を起動すればよい。これで、メモリデバイス200は、例えば、記憶された情報を選択されたメモリセルからラインBL0〜BL9を介して感知することによって、記憶された情報を選択されたメモリセルから取り出すことが可能である。
図2に示すように、同じラインWL0、WL1、WL2、WL3、またはWL4と関連付けられたメモリセル210、211、212、213、または214は、各々のメモリ部分がある数(あるグループ)のメモリセルを含むことが可能な異なるメモリ部分に編成することが可能である。例えば、メモリセル210(ラインWL0と関連付けられる)は、メモリ部分251、252、および253に編成することが可能である。メモリセル211(ラインWL1と関連付けられる)は、メモリ部分261、262、および263に編成することが可能である。メモリセル212(ラインWL2と関連付けられる)は、メモリ部分271、272、および273に編成することが可能である。メモリセル213(ラインWL3と関連付けられる)は、メモリ部分281、282、および283に編成することが可能である。メモリセル214(ラインWL4と関連付けられる)は、メモリ部分291、292、および293に編成することが可能である。
メモリデバイス200のメモリ部分は、異なるタイプの情報を記憶することが可能である。例えば、メモリ部分251、261、271、281、および291は、データを記憶することが可能である。メモリ部分252、253、262、263、272、273、282、283、292、および293は、メモリ部分251、261、271、281、および291に記憶されたそれぞれのデータと関連付けられたECCを記憶することが可能である。そうする代わりにまたはそうすることに加えて、メモリ部分252、253、262、263、272、273、282、283、292、および293はまた、他のタイプの情報(例えば、オーバーヘッド情報またはデータ管理情報)を記憶することも可能である。
図2は、一例として、メモリ部分251、261、271、281、および291、メモリ部分252、262、272、282、および292、ならびにメモリ部分253、263、273、283、および293の各々の中の特定の数(例えば、6、3、または1)のメモリセルを示している。これらのメモリ部分中のメモリセルのこの数は変化し得る。
簡単にするため、次の記述は、ラインWL3と関連付けられたメモリセル213などの、ラインWL0、WL1、WL2、WL3、およびWL4のうちの一つと関連付けられたメモリセルの編成および機能を説明する。他のメモリセル210、211、212、および214は、類似の編成および機能を含み得る。
メモリセル213で、メモリ部分271は、メモリ部分272と273を合わせたサイズよりも実質的に大きいサイズ(例えば、メモリセルの数)を有し得る。例えば、メモリ部分271は、全てのメモリセル213の数の約97%(例えば、96.875%)を含み得るし、メモリ部分272および273は、全てのメモリセル213の数の約3%(例えば、3.125%)を含み得る。
一例として、メモリ部分271は、(65,536のセルの各々が1ビットのデータを記憶するように構成されている場合に)8×8×210ビット(8Kバイト)のデータを記憶することが可能な、または、(65,536のセルの各々が2ビットのデータを記憶するように構成されている場合に)16×8×210ビット(16Kバイト)のデータを記憶することが可能な65,536=8×8×210のセルを含み得る。メモリ部分272および273は、(2,048のセルの各々が1ビットのデータを記憶するように構成されている場合に)256バイトのデータを記憶することが可能な、または、(2,048のセルの各々が2ビットのデータを記憶するように構成されている場合に)512バイトのデータを記憶することが可能な2,048=256×8のセルを含み得る。
メモリ部分272は、メモリ部分273のそれよりも大きいサイズ(例えば、メモリセルの数)を有し得る。例えば、メモリ部分272は、メモリ部分273のサイズの3倍のサイズを有し得る。したがって、メモリ部分272は、メモリ部分273に記憶することが可能なECCのサイズの3倍であるサイズを有するECCを記憶することが可能であり得る。例えば、メモリ部分273は64バイトのECCを記憶することが可能な数のメモリセルを含み得るし、メモリ部分272は192バイトのECCを記憶することが可能な数のメモリセルを含み得る。
メモリ部分251、261、271、281、および291は、同じサイズを有し得る。例えば、メモリ部分251、261、271、281、および291の各々は、65,536=8×8×210のセル(例えば、各々の部分に8Kバイトまたは16Kバイトのデータを記憶することが可能である)を含み得る。メモリ部分252、262、272、282、および292は、同じサイズを有し得る。例えば、メモリ部分252、262、272、282、および292の各々は、1,536=192×8のセル(例えば、各々の部分に192バイトまたは384バイトのECCを記憶することが可能である)を含み得る。メモリ部分253、263、273、283、および293は、同じサイズを有し得る。例えば、メモリ部分253、263、273、283、および293の各々は、512=64×8のセル(例えば、各々のメモリ部分に64バイトまたは128バイトのECCを記憶することが可能である)を含み得る。
メモリセル210、211、212、213、および214は、情報(例えば、データおよびECC)を順次に記憶することが可能である。例えば、情報は、情報が(ラインWL1と関連付けられる)メモリ部分261、262、および263のメモリセル211に記憶することが可能となる前に、(ラインWL0と関連付けられる)メモリ部分251、252、および253のメモリセル(例えば、メモリセル210の全て)に記憶することが可能である。情報は、情報が(ラインWL2と関連付けられる)メモリ部分271、272、および273のメモリセル212に記憶することが可能となる前に、(ラインWL1と関連付けられる)メモリ部分261、262、および263のメモリセル211(例えば、メモリセル211の全て)に記憶することが可能であり、これが繰り返される。代替的には、他の順序(例えば、非順次的な順序)を用いることも可能である。
ラインWL0、WL1、WL2、WL3、およびWL4のうちの同じラインと関連付けられたメモリセル(210、211、212、213、または214)のメモリ部分は、メモリ動作でデータとECCとを同時に記憶することが可能である。言い換えれば、データおよびECCは、同じライン(例えば、WL0、WL1、WL2、WL3、またはWL4のうちの一つ)のメモリセルに並列式に記憶することが可能である。例えば、メモリ部分271、272、および273の中のメモリセル212は、データとECCとを同時に記憶することが可能であり、それで、データが書き込み動作でメモリ部分271に記憶される間に、ECCは、同じ書き込み動作で、メモリ部分272および273に記憶される。別の例では、メモリ部分281、282、および283の中のメモリセル213は、データとECCとを同時に記憶することが可能であり、それで、データが書き込み動作でメモリ部分281に記憶される間に、ECCは、同じ書き込み動作で、メモリ部分282および283に記憶される。
図3は、本発明の実施形態に従う、図2のメモリセル210、211、212、213、および214に記憶された情報(例えば、データまたはECC)の値を表すように構成することが可能な閾値電圧(VT)範囲301、302、303、および304を示すグラフである。図3に示すように、VT範囲のVT値(例えば、VT軸に沿ったボルト単位の値)は、別のVT範囲のVT値とは異なる。例えば、VT範囲301は、VT範囲302、303、および304のVT値に対して最低のVT値を含み得る。VT範囲304は、VT範囲301、302、および303のVT値に対して最高のVT値を含み得る。
図3に示すように、VT範囲301、302、303、および304のVT値は、2ビットの情報のそれぞれ4つの可能な値「00」、「01」、「10」、および「11」を表すように構成することが可能である。それぞれVT範囲301、302、303、および304に対応する順序「11」、「10」、「00」、および「01」は、例示の順序である。異なる順序を用いることも可能である。
図3は、一例として4つのVT範囲を示している。異なる数の範囲を用いることも可能である。例えば、8つの異なるVT範囲を用いて、「000」、「001」、「010」、「011」、「100」、「101」、「110」、および「111」を含む、3ビットの8つの可能な値を表すことが可能である。
図2では、メモリセル210、211、212、213、および214の各々は、2ビットの値「11」、「10」、「00」、または「01」のうちのどれが選択されたメモリセルに記憶されるかに応じて、メモリセルに記憶された情報の値に対応するVT範囲301、302、303、および304(図3)のうちの一つの内部にある(例えば、書き込み動作後の)VT値を維持することが可能である。例えば、図3に基づいて、選択されたメモリセル(例えば、図2の210、211、212、213、および214のうちの一つ)に値「10」を記憶するには、書き込み動作が、選択されたメモリセルに、VT範囲302内のVT値を維持させればよい。別の例では、選択されたメモリセルに値「01」を記憶するには、書き込み動作が、選択されたメモリセルに、VT範囲304内のVT値を維持させればよい。
読み出し動作は、選択されたメモリセルに記憶された情報を(例えば、感知することによって)取り出して、この選択されたメモリセルに記憶された情報の値(例えば、「00」、「01」、「10」、または「11」)を決定することが可能である。例えば、読み出し動作では、VT範囲302に対応するVT値が選択されたメモリセルから感知されると、(図3に基づいた)「10」という値を感知されたVT値から生成することが可能である。次に、値「10」を、選択されたメモリセルに記憶された情報の値として提供(例えば、出力)することが可能である。
図2を参照して上述したように、メモリセル210、211、212、213、および214(図2)に記憶された情報は、データおよびECCを含み得る。したがって、図3で、値「00」、「01」、「10」、および「11」の各々は、2ビットのデータまたは2ビットのECCのどちらかの値を表し得る。例えば、図2で、メモリ部分281中のメモリセル213はデータを記憶し得るため、メモリ部分281中の特定のメモリセル213がVT範囲302(図3の値「10」に対応する)内のVT値を(例えば、感知されたときに)有している場合、その特定のメモリセルに記憶された情報は、2ビットのデータの値「10」を表すことが可能である。別の例では、図2で、メモリ部分282および283の中のメモリセル213はECCを記憶し得るため、メモリ部分282および283の中の特定のメモリセル213がVT範囲302(図3の値「10」に対応する)内のVT値を(例えば、感知されたときに)有している場合、その特定のメモリセル記憶された情報は、2ビットのECCの値「10」を表すことが可能である。
図3に示すように、2ビット(値「00」、「01」、「10」、および「11」を有する)の情報を、ビット位置MSB(例えば、最上位のビット)のビットおよびビット位置LSB(例えば、最下位のビット)のビットとして指定することが可能である。
メモリデバイス200(図2)は、ページの情報中にデータビットを(記憶されるように)編成するように構成することが可能である。各々のページの情報は、データとその関連付けられたECCとを含み得る。1ページの情報中のデータのサイズ(例えば、8Kバイト)は、別のページの情報中のデータのサイズと同じであり得る。
あるページの情報中のデータのビットは、同じビット位置(例えば、MSBまたはLSB)に記憶されたビットを含み得る。例えば、あるページの情報は、同じビット位置MSBに記憶されたビットを有するデータを含み得る。別の例では、別のページの情報は、同じビット位置LSBに記憶されたビットを有するデータを含み得る。
図3に示すように、ビット位置MSBのビットの中で、値「1」、「1」、「0」、および「0」は、この順序で、VT範囲302での「1」からVT範囲303での「0」に一回だけ変化する。ビット位置LSBのビットの中で、値「1」、「0」、「0」、および「1」は、この順序で、VT範囲301での「1」からVT範囲302での「0」に変化し、かつVT範囲303での「0」からVT範囲304での「1」に変化するなど、二回変化する。したがって、ビット位置MSBのビットとビット位置LSBのビットとを比較すると、ビット位置LSBのビットは、ビット位置MSBのビットよりも変化する回数が多い。誤りは、ビットが同じ位置にとどまるときよりもビットがその値を(例えば、「0」と「1」との間で)変化させるときのほうが発生する可能性が高い。したがって、誤りは、ビット位置MSBのビットにおいてよりもビット位置LSBのビットにおいてのほうが発生する可能性が高い(例えば、2倍高い)。
したがって、図3の「11」、「10」、「00」、および「01」の順序に基づいて、より誤りが発生しやすいページの情報は、ビット位置LSBのビットを有するデータを含むページの情報と関連し得る。より誤りが発生しにくいページの情報は、ビット位置MSBのビットを有するデータを含むページの情報と関連し得る。
一部の場合、図3の値「11」、「10」、「00」、および「01」は、図3に示す順序とは異なる順序で配列することが可能である。このような場合、値「11」、「10」、「00」、および「01」の順序によって、誤りは、ビット位置LSBのビットにおいてよりもビット位置MSBのビットにおいてのほうが発生しやすくなり得る。
要するに、より誤りが発生しやすいページの情報は、別のビット位置(例えば、図3の値の順序に基づくMSB)のビットを有するデータを含むページの情報よりも誤りを有しやすいビット位置(例えば、図3の値の順序に基づくLSB)のビットを有するデータを含むページの情報と関連し得る。より誤りが発生しにくいページの情報は、別のビット位置(例えば、図3の値の順序に基づくLSB)のビットを有するデータを含むページの情報よりも誤りを有しにくいビット位置(例えば、図3の値の順序に基づくMSB)のビットを有するデータを含むページの情報と関連し得る。
したがって、図4〜図8を参照して以下に説明するように、データの誤り訂正を向上させるには、より多くのECC(例えば、より多い数のECCビット)を、より誤りを有しにくいビット位置のビットを有するデータよりも誤りを有しやすいと決定されたビット位置のビットを有するデータに対して割り当てればよい。メモリセル210、211、212、および213などのメモリセルに書き込まれ、かつこれらから取り出されたビットパターンの分析を(例えば、製造中に)実施して、どのビット位置(例えば、MSBまたはLSB)で、データのビットが誤りを有しやすいかを決定することが可能である。
図4は、本発明の実施形態に従う、図2のメモリセル210、211、212、213、および214のメモリ部分に対応するブロック図を示す。図4のメモリセル210、211、212、213、および214のメモリ部分の参照番号は、メモリ部分251、252、および253(ラインWL0と関連する)、メモリ部分261、262、および263(ラインWL1と関連する)、メモリ部分271、272、および273(ラインWL2と関連する)、メモリ部分281、282、および283(ラインWL3と関連する)、ならびにメモリ部分291、292、および293(ラインWL4と関連する)を含む(図4に示すように)、図2のそれらと同じである。図4の図面は、原寸に比例していない。
図4に示すように、メモリ部分252、262、272、282、および292の各々は、メモリ部分252中の部分401、402、および403、メモリ部分262中の部分411、412、および413、メモリ部分272中の部分421、422、および423、メモリ部分282中の部分431、432、および433、ならびにメモリ部分292中の部分441、442、および443などの部分(例えば、サブ部分)を含み得る。
部分401、402、および403は、同じサイズ(例えば、同じ数のメモリセル)を有し得る。部分401、402、および403の各々もまた、メモリ部分253のサイズに等しいサイズを有し得る。部分411、412、および413は、メモリ部分263のサイズに等しくあり得る同じサイズ(例えば、同じ数のメモリセル)を有し得る。部分421、422、および423は、メモリ部分273のサイズに等しくあり得る同じサイズ(例えば、同じ数のメモリセル)を有し得る。部分431、432、および433は、メモリ部分283のサイズに等しくあり得る同じサイズ(例えば、同じ数のメモリセル)を有し得る。部分441、442、および443は、メモリ部分293のサイズに等しくあり得る同じサイズ(例えば、同じ数のメモリセル)を有し得る。
図5は、本発明の実施形態に従う、図4のメモリ部分に記憶することが可能な異なるページの情報(例えば、データおよびECC)を示す。図4のメモリセル210、211、212、213、および214のメモリ部分の参照番号は、メモリ部分251、252、および253(ラインWL0と関連する)、メモリ部分261、262、および263(ラインWL1と関連する)、271、272、および273(ラインWL2と関連する)、メモリ部分281、282、および283(ラインWL3と関連する)、ならびにメモリ部分291、292、および293(ラインWL4と関連する)を含む図2のそれらと同じである。
図5に示すように、この情報は、データ555および関連付けられたECC557、データ565および関連付けられたECC567、データ566および関連付けられたECC568、データ575および関連付けられたECC577、データ576および関連付けられたECC578、データ585および関連付けられたECC587、データ586および関連付けられたECC588、データ595および関連付けられたECC597などのデータとそれらの関連付けられたECCとを含み得る。
特定のデータと関連付けられたECCを用いて、その特定のデータ中で発生し得た誤りを訂正することが可能である。例えば、ECC577を用いて、データ575が読み出し動作で取り出されたときにデータ575中で発生し得た誤りを訂正することが可能である。別の例では、ECC578を用いて、データ576が読み出し動作で取り出されたときにデータ576中で発生し得た誤りを訂正することが可能である。
図5で、「DATA WLx」、「DATA WLx」、および「DATA WLx」(式中、x=0、1、2、3、または4)は、それぞれラインWL0、WL1、WL2、WL3、およびWL4と関連付けられたメモリ部分251、261、271、281、および291に記憶されたデータ555、565、575、585、および595の中の異なるデータ(例えば、データのビット)を表し得る。例えば、「DATA WL1」は、ラインWL1と関連付けられたメモリ部分261に記憶されたページの情報中のデータを表し得る。別の例では、「DATA WL1」は、ラインWL1と関連付けられたメモリ部分261に記憶された情報の別のページ中のデータを表し得る。「DATA WL1」および「DATA WL1」は、ラインWL1と関連付けられたメモリ部分261の同じメモリセルに記憶され得る。「DATA WL2」および「DATA WL2」は、ラインWL2と関連付けられたメモリ部分271に記憶された情報の2つの異なるページ中のデータを表し得る。「DATA WL3」および「DATA WL3」は、ラインWL3と関連付けられたメモリ部分281に記憶された情報の2つの異なるページ中のデータを表し得る。
異なるページの情報中のデータが、同じサイズ(例えば、同じ数のビット)を有し得る。例えば、データ555、565、566、575、576、585、586、および595(例えば、「DATA WLx」、「DATA WLx」、および「DATA WLx」で表される)は、同じ数のビット(例えば、65,536ビット=8×8×210=8Kバイト)を有し得る。
「ECC(DATA WLx)」、「ECC(DATA WLx)」、および「ECC(DATA WLx)」(式中、Y=0、1、2、3、または4)は、メモリ部分251、261、271、281、および291に記憶されたデータと関連付けられたECC557、567、577、587、588、および597という異なる集合(例えば、パリティ検査ビットの集合)を表し得る。例えば、「ECC(DATA WL2)」、「ECC(DATA WL2)」、「ECC(DATA WL2)」は、データ「DATA WL2」と関連付けられたECCの3つの集合を表し得る。別の例では、「ECC(DATA WL2)」、「ECC(DATA WL2)」、「ECC(DATA WL2)」、「ECC(DATA WL2)」、および「ECC(DATA WL2)」は、データ「DATA WL2」と関連付けられたECCの5つの集合を表し得る。
「ECC(DATA WLx)」、「ECC(DATA WLx)」、および「ECC(DATA WLx)」は、同じサイズ(例えば、512ビット=64バイトなどの同じ数のビット)を有し得る。
図5に示すデータおよびECCは、ページの情報中に編成することが可能である。例えば、ラインWL2と関連付けられたメモリ部分に記憶されたあるページの情報は、「(DATA WL2)」、「ECC(DATA WL2)」、「ECC(DATA WL2)」、「ECC(DATA WL2)」、および「ECC(DATA WL1)」を含み得る。ラインWL2と関連付けられたメモリ部分に記憶された別のページの情報は、「(DATA WL2)」、「ECC(DATA WL2)」、「ECC(DATA WL2)」、「ECC(DATA WL2)」、および「ECC(DATA WL2)」を含み得る。
図5に示すように、情報の異なるページからのデータが、同じラインWL0、WL1、WL2、WL3、またはWL4と関連付けられた同じメモリ部分に記憶され得る。例えば、2つの異なるページの情報からのデータ「DATA WL2」および「DATA WL2」が、ラインWL2と関連付けられた同じメモリ部分271に記憶され得る。
特定のデータと関連付けられたECC全体は、同じページの情報中にデータとして編成することが可能であり、したがって、同じライン(ラインWL0、WL1、WL2、WL3、およびWL4のうちの一つ)と関連付けられたメモリ部分に記憶することが可能である。例えば、「(DATA WL2)」と関連付けられた「ECC(DATA WL2)」、「ECC(DATA WL2)」、および「ECC(DATA WL2)」は、同じページの情報中に編成して、同じラインWL2と関連付けられたメモリ部分に記憶することが可能である。
特定のデータと関連付けられたECCの一部分(例えば、一集合)を、その特定のデータを含むページの情報とは異なるページの情報中に編成することが可能である。これらの異なるページの情報は、異なるアクセスラインと関連付けられたメモリ部分に記憶することが可能である。例えば、DATA WL2と関連付けられたECCの一部分(例えば、ECC(DATA WL2))を、DATA WL2を含むページの情報とは異なる「(DATA WL3)」、「ECC(DATA WL3)」、「ECC(DATA WL3)」、および「ECC(DATA WL3)」を含むページの情報中に編成することが可能である。したがって、データとその関連付けられたECCとは、2つの異なるページの情報中に編成することが可能であり、したがって、ラインWL0、WL1、WL2、WL3、およびWL4のうちの2つの異なるラインと関連付けられたメモリ部分に記憶することが可能である。2つの異なるライン(例えば、WL2およびWL3)は、互いのすぐ隣に物理的に位置することが可能である。したがって、異なるラインと関連付けられたメモリ部分は、互いのすぐ隣に物理的に位置するメモリセル(例えば、212および213)を含み得る。
図5に示すように、ラインWL0、WL2、WL2、WL3、およびWL4のうちの一部(例えば、ラインWL0およびWL4)と関連付けられたメモリ部分を、1ページだけの情報を記憶するように構成することが可能である。例えば、ラインWL0と関連付けられたメモリ部分251、252、および253は、「DATA WL0)」、「ECC(DATA WL0)」、「ECC(DATA WL0)」、「ECC(DATA WL0)」、および「ECC(DATA WL0)」を含む1ページだけの情報を記憶するように構成することが可能である。別の例では、ラインWL4と関連付けられたメモリ部分291、292、および293は、「DATA WL4」、「ECC(DATA WL4)」、「ECC(DATA WL4)」、「ECC(DATA WL4)」、および「ECC(DATA WL3)」を含む1ページだけの情報を記憶するように構成することが可能である。
図5に示すように、ラインWL0、WL2、WL2、WL3、およびWL4のうちの一部(例えば、ラインWL1、WL2、およびWL3)と関連付けられたメモリ部分を、複数ページの情報を記憶するように構成することが可能である。例えば、図5に示すように、メモリ部分271は、データ575を含むあるページの情報と、データ576を含む別のページの情報とを記憶するように構成することが可能である。この例では、メモリ部分217が8×8×210個のメモリセルを含み、これらのメモリセルの各々が、2ビットのデータを記憶するように構成されている場合、メモリ部分217は、1ページの情報に含まれる8×8×210ビット(8Kバイト)のデータ575と、別のページの情報に含まれる別の8×8×210ビット(8Kバイト)のデータ576とで、合計16Kバイトのデータを記憶することが可能である。
図5は、2ページの情報をメモリ部分261、271、および281の各々に記憶することが可能な例を示す。メモリ部分261、271、および281の各々に記憶することが可能な複数のページの数は変化し得る。例えば、メモリセルメモリ部分261、271、および281が3ビットの情報を記憶するように構成されている場合、メモリ部分261、271、および281の各々は、最大で3ページの情報を記憶することが可能である。
異なるデータと関連付けられたECCは、異なるサイズ(例えば、異なる数の集合および異なる数のビット)を有し得る。例えば、図5に示すように、ECC557、567、568、577、578、587、588、および597は、異なる数の集合のECCを含み得る。ECC557および567の各々は、4つの集合のECC(例えば、4つの集合で合計256バイトになる各々の集合中の64バイトのECC)を含み得る。ECC577、587、および597の各々は、3つの集合のECC(例えば、3つの集合で合計192バイトになる各々の集合中の64バイトのECC)を含み得る。ECC568、578、および588の各々は、5つの集合のECC(例えば、5つの集合で合計320バイトになる各々の集合中の64バイトのECC)を含み得る。
より誤りが発生しやすいページの情報中のデータは、より誤りが発生しにくいページの情報中のデータよりも、より多くの集合のECCと関連付けることが可能である。例えば、図5で、データ566、576、および586の各々は5つの集合のECCと関連付けられているため、データ566、576、および586を含むページの情報は、より誤りが発生しやすいページの情報であると言及することが可能である。別の例では、図5で、データ555、565、575、585、および595の各々は5つ未満の集合のECCと関連付けられているため、データ555、565、575、585、および595を含むページの情報は、より誤りが発生しにくいページの情報であると言及することが可能である。
ECC557、567、568、577、578、587、588、および597は、低密度パリティ検査(LDPC)符号化技法を含む技法を用いて生成することが可能である。例えば、当業者には周知なように、生成行列(例えばG行列)は、LDPC符号に基づいて生成することが可能である。このような生成行列を用いて、それぞれ、データ555、565、566、575、576、585、586、および595と関連付けられたECC557、567、568、577、578、587、588、および597の「ECC(DATA WLx)」、「ECC(DATA WLx)」、および「ECC(DATA WLx)」を生成することが可能である。
図6は、本発明の実施形態に従う、生成行列610の構造を示す。生成行列610は、5つの層601、602、603、604、および605を含むことが可能であり、したがって、5層の準巡回LDPC符号器および5層の準巡回LDPC復号器などの準巡回LDPCコーデック中に実装することが可能である。図6に示すように、層601、602、603、604、および605の各々は、データ部分631およびパリティ検査部分632を形成する、部分行列620などの部分行列を含み得る。部分行列620の各々は、行および列に配列されたある数の二進法数値「0」エントリおよび「1」エントリを含み得る。簡単なように、エントリ「0」および「1」は、部分行列620には示されていない。その代わりに、部分行列620には、対角線がエントリ「1」の位置を表し、スペースがエントリ「0」の位置を表している。
生成行列610を(例えば、データの符号化中に)用いて、図5を参照して上述したように、ECC557、567、568、577、578、587、588、および597などのECCを生成することが可能である。特定のデータと関連付けられたECCの異なる数の集合(例えば、最大で5つの集合のパリティ検査ビット)を、生成することが可能である。
例えば、特定のデータと関連付けられた5つの集合のECC(例えば、ECC、ECC、ECC、ECC、およびECC)を、5つの層601、602、603、604、および605のすべてを用いるなど、生成行列610の全ての層を用いて生成することが可能である。したがって、より誤りが発生しやすいページの情報に含まれることになる特定のデータについては、その特定のデータと関連する5つの集合のECCを、生成行列610の5つの層601、602、603、604、および605のすべてを用いて生成すればよい。
別の例では、特定のデータと関連付けられた5つ未満の集合のECC(例えば、3つの集合のECC、ECC、およびECCまたは4つの集合のECC、ECC、ECC、およびECC)を、(3つの集合のECCを生成するために)3つだけの層601、602、および603を用いるまたは(4つの集合のECCを生成するために)4つだけの層601、602、603、および604を用いるなどの、生成行列610の全ての層よりも少ない層を用いることによって生成することが可能である。したがって、より誤りが発生しにくいページの情報に含まれることになる特定のデータについては、その特定のデータと関連付けられた3つまたは4つの集合のECCを、3つだけの層601、602、および603または4つだけの層601、602、603、および604を用いることによって生成すればよい。
生成行列610に基づいて生成されたECCの集合(例えば、ECC、ECC、ECC、ECC、およびECC)は、図5を参照して上述した集合「ECC(DATA WLx)」、「ECC(DATA WLx)」、および「ECC(DATA WLx)」に対応し得る。
また、図6の生成行列610を(例えば、データを復号化中に)用いて、誤りがデータ中に発生した場合に、データと関連付けられたECCに基づいて、データを生成することが可能である。ECCの5つの集合(例えば、ECC、ECC、ECC、ECC、およびECC)が特定のデータと(例えば、データの符号化中に)関連付けられた場合、生成行列610の4つの層(例えば、601、602、603、および604)に対応するECCの4つの集合を最初に用いて、その特定のデータの再生成を試行することが可能である。このデータの生成が失敗した場合、ECCの全ての5つの集合と、生成行列610の全ての5つの層(例えば、601、602、603、604、および605)とを用いて、その特定のデータの再生成を試行することが可能である。別の例では、ECCの3つの集合(例えば、ECC、ECC、およびECC)が特定のデータと(例えば、データの符号化中に)関連付けられた場合、ECCの3つの集合と、生成行列610の対応する3つの層(例えば、601、602、および603)とを用いて、その特定のデータの再生成を試行することが可能である。別の例では、ECCの4つの集合(例えば、ECC、ECC、ECC、およびECC)が特定のデータと(例えば、データの符号化中に)関連付けられた場合、ECCの4つの集合と、生成行列610の対応する4つの層(例えば、601、602、603、および604)とを用いて、その特定のデータの再生成を試行することが可能である。
図7は、本発明の実施形態に従う、システム700の形態の装置のブロック図を示す。システム700は、デバイス710、720、および730を含み得る。デバイス710は、汎用プロセッサまたは特定用途向け集積回路(ASIC)などのプロセッサを含み得る。デバイス720は、デバイス710と730との間の情報の転送を制御するために、メモリコントローラを含み得る。デバイス720はまた、デバイス710から転送されたデータなどのデータと関連付けられたECCを生成することが可能である。デバイス730は、図1のメモリデバイス100などのメモリデバイスを含み得る。デバイス710、720、および730の各々は、個別の半導体ダイ上に物理的に位置することが可能である。代替的には、デバイス710、720、および730の任意の2つまたはデバイス710、720、および730の全ては、同じ半導体ダイ上に物理的に位置することが可能である。
図7で、「DATA+ECC」は、システム700中のデータと、その関連付けられたECCとを表し得る。このデータは、図5を参照して上述したデータ555、565、566、575、576、585、586、および595に含まれる「DATA WLx」、「DATA WLx」、または「DATA WLx」に対応し得る。図7で、ECCは、図5を参照して上述したECC557、567、568、577、578、587、588、および597に含まれる「ECC(DATA WLx)」、「ECC(DATA WLx)」、および「ECC(DATA WLx)」に対応し得る。図7で、ECC(DATA)は、図5を参照して上述した「ECC(DATA WL1)」、「ECC(DATA WL2)」、または「ECC(DATA WL3)」に対応し得る。
以下の説明は、情報をデバイス730に記憶するための、システム700中での例示の動作(例えば、書き込み動作)を記述する。この例示の動作では、デバイス710は、(デバイス730に記憶される予定の)データをデバイス720に転送することが可能である。すると、デバイス720は、このデータと関連付けられたECCを生成して、データとその関連付けられたECCとをデバイス730に転送して、その中に記憶されるようにすることが可能である。
この例示の動作では、デバイス720のインターフェース732は、データをデバイス710から受信して、この受信したデータをバッファ734に転送することが可能である。デバイス720は、データをバッファ734から受信して、データと関連付けられたECCを生成するために、ECC生成器736を含むことが可能である。
ECC生成器736は、ECC生成器736に実装された生成行列(例えば、図6の生成行列610)に少なくとも部分的に基づいてECCを生成するために、符号器737を含むことが可能である。ECC生成器736によって生成されたECCは、異なる数のECC集合(例えば、パリティ検査ビットの集合)を含み得る。例えば、このECCは、どのページの情報が、そのページの情報がデバイス730に送出される前にデータを含むかによって、3つ、4つ、または5つの集合を含み得る。例えば、図5および図6を参照して上述したように、より誤りを発生しやすいページの情報の中のデータと関連付けられたECCは、5つの集合のECCを含み得る。より誤りを発生しにくいページの情報の中のデータと関連付けられたECCは、3つまたは4つの集合のECCを含み得る。
図7で、例えば、データがより誤りを発生しにくいページの情報に含まれる場合、その特定のデータに対してECC生成器736が生成したECCは、3つまたは4つの集合のECCを含み得るが、これらは、図5のECC577、587、および597の各々の中の3つの集合ECC、ECC、およびECCまたはECC557および567の各々の中の4つの集合ECC、ECC、ECC、およびECCと類似し得るまたは同一であり得る。別の例では、デバイス720に転送されたデータがより誤りを発生しやすいページの情報に含まれる場合、特定のデータに基づいてECC生成器736が生成したECCは、5つの集合を含み得るが、これらは、図5のECC568、578、および588の各々の中のECC集合ECC、ECC、ECC、ECC、およびECCと類似し得るまたは同一であり得る。
図7のデバイス720は、より誤りが発生しやすいページの情報中の特定のデータと関連付けられたECCの一部分を記憶するために、ECC書き込み記憶ユニット738を含むことが可能である。ECC書き込み記憶ユニット738に記憶されたECCのこの部分は、その特定のデータと関連付けられたECCの5つの集合のうちの1つだけの集合(例えば、ECC(DATA))を含み得る。
デバイス720は、データおよびECCをページの情報中に編成して、それらをデバイス730に転送してその中に記憶されるようにすることが可能である。各々のページの情報は、データと、4つの集合のECCとを含むことが可能である。これら4つの集合のECCは、同じデータおよび/または異なるデータと関連付けられたECCであり得る。例えば、より誤りが発生しやすいページの情報は、データ(例えば、図5のデータ566、576、および586)と、同じデータと関連付けられたECCの5つの集合のうちの4つ(例えば、ECC、ECC、ECC、およびECC)とを含み得る。より誤りが発生しにくいページの情報は、データ(例えば、図5のデータ555および556)と、その関連付けられたECCの全ての4つの集合(例えば、ECC、ECC、ECC、およびECC)とを含み得る。
より誤りが発生しにくいページの情報はまた、データ(例えば、図5のデータ575、585、および595)と、その関連付けられたECCの全ての3つの集合(例えば、ECC、ECC、およびECC)とを含み得る。より誤りが発生しにくいページの情報中の第4の集合のECCは、ECC書き込み記憶ユニット738に記憶されたECC集合(例えば、ECC(DATA))からのものである。上述したように、ECC書き込み記憶ユニット738に記憶されたECC集合(例えば、ECC(DATA))は、より誤りが発生しやすいページの情報に含まれるデータと関連付けられる。デバイス720は、上述したように、ECC書き込み記憶ユニット738に記憶されたECC集合(例えば、ECC(DATA))を、より誤りが発生しやすいページの情報中のデータと関連付けられたECCの残りの転送とは異なる時点で、デバイス730に転送することが可能である。
より誤りが発生しやすいページの情報に含まれる予定の特定のデータと関連付けられたECC(例えば、5つのECC集合)の生成後、デバイス720は、その特定のデータと関連付けられたECCの一部分(例えば、ECC(DATA))を記憶して、その特定のデータと、ページの情報中のその関連付けられたECCの残り(例えば、4つの集合ECC、ECC、ECC、およびECC)とを、書き込み制御ユニット740を介してインターフェース742に転送することが可能である。ECC書き込み記憶ユニット738に記憶されたECCのこの部分は、その特定のデータと関連付けられたECCのその他の部分がインターフェース742に転送されている間およびその後で、ECC書き込み記憶ユニット738に記憶された状態に留まることが可能である。
より誤りが発生しにくいページの情報に含まれる予定の特定のデータと関連付けられたECC(例えば、3つのECC集合)の生成に応答して、デバイス720は、ECC書き込み記憶ユニット738に記憶されたECCの部分(例えば、ECC(DATA))を取り出して、それを、より誤りが発生しにくいページの情報中のデータおよび関連付けられたECC(例えば、3つのECC集合)と一緒に、インターフェース742に転送することが可能である。
デバイス730は、図5を参照して上述したそれらに類似したまたはそれらと同一の形式で、複数ページの情報(デバイス720から取り出されたデータおよびECC)を記憶するように構成することが可能なメモリセル(図7には図示せず)を含むことが可能である。
以下の説明は、記憶された情報をデバイス730から取り出すために、システム700中での別の例示の動作(例えば、読み出し動作)を記述する。この例示の動作では、デバイス720は、データおよびECCを含む情報を、デバイス730からインターフェース742で取り出すことが可能である。デバイス720は、読み出し制御ユニット750と、情報を処理するための処理ユニット752とを含み得る。デバイス720は、情報からデータを生成するために、検査ユニット754を含み得る。
検査ユニット754は、ECC生成器736中に実装される生成行列と同じであり得る、検査ユニット754中に実装される生成行列に少なくとも部分的に基づいてデータを生成するために、復号器756を含み得る。
デバイス720は、生成行列の層(例えば、全ての層よりも少ない層)の一部分だけに基づいてデータを生成することが可能である。例えば、より誤りが発生しにくいページの情報の場合、デバイス720は、生成行列の3つ(または4つの)層を用いるだけで、データを生成することが可能である。より誤りが発生しやすいページの情報の場合、デバイス720は、生成行列の全ての層のうちの一部分(例えば、4つの層)または全ての層(例えば5つ)を用いるだけで、データを生成することが可能である。例えば、デバイス720は、通常は、生成行列の全ての層よりも少ない層を用いて、より誤りが発生しやすいページの情報からデータを生成することが可能である。デバイス720が全ての層よりも少ない層を用いてデータを成功裏に生成することが不可能である場合、それは、生成行列の全ての層を用いて、この過程を繰り返して、データを生成する。
次の記述は、デバイス720が、それが、より誤りが発生しやすいページの情報をデバイス730から取り出すときに、データを生成する例示の動作を説明する。この例を説明しやすいように、図5の情報を用いる。この例示の動作では、デバイス720は、データ(DATAWL2)と、その関連付けられたECCの4つの集合である「ECC(DATA WL2)」、「ECC(DATA WL2)」、「ECC(DATA WL2)」、および「ECC(DATA WL2)」とを含むページの情報などのページの情報をデバイス730から取り出す(図5)。図5に示すように、このページの情報は、ラインWL2と関連付けられたメモリ部分271、272、および273に記憶される。図7で、デバイス720は、ECCの4つの集合(ECC(DATA WL2)、ECC(DATA WL2)、ECC(DATA WL2)、およびECC(DATA WL2))と、生成行列の4つの層とを用いて、データ(例えば、DATA WL2)を生成する。デバイス720が受信されたページの情報(ECCの4つの集合を含む)からデータを生成することが可能であれば、それは、そのデータをデバイス710に転送する。
デバイス720は、それが受信されたページの情報(ECCの4つの集合を含む)からデータ(例えば、DATA WL2)を生成することが不可能な場合、生成行列の全て(例えば、5つ)の層と、そのデータと関連付けられたECCの第5の集合(例えば、図5のECC(DATA WL2))を含む、データと関連付けられたECCの全て(例えば5つ)の集合とを用いて再度試行する。デバイス720は、データを生成する二回目の試行においてより誤りが発生しやすいページの情報に含まれるデータと関連付けられたECCの一部分(例えば、ECC(DATA WL2))を記憶するために、ECC読み出し記憶ユニット758を含むことが可能である。
データを生成する二回目の試行中、デバイス720は、ECC(DATA WL2)をメモリ部分283から取り出し(図5)、ECC(DATA WL2)を、ECC読み出し記憶ユニット758に記憶する。次に、デバイス720は、デバイス720がそれからデータを生成することが不可能であったページの情報から、DATA WL2と、「ECC(DATA WL2)」、「ECC(DATA WL2)」、「ECC(DATA WL2)」、および「ECC(DATA WL2)」とを取り出す。このとき、デバイス720は、ECCの全ての5つの集合(ECC(DATA WL2)、ECC(DATA WL2)、ECC(DATA WL2)、ECC(DATA WL2)、ECC(DATA WL2))と、生成行列の5つの層とを用いて、データ(例えば、DATA WL2)を生成することが可能である。
システム700中で一部の状況(例えば、電力切断)では、より誤りが発生しやすいページの情報中の特定のデータと関連付けられたECCの一部分(例えば、ECC DATA)が、その特定のデータがデバイス730に記憶された後で、ECC書き込み記憶ユニット738に記憶されていないことがあり得る。この状況下では、書き込み動作を実施して新しいデータをデバイス730に記憶する前に、デバイス720は、その特定のデータ(すでに記憶されたデータ)をデバイス730から(例えば、読み出し操作で)取り出すことが可能である。この記憶されたデータが取り出された後、デバイス730は、そのデータと関連付けられたECC全体(例えば、ECCの全ての5つの集合)を生成する(例えば、再生成する)ことが可能である。次に、デバイス720は、上述したように、ECCのその部分(例えば、ECC DATA)をECC書き込み記憶ユニット736に記憶し、次にECCのその部分を、より誤りが発生しにくいページの情報中のデータおよびECCと一緒にデバイス730に記憶することが可能である。
システム700は、多数のECCを保つ(例えば、記憶する)ためにさらなる記憶ユニット(図7には図示せず)を含み得るが、それで、上述したような一部の状況(例えば、電力切断)でのECCの一部分(例えば、ECC DATA)の再生成は回避され得る。この多数のECCは、1ページ以上の情報中のデータと関連付けられたECCの全ての5つの集合(例えば、ECC全体)を含み得る。システム700中のこのさらなる記憶ユニットは、デバイス720中の大規模オンボードキャッシュメモリなどの大規模メモリ(例えば、不揮発性メモリ)を含み得る。一部の場合では、さらなる記憶ユニットは、ECC書き込み記憶ユニット738の一部として含まれ得る。
図8は、本発明の実施形態に従う、システムを動作させる方法800を示すフロー図である。方法800は、行為810、820、および830を含み得る。行為810、820、および830の全てまたは一部は、図1のメモリデバイス100、図2のメモリデバイス200、または図7のシステム700などの装置中で用いることが可能である。
行為810は、データと関連付けられたECCを生成することを含み得る。行為820は、データおよびECCを記憶することを含み得る。行為830は、データおよびECCを取り出すことを含み得る。行為810、820、および830は、図1〜図7を参照して上述した装置(例えば、メモリデバイス100および200ならびにシステム700)によって実施される行為の一部またはすべてを含み得る。
装置(例えば、メモリデバイス100および200ならびにシステム700)と、方法(例えば、方法800)との図示は、様々な実施形態の構造の一般的理解を提供することを意図するものであり、本明細書に説明する構造を利用し得る装置の全ての部品および特徴の完全な説明を提供することを意図するものではない。本明細書中の装置とは、例えば、デバイス(例えば、メモリデバイス100および200)または、メモリデバイス100および200などのデバイスを含むシステム(例えば、システム700)のいずれかのことである。
メモリデバイス100および200ならびにシステム800は、高速コンピュータ、通信および信号処理回路、単一もしくは複数プロセッサモジュール、単一もしくは複数埋め込みプロセッサ、複数コアプロセッサ、メッセージ情報スイッチ、ならびに、複数層、複数チップモジュールを含む特定用途向けモジュールなどの装置(例えば、電子回路)に含まれ得る。このような装置は、テレビ、携帯電話、パソコン(例えば、ラップトップコンピュータ、デスクトップコンピュータ、手持ち式コンピュータ、タブレットコンピュータなど)、ワークステーション、ラジオ、ビデオプレイヤー、オーディオプレイヤー(例えば、MP3(エムペグ、オーディオレイヤー3)プレイヤー)、車両、医療デバイス(例えば、心臓モニター、血圧モニターなど)、セットトップボックス、およびその他などの様々な他の装置(例えば、電子システム)内のサブ構成要素としてさらに含まれ得る。
図1〜図8を参照して上述した実施形態は、第1のメモリセル、第1のメモリセルにアクセスするように構成された第1のアクセスライン、第2のメモリセル、および第2のメモリセルにアクセスするように構成された第2のアクセスラインを有する装置および方法を含む。このような装置の一つは、データを第1のメモリセルのメモリ部分に記憶させ、データと関連付けられた誤り訂正符号の第1の部分を第1のメモリセルの別のメモリ部分に記憶させ、かつ誤り訂正符号の第2の部分を第2のメモリセルに記憶させるように構成されたコントローラを含み得る。さらなる装置および方法を含む他の実施形態も説明される。
上の説明および図面は、当業者が本発明の実施形態を実践することができるように本発明の一部の実施形態を解説する。他の実施形態は、構造的、論理的、電気的、過程的、および他の変更を組み込み得る。例は単に考えられる変形例を代表しているだけである。一部の実施形態の部分および特徴部は、他の実施形態のそれらに含まれるか、またはそれらと置き換えられ得る。多くの他の実施形態は、上記の説明を読んで理解すれば、当業者には明らかであろう。

Claims (45)

  1. 第1のメモリセルと、
    前記第1のメモリセルにアクセスするように構成された第1のアクセスラインと、
    第2のメモリセルと、
    前記第2のメモリセルにアクセスするように構成された第2のアクセスラインと、
    データを前記第1のメモリセルの第1のメモリ部分に記憶させ、前記データと関連付けられた誤り訂正符号の第1の部分を前記第1のメモリセルの第2のメモリ部分に記憶させ、かつ前記誤り訂正符号の第2の部分を前記第2のメモリセルに記憶させるために用いられるコントローラと、
    を備える、装置。
  2. 前記コントローラが、さらなるデータを前記第2のメモリセルの第1のメモリ部分に記憶させ、かつ前記誤り訂正符号の前記第2の部分を前記第2のメモリセルの第3のメモリ部分に記憶させるようにさらに構成される、請求項1に記載の装置。
  3. 前記コントローラが、前記さらなるデータと関連付けられた誤り訂正符号の少なくとも一部分を前記第2のメモリセルの第2のメモリ部分に記憶させるようにさらに構成される、請求項2に記載の装置。
  4. 前記コントローラが、前記データと関連付けられた前記誤り訂正符号のさらなる部分を前記第1のメモリセルの第3のメモリ部分に記憶させるようにさらに構成される、請求項3に記載の装置。
  5. 前記第1のアクセスラインが、前記第2のアクセスラインのすぐ隣に位置する、請求項1に記載の装置。
  6. 前記第1のメモリセルが前記装置のデバイスの第1のレベル上に位置し、前記第2のメモリセルが前記装置の前記デバイスの第2のレベル上に位置する、請求項1に記載の装置。
  7. 前記コントローラが、前記誤り訂正符号の前記第1および第2の部分を生成するように構成された誤り訂正符号生成器を含み、前記誤り訂正符号生成器が前記装置の第1のデバイス上に位置し、前記第1および第2のメモリセルが前記装置の第2のデバイス上に位置する、請求項1に記載の装置。
  8. 前記第1のデバイスがメモリコントローラを含み、前記第2のデバイスがメモリデバイスを含む、請求項7に記載の装置。
  9. 前記コントローラが、前記誤り訂正符号の前記第1および第2の部分を生成するように構成された誤り訂正符号生成器を含み、前記誤り訂正符号生成器が前記装置の第1の半導体ダイ上に位置し、前記第1および第2のメモリセルが前記装置の第2の半導体ダイ上に位置する、請求項1に記載の装置。
  10. 前記第1のメモリ部分が前記第1のメモリセル中の第1の数のメモリセルを含み、前記第2のメモリ部分が前記第1のメモリセル中の第2の数のメモリセルを含み、前記第1および第2のメモリセルの数が不均等である、請求項1に記載の装置。
  11. 第1のメモリセルと、
    前記第1のメモリセルにアクセスするように構成された第1のアクセスラインと、
    第2のメモリセルと、
    前記第2のメモリセルにアクセスするように構成された第2のアクセスラインと、
    第1のデータを前記第1のメモリセルに記憶させ、第2のデータおよび第3のデータを前記第2のメモリセルの第1のメモリ部分に記憶させ、前記第2のデータと関連付けられた誤り訂正符号および前記第3のデータと関連付けられた誤り訂正符号の第1の部分を前記第2のメモリセルの第2のメモリ部分に記憶させ、かつ前記第1のデータと関連付けられた誤り訂正符号の一部分および前記第3のデータと関連付けられた前記誤り訂正符号の第2の部分を前記第2のメモリセルの第3のメモリ部分に記憶させるように構成されたコントローラと、
    を備える、装置。
  12. 前記第1、第2、および第3のデータが、同じ数のビットを含む、請求項11に記載の装置。
  13. 前記第3のメモリ部分の中のメモリセルの数が、前記第2のメモリ部分の中のメモリセルの数未満である、請求項11に記載の装置。
  14. 前記第3のメモリ部分の中のメモリセルの数が、前記第2のメモリ部分の中のメモリセルの数の三分の一に等しい、請求項11に記載の装置。
  15. 前記第1、第2、および第3のメモリ部分が、前記装置の同じデバイスの中に含まれる、請求項11に記載の装置。
  16. 前記第1のメモリセルが、前記第2のメモリセルのすぐ隣に位置する、請求項11に記載の装置。
  17. 前記コントローラが、
    前記第1のデータおよび第4のデータを前記第1のメモリセルの第1のメモリ部分に記憶させ、
    前記第4のデータと関連付けられた誤り訂正符号の少なくとも一部分および前記第1のデータと関連付けられた前記誤り訂正符号の第1のさらなる部分を前記第1のメモリセルの第2のメモリ部分に記憶させ、かつ
    前記第1のデータと関連付けられた前記誤り訂正符号の第2のさらなる部分を前記第1のメモリセルの第3のメモリ部分に記憶させるようにさらに構成される、請求項11に記載の装置。
  18. コントローラが、第5のデータと関連付けられた誤り訂正符号の少なくとも一部分を前記第1のメモリセルの前記第3のメモリ部分に記憶させるようにさらに構成される、請求項17に記載の装置。
  19. 前記第1のデータが第1のページの情報に含まれ、前記第2のデータ、前記第2のデータと関連付けられた前記誤り訂正符号、および前記第1のデータと関連付けられた前記誤り訂正符号の前記部分が、第2のページの情報に含まれる、請求項11に記載の装置。
  20. 前記第2のデータと関連付けられた前記ECCのサイズが、前記第3のデータと関連付けられた前記ECCのサイズとは異なる、請求項11に記載の装置。
  21. 第1のデータと関連付けられた誤り訂正符号を行列の層の数に基づいて生成するように構成された生成器と、
    前記第1のデータおよび前記誤り訂正符号を含む情報を転送するように構成されたインターフェースと、
    前記誤り訂正符号の第1の部分を前記インターフェースに転送するように構成されたユニットと、
    前記誤り訂正符号の前記第1の部分が前記インターフェースに転送される間に前記誤り訂正符号の第2の部分を記憶するように構成された記憶ユニットと、
    を備える、装置。
  22. 前記生成器が、第2のデータと関連付けられた誤り訂正符号を前記生成行列の層の前記数よりも少ない層に基づいて生成するようにさらに構成され、前記第1のデータおよび前記第2のデータが同じサイズを有する、請求項21に記載の装置。
  23. 前記誤り訂正符号の前記第1の部分が、前記誤り訂正符号の前記第2の部分よりも大きいサイズを有する、請求項21に記載の装置。
  24. 前記誤り訂正符号の前記第1の部分が、前記誤り訂正符号の前記第2の部分のサイズより3倍大きいサイズを有する、請求項21に記載の装置。
  25. 前記生成器が、準巡回低密度パリティ検査符号器を備える、請求項21に記載の装置。
  26. 準巡回低密度パリティ検査復号器をさらに備える、請求項21に記載の装置。
  27. 前記第1のデータと関連付けられた前記誤り訂正符号全体を記憶するさらなる記憶ユニットを備える、請求項21に記載の装置。
  28. 前記さらなる記憶ユニットがキャッシュメモリを含む、請求項27に記載の装置。
  29. 第1のデータを第1のアクセスラインと関連付けられた第1のメモリセルに記憶することと、
    第2のデータを第2のアクセスラインと関連付けられた第2のメモリセルの第1のメモリ部分に記憶することと、
    前記第2のデータと関連付けられた誤り訂正符号の少なくとも一部分を前記第2のメモリセルの第2のメモリ部分に記憶することと、
    前記第3のデータと関連付けられた誤り訂正符号の少なくとも一部分を前記第2のメモリセルの前記第2のメモリ部分に記憶することと、
    前記第3のデータと関連付けられた前記誤り訂正符号のさらなる部分を前記第2のメモリセルの第3のメモリ部分に記憶することと、
    前記第1のデータと関連付けられた誤り訂正符号の一部分を前記第2のメモリセルの前記第3のメモリ部分に記憶することと、
    を含む、方法。
  30. 前記第2のデータと関連付けられた前記誤り訂正符号の前記少なくとも一部分が、前記第2のメモリセルの前記第3のメモリ部分に記憶された前記第1のデータと関連付けられた前記誤り訂正符号の前記一部分と同時に、前記第2のメモリセルの前記第2のメモリ部分に記憶される、請求項29に記載の方法。
  31. 前記第3のデータと関連付けられた前記誤り訂正符号の前記さらなる部分が前記第2のメモリセルの前記第3のメモリ部分に記憶される前に、前記第1のデータと関連付けられた前記誤り訂正符号の前記一部分が前記第2のメモリセルの前記第3のメモリ部分に記憶される、請求項29に記載の方法。
  32. 第1のデータと関連付けられた誤り訂正符号を第1のデバイスで生成することと、
    前記第1のデータと関連付けられた前記誤り訂正符号の第1の部分を第2のデバイスに転送することと、
    前記第1のデータと関連付けられた前記誤り訂正符号の第2の部分を前記第1のデバイスの記憶ユニットに記憶することと、
    第2のデータと関連付けられた誤り訂正符号を生成することと、
    前記第1のデータと関連付けられた前記誤り訂正符号の前記第2の部分および前記第2のデータと関連付けられた前記誤り訂正符号の少なくとも一部分を前記第2のデバイスに転送することと、
    を含む、方法。
  33. 前記第3のデータと関連付けられた誤り訂正符号を生成することと、
    前記第3のデータと関連付けられた前記誤り訂正符号の第1の部分を前記第2のデバイスに転送することと、
    前記第3のデータと関連付けられた前記誤り訂正符号の第2の部分を前記記憶ユニットに記憶することと、
    をさらに含む、請求項32に記載の方法。
  34. 第4のデータと関連付けられた誤り訂正符号を生成することと、
    前記第3のデータと関連付けられた前記誤り訂正符号の前記第2の部分および前記第4のデータと関連付けられた前記誤り訂正符号の少なくとも一部分を前記第2のデバイスに転送することと、
    をさらに含む、請求項33に記載の方法。
  35. 前記第1のデータと関連付けられた前記誤り訂正符号を生成することが、前記誤り訂正符号を生成行列の全ての層に基づいて生成することを含む、請求項32に記載の方法。
  36. 前記第2のデータと関連付けられた前記誤り訂正符号を生成することが、前記第2のデータと関連付けられた前記誤り訂正符号を前記生成行列の全ての層よりも少ない層に基づいて生成することを含む、請求項35に記載の方法。
  37. 前記第1のデバイスがコントローラであり、前記第2のデバイスがメモリアレイである、請求項32に記載の方法。
  38. 前記コントローラおよびメモリアレイが同じ半導体ダイ上にある、請求項37に記載の方法。
  39. 前記コントローラおよびメモリアレイが異なる半導体ダイ上にある、請求項37に記載の方法。
  40. 第1のデータと関連付けられた前記誤り訂正符号を生成する前に、前記第2のメモリデバイスから記憶されたデータを取り出すことであって、前記第1のデータが前記記憶されたデータを含む、取り出すことをさらに含む、請求項35に記載の方法。
  41. 第1のメモリセルから情報を取り出すことと、
    前記データと関連する誤り訂正符号の第1の部分を用いて前記情報からデータを生成することであって、前記データと関連付けられた誤り訂正符号の前記第1の部分が前記情報に含まれる、生成することと、
    前記データが前記データと関連付けられた誤り訂正符号の前記第1の部分を用いて前記情報からうまく生成されなかった場合、前記データと関連付けられた前記誤り訂正符号の第2の部分を第2のメモリセルから取り出すことと、
    前記データと関連付けられた誤り訂正符号の前記第1の部分および前記データと関連付けられた誤り訂正符号の前記第2の部分を用いてデータを生成することと、
    を含む、方法。
  42. 前記データと関連付けられた前記誤り訂正符号の前記第1の部分および前記データと関連付けられた前記誤り訂正符号の前記第2の部分が、不均等なサイズを有する、請求項41に記載の方法。
  43. 前記情報を取り出すことが、前記第1のメモリセルに連結された第1のアクセスラインにアクセスして前記情報を取り出すことを含み、前記データと関連付けられた前記第2の誤り訂正符号を取り出すことが、前記第2のメモリセルに連結された第2のアクセスラインにアクセスして前記第2の誤り訂正符号を取り出すことを含む、請求項41に記載の方法。
  44. 前記情報からデータを生成することが、検査ユニットを用いて前記情報から前記データを生成することを含む、請求項43に記載の方法。
  45. 前記データと関連付けられた誤り訂正符号の前記第1の部分および前記データと関連付けられた誤り訂正符号の前記第2の部分を用いてデータを生成することが、前記検査ユニットを用いて、前記データと関連付けられた誤り訂正符号の前記第1の部分および前記データと関連付けられた誤り訂正符号の前記第2の部分を用いて前記データを生成することを含む、請求項44に記載の方法。
JP2014560980A 2012-03-06 2013-03-01 誤り訂正符号の編成を含む装置および方法 Active JP6195854B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/413,363 US8954825B2 (en) 2012-03-06 2012-03-06 Apparatuses and methods including error correction code organization
US13/413,363 2012-03-06
PCT/US2013/028644 WO2013134066A1 (en) 2012-03-06 2013-03-01 Apparatuses and methods including error correction code organization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016159911A Division JP6181257B2 (ja) 2012-03-06 2016-08-17 誤り訂正符号の編成を含む装置および方法

Publications (3)

Publication Number Publication Date
JP2015509640A true JP2015509640A (ja) 2015-03-30
JP2015509640A5 JP2015509640A5 (ja) 2016-03-10
JP6195854B2 JP6195854B2 (ja) 2017-09-13

Family

ID=49115168

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014560980A Active JP6195854B2 (ja) 2012-03-06 2013-03-01 誤り訂正符号の編成を含む装置および方法
JP2016159911A Active JP6181257B2 (ja) 2012-03-06 2016-08-17 誤り訂正符号の編成を含む装置および方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2016159911A Active JP6181257B2 (ja) 2012-03-06 2016-08-17 誤り訂正符号の編成を含む装置および方法

Country Status (7)

Country Link
US (3) US8954825B2 (ja)
EP (1) EP2823487B1 (ja)
JP (2) JP6195854B2 (ja)
KR (3) KR20220075448A (ja)
CN (1) CN104272396B (ja)
TW (1) TWI646419B (ja)
WO (1) WO2013134066A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954825B2 (en) * 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
KR101979392B1 (ko) * 2012-05-17 2019-05-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US10388400B2 (en) * 2015-05-18 2019-08-20 SK Hynix Inc. Generalized product codes for flash storage
CN106897023B (zh) * 2015-12-18 2020-06-09 群联电子股份有限公司 数据读取方法、存储器控制电路单元及存储器储存装置
US9899104B2 (en) * 2016-03-18 2018-02-20 Silicon Motion Inc. Raid decoding architecture with reduced bandwidth
DE102016107285B4 (de) * 2016-04-20 2019-04-25 Infineon Technologies Ag Verfahren zur verwendung einer speichervorrichtung, speichervorrichtung und speichervorrichtungsanordnung
US10558525B2 (en) * 2016-06-30 2020-02-11 Taiwan Semiconductor Manufacturing Company, Ltd. Method of correcting errors in a memory array and a system for implementing the same
KR102479212B1 (ko) * 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
JP2018152146A (ja) * 2017-03-09 2018-09-27 東芝メモリ株式会社 半導体記憶装置及びデータ読み出し方法
US10269445B1 (en) * 2017-10-22 2019-04-23 Nanya Technology Corporation Memory device and operating method thereof
US10504587B2 (en) * 2017-12-20 2019-12-10 Intel Corporation Method and system for compensating for floating gate-to-floating gate (fg-fg) interference in flash memory cell read operations
TWI658463B (zh) * 2018-08-23 2019-05-01 群聯電子股份有限公司 資料存取方法、記憶體控制電路單元與記憶體儲存裝置
US11190217B2 (en) 2018-08-23 2021-11-30 Phison Electronics Corp. Data writing method, memory controlling circuit unit and memory storage device
CN110874282B (zh) * 2018-08-31 2023-03-21 群联电子股份有限公司 数据存取方法、存储器控制电路单元与存储器存储装置
US10795759B2 (en) 2018-09-10 2020-10-06 Micron Technology, Inc. Apparatuses and methods for error correction coding and data bus inversion for semiconductor memories

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11283396A (ja) * 1998-03-27 1999-10-15 Sony Corp メモリ装置
JP2000149592A (ja) * 1998-11-11 2000-05-30 Nec Ic Microcomput Syst Ltd 不良救済用メモリセル及びそれを用いた記憶装置
JP2008165805A (ja) * 2007-01-03 2008-07-17 Samsung Electronics Co Ltd フラッシュメモリ装置のecc制御器及びそれを含むメモリシステム
JP2009282923A (ja) * 2008-05-26 2009-12-03 Toshiba Corp 半導体記憶装置及び不揮発性メモリ
JP2011128751A (ja) * 2009-12-16 2011-06-30 Clarion Co Ltd データ記録装置およびデータ記録装置の制御方法
JP2012022422A (ja) * 2010-07-13 2012-02-02 Panasonic Corp 半導体記録再生装置

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3179060B2 (ja) 1997-06-19 2001-06-25 株式会社東芝 情報データ多重化伝送システムとその多重化装置及び分離装置
US7409623B2 (en) 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory
JP4530807B2 (ja) 2004-11-05 2010-08-25 シャープ株式会社 データ伝送システム
ITMI20050780A1 (it) 2005-04-29 2006-10-30 St Microelectronics Srl Metodo di memorizzazione di un array di celle di memoria non-volatile con codice di correzione di errore e relativo dispositivo
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US7644336B2 (en) 2006-02-04 2010-01-05 Hitachi Global Storage Technologies Netherlands, B.V. Techniques for providing greater error protection to error-prone bits in codewords generated from irregular codes
US20070300130A1 (en) 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
JP4946249B2 (ja) * 2006-08-07 2012-06-06 富士通セミコンダクター株式会社 Eccのコード長が変更可能な半導体メモリ装置
US7904780B2 (en) 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US7861139B2 (en) * 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
JPWO2008093717A1 (ja) 2007-01-31 2010-05-20 パナソニック株式会社 無線通信装置およびパンクチャリング方法
WO2008139441A2 (en) * 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US7747903B2 (en) * 2007-07-09 2010-06-29 Micron Technology, Inc. Error correction for memory
WO2009078006A2 (en) * 2007-12-18 2009-06-25 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
EP2592553B1 (en) * 2008-03-11 2015-11-18 Agere Systems, Inc. Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
US8255771B2 (en) 2008-03-14 2012-08-28 Micron Technology, Inc. Memory device repair apparatus, systems, and methods
US8493783B2 (en) * 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
US8473815B2 (en) * 2008-12-22 2013-06-25 Industrial Technology Research Institute Methods and systems of a flash memory controller and an error correction code (ECC) controller using variable-length segmented ECC data
US20100235605A1 (en) 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
US8166368B2 (en) * 2009-02-24 2012-04-24 International Business Machines Corporation Writing a special symbol to a memory to indicate the absence of a data signal
US8418021B2 (en) 2009-03-27 2013-04-09 Mediatek Inc. Storage controller with encoding/decoding circuit programmable to support different ECC requirements and related method thereof
KR101056876B1 (ko) * 2009-06-30 2011-08-12 주식회사 하이닉스반도체 불휘발성 메모리 장치의 동작 방법 및 이를 구현하는 불휘발성 메모리 장치
JP5540969B2 (ja) 2009-09-11 2014-07-02 ソニー株式会社 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム
US8495465B1 (en) * 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
JP5789767B2 (ja) 2009-11-25 2015-10-07 パナソニックIpマネジメント株式会社 半導体記録装置及び半導体記録装置の制御方法
JP5039160B2 (ja) 2010-03-02 2012-10-03 株式会社東芝 不揮発性半導体記憶システム
KR20110105257A (ko) * 2010-03-18 2011-09-26 삼성전자주식회사 적층 구조를 갖는 반도체 메모리 장치 및 에러 정정 방법
JP2011198272A (ja) 2010-03-23 2011-10-06 Toshiba Corp 半導体記憶装置および半導体記憶装置の制御方法
US8400827B2 (en) * 2010-06-07 2013-03-19 Micron Technology, Inc. Non-volatile memory programming
JP2012094132A (ja) 2010-10-01 2012-05-17 Siglead Inc 不揮発性半導体メモリ装置とデータ誤り訂正方法
US8954825B2 (en) 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11283396A (ja) * 1998-03-27 1999-10-15 Sony Corp メモリ装置
JP2000149592A (ja) * 1998-11-11 2000-05-30 Nec Ic Microcomput Syst Ltd 不良救済用メモリセル及びそれを用いた記憶装置
JP2008165805A (ja) * 2007-01-03 2008-07-17 Samsung Electronics Co Ltd フラッシュメモリ装置のecc制御器及びそれを含むメモリシステム
JP2009282923A (ja) * 2008-05-26 2009-12-03 Toshiba Corp 半導体記憶装置及び不揮発性メモリ
JP2011128751A (ja) * 2009-12-16 2011-06-30 Clarion Co Ltd データ記録装置およびデータ記録装置の制御方法
JP2012022422A (ja) * 2010-07-13 2012-02-02 Panasonic Corp 半導体記録再生装置

Also Published As

Publication number Publication date
US20150135037A1 (en) 2015-05-14
EP2823487A4 (en) 2015-12-02
TW201351125A (zh) 2013-12-16
KR102230584B1 (ko) 2021-03-23
JP6195854B2 (ja) 2017-09-13
US20130238958A1 (en) 2013-09-12
CN104272396B (zh) 2016-01-27
US20160253237A1 (en) 2016-09-01
EP2823487B1 (en) 2022-11-02
KR20220075448A (ko) 2022-06-08
KR102403171B1 (ko) 2022-05-30
US9983928B2 (en) 2018-05-29
KR20140133593A (ko) 2014-11-19
WO2013134066A1 (en) 2013-09-12
TWI646419B (zh) 2019-01-01
JP2016219092A (ja) 2016-12-22
US9336086B2 (en) 2016-05-10
EP2823487A1 (en) 2015-01-14
CN104272396A (zh) 2015-01-07
JP6181257B2 (ja) 2017-08-16
KR20210033062A (ko) 2021-03-25
US8954825B2 (en) 2015-02-10

Similar Documents

Publication Publication Date Title
JP6181257B2 (ja) 誤り訂正符号の編成を含む装置および方法
KR102179228B1 (ko) 메모리에서의 티어드 오류 정정 코드(ecc) 동작
TWI727372B (zh) 快閃記憶體控制器以及用來存取快閃記憶體模組的方法
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
US10037809B2 (en) Memory devices for reading memory cells of different memory planes
WO2016160133A1 (en) Apparatus and method for detecting and mitigating bit-line opens in flash memory
US9454429B2 (en) Protection against word line failure in memory devices
JP2020155167A (ja) 不揮発性メモリ
US10903860B2 (en) Error correction code (ECC) operations in memory for providing redundant error correction
US10700707B2 (en) Circuit for transforming parity-check matrix of QC-LDPC code, error correction circuit having the same, and method of operating the same
US9355730B2 (en) Mapping between program states and data patterns

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160118

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160118

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160511

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160817

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160901

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20160923

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170816

R150 Certificate of patent or registration of utility model

Ref document number: 6195854

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