JP4611024B2 - ブロック内のページをグループ化する方法及び装置 - Google Patents

ブロック内のページをグループ化する方法及び装置 Download PDF

Info

Publication number
JP4611024B2
JP4611024B2 JP2004548307A JP2004548307A JP4611024B2 JP 4611024 B2 JP4611024 B2 JP 4611024B2 JP 2004548307 A JP2004548307 A JP 2004548307A JP 2004548307 A JP2004548307 A JP 2004548307A JP 4611024 B2 JP4611024 B2 JP 4611024B2
Authority
JP
Japan
Prior art keywords
physical
group
logical
page
block
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
JP2004548307A
Other languages
English (en)
Other versions
JP2006515086A (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 JP2006515086A publication Critical patent/JP2006515086A/ja
Application granted granted Critical
Publication of JP4611024B2 publication Critical patent/JP4611024B2/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

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)
  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Supplying Of Containers To The Packaging Station (AREA)
  • Crystals, And After-Treatments Of Crystals (AREA)

Description

関連出願への相互参照
本発明は、「不揮発性記憶システムにおける劣化の平準化」という名称の2002年10月28日出願に係る係属中の米国特許出願第10/281,739号、「不揮発性メモリ・システムにおける最も頻繁に消去されるブロックの追跡」という名称の2002年10月28日出願に係る係属中の米国特許出願第10/281,670号、「不揮発性メモリ・システムにおける最も消去されないブロックの追跡」という名称の2002年10月28日出願に係る係属中の米国特許出願第10/281,824号、「論理ブロックをスプリットする方法及び装置」という名称の2002年10月28日出願に係る係属中の米国特許出願第10/281,631号、「共通論理ブロックに関連付けられている物理ブロックを解決するための方法及び装置」という名称の2002年10月28日出願に係る係属中の米国特許出願第10/281,762号、「不揮発性記憶システムにおける消去カウントの保持」という名称の2002年10月28日出願に係る係属中の米国特許出願第10/281,696号、「消去カウント・ブロックを管理する方法及び装置」という名称の2002年10月28日出願に係る係属中の米国特許出願第10/281,626号、及び「不揮発性メモリにおける複数ページの読み取り及び書き込み操作を実行する方法及び装置」という名称の2002年10月28日出願に係る係属中の米国特許出願第10/281,804号と関連し、これらの出願はそれぞれ、参照により全体が本明細書に援用される。
発明の背景
1.発明の分野
本発明は、一般に、大容量デジタル・データ記憶システムに関する。より詳細には、本発明は、フラッシュメモリのブロックに効率的に書き込みを行うシステム及び方法に関する。
2.関連技術の説明
フラッシュメモリ記憶システムのような不揮発性メモリ・システムは、物理的サイズが小さく、不揮発性メモリが繰返しプログラムされる能力を有するために、利用が増加している。フラッシュメモリ記憶システムの小さな物理的サイズのおかげで、急速に普及しつつあるデバイス内で、そのような記憶システムを簡単に利用することができる。フラッシュメモリ記憶システムを利用するデバイスには、デジタルカメラ、デジタルカムコーダ、デジタル音楽プレーヤー、携帯型パソコン、及び全地球位置測位システムが含まれるが、それらに限定されるものではない。フラッシュメモリ記憶システムに含まれる不揮発性メモリは繰返し再プログラムできるため、フラッシュメモリ記憶システムを再利用することができる。
一般に、フラッシュメモリ記憶システムは、フラッシュメモリ・カード及びフラッシュメモリ・チップセットを含む。フラッシュメモリ・チップセットは、一般に、フラッシュメモリ部品及びコントローラ部品を含む。典型的に、フラッシュメモリ・チップセットは、組み込みシステム内に組み込まれるよう構成される。このような組立て体又はホスト・システムのメーカーは、典型的に、フラッシュメモリを他の部品と一緒に部品の形態で入手し、フラッシュメモリと他の部品とをホスト・システムに組立てる。
図1aに示すように、ファイル・システム内において、メモリ10は、システム又はディレクトリ領域12とデータ領域14とに効果的に分割される。システム領域12は、一般に、ルート・ディレクトリと、ファイル・アロケーション・テーブル(FAT)とを備え、データ・ファイルは典型的にはデータ領域14に含まれる。ファイル・システムは、システム領域12に対しては、データをセクタ単位で、例えば一度に1ページずつ書き込むことができるが、データ領域14に対しては、データをクラスタ単位で、例えば一度に複数ページずつ書き込むことができる。一般的にはデータ領域14と関連付けられるファイルの最小サイズである、各クラスタのサイズは、異なり得る。例えば、ウィンドウズ(登録商標)又はDOSシステムを実行するシステムの全体において、クラスタは、約4〜256ページを含むサイズとされる。
論理ブロック、即ちファイル・システムと関連付けられたブロックに関連する任意の更新は、物理ブロックが論理ブロックにマッピングされるフラッシュメディアへと、効果的に伝播される。図1bは、フラッシュメディアの論理ブロックと物理ブロックとの間のマッピングの図表表現である。論理ブロック52は、それぞれが物理ブロック54のページにマッピグされる複数のページを含み、論理ブロック52に関連付けられたページが更新されると、物理ブロック54に更新が書き込まれる。
例えば論理ページであるページが更新されると、該ページが関連付けられている物理ブロックに書き込みがなされる。従来、ブロックは、「固定的な」方法又は「ランダムな」方法により書き込まれ得る。ブロックが固定的な方法で書き込まれる場合、ページは、ブロックの対応するページ・オフセットに書き込まれる。図2aに示すように、論理ブロック・ページ214が更新される場合、論理ブロック・ページ214に関連付けられた内容は、一般的には、物理ブロック210内の対応するページ218に書き込まれる。例えば、論理ブロック・ページ214が物理ブロック・ページ218hと対応し、物理ブロック・ページ218hが利用可能である場合、論理ブロック・ページ214の内容が物理ブロック・ページ218hに書き込まれ得る。物理ブロック・ページ218hが利用可能である場合、ブロック210には、物理ブロック・ページ218hより上のページ番号を有するページであって、書き込まれたページ218が有効に存在しないことがわかる。
ブロック210に書き込まれたページ218であって、書き込まれるべき内容を有する論理ブロック・ページよりも高いページ番号を持つページが存在している場合、ブロック210が固定的な方法で書き込まれるように構成されると、論理ブロック・ページの内容は、ブロック210に書き込まれない。より高いページ番号がフラッシュメモリに書き込まれた後で、より低いページ番号を書き込むことは、「順序を外れた」書き込み処理になる。当業者に理解されるように、フラッシュメモリによっては、この種の処理を許していない。そのため、論理ブロック・ページの内容は、ページ218の内容とともに、新しいブロックに書き込まれる。図2bは、例えば図2aのブロック210のような古いブロックと、古いブロックの内容を収容するよう構成された新しいブロックとの図表表現である。論理ブロック・ページ234の内容が固定的な方法で物理ブロックに書き込まれる場合、ブロック210即ち現在のブロックが書き込まれてよいか否かが決定される。論理ページ234が、ブロック210において利用可能なページよりも低いページ番号を有する場合、論理ページ234の内容はブロック210に書き込まれない。言い換えれば、論理ブロック234と対応するページ・オフセットを有する物理ページ218が、例えば既に書き込まれていて利用可能ではない場合、一般に、論理ページ234の内容を書き込み可能とするために新しい物理ページ230が入手される必要がある。
論理ブロック234は、物理ブロック210のページ218cに対応するため、ブロック230が入手される際、ページ218の内容は、一般に、ページ218cの内容を除いて、物理ブロック230の対応するページ238にコピーされる。ページ218cの内容をページ238cにコピーする代わりに、論理ブロック234の内容がページ238cにコピーされる。従って、コピー又は書き込みの処理の後に、ページ238a、ページ238b、及びページ238d〜238gは、それぞれ、ページ218a、ページ218b、及びページ218d〜218gの内容を含むが、ページ238cは論理ページ234と関連付けられた内容を含む。ブロック230に書き込まれた後で、ブロック210は消去されてもよい。
対応するページ・オフセットを有するページが、書き込まれるページに対するブロックにおいて利用可能である場合、固定的な方法でのブロックへの書き込みは、一般に効率的である。しかし、対応するページ・オフセットを有するページが、書き込まれるために利用可能ではない場合、ブロック内に利用可能なページがあるとしても、一般的に、書き込み処理を完了させるためには、新しいブロックが取得されなければならない。新しいブロックの取得は、かなりの量の計算のオーバーヘッドを消費し、典型的には、新しいブロックに内容をコピーするコピー処理、及び古いブロックを消去する消去処理が実行されなければならない。当業者に理解されるように、このような処理、特に書き込み及び消去の処理は、比較的費用がかかる。
固定的な方法即ちブロックへの固定的な書き込みの代わりに、ブロックにデータを書き込むランダムな方法が実現され得る。ランダムな方法でブロックへの書き込みが為される場合、任意の論理ページと実質的に関連付けられた内容は、ブロック内の次に利用可能なページ・スペースに書き込まれる。図3において、ブロックにデータを書き込むランダムな方法が説明される。論理ブロック・ページ314の内容が物理ブロック310に書き込まれ、ブロック310内に利用可能なページ318がある場合、論理ブロック・ページ314の内容は、次に続く利用可能なページ318に書き込まれる。例えば、論理ページ314aの内容はページ318hに書き込まれ、論理ページ314bの内容はページ318iに書き込まれる。
論理ページ314bがページ318cに対応するとしても、ページ318iがブロック310において次に利用可能なページである場合には、論理ページ314bの更新された内容はページ318iに書き込まれることが理解されるべきである。論理ページ314がどうしても読み取られる必要がある場合、一般には、ブロック310内において、論理ページ314bと関連付けられた最新の内容を含むものとして、ページ318iを特定する必要がある。図示される通り、ページ318iがブロック310の最後のページである場合、論理ページ314bと関連付けられた内容を含むものとしてページ318iを特定するためには、ブロック310の全てを読む必要があり、従って、比較的多数の読み出し処理が必要となる。論理ページ314bと関連付けられた内容にアクセスするためにブロック310の実質的に全てを読み取るのは、比較的時間がかかるかもしれない。論理ページ314のような論理ページと関連付けられた内容の位置を特定しアクセスするために必要な読み取り処理の回数を減らすよう、全体システムのメモリ又はフラッシュメモリを利用して、ページ318及びページ318の内容に関する情報を得る技術があるが、そのような技術は、全体システムの、より詳細には、全体システムで実行するソフトウェアのメモリ要件を増大させる。
従って、物理ブロックと関連付けられたページを、効率的に書き込み、アクセスすることを可能とするハイブリッドな方法及び装置が望ましい。つまり、比較的頻繁なブロックの消去や比較的多くの読み込み処理を実質的に行わずに、ブロック内のページが効率的に書き込まれ、容易にアクセスされるようにするために、固定及びランダムの両方の処理を利用するハイブリッドなシステムが求められている。
発明の概要
本発明は、ブロック内のページに効率的にアクセスできるようにするシステム及び方法に関する。本発明の1つの態様によれば、不揮発性メモリの第1のブロックにデータを書き込む方法であって、第1のブロックが、複数のグループにグル−プ化された複数のページを含み、複数のグループのそれぞれが、2つ又はそれ以上のページを含む方法において、複数のグループのうちの第1のグループが、データを受信するために利用可能であるときを決定するステップを含む方法が提供される。第1のグループがデータを受信するために利用可能であると決定されたとき、第1のグループに含まれる第1のページにデータが書き込まれる。該方法は、また、第1のグループがデータを受信するために利用可能ではないと決定された場合に、複数のグループのうちの第2のグループが、データを受信するために利用可能であるときを決定するステップと、第2のグループがデータを受信するために利用可能であると決定されたときに、第2のグループに含まれる第2のページにデータを書き込むステップとを備える。
1つの実施の形態において、該方法は、また、第2のグループがデータを受信するために利用可能ではないと決定された場合に、データを受信するために第2のブロックが利用可能であるときを決定するステップを備える。もう1つの実施の形態において、データは論理ページと関連付けられ、第1のブロックは第1の物理ブロックである。
ページが書き込まれる際に、新しい物理ブロックの代わりに物理ブロック内のページのグループが得られるよう、ブロック内のページをグループ化することは、ページ書き込みに関する全体としての効率性を改良する。言い換えれば、新しいブロック内のグループが利用可能である可能性があるために、データを書き込むために新しいブロックが入手されなければならない可能性を低減することができる。そのため、書き込み処理がより効率的になる。少なくとも、例えば新しいブロックが入手された後でブロックを消去するために利用される消去処理のような消去処理の発生が、かなり低減され得るからである。更に、特定のページの位置を特定するためにブロック全体を読み取る代わりに、特定のページを特定するためにグループが調べられるため、特定のページに格納されたデータのセットを読み取る読み取り処理がより効率的になる。例えば、ページのグループが特定のページを含まないと決定される場合、該グループのページを個別に読み取る必要はない。即ち、実質的には、特定のページを含むグループのページだけを読み取ればよい。グループの概念を適用することにより、読み取り処理は、有効にランダムな方法において発生する読み取り処理よりも高速になる。それは、実質的に、同一のグループのページのみを調べればよいからである。グループの概念と関連づけられた書き込み処理は、従来の固定的な処理よりも高速である。単一の物理ブロックにおいて、書き込まれるべきページに対して、より多くの場所があるからである。従って、新しいブロックを割当てて古いブロックを消去する必要性が低減される。
本発明のもう1つの態様によれば、不揮発性メモリの一部であるメモリ・ブロックは、少なくとも第1のページ・セットと第2のページ・セットとに分割された複数のページを含む。メモリ・ブロックは、また、第1のグループを含む。第1のグループは第1のページ・セットを含み、第1のグループを識別し第1のグループに格納される第1のグループ識別子を有する。更に、メモリ・ブロックは、また、第2のグループを含み、該グループは、第2のページ・セットを含み、第2のグループを識別する第2のグループ識別子を有する。第2のグループ識別子は第2のグループに格納される。1つの実施の形態において、第1のページ・セットに含まれるページの順序は、実質的に、第1のグループの始まりに対して固定されており、第2のページ・セットに含まれるページの順序は、実質的に、第2のグループの始まりに対して固定されている。
本発明の更にもう1つの態様によれば、不揮発性メモリの第1の物理ブロックにデータを書き込む方法であって、第1の物理ブロックが、2つ又はそれ以上の物理ページからなる複数の物理グループにグループ化された複数の物理ページを含む方法が提供される。該方法は、第1の論理ページと関連付けられた第1のデータ・セットを識別するステップと、複数の物理グループのうちの第1の物理グループが第1の論理グループと関連付けられているときを決定するステップとを含む。第1の論理ページは、論理ブロックの第1の論理グループに含まれる複数の論理ページのうちの1つである。該方法は、また、第1の物理グループが第1の論理グループと関連付けられることが決定された場合に、第1の物理グループに含まれる第1の物理ページが、第1のデータ・セットを収容するために利用可能であるときを決定するステップと、第1の物理ページが第1のデータ・セットを収容するために利用可能であると決定された場合に、第1のデータ・セットを第1の物理ページに書き込むステップとを備える。
1つの実施の形態によれば、第1の物理ブロックにデータを書き込む方法は、また、第1の物理ページが第1のデータ・セットを収容するために利用可能ではないことが決定された場合に、複数の物理グループに含まれる第2の物理グループが利用可能であるときを決定するステップと、第1のデータ・セットを第2の物理グループと関連付けられた第2の物理グループに書き込むステップとを備える。そのような実施の形態において、該方法は、更に、第2の物理グループが利用可能ではないと決定された場合に、不揮発性メモリと関連付けられた第2の物理ブロックが、第1のデータ・セットを収容するために利用可能であるときを決定するステップを備える。
本発明の上記の及び他の利点は、以下の詳細な説明を読み、図面の様々な図表を検討することにより明らかになる。
発明の詳細な説明
本発明は、添付の図面とともに以下の説明を参照することにより最も良く理解される。
更新されたページの格納又は書き直しに必要とされるオーバーヘッド及び時間の全体量を低減することにより、例えば、組み込み型不揮発性メモリ・チップを備える全体ホスト・システムのような全体システムを、一層効率的に動作させることが可能となる。ページが他の最近書き込まれたページよりも低いページ番号を有する場合に、物理ブロックと関連付けられたページが更新されるたびに新しい物理ブロックを取得することは、かなりの量のシステム資源を消費し、結果として、比較的非効率的になり得る。一方、実質的に任意のページをブロックの次に利用可能なスペースに書き込めるようにすると、結果として、特定のページの位置を特定するために、過剰な数の読み取り処理が実行されることになり得る。
物理ブロック内に少なくとも1つの利用可能なグループがある場合に、物理ブロックにページを書き込むために、新しい物理ブロックの代わりに物理ブロック内のグループが取得されるようブロック内でページをグループ化することにより、ページの書き込みに関する全体の効率が一般に改良され得る。言い換えれば、新しいブロック内のグループが利用可能である可能性があるために、データの書き込みを可能とするために新しいブロックが取得されなければならない可能性が低減される。グループ又はサブ・ブロックを利用することにより、ブロックは、一般に、一層効率的に割当てられる。
物理ブロック内のページのグループ化の恩恵を受けることができるフラッシュメモリ・システム、又は、より詳細には、不揮発性メモリ・デバイスは、一般に、フラッシュメモリ・カード及びチップ・セットを含む。典型的に、フラッシュメモリ・システムは、ホスト・システムがフラッシュメモリ・システムにデータを書き込み、又はフラッシュメモリ・システムからデータを読み出すよう、ホスト・システムと組み合せて利用される。しかし、幾つかのフラッシュメモリ・システムは、図4cを用いて以下に説明するように、組み込み型フラッシュメモリと、実質的に組み込み型フラッシュメモリのコントローラとして動作するようホスト上で実行するソフトウェアとを含む。図4aは、例えばコンパクトフラッシュ(登録商標)・メモリ・カードのような不揮発性メモリ・デバイスを含む一般的なホスト・システムを示す。ホスト又はコンピュータ・システム100は、一般に、マイクロプロセッサ108、ランダム・アクセス・メモリ(RAM)112、入出力回路116が通信することを可能とするシステム・バス104を含む。ホスト・システム100は、一般に、例えば説明のために図示されていないディスプレイ装置やネットワーク装置のような、他の要素を含み得ることが理解されるべきである。
一般に、ホスト・システム100は、静止画情報、音声情報及びビデオ画像情報を含むがそれらに限定されない情報を取得することが可能である。そのような情報は、リアルタイムで取得され、無線によりホスト・システム100に送信される。ホスト・システム100は実質的に任意のシステムであってよく、典型的には、デジタル・カメラ、ビデオ・カメラ、無線通信端末、オーディオ・プレーヤー、又はビデオ・プレーヤーである。しかし、ホスト・システム100は、一般に、実質的には、データ又は情報を格納し取り出す任意のシステムであってよいことが理解されるべきである。
ホスト・システム100は、また、データを取得するのみ、又はデータを取り出すのみのシステムであってもよい。つまり、ホスト・システム100は、1つの実施の形態において、データを格納する専用のシステムであってもよく、又は、データを読み取る専用のシステムであってもよい。例として、ホスト・システム100は、データを書き込み又は蓄積するためだけに構成されるメモリ・ライターであってもよい。代わりに、ホスト・システム100は、典型的にはデータの読み取り又は取り出しのために構成され、データの取得のためには構成されないMP3プレーヤーのような装置であっても良い。
1つの実施の形態においては取り外し可能な不揮発性メモリ・デバイスである不揮発性メモリ・デバイス120は、バス104とインターフェースをとって情報を格納するよう構成される。インターフェース・ブロック130は、オプションとして、不揮発性メモリ120がバス104と間接的にインターフェースをとることを可能とする。入出力回路ブロック116が存在する場合、該回路は、当業者に理解されるように、バス104へのローディングを低減するよう動作する。不揮発性メモリ・デバイス120は、不揮発性メモリ124と、オプションとしてのメモリ制御システム128とを含む。1つの実施の形態において、不揮発性メモリ・デバイス120は、単一のチップ又はダイ上で実現される。代わりに、不揮発性メモリ・デバイス120は、マルチ・チップ・モジュールにより、又は、チップ・セットを形成し不揮発性メモリ・デバイス120とともに利用される複数の別個の部品により実現される。不揮発性メモリ・デバイス120の1つの実施の形態を、図4bに関して、以下により詳細に説明する。
例えばNANDフラッシュメモリのようなフラッシュメモリなどの不揮発性メモリ124は、データが必要に応じてアクセスされ、読み取られるように、データを記憶するよう構成される。不揮発性メモリ124のデータには消去不可能なものもあるが、不揮発性メモリ124に記憶されたデータは、適切に消去されてもよい。データを記憶し、読み取り、消去する処理は、一般に、メモリ制御システム128により制御されるか、メモリ制御システム128がない場合には、マイクロプロセッサ108により実行されるソフトウェアにより制御される。不揮発性メモリ124の動作は、不揮発性メモリ124のセクションを実質的に等しく劣化させることにより、不揮発性メモリ124の寿命が実質的に最大化されるよう管理される。
不揮発性メモリ・デバイス120を、一般に、オプションとしてのメモリ制御システム128即ちコントローラを含むものとして説明した。不揮発性メモリ・デバイス120は、大抵の場合、不揮発性メモリ124の機能と、メモリ制御システム128即ちコントローラの機能とのために、別個のチップを含み得る。例えば、PCカード、コンパクトフラッシュ(登録商標)・カード、マルチメディア・カード、及びセキュア・デジタル・カードを含むがそれらに限定されない不揮発性メモリ・デバイスは、別個のチップで実現されるコントローラを含み、他の不揮発性メモリ・デバイスは、別個のチップで実現されるコントローラを含まない。不揮発性メモリ・デバイス120がメモリとコントローラとの別個のチップを含まない実施の形態において、メモリ及びコントローラの機能は、当業者に理解されるように、単一のチップに統合されてもよい。代わりに、メモリ制御システム128の機能は、例えば、不揮発性メモリ・デバイス120がメモリ・コントローラ128を含まない上記の実施の形態のように、マイクロプロセッサ108により提供されてもよい。
図4bは、不揮発性メモリ・デバイス120を、本発明の1つの実施の形態に従って、より詳細に説明する。上記の通り、不揮発性メモリ・デバイス120は不揮発性メモリ124を含み、更にメモリ制御システム128を含んでもよい。例えばメモリ124が組み込み型NANDデバイスである場合には、不揮発性メモリ・デバイス120は制御システム128を含まなくてもよいが、メモリ124と制御システム128即ちコントローラとは、不揮発性メモリ・デバイス120の主要部品であり得る。メモリ124は、半導体基板上に形成されたメモリ・セルのアレイであり、メモリ・セルの個々の記憶素子に2つ又はそれ以上のレベルの電荷のうちの1つを格納することにより、個々のメモリ・セルに1つ又はそれ以上のビットのデータが格納される。不揮発性のフラッシュの電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)は、そのようなシステムに利用される一般的なメモリの種別の一例である。
制御システム128は、存在する場合に、バス15を介してホスト・コンピュータと、又はデータ記憶のためにメモリ・システムを用いる他のシステムと通信する。バス15は、一般に、図4aのバス104の一部である。制御システム128は、また、メモリ・セル・アレイ11を含むメモリ124の動作を制御して、ホストが提供するデータを書き込み、ホストが要求するデータを読み出し、メモリ124を動作させる際に様々なハウスキーピング機能を実行する。制御システム128は、一般に、関連付けられた不揮発性ソフトウェア・メモリ、様々な論理回路、及びそれらに類するものを有する汎用マイクロプロセッサを含む。また、特定のルーチンの性能を制御するために、しばしば、1つ又はそれ以上の状態機器を含む。
メモリ・セル・アレイ11は、典型的に、アドレス・デコーダ17を介して、制御システム128又はマイクロプロセッサ108によりアドレス指定される。デコーダ17は、制御システム128によりアドレス指定されるメモリ・セルのグループにデータをプログラムし、該グループからデータを読み取り、該グループを消去するために、アレイ11のゲート及びビット線に適切な電圧を印加する。追加の回路19は、セルのアドレス指定されたグループにプログラムされているデータに応じて、アレイの素子に印加される電圧を制御するプログラミング・ドライバを含み得る。回路19は、また、メモリ・セルのアドレス指定されたグループからデータを読み取るために必要なセンスアンプ及び他の回路を含み得る。アレイ11にプログラムされるデータ、又はアレイ11から最近読み出されたデータは、図示される通り制御システム128内に置かれるバッファ・メモリ21に格納される。制御システム128は、また、命令及び状態データを一時的に格納するための様々なレジスタ、及びそれに類するものを含み得る。
アレイ11は、多数のブロック0〜Nのメモリ・セルに分割される。フラッシュEEPROMに一般的であるように、ブロックは消去の最小単位である。つまり、各ブロックは、一緒に消去される最小数のメモリ・セルを含む。各ブロックは、典型的に、幾つかのページに分割される。当業者が理解するように、ページは、プログラミングの最小単位であり得る。つまり、基本的なプログラム動作は、メモリ・セルの最低でも1ページにデータを書き込み、最低でも1ページからデータを読み取る。典型的に、各ページには、データの1つ又はそれ以上のセクタが格納される。図4bに示す通り、1つのセクタはユーザ・データ及びオーバーヘッド・データを含む。オーバーヘッド・データは、典型的に、該セクタのユーザ・データから算出されたエラー訂正コード(ECC)を含む。制御システム128の部分23は、データがアレイ11にプログラムされる際にECCを計算し、アレイ11からデータが読み取られる際にECCを検査する。代わりに、ECCは、関連するユーザ・データとは別のページ又は別のブロックに格納されてもよい。
ユーザ・データのセクタは、典型的に、磁気ディスク・ドライブのセクタ・サイズに対応する512バイトである。説明している実施の形態において、オーバーヘッド・データは、典型的に、追加の16バイトである。データの1つのセクタが1ページに含まれることが最も一般的ではあるが、代わりに、2つ又はそれ以上のセクタが1ページを形成してもよい。一般に、任意の数のページがブロックを形成することが可能である。例えば、ブロックは、8ページから512、1024又はそれ以上までのページにより形成されることが可能である。ブロックの数は、メモリ・システムが所望のデータ記憶容量を提供するよう選択される。アレイ11は、典型的には、幾つかのサブ・アレイ(図示せず)に分割され、該サブ・アレイは、様々なメモリ操作の実行における並列度を高めるために、互いに或る程度独立して動作するある割合のブロックを含む。複数のサブ・アレイを利用する例は、参照により全体が本明細書に援用される米国特許第5,890,192号に記載されている。
1つの実施の形態において、不揮発性メモリは、例えばホスト・システムのようなシステムに埋め込まれる。図4cは、組み込み型不揮発性メモリを含むホスト・システムを図示する。ホスト又はコンピュータ・システム150は、一般に、ホスト・システム150の他の要素(図示せず)の中でもマイクロプロセッサ158、RAM162及び入出力回路166が通信することを可能にするシステム・バス154を含む。
フラッシュメモリなどの不揮発性メモリ174により、ホスト・システム150に情報を蓄積することが可能となる。インターフェース180は、不揮発性メモリ174とバス154との間に提供されて、不揮発性メモリ174からの情報の読み取り、及び不揮発性メモリ174への情報の書き込みを可能とする。
不揮発性メモリ174は、不揮発性メモリ174を制御するよう構成されたソフトウェア及びファームウェアのいずれか又は両方を有効に動作させるマイクロプロセッサ158により管理される。つまり、マイクロプロセッサ158は、例えばソフトウェア・コードデバイス又はファームウェア・コードデバイスのような、不揮発性メモリ174を制御するコードデバイス(図示せず)を実行する。そのようなコードデバイスは、マイクロプロセッサ158内部のCPUとともにパッケージ化されたフラッシュメモリであっても、別個のフラッシュROMであっても、以下に記載される内部の不揮発性メモリ174であってもよく、不揮発性メモリ174の物理ブロックがアドレス指定されることを可能とし、情報を該物理ブロックに格納し、該ブロックから読み出し、該ブロックから消去することを可能とする。
一般に、データを書き込む際、ユーザは、ファイル・システムを利用してデータを有効に書き込む。ファイル・システムは、データを、論理ブロックと関連付け、より詳細には、記憶媒体と関連付けられた物理ブロックにマッピングされた論理ブロックのページと関連付ける。図5は、本発明の1つの実施の形態に従って、論理ブロックを備えるファイル・システムと、物理ブロックを備える媒体とを図示する。ファイル・システム514の論理ブロック510は、任意の数のページ518を含む。例えば論理ブロック510aである論理ブロックに含まれるページ518の数は、消去ユニットのサイズに依存する。例えば、最小消去ユニットが約32ページを含む場合、図示した通り、約32ページが論理ブロック510aに含まれる。
組み込み型フラッシュメモリのような媒体534の物理ブロック530は、幾つかのページ538を含む。当業者が理解するように、物理ブロック530に含まれるページ538の数は、典型的に、論理ブロック530に含まれるページ518の数と同じである。
図5に関して以下に説明する通り、データ・マネージャ又はデータ管理ソフトウェアを利用することにより、論理ブロック510が物理ブロック530にマッピングされる。論理ブロック510と物理ブロック530とのマッピングは、それぞれ1対1のマッピングであり、即ち、論理ブロックアドレスにおける第1の論理ブロック510が、実質的に論理ブロックアドレスと同じである物理ブロックアドレスにある第1の物理ブロック530aにマッピングされる。しかし、論理ブロック510と物理ブロック530とのマッピングでは、大抵の場合、論理ブロックアドレスにおける第1の論理ブロック510aは、第1の物理ブロック530aにマッピングされず、代わりに、例えば物理ブロック530cのような、論理ブロック・アドレスとは異なる物理ブロックアドレスを有する別の物理ブロックにマッピングされるようになる。
例えば、論理ブロックは論理ページ0〜31と対応付けられ、物理ブロックは物理ページ0〜31と対応付けられるように、論理ブロックと関連付けられたページアドレスのセットは、物理ブロックと関連付けられたページアドレスのセットと全て有効に対応するが、所与の論理ページアドレスと対応付けられた内容は、必ずしも、対応する物理ページアドレスに置かれるわけではない。論理ブロックと関連付けられて格納され、物理的には物理ブロックに格納される所望の内容へのアクセスを促進するために、ブロックと関連付けられたページは、複数のグループ又はサブ・ブロックにグループ化される。論理ブロックと関連付けられたページ及び物理ブロックと関連付けられたページのいずれか又は両方は、グループ又はユニットにグループ化される。図6は、本発明の1つの実施の形態に従ってグループに配置されたページを備えるブロックを図示する。ブロック600はページ604を含む。ブロック600は一般に、任意の数のページ604を含み得ることが理解されるべきである。
ページ604はグループ608に配置される。一般に、ブロック600内のグループ608の数、及びグループ608内のページ604の数は、広範に変更することが可能である。典型的に、グループ608内のページ604の数は、実質的に任意のクラスタ・サイズを収容可能となるよう選択される。例えば、幾つかのシステムにおいて、クラスタ・サイズは約4ページ604であり得る。クラスタ・サイズが約4ページ604であるとき、グループ608内のページ604の数は4の倍数になり得る。例えば、グループ608ごとに4又は8個のページ604があり得る。
当業者に理解されるように、クラスタは、一般に、ファイルの最小サイズと考えられる。従って、ファイル・システムが実質的に1バイトのみをファイルに書き込もうとする場合でも、当該ファイルにはクラスタ全体が有効に割当てられる。以降のファイルは、典型的に、他のクラスタに書き込まれる。
図6に戻って、図示されている実施の形態において、個々のグループ608は、4つのページ604を含む。各グループ608内のページ604の順序は、各グループ608の始まりについて固定されている。例えば、グループ608a内のページ604a〜dの順序は、グループ608bにおけるページ604e〜hと同様に固定されている。各グループ608内におけるページ604の順序は、各グループ608の始まりについて固定されているが、ブロック600内のグループ608の順序は一般に固定されていない。
個々の論理ページ及び物理ページは、一般に、冗長領域及びデータ領域を含む。説明されている実施の形態において、冗長領域即ちオーバーヘッド領域は、特定のページが所属するグループを識別するバイトであるグループ識別子を含むがそれに限定されない、約16バイトまでの情報を含む。図7は、本発明の実施の形態に従うページの図表表現である。ページ700は、冗長領域706及びデータ領域710を含む。一般に、ページ700は約528バイトを含み、そのうちの約16バイトが冗長領域706に含まれ、約512バイトがデータ領域710に含まれる。冗長領域706はページ700の最後のバイトに関連付けられてもよいが、図示されている実施の形態において、冗長領域706はページ700の最初のバイトに関連付けられる。
データ領域710は、例えばユーザ・データの内容であるデータ内容712を格納するよう構成される。冗長領域706は、ページ700を追跡可能とする情報を含むよう構成される。例えば、冗長領域706は、ページ700がその一部となるグループ、即ちブロック内のグループを識別するグループ識別子714を含む。グループの識別を促進するために、グループ識別子714は、冗長領域706と関連付けられた最初のバイト、即ちページ700と関連付けられた最初のバイトであってよい。
グループ識別子714が特定のグループの識別子と合致するまでページ700が読み取られないような場合、典型的に、グループ識別子714が読み取られ、例えば、グループ識別子714が特定のグループと関連付けられた識別子と合致するか否かを決定する全体システム内のソフトウェア又はファームウェアを用いて、チェックがなされる。グループ識別子714はページ700と関連付けられた最初のバイトであるため、グループ識別子714の読み取りは、比較的小さなオーバーヘッドを要求し、比較的効率的である。グループ識別子714が特定のグループの識別子と合致する場合、冗長領域706の残りとともにデータ712が読み取られる。一方、グループ識別子714が特定のグループの識別子と合致しない場合、データ712及び冗長領域706の残りは読み取られない。
実質的にグループ識別子714が特定のグループの識別子と合致する場合にのみ、ページ700と関連付けられた全ビットを読み取ることにより、グループ識別子714が特定のグループの識別子と合致しない場合に、約527バイトのデータの送信と典型的に関連付けられる送信時間を、実質的に削減することができる。言い換えれば、グループ識別子714が特定のグループの識別子と合致しない場合、ページ700の残りのバイトの読み取り又は送信と関連付けられる時間が、有効に削減される。
代わりに、例えばグループ識別子714が特定のグループの識別子と合致する場合のように、残りのバイトが読み取られるべきである場合、アクセス時間、即ちデータの読み取り命令が発行されてからデータがフラッシュメモリから転送される用意ができるまでに経過する時間は、有効に節約される。冗長領域706は、データ領域710の後に置かれても良い。冗長領域706がデータ領域710の後に置かれる場合、読み取り処理が最適化されないとしても、上記の通りブロックの消去処理の数が少なくなるために、一般に、書き込み処理の性能は高められる。
図8aは、本発明の実施の形態に従ってそれぞれグループに分割される論理ブロック及び物理ブロックの図表表現である。論理ブロック802及び物理ブロック806は、それぞれ、グループ810及びグループ814に均等に分割される。1つの実施の形態において、グループ810、814の数は、典型的に2の累乗である。例えば、論理ブロック802には、1、2、4又は8個のグループ810があり得る。
論理ブロック802及び物理ブロック806は、それぞれ32個のページを含むが、論理ブロック802及び物理ブロック806内のページ数は大幅に変わり得ることが理解されるべきである。論理ブロック802の各グループ810は8個のページを含み、例えば、グループ810cは8個のページ826を含む。物理ブロック806の各グループ814は8個のページを含み、例えばグループ814aは8個のページ834を含む。典型的には、グループ810、814のそれぞれにおけるページの順序は、実質的に固定されている。例えば、グループ810cにおいて、第1のページ826aは実質的に「ページ0」として固定され、8番目のページ826hは実質的に「ページ7」として固定される。このように、グループ814aが「グループ0」でありグループ814dが「グループ3」であるようにグループ814が並べられている場合、物理ブロック806全体としての「ページ30」の書き込みは、グループ814dの「ページ6」846gの書き込みと実質的に同じである。
一般に、物理ブロック806内のグループ814の順序は、ランダムであってよい。グループ814の実際のグループ番号は、図7について先に論じた通り、ページの冗長領域に格納される。グループ814aのページ834に格納されるグループ番号は、ページ834を、グループ814aに含まれるものとして識別するよう構成される。同様に、ページ838に格納されたグループ番号は、ページ838を、グループ814bに含まれるものとして識別し、ページ842に格納されたグループ番号は、ページ842を、グループ814cに含まれるものとして識別し、ページ846に格納されたグループ番号は、ページ846を、グループ814dに含まれるものとして識別する。
図示される通り、物理グループ814a即ち物理「グループ0」におけるページ834のデータ領域は、論理グループ810dと関連付けられたデータを格納するよう構成される。物理グループ814cのページ842は、また、論理グループ810dと関連付けられたデータを格納するよう構成される。論理グループ810cと関連付けられたデータは、物理グループ814bのページ838のデータ領域に格納されるよう構成される。特に、図示されている実施の形態において、論理グループ810dと関連付けられたデータは物理グループ814aに書き込まれ、論理グループ810cと関連付けられたデータは物理グループ814bに書き込まれる。物理グループ814bが書き込まれた後、論理グループ810dと関連付けられたデータは、再び、今度は物理グループ814cに書き込まれる。
図8bは、本発明の実施の形態に従って、物理ブロック806の物理ブロック814が、グループの関連付けが図8aに示された通りになるよう書き込まれる例を図示する。ユーザは、860に示されるように、論理グループ810dの論理「ページ1」830bと関連付けられたデータを、物理グループ814aに、より詳細には物理グループ814aの物理「ページ1」834bに書き込むよう選択し得る。物理「ページ1」834bが書き込まれると、ユーザは、862に示すように、論理「ページ3」830dと関連付けられたデータを、物理グループ814aの物理「ページ3」834dに書き込み得る。
次のユーザ命令が、論理グループ810cと関連付けられたデータを書き込むものである場合、追加のページ834が物理グループ814a内で利用可能であったとしても、論理グループ810cと関連付けられたデータは、実質的に空の物理グループ814、又は実質的に消去された状態である物理グループ814に書き込まれる。例えば、グループ810cの論理「ページ2」826cと関連付けられたデータは、864に示すように、グループ814bの物理「ページ2」838cに書き込まれる。論理グループ810cと関連付けられた他のページは、866及び868に示す通り、グループ814bに書き込まれる。
論理ブロック810cと関連付けられたデータが書き込まれた後で、ユーザは、論理ブロック810dと関連付けられたデータを再び書き込むことを決定し得る。そのため、グループ810dの論理「ページ5〜7」830f〜hと関連付けられたデータは、870、872、874に示される通り、グループ814cの適切な物理ページ842に書き込まれる。典型的に、論理「ページ5〜7」830f〜hと関連付けられたデータは、物理グループ814aには書き込まれない。なぜなら、物理グループ814bが既に書き込まれているという事実のために順序を外れた書き込み違反が発生するからであり、グループ814bの後にグループ814aへ書き込むことは一般的には許可されないからである。結果として、論理グループ810dと関連付けられたデータは、物理グループ814a及び物理グループ814cに配置される。
論理ブロック802と関連付けられた、より高い全体論理ブロックアドレスと関連付けられたデータは、より低い全体論理ブロックアドレスと関連付けられたデータよりも、低い全体物理ブロックアドレスを有する物理ブロック806の物理ページに格納されてもよい。例えば、論理ページ830bと関連付けられた全体論理ブロックアドレスは、論理ページ826cと関連付けられた全体論理ブロックアドレスより高くても良いが、論理ページ830bと関連付けられた内容は、論理ページ826cと関連付けられた内容が書き込まれる物理ページ838cより低い全体物理ブロックアドレスを有し得る物理ページ834bに書き込まれてもよい。
先に書き込まれたページが上書きされる場合、例えば、論理「ページ1」830bが「ページ1」834に書き込まれ、物理グループ814bが書き込まれた後のいずれかの時点に、論理「ページ1」830bと関連付けられたデータが物理グループ814d(図示せず)に書き込まれる場合、「ページ1」834bのデータ領域に格納された内容は無効と考えられる。そのため、論理「ページ1」830bと関連付けられた内容を検索する命令は、対応する物理ページが見つかるまで物理ブロック806を有効に逆方向に検索する。言い換えれば、物理グループ814dが最初に検索され、物理グループ814c、物理グループ814b、及び物理グループ814aが続いて検索される。逆方向の検索は、一般に、最新のデータへのアクセスを可能とする。
図示される通り、物理グループ814a〜cが書き込まれた後、物理グループ814dは、実質的に割当てられずに残される。論理グループ810bが書き込まれる場合、論理グループ810bと関連付けられたデータは、物理グループ814dに書き込まれる。つまり、物理グループ814dは、図8cに示す通り、論理グループ810bに有効に割当てられる。論理グループ810bと関連付けられたデータは、物理グループ814dに書き込まれ、論理グループ810cと関連付けられたデータは、物理グループ814bに書き込まれる。論理グループ810dは、物理グループ814a及び物理グループ814cと関連付けられる。
物理グループ814dが論理グループ810bに割当てられ、論理グループ810bと関連付けられたデータが物理グループ814dのデータ領域に書き込まれる場合、論理グループ810dと関連付けられたデータが再度書き込まれる際には、データを書き込んでもよい利用可能な物理グループ814は存在しない。そのため、新しい、例えば予備の物理ブロックが、論理ブロック802に対応する物理ブロックとなるよう有効に取得される。言い換えれば、例えば現在の物理ブロックである物理ブロック806と関連付けられた実質的に全ての現在のデータと、新しいユーザ・データとが新しい物理ブロックに統合されるよう、新しい物理ブロックが割当てられる。
図8dは、本発明の1つの実施の形態に従う統合処理の後における、論理ブロック即ち図8a〜cの論理ブロック802と、新しい物理ブロックとの関連付けを図示する。図8cの物理ブロック806の内容と、論理ブロック802と関連付けられた新しいユーザ・データとが、新しい物理ブロック880に統合される場合、例えば有効に上書きされたページのような、空のページ及び無効なページは、新しい物理ブロック880に書き込まれないことが理解されるべきである。更に、図8cの物理ブロック806に利用可能なスペースがないために新しい物理ブロック880が割当てられることを促したデータのような新しいデータは、新しいデータと対応する既存のデータを効果的に無効とする。即ち、新しいデータは、新しいデータと同じ論理ページに関連付けられた既存のデータを無効とする。
統合が起こって新しいデータが新しい物理ブロック880に書き込まれると、論理ブロック802と新しい物理ブロック880との関連付けは、論理ブロック802のグループ810bと関連付けられたデータが物理グループ884aに格納され、論理ブロック802のグループ810cと関連付けられたデータが物理グループ884bに格納され、論理ブロック802のグループ810dと関連付けられたデータが物理グループ884cに格納されるようになる。物理グループ884dは、物理グループ884dが必要とされるまで、実質的に消去状態に留まる。当業者に理解されるように、データが統合され、又は新しい物理ブロック880に書き込まれると、図8aの元の物理ブロック806は消去され、予備の物理ブロックとして利用可能にされる。
ページと関連付けられたグループ識別子にアクセスする読み取り処理が一層効率的に行われるようにするため、現在のブロック内のページが読み取られ又は書き込まれる際に、現在作業中のブロック情報のテーブルが、例えば図4cのRAM162に構築される。図9は、本発明の実施の形態に従う現在作業中のブロックの情報テーブルの図表表現である。情報テーブル950は、グループ番号954を格納するよう構成される。ページが読み取られると、そのページのグループ番号954が情報テーブル950に格納される。グループ番号954を格納することは、典型的に、同じブロック、即ちグループ番号954が情報テーブル950に格納されているページを含むブロックへの次回の読み取り要求に対して、読み取り回数を低減するために役立つ。典型的に、実質的に現在作業中のブロックに関する情報は、情報テーブル950に保持される。全体システムにおけるRAM要求を実質的に最小化するため、情報テーブル950は、現在アクセスされているブロックについてのみ構築されてもよい。別のブロックがアクセスされた場合、情報テーブル内にある情報は、新しいブロックの情報により有効に置換される。
図10a及び10bは、論理グループの一部である論理ページと関連付けられた内容を、物理グループの一部である物理ページに書き込む1つの方法と関連付けられたステップを、本発明の1つの実施の形態に従って図示する。内容を物理ページに書き込む処理1000は、物理ページに書き込まれるべき内容が識別されるステップ1004において開始する。つまり、書き込まれるべき新しいデータであって、例えば論理ページ「A」である論理ページと関連付けられるデータが、取得又は識別される。
書き込まれるべき内容が識別されると、ステップ1008において、論理ページ「A」と対応する物理グループがあるか否かが決定される。言い換えれば、論理ページ「A」、又は、より一般的には論理ページ「A」を含む論理グループが、最後に割当てられた又は関連付けられた物理グループと同一であるか否かが決定される。最後に割当てられた物理グループが論理ページ「A」を含むことが決定されると、ステップ1012において、割当てられた物理グループにおいて、論理ページ「A」と関連付けられた内容を書き込むことができる適切なページが利用可能であるか否かが決定される。適切なページがあるか否かの決定には、論理ページ「A」と関連付けられた内容が割当てられた物理グループに書き込まれる場合に、順番を外れた書き込み違反が起こるか否かの決定が含まれ得る。決定には、また、論理ページ「A」と関連付けられた内容にとって利用可能である割当てられた物理グループに、書き込まれていないページがあるか否かの決定が含まれ得る。
ステップ1012において、割当てられた物理グループに対し適切なページが利用可能であることが決定されると、論理ページ「A」と関連付けられたデータ又は内容は、ステップ1016において適切なページに書き込まれる。データを物理ページに書き込むために、実質的に任意の適切な方法が利用されてもよい。データが書き込まれると、データを物理グループの物理ページに書き込む処理が完了する。
代わりに、ステップ1012において、割当てられた物理グループにおいて適切なページが利用可能ではないことが決定されると、割当てられた物理グループのページが一杯であるか、又は、順番外れの書き込み違反を起こさないような適切なページが利用可能ではないことが示される。そのため、処理の流れはステップ1012から1020へ進み、物理ブロック内に利用可能な物理グループがあるか否かが決定される。言い換えれば、ステップ1020において、物理ブロック内に、まだ特定の論理グループと関連付けられていないグループがあるか否かが決定される。
利用可能な物理グループがあると決定された場合、利用可能な物理グループは、ステップ1024において、論理ページ「A」を含む論理グループに有効に割当てられる。利用可能な物理グループが論理グループに割当てられると、論理ページ「A」と関連付けられたデータ又は内容は、ステップ1028において、新しく割当てられた物理グループの適切なページに書き込まれる。データが書き込まれると、物理グループの物理ページにデータを書き込む処理が完了する。
ステップ1020、及び、論理ページ「A」に割り当てられた物理ブロック内に利用可能な物理グループがあるか否かの決定に戻って、適切な物理グループがないと判断された場合、論理ページ「A」と関連付けられたデータ又は内容が、物理ブロック即ち現在の物理ブロックに書き込まれないかもしれないことが示される。そのため、処理の流れはステップ1032に進み、利用可能な予備の物理ブロックがあるか否かが決定される。利用可能な予備の物理ブロックがないと決定されると、ステップ1036において、論理ページ「A」と関連付けられたページが書き込まれないことを示す例外が投げられる。例外が投げられると、データを物理グループの物理ページに書き込む処理は終了し、典型的には失敗の表示が報告される。コントローラのソフトウェア又はファームウェアの設計により、通常、フラッシュメモリの寿命がすっかり終わるまで利用されない限り、このような状況が実質的に発生しないよう防止される。
一方、ステップ1032において、予備の物理ブロックが利用可能であると決定されると、予備の物理ブロックは、ステップ1040において、論理ページ「A」を含む論理ブロックに利用されるよう割当てられる。その後、ステップ1044において、論理ページ「A」を含む論理ブロックに先に割当てられた「古い」物理ブロックからの有効なデータは、「新しい」即ち予備の物理ブロック内のグループと統合される。加えて、新しいデータ、即ちステップ1004において取得された論理ページ「A」と関連付けられた内容は、予備の物理ブロックと関連付けられたグループのページに書き込まれる。古い物理ブロックからの有効なデータが予備の物理ブロックに統合された後、ステップ1048において、古い物理ブロックが消去される。古い物理ブロックの消去は、例えば古い物理ブロックが実質的に寿命の終わりに到達していない場合に、古い物理ブロックが実質的に予備の物理ブロックとして利用されることを可能とする。古い物理ブロックが消去されると、物理グループの物理ページへのデータの書き込み処理が終了する。
一般に、ブロック内のページのグループ化と関連付けられる機能は、例えばプログラム・コードデバイス又はホスト・システムに対するファームウェアとして、ソフトウェアにより提供される。劣化の平準化を可能とするために、ホスト・システムに提供されるソフトウェア又はファームウェアと関連付けられた適切なシステム構造の1つの実施の形態が、図11に示される。システム構造900は、一般に、アプリケーション・インターフェース・モジュール904、システム・マネージャ・モジュール908、データ・マネージャ・モジュール912、データ保全マネージャ916、及びデバイス・マネージャ/インターフェース・モジュール920を含み得るがそれらに限定されない様々なモジュールを含む。一般に、システム構造900は、例えば図4aのプロセッサ108のようなプロセッサによりアクセスされ得るソフトウェア・コードデバイス又はファームウェアを用いて実現される。
一般に、アプリケーション・インターフェース・モジュール904は、ホスト、オペレーティング・システム又は直接にユーザと通信するよう構成される。アプリケーション・インターフェース・モジュール904は、また、システム・マネージャ・モジュール908及びデータ・マネージャ・モジュール912とも通信する。ユーザがフラッシュメモリの読み取り、書き込み又はフォーマットを要望する際、ユーザは、オペレーティング・システムに要求を送信し、該要求はアプリケーション・インターフェース・モジュール904に渡される。アプリケーション・インターフェース・モジュール904は、該要求を、要求に応じてシステム・マネージャ・モジュール908又はデータ・マネージャ・モジュール912に渡す。
システム・マネージャ・モジュール908は、システム初期化サブモジュール924、消去カウント・ブロック管理サブモジュール926、及び電力管理ブロック・サブモジュール930を含む。システム初期化サブモジュール924は、一般に、初期化要求が処理されることを可能とするよう構成され、典型的には、消去カウント・ブロック管理サブモジュール926と通信する。消去カウント・ブロック管理サブモジュール926は、ブロックの消去カウントを格納する機能と、個々の消去カウントを用いて平均消去カウントを計算し更新する機能とを含む。消去カウントの使用は、参照により全文が本明細書に援用される、2002年10月28日出願に係る係属中の米国特許出願第10/281,739号に記載されている。
アプリケーション・インターフェース・モジュール904と通信することに加え、システム・マネージャ・モジュール908は、データ・マネージャ・モジュール812及びデバイス・マネージャ/インターフェース・モジュール920とも通信する。システム・マネージャ・モジュール908及びアプリケーション・インターフェース・モジュール904と通信するデータ・マネージャ・モジュール912は、論理セクタを物理セクタへと有効に変換するセクタ・マッピングを提供する機能を含む。つまり、データ・マネージャ・モジュール912は、論理ブロックを物理ブロックにマッピングするよう構成される。データ・マネージャ・モジュール912は、オペレーティング・システムとファイル・システムとのインターフェース層と関連付けられた機能を含み、ブロック内のグループの管理を可能とする。
システム・マネージャ・モジュール908、データ・マネージャ912、及びデータ保全マネージャ916と通信するデバイス・マネージャ/インターフェース・モジュール920は、典型的に、フラッシュメモリ・インターフェースを提供し、例えば入出力インターフェースのようなハードウェア抽象化に関連付する機能を含む。データ保全マネージャ・モジュール916は、他の機能と共に、ECC処理を提供する。
本発明の幾つかの実施の形態のみを説明したが、本発明は、本発明の趣旨又は範囲を逸脱することなく、多くの他の具体的な形態で実現可能であることが理解されるべきである。例えば、論理ブロック内の論理グループと、物理ブロック内の対応する物理グループとは、実質的に同じサイズであるものとして説明されたが、論理グループと物理グループとは一般にサイズが異なってもよい。言い換えれば、論理グループに含まれるページ数と、該論理グループに対応する物理グループに含まれるページ数とは、必ずしも同じではない。
本発明の様々な方法と関連付けられたステップは、広範に変更されることが可能である。一般に、ステップを追加、削除、再順序付け又は変更してもよい。従って、本例は、例示であって限定的ではないと考えられるべきであり、本発明は、本明細書で与えられた詳細に限定されるものではなく、特許請求の範囲以内において修正されることが可能である。
図1aは、ファイル・システムにより有効に分割されたメモリを図示する。 図1bは、論理ブロックと物理ブロックとのマッピングを図示する。 図2aは、論理ブロックが固定的な方法である場合に、関連づけられた内容を収容するよう構成された物理ブロックを図示する。 図2bは、例えば図2aのブロック210のような古い物理ブロックと、古いブロックの内容を収容するよう構成された新しい物理ブロックとを図示する。 図3は、論理ブロックと関連づけられた内容がランダムな方法で書き込まれる物理ブロックを図示する。 図4aは、不揮発性メモリを含む一般的なホスト・システムを図示する。 図4bは、例えば図4aのメモリ・デバイス120であるメモリ・デバイスを図示する。 図4cは、組み込み型不揮発性メモリを含むホスト・システムを図示する。 図5は、本発明の1つの実施の形態に従った、論理ブロックを備えるファイル・システムと、物理ブロックを備えるメディアとを図示する。 図6は、本発明の1つの実施の形態に従ってグループに構成されたページを備えるブロックを図示する。 図7は、本発明の1つの実施の形態に従ったページを図示する。 図8aは、本発明の1つの実施の形態に従ってそれぞれ複数のグループに分割される、論理ブロック及び物理ブロックを図示する。 図8bは、論理ブロック及び物理ブロック、即ち図8aの論理ブロック802及び物理ブロック806を図示し、本発明の1つの実施の形態に従って、物理ブロック内のグループが書き込まれる方法を示す。 図8cは、論理ブロック及び物理ブロック、即ち図8aの論理ブロック802及び物理ブロック806を図示し、ブロック内のグループが、本発明の実施の形態に従って関連付けられる方法を示す。 図8dは、本発明の1つの実施の形態に従う統合処理の後の論理ブロック即ち図8a〜cの論理ブロック802と、物理ブロックとの関連づけを図示する。 図9は、本発明の1つの実施の形態に従う、現在の作業ブロック情報テーブルを図示する。 図10aは、本発明の1つの実施の形態に従って、論理グループの一部である論理ページと関連づけられた内容を、物理グループの一部である物理ページに書き込む1つの方法と関連づけられたステップを示す処理フロー図である。 図10bは、本発明の1つの実施の形態に従って、論理グループの一部である論理ページと関連づけられた内容を、物理グループの一部である物理ページに書き込む1つの方法と関連づけられたステップを示す処理フロー図である。 図11は、本発明の1つの実施の形態に従うシステム構造のブロック図である。

Claims (30)

  1. それぞれが2つ以上の物理ページを含む複数の物理グループにグループ化された複数の物理ページを含む第1の物理ブロックを備える不揮発性メモリと、
    それぞれが2つ以上の論理ページを含む複数の論理グループにグループ化された複数の論理ページに対応する第1の論理ブロックを前記第1の物理ブロックにマッピングするコードデバイスと、
    入力データが前記第1の論理ブロックの第1の論理グループ内の第1の論理ページに関連付けられている事に応答して、前記入力データを、前記第1の物理ブロックの第1の物理グループに含まれる第1の物理ページに書き込むコードデバイスと、を含み、
    前記入力データを書き込むコードデバイスが、受信された入力データが前記第1の論理ブロックの第2の論理グループ内の第1の論理ページに関連付けられていることに応答して、第2の物理グループに含まれる第1の物理ページにも入力データを書き込み、かつ、受信された入力データが前記第1の論理グループ内の第2の論理ページと関連付けられていることに応答して、前記第1の物理ブロックの第3の物理グループ内の第2の物理ページにも入力データを書き込み、
    更に、前記第1の論理グループからのデータ取り出しを要求する読み出し指令に応答して、データを、前記第3の物理グループ内の第2の物理ページ及び、前記第1の物理グループ内の第1の物理ページから取り出すコードデバイスと、
    を備えるメモリ・システム。
  2. 請求項1記載のメモリ・システムであって、前記第1の物理グループが、前記第1の物理グループ内の各物理ページと関連付けられた冗長領域に格納されるグループ識別子により識別され、前記取り出すコードデバイスが、
    前記第1の物理グループの第1及び第2の物理ページから前記グループ識別子を取得するコードデバイスと、
    前記第1及び第2の物理ページの前記グループ識別子が前記第1の論理ブロックのマッピングをマッチングしたのに応答して、前記第1及び第2の物理ページからデータを読み出すコードデバイスと、
    を含むメモリ・システム。
  3. 請求項1記載のメモリ・システムであって、更に、
    前記コードデバイスを格納するメモリと、
    前記コードデバイスを処理するプロセッサと、
    を備えるメモリ・システム。
  4. 請求項1記載のメモリ・システムであって、前記不揮発性メモリがフラッシュメモリであるメモリ・システム。
  5. 請求項4記載のメモリ・システムであって、前記フラッシュメモリがNANDフラッシュメモリであるメモリ・システム。
  6. 請求項1記載のメモリ・システムであって、前記コードデバイスがソフトウェア・コードデバイスであるメモリ・システム。
  7. 請求項1記載のメモリ・システムであって、前記コードデバイスがファームウェア・コードデバイスであるメモリ・システム。
  8. それぞれが2つ以上のページを含む複数のグループに、第1のブロック内でグループ化された複数のページを含む第1のブロックを備える不揮発性メモリと、
    前記第1のブロック内の複数のグループの内の第1のグループがデータ・セットを受信するために利用可能か否かを決定するコードデバイスと、
    前記第1のグループが前記データ・セットを受信するために利用可能であると決定したコードデバイスに応答して、前記データ・セットを、前記第1のグループに含まれる第1のページに書き込むコードデバイスと、
    前記第1のグループが前記データ・セットを受信するために利用可能ではないと決定したコードデバイスに応答して、前記第1のブロック内の複数のグループの内の第2のグループが前記データ・セットを受信するために利用可能か否かを決定するコードデバイスと、
    前記第2のグループが前記データ・セットを受信するために利用可能であると決定したコードデバイスに応答して、前記データ・セットを、前記第2のグループに含まれる第2のページに書き込むコードデバイスと、
    前記第2のグループが前記データ・セットを受信するために利用可能ではないと決定されたときに、前記不揮発性メモリに含まれる第2のブロック内が前記データ・セットを受信するために利用可能か否かを決定するコードデバイスと、
    前記第2のブロックが前記データ・セットを受信するために利用可能であると決定したコードデバイスに応答して、前記複数のページのうちの幾つかの内容を、前記第2のブロックにコピーするコードデバイスと、
    前記第2のブロックが前記データ・セットを受信するために利用可能であると決定したコードデバイスに応答して、前記データ・セットを前記第2のブロックに書き込むコードデバイスと、
    を備えるメモリ・システム。
  9. 請求項8記載のメモリ・システムであって、更に、
    前記第1のグループを決定するコードデバイスと、
    前記第2のグループを決定するコードデバイスと、
    を備えるメモリ・システム。
  10. 請求項8記載のメモリ・システムであって、前記第1のグループが前記データ・セットを受信するために利用可能なときを決定する前記コードデバイスが、前記第1のページが前記データ・セットを受信するのに適切であるか否かを決定するコードデバイスを含むメモリ・システム。
  11. 請求項8記載のメモリ・システムであって、前記データが論理ページと関連付けられ、前記第1のブロックが第1の物理ブロックであるメモリ・システム。
  12. 不揮発性メモリの第1の物理ブロックにデータを書き込むコンピュータによって実行される方法であって、前記第1の物理ブロックが、複数の物理グループにグループ化された複数の物理ページを含み、前記複数の物理グループの各物理グループが、2つ以上の物理ページを含む方法において、
    それぞれが2つ以上の論理ページを含む複数の論理グループにグループ化された複数の論理ページとして構成された第1の論理ブロックを前記第1の物理ブロックにマッピングするステップと、
    前記第1の論理ブロックの第1の論理グループ内の第1の論理ページと関連付けられた入力データの受信に応答して、前記第1の物理ブロックの第1の物理グループ内に含まれる第1の物理ページに前記入力データを書き込むステップと、
    前記第1の論理ブロックの第2の論理グループ内の第1の論理ページと関連付けられた入力データの受信に応答して、第2の物理グループ内に含まれる第1の物理ページに前記入力データを書き込むステップと、
    次に、前記第1の論理ブロックの前記第1の論理グループ内の第2の論理ページと関連付けられた入力データの受信に応答して、前記第1の物理ブロックの第3の物理グループ内に含まれる第2の物理ページに前記入力データを書き込むステップと、
    次に、前記第1の論理グループからの、データ取り出しを要求する読み出し指令に応答して、データを、前記第3の物理グループ内の第2の物理ページ及び、前記第1の物理グループ内の第1の物理ページから取り出すステップと、を備える方法。
  13. 請求項12記載の方法であって、前記第1及び第3の物理グループ内の前記第1及び第2の物理ページが、前記第1及び第2の物理ページと関連付けられた冗長領域に格納されているグループ識別子により識別される、方法。
  14. 請求項13記載の方法であって、前記取り出すステップが、
    前記第1及び第2の物理ページから、グループ識別子を取得するステップと、
    前記第1及び第2の物理ページの前記グループ識別子が前記第1の論理ブロックのマッピングをマッチングしたのに応答して、前記第1及び第2の物理ページからデータを読み出すステップと
    を備える方法。
  15. 不揮発性メモリに関連付けられ、2つ以上の物理ページを含む複数の物理グループ内にグループ化されている複数の物理ページを含む第1の物理ブロックにデータを書き込むコンピュータによって実行される方法であって、
    論理ブロックの第1論理グループに含まれる複数の論理ページの内の1つである、第1の論理ページと関連付けられた第1のデータ・セットを識別するステップと、
    前記第1の物理グループが前記第1の論理グループに関連付けられるか否か決定するステップと、
    前記第1の物理グループが前記第1の論理グループと関連付けられることが決定されたことに応答して、前記第1の物理グループ内に含まれる第1の物理ページが、前記第1のデータ・セットを収容するために利用可能か否かを決定するステップと、
    前記第1の物理ページが前記第1のデータ・セットを収容するために利用可能であると決定されたことに応答して、前記第1のデータ・セットを、前記第1の物理ページに書き込むステップと、
    前記第1の物理グループが前記第1の論理グループと関連付けられないことが決定されたことに応答して、前記第1の物理グループが利用可能であるか否かを決定するステップと、
    前記第1の物理グループが利用可能であると決定されたことに応答して、前記第1の物理グループを前記第1の論理グループと関連付けるステップと、
    前記第1のデータ・セットを、前記第1の物理グループと関連付けられた第2の物理ページに書き込むステップと、
    を備える方法。
  16. 請求項15記載の方法であって、更に、
    前記第1の論理グループと関連付けられた第2のデータ・セットを識別するステップと、
    前記第2のデータ・セットを、前記第1の物理グループと関連付けられた第3の物理ページに書き込むステップと、
    を備える方法。
  17. 請求項16記載の方法であって、更に、
    前記第3の物理ページが、前記第2のデータ・セットを収容するために利用可能であるときを決定するステップであって、前記第3の物理ページが、前記第2のデータ・セットを収容するために利用可能であるとの決定に応答して、前記第2のデータ・セットが前記第3の物理ページに書き込まれるステップ
    を備える方法。
  18. 不揮発性メモリに関連付けられ、前記第1の物理ブロック内の2つ以上の物理ページを含む複数の物理グループ内にグループ化されている複数の物理ページを含む第1の物理ブロックにデータを書き込むコンピュータによって実行される方法であって、
    第1のデータ・セットを、論理ブロックの第1の論理グループ内に含まれる複数の論理ページの内の1つである第1の論理ページに関連付けるステップと、
    前記第1の論理グループと関連付けられた前記第1の物理ブロック内の前記複数の物理グループの第1の物理グループを識別するステップと、
    次に、前記第1の物理グループ内に含まれる第1の物理ページが前記第1のデータ・セットを収容するために利用可能であるか否かを決定するステップと、
    前記第1の物理ページが前記第1のデータ・セットを収容するために利用可能であると決定されたことに応答して、前記第1のデータ・セットを前記第1の物理ページに書き込むステップと、
    前記第1の物理ページが前記第1のデータ・セットを収容するために利用可能ではないと決定されたことに応答して、前記第1の物理ブロック内の前記複数の物理グループに含まれる第2の物理グループが利用可能であるか否かを決定するステップと、
    次に、前記第1のデータ・セットを、前記第2の物理グループと関連付けられた第2の物理ページに書き込むステップと、
    を備える方法。
  19. 請求項18記載の方法であって、更に、
    前記第2の物理グループが利用可能であるとの決定に応答して、前記第2の物理グループを前記第1の論理グループと関連付けるステップ
    を備える方法。
  20. 不揮発性メモリに関連付けられ、2つ以上の物理ページを含む複数の物理グループ内にグループ化されている複数の物理ページを含む第1の物理ブロックにデータを書き込むコンピュータによって実行される方法であって、
    論理ブロックの第1論理グループに含まれる複数の論理ページの内の1つである、第1の論理ページと関連付けられた第1のデータ・セットを識別するステップと、
    前記第1の物理グループが前記第1の論理グループに関連付けられるか否か決定するステップと、
    前記第1の物理グループが前記第1の論理グループと関連付けられることが決定されたことに応答して、前記第1の物理グループ内に含まれる第1の物理ページが、前記第1のデータ・セットを収容するために利用可能か否かを決定するステップと、
    前記第1の物理ページが前記第1のデータ・セットを収容するために利用可能であると決定されたことに応答して、前記第1のデータ・セットを、前記第1の物理ページに書き込むステップと、
    前記第1の物理ページが前記第1のデータ・セットを収容するために利用可能ではないと決定されたことに応答して、前記複数の物理グループに含まれる第2の物理グループが利用可能であるか否かを決定するステップと、
    前記第1のデータ・セットを、前記第2の物理グループと関連付けられた第2の物理ページに書き込むステップと、
    前記第2の物理ブロックが利用可能であると決定されたことに応答して、更に、
    前記第2の物理グループが利用可能ではないと決定されたことに応答して、前記不揮発性メモリに関連付けられた第2の物理ブロックが、前記第1のデータ・セットを収容するために利用可能であるか否かを決定するステップと、
    前記第1の物理ブロックに含まれる前記複数の物理ページの前記内容のいくつかを、前記第2の物理ブロックに含まれる物理ページにコピーするステップと、
    前記第1のデータ・セットを、前記第2の物理ブロックと関連付けられた第3の物理ページに書き込むステップと、
    を備える方法。
  21. 請求項20記載の方法であって、更に、前記第1の物理ブロックを消去するステップを備える方法。
  22. 請求項20記載の方法であって、前記第2の物理ブロックと関連付けられた前記第3の物理ページが、前記第2の物理ブロックに含まれる第3の物理グループの一部であり、該第3の物理グループが2つ以上の物理ページを含む方法。
  23. 請求項22記載の方法であって、更に、前記第3の物理グループを前記第1の論理グループと関連付けるステップを含む方法。
  24. それぞれが2つ以上の物理ページを含む複数の物理グループにグループ化された複数の物理ページを有する第1の物理ブロックを備える不揮発性メモリと、
    論理ブロックの第1論理グループに含まれる複数の論理ページの内の1つである、第1の論理ページと関連付けられた第1のデータ・セットを識別し、更に、前記第1の物理グループが前記第1の論理グループに関連付けられるか否か決定し、前記第1の物理グループが前記第1の論理グループと関連付けられることが決定されたことに応答して、前記第1の物理グループ内に含まれる第1の物理ページが、前記第1のデータ・セットを収容するために利用可能か否かを決定し、そして、前記第1の物理ページが前記第1のデータ・セットを収容するために利用可能であると決定されたことに応答して、前記第1のデータ・セットを、前記第1の物理ページに書き込むように構成されたモジュールと、
    を備え、
    前記モジュールが、更に、
    前記第1の物理グループが前記第1の論理グループと関連付けられないことが決定されたことに応答して、前記第1の物理グループが利用可能であるか否かを決定し、前記第1の物理グループが利用可能であると決定されたことに応答して、前記第1の物理グループを前記第1の論理グループと関連付け、前記第1のデータ・セットを、前記第1の物理グループと関連付けられた第2の物理ページに書き込むよう構成されるメモリ。
  25. 請求項24記載のメモリ・システムであって、前記モジュールが、更に、前記第1の論理グループと関連付けられた第2のデータ・セットを識別し、
    前記第2のデータ・セットを、前記第1の物理グループと関連付けられた第3の物理ページに書き込むよう構成されるメモリ・システム。
  26. 請求項25記載のメモリ・システムであって、前記モジュールが、更に、前記第3の物理ページが前記第2のデータ・セットを収容するために利用可能であるときを決定するよう構成され、前記第3の物理ページが前記第2のデータ・セットを収容するために利用可能であることが決定されたときに、前記第2のデータ・セットが前記第3の物理ページに書き込まれるメモリ・システム。
  27. 請求項24記載のメモリ・システムであって、前記モジュールが、前記第1の物理グループから、前記第1の物理グループを識別するよう構成されたグループ識別子を取得し、該グループ識別子が前記第1の論理グループと関連付けられているか否かを決定することにより、前記第1の物理グループが前記第1の論理グループと関連付けられているか否かを決定するよう構成されるメモリ・システム。
  28. 請求項24記載のメモリ・システムであって、前記不揮発性メモリがNANDフラッシュメモリであるメモリ・システム。
  29. それぞれが2つ以上の物理ページを含む複数の物理グループにグループ化された複数の物理ページを有する第1の物理ブロックを備える不揮発性メモリと、
    論理ブロックの第1論理グループに含まれる複数の論理ページの内の1つである、第1の論理ページと関連付けられた第1のデータ・セットを識別し、更に、前記第1の物理グループが前記第1の論理グループに関連付けられるか否か決定し、前記第1の物理グループが前記第1の論理グループと関連付けられることが決定されたことに応答して、前記第1の物理グループ内に含まれる第1の物理ページが、前記第1のデータ・セットを収容するために利用可能か否かを決定し、そして、前記第1の物理ページが前記第1のデータ・セットを収容するために利用可能であると決定されたことに応答して、前記第1のデータ・セットを、前記第1の物理ページに書き込むように構成されたモジュールと、
    を備え、
    前記モジュールが、更に、
    前記第1の物理ページが前記第1のデータ・セットを収容するために利用不可能であることが決定されたことに応答して、前記複数の物理グループ内に含まれる第2の物理グループが利用可能であるか否かを決定し、前記第2の物理グループが利用可能であると決定されたことに応答して、前記第2の物理グループを前記第1の論理グループと関連付け、前記第1のデータ・セットを、前記第2の物理グループと関連付けられた第2の物理ページに書き込むよう構成され、
    更に、第2の物理ブロックを備え、前記モジュールが、更に、
    前記第2の物理グループが利用可能ではないと決定されたことに応答して、前記不揮発性メモリと関連付けられた前記第2の物理ブロックが、前記第1のデータ・セットを収容するために利用可能であるときを決定し、前記第2の物理ブロックが利用可能であると決定されたことに応答して、前記第1の物理ブロックに含まれる前記複数の物理ページの内容のいくつかを、前記第2の物理ブロックに含まれる物理ページにコピーし、前記第2の物理ブロックが利用可能であると決定されたことに応答して、前記第1のデータ・セットを、前記第2の物理ブロックと関連付けられた第3の物理ページに書き込むよう構成されるメモリ・システム。
  30. 請求項29記載のメモリ・システムであって、前記モジュールが、更に、前記第1の物理ブロックを消去するよう構成されるメモリ・システム。
JP2004548307A 2002-10-28 2003-09-10 ブロック内のページをグループ化する方法及び装置 Expired - Fee Related JP4611024B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/281,855 US7254668B1 (en) 2002-10-28 2002-10-28 Method and apparatus for grouping pages within a block
PCT/US2003/028047 WO2004040453A2 (en) 2002-10-28 2003-09-10 Method and apparatus for grouping pages within a block

Publications (2)

Publication Number Publication Date
JP2006515086A JP2006515086A (ja) 2006-05-18
JP4611024B2 true JP4611024B2 (ja) 2011-01-12

Family

ID=32228778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004548307A Expired - Fee Related JP4611024B2 (ja) 2002-10-28 2003-09-10 ブロック内のページをグループ化する方法及び装置

Country Status (10)

Country Link
US (1) US7254668B1 (ja)
EP (1) EP1576478B1 (ja)
JP (1) JP4611024B2 (ja)
KR (1) KR100886520B1 (ja)
CN (1) CN100454273C (ja)
AT (1) ATE466337T1 (ja)
AU (1) AU2003268530A1 (ja)
DE (1) DE60332394D1 (ja)
TW (1) TWI262388B (ja)
WO (1) WO2004040453A2 (ja)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN100483552C (zh) * 2002-10-28 2009-04-29 桑迪士克股份有限公司 在非易失性存储系统中执行自动磨损平衡的方法
JP4261892B2 (ja) * 2002-12-12 2009-04-30 キヤノン株式会社 データ処理装置および制御方法および記憶媒体
JP4661086B2 (ja) * 2004-05-24 2011-03-30 パナソニック株式会社 不揮発性記憶装置および不揮発性メモリの消去方法と書込み方法
JP3942612B2 (ja) * 2004-09-10 2007-07-11 東京エレクトロンデバイス株式会社 記憶装置、メモリ管理方法及びプログラム
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
KR100706242B1 (ko) * 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
JP4547028B2 (ja) * 2005-08-03 2010-09-22 サンディスク コーポレイション ブロック管理を伴う不揮発性メモリ
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7669003B2 (en) 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
EP1920335B1 (en) * 2005-08-03 2011-05-11 SanDisk Corporation Reclaiming data storage capacity in flash memory systems
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
US8073648B2 (en) * 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
KR101433860B1 (ko) * 2007-10-10 2014-08-26 삼성전자주식회사 파일을 효율적으로 관리할 수 있는 정보 처리 장치
US7613045B2 (en) * 2007-11-26 2009-11-03 Sandisk Il, Ltd. Operation sequence and commands for measuring threshold voltage distribution in memory
EP2225643B1 (en) 2007-12-28 2020-05-06 Toshiba Memory Corporation Semiconductor storage device
TWI485563B (zh) * 2008-09-17 2015-05-21 Silicon Motion Inc 快閃記憶裝置及其運作方法
TWI394161B (zh) * 2008-12-15 2013-04-21 Silicon Motion Inc 快閃記憶體裝置及其資料管理方法
US9201824B2 (en) * 2009-01-22 2015-12-01 Intel Deutschland Gmbh Method and apparatus for adaptive data chunk transfer
KR101586047B1 (ko) 2009-03-25 2016-01-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
WO2010116349A1 (en) * 2009-04-10 2010-10-14 Kaminario Tehnologies Ltd. A mass-storage system utilizing auxiliary solid-state storage subsystem
TWI450271B (zh) * 2009-09-02 2014-08-21 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
TWI453747B (zh) * 2009-09-02 2014-09-21 Silicon Motion Inc 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
US8463983B2 (en) * 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
TWI451439B (zh) * 2010-12-10 2014-09-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
TWI553654B (zh) * 2010-12-16 2016-10-11 群聯電子股份有限公司 資料管理方法、記憶體控制器與記憶體儲存裝置
US10089017B2 (en) 2011-07-20 2018-10-02 Futurewei Technologies, Inc. Method and apparatus for SSD storage access
CN104536906B (zh) * 2011-08-02 2017-10-10 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
KR20130043445A (ko) * 2011-10-20 2013-04-30 삼성전자주식회사 인터페이스 관리 방법 및 이를 이용한 저장 장치에서의 매핑 처리 방법
TWI486766B (zh) 2012-05-11 2015-06-01 Phison Electronics Corp 資料處理方法、記憶體控制器與記憶體儲存裝置
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
CN103425594B (zh) * 2012-05-23 2016-09-14 群联电子股份有限公司 数据处理方法、存储器控制器与存储器存储装置
US9076545B2 (en) 2013-01-17 2015-07-07 Sandisk Tecnologies Inc. Dynamic adjustment of read voltage levels based on memory cell threshold voltage distribution
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US9927996B2 (en) 2014-02-05 2018-03-27 Hitachi, Ltd. Information processing device
US10616144B2 (en) 2015-03-30 2020-04-07 Cavium, Llc Packet processing system, method and device having reduced static power consumption
US9747226B2 (en) * 2015-03-30 2017-08-29 Cavium, Inc. Packet processing system, method and device to optimize packet buffer space
US9898202B2 (en) 2015-11-30 2018-02-20 Samsung Electronics Co., Ltd. Enhanced multi-streaming though statistical analysis
US9880780B2 (en) 2015-11-30 2018-01-30 Samsung Electronics Co., Ltd. Enhanced multi-stream operations
CN106293521B (zh) * 2016-08-02 2019-04-12 华中科技大学 一种映射粒度自适应的闪存转换层管理方法
US10785301B2 (en) * 2017-08-03 2020-09-22 Toshiba Memory Corporation NVM express over fabrics
KR101947286B1 (ko) * 2017-11-29 2019-02-12 울산과학기술원 메모리 컨트롤 장치 및 방법
KR102469539B1 (ko) 2017-12-22 2022-11-22 삼성전자주식회사 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 저장 장치
US11294580B2 (en) * 2017-12-22 2022-04-05 Samsung Electronics Co., Ltd. Nonvolatile memory device

Family Cites Families (34)

* 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
US5095420A (en) 1988-11-21 1992-03-10 International Business Machines Method and system for performing virtual address range mapping in a virtual storage data processing system
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
EP0508577A1 (en) 1991-03-13 1992-10-14 International Business Machines Corporation Address translation mechanism
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
CA2055295C (en) 1991-11-12 2000-05-23 Jean Gilles Fecteau Logical mapping of data objects using data spaces
JP3641280B2 (ja) 1992-10-30 2005-04-20 インテル・コーポレーション フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法
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
JP3078946B2 (ja) * 1993-03-11 2000-08-21 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
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
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing 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 半導体記憶装置
JPH09212411A (ja) * 1996-02-06 1997-08-15 Tokyo Electron Ltd メモリシステム
US5860082A (en) 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US6139177A (en) * 1996-12-03 2000-10-31 Hewlett Packard Company Device access and control using embedded web access functionality
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
GB9801373D0 (en) * 1998-01-22 1998-03-18 Memory Corp Plc Memory system
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
US6772274B1 (en) 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6684289B1 (en) * 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6823526B2 (en) * 2001-07-05 2004-11-23 Hewlett-Packard Development Company, L.P. Computer-based system and method for automatic configuration of an external device

Also Published As

Publication number Publication date
WO2004040453A2 (en) 2004-05-13
KR100886520B1 (ko) 2009-03-02
AU2003268530A8 (en) 2004-05-25
AU2003268530A1 (en) 2004-05-25
WO2004040453A3 (en) 2006-02-16
EP1576478A2 (en) 2005-09-21
DE60332394D1 (de) 2010-06-10
KR20050070092A (ko) 2005-07-05
CN100454273C (zh) 2009-01-21
EP1576478B1 (en) 2010-04-28
CN1795437A (zh) 2006-06-28
ATE466337T1 (de) 2010-05-15
JP2006515086A (ja) 2006-05-18
US7254668B1 (en) 2007-08-07
TWI262388B (en) 2006-09-21
TW200413916A (en) 2004-08-01

Similar Documents

Publication Publication Date Title
JP4611024B2 (ja) ブロック内のページをグループ化する方法及び装置
US7039788B1 (en) Method and apparatus for splitting a logical block
US7174440B2 (en) Method and apparatus for performing block caching in a non-volatile memory system
US7287118B2 (en) Maintaining an average erase count in a non-volatile storage system
KR100914089B1 (ko) 비휘발성 저장 시스템의 소거 카운트 유지 방법 및 장치
JP4456486B2 (ja) 不揮発性記憶システムにおける摩耗一様化
KR100910680B1 (ko) 소거 카운트 블록을 유지하는 방법 및 장치
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
JP2006504221A (ja) 不揮発性記憶システムにおける最高頻度消去ブロックの追跡
JP2006504199A (ja) 不揮発性メモリシステムにおける最低頻度消去ブロックの追跡
JP2010267290A (ja) 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090929

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091006

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091029

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091127

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100521

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100528

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100623

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100630

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100721

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100823

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101013

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4611024

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131022

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

Year of fee payment: 3

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

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

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees