(57)【要約】システム（図１）は、情報を記憶するための複数のセクタ（３０〜５８）を有するエミュレーションメモリ（２４）を有する。コントローラ（２２）は、使用されるアドレスの数を、エミュレーションメモリの所定のアドレス範囲内の有効レコードの数で除算する計算を行う（６４）。情報を記憶するために使用されていない、エミュレーションメモリの現在使用されている空間内の残りのアドレスの量が計算される。計算結果が第１の所定の数よりも大きいか否かを判定すること、および、残りのアドレスの量が第２の所定の数よりも大きいか否かを判定することが行われる（６６）。分数が上記第１の所定の数よりも大きく、残りのアドレスの量が第２の所定の数よりも大きい場合には、任意の後続の更新要求が、エミュレーションメモリの現在使用されている空間を使用して応答される。そうでない場合は、有効データを利用可能なセクタにコピーすることによる、エミュレーションメモリの圧縮（７２）が必要である。
2013525917.tif 000002
【特許請求の範囲】
【請求項１】
情報を記憶するための複数のセクタを有するエミュレーションメモリ、および制御手段を有するシステムにおける方法であって、
使用されるアドレスの数を前記エミュレーションメモリの所定のアドレス範囲内の有効レコードの数で除算する計算を行って分数を算出すること、
前記エミュレーションメモリの現在使用されている空間内の情報を記憶するために使用されていない残りのアドレスの量を計算すること、
計算された前記分数が第１の所定の数よりも大きいか否かを判定し、かつ前記残りのアドレスの量が第２の所定の数よりも大きいか否かを判定すること、
前記分数が前記第１の所定の数よりも大きく、かつ前記残りのアドレスの量が前記第２の所定の数よりも大きい場合には、前記エミュレーションメモリの前記現在使用されている空間を使用して任意の後続の更新要求に応答し、前記分数が前記第１の所定の数よりも小さいか、又は前記残りのアドレスの量が前記第２の所定の数よりも小さい場合は前記エミュレーションメモリの圧縮が必要であると判断し、有効データを前記エミュレーションメモリの利用可能なセクタにコピーすることを備える、方法。
【請求項２】
前記エミュレーションメモリの前記複数のセクタを２つのセクタとして実装することであって、前記２つのセクタのうちの第１のセクタは、利用されているアドレス指定済みの空間から成る第１の部分および残りのアドレスから成る第２の部分を有する、前記エミュレーションメモリの前記現在使用されている空間であり、前記２つのセクタのうちの第２のセクタは空の記憶空間である、前記実装することをさらに含む、請求項１に記載の方法。
【請求項３】
多重セクタによって、前記エミュレーションメモリの前記複数のセクタを実装することであって、前記エミュレーションメモリの第１の部分はデータを保持していない複数のセクタを有し、前記エミュレーションメモリの前記複数のセクタのうちの１つまたは複数は前記エミュレーションメモリの前記現在使用されている空間として割り当てられ、前記現在使用されている空間の一部は、情報を記憶するために使用されていない前記残りのアドレスの量である、前記実装することをさらに含む、請求項１に記載の方法。
【請求項４】
前記第１の所定の数を、現在情報を記憶していない前記エミュレーションメモリの前記現在使用されている空間内の前記残りの有効アドレスの量の関数である数として決定することをさらに含む、請求項１に記載の方法。
【請求項５】
前記第２の所定の数を、前記計算された分数の関数である数として決定することをさらに含む、請求項１に記載の方法。
【請求項６】
前記エミュレーションメモリ内のレコードの更新を求める要求に応答して前記使用されるアドレスの数を前記有効レコードの数で除算する計算を行うとともに、前記残りのアドレスの量を計算することをさらに含む、請求項１に記載の方法。
【請求項７】
さらに、前記圧縮が、前記複数のセクタのうちの最も古いフルセクタを消去すること、および、前記消去に続いて有効情報を前記最も古いフルセクタにコピーすることをさらに含む、請求項１に記載の方法。
【請求項８】
システムであって、
情報を順次記憶するための複数のセクタを有するエミュレーションメモリと、  前記エミュレーションメモリに結合されるメモリコントローラとを備え、
前記メモリコントローラは、
使用されるアドレスの数を前記エミュレーションメモリの所定のアドレス範囲内の有効レコードの数で除算する計算を行って分数を算出し、
前記エミュレーションメモリの現在使用されている空間内の情報を記憶するために使用されていない残りのアドレスの量を計算し、
計算された分数の割合が第１の所定の数よりも大きいか否かを判定し、
前記残りのアドレスの量が第２の所定の数よりも大きいか否かを判定し、
前記分数の割合が前記第１の所定の数よりも大きく、かつ前記残りのアドレスの量が前記第２の所定の数よりも大きい場合には、前記メモリコントローラは、前記エミュレーションメモリの前記現在使用されている空間を使用して任意の後続の更新要求に応答し、
前記分数の割合が前記第１の所定の数よりも小さいか、または前記残りのアドレスの量が前記第２の所定の数よりも小さい場合には、前記メモリコントローラは、前記エミュレーションメモリの圧縮が必要であると判断し、有効データを前記エミュレーションメモリの利用可能なセクタにコピーする、システム。
【請求項９】
前記エミュレーションメモリはさらに２つのセクタを含み、
前記２つのセクタのうちの第１のセクタは、利用されているアドレス指定済みの空間から成る第１の部分および残りのアドレスから成る第２の部分を有する、前記エミュレーションメモリの前記現在使用されている空間であり、
前記２つのセクタのうちの第２のセクタは空の記憶空間である、請求項８に記載のシステム。
【請求項１０】
前記エミュレーションメモリは多重セクタをさらに含み、
前記エミュレーションメモリの第１の部分はデータを保持していない複数のセクタを有し、
前記エミュレーションメモリの前記複数のセクタのうちの１つまたは複数のセクタは前記エミュレーションメモリの前記現在使用されている空間として割り当てられ、
前記現在使用されている空間の一部は、情報を記憶するために使用されていない前記残りのアドレスの量である、請求項８に記載のシステム。
【請求項１１】
前記メモリコントローラは、前記第１の所定の数を、現在情報を記憶していない前記エミュレーションメモリの前記現在使用されている空間内の前記残りの有効アドレスの量の関数である数として決定する、請求項８に記載のシステム。
【請求項１２】
前記メモリコントローラは、前記第２の所定の数を、前記分数の割合の関数である数として決定する、請求項８に記載のシステム。
【請求項１３】
前記メモリコントローラは、前記エミュレーションメモリ内のレコードの更新を求める要求に応答して前記計算を実行する、請求項８に記載のシステム。
【請求項１４】
前記メモリコントローラは、前記圧縮を、前記複数のセクタのうちの最も古いフルセクタを消去すること、および、前記消去に続いて有効情報を前記最も古いフルセクタにコピーすることによって実行する、請求項８に記載のシステム。
【請求項１５】
ランダムアクセスメモリ、情報を記憶するための複数のセクタを有するエミュレーションメモリ、およびメモリコントローラを有するシステムにおける方法であって、
第１の所定の回数を超えて更新された、前記エミュレーションメモリの所定のアドレス範囲内のレコードの数を計算すること、
前記エミュレーションメモリの現在使用されている空間内の情報を記憶するために使用されていない残りのアドレスの量を計算すること、
前記レコードの数が第２の所定の数よりも大きいか否かを判定し、かつ前記残りのアドレスの量が第３の所定の数よりも大きいか否かを判定すること、
前記レコードの数が前記第２の所定の数よりも大きく、かつ前記残りのアドレスの量が前記第３の所定の数よりも大きい場合には、前記エミュレーションメモリの前記現在使用されている空間を使用して任意の後続の更新要求に応答し、かつ前記レコードの数が前記第２の所定の数よりも小さいか、または前記残りのアドレスの量が前記第３の所定の数よりも小さい場合は前記エミュレーションメモリの圧縮が必要であると判断し、有効データを前記エミュレーションメモリの利用可能なセクタにコピーすることを備える、方法。
【請求項１６】
前記エミュレーションメモリの前記複数のセクタを２つのセクタとして実装することであって、前記２つのセクタのうちの第１のセクタは、利用されているアドレス指定済みの空間から成る第１の部分および残りのアドレスから成る第２の部分を有する、前記エミュレーションメモリの前記現在使用されている空間であり、前記２つのセクタのうちの第２のセクタは空の記憶空間である、実装することをさらに含む、請求項１５に記載の方法。
【請求項１７】
多重セクタによって、前記エミュレーションメモリの前記複数のセクタを実装することであって、前記エミュレーションメモリの第１の部分はデータを保持していない複数のセクタを有し、前記エミュレーションメモリの前記複数のセクタのうちの１つまたは複数は前記エミュレーションメモリの前記現在使用されている空間として割り当てられ、前記現在使用されている空間の一部は、情報を記憶するために使用されていない前記残りのアドレスの量である、前記実装することをさらに含む、請求項１５に記載の方法。
【請求項１８】
前記第２の所定の数を、現在情報を記憶していない前記エミュレーションメモリの前記現在使用されている空間内の前記残りの有効アドレスの量の関数である数として決定することをさらに含む、請求項１５に記載の方法。
【請求項１９】
前記第３の所定の数を、前記第１の所定の数を超えて更新された、前記エミュレーションメモリ内のレコードの一部の関数である数として決定することをさらに含む、請求項１５に記載の方法。
【請求項２０】
前記エミュレーションメモリ内のレコードの更新を求める要求に応答して、前記レコードの数を計算するとともに、前記残りのアドレスの量を計算することをさらに含む、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的にはメモリシステムに関し、より具体的には、エミュレート電気的消去可能（ＥＥＥ）メモリの動作方法に関する。
【背景技術】
【０００２】
エミュレート電気的消去可能（emulated electrically erasable:ＥＥＥ）メモリは一般的に、ランダムアクセスメモリと同等のサイズについて標準的な不揮発性メモリを超える改善された耐久性を有するメモリシステムを提供するために組み合わされる、ランダムアクセスメモリ、および、電気的に消去可能である不揮発性メモリを使用する。これは、ランダムアクセスメモリよりもはるかに大きい不揮発性メモリを使用して達成されるが、ＥＥＥメモリはあたかもランダムアクセスメモリのサイズしかないように動作する。従って、ＥＥＥメモリは、ＥＥＥメモリによって使用されるサイズからサイズが低減されているが耐久性は向上している電気的消去可能メモリをエミュレートする。これは、データが頻繁に更新され、不揮発的に記憶されなければならない自動車および産業用途のような、耐久性が非常に重要な状況において有用である。
【０００３】
従って、耐久性を向上させるコストは、不揮発性メモリのメモリサイズを増大させることになり、これは、デバイスをより高価にする。従って、メモリサイズの増大に起因してさらにコストが増大することを回避しながら、有効な耐久性を達成することが継続的に必要とされている。
【図面の簡単な説明】
【０００４】
【図１】本発明の一実施形態の実装に有用である、システム、不揮発性メモリを使用するエミュレート電気的消去可能メモリを示すブロック図である。
【図２】本実施形態による、動作状態が漸進的に示される不揮発性メモリのブロック図である。
【図３】本実施形態を含むより包括的なソリューションを示す流れ図である。
【発明を実施するための形態】
【０００５】
本発明は例として示されており、添付の図面によって限定されない。図面において、同様の参照符号は類似の要素を示す。図面内の要素は簡潔かつ明瞭にするために示されており、必ずしも原寸に比例して描かれてはいない。
【０００６】
１つの態様において、エミュレート電気的消去可能（ＥＥＥ）メモリは、ＲＡＭと、追加の容量を利用するために圧縮が使用されるＲＡＭよりも大きい容量を有するＮＶＭを有する。圧縮プロセスの開始のタイミングは、有益には、データが相対的に極めて動的であり、データの小さな部分が定期的に更新されるのではなくデータのほとんどが定期的に更新される場合には、遅延される。この圧縮の遅延が、特にデータが極めて動的である場合に、所与の量のＮＶＭについてシステムの耐久性を向上させる。これは、図面および以下の明細書を参照することによってより良好に理解される。
【０００７】
１つの実施形態では、フラッシュメモリがＮＶＭとして使用される。１つの例では、そして本明細書において使用される場合、プログラミングとは、ビットセルに論理レベル０を記憶することを指し、消去とは、ビットセルに論理レベル１を記憶することを指す。しかしながら、代替の実施形態では、プログラミングがビットセルに論理レベル１を記憶することを指してもよく、消去がビットセルに論理レベル０を記憶することを指してもよい。論理レベル０は論理ローと称される場合もあり、論理レベル１は論理ハイと称される場合もある。
【０００８】
本明細書において使用される場合、用語「バス」は、データ、アドレス、制御、またはステータスのような、１つまたは複数のさまざまなタイプの情報を伝送するために使用されることができる複数の信号または導体を指すために使用される。本明細書において論じられる導体は、単一の導体、複数の導体、一方向性導体、または双方向性導体であることに関連して例示または記載され得る。しかしながら、異なる実施形態は導体の実施態様を変更してもよい。例えば、双方向性導体ではなく別個の一方向性導体が使用されてもよく、その逆であってもよい。さらに、複数の導体が、並列にまたは時分割多重方式で複数の信号を伝送する単一の導体と置き換わってもよい。同様に、複数の信号を搬送する単一の導体は、これらの信号のサブセットを搬送するさまざまな異なる導体に分離されてもよい。それゆえ、信号の伝送には多くの選択肢が存在する。
【０００９】
「アサート」または「セット」および「ネゲート」（または「アサート停止」もしくは「クリア」）という用語は、本明細書においては、信号、ステータスビット、または類似の装置をそれぞれ、その論理的に真または論理的に偽の状態にレンダリングすることを指す場合に使用される。論理的に真の状態が論理レベル１である場合、論理的に偽の状態は論理レベル０である。そして、論理的に真の状態が論理レベル０である場合、論理的に偽の状態は論理レベル１である。
【００１０】
図１は、プロセッサ１４と、主記憶装置を含むことができる他のモジュール（複数の場合もあり）１６と、システム相互接続１２と、ＥＥＥメモリシステム１８（メモリシステムまたは不揮発性メモリシステムと称される場合もある）とを含むシステム１０をブロック図形式で示す。プロセッサ１４、他のモジュール（複数の場合もあり）１６、およびＥＥＥメモリシステム１８の各々は、双方向的にシステム相互接続１２に結合される。ＥＥＥメモリシステム１８は、ＲＡＭ２０と、メモリコントローラ２２と、Ｅフラッシュ２４を含む不揮発性メモリ（ＮＶＭ）２３とを含む。ＲＡＭ２０は、システム相互接続１２およびメモリコントローラ２２に双方向的に結合される。メモリコントローラ２２はＮＶＭ２３に結合され、Ｅフラッシュ２４の動作を制御する。リセット信号がプロセッサ１４およびメモリコントローラ２２に提供される。このリセット信号は、例えば、システム１０に対する全体的なリセット信号である。
【００１１】
プロセッサ１４は、マイクロプロセッサ、デジタル信号プロセッサなどのような任意のタイプのプロセッサであることができるか、または、ＥＥＥメモリシステム１８にアクセスすることができる任意のタイプの相互接続マスタであってもよい。１つの形態では、システム相互接続１２はシステムバスである。例えば、クロスバー、二点間接続、ならびに光および無線送信技法を含む他の形態の相互接続が使用されてもよい。他のモジュール１６は、例えば、別のメモリ、別のプロセッサ、別の相互接続マスタ、周辺機器、入出力（Ｉ／Ｏ）デバイスなどのような、任意のタイプのモジュールを含んでもよい。代替的には、他のモジュールはシステム１０内に存在しなくてもよい。
【００１２】
動作時、プロセッサ１４はアクセス要求（読み出しまたは書き込みアクセス要求）をメモリシステム１８に送ることができる。アクセスアドレス、および書き込み要求の場合には関連書き込みデータを含む、プロセッサ１４からのアクセス要求はＲＡＭ２０に提供される。読み出しアクセスの場合には、ＲＡＭ２０はプロセッサ１４に、受け取られたアクセスアドレスのロケーションに記憶されているデータを提供する。書き込みアクセスの場合には、ＲＡＭ２０は受け取られた書き込みデータを、受け取られたアクセスアドレスのロケーションに記憶する。書き込みアクセスの場合には、メモリコントローラ２２は、ＲＡＭ２０の更新を検出して、受け取られたアクセスアドレスおよび関連書き込みデータをＥフラッシュ２４に選択的に記憶することができる。例えば、ＲＡＭ２０に対する更新（書き込み）の場合、受け取られたアクセスアドレスおよび関連書き込みデータは、次の利用可能なロケーションにおいてＥフラッシュ２４に書き込まれるレコードを形成するために使用される。この次の利用可能なロケーションは、Ｅフラッシュの直前のロードの間にロードされたロケーションに論理的に連続している。（なお、図１を参照して、受け取られたアクセスアドレスはアドレスとしてＮＶＭ２３に提供されることができ、関連書き込みデータはデータ入力としてＥフラッシュ２４内に提供されることができる。）１つの例では、ＲＡＭ更新に対応するレコードの書き込みは、現在ＲＡＭロケーションに記憶されている値が、そのＲＡＭロケーションに対する書き込みアクセス要求に関連付けられる新たな書き込み値と異なる場合にのみ実行される。このようにして、Ｅフラッシュ２４は、より永続的な様式で、更新されているＲＡＭ２０の値を記憶することができる。この上記で説明された動作が、ＲＡＭ２０がエミュレーションＲＡＭとして示されている理由である。ＲＡＭ２０が電力を失うと、そのデータは失われる。電力が復旧すると、ＲＡＭの値はフラッシュメモリ２３から復元されることができ、これは電源喪失時にそのデータを失わない。フラッシュメモリ２３およびＥフラッシュ２４は、ＲＡＭ２０よりも大きな記憶容量を有する。
【００１３】
ＲＡＭ２０は、２０４８バイトを記憶するための容量を有する。Ｅフラッシュメモリ２４は１６個のセクタを有し、各セクタが２５６個のレコードを記憶するための容量を有する。各レコードは２バイトを含み、この２バイトはＲＡＭ２０において連続したロケーション内にある。フラッシュの利点は、高密度であることに起因する、そのコストの低さである。高密度アーキテクチャから生じるフラッシュの欠点は、消去がビット単位で、またはレコード単位でさえ利用可能でないことである。本明細書において、セクタは、単一回の消去で消去されることができるフラッシュメモリの最小単位とみなされる。単一回の消去は、５０個のような多数の消去パルスを使用して達成されることができる。各消去パルスは、消去される特定のセクタのすべてに印加される。従って、最初に、Ｅフラッシュメモリ２４は、すべての１０２４個のあり得る２バイトレコードの初期状態を記憶するために、４つのセクタを満たすことになる。動作が継続するにつれて、フル／アクティブとして参照される、現在満たされているものを含む多数のセクタがデータで満たされることになる。別のグループのセクタは消去されて書き込まれる準備ができていることになり、これは、不揮発性メモリの場合はプログラムされる準備ができているものとして参照されることができる。データのほとんどが変更されておらず、小さな部分がほとんどの変更を受けている場合に対して保護するために、最も古いデータを有するセクタが消去される必用があるときに必要とされることになる大量の更新のために、４つのセクタを準備完了に維持しておくことが必要と考えられる。
【００１４】
図２には、セクタが書き込みおよび消去されるときのＥフラッシュメモリ２４の内容の進行が示されている。Ｅフラッシュ２４は、セクタ３０、３２、３４、３６、３８、４０、４２、４４、４６、４８、５０、５２、５４、５６、および５８（３０〜５８）を含む。時刻ｔ０は、セクタ３６、３８、４０、４２、４４、４６、４８、５０、５２，および５４が完全にデータで満たされており、セクタ５６がフル／アクティブ状態にある、動作中の状態である。セクタ５８、３０、３２および３４は消去されて書き込まれる準備ができている。セクタ５８は次に書き込まれることになる。この例における時刻ｔ０は、セクタ５６の書き込みの間の、圧縮を開始すべきか否かについて決定が為されるべき時刻である。これは、次の書き込みが、この場合はセクタ５８である、次のセクタにおけるものであることになる状況であり得る。この場合における圧縮は、セクタを消去するプロセスであり、これは、書き込まれるために利用可能な空間を有するセクタ内に有効データを書き込むことを含む。この場合、次に消去されることになるセクタはセクタ３６であり、これは、最も長い時間をさかのぼって書き込まれたデータを有するために最も古いセクタであると考えられる。セクタ３８内のデータは、セクタ３６内に書き込まれたデータよりも最近に書き込まれたデータを有する。従って、セクタ３６内に存在する有効データは、まだ利用可能な空間がある場合はセクタ５６内に、または利用可能な空間を有する次のセクタとしてセクタ５８内に書き込まれる必要があることになる。時刻ｔ０におけるこの例について図２に示されるように、最も古いセクタ、セクタ３６は２５個の有効レコードを有し、次に古いセクタ、セクタ３８は５０個の有効レコードを有する。セクタ３６および３８内のこれらの２５個および５０個の有効レコードは、それぞれ、定住レコード（ｓｅｄｅｎｔａｒｙ  ｒｅｃｏｒｄ）と呼ばれる場合がある。セクタ３０〜５８は各々２５６レコードの容量を有しており、２５レコードおよび５０レコードは極めて動的なレコードの例である。セクタ３６を消去するために、２５レコードのみが書き込まれる必要があることになり、同様にセクタ３８を消去するためには５０レコードのみが書き込まれる必要があることになる。セクタ５６が完全に書き込まれていると想定するこの場合では、Ｅフラッシュ２４内に書き込まれるために利用可能な４つのセクタが存在し、これは、時刻ｔ０における現在のフラッシュ空間内に利用可能なアドレスが１０２４（４×２５６）だけ残っていることを意味し、これは利用可能な空間と呼ばれる場合がある。極めて動的なデータのこの事例では、利用可能な空間の量を所与としてセクタ３６の圧縮を開始する必要はない。換言すれば、極めて動的なデータを所与とすると、必要よりも多くの利用可能な空間がある。動的アクティビティを計算する方法は、消去するために考慮されているアドレス空間内の使用されるレコードアドレスの総数を有効レコードの数で除算することである。従って、セクタ３６について、時刻ｔ０の場合、動的アクティビティは２５６／２５である。動的アクティビティが高くなるほど、数も大きくなる。
【００１５】
時刻ｔ１において示されるように、セクタ５８はフル／アクティブセクタになっているが、高い動的アクティビティに起因して、最も古いセクタ、セクタ３６内に存在する有効データのいずれもセクタ５８内に書き込まれていない。従って、圧縮のプロセスは動的アクティビティならびにセクタ３０、３２、および３４の利用可能な空間に起因して遅延されており、開始されていない。動作が継続するにつれて、セクタ５８は、最終的に、圧縮が最も古いセクタに対して開始されるべきか否かについて決定が為される別の決定時刻に達するまでにデータ記入（ｆｉｌｌｉｎｇ  ｕｐ）を開始する。さらに動作中、セクタ３６および３８を含むさまざまなセクタ内の有効データのいくらかは更新されている場合があり、それらのセクタ内の有効データも低減している。
【００１６】
時刻ｔ２には、セクタ３６および３８の、それぞれ２０および４０の有効レコードの更新を示しており、セクタ３６がここでも高い動的アクティビティに起因して圧縮を受けていないＥフラッシュ２４が示されている。このセクタ３６に受けさせない決定は、セクタ３８に関する相対的に高い動的アクティビティにも基づく。セクタ３６に圧縮を受けさせることに関する別の決定時刻に達するまで動作は継続する。
【００１７】
時刻ｔ３においては、セクタ３６が、その有効データをセクタ３２に書き込まれることにより圧縮を受けており、消去されており、現在は準備ができているものとして示しているＥフラッシュ２４が示されている。セクタ３２は現在はフル／アクティブセクタであり、セクタ５８はフルである。これは、セクタ３８内でもう５個多い有効レコードが別のセクタに対して更新されていることを示しており、それによって、現在セクタ３８は３５個の有効レコードを有する。セクタ３６が時刻ｔ０において圧縮を受けており、その後時刻ｔ３においてセクタ３８が圧縮を受けている場合、セクタ３６について５回、セクタ３８について５回の、少なくとも１０回の追加の書き込みが実行されていることになり、これは耐久性を低減する。
【００１８】
図３には、図１および図２のシステム１０およびＥフラッシュ２４に適用されるプロセスを示す流れ図６０が示されている。ステップ６２において、次のレコードの更新が実行される。これが実行された後、ステップ６４において、使用されるアドレスの数を所定のアドレス範囲内の有効レコードの数で除算することによって、動的アクティビティ（ＤＹＮ）が計算される。この１つの例は、有り得るレコードの数を最も古いセクタ内の有効レコードの数で除算することである。この決定は、レコードが書き込まれる度に、または、フル／アクティブセクタが満たされるときのような何らかの他の時刻について為されることができる。さらに、ステップ６４において、現在のＥフラッシュ空間内の残りのアドレスの量（ＲＥＭＡＩＮ）が計算され、これは、消去することなどによってより多くの空間を取得することなく、書き込まれるのに利用可能な空間の量である。これは、フル／アクティブセクタに加えて準備ができているセクタ内にレコードを書き込むために利用可能な空間の量であることができる。ステップ６６において、圧縮を開始するか、または更新を継続するかについて決定が為される。ＤＹＮがしきい値Ａを超え、かつＲＥＭＡＩＮがしきい値Ｂを超える場合、更新は継続される。ＤＹＮがどれだけ大きいかにかかわらず、利用可能な空間の量が非常に少なく、それによって圧縮を開始しなければならない時刻があることになる。図３において示されるように、しきい値Ｂはビジネスアクティビティ（ｂｕｓｉｎｅｓｓ  ａｃｔｉｖｉｔｙ）の関数であるレベルにセットされることができる。代替的に、しきい値Ａが利用可能な空間の関数であるレベルにセットされることができる。利用可能な空間は十分に大きくすることができ、それによって、有り得る最小の動的アクティビティでさえ、圧縮の開始を必要としないことになる。このＤＹＮおよびＲＥＭＡＩＮの二重基準を達成する方法は、ルックアップテーブルを用いるものである。所与の利用可能な空間について、Ａのしきい値はルックアップテーブル内に見出されることになる。同様に、所与の動的アクティビティについて、Ｂのしきい値はルックアップテーブル内に見出されることになる。
【００１９】
動的アクティビティを検知する別の方法は、圧縮を受けていることを考慮した特定のアドレス範囲におけるアドレスの総数と比較した、その範囲にわたる更新された異なるアドレスの数である。
【００２０】
すなわち、ＮＶＭを有するエミュレーションメモリにおいて動的アクティビティを考慮に入れることによって、ＮＶＭの耐久性が向上されることができることが分かる。動的アクティビティが、そうでなければ永久的に為されている場合がある圧縮を遅延させることを可能にする状況があり、その結果、圧縮の実行の遅延から生じる耐久性の向上がもたらされる。
【００２１】
ここまでで、行われる際に大きな遅延を引き起こす大量のデータ伝送および完全消去プロセスを一斉に行う必要なしに、更新を実行するために利用可能な十分な空間があることを確実にするために、必要に応じ、各更新サイクルに関してデータ伝送の一部または書き込みプロセスの一部を行うことを可能にする方法が提供されたことが認識されるべきである。
【００２２】
方法であって、情報を記憶するための複数のセクタを有するエミュレーションメモリを有するとともに制御回路を有するシステムを使用する、方法が記載されている。方法は、使用されるアドレスの数をエミュレーションメモリの所定のアドレス範囲内の有効レコードの数で除算する計算を行って分数を算出することを含む。方法は、使用されるアドレスの数を上記エミュレーションメモリの所定のアドレス範囲内の有効レコードの数で除算する計算を行って分数を算出することをさらに含む。方法は、上記エミュレーションメモリの現在使用されている空間内の情報を記憶するために使用されていない残りのアドレスの量を計算することをさらに含む。方法は、計算された上記分数が第１の所定の数よりも大きいか否かを判定すること、および、上記残りのアドレスの量が第２の所定の数よりも大きいか否かを判定することをさらに含む。方法は、上記分数が上記第１の所定の数よりも大きく、かつ上記残りのアドレスの量が上記第２の所定の数よりも大きい場合には、上記エミュレーションメモリの上記現在使用されている空間を使用して任意の後続の更新要求に応答することをさらに含み、そうでない場合は上記エミュレーションメモリの圧縮が必要であると判断し、有効データを上記エミュレーションメモリの利用可能なセクタにコピーする。方法は、上記エミュレーションメモリの上記複数のセクタを２つのセクタとして実装することであって、上記２つのセクタのうちの第１のセクタは、利用されているアドレス指定済みの空間から成る第１の部分および残りのアドレスから成る第２の部分を有する、上記エミュレーションメモリの上記現在使用されている空間であり、上記２つのセクタのうちの第２のセクタは空の記憶空間である、実装することをさらに含むことができる。方法は、多重セクタによって、上記エミュレーションメモリの上記複数のセクタを実装することであって、上記エミュレーションメモリの第１の部分はデータを保持していない複数のセクタを有し、上記エミュレーションメモリの上記複数のセクタのうちの１つまたは複数は上記エミュレーションメモリの上記現在使用されている空間として割り当てられており、上記現在使用されている空間の一部は、情報を記憶するために使用されていない上記残りのアドレスの量である、実装することをさらに含むことができる。方法は、上記第１の所定の数を、現在情報を記憶していない上記エミュレーションメモリの上記現在使用されている空間内の上記残りの有効アドレスの量の関数である数として決定することをさらに含むことができる。方法は、上記第２の所定の数を、上記計算された分数の関数である数として決定することをさらに含むことができる。方法は、上記エミュレーションメモリ内のレコードの更新を求める要求に応答して上記使用されるアドレスの数を上記有効レコードの数で除算する計算を行うとともに、上記残りのアドレスの量を計算することをさらに含むことができる。方法は、上記圧縮が、上記複数のセクタのうちの最も古いフルセクタを消去すること、および、上記消去に続いて有効情報を上記最も古いフルセクタにコピーすることをさらに含むことをさらに特徴とすることができる。
【００２３】
さらに、エミュレーションメモリおよびメモリコントローラを含むシステムが記載されている。エミュレーションメモリは、情報を順次記憶するための複数のセクタを有する。上記メモリコントローラは上記エミュレーションメモリに結合され、使用されるアドレスの数を上記エミュレーションメモリの所定のアドレス範囲内の有効レコードの数で除算する計算を行って分数を算出し、上記エミュレーションメモリの現在使用されている空間内の情報を記憶するために使用されていない残りのアドレスの量を計算し、計算された分数の割合が第１の所定の数よりも大きいか否かを判定し、上記残りのアドレスの量が第２の所定の数よりも大きいか否かを判定するためのものであり、上記分数の割合が上記第１の所定の数よりも大きく、かつ上記残りのアドレスの量が上記第２の所定の数よりも大きい場合には、上記メモリコントローラは、上記エミュレーションメモリの上記現在使用されている空間を使用して任意の後続の更新要求に応答し、そうでない場合は上記エミュレーションメモリの圧縮が必要であると判断し、有効データを上記エミュレーションメモリの利用可能なセクタにコピーする。上記エミュレーションメモリは２つのセクタをさらに含むことができ、上記２つのセクタのうちの第１のセクタは、利用されているアドレス指定済みの空間から成る第１の部分および残りのアドレスから成る第２の部分を有する、上記エミュレーションメモリの上記現在使用されている空間であり、上記２つのセクタのうちの第２のセクタは空の記憶空間である。上記エミュレーションメモリは多重セクタをさらに含み、上記エミュレーションメモリの第１の部分はデータを保持していない複数のセクタを有し、上記エミュレーションメモリの上記複数のセクタのうちの１つまたは複数は上記エミュレーションメモリの上記現在使用されている空間として割り当てられており、上記現在使用されている空間の一部は、情報を記憶するために使用されていない上記残りのアドレスの量である。システムは、上記メモリコントローラが、上記第１の所定の数を、現在情報を記憶していない上記エミュレーションメモリの上記現在使用されている空間内の上記残りの有効アドレスの量の関数である数として決定することをさらに特徴とすることができる。システムは、上記メモリコントローラが、上記第２の所定の数を、上記分数の割合の関数である数として決定することをさらに特徴とすることができる。システムは、上記メモリコントローラが、上記エミュレーションメモリ内のレコードの更新を求める要求に応答して上記使用されるアドレスの数を上記有効レコードの数で除算する計算を行い、上記残りのアドレスの量を計算することをさらに特徴とすることができる。システムは、上記メモリコントローラが、上記圧縮を、上記複数のセクタのうちの最も古いフルセクタを消去すること、および、上記消去に続いて有効情報を上記最も古いフルセクタにコピーすることによって実行することをさらに特徴とすることができる。システムは、上記メモリコントローラが、上記エミュレーションメモリ内のレコードの更新を求める要求に応答して上記計算を実行することをさらに特徴とすることができる。
【００２４】
方法であって、ランダムアクセスメモリ、情報を記憶するための複数のセクタを有するエミュレーションメモリ、およびメモリコントローラを有するシステムを使用する、方法も記載されている。方法は、第１の所定の回数を超えて更新された、上記エミュレーションメモリの所定のアドレス範囲内のレコードの数を計算することを含む。方法は、情報を記憶するために使用されていない、上記エミュレーションメモリの現在使用されている空間内の残りのアドレスの量を計算することをさらに含む。方法は、上記レコードの数が第２の所定の数よりも大きいか否かを判定すること、および、上記残りのアドレスの量が第３の所定の数よりも大きいか否かを判定することをさらに含む。方法は、上記レコードの数が上記第２の所定の数よりも大きく、かつ上記残りのアドレスの量が上記第３の所定の数よりも大きい場合には、上記エミュレーションメモリの上記現在使用されている空間を使用して任意の後続の更新要求に応答することをさらに含み、そうでない場合は上記エミュレーションメモリの圧縮が必要であると判断し、有効データを上記エミュレーションメモリの利用可能なセクタにコピーする。方法は、上記エミュレーションメモリの上記複数のセクタを２つのセクタとして実装することであって、上記２つのセクタのうちの第１のセクタは、利用されているアドレス指定済みの空間から成る第１の部分および残りのアドレスから成る第２の部分を有する、上記エミュレーションメモリの上記現在使用されている空間であり、上記２つのセクタのうちの第２のセクタは空の記憶空間である、実装することをさらに含むことができる。方法は、多重セクタによって、上記エミュレーションメモリの上記複数のセクタを実装することであって、上記エミュレーションメモリの第１の部分はデータを保持していない複数のセクタを有し、上記エミュレーションメモリの上記複数のセクタのうちの１つまたは複数は上記エミュレーションメモリの上記現在使用されている空間として割り当てられており、上記現在使用されている空間の一部は、情報を記憶するために使用されていない上記残りのアドレスの量である、実装することをさらに含むことができる。方法は、上記第２の所定の数を、現在情報を記憶していない上記エミュレーションメモリの上記現在使用されている空間内の上記残りの有効アドレスの量の関数である数として決定することをさらに含むことができる。方法は、上記第３の所定の数を、第１の所定の数を超えて更新された、エミュレーションメモリ内のレコードの一部の関数である数として決定することをさらに含むことができる。方法は、上記エミュレーションメモリ内のレコードの更新を求める要求に応答して上記レコードの数を計算するとともに、上記残りのアドレスの量を計算することをさらに含むことができる。
【００２５】
本発明を実装する装置は、大部分について、当業者に既知の電子コンポーネントおよび回路から構成されているため、本発明の基礎となる概念の理解および評価のために、ならびに本発明の教示を分かりにくくせず当該教示から注意を逸らさせないために、回路の詳細は上記で例示されているように必要と考えられる範囲を超えては説明されない。
【００２６】
さらに例として、１つの実施形態では、システム１０の例示される要素は、単一の集積回路上または同じデバイス内に位置する回路である。代替的には、システム１０は、互いに相互接続される任意の数の別個の集積回路または別個のデバイスを含んでもよい。例えば、ＥＥＥメモリシステム１８は、プロセッサ１４と同じ集積回路上に位置してもよく、または別個の集積回路上に位置してもよい。メモリシステム１８は、埋め込みメモリシステムまたは独立型メモリシステムであってもよい。他のモジュール（複数の場合もあり）１６も、別個の集積回路またはデバイス上に位置してもよい。
【００２７】
さらに、上述の動作の機能間の境界は例示にすぎないことを当業者は認識しよう。複数の動作の機能を単一の動作に組み合わせることができ、かつ／または単一の動作の機能を追加の動作に分散させることができる。その上、代替的な実施形態は、特定の動作の複数のインスタンスを含んでもよく、動作の順序はさまざまな他の実施形態においては変更してもよい。
【００２８】
本明細書において、具体的な実施形態を参照して本発明を説明したが、添付の特許請求の範囲に明記されているような本発明の範囲から逸脱することなくさまざまな改変および変更を為すことができる。例えば、特定のメモリサイズ、セクタサイズ、およびレコードサイズが一例として説明されたが、他のサイズが使用されてもよい。従って、本明細書および図面は限定的な意味ではなく例示とみなされるべきであり、すべてのこのような改変が本発明の範囲内に含まれることが意図されている。本明細書において具体的な実施形態に関して記載されているいかなる利益、利点、または問題に対する解決策も、任意のまたはすべての請求項の重要な、必要とされる、または基本的な特徴または要素として解釈されるようには意図されていない。
【００２９】
本明細書において使用される場合、「結合されている」という用語は、直接結合または機械的結合に限定されるようには意図されていない。
別途記載されない限り、「第１の」および「第２の」のような用語は、そのような用語が説明する要素間で適宜区別するように使用される。従って、これらの用語は必ずしも、このような要素の時間的なまたは他の優先順位付けを示すようには意図されていない。
【図１】
2013525917.tif 000003
【図２】
2013525917.tif 000004
【図３】
2013525917.tif 000005
【国際調査報告】
2013525917.tif 000006
2013525917.tif 000007
2013525917.tif 000008