(57)【要約】【課題】集約処理を行う場合には必ず物理ブロック単位の書き込みを行っていたため処理時間が長くなり、エンデュランス特性の低下に繋がるという問題があった。【解決手段】重複ブロックに物理的に書き込みを行う領域がなくなった際に重複テーブルに空きを作るために集約処理を行う。集約処理では、重複ブロックに含まれる有効なデータのみを消去済みの物理ブロックにコピーして新たな重複ブロックとすることで、新たに書き込みを行う領域を確保し、集約処理に要する時間を短縮する。【選択図】図７
2007249509.tif 000002
【特許請求の範囲】
【請求項１】
複数の単位ブロックを有する不揮発性メモリと、
前記不揮発性メモリを管理するコントローラとを有する不揮発性記憶装置のデータ管理方法であって、
前記不揮発性メモリの単位ブロックは、
不揮発性記憶装置外部から指定されるアドレスに対応してデータが書き込まれている通常ブロックと、
前記通常ブロックのデータを更新するデータが少なくとも全容量の一部分に書き込まれている重複ブロックと、
データが消去された状態の消去済みブロックとを含むものであり、
不揮発性記憶装置外部からのデータの書き込み時に前記コントローラは、
集約対象の物理ブロックを前記不揮発性メモリの重複ブロックおよび消去済みブロックのなかからそれぞれひとつずつ決定し、
前記重複ブロックの有効なデータのみを、前記消去済みブロックに書き込んで重複ブロックとし、元の重複ブロックのデータを消去して消去済みブロックとする第１の集約処理を行うことを特徴とする不揮発性記憶装置のデータ管理方法。
【請求項２】
前記コントローラは、
前記不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリの前記単位ブロックである物理アドレスに変換する論物変換テーブルと、
重複ブロックを管理する情報を格納する重複テーブルと、を有するものであり、
前記第１の集約処理に伴い、前記重複テーブルの情報を更新し、新たに重複ブロックとなる単位ブロックの情報を書き込むことを特徴とする請求項１に記載の不揮発性記憶装置のデータ管理方法。
【請求項３】
前記単位ブロックが、前記不揮発性メモリの消去単位の整数倍で構成されていることを特徴とする請求項１に記載の不揮発性記憶装置のデータ管理方法。
【請求項４】
前記単位ブロックが、複数の前記不揮発性メモリにまたがる消去単位をグループとして構成されていることを特徴とする請求項１に記載の不揮発性記憶装置のデータ管理方法。
【請求項５】
前記重複テーブルに書き込むべき論理アドレスに対応する物理ブロックの登録があり、その物理ブロックに書き込み可能な領域がない場合に、その重複ブロックを前記集約対象ブロックとすることを特徴とする請求項２に記載の不揮発性記憶装置のデータ管理方法。
【請求項６】
前記第１の集約処理と、
前記重複ブロックの有効なデータと、前記重複ブロックと同じ論理アドレスの通常ブロックの有効なデータとを、前記いずれかの消去済みブロックに書き込んでそのブロックを通常ブロックとし、元の重複ブロック及びその重複ブロックと同一の論理アドレスを有する通常ブロックのデータを消去して消去済みブロックとする第２の集約処理とを選択的に行うことを特徴とする請求項１に記載の不揮発性記憶装置のデータ管理方法。
【請求項７】
前記コントローラは、
前記不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリの前記単位ブロックである物理アドレスに変換する論物変換テーブルと、
重複ブロックを管理する情報を格納する重複テーブルと、を有するものであり、
前記第１の集約処理と、
第２の集約処理とを選択的に行い、
前記第１の集約処理を行った場合には、前記重複テーブルの情報を更新し、新たに重複ブロックとなる単位ブロックの情報を書き込み、
前記第２の集約処理を行った場合には、前記論物変換テーブルと前記重複テーブルの情報を更新することを特徴とする請求項６に記載の不揮発性記憶装置のデータ管理方法。
【請求項８】
前記第１の集約処理と前記第２の集約処理の選択は、
前記重複ブロックに含まれる有効なデータの割合によって決定されることを特徴とする請求項６に記載の不揮発性記憶装置のデータ管理方法。
【請求項９】
前記有効なデータの割合の判定基準として、
前記有効なデータがその重複ブロックの全容量の半分以上の場合に前記第１の集約処理を行い、
前記有効なデータがその重複ブロックの全容量の半分未満の場合に前記第２の集約処理を行うことを特徴とする請求項８に記載の不揮発性記憶装置のデータ管理方法。
【請求項１０】
前記不揮発性メモリの書き込みエラーが生じたときに前記第１の集約処理を行うことを特徴とする請求項１に記載の不揮発性記憶装置のデータ管理方法。
【請求項１１】
前記コントローラは、
前記不揮発性メモリの書き込みエラーが発生した単位ブロックを管理するためのバッドブロックテーブルを備え、
前記第１の集約処理に伴い書き込みエラーが発生した単位ブロックをバッドブロックとして登録することを特徴とする請求項１０に記載の不揮発性記憶装置のデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性メモリを用いた不揮発性記憶装置におけるデータの管理方法に関する。
【背景技術】
【０００２】
近年、不揮発性メモリを搭載したメモリカードはデジタルカメラや携帯電話のメモリカードとして市場を拡大している。メモリカードはデジタルカメラの高画素化や、携帯電話での動画記録等の用途へ向けてとさらなる大容量化、高速化の拡がりを見せている。
【０００３】
メモリカードで使用されている主な不揮発性メモリはフラッシュメモリである。フラッシュメモリは大容量化に伴い消去単位である物理ブロックのサイズが増加する傾向にある。消去単位が大きくなるためデータの管理単位も大きく取らざるを得ないという一面がある。しかしながらホストおよびホストを操作するユーザ側から見た管理単位は増加せず、一定の容量となっている。その結果メモリカードに搭載されているコントローラによりホスト側のデータの管理と、フラッシュメモリ側のデータの管理を調整する必要がある。このようなデータの管理方法は特許文献１，２に示されている。
【０００４】
フラッシュメモリを搭載したメモリカードにおいて、ホストの管理単位よりもフラッシュメモリの消去単位が大きい場合には、フラッシュメモリの消去単位の全ての領域にデータが書き込まれたブロックを通常ブロックとして、通常ブロック単位で論物変換テーブルを用いてデータの管理を行っていた。また通常ブロックのデータを更新する場合には、重複ブロックにホストからのデータを書き込んでいた。そのため、従来の不揮発性記憶装置におけるデータの書き込みは、特許文献１に示されるように、重複テーブルで管理される物理ブロック（重複ブロック）に書き込まれる。そこでホストが書き込みを行うデータの論理ブロックに対応するデータが重複テーブルに登録されているかどうかを判定し、登録がないと判定した場合には、重複テーブルに空きを作る集約処理を行う。従来の集約処理は、全ての領域にユーザが書き込まれている通常ブロックを作って論物変換テーブルに登録するという考え方に基づいて処理が行われていた。
【特許文献１】特開２００２−３６６４２３
【特許文献２】特開２００１−１５４１３０９
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、以上のようなデータの管理方法では、ホストからの新しいデータを書き込む際に集約処理を行う必要がある場合には必ず物理ブロック単位の書き込みが必要となる。そのための処理時間が長くなりデータの書き込み性能の低下を招くという課題がある。また、集約処理の際にホストからのデータの書き込みではなく、不揮発性記憶装置内部でデータのコピーが行われるために、エンデュランス特性の低下に繋がるという課題があった。
【０００６】
また、書き込みエラー発生したときにも必ず別の物理ブロックに書き込みを行っているため、物理ブロック単位の書き込みが必要となり、そのための処理時間が長く、データの書き込み性能の低下を招くという同様の課題があった。
【課題を解決するための手段】
【０００７】
この課題を解決するため、本発明の不揮発性記憶装置のデータ管理方法は、複数の単位ブロックを有する不揮発性メモリと、前記不揮発性メモリを管理するコントローラとを有する不揮発性記憶装置のデータ管理方法であって、前記不揮発性メモリの単位ブロックは、不揮発性記憶装置外部から指定されるアドレスに対応してデータが書き込まれている通常ブロックと、前記通常ブロックのデータを更新するデータが少なくとも全容量の一部分に書き込まれている重複ブロックと、データが消去された状態の消去済みブロックとを含むものであり、不揮発性記憶装置外部からのデータの書き込み時に前記コントローラは、集約対象の物理ブロックを前記不揮発性メモリの重複ブロックおよび消去済みブロックのなかからそれぞれひとつずつ決定し、前記重複ブロックの有効なデータのみを、前記消去済みブロックに書き込んで重複ブロックとし、元の重複ブロックのデータを消去して消去済みブロックとする第１の集約処理を行うことを特徴とするものである。
【０００８】
ここで前記コントローラは、前記不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリの前記単位ブロックである物理アドレスに変換する論物変換テーブルと、重複ブロックを管理する情報を格納する重複テーブルと、を有するものであり、前記第１の集約処理に伴い、前記重複テーブルの情報を更新し、新たに重複ブロックとなる単位ブロックの情報を書き込むようにしてもよい。
【０００９】
ここで前記単位ブロックが、前記不揮発性メモリの消去単位の整数倍で構成されているようにしてもよい。
【００１０】
ここで前記単位ブロックが、複数の前記不揮発性メモリにまたがる消去単位をグループとして構成されているようにしてもよい。
【００１１】
ここで前記重複テーブルに書き込むべき論理アドレスに対応する物理ブロックの登録があり、その物理ブロックに書き込み可能な領域がない場合に、その重複ブロックを前記集約対象ブロックとするようにしてもよい。
【００１２】
ここで前記第１の集約処理と、前記重複ブロックの有効なデータと、前記重複ブロックと同じ論理アドレスの通常ブロックの有効なデータとを、前記いずれかの消去済みブロックに書き込んでそのブロックを通常ブロックとし、元の重複ブロック及びその重複ブロックと同一の論理アドレスを有する通常ブロックのデータを消去して消去済みブロックとする第２の集約処理とを選択的に行うようにしてもよい。
【００１３】
ここで前記コントローラは、前記不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリの前記単位ブロックである物理アドレスに変換する論物変換テーブルと、重複ブロックを管理する情報を格納する重複テーブルと、を有するものであり、前記第１の集約処理と、第２の集約処理とを選択的に行い、前記第１の集約処理を行った場合には、前記重複テーブルの情報を更新し、新たに重複ブロックとなる単位ブロックの情報を書き込み、前記第２の集約処理を行った場合には、前記論物変換テーブルと前記重複テーブルの情報を更新するようにしてもよい。
【００１４】
ここで前記第１の集約処理と前記第２の集約処理の選択は、前記重複ブロックに含まれる有効なデータの割合によって決定されるようにしてもよい。
【００１５】
ここで前記有効なデータの割合の判定基準として、前記有効なデータがその重複ブロックの全容量の半分以上の場合に前記第１の集約処理を行い、前記有効なデータがその重複ブロックの全容量の半分未満の場合に前記第２の集約処理を行うようにしてもよい。
【００１６】
ここで前記不揮発性メモリの書き込みエラーが生じたときに前記第１の集約処理を行うようにしてもよい。
【００１７】
ここで前記コントローラは、前記不揮発性メモリの書き込みエラーが発生した単位ブロックを管理するためのバッドブロックテーブルを備え、前記第１の集約処理に伴い書き込みエラーが発生した単位ブロックをバッドブロックとして登録するようにしてもよい。
【発明の効果】
【００１８】
本発明によれば、重複物理ブロックに含まれる必要最小限の有効なデータのみをコピーすることによって集約することができるので、エンデュランス特性を向上させ、且つデータの書き込み性能を向上させることができる。又請求項６〜９の発明によれば、上記の効果に加えて、書き込み性能とエンデュランス特性とをバランスよく向上させることができる。更に請求項１０，１１の発明によれば、上記の効果に加えて、書き込みエラー時の処理性能を向上させることができるという効果が得られる。
【発明を実施するための最良の形態】
【００１９】
（第１の実施の形態）
図１は本発明の第１の実施の形態による不揮発性記憶装置のデータ管理方法を説明するための、不揮発性記憶装置のブロック図と外部ホストとを示すブロック図である。図１においてメモリカード１０１は不揮発性記憶装置である。ホスト１０２はメモリカード１０１に対してデータを書き込み及び読み出しを行う装置であり、メモリカード１０１に対して１６ｋＢを管理単位としてデータを管理している。フラッシュメモリ１０３はメモリカード１０１内にあってホスト１０２からのデータが格納される不揮発性メモリである。
【００２０】
コントローラ１０４Ａはホスト１０２とのインターフェースを制御するとともに、フラッシュメモリ１０３の制御を行う。コントローラ１０４Ａは制御のために消去済みテーブル１０５、論物変換テーブル１０６、重複テーブル１０７、バッドブロックテーブル１０８を使用している。
【００２１】
図２はフラッシュメモリ１０３の内部の状態を表したブロック図である。フラッシュメモリ１０３はＰＢ０〜ＰＢ１０２３の１０２４個の物理ブロック２０１から構成されている。物理ブロック２０１はフラッシュメモリ１０３のデータの消去単位で、容量は１２８ｋＢ（バイト）である。この容量はホスト１０２のデータの管理単位１６ｋＢに比べて大きい。
【００２２】
図３は１つの物理ブロック２０１の内部を示したブロック図である。物理ブロック２０１はＰＰ０〜ＰＰ６３の６４の物理ページ３０１から構成されている。各物理ページは２ｋＢのデータ容量を持つ。物理ページ３０１はフラッシュメモリ１０３におけるデータの書き込み単位である。なおここで、ホスト１０２の管理単位である１６ｋＢごとに、即ち８物理ページ毎に部分物理ブロック３０２を構成する。物理ブロック２０１は８つの部分物理ブロック３０２を持つ。
【００２３】
図１に示す消去済みテーブル１０５はフラッシュメモリ１０３内部の全ての物理ブロックの状態が消去済みであるのか、それとも書き込み済であるのかを１ビットのビット情報として保持している。論物変換テーブル１０６はホスト１０２が指定する論理アドレスに対応するデータがフラッシュメモリ１０３のどの物理ブロックに格納されているかの情報を保持している。論物変換テーブル１０６は全ての論理アドレスに対応して、論理アドレスをテーブルのアドレス値、物理アドレスをテーブルのデータとする。論物変換テーブル１０６に登録されている物理ブロックは、そのブロック内のユーザ領域の全てにデータが書き込まれている物理ブロックであり、このような物理ブロックを通常ブロックという。
【００２４】
重複テーブル１０７は、書き込み済みの領域が物理ブロックの全ユーザ領域以下の状態である重複物理ブロック（以下、単に重複ブロックという）を管理している。重複テーブル１０７は書き込みの状態を示す情報や、重複ブロックと対応する論理ブロックアドレスの情報を保持している。重複ブロックは通常ブロックと同一の論理アドレスに対応しており、重複ブロックにデータが書き込まれているページに相当する通常ブロックのページのデータは無効となる。重複ブロックの数は複数管理できるように構成されているが、その最大値は重複テーブル１０７の容量に応じて限定される。
【００２５】
バッドブロックテーブル１０８はフラッシュメモリ１０３の物理ブロックのうち、書き込みエラーまたは消去のエラーが発生したことにより有効なデータを持たない、また今後データの書き込みを行ってはいけない物理ブロック（以下、単にバッドブロックという）の情報を保持している。又これ以外にデータが書き込まれていない状態の物理ブロックを消去済みブロックという。従って物理ブロックは、少なくとも通常ブロック、重複ブロック、消去済みブロックに分けられ、バッドブロックがあれば、これにバッドブロックが加わる。
【００２６】
図４は本実施の形態のデータの書き込み方法を示すフローチャートである。ホスト１０２からのデータは必ず重複テーブル１０７で管理される重複ブロックに書き込まれる。まず、ステップ４０１でホスト１０２が書き込みを行うデータの論理ブロックが重複テーブル１０７に登録されているかどうかを判定する。ここで登録があると判定した場合にはステップ４０２に遷移し、登録がないと判定した場合には、重複テーブル１０７にホスト１０２からのデータを書き込むための空きを作るためにステップ４０５へと遷移する。ステップ４０２では、重複テーブル１０７に保持された情報を基にして重複ブロックに書き込むことのできる物理ページが残されているかどうかを判定する。このような物理ページがある場合には、ステップ４０３へ遷移して重複書き込みを行う。重複書き込みとは、ホスト１０２から送られてきたデータをフラッシュメモリ１０３の重複ブロックに書き込む処理のことをいう。データを書き込める物理ページが残されていないときにはステップ４０４へと遷移し、集約という重複テーブル１０７に空きを作るための処理を行う。ここで行う集約はステップ４０１で重複テーブル１０７に登録がある場合を前提とした集約処理であり、従来は行われていない集約処理である。その詳細は図５にフローチャートで示しており後述する。ステップ４０４で集約処理を終えたらステップ４０３へ遷移し、ホスト１０２からのデータを書き込むと共に、空いた重複テーブル１０７に書き込んだデータに対する情報の登録を行う。一方ステップ４０５で行われる集約処理は重複テーブル１０７に登録がない場合の集約処理であり、後述する図８に示したフローチャートに従って行われる。
【００２７】
次にステップ４０４で実行される集約処理について、図５のフローチャートを用いて説明する。まずステップ５０１で重複ブロックがそのまま論物変換テーブル１０６に登録可能であるかどうかを判定し、登録可能であればステップ５０２へと遷移する。以降の処理は特許文献１で交換併合と表現されている処理に相当するが、図６を用いて説明する。論物変換テーブル１０６に登録可能とは、図６に示すように重複ブロック２０１−Ａの全てのページが有効なデータで占められている場合である。この場合、重複ブロック２０１−Ａはそのまま論物変換テーブル１０６に登録可能な状態であり、重複ブロック２０１−Ａと同じ論理ブロックアドレスを持つ通常ブロック２０１−Ｂのデータは全て無効である。この場合はステップ５０２において重複ブロック２０１−Ａを論物変換テーブル１０６に登録して通常ブロックとする。更にステップ５０３において重複テーブル１０７の当該重複ブロックが登録された部分を空けて、通常ブロック２０１−Ｂを物理消去して消去済みブロックとする。更にこの物理ブロック２０１−Ｂが消去済みブロックとなるように消去済みテーブル１０５を更新する（ステップ５０４）。
【００２８】
ステップ５０１で論物変換テーブル１０６に登録が不可能であると判定された場合には、ステップ５０５へと遷移する。以下の処理を図７を用いて説明する。ここでは重複ブロックを２０１−Ａ、この重複ブロックと同一論理アドレスを持つ通常ブロックを２０１−Ｂとする。ステップ５０５では消去済みテーブル１０５を基にして新たに消去済みの物理ブロック、ここでは２０１−Ｃを検索する。次いでステップ５０６では検索した消去済みブロック２０１−Ｃに対してこれから書き込みを行うので、このブロックが書き込み済みブロックとなるように消去済みテーブル１０５を更新する。次に図７に実線矢印で示すように、重複ブロック２０１−Ａの有効データを消去済みブロック２０１−Ｃへコピーする（ステップ５０７）。ここでは重複ブロック２０１−Ａの有効データのみをコピーして、通常ブロック２０１−Ｂからのデータのコピーは行わない。次にステップ５０８では物理ブロック２０１−Ｃを重複ブロックとして重複テーブル１０７を更新する。次にステップ５０９では元の重複ブロック２０１−Ａのデータを物理消去し、消去済みブロックとする。ステップ５１０でこのブロック２０１−Ａを消去済みブロックとして消去済みテーブル１０５を更新する。このステップ４０１，５０１，５０５〜５１０の処理を第１の処理という。
【００２９】
次にステップ４０５の集約の処理について図８のフローチャートに基づいて説明する。この集約処理は書き込みの対象となる論理アドレスに対応する重複ブロック以外のブロックについて行われる。まずステップ８０１で新規に重複テーブルに登録可能かどうか、即ち重複テーブルに空きがあるかどうかを判定する。登録可能であれば新規に重複テーブルを選択して登録するので集約処理を終える。登録不可であれば、複数の重複ブロックからひとつを選択した後、重複ブロックがそのまま論物変換テーブル１０６に登録可能であるかどうかを判定し（ステップ８０２）、登録可能であればステップ８０３へと遷移する。以下の処理は図６で示した処理に相当する。即ちステップ８０３で論物変換テーブル１０６に重複ブロックのアドレスを登録し、ステップ８０４で通常ブロックを物理消去し、ステップ８０５で消去済みテーブル１０５に物理消去の情報を反映させる。
【００３０】
ステップ８０２で論物変換テーブルに登録が不可能であると判定された場合には、ステップ８０６へと遷移し、重複ブロックに継続してデータをコピーすることで論物変換テーブル１０６に登録可能な状態であるかどうかを判定する。登録可能な状態であると判定した場合には、ステップ８０７へと遷移する。ステップ８０６，８０７，８０３〜８０５の処理は特許文献１でコピー併合と表現されているの処理であって、図９を用いて説明する。
【００３１】
重複ブロックである物理ブロック２０１−Ｄの一部のページが消去済みで書き込み可能な状態であり、その消去済みの領域に重複ブロックと同じ論理ブロックアドレスを持つ通常ブロック２０１−Ｅからデータをコピーすることで論物変換テーブル１０６に登録可能な状態にすることができるものとする。そこで通常ブロック２０１−Ｅの有効なデータを、実線矢印で示すように重複ブロック２０１−Ｄの消去済みの領域にコピーする。その後重複ブロック２０１−Ｄを通常ブロックとして論物変換テーブル１０６に登録すると共に（ステップ８０３）、重複テーブル１０７の重複ブロック２０１−Ｄが登録されていた部分を空けて、通常ブロック２０１−Ｅを物理消去して消去済みテーブル１０５を更新する（ステップ８０４，８０５）。
【００３２】
ステップ８０６で登録可能な状態ではないと判定された場合には、ステップ８０８へと遷移する。この集約は重複ブロック２０１−Ｄがそのまま論物変換テーブル１０６に登録できない状態もしくは、重複ブロック２０１−Ｄの消去済みの物理ページにデータを書き込んでも論物変換テーブル１０６に登録できない場合に行われる。この処理は特許文献１で単純併合と表現されている処理に相当するが、図１０を用いて説明する。ステップ８０８でまず消去済みテーブル１０５を基にして消去済みの物理ブロック、ここでは２０１−Ｆを検索する。ステップ８０９で検索した消去済みの物理ブロック２０１−Ｆに対してこれから書き込みを行うので、消去済みテーブル１０５を更新する。次にステップ８１０で通常ブロック２０１−Ｅと重複ブロック２０１−Ｄの有効データを実線矢印で示すように消去済みブロック２０１−Ｆにコピーする。次いでステップ８１１で論物変換テーブル１０６に物理ブロック２０１−Ｆのアドレスを登録し、ステップ８１２で重複ブロック２０１−Ｄを物理消去して消去済みブロックとし、ステップ８１３で消去済みテーブル１０５にそのアドレスを登録する。その後ステップ８０４，８０５へと遷移し、通常ブロック２０１−Ｅの消去と消去済みテーブル１０５への登録を行う。
【００３３】
さて従来では図５に示すステップ５０５以下の処理の場合にも、図８に示すステップ８０８以下の処理と同様に、新たに検索した消去済みブロックに通常ブロックと重複ブロックの全てのデータをコピーして通常ブロックとしていた。即ち図１０に示すように、従来の集約処理は通常ブロックを作って論物変換テーブル１０６に登録するという考え方に基づいて行われるので、集約に要する処理は１物理ブロック分のデータ即ち６４ページ分のデータをコピーする時間となる。ここで消去に要する時間はデータのコピーに要する時間に比べれば短いので無視して考える。本実施の形態のステップ５０５以下の集約処理では、図７に示すように重複ブロック２０１−Ａに存在する有効なデータのみをコピーするので、集約に要する時間は有効なページのみのデータをコピーする時間となる。この集約処理における従来例との性能の比較を行った表を図１１に示す。図７の場合、有効ページは１ページであり、集約処理に要する時間は従来に比べて６４倍高速に行われることがわかる。
【００３４】
一方集約後に発生する消去済みの領域がどの程度確保できているかを比較する。これは次の集約処理までの書き込みを行えるデータの量と比例する。図１０の場合には６４ページ分確保できており、図７の場合には６３ページ分確保できる。従ってわずかに従来の方が確保できる消去済みの領域が大きいことが分かる。
【００３５】
最後に消去済み領域当たりの処理時間を比較する。この単位としては１ページ集約する処理を行った際に１ページの消去済み領域が確保された場合を１単位として計算する。従来は６４ページを集約処理したら６４ページの消去済み領域が確保されるので１単位の処理時間である。本実施の形態では１ページを集約処理したら６３ページの消去済み領域が確保されるので１／６３単位の処理時間で済んでいる。従って総合的に見て本実施の形態の集約処理は従来に比べて６３倍高速に行えることがわかる。
【００３６】
また本実施の形態の集約処理は従来の集約処理に比べて必ず集約処理を行うページが少なくて済むので、フラッシュメモリ１０３への集約処理を含めたデータの書き込み処理容量を抑えることができ、よりエンデュランス特性を向上させることができる。
【００３７】
（第２の実施の形態）
第２の実施の形態について説明する前に、第１の実施の形態において効果の少ないケースを図１２に示したので説明する。図７では重複ブロックに存在する有効なデータが１ページしか存在しないケースであったが、図１２では重複ブロック２０１−Ａには無効データが１ページしか存在しないケースを示している。第１の実施の形態に従って集約処理を行うと、６３ページのデータをコピーして１ページ分の消去済み領域しか確保できない。図１１で行った性能比較に当てはめると、６３単位の処理時間をかけてしまうことになり、従来に比べて処理時間は低下するケースとなる。
【００３８】
第１の実施の形態はエンデュランス特性の点では必ず従来例に比べて有利となるが、処理時間という観点では従来に比べて劣ってしまうケースも存在することが分かる。
【００３９】
第２の実施の形態ではこのような問題点を解決するものである。この不揮発性記憶装置の全体は図１に示すブロック図と同様であり、第１の実施の形態と同一部分は同一符号を付して詳細な説明を省略する。この実施の形態では、コントローラ１０４Ｂの集約処理のみが前述した第１の実施の形態と異なっており、その他のフラッシュメモリ１０３、消去テーブル１０５、論物変換テーブル１０６、重複テーブル１０７、バッドブロックテーブル１０８については前述したものと同様である。書き込み処理においても図４のフローチャートと同様の処理が行われる。そして図４に示すステップ４０４の集約処理が第１の実施の形態と異なっており、以下これについて図１３を用いて説明する。
【００４０】
図１３は図４のステップ４０４で行われる集約処理のフローチャートである。まずステップ１３０１で重複ブロックがそのまま論物変換テーブル１０６に登録可能であるかどうかを判定し、登録可能であればステップ１３０２へと遷移し、以降ステップ１３０３、ステップ１３０４、ステップ１３０５と処理する。この処理は第１の実施の形態のステップ５０２〜５０４の処理、即ち図６の処理と同様であるので説明を省略する。
【００４１】
ステップ１３０１で論物変換テーブル１０６に登録が不可能であると判定された場合には、ステップ１３０５へと遷移する。ステップ１３０５は消去済みの物理ブロックを消去済みテーブル１０５を基にして検索する。次いで、ステップ１３０６では検索した消去済みの物理ブロックに対してこれから書き込みを行うので、その物理ブロックを書き込み済みのブロックとして消去済みテーブル１０５の更新を行う。
【００４２】
次にステップ１３０７で重複状態を維持したほうがよいのか、それとも論物変換テーブル１０６を更新したほうがいいのかを判定する。重複状態を維持したほうがよいと判定した場合の処理は第１の実施の形態での処理と同じであり、ステップ１３０８〜ステップ１１１１までの処理を行う。この処理は図５でのステップ５０７〜ステップ５１０までの処理、即ち図７の処理（第１の処理）と同様であるので説明を省略する。
【００４３】
論物変換テーブル１０６を更新したほうがよいと判定した場合には、前述の図１０で示した処理と同じであり、ステップ１３１２からステップ１３１５、ステップ１３０３、ステップ１３０４の処理を行う。この処理（第２の処理）は図８でのステップ８１０からステップ８１３、ステップ８０４、ステップ８０５の処理と同様であるので説明を省略する。
【００４４】
図１４は本実施の形態のフローチャートである図１３に従い処理を行った場合を示す。ステップ１３０５では新たに消去済みの物理ブロック、ここでは２０１−Ｃを検索する。図１４に示すように、この場合の重複ブロック２０１−Ａには有効な部分物理ブロックが多く含まれており、重複状態を維持した場合に消去済みの領域を多く確保することができない。従って図１３のステップ１３０７での重複維持効果が少ないと判断した場合、図１４に示すように重複ブロック２０１−Ａと通常ブロック２０１−Ｂから有効なデータを消去済みブロック２０１−Ｃにコピーする。そしてそのブロック２０１−Ｃを通常ブロックとして論物変換テーブル１０６に登録する。又元の重複ブロック２０１−Ａと通常ブロック２０１−Ｂを消去して消去済みブロックとする。
【００４５】
図１３のステップ１３０７での重複維持効果があるかどうかの判定は処理性能やエンデュランス性能を鑑みて総合的に判断するのがよい。例えば重複ブロックに存在する有効なデータが半分以下である場合には図７に示す第１の処理を行い、重複ブロック１０７に存在する有効なデータが半分を超える場合には、図７に示すように第２の処理を行って論物変換テーブル１０６を更新する。この判断基準は第１に処理性能（消去済み領域当たりの処理時間）重視であり、処理時間が同等の場合にはエンデュランス性能を考慮するという判断基準に基づいている。
【００４６】
重複テーブル１０７に存在する有効なデータがちょうど半分の場合に重複状態を維持すると、集約処理を行う部分物理ブロックの数と確保できる消去済み領域がちょうど同じになる。即ち論物変換テーブル１０６を更新する従来の集約処理と同等の処理時間であるといえるので、この場合にはエンデュランスを考慮して第１の処理を行う。以上のようにして従来に比べて書き込み性能とエンデュランス特性をバランスよく向上させることができる。
【００４７】
（第３の実施の形態）
次に本発明の第３の実施の形態について説明する。本実施の形態の全体のブロック図は図１と同様であり、コントローラが１０４Ｃとなっている。その他の構成は第１の実施の形態と同様であるので同一部分は同一符号を付して詳細な説明を省略する。この実施の形態では書き込みエラー発生した場合には、有効なデータを退避させた後に書き込みエラーが発生した物理ブロックをバッドブロックテーブル１０８に登録する。その処理を示したのが図１５のフローチャート、図１６はそのときの処理を示す図である。これらの図に基づいてエラー処理を説明する。
【００４８】
ホスト１０２からのデータは必ず重複ブロックへと書き込まれるが、図１６に示すように重複ブロック２０１−Ｇへの書き込みにおいてエラーが発生したものとする。このとき重複ブロック２０１−Ｇと同一の論理アドレスを持つ通常ブロックを２０１−Ｈとする。この場合には、エラー処理を開始し、まずステップ１５０１で消去済みテーブル１０５を基にして消去済みの物理ブロック、ここでは２０１−Ｉを検索する。次いで、ステップ１５０２で検索した消去済みブロック２０１−Ｉに対してこれから書き込みを行うので、このブロックを書き込み済みとして消去済みテーブル１０５を更新する。次にステップ１５０３で重複ブロック２０１−Ｇの有効データを実線矢印で示すようにコピーする。ここでは通常ブロック２０１−Ｈのデータはコピーしない。次にステップ１５０４で消去済みブロック２０１−Ｉの一部にデータが書き込まれたので、このブロックを重複ブロックとして重複テーブル１０７に登録する。更にステップ１５０５では書き込みエラーの発生した重複ブロック２０１−Ｇをバッドブロックテーブル１０８に登録し、処理を終了する。
【００４９】
また、以上の説明では、論物変換テーブルに登録される単位が一つのフラッシュメモリの一つの物理ブロックである場合について説明をしたが、一つのフラッシュメモリの複数の物理ブロックにわたって論物変換テーブルで管理している構成や、複数のフラッシュメモリにまたがる複数の物理ブロックにわたって論物変換テーブルで管理している場合には、論物変換テーブルを構成する複数の物理ブロックのうち、書き込みエラーが発生した物理ブロックのみを集約対象とし、書き込みエラーが発生していない物理ブロックはそのままにしておいても構わない。
【００５０】
図１７は１つの論理ブロックアドレスに対して２つの物理ブロックを有し、並列にデータを書き込む場合のエラー処理を示している。この図では新たにデータを書き込む重複ブロック２０１−Ｊ，２０１−Ｋがペアの物理ブロックとなっており、これに対応する同一の論理アドレスを持つ通常ブロックを２０１−Ｌ，２０１−Ｍとする。ここで図示のように重複ブロック２０１−Ｊにデータを書き込んでいるときに書き込みエラーが生じたものとする。この場合にも図１５のステップ１５０１と同様に消去済みブロックとして２０１−Ｎを取得する。そしてエラーが生じた重複ブロック２０１−Ｊの有効データを図示のように消去済みブロック２０１−Ｎにコピーする。この場合にも通常ブロック２０１−Ｌ，２０１−Ｍ及び他方の重複ブロック２０１−Ｋからはデータをコピーしない。そしてステップ１５０４において消去済みブロック２０１−Ｎと重複ブロック２０１−Ｋとを新たにペアの物理ブロックとして重複テーブル１０７に登録する。この場合にはエラーの生じた物理ブロック２０１−Ｊはバッドブロックとしてバッドブロックテーブル１０８に登録する。
【００５１】
尚従来の不揮発性記憶装置では、書き込みエラーが発生したときに、消去済みテーブル１０５を基に消去済みの物理ブロックを確保し、重複ブロックと通常ブロックから有効なデータをコピーしてその消去済みブロックを通常ブロックとし、書き込みエラーの発生した重複ブロックをバッドブロックテーブル１０８に登録していた。このような処理と比較すれば、本実施の形態３では集約処理に要する処理時間を短縮することができる。
【００５２】
なお、第１から第２の実施の形態においても、論物変換テーブルに登録される単位が一つのフラッシュメモリの一つの物理ブロックである場合について説明をしたが、一つのフラッシュメモリの複数の物理ブロックにわたって論物変換テーブルで管理している構成や、複数のフラッシュメモリにまたがる複数の物理ブロックにわたって論物変換テーブルで管理している場合についても、本発明で示した考え方で同様に処理を行える。
【００５３】
なお、複数の物理ブロックにまたがって論物変換テーブルに登録されているときに、部分物理ブロックは複数の物理ブロックにまたがっていても単一の物理ブロック内に構成されていても構わない。
【産業上の利用可能性】
【００５４】
本発明にかかる不揮発性記憶装置のデータ書き込みにおける管理方法は、大容量の不揮発性記憶装置を対象としてデータを格納するホストに対して、より書き込み処理性能を向上させることができる。本発明は、静止画記録再生装置や動画記録再生装置等のポータブルＡＶ機器、あるいは携帯電話等のポータブル通信機器の記録媒体に適用することができる。
【図面の簡単な説明】
【００５５】
【図１】不揮発性記憶装置とホスト機器との構成を示すブロック図である。
【図２】不揮発性記憶装置に搭載の不揮発性メモリの構成を示した図である。
【図３】不揮発性記憶装置に搭載の不揮発性メモリの物理ブロックの構成を示した図である。
【図４】本発明の第１の実施の形態による不揮発性記憶装置のデータの書き込みフローチャートである。
【図５】本発明の第１の実施の形態による不揮発性記憶装置のデータの集約処理（対象論理）を示すフローチャートである。
【図６】本発明の実施の形態による不揮発性記憶装置の集約を示した図である。
【図７】本発明の実施の形態による不揮発性記憶装置の集約を示した図である。
【図８】本発明の第１の実施の形態による不揮発性記憶装置のデータの集約処理（対象論理以外）を示すフローチャートである。
【図９】本発明の実施の形態による不揮発性記憶装置の集約を示した図である。
【図１０】本発明の実施の形態による不揮発性記憶装置の集約を示した図である。
【図１１】集約の相違に基づく性能の比較表を示す図である。
【図１２】本発明の実施の形態による不揮発性記憶装置の集約を示した図である。
【図１３】本発明の第２の実施の形態による不揮発性記憶装置のデータの集約処理（対象論理）を示すフローチャートである。
【図１４】本発明の第２の実施の形態による不揮発性記憶装置の集約を示した図である。
【図１５】本発明の第３の実施の形態による不揮発性記憶装置のデータの集約処理を示すフローチャートである。
【図１６】本発明の第３の実施の形態による不揮発性記憶装置の集約を示した図である。
【図１７】本発明の第３の実施の形態の変形例による不揮発性記憶装置の集約を示した図である。
【符号の説明】
【００５６】
１０１  メモリカード
１０２  ホスト
１０３  フラッシュメモリ
１０４  コントローラ
１０５  消去済みテーブル
１０６  論物変換テーブル
１０７  重複テーブル
１０８  バッドブロックテーブル
【図１】
2007249509.tif 000003
【図２】
2007249509.tif 000004
【図３】
2007249509.tif 000005
【図４】
2007249509.tif 000006
【図５】
2007249509.tif 000007
【図６】
2007249509.tif 000008
【図７】
2007249509.tif 000009
【図８】
2007249509.tif 000010
【図９】
2007249509.tif 000011
【図１０】
2007249509.tif 000012
【図１１】
2007249509.tif 000013
【図１２】
2007249509.tif 000014
【図１３】
2007249509.tif 000015
【図１４】
2007249509.tif 000016
【図１５】
2007249509.tif 000017
【図１６】
2007249509.tif 000018
【図１７】
2007249509.tif 000019