(57)【要約】  本明細書に記載される実施形態は、概して、フラッシュメモリのプログラムおよび消去に関する。一実施形態において、フラッシュメモリのブロックの内容をプログラムおよび消去する方法は、ブロックの古さに基づいてパルスの電圧を決定することと、ブロックの少なくとも一部分にパルスを出力することとを含む。パルスは、ブロックをプログラムまたは消去するのに使用される。【選択図】  図３
2015512552.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリのブロックの内容をプログラムまたは消去する方法であって、
前記ブロックの古さに基づき、前記ブロックをプログラムまたは消去するのに使用されるパルスの電圧を決定することと、
前記ブロックの少なくとも一部分に前記パルスを出力することと、を含む、
方法。
【請求項２】
前記ブロックの前記古さを決定することをさらに含む、請求項１に記載の方法。
【請求項３】
前記ブロックの前記古さを決定することは、試験パルスを前記ブロックに出力することを含む請求項２に記載の方法
【請求項４】
前記ブロックの前記古さを決定することは、さらに、前記ブロックのセルの閾値電圧を複数の所定電圧と比較することを含む、請求項３に記載の方法。
【請求項５】
前記ブロックの前記古さを決定することは、さらに、前記複数の所定電圧のうちのいずれが、前記ブロックの前記セルの全ての閾値電圧以下であるかを決定することを含む、請求項４に記載の方法。
【請求項６】
前記ブロックの前記古さを決定することは、さらに、所定の閾値電圧よりも大きい閾値電圧を有する前記ブロックのセルの数を含むカウント数を決定することを含む、請求項３に記載の方法。
【請求項７】
前記ブロックの前記古さを決定することは、指定された複数のセルの内容にアクセスすることを含む、請求項２に記載の方法。
【請求項８】
前記指定された複数のセルは、前記ブロック、前記不揮発性メモリの第２ブロック、または前記不揮発性メモリを含む複数のブロック以外に配置された複数のセルのうちの少なくとも１つに含まれる、請求項７に記載の方法。
【請求項９】
前記指定された複数のセルは、前記ブロックが経たプログラムおよび／または消去サイクルの数を記憶する、請求項７に記載の方法。
【請求項１０】
前記指定された複数のセルは、前記ブロックの前回のプログラムまたは消去サイクル中に前記ブロックの少なくとも一部分を消去またはプログラムするのに要した時間、前記ブロックの前回のプログラムまたは消去サイクル中に前記ブロックの少なくとも一部分を消去またはプログラムするのに要した全パルスカウント数、前記ブロックの前回のプログラムまたは消去サイクル中に出力された第１のプログラムまたは消去パルスの電圧、前記ブロックの前回のプログラムまたは消去サイクル中に出力された最後のプログラムまた消去パルスの電圧、あるいは、前記ブロックの前回のプログラムまたは消去サイクル中に出力された任意のプログラムまたは消去パルスの電圧、のうちの少なくとも１つを記憶する、請求項７に記載の方法。
【請求項１１】
前記指定された複数のセルは、前回のプログラムおよび／または消去サイクル中に出力された最後のプログラムまたは消去パルスの電圧を記憶する、請求項７に記載の方法。
【請求項１２】
前記出力することは、前記決定された電圧を有する前記パルスを生成するように電圧発生器を制御することを含む、請求項１に記載の方法。
【請求項１３】
前記出力することは、前記パルスを含む複数のパルスを出力することを含む、請求項１に記載の方法。
【請求項１４】
フラッシュメモリのブロックの内容をプログラムまたは消去するように動作可能なモジュールを備えるシステムであって、
プロセッサと、
前記プロセッサと通信するメモリと、を備え、
前記メモリは、前記プロセッサが、
前記ブロックの古さに基づき、前記ブロックをプログラムまたは消去するのに使用されるパルスの電圧を決定し、かつ、
前記ブロックの少なくとも一部分に前記パルスを出力するように指示するための複数の処理命令を記憶する、
システム。
【請求項１５】
前記モジュールはマイクロコントローラを備え、前記マイクロコントローラが前記プロセッサおよび前記メモリを含む、請求項１４に記載のシステム。
【請求項１６】
前記メモリは指定された複数のセルを備える、請求項１４に記載のシステム。
【請求項１７】
前記プロセッサは、前記ブロックの前記古さを決定するように動作可能である、請求項１４に記載のシステム。
【請求項１８】
前記プロセッサは、さらに、前記ブロックの少なくとも一部分またはその一部分に試験パルスを出力するように動作可能である、請求項１７に記載のシステム。
【請求項１９】
前記プロセッサは、さらに、前記ブロックのセルの閾値電圧を、複数の所定電圧と比較するように動作可能である、請求項１７に記載のシステム。
【請求項２０】
不揮発性メモリのブロックの内容をプログラムまたは消去する方法を実行するために１つ以上のプロセッサによって実行される１つ以上のシーケンスの１つ以上の命令を記憶したコンピュータ可読媒体であって、前記方法は、
前記ブロックの古さに基づき、前記ブロックをプログラムまたは消去するのに使用されるパルスの電圧を決定することと、
前記ブロックの少なくとも一部分に前記パルスを出力することと、を含む、
コンピュータ可読媒体。
【請求項２１】
前記方法は、前記ブロックの前記古さを決定することをさらに含む、請求項２０に記載のコンピュータ可読媒体。
【請求項２２】
前記方法は、試験パルスを前記ブロックの少なくとも一部分に出力することを含む、請求項２１に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本明細書に記載される実施形態は、概して、フラッシュメモリなどの不揮発性メモリに関する。
【背景技術】
【０００２】
[0002]  フラッシュメモリは、電力を使用せずに記憶された情報を維持するため、「不揮発性」であるとみなされる。そのようなものとして、フラッシュメモリは、例えばリムーバブル記憶装置およびモバイルコンピュータデバイスを含む多くのタイプの装置向けに、普及が進んできた。消去不可能（ＯＴＰ；One Time Programmable）な他の不揮発性メモリと異なり、フラッシュメモリは、メモリコントローラによって上書きすることができる。典型的に、データは、フラッシュメモリの内容を消去した後、フラッシュメモリの一部分（例えば、フラッシュメモリのブロック）が全体として記憶されるべきデータを表すように特定のセルに書き込むことによって、フラッシュメモリ内に記憶される。実用において、フラッシュメモリの内容を消去するには、フラッシュメモリに電圧が印加される。フラッシュメモリブロックを消去し、ブロック内の選択的なセルにプログラムするプロセスは、「プログラム／消去サイクル」または「Ｐ／Ｅサイクル」と呼ばれる。
【０００３】
[0003]  フラッシュメモリの理想的な特性の一部は、このフラッシュメモリが多くのＰ／Ｅサイクルを経るほど劣化する傾向にある。例えば、フラッシュメモリは、電力がなければ無限に長い時間にわたってその内容を記憶することができないことがある。さらに、フラッシュメモリのプログラム特性および消去特性もまた劣化し得る。具体的に、フラッシュメモリは、メモリの内容を消去するために、より高い電圧が必要になり得る。
【発明の概要】
【０００４】
[0004]  本明細書に記載される実施形態は、フラッシュメモリブロックを適応的にプログラムまたは消去するための方法、システム、およびコンピュータ可読媒体を含む。一実施形態において、フラッシュメモリのブロックの内容をプログラムまたは消去する方法が提供される。この方法は、フラッシュメモリのブロックの古さに基づいてパルスの電圧を決定することと、ブロックの少なくとも一部分にパルスを出力することと、を含む。パルスは、ブロックをプログラムまたは消去するのに使用される。
【０００５】
[0005]  別の実施形態では、フラッシュメモリのブロックの内容をプログラムまたは消去するためのシステムが提供される。このシステムは、プロセッサと、このプロセッサと通信するメモリと、を備える。メモリは、プロセッサが、ブロックの古さに基づいてパルスの電圧を決定し、かつ、ブロックの少なくとも一部分にパルスを出力するように指示するための複数の処理命令を記憶する。パルスは、ブロックをプログラムまたは消去するのに使用される。
【０００６】
[0006]  さらに別の実施形態では、コンピュータ可読媒体が提供される。このコンピュータ可読媒体は、フラッシュメモリのブロックの内容をプログラムまたは消去する方法を実行するために、１つ以上のプロセッサによって実行される１つ以上のシーケンスの１つ以上の命令を保持する。命令は、１つ以上のプロセッサにより実行されると、この１つ以上のプロセッサに、ブロックの古さに基づいてパルスの電圧を決定させ、かつ、ブロックの少なくとも一部分にパルスを出力させる。パルスは、ブロックをプログラムまたは消去するのに使用される。
【０００７】
[0007]  これらおよび他の効果および特徴は、以下に記載する本発明の詳細な説明を考慮してより容易に明らかになるであろう。なお、発明の概要および要旨の欄は、発明者によって意図される本発明の１つ以上の全てではなない例示的な実施形態を記載し得る。
【図面の簡単な説明】
【０００８】
[0008]  本明細書に組み込まれ、かつ本明細書の一部を形成する添付の図面は、本発明を例示し、以下の説明と共に、本発明の原理をさらに説明し、かつ関連技術の当業者が本発明を成し、使うことができるようにするものである。
【０００９】
【図１】[0009]  図１は、フラッシュメモリブロックを消去するための静的なパルス列を示す。
【図２】[0010]  図２は、本発明の一実施形態に係るフラッシュメモリシステムのブロック図である。
【図３】[0011]  図３は、本発明の一実施形態に係る、フラッシュメモリのブロックを適応的にプログラムまたは消去するためのステップの例を提供するフローチャートである。
【図４】[0012]  図４は、本発明の一実施形態に係るパルス列を示すプロットの例である。
【図５】[0013]  図５は、本発明の一実施形態に係る静的および適応的な技術の作用を示すプロットである。
【図６】[0013]  図６は、本発明の一実施形態に係る静的および適応的な技術の作用を示すプロットである。
【００１０】
[0014]  本発明のいくつかの実施形態を添付の図面を参照して以下に説明する。図面において、同様の参照番号は同一の要素または機能的に類似の要素を示す。さらに、参照番号の左端の数字は、その参照番号が初めて登場する図面を示す。
【発明を実施するための形態】
【００１１】
[0015]  発明の概要欄および要旨欄ではなく、「発明を実施するための形態」欄が、請求の範囲を解釈するのに使用されることが意図されていることを理解されたい。発明の概要欄および要旨欄は、発明者によって意図される本発明の１つ以上の全てではない例示的な実施形態について記載し得るため、本発明および添付の請求の範囲をいかようにも限定することを意図していない。
【００１２】
[0016]  フラッシュメモリは、典型的に、フローティングポリシリコンゲートまたは電荷トラップ層であり得る（これらに限定されない）「記憶ノード」内に電荷が蓄えられる不揮発性メモリである。セルをプログラムするためには、比較的高い電圧が（メモリのワードラインを介して）トランジスタのコントロールゲートに印加され、これにより、電荷が記憶ノード内に蓄積される。セルは、比較的中間の電圧を（メモリのワードラインを介して）コントロールゲートに印加し、セルが電流を伝導しているか否かを決定することにより、読み取られる。一実施形態において、記憶ノードは、コントロールゲートと酸化物層との間に介挿される。したがって、記憶ノード上に蓄積された電荷は、効果的にセルの閾値電圧を増加する。理想的には、セルがプログラムされた後、セルの閾値電圧は、読取動作中に印加された中間電圧よりも高くなることにより、読取動作中に測定可能な２つの異なる状態（つまり、伝導状態と非伝導状態）を作り出す。
【００１３】
[0017]  フラッシュメモリのセルは、典型的には、プログラミング電圧とは逆の極性を有する比較的高い電圧をセルのコントロールゲートに印加することにより消去される。消去動作は、フラッシュメモリセルのウェルに高電圧を印加することによっても遂行され得る。そうすることで、記憶ノード上に存在する電荷は除去され、セルは、読取動作中に中間電圧が印加されると電流を伝導する。したがって、プログラム状態では、セルは０（非伝導）の論理値を有し、消去状態では、セルは１（伝導）の論理値を有する。
【００１４】
[0018]  フラッシュメモリは、通常、多数のサイズが固定されたメモリブロックから構成される。例えば、各ブロックは、１メガビット（Ｍｂｉｔ）のサイズを有するが、これに限定されない。本明細書では、他のブロックサイズも可能であり、かつ想定されている。論理０は、ブロックの選択的なビットまたは「ランダム」なビットにプログラムされ得る。しかし、論理１は、ブロック全体を消去することによってのみ、ブロックへ書き込むことができる。したがって、データをフラッシュメモリブロックに書き込む際、たいていの場合は、二つの動作が完了されなくてはならない。まず、（例えば、ブロックの各セルに論理１を書き込むことにより）ブロックが消去される。次に、ブロックの特定のセルに論理０を書き込むことにより、このブロックを特定の状態へとプログラムする。この消去動作とプログラム動作の対は、「Ｐ／Ｅサイクル」と呼ばれる。万一、書込みコマンドが論理１から論理０への移行のみを必要としている場合には、この書込みコマンドは、代わりに、プログラム動作のみとして実現され得る。
【００１５】
[0019]  フラッシュメモリブロックは、無限に繰り返すことができるのが理想的である。つまり、フラッシュメモリブロックは、同一の電圧レベルを使用して、無限回数プログラムおよび消去することができるとよい。しかし、実際は、フラッシュメモリブロックの性能は劣化する。例えば、ブロックが多くのＰ／Ｅサイクルに曝されるほど、ブロックを構成するセルは電荷を捕捉する傾向がある。これらの捕捉された電荷により、セルの消去には、より高い電圧レベルの電圧を要するようになる。
【００１６】
[0020]  フラッシュメモリのブロックを消去するために、通常、メモリコントローラによって電圧パルス列がブロックに出力される。図１は、フラッシュメモリブロックを消去するのに使用される静的なパルス列の一例を示すプロット１００を示している。図１に示すように、パルス列は、Ｖ１の電圧を有するパルス、Ｖ２の電圧を有するパルス、およびＶ３の電圧を有するパルスの３組のパルスを含む。列内の各パルス後、メモリコントローラは、ブロック内のセルの全てが消去されたかどうかを決定する。例えば、メモリコントローラは、セルの閾値電圧を所定の電圧と比較して、ブロックが消去されたか否かを決定することができる。ブロックが消去されたことが確認されると、このブロックに追加のパルスは出力されない。ブロックの消去が確認されない場合、列内の次のパルスがブロックに出力される。
【００１７】
[0021]  したがって、図１の例に示すように、電圧Ｖ１を有する３つのパルスで成功しない場合は、パルスの電圧がＶ２まで増加される。これらの３つのパルスが成功しない場合は、電圧はＶ３まで増加される。各電圧レベルの値と各電圧レベルのパルス数は、静的である。つまり、従来は、電圧レベルと各電圧のパルス数の両方があらかじめ決められ、変化しない。
【００１８】
[0022]  図１に示した静的なアプローチでは、通常、ブロックは最終的には消去されるが、初期のパルスのいくつかは「無駄になる」。すなわち、パルス列の初期のパルスのいくつかは、フラッシュメモリブロックのセルの状態に大きな影響を及ぼさないことがある。例えば、図１を参照すると、ブロックの大半のセルが、消去に電圧Ｖ３のパルスを要するほどに十分な電荷を補足している場合、電圧Ｖ１およびＶ２のパルスはブロックのセルの状態に対して大きな影響を及ぼさない可能性があり。これらの無駄になったパルスは、ブロックを消去するのに要する時間を増大させ得る。ブロックが古くなるほど、つまり、ブロックが経るＰ／Ｅサイクルが多くなるほど、適正な電圧を有するパルスがブロックに出力されるまでに多くのパルスを要するようになる。したがって、無駄になるパルスの数は増加し、その結果、消去動作が基本的な性能要件（例えば、５ミリ秒または他の規定された時間での消去など）を満たせなくなることもあり得る。
【００１９】
[0023]  本明細書に記載される実施形態では、フラッシュメモリブロックをプログラムまたは消去するための適応的な技術が提供される。例えば、一実施形態において、ブロックの「古さ」を決定することができ、この古さを使用してパルス列の第１パルスの電圧を決定および設定することができる。実施形態において、フラッシュメモリブロックの「古さ」は、ブロックが劣化した程度を表す。古さは、ブロックの使用状態の基準でもある。フラッシュメモリブロックの古さは、このブロックが経たＰ／Ｅサイクル数の関数であることが多い。したがって、古さは、しばしばＰ／Ｅサイクルとして定量化される。しかし、以下で述べるように、他の基準を使用してフラッシュメモリブロックの古さを定量化することもできる。プログラムまたは消去される個々のフラッシュメモリブロックにパルス列を適応させることにより、本明細書に記載される技術は、フラッシュメモリブロックをプログラムまたは消去するのに要する時間を大幅に短縮することができる。
【００２０】
[0024]  図２は、本発明の一実施形態に係るフラッシュメモリシステム２００のブロック図を示す。システム２００は、メモリコントローラ２１０およびフラッシュメモリ２２０を備える。メモリコントローラ２１０は、プロセッサ２１２と、リードオンリメモリ（ＲＯＭ）２１４と、電圧発生器２１６とを備える。一実施形態において、メモリコントローラ２１０は、プロセッサ２１２、ＲＯＭ２１４、および電圧発生器２１６備えたマイクロコントローラとして実現され得る。
【００２１】
[0025]  図２の例において、フラッシュメモリ２２０は、８つのブロック２２２ａ〜２２２ｈ（一括して「ブロック２２２」と呼ぶ）を含むが、当業者には当然のことながら、フラッシュメモリ２２０は、任意サイズのブロックを任意数含むことができる。各ブロックは、情報の個々のビットを記憶するセルを含む。例えば、これらのセルは、フローティングゲートＭＯＳトランジスタとして実現され得るが、これに限られない。図２に示される実施形態において、ＲＯＭ２１４は、参照テーブル２１８を記憶し得る。それに加えて、またはその代わりに、ブロック２２２のあるブロックが参照テーブル２１８を記憶してもよい。さらに、当業者には認識されるように、図２はメモリコントローラ２１０に含まれた電圧発生器２１６を示すが、電圧発生器２１６はメモリコントローラ２１０とは別に実現されてもよい。システム２００の動作は、フローチャート３００を参照して、以下にさらに詳細に説明される。
【００２２】
[0026]  フラッシュメモリシステム２００は、不揮発性メモリを必要とする周知のまたは将来的に開発されるあらゆるシステム、サブシステム、デバイスまたはモジュール（コンピュータ、スマートフォン、電化製品、消費者製品、組込みシステム、モバイル機器、通信システム／デバイスなどを含むが、これらに限定されない）、ならびに任意の他のデータ処理モジュール、ならびに該データ処理モジュールを備えたシステムに含まれ得る。本発明の実施形態はこれらに向けたものであることを理解されたい。
【００２３】
[0027]  図３は、本発明の一実施形態に係る、不揮発性（例えば、フラッシュ）メモリのブロックを適応的にプログラムまたは消去するためのステップの例を提供するフローチャート３００を示す。当業者には、以下の説明に基づき、他の構造上および動作上の実施形態も明らかになるであろう。図３に示されるステップは、必ずしも図示の順序で起こらなくてもよい。図３のステップを、以下に詳細に説明する。
【００２４】
[0028]  ステップＳ３０２において、ブロックの古さが決定される。例えば、図２において、メモリコントローラ２１０は、フラッシュメモリ２２０のブロック２２２ａの古さを決定することができる。一実施形態では、メモリコントローラ２１０は、試験パルスをブロック２２２ａに出力し、ブロック２２２ａでその結果を測定することによって、ブロック２２２ａの古さを決定することができる。ブロック２２２ａで結果を測定する例として、ブロック２２２ａが試験パルスを受信した後に、ブロック２２２ａのセル閾値電圧を分析することが挙げられる。以下では、ブロック２２２ａのセルの閾値電圧を分析する２つの異なる実施形態例が提供される。第１実施形態では、複数の異なる所定電圧は、これらの所定電圧のうちの１つ以上をブロック２２２ａのワードラインに印加することによって、セルの閾値電圧と比較される。第２実施形態では、所定電圧がブロック２２２ａのワードラインに印加され、所定電圧よりも高い閾値電圧を有するセルのカウント数が（例えば、電流を伝導しないセルを決定することにより）決定される。これらの実施形態のそれぞれについて、以下でさらに詳細に説明する。当業者には当然のことながら、本発明の範囲と精神を逸脱することなく、フラッシュメモリブロックにおいて試験パルスの効果を測定する他の技術を使用してもよい。
【００２５】
[0029]  なお、セルの閾値電圧は、セルが電流を伝導するためにこのセルに印加されなくてはならない電圧である。例えば、ブロック２２２ａのセルがフローティングゲートＭＯＳトランジスタとして実現される実施形態では、セルの閾値電圧は、電流を伝導するためにコントロールゲートに印加されなくてはならない電圧である。上述したように、フローティングゲートＭＯＳトランジスタでは、トランジスタの閾値電圧の値は、トランジスタのフローティングゲート上の電荷の存在に基づいて変化する。
【００２６】
[0030]  ブロック２２２ａのセルの閾値電圧を分析する第１実施形態では、メモリコントローラ２１０は、ブロック２２２ａのセルの閾値電圧を複数の所定電圧と比較し得る。一実施形態において、ＲＯＭメモリ２１４またはブロック２２２のうちのあるブロック（例えば、ブロック２２２ｂ）は、本明細書ではＶｐ１、Ｖｐ２、Ｖｐ３（ここで、Ｖｐ１＜Ｖｐ２＜Ｖｐ３）と称する３つの所定電圧を記憶し得る。本実施形態では、メモリコントローラ２１０は、セルの閾値電圧が、例えば、Ｖｐ１未満、Ｖｐ１〜Ｖｐ２の間、Ｖｐ２〜Ｖｐ３の間、Ｖｐ３より大きいなどの範囲のうち、いずれの範囲に該当するかを決定することができる。一実施形態において、各範囲にブロックの古さが割り当てられる。したがって、閾値電圧がどの範囲に該当するかを決定することにより、本発明の本実施形態は、ブロック２２２ａの古さを決定することができる。一実施形態において、メモリコントローラ２１０は、参照テーブル２１８に含まれる情報を使用して、決定された範囲を特定の古さにマップすることができる。あるいは、閾値電圧が該当する範囲自体を使用して、ブロック２２２ａの古さを定量化してもよい。
【００２７】
[0031]  複数の所定電圧をセルの閾値電圧と比較する際、一実施形態では、メモリコントローラ２１０は、所定電圧の探索を実行して、それらの電圧のいずれがブロック２２２ａの全ての閾値電圧よりも大きく、それらの電圧のいずれがブロック２２２ａの全ての閾値電圧以下であるかを決定する。一実施形態において、探索は二分探索であってよい。例えば、メモリコントローラ２１０は、Ｖｐ２から探索を始め、Ｖｐ２との比較結果に基づいて、ブロック２２２ａのセルの閾値電圧をＶｐ１またはＶｐ３のいずれかと比較することができる。
【００２８】
[0032]  一実施形態において、セルの閾値電圧と所定電圧との比較を実行するために、メモリコントローラ２１０は、所定電圧をブロック２２２ａのワードラインに出力し得る。ブロック２２２ａの各セルがフローティングゲートＭＯＳトランジスタとして実現される実施形態では、ワードラインはセルのコントロールゲートに接続される。したがって、ワードラインに特定の電圧を印加し、どのセルが電流を伝導しているかを決定することにより、メモリコントローラ２１０は、どのセルが所定電圧よりも高い閾値電圧を有し、どのセルが所定電圧以下の閾値電圧を有するかを決定することができる。
【００２９】
[0033]  複数の所定電圧は、フラッシュメモリブロックの性能劣化のモデルまたはフラッシュメモリブロックの劣化に関する実際の実験に基づいて、決定することができる。一実施形態において、複数の所定電圧は、メモリコントローラ２１０のＲＯＭメモリ２１４またはブロック２２２の別のブロックに（例えば、製造時に）記憶され得る。
【００３０】
[0034]  ブロック２２２ａのセルの閾値電圧を分析する第２実施形態では、ブロック２２２ａのセルの閾値電圧を複数の所定電圧と比較する代わりに、メモリコントローラ２１０は、所定電圧より高い（あるいは、同等に、所定電圧より低い）閾値電圧を有するセルの数に基づいて古さを決定してもよい。そのようなセルのカウント数が決定されると、メモリコントローラ２１０は、参照テーブル２１８内の情報を使用して、そのカウント数を特定の古さの値にマップすることができる。あるいは、特定の閾値（つまり、カウント数）よりも大きい（または、小さい）閾値電圧を有するセルの数自体を使用して、ブロック２２２ａの古さを定量化してもよい。さらに、上述したように、読取り動作中、メモリコントローラ２１０は、ブロック２２２ａのワードライン上に比較的中間の電圧を出力し、どのセルが電流を伝導しているかを決定し得る。したがって、一実施形態では、所定電圧は、読取り動作中にワードラインに印加された電圧であり得る。
【００３１】
[0035]  別の実施形態では、ブロック２２２ａの古さは、ブロック２２２ａが経たＰ／Ｅサイクルの数を決定することによって、決定することができる。例えば、メモリコントローラ２１０がブロック２２２ａに対してＰ／Ｅサイクルを実行するたびに、メモリコントローラ２１０はカウンタをインクリメントすることができる。カウンタは、指定された複数のセル内に記憶され得る。指定された複数のセルは、ブロック２２２ａ、別のブロック（例えばブロック２２２ｂ）、またはブロック２２２の以外に配置される複数のセル内に含まれ得る。他の実施形態において、指定された複数のセルは、上記の組み合わせ（例えば、ブロック２２２ａ、別のブロック、およびブロック２２２以外に配置される複数のセルのうちの１つ以上の組み合わせ）に含まれ得る。
【００３２】
[0036]  ブロック２２２ａに書き込む前に、メモリコントローラ２１０は、指定された複数のセルの内容にアクセスすることにより、ブロック２２２ａの古さを決定することができる。それに加えて、あるいはその代わりに、メモリコントローラ２１０は、ブロック２２２ａを消去するために使用された前回のパルス列の第１パルスの電圧および／またはブロック２２２ａを消去するのに要した時間（またはパルスカウント）を書き込むことができる。さらに別の実施形態では、前回のＰ／Ｅサイクル中に使用されたパルス列の最終パルスの電圧が記憶され得る。上述したように、ブロックが古くなるほど、ブロックを消去するのに要する電圧が大きくなり、結果としてパルス列が長くなることが多い。したがって、パルス列の第１パルスの電圧および前回のＰ／Ｅサイクル中にブロック２２２ａを消去するのに要した時間も使用して、ブロック２２２ａの古さを定量化することができる。例えば、ブロック２２２ａの古さの適応的なプログラムおよび消去を可能にするために、ブロック２２２ｂの古さも記憶され得る。例えば、ブロック２２２ａの一部分を使用してブロック２２２ｂの古さを記憶することができる。
【００３３】
[0037]  図３のフローチャート３００に戻り、ステップ３０４では、ブロックの古さに基づき、パルス列の初期パルスの電圧が決定される。例えば、図２において、メモリコントローラ２１０は、ブロック２２２ａの決定された古さに基づき、パルス列の第１パルスの電圧を決定することができる。例えば、メモリコントローラ２１０は、参照テーブル２１８を使用し、ブロック２２２ａの古さをパルス列の最初のパルスの電圧にマップすることができる。例えば、参照テーブル２１８内の情報は、モデル化によりまたは実験により決定されたフラッシュメモリブロックの特性を使用して決定され、所与の古さを有するブロックを消去するのに要する電圧レベルを決定することができる。例えば、製造プロセスの試験段階中に、ブロック２２２はテストされ得る。結果として得られたテストデータは、予め定義されたモデルと組み合わされ、所与の古さを有するブロックを消去するのに要する電圧レベルを決定することができる。
【００３４】
[0038]  ステップ３０６において、パルス列は、ブロックの少なくとも一部分に出力される。例えば、図２において、メモリコントローラ２１０は、ブロック２２２ａの少なくとも一部分にパルス列を出力することができる。一実施形態において、プログラミング動作中、パルス列は、プログラム対象であるブロック２２２ａの特定部分に出力され得る。一方、消去動作中、パルス列は、ブロック２２２ａ全体に出力され得る。
【００３５】
[0039]  一実施形態では、パルス列内の第１パルスは、ステップ３０４で決定された電圧を有する。一実施形態において、メモリコントローラ２１０のプロセッサ２１２は、第１パルスが決定された電圧を有するようにパルス列を生成するべく電圧発生器２１６を制御することができる。一実施形態では、電圧発生器は、電圧発生器２１６内の制御回路および／またはプロセッサ２１２によって制御され得る多くの電圧調整器を備えてもよい。
【００３６】
[0040]  一実施形態において、パルス列の他のパルスの電圧レベルも、ブロック２２２ａの古さに基づいてインクリメントされる。例えば、第１パルスの後、メモリコントローラ２１０がブロック２２２ａの内容が完全に消去されていないと判断すると、メモリコントローラは、第１パルスと同一の電圧レベルを有する別のパルスを出力することができる。第１パルスの電圧レベルを有する所定数のパルスがブロック２２２ａの内容を完全に消去できなかった時は、メモリコントローラ２１０は、第１パルスの電圧レベルからインクリメントした電圧を有する別のパルスを出力し得る。電圧レベルのインクリメント値は、静的であっても、適応的であってもよい。例えば、メモリコントローラ２１０は、ブロック２２２ａの古さに基づいて、インクリメントの値を決定することができる。電圧レベルに対する追加のインクリメントも、静的または適応的に決定され得る。さらに、各電圧レベルのパルス数もまた、静的または適応的に決定され得る。つまり、特定電圧レベルでのパルス数は、静的（例えば、ＲＯＭ２１４に記憶される）であってもよく、またはブロック２２２ａの古さに基づきメモリコントローラ２１０によって決定されてもよい。例えば、参照テーブル２１８は、一連のパルスのパルス数をブロック２２２ａの古さに基づいて特定する情報を記憶し得る。
【００３７】
[0041]  上述したように、メモリコントローラ２１０は、ステップ３０２〜３０６の１つ以上を完了し得る。一実施形態において、メモリコントローラ２１０のＲＯＭ２１４には、メモリコントローラ２１０がステップ３０２〜３０６を完了することを可能にするコンピュータプログラムおよび／またはアルゴリズムが記憶され得る。別の実施形態では、コンピュータプログラムおよび／またはアルゴリズムは、他のコンピュータプログラム／アルゴリズム製品に記憶され得る。他のタイプの他のコンピュータプログラム／アルゴリズムの例には、一次記憶装置（例えば、任意のタイプのランダムアクセスメモリ）二次記憶装置（例えば、ハードドライブ、フロッピー（登録商標）ディスク、ＣＤＴＯＭ，ＺＩＰディスク、テープ、磁気記憶装置、および光記憶装置、ＭＥＭＳ、ナノ技術により記憶装置など）が含まれるが、これらに限定されない。別の実施形態では、メモリコントローラ２１０は、例えばプログラマブル論理によって、ハードウェア状態の機械として実現され得る。
【００３８】
[0042]  図４は、本発明の一実施形態に従い、メモリコントローラ２１０によって生成され得るパルス列の一例を示すプロット４００である。図４に示すように、メモリコントローラ２１０は、最初に試験パルス４０２を生成し得る。フローチャート３００のステップ３０２を参照して上述したように、試験パルスを使用してブロック２２２ａの古さを決定することができる。ブロック２２２ａの古さに基づき、メモリコントローラ２１０は、パルス列の第１パルスの電圧がＶ１からＶ１＊へと（例えば、図１に図示された従来の静的なパルス列で使用された値だけ）増加されるべきであることを決定し得る。図４に示すように、メモリコントローラ２１０は、ΔＶの値だけ、第１パルスの電圧を効果的に増加する。こうすることで、メモリコントローラ２１０は、パルス列の第１パルスが無駄になる可能性を減少させる。一実施形態では、Ｖ１＊は、Ｖ２（つまり、静的な方法における第２組のパルスの電圧）に等しくてもよい。さらに、図４に示すように、パルス列の残りのパルスも（必要であれば）、Ｖ２＊の値へとΔＶだけ、または、静的もしくは適応的に決定された他の値だけ、増加してもよい。
【００３９】
[0043]  図５は、本発明の一実施形態に従い、上述した静的な方法とは反対に、フローチャート３００において具体化された適応的な方法を使用する効果を示すプロット５１０〜５４０を示している。プロット５１０および５２０は、それぞれ、フローチャート３００において具体化された適応的な方法と従来の静的な方法を使用した、比較的新しいブロックの消去を示している。プロット５１０および５２０に示すように、静的および適応的な方法は、ほぼ等しく効果的に動作する。確かに、ブロックが「新しい」場合、例えば、ブロックが比較的少ない数のＰ／Ｅサイクルしか経ていない場合、図示例では、適応的な方法と静的な方法の初期パルスの電圧は同様になる。したがって、本例では、これら２つの方法は、同様の性能を示すことになる。
【００４０】
[0044]  プロット５３０および５４０は、それぞれ、適応的な方法と静的な方法を使用した比較的古いブロックの消去を示している。ブロックの古さを決定すると、Ｖ１ではなくＶ１＊の電圧を有するパルスで適応的な方法が開始する。プロット５３０に示すように、このようにすることで、電圧Ｖ１＊でパルスの印加後、消去されずに残るセルの数に中間的な減少をもたらす。逆に、プロット５４０に示すように、静的な方法を使用すると、第２および第３のパルスは、消去されずに残るセルの数をあまり減少させないため、実質上無駄になる。確かに、第３パルスにより、適応的な方法は略ブロック全体を消去する一方、静的な方法は同一レベルの消去に到達するにはほぼ８パルス要する。したがって、図５の例において示されるプロット５１０〜５４０は、比較的古いフラッシュメモリブロックについて、図３を参照して上述した適応的な方法が、ブロックを消去するのに要するパルスの数を減少させ、それによりブロックを消去するのに要する時間を短縮することを示している。
【００４１】
[0045]  図６は、本発明の一実施形態に従い、図３で具体化された適応的な方法の効果をさらに説明するプロット６００および６１０を示す。プロット６００および６１０は、所与のブロックが経たＰ／Ｅサイクルの数の関数として異なるパルスの電圧を示している。プロット６００は静的な方法を使用した場合を、プロット６１０は適応的な方法を使用した場合を示す。プロット６００に示すように、静的な方法におけるパルスの電圧は、Ｖ１からＶ３へと静的に増加する。すなわち、各電圧レベルにおけるパルス数は一定である（つまり、図６の実施形態では、各レベルで２パルス）。さらに、プロット６００は、各パルス後に行われる検証も示している。例えば、プロット６００に示すように、ブロックがＣ１サイクルに到達する前は、ブロックを消去するのに１パルスのみを要する。しかし、ブロックが古くなるほど、ブロックの消去には多くのパルスを要するようになる。確かに、ブロックがＣ５サイクル経ると、ブロックを消去するには６パルス必要になる。この時点で、第１パルス（例えば、電圧レベルＶ１の第１および第２パルスと、電圧レベルＶ２の第３および第４パルス）は、ブロックの状態に大きな影響を与えないため、無駄である。
【００４２】
[0046]  プロット６００を参照して説明した静的な方法とは反対に、プロット６１０に示される適応的な技術は、パルス列における第１パルス以降のパルスの値をＶ１からＶ３に調節することができる。具体的に、プロット６１０に示されるように、ブロックがＣ１サイクル経ると、ブロックを消去するのに第２パルスが必要となる。しかし、ブロックがＣ２サイクル経ると、パルス列の第１パルスの電圧はＶ２まで増加され、ブロックを消去するのに１パルスのみが必要となる。同様に、ブロックがＣ３サイクルに達すると、ブロックを消去するのに再び第２パルスが必要となる。しかし、ブロックがＣ４サイクル経ると、第１パルスの電圧は、ブロックの古さに基づいて再びインクリメントされる。このように、適応的な技術は、ブロックの古さに基づいて第１パルスで電圧レベルＶ３に到達することができる。逆に、プロット６００に示すように、ブロックの古さに関わらず、第５パルスまでは、電圧レベルＶ３には到達しない。
【００４３】
[0047]  当業者には当然のことながら、プロット６００および６１０は、本明細書において例示のみを目的として提供されており、特許請求の範囲を限定することを意図していない。例えば、別の実施形態では、サイクルＣ１〜Ｃ５の相対関係は変わり得る。例えば、適応的な方法では、適応的な方法の第１パルスの電圧は、ブロックがＣ２およびＣ４サイクルを経る前にインクリメントされてもよい。このような実施形態では、ブロックがＣ２またはＣ４に到達すると、ブロックを消去するのに２パルスは必要なくなる。より一般的には、パルス列の特定のパルスの電圧レベルは、ブロックを消去するのに追加のパルスが必要になる前にインクリメントされる。
【００４４】
[0048]  上述した実施形態は、フラッシュメモリのブロックの消去に焦点を当てている。しかし、当業者は、本明細書の開示に基づき、この適応的な技術がメモリのブロックをプログラムする際にも使用することができることを理解するであろう。例えば、セルをプログラムするのに使用される電圧は、フラッシュメモリブロックの古さに基づいて決定され得る。
【００４５】
[0049]  また、本明細書において、いくつかの実施形態をフラッシュメモリに関連して説明してきたが、本発明はこれらの例に限定されない。本発明は、他のタイプのコンピュータメモリにも適用可能である。
【００４６】
[0050]  本発明は、特定の機能と、それらの機能同士の関係の実現を例示した機能的なビルディングブロックを使用して説明してきた。これらの機能的なビルディングブロックの境界は、本明細書において、説明の便宜上任意に規定されている。特定の機能と、それら機能の関係が適切に実行される限り、別の境界が規定されてもよい。
【００４７】
[0051]  特定の実施形態の前記説明は、本発明の一般的な性質を完全に明らかにしているため、当業者の知識を適用することによって、他者が、本発明の一般概念から逸脱することなく、過度な実験を必要とせずに、その特定の実施形態を容易に変形および／または適応させることができる。したがって、そのような適応および変形は、本明細書において提示した教示および説明に基づき、開示された実施形態の均等物の意味および範囲に含まれることが意図されている。当然のことながら、本明細書における言い回しまたは用語使いは、限定でなく説明を目的としたものであり、そのような本明細書の用語使いまたは言い回しは、当業者によって、教示および説明を考慮して解釈されることになる。
【００４８】
[0052]  本発明の広さおよび範囲は、上述した例示的な実施形態のいずれによっても限定されるべきでなく、以下の請求の範囲およびその均等物に従ってのみ規定されるべきである。
【００４９】
[0053]  本出願の請求の範囲は、いずれの関連出願の請求の範囲とも異なる。したがって、出願人は、本出願に関して、いずれの関連出願の特許請求の範囲の放棄も撤回する。したがって、審査官は、そのような従前の放棄および回避させられた引用文献のいずれも再考を要することを承知されたい。さらに、審査官は、本出願においてなされた放棄を、いずれの関連出願にも適用して解釈されるべきでないことを承知されたい。
【図１】
2015512552.tif 000003
【図２】
2015512552.tif 000004
【図３】
2015512552.tif 000005
【図４】
2015512552.tif 000006
【図５】
2015512552.tif 000007
【図６】
2015512552.tif 000008
【手続補正書】
【提出日】平成26年11月27日(2014.11.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性メモリのブロックの古さを、前記ブロックに出力される試験電圧パルスの結果に少なくとも基づいて決定することと、
前記ブロックの前記古さに基づき、パルスの電圧を決定することと、
前記ブロックの少なくとも一部分をプログラムまたは消去するために、前記ブロックの少なくとも一部分に前記パルスを出力することと、を含む、
方法。
【請求項２】
前記ブロックの前記古さを決定することは、試験パルスを前記ブロックに出力することを含む請求項１に記載の方法
【請求項３】
前記ブロックの前記古さを決定することは、さらに、前記ブロックのセルの閾値電圧を複数の所定電圧と比較することを含む、請求項２に記載の方法。
【請求項４】
前記ブロックの前記古さを決定することは、さらに、前記複数の所定電圧のうちのいずれが、前記ブロックの前記セルの全ての閾値電圧以下であるかを決定することを含む、請求項３に記載の方法。
【請求項５】
前記ブロックの前記古さを決定することは、さらに、所定の閾値電圧よりも大きい閾値電圧を有する前記ブロックのセルの数を含むカウント数を決定することを含む、請求項２に記載の方法。
【請求項６】
前記ブロックの前記古さを決定することは、指定された複数のセルの内容にアクセスすることを含む、請求項１に記載の方法。
【請求項７】
前記指定された複数のセルは、前記ブロック、前記不揮発性メモリの第２ブロック、または前記不揮発性メモリを含む複数のブロック以外に配置された複数のセルのうちの少なくとも１つに含まれる、請求項６に記載の方法。
【請求項８】
前記指定された複数のセルは、前記ブロックが経たプログラムおよび／または消去サイクルの数を記憶する、請求項６に記載の方法。
【請求項９】
前記指定された複数のセルは、前記ブロックの前回のプログラムまたは消去サイクル中に前記ブロックの少なくとも一部分を消去またはプログラムするのに要した時間、前記ブロックの前回のプログラムまたは消去サイクル中に前記ブロックの少なくとも一部分を消去またはプログラムするのに要した全パルスカウント数、前記ブロックの前回のプログラムまたは消去サイクル中に出力された第１のプログラムまたは消去パルスの電圧、前記ブロックの前回のプログラムまたは消去サイクル中に出力された最後のプログラムまた消去パルスの電圧、あるいは、前記ブロックの前回のプログラムまたは消去サイクル中に出力された任意のプログラムまたは消去パルスの電圧、のうちの少なくとも１つを記憶する、請求項６に記載の方法。
【請求項１０】
前記指定された複数のセルは、前回のプログラムおよび／または消去サイクル中に出力された最後のプログラムまたは消去パルスの電圧を記憶する、請求項６に記載の方法。
【請求項１１】
前記出力することは、前記決定された電圧を有する前記パルスを生成するように電圧発生器を制御することを含む、請求項１に記載の方法。
【請求項１２】
前記出力することは、前記パルスを含む複数のパルスを出力することを含む、請求項１に記載の方法。
【請求項１３】
フラッシュメモリのブロックの内容をプログラムまたは消去するように動作可能なモジュールを備えるシステムであって、
プロセッサと、
前記プロセッサと通信するメモリと、を備え、
前記メモリは、前記プロセッサが、
前記ブロックの古さを、前記ブロックに出力される試験電圧パルスの結果に少なくとも基づいて決定し、
前記ブロックの前記古さに基づき、パルスの電圧を決定し、かつ、
前記ブロックの少なくとも一部分をプログラムまたは消去するために、前記ブロックの少なくとも一部分に前記パルスを出力するように指示するための複数の処理命令を記憶する、
システム。
【請求項１４】
前記モジュールはマイクロコントローラを備え、前記マイクロコントローラが前記プロセッサおよび前記メモリを含む、請求項１３に記載のシステム。
【請求項１５】
前記メモリは指定された複数のセルを備える、請求項１３に記載のシステム。
【請求項１６】
前記プロセッサは、さらに、前記ブロックの少なくとも一部分またはその一部分に試験パルスを出力するように動作可能である、請求項１５に記載のシステム。
【請求項１７】
前記プロセッサは、さらに、前記ブロックのセルの閾値電圧を、複数の所定電圧と比較するように動作可能である、請求項１５に記載のシステム。
【請求項１８】
方法を実行するために１つ以上のプロセッサによって実行される１つ以上のシーケンスの１つ以上の命令を記憶したコンピュータ可読媒体であって、前記方法は、
不揮発性メモリのブロックの古さを、前記ブロックに出力される試験電圧パルスの結果に少なくとも基づいて決定することと、
前記ブロックの前記古さに基づき、パルスの電圧を決定することと、
前記ブロックの少なくとも一部分をプログラムまたは消去するために、前記ブロックの少なくとも一部分に前記パルスを出力することと、を含む、
コンピュータ可読媒体。
【請求項１９】
前記方法は、試験パルスを前記ブロックの少なくとも一部分に出力することを含む、請求項１８に記載のコンピュータ可読媒体。
【国際調査報告】
2015512552.tif 000009
2015512552.tif 000010