JP2009271848A - ファイルシステム及びデータ管理方法 - Google Patents

ファイルシステム及びデータ管理方法 Download PDF

Info

Publication number
JP2009271848A
JP2009271848A JP2008123651A JP2008123651A JP2009271848A JP 2009271848 A JP2009271848 A JP 2009271848A JP 2008123651 A JP2008123651 A JP 2008123651A JP 2008123651 A JP2008123651 A JP 2008123651A JP 2009271848 A JP2009271848 A JP 2009271848A
Authority
JP
Japan
Prior art keywords
data
area
written
storage area
cluster
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
JP2008123651A
Other languages
English (en)
Inventor
Hiroyuki Komori
小森  裕之
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008123651A priority Critical patent/JP2009271848A/ja
Priority to US12/424,047 priority patent/US8200611B2/en
Priority to KR1020090040160A priority patent/KR101067464B1/ko
Publication of JP2009271848A publication Critical patent/JP2009271848A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

【課題】
そこで、本発明の目的は、フラッシュメモリ内のデータの消去回数を減少させる構成を有するファイルシステム及びデータ管理方法を提供することにある。
【解決手段】
上記の課題を解決するため、入力データを反転して蓄積データとするデータ制御部と、蓄積データを格納する格納領域と、格納領域の使用状況が書き込まれるテーブル部分とからなる不揮発性記憶部と、テーブル部分に書き込んだ使用状況に応じて、蓄積データを格納領域に格納するように不揮発性記憶部を制御する制御部と、を有するファイルシステムを提供する。
【選択図】 図1

Description

フラッシュメモリを用いたファイルシステム及びそのファイルシステムにおけるデータ管理方法に関する。
フラッシュメモリ単体の記憶容量の増大に伴い、フラッシュメモリを主記憶に用いたファイルシステムを内蔵又は接続して使用する民生機器及び産業機器が増大している。そのようなファイルシステムの内、データをファイル単位で扱う機器(例えば、パーソナルコンピュータ)に使用するファイルシステムとしては、いわゆる、FAT(File Allocation Table)を有する、FATファイルシステムが多く利用されている。
ここで、FATとは、データをファイルとして管理する際の管理効率の向上を図る目的で、フラッシュメモリからなるメモリ領域内に設けられた、ファイル管理テーブルのことである。また、ファイルが、データの固まり、すなわち、クラスタより構成されていると考えると、FATとは、クラスタ管理テーブルであるともいえる。
また、FATファイルシステムとは、メモリ領域内に、ファイルを蓄積する領域と、ファイル管理テーブルとを有し、クラスタの使用状態を管理するファイルシステムである。
そこで、ファイル管理テーブルの領域に”0”が書き込まれている場合には、それに対応するクラスタが非使用状態であることを示し、”0”以外が書き込まれている場合には、そのクラスタが使用状態であることを示す。そして、FATファイルシステムは、そのクラスタの使用状況に応じて、ファイルを管理する。
そうすると、ファイル蓄積領域のクラスタを非使用状態から、使用状態とするときには、ファイル管理テーブル領域内のビットのいずれかを”1”とする必要がある。
一方、フラッシュメモリにおいては、”1”が書き込まれた状態は、消去状態を示し、データを書くことによって、”0”の状態にする。
そうすると、使用状態(テーブル領域のいずれかに”0”が書き込まれている状態)から、非使用状態(テーブル領域内の全ビットを”1”の状態)にするときには、フラッシュメモリにデータ消去動作を行わせる必要がある。
さらに、フラッシュメモリにおける消去単位は、一定のサイズ単位におこなわれるが、ファイル管理テーブル内おけるクラスタに対する使用状況表示領域は消去単位より小さい。従って、消去単位には複数の使用状況表示領域が含まれる。
従って、新たなクラスタの使用状態をファイル管理テーブル領域に書き込むには、ファイル管理テーブル領域内のデータを退避させた後、一旦すべてのビットを”1”にする消去を行ない、その後、退避したファイル管理領域のデータに新たなクラスタの使用状態を追記して書き戻す必要がある。
データの退避回数を減らすため、一つの消去単位に一つの使用状況表示領域をもたせたのでは、フラッシュメモリ内におけるファイル管理テーブルが占める領域が増大し、使用効率が低下してしまう。
しかし、一つの消去単位に複数の使用状況表示領域をもたせた場合、データの変更があるたびに、消去と書き込みを繰り返すことになり、消去動作及び書き込み動作が、その消去単位に集中してしまうことになる。そうすると、その消去単位は他の部分より早く劣化してしまう。
そこで、データを構成するビットの内、”0”の部分が多い場合には、フラッシュメモリに、データを構成するビットの論理を反転させてデータを書き込むことが提案されている。その結果、消去単位の劣化を遅らせることができる(例えば、特許文献1及び特許文献2を参照。)。
特開2005−157781号公報 特開平11−25002号公報
データを構成するビットの論理を反転させてフラッシュメモリにデータを書き込めば、書き込み回数は減少する。しかし、消去回数は減少しない。
そこで、本発明の目的は、フラッシュメモリ内のデータの消去回数を減少させる構成を有するファイルシステム及びデータ管理方法を提供することにある。
上記の課題を解決するため提供される、本発明の一側面は、
入力データの論理を反転して蓄積データとするデータ制御部と、
蓄積データを格納する格納領域と、格納領域の使用状況が書き込まれるテーブル部分とからなる不揮発性記憶部と、
テーブル部分に書き込んだ使用状況に応じて、蓄積データを格納領域に格納するように不揮発性記憶部を制御する制御部と、を有するファイルシステムである。
上記のファイルシステムにおいては、テーブル部分に書き込んだ使用状況をみて、過去において使用した又は現在使用されている格納領域を選択し、その格納領域に蓄積データが格納される。従って、格納領域又はテーブル部分の一部に消去動作が集中することがなく、すべての蓄積データ格納部分を使用した後、消去動作が行われることになる。そして、消去領域内の蓄積データの消去回数が減少し、その消去領域の劣化が遅くなる。
以下、本発明の実施例1、実施例2、及び、実施例3について説明する。なお、本発明は、上記の実施例に限定されるものではない。
実施例1は、ファイルシステム(組み込み機器)に関するものである。そして、上記のファイルシステム(組み込み機器)は、入力データの論理を反転して蓄積データとするデータ制御部と、蓄積データを格納する領域と蓄積データの格納領域の使用状況が書き込まれるテーブル部分とからなる不揮発性記憶部と、テーブル部分に書き込まれた使用状況に応じて、蓄積データを格納領域に格納するように不揮発性記憶部を制御する制御部と、を有することを特徴とする。
図1により、実施例1のファイルシステム10(組み込み機器)及びファイルシステム10(組み込み機器)とのデータ入出力を行うパーソナルコンピュータ50が示されている。
ここで、図1には、フラッシュメモリ30を含むファイルシステム10が、アプリケーション制御部15、ファイルシステム制御部16、データ制御部17を含むように図示されている。しかしながら、USB(Universal Serial Bus)経由でパーソナルコンピュータに接続されるUSBメモリ等の外部記憶装置の場合は、これら制御部の構成要素は含まれなくてもよい。その場合、パーソナルコンピュータ50はアプリケーション制御手段51、ファイルシステム制御手段52、及び、USBホストドライバ53を有し、アプリケーション制御部15、ファイルシステム制御部16、データ制御部17と同様な制御を行う。すなわち、アプリケーション制御手段51は、ファイルシステム10を構成するアプリケーションを制御する手段である。ファイルシステム制御手段52はUSB経由でファイルシステム10のデータを読み出すことが可能な手段であり、ファイルシステム制御部16と同様な制御する手段である。USBホストドライバ53はUSBを経由して接続されているファイルシステム10とパーソナルコンピュータ50間のデータ入出力を制御する制御手段であり、データ制御部17と同様な制御を行う手段である。
一方、ファイルシステム10がそれのみでファイルシステムとして動作する場合は、ファイルシステム10は、制御部12、FLASHメモリ30、及び、RAM(Random accuses memory)40から構成される。この場合は、制御部12に含まれる、アプリケーション制御部15、ファイルシステム制御部16、データ制御部17が、ファイルシステム10の動作を後に説明するように制御する。 FLASHメモリ30は、不揮発性メモリであり、FATファイルシステム領域32、消去領域管理テーブル31、及び他の領域33を含む。そして、FATファイルシステム領域32は蓄積データを格納する領域と、その格納領域の使用状況を示すテーブル部分とを有する。なお、使用状況とは、蓄積データを格納する領域(クラスタ)が初期状態であるか、過去に使用した状態か、または現在使用している状態であるかを示すものである。他の領域33は、利用者による動作設定に関するデータを格納する領域である。消去領域管理テーブル31は、蓄積データから構成されるデータファイルの状況を管理するテーブルである。なお、FLASHメモリ30においては、”1”(ビットオン)の状態は消去状態である。また、”0”(ビットオフ)の状態はプログラム状態である。また、FLASHメモリ30の回路は、ビットデータを消去する際には、予め定められた範囲の消去領域について一括して消去状態とするように設計されている。そして、消去状態直後の状態は初期状態に対応する。
制御部12はアプリケーション制御部15、ファイルシステム制御部16、データ制御部17、FLASHドライバ18、及び、USBドライバ19から構成されている。
アプリケーション制御部15はファイルシステム10を動作させるアプリケーションを制御し、必要があれば、他の領域33に対するデータの読み書きを管理する制御部である。
ファイルシステム制御部16はFATファイルシステム領域32及び消去領域管理テーブル31へのデータの読み書きを管理する制御部である。ファイルシステム制御部16は、初期状態では、蓄積データを格納する部分及びテーブル部のすべてのビットを”1”(ビットオン)の状態とするように、データ制御部17を制御する手段を有する。ファイルシステム制御部16は、過去において使用された格納領域に対応するテーブル部分には、使用状況として、そのテーブル部分のすべてのビットを”0”(ビットオフ)の状態とし、現在使用している格納領域に対応するテーブル部分には、使用状況として、テーブル部分のいずれかのビットを”0”(ビットオフ)の状態とするようにデータ制御部17を制御する手段を有する。ファイルシステム制御部16は、FATファイルシステム領域32に蓄積データを格納する際に、テーブル部によって示されている使用状況が、使用した状態又は使用している状態である領域を避けて、格納領域を選択し、選択した格納領域に蓄積データを書き込むように制御する手段を有する。そして、ファイルシステム制御部16は、すべてのテーブル部分及び蓄積データを格納する部分を使用状態とした後、蓄積データ格納部分及びテーブル部を消去するようにデータ制御部17を制御する手段を有する。
データ制御部17は、ファイルシステム制御部16、及び、アプリケーション制御部15からの指令によりデータの読み書きを制御する制御部である。また、データ制御部17はUSBドライバ19からの入力データの論理を反転しFLASHメモリ30へ出力する。逆に、データ制御部17は、FLASHメモリ30からの出力データの論理を反転し、USBドライバ19へ出力データを出力する。さらに、データ制御部17は、FLASHメモリ30からRAM40へのデータ書き換え処理を制御する。
FLASHドライバ18は、データ制御部17の制御を受けて、FLASHメモリ30のデータ入出に関する動作を制御するドライバである。また、FLASHドライバ18は、FLASHメモリ30のデータ書き換え処理を行うときに、RAM40のデータの入出力に関する動作を制御するメモリドライバも含む。なお、RAM40は、FLASHメモリ30のデータ書き換え処理を行う作業領域を有する。
FLASHメモリ30のデータ書き換え動作28の際には、FLASHメモリ30とRAM40間のデータがバス34を通過する。パーソナルコンピュータ50からUSB経由でデータ入出力動作26を行う際には、USBドライバ19とデータ制御部17間のデータがバス34を通過する。データ読み書き動作27の際には、データ制御部17とFLASHメモリ30間のデータがバス34を通過する。
なお、ファイスシステム10とパーソナルコンピュータ50間のデータの読み書きはUSBケーブル21を介して行われる。
上記より、実施例1のファイルシステムは、入力データの論理を反転して蓄積データとするデータ制御部17と、蓄積データを格納する領域と蓄積データの格納領域の使用状況が書き込まれたテーブル部分とからなる不揮発性記憶部(FLASHメモリ30)と、テーブル部分に書き込まれた使用状況に応じて、蓄積データを格納する領域を以下のように制御する制御部(ファイルシステム制御部16)を有するファイルシステムである。そして、実施例1のファイルシステムの制御部(ファイルシステム制御部16)は、初期状態では、テーブル部を”1”(ビットオン)の状態にする。実施例1のファイルシステムの制御部(ファイルシステム制御部16)は、過去において使用された格納領域に対応するテーブル部分には、使用状況として、そのテーブル部分のすべてのビットを”0”(ビットオフ)の状態とし、現在使用している格納領域に対応するテーブル部分には、使用状況として、テーブル部分のいずれかのビットを”0”(ビットオフ)の状態とする。また、実施例1のファイルシステムの制御部(ファイルシステム制御部16)は、使用された又は現在使用している状態である領域を避けて、蓄積データを書き込む。さらに、実施例1のファイルシステムの制御部(ファイルシステム制御部16)は、すべてのテーブル部分及び蓄積データ格納領域が過去において使用された状態又は現在において使用状態とした後、蓄積データ格納領域内の蓄積データを消去するように制御するファイルシステムである。
ここで、不揮発性メモリにおいて、蓄積データを格納するためには、蓄積データ中の”0”(ビットオフ)の状態をプログラムしなければならない。そこで、蓄積データを書き換えるには、一旦、蓄積データをRAM40内の書き換え処理用作業領域に退避させ、蓄積データを含む消去領域を消去した後、書き換え後の蓄積データに対応した”0”(ビットオフ)の状態をプログラムすることになる。そうすると、書き換え後の蓄積データを、蓄積データ格納部分内の同じ領域に格納したのでは、その領域に消去動作が集中してしまう。その結果、不揮発メモリの消去回数が多くなり、その消去領域のデータ蓄積能力が劣化する。
しかし、実施例1のファイルシステムにおいては、テーブル部に書き込まれている使用状況に応じて、蓄積データが書き換わる度に、蓄積データ格納領域が移動する。そうすると、蓄積データが格納されていた同一部分に対して、消去動作が行われることがなく、すべての蓄積データ格納部分を使用した後、消去動作が行われることになる。また、テーブル部においても、”0”(ビットオフ)の状態をプログラムする部分が一カ所に集中することがない。蓄積データを格納する部分が、順次、移動していくため、その領域に対応するテーブル部分も移動するからである。従って、テーブル部分においても、すべてのテーブル部分が使用された後に、テーブル部分の消去領域の消去動作が行われることになる。
その結果、格納領域又はテーブル部分の一部に消去動作が集中することがなく、すべての蓄積データ格納部分を使用した後、消去動作が行われることになる。消去領域の消去回数が減少し、その消去単位の劣化が遅くなる。
なお、第1の場合として、初期状態において、蓄積データ格納部及びテーブル部におけるビットを”0”(ビットオフ)の状態(プログラム状態)とした場合に、入力データを反転させずにファイスルシステムにデータを書き込む場合を考える。まず、消去領域にくらべて蓄積データを格納する領域は、一般的に小さい。そこで、隣接するデータを保持するため、隣接データをRAM40の書き換え処理用領域に、退避させる必要がある。その後、消去を行い、入力データを隣接データとともに書き込む必要があり、データ入力の際に時間が余分にかかる上に、蓄積データ格納部及びテーブル部に負荷がかかる。
次いで、第2の場合として、蓄積データ格納部及びテーブル部におけるビットを”1”(ビットオン)の状態とした場合に、入力データを反転させずにファイルシステムにデータを書き込む場合を考える。そうすると、データを書き込んでいない状態は、”0”と認識すべきであるため、ファイルシステムからデータを読み出す際に、蓄積データを格納していない領域からデータを読み出すときに、データ書き込みがない領域を特定して、”0”を読み出すように操作が必要である。
次いで、第3の場合として、蓄積データ格納部及びテーブル部におけるビットを”1”(ビットオン)の状態とした場合に、入力データを反転してファイルシステムにデータを書き込む場合を考える。追加して蓄積データを書き込む場合に、”0”(ビットオフ)の状態(プログラム状態)を追加するだけでよく、第1の場合のように、消去に関する不都合がない。また、データを反転して読み出すため、データ書き込みがない領域を特定することなく、”0”を読み出すことができ、第2の場合のような不都合もない。
従って、実施例1のファイルシステムのように、使用状況が過去において使用された又は現在使用している状態である格納領域をさけて、蓄積データの書き換え及び新規蓄積データの格納をするときに、蓄積データを格納する領域を移動する場合には、入力データを反転して蓄積データとするのが望ましい。
実施例2は、実施例1のファイルシステムにおけるデータの管理方法に関するものである。そして、その管理方法は、初期状態に、少なくとも、蓄積データ格納部66、及び、テーブル部64に属するビットにすべて”1”を書き込む工程と、”0”が書き込まれたテーブル部64の使用状況表示領域に対応するクラスタ60をさけて、蓄積データをクラスタ60に格納する工程と、その後、テーブル部64に使用状況データを書き込む工程と、蓄積データをクラスタ60から排出する際には、テーブル部64の使用状況表示領域にすべて”0”を書き込む工程と、を有することを特徴とするデータの管理方法である。
図2により、実施例1で示したFATファイルシステム領域32内の記憶領域の単位領域、すなわち、クラスタ60を、アドレス順に示す。
FATファイルシステム領域32は、ブートセクタ部63、テーブル部64、エントリ部65、蓄積データ格納部66を有する。
ブートセクタ部63はFATファイルシステム領域32全体の管理情報を含む領域である。テーブル部64は図1に示したものと同一なものであり、ブートセクタ部63に続く領域である。エントリ部65は蓄積データからなるファイルの管理情報を含む領域であり、テーブル部64に続く領域である。蓄積データ格納部66は図1に示したものと同一なものであり、エントリ部65に続く領域である。
FATファイルシステム領域32は複数の消去領域61から構成されている。また、消去領域61は複数のクラスタ60から構成されている。クラスタ60は複数のセクタ62から構成されている。
図3により、実施例2の管理方法について説明する。図3によれば、実施例2の管理方法は、「初期状態に、蓄積データ格納部66及びテーブル部64に属するビットにすべて”1”を書き込む初期化工程70」と、「蓄積データをクラスタ60から排出する際には、そのクラスタ60に対応するテーブル部64の使用状況表示領域にすべて”0”を書き込むデータ排出工程72」と、「”0”が書き込まれたテーブル部64の使用状況表示領域に対応するクラスタ60をさけて、蓄積データを格納するクラスタ60を選択し、蓄積データをクラスタ60に格納するとともに、テーブル部64に使用状況データを書き込む書込み工程71、73」と、を有することを特徴とするデータの管理方法である。
また、上記の管理方法は、蓄積データ格納部66及びテーブル部64のすべての領域を、過去において使用した状態又は現在使用している状態としたときは、上記の領域を再利用する再利用工程74を含む。
また、図3は、各工程における入力データの状態及びファイルシステム10内のデータの状態を表している。ここで、「2、3、4、5」は、クラスタ60のアドレスを示す。なお、図3には、クラスタ60の数が4個であると仮定して、各工程の状況が図示されているが、後に図4から図7にその詳細を示す。また、図3では、各数字は、2進法により4ビットが表す数を表している、ただし、10を超える数字を表すときには、順次、A、B、C、D、E、Fとあらわす。すなわち、4ビットすべてに”1”を書き込むことは”F”と表記される。
そこで、初期化工程70では、アドレス「2、3、4、5」のクラスタ60に、入力データ「FFFF FFFF FFFF FFFF」が入力されるが、ファイルシステム10には「0000 0000 0000 0000」が入力される。
書き込み工程71では、アドレス「2、3、4、5」のクラスタ60に、入力データ「FFFC FFFB 0007 FFFF」が入力されるが、ファイルシステム10には「0003 0004 FFF8 0000」が入力される。
データ排出工程72では、アドレス「2、3、4、5」のクラスタ60に、入力データ「0000 0000 0000 FFFF」が入力されるが、ファイルシステム10にはアドレス5のクラスタ60に「0000」が入力されるが、アドレス2から4のクラスタ60には入力が行われない。
書き込み工程73では、アドレス「2、3、4、5」のクラスタ60に、入力データ「0000 0000 0000 FFF9」が入力されるが、ファイルシステム10にはアドレス5のクラスタ60に「0000」が入力されるが、アドレス2から4のクラスタ60には入力が行われない。
上記より、ファイルシステム10に入力されるデータは、データ制御部17によって、入力データに対して論理の反転が行われたデータであることがわかる。
図4により、初期状態における、アドレス順に並べられたクラスタ60の内容を示す。そして、図4おいて、テーブル部64、エントリ部65、蓄積データ格納部66が示されている。また、上記のテーブル部64は、領域(0)から領域(8)を有する。そして、テーブル部64の領域(2)から領域(8)までの領域には、ファイルシステム10に入力されるデータとしてみると、論理”0”が書き込まれる。すなわち、FLASHメモリ30に入力されるデータとしてみると、論理”1”が書き込まれる。また、クラスタ60(2)から60(8)は、クラスタ60の内、テーブル部64の領域(2)から領域(8)までに対応したクラスタである。
そこで、図3及び図4を用いて、「初期状態に、蓄積データ格納部66及びテーブル部64に属するビットにすべて”1”を書き込む初期化工程70」を説明する。
すなわち、図3に示す初期化工程70とは、ファイルシステム10の初期状態に、FLASHメモリ30に入力される入力データとしてみると、蓄積データ格納部66及びテーブル部64に属するビットにすべて”1”を書き込む工程である。
図5により、蓄積データの書き込み状態及び蓄積データの排出状態における、アドレス順に並べられたクラスタ60の内容を示す。また、クラスタ60(2)から60(8)は、クラスタ60の内、テーブル部64の領域(2)から領域(8)までに対応したクラスタである。
図5Aは、蓄積データ格納部66において、2番目から7番目までのクラスタ60に蓄積データが書き込まれていることを示す。また、エントリ部65には、上記の蓄積データを構成している2個のファイルに関する情報が書き込まれている。その情報は、例えば、ファイル名、ファイル属性、ファイルサイズ、更新日時、先頭のクラスタ60の番号を含む。テーブル部64の領域(2)から領域(7)には、上記の番号のクラスタ60の使用状況が表示されている。まず、領域(2)には”3”が記載されており、2番目のクラスタ60からファイルが構成されており、続きデータは3番目のクラスタ60に格納されていることがわかる。次いで、領域(3)には”4”が記載されており、続きデータは4番目のクラスタ60に格納されていることがわかる。次いで、領域(4)には”7”が記載されており、続きデータは7番目のクラスタ60に格納されていることがわかる。次いで、領域(7)には”E”が記載されており、7番目のクラスタ60までのデータで、ファイルを構成するデータが終了することがわかる。すなわち、クラスタ60(2)、(3)、(4)、(7)は格子縞で網かけされており、同一ファイルを構成するデータが格納されていることを示す。
さらに、領域(5)には”6”が記載されており、2個目のファイルの続きデータは6番目のクラスタ60に格納されていることがわかる。次いで、領域(6)には、”E”が記載されており、6番目のクラスタ60までのデータで、2個目のファイルが終了することがわかる。すなわち、クラスタ60(5)、(6)は斜め縞で網かけされており、同一ファイルを構成するデータが格納されていることを示す。
図5Bは、蓄積データ格納部66において、2個目のファイルが削除されたことを示す。また、エントリ部65は、2個目のファイルに関する情報が削除されたことを示す。さらに、テーブル部64の領域(5)、(6)には、”0”が書き込まれ、2個目のファイルに関する5番目のクラスタ60と6番目のクラスタ60の蓄積データが削除されたことを示している。すなわち、クラスタ60(5)、(6)は網かけされておらず、データが格納されていないことを示す。
そこで、図3及び図5を用いて、「蓄積データをクラスタ60から排出する際には、そのクラスタ60に対応するテーブル部64の使用状況表示領域にすべて”0”を書き込むデータ排出工程72」を説明する。
すなわち、図3に示すデータ排出工程72とは、蓄積データをクラスタ60から排出する際に、FLASHメモリ30に入力されるデータとしてみると、蓄積データを排出するクラスタ60及びそのクラスタ60に対応するテーブル部64の領域に属するビットに”0”を書き込む工程である。一方、ファイルシステム10に入力されるデータとしてみると、上記のクラスタ60及びテーブル部64の領域には、”1”を書き込むことになる。
図6により、蓄積データの追加書き込み状態における、アドレス順に並べられたクラスタ60の内容を示す。また、クラスタ60(2)から60(8)は、クラスタ60の内、テーブル部64の領域(2)から領域(8)までに対応したクラスタである。
図6Aは、蓄積データ格納部66において、2個目のファイルが削除されたことを示す。また、エントリ部65は、2個目のファイルに関する情報が削除されたことを示す。さらに、テーブル部64の領域(5)、(6)には、”0”が書き込まれ、2個目のファイルに関する5番目のクラスタ60と6番目のクラスタ60の蓄積データが削除されたことを示している。すなわち、クラスタ60(2)、(3)、(4)、(7)は格子縞で網かけされており、同一ファイルを構成するデータが格納されていることを示す。また、クラスタ60(5)、(6)は網かけされておらず、データが削除されていることを示す。
図6Bは、図6Aで示したFATファイルシステム領域32の状態において、追加ファイルを構成する蓄積データを、FATファイルシステム領域32に書き込んだ状態を示す。蓄積データ格納部66において、2番目から4番目、7番目から9番目までのクラスタ60に蓄積データが書き込まれていることを示す。また、エントリ部65には、上記の蓄積データを構成している2個のファイルに関する情報が書き込まれている。その情報は、例えば、ファイル名、ファイル属性、ファイルサイズ、更新日時、先頭のクラスタ60の番号を含む。テーブル部64の領域(2)から領域(9)には、上記の番号のクラスタ60の使用状況が表示されている。まず、領域(2)には”3”が記載されており、2番目のクラスタからファイルが構成されており、続きデータは3番目のクラスタに格納されていることがわかる。次いで、領域(3)には”4”が記載されており、続きデータは4番目のクラスタに格納されていることがわかる。次いで、領域(4)には”7”が記載されており、続きデータは7番目のクラスタに格納されていることがわかる。次いで、領域(7)には”E”が記載されており、7番目のクラスタまでのデータで、ファイルを構成するデータが終了することがわかる。さらに、領域(5)および領域(6)には、”0”が記載されており、5番目、6番目のクラスタの蓄積データは削除されていることがわかる。次いで、領域(8)には、”9”が記載されており、続きデータは9番目のクラスタに格納されていることがわかる。次いで、領域(9)には”E”が記載されており、9番目のクラスタまでのデータで、ファイルを構成するデータが終了することがわかる。すなわち、クラスタ60(2)、(3)、(4)、(7)は格子縞で網かけされており、同一ファイルを構成するデータが格納されていることを示す。また、クラスタ60(8)とその次のクラスタ60は斜め縞で網かけされており、同一ファイルを構成するデータが格納されていることを示す。さらに、クラスタ60(5)、(6)は斜め縞で網かけされておらず、データが削除されたことを示す。
そして、8番目から9番目までのクラスタ60に格納された蓄積データにより、構成されるファイルは、5番目、6番目のクラスタ60に格納されていた蓄積データが削除された後に追加された追加ファイルである。その追加ファイルのサイズは、削除された蓄積データから構成されていた削除ファイルのサイズと同じである。しかし、5番目、6番目のクラスタ60に対応するテーブル部64の領域(5)、(6)には”0”が書き込まれているため、5番目及び6番目のクラスタ60をさけて、蓄積データを格納するクラスタ60を選択し、追加ファイルに関する蓄積データは、8番目及び9番目のクラスタ60に書き込まれている。
そこで、図3及び図6を用いて、「”0”が書き込まれたテーブル部64の使用状況表示領域に対応するクラスタ60をさけて、蓄積データを格納するクラスタ60を選択し、蓄積データをクラスタ60に格納するとともに、テーブル部64に使用状況データを書き込む工程71、73」を説明する。
すなわち、図3に示すデータ排出工程71、73とは、蓄積データをクラスタ60に書き込む際に、テーブル部64において、”0”が書き込まれた使用状況表示領域に対応するクラスタ60を避けて、蓄積データを格納するクラスタ60を選択し、蓄積データ”を書き込む工程である。
図3及び図7を用いて、「蓄積データ格納部66及びテーブル部64のすべての領域を、過去において使用した状態又は現在使用している状態としたときは、上記の領域を再利用する再利用工程74」を説明する。
図7は、テーブル部64において、テーブル部64を再利用するところを示す。テーブル部64は、例えば、3区分の消去領域61から構成されているところを示す。
図7Aによれば、3区分の消去領域は、過去において使用した領域又は現在使用している領域であることがわかる。例えば、上段の消去領域61において、”0”が書き込まれている領域は、対応するクラスタ60から蓄積データを排出したことを示している。すなわち、”0”が書き込まれている領域は、過去において使用した領域である。それ以外の領域、例えば、FFF8、FFF7と表示されている領域は、その領域に対応するクラスタ60の使用状況を表示しており、現在使用している領域である。
図7Bは、上段の消去領域61について、過去において使用した領域の再利用を図る処理を行ったところを示す。
過去において使用した領域の再利用を図るには、以下のような処理を行う。まず、現在使用している領域に格納されている蓄積データを、RAM40の書き換え処理用作業領域に書き込む処理をする。次いで、消去動作を行うようにFLASHメモリ30を制御し、上段の消去領域61全体のデータを消去する処理をする。次いで、書き込み動作を行うようにFLASHメモリ30を制御し、RAM40に退避させておいた蓄積データを、上段の消去領域61に戻す処理をする。
その結果、上段の消去領域61において、”0”が書き込まれていた領域は、FFFFが書き込まれた領域となる。
図7Cは、中段の消去領域61について、過去において使用した領域の再利用を図る処理を行ったところを示す。上段の消去領域61に対して行ったと同様な処理を行うことにより、中段の消去領域61において、”0”が書き込まれていた領域は、FFFFが書き込まれた領域となる。
一方、FATファイスシステム領域32の蓄積データ格納領域66においても、図7Bで説明した処理と同様の処理を行う。その結果、現在使用中のクラスタ60の蓄積データはそのまま維持される。また、過去において使用されたクラスタ60には、FFFFが書き込まれる。
そこで、図3及び図7で示した、「蓄積データ格納部66及びテーブル部64のすべての領域が、過去において使用した状態又は現在使用している状態となったときは、上記の領域を再利用する再利用工程74」を説明する。
すなわち、図3に示す再利用工程74は、蓄積データ格納部66及びテーブル部64のすべての領域が、過去において使用した状態又は現在使用している状態となったときに、現在使用している領域の蓄積データは、そのまま維持し、一方、過去において使用した領域にはFFFFを書き込む工程である。
図8は、エントリ部65のデータが、各工程においてどのように処理されるかについて示す図である。ここで、各工程とは、初期化工程70、書き込み工程71及び73、データ排出工程72、再利用工程74をいう。
また、図8は、各工程における、ファイル名格納領域への入力データの状態及びファイルシステム10内のデータの状態を表している。そして、図8を用いて、ファイル名格納領域は2個であると仮定して、エントリ部65における、データの処理状況を説明する。
初期化工程70は、初期状態に、エントリ部65に属するビットにすべて”1”を書き込む工程である。すなわち、図8において示すように、初期化工程70において、入力データ「FFFFFFFFFFFFFFFFFFFFFF」と、「FFFFFFFFFFFFFFFFFFFFFF」とが、2個のファイル名格納領域に書き込まれる。一方、ファイルシステム10に対しては、上記の入力データの論理が反転したデータが入力される。
書き込み工程71及び73は、”0”が書き込まれた領域をさけて、エントリ部65にファイル情報を書き込む工程である。すなわち、図8に示すように、書き込み工程71及び73において、入力データ「BEBDBCDFDFDFDFABA7AB」と、「BBBAB9DFDFDFDFDFABA7AB」とが、エントリ部65に書き込まれる。一方、ファイルシステム10に対しては、上記の入力データの論理が反転したデータが入力される。
データ排出工程72は、蓄積データをクラスタ60から排出する際には、排出される蓄積データから構成されるファイルに対応するファイル情報を格納している領域にすべて”0”を書き込む工程である。すなわち、図8に示すように、データ排出工程72において、入力データ「0000000000000000000000」が2個目のファイル名格納領域に書き込まれる。一方、ファイルシステム10に対しては、上記の入力データの論理が反転したデータが入力される。
また、再利用工程74は、エントリ部65のすべての領域を、過去において使用した状態又は現在使用している状態としたときは、上記の領域を再利用する工程である。再利用工程74においては、エントリ部65に対して、図7Bで説明したものと同様な処理を行う。すなわち、図8に示すように、再利用工程74において、入力データ「FFFFFFFFFFFFFFFFFFFFFF」が2個目のファイル名格納領域に書き込まれる。
一方、上記の説明で用いたデータの論理は、FLASHメモリ30に書き込む際のものである。従って、ファイルシステム10に入力されるデータは、上記のデータと論理が反転しているデータである。
以上より、実施例2の管理方法は、「初期状態に、蓄積データ格納部66及びテーブル部64に属するビットにすべて”1”を書き込む初期化工程70」と、「蓄積データをクラスタ60から排出する際には、そのクラスタ60に対応するテーブル部64の使用状況表示領域にすべて”0”を書き込むデータ排出工程72」と、「”0”が書き込まれたテーブル部64の使用状況表示領域に対応するクラスタ60をさけて、蓄積データをクラスタ60に格納するとともに、テーブル部64に使用状況データを書き込む書込み工程71、73」と、を有することを特徴とするデータの管理方法である。
上記のようなデータの管理方法をFLASHメモリ30に対して適用すると、追加的に、ファイルを構成する蓄積データを書き込む場合に、FLASHメモリ30は、特定の領域に対して、消去動作を集中させることがない。
上記の管理方法は、「蓄積データをクラスタ60から排出する際には、そのクラスタ60に対応するテーブル部64の使用状況表示領域にすべて”0”を書き込むデータ排出工程72」と、「”0”が書き込まれたテーブル部64の使用状況表示領域に対応するクラスタ60をさけて、蓄積データをクラスタ60に格納するとともに、テーブル部64に使用状況データを書き込む書込み工程71、73」とを、備えるため、FLASHメモリ30において、現在使用している領域をさけるだけでなく、過去において使用した領域をもさけて、蓄積データの書き込みが行われる。従って、蓄積データの追加の度に消去動作を行うことがなく、すべての領域を使用した後に、消去動作が行われる。
そうすると、消去回数が減少し、特定領域への消去動作の集中がなくなるため、FLASHメモリ30の早期の劣化が防止され、本来の寿命を全うすることになる。
実施例3は、実施例1のファイルシステムにおけるデータの管理方法に関するものである。そして、その管理方法は、「初期状態に、少なくとも、蓄積データ格納部66、及び、消去領域管理テーブル31に属するビットにすべて”1”を書き込む工程」と、「蓄積データをクラスタ60に書き込む工程」と、「消去領域管理テーブル31に、消去領域内のクラスタ60の使用状況に応じた、クラスタ使用状況データを書き込む工程」と、「クラスタ使用状況に応じて、追加の蓄積データを格納するクラスタ60を選択し、選択したクラスタ60に蓄積データを追加書き込みする工程」と、「追加蓄積データ書き込み後に、消去領域管理テーブル31にクラスタ使用状況データを書き込む工程」と、「クラスタ使用状況データに基づき、追加蓄積データを書き込めないと判断するときは、消去領域についてデータ消去動作を行う工程」と、を有することを特徴とするデータの管理方法である。
「初期状態に、少なくとも、蓄積データ格納部66、及び、消去領域管理テーブル31に属するビットにすべて”1”を書き込む工程」は、FLASHメモリ30の記憶素子のデータを消去する工程である。
図9により、「蓄積データ書き込み工程」及び「クラスタ使用状況データを書き込み工程」を説明する。なお、「蓄積データ書き込み工程」は「蓄積データをクラスタ60に書き込む工程」であり、「クラスタ使用状況データを書き込み工程」は「消去領域管理テーブル31に、消去領域内のクラスタ60の使用状況に応じた、クラスタ使用状況データを書き込む工程」である。
図9は、消去領域61、消去領域管理テーブル31、及び、テーブル部64に書き込まれたデータを示す。なお、図9では、複数ある消去領域61の内、工程の説明に必要な消去領域61−1、61−2、61−3、61−4を抜き出して示している。また、消去領域61−1、61−2、61−3、61−4は、クラスタ番号2から33で示されるクラスタ60を含む。FATファイルシステム領域32に書き込まれたデータは、上記の消去領域61−1、61−2、61−3、61−4内に書き込まれているデータを示す。なお、消去領域61−1、61−2、61−3、61−4に書き込む蓄積データは、ファイルシステム10に入力される、入力データの反転データであることはいうまでもない。
そこで、図9によれば、クラスタ番号2から5で示されるクラスタ60、クラスタ番号19から22で示されるクラスタ60、及び、クラスタ番号23から24で示されるクラスタ60に、3つのファイルが、蓄積されているところを示す。また、消去領域管理テーブル31に、消去領域61−1に対し、「使用ファイル数:1」、クラスタ60における蓄積データの蓄積状態を示す「空き有り」とのクラスタ使用状況データが書き込まれている。また、消去領域61−2に対し、「使用ファイル数:0」、「空き有り」とのクラスタ使用状況データが書き込まれている。また、消去領域61−3に対し、「使用ファイル数:2」、「空き有り」とのクラスタ使用状況データが書き込まれている。また、消去領域61−4に対し、「使用ファイル数:0」、「空き有り」とのクラスタ使用状況データが書き込まれている。
テーブル部64における、蓄積データが書き込まれているクラスタ60に対応する領域に、ファイルに関する構成情報「0003、0004、0005、FFF8」、「0014、0015、0016、FFF8」「0018、FFF8」が書き込まれている。そして、情報「0003、0004、0005、FFF8」によれば、クラスタ番号2からクラスタ番号5で示すクラスタ60に蓄積データが蓄積されていることがわかる。「0003、0004、0005」によれば、クラスタ番号2で示すクラスタ60に書き込まれた蓄積データの続きがクラスタ番号3、4、5で示すクラスタ60に書き込まれていることがわかる。「FFF8」によれば、クラスタ番号5で示すクラスタ60に記載されている蓄積データが最後の蓄積データであることがわかる。「0014、0015、0016、FFF8」「0018、FFF8」によっても、同様なことがわかる。
以上より、「蓄積データをクラスタ60に書き込む工程」は、データ制御部17によって、ファイルシステム10に対する入力データの論理を反転させ、入力データを蓄積データに変換した後、蓄積データをFATファイルシステム領域32の消去領域61に書き込む工程である。その際、一つのファイルを構成する蓄積データは、ひとかたまりのデータとして扱われる。
「消去領域管理テーブル31に、消去領域内のクラスタ60の使用状況に応じた、クラスタ使用状況データを書き込む工程」を以下に説明する。ここで、消去領域61とは、FLASHメモリ30に対して消去動作をおこなったときに、一括してデータが消去される複数の記憶素子からなる消去単位に対応する、論理アドレスによって表されたデータ領域である。また、その消去領域61は、複数のクラスタ60から構成されている。そこで、使用状況とは、蓄積データから構成されるファイルが、消去領域61に蓄積されているか否かを示すものである。そして、使用状況データは、消去領域61毎に作成され、消去領域61にファイルが蓄積されているか否かを示すデータと、蓄積されているファイル数を示すデータとを有する。従って、クラスタ使用状況データを書き込む工程は、消去領域管理テーブル31に、消去領域61にファイルが蓄積されているか否かを示すデータと、蓄積されているファイル数を示すデータを書き込む工程である。
図10は、消去領域61−1、消去領域61−2、消去領域61−3、消去領域61−4、消去領域管理テーブル31、及び、FATファイルシステム領域32内のテーブル部64に書き込まれたデータを示す。それぞれは、図9に示したものと同様なものである。
そこで、図10は、図9におけるファイル書き込み状態に加え、さらに、ファイルをFATファイルシステム領域32に書き込んだところを示す。
図10によれば、追加して書き込んだファイルは、クラスタ番号10から17に対応するクラスタ60及びクラスタ番号26からクラスタ番号30に対応するクラスタ60に書き込まれている。すなわち、消去領域61−2と消去領域61−4の一部に、上記のファイルが書き込まれている。そして、消去領域61−2に対し、クラスタ使用状況データが、「使用ファイル数:1」、「空きなし」に変更される。また、消去領域61−4に対し、クラスタ使用状況データが「使用ファイル数:1」、「空き有り」に変更される。
さらに、テーブル部64には、「000B、000C、000D、000E、000F、0010、0011。001A、001B、001C、001D、001E、FFF8」とのファイル構成情報が追加される。
上記より、追加したファイルを構成する「蓄積データをクラスタ60に書き込む工程」は、消去領域管理テーブル31において、「使用ファイル数:0」、「空き有り」とのクラスタ使用状況データが書き込まれている、消去領域61を検索し、その消去領域61のクラスタ60に蓄積データを書き込む工程である。
そして、その書き込みに対応して「消去領域管理テーブル31に、消去領域内のクラスタ60の使用状況に応じた、クラスタ使用状況データを書き込む工程」は、消去領域管理テーブル31に、消去領域61にファイルが蓄積されているか否かを示すデータと、蓄積されているファイル数を示すデータを追加して書き込む工程である。
図11は、図10におけるファイル書き込み工程に加え、さらに、4番目のファイル内容の追加をFATファイルシステム領域32に書き込んだ状態を示す。
図11は、消去領域61−1、消去領域61−2、消去領域61−3、消去領域61−4、消去領域管理テーブル31、及び、FATファイルシステム領域32内のテーブル部64に書き込まれたデータを示す。それぞれは、図9に示したものと同様なものである。
図11によれば、追加して書き込んだファイルの内容は、クラスタ番号31から33に対応するクラスタ60及びクラスタ番号6からクラスタ番号8に対応するクラスタ60に書き込まれている。すなわち、消去領域61−1の一部と消去領域61−4の一部に、上記のファイル内容に追加が書き込まれている。その経緯を詳細に説明すると、4番目のファイルのデータが蓄積されている最後のクラスタ番号30が存在する消去領域61−4の空き領域に追加を書き込む。すなわち、クラスタ番号31から書き込む。そして、消去領域61−4のすべての領域に書き込んだにもかかわらず、さらに書き込む必要があるため、消去領域管理テーブル31を参照する。消去領域管理テーブル31の情報の中で、「空き有り」、かつ「使用ファイル数」が最小の消去領域を探すと、消去領域61−1であることがわかる。そして、消去領域61−1に対しファイル内容の追加の書き込みを行い、クラスタ使用状況データが、「使用ファイル数:2」、「空き有り」に変更される。また、消去領域61−4に対し、クラスタ使用状況データが「使用ファイル数:1」、「空きなし」に変更される。
さらに、テーブル部64には、「000B、000C、000D、000E、000F、0010、0011。001A、001B、001C、001D、001E、001F、0020、0021、0006、0007、0008、FFF8」とのファイル構成情報が追加される。
図12により、図11に示す状態とするための、「ファイル内容を追加書き込みする工程」に対する処理を、フローチャートを用いて示す。また、ファイル内容の追加に伴う「追加蓄積データ書き込み後に、消去領域管理テーブル31にクラスタ使用状況データを書き込む工程」と、を示す。
図12によれば、「ファイル内容を追加書き込みする工程」は、既存ファイルの追加書き込みか否かを判断するステップ80と、既存ファイルの最後のデータがあるクラスタ60をFATファイルシステム領域32のテーブル部64に記載された内容より特定するステップ81と、既存ファイルの最後のデータがあるクラスタ60が属する消去領域61に空きがあるか否かを判断し、空きがあれば、その消去領域61に追加蓄積データを書き込むステップ82と、追加データが書き込めたか否かを判断するステップ83と、書き込みを行った後、空きがあるか否かを判断するステップ84と、追加データが書き込めなかったときに、消去領域管理テーブル31を参照するステップ87と、使用ファイル数が0か否かを判断するステップ89と、消去領域61に空きがあるか否かを判断するステップ90と、使用ファイル数が最小な消去領域61であるか否かを判断するステップ91と、使用ファイル数が最小な消去領域61を記憶するステップ92と、消去管理テーブル31を参照して、ステップ87及び89からステップ92までのステップを行うステップ88と、使用ファイル数が0である消去領域61又は使用ファイル数が最小な消去領域61を決定し、その消去領域61に追加ファイルを書き込むステップ85と、消去管理テーブル31を更新するステップ86と、を有する。
その結果、図11に示すように、消去領域61−1の一部と消去領域61−4の一部に、上記のファイル内容に追加が書き込まれる。そして、消去領域61−1に対し、クラスタ使用状況データが、「使用ファイル数:2」、「空き有り」に変更される。また、消去領域61−4に対し、クラスタ使用状況データが「使用ファイル数:1」、「空きなし」に変更される。
上記の「ファイル内容を追加書き込みする工程」によれば、ファイル内容を追加書き込みするときに、ファイルを構成する蓄積データを、もとのクラスタ60に再書き込みをするのではなく、増加する蓄積データをそのファイルが属する消去領域61の空き領域に書き込む。空き領域がない場合は、消去領域管理テーブル31を参照して、他の消去領域61の空き領域に増加する蓄積データを書き込む。
従って、もとのクラスタ60に再書き込みするために、そのクラスタ60が属する消去領域61の消去動作を繰り返す必要がない。
ここで、消去管理テーブル31を更新するステップ86は、ファイル内容の追加に伴う「追加蓄積データ書き込み後に、消去領域管理テーブル31にクラスタ使用状況データを書き込む工程」である。その結果、図11に示すように、テーブル部64には、「000B、000C、000D、000E、000F、0010、0011。001A、001B、001C、001D、001E、001F、0020、0021、0006、0007、0008、FFF8」とのファイル構成情報が追加される。
図13は、再利用前のFATファイルシステム領域32と、再利用後のFATファイルシステム領域32とを示す。また、FATファイルシステム領域32は、ブートセクタ63、テーブル部64、エントリ部65、及び、蓄積データ格納部66を有する点は同様である。
図13によれば、「クラスタ使用状況データに基づき、追加蓄積データを書き込めないと判断するときは、消去領域についてデータ消去動作を行う工程」は以下のように行われる。消去領域管理テーブル31においては、消去領域管理テーブル31の全領域を使用した後、次に使用する消去領域管理テーブル31の領域が次の消去領域61に変わる毎に、次の消去領域61を消去して使用している。テーブル部64においては、テーブル部64の全領域を使用した後、次に使用するクラスタ60に対応する領域が、次の消去領域61に換わる毎に、次の消去領域61を消去して使用している。蓄積データ格納部66においては、各消去領域61の全領域を使用した後、次にその消去領域61を使用する順番となったときに、消去して使用する。
その管理方法は、「初期状態に、少なくとも、蓄積データ格納部66、及び、消去領域管理テーブル31に属するビットにすべて”1”を書き込む工程」と、「蓄積データをクラスタ60に書き込む工程」と、「消去領域管理テーブル31に、消去領域内のクラスタ60の使用状況に応じた、クラスタ使用状況データを書き込む工程」と、「クラスタ使用状況に応じて、追加の蓄積データを格納するクラスタ60を選択し、選択したクラスタ60に蓄積データを追加書き込みする工程」と、「追加蓄積データ書き込み後に、消去領域管理テーブル31にクラスタ使用状況データを書き込む工程」と、「クラスタ使用状況データに基づき、追加蓄積データを書き込めないと判断するときは、消去領域についてデータ消去動作を行う工程」と、を有することを特徴とするデータの管理方法である。
上記の「ファイル内容を追加書き込みする工程」によれば、ファイル内容を追加書き込みするときに、ファイルを構成する蓄積データを、もとのクラスタ60に再書き込みするのではなく、増加する蓄積データをそのファイルが属する消去領域61の空き領域に書き込む。空き領域がない場合は、消去領域管理テーブル31を参照して、他の消去領域61の空き領域に増加する蓄積データを書き込む。ファイル内容の変更を行う場合は、空き領域に変更を書き込み、テーブル部64を更新することで実現する。
従って、もとのクラスタ60に再書き込みするために、そのクラスタ60が属する消去領域61の消去動作を繰り返す必要がない。従って、消去動作が減少し、また、消去動作をその消去領域61に対して集中させることがない。すなわち、消去領域の消去回数が減少し、その消去単位の劣化が遅くなる。その結果、FLASHメモリ30の記憶領域の消去動作による劣化の程度を減少させることができる。
上記のファイルシステムにおいては、フラッシュメモリ内の格納領域又はテーブル部分の一部に消去動作が集中することがなく、すべての蓄積データ格納部分を使用した後、消去動作が行われることになる。従って、本発明の一側面によれば、消去領域内の蓄積データの消去回数が減少し、寿命が長いファイルシステムを提供することができる。
図1は、実施例1のファイルシステム10及びファイルシステムとのデータ入出力を行うパーソナルコンピュータ50を示す。 図2は、実施例1で示したFATファイルシステム領域32内のクラスタ60をアドレス順に示す。 図3は、実施例2の管理方法を示す。 図4は、初期状態における、アドレス順に並べられたクラスタ60の内容を示す。 図5は、蓄積データの書き込み状態及び蓄積データの排出状態における、アドレス順に並べられたクラスタ60の内容を示す。 図6は、蓄積データの追加書き込み状態における、アドレス順に並べられたクラスタ60の内容を示す。 図7は、テーブル部64において、テーブル部64を再利用するところを示す。 図8は、エントリ部65のデータが、各工程においてどのように処理されるかについて示す図である。 図9により、「蓄積データ書き込み工程」及び「クラスタ使用状況データを書き込み工程」を説明する。 図10は、図9におけるファイル書き込み状態に加え、さらに、ファイルをFATファイルシステム領域32に書き込んだところを示す。 図11は、図10におけるファイル書き込み工程に加え、さらに、4番目のファイル内容の追加をFATファイルシステム領域32に書き込んだ状態を示す。 図12により、図11に示す状態とするための、「ファイル内容を追加書き込みする工程」に対する処理を、フローチャートを用いて示す。 図13は、再利用前のFATファイルシステム領域32及び消去領域管理テーブル31と、再利用後のFATファイルシステム領域32及び消去領域管理テーブル31とを示す。
符号の説明
10 ファイルシステム
12 制御部
15 アプリケーション制御部
16 ファイルシステム制御部
17 データ制御部
18 FLASHドライバ
19 USBドライバ
26 データ入出力動作
27 データ読み書き動作
28 データ書き換え動作
30 FLASHメモリ
31 消去領域管理テーブル
32 FATファイルシステム領域
33 他の領域
40 RAM
50 パーソナルコンピュータ
51 アプリケーション制御手段
52 ファイルシステム制御手段
53 USBホストドライバ
60 クラスタ
61 消去領域
61−1、61−2、61−3、61−4 消去領域
63 ブートセクタ
64 テーブル部
65 エントリ部
66 蓄積データ格納部
70 初期化工程
71 書込み工程
72 データ排出工程
73 書込み工程
74 再利用工程
80、81、82、83、84、85、86、87、88、89、90、91 ステップ

Claims (7)

  1. 入力データの論理を反転して蓄積データとするデータ制御部と、
    前記蓄積データを格納する格納領域と、前記格納領域の使用状況が書き込まれるテーブル部分とからなる不揮発性記憶部と、
    前記テーブル部分に書き込まれた前記使用状況に応じて、前記蓄積データを前記格納領域に格納するように不揮発性記憶部を制御する制御部と
    を有することを特徴とするファイルシステム。
  2. 前記制御部は、
    前記テーブル部分を初期状態にする手段と、
    前記不揮発性記憶部の前記格納領域の使用状態に応じて前記テーブル部分に”0”の状態を書き込む手段と、
    前記テーブル部分における”0”の状態に応じて、前記蓄積データを格納する前記格納領域を選択する選択手段と、
    前記選択した格納領域に前記蓄積データを書き込む手段と、
    すべての前記格納領域を使用したときに、前記格納領域内の蓄積データを消去するように制御する手段と
    を有することを特徴とする請求項1記載のファイルシステム。
  3. 前記テーブル部分は、前記格納領域の前記使用状態に応じて”0”の状態が書き込まれる使用状態表示領域を有し、
    前記選択手段は、前記使用状態表示領域のビットに”0”が書き込まれているときは、前記”0”が書き込まれている使用状態表示領域に対応する前記格納領域をさけて、前記格納領域を選択することを特徴とする請求項2記載のファイルシステム。
  4. 蓄積データを格納する格納領域と、前記格納領域の使用状況が書き込まれるテーブル部分とからなる不揮発性記憶部と、前記テーブル部分に書き込まれた前記使用状況に応じて、前記蓄積データを前記格納領域に格納するように制御する制御部と、を有するファイルシステムにおけるデータの管理方法であって、
    前記格納領域及び前記テーブル部分に属するビットに”1”を書き込む初期化工程と、
    前記蓄積データを前記格納領域から排出する際には、前記格納領域に対応する前記テーブル部分の使用状況表示領域のすべてのビットに”0”を書き込むデータ排出工程と、
    ”0”が書き込まれた前記テーブル部分の前記使用状況表示領域に対応する前記格納領域をさけて、前記蓄積データを格納する前記格納領域を選択し、前記蓄積データを前記選択した格納領域に格納する工程と、
    前記テーブル部分に前記使用状況を書き込む書込み工程と、
    を有することを特徴とするデータの管理方法。
  5. 前記格納領域のすべての領域が、”0”が書き込まれた状態又は前記蓄積データを保持する状態となったときは、前記格納領域に属するビットに”1”を書き込む工程をさらに有することを特徴とする請求項4記載のデータの管理方法。
  6. 蓄積データを格納する格納領域と、前記格納領域を含む消去領域と、前記消去領域の使用状況が書き込まれる消去管理テーブルとからなる不揮発性記憶部と、前記消去管理テーブルに書き込まれた使用状況に応じて、前記蓄積データを前記格納領域に格納するように制御する制御部と、を有するファイルシステムにおけるデータの管理方法であって、
    前記蓄積データを格納する前記格納領域、及び、前記消去領域管理テーブルに属するビットにすべて”1”を書き込む工程と、
    前記蓄積データを前記格納領域に書き込む工程と、
    前記消去領域管理テーブルに、前記消去領域内の前記格納領域の前記使用状況に応じた、使用状況データを書き込む工程と、
    前記使用状況データに応じて、前記蓄積データを格納する前記格納領域を選択し、前記選択した格納領域に前記蓄積データを書き込む、蓄積データの書き込み工程と、
    前記蓄積データの書き込み工程後に、前記消去領域管理テーブルに前記使用状況データを書き込む工程と、を有することを特徴とするデータの管理方法。
  7. 前記使用状況データに基づき、前記蓄積データを書き込めないと判断するときは、消去領域についてデータ消去動作を行う工程を、さらに有することを特徴とする請求項6記載のデータの管理方法。
JP2008123651A 2008-05-09 2008-05-09 ファイルシステム及びデータ管理方法 Pending JP2009271848A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008123651A JP2009271848A (ja) 2008-05-09 2008-05-09 ファイルシステム及びデータ管理方法
US12/424,047 US8200611B2 (en) 2008-05-09 2009-04-15 File system and data management method
KR1020090040160A KR101067464B1 (ko) 2008-05-09 2009-05-08 파일 시스템 및 데이터 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008123651A JP2009271848A (ja) 2008-05-09 2008-05-09 ファイルシステム及びデータ管理方法

Publications (1)

Publication Number Publication Date
JP2009271848A true JP2009271848A (ja) 2009-11-19

Family

ID=41267751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008123651A Pending JP2009271848A (ja) 2008-05-09 2008-05-09 ファイルシステム及びデータ管理方法

Country Status (3)

Country Link
US (1) US8200611B2 (ja)
JP (1) JP2009271848A (ja)
KR (1) KR101067464B1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706788B (zh) * 2009-11-25 2012-11-14 惠州Tcl移动通信有限公司 一种嵌入式文件***的跨区访问方法
US11272918B2 (en) * 2018-06-27 2022-03-15 Boston Scientific Scimed, Inc. Endoscope attachment mechanism for use with suture based closure device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695955A (ja) * 1992-09-09 1994-04-08 Ricoh Co Ltd フラッシュ・ファイル・システム
JPH11272537A (ja) * 1998-03-20 1999-10-08 Victor Co Of Japan Ltd フラッシュ型メモリ及びその管理装置
JP2006099797A (ja) * 2001-11-28 2006-04-13 Access Co Ltd メモリ制御方法および装置
JP2006155461A (ja) * 2004-12-01 2006-06-15 Sony Corp 情報処理装置、情報処理方法、並びにプログラム
JP2007133487A (ja) * 2005-11-08 2007-05-31 Nec Corp ファイル管理方法、装置、およびプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
US5832493A (en) * 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
JP3175648B2 (ja) * 1997-07-07 2001-06-11 ソニー株式会社 記憶装置及びデータの書込み方法
JP4157294B2 (ja) * 2001-11-08 2008-10-01 富士通株式会社 欠陥ファイルの修復を可能とするファイルシステム
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7007049B2 (en) * 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
JP2005157781A (ja) 2003-11-26 2005-06-16 Sony Corp 情報処理装置および情報処理方法
US7594087B2 (en) * 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
US7447836B2 (en) * 2006-02-14 2008-11-04 Software Site Applications, Limited Liability Company Disk drive storage defragmentation system
JP5184041B2 (ja) * 2007-10-16 2013-04-17 株式会社バッファロー ファイルシステム管理装置およびファイルシステム管理プログラム
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0695955A (ja) * 1992-09-09 1994-04-08 Ricoh Co Ltd フラッシュ・ファイル・システム
JPH11272537A (ja) * 1998-03-20 1999-10-08 Victor Co Of Japan Ltd フラッシュ型メモリ及びその管理装置
JP2006099797A (ja) * 2001-11-28 2006-04-13 Access Co Ltd メモリ制御方法および装置
JP2006155461A (ja) * 2004-12-01 2006-06-15 Sony Corp 情報処理装置、情報処理方法、並びにプログラム
JP2007133487A (ja) * 2005-11-08 2007-05-31 Nec Corp ファイル管理方法、装置、およびプログラム

Also Published As

Publication number Publication date
KR20090117654A (ko) 2009-11-12
KR101067464B1 (ko) 2011-09-27
US20090282091A1 (en) 2009-11-12
US8200611B2 (en) 2012-06-12

Similar Documents

Publication Publication Date Title
US7783851B2 (en) Methods of reusing log blocks in non-volatile memories and related non-volatile memory devices
US10509570B2 (en) Method, device, and program for managing a flash memory for mass storage
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9772797B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US20150186224A1 (en) Data storage device and flash memory control method
US20170039141A1 (en) Mapping table updating method, memory storage device and memory control circuit unit
KR100818035B1 (ko) 저장 매체 상의 데이터 관리 및 데이터 관리 시스템과 컴퓨터 판독가능한 저장 매체
TWI436369B (zh) 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統
JP7095568B2 (ja) メモリコントローラ及びこれを備えるフラッシュメモリシステム
CN104951249A (zh) 存储器控制设备、信息处理设备及其控制方法
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2007094639A (ja) メモリコントローラ及びフラッシュメモリシステム
JP2009271848A (ja) ファイルシステム及びデータ管理方法
JP6719508B2 (ja) メモリ制御装置
JP4594944B2 (ja) メモリ制御装置
JP4826232B2 (ja) 情報処理装置およびブートプログラムの書き換え方法
JP3503448B2 (ja) フラッシュ型メモリ及びその管理装置
JP5520880B2 (ja) フラッシュメモリ装置
CN109964210B (zh) 存储***和存储控制方法
JP4888333B2 (ja) フラッシュディスク装置
JP4952742B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4572205B2 (ja) フラッシュメモリドライブ装置、その制御方法及びそのプログラム
JP5707695B2 (ja) フラッシュディスク装置
JP2007219793A (ja) フラッシュメモリの書き込み方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101101

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130618

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130918

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130925

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20131018