JP2012109012A - 固体記憶素子及び方法 - Google Patents

固体記憶素子及び方法 Download PDF

Info

Publication number
JP2012109012A
JP2012109012A JP2011279012A JP2011279012A JP2012109012A JP 2012109012 A JP2012109012 A JP 2012109012A JP 2011279012 A JP2011279012 A JP 2011279012A JP 2011279012 A JP2011279012 A JP 2011279012A JP 2012109012 A JP2012109012 A JP 2012109012A
Authority
JP
Japan
Prior art keywords
memory
data
symbols
memory cell
symbol
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
JP2011279012A
Other languages
English (en)
Other versions
JP5496993B2 (ja
Inventor
Kenneth J Eldredge
ケネス ジェイ エルドリッジ
Arken Steven P Van
アーケン スティーブン ピー ヴァン
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.)
Benhov GmbH LLC
Original Assignee
Benhov GmbH LLC
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 Benhov GmbH LLC filed Critical Benhov GmbH LLC
Publication of JP2012109012A publication Critical patent/JP2012109012A/ja
Application granted granted Critical
Publication of JP5496993B2 publication Critical patent/JP5496993B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/5628Programming or writing circuits; Data input 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/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
    • 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/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】フラッシュメモリデバイスを用いてデータを記憶及び検索するための方法及びシステムを提供する。
【解決手段】フラッシュメモリに装置が含まれる。本フラッシュメモリには、複数のメモリセルが含まれ、各メモリセルは、デジタル記憶の実現に用いるための電荷蓄積容量を有する。装置には、書き込み動作及び読み出し動作において各メモリセルにアクセスする処理装置が含まれる。更に、各メモリセルに対する複数のデータ値定義用の目標電荷レベルを付加するようプロセッサに指示するための命令セットが含まれる。目標電荷レベルは、電荷蓄積容量に対してプログラムにより可変である。
【選択図】図1

Description

本発明は、一般的に、デジタルデバイス構造に関する。特に、本発明は、固体記憶素子を含むデバイス用のデジタルシステム構成及び関連する方法に関する。
電子デバイスの流行を認識するには、現代社会の任意の公共の場を実質的に簡単に調べるだけでよい。そのようなデバイスには、携帯電話、音楽プレーヤ、ポータブルコンピュータ、携帯情報端末、ポケベル、デジタルカメラ、デジタルカメラ一体型ビデオ、パーソナルゲームデバイス、及び電子書籍が含まれるが、これらに限定されない。少なくとも部分的にデジタル化への動きに帰するこれらのデバイスに存在する性能については、継続的な改善が見られる。
将来の電子デバイスに関する要請には、性能の更なる改善と結びついた更なる小型化が含まれる。特に関連する領域は、益々増大しつつある量のデジタル情報を記憶したいという要望にある。膨大な量のデジタルデータを記憶するニーズに対処しようとして、設計者は、電子メモリを、特に、フラッシュメモリの形態で次第に用いるようになっている。この解決策は、MP3プレーヤを含む最先端技術の音楽プレーヤの例で明らかである。
記憶装置のサイズを小さく維持しつつデータ記憶量を大きくしようする試みにおいて、現在のフラッシュメモリ技術の中には、単なる2進数の1及びゼロの記憶とは対照的に、多数のデータレベルを単一のメモリセル内に記憶できるものがある。しかしながら、多数のデータレベルを単一のメモリセル内に記憶可能な場合、フラッシュメモリは、読み出し及び書き込み動作実施時、誤りが起き易くなる。また、単一メモリセル内において多数のデータレベルを利用する従来のフラッシュ技術は、通常、2の偶数乗に対応する数のレベルの記憶に限定される。
本明細書で記載する内容は、何らかの不利な点を解決する実施形態や、上記したような環境でのみ機能する実施形態に限定されない。むしろ、この背景は、本明細書に述べる幾つかの実施形態を実践し得る1つの代表的な技術領域を示すためだけに提供する。
これらの及び他の制限は、フラッシュメモリデバイスを用いてデータを記憶し検索するためのシステム及び方法に関する本発明の実施形態によって克服される。
一実施形態例では、フラッシュメモリ構成内に装置が含まれる。本フラッシュメモリ構成には、各メモリセルがデジタル記憶の実現に用いるための電荷蓄積容量を有する複数のメモリセルが、含まれる。本装置には、書き込み動作及び読み出し動作の際にメモリセルの各々にアクセスするように構成された処理装置が含まれる。本装置には、更に、メモリセルの各々に対する複数のデータ値定義用の目標電荷レベルを付加するようプロセッサに指示するための命令セットが含まれる。目標電荷レベルは、電荷蓄積容量に対してプログラムにより可変であり、一実施形態において、目標電荷レベルによって定義された独特なデータ値の数は、2の非整数乗である。
この一般的なアプローチの変形版を更に示す。例えば、他の実施形態において、命令セットは、電荷蓄積容量間の電荷の量を累進的に増加させることを特徴とする複数の電荷層から構成される電荷層構造を確立する。各電荷層は、記憶値及び電荷量を定義する電荷値に関係する。電荷層構造を構成する電荷値は、プロセッサによってプログラムにより可変である。
本発明は、更に、誤り訂正及び補正を実施するように構成されたメモリデバイスに関する。また、例えば、本発明の一実施形態において、セルアレイデバイスを用いることが可能なフラッシュメモリ構成に関するが、この場合、セルアレイデバイスは、異なるセルアレイデバイス間で変動する性能特性に関連する。フラッシュメモリ構成には、セルアレイデバイスにアクセスして、セルアレイデバイスの性能特性の値を確立するように構成された制御配列を有する装置が含まれる。制御配列は、更に、セルアレイデバイスに引き続きアクセスし、性能特性の値に基づき、補正を行うように構成されている。補正は、例えば、上記したように、複数のデータ値を定義するための或る範囲の目標電荷レベルがメモリセルに含まれる場合に用いられる。読み出し及び書き込み動作を実施する場合、制御配列は、性能特性の値に部分的に基づき、訂正された目標電荷レベルを確立するように構成される。
本発明の他の実施形態は、誤り検出及び訂正を実施する際に用いられる性能特性を決定するための方法及びシステムを提供する。例えば、一実施形態において、フラッシュメモリ構成には、各メモリセルがデジタル記憶の実現に用いるための電荷蓄積容量を有する複数のメモリセルが含まれる。各メモリセルには、そこに記憶される複数のデータ値を定義するための目標電荷レベルが含まれる。メモリセルからの読み出し及びメモリセルへの書き込みの内の少なくとも一方の間に用いられる補正データを生成するための方法を開示する。本方法には、メモリセルを較正するために用いられるパターンコードデータからなる所定の情報パターンを識別する段階が含まれる。パターンコードデータは、メモリシンボルに変換され、この場合、メモリシンボルの各々は、目標電荷レベルの内の1つを識別する。メモリシンボルは、メモリシンボルによって特定された目標電荷レベルをメモリセルに適用することによって、メモリセル内における既知の位置に書き込まれる。
メモリセルを較正する場合、本発明の一実施形態では、既知の位置にあるメモリセル内に記憶された電荷レベルを検知することによって、メモリセル内における既知の位置からメモリシンボルを読み出す。メモリシンボルは、比較コードデータに変換され、比較コードデータは、既知の位置に書き込まれた元のパターンコードデータと比較される。この比較は、差異値を決定するために用いられ、差異値は、性能特性を計算するために用い得る。性能特性は、誤り検出及び訂正を実施する場合、メモリセルに対する後続の読み出し及び書き込み時、用いられる
この概要は、詳細な説明において更に以下に記載する概念の選択を簡単な形態で導入するために提供する。この概要は、権利を主張する主題の主要な特徴又は本質的な特性を特定しようとするものではなく、また、権利を主張する主題の範囲の決定の補佐として用いることも意図していない。
本発明の他の特徴及び利点については、以下の説明に記載するが、部分的には、説明から明らかになり、あるいは、本発明の実践によって習得される。本発明の特徴及び利点は、添付の請求項において特に示す手段及び組合せによって、実現される。本発明のこれらの及び他の特徴は、以下の説明及び添付の請求項から更に充分に明らかになるであろう。あるいは、本明細書において以下に記載する本発明の実践によって習得される。
本発明の上記及び他の利点及び特徴を更に明確にするために、添付図面に示したその具体的な実施形態を参照して、本発明の更に特定の説明を行う。これらの図面は、本発明の代表的な実施形態を示すだけであり、従って、その範囲を限定すると見なさないことを認識されたい。本発明について、添付図面を利用して、更に具体的に且つ詳細に説明し記述する。
コントローラ及びメモリデバイスを含む固体記憶素子例を示す図。 記憶媒体にデータを書き込む方法の一例を示す図。 記憶媒体からデータを読み出すための方法の一例を示す図。 記憶媒体からデータを読み出す際に補正用の根拠を形成する情報を生成するための方法の一例を示す図。 記憶媒体にデータを書き込む際に補正用の根拠を形成する情報を生成するための方法の一例を示す図。 それぞれメモリシンボルエンコーダの例及びメモリシンボルデコーダの例を示す図。 それぞれメモリシンボルエンコーダの例及びメモリシンボルデコーダの例を示す図。 メモリセル記録の3つの変形版のグラフの例を示す図。 メモリセル記録の3つの変形版のグラフの例を示す図。 メモリセル記録の3つの変形版のグラフの例を示す図。 図1に示すコントローラに実装された数列エンコーダの例及びデコーダの例を示す図。 図1に示すコントローラに実装された数列エンコーダの例及びデコーダの例を示す図。 メモリセルの様々な状態及びデータ値に関連付けられた目標電荷値を示すグラフ。 関連するメモリセルから読み出された未補正値を表すメモリセルに記憶された電荷値を示すグラフ。
以下の好適な実施形態の詳細な説明では、本明細書の一部を形成する添付図面を参照する。また、図面では、説明のために、本発明を実践する具体的な実施形態を示す。他の実施形態を用い得ること、及び本発明の範囲から逸脱することなく構造的な変更を行い得ることを理解されたい。
システム
さて、図1に着目すると、これは、全般的に100で示したシステム及びその様々な構成要素の一実施形態例のブロック図である。このシステム100は、本明細書において、固体記憶素子SSSE又はS3Eと称することがある。図1の部位は、データのプログラミング(即ち、書き込み)及び読み出し用機能の基盤であるデータ経路及び制御配列要素を示す。図示したシステム全体には、コントローラ102及び少なくとも1つのメモリデバイス104が含まれる。複数のメモリデバイス104を有するシステムでは、各メモリデバイスは、システム用の記憶媒体の一部を構成する別々のデバイスであってよい。一例において、各メモリデバイス104は、個々の半導体チップ上に形成してよい。対照的に、複数のメモリデバイス104は、単一の半導体チップ上に形成してもよい。
後で分かるように、固体記憶素子100は、データ記憶媒体、ホスト接続性、及びデータ記憶、データ検索、及び記憶媒体の最適な使用に必要な様々な管理機能のための方法が含まれる複数の集積回路デバイス(ハードウェア)で構成される。一実施形態において、構成要素集積回路は、複数の固体記憶素子メモリデバイス(S3Eメモリデバイス)104及び単一の固体記憶素子コントローラデバイス(S3Eコントローラデバイス)である。記憶媒体用の1つの適切な技術は、NANDフラッシュである。しかしながら、他の不揮発性記憶技術も同様に適用可能である。他の選択肢としての記憶媒体の例としては、MRAM(磁気ランダムアクセスメモリ)、PRAM(相変化ランダムアクセスメモリ)、及びMEMS(マイクロ電気機械)式媒体に基づく記憶媒体が挙げられる。他の適切な記憶媒体技術も特定し得るが、既存のものやまだ開発中のものもある。これらの様々な技術を用いるメモリセルに共通することは、アナログ形式で情報を記憶するメモリセルの能力にある。即ち、これらのデバイスは、一般的に、オン/オフ又はデジタルデバイスとしてあまり特徴付けられていない。従って、本開示の文脈での電荷レベルを使用することは、自然な例示と見なされる。
システム100は、マイクロコード(ファームウェア)106及び可変記憶用の付加メモリを備えたマイクロコントローラ102を含まれる。システム100は更に、アドレス指定論理を含み、これにより、マイクロコントローラ102上で走るファームウェア106は、コントローラ102論理部と通信を行うことができ、またその動作を制御できる。マイクロコードは、不揮発性記憶媒体に記憶される。本例では、マイクロコードは、コントローラ中の不揮発性メモリに記憶されるが、そのようなマイクロコードを記憶するための不揮発性記憶媒体は、コントローラ102及び複数のメモリデバイス双方に対して外付けであっても、1つ又は複数のメモリデバイス内にあってもよい。
ファームウェア106は、コントローラ102によって実施される全ての動作を連係させ制御するマイクロコントローラ命令(即ち、マイクロコード)の集合である。全てのコントローラ102部は、マイクロコントローラ・サブシステム108とのインターフェイスを有し、これらインターフェイスは、読み出しフロー、書き込みフロー、較正、並びに実施例において要求される他の全ての機能を実行する状況で、各部のハードウェアを制御するためにファームウェア106によって用いられる。これら個々のインターフェイスは、説明図を分かり易くするために図示していないが、当業者は認識されるように、様々な部位との通信を実現する。
フラッシュインターフェイス制御110は、コントローラ102と複数のメモリデバイス104との間のインターフェイスの非データ部を構成する制御論理及び信号112を生成する。この部位からの信号112は、例えば、チップ選択、クロック、動作コード、アドレス情報、及びメモリデバイスインターフェイスを動作させるための所定の実施例で要求されるいずれか他の特定の信号を含み、メモリデバイス104との1つ又は複数のインターフェイス上で物理的な制御ラインを実現する。制御論理及び信号の生成において、フラッシュインターフェイス制御110は、このすぐ後に記載するように、転送制御114と協働する。
転送制御114は、複数のメモリデバイス104と読み出しフロー及び書き込みフローを連係して働かせるのに必要な機能を提供する。転送制御114の1つ又は複数の具体例は、実際の設計において実現される。複数の転送制御114は、複数のメモリデバイス104の1つ又は複数での読み出しフロー、書き込みフロー、又は読み出しフロー及び書き込みフローの組合せの同時動作を可能にする。各転送制御114は、マイクロコントローラ・サブシステム・インターフェイス118及びファームウェア106によって制御され、フラッシュインターフェイス制御110と共に動作する。転送制御114は、フラッシュインターフェイス制御110に接続し、フラッシュインターフェイス制御のサービスを要求する。1つの転送制御114及びフラッシュインターフェイス制御110を組み合わせた機能は、メモリデバイス104とコントローラ102それ自体との間でデータブロックをブロック毎に転送することである。転送制御114の他の例については、説明図を分かり易くするために図示していないが、他の例は、単一の例の動作と同様に機能する。
読み出し処理動作
以下の節では、読み出し処理の間にコントローラ102によって実行されるブロック毎の処理について記載する。一実施例において、ホストとメモリデバイス104との間の転送は、一連の単一ブロックの転送として起こる。尚、ホストは、説明図を分かり易くするために示さないが、ホストインターフェイス116に接続される。
例示した実施形態において、複数のメモリデバイス104は、各々、フラッシュアレイ118を含む。各フラッシュアレイ118は、複数の記憶セルを含むが、これらは、本明細書では、個別にメモリセルと呼ぶことがある。フラッシュメモリにおいて、各メモリセルは、一般的に、電荷蓄積ゲート構造を備えたFET(電界効果トランジスタ)である。
本実施形態例において、メモリデバイス104の各々には、更に、メモリシンボル読み出しモジュール122(後述)とフラッシュアレイ118(上述)との間のインターフェイスを提供するための1つ又は複数のセンス増幅器120が含まれる。ほとんどの実施例は、複数のセンス増幅器120を特徴とし、センス増幅器120の数及び配列は、メモリデバイス実施例に依存する。センス増幅器120の機能は、フラッシュアレイ118の1つのメモリセルの状態をサンプリングすること、及び検知された状態の表示をそれぞれのメモリシンボル読み出しモジュール122のそれぞれの入力に提示することである。
各メモリデバイス104には、フラッシュアレイ118に記憶された情報を検出し、また、記憶された情報を表すメモリシンボルをコントローラ102に送信するメモリシンボル読み出しモジュール122がある。例示した実施形態において、アナログ−デジタル(A/D)変換器124は、メモリシンボルがデジタル形式でコントローラ102に転送されるように、メモリシンボル読み出しモジュール122の一部を形成する。他の実施形態では、メモリシンボル読み出しモジュール122及び関連するA/D124は、アナログラインがセンス増幅器120からコントローラ102を接続するように、コントローラ102内に配置される。尚、メモリシンボルは、手元にあるメモリ媒体用に選択された一組の値又はレベルの内の1つに対応し得る値を有する構成体である。この組の値又はレベルは、「アルファベット」と称することがある。
1つ又は複数の組のメモリシンボルは、更に記載するように、所定のコントローラ102の実施形態に含まれる。コントローラ102は、1つ又は複数のメモリデバイス104が接続されたインターフェイス128からメモリシンボルを受信し、これらの記号を符合シンボルに復号する。各符合シンボルは、符合シンボルアルファベットの1単位と見なされる。符合シンボルの文字列は、復号処理用の特性が与えられた符号化情報を表す。復号処理は、メモリシンボルエンコーダ130に対して、後に記載するそれと逆であってよい。基数kの数列は、符合シンボル列に変換される。メモリシンボルデコーダ126を離れる際、符合シンボルは、何らかの適切な方法で、例えば、2進数ビットストリーム又はバイト等の2進数ベースの数値のストリームによって、表現される。メモリシンボルデコーダ126は、メモリシンボルから符合シンボルへのマッピングを実現することを認識すべきである。メモリシンボルは、メモリセル用に定義される識別レベルの数に基づき、2の非整数乗を表し得る。もちろん、書き込み動作は、後記するように、符合シンボルからメモリシンボルへのこのマッピングの逆を実現する。記憶システム100は、定義可能な又は選択可能な基数を有し得る。また、基数は、2の整数乗である必要はない。
メモリシンボルデコーダ126からの符合シンボルは、コントローラ102/メモリデバイスインターフェイスに取り付けられた複数のメモリデバイス104に対してコントローラ102により実施される較正ステップによって生成された情報に基づき、任意に調整される。本明細書に記載する誤り訂正方式に関しては、これらの方式は、個別に又は任意の所望の組合せで用いられることを認識すべきである。更に、同様に適用可能であって、少なくとも潜在的に、例えば、通信理論技術又はディスクドライブ技術から適合される他の方式も存在し得る。この点において提示されたこととして、不揮発性フラッシュメモリに関する最先端技術は、本明細書において明らかにされたタイプの誤り訂正の必要がないように、読み出し及び書き込み動作に関して高い精度を実現することに帰する。しかしながら、本開示は、これらに限定するものではないが、個々のメモリセルに更に大量の情報を記憶する能力を含む実質的な恩恵を提供して、そのような高い絶対的記録/再生精度を強化する必要性を無くする。
較正ステップの更なる詳細について、1つ又は複数の該当する点を以下に記載する。この点に関して、以下に記載する図4及び5は、それぞれ書き込み及び読み出しフローの一実施形態を表し、これによって、較正処理は、事後補正モジュール132によって用いられる選択されたメモリデバイス104の挙動に関するパラメータデータを得ることができる。較正フロー中に生成された較正情報は、引き続き、メモリシンボルデコーダ126から流れる受信符合シンボルストリームに適用することができる。一実施形態において、事後補正132記号調整は、全記号ブロックに渡って実施される。各記号の調整は、固有の記号毎調整の組合せであったり、記号ブロック全体に渡って一定の調整値であったり、予測可能に変動する調整値であってよい。事後補正132記号調整を決定する方法は、コントローラ102に取り付けられた各メモリデバイス104の根底にあるメモリ技術の特定の特性に従って変わり、また、カスタマイズし得る。更に、事後補正132調整は、デバイス毎のベースでもカスタマイズし得る。
本実施形態には、更に、事後補正モジュール132又はメモリシンボルデコーダ126から符合シンボルのストリームを受信するための、また、符合シンボルをデータ記号に変換するための数列検出器134が含まれる。符合シンボルは、数列検出器134を一度に1ブロック通過するが、このことは、入力符合シンボルストリームが、データブロックサイズ及びコードのレートの一次関数である既知の長さを有することを意味する。数列検出器134は、反復復号アルゴリズムを実現する。従って、所定のデータブロックは、後で詳細に記載するように、数列検出器134を2回以上通過する。数列検出器134によって生成されたデータ記号は、ユーザデータシンボルであるが、これらのシンボルは、部分的な誤り訂正処理のみが、この時点までにそれらに対して実施されたという観点から「汚れている」と見なされる。
順次相関方式の実施例の場合、一般的に、任意の所定のメモリセルの内容は、少なくとも1つの他のメモリセルの内容に基づき解釈される。従って、読み出し動作中、誤り確率は、一組の正規のデータ値の内の特定の1つに対応して読み出される値に関連付けられる。任意の適切な方式を用いて、順次相関を課してもよい。現在利用可能な方式には、例えば、ビタビ検出器、サーパー(H.Thapar)及びパテル(A.Patel)、「磁気記録の記憶密度向上のための部分応答システムのクラス」、IEEE会報、磁気学、第23巻5、3666−3668頁、1987年に記載された検出器が含まれ、この文献は、本明細書に参照によって組み込まれる。1つ又は複数の該当する点について、以下に更に説明を行う。
本例のシステム100には、更に、パリティ情報で以前符号化されたユーザデータに誤り訂正を行うためのLDPC(低密度パリティチェック)デコーダ136が含まれる。LDPCの例は、本明細書に参照により組み込まれる、ガライア(Gallagher)、「低密度パリティチェックコード」、MIT出版会、1963年、マッケイ(David J.C.MacKay)、「情報理論、推論、及び学習アルゴリズム」、ケンブリッジ大学出版会、2003年に記載されている。LDPC符号化は、書き込み処理中に実施されるが、これについては、更に詳細に後記する。LDPCデコーダ136は、反復デコーダであり、このため、デコーダによって処理される情報の各ブロックは、本実施形態で最大値として定義された反復回数まで繰り返し処理される。入力データは、LDPCパリティが含まれる符合シンボル形態のユーザデータである。出力は、ユーザデータシンボルのみである。出力ユーザデータシンボルは、それらの誤り含有量が、入力符合シンボルのそれより小さいように、LDPC復号処理によって「浄化」されている。
書き込み処理中に、LDPC符号化処理には、パリティチェック行列と称される数学構造を用いた、受信ブロックの情報(例えば、データビット)に関するパリティの計算が含まれる。LDPC配列には、2進数情報を伴うことから、符号化される予定の各ブロックのユーザデータは、一連の2進数ビットとして処理される。パリティチェック行列をLDPCパリティ計算に適用すると、計算しなければならない各パリティビットに対してデータメッセージの中の語として選択された複数のビットを用いる一組の論理式の解が得られる。パリティチェック行列の配列によって要求される全てのパリティビットは、計算後、符号化処理への入力であったユーザデータブロックに付加される。
読み出し処理の間、組み合わせられたユーザデータとLDPCパリティとは、数列検出器134から受信される。一実施形態において、数列検出器134は、雑音及び歪みから生じる受信データの誤りを特定及び修正するが、数列検出器134から返されるユーザデータ及びLDPCパリティに残留誤りが依然として存在し得ることが予想される。LDPCデコーダ136は、他の誤りを訂正するように、受信したユーザデータ及びLDPCパリティに作用する。復号化動作は、符号化処理の逆と同様であり、語としての複数のデータビット及びLDPCパリティビット双方を用いた論理式の逆の計算に基づき、データビット値の推定を伴う。この演算には確率を伴うことから、各計算の結果は、各計算に対する可能な結果の集合によって支配され、従って、復号処理は、1つの計算から次の計算へ確率を持ち越す処理である。このため、復号処理は、元来反復性のものであり、従って、LDPCデコーダ実装により、受信ユーザデータ及びLDPCパリティのブロックにおける誤りの発見及び修正において複数の反復を実施し得る。
本システム100には、更に、ECC(誤り訂正コード)デコーダ138が含まれ、これは、一例の復号処理における最終ステップである。ECCデコーダ138への入力には、ECCパリティ記号が付加されたブロックの情報を含むユーザデータシンボルストリームを含む。ECCエンコーダ144の詳細については、1つ又は複数の該当する点に関して、書き込み処理の説明と共に以下に記載する。出力は、正常な復号によりエラーの無いデータになる程度に「清浄な」データである。エラーの無い状態が、ECCデコーダ138によって達成できない場合、エラー状態は、適切なエラー取り扱い処理を行い得るように、信号伝達される。本出願のECC誤り検出方式の実現については、本開示の恩恵により、当業者が、ECC及びLDPC復号及び符号化部位に関する本明細書で参照されるような機能を提供できると考えられる。
本例のシステム100には、更に、ECC復号処理の間にLDPCデコーダ136から送られたユーザデータ記号を保持するために、ECCデコーダ138と協働して用いられるデータステージングメモリを含むFIFO(先入れ先出し)モジュール140が含まれる。LDPCデコーダ136がデータブロックの処理を終了すると、そのデータブロックは、FIFO140に転送される。FIFO140は、ECCデコーダ138がそれを処理している間、データ用の保持領域としての役割を果たす。ECCデコーダ138は、FIFO140の各データブロックを解放して、バッファ142に転送する責任を負っている。ECC復号処理が、LDPCデコーダから転送されたユーザデータブロックの一部としてユーザデータの誤りを特定した場合、訂正が、FIFO140に行われる。ユーザデータの各ブロックは、そのブロックのECC復号処理が完了した後、FIFO140からバッファ142に転送される。
本システム100には、更に、データセキュリティを保証する1つ又は複数の機能を含み得るセキュリティモジュール146が含まれる。読み出し処理では、その目的は、メモリデバイス104から読み出されるデータを復号することである。セキュリティモジュール146が、使用不能である又は存在しない場合、読み出しデータフローは、FIFO140から直接バッファ142に至る。セキュリティ機能が使用可能である場合、データフローは、FIFO140からセキュリティモジュール146に至り、そして、セキュリティモジュール146からバッファ142に至るが、これについては、この直ぐ後に記載する。セキュリティモジュール146が使用可能である場合、セキュリティモジュールへの入力データは、暗号化されたユーザデータであり、出力は、復号されたユーザデータである。任意の適切な復号処理を用いてよく、これに限定するものではないが、AES(高度暗号化方式)を含み、現在利用可能な又は未だ開発中のものであってもよい。この時点で他の該当する機能を実現し得ることを認識されたい。例えば、ユーザを認証し、キーを生成し、キーを保護し、他の実体とキーを交換する等のサポート機能があってもよい。
メモリバッファ142は、ホスト(図示せず)との間で受け渡されるユーザデータブロック用のステージング領域として機能する。バッファ142は、ホストとコントローラ102との間の転送用の及び複数のメモリデバイス104で進行中の書き込み及び読み出し処理用の速度整合及び同期メカニズムとして機能する。当業者は、この開示全体を考慮して、そのような機能を容易に提供されるであろう。
ユーザデータは、ホストへ送られる前に、バッファ142からホストインターフェイス116に転送される。該当する実施形態には、一般的に受け入れられたホストインターフェイス用の仕様及び規格に準拠する少なくとも1つのインターフェイスが含まれる。用い得るホストインターフェイスの例としては、ATA、USB、シリアルATA(SATA)、セキュアデジタル(SD)、コンパクトフラッシュ(登録商標)(CF)等が挙げられる。
書き込み処理動作
以下の節では、書き込み転送中にコントローラ102によって実行されるブロック毎の処理について述べる。書き込みデータは、(ホストインターフェイス116を介したホストからバッファへの転送の結果として、バッファ142に書き込まれて)バッファ142で起こり、符号化されたデータが1つ又は複数のメモリデバイス104のセルに書き込まれるプログラミングステップによって、終了する。
メモリバッファ142は、ある程度詳細に上記したが、書き込み処理の場面では、ホストから渡されたユーザデータブロック用のステージング領域として、同じ様に機能する。この場合、バッファ142は、処理されるユーザデータの出所であり、コントローラの書き込み処理の結果として、メモリデバイス104に最終的に書き込まれる。
読み出し動作に関して上記したように、セキュリティモジュール146には、データセキュリティを保証するために用いられる一組の機能が含まれる。その用途は、任意であり、この点においては、図1の本例のシステム100が配備される特定の製品の用途及び書き込み動作が実行される状況に依存する。セキュリティモジュール146が使用不能である又は全く存在しない場合、書き込みデータフローは、バッファ142からECCエンコーダ144に直接向かう。他方、セキュリティモジュール146が使用可能である場合、データは、バッファ142からセキュリティモジュール146に流れる。セキュリティモジュール146への入力データには、非暗号化ユーザデータのブロックを含んでよく、また、セキュリティモジュールによって出力されたデータには、暗号化されたユーザデータのブロックを含み得る。現在利用可能な又は未だ開発中の任意の適切な暗号化処理は、これに限定するものではないが、高度暗号化方式(AES)を含む復号化処理と協働して用いられる。
一実施形態において、ECCエンコーダ144は、第1符号化ステップを実行する。バッファ142から転送されたデータは、ユーザデータであり、ECCエンコーダ144は、ユーザデータブロックに基づき決定される一組のパリティシンボルを添付する。ECCエンコーダ144からの出力には、ユーザデータシンボルのブロック及び一組のECCパリティシンボルを含む。全体的な書き込みフローにおいて、ECCエンコーダ144によって生成されたECCパリティシンボルは、後続のステップによってユーザデータの一部と見なされる。この場面では、任意の所定のデータブロックについて、ユーザデータ記号とECCパリティシンボルとの連結は、LDPCエンコーダ148(後記)及び数列エンコーダ150によって、単一のユーザデータ記号ストリームと見なされる。少し異なる表現をすると、ECCパリティ記号は、本実施形態では、ユーザデータそれ自体の処理と同じようなやり方で、下流の構成要素によって処理される。
一実施形態において、LDPCエンコーダ148は、一組のECCパリティシンボルを備えたユーザ記号のブロックとして、ECC符号化ユーザデータを受信し得る。LDPCエンコーダ148は、LDPCパリティを計算し、ECCエンコーダが用いられていると仮定すると、ECCエンコーダ144から受信されたユーザデータシンボル及びECCパリティシンボルのブロックに付される。LDPCエンコーダ148からの出力は、一組のLDPCシンボルが付加された受信データ記号の組(ユーザデータ及びECCパリティ)である。LDPC符号化は、一回の通過で実施し得るため、復号処理とは対照的に、一実施形態において、LDPC符号化は、多数の反復の可能性を伴わない。
LDPCエンコーダ148の符号化処理には、パリティチェック行列と称する数学構造を用いた、受信ブロックの情報(データビット)に関するパリティの計算を含む。LDPC配列には、2進数情報を伴うことから、符号化される予定の各ブロックのユーザデータは、2進数ビット列として処理される。パリティチェック行列をLDPCパリティ計算に適用すると、計算しなければならない各パリティビットに対してデータメッセージの中の語として選択された複数のビットを用いる一組の論理式の解が得られる。パリティチェック行列の配列によって要求される全てのパリティビットは、計算された後、符号化処理への入力であったユーザデータブロックに付加される。ユーザデータビット及びLDPCパリティビットの結果的に生じる組合せは、LDPCエンコーダ148からの出力である。
一実施形態において、ECCエンコーダ144及びLDPCエンコーダ148からのECC/LDPC符号化ユーザデータは、数列エンコーダ150によって、一連の符合シンボルに変換される。数列エンコーダ150は、用いられると、入力データシンボルを逐次相関が与えられた一組の符合シンボルにマッピングする。これによって、符号化されたデータには、限定的であるが明確な方法で、各シンボルの値が、少なくとも1つの他の記号に依存するという特性が与えられる。従って、再読み出し時、復号処理は、ECC/LDPC訂正方式に加えて追加の訂正層として、メモリデバイス104との書き込み及び読み出し処理中に取り込み得る或る割合の雑音及び誤りを分離することが可能である。他の詳細については、図8の説明と共に以下に記載する。
一実施形態において、数列エンコーダ150から出力され(符号化ユーザデータ及びECCパリティ並びにLDPCパリティを含む)符合シンボルは、メモリシンボルエンコーダ130によって、メモリシンボルのストリームに変換される。メモリシンボルは、特定のメモリデバイス104の特定の構成に適用される一組の可能なシンボルの一員である。多種多様な組のシンボルが実現される。一実施形態において、メモリデバイス104の記憶セルは、有限数のレベルの1つを記憶するように構成されている。
従来のシステムでは、そのようなメモリセルは、2の偶数乗に対応する限定された数のレベルを記憶するように構成されている。本発明の一実施形態では、メモリセルは、2整数乗を表す場合もそうでない場合もある任意の数のレベルを記憶するように構成されている。例えば、特定のメモリデバイス104のセルの幾つかが、(検知し得る7つの独特な対象レベルから構成される)7つの独特なレベルを記憶するように構成されている場合、本構成中の各メモリセルは、7の基数の数値を記憶する。従って、この構成には、7つの可能なメモリシンボルがあり、各々、本構成の7つの可能な対象レベルの内の1つに対応する。これらのレベルを互いに区別するために、6つの識別境界を、所定のメモリセルにおいて利用可能な或る範囲の電荷に課すことを認識されたい。メモリセルの電荷を確立し読み出すハードウェアのアクセス解像度は、各セルの最大基数を確立することを認識されたい。アクセス解像度に依存して、対象レベルの数は、後記するように、実質的に制限なく増大し得る。
メモリシンボルエンコーダ130の機能は、メモリデバイス104及びメモリセル構成に対して定義された識別レベルの数と整合するやり方で、一連の符合シンボルを一連のメモリシンボルに変換することである。本処理は、kを現メモリデバイス構成においてサポートされる対象レベルの数とすると、2進数ビット又はバイト等の2進数ベースの記号のいずれかが含まれる入力記号のストリームを基数kを有する桁のストリームに変換する処理になる。尚、kの値は、システム実施例内において変わることがあり、従って、メモリシンボルエンコーダ130の1つの特性は、所定のkの値によりメモリシンボルを生成するその性能であってよい。kは、所定のシステム実施形態内において、メモリデバイス104毎に変動することを認識すべきである。更に、kは、個々のメモリデバイス140のメモリアレイに適用される際、変動し得る。例えば、メモリアレイの異なる領域には、異なるkの値を割り当て得る。
符合シンボルからメモリシンボルへ及びメモリシンボルから符合シンボルへの変換は、対象レベルの数の関数である。メモリセルに記憶される単位は、適用可能なメモリセルが構成される対象レベルの数を基数として有する実質的に単一桁の数である。
本システム100において、各メモリデバイス104は、メモリシンボルエンコーダ130からメモリシンボルのストリームを受信するためのメモリシンボル書き込みモジュール152を含んでおり、それらの値をフラッシュアレイ118にプログラムするか書き込む。上記したメモリシンボル読み出しモジュール122と同様に、メモリシンボル書き込みモジュール152は、コントローラ102に動かすことも可能であり、何らかの適切なやり方で、コントローラ102とメモリシンボル書き込みモジュール152との間で機能的に分散してもよい。
図2は、データを記憶媒体に書き込む方法200の一実施形態を示す。本例では、方法200の結果として転送される最小量のデータが、1ブロックであり、この場合、ブロックの長さは、512バイトであるが、512バイト掛ける2の整数乗であってもよい。従って、フロー中のステップは、ブロック長単位に対して行われる処理ステップを表す。他のブロックサイズを用い得ること、及びブロック形態でデータを転送する絶対的な必要性はないことを認識されたい。
図1のシステム図は、コントローラ102と一体化されたセキュリティ機能を示すが、図2に示す本例の方法は、説明を分かり易くするためにセキュリティ機能を省略することを基に簡素化したものである。しかしながら、そのようなセキュリティモジュール146は、図1の図に容易に組み込まれる。以下の説明は、外の点では、示した部位に関連し、従って、図1と共に解釈されたい。
図1と共に、図2において、書き込み処理は、「開始」点で始まり、「終了」点で完了する。「開始」点において、ユーザデータブロックは、書き込み命令における1つのステップの結果としてバッファ142に置かれているが、この書き込み命令によって、書き込み命令に関連するユーザデータは、ホストインターフェイス116からホストによって送出されバッファ142に転送される。ホストインターフェイス116の特定の実施形態は、この処理の詳細を決定するが、この処理は、本開示の範囲を越えると思われる処理であり、また、当業者によって良く理解されている処理である。尚、データ転送を伴う様々なステップは、必要に応じて、マイクロコントローラ・サブシステム108によって実施し得る。
ステップ202において始まる方法200には、バッファRAMからデータシンボルを読み出す段階が含まれる。一実施形態において、データシンボルを読み出す段階には、バッファ142からECCエンコーダ144にユーザデータ記号のブロック(バイト)を転送する段階を含み得る。
方法200には、更に、ステップ204において、バッファ142からユーザデータ記号を読み出し、ユーザデータシンボルを処理し、ECCパリティを含む一組の追加のデータ記号を付加する段階が含まれる。ECC符号化実施の結果は、ユーザデータシンボルのブロック及び一組のECCパリティ記号である。従って、出力シンボルの数は、ECCパリティ記号の数だけ入力シンボルの数を超過することがある。
ECC符号化ステップ204によって生成された一組のユーザデータ及びECCパリティシンボルは、ステップ206に示したように、LDPC符号化方式を用いて符号化される。LDPC計算は、一般的に、入力が、ストリームシンボルであるよりもむしろビットのストリームであるという観点によるが、シンボルは、ビットの集合として処理される。LDPC符号化ステップ206は、全組のユーザデータブロックシンボル及びECCパリティシンボルについてパリティを計算する。計算の結果は、データフローにおいて、一組の追加のシンボルとして表される追加の組のLDPCパリティビットである。従って、このステップの出力は、一組のECCパリティシンボルが付加されたユーザデータシンボルのブロックであり、このECCパリティシンボルには、更に、一組のLDPCパリティシンボルが付加される。
方法200には、更に、ステップ208において、LDPC符号化ステップ206から出力されたシンボルのストリームが、符合シンボルに符号化すべきデータシンボルのストリームとして全体的に扱われる数列符号化段階が含まれる。従って、入力ストリームは、符合シンボルのストリームに符号化されるが、この場合、符号化処理が、逐次相関を行う。この符合シンボルのストリームは、元のユーザデータを表わしたものであり、これは、メモリデバイス104に記憶される。
数列符号化ステップ208によって生成された符合シンボルは、210に示した事前補正ステップ時、様々な性能特性に則って監視され調整される。例えば、性能特性は、例えば、センス増幅器120に対する物理的なセルのオフセットの関数として記憶メモリセル値に生じる抵抗効果等の、予測可能な方法で媒体に書き込まれる全てのデータに当てはまる特性及び挙動であってよい。他の選択肢として、性能特性は、フラッシュメモリにおける「最隣接」効果と関係するパターン依存効果に当てはまる特性及び挙動であってよい。
本例の方法において、事前補正ステップ210時適用される手順は、用いられる特定の種類のメモリデバイス104用の全ての媒体において不変である。この手順には、それらの用途用の特定の組の規則及びプロトコルを含む。他の実施形態では、ステップ210で適用される事前補正規則は、同じである可能性のあるメモリデバイス104を用いる場合でも、メモリデバイス104毎に可変である。この後者の場合、カスタマイズした事前補正を各メモリデバイス104に適用してもよい。
一実施形態において、ステップ210には、(可能性として、製造中)事前の較正処理を前提とするカスタマイズした事前補正が含まれるが、これによって、例えば、コントローラ102は、それが取り付けられる記憶媒体に関する関連情報を収集する。これには、非限定的な例として、既知のパターンをメモリに書き込む段階と、パターンを読み戻す段階と、既知の入力に対する応答を解析する段階と、また、その後、その差異に関する関連情報を抽出する段階を伴う。一実施形態において、事前補正機能は、メモリ中のデータの物理的及び論理的構成を予想するやり方で、補正値を計算し符合シンボルに適用する。このようにして、各メカニズムについて誤りが生成され得ることに対する具体的な理由にある原理を詳細に理解せずに、多種多様な繰り返し可能な誤り生成歪みメカニズムを事前補正に供し得る。所定のメカニズムを詳細に理解すると、追加の処理入力を提供して、更に、そのような事前補正データの読み戻し中に遭遇し得る誤りの確率を低減することができる。
1つ又は複数の性能特性を確立する段階を通して、性能特性に基づく所定のメモリセルの予測応答を確立する。実際の書き込み動作中、予測応答に基づき、所定のメモリセルの目標電荷値の確立に関係する電荷出力パラメータを調整することによって、一回の用量の電荷を所定のメモリセルに出力可能であり、これにより、実際の電荷値が、一回の用量の電荷によって所定のメモリセルに生成されるが、この実際の電荷値は、少なくとも近似的に目標電荷値に等しい。電荷出力パラメータは、非限定的な例として、時間間隔持続時間、電流値、又は電圧値であってよい。逆に、従来のシステムでは、ステップ毎の処理が、一般的に用いられ、これによって、セルの電荷量は、それが増大して目標値に近づくにつれて、チェック及び再チェックされる。このことは、メモリセルに正しい電荷量を確立する際、有効であるが、この技法は、元来遅く、これによって、データ処理能力に制約が生じる。
方法200には、更に、212において、メモリシンボルを符号化する段階が含まれる。一実施形態において、メモリシンボルを符号化する段階には、ステップ210において事前補正を適用して又は適用することなく、数列符号化ステップ208によって生成された符合シンボルを入力として受信する段階が含まれる。この入力は、一組のメモリセルに直接表現し得る記号のストリームに変換される。NANDフラッシュを用いるシステムの一実施形態例では、NROM技術に基づき、この処理は、代表的な一実施形態では、対応するビットストリームとして符合シンボルストリームを処理して、更に後記するように、そのビットストリームを離散的な電圧レベルのストリームによって表現し、その後、メモリセルに適用できる単位に構文解析する。上記したように、メモリセルにおけるレベルの数は、2の非整数乗であってよいことから、この処理は、単にビットストリーム全体を一連のより小さい多ビット単位に分割するより少なくとも若干複雑なことがあり、実際には、全ての情報を適切に効率的な方法でメモリにマッピングするように、端数のビット境界に沿って、入力ビットストリームを一組のより小さい多ビット単位に分割する必要がある。
方法200には、更に、ステップ214において、メモリシンボルをメモリに転送する段階が含まれる。一実施形態において、メモリシンボルをメモリに転送する段階には、選択されたメモリデバイスに常駐するメモリにステップ212で計算されたメモリシンボルを転送する段階を含む。この処理には、コントローラ102とメモリデバイス104との間のインターフェイスを介して、選択されたメモリデバイスに一度に1つの記号を提示する段階を含む。そして、選択されたメモリデバイス104は、ステージング領域に情報記号を蓄積する。メモリシンボルは、メモリデバイス104のメモリシンボル書き込みモジュール152に充分な量が一旦蓄積されると、メモリデバイスそれ自体の技術及び実施形態に合致する方法でメモリに適用される。従って、具体的な詳細は、既知であり、本開示の範囲を超えるものと思われる。
次に、図3において、300で指す方法例を示す。一般的に、方法300は、記憶媒体からデータを読み出すために用いられるステップの例を示す。本例の方法300では、転送されるデータの最小量は、1ブロックであり、この場合、ブロックの長さは、512バイトであってよいが、512バイト掛ける2の整数乗であってもよい。従って、フローステップは、ブロック長単位で実施される処理ステップを表す。方法300は、メモリデバイスから単一ブロックのユーザデータを読み出し、それをバッファ142に置くために用いられるステップに対応し、この場合、それは、ホストインターフェイス116を介してホストに転送し得る。nブロックの読み出しには、このフロー図をn回通過する必要がある。
図1に示すシステム100は、コントローラ102と一体化されたセキュリティモジュール146を示すが、図3に表すフローは、説明を分かり易くするために、セキュリティモジュールを図示していないことに基づき簡素化したものであるが、これは、図1の図に容易に組み込まれる。以下の説明は、それ以外の点では、図1と共に示し選択した部位に関する。
方法300は、ステップ302で始まり、ある数のパラメータに基づき、記憶媒体からメモリシンボルを読み出す。例えば、読み出されるシンボルの数は、ユーザデータブロックのサイズ、他の符号化レベルにより追加されたオーバーヘッドの量、及びメモリシンボルアルファベットのサイズによって、決定される。これらのパラメータの幾つかは、本実施形態の関数として変動するが、一実施形態では、動的にも変動する。この点に関して、メモリシンボルデコーダ126は、一実施形態において、複数の符合シンボルアルファベットで動作するように構成され、この場合、構成それ自体は、ファームウェア106によって決定し選択し得る。例えば、1つの構成は、基数7アルファベットで動作するが、他の構成は、基数9アルファベットで動作する。可能な構成の数は、メモリシンボルエンコーダ130及びメモリシンボルデコーダ126を実現する設計上の特徴である。
方法300は、304に示したように、メモリシンボルを符合シンボルに変換する。一実施形態において、メモリシンボルを符合シンボルに変換する段階には、各メモリセルから読み出されるレベルのアナログからデジタルへの変換を伴う。一実施形態では、デジタル形式への変換は、メモリデバイスからコントローラ102へのラインがデジタル形式になるように、メモリデバイスにおいて行うことができる。他の実施形態では、デジタル変換は、メモリデバイス104からコントローラ102に延在するラインが、センス増幅器120からの信号を実質的に搬送するアナログラインであるように、コントローラ102において行うことができる。
本例の方法300には、事後補正ステップ306が含まれるが、これは、図2に示す書き込み処理の事前補正ステップ210と類似している。事後補正ステップ306が用いられる場合、歪みメカニズムは、例えば、事前補正ステップを実施することが実現可能又は効率的でなければ、後処理によって対応できる。訂正値又はプロトコルの原則も、上述の事前補正に類似している。例えば、既知の不変の効果又は事前の較正処理から収集される情報は、事後補正ステップ306時に用いてよい。
本例の方法300には、更に、ステップ308において、事後補正ステップ306の結果として、事後補正された符合シンボルのストリームの数列復号処理段階、又は他の選択肢として、事後補正が用いられないステップ304から直接発する段階が含まれる。尚、このステップ308は、数列の復号には必要でなく、逐次相関を用いない一実施形態では、データストリームを直接復号し得る。一実施形態において、数列復号ステップ308は、符合シンボルストリームをデータ記号ストリーム(これは、メモリ書き込み/読み出し処理からの雑音及び歪み効果によって破損し得る)に変換する。一実施形態において、数列復号ステップ308は、反復性であり、即ち、1つ又は複数の処理ステップが、必要に応じて繰り返され、符合シンボルのストリームからデータ記号のストリームを得ることができる。方法300は、数列復号ステップ308において反復ループ310を示すことによって、この可能性を考慮する。反復判断基準は、個々の実施形態で実現される数列コード化方法に依存する。例えば、数列復号処理が、単一の反復タイプの処理であれば、「実行される」判断基準310は、常に真である。
数列復号ステップ308からのデータ記号は、受信後、ステップ312に示すように、LDPC復号方式を用いて復号される。入力には、「汚れている」ユーザデータシンボル(1ブロック)、一組のECCパリティシンボル、及びLDPCパリティを表す一組のシンボルを含む。用語「汚れている」によって、現在の処理対象である情報が、現在呼び出されている訂正メカニズムによって訂正可能な誤りを含み得ることを意味する。逆に、清浄なデータは、少なくとも実際的な見地からは、もはや現在呼び出されている訂正メカニズムによって訂正可能ではない。
LDPCステップ312は、復号処理と共に、一組のパリティビットとして扱われるLDPCパリティを用いて、「汚れている」データにある誤りを見つけて訂正する。この処理は、反復ループ314によって示すように、反復性であってよく、また、もう一回通過させるという各反復における判断は、幾つかの判断基準のいずれかに基づく。例えば、この判断基準は、少なくとも部分的に、処理されているデータに残っている誤りの数の間接的な目安に基づく。データが、何らかの処理動作後、清浄になると、チェックを行って、このことを検証することができる。幾つかの稀なケースでは、清浄化処理をストールする様々な種類のデッドロックが起こることがあり、これらの場合、最大反復回数を適用して、処理を異常終了してよいが、この場合、エラー処理ステップが、本フローの次のステップである。
本方法300には、更に、ステップ320において、一組のユーザデータビット及び一組のECCパリティビットを含む入力に対してECC復号を実施する段階が含まれる。ステップ312において、LDPC復号処理が実施された場合、LDPCパリティシンボルは、シンボルストリームの一部ではなく、従って、ECCデコーダに到着する情報だけが、ユーザデータそれ自体(依然として汚れている)及びECCパリティビットである。ECC復号ステップ320は、少なくとも潜在的に、LDPC復号ステップ312によって捕獲されないあらゆる最終的な誤りを訂正するように機能する。
ECC復号ステップ320では、判断322において、3つの結果の内の1つが生じ得る。最初に、訂正可能な誤りが検出されるが、これは、324に示すように、方法300が誤りを訂正するように進むことを意味する。一実施形態において、訂正を行う段階には、ECC誤りベクトルを計算する段階と、ECCの分野において、当業者には馴染みのある方法で、ベクトルを入力データ記号に適用する段階と、が含まれる。誤り訂正を実施した後、方法300は、ステップ326に示すように、データ記号がバッファに転送される所に進む。
次に、ECC復号ステップ320では、誤りが検出されないことがあるが、これは、LDPC復号ステップから送られるデータシンボルが清浄であったこと、また、その時点で、そのように認定されていることを意味する。従って、方法300は、ステップ326に示すように、データシンボルがバッファに転送される所に直接進む。
ステップ326では、バッファに転送されるデータシンボルは、清浄である。この理由は、ECC復号ステップ320を完結する事前の復号ステップが、少なくとも誤りが検出可能である限り、結果的に生じるデータにエラーの無いことを保証しているためである。この時点では、フローの唯一の情報は、ユーザデータ記号のブロックである。事前のステップに関与する全てのオーバーヘッド情報は、もはや必要ではない。このユーザデータのブロックは、バッファ142に転送され、ここで、ホストインターフェイス116を介したホストへの後続の転送に利用可能になる。
第3に、ECC復号ステップ320では、ECC訂正計算が修正されるより多くの誤りが、ユーザデータ及びECCパリティにおいて検出される。この結果により、異常終了及びエラー処理ステップ328に抜けることが必要になる。
次に、図4において、後の補正用の基礎を形成する情報を生成するための方法400の例を示す。一実施形態において、この情報の生成には、メモリセルに書き込まれ、そして、読み戻される所定のパターンを用いる。事前補正は、データ書き込みフロー(例えば、図2の方法200)の一部であり、事後補正は、データ読み出しフロー(例えば、図3の方法300)の一部である。いずれの場合でも、事前補正及び事後補正の一部として、書き込み及び読み出しフロー中にデータシンボルに適用された情報は、図4に示す手順等の較正手順から取得し得る。
方法400は、402に示すように、書き込みステップが適用される特定のページのデータを選択することによって始まる。一実施形態において、メモリのページとは、1ブロックのデータのサイズに対応するメモリの物理的なレイアウトを意味する。較正は、記憶されるデータのページに対して、様々なやり方で実施される。最終的には、どのページを書き込むかという方法は、マイクロコントローラ・サブシステム108(図1参照)上で実行されるファームウェア106において実現される。個々のページは、例えば、アドレス値を確立することによって指定し得る。
方法400には、更に、ステップ404において、較正されるメモリデバイスに既知の情報パターンを書き込みデータとして適用する段階が含まれる。特定の組のメモリパターンを用いることができ、また、それらの選択は、事前及び/又は事後補正に用いるためのデータを返すように設計された特性の選択に基づき得る。パターン符合シンボルは、ハードウェア、ファームウェア、又は両者の組合せにより、アルゴリズム的に生成し得るという事実によって、普通のデータ符合シンボルと区別し得る。
方法400には、更に、ステップ406において、パターン符合シンボルをメモリシンボルに変換する段階が含まれる。例えば、図1の及び更に図6で詳細に記載するメモリシンボルエンコーダ130は、符合シンボルの変換に用い得る。一実施形態において、パターンは、一組のデータ記号から生成されるが、この場合、各記号は、目標電荷レベルによって表される(図7で更に詳際に記載する)。他の実施形態は、一組のデータ記号に対する拡張からパターンを生成するが、この場合、目標電荷レベルの総数は、一組のデータ記号のみにおける電荷レベルの数より大きい。一組のデータ記号の拡張部には、他の目標電荷レベルを含むが、これらは、データ記号に対応する所定の対象レベル間の中間値である。他の実施形態では、データに用いられる同じ組の符合シンボルから排他的にパターンを生成する。
方法200には、更に、ステップ408において、メモリシンボルをメモリに転送する段階が含まれる。メモリシンボル書き込みモジュール152は、メモリセルに負荷される予定の対応する電荷レベルにメモリシンボルを変換する。
図5は、他の方法の一例であって、500で指すが、後の補正用の基礎を形成する情報を生成するための方法を示す。方法500は、図4に示す較正書き込みフロー方法400と共に用いられる。較正読み出しフロー方法500は、事前補正及び事後補正の実施に用いられる情報を生成するために、較正書き込みフロー方法400によってメモリに書き込まれたパターンを調査する。事前補正は、データ書き込み方法200(図2)の一部であってよく、事後補正は、データ読み出し方法300(図3)の一部であってよい。
方法500は、較正データが読み出される特定のページを選択することによって始まり、ステップ502に示す。一実施形態において、方法500は、較正データが、選択されたページに記憶され、また、そのページから入手可能なように、選択されたページが、較正書き込み方法400(図4)を適用することによって前に書き込まれたと想定される。
方法500には、更に、ステップ504において、メモリからメモリシンボルを転送する段階が含まれる。例えば及び一実施形態では、メモリシンボルのページをメモリシンボルデコーダ126に返す選択されたメモリデバイス104における選択されたページの場合、コントローラ102が、処理を行う。
方法500には、更に、ステップ506において、前のステップ504中に得られた各メモリシンボルを、コントローラ102の残りの部分によってそのように認識可能な符合シンボルに変換する段階が含まれる。一実施形態において、このステップ506は、図1のメモリシンボルデコーダ126を用いるが、これについては、図6において詳細に記載する。持ち込まれた誤りにより、このステップから得られる符合シンボルは、較正書き込み方法400(図4)時に元々転送されたものと同じである場合もそうでない場合もある。
方法500には、更に、ステップ508において、対応する読み出しパターンとの比較を実施できるように、事前の較正書き込み方法400(図4)の間にメモリデバイス104へ書き込まれたコードパターンを再生する段階が含まれる。対応する読み出しパターンは、書き込まれた時と同じパターンを有すべきであることから、方法500時にそのパターンを生成するハードウェア及びファームウェア機能は、較正書き込み方法400の一部として、そのパターンを生成したものと同じものであってよい。
方法500には、更に、510において、ステップ506で生成された一連のパターン符合シンボル(メモリに記憶されている実際のデータを表す)を、ステップ508で再生されたパターン符合シンボル(書き込まれたデータパターンに対応する)と比較する段階が含まれる。この比較は、データ書き込み方法200(図2)時の事前補正及びデータ読み出し方法(図3)時の事後補正に最終的に用いられる情報源である。差異値は、各再生シンボルをメモリデバイスから受信された各対応する符合シンボルと比較することによって生成し得る。
そして、差異値は、ステップ512に示すように、補正基準を計算するために用いられる。差異データ値は、様々な方法で用いられ、最終的には、歪み及び雑音メカニズムから導出できるが、このメカニズムは、データパターンそれら自体の関数及び符合シンボルのブロック数列全体に対する符合シンボルにおけるビットの相対的な位置の関数である。即ち、これらの歪み及び雑音メカニズムは、繰り返し可能な性能特性を表し、従って、補正可能である。このように、ステップ512は、前のステップからの差異値と、メモリデバイスに書き込まれた元のコードパターンとのそれらの関係とを解析する。この解析の結果は、各符合シンボル位置に対応する補正量を計算することであってよい。従って、このステップでは、この結果は、各符合シンボルに付随する補正量である。
ステップ514において、補正計算からの結果は、複数のメモリデバイス104の1つ又は複数に存在するデータ構造に分類したり、任意の適切な位置に記憶したりしてよい。この特定のデータ構造は、較正フローが適用された各ブロックのために蓄積された基準の集団であってよい。この集団プロセスには、特定のメモリデバイス技術及び事前/事後補正判断基準により変わる幾つかのアプローチが含まれる。これらの判断基準には、(1)特定の符合シンボルに関連する補正オフセット、(2)ページ内における符合シンボル位置に関連する補正オフセット、及び(3)較正差異データから計算されるページ内での記号位置の関数としてページ全体に当てはまる符合シンボルオフセットが含まれるが、これらに限定されない。
上記(1)の場合、その効果は、幾つかの符合シンボルに起こり他のものには起こらない歪みの発生に関係する。例えば、メモリセルに適用される目標電荷レベルの範囲において、より高い目標電荷レベルにまで記憶すると、読み戻し時検知された際、予想より低いレベルが返されるが、これは、目標とする電荷レベルで発生する予測可能な歪みメカニズムによる。上記(2)の場合、その効果は、ページ内におけるメモリセルの位置の関数として起こる歪みに関係する。(2)の例は、センス増幅器と検知される特定のメモリセルとの間の抵抗である。上記(3)の場合、その効果は、ページの関数として適用するメモリセル差異に基づく。即ち、検知されたメモリセルに対するオフセットは、特定のページにより変わる。更に、複数の各メモリデバイス104間において、各メモリデバイス内におけるメモリブロック位置の関数として、補正オフセットも変動することがあり、従って、データ構造は、複数のメモリデバイス104をデバイス毎に区別する分断構造を有し、また、データ構造は、そのメモリデバイス内の根底にあるブロック構造により、特定のメモリデバイス内の各ブロックを区別する。一実施形態において、オフセットは、識別レベルの正しい又は基礎値を指すプラス又はマイナス値である。言い換えると、オフセットは、特定のセル又は複数のセルにおける1つ又は複数の識別レベルの電荷変動を特徴付ける。オフセットは、例えば、メモリシンボル領域において適用される。
較正処理は、複数のメモリデバイス104上で利用可能なデータページの一部に対する既知のデータパターン書き込み及び読み出しの結果として、補正情報を蓄積する。これは、メモリデバイス104の全ての利用可能なデータページの一部を用いて補正情報を生成することによって、また、補正情報に基づきデータページの全組に対して一般化することによって、較正フローの実行時間を最小にしようとする一実施形態を表す。このアプローチは、データページの選択されたサンプルが、データページの全体を統計的に表すのに充分である場合に効果的であることを認識されたい。しかしながら、他の実施形態は、較正を実行して、複数の各メモリデバイス104における全てのページに基づき、補正情報を生成する。いずれにせよ、事前/事後補正が実施されるデータは、それ自体、事前に確立することができ、そして、その後、読み出し及び/又は書き込み動作時、アサートされる。
一般的に、メモリセルは、与えられたアレイにおいて又はメモリデバイス毎に、互いに同じように見えることがある。しかしながら、メモリセルは、メモリセルからの読み出し及び/又はそれらへの書き込みにおいて、1つ又は複数の繰り返し可能な性能特性に関して、互いに対して変動する。本明細書で示した補正は、メモリセルの配列にアクセスして、少なくとも1つのメモリセルに関する性能特性を特徴付けて、選択されたセルアレイデバイスのメモリセルの配列の性能特性の実際の値を確立する段階に基づいてよく、また、実際の性能特性の値に基づき、選択されたセルアレイデバイスに引き続きアクセスするためであってよい。性能特性は、異なる性能特性の値を異なるメモリセルによって生成できるように、任意の所望の数のメモリセルを用いて測定及び生成される。従って、1つのメモリセルは、1つの性能特性の値に基づきアクセスされる一方で、異なるメモリセルは、異なる性能特性の値に基づきアクセスされる。
更に、任意の数の異なる性能特性は、補正処理に用いるために測定し得る。コントローラ102に複数のメモリデバイス104が接続される場合、異なる性能特性の値は、メモリデバイス104の異なるものに対応して測定され、その後、補正目的のために適用される。本明細書に記載したように、補正は、書き込み動作時の事前補正として及び/又は読み出し動作時の事後補正として、適用される。尚、上記したように、事前補正及び事後補正は、双方共、同じデータに実施される。事前補正は、データに実施されるが、これは、メモリデバイス104へのその書き込みに先立って実施され、事後補正は、データに実施されるが、これは、それをメモリデバイス104から読み出した後実施される。様々な実施形態では、事前補正だけ又は事後補正だけ、又は事前補正及び事後補正の双方を実施する。
事前補正の応用及び動作の例として、メモリセルの配列は、読み出し動作においてアクセスして、特定のセルによって記憶されている現電荷量を確立し、この現電荷量は、実際のデータ値に関連付けられる。性能特性が、特定のセルに適用される際、測定されたとすると、特定セルの訂正データ値は、訂正データ値が、性能特性の影響を訂正するための実際のデータ値とは異なる場合、現電荷量及び測定された性能特性の値に基づき確立される。
事後補正の応用及び動作の例として、セルの配列は、所定の電荷量が読み出し動作時存在する場合、任意の所定の1つのセルにおける所定の電荷量に関連付けられた所定のデータ値を特定のセルに書き込むために、書き込み動作においてアクセスする。書き込み動作は、所定のデータ値に関連する所定の値を有する書き込みパラメータの使用に基づく。有用な書き込みパラメータの例には、時間、電圧及び電流が含まれるが、このことは、これらのいずれもが、書き込み動作に応じて、メモリセルに最終的に記憶される電荷量に影響を及ぼすためである。しかしながら、特定のセルに書き込まれる実際の電荷量は、性能特性の変動に比例して変化する。従って、書き込みパラメータが調整され、また、書き込みパラメータの異なる又は調整された値が、性能特性に基づき用いられ、これにより、特定のセルに確立される実際の電荷量は、所定のデータ値に対応する所定の電荷量に更に厳密に整合する。
図6a及び6bに示した2つの図は、メモリシンボルエンコーダ130及びメモリシンボルデコーダ126における技法を示し、これによって、メモリ媒体に記憶されたシンボルは、それぞれ符号化及び復号される。これらの処理は、任意の所定の実施形態における目標電荷レベルの数(図7において更に詳細に記載する)に関して調整でき、これにより、メモリシンボルエンコーダ130によって生成され、メモリシンボルデコーダ126によって復号されたメモリシンボルは、図7の場合で記載するように、エンコーダ及びデコーダが適用される全ての可能なメモリデバイス構成の目標電荷レベルの数と整合する。
図6aにおいて分かるように、メモリシンボルエンコーダ606は、符合シンボルのブロック602を入力として受信し、メモリシンボルのブロック604を出力として生成する。本質的に、図6aは、2進数の符合シンボルドメインからメモリシンボルドメインへの変換を表す。符合シンボルのブロック602は、数値基数が2の整数倍であるn記号列の桁として処理される。実施形態は、mを1以上とすると、各ブロックのデータを記号当りmビットの記号列として受信し得る。m=1の場合、各受信記号の基数は、2であり、mが1より大きい場合、各mビット記号の基数は、2mである。m=1以上の入力記号の全ての表現は、実際の実施形態では、同様に有効である。このステップの出力は、記号のブロック604であり、ここで、pは、基数qを有する記号のブロック長であり、また、qの有効な値は、2以上の整数である。各シンボルsは、(最も近い整数に丸められた)ビットから構成され、あるいは、各シンボルは、q個のアナログレベルの1つを有する単一の信号として表現される。即ち、各メモリシンボル604は、目標電荷レベルの数によって代表されるメモリセル中の電荷の固有値に対応し、必ずしも、利用可能な符合シンボル602の数とメモリシンボルの数との間に1対1の対応関係が存在するとは限らない。
図6bに示すように、メモリシンボルデコーダ608は、メモリシンボルのブロック610を入力として受信し、符合シンボルのブロック612を出力として生成する。この機能は、一連のメモリシンボル610を符合シンボルのストリーム612にマッピングする点において、メモリシンボルエンコーダ606によって実施される機能と逆である。メモリシンボルのブロック610は、数値列として表され、これによって、各々、数値基数qを有し、q個の可能なレベルの内の1つの値を有する単一の信号によって、又は、(最も近い整数まで丸められた)2進数桁から構成される記号によって表し得る。出力は、nmビット記号のブロックである。出力記号数列における各々は、図3の説明で記載したように、符合シンボル612であり、mの値は、1以上の整数である。
図7a−cは、3つの形態のメモリ毎セル記録を示す。各図の水平軸は、記憶された電荷の大きさに対応し、一方、垂直軸は、電荷の特定の又は目標の値を達成するための確率に対応する。図7a−cの3つの全ての形態は、電荷の目標値でメモリセルに記録される情報を記録しようとする試みから生じ得る確率パターン又は潜在的な電荷分布表現を示す。非限定的な例として、図7a−cの各々は、情報を記憶するための所定のメモリセルの全電荷範囲容量の潜在的用途を表す。情報記憶容量の具体的な量は、見て分かるように、各図で増加する。
図7aにおいて、各セルは、メモリデバイスを構成するメモリセルの物理的な設計によって暗示される最大範囲内にある最小及び最大の実際の電荷レベルによって特徴付けられる。最大と最小との間の差は、メモリセル用の電荷の有用な範囲と見なされ、一組のレベルT1−T4を用いて適用され、破線として示す。レベルT1−T4の各々は、一組の識別レベルd1−d4で分割する。本例では、各レベルT1−T4は、メモリセルに対して可能な最大と最小レベルとの間にあり、一般的に、目標電荷レベルは、互いに等間隔に配置し得る。メモリセルは、これら2つの両極端な値間にある任意の目標電荷レベルにプログラムし得る。即ち、各セルは、メモリセル内の目標電荷値の1つを達成するように電荷を負荷し得る。これを行う際、セル内の電荷量は、所定の1つの目標電荷レベルと相関する電荷の或る範囲内に入る。電荷確率曲線又は分布P1−P4は、各目標電荷値に関連する特定のセルにおいて達成し得る記録レベルの確率分布を表す。分布の目標電荷レベルは、少なくとも近似的に、確率分布を規定する曲線の中心にある。
各セルは、いずれか所定の時点で、唯1つの目標電荷レベルに達するようにプログラムされる。しかしながら、複数のレベル(本例では、4つ)の内の任意の1つを選択でき、また、複数含まれるレベルの数は、特定のメモリデバイス104(図1)の特性及び構成及びコントローラ102によって提供される一組の処理によって決定される。従って、各電荷確率分布P1−P4は、図7の電荷蓄積構成が4つの固有の値を記憶し、これによって、2進数項の2つのビットに対応することが可能なように、所定の目標電荷レベルでセルに負荷をかけようとする時、実際に生じる可能な電荷の範囲を表す。
図7aについて全般的に記載したが、次に、他の細目について、それが提供する記憶容量に関して記載する。図7aは、4つのレベルを示すが、4より大きい又は少ない他のレベル数も異なる実施例において選択し得る。図7aの構成において、各電荷レベル又は範囲L1−L4が、電荷バッファ差(CBM)を示す明瞭な差だけ最も近い隣接レベルから離間されていることを観察することは興味深い。各曲線P1−P4は、目標識別レベル(d1−d4)に対してサンプルの予想確率分布を表す。特定のセルの記録レベルを検出する際、検知される値は、図示した曲線の内の1つに落ち着くことによって、その目標電荷値に充分に近いと予想され、隣接する電荷範囲間に存在する広い電荷バッファ差の結果として、どの電荷範囲が、実際に表されるかに関するあいまいさの可能性が除外される。従って、目標電荷値間の大きな相対的離間は、他の問題解決メカニズムを必要とせずに、記憶されたデータを取り込む際の信頼性を保証する。言い換えれば、任意の所定の値の電荷の検出は、特定の識別レベル(d1−d4)に一意的に関連付けられる。従来のシステムの意図は、主に、メモリセルの電荷の特定の値を読み出す処理に関連する特定のデータ値に関するあいまいさの可能性を完全に回避することである。
次に、図7bにおいて、変更された用途のメモリセル電荷範囲を示すが、これは、図7aの例に用いられたものと同じメモリセルが用いられる。図7aと比較して、1つの相違点として、同じ利用可能な電荷範囲に分布した更に多くの識別レベル(d1−d7)が存在している。従って、電荷確率曲線P1−P7は、本質的に同じに、即ち、水平の電荷軸に沿って同じ幅で見える。しかしながら、このことにより、図7aの図示内容より曲線が互いに近くになるように、CBMを低減する必要がある。各目標電荷値に関連付けられた確率分布は、その最隣接のもの(1つ又は複数)の確率分布と重なり合わないが、目標レベル間の差の低減により、各曲線が、その関連する識別値に極めて近く、従って、読み出し処理の精度が当然高くなることを意味する。この点に関して、事前補正及び事後補正処理は、歪みメカニズムを補正することによって、検知レベルの精度を維持するように機能する。
図7bによって示さない効果は、エージング及び高温効果を含む様々な物理的な処理によって、識別レベルが、両軸に沿って位置を変ることである。これらの変化は、一方では、エージング及び温度に関連する処理による図7a−7cに示す分布のx軸に沿う左方シフトにより特徴付けられる。他の物理的な処理によって、図7a−7cの分布形状が、y軸に関して平坦になることがある。これらの変化は、潜在的にデータ誤りの追加的原因であり、これは、補正及び誤り訂正の恩恵に浴し得る。
引き続き図7bにおいて、7つの識別レベルには、関連する目標電荷値が提供される。これは、2の非整数乗に対応することを認識されたい。上記したように、本明細書に述べたコントローラ102は、この構成に容易に対応する。各目標電荷値が記号に関連付けられる場合、メモリセルに関する限り、これをデジタル形式で表現することに対する制約は存在しない。もちろん、記号の数が2進数形式にマッピングされる場合、充分な数のビットを用いなければならない。本例では、3ビットが必要である。
次に、図7cにおいて、メモリ電荷セル範囲の更に変更した用途を示すが、これもまた、図7a及び7bにおいて用いられた同じメモリセルを用いる。本例には、他の2つの構成のいずれよりも更に多くの識別レベルが存在する。具体的には、10の識別レベルd1−d10、目標電荷値T1−T10、及び関連する電荷確率曲線P1−P10を示すが、これらは、10の記号に対応する。また、2の非整数乗が、記号の数として用いられる。重要なこととして、この時点で、確率電荷曲線は、電荷確率曲線の隣接するもの間の重なり合う範囲(OL)において読み出される電荷値が、位置d1−d10の観点では、あいまいに限定された程度に重なり合う。言い換えれば、CBMは、この時点で、負の値を有する。本例では、OLの指定された位置について、電荷値がT1又はT2に対応すると解釈すべきであるかどうかは、不確定である。
図7c構成から得られた読み出しサンプルのほとんどは、依然として、それらがどの識別レベルを表すかについて、あいまいさが存在しないように構成されているが、水平の電荷軸上の重なり合う領域の占有領域内に入る或る割合の電荷サンプルは、この時点では、それらが対応すべき電荷確率曲線に関して、不確定である。理論的な見地からは、重なり合う占有領域は、隣接目標電荷値間の距離の半分に近づき得る。このように、所定の電荷値読み出しを正確に解釈する確率は、50%を超える正確さで可能である。
実際の見地からは、考慮すべき精度と記憶容量との間には釣り合いがある。導入されたあいまいさを示す量は、一組の目標電荷値の特定の確率分布によって決定される。図7cに示す構成に関しては、従来のシステムは、通常、隣接する電荷確率曲線間の識別が可能である点において、ほぼ絶対的な精度を必要とする。本明細書に示した概念によれば、記憶された情報の信頼性は、確率分布における重なり合いにかかわらず、本明細書の教示内容により維持される。特に、この信頼性は、コントローラ102(図1)における連続符号化/復号(図8)、LDPC符号化/復号(図1)、及びECC符号化/復号(図1)機能を利用して、独立に又は適切な組合せのいずれかで生成される。即ち、これらの訂正処理は、連続的に符号化及び復号処理やLDPC及びECC(図1)の誤り訂正処理を用いて、発生する偏差を発見し訂正する。
図1及び図7a−cを全体的に参照すると、多数の恩恵が、本明細書の教示内容を実行することによって提供される。まず認識されたいことは、図7a−cの識別レベル及び目標電荷値並びにこれによりCBMが、ソフトであることである。即ち、これらの値は、処理構成を制御するための図1のファームウェア106を用いて確立し得る。従って、これらの値は、容易に自由に変更される。隣接目標電荷値と隣接識別値との間において、本例では、図1のメモリシンボル読み出し122及びメモリシンボル書き込みモジュール152の能力によって確立される最小電荷間隔に対して、制限があってよい。隣接識別レベル間のこの最小電荷間隔は、読出しアクセス解像度(RAR)と称され、これに対して、隣接目標電荷値間の最小電荷間隔は、書き込みアクセス解像度(WAR)と称される。これらの2つの形態のアクセス解像度は、協働して全体的なデバイスアクセス解像度を規定するが、これは、2つの内の小さい方であってよい。従って、各メモリセルのデータ容量を確立するファームウェア命令は、プログラム可能な方法で、異なるデータ容量に容易に切り替えられる。データ容量の上限は、少なくとも部分的に、WAR及びRAR値に基づく。特定のWAR値と特定のRAR値との間の連係は、デバイスアクセス解像度及び電荷層と称されるものになる。例えば、図7cによって示された構成は、10の電荷層を表す。特定の容量及び電荷層構造を確立する際、デバイスアクセス解像度は、メモリセルの電荷範囲又はメモリセルの範囲に段階的に適用されることを認識されたい。
図7a−cにおいて、所定の識別レベル又は目標電荷値は、「ソフト」であり、命令セットによって動かすことができる。図7a及び7bの比較において、T1及びd1は、双方共、図7bにおいて、電荷の低い値に移動することが分かる。それらの値は、図7cにおいて、更に小さい量の電荷に対応する。他の能力として、電荷層の総数は、自由に変更し得る。例えば、図7aから図7cに進むと、電荷層の追加が表現される。逆方向に進むと、もちろん、電荷層の削除を表す。任意の所定のセルの電荷層構造をプログラムにより変更する能力により、注目に値する程度の柔軟性が提供される。このプログラム可能な能力を通して、所定の構成のハードウェアを用いて、多種多様な電荷層構造を実現される。一例として、このプログラム可能性は、ファームウェア106(図1)の動作によって、階層構造を選択し、それを、適切なパラメータ値をハードウェアレジスタに書き込むことによって、適用するアルゴリズム的処理を通して実現され。特定のメモリデバイスのメモリアレイにおける異なるグループのメモリセルは、異なる電荷層構造で同時に(上記したように、異なる基数値kを効果的に用いて)構成される。非限定的な例として、これらの異なる電荷層構造は、メモリセルアレイの選択領域のデータ信頼性を強化するために用いられる。
図8a及び8bは、本開示のコントローラ102において実現された数列エンコーダ150及びデコーダ134の根底にある概念を示す。図8aに示す符号化処理は、未符号化記号のストリームを符号化記号のストリームに変換する。図8bに示す復号処理は、雑音や歪みによって破損し得る符号化記号のストリームを、少なくとも雑音や歪みの部分が除去された未符号化記号のストリームに変換する。符号化されたストリームは、それが連続的に互いに関係付けられていることから、付加された雑音や歪みの除去を可能にする。言い換えると、所定の符号化された記号の値は、それが表すユーザデータの関数であるばかりでなく、ストリームにおいてそれに先行する符号化された記号の関数でもある。
図8aは、符号化関数802の一例を示す。この関数は、入力として、未符号化記号のストリーム(通常、ビット又はバイトのストリームの形態のユーザデータ)を取り、符号化シンボルのストリームを出力として生成する。図において、入力シンボルは、シンボルXiの列によって表され、Xnは、エンコーダにまだある最も古い記号であり、Xn+k−1は、最新の受信記号である。従って、最新のk記号は、現出力記号Ynを計算するために用いられることが分かる。値kは、特定の実施例に対して変動し得る設計パラメータである。更に、現エンコーダ出力記号Ynは、エンコーダによって保持され、符号化関数802によって用いられ、後続のYiシンボルが計算される。各入力シンボルXは、ユーザデータの単位を表し、データシンボルと称される。各Xは、2進数ビット又は複数の2進数ビットを含むより大きな単位であってよい。各Yは、更に、2進数ビット又は複数の2進数ビットによって特徴付けることができ、また、それには、各Xを特徴付ける数と異なる複数の2進数ビットも含む。
一実施形態において、図8の符号化関数802によって生成された各Yは、メモリシンボル(図6)に直接対応する場合もそうでない場合もある。メモリシンボルの基数及び符号化シンボルの基数が、互いの偶数の倍数である場合、図6に示す符号化記号とメモリシンボルとの間の変換は、自明である。しかしながら、他の実施形態において、符号化記号及びメモリシンボルは、互いの偶数の倍数ではない基数値を有する。本実施形態では、符号化記号ストリームYi(符合シンボル)からメモリシンボルストリームSi(メモリシンボル)へのマッピングは、図6に示し上記した符号化ステップによって実施される。符号化処理は、基数nの2進数符号化数値によって表される一連の値Yiが含まれる入力ストリームを、基数pの数値によって表される出力値のストリームに変換する。出力値は、一連の基数=q値の場合、2進数符号化値によって表すことができるが、各々、q識別レベルの内の1つを伝達する一連のアナログ値として表わしてもよい。
図8bは、復号化関数804の一例を示す。復号化関数804において、ストリームの数列符号化シンボルは、メモリデバイス読み出し処理によって得られ、数列デコーダに渡される。連続復号関数は、取り込まれた雑音や歪みを含み得るYi符号化シンボルのストリームを、Xiユーザデータ記号のストリームに変換し、少なくとも、取り込まれた雑音や歪みの一部が除去されている。復号化関数804の1つの具体化例には、ビタビ検出器を含み得る。当業者は認識されるように、他の具体例を用いてもよい。
図9aは、特定のメモリシンボルに関連する一組の目標電荷値を記憶するための1つ又は複数のメモリセルの様々な状態のグラフ図を示す。本例では、垂直軸に沿って、7つの目標値T0−T6を示し、一方、水平軸に沿って、6つの記憶された電荷状態S1−S7を示す。従って、図示するように、7つの目標電荷値がある。図9aの水平線は、目標電荷値を、それらが最大と最小の実際の値との間で構成されているとして表す(図7a−cも参照)。これらは、所定の種類のメモリセルが現実的に実現し得る実際の最大及び最小の両極端に対して、相対的であるという点において、相対的レベルである。各水平線間の垂直距離は、隣接目標電荷値間の電荷差を区別する。図9aに示す電荷状態は、理想的であり、任意に選択され、各メモリシンボルに関連する目標電荷値に対応する。このように、図示した電荷状態は、雑音や歪みが無い状態で、それぞれ、メモリシンボルエンコーダ606(図6a)を介した書き込み、及びメモリシンボルデコーダ608(図6b)を介した取り込みの結果として、メモリセルに記憶されまたそこから読み出される値に対応する。記憶された値は、各値が、目標電荷値の内の意図したものに正確に配置されるという理由により、理想的であることを認識されたい。本例では、S1は、T1を記憶し、S2は、T3を記憶し、S3は、T6を記憶し、S4は、T4を記憶し、S5は、T0を記憶し、S6は、T2を記憶する。従って、図9aは、6つの対象レベル又は値の連続を示し、その全ては、基数7のメモリシンボルを表す。
次に、図9bにおいて、図9aに示す状態と同じものを表すが、その代わり、記憶された電荷値は、関連するメモリセルから読み出された未補正値を表す。図9bは、事前補正又は事後補正によって補正し得る歪みメカニズムの影響を示すために提供されている。歪み効果は、理想的には、目標電荷値に対応する意図した電荷量と比較して、記憶される実際の電荷量に影響を及ぼす。即ち、意図した値の電荷が、常に正確に目標電荷レベルの内の意図したものに存在するとは限らず、図9bに示すように、垂直にオフセットされることがある。予測可能な方法で訂正されると合理的に予想し得るそれらの影響は、「補正可能である」と称される。事前補正及び事後補正計算に用いられるパラメータ情報を収集するための方法の例を、上記したように、図4及び5に表わす。
補正が無い場合、図9bにおける記憶電荷値は、図9aに示す理想的な値から発散し、また、隣接目標電荷値間の中間に入る値として返される。言い換えると、図9bのサンプルは、記憶するように意図した図9aによって例示されるメモリシンボルを表す。しかしながら、メモリセルから読み出される実際の値は、図示するように、書き込み及び読み出し処理における補正可能な/反復可能な効果により、対象値から逸脱することが分かる。図9bに示す返却値と図9aに示す目標/理想値との間の差異は、一組の補正オフセット902(図9bの下部に示す)が、それらをメモリデバイスに書き込む前に、メモリシンボルに付加される場合(事前補正)、検知されたメモリシンボルに付加される場合(事後補正)、又は事前及び事後補正の組合せにおいてアサートされる場合、除去される。
このオフセットは、図9b状態の各々が、隣接するメモリセルのグループによって記憶される場合、マップを表すことを認識されたい。図4及び5における方法400及び500は、補正可能な歪み効果の計算と共にそれぞれ用いて、実際の訂正処理時に用いるためのパラメータデータを生成する。訂正処理中、事前又は事後補正にかかわらず、それは、メモリセルのページが含まれるメモリシンボルに適用されるオフセット値902のマップを計算することである。複数の効果が、各効果に対して独特なオフセットを用いて、補正を受ける場合、1つのアプローチは、各効果に関連するオフセットを確立し、そして、全体的なオフセットに到達するために、各効果の個々のオフセットを合計することである。尚、オフセットは、負又は正のいずれかであってよい。読み出し/書き込みフローにおける事前補正又は後補正ステップのいずれかとして補正オフセットを加算すると、誤りの原因となり、また、補正計算が実施された歪みメカニズムの効果が相殺される。この結果、補正された歪みメカニズムに起因する誤りを除去することができる。
図1に戻ると、このシステム100は、不揮発性電子メモリシステムに関して、現在の最先端技術において分かるものより高い記憶密度及び小さい記憶単位のコストのための機能を提供すると見なされる。この恩恵の1つの理由は、代表的な従来のNANDフラッシュデバイスと比較して、各S3Eメモリデバイスにおいて記憶アレイに付加される回路の複雑さ(また、これによって、シリコン領域)の低減である。従って、各メモリデバイスは、従来技術によるNANDフラッシュデバイスにおいて利用可能な領域に対してメモリ媒体領域の相対的な増加をもたらす。即ち、メモリデバイス104からコントローラ102に機能を移すことによって、各S3Eメモリデバイスは、従来技術によるNANDフラッシュデバイスよりチップのシリコン領域当りの記憶容量が大きくなる。一定のチップサイズ及びデバイスコストの場合、その効果は、単位コスト当りの記憶量の増加であり、従って、記憶単位当りのコストの低減である。この効果は、単一のコントローラ102を有するシステム構成において接続されるメモリデバイス104の数が多くなると、更に顕著になる。記憶単位当りのコストは、従来技術によるNANDフラッシュデバイスに対して、S3Eメモリデバイスにおける独特な記録レベルの数を増やす能力によって更に低減される。上記教示内容に基づき、代表的な従来のメモリデバイスと比較して、任意の多数の独特なレベルを用い得る。アクセス解像度に関係するセル当り記憶容量の限界があるが、上記したように、アクセス解像度は、メモリセルにおける極めて小さい電荷差異の間を区別する点で、強化できる。
セル当りに記憶される情報の量を増加させると、信頼性の低下を伴うが、本出願人は、S3Eコントローラデバイス102において、最適化された方法及び処理を用いると、従来技術によるNANDフラッシュデバイスとオンチップのNANDフラッシュコントローラとを組み合わせたものの信頼性を超過することが可能である点まで、固体記憶素子の信頼性を強化できることに気付き、これによって、これに関する懸念を解決した。単一のコントローラ102を用いて、複数のSE3メモリデバイス104を動作させる概念を通して、コントローラ102の能力は、著しく強化され、所望のレベルのデータ信頼性能力を提供する。更に、これらの教示内容は、書き込み及び読み出し動作において実質的に誤りが許容されない場合、例えば、例示されるように、広い電荷バッファーマージン(図7a参照)を用いることによって、従来技術の制約条件を一掃すると考えられる。
上記教示内容を通して、S3Eコントローラ102は、複数の各S3Eメモリデバイス104の容量の一部分を用いて、情報の正確な記憶及び取り込みに関して、前記S3Eメモリデバイス104による誤りの事例を検出及び訂正することを認識されるであろう。即ち、この一部分は、誤り訂正情報を記憶するために用い得る。
本明細書に述べた実施形態には、更に詳細に後述するように、様々なコンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用コンピュータの用途を含み得る。
本発明の範囲内の実施形態には、更に、コンピュータ実行可能な命令又はデータ構造を担持又はそれに記憶しているコンピュータ判読可能媒体が含まれる。そのようなコンピュータ判読可能媒体は、汎用又は専用コンピュータによってアクセスし得る任意の入手可能な媒体であってよい。一例として、また、限定せず、そのようなコンピュータ判読可能媒体には、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、又は、磁気ディスク装置もしくは他の磁気記憶装置、又は所望のプログラムコード手段をコンピュータ実行可能な命令又はデータ構造の形態で担持又は記憶するために用いることができる他の任意の媒体であって、汎用又は専用コンピュータによってアクセスし得る媒体を含み得る。情報が、ネットワーク又は他の通信接続(有線、無線、又は有線もしくは無線の組合せのいずれか)を介して、コンピュータに転送又は提供される場合、コンピュータは、その接続をコンピュータ判読可能媒体と当然見なす。従って、そのようないずれの接続も厳密にコンピュータ判読可能媒体と称される。上記内容の組み合わせもコンピュータ判読可能媒体の範囲内に含まれる。
コンピュータ実行可能命令には、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理装置が、或る機能又はグループの機能を実施できるようにする命令及びデータが含まれる。本題について、構造的な特徴及び/又は方法論的な行為に特有の用語で記載してきたが、添付の請求項において規定された本題は、必ずしも上記した特定の特徴又は行為に限定されるとは限らないことを理解されたい。むしろ、上述した特定の特徴及び行為は、請求項を実現する形態例として開示されている。
本明細書に用いる用語「モジュール」又は「構成要素」は、演算システム上で実行されるソフトウェアオブジェクト又はルーチンを意味する。本明細書に記載した異なる構成要素、モジュール、エンジン、及びサービスは、(例えば、個別のスレッドとして)演算システム上で実行されるオブジェクト又はプロセスとして実現し得る。本明細書に述べたシステム及び方法は、好適には、ソフトウェアで実現されるが、ハードウェア又はソフトウェア及びハードウェアの組合せによる実施例もまた可能であり、また、考えられる。本説明において、「演算実体」は、本明細書において前に定義したような任意の演算システム、又は任意のモジュール又は演算システム上で走る調整器の組合せであってよい。
本明細書に開示された実施形態及び関連する方法は、様々な異なる構成で提供され、また、無数の異なるやり方で変形し得ること、及び本発明は、本発明の精神又は範囲から逸脱することなく、多くの他の特定の形態で具現化し得ることは明らかである。例えば、上述したように、本明細書に示した概念は、現在利用可能か又は未だ開発中かどうかにかかわらず、本質的にアナログ形式で情報を記憶するほぼあらゆる種類のメモリセルに容易に適合可能である。従って、本例及び方法は、限定的ではなく、例示的であると見なすべきものであり、また、本発明は、本明細書に述べた詳細に限定されるものではない。本発明の範囲は、従って、上記の説明によってよりもむしろ添付の請求項によって示される。請求項の等価性の意味及び範囲内で生じる全ての変更は、それらの範囲内に含まれるものである。
(1)複数のメモリセルが含まれ、各メモリセルが、デジタル記憶装置の実装に用いるための電荷蓄積容量を有するフラッシュメモリ構成において、
書き込み動作及び読み出し動作において、前記メモリセルの各々にアクセスするように構成された処理装置と、
前記処理装置によって実行された場合、前記メモリセルの各々用の複数のデータ値を定義するための目標電荷レベルを課す命令セットであって、前記目標電荷レベルは、前記電荷蓄積容量を基準にして、プログラムにより可変である前記命令セットと
を備える装置。
(2)上記(1)に記載の装置であって、前記命令セットは、前記複数のデータ値の各々用の電荷範囲を更に定義するために前記電荷蓄積容量全体に分散した識別レベルを課すように構成される、装置。
(3)上記(2)に記載の装置であって、前記各メモリセル内への記憶に利用可能な異なるデータ値の数は2の非整数乗である、装置。
(4)上記(2)に記載の装置であって、前記命令セットは各セルの最大データ記憶容量を特徴付けるデバイスアクセス解像度を課すように構成される、装置。
(5)上記(4)に記載の装置であって、前記命令セットは、前記デバイスアクセス解像度を変更することによって、各メモリセルに利用可能なデータ記憶容量をプログラムにより変更するように構成される、装置。
(6)上記(2)に記載の装置であって、前記命令セットは、所定の電荷レベルが前記データ値の内の1つに対応する確率を決定するために用いられる電荷確率分布を課すように構成される、装置。
(7)上記(6)に記載の装置であって、前記識別レベルは、前記確率分布の重なりをもたらす大容量の態様に分散し、前記命令セットは、更に、前記メモリセルにアクセスする場合、誤り訂正を適用するように構成される、装置。
(8)複数のメモリセルを含み、各メモリセルが、デジタル記憶の実現に用いるための電荷蓄積容量を有するフラッシュメモリ構成において、
書き込み動作及び読み出し動作において、前記各メモリセルにアクセスするように構成された処理装置と、
前記処理装置によって実行された場合、前記電荷蓄積容量間の電荷の量を徐々に増加させることを特徴とする複数の電荷層から構成される電荷層構造を確立する命令セットであって、各電荷層は、記憶値及び電荷量を定義する電荷値に関連付けられ、前記命令セットは、更に、前記電荷値の内の少なくとも1つをプログラムにより可変となるように構成される前記命令セットと
を備える、装置。
(9)上記(8)に記載の装置であって、前記命令セットは、前記電荷層構造の電荷層の総数をプログラムにより変更するように構成される、装置。
(10)変動し得る性能特性に関連するセルアレイデバイスを用いることが可能なフラッシュメモリ構成において、
前記セルアレイデバイスにアクセスして、前記セルアレイデバイス用の前記性能特性の値を確立するように構成され、且つ、引き続き、前記セルアレイデバイスにアクセスして、前記性能特性の前記値に基づき、補正を行うように構成された制御配列
を備える装置。
(11)上記(10)に記載の装置であって、
前記制御配列は、読み出し動作において、前記セルアレイデバイスにアクセスするように構成され、且つ、前記制御配列は、前記性能特性に対応して、前記値を変更し、更新された値を生成するように構成される、装置。
(12)上記(10)に記載の装置であって、
前記セルアレイデバイスは、複数のメモリセルを含み、前記制御配列は、前記各メモリセル用の前記性能特性の複数の値を確立するように構成される、装置。
(13)上記(10)に記載の装置であって、
前記セルアレイデバイスは、複数のメモリセルを含み、各メモリセルは、デジタル記憶の実現に用いるための電荷蓄積容量を有し、
書き込み動作及び読み出し動作において、前記各メモリセルにアクセスするように構成された処理装置と、
前記処理装置によって実行されると、前記各メモリセル内において、複数のデータ値を定義するための目標電荷レベルを課す命令セットと
を更に備える装置。
(14)上記(13)に記載の装置であって、
前記制御配列は、読み出し動作において、前記セルアレイデバイスにアクセスして、前記メモリセルの内の1つによって記憶される現在の電荷量を決定し、且つ、前記現在の電荷量に関連付けられた前記データ値を決定するように構成され、前記制御配列は、更に、前記現在の電荷量及び前記性能特性の前記値に基づき、前記特定のセル用の訂正されたデータ値を確立するように構成される、装置。
(15)上記(13)に記載の装置であって、
前記制御配列は、書き込み動作において、前記セルアレイデバイスにアクセスして、所定のデータ値を前記メモリセルの内の1つに書き込むように構成され、前記所定のデータ値は、前記目標電荷レベルの内の1つに関連し、前記制御配列は、更に、前記所定のデータ値及び前記性能特性の前記値に関連付けられた前記目標電荷レベルに基づき、訂正された目標電荷レベルを確立するように構成され、且つ、前記訂正された目標電荷レベルを前記メモリセルに適用することによって、前記書き込み動作を実施するように構成される、
装置。
(16)複数のメモリセルから構成される少なくとも1つのセルアレイデバイスを用いる不揮発性電子メモリ構成において、
前記メモリセルの少なくとも1つの特性に基づく所定のメモリセルの予測応答を確立するように構成され、且つ、前記予測応答に基づき、電荷出力パラメータを調整することによって、前記所定のメモリセルに電荷を出力するための制御配列
を備える装置。
(17)複数のメモリセルが含まれるフラッシュメモリ構成であって、各メモリセルが、デジタル記憶の実現に用いるための電荷蓄積容量を有し、且つ、各メモリセルは、複数のデータ値を定義するための目標電荷レベルを有する、前記フラッシュメモリ構成において、前記メモリセルからの読み出し及び前記メモリセルへの書き込みの内の少なくとも一方の間に用いられる補正データを生成するための方法であって、
前記メモリセルを較正するために用いられるパターンコードデータからなる所定の情報パターンを特定する段階と、
前記パターンコードデータをメモリシンボルに変換する段階であって、前記各メモリシンボルは、前記目標電荷レベルの内の1つを特定する、前記変換する段階と、
前記メモリシンボルによって特定された前記目標電荷レベルを前記メモリセルに適用することによって、前記メモリセル内における既知の位置に前記メモリシンボルを書き込む段階と
を備える方法。
(18)上記(17)に記載の方法であって、 前記既知の位置における前記メモリセル内に記憶された電荷レベルを検知することによって、前記メモリ内における前記既知の位置からメモリシンボルを読み出す段階と、
前記読み出されたメモリシンボルを比較コードデータに変換する段階と、
前記パターンコードデータを前記比較コードデータと比較して、差異値を決定する段階と
を更に備える方法。
(19)上記(18)に記載の方法であって、
前記差異値を用いて性能特性を計算する段階と、
前記性能特性をデータ構造に記憶する段階と、
を更に備える方法。
(20)上記(19)に記載の方法であって、
前記フラッシュメモリ構成の前記メモリセルに書き込まれる書き込みデータを特定する段階と、
前記性能特性を前記書き込みデータに適用して、補正された書き込みデータを生成する段階と、
前記補正された書き込みデータを補正されたメモリシンボルに変換する段階であって、各補正されたメモリシンボルは、前記メモリセルの内の1つに適用される電荷レベルを特定する前記段階と、
前記補正されたメモリシンボルによって特定された前記電荷レベルを前記メモリセルに適用することによって、前記補正されたメモリシンボルを前記フラッシュメモリ構成の前記メモリセルに書き込む段階と
を更に備える方法。
(21)上記(19)に記載の方法であって、
前記フラッシュメモリの前記メモリセルから未補正メモリシンボルを読み出す段階であって、前記各未補正メモリシンボルは、前記メモリセルの1つの電荷レベルを特定する前記段階と、
前記未訂正メモリシンボルを未補正コードデータに変換する段階と、
前記性能特性を前記未補正コードデータに適用して、補正されたコードデータを生成する段階と、
を更に備える方法。

Claims (33)

  1. 電荷蓄積容量を有するメモリセルを含むメモリ構成において、
    書き込み動作及び読み出し動作において、前記メモリセルにアクセスするように構成された処理装置と、
    前記処理装置によって、前記メモリセル用の1つ以上のデータ値を定義するための調整可能な目標電荷値の数を定義して課すことにより、前記メモリセルのデータ容量を確立するように実行可能な命令セットであって、前記1つ以上の調整可能な目標電荷値を定義することにより、隣接する目標電荷値間に電荷間隔を確立し、かつ、隣接する目標電荷値間の前記電荷間隔の幅は、前記調整可能な目標電荷値の数によって変わる、命令セットと、
    を備える装置。
  2. 前記メモリ構成は、アナログ形式でデータを記憶するように動作可能である、請求項1に記載の装置。
  3. 請求項1に記載の装置を有する電子デバイスであって、
    前記電子デバイスは、携帯電話、音楽プレーヤ、ポータブルコンピュータ、携帯情報端末、ポケベル、MP3プレーヤ、デジタルカメラ、デジタルカメラ一体型ビデオ、パーソナルゲームデバイス、及び電子書籍のうちの1つを備える、電子デバイス。
  4. 前記命令セットは、さらに、前記処理装置によって、前記メモリセル用の1以上のデータ値を定義するための1つ以上の調整可能な目標電荷値の他のセットを定義して課すことにより、前記メモリセルのデータ容量を補正するように実行可能であり、
    前記他のセットは、最初のセットとは異なる、請求項1に記載の装置。
  5. 前記命令セットは、さらに、前記処理装置によって、目標電荷値を増加及び/又は減少させるように実行可能な、請求項1に記載の装置。
  6. 前記メモリ構成は、フラッシュメモリを備える、請求項1に記載の装置。
  7. 前記フラッシュメモリは、磁気ランダムアクセスメモリ(MRAM)、相変化ランダムアクセスメモリ(PRAM)、NANDフラッシュ、及びマイクロ電気機械(MEMS)式媒体の1つを備える、請求項6に記載の装置。
  8. 前記命令セットは、前記処理装置によって、前記1つ以上のデータ値用の電荷範囲をさらに定義するために、メモリセルの電荷蓄積容量全体に分散した識別レベルを課すように実行可能な、請求項1に記載の装置。
  9. 前記メモリセル内の調整可能な目標値の数は、2の非整数乗である、請求項8に記載の装置。
  10. 前記命令セットは、前記処理装置によって、前記メモリセルの1つの最大データ記憶容量を特徴付けるデバイスアクセス解像度を課すように実行可能である、請求項8に記載の装置。
  11. 前記命令セットは、前記処理装置によって、前記デバイスアクセス解像度の変化を経て前記メモリセル用に利用可能なデータ記憶容量の変化を課すように実行可能である、請求項10に記載の装置。
  12. 前記命令セットは、前記処理装置によって、所定の電荷レベルが特定のデータ値に対応する確率を示す電荷確率分布を課すように実行可能な、請求項8に記載の装置。
  13. 前記識別レベルは、2つの確率分布の重なりが定義されるように分散される、請求項12に記載の装置。
  14. メモリにおいて、
    セルアレイデバイスにアクセスして、前記セルアレイデバイス用の性能特性の値を確立するように構成され、且つ、引き続き、前記セルアレイデバイスにアクセスして、前記セルアレイデバイスに関連した前記性能特性の値に基づき、補正を行うように構成された制御配列を備え、
    前記制御配列は、読み出し動作において前記セルアレイデバイスにアクセスして、前記セルアレイデバイスのメモリセルによって蓄積される電荷量を決定し、且つ、前記電荷量に関連したデータ値を決定するように構成され、
    前記制御配列は、さらに、前記電荷量及び前記性能特性値に基づき、前記特定のメモリセル用の訂正されたデータ値を確立するように構成された、装置。
  15. 前記制御配列は、前記性能特性値を変えてアップデートした値を創り出すように構成された、請求項14に記載の装置。
  16. 前記制御配列は、前記セルアレイデバイスの1つ以上のメモリセル用の性能特性値を確立するように構成された、請求項14に記載の装置。
  17. 書き込み動作及び読み出し動作において、前記セルアレイデバイスのメモリセルにアクセスするように構成された処理装置と、
    前記処理装置によって実行された場合に、前記メモリセル内の複数のデータ値を定義するための目標電荷レベルを課すように構成された命令セットと、
    をさらに備える、請求項14に記載の装置。
  18. 前記制御配列は、書き込み動作において、前記セルアレイデバイスにアクセスして、所定のデータ値を前記セルアレイデバイスのメモリセルに書き込むように構成され、
    前記所定のデータは、前記目標電荷レベルに関連付けられ、
    前記制御配列は、さらに、前記所定のデータ値及び前記性能特性値に関連した前記目標電荷レベルに基づいて、訂正した目標電荷レベルを確立するように構成され、且つ、前記訂正した目標電荷レベルを前記メモリセルに適用することによって、前記書き込み動作を実行するように構成された、請求項17に記載の装置。
  19. メモリ構成において、
    前記メモリセルの少なくとも1つの特性に基づく所定のメモリセルの予測応答を確立するように構成され、且つ、前記予測応答に基づき、電荷出力パラメータを調整することによって、前記所定のメモリセルに電荷を出力するための制御配列、を備える装置。
  20. メモリ構成において、較正する方法であって、
    前記メモリセルを較正するために用いられるパターンコードデータからなる所定の情報パターンを特定する段階と、
    前記パターンコードデータをメモリシンボルに変換する段階であって、前記メモリシンボルは、前記メモリセルに関連した目標電荷レベルを特定する、前記変換する段階と、
    前記メモリシンボルによって特定された前記目標電荷レベルを前記メモリセルに適用することによって、前記メモリセル内における既知の位置に前記メモリシンボルを書き込む段階と、
    前記既知の位置における前記メモリセル内に記憶された電荷レベルを検知することによって、前記メモリセル内における前記既知の位置からメモリシンボルを読み出す段階と、
    前記読み出されたメモリシンボルを比較コードデータに変換する段階と、
    前記パターンコードデータを前記比較コードデータと比較して、差異値を決定する段階と、を備える方法。
  21. 前記差異値を用いて性能特性を計算する段階と、
    前記性能特性をデータ構造に記憶する段階と、
    を更に備える、請求項20に記載の方法。
  22. 前記メモリセルに書き込まれる書き込みデータを特定する段階と、
    前記性能特性を前記書き込みデータに適用して、補正された書き込みデータを生成する段階と、
    前記補正された書き込みデータを補正されたメモリシンボルに変換する段階であって、前記補正されたメモリシンボルは、前記メモリセルに適用される電荷レベルを特定する前記段階と、
    前記補正されたメモリシンボルによって特定された前記電荷レベルを前記メモリセルに適用することによって、前記補正されたメモリシンボルを前記メモリセルに書き込む段階と、
    を更に備える、請求項21に記載の方法。
  23. 前記フラッシュメモリの前記メモリセルから未補正メモリシンボルを読み出す段階であって、前記未補正メモリシンボルは、前記メモリセル内の電荷レベルを特定する前記段階と、
    前記未補正メモリシンボルを未補正コードデータに変換する段階と、
    前記性能特性を前記未補正コードデータに適用して、補正されたコードデータを生成する段階と、
    を更に備える、請求項21に記載の方法。
  24. データの書き込み方法であって、
    バッファRAMからユーザデータシンボルを読み出す段階と、
    ユーザデータシンボルのブロックに加え、ECCパリティシンボルを生成するように、前記ユーザデータシンボルにECCパリティを含む追加のデータシンボルを処理して追加する段階と、
    LDPC符号化方式を用いて、前記ユーザデータシンボル及びECCパリティシンボルを符号化する段階と、
    前記LDPC符号化処理によって出力されたシンボルのストリームを符号化してコードシンボルのストリームを創り出す段階と、
    前記コードシンボルのストリーム内の1つ以上のコードシンボルを事前補正して、1つ以上のメモリシンボルを創り出す段階と、
    1つ以上のメモリシンボルを符号化する段階と、
    1つ以上のメモリシンボルをメモリ構成に転送する段階と、
    を含む方法。
  25. 請求項24に記載の方法が実行された、装置。
  26. 事前補正された1つ以上のコードシンボルは、較正処理によって創り出されるデータを用いて実行される、請求項24に記載の方法。
  27. 前記較正処理は、前記メモリ構成に関連して実行され、
    前記メモリ構成は、電荷蓄積容量及び複数のデータ値を定義するための目標電荷レベルを有するメモリセルを含み、
    前記較正処理は、
    前記メモリセルを較正するのに用いるパターンコードデータからなる所定の情報パターンを特定する段階と、
    前記パターンコードデータをメモリシンボルに変換する段階であって、前記メモリシンボルは、前記メモリセルに関連した目標電荷レベルを特定する、前記段階と、
    前記メモリシンボルによって特定された前記目標電荷レベルを前記メモリセルに適用することによって、前記メモリシンボルを前記メモリセル内の既知の位置に書き込む段階と、
    を含む、請求項26に記載の方法。
  28. データを読み出す方法であって、
    メモリ構成のメモリセルから1つ以上のメモリシンボルを読み出す段階と、
    前記メモリシンボルをコードシンボルのストリームに変換する段階と、
    前記コードシンボルのストリームの1つ以上のコードシンボルを事後補正して、事後補正コードシンボルのストリームを創り出す段階と、
    前記事後補正コードシンボルのストリームを、数列デコードして、データシンボルのストリームを創り出す段階と、
    前記データシンボルのストリームに、LDPCデコード方式を適用する段階と、
    前記LDPCデコード処理から受け取る入力に、ECCデコード処理を実行する段階と、
    前記ECCデコード処理の出力に応じて以下のうち1つ:
    前記データシンボルのストリーム内の任意の訂正可能な誤りを検出して訂正し、次いで、前記データシンボルをバッファに転送するか;
    前記データシンボルのストリームに誤りが検出されず、次いで、前記データシンボルを前記バッファに転送するか;又は、
    前記データシンボルのストリーム内に、前記ECCデコード処理によって訂正できるよりも多くの誤りを検出し、次いで、中断するか;
    を実行する段階と、
    を含む、方法。
  29. 前記LDPCデコード処理の出力は、汚れているユーザデータと、ECCパリティビットとの一方又は双方を含む、請求項28に記載の方法。
  30. 請求項28に記載の方法が実行された、装置。
  31. 事後補正は、較正処理によって創り出されるデータを用いて実行される、請求項28に記載の方法。
  32. 前記較正処理は、前記メモリ構成に関連して実行され、
    前記メモリセルは、電荷蓄積容量及び複数のデータ値を定義するための目標電荷レベルを有し、
    前記較正処理は、
    前記メモリセルの較正に用いるパターンコードデータからなる所定の情報パターンを特定する段階と、
    前記パターンコードデータをメモリシンボルに変換する段階であって、前記メモリシンボルは、前記メモリセルに関連した目標電荷レベルを特定する、前記段階と、
    前記メモリシンボルによって特定される前記目標電荷レベルを前記メモリセルに適用することによって、前記メモリシンボルを前記メモリセル内の既知の位置に書き込む段階と、
    を含む、請求項31に記載の方法。
  33. 前記目標電荷レベルの1つは、調整可能な識別レベルに関連付けられる、請求項32に記載の方法。
JP2011279012A 2006-08-05 2011-12-20 固体記憶素子及び方法 Active JP5496993B2 (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US83562406P 2006-08-05 2006-08-05
US60/835,624 2006-08-05
US84311706P 2006-09-09 2006-09-09
US60/843,117 2006-09-09
US86395006P 2006-11-01 2006-11-01
US60/863,950 2006-11-01
US88692607P 2007-01-27 2007-01-27
US60/886,926 2007-01-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009523937A Division JP5047288B2 (ja) 2006-08-05 2007-08-06 固体記憶素子及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014041912A Division JP6313073B2 (ja) 2006-08-05 2014-03-04 固体記憶素子及び方法

Publications (2)

Publication Number Publication Date
JP2012109012A true JP2012109012A (ja) 2012-06-07
JP5496993B2 JP5496993B2 (ja) 2014-05-21

Family

ID=39033607

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2009523937A Active JP5047288B2 (ja) 2006-08-05 2007-08-06 固体記憶素子及び方法
JP2011279012A Active JP5496993B2 (ja) 2006-08-05 2011-12-20 固体記憶素子及び方法
JP2014041912A Active JP6313073B2 (ja) 2006-08-05 2014-03-04 固体記憶素子及び方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009523937A Active JP5047288B2 (ja) 2006-08-05 2007-08-06 固体記憶素子及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014041912A Active JP6313073B2 (ja) 2006-08-05 2014-03-04 固体記憶素子及び方法

Country Status (8)

Country Link
US (4) US7877564B2 (ja)
EP (1) EP2052389A4 (ja)
JP (3) JP5047288B2 (ja)
KR (2) KR101266594B1 (ja)
CN (1) CN101523504B (ja)
CA (1) CA2660087C (ja)
MX (1) MX2009001345A (ja)
WO (1) WO2008019347A2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8645793B2 (en) 2008-06-03 2014-02-04 Marvell International Ltd. Statistical tracking for flash memory
WO2008019347A2 (en) 2006-08-05 2008-02-14 Benhov Gmbh, Llc Solid state storage element and method
US7808834B1 (en) 2007-04-13 2010-10-05 Marvell International Ltd. Incremental memory refresh
US8031526B1 (en) 2007-08-23 2011-10-04 Marvell International Ltd. Write pre-compensation for nonvolatile memory
US8189381B1 (en) 2007-08-28 2012-05-29 Marvell International Ltd. System and method for reading flash memory cells
US8085605B2 (en) 2007-08-29 2011-12-27 Marvell World Trade Ltd. Sequence detection for flash memory with inter-cell interference
JP4946844B2 (ja) * 2007-12-13 2012-06-06 ソニー株式会社 記録再生装置および記録再生方法
KR101618677B1 (ko) * 2008-07-01 2016-05-09 엘에스아이 코포레이션 플래시 메모리 제어기와 플래시 메모리 어레이 사이의 인터페이싱 방법 및 인터페이스
US20100064093A1 (en) * 2008-09-09 2010-03-11 Radoslav Danilak System, method, and computer program product for converting data in a binary representation to a non-power of two representation
US8675417B2 (en) 2008-09-28 2014-03-18 Ramot At Tel Aviv University Ltd. Method and system for adaptive coding in flash memories
US8671327B2 (en) 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
US9378835B2 (en) * 2008-09-30 2016-06-28 Seagate Technology Llc Methods and apparatus for soft data generation for memory devices based using reference cells
US8023334B2 (en) * 2008-10-31 2011-09-20 Micron Technology, Inc. Program window adjust for memory cell signal line delay
US8291297B2 (en) * 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory
US8341501B2 (en) 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
US20110010485A1 (en) * 2009-07-08 2011-01-13 Hou-Yuan Lin Flash Memory Control Device
US8914697B2 (en) * 2009-08-26 2014-12-16 Seagate Technology Llc Data corruption detection
GB0920344D0 (en) 2009-11-20 2010-01-06 Faulkner Richard M Apparatus with switch generating SMS message
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8331084B2 (en) 2010-05-13 2012-12-11 General Electric Company Apparatus for securing electronic equipment
US8892980B2 (en) 2010-06-15 2014-11-18 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
TWI441181B (zh) 2010-09-09 2014-06-11 Silicon Motion Inc 用來進行資料整形之方法以及其記憶裝置及控制器
US8499227B2 (en) * 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
WO2012042444A1 (en) 2010-09-29 2012-04-05 International Business Machines Corporation Decoding in solid state memory devices
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
US9898361B2 (en) 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
US9292377B2 (en) 2011-01-04 2016-03-22 Seagate Technology Llc Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
US9502117B2 (en) * 2011-03-14 2016-11-22 Seagate Technology Llc Cell-level statistics collection for detection and decoding in flash memories
US10314594B2 (en) 2012-12-14 2019-06-11 Corquest Medical, Inc. Assembly and method for left atrial appendage occlusion
US10813630B2 (en) 2011-08-09 2020-10-27 Corquest Medical, Inc. Closure system for atrial wall
US10307167B2 (en) 2012-12-14 2019-06-04 Corquest Medical, Inc. Assembly and method for left atrial appendage occlusion
GB2509858B (en) * 2011-09-29 2015-08-26 Ibm Read-detection in solid-state storage devices
US8909942B1 (en) 2012-03-30 2014-12-09 Western Digital Technologies, Inc. MRAM-based security for data storage systems
US8824203B2 (en) 2012-07-13 2014-09-02 Micron Technology, Inc. Multiple step programming in a memory device
US20140142689A1 (en) 2012-11-21 2014-05-22 Didier De Canniere Device and method of treating heart valve malfunction
US9021332B2 (en) 2012-12-11 2015-04-28 Seagate Technology Llc Flash memory read error recovery with soft-decision decode
KR102081588B1 (ko) 2013-08-08 2020-02-26 삼성전자 주식회사 Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러
US20190324678A1 (en) * 2013-09-09 2019-10-24 Whitecanyon Software, Inc. System and Method for Encrypted Disk Drive Sanitizing
US9424179B2 (en) * 2013-10-17 2016-08-23 Seagate Technology Llc Systems and methods for latency based data recycling in a solid state memory system
US9566443B2 (en) 2013-11-26 2017-02-14 Corquest Medical, Inc. System for treating heart valve malfunction including mitral regurgitation
KR102116674B1 (ko) * 2014-03-21 2020-06-08 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함하는 저장 장치 및 그것의 동작 방법
DE102014212224A1 (de) * 2014-06-25 2015-12-31 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erzeugen eines geheimen Schlüssels
US10842626B2 (en) 2014-12-09 2020-11-24 Didier De Canniere Intracardiac device to correct mitral regurgitation
WO2018231871A1 (en) * 2017-06-12 2018-12-20 Emory University T-cell antigen targeted chimeric antigen receptor (car) and uses in cell therapies
CN110473581B (zh) * 2018-05-09 2020-12-29 建兴储存科技(广州)有限公司 固态储存装置及其相关控制方法
KR102530789B1 (ko) * 2018-07-11 2023-05-11 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20200121108A (ko) * 2019-04-15 2020-10-23 에스케이하이닉스 주식회사 간섭 보상을 위한 메모리 시스템 및 메모리 시스템의 동작 방법
US10872038B1 (en) * 2019-09-30 2020-12-22 Facebook, Inc. Memory organization for matrix processing
US11709617B2 (en) 2020-08-19 2023-07-25 Micron Technology, Inc. Multi-stage memory device performance notification
US11757468B2 (en) * 2020-09-24 2023-09-12 Sandisk Technologies Llc Soft data compression for non-volatile memory
US11593001B1 (en) * 2021-08-02 2023-02-28 Nvidia Corporation Using per memory bank load caches for reducing power use in a system on a chip

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09288896A (ja) * 1996-04-19 1997-11-04 Toshiba Corp 記憶システム
JPH11232898A (ja) * 1997-12-09 1999-08-27 Nippon Steel Corp 半導体記憶装置及びその使用方法並びに使用方法が記憶された記憶媒体
JPH11317095A (ja) * 1997-06-06 1999-11-16 Nippon Steel Corp 半導体記憶装置、その使用方法及びその読み出し方法並びに使用方法及び読み出し方法が記憶された記憶媒体
JP2001508218A (ja) * 1996-04-30 2001-06-19 アゲート・セミコンダクタ・インコーポレーテッド 複数デジタル・ビットのための安定化回路
JP2001332096A (ja) * 2000-05-16 2001-11-30 Hitachi Ltd 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置
JP2005518061A (ja) * 2002-02-11 2005-06-16 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド マルチレベルフラッシュ半導体メモリの部分的ページプログラミング
WO2006046425A1 (ja) * 2004-10-29 2006-05-04 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及び不揮発性記憶システム

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US548422A (en) * 1895-10-22 William n
WO1995034074A1 (en) 1994-06-02 1995-12-14 Intel Corporation Dynamic single to multiple bit per cell memory
US5485422A (en) * 1994-06-02 1996-01-16 Intel Corporation Drain bias multiplexing for multiple bit flash cell
US5541886A (en) 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
WO1999046775A2 (en) * 1998-03-10 1999-09-16 Rambus, Inc. Performing concurrent refresh and current control operations in a memory subsystem
JP3110397B2 (ja) * 1998-09-30 2000-11-20 日本電気アイシーマイコンシステム株式会社 不揮発性半導体記憶装置の書き込み方法および記録媒体
JP2000251484A (ja) * 1999-02-26 2000-09-14 Sony Corp 不揮発性半導体記憶装置
JP2002150789A (ja) * 2000-11-09 2002-05-24 Hitachi Ltd 不揮発性半導体記憶装置
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP2003100099A (ja) * 2001-09-25 2003-04-04 Toshiba Lsi System Support Kk 半導体回路システム
US6842375B1 (en) * 2001-12-06 2005-01-11 Virage Logic Corporation Methods and apparatuses for maintaining information stored in a non-volatile memory cell
US6625055B1 (en) * 2002-04-09 2003-09-23 Hewlett-Packard Development Company, L.P. Multiple logical bits per memory cell in a memory device
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
JP4136510B2 (ja) * 2002-07-18 2008-08-20 株式会社ルネサステクノロジ 半導体記憶装置の製造方法
JP2004158111A (ja) * 2002-11-06 2004-06-03 Toshiba Corp メモリ回路
US7181672B2 (en) * 2003-09-25 2007-02-20 Intel Corporation Method, system, and apparatus for supporting power loss recovery in ECC enabled memory devices
US7046544B1 (en) * 2003-10-06 2006-05-16 Xilinx, Inc. SRAM cell with read-disturb immunity
US7356755B2 (en) * 2003-10-16 2008-04-08 Intel Corporation Error correction for multi-level cell memory with overwrite capability
US7266732B2 (en) 2003-12-22 2007-09-04 Samsung Electronics Co., Ltd. MRAM with controller
US20080147964A1 (en) * 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7215563B2 (en) * 2004-04-02 2007-05-08 Brandon Tyler L Multi-layered memory cell structure
JP2006114078A (ja) * 2004-10-12 2006-04-27 Toshiba Corp 不揮発性半導体記憶装置及びその動作方法
JP2008525924A (ja) * 2004-10-21 2008-07-17 エヌエックスピー ビー ヴィ 記憶装置及びリフレッシュ機構に基づく平均しきい値を発生する方法
US7173859B2 (en) 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7352627B2 (en) * 2006-01-03 2008-04-01 Saifon Semiconductors Ltd. Method, system, and circuit for operating a non-volatile memory array
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
WO2008019347A2 (en) * 2006-08-05 2008-02-14 Benhov Gmbh, Llc Solid state storage element and method
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
US8661184B2 (en) * 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09288896A (ja) * 1996-04-19 1997-11-04 Toshiba Corp 記憶システム
JP2001508218A (ja) * 1996-04-30 2001-06-19 アゲート・セミコンダクタ・インコーポレーテッド 複数デジタル・ビットのための安定化回路
JPH11317095A (ja) * 1997-06-06 1999-11-16 Nippon Steel Corp 半導体記憶装置、その使用方法及びその読み出し方法並びに使用方法及び読み出し方法が記憶された記憶媒体
JPH11232898A (ja) * 1997-12-09 1999-08-27 Nippon Steel Corp 半導体記憶装置及びその使用方法並びに使用方法が記憶された記憶媒体
JP2001332096A (ja) * 2000-05-16 2001-11-30 Hitachi Ltd 不揮発性半導体メモリおよび不揮発性半導体メモリを用いた記録再生装置
JP2005518061A (ja) * 2002-02-11 2005-06-16 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド マルチレベルフラッシュ半導体メモリの部分的ページプログラミング
WO2006046425A1 (ja) * 2004-10-29 2006-05-04 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及び不揮発性記憶システム

Also Published As

Publication number Publication date
US8219773B2 (en) 2012-07-10
EP2052389A2 (en) 2009-04-29
JP5496993B2 (ja) 2014-05-21
CA2660087A1 (en) 2008-02-14
US20080162791A1 (en) 2008-07-03
KR101160107B1 (ko) 2012-06-26
US20140189219A1 (en) 2014-07-03
JP5047288B2 (ja) 2012-10-10
US8972674B2 (en) 2015-03-03
CN101523504A (zh) 2009-09-02
US20110093761A1 (en) 2011-04-21
JP6313073B2 (ja) 2018-04-18
KR20090037501A (ko) 2009-04-15
US7877564B2 (en) 2011-01-25
JP2014179077A (ja) 2014-09-25
KR101266594B1 (ko) 2013-05-22
WO2008019347A2 (en) 2008-02-14
CA2660087C (en) 2014-09-23
KR20120007544A (ko) 2012-01-20
JP2010500697A (ja) 2010-01-07
US8650376B2 (en) 2014-02-11
MX2009001345A (es) 2009-07-17
WO2008019347A3 (en) 2008-08-14
CN101523504B (zh) 2014-01-29
EP2052389A4 (en) 2009-08-19
US20120278684A1 (en) 2012-11-01

Similar Documents

Publication Publication Date Title
JP6313073B2 (ja) 固体記憶素子及び方法
JP5297380B2 (ja) ソフト入力ソフト出力(siso)復号器を有する不揮発性メモリにおける統計ユニットおよび適応操作
US8560901B2 (en) Apparatus, method and memory device for error correction by increasing or decreasing a read voltage and analyzing frequency information for a read error pattern
TWI594256B (zh) 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
TWI543178B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US20100287427A1 (en) Flash Memory Device and Flash Memory Programming Method Equalizing Wear-Level
KR20090086523A (ko) 에러가 발생할 수 있는 확률을 기초로 하여 에러가 보정된 비휘발성 메모리
TWI592869B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US8301978B2 (en) Memory device and method of storing data with error correction using codewords
TW200931432A (en) M+N bit programming and M+L bit read for M bit memory cells
KR20140090671A (ko) 메모리 시스템들을 위한 소프트 정보 생성
TW200912930A (en) Programming based on controller performance requirements
CN109471808B (zh) 具有数据可靠性机制的存储系统及其操作方法
US11527300B2 (en) Level dependent error correction code protection in multi-level non-volatile memory
TWI493562B (zh) 具有受配置以防止過度校正之錯誤校正的記憶體
JP2003208360A (ja) 一時記憶のための不揮発性メモリを含むライトワンスメモリデバイス
JP2010108029A (ja) 不揮発性メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
CN114078560B (zh) Nand闪存芯片的纠错译码方法、存储介质及ssd设备
TWI777087B (zh) 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130807

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140305

R150 Certificate of patent or registration of utility model

Ref document number: 5496993

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

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