(57)【要約】      （修正有）【課題】ストレージ機器において、消去済みイレースブロックが少なくなった際の領域縮退に伴うデータ消失の危険性や、書き込み速度が大幅な低下などを防止する。【解決手段】新規ページ確保処理において、使用済みページリストの長さが、任意のｎページより長いかを判断し、長い場合、使用済みページリストから１ページを確保する。短い場合、容量不足エラーを返して処理を終了する。消去済みページリストのファイル削除は、処理されるページが、ファイル削除によって空になるかを判断し、空にならない場合、該ページからファイルを削除する。空になる場合、使用中ページの最末尾のページの内容を該ページにコピーし、最末尾のページに消去用データを書き込み、最末尾のページに含まれるイレースブロックを消去対象とする。続いて、最末尾のページを使用中ページリストから削除し、消去済みページリストに追加し、処理を終える。【選択図】図１
2009043238.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが利用するデータを格納可能な複数の記憶領域で構成される記憶領域群を含むストレージ装置を管理するための記憶領域管理方法であって、
第１の記憶領域に格納されるデータが前記アプリケーションで利用されなくなる場合、前記記憶領域群の他の領域のうち、前記アプリケーションで利用されているデータが格納される末尾の記憶領域を特定し、
前記特定された記憶領域に格納されているデータを前記第１の記憶領域に移動し、前記特定された記憶領域からデータを消去し、
前記特定された記憶領域を消去済み記憶領域に設定し、
前記設定された消去済み記憶領域を含む消去済み記憶領域数が、所定の記憶領域数より大きいか否か判断し、判断結果、大きい場合、消去済み記憶領域の末尾から所定の記憶領域数より前の消去済み記憶領域から記憶領域をアプリケーションに割り当て、
小さい場合は、前記アプリケーションに対して割り当て不可通知を行うこと
を特徴とする記憶領域管理方法。
【請求項２】
請求項1記載の記憶領域管理方法において、
前記記憶領域の管理単位は、
前記ストレージ装置における最小のアクセス単位であるページからなる第１の管理単位、複数のページを纏めたセグメントからなる第２の管理単位、または前記第１の管理層、前記第２の管理層を含む複数の管理層に階層化された第３の管理単位のいずれかであることを特徴とする記憶領域管理方法。
【請求項３】
請求項1記載の記憶領域管理方法において、
前記使用済みの記憶領域の内容を消去する際に前記ストレージ装置に見合った消去命令を発行することを特徴とする記憶領域管理方法。
【請求項４】
請求項１記載の記憶領域管理方法において、
前記使用済みの記憶領域の内容を消去する際は、
前記使用済み記憶領域に対して、消去用データを書き込むことを特徴とする記憶領域管理方法。
【請求項５】
排他制御マネージャを有した論理的なデータ管理層によってストレージ装置のデータ管理を行う記憶領域管理方法であって、
前記排他制御マネージャからデータ管理層全体の書き込み排他制御権を取得するステップと、
前記排他制御権を取得したデータ管理層のページ管理構造体を取得するステップと、
取得した前記ページ管理構造体によって管理された全ての記憶領域を取得し、その中から取得可能なものをリストアップするステップと、
前記リストアップしたリストに基づき、取得不可能な記憶領域の有無を判断するステップと、
取得不可能な記憶領域があったと判断された場合に、前記リストアップされたリストに基づいて前記ページ管理構造体を再構成するステップとを有し、
前記データ管理層への初回アクセス時に前記データ管理層をマウントする際に、前記ストレージ装置中の記憶容量が変更されていた際に前記データ管理層において記憶容量を変更することを特徴とする記憶領域管理方法。
【請求項６】
請求項５記載の記憶領域管理方法において、
前記記憶領域の管理単位は、
前記ストレージ装置における最小のアクセス単位であるページからなる第１の管理単位、複数のページを纏めたセグメントからなる第２の管理単位、または前記第１の管理層、前記第２の管理層を含む複数の管理層に階層化された第３の管理単位のいずれかであることを特徴とする記憶領域管理方法。
【請求項７】
排他制御マネージャを有した論理的なデータ管理層によってストレージ装置のデータ管理を行う記憶領域管理方法であって、
前記排他制御マネージャから最後尾の記憶領域全体の書き込み排他制御権を取得するステップと、
前記排他制御権を取得した記憶領域のページ管理構造体を取得するステップと、
取得した前記ページ管理構造体によって管理された全ての記憶領域を取得し、実際に取得可能なものをリストアップするステップと、
前記リストアップされたリストに基づいて、取得不可能な記憶領域の有無を判断するステップと、
取得不可能なページがあったと判断された際に、前記リストアップされたリストに基づいて、ページ管理構造体を再構成するステップと、
再構成した前記ページ管理構造体が利用可能な記憶領域を含まない場合に、前記排他制御マネージャからデータ管理層全体の書き込み排他制御権を取得するステップと、
前記排他制御権を取得したデータ管理層のセグメント管理構造体を取得するステップと、
取得した前記セグメント管理構造体から、前記排他制御マネージャから最後尾の記憶領域全体の書き込み排他制御権を取得したセグメントを取り除くステップとを有し、
前記ストレージ装置の容量が変更されたことを検出した場合には前記データ管理層において記憶容量の変更を処理することを特徴とする記憶領域管理方法。
【請求項８】
請求項７記載の記憶領域管理方法において、
前記記憶領域の管理単位は、
前記ストレージ装置における最小のアクセス単位であるページからなる第１の管理単位、複数のページを纏めたセグメントからなる第２の管理単位、または前記第１の管理層、前記第２の管理層を含む複数の管理層に階層化された第３の管理単位のいずれかであることを特徴とする記憶領域管理方法。
【請求項９】
情報処理装置であって、
アプリケーションが利用するデータを格納可能な複数の記憶領域で構成される記憶領域群を含む記憶媒体が接続される外部インターフェースと、
外部インターフェースに接続されるメインボードと、を備え、
前記メインボードは、前記アプリケーションが実行されるプロセッサとメモリとを有し、
前記プロセッサは、第１の記憶領域に格納されるデータが前記アプリケーションで利用されなくなる場合、前記記憶領域群の他の領域のうち、前記アプリケーションで利用されているデータが格納される末尾の記憶領域を特定し、
前記特定された記憶領域に格納されているデータを前記第１の記憶領域に移動し、前記特定された記憶領域からデータを消去し、
前記特定された記憶領域を消去済み記憶領域に設定し、
消去済み記憶領域数が、所定の記憶領域数より大きいか否か判断し、判断結果、大きい場合、消去済み記憶領域の末尾から所定の記憶領域数より前の消去済み記憶領域から記憶領域をアプリケーションに割り当て、
小さい場合は、前記アプリケーションに対して割り当て不可通知を行うこと、を特徴とする情報処理装置。
【請求項１０】
請求項９記載の情報処理装置であって、
前記記憶領域の管理単位は、
前記記憶媒体における最小のアクセス単位であるページからなる第１の管理単位、複数のページを纏めたセグメントからなる第２の管理単位、または前記第１の管理層、前記第２の管理層を含む複数の管理層に階層化された第３の管理単位のいずれかであることを特徴とする情報処理装置。
【請求項１１】
請求項９記載の情報処理装置であって、
前記プロセッサは、前記使用済みの記憶領域の内容を消去する際に前記記憶媒体が認識可能な消去命令を前記記憶媒体に前記外部インターフェースを介して発行する、ことを特徴とする情報処理装置。
【請求項１２】
請求項９記載の情報処理装置において、
前記プロセッサは、前記使用済みの記憶領域の内容を消去する際、前記使用済み記憶領域に対して、消去用データを書き込む指示を前記外部インターフェースを介して前記記憶媒体に発行する、ことを特徴とする情報処理装置。
【請求項１３】
請求項９記載の情報処理装置であって、
前記プロセッサは、
前記記憶媒体の記憶領域への書き込み排他制御権を取得し、
前記排他制御権を取得したデータ管理層のページ管理構造体を取得し、
取得した前記ページ管理構造体によって管理された全ての記憶領域を取得し、その中から取得可能なものをリストアップし、
前記リストアップしたリストに基づき、取得不可能な記憶領域の有無を判断し、
取得不可能な記憶領域があったと判断された場合に、前記リストアップされたリストに基づいて前記ページ管理構造体を再構成し、
前記データ管理層への初回アクセス時に前記データ管理層をマウントする際に、前記記憶媒体中の記憶容量が変更されていた際に前記データ管理層において記憶容量を変更することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に関するデータ管理技術に関し、特に、ファイルシステム領域やデータベース領域によるデータ管理に関するもので、特に、ストレージ装置が有するファイルシステム領域やデータベース領域の管理に関するものである。
【背景技術】
【０００２】
たとえば、ハードディスクドライブなどに例示されるストレージデバイス上で効率よくデータを管理する方法として、ファイルシステム技術やデータベース技術が知られている。
【０００３】
ファイルシステム技術は、主に数ＫＢ以上のサイズのファイルを大量に扱うための技術である。ストレージ上にファイルシステム領域と呼ばれる管理構造を作成し、このファイルシステム領域を主にオペレーティングシステムの一部として動作するファイルシステム処理部を介して操作する。ファイルシステム領域とファイルシステム処理部によってデータを管理するシステムをファイルシステムと呼ぶ。
【０００４】
また、データベース技術は、主に数十Ｂ程度のサイズのレコードを大量に扱うための技術である。ストレージ上にはデータベース領域と呼ばれる管理構造を作成し、このデータベース領域を主にオペレーティングシステム上で動作するデータベース管理プログラムを介して操作する。データベース領域とデータベース管理プログラムによってデータを管理するシステムをデータベース管理システムと呼ぶ。
【０００５】
さらに、ファイルシステム領域上にデータベース領域を作ったり、逆にデータベース領域上にファイルシステム領域を作ったりといった階層化が可能なことも多い。
【０００６】
これらファイルシステム技術やデータベース技術は主にハードディスクドライブ上で動作させることを念頭において開発されてきた。ハードディスクドライブの特性として記憶素子である磁性体の書き換え可能回数が事実上無制限であることが挙げられる。
【０００７】
このため、ファイルシステム技術やデータベース技術では、領域全体の管理情報であるメタデータを領域の先頭や末尾といった箇所に固定し、繰り返し上書きすることが多い。
【０００８】
一方、近年、フラッシュメモリなどの不揮発性半導体メモリに代表されるシリコンストレージによるハードディスクドライブの置き換えが進んでいる。
【０００９】
ここで、不揮発性半導体メモリは、記憶素子の最小単位であるメモリセルの書き換え可能回数が１０５  回程度とハードディスクドライブと比べて少ないため、ストレージ用途に用いる場合は、図１１に示す仮想化技術を用いたウェアレベリング２００１（書き換え回数均一化)や不良イレースブロックの再割り当て２００２といった管理を行う必要がある。
【００１０】
一方で、一般にパリティを用いてデータを保護するため、一度書いたデータが読めなくなることはない。また、パリティやウェアレベリングの論理アドレスを保持するため、実データに加えてこれらパリティやウェアレベリングの論理アドレスをメモリセル上に保存する。
【００１１】
不揮発性半導体メモリでは、メモリセルの書き換え可能回数がハードディスクドライブと比べて少なく、また不良イレースブロックの存在や発生を前提とした使い方が要求され非常に扱い難いため、不揮発性半導体メモリを用いて構成されたメモリカードなどを用いることが近年の主流である。
【００１２】
ここで、イレースブロックとは、不揮発性半導体メモリにおける消去の最小単位を指す。不揮発性半導体メモリのメモリセルは、１セルごとの書き込み操作は’１’→’０’の方向にしか行えず、’０’→’１’の方向への変化はイレースブロック単位の消去操作でしか行えない。
【００１３】
不揮発性半導体メモリの大容量化が進むにつれ、イレースブロックのサイズも巨大化しており、現在のＮＡＮＤ型フラッシュメモリにおいては１２８ＫＢや、それ以上のサイズとなっている。
【００１４】
また、メモリカードは、一般に不揮発性半導体メモリとメモリ制御部とがパッケージ化された構成からなる。不揮発性半導体メモリの寿命（１０５  回程度は、メモリベンダの推奨パリティビット長や予備イレースブロック数を守らないと達成できないが、これらのパラメータはメモリベンダ間や同一ベンダ内でも部品の世代間で異なる。
【００１５】
さらに、不揮発性半導体メモリのモデルサイクルは１年だがＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）／チップセットは２年程度であるため、最終製品のモデルサイクルを通して最新のビット単価が安い不揮発性半導体メモリを使い続けるにはメモリカードを用いるのが簡単かつ効果的である。
【００１６】
一般に、メモリ制御部を介して、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）マスストレージといった汎用的なストレージのＩ／Ｏインタフェースをエミュレートし、既存のＣＰＵ、およびチップセットとの接続性を高めている。
【００１７】
さらに、予備イレースブロックとは不良イレースブロックの再割り当ての際に用いられるイレースブロックを指す。一般に、予備イレースブロックは不良イレースブロック再割り当てにのみ用いられるように設計する必要があり、更新時の代替イレースブロックに用いてはならない。
【００１８】
イレースブロックの物理的な状態としては、データが書き込まれているか否かの２通りだが、論理的には、図１２に示すように、消去済み→使用中→使用済み（→消去済み）という３つの状態で管理される。
【００１９】
ここで、図１２に示す消去済みイレースブロック（状態３００１）とは、データが全て’１’に初期化されたイレースブロックを指す。メモリカードにおいては、消去済みイレースブロックは一般にリスト構造で管理され、新規セグメント確保や既存データ更新の際に用いられる。
【００２０】
ただし、メタデータ部分には書き換え回数など、’１’以外のデータが書かれている場合がある。さらに、使用中イレースブロックの割り当たっていない論理アドレス内のデータは’０’という前提の元で、全ての内包するセグメントのデータがたまたま’０’になった使用中イレースブロックは消去の対象とできる。
【００２１】
また、図１２の使用中イレースブロック（状態３００２）とはデータが書き込まれ、論理アドレスに割り当てられたイレースブロックを指す。メモリカード上のデータを外部から上書き更新する場合には、実際には別の消去済みイレースブロックにデータを書き込み、使用中イレースブロックを使用済みイレースブロック列に加えるという操作が行われる。
【００２２】
使用済みイレースブロック（状態３００３）とは、使用中イレースブロックへの上書き更新操作によって生じたデータが書かれているがどの論理アドレスにも割り当てられていないイレースブロックのことを指す。
【００２３】
メモリ制御部によってアイドル時間に消去され、消去済みイレースブロックのリストに加えられる。また、例外的に全ての内包するセグメントのデータが’０’であったイレースブロックは論理アドレスに割り当たっていた場合でも使用済みイレースブロックとして扱うことが可能（３００４）であり、消去の対象として扱うことも可能である。
【００２４】
ただし、メモリカードにおいては、パッケージ内にカプセル化され、外部向けの汎用ストレージＩ／Ｏインタフェースから状態変化を制御することはできないことがある。また、メモリカード製品によっては、汎用Ｉ／Ｏインタフェースを拡張し、イレースブロックが消去可能であることを伝える消去命令を特別に持つ場合がある。
【００２５】
このように、メモリカードを用いると、不揮発性半導体メモリに固有の雑多な管理を隠蔽し、一般的な汎用ストレージインタフェースを用いたストレージ操作が可能になる。
【発明の開示】
【発明が解決しようとする課題】
【００２６】
ところが、上記のような不揮発性半導体メモリを用いたストレージデバイスのデータ管理技術では、次のような問題点があることが本発明者により見い出された。
【００２７】
すなわち、メモリセルの書き換え可能回数などは完全に隠蔽することはできないため、メモリカードなどの記憶媒体を用いる場合でもハードディスク向けに開発されてきたファイルシステム技術やデータベース技術をそのまま適用すると問題が生じる場合がある。
【００２８】
メモリカード内部で消去済みイレースブロックが少なくなった時に、領域縮退に伴うデータ消失の危険性が高まったり、書き込み速度が大幅に低下したりといった問題が生じてしまう。
【００２９】
ここで、領域縮退とはメモリカードを用いる環境において、予備イレースブロックがなくなった状態で不良イレースブロックが生じた際に、ストレージ領域の物理長が小さくなって見える現象をさす。
【００３０】
また、ここで書き込み速度の低下とは、メモリカードを用いる環境において、消去済みイレースブロックがなくなった状態でデータの更新や挿入を行う場合に生じる。この場合は、まず使用済みイレースブロックを消去して消去済みイレースブロックを作成し、その消去済みイレースブロックにデータの更新や挿入を行う必要があるため、速度が低下してしまうことになる。
【００３１】
本発明の目的は、メモリカードなどのストレージデバイスにおいて、消去済みイレースブロックが少なくなっても、領域縮退に伴うデータ消失や書き込み速度の大幅な低下などを防止することのできる技術を提供することにある。
【００３２】
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００３３】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００３４】
たとえば、アプリケーションが利用するデータを格納可能な複数の記憶領域で構成される記憶領域群を含むストレージ装置を管理するための記憶領域管理方法である。すなわち、ある記憶領域に格納されるデータをアプリケーションが利用しなくなった場合、記憶領域群の他の領域のうち、アプリケーションで利用されているデータが格納されている末尾の記憶領域からデータを当該ある記憶領域に移動し、移動元の記憶領域からデータを消去する。その移動元の記憶領域を消去済み記憶領域に設定する。そして、アプリケーションに記憶領域の割り当てを行う場合は、消去済み記憶領域数が、所定の記憶領域数より大きいか否か判断し、判断結果、大きい場合、消去済み記憶領域の末尾から所定の記憶領域数より前の消去済み記憶領域から記憶領域をアプリケーションに割り当て、小さい場合は、前記アプリケーションに対して割り当て不可通知を行う。
【００３５】
また、本発明は、排他制御マネージャを有した論理的なデータ管理層によってストレージ装置のデータ管理を行う記憶領域管理方法であって、該排他制御マネージャからデータ管理層全体の書き込み排他制御権を取得するステップと、排他制御権を取得したデータ管理層のセグメント管理構造体を取得するステップと、取得した該セグメント管理構造体によって管理された全ての記憶領域を取得し、その中から取得可能なものをリストアップするステップと、該リストアップしたリストに基づき、取得不可能な記憶領域の有無を判断するステップと、取得不可能な記憶領域があったと判断された場合に、リストアップされたリストに基づいてセグメント管理構造体を再構成するステップとを有し、データ管理層への初回アクセス時にデータ管理層をマウントする際に、ストレージ装置中の記憶容量が変更されていた際にデータ管理層において記憶容量を変更するものである。
【００３６】
さらに、本発明は、排他制御マネージャを有した論理的なデータ管理層によってストレージ装置のデータ管理を行う記憶領域管理方法であって、該排他制御マネージャから最後尾の記憶領域全体の書き込み排他制御権を取得するステップと、排他制御権を取得した記憶領域のセグメント管理構造体を取得するステップと、取得したセグメント管理構造体によって管理された全ての記憶領域を取得し、実際に取得可能なものをリストアップするステップと、リストアップされたリストに基づいて、取得不可能な記憶領域の有無を判断するステップと、取得不可能なセグメントがあったと判断された際に、リストアップされたリストに基づいて、セグメント管理構造体を再構成するステップと、再構成したセグメント管理構造体が利用可能な記憶領域を含まない場合に、排他制御マネージャからデータ管理層全体の書き込み排他制御権を取得するステップと、排他制御権を取得したデータ管理層のセグメント管理構造体を取得するステップと、取得したセグメント管理構造体から、排他制御マネージャから最後尾の記憶領域全体の書き込み排他制御権を取得したセグメントを取り除くステップとを有し、ストレージ装置の容量が変更されたことを検出した場合にはデータ管理層において記憶容量の変更を処理するものである。
【００３７】
また、本願のその他の発明の概要を簡単に示す。
【００３８】
予め定義される任意の自然数ｎを用いて、メモリカードなどのストレージ機器における仮想ストレージ領域中の末尾ｎイレースブロックを消去済みとなるよう管理する。
【００３９】
しかし、ストレージ機器の種類によっては外部からイレースブロックを操作するインタフェースがない場合がある。そのような場合には、ｍ個の記憶領域がｎイレースブロックと等しい容量になるように定義される自然数ｍを用いて、ファイルシステム領域やデータベース領域の末尾ｍ個の記憶領域を消去済み記憶領域とし、対応するイレースブロックが消去可能であることをメモリカードに伝える。
【００４０】
ここで、予め自然数ｐが与えられた場合はｎ＝ｐとし、そうでない場合はファイルシステム処理部、もしくはデータベース管理プログラム、またはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やその他のミドルウエアによって定義される自然数ｑを用いてｎ＝ｑとする。
【発明の効果】
【００４１】
上記本願発明の一態様により、記憶領域群において、末尾から所定の記憶領域数が消去済みであることを保証することができる。また、ストレージ機器の性能を低下させることなく、信頼性を向上させることができる
【発明を実施するための最良の形態】
【００４２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００４３】
（実施の形態１）
図９は本実施例における情報処理システムを実現する装置5020の構成を示す。該装置はCPU5001、RAM (Random Access Memory) などの主記憶装置5002、および二次記憶装置としてメモリカード5003を備える計算機である。メモリカード５００３とは、ストレージインターフェース５１００を介して接続される。
CPU5001は主記憶装置5002上のオペレーティングシステム5004、ファイルシステム処理プログラム5005、およびAP実行部5019を実行することで、メモリカード5003上のデータ管理を行う。
AP実行部5019は、本実施例における情報処理システムの機能を実行し、その際にメモリカード5003へのアクセスが必要になった場合にファイルシステム処理プログラム5005に処理を委譲する。
ファイルシステム処理プログラム5005は、第１のファイル削除モジュール5006、新規セグメント確保モジュール5007、使用済みセグメントの消去モジュール5008、ファイルシステムメタデータ再編成モジュール5009モジュール5009、セグメントメタデータ再編成モジュール5010、使用中セグメントリスト5011、および消去済みセグメントリスト5012を有する。
第１のファイル削除モジュール5006は、図3に示すフローチャートに従ってファイルの削除処理を行う。
新規セグメント確保モジュール5007は図2に示すフローチャートに従って新規セグメント確保処理を行う。
ファイルシステムメタデータ再編成モジュール5009モジュール5009は図7に示すフローチャートに従ってをファイルシステムメタデータ再編成処理行う。
セグメントメタデータ再編成モジュール5010は図8に示すフローチャートに従ってセグメントメタデータ再編成処理を行う。
使用中セグメントリスト5011、消去済みセグメントリスト5012はそれぞれ使用中および消去済みセグメントの番号をリストで管理する。
メモリカード5003は不揮発性半導体メモリ5013とメモリ制御部5014を備える。不揮発性半導体メモリ５０１３とメモリ制御部５０１４は、接続されている。
不揮発性半導体メモリ5013の内部はn個のイレースブロック5015に分割されている。イレースブロック5014とは不揮発性半導体メモリ5013の消去可能な管理単位であり、それぞれ固有の番号で識別される。
メモリ制御部5014は使用中イレースブロックリスト5016、使用済みイレースブロックリスト5017、および消去済みイレースブロックリスト5018を管理することで、図１２に示した不揮発性半導体メモリにおける状態遷移を管理する。
使用中イレースブロックリスト5016、使用済みイレースブロックリスト5017、および消去済みイレースブロックリスト5018は、それぞれイレースブロック5014の番号をリストで管理する。なお、メモリカード５００３は、装置５０２０の外部にあっても内部にあっても構わない。
図１は、本発明の実施の形態１による情報処理システムのブロック図、図２は、図１の情報処理システムによる新規セグメント確保処理の一例を示すフローチャート、図３は、図１の情報処理システムによるファイルの削除処理の一例を示すフローチャートである。
【００４４】
本実施の形態１において、情報処理システムは、たとえば、パーソナルコンピュータなどの計算機システムからなる。情報処理システムには、図１に示すように、メインボード４００１が設けられている。
【００４５】
メインボード４００１は、メモリ、およびＣＰＵや拡張スロットなどの基本的な電子部品が搭載されるボードである。メインボード４００１には、たとえば、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カードなどに代表されるメモリカード４００５が、たとえば、ＡＴＡやＵＳＢマスストレージといった標準的な汎用ストレージインタフェース４００４を介してメインボード４００１に接続されている。
【００４６】
ここでは、ファイルシステムやデータベース管理システムによってストレージ上の区画が管理される。一般にファイルシステムやデータベース管理システムでは、セグメントと呼ばれる単位でストレージ上の区画を管理する。セグメントはストレージ上の最小のアクセス単位であるページを複数個並べた構造である。
【００４７】
また、一般にファイルシステムやデータベースでは、使用中セグメントと使用済みセグメントとがそれぞれ管理されるが、本システムでは、使用済みセグメントの代わりに消去済みセグメントを管理することを特徴とする。
【００４８】
使用中セグメントは、有意なデータの保存に使用されているセグメントであり、消去済みセグメントは、有意なデータの保存に使用されておらず、さらに消去命令や消去用データの書き込みによって消去されたセグメントである。使用済みセグメントは、有意なデータの保存に使用されていないが、消去命令や消去用データが書き込まれていないため消去済みセグメントには含まれないセグメントのことである。
【００４９】
これら使用中セグメント、使用済みセグメント、および消去済みセグメントや、その他記憶領域の管理情報を纏めてセグメント管理構造体やスーパーブロックと呼ばれる記憶領域中の特別な場所に保存する。セグメント管理構造体は記憶領域の先頭付近におかれることが多い。
【００５０】
メインボード４００１で動作するファイルシステム処理部は、使用中セグメントのリストである使用中セグメントリスト４００２と消去済みセグメントのリストからなる消去済みセグメントリスト４００３の管理を行う。
【００５１】
ストレージ装置となるメモリカード４００５は、該メモリカード４００５の制御を司るメモリ制御部４００６、ならびにフラッシュメモリに例示される不揮発性半導体メモリ４００７を含む。メモリカード４００５は、たとえば、ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）やＵＳＢマスストレージといった標準的なストレージＩ／Ｏインタフェースによってアクセス可能なものであれば特に制約はない。
【００５２】
また、メモリ制御部４００６では、使用中イレースブロックリスト４００８、使用済みイレースブロックリスト４００９、および消去済みイレースブロックリスト４０１０をそれぞれ管理している。つまり、メモリ制御部４００６は、不揮発性半導体メモリの記憶領域の使用状況を管理している。
【００５３】
ここで、イレースブロックとは不揮発性半導体メモリ４００７における消去の最小単位である。また、使用済みイレースブロックは、使用中イレースブロックへの上書き更新操作によって生じたデータが書かれているがどの論理アドレスにも割り当てられていないイレースブロックである。
【００５４】
さらに、消去済みイレースブロックは、データが全て’１’に初期化されたイレースブロックであり、使用中イレースブロックは、データが書き込まれ、論理アドレスに割り当てられたイレースブロックである。
【００５５】
メモリカード４００５が提供するストレージ領域上には、主に数ＫＢ以上のサイズのファイルを管理するファイルシステム領域４０１１が構成される。ファイルシステム領域４０１１は、前述したファイルシステム処理部によってデータ管理を行う。また、メモリ制御部４００６は、全てのデータが’０’である使用中イレースブロックを消去の対象とみなす機能を持つ。
【００５６】
次に、本実施の形態１における情報処理システムによるセグメント管理技術について説明する。
【００５７】
まず、AP実行部5019がファイルの作成や更新をファイルシステム処理プログラム5005に委譲した際に新規セグメントが必要になった際の新規セグメント確保処理について、図２のフローチャートを用いて説明する。
【００５８】
新規セグメント確保処理が開始されると、消去済みセグメントリスト４００３の長さが、予め任意に設定されたｎ（自然数）セグメントより長いか否かを判断し（ステップＳ５００１）、長かった場合には消去済みセグメントリスト４００３から１セグメントを確保して（ステップＳ５００２）処理を終える。一方、ステップＳ５００１の処理において、長くなかった場合には容量不足エラーを返し（ステップＳ５００３）、処理が終了となる。
次にAP実行部5019がファイルの削除をファイルシステム処理プログラム5005に委譲した際のファイル削除処理について、図3のフローチャートを用いて説明する。
【００５９】
ファイル削除処理が開始されると、ここで処理されるファイルを含むセグメントが、ファイル削除によって空になるか否か判断し（ステップＳ６００１）、空にならない場合には該セグメントからファイルを削除し（ステップＳ６００２）、処理を終了する。
【００６０】
ファイルの削除方法として、たとえば、実際にファイルが使用していたセグメントに’０’を書き込む方法や、セグメントの管理情報だけを操作してファイルが使用していたセグメントにはデータが割り当たっていないと見なすものなどがある。
【００６１】
一方、ステップＳ６００１の処理において、該セグメントが空になった場合には、使用中セグメントのうち最末尾のセグメントａの内容を該セグメントにコピーし（ステップＳ６００３）、セグメントａに消去用データとして全て’０’を書き込む（ステップＳ６００４）。
【００６２】
この操作によって、セグメントａに含まれるイレースブロックは、メモリ制御部４００６の消去対象となる。続いて、セグメントａを使用中セグメントリスト４００２から削除し（ステップＳ６００５）、セグメントａを消去済みセグメントリスト４００３に追加し（ステップＳ６００６）、処理を終える。
【００６３】
ここで、使用しているメモリカード４００６がブロック消去命令を有する場合は、ステップＳ６００４の処理においてセグメントａに該当する箇所に消去命令を発行する。
【００６４】
なお、本実施の形態を実施する場合、セグメントのサイズをイレースブロックのサイズと等しいかより大きく取ると、空になったセグメントに全て’０’を書き込む操作（ステップＳ６００４）によって、確実に該セグメントに含まれるイレースブロックを消去の対象とすることができる。
【００６５】
それにより、本実施の形態１によれば、不揮発性半導体メモリ４００７への書き込み時の不良イレースブロック発生に伴う領域縮退が生じても、ｎイレースブロック以内の不良であればデータロストを防ぐ効果が得られる。
【００６６】
また、書き込み時におおいて、消去済みイレースブロックが準備されているので、書き込み性能の低下を防止することができる。
【００６７】
なお、ここでは、セグメント単位の管理について触れたが、小規模ストレージなどでページの数が少ない場合にはページを管理単位とする場合がある。
【００６８】
この場合には記憶領域中の特別な場所にはページ管理構造体が置かれ、使用中ページ、使用済みページおよび消去済みページが管理される。
【００６９】
さらに、将来的に複数のセグメントを纏めた上位の管理単位や、更に上位の管理単位を導入することも考えられるが、本発明はこれらすべての管理単位に対しても適用可能である。
【００７０】
（実施の形態２）
図１０は本実施例における情報処理システムを実現する装置の構成のうち、図９との差分を示す。該装置はCPU5001、RAMなどの主記憶装置5002、および二次記憶装置としてメモリカード5003を備える。
本実施例におけるファイルシステム処理プログラム5005は使用済みセグメントリスト6013を有する。使用済みセグメントリスト6013は使用済みセグメントの番号をリストで管理する。
また第２のファイル削除モジュール6006は図5に示すフローチャートに従ってファイル削除処理を行う
さらに使用済みセグメントの消去モジュール6008は図6に示すフローチャートに従って使用済みセグメントの消去処理を行う。  
図４は、本発明の実施の形態２による情報処理システムの構成例を示すブロック図、図５は、図４の情報処理システムによるファイル削除処理例を示すフローチャート、図６は、図４の情報処理システムによる使用済みセグメントの消去処理例を示すフローチャートである。
【００７１】
本実施の形態２において、情報処理システムは、図４に示すように、前記実施の形態１と同様の構成からなり、異なる点は、メインボード４００１上で動作するファイルシステム処理部によって、使用中セグメントリスト４０１２、使用済みセグメントリスト４０１３、および消去済みセグメントリスト４０１４が管理されるところである。
【００７２】
この場合、情報処理システムは、メモリカード４００５のストレージ上にページとセグメントとからなる管理構造を有している。
【００７３】
ここで、使用中セグメントは、有意なデータの保存に使用されているものであり、消去済みセグメントは、有意なデータの保存に使用されておらず、さらに消去命令や消去用データの書き込みによって消去されたものである。また、使用済みページは、有意なデータの保存に使用されておらず、消去済みページには含まれないセグメントである。
【００７４】
メモリカード４００５のストレージ領域上には、前記実施の形態１と同様に、ファイルシステム領域４０１１が構成される。また、メモリ制御部４００８は、全てのデータが’０’である使用中イレースブロックは消去の対象とみなす機能を有している。
【００７５】
本実施の形態２においても、ファイルの作成や更新の際に新規セグメントが必要になった際には、前記実施の形態１の図２に示した処理を実行する。
【００７６】
一方、ファイルを削除する場合の処理は、前記実施の形態１と異なり、図５、および図６に示すフローチャートに従って処理を進める。
【００７７】
まず、図５において、ファイル削除処理が開始されると、ここで処理されるファイルを含むセグメントが、ファイル削除によって空になるか否か判断し（ステップＳ８００１）、空にならない場合には該セグメントからファイルを削除（ステップＳ８００２）して処理を終える。
【００７８】
また、ステップＳ８００１の処理において、セグメントが空になった場合には、該セグメントを使用中セグメントリスト４０１２から削除し（ステップＳ８００３）、該セグメントを消去済みセグメントリスト４０１４に追加（ステップＳ８００４）して処理が終了となる。
【００７９】
続いて、図５の処理により使用済みセグメントリスト４０１３に追加されたセグメントを、図６に示すフローチャートによって適宜消去し、消去済みセグメントリスト４０１４に移す。
【００８０】
図６において、使用済みセグメントの消去処理が開始されると、使用済みセグメントリスト４０１３からセグメントを１つ取り出し（ステップＳ９００１）、使用中セグメントのうち最末尾のセグメントａの内容を該セグメントにコピーし（ステップＳ９００２）、セグメントａに全て０を書き込み（ステップＳ９００３）、セグメントａを消去済みセグメントリスト４０１４に追加し（ステップＳ９００４）、処理を終える。
【００８１】
なお、図６に示す使用済みセグメント消去処理の開始タイミングとしては、たとえば、一定時間処理がなかった場合や、使用済みセグメントリスト４０１４が一定の長さを超えた場合、新規セグメント確保処理で容量不足エラー（図２、ステップＳ５００３の処理）が出た場合などがある。
【００８２】
それにより、本実施の形態２においても、不揮発性半導体メモリ４００７への書き込み時の不良イレースブロック発生に伴う領域縮退が生じても、ｎイレースブロック以内の不良であればデータロストを防ぐ効果が得られる。
【００８３】
また、書き込み時において、消去済みイレースブロックが準備されているので、書き込み性能の低下を防止することができる。
【００８４】
さらに、使用済みセグメントと消去済みセグメントとを厳密に分けて管理することで全般的な処理応答時間を改善することができる。
【００８５】
また、セグメントに相当する管理単位を持たないシステムにおいて使用済みページと消去済みページを分けて管理しても同様の効果を得ることができる。
【００８６】
（実施の形態３）
図７は、本発明の実施の形態３による情報処理システムによるファイルシステム領域のメタデータ再構成処理例を示すフローチャート、図８は、本発明の実施の形態３による情報処理システムによるセグメントのメタデータ再構成処理例を示すフローチャートである。
【００８７】
本実施の形態３では、前記実施の形態１，２と同様の構成情報処理システムにおいて、不揮発性半導体メモリ４００７のイレースブロック故障に伴い、ストレージ領域の縮退が発生した場合の対処技術例を示す。
【００８８】
ファイルシステムのマウント時や書き込み時などにストレージ領域長の縮退が検出されることがある。その場合、図７に示すファイルシステム領域のメタデータ再構成処理を実施し、その後、図８に示すセグメントのメタデータ再構成処理を実施することで縮退に対処する。
【００８９】
まず、ファイルシステム領域のメタデータ再構成処理が開始されると、ファイルシステム処理部における排他制御マネージャ（図示せず）がファイルシステム領域全体の書き込み排他権を取得し（ステップＳ１０００１）、現在のメタデータを取得する（ステップＳ１０００２）。
【００９０】
続いて、メタデータからリンクされた各セグメントを取得し、取得可能なもののリストＡを作成し（ステップＳ１０００３）、取得不可のセグメントが存在したか否か判断する（ステップＳ１０００４）。
【００９１】
このステップＳ１０００３の処理において、全てのセグメントが取得可能であった場合には、現在のファイルシステム領域の状態とファイルシステム領域のメタデータは整合性が取れていると判断できるため、ファイルシステム領域全体の書き込み排他権を開放し（ステップＳ１０００５）、処理を終える。
【００９２】
一方、ステップＳ１０００３の処理において、取得不可のセグメントがあった場合には、リストＡからメタデータを再構成する（ステップＳ１０００６）。
【００９３】
続いて、図８に示すセグメントのメタデータ再構成処理では、領域縮退の影響を受けるセグメントは最後尾に限られるため、まず最後尾セグメント全体の書き込み排他権を取得し（ステップＳ１１００１）、現在のメタデータを取得する（ステップＳ１１００２）。
【００９４】
その後、メタデータからリンクされた各ページを取得し取得可能なもののリストＢを作成し（ステップＳ１１００３）、取得不可のページが存在したか否かを判断する（ステップＳ１１００４）。
【００９５】
全てのページが取得可能であった場合には、セグメントの現状とセグメントのメタデータは整合性が取れていると判断できるため、最後尾セグメント全体の書き込み排他権を開放し（ステップＳ１１００５）して処理を終える。
【００９６】
一方、ステップＳ１１００４の処理において、取得不可のページがあった場合には、リストＢからメタデータを再構成し（ステップＳ１１００６）し、最後尾セグメントのページが全滅しているか否かを判断する（ステップＳ１１００７）。
【００９７】
全滅していなかった場合には、メタデータを上書きする（ステップＳ１１００８）。また、ステップＳ１１００７の処理で全滅していた場合には、最後尾セグメント全体の書き込み排他権を開放し（ステップＳ１１００９）、ファイルシステム領域全体の書き込み排他権を取得する（ステップＳ１１０１０）。
【００９８】
そして、ファイルシステム領域のメタデータから最後尾セグメントを削除し（ステップＳ１１０１１）、ファイルシステム領域全体の書き込み排他権を開放し（ステップＳ１１０１２）、新たな最後尾セグメントに不良がないか確認するためにステップＳ１１００１の処理に戻る。
【００９９】
なお、ここでは粒度の小さい順にページ、セグメント、ファイルシステム全体と階層化されたファイルシステムを例に挙げるが、より階層の深いファイルシステム、およびデータベース管理システムに対しても同様の手順を適宜繰り返し適用することで対処可能である。
【０１００】
それにより、本実施の形態３によっても、不揮発性半導体メモリ４００７への書き込み時の不良イレースブロック発生に伴う領域縮退が生じても、ｎイレースブロック以内の不良であればデータロストを防ぐ効果が得られる。
【０１０１】
また、書き込み時におおいて、消去済みイレースブロックが準備されているので、書き込み性能の低下を防止することができる。
【０１０２】
以上説明した実施例のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
（１）書き込み時の不良イレースブロック発生に伴う領域縮退が生じても、ストレージ機器におけるデータロストを防止することができる。
（２）また、ストレージ機器における書き込み性能の低下を防止することができる。
（３）  データ格納領域における末尾から所定の記憶領域数が常に消去済みであることを保証する。
【０１０３】
本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１０４】
本明細書で開示される実施例は、メモリカードなどのストレージデバイスにおけるデータ管理層によるデータ格納領域の管理技術に適している。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施の形態１による情報処理システムのブロック図である。
【図２】図１の情報処理システムによる新規ページ確保処理の一例を示すフローチャートである。
【図３】図１の情報処理システムによるファイルの削除処理の一例を示すフローチャートである。
【図４】本発明の実施の形態２による情報処理システムの構成例を示すブロック図である。
【図５】図４の情報処理システムによるファイル削除処理例を示すフローチャートである。
【図６】図４の情報処理システムによる使用済みセグメントの消去処理例を示すフローチャートである。
【図７】本発明の実施の形態３による情報処理システムによるファイルシステム領域のメタデータ再構成処理例を示すフローチャートである。
【図８】本発明の実施の形態３による情報処理システムによるセグメントのメタデータ再構成処理例を示すフローチャートである。
【図９】実施の形態１の情報処理システムの構成図でさる。
【図１０】実施の形態２の情報処理システムの構成図である。
【図１１】本発明者が検討した記憶素子の不良発生を考慮したオンライン記憶領域管理方式の構成概要を示した説明図である。
【図１２】本発明者が検討した不揮発性半導体メモリにおける状態遷移の説明図である。
【符号の説明】
【０１０６】
４００１  メインボード
４００２  使用中ページリスト
４００３  消去済みページリスト
４００４  汎用ストレージインタフェース
４００５  メモリカード
４００６  メモリ制御部
４００７  不揮発性半導体メモリ
４００８  使用中イレースブロックリスト
４００９  使用済みイレースブロックリスト
４０１０  消去済みイレースブロックリスト
４０１１  ファイルシステム領域
４０１２  使用中セグメントリスト
４０１３  使用済みセグメントリスト
４０１４  消去済みセグメントリスト
２００１  ウェアレベリング
２００２  不良イレースブロックの再割り当て
【図１】
2009043238.tif 000003
【図２】
2009043238.tif 000004
【図３】
2009043238.tif 000005
【図４】
2009043238.tif 000006
【図５】
2009043238.tif 000007
【図６】
2009043238.tif 000008
【図７】
2009043238.tif 000009
【図８】
2009043238.tif 000010
【図９】
2009043238.tif 000011
【図１０】
2009043238.tif 000012
【図１１】
2009043238.tif 000013
【図１２】
2009043238.tif 000014