JP5528782B2 - 停電後の不揮発性メモリの回復 - Google Patents

停電後の不揮発性メモリの回復 Download PDF

Info

Publication number
JP5528782B2
JP5528782B2 JP2009269278A JP2009269278A JP5528782B2 JP 5528782 B2 JP5528782 B2 JP 5528782B2 JP 2009269278 A JP2009269278 A JP 2009269278A JP 2009269278 A JP2009269278 A JP 2009269278A JP 5528782 B2 JP5528782 B2 JP 5528782B2
Authority
JP
Japan
Prior art keywords
page
free
memory
determination
header
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.)
Active
Application number
JP2009269278A
Other languages
English (en)
Other versions
JP2010157216A5 (ja
JP2010157216A (ja
Inventor
エディントン ジョセフ
チョードゥリー ヒシャム
Original Assignee
エディントン ジョセフ
チョードゥリー ヒシャム
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 エディントン ジョセフ, チョードゥリー ヒシャム filed Critical エディントン ジョセフ
Publication of JP2010157216A publication Critical patent/JP2010157216A/ja
Publication of JP2010157216A5 publication Critical patent/JP2010157216A5/ja
Application granted granted Critical
Publication of JP5528782B2 publication Critical patent/JP5528782B2/ja
Active 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
    • 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
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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/7202Allocation control and policies
    • 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

本発明は、停電後の不揮発性メモリの回復に係る。
不揮発性メモリデバイスは、記憶されたデータを安全に維持するために電力を要求することなくデータを記憶するという利益をもたらす。しかしながら、記憶されたデータの読み取り及びデータの最初の書き込みには、電力が必要である。多くの不揮発性メモリ形式では、典型的に、停電に関わりなく読み取りオペレーション中にデータは安全である。しかしながら、書き込みプロセス中に電力が遮断又は停電した場合には、書き込みが停止するだけでなく、幾つかのセルには、不安定な値が書き込まれることがある。従って、復電した後に、どこで書き込みを再開すべきか決定することは困難である。
更に、メモリに既に書き込まれた値をチェックしても、どこで書き込みを再開すべきか確実に指示できないことがある。例えば、フラッシュメモリの場合、メモリセルの値は、電荷をセットすることにより記憶される。電荷素子の電圧がスレッシュホールドと比較され、記憶された値が0であるか1であるか決定する。意図された電荷がセットされる前に停電が生じたために記憶された値がほぼスレッシュホールドである場合には、それが、あるときには、0と読まれ、又、他のときには、1と読まれる。同様に、相変化メモリセルでは、相変化材料の抵抗をセットすることにより値が記憶される。抵抗値がスレッシュホールドと比較され、抵抗値がスレッシュホールドに近い場合に、セルは、あるときには、0と読まれ、又、他のときには、1と読まれる。メモリセルがある範囲の値をとることのできるいずれの形式の不揮発性メモリでも、このような不安定な又は一貫性のない値が生じることになる。
停電後にフラッシュメモリに留まる不安定なデータのためにクラッシュを生じることからシステムを保護する方法が存在する。この保護方法は、典型的に、メモリデバイス全体をスキャニングするか、又はファイル全体を再び始めから書き直すことを含む。しかしながら、不安定なメモリ値では、メモリをスキャンしても、正確な答えが得られないことがある。他方、データの再書き込みには、時間がかかる。
本発明の要旨は、明細書の結論部分に詳細に指摘され、個別に請求される。しかしながら、本発明は、その編成及び動作方法、並びにその目的、特徴及び効果と共に、添付図面を参照した以下の詳細な説明から最も良く理解できよう。
一実施形態によりページ及びブロックへと編成されるメモリセルをもつフラッシュメモリアレイのブロック図である。 一実施形態によりメモリアレイのページをスキャニングして第1のフリーページを見出すためのプロセスフロー図である。 別の実施形態によりメモリアレイのページをスキャニングして第1のフリーページを見出すためのプロセスフロー図である。 一実施形態によりメモリアレイのブロックを通してページをスキャニングして第1のフリーブロックを見出すためのプロセスフロー図である。 別の実施形態によりメモリアレイのブロックを通してページをスキャニングして第1のフリーブロックを見出すためのプロセスフロー図である。 一実施形態により図2から5のプロセスを具現化できる移動装置のブロック図である。 一実施形態による停電回復システムのブロック図である。
図示簡単化及び明瞭化のために、図示された要素は、必ずしも正しいスケールで描かれていないことが明らかである。例えば、幾つかの要素の大きさは、明瞭化のために、他の要素に対して誇張されている。更に、適切と考えられるところでは、対応する要素又は同様の要素を指示するために幾つかの図面において参照番号が繰り返されている。
本発明の実施形態は、フラッシュ又は他の不揮発性メモリハードウェアのプログラミングオペレーション中に停電事故が生じたときにデータの完全性に対して完全なカバレージを与えることができる。従って、不安定な、破損した又は部分的にプログラムされたデータ断片を、良好なデータ断片から安全に区別することができる。これは、停電回復を最適な仕方で遂行できるようにする。これは、メモリの部分的再書き込みをメモリデバイスの特定エリアへ向けることができ、より少ない書き込みサイクルで、完全な停電回復を得られるようにする。これは、書き込みの回数を減少することにより良好なメモリ寿命サイクルを与える。又、特に、NAND形式のフラッシュメモリデバイスに対してハードウェアエラーを回避する上で助けとなる。本発明の実施形態は、NOR(not or)フラッシュ、NAND(not and)フラッシュ、及びPCMを含む広範囲な異なる不揮発性メモリに適用することができる。又、広範囲な異なるメモリファイルシステム及びメモリセクタマネージメントシステムにも適用することができる。
本発明の一実施形態によれば、ブロックごとにデータをメモリデバイスに書き込むために逐次のモデルが使用される。このモデルでは、デバイスに新たなデータを書き込むときに第1の使用可能なスペース又は第1のフリースペースが常に使用される。システムの初期化中、及び予期せぬ遮断に続いて、メモリの非書き込みエリアへのワーストケースの破損が仮定される。例えば、フラッシュメモリでは、1つのブロックのページが逐次に書き込まれるので、停電又は電力遮断が生じたときに、全メモリブロック又は全メモリアレイを無効化する必要はない。むしろ、どのページが破損を被るかを知的に決定することで、それらの特定ページを修理の焦点とすることができる。
使用中のメモリデバイスにデータ断片を書き込む間に停電が生じたときにデータの破損が発生する。この破損により、未知の状態で存在するデバイス内のビットが生じる。未知の状態とは、正しい値のこともあるし、間違った値のこともあるし、或いは不安定又は非信頼性の無効値のこともある。
停電から完全に回復するためには、全メモリを再書き込みしなければならないか、又はアレイ内の各メモリセルの状態を決定する何らかの方法がなければならない。上述したように、フラッシュ及びPCMを含む多数の形式の不揮発性メモリシステムでは、プログラム又は消去オペレーション中のシステム電力の中断が、あるメモリセルを未知の状態のままにし、及びおそらく、そのようにする。これらの状態は、0であるか、1であるか又はそれらの間のどこかである。
回復するための1つの解決策は、単にフラッシュを読み取り、消去された値としてそれが読み取られる場合に、消去された状態にあると仮定することである。しかしながら、フラッシュメモリにおける各セルの値は、アナログ状態で存在するので、プログラミング又は消去が首尾良く行われた後でなければ、2進値を表すものと考えることができない。
別の解決策は、最初に、メモリのあるエリアを、そのエリアに値を書き込む前に、無効(又はダーティ)とマークすることである。しかしながら、あるフラッシュデバイスは、それが消去されねばならない前に、ページに対して限定された数のプログラミングオペレーションしか許さないので、「ダーティ」マーカーを書き込むと、書き込まれたデータの断片ごとに遂行されねばならない書き込みの回数が増加する。これは、書き込みソフトウェアの書き込み速度を下げる。というのは、ページを消去して同じ値を再書き込みしなければならない頻度が高くなるからである。
別の解決策は、メモリエリアのどんなエリアが常時使用されるか安全に追跡するよう試みることである。この解決策は、ランタイムの書き込み速度を下げる。別の解決策では、特定の書き込みシーケンスを使用して、欠陥が発生するおそれを最小にする。
別の解決策では、各ページが読み取られて、その有効性が確認される。これは、時間がかかるだけでなく、完全に安全ではない。というのは、不安定なセルが、あるときには、正確に読み取りを行い、又、別のときには、不正確な読み取りになるからである。
対照的に、本発明の実施形態では、ワーストケースを仮定することで、各データビットを読み取らねばならないオーバーヘッドが排除され、安定なメモリセルのみの使用を保証することができる。換言すれば、本発明の実施形態では、各データエリアは、その旨指示がない限り、使用が安全でないと仮定する。以下に述べるように、プログラム又は消去オペレーション中に停電事故が生じた場合に、システムは安全に維持され回復される。同時に、システム性能は妥協されることがない。
フラッシュメモリシステムの一実施例が図1に示されている。このシステムは、コントローラ111及びアレイ113を有する。コントローラは、入力/出力バス115に結合され、データを受け取ってアレイに記憶すると共に、アレイから読み取ったデータを伝送する。又、コントローラは、メモリバス117にも結合され、このバスを経て、アレイを制御し維持する。又、データをアレイに書き込むと共に、アレイからメモリバスを経てデータを読み取る。
アレイ113は、1つ以上のブロック119に分割され、各ブロックは、1つ以上のページ121を含む。ページは、電荷を使用してデータを記憶するために個々のメモリセル123を含む。又、ブロックは、メモリセルを読み取り、書き込み及びフラッシュするための必要な回路も含む。これらは、行コントローラ125及び列コントローラ127として図1に示されている。特定のシステムにおけるコンポーネントの数は、システムのコンフィギュレーション及びその意図されたアプリケーションに依存する。1つのページは、512から2Kの8ビットバイトのデータを記憶するためのセルをもつことができる。しかしながら、16、32及び64ビットバイトが使用されてもよく、又、ページのサイズは、それより小さくても大きくてもよい。各ブロックは、16、32、64又は128ページを有するが、それより大きくても小さくてもよい。各アレイは、アプリケーションに基づいて、8又は16ブロックを有する。あるアレイは、構造を簡単化するために単一のブロックを有する。大きなアレイは、より多数のブロックを有することができる。ここに与えられる数は、一例に過ぎず、本発明は、特定のブロックサイズに限定されるものではない。
典型的なフラッシュ動作では、一度に1つの全ブロックがフラッシュされる。これは、ブロックに記憶された値を消去し、全てのビットを同じ値、典型的に、0にセットする。しかしながら、フラッシュされたセルは、むしろ値1を有すると解釈されてもよい。次いで、各セルは、必要に応じて、1でプログラムされるか、又は0状態に留まることが許される。書き込みプロセスは、フラッシュされたセルをプログラミングすることより成る。各セルがプログラムされた後は、再びフラッシュされた後でなければ再書き込みすることができない。これは、全ブロックを消去するので、記憶されたデータに僅かな変更を頻繁に有するメモリとしては、小さなブロックが好ましい。大きなブロックは、変更の頻度が低いか又はコストがより重要なメモリにとってより効率的である。
データは、典型的に、一度に1ページが書き込まれる。典型的な実施例では、データは、単一の書き込みサイクルにおいて同じページに全部が書き込まれる。書き込みサイクルが完了すると、そのページに対してコミットマーカーが入れられ、ページに再び書き込むことができない。書き込みサイクル中に電力が遮断された場合には、メモリの値が不安定になる。別のメモリ構成では、コミットマーカーが書き込まれる前に2つ以上の書き込みサイクルを単一のページに向けることができる。
図1のフラッシュメモリ実施例では、ページは、デバイスに書き込むことのできるデータエレメントの最小の粒度と考えられる。同様に、最も大きなデータ断片サイズは、ブロックの残りであると考えられる。この実施例では、データ断片は、ブロック境界を横切ることがない。他の形式のメモリは、ページ及びブロックへと編成することができ、或いはここに述べる解決策は、他の形式のメモリ構造に適応させることができる。
停電中にデバイスが動作する場合には、フラッシュメモリセルアレイに、あるページを書き込むことがある。停電の後に、デバイスの各有効ブロックを繰り返し通ることで、各ページの各ヘッダをスキャンして、空きページヘッダを見出すことができる。このページは、第1の非書き込みページ、又はフラッシュされるがプログラムされないページと考えることができる。
あるフラッシュメモリアレイでは、各ページが、フリースペース或いはスペアエリア又はスペースと称される特別なセルを有する。これらのセルは、ページ内の他のセルがフェイルした場合に使用されるべきアレイに組み込まれ、そしてハウスキーピング又はマネージメントの目的で使用することもできる。ヘッダは、このフリーページに記憶されてもよい。
一実施例では、各ページは、エラー修正コード(ECC)及びヘッダを有する。ヘッダは、ページが首尾良く完全にプログラムされるか又は書き込まれたときに、コミットマーカーを書き込むために使用される。コミットマーカーは、プログラミングオペレーションが首尾良く完了したかどうか指示するために使用できる。マーカーは、プログラミングオペレーションが首尾良く完了した後に書き込まれる。フラッシュメモリの場合に、セルがフラッシュ又は消去された後に、セルに書き込みするプロセスは、プログラミングと称される。
一実施例では、各ページは、ページがフラッシュされたとき及びページがプログラムされたときに書き込まれるヘッダを有する。このヘッダは、次いで、プログラムされた有効なレジスタの数を追跡する。ヘッダの読み取りが完全な場合には、ページが、プログラムされたレジスタを有し、ページは、フリーではなく、そしてこれは第1のブロックであるから、プロセスは、第1の非書き込みページへ進む。それとは別に、ヘッダは、全ブロックのみに対するものでもよいし、アレイの他のサブセットに対するものでもよい。ヘッダは、フリースペースにあってもよいし、個別のテーブルにあってもよいし、或いはページ又はブロックの特に割り当てられた部分にあってもよい。
停電の後に、メモリがスキャンされて、どのページが有効であり、どのページが有効でないか決定する。メモリマネージメントソフトウェアのようなメモリマネージャーを再スタートするか又はマウンティングするときにブロックのいずれか1つが停電データを含むと仮定するのが最も安全である。ブロックをスキャニングするときに、ブロックを見出すことのできる停電状態は、次の4つが考えられる。
1)最後に見つかったデータ断片は、コミットマーカーを含む。
2)最後に見つかったデータ断片は、空き断片である。
3)不完全なデータ断片が見つかる。これは、無効ヘッダ、又はコミットマーカーをもたない有効ヘッダにより指示することができる。
4)リクレイム又はフラッシュ消去がブロックにおいて進行し、データもヘッダも存在しない。
ケース1及び2では、停電の仮定は、このブロック(停電を経験したもの)への最後の書き込みが、ブロックをスキャニングするときに見つかった第1のフリーページへのものであることを意味する。一実施例では、取るべきアクションは、このページ(第1のフリーページ)をダーティと物理的にマークし、そしてそれに続くページをこのブロックにおける第1の使用可能なフリーページとして使用することである。ダーティマーカーは、このページのデータが有効でないこと、及びそれを、メモリアレイの形式に基づいて、新たなデータでフラッシュ、クリア、リクレイム又は再書き込みすべきであることを指示する1つの仕方である。同様に、最初に見つかったフリーページがブロックの第1ページである場合には、その第1のフリーページをダーティとマークすることができる。しかしながら、このケースでは、以前の有効なデータ断片が存在しない。次のページが第1のフリーページとなり、これは、新たな書き込みが行われるところである。
ダーティマーカーは、種々の異なる仕方で書き込むことができる。一実施例において、ヘッダid又はヘッダにおける異なるフィールドの組合せが全て0にプログラムされる。しかしながら、それに代わって、他のマーカーを使用することもできる。このブロックのその後のマウントは、無効ヘッダフィールドを伴うデータ断片をダーティスペースとして見る。
ダーティマーカーは、明確な利益を与える。メモリコントローラは、新たなデータの書き込みを開始するときに、次の位置を探す。これは、そのシーケンスで書き込まれた最後の位置の後の位置である。この位置は、第1のフリーページ内にある。ページがダーティを示すようにマークされない場合に、その後のマウントは、スキップされたページを第1のフリーページであると考える。ページは、それをダーティとマークすることにより、スキップされ、次のページが使用される。これは、このページが再び使用される前にこのページをクリアするのを許す。
ケース3では、ヘッダが無効であるか、又はデータ断片がコミットマークを有していない。このようなページ又はブロックは、停電が生じたときに書き込み中であった。従って、影響を受ける全てのデータは、信頼性がなく、これは、ヘッダに書き込まれる情報、例えば、有効又は無効断片のサイズを含む。一実施例では、このデータ断片のいずれかのページへ書き込んでいる間に停電が発生し、そして特定のページを安全に決定できないと仮定する。それ故、データ断片は、ブロックの残りである最大サイズのものであると仮定する。従って、このブロックの残りは、ダーティであると考えられ、そのようにマークすることができる。付加的なデータ断片がそれらのページに書き込まれようとしていない場合には、その影響を受けるページをダーティと実際にマークする必要はない。無効ヘッダを見るか又はコミットマークを見ないその後のマウントは、そのたびに同じ仕方でブロックをポピュレートする。
他方、ヘッダが不安定である場合には、将来のマウントがこの断片の第1ページをフリースペースとして読み取ってもよい。これは、停電ケース1に対応する。不安定なヘッダは、ダーティとマークされ、それに依存することはない。いずれにせよ、ダーティとマークされたスペースは、ブロックがリクレイムされたときに回復される。これらの実施例を通して明らかなように、マウント中に全ての停電ケースをハンドリングすることで、システム始動後の書き込み性能への影響が防止される。
ケース4では、ブロックにおいてリクレイムが進行中である場合には、リクレイムプロセスが単に再スタートされる。他の解決策は必要とされない。より特定にこのケースに対処するために他の解決策を使用することができる。
上述した考え方は、フローチャートを使用して示すことができる。図2は、一形式の基本的ページスキャニングの一例である。図2のプロセスは、次のフリーページを見出すことを目的としてブロックの各ページを通してスキャンする。フリーページとは、プログラミングに使用される次のページである。換言すれば、フリーページは、このブロックに書き込まれる次のページである。
ボックス211において、ページスキャンプロセスが開始される。これは、いつでも行うことができるが、上述した実施例では、メモリへの書き込み中に停電が生じた後に行われる。又、これは、始動のたびに、又は停電事故の後の始動のたびに行うことができる。初期化は、始動すべきブロックを選択する。典型的に、2つ以上のブロックがある場合には、それらブロックは、例えば、0から4までの数字の指示子を伴う何らかの仕方で順序付けされる。この順序付けは、それらが埋められる順序に対応する。第1のブロックは、典型的に、アレイにおける唯一のブロックであるか、又は0で示された第1ブロックである。しかしながら、プロセスは、いずれのブロックで開始してもよい。
ボックス213において、シーケンスにおける第1ページが選択される。上述したように、メモリコントローラは、典型的に、アレイ内のページ書き込むためにそれが使用するシーケンスを有する。特定のシーケンスは、メモリアレイの特定の設計に依存する。番号0は、典型的に、物理的又は位置的な順序付けではなく、論理的な順序付けに対応する。ボックス215において、ページごとのスキャニングが開始する。
ページがいずれのデータも含まない場合には、ボックス217において、ページがダーティとマークされる。図2に示す解決策では、管理されるデバイスにおいて見出された第1の空のページのみがダーティとマークされ、それに続くページが第1のフリーページとなることに注意されたい。ボックス219では、このページが最後のページであるかどうか決定される。もしそうでない場合には、ボックス221において、次のページがフリーページとしてマークされ、そしてボックス223において、プロセスが終了となる。他方、データを伴わないこのページが最後のページである場合には、ボックス225において、フリーページは存在せず、プロセスは、ボックス223で終了となる。
スキャン中のページがデータを含む場合には、プロセスは、次いで、ボックス227において、ヘッダをコミットマーカーに対してチェックする。この実施例では、ページが首尾良く且つ完全に書き込まれた後に、コミットマーカーがヘッダに書き込まれる。或いは又、全ブロックに対してのみコミットマーカーが存在してもよい。これは、各ページに書き込むときに時間を節約し、又、停電は稀な事故であるから、停電が生じたときにシステムの回復への影響はめったにない。
ページに対してコミットマーカーがない場合には、ボックス217において、ページが再びダーティとマークされる。ダーティページで上述したように、ボックス219において、次のページがある場合には、ボックス221において、それがフリーとマークされる。
データを伴うページに対してコミットマーカーがある場合には、それが良好なページであり、スキャンは、次のページへと続くことが仮定される。図2のボックス229において、現在ページが最後のページでない場合には、ボックス231において、スキャンは、次のページへと続く。これが第1の繰り返しである場合には、現在ページは、第1ブロック(ブロック0)において第1ページ(ページ0)となる。ブロックと同様に、それらは、典型的に、順序付けされ、そして全ての書き込みは、そのページがいっぱいになるまで1つのページに行われる。次いで、書き込みは、シーケンスにおいて次のページへ進む(ページ1、ブロック0)。従って、この停電回復プロセス中に、ページは、同じ順序で分析される。
ボックス229において、現在ページが最後のページである場合には、ボックス225において、フリーページはなく、プロセスは、ボックス223で終了となる。
図2の戻りループで示されたように、図2のプロセスは、一度に1ページで、メモリアレイの各有効ブロックを通して繰り返すことができる。このプロセスは、第1の非書き込みページを見出すまで、各ページをスキャンする。これは、一実施形態では、ページヘッダが空きであることにより指示される。
図3は、上述したオペレーションの変更を示す。図3は、コミットマーク決定ボックス227との間の接続が変更された以外は、図2と同じである。ここでは、ボックス215においてページがデータを含むが、ボックス227においてコミットマークを含まないときには、ボックス217においてページダーティをマークするのではなく、プロセスは、333で示されるように続き、225において、ブロックを、フリーページをもたないものとマークする。従って、プロセスは、ボックス215、227、229及び231を経て循環するブロックの各ページを通してスキャンする。次のフリーページが見出されたときには、そのフリーページが、プログラミングに使用されるべき次のページであり、プロセスは、先行ページをダーティとマークしてフリーページを指示するように分岐する。
図3において、プロセス及びファイルシステムには、コミットマークを書き込む変更がなされる。この実施例では、コミットマークは、ページごとに保持されず、多数のページの大きな断片に対して保持される。この断片は、ブロックであり、又は他のページグループを使用することもできる。図2の実施例では、ボックス215において、グループコミットマーカーを分析することができる。しかしながら、図3では、データ断片がプログラムされ始めたがコミットマーカーが見つからない場合に、ページの全範囲が無効化されるようにプロセスが更に洗練化される。このアルゴリズムは、依然、ワーストケースのページ破損を仮定する原理に従う。しかし、ここでは、プログラム領域の最小粒度は、1ページからブロックの残り又は他のページグループへと増加する。
それとは別に、プロセスは、データを含まない2つの連続するページを見出し、次いで、第1のページを無効にするよう試みることができる。この変更は、依然、書き込むことのできる最後のページを見出して、それを無効にする。これら全ての変更において、コミットされたデータに続いて空きページがあるか、又はブロックの始めに空きページがある場合には、最悪でも、1ページしか破損されていない。このため、プロセスは、そのページをダーティとマークし、次のページをフリーとマークするボックス217、219及び221を含む。
同じ位置から読み取る上述した不安定なセルは、0(プログラムされたビット)を出力してもよいし、又は、時々、1(最近フラッシュされたフリービット又は空きに対応する)を出力してもよい。フラッシュメモリのオペレーションにおいて、セルは、首尾良くフラッシュされるか又は首尾良くプログラムされた場合だけ信頼できるものとなる。これらプロセスのいずれかが中断された場合には、セルが不安定であるか又は破損されている。安定な状態へ戻る唯一の方法は、セルを含むページ全体をフラッシュすることである。従って、空きヘッダをもつページは、フラッシュされ再書き込みされる。その後続ページもフラッシュされて、次のフリーページとなる。
以前のページが、有効で且つ確認されたデータ(非停電断片)を含まない場合には、このブロックにおける以前の有効データ断片(又は有効断片が見つからない場合にはブロックの開始)から前方に向かって、最大サイズのデータ断片が無効化されると仮定する。
初期化中に第1のフリーブロックに対して少なくとも1ページを無効化することで失われるスペースは、取るに足らないものと考えられる。というのは、この状態は、予想外の遮断に続いて生じるに過ぎないからである。又、このスペースは、リクレイム又は不要データ収集手順により無効ページが既知の状態(消去された)にリセットされたときに取り戻される。この種のプロセスは、ページに書き込む前にページに破損がないことを保証する。
図4は、本発明のより基本的な態様を示す。図4の実施例では、プロセスは、ボックス411で開始する。ボックス413において、第1ブロックが識別され、ページごとにスキャニングが開始する。ボックス415では、ブロックの各ページがスキャンされる。ボックス417では、現在ブロックが最後のブロックである場合に、プロセスは、ボックス419で終了となる。現在ブロックが最後のブロックでない場合には、ボックス421において、プロセスは、次のブロックへ進んで、繰り返される。ページスキャンプロセスは、図2又は3のプロセスであるか、或いは他のプロセス及びここに述べる変形例のいずれかである。
図5は、図4のプロセスの更なる変形例を示す。図4と同様に、プロセスは、ボックス511でスタートし、ボックス513において、第1の論理的ブロックへ初期化される。そのブロックのページがボックス515においてスキャンされる。プロセスは、ボックス517を経て繰り返され、ブロックが最後のブロックである場合に、プロセスは、ボックス519で終了となる。ボックス517において、現在ブロックが最後のブロックでない場合には、プロセスは、ボックス521において次のブロックへ進み、そしてボックス515へ繰り返される。
しかしながら、図5の実施例では、ボックス523において単一のフリーページが見つかるまで各ブロックのページがスキャンされる。換言すれば、ボックス515において、ブロックのページがスキャンされる。フリーページが見つからない場合には、ボックス523の判断で、プロセスがボックス517に向けられ、そして図4の場合と同様に、プロセスは、次のブロックで繰り返すか、又は現在ブロックが最後のブロックである場合には終了となる。しかしながら、ページスキャニングがフリーページを見つけた場合には、判断ボックス523は、プロセスをボックス519において終了させる。これは、ドライブをマウントして、破損したページを見出すのに要する時間を著しく短縮できる。
この別の態様は、ブロックが常に同じシーケンス又は順序で使用されるときには特に良好に機能する。一度に1つのページしか使用されない場合には、ブロックにおける第1のフリーページが全メモリアレイに対する第1のフリーページとなる。従って、このページは、唯一の考えられる破損ページである。他方、メモリコントローラが、ページを通して常に同じシーケンスをたどらないか、又は2つ以上のページを同時に書き込むことができる場合には、プロセスは、全てのブロックを通り続けて、各ブロックに対する第1のフリーページを決定することができる。
上述したように、フラッシュメモリの場合、メモリセルが非書き込みであるときには、確認された有効データも、確認された無効データも含まない。どれが有効データであるか又はどれが有効データでないかを決定するために様々な異なる方法が考えられる。上述した実施例では、有効データ断片が書き込まれた後にそれらをマークするためにコミットマーカーが使用される。しかしながら、特定のアプリケーションに基づき、コミットマーカーに代えて、他の解決策をとることもできる。又、コミットマーカー及び他の技術を、他の形式のメモリセル、例えば、PCM、MRAM及びFRAMに使用することもできる。
図6は、本発明の実施形態を適用できる例示的システム611を示す。ここに示す実施例では、システムは、モバイル、ハンドヘルド、セルラー電話であるが、若干変更することで、システムは、広範囲な異なる装置を表すことができる。システムは、チップセットを含んでも含まなくてもよい中央処理ユニット(CPU)613により駆動される。CPUは、オペレーティングシステムを使用してプログラムを実行するアプリケーション区分615と、電話機能を取り扱う基本帯域区分617とを有する。両区分は、バスを経てシステムメモリと通信するメモリインターフェイス619に結合される。
ここに示す実施例では、システムメモリは、高速アクセスのためにランダムアクセスメモリ(RAM)として具現化される揮発性区分621と、停電を切り抜けねばならないデータのためにフラッシュとして具現化される不揮発性区分623とを有する。典型的に、素早くアクセスされねばならないデータ及びインストラクションに対して短期間記憶としてRAMが使用され、一方、オペレーティングシステム、システムパラメータ及びアプリケーションを記憶するためにフラッシュが使用される。或いは又、メモリは、完全にフラッシュの単一メモリとして具現化されてもよいし、又、フラッシュ区分は、他の形式の不揮発性メモリ、例えば、PCM(相変化メモリ)、MRM又はFRM或いはメモリ形式の何らかの組合せで具現化されてもよい。図2及び3に関して上述したオペレーションは、不揮発性メモリに適用される。停電事故では、揮発性メモリに記憶された全てのデータが失われる。
CPUの基本帯域区分は、ユーザインターフェイスに結合される。ここに示す実施例では、ユーザインターフェイスは、キーパッド625と、スピーカ及びマイクロホンを伴うヘッドセット627とを有する。特定のアプリケーションに基づき、タッチスクリーン、ブルーツース装置、加速度計、接近センサ及び他のインターフェイスのような種々の他のインターフェイスを使用することができる。又、基本帯域区分は、システムが無線接続を使用して外部装置と通信できるように、RF(高周波)回路639にも結合される。無線接続は、セルラー電話、データ、ワイヤレスネットワーク、又は必要に応じて他のインターフェイスでよい。
又、CPUは、種々の周辺機器631、例えば、カメラ、ロケーションシステム、ディスプレイ、プリンタ、ブルーツース装置、及びシステム611の付加的な機能をサポートするための他の周辺機器、のいずれかに結合することもできる。又、図6は、種々のコンポーネントの電力消費を調整するためにバッテリのような電源を含む電力マネージメントシステム633も示している。この装置は、CPUによりソフトウェア駆動及び制御されてもよいし、自律式でもよいし、或いは両方の組合せでもよい。一実施例では、この電力マネージメントにより、停電時に、CPUに対してアクセス可能なレジスタにフラグがセットされる。
図7は、上述したフロー図のプロセスを具現化することのできる停電回復システムの一実施例を示すブロック図である。このシステムは、ホストシステム709にアタッチされる。ホストシステムは、コンピュータ、セルラー電話、モバイルインターネット装置、娯楽システムコンポーネント、又は種々の他の装置のいずれかである。ホストシステムは、特殊なハードウェアの形態でよいメモリインターフェイスコントローラ711に結合される。このメモリインターフェイスコントローラは、ページスキャナ713及びページマーカー715に結合され、これらは、次いで、プログラム回路717及びセンス回路719に結合される。センス及びプログラム回路は、フラッシュメモリセル720−1から720−nに結合される。4つのセルしか示されていないが、典型的に、実際のアレイには、数百、数千、又はそれ以上のセルがある。
ページスキャナは、上述したように、メモリセルのページをスキャンし、そしてどのページが有効で、フリーで、無効であるか決定するように動作する。ページマーカーは、ページスキャナの結果に基づき、及びメモリの使用中に、ページをマークするように動作する。センス回路は、セル及びマーカーの値を読み取り、それらの値をページスキャナに与える。プログラム回路は、セルへの書き込みを行い、そしてメモリアレイにマーカーがある場合には、マーカーを書き込む。マーカーが個別の位置にある場合には、それらが、その個別の位置に書き込まれる。メモリインターフェイスコントローラは、メモリ及びここに示す他のコンポーネントのオペレーションを制御する。又、ホストシステムへのインターフェイスのオペレーションも制御する。
「コンピュータ読み取り可能な媒体」という語は、プロセッサ、メモリコントローラ、又は他の適当な装置へプログラムインストラクションを実行のために与えるのに関与する適当な媒体を指す。このような媒体は、これに限定されないが、不揮発性媒体及び揮発性媒体を含む多数の形態をとることができる。不揮発性媒体は、例えば、光学又は磁気ディスク、ソリッドステート記憶装置及び他のメモリ、ROM、等を含む。揮発性媒体は、ダイナミックメモリ、例えば、システムメモリ、DRAM、SRAM、及び他の形式の揮発性メモリを含む。コンピュータ読み取り可能な媒体の共通形態は、例えば、磁気媒体(例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、及び他の磁気媒体)、光学媒体(例えば、コンパクトディスクリードオンリメモリ(CD−ROM)、及び他の光学媒体)、パターンをもつ物理的媒体(例えば、パンチカード、ペーパーテープ、他の物理的媒体)、メモリチップ又はカートリッジ(例えば、RAM、プログラマブルリードオンリメモリ(PROM)、消去可能なプログラマブルリードオンリメモリ(EPROM)、フラッシュメモリ、及び他のメモリチップ又はカートリッジ)、並びにコンピュータで読み取ることのできる他の媒体を含む。
以下の詳細な説明では、本発明の完全な理解を与えるために多数の特定の細部について述べる。しかしながら、当業者であれば、本発明は、これら特定の細部を伴わずに実施できることが理解されよう。他の点では、本発明を不明瞭にしないために、良く知られた方法、手順、コンポーネント及び回路は、詳細に述べない。
詳細な説明のある部分は、コンピュータメモリ内のデータビット又は2進デジタル信号に対するオペレーションのアルゴリズム及び記号表現に関して表される。これらのアルゴリズムの説明及び表現は、データ処理技術の当業者がそれらの仕事の実体を他の当業者に伝えるために使用される技術である。
アルゴリズムは、ここでは、一般的に、希望の結果を導くアクション及びオペレーションの自己一貫性シーケンスであると考えられる。これらは、物理量の物理的操作を含む。通常、必ずしもそうでないが、これらの量は、記憶、転送、合成、比較、その他、操作することのできる電気的又は磁気的信号の形態をとる。主として共通使用の理由で、これらの信号をビット、値、エレメント、記号、キャラクタ、項、番号、等として参照するのが時々は便利であると分かっている。しかしながら、これら及び同様の語は、全て、適当な物理量に関連されるべきであり、且つそれらの量に適用される便利な表示に過ぎないことを理解されたい。
特に指示のない限り、以下の説明から明らかなように、明細書全体にわたり、「処理」、「コンピューティング」、「計算」、「決定」、等の語を使用する説明は、コンピューティングシステムのレジスタ及び/又はメモリ内の物理的(電子的)量として表されたデータを、コンピューティングシステムのメモリ、レジスタ又は他のそのような情報記憶、伝達又は表示装置内の物理的量として同様に表された他のデータへと操作及び/又は変換するコンピュータ又はコンピューティングシステム又は同様の電子的コンピューティング装置のアクション及び/又はプロセスを指すことが明らかである。
本発明の実施形態は、ここに述べるオペレーションを遂行するための装置を包含する。装置は、望ましい目的に対して特別に構成されてもよいし、或いは装置に記憶されたプログラムにより選択的にアクチベートされ又は再構成される汎用のコンピューティング装置を含んでもよい。このようなプログラムは、これに限定されないが、フロッピーディスク、光学ディスク、コンパクトディスクリードオンリメモリ(CD−ROM)、磁気−光学ディスクを含む任意の形式のディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的にプログラム可能なリードオンリメモリ(EPROM)、電気的に消去可能でプログラム可能なリードオンリメモリ(EEPROM)、磁気又は光学カード、或いは電子的インストラクションを記憶するのに適し且つコンピューティング装置のためのシステムバスに結合できる他の形式の媒体、等の記憶媒体に記憶することができる。
ここに示したプロセス及び表示は、特定のコンピューティング装置又は他の装置に固有に関連していない。ここに述べる技術に基づくプログラムと共に種々の汎用システムを使用することもできるし、或いは望ましい方法を遂行するように更に特殊な装置を構成するのが便利であると分かっている。種々のこれらシステムに対する望ましい構造は、ここでの説明から明らかとなろう。更に、本発明の実施形態は、特定のプログラミング言語を参照して説明しなかった。ここに述べる本発明の技術を実施するのに種々のプログラミング言語を使用できることが明らかであろう。更に、ここに述べるオペレーション、能力及び特徴は、ハードウェア(個別回路又は集積回路)及びソフトウェアの組合せで実施できることを理解されたい。
「結合(coupled)」及び「接続(connected)」という語は、そこから派生する語と共に、使用することができる。これらの語は、互いに同意語として意図されていないことを理解されたい。むしろ、特定の実施形態では、「接続」とは、2つ以上の要素が互いに物理的又は電気的に直接接触することを指示するために使用される。一方、「結合」とは、2つ以上の要素が互いに物理的又は電気的に直接的又は間接的に(それらの間に他の要素が介在して)接触すること、及び/又は2つ以上の要素が互いに協働又は相互作用する(例えば、原因と効果の関係のように)ことを指示するために使用される。
本発明の特定の実施形態を以上に説明したが、本発明は、そのような実施形態の細部に限定されず、特許請求の範囲及びその合理的な等効物によって限定される。
111:コントローラ
113:アレイ
115:入力/出力バス
119:ブロック
121:ページ
123:メモリセル
125:行コントローラ
127:列コントローラ
611:システム
613:中央処理ユニット(CPU)
615:アプリケーション区分
617:基本帯域区分
619:メモリインターフェイス
621:揮発性区分
623:不揮発性区分
625:キーパッド
627:ヘッドセット
629:RF回路
631:周辺機器
633:電力マネージメントシステム
709:ホストシステム
711:メモリインターフェイスコントローラ
713:ページスキャナ
715:ページマーカー
717:プログラム回路
719:センス回路
720:フラッシュメモリセル

Claims (13)

  1. 停電後の不揮発性メモリの回復方法において、
    メモリアレイのページを第1の選択された論理的ページからスキャニングして第1のフリーページを見出すステップを備え、
    前記第1のフリーページは、
    ページがデータを含むかどうか決定することをマーキングし、
    前記ページがデータを含むとの決定に基づいて、コミットマーカーが前記ページのヘッダに存在するかどうか決定し、
    コミットマーカーが前記ページのヘッダに存在するとの決定に基づいて、次のページをスキャンニングし、
    コミットマーカーが前記ページのヘッダに存在しないとの決定に基づいて、前記ページに続くページを前記第1のフリーページに指定し、そして
    前記ページがデータを含まないとの決定に基づいて、前記ページに続くページを前記第1のフリーページに指定する、
    ことによって決定され、
    前記第1のフリーページを使用可能とマーキングするステップを備え、
    使用可能とマーキングされた前記ページに次の書き込みサイクルで書き込みするステップを備えた、方法。
  2. 前記第1のフリーページが前記メモリアレイのページのスキャンニングのシーケンスの少なくとも第2のページであるかどうか決定することをマーキングするステップと、
    前記第1のフリーページが少なくとも前記第2のページであるとの決定に基づいて、前記第1のフリーページの前のページを無効とマーキングするステップと、
    無効とマーキングされた前記ページを消去するステップと、
    を更に備えた請求項1に記載の方法。
  3. ページをスキャニングする前記ステップは、前記ページを、連続した順序でスキャニングすることを含む、請求項1に記載の方法。
  4. コミットマーカーが前記ページのヘッダに存在するかどうか決定するステップは、前記ページに関連したメモリアレイのスペアエリアにおいて前記ヘッダを読み取ることを含む、請求項3に記載の方法。
  5. 無効とマーキングする前記ステップは、ページに関連したヘッダへマーカーを書き込むことを含む、請求項2に記載の方法。
  6. 前記メモリアレイは、ブロックへと分割され、各ブロックは、複数のページを含み、ページをスキャニングする前記ステップは、ブロックのページをスキャニングすることを含み、前記方法は、更に、
    他の各ブロックのページをスキャニングして各ブロックにおける第1のフリーページを見出すステップと、
    前記第1のフリーページが前記メモリアレイのページのスキャンニングのシーケンスの少なくとも第2のページであるとの決定に基づいて、各ブロックにおける前記第1のフリーページの前のページを無効とマーキングするステップと、
    前記第1のフリーページを各ブロックにおいて使用可能とマーキングするステップと、を備えた請求項1に記載の方法。
  7. メモリアレイのための停電回復システムにおいて、
    メモリアレイのページをスキャニングして第1のフリーページを見出すためのページスキャナを備え、
    前記第1のフリーページは、
    ページがデータを含むかどうか決定することをマーキングし、
    前記ページがデータを含むとの決定に基づいて、コミットマーカーが前記ページのヘッダに存在するかどうか決定し、
    コミットマーカーが前記ページのヘッダに存在するとの決定に基づいて、次のページをスキャンニングし、
    コミットマーカーが前記ページのヘッダに存在しないとの決定に基づいて、前記ページに続くページを前記第1のフリーページに指定し、そして
    前記ページがデータを含まないとの決定に基づいて、前記ページに続くページを前記第1のフリーページに指定する、
    ことによって決定され、
    前記第1のフリーページを使用可能とマークするためのページマーカーを備え、
    使用可能とマークされた前記ページに次の書き込みサイクルで書き込みするためのプログラム回路を備えた、システム。
  8. 前記第1のフリーページが前記メモリアレイのスキャンニングされたページのシーケンスの少なくとも第2のページであるとの決定に基づいて、前記ページマーカーは、更に、第1のフリーページの前のページを無効とマークし、そして前記プログラム回路は、更に、無効とマークされた前記ページを消去する、請求項に記載のシステム。
  9. 停電後の不揮発メモリを回復させるメモリデバイスにおいて、
    複数のブロックへとグループ分けされる複数のメモリセルを含むメモリセルアレイと、 前記メモリセルアレイに結合され、メモリアレイのページをスキャンして第1のフリーページを見出すためのメモリコントローラを備え、
    前記第1のフリーページは、
    ページがデータを含むかどうか決定することをマーキングし、
    前記ページがデータを含むとの決定に基づいて、コミットマーカーが前記ページのヘッダに存在するかどうか決定し、
    コミットマーカーが前記ページのヘッダに存在するとの決定に基づいて、次のページをスキャンニングし、
    コミットマーカーが前記ページのヘッダに存在しないとの決定に基づいて、前記ページに続くページを前記第1のフリーページに指定し、そして
    前記ページがデータを含まないとの決定に基づいて、前記ページに続くページを前記第1のフリーページに指定する、
    ことによって決定され、
    前記メモリコントローラは、更に、前記第1のフリーページを使用可能とマークし、そして前記使用可能とマークされたページへ書き込みを行うように構成されている、
    メモリデバイス。
  10. 前記メモリコントローラは、前記ページを、連続した順序でスキャニングする、請求項に記載のデバイス。
  11. 前記メモリセルアレイは、フラッシュメモリセルアレイである、請求項に記載のデバイス。
  12. 前記メモリセルアレイは、相変化メモリセルアレイである、請求項に記載のデバイス。
  13. 1つ又はそれ以上のプロセッサによって実行されるべき動作の命令を含むコンピュータ読み取り可能な記憶媒体において、前記プロセッサの動作は、
    メモリアレイのページを、第1の選択された論理的ページからスキャニングして第1のフリーページを見出すステップを含み、
    前記第1のフリーページは、
    ページがデータを含むかどうか決定することをマーキングし、
    前記ページがデータを含むとの決定に基づいて、コミットマーカーが前記ページのヘッダに存在するかどうか決定し、
    コミットマーカーが前記ページのヘッダに存在するとの決定に基づいて、次のページをスキャンニングし、
    コミットマーカーが前記ページのヘッダに存在しないとの決定に基づいて、前記ページに続くページを前記第1のフリーページに指定し、そして
    前記ページがデータを含まないとの決定に基づいて、前記ページに続くページを前記第1のフリーページに指定する、
    ことによって決定され、
    前記第1のフリーページを使用可能とマーキングするステップを含み、
    使用可能とマーキングされた前記ページに次の書き込みサイクルで書き込みするステップを含む、コンピュータ読み取り可能な記憶媒体。
JP2009269278A 2008-12-31 2009-11-05 停電後の不揮発性メモリの回復 Active JP5528782B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/347,935 2008-12-31
US12/347,935 US9612954B2 (en) 2008-12-31 2008-12-31 Recovery for non-volatile memory after power loss

Publications (3)

Publication Number Publication Date
JP2010157216A JP2010157216A (ja) 2010-07-15
JP2010157216A5 JP2010157216A5 (ja) 2013-02-07
JP5528782B2 true JP5528782B2 (ja) 2014-06-25

Family

ID=42221053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009269278A Active JP5528782B2 (ja) 2008-12-31 2009-11-05 停電後の不揮発性メモリの回復

Country Status (6)

Country Link
US (2) US9612954B2 (ja)
JP (1) JP5528782B2 (ja)
KR (1) KR101613678B1 (ja)
CN (1) CN101770809B (ja)
DE (1) DE102009051862A1 (ja)
SG (2) SG162655A1 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101409766B1 (ko) * 2007-06-18 2014-06-19 삼성전자주식회사 외부 장치 접속 처리 방법 및 시스템과, 이를 이용하는휴대 단말기
US9612954B2 (en) 2008-12-31 2017-04-04 Micron Technology, Inc. Recovery for non-volatile memory after power loss
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US20120117303A1 (en) * 2010-11-04 2012-05-10 Numonyx B.V. Metadata storage associated with flash translation layer
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8683113B2 (en) 2011-02-04 2014-03-25 Western Digital Technologies, Inc. Concurrently searching multiple devices of a non-volatile semiconductor memory
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) * 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US9361044B2 (en) * 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
CN103106143B (zh) * 2011-11-11 2016-01-13 光宝科技股份有限公司 固态储存装置及其逻辑至实体对应表建立方法
CN103164345B (zh) * 2011-12-08 2016-04-27 光宝科技股份有限公司 固态存储装置遭遇断电后的数据存储方法
CN102426856B (zh) * 2011-12-08 2016-04-13 上海新储集成电路有限公司 基于相变存储单元的非易失性d触发器电路及实现方法
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US9158700B2 (en) * 2012-01-20 2015-10-13 Seagate Technology Llc Storing cached data in over-provisioned memory in response to power loss
US20140013031A1 (en) * 2012-07-09 2014-01-09 Yoko Masuo Data storage apparatus, memory control method, and electronic apparatus having a data storage apparatus
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
KR102127284B1 (ko) 2013-07-01 2020-06-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 관리 방법
KR20150015621A (ko) * 2013-07-31 2015-02-11 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10643668B1 (en) * 2013-08-27 2020-05-05 Seagate Technology Llc Power loss data block marking
JP6263068B2 (ja) * 2014-03-28 2018-01-17 株式会社メガチップス 半導体記憶装置
KR102272228B1 (ko) * 2014-05-13 2021-07-06 삼성전자주식회사 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
US9904688B2 (en) 2014-09-30 2018-02-27 International Business Machines Corporation Buffering and replicating data written to a distributed storage system
US9916325B2 (en) * 2014-09-30 2018-03-13 International Business Machines Corporation Quick initialization of data regions in a distributed storage system
US9728278B2 (en) * 2014-10-24 2017-08-08 Micron Technology, Inc. Threshold voltage margin analysis
US9785362B2 (en) * 2015-07-16 2017-10-10 Qualcomm Incorporated Method and apparatus for managing corruption of flash memory contents
CN107924368A (zh) * 2015-07-23 2018-04-17 慧与发展有限责任合伙企业 在计算机系统破坏时保存易失性内存
WO2017048294A1 (en) 2015-09-18 2017-03-23 Hewlett Packard Enterprise Development Lp Memory persistence from a volatile memory to a non-volatile memory
KR102625637B1 (ko) * 2016-02-01 2024-01-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
FR3051574A1 (fr) 2016-05-20 2017-11-24 Proton World Int Nv Gestion du stockage dans une memoire flash
US10521126B2 (en) * 2016-08-11 2019-12-31 Tuxera, Inc. Systems and methods for writing back data to a storage device
FR3055992A1 (fr) 2016-09-09 2018-03-16 Proton World International N.V. Gestion d'index dans une memoire flash
TWI607312B (zh) 2016-10-07 2017-12-01 慧榮科技股份有限公司 資料儲存裝置及其資料寫入方法
US10168905B1 (en) 2017-06-07 2019-01-01 International Business Machines Corporation Multi-channel nonvolatile memory power loss management
US10096380B1 (en) * 2017-08-31 2018-10-09 Micron Technology, Inc. Erase page check
FR3072476A1 (fr) 2017-10-13 2019-04-19 Proton World International N.V. Unite logique de memoire pour memoire flash
US11163679B2 (en) * 2018-04-04 2021-11-02 SK Hynix Inc. Garbage collection strategy for memory system and method of executing such garbage collection
CN108874318B (zh) * 2018-06-22 2021-09-17 郑州云海信息技术有限公司 固态硬盘的数据恢复方法以及固态硬盘
US11042451B2 (en) 2018-12-14 2021-06-22 International Business Machines Corporation Restoring data lost from battery-backed cache
US10747612B2 (en) * 2018-12-31 2020-08-18 Micron Technology, Inc. Multi-page parity protection with power loss handling
TWI745695B (zh) * 2019-05-22 2021-11-11 慧榮科技股份有限公司 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置
TWI718975B (zh) * 2020-07-17 2021-02-11 汎思數據股份有限公司 提高記憶體資料讀寫速度的方法及裝置
KR20220066601A (ko) * 2020-11-16 2022-05-24 삼성전자주식회사 스토리지 장치, 상기 스토리지 장치를 포함하는 전자 시스템 및 상기 스토리지 장치의 동작 방법
CN114327258B (zh) * 2021-11-30 2023-08-15 苏州浪潮智能科技有限公司 一种固态硬盘处理方法、系统、设备及计算机存储介质
CN115237352B (zh) * 2022-08-03 2023-08-15 中国电子科技集团公司信息科学研究院 隐匿存储方法、装置、存储介质和电子设备
CN117251116B (zh) * 2023-11-14 2024-02-20 苏州元脑智能科技有限公司 非易失性存储器的擦写方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US5337275A (en) * 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US6170066B1 (en) * 1995-09-29 2001-01-02 Intel Corporation Power-off recovery management for sector based flash media managers
US6675278B1 (en) * 2000-04-19 2004-01-06 Motorola, Inc. Method and apparatus for managing memory
JP3726663B2 (ja) 2000-09-07 2005-12-14 日産自動車株式会社 電子制御装置の制御データ記憶装置
JP3692313B2 (ja) 2001-06-28 2005-09-07 松下電器産業株式会社 不揮発性メモリの制御方法
JP3928724B2 (ja) 2003-02-20 2007-06-13 ソニー株式会社 記録媒体の記録制御方法および記録媒体の記録制御装置
DE10321104B4 (de) 2003-05-09 2016-04-07 Robert Bosch Gmbh Verfahren zur Ablage von veränderlichen Daten
JP2005085011A (ja) * 2003-09-09 2005-03-31 Renesas Technology Corp 不揮発性メモリ制御装置
JP3969494B2 (ja) 2004-08-31 2007-09-05 三菱電機株式会社 車載電子制御装置
JP4843222B2 (ja) 2005-01-11 2011-12-21 株式会社東芝 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP5162846B2 (ja) 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
KR100755700B1 (ko) 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
KR100781515B1 (ko) * 2006-01-10 2007-12-03 삼성전자주식회사 트랜잭션 처리를 위한 로그 정보 관리 시스템 및 방법
WO2008087634A1 (en) 2007-01-18 2008-07-24 Sandisk Il Ltd. A method and system for facilitating fast wake-up of a flash memory system
CN100462944C (zh) 2007-03-07 2009-02-18 北京飞天诚信科技有限公司 基于非易失性存储器两个以上连续逻辑块的掉电保护方法
US7725437B2 (en) * 2007-07-31 2010-05-25 Hewlett-Packard Development Company, L.P. Providing an index for a data store
US9542431B2 (en) * 2008-10-24 2017-01-10 Microsoft Technology Licensing, Llc Cyclic commit transaction protocol
US9612954B2 (en) 2008-12-31 2017-04-04 Micron Technology, Inc. Recovery for non-volatile memory after power loss

Also Published As

Publication number Publication date
CN101770809B (zh) 2014-03-26
DE102009051862A1 (de) 2010-07-01
KR20100080350A (ko) 2010-07-08
US9612954B2 (en) 2017-04-04
US20170206157A1 (en) 2017-07-20
US10552311B2 (en) 2020-02-04
CN101770809A (zh) 2010-07-07
KR101613678B1 (ko) 2016-04-19
US20100169543A1 (en) 2010-07-01
SG196777A1 (en) 2014-02-13
SG162655A1 (en) 2010-07-29
JP2010157216A (ja) 2010-07-15

Similar Documents

Publication Publication Date Title
JP5528782B2 (ja) 停電後の不揮発性メモリの回復
US10452535B2 (en) Method for reusing destination block related to garbage collection in memory device, associated memory device and controller thereof, and associated electronic device
EP2367110B1 (en) Emerging bad block detection
CN109582217B (zh) 数据储存装置与将数据写入存储器装置的方法
US10102146B2 (en) Memory system and operating method for improving rebuild efficiency
US8510532B2 (en) Logical-to-physical address translation for a removable data storage device
EP1036364B1 (en) Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
CN109582216B (zh) 数据储存装置与存储器装置的数据处理方法
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
US20160342355A1 (en) Memory erasing method, memory controller, and memory storage apparatus
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US8046529B2 (en) Updating control information in non-volatile memory to control selection of content
US11347433B2 (en) Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device
JP4661369B2 (ja) メモリコントローラ
KR100692982B1 (ko) 배드 블럭 정보가 기록된 난드 타입의 플래시 메모리
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2006040168A (ja) フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140416

R150 Certificate of patent or registration of utility model

Ref document number: 5528782

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