JP5686516B2 - Nandメモリのためのプログラミング管理データ - Google Patents

Nandメモリのためのプログラミング管理データ Download PDF

Info

Publication number
JP5686516B2
JP5686516B2 JP2009547272A JP2009547272A JP5686516B2 JP 5686516 B2 JP5686516 B2 JP 5686516B2 JP 2009547272 A JP2009547272 A JP 2009547272A JP 2009547272 A JP2009547272 A JP 2009547272A JP 5686516 B2 JP5686516 B2 JP 5686516B2
Authority
JP
Japan
Prior art keywords
data
error correction
block management
memory
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009547272A
Other languages
English (en)
Other versions
JP2010517168A5 (ja
JP2010517168A (ja
Inventor
マーレイ,マイケル
ヘンリー ラドキ,ウィリアム
ヘンリー ラドキ,ウィリアム
Original Assignee
マイクロン テクノロジー, インク.
マイクロン テクノロジー, インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2010517168A publication Critical patent/JP2010517168A/ja
Publication of JP2010517168A5 publication Critical patent/JP2010517168A5/ja
Application granted granted Critical
Publication of JP5686516B2 publication Critical patent/JP5686516B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • 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/5642Multilevel memory with buffers, latches, registers at input or output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Detection And Correction Of Errors (AREA)

Description

[関連出願]
本特許出願は、本明細書において参照によって組み入れられている、2007年1月26日に提出された、U.S.Application No.11/698455の優先権を享受する利益を主張する。
[技術分野]
本明細書に記述される種々の実施形態は、一般的には、不揮発性メモリデバイスに関し、不揮発性メモリデバイスと併せて使用されるエラー訂正を含む。
エラー訂正コード(ECC)エンジンは、データ伝送中に、データの精度、及びインテグリティ(整合性)を確保するため、エラーを検出し、かつ訂正するプロセスを実行するデバイスである。典型的には、メモリシステムにおいては、メモリコントローラは、データ、及びECCデータをメモリデバイスへと書き込む。ECCデータは、データがメモリへと書き込まれてから生じたかもしれないエラーを識別し、かつ、訂正するため、読み出し動作中にコントローラによって使用される。
メモリデバイスは、二つの大まかな領域へと類別されうる。それは、揮発性、及び不揮発性である。揮発性メモリデバイスは、データを保持するために電力を必要とするが、不揮発性メモリは、電力供給なくしてデータを保持することが可能である。不揮発性メモリの例は、フラッシュメモリであり、フラッシュメモリは、チップに情報を保持するために電力の必要なく半導体デバイスにおいて情報を格納する。
フラッシュメモリは、NORデバイス、或いはNANDデバイスのいずれかを使用して形成されうる。NANDフラッシュは、シングルレベルセル(SLC)或いはマルチレベルセル(MLC)のいずれかの構造でありうる。MLC NANDフラッシュは、SLC NANDフラッシュと比較して、より高密度のメモリデバイスを可能にする。なぜなら、各メモリセルにおいて、二つ、或いはそれ以上のデータビットを格納することが可能だからである。メモリ密度を増加させるために複数レベルを使用すると、MLC NANDのプログラミング中に、より多くのエラーが生じる可能性があり、効率的なエラー訂正スキームが必要とされる。
本明細書に発明の概要に該当する記載なし。
本発明の種々の実施形態に係る、メモリシステムのブロック図を示す。 本発明の種々の実施形態に係る、メモリシステムにおけるメモリセルアレイ構成を示す概要図を示す。 本発明の種々の実施形態に係る、NANDフラッシュメモリアレイの概要図を示す。 本発明の種々の実施形態に係る、図3に示されるマルチレベルセル(MLC)アレイの閾値電圧の分布を示す図を示す。 本発明の種々の実施形態に係る、エラー訂正装置を示すシステムのブロック図を示す。 本発明の種々の実施形態に係る、NANDフラッシュメモリにおけるページをプログラミングする方法を示すフロー図を示す。 本発明の種々の実施形態に係る、4つのセクター、及びブロック管理データと組み合わせられるECCを示すページのデータ構造を示す。 本発明の種々の実施形態に係る、4つのセクター、及びブロック管理データと組み合わせられるECCを示すページのデータ構造を示す。 本発明の種々の実施形態に係る、8つのセクター、及びブロック管理データと組み合わせられるECCを示すページのデータ構造を示す。 本発明の種々の実施形態に係る、NANDフラッシュメモリにおけるエラー訂正を実行する方法を示すフロー図を示す。 本発明の種々の実施形態に係る、NANDフラッシュメモリにおけるエラー訂正を実行する方法を示すフロー図を示す。
図1は、本発明の種々の実施形態に係る、メモリシステム100のブロック図を示す。種々の実施形態においては、システム100は、集積回路メモリ120、及びコントローラ110を含む。メモリ120は、不揮発性浮遊ゲートメモリセルアレイ122、アドレス回路124、制御回路126、入力/出力(I/O)回路128、及びエラー訂正システム130を含む。メモリアレイ122は、フラッシュメモリセルアレイとも呼ばれてもよい。なぜなら、メモリセルブロックは典型的には‘フラッシュ’動作において、同時に消去されるからである。種々の実施形態においては、メモリアレイは、NANDフラッシュメモリアレイを含む。
種々の実施形態においては、制御回路126は、読み出し、書き込み及び消去動作のようなメモリ動作を管理するために提供される。以下に説明されているように、メモリ制御回路126によって実行されるメモリ動作の一つは、内部データ移動動作を含む。
種々の実施形態においては、メモリ120は、メモリアレイ122にアクセスするために、プロセッサ、或いは他のメモリコントローラ110へと接続されてもよい。種々の実施形態においては、メモリ120は、(示されていない)プロセッサへと接続されてもよく、電子システムの一部を形成してもよい。種々の実施形態の新規の装置、及びシステムは、以下の物を含んでもよく、及び/或いは以下の物に含まれてもよい。それは、高速コンピュータ、通信及び信号処理回路、シングルプロセッサモジュール、或いはマルチプロセッサモジュール、シングル組込プロセッサ、或いはマルチ組込プロセッサ、マルチコアプロセッサ、データスイッチ、及びマルチレイヤ、マルチチップモジュールを含む特定のアプリケーションモジュールにおいて使用される電子回路である。このような装置、及びシステムは、更に、以下のような種々の電子システム内のサブ構成要素として含まれてもよい。それは、テレビ、携帯電話、パーソナルコンピュータ(例えば、ラップトップコンピュータ、デスクトップコンピュータ、携帯用コンピュータ、タブレットコンピュータなど)、ワークステーション、ラジオ、ビデオプレイヤー、オーディオプレイヤー(例えばMP3(モーションピクチャエクスパーツグループ、オーディオレイヤー3)プレイヤー)、自動車、医療デバイス(例えば、心臓モニター、血圧モニターなど)、セットトップボックスその他のような電子システムである。実施形態の中には、多数の方法を含むものもある。
メモリ120は、制御回路126を介してメモリアレイ122へのアクセスを制御するために、コントローラ110におけるプロセッサからI/Oライン132をわたって制御信号を受信する。I/Oライン132をわたって受信されたアドレス信号に応じて、メモリアレイ122へのアクセスは、一つ或いはそれ以上のターゲットメモリセルへと向けられる。いったんアレイ122が制御信号、及びアドレス信号に応じてアクセスされると、データは、I/Oライン132をわたって、メモリセルへと書き込まれうる、或いはメモリセルから読み出されうる。
更なる回路、及び制御信号が提供されてもよく、本発明の実施形態に対して焦点を合わせやすくするために、図1のメモリデバイスは簡略化されていることが、当業者によって理解されるであろう。メモリデバイスの上記の説明は、メモリの一般的な理解を提供することを意図するものであり、典型的なメモリデバイスの全構成要素、及び機能を完全に説明するものではないことを理解されたい。
種々の実施形態においては、システム100は、コントローラ110によって提供されるECC情報を格納するためのエラー訂正システム130を含む。エラー訂正システム130は、例えば、ハミングコード、BCHコード、或いはリードソロモンコードなどの、コントローラによって使用されるECCスキームの指示を格納してもよい。コントローラによって使用されるECCのタイプに加えて、エラー訂正システム130は、アレイデータに関連するECCデータバイト位置のアドレス、或いはオフセットを格納しうる。
幾つかの実施形態においては、システム100は、ディスプレイ、及び/或いはワイヤレストランシーバへと接続された、(示されていない)プロセッサを含んでもよい。メモリ120に含まれる(複数の)メモリアレイ122もまた、プロセッサへと動作可能なように接続されてもよい。
幾つかの実施形態においては、システム100は、プロセッサへと接続するレンズ、及び結像面を含むカメラを含んでもよい。結像面は、レンズによって捕捉された光を受信するために使用されてもよい。
多くの改変が可能である。例えば、幾つかの実施形態においては、システム100は、ワイヤレストランシーバの一部を形成する、(示されていない)携帯電話受信機を含んでもよい。幾つかの実施形態においては、システム100は、プロセッサへと接続する一組のメディアプレイバック制御を含む、オーディオ、ビデオ、或いはマルチメディアプレイヤーを含んでもよい。
前述された構成要素のうちのいずれも、ソフトウェアにおける実施形態を含む、多数の方法において実装されてもよい。ソフトウェアの実施形態は、シミュレーションシステムで使用されてもよく、そのようなシステムの出力は、本明細書に記述されるメモリ120、及びシステム100の様々な部分を操作するために使用されてもよい。
ECC技術は、本技術分野において既知であるため、本明細書においては詳細には記載されず、或いは説明されない。本発明の実施形態は、特定の(複数の)ECCコードへ限定することなく実施されうることを理解されたい。エラーが検出された場合、コントローラ110はメモリ120からコントローラのバッファへとデータを読み出し、エラーを訂正するためのECC動作を実施し、メモリ120へと訂正されたデータを書き込み直しうる。
図2は、本発明の種々の実施形態に係る、メモリシステム200におけるメモリセルアレイ構成を示す概要図を示す。メモリシステム200は、ブロック202、データレジスタ204、キャッシュレジスタ206、データ領域208、予備領域210、I/Oポート212、及びプレーン214を含む。メモリシステム200は、SLCメモリ、或いはMLCメモリを含み、NANDフラッシュメモリを含んでもよい。データは、バイト単位で、データレジスタ204及びキャッシュレジスタ206を介して、NANDフラッシュメモリ200との間でやりとりされる。キャッシュレジスタ206は、I/O制御回路の最も近くに位置し、I/Oデータのためのデータバッファとして動作しうるが、一方でデータレジスタ204は、メモリアレイに最も近く、NANDフラッシュメモリの動作中にデータバッファとして動作しうる。種々の実施形態においては、データ領域208の長さは、“ページ”として定義される。
メモリはページに基づく動作においてプログラムされ、かつ読みだされ、ブロックに基づく動作において消去される。ページ動作中に、データレジスタ、及びキャッシュレジスタはともに結合しあって、単一のレジスタとして動作しうる。キャッシュ動作中は、データレジスタ、及びキャッシュレジスタは、データスループットを増加させるために独立して動作しうる。
図2に示されるような構造のNANDフラッシュメモリは、ページのブロックから構成されてもよい。各ブロックは、16ページ、32ページ、或いは64ページから構成されてもよい。種々の実施形態においては、各ページは、データ領域208においては512バイト(216語)を、予備領域210においては追加の16バイト(8語)を有してもよい。種々の実施形態においては、各ページは、データ領域208においては2048バイト(1024語)を、予備領域210においては64バイト(32語)を有してもよい。予備領域210は、製造プロセス中に無効ブロックを標示するために使用されるビットを格納するために使用されてもよい。更には、予備領域210は、ECCチェックビットを格納するために使用されてもよい。無効ブロックの標示は、ブロック管理データ内に含まれる一組のビットに対して動作するソフトウェアによって実行されうる。種々の実施形態においては、プロセッサがECCハードウェアを含んでいない場合には、このソフトウェアはECCコードを提供してもよい。
SLC NANDメモリの種々の実施形態においては、予備領域におけるデータは、ホストセクターとともに、或いは個別にプログラムされうる。例えば、割り当て管理情報、或いはブロック管理情報、及びECCチェックビットは、データがホストから到着する前にまずプログラムされうる。更には、ホストデータのためのECCチェックビットは、ホストデータと同時にプログラムされてもよい。
MLC NANDメモリの種々の実施形態においては、予備領域データはホストデータと同時にプログラムされなければならない。更には、全ページが同時にプログラムされうる。ブロック管理データは、ホストセクターがバッファにおいて受信される前に決定されうるが、ホストデータがプログラムされるまではプログラムされない。幾つかの実施形態においては、ホストデータがメモリ内へとプログラムされる前に、ECC回路を介してセクターがストリームされると、ブロック管理は、ホストセクターの一つへと加えられる。したがって、ブロック管理データのためにエラー訂正を個別に実施するのと比較して、追加の時間は必要がない。
図2に示されるメモリシステム200の種々の実施形態においては、読み出し動作、及びプログラム動作の手順は、ページに基づいて実施される(例えば、NORフラッシュメモリにおいて実施される、1バイト或いは単語に基づくのとは対照的に、一時に528バイト)。更には、消去動作は、ブロックに基づいて実施される。動作においては、種々の実施形態におけるページの読み出し動作中に、528バイトのページが、出力のためにメモリからデータレジスタへと伝送される。ページのプログラム動作においては、528バイトのページが、データレジスタへと書き込まれ、続いてメモリアレイ内へとプログラムされる。ブロック消去動作においても、一群の連続したページが、単一の動作において消去されうる。
図3は、本発明の種々の実施形態に係る、NANDフラッシュメモリアレイ300の概要図を示す。メモリアレイ300は、メモリアレイにおいて典型的に使用される全構成要素を示してはいない。例えば、3本のビット線(BL1、BL2、及びBL32)のみが示されているが、実際には使用されるビット線の本数はメモリの密度に依存する。ビット線は、以下、(BL1−BL32)と称する。
NANDメモリは、一連のストリング304、305において配列される、浮遊ゲートメモリセル301のアレイ300を含む。各浮遊ゲートメモリセル301は、それぞれの一連のストリング304、305においてドレインからソースへと接続されうる。複数の一連のストリング304、305を横切るワード線(WL0−WL31)は、その動作を制御するため、ある行における各浮遊ゲートセルの制御ゲートへと接続される。ビット線(BL1−BL32)は、最終的には各セル301の状態を検出する(示されていない)センス増幅器へと接続される。
動作においては、ワード線(WL0−WL31)は、書き込み或いは読み出しされる一連のストリング304、305における個々の浮遊ゲートメモリセルを選択し、パススルーモードにおいては、各一連のストリング304、305において、残りの浮遊ゲートメモリセルを操作する。浮遊ゲートメモリセルの各一連のストリング304、305は、ソース選択ゲート316、317によってソース線306へと接続され、ドレイン選択ゲート312、313によって個々のビット線(BL1−BL32)へと接続される。ソース選択ゲート316、317は、その制御ゲートへと接続されたソース選択ゲート制御線SG(S)318によって制御される。ドレイン選択ゲート312、313は、ドレイン選択制御線SG(D)314によって制御される。
それぞれのセルは、1セルにつき単一ビット、或いは1セルにつき複数ビットとしてプログラムされうる。SLCは、1セルにつき単一ビットをプログラムすることを許容し、MLCは、1セルにつき複数ビットをプログラムすることを許容する。各セルの閾値電圧(V)は、セル内に格納されるデータを決定する。例えば、1セルにつき単一ビットのアーキテクチャにおいては、1VのVがプログラムされたセルを示しうるのに対して、−1VのVは消去されたセルを示しうる。マルチレベルセルは、二つよりも多くのVウインドウを有し、それぞれが異なる状態を示す。MLCは、ビットパターンをセルに格納された特定の電圧範囲へと割り当てることによって、従来のフラッシュセルのアナログ特性を利用する。この技術によって、セルに割り当てられた電圧範囲の量に依存して、1セルにつき二つ以上のビットを格納することが可能となる。
例えば、セルは4つの異なる電圧V分布を割り当てられ、それぞれが約200mVの幅を有する。種々の実施形態においては、さらに0.3Vから0.5Vの分離が、各V分布範囲の間に割り当てられる。V分布間のこの分離域は、複数のV分布が重なって論理エラーを引き起こさないように定められる。検証中に、セルに格納された電圧が01の高いV分布内であると検出された場合には、セルは01を格納している。電圧が00の二番目に高い分布内である場合には、セルは00を格納している。これが、セルに使用されるのと同じだけの範囲(レベル)にわたって継続する。
プログラミング動作中、フラッシュメモリセルがプログラムされるために選択されたワード線(WL)には、一連の高電圧プログラミングパルスが供給される。高電圧プログラミングパルスは、典型的には、16Vから開始して0.5Vの増加量で増加する。10Vの増加しない高電圧パルスは、選択されていないWLに対して印加される。
選択されたセルが、選択されたWLにおいてプログラミングされるのを抑止するために、一実施形態においては、BLに対して〜1.3Vを印加することによって、抑止されるセルのチャネルはビット線(BL)から分断される。選択されたWLにおいて選択されたセルをプログラムするために、チャネルはBLを介して0Vへと接地される。チャネルとWLの間に形成される大きな電位差がセルをプログラムさせるように設計され、デバイスのVはより高いプログラミングパルスが印加されるにつれて増加する。
種々の実施形態においては、各プログラミングパルス間で、検証フェーズが実施される。検証中、選択されたWLは0Vへと下げられ、選択されていないWLは5Vへと下げられ、選択されたセルの状態が検出される。WLにおける0Vによってデバイスに伝導が誘発されないように、セルがVレベルを有するようにプログラムされる場合、デバイスはプログラムされているものと考えられる。さもなければ、セルは消去されているものと考えられ、プログラミングパルスの高さは0.5Vずつ増加し、選択されたWLへと再度印加される。プログラムされるべき、全ての選択されたセルが実際にプログラムされるまで、このプロセスが繰り返される。
典型的なメモリブロックは、64論理ページを含みうる。64論理ページは、32本の物理的なWLとともに形成されうる。各WLは2論理ページを含みうる。例えば、一つのWLには4Kビットセルが存在してもよい。このうち、2Kビットは、別の2Kビットページと同一のWLを共有する1ページに専用であってもよい。各セルが複数のV分布レベルモードにおいて使用される場合、記述された構成のWLは、1ページにつき2Kビットを有する4ページを保持する。これらのページのうちの1つがプログラムされる場合、同一のWL上の第二のページは、たとえ抑止されていたとしても、外乱状態を経験する。したがって、共有されたWLを伴うページは、プログラミング外乱を経験しうる。共有されたWL上に引き起こされるプログラミング外乱は、同一のWL上にある第二のページにおいてあらかじめプログラムされているセルのV分布をシフトさせ、その分布をより広くさせる。1セルにつき二つのレベルを使用する不揮発性メモリデバイスにとっては、このことは主要な問題とはなり得ない。なぜなら、二つの分布間の分離域は、分布が外乱状態によって重複するのを妨げるほどに十分大きいからである。しかしながら、MLC動作にとっては、単一セルが物理的な単一のセルにつき2ビット、或いは4レベルを表すために使用される場合、分離域が減少し、V分布が重複する、或いはシフトするのを防止するためには、外乱状態を減少させることが望ましくなる。
図4は、本発明の種々の実施形態に係る、図3のNANDフラッシュメモリアレイの閾値電圧の分布を示す図400を示す。図400内の閾値電圧の分布は、各メモリセルが2ビットのデータ、すなわち4つのデータ状態を格納することを示す。図400は、閾値電圧を表すy軸402と、メモリセルにおける論理レベルを表す曲線406、408、410、及び412を有するx軸404を含む。曲線406は、負の閾値電圧において、消去状態にあるアレイ122(図1参照)内のセルの閾値レベルVの分布を表す。曲線408、及び曲線410は、それぞれ“10”及び“00”を格納するための閾値電圧分布を表すために示される。更に、曲線408は、0Vと1Vの間にあり、曲線410は1Vと2Vの間にある。曲線412は、2Vより大きく4.5V未満に設定された、最も高い閾値電圧レベルにおいて、状態“01”へとプログラムされたセルの分布を示す。
単一のメモリセル内に格納された2ビットのうちのそれぞれは、上の実施例において記述されたように、異なる論理ページに由来する。すなわち、各メモリセル内に格納された2ビットのうちの各ビットは、互いに異なる論理ページアドレスを有する。図4に示される下位のページビットは、偶数ページアドレス(0、2、4、・・・N/2)が要求された場合にアクセスされる。上位のページビットは、奇数ページアドレス(1、3、5、・・・[N/2+1])が要求された場合にアクセスされる。改良された信頼性を提供するために、個々の分布は減少し、それによって、より大きい読み出しマージンが提供されうる。
読み出し動作においては、ターゲットの(選択された)メモリセルのワード線は、低電圧レベルにおいて維持されうる。選択されていないセルのワード線は全て、その浮遊ゲートの電荷に関わらず、選択されていないセルを活性化させるために十分に高い電圧に接続されうる。選択されたセルが、帯電していない浮遊ゲートを有する場合には、それは活性化される。ビット線、及びソース線は、続いてアレイ内の一連のメモリセルを介して接続される。選択されたセルが帯電した浮遊ゲートを有する場合には、それは活性化されない。その場合には、ビット線、及びソース線は、一連のメモリセルを介して接続されない。
NANDフラッシュメモリデバイスの中には、メモリアレイ(ブロック)内に初期不良ブロックを含むものもある。これらの不良ブロックは、製造者によって不良品として標示され、いかなるシステムにおいても使用されるべきではないことが示されうる。更には、NANDデバイスは、劣化して磨耗する可能性があり、それによって、通常のデバイス動作中に、更なる不良ブロックが発生する結果となる。更には、NANDフラッシュデバイス動作中に、或いは長期の休止期間中に、ビットエラーが生じうる。したがって、NANDフラッシュメモリはデータインテグリティ(整合性)を確保するためにECC機能を提供されうる。
NANDフラッシュメモリは、各ページに“スペアエリア(予備領域)”と呼ばれる追加の記憶装置を含みうる。種々の実施形態においては、予備領域は64バイト(512バイトセクターにつき16バイト)を含む。種々の実施形態においては、予備領域は、ECC、及び、不良ブロック情報の格納、ウェアレベリング、或いは論理‐物理ブロックマッピングのために使用される、ブロック管理データのような情報を格納するために使用される。ウェアレべリングは、ファイルがプログラムされる度毎に、論理メモリアドレスを異なる物理メモリアドレスへ変換することを含む。ウェアレべリングは、メモリアレイの全範囲へとNANDフラッシュメモリセルの使用を拡大し、それによって全メモリセルの使用を均一にし、デバイスの寿命を延長するのに役立つ。この動作は、NANDフラッシュメモリデバイスへ接続されたコントローラによって、モニターされ、かつ実施されうる。
図5は、本発明の種々の実施形態に係る、エラー訂正のための装置を示すシステム500のブロック図を示す。システム500は、ホスト502、バッファ504、エラー訂正システム518、ダイレクトメモリアクセスコントローラ(DMA)520、及びフラッシュメモリ522を含む。エラー訂正システム518は、エラー訂正チェックビット発生器506、ブロック管理データブロック508、第一のマルチプレクサ510、シンドローム発生器512、エラー訂正モジュール514、及び第二のマルチプレクサ516を含む。種々の実施形態においては、システム500は、ソフトウェア、ハードウェア、或いはその二つの組み合わせにおいて実装される、NANDフラッシュメモリコントローラを含む。システム500のコントローラは、図1の制御回路126と類似してもよいし、或いは、同一であってもよい。種々の実施形態においては、バッファ504は、(示されていない)マルチメディアカードインターフェイスを介して、ホスト502へと接続される。種々の実施形態においては、エラー訂正システム518は、(示されていない)NANDフラッシュコントローラハードウェアにおいて実装される。エラー訂正は、ハードウェア、或いはソフトウェアにおいて実施されうる。エラー訂正システム518は、図1のエラー訂正システム130と類似してもよいし、或いは、同一であってもよい。
図5に示されるように、ホスト502は、バッファ504へと接続され、DMA520は、フラッシュメモリ522へと接続される。バッファ504、及びDMA520の両者は、それぞれホスト502、及びフラッシュメモリ522からデータを送信し、受信するように構成される。種々の実施形態においては、ホスト502、及びフラッシュメモリ522とのデータのやりとりは、8ビット幅、或いは16ビット幅の双方向データバスを介して実施される。バッファ504の出力は、エラー訂正モジュール514、エラー訂正チェックビット発生器506、及び第一のマルチプレクサ510の入力へと接続される。第一のマルチプレクサ510の出力は、DMA520の入力へと接続される。DMA520の出力は、シンドローム発生器512、ブロック管理モジュール508、及び第二のマルチプレクサ516の入力へと接続される。
幾つかの実施形態においては、ブロック管理モジュール508は、メモリブロック内の不良ブロック(無効ブロック)とその位置に関する情報を格納する。無効ブロックは、二つのグループへと分類されうる。すなわち、先天的な(inherent)無効ブロックと後天的な(acquired)無効ブロックとである。先天的な無効ブロックは、NANDデバイスの製造プロセス中に生じる。一方で、後天的な無効ブロックは製造工場によっては同定されない。これらのブロックは、消耗の結果として顧客側に起源がある。消耗されたブロックは、無効ブロックとして標示され、ブロック消去、或いはページプログラム障害のいずれかがあった場合には、それ以降アクセスされることはない。後天的な無効ブロックは、通常、先天的な無効ブロックと同一の方法によって標示される。ブロック管理データブロック508は、エラー訂正モジュール514、及びエラー訂正チェックビット発生器506へと接続され、エラー訂正モジュール514、及びエラー訂正チェックビット発生器506からデータを送信、及び受信する。第二のマルチプレクサ516の出力は、バッファ504の入力へと接続される。
種々の実施形態においては、ホスト502からのデータワードがフラッシュメモリ522へと書き込まれる場合、ワードは最初にページの一部としてバッファ504に格納される。種々の実施形態においては、ページは、情報のビットとして格納される、ホスト502からの情報を有する、一連のセクターを含む。種々の実施形態においては、フラッシュメモリ522へとページをプログラムするよう(示されていない)コントローラから指示を受信すると、(おそらくページの最終セクターを除いて)ページ内に含まれる各セクターのために、エラー訂正チェックビットがエラー訂正チェックビット発生器506において生成される。ページの最終セクターは、修正されたセクターを形成するために、ブロック管理モジュール508によって提供されるブロック管理データと組み合わせられうる。エラー訂正チェックビットは、修正されたセクターのために生成される。最終セクター以外の一連のセクター、修正されたセクター、及びそれらに対応するエラー訂正ビットは、図7A−図7Cに示されるようにフラッシュメモリ522におけるページとして格納される。
種々の実施形態においては、データワードがフラッシュメモリ522から読み直される場合、ページに格納されたエラー訂正チェックビットは再計算され、フラッシュメモリ522から読み出された、格納されたエラー訂正チェックビットと比較される。比較の結果として相違がある場合には、それはエラーが生じたということを示している。このような比較の結果はシンドロームと呼ばれ、シンドローム発生器512において生成される。シンドロームがゼロであることがわかった場合、エラーがなかったということが決定されうる。シンドロームがゼロでない場合、どのデータビット、或いはECCビットがエラーであるかを同定するために、或いは、エラーが訂正不可能であることを決定するために、シンドロームが使用されうる。種々の実施形態においては、シンドロームがゼロでない場合、どのビットがエラーであるかを決定するために、テーブルにインデックスを作成するためにシンドロームが使用されうる。種々の実施形態においては、このテーブルルックアップステージは、ハードウェアにおいて実装され、他の実施形態においては、ソフトウェアにおいて実装される。
幾つかの実施形態においては、実装されるエラー訂正コードのタイプと、任意のシステムにおいて必要とされるエラー保護の程度は、格納されるデータのタイプ、及び、使用されるNANDフラッシュ技術のタイプ(SLC、或いはMLC)に依存する。種々の実施形態においては、使用されるエラー訂正コードは、ボース‐チョードリー‐ホッケンガム(BCH)、リード‐ソロモン(RS)、ハミング、ゴレイ、リードミュラー、ゴッパ、及びデニストンコードのうちのいずれか一つ、或いはそれ以上を含んでもよい。幾つかの実施形態においては、8つの単一ビットエラーが、エラー訂正コードを使用して、任意のいずれのセクターにおいても訂正されうる。種々の実施形態においては、16の単一のビットエラーが、エラー訂正コードを使用して、任意のいずれのセクターにおいても訂正されうる。
図6は、種々の実施形態に係る、NANDフラッシュメモリにおけるページをプログラミングする方法のフローチャートを示す。方法600は、ページをプログラムするためのブロック602から開始する。ここで、図5、及び図6を参照すると、方法600は、フラッシュメモリ522へのページアドレスとともに、プログラムコマンドを送信するステップをブロック604において含んでもよいことが明らかである。方法600は、ホスト502からバッファ504へと1つのセクターを伝送するステップを、ブロック606において含みうる。方法600は、フラッシュメモリ522へと、エラー訂正システム518におけるECC論理を介して一つずつ、バッファ504に格納されたセクターを伝送するステップを、ブロック608において含みうる。
方法600は、そのセクターがページの最終セクターであるかどうかを決定するステップをブロック610において含みうる。セクターが最終セクターであると決定された場合、続いて、方法はブロック614へと進行する。セクターが最終セクターではないと決定された場合、方法はブロック612へと戻り、そこで対応するセクターのECCバイトがフラッシュメモリ522へと伝送される。
方法600は、ECC論理を介して、続いてフラッシュメモリ522へと、ブロック管理データをクロックするステップを、ブロック614において含みうる。方法600は、最終セクターに対応するECC冗長バイト及び、ブロック管理データをフラッシュメモリ522へと伝送するステップを、ブロック616において含みうる。方法600は、ページをプログラムするために、プログラム確認コマンドをフラッシュメモリ522へと送信するステップを、ブロック618において含みうる。方法600は、フラッシュメモリ522からプログラム確認状態を受信するステップを、ブロック620において含みうる。
図7A、及び図7Bは、種々の実施形態に係る、4つのセクター、及びブロック管理データと組み合わせられるECCチェックビットをそれぞれ示すページ700、及び720のデータ構造を示す。図7Aに示されるように、ページ700は、フィールド702−710を含む。フィールド702、704、706、及び708は、データビットを含むセクターを表す。フィールド703、705、707、及び709は、それぞれセクター702、704、706、及び708のために生成されるECCチェックビットに対応する。フィールド710は、ブロック管理データを含む。種々の実施形態においては、フィールド702、704、706、及び708は、ホスト502からフラッシュメモリ522へと伝送されるべきデータを集合的に含む。種々の実施形態においては、フィールド702、704、706、及び708は、512バイトの情報を含む。幾つかの実施形態においては、フィールド703、705、707、及び709は、13バイトのECCチェックコードを含む。種々の実施形態においては、ブロック管理データ710は、12バイトのブロック管理情報を含む。
図7Bに示されるように、ページ720はフィールド722−730を含む。フィールド722、724、726、及び728は、データビットを含むセクターを表す。フィールド723、725、727、及び729は、それぞれセクター722、724、726、及び728のために生成されるECCチェックビットに対応する。フィールド730は、ブロック管理データを含む。種々の実施形態においては、フィールド722、724、726、及び728は、ホストデバイス502からフラッシュメモリ522へと伝送されるデータを集合的に含む。種々の実施形態においては、フィールド722、724、726、及び728は、512バイトの情報を含む。幾つかの実施形態においては、フィールド723、725、727、及び729は、26バイトのECCチェックコードを含む。種々の実施形態においては、ブロック管理データ730は、10バイトのブロック管理情報を含む。
図7Cは、本発明の種々の実施形態に係る、8つのセクター、及びブロック管理データと組み合わせられるECCを示すページ740のデータ構造を示す。図7Cに示されるように、ページ740は、フィールド741、742・・・759を含む。フィールド741、742・・・748は、データビットを含むセクターを表す。フィールド751、752・・・758は、それぞれセクター741、742・・・748のために生成されるECCチェックビットに対応する。フィールド759は、ブロック管理データを含む。種々の実施形態においては、セクターフィールド741、742・・・748は、ホストデバイス502からフラッシュメモリ522へと伝送されるデータを集合的に含む。種々の実施形態においては、セクター741、742・・・748は、512バイトの情報を含む。幾つかの実施形態においては、フィールド751、752・・・758は、26バイトのECCチェックビットを含む。種々の実施形態においては、フィールド759は、10バイトのブロック管理情報を含む。
図8は、種々の実施形態に係る、NANDフラッシュメモリにおけるエラー訂正を実施するための方法800を示すフロー図を示す。方法800は、ページにおける一つ以上の選択されたセクターを除く、ページの複数のセクターのそれぞれのために、エラー訂正データを生成するステップをブロック802において含みうる。方法800は、修正されたセクターを生成するために、ブロック管理データを選択された(複数の)セクターと組み合わせるステップを、ブロック804において含みうる。方法800は、修正されたセクターのためにエラー訂正データを生成するステップを、ブロック806において含みうる。
方法800は、複数のセクター、選択されたセクター以外の複数のセクターのそれぞれのためのエラー訂正データ、修正されたセクターのためのブロック管理データ及びエラー訂正データを組み合わせるステップを、ブロック808において含みうる。
図9は、種々の実施形態に係る、NANDフラッシュメモリにおけるエラー訂正を実施するための方法900を示すフロー図を示す。方法900は、マルチレベルセルフラッシュメモリにおいて、複数のデータセクター及び、ブロック管理データを格納するステップを、ブロック902において含みうる。
方法900は、組み合わせられたブロック管理データセクターを生成するために、ブロック管理データを、複数のデータセクターのうちの少なくとも一つと組み合わせるステップを、ブロック904において含みうる。
方法900は、組み合わせられたブロック管理データセクターを生成するために使用される、複数のデータセクターのうちの少なくとも一つ以外の複数のデータセクターのそれぞれのためにエラー訂正データを生成するステップを、ブロック906において含みうる。
方法900は、組み合わせられたブロック管理データセクターのための、組み合わせられたブロック管理エラー訂正データを生成するステップを、ブロック908において含みうる。
方法900は、複数のデータセクター、ブロック管理データ、複数のデータセクターのそれぞれのためのエラー訂正データ、及び、組み合わせられたブロック管理エラー訂正データを組み合わせるステップを、ブロック910において含みうる。
本明細書に記述された装置、システム及び方法を実施することで、結果としてNANDフラッシュメモリにとってより良いエラー訂正機能が利用可能になる。更には、エラー訂正動作のために要する時間、及びエラー訂正に使用されるメモリが著しく節約されうる。
本明細書の一部を形成する、付随する図面は、例示の目的のためであって、限定する目的ではなく、本発明の主題が実施されうる特定の実施形態を示している。示されている実施形態は、当業者が本明細書に開示される教示を実施することが可能なほど十分詳細に記述されている。他の実施形態は、本開示の範囲から逸脱することなく構造的、及び論理的な置換、及び変形がなされるように、そこから利用され、派生されうる。したがって、この「発明を実施するための形態」は限定する目的でなされるわけではなく、種々の実施形態の範囲は、付随の請求項、及び、請求項が権利を与えられるあらゆる種類の均等物によってのみ定義される。
本発明の主題のこのような実施形態は、本明細書においては、単に簡便性のために個別に、或いは集合的に、“発明”という用語で言及されているが、実際には一つ以上が開示されている場合でも、この用途の範囲をいかなる単一の発明、或いは発明的な概念へと任意に限定することを意図するものではない。このように、本明細書においては、特定の実施形態が示され、説明されてきたが、同一の目的を達成すると予測されるいかなる装置が、示される特定の実施形態と置換されてもよい。本開示は、種々の実施形態のいかなる、及び全ての改作物或いは変形物を包含するように意図される。上述の実施形態と、本明細書においては特に記述されていない他の実施形態との組み合わせは、上記の説明を再考することによって当業者にとって明らかになるであろう。
“ロウ”論理信号、及び“ハイ”論理信号のための電圧の大きさは、通常定義されない。なぜなら、負の電圧、及び正の電圧を含む、様々な相対的な値を有しうるからである。“ハイ”及び“ロウ”論理信号は、二進値を表すことにおいて、お互いに対するその関係によってのみ定義される。典型的には、“ハイ”論理信号は“ロウ”論理信号よりも高い電圧レベル、或いは電位を有し、もしくは、“ロウ”信号は、“ハイ”信号とは異なる極性、或いは負の極性を有しうる。当業者にとって理解されるように、幾つかの論理システムにおいては、相対的な“ロウ”論理値が接地を基準として負の電位によって表される場合には、“ハイ”論理値は、接地電位によって表されることさえありうる。
本開示の要約書は、読者が技術的な開示の特徴を直ちに確認することを可能にする要約書を必要とするという、37C.F.R.§1.72(b)に従うために提供される。要約書は、請求項の範囲、或いは意味を解釈する、或いは限定するためには使用されないことを理解したうえで提出される。前述の「発明を実施するための形態」においては、本開示を簡素化する目的のために、単一の実施形態において種々の特徴がともにグループ化されている。この開示の方法は、各請求項において明確に列挙されるよりも、より多くの特徴を必要とすると解釈されるべきではない。むしろ、本発明の主題は、開示された単一の実施形態の全特徴よりも少ない特徴において理解されうる。このように、付随する請求項は、これによって「発明を実施するための形態」に組み込まれ、各請求項は個々の実施形態として独立する。
[結論]
種々の実施形態は、本明細書において、メモリデバイスにおけるプログラミングシステム管理データのための機構として説明された。プログラミングは、バッファとダイレクトメモリアクセスとの間に接続される、エラー訂正モジュールを使用して内部で実施されうる。種々の実施形態においては、メモリデバイスはMLC NANDデバイスを含む。

Claims (6)

  1. バッファとダイレクトメモリアクセとの間に接続された第一のマルチプレクサであって、前記第一のマルチプレクサは前記バッファから前記ダイレクトメモリアクセへとデータを伝送する、第一のマルチプレクサと、
    前記バッファと前記ダイレクトメモリアクセスとの間に接続された第二のマルチプレクサであって、前記第二のマルチプレクサは前記ダイレクトメモリアクセスから前記バッファへとデータを伝送する、第二のマルチプレクサと、
    前記第一のマルチプレクサへと接続されたエラー訂正チェックビット発生器と、
    前記第二のマルチプレクサと前記バッファへと接続されたエラー訂正モジュールと、
    前記エラー訂正モジュールと前記ダイレクトメモリアクセスとの間に接続されたシンドローム発生器であって、前記シンドローム発生器は前記ダイレクトメモリアクセスから受信されたデータにおいて少なくとも1ビットのエラーの存在を検出する、シンドローム発生器と、
    前記エラー訂正チェックビット発生器、前記エラー訂正モジュール、前記第一のマルチプレクサ、及び前記ダイレクトメモリアクセスに接続されたブロック管理モジュールであって、前記ブロック管理モジュールは一組のブロック管理データを生成する、ブロック管理モジュールと、を含む装置であって、
    前記シンドローム発生器は、前記ダイレクトメモリアクセスから前記バッファへと伝送されたデータにおける前記検出されたエラーに基づいてシンドロームを生成し、生成した前記シンドロームを前記エラー訂正モジュールへと伝送することを特徴とする装置。
  2. 前記ダイレクトメモリアクセスは、マルチレベル(MLC)NANDフラッシュメモリへと接続される、ことを特徴とする請求項1に記載の装置。
  3. 前記ブロック管理モジュールは、前記バッファから前記ダイレクトアクセスへと伝送されたデータのそれぞれのページのためにブロック管理データを提供し、前記ブロック管理データは、前記バッファから前記ダイレクトアクセスへと伝送されたデータのそれぞれのページの最終セクターと組み合わせられる、
    ことを特徴とする請求項2に記載の装置。
  4. 前記エラー訂正チェックビット発生器は、それぞれのページの最終セクターを除いて、それぞれのページの前記複数のセクターのそれぞれのためにエラー訂正コードを生成する、
    ことを特徴とする請求項3記載の装置。
  5. 前記エラー訂正チェックビット発生器は、前記ブロック管理データ、及びそれぞれのページの最終セクターのためのエラー訂正コードを生成する、
    ことを特徴とする請求項に記載の装置。
  6. 前記第一のマルチプレクサは、複数のセクター、特定のセクターを除く前記複数のセクターのそれぞれのためのエラー訂正データ、ならびに、前記ブロック管理データと組み合わせられた前記特定のセレクターのための前記ブロック管理データ及びエラー訂正データ、を含むページを受信する、
    ことを特徴とする請求項に記載の装置。
JP2009547272A 2007-01-26 2008-01-22 Nandメモリのためのプログラミング管理データ Active JP5686516B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/698,455 US7861139B2 (en) 2007-01-26 2007-01-26 Programming management data for NAND memories
US11/698,455 2007-01-26
PCT/US2008/000804 WO2008091590A1 (en) 2007-01-26 2008-01-22 Programming management data for nand memories

Publications (3)

Publication Number Publication Date
JP2010517168A JP2010517168A (ja) 2010-05-20
JP2010517168A5 JP2010517168A5 (ja) 2011-03-17
JP5686516B2 true JP5686516B2 (ja) 2015-03-18

Family

ID=39367515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009547272A Active JP5686516B2 (ja) 2007-01-26 2008-01-22 Nandメモリのためのプログラミング管理データ

Country Status (8)

Country Link
US (3) US7861139B2 (ja)
EP (1) EP2106587B1 (ja)
JP (1) JP5686516B2 (ja)
KR (1) KR101312146B1 (ja)
CN (1) CN101627371B (ja)
AT (1) ATE552552T1 (ja)
TW (1) TWI380313B (ja)
WO (1) WO2008091590A1 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7861139B2 (en) * 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
JP5064820B2 (ja) * 2007-02-01 2012-10-31 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
TWI362668B (en) * 2008-03-28 2012-04-21 Phison Electronics Corp Method for promoting management efficiency of an non-volatile memory storage device, non-volatile memory storage device therewith, and controller therewith
JP2010061242A (ja) * 2008-09-01 2010-03-18 Toshiba Storage Device Corp 記憶装置、制御装置および制御プログラム
TWI393146B (zh) * 2008-10-15 2013-04-11 Genesys Logic Inc 具有錯誤修正碼容量設定單元之快閃記憶體控制器及其方法
US8161354B2 (en) * 2008-10-16 2012-04-17 Genesys Logic, Inc. Flash memory controller having configuring unit for error correction code (ECC) capability and method thereof
KR20100089288A (ko) * 2009-02-03 2010-08-12 삼성전자주식회사 휴대용 단말기에서 보안 정보를 관리하기 위한 장치 및 방법
US8555141B2 (en) * 2009-06-04 2013-10-08 Lsi Corporation Flash memory organization
US8149622B2 (en) * 2009-06-30 2012-04-03 Aplus Flash Technology, Inc. Memory system having NAND-based NOR and NAND flashes and SRAM integrated in one chip for hybrid data, code and cache storage
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US20110040924A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
CN101996685B (zh) * 2009-08-11 2013-12-04 中颖电子股份有限公司 存储器管理数据的差错控制方法及差错控制器
EP2299362A3 (en) * 2009-08-18 2011-05-04 ViaSat, Inc. Forward error correction for memories
US8077515B2 (en) 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
US8271697B2 (en) 2009-09-29 2012-09-18 Micron Technology, Inc. State change in systems having devices coupled in a chained configuration
US8589766B2 (en) * 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US8451664B2 (en) 2010-05-12 2013-05-28 Micron Technology, Inc. Determining and using soft data in memory devices and systems
US8892981B2 (en) * 2010-09-30 2014-11-18 Apple Inc. Data recovery using outer codewords stored in volatile memory
TWI473105B (zh) * 2011-01-18 2015-02-11 Macronix Int Co Ltd 具有錯誤自動檢查與更正位元之三維記憶體結構
US8732557B2 (en) * 2011-05-31 2014-05-20 Micron Technology, Inc. Data protection across multiple memory blocks
US9086983B2 (en) * 2011-05-31 2015-07-21 Micron Technology, Inc. Apparatus and methods for providing data integrity
KR101417827B1 (ko) * 2011-10-24 2014-07-11 한양대학교 산학협력단 에러 정정 코드의 저장을 위한 플래시 메모리 제어장치 및 방법
KR20130049332A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US8788915B2 (en) 2012-03-05 2014-07-22 Micron Technology, Inc. Apparatuses and methods for encoding using error protection codes
US8954825B2 (en) 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
KR102072449B1 (ko) 2012-06-01 2020-02-04 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 리페어 방법
US8984369B2 (en) * 2012-11-21 2015-03-17 Micron Technology, Inc. Shaping codes for memory
US9535777B2 (en) * 2013-11-22 2017-01-03 Intel Corporation Defect management policies for NAND flash memory
US9417945B2 (en) 2014-03-05 2016-08-16 International Business Machines Corporation Error checking and correction for NAND flash devices
JP6131207B2 (ja) * 2014-03-14 2017-05-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR102308777B1 (ko) 2014-06-02 2021-10-05 삼성전자주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
US10395753B2 (en) * 2014-08-28 2019-08-27 Winbond Electronics Corp. Semiconductor memory device and programming method thereof
US9400713B2 (en) * 2014-10-02 2016-07-26 Sandisk Technologies Llc System and method for pre-encoding of data for direct write to multi-level cell memory
JP6411282B2 (ja) * 2015-05-15 2018-10-24 ラピスセミコンダクタ株式会社 半導体メモリ及びデータ書込方法
JP2017045405A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
JP6115740B1 (ja) * 2015-12-17 2017-04-19 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
JP6239078B1 (ja) * 2016-11-04 2017-11-29 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法
US10303543B1 (en) * 2017-02-09 2019-05-28 Cadence Design Systems, Inc. System and method for memory control having address integrity protection for error-protected data words of memory transactions
US10275306B1 (en) * 2017-02-09 2019-04-30 Cadence Design Systems, Inc. System and method for memory control having adaptively split addressing of error-protected data words in memory transactions for inline storage configurations
TWI671637B (zh) * 2018-04-25 2019-09-11 點序科技股份有限公司 記憶體管理裝置及其操作方法
US11334492B2 (en) 2019-10-24 2022-05-17 International Business Machines Corporation Calibrating pages of memory using partial page read operations
CN113010112B (zh) * 2021-03-09 2022-11-11 重庆邮电大学 一种基于可变电阻式存储器的数据分配优化方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3272903B2 (ja) * 1995-03-16 2002-04-08 株式会社東芝 誤り訂正検出回路と半導体記憶装置
KR100214309B1 (ko) * 1997-05-09 1999-08-02 윤종용 디지털비디오디스크 재생장치에 있어서 디스크램블링 신뢰도를 향상시키는 방법 및 장치
JP3233079B2 (ja) * 1997-09-30 2001-11-26 ソニー株式会社 データ処理システム及びデータ処理方法
JPH11212873A (ja) * 1998-01-27 1999-08-06 Seiko Epson Corp コンピューターシステムの操作方法
KR100354744B1 (ko) * 1998-08-04 2002-12-11 삼성전자 주식회사 고밀도기록매체를위한인터리브방법및그회로
JP4105819B2 (ja) * 1999-04-26 2008-06-25 株式会社ルネサステクノロジ 記憶装置およびメモリカード
JP2002074862A (ja) * 2000-08-25 2002-03-15 Toshiba Corp データ処理方法及び装置及び記録媒体及び再生方法及び装置
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
US20040083334A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
JP4550439B2 (ja) * 2003-02-28 2010-09-22 東芝メモリシステムズ株式会社 Ecc制御装置
KR100562906B1 (ko) 2003-10-08 2006-03-21 삼성전자주식회사 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩
JP2005267676A (ja) * 2004-03-16 2005-09-29 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
US7212440B2 (en) * 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
US7246195B2 (en) 2004-12-30 2007-07-17 Intel Corporation Data storage management for flash memory devices
US7424648B2 (en) * 2005-03-10 2008-09-09 Matsushita Electric Industrial Co., Ltd. Nonvolatile memory system, nonvolatile memory device, data read method, and data read program
JP2007011872A (ja) * 2005-07-01 2007-01-18 Toshiba Corp メモリカードとその制御方法
US7861139B2 (en) 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories

Also Published As

Publication number Publication date
US8458564B2 (en) 2013-06-04
WO2008091590A1 (en) 2008-07-31
US20110093766A1 (en) 2011-04-21
JP2010517168A (ja) 2010-05-20
US8943387B2 (en) 2015-01-27
ATE552552T1 (de) 2012-04-15
US20080184094A1 (en) 2008-07-31
KR101312146B1 (ko) 2013-09-26
EP2106587B1 (en) 2012-04-04
US7861139B2 (en) 2010-12-28
TWI380313B (en) 2012-12-21
EP2106587A1 (en) 2009-10-07
CN101627371A (zh) 2010-01-13
TW200839776A (en) 2008-10-01
US20130254630A1 (en) 2013-09-26
CN101627371B (zh) 2012-09-05
KR20090117747A (ko) 2009-11-12

Similar Documents

Publication Publication Date Title
JP5686516B2 (ja) Nandメモリのためのプログラミング管理データ
US11494085B2 (en) Flash memory controller, flash memory module and associated electronic device
US10249383B2 (en) Data storage device and operating method thereof
US10102059B2 (en) Data storage device capable of preventing a data retention fail of a nonvolatile memory device and operating method thereof
KR101405741B1 (ko) 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작
CN107133122B (zh) 存储器控制方法
US8069382B2 (en) Memory cell programming
US9703698B2 (en) Data writing method, memory controller and memory storage apparatus
KR100902008B1 (ko) 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템
JP6345210B2 (ja) 軟判定復号のための物理アドレスの相互関連付け
US20190354478A1 (en) On-Chip Copy with Data Folding in Three-Dimensional Non-Volatile Memory Array
US20100241929A1 (en) Semiconductor Memory Device for Performing Additional ECC Correction According to Cell Pattern and Electronic System Including the Same
KR20090019593A (ko) 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템
JP2013016149A (ja) メモリコントローラ及び不揮発性記憶装置
US11106518B2 (en) Failure mode study based error correction
US8533549B2 (en) Memory system and computer system
US20180101317A1 (en) Two pass memory programming method, memory control circuit unit and memory storage apparatus
US11244735B2 (en) Systems and methods for program verification on a memory system
US10706936B1 (en) System and method for avoiding back to back program failure
US10886002B1 (en) NAND field use erase plus defect detections
TWI446346B (zh) 資料讀取方法、記憶體儲存裝置及其記憶體控制器
KR20150029400A (ko) 반도체 장치, 데이터 저장 시스템 및 데이터 저장 방법
CN115938429A (zh) 存储器、存储系统及存储器的操作方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110120

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130307

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130626

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150120

R150 Certificate of patent or registration of utility model

Ref document number: 5686516

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