JP4822440B2 - 不揮発性メモリシステムのための内部メンテナンススケジュール要求 - Google Patents

不揮発性メモリシステムのための内部メンテナンススケジュール要求 Download PDF

Info

Publication number
JP4822440B2
JP4822440B2 JP2006538000A JP2006538000A JP4822440B2 JP 4822440 B2 JP4822440 B2 JP 4822440B2 JP 2006538000 A JP2006538000 A JP 2006538000A JP 2006538000 A JP2006538000 A JP 2006538000A JP 4822440 B2 JP4822440 B2 JP 4822440B2
Authority
JP
Japan
Prior art keywords
block
erase count
internal maintenance
data structure
maintenance process
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
JP2006538000A
Other languages
English (en)
Other versions
JP2007519083A (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.)
SanDisk Corp
Original Assignee
SanDisk Corp
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 SanDisk Corp filed Critical SanDisk Corp
Publication of JP2007519083A publication Critical patent/JP2007519083A/ja
Application granted granted Critical
Publication of JP4822440B2 publication Critical patent/JP4822440B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、一般に、大容量デジタルデータ記憶システムに関する。より詳細には、本発明は、物理ブロック使用率情報が、不揮発性メモリシステム内部で更新されることを効率的に可能にするためのシステムおよび方法に関する。
フラッシュメモリ記憶システムなどの不揮発性メモリシステムの使用は、そのようなメモリシステムのコンパクトな物理的サイズ、ならびに不揮発性メモリが、繰り返し再プログラミングされることが可能であることから、増加している。フラッシュメモリ記憶システムのコンパクトな物理的サイズは、ますます普及しているデバイス内部におけるそのような記憶システムの使用を容易にする。フラッシュメモリ記憶システムを使用するデバイスには、デジタルカメラ、デジタルカムコーダ、デジタル音楽プレーヤ、ハンドヘルド・パーソナル・コンピュータ、およびグローバル・ポジショニング・デバイスが含まれるが、以上には限定されない。フラッシュメモリ記憶システムに含まれる不揮発性メモリを繰り返し再プログラミングすることができることにより、フラッシュメモリ記憶システムが、使用され、再使用されることが可能になる。
一般に、フラッシュメモリ記憶システムは、フラッシュメモリカードおよびフラッシュメモリチップセットを含むことが可能である。フラッシュメモリチップセットは、一般に、フラッシュメモリコンポーネントと、コントローラコンポーネントとを含む。通常、フラッシュメモリチップセットは、組み込みシステムに組み入れられるように構成されることが可能である。そのようなアセンブリ、つまり、ホストシステムの製造業者は、通常、コンポーネント形態のフラッシュメモリ、ならびにその他のコンポーネントを取得し、次いで、フラッシュメモリ、およびその他のコンポーネントを組み立てて、ホストシステムにする。
メモリシステムの電源が切れる場合、電源が切れることは、ユーザが、メモリシステムをシャットダウンしたためか、またはメモリシステムへの電源の停電があったために生じる可能性がある。ユーザが、メモリシステムの電源を切ることを選択した場合、メモリシステムは、一般に、すべての現在のプロセスを完了する、例えば、メモリシステムは、ホストシステムから、メモリシステムに関連するディレクトリにファイルを書き込むプロセスを完了する。加えて、メモリシステム内の情報またはデータが、現在の最新状態で格納されることが可能である。電源が切れることが、例えば、停電に起因する、予期しない、または突然の電源損失のために生じた場合、現在のプロセスは、完了されず、代わりに、通常、中止される。さらに、一部の情報またはデータが、失われる可能性がある。
例えば、メモリシステムへの電源を切るユーザ要求に応答してなど、「正常な」状況下で電源が切られたメモリシステムは、一般に、電源を切る要求が受け取られた時点で行われていたすべてのプロセスが、完了されているので、ディスクスキャンまたはデータ回復が実行されることを要さない。これは、通常、「正常なシャットダウン」または「正常なパワーダウン」と呼ばれる。しかし、「異常な」状況下で、例えば、停電、バッテリ障害、または不慮の電源離脱に起因して電源が切られたメモリシステムは、当業者には理解されるとおり、ディスクスキャンおよびデータ回復が実行されることを要する。異常な状況下で電源が切れることは、通常、「異常なシャットダウン」または「異常なパワーダウン」と呼ばれる。
異常なシャットダウンが生じると、メモリシステムの中に格納されている情報が、失われる可能性がある。一部の場合では、特定の物理ブロックに関する消去カウントブロックの中に格納された消去カウントが、物理ブロックの実際の消去カウントよりも相当に低い値を有する可能性がある。異常なシャットダウン、およびその後の電源投入の後、消去カウントブロックの中に格納された消去カウントが、物理ブロックの対応する実際の消去カウントよりも相当に低い場合、その物理ブロックの消去カウントは、格納された消去カウントに事実上、リセットされる可能性がある。その結果、物理ブロックは、物理ブロック内に格納された消去カウントによって示されるよりも、相当に多くの消耗を有する可能性がある。
したがって、所望されるのは、メモリシステムの中に格納された情報が、定期的に更新されることを可能にするプロセスおよびシステムである。つまり、必要とされているのは、メモリシステムが異常な形でシャットダウンされ、その後電源が投入された場合、電源投入時にデータ回復プロセスを使用して復元されたデータがかなり新しくなるように、メモリシステムに関連するデータが比較的定期的に更新されることを可能にするための効率的な方法である。
本発明は、データ構造の更新がスケジュールされることを可能にするためのシステムおよび方法に関する。本発明の一態様によれば、複数の物理ブロックと、消去カウントブロックを含む複数のデータ構造とを含む不揮発性メモリを有するメモリシステムを動作させるための方法に、少なくとも1つのデータ構造の内容が、いつ更新されるべきであるかを判定することが関わる。内容が更新されるべきであると判定されると、データ構造の内容を更新する要求が、キューに入れられ、つまり、スケジュールされ、要求は、キューの先頭に事実上、達すると、実行される。一実施形態では、データ構造の内容を更新することは、消去カウントブロックの内容を更新して、各物理ブロックの実質的に最新のステータスを示すことを含む。
物理ブロック上の消耗に関連するステータス情報などの動的情報が、比較的長い期間にわたって更新されず、異常なパワーダウンがあった場合、実質的に古い情報だけが復元可能である一方で、最新の正確な情報は、復元可能でない可能性があるため、後のデータ回復プロセスにより、古い情報の復元がもたらされる可能性がある。復元される情報が最新である可能性を高めるため、データ構造の中に格納された情報が、実質的に定期的に更新されることを可能にする内部メンテナンス手続きが、スケジュールされることが可能である。このため、メンテナンスが、例えば、1日に1回、スケジュールされる場合、データ構造の中に格納された情報は、1日未満しか経っていないと実質的に考えることができる。
本発明の別の態様によれば、メモリシステムは、複数の物理ブロックと、物理ブロックが消去された回数を示す、物理ブロックに関連する消去カウントを含む消去カウントブロックを含む、複数のデータ構造とを含む不揮発性メモリを含む。メモリシステムを動作させるための方法は、内部メンテナンスプロセスが、いつ実行されるべきかを判定することを含む。内部メンテナンスプロセスは、消去カウントブロックの中の、物理ブロックの消去カウントを更新するように構成される。また、方法は、内部メンテナンス要求が実行されるべきであると判定されると、内部メンテナンスプロセスを求める要求をキューに入れること、ならびに内部メンテナンスプロセスを実行することも含む。
一実施形態では、内部メンテナンスプロセスを実行することは、消去カウントブロックの中の、物理ブロックの消去カウントを更新すること、および複数のデータ構造の第1のデータ構造を更新することを含む。電源管理ブロックであることが可能な第1のデータ構造は、物理ブロックの消去カウントを含む、メモリシステムに電源が投入された際に使用される情報を含むように構成される。
別の実施形態では、内部メンテナンスプロセスが、いつ実行されるべきかを判定することは、第1の値を閾値と比較することを含む。そのような実施形態では、第1の値は、閾値と実質的に等しい場合、内部メンテナンスプロセスが実行されるべきであると判定される。代替として、別の実施形態では、内部メンテナンスプロセスが、いつ実行されるべきかを判定することは、メモリシステムに関連する時刻を獲得し、その時刻が、内部メンテナンスプロセスが実行されるべきであると示した場合を判定することを含むことが可能である。
本発明の以上の利点、およびその他の利点は、以下の詳細な説明を読み、図面の様々な図を検討することで明白となろう。
本発明は、添付の図面に関連して解釈される以下の説明を参照することによって、最もよく理解することができる。
メモリシステムへの電源が失われることは、一般に、メモリシステム内で多数の問題を生じさせる可能性がある。問題には、フラッシュメモリにファイルを書き込むプロセス中に電源が失われた場合、データが失われることを含むが、これには限定されない。電源が失われることに起因して生じる諸問題を修正するため、メモリシステムの後の電源投入時に、データ整合性を維持するように回復動作が実行されることが可能である。回復可能である情報、例えば、物理ブロックがどれだけ頻繁に消去されたかの目安を提供する消去カウント情報が、最新ではない場合、回復された情報は、不正確である可能性があり、場合により、メモリシステム内部で問題を生じさせる可能性がある。例えば、あるブロックが、回復された消去カウントによって示されるよりも、実際には多くの消耗を有する可能性があり、これは、あるブロックが使用可能期間の終りに近いが、そのブロックが使用可能期間の終りに近いことが知られていない場合、問題となる可能性がある。
一部の動的な情報、例えば、消去カウントなどの変化する情報は、通常、正常なパワーダウンプロセス中更新されるが、メモリシステムの電源が、比較的長い期間にわたって切られない場合、そのような動的情報は、更新されない可能性がある。動的情報が、比較的長い期間にわたって更新されず、異常なパワーダウンがあった場合、その後のデータ回復プロセスにより、古い情報が復元される可能性がある。復元される情報が最新である可能性を高めるため、情報実質的に定期的に更新することが可能である。一実施形態では、一部の情報更新することを可能にする内部メンテナンス定期的にスケジュールすることが可能である。また、スケジュールされた内部メンテナンスにより、メモリシステム内の一部のテーブルまたはブロック、例えば、システムメモリの中に、または不揮発性メモリの確保されたセクションの中に、事実上、バックアップするとも可能である。
スケジュールされた内部メンテナンスを使用することが有益である可能性があるフラッシュメモリシステム、または、より一般的に、不揮発性メモリデバイスには、一般に、フラッシュメモリカードおよびチップセットが含まれる。通常、フラッシュメモリシステムは、ホストシステムと併せて使用されて、ホストシステムが、フラッシュメモリシステムにデータを書き込む、またはフラッシュメモリシステムからデータを読み取ることができるようになる。しかし、一部のフラッシュメモリシステムは、図1cに関連して以下に説明するとおり、組み込まれたフラッシュメモリと、ホスト上で実行されて、組み込まれたフラッシュメモリのためのコントローラとして実質的に作用するソフトウェアとを含む。図1aを参照して、不揮発性メモリデバイス、例えば、CompactFlashメモリを含む一般的なホストシステムを説明する。ホストシステム、つまり、コンピュータシステム100は、一般に、マイクロプロセッサ108、ランダム・アクセス・メモリ(RAM)112、および/または入力/出力回路116が通信することを可能にするシステムバス104を含む。ホストシステム100は、一般に、例示のためには示されていない、その他のコンポーネント、例えば、ディスプレイデバイスおよびネットワーキングデバイスも含むことが可能であることを理解されたい。
一般に、ホストシステム100は、静止イメージ情報、オーディオ情報、およびビデオイメージ情報を含むが、以上には限定されない情報をキャプチャすることが可能である。そのような情報は、リアルタイムでキャプチャすることが可能であり、無線でホストシステム100に伝送することが可能である。ホストシステム100は、実質的に任意のシステムであることが可能であるが、ホストシステム100は、通常、デジタルカメラ、ビデオカメラ、セルラー通信デバイス、およびオーディオプレーヤ、またはビデオプレーヤなどのシステムである。しかし、ホストシステム100は、一般に、データまたは情報を格納し、データまたは情報を取り出す、実質的に任意のシステムであることが可能であることを理解されたい。
また、ホストシステム100は、データをキャプチャするだけ、またはデータを取り出すだけのシステムであることも可能である。つまり、ホストシステム100は、一実施形態では、データを格納する専用システムであることが可能であり、あるいはホストシステム100は、データを読み取る専用システムであることが可能である。例として、ホストシステム100は、データを書き込むようにだけ、または格納するようにだけ構成されたメモリライタであることが可能である。代替として、ホストシステム100は、データを読み取る、または取り出すように通常、構成され、データをキャプチャするようには構成されない、MP3プレーヤなどのデバイスであることが可能である。
一実施形態では、取り外し可能なメモリデバイスである不揮発性メモリデバイス120は、バス104とインタフェースをとって、情報を格納するように構成される。光インタフェースブロック130により、不揮発性メモリデバイス120が、バス104と間接的にインタフェースをとることが可能になる。存在する場合、入出力回路ブロック116が、当業者には理解されるとおり、バス104にかかる負荷を減らす役割をする。不揮発性メモリデバイス120は、不揮発性メモリ124と、光メモリ制御システム128とを含む。一実施形態では、不揮発性メモリデバイス120は、単一のチップの上に、またはダイの上に実装されることが可能である。代替として、不揮発性メモリデバイス120は、マルチチップモジュール上に、あるいはチップセットを形成することが可能であり、一緒に不揮発性メモリデバイス120として使用されることが可能な複数の別々のコンポーネント上に実装されることが可能である。不揮発性メモリ120の一実施形態は、図1bに関連して、以下により詳細に説明する。
不揮発性メモリ124、例えば、NANDフラッシュメモリなどのフラッシュメモリが、データが、必要に応じてアクセスされ、読み取られることが可能であるように、データを格納するように構成される。また、不揮発性メモリ124の中に格納されたデータは、適宜、消去されることも可能である。ただし、不揮発性メモリ124の中の一部のデータは、消去可能でない可能性があることを理解されたい。データを格納するプロセス、データを読み取るプロセス、およびデータを消去するプロセスは、一般に、メモリ制御システム128によって制御されるか、またはメモリ制御システム128が存在しない場合、マイクロプロセッサ108によって実行されるソフトウェアによって制御される。不揮発性メモリ124の動作は、不揮発性メモリ124のセクションが、実質的に均等に消耗されることを基本的に生じさせることにより、不揮発性メモリ124の寿命が、実質的に最大化されるように管理されることが可能である。
不揮発性メモリデバイス120は、一般に、オプションのメモリ制御システム128、すなわち、コントローラを含むものとして説明してきた。しばしば、不揮発性メモリデバイス120は、不揮発性メモリ124機能と、メモリ制御システム128機能、すなわち、コントローラ機能のために、別々のチップを含むことが可能である。例えば、PCカード、CompactFlashカード、MultiMediaカード、およびセキュリティで保護されたデジタルカードを含むが、以上には限定されない不揮発性メモリデバイスは、別個のチップ上に実装されることが可能なコントローラ群を含むのに対して、他の不揮発性メモリデバイスは、別個のチップ上に実装されたコントローラ群を含まない可能性がある。不揮発性メモリデバイス120が、別々のメモリチップとコントローラチップを含まない実施形態では、メモリ機能とコントローラ機能は、当業者には理解されるとおり、単一のチップに組み込まれることが可能である。代替として、メモリ制御システム128の機能は、前述したとおり、例えば、不揮発性メモリデバイス120が、メモリコントローラ128を含まない実施形態において、マイクロプロセッサ108によって提供されてもよい。
図1bに関連して、本発明の実施形態による不揮発性メモリデバイス120を、より詳細に説明する。前述したとおり、不揮発性メモリデバイス120は、不揮発性メモリ124を含み、メモリ制御システム128を含むことが可能である。メモリ124、および制御システム128、つまり、コントローラは、不揮発性メモリデバイス120の1次コンポーネントであることが可能であり、ただし、メモリ124が、例えば、組み込まれたNANDデバイスである場合、不揮発性メモリ120は、制御システム128を含まない可能性がある。メモリ124は、半導体基板上に形成されたメモリセルのアレイであることが可能であり、1つまたは複数のデータビットが、メモリセルの個々の記憶要素上に2つ以上の電荷レベルの1つを格納することによって、個々のメモリセルの中に格納される。不揮発性フラッシュ型の電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM)が、そのようなシステムのための一般的なタイプのメモリの実施例である。
存在する場合、制御システム128は、ホストコンピュータ、またはメモリシステムを使用してデータを格納している他のシステムに対して、バス15を介して通信する。バス15は、一般に、図1aのバス104の一部分である。また、制御システム128は、メモリセルアレイ11を含むことが可能なメモリ124の動作も制御して、ホストによって提供されたデータを書き込み、ホストによって要求されたデータを書き込み、動作中のメモリ124内で、様々なハウスキーピング機能を実行する。制御システム128は、一般に、関連する不揮発性ソフトウェアメモリ、様々な論理回路などを有する、汎用マイクロプロセッサを含む。また、特定のルーチンのパフォーマンスを制御するための、1つまたは複数の状態マシンも、しばしば、含まれる。
メモリセルアレイ11は、通常、アドレス復号器17を介して、制御システム128またはマイクロプロセッサ108によってアドレス指定される。復号器17は、制御システム128によってアドレス指定されているメモリセルグループにデータをプログラミングするため、そのようなメモリセルグループからデータを読み取るため、またはそのようなメモリセルグループを消去するために、アレイ11のゲートおよびビットラインに正しい電圧を印加する。さらなる回路群19には、アドレス指定されたセルグループにプログラミングされるデータに依存する、アレイの要素に印加される電圧を制御する、プログラミングドライバ群が含まれる。また、回路群19には、アドレス指定されたメモリセルグループからデータを読み取るのに必要な、センス増幅器、およびその他の回路群も含まれる。アレイ11にプログラミングされるデータ、またはアレイ11から最近、読み取られたデータは、通常、制御システム128内部のバッファメモリ21の中に格納される。また、制御システム128は、普通、コマンドおよびステータスデータなどを一時的に格納するための様々なレジスタも含む。
アレイ11は、多数のBLOCK0〜Nのメモリセルに分割される。フラッシュ型EEPROMシステムに関して一般的であるように、ブロックは、通常、消去の最小単位である。つまり、各ブロックは、一緒に消去される最小限の数のメモリセルを含む。各ブロックは、通常、いくつかのページに分割される。当業者には理解されるとおり、ページは、プログラミングの最小単位であることが可能である。つまり、基本的なプログラミング動作により、最低限、1ページのメモリセルにデータ書き込まれるか、1ページのメモリセルからデータが読み取られる。1つまたは複数のデータセクタが、通常、各ページ内に格納される。図1bに示されるとおり、1つのセクタは、ユーザデータとオーバーヘッドデータとを含む。オーバーヘッドデータは、通常、そのセクタのユーザデータから計算された誤り訂正符号(ECC)を含む。制御システム128の一部分23が、データが、アレイ11にプログラミングされる際に、ECCを計算し、データがアレイ11から読み取られる際に、ECCを検査することも行う。代替として、ECCは、ECCが関係するユーザデータとは異なるページ、または異なるブロックの中に格納される。
ユーザデータのセクタは、通常、磁気ディスクドライブにおけるセクタのサイズに対応する512バイトである。オーバーヘッドデータ、つまり、冗長なデータは、通常、追加の16バイトである。データの1つのセクタは、最も一般的には、各ページの中に含まれるが、代わりに2つ以上のセクタが、ページを形成してもよい。任意の数のページが、一般に、ブロックを形成することができる。例として、ブロックは、8つのページから、512ページ、1024ページ、またはそれより多くのページから形成されることが可能である。ブロックの数は、メモリシステムに所望されるデータ記憶容量を与えるように選択される。アレイ11は、通常、ある割合のブロックをそれぞれが含む、いくつかのサブアレイ(図示せず)に分割され、サブアレイは、様々なメモリ動作の実行において並列性の度合いを高めるため、多少、互いに独立に機能する。複数のサブアレイの使用の実施例が、参照により全体が本明細書に組み込まれている、米国特許第5890192号に記載されている。
一実施形態では、不揮発性メモリは、システムに、例えば、ホストシステムに組み込まれる。図1cは、組み込まれた不揮発性メモリを含むホストシステムを示す図である。一般に、ホストシステムまたはコンピュータシステム150は、ホストシステム150の他のコンポーネント(図示せず)も存在するものの、とりわけ、マイクロプロセッサ158、RAM162、および入出力回路群166が通信することを可能にするシステムバス154を含む。不揮発性メモリ174、例えば、フラッシュメモリは、情報が、ホストシステム150内部で格納されることを可能にする。インタフェース180が、不揮発性メモリ174とバス154の間で提供されて、情報が、不揮発性メモリ174から読み取られること、およびメモリ174に書き込まれることを可能にする。
不揮発性メモリ174は、不揮発性メモリ174を制御するように構成されたソフトウェアとファームウェアのいずれか、または両方を事実上、実行するマイクロプロセッサ158によって管理されることが可能である。つまり、マイクロプロセッサ158は、不揮発性メモリ174が制御されることを可能にするコードデバイス群(図示せず)、すなわち、ソフトウェア・コード・デバイス群、またはファームウェア・コード・デバイス群を実行することができる。以下に説明する、マイクロプロセッサ158内部のCPUとパッケージにされたフラッシュメモリであること、別個のフラッシュ型ROMであること、または不揮発性メモリ174内部にあることが可能な、そのようなコードデバイス群は、不揮発性メモリ174内の物理ブロックがアドレス指定されることを可能にすることができ、情報が、物理ブロックの中に格納されること、物理ブロックから読み取られること、および物理ブロックから消去されることを可能にすることができる。
ホストシステム150が、不揮発性メモリ174と協働する場合、または図1aのホストシステム100が、メモリデバイス120と協働する場合、不揮発性メモリ内に格納された一部の情報を実質的に更新し、事実上、バックアップするように、内部メンテナンス要求がスケジュールされることが可能である。図2は、本発明の実施形態による、内部メンテナンス要求が内部でスケジュールされることが可能なシステムの概略ブロック図である。システム200は、論理ブロック212と、対応する物理ブロック214の間のマッピングを提供するように構成されたブロック・マッピング・テーブル210を含む。参照により本明細書に組み込まれている、同時係属の米国特許出願第10/281696号および米国特許出願第10/281626号に記載される、消去カウントブロック220が、消去カウント、つまり、各物理ブロック214が何回の書き込みサイクルおよび消去サイクルを経たかの指示を格納するように構成される。最少消去頻度ブロックテーブル230が、最も少ない回数の書き込みサイクルおよび消去サイクルを経ている、利用可能な物理ブロック214に関係する情報を格納するように構成される。逆に、最多消去頻度ブロックテーブル240が、最高回数の書き込みサイクルおよび消去サイクルを経ている、利用可能な物理ブロック214に関係する情報を格納するように構成される。
通常、システム200の正常なシャットダウンが行われた場合、システム200の確保されたメモリ領域である電源管理ブロック260に書き込みが行われる。消去カウントブロック220の中に格納されているような消去カウントが、正常なシャットダウン中、電源管理ブロック260に書き込まれることが可能である。システム200の後の電源投入後、電源管理ブロック260の中に格納された消去カウントを使用して、消去カウントブロック220、最少消去頻度ブロックテーブル230、および最多消去頻度ブロックテーブル240が実質的に再現されることが可能である。
消去カウントブロック220、最少消去頻度ブロックテーブル230、および最多消去頻度ブロックテーブル240の中の、現在の情報を保持することにより、パワーダウンの後に電源投入が行われた場合、システム200が、比較的新しく、正確な状態にされることが可能になる。消去カウントブロック220、最少消去頻度ブロックテーブル230、および最多消去頻度ブロックテーブル240の中に格納されている情報が、比較的新しいことを確実にするため、消去カウントブロック220、最少消去頻度ブロックテーブル230、および最多消去頻度ブロックテーブル240の比較的定期的にスケジュールされたメンテナンスが、実行されることが可能である。つまり、消去カウントブロック220、最少消去頻度ブロックテーブル230、および最多消去頻度ブロックテーブル240は、スケジュールされたメンテナンス中に、定期的に更新されることが可能である。一実施形態では、スケジュールされたメンテナンス中に消去カウントブロック220を更新することは、適切な場合、消去カウントブロック220および物理ブロック214の中に格納された消去カウントを、実際の消去カウントから差分消去カウントに、つまり、システム200に関連する最低の実際の消去カウントであることが可能なベース値に基づく消去カウントに切り替えることを含むことが可能である。スケジュールされたメンテナンスが行われた際、差分消去カウントが、消去カウントブロック220の中に既に格納されている場合、消去カウントブロック220を更新することは、例えば、差分消去カウントが基づくベイズ(vase)値を適宜、リセットすることにより、差分消去カウントを実質的に再びゼロにすることを含むことが可能である。
消去カウントブロック220、最少消去頻度ブロックテーブル230、および最多消去頻度ブロックテーブル240を更新することは、比較的時間がかかる可能性があるので、消去カウントブロック220、最少消去頻度ブロックテーブル230、および最多消去頻度ブロックテーブルは、一般に、システム200の電源が切られた際、または電源が投入された際、および定期的なスケジュールされたメンテナンス中に更新される。消去カウントブロック220は、一般に、より頻繁に更新される、すなわち、消去カウントブロック220は、適応テーブル・バックアップ・プロセス中、より頻繁に再構築されることが可能である。実質的にすべてのブロック214を読み取り、消去カウントを明らかにすることによって更新されることが可能な、更新された消去カウントブロック220を所与として、必要な場合、最少消去頻度ブロックテーブル230および最多消去頻度ブロックテーブル240を再構築することが可能であることを理解されたい。
一実施形態では、スケジュールされたメンテナンスは、消去カウントブロック220、最少消去頻度ブロックテーブル230、および最多消去頻度ブロックテーブル240が更新されて以来、最少消去頻度ブロックテーブル230が、およそ100000回、変更されるといつでも、行われることが可能であり、他方、適応テーブル・バックアップ・プロセスは、最少消去頻度ブロックテーブル230が、およそ10000回、変更されるたびに1回、行われることが可能である。代替として、スケジュールされたメンテナンスは、特定の時点で、または特定の時間が経過した後に行われてもよく、他方、適応テーブル・バックアップ・プロセスも、使用の時点で、または所与の時間が経過した後に行われてもよく、適応テーブル・バックアップ・プロセスは、スケジュールされたメンテナンスよりも頻繁に行われる。
図3に関連して、本発明の実施形態による、内部のスケジュールされたメンテナンス要求を可能にする、不揮発性メモリコンポーネントを使用する一方法を説明する。スケジュールされたメンテナンス要求を可能にする不揮発性メモリコンポーネントを使用するプロセス300は、ステップ304で始まり、例えば、データの読み取りおよび書き込みを行うように、メモリコンポーネントが利用される。ステップ308で、メモリコンポーネントの電源が切られるべきかどうかの判定が行われる。メモリコンポーネントを使用している間に、ユーザが、メモリコンポーネントの電源を切ることを所望する可能性があることを理解されたい。
ステップ308で、メモリコンポーネントの電源が切られるべきであると判定された場合、プロセスフローは、ステップ312に進み、パワーダウンプロセスが実行され、メモリコンポーネントの電源が切られる。パワーダウンプロセスには、電源管理ブロックに署名を書き込むことが関わることが可能である。また、パワーダウンプロセスには、テーブル群に関係する情報を電源管理ブロック内に書き込み、後の電源投入プロセス後にテーブル群を比較的容易に再現する、または再構築することができるようにすることにより、テーブル群、例えば、ブロック・マッピング・テーブルまたは最少消去頻度ブロックテーブルを実質的にバックアップすることも関わることが可能である。メモリコンポーネントの電源が切られると、不揮発性メモリコンポーネントを使用するプロセスは、完了する。
代替として、ステップ308で、不揮発性メモリコンポーネントの電源が切られるべきでないと判定された場合、ステップ316で、定期的なスケジュールされたメンテナンスが実行されるべきかどうか、すなわち、内部メンテナンスがスケジュールされるべきかどうかが判定される。前述したとおり、内部メンテナンスは、消去カウントブロックを実質的に最新の状態にすること、ならびに最多消去頻度ブロックおよび最少消去頻度ブロックが、メモリコンポーネントに関連する最多消去頻度未使用ブロックおよび最少消去頻度未使用ブロックをそれぞれ含むことを実質的に確実にすることを含むことが可能である。
メンテナンスをいつスケジュールするかの判定は、特定の時刻に基づくことが可能である。例として、不揮発性メモリコンポーネントに関連する全体的システムに関連する時刻が、午前0時などの特定の時刻である場合、メンテナンスがスケジュールされることが可能である。メンテナンスは、スケジュールされるべき手続き、すなわち、消去カウントブロックの更新、または最少消去頻度ブロックテーブルの更新が、呼び出され、実行されることを可能にする遅延手続き呼び出しなどのコマンドを使用して、スケジュールされることが可能である。遅延手続き呼び出しの使用により、遅延手続きに、比較的低い優先順位が割り当てられることが可能になり、より高い優先順位を有する手続きが完了して初めて、遅延手続きが、実質的に実行されるようになることが可能である。
ステップ316で、スケジュールされたメンテナンスを実行すべき時刻ではないと判定された場合、プロセスフローは、ステップ304に戻り、不揮発性メモリコンポーネントが引き続き利用される。代替として、ステップ316で、スケジュールされたメンテナンスを実行すべき時刻であると判定された場合、メンテナンスが、ステップ318でスケジュールされる。つまり、メンテナンス手続きが、キューに入れられる。メンテナンス手続きがキューに入れられると、メンテナンスが、ステップ320で最終的に実行される。メンテナンスを実行する一方法に関連するステップを、図4に関連して以下に説明する。メンテナンス手続きが実行された後、プロセスフローは、ステップ304に戻り、不揮発性メモリコンポーネントが、引き続き利用される。
内部メンテナンスがスケジュールされる際、実質的に任意のメンテナンス手続きが、一般に、スケジュールされることが可能である。このため、スケジュールメンテナンス中に実行される手続きは、多種多様であることが可能である。通常、手続きは、消去カウントブロック、最少消去頻度ブロックテーブル、および最多消去頻度ブロックテーブルが、必要な場合、実質的に再構築されることを可能にするのに十分な情報を更新し、実質的にバックアップするように構成される。また、メンテナンス手続きは、ベース値、例えば、新たなベース値に対する差分消去カウントを実質的にゼロに設定することにより、差分消去カウントが、消去カウントブロックの中に格納されているか、あるいは、消去カウントブロックの中に格納されるべき場合、差分消去カウントを更新することも含むことが可能である。図4に関連して、本発明の実施形態による、スケジュールされた内部メンテナンスを実行する1つのプロセスに関連するステップ、例えば、図3のステップ320を説明する。スケジュールされたメンテナンスを実行することは、ステップ402で始まり、消去カウントブロックの内容が更新される。消去カウントブロックの内容を更新することは、一般に、不揮発性メモリコンポーネントの中に含まれる各使用可能なブロックから現在の消去カウントを獲得すること、現在の消去カウントを使用して、平均消去カウントを算出すること、および現在の消去カウント、および平均消去カウントを消去カウントブロックの中に格納することを含むことが可能である。
消去カウントブロックの内容が更新された後、最少消去頻度ブロックテーブルの内容が、ステップ406で更新される。最少消去頻度ブロックテーブルの内容を更新することは、更新された消去カウントブロックを使用して、不揮発性メモリコンポーネントに関連する最新の最少消去頻度ブロックを明らかにし、次に、それらの最少消去頻度ブロックを明らかにする情報を最少消去頻度ブロックテーブルの中に格納することを含むことが可能である。このため、不揮発性メモリコンポーネントの中の最少消去頻度ブロックを含む予備のブロックプールが、事実上、更新される。
ステップ410で、最多消去頻度ブロックテーブルが、不揮発性メモリコンポーネントの中の最新の最多消去頻度ブロックを含むように更新される。最多消去頻度ブロックを明らかにすることは、消去カウントブロックの中に格納された最高消去カウントに対応するブロックを明らかにすることによって行われることが可能である。最多消去頻度ブロックテーブルが更新されると、電源管理ブロックの内容が、ステップ414で更新される。電源管理ブロックの内容を更新することは、平均消去カウント、ならびに、不揮発性メモリコンポーネント内の使用可能なブロックに関連する消去カウントを、電源管理ブロックのページの中に書き込むことを含むことが可能である。一実施形態では、電源管理ブロックの内容を更新することは、シャットダウン署名に類似することが可能な署名を書き込むことも含む。署名は、消去カウントブロック、最少消去頻度ブロックテーブル、および最多消去頻度ブロックテーブルが前回、いつ更新されたかを示すように書き込まれることが可能である。電源管理ブロックに書き込まれることが可能な他の情報には、消去カウントブロック、最少消去頻度ブロックテーブルの中で明らかにされたブロック、および最多消去頻度ブロックテーブルの中で明らかにされたブロックに関係する情報が含まれる。このため、消去カウントブロック、最少消去頻度ブロックテーブル、および最多消去頻度ブロックテーブルは、電源管理ブロックが、そのようなブロックまたはテーブルを再現するのに、またはブロックまたはテーブルが位置するメモリ内の場所を少なくともポイントするのに十分な情報を保持する場合、電源管理ブロックの中に事実上、バックアップされることが可能である。電源管理ブロックが更新されると、内部メンテナンスを実行するプロセスは、完了する。
内部メンテナンス要求をスケジュールすることは、全体的システムによって、例えば、ホスト・オペレーティング・システム上で実行されているアプリケーションによって、またはホスト・オペレーティング・システム自体によって実行されることが可能であるが、内部メンテナンス要求をスケジュールすることは、全体的システムに関連するドライバによって実行されることも可能である。例として、不揮発性メモリが、ホストとインタフェースをとるメモリコンポーネントの一部である場合、ホスト・オペレーティング・システム、またはホスト・インタフェース・システム上で実行されるアプリケーションが、内部メンテナンス要求をスケジュールすることができるか、またはメモリコンポーネントに関連するドライバが、内部メンテナンス要求をスケジュールすることができる。次に、図5を参照して、本発明の実施形態による、メモリコンポーネントに関連するドライバが、内部メンテナンス要求を内部でスケジュールすることができる全体的システムを動作させる一方法を説明する。全体的システムを動作させるプロセス500が、ステップ504で始まり、スケジュールメンテナンスを実行するための1つまたは複数の閾値が設定される。1つまたは複数の閾値は、最少消去頻度ブロックテーブルが変更される、または更新される、いくつかの時刻に基づくことが可能である。例として、閾値は、最少消去頻度ブロックテーブルなどのテーブルが、およそ100000回、変更されるたびに閾値が実質的に満たされるように、設定されることが可能である。
1つまたは複数の閾値が設定されると、ステップ508で、不揮発性メモリコンポーネントが動作させられ、カウンタが、適宜、増分される。閾値が、最少消去頻度ブロックテーブルが変更される回数に基づく場合、カウンタは、実質的に、最少消去頻度ブロックテーブルの内容が変更されるたびに、増分される、すなわち、カウンタは、最少消去頻度ブロックテーブルの中で明らかにされたブロックが変更された回数である。最少消去頻度ブロックテーブルは、最少消去頻度ブロックテーブルの中で明らかにされたブロックが、使用のために獲得されるたびに、事実上、変更される。不揮発性メモリコンポーネントを動作させている間、ステップ512で、不揮発性メモリコンポーネントの電源が切られるべきかどうかが判定される。不揮発性メモリコンポーネントの電源が切られるべきであると判定された場合、ステップ516で、パワーダウンプロセスが実行されて、不揮発性メモリコンポーネントの電源が切られる。パワーダウンプロセスには、消去カウントブロック、最少消去頻度ブロックテーブル、および最多消去頻度ブロックテーブルを更新すること、ならびにパワーダウン署名を書き込むことが関わる。不揮発性メモリコンポーネントの電源が切られた後、全体的システムを動作させるプロセスは、完了する。
代替として、ステップ512で、不揮発性メモリコンポーネントの電源が切られるべきでないと判定された場合、プロセスフローは、ステップ520に進み、カウンタが閾値と等しいかどうかが判定される。つまり、ステップ520で、メンテナンス要求がスケジュールされるべきかどうかが判定される。カウンタが、閾値と等しくないと判定された場合、プロセスフローは、ステップ508に進み、不揮発性メモリコンポーネントが、引き続き使用され、カウンタが、適宜、増分される。
他方、ステップ520で、カウンタが閾値と実質的に等しいと判定された場合、一実施形態では、カウンタは、ステップ524でリセットされる。1つの閾値が存在する場合、カウンタは、再初期化されたカウンタが、カウンタが閾値と実質的に等しくなる程度まで最終的に増分されるたびに、メンテナンスがスケジュールされるようにリセットされる。しかし、複数の閾値が存在する場合、カウンタが到達して、メンテナンスがいつスケジュールされるべきかを示すことが可能な複数の閾値が存在するため、カウンタは、必ずしもリセットされないことを理解されたい。
ステップ528で、メンテナンスがスケジュールされる、すなわち、様々なブロックおよびテーブルの内容を更新することに関連する手続きが、スケジュールされることが可能である。通常、メンテナンス手続きは、より高い優先順位の手続きが、メンテナンス手続きが実行される前に実行され、完了することを可能にする遅延手続き呼び出しを使用して、キューに入れられる。メンテナンスがスケジュールされた後、定期的メンテナンスが、ステップ532で実行される。つまり、手続きのキューの中の、実質的にすべてのより高い優先順位の手続きの後の、スケジュールされたメンテナンスが完了し、全体的システムが、事実上、アイドルである。定期的なスケジュールされたメンテナンスを実行する一方法に関連するステップを、図4に関連して説明する。スケジュールされたメンテナンスが実行されると、プロセスフローは、ステップ508に戻り、不揮発性メモリコンポーネントが、引き続き利用される。
前述したとおり、内部メンテナンスをスケジュールすることにより、実質的に最新の状態にされるべき消去カウントブロックが、メモリコンポーネントのブロックに関連する最新の消去カウントを含むことを可能にするプロセスが、システムリソースが比較的利用できる時点に、メンテナンスが行われることが可能であるようにスケジュールされることが可能になる。また、内部メンテナンスをスケジュールすることにより、最少消去頻度ブロックテーブル、最多消去頻度ブロックテーブル、および電源管理ブロックなどの、他のブロックおよびテーブルを更新するプロセスも可能になる。
図6aは、更新されるのに先立つ物理ブロックおよび消去カウントブロックを示す図である。システム600内で、データを格納するように構成された予備の物理ブロック602、604が、ブロック602、604の中に、関連する消去カウント606、608をそれぞれ格納していることが可能である。ブロック602は、ブロック602が、200回、消去されていることを示す消去カウント606を有し、他方、ブロック604は、ブロック604が、500回、消去されていることを示す消去カウント608を有する。
消去カウントブロック610は、一般に、ブロック602、604の消去カウントを含む情報を含むように構成される。しかし、消去カウントブロック610が、比較的長い時間にわたって更新されていない場合、ブロック602、604と合致する、消去カウントブロック610の中に格納された消去カウントは、図示するとおり、古くなっている可能性がある。同様に、システム600内の最新の最少消去頻度ブロックが、比較的最近に、例えば、過去24時間以内に明らかにされていない場合、最少消去頻度ブロックテーブル(図示せず)の中に格納された最少消去頻度ブロックは、システム600内の最新の最少消去頻度ブロックではない可能性がある。例として、ブロック604に関する消去カウント608は、ブロック604が、ブロック602より多くの消耗を有することを示すものの、ブロック604が、最少消去頻度ブロックテーブル612の中で最少消去頻度ブロックとして事実上、識別されることが可能であるのに対して、ブロック602は、そのように識別されない。このため、ブロック602が、ブロック604より少ない消耗を有するものの、すなわち、ブロック602が、ブロック604より消去頻度が少ないものの、最少消去頻度ブロックテーブル(図示せず)は、最少消去頻度ブロックの実質的に不正確なリストを提供する可能性がある。
消去カウントブロック610の中に格納された消去カウントが、適度に新しい可能性を高めるため、内部メンテナンス要求は、更新が、比較的定期的に行われることを確実にするようにスケジュールされることが可能である。図6bは、本発明の実施形態による、スケジュールされた更新が行われた後の、消去カウントブロック、例えば、図6aの消去カウントブロック610を示す図である。スケジュールされた更新プロセスが完了すると、消去カウントブロック610’は、ブロック602、604に関連する消去カウントの比較的新しいバージョンを含む。
消去カウントブロック610’が、事実上、バックアップされることが所望される場合、スケジュールされたメンテナンスが実行されると、または、図8に関連して以下に説明する、適応テーブル・バックアップ・プロセスが実行されると、消去カウントブロック610’に関係する情報が、電源管理ブロック650の中に格納されることが可能である。一実施形態では、格納される情報は、消去カウントブロック610’が、必要な場合、再構築されることを可能にするのに必要とされる可能性が高い、実質的に任意の情報であることが可能である。例えば、消去カウントブロック610’が再現されることを可能にするのに必要とされる情報660が、パワーダウン署名などの署名662とともに格納されることが可能である。そのような情報660には、消去カウントが含まれることが可能である。というのは、消去カウントを使用して、消去カウントブロック610’、最少消去頻度ブロックテーブル(図示せず)、ならびに最多消去頻度ブロックテーブル(図示せず)を含むが、これには限定されない他のテーブル群が、実質的に再現されることが可能だからである。
一般に、内部メンテナンススケジュール要求を可能にすることに関連する機能は、ソフトウェアで、例えば、プログラムコードデバイスとして、またはファームウェアとして、不揮発性メモリまたは不揮発性メモリコンポーネントを含むホストシステムに提供される。電源管理ブロックが実施され、保持され、使用されることを可能にするように、ホストシステムに提供されるソフトウェアまたはファームウェアに関連する適切なシステムアーキテクチャの一実施形態が、図7に示されている。システムアーキテクチャ700は、一般に、アプリケーション・インタフェース・モジュール704、システム・マネージャ・モジュール709、データ・マネージャ・モジュール712、データ整合性マネージャ716、およびデバイス・マネージャ−インタフェース・モジュール720を含むことが可能であるが、以上には限定されない、様々なモジュールを含む。一般に、システムアーキテクチャ700は、プロセッサによって、例えば、図1aのプロセッサ108によってアクセスされることが可能なソフトウェア・コード・デバイス群またはファームウェアを使用して実施されることが可能である。
一般に、アプリケーション・インタフェース・モジュール704は、ホスト、オペレーティング・システム、またはユーザと直接に通信するように構成されることが可能である。また、アプリケーション・インタフェース・モジュール704は、システム・マネージャ・モジュール708およびデータ・マネージャ・モジュール712とも通信している。ユーザが、フラッシュメモリに対して読み取り、書き込み、またはフォーマットを行うことを所望する場合、モジュール704は、オペレーティング・システムに要求を送り、要求は、アプリケーションインタフェースに転送される。アプリケーションインタフェースは、要求に依存して、要求をシステム・マネージャ・モジュール708またはデータ・マネージャ・モジュール712に向かわせる。
システム・マネージャ・モジュール708は、システム初期化サブモジュール724と、消去カウントブロック管理サブモジュール726と、電源管理ブロックサブモジュール730とを含む。システム初期化サブモジュール724は、一般に、初期化要求が処理されることを可能にするように構成され、通常、消去カウントブロック管理サブモジュール726と通信する。消去カウントブロック管理サブモジュール726は、ブロックの消去カウントが格納されるようにする機能と、個々の消去カウントを使用して、平均消去カウントが計算されるとともに、更新されるようにもする機能とを含む。また、システム初期化モジュール724も、1対多の論理ブロック対物理ブロックの割り当てを解決するように構成され、このため、更新インデックスを利用することが可能である。電源管理ブロックサブモジュール730は、電源管理が、実施され、保持され、使用されることを可能にするように構成されることが可能である。例として、電源管理ブロックサブモジュール730は、電源管理ブロックを割り当て、電源管理ブロックの中に格納されることが可能な署名、およびその他の情報の書き込みを監督するように構成されることが可能である。
アプリケーション・インタフェース・モジュール704と通信していることに加え、システム・マネージャ・モジュール708は、データ・マネージャ・モジュール712、ならびにデバイス・マネージャ−インタフェース・モジュール720とも通信している。システム・マネージャ・モジュール708とアプリケーション・インタフェース・モジュール704の両方と通信するデータ・マネージャ・モジュール712は、論理セクタを物理セクタに事実上、変換するセクタマッピングを提供する機能を含むことが可能である。つまり、データ・マネージャ・モジュール712は、論理ブロックを物理ブロックにマップするように構成される。また、データ・マネージャ・モジュール712は、オペレーティング・システム・レイヤおよびファイル・システム・インタフェース・レイヤに関連する機能も含むことが可能であり、ブロック内のグループが管理されることを可能にする。
システム・マネージャ・モジュール708、データ・マネージャ712、およびデータ整合性マネージャ716と通信しているデバイス・マネージャ−インタフェース・モジュール720は、通常、フラッシュメモリ・インタフェースを提供し、ハードウェア抽象化、例えば、I/Oインタフェースに関連する機能を含む。データ整合化マネージャモジュール716は、他にも機能があるなかで、とりわけ、ECC処理を提供する。
前述したとおり、適応テーブル・バックアップ・プロセスを使用して、消去カウントブロックがバックアップされることを可能にすることができ、このため、スケジュールされたメンテナンスプロセスの結果として、消去カウントブロックがバックアップされるよりも頻繁に、更新されることを可能にすることができる。一実施形態では、適応テーブル・バックアップ・プロセスは、消去カウントブロックが、一度に完全には更新されないように構成されることが可能である。そのような実施形態では、適応テーブル・バックアップ・プロセスが行われるべきであると判定されると、消去カウントブロックの一部分が、更新されることが可能であり、例えば、消去カウントブロックの1/4が、更新されることが可能である。その後、次回に、適応テーブル・バックアップ・プロセスが行われるべきであると判定されると、消去カウントブロックの異なる部分、例えば、消去カウントブロックの次の1/4が、更新されることが可能である。各適応テーブル・バックアップ・プロセス中に、消去カウントブロックを部分的に更新することにより、各適応テーブル・バックアップ・プロセスに関連する時間が、短縮されることが可能である。
図8に関連して、本発明の実施形態による、適応テーブルバックアップを可能にする不揮発性メモリコンポーネントを使用する一方法を説明する。適応テーブルバックアップを可能にする不揮発性メモリコンポーネントを使用するプロセス900は、ステップ904で始まり、メモリコンポーネントが利用される。次に、ステップ908で、メモリコンポーネントの電源が切られるべきかどうかの判定が行われる。
ステップ908で、メモリコンポーネントの電源が切られるべきであると判定された場合、プロセスフローは、ステップ912に進み、パワーダウンプロセスが実行され、メモリコンポーネントの電源が切られる。前述したとおり、パワーダウンプロセスには、電源管理ブロックに署名を書き込むことが関わることが可能である。通常、パワーダウンプロセスは、適応テーブルバックアップにおいて実行されるのと実質的に同一のステップを実行することを含む。メモリコンポーネントの電源が切られると、不揮発性メモリコンポーネントを使用するプロセスは、完了する。
代替として、ステップ908における判定が、不揮発性メモリコンポーネントの電源が切られるべきでないということであった場合、ステップ916で、適応テーブルバックアップが実行されるべきかどうかの判定が行われる。前述したとおり、適応テーブルバックアップは、不揮発性メモリコンポーネント内の物理ブロックから獲得された最新の消去カウントの少なくともいくつかを使用して、消去カウントブロックを再構築することにより、消去カウントブロックを実質的に最新の状態にすることを含むことが可能である。また、適応テーブルバックアップは、最少消去頻度ブロックテーブルおよび最多消去頻度ブロックテーブルが、再構築されることを可能にするのに十分な情報も格納することが可能である。ただし、適応テーブルバックアップには、一般に、最少消去頻度ブロックテーブルおよび最多消去頻度ブロックテーブルを実際に再構築することは関わらない。
適応テーブルバックアップが実行されるべきであるかどうかの判定は、一般に、閾値に基づくことが可能である。例として、最少消去頻度ブロックテーブルの中で明らかにされた、システム内の最少消去頻度ブロックが、消去カウントブロックが前回に更新されて以来、特定の回数、変更された場合、適応テーブルバックアップが行われるべきであると判定されることが可能である。
ステップ916で、適応テーブルバックアップを実行すべき時期ではないと判定された場合、プロセスフローは、ステップ904に戻り、不揮発性メモリコンポーネントが、引き続き利用される。代替として、ステップ916で、適応テーブルバックアップを実行すべき時期であると判定された場合、ステップ918で、適応テーブルバックアップが実行されて、消去カウントブロックが実質的にバックアップされる。消去カウントブロックをバックアップすることは、一般に、現在の消去カウントを獲得すること、消去カウントブロックの中の現在の消去カウントを更新すること、したがって、消去カウントブロックを再構築することを含む。消去カウントブロックをバックアップすることにより、最少消去頻度ブロックテーブルおよび最多消去頻度ブロックテーブルを後に再構築するのに使用されることが可能な情報が、事実上、バックアップされることを理解されたい。説明する実施形態では、消去カウントブロックの中に格納された消去カウントの実質的にすべてが、更新される。ただし、他の諸実施形態には、代わりに、消去カウントブロックを部分的に更新することが関わることが可能である。消去カウントブロックがバックアップされた後、プロセスフローは、ステップ904に戻り、不揮発性メモリコンポーネントが、引き続き利用される。
本発明のいくつかの実施形態だけを説明したが、本発明は、本発明の趣旨または範囲を逸脱することなく、他の多くの特定の形態において実施されることが可能であることを理解されたい。例として、ブロックおよびテーブルを更新するとともに、ブロックおよびテーブルを実質的にバックアップする内部メンテナンス要求をスケジュールする能力を、概ね、NANDメモリに、例えば、MLC NANDメモリに関連するものとして説明してきた。しかし、一般に、電源管理ブロックは、実質的にあらゆる適切なメモリまたはメモリシステムに関連して実施されることが可能である。
不揮発性メモリシステムは、スケジュールされた内部メンテナンス要求と、適応テーブル・バックアップ・プロセスとをともに利用することができる。例えば、最少消去頻度ブロックテーブルなどのテーブルに関連するブロックの、およそ10000回の変更のたびに、適応テーブル・バックアップ・プロセスが行われることが可能である一方で、スケジュールされたメンテナンスは、最少消去頻度ブロックテーブルに関連するブロックの、およそ100000回の変更のたびに行われることが可能である。しかし、一部の不揮発性メモリシステムは、代わりに、適応テーブル・バックアップ・プロセスだけか、またはスケジュールされたメンテナンス要求だけを使用することが可能である。さらに、スケジュールされたメンテナンスの適応テーブル・バックアップ・プロセスを事実上、「トリガする」、最少消去頻度ブロックテーブルなどのテーブルの中のブロックに対する変更の回数は、大きく異なることが可能であることを理解されたい。
最少消去頻度ブロックテーブルまたは最多消去頻度ブロックテーブルなどのテーブルが、電源管理ブロックに事実上、書き込まれて、そのテーブルが、実質的にバックアップされることが可能であるが、電源管理ブロックにテーブルを書き込むことは、オプションであることを理解されたい。例えば、テーブルがバックアップされることをユーザまたはシステムが要求しない実施形態の場合、テーブルは、電源管理ブロックに書き込まれなくてもよい。
内部メンテナンス要求がスケジュールされる頻度は、大きく異なることが可能である。一般に、内部メンテナンス要求が、ホスト・オペレーティング・システムまたはアプリケーションによってスケジュールされる場合、内部メンテナンス要求は、毎日、ある時刻に行われるように、あるいは、スケジュールされた要求のために、または正常なパワーダウンのために、内部メンテナンスが実行されて以来、ある時間が経過すると、いつでも行われるようにスケジュールされることが可能である。内部メンテナンス要求が、メモリコンポーネント自体によってスケジュールされる場合、内部メンテナンス要求は、やはり、毎日、ある時刻に行われるように、あるいは、前回の内部メンテナンスが実行されて以来、ある時間が経過すると、いつでも行われるようにスケジュールされることが可能である。カウンタが特定の値に達すると、前述したとおり、内部メンテナンス要求がスケジュールされるべき時期であるかどうかの確認が、行われることが可能である。
消去カウントブロック、最少消去頻度ブロックテーブル、および最多消去頻度ブロックテーブルなどのテーブルを更新することに加え、他の様々な手続きが、スケジュールされた内部メンテナンス中に実行されることが可能である。前述したとおり、スケジュールされた内部メンテナンス中に適宜、実際の消去カウントから異なる消去カウントに切り替えること、または差分消去カウントを更新することが、スケジュールされたメンテナンス中に実行されることが可能な、さらなる手続きの実施例である。スケジュールされたメンテナンス中に実行されることが可能な他の手続きには、静的ブロックスワップなどの手続きが含まれることが可能であるが、これには限定されない。静的ブロックスワップには、静的ブロックが、比較的低い消去カウントを有する物理ブロックである場合を判定すること、ならびに、静的ブロックの内容を、比較的高い消去カウントを有する物理ブロックの中に実質的にコピーして、比較的低い消去カウントを有する物理ブロックが、事実上、予備のブロックになるようにすることが関わることが可能である。効率的な消耗均一化を促進する静的ブロックスワップの使用は、参照により組み込まれている、同時係属の米国特許出願第10/281739号、米国特許出願第10/281670号、および米国特許出願第10/281824号に記載されている。
本発明の様々な方法に関連するステップは、多種多様であることが可能である。一般に、ステップは、本発明の趣旨または範囲を逸脱することなく、追加、削除、並べ替え、および変更が行われることが可能である。一実施形態では、最少消去頻度ブロックテーブルが更新された回数を追跡するカウンタが、閾値と実質的に等しい場合、メモリコンポーネントまたは全体的システムに関連するタイマが確認されて、メンテナンス要求をスケジュールすべき時期であるかどうかが判定されることが可能である。したがって、本発明は、例示的であり、制限的ではないものと見なされるべきであり、本発明は、本明細書で与えられる詳細に限定されず、添付の特許請求の範囲の範囲内で変更されることが可能である。
不揮発性メモリを含む一般的なホストシステムを示す図である。 メモリデバイス、例えば、図1aのメモリデバイス120を示す図である。 組み込まれた不揮発性メモリを含むホストシステムを示す図である。 本発明の実施形態による、内部メンテナンス要求が内部でスケジュールされることが可能なシステムを示すブロック図である。 本発明の実施形態による、スケジュールされたメンテナンス要求を可能にする不揮発性メモリコンポーネントを使用する一方法を示すプロセス流れ図である。 本発明の実施形態による、スケジュールされた内部メンテナンスを実行する1つのプロセス、例えば、図3のステップ320を示すプロセス流れ図である。 本発明の実施形態による、メモリコンポーネントに関連するドライバが、内部メンテナンス要求を内部でスケジュールすることができる全体的なシステムを動作させる1つの方法を示すプロセス流れ図である。 本発明の実施形態による、更新されるのに先立つ物理ブロックおよび消去カウントブロックを示す図である。 本発明の実施形態による、スケジュールされた更新が行われた後に、消去カウントブロック、例えば、図6aの消去カウントブロック610を示す図である。 本発明の実施形態によるシステムアーキテクチャを示す概略ブロック図である。 本発明の実施形態による、適応テーブルバックアップを可能にする不揮発性メモリコンポーネントを使用する一方法を示すプロセス流れ図である。

Claims (26)

  1. 複数の物理ブロックと、前記複数の物理ブロックの各物理ブロックのステータスを含む消去カウントブロックを含む複数のデータ構造とを有する不揮発性メモリを含むメモリシステムを動作させるための方法であって、
    前記複数のデータ構造の少なくとも1つのデータ構造の内容が、いつ更新されるべきかを判定するステップと、
    前記少なくとも1つのデータ構造の前記内容が、更新されるべきであると判定されたことに応答して、前記少なくとも1つのデータ構造の前記内容を更新する要求を手続のキューに入れるステップと、
    前記手続のキュー内の少なくとも1つのより優先順位が高い手続の完了後に前記要求を実行して、前記少なくとも1つのデータ構造の前記内容を更新するステップとを含む方法。
  2. 前記少なくとも1つのデータ構造の前記内容を更新するステップは、前記消去カウントブロックの前記内容を更新して、前記複数の物理ブロックの各物理ブロックの実質的に最新のステータスを示すステップを含む請求項1に記載の方法。
  3. 前記複数のデータ構造は、利用可能な物理ブロックに関連する前記ステータスによって示されるところにより、比較的低い回数の書き込みサイクルおよび消去サイクルを経ている前記複数の物理ブロックの前記利用可能な物理ブロックを明らかにする情報を含むように構成された第1のデータ構造を含み、前記要求を実行して、前記少なくとも1つのデータ構造の前記内容を更新するステップは、前記第1のデータ構造の内容を更新するステップを含む請求項1に記載の方法。
  4. 前記複数のデータ構造は、利用可能な物理ブロックに関連する前記ステータスによって示されるところにより、比較的高い回数の書き込みサイクルおよび消去サイクルを経ている前記複数の物理ブロックの前記利用可能な物理ブロックを明らかにする情報を含むように構成された第1のデータ構造を含み、前記要求を実行して、前記少なくとも1つのデータ構造の前記内容を更新するステップは、前記第1のデータ構造の内容を更新するステップを含む請求項1に記載の方法。
  5. 前記複数のデータ構造は、前記メモリシステムに電源が投入された際に、前記メモリシステムによって使用される情報を含むように構成された第1のデータ構造を含み、前記要求を実行して、前記少なくとも1つのデータ構造の前記内容を更新するステップは、前記第1のデータ構造の内容を更新するステップを含む請求項1に記載の方法。
  6. 前記第1のデータ構造は、電源管理ブロックである請求項5に記載の方法。
  7. 前記少なくとも1つのデータ構造の前記内容を更新する前記要求をキューに入れるステップは、実行されるべき手続きの前記キューに前記要求を追加し、前記要求には、前記キューの中で比較的低い優先順位が割り当てられるステップを含む請求項1に記載の方法。
  8. 前記要求を実行して、前記少なくとも1つのデータ構造の前記内容を更新するステップは、前記手続のキュー内の全てのより優先順位が高い手続の完了に応答して、前記要求を実行して、前記少なくとも1つのデータ構造の前記内容を更新するステップを含む請求項7に記載の方法。
  9. 前記複数のデータ構造の前記少なくとも1つのデータ構造の前記内容が、いつ更新されるべきかを判定するステップは、第1の値を閾値と比較するステップを含み、前記第1の値が、前記閾値と等しいことに応答して、前記少なくとも1つのデータ構造の前記内容更新されるべきであると判定される請求項1に記載の方法。
  10. 前記複数のデータ構造の前記少なくとも1つのデータ構造の前記内容が、いつ更新されるべきかを判定するステップは、前記メモリシステムに関連する時刻を獲得し、前記時刻が、前記少なくとも1つのデータ構造の前記内容が更新されるべきであると示した場合を判定するステップを含む請求項1に記載の方法。
  11. 前記不揮発性メモリは、NANDフラッシュメモリである請求項1に記載の方法。
  12. 複数の物理ブロックと、前記複数の物理ブロックの少なくとも1つの物理ブロックが消去された回数を示すように構成された、前記複数の物理ブロックの前記少なくとも1つの物理ブロックの消去カウントを含む、消去カウントブロックを含む複数のデータ構造とを有する不揮発性メモリを含むメモリシステムを動作させるための方法であって、
    内部メンテナンスプロセスが、前記メモリシステム内でいつ実行されるべきかを判定するステップであって、前記内部メンテナンスプロセスは、前記消去カウントブロックの中の、前記複数の物理ブロックの前記少なくとも1つの物理ブロックの前記消去カウントを更新するように構成されたステップと、
    前記内部メンテナンスプロセスを求める要求を、前記内部メンテナンス要求が実行されるべきであると判定されたことに応答して、手続のキューに入れるステップと、
    前記キュー内の少なくとも1つのより優先順位が高い手続の完了後に前記内部メンテナンスプロセスを実行するステップとを含む方法。
  13. 前記内部メンテナンスプロセスを実行するステップは、
    前記消去カウントブロックの中の、前記複数の物理ブロックにおける前記少なくとも1つの物理ブロックの前記消去カウントを更新するステップと、
    前記メモリシステムに電源が投入された際に使用される情報を含むように構成された、前記複数のデータ構造の第1のデータ構造を更新するステップであって、
    前記情報は、前記複数の物理ブロックにおける前記少なくとも1つの物理ブロックの前記消去カウントを含むステップとを含む請求項12に記載の方法。
  14. 前記内部メンテナンスプロセスを実行するステップは、
    比較的低い消去カウントを有する、前記複数の物理ブロックにおける物理ブロックセットを実質的に明らかにするように構成された、前記複数のデータ構造の第2のデータ構造の内容を更新するステップと、
    比較的高い消去カウントを有する、前記複数の物理ブロックにおける物理ブロックセットを実質的に明らかにするように構成された、前記複数のデータ構造の第3のデータ構造の内容を更新するステップとをさらに含む請求項13に記載の方法。
  15. 前記内部メンテナンスプロセスが、いつ実行されるべきかを判定するステップは、第1の値を閾値と比較するステップを含み、前記第1の値が、前記閾値と等しいことに応答して、前記内部メンテナンスプロセスが、実行されるべきであると判定される請求項12に記載の方法。
  16. 前記内部メンテナンスプロセスが、いつ実行されるべきかを判定するステップは、前記メモリシステムに関連する時刻を獲得し、前記時刻が、前記内部メンテナンスプロセスが実行されるべきであると示した場合を判定するステップを含む請求項12に記載の方法。
  17. 複数の物理ブロックと、前記複数の物理ブロックの少なくとも1つの物理ブロックに関連する消去カウントを格納するように構成された消去カウントブロックとを含む不揮発性メモリと、
    前記消去カウントブロックの中の、前記複数の物理ブロックの前記少なくとも1つの物理ブロックの前記消去カウントを更新するように構成された内部メンテナンスプロセスが、メモリシステム内でいつ実行されるべきかを判定するように構成されたコードデバイス群と、
    前記内部メンテナンス要求が実行されるべきであると判定されたことに応答して、前記内部メンテナンスプロセスを求める要求を手続のキューに入れるように構成されたコードデバイス群と、
    前記手続のキュー内の少なくとも1つのより優先順位が高い手続の完了後に前記内部メンテナンスプロセスを実行するように構成されたコードデバイス群と、
    前記コードデバイス群を格納する媒体とを含むメモリデバイス。
  18. 前記内部メンテナンスプロセスを実行するように構成された前記コードデバイス群は、
    前記消去カウントブロックの中の、前記複数の物理ブロックにおける前記少なくとも1つの物理ブロックの前記消去カウントを更新するように構成されたコードデバイス群と、
    前記メモリシステムに電源が投入された際に使用される情報を含むように構成された、前記複数のデータ構造の第1のデータ構造を更新するように構成されたコードデバイス群であって、
    前記情報は、前記複数の物理ブロックにおける前記少なくとも1つの物理ブロックの前記消去カウントを含むデバイス群とを含む請求項17に記載のメモリデバイス。
  19. 前記内部メンテナンスプロセスを実行するように構成された前記コードデバイス群は、
    比較的低い消去カウントを有する、前記複数の物理ブロックにおける物理ブロックセットを実質的に明らかにするように構成された、前記複数のデータ構造の第2のデータ構造の内容を更新するように構成されたコードデバイス群と、
    比較的高い消去カウントを有する、前記複数の物理ブロックにおける物理ブロックセットを実質的に明らかにするように構成された、前記複数のデータ構造の第3のデータ構造の内容を更新するように構成されたコードデバイス群とをさらに含む請求項18に記載のメモリデバイス。
  20. 前記内部メンテナンスプロセスが、いつ実行されるべきかを判定するように構成された前記コードデバイス群は、第1の値を閾値と比較するように構成されたコードデバイス群を含み、前記第1の値が、前記閾値と実質的に等しい場合、前記内部メンテナンスプロセスが実行されるべきであると判定される請求項17に記載のメモリデバイス。
  21. 前記内部メンテナンスプロセスが、いつ実行されるべきかを判定するように構成された前記コードデバイス群は、
    前記メモリシステムに関連する時刻を獲得するように構成されたコードデバイス群と、
    前記時刻が、前記内部メンテナンスプロセスが実行されるべきであると示した場合を判定するように構成されたコードデバイス群とを含む請求項17に記載のメモリデバイス。
  22. 複数の物理ブロックと、前記複数の物理ブロックの少なくとも1つの物理ブロックに関連する消去カウントを格納するように構成された消去カウントブロックとを含む不揮発性メモリと、
    前記メモリシステム内で内部メンテナンスプロセスが、いつ実行されるべきであるかを判定するための手段であって、前記内部メンテナンスプロセスは、前記消去カウントブロックの中の、前記複数の物理ブロックの前記少なくとも1つの物理ブロックの前記消去カウントを更新するように構成された手段と、
    前記内部メンテナンス要求が実行されるべきであると判定されたことに応答して、前記内部メンテナンスプロセスを求める要求を手続のキューに入れるための手段と、
    前記手続のキュー内の少なくとも1つのより優先順位が高い手続の完了後に前記内部メンテナンスプロセスを実行するための手段とを含むメモリデバイス。
  23. 前記内部メンテナンスプロセスを実行するための前記手段は、
    前記消去カウントブロックの中の、前記複数の物理ブロックにおける前記少なくとも1つの物理ブロックの前記消去カウントを更新するための手段と、
    前記メモリシステムに電源が投入された際に使用される情報を含むように構成された、前記複数のデータ構造の第1のデータ構造を更新するための手段であって、
    前記情報は、前記複数の物理ブロックにおける少なくとも1つの物理ブロックの前記消去カウントを含む手段とを含む請求項22に記載のメモリデバイス。
  24. 前記内部メンテナンスプロセスを実行するための前記手段は、
    比較的低い消去カウントを有する、前記複数の物理ブロックにおける物理ブロックセットを実質的に明らかにするように構成された、前記複数のデータ構造の第2のデータ構造の内容を更新するための手段と、
    比較的高い消去カウントを有する、前記複数の物理ブロックにおける物理ブロックセットを実質的に明らかにするように構成された、前記複数のデータ構造の第3のデータ構造の内容を更新するための手段とをさらに含む請求項23に記載のメモリデバイス。
  25. 前記内部メンテナンスプロセスが、いつ実行されるべきであるかを判定するための前記手段は、第1の値を閾値と比較するための手段を含み、前記第1の値が、前記閾値と等しいことに応答して、前記内部メンテナンスプロセスが実行されるべきであると判定される請求項22に記載のメモリデバイス。
  26. 前記内部メンテナンスプロセスが、いつ実行されるべきであるかを判定するための前記手段は、
    前記メモリシステムに関連する時刻を獲得するための手段と、
    前記時刻が、前記内部メンテナンスプロセスが実行されるべきであると示した場合を判定するための手段とを含む請求項22に記載のメモリデバイス。
JP2006538000A 2003-10-28 2004-09-28 不揮発性メモリシステムのための内部メンテナンススケジュール要求 Expired - Fee Related JP4822440B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/696,229 2003-10-28
US10/696,229 US7089349B2 (en) 2003-10-28 2003-10-28 Internal maintenance schedule request for non-volatile memory system
PCT/US2004/031735 WO2005045599A2 (en) 2003-10-28 2004-09-28 Internal maintenance schedule request for non-volatile memory system

Publications (2)

Publication Number Publication Date
JP2007519083A JP2007519083A (ja) 2007-07-12
JP4822440B2 true JP4822440B2 (ja) 2011-11-24

Family

ID=34522876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006538000A Expired - Fee Related JP4822440B2 (ja) 2003-10-28 2004-09-28 不揮発性メモリシステムのための内部メンテナンススケジュール要求

Country Status (7)

Country Link
US (1) US7089349B2 (ja)
EP (1) EP1683027A4 (ja)
JP (1) JP4822440B2 (ja)
KR (1) KR100975164B1 (ja)
CN (1) CN100483362C (ja)
TW (1) TWI355583B (ja)
WO (1) WO2005045599A2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856793B2 (en) * 2004-05-11 2014-10-07 International Business Machines Corporation System, method and program for scheduling computer program jobs
US7224604B2 (en) * 2005-03-14 2007-05-29 Sandisk Il Ltd. Method of achieving wear leveling in flash memory using relative grades
US8194880B2 (en) * 2006-01-30 2012-06-05 Audience, Inc. System and method for utilizing omni-directional microphones for speech enhancement
US7467253B2 (en) 2006-04-13 2008-12-16 Sandisk Corporation Cycle count storage systems
US7451264B2 (en) 2006-04-13 2008-11-11 Sandisk Corporation Cycle count storage methods
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
US20080077727A1 (en) * 2006-09-25 2008-03-27 Baca Jim S Multithreaded state machine in non-volatile memory devices
TWI326028B (en) 2006-11-20 2010-06-11 Silicon Motion Inc Method for flash memory data management
CN101202741B (zh) * 2006-12-14 2010-09-22 英业达股份有限公司 动态调整任务请求数的方法
KR20090000192A (ko) * 2007-01-29 2009-01-07 삼성전자주식회사 유효기간 및/ 또는 인듀어런스 데이터를 알려주는 전자시스템 및 그 방법
US20080235480A1 (en) * 2007-03-21 2008-09-25 Shai Traister Systems for storing memory operations in a queue
WO2008115720A1 (en) * 2007-03-21 2008-09-25 Sandisk Corporation Methods for storing memory operations in a queue
US7987332B2 (en) * 2007-03-21 2011-07-26 Sandisk Technologies Inc. Methods for storing memory operations in a queue
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
TWI369633B (en) * 2007-06-27 2012-08-01 Sandisk Corp Phased garbage collection and house keeping operations in a flash memory system
US8099632B2 (en) * 2007-08-08 2012-01-17 Sandisk Technologies Inc. Urgency and time window manipulation to accommodate unpredictable memory operations
KR101454817B1 (ko) * 2008-01-11 2014-10-30 삼성전자주식회사 반도체 메모리 장치 및 그것의 마모도 관리 방법
KR100941423B1 (ko) * 2008-02-21 2010-02-11 인하대학교 산학협력단 메모리의 페이지 할당 방법 및 이를 수행하기 위한프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체
JP5272013B2 (ja) * 2008-10-01 2013-08-28 株式会社日立製作所 半導体装置
US20100138626A1 (en) * 2008-12-02 2010-06-03 Lynn James A Use of reservation concepts in managing maintenance actions in a storage control system
US8055942B2 (en) * 2009-12-03 2011-11-08 Seagate Technology Llc Data storage devices and methods for power-on initialization
JP5593254B2 (ja) * 2010-05-12 2014-09-17 パナソニック株式会社 半導体メモリ装置及び半導体メモリシステム
US8683148B2 (en) 2010-06-30 2014-03-25 Sandisk Il Ltd. Status indication when a maintenance operation is to be performed at a memory device
KR20120128978A (ko) * 2011-05-18 2012-11-28 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
KR101257691B1 (ko) 2011-08-12 2013-04-24 아주대학교산학협력단 메모리 컨트롤러 및 이의 데이터 관리방법
US8880786B2 (en) * 2012-09-28 2014-11-04 Apple Inc. Flash translation layer (FTL) database journaling schemes
US9116774B2 (en) * 2013-05-14 2015-08-25 Sandisk Technologies Inc. Firmware updates for multiple product configurations
TWI490870B (zh) * 2013-08-06 2015-07-01 Silicon Motion Inc 資料儲存裝置及其資料維護方法
CN104346236B (zh) 2013-08-06 2018-03-23 慧荣科技股份有限公司 数据储存装置及其数据维护方法
US9645741B2 (en) 2014-02-05 2017-05-09 Sandisk Technologies Llc Storage module and host device for storage module defragmentation
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
US10168905B1 (en) 2017-06-07 2019-01-01 International Business Machines Corporation Multi-channel nonvolatile memory power loss management
US10482010B2 (en) * 2017-06-29 2019-11-19 Intel Corporation Persistent host memory buffer
US10482014B2 (en) * 2017-08-08 2019-11-19 Dell Products L.P. System and method of managing a memory medium
US10373694B2 (en) * 2017-08-31 2019-08-06 Micron Technology, Inc. Responding to power loss
US10719248B2 (en) * 2018-04-20 2020-07-21 Micron Technology, Inc. Apparatuses and methods for counter update operations
KR102602990B1 (ko) * 2018-06-27 2023-11-17 에스케이하이닉스 주식회사 전원 공급 장치 및 이를 포함하는 전자 장치
TWI718516B (zh) * 2019-04-01 2021-02-11 慧榮科技股份有限公司 用於快閃記憶體中保護已抹除區塊的寫入管理機制
TWI755059B (zh) * 2020-09-11 2022-02-11 大陸商合肥沛睿微電子股份有限公司 儲存設備及其異常斷電恢復方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07161195A (ja) * 1993-06-30 1995-06-23 Intel Corp フラッシュメモリ
JPH0877074A (ja) * 1994-09-09 1996-03-22 Hitachi Ltd フラッシュメモリを用いた記憶装置システム
JP2001350738A (ja) * 2000-06-08 2001-12-21 Mitsubishi Electric Corp フラッシュメモリ内蔵マイクロコンピュータ
JP2003203490A (ja) * 2002-01-08 2003-07-18 Seiko Epson Corp 半導体記憶装置、制御装置、および半導体記憶装置の制御方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
EP0392895B1 (en) 1989-04-13 1995-12-13 Sundisk Corporation Flash EEprom system
US5222109A (en) 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5438573A (en) 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5860082A (en) 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
GB2317720A (en) * 1996-09-30 1998-04-01 Nokia Mobile Phones Ltd Managing Flash memory
JP3534585B2 (ja) * 1997-10-21 2004-06-07 株式会社日立製作所 フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
KR100297986B1 (ko) 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US6260156B1 (en) 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
KR100586031B1 (ko) * 1999-12-23 2006-06-01 브이케이 주식회사 비휘발성 메모리를 이용한 실시간 데이터베이스 운용방법
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
KR100914646B1 (ko) * 2002-08-31 2009-08-28 지인정보기술 주식회사 멀티-플레인 구조의 플래시 메모리 관리 방법
JP4357304B2 (ja) * 2004-01-09 2009-11-04 株式会社バッファロー 外部記憶装置
KR100526190B1 (ko) * 2004-02-06 2005-11-03 삼성전자주식회사 플래시 메모리의 재사상 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07161195A (ja) * 1993-06-30 1995-06-23 Intel Corp フラッシュメモリ
JPH0877074A (ja) * 1994-09-09 1996-03-22 Hitachi Ltd フラッシュメモリを用いた記憶装置システム
JP2001350738A (ja) * 2000-06-08 2001-12-21 Mitsubishi Electric Corp フラッシュメモリ内蔵マイクロコンピュータ
JP2003203490A (ja) * 2002-01-08 2003-07-18 Seiko Epson Corp 半導体記憶装置、制御装置、および半導体記憶装置の制御方法

Also Published As

Publication number Publication date
WO2005045599A2 (en) 2005-05-19
CN100483362C (zh) 2009-04-29
KR100975164B1 (ko) 2010-08-10
WO2005045599A3 (en) 2006-06-08
KR20060115397A (ko) 2006-11-08
EP1683027A4 (en) 2007-05-09
TW200532441A (en) 2005-10-01
TWI355583B (en) 2012-01-01
CN1875351A (zh) 2006-12-06
US7089349B2 (en) 2006-08-08
US20050091445A1 (en) 2005-04-28
JP2007519083A (ja) 2007-07-12
EP1683027A2 (en) 2006-07-26

Similar Documents

Publication Publication Date Title
JP4822440B2 (ja) 不揮発性メモリシステムのための内部メンテナンススケジュール要求
JP5005171B2 (ja) 論理ブロックをスプリットする方法および装置
US7032087B1 (en) Erase count differential table within a non-volatile memory system
KR101004876B1 (ko) 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블록
TWI507871B (zh) 資料儲存元件、記憶體系統以及使用非揮發性記憶體元件之計算系統
US7174440B2 (en) Method and apparatus for performing block caching in a non-volatile memory system
JP4611024B2 (ja) ブロック内のページをグループ化する方法及び装置
US7702880B2 (en) Hybrid mapping implementation within a non-volatile memory system
US8041879B2 (en) Flash memory backup system and method
US8037232B2 (en) Data protection method for power failure and controller using the same
US20150186224A1 (en) Data storage device and flash memory control method
US11138080B2 (en) Apparatus and method for reducing cell disturb in an open block of a memory system during a recovery procedure
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2006504195A (ja) 不揮発性記憶システムにおける摩耗一様化
JP2006504221A (ja) 不揮発性記憶システムにおける最高頻度消去ブロックの追跡
US8706990B2 (en) Adaptive internal table backup for non-volatile memory system
JP2010267290A (ja) 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置
JPWO2011118114A1 (ja) 不揮発性記憶装置及びメモリコントローラ
US20220374216A1 (en) Method of manufacturing information processing apparatus and mobile computer
JP2003242788A (ja) 不揮発性半導体メモリ装置及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100913

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101213

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110113

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110120

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110208

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110314

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110902

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140916

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees