(57)【特許請求の範囲】
【請求項１】
ＮＯＲゲート型アーキテクチャーのフラッシュメモリであって、
該フラッシュメモリの他のデータブロックに対する消去及び書き込み時間の記憶場所と、消去及び書き込み動作に対し各ブロックによって用いられた時間を格納する直前のテーブルの記憶場所に割り当てられたテーブルデータブロックと、
前記テーブルデータブロックが前記直前のテーブルに対して十分なスペースを有しているかどうかを判定し、前記テーブルブロックが十分なスペースを有していない場合には当該テーブルブロックを消去するとともに、以前のテーブルブロックが消去されている場合には、当該テーブルデータブロックに新たなテーブルを書き込むプロセッサと、を有することを特徴とする前記フラシュメモリ。
【請求項２】
前記テーブルが各記憶動作に対する合計バイト数を記憶するように動作可能である請求項１に記載のメモリ。
【請求項３】
前記テーブルが各ブロックに対する消去の回数を記憶するように動作可能である請求項１に記載のメモリ。
【請求項４】
ＮＯＲゲート型アーキテクチャーフラッシュメモリをマネージングする方法であって、
前記フラッシュメモリの各ブロックに対する消去及び書き込み時間を記憶するように動作可能な該フラッシュメモリのテーブルブロックを指定するステップと、
消去及び書き込み動作のために各ブロックによって用いられる時間をトラッキングすることによって直前のテーブルを作るステップと、
前記テーブルブロックが前記直前のテーブル用の十分なスペースを有しているかどうかを判定し、もし該テーブルブロックが十分なスペースを有していなければ、当該テーブルブロックが消去されるステップと、
前記テーブルブロックへ新しい消去及び書き込みテーブルを書き込むステップと、を有することを特徴とする前記方法。
【請求項５】
前記テーブルは、各ブロックに対する消去の回数を記憶するように動作する請求項４に記載の方法。
【請求項６】
前記テーブルブロックに十分なスペースがあると判定されると、前記新しいエントリが前記直前の消去及び書き込みテーブルの最後に書き込まれる請求項４に記載の方法。
【請求項７】
前記テーブルブロックに十分なスペースがないと判定されると、前記新しいエントリが当該テーブルブロックの最初に書き込まれる請求項４に記載の方法。
【請求項８】
さらに、消去及び書き込み動作の回数と記憶動作のサイズをテーブルヘッダに記憶するステップを有する請求項４に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリに関し、より詳しくは、消去及び書き込み時間の記憶専用に少なくとも１ブロックを有するＮＯＲ型フラッシュメモリに関する。
【０００２】
【従来の技術】
今日では、システムデザイナーにはいくつかの様々なメモリのオプションがある。その選択は、通常、揮発性やプログラマビリティ(programmability)や記録密度のようなメモリの望ましい特性に終始している。揮発性メモリは、定電源供給がなければその内容を保持できない。このため、いくつかのアプリケーションは、read-only memory（ＲＯＭ）のような不揮発性メモリを必要とする。
【０００３】
いくつかのアプリケーションは、一般的なＲＯＭが限られたプログラマビリティしか有していないことを利用している。ＲＯＭメモリの例として、紫外線でのみ消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）や電気的に消去可能な（バイト消去が可能）プログラマブルＲＯＭ（ＥＰＲＯＭ）などが挙げられる。消費者にこれらの記憶を消去できないようにさせたい（しかしそれを更新する能力も欲しい）オリジナル装置の生産者にとっては、このようなタイプのメモリが理想的である。
【０００４】
ＲＯＭもＲＡＭも共に高密度であり、比較的小さなスペースに大容量のデータを記憶できる。しかしながら、両方とも一般的に消費電力が大きい。低消費電力であって高密度でかつ簡単なプログラマブル不揮発性メモリに対する解決法は、フラッシュメモリにある。フラッシュメモリは、いくつかのタイプの記憶装置を必要とするポータブルデバイス用に理想的である。
【０００５】
今日マーケットで普及しているオプションにはフラッシュメモリの２つの異なるアーキテクチャーがある。１つはＮＯＲゲートの使用に基づくものであり（ＮＯＲフラッシュ）、他方はＮＡＮＤゲートの使用に基づくもの（ＮＡＮＤフラッシュ）である。それぞれに有利な点と不利な点がある。
【０００６】
例えば、ＮＯＲフラッシュは、プログラムの記憶により適している。しかしながら、都合の悪いことに、ＮＯＲフラッシュは、書き込みにより時間がかかる。何故なら、残存データが最初に消去されなくてはならず、それから新しいデータが書き込まれるからである。ＮＯＲフラッシュのデータシートでなされる消去及び書き込み時間は、データ記憶装置としては遅すぎるということが認識されているようである。しかしながら、これらのパラメータは、高いサイクル数（多い書き換え回数）に基づくものであり、それは消去及び書き込みの性能を低下させてしまう。データ記憶アプリケーションは、フラッシュのために書き込むことがより少ない回数であると考えられるので、データシートアプリケーションより速い性能を可能とする。
【０００７】
もしユーザーが進行状況をトラックする（追跡する）ことができるなら、より早い進行状況が分かることになり、より多くのＮＯＲフラッシュが受け入れられることになろう。従って、ＮＯＲフラッシュメモリの消去及び書き込み時間をトラッキング可能な方法及び装置に対する要望がある。
本発明は、図を参照しながら開示内容を読むことで最もよく理解できよう。
【０００８】
【発明の実施の形態】
ＮＯＲ型フラッシュメモリのアーキテクチャーの一実施例が図１に示されている。このメモリ１０は、少なくとも１つのメモリバンクを有しており、それぞれが少なくとも２つのデータブロックに分けられている。図１の例では、２つのメモリバンクBank０とBank１がある。なお、この特定のアーキテクチャーは、単なる一例であって、本発明の適用可能性が制限されることを意図するものではない。各バンクは、オーガナイズされた幾つかのデータブロックを有している。図１に示すように、各バンクはデータブロック０〜３１を含んでいる。Bank０は、データブロックの両方のバンクに用いられる特別ブロックを有している。これらのブロックはデータ以外の記憶専用である。
【０００９】
図１の例では、Bank０は、最初のブロック１４に実行コードを有している。さらに、２番目のブロック１６は、ファイルシステムテーブルを有しており、プロセッサ１２に、どのブロックが利用可能であるか、どのブロックがどのデータ記憶しているかを伝えるようになっている。本発明に係るフラッシュメモリの例では、２番目のテーブルがブロック１８に配置されてもよい。また、このテーブルは、どこに配置されている場合でも、メモリ内の全データブロック用の消去及び書き込みテーブルを含むことができる。
【００１０】
ファイルシステムテーブルと同様に、消去及び書き込みテーブルは、データブロックのすべての情報を持つことができる。また、該情報は、本明細書でテーブルブロックと称されている他の専用の記憶されていないデータブロックに含まれていてもよい。消去及び書き込み時間に関する情報は、テーブルが置かれているバンクだけではなく、すべてのデータブロックに適用される。なお、図１の例は、本発明の適用範囲をいかなる意味においても制限する意図でないことに留意されたい。データブロックの消去及び書き込み時間をトラックしかつ記憶するいかなるメモリも本発明に従ったものである。
【００１１】
このメモリは、各データブロックの消去及び書き込み時間がトラックされかつ記憶されるように動作する。この情報は、その後、メモリが記憶のためにアクセスされる際に用いられる。簡単に説明するために、このメモリ動作を２つの説明に分けてみよう。最初の説明は、テーブルのマネージメントとメンテナンスに焦点を当てる。２番目の説明は、消去及び書き込み時間のアクセスと推定に焦点を当てる。これらのプロセスは、両方とも１つの大きなプロセスの一部であってもよく、また少なくともある部分で同時にあるいは別個に動作してもよい。
【００１２】
図２は、ＮＯＲゲート型アーキテクチャーのフラッシュメモリをマネージングする方法の１実施例を示している。消去及び書き込みテーブルはどこに置かれてもよいが、それはいずれかのメモリブロックにおいて指定されなくてはならない（ステップ３２）。一旦プロセッサがどこに消去及び書き込みテーブルが置かれているかを知ると、該プロセッサは次にテーブルに移すために(populate)データの供給を始める。テーブル自身は、データブロック数によってインデックスされた情報を供給するよう構成されている。この情報は、直前の（最も最近の／most recent）消去にかかった時間と、直前の書き込みにかかった時間を含んでいる。また、その情報は、各ブロックの消去回数を含んでいてもよい。
【００１３】
データがフラッシュメモリに引き渡されると、各ブロックの消去及び書き込み時間がトラックされ、新しい消去及び書き込みメモリが作り出される（ステップ３４）。新しい消去及び書き込みエントリは、指定されたテーブルブロックに書き込まれる。テーブルブロックの消去及び書き込みのサイクルをセーブするために、新しいエントリは、通常、現時点のものより前の直前のエントリの最後に書き込まれる。
【００１４】
しかしながら、テーブルブロックには、新しいエントリを直前のエントリの後に置くことができるようにするための十分なスペースがない可能性がある。そのため、ステップ３６において、テーブルブロックで利用可能な容量を判定することが必要である。
【００１５】
テーブルブロックにスペースがあれば、新しいエントリは直前のエントリの後に書き込まれる。一方、テーブルブロックに十分なスペースがなければ、当該テーブルブロックは消去されなければならず、新しいエントリがテーブルブロックのスペースの最初に書き込まれ、そのエントリが当該ブロックに対する新しいデータとなり、他のブロックに対しては以前のデータとなる。いずれの場合にも、新しいエントリはステップ３８で書き込まれる。
【００１６】
一旦テーブルブロックがフラッシュメモリに対して指定されると、プロセッサは消去及び書き込み時間のトラックを続ける。プロセッサは、その後、テーブルを更新して、エントリを書き込むためのスペースの容量を判定し、そして利用可能なスペースに適当な方法でエントリを書き込む。
【００１７】
エントリが書き込まれる時、独自のヘッダがそれぞれに与えられる。このヘッダは、メモリを初期化する際に、プロセッサのファームウェアが各ブロックに対する直前のエントリを見つけることを可能にするものである。このヘッダは、合計バイト数と最後の動作に対する記憶時間をも含む。新しいエントリがデータブロックに作られる時、当該ブロックに対する以前のエントリは無効であるとマークされる。
【００１８】
データのバイトの記憶を行う方法の実施例が図３に示されている。まず、プロセッサは、データを記憶するためにフラッシュメモリにアクセスするリクエストを受け取る（ステップ４０）。このリクエストは、記憶されるデータのバイト数を含む。データ記憶動作はそれから開始される。図１に示すように、このプロセッサ１０は、フラッシュメモリの外部のシステムプロセッサである。それは、メモリと同一基板上のプロセッサでもいい。
【００１９】
次に、プロセッサは、どのブロックが利用可能かどうか及び最終的にどのブロックを使うかを決定するために、ファイルシステムテーブルにアクセスする（ステップ４２）。次に、プロセッサは、使用されるブロックのそれぞれに対する最後の（直前の）消去及び書き込み時間を判定するために、消去及び書き込みテーブルにアクセスする（ステップ４４）。次に、これらの時間が加算され、そしてその合計は、バイト数を記憶するのに要するであろう合計時間の推定値として使われる（ステップ４６）。この推定値は、当該デバイスや外部のホストコンピュータにあるの他プロセスへ通信され、ユーザーが当該推定値を受け取ることを可能にする（ステップ４８）。
【００２０】
推定するプロセス及び推定値を通信するプロセスは、インタラクティブに行われる。これは、ユーザーにホストコンピュータによって進行状況のバーやパーセントが表示される場合に利用できる。ブロックがいっぱいになると、メモリプロセッサが推定値を調整し、ホストコンピュータに更新された時間を通信するようにしてもよい。他の方法として、デバイスがメモリから与えられた推定値を単に使用して、当該推定値からユーザーディスプレイ用の適切な情報を生成するようにしてもよい。
【００２１】
本件出願において、「ホストコンピュータ」という用語は、フラッシュメモリに記憶リクエストを送ることができるすべてのデバイスを意味しており、システムプロセッサ上で実行されている他のプロセスをも含むことに留意されたい。ホストコンピュータは、例えば、プリント基板上にシステムプロセッサとともに設けられているフラッシュメモリにデータを記憶するパーソナルコンピュータにあるシステムプロセッサでもよい。また、ホストコンピュータは、インターネットラジオ受信機あるいは電子ブックのような専用インターネットデバイス用のプロセッサでもよい。さらに、ホストコンピュータは、フラッシュメモリの外部にあってもよく、その場合、ホストコンピュータは、フラッシュメモリを記憶する時だけ接続されその後フラッシュメモリから切断される。「ホストコンピュータ」は、上述したいずれの例によって限定されるものではないことに留意されたい。
【００２２】
ユーザーに記憶のための消去及び書き込み時間の推定値を示すことに加えて、実際の消去及び書き込み時間に基づく消去及び書き込み時間を予測する能力は、他の分野においても有益である。いくつかのシステムでは、可変プログラマブル機能を備えた記憶装置を使用することができる。そのようなシステムでは、次のプログラミング動作のために、期待される記憶時間を予測あるいは示す必要があるかもしれない。そのような場合は、より正確な消去及び書き込み時間を予測するメモリアーキテクチャーが有益であろう。
【００２３】
以上、消去及び書き込みタイムテーブルを備えたＮＯＲゲート型アーキテクチャーフラッシュメモリのための方法と構造に関する特定な実施例について説明したが、そのような特定な例は、特許請求の範囲に記載されている場合を除き、本発明の範囲の限定とみなされることを意図するものではない。
【図面の簡単な説明】
【図１】  図１は、本発明に係る消去及び書き込みタイムテーブルを備えたＮＯＲ型フラッシュメモリのアーキテクチャーの１実施例を示している。
【図２】  図２は、本発明に係る消去及び書き込みタイムテーブルをマネージングする方法の１実施例のフローチャートを示している。
【図３】  図３は、本発明に係るフラッシュメモリの消去及び書き込み時間の推定値を提示する方法の１実施例のフローチャートを示している。
【図１】
0004076439.tif 000002
【図２】
0004076439.tif 000003
【図３】
0004076439.tif 000004