JPH09152983A - フラッシュメモリに内在するファイルシステムにおけるリエントラントガーベジコレクション処理 - Google Patents

フラッシュメモリに内在するファイルシステムにおけるリエントラントガーベジコレクション処理

Info

Publication number
JPH09152983A
JPH09152983A JP8138161A JP13816196A JPH09152983A JP H09152983 A JPH09152983 A JP H09152983A JP 8138161 A JP8138161 A JP 8138161A JP 13816196 A JP13816196 A JP 13816196A JP H09152983 A JPH09152983 A JP H09152983A
Authority
JP
Japan
Prior art keywords
storage
event
file
storage area
memory
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
JP8138161A
Other languages
English (en)
Inventor
Michael W Balk
ダブリュー.ボーク マイケル
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.)
LE-SENTO TECHNOL Inc
Nokia of America Corp
Original Assignee
LE-SENTO TECHNOL Inc
Lucent Technologies Inc
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 LE-SENTO TECHNOL Inc, Lucent Technologies Inc filed Critical LE-SENTO TECHNOL Inc
Publication of JPH09152983A publication Critical patent/JPH09152983A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【課題】 不必要なファイルを除去することによりデー
タ記憶装置中の使用可能な記憶空間を回復するための方
法および装置を提供する。 【解決手段】 二段階ガーベジコレクション手段が、リ
ードモストリメモリ装置を形成するデータ記憶装置中に
提供される。該手段は、不必要なファイルを含むメモリ
装置の第1の記憶領域に格納されたファイルにタグ付け
をするためのタグ付け手段を含む。分析段階においてイ
ベント生成手段が求められる。各イベントは、メモリ動
作および関連データを含み、各イベントの以前の実行結
果を修正することなく、その実行の中断により、別のイ
ベントの実行の前に再実行可能である。生成されたイベ
ントは、第1の記憶領域の内部でないイベント記憶領域
に書き込まれる。次に実行段階が求められ、マイクロプ
ロセッサにより実行される。最後に第2の記憶領域の外
側にあるファイルを消去するための手段が提供される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、とりわけ半導体メ
モリ、ディスクドライブ装置およびテープドライブ装置
を含むデータ記憶装置のためのファイルシステムに係
り、特に使用可能な記憶空間を回復するためのガーベジ
コレクションプロセスを遂行するファイルシステムに関
する。
【0002】
【従来の技術】ほとんどのコンピュータシステムおよび
他のインテリジェント計算装置において、マイクロプロ
セッサまたは中央演算処理装置は、メインメモリおよび
二次メモリからなる冗長メモリ記憶システムに結合され
ている。メインメモリは、プログラム実行において使用
するためにマイクロプロセッサにより迅速に検索できる
情報の一時的記憶のために使用される。二次メモリは、
典型的には、他の非アクティブプログラムアプリケーシ
ョンのために必要とされる情報の長期間記憶のために、
メインメモリの付加物として使用される。したがって、
メインメモリ記憶装置は、典型的には、半導体メモリの
ような高速装置からなり、二次メモリ記憶装置は、より
遅い電気機械的ディスク記憶装置からなる。
【0003】半導体メモリ装置に関して、そのようなメ
モリは、書き込みまたは消去ができない持久性メモリで
あるリードオンリーメモリ(ROM)装置、バイトレベ
ルにおいて電気的に消去可能な非持久性読み出し書き込
みメモリ記憶装置であるランダムアクセスメモリ(RA
M)装置、および書き込み読み出し可能であり、チップ
レベル、セクタレベルまたはバイトレベルのいずれにお
いても消去可能な持久性メモリであるリードモストリメ
モリ(read-mostly memory)装置を含み得る。リードモ
ストリメモリ装置の分類は、消去可能なプログラマブル
リードオンリメモリ(EPROM)装置、電気的に消去
可能なプログラマブルリードオンリメモリ(EEPRO
M)装置およびフラッシュメモリ装置を含む。EPRO
M装置は、新しい情報をそれに再プログラムまたは書き
込みするために、その全体をチップレベルで消去しなけ
ればならないが、EEPROMおよびフラッシュメモリ
装置は、マイクロプロセッサが情報をバイトレベルおよ
びセクタレベルのそれぞれにおいて読み出しおよび書き
込み可能とすることにより、より大きな柔軟性を提供す
る。
【0004】近年、リードモストリメモリ装置は、装置
の純粋な半導体媒体上にデータファイルおよびアプリケ
ーションプログラムの記憶を可能にするように設計され
てきた。したがって、システムに内在するファイリング
システムの使用により、リードモストリメモリ装置は、
コンピュータシステムなどのための二次メモリとして使
用されることができ、したがって従来比較的遅かった二
次メモリから一次メモリへの情報のアップロードを減少
させる。
【0005】いくつかのメモリシステムにおいて、使用
可能なアドレス空間は、一般にガーベジコレクションプ
ロセスとして知られているものにより回復される。現存
する多くの古典的ガーベジコレクションスキームがある
が、1つの特別なスキームが、多段階プロセスにおいて
現在使用されていないより古いファイルを取り除くこと
により使用可能なアドレス空間を回復する「マーク・ア
ンド・スイープ(markand sweep)」スキームとして知
られている。正常なメモリ書き込みの間に、利用可能な
メモリ記憶がある最小のしきい値に達するまで、記憶は
記憶空間の空きリストから割り当てられる。しきい値に
達すると、プログラムアプリケーションは停止され、ガ
ーベジコレクションが開始される。そして、メモリ中の
全てのファイルが検討され、現在使用されていると決定
されたファイルが、プロセスの第1段階においてしるし
を付けられる。ファイルの全体のセットが検討された場
合、掃引段階が開始され、全てのしるしが付けられてい
ないファイルを取り除くことによりメモリ記憶が回復さ
れる。
【0006】
【発明が解決しようとする課題】しるし付けおよび掃引
スキームの利点は、望まないより古いファイルがガーベ
ジコレクションプロセスを生き残ることなく、割り当て
られた全体のメモリ記憶が記憶のために使用され得るこ
とである。しかし、このスキームの不利な点は、コンパ
クト化または念入りな多数区間割当が行われない限り、
メモリ細分化が深刻な問題となることである。しかしな
がら、ファイルコンパクト化が使用される場合、メモリ
システムは、ガーベジコレクションプロセスの間、危険
な矛盾する状態のままとなる。これは、ガーベジコレク
ションプロセスの間はデータファイルがメモリ中に分散
されているので、プロセスの間のの電源故障または他の
タイプのシステム故障の発生によって、メモリシステム
を管理するマイクロプロセッサをリブートおよびファイ
ルシステム初期化により停止させる可能性があるからで
ある。
【0007】
【課題を解決するための手段】上記の課題を解決するた
めに、本発明は、データ記憶システムのデータ記憶装置
中の使用可能なファイルシステム記憶空間をマイクロプ
ロセッサの制御下で回復するための方法および装置を提
供する。マイクロプロセッサは、ファイルシステムが調
和のない状態のままになることを防ぐと同時に、必要と
しないファイルを取り除き、残りのファイルをコンパク
ト化する。これは、第1の分析段階および第2の実行段
階からなる二段階リエントラントガーベジコレクション
プロセスにより達成される。データ記憶装置のファイル
システムに対する正常な書き込み動作の間、現在使用さ
れていないまたはその他の不必要な全てのファイルが、
ファイルシステムからのその後の除去のためにしるしを
付けられる。記憶空間が、ファイルシステムにおいてそ
こへの更なるファイルの書き込みに必要とされる場合
に、ガーベジコレクションプロセスは開始される。
【0008】分析段階において、原子的または基本的メ
モリ動作および関連づけられたデータからなる一連のイ
ベントが生成され、それぞれのしるしが付けられていな
い現在使用中のファイルのためのメモリ装置のイベント
記憶領域に順序正しく書き込まれる。これらのイベント
は、それぞれのイベントの以前の実行の結果を修正する
ことなく、これらのイベントがその実行の中断により、
かつ別のイベントの実行の前に再実行され得るデータ記
憶装置中で再実行されるように選択される。ガーベジコ
レクションの第2の実行段階において、イベント記憶領
域に書き込まれた一連のイベントが実行され、しるしが
付けられていないファイルをデータ記憶装置の第1の記
憶領域から第2の記憶領域へコピーされるようにし、こ
れらのしるしが付けられていないファイルが第2の記憶
領域中でコンパクト化される。さらに、一連のイベント
の実行により、メモリ装置の第1の記憶領域は消去さ
れ、ファイルシステムへのその後の新たなファイルの書
き込みのために更なる記憶場所が確保される。
【0009】電源故障またはシステム故障が、ガーベジ
コレクションプロセス中に起きた場合、ファイルシステ
ムを部分的にコンパクト化された調和のない状態のまま
としないために、プロセスは、ほぼ中断された点におい
て再スタートされる。分析段階および実行段階の分離お
よび追跡、および再実行可能なイベントの配列の順序正
しい実行のために、本発明は、マイクロプロセッサ停止
の発生を防止するように、故障後のファイルシステムの
完全な状態を維持する。
【0010】
【発明の実施の形態】図1に示されているように、本発
明は、電源故障または他のシステム故障の発生によるマ
イクロプロセッサ停止を防止するための、リエントラン
トガーベジコレクションプロセスを有するデータ記憶シ
ステム1のデータ記憶装置2のためのファイルシステム
4を提供する。
【0011】ファイルシステムアーキテクチャ ファイルシステム4は、特定の原子的メモリ動作を作り
だしかつ実行するプログラムオブジェクトの階層により
管理されるフラットなファイルシステム4として設計さ
れる。オブジェクト階層は、高レベルアプリケーション
インタフェース、仮想装置レベルおよび装置ドライバレ
ベルの3つのレベルのプログラムアーキテクチャに分割
される。高レベルアプリケーションインタフェースは、
読み込み、書き込みおよび除去が可能な1組のファイル
としてファイルシステムを表す。これはさらに、残って
いる空き空間の量のようなファイルシステムに付いての
情報を質問するための手段を提供する。仮想装置レベル
は、隣接したセットにより参照されるファイルのリンク
されたリストを維持し、ファイルの論理アドレスを形成
するブロックおよびセクタ番号をモニタして増加させる
と同時に、バイトのブロックをファイルおよび空き空間
中にマップする。装置ドライバレベルは、仮想装置レベ
ルとメモリ装置自体との間のインタフェースとして働
き、仮想装置により生成される論理アドレスとメモリ装
置の物理的アドレスとの間の翻訳を実行する。この機能
的アーキテクチャと共に、本発明のファイルシステム4
は、装置の番号およびそれらの物理的アドレスを追跡す
ることにより、全ての装置が同じメモリタイプである限
り、1つよりも多いメモリ装置またはチップにおよぶこ
とができる。
【0012】図1中に示された実施形態において、本発
明のファイルシステム4は、マイクロプロセッサ8、中
央演算処理装置等の制御下にある少なくとも1つの一次
非持久性メモリ6および二次持久性リードモストリメモ
リ2からなるメモリシステム1の二次メモリ2中に具現
化される。一実施例において、一次メモリ6は、DRA
Mメモリ装置からなり、二次メモリにはAM29200
フラッシュPROM装置からなり、マイクロプロセッサ
8は、AM29200RISCマイクロプロセッサから
なる。また、ファイルシステム4は、二次的リードモス
トリメモリとしてのEEPROMメモリ装置からなるメ
モリシステム1中に具現化することもできる。
【0013】図2に示されているように、各AM292
00フラッシュPROMは、物理的に8個のセクタに分
割されている。もし必要であれば、少なくとも第1の装
置の1つまたは2つ以上の第1の逐次的セクタは、マイ
クロプロセッサ8のためのブートセクタ20として割り
当てられる。次の2つの逐次的セクタは、それぞれイベ
ント待ち行列セクタ22およびスワップセクタ26とし
て指定される。そして、第1および/またはそれに続く
装置の残りの全てのセクタは、ファイルシステムデータ
の記憶のためのレギュラーセクタ28を形成する。
【0014】ブートセクタ20は、ブート時においてス
タートされるべきオペレーティングシステム、ファイル
システム4および全てのアプリケーションをスタートさ
せるために必要なブートコードおよびデータを格納する
ために、マイクロプロセッサオペレーティングシステム
により使用される。イベント待ち行列セクタ22は、ブ
ートセクタ20に続く最初のセクタであり、ガーベジコ
レクションプロセスにおいて原子的メモリ動作のシーケ
ンスを追跡かつ実行して、より古い使用されていないフ
ァイルおよび部分的ファイルを除去するために使用され
る。スワップセクタ26は、イベント待ち行列セクタ2
2の後の次のセクタであり、ガーベジコレクションの間
に、レギュラーセクタ28を再構成するために使用され
る。再構成の間に、ガーベジコレクションのためにしる
しを付けられず、またはタグを付けられていないこれら
のファイルは、スワップセクタ26に逐次的に隣接する
ように書き込まれる。そして、スワップセクタ26は、
一つの完全なセクタとして、指定セクタとしてのレグラ
セクタ28の内の1つにコピーされる。これは、コンパ
クト化された隣接するファイルのファイルシステムを生
成するように、メモリ装置中にあるそれぞれのレギュラ
ーセクタ28について実行される。
【0015】上述したファイルシステム4の実施形態に
おいて、ファイルが64バイトのデータブロックチャン
クでレギュラーセクタ28に書き込まれかつこれから読
み出されるので、各レギュラーセクタは正数個のデータ
ブロック(即ち上記の装置タイプについて1024個の
ブロック)を保持する。しかし、例えば、読み出しおよ
び書き込み動作がビットおよび/またはバイトレベルに
おいて実行されることを可能にするメモリ装置(即ち、
EEPROM)が使用される場合、これがあてはまると
は限らない。この例において、データチャンクのサイズ
は、アプリケーション機能および装置要求にしたがって
選択されることになる。
【0016】図1に示されたファイルシステム4構造に
関して、ファイルは逐次的にファイルシステム4に書き
込まれる。ここで、各ファイルはハイパーブロック7お
よびそれぞれが64バイトの1つまたは2つ以上のファ
イルブロック9からなる。ハイパーブロック7は、ファ
イルの始まりを示すデータ構造であり、ファイルに関す
る情報およびファイルシステム仮想装置中のそのロケー
ションを格納するために使用される。ファイルブロック
9は、ファイルに属するデータのブロックを表すデータ
構造である。各ファイルハイパーブロック7に格納され
る情報は以下のものを含む。 ・ハイパーブロック識別子、 ・ファイルシステム中の空きブロックの数、 ・現在のハイパーブロックのアドレス、 ・現在のハイパーブロックの作成時間、 ・現在のファイル中のバイトの数、 ・現在のファイル中のブロックの数、 ・現在のファイルのキャラクター名、 ・ハイパーブロックがうまく書き込めたかどうかを示す
ハイパーブロック完了(hok)フラグ、 ・現在のファイルの全てのファイルブロックが旨く書き
込めたかどうかを示すファイルブロック完了(fok)
フラグ、および ・現在のファイルが次のガーベジコレクションプロセス
において除去されるべきであるかどうかを示すガーベジ
フラグ。
【0017】さらに、ファイルシステム4への非常に高
速な書き込みにおいて、ファイルシステムリストヘッド
ハイパーブロック5が、ファイルシステム4中の第1の
ブロックとして作成される。このリストヘッドハイパー
ブロック5は、真のハイパーブロックであるが、その目
的がファイルシステム4の作成に関する適切な情報を維
持することであるので、これはファイルを示さず、ファ
イルデータも含まない。したがって、これはファイルシ
ステム4において、セット状態のhokフラグ、非セッ
ト状態のfokフラグおよびファイル名フィールド中の
ナルストリングを有するハイパーブロック7として識別
され、いかなる時にも、これは、ファイルシステム4全
体のための作成時間に加えて、ファイルシステム4中の
空きバイトおよび空きブロックの数を決定するために使
用することができる。
【0018】ファイルシステム4中の全てのハイパーブ
ロック7のセットは、全ての現在のファイルの仮想的に
リンクされたリストを形成する。このリストは、先行す
るハイパーブロック7が次のハイパーブロックに対する
ポインタを含まないが、次のファイルのハイパーブロッ
ク7の線形アドレスの計算を可能にするために充分な現
在のファイルについての情報を含むということで仮想的
である。一実施形態において、この情報は、付加された
ファイルブロック9の総数に加えて、検査される現在の
ファイルのハイパーブロック7の線形アドレス(即ち、
セクタおよびそのセクタのブロック番号)からなる。そ
れにも関わらず、本発明のファイルシステム4は、ちょ
うどポインタの使用による場合と同じように具現化でき
る。
【0019】アプリケーションファイルをファイルシス
テム4に書き込むために、ファイルオブジェクトが、フ
ァイルシステム仮想装置へのアプリケーションコールに
より作成される。ファイルオブジェクトは、ファイルシ
ステム4中で作成された最後のハイパーブロック7のメ
モリ内コピーを検索し、ハイパーブロック7に含まれる
情報から、現在のファイルが書き込まれることになるフ
ァイルシステム4中の開始アドレスに加えて、現在のア
プリケーションファイル全体を書き込むために充分な空
き空間がファイルシステム媒体中にあるかどうかを決定
する。現在のファイルのために充分な空間が存在する場
合、ファイルオブジェクトは、現在のファイルのための
ハイパーブロック7を作成し、このハイパーブロック7
に上述したファイルシステム特定情報を書き込むことに
より、ファイルのリンクされたリストの最後にそのファ
イルを付加する。これが実行されると、ファイルオブジ
ェクトはハイパーブロック7中のhokフラグをセット
し、現在のファイルのファイルデータブロックをハイパ
ーブロック7に付加し、そしてハイパーブロック7中の
fokフラグをセットする。
【0020】現在のファイルがファイルシステム4に書
き込まれた後に、ファイルオブジェクトは、引き続き、
現在のファイルのファイル名がより古いファイルのいず
れかのファイル名に一致するかどうかを決定するため
に、以前に書き込まれた(即ちより古い)ファイルのそ
れぞれのハイパーブロック7をサーチする。サーチの
間、ファイルオブジェクトは、ガーベジコレクションフ
ラグがセットされたファイルを無視する。ファイル名間
の一致がある場合、より古いマッチングファイルのそれ
ぞれのハイパーブロック7中のガーベジコレクションフ
ラグがセットされる。
【0021】ガーベジコレクションプロセス 本発明の一実施形態において、ガーベジコレクションプ
ロセスは、複製ファイルおよび部分ファイルからなる不
必要なファイルをファイルシステム4から除去すること
を望む場合にはいつでも使用することができる。このプ
ロセスが求められる最も一般的な状況は、新たなファイ
ルをファイルシステム4に書き込む試みが、ファイルシ
ステム4に残っている空間(即ち、メモリ装置のレギュ
ラーデータセクタ)の量が不十分であるために失敗する
場合である。この場合、ファイルオブジェクトは不必要
なガーベジファイルとして以前にタグを付けられた全て
のファイルを取り除くためにガーベジコレクションプロ
セスを求める。そして、新たなファイルをファイルシス
テム4に書き込むための第2の試みがなされ、この試み
が失敗した場合、ファイルシステム4がもはや空き空間
をもっていないか装置故障が起きたかのいずれかを示す
ためにプログラムアプリケーションへエラーコードを戻
す。
【0022】また、ガーベジコレクションプロセスは、
電源故障、マイクロプロセッサ故障、メモリシステム故
障などの発生の後に、マイクロプロセッサ8のリブート
により実行されるファイルシステム初期化ルーチンの一
部としても求められる。この主要の目的は、不完全なフ
ァイルの検索のためにマイクロプロセッサの停止が起こ
ることを防止するために、中断された書き込み動作また
はガーベジコレクションプロセスにより、ファイルシス
テム4中に残された可能性のある部分的に書き込まれた
ファイルの全てを除去することである。したがって、メ
モリシステム1がリブートにおいて始動された場合、マ
イクロプロセッサ8は、フラッシュメモリ装置2のブー
トセクタ20中に格納されたファイルシステム初期化ル
ーチンからなるブートコードをその一次DRAMメモリ
6中にロードする。マイクロプロセッサ8により実行さ
れる場合、二次メモリ2の第1のレギュラーセクタ28
からファイルシステムリストヘッドハイパーブロック5
を読み出すための試みがなされる。それが見つからなか
った場合、ガーベジコレクション中に電源故障が起きた
場合にリストヘッド5が内在すると思われるスワップセ
クタ26の第1のブロックからリストヘッド5を読み出
すための別の試みがなされる。リストヘッド5がうまく
読み出された場合、そのコピーが、ファイルシステム4
による将来の使用のために、一次メモリ6に格納され
る。リストヘッド5が見つからない場合、ファイルシス
テム4は使用不可能であり、フラッシュメモリ装置2の
ブートセクタ20中のブートコードから再構成されなけ
ればならない。
【0023】従来のガーベジコレクションプロセスと対
象的に、本発明のプロセスは、ファイルシステム4の完
全な状態を維持し、ガーベジコレクションセッションの
間の電源故障等の発生がマイクロプロセッサ8を停止さ
せないことを保証するように、リエントラントされるよ
うに設計される。これは、最初に、ガーベジコレクショ
ンプロセスを別個の分析段階および実行段階に分割し、
実行段階が中断されることにより分析段階に再度入る必
要がないようにするために、分析メカニズムおよび実行
メカニズムの両方に独立に分析段階の結果を記録するこ
とにより達成される。次に、分析段階の結果は、同じイ
ベントの以前の実行の結果を修正することなく、その実
行の中断により、別の(その後の)イベントの実行の前
に再実行され得るという点で再実行可能な個々の原子的
イベント即ちメモリ動作によって明確な形で表される。
このようにして、以前の実行が電源故障により中断され
たイベントが、フラッシュメモリ装置の現在の状態(即
ち、特定の記憶ロケーションに以前に書き込まれたビッ
トパターン)に悪影響を与えることなく、初めから終わ
りまで再実行できる。
【0024】上述した第1のタスクを成し遂げるため
に、段階進行フラグが、いかなる時においても、どの1
つまたは複数のガーベジコレクション段階が開始された
か、およびどの1つまたは複数の段階が完了したかを示
すために使用される。この段階進行フラグは、レギュラ
ーファイルデータとは別個に、イベント待ち行列セクタ
22の第1のブロック中に格納され、分析段階開始フラ
グ、分析段階完了フラグ、実行段階開始フラグ、および
実行段階完了フラグからなる。図3のフローチャートを
参照すると、ガーベジコレクションがファイルシステム
初期化ルーチンの一部として求められた場合、GCイベ
ント待ち行列セクタ22の第1のブロックが読み出さ
れ、そこに格納されたフラグが、以前のガーベジコレク
ションセッションが電源故障により中断されたかどう
か、およびもしそうであれば、どの段階の間であったか
を決定するために、マイクロプロセッサ8により検査さ
れる。
【0025】以下の表1に示されているように、全ての
フラグがセットまたは非セット状態である場合、以前の
セッションは、電源故障の時点で中断されておらず、ガ
ーベジコレクションプロセスは、初期化手続きの一部と
してそっくりそのまま実行されることになる。全てのフ
ラグをセットすることと全てのフラグを非セットにする
こととの違いは、電源故障の発生が、以前のガーベジコ
レクションセッションの完了の後のフラグがクリアされ
る前か後かということである。しかし、分析段階が始ま
ったが完了していない場合、分析の結果は放棄され、新
たな分析段階が開始される。この場合、ファイルシステ
ム4の状態は、中断された分析についてのイベントが実
行されなかったという事実のために保存される。分析段
階が完了したが、実行段階が始まっていない場合、プロ
セスは、以前の分析段階の間にそこに書き込まれたイベ
ント待ち行列24中のイベントの実行と共に再び始めら
れる。最後に、実行段階が始まっているが完了していな
い場合、イベント待ち行列24中のイベントの実行は、
その実行が中断されたイベントにおいて再び開始され
る。したがって、ファイルシステム初期化の間に、以前
のガーベジコレクションプロセスが中断されたか否かが
決定されると、初期化は、分析段階を開始するか実行段
階を開始または再会するかによって進められる。
【0026】
【表1】
【0027】分析段階は、ガーベジコレクションイベン
ト分析オブジェクトの作成により開始される。図4のフ
ローチャートを参照すると、イベント分析オブジェクト
は、分析段階開始フラグの第1のセットを検索し、そし
てファイルシステム記憶の順序で各ファイルのハイパー
ブロック7を検索する。分析オブジェクトは、ハイパー
ブロック7に含まれるhok,fokおよびガーベジコ
レクションステータスフラグを検査し、ファイルの性質
およびもしある場合にはとるべきアクションを決定す
る。hokまたはfokフラグのいずれかが非セット状
態である場合、これは、そのハイパーブロック7または
そのファイルブロック9のいずれかの書き込みがうまく
完了しなかったので、ファイルが部分的に書き込まれた
ファイルであることを示す。ガーベジコレクションフラ
グが書き込みプロセスの間にセットされた場合、これ
は、ファイルが別のファイルのより古い複製であり、こ
の複製ファイルの後にファイルシステム4に書き込まれ
たファイルと同じ識別子または名称を有することを示
す。しかし、他の実施形態において、ガーベジコレクシ
ョンフラグは、他のファイルおよび/またはファイルシ
ステム特性の検出に応じてセットされ得る。例えば、ガ
ーベジコレクションフラグは、メモリ装置のデータセク
タが満杯であり、ファイルがファイルシステム4中に残
っている最も古いファイルであると決定された場合にセ
ットされ得る。最後に、hokおよびfokフラグがセ
ット状態であり、ガーベジコレクションフラグが非セッ
ト状態である場合、これは、ファイルがファイルシステ
ム4中に維持されるべき有効な新しいファイルであるこ
とを示す。
【0028】選択されたファイルのステータスが分析オ
ブジェクトにより決定されると、一連の実行可能なイベ
ント即ちメモリ動作が、ファイルが部分的に書き込まれ
たファイルまたは、ガーベジコレクションのために選択
されたファイルでないと決定された場合にのみ、イベン
ト分析オブジェクトにより生成され、フラッシュメモリ
装置2のイベント待ち行列セクタ22に提供されたイベ
ント待ち行列24に書き込まれる。したがって、イベン
ト分析オブジェクトにより検索された有効な新しいファ
イルのそれぞれに対して、一連のイベントがイベント待
ち行列24に書き込まれ、その実行により、関連づけら
れたファイルがそのオリジナルのソースセクタからスワ
ップセクタ26へ、以前にスワップセクタ26にコピー
された他の有効なファイルに関して隣接するように書き
込まれる。さらに、スワップセクタ26が先行するイベ
ントの実行により満たされると決定されたイベントにお
いて、有効な新しいファイルのために生成されたイベン
トのシーケンスは、選択された目的地セクタを消去し、
スワップセクタ26を完全にコンパクト化したセクタと
して目的地セクタにコピーし、スワップセクタ26を更
なるコピーのために消去するイベントをさらに含むこと
になる。
【0029】上述したように、生成されたイベントは、
充分に原子的(即ち基礎的)であることを基礎に選択さ
れた個々のメモリ動作を含み、同じ関連づけられたデー
タでの別の動作の実行の前の同じ動作の後での実行がフ
ァイルシステム4の状態を不利に変えることがないとい
う点で再実行可能である。サンプルイベントのリストが
以下の表2中に示されている。
【0030】
【表2】
【0031】表2に示されているように、各イベント
は、イベントの実行においてマイクロプロセッサ8の実
行ユニットにより使用するためのイベントIDまたは、
名称および分析データを含む。ファイルのファイルブロ
ック9を最初のソースロケーションから最後の目的地ロ
ケーションにコピーするためのメモリ動作に関連づけら
れた分析データが、周知であるように、スワップセクタ
26に書き込まれるべき次の隣接するアドレスに加え
て、その関連づけられたハイパーブロック7に格納され
たファイルアドレスおよびサイズ情報に基づいて、分析
オブジェクトにより生成される。周知のように、特定の
ファイルが1つよりも多いソースセクタにおよぶ場合、
およびファイルの全てのファイルブロック9がスワップ
セクタ26の残りの空間内にフィットしないであろう場
合、ラップアラウンド条件が満足される必要がある。ま
た、イベント待ち行列24に書き込まれる各イベント
は、イベントが実行されたかどうかを示す実行完了フラ
グを含む。このフラグは、イベントが生成された時、最
初は非セット状態であり、その後、実行ユニットがその
イベントに対応するメモリ動作を完了したときにセット
される。
【0032】ファイルシステム4内の全てのファイルが
イベント分析オブジェクトにより作用されると、イベン
ト待ち行列セクタ22中のイベント分析完了フラグがセ
ットされ、イベント実行オブジェクトが、イベント待ち
行列24中に逐次的に格納されたイベントの実行を開始
するために作成される。図5のイベント実行フローチャ
ートを参照すると、イベント実行開始フラグがセットさ
れた後に、イベント実行オブジェクトがFIFOの順序
で各イベントを検索し、特定のイベントがすでに実行さ
れたかどうかを決定するためにその完了フラグを検査す
る。そのフラグがセットされている場合、イベント実行
オブジェクトは、次のイベントを検索し、その完了フラ
グを検査する。1つのイベントがその完了フラグが非セ
ット状態であると分かると、イベント実行オブジェクト
は、イベントIDおよび関連づけられたデータをマイク
ロプロセッサ8に渡し、マイクロプロセッサ実行ユニッ
トは、提示されたメモリ動作に従ってそのイベントを実
行する。そして、イベントの完了フラグがセットされる
が、イベントおよびそのデータは、待ち行列中の全ての
イベントがうまく実行されるまで、イベント待ち行列2
4中に保持される。
【0033】イベント待ち行列24中の全てのイベント
が実行された場合、イベント実行オブジェクトは、イベ
ント待ち行列セクタ22中のイベント実行完了フラグを
セットし、引き続いて、全てのイベントの待ち行列およ
びそれらの関連づけられたデータをクリアする。しか
し、各イベントのための完了フラグをセットし、全ての
待ち行列に入れられたイベントの実行の後に待ち行列全
体をクリアする代わりに、いくつかのデータ記憶装置2
において、イベント実行オブジェクトは、それがうまく
実行されると、各イベントを待ち行列から単純に個別に
クリアできることが予知できることが注目される。
【0034】イベントの実行が電源故障により偶然に中
断された場合、ファイルシステム初期化ルーチンの実行
は、マイクロプロセッサ8に、実行段階が中断されたこ
とが決定される段階進行フラグを検査させる。この場
合、新たなイベント実行オブジェクトが作成され、その
オブジェクトが、イベント待ち行列24中の最も古いイ
ベントと共にスタートする各イベントのための完了フラ
グを逐次的に検査する。そして、イベント実行は実行が
中断されたイベントと共に開始されることになる。これ
は、このイベントが、その完了フラグをセットしないイ
ベント待ち行列24中のイベントのシーケンス中の最初
のイベントだからである。
【0035】本発明の一実施形態において、上述したフ
ァイルシステム4およびガーベジコレクションプロセス
は、電話応答マシーン/システムおよびコンピュータシ
ステムの内の1つのためのソフトウェアファイル記憶メ
カニズムのメモリシステム1の第2のメモリ2中に具現
化される。ソフトウェアファイルはそれぞれ電話ネット
ワークまたはコンピュータネットワークからダウンロー
ドされ、ユーザ指向またはシステム指向の活動のいずれ
かにおいて、使用するためのメモリシステム1のメイン
メモリ6へのその後のアップロードのために、メモリシ
ステム1内に順序正しく格納される。更新された即ち新
しいバージョンのソフトウェアファイルがファイル記憶
メカニズムにダウンロードされる場合、それらは、より
古いソフトウェアファイルと同じ名前で二次メモリ2中
に格納される。そしてそのより古いファイルは、ガーベ
ジコレクションのためにしるし付けされ、ファイル記憶
メカニズムが、コレクションのためにしるし付けされた
特定の名称のこれらのソフトウェアファイルのみを検索
する。
【0036】本発明の別の実施形態において、上述した
ファイルシステム4およびガーベジコレクションプロセ
スは、電話応答マシーン/システムおよびコンピュータ
システムの内の1つのためのメッセージ記憶メカニズム
のメモリシステム1の二次メモリ2において具現化され
る。それぞれ電話ネットワークまたはコンピュータネッ
トワークを介して受信されたメッセージは、音声再生ま
たはテレビジョンまたはコンピュータモニタ上への視覚
的表示の形式でのその後の出力のためにメッセージファ
イルとしてメモリシステム1内に順序正しく格納され
る。これは、要求されるメモリのサイズを最小化し、そ
れ故に製造コストを最小化すると同時に、好都合に、メ
ッセージ記憶メカニズムにおいて、音声、電子メールま
たはファクシミリメッセージを記録するための効率のよ
い手段を提供する。メッセージ記憶メカニズムのほとん
ど全ての使用可能なメモリが記録されたメッセージファ
イルにより満たされた場合、ガーベジコレクションプロ
セスは、以前に説明したように同じ名称即ち識別子を有
するファイルの代わりに、メッセージファイルの最も古
いものを除去することを求める。
【0037】ここに説明された実施形態は、本発明の主
要な原理を開示するものであるが、本発明の精神および
範囲から離れることなく様々な追加および修正が可能で
あるのでこれらの実施形態は、単なる例示であると理解
されなければならない。例えば、上述したガーベジコレ
クションプロセスは、コンピュータシステムのためのハ
ードディスクドライブ装置およびフロッピーディスクド
ライブ装置のような他のタイプのファイル記憶システム
中にも具現化できることが予知される。したがって、以
上の詳細な説明は、全ての場合に記述的かつ例示的であ
り制限的ではないと理解されるべきであり、本発明の範
囲は、詳細な説明から決定されるべきではなく特許法に
より許される完全な広がりに従って特許請求の範囲から
解釈されるべきであると理解されなければならない。
【図面の簡単な説明】
【図1】マイクロプロセッサで制御されるフラッシュメ
モリおよびDRAMメモリを含む本発明のファイルシス
テムが具現化されるメモリシステムを示す図。
【図2】単一のブートセクタ、イベントセクタ、スワッ
プセクタおよび複数のレギュラーデータセクタを示すフ
ラッシュメモリ装置またはチップのセクタマップ図。
【図3】本発明の二段階ガーベジコレクションプロセス
の全体を示すフローチャート。
【図4】本発明のガーベジコレクションプロセスの分析
段階を示すフローチャート。
【図5】本発明のガーベジコレクションプロセスの実行
段階を示すフローチャート。
【符号の説明】
1 データ記憶システム 2 データ記憶装置 4 ファイルシステム 5 ハイパーブロック 6 DRAMメモリ 7 ハイパーブロック 8 マイクロプロセッサ 9 ファイルブロック 20 ブートセクタ 22 イベント待ち行列セクタ 26 スワップセクタ 28 レギュラーセクタ
───────────────────────────────────────────────────── フロントページの続き (71)出願人 596077259 600 Mountain Avenue, Murray Hill, New Je rsey 07974−0636U.S.A.

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサの制御によりファイ
    ルを格納するための記憶ロケーションを有するデータ記
    憶装置を含むデータ記憶システム中でデータ記憶装置中
    のファイルをコンパクト化するための方法において、 もはや使用を望まない不必要なファイルを含むデータ記
    憶装置に格納されたファイルにタグ付けするステップ
    と、 前記データ記憶装置中に格納されたタグ付けされていな
    いファイルについての実行可能なイベントのシーケンス
    を生成し、イベント記憶領域に書き込むステップと、 タグ付けされていないファイルをそれぞれのソース記憶
    ロケーションからそれぞれの目的地記憶ロケーションへ
    コピーするために、前記イベント記憶領域に書き込まれ
    たイベントを実行するステップとからなり、 各イベントは、メモリ動作および関連データを含み、そ
    れぞれのイベントの以前の実行の結果を修正することな
    く、その実行の中断により、別のイベントの実行の前に
    再実行可能であり、前記それぞれの目的地記憶ロケーシ
    ョンは、コンパクト化されたタグ付けされていないファ
    イルのセットを形成するように、互いに隣接しているこ
    とを特徴とする方法。
  2. 【請求項2】 前記データ記憶装置がEEPROMメモ
    リ装置およびフラッシュメモリ装置の内の1つを含むこ
    とを特徴とする請求項1記載の方法。
  3. 【請求項3】 データ記憶装置中に格納されたタグ付け
    されていないファイルについての実行可能なイベントの
    シーケンスを生成し、イベント記憶領域に書き込むステ
    ップが、 前記データ記憶装置の特定された記憶ロケーションを消
    去するための消去動作、特定された量の選択されたファ
    イルのフィルデータを1つの特定された記憶ロケーショ
    ンから別の特定された記憶ロケーションへコピーするた
    めのコピー動作、および選択されたファイルの特定量の
    ファイルデータを1つの特定された記憶ロケーションか
    ら読み出し、前記選択されたファイルのファイルデータ
    を修正し、前記選択されたファイルの修正されたファイ
    ルデータを別の特定されたロケーションに書き込むため
    の読み出し−修正−書き込み動作からなるグループから
    選択されたメモリ動作を含む実行可能なイベントのシー
    ケンスを生成し、イベント記憶領域に書き込むステップ
    であることを特徴とする請求項1記載の方法。
  4. 【請求項4】 データ記憶装置がEEPROMメモリ装
    置およびフラッシュメモリ装置の内の1つを含み、イベ
    ント記憶領域が第1の記憶領域の外部に配置されている
    ことを特徴とする請求項2記載の方法。
  5. 【請求項5】 タグ付けされていないファイルをそれぞ
    れのソース記憶ロケーションからそれぞれの目的地記憶
    ロケーションへコピーするために、イベント記憶領域に
    書き込まれたイベントを実行するステップが、 データ記憶装置の第1の記憶領域中のそれぞれのソース
    記憶ロケーションからデータ記憶装置の第2の記憶領域
    中のそれぞれの目的地記憶ロケーションへコピーするた
    めに、イベント記憶領域に書き込まれたイベントを実行
    するステップと、 メモリ記憶装置に書き込まれるべき更なるファイルのた
    めの記憶空間を提供するために、第1の記憶領域内であ
    るが、第2の記憶領域外のファイルを消去するステップ
    とからなることを特徴とする請求項2記載の方法。
  6. 【請求項6】 マイクロプロセッサの制御によりファイ
    ルを格納するための記憶ロケーションを有するデータ記
    憶装置からなるデータ記憶システム中に備えられた前記
    データ記憶装置中の使用可能な記憶空間を回復するため
    のガーベジコレクション装置において、 もはや使用することを望まない不必要なファイルを含む
    メモリ記憶装置の第1の記憶領域中に格納されたファイ
    ルにタグ付けをするためのタグ付け手段と、 前記メモリ記憶装置の第1の記憶領域中に格納されたタ
    グ付けされていないファイルについてのイベントのシー
    ケンスを生成するためのイベント生成手段と、 第1の記憶領域中のタグ付けされていないファイルを第
    1の記憶領域中のそれぞれのソース記憶ロケーションか
    らメモリ記憶装置の第2の記憶領域中のそれぞれの目的
    地記憶ロケーションへコピーするために、イベント記憶
    領域に書き込まれたイベントを実行するための実行手段
    と、 メモリ記憶装置に書き込まれるべき更なるファイルのた
    めの記憶空間を提供するために、第1の記憶領域内であ
    るがメモリ記憶装置の第2の記憶領域外に格納されたフ
    ァイルを消去するための消去手段とを有し、 各イベントは、メモリ動作および関連データを含み、そ
    れぞれのイベントの以前の実行の結果を修正することな
    く、その実行の中断により、かつ別のイベントの実行の
    前に再実行可能であり、生成されたイベントは、第1の
    記憶領域の内部ではないメモリ記憶装置中のイベント記
    憶領域に書き込まれることを特徴とする装置。
  7. 【請求項7】 前記第2の記憶領域が、第1の記憶領域
    内に配置された記憶領域および第1の記憶領域の外側に
    配置された記憶領域の内の1つであることを特徴とする
    請求項6記載の装置。
  8. 【請求項8】 データ記憶装置が記憶領域を形成するセ
    クタを有するリードモストリメモリ装置であり、前記第
    2の記憶領域が前記第1の記憶領域の外部に配置されて
    いることを特徴とする請求項6記載の装置。
  9. 【請求項9】 イベント記憶領域が、第1の記憶領域の
    外部に配置された記憶領域であることを特徴とする請求
    項8記載の装置。
  10. 【請求項10】 データ記憶装置が、EEPROMメモ
    リ装置およびフラッシュメモリ装置の内の1つを形成す
    るリードモストリメモリ装置であることを特徴とする請
    求項6記載の装置。
JP8138161A 1995-05-31 1996-05-31 フラッシュメモリに内在するファイルシステムにおけるリエントラントガーベジコレクション処理 Pending JPH09152983A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US45537395A 1995-05-31 1995-05-31
US455373 1995-05-31

Publications (1)

Publication Number Publication Date
JPH09152983A true JPH09152983A (ja) 1997-06-10

Family

ID=23808530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8138161A Pending JPH09152983A (ja) 1995-05-31 1996-05-31 フラッシュメモリに内在するファイルシステムにおけるリエントラントガーベジコレクション処理

Country Status (2)

Country Link
EP (1) EP0745939A2 (ja)
JP (1) JPH09152983A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3718578B2 (ja) * 1997-06-25 2005-11-24 ソニー株式会社 メモリ管理方法及びメモリ管理装置
US6247024B1 (en) 1998-09-25 2001-06-12 International Business Machines Corporation Method and system for performing deferred file removal in a file system
TW477932B (en) * 1999-03-23 2002-03-01 Ibm Memory defragmentation in chipcards
EP1046996B1 (en) * 1999-03-23 2005-04-13 International Business Machines Corporation Memory defragmentation in chipcards
CA2267484C (en) 1999-03-30 2002-03-05 Object Technology International Inc. Reclaiming memory from deleted applications
JP4500040B2 (ja) 2003-01-06 2010-07-14 パナソニック株式会社 コンパイラプログラム、コンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体、コンパイル方法及びコンパイル装置

Also Published As

Publication number Publication date
EP0745939A2 (en) 1996-12-04

Similar Documents

Publication Publication Date Title
US5559957A (en) File system for a data storage device having a power fail recovery mechanism for write/replace operations
JP3878412B2 (ja) データを保存し使用し及び回復する方法
JP3662510B2 (ja) フラッシュメモリのための再写像制御方法及びこれによるフラッシュメモリの構造
US5086502A (en) Method of operating a data processing system
US6732293B1 (en) Method, software and apparatus for recovering and recycling data in conjunction with an operating system
US6311193B1 (en) Computer system
US7774565B2 (en) Methods and apparatus for point in time data access and recovery
EP1686482B1 (en) File recording device
AU700681B2 (en) A method of operating a computer system
JP4363676B2 (ja) コンピュータシステム
CA2818472C (en) Optimized startup verification of file system integrity
US20080082593A1 (en) Using shrinkable read-once snapshots for online data backup
US20040111582A1 (en) File-update apparatus
US7849257B1 (en) Method and apparatus for storing and retrieving data
KR100317691B1 (ko) 로그 구조화 목표 저장장치를 사전에 구성하여 볼륨을 효율적으로 복사하는 방법 및 장치
US6636941B1 (en) Enhanced stable disk storage
US20070061540A1 (en) Data storage system using segmentable virtual volumes
US6629203B1 (en) Alternating shadow directories in pairs of storage spaces for data storage
KR100703680B1 (ko) 플래시 파일 시스템
EP0483174B1 (en) A method of operating a data processing system
JPH09152983A (ja) フラッシュメモリに内在するファイルシステムにおけるリエントラントガーベジコレクション処理
US20050149493A1 (en) Data recording apparatus and data recording method
JP3797864B2 (ja) オペレーティングシステムとの関連でデータを回復および再生する方法、ソフトウェア、および装置
JP3043662B2 (ja) データバックアップ方式
KR100775141B1 (ko) 저널링이 적용된 fat 파일 시스템의 구현 방법