JP2009515281A - フラッシュメモリ内のエラーから復旧するための方法 - Google Patents

フラッシュメモリ内のエラーから復旧するための方法 Download PDF

Info

Publication number
JP2009515281A
JP2009515281A JP2008537310A JP2008537310A JP2009515281A JP 2009515281 A JP2009515281 A JP 2009515281A JP 2008537310 A JP2008537310 A JP 2008537310A JP 2008537310 A JP2008537310 A JP 2008537310A JP 2009515281 A JP2009515281 A JP 2009515281A
Authority
JP
Japan
Prior art keywords
read
flash memory
error
voltage
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.)
Granted
Application number
JP2008537310A
Other languages
English (en)
Other versions
JP5123196B2 (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
Priority to US72960805P priority Critical
Priority to US11/397,609 priority patent/US7954037B2/en
Application filed by サンディスク アイエル リミテッド filed Critical サンディスク アイエル リミテッド
Priority to PCT/IL2006/001220 priority patent/WO2007049272A2/en
Publication of JP2009515281A publication Critical patent/JP2009515281A/ja
Application granted granted Critical
Publication of JP5123196B2 publication Critical patent/JP5123196B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • G06COMPUTING; CALCULATING; 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/1068Adding 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
    • 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
    • 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
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells

Abstract

【課題】一つ以上のフラッシュメモリ・セルからデータを読み取るための、そして読み取りエラーから復旧するための、方法、デバイスおよびコンピュータで読み込み可能なコードを開示する。
【解決手段】エラー検出訂正モジュールによるエラー訂正が失敗した場合、例えばエラー訂正が成功するまで、少なくとも一度、一つ以上の修正基準電圧を用いて、フラッシュメモリ・セルの再読み出しを行う。いくつかの実施例においては、エラー訂正が成功した後、当座の間フラッシュメモリ・セルにデータ(例えば、読み出したデータの信頼可能な値)を再書き込みすることなく、以降の読み出しリクエストを処理する。エラーを訂正した読み取りに関する基準電圧をメモリに記憶して、以降の読み出しリクエストに応答するときに読み出してもよい。いくつかの実施例においては、修正基準電圧は、予め定めた基準電圧である。代替的に、または追加的に、これらの修正基準電圧は、必要に応じ、例えばランダムに算出した値を用いて、あるいはエラー検出訂正モジュールが提供する情報に応じて決定してもよい。
【選択図】図2

Description

本発明は、読み取りエラーが発生する可能性のある、システムにおけるフラッシュメモリからのデータ読み取りに関する。
(シングル・ビットおよびマルチビット・フラッシュメモリ・セル)
フラッシュメモリ・デバイスは、長年知られている。典型的に、フラッシュメモリ・デバイス内の各メモリ・セルは、一ビットの情報を記憶する。フラッシュメモリ・セル内にビットを記憶する従来の方法は、メモリ・セルの二つの状態をサポートすることである。一つの状態が論理「0」を表し、そしてもう一つの状態が論理「1」を表す。
フラッシュメモリ・セル内に、セルのチャンネル上(セルのトランジスタのソースおよびドレイン・エレメントを接続する領域)に位置するフローティングゲートを持ち、そしてフローティングゲート内に蓄えられる充電量に対して二つの有効な状態を持つことによって、二つの状態を実現している。典型的に、一つの状態は、フローティングゲート内にゼロ電荷を持つ、消去後のセルの最初の記録のない状態である(一般に、状態「1」を表すと定義する)。そして、もう一つの状態は、フローティングゲート内にいくらかの量の陰電荷を持つ(一般に、状態「0」を表すと定義する)。ゲート内に陰電荷を持つことは、セルのトランジスタのスレショルド電圧(すなわち、トランジスタが導電するようトランジスタの制御ゲートに印加しなければならない電圧)を高める。さて、セルのスレショルド電圧をチェックすることによって、記憶ビットを読み込むことが可能である。スレショルド電圧が高い状態であれば、ビット値は「0」であり、スレショルド電圧が低い状態であれば、ビット値は「1」である。実際にセルのスレショルド電圧を正確に読み取る必要はなく、現在セルが二つの状態のいずれにあるのかを正しく識別することだけがすべてである。その目的で、二つの状態の中央に位置する基準電圧値に対して比較することによって、この基準値よりも、セルのスレショルド電圧が高いのか低いのかを判定すれば十分である。
図1Aは、これがどのように行われるのかを視覚的に示す。図1Aは、特に、セルの大きな個体群におけるスレショルド電圧の分布を示す。フラッシュデバイスのセルは、(例えば、不純物濃度の違いや、けい素構造内の欠陥が原因で)特性および作用が必ずしも同一ではなく、同じプログラミング・オペレーションをすべてのセルに適用しても、セルのすべてが必ずしも同じスレショルド電圧を持つようになるものではない。(なお、歴史的な理由で、フラッシュメモリにデータを書き込むことを、フラッシュメモリを「プログラムする」と、一般的に言う。)そうではなく、スレショルド電圧は、図1Aに示すような状態で分布する。「1」の値を記憶したセルは、典型的に、負のスレショルド電圧を持つため、大部分のセルは、図1Aの左側のピークが示す値に近いスレショルド電圧を持ち、少数のセルが、これよりも低いまたは高いスレショルド電圧を持つ。同様に、「0」の値を記憶したセルは、典型的に、正のスレショルド電圧を持つため、大部分のセルは、図1Aの右側のピークが示す値に近いスレショルド電圧を持ち、少数のセルが、これよりも低いまたは高いスレショルド電圧を持つ。
近年、従来から「マルチ・レベル・セル」または略してMLCと呼ぶ技術を利用した、新しい種類のフラッシュデバイスが市場に出ている。(先のタイプのフラッシュ・セルも複数のレベル、すなわち上述のように二つのレベルを持つので、この用語はまぎらわしい。したがって、フラッシュ・セルの二つの種類を、本文では「シングルビット・セル」(SBC)および「マルチビット・セル」(MBC)と呼ぶ。)MBCフラッシュがもたらした改善は、各セルに2ビットを記憶することである。(原則として、MBCは、1セルにつき2ビットを超える記憶をおこなうことをも含むが、そのようなセルは、現時点では、まだ市場に存在しない。本文では、説明を簡単にするために、2ビットのケースに的を絞る。しかし、本発明が、セルにつき複数のビットをサポートするフラッシュメモリ・デバイスに等しく適用できることは理解すべきである。)単一のセルが2ビットの情報を記憶するためには、セルは、4つの異なる状態の一つになることが可能でなければならない。セルの「状態」が、そのスレショルド電圧で表されるため、MBCセルは、そのスレショルド電圧に対して、4つの異なる有効な範囲をサポートすべきであることは明白である。図1Bは、典型的なMBCセルのスレショルド電圧分布を示す。予期するように、図1Bは、各々が一つの状態に対応する四つのピークを持つ。SBCのケースに関しては、各状態が実際には一範囲であり、単一数ではない。セルの内容を読み込む場合、保証すべきことは、セルのスレショルド電圧が位置する範囲を正しく識別することがすべてである。MBCフラッシュデバイスの、従来の技術による例として、ハラリ氏の米国特許第5,434,825号を参照する。これは、すべての目的において参照によって本文に完全に記載したものとする。
4つの状態によって一つのMBCセル内に2ビットをコード化する場合、両ビットが「1」の値を持つケースを表す、図1Bの左端の状態(典型的に、負のスレショルド電圧を持つ)を設けるのが一般的である。(以下の考察では、次の表記を用いる。セルの2ビットを「下位ビット」と「上位ビット」と呼び、それらビットの明示値は、下位ビット値を右側にして、[「上位ビット」「下位ビット」]の形式で書く。であるから、下位ビットが「0」で上位ビットが「1」であるケースは、「10」と記述する。理解すべきは、この用語および表記の選択が任意であり、他の名称およびコード化が可能であることである)。この表記を用いると、左端の状態は、「11」のケースを表す。他の3状態は、典型的に、左から右へ順に「10」、「00」、「01」と割り当てる。上述のそのようなコード化を用いるMBCのNANDフラッシュデバイスの実施例が、チェン氏の米国特許第6,522,580号に開示されている。なお、この特許は、すべての目的において参照によって本文に完全に記述したように含むものとする。チェン氏の特許を表す、特に 図8を参照する。しかしながら、状態のこの割当てに関しては何の制限もなく、他の序列化を用いてもよいことは留意すべきである。MBCセルの内容を読む場合、セルのスレショルド電圧が位置する範囲を正しく識別しなければならない。このケースのみ、これは、一つの基準電圧への比較によって必ずしも達成できるものではなく、複数回の比較が必要となる可能性がある。例えば、図1Bに図解したケースでは、下位ビットを読む一つの方法は、セルのスレショルド電圧を、まず、参照比較電圧V1に比較し、それから、その比較結果に応じて、セルのスレショルド電圧を、ゼロ参照比較電圧または参照比較電圧V2のいずれかに比較することである。下位ビットを読むもう一つの方法は、無条件で、セルのスレショルド電圧を、0基準電圧とV2との両方に比較することである。いずれにせよ、二つの比較が必要である。
MBCデバイスは、一つが1ビットでなく2ビットを記憶する同じサイズのセルを用いて、コストに関する大きな利点を提供する。しかし、MBCフラッシュを用いることには、いくつかの欠点がある。MBCメモリの平均読み込み書き込み時間は、SBCメモリのものよりも長く、性能は低くなる。また、MBCの信頼性は、SBCよりも低い。このことは、MBCにおけるスレショルド電圧範囲間の差違が、SBCにおけるものよりも非常に小さいことから、容易に理解できる。したがって、SBCでは二つの状態間に大きなギャップがあるために気づかれなかった、スレショルド電圧の障害(例えば、スレショルド電圧ドリフトを起こす蓄積電荷の漏れ、隣接セル上のオペレーションからの干渉など)は、MBCセルでは、一つの状態からもう一つの状態への移行を引き起こし、エラー・ビットを生じる。その結果、データ保持時間あるいは多数回の書き込み消去サイクルへのデバイスの耐久度に関するMBCセルの品質規格は低い。したがって、アプリケーションの要件に応じて、MBCセルとSBCセルとの両方を用いることに利点があるのかも知れない。
上記の説明はフローティングゲート・フラッシュメモリ・セルを扱ったが、他のタイプのフラッシュメモリ技術もある。例えば、NROMフラッシュメモリ技術では、導電性フローティングゲートは全くないが、電荷を捉える絶縁層がある。フローティングゲート技術に関連させて説明するが、本発明は、すべてのフラッシュメモリ・タイプに等しく適用できる。
(フラッシュ・セルからデータを読み取る際のエラー訂正)
上記に説明したように、スレショルド電圧がそれらの初期値から離れてドリフトした場合、フラッシュ・セル、特にMBCフラッシュ・セルは、誤って読み取られることがある。もしスレショルド電圧ドリフト量が十分に大きい場合、読み取り処理は、セルの二つの状態間の境界線として用いる読み取り基準電圧の誤った側に、セルを見いだすことになる。フラッシュメモリから読み取ったデータ内のエラーを訂正するために、エラー訂正コード(ECC)を利用するのが一般的であるが、訂正能力は、典型的に、読み取られるデータのページ内の、ある一定のエラー回数に制限されているため、結局、累積エラー回数は、ECCメカニズムの訂正能力を超過することがある。
オークレール氏らの米国特許第5,657,332号、表題「EEPROMデバイス内のソフトエラー処理」(本文においては「オークレール」と呼ぶ)は、スレショルド電圧ドリフチングが引き起こすフラッシュ・メモリ・エラーのこの問題を扱う。この特許は、すべての目的に対して参照によって、本文に完全に記述したものと見なす。オークレールは、このエラー問題に二つの解決策を提案する。最初のものは、セルが境界線を横切る寸前になったことを検出し、それらの内容をメモリへ再び書き込んで「修正する」ことによって、エラーの発生を排除しようとする。これは、スレショルド電圧を正しい初期値へ「リセットする」ことである。オークレールの第二の解決は、ドリフチング・エラーの存在を既定の事実と認め、エラー発生後のメモリ・システムの堅牢性を改善するように試みる。この第二の解決策については、オークレールのコラム13内の14から27行に考察がある。
フラッシュメモリからデータを読み取るオークレールの方法は、最初に、読み取り基準電圧(またはMBCフラッシュメモリの場合には複数の読み取り基準電圧)のデフォルト値を用いて正規の読み取りを試みる。この最初の読み取りの試みにおいて多くのエラーが発生し、ECCメカニズムがそれらを修正できないと仮定して、オークレールは、2ステージ・リカバリ・プランを活用する。
A.読み取り基準電圧を、それらのデフォルト値から、もう一セットの所定値へ変え、新しいセットの所定基準値を用いて読み取りを試みる。典型的に新しい値は、デフォルト値よりもいくぶん低い。セルのスレショルド電圧が、時間とともにより低い値へドリフトする(つまり、図1Aおよび1Bの左側へ移行する)と予想することは、フローティングゲートから電荷がリークした結果としてドリフチングが起こるのだから、合理的である。したがって、左側へ比較の「境界」を移行することは、ドリフト後の状態を相互に切り離す良い機会である。訂正基準値で読み取ってもエラーが発生する場合は、それらをECCメカニズムで処理できる。もし、それでもなお多くの訂正すべきエラーがあるなら、プロセスを繰り返す。すなわち、もう一セットの所定読み取り基準値を選択し、もう一回の読み取りおよび訂正を行う。多分、この反復プロセスはデータをうまく訂正できるので、エラーがないと仮定できる。一旦ここまで到達すれば、第二ステージへ移行する。
B.第一ステージから得たデータをセルへ書き戻すことによって、デフォルト読み取り基準値を用いて次に読み取るときに、現在の読み取りの場合ほど多くのエラーが発生しないようにする。
図2は、オークレールに開示の従来の技術による、コントローラおよびフラッシュメモリ(すなわち、フラッシュメモリ・セルを含む)を備えるフラッシュ・デバイスによる読み出しリクエストの処理を説明するフロー・チャートである。読み出しリクエストを受信した110後、フラッシュ・コントローラは、デフォルト基準電圧を用いて、フラッシュメモリ212からデータビットを読み取る112A。ECCを用いて、読み取ったデータ・ビットの訂正を試みる114。エラー訂正が成功した116ならば、デバイスは、読み取り後訂正したデータを送信によって(例えば、データをホスト・デバイスに送信することによって)、読み出しリクエストに応答してもよい118。読み出しリクエストに応答した118後、デバイスは、次の読み出しリクエストを処理することが可能である。
もしエラー訂正が成功しなかった116場合、デバイスは、少なくとも一つの所定修正基準電圧を含む119一セットの基準電圧を用いて、フラッシュメモリからデータ・ビットを再び読み出す112B。一つ以上の「新しい」所定基準電圧での(すなわち、少なくとも所定修正基準電圧を用いる119)データ・ビットの再読み出し112Bの後、もう一回のエラー訂正を試みる114。もう一回のエラー訂正が失敗した116場合には、ECCがデータ・ビットのエラー訂正に成功する116まで、異なる予め修正した基準電圧を用いて119データ・ビットを再び読み出す112Bこのプロセスを繰り返す。
その時点で、メモリ・セルを「若返らせ」て、その後にセルを(「適当な」デフォルト基準電圧で)読み取るときのエラー訂正における失敗の可能性を減らす。この処理は、エラー訂正が成功した後に正当なデータが利用可能であるという事実を利用して行われるもので、メモリ・セルへの再書き込みを行ってもよい124。したがって、オークレールの教示によれば、データの再書き込み後、デフォルト読み取り基準値を用いて次にデータを読み取る112Aとき(すなわち、もう一回の読み出しリクエスト110の後)、フラッシュメモリ・セルは、より少ないエラーの(すなわち、基準電圧「ドリフト」が訂正された)データを提供する可能性が大きく、ECCで訂正可能な読み取りデータを提供すると仮定している。
注目すべきは、オークレールの前記リカバリ方法には、大きな欠点があることである。リカバリ・プロセスが活用されるたびに、データは再書き込みされる。フラッシュメモリにおいては、書き込みオペレーションは、読み取りオペレーションよりも非常に遅い。例えば、SBCのNAND型フラッシュメモリにおいては、1ページのデータを読み取るのには、およそ15マイクロ秒が必要であるが、1ページのデータを書き込むのに、およそ200マイクロ秒が必要である。MBCのNAND型フラッシュメモリにおける状況は、さらに悪く、1ページの読み取りには30マイクロ秒が必要であるが、1ページを書き込むのには、800マイクロ秒が必要である。この事実は、1ページのデータを回復するためにオークレールの方法を活用することは、非常に遅いオペレーションであることを意味する。典型的に、読み出しリクエストを開始して、データを待ち受けるソフトウェア・アプリケーションは、何十マイクロ秒以内にデータを利用できると予想するのだが、予想に反して、1桁長く待たなければならないことになる。リアルタイム・ソフトウェア・アプリケーションには、これは受け入れがたいものである。ソフトウェア・アプリケーションが、データを、リカバリ・プロセスの完了を待つことなく、それが利用可能になったらすぐに受信できるよう、オークレールの書き込みステージを後の時間へ遅らせたとしても、余分な書き込みオペレーションに起因する、記憶システムのスループットにおける性能低下は免れない。
したがって、エラーの存在するフラッシュメモリからデータを再生する、しかも比較的短時間でその再生を達成する方法が必要である。
前述の問題、そして他の問題のいくつか、あるいはすべては、本発明のいくつかの局面によって満たすことができる。
さて、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための方法を初めて開示する。本開示の方法は、(a)複数のフラッシュメモリ・セルからデータ・ビットを読み出すステップ、(b)エラー検出訂正モジュールを用いて、読み出したデータ・ビットのエラーを訂正しようと試みるステップ、(c)エラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールがエラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットの再読み出しを行うステップ、そしてd)当座の間(すなわち、少なくとも修正基準電圧によるステップ(c)のエラー訂正が成功した後、かつステップ(a)の読み出しの前に)データ・ビットをメモリ・セルに再書き込みすることなく、データ・ビットに対してステップ(a)、(b)および(c)を繰り返すステップからなる。
いくつかの実施例によれば、繰り返し前の最初の読み取りは、最初の読み出しリクエストに応答したものであり、そして繰り返しに関わる以降の読み取りは、以降の読み出しリクエストに応答したものである。
さて、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための方法を初めて開示する。本開示の方法は、(a)複数のフラッシュメモリ・セルからデータ・ビットを読み出すステップ、(b)エラー検出訂正モジュールを用いて、読み出したデータ・ビットのエラーを訂正しようと試みるステップ、(c)エラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールがエラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットの再読み出しを行うステップ、(d)訂正の後、モジュールがエラーの訂正に成功した少なくとも一つの読み出し基準電圧を記憶するステップ、(e)記憶の後、記憶した少なくとも一つの読み出し基準電圧を読み出すステップ、そしてg)読み出し後、読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み取るステップからなる。
少なくとも一つの読み出し基準電圧は、揮発性および/または不揮発性メモリの組み合わせ内に記憶してもよい。
いくつかの実施例によれば、少なくとも一つの読み出し基準電圧は、一つ以上のフラッシュメモリ・セルに記憶する。
いくつかの実施例によれば、読み出すべきデータ・ビットは、フラッシュコントローラを用いて読み出し、そして少なくとも一つの読み出し基準電圧は、フラッシュコントローラ内に(すなわち、フラッシュコントローラの揮発性および/または不揮発性メモリの組み合わせ内に)記憶する。
いくつかの実施例によれば、記憶前の最初の読み取りは、最初の読み出しリクエストに応答したものであり、読み出した少なくとも一つの読み出し基準電圧を用いた以降の読み取りは、以降の読み出しリクエストに応答したものである。
さて、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための方法を初めて開示する。本開示の方法は、(a)複数のフラッシュメモリ・セルからデータ・ビットを読み出すステップ、b)エラー検出訂正モジュールを用いて、読み出したデータ・ビットのエラーを訂正しようと試みるステップ、c)エラー検出訂正モジュールによるエラー訂正が失敗した読み出しの後、少なくとも一つの新しい読み出し基準電圧を導き出すステップ、そしてd)導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み出すステップからなる。
いくつかの実施例によれば、導き出した少なくとも一つの新しい電圧は、エラー検出訂正モジュールが提供する情報に少なくとも部分的に応じて決定する。
いくつかの実施例によれば、導き出した少なくとも一つの新しい電圧は、少なくとも部分的にランダムに決定される。
さて、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための方法を初めて開示する。本開示の方法は、(a)複数のフラッシュメモリ・セルからデータ・ビットを読み出すステップ、b)エラー検出訂正モジュールを用いて、読み出したデータ・ビットのエラーを訂正するステップ、そしてc)訂正の後、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み出すステップからなる。
いくつかの実施例によれば、少なくとも一つの修正基準電圧を用いた以降のデータ・ビットの読み出しは、当座の間(すなわち、ステップ(a)でデータ・ビットを読み出した後、かつ少なくとも一つの修正基準電圧による再読み出しの前に)たとえエラー訂正検出および訂正モジュールによるエラー訂正の失敗が全くなくとも実行される。
いくつかの実施例によれば、複数のメモリ・セルは、訂正後に、また、少なくとも一つの修正基準電圧を用いる読み出し前に、書き込まれない。
いくつかの実施例によれば、少なくとも一つの修正基準電圧は、少なくとも部分的にエラー検出訂正モジュールが提供する情報(例えば、エラー数を示す情報)に応じて導き出す。
いくつかの実施例によれば、訂正前の最初の読み取りは、最初の読み出しリクエストに応答したものであり、訂正後以降の読み取りは、以降の読み出しリクエストに応答したものである。
さて、次のものからなる、データ記憶のためのフラッシュメモリ・デバイスを初めて開示する。a)データ・ビットを記憶するための複数のフラッシュメモリ・セル、b)データ・ビットにおけるエラーを検出して訂正するためのエラー検出訂正モジュール、そしてc)メモリ・セルからデータ・ビットを読み出すためのコントローラ。(i)コントローラは、複数のフラッシュメモリ・セルからデータ・ビットを読み出すことによって、最初の読み出しリクエストに応答するよう作動可能であり、エラー検出訂正モジュールがデータ・ビットの訂正に失敗した場合、モジュールがエラーの訂正に成功するまで、少なくとも一つの修正基準電圧を用いて、データ・ビットの再読み出しを行うよう作動可能である。そしてii)コントローラは、さらに、当座の間(すなわち、最初の読み出しリクエストに対するデータ・ビットの再読み出しに関わるエラー訂正の成功の後、かつ第一の以降の読み出しリクエストに関わるデータ・ビットの第一の読み出し前に)メモリ・セルにデータ・ビットを再書き込みすることなく、以降の読み出しリクエストに対する応答を繰り返すよう作動可能である。
さて、次のものからなる、データ記憶のためのフラッシュメモリ・デバイスを初めて開示する。a)データ・ビットを記憶するための複数のフラッシュメモリ・セル、b)データ・ビットにおけるエラーを検出して訂正するためのエラー検出訂正モジュール、そしてc)メモリ・セルからデータ・ビットを読み出すためのコントローラ。(I)コントローラは、i)複数のフラッシュメモリ・セルからデータ・ビットを読み出すこと、ii)エラー検出訂正モジュールを用いて、読み出したデータ・ビットのエラーを訂正しようと試みること、iii)エラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールがエラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットの再読み出しを行うこと、そしてiv)訂正の後、モジュールがエラーの訂正に成功した少なくとも一つの読み出し基準電圧を(例えば、コントローラの補助メモリ内に、あるいは他のメモリ内に)記憶することによって、最初の読み出しリクエストに応答するよう作動可能である。そして記憶の後、(II)コントローラは、さらに、i)記憶した少なくとも一つの読み出し基準電圧を読み出すこと、そしてii)読み出し後、読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み取ることによって、以降の読み出しリクエストに応答するよう作動可能である。
いくつかの実施例によれば、コントローラは、揮発性メモリに、少なくとも一つの読み出し基準電圧を記憶するよう作動可能である。
いくつかの実施例によれば、コントローラは、不揮発性メモリに、少なくとも一つの読み出し基準電圧を記憶するよう作動可能である。
いくつかの実施例によれば、コントローラは、一つ以上のフラッシュメモリ・セルに、少なくとも一つの読み出し基準電圧を記憶するよう作動可能である。
いくつかの実施例によれば、コントローラは、コントローラ(例えば、フラッシュコントローラの揮発性および/または不揮発性メモリ)に、少なくとも一つの読み出し基準電圧を記憶するよう作動可能である。
さて、次のものからなる、データ記憶のためのフラッシュメモリ・デバイスを初めて開示する。a)データ・ビットを記憶するための複数のフラッシュメモリ・セル、b)データ・ビットにおけるエラーを検出するためのエラー検出訂正モジュール、そしてc)フラッシュメモリ・セルからデータ・ビットを読み出すためのコントローラ。コントローラは、(i)複数のフラッシュメモリ・セルからデータ・ビットを読み出すこと、(ii)エラー検出訂正モジュールを用いて、読み出したデータ・ビットのエラーを訂正しようと試みること、(iii)エラー検出訂正モジュールによるエラー訂正が失敗した読み出しの後、少なくとも一つの新しい読み出し基準電圧を導き出すこと、そして(iv)導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み出すことによって、読み出しリクエストに応答するよう作動可能である。
いくつかの実施例によれば、コントローラは、エラー検出訂正モジュールが提供する情報に少なくとも部分的に応じて、少なくとも一つの新しい電圧を導き出すよう作動可能である。
いくつかの実施例によれば、コントローラは、少なくとも部分的にランダムに、少なくとも一つの新しい電圧を導き出すよう作動可能である。 さて、次のものからなる、データ記憶のためのフラッシュメモリ・デバイスを初めて開示する。a)データ・ビットを記憶するための複数のフラッシュメモリ・セル、b)データ・ビットにおけるエラーを検出するためのエラー検出訂正モジュール、そしてc)フラッシュメモリ・セルからデータ・ビットを読み出すためのコントローラ。(I)コントローラは、i)複数のフラッシュメモリ・セルからデータ・ビットを読み出すこと、そしてii)前記エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正することによって、最初の読み出しリクエストに応答するよう作動可能である。
また、(II)コントローラは、さらに、)少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み出すことによって、以降の読み出しリクエストに応答するよう作動可能である。
いくつかの実施例によれば、コントローラは、訂正後、かつ少なくとも一つの修正基準電圧を用いる読み出しの前に複数のメモリ・セルに書き込みを行うことなく、最初の、そして以降の読み出しリクエストに応答するよう作動可能である。
いくつかの実施例によれば、コントローラは、エラー検出訂正モジュールが提供する情報に少なくとも部分的に応じて、少なくとも一つの修正基準電圧を導き出すよう作動可能である。
コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディア。コンピュータで読み込み可能なコードは、コンピュータで読み取り可能な記憶メディア内に具現化され、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み出すための命令からなる。命令は、a)複数のフラッシュメモリ・セルからデータ・ビットを読み取る命令、b)エラー検出訂正モジュールを用いて、読み取ったデータ・ビットのエラーを訂正しようと試みる命令、c)エラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールがエラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットの再読み出しを行う命令、そしてd)当座の間(すなわち、少なくとも修正基準電圧によるステップ(c)のエラー訂正が成功した後、かつステップ(a)の読み出しの前に)データ・ビットをメモリ・セルに書き込み、再書き込みせずに、ステップ(a)、(b)および(c)を繰り返す命令からなる。
さて、コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアを初めて開示する。コンピュータで読み込み可能なコードは、コンピュータで読み取り可能な記憶メディア内に具現化され、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み出すための命令からなる。命令は、a)複数のフラッシュメモリ・セルからデータ・ビットを読み取る命令、b)エラー検出訂正モジュールを用いて、読み取ったデータ・ビットのエラーを訂正しようと試みる命令、c)エラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールがエラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットの再読み出しを行う命令、d)訂正の後、モジュールがエラーの訂正に成功した少なくとも一つの読み出し基準電圧を記憶する命令、e)記憶の後、記憶した少なくとも一つの読み出し基準電圧を読み出す命令、そしてg)読み出し後、読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み出す命令からなる。
さて、コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアを初めて開示する。コンピュータで読み込み可能なコードは、コンピュータで読み取り可能な記憶メディア内に具現化され、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み出すための命令からなる。命令は、a)複数のフラッシュメモリ・セルからデータ・ビットを読み取る命令、b)エラー検出訂正モジュールを用いて、読み取ったデータ・ビットのエラーを訂正しようと試みる命令、c)エラー検出訂正モジュールによるエラー訂正が失敗した読み出しの後、少なくとも一つの新しい読み出し基準電圧を導き出す命令、そしてd)導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み出す命令からなる。
コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディア。コンピュータで読み込み可能なコードは、コンピュータで読み取り可能な記憶メディア内に具現化され、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み出すための命令からなる。命令は、a)複数のフラッシュメモリ・セルからデータ・ビットを読み取る命令、b)エラー検出訂正モジュールを用いて、読み取ったデータ・ビットのエラーを訂正する命令、そしてc)訂正の後、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み出す命令からなる。
これらの実施例および他の実施例を、以下で詳細に説明する。
詳細な説明
さて、本発明を、特定の実施例に関して説明する。本発明が開示の実施例に限定されないことは理解すべきである。また、添付の請求項の特定な発明を実施するのに、ここに開示する、フラッシュメモリのエラーから復旧するための方法、デバイスおよびコンピュータで読み取り可能なコードのすべての特徴が必要であるというわけではないことも理解すべきである。本発明を完全に可能なものにするために、種々の素子およびデバイスの特徴を説明する。また、プロセスまたは方法を説明する本開示を通して、方法のステップは、ステップが、他のステップが最初に実行されることに依存していることが文脈から明白である場合を除き、どの順序で実行しても、または同時に実行してもよい、ということも理解すべきである。
(図3のフラッシュメモリ・デバイス)
図3は、本発明の模範的な実施例によるフラッシュメモリ・デバイス50を表すブロック図である。フラッシュメモリ・デバイス50は、複数のフラッシュメモリ・セルおよびフラッシュ・コントローラ10を有するフラッシュメモリ30を含む。フラッシュ・コントローラ10は、フラッシュメモリ・セル30からデータを読み取るように作用し、また、オプションとして、フラッシュメモリ・セル30内へデータを書き込むように作用する。フラッシュ・デバイス50は、また、(図3に示すように)フラッシュ・コントローラ10の一部として、または別個のものとしてエラー検出訂正回路20を含む。フラッシュ・コントローラ10は、フラッシュ・デバイス50の外部から、例えば、ホスト・デバイス(図示せず)から受信した命令に従って、フラッシュメモリ30にアクセスしてもよい。
(図4の説明)
図4は、本発明の実施例としてのフラッシュ・デバイス50による、一つ以上の読み出しリクエストの処理を説明するフロー・チャートである。読み出しリクエストを受信した110後、フラッシュ・コントローラ10は、一セットの基準電圧を用いて、フラッシュメモリ30からデータ・ビットを読み取る112C(例えば、デフォルトの基準電圧あるいは他のセットの基準電圧。このため、各メモリ・セルは、それぞれの基準電圧を用いて読み取る)。ECCを用いて、読み取ったデータ・ビットの訂正を試みる114。エラー訂正が成功した場合116、コントローラ10は、訂正されたデータを送信することによって、読み出しリクエストへ(例えば、ホスト・デバイスに)応答してもよい118。読み出しリクエストに応答した118後、デバイス50は、次の読み出しリクエストを処理することができる。
もしエラー訂正が成功しなかった場合116、コントローラ10は、少なくとも一つの修正基準電圧を用いて120、フラッシュメモリからデータ・ビットを再び読み出してもよい112B(すなわち、少なくとも一つのこの電圧が、先の読み出しに用いたもの112Cと異なる)。再読み取り112Bの後、もう一度、追加のエラー訂正を試みる114。もしこのエラー訂正が成功しなかった場合116、コントローラ10は、少なくとも一つの修正基準電圧を用いて、さらにもう一回、メモリ・セル30からデータ・ビットを読み取ってもよい112B(すなわち、少なくとも一つのこの電圧が、先の読み出し112Bで用いたものと異なる)。修正電圧による再読み取り112Bおよびエラー訂正の試み114を、エラー訂正が成功する116まで繰り返す。
この時点で、読み出しリクエストへの応答118を送信してもよい。そしてコントローラは、次の読み出しリクエストに応答する110ためにスタンバイする。注目すべきことは、図4で説明した実施例によれば、エラー訂正が成功した後、データがフラッシュメモリ・セル内へ再び書き込まれることがないことである。
注目すべきは、図4では、エラー訂正プロセスは、修正基準電圧を用いて120少なくとも一回、フラッシュメモリ・セルを再び読み出す112Bことを含むことである。図4への必要条件ではないが、いくつかの実施例では、修正基準電圧の順番を予め決定しておいてもよく、繰り返す度に、所定基準電圧の異なるセットを用いてもよい。択一的に、例えば、フラッシュ・コントローラ10のマイクロプロセッサを用いて、一つ以上の修正基準電圧を計算してもよい。
(図4に関する考察)
データを再書き込みしないので、以降の読み出しリクエストを処理するときに、最初の読み出しリクエストの処理で遭遇したと同じデータエラーが、もう一度、発生する傾向にある(すなわち、メモリ・セルを、再書き込みデータで若返らせて、デフォルト電圧を用いたエラー訂正の失敗率を減少させなかったためである)。したがって、デバイスは、次の読み出しリクエストを処理する際に、もう一度、エラー訂正プロシージャ(例えば、図4で説明したプロシージャ)を利用する必要がある。
さて、本発明者は、多くの状況下で、フラッシュメモリ内へデータを再書き込みする(図2の124を参照)という時間のかかるステップを排除した(すなわち、より速い復旧プロシージャを発動する)スピードの利得が、複数回の読み出しの繰り返しに関する効率の損失、そして、読み出しエラーからのより頻繁な復旧の必要性を上回る可能性があることを、初めて開示する。したがって、本発明者は、図4のプロシージャが、平均で、図2のものよりも速い、多くの状況が存在することを開示する。
(図5の説明)
図5は、本発明の実施例としてのフラッシュ・デバイス50による、一つ以上の読み出しリクエストの処理を説明するフロー・チャートである。読み出しリクエストを受信した110後、フラッシュ・コントローラ10は、一セットの基準電圧を用いて、フラッシュメモリ30からデータ・ビットを読み取る112C(例えば、デフォルト基準電圧あるいは他の基準電圧セット。したがって、各メモリ・セルは、それぞれの基準電圧を用いて読み取る)。ECCを用いて、読み取ったデータ・ビットの訂正を試みる114。エラー訂正が成功した場合116、コントローラ10は、訂正されたデータを送信することによって、読み出しリクエストへ(例えば、ホスト・デバイスへ)応答してもよい118。読み出しリクエストに応答した118後、デバイス50は、次の読み出しリクエストを処理するよう作動可能である。
もしエラー訂正が成功しなかった場合116、コントローラ10は、少なくとも一つの修正基準電圧120を用いて、フラッシュメモリからデータ・ビットを再び読み出してもよい112B(すなわち、少なくとも一つのこの電圧は、先の読み出しの際に用いたもの112Cと異なる)。再読み取り112Bの後、追加のエラー訂正をもう一度試みる114。もしこのエラー訂正が成功しなかった場合116、コントローラ10は、少なくとも一つの修正基準電圧を用いて、さらにもう一度、メモリ・セル30からデータ・ビットを読み取ってもよい112B(すなわち、少なくとも一つのこの電圧は、先の読み出しの際に用いたもの112Bと異なる)。修正電圧による再読み取り112B、そしてエラー訂正の試み114を、エラー訂正が成功する116まで繰り返す。
この時点で、読み出しリクエストへの応答を送信してもよい118。
図5に表す実施例によれば、エラー訂正が成功した116後、(すなわち、復旧が成功した後)、これ以降の使用のために、一つ以上の「成功した」基準電圧130をメモリ内に記憶してもよい。
以降の読み出しリクエストを受信したら110、これらの記憶基準電圧の(すなわち、先の読み出しリクエストの処理で復旧が成功した後に記憶した130)一つ以上を読み出し132、以降の読み出しリクエストを処理するためにフラッシュメモリを読み取る112Dに用いてもよい。
図5に明示していないし、また、図5の制限でもないが、いくつかの実施例では、図4の場合のように、フラッシュ・セルから読み出した実際のデータを、フラッシュ・セル内へ再書き込みする必要がないことは評価できる。
(図5の考察)
制限ではなく、図5は、図4の説明で上記に開示したことへの「改善」とみなしてよい。上記 図4の説明において、注目したことは、フラッシュメモリ・セルへデータを再書き込みしないので、(すなわち、時間のかかるフラッシュ書き込みオペレーションを避けるため)、以降の読み出しリクエストを処理するときに同じエラーに遭遇することになる(すなわち、再書き込みデータでメモリ・セルを若返らせて、デフォルト電圧を用いるエラー訂正の失敗の可能性を減少させることをしなかった)。
図5のプロシージャは、エラー訂正後以降の読み出しリクエストに応答する際に必要となる読み取りの繰り返し数を減少させるのに有用である。より詳しくは、多くの状況において、記憶成功基準電圧(すなわち、直前の読み出しリクエストからのもの)が、以降の読み出しリクエストに適当な基準電圧の良好な第一近似値を提供する。したがって、エラー訂正後これらの基準電圧を記憶し、そして後にこれらの電圧を読み出すことによって、スピードに関してさらにもう一つの改善が達成できる。
例えば、(単一の読み出し基準値を持つ)SBCフラッシュにおいて、特定なフラッシュ・セルに対する読み出し基準を、繰り返しの度に25ミリボルト修正する(すなわち、ステップ120)と仮定する。もし実際に起こったセルのスレショルド電圧のドリフトが100ミリボルトであるなら、データを読み取ろうとする最初の試み(すなわち、ステップ112C)は、5回の読み取り繰り返し後に成功することになる(デフォルト読み出し基準値が、許容安全域なしに、分布の端に非常に近いと単純に仮定している。この仮定は、通常、フラッシュメモリ・デバイスに該当しない)。読み出し成功後、100ミリボルトの値を、後の使用のために記憶する。
以降、読み出しリクエストの受信後、そのデータを再び読み出す112Dとき、100ミリボルトの記憶値を取り出して使用する。一つの実施例(すなわち、図5に例示したようなもの)によれば、デフォルトの読み出しをスキップして、デフォルト値から100ミリボルト離れた基準から、読み出しを始めてもよい。択一的に、以降の読み出しリクエストを受信したら、デフォルト基準電圧を用いて最初の読み出しを試み、そしてデータを訂正できない場合にのみ、100ミリボルト・シフトさせた値で読み出しを試みてもよい。このように、5回の繰り返しではなく、1、2回の読み出し繰り返しのみのオーバーヘッドで済む。
注目すべきことは、フラッシュメモリの種々のページに対する(すなわち、かなりの量の読み出しに対する)成功基準値を、揮発性メモリ、不揮発性メモリあるいはそれらの組み合わせ内に記憶してもよい130。例えば、成功基準値を、フラッシュ・コントローラ内のRAM内のテーブルに、あるいはフラッシュ・デバイス内に記憶してもよい130。RAM内への記憶は速いので効率的であるため、プロセスの速度を上げるという目的にかなっている。欠点は、一旦電源を切ってしまうと、記憶基準値が失われるということである。しかし、記憶値がメモリ・システム・オペレーションに必須なものでないため、これは許容できることである。もし、かなりの量のデータに関する記憶基準値が失われてしまったなら、そのかなりの量のデータに対する次の読み出しの際は、まず最初に、(例えば、図4に記載したような)低速で完全な反復プロセスを用いてもよい。しかし、データはなお、正しく読み出すことができる。
(図6の説明および考察)
図4では、基準電圧の修正120のやり方に制限がないことに注目した。 図6においては、少なくとも一つの電圧を導き出す140、あるいは、特定な方法で(例えば、フラッシュ・コントローラ10のマイクロプロセッサを用いて)計算することを開示する。このセクションでは、一つ以上の基準電圧を導き出す、あるいは計算する140、二つの模範的なプロシージャを説明する。第一のプロシージャは、ECCモジュールが提供する情報によって、基準電圧を計算する140ことに関する。そして、第二のプロシージャは、ランダムに選択した電圧を用いて、基準電圧を導き出す140ことに関する。 図5あるい は図6に明示していないが、注意すべきことは、典型的に、データ回復後、フラッシュメモリ・セルへデータを再び書き込むことをしないことである。
(基準電圧を導き出す140ための第一のプロシージャ)
いくつかの実施例(そして図6に例示するような例)においては、データ訂正に失敗したとき、ECCモジュールが提供する情報を有利に用いることができる。例えば、いくつかのECC方法は、訂正できないデータに関するエラーの重大度の指標を提供するように構成できる。この文脈におけるエラーの重大度は、典型的に、そのデータ内のエラー数を意味する。したがって、ECCモジュールには、正確なエラーは分からなくとも(しかも、それらの正確な数さえ分からなくとも)、エラー回数が大きいのか、あるいは小さいのかを示す情報は存在する。そのような情報を提供可能なECCモジュールを利用する場合、読み取り繰り返し数を減少させるように用いることができる。多数のエラーはスレショルド電圧の大規模なドリフトと相関があり、少数のエラーは小規模のドリフトと相関している、と予想することは合理的である。
その最も単純な形態において、ECCモジュールが、バイナリの「大きな、あるいは小さなエラー回数」の標識のみを提供する場合、この実施例は、以下のとおりに作用する。第一のデフォルト値ベースの読み出しが失敗したとき、ECCモジュールに、エラーの重大度を尋ねる。それから、この重大度に基づいて決定した基準値を用いて、次の読み出しを試みる。多くのエラーがあるなら、基準値を大規模にシフトしてもよいし、エラーが少ないなら、小さなシフトでよい。このようにすれば、次の読み出しの試みが成功する可能性が高く、読み出しオペレーション毎の平均読み取り繰り返し数が減少する。
注目すべきことは、(例えば、ECCモジュールが提供する情報から)繰り返しの各々に用いる基準電圧を導き出すことによって、基準電圧を予め定めないエラー訂正スキームを提供できることである。したがって、基準電圧の順序は、データの異なるページに対して異なってもよく、また、同じページに対する2回の読み出しオペレーションでさえ異なってもよい。
基準電圧の予測が失敗した場合には、図4あるいは 図5で説明したスキーム、または他のスキームへ戻すことが常に可能であることは明らかである。
(基準電圧を導き出す140ための第二のプロシージャ)
エラー訂正中、所定値を用いるよりむしろ、少なくとも一つの基準電圧をランダムに導き出す140ことが望ましい多くのケースがある。例えば、もしBCHあるいはハミング符号などの、多くの単純なECCスキームでそうであるように、ECCモジュールがエラーの重大度に関する情報を提供できない場合、データ・ビットから導き出した情報に応じて、読み出し基準電圧を選択することも可能である。したがって、値をランダムに用いることが望ましいこともある。異なるページ間で潜在するドリフト量の変化が大きい場合は、ランダム・セレクションが所定の選択よりも有利であるかもしれない。ランダム・セレクションを用いることによって、読み出しオペレーション毎の読み取り繰り返し数を平均化できるため、システム内に設置した特定のフラッシュ・デバイスに依存することの少ない、より安定な性能を提供できるかもしれない。
(図7の説明および考察)
修正電圧(すなわち、所定修正電圧、あるいは「新しく」計算した電圧)を用いて、データ・セルを再び読み出すエラー訂正プロシージャを説明する。
しかし、注目すべきは、本発明はまた、最初のデータ読み出しが成功した場合に対しても、フラッシュメモリ・セルからデータを読み出すためのプロシージャを提供することである。
さて、図7を参照する。最初の読み出しリクエストを受信した110A後、所定セットの基準電圧(例えば、デフォルト基準電圧)を用いて、フラッシュ・データ・セルを読み取る112Cことに注意すべきである。読み取ったデータが、ECCを用いてうまく訂正された150ら、第一の読み出しリクエストへ応答してもよい118。
第一のリクエスト110Aに応答してデータがうまく読み取られて訂正された(すなわち、エラー訂正ルーチンの必要がなかった)にもかかわらず、第二の読み出しリクエスト110Bに応答して、基準電圧を修正する。
典型的に、基準電圧は、第一の読み出しリクエストで読み取ったデータを訂正した後、ECCが提供する情報に応じて修正する。しかし、これは限定ではない。特に、注目すべきは、ほとんどのECCスキームは、データ訂正が成功した場合、訂正エラー数に関する情報を提供することが可能であることである。したがって、「エラー訂正成功」の場合は、訂正が失敗の場合ほどに重大度はあまり高くないが、それでも訂正エラーに関する重大度の指標が利用できる。この指標に基づいて、重大度が、読み出し基準電圧の調整を正当化するのに十分に高いかどうかを判定してもよい。その調整が、同じデータの次の読み出しリクエストに対する出発点となる。調整値から始めれば、次の読み出しの際に、読み取りの繰り返しを一回以上少なくできる。 図5で説明した実施例のように、揮発性(例えばRAM)や不揮発性メモリ(例えばフラッシュメモリ)の組み合わせにおいて、種々のデータ・ページに用いる基準電圧を、後の使用のために記憶してもよい。
したがって、データ・ビットの最初の読み出し112C後に、エラー検出訂正モジュールよるエラー訂正の失敗がなかったとしても、修正基準電圧を用いる読み出し112Bを実行してもよいことに注意すべきである。
(模範的な実施例の全般的な考察)
上記のように、本発明の実施例は、フラッシュメモリ・デバイスからデータを読み取るための方法に関する。いくつかの実施例は、本文で説明した方法によって、フラッシュメモリ・セルのアレイから読み出すように作動可能なフラッシュメモリ・コントローラを提供する。いくつかの本発明の実施例は、フラッシュメモリ・セルのアレイを、ここに開示の方法でアレイから読み出すフラッシュメモリ・コントローラと組み合わせるフラッシュメモリ・デバイスを提供する。
理解すべきことは、本発明は、SBCおよびMBCフラッシュメモリに等しく適用できることである。SBCセルでは、単一の読み出し基準電圧のみであるが、MBCセルにおいては、複数の読み出し基準電圧がある。ここに開示する、フラッシュメモリ・セルを読むためのプロシージャは、両ケースに採用できる。MBCケースでは、基準のシフトを、各基準電圧に平行に、あるいは別個に、すべての基準へ適用してもよい。
(エラー訂正失敗の考察)
いくつかの実施例では、デバイスがECC失敗を示す(例えば、所定のサイズのデータ量毎の所定エラー数よりもエラーが多い)場合、「ECC失敗」イベントが発生する。しかし、これは本発明の限界ではない。例えば、ECCモジュールがエラー訂正成功を示す場合でも、実は、読み出したかなりの量のデータにおけるエラーの数および/あるいはタイプに関する代替の所定「エラー訂正失敗」基準によれば、「エラー訂正失敗」イベントが発生していることが分かることがある。
したがって、本発明の実施例(そして特に 図3から図6で説明した実施例)は、フラッシュメモリ・コントローラ10が、ECCモジュールの判定基準とは異なる、「エラー訂正失敗イベント」を定義するための所定判定基準を用いるケースに関する。
一例によれば、ECCモジュールがその最大エラー訂正能力近くで作動している場合は、ECCモジュールに依存することは望ましくない。例えば、ECCモジュールが、フラッシュメモリから読み出したデータ塊における四つのエラーまで訂正できると仮定する。この例によれば、三つ以下のエラーの訂正に関しては非常に信頼できるが、四つのエラーの訂正に関しては、信頼できないと仮定してもよい(すなわち、これは、エラー訂正失敗イベントに対する「所定判定基準」の例であり、データ塊毎のエラー数が所定値を上回っている)。これは、四つのエラーがあるときには、真のデータは、ECCモジュールが返すものではなく、それとは異なる何かである可能性がゼロではないためである。したがって、ECCが実際に訂正を提案できるという事実にもかかわらず、四つのエラーがあるケースを訂正失敗とみなして、より信頼できる読み出しを得るために、本発明のいくつかの(例えば、図4から図6に開示の)実施例が提供するエラー訂正技術を適用することを選択してもよい。したがって、模範的なケースは、本文で説明したいずれの実施例にも該当する。また、用語「エラーを訂正できない」は、「エラーを訂正できない、または訂正が、他の所定エラー基準によれば信頼できないと考えられる」ことを含む、と理解すべきである。
本出願の説明文および請求項における動詞「なる」、「含む」および「持つ」、そして、それらの同根語の各々は、動詞の目的語あるいは複数の目的語が、必ずしも、動詞の主語あるいは複数の主語の、リストされた部材、コンポーネント、素子または部品のすべてを含むというわけではないことを示すために用いている。
本文におけるすべての引用文献は、参照によって、それらの全体が含まれる。参考文献からの引用は、その参照が従来の技術であると認めることを意味しない。
不定冠詞「a」および「an」は、または、その冠詞の文法的対象の一つ以上(すなわち、少なくとも一つ)に言及するために、本文で用いている。例証として、「素子」は、一つの素子あるいは複数の素子を意味する。
用語「含む」は、表現「含むが、これに限定されるものではない」を意味するために本文で用いており、その表現と置き換えて用いることができる。
用語「または」は、用語「および/または」を意味するために本文で用いており、前後関係がそれを指示しないことが明らかでない限り、その用語と置き換えて用いることができる。
用語「例えば」は、表現「例えば、しかしそれに限定しない」を意味するために本文で用いており、その表現と置き換えて用いることができる。
実施例の詳細な説明を用いて、本発明を説明したが、それらは、例として提供したもので、発明の範囲を限定することを意図していない。説明した複数の実施例は、異なる特徴からなるが、それらのすべてが、本発明のすべての実施例に必要というわけではない。本発明のいくつかの実施例は、いくつかの特徴のみを利用する、または特徴の組み合わせを利用するものである。同業者は、説明した本発明の種々の実施例、そして説明した実施例で注目した特徴の異なる組み合わせからなる本発明の実施例を思いつくであろう。
大規模な個体数のメモリ・セル(従来の技術)のスレショルド電圧の分布を表すグラフである。 大規模な個体数のメモリ・セル(従来の技術)のスレショルド電圧の分布を表すグラフである。 従来の技術としてのエラー回復スキーマを説明するフロー・チャートである。 本発明の典型的な実施例による、フラッシュメモリ・デバイスのブロック図である。 本発明の実施例としてのフラッシュ・デバイスによる、一つ以上の読み出しリクエストの処理を説明するフロー・チャートである。 本発明の実施例としてのフラッシュ・デバイスによる、一つ以上の読み出しリクエストの処理を説明するフロー・チャートである。 本発明の実施例としてのフラッシュ・デバイスによる、一つ以上の読み出しリクエストの処理を説明するフロー・チャートである。 本発明の実施例としてのフラッシュ・デバイスによる、一つ以上の読み出しリクエストの処理を説明するフロー・チャートである。

Claims (31)

  1. 複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステムにおいて、
    a)複数のフラッシュメモリ・セルからデータ・ビットを読み取ること、
    b)エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正しようと試みること、
    c)エラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールが前記エラーの訂正を成功させるまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルから前記データ・ビットの再読み出しを行うこと、そして
    d)メモリ・セルに前記データ・ビットを当座の間再書き込みすることなく、前記データ・ビットに対するステップ(a)、(b)および(c)を繰り返すことからなる、データを読み取る方法。
  2. 前記繰り返し前の最初の前記読み取りが、最初の読み出しリクエストに応答したものであり、そして前記繰り返しに関わる以降の読み取りが、以降の読み出しリクエストに応答したものである、請求項1の方法。
  3. 複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステムにおいて、
    a)複数のフラッシュメモリ・セルからデータ・ビットを読み取ること、
    b)エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正しようと試みること、
    c)エラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールが前記エラーの訂正を成功させるまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルから前記データ・ビットの再読み出しを行うこと、
    d)前記訂正の後に、モジュールが前記エラーの訂正に成功したときの少なくとも一つの読み出し基準電圧を記憶すること、
    e)前記記憶の後に、前記記憶した少なくとも一つの読み出し基準電圧を読み出すこと、そして
    g)前記読み出しの後、前記読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み取ることからなる、データを読み取る方法。
  4. 少なくとも一つの前記読み出した基準電圧が、揮発性メモリ内に記憶される、請求項3の方法。
  5. 少なくとも一つの前記読み出した基準電圧が、不揮発性メモリ内に記憶される、請求項3の方法。
  6. 少なくとも一つの前記読み出した基準電圧が、一つ以上のフラッシュメモリ・セル内に記憶される、請求項3の方法。
  7. 前記読み取ったデータ・ビットが、フラッシュコントローラを用いて読み取られ、そして少なくとも一つの前記読み出した基準電圧が、前記フラッシュコントローラ内に記憶される、請求項3の方法。
  8. 前記記憶の前の最初の前記読み取りが、最初の読み出しリクエストに応答したものであり、そして前記読み出した少なくとも一つの読み出し基準電圧を用いる以降の読み取りが、以降の読み出しリクエストに応答したものである、請求項3の方法。
  9. 複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステムにおいて、
    a)複数のフラッシュメモリ・セルからデータ・ビットを読み取ること、
    b)エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正しようと試みること、
    c)エラー検出訂正モジュールによるエラー訂正が失敗した前記読み取り以降、少なくとも一つの新しい読み出し基準電圧を導き出すこと、そして
    d)前記導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリ・セルから前記データ・ビットを読み出すことからなる、データを読み取る方法。
  10. 前記導き出した少なくとも一つの新しい電圧が、少なくとも部分的にエラー検出訂正モジュールが提供する情報に応じて決定される、請求項9の方法。
  11. 前記導き出した少なくとも一つの新しい電圧が、少なくとも部分的にランダムに決定される、請求項9の方法。
  12. 複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステムにおいて、
    a)複数のフラッシュメモリ・セルからデータ・ビットを読み取ること、
    b)エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正すること、そして
    c)前記訂正の後、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルから前記データ・ビットを読み出すことからなる、データを読み取る方法。
  13. 前記訂正の後、かつ前記少なくとも一つの修正基準電圧を用いた前記読み出しの前に、複数のメモリ・セルが書き込まれることがない、請求項12の方法。
  14. 少なくとも一つの前記修正基準電圧は、少なくとも部分的にエラー検出訂正モジュールが提供する情報に応じて導き出される、請求項12の方法。
  15. 前記訂正の前の最初の前記読み取りが、最初の読み出しリクエストに応答したものであり、そして前記訂正の後の前記以降の読み取りが、以降の読み出しリクエストに応答したものである、請求項12の方法。
  16. データ記憶のためのフラッシュメモリ・デバイスであって、
    a)データ・ビットを記憶するための複数のフラッシュメモリ・セル、
    b)前記データ・ビットにおけるエラーを検出して訂正するためのエラー検出訂正モジュール、そして
    c)前記メモリ・セルから前記データ・ビットを読み取るためのコントローラからなり、
    i)前記コントローラが、前記複数のフラッシュメモリ・セルからデータ・ビットを読み取ることによって、最初の読み出しリクエストに応答するよう作動可能であり、そして前記エラー検出訂正モジュールが前記データ・ビットの訂正に失敗した場合、前記モジュールが前記エラーの訂正に成功するまで、少なくとも一つの修正基準電圧を用いて、データ・ビットの再読み出しを行うよう作動可能であり、また
    ii)前記コントローラが、さらに、当座の間前記データ・ビットをメモリ・セルに再書き込みすることなく、以降の読み出しリクエストに対して前記応答を繰り返すよう作動可能である、フラッシュメモリ・デバイス。
  17. データ記憶のためのフラッシュメモリ・デバイスであって、
    a)データ・ビットを記憶するための複数のフラッシュメモリ・セル、
    b)前記データ・ビットにおけるエラーを検出して訂正するためのエラー検出訂正モジュール、そして
    c)前記フラッシュメモリ・セルから前記データ・ビットを読み取るためのコントローラからなり、前記コントローラが、
    i)複数のフラッシュメモリ・セルからデータ・ビットを読み取ること、
    ii)前記エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正しようと試みること、
    iii)エラー検出訂正モジュールによるエラー訂正が失敗した場合、前記モジュールが前記エラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、前記複数のフラッシュメモリ・セルからデータ・ビットの再読み出しを行うこと、そして
    iv)前記訂正の後に、モジュールが前記エラーの訂正に成功したときの少なくとも一つの読み出し基準電圧を記憶することによって、最初の読み出しリクエストに応答するよう作動可能であり、また、前記記憶の後、前記コントローラが、さらに、
    i)前記記憶した少なくとも一つの読み出し基準電圧を読み出すこと、そして
    ii)前記読み出しの後、前記読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み取ることによって、以降の読み出しリクエストに応答するよう作動可能である、フラッシュメモリ・デバイス。
  18. 前記コントローラが、揮発性メモリに、少なくとも一つの前記読み出し基準電圧を記憶するよう作動可能である、請求項17のデバイス。
  19. 前記コントローラが、不揮発性メモリに、少なくとも一つの前記読み出し基準電圧を記憶するよう作動可能である、請求項17のデバイス。
  20. 前記コントローラが、一つ以上の前記フラッシュメモリ・セルに、少なくとも一つの前記読み出し基準電圧を記憶するよう作動可能である、請求項17のデバイス。
  21. 前記コントローラが、前記コントローラ内に、少なくとも一つの前記読み出し基準電圧を記憶するよう作動可能である、請求項17のデバイス。
  22. データ記憶のためのフラッシュメモリ・デバイスであって、
    a)データ・ビットを記憶するための複数のフラッシュメモリ・セル、
    b)前記データ・ビットにおけるエラーを検出するためのエラー検出訂正モジュール、そして
    c)前記フラッシュメモリ・セルから前記データ・ビットを読み取るためのコントローラからなり、前記コントローラが、
    i)前記データ・ビットを複数のフラッシュメモリ・セルから読み取ること、
    ii)エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正しようと試みること、
    iii)エラー検出訂正モジュールによるエラー訂正が失敗した前記読み取り以降、少なくとも一つの新しい読み出し基準電圧を導き出すこと、そして
    iv)前記導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリ・セルから前記データ・ビットを読み出すことによって、読み出しリクエストに応答するよう作動可能である、フラッシュメモリ・デバイス。
  23. 前記コントローラが、少なくとも部分的にエラー検出訂正モジュールが提供する情報に応じて前記少なくとも一つの新しい電圧を導き出すよう作動可能である、請求項22のデバイス。
  24. 前記コントローラが、少なくとも部分的にランダムに前記少なくとも一つの新しい電圧を導き出すよう作動可能である、請求項22のデバイス。
  25. データ記憶のためのフラッシュメモリ・デバイスであって、
    a)データ・ビットを記憶するための複数のフラッシュメモリ・セル、
    b)前記データ・ビットにおけるエラーを検出するためのエラー検出訂正モジュール、そして
    c)前記フラッシュメモリ・セルから前記データ・ビットを読み取るためのコントローラからなり、前記コントローラが、
    i)複数のフラッシュメモリ・セルからデータ・ビットを読み取ること、そして
    ii)前記エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正することによって、最初の読み出しリクエストに応答するよう作動可能であり、また、前記コントローラが、
    iii)少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み出すことによって、以降の読み出しリクエストに応答するよう作動可能である、フラッシュメモリ・デバイス。
  26. 前記コントローラが、前記訂正の後、かつ前記少なくとも一つの修正基準電圧を用いる前記読み取りの前に、前記複数のメモリ・セルに書き込むことなく、前記最初の、そして前記以降の読み出しリクエストに応答するよう作動可能である、請求項25のデバイス。
  27. 前記コントローラが、少なくとも部分的に前記エラー検出訂正モジュールが提供する情報に応じて、少なくとも一つの前記修正基準電圧を導き出すよう作動可能である、請求項25のデバイス。
  28. コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、前記コンピュータで読み込み可能なコードが前記コンピュータで読み取り可能な記憶メディア内に具現化されており、前記コンピュータで読み込み可能なコードが、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための命令からなり、前記命令が、
    a)前記複数のフラッシュメモリ・セルからデータ・ビットを読み取る命令、
    b)前記エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正しようと試みる命令、
    c)エラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールが前記エラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルから前記データ・ビットの再読み出しを行う命令、そして
    d)当座の間前記データ・ビットをメモリ・セルに書き込み再書き込みせずに、ステップ(a)、(b)および(c)を繰り返す命令からなる、コンピュータで読み取り可能な記憶メディア。
  29. コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、前記コンピュータで読み込み可能なコードが前記コンピュータで読み取り可能な記憶メディア内に具現化されており、前記コンピュータで読み込み可能なコードが、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための命令からなり、前記命令が、
    a)複数のフラッシュメモリ・セルからデータ・ビットを読み取る命令、
    b)エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正しようと試みる命令、
    c)エラー検出訂正モジュールによるエラー訂正が失敗した場合、モジュールが前記エラーの訂正に成功するまで、少なくとも一度、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルから前記データ・ビットの再読み出しを行う命令、
    d)前記訂正の後、モジュールが前記エラーの訂正に成功したときの少なくとも一つの読み出し基準電圧を記憶する命令、
    e)前記記憶の後、前記記憶した少なくとも一つの読み出し基準電圧を読み出す命令、そして
    g)前記読み出しの後、前記読み出した少なくとも一つの読み出し基準電圧を用いて、複数のフラッシュメモリ・セルからデータ・ビットを読み取る命令からなる、コンピュータで読み取り可能な記憶メディア。
  30. コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、前記コンピュータで読み込み可能なコードが前記コンピュータで読み取り可能な記憶メディア内に具現化されており、前記コンピュータで読み込み可能なコードが、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための命令からなり、前記命令が、
    a)複数のフラッシュメモリ・セルからデータ・ビットを読み取る命令、
    b)エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正しようと試みる命令、
    c)エラー検出訂正モジュールによるエラー訂正が失敗した前記読み取り以降、少なくとも一つの新しい読み出し基準電圧を導き出す命令、そして
    d)前記導き出した少なくとも一つの新しい読み出し基準電圧を用いて、複数のフラッシュメモリ・セルから前記データ・ビットを読み出す命令からなる、コンピュータで読み取り可能な記憶メディア。
  31. コンピュータで読み込み可能なコードを持つコンピュータで読み取り可能な記憶メディアであって、前記コンピュータで読み込み可能なコードが前記コンピュータで読み取り可能な記憶メディア内に具現化されており、前記コンピュータで読み込み可能なコードが、複数のフラッシュメモリ・セルおよびエラー検出訂正モジュールからなるシステム内のデータを読み取るための命令からなり、前記命令が、
    a)複数のフラッシュメモリ・セルからデータ・ビットを読み取る命令、
    b)エラー検出訂正モジュールを用いて、前記読み取ったデータ・ビットのエラーを訂正する命令、そして
    c)前記訂正の後、少なくとも一つの修正基準電圧を用いて、複数のフラッシュメモリ・セルから前記データ・ビットを読み出す命令からなる、コンピュータで読み取り可能な記憶メディア。
JP2008537310A 2005-10-25 2006-10-24 フラッシュメモリ内のエラーから復旧するための方法 Expired - Fee Related JP5123196B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US72960805P true 2005-10-25 2005-10-25
US11/397,609 US7954037B2 (en) 2005-10-25 2006-04-05 Method for recovering from errors in flash memory
PCT/IL2006/001220 WO2007049272A2 (en) 2005-10-25 2006-10-24 A method for recovering from errors in flash memory

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011133901A Division JP2011238346A (ja) 2011-06-16 2011-06-16 フラッシュメモリ内のエラーから復旧するための方法

Publications (2)

Publication Number Publication Date
JP2009515281A true JP2009515281A (ja) 2009-04-09
JP5123196B2 JP5123196B2 (ja) 2013-01-16

Family

ID=37968211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008537310A Expired - Fee Related JP5123196B2 (ja) 2005-10-25 2006-10-24 フラッシュメモリ内のエラーから復旧するための方法

Country Status (6)

Country Link
US (2) US7954037B2 (ja)
EP (1) EP1946210A2 (ja)
JP (1) JP5123196B2 (ja)
KR (1) KR100976989B1 (ja)
CN (1) CN101529522B (ja)
WO (1) WO2007049272A2 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011514618A (ja) * 2008-03-17 2011-05-06 サムスン エレクトロニクス カンパニー リミテッド メモリ装置および方法
JP2011519107A (ja) * 2008-03-12 2011-06-30 サムスン エレクトロニクス カンパニー リミテッド メモリデータのハイブリッド検出のための装置および方法
JP2012079403A (ja) * 2010-10-04 2012-04-19 Samsung Electronics Co Ltd 不揮発性メモリ装置の読み出し方法及びメモリコントローラの動作方法並びにメモリシステムの動作方法
JP2013503410A (ja) * 2009-08-25 2013-01-31 マイクロン テクノロジー, インク. メモリ装置におけるしきい値電圧の変化に対応するための方法、装置、およびシステム
JP2014502773A (ja) * 2011-01-14 2014-02-03 マイクロン テクノロジー, インク. デバイス内の検知電圧を調節するための方法、デバイス、およびシステム
JP2014044791A (ja) * 2012-08-27 2014-03-13 Freescale Semiconductor Inc 不揮発性メモリのための適応的エラー訂正
JP2014182864A (ja) * 2013-03-15 2014-09-29 Samsung Electronics Co Ltd 不揮発性メモリ装置のデータ読み出し方法及び不揮発性メモリ装置、メモリシステムの駆動方法
US9177659B2 (en) 2010-05-12 2015-11-03 Micron Technology, Inc. Determining and using soft data in memory devices and systems
US9208028B2 (en) 2012-09-07 2015-12-08 Samsung Electronics Co., Ltd. Recovery code management method and memory system using same
JP2016504703A (ja) * 2012-12-06 2016-02-12 マイクロン テクノロジー, インク. 誤り訂正に基づくデフォルト読み出し信号の設定
JP2016505937A (ja) * 2012-11-29 2016-02-25 ウェスタン デジタル テクノロジーズ インコーポレーテッド データストレージシステムのためのデータ信頼性スキーム

Families Citing this family (249)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080043366A1 (en) * 2003-06-26 2008-02-21 Spectra Logic Corporation Tape cartridge auxiliary memeory based library
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
WO2007132453A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
US7697326B2 (en) * 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
US8239735B2 (en) * 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US7701797B2 (en) * 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7911834B2 (en) * 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US7639531B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US7551486B2 (en) * 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
CN101601094B (zh) 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
US7975192B2 (en) * 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
KR100799018B1 (ko) * 2006-12-27 2008-01-28 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 자기 보상 방법
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
KR100871700B1 (ko) * 2007-02-13 2008-12-08 삼성전자주식회사 불휘발성 메모리 장치에서 전하 손실에 기인한 오류 데이터정정 방법
KR100865830B1 (ko) * 2007-02-22 2008-10-28 주식회사 하이닉스반도체 메모리 소자의 독출 방법
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
US7971127B2 (en) * 2007-03-31 2011-06-28 Sandisk Technologies Inc. Guided simulated annealing in non-volatile memory error correction control
US7966550B2 (en) 2007-03-31 2011-06-21 Sandisk Technologies Inc. Soft bit data transmission for error correction control in non-volatile memory
US7975209B2 (en) * 2007-03-31 2011-07-05 Sandisk Technologies Inc. Non-volatile memory with guided simulated annealing error correction control
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US7876621B2 (en) * 2007-04-23 2011-01-25 Sandisk Il Ltd. Adaptive dynamic reading of flash memories
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
WO2009002940A2 (en) * 2007-06-25 2008-12-31 Sandisk Corporation Systems and methods of reading nonvolatile memory
US7849383B2 (en) 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7751237B2 (en) 2007-09-25 2010-07-06 Sandisk Il, Ltd. Post-facto correction for cross coupling in a flash memory
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
KR101379820B1 (ko) * 2007-10-17 2014-04-01 삼성전자주식회사 멀티-비트 프로그래밍 장치와 메모리 데이터 검출 장치
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8527819B2 (en) * 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US7853841B2 (en) * 2007-10-29 2010-12-14 Micron Technology, Inc. Memory cell programming
WO2009063450A2 (en) 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) * 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8621138B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
KR101515122B1 (ko) * 2008-02-15 2015-04-27 삼성전자주식회사 저장된 데이터의 오류에 기반하여 기준 전압을 제어하는 방법과 메모리 데이터 검출 장치
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
KR101506655B1 (ko) 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
KR101423052B1 (ko) * 2008-06-12 2014-07-25 삼성전자주식회사 메모리 장치 및 읽기 레벨 제어 방법
US8464131B2 (en) * 2008-06-23 2013-06-11 Ramot At Tel Aviv University Ltd. Reading a flash memory by constrained decoding
US8458563B2 (en) * 2008-06-23 2013-06-04 Ramot At Tel Aviv University Ltd. Reading a flash memory by joint decoding and cell voltage distribution tracking
US7808831B2 (en) * 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
TWI581269B (zh) * 2008-09-30 2017-05-01 Lsi公司 利用解碼器效能回饋用於記憶體裝置之軟性資料產生的設備及方法
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
KR101486980B1 (ko) * 2008-10-27 2015-01-30 삼성전자주식회사 불휘발성 메모리의 문턱 전압 산포의 분석 방법
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
CN101740123B (zh) * 2008-11-10 2012-04-04 扬智科技股份有限公司 存储器的数据保护方法
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
KR101642465B1 (ko) * 2008-12-12 2016-07-25 삼성전자주식회사 불휘발성 메모리 장치의 액세스 방법
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
KR101588293B1 (ko) 2009-02-17 2016-01-26 삼성전자주식회사 비휘발성 메모리 장치의 읽기 방법
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
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
KR101626528B1 (ko) * 2009-06-19 2016-06-01 삼성전자주식회사 플래시 메모리 장치 및 이의 데이터 독출 방법
US20110002169A1 (en) * 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8407564B2 (en) * 2009-07-15 2013-03-26 Intel Corporation Prediction and cancellation of systematic noise sources in non-volatile memory
KR101678909B1 (ko) * 2009-09-17 2016-11-23 삼성전자주식회사 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
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
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
KR20120137354A (ko) 2010-01-28 2012-12-20 샌디스크 아이엘 엘티디 슬라이딩-윈도우 에러 정정
US8365041B2 (en) * 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
TWI455142B (zh) * 2010-04-08 2014-10-01 Silicon Motion Inc 快閃記憶體之資料讀取的方法以及資料儲存裝置
US9570162B2 (en) * 2010-04-08 2017-02-14 Silicon Motion, Inc. Data read method for flash memory
US8576625B1 (en) 2010-04-20 2013-11-05 Marvell International Ltd. Decoder parameter estimation using multiple memory reads
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8370719B2 (en) * 2010-05-21 2013-02-05 Intel Corporation Persistent moving read reference
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
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
US9135168B2 (en) 2010-07-07 2015-09-15 Marvell World Trade Ltd. Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
US9141538B2 (en) 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
CN105229592B (zh) * 2013-03-15 2018-04-10 马维尔国际贸易有限公司 用于生成用以由于错误而重新访问存储驱动器的非易失性半导体存储器的描述符的装置和方法
US8868852B2 (en) 2010-07-07 2014-10-21 Marvell World Trade Ltd. Interface management control systems and methods for non-volatile semiconductor memory
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
CN107093464A (zh) 2010-07-13 2017-08-25 桑迪士克科技有限责任公司 后台存储器系统接口的动态优化
US8464135B2 (en) 2010-07-13 2013-06-11 Sandisk Technologies Inc. Adaptive flash interface
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8665650B2 (en) * 2011-02-18 2014-03-04 Marvell World Trade Ltd. Reliability metrics management for soft decoding
US8472274B2 (en) * 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
US8631288B2 (en) 2011-03-14 2014-01-14 Micron Technology, Inc. Methods, devices, and systems for data sensing in a memory system
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
US8510636B2 (en) * 2011-04-01 2013-08-13 Intel Corporation Dynamic read channel calibration for non-volatile memory devices
US9069688B2 (en) 2011-04-15 2015-06-30 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
US8713380B2 (en) 2011-05-03 2014-04-29 SanDisk Technologies, Inc. Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
US20130006896A1 (en) * 2011-06-28 2013-01-03 Seagate Technology Llc Training Datasets for Memory Devices
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US9047210B2 (en) 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
KR101892038B1 (ko) 2012-01-30 2018-08-27 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법
WO2013132532A1 (en) 2012-03-06 2013-09-12 Hitachi, Ltd. Semiconductor storage device having nonvolatile semiconductor memory
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
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8514646B1 (en) * 2012-05-09 2013-08-20 Storart Technology Co. Ltd. Method for improving performance when flash memory storage device works in wide temperature range
KR101939234B1 (ko) 2012-07-23 2019-01-16 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 상기 메모리 장치의 독출 전압의 제어 방법
CN102831026A (zh) * 2012-08-13 2012-12-19 忆正科技(武汉)有限公司 多层单元闪存及其软信息位读取电压阈值动态调整方法
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
KR20140029582A (ko) * 2012-08-28 2014-03-11 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
EP2709041B1 (en) * 2012-09-17 2014-11-12 Nxp B.V. Method and System for Monitoring the State of Health of an Electronic Data Carrier
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
KR20140045168A (ko) * 2012-10-08 2014-04-16 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법
US9225356B2 (en) * 2012-11-12 2015-12-29 Freescale Semiconductor, Inc. Programming a non-volatile memory (NVM) system having error correction code (ECC)
US9466382B2 (en) 2012-11-14 2016-10-11 Sandisk Technologies Llc Compensation for sub-block erase
KR102002385B1 (ko) * 2012-11-14 2019-07-23 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
US9032271B2 (en) * 2012-12-07 2015-05-12 Western Digital Technologies, Inc. System and method for lower page data recovery in a solid state drive
US9098428B2 (en) 2012-12-11 2015-08-04 Sandisk Technologies Inc. Data recovery on cluster failures and ECC enhancements with code word interleaving
US8988941B2 (en) 2012-12-18 2015-03-24 SanDisk Tehcnologies Inc. Select transistor tuning
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
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
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
KR102123946B1 (ko) 2012-12-28 2020-06-17 삼성전자주식회사 멀티 레벨 셀 메모리 장치 및 그것의 동작방법
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9349489B2 (en) 2013-01-11 2016-05-24 Sandisk Technologies Inc. Systems and methods to update reference voltages in response to data retention in non-volatile memory
US9070479B2 (en) 2013-01-21 2015-06-30 Sandisk Technologies Inc. Systems and methods of updating read voltages
US9318215B2 (en) * 2013-02-14 2016-04-19 Sandisk Technologies Inc. Systems and methods to update reference voltages of non-volatile memory
US9195587B2 (en) * 2013-03-07 2015-11-24 Sandisk Technologies Inc. Enhanced dynamic read process with single-level cell segmentation
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
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
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9367246B2 (en) * 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9367391B2 (en) * 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
US9697905B2 (en) 2013-05-31 2017-07-04 Sandisk Technologies Llc Updating read voltages using syndrome weight comparisons
US9728263B2 (en) 2013-05-31 2017-08-08 Sandisk Technologies Llc Method and device for iteratively updating read voltages
US10475523B2 (en) 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
CN104217761B (zh) * 2013-05-31 2018-12-14 慧荣科技股份有限公司 数据储存装置及其错误校正方法
US9218890B2 (en) 2013-06-03 2015-12-22 Sandisk Technologies Inc. Adaptive operation of three dimensional memory
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
KR102076231B1 (ko) * 2013-07-09 2020-02-12 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
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
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9142324B2 (en) 2013-09-03 2015-09-22 Sandisk Technologies Inc. Bad block reconfiguration in nonvolatile memory
KR102192910B1 (ko) * 2013-09-10 2020-12-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 이의 동작 방법
JP2015056198A (ja) 2013-09-13 2015-03-23 株式会社東芝 メモリチップ、記憶装置および読み出し方法
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
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
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
US9218886B2 (en) 2013-12-10 2015-12-22 SanDisk Technologies, Inc. String dependent parameter setup
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9430328B2 (en) 2014-01-24 2016-08-30 Stmicroelectronics S.R.L. Error correction in memory devices by multiple readings with different references
US9349490B2 (en) 2014-01-24 2016-05-24 Stmicroelectronics S.R.L. Error correction in differential memory devices with reading in single-ended mode in addition to reading in differential mode
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
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
WO2015145552A1 (ja) 2014-03-24 2015-10-01 株式会社日立製作所 不揮発メモリデバイス、及び、不揮発メモリデバイスを有するストレージ装置
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
KR102174030B1 (ko) 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
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
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
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
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
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
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
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
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
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
TWI562158B (en) * 2014-10-13 2016-12-11 Silicon Motion Inc Non-volatile memory device and controller
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
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US9558065B2 (en) * 2015-02-02 2017-01-31 Kabushiki Kaisha Toshiba Memory system including cache
US9959067B2 (en) 2015-02-04 2018-05-01 Sandisk Technologies Llc Memory block allocation by block health
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9928138B2 (en) * 2015-02-17 2018-03-27 Toshiba Memory Corporation Memory system
US10055267B2 (en) 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9502123B2 (en) 2015-04-21 2016-11-22 Sandisk Technologies Llc Adaptive block parameters
US9401216B1 (en) 2015-09-22 2016-07-26 Sandisk Technologies Llc Adaptive operation of 3D NAND memory
US9691473B2 (en) 2015-09-22 2017-06-27 Sandisk Technologies Llc Adaptive operation of 3D memory
US10284232B2 (en) * 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
CN107153507A (zh) * 2016-03-03 2017-09-12 北京兆易创新科技股份有限公司 一种基于NAND Flash的数据读取装置和方法
US10418097B2 (en) 2017-11-27 2019-09-17 Western Digital Technologies, Inc. Non-volatile storage system with read calibration
US11068186B2 (en) * 2018-02-09 2021-07-20 Micron Technology, Inc. Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation
CN108717385B (zh) * 2018-05-23 2020-09-29 中国科学院微电子研究所 一种用于闪存的数据恢复方法及系统
US10811091B2 (en) 2018-10-12 2020-10-20 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration
US10553290B1 (en) * 2018-10-30 2020-02-04 Micron Technology, Inc. Read disturb scan consolidation
US20200183783A1 (en) * 2018-12-10 2020-06-11 Micron Technology, Inc. Management of corruptive read in memory systems
US10991444B1 (en) * 2020-05-28 2021-04-27 Western Digital Technologies, Inc. Tiered read reference calibration

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04337857A (en) * 1991-05-15 1992-11-25 Yokogawa Electric Corp Micro processor
JPH07122087A (ja) * 1993-10-25 1995-05-12 Hitachi Ltd Eepromエラーチェック方式
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
JPH09244961A (ja) * 1996-03-08 1997-09-19 Mitsubishi Electric Corp フラッシュata−pcカード
JP2003248631A (ja) * 2002-02-26 2003-09-05 Nec Microsystems Ltd メモリ制御回路及びメモリ制御方法
JP2005190622A (ja) * 2003-12-26 2005-07-14 Matsushita Electric Ind Co Ltd 不揮発性半導体記憶装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US7031214B2 (en) * 1999-01-14 2006-04-18 Silicon Storage Technology, Inc. Digital multilevel memory system having multistage autozero sensing
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
JP2003140980A (ja) 2001-10-31 2003-05-16 Hitachi Ltd 記録装置
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
US7096137B2 (en) * 2002-12-02 2006-08-22 Silverbrook Research Pty Ltd Clock trim mechanism for onboard system clock
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7590918B2 (en) * 2004-09-10 2009-09-15 Ovonyx, Inc. Using a phase change memory as a high volume memory
US7581154B2 (en) * 2005-06-30 2009-08-25 Intel Corporation Method and apparatus to lower operating voltages for memory arrays using error correcting codes
US7975192B2 (en) * 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04337857A (en) * 1991-05-15 1992-11-25 Yokogawa Electric Corp Micro processor
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
JPH07122087A (ja) * 1993-10-25 1995-05-12 Hitachi Ltd Eepromエラーチェック方式
JPH09244961A (ja) * 1996-03-08 1997-09-19 Mitsubishi Electric Corp フラッシュata−pcカード
JP2003248631A (ja) * 2002-02-26 2003-09-05 Nec Microsystems Ltd メモリ制御回路及びメモリ制御方法
JP2005190622A (ja) * 2003-12-26 2005-07-14 Matsushita Electric Ind Co Ltd 不揮発性半導体記憶装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011519107A (ja) * 2008-03-12 2011-06-30 サムスン エレクトロニクス カンパニー リミテッド メモリデータのハイブリッド検出のための装置および方法
JP2011514618A (ja) * 2008-03-17 2011-05-06 サムスン エレクトロニクス カンパニー リミテッド メモリ装置および方法
JP2013503410A (ja) * 2009-08-25 2013-01-31 マイクロン テクノロジー, インク. メモリ装置におけるしきい値電圧の変化に対応するための方法、装置、およびシステム
US9177659B2 (en) 2010-05-12 2015-11-03 Micron Technology, Inc. Determining and using soft data in memory devices and systems
US9293214B2 (en) 2010-05-12 2016-03-22 Micron Technology, Inc. Determining and using soft data in memory devices and systems
KR101727704B1 (ko) 2010-10-04 2017-04-18 삼성전자주식회사 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들
JP2012079403A (ja) * 2010-10-04 2012-04-19 Samsung Electronics Co Ltd 不揮発性メモリ装置の読み出し方法及びメモリコントローラの動作方法並びにメモリシステムの動作方法
US9269450B2 (en) 2011-01-14 2016-02-23 Micron Technology, Inc. Methods, devices, and systems for adjusting sensing voltages in devices
US8797803B2 (en) 2011-01-14 2014-08-05 Micron Technology, Inc. Methods, devices, and systems for adjusting sensing voltages in devices
JP2014502773A (ja) * 2011-01-14 2014-02-03 マイクロン テクノロジー, インク. デバイス内の検知電圧を調節するための方法、デバイス、およびシステム
JP2014044791A (ja) * 2012-08-27 2014-03-13 Freescale Semiconductor Inc 不揮発性メモリのための適応的エラー訂正
US9208028B2 (en) 2012-09-07 2015-12-08 Samsung Electronics Co., Ltd. Recovery code management method and memory system using same
JP2016505937A (ja) * 2012-11-29 2016-02-25 ウェスタン デジタル テクノロジーズ インコーポレーテッド データストレージシステムのためのデータ信頼性スキーム
KR101877106B1 (ko) * 2012-11-29 2018-07-10 웨스턴 디지털 테크놀로지스, 인코포레이티드 데이터 스토리지 시스템들에 대한 데이터 신뢰도 스킴들
JP2016504703A (ja) * 2012-12-06 2016-02-12 マイクロン テクノロジー, インク. 誤り訂正に基づくデフォルト読み出し信号の設定
US9582362B2 (en) 2012-12-06 2017-02-28 Micron Technology, Inc. Setting a default read signal based on error correction
US9941022B2 (en) 2012-12-06 2018-04-10 Micron Technology, Inc. Setting a default read signal based on error correction
US10535419B2 (en) 2012-12-06 2020-01-14 Micron Technology, Inc. Setting a default read signal based on error correction
JP2014182864A (ja) * 2013-03-15 2014-09-29 Samsung Electronics Co Ltd 不揮発性メモリ装置のデータ読み出し方法及び不揮発性メモリ装置、メモリシステムの駆動方法

Also Published As

Publication number Publication date
EP1946210A2 (en) 2008-07-23
KR100976989B1 (ko) 2010-08-19
JP5123196B2 (ja) 2013-01-16
CN101529522A (zh) 2009-09-09
US20070091677A1 (en) 2007-04-26
US20110231740A1 (en) 2011-09-22
CN101529522B (zh) 2012-08-29
US7954037B2 (en) 2011-05-31
KR20080059461A (ko) 2008-06-27
WO2007049272A3 (en) 2009-04-09
WO2007049272A2 (en) 2007-05-03

Similar Documents

Publication Publication Date Title
JP5123196B2 (ja) フラッシュメモリ内のエラーから復旧するための方法
JP5138319B2 (ja) メモリーシステム及び該動作方法。
US8316278B2 (en) Memory system that detects bit errors due to read disturbance and methods thereof
US7992071B2 (en) Method for implementing error-correction codes in non-volatile memory
JP5113066B2 (ja) Mbcフラッシュメモリにおけるエラー訂正の方法
KR102065665B1 (ko) 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US9195539B2 (en) Method for reading data from block of flash memory and associated memory device
US20040237010A1 (en) Soft errors handling in EEPROM devices
JP2008108356A (ja) 不揮発性半導体記憶装置
US8386868B2 (en) Using programming-time information to support error correction
US20160306693A1 (en) Read voltage level estimating method, memory storage device and memory control circuit unit
US9471418B2 (en) Memory system that detects bit errors due to read disturbance and methods thereof
US8850284B2 (en) Flash memory controller and data reading method
US20160266972A1 (en) Memory controller, storage device and decoding method
JP2011238346A (ja) フラッシュメモリ内のエラーから復旧するための方法
US10084487B2 (en) Apparatuses and methods for erasure-assisted ECC decoding
EP1830269B1 (en) Reading method of a memory device with embedded error-correcting code and memory device with embedded error-correcting code
US10210042B2 (en) Memory system
TWI602055B (zh) 半導體儲存裝置及其編程方法
TWI497505B (zh) 多位元單元非揮發性記憶體的寫入方法
KR20160088494A (ko) 데이터 저장 장치 및 그것의 동작 방법
JP6293846B2 (ja) 半導体記憶装置
US20130006896A1 (en) Training Datasets for Memory Devices

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110309

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120410

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121025

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees