(57)【要約】【課題】不揮発性メモリの長寿命化を図りつつ不揮発性メモリを管理することが可能な管理装置、および管理方法を提供する。【解決手段】電気的にデータの書き込み、読み出し、消去が可能であり、書き込みおよび読み出しはページ単位で行われ、消去は複数のページを含むブロック単位で行われる不揮発性メモリを管理する管理部を備え、管理部は、不揮発性メモリを構成する複数の物理ブロックを、仮想ブロックを有する仮想領域と、仮想領域の不良が発生している物理ブロックを代替する代替ブロックを有する代替領域とに分け、物理ブロックの管理、仮想ブロックの管理、およびユーザデータを一時的に保持する拡張ブロックの管理の３段階の管理単位で不揮発性メモリを管理し、物理ブロックの管理に用いる第１管理情報と、仮想ブロックの管理に用いる第２管理情報と、拡張ブロックの管理に用いる第３管理情報とを、不揮発性メモリに書き込む、管理装置が提供される。【選択図】図１
2012173778.tif 000002
【特許請求の範囲】
【請求項１】
電気的にデータの書き込み、読み出し、消去が可能であり、書き込みおよび読み出しはページ単位で行われ、消去は複数のページを含むブロック単位で行われる不揮発性メモリを管理する管理部を備え、
前記管理部は、
前記不揮発性メモリを構成する複数の物理ブロックを、物理ブロックに対応する仮想ブロックを有する仮想領域と、前記仮想領域に含まれる物理ブロックのうちの不良が発生している物理ブロックを代替する代替ブロックを有する代替領域とに分け、
前記物理ブロックの管理、前記仮想ブロックの管理、および前記仮想領域に含まれる物理ブロックのうちのユーザデータを一時的に保持する物理ブロックである拡張ブロックの管理の３段階の管理単位で前記不揮発性メモリを管理し、
前記物理ブロックの管理に用いる第１管理情報と、前記仮想ブロックの管理に用いる第２管理情報と、前記拡張ブロックの管理に用いる第３管理情報とを、前記不揮発性メモリに書き込む、管理装置。
【請求項２】
前記管理部は、
前記仮想領域の一の物理ブロックに不良が生じている場合には、前記不良が生じている物理ブロックである不良ブロックと対応する仮想ブロックと、前記代替領域の一の代替ブロックとを対応付け、前記仮想ブロックと前記代替ブロックとの対応関係を示す情報を、前記第１管理情報として前記不揮発性メモリに書き込み、
前記第１管理情報を用いて前記物理ブロックの管理を行う、請求項１に記載の管理装置。
【請求項３】
前記代替領域は、前記代替ブロックと、前記第１管理情報が記憶される物理ブロックである第１管理ブロックとに分類され、
前記管理部は、前記第１管理ブロックへの前記第１管理情報の書き込みが完了した場合には、前記第１管理情報の書き込みが完了したことを示す第１完了情報を、前記第１管理ブロックに設定する、請求項２に記載の管理装置。
【請求項４】
前記管理部は、前記第１管理情報として、使用された代替ブロックのアドレスと前記代替ブロックと対応する前記仮想ブロックのアドレスとを対応付けた情報と、次に不良ブロックが発生した場合において割り当てる前記代替ブロックのアドレスと、代替された前記不良ブロックのアドレスとを書き込む、請求項２に記載の管理装置。
【請求項５】
複数の前記仮想ブロックから構成される前記仮想領域は、ユーザデータを記憶する物理ブロックであるユーザデータブロックと、前記拡張ブロックと、消去がされた物理ブロックである空きブロックと、前記第２管理情報が記憶される物理ブロックである第２管理ブロックとに分類され、
前記管理部は、
ユーザデータを、前記ユーザデータのアドレス空間を前記仮想ブロックのサイズ単位に分割した論理ブロックで管理し、
前記論理ブロックと前記仮想ブロックとの対応関係を示す第１変換情報と、前記拡張ブロックを示す情報とを、前記第２管理情報として前記第２管理ブロックに書き込み、
前記第２管理情報を用いて前記仮想ブロックの管理を行う、請求項１〜４のいずれか１項に記載の管理装置。
【請求項６】
前記管理部は、
前記第２管理情報として、前記第１変換情報と、前記拡張ブロックを示す情報としての前記拡張ブロックに割り当てられた仮想ブロックアドレスと、前記空きブロックのアドレスと、次に書き込みを行う仮想ブロックのアドレスと、消去を行う仮想ブロックのアドレスとを書き込み、
前記第２管理ブロックへの前記第２管理情報の書き込みが完了した場合には、前記第２管理情報の書き込みが完了したことを示す第２完了情報を、前記第２管理ブロックに設定し、
前記第２管理情報における前記消去を行う仮想ブロックのアドレスに基づいて、対応する仮想ブロックを消去する、請求項５に記載の管理装置。
【請求項７】
前記管理部は、前記第２管理ブロックに前記第２管理情報が記憶されているときに、前記第２管理情報を書き込む場合には、記憶されている第２管理情報と新たに書き込む第２管理情報との差分を示す差分情報を、前記第２管理ブロックに書き込む、請求項５に記載の管理装置。
【請求項８】
前記拡張ブロックは、
前記ユーザデータを前記ユーザデータブロックに記憶させる前に一時的に記憶する物理ブロックであるキャッシュブロックと、前記キャッシュブロックに記憶した前記ユーザデータを前記ユーザデータブロックに書き込む処理であるライトバック処理の途中の物理ブロックである第１途中ブロックと、静的ウェアレベリング処理の途中の物理ブロックである第２途中ブロックと、前記第３管理情報が記憶される物理ブロックである第３管理ブロックとに分類され、
前記管理部は、
前記論理ブロックと前記キャッシュブロックとの対応関係を示す第２変換情報と、前記キャッシュブロック、前記第１途中ブロック、および前記第２途中ブロックそれぞれを示す情報とを、前記第３管理情報として前記第３管理ブロックに書き込み、
前記第３管理情報を用いて前記拡張ブロックの管理を行う、請求項５に記載の管理装置。
【請求項９】
前記管理部は、
前記論理ブロックおよび前記キャッシュブロックそれぞれを、前記不揮発性メモリの最小書き込みサイズ以上、かつ前記仮想ブロックのサイズ未満のトランスレーションユニット単位に分割し、
前記第３管理情報として、前記論理ブロックのトランスレーションユニットと前記キャッシュブロックのトランスレーションユニットとの対応関係を示す第３変換情報をさらに前記不揮発性メモリに書き込む、請求項８に記載の管理装置。
【請求項１０】
前記管理部は、
前記第３管理ブロックへの前記第３管理情報の書き込みが完了した場合には、前記第３管理情報の書き込みが完了したことを示す第３完了情報を、前記第３管理ブロックに設定し、
前記第３管理情報の前記第２変換情報に基づいて、使用されている前記キャッシュブロックの数が所定の数に達したかを判定し、
所定の数に達したと判定した場合には、更新頻度が低い論理ブロックに対応するキャッシュブロック内のユーザデータに対するライトバック処理を行う、請求項８に記載の管理装置。
【請求項１１】
前記管理部は、
ＬＲＵ（Least  Recently  Used）制御を用いて前記ライトバック処理の対象となるキャッシュブロックを選択する、
または、
書き込みを行うユーザデータを論理ブロック単位に分割して、前記論理ブロック単位の書き込み回数を保持し、前記論理ブロック単位の書き込み回数が最小の論理ブロックに対応するキャッシュブロックを、前記ライトバック処理の対象となるキャッシュブロックとして選択する、請求項１０に記載の管理装置。
【請求項１２】
前記管理部は、
前記拡張ブロックへとデータを書き込むときにエラーが発生した場合には、
エラーが発生した前記拡張ブロックに書き込んだデータを保持し、
前記第２管理情報に記録された、次に書き込みを行う仮想ブロックのアドレスの情報に基づいて、対応する仮想ブロックに継続してデータを書き込み、
エラーが発生した前記拡張ブロックに書き込んだデータと、継続して書き込んだ前記仮想ブロックのデータとを用いて、前記ライトバック処理を行う、請求項８に記載の管理装置。
【請求項１３】
前記仮想領域では、前記ユーザデータブロックを構成する物理ブロックの数よりも、前記拡張ブロックを構成する物理ブロックの数の方が大きい、請求項５に記載の管理装置。
【請求項１４】
前記管理部は、前記拡張ブロックに書き込むユーザデータを、連続した論理アドレス順に書き込む、請求項８に記載の管理装置。
【請求項１５】
前記管理部は、
前記不揮発性メモリを構成する複数の物理ブロックを、複数の前記仮想領域と前記仮想領域に対応する複数の代替領域とに分けて管理し、
前記不揮発性メモリの管理を開始する場合には、特定の仮想領域に記憶された前記第２管理情報を読み出し、
読み出された前記第２管理情報に記録されている、他の仮想領域それぞれに対応する前記第２管理情報が記憶される場所の情報に基づいて、前記他の仮想領域それぞれに対応する前記第２管理情報を読み出す、請求項５に記載の管理装置。
【請求項１６】
前記管理部は、前記不揮発性メモリの管理を開始する場合には、
前記不揮発性メモリから前記第１管理情報、前記第２管理情報、および前記第３管理情報を読み出し、
読み出した前記第１管理情報に基づく書き込みエラーの判定と、読み出した前記第２管理情報に基づく書き込みエラーの判定と、読み出した前記第３管理情報および前記拡張ブロックにおける最終書き込み済みのページアドレスとに基づく書き込みエラーの判定と、をそれぞれ行うことによって、書き込みエラーを判定し、
書き込みエラーが発生したと判定した場合には、中断した書き込みまたは消去に対応する処理中のデータを無効なデータとし、前記不揮発性メモリを処理前の状態に復旧させる、請求項８に記載の管理装置。
【請求項１７】
前記管理部は、
１つの不揮発性メモリを管理する場合には、１つの仮想ブロックを複数の物理ブロックに対応付け、
複数の同種の不揮発性メモリを管理する場合には、１つの仮想ブロックを、複数の不揮発性メモリそれぞれの対応する物理ブロックに対応付ける、請求項１〜４のいずれか１項に記載の管理装置。
【請求項１８】
前記不揮発性メモリよりもデータの書き込み、読み出しをより高速に行うことが可能な記録媒体をさらに備え、
前記管理部は、
前記不揮発性メモリの管理を開始する場合には、前記不揮発性メモリに記憶された前記管理情報を前記不揮発性メモリから読み出して、読み出した前記管理情報を前記記録媒体に記録し、
前記記録媒体に記録した前記管理情報に基づいて、前記不揮発性メモリを管理する、請求項１〜４のいずれか１項に記載の管理装置。
【請求項１９】
前記不揮発性メモリをさらに備える、請求項１〜４のいずれか１項に記載の管理装置。
【請求項２０】
電気的にデータの書き込み、読み出し、消去が可能であり、書き込みおよび読み出しはページ単位で行われ、消去は複数のページを含むブロック単位で行われる不揮発性メモリを管理するステップを有し、
前記管理するステップは、
前記不揮発性メモリを構成する複数の物理ブロックを、物理ブロックに対応する仮想ブロックを有する仮想領域と、前記仮想領域に含まれる物理ブロックのうちの不良が発生している物理ブロックを代替する代替ブロックを有する代替領域とに分け、
前記物理ブロックの管理、前記仮想ブロックの管理、および前記仮想領域に含まれる物理ブロックのうちのユーザデータを一時的に保持する物理ブロックである拡張ブロックの管理の３段階の管理単位で前記不揮発性メモリを管理し、
前記物理ブロックの管理に用いる第１管理情報と、前記仮想ブロックの管理に用いる第２管理情報と、前記拡張ブロックの管理に用いる第３管理情報とを、前記不揮発性メモリに書き込む、管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、および管理方法に関する。
【背景技術】
【０００２】
近年、ＮＡＮＤフラッシュメモリ（flash  memory）などのような電気的にデータの書き込み、読み出し、消去が可能な不揮発性メモリ（nonvolatile  memory）の大容量化が進んでいる。ここで、ＮＡＮＤフラッシュメモリのような上記不揮発性メモリにおける書き込みは、各ビットを“１”から“０”へと一方向に書き換えることによって行われる。そのため、上記不揮発性メモリにおいて新たにデータを書き込む場合には、一旦、消去を行って全てのビットを“１”にした上で、書き込みを行う必要がある。また、上記不揮発性メモリにおいては、データの書き込み／読み出しの最小単位は「ページ」であり、消去の最小単位は、複数のページが集まった「ブロック」である。
【０００３】
このような中、不揮発性メモリにおけるデータの書き換えの効率化を図るための技術が開発されている。ブロックサイズの整数分の１かつページサイズの整数倍のトランスレーションユニット単位で論理アドレス−物理アドレス変換を行って、不揮発性メモリのアクセス管理を行い、ブロックの内容のうち、使用中の物理トランスレーションユニットを、別の未使用の物理トランスレーションユニットがあるブロックにコピーし、元のブロックを消去することにより、元のブロックに含まれていた無効の物理トランスレーションユニットの数だけ、新たに未使用の物理トランスレーションユニットを増やす技術としては、例えば、特許文献１が挙げられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１１６６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば特許文献１に示すような不揮発性メモリにおけるデータの書き換えの効率化を図るための従来の技術（以下、単に「従来の技術」と示す。）は、ブロックサイズの整数分の１かつページサイズの整数倍のトランスレーションユニット単位で不揮発性メモリを管理する。また、従来の技術は、不揮発性メモリの拡張領域に、対応する論理トランスレーションユニット番号、およびブロックの書き込み順序をあらわすシーケンシャル番号を含む管理情報を書き込み、当該管理情報に基づいて論理アドレス−物理アドレス変換テーブルを構築して管理を行う。
【０００６】
ここで、従来の技術を用いる場合には、例えば不揮発性メモリにおけるブロックサイズが増加した場合や、不揮発性メモリの記憶容量が増加した場合には、管理情報も肥大化する。ＮＡＮＤフラッシュメモリのような不揮発性メモリにはデータの書き換え回数に上限があるため、管理情報の肥大化により管理情報の書き込み量が増加した場合には、不揮発性メモリの寿命に影響を及ぼす恐れがある。よって、従来の技術を用いたとしても、不揮発性メモリの長寿命化を図ることができるとは限らない。
【０００７】
本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、不揮発性メモリの長寿命化を図りつつ不揮発性メモリを管理することが可能な、新規かつ改良された管理装置、および管理方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の第１の観点によれば、電気的にデータの書き込み、読み出し、消去が可能であり、書き込みおよび読み出しはページ単位で行われ、消去は複数のページを含むブロック単位で行われる不揮発性メモリを管理する管理部を備え、上記管理部は、上記不揮発性メモリを構成する複数の物理ブロックを、物理ブロックに対応する仮想ブロックを有する仮想領域と、上記仮想領域に含まれる物理ブロックのうちの不良が発生している物理ブロックを代替する代替ブロックを有する代替領域とに分け、上記物理ブロックの管理、上記仮想ブロックの管理、および上記仮想領域に含まれる物理ブロックのうちのユーザデータを一時的に保持する物理ブロックである拡張ブロックの管理の３段階の管理単位で上記不揮発性メモリを管理し、上記物理ブロックの管理に用いる第１管理情報と、上記仮想ブロックの管理に用いる第２管理情報と、上記拡張ブロックの管理に用いる第３管理情報とを、上記不揮発性メモリに書き込む、管理装置が提供される。
【０００９】
かかる構成により、不揮発性メモリの長寿命化を図りつつ不揮発性メモリを管理することができる。
【００１０】
また、上記管理部は、上記仮想領域の一の物理ブロックに不良が生じている場合には、上記不良が生じている物理ブロックである不良ブロックと対応する仮想ブロックと、上記代替領域の一の代替ブロックとを対応付け、上記仮想ブロックと上記代替ブロックとの対応関係を示す情報を、上記第１管理情報として上記不揮発性メモリに書き込み、上記第１管理情報を用いて上記物理ブロックの管理を行ってもよい。
【００１１】
また、上記代替領域は、上記代替ブロックと、上記第１管理情報が記憶される物理ブロックである第１管理ブロックとに分類され、上記管理部は、上記第１管理ブロックへの上記第１管理情報の書き込みが完了した場合には、上記第１管理情報の書き込みが完了したことを示す第１完了情報を、上記第１管理ブロックに設定してもよい。
【００１２】
また、上記管理部は、上記第１管理情報として、使用された代替ブロックのアドレスと上記代替ブロックと対応する上記仮想ブロックのアドレスとを対応付けた情報と、次に不良ブロックが発生した場合において割り当てる上記代替ブロックのアドレスと、代替された上記不良ブロックのアドレスとを書き込んでもよい。
【００１３】
また、複数の上記仮想ブロックから構成される上記仮想領域は、ユーザデータを記憶する物理ブロックであるユーザデータブロックと、上記拡張ブロックと、消去がされた物理ブロックである空きブロックと、上記第２管理情報が記憶される物理ブロックである第２管理ブロックとに分類され、上記管理部は、ユーザデータを、上記ユーザデータのアドレス空間を上記仮想ブロックのサイズ単位に分割した論理ブロックで管理し、上記論理ブロックと上記仮想ブロックとの対応関係を示す第１変換情報と、上記拡張ブロックを示す情報とを、上記第２管理情報として上記第２管理ブロックに書き込み、上記第２管理情報を用いて上記仮想ブロックの管理を行ってもよい。
【００１４】
また、上記管理部は、上記第２管理情報として、上記第１変換情報と、上記拡張ブロックを示す情報としての上記拡張ブロックに割り当てられた仮想ブロックアドレスと、上記空きブロックのアドレスと、次に書き込みを行う仮想ブロックのアドレスと、消去を行う仮想ブロックのアドレスとを書き込み、上記第２管理ブロックへの上記第２管理情報の書き込みが完了した場合には、上記第２管理情報の書き込みが完了したことを示す第２完了情報を、上記第２管理ブロックに設定し、上記第２管理情報における上記消去を行う仮想ブロックのアドレスに基づいて、対応する仮想ブロックを消去してもよい。
【００１５】
また、上記管理部は、上記第２管理ブロックに上記第２管理情報が記憶されているときに、上記第２管理情報を書き込む場合には、記憶されている第２管理情報と新たに書き込む第２管理情報との差分を示す差分情報を、上記第２管理ブロックに書き込んでもよい。
【００１６】
また、上記拡張ブロックは、上記ユーザデータを上記ユーザデータブロックに記憶させる前に一時的に記憶する物理ブロックであるキャッシュブロックと、上記キャッシュブロックに記憶した上記ユーザデータを上記ユーザデータブロックに書き込む処理であるライトバック処理の途中の物理ブロックである第１途中ブロックと、静的ウェアレベリング処理の途中の物理ブロックである第２途中ブロックと、上記第３管理情報が記憶される物理ブロックである第３管理ブロックとに分類され、上記管理部は、上記論理ブロックと上記キャッシュブロックとの対応関係を示す第２変換情報と、上記キャッシュブロック、上記第１途中ブロック、および上記第２途中ブロックそれぞれを示す情報とを、上記第３管理情報として上記第３管理ブロックに書き込み、上記第３管理情報を用いて上記拡張ブロックの管理を行ってもよい。
【００１７】
また、上記管理部は、上記論理ブロックおよび上記キャッシュブロックそれぞれを、上記不揮発性メモリの最小書き込みサイズ以上、かつ上記仮想ブロックのサイズ未満のトランスレーションユニット単位に分割し、上記第３管理情報として、上記論理ブロックのトランスレーションユニットと上記キャッシュブロックのトランスレーションユニットとの対応関係を示す第３変換情報をさらに上記不揮発性メモリに書き込んでもよい。
【００１８】
また、上記管理部は、上記第３管理ブロックへの上記第３管理情報の書き込みが完了した場合には、上記第３管理情報の書き込みが完了したことを示す第３完了情報を、上記第３管理ブロックに設定し、上記第３管理情報の上記第２変換情報に基づいて、使用されている上記キャッシュブロックの数が所定の数に達したかを判定し、所定の数に達したと判定した場合には、更新頻度が低い論理ブロックに対応するキャッシュブロック内のユーザデータに対するライトバック処理を行ってもよい。
【００１９】
また、上記管理部は、ＬＲＵ（Least  Recently  Used）制御を用いて上記ライトバック処理の対象となるキャッシュブロックを選択する、または、書き込みを行うユーザデータを論理ブロック単位に分割して、上記論理ブロック単位の書き込み回数を保持し、上記論理ブロック単位の書き込み回数が最小の論理ブロックに対応するキャッシュブロックを、上記ライトバック処理の対象となるキャッシュブロックとして選択してもよい。
【００２０】
また、上記管理部は、上記拡張ブロックへとデータを書き込むときにエラーが発生した場合には、エラーが発生した上記拡張ブロックに書き込んだデータを保持し、上記第２管理情報に記録された、次に書き込みを行う仮想ブロックのアドレスの情報に基づいて、対応する仮想ブロックに継続してデータを書き込み、エラーが発生した上記拡張ブロックに書き込んだデータと、継続して書き込んだ上記仮想ブロックのデータとを用いて、上記ライトバック処理を行ってもよい。
【００２１】
また、上記仮想領域では、上記ユーザデータブロックを構成する物理ブロックの数よりも、上記拡張ブロックを構成する物理ブロックの数の方が大きくてもよい。
【００２２】
また、上記管理部は、上記拡張ブロックに書き込むユーザデータを、連続した論理アドレス順に書き込んでもよい。
【００２３】
また、上記管理部は、上記不揮発性メモリを構成する複数の物理ブロックを、複数の上記仮想領域と上記仮想領域に対応する複数の代替領域とに分けて管理し、上記不揮発性メモリの管理を開始する場合には、特定の仮想領域に記憶された上記第２管理情報を読み出し、読み出された上記第２管理情報に記録されている、他の仮想領域それぞれに対応する上記第２管理情報が記憶される場所の情報に基づいて、上記他の仮想領域それぞれに対応する上記第２管理情報を読み出してもよい。
【００２４】
また、上記管理部は、上記不揮発性メモリの管理を開始する場合には、上記不揮発性メモリから上記第１管理情報、上記第２管理情報、および上記第３管理情報を読み出し、読み出した上記第１管理情報に基づく書き込みエラーの判定と、読み出した上記第２管理情報に基づく書き込みエラーの判定と、読み出した上記第３管理情報および上記拡張ブロックにおける最終書き込み済みのページアドレスとに基づく書き込みエラーの判定と、をそれぞれ行うことによって、書き込みエラーを判定し、書き込みエラーが発生したと判定した場合には、中断した書き込みまたは消去に対応する処理中のデータを無効なデータとし、上記不揮発性メモリを処理前の状態に復旧させてもよい。
【００２５】
また、上記管理部は、１つの不揮発性メモリを管理する場合には、１つの仮想ブロックを複数の物理ブロックに対応付け、複数の同種の不揮発性メモリを管理する場合には、１つの仮想ブロックを、複数の不揮発性メモリそれぞれの対応する物理ブロックに対応付けてもよい。
【００２６】
また、上記不揮発性メモリよりもデータの書き込み、読み出しをより高速に行うことが可能な記録媒体をさらに備え、上記管理部は、上記不揮発性メモリの管理を開始する場合には、上記不揮発性メモリに記憶された上記管理情報を上記不揮発性メモリから読み出して、読み出した上記管理情報を上記記録媒体に記録し、上記記録媒体に記録した上記管理情報に基づいて、上記不揮発性メモリを管理してもよい。
【００２７】
また、上記不揮発性メモリをさらに備えてもよい。
【００２８】
上記目的を達成するために、本発明の第２の観点によれば、電気的にデータの書き込み、読み出し、消去が可能であり、書き込みおよび読み出しはページ単位で行われ、消去は複数のページを含むブロック単位で行われる不揮発性メモリを管理するステップを有し、上記管理するステップは、上記不揮発性メモリを構成する複数の物理ブロックを、物理ブロックに対応する仮想ブロックを有する仮想領域と、上記仮想領域に含まれる物理ブロックのうちの不良が発生している物理ブロックを代替する代替ブロックを有する代替領域とに分け、上記物理ブロックの管理、上記仮想ブロックの管理、および上記仮想領域に含まれる物理ブロックのうちのユーザデータを一時的に保持する物理ブロックである拡張ブロックの管理の３段階の管理単位で上記不揮発性メモリを管理し、上記物理ブロックの管理に用いる第１管理情報と、上記仮想ブロックの管理に用いる第２管理情報と、上記拡張ブロックの管理に用いる第３管理情報とを、上記不揮発性メモリに書き込む、管理方法が提供される。
【００２９】
かかる方法を用いることにより、不揮発性メモリの長寿命化を図りつつ不揮発性メモリを管理することができる。
【発明の効果】
【００３０】
本発明によれば、不揮発性メモリの長寿命化を図りつつ不揮発性メモリを管理することができる。
【図面の簡単な説明】
【００３１】
【図１】本発明の実施形態に係る管理装置における不揮発性メモリの管理を説明するための説明図である。
【図２】本発明の実施形態に係る管理装置における不揮発性メモリの管理を説明するための説明図である。
【図３】本発明の実施形態に係る管理装置における不揮発性メモリの管理に係る処理の概要を説明するための説明図である。
【図４】本発明の実施形態に係る管理装置における物理ブロックの管理の一例を説明するための説明図である。
【図５】本発明の実施形態に係る管理装置が管理する不揮発性メモリの第１管理ブロックの一例を示す説明図である。
【図６】本発明の実施形態に係る管理装置の不揮発性メモリの管理における、仮想ブロックと物理ブロックとの対応関係の一例を示す説明図である。
【図７】本発明の実施形態に係る管理装置の不揮発性メモリの管理における、仮想ブロックと物理ブロックとの対応関係の一例を示す説明図である。
【図８】本発明の実施形態に係る管理装置における仮想ブロックの管理の一例を説明するための説明図である。
【図９】本発明の実施形態に係る管理装置が管理する不揮発性メモリの第２管理ブロックの一例を示す説明図である。
【図１０】本発明の実施形態に係る管理装置における仮想ブロックの管理の他の例を説明するための説明図である。
【図１１】本発明の実施形態に係る管理装置における拡張ブロックの管理の一例を説明するための説明図である。
【図１２】本発明の実施形態に係る論理ブロックのトランスレーションユニットと、キャッシュブロックのトランスレーションユニットとの対応付けの一例を示す説明図である。
【図１３】本発明の実施形態に係る管理装置が管理する不揮発性メモリの第３管理ブロックの一例を示す説明図である。
【図１４】本発明の実施形態に係る管理装置における不揮発性メモリの管理開始時における処理の一例を示す流れ図である。
【図１５】本発明の実施形態に係る管理装置における不揮発性メモリの管理開始時における処理の他の例を示す流れ図である。
【図１６】本発明の実施形態に係る管理装置における書き込み処理の一例を示す流れ図である。
【図１７】本発明の実施形態に係る管理装置における書き込み処理の他の例を示す流れ図である。
【図１８】本発明の実施形態に係る管理装置におけるライトバック処理の一例を示す流れ図である。
【図１９】本発明の実施形態に係る管理装置におけるライトバック処理の他の例を示す流れ図である。
【図２０】本発明の実施形態に係る管理装置におけるライトバック処理の他の例を示す流れ図である。
【図２１】本発明の実施形態に係る論理ブロックのトランスレーションユニットと、キャッシュブロックのトランスレーションユニットとの対応付けの他の例を示す説明図である。
【図２２】本発明の実施形態に係る管理装置におけるライトバック処理の他の例を示す流れ図である。
【図２３】本発明の実施形態に係る管理装置におけるエラー回復処理の一例を示す流れ図である。
【図２４】本発明の実施形態に係る管理装置におけるエラー回復処理の他の例を示す流れ図である。
【図２５】本発明の実施形態に係る管理装置の構成の一例を示すブロック図である。
【図２６】本発明の実施形態に係る管理装置のハードウェア構成の一例を示す説明図である。
【発明を実施するための形態】
【００３２】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００３３】
また、以下では、下記に示す順序で説明を行う。
１．本発明の実施形態に係る管理方法
２．本発明の実施形態に係る管理装置
３．本発明の実施形態に係るプログラム
【００３４】
（本発明の実施形態に係る管理方法）
本発明の実施形態に係る管理装置（以下、「管理装置１００」と示す場合がある。）の構成について説明する前に、本発明の実施形態に係る不揮発性メモリの管理方法について説明する。以下では、管理装置１００が、本発明の実施形態に係る管理方法に係る処理を行うものとして説明する。また、以下では、本発明の実施形態に係る管理装置１００の管理対象の不揮発性メモリが、ＮＡＮＤフラッシュメモリである場合を例に挙げて説明する。なお、本発明の実施形態に係る管理装置１００の管理対象の不揮発性メモリは、ＮＡＮＤ型のフラッシュメモリに限られない。例えば、管理装置１００は、電気的にデータの書き込み、読み出し、消去が可能であり、書き込みおよび読み出しのサイズと、消去のサイズとが異なる、任意の不揮発性メモリを、管理対象の不揮発性メモリとすることが可能である。
【００３５】
［本発明の実施形態に係る管理方法の概要］
上述したように、従来の技術のように、不揮発性メモリの管理に用いる管理情報の肥大化により管理情報の書き込み量が増加した場合には、不揮発性メモリの寿命に影響を及ぼす恐れがある。また、管理情報の肥大化により管理情報の書き込み量が増加した場合には、管理情報を不揮発性メモリに書き込む際に要する時間が長くなることから、不揮発性メモリにおけるデータの読み出しやデータの書き込み、消去のパフォーマンスが低下する恐れがある。
【００３６】
そこで、本発明の実施形態に係る管理装置１００は、不揮発性メモリを複数段階で管理し、管理単位ごとの管理情報を不揮発性メモリに保存する。より具体的には、管理装置１００は、例えば、物理ブロックの管理、仮想ブロックの管理、および拡張ブロックの管理という３段階の管理単位で不揮発性メモリを管理する。そして、管理装置１００は、物理ブロックの管理に用いる第１管理情報と、仮想ブロックの管理に用いる第２管理情報と、拡張ブロックの管理に用いる第３管理情報とを、不揮発性メモリに書き込むことによって、第１管理情報、第２管理情報、および第３管理情報（以下、総称して「管理情報」と示す場合がある。）それぞれを不揮発性メモリに保存する。
【００３７】
上記のように、不揮発性メモリを複数段階で管理することによって、本発明の実施形態に係る各段階の管理に用いる管理単位ごとの管理情報それぞれのサイズは、従来の技術に係る管理情報のサイズよりもより小さくなる。よって、管理装置１００は、管理単位ごとの管理情報を不揮発性メモリに保存することによって、従来の技術よりも不揮発性メモリに管理情報を保存する際の書き込み量を減らすことが可能となり、また、不揮発性メモリに保存された管理情報を用いて不揮発性メモリを管理することが可能となる。
【００３８】
したがって、管理装置１００は、不揮発性メモリの長寿命化を図りつつ、不揮発性メモリを管理することができる。また、管理装置１００は、管理情報のサイズを従来の技術に係る管理情報のサイズよりも小さくすることが可能であるので、従来の技術を用いる場合において例えば管理情報を書き込むときに生じうる、パフォーマンスの低下を防止することができる。
【００３９】
以下、より具体的に、本発明の実施形態に係る管理方法について説明する。以下では、管理装置１００が、物理ブロックの管理、仮想ブロックの管理、および拡張ブロックの管理という３段階の管理単位で不揮発性メモリを管理する場合を例に挙げて、本発明の実施形態に係る管理方法について説明する。なお、本発明の実施形態に係る管理方法は、３段階の管理単位で不揮発性メモリを管理することに限られない。例えば、管理装置１００は、管理単位を２段階（例えば、物理ブロックの管理と、拡張ブロックの管理を含む仮想ブロックの管理とを行う場合）、または４段階以上（例えば、さらに空きブロックＶＦＢの管理を行う場合）とすることも可能である。上記の場合であっても、管理装置１００は、従来の技術よりも不揮発性メモリに管理情報を保存する際の書き込み量を減らすことができ、また、不揮発性メモリに保存された管理情報を用いて不揮発性メモリを管理することができる。
【００４０】
図１、図２は、本発明の実施形態に係る管理装置１００における不揮発性メモリの管理を説明するための説明図である。ここで、図１は、例えば、画像（動画像／静止画像）や音声（音楽も含む）などを示すコンテンツデータや、テキストデータ、アプリケーションデータなどの不揮発性メモリに保存されるデータ（以下、「ユーザデータ」と示す。）が不揮発性メモリに書き込まれているときにおける、不揮発性メモリの状態の一例を示している。また、図２は、不揮発性メモリにユーザデータが書き込まれていない、不揮発性メモリの初期状態を示している。
【００４１】
図１に示すように、不揮発性メモリは、複数の物理ブロックＰＢから構成される。管理装置１００は、不揮発性メモリを、仮想領域Ａ１と、代替領域Ａ２とに分ける。ここで、代替領域Ａ２とは、仮想領域Ａ１に含まれる物理ブロックのうちの不良が発生している物理ブロック（以下、「不良ブロック」と示す。）を代替する代替ブロックを有する領域である。本発明の実施形態に係る代替処理については、後述する。
【００４２】
また、以下では、仮想領域Ａ１に含まれる物理ブロックを「仮想ブロック」（または「ＶＢ」）と示す場合がある。なお、本発明の実施形態に係る仮想ブロックと、仮想領域Ａ１を構成する物理ブロックＰＢとは、一対一に対応していてもよいし、一対多に対応していてもよい。つまり、本発明の実施形態に係る仮想ブロックのサイズは、物理ブロックＰＢのサイズと一致していてもよいし、物理ブロックＰＢのサイズの整数倍であってもよい。以下では、仮想ブロックと物理ブロックＰＢとが一対一に対応する場合を主に例に挙げて説明する。
【００４３】
まず、仮想領域Ａ１について説明する。仮想領域Ａ１は、ユーザデータブロックＶＵＢと、拡張ブロックＥＢと、空きブロックＶＦＢと、第２管理ブロックＶＭＢとに分類される。ここで、ユーザデータブロックＶＵＢは、ユーザデータを記憶する物理ブロックであり、ユーザデータブロックＶＵＢの総サイズは、例えばユーザがデータを書き込むことが可能な容量を示す。また、拡張ブロックＥＢは、ユーザデータを一時的に保持する物理ブロックである。また、空きブロックＶＦＢは、データの消去がされた物理ブロック（すなわち、データが書き込まれていない物理ブロック）であり、第２管理ブロックＶＭＢは、第２管理情報が記憶される物理ブロックである。
【００４４】
なお、図１では、ユーザデータブロックＶＵＢと拡張ブロックＥＢとが、複数の物理ブロックから構成されているように示しているが、図１に示すユーザデータブロックＶＵＢ、拡張ブロックＥＢを構成する物理ブロックそれぞれを、ユーザデータブロックＶＵＢ、拡張ブロックＥＢと捉えてもよい。また、図１に示す空きブロックＶＦＢについても、図１に示すユーザデータブロックＶＵＢ、拡張ブロックＥＢと同様である。
【００４５】
また、ユーザデータブロックＶＵＢを構成する物理ブロックＰＢの数と、拡張ブロックＥＢを構成する物理ブロックＰＢの数とは、例えば管理装置１００が設定する。ここで、管理装置１００は、ユーザデータブロックＶＵＢに係る物理ブロックＰＢの数と、拡張ブロックＥＢに係る物理ブロックＰＢの数とを、予め規定された数に設定するが、管理装置１００における処理は、上記に限られない。例えば、管理装置１００は、操作部（後述する）から伝達されるユーザ操作に応じた操作信号、または、リモート・コントローラなどの外部操作デバイスから送信されたユーザ操作に応じた外部操作信号に基づいて、ユーザデータブロックＶＵＢに係る物理ブロックＰＢの数と、拡張ブロックＥＢに係る物理ブロックＰＢの数とを設定（または再設定）することも可能である。
【００４６】
ここで、例えば、ユーザデータブロックＶＵＢを構成する物理ブロックＰＢの数よりも、拡張ブロックＥＢを構成する物理ブロックＰＢの数の方が大きく設定された場合には、管理装置１００は、ライトバック処理が行われる頻度の低減と、不揮発性メモリの書き換え頻度の低減とを図ることができる。よって、上記の場合には、管理装置１００は、不揮発性メモリの長寿命化を図ることができるので、管理対象の不揮発性メモリが含まれるメモリシステムが使用可能な期間をより長くすることがきる。また、不揮発性メモリの書き換え頻度の低減を図ることによって、管理装置１００は、書き換え処理が行われることより生じうる速度低下などの不揮発性メモリのパフォーマンス低下を抑制することができる。
【００４７】
拡張ブロックＥＢは、キャッシュブロックＥＣＢと、ライトバックブロックＥＷＢＢ（第１途中ブロック）と、ウェアレベリングブロックＥＷＬＢ（第２途中ブロック）と、第３管理ブロックＥＭＢとに分類される。ここで、キャッシュブロックＥＣＢは、ユーザデータをユーザデータブロックＶＵＢに記憶させる前に一時的に記憶する物理ブロックである。また、ライトバックブロックＥＷＢＢは、キャッシュブロックＥＣＢに記憶したユーザデータをユーザデータブロックＶＵＢに書き込む処理であるライトバック処理の途中の物理ブロックである。また、ウェアレベリングブロックＥＷＬＢは、静的ウェアレベリング処理の途中の物理ブロックであり、第３管理ブロックＥＭＢは、第３管理情報が記憶される物理ブロックである。
【００４８】
仮想領域Ａ１は、例えば上記のような構成を有する。次に、代替領域Ａ２について説明する。
【００４９】
代替領域Ａ２は、代替処理（後述する）に用いられる代替ブロックＰＡＢと、第１管理情報が記憶される物理ブロックである第１管理ブロックＰＭＢとに分類される。
【００５０】
管理装置１００は、例えば図１に示す構成の物理ブロックＰＢ、仮想ブロック、および拡張ブロックＥＢそれぞれを管理することによって、管理対象の不揮発性メモリを管理する。
【００５１】
次に、管理装置１００における不揮発性メモリの管理に係る処理の概要について説明する。図３は、本発明の実施形態に係る管理装置１００における不揮発性メモリの管理に係る処理の概要を説明するための説明図である。ここで、図３は、不揮発性メモリの管理を制御するソフトウェアの構成の一例を示している。
【００５２】
（ｉ）書き込み処理
例えば実行しているファイルシステムやアプリケーションなどから伝達される書き込み命令とデータとを、拡張ブロック管理レイヤ（以下、「ＥＭＢレイヤ」と示す。）が受け取る（Ｓ１００）。ＥＭＢレイヤは、第３管理情報（以下、「ＥＢＩ」と示す場合がある。）を参照し、仮想ブロック管理レイヤ（以下、「ＶＭＢレイヤ」と示す。）に書き込み命令を伝達する。
【００５３】
書き込み命令が伝達されると、ＶＭＢレイヤは、第２管理情報（以下、「ＶＢＩ」と示す場合がある。）を参照し、物理ブロック管理レイヤ（以下、「ＰＭＢレイヤ」と示す。）に書き込み命令を伝達する。
【００５４】
書き込み命令が伝達されると、ＰＭＢレイヤは、第１管理情報（以下、「ＰＢＩ」と示す場合がある。）を参照し、不揮発性メモリの物理ブロックＰＢにデータを書き込む（Ｓ１０２）。
【００５５】
書き込み処理に応じた応答が不揮発性メモリから伝達されると（Ｓ１０４）、ＰＭＢレイヤは、ＶＭＢレイヤに応答を伝達する。また、ＶＭＢレイヤは、伝達された応答をＥＭＢレイヤに伝達する。そして、ＥＭＢレイヤは、伝達された応答を、書き込み命令を伝達したファイルシステムやアプリケーションなどに伝達する（Ｓ１０６）。
【００５６】
管理装置１００では、例えば上記のような処理によって、書き込み命令に応じて不揮発性メモリにデータが書き込まれる。
【００５７】
（ｉｉ）読み出し処理
例えば実行しているファイルシステムやアプリケーションなどから伝達される読み出し命令を、ＥＭＢレイヤが受け取る（Ｓ１００）。ＥＭＢレイヤは、第３管理情報を参照し、ＶＭＢレイヤに読み出し命令を伝達する。
【００５８】
読み出し命令が伝達されると、ＶＭＢレイヤは、第２管理情報を参照し、ＰＭＢレイヤに書き込み命令を伝達する。
【００５９】
読み出し命令が伝達されると、ＰＭＢレイヤは、第１管理情報を参照し、不揮発性メモリに読み出し命令を伝達する（Ｓ１０２）。
【００６０】
読み出し終了の応答と読み出し命令に応じたデータとが不揮発性メモリから伝達されると（Ｓ１０４）、ＰＭＢレイヤは、ＶＭＢレイヤに応答とデータとを伝達する。また、ＶＭＢレイヤは、伝達された応答とデータとをＥＭＢレイヤに伝達する。そして、ＥＭＢレイヤは、伝達された応答とデータとを、読み出し命令を伝達したファイルシステムやアプリケーションなどに伝達する（Ｓ１０６）。
【００６１】
管理装置１００では、例えば上記のような処理によって、読み出し命令に応じて不揮発性メモリからデータが読み出される。
【００６２】
管理装置１００では、例えば図３に示すように、ＥＭＢレイヤ、ＶＭＢレイヤ、ＰＭＢレイヤの３段階のレイヤを介して、不揮発性メモリへのデータの書き込みや、不揮発性メモリからのデータの読み出しが行われる。
【００６３】
次に、本発明の実施形態に係る物理ブロックの管理、仮想ブロックの管理、および拡張ブロックの管理それぞれについて、より具体的に説明する。
【００６４】
（Ｉ）物理ブロックの管理の一例
管理装置１００は、第１管理情報を用いて、仮想ブロックと対応付けられている物理ブロックＰＢが不良ブロックである場合には、当該不良ブロックを代替領域Ａ２の代替ブロックに置き換える。また、管理装置１００は、不良ブロックと対応する仮想ブロックと置き換えた代替ブロックとを対応付け、当該仮想ブロックと当該代替ブロックとの対応関係を示す情報を、第１管理情報として不揮発性メモリに書き込む。そして、管理装置１００は、第１管理情報を用いて物理ブロックの管理を行う。ここで、上記不良ブロックは、例えば、不揮発性メモリの製造時に生じたものであってもよいし、事後的に不良ブロックとなったものであってもよい。
【００６５】
図４は、本発明の実施形態に係る管理装置１００における物理ブロックの管理の一例を説明するための説明図である。ここで、図４では、図４のＢに示すように、仮想ブロックと物理ブロックとが一対一に対応する場合の例を示している。
【００６６】
例えば図４に示す物理ブロックＰＢ１と物理ブロックＰＢ１０とが不良ブロックである場合には、管理装置１００は、物理ブロックＰＢ１および物理ブロックＰＢ１０それぞれを、代替ブロック（図４に示す例では、物理ブロックＰＢ２００７および物理ブロックＰＢ２００８）に置き換える。そして、管理装置１００は、不良ブロックと、当該不良ブロックを置き換えた代替ブロックとの対応関係を示す情報を、第１管理情報として第１管理ブロックＰＭＢに書き込む。
【００６７】
図５は、本発明の実施形態に係る管理装置１００が管理する不揮発性メモリの第１管理ブロックＰＭＢの一例を示す説明図である。また、図５では、本発明の実施形態に係る第１管理情報の一例を併せて示している。
【００６８】
第１管理ブロックＰＭＢには、例えば、第１管理情報と、第１管理情報の書き込みが完了したことを示す第１完了情報とが記憶される。ここで、図５では、第１完了情報の書き込みが完了したか否かを示すフラグである例を示しているが、本発明の実施形態に係る第１完了情報がフラグに限られないことは、言うまでもない。以下では、第１完了情報（または、後述する第２完了フラグ、第３完了フラグ）の書き込みが完了したか否かを示すフラグを、「書き込み完了フラグ」と示す場合がある。
【００６９】
また、本発明の実施形態に係る第１管理情報は、例えば、仮想ブロックＶＢと代替ブロックＰＡＢとの変換情報と、次に不良ブロックが発生した場合において割り当てる代替ブロック（以下、「ＰＡＴＢ」と示す場合がある。）の情報と、代替された不良ブロック（以下、「ＰＰＥＢ」と示す場合がある。）の情報とを有する。
【００７０】
ここで、仮想ブロックＶＢと代替ブロックＰＡＢとの変換情報は、上記不良ブロックを置き換えた代替ブロックとの対応関係を示す情報に該当する。仮想ブロックＶＢと代替ブロックＰＡＢとの変換情報としては、例えば仮想ブロックＶＢと代替ブロックＰＡＢとが対応付けられたテーブルなど、使用された代替ブロックのアドレスと代替ブロックと対応する仮想ブロックのアドレスとを対応付けた情報が挙げられる。また、ＰＡＴＢとしては、例えば、次に不良ブロックが発生した場合において割り当てる代替ブロックのアドレスが挙げられ、ＰＰＥＢとしては、例えば、代替された不良ブロックのアドレスが挙げられる。
【００７１】
管理装置１００は、例えば図４に示すような代替処理を行った後に第１管理情報を更新する場合（または、第１管理情報を新規生成する場合）には、第１管理情報を第１管理ブロックＰＭＢへ書き込む。そして、管理装置１００は、第１管理ブロックＰＭＢへの第１管理情報の書き込みが完了した場合には、第１管理情報の書き込みが完了したことを示す第１完了情報を、第１管理ブロックＰＭＢに設定する。例えば図５の例では、管理装置１００は、第１管理ブロックＰＭＢへの第１管理情報の書き込みが完了した場合には、フラグを書き込みが完了したことを示す値に設定する。
【００７２】
管理装置１００は、例えば上記のような処理を行うことによって、物理ブロックの管理を行う。なお、本発明の実施形態に係る管理装置１００における物理ブロックの管理は、上記に限られない。例えば、図４では、仮想ブロックと物理ブロックとが一対一に対応する例を示したが、管理装置１００は、仮想ブロックと物理ブロックとを一対多に対応付けて管理することも可能である。
【００７３】
図６、図７は、本発明の実施形態に係る管理装置１００の不揮発性メモリの管理における、仮想ブロックと物理ブロックとの対応関係の一例を示す説明図である。ここで、図６は、管理装置１００が、１つの不揮発性メモリを管理する場合における、仮想ブロックと物理ブロックとの対応関係の一例を示している。また、図７は、管理装置１００が、複数の不揮発性メモリを管理する場合における、仮想ブロックと物理ブロックとの対応関係の一例を示している。ここで、上記複数の不揮発性メモリとしては、例えば、同種の不揮発性メモリが挙げられる。
【００７４】
図６に示すように、１つの不揮発性メモリを管理する場合には、管理装置１００は、１つの仮想ブロックを複数の物理ブロックに対応付ける。より具体的には、管理装置１００は、例えば、アドレスが連続する物理ブロックや、演算処理により一意に求められる複数の物理ブロックを、仮想ブロックと対応付ける。なお、図６では、１つの仮想ブロックと２つの物理ブロックとが対応付けられる例を示しているが、管理装置１００が、１つの仮想ブロックと３以上の物理ブロックとを対応付けることが可能なことは、言うまでもない。
【００７５】
また、図７に示すように、複数の不揮発性メモリを管理する場合には、管理装置１００は、１つの仮想ブロックを、複数の不揮発性メモリそれぞれの対応する物理ブロックに対応付ける。つまり、管理装置１００は、複数の不揮発性メモリを並列に管理する。
【００７６】
図６、図７に示すように、仮想ブロックと物理ブロックとが一対多に対応付けられることによって、仮想ブロックのサイズ（ブロックサイズ）は、仮想ブロックと物理ブロックとが一対一に対応付けられる場合よりもより大きくなる。また、仮想ブロックのサイズがより大きくなることによって、不揮発性メモリにおける拡張ブロックＥＣＢのサイズは、仮想ブロックと物理ブロックとが一対一に対応付けられる場合よりもより大きくなる。よって、管理装置１００は、拡張ブロックＥＣＢに書き込むことが可能なデータ量をより増やすことが可能となるので、例えば、ライトバック処理が行われる頻度の低減と、不揮発性メモリの書き換え頻度の低減とを図ることができる。したがって、管理装置１００は、不揮発性メモリの長寿命化を図ることができるので、管理対象の不揮発性メモリが含まれるメモリシステムが使用可能な期間をより長くすることがきる。また、不揮発性メモリの書き換え頻度の低減を図ることによって、管理装置１００は、書き換え処理が行われることより生じうる速度低下などの不揮発性メモリのパフォーマンス低下を抑制することができる。
【００７７】
（ＩＩ）仮想ブロックの管理の一例
次に、本発明の実施形態に係る仮想ブロックの管理の一例について説明する。管理装置１００は、ユーザデータを、例えば、ユーザデータのアドレス空間を仮想ブロックのサイズ単位に分割した論理ブロック（以下、「ＬＢ」と示す場合がある。）で管理する。また、管理装置１００は、例えば、論理ブロックと仮想ブロックとの対応関係を示す第１変換情報と、拡張ブロックを示す情報とを、第２管理情報として不揮発性メモリに書き込む。そして、管理装置１００は、第２管理情報を用いて仮想ブロックの管理を行う。
【００７８】
図８は、本発明の実施形態に係る管理装置１００における仮想ブロックの管理の一例を説明するための説明図である。
【００７９】
管理装置１００は、第２管理情報を用いることによって、例えば図８のＤに示すように、論理ブロックと仮想ブロックとの対応関係、および、どの仮想ブロックが拡張ブロックであるかを管理する。
【００８０】
図９は、本発明の実施形態に係る管理装置１００が管理する不揮発性メモリの第２管理ブロックＶＭＢの一例を示す説明図である。また、図９では、本発明の実施形態に係る第２管理情報の一例を併せて示している。
【００８１】
第２管理ブロックＶＭＢには、例えば、第２管理情報と、第２管理情報の書き込みが完了したことを示す第２完了情報とが記憶される。ここで、図９では、第２完了情報の書き込みが完了したか否かを示すフラグである例を示しているが、本発明の実施形態に係る第２完了情報がフラグに限られないことは、言うまでもない。
【００８２】
また、本発明の実施形態に係る第２管理情報は、例えば、論理ブロックとユーザブロックとの変換情報と、拡張ブロックと仮想ブロックとの変換情報と、空きブロックＶＦＢを示す情報と、次に書き込みを行う仮想ブロック（以下、「ＶＷＴＢ」と示す場合がある。）の情報と、消去を行う予定の仮想ブロック（以下、「ＶＥＴＢ」と示す場合がある。）の情報とを有する。
【００８３】
ここで、論理ブロックとユーザブロックとの変換情報は、上記第１変換情報に該当する。論理ブロックとユーザブロックとの変換情報としては、例えば論理ブロックとユーザブロックとが対応付けられたテーブルなど、論理ブロックのアドレスとユーザブロックのアドレスとを対応付けた情報が挙げられる。また、拡張ブロックと仮想ブロックとの変換情報は、上記拡張ブロックを示す情報に該当する。拡張ブロックと仮想ブロックとの変換情報としては、例えば、拡張ブロックとして割り当てられた仮想ブロックのアドレスが挙げられる。また、ＶＷＴＢとしては、例えば、空きブロックのアドレスが挙げられ、ＶＥＴＢとしては、例えば、消去を行う仮想ブロックのアドレスが挙げられる。
【００８４】
管理装置１００は、例えば図９に示す構成の第２管理情報を用いることによって、論理ブロックによるユーザデータの管理、論理ブロックとユーザデータブロックとの対応関係の管理、拡張ブロックとして割り当てられた仮想ブロックの管理、空きブロック（使用されていない仮想ブロック）の管理、ＶＷＴＢの管理、およびＶＥＴＢの管理を行うことができる。なお、本発明の実施形態に係る第２管理情報が、図９に示す構成に限られないことは、言うまでもない。
【００８５】
管理装置１００は、ユーザデータの書き込み（新規書き込み、または更新）を行う場合には、例えば、第２管理情報のＶＷＴＢが示す仮想ブロックに書き込みを行い、第２管理情報を更新する。そして、管理装置１００は、第２管理情報を第２管理ブロックＶＭＢへ書き込む。また、管理装置１００は、第２管理ブロックＶＭＢへの第２管理情報の書き込みが完了した場合には、第２管理情報の書き込みが完了したことを示す第２完了情報を、第２管理ブロックＶＭＢに設定する。例えば図９の例では、管理装置１００は、第２管理ブロックＶＭＢへの第２管理情報の書き込みが完了した場合には、フラグを書き込みが完了したことを示す値に設定する。
【００８６】
また、第２管理情報にＶＥＴＢが設定されている場合には、管理装置１００は、第２管理情報のＶＥＴＢが示す仮想ブロックを消去する。そして、管理装置１００は、第２管理情報のＶＥＴＢを更新する。なお、上記ＶＥＴＢが示す仮想ブロックの消去と、第２管理情報のＶＥＴＢの更新とは、第２管理情報を第２管理ブロックＶＭＢへ書き込む前に行うことも可能である。
【００８７】
管理装置１００は、例えば上記のような処理を行うことによって、仮想ブロックの管理を行う。なお、本発明の実施形態に係る管理装置１００における仮想ブロックの管理は、上記に限られない。例えば、管理装置１００は、第２管理ブロックＶＭＢに第２管理情報が記憶されているときに、更新された第２管理情報を第２管理ブロックＶＭＢに書き込む場合には、記憶されている第２管理情報と新たに書き込む第２管理情報との差分を示す差分情報を、第２管理ブロックＶＭＢに書き込むことも可能である。
【００８８】
図１０は、本発明の実施形態に係る管理装置１００における仮想ブロックの管理の他の例を説明するための説明図である。図１０に示すように、管理装置１００は、上記の場合において、例えば、記憶されている第２管理情報に対する変更分の情報（差分情報）と、当該情報の書き込みが完了したことを示すフラグ（完了情報の一例）とを、第２管理ブロックＶＭＢに書き込む。
【００８９】
例えば図１０に示すように、第２管理情報を保存するときに、第２管理情報の全情報サイズを保存するのではなく、差分情報のみを第２管理ブロックＶＭＢに保存することによって、第２管理情報の書き込みの際のサイズの低減と、不揮発性メモリの書き換え頻度の低減とを図ることができる。したがって、管理装置１００は、不揮発性メモリの長寿命化を図ることができるので、管理対象の不揮発性メモリが含まれるメモリシステムが使用可能な期間をより長くすることがきる。また、不揮発性メモリの書き換え頻度の低減を図ることによって、管理装置１００は、書き換え処理が行われることより生じうる速度低下などの不揮発性メモリのパフォーマンス低下を抑制することができる。
【００９０】
（ＩＩＩ）拡張ブロックの管理の一例
次に、本発明の実施形態に係る拡張ブロックの管理の一例について説明する。管理装置１００は、論理ブロックＬＢとキャッシュブロックＥＣＢとの対応関係を示す第２変換情報と、キャッシュブロックＥＣＢ、ライトバックブロックＥＷＢＢ、およびウェアレベリングブロックＥＷＬＢそれぞれを示す情報とを、第３管理情報として第３管理ブロックＥＭＢに書き込む。そして、管理装置１００は、第３管理情報を用いて仮想ブロックの管理を行う。
【００９１】
図１１は、本発明の実施形態に係る管理装置１００における拡張ブロックＥＢの管理の一例を説明するための説明図である。
【００９２】
管理装置１００は、第３管理情報を用いることによって、例えば図８のＥに示すように、論理ブロックＬＢとキャッシュブロックＥＣＢとの対応関係を管理する。また、管理装置１００は、第３管理情報を用いることによって、例えば図８のＦに示すように、キャッシュブロックＥＣＢ、ライトバックブロックＥＷＢＢ、およびウェアレベリングブロックＥＷＬＢそれぞれが、どの拡張ブロックに対応するかを管理する。
【００９３】
また、管理装置１００は、例えば、論理ブロックＬＢおよびキャッシュブロックＥＣＢそれぞれをトランスレーションユニット単位に分割して、論理ブロックＬＢとキャッシュブロックＥＣＢとをトランスレーションユニットごとに対応付けて管理することも可能である。ここで、本発明の実施形態に係るトランスレーションユニットとは、不揮発性メモリの最小書き込みサイズ以上、かつ仮想ブロックのサイズ未満のユニットである。トランスレーションユニットとしては、例えば、ブロックサイズの整数分の１かつページサイズの整数倍のユニットが挙げられる。以下では、論理ブロックＬＢのトランスレーションユニットを「ＬＴＵ」と示し、また、キャッシュブロックＥＣＢのトランスレーションユニットを「ＥＣＴＵ」と示す場合がある。
【００９４】
図１２は、本発明の実施形態に係る論理ブロックＬＢのトランスレーションユニットと、キャッシュブロックＥＣＢのトランスレーションユニットとの対応付けの一例を示す説明図である。
【００９５】
管理装置１００は、例えば図１２のＧに示すように、論理ブロックＬＢに対応した拡張ブロックＥＣＢ内では、ＬＴＵの番号に依存せずにＬＴＵと任意のＥＣＴＵとを対応付けることが可能である。また、管理装置１００は、論理ブロックＬＢ内の各ＬＴＵと、拡張ブロックＥＣＢ、ＥＣＴＵとの対応関係を示す第３変換情報を、第３管理情報として第３管理ブロックＥＭＢに書き込む。上記によって、管理装置１００は、論理ブロックＬＢとキャッシュブロックＥＣＢとをトランスレーションユニットごとに対応付けて管理することができる。
【００９６】
図１３は、本発明の実施形態に係る管理装置１００が管理する不揮発性メモリの第３管理ブロックＥＭＢの一例を示す説明図である。また、図１３では、本発明の実施形態に係る第３管理情報の一例を併せて示している。
【００９７】
第３管理ブロックＥＭＢには、例えば、第３管理情報と、第３管理情報の書き込みが完了したことを示す第３完了情報とが記憶される。ここで、図１３では、第３完了情報の書き込みが完了したか否かを示すフラグである例を示しているが、本発明の実施形態に係る第３完了情報がフラグに限られないことは、言うまでもない。
【００９８】
また、本発明の実施形態に係る第３管理情報は、例えば、拡張ブロックＥＣＢ、ライトバックブロックＥＷＢＢ、およびウェアレベリングブロックＥＷＬＢそれぞれの最終書き込み済みページアドレス（以下、「ＬＷＰ」と示す場合がある。）と、論理ブロックＬＢと拡張ブロックＥＣＢとの変換情報と、ＬＴＵとＥＣＴＵとの変換情報と、ライトバックブロックＥＷＢＢの情報と、ウェアレベリングブロックＥＷＬＢの情報とを有する。
【００９９】
ここで、論理ブロックＬＢと拡張ブロックＥＣＢとの変換情報は、上記第２変換情報に該当する。論理ブロックＬＢと拡張ブロックＥＣＢとの変換情報としては、例えば論理ブロックＬＢと拡張ブロックＥＣＢとが対応付けられテーブルなど、論理ブロックＬＢのアドレスと拡張ブロックＥＣＢのアドレスとを対応付けた情報が挙げられる。また、ＬＴＵとＥＣＴＵの変換情報は、上記第３変換情報に該当する。ＬＴＵとＥＣＴＵの変換情報としては、例えばＬＴＵとＥＣＴＵとが対応付けられたテーブル（以下、「ＬＴＵ−ＥＣＴＵテーブル」と示す場合がある。）など、各ＬＴＵのアドレスとＥＣＴＵのアドレスとを対応付けた情報が挙げられる。また、ライトバックブロックＥＷＢＢの情報としては、例えば、ライトバックブロックＥＷＢＢとして割り当てられた仮想ブロックのアドレスが挙げられ、ウェアレベリングブロックＥＷＬＢの情報としては、ウェアレベリングブロックＥＷＬＢとして割り当てられた仮想ブロックのアドレスが挙げられる。
【０１００】
管理装置１００は、例えば図１３に示す構成の第３管理情報を用いることによって、ＬＷＰの管理、論理ブロックＬＢと拡張ブロックＥＣＢとの対応関係の管理、ＬＴＵとＥＣＴＵとの対応関係の管理、ライトバックブロックＥＷＢＢの管理、および、ウェアレベリングブロックＥＷＬＢの管理を行うことができる。なお、本発明の実施形態に係る第３管理情報は、図１３に示す構成に限られない。例えば、管理装置１００が、例えば図１２に示すように論理ブロックＬＢとキャッシュブロックＥＣＢとをトランスレーションユニットごとに対応付けて管理する構成でない場合には、本発明の実施形態に係る第３管理情報は、第３変換情報を含んでいなくてもよい。
【０１０１】
管理装置１００は、例えばユーザデータの書き込みなどに応じて、各拡張ブロックＥＢに書き込みを行った場合には、第３管理情報を更新する。そして、管理装置１００は、第３管理情報を第３管理ブロックＥＭＢへ書き込む。また、管理装置１００は、第３管理ブロックＥＭＢへの第３管理情報の書き込みが完了した場合には、第３管理情報の書き込みが完了したことを示す第３完了情報を、第３管理ブロックＥＭＢに設定する。例えば図１３の例では、管理装置１００は、第３管理ブロックＥＭＢへの第３管理情報の書き込みが完了した場合には、フラグを書き込みが完了したことを示す値に設定する。
【０１０２】
また、管理装置１００は、上記第３完了情報の第３管理ブロックＥＭＢへの設定が完了した場合には、例えば、第３管理情報の第２変換情報に基づいて、使用されているキャッシュブロックＥＣＢの数（使用数）が所定の数に達したかをさらに判定することも可能である。ここで、本発明の実施形態に係る所定の数に達したかの判定とは、例えば、キャッシュブロックＥＣＢの数が所定の数以上となったことの判定、または、キャッシュブロックＥＣＢの数が所定の数を超えたことの判定を意味する。そして、管理装置１００は、所定の数に達したと判定した場合には、更新頻度が低い論理ブロックＬＢに対応するキャッシュブロックＥＣＢ内のユーザデータに対するライトバック処理を行う。
【０１０３】
ここで、管理装置１００が、使用されているキャッシュブロックＥＣＢの数が所定の数に達したかの判定に用いる所定の数は、例えば、予め設定されたものであってもよいし、または、ユーザ操作に応じた操作信号や外部操作信号に基づいて設定（または再設定）されたものであってもよい。
【０１０４】
また、管理装置１００は、所定の数に達したと判定した場合には、例えば、ＬＲＵ制御を用いて、更新頻度が低い論理ブロックＬＢに対応するキャッシュブロックＥＣＢ、すなわち、ライトバック処理の対象となるキャッシュブロックＥＣＢを選択する。なお、本発明の実施形態に係るライトバック処理の対象となるキャッシュブロックＥＣＢの選択方法は、ＬＲＵ制御を用いる方法に限られない。例えば、管理装置１００は、書き込みを行うユーザデータを論理ブロック単位に分割して、論理ブロック単位の書き込み回数を保持し、当該書き込み回数に基づいて、ライトバック処理の対象となるキャッシュブロックＥＣＢを選択することも可能である。より具体的には、管理装置１００は、例えば、論理ブロック単位の書き込み回数が最小の論理ブロックに対応するキャッシュブロックＥＣＢを、ライトバック処理の対象となるキャッシュブロックとして選択する。
【０１０５】
上記のようにライトバック処理を行うことによって、管理装置１００は、拡張ブロックＥＣＢを効率的に使用することが可能となるので、例えば不揮発性メモリの書き換え頻度の低減を図ることができる。したがって、管理装置１００は、不揮発性メモリの長寿命化を図ることができるので、管理対象の不揮発性メモリが含まれるメモリシステムが使用可能な期間をより長くすることがきる。また、不揮発性メモリの書き換え頻度の低減を図ることによって、管理装置１００は、書き換え処理が行われることより生じうる速度低下などの不揮発性メモリのパフォーマンス低下を抑制することができる。
【０１０６】
管理装置１００は、例えば上記のような処理を行うことによって、拡張ブロックの管理を行う。なお、本発明の実施形態に係る管理装置１００における管理ブロックの管理方法は、上記に限られない。
【０１０７】
［本発明の実施形態に係る管理方法に係る処理の具体例］
本発明の実施形態に係る管理装置１００は、例えば上記（Ｉ）〜（ＩＩＩ）に示すように物理ブロックの管理、仮想ブロックの管理、および拡張ブロックの管理という３段階で不揮発性メモリの管理を行う。次に、本発明の実施形態に係る不揮発性メモリの管理方法に係る処理の具体例について説明する。
【０１０８】
（１）管理開始時における処理（例えば、不揮発性メモリのマウント時の処理）
管理装置１００は、不揮発性メモリの管理を開始する場合には、不揮発性メモリに記憶された管理情報を不揮発性メモリから読み出して、読み出した管理情報を記録媒体に記録する。そして、管理装置１００は、記録媒体に記録した管理情報に基づいて、不揮発性メモリを管理する。ここで、上記記録媒体としては、例えばＲＡＭ（Random  Access  Memory。図示せず）などのように、不揮発性メモリよりもデータの書き込み、読み出しをより高速に行うことが可能な記録媒体が挙げられる。
【０１０９】
上記のように、管理開始時において、不揮発性メモリよりもデータの書き込み、読み出しをより高速に行うことが可能な記録媒体に管理情報を記録（展開）し、当該記録媒体に記録した管理情報を用いることによって、管理が開始されるまでの時間をより短縮することが可能となる。ここで、上記管理が開始されるまでの時間は、例えば、管理対象の不揮発性メモリが含まれるメモリシステムが起動されるまでの時間と捉えることもできる。また、管理装置１００は、本発明の実施形態に係る管理情報のサイズを従来の技術に係る管理情報のサイズよりも小さくすることが可能であるので、上記記録媒体に管理情報を展開したとしても、管理情報の展開によって上記記録媒体を圧迫する可能性は低減される。以下では、上記不揮発性メモリが、ＲＡＭである場合を例に挙げて説明する。
【０１１０】
図１４は、本発明の実施形態に係る管理装置１００における不揮発性メモリの管理開始時における処理の一例を示す流れ図である。ここで、図１４は、管理装置１００における不揮発性メモリのマウント時における処理の一例を示している。
【０１１１】
管理装置１００は、代替領域Ａ２の第１管理領域ＰＭＢを検索する（Ｓ２００）。また、管理装置１００は、第１管理領域ＰＭＢ内から最新の第１管理情報を検索し、書き込み完了フラグを確認して、書き込み完了フラグが書き込みが完了したことを示す場合に、第１管理情報をＲＡＭに展開する（Ｓ２０２）。
【０１１２】
また、管理装置１００は、第１管理情報からＰＡＴＢを取得し、ＰＡＴＢが消去済みであるか否かを確認する（Ｓ２０４）。
【０１１３】
ここで、管理装置１００におけるステップＳ２００〜Ｓ２０４の処理は、第１管理ブロックＰＭＢ内の最終書き込み済みページが第１完了情報であるか否か、および、第１管理情報内のＰＡＴＢが消去済みであるか否かを判定する処理に相当する。また、上記判定は、読み出した第１管理情報に基づく書き込みエラーの判定に該当する。上記のように第１管理情報に基づく書き込みエラーの判定を行うことによって、管理装置１００は、例えば電源断など何らかの不測の事態によって、書き込みが中断した場合や、消去が中断した場合であっても、書き込みエラーの発生を検出することができる。
【０１１４】
また、図１４では示していないが、書き込みエラーが発生したと判定した場合には、管理装置１００は、中断した書き込みまたは消去に対応する処理中のデータを無効なデータとし、不揮発性メモリを処理前の状態に復旧させる。そして、管理装置１００は、図１４に示す処理を終了する。上記のように、例えば電源断など何らかの不測の事態によって、書き込みが中断したことまたは消去が中断したことを判定して、不揮発性メモリを処理前の状態へと復旧させることによって、管理装置１００は、例えば、不測の事態発生時に書き込み中または消去中だった箇所のデータ化けの発生を防止することができる。
【０１１５】
ここで、上記不揮発性メモリを処理前の状態への復旧方法としては、例えば、管理情報内の、書き込みが完了していることを示す第１完了情報、第２完了情報、および第３完了情報に対応する最新の管理情報を用いて復旧を行うことが挙げられる。なお、上記不揮発性メモリを処理前の状態への復旧方法が、上記に限られないことは、言うまでもない。
【０１１６】
また、ステップＳ２０４の処理が行われると、管理装置１００は、仮想領域Ａ１の第２管理ブロックＶＭＢを検索する（Ｓ２０６）。また、管理装置１００は、第２管理ブロックＶＭＢ内から最新の第２管理情報を検索し、書き込み完了フラグを確認して、書き込み完了フラグが書き込みが完了したことを示す場合に、第２管理情報をＲＡＭに展開する（Ｓ２０８）。
【０１１７】
また、管理装置１００は、第２管理情報からＶＷＴＢを取得し、ＶＷＴＢが消去済みであるか否かを確認する（Ｓ２１０）。
【０１１８】
ここで、管理装置１００におけるステップＳ２０６〜Ｓ２１０の処理は、第２管理ブロックＶＭＢ内の最終書き込み済みページが第２完了情報であるか否か、および、第２管理情報内のＶＷＴＢが消去済みであるか否かを判定する処理に相当する。また、上記判定は、読み出した第２管理情報に基づく書き込みエラーの判定に該当する。上記のように第２管理情報に基づく書き込みエラーの判定を行うことによって、管理装置１００は、例えば電源断など何らかの不測の事態によって、書き込みが中断した場合や、消去が中断した場合であっても、書き込みエラーの発生を検出することができる。
【０１１９】
また、図１４では示していないが、書き込みエラーが発生したと判定した場合には、管理装置１００は、中断した書き込みまたは消去に対応する処理中のデータを無効なデータとし、不揮発性メモリを処理前の状態に復旧させる。そして、管理装置１００は、図１４に示す処理を終了する。
【０１２０】
また、ステップＳ２１０の処理が行われると、管理装置１００は、第２管理情報にＶＥＴＢが設定されている場合には、設定されているＶＥＴＢに対応する仮想ブロックを消去し（Ｓ２１２）、第２管理情報を参照して拡張ブロックＥＢを特定する（Ｓ２１４）。
【０１２１】
管理装置１００は、特定した拡張ブロックＥＢの第３管理ブロックＥＭＢ内から最新の第３管理情報を検索し、書き込み完了フラグを確認して、書き込み完了フラグが書き込みが完了したことを示す場合に、第３管理情報をＲＡＭに展開する（Ｓ２１６）。
【０１２２】
また、管理装置１００は、拡張ブロックＥＢのＬＷＰを検索し、拡張ブロックＥＢのＬＷＰと第３管理情報のＬＷＰとを比較して一致するか否かを確認する（Ｓ２１８）。
【０１２３】
ここで、管理装置１００におけるステップＳ２１６、Ｓ２１８の処理は、第３管理ブロックＥＭＢ内の最終書き込み済みページが第３完了情報であるか否か、および、第３管理ブロックＥＭＢ内の最終書き込み済みページ内のＬＷＰと、不揮発性メモリの拡張ブロックＥＢのＬＷＰとの状態が一致するか否かを判定する処理に相当する。また、上記判定は、読み出した第３管理情報および拡張ブロックＥＢにおける最終書き込み済みのページアドレスとに基づく書き込みエラーの判定に該当する。上記のように第３管理情報および拡張ブロックＥＢにおける最終書き込み済みのページアドレスとに基づく書き込みエラーの判定を行うことによって、管理装置１００は、例えば電源断など何らかの不測の事態によって、書き込みが中断した場合や、消去が中断した場合であっても、書き込みエラーの発生を検出することができる。
【０１２４】
また、図１４では示していないが、書き込みエラーが発生したと判定した場合には、管理装置１００は、中断した書き込みまたは消去に対応する処理中のデータを無効なデータとし、不揮発性メモリを処理前の状態に復旧させる。そして、管理装置１００は、図１４に示す処理を終了する。
【０１２５】
管理装置１００は、例えば図１４に示す処理を、管理開始時における処理として行う。なお、本発明の実施形態に係る管理装置１００における管理開始時における処理は、図１４に示す処理に限られない。例えば、管理装置１００は、不揮発性メモリを構成する複数の物理ブロックを、複数の仮想領域Ａ１と当該仮想領域Ａ１に対応する複数の代替領域Ａ２とに分け、複数の第２管理情報を用いて不揮発性メモリを管理することも可能である。
【０１２６】
図１５は、本発明の実施形態に係る管理装置１００における不揮発性メモリの管理開始時における処理の他の例を示す流れ図である。ここで、図１５は、管理装置１００が、不揮発性メモリに２つの仮想領域Ａ１および２つの代替領域Ａ２を設け、それぞれの仮想領域Ａ１に対応する第２管理情報を用いて管理する場合における、管理装置１００における不揮発性メモリのマウント時における処理の一例を示している。以下では、第１の仮想領域Ａ１に対応する第２管理情報を「第１の第２管理情報」と示し、第２の仮想領域Ａ１に対応する第２管理情報を「第２の第２管理情報」と示す。
【０１２７】
管理装置１００は、第１の仮想領域Ａ１に対応する第１の代替領域Ａ２、および第２の仮想領域Ａ１に対応する第２の代替領域Ａ２それぞれに対して、図１４に示すステップＳ２００〜Ｓ２０４と同様の処理を行う（Ｓ３００〜Ｓ３０４）。なお、図１５では示していないが、書き込みエラーが発生したと判定した場合には、管理装置１００は、例えば図１４に示す処理と同様に、中断した書き込みまたは消去に対応する処理中のデータを無効なデータとし、不揮発性メモリを処理前の状態に復旧させる。そして、管理装置１００は、図１５に示す処理を終了する。
【０１２８】
また、ステップＳ３０４の処理が行われると、管理装置１００は、第１の仮想領域Ａ１の第２管理ブロックＶＭＢを検索する（Ｓ３０６）。また、管理装置１００は、第１の仮想領域Ａ１の第２管理ブロックＶＭＢ内から最新の第１の第２管理情報を検索し、書き込み完了フラグを確認して、書き込み完了フラグが書き込みが完了したことを示す場合に、第１の第２管理情報をＲＡＭに展開する（Ｓ３０８）。
【０１２９】
また、管理装置１００は、第１の第２管理情報からＶＷＴＢを取得し、ＶＷＴＢが消去済みであるか否かを確認する（Ｓ３１０）。
【０１３０】
ここで、管理装置１００におけるステップＳ３０６〜Ｓ３１０の処理は、図１４のステップＳ２０６〜Ｓ２１０の処理と同様に、読み出した第１の第２管理情報に基づく書き込みエラーの判定に該当する。また、図１５では示していないが、書き込みエラーが発生したと判定した場合には、管理装置１００は、例えば図１４に示す処理と同様に、中断した書き込みまたは消去に対応する処理中のデータを無効なデータとし、不揮発性メモリを処理前の状態に復旧させる。そして、管理装置１００は、図１５に示す処理を終了する。
【０１３１】
また、ステップＳ３１０の処理が行われると、管理装置１００は、第１の第２管理情報にＶＥＴＢが設定されている場合には、設定されているＶＥＴＢに対応する仮想ブロックを消去する（Ｓ３１２）。また、読み出された第１の第２管理情報に記録されている、第２の仮想領域Ａ２に対応する第２の第２管理情報が記憶される場所の情報に基づいて、第２の第２管理情報に対応する第２管理ブロックＶＭＢを特定する（Ｓ３１４）。
【０１３２】
管理装置１００は、例えば上記のように、読み出された第１の第２管理情報に記録されている他の仮想領域Ａ２それぞれに対応する第２管理情報が記憶される場所の情報に基づいて、他の仮想領域Ａ２それぞれに対応する第２管理ブロックＶＭＢを特定する。よって、管理装置１００は、他の仮想領域Ａ２それぞれに対応する第２管理情報を読み出すことによって、複数の管理情報を用いて管理を行うことができる。上記のように、管理の開始時において、代表する一の第２管理情報（図１５に示す例では、第１の第２管理情報）のみを検索することによって、複数の第２管理情報をそれぞれ検索する場合よりも、より短時間に管理に用いる全ての第２管理情報をＲＡＭに展開することが可能となる。なお、本発明の実施形態に係る管理装置１００が、管理の開始時において複数の第２管理情報をそれぞれ検索することが可能であることは、言うまでもない。
【０１３３】
ステップＳ３１４の処理が行われると、特定された第２の代替ブロックＡ２の第２管理ブロックＶＭＢ内から最新の第２の第２管理情報を検索し、書き込み完了フラグを確認して、書き込み完了フラグが書き込みが完了したことを示す場合に、第２の第２管理情報をＲＡＭに展開する（Ｓ３１６）。
【０１３４】
また、管理装置１００は、第２の第２管理情報からＶＷＴＢを取得し、ＶＷＴＢが消去済みであるか否かを確認する（Ｓ３１８）。
【０１３５】
ここで、管理装置１００におけるステップＳ３１６〜Ｓ３１８の処理は、図１４のステップＳ２０６〜Ｓ２１０の処理と同様に、読み出した第２の第２管理情報に基づく書き込みエラーの判定に該当する。また、図１５では示していないが、書き込みエラーが発生したと判定した場合には、管理装置１００は、例えば図１４に示す処理と同様に、中断した書き込みまたは消去に対応する処理中のデータを無効なデータとし、不揮発性メモリを処理前の状態に復旧させる。そして、管理装置１００は、図１５に示す処理を終了する。
【０１３６】
また、ステップＳ３１８の処理が行われると、管理装置１００は、第２の第２管理情報にＶＥＴＢが設定されている場合には、設定されているＶＥＴＢに対応する仮想ブロックを消去する（Ｓ３２０）。
【０１３７】
管理装置１００は、第１の仮想領域Ａ１、および第２の仮想領域Ａ１それぞれに対して、図１４に示すステップＳ２１４〜Ｓ２１８と同様の処理を行う（Ｓ３２２〜Ｓ３２６）。なお、図１５では示していないが、書き込みエラーが発生したと判定した場合には、管理装置１００は、例えば図１４に示す処理と同様に、中断した書き込みまたは消去に対応する処理中のデータを無効なデータとし、不揮発性メモリを処理前の状態に復旧させる。そして、管理装置１００は、図１５に示す処理を終了する。
【０１３８】
管理装置１００は、不揮発性メモリを構成する複数の物理ブロックＰＢを、複数の仮想領域Ａ１と当該仮想領域Ａ１に対応する複数の代替領域Ａ２とに分け、複数の第２管理情報を用いて不揮発性メモリを管理する場合には、例えば図１５に示す処理を、管理開始時における処理として行う。
【０１３９】
管理装置１００は、例えば図１４、図１５に示す処理を、管理開始時における処理として行う。なお、本発明の実施形態に係る管理装置１００における管理開始時における処理が、図１４、図１５に示す処理に限られないことは、言うまでもない。
【０１４０】
（２）書き込み処理
次に、本発明の実施形態に係る管理装置１００における書き込み処理の一例について説明する。図１６は、本発明の実施形態に係る管理装置１００における書き込み処理の一例を示す流れ図である。
【０１４１】
管理装置１００は、第２管理情報からＶＷＴＢを取得し（Ｓ４００）、ＶＷＴＢが示す仮想ブロックにデータを書き込む（Ｓ４０２）。
【０１４２】
ステップＳ４０２の処理が行われると、管理装置１００は、ＶＷＴＢに対応する仮想ブロックを、キャッシュブロックＥＣＢとして第３管理情報に登録し（Ｓ４０４）、第３管理情報を更新する（Ｓ４０６）。
【０１４３】
また、管理装置１００は、更新した第３管理情報を第３管理ブロックＥＭＢに保存し、書き込みが完了したことを示す完了フラグ（第３完了情報）を設定する（Ｓ４０８）。
【０１４４】
ステップＳ４０８の処理が行われると、管理装置１００は、第２管理情報を更新し（Ｓ４１０）、更新した第２管理情報を第２管理ブロックＶＭＢに保存し、書き込みが完了したことを示す完了フラグ（第２完了情報）を設定する（Ｓ４１２）。
【０１４５】
管理装置１００は、書き込み処理として、例えば図１６に示す処理を行う。なお、本発明の実施形態に係る管理装置１００における書き込み処理は、図１６に示す処理に限られない。
【０１４６】
図１７は、本発明の実施形態に係る管理装置１００における書き込み処理の他の例を示す流れ図である。ここで、図１７は、管理装置１００におけるキャッシュブロックＥＣＢへの書き込みに係る処理の一例を示している。
【０１４７】
管理装置１００は、第３管理情報を参照してキャッシュブロックＥＣＢに追記ができることを確認する（Ｓ５００）。
【０１４８】
ステップＳ５００において追記ができることが確認された場合には、管理装置１００は、確認されたキャッシュブロックＥＣＢにデータを書き込み（Ｓ５０２）、第３管理情報を更新する（Ｓ５０４）。そして、管理装置１００は、更新した第３管理情報を第３管理ブロックＥＭＢに保存し、書き込みが完了したことを示す完了フラグ（第３完了情報）を設定する（Ｓ５０６）。
【０１４９】
管理装置１００は、キャッシュブロックＥＣＢへの書き込みに係る書き込み処理として、例えば図１７に示す処理を行う。なお、本発明の実施形態に係る管理装置１００における書き込み処理が、図１６、図１７に示す処理に限られないことは、言うまでもない。
【０１５０】
（３）ライトバック処理
次に、本発明の実施形態に係る管理装置１００におけるライトバック処理の一例について説明する。図１８は、本発明の実施形態に係る管理装置１００におけるライトバック処理の一例を示す流れ図である。ここで、図１８は、ＥＷＢＢの新規割り当てに係る処理の一例を示している。
【０１５１】
管理装置１００は、キャッシュブロックＥＣＢの使用数が所定の数に達したか否かを判定する（Ｓ６００）。ステップＳ６００においてキャッシュブロックＥＣＢの使用数が所定の数に達したと判定されない場合には、管理装置１００は、ライトバック処理を終了する。
【０１５２】
また、ステップＳ６００においてキャッシュブロックＥＣＢの使用数が所定の数に達したと判定された場合には、管理装置１００は、キャッシュブロックＥＣＢが割り当てられている使用頻度が低い論理ブロックＬＢを検索する（Ｓ６０２）。ここで、管理装置１００は、例えばＬＲＵ制御を用いることによって、使用頻度が低い論理ブロックＬＢを選択してステップＳ６０２の処理を行うが、ステップＳ６０２における処理は、上記に限られない。
【０１５３】
また、管理装置１００は、第２管理情報を参照してＶＷＴＢに対応する仮想ブロックを特定し（Ｓ６０４）、第３管理情報のＬＴＵ−ＥＣＴＵテーブル（ＬＴＵとＥＣＴＵの変換情報の一例）に基づいて、使用頻度が低い論理ブロックＬＢに対応する仮想ブロックとＥＣＴＵとを特定する（Ｓ６０６）。
【０１５４】
ステップＳ６０６の処理が行われると、管理装置１００は、特定された仮想ブロックのＥＣＴＵからデータを読み出し（Ｓ６０８）、ステップＳ６０４において特定されたＶＷＴＢに、データを書き込む（Ｓ６１０）。
【０１５５】
ステップＳ６１０の処理が行われると、管理装置１００は、特定されたＶＷＴＢをＥＷＢＢとし（Ｓ６１２）、第３管理情報を更新する（Ｓ６１４）。
【０１５６】
また、管理装置１００は、更新した第３管理情報を第３管理ブロックＥＭＢに保存し、書き込みが完了したことを示す完了フラグ（第３完了情報）を設定する（Ｓ６１６）。
【０１５７】
ステップＳ６１６の処理が行われると、管理装置１００は、第２管理情報を更新し（Ｓ６１８）、更新した第２管理情報を第２管理ブロックＶＭＢに保存し、書き込みが完了したことを示す完了フラグ（第２完了情報）を設定する（Ｓ６２０）。
【０１５８】
管理装置１００は、ＥＷＢＢの割り当てに係る処理として、例えば図１８に示す処理を行う。なお、本発明の実施形態に係る管理装置１００におけるライトバック処理は、図１８に示す処理に限られない。
【０１５９】
図１９は、本発明の実施形態に係る管理装置１００におけるライトバック処理の他の例を示す流れ図である。ここで、図１９は、割り当てられているＥＷＢＢに対して追記を行う処理の一例を示している。
【０１６０】
管理装置１００は、第３管理ブロックＥＭＢから論理ブロックＬＢ、ＥＷＢＢ、ＬＷＰを取得する（Ｓ７００）。ステップＳ７００の処理が行われると、管理装置１００は、第３管理情報のＬＴＵ−ＥＣＴＵテーブル（ＬＴＵとＥＣＴＵの変換情報の一例）に基づいて、ステップＳ７００において取得された論理ブロックＬＢに対応する仮想ブロックとＥＣＴＵとを特定する（Ｓ７０２）。
【０１６１】
ステップＳ７０２の処理が行われると、管理装置１００は、特定された仮想ブロック内のＥＣＴＵからデータを読み出し（Ｓ７０４）、ステップＳ７０４において特定されたＶＷＴＢに、データを書き込む（Ｓ７０６）。
【０１６２】
ステップＳ７０６の処理が行われると、管理装置１００は、第３管理情報を更新し（Ｓ７０８）、更新した第３管理情報を第３管理ブロックＥＭＢに保存して、書き込みが完了したことを示す完了フラグ（第３完了情報）を設定する（Ｓ７１０）。
【０１６３】
管理装置１００は、割り当てられているＥＷＢＢに対して追記を行う処理として、例えば図１９に示す処理を行う。なお、本発明の実施形態に係る管理装置１００におけるライトバック処理は、図１８、図１９に示す処理に限られない。
【０１６４】
図２０は、本発明の実施形態に係る管理装置１００におけるライトバック処理の他の例を示す流れ図である。ここで、図２０は、ライトバック処理の完了に係る処理の一例を示している。
【０１６５】
管理装置１００は、第３管理ブロックＥＭＢからＥＷＢＢとＥＷＢＢのＬＷＰとを取得し（Ｓ８００）、また、第３管理ブロックＥＭＢから論理ブロックＬＢに対応するキャッシュブロックＥＣＢを取得する（Ｓ８０２）。ここで、ステップＳ８００、Ｓ８０２の処理は、例えば図１３に示す第３管理情報に基づいて行われる。
【０１６６】
ステップＳ８０２の処理が行われると、管理装置１００は、第２管理情報を参照して、論理ブロックＬＢに対応するユーザデータブロックＶＵＢを特定する（Ｓ８０４）。
【０１６７】
ステップＳ８０４の処理が行われると、管理装置１００は、第３管理情報を更新し（Ｓ８０６）、更新した第３管理情報を第３管理ブロックＥＭＢに保存して、書き込みが完了したことを示す完了フラグ（第３完了情報）を設定する（Ｓ８０８）。
【０１６８】
ステップＳ８０８の処理が行われると、管理装置１００は、第２管理情報を更新し（Ｓ８１０）、更新した第２管理情報を第２管理ブロックＶＭＢに保存して、書き込みが完了したことを示す完了フラグ（第２完了情報）を設定する（Ｓ８１２）。
【０１６９】
管理装置１００は、ライトバック処理の完了に係る処理として、例えば図２０に示す処理を行う。なお、本発明の実施形態に係るライトバック処理は、図１８、図１９、図２０に示す処理に限られない。
【０１７０】
例えば、管理装置１００は、図１２のＧに示すように、論理ブロックＬＢに対応した拡張ブロックＥＣＢ内においてＬＴＵの番号に依存せずにＬＴＵと任意のＥＣＴＵとを対応付けるのではなく、拡張ブロックＥＢに書き込むユーザデータを、連続した論理アドレス順に書き込むことも可能である。また、上記の場合には、管理装置１００は、例えば図１８、図１９、図２０に示す処理と異なる処理を、ライトバック処理として行うことができる。
【０１７１】
図２１は、本発明の実施形態に係る論理ブロックＬＢのトランスレーションユニットと、キャッシュブロックＥＣＢのトランスレーションユニットとの対応付けの他の例を示す説明図である。図２１のＨに示すように、拡張ブロックＥＢに書き込むユーザデータを、連続した論理アドレス順に書き込むことによって、管理装置１００は、ライトバック処理の際のデータコピーを行わずに、ライトバック処理を行うことが可能となる。したがって、管理装置１００は、データコピーを行わずにライトバック処理を行うことによって、例えば速度低下などのライトバック処理による不揮発性メモリのパフォーマンス低下を抑制することができる。
【０１７２】
図２２は、本発明の実施形態に係る管理装置１００におけるライトバック処理の他の例を示す流れ図である。ここで、図２２は、例えば図２１に示すように拡張ブロックＥＢに書き込むユーザデータが連続した論理アドレス順に書き込まれている場合における、ライトバック処理の一例を示している。
【０１７３】
管理装置１００は、キャッシュブロックＥＣＢの使用数が所定の数に達したか否かを判定する（Ｓ９００）。ステップＳ９００においてキャッシュブロックＥＣＢの使用数が所定の数に達したと判定されない場合には、管理装置１００は、ライトバック処理を終了する。
【０１７４】
また、ステップＳ９００においてキャッシュブロックＥＣＢの使用数が所定の数に達したと判定された場合には、管理装置１００は、キャッシュブロックＥＣＢ内のデータ格納状態がユーザデータブロックＶＵＢと同一のキャッシュブロックＥＣＢを、検索する（Ｓ９０２）。ここで、管理装置１００は、一の論理ブロックＬＢに割り当てられているキャッシュブロックＥＣＢが複数存在する場合には、例えば、より直近に書き込まれたキャッシュブロックＥＣＢを、検索対象とする。また、図２２では図示していないが、ステップＳ１１０２において、データ格納状態がユーザデータブロックＶＵＢと同一のキャッシュブロックＥＣＢが検出されない場合には、管理装置１００は、例えば、図１８に示すステップＳ６０２からの処理を行う。
【０１７５】
また、ステップＳ９０２において、データ格納状態がユーザデータブロックＶＵＢと同一のキャッシュブロックＥＣＢが検出された場合には、管理装置１００は、第２管理情報を参照して論理ブロックＬＢに対応するユーザデータブロックＶＵＢを特定する（Ｓ９０４）。
【０１７６】
また、ステップＳ９０４の処理が行われると、管理装置１００は、第３管理情報を更新し（Ｓ９０８）、更新した第３管理情報を第３管理ブロックＥＭＢに保存して、書き込みが完了したことを示す完了フラグ（第３完了情報）を設定する（Ｓ９０８）。
【０１７７】
また、管理装置１００は、第２管理情報を更新し（Ｓ９１０）、更新した第２管理情報を第２管理ブロックＶＭＢに保存して、書き込みが完了したことを示す完了フラグ（第２完了情報）を設定する（Ｓ９１２）。
【０１７８】
ステップＳ９１２の処理が行われると、管理装置１００は、ステップＳ９０４において特定されたユーザデータブロックＶＵＢのデータを消去する（Ｓ９１４）。
【０１７９】
管理装置１００は、例えば図２１に示すように拡張ブロックＥＢに書き込むユーザデータが連続した論理アドレス順に書き込まれている場合におけるライトバック処理として、例えば図２２に示す処理を行う。
【０１８０】
（４）静的ウェアレベリング処理
管理装置１００は、例えば上記（３）に示すライトバック処理と同様の処理を行うことによって、静的ウェアレベリングを実現することができる。なお、本発明の実施形態に係る静的ウェアレベリング処理が、上記（３）に示すライトバック処理と同様の処理に限られないことは、言うまでもない。
【０１８１】
（５）エラー回復処理
次に、本発明の実施形態に係る管理装置１００におけるエラー回復処理の一例について説明する。ここで、本発明の実施形態に係るエラー回復処理とは、例えば拡張ブロックＥＢへとデータを書き込むときにエラーが発生した場合においてエラーの回復を図る処理である。
【０１８２】
管理装置１００は、拡張ブロックＥＢへとデータを書き込むときにエラーが発生した場合には、エラーが発生した拡張ブロックＥＢに書き込んだデータを保持する。また、管理装置１００は、第２管理情報に記録されたＶＷＴＢに基づいて、対応する仮想ブロックに継続してデータを書き込む。そして、管理装置１００は、エラーが発生した拡張ブロックＥＢに書き込んだデータと、継続して書き込んだ仮想ブロックのデータとを用いて、ライトバック処理を行う。つまり、管理装置１００は、代替処理を用いてライトバック処理を行う。上記のように代替処理を用いてライトバック処理を行うことによって、管理装置１００は、例えばプログラムエラーなどのエラーが発生した場合における、速度低下などの不揮発性メモリのパフォーマンス低下を抑制することができる。
【０１８３】
図２３は、本発明の実施形態に係る管理装置１００におけるエラー回復処理の一例を示す流れ図である。ここで、図２３は、書き込み時においてエラーが発生した場合におけるエラー回復処理の一例を示している。
【０１８４】
管理装置１００は、第３管理情報を参照してキャッシュブロックＥＣＢに追記ができることを確認する（Ｓ１０００）。ステップＳ１０００においてキャッシュブロックＥＣＢに追記ができることが確認されると、管理装置１００は、第１管理情報を参照してキャッシュブロックＥＣＢに対応する物理ブロックＰＢを特定する（Ｓ１００２）。そして、管理装置１００は、特定された物理ブロックＰＢにデータを書き込む（Ｓ１００４）。
【０１８５】
ステップＳ１００４においてデータの書き込みが開始されると、管理装置１００は、ステップＳ１００４におけるデータの書き込みにおいてエラーが発生したか否かを判定する（Ｓ１００６）。ステップＳ１００６においてエラーが発生したと判定されない場合には、管理装置１００は、エラー回復処理を終了する。
【０１８６】
また、ステップＳ１００６においてエラーが発生したと判定された場合には、管理装置１００は、エラーが発生した物理ブロックＰＢをＰＰＥＢとして第１管理情報に登録する（Ｓ１００８）。また、管理装置１００は、更新した第１管理情報を第１管理ブロックＰＭＢに保存して、書き込みが完了したことを示す完了フラグ（第１完了情報）を設定する（Ｓ１０１０）。
【０１８７】
ステップＳ１０１０の処理が行われると、管理装置１００は、第２管理情報を参照してＶＷＴＢを特定する（Ｓ１０１２）。また、管理装置１００は、第１管理情報を参照して、ステップＳ１０１２に対応する物理ブロックＰＢを特定する（Ｓ１０１４）。そして、管理装置１００は、ステップＳ１０１４において特定した物理ブロックＰＢにデータを書き込む（Ｓ１０１６）。
【０１８８】
ステップＳ１０１６の処理が行われると、管理装置１００は、第３管理情報を更新し（Ｓ１０１８）、更新した第３管理情報を第３管理ブロックＥＭＢに保存して、書き込みが完了したことを示す完了フラグ（第３完了情報）を設定する（Ｓ１０２０）。
【０１８９】
また、管理装置１００は、第２管理情報を更新し（Ｓ１０２２）、更新した第２管理情報を第２管理ブロックＶＭＢに保存して、書き込みが完了したことを示す完了フラグ（第２完了情報）を設定する（Ｓ１０２４）。
【０１９０】
管理装置１００は、書き込み時においてエラーが発生した場合におけるエラー回復処理として、例えば図２３に示す処理を行う。なお、本発明の実施形態に係る管理装置１００におけるエラー回復処理は、図２３に示す処理に限られない。
【０１９１】
図２４は、本発明の実施形態に係る管理装置１００におけるエラー回復処理の他の例を示す流れ図である。ここで、図２４は、図２０に示すライトバック処理時においてエラーが発生した場合におけるエラー回復処理の一例を示している。
【０１９２】
管理装置１００は、第３管理ブロックＥＭＢからＥＷＢＢ、ＥＷＢＢのＬＷＰを取得し（Ｓ１１００）、また、第３管理ブロックＥＭＢから論理ブロックＬＢに対応するキャッシュブロックＥＣＢを取得する（Ｓ１１０２）。ここで、ステップＳ１１００、Ｓ１１０２の処理は、例えば図１３に示す第３管理情報に基づいて行われる。
【０１９３】
ステップＳ１１０２の処理が行われると、管理装置１００は、第２管理情報を参照して、論理ブロックＬＢに対応するユーザデータブロックＶＵＢを特定する（Ｓ１１０４）。
【０１９４】
ステップＳ１１０４の処理が行われると、管理装置１００は、第３管理情報を更新し（Ｓ１１０６）、更新した第３管理情報を第３管理ブロックＥＭＢに保存して、書き込みが完了したことを示す完了フラグ（第３完了情報）を設定する（Ｓ１１０８）。
【０１９５】
ステップＳ１１０８の処理が行われると、管理装置１００は、第２管理情報を更新し（Ｓ１１１０）、更新した第２管理情報を第２管理ブロックＶＭＢに保存して、書き込みが完了したことを示す完了フラグ（第２完了情報）を設定する（Ｓ１１１２）。
【０１９６】
ステップＳ１１１２の処理が行われると、管理装置１００は、第１管理情報を参照して、キャッシュブロックＥＣＢ、ユーザデータブロックＶＵＢに対応する物理ブロックＰＢを特定する（Ｓ１１１４）。そして、管理装置１００は、ステップＳ１１１４において特定された物理ブロックＰＢを消去する（Ｓ１１１６）。
【０１９７】
ステップＳ１１１６の処理が行われると、管理装置１００は、第１管理情報を参照してＰＰＥＢを特定し、ＰＰＥＢがステップＳ１１１６において消去した物理ブロックＰＢと一致することを確認する（Ｓ１１１８）。また、ステップＳ１１１８において一致することが確認されると、管理装置１００は、ステップＳ１１１６において消去した物理ブロックＰＢに、エラーが生じた物理ブロックＰＢであることを示す“Ｂａｄ  Ｍａｒｋ”を設定する（Ｓ１１２０）。
【０１９８】
ステップＳ１１２０の処理が行われると、管理装置１００は、第１管理情報を更新し（Ｓ１１２２）、更新した第１管理情報を第１管理ブロックＰＭＢに保存して、書き込みが完了したことを示す完了フラグ（第１完了情報）を設定する（Ｓ１１２４）。
【０１９９】
管理装置１００は、図２０に示すライトバック処理時においてエラーが発生した場合におけるエラー回復処理として、例えば図２４に示す処理を行う。
【０２００】
管理装置１００は、エラー回復処理として、例えば図２３、図２４に示す処理を行う。なお、本発明の実施形態に係る管理装置１００におけるエラー回復処理が、図２３、図２４に示す処理に限られないことは、言うまでもない。
【０２０１】
（本発明の実施形態に係る管理装置）
次に、上述した本発明の実施形態に係る管理方法に係る処理を行うことが可能な、本発明の実施形態に係る管理装置１００の構成の一例について説明する。
【０２０２】
図２５は、本発明の実施形態に係る管理装置１００の構成の一例を示すブロック図である。管理装置１００は、例えば、不揮発性メモリ１０２と、制御部１０４とを備える。
【０２０３】
また、管理装置１００は、例えば、ＲＯＭ（Read  Only  Memory。図示せず）や、ＲＡＭ（図示せず）、ユーザが操作可能な操作部（図示せず）、様々な画面を表示画面に表示する表示部（図示せず）、外部装置と通信を行うための通信部（図示せず）などを備えていてもよい。管理装置１００は、例えば、データの伝送路としてのバス（bus）により上記各構成要素間を接続する。
【０２０４】
ＲＯＭ（図示せず）は、制御部１０４が使用するプログラムや演算パラメータなどの制御用データを記憶する。ＲＡＭ（図示せず）は、制御部１０４により実行されるプログラムや、管理情報などを一時的に記憶する。操作部（図示せず）としては、例えば後述する操作デバイスが挙げられ、表示部（図示せず）としては、例えば後述する表示デバイスが挙げられる。また、通信部（図示せず）としては、例えば後述する通信インタフェースが挙げられる。
【０２０５】
〔管理装置１００のハードウェア構成例〕
図２６は、本発明の実施形態に係る管理装置１００のハードウェア構成の一例を示す説明図である。図２６を参照すると、管理装置１００は、例えば、ＭＰＵ１５０と、ＲＯＭ１５２と、ＲＡＭ１５４と、記録媒体１５６と、入出力インタフェース１５８と、操作入力デバイス１６０と、表示デバイス１６２と、通信インタフェース１６４とを備える。また、管理装置１００は、例えば、データの伝送路としてのバス１６６で各構成要素間を接続する。
【０２０６】
ＭＰＵ１５０は、ＭＰＵ（Micro  Processing  Unit）や、制御機能などの各種機能を実現するための各種回路が集積された集積回路などで構成され、管理装置１００全体を制御する制御部１０４として機能する。また、ＭＰＵ１５０は、管理装置１００において、後述する管理部１１０としての役目を果たすこともできる。
【０２０７】
ＲＯＭ１５２は、例えばＭＰＵ１５０が使用するプログラムや演算パラメータなどの制御用データを記憶し、また、ＲＡＭ１５４は、例えばＭＰＵ１５０により実行されるプログラムや、制御情報などを一時的に記憶する。ここで、ＲＡＭ１５４は、例えば、不揮発性メモリ１０２よりもデータの書き込み、読み出しをより高速に行うことが可能な記録媒体に該当する。
【０２０８】
記録媒体１５６は、管理装置１００における記憶手段であり、不揮発性メモリ１０２として機能する。記録媒体１５６には、例えば、アプリケーションや様々なデータなどが記憶される。ここで、記録媒体１５６としては、例えば、フラッシュメモリなどが挙げられる。また、記録媒体１５６は、管理装置１００から着脱可能であってもよい。
【０２０９】
入出力インタフェース１５８は、例えば、操作入力デバイス１６０や、表示デバイス１６２を接続する。操作入力デバイス１６０は、操作部（図示せず）として機能し、また、表示デバイス１６２は、表示部（図示せず）として機能する。ここで、入出力インタフェース１６０としては、例えば、ＵＳＢ（Universal  Serial  Bus）端子や、ＤＶＩ（Digital  Visual  Interface）端子、ＨＤＭＩ（High-Definition  Multimedia  Interface）端子、各種処理回路などが挙げられる。また、操作入力デバイス１６０は、例えば、管理装置１００上に備えられ、管理装置１００の内部で入出力インタフェース１５８と接続される。操作入力デバイス１６０としては、例えば、ボタン、方向キー、ジョグダイヤルなどの回転型セレクター、あるいは、これらの組み合わせなどが挙げられる。また、表示デバイス１６２は、例えば、管理装置１００上に備えられ、管理装置１００の内部で入出力インタフェース１５８と接続される。表示デバイス１６２としては、例えば、液晶ディスプレイ（Liquid  Crystal  Display；ＬＣＤ）や有機ＥＬディスプレイ（organic  ElectroLuminescence  display。または、ＯＬＥＤディスプレイ（Organic  Light  Emitting  Diode  display）ともよばれる。）などが挙げられる。なお、入出力インタフェース１５８が、管理装置１００の外部装置としての操作入力デバイス（例えば、キーボードやマウスなど）や表示デバイス（例えば、外部ディスプレイなど）と接続することも可能であることは、言うまでもない。また、表示デバイス１６２は、例えばタッチスクリーンなどのように、表示とユーザ操作とが可能なデバイスであってもよい。
【０２１０】
通信インタフェース１６４は、管理装置１００が備える通信手段であり、ネットワークを介して（あるいは、直接的に）外部装置と無線／有線で通信を行うための通信部（図示せず）として機能する。ここで、通信インタフェース１６４としては、例えば、通信アンテナおよびＲＦ（Radio  Frequency）回路（無線通信）や、ＬＡＮ端子および送受信回路（有線通信）などが挙げられる。なお、本発明の実施形態に係る通信インタフェース１６４は、上記に限られず、例えば、ネットワークに対応する構成をとることができる。
【０２１１】
管理装置１００は、例えば図２６に示す構成によって、上述した本発明の実施形態に係る管理方法に係る処理を行う。なお、本発明の実施形態に係る管理装置１００のハードウェア構成は、図２６に示す構成に限られない。例えば、管理装置１００は、本発明の実施形態に係る管理方法に係る処理を行う機能（例えば、後述する管理部１１０が有する機能）を実現するためのＩＣ（Integrated  Circuit）であってもよい。上記の構成の場合には、管理装置１００は、例えば外部不揮発性メモリを、制御対象としての不揮発性メモリとして制御することとなる。
【０２１２】
再度図２５を参照して、管理装置１００の構成の一例について説明する。不揮発性メモリ１０２は、管理装置１００が備える記憶手段である。ここで、不揮発性メモリ１０２としては、例えば、フラッシュメモリなどが挙げられる。不揮発性メモリ１０２は、制御部１０４（より具体的には、後述する管理部１１０）によって、データの書き込み、読み出し、消去などが管理される。
【０２１３】
制御部１０４は、例えば、ＭＰＵなどで構成され、管理装置１００全体を制御する役目を果たす。また、制御部１０４は、管理部１１０を備え、本発明の実施形態に係る管理方法に係る処理を主導的に行う役目を果たす。
【０２１４】
管理部１１０は、例えば、上述した（Ｉ）に示す物理ブロックの管理に係る処理、（ＩＩ）に示す仮想ブロックの管理に係る処理、および（ＩＩＩ）に示す拡張ブロックの管理に係る処理などの本発明の実施形態に係る管理方法に係る処理を主導的に行う役目を果たす。なお、管理部１１０は、物理ブロックの管理を主導的に行う第１管理部（図示せず）と、仮想ブロックの管理を主導的に行う第２管理部（図示せず）と、拡張ブロックの管理を主導的に行う第３管理部（図示せず）とを有していてもよい。
【０２１５】
制御部１０４は、例えば管理部１１０を備えることによって、上述した本発明の実施形態に係る管理方法に係る処理を実現することができる。よって、制御部１０４を備えることによって、管理装置１００は、不揮発性メモリの長寿命化を図りつつ不揮発性メモリを管理することができる。
【０２１６】
管理装置１００は、例えば図２５に示す構成によって、上述した本発明の実施形態に係る管理方法に係る処理を行う。したがって、管理装置１００は、不揮発性メモリの長寿命化を図りつつ不揮発性メモリを管理することができる。
【０２１７】
なお、本発明の実施形態に係る管理装置１００の構成は、図２５に示す構成に限られない。例えば、本発明の実施形態に係る管理装置１００は、不揮発性メモリ１０２を備えず、有線／無線で接続された外部装置が備える不揮発性メモリにおけるデータの書き込み、読み出し、消去などを管理する構成であってもよい。上記の構成の場合であっても、本発明の実施形態に係る管理装置１００は、外部装置が備える不揮発性メモリの長寿命化を図りつつ当該不揮発性メモリを管理することができる。
【０２１８】
また、管理装置１００は、複数の不揮発性メモリを管理することも可能である。また、管理装置１００は、複数の不揮発性メモリを管理する場合には、例えば、１または２以上の不揮発性メモリをキャッシュブロックＥＣＢとして用い、また、１または２以上の不揮発性メモリをユーザデータブロックＶＵＢとして用いてもよい。ここで、キャッシュブロックＥＣＢの方が、ユーザデータブロックＶＵＢよりも書き換えられる頻度が高いことが想定される。そのため、上記の場合、キャッシュブロックＥＣＢとして用いられる不揮発性メモリとしては、例えば、ユーザデータブロックＶＵＢとして用いられる不揮発性メモリと比較して、書き込み速度が同等以上であり、書き換え回数も同等以上である不揮発性メモリを用いることが挙げられる。つまり、上記の場合においてキャッシュブロックＥＣＢとして用いられる不揮発性メモリは、例えば、ユーザデータブロックＶＵＢとして用いられる不揮発性メモリと同種の不揮発性メモリであってもよいし、異種の不揮発性メモリであってもよい。
【０２１９】
以上のように、本発明の実施形態に係る管理装置１００は、例えば物理ブロックの管理、仮想ブロックの管理、および拡張ブロックの管理という３段階の管理単位など、不揮発性メモリを複数段階で管理し、管理単位ごとの管理情報を不揮発性メモリに保存する。上記のように不揮発性メモリを複数段階で管理することによって、本発明の実施形態に係る各段階の管理に用いる管理単位ごとの管理情報それぞれのサイズは、従来の技術に係る管理情報のサイズよりもより小さくなる。よって、管理装置１００は、管理単位ごとの管理情報を不揮発性メモリに保存することによって、従来の技術よりも不揮発性メモリに管理情報を保存する際の書き込み量を減らすことが可能となり、また、不揮発性メモリに保存された管理情報を用いて不揮発性メモリを管理することが可能となる。
【０２２０】
したがって、管理装置１００は、不揮発性メモリの長寿命化を図りつつ、不揮発性メモリを管理することができる。
【０２２１】
また、管理装置１００は、管理情報のサイズを従来の技術に係る管理情報のサイズよりも小さくすることが可能であるので、従来の技術を用いる場合において管理情報を書き込むときに生じうる、パフォーマンスの低下を防止することができる。
【０２２２】
また、管理装置１００は、例えば物理ブロックの管理、仮想ブロックの管理、および拡張ブロックの管理という３段階の管理単位など、不揮発性メモリを複数段階で管理するので、消去を効率的に行うことが可能である。したがって、管理装置１００は、消去サイズ単位に比例して生じうる、例えば、書き換え時の速度低下や、書き込みエラーの復旧時の速度低下などによる不揮発性メモリのパフォーマンスの低下を、防止することができる。
【０２２３】
以上、本発明の実施形態として管理装置１００を挙げて説明したが、本発明の実施形態は、かかる形態に限られない。本発明の実施形態は、例えば、不揮発性メモリを用いる記憶装置、ＰＣ（Personal  Computer）やサーバなどのコンピュータ、テレビ受像機などの表示装置、携帯電話などの携帯型通信装置、映像／音楽再生装置（または映像／音楽記録再生装置）、ゲーム機など、様々な機器に適用することができる。また、本発明の実施形態は、例えば、上記のような様々な機器に組み込まれる記録媒体の制御ＩＣに適用することもできる。
【０２２４】
（本発明の実施形態に係るプログラム）
コンピュータを、本発明の実施形態に係る管理装置として機能させるためのプログラム（例えば、本発明の実施形態に係る管理方法に係る処理を実現するためのプログラムや、図３に示す不揮発性メモリの管理を制御するソフトウェアに係るプログラム）によって、不揮発性メモリの長寿命化を図りつつ不揮発性メモリを管理することができる。
【０２２５】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０２２６】
例えば、上記では、コンピュータを、本発明の実施形態に係る管理装置として機能させるためのプログラム（コンピュータプログラム）が提供されることを示したが、本発明の実施形態は、さらに、上記プログラムをそれぞれ記憶させた記録媒体も併せて提供することができる。
【０２２７】
上述した構成は、本発明の実施形態の一例を示すものであり、当然に、本発明の技術的範囲に属するものである。
【符号の説明】
【０２２８】
１００    管理装置
１０２    不揮発性メモリ
１０４    制御部
１１０    管理部
【図１】
2012173778.tif 000003
【図２】
2012173778.tif 000004
【図３】
2012173778.tif 000005
【図４】
2012173778.tif 000006
【図５】
2012173778.tif 000007
【図６】
2012173778.tif 000008
【図７】
2012173778.tif 000009
【図８】
2012173778.tif 000010
【図９】
2012173778.tif 000011
【図１０】
2012173778.tif 000012
【図１１】
2012173778.tif 000013
【図１２】
2012173778.tif 000014
【図１３】
2012173778.tif 000015
【図１４】
2012173778.tif 000016
【図１５】
2012173778.tif 000017
【図１６】
2012173778.tif 000018
【図１７】
2012173778.tif 000019
【図１８】
2012173778.tif 000020
【図１９】
2012173778.tif 000021
【図２０】
2012173778.tif 000022
【図２１】
2012173778.tif 000023
【図２２】
2012173778.tif 000024
【図２３】
2012173778.tif 000025
【図２４】
2012173778.tif 000026
【図２５】
2012173778.tif 000027
【図２６】
2012173778.tif 000028