(57)【特許請求の範囲】
【請求項１】
休止前の動作状態でオペレーティングしている少なくとも１つのアプリケーションに関係するアプリケーション生成データを記憶するための揮発性メモリと、
複数のページを有する不揮発性メモリ（ＮＶＭ）と、
制御回路と、
を備えた電子装置であって、
前記制御回路は、
休止前の動作状態でオペレーティング中のアプリケーションが休止状態に入っていく通知を受信し、
休止状態に入っていくアプリケーションに関係する前記アプリケーション生成データを一時データとして前記不揮発性メモリに記憶する、
ように構成され、
前記制御回路が、前記電子装置の唯一のブートサイクルのために要求されるデータを含む前記一時データを記憶する前記複数のページの少なくとも１つのページに一時マーカを記憶し、前記アプリケーション生成データが、休止状態中の前記アプリケーションを休止前の動作状態に戻ることを可能にするデータを含む、ことを特徴とする前記電子装置。
【請求項２】
前記電子装置がさらに、
前記一時データのためのメタデータを準備し、
前記メタデータ及び前記一時マーカを、前記一時データを記憶する前記ページの少なくとも１つのメタデータフィールドに記憶することを特徴とする請求項１に記載の電子装置。
【請求項３】
前記一時マーカが、所定のビットパターンを有することを特徴とする請求項１に記載の電子装置。
【請求項４】
前記複数のページがブロックに編成され、
前記制御回路が、さらに、
前記一時データを記憶するための、前記ブロックの１つを選択し、
前記一時マーカを、前記選択したブロックの少なくとも１つのページに記憶する、
ことを特徴とする請求項１に記載の電子装置。
【請求項５】
前記制御回路が、さらに、前記選択したブロックの前記ページ全てに前記一時マーカを記憶することを特徴とする請求項４に記載の電子装置。
【請求項６】
前記制御回路が、さらに、
前記揮発性メモリが低メモリ状態であることを識別し、
前記低メモリ状態の識別に応答して、前記一時データを前記不揮発性メモリに記憶する、
ことを特徴とする請求項１に記載の電子装置。
【請求項７】
前記制御回路が、さらに、前記一時データを記憶するためにより低性能のページを選択することを特徴とする請求項１に記載の電子装置。
【請求項８】
前記制御回路が、さらに、前記一時データを記憶するためにより高速のプログラミング技術を選択することを特徴とする請求項１に記載の電子装置。
【請求項９】
複数のページを有する不揮発性メモリにデータを記憶する方法であって、
休止前の動作状態でオペレーティングしている少なくとも１つのアプリケーションに関係するアプリケーション生成データとして一時データを識別するステップと、
前記データのための、一時マーカを有するメタデータを準備するステップと、
休止前の動作状態でオペレーティング中のアプリケーションが休止状態に入っていく通知を受信するステップと、
前記データに関し、一時マーカを含むメタデータを準備するステップと、
休止状態に入っていくアプリケーションに関係する前記アプリケーション生成データ及び前記メタデータを一時データとして前記不揮発性メモリの少なくとも１つのページに記憶するステップであって、前記一時データは、前記不揮発性メモリを備える電子装置の唯一のブートサイクルのために要求されるデータを含み、前記アプリケーション生成データは、休止状態中の前記アプリケーションを休止前の動作状態に戻ることを可能にするデータを含むことを特徴とする方法。
【請求項１０】
前記データを、書き込み要求によってファイルシステムから不揮発性メモリインターフェイスに提供するステップをさらに含み、
前記識別ステップが、前記書き込み要求に応答して前記不揮発性メモリインターフェイスにより実行されることを特徴とする請求項９に記載の方法。
【請求項１１】
前記一時マーカが、少なくとも１ビットの所定値を有することを特徴とする請求項９に記載の方法。
【請求項１２】
前記準備ステップが、前記データの論理アドレス対物理アドレスマッピングを決定するステップをさらに含む請求項９に記載の方法。
【請求項１３】
前記識別ステップに基づいて、前記不揮発性メモリの前記少なくとも１つのページを選択するステップをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１４】
前記不揮発性メモリに記憶するための追加データを、一時データではないものとして識別するステップと、
前記追加データのための、一時マーカを含まない追加メタデータを準備するステップと、
前記追加データ及び前記追加メタデータを前記不揮発性メモリの他の少なくとも１つのページに記憶するステップと、
をさらに含むことを特徴とする請求項９に記載の方法。
【請求項１５】
前記識別ステップが、ハードウェアベースの休止状態データ、アプリケーション生成データ、アプリケーションベースの休止状態データ、及び仮想メモリ方式のためのデータのうちの少なくとも１つを前記データが含むことを識別するステップを含む、
ことを特徴とする請求項９に記載の方法。
【請求項１６】
不揮発性メモリと、
電子装置の起動時に前記不揮発性メモリのためのメタデータテーブルを作成する制御回路とを備えた電子装置であって、
前記メタデータテーブルの作成において、
前記不揮発性メモリの複数のページを読み込むこと、ここで、少なくとも１つのページにおいて、当該ページに関連するデータが、ブートアップの前に実行していたプログラムをもはや要求しない休止状態のデータであることを知らせる一時マーカを含んでおり、
前記一時マーカを含む少なくとも１つのページを前記メタデータテーブルから削除すること、
が行われることを特徴とする電子装置。
【請求項１７】
前記制御回路が、さらに、前記少なくとも１つのページを無効としてマークすることにより前記メタデータテーブルを作成する請求項１６に記載の電子装置。
【請求項１８】
前記制御回路が、さらに、前記不揮発性メモリの一時マーカを含まない有効なページを前記メタデータテーブルに追加することにより前記メタデータテーブルを作成する請求項１６に記載の電子装置。
【請求項１９】
前記メタデータテーブルは、どの論理アドレスがファイルシステムによる使用のために現在割り当てられているかを示すテーブルを含む請求項１６に記載の電子装置。
【請求項２０】
前記メタデータテーブルは、論理アドレス対物理アドレスマッピングを含む請求項１６に記載の電子装置。
【発明の詳細な説明】
【背景技術】
【０００１】
電子装置では、大容量記憶のためにＮＡＮＤフラッシュメモリ及びその他の種類の不揮発性メモリ（「ＮＶＭ」）が広く使用されている。例えば、ポータブルメディアプレーヤなどの家庭用電化製品は、音楽、ビデオ、及びその他のメディアプログラムを記憶するためにＮＡＮＤフラッシュメモリを含むことが多い。通常、このようなデータは、およそ数日間、数か月間、さらには数年間などの長期にわたって記憶されることを意図されている。
【０００２】
電子装置では、ＮＶＭを長期記憶以外の目的で使用することもできる。例えば、電子装置は、低電力の休止状態中にデータを失うことなく揮発性メモリの電源を落とせるように、揮発性メモリからのデータをＮＶＭに一時的に記憶することができる。別の例として、ＮＶＭを仮想メモリ方式で使用して、電子装置の揮発性メモリの見かけのサイズを増やすこともできる。
【発明の概要】
【課題を解決するための手段】
【０００３】
フラッシュメモリなどの不揮発性メモリ内の短期的記憶向けのデータを処理するためのシステム及び方法を提供する。短期的記憶を長期データとは別様に処理できるようにすることにより、メモリの管理効率及びＮＶＭの有効性を高めることができる。
【０００４】
短期的記憶は、オペレーティングシステムの現在のインスタンス中にしか必要とされず、電子装置が一旦シャットダウン又は再起動すると（又はそれよりも早く）もはや有用でなくなるデータをＮＶＭに記憶することを含むことができる。このデータは、一時的に必要なものではあるが、永続的不揮発性媒体に記憶されるので、「不揮発性一時データ」又は「ＮＶ一時データ」と呼ぶことができる。ＮＶ一時データは、例えば、ハードウェアベースの休止状態データ、アプリケーション生成データ、アプリケーションベースの休止状態データ、スワップファイル、及びその他の一時ファイルを含むことができる。
【０００５】
いくつかの実施形態では、ＮＶ一時データを記憶する際に、電子装置が、このＮＶ一時データに一時マーカを付けることができる。例えば、電子装置は、ＮＶ一時データを記憶したＮＶＭのページごとに、そのページのメタデータに一時マーカを含めることができる。或いは、電子装置は、ＮＶ一時データを記憶しているブロックの少なくとも１つのページ内に一時マーカを提供することができる。これにより、電子装置が、複数の装置の起動にわたって必要とされる情報とＮＶ一時データを区別できるようになる。
【０００６】
電子装置の起動中、この電子装置を、メタデータテーブルを構築することなどの様々な始動手順を実行するように構成することができる。メタデータテーブルは、例えば、ファイルシステムにより発行されたどの論理アドレス（論理ブロックアドレス（「ＬＢＡ」）など）が現在割り当てられているかを示すテーブル、及び／又は論理アドレス対物理アドレスマップを含むことができる。電子装置は、ＮＶＭのページをスキャンして、各ページが一時マーカを含むかどうか（或いは、各ページが、ＮＶ一時データを記憶するものとしてマークされたブロック内に存在するかどうか）を判定することにより、メタデータテーブルを作成することができる。あるページが一時マーカを含む場合、このページに含まれるデータは、電子装置の前回の起動時にのみ有用であって現在の起動には不要である。従って、電子装置は、このページに無効なデータを有するものとしてマークを付け、このページ（及びその記憶されたメタデータ）をメタデータテーブルから削除することができる。起動時にこのようなクリーンアップ動作を行うことにより、電子装置は、ＮＶＭメモリ位置が最初から効率的に使用されることを確実にすることができる。すなわち、電子装置は、現在の起動サイクル中のいずれの時点においても、ガーベージコレクション又はウェアレベリング中に、もはや使用されていないＮＶ一時データを保持するための無用の動作を実行しなくなる。
【０００７】
いくつかの実施形態では、電子装置が、データがＮＶ一時データであるかどうかに基づいて、データを記憶するためのメモリ位置及び／又はプログラミング技術を選択することができる。例えば、電子装置は、ＮＶ一時データを記憶するために、それほど信頼性が高くないページ又はブロック（ハイサイクルブロックなど）などの、より低性能のメモリ位置を選択することができる。いくつかの実施形態では、電子装置が、ＮＶ一時データを記憶するために、シングルレベルセル（「ＳＬＣ」）ブロックなどの、より高速なメモリ位置又はプログラミング技術を選択することができる。
【０００８】
全体を通じて同じ参照文字が同じ部分を示す添付図面とともに以下の詳細な説明を検討すれば、本発明の上記の及びその他の態様及び利点が明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１】本発明の様々な実施形態によって構成される不揮発性メモリを有する例示的な電子装置のブロック図である。
【図２】本発明の様々な実施形態による、不揮発性一時データを記憶する例示的な不揮発性メモリ位置のグラフィック表現である。
【図３】本発明の様々な実施形態による、不揮発性一時データを記憶する例示的な不揮発性メモリ位置のグラフィック表現である。
【図４】本発明の様々な実施形態による、不揮発性メモリ内の不揮発性一時データに一時マーカを付ける例示的なプロセスのフロー図である。
【図５】本発明の様々な実施形態による、電子装置の起動時に不揮発性一時データを処理する例示的なプロセスのフロー図である。
【発明を実施するための形態】
【００１０】
図１は、例示的な電子装置１００のブロック図である。いくつかの実施形態では、電子装置１００を、（カリフォルニア州クパチーノのＡｐｐｌｅ社により市販されているｉＰｏｄ（商標）などの）ポータブルメディアプレーヤ、（Ａｐｐｌｅ社により市販されているｉＰｈｏｎｅ（商標）などの）携帯電話機、ポケットサイズ・パーソナルコンピュータ、携帯情報端末（「ＰＤＡ」）、デスクトップコンピュータ、ラップトップコンピュータ、及びその他のいずれかの好適な種類の電子装置又はシステムとすることができ、或いは電子装置１００がこれらを含むことができる。
【００１１】
電子装置１００は、システムオンチップ（「ＳｏＣ」）１１０及び不揮発性メモリ（「ＮＶＭ」）１２０を含むことができる。ＮＶＭ１２０は、フローティングゲート技術又は電荷トラップ技術に基づくＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、消去可能プログラマブルリードオンリメモリ（「ＥＰＲＯＭ」）、電気的消去可能プログラマブルリードオンリメモリ（「ＥＥＰＲＯＭ」）、強誘電体ＲＡＭ（「ＦＲＡＭ」）、磁気抵抗ＲＡＭ（「ＭＲＡＭ」）、又はこれらのいずれかの組み合わせを含むことができる。
【００１２】
ＮＶＭ１２０は、最も小さな消去可能単位である「ブロック」に編成し、最も小さなプログラミング又は読み込みできる単位であり得る「ページ」にさらに編成することができる。いくつかの実施形態では、ＮＶＭ１２０が、各々が複数のブロックを含むことができる複数の集積回路を含むことができる。対応する集積回路からのブロック（位置又はブロック番号が同じブロックなど）は、「スーパーブロック」と呼ばれる論理単位を形成することができる。ＮＶＭ１２０の各メモリ位置（ページ又はブロックなど）は、（物理ページアドレス又は物理ブロックアドレスなどの）物理アドレスを使用してアドレス指定することができる。図１には１つのＮＶＭしか示していないが、電子装置１００は、代わりに複数のＮＶＭパッケージを含むこともできる。
【００１３】
システムオンチップ１１０は、制御回路１１２、メモリ１１４、及びＮＶＭインターフェイス１１６を含むことができる。一般に、制御回路１１２は、ＳｏＣ１１０及び電子装置１００の一般的動作及び機能を制御することができる。制御回路１１２は、１又はそれ以上のプロセッサなどの、いずれかの好適な構成要素、回路、又は論理回路を含むことができる。制御回路１１２は、アプリケーション、オペレーティングシステム、又はメモリ１１４にロードされたＮＶＭドライバ（ＮＶＭドライバ１１７など）などのプログラムの制御下で動作することができる。
【００１４】
メモリ１１４は、（スタティックＲＡＭ（「ＳＲＡＭ」）、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）、同期型ダイナミックランダムアクセスメモリ（「ＳＤＲＡＭ」）、ダブルデータレート（「ＤＤＲ」）ＲＡＭなどの）ランダムアクセスメモリ（「ＲＡＭ」）、キャッシュメモリ、又はこれらのいずれかの組み合わせなどの、いずれかの好適な種類の揮発性メモリを含むことができる。いくつかの実施形態では、メモリ１１４が、制御回路１１２の一部として実装されるいずれかのプロセッサのためのメインメモリとして機能することができる。これらの及びその他の実施形態では、メモリ１１４が、あらゆる時点で（すなわち、同時に又は異なる時点で）ＮＶＭ１２０にＮＶ一時データとして記憶できるデータを記憶することもできる。上述したように、ＮＶ一時データは、オペレーティングシステムの現在のインスタンス中にしか必要とされず、電子装置１００が一旦シャットダウン又は再起動すると（又はそれよりも早く）もはや有用でなくなる、ＮＶＭに記憶されたデータを含む。
【００１５】
例えば、メモリ１１４及び／又はＮＶＭ１２０は、ＮＶ一時データをハードウェアベースの休止状態データの形で記憶することができる。ハードウェアベースの休止状態データは、ハードウェアベースの休止状態（メモリ１１４の電源が落ちた低電力状態など）に入ることに応答してメモリ１１４からＮＶＭ１２０へ転送されるデータを含むことができる。従って、ハードウェアベースの休止状態データは、電子装置１００が休止状態から覚めたときに休止前の動作状態（低電力状態に入る前の状態など）に戻れるようにするデータを含むことができる。このハードウェアベースの休止状態データは、ハードウェアとソフトウェアの両方に関する装置の現在の動作状態を示すことができる。例えば、装置の状態データは、いずれのプログラムがアクティブに実行されているか、又はより詳細には、いずれのメディア資産（楽曲などの）が再生中であるか、又はユーザが現在アクセスしているグラフィックユーザインターフェイス内の位置を指定することができる。ユーザは、もしハードウェアの休止中に電子装置１００をシャットダウンした場合、電子装置１００が休止前の動作状態に戻ることを期待していないので、このようなハードウェアベースの休止状態データは、ＮＶ一時データの一例である。
【００１６】
いくつかの実施形態では、メモリ１１４及び／又はＮＶＭ１２０が、アプリケーション生成データをＮＶ一時データとして記憶することができる。アプリケーション生成データは、ゲーム用アプリケーション内の現在のゲームに関するデータなどの、アプリケーションに関連する又はアプリケーションにより生成されるあらゆる一時的に有用なデータを含むことができる。いくつかの実施形態では、アプリケーションが、アプリケーション生成データの一時的内容に関する指示をオペレーティングシステム及びファイルシステムに提供し、最終的にこのデータをＮＶ一時データとしてＮＶＭ１２０に記憶できるようにすることができる。
【００１７】
いくつかのシナリオでは、メモリ１１４及び／又はＮＶＭ１２０を使用して、ＮＶ一時データをアプリケーションベースの休止状態データの形で記憶することができる。アプリケーションベースの休止状態データは、特定のアプリケーション又はプログラムが休止状態に入ることに応答してメモリ１１４からＮＶＭ１２０へ転送されるアプリケーション生成データなどのデータを含むことができる。電子装置１００は、メモリ１１４内の空間が少なくなっていてアプリケーションがアクティブに使用されていないときに、休止状態にするためのアプリケーションを選択して空間を確保することができる。従って、アプリケーションベースの休止状態データは、電子装置１００が休止状態のアプリケーションを休止前の動作状態に戻せるようにするデータを含むことができる。ユーザは、もし電子装置１００を再起動した場合、休止状態のアプリケーションが正確な以前の状態に戻ることを期待していないので、アプリケーションベースの休止状態データは、ＮＶ一時データの別の例である。
【００１８】
これらの及びその他のシナリオでは、メモリ１１４及び／又はＮＶＭ１２０を使用して、ＮＶ一時データを仮想メモリ方式に関連して記憶することができる。例えば、アプリケーション生成データ、アプリケーションベースの休止状態データ、又は１又はそれ以上のアプリケーションにより使用される他のいずれかのデータを、メモリ１１４からＮＶＭ１２０内の「スワップファイル」又は「ページファイル」へ転送することができる。この場合、メモリ１１４から、ＮＶＭ１２０に記憶されたファイル内にデータをページ化して、これにより空間が必要な場合にメモリ１１４内の空間を確保することができる。メモリ１１４とＮＶＭ１２０の間でＮＶ一時データを運ぶために仮想メモリ方式で使用する他のファイルタイプも検討することができる。一般に、仮想メモリ方式で使用するデータは、電子装置１００が一旦シャットダウンすると必要でなくなるので、スワップファイルは、ＮＶ一時データの別の例である。
【００１９】
メモリ１１４及び／又はＮＶＭ１２０は、通常はＵＮＩＸベースのシステム上の「一時ファイル」に記憶されるいずれかのデータなどの、他のいずれかの好適な種類のＮＶ一時データを記憶することができる。例えば、ＮＶ一時データは、ＮＶＭ１２０上の一時ファイルに記憶された、１つのプログラム又はアプリケーションが別のプログラム又はアプリケーションにデータを転送するために作成するデータを含むことができる。別の例として、ＮＶ一時データは、ＮＶＭ１２０上の一時ファイルに記憶された、大きすぎてメモリ１１４に収まらない、又はメモリ１１４内の所定の空間量を超える空間を占める短期データを含むことができる。
【００２０】
ＳｏＣ１１０の構成要素（メモリ１１４など）がＮＶＭ１２０との間で情報を受け渡しできるようにするために、ＳｏＣ１１０は、ＮＶＭインターフェイス１１６を含むことができる。ＮＶＭインターフェイス１１６は、ＮＶＭ１２０とＳｏＣ１１０の非ＮＶＭ固有の構成要素との間のインターフェイス又はドライバとして機能するように構成されたハードウェア、ソフトウェア、及びファームウェアのあらゆる好適な組み合わせを含むことができる。例えば、ＮＶＭインターフェイス１１６は、オペレーティングシステム及びファイルシステムがＮＶＭ１２０に間接的にアクセスできるようにするソフトウェア／ファームウェアインターフェイスを提供するためのＮＶＭドライバ１１７を含み、これによりオペレーティングシステム及びファイルシステムが、ＮＶ一時データをＮＶＭ１２０に記憶し又はここから検索するための読み込み又は書き込み要求を発行できるようにすることができる。ＮＶＭインターフェイス１１６は、バスコントローラ１１８をさらに含むことができ、このバスコントローラ１１８は、ＮＶＭドライバ１１７がＮＶＭ１２０の（データレートなどの）バス規格を使用してＮＶＭ１２０にアクセスできるようにするいずれかの好適なハードウェア構成要素を含むことができる。
【００２１】
ＮＶＭインターフェイス１１６は、ガーベージコレクション、ウェアレベリング、及び不良ブロック管理などの、ＮＶＭ１２０のメモリ位置を管理するための様々なタスクを実行することができる。ＮＶＭドライバ１１７は、「メタデータ」を保持又は生成するように構成することができ、このメタデータは、ＮＶＭ１２０及びＮＶＭ１２０内のメモリ位置を管理するためにＮＶＭドライバ１１７が使用するいずれのメモリ管理データであってもよい。ＮＶＭドライバ１１７は、ファイルシステムにより発行されたいずれの論理アドレス（論理ブロックアドレス（「ＬＢＡ」）など）が現在使用のために割り当てられているかを示すテーブル、及び／又はＮＶＭ１２０の論理アドレスと物理アドレスの間のマッピングなどの、メタデータテーブル又はマッピングを保持するように構成することができる。読み込み又は書き込み要求時には、ファイルシステムによって論理アドレスが発行され、ＮＶＭドライバ１７０は、実際にＮＶＭ１２０の物理的メモリ位置に対応する異なる物理アドレスにこの論理アドレスをマッピングすることができる。従って、ＮＶＭドライバ１１７は、ファイルシステムからの読み込み及び書き込み要求を正しく処理するためにメタデータテーブルを保持することができる。
【００２２】
図１には、ＮＶＭインターフェイス１１６を、完全にＳｏＣ１１０上に実装された形で示している。いくつかの実施形態では、ＮＶＭインターフェイス１１６の構成要素のいくつか、及びＮＶＭドライバ１１７の機能のいくつかを、例えば、ＮＶＭ１２０に含まれる別個のメモリコントローラ（フラッシュコントローラなど）によって実装及び実行することができる。従って、ＮＶＭインターフェイス１１６又はＮＶＭに関する機能についてのあらゆる説明は、ＳｏＣ１１０上の構成要素、又はここで実行される動作に限定されるものではないと理解されたい。
【００２３】
ＮＶＭインターフェイス１１６は、ファイルシステムから書き込み要求を受け取って、様々な種類のデータのいずれかを記憶することができる。例えば、ファイルシステムは、楽曲及びビデオなどのメディア資産を無期限に記憶するようにＮＶＭインターフェイス１１６に指示することができる。他のシナリオでは、ファイルシステムが、ハードウェアベースの休止状態データ、アプリケーション生成データ、アプリケーションベースの休止状態データ、スワップファイル、又はその他の一時ファイルなどのＮＶ一時データをＮＶＭ１２０に記憶するようにＮＶＭインターフェイス１１６に指示することができる。ＮＶ一時データの予想寿命（すなわち、電子装置１００の１回の起動サイクル）は、このように他の形式のデータ（すなわち、電子装置１００の複数回の起動サイクル）とは異なるので、ＮＶＭインターフェイス１１６を、ＮＶＭ１２０内のメモリの使用効果及び効率を高めることができる異なる方法でＮＶ一時データを処理するように構成することができる。
【００２４】
いくつかの実施形態では、ＮＶＭインターフェイス１１６が、メモリ位置（すなわち、ページ、ブロック、又はスーパーブロック）を選択し、データが一時データであるかどうかに基づいて、そこにデータを記憶することができる。例えば、ＮＶＭインターフェイス１１６は、ＮＶ一時データを記憶するために、より低性能のメモリ位置を選択することができる。より低性能のメモリ位置は、高サイクルブロック（すなわち、より多くの消去サイクルを経て、従ってより激しい劣化を経験し得るブロック）などの、信頼性の低いページ又はブロックとすることができる。非一時的データは、より長期間にわたってＮＶＭ１２０内に保持されると予想されるので、ＮＶＭインターフェイス１１６は、非一時的データを記憶するために、より高性能のメモリ位置を選択することができる。
【００２５】
いくつかの実施形態では、ＮＶＭインターフェイス１１６が、ＮＶ一時データを記憶するために、より高速なメモリ位置又はプログラミング技術を選択することができる。このようにすることで、メモリ１１４とＮＶＭ１２０の間でデータを転送する合間の遅延が減少し、このことは仮想メモリ方式にとって、低電力休止状態に入る際に、又は他の様々な状況において有利となり得る。速度を改善するために、ＮＶＭインターフェイス１１６は、ＮＶ一時データを含むブロックをプログラムする際にシングルレベルセル（「ＳＬＣ」）ブロックを選択すること、又は同調分解能を下げることができる。ＮＶＭインターフェイス１１６は、プログラミングスピードを高めながら信頼性も改善するようにＳＬＣブロックを選択することができる。
【００２６】
いくつかの実施形態では、ＮＶＭインターフェイス１１６が、ＮＶＭ１２０内にＮＶ一時データを記憶する際にＮＶ一時データに「一時マーカ」を付けることにより、ＮＶ一時データを他のデータとは別様に処理することができる。このようにすることで、ＮＶＭ１２０からデータを読み直す際に、ＮＶＭインターフェイス１１６が、より長期にわたって記憶されるように意図された他の情報とＮＶ一時データを迅速かつ効率的に区別することができる。
【００２７】
図２に、ＮＶＭインターフェイス１１６が、ＮＶ一時データに一時マーカを付けることができる１つの方法を示す。図２は、図１のＮＶＭ１２０などの不揮発性メモリのブロック内のページのグラフィック表現である。図示のように、ブロックの各ページを使用して、データフィールド及び関連するメタデータフィールドを記憶することができる。各データフィールドは、ＮＶ一時データ、又はファイルシステムが記憶するように要求したいずれかの（メディア資産などの）データなどの、いずれかの好適な種類のデータを記憶することができる。同じページのメタデータフィールドは、誤り訂正符号（「ＥＣＣ」）データを含む、ＮＶＭドライバ１１７が受け取った又は生成したいずれかのメモリ管理データ、及び論理アドレスと物理アドレスの間のマッピング（ＬＢＡなど）を管理するために使用するいずれかの情報などの、データフィールド内のデータに関連するメタデータを記憶することができる。
【００２８】
メタデータフィールドは、データフィールド内のデータがＮＶ一時データであるかどうかを示すマーカを記憶するための空間を含むことができる。例えば、図２のページ１及びページ２のメタデータフィールド内の「Ｔ」（又は「一時」）マーカは、関連するデータフィールドがＮＶ一時データを含むことを示し、これに対してページ０及びブロックの最終ページのメタデータフィールド内の「Ｐ」（又は「永続」）マーカは、関連するデータフィールド内のデータが永続的で長期的な記憶を意図されたデータを含むことを示す。「Ｔ」一時マーカ及び「Ｐ」永続マーカは、いずれかの好適な方法を使用して実現することができる。すなわち、これらのマーカは、（１又はそれ以上のビットなどの）あらゆる好適な数のビットを含むことができ、「Ｔ」及び「Ｐ」マーカの実際のビット又は単語値の各々は、あらゆる好適な所定のビットパターンをとることができる。
【００２９】
いくつかの実施形態では、ＮＶＭインターフェイス１１６が、特定の「Ｐ」マーカを使用しなくてもよく、代わりに「Ｔ」一時マーカのみを使用して、ＮＶＭ１２０内のどこにＮＶ一時データが記憶されているかを示すことができる。これらの実施形態では、ページを読み直したときに、ＮＶＭインターフェイス１１６が、メタデータフィールド内に一時マーカが存在しないことに基づいて、このページのデータフィールドがＮＶ一時データを含まないと判断することができる。
【００３０】
図２には、同じブロックがＮＶ一時データと永続データをいずれも含むことができる例を示している。図３に示す実施形態などの他の実施形態では、ブロック又はスーパーブロック全体を使用して、ＮＶ一時データ又は永続データのいずれかを記憶することができる。
【００３１】
図３は、図１のＮＶＭ１２０などの不揮発性メモリの、いくつかの集積回路にわたる複数のブロックのグラフィック表現である。各列は異なる集積回路を表し、各行は異なるスーパーブロックを表す。従って、第１の集積回路（「ＩＣ  ０」）に示すように、あるブロック全体（すなわち、ブロック２）を使用してＮＶ一時データを記憶することができる。いくつかの実施形態では、ＮＶＭインターフェイス１１６が、ブロックの全ての使用ページ内に一時マーカを提供することができ、この一時マーカは、ＮＶＭインターフェイス１１６がこのブロックをＮＶ一時データを記憶しているものとして正しく解釈できることをさらに保証することができる。他の実施形態では、ＮＶＭインターフェイス１１６が、ブロック内のページの一部に一時マーカを記憶することができる。例えば、ＮＶＭインターフェイス１１６は、ブロックの最初のページにのみ一時マーカを記憶して、ＮＶＭインターフェイス１１６が、後でブロックを最初のページから最後のページまで読み込んだときに、このブロックがＮＶ一時データを含むかどうかを判断できるようにすることができる。或いは、ＮＶＭインターフェイス１１６は、（ＮＶＭインターフェイス１１６が、後でブロックを最後のページから最初のページまで読み込むことができるように）最後のページにのみ一時マーカを記憶し、又はブロックの最初のページと最後のページの両方に一時マーカを記憶することができる。
【００３２】
いくつかの実施形態では、ＮＶＭインターフェイス１１６が、ＮＶ一時データを記憶する際に使用するスーパーブロック全体を選択することができる。このことを、図３の５番目のスーパーブロック（「スーパーブロック４」）に示しており、この場合、スーパーブロック内の全てのブロックを、ＮＶ一時データを記憶するために使用することができる。単一ブロックの場合と同様に、ＮＶＭインターフェイス１１６は、スーパーブロックの使用ページ全てに一時マーカを記憶してもよく、又はしなくてもよい。代わりに、ＮＶＭインターフェイス１１６は、スーパーブロック内の各ブロックの最初のページにのみ、スーパーブロック内の各ブロックの最後のページにのみ、各ブロックの最初のページと最後のページの両方に、或いはスーパーブロック内のブロックの一部の１又はそれ以上のページに一時マーカを記憶することもできる。
【００３３】
明確さを保つために図示してはいないが、「Ｔ」一時マーカを含まないブロックは、ページの一部又は全部に「Ｐ」永続マーカを含んでもよい（又は含まなくてもよい）。さらに、５つの集積回路及び６つスーパーブロック（合計３０ブロック）を示しているが、ＮＶＭ１２０は、他のあらゆる好適な数の集積回路及びスーパーブロックを有することができると理解されたい。
【００３４】
ＮＶＭインターフェイス１１６は、ＮＶ一時データに付ける一時マーカを使用して、ＮＶ一時データを他の種類のデータとは別様に処理することができる。例えば、一時マーカは、電子装置１００の起動処理に影響を与えることができる。電子装置１００の起動時には、ＮＶＭドライバ１１７が、ＮＶＭ１２０の現在の状態を正しく判断できるように一連の初期化手順を実行することができる。この初期化手順には、いずれの論理アドレスが使用中であるかを示すテーブル及び論理アドレス対物理アドレスマッピングなどの、１又はそれ以上のメタデータテーブル又はマップの再構築を含めることができる。
【００３５】
テーブルを再構築するために、ＮＶＭドライバ１１７は、ＮＶＭ１２０の各ページを読み込んで、そのページをテーブルに含めるかどうかをページごとに判断することができる。ＮＶＭドライバ１１７は、ページに一時マーカが指定されている（又は、現在一時マーカが指定されているブロック又はスーパーブロック内にページが存在する）と判断した場合、そのページをテーブルから除外することができる。この理由は、そのページが、電子装置１００の前回の起動中にのみ有効であったＮＶ一時データを記憶するために使用されていたからである。従って、ＮＶＭドライバ１１７は、このページを無効としてマークし、（ガーベージコレクション又はウェアレベリング中などの）ある適当な時点でページを解放して、他の情報を記憶するために使用できるようにすることができる。ＮＶＭドライバ１１７は、このページを無効にし、起動時に直ちにこれをテーブルから削除するので、ＮＶＭ１２０のメモリ使用量を即座に効率的にすることができる。すなわち、ＮＶＭドライバ１１７は、現在の起動サイクル中のいずれの時点においても、ガーベージコレクション又はウェアレベリング中に、今ではもはや使用されていないＮＶ一時データを保持するための無用の動作を実行しなくなる。
【００３６】
次に図４及び図５を参照すると、本発明の様々な実施形態による例示的なプロセスのフロー図を示している。これらの例示的なプロセスのステップは、ＮＶＭドライバ１１７（図１）の制御下で動作する制御回路１１２（図１）などの、電子装置内のいずれかの好適な構成要素又は構成要素の組み合わせによって実行することができる。
【００３７】
まず図４を見てみると、ＮＶＭ１２０（図１）などのＮＶＭ内にＮＶ一時データを記憶する際にＮＶ一時データに一時マーカを付けるためのプロセス４００を示している。プロセス４００は、ステップ４０２から開始することができ、ここでファイルシステムが、ＮＶＭにデータを記憶することを決定することができる。このステップは、例えば、揮発性メモリの空間が無くなりかけているときに、又は低電力状態（すなわち、休止状態）で揮発性メモリの電源を落とす必要があるときにＮＶ一時データに対して行うことができる。
【００３８】
ステップ４０４において、ＮＶＭに記憶するためのデータをファイルシステムからＮＶＭインターフェイス（ＮＶＭドライバなど）に提供することができる。その後、ステップ４０６において、ＮＶＭインターフェイスが、このデータがＮＶ一時データとして記憶すべき一時データであるかどうかを判断することができる。いくつかの実施形態では、ＮＶＭインターフェイスが、データが一時データであるかどうかを、ファイルシステムから受け取った書き込み要求に基づいて解釈することができる。ファイルシステムは、データが一時データである旨の書き込み要求信号をアプリケーションからの指示に応答して送出することもできる。
【００３９】
ＮＶＭインターフェイスは、ステップ４０６において、データがＮＶ一時データであると判断した場合、ステップ４０８において、このデータのための一時マーカを含むメタデータを準備することができる。ステップ４０８（又は、後述するステップ４１２）におけるメタデータを準備するステップは、ＮＶＭに関連する（書き込み要求とともに受け取った）論理アドレスから物理アドレスへのマッピングを決定して保持するステップを含むことができる。不揮発性メモリ内ではデータの寿命が短いと予想されるので、ＮＶＭインターフェイスは、ステップ４１０において、より低性能の及び／又はより高速なメモリ位置（すなわち、ページ、ブロック、又はスーパーブロック）又はデータを記憶するためのプログラミング技術を選択することもできる。例えば、ＮＶＭインターフェイスは、（高サイクルブロックなどの）それほど信頼性が高くないブロック又はＳＬＣブロックを選択して、そこにデータを記憶することができる。
【００４０】
そうではなく、ステップ４０６において、ＮＶＭインターフェイスが、このデータがＮＶ一時データではないと判断した場合、ＮＶＭインターフェイスは、ステップ４１２において、一時マーカを含まない（代わりに永続マーカを含んでもよい）メタデータを準備することができる。この場合、データを不揮発性メモリ内に長期に記憶することができるので、ＮＶＭインターフェイスは、ステップ４１４において、このデータを記憶するために、より高性能の及び／又はより低速のメモリ位置又はプログラミング技術を選択することができる。例えば、ＮＶＭインターフェイスは、信頼性の高いブロック又はＭＬＣブロックを選択して、そこにデータを記憶することができる。
【００４１】
プロセス４００は、ステップ４１０又はステップ４１４からステップ４１６に続くことができ、ここでＮＶＭインターフェイスは、データ（これがＮＶ一時データであるかその他のデータであるかに関わらず）及び関連するメタデータの少なくともいくつかを、ＮＶＭの選択した１又はそれ以上のページに記憶することができる。その後、プロセス４００は、ステップ４１８において終了することができる。
【００４２】
次に図５を参照すると、電子装置の起動時にＮＶ一時データを処理するためのプロセス５００を示している。プロセス５００は、電子装置の起動時にステップ５０２において開始することができる。ステップ５０４において、ＮＶＭインターフェイスが、ＮＶＭの初期状態及びそのメモリ位置を特定できるように様々な起動手順を実行することができる。従って、最初の起動手順は、いずれの論理アドレスが使用のために割り当てられているかを示すテーブル、及び／又は有効なデータを含むＮＶＭのページごとの論理アドレス対物理アドレスのマッピングなどの、メタデータテーブルを構築するステップを含むことができる。
【００４３】
ＮＶＭインターフェイスは、ステップ５０４から、ＮＶＭの各ページを走査してこれを処理することにより、テーブルを準備することができる。具体的には、ステップ５０６において、ＮＶＭインターフェイスは、ＮＶＭから最初のページを読み込むことができ、ステップ５０８において、ＮＶＭインターフェイスは、この最初のページがそのメタデータフィールド内に一時マーカを含むかどうかを判断することができる。一時マーカを含まない場合、最初のページはＮＶ一時データを含まないので、ステップ５１０において、ＮＶＭインターフェイスは、このページをテーブルに追加することができる。例えば、ＮＶＭインターフェイスは、このページに関連する論理アドレスを（メタデータフィールドなどから）特定することができ、このページの論理アドレス対物理アドレスマッピングを適当なテーブルに追加することができ、又はファイルシステムによって論理アドレスが現在割り当てられていることをテーブル内で示すことができる。
【００４４】
そうではなく、ステップ５０８において、ＮＶＭインターフェイスが、このページがそのメタデータフィールドに一時マーカを含むと判断した場合、プロセス５００はステップ５１２に続くことができる。一時マーカは、このページがＮＶ一時データを記憶していることを示し、電子装置が再起動した今では、もはやこのＮＶ一時データは有効でないので、プロセス５００はステップ５１２に分岐することができる。ステップ５１２において、ＮＶＭインターフェイスは、メタデータテーブルの再構築という目的のために、このページ内のメタデータを無視することができる。例えば、ページ内に記憶されている論理アドレスが、この論理アドレスがファイルシステムによって使用中であることを別様に示している間、ＮＶＭインターフェイスは、ページ内の論理アドレスの存在を無視することができる。次に、ステップ５１４において、ＮＶＭインターフェイスは、このページに無効なデータを含むものとしてマークすることができる。これにより、適当な時点でＮＶＭインターフェイスがこのページ上でガーベージコレクションを実行して、他の情報を記憶するための空間を確保できるようにすることができる。
【００４５】
プロセス５００は、ステップ５１０又はステップ５１４からステップ５１６に続くことができ、ここでＮＶＭインターフェイスは、メタデータテーブルの構築が完了したかどうかを判断することができる。この判断は、未だに読み込み及び処理が完了していない追加のページが存在するかどうかを判断するステップを含むことができる。メタデータテーブルに含めることを検討する必要がある追加のページが存在する場合、プロセス５００は、ＮＶＭインターフェイスがＮＶＭの別のページを読み込めるようにステップ５０６へ戻ることができる。そうではなく、追加のページが存在しない場合、プロセス５００は、ステップ５１８において終了することができる。
【００４６】
図４及び図５のそれぞれのプロセス４００及び５００のステップは、例示にすぎないと理解されたい。本発明の範囲から逸脱することなく、ステップのいずれかを修正し、除去し、又は組み合わせることができ、また追加のステップを含めることもできる。
【００４７】
説明した本発明の実施形態は、限定ではなく例示を目的として示したものである。
【図１】
0005683023.tif 000002
【図２】
0005683023.tif 000003
【図３】
0005683023.tif 000004
【図４】
0005683023.tif 000005
【図５】
0005683023.tif 000006