JP2004152302A - 不揮発性メモリシステムにおいてブロックキャッシュを実行する方法および装置 - Google Patents

不揮発性メモリシステムにおいてブロックキャッシュを実行する方法および装置 Download PDF

Info

Publication number
JP2004152302A
JP2004152302A JP2003368148A JP2003368148A JP2004152302A JP 2004152302 A JP2004152302 A JP 2004152302A JP 2003368148 A JP2003368148 A JP 2003368148A JP 2003368148 A JP2003368148 A JP 2003368148A JP 2004152302 A JP2004152302 A JP 2004152302A
Authority
JP
Japan
Prior art keywords
block
logical
physical
physical block
content
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.)
Pending
Application number
JP2003368148A
Other languages
English (en)
Other versions
JP2004152302A5 (ja
Inventor
Robert C Chang
シー. チャン ロバート
Bahman Qawami
クァワミ バーマン
Farshid Sabet-Sharghi
サベット−シャーギ ファーシッド
Ping Li
リ ピン
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 JP2004152302A publication Critical patent/JP2004152302A/ja
Publication of JP2004152302A5 publication Critical patent/JP2004152302A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】 論理ページの更新に応答して生じる多数の書き込みおよび消去プロセスが低減されることを可能にする方法および装置を提供すること。
【解決手段】 不揮発性メモリのブロックと関連するコンテンツを処理する方法は、コンテンツの第1のセットを取得する工程であって、該コンテンツの第1のセットは、第1の論理ブロックの第1の論理グループと関連付けられ、該第1のグループは、該第1の論理ブロックと関連する第1の複数の論理ページを含み、該第1の論理ブロックは、第1の物理ブロックにマッピングされる、取得する工程と、該コンテンツの第1のセットをメモリ領域に書き込む工程と、該コンテンツの第1のセットを該メモリ領域から第2の物理ブロックの第1の物理グループに書き込む工程と、該第2の物理ブロックを該第1の論理ブロックにマッピングする工程とを包含する。
【選択図】 なし

Description

本発明は、米国特許仮出願第60/421,910号(2002年10月28日出願)の優先権を主張し、この出願は、参考のため、本明細書中にその全体が援用される。
(関連出願の相互参照)
本発明は、同時係属中の米国特許出願第10/281,739号、第10/281,823号、第10/281,670号、第10/281,824号、第10/281,631号、第10/281,855号、第10/281,762号、第10/281,696号、第10/281,626号および第10/281,804号、ならびに同時係属中の米国仮特許出願第60/421,725号、第60/421,965号、第60/422,166号、第60/421,746号および第60/421,911号(各々、2002年10月28日出願)に関し、これらの出願は、各々、参考のため、本明細書中にその全体が援用される。
(発明の背景)
(1.発明の分野)
本発明は、概して、大容量デジタルデータ記憶システムに関する。より具体的には、本発明は、論理ブロックの論理ページと関連する更新されたコンテンツが、その論理ブロックに対応する物理ブロックに書き込まれる前にキャッシュされることを可能にするシステムおよび方法に関する。
(2.関連技術の説明)
フラッシュメモリ記憶システム等の不揮発性メモリシステムは、このようなメモリシステムの物理サイズが小さく、繰返し再プログラムされるという不揮発性メモリの能力のために益々使用されている。フラッシュメモリ記憶システムの小さい物理サイズは、益々普及しつつあるデバイスにおけるこのような記憶システムの使用を容易にする。フラッシュメモリ記憶システムを用いるデバイスは、デジタルカメラ、デジタルカムコーダ、デジタルミュージックプレーヤー、ハンドヘルドパーソナルコンピュータおよびグローバルポジショニングデバイスを含むがこれらに限定されない。フラッシュメモリ記憶システムに含まれる不揮発性メモリに繰り返し再プログラムする能力は、フラッシュメモリ記憶システムが使用かつ再使用されることを可能にする。
一般に、フラッシュメモリ記憶システムは、フラッシュメモリカードおよびフラッシュメモリチップセットを含み得る。フラッシュメモリチップセットは、通常、フラッシュメモリコンポーネントおよびコントローラコンポーネントを含む。通常、フラッシュメモリチップセットは、埋め込みシステムに組み入れられるように構成され得る。このようなアセンブリまたはホストシステムの製造業者は、通常、コンポーネントの形態のフラッシュメモリ、および他のコンポーネントを取得し、その後、フラッシュメモリおよび他のコンポーネントをホストシステムに組み入れる。
フラッシュメモリシステムの論理ブロックは、通常、物理ブロックにマッピングされる。例えば、32個の論理ページを含む論理ブロックは、32個の物理ページを含む物理ブロックにマッピングされ得る。論理ブロックと関連する、新しいか、または更新されたデータは、物理ブロックに書き込まれるべきであり、物理ブロックにデータを収容するための利用可能な空間がない場合、通常、予備物理ブロックが取得される。一旦予備物理ブロックが取得されると、新しいか、または更新されたデータは、もとの物理ブロックからのデータを有する予備物理ブロックにマージされる。
図1は、更新されたコンテンツを有する論理ブロック、および、更新されたコンテンツを収容するために取得され得る物理ブロックの概略図である。時間t1において、論理ブロック「A」202の第3の論理ページ204cに新しいデータが含まれるように、論理ブロック「A」202が更新される。第3の論理ページ204cと関連する物理ブロック「A]212の更新されたコンテンツが、物理ブロック「A」212に書き込まれ得ないほどまでに一杯である場合、物理ブロック「A」212は、新しい物理ブロック「B」222が取得され得る。物理ブロック「A」212の実質的にすべての物理ページ「A」212のコンテンツは、第3の物理ページ214cのコンテンツを除いて、第3の論理ページ204cと関連する更新されたコンテンツと共に物理ブロック「B」222に書き込まれ得る。その結果、物理ブロック「B」222は、時間t1において論理ブロック「A」202と関連する最新のデータを含む。一旦物理ブロック「B」222が書き込まれると、論理ブロック202は物理ブロック「B」222にマッピングされ、物理ブロック「A」212は、通常、消去される。更新されたコンテンツを物理ブロックに書き込む1つの従来のプロセスが図2を参照して後述される。
時間t2において、物理ブロック「B」222にマッピングされる論理ブロック「A」202’が更新され、従って、第1の論理ページ204a’と関連するコンテンツは新しいか、または更新される。物理ブロック「B」222は、一杯になるか、または他の理由で、第1の論理ページ204a’に関連したコンテンツを含むように更新され得ないので、新しい物理ブロック「C」232が取得され得る。物理ブロック「B」222の実質的にすべての物理ページ224のコンテンツは、第1の物理ページ224aを除いて、第1の論理ページ214aと関連する更新されたコンテンツと共に物理ブロック「C」232に書き込まれ得、従って、物理ブロック「C」232は、時間t2において論理ブロック「A」202’と関連する最新データを含む。物理ブロック「B」222は、物理ブロック「C」232が論理ブロック「A」202’に書き込みおよびマッピングされた後に、通常、消去される。
次に、図2を参照して、論理ブロックと関連するページの更新されたコンテンツを物理ブロックに書き込む1方法と関連する工程が記載される。論理ブロックと関連する更新されたページが物理ブロックに書き込まれることを可能にするプロセス250は、工程254にて開始し、ここで、例えば、論理ブロック「A」と関連するページ「X」等のページが更新される。論理ブロック「A」のページ「X」を更新する工程は、通常、ページ「X」と関連するコンテンツを変更する工程を包含する。一旦論理ブロック「A」のページ「X」が更新されると、論理ブロック「A」にマッピングされるか、そうでない場合、これと関連付けられるべき新しい物理ブロック「B」が、工程258において取得される。論理ブロック「A」と現在関連付けられている物理ブロックは、ページ「X」の更新されたコンテンツが書き込まれ得る利用可能な空間を有しない場合、新しい物理ブロック「B」が取得され得る。当業者によって理解されるように、新しい物理ブロック「B」が予備ブロックプールから取得され得る。
工程262において、新しい物理ブロック「B」が取得された後、論理ブロック「A」と現在関連付けられている物理ブロック「A」の古いコンテンツは、論理ブロック「A」のページ「X」の更新されたコンテンツと共に物理ブロック「B」にマージされる。換言すると、物理ブロック「A」の実質的にすべてのコンテンツは、論理ブロック「A」のページ「X」と関連したコンテンツを除いて、論理ブロック「A」のページ「X」の更新されたコンテンツを有する論理ブロック「B」に書き込まれる。従って、物理ブロック「B」は、論理ブロック「A」と関連する最新のコンテンツを含む。
コンテンツが物理ブロック「B」に書き込まれた後、物理ブロック「A」は、工程266において消去され、工程270において、論理ブロック「A」との関連がはずされる。一旦物理ブロック「A」が消去され、かつ物理ブロック「A」との関連がはずされると、物理ブロック「A」は、通常、予備ブロックとして用いられるように利用可能であり、論理ブロックと関連する更新されたページが物理ブロックに書き込まれることを可能にするプロセスが完了する。
通常、物理ブロックにコンテンツを書き込むプロセス、および物理ブロックのコンテンツを消去するプロセスは時間がかかり、かつ、かなりの計算リソースを消費し得る。多くの場合、論理ブロックの論理ページが更新されるごとに1つの物理ブロックが書き込まれる一方で、もう一方の物理ブロックが消去される。従って、更新されるべきページが複数の場合、ブロックの消去が実質的に連続的に行われ得、新しいブロックが取得され得、かつ新しいブロックにデータが書き込まれ得る。ブロックを連続的に書き込む工程、およびブロックを消去する工程は、メモリシステムの性能を比較的著しく低下させ得る。
従って、必要とされるのは、論理ページの更新に応答して生じる多数の書き込みおよび消去プロセスが低減されることを可能にする方法および装置である。特に、所望されるのは、物理ブロックドメインにおいて更新を実行する能力を実質的に損なうことなく、論理ブロックドメインにおける更新に対応する物理ブロックドメインにおける更新を実行することと関連する書き込みおよび消去の量が低減されることを可能にするシステムである。
(発明の要旨)
本発明による方法は、不揮発性メモリのブロックと関連するコンテンツを処理する方法であって、該不揮発性メモリは、メモリシステムと関連付けられ、該方法は、コンテンツの第1のセットを取得する工程であって、該コンテンツの第1のセットは、第1の論理ブロックの第1の論理グループと関連付けられ、該第1のグループは、該第1の論理ブロックと関連する第1の複数の論理ページを含み、該第1の論理ブロックは、第1の物理ブロックにマッピングされる、取得する工程と、該コンテンツの第1のセットをメモリ領域に書き込む工程と、該コンテンツの第1のセットを該メモリ領域から第2の物理ブロックの第1の物理グループに書き込む工程であって、該第1の物理グループは、該第2の物理ブロックと関連する第1の複数の物理ページを含む、書き込む工程と、該第2の物理ブロックを該第1の論理ブロックにマッピングする工程とを包含し、それにより上記目的が達成される。
前記第1の物理ブロックは、コンテンツの第2のセットを含み、前記方法は、該コンテンツの第2のセットの少なくともいくつかを前記コンテンツの第1のセットを有する前記第2の物理ブロックに書き込む工程をさらに包含してもよい。
前記コンテンツの第2のセットを前記第1の物理ブロックから消去する工程と、該第1の物理ブロックと該第1の論理ブロックとのマッピングを実質的にはずす工程とをさらに包含してもよい。
前記コンテンツの第1のセットを前記メモリ領域から消去する工程をさらに包含してもよい。
前記第1の物理ブロックは、コンテンツの第2のセットを含み、前記方法は、該コンテンツの第2のセットを前記メモリ領域に書き込む工程をさらに包含してもよい。
前記コンテンツの第1のセットを前記メモリ領域に書き込む工程は、前記メモリ領域における前記コンテンツの第2のセットの少なくともいくつかを上書きする工程を包含してもよい。
前記メモリ領域は、RAMキャッシュであってもよい。
前記コンテンツの第1のセットは、前記第1の論理ブロックと関連する更新を含んでもよい。
コンテンツの第3のセットを取得する工程であって、前記コンテンツの第1のセットは、前記第1の論理ブロックの第2の論理グループと関連付けられ、該第2の論理グループは、該第1の論理ブロックと関連する第2の複数の論理ページを含む、取得する工程と、該コンテンツの第3のセットを前記メモリ領域に書き込む工程と、該コンテンツの第3のセットを該第2の物理ブロックの第2の物理グループに書き込む工程であって、該第2の物理グループは、該第2の物理ブロックと関連する第2の複数の物理ページを含む、工程とをさらに包含してもよい。
前記第1の論理ブロックと関連する取得されるべきコンテンツのセットが実質的に他にない場合を判定する工程であって、取得されるべきコンテンツのセットが他にないと判定された場合、前記コンテンツの第1のセットおよび前記コンテンツの第3のセットが前記メモリ領域に書き込まれる、決定する工程をさらに包含してもよい。
前記第1の論理ブロックと関連する取得されるべきコンテンツのセットが実質的に他にない場合を判定する工程は、第2の論理ブロックが更新されるべき場合を判定する工程を包含してもよい。
前記第2の論理ブロックが更新されるべきであると判定された場合、前記方法は、該第2の物理ブロックを実質的に直ちに取得する工程と、前記コンテンツの第1のセットおよび前記コンテンツの第3のセットを該第2の物理ブロックに実質的に直ちに書き込む工程とをさらに包含してもよい。
前記第2の物理ブロックを取得する工程は、該第2の物理ブロックを前記第1の論理ブロックにマッピングする工程を包含してもよい。
コンテンツの前記第2のセットを前記第1の物理ブロックから消去する工程と、該第1の物理ブロックと前記第1の論理ブロックとのマッピングを実質的にはずす工程とをさらに包含してもよい。
前記第2の物理ブロックを取得する工程と、該第2の物理ブロックを前記第1の論理ブロックにマッピングする工程とをさらに包含してもよい。
前記第1の物理ブロックは、前記コンテンツの第1のセットを収容するように構成されてもよい。
前記メモリ領域は、第3の物理ブロックおよびRAMキャッシュの1つであってもよい。
前記不揮発性メモリは、NANDフラッシュメモリであってもよい。
不揮発性メモリシステム内の第1の論理ブロックと関連する更新されたコンテンツを処理する方法であって、該第1の論理ブロックは、第1の物理ブロックにマッピングされ、該方法は、該第1の論理ブロックと関連する第1の更新を受信する工程であって、該第1の更新は、該第1の論理ブロックの第1の論理グループへの更新であり、該第1の論理グループは、該第1の論理ブロックと関連する第1の複数の論理ページを含むように構成される、受信する工程と、該第1の更新をキャッシュに記憶する工程と、該キャッシュのコンテンツを第2の物理ブロックに記憶する場合を判定する工程であって、該キャッシュのコンテンツは、該第1の更新を含む、判定する工程と、該キャッシュのコンテンツが該第2の物理ブロックに記憶されるべきであると判定された場合、該キャッシュのコンテンツを該第2の物理ブロックに記憶する工程であって、該キャッシュのコンテンツを記憶する工程は、該第1の更新を該第1の物理ブロックにおける第1の物理グループに記憶する工程を包含し、該第1の物理グループは、該第1の物理グループに含まれる第1の複数の物理ページを含む、記憶する工程と、該キャッシュのコンテンツが該第2の物理ブロックに記憶された後に、該第2の物理ブロックを該第1の論理ブロックにマッピングする工程と、該キャッシュのコンテンツが該第2の物理ブロックに記憶された後に、該第1の物理ブロックと該第1の論理ブロックとのマッピングをはずす工程とを包含し、それにより上記目的が達成される。
前記キャッシュのコンテンツを前記第2の物理ブロックに記憶する場合を判定する工程は、第2の論理ブロックが処理されるべき場合を判定する工程を包含し、該第2の論理ブロックが処理されるべきであると判定された場合、該キャッシュのコンテンツは、該第2の物理ブロックに記憶されてもよい。
前記第2の物理ブロックを取得する工程をさらに包含してもよい。
前記キャッシュのコンテンツは、前記第1の物理ブロックと関連する少なくともいくつかのコンテンツを含んでもよい。
前記第1の物理ブロックのコンテンツを前記キャッシュにコピーする工程であって、前記第1の更新は該キャッシュに記憶され、該第1の更新は、該第1の物理ブロックと関連する該コピーされたコンテンツの少なくとも一部分を実質的に上書きする、コピーする工程をさらに包含してもよい。
前記キャッシュは、RAMキャッシュであってもよい。
前記キャッシュのコンテンツを前記第2の物理ブロックに記憶する場合を判定する工程は、第2の論理ブロックが処理されるべき場合を判定する工程を包含し、該第2の論理ブロックが処理されるべきであると判定された場合、該キャッシュのコンテンツの少なくともいくつかが該第2の物理ブロックに記憶されてもよい。
前記第2の論理ブロックが処理されるべきであると判定された場合、前記第1の物理ブロックの前記コンテンツの少なくともいくつかを前記第2の物理ブロックに記憶する工程をさらに包含してもよい。
前記キャッシュのコンテンツの少なくともいくつかが前記第2の物理ブロックに記憶された後で、前記第1の物理ブロックを消去する工程をさらに包含してもよい。
前記キャッシュは、物理ブロックキャッシュであってもよい。
本発明は、更新、または論理ブロックと関連する新しいデータをキャッシュするシステムおよび方法に関する。本発明の1局面によると、不揮発性メモリのブロックと関連するコンテンツを処理する方法は、第1の論理ブロックと関連する第1のグループの論理ページと関連付けられるコンテンツの第1のセットを取得する工程と、およびコンテンツの第1のセットをメモリ領域に書き込む工程とを包含する。コンテンツの第1のセットは、その後、メモリ領域から第1の論理ブロックにマッピングされる第2の物理ブロックと関連する第1のグループの物理ページに書き込まれる。1実施形態において、メモリ領域は、RAMキャッシュおよび物理ブロックキャッシュの1つである。
別の実施形態において、第1の物理ブロックは、コンテンツの第2のセットを含み、この方法は、コンテンツの第2のセットの少なくともいくつかを、コンテンツの第1のセットと共に第2の物理ブロックに書き込む工程を包含する。このような実施形態において、コンテンツの第2のセットは、第1の物理ブロックから消去され得、第1の物理ブロックはマッピングされ得ないか、または、第1の論理ブロックとの関連が実質的にはずされ得る。
論理ブロックと関連する、更新されたコンテンツであり得る新しいコンテンツをキャッシュすることは、論理ブロックと関連する、実質的にすべての新しいコンテンツが処理されるまで、新しいコンテンツが一時的に記憶されることを可能にする。処理されるべきすべての新しいコンテンツが処理された場合、論理ブロックにマッピングされるもとの物理ブロックの任意の適切なコンテンツと共に、新しいコンテンツの少なくともいくつかがコピーされ得、従って、論理ブロックと関連する最新のコンテンツが、新しい物理ブロックに書き込まれる。キャッシングプロセスを用いることによって、更新を処理することと関連する書き込み動作および読み出し動作の数、または論理ブロックと関連する新規の追加が、通常、低減され得る。従って、キャッシュプロセスを用いるメモリシステム全体の性能が強化され得る。
本発明の別の局面によると、不揮発性メモリシステム内の第1の論理ブロックと関連する更新されたコンテンツを処理する方法は、第1の論理ブロックと関連する第1の更新を受信する工程、第1の更新をキャッシュに記憶する工程と、キャッシュのコンテンツを第2の物理ブロックに記憶する場合を判定する工程とを包含する。この方法は、キャッシュのコンテンツが第2の物理ブロックに記憶されるべきであると判定された場合、第1の更新を含むキャッシュのコンテンツを第2の物理ブロックに記憶する工程をさらに包含する。第2の物理ブロックは、その後、第1の論理ブロックにマッピングされ得、第1の物理ブロックは、キャッシュのコンテンツが第2の物理ブロックに記憶された後、第1の物理ブロックとのマッピングがはずされ得る。
1実施形態において、キャッシュのコンテンツを第2の物理ブロックに記憶する場合を判定する工程は、第2の論理ブロックが処理されるべきであると判定する工程を包含する。第2の論理ブロックがプロセスされるべきであると判定された場合、キャッシュのコンテンツは、第2の物理ブロックに記憶される。別の実施形態において、キャッシュのコンテンツは、第1の物理ブロックと関連する少なくともいくつかのコンテンツを含む。
本発明のこれら、および他の利点は、以下の詳細な説明を読み、かつ図面の種々の図を検討することによって明らかになる。
本発明は、添付の図面と関連付けられた以下の説明を参照することによって最良に理解され得る。
本発明により、論理ページの更新に応答して生じる多数の書き込みおよび消去プロセスが低減されることを可能にする方法および装置が提供される。特に、所望されるのは、物理ブロックドメインにおいて更新を実行する能力を実質的に損なうことなく、論理ブロックドメインにおける更新に対応する物理ブロックドメインにおける更新を実行することと関連する書き込みおよび消去の量が低減されることを可能にするシステムである。
(実施形態の詳細な説明)
物理ブロックを書き込みおよび物理ブロックを消去するプロセスは、相対的に時間がかかり、かつ、かなりの計算上のオーバーヘッドを用い得る。従って、書き込みおよび消去が比較的頻繁に行われる場合、物理ブロックを含むシステムの性能全体が不利な影響を受け得る。論理ブロックの論理ページが更新されるごとに論理ブロックにマッピングされる第1の物理ブロックが実質的に一杯である場合、第1の物理ブロックの更新およびいくつかのコンテンツが新しい物理ブロックに書き込まれ得る一方で、第1の物理ブロックが消去される。論理ブロックに関して複数のページが更新される場合、物理ブロックの消去が実質的に連続的に行われ、新しい物理ブロックが取得され、かつ新しい物理ブロックにデータが書き込まれ得る。物理ブロックが有効に連続的に書き込まれるか、または消去される場合、ブロックを含むメモリシステムの性能が低下され得る。
単一の論理ブロックにおける論理ページが連続的に更新される状態において、論理ブロックに対応する物理ブロックを書き込みおよび消去のために相当量の時間およびオーバーヘッドが費やされ得る。特に、論理ブロックにおける単一の論理ページが繰り返し更新され、論理ページへの更新ごとに「物理ブロックドメイン」において更新を実行する工程は、「論理ブロックドメイン」が連続的に変化する場合、物理ブロックドメインにおける更新が繰返し上書きされ得るため、特にむだであり得る。論理ブロックへの実質的にすべての更新が完了するまで物理ブロックの更新をしばらくの間待つことは、書き込み動作および消去動作の数が低減されることを可能にする。従って、メモリシステムの性能は改善され得る。
論理ブロック、または論理ブロックと関連する新しいデータへの更新をキャッシュするキャッシュプロセスの使用は、論理ブロックへの実質的にすべての更新または論理ブロックへの新しいデータの追加が終了するまで、更新がしばらくの間一時的に記憶されることを可能にする。少なくとも他の論理ブロックの処理が終わるまで、または、キャッシュが一杯の場合、論理ブロックへの更新データまたは新しいデータの追加がもはやなされないことが一旦有効に知られると、少なくともいくつかのキャッシュされた更新データおよび新しいデータが、論理ブロックへマッピングされるもとの物理ブロックの任意の適切なコンテンツと共にコピーされ得、従って、論理ブロックと関連する最新のコンテンツが新しい物理ブロックに書き込まれる。新しい物理ブロックが書き込まれた場合、もとの物理ブロックは消去され得る。その結果、複数の更新データまたは新規の追加を処理することと関連する書き込み動作および読み出し動作の数が低減され得る。本明細書中、および、後で議論を容易にするために、更新は、通常、新しいコンテンツを含む。同様に、ブロックにおけるコンテンツを更新する工程は、通常、ブロックに新しいコンテンツを追加する工程を含む。
ランダムアクセスメモリ(RAM)等のメモリが利用可能であるようなシステムのソフトウェア要件である場合、キャッシュは、RAMキャッシュであり得る。RAMキャッシュの使用は、通常、書き込みプロセスが効率的に行われることを可能にする。しかしながら、1実施形態において、利用可能なRAMの容量が不十分である場合、キャッシュは、ブロックキャッシュであり得る。すなわち、キャッシュは、物理ブロックであり得る。
フラッシュメモリシステム、または、より一般的には、不揮発性メモリは、RAMキャッシュ、または更新データが物理ブロックに書き込まれる前に更新されたデータを一時的にキャッシュするブロックキャッシュの使用から利益を受け得る。通常、フラッシュメモリシステムは、ホストシステムとの関連で用いられ、従って、ホストシステムは、フラッシュメモリシステムにデータを書き込み得るか、ここからデータを読み出し得る。しかしながら、いくつかのフラッシュメモリシステムは、図3cを参照して後述されるように、埋め込みフラッシュメモリ、および、埋め込みフラッシュメモリのコントローラとして実質的に機能するようなホスト上で実行するソフトウェアを含む。図3aを参照して、例えば、コンパクトフラッシュ(R)メモリカード等の不揮発性メモリデバイスを含む一般的ホストシステムが記載される。ホストまたはコンピュータシステム100は、通常、マイクロプロセッサ108、ランダムアクセスメモリ(RAM)112、および入力/出力回路116が通信することを可能にするシステムバス104を含む。ホストシステム100が、通常、例えば、ディスプレイデバイスおよびネットワークデバイス等の他のコンポーネント(例示の目的で図示されない)を含み得る。
一般的に、ホストシステム100は、静止画像情報、オーディオ情報、およびビデオ画像情報を含むが、これらに限定されない情報を取り込むことができ得る。このような情報は、リアルタイムで取り込まれ得、かつ無線方式でホストシステム100に転送され得る。ホストシステム100は、実質的に、任意のシステムであり得るが、ホストシステム100は、通常、デジタルカメラ、ビデオカメラ、セルラー通信デバイス、オーディオプレーヤまたはビデオプレーヤ等のシステムである。しかしながら、ホストシステム100は、通常、データまたは情報を記憶し、かつデータまたは情報を取り出す、実質的に、任意のシステムであり得る。
ホストシステム100は、さらに、データを取り込むだけか、またはデータを取り出すかのどちらかのシステムであり得る。すなわち、ホストシステム100は、1実施形態において、データを記憶する専用システムであり得るか、またはホストシステム100は、データを読み出す専用システムであり得る。例示的に、ホストシステム100は、データを書き込むかまたは記憶するようにのみ構成されるメモリライタであり得る。あるいは、ホストシステム100は、ホストシステム100は、通常、データを読み込みまたは取り出し、データを取り込むことはしないように構成されたMP3プレーヤ等のデバイスであり得る。
1実施形態において、除去可能な不揮発性メモリデバイスである不揮発性メモリデバイス120は、情報を記憶するためにバス104とインターフェース接続するように構成される。選択的インターフェースブロック130は、不揮発性メモリデバイス120がバス104と間接的にインターフェース接続することを可能にし得る。当業者によって理解されるように、入力/出力回路ブロック116は、存在する場合、バス104上に負荷がかかることを低減するために利用される。不揮発性メモリデバイス120は、不揮発性メモリ124および選択的メモリ制御システム128を含む。1実施形態において、不揮発性メモリデバイス120は、単一チップまたはダイ上にインプリメントされ得る。あるいは、不揮発性メモリデバイス120は、マルチチップモジュール上、または、チップセットを形成し得、かつ不揮発性メモリデバイス120として共に用いられ得る複数のディスクリートコンポーネント上にインプリメントされ得る。不揮発性メモリデバイス120の1実施形態において、図3bを参照してより詳細に後述される。
例えば、NANDフラッシュメモリといったフラッシュメモリ等の不揮発性メモリ124は、データが必要に応じてアクセスおよび読み出しされ得るようにデータを記憶するように構成される。不揮発性メモリ124内に記憶されたデータは、さらに、適切に消去され得るが、不揮発性メモリ124内の特定のデータは、消去可能ではあり得ないことが理解されるべきである。データを記憶、データを読み出し、およびデータを消去するプロセスは、通常、メモリ制御システム128によって制御されるか、または、メモリ制御システム128が存在しない場合、マイクロプロセッサ108により実行されるソフトウェアによって制御される。不揮発性メモリ124の動作は、従って、基本的に、不揮発性メモリ124のセクションを実質的に等しく消耗させることによって、不揮発性メモリ124の寿命が実質的に最大化されるように管理され得る。
不揮発性メモリデバイス120は、通常、選択的メモリ制御システム128、すなわちコントローラを含むことが記載された。多くの場合、不揮発性メモリデバイス120は、不揮発性メモリ124およびメモリ制御システム128、すなわちコントローラの機能の別個のチップを含み得る。例示的に、PCカード、コンパクトフラッシュ(R)カード、マルチメディアカード、およびセキュアデジタルカードを含むが、これらに限定されない不揮発性メモリデバイスは、別々のチップ上にインプリメントされ得るコントローラを含む一方で、他の不揮発性メモリデバイスは、別々のチップ上でインプリメントされるコントローラを含み得ない。当業者によって理解されるように、不揮発性メモリデバイス120が別々のメモリおよびコントローラチップを含まない実施形態において、メモリおよびコントローラ機能は、単一チップに統合され得る。あるいは、上述のように、例えば、不揮発性メモリデバイス120がメモリコントローラ128を含まない実施形態において、メモリ制御システム128の機能性は、マイクロプロセッサ108によって提供され得る。
図3bを参照して、不揮発性メモリデバイス120は、本発明の実施形態により、より詳細に説明される。上述のように、不揮発性メモリデバイス120は、不揮発性メモリ124を含み、かつ、メモリ制御システム128を含み得る。1実施形態において、メモリ124および制御システム128、またはコントローラは、不揮発性メモリデバイス120の一次コンポーネントであり得るが、メモリ124は、埋め込みNANDデバイスであり、例えば、不揮発性メモリデバイス120は、制御システム128を含み得ない。メモリ124は、半導体基板上に形成されるメモリセルのアレイであり得、ここで、データの1つ以上のビットは、2以上の電荷のレベルの1つをメモリセルの個々の記憶素子に記憶することによって個々のメモリセルに記憶される。電気的消去再書込み可能プログラム可能読み出し専用メモリ(EEPROM)は、このようなシステムの一般的なタイプのメモリの1例である。
制御システム128が不揮発性メモリデバイス120内に存在する場合、この制御システム128は、バス15を介してホストコンピュータ、またはデータを記憶するためにメモリシステムを用いる他のシステムに通信する。バス15は、通常、図3aのバス104の一部分である。制御システム128は、さらに、メモリ124の動作を制御し、これは、ホストにより提供されるデータを書き込み、ホストによってリクエストされるデータを読み出し、かつオペレーティングメモリ124における種々のハウスキーピング(house keeping)機能を実行するメモリセルアレイ11を含み得る。制御システム128は、通常、関連する不揮発性ソフトウェアメモリ、種々の論理回路等を有する多目的マイクロプロセッサを含む。多くの場合、1つ以上の状態マシンが、特定のルーチンの性能を制御するためにさらに含まれ得る。
メモリセルアレイ11は、1実施形態において、制御システム128、またはアドレス復号化器17を通じてマイクロプロセッサ108によってアドレス指定される。このような実施形態において、復号化器17は、制御システム128によってアドレス指定されるメモリセルのグループにデータをプログラムし、そこからデータを読み出すか、またはそれを消去するために、正確な電圧をアレイ11のゲートおよびビット線に印加する。さらなる回路19は、セルのアドレス指定されたグループにプログラムされるデータに依存する、アレイの素子に印加された電圧を制御するプログラミングドライバを含む。回路19は、センス増幅器、およびアドレス指定されたメモリセルのグループからデータを読み出すために必要とされる他の回路をさらに含む。アレイ11にプログラムされるべきデータ、またはアレイ11から最近読み出されたデータは、制御システム128と関連するバッファメモリ21に記憶され得るが、データは、その代わりに、他のバッファメモリ(図示せず)に記憶され得る。制御システム128は、通常、コマンドおよび状態データ等を一時的に記憶するための種々のレジスタもまた含み得る。
アレイ11は、多数のBLOCKS0−Nメモリセルに分割されることが多い。フラッシュEEPROMシステムについて一般的であるように、ブロックは、通常、消去の最小ユニットである。すなわち、各ブロックは、共に消去される最小数のメモリセルを含む。各ブロックは、通常、複数のページに分割される。当業者によって理解されるように、ページは、プログラミングの最小ユニットであり得る。すなわち、基本プログラミング動作は、最小限のメモリセルの1つのページにデータを書き込むか、またはここからデータを読み出し得る。1つ以上のデータのセクタは、各ページ内に記憶される。図3bに示されるように、1つのセクタは、ユーザデータおよびオーバーヘッドデータを含む。オーバーヘッドデータは、通常、セクタのユーザデータから計算されたエラー訂正コード(ECC)を含む。制御システム15の一部分23は、データがアレイ11にプログラムされる場合にECCを計算し、さらに、アレイ11からデータが読み出される場合、ECCをチェックする。あるいは、ECCは、異なったページ、またはこれらが属するユーザデータとは異なるブロックに記憶される。
ユーザデータの1セクタは、通常、512バイトであり、磁気ディスクドライブにおけるセクタのサイズに対応する。オーバーヘッドデータは、通常、さらなる16バイトであるが、オーバーヘッドデータは、通常、任意の数のバイトを含み得ることが理解されるべきである。データの1セクタは、最も一般的には、各ページに含まれるが、2つ以上のセクタは、その代わりにページを形成し得る。任意の数のページは、通常、ブロックを形成し得る。例示的に、ブロックは、8ページから512、1024またはそれ以上までのページから形成され得る。ブロックの数は、多くの場合、メモリシステムに所望のデータ記憶容量を提供するために選択される。アレイ11は、通常、いくつかのサブアレイ(図示せず)に分割され、これらの各々は、ブロックの一部分を含み、サブアレイは、種々のメモリ動作の実行において並列処理の程度を高めるために、互いにいくらか独立して動作する。複数のサブアレイの使用の例は、米国特許第5,890,192号に記載され、この出願は、参考のため、その全体が本明細書中に援用される。
1実施形態において、不揮発性メモリは、例えば、ホストシステム等のシステムに埋め込まれる。図3cは、埋め込み不揮発性メモリを含むホストシステムの概略図である。ホストまたはコンピュータシステム150は、通常、マイクロプロセッサ158、RAM162、および入力/出力回路166が、ホストシステム150の他のコンポーネント(図示せず)の中で通信することを可能にするシステムバス154を含む。例えば、フラッシュメモリ等の不揮発性メモリ174は、情報がホストシステム150内に記憶されることを可能にする。インターフェース180は、不揮発性メモリ174とバス154との間に提供され得、情報が不揮発性メモリ174から読み出されおよびこれに書き込まれることを可能にする。
不揮発性メモリ174は、ソフトウェア、および不揮発性メモリ174を制御するように構成されるファームウェアのどちらか、または両方を有効に実行するマイクロプロセッサ158によって管理され得る。すなわち、マイクロプロセッサ158は、コードデバイス(図示せず)、すなわち、ソフトウェアコードデバイスまたはファームウェアコードデバイスを動作させ得、これは、不揮発性メモリ174が制御されることを可能にする。CPU内部マイクロプロセッサ158、別個のフラッシュROM、または内部不揮発性メモリ174で実装されるフラッシュメモリであり得るこのようなコードデバイス(後述される)は、不揮発性メモリ174における物理ブロックがアドレス指定されることを可能にし得、かつ、情報が物理ブロックに記憶され、ここから読み出され、かつここから消去されることを可能にし得る。
論理ブロックと関連する新しいか、または更新されたデータが受信された場合、例えば、論理ブロックと関連する更新が、実質的に完了し、かつ、異なった論理ブロックと関連する更新が処理されるべきときまで、データは、RAMキャッシュにて一時的にキャッシュされ得る。図4aは、論理ブロック、物理ブロック、および、本発明による実施形態による論理ブロックと関連する更新をキャッシュするように構成されるRAMキャッシュの概略図である。例えば、NANDフラッシュメモリメモリコンポーネント等の不揮発性メモリコンポーネントに配置される物理ブロック「A」410は、論理ブロック「A」400にマッピングされる。記載された実施形態において、物理ブロック「A」410は、実質的に一杯であり、従って、論理ブロック「A」400と関連する更新されたか、または新しいコンテンツを受取り得ない。従って、論理ブロック「A」400の論理ページ402cのコンテンツが更新された場合、更新されたコンテンツ406は、物理ブロック「A」410に記憶され得ない。その代わりに、更新されたコンテンツ406は、物理ブロック「A」410がRAMキャッシュ420にコピーまたはキャッシュされた後、RAMキャッシュ420に一時的に記憶されるか、そうでない場合、これに書き込まれ、すなわち、キャッシュされる。
更新されたコンテンツ406をRAMキャッシュ420に書き込む工程は、RAMキャッシュ420に含まれる古いコンテンツを上書きする工程を包含することが理解されるべきである。例えば、更新されたコンテンツ406は、RAMキャッシュ420に予め記憶された古いデータコンテンツを上書きし得る。RAMキャッシュ420がメモリシステム全体の中の実質的にどこにでも配置され得る一方で、1実施形態において、RAMキャッシュ420は、不揮発性メモリコンポーネント、従って、物理ブロック「A」410を有効に制御するコントローラと関連付けられ得る。
実質的に、任意の他のブロック(図示せず)が更新されるべき前に、論理ブロック「A」400に次の更新がなされる場合、次の更新は、さらに、RAMキャッシュ420に記憶され得る。図4bに示されるように、論理ブロック「A」400のページ402eと関連するコンテンツ426が更新された場合、更新されたコンテンツ426は、RAM内の実質的に任意の適切な場所におけるRAMキャッシュ420にキャッシュされ得る。論理ブロック「A」400と関連する更新の現在のセットが完了するまで、更新は、実質的に連続的にRAMキャッシュ420に記憶され得る。論理ブロック「A」400への更新の現在のセットは、1実施形態において、論理ブロック「A」400への実質的にすべての更新であり得、これは、異なった論理ブロック(図示せず)と関連する更新が処理される前に処理され得る。
論理ブロック「A」400への更新の現在のセットがすべてRAMキャッシュ420にキャッシュされた場合、例えば、更新されたコンテンツ406、426等の、RAMキャッシュ420に一時的に記憶された更新は、新しい物理ブロックに書き込まれるか、そうでない場合、これにコピーされ得る。図4cは、物理ブロックおよびRAMキャッシュ、すなわち、図4bの物理ブロック410およびRAMキャッシュ420の概略図であり、本発明の実施形態による新しい物理ブロックに書き込まれるべきコンテンツを伴う。
一般に、論理ブロック「A」400と関連する最新または最近のコンテンツは、物理ブロック「B」440に書き込まれ得る。論理ブロック「A」400と関連する最新のコンテンツは、実質的にすべてRAMキャッシュ420内に含まれる。従って、RAMキャッシュ420のコンテンツを物理ブロック「B」440にコピーする工程は、物理ブロック「B」440が、本質的に物理ブロックドメイン内の論理ブロック「A」400のバージョンであることを可能にする。物理ブロック「B」440は、論理ブロック「A」400と関連する実質的にすべての現在の情報を含む場合、物理ブロック「A」410は消去され得、かつ、論理ブロック「A」400との関連がはずされるか、またはマッピングがはずされ得る。その結果、論理ブロック「A」400は、通常、任意の所与の時間にて単一の物理ブロックのみにマッピングされる。従って、システム内の物理ブロックの使用は、物理ブロック「B」440が論理ブロック「A」400と関連付けられ、物理ブロック「A」410と論理ブロック「A」400との関連がはずされ、かつ、予備ブロックプールに戻され得るのと実質的に同時に有効に節約される。
次に、図5を参照して、RAMキャッシュの使用を通じて物理ブロックドメインにおけるページのコンテンツを更新する1方法と関連する工程が、本発明の実施形態により記載される。RAMキャッシュを用いてページを一時的に記憶するプロセス500は、工程504にて開始し、ここで、ホストは、論理ブロック「A」の処理を開始する。例えば、不揮発性メモリは、インターフェース接続するシステム、または不揮発性メモリが埋め込まれるシステム等のホストは、論理ブロック「A」内に含まれるページと関連する更新を処理する場合、論理ブロック「A」の処理を開始し得る。
論理ブロック「A」と関連する物理ブロック「A」において利用可能な空間が実質的にない場合、物理ブロック「A」は、更新を有効に収容することができない。従って、RAMキャッシュは、更新が新しい物理ブロックに記憶される前に更新をキャッシュするために用いられ得る。工程504から、プロセスフローは、工程505に進み、ここで、新しい物理ブロック「B」が取得される。新しい物理ブロック「B」が、例えば、予備ブロックのセット等から取得されて、マッピングされるか、そうでない場合、論理ブロック「A」と関連付けられる。物理ブロック「A」の実質的にすべてのコンテンツは、工程506においてRAMキャッシュにキャッシュまたは書き込まれ得る。工程508において、論理ブロック「A」に含まれるページへの更新は、例えば、コントローラ等によってRAMキャッシュに記憶される。通常、更新は、更新されたデータまたは新しいデータを含み得、更新は、物理ブロック「A」と関連するデータがRAMキャッシュにて上書きされるようにし得る。上述のように、図4a〜図4cを参照して、RAMキャッシュは、RAM、または更新データを一時的に記憶する際に用いるために利用可能である同様のメモリである。一旦論理ページへの更新がRAMキャッシュに記憶されると、工程512において、例えば、論理ブロック「B」等の異なった論理ブロックの処理を開始する準備ができているか否かに関する判定が下される。換言すると、別のブロックが処理される前に、RAMキャッシュに記憶されることを必要とする論理ブロック「A」と関連する任意のさらなる更新がなされるか否かが判定される。
工程512において、論理ブロック「B」の処理を開始するときではないと判定された場合、論理ブロック「A」と関連するさらなる更新があることを示す。従って、プロセスフローは、工程508に戻り、ここで、論理ブロック「A」と関連する更新がRAMキャッシュに記憶される。あるいは、本質的に、異なった論理ブロックを処理するときではないと判定された場合、RAMキャッシュのコンテンツは、工程518において、物理ブロック「B」に書き込まれ、従って、論理ブロック「A」と関連する最新のコンテンツが物理ブロック「B」にて記憶または書き込まれる。
一旦情報が物理ブロック「B」に記憶されると、物理ブロック「A」は、工程524において消去される。RAMキャッシュに記憶される情報は上書きされ得るので、RAMキャッシュのコンテンツが物理ブロック「B」にマージされた後で、RAMキャッシュを消去することは、通常、必要とされないことが理解されるべきである。通常、別の物理ブロックのコンテンツが、RAMキャッシュに記憶された場合、RAMキャッシュの前のコンテンツが上書きされる。しかしながら、1実施形態において、一旦RAMキャッシュのコンテンツが物理ブロック「B」にマージされると、RAMキャッシュは消去され得る。
工程524において、物理ブロック「A」が消去された後、工程528において、物理ブロック「A」と論理ブロックとの関連がはずされる。物理ブロック「A」と論理ブロック「A」との関連をはずす工程は、マッピングを更新して、論理ブロック「A」が物理ブロック「B」と関連付けられることを示す工程を包含し得る。物理ブロック「A」と論理ブロック「A」との関連をはずす工程の後で、論理ブロックと関連するページ更新を一時的に記憶するためにRAMキャッシュを用いるプロセスが完了する。
更新を物理ブロックに書き込む前に、論理ブロックと関連する更新を一時的に記憶するためにRAMキャッシュを用いることは有効であるが、メモリシステムは、RAMキャッシュとして用いるために利用可能なRAMを常に有しているわけではあり得ない。通常、RAMキャッシュは、ブロックの実質的にすべてのコンテンツを収容し得るサイズである。従って、RAMキャッシュのサイズは、システム内の物理ブロックのサイズに依存して異なり得る。例えば、システム内の物理ブロックが、通常、約32ページを含む場合、RAMキャッシュは、少なくとも約32ページのブロックのコンテンツを収容するために十分な大きさのサイズであり得る。ソフトウェアの必要があり、物理ブロックを収容するために適切なサイズのRAMキャッシュが利用可能でないというような場合、実際の物理ブロックは、その代わりに、情報が論理ブロックと関連する物理ブロックに書き込まれる前に、情報を一時的に保持するために用いられ得る。換言すると、RAMキャッシュである「キャッシュブロック」をインプリメントするのではなく、その代わりに物理ブロックがインプリメントされ得るキャッシュブロックをインプリメントする。
図6aは、論理ブロック、物理ブロック、および、本発明の実施形態による論理ブロックと関連する更新をキャッシュするように構成される、例えば、物理ブロックキャッシュ等のキャッシュブロックの概略図である。不揮発性メモリコンポーネントの物理ブロック「A」610が論理ブロック「A」600にマッピングされる。物理ブロック「A」610が実質的に一杯であり、実際に、論理ブロック「A」600と関連して更新されたか、または新しいコンテンツを収容することができない場合、物理ブロックキャッシュ612は、更新されるか、または新しいコンテンツを一時的にキャッシュするために用いられ得る。
示されるように、論理ブロック60の論理ページ602cは、更新されたコンテンツ606を含む。更新されたコンテンツ606が論理ページ602cと関連付けられるという表示が物理ブロックキャッシュ612に記憶されるか、または利用可能であり、従って更新されたコンテンツ606が論理ページ602cと関連付けられるとして識別され得る場合、更新されたコンテンツ606は、物理ブロックキャッシュ612内の、実質的にどこにでも記憶され得る。例示的に、更新されたコンテンツ606は、示されるように、物理ブロックキャッシュ612内の第1の利用可能なページにキャッシュされ得る。あるいは、1実施形態において、更新されたコンテンツ606は、論理ページ602cと対応する場所における物理ブロックキャッシュ612に書き込まれるか、またはキャッシュされ得る。
例えば、更新されたコンテンツ616が論理ページ602eと関連付けられる場合等、有効になされた次の更新がある場合、更新されたコンテンツ616は、さらに、物理ブロックキャッシュ612にキャッシュされ得る。例えば、異なった論理ブロック(図示せず)を処理するときである場合等、一旦論理ブロック「A」600と関連する実質的にすべての更新が、少なくとも一時的に完了すると、図6bを参照して説明されるように、更新606、616を含む、論理ブロック「A」600と関連する最新データが新しい物理ブロックに書き込まれ得る。いくつかの実施形態において、論理ブロック「A」600と関連する「最新データ」は、更新のみを含み得る一方で、示されるような実施形態を含む他の実施形態において、論理ブロック「A」600と関連する最新データは、更新606、616、および、更新606、616によって奪われなかった物理ブロック「A」610のいくつかのコンテンツを含み得る。異なった論理ブロック(図示せず)を処理するときではない場合でさえ、物理ブロックキャッシュ612が一杯である場合、論理ブロック「A」600と関連する最新コンテンツを新しい物理ブロックに供給するために、マージ動作または同様の動作が行われることが理解されるべきである。新しい物理ブロックは、その後、「古い」物理ブロックになり得、論理ブロック「A」600と関連するさらなる更新が、新しい物理ブロックキャッシュ612にキャッシュされ得る。
図6bに示されるように、異なった論理ブロックが処理されるべきであると仮定すると、論理ブロック「A」600にマッピングされる新しい物理ブロック「B」620が取得され得る。新しい物理ブロック「B」620が必要に応じて取得され得るか、または、1実施形態において、論理ブロック「A」600と関連するキャッシュプロセスが最初に開始する場合に取得され得ることが理解されるべきである。一般に、論理ブロック「A」600と関連する最新または最近のコンテンツは、物理ブロック「B」620に書き込まれ得る。多くの場合、論理ブロック「A」600と関連する最新のコンテンツは、物理ブロック「A」610および物理ブロックキャッシュ612の両方に含まれ得る。特に、論理ブロック「A」600の実質的に任意の更新されたコンテンツは、物理ブロックキャッシュ612に含まれる一方で、古いコンテンツ、または更新の現在のセットの結果として更新されなかったコンテンツが物理ブロック「A」610に含まれる。例えば、より新規に更新されたコンテンツ(図示せず)が更新されたコンテンツ606を有効に奪い得る等、論理ブロック「A」600のいくつかの更新されたコンテンツは、論理ブロック「A」600内にも含まれる、より最近更新されたコンテンツによって奪われ得ることが理解されるべきである。
物理ブロック「A」610および物理ブロックキャッシュ612のコンテンツが有効に組み合わされて、物理ブロック「B」620のページが、物理ブロックキャッシュ612から取得された更新されたコンテンツ606、616、および現在の物理ブロック「A」610のコンテンツ、すなわち、物理ブロックキャッシュ612のコンテンツによって有効に奪われなかった物理ブロック「A」610のコンテンツを含む。いくつかの場合、物理ブロック「A」610の実質的にすべてのコンテンツは、物理ブロックキャッシュのコンテンツによって奪われ得、従って、物理ブロックのコンテンツは物理ブロック「B」620に含まれない。一旦物理ブロック「B」620が本質的に物理ブロックドメインにおける論理ブロック「A」600のバージョンであり、従って、論理ブロック「A」600と関連する実質的にすべての現在の情報を含むと、物理ブロック「A」610が消去され得る。
図7は、本発明の実施形態による、物理ブロックキャッシュの使用により物理ブロックドメインにおけるページのコンテンツを更新する1方法と関連する工程を示すプロセスフローチャートである。論理ページの更新を一時的に記憶するためにブロックキャッシュを用いるプロセス660は、工程670において開始し、ここで、ホストは、論理ブロック「A」の処理を開始する。換言すると、不揮発性メモリがインターフェース接続するシステム、または、不揮発性メモリが埋め込まれるシステムは、論理ブロック「A」のコンテンツへの更新の処理を開始し得る。
ホストが論理ブロック「A」の処理を開始した後、論理ブロック「A」にマッピングされるべき新しい物理ブロック「B」が工程672において取得される。その後、論理ブロック「A」に含まれるページへの更新が、コントローラによる例のように、工程674におけるブロックキャッシュに記憶される。図6aおよび図6bを参照して述べられたように、論理ブロック「A」にマッピングされる物理ブロック「A」がページの更新を収容し得ない場合、ページの更新は、キャッシュに記憶され得る。一旦論理ブロック「A」におけるページへの更新がブロックキャッシュに記憶されると、工程678において、ホストが例えば、論理ブロック「B」等の異なった論理ブロックの処理を開始する準備ができたか否かに関する判定が下される。すなわち、処理されることを必要とする論理ブロック「A」と関連する任意のさらなる更新の有無が判定される。
工程678における判定が、論理ブロック「B」の処理を開始するときではないという場合、論理ブロック「A」と関連するさらなる更新があることが示される。従って、プロセスフローは、工程674に戻り、ここで、論理ブロック「A」と関連更新がブロックキャッシュに記憶される。他方、論理ブロック「B」の処理を開始するときでないと判定された場合、物理ブロック「A」およびブロックキャッシュのコンテンツは、工程686において、物理ブロック「B」に組み合わされ得、従って、論理ブロック「A」と関連する最新コンテンツは、物理ブロック「B」に書き込まれる。すなわち、物理ブロック「A」のコンテンツ、および、ブロックキャッシュのコンテンツは、有効にマージされ、かつ、物理ブロック「B」に記憶され、従って、物理ブロック「B」は、論理ブロック「A」のページと関連する現在のコンテンツを含む。いくつかの場合において、ブロックキャッシュのコンテンツは、物理ブロック「A」のコンテンツを有効に奪い得、従って、実質的に、物理ブロック「A」のコンテンツが物理ブロック「B」にコピーまたは記憶されない。
論理ブロック「A」と関連する現在のコンテンツが物理ブロック「B」に書き込まれた後、物理ブロック「A」は、工程690において消去される。その後、工程694において、ブロックキャッシュが消去される。一旦ブロックキャッシュが消去されると、工程698において、物理ブロック「A」と論理ブロック「A」との関連がはずされる。物理ブロック「A」と論理ブロック「A」との関連をはずす工程は、マッピングを更新する工程を包含し得、これは、論理ブロック「A」が物理ブロック「B」と関連することを示す。物理ブロック「A」と論理ブロック「A」との関連がはずされた後、論理ブロックと関連するページの更新を一時的に記憶するためにブロックキャッシュを用いるプロセスが完了する。
一般に、RAMキャッシュまたはブロックキャッシュが利用されることを可能にすることと関連する機能性が、例えば、プログラムコードデバイスとして、またはホストシステムへのファームウェアとして等ソフトウェアに提供される。本発明の実施形態によるホストシステムに提供されるソフトウェアまたはファームウェアと関連する適切なシステムアーキテクチャの1実施形態が図8に示される。システムアーキテクチャ700は、通常、アプリケーションインターフェースモジュール704、システムマネージャモジュール708、データマネージャモジュール712、データインテグリティマネージャ716およびデバイスマネージャならびにインターフェースモジュール720を含み得るがこれらに限定されない多様なモジュールを含む。一般に、システムアーキテクチャ700は、ソフトウェアコードデバイス、または、例えば、図3aのプロセッサ108等のプロセッサによってアクセスされ得るファームウェアを用いてインプリメントされ得る。
一般に、アプリケーションインターフェースモジュール704は、ホスト、オペレーティングシステムまたはユーザと直接的に通信するように構成され得る。アプリケーションインターフェースモジュール704は、さらに、システムマネージャモジュール708およびデータマネージャモジュール712とも通信する。ユーザがフラッシュメモリを読み出し、書き込みまたはフォーマット化することを所望する場合、ユーザは、オペレーティングシステムにリクエストを送信し、リクエストは、アプリケーションインターフェースモジュール704に渡される。アプリケーションインターフェースモジュール704は、リクエストに依存して、システムマネージャモジュール708またはデータマネージャモジュール712にリクエストを方向付ける。
システムマネージャモジュール708は、システム初期化サブモジュール724、消去カウントブロック管理サブモジュール726、および電力管理ブロックサブモジュール730を含む。システム初期化サブモジュール724は、通常、初期化リクエストが処理されることを可能にするように構成され、かつ、通常、消去管理サブモジュール726と通信する。
アプリケーションインターフェースモジュール704と通信することに加えて、システムマネージャモジュール708は、データマネージャモジュール712、ならびにデバイスマネージャおよびインターフェースモジュール720とも通信する。システムマネージャモジュール708およびアプリケーションインターフェースモジュール704の両方と通信するデータマネージャモジュール712は、ページまたはブロックマッピングを提供する機能性を含み得る。データマネージャモジュール712は、オペレーティングシステムおよびファイルシステムインターフェースレイヤと関連する機能性をさらに含み得る。
システムマネージャモジュール708、データマネージャ712およびデータインテグリティマネージャ716と通信するデバイスマネージャおよびインターフェースマネージャ720は、通常、フラッシュメモリインターフェースを提供し、かつ、例えば、I/Oインターフェース等のハードウェア抽象化と関連する機能性を含む。データインテグリティマネージャモジュール716は、機能性の中でもECCハンドリングを提供する。
本発明の1実施形態において、キャッシュが実質的にページ上で、実質的にページ単位で行われるようにブロックキャッシュを実行するのではなく、ブロックキャッシュは、グループ単位で実行され得る。同時係属中の米国特許出願第10/281,855号に記載されるように、グループは、ブロック内の任意の数のページを含む。例えば、32ページを含むブロックは、32ページが、それぞれが8ページの4つのグループにグループ分けされるように構成され得る。一般に、ブロックにおけるグループの数、およびグループにおけるページの数は様々である。
グループ化スキーマが用いられた場合、更新データは、グループの一部分として物理ブロックに書き込まれ得る。図9aは、論理ブロック、物理ブロック、および本発明の実施形態によるグループに分割される新しい物理ブロックの概略図である。論理ブロック「A」900は、論理グループ904に分割され、これは、次に、各々が、多数の論理ページ908を含む。論理ブロック「A」900は、4つの論理グループ904を含むことが示され、これらの各々が、4つのページ908を含み、論理ブロック「A」900に含まれるグループ904およびページ908の数は様々であり得る。特定のページ908が属するグループ904は、通常、各ページ908と関連するオーバーヘッドまたは冗長領域において通常識別される。
物理ブロック「B」912は、論理ブロック「A」900と関連付けられ、従って、物理ブロック「B」912は、論理ブロック「A」900と関連するデータまたはコンテンツを含む。示されるように、物理ページ(図示せず)を含む、物理ブロック「B」912の第1の物理グループ916aは、論理グループ904aと関連するデータ920aを含む。同様に、第2の物理グループ916bは、論理グループ904bと関連するデータ920bを含み、第3の物理グループ916cは、論理グループ904cと関連するデータ920cを含み、第4の物理グループ916dは、論理グループ904dと関連するデータ920dを含む。
論理グループ904bと関連するデータが更新されるべきことを示す更新924が、例えば、ホストから受信された場合、更新924がデータ920bと有効にマージされ、かつ、新しい物理ブロック「B1」928における第1の利用可能なグループ932aに記憶される。マージは、論理グループ904bの各ページと関連する最新コンテンツがグループ932aに記憶されることを可能にするように行われる。更新されたグループと関連するデータおよびもとのデータのマージは、図10を参照して後述される。図9bに示されるように、論理ブロック「A」900と関連する更新プロセスが完了した場合、物理ブロック「B1」928は、論理ブロック「A」900と関連する物理ブロックになり得、すなわち、物理ブロック「B1」928は、論理ブロック「A」900と関連するようになり得る一方で、物理ブロック「B」912は、論理ブロック「A」900との関連がはずされる。
物理ブロック「B」912と論理ブロック「A」900との関連がはずされる前に、物理ブロック「B」912のコンテンツは物理ブロック「B1」928にマージされていない。例えば、第1の論理グループ904aと関連するデータ920bは、コピーされるか、そうでない場合、物理ブロック「B1」928の第2の物理グループ932bに提供される一方で、第3の論理グループ904cと関連するデータ920cは、第3の物理グループ932cに提供される。同様に、第4の論理グループ904dと関連するデータ920dは、第4の物理グループ932dに提供され得る。その結果、論理ブロック「A」900と関連する最新コンテンツが物理ブロック「B1」928に存在する。
物理ブロック「B1」928が論理ブロック「A」900と関連する物理ブロックになった後、論理ブロック「A」900にさらなる更新がなされ得る。図9cを参照して、予め更新され、かつ、グループ904に分割される論理ブロック「A」900へのさらなる更新を処理するプロセスが本発明の実施形態により記載される。論理グループ904bと関連する新しい更新940が処理されるべき場合、物理ブロック「B」912は、論理ブロックと関連する最新コンテンツをもはや含まず、物理ブロック「B1」928が有効に一杯であるので、更新940を記憶するために新しい物理ブロック「B2」944が取得され得る。特に、物理グループ932aに記憶される論理グループ904bと関連するデータ936は、更新940とマージされ、かつ、物理ブロック「B2」944の第1の利用可能なグループ946aに更新データ948として記憶される。更新データ948は、論理グループ904b内のページと関連する最新コンテンツを含む。
一旦更新プロセスが完了すると、論理ブロック「A」900と関連する最新データは、物理ブロック「B2」944に提供され得る。例示的に、第1の論理グループ904aと関連するデータ920aが物理ブロック「B2」944の第2の物理グループ946bに提供され得、第3の論理グループ904cと関連するデータ920cが第3の物理グループ946cに提供され得、かつ、第4の論理グループ904dと関連するデータ920dは、第4の物理グループ946dに提供され得る。物理ブロック「B2」944が論理ブロック「A」900と関連する最新コンテンツを含む場合、物理ブロック「B2」944は、論理ブロック「A」900と関連付けられ得る一方で、物理ブロック「B1」928は、論理ブロック「A」900との関連がはずされ得る。
グループに分割される物理ブロックが、最初、コンテンツを有さない場合、論理ブロックと関連する新しいか、または更新されたデータが受信されると、ホストからの例について言えば、データのいくつかが、物理ブロックに記憶される他のデータを有効に奪う場合であっても、新しいか、または更新されたデータが物理ブロックに記憶され得る。図9dは、グループに分割された論理ブロックと、論理ブロックに関連付けられた更新データを含む論理ブロックと、本発明の実施形態による論理ブロックに関連付けられる最新のデータとを含む新しい物理ブロックの概略図である。コンテンツが論理ブロック「A」950と関連させられるべきときに、論理ブロック「A」950が、最初、コンテンツを含まない場合、そのコンテンツは、論理ブロック「A」950と関連する物理ブロック「B」956に書き込まれ得る。示されるように、論理ブロック「A」950の第2の論理グループ952bと関連する新しいデータ960aが提供された場合、データ960aは、物理ブロック「B」956の第1の利用可能な物理グループ958aに記憶され得る。
第2の論理グループ952bと関連するデータが更新された場合、更新データ960a’は、例えば、第2の物理グループ958b等の、次の利用可能な物理グループ958に記憶され得る。データ960a’が記憶された後、第3の論理グループ952cと関連する新しいデータ960bが受信された場合、データ960bは、次の利用可能な物理グループ958すなわち、第3の物理グループ958cに記憶される。最後に、第2の論理グループ952bと関連する更新データ960a’’が受信された場合、更新データ960a’’は、記載された実施形態において、物理ブロック「B」956において利用可能な最後の物理グループ958である第4の物理グループ958dに記憶される。
一旦物理ブロック「B」956が一杯であると、すなわち、一旦物理ブロック「B」956内のすべてのグループがデータ960を含み、論理ブロック「A」950と関連する新しいか、または更新されたデータが受信されると、通常、使用する新しい物理ブロックが取得される。例示的に、論理グループ952dの新しいデータ966が受信される場合、データ966を収容するための新しい物理ブロック「B1」962が取得され得る。データ966は、物理ブロック「B1」962における第1の利用可能なグループ964aに記憶され得る。データ966が記憶された後、物理ブロック「B」956に含まれるデータ960は、物理ブロック「B2」962に記憶され得る。
物理ブロック「B」956に含まれるデータ960を物理ブロック「B」962に記憶するために、グループ958は、「後から先(bottom first)」の態様で、すなわち、グループ958dから開始してグループ958aで終了するように、物理ブロック「B」956から読み出され得る。データが、論理グループ952bと関連するデータ960を含む物理グループ958a、958b、958d内の同じページオフセットにて存在する場合、物理グループ958dにおけるページオフセットにて含まれるデータは、最新データであると判断される。一般に、物理グループの数が高いほど、同グループのデータは新しい。一旦論理グループ952bと関連する最新データが識別されるか、または、一旦データ960a、データ960a’およびデータ960a’’が適切にマージされると、マージされ、論理グループ952bと関連する更新されたデータ968は、物理ブロック「B1」962内のグループ964bに記憶される。実質的に、物理ブロック「B」956内のただ1つのグループ958cが、論理グループ952dと関連するデータ960bを含むので、データ960bは、物理ブロック「B1」962の第3のグループ964cに提供され得る。グループ964dにはデータが記憶されないので、グループ964dは、例えば、論理グループ952a等の新しい論理グループと関連するデータを収容するために有効に利用可能である。
上述のように、論理グループのための更新データが受信されると、そのグループのより古いデータが存在する場合、そのより古いデータは、適宜、更新データとマージされ得る。1実施形態において、更新データは、グループ内の実質的に各ページの更新データを含む場合、更新データは、すべてのより古いデータを有効に上書きする。しかしながら、更新データがグループ内のいくつかのページのみへの更新を含む場合、マージプロセスが行われ得る。次に図10を参照して、もとのデータのグループを新しいデータのグループとマージする1方法が、本発明の実施形態により説明される。グループ「X」1000は、8ページ1002を含み得る。いくつかのページ1002は、データを含み得る一方で、他のページ1002は、実質的に空であり得る。示されるように、ページ1002a、1002d、1002eは、もとのデータを含む。
グループ「X」1000の新しいデータが、更新の形態でホストから受信された場合、新しいデータは、グループ更新1006のページ1008にて提供され得る。ページ1008a〜dおよびページ1008gは、グループ「X」1000に含まれるデータとマージされるべき新しいか、または更新されたデータを含む。マージプロセスは、通常、グループ「X」1000と関連する最新データを識別する工程を含む。新しいデータがもとのデータを有効に上書きするので、新しいデータは、グループ「X」1000と関連する最新データであると考えられる。他方、もとのデータを有効に上書きする新しいデータがない場合、もとのデータは、最新データであると考えられ得る。
グループ「X」1000のもとのデータを更新1006のグループとマージした結果を含むマージされたデータ1010は、ページ1012を含み、従って、グループ「X」1000の第1のページ1002に対応する第1のページ1012aは、ページ1008aからの新しいデータを含む。なぜなら、ページ1008aからの新しいデータは、第1のページ1002において記憶されるもとのデータを有効に奪うからである。本来、データがページ1002b、1002cに含まれないので、ページ1008b、1008cが提供された新しいデータは、ページ1012b、1012cにそれぞれ書き込まれる。ページ1008dに含まれるデータは、ページ1002dに含まれるデータよりも最新であるので、ページ1012dは、ページ1008dからの新しいデータを含む。更新1006のグループは、ページ1008eにおいて更新されたコンテンツが含まれなかったので、ページ1012eは、ページ1002eからのもとのデータを含む。最後に、ページ1012gは、ページ1008gに含まれる新しいデータを含む。一旦マージされたデータ1010が完了すると、マージされたデータ1010は、有効にグループ「X」1000になる。
一般に、グループへの更新が特定のページと関連するデータを含む場合、データは、生じたグループのマージされたデータ内の対応するページに含まれる。なぜなら、このデータは、特定のページと関連する唯一のデータであるか、またはそのデータは、特定のページと関連するもとのデータを上書きするからである。あるいは、所与のページのもとのデータが、ページを含むグループへの更新によって上書きされない場合、もとのデータは、グループの結果として生じるマージされたデータ内で対応するページに含まれる。
図11aおよび図11bは、本発明の実施形態によるグループに分割される論理ブロックと関連するコンテンツを更新する1方法と関連する工程を示すプロセスフローチャートである。コンテンツを更新するプロセス1100は、工程1102にて開始し、ここで、物理ブロック「B」と関連する、論理ブロック「A」のグループ「X」と関連するコンテンツは、例えば、ホストによって更新される。通常、論理グループ「X」は、2つ以上のページを含む。一旦論理グループ「A」のグループ「X」と関連するコンテンツが更新されると、新しい物理ブロック「B1」が取得されて、工程1104において論理ブロック「A」と関連付けられる。
工程1106において、通常、物理ブロック「B」内のグループに記憶される、論理グループ「X」と関連する古いコンテンツは、論理グループ「X」の新しいか、または更新されたコンテンツとマージされ、かつ、物理ブロック「B1」に記憶される。マージされたコンテンツが物理ブロック「B1」に記憶された後、工程1108において、記憶されるべき論理ブロック「A」のより新しいか、または更新されたコンテンツの有無に関する判定が下される。記憶されるべき、新しいか、または更新されたさらなるコンテンツがあると判定された場合、プロセスフローは、工程1105に戻り、ここで、論理ブロック「A」内の異なった論理グループであり得る論理グループ「X」と関連する古いコンテンツは、新しいか、または更新されたコンテンツとマージされる。換言すると、新しいか、または更新されたコンテンツは、論理ブロック「A」内の実質的に任意の論理グループと関連付けられ得、従って、このマージは、新しいか、または更新されたコンテンツと適切な論理グループとの間で生じる。
あるいは、工程1108において、論理ブロック「A」の新しいか、または更新されたコンテンツがもはや記憶されないことが判定された場合、工程1110において、物理ブロック「B」の物理ブロック「B1」にマージされなかったコンテンツ等の、残りのコンテンツを記憶するための十分な空間が物理ブロック「B1」内に有るか否かに関する判定が下される。すなわち、論理ブロック「A」と関連する現在のコンテンツの全部の物理的表現(full physical representation)が物理ブロック「B」に記憶され得るか否かが判定される。物理ブロック「B」の残りのコンテンツを物理ブロック「B1」に記憶するために、物理ブロック「B1」において利用可能なグループが十分にあると判定された場合、工程1120において、物理ブロック「B」からの残りのコンテンツは、物理ブロック「B1」にコピーされる。
物理ブロック「B」からの残りのコンテンツが物理ブロック「B1」にコピーされた後、物理ブロック「B1」は、論理ブロック「A」と関連する最新コンテンツまたは現在のコンテンツを含む。従って、物理ブロック「B」は、工程1122において消去され、かつ、工程1124において論理ブロック「A」との関連がはずされる。一旦物理ブロック「B」と論理ブロック「A」との関連が外されると、論理ブロックと関連するコンテンツを更新するプロセスが完了する。
工程1110に戻って、物理ブロック「B」の残りのコンテンツを記憶するために物理ブロック「B1」において利用可能なグループが十分にないと判定された場合、新しい物理ブロックが取得されて、「論理ブロック「A」と関連する最新コンテンツを含むことが示される。従って、プロセスフローは、工程1112に進み、ここで、新しい物理ブロック「B2」が論理ブロック「A」と関連付けられるように割り当てられる。一旦新しい物理ブロック「B2」が取得されると、物理ブロック「B」および物理ブロック「B1」のコンテンツが工程1114において物理ブロック「B2」にマージされ、従って、論理ブロック「A」と関連する最新コンテンツは物理ブロック「B2」に記憶される。一般に、物理ブロック「B」および物理ブロック「B1」のコンテンツをマージする工程は、物理ブロック「B」および物理ブロック「B1」内のグループのコンテンツをマージする工程を包含する。
コンテンツが物理ブロック「B2」にマージされた後、物理ブロック「B1」は、工程1116において消去される。一旦物理ブロック「B1」が消去されると、物理ブロック「B1」と論理ブロック「A」との関連は、工程1118においてはずされる。その後、プロセスフローは、工程1122に進み、ここで、物理ブロック「B」は消去される。
上述のRAMキャッシュは、論理グループと関連する更新のグループをキャッシュするために用いられ得る。RAMキャッシュの使用は、通常、論理ブロックと関連する更新プロセスの進行中に必要とされる消去プロセスの数を低減し得る。なぜなら、RAMキャッシュは、更新プロセスが完了するまで更新され、その時点にて、新しい物理ブロックが取得されて、論理ブロックと関連する最新データを記憶し、かつ古い物理ブロックが消去され得るからである。
図12aを参照して、グループに有効に分割されるRAMキャッシュの使用が、本発明の実施形態により説明される。論理ブロック「A」1200は、論理グループ1204に分割され、その後、各々が多数の論理ページ1208を含む。物理ブロック「B」1212は、論理ブロック「A」1200と関連付けられ、従って、物理ブロック「B」1212は、論理ブロック「A」1200と関連するデータまたはコンテンツを含む。示されるように、物理ブロック「B」1212の物理ページ(図示せず)を含む第1の物理グループ1216aは、論理グループ1204aと関連するデータ1220aを含む。同様に、第2の物理グループ1216bは、論理グループ1204bと関連するデータ1220bを含み、第3の物理グループ1216cは、論理グループ1204cと関連するデータ1220cを含み、かつ、第4の物理グループ1216dは、論理グループ1204dと関連するデータ1220dを含む。
ホストによる例のように、論理グループ1204bと関連するデータが更新されるべきであることを示す更新1224が受信されると、更新1224は、RAMキャッシュ1228内の第1の利用可能なグループ1232aに記憶される。あるいは、1実施形態において、更新1224が第2の論理グループ1204bと関連付けられるので、更新1124は、第2のRAMグループ1232bに記憶され得る。
論理グループ1204bと関連するデータが再び更新されるべきことを示すさらなる更新が受信される場合、このような更新は、RAMキャッシュ1228内のグループ1232aのコンテンツとマージされ得る。図12bに示されるように、論理グループ1204bに対応する新しい更新1236が受信される場合、新しい更新1236におけるデータは、RAMグループ1232aに予め記憶されたコンテンツとマージされ得、論理グループ1204bと関連するマージされ、更新されたデータ1224’を形成する。いくつかの例において、新しい更新されたデータ1236のいくつかは、マージプロセスの間、前の更新されたデータ、すなわち、図12aの新しいデータ1224を上書きし得る。なぜなら、RAMが上書きされ得るからである。
論理グループ1204dの更新1240の場合、更新1240は、次の利用可能なRAMページ1232bに記憶され得る。更新1240が更新1236の前に受信されるか、後に受信されるかに関わらず、更新1236は、依然として、グループ1232aに組み込まれ、かつ更新1240はグループ1232bに記憶されることが理解されるべきである。
一旦論理ブロック「A」1200になされるべき実質的にすべての更新が完了すると、すなわち、別の論理ブロックが更新されるべきときである場合、RAMキャッシュ1228のコンテンツおよび物理ブロック「B」1212のコンテンツが新しい物理ブロックにマージされ得る。図12cは、本発明の実施形態により、RAMキャッシュ1228および物理ブロック「B」1212が新しい物理ブロックにマージされた後の、論理ブロック「A」1200および新しい物理ブロックの概略図である。一旦論理ブロック「A」1200になされるべき更新が完了したことが判定されると、物理ブロック「B1」1236が、通常、取得される。一旦物理ブロック「B1」1236が取得されると、図10を参照して説明された例のように、RAMキャッシュ1228のグループ1232のコンテンツは、物理ブロック「B」1212のグループ1220のコンテンツとマージされ得、そして、物理ブロック「B1」1236に記憶され得る。
論理グループ1204bと関連するデータがRAMキャッシュ1228内で更新されたので、更新データ1224’は、論理グループ1204bと関連付けられたもとのデータを表すデータ1220bとマージされる。データ1220bは、論理グループ1204と関連するいくつかの現在のコンテンツを含み得るか、または、データ1220bは、更新されたデータ1224’からみて有効に古くなり(outdated)得ることが理解されるべきである。論理グループ1204bと関連する最新または現在のデータが物理ブロック「B1」1236において表されることを実質的に保証するために、更新されたデータ1224’およびデータ1220bからマージされたデータ1244を生成するためにマージプロセスが用いられる。同じ論理グループ1204と関連する同じページオフセットが、対応する物理グループ1216内にさらなるデータを含む場合、RAMキャッシュ1228のRAMグループ1232に含まれるデータは、通常、マージされたデータに含まれる。すなわち、論理グループ1204内のページオフセットに対応するデータが、物理グループ1216およびRAMグループ1232の両方に存在する場合、RAMグループ1232におけるデータは、マージされたデータに含まれる。なぜなら、RAMグループ1232におけるデータはより最近のものだからである。
記載された実施形態において、論理グループ1204aと関連するもとのデータであるデータ1220aが物理グループ1240aに記憶された後、マージされたデータ1244が第2の物理グループ1240bに記憶され得る。論理グループ1204cと関連するデータ1220cは、更新されなかったので、データ1220cは、物理グループ1240cに記憶され得る。論理グループ1204dが、物理ブロック「B」1212の物理グループ1216dに記憶される関連するもとのデータ1220d、および、RAMキャッシュ1228のRAMグループ1232bに記憶される、新しいか、または更新されたデータ1240を有する。従って、マージプロセスがデータ1220dおよび、新しいか、または更新されたデータ1240を用いて実行され、論理グループ1204dと関連する最新または現在のコンテンツを表すマージされたデータ1248を生成する。示されるように、マージされたデータ1248は、物理グループ1240dに記憶される。従って、物理ブロック「B」1212は、古くなり、かつ、消去され得、ならびに、論理ブロック「A」1200との関連がはずされる。なぜなら、物理ブロック「B1」1236は、ここで、論理ブロック「A」1200と関連する現在のコンテンツを含むからである。
図12dは、論理ブロック1200、物理ブロック1212およびRAMキャッシュ1228の概略図であり、ここで、RAMキャッシュのコンテンツが存在する。なぜなら、本発明の実施形態により、新しいデータを収容するための十分な空間が物理ブロック内にないからである。物理ブロック1212のグループ1216は、従って、グループ1216aが論理グループ1204bと関連するもとのデータ1220aを含み、グループ1216bが論理グループ1204bと関連する更新データ1220a’を含み、グループ1216cが、論理グループ1204cと関連するデータ1220cを含み、そして、グループ1216dが論理グループ1204dと関連するデータ1220a’’を含むというふうである。従って、データが書き込まれ得る利用可能なさらなるグループ1216がない物理ブロック1212は一杯である。
論理グループ1204dに対応する新しいデータ1240が提供される場合、新しいデータ1240は、RAMキャッシュ1228における適切なRAMグループ1232に記憶される。1実施形態において、適切なRAMグループ1232は、RAMキャッシュ1228内で最初に利用可能なRAMグループ1232aであり得る。論理ブロック「A」1200になされるべきさらなる更新がないと判定された場合、論理ブロック「A」1200と関連付けられる新しい物理ブロック「B1」1252が取得され得る。
物理ブロック「B1」1252内で、第1の物理グループ1260は、論理グループ1204bと関連するマージされたデータ1260を含む。マージされたデータ1260は、データ1220a、データ1220a’、およびデータ1220a’’をマージすることによって生成され、従って、論理グループ1204bと関連する最新データは、マージされたデータ1260において含まれる。論理グループ1204bと関連する最新データがマージされたデータ1260に含まれることを実質的に保証するために、グループ1216は、グループ1216dで開始し、かつグループ1216aで終了して処理され、従って、最新データは、所与の論理グループと関連する特定のページオフセットに含まれる。
一旦マージされたデータ1260が生成され、かつ、グループ1256aに記憶されると、論理グループ1204cと関連するデータ1220cは、グループ1256bに記憶され、RAMキャッシュ1228に存在するデータ1240はグループ1256に記憶される。その結果、物理ブロック「B1」1252は、論理ブロック「A」1200と関連する最新データを含む。
図13を参照して、論理ブロックの論理グループと関連する更新を記憶するためにRAMキャッシュを用いる1方法と関連する工程が本発明の実施形態により記載される。プロセス1300は、工程1304にて開始し、ここで、ホストは、物理ブロック「B」と関連する論理ブロック「A」を処理することを開始する。論理ブロック「A」を処理する工程は、通常、論理ブロック「A」内の論理グループの更新を処理する工程を包含する。
工程1308において、RAMキャッシュはクリアされる。一旦RAMキャッシュがクリアされると、論理ブロック「A」と関連する更新されたコンテンツは、工程1312において、RAMキャッシュに記憶される。特に、更新されたコンテンツは、更新されたコンテンツが関連付けられる論理グループに基づいて、適切なRAMグループに記憶され得る。その後、工程1316において、記憶されるべき論理ブロック「A」と関連する更新されたさらなるコンテンツの有無が判定される。記憶するさらなるコンテンツがあることが判定された場合、プロセスフローは工程1312に戻り、ここで、更新されたコンテンツは記憶される。
あるいは、工程1312において、論理ブロック「A」の更新されたさらなるコンテンツがないと判定された場合、新しい物理ブロック「B1」は、工程1320において、論理ブロック「A」と関連付けられるように割り当てられる。換言すると、論理ブロック「A」と関連する最新データが書き込まれるべき物理ブロック「B1」が取得される。一旦新しい物理ブロック「B1」が割り当てられると、RAMキャッシュのコンテンツおよび物理ブロック「B」のコンテンツは、工程1324において、物理ブロック「B1」に、適宜、マージされる。コンテンツをマージする工程は、通常、各論理グループと関連するコンテンツをマージする工程を含み得、従って、マージされたコンテンツは、各論理グループと関連する最新または現在のコンテンツである。
一旦RAMキャッシュのコンテンツおよび物理ブロック「B」のコンテンツがマージされると、物理ブロック「B1」は、論理ブロック「A」と関連する最新コンテンツを有効に含む。従って、工程1328において、物理ブロック「B」は消去され得る。物理ブロック「B」が消去された後、物理ブロック「B」と論理ブロック「A」との関連がはずされ、かつ、更新を記憶するためにRAMキャッシュを用いるプロセスが完了する。
いくつかの場合、例えば、利用可能なRAMがシステム内に十分にない場合の例のように、RAMキャッシュの使用は可能になり得ない。RAMキャッシュが用いられない場合、キャッシュブロックまたはブロックキャッシュが、その代わりに、論理ブロックと関連するグループへの更新を記憶するために用いられ得る。図14aは、グループに有効に分割され、かつ、本発明の実施形態により、グループに分割される論理ブロックと関連する更新を記憶する際に用いるために適切であるRAMキャッシュの概略図である。論理ブロック「A」1400は、論理グループ1404に分割され、その後、各々は、多数の論理ページ1408を含む。物理ブロック「B」1412は、論理ブロック「A」4200と関連し、従って、物理ブロック「B」1412は、論理ブロック「A」1400と関連するデータを含む。物理ページ(図示せず)を含む物理ブロック「B」1412の第1の物理グループ1416aは、論理グループ1404aと関連するデータ1420aを含む。同様に、第4の物理グループ1416dは、論理グループ1404bと関連する更新データ1420dを含む。第2の物理グループ1416bは、論理グループ1404aと関連するデータ1420bを含み、第3の物理グループ1416cは、論理グループ1204cと関連するデータ1420cを含む。物理ブロック「B」1412は、論理グループ1404dと関連する任意のデータを含まない。
論理グループ1404dと関連するデータを含む更新1424が受信され、更新1424は、物理ブロックキャッシュ1428内の第1の利用可能なグループ1432aに記憶される。論理グループ1404dと関連するデータが再び更新されるべきことを示すさらなる更新が受信される場合、このような更新は、ブロックキャッシュ1428内の、次の利用可能なグループ1432bに記憶され得る。図14bに示されるように、論理グループ1404dに対応する新しい更新1426が受信されると、新しい更新1426におけるデータは、グループ1432bに記憶される。1実施形態において、データ1424およびデータ1426の両方に含まれる論理グループ1404dと関連する特定の現在のデータがあり得ることが理解されるべきである。しかしながら、情報のページがデータ1426に存在すると、データ1424における対応するページが、さらに情報を含む場合、データ1426におけるその情報は、通常、論理グループ1404dと関連する最近のデータが必要とされる場合に用いられる。
図14cは、論理ブロック、すなわち、図14bの論理ブロック「A」1400、ならびに、ブロックキャッシュのコンテンツ、および論理ブロックと関連するもとの物理ブロック(すなわち、図14bのブロックキャッシュ1428および物理ブロック「B」1412)が、本発明の実施形態による新しい物理ブロックにマージされた後の新しい物理ブロックの概略図である。新しい物理ブロック「B1」1440が取得され得、論理ブロック「A」1400になされるべき更新が本質的にもはやない場合論理ブロック「A」1400と関連付けられる。論理ブロック「A」1400と関連する更新が完了した場合、ブロックキャッシュ1428内で利用可能なグループ1432c、1432dが有効に空になり、かつ、新しいか、または異なった論理ブロック、論理ブロック「A」1400の論理グループと関連するデータを記憶するために後からさえも利用可能であることが理解されるべきである。
図10に示される例のように、一旦新しい物理ブロック「B1」1440が取得されると、論理グループ1404bと関連付けられるデータ1420aおよびデータ1420dがマージされ、新しい物理ブロック「B1」1440のグループ1444aに記憶され得るマージされたデータ1446を形成する。データ1420bは、グループ1416bからグループ1444bにコピーされ得、データ1420cは、グループ1416cからグループ1444cにコピーされ得る。
ブロックキャッシュ1428は、論理グループ1404dと関連付けられるデータ1424およびデータ1426を含むので、データ1424およびデータ1426はマージされて、新しい物理ブロック「B1」1440の物理グループ1444dに記憶されるマージされたデータ1448を形成する。マージされたデータ1448は、通常、論理グループ1404dと関連する最新または現在のコンテンツを含む。一旦新しい物理ブロック「B1」1440が占有されると、新しい物理ブロック「B1」1440は、論理ブロック「A」1400と関連する最新または現在のコンテンツを有効に含む。従って、物理ブロック「B」1412は、実質的に古くなり、かつ、消去され得、および論理ブロック「A」1400との関連がはずされ得る。
上述のように、ブロックキャッシュ1428は利用可能なグループ1432を含む。このグループは、次の更新プロセスの進行中に、異なった論理ブロックまたは論理ブロック「A」1400と関連する更新または新しいデータを記憶するために用いられ得る。図14dを参照して、論理ブロック「A」1400と関連する新しい更新を記憶するための、ブロックキャッシュ1428内で利用可能なグループ1432c、1432dの使用が本発明の実施形態により説明される。ブロックキャッシュ1428内のグループ1432a、1432bのコンテンツは、実質的に任意の論理ブロックと関連する古いコンテンツであり得、かつ、論理ブロック「A」1400と関連する古いコンテンツであることに限定されないことが理解されるべきである。通常、グループ1432a、1432bの古いコンテンツは、異なった論理ブロックと関連付けられる。
論理グループ1404dと関連付けられる更新が受信される場合、更新のコンテンツは、論理グループ1404dに対応し、かつ、物理ブロック1412’の物理グループ1416a’に記憶される先行するデータ1422aとマージされ得る。論理グループ1404dと関連付けられるマージされたデータ1450は、その後、ブロックキャッシュ1428内の第1の利用可能なグループ1432cに記憶され得る。同様に、論理グループ1404bと関連する更新が受信された場合、更新のコンテンツは、論理グループ1404bに対応する物理グループ1416c’に記憶された前のデータ1422cとマージされ得る。
論理ブロック「A」1400と関連するさらなる情報がキャッシュされる必要がある場合、ブロックキャッシュ1428が一杯なので、新しいブロックキャッシュが取得され得る。次に、図14eを参照して、論理ブロック「A」1400と関連する更新を記憶する2つのブロックキャッシュの使用が本発明の実施形態により記載される。新しいか、または現在のブロックキャッシュ1464は、ブロックキャッシュ1428が一杯であり、かつ、論理ブロック「A」1400への更新が受信されると取得され得る。例えば、論理グループ1404cと関連する更新が受信された場合、更新と関連するデータは、グループ1416b’に含まれるデータ1422bとマージされ得る。なぜなら、データ1422bは、さらに、論理グループ1404cと関連付けられるからである。一旦マージされたデータ1460が生成されると、マージされたデータ1460は、現在のブロックキャッシュ1464における第1の利用可能グループ1468に記憶され得る。
一般に、現在のキャッシュブロック1464は、現在のキャッシュブロック1464が利用可能なグループをもはや有しなくなるまで、適宜、更新、またはマージされた更新を記憶するために用いられ得る。現在のキャッシュブロック1464が一杯であり、かつ、論理ブロック「A」1400と関連する更新がさらに必要とされる場合、新しい現在のキャッシュブロックが取得され得る。
マージされたデータ1460が第1の利用可能なグループ1468に記憶された後、論理ブロック「A」1400と関連する更新がもはやない場合、物理ブロック「B」1412’およびブロックキャッシュ1428のコンテンツを現在のブロックキャッシュ1464にマージすることが可能か否か、または、物理ブロック「B」1412’、ブロックキャッシュ1428および現在のブロックキャッシュ1464のコンテンツが新しい物理ブロックにマージされるべきか否かが判定され得る。示されるような実施形態において、物理ブロック「B」1412’およびブロックキャッシュ1428のコンテンツを現在のブロックキャッシュ1464にマージすることが可能である。図14fは、ブロックキャッシュ1428のコンテンツおよび物理ブロック「B」1412’のコンテンツが本発明の実施形態により現在のブロックキャッシュ1464にマージされた後の現在のブロックキャッシュ1464の概略図である。現在のブロックキャッシュは、論理グループ1404cと関連するデータ1460をすでに含む。ブロックキャッシュ1428が、論理グループ1404dと関連するマージされたデータ1450、および論理グループ1404bと関連するマージされたデータ1452をすでに含むので、すなわち、ブロックキャッシュ1428は、論理グループ1404bおよび1404cと関連する最新データをすでに含むので、マージされたデータ1450は、グループ1468bにコピーされ得る一方で、マージされたデータ1452は、グループ1468cにコピーされ得る。最後に、論理グループ1404aと関連付けられ、かつ、物理ブロック「B」1412’のグループ1416d’に含まれるもとのデータ1422dがグループ1468dにコピーされ得、これにより、論理ブロック「A」1400と関連する最新コンテンツを現在のブロックキャッシュ1464に有効に統合する。現在のブロックキャッシュ1464は、その後、論理ブロック「A」1400と関連付けられる新しい物理ブロックとしての論理ブロック「A」1400と関連付けられ得ることが理解されるべきである。
次に、図15aおよび図15bを参照して、更新されたコンテンツを、グループを用いるブロックキャッシュに記憶する1方法と関連する工程が、本発明の実施形態により記載される。プロセス1500は、工程1504にて開始し、ここで、ホストは、例えば、論理ブロック「A」の更新を処理する等、物理ブロック「B」と関連付けられる論理ブロック「A」を処理することで開始する。工程1508において、論理ブロック「A」と関連する現在のキャッシュブロックの有無、および、現在のキャッシュブロックにおいて利用可能な空間の有無が判定される。
工程1508において、現在のキャッシュブロックがないか、または現在のキャッシュブロックが利用可能な空間を有さないかが判定された場合、新しい現在のキャッシュブロックが工程1512において取得される。一旦新しい現在のキャッシュブロックが取得されると、プロセスフローは工程1516に進み、ここで、物理ブロック「B」内の物理グループに記憶される所与の論理グループと関連するデータをマージすることによって生成されたコンテンツ、および、所与の論理グループと関連する新しいデータが現在のキャッシュブロックに記憶される。工程1508において、現在のキャッシュブロックが利用可能な空間を有すると判定された場合、プロセスフローは、工程1508から直接的に1516に進む。
一旦マージされたコンテンツが現在のキャッシュブロックに記憶されると、工程1520において論理ブロック「A」の更新された記憶するさらなるコンテンツの有無が判定される。記憶されるべき更新されたさらなるコンテンツがあると判定された場合、プロセスフローは、工程1508に戻り、ここで、現在のキャッシュブロックにおいて利用可能な空間の有無が判定される。あるいは、記憶されるべき論理ブロック「A」の更新されたコンテンツがもはやないと判定された場合、工程1524において、現在のキャッシュブロックにおいて十分な空間があり、物理ブロック「B」に含まれる情報、および、実質的に任意のより古いか、または古くなったキャッシュブロックが現在のキャッシュブロックへのマージを実行するか否かに関する判定が下される。
現在のキャッシュブロックへのマージを実行するための十分な空間があると判定された場合、現在のキャッシュブロックが、論理ブロック「A」と関連する新しい物理ブロックになるために適切であり、従って、論理ブロック「A」と関連する実質的にすべての現在のデータを含むために適切である。従って、工程1536において、物理ブロック「B」内のグループのコンテンツ、および任意のより古いキャッシュブロックにおけるグループのコンテンツが、現在のキャッシュブロックに、適宜、マージされ、従って、現在のキャッシュブロックが論理ブロック「A」内のグループと関連する最新データを含む。
現在のキャッシュブロックへのマージプロセスが完了した後、物理ブロック「B」および任意のより古いか、または古くなったキャッシュブロックが工程1540において消去される。一旦物理ブロック「B」が消去されると、物理ブロック「B」は、工程1544において、論理ブロック「A」との関連がはずされ、マージされた現在のキャッシュブロックは、工程1548において、論理ブロック「A」と関連付けられ、これにより、有効に論理ブロック「A」と関連する物理ブロックになり、かつ、論理ブロック「A」と関連する最新コンテンツを含む。一旦マージされたキャッシュブロックが論理ブロック「A」と関連付けられると、ブロックキャッシュにおいて更新されたコンテンツを記憶するプロセスは完了する。
工程1524を参照して、現在のキャッシュブロックへのマージが実行され得ない場合、現在のキャッシュブロックにおいて現在表現されていない論理グループと関連するデータを収容するために、現在のキャッシュブロック内に不十分な数の物理グループがあることを示す。従って、工程1528において、新しい物理ブロック「B1」は、論理ブロック「A」に割り当てられる。その後、工程1532において、物理ブロック「B」内のグループのコンテンツは、すべてのキャッシュブロックにおけるグループのコンテンツと共に物理ブロック「B1」に、適宜、マージされる。工程1532から、プロセスフローは、工程1540に進み、ここで、物理ブロック「B」およびキャッシュブロックが消去される。工程1548において、マージされたキャッシュブロックは、論理ブロック「A」と関連付けられ、物理ブロック「B1」が論理ブロック「A」と関連付けられる場合に実行されないことが理解されるべきである。
本発明のほんのわずかな実施形態が記載されたが、本発明は、本発明の主旨または範囲から逸脱することなく、多くの他の特定の形態で具体化され得ることが理解されるべきである。例示的に、更新されたデータを少なくとも一時的に記憶またはキャッシュするためのRAMキャッシュおよび物理ブロックキャッシュの使用が記載されたが、更新されたデータをキャッシュするために、実質的に任意の適切なメモリが用いられ得る。換言すると、更新が論理ブロックにマップされる物理ブロックに書き込まれる前に、論理ブロックと関連する更新を記憶するキャッシュは、RAMキャッシュまたは物理ブロックキャッシュであることに限定されない。
フラッシュメモリのサイズ、およびそのフラッシュメモリ内のブロックのサイズは様々である。ブロックのサイズは、一般的に、約32ページを含むと記載されてきたが、ブロックは、任意の数のページ、または、より一般的には、ブロックを構成する任意の数のエレメントを含む。例えば、ブロックは、約64エレメントまたはページを含み得る。その結果、システム内のブロックの数は様々であり得る。512Mb NANDフラッシュメモリ内で、ブロックが約32ページを含み、これらが、各々、約512バイトを含む場合、合計4096の物理ブロックがフラッシュメモリ内に存在する。あるいは、同じ512Mb NANDフラッシュメモリ内で、各物理ブロックが約64ページを含み、これらの各々が約512バイトを含む場合、合計2048の物理ブロックがフラッシュメモリ内に存在し得る。一般に、ページのサイズは、さらに多様である。
本発明の種々の方法と関連する工程は多様であり得る。一般に、工程は、加算され、順序が変更され、および改変され得る。例示的に、物理ブロックキャッシュを用いる方法は、本発明の主旨または範囲から逸脱することなく、更新を物理ブロックキャッシュにキャッシュすることを継続する前に、物理ブロックキャッシュが一杯である場合を判定する工程、ならびに、物理ブロックキャッシュおよび物理ブロック「A」のコンテンツを物理ブロック「B」に、適宜、組み合わせる工程を包含する。さらに、例えば、RAMキャッシュのコンテンツを物理ブロックにコピーするべきときである場合、または、古い物理ブロックおよび物理ブロックキャッシュのコンテンツをマージするべきときである場合、必要に応じて、新しい物理ブロックが取得され得る等、新しい物理ブロックは、必ずしも更新がキャッシュされる前に取得され得ない。従って、本実施例は、例示的であり、限定的でないと考えられるべきであり、本発明は、本明細書中に示された詳細に限定されるべきでなく、上掲の請求項の範囲内で改変され得る。
論理ブロックと関連する更新または新しいデータをキャッシュする方法および装置が開示される。本発明の1局面によると、不揮発性メモリのブロックと関連するコンテンツを処理する方法は、第1の論理ブロックと関連する論理ページの第1のグループと関連付けられるコンテンツの第1のセットを取得する工程、および、コンテンツの第1のセットをメモリ領域に書き込む工程を包含する。コンテンツの第1のセットは、メモリ領域から、後で第1の論理ブロックにマッピングされる第2の物理ブロックと関連する物理ページの第1のグループに書き込まれる。1実施形態において、メモリ領域は、RAMキャッシュおよび物理ブロックキャッシュの1つである。
図1は、更新されたコンテンツを収容するために取得され得る、更新されたコンテンツおよび物理ブロックを有する論理ブロックの概略図である。 図2は、論理ブロックと関連するページの更新されたコンテンツを物理ブロックに書き込む1方法と関連する工程を示すプロセスフローチャートである。 図3aは、不揮発性メモリを含む一般的ホストシステムの概略図である。 図3bは、例えば、図3aのメモリデバイス120等のメモリデバイスの概略図である。 図3cは、埋め込み不揮発性メモリを含むホストシステムの概略図である。 図4aは、本発明の実施形態による、論理ブロック、物理ブロック、および、論理ブロックと関連する更新をキャッシュするように構成されるRAMキャッシュの概略図である。 図4bは、論理ブロック、物理ブロックおよびRAMキャッシュ、すなわち、図4aの論理ブロック400、物理ブロック410、およびRAMキャッシュ420の概略図であり、RAMキャッシュは、本発明の実施形態による論理ブロックと関連する複数の更新をキャッシュした。 図4cは、物理ブロックおよびRAMキャッシュ、すなわち、図4bの物理ブロック410およびRAMキャッシュ420の概略図であり、本発明の実施形態による新しい物理ブロックに書き込まれるべきコンテンツを伴う。 図5は、本発明の実施形態による、RAMキャッシュを使用することにより物理ブロックドメインにおけるページのコンテンツを更新する1方法と関連する工程を示すプロセスフローチャートである。 図6aは、論理ブロック、物理ブロック、および、本発明の実施形態による論理ブロックと関連する更新をキャッシュするように構成される物理ブロックキャッシュの概略図である。 図6bは、物理ブロックおよび物理ブロックキャッシュ、すなわち、図6aの物理ブロック610および物理ブロックキャッシュ612の概略図であり、本発明の実施形態による新しい物理ブロックにマージされるべきコンテンツを伴う。 図7は、本発明の実施形態による、物理ブロックキャッシュを使用することにより物理ブロックドメインにおけるページのコンテンツを更新する1方法と関連する工程を示すプロセスフローチャートである。 図8は、本発明の実施形態によるシステムのアーキテクチャのブロック図の概略図である。 図9aは、本発明の実施形態による、論理ブロック、物理ブロック、および、グループに分割される新しい物理ブロックの概略図である。 図9bは、論理ブロック、物理ブロックおよび新しい物理ブロック、すなわち、図9aの論理ブロック900、物理ブロック912、および新しい物理ブロック928の概略図であり、新しい物理ブロックは、本発明の実施形態による、論理ブロックと関連する最新のコンテンツを含む。 図9cは、論理ブロックおよび物理ブロック、すなわち、図9bの論理ブロック900および物理ブロック928、ならびに新しい物理ブロックの概略図であり、新しい物理ブロックは、本発明の実施形態による論理ブロックと関連する最新のコンテンツを含む。 図9dは、グループに分割される論理ブロック、論理ブロックと関連する更新されたデータを含む物理ブロック、および、本発明の実施形態による論理ブロックと関連する最新のデータを含む新しい物理ブロックの概略図である。 図10は、本発明の1実施形態による、もとのデータのグループ、新しいか、または更新されたデータのグループ、ならびに、もとのデータ、および新しいか、または更新されたデータの混合の概略図である。 図11aは、本発明の実施形態による、グループに分割される論理ブロックと関連するコンテンツを更新する1方法と関連する工程を示すプロセスフローチャートである。 図11bは、本発明の実施形態による、グループに分割される論理ブロックと関連するコンテンツを更新する1方法と関連する工程を示すプロセスフローチャートである。 図12aは、本発明の実施形態による、グループに有効に分割され、かつ、グループに分割される論理ブロックと関連する更新を記憶する際に用いられるために適切であるRAMキャッシュの概略図である。 図12bは、図12aのRAMキャッシュ1228等のRAMキャッシュの概略図であり、本発明の実施形態により、同じ論理グループへの繰返される更新が同じRAMグループに記憶する。 図12cは、論理ブロック、すなわち、図12bの論理ブロック「A」1200、および、RAMのコンテンツ、および論理ブロック、すなわち、図12bのRAMキャッシュ1228および物理ブロック「B」1212がと関連するもとの物理ブロックのコンテンツが、本発明の実施形態により新しい物理ブロックにマージされた後の新しい物理ブロックの概略図である。 図12dは、論理ブロック、物理ブロック、およびRAMキャッシュの概略図であり、ここで、本発明の実施形態による新しいデータを収容するために、物理ブロック内に十分な空間がないので、RAMキャッシュのコンテンツは存在する。 図13は、本発明の実施形態による、論理ブロックの論理グループと関連する更新を記憶するためにRAMキャッシュを用いる1方法を示すプロセスフローチャートである。 図14aは、本発明の実施形態による、グループに有効に分割され、かつ、グループに分割される論理ブロックと関連する更新を記憶する際に用いられるために適切であるブロックキャッシュの概略図である。 図14bは、例えば、図14aのブロックキャッシュ1428等の概略図であり、本発明の実施形態により、同じ論理グループへの更新が記憶される。 図14cは、論理ブロック、すなわち、図14bの論理ブロック「A」1400、ならびに、論理ブロックと関連するブロックキャッシュおよびもとの物理ブロック、すなわち、図14bのブロックキャッシュ1428および物理ブロック「B」1412のコンテンツが、本発明の実施形態により、新しい物理ブロックにマージされた後の新しい物理ブロックの概略図である。 図14dは、利用不可能なグループを含む、例えば、図14cのブロックキャッシュ1428等のブロックキャッシュの概略図であり、例えば、14cの論理ブロック「A」1400等の論理ブロックと関連する更新は、本発明の実施形態により記憶され得る。 図14eは、本発明の実施形態による、例えば、図14dの論理ブロック「A」1400等の論理ブロックと関連する更新を記憶するために用いられ得る2つのブロックキャッシュの概略図である。 図14fは、例えば、図14eのブロックキャッシュ1428および物理ブロック「B」1412’のコンテンツ等のブロックキャッシュのコンテンツおよび物理ブロックのコンテンツが、本発明の実施形態により現在のブロックキャッシュにマージされた後の、例えば、図14eの現在のブロックキャッシュ1464等の現在のブロックキャッシュの概略図である。 図15aは、本発明の実施形態による、グループを用いるブロックキャッシュ内に更新されたコンテンツを記憶する1方法と関連する工程を示すプロセスフローチャートである。 図15bは、本発明の実施形態による、グループを用いるブロックキャッシュ内に更新されたコンテンツを記憶する1方法と関連する工程を示すプロセスフローチャートである。

Claims (28)

  1. 不揮発性メモリのブロックと関連するコンテンツを処理する方法であって、該不揮発性メモリは、メモリシステムと関連付けられ、該方法は、
    コンテンツの第1のセットを取得する工程であって、該コンテンツの第1のセットは、第1の論理ブロックの第1の論理グループと関連付けられ、該第1のグループは、該第1の論理ブロックと関連する第1の複数の論理ページを含み、該第1の論理ブロックは、第1の物理ブロックにマッピングされる、取得する工程と、
    該コンテンツの第1のセットをメモリ領域に書き込む工程と、
    該コンテンツの第1のセットを該メモリ領域から第2の物理ブロックの第1の物理グループに書き込む工程であって、該第1の物理グループは、該第2の物理ブロックと関連する第1の複数の物理ページを含む、書き込む工程と、
    該第2の物理ブロックを該第1の論理ブロックにマッピングする工程と
    を包含する、方法。
  2. 前記第1の物理ブロックは、コンテンツの第2のセットを含み、前記方法は、
    該コンテンツの第2のセットの少なくともいくつかを前記コンテンツの第1のセットを有する前記第2の物理ブロックに書き込む工程をさらに包含する、請求項1に記載の方法。
  3. 前記コンテンツの第2のセットを前記第1の物理ブロックから消去する工程と、
    該第1の物理ブロックと該第1の論理ブロックとのマッピングを実質的にはずす工程と
    をさらに包含する、請求項2に記載の方法。
  4. 前記コンテンツの第1のセットを前記メモリ領域から消去する工程をさらに包含する、請求項3に記載の方法。
  5. 前記第1の物理ブロックは、コンテンツの第2のセットを含み、前記方法は、
    該コンテンツの第2のセットを前記メモリ領域に書き込む工程をさらに包含する、請求項1に記載の方法。
  6. 前記コンテンツの第1のセットを前記メモリ領域に書き込む工程は、前記メモリ領域における前記コンテンツの第2のセットの少なくともいくつかを上書きする工程を包含する、請求項5に記載の方法。
  7. 前記メモリ領域は、RAMキャッシュである、請求項6に記載の方法。
  8. 前記コンテンツの第1のセットは、前記第1の論理ブロックと関連する更新を含む、請求項1に記載の方法。
  9. コンテンツの第3のセットを取得する工程であって、前記コンテンツの第1のセットは、前記第1の論理ブロックの第2の論理グループと関連付けられ、該第2の論理グループは、該第1の論理ブロックと関連する第2の複数の論理ページを含む、取得する工程と、
    該コンテンツの第3のセットを前記メモリ領域に書き込む工程と、
    該コンテンツの第3のセットを該第2の物理ブロックの第2の物理グループに書き込む工程であって、該第2の物理グループは、該第2の物理ブロックと関連する第2の複数の物理ページを含む、工程と
    をさらに包含する、請求項1に記載の方法。
  10. 前記第1の論理ブロックと関連する取得されるべきコンテンツのセットが実質的に他にない場合を判定する工程であって、取得されるべきコンテンツのセットが他にないと判定された場合、前記コンテンツの第1のセットおよび前記コンテンツの第3のセットが前記メモリ領域に書き込まれる、決定する工程をさらに包含する、請求項9に記載の方法。
  11. 前記第1の論理ブロックと関連する取得されるべきコンテンツのセットが実質的に他にない場合を判定する工程は、第2の論理ブロックが更新されるべき場合を判定する工程を包含する、請求項10に記載の方法。
  12. 前記第2の論理ブロックが更新されるべきであると判定された場合、前記方法は、
    該第2の物理ブロックを実質的に直ちに取得する工程と、
    前記コンテンツの第1のセットおよび前記コンテンツの第3のセットを該第2の物理ブロックに実質的に直ちに書き込む工程と
    をさらに包含する、請求項10に記載の方法。
  13. 前記第2の物理ブロックを取得する工程は、該第2の物理ブロックを前記第1の論理ブロックにマッピングする工程を包含する、請求項12に記載の方法。
  14. コンテンツの前記第2のセットを前記第1の物理ブロックから消去する工程と、
    該第1の物理ブロックと前記第1の論理ブロックとのマッピングを実質的にはずす工程と
    をさらに包含する、請求項13に記載の方法。
  15. 前記第2の物理ブロックを取得する工程と、
    該第2の物理ブロックを前記第1の論理ブロックにマッピングする工程と
    をさらに包含する、請求項1に記載の方法。
  16. 前記第1の物理ブロックは、前記コンテンツの第1のセットを収容するように構成される、請求項1に記載の方法。
  17. 前記メモリ領域は、第3の物理ブロックおよびRAMキャッシュの1つである、請求項1に記載の方法。
  18. 前記不揮発性メモリは、NANDフラッシュメモリである、請求項1に記載の方法。
  19. 不揮発性メモリシステム内の第1の論理ブロックと関連する更新されたコンテンツを処理する方法であって、該第1の論理ブロックは、第1の物理ブロックにマッピングされ、該方法は、
    該第1の論理ブロックと関連する第1の更新を受信する工程であって、該第1の更新は、該第1の論理ブロックの第1の論理グループへの更新であり、該第1の論理グループは、該第1の論理ブロックと関連する第1の複数の論理ページを含むように構成される、受信する工程と、
    該第1の更新をキャッシュに記憶する工程と、
    該キャッシュのコンテンツを第2の物理ブロックに記憶する場合を判定する工程であって、該キャッシュのコンテンツは、該第1の更新を含む、判定する工程と、
    該キャッシュのコンテンツが該第2の物理ブロックに記憶されるべきであると判定された場合、該キャッシュのコンテンツを該第2の物理ブロックに記憶する工程であって、該キャッシュのコンテンツを記憶する工程は、該第1の更新を該第1の物理ブロックにおける第1の物理グループに記憶する工程を包含し、該第1の物理グループは、該第1の物理グループに含まれる第1の複数の物理ページを含む、記憶する工程と、
    該キャッシュのコンテンツが該第2の物理ブロックに記憶された後に、該第2の物理ブロックを該第1の論理ブロックにマッピングする工程と、
    該キャッシュのコンテンツが該第2の物理ブロックに記憶された後に、該第1の物理ブロックと該第1の論理ブロックとのマッピングをはずす工程と
    を包含する、方法。
  20. 前記キャッシュのコンテンツを前記第2の物理ブロックに記憶する場合を判定する工程は、第2の論理ブロックが処理されるべき場合を判定する工程を包含し、該第2の論理ブロックが処理されるべきであると判定された場合、該キャッシュのコンテンツは、該第2の物理ブロックに記憶される、請求項19に記載の方法。
  21. 前記第2の物理ブロックを取得する工程をさらに包含する、請求項19に記載の方法。
  22. 前記キャッシュのコンテンツは、前記第1の物理ブロックと関連する少なくともいくつかのコンテンツを含む、請求項19に記載の方法。
  23. 前記第1の物理ブロックのコンテンツを前記キャッシュにコピーする工程であって、前記第1の更新は該キャッシュに記憶され、該第1の更新は、該第1の物理ブロックと関連する該コピーされたコンテンツの少なくとも一部分を実質的に上書きする、コピーする工程をさらに包含する、請求項22に記載の方法。
  24. 前記キャッシュは、RAMキャッシュである、請求項23に記載の方法。
  25. 前記キャッシュのコンテンツを前記第2の物理ブロックに記憶する場合を判定する工程は、第2の論理ブロックが処理されるべき場合を判定する工程を包含し、該第2の論理ブロックが処理されるべきであると判定された場合、該キャッシュのコンテンツの少なくともいくつかが該第2の物理ブロックに記憶される、請求項19に記載の方法。
  26. 前記第2の論理ブロックが処理されるべきであると判定された場合、前記第1の物理ブロックの前記コンテンツの少なくともいくつかを前記第2の物理ブロックに記憶する工程をさらに包含する、請求項25に記載の方法。
  27. 前記キャッシュのコンテンツの少なくともいくつかが前記第2の物理ブロックに記憶された後で、前記第1の物理ブロックを消去する工程をさらに包含する、請求項25に記載の方法。
  28. 前記キャッシュは、物理ブロックキャッシュである、請求項25に記載の方法。
JP2003368148A 2002-10-28 2003-10-28 不揮発性メモリシステムにおいてブロックキャッシュを実行する方法および装置 Pending JP2004152302A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US42191002P 2002-10-28 2002-10-28

Publications (2)

Publication Number Publication Date
JP2004152302A true JP2004152302A (ja) 2004-05-27
JP2004152302A5 JP2004152302A5 (ja) 2006-12-14

Family

ID=32094174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003368148A Pending JP2004152302A (ja) 2002-10-28 2003-10-28 不揮発性メモリシステムにおいてブロックキャッシュを実行する方法および装置

Country Status (5)

Country Link
US (1) US7174440B2 (ja)
EP (1) EP1416389A3 (ja)
JP (1) JP2004152302A (ja)
KR (1) KR100901551B1 (ja)
CN (1) CN1329842C (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193905A (ja) * 2006-01-20 2007-08-02 Megachips Lsi Solutions Inc 半導体記憶装置
JP2008299513A (ja) * 2007-05-30 2008-12-11 Sony Corp データ記憶装置およびその制御方法
EP2058819A1 (en) 2004-05-21 2009-05-13 Fujitsu Microelectronics Limited Semiconductor memory device and memory system
JP2009110548A (ja) * 2004-12-16 2009-05-21 Sandisk Corp 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
US8151035B2 (en) 2004-12-16 2012-04-03 Sandisk Technologies Inc. Non-volatile memory and method with multi-stream updating
JP2015521363A (ja) * 2013-04-29 2015-07-27 エルジー・ケム・リミテッド ケーブル型二次電池用パッケージ及びそれを含むケーブル型二次電池
JP2018525719A (ja) * 2015-06-29 2018-09-06 華為技術有限公司Huawei Technologies Co.,Ltd. ストレージシステム、ストレージ管理装置、ストレージ、ハイブリッドストレージ装置およびストレージ管理方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3942612B2 (ja) * 2004-09-10 2007-07-11 東京エレクトロンデバイス株式会社 記憶装置、メモリ管理方法及びプログラム
KR100703727B1 (ko) 2005-01-12 2007-04-05 삼성전자주식회사 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
EP1898312A4 (en) * 2005-06-24 2008-10-08 Matsushita Electric Ind Co Ltd MEMORY CONTROLLER, NONVOLATILE STORAGE DEVICE, NONVOLATILE STORAGE SYSTEM, AND DATA WRITING METHOD
US20060294292A1 (en) * 2005-06-27 2006-12-28 Illendula Ajith K Shared spare block for multiple memory file volumes
CN100395704C (zh) * 2005-08-27 2008-06-18 海信集团有限公司 一种在Nand Flash存储器中直接建立只读文件系统的方法
JP4751163B2 (ja) * 2005-09-29 2011-08-17 株式会社東芝 メモリシステム
KR100781520B1 (ko) 2006-02-24 2007-12-03 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법
KR101185617B1 (ko) * 2006-04-04 2012-09-24 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
US8190961B1 (en) * 2006-11-28 2012-05-29 Marvell International Ltd. System and method for using pilot signals in non-volatile memory devices
WO2008077285A1 (en) 2006-12-27 2008-07-03 Intel Corporation Method of managing data on a non-volatile memory
US7791952B2 (en) * 2007-01-30 2010-09-07 Micron Technology, Inc. Memory device architectures and operation
US7869277B1 (en) 2007-04-25 2011-01-11 Apple Inc. Managing data writing to memories
JP4210318B1 (ja) * 2007-11-28 2009-01-14 株式会社京都ソフトウェアリサーチ データ格納システムおよびデータ格納プログラム
CN101661431B (zh) * 2008-08-29 2011-11-09 群联电子股份有限公司 用于快闪存储器的区块管理方法、快闪储存系统及控制器
TWI473100B (zh) * 2008-09-05 2015-02-11 A Data Technology Co Ltd Flash memory system and its operation method
US20100082903A1 (en) * 2008-09-30 2010-04-01 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory drive, information processing apparatus and data access control method of the non-volatile semiconductor memory drive
US8325795B1 (en) 2008-12-01 2012-12-04 Adobe Systems Incorporated Managing indexing of live multimedia streaming
US8782143B2 (en) * 2008-12-17 2014-07-15 Adobe Systems Incorporated Disk management
TWI420528B (zh) * 2009-03-11 2013-12-21 Silicon Motion Inc 用來增進一快閃記憶體的效能之方法以及相關之可攜式記憶裝置及其控制器
US8572309B2 (en) * 2009-03-12 2013-10-29 Marvell World Trade Ltd. Apparatus and method to protect metadata against unexpected power down
US8412987B2 (en) * 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
US8255661B2 (en) * 2009-11-13 2012-08-28 Western Digital Technologies, Inc. Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device
US8694814B1 (en) * 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US20130042051A1 (en) * 2011-08-10 2013-02-14 Skymedi Corporation Program method for a non-volatile memory
CN102866955A (zh) * 2012-09-14 2013-01-09 记忆科技(深圳)有限公司 一种闪存数据管理方法及系统
US9852066B2 (en) * 2013-12-20 2017-12-26 Sandisk Technologies Llc Systems and methods of address-aware garbage collection
CN107924374A (zh) * 2015-10-15 2018-04-17 腾赛拉网络有限公司 通信终端中的内容的新鲜度感知呈现
CN106843743B (zh) * 2015-12-03 2019-10-25 群联电子股份有限公司 数据程序化方法、存储器储存装置及存储器控制电路单元
WO2018234967A1 (en) 2017-06-19 2018-12-27 Tensera Networks Ltd. SILENT CONTENT UPDATE IN USER DEVICES
CN113961140B (zh) 2020-07-02 2024-06-11 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
CN113885778B (zh) * 2020-07-02 2024-03-08 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp., Santa Clara EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
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
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
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
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
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
JPH09185551A (ja) * 1996-01-08 1997-07-15 Mitsubishi Electric Corp 半導体記憶装置
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
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
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
EP1220229B1 (en) * 2000-12-29 2009-03-18 STMicroelectronics S.r.l. An electrically modifiable, non-volatile, semiconductor memory which can keep a datum stored until an operation to modify the datum is completed
JP3967121B2 (ja) * 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2058819A1 (en) 2004-05-21 2009-05-13 Fujitsu Microelectronics Limited Semiconductor memory device and memory system
JP2009110548A (ja) * 2004-12-16 2009-05-21 Sandisk Corp 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
US8151035B2 (en) 2004-12-16 2012-04-03 Sandisk Technologies Inc. Non-volatile memory and method with multi-stream updating
JP2007193905A (ja) * 2006-01-20 2007-08-02 Megachips Lsi Solutions Inc 半導体記憶装置
JP2008299513A (ja) * 2007-05-30 2008-12-11 Sony Corp データ記憶装置およびその制御方法
JP2015521363A (ja) * 2013-04-29 2015-07-27 エルジー・ケム・リミテッド ケーブル型二次電池用パッケージ及びそれを含むケーブル型二次電池
JP2018525719A (ja) * 2015-06-29 2018-09-06 華為技術有限公司Huawei Technologies Co.,Ltd. ストレージシステム、ストレージ管理装置、ストレージ、ハイブリッドストレージ装置およびストレージ管理方法

Also Published As

Publication number Publication date
US7174440B2 (en) 2007-02-06
US20040083348A1 (en) 2004-04-29
KR100901551B1 (ko) 2009-06-08
CN1329842C (zh) 2007-08-01
KR20040038708A (ko) 2004-05-08
EP1416389A2 (en) 2004-05-06
CN1504896A (zh) 2004-06-16
EP1416389A3 (en) 2006-11-02

Similar Documents

Publication Publication Date Title
JP2004152302A (ja) 不揮発性メモリシステムにおいてブロックキャッシュを実行する方法および装置
US9367451B2 (en) Storage device management device and method for managing storage device
JP4611024B2 (ja) ブロック内のページをグループ化する方法及び装置
US7802054B2 (en) Apparatus and methods using invalidity indicators for buffered memory
TWI240865B (en) Method and apparatus for splitting a logical block
US8949512B2 (en) Trim token journaling
US9063728B2 (en) Systems and methods for handling hibernation data
US7487303B2 (en) Flash memory device and associated data merge method
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US20150309927A1 (en) Hybrid Non-Volatile Memory System
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
KR101066937B1 (ko) 메모리 시스템 및 그 데이터 소거 방법
JP2008524747A (ja) オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP2009503744A (ja) 予定再生操作を伴う不揮発性メモリ
JP2010267290A (ja) 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置
US20100318726A1 (en) Memory system and memory system managing method
CN111736755A (zh) 数据存储装置、其操作方法以及包括其的存储系统
TWI805445B (zh) 借助額外實體位址資訊來進行記憶體裝置之存取控制的方法、記憶體裝置以及記憶體裝置的控制器
JP4242245B2 (ja) フラッシュrom制御装置
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
US11392489B2 (en) Data storage device and non-volatile memory control method
US9304906B2 (en) Memory system, controller and control method of memory
JP4794530B2 (ja) 半導体装置および携帯電話
US8850160B2 (en) Adaptive write behavior for a system having non-volatile memory
JP2007164391A (ja) メモリカードおよびその制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061026

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090515

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090811

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090814

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090910

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090915

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091014

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091019

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100126