(57)【要約】【課題】物理ブロックの数が多い大容量のフラッシュメモリを用いた不揮発性記憶装置において、空きブロックの検索を短時間で実行可能な不揮発性記憶装置を提供する。【解決手段】データ書き込み済みの物理ブロックのアドレスを論物変換テーブル１０６にリストし、データ消去済みの物理ブロックのアドレスを空きブロックテーブル１０７にリストする。  コントローラ１０４は、フラッシュメモリ１０３にデータを書き込む際、（ａ）空きブロックテーブル１０７から有効なデータが書き込まれていない任意の物理ブロックのアドレスを選択して、そのアドレスの物理ブロックにデータを書き込み、（ｂ）データが書き込まれた物理ブロックのアドレスを、論物変換テーブル１０６に、外部から提供された論理アドレスに対応する形で格納する。【選択図】図１
2007199828.tif 000002
【特許請求の範囲】
【請求項１】
消去単位である複数の物理ブロックで構成され、かつ前記各物理ブロックにアドレスが付与された不揮発性メモリと、
前記各物理ブロックのアドレスを管理するアドレス管理テーブルを有し、前記アドレスに基づいて前記複数の物理ブロックへのデータの書き込み、または前記複数の物理ブロックからのデータの読み出しを制御するコントローラと
を備えた不揮発性記憶装置であって、
前記アドレス管理テーブルは、
（ａ）有効なデータが書き込まれた物理ブロックのアドレスを、外部から提供された論理アドレスに対応する形で格納する論物変換テーブルと、
（ｂ）有効なデータが書き込まれていない物理ブロックのアドレスを格納する空きブロックテーブルと
で構成されていることを特徴とする不揮発性記憶装置。
【請求項２】
前記アドレス管理テーブルに空きブロックインデックスを設け、この空きブロックインデックスに、前記空きブロックテーブルに格納された物理ブロックのアドレスのうち、次にデータを書き込む物理ブロックのアドレスを格納することを特徴とする請求項１に記載の不揮発性記憶装置。
【請求項３】
前記空きブロックインデックスは、前記空きブロックテーブルに格納された複数の物理ブロックのアドレスを巡回的に選択することを特徴とする請求項２に記載の不揮発性記憶装置。
【請求項４】
有効なデータが書き込まれていない前記物理ブロックの数が、前記空きブロックテーブルに格納可能な数を超えた場合、前記アドレスに識別フラグを付して前記論物変換テーブルに格納することを特徴とする請求項１〜３のいずれかに記載の不揮発性記憶装置。
【請求項５】
前記空きブロックテーブルの一部をバッドブロックテーブルとして用い、このバッドブロックテーブルに不良ブロックのアドレスを格納することを特徴とする請求項１に記載の不揮発性記憶装置。
【請求項６】
前記アドレス管理テーブルにバッドブロックカウントを設け、このバッドブロックカウントに、前記バッドブロックテーブルに格納された不良ブロックの数を格納することを特徴とする請求項５に記載の不揮発性記憶装置。
【請求項７】
前記アドレス管理テーブルを揮発性メモリ上または不揮発性メモリ上に配置したことを特徴とする請求項１〜６のいずれかに記載の不揮発性記憶装置。
【請求項８】
前記アドレス管理テーブルを不揮発性メモリに保持し、必要に応じて前記アドレス管理テーブルの一部を揮発性メモリにキャッシュして使用することを特徴とする請求項１〜６のいずれかに記載の不揮発性記憶装置。
【請求項９】
消去単位である複数の物理ブロックで構成され、かつ前記各物理ブロックにアドレスが付与された不揮発性メモリと、
前記各物理ブロックのアドレスを管理するアドレス管理テーブルを有し、前記アドレスに基づいて前記複数の物理ブロックへのデータの書き込み、または前記複数の物理ブロックからのデータの読み出しを制御するコントローラと
を備えた不揮発性記憶装置のアドレス管理方法であって、
前記コントローラは、
（ａ）有効なデータが書き込まれていない物理ブロックのアドレスを格納した空きブロックテーブルから任意のアドレスを選択して、そのアドレスの物理ブロックにデータを書き込み、
（ｂ）前記データが書き込まれた物理ブロックのアドレスを、有効なデータが書き込まれた物理ブロックのアドレスを管理する論物変換テーブルに、外部から提供された論理アドレスに対応する形で格納する
ことを特徴とする不揮発性記憶装置のアドレス管理方法。
【請求項１０】
前記論物変換テーブルに物理ブロックのアドレスが書き込まれた後、前記論物変換テーブルに、前記論理アドレスに対応する形で先に格納されていたアドレスの物理ブロックのデータを消去し、その物理ブロックのアドレスを前記空きブロックテーブルに格納することを特徴とする請求項９に記載の不揮発性記憶装置のアドレス管理方法。
【請求項１１】
前記空きブロックテーブルに格納された物理ブロックのアドレスのうち、次にデータを書き込む物理ブロックのアドレスを、前記アドレス管理テーブルに設けた空きブロックインデックスに格納することを特徴とする請求項９または１０に記載の不揮発性記憶装置のアドレス管理方法。
【請求項１２】
前記空きブロックインデックスは、前記空きブロックテーブルに格納された複数の物理ブロックのアドレスを巡回的に選択することを特徴とする請求項１１に記載の不揮発性記憶装置のアドレス管理方法。
【請求項１３】
有効なデータが書き込まれていない前記物理ブロックの数が、前記空きブロックテーブルに格納可能な数を超えた場合、前記アドレスに識別フラグを付して前記論物変換テーブルに格納することを特徴とする請求項９に記載の不揮発性記憶装置のアドレス管理方法。
【請求項１４】
前記アドレス管理テーブルを揮発性メモリ上または不揮発性メモリ上に配置したことを特徴とする請求項９〜１３のいずれかに記載の不揮発性記憶装置のアドレス管理方法。
【請求項１５】
前記アドレス管理テーブルを不揮発性メモリに保持し、必要に応じて前記アドレス管理テーブルの一部を揮発性メモリにキャッシュして使用することを特徴とする請求項９〜１３のいずれかに記載の不揮発性記憶装置のアドレス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性メモリを用いた不揮発性記憶装置およびそのアドレス管理方法に関するものである。
【背景技術】
【０００２】
近年、不揮発性メモリを搭載したメモリーカードが、デジタルカメラや携帯電話のメモリーカードとして市場を拡大している。またメモリーカードは、デジタルカメラの高画素化や携帯電話での動画記録等の用途へ向け、さらなる大容量化へと拡がりを見せている。
【０００３】
このため、より大容量のメモリーカードを実現するため大容量の不揮発性メモリを容易にかつ高速に制御する方法が求められている。より大容量の不揮発性メモリを扱うためには、より大容量のアドレス情報を管理するための揮発性メモリが必要になる。
【０００４】
アドレス情報の管理は、論物変換テーブルと消去済みテーブルを用いて行なわれる。論物変換テーブルは、メモリーカード外部のホスト機器が指定するアドレス（以降、論理アドレスという）と不揮発性メモリのアドレス（以降、物理アドレスという）との対応関係、すなわち論理アドレスを物理アドレスに変換する情報を格納したテーブルである。また消去済みテーブルは、不揮発性メモリの消去単位あたりの物理アドレス毎に、その物理アドレスが書き込み済であるか消去済であるかの情報を格納するテーブルである。
【０００５】
以下、従来の不揮発性記憶装置の構成と書き込み方法について図面を参照して説明する（特許文献１参照）。
図１０は不揮発性記憶装置の一種であるメモリーカードのブロック図である。メモリーカード７０２は、主に、データを記憶するための不揮発性メモリからなるフラッシュメモリ１００３と、ホスト１００１とのＩ／Ｆを制御すると共にフラッシュメモリ１００３の制御を行うコントローラで構成されている。コントローラ１００４は、フラッシュメモリ１００３を管理するための揮発性メモリで構成されたアドレス管理テーブルを有している。アドレス管理テーブル１００５は、ホスト１００１の指定する論理アドレスに対応するフラッシュメモリ１００３の物理アドレスを情報として格納する論物変換テーブル１００６と、フラッシュメモリ１００３の物理ブロックの状態がそれぞれ書き込み済みか消去済みかを、ビット情報として格納している消去済みテーブル１００７で構成されている。
【０００６】
図１１はフラッシュメモリ１００３の内部の構成を示した図である。フラッシュメモリ１００３は、データの消去単位である物理ブロック単位で番号付けされており、それぞれＰＢＡ００００〜ＰＢＡ０１２３の１０２４個の物理ブロック１１０１がある。論物変換テーブル１００６には、この物理ブロックのアドレスである００００〜１０２３が格納されている。
【０００７】
図１２（Ａ）は論物変換テーブル１００６の構成を示した図である。フラッシュメモリ１００３の１０２４個の物理ブロックうち１０００個の物理ブロックでカバーできる容量をホスト１００１からアクセスできる領域としている。従って、論理アドレスが０ｘ０００〜０ｘ３Ｅ７（１６進数１２ビットで表記、１０進数表記では０〜９９９）が論物変換テーブルの領域であり、それぞれ論理アドレスをテーブルのアドレスとしたときの対応する物理ブロックのアドレスがデータとして格納されている。論物変換テーブルに引き続くアドレス０ｘ３Ｅ８〜０ｘ３ＦＦの領域は、予備領域として何も使用されない領域となっている。
【０００８】
一方、図１２（Ｂ）は消去済みテーブル１００７の構成を示した図である。フラッシュメモリ１００３の物理ブロック数１０２４個に対応して、それぞれ１ビットの情報で、消去済みの物理ブロックに関してはデータ”１”で、書き込み済みの物理ブロックに関してはデータ”０”で表している。
【０００９】
図１３は、書き込み時のコントローラ１００４の動作を示すフローチャート、図１４（Ａ）、（Ｂ）は、書き込み前の論物変換テーブル１００６と消去済みテーブル１００７の状態を示した図、図１５（Ａ）、（Ｂ）は、書き込み後の論物変換テーブル１００６と消去済みテーブル１００７の状態を示した図である。以下、図１３〜１５を用いて従来の不揮発性記憶装置の書き込み方法について説明する。
【００１０】
図１３の書き込みフローに入る前に、ホスト１００１がメモリーカード１００２に対して書き込みのコマンドと書き込みのデータを送る。ここではホスト１００１が論理アドレス０ｘ１００に対してデータを書き込む場合について説明する。
【００１１】
ホスト１００１のコマンドを受けて、コントローラ１００４は書き込み先を決定する（ステップＳ１３０１）。具体的には、消去済みテーブル１００７からデータ”１”が格納されている箇所を検索することで消去済みの物理ブロックを得て書き込み先の物理ブロックとする。
【００１２】
この際、消去済みテーブル１００７を順次読み出して確認する必要があるので、消去済みの物理ブロックの検索には相当の時間がかかる。消去済みテーブル１００７には、論物変換テーブル１００６に登録されている１０００個の論理アドレスに対して１０００個の物理アドレスが登録されているために、最悪の条件では１００１ビットの情報を読み出してようやく消去済みの物理ブロックを得ることができる。図１４（Ｂ）に示す例では、消去済みテーブル１００７を検索してアドレス０ｘ３２１に格納されたデータ”１”を読み出すことで物理ブロックアドレス０ｘ３２１が消去済みの物理ブロックであるという情報を得る。
【００１３】
次に、コントローラ１００４は、Ｓ１３０１で決定した物理ブロック０ｘ３２１に対してホスト１００１から転送されてきたデータを書き込む（Ｓ１３０２）。
【００１４】
次に、コントローラ１００４は、フラッシュメモリ１００３に残された旧データの消去を行う（Ｓ１３０３）。旧データは、論物変換テーブル１００６にもともと書き込まれていたアドレスの物理ブロックに存在しているはずなので、図１４（Ａ）においてホスト１００１の指定した論理アドレス０ｘ１００に格納されている０ｘ１２３が、旧データの存在する物理ブロックのアドレスである。この物理ブロック０ｘ１２３のデータを消去する。
【００１５】
次に、テーブルの更新を行う（Ｓ１３０４）。図１５（Ａ）に示すように、論物変換テーブル１００６のホストの指定した論理アドレス０ｘ１００に対応する位置にＳ１３０２で書き込みを行った物理ブロックのアドレス０ｘ３２１を格納し、図１５（Ｂ）に示すように、消去済みテーブル１００７のうち、書き込みを行った物理ブロックのアドレス０ｘ３２１の位置のビット情報を”０”に、消去を行った物理ブロックのアドレス０ｘ１２３の位置のビット情報を”１”に更新する。図１５（Ａ）が論物変換テーブル１００６の更新後の状態、図１５（Ｂ）が消去済みテーブル１００７の更新後の状態である。
【００１６】
このようにしてコントローラ１００４は書き込みを終了する。この後、コントローラ１００４はホスト１００１に対して書き込みの終了を通知することで、ホスト１００１からメモリーカード１００２へのデータの書き込みが終了する。
【特許文献１】特開２００１−１４２７７４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上記状来の書き込み方法においては、フラッシュメモリに対してデータを書き込む際、コントローラは、書き込み先となる物理ブロックを決定するため、空きブロックテーブルを用いて書き込み先物理ブロックの検索を行っている。しかし、空きブロックテーブルはビットマップ形式で保持されており、空きブロックを検索するためには、最悪の場合、ビットマップのほぼ全領域を検索する時間が必要となり、大容量化に伴って検索時間が無視できない状況になってきている。
本発明は上記従来の問題点に鑑み、空きブロックの検索を短時間で実行可能な不揮発性記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記目的を達成するために、本発明の不揮発性記憶装置は、
消去単位である複数の物理ブロックで構成され、かつ前記各物理ブロックにアドレスが付与された不揮発性メモリと、
前記各物理ブロックのアドレスを管理するアドレス管理テーブルを有し、前記アドレスに基づいて前記複数の物理ブロックへのデータの書き込み、または前記複数の物理ブロックからのデータの読み出しを制御するコントローラと
を備えた不揮発性記憶装置であって、
前記アドレス管理テーブルは、
（ａ）有効なデータが書き込まれた物理ブロックのアドレスを、外部から提供された論理アドレスに対応する形で格納する論物変換テーブルと、
（ｂ）有効なデータが書き込まれていない物理ブロックのアドレスを格納する空きブロックテーブルと
で構成されていることを特徴とする。
【００１９】
本発明の不揮発性記憶装置において、前記アドレス管理テーブルに空きブロックインデックスを設け、この空きブロックインデックスに、前記空きブロックテーブルに格納された物理ブロックのアドレスのうち、次にデータを書き込む物理ブロックのアドレスを格納することが好ましい。なお、前記空きブロックインデックスは、前記空きブロックテーブルに格納された複数の物理ブロックのアドレスを巡回的に選択するようにしても良い。
【００２０】
また本発明の不揮発性記憶装置において、有効なデータが書き込まれていない前記物理ブロックの数が、前記空きブロックテーブルに格納可能な数を超えた場合、前記アドレスに識別フラグを付して前記論物変換テーブルに格納することが好ましい。
【００２１】
また本発明の不揮発性記憶装置において、前記空きブロックテーブルの一部をバッドブロックテーブルとして用い、このバッドブロックテーブルに不良ブロックのアドレスを格納しても良い。同様に、前記アドレス管理テーブルにバッドブロックカウントを設け、このバッドブロックカウントに、前記バッドブロックテーブルに格納された不良ブロックの数を格納するようにしても良い。
【００２２】
次に、本発明の不揮発性記憶装置のアドレス管理方法は、
消去単位である複数の物理ブロックで構成され、かつ前記各物理ブロックにアドレスが付与された不揮発性メモリと、
前記各物理ブロックのアドレスを管理するアドレス管理テーブルを有し、前記アドレスに基づいて前記複数の物理ブロックへのデータの書き込み、または前記複数の物理ブロックからのデータの読み出しを制御するコントローラと
を備えた不揮発性記憶装置のアドレス管理方法であって、
前記コントローラは、
（ａ）有効なデータが書き込まれていない物理ブロックのアドレスを格納した空きブロックテーブルから任意のアドレスを選択して、そのアドレスの物理ブロックにデータを書き込み、
（ｂ）前記データが書き込まれた物理ブロックのアドレスを、有効なデータが書き込まれた物理ブロックのアドレスを管理する論物変換テーブルに、外部から提供された論理アドレスに対応する形で格納する
ことを特徴とする。
【００２３】
本発明の不揮発性記憶装置のアドレス管理方法において、前記論物変換テーブルに物理ブロックのアドレスが書き込まれた後、前記論物変換テーブルに、前記論理アドレスに対応する形で先に格納されていたアドレスの物理ブロックのデータを消去し、その物理ブロックのアドレスを前記空きブロックテーブルに格納することが好ましい。
【発明の効果】
【００２４】
本発明の不揮発性記憶装置は、消去済みテーブルによる空きブロックの管理を廃止し、フラッシュメモリの空きブロックのアドレスをリスト形式で保持すると共に、リスト順に従って書き込み先物理ブロックを順次使用することで、空きブロックの検索時間を実質なくすことができるものである。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について図面を参照して説明する。
（実施の形態１）
図１は本発明の実施の形態１における不揮発性記憶装置のブロック図である。
図１において、不揮発性記憶装置としてのメモリーカード１０２は、主に、データを記憶するための不揮発性メモリからなるフラッシュメモリ１０３と、ホスト１０１とのＩ／Ｆを制御すると共にフラッシュメモリ１０３の制御を行うコントローラで構成されている。
【００２６】
コントローラ１０４には、フラッシュメモリ１０３を管理するための揮発性メモリで構成されたアドレス管理テーブル１０５が内蔵されている。アドレス管理テーブル１０５において、１０６はホスト１０１の指定する論理アドレスに対応するフラッシュメモリ１０３の物理ブロックのアドレスを格納する論物変換テーブル、１０７はフラッシュメモリ１０３のなかでホストの指定する論理アドレスのデータが格納されている物理ブロック以外の複数の物理ブロックが、物理アドレスのリストとして格納されている空きブロックテーブルである。
【００２７】
従って、論物変換テーブル１０６と空きブロックテーブル１０７には、供にフラッシュメモリ１０３の物理ブロックアドレスのリストが格納されているが、互いに重複するデータが格納されることはない。１０８は空きブロックインデックスで、空きブロックテーブル１０７のリストのどの行を選択するかのインデックス情報が格納されている。
【００２８】
前述の図１１に示したように、フラッシュメモリ１０３はデータの消去単位である物理ブロック単位で番号付けされており、それぞれＰＢＡ００００〜ＰＢＡ０１２３までの１０２４個の物理ブロックがある。論物変換テーブル１０６にも空きブロックテーブル１０７にもこの物理ブロックのアドレスである００００〜１０２３が格納されている。
【００２９】
図２は論物変換テーブル１０６と空きブロックテーブル１０７の構成を示した図である。フラッシュメモリ１０３の物理ブロック数は１０２４個であり、２のべき乗個である。これは一般的なメモリ全てについて言えることであり、メモリは普通２のべき乗のアドレスを持つ。これは２のべき乗のアドレスを持つことが最も面積に対する容量の効率が良いからである。従って本実施の形態では、論物変換テーブル１０６にも空きブロックテーブル１０７とを併せて一つの揮発性メモリ上に構成した場合について説明する。
【００３０】
フラッシュメモリ１０３の全ての物理ブロックと同じ容量をメモリーカード１０２が持つわけではなく、実際にはメモリーカード１０２の容量はフラッシュメモリ１０３の容量よりも少なく設定される。これはフラッシュメモリ１０３にある不良ブロックの存在や、物理ブロックのウェアレベリングの問題からそのような構成をとることが一般的である。図２の例では、論理アドレスは０ｘ０００〜０ｘ３Ｅ７（１６進数１２ビットで表記、１０進数表記で０〜９９９）で示されている。すなわちアドレスの０ｘ０００〜０ｘ３Ｅ７までが論物変換テーブル１０６の領域であり、このテーブルには、それぞれ論理アドレスをテーブルのアドレスとしたときの対応する物理ブロックのアドレスがデータとして格納されている。
【００３１】
図２において、論理アドレスの領域に続くアドレス０ｘ３Ｅ８〜０ｘ３ＦＦの領域が空きブロックテーブル１０７であり、ホストの論理アドレスに対応しない物理ブロックのアドレスがリストされている。
【００３２】
論物変換テーブル１０６のワード数と空きブロックテーブル１０７のワード数とを併せたワード数（ここでは０ｘ４００ワード）はフラッシュメモリ１０３の物理ブロック数と等しくなる。これは、有効なデータが書きこまれた物理ブロックについては論物変換テーブルにアドレスがリストされ、有効なデータが書き込まれていない物理ブロックについては空きブロックテーブルにアドレスがリストされるためである。
【００３３】
次に、図３はフラッシュメモリ１０３にデータを書き込む際のコントローラ１０４の制御動作を示すフローチャート、図４（Ａ）、（Ｂ）はデータ書き込みの前と後における論物変換テーブル１０６と空きブロックテーブル１０７の状態を示した図である。以下、図３および図４を用いてメモリーカードにデータを書き込む際のアドレス管理方法について説明する。
【００３４】
図３の書き込みフローに入る前に、ホスト１０１がメモリーカード１０２に対して書き込みのコマンドと書き込みのデータを送る。ここではホスト１０１が論理アドレス０ｘ１００に対してデータを書き込む場合について説明する。
【００３５】
ホスト１０１のコマンドを受けてコントローラ１０４はインデックスの取得を行う（ステップＳ３０１）。具体的には、空きブロックインデックス１０８の値を取得する。ここでは空きブロックインデックス１０８の値が０ｘ００９であるとする。
【００３６】
次に、コントローラ１０４は書き込み先の決定を行う（Ｓ３０２）。具体的には、ステップＳ３０１で取得したインデックスに対応する空きブロックテーブル１０７にアドレスが格納された物理ブロックをフラッシュメモリ１０３の書き込み先として決定する。インデックスが０ｘ００９なので、空きブロックテーブル１０７の開始アドレスである０ｘ３Ｅ８をオフセットとして０ｘ３Ｆ１（＝０ｘ３Ｅ８＋０ｘ００９）に格納された物理ブロックアドレス、つまり図４（Ａ）のアドレス０ｘ３Ｆ１に格納されている０ｘ３２１がフラッシュメモリ１０３の書き込み先物理ブロックのアドレスとなる。この書き込み先決定は、指定されるアドレスのデータを読み出すだけであるため直ぐに決定することができ、従来のような検索動作は必要がなくなる。
【００３７】
次に、コントローラ１０４は、ステップＳ３０２で決定した物理ブロックのアドレス０ｘ３２１に対してホスト１０１から転送されてきたデータを書き込む（Ｓ３０３）。
【００３８】
次に、コントローラ１０４はフラッシュメモリ１０３に残された旧データの消去を行う（Ｓ３０４）。旧データは論物変換テーブル１０６にもともと書き込まれていたアドレスの物理ブロックに存在しているはずなので、図４（Ａ）においてホスト１０１の指定した論理アドレス０ｘ１００に格納されているアドレス０ｘ１２３が旧データの存在するフラッシュメモリ１０３の物理ブロックのアドレスである。この物理ブロックのアドレス０ｘ１２３のデータを消去する。
【００３９】
次にテーブルの更新を行う（Ｓ３０５）。図４（Ｂ）に示すように、論物変換テーブル１０６のホストの指定した論理アドレス０ｘ１００に対応する位置に今回のステップＳ３０３で書き込みを行った物理ブロックのアドレス０ｘ３２１を格納し、空きブロックテーブル１０７のインデックスから指定される位置である０ｘ３Ｆ１に、ステップＳ３０４で消去を行った物理ブロックのアドレス０ｘ１２３を格納する。
【００４０】
最後に、インデックスインクリメントを行う（Ｓ３０６）。具体的には、空きブロックインデックス１０８に格納されているアドレス０ｘ００９を１インクリメントしたアドレス０ｘ００Ａを空きブロックインデックス１０８に格納する。なお、インデックスが空きブロックテーブル１０７の領域を超えてオーバーフローするときにはインデックスの値は０ｘ０００にしてループさせる。このように空きブロックインデックス１０８には、空きブロックテーブル１０７に格納されているアドレスを巡回的に格納する。
【００４１】
このようにしてコントローラ１０４は書き込みを終了する。この後、コントローラ１０４はホスト１０１に対して書き込みの終了を通知することで、ホスト１０１からメモリーカード１０２へのデータの書き込みが終了する。
【００４２】
本実施の形態において、空きブロックテーブル１０７にリストする物理ブロックのアドレス数は２４個に限られており、その数を超える物理ブロックが、論理ブロックに対応する有効なデータがない、または論理ブロックに対応するデータが消去済みで未書き込みの状態である場合は、例えば論物変換テーブル１０６に未書き込みの状態を表すフラグとともに物理ブロックのアドレスを書き込むことによって対応可能である。
【００４３】
図５は、全ての物理ブロックがデータ消去済みの状態における論物変換テーブル１０６を示したものであり、物理ブロックのアドレスの最上位ビットを“１”（１６進数表記で“８”）にして、データ消去済みのブロックであることを表している。図６は上記構成を採用した時のデータ書き込みの前と後における論物変換テーブル１０６と空きブロックテーブル１０７の状態を示した図である。なお、空きブロックインデックス１０８の値は０ｘ０００とする。従って、書き込み開始アドレスはオフセット値０ｘ３Ｅ８+０ｘ０００=０ｘ３Ｅ８となる。
【００４４】
図６に基づいて、簡単に書き込みの際のフローを説明すると、空きブロックインデックス１０８で指定された物理ブロック０ｘ３Ｅ８に対してデータの書き込みを行う。図４の説明ではデータの書き込みに引き続いて旧データの消去を行ったが、図６では全ての物理ブロックが消去済みであるため旧データの消去を行う必要はない。このため、次にテーブルの更新を行う。
【００４５】
図６に矢印で示したように、ホスト１０１の指定した論物変換テーブル１０６の論理アドレス０ｘ０００に対応する位置に、書き込みを行った物理ブロックのアドレス０ｘ３Ｅ８を格納し、代わりに論理アドレス０ｘ０００に格納された物理ブロックのアドレス０ｘ０００（論物変換テーブル１０６では最上位ビットに消去済みのブロックを示す“１”をつけて０ｘ８００が格納されているが、物理ブロックアドレスは最上位ビットの“１”を除いた部分の０ｘ００）を空きブロックインデックス１０８で指定された位置である０ｘ３Ｅ８に格納する。最後にインデックスインクリメントを行い、空きブロックインデックス１０８に格納されている０ｘ０００を１インクリメントした０ｘ００１を空きブロックインデックス１０８に格納する。
【００４６】
以上の動作を繰り返すことにより、物理ブロックでのデータの書き込みと論物変換テーブル１０６および空きブロックテーブル１０７の更新を行う。
（実施の形態２）
【００４７】
本発明の実施の形態２では、新たに、不良ブロックが発生した場合の物理アドレスの管理を、アドレス管理テーブル１０５に追加している。
図７は本実施の形態２における不揮発性記憶装置のブロック図である。図１に示す実施の形態１の構成と異なるのは、アドレス管理テーブル１０５にバッドブロックテーブル７０１とバッドブロックカウント７０２を付加した点である。バッドブロックテーブル７０１は、不良ブロック（バッドブロック）の物理アドレスをリスト形式で保持したものであり、不良ブロックが発生すると空きブロックの数が減るため、空きブロックテーブル１０７の空き部分を利用している。バッドブロックカウント７０２は、不良ブロックの物理ブロック数を保持するものである。
【００４８】
図８は論物変換テーブル１０６と空きブロックテーブル１０７、さらにバッドブロックカウント７０２の構成を示した図である。図８において、図２と同様アドレスの０ｘ０００〜０ｘ３Ｅ７までが論物変換テーブル１０６の領域である。空きブロックテーブル１０７の一部がバッドブロックテーブル７０１に割り当てられており、バッドブロックカウント７０２の数は、バッドブロックテーブル７０１に含まれる不良ブロックのアドレス数と一致する。なお、不良ブロックがない時には、バッドブロックテーブル７０１がなくなるか容量が０になる。
【００４９】
物理ブロックにデータを書き込む際のアドレス管理方法は、基本的には実施の形態１で説明した方法と変わらないが、空きブロックインデックス１０８での処理が異なってくる。すなわち、空きブロックインデックス１０８の値は、（論理アドレスの最大値+１）から（物理アドレスの最大値−バッドブロックの数）までが巡回的に変化する。
【００５０】
例えば、不良ブロックがない場合には（バッドブロックカウントの値は０）、実施の形態１で説明したように空きブロックインデックス１０８の値は、０ｘ３Ｅ８、０ｘ３Ｅ９、・・・０ｘ３ＦＥ、０ｘ３ＦＦと続き、先頭にもどるが、不良ブロックが２つある場合（バッドブロックカウントの値は２）、０ｘ３Ｅ８、０ｘ３Ｅ９、・・・０ｘ３ＦＣ、０ｘ３ＦＤと続き、その後先頭にもどる。
【００５１】
以上説明したように、本実施の形態では、アドレス管理テーブル１０５にバッドブロックテーブル７０１を付加することにより、不良ブロックのアドレスを容易に管理することが可能となる。
【００５２】
なお、上記各実施の形態においては、メモリーカードの全ての論理アドレスを管理できる容量のアドレス管理テーブルを揮発性メモリ上に配置した例について説明したが、それを不揮発性メモリ（データを格納するためのフラッシュメモリ、またはそれ以外の別のFeRAMやRRAM等の不揮発性メモリ）に保持しておき、アドレス管理テーブルの一部分を必要に応じて揮発性メモリにキャッシュして使用する場合についても本発明を適用可能である。そうすることで揮発性メモリの容量を削減することができる。図９は全体を４分割してそのうちの二つの部分を揮発性メモリにキャッシュする場合について示している。この場合には、領域０〜２を選択的に切り替えながらキャッシュし、領域３を常にキャッシュすれば、揮発性メモリの容量を半減することができる。
また、上記各実施の形態においては、アドレス管理テーブルを揮発性メモリ上に配置した例について説明したが、ワード単位で書き換えが可能なメモリであれば本発明に適用可能であるので、FeRAMやRRAM等の不揮発性メモリ上にアドレス管理テーブルを配置してもよい。
【産業上の利用可能性】
【００５３】
本発明にかかる不揮発性記憶装置は、より多くの物理ブロックを有するフラッシュメモリを用いた場合でも書き込み可能な空きブロックを高速に検索できるため、より大容量の不揮発性記憶装置を必要とする動画記録再生装置等のＡＶ機器の記録媒体として有用である。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施の形態１における不揮発性記憶装置のブロック図
【図２】同実施の形態１におけるアドレス管理テーブルの構成を示した図
【図３】同実施の形態１におけるコントローラの書き込み動作を示したフローチャート
【図４】同実施の形態１における書き込み前後のアドレス管理テーブルのアドレスマップを示した図
【図５】同実施の形態１におけるアドレス管理テーブルのアドレスマップの他の例を示した図
【図６】図５のアドレス管理テーブルを用いた書き込み前後のアドレスマップを示した図
【図７】本発明の実施の形態２における不揮発性記憶装置のブロック図
【図８】同実施の形態２におけるアドレス管理テーブルの構成を示した図
【図９】アドレス管理テーブルが複数の領域に分割されて揮発性メモリに格納された例を示す図
【図１０】従来の不揮発性記憶装置のブロック図
【図１１】不揮発性メモリの内部構造を示した図
【図１２】従来の不揮発性記憶装置における論物変換テーブルと消去済みテーブルのアドレスマップを示した図
【図１３】従来の不揮発性記憶装置におけるコンとローラの書き込み動作を示したフローチャート
【図１４】従来の不揮発性記憶装置における書き込み前の論物変換テーブルと消去済みテーブルのアドレスマップを示した図
【図１５】従来の不揮発性記憶装置における書き込み後の論物変換テーブルと消去済みテーブルのアドレスマップを示した図
【符号の説明】
【００５５】
１０１  ホスト
１０２  メモリーカード
１０３  フラッシュメモリ
１０４  コントローラ
１０５  アドレス管理テーブル
１０６  空きブロックテーブル
１０７  消去済みテーブル
１０８  空きブロックインデックス
７０１  バッドブロックテーブル
７０２  バッドブロックカウント
【図１】
2007199828.tif 000003
【図２】
2007199828.tif 000004
【図３】
2007199828.tif 000005
【図４】
2007199828.tif 000006
【図５】
2007199828.tif 000007
【図６】
2007199828.tif 000008
【図７】
2007199828.tif 000009
【図８】
2007199828.tif 000010
【図９】
2007199828.tif 000011
【図１０】
2007199828.tif 000012
【図１１】
2007199828.tif 000013
【図１２】
2007199828.tif 000014
【図１３】
2007199828.tif 000015
【図１４】
2007199828.tif 000016
【図１５】
2007199828.tif 000017