JP2017504925A - アナログメモリセルにおけるセル当り非整数個のビットを用いたデータ記憶の管理 - Google Patents

アナログメモリセルにおけるセル当り非整数個のビットを用いたデータ記憶の管理 Download PDF

Info

Publication number
JP2017504925A
JP2017504925A JP2016533714A JP2016533714A JP2017504925A JP 2017504925 A JP2017504925 A JP 2017504925A JP 2016533714 A JP2016533714 A JP 2016533714A JP 2016533714 A JP2016533714 A JP 2016533714A JP 2017504925 A JP2017504925 A JP 2017504925A
Authority
JP
Japan
Prior art keywords
data
read
encoded data
decoding
code
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
JP2016533714A
Other languages
English (en)
Other versions
JP6145220B2 (ja
Inventor
ミシャ アンホルト,
ミシャ アンホルト,
ナフタリ ソマー,
ナフタリ ソマー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2017504925A publication Critical patent/JP2017504925A/ja
Application granted granted Critical
Publication of JP6145220B2 publication Critical patent/JP6145220B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5671Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

データ記憶のための方法は、少なくとも外符号及び内符号を用いてデータを符号化し、必要に応じて、符号化データをメモリセルに記憶する前に符号化データを反転させることによって、データをメモリセルのグループに記憶することを含む。符号化データはメモリセルから読み出され、復号結果を生成するために内符号復号が読み出された符号化データに適用される。読み出されたデータの少なくとも一部は、内符号の復号結果に応じて、条件付きで反転される。

Description

本発明は、概してデータ記憶に関し、特にアナログメモリセルにデータを記憶するための方法及びシステムに関する。
フラッシュメモリなどの幾つかのタイプのメモリデバイスは、データを記憶するためにアナログメモリセルのアレイを用いる。各アナログメモリセルは、電荷又は電圧などの、記憶値とも称されるアナログ値の量を記憶する。このアナログ値は、セルに記憶された情報を表す。フラッシュメモリにおいて、例えば、各アナログメモリセルは、ある量の電荷を保持する。可能なアナログ値の範囲は、典型的に、1つ以上のデータビット値にそれぞれ対応するインターバルに区分される。データは、所望の1つ又は複数のビットに対応する公称アナログ値を書き込むことにより、アナログメモリセルに書き込まれる。
シングルレベルセル(SLC)デバイスと一般に称される一部のメモリデバイスは、単一ビットの情報を各メモリセルに記憶し、すなわち、2つの可能なプログラミングレベルをとるように各メモリセルをプログラムすることができる。マルチレベルセル(MLC)デバイスとしばしば称される、より高密度のデバイスは、メモリセル当り2ビット以上を記憶し、すなわち、2つよりも多くの可能なプログラミングレベルをとるようにプログラムすることができる。例として、トリプルレベルセル(TLC)デバイスは、8つのプログラミングレベルを用いてセル当り3ビットを記憶する。
フラッシュメモリデバイスは、例えば、参照により本明細書に組み込まれる、Bez等による「Introduction to Flash Memory」、IEEE予稿集、第91巻、第4号、2003年4月、頁489〜502に記述されている。マルチレベルフラッシュセル及びデバイスは、例えば、参照により本明細書に組み込まれる、Eitan等による「Multi Level Flash Cells and their Trade−Offs」、1996 IEEE International Electron Devices Meeting(IEDM)、ニューヨーク、ニューヨーク州の予稿集、頁169〜172に記述されている。この論文は、共通グランド、DINOR、AND、NOR及びNANDセルなどの幾つかの種類のマルチレベルフラッシュセルを比較している。
Eitan等は、窒化物リードオンリーメモリ(NROM)と呼ばれる別の種類のアナログメモリセルについて、参照により本明細書に組み込まれる、「Can NROM,a 2−bit,Trapping Storage NVM Cell,Give a Real Challenge to Floating Gate Cells?」、1999 International Conference on Solid State Devices and Materials(SSDM)、東京、日本、1999年9月21日−24日、の予稿集、頁522〜524に記述している。NROMセルも、参照により本明細書に組み込まれる、Maayan等による「A 512 Mb NROM Flash Data Storage Memory with 8Mb/s Data Rate」、2002 IEEE International Soild Circuits Conference(ISSCC 2002)、サンフランシスコ、カリフォルニア州、2002年2月3日−7日、の予稿集、頁100−101に記述されている。他の例示的なタイプのアナログメモリセルは、フローティングゲート(FG)セル、強誘電性RAM(FRAM)セル、磁気RAM(MRAM)セル、チャージトラップ型フラッシュ(CTF)及び相転移RAM(PRAM、相転移メモリ−PCMとも称される)セルである。FRAM、MRAM及びPRAMセルは、例えば、参照により本明細書に組み込まれる、KimとKohによる「Future Memory Technology including Emerging New Memories」、24th International Conference on Microelectronics(MIEL)、ニス、セルビアモンテネグロ、2004年5月16日−19日、の予稿集、第1巻、頁377−384に記述されている。
一部の記憶方式は、メモリセル当り非整数個のビットを有する密度でデータを記憶する。例えば、その開示が参照により本明細書に組み込まれる、米国特許第7,071,849号は、積生成(product generation)の間でセル当り状態数のわずか1の増加を可能にする小数型ビットシステムを記述している。セル当り状態数が2の整数べきではないので、セル当りビット数は小数値をとる。セルは、典型的にワード単位で復号され、ワード幅を調節することによりシステム効率を最適化することができる。
別の例として、その開示が参照により本明細書に組み込まれる米国特許第6,646,913号は、複数のメモリセルにより形成されたメモリアレイを有するマルチレベル不揮発性メモリにデータを記憶し読み出すための方法を記述している。メモリセルのそれぞれは、2の整数べきではない数のビットを記憶する。このように、1つのデータバイトは、非整数個のメモリセルに記憶される。管理方法は、事前設定された数の隣り合うメモリセルをプログラミングすることにより、複数のバイトにより形成されたデータワードを同じクロックサイクルで記憶することを含む。読出しは、記憶されたデータワードを同じクロックサイクルで読み出すことにより実行される。
その開示が参照により本明細書に組み込まれる米国特許第7,167,109号に記述される方法は、積生成の間でセル当り状態数Nのわずか1の増加を可能にする。Nが2の整数べきではないので、bは小数値をとり、小数型ビットシステムをもたらす。小数型ビットシステムにおいて、セルはワード単位で復号される。ワード幅を調節することによって、システム効率を最適化することができる。製造歩留まり及び耐久寿命を向上させるために、ハイブリッドNアレイシステムを用いることができる。
その開示が参照により本明細書に組み込まれる米国特許第7,742,335号は、不揮発性マルチレベルメモリセルを操作するための方法、デバイス、モジュール、及びシステムを記述している。1つの方法実施形態は、行選択線に結合された第1のセルに、第1のセルをプログラムできる第1の数のプログラム状態を割当てることを含む。方法は、行選択線に結合された第2のセルに、第2のセルをプログラムできる第2の数のプログラム状態を割当てることを更に含み、プログラム状態の第2の数は、プログラム状態の第1の数よりも大きい。方法は、第2の数のプログラム状態のうちの1つに第2のセルをプログラミングする前に、第1の数のプログラム状態のうちの1つに第1のセルをプログラミングすることを含む。
その開示が参照により本明細書に組み込まれる米国特許第7,848,142号は、整数個のビットを表すデータ状態に対応する電荷をメモリセルの集合に記憶することを含むことができる、メモリセルをプログラミングするための方法、デバイス、モジュール、及びシステムを記述している。メモリセルのプログラミングは、集合のセルに電荷を記憶することを含むことができ、電荷はプログラムされた状態に対応し、プログラムされた状態は小数のビットを表し、プログラムされた状態は、基底の数Nにより表現されるデータ状態の桁を示し、Nは整数に切り上げられた2に等しく、Bは、プログラムされた状態により表されるビットの小数に等しい。
その開示が参照により本明細書に組み込まれる米国特許第7,420,841号は、メモリデバイス及びメモリデバイスを操作する方法を記述している。本発明の一実施形態において、メモリデバイスは、2(nがゼロ以外の整数)に一致しないm個のレベルをそれぞれ有する複数のマルチレベルメモリセルと、組み合わされた状態の集合への書込み及び読出し操作のために、並びに組み合わされた状態の集合のうちの2の組合せの少なくとも部分集合をn個の2レベルのデータビットに変換するために、メモリセルのうちの少なくとも2つのレベルを組み合わせるための回路又はデバイスと、を含む。
本明細書に記述される本発明のある実施形態は、データ記憶のための方法であって、少なくとも外符号及び内符号を用いてデータを符号化し、必要に応じて、符号化データをメモリセルに記憶する前に符号化データを反転させることによって、データをメモリセルのグループに記憶することを含む方法を提供する。符号化データは、メモリセルから読み出される。内符号復号は、読み出された符号化データに適用されて復号結果を生成する。読み出されたデータの少なくとも一部は、内符号の復号結果に応じて、条件付きで反転される。
一部の実施形態において、内符号は、有効な符号ワードの反転が別の有効な符号ワードを必ずしももたらさない符号を含み、内符号復号を適用することは、読み出された符号化データと読み出された符号化データの反転バージョンとの少なくとも一方を復号することを含む。他の実施形態において、内符号復号を適用することは、読み出された符号化データと読み出された符号化データの反転バージョンとの両方を復号することを含み、読み出されたデータの少なくとも一部を条件付きで反転させることは、反転バージョンの復号結果が誤りなしであり、読み出された符号化データの復号結果が誤りなしではないときのみに、読み出されたデータの少なくとも一部を反転させることを含む。
更に他の実施形態において、データを記憶することは、データに関して、記憶されたデータが反転されているかどうかの反転インジケータを記憶することを含み、符号化データを読み出すことは、反転インジケータを読み出し復号することを含み、内符号復号を適用することは、反転インジケータに応じて、読み出された符号化データのみ又は読み出された符号化データの反転バージョンのみを復号することを含む。
ある実施形態において、読み出されたデータの少なくとも一部を条件付きで反転させることは、読み出された符号化データの復号結果が反転インジケータと矛盾するときに、読み出されたデータを反転させるかどうかを判断できないことを示すことを含む。別の実施形態において、内符号は誤り検出符号を含み、読み出されたデータの少なくとも一部を条件付きで反転させることは、復号結果が内符号復号を全て1のワードに適用することの結果に等しいときに、読み出されたデータの少なくとも一部を反転させることを含み、復号結果が誤りなしであるときに、読み出されたデータの少なくとも一部を反転させないことを含む。
更に別の実施形態において、読み出されたデータの少なくとも一部を条件付きで反転させることは、読み出された符号化データの復号結果が読み出された符号化データの反転バージョンの復号結果と矛盾するときに、読み出されたデータを反転させるか否かを判断できないことを示すことを含む。
加えて、本発明のある実施形態によると、メモリセルのアレイを含むメモリと、記憶回路とを含む装置が提供される。記憶回路は、少なくとも外符号及び内符号を用いてデータを符号化し、必要に応じて、符号化データをメモリセルに記憶する前に符号化データを反転させることによって、データをメモリセルのグループに記憶し、符号化データをメモリセルから読み出し、読み出された符号化データに内符号復号を適用して復号結果を生成し、内符号の復号結果に応じて、読み出されたデータの少なくとも一部を条件付きで反転させる、ように構成される。
加えて、本発明のある実施形態によると、データ記憶のための方法であって、第1のプログラミング段階において、グループ内のメモリセルを初期のプログラミングレベルの集合にプログラミングすることにより、第1のデータをメモリセルのグループに記憶することを含む方法が提供される。第1のプログラミング段階に続く第2のプログラミング段階において、第2のデータは、第1のプログラミング段階において初期のプログラミングレベルの所定の真部分集合(partial subset)のそれぞれのレベルにプログラムされたグループ内のメモリセルを特定することにより、グループに記憶される。特定されたメモリセルの少なくとも一部を、初期のプログラミングレベルとは異なる1つ以上の追加のプログラミングレベルに設定するように、特定されたメモリセルのみが第2のデータでプログラムされる。第2のデータがプログラムされたメモリセルは、第1のデータの真部分集合のみを読み出すことにより認識される。第2のデータは、認識されたメモリセルから読み出される。
一部の実施形態において、第1のデータを記憶することは、複数のデータページを記憶することを含み、メモリセルを認識することは、複数のページの真部分集合のみを読み出すことを含む。他の実施形態において、第1のデータを記憶することは、最下位ビット(LSB)のページ及び中位ビット(CSB)のページを記憶することを含み、第2のデータを記憶することは、最上位ビット(MSB)のページを記憶することを含み、メモリセルを認識することは、LSBページ又はCSBページのみを読み出すことを含む。更に他の実施形態において、LSBページ又はCSBページを読み出すことは、単一の読出しコマンドを用いてLSBページ又はCSBページを読み出すことを含む。更に更なる他の実施形態において、第2のデータを読み出すことは、2つの読出し閾値を用いて、認識されたメモリセルからMSBページを読み出すことを含む。
加えて、本発明のある実施形態によると、データ記憶のための装置であって、メモリセルのアレイを含むメモリと、記憶回路とを含む装置が提供される。記憶回路は、第1のプログラミング段階において、グループ内のメモリセルを初期のプログラミングレベルの集合にプログラミングすることにより、第1のデータをメモリセルのグループに記憶し、第1のプログラミング段階に続く第2のプログラミング段階において、第1のプログラミング段階において初期のプログラミングレベルの所定の真部分集合のそれぞれのレベルにプログラムされたグループ内のメモリセルを特定し、特定されたメモリセルの少なくとも一部を初期のプログラミングレベルとは異なる1つ以上の追加のプログラミングレベルに設定するように、特定されたメモリセルのみを第2のデータでプログラミングすることにより、第2のデータをグループに記憶し、第1のデータの真部分集合のみを読み出すことにより、第2のデータがプログラムされたメモリセルを認識し、認識されたメモリセルから第2のデータを読み出す、ように構成される。
加えて、本発明のある実施形態によると、データ記憶のための方法であって、メモリセルのグループにおいて、所与のプログラミング状態にプログラムされるべきグループ内のメモリセルの予想数を特定することを含む方法が提供される。所与のプログラミング状態と隣のプログラミング状態との間の区切りは、所与のプログラミング状態にプログラムされるべきメモリセルの予想数に応じて設定される。グループ内のメモリセルは、設定された区切りを用いてプログラムされる。
一部の実施形態において、隣のプログラミング状態は、所与のプログラミング状態を所定の分割比によって分割することにより生成され、メモリセルの予想数を特定することは、所与のプログラミングレベルにプログラムされたメモリセルの数を分割比を用いて評価することを含む。他の実施形態において、メモリセルをプログラミングすることは、隣り合うメモリ状態の間のそれぞれの区切りが不均等となるように、メモリセルを複数のメモリ状態に設定することを含む。
加えて、本発明のある実施形態によると、データを記憶するための装置であって、メモリセルのアレイを含むメモリと、記憶回路とを含む装置が提供される。記憶回路は、メモリセルのグループにおいて、所与のプログラミング状態にプログラムされるべきグループ内のメモリセルの予想数を特定し、所与のプログラミング状態と隣のプログラミング状態との間の区切りを、所与のプログラミング状態にプログラムされるべきメモリセルの予想数に応じて設定し、設定された区切りを用いてグループ内のメモリセルをプログラムする、ように構成される。
加えて、本発明のある実施形態によると、データ記憶のための方法であって、第1のプログラミング段階において、各グループ内のメモリセルを初期のプログラミングレベルのそれぞれの集合にプログラミングすることにより、メモリセルの複数のグループに第1のデータを記憶することを含む方法が提供される。第1のプログラミング段階に続く第2のプログラミング段階において、第2のデータは、第1のプログラミング段階において初期のプログラミングレベルの所定の真部分集合のそれぞれのレベルにプログラムされた各グループ内の利用可能なメモリセルを特定することにより、複数のグループに記憶される。特定された利用可能なメモリセルのみが第2のデータでプログラムされて、利用可能なメモリセルの少なくとも一部を初期のプログラミングレベルとは異なる1つ以上の追加のプログラミングレベルに設定するように、所与のグループの第2のデータが、利用可能なメモリセルの実際の数の変動にかかわらずに、メモリセルのグループ内の固定位置からプログラムされる。
一部の実施形態において、方法は、固定位置のメモリセルにアクセスすることにより、所与のグループの第2のデータを読み出すことを含む。他の実施形態において、第2のデータは複数のデータワードを含み、各データワードのサイズは、メモリセルの複数のグループ内のそれぞれの利用可能なセルの実際の数よりも大きい。更に他の実施形態において、第2のデータを読み出すことは、所与のデータワードがプログラムされたメモリセルの1つ以上のグループのみから第1のデータを読み出すことにより、複数のデータワードのうちの所与のデータワードを読み出すことを含む。
ある実施形態において、方法は、特定された利用可能なセルを第2のデータでプログラミングすることが、特定されたプログラムされていない利用可能なセルの1つ以上を残すときに、プログラムされていないメモリセルを第3のデータでプログラミングすることを含む。別の実施形態において、第2のデータは、データワードのサイズがメモリセルの複数のグループ内のそれぞれの利用可能なメモリセルの数を超えない複数のデータワードを含む。
加えて、本発明のある実施形態によると、データ記憶のための装置であって、メモリセルのアレイを含むメモリと、記憶回路とを含む装置が提供される。記憶回路は、第1のプログラミング段階において、各グループ内のメモリセルを初期のプログラミングレベルのそれぞれの集合にプログラミングすることにより、メモリセルの複数のグループに第1のデータを記憶し、第1のプログラミング段階に続く第2のプログラミング段階において、第1のプログラミング段階において初期のプログラミングレベルの所定の真部分集合内のそれぞれのレベルにプログラムされた各グループ内の利用可能なメモリセルを特定し、特定された利用可能なメモリセルのみを第2のデータでプログラミングして、利用可能なメモリセルの少なくとも一部を初期のプログラミングレベルとは異なる1つ以上の追加のプログラミングレベルに設定するように、利用可能なメモリセルの実際の数の変動にかかわらずに、メモリセルのグループ内の固定位置から所与のグループの第2のデータがプログラムされることにより、複数のグループに第2のデータを記憶する、ように構成される。
本発明は、以下の図面と併せて解釈される、本発明の実施形態の以下の詳細な説明からより完全に理解されよう。
本発明のある実施形態に係るメモリシステムを概略的に例示するブロック図である。 本発明のある実施形態に係るデータ符号ワードを概略的に例示する図である。 本発明の実施形態に係る、セル当り非整数個のビットによりデータを記憶するために用いられるプログラミングレベルの分布を示すグラフである。 本発明の実施形態に係る、セル当り非整数個のビットによりデータを記憶するために用いられるプログラミングレベルの分布を示すグラフである。 本発明の実施形態に係る、利用可能なメモリセルにおける既知のオフセットでデータを記憶するための2つの技法を概略的に例示する図である。 本発明の実施形態に係る、利用可能なメモリセルにおける既知のオフセットでデータを記憶するための2つの技法を概略的に例示する図である。 本発明のある実施形態に係る、利用可能なメモリセルにおける既知のオフセットでデータを書き込むための方法を概略的に例示するフローチャートである。 本発明のある実施形態に係る、利用可能なメモリセルにおける既知のオフセットで書き込まれたデータを読み出すための方法を概略的に例示するフローチャートである。
概説
セル当り非整数個のビットを用いたデータの記憶は、整数個を用いるよりも有利となることができ、これは、レベルの合計数を2の整数べきに限定せずに、増加又は減少された数のプログラミングレベルを用いて、記憶の密度又は信頼性をそれぞれ向上させることができるためである。
本発明の実施形態は、メモリセル当り非整数個のビットを用いてデータの記憶を管理するための向上された方法及びシステムを提供する。開示される実施形態は、2段階プログラミング方式の幾つかの変形を利用する。このような2段階プログラミング方式の各種の例は、例えば、2011年7月28日に出願され、本特許出願の譲受人に譲渡され、その開示が参照により本明細書に組み込まれる、米国特許出願第13/192,501号に記述されている。このような方式においては、第1のプログラミング段階において、メモリセルは、2の整数べきである数のプログラミングレベルを用いてプログラムされる。第2のプログラミング段階において、追加ビットは、選択された1つ以上のレベルのグループにおけるレベルに第1の段階においてそれぞれプログラムされたセルのみに記憶される。これらのセルは、第2の段階においてプログラミングするのに適しており、本明細書において「利用可能なセル」とも称される。
利用可能なセルの正確な数は、データに依存し、したがって可変である。したがって、一部の実施形態において、第1の段階において書き込まれるデータページは、第2の段階のデータを記憶するための十分な数の利用可能なセルを確保するために、必要に応じてビット反転される(すなわち、ビットの極性が反転される)。しかし、ビット反転は、反転された有効な符号ワードが必ずしも有効な符号ワードとはならない誤り訂正符号及び/又は誤り検出符号をデータが受けるときに、問題となる場合がある。別の有効な符号ワードに対する反転された各符号ワードのマッピングを保証しない符号の例は、巡回冗長符号(CRC)及びBCH(Bose−Chaudhuri−Hocquenghem)を含む。ある実施形態において、復号方式は、内符号及び外符号を利用する。内符号(例えばCRC又はBCH)は、例えば、繰り返しLDPC復号器の早期終了の条件又はトラッピングセットシナリオを解決するための条件を認識するために、外符号(例えば低密度パリティ検査−LDPC)と併せて用いられてもよい。一部の実施形態において、記憶された符号ワードの極性は、典型的に(必ずしもそうではないが)符号ワードに埋め込まれる、それぞれの反転ビットにより示される。
ある実施形態において、内符号は、CRC符号(又は誤り検出モードのBCH符号)などの誤り検出符号を含む。データはメモリセルから読み出され、外符号は復号され、読み出されたデータと反転された同じデータとの両方にCRC復号が(可能であれば外復号器と並列で)適用される。極性は、(可能であれば反転ビットに関して)誤りが見出されなかったことをCRC復号のいずれかが示すかどうかに基づいて判断される。別の実施形態において、CRC復号は、読み出されたデータ内の反転ビットの極性によって1回のみ適用される。更に別の実施形態において、CRC復号器の結果は、ゼロワード(反転なしを示す)と、全て1のワードに適用されたCRCに等しいワード(反転が適用されたことを示す)との両方と比較される。更に更なる別の実施形態において、内符号は、(誤り訂正操作モードのために構成された)BCH符号などの誤り訂正符号を含み、復号は、読み出されたデータと反転された同じデータとの両方に適用される。符号ワードの極性は、2つのBCH復号器のいずれかの結果が復号可能であるか、すなわち誤りなしであるかどうかによって判断される。
一部の実施形態において、各メモリセルは、(前述された2段階プログラミング方式の)第1の段階において、4つの初期レベルのうちの1つをとるようにプログラムされ、初期レベルのうちの2つは、第2の段階のために選択される。第2の段階において、追加ビットは、選択された2つのレベルのうちの1つにプログラムされたセルのみに書き込まれる。選択されたレベルのセル占有度は、よって第2の段階において約半分に分割され、合計で6つのレベルをもたらし、レベルのうちの4つは、ほぼ半分追加される。この方式によるとセルの半数が3ビット/セルを記憶し、他の半数が2ビット/セルを記憶するので、デバイスは、平均数で2.5ビット/セルを記憶する。
前述されたような6レベルのプログラミング方式を利用する開示される実施形態において、3ビットの組合せをプログラミングレベルにマッピングするための専用の方式は、第1の段階においてプログラムされた全データを読み出す必要なしに、第2の段階においてプログラムされたセルの特定を可能にするように設計される。一実施形態において、セルの特定は、2つの読出し閾値を用いて中位ビット(CSB)のページのみを読み出すことにより実行される。別の実施形態において、セルの特定は、単一の読出し閾値を用いて最下位(LSB)ビットのページのみを読み出すことを含む。開示される技法は、よって読出し及び復号の不要な操作を控える。
一部の実施形態において、一様なレベル間隔に代えて、プログラミングレベルにおける閾値電圧間隔は、レベルのセル占有度に基づいて決定される。このような実施形態において、占有度のより低い隣り合うレベル間の間隔又は区切りは、占有度の高い隣り合うレベル間の間隔よりも近くに設定される。このような不均等な間隔は、例えば、全てのレベルに渡って一様な読出し誤り確率を実現するために用いられてもよい。
一部の実施形態において、Nビットサイズのワード(例えば、符号化データのNビット符号ワード)は、セルグループとも称されるN個のセルのグループに書き込まれる。このような実施形態において、任意選択的なビット反転は、前述されたように、第2の段階において十分なレベル占有度(すなわち、利用可能な十分な数のセル)を確保するために、第1の段階における記憶の前に適用される。加えて、(第1の段階において用いられる4つのレベルから)3つのレベルが第2の段階において分割される場合、各セルグループ内のセルの約3/4のみが、追加ビットを記憶するために利用可能である。一部の実施形態において、3つのNビット符号ワードは、4つのセルグループ内の利用可能なセルに記憶される。各符号ワードは、利用可能なセルにおけるある固定オフセットで2つの個別のセルグループに書き込まれる2つのセグメントに区分される。
例示的なある実施形態において、符号ワードのセグメントは、全ての利用可能なセルを用い尽くして順次に書き込まれる。この実施形態において、各セグメントが書き込まれる利用可能なセルにおけるオフセットは、データに依存する。符号ワードを読み出すために、それぞれのセグメントのオフセットは、それぞれのセグメントのいずれもが書き込まれない少なくともセルグループからデータを読み出すことにより評価される。
他の実施形態において、符号ワードのセグメントは、各セルグループ内の利用可能なセルにおける既知の固定オフセットで書き込まれる。固定オフセットを用いることによって、所与の符号ワードのセグメントの読出しは、その符号ワードのセグメントが書き込まれるセルグループのみからのデータの読出しを必要とする。読み出されたセグメントは、次いで、元の符号ワードを復元するように組み合わされる。既知のオフセットの使用は、よって読出し及び復号の不要な操作を控えることを可能にする。
他の実施形態において、第2の段階のデータサイズは、セルグループ内の利用可能なセルの最小数に合うように選択され、したがってデータの読出し及び書込みの操作を簡単にする。しかし、このような実施形態において、第1及び第2のプログラミング段階について、個別の異なる復号方式が必要とされ、よって全体の復号方式をより複雑にする場合がある。
システムの説明
図1は、本発明のある実施形態に係るメモリシステム20を概略的に例示するブロック図である。システム20は、コンピューティングデバイス、携帯電話若しくは他の通信端末、リムーバブルメモリモジュール(例えば、「ディスクオンキー」若しくは「フラッシュドライブ」のデバイス)、固体ディスク(SSD)、デジタルカメラ、音楽プレーヤ及び他のメディアプレーヤ、並びに/又は、データが記憶及び取り出される任意の他のシステム若しくはデバイスなどの、各種のホストシステム及びデバイスに用いることができる。
システム20は、メモリセルアレイ28にデータを記憶するメモリデバイス24を備える。メモリアレイは複数のアナログメモリセル32を備える。本特許出願の文脈及び請求項において、用語「アナログメモリセル」は、電圧又は電荷などの物理的パラメータの連続的なアナログ値を保持する任意のメモリセルを記述するために用いられる。アレイ32は、例えば、NAND、NOR及びチャージトラップ型フラッシュ(CTF)フラッシュセル、相転移RAM(PRAM、相転移メモリ−PCMとも称される)、窒化物リードオンリーメモリ(NROM)、強誘電性RAM(FRAM)、磁気RAM(MRAM)及び/又は動的RAM(DRAM)セルなどの、任意の種類の固体アナログメモリセルを備え得る。本明細書に記述される実施形態は、アナログメモリを主に参照するが、開示される技法は、各種の他のメモリタイプと共に用いられてもよい。
本明細書において、セルに記憶された電荷レベル及び/又はセルに書き込まれセルから読み出されるアナログ電圧若しくは電流は、アナログ値、記憶値又はアナログ記憶値と総称される。本明細書に記述される実施形態は、閾値電圧を主に扱うが、本明細書に記述される方法及びシステムは、任意の他の適した種類の記憶値と共に用いられてもよい。
システム20は、プログラミングレベルとも称されるそれぞれのメモリ状態をとるようにセルをプログラミングすることにより、アナログメモリセルにデータを記憶する。プログラミングレベルは、可能なレベルの有限の集合から選択され、各レベルは、ある公称記憶値に相当する。例えば、4つの可能な公称記憶値のうちの1つをセルに書き込むことにより、2ビット/セルのMLCを4つの可能なプログラミングレベルのうちの1つをとるようにプログラムすることができる。本明細書に記述される技法は、メモリセル当り非整数個のビットの記憶の密度、すなわち2の整数べきではない数のプログラミングレベルを主に扱う。
メモリデバイス24は、メモリデバイスに記憶するためのデータをアナログ記憶値に変換し、メモリセル32に書き込む、読出し/書込み(R/W)ユニット36を備える。代替的な実施形態において、R/Wユニットは変換を実行しないが、R/Wユニットには、電圧サンプル、すなわち、セルに記憶するための記憶値が提供される。アレイ28からデータを読み出すとき、R/Wユニット36は、メモリセル32の記憶値を1以上のビットの整数精度を有するデジタルサンプルに変換する。データは、典型的に、ページと称されるグループ内のメモリセルに書き込まれ、グループ内のメモリセルから読み出される。一部の実施形態において、R/Wユニットは、1つ以上の負の消去パルスをセルに印加することにより、セル32のグループを消去することができる。
メモリデバイス24へのデータの記憶及びメモリデバイス24からのデータの取り出しは、メモリコントローラ40により実行される。メモリコントローラ40は、メモリデバイス24と通信するためのインターフェース44、プロセッサ48、及び誤り訂正符号(ECC)ユニット50を備える。開示される技法を、メモリコントローラ40により、R/Wユニット36により、又は両方により実施することができる。よって、本文脈において、メモリコントローラ40及びR/Wユニット36は、開示される技法を実行する記憶回路と総称される。
メモリコントローラ40は、メモリデバイスに記憶するためのデータを受け付けるために、及びメモリデバイスから取り出されたデータを出力するために、ホスト52と通信する。ECCユニット50は、記憶するためのデータを適したECCを用いて符号化し、メモリから取り出されたデータのECCを復号する。例えば、低密度パリティ検査(LDPC)、リードソロモン(RS)又はBCH(Bose−Chaudhuri−Hocquenghem)などの任意の適した種類のECCを用いることができる。一部の実施形態において、誤り訂正符号を含むことに加えて、ECCユニット50は、別の(典型的により小さな)誤り訂正又は誤り検出符号を更に含む。このような追加符号のために用いられ得る例示的な符号は、誤り訂正用のBCH及び誤り検出用の巡回冗長符号(CRC)を含む。符号化方向におけるECCユニット50の出力は、「符号ワード」とも称される。
メモリコントローラ40は、例えば、1つ以上の特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)を用いて、ハードウェアに実装され得る。代わりに、メモリコントローラは、適したソフトウェアを実行するマイクロプロセッサ又はハードウェア要素とソフトウェア要素の組合せを備えてもよい。
図1の構成は、例示的なシステム構成であり、あくまでも概念的な明瞭性のために示される。任意の他の適したメモリシステム構成も用いることができる。例えば、図1の例は、単一のメモリデバイスを示すが、代替的な実施形態において、メモリコントローラ40は、複数のメモリデバイス24を制御してもよい。各種のインターフェース、アドレス指定回路、タイミング及びシーケンス回路並びにデバッグ回路など、本発明の原理を理解するために必要とされない要素は、明瞭性のために図から省略されている。
図1に示される例示的なシステム構成において、メモリデバイス24とメモリコントローラ40は、2つの個別の集積回路(IC)として実装される。しかし、代替的な実施形態において、メモリデバイスとメモリコントローラは、単一のマルチチップパッケージ(MCP)若しくはシステムオンチップ(SoC)における個別の半導体ダイ上に統合されてもよく、又は、内部バスにより相互接続されてもよい。更に代わりに、メモリコントローラ回路の一部又は全ては、メモリアレイが配される同じダイ上に存在してもよい。更に代わりに、メモリコントローラ40の機能の一部又は全てをソフトウェアに実装し、プロセッサ又はホストシステムの他の要素により実行することができる。一部の実施形態において、ホスト44とメモリコントローラ40は、同じダイ上又は同じデバイスパッケージの個別のダイ上に製作されてもよい。
一部の実施形態において、メモリコントローラ40は、本明細書に記述される機能を実行するようにソフトウェアにプログラムされる汎用プロセッサを備える。ソフトウェアは、例えばネットワークを介して、電子形態でプロセッサにダウンロードされてもよく、或いは、代わりに又は加えて、磁気、光、若しくは電子メモリなどの非一時的な有形の媒体上に提供及び/又は記憶されてもよい。
アレイ28の例示的な構成において、メモリセル32は、複数の行及び列に配置され、各メモリセルはフローティングゲートトランジスタを備える。各行のトランジスタのゲートはワード線により接続され、各列のトランジスタのソースはビット線により接続される。本文脈において、用語「行」は、共通のワード線により供給されるメモリセルのグループを意味するように従来の感覚で用いられ、用語「列」は、共通のビット線により供給されるメモリセルのグループを意味する。用語「行」及び「列」は、メモリデバイスに対するメモリセルのある物理的配向を暗示しない。メモリアレイは、典型的に、複数のメモリページ、すなわち、同時にプログラムされ読み出されるメモリセルのグループに区分される。
一部の実施形態において、メモリページはセクタに細分化される。ページは、各種の方法でワード線にマッピングされ得る。各ワード線は、1つ以上のページを記憶し得る。所与のページは、ワード線の全てのメモリセル、又はメモリセルの部分集合(例えば、奇数番又は偶数番のメモリセル)に記憶され得る。
セルの消去は、通常、複数のページを含むブロックにおいて実行される。典型的なメモリデバイスは、数千の消去ブロックを備え得る。セル当り2ビットの典型的なMLCデバイスにおいて、各消去ブロックは、約32のワード線であり、それぞれが数万セルを備える。このようなデバイスの各ワード線は、しばしば4つのページ(奇数/偶数位セル、セルの最下位/最上位ビット)に仕切られる。消去ブロック当り32のワード線を有するセル当り3ビットのデバイスは、消去ブロック当り192ページを有するであろうし、セル当り4ビットのデバイスは、ブロック当り256ページを有するであろう。代わりに、他のブロックサイズ及び構成も用いることができる。一部のメモリデバイスは、しばしば平面と称される2つ以上の個別のメモリセルアレイを備える。各平面は、連続する書き込み操作の間にある「ビジー」期間を有するので、プログラミングスピードを増加させるために異なる平面にデータを交互に書き込むことができる。
セル当り非整数個のビットを用いたデータの記憶
セル当り非整数個のビットを用いてデータを記憶することは、2の整数べきではない数のプログラミングレベル又は状態をとるようにメモリセルをプログラミングすることに相当する。一部の実施形態において、システム20は、セル当り非整数個のビットを用いてデータを記憶するために2段階プログラミング方式を利用する。
第1の段階において、メモリセルは、2の整数べきである数のプログラミングレベルを用いてプログラムされる。例えば、TLCデバイスにおいて、セルは、まず、(8つの可能なレベルから)4つのレベルのみを用いてプログラムされる。第2の段階において、第1の段階において第1の段階のレベルにおけるあるレベルにプログラムされたセルのみが、追加ビットでプログラムされ得る。8レベルのTLCの例において、第1の段階のレベルは、第2の段階のプログラミングのために選択され、1つ、2つ、又は3つのレベルのグループを備え、合計で5つ、6つ、又は7つのレベルをそれぞれにもたらす。
第2の段階において、追加ビットの値(「0」又は「1」)は、それぞれのセルが、第1の段階においてセルがプログラムされたプログラミングレベルを保持するか、又は第1の段階の全てのレベルと異なる別の、典型的にはより高い、プログラミングレベルにプログラムされたかどうかを判断する。よって、第1の段階において所与の数のセルが追加されたプログラミングレベルは、「0」及び「1」ビットの同様の出現率を仮定して、第2の段階においてほぼ半分に分割される。このような2段階プログラミング方式の各種の例は、例えば、先に引用された米国特許出願第13/192,501号に記述されている。
一部の実施形態において、プログラムされるべきデータは、例えば、規則的なビット有意性(bit significance)のページなどの個別のデータページを含む。記憶回路は、第1の段階において最大(又は最上)の有意ビットよりも低いビット有意性のページを記憶し、第2の段階において最上位データのページのみを記憶する。例えば、TLCデバイスにおいて、記憶回路は、第1の段階において最下位ビット(LSB)及び中位ビット(CSB)のページを記憶する。そして、第1の段階において記憶されたデータに基づいて、記憶回路は、第2の段階中に最上位ビット(MSB)のページを記憶する。第1及び第2の段階のプログラミングレベル、レベル分割、及びプログラミングレベルに対するビット組合せのマッピング方式の例は、図3A及び図3Bに関して後述される。
反転された符号ワードを復号するための方法
第2の段階においてデータ(例えばMSBデータ)をプログラミングするとき、分割されるべきプログラミングレベルを追加するセルの累計数は、データに依存し、十分ではない場合がある。一部の実施形態において、第1の段階において書き込まれたデータページのビット極性は、第2の段階において分割されるべきレベルの十分なセルの追加を確保するために必要に応じて反転される。加えて、データが誤り訂正復号を受けるとき、反転データの従来の復号は、反転データが有効な符号ワードを含まない場合があるので、実施不能となる場合がある。
記憶の信頼性を増加させるために、一部の実施形態において、記憶回路は、典型的にECCユニット50により実装される、適した符号化方式を用いて、プログラムされるべきデータを保護する。
図2は、本発明のある実施形態に係る符号ワード70を概略的に例示する図である。図2の例において、符号ワード70は、データビット74(例えば、第1の段階のLSB又はCSBデータ)、反転ビット78、内符号パリティビット82、及び外符号パリティビット86を含む。本例において、パリティビット86は、ECCユニット50がデータビット74、反転ビット78、及び内符号パリティビット82に共に適用するLDPC符号を含む。よって、データビット74、反転ビット78、内符号パリティビット82、及び外符号パリティビット86の集合は、LDPC符号ワードを構成する。更に図2の例において、パリティビット82は、ECCユニット50がデータビット74及び反転ビット78に適用するCRC又はBCH符号を含む。記述される構成において、LDPC外符号は、内符号パリティビット82の誤りを訂正することができ、このことは、下で説明されるように、LDPC復号繰り返しの早期終了のために、又は外復号後の見逃し誤りのクリアのために、内符号を用いることを可能にする。
図2の構成は、あくまでも概念的な明瞭性のために示される例示的な構成であり、他の適した構成も用いることができる。例えば、他の適した符号、復号方式、並びに符号ワード70の異なる要素のサイズ及び順序も用いることができる。
一部の実施形態において、LDPC符号ワードを繰り返し復号しながら早期終了の条件を認識するために、又はLDPC復号器のトラッピングセットシナリオを検出及び緩和するために、例えばLDPC符号86と併せて、内符号82(例えば、CRC又はBCH符号を含む)を用いることができる。別の例として、内符号が誤り訂正符号(例えばBCH)を含むとき、LDPC復号器の出力に残った見逃し誤り(「エラーフロア」)を緩和するために符号82を用いることができる。2010年10月28日に出願され、本特許出願の譲受人に譲渡され、その開示が参照により本明細書に組み込まれる、米国特許出願第12/913,815号は、繰り返し復号中の早期終了を実行するための幾つかの方法を記述している。
一部の実施形態において、記憶回路は、初期に反転ビット78を「0」に設定し、必要に応じて、前述されたように、分割されるべきレベル内のセルの十分なレベルの追加を確保するために、全符号ワード70を反転又はビット反転させる。データを読み出すとき、記憶回路は、アレイ28から符号ワードを取り出し、ECCユニット50を用いて復号を適用する。復号されたビット反転78が「1」に等しい場合、記憶回路は、ビット74をホストに送出する前に、符号ワードのデータビットを裏返す。しかし、復号を適切に行うために、反転された各符号ワードは、有効な符号ワードも含むべきである。つまり、復号方式の有効な各符号ワードは、有効な別の符号ワードへの反転によりマッピングされるべきである。符号のパリティ検査行列の各行が同一の重みを有する(すなわち、行は同一数のゼロ以外の要素を含む)という要件を含むことによって、有効な各符号ワードについて、ビット反転が有効な別の符号ワードをもたらすという特性をサポートするようにLDPC符号を設計することができる。しかし、CRC及びBCH符号において、この特性を実現することは困難又は不可能である。後に続く説明において、発明者は、外符号(例えばLDPC)が、反転された有効な符号ワードの有効性の上記された特性をサポートすると仮定する。
発明者は、次に、符号ワード70を復号し、符号ワード70が記憶される前に反転されており、したがって反転して戻されるべきであるかどうかを判断するための、幾つかの方法を記述する。開示される実施形態において、内符号82は、ビット反転されたそれぞれの符号ワードの有効性を保証しない符号を含む。後に続く説明において、XはCRC又はBCH符号ワードを示す。例えば、Xは、データビット74、反転ビット78、及びパリティビット82を含み得る。加えて、〜Xは、Xのビット反転バージョンを示し、CRC(X)又はBCH(X)は復号操作を示すものとする。また、ZEROS及びONESは、全体−「0」ビット及び全体−「1」ビットのシーケンスをそれぞれ示す。本特許出願の文脈及び請求項において、内符号復号は、誤り検出符号と誤り訂正符号の両方を指す。
発明者は、まず、内符号82が誤り検出符号を含む幾つかの実施形態を記述する。説明は、主に、CRC復号を利用する実施形態に関するが、例えば、誤り検出モードにおいて操作するように構成されるBCH符号などの任意の他の適した誤り検出符号も用いることができる。誤り検出符号の特性によると、Xが誤りなしである場合、CRC(X)=ZEROSであり、他方、誤った符号ワードへのCRC復号の適用がZEROSをもたらす可能性は、非常に低い。
一実施形態において、ECCユニット50は、2つのCRC復号操作、すなわちCRC(X)及びCRC(〜X)を(可能であれば並列に)適用する。CRC(X)=ZEORSである場合、記憶回路は、符号ワード70が反転されずに記憶されたとみなす。他方、CRC(〜X)=ZEROSである場合、符号ワード70は、反転されたと仮定される。そうでなければ(すなわち、2つのCRC復号器のいずれもZEROSの結果を生成しないとき)、LDPC繰り返し復号器の早期終了の判定基準は、まだ満たされない。
別の実施形態において、ECCユニット50は、反転ビット78の値に基づいてCRC復号を1回のみ実行する。反転ビットが非反転(「0」)を示す場合、ECCユニット50はCRC(X)を復号する。そうでなければ、ビットは、符号ワードが反転されたことを示し、ECCユニット50はCRC(〜X)を復号する。ECCユニット50は、それぞれのCRC復号結果がZEORSに等しい場合に、LDPC復号繰り返しの早期終了を実行し得る。
更に別の実施形態において、復号方式は、内符号が線形符号であることに依存する。直線性の特性によると、CRC(〜X+ONES)=CRC(〜X)+CRC(ONES)であり、ここで、「+」がビット単位のXORを示す。しかし、X=〜X+ONESであるので、発明者は、ZEROS=CRC(X)=CRC(〜X)+CRC(ONES)であると結論付ける。例示的な実施形態において、ECCユニット50は、CRC復号を実行し、結果がCRC(ONES)又はZEORSに等しいかどうかを検査して、符号ワードが反転されたか否かをそれぞれに特定する。異なる各内符号について、値CRC(ONES)が事前計算され1回のみ記憶される必要があることに留意されたい。
前述された実施形態において、ECCユニット50は、(稀に)CRC(・)復号の結果とビット反転78の復号値との間の矛盾に遭遇する場合がある。加えて、CRC(X)及びCRC(〜X)の適用の結果は、読み出されたデータを反転させるか否かの確定的な判断を必ずしももたらさない場合がある。このような出来事において、ECCユニットには、適したインジケータが備えられる。ECCユニット50は、このような矛盾又は不確定な結論が生じるときに、任意の適した復号方法を用いてもよい。例えば、ECCユニット50は、LDPC繰り返し復号器を終了しないと判断してもよい。
誤り検出符号の文脈において前述される実施形態の一部は、誤り訂正符号にも適用可能である。
発明者は、次に、内符号82が(誤り訂正操作モードのために構成された)BCHなどの誤り訂正符号を含む、ある実施形態について記述する。ECCユニット50は、2つの復号操作、すなわちBCH(〜X)及びBCH(X)を適用する。〜X又はXのうちの一方のみが復号可能である、すなわち、誤りのない結果を復号する場合、記憶回路は、符号ワード70をビット反転された又はビット反転されなかったとそれぞれみなす。〜XとXの両方が復号可能である、又は両方が誤りなしの結果を生成することに失敗する場合、例えば(復号後に)誤りが最小となるものに基づいて、反転状態を判断するために、一部の他の判定基準を用いることができる。他の判定基準は、例えば、復号後の反転ビットの一貫性又は誤りパターンの重みを含む。代替的な実施形態において、ECCユニット50は、不確定な又は複数の復号の結果を示す。内誤り訂正符号が「エラーフロア」シナリオのために用いられる実施形態において、内符号復号器は、適用される必要が殆どなく、したがって、BCHの(符号ワード当り)2回の復号は、計算の小さな増加のみを作り出す。
前述された実施形態において、発明者は、外符号において、反転された有効な符号ワードが他の有効な符号ワードにマッピングされることを概ね仮定する。この特性が保証されない他の実施形態において、内符号について前述されたものと同様な復号方式を外符号にも適用することができる。
第2のプログラミング段階において記憶されたデータの読出し
図3A及び図3Bは、本発明の実施形態に係る、セル当り非整数個のビットによりデータを記憶するために用いられるプログラミングレベルの分布を示すグラフである。図3A及び図3Bのそれぞれは、第1のプログラミング段階後と第2のプログラミング段階後とのプログラミングレベル及びそれぞれのセル占有度をそれぞれに示す、上部分と下部分に区分される。
開示される実施形態において、図3A及び図3Bによると、発明者は、メモリセル32が、第1の段階において4つのレベルを用いてプログラムされ、これらのレベルのうちの2つが第2の段階において更に分割される、基本的なTLCデバイスを仮定する。各セルが第1の段階後に2ビットの情報を記憶し、セルの半数が第2の段階において追加ビットを記憶するようにプログラムされるので、デバイスは、(8つのTLCレベルから6つを用いて)平均で2.5ビット/セルを最終的に記憶する。
図3Aにおいて、L0、L1、L3、及びL5は、第1の段階においてメモリセル32をプログラムできる4つのレベルを示す。レベルL0、L1、L3、及びL5のそれぞれは、それぞれのビットペアの組合せ、すなわち、「11」、「10」、「00」、及び「01」にそれぞれマッピングされる。このような各ビットペアの組合せにおいて、個々のビットは、個別のデータストリーム又はページに対応する。後に続く説明において、左のビットはLSBページビットに対応し、右のビットはCSBページビットに対応する(すなわち、「10」は、LSB=「1」、CSB=「0」を意味する)。
第2のプログラミング段階において、第1の段階においてレベルL1又はL3にプログラムされているセルのみが、追加ビット(MSB)で更にプログラムされる。レベルマッピングに対する選択ビットによると、CSBビットがレベルL0及びL5で「1」に等しく、レベルL1及びL3で「0」に等しいので、CSBビットのみを点検することによりレベルL1及びL3のセルを特定できることに留意されたい。この特性も、下で説明されるように、MSBデータの読出しを簡単にする。
図3Aに示されるように、追加ビットのプログラミングは、セルの約半数がL1に残り、セルの残りの半数がL2にプログラムされるように、L1のセルの追加を分割する。同様に、L3のほぼ半数のセルは、L4にプログラムされる一方、他の半数のセルは、L3で変化せずに残る。よって、第2の段階においてレベルL1、L2、L3、及びL4のうちの1つにプログラムされたセルは、それぞれのビット割当て「100」、「101」、「001」、又は「000」によって3ビットの情報を記憶する。このような各ビットトリプレット、すなわち、左、中央、及び右のビットは、それぞれの個別のデータストリーム、例えば、LSB、CSB、又はMSBデータページに対応する。レベルL0及びL5は、第2の段階においてプログラムされないので、これらのレベルに割当てられたそれぞれのビットトリプレットは、「11x」又は「01x」で示され、「11」及び「01」は、(第1の段階からの)以前のビットペアの組合せであり、右端の「x」は、プログラムされていない追加ビットを示す。
発明者は、次に、図3A及び図3Bに描写されたプログラミングレベルの構成を用いて、TLCデバイスに記憶されたデータを読み出すための幾つかの方法を記述する。後述されるように、追加ビットでプログラムされたセルを特定するためにLSBデータとCSBデータの両方が読み出されるべき従来の方法とは異なり、開示される方法の一部は、初期にCSB又はLSBデータのみを読み出すことにより、MSBデータでプログラムされたセルを特定することを可能にする。
ある実施形態において、図3Aに関して、MSBページを読み出すために、記憶回路は、まず、第2の段階において追加ビットでプログラムされた、すなわちレベルL1...L4にプログラムされた、メモリセルを特定する。記憶回路は、まず、LSB及びCSBページのそれぞれを読み出し、それぞれにECC復号を適用して、ビット値「10」又は「00」をビットトリプルの左端のビットペアに記憶するメモリセルを特定する。別の実施形態において、記憶回路は、CSBデータのみを読み出し、単一の読出しコマンドの(図3Aにおける)読出し閾値TH_CSB_LO及びTH_CSB_HIを用いてECC復号する。図3Aに示されるようなレベルマッピングに対するプログラミングレベル及びビットの構成は、LSBデータとCSBデータの両方を読み出すことにより生じるであろう読出し及び復号の不要な操作を控えることを記憶回路に可能にさせる。
記憶回路は、次いで、CSBビットが「0」に等しいセルを特定する。特定されたセルに書き込まれたデータ(例えばMSBデータ)を読み出すために、記憶回路は、一方の閾値がL1とL2の間に配置され、他方の閾値がL3とL4の間に配置されるように、例えば2つの読出し閾値(不図示)を用いる。
図3Bにおいて、レベルL0、L1、L2、及びL4は、第1の段階において、それぞれのビットペア「11」、「10」、「00」及び「01」にマッピングされる。第2の段階において、記憶回路は、第1の段階においてL2又はL4にプログラムされているメモリセルのみに追加ビットをプログラムする。よって、L2の約半数のセルのレベルはL3にシフトされ、L4の約半数のセルのレベルはL5にシフトされる。L2、L3、L4、及びL5のレベルは、それぞれのビットトリプル「001」、「000」、「010」、及び「011」にマッピングされる。レベルL0及びL1は、第2の段階においてプログラムされておらず、それぞれのビットトリプレット「11x」及び「10x」にマッピングされる。
一部の実施形態において、上の図3Aの説明と同様に、左、中央、及び右のビットは、それぞれのLSB、CSB、及びMSBデータページに対応する。ある実施形態において、MSBデータを読み出すために、記憶回路は、まず、図3BにTH_LSBで示される単一の読出し閾値を用いて、(LSBページとCSBページの両方を読み出し復号するのとは対照的に)LSBページのみを読み出し復号することにより、追加ビットでプログラムされたセルを特定する。この実施形態は、典型的に読出し閾値の数が多いほどページ読出し時間が増加するので、(読出しが2つの読出し閾値を必要とする)上の図3Aのものよりも有利である。また、図3Aの方法と同様に、MSBデータを読み出すために2つの読出し閾値のみが必要とされる。記憶回路は、次いで、2つの読出し閾値、すなわち、L2とL3の間に配置された一方の読出し閾値及びL4とL5の間の他方の読出し閾値を用いて、特定されたセルからMSBデータを読み出す。図3Bに示される、レベルマッピングに対するプログラミングレベル及びビットの構成を用いて、記憶回路は、MSBページを効率的に読み出し、LSBデータとCSBデータの両方の読出しにより生じるであろう不要な読出し及び復号操作を控えることができる。
上の説明及び図から分かるように、第2の段階における追加ビットのプログラミングは、典型的に、異なるレベルにおける不均等なセル占有度を作り出す。例えば、図3BのレベルL2...L5のそれぞれにプログラムされたセルの数は、L0又はL1にプログラムされたセルの約半数である。図3Bに示されるように、(要因のなかでも)レベルにおける閾値電圧(VTH)の間隔又は区切り及び各レベルのセル占有度は、隣り合うレベルの分布間の重なりに影響を及ぼす。この重なりが読出し誤り確率に緊密に関係するので、セル占有度が異なるレベルにおける一様な間隔は、レベルに渡って不均等な(及び非最適な)読出し誤り確率をもたらし得る。
一部の実施形態において、異なるプログラミングレベルに割当てられた閾値電圧は、レベルのセル占有度に基づいて、全てのレベルに渡って一様な読出し誤り確率を実現するように設定される。異なるセル占有度を補償するために、追加の多い隣り合うレベルの間の距離(すなわち閾値電圧差)は、追加の少ない隣り合うレベルの間の距離よりも大きく設定されるべきである。
図3Bの例示的な構成において、ΔL01は、L0とL1の間の電圧差を示し、ΔL23、ΔL34、及びΔL45は、L2〜L3、L3〜L4、及びL4〜L5の電圧差をそれぞれ示す。ある実施形態において、ΔL01が(本例においては同様に仮定される)差ΔL23、ΔL34、及びΔL45のそれぞれよりも大きくなるように、レベル占有度に基づいて間隔を調節することによって、記憶回路は、プログラミングレベルに渡って一様な読出し誤り確率を実現する。加えて、L1とL2の間の間隔は、ΔL23、ΔL34、及びΔL45よりも大きいが、ΔL01よりも小さく構成されるべきである。
一部の実施形態において、記憶回路は、加えて、レベル占有度以外の要因に基づいてプログラミングレベルにおける電圧間隔を決定し得る。例えば、2008年7月11日に出願され、その開示が参照により本明細書に組み込まれる、米国特許第7,925,936号は、異なるビット有意性のページを読み出す際に実行される異なる回数の読出し操作を補償するようにレベルにおける間隔を調節することによって、プログラミングレベルに渡って一様な読出し誤り確率を実現するための幾つかの方法を記述している。
図3A及び図3Bの構成は、あくまでも概念的な明瞭性のために示される例示的な構成であり、他の適した構成も用いることができる。例えば、代替的な実施形態において、他のプログラミングレベル、レベルの数、レベル分割方式、レベルマッピングに対するビット、読出し閾値、及び/又はレベルにおける間隔も用いることができる。
第2の段階における既知のオフセットでのデータの記憶
例えば、7つのプログラミングレベルを用いてTLCデバイスにデータを記憶することを考慮する。一部の実施形態において、記憶回路は、前述された2段階プログラミング方法の適した変形を用いてデータを記憶する。例示的なある実施形態において、記憶回路は、第1の段階において、例えば図3Aの上部分に示されるような4つのレベルを用いてLSB及びCSBデータを記憶する。よって、本例において、3つのレベル、例えば、図3Aの上部分のL0、L1、及びL3は、第2の段階において分割されるべきである。
一部の実施形態において、記憶回路は、例えば符号ワード70などの符号ワードのLSB、CSB、及びMSBデータで示されるデータストリームを個別に符号化する。ある実施形態において、記憶回路は、N個のセルのグループ内のメモリセル32をプログラムし、本明細書に記述されるように、Nビットの符号ワードに記憶するためのデータを符号化もする。後に続く説明において、用語「セルグループ」又は単なるグループは、同時にプログラムされるN個のセルのグループを指す。発明者は、記憶されたデータがそれぞれの符号ワードにおいてECC復号を受けることを仮定するが、開示される方法は、符号化されていない生のデータの記憶にも適用可能であることに留意されたい。
4つのプログラミングレベルを用いて、記憶回路は、(第1の段階において)NビットのLSB及びCSBの符号ワードを書き込む。更に下で説明されるように、各セルグループ内の利用可能なセルの数は、N個よりも少ないが、第1の段階において、記憶回路は、この数が0.75・Nを超える(典型的に小さな量だけ)ことを保証する。したがって、完全なMSB符号ワードを単一のセルグループに記憶できないが、3つのNビット符号ワードを4つのセルグループに記憶できる。
下の表1において、発明者は、3つのNビット符号ワードを4つのセルグループに区分するための技法を証明する。表1において、MSB0...MSB2はMSB符号ワードを示し、CW0...CW3はセルグループを示す。表1の項目は、各符号ワードから取られ、それぞれのセルグループ内の利用可能なセルに書き込まれたビット数を表現する。例えば、MSB0による0.25・Nビット及びMSB1による0.5・NビットがCW1にプログラムされる。別の例として、MSB1ビットは、CW1とCW2の間で半分に区分される。
Figure 2017504925
一部の実施形態において、必要であれば、記憶回路は、それぞれのセルグループにMSBデータを記憶するために利用可能な少なくとも0.75・N個のセルがあることを保証するために、LSB、CSB、又は両方の符号ワードを反転させることにより、第1の段階においてデータを事前処理する。一方のサブグループが0.75・N個のセルを含み、他方のサブグループが、「エキストラセル」と称される残りのセルを含むように、利用可能なセルのグループを2つの相補的なサブグループに仕切ることができる。第1の段階において4つのレベルのそれぞれのセル占有度が、記憶された実際のデータに依存するので、エキストラセルの数もデータに依存する。
3つのMSB符号ワードのビットを4つのセルグループに区分するための各種の構成を用いることができる。上の表1がこのような例の1つを提示するが、追加の例が後述される。ある実施形態において、各符号ワードは、利用可能なセルにおけるあるオフセットで2つの異なるセルグループに記憶される2つのセグメントに区分される。記憶回路は、各セルグループ内の利用可能な全てのセルを用い尽くして、符号ワードMSB0...MSB2のセグメントをCW0...CW3に連続的に記憶する。Niは、セルグループCWi内の利用可能なセルの数を示し、Eiは、それぞれのエキストラセルの数を示すものとする。
この実施形態において、符号ワードのセグメントは、利用可能なセルにおける可変オフセットで記憶される。現在の文脈において、オフセットは、各セルグループ内の利用可能なセルにおいてのみ測定されることに留意されたい。よって、例えば、ゼロオフセットは、セルグループ内の利用可能な第1のセルを指す。所与のMSB符号ワードを読み出すために、記憶回路は、他の符号ワードのセグメントが記憶されるセルグループから有意性の低いデータを読み出すことによって、セグメントが記憶されたそれぞれのオフセットを評価する必要がある。
例えば、本実施形態において、記憶回路は、MSB0ビットのN0=0.75・N+E0(すなわち第1のセグメント)をゼロオフセットでCW0に記憶し、MSB0ビットの残り(すなわち第2のセグメント)をゼロオフセットでCW1に記憶する。記憶回路は、次いで、MSB0の第2のセグメントの直後にMSB1の第1のセグメントをCW1に記憶し、すなわち、オフセットN−N0=0.25・N−E0で開始する。
MSB1の第1のセグメントを読み出すとき、したがって、記憶回路は、まず、CW0に記憶されたLSB及びCSBデータを読み出し及び復号し、利用可能なセルの数N0を特定及び計数し、E0=N0−0.75・Nを計算し、E0を用いてMSB1の第1のセグメントの実際のオフセットを評価する(又は同等にN−N0を計算する)べきである。MSB2の符号ワードのセグメントの読出しに関して同様の議論が成り立つ。よって、この例において、CW1及びCW2に記憶されるMSB1セグメントの読出しは、別のセルグループ(すなわちCW0)に記憶されたデータの読出しも含む。
後述される代替的な実施形態において、記憶回路は、利用可能なセルに既知のオフセットでMSBセグメントを記憶する。このことは、MSBデータの効率的な読出しを可能にし、これは、既知のオフセットで、所与のMSB符号ワードの読出しが、その符号ワードのセグメントが記憶されるセルグループに記憶されたデータのみの読出しを必要とするためである。
図4A及び図4Bは、利用可能なメモリセルにおける既知のオフセットでデータを記憶するための2つの技法を概略的に例示する図である。MSB0、MSB1、及びMSB2で示されるNビットの3つのMSB符号ワードを、CW0...CW3で示される4つのセルグループに書き込むことを考慮する。前述されたように、7レベルのTLCの例において、4つのセルグループのそれぞれは、それぞれNi=0.75・N+Eiの利用可能なセルを含み、そのうちのEiがエキストラセルを構成する。
図4Aにおいて、各符号ワードMSBi(i=0...3)は、既知の所定のサイズをそれぞれに有する、MSBi_A及びMSBi_Bで示される2つのセグメントに区分される。MSB0_Aセグメントは、0.75・Nビットを含み、CW0にゼロオフセットで記憶される。0.25・Nビットを含むMSB0_Bセグメントも、CW1にゼロオフセットで記憶される。MSB1セグメントは、0.5・Nビットをそれぞれに有するMSB1_A及びMSB1_Bセグメントに区分される。MSB1_Aセグメントは、MSB0_Bビットの後に、すなわち、0.25・Nセルの既知のオフセットでCW1に記憶される。MSB1_Bセグメントは、CW2にゼロオフセットで記憶され、0.25・Nビットを含むMSB2_Aの第1のセグメントを記憶するために0.5・Nセルの既知のオフセットを作り出す。MSB2_Bの第2のセグメントは、0.75・Nビットを含み、CW3にゼロオフセットで記憶される。表2は、図4Aに示されるような、セルグループCW0...Cw3におけるMSBセグメントの割当てを要約している。
Figure 2017504925
図4Bにおいて、各MSB符号ワードの第1のセグメントは、既知のオフセットで、利用可能なセルの全てを用い尽くして書き込まれる。符号ワードの残りのビット(すなわち第2のセグメント)は、別のセルグループにゼロオフセットで書き込まれる。各MSBi符号ワードは、サイズがEiに依存するセグメントMASBi_A及びMSBi_Bに区分されるが、セグメントは、既知の固定オフセットで依然配置される。表3は、図4BによるそれぞれのセルグループにおけるMSB符号ワードセグメントの割当てを要約している。
Figure 2017504925
前述された実施形態において、MSB符号ワードを含む全ての符号ワードは、Nビットの共通のサイズを共有する。一方で、このことは、符号化/復号及び書込み/読出し操作並びに関連する回路を簡単にする。しかし、他方で、Nビットの各MSB符号ワードは、前述されたような単一のセルグループよりも多くに記憶される必要がある。代替的なある実施形態において、MSB符号ワードは、0.75・Nビット(短いMSB符号ワードと称される)のみを含む。N個のセルの各グループがNi≧0.75・Nの利用可能なセルを含むので、短いMSB符号ワードは、常にセルグループに合う。しかし、短いMSB符号ワードの復号方式は、Nビットの符号ワードの復号方式とは異なり、データ及びパリティビットの他の仕切りを用いるべきである。結果として、ECCユニット50は、短いMSB符号ワードのために専用の個別の符号化器/復号器を備えてもよい。
図5は、本発明のある実施形態に係る、利用可能なメモリセルにおける既知のオフセットでMSBデータを書き込むための方法を概略的に例示するフローチャートである。図5の方法は、図4Bに示されるようなセルグループにおけるMSBデータの割当てに合わせられる。方法が開始するとき、記憶回路は、LSB及びCSBデータがCW0...CW3に書き込まれる第1のプログラミング段階を既に実行しており、3つの符号ワードMB0...MB2がプログラムされるように用意されていると仮定される。方法は、セル特定ステップ200で、記憶回路によって、各セルグループCWiにおいて、MSBデータをプログラミングするために利用可能なセルを特定することから始まる。Niは、CWi内の利用可能なセルの数を示し、Ei=N−Niは、それぞれのエキストラセルの数を示すものとする。方法は、次いで、MSB0のプログラミングステップ204に進む。ステップ204で、記憶回路は、利用可能な全てのCW0セルを用い尽くすために、MSB0の第1の0.75・N+E0ビットをCW0にゼロオフセットでプログラムする。記憶回路は、次いで、MB0の残りの0.25・N−E0ビットをCW1にゼロオフセットでプログラムする。次に、記憶回路は、それぞれのステップ208及び212でMSB1及びMSB2符号ワードをプログラムする。記憶回路は、MSB1をCW1にオフセット0.25・Nで書き込み、CW2に継続する。同様に、記憶回路は、MSB2をCW2にオフセット0.5・Nで書き込み、残りのMSB2ビットをCW3にゼロオフセットで書き込む。
図6は、本発明のある実施形態に係る、利用可能なメモリセルにおける既知のオフセットで書き込まれたMSBデータを読み出すための方法を概略的に例示するフローチャートである。方法は、プログラムされたセルの特定ステップ250で、記憶回路によって、MSBデータでプログラムされるセルを特定することから始まる。例えば表3から明らかなように、MSB0、MSB1、又はMSB2符号ワードのうちの1つのみを独立して読み出すためには、{CW0及びCW1}、{CW1及びCW2}、又は{CW2及びCW3}のみにおいて、それぞれ追加ビットでプログラムされるセルを特定すれば十分である。MSB0、MSB1、又はMSB2を読み出すために、記憶回路は、それぞれの読出しステップ254、258、又は262に進む。ステップ254で、記憶回路は、CW0内の利用可能な全てのセル(すなわちN0=0.75・N+E0ビット)を、MSB0_Aで示される一時的なセグメントに読み込む。記憶回路は、次いで、読み出されたビットの数N0を計数し、E0=N0−0.75・Nを計算し、CW1内の利用可能なセルからMSB0_Bで示される一時的なセグメントに第1の0.25・N−E0ビットを読み込む。記憶回路は、次いで、2つの一時的なセグメントを連結して完全なMSB0符号ワードを生成する。読出しステップ258及び262で、記憶回路は、図4B及び表3による、適したセグメントサイズ及びオフセットでMSB1又はMSB2符号ワードを同様に読み出す。
図4A、図4B、図5及び図6の構成は、あくまでも概念的な明瞭性のために示される例示的な構成であり、他の適した構成も用いることができる。例えば、他の適した数の符号ワード及びセルグループも用いることができる。別の例として、例えば、MSB2_AとMBS0_B又はMSB1_Bとを置き換えるなど、セルグループにおける符号ワードのセグメントの他の配列方式を選択することができる。
図4A、図4B、図5及び図6に記述される実施形態において、第2の段階中、エキストラセルは、典型的にスキップされる。しかし、代替的な実施形態において、記憶回路は、ユーザ、記憶管理、及び/又は任意の他の種類のデータを記憶するためにエキストラセルを用いることができる。
前述の実施形態は例として挙げられており、本発明は、以上に具体的に示され記述されたものに限定されないことが理解されよう。むしろ、本発明の範囲は、前述された各種の特徴の組合せと部分的な組合せとの両方、並びに、当業者であれば前述の説明を読むことにより想到するであろう、従来技術に開示されていないそれらの変形及び修正を含む。参照により本特許出願に組み込まれる文献は、これらの組み込まれた文献において、いずれかの用語が、本明細書内で明示的又は暗示的になされた定義と矛盾するように定義されている範囲では、本明細書内の定義のみが考慮されるべきである点を除いて、本願の一体部分であると考慮されるべきである。

Claims (14)

  1. データ記憶のための方法であって、
    少なくとも外符号及び内符号を用いてデータを符号化し、該符号化データをメモリセルに記憶する前に必要に応じて前記符号化データを反転させることによって、前記データを前記メモリセルのグループに記憶することと、
    前記符号化データを前記メモリセルから読み出すことと、
    復号結果を生成するために、前記読み出された符号化データに内符号復号を適用することと、
    前記内符号の前記復号結果に応じて、前記読み出されたデータの少なくとも一部を条件付きで反転させることと、
    を含む方法。
  2. 前記内符号が、有効な符号ワードの反転が別の有効な符号ワードを必ずしももたらさない符号を含み、前記内符号復号を適用することが、前記読み出された符号化データと前記読み出された符号化データの反転バージョンとの少なくとも一方を復号することを含む、請求項1に記載の方法。
  3. 前記内符号復号を適用することが、前記読み出された符号化データと前記読み出された符号化データの前記反転バージョンとの両方を復号することを含み、前記読み出されたデータの前記少なくとも一部を条件付きで反転させることが、前記反転バージョンの前記復号結果が誤りなしであり、前記読み出された符号化データの前記復号結果が誤りなしではないときのみに、前記読み出されたデータの前記少なくとも一部を反転させることを含む、請求項2に記載の方法。
  4. 前記データを記憶することが、前記データに関して、前記記憶されたデータが反転されているかどうかの反転インジケータを記憶することを含み、前記符号化データを読み出すことが、前記反転インジケータを読み出し復号することを含み、前記内符号復号を適用することが、前記反転インジケータに応じて、前記読み出された符号化データのみ又は前記読み出された符号化データの前記反転バージョンのみを復号することを含む、請求項2に記載の方法。
  5. 前記読み出されたデータの前記少なくとも一部を条件付きで反転させることが、前記読み出された符号化データの前記復号結果が前記反転インジケータと矛盾するときに、前記読み出されたデータを反転させるかどうかを判断できないことを示すことを含む、請求項4に記載の方法。
  6. 前記内符号が誤り検出符号を含み、前記読み出されたデータの前記少なくとも一部を条件付きで反転させることが、前記復号結果が前記内符号復号を全て1のワードに適用することの結果に等しいときに、前記読み出されたデータの前記少なくとも一部を反転させることを含み、前記復号結果が誤りなしであるときに、前記読み出されたデータの前記少なくとも一部を反転させないことを含む、請求項2に記載の方法。
  7. 前記読み出されたデータの前記少なくとも一部を条件付きで反転させることが、前記読み出された符号化データの前記復号結果が前記読み出された符号化データの前記反転バージョンの前記復号結果と矛盾するときに、前記読み出されたデータを反転させるか否かを判断できないことを示すことを含む、請求項2に記載の方法。
  8. データ記憶のための装置であって、
    メモリセルのアレイを備えるメモリと、
    少なくとも外符号及び内符号を用いてデータを符号化し、該符号化データを前記メモリセルに記憶する前に必要に応じて前記符号化データを反転させることによって、前記データを前記メモリセルのグループに記憶し、前記符号化データを前記メモリセルから読み出し、復号結果を生成するために、前記読み出された符号化データに内符号復号を適用し、前記内符号の前記復号結果に応じて、前記読み出されたデータの少なくとも一部を条件付きで反転させる、ように構成される記憶回路と、
    を備える装置。
  9. 前記内符号が、有効な符号ワードの反転が必ずしも別の有効な符号ワードをもたらさない符号を含み、前記記憶回路が、前記読み出された符号化データと前記読み出された符号化データの反転バージョンとの少なくとも一方を復号するように構成される、請求項8に記載の装置。
  10. 前記記憶回路が、前記読み出された符号化データと前記読み出された符号化データの前記反転バージョンとの両方を復号し、前記反転バージョンの前記復号結果が誤りなしであり、前記読み出された符号化データの前記復号結果が誤りなしでないときのみに、前記読み出されたデータの前記少なくとも一部を反転させる、ように構成される、請求項9に記載の装置。
  11. 前記記憶回路が、前記データに関して、前記記憶されたデータが反転されているかどうかの反転インジケータを記憶し、前記反転インジケータを読み出し復号し、前記反転インジケータに応じて、前記読み出された符号化データのみ又は前記読み出された符号化データの前記反転バージョンのみを復号する、ように構成される、請求項9に記載の装置。
  12. 前記記憶回路が、前記読み出された符号化データの前記復号結果が前記反転インジケータと矛盾するときに、前記読み出されたデータを反転させるかどうかを判断できないことを示すように構成される、請求項11に記載の装置。
  13. 前記内符号が誤り検出符号を含み、前記記憶回路が、前記復号結果が前記内符号復号を全て1のワードに適用することの結果と等しいときに、前記読み出されたデータの前記少なくとも一部を反転させ、前記復号結果が誤りなしであるときに、前記読み出されたデータの前記少なくとも一部を反転させない、ように構成される、請求項9に記載の装置。
  14. 前記記憶回路が、前記読み出された符号化データの前記復号結果が、前記読み出された符号化データの前記反転バージョンの前記復号結果と矛盾するときに、前記読み出されたデータを反転させるか否かを判断できないことを示すように構成される、請求項9に記載の装置。
JP2016533714A 2013-12-20 2014-09-30 アナログメモリセルにおけるセル当り非整数個のビットを用いたデータ記憶の管理 Active JP6145220B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/135,823 US9171624B2 (en) 2013-12-20 2013-12-20 Management of data storage in analog memory cells using a non-integer number of bits per cell
US14/135,881 2013-12-20
US14/135,823 2013-12-20
US14/135,881 US9230655B2 (en) 2013-12-20 2013-12-20 Data storage management in analog memory cells using a non-integer number of bits per cell
PCT/US2014/058162 WO2015094452A1 (en) 2013-12-20 2014-09-30 Management of data storage in analog memory cells using a non-integer number of bits per cell

Publications (2)

Publication Number Publication Date
JP2017504925A true JP2017504925A (ja) 2017-02-09
JP6145220B2 JP6145220B2 (ja) 2017-06-07

Family

ID=53400746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016533714A Active JP6145220B2 (ja) 2013-12-20 2014-09-30 アナログメモリセルにおけるセル当り非整数個のビットを用いたデータ記憶の管理

Country Status (7)

Country Link
US (4) US9230655B2 (ja)
JP (1) JP6145220B2 (ja)
KR (1) KR101885976B1 (ja)
CN (1) CN105793927B (ja)
DE (1) DE112014005810B8 (ja)
TW (1) TWI516035B (ja)
WO (1) WO2015094452A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019153118A (ja) * 2018-03-05 2019-09-12 東芝情報システム株式会社 評価解析対象メモリ装置及びメモリ評価解析システム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015167509A1 (en) * 2014-04-30 2015-11-05 Empire Technology Development Llc Differential writing for life extension of portions of a memory device
US9979416B2 (en) * 2014-12-10 2018-05-22 Rambus Inc. Memory controller and method of data bus inversion using an error detection correction code
US9965356B2 (en) * 2016-09-02 2018-05-08 Alibaba Group Holding Limited Method and system of high-availability PCIE SSD with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset
US10484008B2 (en) * 2017-09-28 2019-11-19 SK Hynix Inc. Memory system with on-the-fly error detection and termination and operating method thereof
TWI671750B (zh) * 2018-11-28 2019-09-11 華邦電子股份有限公司 記憶體的控制方法及非暫態電腦可讀媒體
US11811424B2 (en) * 2021-04-05 2023-11-07 Micron Technology, Inc. Fixed weight codewords for ternary memory cells

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003123486A (ja) * 2001-09-28 2003-04-25 Stmicroelectronics Srl マルチレベル不揮発性メモリ内にデータを記憶および読み出す方法、並びにそのアーキテクチャ
JP2005100527A (ja) * 2003-09-25 2005-04-14 Matsushita Electric Ind Co Ltd 半導体不揮発性記憶装置
JP2009524152A (ja) * 2006-01-20 2009-06-25 マーベル ワールド トレード リミテッド 符号化及び信号処理機能を有するフラッシュメモリ
US20100125701A1 (en) * 2008-11-18 2010-05-20 Ki Tae Park Multi-Level Non-Volatile Memory Device, Memory System Including the Same, and Method of Operating the Same
US20100315873A1 (en) * 2009-06-15 2010-12-16 Samsung Electronics Co., Ltd. Nonvolatile memory device and related programming method
JP2011065599A (ja) * 2009-09-18 2011-03-31 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
JP2011526398A (ja) * 2008-07-02 2011-10-06 モサイド・テクノロジーズ・インコーポレーテッド 極性制御部を有するセル当たり複数ビット(mbc)不揮発性メモリ装置およびメモリシステムとその書込み方法
US8645794B1 (en) * 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60045073D1 (de) 2000-10-13 2010-11-18 St Microelectronics Srl Verfahren zum Speichern und Lesen von Daten eines nichtflüchtigen Multibitspeichers mit einer nichtbinären Anzahl von Bits pro Zelle
US6661355B2 (en) * 2000-12-27 2003-12-09 Apple Computer, Inc. Methods and apparatus for constant-weight encoding & decoding
US6834017B2 (en) 2002-10-03 2004-12-21 Hewlett-Packard Development Company, L.P. Error detection system for an information storage device
US7069494B2 (en) 2003-04-17 2006-06-27 International Business Machines Corporation Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
US7071849B2 (en) 2004-04-04 2006-07-04 Guobiao Zhang Fractional-Bit Systems
US7167109B2 (en) 2005-03-31 2007-01-23 Chenming Hu Hybrid fractional-bit systems
JP2007066375A (ja) 2005-08-30 2007-03-15 Sony Corp ホログラム記録装置、ホログラム記録方法
CN101405811B (zh) * 2006-01-20 2012-01-04 马维尔国际贸易有限公司 具有编码和信号处理的闪存
US7844879B2 (en) 2006-01-20 2010-11-30 Marvell World Trade Ltd. Method and system for error correction in flash memory
US7420841B2 (en) 2006-08-30 2008-09-02 Qimonda Ag Memory device and method for transforming between non-power-of-2 levels of multilevel memory cells and 2-level data bits
KR100766042B1 (ko) 2006-12-06 2007-10-12 삼성전자주식회사 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치
US20080192544A1 (en) * 2007-02-13 2008-08-14 Amit Berman Error correction coding techniques for non-volatile memory
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US7742335B2 (en) 2007-10-31 2010-06-22 Micron Technology, Inc. Non-volatile multilevel memory cells
US7848142B2 (en) 2007-10-31 2010-12-07 Micron Technology, Inc. Fractional bits in memory cells
KR100857252B1 (ko) 2007-12-27 2008-09-05 (주)인디링스 마모도를 비트 수준에서 평준화하는 플래시 메모리 장치 및플래시 메모리 프로그래밍 방법
US8255758B2 (en) 2008-01-21 2012-08-28 Apple Inc. Decoding of error correction code using partial bit inversion
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8910002B2 (en) * 2009-08-24 2014-12-09 OCZ Storage Solutions Inc. NAND flash-based storage device with built-in test-ahead for failure anticipation
US20150348633A1 (en) * 2010-02-11 2015-12-03 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of programming nonvolatile memory devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003123486A (ja) * 2001-09-28 2003-04-25 Stmicroelectronics Srl マルチレベル不揮発性メモリ内にデータを記憶および読み出す方法、並びにそのアーキテクチャ
JP2005100527A (ja) * 2003-09-25 2005-04-14 Matsushita Electric Ind Co Ltd 半導体不揮発性記憶装置
JP2009524152A (ja) * 2006-01-20 2009-06-25 マーベル ワールド トレード リミテッド 符号化及び信号処理機能を有するフラッシュメモリ
JP2011526398A (ja) * 2008-07-02 2011-10-06 モサイド・テクノロジーズ・インコーポレーテッド 極性制御部を有するセル当たり複数ビット(mbc)不揮発性メモリ装置およびメモリシステムとその書込み方法
US20100125701A1 (en) * 2008-11-18 2010-05-20 Ki Tae Park Multi-Level Non-Volatile Memory Device, Memory System Including the Same, and Method of Operating the Same
US20100315873A1 (en) * 2009-06-15 2010-12-16 Samsung Electronics Co., Ltd. Nonvolatile memory device and related programming method
JP2011065599A (ja) * 2009-09-18 2011-03-31 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US8645794B1 (en) * 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019153118A (ja) * 2018-03-05 2019-09-12 東芝情報システム株式会社 評価解析対象メモリ装置及びメモリ評価解析システム

Also Published As

Publication number Publication date
US20170162258A1 (en) 2017-06-08
TWI516035B (zh) 2016-01-01
US20150179263A1 (en) 2015-06-25
DE112014005810B4 (de) 2022-05-25
JP6145220B2 (ja) 2017-06-07
CN105793927A (zh) 2016-07-20
DE112014005810T5 (de) 2016-10-06
US9799397B2 (en) 2017-10-24
CN105793927B (zh) 2018-06-08
TW201528692A (zh) 2015-07-16
KR20160079055A (ko) 2016-07-05
US20160012883A1 (en) 2016-01-14
US9613686B2 (en) 2017-04-04
KR101885976B1 (ko) 2018-08-06
DE112014005810B8 (de) 2022-08-04
US9171624B2 (en) 2015-10-27
US20150179265A1 (en) 2015-06-25
US9230655B2 (en) 2016-01-05
WO2015094452A1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
JP6145220B2 (ja) アナログメモリセルにおけるセル当り非整数個のビットを用いたデータ記憶の管理
US10157013B2 (en) Efficient readout from memory cells using data compression
US8261159B1 (en) Data scrambling schemes for memory devices
US8495465B1 (en) Error correction coding over multiple memory pages
US8645794B1 (en) Data storage in analog memory cells using a non-integer number of bits per cell
US8830746B2 (en) Optimized threshold search in analog memory cells using separator pages of the same type as read pages
US9070453B2 (en) Multiple programming of flash memory without erase
US8773904B2 (en) Optimized threshold search in analog memory cells
US20150317203A1 (en) Code-Based Read Control for Data Storage Devices
US20230034098A1 (en) Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170512

R150 Certificate of patent or registration of utility model

Ref document number: 6145220

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