特許第6195854号(P6195854)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロン テクノロジー, インク.の特許一覧

特許6195854誤り訂正符号の編成を含む装置および方法
<>
  • 特許6195854-誤り訂正符号の編成を含む装置および方法 図000002
  • 特許6195854-誤り訂正符号の編成を含む装置および方法 図000003
  • 特許6195854-誤り訂正符号の編成を含む装置および方法 図000004
  • 特許6195854-誤り訂正符号の編成を含む装置および方法 図000005
  • 特許6195854-誤り訂正符号の編成を含む装置および方法 図000006
  • 特許6195854-誤り訂正符号の編成を含む装置および方法 図000007
  • 特許6195854-誤り訂正符号の編成を含む装置および方法 図000008
  • 特許6195854-誤り訂正符号の編成を含む装置および方法 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6195854
(24)【登録日】2017年8月25日
(45)【発行日】2017年9月13日
(54)【発明の名称】誤り訂正符号の編成を含む装置および方法
(51)【国際特許分類】
   G06F 12/16 20060101AFI20170904BHJP
【FI】
   G06F12/16 320F
【請求項の数】5
【全頁数】22
(21)【出願番号】特願2014-560980(P2014-560980)
(86)(22)【出願日】2013年3月1日
(65)【公表番号】特表2015-509640(P2015-509640A)
(43)【公表日】2015年3月30日
(86)【国際出願番号】US2013028644
(87)【国際公開番号】WO2013134066
(87)【国際公開日】20130912
【審査請求日】2016年1月18日
【審判番号】不服2016-12391(P2016-12391/J1)
【審判請求日】2016年8月17日
(31)【優先権主張番号】13/413,363
(32)【優先日】2012年3月6日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー, インク.
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(74)【代理人】
【識別番号】100106851
【弁理士】
【氏名又は名称】野村 泰久
(72)【発明者】
【氏名】ラドキ,ウィリアム ヘンリー
【合議体】
【審判長】 石井 茂和
【審判官】 高木 進
【審判官】 須田 勝巳
(56)【参考文献】
【文献】 特開2009−282923(JP,A)
【文献】 特開2012−022422(JP,A)
【文献】 特開2011−128751(JP,A)
【文献】 特開2011−081776(JP,A)
【文献】 特開平11−191758(JP,A)
【文献】 特開2006−135584(JP,A)
【文献】 特開2011−180911(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/16
G11C 16/04
G11C 29/00
(57)【特許請求の範囲】
【請求項1】
第1のデータと当該第1のデータに関連する第1の誤り訂正符号の全部とを格納している第1のメモリセル、第2のデータと当該第2のデータに関連する第2の誤り訂正符号であって前記第2のデータは前記第1のデータよりも誤りを発生しやすいとして前記第1の誤り訂正符号よりも情報サイズが大きくされた第2の誤り訂正符号のうちの一部とを格納している第2のメモリセル、および前記第2のメモリセルに格納しきれなかった前記第2の誤り訂正符号のうちの残部を格納している第3のメモリセルが同一のメモリデバイスに配置され、前記第1のメモリセルと前記第2のメモリセルとは別々のページを構成し、前記第2のメモリセルと前記第3のメモリセルは別々のページを構成しているメモリデバイスに対する方法であって、
前記第1のメモリセルから第1の情報を取出し、当該第1の情報に含まれる前記第1の誤り訂正符号の全部を用いて前記第1の情報に含まれる前記第1のデータを生成することと、
前記第2のメモリセルから第2の情報を取出し、当該第2の情報に含まれる前記第2の誤り訂正符号の前記一部を先ずは用いて前記第2の情報に含まれる前記第2のデータの生成を試み、前記第2のデータの生成がうまく成されなかった場合は、前記第3のメモリセルから第3の情報を取出し、当該第3の情報に含まれる前記第2の誤り訂正符号の前記残部と前記第2の誤り訂正符号の前記一部との両方を用いて前記第2のデータを生成することと、
を含む方法。
【請求項2】
前記第1のメモリセル、前記第2のメモリセルおよび前記第3のメモリセルは、互いに別々のページを構成している、請求項1に記載の方法。
【請求項3】
前記第1のメモリセルと前記第3のメモリセルは共通のページを構成している、請求項1に記載の方法。
【請求項4】
前記第2のメモリセルが構成するページと前記第3のメモリセルが構成するページとが互いに隣接して配置されている、請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記第1のメモリセルは前記第1のデータを格納している第1のメモリ部分を有し、前記第2のメモリセルは前記第2のデータを格納している第2のメモリ部分を有し、前記第1および第2のメモリ部分は互いに同一のサイズである、請求項1乃至4のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
<優先権出願>
本出願は、2012年3月6日に出願された米国出願第13/413,363号の恩典を主張するものであり、それはその全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
フラッシュメモリなどのメモリデバイスは、コンピュータおよび多くの電子製品に広く用いられている。このようなメモリデバイスは、多くのメモリセルを有する。情報は、書き込み動作でメモリセルに記憶され得る。記憶された情報は、読み出し動作で取り出され得るか、または消去動作で消去され得る。所与のデバイス面積に対してメモリセル密度が増大するにつれて、メモリデバイスに記憶された情報の信頼性を維持することが、課題をもたらし得る。
【図面の簡単な説明】
【0003】
図1】本発明の実施形態に従う、メモリデバイスの形態の装置のブロック図を示す。
図2】本発明の実施形態に従う、メモリデバイスの一部分の略図を示す。
図3】本発明の実施形態に従う、図2のメモリデバイスのメモリセルに記憶された情報の値を表すように構成され得る閾値電圧範囲を示すグラフである。
図4】本発明の実施形態に従う、図2のメモリデバイスのメモリ部分に対応するブロック図を示す。
図5】本発明の実施形態に従う、図4のメモリ部分に記憶され得る情報の異なるページを示す。
図6】本発明の実施形態に従う、生成行列の構造を示す。
図7】本発明の実施形態に従う、システムの形態の装置のブロック図を示す。
図8】本発明の実施形態に従う、システムを動作させる方法を示すフロー図である。
【発明を実施するための形態】
【0004】
図1は、本発明の実施形態に従う、メモリデバイス100の形態の装置のブロック図を示す。メモリデバイス100は、ライン(例えば、アクセスライン)WL0およびWL1〜WLmならびにライン(例えば、データライン)BL0およびBL1〜BLnに加えて行および列に配列することが可能なメモリセル103を有するメモリアレイ102を含むことが可能である。メモリデバイス100は、ラインWL0およびWL1〜WLmならびにメモリセル103にアクセスするラインおよびメモリセル103と情報を交換する(例えば、転送する)ライン105を用いることが可能である。
【0005】
行アクセス108および列アクセス109の回路は、アドレスレジスタ112に応答して、ライン110、111、または双方上の行アドレスおよび列アドレスの信号に基づいてメモリセル103にアクセスすることが可能である。入/出力回路114は、メモリセル103とライン110との間で情報を交換するように構成することが可能である。ライン110および111は、メモリデバイス100内の結節または、メモリデバイス100が常駐することが可能なパッケージ上のピン(または半田ボール)を含むことがある。
【0006】
制御回路116は、ライン110および111上に存在する信号に基づいてメモリデバイス100の動作を制御することが可能である。メモリデバイス100の外部のデバイス(例えば、プロセッサまたはメモリコントローラ)は、ライン110、111、または双方上の信号の異なる組み合わせを用いて、異なる指令(例えば、読み出し、書き込み、または消去指令)をメモリデバイス100に送出することが可能である。異なる指令をメモリデバイス100に送出するデバイス(例えば、プロセッサまたはメモリコントローラ)は、メモリデバイス100と同じ半導体ダイ上に形成することが可能であり、または、このようなデバイス(例えば、プロセッサまたはメモリコントローラ)は、メモリデバイス100を形成する半導体ダイとは異なる半導体ダイ上に形成することも可能である。
【0007】
メモリデバイス100は、指令に応答して、情報をメモリセル103に記憶する(プログラムする)書き込み(例えば、プログラミング)動作または記憶された情報をメモリセル103から取り出す読み出し動作などのメモリ動作をメモリセル103に実施することが可能である。メモリデバイス100はまた、消去動作を実施して、メモリセル103の一部または全部から情報をクリアすることが可能である。
【0008】
メモリセル103に記憶された情報は、データと、このデータと関連付けられた誤り訂正符号(ECC)とを含むことがある。ECCは、データがメモリセル103に記憶される前にこのデータに基づいて生成することが可能である。ECCは、パリティ検査ビットを含むことがある。データおよびその関連付けられたECCが、メモリセル103から取り出されるとき、このECCを用いて、このデータ中に発生し得た誤りを訂正するように用いることが可能である。データと関連付けられたECCは、メモリデバイス100によって内部で発生する、または別のデバイス(例えば、メモリコントローラもしくはプロセッサ)によって外部で発生することが可能である。
【0009】
メモリセル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」のうちの一つ、または別の数の複数ビットの他の値のうちの一つなどの複数のビットの値を表す情報を記憶するようにプログラムすることが可能である。複数のビットを記憶する能力を有するセルは、複数レベルセル(または多状態セル)と呼ばれることもある。
【0010】
メモリデバイス100は不揮発性メモリデバイスを含むことが可能であり、メモリセル103は不揮発性メモリセルを含むことが可能であり、それで、メモリセル103は、電力がメモリデバイス100から切断されたときに、そこに記憶された情報を保持することが可能である。例えば、メモリデバイス100は、NANDフラッシュもしくはNORフラッシュメモリデバイスなどのフラッシュメモリデバイスまたは、可変抵抗メモリデバイス(例えば、相変化もしくは抵抗RAMデバイス)などの別の種類のメモリデバイスであり得る。
【0011】
メモリデバイス100は、メモリセル103が同じデバイス上の複数レベルに物理的に位置することが可能なメモリデバイスを含むことが可能であり、それで、メモリセル103の一部を、メモリデバイス100の基板(例えば、半導体基板)上の複数レベルで一部の他のメモリセル103に積み重ねることが可能である。
【0012】
当業者は、メモリデバイス100は、本明細書に説明する例示の実施形態をあいまいにしないためにそのうちのいくつかを図1に示さない他の部品を含み得ることを認識し得る。
【0013】
メモリデバイス100の少なくとも一部分は、図2図8を参照して以下に説明するメモリデバイスに類似したまたはこれと同一の構造を含み得る。
【0014】
図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を示している。これらのラインの数は変化し得る。
【0015】
メモリセル210、211、212、213、および214は、図2に示すように、NAND構成に配列することが可能である。例えば、メモリセル210、211、212、および213は、メモリセルストリング220〜229などのメモリセルストリングとして配列することが可能である。メモリセルストリング220〜229の各々は、トランジスタのうちの一つ(例えば、選択トランジスタ)217を介してラインBL0〜BL9のうちの一つに、かつトランジスタのうちの一つ(例えば、選択トランジスタ)218を介してラインSLに連結することが可能である。ラインSLは、メモリデバイス200のソース(例えば、ソースライン)の一部を形成することが可能である。
【0016】
メモリ動作(例えば、読み出しまたは書き込み動作)中に、メモリデバイス200は、ラインSGDを用いてトランジスタ217をオンにし、メモリセルストリング220〜229をそれぞれのラインBL0〜BL9に連結する、またはトランジスタ217をオフにし、メモリセルストリング220〜229をそれぞれのラインBL0〜BL9から切り離すことが可能である。メモリデバイス200は、ラインSGSを用いてトランジスタ218をオンにし、メモリセルストリング220〜229をラインSLに連結する、またはトランジスタ218をオフにし、メモリセルストリング220〜229をラインSLから切り離すことが可能である。
【0017】
メモリセル210、211、212、213、および214は、メモリデバイス200の複数レベルに物理的に位置することが可能であり、それで、同じメモリセルストリング中のメモリセルは、メモリデバイス200の複数レベルで互いの上に積み重ねることが可能である。例えば、メモリセル214は、メモリデバイス200の1つのレベルに物理的に位置することが可能である。メモリセル213は、メモリデバイス200の別のレベルでメモリセル214の上に物理的に位置することが可能である。図2は、各々のメモリセルストリング中での12のメモリセルストリング220〜229ならびに4つのメモリセル210、211、212、および213の例を示す。メモリセルストリングの数および各々のメモリセルストリング中のメモリセルの数は変化し得る。
【0018】
メモリセル210およびメモリセル214は、メモリアレイ202のそれぞれのエッジに物理的に位置することが可能である。例えば、メモリセル210はメモリアレイ202のエッジに物理的に位置することが可能であり、それで、メモリセル210は、メモリアレイ202の他のメモリセル(例えば、211、212、213、および214)よりもトランジスタ217に近づき得る。別の例では、メモリセル214はメモリアレイ202の別のエッジに物理的に位置することが可能であり、それで、メモリセル210は、メモリアレイ202の他のメモリセル(例えば、210、211、212、および213)よりもトランジスタ218に近づき得る。
【0019】
メモリ動作では、メモリデバイス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を介して感知することによって、記憶された情報を選択されたメモリセルから取り出すことが可能である。
【0020】
図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に編成することが可能である。
【0021】
メモリデバイス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はまた、他のタイプの情報(例えば、オーバーヘッド情報またはデータ管理情報)を記憶することも可能である。
【0022】
図2は、一例として、メモリ部分251、261、271、281、および291、メモリ部分252、262、272、282、および292、ならびにメモリ部分253、263、273、283、および293の各々の中の特定の数(例えば、6、3、または1)のメモリセルを示している。これらのメモリ部分中のメモリセルのこの数は変化し得る。
【0023】
簡単にするため、次の記述は、ラインWL3と関連付けられたメモリセル213などの、ラインWL0、WL1、WL2、WL3、およびWL4のうちの一つと関連付けられたメモリセルの編成および機能を説明する。他のメモリセル210、211、212、および214は、類似の編成および機能を含み得る。
【0024】
メモリセル213で、メモリ部分271は、メモリ部分272と273を合わせたサイズよりも実質的に大きいサイズ(例えば、メモリセルの数)を有し得る。例えば、メモリ部分271は、全てのメモリセル213の数の約97%(例えば、96.875%)を含み得るし、メモリ部分272および273は、全てのメモリセル213の数の約3%(例えば、3.125%)を含み得る。
【0025】
一例として、メモリ部分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のセルを含み得る。
【0026】
メモリ部分272は、メモリ部分273のそれよりも大きいサイズ(例えば、メモリセルの数)を有し得る。例えば、メモリ部分272は、メモリ部分273のサイズの3倍のサイズを有し得る。したがって、メモリ部分272は、メモリ部分273に記憶することが可能なECCのサイズの3倍であるサイズを有するECCを記憶することが可能であり得る。例えば、メモリ部分273は64バイトのECCを記憶することが可能な数のメモリセルを含み得るし、メモリ部分272は192バイトのECCを記憶することが可能な数のメモリセルを含み得る。
【0027】
メモリ部分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を記憶することが可能である)を含み得る。
【0028】
メモリセル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の全て)に記憶することが可能であり、これが繰り返される。代替的には、他の順序(例えば、非順次的な順序)を用いることも可能である。
【0029】
ライン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に記憶される。
【0030】
図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値を含み得る。
【0031】
図3に示すように、VT範囲301、302、303、および304のVT値は、2ビットの情報のそれぞれ4つの可能な値「00」、「01」、「10」、および「11」を表すように構成することが可能である。それぞれVT範囲301、302、303、および304に対応する順序「11」、「10」、「00」、および「01」は、例示の順序である。異なる順序を用いることも可能である。
【0032】
図3は、一例として4つのVT範囲を示している。異なる数の範囲を用いることも可能である。例えば、8つの異なるVT範囲を用いて、「000」、「001」、「010」、「011」、「100」、「101」、「110」、および「111」を含む、3ビットの8つの可能な値を表すことが可能である。
【0033】
図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値を維持させればよい。
【0034】
読み出し動作は、選択されたメモリセルに記憶された情報を(例えば、感知することによって)取り出して、この選択されたメモリセルに記憶された情報の値(例えば、「00」、「01」、「10」、または「11」)を決定することが可能である。例えば、読み出し動作では、VT範囲302に対応するVT値が選択されたメモリセルから感知されると、(図3に基づいた)「10」という値を感知されたVT値から生成することが可能である。次に、値「10」を、選択されたメモリセルに記憶された情報の値として提供(例えば、出力)することが可能である。
【0035】
図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」を表すことが可能である。
【0036】
図3に示すように、2ビット(値「00」、「01」、「10」、および「11」を有する)の情報を、ビット位置MSB(例えば、最上位のビット)のビットおよびビット位置LSB(例えば、最下位のビット)のビットとして指定することが可能である。
【0037】
メモリデバイス200(図2)は、ページの情報中にデータビットを(記憶されるように)編成するように構成することが可能である。各々のページの情報は、データとその関連付けられたECCとを含み得る。1ページの情報中のデータのサイズ(例えば、8Kバイト)は、別のページの情報中のデータのサイズと同じであり得る。
【0038】
あるページの情報中のデータのビットは、同じビット位置(例えば、MSBまたはLSB)に記憶されたビットを含み得る。例えば、あるページの情報は、同じビット位置MSBに記憶されたビットを有するデータを含み得る。別の例では、別のページの情報は、同じビット位置LSBに記憶されたビットを有するデータを含み得る。
【0039】
図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倍高い)。
【0040】
したがって、図3の「11」、「10」、「00」、および「01」の順序に基づいて、より誤りが発生しやすいページの情報は、ビット位置LSBのビットを有するデータを含むページの情報と関連し得る。より誤りが発生しにくいページの情報は、ビット位置MSBのビットを有するデータを含むページの情報と関連し得る。
【0041】
一部の場合、図3の値「11」、「10」、「00」、および「01」は、図3に示す順序とは異なる順序で配列することが可能である。このような場合、値「11」、「10」、「00」、および「01」の順序によって、誤りは、ビット位置LSBのビットにおいてよりもビット位置MSBのビットにおいてのほうが発生しやすくなり得る。
【0042】
要するに、より誤りが発生しやすいページの情報は、別のビット位置(例えば、図3の値の順序に基づくMSB)のビットを有するデータを含むページの情報よりも誤りを有しやすいビット位置(例えば、図3の値の順序に基づくLSB)のビットを有するデータを含むページの情報と関連し得る。より誤りが発生しにくいページの情報は、別のビット位置(例えば、図3の値の順序に基づくLSB)のビットを有するデータを含むページの情報よりも誤りを有しにくいビット位置(例えば、図3の値の順序に基づくMSB)のビットを有するデータを含むページの情報と関連し得る。
【0043】
したがって、図4図8を参照して以下に説明するように、データの誤り訂正を向上させるには、より多くのECC(例えば、より多い数のECCビット)を、より誤りを有しにくいビット位置のビットを有するデータよりも誤りを有しやすいと決定されたビット位置のビットを有するデータに対して割り当てればよい。メモリセル210、211、212、および213などのメモリセルに書き込まれ、かつこれらから取り出されたビットパターンの分析を(例えば、製造中に)実施して、どのビット位置(例えば、MSBまたはLSB)で、データのビットが誤りを有しやすいかを決定することが可能である。
【0044】
図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の図面は、原寸に比例していない。
【0045】
図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などの部分(例えば、サブ部分)を含み得る。
【0046】
部分401、402、および403は、同じサイズ(例えば、同じ数のメモリセル)を有し得る。部分401、402、および403の各々もまた、メモリ部分253のサイズに等しいサイズを有し得る。部分411、412、および413は、メモリ部分263のサイズに等しくあり得る同じサイズ(例えば、同じ数のメモリセル)を有し得る。部分421、422、および423は、メモリ部分273のサイズに等しくあり得る同じサイズ(例えば、同じ数のメモリセル)を有し得る。部分431、432、および433は、メモリ部分283のサイズに等しくあり得る同じサイズ(例えば、同じ数のメモリセル)を有し得る。部分441、442、および443は、メモリ部分293のサイズに等しくあり得る同じサイズ(例えば、同じ数のメモリセル)を有し得る。
【0047】
図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のそれらと同じである。
【0048】
図5に示すように、この情報は、データ555および関連付けられたECC557、データ565および関連付けられたECC567、データ566および関連付けられたECC568、データ575および関連付けられたECC577、データ576および関連付けられたECC578、データ585および関連付けられたECC587、データ586および関連付けられたECC588、データ595および関連付けられたECC597などのデータとそれらの関連付けられたECCとを含み得る。
【0049】
特定のデータと関連付けられたECCを用いて、その特定のデータ中で発生し得た誤りを訂正することが可能である。例えば、ECC577を用いて、データ575が読み出し動作で取り出されたときにデータ575中で発生し得た誤りを訂正することが可能である。別の例では、ECC578を用いて、データ576が読み出し動作で取り出されたときにデータ576中で発生し得た誤りを訂正することが可能である。
【0050】
図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つの異なるページ中のデータを表し得る。
【0051】
異なるページの情報中のデータが、同じサイズ(例えば、同じ数のビット)を有し得る。例えば、データ555、565、566、575、576、585、586、および595(例えば、「DATA WLx」、「DATA WLx」、および「DATA WLx」で表される)は、同じ数のビット(例えば、65,536ビット=8×8×210=8Kバイト)を有し得る。
【0052】
「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つの集合を表し得る。
【0053】
「ECC(DATA WLx)」、「ECC(DATA WLx)」、および「ECC(DATA WLx)」は、同じサイズ(例えば、512ビット=64バイトなどの同じ数のビット)を有し得る。
【0054】
図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)」を含み得る。
【0055】
図5に示すように、情報の異なるページからのデータが、同じラインWL0、WL1、WL2、WL3、またはWL4と関連付けられた同じメモリ部分に記憶され得る。例えば、2つの異なるページの情報からのデータ「DATA WL2」および「DATA WL2」が、ラインWL2と関連付けられた同じメモリ部分271に記憶され得る。
【0056】
特定のデータと関連付けられたECC全体は、同じページの情報中にデータとして編成することが可能であり、したがって、同じライン(ラインWL0、WL1、WL2、WL3、およびWL4のうちの一つ)と関連付けられたメモリ部分に記憶することが可能である。例えば、「(DATA WL2)」と関連付けられた「ECC(DATA WL2)」、「ECC(DATA WL2)」、および「ECC(DATA WL2)」は、同じページの情報中に編成して、同じラインWL2と関連付けられたメモリ部分に記憶することが可能である。
【0057】
特定のデータと関連付けられた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)を含み得る。
【0058】
図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ページだけの情報を記憶するように構成することが可能である。
【0059】
図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バイトのデータを記憶することが可能である。
【0060】
図5は、2ページの情報をメモリ部分261、271、および281の各々に記憶することが可能な例を示す。メモリ部分261、271、および281の各々に記憶することが可能な複数のページの数は変化し得る。例えば、メモリセルメモリ部分261、271、および281が3ビットの情報を記憶するように構成されている場合、メモリ部分261、271、および281の各々は、最大で3ページの情報を記憶することが可能である。
【0061】
異なるデータと関連付けられた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)を含み得る。
【0062】
より誤りが発生しやすいページの情報中のデータは、より誤りが発生しにくいページの情報中のデータよりも、より多くの集合のECCと関連付けることが可能である。例えば、図5で、データ566、576、および586の各々は5つの集合のECCと関連付けられているため、データ566、576、および586を含むページの情報は、より誤りが発生しやすいページの情報であると言及することが可能である。別の例では、図5で、データ555、565、575、585、および595の各々は5つ未満の集合のECCと関連付けられているため、データ555、565、575、585、および595を含むページの情報は、より誤りが発生しにくいページの情報であると言及することが可能である。
【0063】
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)」を生成することが可能である。
【0064】
図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」の位置を表している。
【0065】
生成行列610を(例えば、データの符号化中に)用いて、図5を参照して上述したように、ECC557、567、568、577、578、587、588、および597などのECCを生成することが可能である。特定のデータと関連付けられたECCの異なる数の集合(例えば、最大で5つの集合のパリティ検査ビット)を、生成することが可能である。
【0066】
例えば、特定のデータと関連付けられた5つの集合のECC(例えば、ECC、ECC、ECC、ECC、およびECC)を、5つの層601、602、603、604、および605のすべてを用いるなど、生成行列610の全ての層を用いて生成することが可能である。したがって、より誤りが発生しやすいページの情報に含まれることになる特定のデータについては、その特定のデータと関連する5つの集合のECCを、生成行列610の5つの層601、602、603、604、および605のすべてを用いて生成すればよい。
【0067】
別の例では、特定のデータと関連付けられた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を用いることによって生成すればよい。
【0068】
生成行列610に基づいて生成されたECCの集合(例えば、ECC、ECC、ECC、ECC、およびECC)は、図5を参照して上述した集合「ECC(DATA WLx)」、「ECC(DATA WLx)」、および「ECC(DATA WLx)」に対応し得る。
【0069】
また、図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)とを用いて、その特定のデータの再生成を試行することが可能である。
【0070】
図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の全ては、同じ半導体ダイ上に物理的に位置することが可能である。
【0071】
図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)」に対応し得る。
【0072】
以下の説明は、情報をデバイス730に記憶するための、システム700中での例示の動作(例えば、書き込み動作)を記述する。この例示の動作では、デバイス710は、(デバイス730に記憶される予定の)データをデバイス720に転送することが可能である。すると、デバイス720は、このデータと関連付けられたECCを生成して、データとその関連付けられたECCとをデバイス730に転送して、その中に記憶されるようにすることが可能である。
【0073】
この例示の動作では、デバイス720のインターフェース732は、データをデバイス710から受信して、この受信したデータをバッファ734に転送することが可能である。デバイス720は、データをバッファ734から受信して、データと関連付けられたECCを生成するために、ECC生成器736を含むことが可能である。
【0074】
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を含み得る。
【0075】
図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と類似し得るまたは同一であり得る。
【0076】
図7のデバイス720は、より誤りが発生しやすいページの情報中の特定のデータと関連付けられたECCの一部分を記憶するために、ECC書き込み記憶ユニット738を含むことが可能である。ECC書き込み記憶ユニット738に記憶されたECCのこの部分は、その特定のデータと関連付けられたECCの5つの集合のうちの1つだけの集合(例えば、ECC(DATA))を含み得る。
【0077】
デバイス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)とを含み得る。
【0078】
より誤りが発生しにくいページの情報はまた、データ(例えば、図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に転送することが可能である。
【0079】
より誤りが発生しやすいページの情報に含まれる予定の特定のデータと関連付けられたECC(例えば、5つのECC集合)の生成後、デバイス720は、その特定のデータと関連付けられたECCの一部分(例えば、ECC(DATA))を記憶して、その特定のデータと、ページの情報中のその関連付けられたECCの残り(例えば、4つの集合ECC、ECC、ECC、およびECC)とを、書き込み制御ユニット740を介してインターフェース742に転送することが可能である。ECC書き込み記憶ユニット738に記憶されたECCのこの部分は、その特定のデータと関連付けられたECCのその他の部分がインターフェース742に転送されている間およびその後で、ECC書き込み記憶ユニット738に記憶された状態に留まることが可能である。
【0080】
より誤りが発生しにくいページの情報に含まれる予定の特定のデータと関連付けられたECC(例えば、3つのECC集合)の生成に応答して、デバイス720は、ECC書き込み記憶ユニット738に記憶されたECCの部分(例えば、ECC(DATA))を取り出して、それを、より誤りが発生しにくいページの情報中のデータおよび関連付けられたECC(例えば、3つのECC集合)と一緒に、インターフェース742に転送することが可能である。
【0081】
デバイス730は、図5を参照して上述したそれらに類似したまたはそれらと同一の形式で、複数ページの情報(デバイス720から取り出されたデータおよびECC)を記憶するように構成することが可能なメモリセル(図7には図示せず)を含むことが可能である。
【0082】
以下の説明は、記憶された情報をデバイス730から取り出すために、システム700中での別の例示の動作(例えば、読み出し動作)を記述する。この例示の動作では、デバイス720は、データおよびECCを含む情報を、デバイス730からインターフェース742で取り出すことが可能である。デバイス720は、読み出し制御ユニット750と、情報を処理するための処理ユニット752とを含み得る。デバイス720は、情報からデータを生成するために、検査ユニット754を含み得る。
【0083】
検査ユニット754は、ECC生成器736中に実装される生成行列と同じであり得る、検査ユニット754中に実装される生成行列に少なくとも部分的に基づいてデータを生成するために、復号器756を含み得る。
【0084】
デバイス720は、生成行列の層(例えば、全ての層よりも少ない層)の一部分だけに基づいてデータを生成することが可能である。例えば、より誤りが発生しにくいページの情報の場合、デバイス720は、生成行列の3つ(または4つの)層を用いるだけで、データを生成することが可能である。より誤りが発生しやすいページの情報の場合、デバイス720は、生成行列の全ての層のうちの一部分(例えば、4つの層)または全ての層(例えば5つ)を用いるだけで、データを生成することが可能である。例えば、デバイス720は、通常は、生成行列の全ての層よりも少ない層を用いて、より誤りが発生しやすいページの情報からデータを生成することが可能である。デバイス720が全ての層よりも少ない層を用いてデータを成功裏に生成することが不可能である場合、それは、生成行列の全ての層を用いて、この過程を繰り返して、データを生成する。
【0085】
次の記述は、デバイス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に転送する。
【0086】
デバイス720は、それが受信されたページの情報(ECCの4つの集合を含む)からデータ(例えば、DATA WL2)を生成することが不可能な場合、生成行列の全て(例えば、5つ)の層と、そのデータと関連付けられたECCの第5の集合(例えば、図5のECC(DATA WL2))を含む、データと関連付けられたECCの全て(例えば5つ)の集合とを用いて再度試行する。デバイス720は、データを生成する二回目の試行においてより誤りが発生しやすいページの情報に含まれるデータと関連付けられたECCの一部分(例えば、ECC(DATA WL2))を記憶するために、ECC読み出し記憶ユニット758を含むことが可能である。
【0087】
データを生成する二回目の試行中、デバイス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)を生成することが可能である。
【0088】
システム700中で一部の状況(例えば、電力切断)では、より誤りが発生しやすいページの情報中の特定のデータと関連付けられたECCの一部分(例えば、ECC DATA)が、その特定のデータがデバイス730に記憶された後で、ECC書き込み記憶ユニット738に記憶されていないことがあり得る。この状況下では、書き込み動作を実施して新しいデータをデバイス730に記憶する前に、デバイス720は、その特定のデータ(すでに記憶されたデータ)をデバイス730から(例えば、読み出し操作で)取り出すことが可能である。この記憶されたデータが取り出された後、デバイス730は、そのデータと関連付けられたECC全体(例えば、ECCの全ての5つの集合)を生成する(例えば、再生成する)ことが可能である。次に、デバイス720は、上述したように、ECCのその部分(例えば、ECC DATA)をECC書き込み記憶ユニット736に記憶し、次にECCのその部分を、より誤りが発生しにくいページの情報中のデータおよびECCと一緒にデバイス730に記憶することが可能である。
【0089】
システム700は、多数のECCを保つ(例えば、記憶する)ためにさらなる記憶ユニット(図7には図示せず)を含み得るが、それで、上述したような一部の状況(例えば、電力切断)でのECCの一部分(例えば、ECC DATA)の再生成は回避され得る。この多数のECCは、1ページ以上の情報中のデータと関連付けられたECCの全ての5つの集合(例えば、ECC全体)を含み得る。システム700中のこのさらなる記憶ユニットは、デバイス720中の大規模オンボードキャッシュメモリなどの大規模メモリ(例えば、不揮発性メモリ)を含み得る。一部の場合では、さらなる記憶ユニットは、ECC書き込み記憶ユニット738の一部として含まれ得る。
【0090】
図8は、本発明の実施形態に従う、システムを動作させる方法800を示すフロー図である。方法800は、行為810、820、および830を含み得る。行為810、820、および830の全てまたは一部は、図1のメモリデバイス100、図2のメモリデバイス200、または図7のシステム700などの装置中で用いることが可能である。
【0091】
行為810は、データと関連付けられたECCを生成することを含み得る。行為820は、データおよびECCを記憶することを含み得る。行為830は、データおよびECCを取り出すことを含み得る。行為810、820、および830は、図1図7を参照して上述した装置(例えば、メモリデバイス100および200ならびにシステム700)によって実施される行為の一部またはすべてを含み得る。
【0092】
装置(例えば、メモリデバイス100および200ならびにシステム700)と、方法(例えば、方法800)との図示は、様々な実施形態の構造の一般的理解を提供することを意図するものであり、本明細書に説明する構造を利用し得る装置の全ての部品および特徴の完全な説明を提供することを意図するものではない。本明細書中の装置とは、例えば、デバイス(例えば、メモリデバイス100および200)または、メモリデバイス100および200などのデバイスを含むシステム(例えば、システム700)のいずれかのことである。
【0093】
メモリデバイス100および200ならびにシステム800は、高速コンピュータ、通信および信号処理回路、単一もしくは複数プロセッサモジュール、単一もしくは複数埋め込みプロセッサ、複数コアプロセッサ、メッセージ情報スイッチ、ならびに、複数層、複数チップモジュールを含む特定用途向けモジュールなどの装置(例えば、電子回路)に含まれ得る。このような装置は、テレビ、携帯電話、パソコン(例えば、ラップトップコンピュータ、デスクトップコンピュータ、手持ち式コンピュータ、タブレットコンピュータなど)、ワークステーション、ラジオ、ビデオプレイヤー、オーディオプレイヤー(例えば、MP3(エムペグ、オーディオレイヤー3)プレイヤー)、車両、医療デバイス(例えば、心臓モニター、血圧モニターなど)、セットトップボックス、およびその他などの様々な他の装置(例えば、電子システム)内のサブ構成要素としてさらに含まれ得る。
【0094】
図1図8を参照して上述した実施形態は、第1のメモリセル、第1のメモリセルにアクセスするように構成された第1のアクセスライン、第2のメモリセル、および第2のメモリセルにアクセスするように構成された第2のアクセスラインを有する装置および方法を含む。このような装置の一つは、データを第1のメモリセルのメモリ部分に記憶させ、データと関連付けられた誤り訂正符号の第1の部分を第1のメモリセルの別のメモリ部分に記憶させ、かつ誤り訂正符号の第2の部分を第2のメモリセルに記憶させるように構成されたコントローラを含み得る。さらなる装置および方法を含む他の実施形態も説明される。
【0095】
上の説明および図面は、当業者が本発明の実施形態を実践することができるように本発明の一部の実施形態を解説する。他の実施形態は、構造的、論理的、電気的、過程的、および他の変更を組み込み得る。例は単に考えられる変形例を代表しているだけである。一部の実施形態の部分および特徴部は、他の実施形態のそれらに含まれるか、またはそれらと置き換えられ得る。多くの他の実施形態は、上記の説明を読んで理解すれば、当業者には明らかであろう。
図1
図2
図3
図4
図5
図6
図7
図8