説明

不揮発性メモリを有するシステムの非正常シャットダウンの取り扱い

【課題】不揮発性メモリ(NVM)を有するシステムのための非正常シャットダウンを取り扱うためのシステム及び方法を提供する。
【解決手段】ある実施形態では、このシステムは、非正常のシャットダウン事象の後に論理的−物理的マッピングをより効率的に再構成するためにインデックスページから得た情報からレバレッジすることができる。他の実施形態では、このシステムは、NVMに記憶されたコンテクスト情報からレバレッジすることにより論理的−物理的マッピングを再構成することができる。更に別の実施形態では、コンテクスト情報は、非正常のシャットダウンの後に論理的−物理的マッピングを再構成するためにインデックスページに関連して使用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリを有するシステムのための非正常シャットダウンの取り扱いに関する。
【背景技術】
【0002】
NANDフラッシュメモリ、及び他の形式の不揮発性メモリ(NVM)は、大量記憶のために一般的に使用されている。例えば、ポータブルメディアプレーヤのような消費者向け電子装置は、多くの場合、音楽、ビデオ及び他のメディアを記憶するためにフラッシュメモリを備えている。
【0003】
NVMは、論理的アドレスと物理的アドレスとの間のマッピングを与えるために複数のインデックスページを含むことができる。あるケースでは、より迅速な読み出しを行うために、最も新しく書かれたユーザデータに対応するマッピング情報が装置の揮発性メモリに記憶される。情報の長期記憶をなすため、周期的に、このマッピング情報を揮発性メモリからNVMのインデックスページへどっと流出することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
NVMを有する電子装置が正常にシャットダウンするときには、インデックスページに記憶された情報を直接使用して、揮発性メモリにおける論理的−物理的マッピングを再構成することができる。しかしながら、電子装置が非正常にシャットダウンするときには、インデックスページの少なくとも若干が古いものとなることがある。というのは、装置が最も新しいマッピング情報をインデックスページへ完全に流出しないことがあるためである。その結果、装置は、揮発性メモリにおける論理的−物理的マッピングを再構成するために全NVMをスキャンすることが必要になる。このプロセスは、時間的観点からコストがかかる。
【課題を解決するための手段】
【0005】
不揮発性メモリを有するシステムのための非正常シャットダウンを取り扱うためのシステム及び方法が開示される。ある実施形態では、このシステムは、非正常シャットダウンの後に論理的−物理的マッピングをより効率的に再構成するためにインデックスページから得た情報をレバレッジすることができる。ここで使用する「インデックスページ」とは、ファイルシステムにより使用される論理的アドレスとデータページの物理的アドレスとの間のマッピングを記憶するNVMのページ(例えば、ユーザデータを記憶するNVMのページ)である。
【0006】
他の実施形態では、このシステムは、これもNVMに記憶されたコンテクスト情報からレバレッジすることにより論理的−物理的マッピングを再構成することができる。ここで使用する「コンテスト情報」とは、特定の時点で全NVMの状態に関連した情報を指す。更に別の実施形態では、コンテクスト情報は、非正常シャットダウンの後に論理的−物理的マッピングを再構成するためにインデックスページに関連して使用することができる。
【0007】
本発明の前記及び他の態様及び効果は、全体にわたって同じ部分が同じ参照文字で示された添付図面を参照してなされた以下の詳細な説明を考慮したときに明らかとなろう。
【図面の簡単な説明】
【0008】
【図1】本発明の種々の実施形態により構成された電子装置のブロック図である。
【図2】本発明の種々の実施形態により構成された電子装置のブロック図である。
【図3】本発明の種々の実施形態によるメモリマッピングアーキテクチャーを例示するブロック図である。
【図4】本発明の種々の実施形態により非正常シャットダウン事象を取り扱うためのプロセスを例示するフローチャートである。
【図5】本発明の種々の実施形態によりインデックスページの年齢をデータページの年齢と比較するためのプロセスを例示するフローチャートである。
【図6】本発明の種々の実施形態により非正常シャットダウン事象を取り扱うための別のプロセスを例示するフローチャートである。
【図7】本発明の種々の実施形態により非正常シャットダウン事象を取り扱うための更に別のプロセスを例示するフローチャートである。
【発明を実施するための形態】
【0009】
不揮発性メモリを有するシステムの非正常シャットダウンを取り扱うシステム及び方法が提供される。より詳細には、システムのNVMインターフェイスは、非正常シャットダウンの後に論理的−物理的マッピングをより効率的に再構成するためにインデックスページから得た情報をレバレッジすることができる。ここで使用する「インデックスページ」とは、ファイルシステムにより使用される論理的アドレスとデータページの物理的アドレスとの間のマッピングを記憶するNVMのページ(例えば、ユーザデータを記憶するNVMのページ)である。
【0010】
例えば、NVMインターフェイスは、インデックスページをスキャンすることにより再構成を行ってインデックスページの年齢を得ることができる。次いで、NVMインターフェイスは、インデックスページの年齢を、それに対応するデータページの年齢と比較し、そして特定のインデックスページがそれに対応するデータページより若年(例えば、よりフレッシュ)であるか老年であるか決定する。NVMインターフェイスは、インデックスページの年齢がそれに対応するデータページの年齢より老年であると決定した場合には、インデックスページに信頼性がない(例えば、データページが更新されて以来、インデックスページが更新されていない)と決定する。その結果、NVMインターフェイスは、より若年のデータブロックをスキャンして、論理的−物理的マッピングを再構成することができる。
【0011】
対照的に、そうではなくて、インデックスページの年齢がそれに対応するデータページの年齢より老年でないと決定すると、NVMインターフェイスは、インデックスページに信頼性がある(例えば、データページと同時に又はその後にインデックスページが更新されている)と決定することができる。その結果、NVMインターフェイスは、インデックスページに記憶されたマッピングを使用して、揮発性メモリにおけるマッピングを再構成することができる。
【0012】
ある実施形態では、システムは、NVMに記憶されたコンテクスト情報からレバレッジすることによって論理的−物理的マッピングを再構成することができる。ここで使用する「コンテクスト情報」とは、特定の時点で全NVMの状態に関連した情報を指す。更に別の実施形態では、コンテクスト情報は、非正常シャットダウン後に論理的−物理的マッピングを再構成するためにインデックスページに関連して使用することができる。
【0013】
図1は、電子装置100のブロック図である。ある実施形態において、電子装置100は、ポータブルメディアプレーヤ、セルラー電話、ポケットサイズのパーソナルコンピュータ、パーソナルデジタルアシスタント(PDA)、デスクトップコンピュータ、ラップトップコンピュータ、及び他の適当な形式の電子装置であり、又はそれを含むことができる。
【0014】
電子装置100は、システムオンチップ(SoC)110及び不揮発性メモリ(NVM)120を備えている。不揮発性メモリ120は、フローティングゲート又はチャージトラップ技術に基づくNANDフラッシュメモリ、NORフラッシュメモリ、消去可能なプログラマブルリードオンリメモリ(EPROM)、電気的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、強誘電性RAM(FRAM(登録商標))、磁気抵抗性RAM(MRAM)、又はその組み合わせを含む。
【0015】
NVM120は、消去可能な最小単位である「ブロック」へと編成され、更に、プログラム又は読み取りできる最小単位である「ページ」へと編成される。ある実施形態では、NVM120は、複数のブロックを各々有する複数の集積回路を含むことができる。対応する集積回路からのメモリ位置(例えば、ブロック、又はブロックのページ)は、「スーパーブロック」を形成する。NVM120の各メモリ位置(例えば、ページ又はブロック)は、物理的アドレス(例えば、物理的ページアドレス又は物理的ブロックアドレス)を使用して参照することができる。
【0016】
NVM120の1つ以上のページは、SoC110又は装置100のコンポーネントの一般的動作に関連したデータを記憶するのに使用できるデータページである。更に、NVM120の1つ以上のページは、インデックステーブルを記憶するのに使用できる。論理的セクターが物理的ページに直接マップされる実施形態では、論理的−物理的マッピングをインデックステーブルに記憶することができる。ここに使用する「論理的−物理的マッピング」とは、1つ以上の論理的アドレス(例えば、論理的セクター)とデータページの物理的ページアドレスとの間のマッピングである。例えば、インデックステーブルは、NVM120のデータページの物理的アドレスを保持することができる。
【0017】
あるケースでは、インデックステーブルが複数のインデックスページを含み、各インデックスページは、論理的アドレスをデータページの1つ以上の物理的アドレスへとマップすることができる。インデックステーブル及びインデックスページは、図3を参照して詳細に説明する。
【0018】
システムオンチップ110は、SoCコントロール回路112、メモリ114、及びNVMインターフェイス118を含む。SoCコントロール回路112は、SoC110の一般的動作及び機能、並びにSoC110の他のコンポーネント又は装置100をコントロールすることができる。例えば、ユーザ入力、及び/又はアプリケーション又はオペレーティングシステムのインストラクションに応答して、SoCコントロール回路112は、読み取り又は書き込みコマンドをNVMインターフェイス118へ発行して、NVM120からデータを得又はそこにデータを記憶することができる。明瞭化のために、SoCコントロール回路112が記憶又は検索のために要求するデータは、たとえそれがユーザ又はユーザアプリケーションに直接関連していなくても、「ユーザデータ」と称される。むしろ、ユーザデータは、(例えば、アプリケーション又はオペレーティングシステムを経て)SoCコントロール回路112によって発生され又は得られる適当なシーケンスのデジタル情報である。
【0019】
SoCコントロール回路112は、電子装置100の機能を駆動するように働くハードウェア、ソフトウェア及びファームウェア、並びにコンポーネント、回路又はロジックの任意の組み合わせを含む。例えば、SoCコントロール回路112は、NVM120又はメモリ114に記憶されたソフトウェア/ファームウェアのコントロールものとで動作する1つ以上のプロセッサを含む。
【0020】
メモリ114は、適当な形式の揮発性メモリ、例えば、ランダムアクセスメモリ(RAM)(例えば、スタティックRAM(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、倍データレート(DDR)RAM)、キャッシュメモリ、リードオンリメモリ(ROM)、又はその組み合わせを含む。メモリ114は、不揮発性メモリ120へプログラムされるか又はそこから読み取られるユーザデータを一時的に記憶することのできるデータソースを含む。ある実施形態では、メモリ114は、SoCコントロール回路112の一部分として実施されるプロセッサのためのメインメモリとして働く。
【0021】
メモリ114は、ルックアップテーブル及び/又はインデックステーブルキャッシュを含む。ルックアップテーブルは、NVM120に記憶されたインデックステーブルの位置(例えば、物理的アドレス)を保持する。インデックステーブルは、より迅速な読み出しを行うために最近書き込まれた論理的アドレス(例えば、論理的セクター)の物理的アドレスを保持する。周期的なベースで、インデックステーブルキャッシュに記憶された情報は、インデックステーブルキャッシュからNVM120のインデックスページへどっと流出される。
【0022】
ある実施形態において、インデックステーブルキャッシュのサイズは、インデックスページのサイズの小さな部分である。インデックステーブルキャッシュではなくインデックスページにマッピング情報の大半を記憶することにより、メモリ114においてより多くのスペースを他の目的のために解放することができる。ルックアップテーブル及びインデックステーブルキャッシュは、図3を参照して詳細に述べる。
【0023】
NVMインターフェイス118は、SoCコントロール回路112とNVM120との間のインターフェイス又はドライバとして働くように構成されたハードウェア、ソフトウェア及び/又はファームウェアの適当な組み合わせを含む。NVMインターフェイス118に含まれるソフトウェアモジュールとしては、それに対応するプログラムコードがNVM120又はメモリ114に記憶される。
【0024】
NVMインターフェイス118は、SoCコントロール回路112がNVM120にアクセスしそしてNVM120のメモリ位置(例えば、ページ、ブロック、スーパーブロック、集積回路)及びそこに記憶されたデータ(例えば、ユーザデータ)を管理できるようにする種々の機能を遂行する。例えば、NVMインターフェイス118は、SoCコントロール回路112からの読み取り又は書き込み要求を解釈し、ウェアレベリングを遂行し、そしてNVM120のバスプロトコルに適合する読み取り及びプログラムインストラクションを発生する。
【0025】
NVMインターフェイス118及びSoCコントロール回路112は、個別のモジュールとして示されているが、これは、本発明の実施形態の説明を簡単にするものに過ぎない。これらのモジュールは、ハードウェアコンポーネント、ソフトウェアコンポーネント、又はその両方を共有してもよいことを理解されたい。例えば、SoCコントロール回路112は、NVMインターフェイス118のためのソフトウエアベースのメモリドライバを実行してもよい。
【0026】
ある実施形態では、電子装置100は、フラッシュメモリドライブ又はセキュアなデジタル(SD)カードのようなターゲット装置を備え、これは、NVM120、及びNVMインターフェイス118のある部分又は全部(例えば、以下に述べる変換層)を含む。これらの実施形態では、SoC110又はSoCコントロール回路112は、ターゲット装置のためのホストコントローラとして働く。例えば、ホストコントローラとして、SoC110は、読み取り及び書き込み要求をターゲット装置へ発行することができる。
【0027】
図2は、種々の実施形態による電子装置100(図1)のファームウェア、ソフトウェア、及び/又はハードウェアコンポーネントの幾つかを詳細に示す電子装置200のブロック図である。電子装置200は、図1を参照して上述した特徴及び機能のいずれかを有し、そしてその逆のことも言える。図示されたように、破線は、層の境界を示す。境界線内にどのコンポーネントが入るかは、単なる例示に過ぎず、1つ以上のコンポーネントを異なる層と合併できることを理解されたい。
【0028】
電子装置200は、ファイルシステム210、NVMドライバ212、NVMバスコントローラ216、及びNVM220を備えている。ある実施形態では、ファイルシステム210及びNVMドライバ212は、ソフトウェア又はファームウェアモジュールであり、そしてNVMバスコントローラ216及びNVM220は、ハードウェアモジュールである。従って、これらの実施形態では、NVMドライバ212は、NVMインターフェイス218のソフトウェア又はファームウェア態様を表わし、そしてNVMバスコントローラ216は、NVMインターフェイス218のハードウェア態様を表わす。
【0029】
ファイルシステム210は、適当な形式のファイルシステム、例えば、ファイルアロケーションテーブル(FAT)ファイルシステム又はハイアラーキーファイルシステムプラス(HFS+)を備え、そして電子装置200のオペレーティングシステムの一部分(例えば、図1のSoCコントロール回路112の一部分)である。ある実施形態では、ファイルシステム210は、ページの論理的−物理的マッピングを与えるフラッシュファイルシステムを備えている。これらの実施形態において、ファイルシステム210は、以下に述べるNVMドライバ212の機能の幾つか又は全部を遂行し、それ故、ファイルシステム210及びNVMドライバ212は、個別のモジュールであってもなくてもよい。
【0030】
ファイルシステム210は、アプリケーション及びオペレーティングシステムに対してファイル及びフォルダ構造を管理する。ファイルシステム210は、電子装置200上で実行されるアプリケーション又はオペレーティングシステムのコントロールのもとで動作し、そして情報がNVM220から読み取られるか又はそこに記憶されることをアプリケーション又はオペレーティングシステムが要求するときに書き込み及び読み取りコマンドをNVMドライバ212に与える。各読み取り又は書き込みコマンドと共に、ファイルシステム210は、ユーザデータをどこから読み取るべきか又はどこに書き込むべきか指示するための論理的アドレス、例えば、論理的ページアドレス又は論理的ブロックアドレス(LBA)を、ページオフセットと共に与えることができる。
【0031】
ファイルシステム210は、NVM220に直接適合しない読み取り及び書き込み要求をNVMドライバ212に与えることがある。例えば、論理的アドレスは、ハードドライブベースのシステムの典型である慣習又はプロトコルを使用してもよい。ハードドライブベースのシステムは、フラッシュメモリとは異なり、最初にブロック消去を遂行せずに、メモリ位置をオーバーライトすることができる。更に、ハードドライブは、装置の寿命を延長するためにウェアレベリングを必要としない。それ故、NVMインターフェイス218は、ファイルシステム要求を取り扱うためにメモリ特有、売主特有、又はその両方である機能を遂行し、そしてNVM200に適した仕方で他の管理機能を遂行することができる。
【0032】
NVMドライバ212は、変換層214を備えている。ある実施形態では、変換層214は、フラッシュ変換層(FTL)であってもよいし又はそれを含んでもよい。書き込みコマンドの際に、変換層214は、与えられた論理的アドレスを、NVM220上の消去された空き物理的位置へマップすることができる。読み取りコマンドの際に、変換層214は、与えられた論理的アドレスを使用して、要求されたデータが記憶されている物理的アドレスを決定することができる。各NVMは、NVMのサイズ又は売主に基づいて異なるレイアウトを有することがあるので、このマッピング動作は、メモリ及び/又は売主特有でよい。変換層214は、論理的−物理的アドレスマッピングに加えて他の適当な機能を遂行することができる。例えば、変換層214は、ガーベージコレクション及びウェアレベリングのようなフラッシュ変換層の典型である他のいずれの機能を遂行することもできる。
【0033】
NVMドライバ212は、NVMバスコントローラ216とインターフェイスして、NVMアクセスコマンド(例えば、プログラム、読み取り及び消去コマンド)を完了することができる。バスコントローラ216は、NVM200へのハードウェアインターフェイスとして働き、そしてNVM220のバスプロトコル、データレート及び他の仕様を使用してNVM220と通信することができる。
【0034】
NVMインターフェイス218は、ここで、時々「メタデータ」と称されるメモリ管理データに基づいてNVM220を管理する。メタデータは、NVMドライバ212により発生されてもよいし、又はNVMドライバ212のコントロールのもとで動作するモジュールにより発生されてもよい。例えば、メタデータは、論理的アドレスと物理的アドレスとの間のマッピングの管理、不良ブロックの管理、ウェアレベリングに使用される情報、データエラーを検出又は修正するのに使用されるエラー修正コード(ECC)データ、又はその組み合わせを含む。メタデータは、ファイルシステム210により与えられるデータを、論理的アドレスのようなユーザデータと共に含む。従って、一般的に、「メタデータ」とは、ユーザデータについての又はそれに関連した情報を指し、又は不揮発性メモリの動作及びメモリ位置を管理するのに一般的に使用される。
【0035】
NVMインターフェイス218は、NVM220にメタデータを記憶するように構成される。ある実施形態では、NVMインターフェイス218は、ユーザデータに関連したメタデータを、ユーザデータが記憶される同じメモリ位置(例えば、ページ)に記憶する。例えば、NVMインターフェイス218は、ユーザデータ、関連論理的アドレス、及びユーザデータのためのECCデータを、NVM220の1つ以上のメモリ位置に記憶する。又、NVMインターフェイス218は、ユーザデータについての他の形式のメタデータも同じメモリ位置に記憶する。
【0036】
NVMインターフェイス218は、NVM220のパワーアップ時又はNVM220の動作中に、どんなデータがその位置にあるか電子装置200が決定できるように、論理的アドレスを記憶する。特に、ファイルシステム210は、ユーザデータをその物理的アドレスではなく、その論理的アドレスに基づいて参照するので、NVMインターフェイス218は、ユーザデータ及び論理的アドレスを一緒に記憶して、それらの関連性を維持する。このように、論理的−物理的マッピングを維持しているNVM220のインデックステーブルが古くなった場合でも、NVMインターフェイス218は、例えば、電子装置200のパワーアップ時又は再ブート時に適切なマッピングを依然決定することができる。
【0037】
図3は、論理的アドレスを物理的ページへマッピングするための規範的なメモリマッピングアーキテクチャー300を示すブロック図である。このアーキテクチャー300は、揮発性メモリ(破線の左側に示す)及び不揮発性メモリ(破線の右側に示す)に分割される。ルックアップテーブル302及びインデックステーブルキャッシュ304は、揮発性メモリ(例えば、図1のメモリ114)に記憶され、一方、インデックステーブル306及びデータページ308は、不揮発性メモリ(例えば、図1のNVM120又は図2のNVM220)に記憶される。図3に示すように、データページ308は、データブロック1−Nに含まれる。
【0038】
インデックステーブル306は、インデックスページ1−Nを含む。インデックステーブル306のインデックスページ1−Nの各々は、1つ以上の論理的−物理的マッピングを記憶する。例えば、図3に示すように、インデックステーブル306のインデックスページ1は、論理的アドレスを、データブロック1及びデータブロックNの1つ以上のデータページへマップする。
【0039】
ルックアップテーブル302は、インデックステーブル306の位置(例えば、物理的アドレス)を保持する。例えば、ルックアップテーブル302は、インデックステーブル306の一部分を形成するインデックスページ1−Nの論理的−物理的マッピングを保持する。更に、ルックアップテーブル302は、インデックステーブルキャッシュ304のメモリ位置も記憶する。
【0040】
インデックステーブルキャッシュ304は、最近書き込まれた又はアクセスされた論理的アドレスの物理的アドレスを保持する。即ち、キャッシュ304は、現在プログラムされているか又は最近プログラムされたデータページ308に対する論理的−物理的マッピングを保持する。周期的なベースで、キャッシュ304に記憶された情報は、インデックステーブル306のインデックスページ1−Nへどっと流出される。その結果、キャッシュ304は、時々、インデックステーブル306にも記憶され得るマッピングの重畳コピーを与えることができる。
【0041】
電子装置が正常にシャットダウンすると(例えば、キャッシュ304に記憶された全ての情報がインデックステーブル306へどっと流出されると)、装置は、インデックスページ1−Nに記憶された論理的−物理的マッピングが有効であると仮定することができる。その結果、装置がパワーオン又は再ブートされた後に、装置は、インデックスページ1−Nに記憶されたマッピングを直接使用して、揮発性メモリにおけるマッピングを再構成することができる。例えば、NVMインターフェイス(例えば、図1のNVMインターフェイス118又は図2のNVMインターフェイス218)は、インデックスページ1−Nの論理的−物理的マッピングをキャッシュ304へコピーすることができる。インデックスページ1−Nは、データページ308のサイズの一部分しか占有しないので、このプロセスは、全NVMをスキャニングすることにより論理的−物理的マッピングを得ることに比して、より効率的となる。
【0042】
対照的に、電子装置が非正常シャットダウンすると(例えば、キャッシュ304に記憶された情報の少なくとも若干がインデックステーブル306へどっと流出されないと)、装置は、インデックステーブル306に記憶された情報に依存し得ない。特に、インデックステーブル306は、最も新しく書き込まれた又は消去されたユーザデータを捕獲し得ない。
【0043】
従来、装置が再ブートするときは、インデックステーブル306に記憶された論理的−物理的マッピングが無効であると仮定される。従って、装置は、NVMのデータブロックをスキャンして、キャッシュ304における論理的−物理的マッピングを再構成するように進む。例えば、装置は、データブロックに関連したブロックテーブルオブコンテンツ(TOC)を読み取ることによりデータブロックをスキャンする。例えば、図3に示す例では、ブロックTOC 1は、データブロック1に関連付けられ、ブロックTOC Nは、データブロックNに関連付けられ、等々である。各ブロックTOCは、それに対応するデータブロックに記憶され、そしてデータブロックのデータページをそれに対応する論理的アドレスへマップする情報を含む。従来のシステムでは、ブロックTOCは、プログラムされるページごとに論理的アドレス(例えば、LBA又は論理的ページ番号)を含むだけである。他の実施形態では、ブロックTOCは、ページに対してなされた更新の相対的年齢も含む(例えば、ページが他のデータ及び/又はインデックスページに対して更新されたとき)。このような構成では、ブロックTOCは、各データ及び/又はプログラムされたインデックスページに対して論理的アドレス−年齢対を含むことができる。
【0044】
上述したように、NVMの各データブロックをスキャンするプロセスは、時間がかかり且つ効率が悪い。従って、NVMの全てのデータブロックを自動的にスキャンするのではなく、装置は、他のソースから得た情報(例えば、インデックスページ及び/又はコンテクスト情報)をレバレッジして、非正常シャットダウンの後の論理的−物理的マッピングをより効率的に再構成することができる。図4ないし7は、本発明の種々の実施形態によるプロセスを例示するフローチャートである。これらのプロセスは、システムの1つ以上のコンポーネント(例えば、図1の電子装置100又は図2の電子装置200)によって実行される。例えば、図4ないし7のプロセスにおけるステップの少なくとも幾つかは、NVMインターフェイス(例えば、図1のNVMインターフェイス118又は図2のNVMインターフェイス218)によって遂行される。更に、当業者であれば、少なくとも幾つかのステップは、コントロール回路(例えば、図1のSoCコントロール回路112)によって遂行されることが明らかであろう。
【0045】
先ず、図4を参照すれば、非正常シャットダウン事象を取り扱うためのプロセス400が示されている。プロセス400は、ステップ402において開始され、そしてステップ404において、NVMインターフェイスは、非正常シャットダウン事象が生じたことを決定する。
【0046】
ステップ406において、NVMインターフェイスは、NVM(例えば、図1のNVM120又は図2のNVM220)の複数のインデックスページ(例えば、図3のインデックスページ1−N)をインデックスページの年齢についてスキャンすることができる。インデックスページの年齢は、そのインデックスページの信頼性の指示である。
【0047】
ステップ408へ続くと、NVMインターフェイスは、インデックスページの年齢を、そのインデックスページに対応するNVMのデータページの年齢と比較する。この比較に基づいて、NVMインターフェイスは、特定のインデックスページがそれに対応するデータページより若年であるか(例えば、よりフレッシュであるか)又は老年であるか決定することができる。
【0048】
当業者であれば、インデックスページの相対的な年齢とそれに対応するデータページとを比較するために適当なパラメータ(例えば、メタデータとして記憶される1つ以上のパラメータ)を使用できることが明らかであろう。例えば、ページの年齢に逆に関連付けられるカウンタを使用することができる(例えば、老年のページは、小さなカウンタに関連付けられ、そして若年のページは、大きなカウンタに関連付けられる)。
【0049】
インデックスページの年齢をそれに対応するデータページの年齢と比較した後に、プロセス400は、ステップ410へ進む。ステップ410において、NVMインターフェイスは、その比較に少なくとも一部分基づいて各インデックスページの信頼性を決定する。
【0050】
特に、NVMインターフェイスは、インデックスページの年齢がそれに対応するデータページの年齢より老年であると決定した場合には、インデックスページが信頼できず、それ故、無効であると決定する(例えば、インデックスページは、それに対応するデータページが更新されて以来、更新されていない)。その結果、NVMインターフェイスは、より若年のデータブロックをスキャンして、インデックスページの論理的アドレスに対応する論理的−物理的マッピングを再構成することができる。
【0051】
対照的に、そうではなくて、NVMインターフェイスは、インデックスページの年齢がそれに対応するデータページの年齢より老年ではない(例えば、インデックスページの年齢がそれに対応するデータページの年齢より若年又は同年である)と決定した場合には、インデックスページが信頼でき、それ故、有効であると決定する(例えば、インデックスページは、それに対応するデータページと同時に又はその後に更新されている)。その結果、インデックスページに記憶された論理的−物理的マッピングは、有効であると考えられ、NVMインターフェイスは、インデックスページのマッピングを使用して、揮発性メモリにおけるマッピングを再構成することができる。次いで、プロセス400は、ステップ412で終了となる。
【0052】
このような解決策を使用することにより、NVMインターフェイスは、NVMのデータブロックごとのスキャンを回避し、むしろ、インデックスページ(例えば、有効なインデックスページ)のサブセットを直接使用して、揮発性メモリにおける論理的−物理的マッピングを再構成することができる。更に、無効のインデックスページは、全インデックスページ数の僅かな部分しか構成しないので、NVMインターフェイスは、無効のインデックスページの論理的アドレスに対応するデータブロックの小さなサブセットをスキャンするだけでよい。従って、この解決策は、非正常シャットダウン事象の後に論理的−物理的マッピングを再構成するのに必要な時間量を著しく減少することができる。
【0053】
図5を参照すれば、NVM(例えば、図1のNVM120又は図2のNVM220)のインデックスページの年齢をデータページの年齢と比較するためのプロセス500が示されている。ある実施形態では、プロセス500は、プロセス400(図4)の比較ステップ408及び決定ステップ410をより詳細に表現するものである。
【0054】
プロセス500は、ステップ502で始まり、そしてステップ504において、NVMインターフェイスは、NVMに記憶されたインデックスページを選択する。例えば、NVMインターフェイスは、インデックステーブル306(図3)からインデックスページを選択する。
【0055】
次いで、ステップ506において、NVMインターフェイスは、インデックスページの年齢がそれに対応するデータページの年齢より老年であるかどうか決定する。例えば、NVMインターフェイスは、インデックスページのカウンタがそれに対応するデータページのカウンタより大きいかどうか決定し、ひいては、インデックスページが有効であるかどうか決定する。インデックスページの年齢がそれに対応するデータページの年齢より老年ではない(例えば、インデックスページのカウンタがそれに対応するデータページのカウンタと同じ又はそれより大きい)とNVMインターフェイスが決定する場合には、プロセス500がステップ508へ進む。即ち、NVMインターフェイスは、インデックスページが有効なインデックスページであると決定する。
【0056】
ステップ508において、NVMインターフェイスは、まだ選択されていない付加的なインデックスページがあるかどうか決定する。ステップ508において、付加的なインデックスページがないことをNVMインターフェイスが決定すると、プロセス500は、ステップ510において終了となる。ステップ508において、付加的なインデックスページがあるとNVMインターフェイスが決定すると、プロセス500は、ステップ504へ戻り、NVMインターフェイスは、別のインデックスページを選択する。
【0057】
ステップ506へ戻ると、インデックスページの年齢がそれに対応するデータページの年齢より老年である(例えば、インデックスページのカウンタがそれに対応するデータページのカウンタより小さい)とNVMインターフェイスが決定する場合には、プロセス500がステップ521へ進む。即ち、NVMインターフェイスは、インデックスページが無効のインデックスページであると決定する。
【0058】
ステップ512において、NVMインターフェイスは、データページの年齢がインデックスページの年齢より若年であるNVMの1つ以上のデータブロックをスキャンする。次いで、プロセス500は、ステップ514へ進む。
【0059】
ステップ514において、NVMインターフェイスは、1つ以上のデータブロックのうちの1つを選択し、その選択されたデータブロックは、インデックスページに関連付けられた1つ以上のデータページを含むものである(例えば、インデックスページは、その選択されたデータブロックの1つ以上のデータページに対応する論理的−物理的マッピングを記憶する)。
【0060】
次いで、ステップ516において、NVMインターフェイスは、1つ以上のデータページの年齢がインデックスページの年齢より若年であるかどうか決定する。ステップ516において、1つ以上のデータページの年齢がインデックスページの年齢より若年でないとNVMインターフェイスが決定すると、プロセス500は、ステップ518へ進む。
【0061】
ステップ518において、NVMインターフェイスは、1つ以上のデータブロックに付加的なデータブロックがあるかどうか決定する。ステップ518において、付加的なデータブロックがあるとNVMインターフェイスが決定すると、プロセス500は、ステップ514へ進む。ステップ514において、NVMインターフェイスは、インデックスページに関連付けられた1つ以上のデータページを有する別のデータブロックを選択する。ステップ518において、付加的なデータブロックがないとNVMインターフェイスが決定すると、プロセス500は、ステップ508へ進み、NVMインターフェイスは、付加的なインデックスページがあるかどうか決定する。
【0062】
ステップ516へ戻ると、1つ以上のデータページの年齢がインデックスページの年齢より若年であるとNVMインターフェイスが決定すると、プロセス500は、ステップ520へ進む。ステップ520において、NVMインターフェイスは、インデックスページを、揮発性メモリ(例えば、図1のメモリ114)におけるインデックステーブルキャッシュ(例えば、図3のインデックステーブルキャッシュ304)へコピーする。
【0063】
ステップ522において、NVMインターフェイスは、選択されたデータブロックを使用してキャッシュの1つ以上のエントリを更新する。例えば、選択されたデータブロックを使用して、NVMインターフェイスは、インデックスページの1つ以上の論理的アドレスに対応する論理的−物理的マッピングを再構成する。
【0064】
ある実施形態では、NVMインターフェイスは、選択されたデータブロック(例えば、図3のデータブロック1のブロックTOC 1又はデータブロックNのブロックTOC N)を読み取ることにより論理的−物理的マッピングを再構成する。例えば、ブロックTOCが、論理的−物理的マッピングに加えてページ更新の相対的な年齢を含む場合には、NVMインターフェイスは、ブロックTOCを参照するだけで、更新された論理的−物理的マッピングを得ることができる。
【0065】
他の実施形態では、NVMインターフェイスは、選択されたデータブロックに記憶されたメタデータをスキャンすることにより論理的−物理的マッピングを再構成することができる。例えば、ブロックTOCが、プログラムされたページの論理的アドレスしか含まない場合には、NVMインターフェイスは、メタデータをスキャニングすることによりページの年齢を決定し、そして更新された論理的−物理的マッピングを得ることができる。インデックスページの1つ以上のエントリを更新した後に、プロセスは、ステップ522へ進む。ある実施形態では、NVMインターフェイスは、再構成された論理的−物理的マッピングでインデックステーブル(例えば、図3のインデックステーブル306)を更新する。
【0066】
プロセス500は、次いで、ステップ518へ進み、NVMインターフェイスは、付加的なデータブロックがあるかどうか決定する。
【0067】
図6は、コンテクスト情報を使用して非正常シャットダウン事象を取り扱うプロセスを例示するフローチャートである。特に、NVMインターフェイスは、NVM(図1のNVM120又は図2のNVM220)に記憶されたコンテクスト情報からレバレッジすることにより論理的−物理的マッピングを再構成する。ここで使用する「コンテクスト情報」とは、特定の時点における全NVMの状態に関連した情報を指す。例えば、コンテクスト情報は、特定の時点におけるNVMの全てのデータブロックに対する論理的−物理的マッピングを含む。
【0068】
ある実施形態では、コンテクスト情報は、NVMの1つ以上の指定のブロックに記憶される。例えば、図3に戻ると、コンテクストブロック310は、コンテクスト情報を記憶するのに使用されるNVMのブロックである。
【0069】
図6に戻ると、プロセス600は、ステップ602で始まり、そしてステップ604において、NVMインターフェイスは、非正常シャットダウン事象が生じたことを検出する。次いで、ステップ606において、NVMインターフェイスは、非正常シャットダウン事象の前にNVM(例えば、図3のコンテクストブロック310)に記憶されたコンテクスト情報をサーチする。即ち、NVMインターフェイスは、非正常シャットダウン事象が生じる前にNVMにセーブされたコンテクスト情報の最新のコピーを得ることができる。コンテクスト情報をサーチした後に、プロセス600は、ステップ608へ進む。
【0070】
ステップ608において、NVMインターフェイスは、コンテクスト情報(例えば、コンテクスト情報の最新のコピー)を揮発性メモリ(例えば、図1のメモリ114)へロードする。例えば、NVMインターフェイスは、コンテクスト情報を揮発性メモリのキャッシュ(例えば、図3のインデックステーブルキャッシュ304)及び/又はルックアップテーブル(例えば、図3のルックアップテーブル302)へロードする。
【0071】
次いで、ステップ610において、NVMインターフェイスは、ロードされたコンテクスト情報の年齢より若年の年齢(例えば、コンテクスト情報が記憶されたコンテクストブロックのカウンタより大きな1つ以上のデータブロックのカウンタ)でNVMの1つ以上のデータブロックを識別する。特に、これらのデータブロックは、コンテクスト情報により捕獲されなかった更新された論理的−物理的マッピングを含む。次いで、プロセス600は、ステップ612へ進む。
【0072】
ステップ612において、NVMインターフェイスは、1つ以上のデータブロックの完全な回復を果たす。例えば、NVMインターフェイスは、1つ以上のデータブロックをスキャンして(例えば、1つ以上のブロックTOC及び/又はデータブロックのメタデータを読み取って)、論理的−物理的マッピングを得ることができる。コンテクスト情報が最近セーブされた場合には、論理的−物理的マッピングを再構成するための時間が短縮される。というのは、データブロックの小さなサブセットに対して完全な回復を行えばよいからである。
【0073】
プロセス600は、次いで、ステップ614で終了となる。完全回復プロセスの詳細な説明は、参考としてここにそのまま援用する2009年7月24日に出願された“Restore Index Page”と題するワクラ氏等の米国特許出願第12/509,071号に見ることができる。
【0074】
図7は、混成型解決策を使用して非正常シャットダウン事象を取り扱うためのプロセス700を例示するフローチャートである。特に、NVMインターフェイスは、コンテクスト情報及びインデックスページの両方からレバレッジすることにより論理的−物理的マッピングを再構成することができる。
【0075】
プロセス700は、ステップ702で始まり、そしてステップ704において、NVMインターフェイスは、非正常シャットダウン事象が生じたことを検出する。次いで、ステップ706において、NVMインターフェイスは、コンテクスト情報を使用してNVMのデータブロックのセットに対する論理的−物理的マッピングを得る。例えば、データブロックのセットは、コンテクスト情報が最後にセーブされて以来更新されていないデータブロックである。
【0076】
ステップ708へと続き、NVMインターフェイスは、NVMの残りのデータブロックに対する論理的−物理的マッピングを再構成する。例えば、NVMインターフェイスは、1つ以上のインデックスページを使用して論理的−物理的マッピングを再構成する。残りのデータブロックは、コンテクスト情報により捕獲されていないデータブロックを含む(例えば、コンテクスト情報が最後にセーブされて以来更新されたデータブロック)。
【0077】
残りのデータブロックに対する論理的−物理的マッピングを再構成するために、NVMインターフェイスは、プロセス400(図4)及び500(図5)と同様のプロセスを使用する。例えば、1つ以上のインデックスページは、残りのデータブロックの物理的アドレスと、それに対応する論理的アドレスとの間のマッピングを記憶する。特に、NVMインターフェイスは、1つ以上のインデックスページの年齢がそれに対応するデータページの年齢より老年であるかどうか決定する。
【0078】
1つ以上のインデックスページの年齢がそれに対応するデータページの年齢より老年であるとNVMインターフェイスが決定すると、NVMインターフェイスは、少なくとも残りのデータブロックのサブセットをスキャニングすることにより完全な回復を遂行する。少なくとも残りのデータブロックのサブセットをスキャニングすることにより、NVMインターフェイスは、1つ以上のインデックスページの論理的アドレスに対応する論理的−物理的マッピングを得る。次いで、NVMインターフェイスは、揮発性メモリのキャッシュ(例えば、図3のインデックステーブルキャッシュ304)へインデックスページをコピーし、そして論理的−物理的マッピングに基づいてキャッシュのエントリを更新する。プロセス700は、ステップ710において終了する。
【0079】
従って、論理的−物理的マッピングを再構成するためにコンテクスト情報がインデックスページに関連して使用されるので、システム再ブート後に処理される必要のある情報の量を更に減少することができる。特に、全データブロック数のうちの小さなサブセットに対して完全回復を遂行するだけでよい。これは、システムの効率を改善し、そして非正常シャットダウンからの回復に必要な時間量を短縮することができる。
【0080】
図4ないし7のプロセス400、500、600及び700は、単なる例示に過ぎないことを理解されたい。本発明の範囲から逸脱せずに、いずれのステップを除去、変更又は結合することもできるし、又、いずれの付加的なステップを追加することもできる。
【0081】
本発明の以上に述べた実施形態は、例示のためのものであり、これに限定されるものではない。
【符号の説明】
【0082】
100:電子装置
110:システムオンチップ(SoC)
112:SoCコントロール回路
114:メモリ
118:NVMインターフェイス
120:不揮発性メモリ(NVM)
200:電子装置
210:ファイルシステム
212:NVMドライバ
216:NVMバスコントローラ
218:NVMインターフェイス
220:NVM
302:ルックアップテーブル
304:インデックステーブルキャッシュ
306:インデックステーブル
308:データページ
310:コンテクストブロック

【特許請求の範囲】
【請求項1】
装置欠陥から回復する方法において、
電子装置のコントロール回路を使用して、非正常シャットダウン事象が生じたことを検出する段階と、
前記コントロール回路を使用して、不揮発性メモリ(NVM)の複数のインデックスページを、その複数のインデックスページの年齢についてスキャニングする段階と、
前記コントロール回路を使用して、前記複数のインデックスページの年齢を、前記複数のインデックスページに対応するNVMのデータページの年齢と比較する段階と、
前記コントロール回路を使用して、前記複数のインデックスページのうちの各インデックスページの信頼性を前記比較に少なくとも一部分基づいて決定する段階と、
を備えた方法。
【請求項2】
前記複数のインデックスページのうちの各インデックスページは、少なくとも1つの論理的アドレスを前記データページの少なくとも1つの物理的アドレスへとマップする、請求項1に記載の方法。
【請求項3】
前記比較段階は、
前記複数のインデックスページのうちの各インデックスページに対し、前記コントロール回路を使用して、前記インデックスページの年齢がそれに対応するデータページの複数の年齢より老いているかどうか決定し、
前記インデックスページの年齢がそれに対応するデータページの複数の年齢より老いていないとの決定に応答して、前記コントロール回路を使用して、前記インデックスページが信頼できるものであると決定する、
ことを含む請求項1又は2に記載の方法。
【請求項4】
前記インデックスページの年齢がそれに対応するデータページの複数の年齢より老いているとの決定に応答して、前記コントロール回路を使用して、前記インデックスページが信頼できるものでないと決定する、請求項3に記載の方法。
【請求項5】
前記コントロール回路を使用して、データページの年齢がインデックスページの年齢より若いNVMの少なくとも1つのデータブロックをスキャニングする段階を更に備えた、請求項4に記載の方法。
【請求項6】
前記コントロール回路を使用して、少なくとも1つのデータブロックが、前記インデックスページに関連した少なくとも1つのデータページを含むことを決定する段階と、
前記コントロール回路を使用して、前記少なくとも1つのデータページの年齢が前記インデックスページの年齢より若いかどうか決定する段階と、
前記少なくとも1つのデータページの年齢が前記インデックスページの年齢より若いという決定に応答して、前記コントロール回路を使用して、前記インデックスページを揮発性メモリのキャッシュへコピーする段階と、
を更に備えた請求項5に記載の方法。
【請求項7】
前記コントロール回路を使用し、前記少なくとも1つのデータブロックを使用して前記キャッシュの少なくとも1つのエントリを更新する段階を更に備えた、請求項6に記載の方法。
【請求項8】
前記更新段階は、前記コントロール回路を使用し、前記少なくとも1つのデータブロックを使用して前記インデックスページの論理的アドレスに対応する論理的−物理的マッピングを再構成することを含む、請求項7に記載の方法。
【請求項9】
前記再構成は、更に、前記コントロール回路を使用して、前記NVMの少なくとも1つのデータブロックに記憶されたメタデータをスキャニングすることを含む、請求項8に記載の方法。
【請求項10】
前記再構成は、更に、前記コントロール回路を使用して、前記少なくとも1つのデータブロックのコンテンツのブロックテーブルを読み取ることを含む、請求項8に記載の方法。
【請求項11】
不揮発性メモリ(NVM)にアクセスするためのメモリインターフェイスにおいて、
非正常シャットダウン事象が生じたことを検出し、
非正常シャットダウン事象の前にNVMに記憶されたコンテクスト情報をサーチし、このコンテクスト情報は、NVMのブロックに記憶され、
前記コンテクスト情報を揮発性メモリへロードし、
前記ロードされたコンテクスト情報の年齢より若い年齢でNVMの少なくとも1つのデータブロックを識別し、
前記少なくとも1つのデータブロックの完全回復を遂行する、
ように働くコントロール回路を備えたメモリインターフェイス。
【請求項12】
前記コンテクスト情報は、特定の時間におけるNVMの複数のデータブロックに対する論理的−物理的マッピングを含む、請求項11に記載のメモリインターフェイス。
【請求項13】
前記コントロール回路は、前記揮発性メモリに記憶されたキャッシュへ前記コンテクスト情報をロードするように動作する、請求項11又は12のいずれかに記載のメモリインターフェイス。
【請求項14】
前記コントロール回路は、前記揮発性メモリに記憶されたルックアップテーブルへ前記コンテクスト情報をロードするように動作する、請求項11又は12のいずれかに記載のメモリインターフェイス。
【請求項15】
複数のインデックスページを有するインデックスブロック及びコンテクスト情報を含むコンテクストブロックを備えた不揮発性メモリ(NVM)と、
コントロール回路であって、
非正常シャットダウン事象が生じたことを検出し、
前記コンテクスト情報を使用してNVMのデータブロックのセットに対する論理的−物理的マッピングを得、
前記複数のインデックスページのうちの少なくとも1つのインデックスページに少なくとも一部分基づいてNVMの残りのデータブロックに対する論理的−物理的マッピングを再構成する、
ように動作するコントロール回路と、
を備えたシステム。
【請求項16】
前記複数のインデックスページのうちの各インデックスページは、少なくとも1つの論理的アドレスを、残りのデータブロックのデータページの少なくとも1つの物理的アドレスへとマップする、請求項15に記載のシステム。
【請求項17】
前記コントロール回路は、
前記少なくとも1つのインデックスページの年齢がそれに対応するデータページの複数の年齢より老いているかどうか決定し、
前記少なくとも1つのインデックスページの年齢がそれに対応するデータページの複数の年齢より老いているとの決定に応答して、少なくとも前記NVMの残りのデータブロックのサブセットをスキャンする、
ように動作する請求項15又は16に記載のシステム。
【請求項18】
前記少なくとも残りのデータブロックのサブセットは、前記少なくとも1つのインデックスページの年齢より年齢が若いデータページを有する、請求項17に記載のシステム。
【請求項19】
キャッシュを有する揮発性メモリを更に備え、前記コントロール回路は、
前記少なくとも1つのインデックスページの論理的アドレスに対応する論理的−物理的マッピングを得、
前記少なくとも1つのインデックスページを前記キャッシュへコピーし、
前記論理的−物理的マッピングに基づいて前記キャッシュの少なくとも1つのエントリを更新する、
ように動作する請求項17に記載のシステム。
【請求項20】
装置欠陥から回復するシステムにおいて、
非正常シャットダウン事象が生じたことを検出する手段と、
不揮発性メモリ(NVM)の複数のインデックスページを、その複数のインデックスページの年齢についてスキャニングする手段と、
前記複数のインデックスページの年齢を、前記複数のインデックスページに対応するNVMのデータページの年齢と比較する手段と、
前記複数のインデックスページのうちの各インデックスページの信頼性を前記比較に少なくとも一部分基づいて決定する手段と、
を備えたシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate