JP2009043238A - 記憶領域管理方法および情報処理装置 - Google Patents

記憶領域管理方法および情報処理装置 Download PDF

Info

Publication number
JP2009043238A
JP2009043238A JP2008161131A JP2008161131A JP2009043238A JP 2009043238 A JP2009043238 A JP 2009043238A JP 2008161131 A JP2008161131 A JP 2008161131A JP 2008161131 A JP2008161131 A JP 2008161131A JP 2009043238 A JP2009043238 A JP 2009043238A
Authority
JP
Japan
Prior art keywords
storage area
management
storage
data
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008161131A
Other languages
English (en)
Inventor
Daisuke Ito
大輔 伊藤
Shinji Fujiwara
真二 藤原
Kazuo Otsuga
一雄 大津賀
Shinya Kajiyama
新也 梶山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008161131A priority Critical patent/JP2009043238A/ja
Priority to US12/219,051 priority patent/US20090024810A1/en
Publication of JP2009043238A publication Critical patent/JP2009043238A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ストレージ機器において、消去済みイレースブロックが少なくなった際の領域縮退に伴うデータ消失の危険性や、書き込み速度が大幅な低下などを防止する。
【解決手段】新規ページ確保処理において、使用済みページリストの長さが、任意のnページより長いかを判断し、長い場合、使用済みページリストから1ページを確保する。短い場合、容量不足エラーを返して処理を終了する。消去済みページリストのファイル削除は、処理されるページが、ファイル削除によって空になるかを判断し、空にならない場合、該ページからファイルを削除する。空になる場合、使用中ページの最末尾のページの内容を該ページにコピーし、最末尾のページに消去用データを書き込み、最末尾のページに含まれるイレースブロックを消去対象とする。続いて、最末尾のページを使用中ページリストから削除し、消去済みページリストに追加し、処理を終える。
【選択図】図1

Description

本発明は、ストレージ装置に関するデータ管理技術に関し、特に、ファイルシステム領域やデータベース領域によるデータ管理に関するもので、特に、ストレージ装置が有するファイルシステム領域やデータベース領域の管理に関するものである。
たとえば、ハードディスクドライブなどに例示されるストレージデバイス上で効率よくデータを管理する方法として、ファイルシステム技術やデータベース技術が知られている。
ファイルシステム技術は、主に数KB以上のサイズのファイルを大量に扱うための技術である。ストレージ上にファイルシステム領域と呼ばれる管理構造を作成し、このファイルシステム領域を主にオペレーティングシステムの一部として動作するファイルシステム処理部を介して操作する。ファイルシステム領域とファイルシステム処理部によってデータを管理するシステムをファイルシステムと呼ぶ。
また、データベース技術は、主に数十B程度のサイズのレコードを大量に扱うための技術である。ストレージ上にはデータベース領域と呼ばれる管理構造を作成し、このデータベース領域を主にオペレーティングシステム上で動作するデータベース管理プログラムを介して操作する。データベース領域とデータベース管理プログラムによってデータを管理するシステムをデータベース管理システムと呼ぶ。
さらに、ファイルシステム領域上にデータベース領域を作ったり、逆にデータベース領域上にファイルシステム領域を作ったりといった階層化が可能なことも多い。
これらファイルシステム技術やデータベース技術は主にハードディスクドライブ上で動作させることを念頭において開発されてきた。ハードディスクドライブの特性として記憶素子である磁性体の書き換え可能回数が事実上無制限であることが挙げられる。
このため、ファイルシステム技術やデータベース技術では、領域全体の管理情報であるメタデータを領域の先頭や末尾といった箇所に固定し、繰り返し上書きすることが多い。
一方、近年、フラッシュメモリなどの不揮発性半導体メモリに代表されるシリコンストレージによるハードディスクドライブの置き換えが進んでいる。
ここで、不揮発性半導体メモリは、記憶素子の最小単位であるメモリセルの書き換え可能回数が105 回程度とハードディスクドライブと比べて少ないため、ストレージ用途に用いる場合は、図11に示す仮想化技術を用いたウェアレベリング2001(書き換え回数均一化)や不良イレースブロックの再割り当て2002といった管理を行う必要がある。
一方で、一般にパリティを用いてデータを保護するため、一度書いたデータが読めなくなることはない。また、パリティやウェアレベリングの論理アドレスを保持するため、実データに加えてこれらパリティやウェアレベリングの論理アドレスをメモリセル上に保存する。
不揮発性半導体メモリでは、メモリセルの書き換え可能回数がハードディスクドライブと比べて少なく、また不良イレースブロックの存在や発生を前提とした使い方が要求され非常に扱い難いため、不揮発性半導体メモリを用いて構成されたメモリカードなどを用いることが近年の主流である。
ここで、イレースブロックとは、不揮発性半導体メモリにおける消去の最小単位を指す。不揮発性半導体メモリのメモリセルは、1セルごとの書き込み操作は’1’→’0’の方向にしか行えず、’0’→’1’の方向への変化はイレースブロック単位の消去操作でしか行えない。
不揮発性半導体メモリの大容量化が進むにつれ、イレースブロックのサイズも巨大化しており、現在のNAND型フラッシュメモリにおいては128KBや、それ以上のサイズとなっている。
また、メモリカードは、一般に不揮発性半導体メモリとメモリ制御部とがパッケージ化された構成からなる。不揮発性半導体メモリの寿命(105 回程度は、メモリベンダの推奨パリティビット長や予備イレースブロック数を守らないと達成できないが、これらのパラメータはメモリベンダ間や同一ベンダ内でも部品の世代間で異なる。
さらに、不揮発性半導体メモリのモデルサイクルは1年だがCPU(Central Processing Unit)/チップセットは2年程度であるため、最終製品のモデルサイクルを通して最新のビット単価が安い不揮発性半導体メモリを使い続けるにはメモリカードを用いるのが簡単かつ効果的である。
一般に、メモリ制御部を介して、ROM(Read Only Memory)やUSB(Universal Serial Bus)マスストレージといった汎用的なストレージのI/Oインタフェースをエミュレートし、既存のCPU、およびチップセットとの接続性を高めている。
さらに、予備イレースブロックとは不良イレースブロックの再割り当ての際に用いられるイレースブロックを指す。一般に、予備イレースブロックは不良イレースブロック再割り当てにのみ用いられるように設計する必要があり、更新時の代替イレースブロックに用いてはならない。
イレースブロックの物理的な状態としては、データが書き込まれているか否かの2通りだが、論理的には、図12に示すように、消去済み→使用中→使用済み(→消去済み)という3つの状態で管理される。
ここで、図12に示す消去済みイレースブロック(状態3001)とは、データが全て’1’に初期化されたイレースブロックを指す。メモリカードにおいては、消去済みイレースブロックは一般にリスト構造で管理され、新規セグメント確保や既存データ更新の際に用いられる。
ただし、メタデータ部分には書き換え回数など、’1’以外のデータが書かれている場合がある。さらに、使用中イレースブロックの割り当たっていない論理アドレス内のデータは’0’という前提の元で、全ての内包するセグメントのデータがたまたま’0’になった使用中イレースブロックは消去の対象とできる。
また、図12の使用中イレースブロック(状態3002)とはデータが書き込まれ、論理アドレスに割り当てられたイレースブロックを指す。メモリカード上のデータを外部から上書き更新する場合には、実際には別の消去済みイレースブロックにデータを書き込み、使用中イレースブロックを使用済みイレースブロック列に加えるという操作が行われる。
使用済みイレースブロック(状態3003)とは、使用中イレースブロックへの上書き更新操作によって生じたデータが書かれているがどの論理アドレスにも割り当てられていないイレースブロックのことを指す。
メモリ制御部によってアイドル時間に消去され、消去済みイレースブロックのリストに加えられる。また、例外的に全ての内包するセグメントのデータが’0’であったイレースブロックは論理アドレスに割り当たっていた場合でも使用済みイレースブロックとして扱うことが可能(3004)であり、消去の対象として扱うことも可能である。
ただし、メモリカードにおいては、パッケージ内にカプセル化され、外部向けの汎用ストレージI/Oインタフェースから状態変化を制御することはできないことがある。また、メモリカード製品によっては、汎用I/Oインタフェースを拡張し、イレースブロックが消去可能であることを伝える消去命令を特別に持つ場合がある。
このように、メモリカードを用いると、不揮発性半導体メモリに固有の雑多な管理を隠蔽し、一般的な汎用ストレージインタフェースを用いたストレージ操作が可能になる。
ところが、上記のような不揮発性半導体メモリを用いたストレージデバイスのデータ管理技術では、次のような問題点があることが本発明者により見い出された。
すなわち、メモリセルの書き換え可能回数などは完全に隠蔽することはできないため、メモリカードなどの記憶媒体を用いる場合でもハードディスク向けに開発されてきたファイルシステム技術やデータベース技術をそのまま適用すると問題が生じる場合がある。
メモリカード内部で消去済みイレースブロックが少なくなった時に、領域縮退に伴うデータ消失の危険性が高まったり、書き込み速度が大幅に低下したりといった問題が生じてしまう。
ここで、領域縮退とはメモリカードを用いる環境において、予備イレースブロックがなくなった状態で不良イレースブロックが生じた際に、ストレージ領域の物理長が小さくなって見える現象をさす。
また、ここで書き込み速度の低下とは、メモリカードを用いる環境において、消去済みイレースブロックがなくなった状態でデータの更新や挿入を行う場合に生じる。この場合は、まず使用済みイレースブロックを消去して消去済みイレースブロックを作成し、その消去済みイレースブロックにデータの更新や挿入を行う必要があるため、速度が低下してしまうことになる。
本発明の目的は、メモリカードなどのストレージデバイスにおいて、消去済みイレースブロックが少なくなっても、領域縮退に伴うデータ消失や書き込み速度の大幅な低下などを防止することのできる技術を提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
たとえば、アプリケーションが利用するデータを格納可能な複数の記憶領域で構成される記憶領域群を含むストレージ装置を管理するための記憶領域管理方法である。すなわち、ある記憶領域に格納されるデータをアプリケーションが利用しなくなった場合、記憶領域群の他の領域のうち、アプリケーションで利用されているデータが格納されている末尾の記憶領域からデータを当該ある記憶領域に移動し、移動元の記憶領域からデータを消去する。その移動元の記憶領域を消去済み記憶領域に設定する。そして、アプリケーションに記憶領域の割り当てを行う場合は、消去済み記憶領域数が、所定の記憶領域数より大きいか否か判断し、判断結果、大きい場合、消去済み記憶領域の末尾から所定の記憶領域数より前の消去済み記憶領域から記憶領域をアプリケーションに割り当て、小さい場合は、前記アプリケーションに対して割り当て不可通知を行う。
また、本発明は、排他制御マネージャを有した論理的なデータ管理層によってストレージ装置のデータ管理を行う記憶領域管理方法であって、該排他制御マネージャからデータ管理層全体の書き込み排他制御権を取得するステップと、排他制御権を取得したデータ管理層のセグメント管理構造体を取得するステップと、取得した該セグメント管理構造体によって管理された全ての記憶領域を取得し、その中から取得可能なものをリストアップするステップと、該リストアップしたリストに基づき、取得不可能な記憶領域の有無を判断するステップと、取得不可能な記憶領域があったと判断された場合に、リストアップされたリストに基づいてセグメント管理構造体を再構成するステップとを有し、データ管理層への初回アクセス時にデータ管理層をマウントする際に、ストレージ装置中の記憶容量が変更されていた際にデータ管理層において記憶容量を変更するものである。
さらに、本発明は、排他制御マネージャを有した論理的なデータ管理層によってストレージ装置のデータ管理を行う記憶領域管理方法であって、該排他制御マネージャから最後尾の記憶領域全体の書き込み排他制御権を取得するステップと、排他制御権を取得した記憶領域のセグメント管理構造体を取得するステップと、取得したセグメント管理構造体によって管理された全ての記憶領域を取得し、実際に取得可能なものをリストアップするステップと、リストアップされたリストに基づいて、取得不可能な記憶領域の有無を判断するステップと、取得不可能なセグメントがあったと判断された際に、リストアップされたリストに基づいて、セグメント管理構造体を再構成するステップと、再構成したセグメント管理構造体が利用可能な記憶領域を含まない場合に、排他制御マネージャからデータ管理層全体の書き込み排他制御権を取得するステップと、排他制御権を取得したデータ管理層のセグメント管理構造体を取得するステップと、取得したセグメント管理構造体から、排他制御マネージャから最後尾の記憶領域全体の書き込み排他制御権を取得したセグメントを取り除くステップとを有し、ストレージ装置の容量が変更されたことを検出した場合にはデータ管理層において記憶容量の変更を処理するものである。
また、本願のその他の発明の概要を簡単に示す。
予め定義される任意の自然数nを用いて、メモリカードなどのストレージ機器における仮想ストレージ領域中の末尾nイレースブロックを消去済みとなるよう管理する。
しかし、ストレージ機器の種類によっては外部からイレースブロックを操作するインタフェースがない場合がある。そのような場合には、m個の記憶領域がnイレースブロックと等しい容量になるように定義される自然数mを用いて、ファイルシステム領域やデータベース領域の末尾m個の記憶領域を消去済み記憶領域とし、対応するイレースブロックが消去可能であることをメモリカードに伝える。
ここで、予め自然数pが与えられた場合はn=pとし、そうでない場合はファイルシステム処理部、もしくはデータベース管理プログラム、またはOS(Operating System)やその他のミドルウエアによって定義される自然数qを用いてn=qとする。
上記本願発明の一態様により、記憶領域群において、末尾から所定の記憶領域数が消去済みであることを保証することができる。また、ストレージ機器の性能を低下させることなく、信頼性を向上させることができる
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図9は本実施例における情報処理システムを実現する装置5020の構成を示す。該装置はCPU5001、RAM (Random Access Memory) などの主記憶装置5002、および二次記憶装置としてメモリカード5003を備える計算機である。メモリカード5003とは、ストレージインターフェース5100を介して接続される。
CPU5001は主記憶装置5002上のオペレーティングシステム5004、ファイルシステム処理プログラム5005、およびAP実行部5019を実行することで、メモリカード5003上のデータ管理を行う。
AP実行部5019は、本実施例における情報処理システムの機能を実行し、その際にメモリカード5003へのアクセスが必要になった場合にファイルシステム処理プログラム5005に処理を委譲する。
ファイルシステム処理プログラム5005は、第1のファイル削除モジュール5006、新規セグメント確保モジュール5007、使用済みセグメントの消去モジュール5008、ファイルシステムメタデータ再編成モジュール5009モジュール5009、セグメントメタデータ再編成モジュール5010、使用中セグメントリスト5011、および消去済みセグメントリスト5012を有する。
第1のファイル削除モジュール5006は、図3に示すフローチャートに従ってファイルの削除処理を行う。
新規セグメント確保モジュール5007は図2に示すフローチャートに従って新規セグメント確保処理を行う。
ファイルシステムメタデータ再編成モジュール5009モジュール5009は図7に示すフローチャートに従ってをファイルシステムメタデータ再編成処理行う。
セグメントメタデータ再編成モジュール5010は図8に示すフローチャートに従ってセグメントメタデータ再編成処理を行う。
使用中セグメントリスト5011、消去済みセグメントリスト5012はそれぞれ使用中および消去済みセグメントの番号をリストで管理する。
メモリカード5003は不揮発性半導体メモリ5013とメモリ制御部5014を備える。不揮発性半導体メモリ5013とメモリ制御部5014は、接続されている。
不揮発性半導体メモリ5013の内部はn個のイレースブロック5015に分割されている。イレースブロック5014とは不揮発性半導体メモリ5013の消去可能な管理単位であり、それぞれ固有の番号で識別される。
メモリ制御部5014は使用中イレースブロックリスト5016、使用済みイレースブロックリスト5017、および消去済みイレースブロックリスト5018を管理することで、図12に示した不揮発性半導体メモリにおける状態遷移を管理する。
使用中イレースブロックリスト5016、使用済みイレースブロックリスト5017、および消去済みイレースブロックリスト5018は、それぞれイレースブロック5014の番号をリストで管理する。なお、メモリカード5003は、装置5020の外部にあっても内部にあっても構わない。
図1は、本発明の実施の形態1による情報処理システムのブロック図、図2は、図1の情報処理システムによる新規セグメント確保処理の一例を示すフローチャート、図3は、図1の情報処理システムによるファイルの削除処理の一例を示すフローチャートである。
本実施の形態1において、情報処理システムは、たとえば、パーソナルコンピュータなどの計算機システムからなる。情報処理システムには、図1に示すように、メインボード4001が設けられている。
メインボード4001は、メモリ、およびCPUや拡張スロットなどの基本的な電子部品が搭載されるボードである。メインボード4001には、たとえば、SD(Secure Digital)カードなどに代表されるメモリカード4005が、たとえば、ATAやUSBマスストレージといった標準的な汎用ストレージインタフェース4004を介してメインボード4001に接続されている。
ここでは、ファイルシステムやデータベース管理システムによってストレージ上の区画が管理される。一般にファイルシステムやデータベース管理システムでは、セグメントと呼ばれる単位でストレージ上の区画を管理する。セグメントはストレージ上の最小のアクセス単位であるページを複数個並べた構造である。
また、一般にファイルシステムやデータベースでは、使用中セグメントと使用済みセグメントとがそれぞれ管理されるが、本システムでは、使用済みセグメントの代わりに消去済みセグメントを管理することを特徴とする。
使用中セグメントは、有意なデータの保存に使用されているセグメントであり、消去済みセグメントは、有意なデータの保存に使用されておらず、さらに消去命令や消去用データの書き込みによって消去されたセグメントである。使用済みセグメントは、有意なデータの保存に使用されていないが、消去命令や消去用データが書き込まれていないため消去済みセグメントには含まれないセグメントのことである。
これら使用中セグメント、使用済みセグメント、および消去済みセグメントや、その他記憶領域の管理情報を纏めてセグメント管理構造体やスーパーブロックと呼ばれる記憶領域中の特別な場所に保存する。セグメント管理構造体は記憶領域の先頭付近におかれることが多い。
メインボード4001で動作するファイルシステム処理部は、使用中セグメントのリストである使用中セグメントリスト4002と消去済みセグメントのリストからなる消去済みセグメントリスト4003の管理を行う。
ストレージ装置となるメモリカード4005は、該メモリカード4005の制御を司るメモリ制御部4006、ならびにフラッシュメモリに例示される不揮発性半導体メモリ4007を含む。メモリカード4005は、たとえば、ATA(Advanced Technology Attachment)やUSBマスストレージといった標準的なストレージI/Oインタフェースによってアクセス可能なものであれば特に制約はない。
また、メモリ制御部4006では、使用中イレースブロックリスト4008、使用済みイレースブロックリスト4009、および消去済みイレースブロックリスト4010をそれぞれ管理している。つまり、メモリ制御部4006は、不揮発性半導体メモリの記憶領域の使用状況を管理している。
ここで、イレースブロックとは不揮発性半導体メモリ4007における消去の最小単位である。また、使用済みイレースブロックは、使用中イレースブロックへの上書き更新操作によって生じたデータが書かれているがどの論理アドレスにも割り当てられていないイレースブロックである。
さらに、消去済みイレースブロックは、データが全て’1’に初期化されたイレースブロックであり、使用中イレースブロックは、データが書き込まれ、論理アドレスに割り当てられたイレースブロックである。
メモリカード4005が提供するストレージ領域上には、主に数KB以上のサイズのファイルを管理するファイルシステム領域4011が構成される。ファイルシステム領域4011は、前述したファイルシステム処理部によってデータ管理を行う。また、メモリ制御部4006は、全てのデータが’0’である使用中イレースブロックを消去の対象とみなす機能を持つ。
次に、本実施の形態1における情報処理システムによるセグメント管理技術について説明する。
まず、AP実行部5019がファイルの作成や更新をファイルシステム処理プログラム5005に委譲した際に新規セグメントが必要になった際の新規セグメント確保処理について、図2のフローチャートを用いて説明する。
新規セグメント確保処理が開始されると、消去済みセグメントリスト4003の長さが、予め任意に設定されたn(自然数)セグメントより長いか否かを判断し(ステップS5001)、長かった場合には消去済みセグメントリスト4003から1セグメントを確保して(ステップS5002)処理を終える。一方、ステップS5001の処理において、長くなかった場合には容量不足エラーを返し(ステップS5003)、処理が終了となる。
次にAP実行部5019がファイルの削除をファイルシステム処理プログラム5005に委譲した際のファイル削除処理について、図3のフローチャートを用いて説明する。
ファイル削除処理が開始されると、ここで処理されるファイルを含むセグメントが、ファイル削除によって空になるか否か判断し(ステップS6001)、空にならない場合には該セグメントからファイルを削除し(ステップS6002)、処理を終了する。
ファイルの削除方法として、たとえば、実際にファイルが使用していたセグメントに’0’を書き込む方法や、セグメントの管理情報だけを操作してファイルが使用していたセグメントにはデータが割り当たっていないと見なすものなどがある。
一方、ステップS6001の処理において、該セグメントが空になった場合には、使用中セグメントのうち最末尾のセグメントaの内容を該セグメントにコピーし(ステップS6003)、セグメントaに消去用データとして全て’0’を書き込む(ステップS6004)。
この操作によって、セグメントaに含まれるイレースブロックは、メモリ制御部4006の消去対象となる。続いて、セグメントaを使用中セグメントリスト4002から削除し(ステップS6005)、セグメントaを消去済みセグメントリスト4003に追加し(ステップS6006)、処理を終える。
ここで、使用しているメモリカード4006がブロック消去命令を有する場合は、ステップS6004の処理においてセグメントaに該当する箇所に消去命令を発行する。
なお、本実施の形態を実施する場合、セグメントのサイズをイレースブロックのサイズと等しいかより大きく取ると、空になったセグメントに全て’0’を書き込む操作(ステップS6004)によって、確実に該セグメントに含まれるイレースブロックを消去の対象とすることができる。
それにより、本実施の形態1によれば、不揮発性半導体メモリ4007への書き込み時の不良イレースブロック発生に伴う領域縮退が生じても、nイレースブロック以内の不良であればデータロストを防ぐ効果が得られる。
また、書き込み時におおいて、消去済みイレースブロックが準備されているので、書き込み性能の低下を防止することができる。
なお、ここでは、セグメント単位の管理について触れたが、小規模ストレージなどでページの数が少ない場合にはページを管理単位とする場合がある。
この場合には記憶領域中の特別な場所にはページ管理構造体が置かれ、使用中ページ、使用済みページおよび消去済みページが管理される。
さらに、将来的に複数のセグメントを纏めた上位の管理単位や、更に上位の管理単位を導入することも考えられるが、本発明はこれらすべての管理単位に対しても適用可能である。
(実施の形態2)
図10は本実施例における情報処理システムを実現する装置の構成のうち、図9との差分を示す。該装置はCPU5001、RAMなどの主記憶装置5002、および二次記憶装置としてメモリカード5003を備える。
本実施例におけるファイルシステム処理プログラム5005は使用済みセグメントリスト6013を有する。使用済みセグメントリスト6013は使用済みセグメントの番号をリストで管理する。
また第2のファイル削除モジュール6006は図5に示すフローチャートに従ってファイル削除処理を行う
さらに使用済みセグメントの消去モジュール6008は図6に示すフローチャートに従って使用済みセグメントの消去処理を行う。
図4は、本発明の実施の形態2による情報処理システムの構成例を示すブロック図、図5は、図4の情報処理システムによるファイル削除処理例を示すフローチャート、図6は、図4の情報処理システムによる使用済みセグメントの消去処理例を示すフローチャートである。
本実施の形態2において、情報処理システムは、図4に示すように、前記実施の形態1と同様の構成からなり、異なる点は、メインボード4001上で動作するファイルシステム処理部によって、使用中セグメントリスト4012、使用済みセグメントリスト4013、および消去済みセグメントリスト4014が管理されるところである。
この場合、情報処理システムは、メモリカード4005のストレージ上にページとセグメントとからなる管理構造を有している。
ここで、使用中セグメントは、有意なデータの保存に使用されているものであり、消去済みセグメントは、有意なデータの保存に使用されておらず、さらに消去命令や消去用データの書き込みによって消去されたものである。また、使用済みページは、有意なデータの保存に使用されておらず、消去済みページには含まれないセグメントである。
メモリカード4005のストレージ領域上には、前記実施の形態1と同様に、ファイルシステム領域4011が構成される。また、メモリ制御部4008は、全てのデータが’0’である使用中イレースブロックは消去の対象とみなす機能を有している。
本実施の形態2においても、ファイルの作成や更新の際に新規セグメントが必要になった際には、前記実施の形態1の図2に示した処理を実行する。
一方、ファイルを削除する場合の処理は、前記実施の形態1と異なり、図5、および図6に示すフローチャートに従って処理を進める。
まず、図5において、ファイル削除処理が開始されると、ここで処理されるファイルを含むセグメントが、ファイル削除によって空になるか否か判断し(ステップS8001)、空にならない場合には該セグメントからファイルを削除(ステップS8002)して処理を終える。
また、ステップS8001の処理において、セグメントが空になった場合には、該セグメントを使用中セグメントリスト4012から削除し(ステップS8003)、該セグメントを消去済みセグメントリスト4014に追加(ステップS8004)して処理が終了となる。
続いて、図5の処理により使用済みセグメントリスト4013に追加されたセグメントを、図6に示すフローチャートによって適宜消去し、消去済みセグメントリスト4014に移す。
図6において、使用済みセグメントの消去処理が開始されると、使用済みセグメントリスト4013からセグメントを1つ取り出し(ステップS9001)、使用中セグメントのうち最末尾のセグメントaの内容を該セグメントにコピーし(ステップS9002)、セグメントaに全て0を書き込み(ステップS9003)、セグメントaを消去済みセグメントリスト4014に追加し(ステップS9004)、処理を終える。
なお、図6に示す使用済みセグメント消去処理の開始タイミングとしては、たとえば、一定時間処理がなかった場合や、使用済みセグメントリスト4014が一定の長さを超えた場合、新規セグメント確保処理で容量不足エラー(図2、ステップS5003の処理)が出た場合などがある。
それにより、本実施の形態2においても、不揮発性半導体メモリ4007への書き込み時の不良イレースブロック発生に伴う領域縮退が生じても、nイレースブロック以内の不良であればデータロストを防ぐ効果が得られる。
また、書き込み時において、消去済みイレースブロックが準備されているので、書き込み性能の低下を防止することができる。
さらに、使用済みセグメントと消去済みセグメントとを厳密に分けて管理することで全般的な処理応答時間を改善することができる。
また、セグメントに相当する管理単位を持たないシステムにおいて使用済みページと消去済みページを分けて管理しても同様の効果を得ることができる。
(実施の形態3)
図7は、本発明の実施の形態3による情報処理システムによるファイルシステム領域のメタデータ再構成処理例を示すフローチャート、図8は、本発明の実施の形態3による情報処理システムによるセグメントのメタデータ再構成処理例を示すフローチャートである。
本実施の形態3では、前記実施の形態1,2と同様の構成情報処理システムにおいて、不揮発性半導体メモリ4007のイレースブロック故障に伴い、ストレージ領域の縮退が発生した場合の対処技術例を示す。
ファイルシステムのマウント時や書き込み時などにストレージ領域長の縮退が検出されることがある。その場合、図7に示すファイルシステム領域のメタデータ再構成処理を実施し、その後、図8に示すセグメントのメタデータ再構成処理を実施することで縮退に対処する。
まず、ファイルシステム領域のメタデータ再構成処理が開始されると、ファイルシステム処理部における排他制御マネージャ(図示せず)がファイルシステム領域全体の書き込み排他権を取得し(ステップS10001)、現在のメタデータを取得する(ステップS10002)。
続いて、メタデータからリンクされた各セグメントを取得し、取得可能なもののリストAを作成し(ステップS10003)、取得不可のセグメントが存在したか否か判断する(ステップS10004)。
このステップS10003の処理において、全てのセグメントが取得可能であった場合には、現在のファイルシステム領域の状態とファイルシステム領域のメタデータは整合性が取れていると判断できるため、ファイルシステム領域全体の書き込み排他権を開放し(ステップS10005)、処理を終える。
一方、ステップS10003の処理において、取得不可のセグメントがあった場合には、リストAからメタデータを再構成する(ステップS10006)。
続いて、図8に示すセグメントのメタデータ再構成処理では、領域縮退の影響を受けるセグメントは最後尾に限られるため、まず最後尾セグメント全体の書き込み排他権を取得し(ステップS11001)、現在のメタデータを取得する(ステップS11002)。
その後、メタデータからリンクされた各ページを取得し取得可能なもののリストBを作成し(ステップS11003)、取得不可のページが存在したか否かを判断する(ステップS11004)。
全てのページが取得可能であった場合には、セグメントの現状とセグメントのメタデータは整合性が取れていると判断できるため、最後尾セグメント全体の書き込み排他権を開放し(ステップS11005)して処理を終える。
一方、ステップS11004の処理において、取得不可のページがあった場合には、リストBからメタデータを再構成し(ステップS11006)し、最後尾セグメントのページが全滅しているか否かを判断する(ステップS11007)。
全滅していなかった場合には、メタデータを上書きする(ステップS11008)。また、ステップS11007の処理で全滅していた場合には、最後尾セグメント全体の書き込み排他権を開放し(ステップS11009)、ファイルシステム領域全体の書き込み排他権を取得する(ステップS11010)。
そして、ファイルシステム領域のメタデータから最後尾セグメントを削除し(ステップS11011)、ファイルシステム領域全体の書き込み排他権を開放し(ステップS11012)、新たな最後尾セグメントに不良がないか確認するためにステップS11001の処理に戻る。
なお、ここでは粒度の小さい順にページ、セグメント、ファイルシステム全体と階層化されたファイルシステムを例に挙げるが、より階層の深いファイルシステム、およびデータベース管理システムに対しても同様の手順を適宜繰り返し適用することで対処可能である。
それにより、本実施の形態3によっても、不揮発性半導体メモリ4007への書き込み時の不良イレースブロック発生に伴う領域縮退が生じても、nイレースブロック以内の不良であればデータロストを防ぐ効果が得られる。
また、書き込み時におおいて、消去済みイレースブロックが準備されているので、書き込み性能の低下を防止することができる。
以上説明した実施例のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
(1)書き込み時の不良イレースブロック発生に伴う領域縮退が生じても、ストレージ機器におけるデータロストを防止することができる。
(2)また、ストレージ機器における書き込み性能の低下を防止することができる。
(3) データ格納領域における末尾から所定の記憶領域数が常に消去済みであることを保証する。
本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本明細書で開示される実施例は、メモリカードなどのストレージデバイスにおけるデータ管理層によるデータ格納領域の管理技術に適している。
本発明の実施の形態1による情報処理システムのブロック図である。 図1の情報処理システムによる新規ページ確保処理の一例を示すフローチャートである。 図1の情報処理システムによるファイルの削除処理の一例を示すフローチャートである。 本発明の実施の形態2による情報処理システムの構成例を示すブロック図である。 図4の情報処理システムによるファイル削除処理例を示すフローチャートである。 図4の情報処理システムによる使用済みセグメントの消去処理例を示すフローチャートである。 本発明の実施の形態3による情報処理システムによるファイルシステム領域のメタデータ再構成処理例を示すフローチャートである。 本発明の実施の形態3による情報処理システムによるセグメントのメタデータ再構成処理例を示すフローチャートである。 実施の形態1の情報処理システムの構成図でさる。 実施の形態2の情報処理システムの構成図である。 本発明者が検討した記憶素子の不良発生を考慮したオンライン記憶領域管理方式の構成概要を示した説明図である。 本発明者が検討した不揮発性半導体メモリにおける状態遷移の説明図である。
符号の説明
4001 メインボード
4002 使用中ページリスト
4003 消去済みページリスト
4004 汎用ストレージインタフェース
4005 メモリカード
4006 メモリ制御部
4007 不揮発性半導体メモリ
4008 使用中イレースブロックリスト
4009 使用済みイレースブロックリスト
4010 消去済みイレースブロックリスト
4011 ファイルシステム領域
4012 使用中セグメントリスト
4013 使用済みセグメントリスト
4014 消去済みセグメントリスト
2001 ウェアレベリング
2002 不良イレースブロックの再割り当て

Claims (13)

  1. アプリケーションが利用するデータを格納可能な複数の記憶領域で構成される記憶領域群を含むストレージ装置を管理するための記憶領域管理方法であって、
    第1の記憶領域に格納されるデータが前記アプリケーションで利用されなくなる場合、前記記憶領域群の他の領域のうち、前記アプリケーションで利用されているデータが格納される末尾の記憶領域を特定し、
    前記特定された記憶領域に格納されているデータを前記第1の記憶領域に移動し、前記特定された記憶領域からデータを消去し、
    前記特定された記憶領域を消去済み記憶領域に設定し、
    前記設定された消去済み記憶領域を含む消去済み記憶領域数が、所定の記憶領域数より大きいか否か判断し、判断結果、大きい場合、消去済み記憶領域の末尾から所定の記憶領域数より前の消去済み記憶領域から記憶領域をアプリケーションに割り当て、
    小さい場合は、前記アプリケーションに対して割り当て不可通知を行うこと
    を特徴とする記憶領域管理方法。
  2. 請求項1記載の記憶領域管理方法において、
    前記記憶領域の管理単位は、
    前記ストレージ装置における最小のアクセス単位であるページからなる第1の管理単位、複数のページを纏めたセグメントからなる第2の管理単位、または前記第1の管理層、前記第2の管理層を含む複数の管理層に階層化された第3の管理単位のいずれかであることを特徴とする記憶領域管理方法。
  3. 請求項1記載の記憶領域管理方法において、
    前記使用済みの記憶領域の内容を消去する際に前記ストレージ装置に見合った消去命令を発行することを特徴とする記憶領域管理方法。
  4. 請求項1記載の記憶領域管理方法において、
    前記使用済みの記憶領域の内容を消去する際は、
    前記使用済み記憶領域に対して、消去用データを書き込むことを特徴とする記憶領域管理方法。
  5. 排他制御マネージャを有した論理的なデータ管理層によってストレージ装置のデータ管理を行う記憶領域管理方法であって、
    前記排他制御マネージャからデータ管理層全体の書き込み排他制御権を取得するステップと、
    前記排他制御権を取得したデータ管理層のページ管理構造体を取得するステップと、
    取得した前記ページ管理構造体によって管理された全ての記憶領域を取得し、その中から取得可能なものをリストアップするステップと、
    前記リストアップしたリストに基づき、取得不可能な記憶領域の有無を判断するステップと、
    取得不可能な記憶領域があったと判断された場合に、前記リストアップされたリストに基づいて前記ページ管理構造体を再構成するステップとを有し、
    前記データ管理層への初回アクセス時に前記データ管理層をマウントする際に、前記ストレージ装置中の記憶容量が変更されていた際に前記データ管理層において記憶容量を変更することを特徴とする記憶領域管理方法。
  6. 請求項5記載の記憶領域管理方法において、
    前記記憶領域の管理単位は、
    前記ストレージ装置における最小のアクセス単位であるページからなる第1の管理単位、複数のページを纏めたセグメントからなる第2の管理単位、または前記第1の管理層、前記第2の管理層を含む複数の管理層に階層化された第3の管理単位のいずれかであることを特徴とする記憶領域管理方法。
  7. 排他制御マネージャを有した論理的なデータ管理層によってストレージ装置のデータ管理を行う記憶領域管理方法であって、
    前記排他制御マネージャから最後尾の記憶領域全体の書き込み排他制御権を取得するステップと、
    前記排他制御権を取得した記憶領域のページ管理構造体を取得するステップと、
    取得した前記ページ管理構造体によって管理された全ての記憶領域を取得し、実際に取得可能なものをリストアップするステップと、
    前記リストアップされたリストに基づいて、取得不可能な記憶領域の有無を判断するステップと、
    取得不可能なページがあったと判断された際に、前記リストアップされたリストに基づいて、ページ管理構造体を再構成するステップと、
    再構成した前記ページ管理構造体が利用可能な記憶領域を含まない場合に、前記排他制御マネージャからデータ管理層全体の書き込み排他制御権を取得するステップと、
    前記排他制御権を取得したデータ管理層のセグメント管理構造体を取得するステップと、
    取得した前記セグメント管理構造体から、前記排他制御マネージャから最後尾の記憶領域全体の書き込み排他制御権を取得したセグメントを取り除くステップとを有し、
    前記ストレージ装置の容量が変更されたことを検出した場合には前記データ管理層において記憶容量の変更を処理することを特徴とする記憶領域管理方法。
  8. 請求項7記載の記憶領域管理方法において、
    前記記憶領域の管理単位は、
    前記ストレージ装置における最小のアクセス単位であるページからなる第1の管理単位、複数のページを纏めたセグメントからなる第2の管理単位、または前記第1の管理層、前記第2の管理層を含む複数の管理層に階層化された第3の管理単位のいずれかであることを特徴とする記憶領域管理方法。
  9. 情報処理装置であって、
    アプリケーションが利用するデータを格納可能な複数の記憶領域で構成される記憶領域群を含む記憶媒体が接続される外部インターフェースと、
    外部インターフェースに接続されるメインボードと、を備え、
    前記メインボードは、前記アプリケーションが実行されるプロセッサとメモリとを有し、
    前記プロセッサは、第1の記憶領域に格納されるデータが前記アプリケーションで利用されなくなる場合、前記記憶領域群の他の領域のうち、前記アプリケーションで利用されているデータが格納される末尾の記憶領域を特定し、
    前記特定された記憶領域に格納されているデータを前記第1の記憶領域に移動し、前記特定された記憶領域からデータを消去し、
    前記特定された記憶領域を消去済み記憶領域に設定し、
    消去済み記憶領域数が、所定の記憶領域数より大きいか否か判断し、判断結果、大きい場合、消去済み記憶領域の末尾から所定の記憶領域数より前の消去済み記憶領域から記憶領域をアプリケーションに割り当て、
    小さい場合は、前記アプリケーションに対して割り当て不可通知を行うこと、を特徴とする情報処理装置。
  10. 請求項9記載の情報処理装置であって、
    前記記憶領域の管理単位は、
    前記記憶媒体における最小のアクセス単位であるページからなる第1の管理単位、複数のページを纏めたセグメントからなる第2の管理単位、または前記第1の管理層、前記第2の管理層を含む複数の管理層に階層化された第3の管理単位のいずれかであることを特徴とする情報処理装置。
  11. 請求項9記載の情報処理装置であって、
    前記プロセッサは、前記使用済みの記憶領域の内容を消去する際に前記記憶媒体が認識可能な消去命令を前記記憶媒体に前記外部インターフェースを介して発行する、ことを特徴とする情報処理装置。
  12. 請求項9記載の情報処理装置において、
    前記プロセッサは、前記使用済みの記憶領域の内容を消去する際、前記使用済み記憶領域に対して、消去用データを書き込む指示を前記外部インターフェースを介して前記記憶媒体に発行する、ことを特徴とする情報処理装置。
  13. 請求項9記載の情報処理装置であって、
    前記プロセッサは、
    前記記憶媒体の記憶領域への書き込み排他制御権を取得し、
    前記排他制御権を取得したデータ管理層のページ管理構造体を取得し、
    取得した前記ページ管理構造体によって管理された全ての記憶領域を取得し、その中から取得可能なものをリストアップし、
    前記リストアップしたリストに基づき、取得不可能な記憶領域の有無を判断し、
    取得不可能な記憶領域があったと判断された場合に、前記リストアップされたリストに基づいて前記ページ管理構造体を再構成し、
    前記データ管理層への初回アクセス時に前記データ管理層をマウントする際に、前記記憶媒体中の記憶容量が変更されていた際に前記データ管理層において記憶容量を変更することを特徴とする情報処理装置。
JP2008161131A 2007-07-19 2008-06-20 記憶領域管理方法および情報処理装置 Pending JP2009043238A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008161131A JP2009043238A (ja) 2007-07-19 2008-06-20 記憶領域管理方法および情報処理装置
US12/219,051 US20090024810A1 (en) 2007-07-19 2008-07-15 Memory area management method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007188169 2007-07-19
JP2008161131A JP2009043238A (ja) 2007-07-19 2008-06-20 記憶領域管理方法および情報処理装置

Publications (1)

Publication Number Publication Date
JP2009043238A true JP2009043238A (ja) 2009-02-26

Family

ID=40443879

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008161131A Pending JP2009043238A (ja) 2007-07-19 2008-06-20 記憶領域管理方法および情報処理装置

Country Status (1)

Country Link
JP (1) JP2009043238A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619154B2 (en) 2013-01-18 2017-04-11 Hitachi, Ltd. Computer system, data management method, and host computer
WO2017126096A1 (ja) * 2016-01-22 2017-07-27 株式会社日立製作所 記憶装置および記憶装置の制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619154B2 (en) 2013-01-18 2017-04-11 Hitachi, Ltd. Computer system, data management method, and host computer
WO2017126096A1 (ja) * 2016-01-22 2017-07-27 株式会社日立製作所 記憶装置および記憶装置の制御方法
JPWO2017126096A1 (ja) * 2016-01-22 2018-08-30 株式会社日立製作所 記憶装置および記憶装置の制御方法

Similar Documents

Publication Publication Date Title
US10783071B2 (en) Data storage device and operating method thereof, wherein mapping table for valid data of source block that has not been copied to destination block has a higher priority than mapping information collected by reverse scanning from end of the destination block
US10606513B2 (en) Volatility management for non-volatile memory device
CN109117084B (zh) 将逻辑储存块动态地重新调整尺寸
JP3712231B2 (ja) 改善されたフラッシュファイルシステム
US9361044B2 (en) Power-safe data management system
US9734051B2 (en) Garbage collection and defragmentation for solid state drives (SSD) and shingled magnetic recording (SMR) drives
US9645894B2 (en) Data storage device and flash memory control method
US7146455B2 (en) System and method for optimized access to memory devices requiring block writing
EP1909184B1 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
TWI297893B (en) Method and apparatus for managing an erase count block
CN108021510A (zh) 操作对多重名称空间进行管理的存储装置的方法
US11301331B2 (en) Storage device and operating method of storage device
JP4301301B2 (ja) 不揮発性半導体記憶装置およびその管理方法
KR20180002259A (ko) 계층적 플래시 변환 레이어 구조 및 그 설계 방법
JP2010267290A (ja) 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置
CN103729262A (zh) 操作系统热备份方法、装置及文件系统重构方法
US20060149899A1 (en) Method and apparatus for ongoing block storage device management
US20080301393A1 (en) Apparatus and method of processing data of non-volatile memory
US11782828B2 (en) Efficiently purging non-active blocks in NVM regions using virtblock arrays
US10705954B2 (en) Efficiently purging non-active blocks in NVM regions while preserving large pages
US20090024810A1 (en) Memory area management method
JP2009043238A (ja) 記憶領域管理方法および情報処理装置
JP5996129B2 (ja) 不揮発性半導体マスメモリを安全に消去するための方法、コンピュータシステム、及びコンピュータプログラム
CN111949212B (zh) 基于自定义开放通道ssd的文件系统及文件管理方法
CN111813708B (zh) 用于存储装置的块映射系统和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130402