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

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

Info

Publication number
JP2013065308A
JP2013065308A JP2012221680A JP2012221680A JP2013065308A JP 2013065308 A JP2013065308 A JP 2013065308A JP 2012221680 A JP2012221680 A JP 2012221680A JP 2012221680 A JP2012221680 A JP 2012221680A JP 2013065308 A JP2013065308 A JP 2013065308A
Authority
JP
Japan
Prior art keywords
index
nvm
page
data
control circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012221680A
Other languages
English (en)
Other versions
JP5702348B2 (ja
Inventor
Khmelnitsky Vadim
フメリニツキー ヴァディム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of JP2013065308A publication Critical patent/JP2013065308A/ja
Application granted granted Critical
Publication of JP5702348B2 publication Critical patent/JP5702348B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

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

Description

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

Claims (20)

  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のデータページの年齢と比較する手段と、
    前記複数のインデックスページのうちの各インデックスページの信頼性を前記比較に少なくとも一部分基づいて決定する手段と、
    を備えたシステム。
JP2012221680A 2011-09-16 2012-09-14 不揮発性メモリを有するシステムの非正常シャットダウンの取り扱い Active JP5702348B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/234,934 US9104614B2 (en) 2011-09-16 2011-09-16 Handling unclean shutdowns for a system having non-volatile memory
US13/234,934 2011-09-16

Publications (2)

Publication Number Publication Date
JP2013065308A true JP2013065308A (ja) 2013-04-11
JP5702348B2 JP5702348B2 (ja) 2015-04-15

Family

ID=47002643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012221680A Active JP5702348B2 (ja) 2011-09-16 2012-09-14 不揮発性メモリを有するシステムの非正常シャットダウンの取り扱い

Country Status (7)

Country Link
US (1) US9104614B2 (ja)
EP (1) EP2570927B1 (ja)
JP (1) JP5702348B2 (ja)
KR (2) KR101450396B1 (ja)
CN (1) CN102999430B (ja)
TW (2) TWI554877B (ja)
WO (1) WO2013040236A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016219013A (ja) * 2015-05-19 2016-12-22 イーエムシー コーポレイションEmc Corporation データを格納するための方法およびデータを格納するための一時的でないコンピュータ読取可能媒体
US10331552B2 (en) 2015-03-10 2019-06-25 Toshiba Memory Corporation Storage device and memory system

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5874525B2 (ja) * 2012-05-11 2016-03-02 ソニー株式会社 制御装置、記憶装置、記憶制御方法
US9836353B2 (en) * 2012-09-12 2017-12-05 International Business Machines Corporation Reconstruction of system definitional and state information
AT514444A2 (de) * 2013-06-24 2015-01-15 Fts Computertechnik Gmbh Verfahren und Vorrichtung zur zeitrichtigen Datenübergabe an die zyklischen Tasks in einem verteilten Echtzeitsystem
US9829966B2 (en) 2014-09-15 2017-11-28 Apple Inc. Method for preparing a system for a power loss
KR102403202B1 (ko) 2015-03-13 2022-05-30 삼성전자주식회사 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법
FR3036205B1 (fr) * 2015-05-13 2019-05-24 Thales Systeme informatique de divertissement en vol, embarque a bord d'un aeronef
US10120823B2 (en) * 2015-09-25 2018-11-06 Toshiba Memory Corporation Host-safe firmware upgrade of a PCI express device
TWI607309B (zh) 2016-03-16 2017-12-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
KR102653401B1 (ko) * 2016-07-18 2024-04-03 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
US20180239532A1 (en) 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10359955B2 (en) * 2017-02-23 2019-07-23 Western Digital Technologies, Inc. Data storage device configured to perform a non-blocking control update operation
US20180364937A1 (en) 2017-06-20 2018-12-20 Samsung Electronics Co., Ltd. System and method for managing memory device
KR20200113387A (ko) 2019-03-25 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10942659B2 (en) * 2019-06-03 2021-03-09 International Business Machines Corporation Persistent logical to virtual table
CN112148645A (zh) * 2019-06-28 2020-12-29 北京忆芯科技有限公司 去分配命令处理方法及其存储设备
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase
CN114510198B (zh) * 2022-02-16 2023-06-30 北京中电华大电子设计有限责任公司 一种提高nvm擦写效率的方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167795A (ja) * 2001-11-16 2003-06-13 Samsung Electronics Co Ltd フラッシュメモリの管理方法
US20050131853A1 (en) * 2003-12-11 2005-06-16 Sybase, Inc. Database System Providing Self-Tuned Parallel Database Recovery
JP2008191930A (ja) * 2007-02-05 2008-08-21 Sony Corp 不揮発性半導体記憶装置およびその管理方法
JP2010517131A (ja) * 2007-01-18 2010-05-20 サンディスク アイエル リミテッド フラッシュメモリシステムの高速起動を容易にする方法およびシステム
US20100250837A1 (en) * 2008-05-28 2010-09-30 Hyperstone Gmbh Method for Addressing Page-Oriented Non-Volatile Memories
CN101930404A (zh) * 2010-08-27 2010-12-29 威盛电子股份有限公司 存储装置及其操作方法
US20110022780A1 (en) * 2009-07-24 2011-01-27 Nir Jacob Wakrat Restore index page
WO2011040950A2 (en) * 2009-10-01 2011-04-07 Micron Technology, Inc. Power interrupt management
JP2011511388A (ja) * 2008-02-04 2011-04-07 アップル インコーポレイテッド メモリマッピング技術
JP2011123560A (ja) * 2009-12-08 2011-06-23 Oki Electric Industry Co Ltd フラッシュディスク装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397351B1 (en) 1998-09-28 2002-05-28 International Business Machines Corporation Method and apparatus for rapid data restoration including on-demand output of sorted logged changes
US7269608B2 (en) * 2001-05-30 2007-09-11 Sun Microsystems, Inc. Apparatus and methods for caching objects using main memory and persistent memory
US7137026B2 (en) 2001-10-04 2006-11-14 Nokia Corporation Crash recovery system
US20030220949A1 (en) 2002-01-22 2003-11-27 Columbia Data Products, Inc. Automatic deletion in data storage management
US7051050B2 (en) 2002-03-19 2006-05-23 Netwrok Appliance, Inc. System and method for restoring a single file from a snapshot
US8095511B2 (en) 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
TWI275936B (en) 2004-03-02 2007-03-11 Infortrend Technology Inc Filesystem journaling architecture and data writing method therefor
US7711923B2 (en) * 2006-06-23 2010-05-04 Microsoft Corporation Persistent flash memory mapping table
KR100843543B1 (ko) 2006-10-25 2008-07-04 삼성전자주식회사 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
TW200828273A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Hard disk cache device and method
US7818610B2 (en) 2007-09-27 2010-10-19 Microsoft Corporation Rapid crash recovery for flash storage
US8219776B2 (en) 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US20120150527A1 (en) 2009-08-21 2012-06-14 Tadhg Creedon Storage peripheral device emulation
WO2012083308A2 (en) * 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167795A (ja) * 2001-11-16 2003-06-13 Samsung Electronics Co Ltd フラッシュメモリの管理方法
US20050131853A1 (en) * 2003-12-11 2005-06-16 Sybase, Inc. Database System Providing Self-Tuned Parallel Database Recovery
JP2010517131A (ja) * 2007-01-18 2010-05-20 サンディスク アイエル リミテッド フラッシュメモリシステムの高速起動を容易にする方法およびシステム
JP2008191930A (ja) * 2007-02-05 2008-08-21 Sony Corp 不揮発性半導体記憶装置およびその管理方法
JP2011511388A (ja) * 2008-02-04 2011-04-07 アップル インコーポレイテッド メモリマッピング技術
US20100250837A1 (en) * 2008-05-28 2010-09-30 Hyperstone Gmbh Method for Addressing Page-Oriented Non-Volatile Memories
US20110022780A1 (en) * 2009-07-24 2011-01-27 Nir Jacob Wakrat Restore index page
WO2011040950A2 (en) * 2009-10-01 2011-04-07 Micron Technology, Inc. Power interrupt management
JP2011123560A (ja) * 2009-12-08 2011-06-23 Oki Electric Industry Co Ltd フラッシュディスク装置
CN101930404A (zh) * 2010-08-27 2010-12-29 威盛电子股份有限公司 存储装置及其操作方法
US20120054419A1 (en) * 2010-08-27 2012-03-01 Via Technologies, Inc. Memory device and operating method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10331552B2 (en) 2015-03-10 2019-06-25 Toshiba Memory Corporation Storage device and memory system
JP2016219013A (ja) * 2015-05-19 2016-12-22 イーエムシー コーポレイションEmc Corporation データを格納するための方法およびデータを格納するための一時的でないコンピュータ読取可能媒体

Also Published As

Publication number Publication date
TW201329700A (zh) 2013-07-16
US9104614B2 (en) 2015-08-11
EP2570927A1 (en) 2013-03-20
TW201329699A (zh) 2013-07-16
CN102999430A (zh) 2013-03-27
KR101900760B1 (ko) 2018-09-20
KR101450396B1 (ko) 2014-10-14
TWI506417B (zh) 2015-11-01
EP2570927B1 (en) 2018-04-25
WO2013040236A1 (en) 2013-03-21
KR20130030237A (ko) 2013-03-26
US20130073897A1 (en) 2013-03-21
KR20130030242A (ko) 2013-03-26
TWI554877B (zh) 2016-10-21
JP5702348B2 (ja) 2015-04-15
CN102999430B (zh) 2016-04-27

Similar Documents

Publication Publication Date Title
JP5702348B2 (ja) 不揮発性メモリを有するシステムの非正常シャットダウンの取り扱い
JP5696118B2 (ja) 不揮発性メモリシステムのためのウィーブシーケンスカウンタ
US9342449B2 (en) Metadata redundancy schemes for non-volatile memories
US8478796B2 (en) Uncorrectable error handling schemes for non-volatile memories
US8812816B2 (en) Garbage collection schemes for index block
US9104329B2 (en) Mount-time reconciliation of data availability

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140916

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150219

R150 Certificate of patent or registration of utility model

Ref document number: 5702348

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250