JP2010517117A - マルチレベル・セル・メモリ・デバイス内のデータをアレンジする方法 - Google Patents
マルチレベル・セル・メモリ・デバイス内のデータをアレンジする方法 Download PDFInfo
- Publication number
- JP2010517117A JP2010517117A JP2008550908A JP2008550908A JP2010517117A JP 2010517117 A JP2010517117 A JP 2010517117A JP 2008550908 A JP2008550908 A JP 2008550908A JP 2008550908 A JP2008550908 A JP 2008550908A JP 2010517117 A JP2010517117 A JP 2010517117A
- Authority
- JP
- Japan
- Prior art keywords
- data
- error
- bit
- bits
- error correction
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】特定なECCスキームと併用した場合に従来の技術の処理時間および電力消費を最小にするための、物理ページの異なるビット・ページ間で入力データをインターリーブする方法を提供する。
【解決手段】データを記憶するための方法は、第一のエラー確率を持つ不揮発性メモリのビット位置にデータの第一の部分を記憶すること、第一のエラー確率よりも低い第二のエラー確率を持つ不揮発性メモリのビット位置にデータの第二の部分を記憶すること、データと一緒にエラー訂正パリティ・ビットを記憶すること、そしてエラー訂正パリティ・ビットを用いて、読み出したデータへエラー訂正スキームを適用することを含む。この方法においては、第二の部分のビットが訂正のためにチェックされる前に、第一の部分の少なくとも一つのビットが、訂正のためにチェックされる。エラー訂正スキームは、すべてのデータの訂正のためのチェックの前に停止される。
【選択図】図1
【解決手段】データを記憶するための方法は、第一のエラー確率を持つ不揮発性メモリのビット位置にデータの第一の部分を記憶すること、第一のエラー確率よりも低い第二のエラー確率を持つ不揮発性メモリのビット位置にデータの第二の部分を記憶すること、データと一緒にエラー訂正パリティ・ビットを記憶すること、そしてエラー訂正パリティ・ビットを用いて、読み出したデータへエラー訂正スキームを適用することを含む。この方法においては、第二の部分のビットが訂正のためにチェックされる前に、第一の部分の少なくとも一つのビットが、訂正のためにチェックされる。エラー訂正スキームは、すべてのデータの訂正のためのチェックの前に停止される。
【選択図】図1
Description
本発明は、マルチレベル・セル・フラッシュメモリ・デバイスに関する。より詳しくは、本発明は、マルチレベル・セル・フラッシュメモリ・デバイスにおけるエラー訂正の分野に関する。
フラッシュメモリ・デバイスは、長年知られている。すべてのフラッシュメモリ・デバイスの内、NANDタイプ・メモリは、メモリへ書き込まれる多数の情報ビットが、これらのビットがメモリへ当初書き込まれた方式とは異なる「フリップ」した状態で読み戻されることがあるという事実において、もちろん他の特定な特性もあるのだが、他のタイプのメモリ(例えばNOR)とは異なる。
「フリップ」ビットを得るこの現象を克服して、NANDタイプ・メモリを実際のアプリケーションに使用可能にするために、これらNANDタイプ・メモリと共にECC(エラー訂正コード)アルゴリズムを利用することは、一般的な技術である。ECCアルゴリズムは、典型的に、フラッシュメモリにより、以下のように利用される。
*データをメモリへ書き込む前に、追加の(冗長な)情報ビットを計算するために、このデータにECCアルゴリズムを適用する。これら冗長ビットは、しばしば「パリティ・ビット」または「同等」と呼ばれ、後に、エラー検出および訂正のために使用される。オリジナル・データとパリティとの組み合わせは、「コード・ワード」と呼ばれている。
*コード・ワード全体(すなわち、オリジナル・データおよびパリティ)は、フラッシュメモリ・デバイスに記録される。注目すべきは、NANDフラッシュメモリ・デバイスの実サイズが、オリジナル・データおよびパリティを収容するように設計されていることである。
*データがメモリから取り出されるとき、コード・ワード全体が読み取られ、そのデータおよびパリティに対して、起こり得る「ビット・フリップ」(すなわち、エラー)を検出して訂正するためにECCアルゴリズムが適用される。
*データをメモリへ書き込む前に、追加の(冗長な)情報ビットを計算するために、このデータにECCアルゴリズムを適用する。これら冗長ビットは、しばしば「パリティ・ビット」または「同等」と呼ばれ、後に、エラー検出および訂正のために使用される。オリジナル・データとパリティとの組み合わせは、「コード・ワード」と呼ばれている。
*コード・ワード全体(すなわち、オリジナル・データおよびパリティ)は、フラッシュメモリ・デバイスに記録される。注目すべきは、NANDフラッシュメモリ・デバイスの実サイズが、オリジナル・データおよびパリティを収容するように設計されていることである。
*データがメモリから取り出されるとき、コード・ワード全体が読み取られ、そのデータおよびパリティに対して、起こり得る「ビット・フリップ」(すなわち、エラー)を検出して訂正するためにECCアルゴリズムが適用される。
注目すべきは、ECCアルゴリズムの実施例が、ハードウェアで、ソフトウェアで、またはハードとソフトとの組み合わせで、等しく得られることである。さらに、ECCアルゴリズムは、メモリ・デバイス内に、メモリ・デバイス・コントローラ内に、ホスト内に実装しても、あるいはシステムのこれらのコンポーネント間で「分散されてもよい」。
フラッシュメモリ・デバイスは、フラッシュメモリ・デバイスの各メモリ・セル内に記憶されるデータ要素(例えば、データ・ビット)の数において異なるものがある。SLC(シングルレベル・セル)メモリは、各メモリ・セル内に単一ビットを記憶するように作動可能であり、MLC(マルチレベル・セル)メモリは、各メモリ・セル内に複数ビットを記憶するように作動可能である。
MLCメモリにおける電圧レベルのコーディング方式、そしてメモリ・セルへの入力データの割り当て方式は、ECCデザインの最適化を達成する上で非常に重要である。
マルチビット・フラッシュセル内にデータを記憶するための、従来の技術による方法が、ムリン氏の米国出願公報第20060101193号に開示されている。この特許出願は、すべての目的に対して、参照により本文に完全に記述したものと見なす。
ムリン出願によれば、入力データをメモリ・デバイスの物理ページへ割り当てる(ECC性能の観点からの)最適な方式は、物理ページの異なるビット・ページ間に、これらのデータ・ビットをインターリーブすることによる。この場合、ビット・ページは、一グループのビットであり、それらの各々のビットが物理ページの異なるセルに属し、且つそれらのすべてのビットがセル内で同じ有効位(すなわち、LSB、…、MSB)を持つと定義する。メモリ・デバイス内にデータをアレンジするそのような方式は、メモリ・デバイスから取り出されてからその本来の順序に再編成された(すなわち、デインターリーブされた)データが、その中にエラー・ビットの均一な(最適な)分布を持つことを保証する。
ムリン出願で開示されたインタリーブ・プロセスは、データをメモリ・デバイスへ書き込むプロセス中、論理ページの入力データが、物理メモリ・ページのビット・ページ間で等しく拡散されることを保証する。換言すれば、インタリーブ・プロセスは、物理ページの各ビット・ページが、この物理ページを共有する入力データ論理ページの各々から、等しい個数のビットを割り当てられることを保証する。
したがって、データがメモリから読み出され、これらデータにデインターリービングが適用されると、デインターリービング・プロシージャによって作成された論理ページの各々は、物理ページのビット・ページの各々からの、等しい割合のビットを含むことになる。
MLCメモリ・デバイスの物理ページへ入力データを割り当てるために適用するインタリーブ・スキームの方式は、本技術では指定されない。なぜなら、データを物理ページ内に均一に分散するどのスキームも、ECC性能の観点において、等しく最適であるためである。
しかし、いくつかのECCスキームに対しては、特定なインターリービング方法を採用することによって、処理時間および電力消費を節約するという追加の利点が得られる可能性がある。
したがって、これらのECCスキームを利用する場合、従来の技術における処理時間および電力消費量を最小にするインターリービング方法を提供することが望ましい。
したがって、本発明の主要な目的は、特定なECCスキームと併用した場合に従来の技術の処理時間および電力消費を最小にするための、物理ページの異なるビット・ページ間で入力データをインターリーブする方法を提供することである。
本文におけるビット・ページBP0、BP1、BP2、BP3の各々は、1セルにつき4ビットの物理ページに関連させて次のように定義する。ビット・ページBP0は、LSB物理ページ・セルに対応する。ビット・ページBP1は、LSB―1物理ページ・セルに対応する。ビット・ページBP2は、LSB―2物理ページ・セルに対応する。そしてビット・ページBP3は、MSB物理ページ・セルに対応する。
本発明の好適実施例によれば、データを記憶するための、次のステップを含む方法が提供される。(a)第一のエラー確率を持つ不揮発性メモリのビット位置にデータの第一の部分を記憶するステップ。(b)第一のエラー確率よりも低い第二のエラー確率を持つ不揮発性メモリのビット位置にデータの第二の部分を記憶するステップ。(c)データと一緒にエラー訂正パリティ・ビットを記憶するステップ。(d)不揮発性メモリからデータおよびエラー訂正パリティ・ビットを読み取るステップ。そして(e)エラー訂正パリティ・ビットを用いて、読み出したデータへエラー訂正を適用するステップ。この場合、第二の部分のビットが訂正のためにチェックされる前に、第一の部分の少なくとも一つのビットが、訂正のためにチェックされる。
方法は、また、すべてのデータの訂正のためのチェックの前に、エラー訂正の適用を停止するステップを含むことが好ましい。
方法は、また、データ内のエラー・ビットの数を判定するステップ、そして、すべてのデータの訂正のためのチェックの前に、エラー・ビット数に応じて、エラー訂正の適用を停止するステップを含むことが好ましい。
不揮発性メモリは、不揮発性メモリのセル毎に複数ビットを記憶するように作動可能であることが好ましい。
本発明のもう一つの好適実施例によれば、さらに、次のものを含むメモリ・デバイスが提供される。(a)データを記憶するための不揮発性メモリ。そして(b)コントローラ。なお、(i)このコントローラは、第一のエラー確率を持つ不揮発性メモリのビット位置にデータの第一の部分を、そして第一のエラー確率よりも低い第二のエラー確率を持つ不揮発性メモリのビット位置に、データの少なくとも第二の部分を記憶するよう作動可能である。(ii)コントローラは、また、エラー訂正パリティ・ビットを用いて、エラー訂正をデータへ適用するように作動可能である。この場合、第二の部分のビットが訂正のためにチェックされる前に、第一の部分の少なくとも一つのビットが、訂正のためにチェックされる。
コントローラは、また、すべてのデータの訂正のためのチェックの前に、エラー訂正の実行を停止するように作動可能であることが好ましい。
コントローラは、また、データ内のエラー・ビットの数を判定し、そして、この数に応じて、エラー訂正の実行を停止するように作動可能であることが好ましい。
不揮発性メモリは、セルにつき複数ビットを記憶するように作動可能であることが好ましい。
不揮発性メモリはフラッシュメモリであることが好ましい。
本発明のさらにもう一つの好適実施例によれば、データを記憶するための、次のステップを含む方法が提供される。(a)不揮発性メモリ内にデータを記憶するステップ。(b)データと一緒に(データへ適用した正当性チェック・コードから得ることが可能な)エラー検出パリティ・ビットを記憶するステップ。(c)エラー検出パリティ・ビットとは別に、データと一緒にエラー訂正パリティ・ビットを記憶するステップ。(d)不揮発性メモリから、データ、エラー検出パリティ・ビットおよびエラー訂正パリティ・ビットを読み取るステップ。(e)エラー訂正パリティ・ビットを用いて、以前に読み取ったデータへエラー訂正を適用するステップ。そして(f)エラー検出パリティ・ビットに応じて、すべてのデータを訂正した後に、しかしエラー訂正パリティ・ビットのいずれをも訂正する前に、エラー訂正の適用を停止するステップ。
エラー検出パリティ・ビットが、データ内にエラーが全く存在しないことを示す場合にのみ、エラー訂正の適用の停止が実行されることが好ましい。
本発明のさらにもう一つの好適実施例によれば、さらに、次のものを含むメモリ・デバイスが提供される。(a)データを記憶するための不揮発性メモリ。そして(b)コントローラ。なお、このコントローラは、(i)エラー検出パリティ・ビットが、エラー訂正パリティ・ビットとは別に記憶されるように、データと一緒にエラー訂正パリティ・ビットおよびエラー検出パリティ・ビットを記憶するように作動可能である。(ii)不揮発性メモリから、データ、エラー検出パリティ・ビットおよびエラー訂正パリティ・ビットを読み取るように作動可能である。そして(iii)すべてのデータを訂正した後に、しかしエラー訂正パリティ・ビットのいずれをも訂正する前にエラー訂正スキームを停止する方式で、エラー訂正パリティ・ビットを用いて、且つエラー検出パリティ・ビットに応じて、以前に読み取られたデータへエラー訂正を適用するように作動可能である。
コントローラは、また、エラー検出パリティ・ビットが、データ内にエラーが全く存在しないことを示す場合にのみ、エラー訂正を停止するように作動可能であることが好ましい。
不揮発性メモリは、セルにつき複数ビットを記憶するように作動可能であることが好ましい。
不揮発性メモリはフラッシュメモリであることが好ましい。
本発明の、他の特徴および利点は、以下の図面および説明文から明らかになる。
本発明を、その実施例に関連させてより良く理解するために、添付の図面を参照する。図中、類似する数字は、全体を通して、対応するセクションあるいは素子を指す。
本発明は、従来の技術における処理時間および電力消費量を最小にするために、特定なECCアルゴリズムと併用する、MLCメモリ・デバイスの物理ページの異なるビット・ページ間で入力データをインターリーブするための方法である。
「フリップ」ビットを検出して訂正するためにすべてのデータ・ビットの検索が必要なECCスキームを考察しよう。そのようなスキームに対する例として、BCHデコーディングを考察してもよいだろう。
(一般的に、4よりも大きい)比較的多数のビット・エラーに対してBCHデコーダを実行する場合、「チェイン・サーチ」を用いて訂正すべきデータ・ビットを検出するのが一般的である。例えば、W.ウエズレー・ピーターソン、E.J.ウェルドンJr.「エラー訂正コード」、第二版、マサチューセッツ工科大学、1972を参照する。なお、この特許は、すべての目的において、参照により本文に完全に記述したものとする。「チェイン・サーチ」は、コード・ワードのビット・スキャンを行い、特定なビットがエラー・ビットでそれを反転すべきかどうかを調べる。しかし、コード・ワード内のエラー・ビットの合計数は、コード・ワード構造によって制限されるため、一般的に、「チェイン・サーチ」に先行するデコーディング・アルゴリズム段階で計算される。したがって、訂正すべきエラー・ビットの正確な数は、(「チェイン・サーチ」を用いる)コード・ワードのビット・スキャニングの前に、ECCアルゴリズムによって判定される。
よって、コード・ワードのビット・スキャニングは、すべてのエラー・ビットが検出されて訂正されたときに停止してもよい。そうすれば、コード・ワードのすべてのビットをビット・スキャンする必要を免れて、処理時間および電力を節約できる。アルゴリズムがすべてのエラー・ビットを既に捜し出したので、訂正すべきビットがもはや検出できないことが確かであれば、サーチは停止してもよい。
さて、入力データのインターリービングを見てみよう。本技術において既知であるように、データをインターリーブするプロセスは、メモリへデータを書き込むプロセス中、論理ページの入力データが、物理メモリ・ページのビット・ページ間で、等しく拡散されることを保証する。換言すれば、インターリービング・プロセスは、物理ページの各ビット・ページが、この物理ページを共有する入力データ論理ページの各々から、等しい個数のビットを得ることを、または、入力データ論理ページのビットが、等しい割合で、物理ページのすべてのビット・ページの間で分散されることを保証する。
したがって、データがメモリから読み出され、これらのデータにデインターリービング・プロセスが適用されると、デインターリービング・プロセスが作成した論理ページの各々は、物理ページのビット・ページの各々から等しい割合のビットを含む。
さらに、ムリン出願に開示されているように、物理ページのビット・ページの各々は、異なる確率のビット・エラーを持つことが、本技術において既知である。この確率は、メモリ・デバイス内で実行される電圧レベルのコーディング・スキームに依存する。電圧レベル・コーディング{7,6,4,5,1,0,2,3}を持つ3ビット・パー・セル・デバイスを実装する例を用いると、明白であるが、そのようなデバイスのビット・ページは、1:2:4の比率に従ったビット・エラーの確率を持つ(この比率は、各ビット・ページに対するレベル・コードにおけるビット変化の数に対応する)。この場合、LSB(最下位ビット)ページは、MSB(最上位ビット)ページの確率の4倍を持つ。物理ページの総エラー確率がPであると仮定すると、デバイスのビット・ページは、各々、P/7、2*P/7および4*P/7の確率を持つ。詳細はムリン出願を参照のこと。
デインターリービング後、各論理ページは、等しい割合で、すべてのエラー確率を持つビットを含むため、ビットの三分の一が、P/7のエラー確率を持ち、ビットの三分の一が、2*P/7のエラー確率を持ち、そしてビットの三分の一が、4*P/7のエラー確率を持つことになる。よって、物理ページの異なるビット・ページからデインターリーブした論理ページの異なる部分では、異なる個数のエラー・ビットが、エラー訂正アルゴリズムによって統計学的に検出される。
さて、ビットを次々とスキャンしてエラーを探索するエラー訂正アルゴリズムの段階をもう一度考察する。ビット・ページのビットを、エラー確率が減少する順序でスキャンするなら、平均で、このプロセスは、他のケースに比較して、より早く論理ページのすべてのエラーを検出してしまうだろう。したがって、時間および電力を節約できることになる。
しかしながら、ビット・スキャニングは、シーケンシャル方式で(すなわち、論理ページの最初のビットから論理ページの最後のビットへ)実行するのが最も経済的である。
したがって、ビット・スキャニングが論理ページの最初から開始するなら、ビットの最初の割り当ては、本発明によるインターリービング方法によって、エラー発生の確率が最も大きな、物理ページのLSBビット・ページに配置すべきであり、ビットの次の割り当ては、(LSB+1)ビット・ページに配置すべきであり、そして以降同様である。ビットの最後の割り当ては、本発明によるインターリービング方法によって、エラーの確率が最も小さな、物理ページのMSBビット・ページに配置すべきである。
最も一般的な言い方をすれば、1ページにNセルを持つMビット・パー・セル・デバイスのケースでは、本発明によるインターリービング方法は、次のように行われる。
各入力論理ページに対して、
N/Mビットの第一の割り当ては、インターリービングによって、物理ページの(LSB)ビット・ページに配置し、
N/Mビットの第二の割り当ては、インターリービングによって、物理ページの(LSB+1)ビット・ページに配置し、
N/MビットのM番目の割り当ては、インターリービングによって、物理ページの(MSB)ビット・ページに配置する。
N/Mビットの第一の割り当ては、インターリービングによって、物理ページの(LSB)ビット・ページに配置し、
N/Mビットの第二の割り当ては、インターリービングによって、物理ページの(LSB+1)ビット・ページに配置し、
N/MビットのM番目の割り当ては、インターリービングによって、物理ページの(MSB)ビット・ページに配置する。
よって、本発明によるインターリービング方法は、高確率で、論理ページ全体がビット・スキャンされる前に、典型的にすべてのエラー・ビットが検出されて訂正されることを保証するために提供される。これによって、最適処理時間および最適電力消費を達成する。
さて、図1を参照する。これは、本発明によるシステム10のブロック図である。コントローラ14は、ホスト20から受信したデータ・ビットが、インターリーブされてメモリ12内に記憶される方式を管理するように作動可能である。
インターリービング・ユニット16は、ホスト20から受信しECCユニット18でコード化した入力データへ、本発明によるインターリービング方法に従ってインターリービングを適用するよう実装されている。
さて、図2(A)を参照する。論理ページLP0、LP1、LP2、LP3に関わるデータ・ビットを、Nセルの物理ページを持つ4ビット・パー・セル・メモリ・デバイスへ書き込むことを説明する模範的な、非限定的な図である。各論理ページLP0、LP1、LP2、LP3は、各々四つのビット割り当てを含む。この場合、各割り当ての第一のインデックスは論理ページ番号を表し、第二のインデックスは割り当て番号を表す。
ビット割り当て「0,0」、「0,1」、「0,2」、「0,3」は、論理ページLP0に関連づけられ、ビット割り当て「1,0」、「1,1」、「1,2」、「1,3」は、論理ページLP1に関連づけられ、ビット割り当て「2,0」、「2,1」、「2,2」、「2,3」は、論理ページLP2に関連づけられ、そしてビット割り当て「3,0」、「3,1」、「3,2」、「3,3」は、論理ページLP3に関連づけられている。
典型的に、論理ページLP0、LP1、LP2、LP3の割り当て「0,3」、「1,3」、「2,3」、「3,3」内の少なくともいくつかのビットは、各々、データのパリティ・ビットを含む。
さて、図2(B)を参照する。本発明によるインターリービング方法の後の、4ビット・パー・セル・メモリ・デバイスの物理ページのビット・ページBP0、BPl、BP2、BP3へ書き込まれる、図2Aのデータ・ビットの模範的な、非限定的な説明図である。
本発明によるインターリービング方法の後、データ・ビットは、4ビット・パー・セル・メモリ・デバイスのビット・ページへ、以下のように書き込まれる。ビット割り当て「0,0」、「1,0」、「2,0」、「3,0」は、(エラー発生確率が最大である)ビット・ページBP0へ書き込まれ、ビット割り当て「0,1」、「1,1」、「2,1」、「3,1」は、(エラー発生確率が二番目に大きい)ビット・ページBP1へ書き込まれ、ビット割り当て「0,2」、「1,2」、「2,2」、「3,2」は、(エラー発生確率が三番目に大きい)ビット・ページBP2に書き込まれ、そしてビット割り当て「0,3」、「1,3」、「2,3」、「3,3」は、(エラー発生確率が最少である)ビット・ページBP3へ書き込まれる。
したがって、ビット・ページBP3の割り当て「0,3」、「1,3」、「2,3」、「3,3」内の少なくともいくつかのビットは、データのパリティ・ビットを含む。
データ・ビットが、本発明によるインターリービング方法によってメモリ・デバイスへ書き込まれる場合、データ・ビットを読み戻してデインターリーブするとき、論理ページLP0、LP1、LP2、LP3の各々におけるデータ・ビットは、各論理ページの最初から開始して、エラー確率が減少する順序でアレンジする。さて、これらの論理ページへ、論理ページの最初から、(エラー訂正プロシージャの一部として)チェイン・サーチを適用した場合、平均で、すべてのエラー・ビットは、論理ページの最後に到達する前に検出されて訂正されてしまう。チェイン・サーチは、最後の訂正ビットで停止してもよい。そうすれば、時間および電力を節約できる。
注意すべきは、各ビット割り当て内の[N/4]ビットのいずれも、メモリ・デバイス内に書き込まれる順序が、本発明によって制限されることがないことである。
さらに、注目すべきは、本発明によるインターリービング方法とは独立して、しかもそれに加えて、オプションとして、入力コード・ワードのユーザ・データ部分に対して、本技術において既知である単純な正当性チェック・コードを適用することによって、ビット・スキャニング・プロセスの効果を向上させることが望ましい。そのような正当性チェック・コードは、単純なチェックサムまたはCRC(巡回冗長検査)でもよい。正当性チェック・コードから得られたエラー検出パリティ・ビットが、(パリティ・ビットに加えて)ユーザ・データ・ビットをメモリ・デバイスへ書き込む前に入力コード・ワードのユーザ・データ・ビットへ付加される場合は、エラーを検索している間に、たとえ論理ページ内のすべてのエラーが検出されなくても(つまり、いくつかのエラーがユーザ・データ・ビットにはでなくパリティ・ビットにある場合)、メモリ・デバイスから読み出した正当性チェック・コードが、スキャンしたユーザ・データ・ビットへ適用されている正当性チェック・コードに合致することを条件として、すべてのユーザ・データ・ビットをチェックし終えたときにビット・スキャニング・プロセスを停止してもよい。
そのようなエラー・チェック技術を利用することによる時間および電力の節約は、エラー確率がより大きい、したがってコード・ワード内のパリティ・ビットの割合がより大きいケースでは、より大きいことは明らかである。
しかしながら、メモリ・デバイスから読み出した正当性チェック・コードと、スキャンしたユーザ・データ・ビットに適用されている正当性チェック・コードとが合致してもユーザ・データ・ビットにエラーがあるという(軽度ではあるが)特定な確率が残る(この確率は、正当性チェック・コードのタイプに、そしてサイズに依存する)ため、このプロシージャには、ユーザ・データ・ビットにおけるエラー誤検出の確率を増加させるという不都合がある。
本発明によるシステムをその特定な実施例に関して説明したが、さらに同業者が修正を施すことは可能であるのだから、上記説明は限定を意味しないと理解すべきである。また、そのような修正は、添付の請求項の範囲内でカバーすることを意図している。
Claims (15)
- (a)第一のエラー確率を持つ不揮発性メモリのビット位置にデータの第一の部分を記憶するステップ、
(b)前記第一のエラー確率よりも低い第二のエラー確率を持つ前記不揮発性メモリのビット位置にデータの第二の部分を記憶するステップ、
(c)データと一緒にエラー訂正パリティ・ビットを記憶するステップ、
(d)前記不揮発性メモリからデータおよび前記エラー訂正パリティ・ビットを読み取るステップ、そして
(e)前記エラー訂正パリティ・ビットを用いて、読み取ったデータへエラー訂正を適用するステップからなり、前記第二の部分のビットが訂正のためにチェックされる前に、前記第一の部分の少なくとも一つのビットが、訂正のためにチェックされる、データを記憶するための方法。 - さらに、
(f)すべてのデータの訂正のためのチェックの前に、前記適用を停止するステップからなる、請求項1の方法。 - さらに、
(f)データ内のエラー・ビット数を判定するステップ、
(g)すべてのデータの訂正のためのチェックの前に、前記エラー・ビット数に応じて前記適用を停止するステップからなる、請求項1の方法。 - 前記不揮発性メモリが、前記不揮発性メモリのセル毎に複数ビットを記憶するように作動可能である、請求項1の方法。
- (a)データを記憶するための不揮発性メモリ、そして
(b)コントローラからなるメモリ・デバイスであって、
このコントローラが、
(i)第一のエラー確率を持つ不揮発性メモリのビット位置に前記データの第一の部分を、そして前記第一のエラー確率よりも低い第二のエラー確率を持つ不揮発性メモリのビット位置に、前記データの少なくとも第二の部分を記憶するよう、そして
(ii)エラー訂正パリティ・ビットを用いて、前記データへエラー訂正を適用するよう作動可能であり、前記第二の部分のビットが訂正のためにチェックされる前に、前記第一の部分の少なくとも一つのビットが、訂正のためにチェックされる、メモリ・デバイス。 - 前記コントローラが、さらに、すべての前記データの訂正のためのチェックの前に、前記エラー訂正を停止するように作動可能である、請求項5のメモリ・デバイス。
- 前記コントローラが、さらに、前記データ内のエラー・ビットの数を判定して、前記数に応じて前記エラー訂正を停止するよう作動可能である、請求項5のメモリ・デバイス。
- 前記不揮発性メモリが、セルにつき複数ビットを記憶するように作動可能である、請求項5のメモリ・デバイス。
- 前記不揮発性メモリがフラッシュメモリである、請求項5のメモリ・デバイス。
- (a)不揮発性メモリ内にデータを記憶するステップ、
(b)データと一緒にエラー検出パリティ・ビットを記憶するステップ、
(c)前記エラー検出パリティ・ビットとは別に、データと一緒にエラー訂正パリティ・ビットを記憶するステップ、
(d)前記不揮発性メモリからデータ、前記エラー検出パリティ・ビットおよび前記エラー訂正パリティ・ビットを読み取るステップ、
(e)前記エラー訂正パリティ・ビットを用いて、前記読み取ったデータへエラー訂正を適用するステップ、そして
(f)すべてのデータを訂正した後に、しかし前記エラー訂正パリティ・ビットのどれをも訂正する前に、前記エラー検出パリティ・ビットに応じて、前記適用を停止するステップからなる、データを記憶するための方法。 - 前記エラー検出パリティ・ビットが、データ内にエラーが全く存在しないことを示す場合にのみ、前記停止が実行される、請求項10の方法。
- (a)データを記憶するための不揮発性メモリ、そして
(b)コントローラからなるメモリ・デバイスであって、
このコントローラが、
(i)前記データと一緒にエラー訂正パリティ・ビットおよびエラー検出パリティ・ビットを記憶するように作動可能であり、このため、前記エラー検出パリティ・ビットが、前記エラー訂正パリティ・ビットとは別に記憶され、
(ii)前記不揮発性メモリから前記データ、前記エラー検出パリティ・ビットおよび前記エラー訂正パリティ・ビットを読み取るように作動可能であり、そして
(iii)すべての前記データを訂正した後に、しかし前記エラー訂正パリティ・ビットのどれをも訂正する前に、エラー訂正を停止する方式で、前記エラー訂正パリティ・ビットを用いて、且つ前記エラー検出パリティ・ビットに応じて、前記読み取ったデータへ前記エラー訂正を適用するように作動可能である、メモリ・デバイス。 - 前記エラー検出パリティ・ビットが、前記データ内に全くエラーが存在しないことを示す場合にのみ、コントローラが、前記エラー訂正を停止するように作動可能である、請求項12のメモリ・デバイス。
- 前記不揮発性メモリが、セルにつき複数ビットを記憶するように作動可能である、請求項12のメモリ・デバイス。
- 前記不揮発性メモリがフラッシュメモリである、請求項12のメモリ・デバイス。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US75939606P | 2006-01-18 | 2006-01-18 | |
| PCT/IL2007/000061 WO2007083303A2 (en) | 2006-01-18 | 2007-01-17 | A method of arranging data in a multi-level cell memory device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2010517117A true JP2010517117A (ja) | 2010-05-20 |
Family
ID=38288010
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008550908A Pending JP2010517117A (ja) | 2006-01-18 | 2007-01-17 | マルチレベル・セル・メモリ・デバイス内のデータをアレンジする方法 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US8020060B2 (ja) |
| EP (1) | EP1974471A2 (ja) |
| JP (1) | JP2010517117A (ja) |
| CN (1) | CN101502001A (ja) |
| TW (1) | TW200737215A (ja) |
| WO (1) | WO2007083303A2 (ja) |
Families Citing this family (163)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8650352B2 (en) | 2007-09-20 | 2014-02-11 | Densbits Technologies Ltd. | Systems and methods for determining logical values of coupled flash memory cells |
| US8365040B2 (en) | 2007-09-20 | 2013-01-29 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
| US8694715B2 (en) | 2007-10-22 | 2014-04-08 | Densbits Technologies Ltd. | Methods for adaptively programming flash memory devices and flash memory systems incorporating same |
| US8443242B2 (en) | 2007-10-25 | 2013-05-14 | Densbits Technologies Ltd. | Systems and methods for multiple coding rates in flash devices |
| US8341335B2 (en) | 2007-12-05 | 2012-12-25 | Densbits Technologies Ltd. | Flash memory apparatus with a heating system for temporarily retired memory portions |
| WO2009072103A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells |
| US8607128B2 (en) | 2007-12-05 | 2013-12-10 | Densbits Technologies Ltd. | Low power chien-search based BCH/RS decoding system for flash memory, mobile communications devices and other applications |
| US8276051B2 (en) | 2007-12-12 | 2012-09-25 | Densbits Technologies Ltd. | Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications |
| WO2009074978A2 (en) | 2007-12-12 | 2009-06-18 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
| WO2009078006A2 (en) | 2007-12-18 | 2009-06-25 | Densbits Technologies Ltd. | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith |
| US7934052B2 (en) | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
| US8627165B2 (en) * | 2008-03-24 | 2014-01-07 | Micron Technology, Inc. | Bitwise operations and apparatus in a multi-level system |
| US8972472B2 (en) | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
| US8111548B2 (en) | 2008-07-21 | 2012-02-07 | Sandisk Technologies Inc. | Programming non-volatile storage using binary and multi-state programming processes |
| US8332725B2 (en) | 2008-08-20 | 2012-12-11 | Densbits Technologies Ltd. | Reprogramming non volatile memory portions |
| US8127091B2 (en) * | 2008-10-30 | 2012-02-28 | Micron Technology, Inc. | Programming memory cells with additional data for increased threshold voltage resolution |
| US8458574B2 (en) | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
| US8819385B2 (en) | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
| US8566510B2 (en) | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
| US8027195B2 (en) | 2009-06-05 | 2011-09-27 | SanDisk Technologies, Inc. | Folding data stored in binary format into multi-state format within non-volatile memory devices |
| US8102705B2 (en) | 2009-06-05 | 2012-01-24 | Sandisk Technologies Inc. | Structure and method for shuffling data within non-volatile memory devices |
| US20110002169A1 (en) | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
| US8868821B2 (en) | 2009-08-26 | 2014-10-21 | Densbits Technologies Ltd. | Systems and methods for pre-equalization and code design for a flash memory |
| US8995197B1 (en) | 2009-08-26 | 2015-03-31 | Densbits Technologies Ltd. | System and methods for dynamic erase and program control for flash memory device memories |
| US9330767B1 (en) | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
| US8305812B2 (en) | 2009-08-26 | 2012-11-06 | Densbits Technologies Ltd. | Flash memory module and method for programming a page of flash memory cells |
| US8730729B2 (en) | 2009-10-15 | 2014-05-20 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
| US8724387B2 (en) | 2009-10-22 | 2014-05-13 | Densbits Technologies Ltd. | Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages |
| US8626988B2 (en) | 2009-11-19 | 2014-01-07 | Densbits Technologies Ltd. | System and method for uncoded bit error rate equalization via interleaving |
| US8725935B2 (en) | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
| US8144512B2 (en) | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
| US8468294B2 (en) | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
| US20110153912A1 (en) | 2009-12-18 | 2011-06-23 | Sergey Anatolievich Gorobets | Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory |
| US9037777B2 (en) | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
| US8607124B2 (en) | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
| US8341502B2 (en) | 2010-02-28 | 2012-12-25 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
| US8516274B2 (en) | 2010-04-06 | 2013-08-20 | Densbits Technologies Ltd. | Method, system and medium for analog encryption in a flash memory |
| US8527840B2 (en) | 2010-04-06 | 2013-09-03 | Densbits Technologies Ltd. | System and method for restoring damaged data programmed on a flash device |
| US8745317B2 (en) | 2010-04-07 | 2014-06-03 | Densbits Technologies Ltd. | System and method for storing information in a multi-level cell memory |
| US9021177B2 (en) | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
| US8417876B2 (en) | 2010-06-23 | 2013-04-09 | Sandisk Technologies Inc. | Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems |
| US8468431B2 (en) | 2010-07-01 | 2013-06-18 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
| US8539311B2 (en) | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
| US8467249B2 (en) | 2010-07-06 | 2013-06-18 | Densbits Technologies Ltd. | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
| CN107093464A (zh) | 2010-07-13 | 2017-08-25 | 桑迪士克科技有限责任公司 | 后台存储器系统接口的动态优化 |
| US8464135B2 (en) | 2010-07-13 | 2013-06-11 | Sandisk Technologies Inc. | Adaptive flash interface |
| US9069688B2 (en) | 2011-04-15 | 2015-06-30 | Sandisk Technologies Inc. | Dynamic optimization of back-end memory system interface |
| US8964464B2 (en) | 2010-08-24 | 2015-02-24 | Densbits Technologies Ltd. | System and method for accelerated sampling |
| US8508995B2 (en) | 2010-09-15 | 2013-08-13 | Densbits Technologies Ltd. | System and method for adjusting read voltage thresholds in memories |
| US8560919B2 (en) * | 2010-10-22 | 2013-10-15 | Sandisk Technologies Inc. | System and method of interleaving data according to an adjustable parameter |
| US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
| US8850100B2 (en) | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
| US8825945B2 (en) * | 2011-01-31 | 2014-09-02 | Marvell World Trade Ltd. | Mapping different portions of data to different pages of multi-level non-volatile memory |
| US10079068B2 (en) | 2011-02-23 | 2018-09-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Devices and method for wear estimation based memory management |
| US8693258B2 (en) | 2011-03-17 | 2014-04-08 | Densbits Technologies Ltd. | Obtaining soft information using a hard interface |
| US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
| US8990665B1 (en) | 2011-04-06 | 2015-03-24 | Densbits Technologies Ltd. | System, method and computer program product for joint search of a read threshold and soft decoding |
| CN102279803A (zh) * | 2011-04-13 | 2011-12-14 | 西安交通大学 | 一种提高多层单元NAND-Flash存储可靠性的备用区分配方法 |
| US8996790B1 (en) | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
| US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
| US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
| US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
| US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
| US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
| US8667211B2 (en) | 2011-06-01 | 2014-03-04 | Densbits Technologies Ltd. | System and method for managing a non-volatile memory |
| US8775901B2 (en) | 2011-07-28 | 2014-07-08 | SanDisk Technologies, Inc. | Data recovery for defective word lines during programming of non-volatile memory arrays |
| US8588003B1 (en) | 2011-08-01 | 2013-11-19 | Densbits Technologies Ltd. | System, method and computer program product for programming and for recovering from a power failure |
| US8553468B2 (en) | 2011-09-21 | 2013-10-08 | Densbits Technologies Ltd. | System and method for managing erase operations in a non-volatile memory |
| JP2013089082A (ja) | 2011-10-19 | 2013-05-13 | Toshiba Corp | メモリコントローラ、半導体記憶システムおよびメモリ制御方法 |
| US8793543B2 (en) | 2011-11-07 | 2014-07-29 | Sandisk Enterprise Ip Llc | Adaptive read comparison signal generation for memory systems |
| US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
| US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
| US8842473B2 (en) | 2012-03-15 | 2014-09-23 | Sandisk Technologies Inc. | Techniques for accessing column selecting shift register with skipped entries in non-volatile memories |
| US9026887B2 (en) | 2012-03-15 | 2015-05-05 | Micron Technology, Inc. | Physical page, logical page, and codeword correspondence |
| CN103365737B (zh) * | 2012-04-06 | 2016-09-14 | 国民技术股份有限公司 | 数据读写方法、读写装置及数据存储系统 |
| US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
| US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
| US8838937B1 (en) | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
| US8879325B1 (en) | 2012-05-30 | 2014-11-04 | Densbits Technologies Ltd. | System, method and computer program product for processing read threshold information and for reading a flash memory module |
| US8804452B2 (en) | 2012-07-31 | 2014-08-12 | Micron Technology, Inc. | Data interleaving module |
| US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
| US9921954B1 (en) | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
| US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
| US9490035B2 (en) | 2012-09-28 | 2016-11-08 | SanDisk Technologies, Inc. | Centralized variable rate serializer and deserializer for bad column management |
| US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel shift register |
| US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
| US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
| US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
| US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
| KR102123946B1 (ko) * | 2012-12-28 | 2020-06-17 | 삼성전자주식회사 | 멀티 레벨 셀 메모리 장치 및 그것의 동작방법 |
| US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
| US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
| US8913428B2 (en) | 2013-01-25 | 2014-12-16 | Sandisk Technologies Inc. | Programming non-volatile storage system with multiple memory die |
| US9026757B2 (en) | 2013-01-25 | 2015-05-05 | Sandisk Technologies Inc. | Non-volatile memory programming data preservation |
| US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
| US9117530B2 (en) | 2013-03-14 | 2015-08-25 | Sandisk Technologies Inc. | Preserving data from adjacent word lines while programming binary non-volatile storage elements |
| US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
| US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
| US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
| US9092350B1 (en) * | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
| US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
| US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
| US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
| US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
| US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
| US9009568B2 (en) | 2013-08-09 | 2015-04-14 | Sandisk Technologies Inc. | Sensing parameter management in non-volatile memory storage system to compensate for broken word lines |
| US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
| US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
| TWI512732B (zh) * | 2013-08-30 | 2015-12-11 | Phison Electronics Corp | 解碼方法、記憶體儲存裝置與非揮發性記憶體模組 |
| US9413491B1 (en) | 2013-10-08 | 2016-08-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for multiple dimension decoding and encoding a message |
| US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
| US9786388B1 (en) | 2013-10-09 | 2017-10-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
| US9397706B1 (en) | 2013-10-09 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for irregular multiple dimension decoding and encoding |
| US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
| US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
| US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
| US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
| US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
| US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
| CN103645964B (zh) * | 2013-11-22 | 2017-05-10 | 中国电子科技集团公司第三十二研究所 | 嵌入式处理器的高速缓存容错机制 |
| US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
| US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
| US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
| US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
| US9536612B1 (en) | 2014-01-23 | 2017-01-03 | Avago Technologies General Ip (Singapore) Pte. Ltd | Digital signaling processing for three dimensional flash memory arrays |
| US10120792B1 (en) | 2014-01-29 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programming an embedded flash storage device |
| US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
| US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
| US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
| US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
| US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
| US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
| US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
| US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
| US9384128B2 (en) | 2014-04-18 | 2016-07-05 | SanDisk Technologies, Inc. | Multi-level redundancy code for non-volatile memory controller |
| US9646699B2 (en) | 2014-04-30 | 2017-05-09 | Empire Technology Development Llc | Differential writing for life extension of portions of a memory device |
| US9542262B1 (en) | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
| US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
| US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
| US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
| US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
| US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
| US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
| US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
| US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
| US9892033B1 (en) | 2014-06-24 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of memory units |
| US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
| US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
| US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
| US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
| US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
| US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
| US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
| US10305515B1 (en) | 2015-02-02 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | System and method for encoding using multiple linear feedback shift registers |
| US10032524B2 (en) | 2015-02-09 | 2018-07-24 | Sandisk Technologies Llc | Techniques for determining local interconnect defects |
| US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
| US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
| US10628255B1 (en) | 2015-06-11 | 2020-04-21 | Avago Technologies International Sales Pte. Limited | Multi-dimensional decoding |
| US9851921B1 (en) | 2015-07-05 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory chip processing |
| US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
| KR102599047B1 (ko) | 2018-11-13 | 2023-11-06 | 삼성전자주식회사 | 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 |
| US11354231B2 (en) * | 2019-05-30 | 2022-06-07 | Silicon Motion, Inc. | Method for performing access management of memory device with aid of information arrangement, associated memory device and controller thereof, associated electronic device |
| CN112214172A (zh) * | 2020-10-12 | 2021-01-12 | 北京泽石科技有限公司 | Qlc nand的编码方法与编码装置 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5051889A (en) * | 1987-10-23 | 1991-09-24 | Chips And Technologies, Incorporated | Page interleaved memory access |
| US6628544B2 (en) * | 1999-09-30 | 2003-09-30 | Infineon Technologies Ag | Flash memory cell and method to achieve multiple bits per cell |
| JP3969240B2 (ja) * | 2002-08-02 | 2007-09-05 | ソニー株式会社 | 半導体記憶装置 |
| US7493457B2 (en) * | 2004-11-08 | 2009-02-17 | Sandisk Il. Ltd | States encoding in multi-bit flash cells for optimizing error rate |
-
2007
- 2007-01-16 US US11/623,328 patent/US8020060B2/en active Active
- 2007-01-17 WO PCT/IL2007/000061 patent/WO2007083303A2/en not_active Ceased
- 2007-01-17 CN CNA2007800024470A patent/CN101502001A/zh active Pending
- 2007-01-17 JP JP2008550908A patent/JP2010517117A/ja active Pending
- 2007-01-17 EP EP07706014A patent/EP1974471A2/en not_active Withdrawn
- 2007-01-18 TW TW096102020A patent/TW200737215A/zh unknown
Also Published As
| Publication number | Publication date |
|---|---|
| CN101502001A (zh) | 2009-08-05 |
| WO2007083303A3 (en) | 2009-04-09 |
| WO2007083303A2 (en) | 2007-07-26 |
| US20070180346A1 (en) | 2007-08-02 |
| US8020060B2 (en) | 2011-09-13 |
| EP1974471A2 (en) | 2008-10-01 |
| TW200737215A (en) | 2007-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2010517117A (ja) | マルチレベル・セル・メモリ・デバイス内のデータをアレンジする方法 | |
| KR101576102B1 (ko) | 플래시 메모리의 블록으로부터 데이터를 판독하는 방법 및 관련 메모리 장치 | |
| US8707135B2 (en) | Method and system of dynamic data storage for error correction in a memory device | |
| US8631304B2 (en) | Overlapping error correction operations | |
| US8122303B2 (en) | Data structure for flash memory and data reading/writing method thereof | |
| US9063878B2 (en) | Method, system and computer readable medium for copy back | |
| US8175012B2 (en) | Decoding/encoding method for booting from a NAND flash and system thereof | |
| US9015554B2 (en) | Management of non-valid decision patterns of a soft read retry operation | |
| CN101536109B (zh) | Mbc闪存中的错误校正的方法 | |
| JP3982639B2 (ja) | マルチレベルセルを有するメモリからデータを読み取る方法 | |
| US10180794B2 (en) | Soft decoding scheduling | |
| US8055942B2 (en) | Data storage devices and methods for power-on initialization | |
| US20100131806A1 (en) | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith | |
| US20120042225A1 (en) | Data storage with an outer block code and a stream-based inner code | |
| US8015473B2 (en) | Method, system, and apparatus for ECC protection of small data structures | |
| US20140250346A1 (en) | Memory System And Operation Method Thereof | |
| JP5132687B2 (ja) | メモリにおけるキャッシュを利用した誤り検出及び訂正方法及び装置 | |
| JP5529751B2 (ja) | メモリアレイにおけるエラー訂正 | |
| US20140115416A1 (en) | Non-volatile memory error correction | |
| US8949684B1 (en) | Segmented data storage | |
| US8463982B2 (en) | Method of storing and accessing error correcting code in NAND flash | |
| CN101308702B (zh) | 适用于闪存的数据结构及其数据写入方法和数据读取方法 | |
| US7689895B2 (en) | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory | |
| WO2019136976A1 (zh) | 一种编译码系统使用多种错误纠正码组合的方法 | |
| CN109872764B (zh) | 一种多级存储单元闪存的ecc多码率编解码系统及方法 |