(57)【要約】【課題】メモリ・デバイスを管理するための方法、そのように管理されるメモリ・デバイス、そしてそのようなメモリ・デバイスを含むシステムを得る。【解決手段】デバイス上でのデータ・オペレーションの後、デバイスの耐用寿命パラメータの値がモニターされる。このモニタリングはデバイスによって実行される。その値からデバイスのグレードが推測される。好適耐用寿命パラメータは、処理の失敗したデータへの処理の成功したデータの比率、そしてデバイスの電力消費における偏差を含む。グレードは、メモリ・デバイスの寿命の予想として機能する。好適グレードは、比較グレード、最大グレードおよび平均グレードを含む。【選択図】図２
2009526340.tif 000002
【特許請求の範囲】
【請求項１】
メモリ・デバイスを管理するための方法であって、
（ａ）メモリ・デバイス上でのデータ・オペレーションの後、メモリ・デバイスの耐用寿命パラメータの値をモニターするステップ、なお、前記モニタリングはメモリ・デバイスが実行する、そして
（ｂ）前記値からメモリ・デバイスのグレードを推測するステップからなる、方法。
【請求項２】
前記耐用寿命パラメータが、処理の失敗したデータへの、処理の成功したデータの比率である、請求項１の方法。
【請求項３】
前記耐用寿命パラメータが、メモリ・デバイスの電力消費の偏差である、請求項１の方法。
【請求項４】
前記偏差が、複数の前記オペレーションに対する測定値の平均である、請求項３の方法。
【請求項５】
前記グレードが、前記メモリの寿命の予想として機能する、請求項１の方法。
【請求項６】
前記オペレーションがプログラミング・オペレーションであり、前記値が、メモリ・デバイスのページ内の少なくとも一つのセルの論理状態を変化させるのに要求される、前記オペレーションに関わるプログラミング・パルスの数である、請求項１の方法。
【請求項７】
前記オペレーションが消去オペレーションであり、前記値が、メモリ・デバイスのブロック内の少なくとも一つのセルの論理状態を変化させるのに要求される、前記オペレーションに関わるプログラミング・パルスの数である、請求項１の方法。
【請求項８】
前記オペレーションがプログラミング・オペレーションであり、前記値が、メモリ・デバイスのページ内の健常なセルの数である、請求項１の方法。
【請求項９】
前記オペレーションが消去オペレーションであり、前記値が、メモリ・デバイスのブロック内の健常なセルの数である、請求項１の方法。
【請求項１０】
前記オペレーションが、データを書き込むこと、データを読み取ること、そしてデータを消去することからなるグループから選択される、請求項１の方法。
【請求項１１】
前記グレードが、所定基準前記値への現在前記値の比較グレード、モニタリング・デバイス内に記憶した複数の前記値の最大グレード、そして前記モニタリング・デバイス内に記憶した前記複数の前記値の平均グレードからなるグループから選択される、請求項１の方法。
【請求項１２】
前記グレードが、前記所定基準値への前記現在値の前記比較グレードであり、前記方法が、さらに、
（ｃ）メモリ・デバイスの製造時にメモリ・デバイス内に前記所定基準値を記憶するステップからなる、請求項１１の方法。
【請求項１３】
前記モニタリング・ステップが、前記グレードを推測する目的でメモリ・デバイスにアクセスすることを含む、請求項１の方法。
【請求項１４】
さらに、
（ｃ）モニタリング・デバイス内に前記グレードを記憶するステップからなる、請求項１の方法。
【請求項１５】
前記モニタリング・デバイスが、メモリ・デバイス、メモリ・デバイスの埋め込み型コントローラ、そしてメモリ・デバイスのホスト・システムからなるグループから選択される、請求項１４の方法。
【請求項１６】
前記推測ステップがメモリ・デバイスによって開始される、請求項１の方法。
【請求項１７】
前記推測ステップがメモリ・デバイスのホスト・システムによって開始される、請求項１の方法。
【請求項１８】
前記推測ステップがメモリ・デバイスの埋め込み型コントローラによって開始される、請求項１の方法。
【請求項１９】
前記推測ステップが、ホスト・システム上で作動しているアプリケーションによって開始される、請求項１の方法。
【請求項２０】
前記推測ステップが、ホスト・システム上で作動しているオペレーティングシステムによって開始される、請求項１の方法。
【請求項２１】
データを管理するためのメモリ・デバイスであって、
（ａ）メモリ、そして
（ｂ）コントローラからなり、
前記コントローラが、
（ｉ）前記メモリ上でのデータ・オペレーションの後、耐用寿命パラメータの値をモニターするよう、そして
（ii）前記値からメモリ・デバイスのグレードを推測するよう作動可能である、メモリ・デバイス。
【請求項２２】
前記グレードが、メモリ・デバイスの寿命の予想として機能する、請求項２１のメモリ・デバイス。
【請求項２３】
データを管理するためのシステムであって、
（ａ）メモリを含むメモリ・デバイス、そして
（ｂ）前記メモリ・デバイス内に収容されたプロセッサからなり、
前記プロセッサが、
（ｉ）前記メモリ上でのデータ・オペレーションの後、耐用寿命パラメータの値をモニターするよう、そして
（ii）前記値から前記メモリ・デバイスのグレードを推測するよう作動可能である、システム。
【請求項２４】
前記グレードが、前記メモリ・デバイスの寿命の予想として機能する、請求項２３のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にデジタル・メモリ・デバイスにおける、そして特に取り外し可能なフラッシュメモリ・デバイスにおける信頼性劣化のビルトイン検出のための方法に関する。
【背景技術】
【０００２】
デジタル・メモリ・デバイスは、重要なデータに対して信頼可能なメモリ・デバイスとして頻繁に用いられる。そのような装置は寿命が限られており、また複雑であるため、デジタル・メモリ・デバイスが故障した場合、大切なデータは失われてしまう。不揮発性記憶システムは、メモリおよび制御システムを含むが、これらは、時々、同じシリコンの基材上に設けられる。制御システムが実行するタスクの一つは、エラー訂正である。
【０００３】
エラー訂正コード（ＥＣＣ）は、記憶素子の特性または使用環境の特徴によって発生する、データにおける時折のエラーを検出し、そのエラーを修復し、ユーザの要求に対して、訂正された本来の情報を提供する。ＥＣＣシステムには、訂正可能なエラー数に関する、構造的な限界がある。過度に多くのエラーに遭遇すると、情報を修復することができず、喪失と報告することも、あるいはエラーがあるままの情報をユーザへ送ることもある。
【０００４】
メモリ・デバイスを用いるソフトウェア・アプリケーションは、訂正システムがデータの修復に失敗するまで、情報は正しいと仮定する。メモリがまだ完全に機能する限り、メモリが消耗して破損しつつあるというユーザへの指標は全くない。注目すべきは、エラー・レベルは、障害の前にメモリの寿命を予測するのに用いることができる複数の早期警告徴候の僅か一つであることである。
【０００５】
今日、ユーザ（そしてアプリケーション）は、記憶データの状態（ステートあるいはコンディション）に気づいていない。したがって、ユーザは、データを失う危険性を減少させる積極的な対策をとることができない。そのような対策は、例えば、データのバックアップを作成する、データを新しい記憶メディアへ移動させる、そしてメモリ・デバイスの問題の領域を他の領域へ再書き込みすることを含む。
【０００６】
現状技術は、メモリ・デバイスの「ヘルス」（すなわち、作動信頼性能）を報告するための方法を提供しない。いくつかの従来の技術による方法は、内部負荷平衡の目的で、デバイスの使用（すなわち、デバイスへの書き込み回数）を記録するが、それらの方法は、ユーザまたはアプリケーションへ早期警告表示を提供する目的で設計されたものではない。デバイスの使用と、デバイスの残りの寿命との間には相関性があるが、そのような相関性は、（年齢のみに基づいて人の寿命を予測することに関わる不正確性に類似する）デバイス間の、自然でランダムな変動があるため、絶対的なものではない。
【０００７】
メモリ・デバイスのヘルスをモニターしようとする方法は、本技術において既知であるが、ホスト・システム上で実行するプログラムに限られている。したがって、これらの方法は、エラーを訂正するためにエラー訂正方法を適用した後の、訂正された情報を取り扱うのみである。従来の技術によるシステムの一例が、ＣＡクパチーノに在るシマンテック社から入手可能な「ノートン・システム・ドクター（ＮＳＤ）」製品に含まれる（またＮＳＤ製品マニュアルに含まれる文書ＩＤ：２００１０８２２１８３５２３０９内に説明があり、ノートン・ウェブ・サイト（ｗｗｗ．ｎｏｒｔｏｎ．ｃｏｍ）上でも見ることができる）「ディスク・ヘルス」と呼ばれる機能内に提供されている。データがメモリ・デバイスから読み出されるため、データが訂正される前にホスト・システムが生データにさらされることはない。この局面は、そのような従来の技術による方法を、メモリ・デバイスのヘルスにおける初期の劣化に対して鈍感なものにする。
【０００８】
そのようなメモリ・デバイスのユーザには、デバイスのヘルスが悪化して故障確率が高くなるときに早期警告表示を与えることが望ましいであろう。
【０００９】
メモリ・デバイス上に属して、データを訂正しようとの試みの前にメモリ・デバイス上で指標的長命パラメータの実際の劣化を検出して報告する方法に従って作動するシステムを持つことは、さらに望ましいであろう。そのようなシステムは、現代のマルチレベル・フラッシュメモリ・デバイスに対しては有意義で重要であろう。なぜなら、マルチレベル・フラッシュメモリ・デバイスは、伝統的なシングルレベル・フラッシュメモリ・デバイスよりも固有寿命が短いが、ルーチン作動を遅くすることなく老化の徴候を測定できるためである。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、一般的にデジタル・メモリ・デバイス、そして特に取り外し可能なフラッシュメモリ・デバイスにおける信頼性の劣化のビルトイン検出のための方法を提供することである。本発明は、典型的な例としてフラッシュメモリ・デバイスを説明するが、他のメモリ・デバイスにも適用できる、また他のメモリ・デバイスをもカバーすることを意図している。
【課題を解決するための手段】
【００１１】
明確にする目的で、以下のいくつかの用語を、特に本出願の内容に対して定義する。本出願内で用いる用語「耐用寿命パラメータ」は、メモリ・デバイスの耐用期間中に値が変化するメモリ・デバイスの変数に言及し、メモリ・デバイスの少なくとも一つのセルの相対的に劣化したヘルスを表し、そしてデバイスの寿命と相互に関連する。そのようなパラメータは、例えば、平均エラー数、プログラミング・サイクル数、そしてビットがメモリへ書き込まれるときに（プログラミング・オペレーションの第一のプログラミング・パルスで）論理状態を反転させたビット数を含む。
【００１２】
本発明は、シングルレベル・セル（ＳＬＣ）フラッシュメモリおよびマルチレベル・セル（ＭＬＣ）フラッシュメモリの両方に適用できる。以降の考察は主にＳＬＣセルに集中するが、本発明がどのようにＭＬＣセルに適用できるのかは、同業者には明らかである。本文で用いる用語「消去」および「書き込み」は、メモリ・セルのスレショルド電圧を設定することに言及する。ＳＬＣセルに対して消去は、典型的に、１ロジック状態に対応する電圧を設定し、書き込みは、典型的に、０ロジック状態に対応する電圧を設定する。本文では、用語「書き込み」および「プログラミング」を置換可能に用いている。本発明は、特に、一度に１ページを読み取る、そしてプログラムするＮＡＮＤタイプ・フラッシュメモリに適用可能である。
【００１３】
本出願内で用いる用語「ブロック」は、単一オペレーションで消去が可能な、メモリ内の最小セル数に言及する。本出願内で用いる用語「ページ」は、単一オペレーションで書き込みが可能な、メモリ内の最小セル数に言及する。典型的に、１ブロック内には、複数のページが存在する。本出願内で用いる用語「グレード」は、ページまたはブロックの耐用寿命パラメータの値に基づく、メモリ・ページまたはブロックの信頼性の測度に言及する。注意すべきは、消去オペレーションが、典型的に（１ページに対してではなく）１ブロックに対して実行されることである。したがって、消去オペレーションに関わるグレードは、ブロックの耐用寿命パラメータに基づくブロックの信頼性の測度に言及する。
【００１４】
本出願内で用いる用語「初期ヘルス」は、ページまたはブロックの、基準値からのグレードの偏差を表す耐用寿命パラメータに言及する。ブロックは、「耐用期間」の開始時における初期ヘルスが各々異なる。本出願内で用いる用語「相対的に劣化したヘルス」は、ブロックが製造されてテストされた初期ヘルスからの、ブロックまたはページのヘルスの劣化に言及する。ブロックのヘルスは、異なる進度で劣化する。本出願内で用いる用語「健常なセル」は、データ・オペレーションに関連した一連のプログラミング・パルスの後で論理状態が良好に変化しているセルに言及する。
【００１５】
さらに、本出願内で用いる用語「メモリ・デバイス」は、エラーが生じ得る物理プロセスを介してデータを記憶する不揮発性メモリに言及する。そのようなメモリ・デバイスは、半導体、磁気、ホログラフィック、光学、そして他の物理２値論理記憶技術に基づく、ポータブル・デバイスおよび固定デバイスを含む。
【００１６】
図１は、ＳＬＣ・ＮＡＮＤタイプ・フラッシュメモリ・デバイスの、典型的な書き込みオペレーションのためのオペレーション・プロシージャを表すフローチャートである。フラッシュメモリ・デバイスのメモリのコントローラが、メモリに、特定な情報をページへ書き込むよう指示すると、メモリは一連のオペレーションを実行する。まず、メモリ・バッファへデータを書き込む（ブロック１０）。それから、書き込みオペレーション・データの宛先（すなわち、メモリの物理ロケーション、または「ワード・ライン」）を選択する（ブロック１２）。プログラミング・ステップは、複数の短いプログラミング・パルスへ分割する。プログラムすべきすべてのビットをプログラムするために、第一のパルスを適用する（ブロック１４）。各プログラミング・サイクルの後、プログラムされたビットをチェックし、ビットがスレショルド・レベル（このレベルは、標準読み取りスレショルド・レベルよりも高い）を満たしていることを検証する（ブロック１６）。すべてのビットが正しい値になっていないならば（ブロック１８）、追加のプログラミング・サイクルを実行する（ブロック２０）。オプションとして、追加のサイクルを、より高い電圧で実行してもよい（ブロック２０）。すべてのビットがバッファ値に整合する場合、プログラム・サイクル（すなわち、書き込みオペレーション）は終了する（ブロック２２）。
【００１７】
通常、プログラミング・サイクルは、書き込みオペレーションの終了まで、徐々に電圧レベルを増加させて実行する。しかし、あるタイプのＮＡＮＤタイプ・フラッシュメモリ・デバイスでは、第一のパルスと第二のパルスとの間の差異は、以降のパルスよりも非常に大きい。そのようなケースでは、２、３の、初期の大きな増分の後、小さなステップで電圧を増加させるためのオプションを利用する。
【００１８】
フラッシュメモリへデータを選択的に書き込む（すなわち、プログラミングする）プロセスは、典型的にＳＬＣ実施例では、１ロジックから０ロジックへ選択メモリ・セルの論理状態を変化させることを必要とする。フラッシュメモリからデータを選択的に消去するプロセスは、典型的に０ロジックから１ロジックへ選択メモリ・セルの値を変化させることを必要とする。しかしながら、この選定は任意であり、逆に指定しても、等しく実行可能である。
【００１９】
ＮＡＮＤタイプ・フラッシュメモリは、データがフラッシュメモリ・セル内へプログラムされる前にデータを受信する一つ以上のページ・バッファ（すなわち、読み取りあるいは書き込み能力を持つメモリ・セル）を持つ。各フラッシュメモリ・セルが１ビットの情報を含み、且つ消去済みフラッシュメモリ・セルが１ロジックを持つフラッシュメモリに対してページをプログラムする方法は、以下のステップを実行する。
【００２０】
（１）ページ・バッファの対応するセル内に０ロジックを持つフラッシュメモリ・セルに対してのみプログラミング電圧パルスを適用する。プログラミング電圧パルスは、セルを所望のスレショルド電圧へ設定する単一の試みである。典型的に、要求電圧レベルを達成するためには、多くのそのようなパルスが必要である。
（２）メモリ内へプログラムされたデータを読み取る。
（３）読み取ったときに０ロジックを返すすべてのフラッシュメモリ・セルに対して、ページ・バッファの対応するセルを１ロジックへ設定する。
（４）ページ・バッファのすべてのセルが１ロジックを含むまで、あるいはパルス数が許容最大数を超過するまで、ステップ１から３を繰り返す。そして
（５）パルス数が許容最大数を超過したならば、ページ・プログラミング・オペレーションに対して、失敗ステータスを返す。
【００２１】
本発明は、フラッシュメモリ・デバイスのメモリ・コントローラが、フラッシュメモリ・デバイス内の劣化の徴候を検出して、フラッシュメモリ・デバイスの寿命に関する信頼可能な予測を提供することが可能な、いくつかの好適実施例を含む。グレードから推測する耐用寿命パラメータは、フラッシュメモリ・デバイスの寿命の「予想」として機能する。劣悪な耐用寿命パラメータを持つデバイスは、良好な耐用寿命パラメータを持つデバイスよりも、比較的に短い寿命を示す。
【００２２】
好適実施例においては、システムは、フラッシュメモリからデータを読み取る際のエラー確率をモニターする。通常、この統計は、フラッシュメモリ・コントローラのＥＣＣに利用可能であり、フラッシュメモリそれ自体への直接的なアクセスを必要としない。いくつかのフラッシュメモリ・デバイスでは、フラッシュメモリ内にＥＣＣが最初から組み込まれている。そのようなデバイスにおいては、エラー数に関する情報が、コマンドによってメモリ・コントローラへ利用可能である。
【００２３】
もう一つの好適実施例においては、システムは、プログラミング中、データ・ビットの状態を変化させるのに必要な、平均あるいは最大パルス数をモニターする。フラッシュメモリ・デバイスでは、この数は、典型的に、（フラッシュメモリのタイプに応じて）４から２５プログラミング・パルスになる。フラッシュメモリが劣化するにつれ、フラッシュメモリへデータを書き込むのに必要なパルス数は増加する。
【００２４】
もう一つの好適実施例においては、システムは、任意数のパルスの後の、データ・ビットの論理状態の正常な変化の数をモニターする。フラッシュメモリの劣化とともに、より多くのビットが、書き込みのために複数のパルスを必要とするようになるため、例えば、第一のパルス後に正しくプログラムされているビット数は減少する。
【００２５】
したがって、本発明によれば、メモリ・デバイスを管理するための、以下のことを含む方法が初めて提供される。（ａ）メモリ・デバイス上でのデータ・オペレーションの後、メモリ・デバイスの耐用寿命パラメータの値をモニターすること。このモニタリングは、メモリ・デバイスが実行する。そして（ｂ）その値から、メモリ・デバイスのグレードを推測すること。
【００２６】
耐用寿命パラメータは、処理の失敗したデータへの、処理の成功したデータの比率であることが好ましい。
【００２７】
択一的に、耐用寿命パラメータは、メモリ・デバイスの電力消費における偏差である。偏差は、複数のオペレーションに対する測定値の平均であることが最も好ましい。
【００２８】
グレードは、メモリの寿命の予想として機能することが好ましい。
【００２９】
オペレーションはプログラミング・オペレーションであり、値は、メモリ・デバイスのページ内の少なくとも一つのセルの論理状態を変化させるのに必要な、オペレーションに関わるプログラミング・パルスの数であることが好ましい。
【００３０】
オペレーションは消去オペレーションであり、値は、メモリ・デバイスのブロック内の少なくとも一つのセルの論理状態を変化させるのに必要な、オペレーションに関わるプログラミング・パルスの数であることが好ましい。
【００３１】
オペレーションはプログラミング・オペレーションであり、値は、メモリ・デバイスのページ内の健常なセルの数であることが好ましい。
【００３２】
オペレーションは消去オペレーションであり、値は、メモリ・デバイスのブロック内の健常なセルの数であることが好ましい。
【００３３】
オペレーションは、データを書き込むこと、データを読み取ること、そしてデータを消去することからなるグループから選択されることが好ましい。
【００３４】
グレードは、所定基準値への現在値の比較グレード、モニタリング・デバイス内に記憶した複数の値の最大グレード、そしてモニタリング・デバイス内に記憶した複数の値の平均グレードからなるグループから選択されることが好ましい。
【００３５】
グレードが所定基準値への現在値の比較である場合、方法は、さらに（ｃ）メモリ・デバイスの製造時にメモリ・デバイス内に所定基準値を記憶するステップを含むことが最も好ましい。
【００３６】
モニタリング・ステップは、グレードを推測する目的でメモリ・デバイスにアクセスすることを含むことが好ましい。
【００３７】
方法は、さらに、（ｃ）モニタリング・デバイス内にグレードを記憶するステップを含むことが好ましい。
【００３８】
モニタリング・デバイスは、メモリ・デバイス、メモリ・デバイスの埋め込み型コントローラ、そしてメモリ・デバイスのホスト・システムからなるグループから選択されることが最も好ましい。
【００３９】
推測ステップは、メモリ・デバイスによって開始されることが好ましい。
【００４０】
推測ステップは、メモリ・デバイスのホスト・システムによって開始されることが好ましい。
【００４１】
推測ステップは、メモリ・デバイスの埋め込み型コントローラによって開始されることが好ましい。
【００４２】
推測ステップは、ホスト・システム上で作動しているアプリケーションによって開始されることが好ましい。
【００４３】
推測ステップは、ホスト・システム上で作動しているオペレーティングシステムによって開始されることが好ましい。
【００４４】
本発明によれば、データを管理するための、以下のものを含むメモリ・デバイスが初めて提供される。（ａ）メモリ。そして（ｂ）コントローラ。このコントローラは、（ｉ）メモリ上でのデータ・オペレーションの後、耐用寿命パラメータの値をモニターするよう、そして（ii）値から、メモリ・デバイスのグレードを推測するよう作動可能である。
【００４５】
グレードは、メモリ・デバイスの寿命の予想として機能することが好ましい。
【００４６】
本発明によれば、データを管理するための、以下のものを含むシステムが初めて提供される。（ａ）メモリを含むメモリ・デバイス。そして（ｂ）前記メモリ・デバイス内に収容されたプロセッサ。このプロセッサは、（ｉ）メモリ上でのデータ・オペレーションの後、耐用寿命パラメータの値をモニターするよう、そして（ii）その値から、メモリ・デバイスのグレードを推測するよう作動可能である。
【００４７】
グレードは、メモリ・デバイスの寿命の予想として機能することが好ましい。
【００４８】
これらの実施例および他の実施例を、以下で詳細に説明する。
【発明を実施するための最良の形態】
【００４９】
さて、本発明を、例証としての添付の図面を参照しながら説明する。
【００５０】
本発明は、デジタル・メモリ・デバイスの信頼性の劣化をビルトイン検出するための方法に関する。本発明による、デジタル・メモリ・デバイスの信頼性の劣化をビルトイン検出するための原理および作用は、図面およびそれらの説明を参照することで、よりよく理解することができる。
【００５１】
さて、図面を参照する。図２は、本発明の好適実施例による、メモリ・デバイスのデータ・ページ（またはブロック）のグレードの劣化を時間の関数として表す質的グラフである。上述のように、グレードは、オペレーションに応じて、ページまたはブロックに言及する。図２の曲線は、メモリ・デバイスのページまたはブロックの各グレードを表す。そのような曲線の一つ３０を考察する。曲線３０におけるページあるいはブロックの初期ヘルスは、線３２として示す参照グレード値からの、曲線３０における初期グレードの（ｔ＝０、すなわちメモリの製造あるいは試験時の）逸脱と定義する。任意の時間における、曲線３０に関わるページあるいはブロックのヘルスの相対的劣化は、曲線３０から線３２へのグレード差３４として示される。
【００５２】
図３Ａは、本発明の好適実施例による、メモリ・コントローラが検出して修正するエラー数をモニターするための方法のオペレーション・プロシージャを表すフローチャートである。情報は、ルーチン的にメモリ・デバイスから読み出される、あるいはアプリケーション・アクションによって、またはデバイスのコントローラ上で実行されている内部プログラム（例えば、内部テストまたは定期的な保守プロシージャ）によって情報へのアクセスが開始される（ブロック４０）。生の（すなわち、本来の記憶）データと記憶ＥＣＣ情報とを読み取る（ブロック４２）ことを含む、メモリ・デバイスからの情報の読み出しが行われている間に、データ内のエラーについて情報をチェックする（ブロック４４）。
【００５３】
エラー検出あるいは訂正が適用され、エラーが修復される。生データに整合しないビットを計算し（ブロック４４）、修復する（ブロック４６）。ページあたりの修復ビットの数は、コントローラに、現在読み取られているページの信頼性の測度を提供する。本実施例においては、ページあたりの修復ビット数は、埋め込み型コントローラ（すなわち、メモリ・デバイスに埋め込まれたコントローラ）内に残留し、訂正データのみがアプリケーションへ転送される（ブロック４８）。オプションとして、いくつかのＥＣＣアルゴリズムでは、修復データがコントローラによってメモリ（ブロック５０）へ再書き込みされる。さらにコントローラは、またオプションとして、グレードとして知られるページの信頼性の測度としてエラー・ビット数をメモリへ記憶する（ブロック５２）。
【００５４】
図４Ａは、従来の技術および本発明の両方による、典型的データ・ページのフォーマットを表す簡略概略図である。ページ７０は、関連データ、情報データ７４の隣に記憶したＥＣＣ情報、ＥＣＣ７２を典型的に持つ。ＥＣＣ７２は、通常、既知のエラー検出あるいは訂正方法（例えば、リード・サロモンまたはＢＣＨアルゴリズム）に基づく。そのような訂正アルゴリズムは、有限レベル（例えば、５１２バイトのページにつき最高四つのエラービット）でデータを修正できる。
【００５５】
図４Ｂは、本発明の好適実施例による、ページのグレードを含むデータ・ページのフォーマットを表す簡略概略図である。ページ７６は、ＥＣＣ７２および情報データ７４の隣に記憶したグレード７８を持つ。典型的レポート・グレード７８は、５１２バイト・ページにつき一つのエラー・ビットである。グレード７８が、危険なレベル（例えば、５１２バイトのページにつき四つのエラー・ビット）へ増加した、あるいはスレショルドを超過したとき、たとえ情報データ７４が訂正されたとしても、アプリケーションは、アクションを開始することによって、グレード７８からの情報に反応する。例えば、アプリケーションは、異なるページへ情報データ７４を再書き込みできる、あるいは劣化を報告できる。それによって、情報データ７４の長期信頼性を改善する。
【００５６】
択一的に、異なるタイプのグレード報告を採用することができる。図３Ｂは、本発明の好適実施例による、ホスト・システムへメモリ・デバイスのヘルスを報告するための方法のオペレーション・プロシージャを表すフローチャートである。本実施例においては、読み取りオペレーションに応答して、「ページ・エラー・グレード」がコントローラ内に記憶され、アプリケーションへ報告される（ブロック５４）。アプリケーションからの直接的な要求に応答して（ブロック５４）、メモリ全体で検出されたページ・グレードまたはダイナミックな（例えば、最悪な、あるいは平均的な）グレードが報告される。最悪のグレードを表すダイナミック・グレードのケースでは、データが読み取られる毎にもしエラー数が現在記憶されているグレードを超過するならば、このグレードは、ページに対して、あるいはメモリ・デバイス全体に対して検出された最大エラー数をグレードが示すように更新される。平均グレードを表すダイナミック・グレードのケースでは、このグレードは、データが読み取られる毎に更新される。グレード読み取りオペレーション（ブロック５４）は、以下のステップを含む。ホスト・システムは、特定なページ・グレードあるいはデバイス・グレードを要求する（ブロック５６）。それから、コントローラは、情報記憶ロケーション（例えばコントローラのメモリ、レジスタまたは埋め込み型メモリ）から情報を読み取る（ブロック５８）。
【００５７】
オプションとして、アクションが、記憶グレードに基づくグレードの計算（例えば、ページの個々のグレードに基づいてすべてのページの平均または最大値）を要求する場合は、コントローラは、この計算を実行する（ブロック６０）。それから、要求情報（すなわちグレード）がホスト・アプリケーションへ送信される（ブロック６２）。
【００５８】
図５は、本発明の好適実施例による、ページを書き込むために要求されるパルス数、そして任意数のパルスの後に反転したビット数をモニターするための方法のオペレーション・プロシージャを表すフローチャートである。本実施例においては、コントローラは、ページ劣化の測度として、すべてのビットを正しい値に設定するのに要求されるパルス数を用いる。図５で概説するプロシージャは、図１で概説したプロシージャに類似している。データがメモリ・バッファ内に記憶され（ブロック８０）、それから、書き込みオペレーションに対するメモリの物理ロケーションが選択される（ブロック８２）。すべてのビットをプログラムするために第一のパルスが適用される（ブロック８４）。各プログラミング・パルスの後、データが読み取られてバッファ内のターゲット・データに比較される（ブロック８６）。
【００５９】
好適実施例においては、第一のパルスによって、または以降のプログラミング・パルスによってうまく反転しないページ内のビットの数あるいはパーセンテージを記録する（ブロック８８）。この数は、メモリの老化またはヘルスの代替的な測度として用いる。もう一つの好適実施例では、ブロック８８のステップへ択一的に、または追加的に、もう一つのカウンタを用い、そのカウンタを各パルスの後に１だけ増加させる（ブロック９０）。カウンタは、プログラム・サイクル内のプログラム・パルス数を数える。そして、プログラミングを完了するのに要求されるパルス数を、メモリの老化またはヘルスの測度として用いる。
【００６０】
各プログラミング・サイクルの後、プログラムしたビットをチェックして、スレショルド・レベルが満たされているのかを検証する（このレベルは、標準読み取りスレショルド・レベルよりも高い）（ブロック９２）。すべてのビットが正しい値にあるわけではない（ブロック９２）場合、追加のプログラミング・サイクルを実行する（ブロック９４）。オプションとして、この追加のサイクルは、より高い電圧で実行してもよい（ブロック９４）。すべてのビットがバッファ値に整合する場合は、プログラム・サイクル（すなわち、書き込みオペレーション）を終了する（ブロック９６）。
【００６１】
本発明による好適実施例においては、報告されるグレードが、（「ページ・グレード」とは対照的な）「ブロック・グレード」であり、ページ・グレードに関して読み取りおよび書き込みオペレーションから収集した情報は、ページを含む特定なブロックに対するブロック・グレードへ情報を寄与させるのみのために用いる。その結果、ヘルスは、「ブロック分解能」のみで報告される。
【００６２】
本発明による好適実施例においては、報告グレードは、デバイスの電力消費（例えば、基準電力消費または初期電力消費から）の偏差を表す。そのようなグレードは、データ・オペレーションを実行する際のデバイスの効率を示す。例えば、オペレーションを実行するために複数のプログラミング・パルスを必要とするデバイスは、少ないパルスでオペレーションを実行できるデバイスよりも大きな電力を消費する。
【００６３】
本発明による好適実施例においては、任意の期間にアクセスがなかったページは、ページのヘルスが長期間測定されていないので、ページの老化を査定できるよう自動的にバックグランドで読み込む。
【００６４】
本発明のもう一つの好適実施例においては、ブロックあるいはページの（製造時本来のメモリ内に記憶した）製造後の本来のヘルスに、測定ヘルスを比較することによって、デバイスの老化を評価する。この方法は、メモリのいくつかの領域が、他の領域よりも良好なヘルスを持つという、製造上の特徴であるデバイスに固有な非均一性に対して補正する。
【００６５】
図６Ａは、本発明の好適実施例による、ホスト・システムに接続したフラッシュメモリ・デバイスを表す高度なブロック図である。図６は、図１に示すバン氏の米国特許第５，４０４，４８５号を適応させたものである。（以下、バン’４８５と呼ぶ）この特許は、すべての目的のために、参照により本文に完全に記述したものとする。フラッシュメモリ・デバイス１００は、フラッシュメモリ１０２、コントローラ１０４、そしてランダムアクセスメモリ（ＲＡＭ）１０６を含む。バン’４８５の「フラッシュコントロール１４」に対応するコントローラ１０４、バン’４８５に説明があるように、そしてまたバン氏の米国特許第５，９３７，４２５号に説明があるように、ＲＡＭ１０６の助けを借りてフラッシュメモリ１０２を管理する。この後者の特許は、以下にバン’４２５と呼ぶが、これも、すべての目的において、参照により本文に完全に記述したものとする。コントローラ１０４は、また、フラッシュメモリ１０２内に記憶したデータの再生をサポートする。フラッシュメモリ・デバイス１００は、ホスト・システム１０８へ接続された状態で図示している。
【００６６】
図６Ｂは、本発明の好適実施例による、ホスト・システムへ接続した代替的なフラッシュメモリ・デバイスを表す高度なブロック図である。ホスト・システム１１０は、プロセッサ１１２および四つのメモリ・デバイス、ＲＡＭ１１４、ブートＲＯＭ１１６、大容量記憶デバイス（例えばハードディスク）１１８、そしてフラッシュメモリ・デバイス１２０を含み、これらすべてが共通バス１２２を介して通信する。フラッシュメモリ・デバイス１００のように、フラッシュメモリ・デバイス１２０は、フラッシュメモリ１０２を含む。フラッシュメモリ・デバイス１００と違って、フラッシュメモリ・デバイス１２０は、コントローラおよびＲＡＭが欠如している。その代わり、プロセッサ１１２が、（例えば、イスラエル、クファル・サバに在るＭシステムズ社のＴｒｕｅＦＦＳ（登録商標）ドライバの方式で）バン’４８５およびバン’４２５の方法を実行する、そしてまた本発明のグレード・モニタリング方法を実行するソフトウェア・ドライバ（図示せず）を実行することによって、コントローラ１０４をエミュレートする。フラッシュメモリ・デバイス１２０は、また、プロセッサ１１２がフラッシュメモリ１０２と通信できるよう、バス・インターフェイス１２４を含む。
【００６７】
本発明を限られた数の実施例に関して説明したが、本発明の多くの変形、修正、そして他の応用が可能であることは明らかである。
【図面の簡単な説明】
【００６８】
【図１】フラッシュメモリ・デバイスの典型的な書き込みオペレーションのためのオペレーション・プロシージャのフローチャートである。
【図２】本発明の好適実施例によるメモリ・デバイスのデータ・ページ（またはブロック）のグレードの劣化を、時間の機能として表す質的グラフである。
【図３Ａ】本発明の好適実施例による、メモリ・コントローラによって発見されて修正されたエラー数をモニターするための方法のオペレーション・プロシージャを表すフローチャートである。
【図３Ｂ】本発明の好適実施例による、メモリ・デバイスのヘルスをホスト・システムへ報告するための方法のオペレーション・プロシージャを表すフローチャートである。
【図４Ａ】従来の技術および本発明の両方による、典型的データ・ページのフォーマットを表す簡略概略図である。
【図４Ｂ】本発明の好適実施例による、ページのグレードを含むデータ・ページのフォーマットを表す簡略概略図である。
【図５】本発明の好適実施例による、ページの書き込みに要求されるパルス数、そして任意数のパルスの後に反転したビット数をモニターするための方法のオペレーション・プロシージャを表すフローチャートである。
【図６Ａ】本発明の好適実施例による、ホスト・システムに接続したフラッシュメモリ・デバイスを表す高度なブロック図である、
【図６Ｂ】本発明の好適実施例による、ホスト・システムに接続した代替的なフラッシュメモリ・デバイスを表す高度なブロック図である。
【図１】
2009526340.tif 000003
【図２】
2009526340.tif 000004
【図３Ａ】
2009526340.tif 000005
【図３Ｂ】
2009526340.tif 000006
【図４Ａ】
2009526340.tif 000007
【図４Ｂ】
2009526340.tif 000008
【図５】
2009526340.tif 000009
【図６Ａ】
2009526340.tif 000010
【図６Ｂ】
2009526340.tif 000011