説明

不揮発性一時データの処理

【課題】NANDフラッシュメモリなどの不揮発性メモリに記憶された一時データを処理するためのシステム及び方法を提供する。
【解決手段】一時データは、休止状態データ、又は電子装置の1回の起動サイクルにしか必要ないその他のいずれかのデータを含むことができる。この一時データを不揮発性メモリの1又はそれ以上のページに記憶する際に、電子装置が、これらのページの少なくとも1つにメタデータの一部として一時マーカを記憶することができる。このようにすることで、電子装置の次の起動時に、電子装置がこの一時マーカを使用して、不要なデータを含む関連ページを特定することができる。従って、電子装置は、このページを無効にしてメタデータテーブルから削除することができる。

【発明の詳細な説明】
【背景技術】
【0001】
電子装置では、大容量記憶のためにNANDフラッシュメモリ及びその他の種類の不揮発性メモリ(「NVM」)が広く使用されている。例えば、ポータブルメディアプレーヤなどの家庭用電化製品は、音楽、ビデオ、及びその他のメディアプログラムを記憶するためにNANDフラッシュメモリを含むことが多い。通常、このようなデータは、およそ数日間、数か月間、さらには数年間などの長期にわたって記憶されることを意図されている。
【0002】
電子装置では、NVMを長期記憶以外の目的で使用することもできる。例えば、電子装置は、低電力の休止状態中にデータを失うことなく揮発性メモリの電源を落とせるように、揮発性メモリからのデータをNVMに一時的に記憶することができる。別の例として、NVMを仮想メモリ方式で使用して、電子装置の揮発性メモリの見かけのサイズを増やすこともできる。
【発明の概要】
【課題を解決するための手段】
【0003】
フラッシュメモリなどの不揮発性メモリ内の短期的記憶向けのデータを処理するためのシステム及び方法を提供する。短期的記憶を長期データとは別様に処理できるようにすることにより、メモリの管理効率及びNVMの有効性を高めることができる。
【0004】
短期的記憶は、オペレーティングシステムの現在のインスタンス中にしか必要とされず、電子装置が一旦シャットダウン又は再起動すると(又はそれよりも早く)もはや有用でなくなるデータをNVMに記憶することを含むことができる。このデータは、一時的に必要なものではあるが、永続的不揮発性媒体に記憶されるので、「不揮発性一時データ」又は「NV一時データ」と呼ぶことができる。NV一時データは、例えば、ハードウェアベースの休止状態データ、アプリケーション生成データ、アプリケーションベースの休止状態データ、スワップファイル、及びその他の一時ファイルを含むことができる。
【0005】
いくつかの実施形態では、NV一時データを記憶する際に、電子装置が、このNV一時データに一時マーカを付けることができる。例えば、電子装置は、NV一時データを記憶したNVMのページごとに、そのページのメタデータに一時マーカを含めることができる。或いは、電子装置は、NV一時データを記憶しているブロックの少なくとも1つのページ内に一時マーカを提供することができる。これにより、電子装置が、複数の装置の起動にわたって必要とされる情報とNV一時データを区別できるようになる。
【0006】
電子装置の起動中、この電子装置を、メタデータテーブルを構築することなどの様々な始動手順を実行するように構成することができる。メタデータテーブルは、例えば、ファイルシステムにより発行されたどの論理アドレス(論理ブロックアドレス(「LBA」)など)が現在割り当てられているかを示すテーブル、及び/又は論理アドレス対物理アドレスマップを含むことができる。電子装置は、NVMのページをスキャンして、各ページが一時マーカを含むかどうか(或いは、各ページが、NV一時データを記憶するものとしてマークされたブロック内に存在するかどうか)を判定することにより、メタデータテーブルを作成することができる。あるページが一時マーカを含む場合、このページに含まれるデータは、電子装置の前回の起動時にのみ有用であって現在の起動には不要である。従って、電子装置は、このページに無効なデータを有するものとしてマークを付け、このページ(及びその記憶されたメタデータ)をメタデータテーブルから削除することができる。起動時にこのようなクリーンアップ動作を行うことにより、電子装置は、NVMメモリ位置が最初から効率的に使用されることを確実にすることができる。すなわち、電子装置は、現在の起動サイクル中のいずれの時点においても、ガーベージコレクション又はウェアレベリング中に、もはや使用されていないNV一時データを保持するための無用の動作を実行しなくなる。
【0007】
いくつかの実施形態では、電子装置が、データがNV一時データであるかどうかに基づいて、データを記憶するためのメモリ位置及び/又はプログラミング技術を選択することができる。例えば、電子装置は、NV一時データを記憶するために、それほど信頼性が高くないページ又はブロック(ハイサイクルブロックなど)などの、より低性能のメモリ位置を選択することができる。いくつかの実施形態では、電子装置が、NV一時データを記憶するために、シングルレベルセル(「SLC」)ブロックなどの、より高速なメモリ位置又はプログラミング技術を選択することができる。
【0008】
全体を通じて同じ参照文字が同じ部分を示す添付図面とともに以下の詳細な説明を検討すれば、本発明の上記の及びその他の態様及び利点が明らかになるであろう。
【図面の簡単な説明】
【0009】
【図1】本発明の様々な実施形態によって構成される不揮発性メモリを有する例示的な電子装置のブロック図である。
【図2】本発明の様々な実施形態による、不揮発性一時データを記憶する例示的な不揮発性メモリ位置のグラフィック表現である。
【図3】本発明の様々な実施形態による、不揮発性一時データを記憶する例示的な不揮発性メモリ位置のグラフィック表現である。
【図4】本発明の様々な実施形態による、不揮発性メモリ内の不揮発性一時データに一時マーカを付ける例示的なプロセスのフロー図である。
【図5】本発明の様々な実施形態による、電子装置の起動時に不揮発性一時データを処理する例示的なプロセスのフロー図である。
【発明を実施するための形態】
【0010】
図1は、例示的な電子装置100のブロック図である。いくつかの実施形態では、電子装置100を、(カリフォルニア州クパチーノのApple社により市販されているiPod(商標)などの)ポータブルメディアプレーヤ、(Apple社により市販されているiPhone(商標)などの)携帯電話機、ポケットサイズ・パーソナルコンピュータ、携帯情報端末(「PDA」)、デスクトップコンピュータ、ラップトップコンピュータ、及びその他のいずれかの好適な種類の電子装置又はシステムとすることができ、或いは電子装置100がこれらを含むことができる。
【0011】
電子装置100は、システムオンチップ(「SoC」)110及び不揮発性メモリ(「NVM」)120を含むことができる。NVM120は、フローティングゲート技術又は電荷トラップ技術に基づくNANDフラッシュメモリ、NORフラッシュメモリ、消去可能プログラマブルリードオンリメモリ(「EPROM」)、電気的消去可能プログラマブルリードオンリメモリ(「EEPROM」)、強誘電体RAM(「FRAM」)、磁気抵抗RAM(「MRAM」)、又はこれらのいずれかの組み合わせを含むことができる。
【0012】
NVM120は、最も小さな消去可能単位である「ブロック」に編成し、最も小さなプログラミング又は読み込みできる単位であり得る「ページ」にさらに編成することができる。いくつかの実施形態では、NVM120が、各々が複数のブロックを含むことができる複数の集積回路を含むことができる。対応する集積回路からのブロック(位置又はブロック番号が同じブロックなど)は、「スーパーブロック」と呼ばれる論理単位を形成することができる。NVM120の各メモリ位置(ページ又はブロックなど)は、(物理ページアドレス又は物理ブロックアドレスなどの)物理アドレスを使用してアドレス指定することができる。図1には1つのNVMしか示していないが、電子装置100は、代わりに複数のNVMパッケージを含むこともできる。
【0013】
システムオンチップ110は、制御回路112、メモリ114、及びNVMインターフェイス116を含むことができる。一般に、制御回路112は、SoC110及び電子装置100の一般的動作及び機能を制御することができる。制御回路112は、1又はそれ以上のプロセッサなどの、いずれかの好適な構成要素、回路、又は論理回路を含むことができる。制御回路112は、アプリケーション、オペレーティングシステム、又はメモリ114にロードされたNVMドライバ(NVMドライバ117など)などのプログラムの制御下で動作することができる。
【0014】
メモリ114は、(スタティックRAM(「SRAM」)、ダイナミックランダムアクセスメモリ(「DRAM」)、同期型ダイナミックランダムアクセスメモリ(「SDRAM」)、ダブルデータレート(「DDR」)RAMなどの)ランダムアクセスメモリ(「RAM」)、キャッシュメモリ、又はこれらのいずれかの組み合わせなどの、いずれかの好適な種類の揮発性メモリを含むことができる。いくつかの実施形態では、メモリ114が、制御回路112の一部として実装されるいずれかのプロセッサのためのメインメモリとして機能することができる。これらの及びその他の実施形態では、メモリ114が、あらゆる時点で(すなわち、同時に又は異なる時点で)NVM120にNV一時データとして記憶できるデータを記憶することもできる。上述したように、NV一時データは、オペレーティングシステムの現在のインスタンス中にしか必要とされず、電子装置100が一旦シャットダウン又は再起動すると(又はそれよりも早く)もはや有用でなくなる、NVMに記憶されたデータを含む。
【0015】
例えば、メモリ114及び/又はNVM120は、NV一時データをハードウェアベースの休止状態データの形で記憶することができる。ハードウェアベースの休止状態データは、ハードウェアベースの休止状態(メモリ114の電源が落ちた低電力状態など)に入ることに応答してメモリ114からNVM120へ転送されるデータを含むことができる。従って、ハードウェアベースの休止状態データは、電子装置100が休止状態から覚めたときに休止前の動作状態(低電力状態に入る前の状態など)に戻れるようにするデータを含むことができる。このハードウェアベースの休止状態データは、ハードウェアとソフトウェアの両方に関する装置の現在の動作状態を示すことができる。例えば、装置の状態データは、いずれのプログラムがアクティブに実行されているか、又はより詳細には、いずれのメディア資産(楽曲などの)が再生中であるか、又はユーザが現在アクセスしているグラフィックユーザインターフェイス内の位置を指定することができる。ユーザは、もしハードウェアの休止中に電子装置100をシャットダウンした場合、電子装置100が休止前の動作状態に戻ることを期待していないので、このようなハードウェアベースの休止状態データは、NV一時データの一例である。
【0016】
いくつかの実施形態では、メモリ114及び/又はNVM120が、アプリケーション生成データをNV一時データとして記憶することができる。アプリケーション生成データは、ゲーム用アプリケーション内の現在のゲームに関するデータなどの、アプリケーションに関連する又はアプリケーションにより生成されるあらゆる一時的に有用なデータを含むことができる。いくつかの実施形態では、アプリケーションが、アプリケーション生成データの一時的内容に関する指示をオペレーティングシステム及びファイルシステムに提供し、最終的にこのデータをNV一時データとしてNVM120に記憶できるようにすることができる。
【0017】
いくつかのシナリオでは、メモリ114及び/又はNVM120を使用して、NV一時データをアプリケーションベースの休止状態データの形で記憶することができる。アプリケーションベースの休止状態データは、特定のアプリケーション又はプログラムが休止状態に入ることに応答してメモリ114からNVM120へ転送されるアプリケーション生成データなどのデータを含むことができる。電子装置100は、メモリ114内の空間が少なくなっていてアプリケーションがアクティブに使用されていないときに、休止状態にするためのアプリケーションを選択して空間を確保することができる。従って、アプリケーションベースの休止状態データは、電子装置100が休止状態のアプリケーションを休止前の動作状態に戻せるようにするデータを含むことができる。ユーザは、もし電子装置100を再起動した場合、休止状態のアプリケーションが正確な以前の状態に戻ることを期待していないので、アプリケーションベースの休止状態データは、NV一時データの別の例である。
【0018】
これらの及びその他のシナリオでは、メモリ114及び/又はNVM120を使用して、NV一時データを仮想メモリ方式に関連して記憶することができる。例えば、アプリケーション生成データ、アプリケーションベースの休止状態データ、又は1又はそれ以上のアプリケーションにより使用される他のいずれかのデータを、メモリ114からNVM120内の「スワップファイル」又は「ページファイル」へ転送することができる。この場合、メモリ114から、NVM120に記憶されたファイル内にデータをページ化して、これにより空間が必要な場合にメモリ114内の空間を確保することができる。メモリ114とNVM120の間でNV一時データを運ぶために仮想メモリ方式で使用する他のファイルタイプも検討することができる。一般に、仮想メモリ方式で使用するデータは、電子装置100が一旦シャットダウンすると必要でなくなるので、スワップファイルは、NV一時データの別の例である。
【0019】
メモリ114及び/又はNVM120は、通常はUNIXベースのシステム上の「一時ファイル」に記憶されるいずれかのデータなどの、他のいずれかの好適な種類のNV一時データを記憶することができる。例えば、NV一時データは、NVM120上の一時ファイルに記憶された、1つのプログラム又はアプリケーションが別のプログラム又はアプリケーションにデータを転送するために作成するデータを含むことができる。別の例として、NV一時データは、NVM120上の一時ファイルに記憶された、大きすぎてメモリ114に収まらない、又はメモリ114内の所定の空間量を超える空間を占める短期データを含むことができる。
【0020】
SoC110の構成要素(メモリ114など)がNVM120との間で情報を受け渡しできるようにするために、SoC110は、NVMインターフェイス116を含むことができる。NVMインターフェイス116は、NVM120とSoC110の非NVM固有の構成要素との間のインターフェイス又はドライバとして機能するように構成されたハードウェア、ソフトウェア、及びファームウェアのあらゆる好適な組み合わせを含むことができる。例えば、NVMインターフェイス116は、オペレーティングシステム及びファイルシステムがNVM120に間接的にアクセスできるようにするソフトウェア/ファームウェアインターフェイスを提供するためのNVMドライバ117を含み、これによりオペレーティングシステム及びファイルシステムが、NV一時データをNVM120に記憶し又はここから検索するための読み込み又は書き込み要求を発行できるようにすることができる。NVMインターフェイス116は、バスコントローラ118をさらに含むことができ、このバスコントローラ118は、NVMドライバ117がNVM120の(データレートなどの)バス規格を使用してNVM120にアクセスできるようにするいずれかの好適なハードウェア構成要素を含むことができる。
【0021】
NVMインターフェイス116は、ガーベージコレクション、ウェアレベリング、及び不良ブロック管理などの、NVM120のメモリ位置を管理するための様々なタスクを実行することができる。NVMドライバ117は、「メタデータ」を保持又は生成するように構成することができ、このメタデータは、NVM120及びNVM120内のメモリ位置を管理するためにNVMドライバ117が使用するいずれのメモリ管理データであってもよい。NVMドライバ117は、ファイルシステムにより発行されたいずれの論理アドレス(論理ブロックアドレス(「LBA」)など)が現在使用のために割り当てられているかを示すテーブル、及び/又はNVM120の論理アドレスと物理アドレスの間のマッピングなどの、メタデータテーブル又はマッピングを保持するように構成することができる。読み込み又は書き込み要求時には、ファイルシステムによって論理アドレスが発行され、NVMドライバ170は、実際にNVM120の物理的メモリ位置に対応する異なる物理アドレスにこの論理アドレスをマッピングすることができる。従って、NVMドライバ117は、ファイルシステムからの読み込み及び書き込み要求を正しく処理するためにメタデータテーブルを保持することができる。
【0022】
図1には、NVMインターフェイス116を、完全にSoC110上に実装された形で示している。いくつかの実施形態では、NVMインターフェイス116の構成要素のいくつか、及びNVMドライバ117の機能のいくつかを、例えば、NVM120に含まれる別個のメモリコントローラ(フラッシュコントローラなど)によって実装及び実行することができる。従って、NVMインターフェイス116又はNVMに関する機能についてのあらゆる説明は、SoC110上の構成要素、又はここで実行される動作に限定されるものではないと理解されたい。
【0023】
NVMインターフェイス116は、ファイルシステムから書き込み要求を受け取って、様々な種類のデータのいずれかを記憶することができる。例えば、ファイルシステムは、楽曲及びビデオなどのメディア資産を無期限に記憶するようにNVMインターフェイス116に指示することができる。他のシナリオでは、ファイルシステムが、ハードウェアベースの休止状態データ、アプリケーション生成データ、アプリケーションベースの休止状態データ、スワップファイル、又はその他の一時ファイルなどのNV一時データをNVM120に記憶するようにNVMインターフェイス116に指示することができる。NV一時データの予想寿命(すなわち、電子装置100の1回の起動サイクル)は、このように他の形式のデータ(すなわち、電子装置100の複数回の起動サイクル)とは異なるので、NVMインターフェイス116を、NVM120内のメモリの使用効果及び効率を高めることができる異なる方法でNV一時データを処理するように構成することができる。
【0024】
いくつかの実施形態では、NVMインターフェイス116が、メモリ位置(すなわち、ページ、ブロック、又はスーパーブロック)を選択し、データが一時データであるかどうかに基づいて、そこにデータを記憶することができる。例えば、NVMインターフェイス116は、NV一時データを記憶するために、より低性能のメモリ位置を選択することができる。より低性能のメモリ位置は、高サイクルブロック(すなわち、より多くの消去サイクルを経て、従ってより激しい劣化を経験し得るブロック)などの、信頼性の低いページ又はブロックとすることができる。非一時的データは、より長期間にわたってNVM120内に保持されると予想されるので、NVMインターフェイス116は、非一時的データを記憶するために、より高性能のメモリ位置を選択することができる。
【0025】
いくつかの実施形態では、NVMインターフェイス116が、NV一時データを記憶するために、より高速なメモリ位置又はプログラミング技術を選択することができる。このようにすることで、メモリ114とNVM120の間でデータを転送する合間の遅延が減少し、このことは仮想メモリ方式にとって、低電力休止状態に入る際に、又は他の様々な状況において有利となり得る。速度を改善するために、NVMインターフェイス116は、NV一時データを含むブロックをプログラムする際にシングルレベルセル(「SLC」)ブロックを選択すること、又は同調分解能を下げることができる。NVMインターフェイス116は、プログラミングスピードを高めながら信頼性も改善するようにSLCブロックを選択することができる。
【0026】
いくつかの実施形態では、NVMインターフェイス116が、NVM120内にNV一時データを記憶する際にNV一時データに「一時マーカ」を付けることにより、NV一時データを他のデータとは別様に処理することができる。このようにすることで、NVM120からデータを読み直す際に、NVMインターフェイス116が、より長期にわたって記憶されるように意図された他の情報とNV一時データを迅速かつ効率的に区別することができる。
【0027】
図2に、NVMインターフェイス116が、NV一時データに一時マーカを付けることができる1つの方法を示す。図2は、図1のNVM120などの不揮発性メモリのブロック内のページのグラフィック表現である。図示のように、ブロックの各ページを使用して、データフィールド及び関連するメタデータフィールドを記憶することができる。各データフィールドは、NV一時データ、又はファイルシステムが記憶するように要求したいずれかの(メディア資産などの)データなどの、いずれかの好適な種類のデータを記憶することができる。同じページのメタデータフィールドは、誤り訂正符号(「ECC」)データを含む、NVMドライバ117が受け取った又は生成したいずれかのメモリ管理データ、及び論理アドレスと物理アドレスの間のマッピング(LBAなど)を管理するために使用するいずれかの情報などの、データフィールド内のデータに関連するメタデータを記憶することができる。
【0028】
メタデータフィールドは、データフィールド内のデータがNV一時データであるかどうかを示すマーカを記憶するための空間を含むことができる。例えば、図2のページ1及びページ2のメタデータフィールド内の「T」(又は「一時」)マーカは、関連するデータフィールドがNV一時データを含むことを示し、これに対してページ0及びブロックの最終ページのメタデータフィールド内の「P」(又は「永続」)マーカは、関連するデータフィールド内のデータが永続的で長期的な記憶を意図されたデータを含むことを示す。「T」一時マーカ及び「P」永続マーカは、いずれかの好適な方法を使用して実現することができる。すなわち、これらのマーカは、(1又はそれ以上のビットなどの)あらゆる好適な数のビットを含むことができ、「T」及び「P」マーカの実際のビット又は単語値の各々は、あらゆる好適な所定のビットパターンをとることができる。
【0029】
いくつかの実施形態では、NVMインターフェイス116が、特定の「P」マーカを使用しなくてもよく、代わりに「T」一時マーカのみを使用して、NVM120内のどこにNV一時データが記憶されているかを示すことができる。これらの実施形態では、ページを読み直したときに、NVMインターフェイス116が、メタデータフィールド内に一時マーカが存在しないことに基づいて、このページのデータフィールドがNV一時データを含まないと判断することができる。
【0030】
図2には、同じブロックがNV一時データと永続データをいずれも含むことができる例を示している。図3に示す実施形態などの他の実施形態では、ブロック又はスーパーブロック全体を使用して、NV一時データ又は永続データのいずれかを記憶することができる。
【0031】
図3は、図1のNVM120などの不揮発性メモリの、いくつかの集積回路にわたる複数のブロックのグラフィック表現である。各列は異なる集積回路を表し、各行は異なるスーパーブロックを表す。従って、第1の集積回路(「IC 0」)に示すように、あるブロック全体(すなわち、ブロック2)を使用してNV一時データを記憶することができる。いくつかの実施形態では、NVMインターフェイス116が、ブロックの全ての使用ページ内に一時マーカを提供することができ、この一時マーカは、NVMインターフェイス116がこのブロックをNV一時データを記憶しているものとして正しく解釈できることをさらに保証することができる。他の実施形態では、NVMインターフェイス116が、ブロック内のページの一部に一時マーカを記憶することができる。例えば、NVMインターフェイス116は、ブロックの最初のページにのみ一時マーカを記憶して、NVMインターフェイス116が、後でブロックを最初のページから最後のページまで読み込んだときに、このブロックがNV一時データを含むかどうかを判断できるようにすることができる。或いは、NVMインターフェイス116は、(NVMインターフェイス116が、後でブロックを最後のページから最初のページまで読み込むことができるように)最後のページにのみ一時マーカを記憶し、又はブロックの最初のページと最後のページの両方に一時マーカを記憶することができる。
【0032】
いくつかの実施形態では、NVMインターフェイス116が、NV一時データを記憶する際に使用するスーパーブロック全体を選択することができる。このことを、図3の5番目のスーパーブロック(「スーパーブロック4」)に示しており、この場合、スーパーブロック内の全てのブロックを、NV一時データを記憶するために使用することができる。単一ブロックの場合と同様に、NVMインターフェイス116は、スーパーブロックの使用ページ全てに一時マーカを記憶してもよく、又はしなくてもよい。代わりに、NVMインターフェイス116は、スーパーブロック内の各ブロックの最初のページにのみ、スーパーブロック内の各ブロックの最後のページにのみ、各ブロックの最初のページと最後のページの両方に、或いはスーパーブロック内のブロックの一部の1又はそれ以上のページに一時マーカを記憶することもできる。
【0033】
明確さを保つために図示してはいないが、「T」一時マーカを含まないブロックは、ページの一部又は全部に「P」永続マーカを含んでもよい(又は含まなくてもよい)。さらに、5つの集積回路及び6つスーパーブロック(合計30ブロック)を示しているが、NVM120は、他のあらゆる好適な数の集積回路及びスーパーブロックを有することができると理解されたい。
【0034】
NVMインターフェイス116は、NV一時データに付ける一時マーカを使用して、NV一時データを他の種類のデータとは別様に処理することができる。例えば、一時マーカは、電子装置100の起動処理に影響を与えることができる。電子装置100の起動時には、NVMドライバ117が、NVM120の現在の状態を正しく判断できるように一連の初期化手順を実行することができる。この初期化手順には、いずれの論理アドレスが使用中であるかを示すテーブル及び論理アドレス対物理アドレスマッピングなどの、1又はそれ以上のメタデータテーブル又はマップの再構築を含めることができる。
【0035】
テーブルを再構築するために、NVMドライバ117は、NVM120の各ページを読み込んで、そのページをテーブルに含めるかどうかをページごとに判断することができる。NVMドライバ117は、ページに一時マーカが指定されている(又は、現在一時マーカが指定されているブロック又はスーパーブロック内にページが存在する)と判断した場合、そのページをテーブルから除外することができる。この理由は、そのページが、電子装置100の前回の起動中にのみ有効であったNV一時データを記憶するために使用されていたからである。従って、NVMドライバ117は、このページを無効としてマークし、(ガーベージコレクション又はウェアレベリング中などの)ある適当な時点でページを解放して、他の情報を記憶するために使用できるようにすることができる。NVMドライバ117は、このページを無効にし、起動時に直ちにこれをテーブルから削除するので、NVM120のメモリ使用量を即座に効率的にすることができる。すなわち、NVMドライバ117は、現在の起動サイクル中のいずれの時点においても、ガーベージコレクション又はウェアレベリング中に、今ではもはや使用されていないNV一時データを保持するための無用の動作を実行しなくなる。
【0036】
次に図4及び図5を参照すると、本発明の様々な実施形態による例示的なプロセスのフロー図を示している。これらの例示的なプロセスのステップは、NVMドライバ117(図1)の制御下で動作する制御回路112(図1)などの、電子装置内のいずれかの好適な構成要素又は構成要素の組み合わせによって実行することができる。
【0037】
まず図4を見てみると、NVM120(図1)などのNVM内にNV一時データを記憶する際にNV一時データに一時マーカを付けるためのプロセス400を示している。プロセス400は、ステップ402から開始することができ、ここでファイルシステムが、NVMにデータを記憶することを決定することができる。このステップは、例えば、揮発性メモリの空間が無くなりかけているときに、又は低電力状態(すなわち、休止状態)で揮発性メモリの電源を落とす必要があるときにNV一時データに対して行うことができる。
【0038】
ステップ404において、NVMに記憶するためのデータをファイルシステムからNVMインターフェイス(NVMドライバなど)に提供することができる。その後、ステップ406において、NVMインターフェイスが、このデータがNV一時データとして記憶すべき一時データであるかどうかを判断することができる。いくつかの実施形態では、NVMインターフェイスが、データが一時データであるかどうかを、ファイルシステムから受け取った書き込み要求に基づいて解釈することができる。ファイルシステムは、データが一時データである旨の書き込み要求信号をアプリケーションからの指示に応答して送出することもできる。
【0039】
NVMインターフェイスは、ステップ406において、データがNV一時データであると判断した場合、ステップ408において、このデータのための一時マーカを含むメタデータを準備することができる。ステップ408(又は、後述するステップ412)におけるメタデータを準備するステップは、NVMに関連する(書き込み要求とともに受け取った)論理アドレスから物理アドレスへのマッピングを決定して保持するステップを含むことができる。不揮発性メモリ内ではデータの寿命が短いと予想されるので、NVMインターフェイスは、ステップ410において、より低性能の及び/又はより高速なメモリ位置(すなわち、ページ、ブロック、又はスーパーブロック)又はデータを記憶するためのプログラミング技術を選択することもできる。例えば、NVMインターフェイスは、(高サイクルブロックなどの)それほど信頼性が高くないブロック又はSLCブロックを選択して、そこにデータを記憶することができる。
【0040】
そうではなく、ステップ406において、NVMインターフェイスが、このデータがNV一時データではないと判断した場合、NVMインターフェイスは、ステップ412において、一時マーカを含まない(代わりに永続マーカを含んでもよい)メタデータを準備することができる。この場合、データを不揮発性メモリ内に長期に記憶することができるので、NVMインターフェイスは、ステップ414において、このデータを記憶するために、より高性能の及び/又はより低速のメモリ位置又はプログラミング技術を選択することができる。例えば、NVMインターフェイスは、信頼性の高いブロック又はMLCブロックを選択して、そこにデータを記憶することができる。
【0041】
プロセス400は、ステップ410又はステップ414からステップ416に続くことができ、ここでNVMインターフェイスは、データ(これがNV一時データであるかその他のデータであるかに関わらず)及び関連するメタデータの少なくともいくつかを、NVMの選択した1又はそれ以上のページに記憶することができる。その後、プロセス400は、ステップ418において終了することができる。
【0042】
次に図5を参照すると、電子装置の起動時にNV一時データを処理するためのプロセス500を示している。プロセス500は、電子装置の起動時にステップ502において開始することができる。ステップ504において、NVMインターフェイスが、NVMの初期状態及びそのメモリ位置を特定できるように様々な起動手順を実行することができる。従って、最初の起動手順は、いずれの論理アドレスが使用のために割り当てられているかを示すテーブル、及び/又は有効なデータを含むNVMのページごとの論理アドレス対物理アドレスのマッピングなどの、メタデータテーブルを構築するステップを含むことができる。
【0043】
NVMインターフェイスは、ステップ504から、NVMの各ページを走査してこれを処理することにより、テーブルを準備することができる。具体的には、ステップ506において、NVMインターフェイスは、NVMから最初のページを読み込むことができ、ステップ508において、NVMインターフェイスは、この最初のページがそのメタデータフィールド内に一時マーカを含むかどうかを判断することができる。一時マーカを含まない場合、最初のページはNV一時データを含まないので、ステップ510において、NVMインターフェイスは、このページをテーブルに追加することができる。例えば、NVMインターフェイスは、このページに関連する論理アドレスを(メタデータフィールドなどから)特定することができ、このページの論理アドレス対物理アドレスマッピングを適当なテーブルに追加することができ、又はファイルシステムによって論理アドレスが現在割り当てられていることをテーブル内で示すことができる。
【0044】
そうではなく、ステップ508において、NVMインターフェイスが、このページがそのメタデータフィールドに一時マーカを含むと判断した場合、プロセス500はステップ512に続くことができる。一時マーカは、このページがNV一時データを記憶していることを示し、電子装置が再起動した今では、もはやこのNV一時データは有効でないので、プロセス500はステップ512に分岐することができる。ステップ512において、NVMインターフェイスは、メタデータテーブルの再構築という目的のために、このページ内のメタデータを無視することができる。例えば、ページ内に記憶されている論理アドレスが、この論理アドレスがファイルシステムによって使用中であることを別様に示している間、NVMインターフェイスは、ページ内の論理アドレスの存在を無視することができる。次に、ステップ514において、NVMインターフェイスは、このページに無効なデータを含むものとしてマークすることができる。これにより、適当な時点でNVMインターフェイスがこのページ上でガーベージコレクションを実行して、他の情報を記憶するための空間を確保できるようにすることができる。
【0045】
プロセス500は、ステップ510又はステップ514からステップ516に続くことができ、ここでNVMインターフェイスは、メタデータテーブルの構築が完了したかどうかを判断することができる。この判断は、未だに読み込み及び処理が完了していない追加のページが存在するかどうかを判断するステップを含むことができる。メタデータテーブルに含めることを検討する必要がある追加のページが存在する場合、プロセス500は、NVMインターフェイスがNVMの別のページを読み込めるようにステップ506へ戻ることができる。そうではなく、追加のページが存在しない場合、プロセス500は、ステップ518において終了することができる。
【0046】
図4及び図5のそれぞれのプロセス400及び500のステップは、例示にすぎないと理解されたい。本発明の範囲から逸脱することなく、ステップのいずれかを修正し、除去し、又は組み合わせることができ、また追加のステップを含めることもできる。
【0047】
説明した本発明の実施形態は、限定ではなく例示を目的として示したものである。

【特許請求の範囲】
【請求項1】
一時データを記憶するための揮発性メモリと、
複数のページを有する不揮発性(NV)メモリと、
前記一時データを前記不揮発性メモリにNV一時データとして記憶する制御回路と、
を備え、
前記制御回路が、前記NV一時データを記憶する前記ページの少なくとも1つに一時マーカを記憶することを特徴とする電子装置。
【請求項2】
前記電子装置がさらに、
前記NV一時データのためのメタデータを準備し、
前記メタデータ及び前記一時マーカを、前記NV一時データを記憶する前記ページの少なくとも1つのメタデータフィールドに記憶することを特徴とする請求項1に記載の電子装置。
【請求項3】
前記一時マーカが、所定のビットパターンを有することを特徴とする請求項1に記載の電子装置。
【請求項4】
前記複数のページがブロックに編成され、
前記制御回路が、さらに、
前記NV一時データを記憶するための、前記ブロックの1つを選択し、
前記一時マーカを、前記選択したブロックの少なくとも1つのページに記憶する、
ことを特徴とする請求項1に記載の電子装置。
【請求項5】
前記制御回路が、さらに、前記選択したブロックの前記ページ全てに前記一時マーカを記憶することを特徴とする請求項4に記載の電子装置。
【請求項6】
前記制御回路が、さらに、
前記揮発性メモリが低メモリ状態であることを識別し、
前記低メモリ状態の識別に応答して、前記一時データを前記不揮発性メモリに記憶する、
ことを特徴とする請求項1に記載の電子装置。
【請求項7】
前記制御回路が、さらに、前記一時データを記憶するためにより低性能のページを選択することを特徴とする請求項1に記載の電子装置。
【請求項8】
前記制御回路が、さらに、前記一時データを記憶するためにより高速のプログラミング技術を選択することを特徴とする請求項1に記載の電子装置。
【請求項9】
複数のページを有する不揮発性メモリにデータを記憶する方法であって、
前記データを一時データとして識別するステップと、
前記データのための、一時マーカを有するメタデータを準備するステップと、
前記データ及び前記メタデータを前記不揮発性メモリの少なくとも1つのページに記憶するステップと、
を含むことを特徴とする方法。
【請求項10】
前記データを、書き込み要求によってファイルシステムから不揮発性メモリインターフェイスに提供するステップをさらに含み、
前記識別ステップが、前記書き込み要求に応答して前記不揮発性メモリインターフェイスにより実行されることを特徴とする請求項9に記載の方法。
【請求項11】
前記一時マーカが、少なくとも1ビットの所定値を有することを特徴とする請求項9に記載の方法。
【請求項12】
前記準備ステップが、前記データの論理アドレス対物理アドレスマッピングを決定するステップをさらに含む請求項9に記載の方法。
【請求項13】
前記識別ステップに基づいて、前記不揮発性メモリの前記少なくとも1つのページを選択するステップをさらに含むことを特徴とする請求項9に記載の方法。
【請求項14】
前記不揮発性メモリに記憶するための追加データを、一時データではないものとして識別するステップと、
前記追加データのための、一時マーカを含まない追加メタデータを準備するステップと、
前記追加データ及び前記追加メタデータを前記不揮発性メモリの他の少なくとも1つのページに記憶するステップと、
をさらに含むことを特徴とする請求項9に記載の方法。
【請求項15】
前記識別ステップが、ハードウェアベースの休止状態データ、アプリケーション生成データ、アプリケーションベースの休止状態データ、及び仮想メモリ方式のためのデータのうちの少なくとも1つを前記データが含むことを識別するステップを含む、
ことを特徴とする請求項9に記載の方法。
【請求項16】
不揮発性メモリと、
前記電子装置の起動時に前記不揮発性メモリのためのメタデータテーブルを作成する制御回路とを備えた電子装置であって、
前記メタデータテーブルの作成において、
前記不揮発性メモリの、少なくとも1つのページが一時マーカを含む複数のページを読み込むこと、
前記少なくとも1つのページを前記メタデータテーブルから削除すること、
が行われることを特徴とする電子装置。
【請求項17】
前記制御回路が、さらに、前記少なくとも1つのページを無効としてマークすることにより前記メタデータテーブルを作成する請求項16に記載の電子装置。
【請求項18】
前記制御回路が、さらに、前記不揮発性メモリの一時マーカを含まない有効なページを前記メタデータテーブルに追加することにより前記メタデータテーブルを作成する請求項16に記載の電子装置。
【請求項19】
前記メタデータテーブルは、どの論理アドレスがファイルシステムによる使用のために現在割り当てられているかを示すテーブルを含む請求項16に記載の電子装置。
【請求項20】
前記メタデータテーブルは、論理アドレス対物理アドレスマッピングを含む請求項16に記載の電子装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−33482(P2013−33482A)
【公開日】平成25年2月14日(2013.2.14)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−173367(P2012−173367)
【出願日】平成24年7月18日(2012.7.18)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FRAM
2.UNIX
3.EEPROM
【出願人】(503260918)アップル インコーポレイテッド (568)