JP5683023B2 - 不揮発性一時データの処理 - Google Patents

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

Info

Publication number
JP5683023B2
JP5683023B2 JP2012173367A JP2012173367A JP5683023B2 JP 5683023 B2 JP5683023 B2 JP 5683023B2 JP 2012173367 A JP2012173367 A JP 2012173367A JP 2012173367 A JP2012173367 A JP 2012173367A JP 5683023 B2 JP5683023 B2 JP 5683023B2
Authority
JP
Japan
Prior art keywords
data
temporary
electronic device
page
nvm
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.)
Expired - Fee Related
Application number
JP2012173367A
Other languages
English (en)
Other versions
JP2013033482A (ja
Inventor
ジェイ ワクラット ニア
ジェイ ワクラット ニア
ジェイ ポスト ダニエル
ジェイ ポスト ダニエル
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 JP2013033482A publication Critical patent/JP2013033482A/ja
Application granted granted Critical
Publication of JP5683023B2 publication Critical patent/JP5683023B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • 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
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers

Description

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

Claims (20)

  1. 休止前の動作状態でオペレーティングしている少なくとも1つのアプリケーションに関係するアプリケーション生成データを記憶するための揮発性メモリと、
    複数のページを有する不揮発性メモリ(NVM)と、
    制御回路と、
    を備えた電子装置であって、
    前記制御回路は、
    休止前の動作状態でオペレーティング中のアプリケーションが休止状態に入っていく通知を受信し、
    休止状態に入っていくアプリケーションに関係する前記アプリケーション生成データを一時データとして前記不揮発性メモリに記憶する、
    ように構成され、
    前記制御回路が、前記電子装置の唯一のブートサイクルのために要求されるデータを含む前記一時データを記憶する前記複数のページの少なくとも1つのページに一時マーカを記憶し、前記アプリケーション生成データが、休止状態中の前記アプリケーションを休止前の動作状態に戻ることを可能にするデータを含む、ことを特徴とする前記電子装置。
  2. 前記電子装置がさらに、
    前記一時データのためのメタデータを準備し、
    前記メタデータ及び前記一時マーカを、前記一時データを記憶する前記ページの少なくとも1つのメタデータフィールドに記憶することを特徴とする請求項1に記載の電子装置。
  3. 前記一時マーカが、所定のビットパターンを有することを特徴とする請求項1に記載の電子装置。
  4. 前記複数のページがブロックに編成され、
    前記制御回路が、さらに、
    前記一時データを記憶するための、前記ブロックの1つを選択し、
    前記一時マーカを、前記選択したブロックの少なくとも1つのページに記憶する、
    ことを特徴とする請求項1に記載の電子装置。
  5. 前記制御回路が、さらに、前記選択したブロックの前記ページ全てに前記一時マーカを記憶することを特徴とする請求項4に記載の電子装置。
  6. 前記制御回路が、さらに、
    前記揮発性メモリが低メモリ状態であることを識別し、
    前記低メモリ状態の識別に応答して、前記一時データを前記不揮発性メモリに記憶する、
    ことを特徴とする請求項1に記載の電子装置。
  7. 前記制御回路が、さらに、前記一時データを記憶するためにより低性能のページを選択することを特徴とする請求項1に記載の電子装置。
  8. 前記制御回路が、さらに、前記一時データを記憶するためにより高速のプログラミング技術を選択することを特徴とする請求項1に記載の電子装置。
  9. 複数のページを有する不揮発性メモリにデータを記憶する方法であって、
    休止前の動作状態でオペレーティングしている少なくとも1つのアプリケーションに関係するアプリケーション生成データとして一時データを識別するステップと、
    前記データのための、一時マーカを有するメタデータを準備するステップと、
    休止前の動作状態でオペレーティング中のアプリケーションが休止状態に入っていく通知を受信するステップと、
    前記データに関し、一時マーカを含むメタデータを準備するステップと、
    休止状態に入っていくアプリケーションに関係する前記アプリケーション生成データ及び前記メタデータを一時データとして前記不揮発性メモリの少なくとも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に記載の電子装置。
JP2012173367A 2011-07-18 2012-07-18 不揮発性一時データの処理 Expired - Fee Related JP5683023B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/184,647 2011-07-18
US13/184,647 US8949508B2 (en) 2011-07-18 2011-07-18 Non-volatile temporary data handling

Publications (2)

Publication Number Publication Date
JP2013033482A JP2013033482A (ja) 2013-02-14
JP5683023B2 true JP5683023B2 (ja) 2015-03-11

Family

ID=46548260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012173367A Expired - Fee Related JP5683023B2 (ja) 2011-07-18 2012-07-18 不揮発性一時データの処理

Country Status (9)

Country Link
US (1) US8949508B2 (ja)
EP (1) EP2549385B1 (ja)
JP (1) JP5683023B2 (ja)
KR (2) KR101385789B1 (ja)
CN (1) CN102890620B (ja)
AU (1) AU2012205187B2 (ja)
BR (1) BR102012017717B1 (ja)
TW (2) TWI519952B (ja)
WO (1) WO2013012632A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949508B2 (en) 2011-07-18 2015-02-03 Apple Inc. Non-volatile temporary data handling
EP2745203B1 (en) * 2011-08-19 2016-09-21 Kabushiki Kaisha Toshiba Information processing apparatus
US20130124778A1 (en) * 2011-11-10 2013-05-16 Greenliant Llc Method of storing host data and meta data in a nand memory, a memory controller and a memory system
US20160002826A1 (en) 2013-02-22 2016-01-07 Kuraray Co., Ltd. Fiber, fabric, and nonwoven fabric
US10528116B2 (en) * 2013-03-14 2020-01-07 Seagate Technology Llc Fast resume from hibernate
CN104346292B (zh) 2013-08-05 2017-10-24 慧荣科技股份有限公司 用来管理一记忆装置的方法、记忆装置与控制器
CN107391389B (zh) 2013-08-05 2020-11-24 慧荣科技股份有限公司 用来管理一记忆装置的方法以及记忆装置与控制器
US10140477B2 (en) 2013-12-09 2018-11-27 Thales E-Security, Inc. Obfuscating in memory encryption keys
FR3046266A1 (fr) * 2015-12-28 2017-06-30 Proton World Int Nv Stockage dans une memoire flash
US9990023B2 (en) * 2016-03-28 2018-06-05 Apple Inc. Systems and methods for handling sudden power failures in solid state drives
CN106569744B (zh) * 2016-10-31 2020-07-14 华为数字技术(成都)有限公司 一种存储临时数据的方法及存储设备
CN108536611B (zh) * 2017-03-03 2022-05-13 西部数据技术公司 用于损耗均衡的系统和方法
US10705918B1 (en) 2017-07-21 2020-07-07 EMC IP Holding Company LLC Online metadata backup consistency check
US10956052B1 (en) * 2017-07-21 2021-03-23 EMC IP Holding Company LLC Online address to hash (A2H) metadata scanner
US10515701B1 (en) * 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
CN108304280A (zh) * 2018-01-30 2018-07-20 郑州云海信息技术有限公司 控制异构混合内存系统异常恢复的方法、bmc及装置
US10446254B1 (en) * 2018-05-03 2019-10-15 Western Digital Technologies, Inc. Method for maximizing power efficiency in memory interface block
US10936456B1 (en) 2019-02-20 2021-03-02 Apple Inc. Handling malfunction in a memory system comprising a nonvolatile memory by monitoring bad-block patterns
US11216388B2 (en) 2019-04-30 2022-01-04 EMC IP Holding Company LLC Tiering between storage media in a content aware storage system
JP6874814B2 (ja) * 2019-10-30 2021-05-19 株式会社安川電機 産業機器の制御装置、産業機器の制御装置の設定システム、産業機器の制御装置の設定方法、及びプログラム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8010A (en) * 1851-04-01 Peter mckinlay
US9024A (en) * 1852-06-15 Motion of the lay in looms
JP3106401B2 (ja) * 1993-07-26 2000-11-06 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 情報処理システム
JPH11242631A (ja) 1998-02-26 1999-09-07 Toshiba Corp コンピュータシステムおよび同システムにおけるデータ保存/復元方法
US6209088B1 (en) 1998-09-21 2001-03-27 Microsoft Corporation Computer hibernation implemented by a computer operating system
US6574717B1 (en) * 2001-05-31 2003-06-03 Oracle Corporation Techniques for time-based retention of a reusable resource
US7467274B2 (en) * 2001-12-31 2008-12-16 Hewlett-Packard Development Company, L.P. Method to increase the life span of limited cycle read/write media
US7082495B2 (en) * 2002-06-27 2006-07-25 Microsoft Corporation Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory
JP3994071B2 (ja) 2003-06-12 2007-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ装置、システムの稼働状態の切り換え制御方法、およびプログラム
US7093089B2 (en) 2003-08-18 2006-08-15 Hewlett-Packard Development Company, Lp. Systems and methods for storing data on computer systems
GB0320142D0 (en) 2003-08-28 2003-10-01 Ibm Data storage systems
JP4688584B2 (ja) * 2005-06-21 2011-05-25 株式会社日立製作所 ストレージ装置
US20070234028A1 (en) 2005-09-15 2007-10-04 Rothman Michael A Method and apparatus for quickly changing the power state of a data processing system
KR100843543B1 (ko) 2006-10-25 2008-07-04 삼성전자주식회사 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
WO2008132760A2 (en) * 2007-04-26 2008-11-06 Hewlett-Packard Development Company, L.P. Method and system for allocating memory in a computing environment
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
US8214343B2 (en) * 2008-03-19 2012-07-03 Microsoft Corporation Purposing persistent data through hardware metadata tagging
DE102008062934A1 (de) 2008-12-23 2010-06-24 Kuka Roboter Gmbh Vernetzte Industriesteuerung und Verfahren zum Wechsel des Betriebsmodus einer solchen Industriesteuerung
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
US9098396B2 (en) * 2009-02-13 2015-08-04 Sandisk Il Ltd. Enhancement of efficiency in power failure handling in flash memory
US8380676B1 (en) * 2009-05-27 2013-02-19 Google Inc. Automatic deletion of temporary files
WO2010144587A2 (en) 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
US9063886B2 (en) 2009-09-18 2015-06-23 Apple Inc. Metadata redundancy schemes for non-volatile memories
US8296506B2 (en) 2009-11-09 2012-10-23 Lite-On It Corporation Method for managing a non-violate memory and computer readable medium thereof
US8694814B1 (en) * 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
KR101678911B1 (ko) * 2010-03-12 2016-11-23 삼성전자주식회사 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템
US8949508B2 (en) 2011-07-18 2015-02-03 Apple Inc. Non-volatile temporary data handling

Also Published As

Publication number Publication date
JP2013033482A (ja) 2013-02-14
CN102890620B (zh) 2016-05-18
AU2012205187B2 (en) 2014-10-16
KR101818599B1 (ko) 2018-01-15
BR102012017717B1 (pt) 2020-09-15
EP2549385A1 (en) 2013-01-23
US20130024600A1 (en) 2013-01-24
KR20130010449A (ko) 2013-01-28
CN102890620A (zh) 2013-01-23
TW201329713A (zh) 2013-07-16
TWI573019B (zh) 2017-03-01
TWI519952B (zh) 2016-02-01
AU2012205187A1 (en) 2013-01-31
TW201324146A (zh) 2013-06-16
KR20130010447A (ko) 2013-01-28
US8949508B2 (en) 2015-02-03
EP2549385B1 (en) 2015-06-10
BR102012017717A2 (pt) 2013-07-30
KR101385789B1 (ko) 2014-04-16
WO2013012632A1 (en) 2013-01-24

Similar Documents

Publication Publication Date Title
JP5683023B2 (ja) 不揮発性一時データの処理
US8478796B2 (en) Uncorrectable error handling schemes for non-volatile memories
US9342449B2 (en) Metadata redundancy schemes for non-volatile memories
US9645895B2 (en) Data storage device and flash memory control method
US8812816B2 (en) Garbage collection schemes for index block
US9367451B2 (en) Storage device management device and method for managing storage device
US9063728B2 (en) Systems and methods for handling hibernation data
US20070094440A1 (en) Enhanced data access in a storage device
US10168940B2 (en) Data storage using SLC and TLC memory banks and data maintenance method thereof
CN104461397A (zh) 一种固态硬盘及其读写方法
US8892816B1 (en) System and method for writing data to a memory
TWI523030B (zh) 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置
CN113031856A (zh) 存储器子系统中的断电数据保护
US20200241955A1 (en) Data storage device and operating method thereof
US20200201563A1 (en) Data storage device and method of operating the same
US8850160B2 (en) Adaptive write behavior for a system having non-volatile memory

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131118

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140218

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141118

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: 20150107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150109

R150 Certificate of patent or registration of utility model

Ref document number: 5683023

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

LAPS Cancellation because of no payment of annual fees