(57)【要約】【課題】ファイルシステムの特性をもつデータを、フラッシュメモリの消去単位と書き換え回数を考慮して複数のバンクに効率よく配置する。【解決手段】ファイルデータを管理、格納するためにクラスタに分割する手段と、フラッシュメモリの複数のバンクに格納することを考慮して、分割したクラスタをフラッシュメモリのアドレスに変換する手段と、フラッシュメモリのアドレスにファイルデータを書き込むためのデバイス書き込み手段を備える。【選択図】  図１
2004310656.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクを持ち同時読み書き可能な補助記憶に対してファイルデータを読み書きするための半導体ファイルシステムであって、
前記ファイルデータを管理するためにファイル管理単位に分割し、分割したファイル管理単位ごとに番号を付与するファイル情報生成手段と、
前記ファイル情報生成手段で分割したファイル管理単位を前記補助記憶のアドレスに変換するアドレス変換手段と、
前記アドレス変換手段で変換した前記補助記憶の前記アドレスに前記ファイルデータを書き込むデバイス書き込み手段とを備え、
ファイルデータを分割して複数のバンクに同時に書き込むことを特徴とするファイルシステム。
【請求項２】
前記アドレス変換手段は、前記ファイル情報生成手段によって分割した複数のファイル管理単位を、複数のバンクに振り分けてアドレスを付与することを特徴とする請求項１に記載のファイルシステム。
【請求項３】
前記補助記憶の特性である消去単位と、前記アドレスと、前記クラスタ番号の関係とを保持し、前記ファイルデータを前記ファイル管理単位への分割の際に前記消去単位に応じて効率的にデータを配置する書き込み効率化手段を備えた請求項２に記載のファイルシステム。
【請求項４】
前記補助記憶の特性である消去単位と、前記アドレスと、前記クラスタ番号の関係とを保持し、アドレス変換の際に前記消去単位に応じて効率的にデータを配置する書き込み効率化手段を備えた請求項２に記載のファイルシステム。
【請求項５】
前記補助記憶における前記ファイル管理単位ごとの書き込み回数を管理する書き込み回数管理テーブルを備えた請求項３に記載のファイルシステム。
【請求項６】
前記補助記憶における前記アドレスの書き込み回数を管理する書き込み回数管理テーブルを備えた請求項４に記載のファイルシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のバンクを持つ半導体記憶デバイスに対し同時書き込み可能なファイルシステムに関する。
【０００２】
【従来の技術】
電気的にデータの書き換えが可能な半導体記憶デバイスとしてフラッシュメモリが広く用いられている。また、フラッシュメモリの書き換え時間がきわめて長く、書き換え実行中はフラッシュメモリにアクセスできないことを解消するために、フラッシュメモリを複数のバンクに分割し、１つのバンクのデータを書き換え中でも、他のバンクを読み出せるフラッシュメモリが開発された。なお、「バンク」とは、半導体記憶デバイスを分割し複数の独立したと論理単位のことで、複数の読み書き操作を並列して行うことができる。
【０００３】
また、フラッシュメモリの特性として、データのブロックと呼ばれる単位の集合として構成される。このブロックはデータの消去単位を示し、ブロックを消去することでデータのクリアができる。ただし消去できる回数には制限があり、保証消去回数は個々のフラッシュメモリに依存する。
【０００４】
また、データの並列処理を行うバンクについて、記憶容量の設定の自由度が高められた半導体記憶装置とその制御方法については、特許文献１に記載されている。
【０００５】
【特許文献１】
特開２００１−１４３４８０号公報
【０００６】
【発明が解決しようとする課題】
以上説明したこのようなバンクの使用方法はファイルデータをクラスタ単位で管理するといったファイルシステムの特性を考慮していない。またフラッシュメモリの特性として、１度にデータを消去する単位が決められており、ファイルを管理するために分割したクラスタのサイズと消去単位は一致しない。またフラッシュメモリのデータの書き換え可能な回数は規定されているので、ファイルデータをメモリに効率よく配置しなければいけない。
【０００７】
本発明は、以上の点に鑑みてなされたもので、ファイルシステムの特性をもつデータを、フラッシュメモリの消去単位と書き換え回数を考慮して複数のバンクに効率よく配置することを特徴とする、ファイルシステムに関するものである。
【０００８】
【課題を解決するための手段】
本発明における第１の発明では、上記課題を解決するために、コンピュータにおいて、ファイルデータを管理、格納するためにクラスタに分割する手段と、フラッシュメモリの複数のバンクに格納することを考慮して、分割したクラスタをフラッシュメモリのアドレスに変換する手段と、フラッシュメモリのアドレスにファイルデータを書き込むためのデバイス書き込み手段を備えたファイルシステムである。
【０００９】
本発明における第２の発明では、上記課題を解決するために、フラッシュメモリの消去単位のブロックを考慮して複数のクラスタにクラスタ番号を振る手段を備えたファイルシステムである。
【００１０】
本発明における第３の発明では、上記課題を解決するために、フラッシュメモリの消去単位のブロックを考慮して複数のクラスタを連続したアドレスに変換する手段備えたファイルシステムである。
【００１１】
本発明における第４の発明では、上記課題を解決するために、フラッシュメモリの書き換え回数を考慮して、ブロックごともしくはクラスタごとの書き換え回数をカウントする手段を備えたファイルシステムである。
【００１２】
本発明における第５の発明では、上記課題を解決するために、フラッシュメモリの書き換え回数を考慮して、ブロックごともしくはアドレスごとの書き換え回数をカウントする手段を備えたファイルシステムである。
【００１３】
【発明の実施形態】
（実施の形態１）
以下本発明の第１の実施の形態におけるファイルシステムについて、ＦＡＴファイルシステムを例に、図面を参照しながら説明する。
【００１４】
図８は本発明におけるファイルシステムの動作するコンピュータの構成図である。８０１はコンピュータ、８０２はファイルシステム、８０３は補助記憶、８０４は表示部、８０５は主記憶、８０６はＣＰＵ、８０７はユーザ入力を示す。
【００１５】
図１は本発明におけるファイルシステムの構成図である。１０１はコンピュータ、１０２はファイルシステム、１０３は補助記憶、１０４はファイル情報生成手段、１０５はアドレス変換手段、１０６はメモリ読み書き手段（デバイス書き込み手段）、１０７はｂａｎｋ１、１０８はｂａｎｋ２を示す。
【００１６】
図６はＦＡＴファイルシステムにおけるファイル情報の構成図である。６０１はファイル情報、６０２はファイル名、６０３はファイルサイズ、６０４はスタートクラスタナンバーを示す。
【００１７】
図７はＦＡＴファイルシステムにおけるクラスタとメモリのアドレスの関係を示す。７０１はクラスタチェーンテーブル、７０２はクラスタ番号０ｘ０３Ｈの次のクラスタ番号、７０３はｂａｎｋ１、７０４はｂａｎｋ２、７０５は補助記憶、７０６はファイルにおける最後のクラスタを示す。
【００１８】
ファイルシステム１０２はユーザやアプリケーションプログラムよりファイルのオープン要求を受け付ける。ファイルのオープン要求にはファイル名が含まれる。要求を受け付けたファイルシステム１０２は補助記憶１０３から同名のファイルを検索し、存在する場合ファイル識別子を生成し呼び手に返す。一方同名のファイルが存在しない場合ファイル情報生成手段１０４によりファイル情報６０１を生成し、ファイル名６０２を記述する。またファイル識別子を生成し呼び手に返す。
【００１９】
ファイルシステム１０２はユーザやアプリケーションよりファイルデータの書き込み要求を受け付ける。ファイルデータの書き込み要求にはファイルを一意に特定するファイル識別子、書き込むサイズ、書き込むデータが含まれる。要求を受けたファイルシステム１０２は、ファイル情報生成手段１０４にファイルデータを渡す。
【００２０】
ファイル情報生成手段１０４がファイルデータを一意に決められたクラスタサイズで分割したデータをクラスタと呼び、ファイル情報生成手段１０４は各クラスタにクラスタ番号を振り、クラスタの順番はクラスタチェーン７０１で管理する。ファイルデータを受け取ったファイル情報生成手段１０４は、ファイル情報６０１にファイルサイズを記述する。ファイル情報生成手段１０４は、クラスタチェーン７０１を探索し空いているクラスタ番号をファイル情報６０１のスタートクラスタナンバー６０４に記述する。ファイル情報生成手段１０４はアドレス変換手段１０５にクラスタ番号とクラスタを渡す。ファイル情報６０１へのファイルサイズの記述、クラスタナンバーの記述は、補助記憶１０３にファイルデータを書き込んだ後でも良い。
【００２１】
アドレス変換手段１０５は、クラスタ番号に対応する補助記憶１０３のアドレスを取得し、デバイス書き込み手段１０６に渡す。ここではｂａｎｋ１、ｂａｎｋ２といった２つのバンクを持つフラッシュメモリ１０３を考え、２つのバンクに同時に書き込むことができるものとする。そのときフラッシュメモリのアドレスへの変換はクラスタ番号が奇数の場合ｂａｎｋ１のアドレス、クラスタ番号が偶数の場合はｂａｎｋ２のアドレスに変換するものである。ここでのアドレスの変換は、クラスタ番号とｂａｎｋ１またはｂａｎｋ２の各アドレスと１対１で対応していても良いし、アドレス変換手段１０５がフラッシュメモリ１０３のｂａｎｋ１またはｂａｎｋ２の空きアドレスを探索しても良い。
【００２２】
デバイス書き込み手段１０６は、補助記憶１０３のｂａｎｋ１とｂａｎｋ２のアドレスの場所に、同時に対応するクラスタのデータを書き込む。
【００２３】
また、ここでは、２つのバンクについての振り分けを考えたが、３つ以上の複数のバンクであっても良い。そのときｘ個バンクに均一に振り分ける方法は、クラスタ番号をｘで除算し、剰余に応じて振り分ける。もしくは、ランダムに振り分ける。
【００２４】
本発明におけるファイルシステムについて具体例を挙げ説明をする。
【００２５】
ユーザが「Ａ．ｔｘｔ」というファイル名のファイルをオープン要求する。ファイルシステムはＦＡＴファイルシステムにおけるファイル情報６０１のファイル名６０２が「Ａ．ｔｘｔ」というファイルを検索し、無い場合、ファイル情報生成手段１０４よりファイル情報６０１を生成し、ファイル名６０２「Ａ．ｔｘｔ」を記述し、ファイル識別子「１」をユーザに返す。このときユーザはファイルサイズを指定することもできるが、指定しない場合ファイルサイズ６０３は初期値「０」が記述され、スタートクラスタナンバー６０４にはファイルの終端クラスタを示す「ＥＯＦ」が入る。
【００２６】
次にユーザがファイル識別子「１」のファイルの先頭から「２０００ｂｙｔｅ」のデータを書き込む要求をする。ファイルシステム１０２はファイル情報生成手段に要求されたデータを渡し、ファイル情報生成手段１０４は、現在のファイルサイズが０で、今回２０００ｂｙｔｅのサイズを書き込むので、ファイル情報６０１にファイルサイズ「２０００」を記録する。ファイル情報６０１へのファイルサイズの書き込みは、フラッシュメモリ１０３へのデータの書き込み完了後でも良い。
【００２７】
またファイル情報生成手段１０４は、クラスタサイズが５１２ｂｙｔｅなので、「Ａ．ｔｘｔ」は２０００ｂｙｔｅのファイルデータを４クラスタに分割する。それぞれ４分割したデータを先頭から５１２ｂｙｔｅをデータａ、５１３ｂｙｔｅ目から１０２４ｂｙｔｅ目をデータｂ、１０２５ｂｙｔｅ目から１５３６ｂｙｔｅ目をデータｃ、のこり２０００ｂｙｔｅ目をデータｄとする。ファイル情報生成手段１０４は、クラスタチェーン７０１を探索し、クラスタ番号０ｘ０３が空いているので、ファイル情報６０１のスタートクラスタナンバー６０４に「０ｘ０３」を記述する。次に、アドレス変換手段１０５はクラスタ番号が奇数なので、ｂａｎｋ１の５１２ｂｙｔｅ分空いている先頭のアドレス「１０００Ｈ」を取得し、デバイス書き込み手段１０６に渡す。デバイス書き込み手段１０６は、データａを「１０００Ｈ」に書き込む。またｂａｎｋ１への書き込みとｂａｎｋ２への書き込みを並列に行うことができるので、次のデータｂについて、ファイル情報生成手段１０４は、クラスタチェーン７０１の偶数のクラスタ番号を探索し、クラスタ番号「０ｘ０４」が空いているので、クラスタチェーン７０１のクラスタ番号０ｘ０３の次のクラスタ番号７０２には「０ｘ０４」を記述する。アドレス変換手段１０５はクラスタ番号が偶数なので、ｂａｎｋ２の５１２ｂｙｔｅ分空いている先頭のアドレス「２０００Ｈ」を取得し、デバイス書き込み手段１０６に渡す。デバイス書き込み手段１０６は、データｂを「２０００Ｈ」に書き込む。よってｂａｎｋ１の書き込みとｂａｎｋ２の書き込みは同時にできる。データａの書き込みが終了したら同様にデータｃをｂａｎｋ１に書き込み、データｂの書き込みが終了したらデータｄをｂａｎｋ２に書き込む。ファイルデータの最後まで書き込みが終了したら、最後のクラスタ番号「０ｘ０６」の次のクラスタ番号７０６には「ＥＯＦ」を記述する。
【００２８】
ここでは、書き込むデータのｂａｎｋ１、ｂａｎｋ２への振り分けについて、ファイル情報生成手段１０４がクラスタ分けの際、クラスタ番号が偶数の場合ｂａｎｋ１、奇数の場合ｂａｎｋ２のようにバンクを意識して行うように書いたが、バンクの振り分けは、アドレス変換手段１０５がアドレス変換の際に行っても良い。この場合、ファイル情報生成手段１０４がクラスタ分けする際は、空いているところから順にクラスタ番号を振りアドレス変換手段１０５にクラスタ番号とクラスタを渡す。アドレス変換手段１０５は受け取った順番にｂａｎｋ１、ｂａｎｋ２交互に対応するアドレスを振り、デバイス書き込み手段１０６にクラスタとアドレスを渡す。また、ここでは、２つのバンクについての振り分けを考えたが、３つ以上の複数のバンクであっても良い。そのときｘ個バンクに均等に振り分ける方法は、アドレス変換手段１０５が受け取った順番に異なるバンクに振り分け、それをクラスタのデータの書き込み終了まで繰り返す。もしくは、順番ではなくランダムでバンクに振り分けても良い。
【００２９】
本発明についてＦＡＴファイルシステムを例に説明したが、補助記憶に対してブロック単位で書き込めるファイルシステムであれば、同様に適応できる。
【００３０】
（実施の形態２）
以下本発明の第２の実施の形態におけるファイルシステムについて、ＦＡＴファイルシステムを例に、図面を参照しながら説明する。
【００３１】
図２は本発明におけるファイルシステムの構成図である。２０１はコンピュータ、２０２はファイルシステム、２０３は補助記憶、２０４はファイル情報生成手段、２０５はアドレス変換手段、２０６はデバイス書き込み手段、２０７はｂａｎｋ１、２０８はｂａｎｋ２、２０９は書き込み効率化手段を示す。
【００３２】
まずクラスタ番号と、フラッシュメモリの各バンクにおけるアドレスが固定であるとして考える。つまり、クラスタ番号が決まれば、フラッシュメモリのどこに書き込むか一意に決まる。
【００３３】
書き込み効率化手段２０９は、クラスタ番号と、それに対応するフラッシュメモリのアドレス、そしてフラッシュメモリ毎の特性である消去単位を把握している。ファイル情報生成手段２０４がクラスタチェーンを作る際、書き込み効率化手段２０９にこれらの情報を問い合わせることにより、効率的なメモリ配置が実現できる。ここでは、フラッシュメモリの消去単位を６４Ｋｂｙｔｅとする。
【００３４】
本発明におけるファイルシステムについて実施の形態１と異なる部分を中心に具体例を挙げ説明をする。
【００３５】
ユーザが「７０Ｋｂｙｔｅ」のデータを書き込む要求をする。ファイルシステム２０２はファイル情報生成手段に要求されたデータを渡す。
【００３６】
またファイル情報生成手段２０４は、クラスタサイズが５１２ｂｙｔｅなので、７０Ｋｂｙｔｅのファイルデータを１４０クラスタに分割する。まずファイル情報生成手段２０４は、書き込み効率化手段２０９に問い合わせ、空きクラスタ番号を取得する。この際、フラッシュメモリの消去単位が６４Ｋｂｙｔｅなので、７０Ｋｂｙｔｅのファイルの６４Ｋｂｙｔｅはフラッシュメモリの同じブロックに配置したほうが効率がよい。よって、書き込み効率化手段２０９は、６４Ｋｂｙｔｅ空いているブロックのアドレスに一意に対応するクラスタ番号を取得して、ファイル情報生成手段２０４に返す。また残りの６Ｋｂｙｔｅについては、先に割り当てた６４Ｋｂｙｔｅと異なるバンクの、空いているアドレスに対応するクラスタ番号を取得して、ファイル情報生成手段２０４に返す。ファイル情報生成手段２０４は、取得したクラスタ番号をファイル情報に記述し、アドレス変換手段２０５にクラスタ番号とクラスタのデータを渡す。アドレス変換手段２０５は、クラスタ番号とフラッシュメモリのアドレスが一意に決まっているので、機械的にクラスタ番号とアドレスを変換し、デバイス書き込み手段２０６に渡す。またこのとき先の６４Ｋｂｙｔｅのデータと６Ｋｂｙｔｅのデータは別バンクに書き込むので、並列に実行できる。
【００３７】
ここではアドレス変換手段２０５と、書き込み効率化手段２０９は別の手段として説明したが、書き込み効率化手段２０９は、アドレス変換手段２０５の一機能であってもよい。
【００３８】
（実施の形態３）
以下本発明の第３の実施の形態におけるファイルシステムについて、ＦＡＴファイルシステムを例に、図面を参照しながら説明する。
【００３９】
図３は本発明におけるファイルシステムの構成図である。３０１はコンピュータ、３０２はファイルシステム、３０３は補助記憶、３０４はファイル情報生成手段、３０５はアドレス変換手段、３０６はデバイス書き込み手段、３０７はｂａｎｋ１、３０８はｂａｎｋ２、３０９は書き込み効率化手段を示す。
【００４０】
書き込み効率化手段３０９は、フラッシュメモリのアドレスとフラッシュメモリ毎の特性である消去単位を把握している。アドレス変換手段３０５がクラスタ番号からアドレスに変換する際、書き込み効率化手段３０９にこれらの情報を問い合わせることにより、効率的なメモリ配置が実現できる。ここでは、フラッシュメモリの消去単位を６４Ｋｂｙｔｅとする。
【００４１】
本発明におけるファイルシステムについて実施の形態２と異なる部分を中心に具体例を挙げ説明をする。
【００４２】
ユーザが「７０Ｋｂｙｔｅ」のデータを書き込む要求をする。ファイルシステム３０２はファイル情報生成手段３０４に要求されたデータを渡す。ファイル情報生成手段３０４は、クラスタサイズが５１２ｂｙｔｅなので、７０Ｋｂｙｔｅのファイルデータを１４０クラスタに分割する。それぞれのクラスタに対し空きクラスタ番号を付与する。ファイル情報生成手段３０４はアドレス変換手段３０５に対してクラスタ番号とクラスタのデータを渡す。
【００４３】
アドレス変換手段３０５は、フラッシュメモリの消去単位が６４Ｋｂｙｔｅなので、７０Ｋｂｙｔｅのファイルの６４Ｋｂｙｔｅはフラッシュメモリの同じブロックに配置したほうが効率がよい。よって、書き込み効率化手段３０９は、６４Ｋｂｙｔｅ空いているブロックのアドレスを取得して、アドレス変換手段３０５に返す。また残りの６Ｋｂｙｔｅについては、先に割り当てた６４Ｋｂｙｔｅと異なるバンクの、空いているアドレスを、アドレス変換手段３０５に返す。アドレス変換手段３０５は、取得したアドレスと対応するクラスタデータをデバイス書き込み手段３０６に渡す。またこのとき先の６４Ｋｂｙｔｅのデータと６Ｋｂｙｔｅのデータは別バンクに書き込むので、並列に実行できる。
【００４４】
ここではアドレス変換手段３０５と、書き込み効率化手段３０９は別の手段として説明したが、書き込み効率化手段３０９は、アドレス変換手段３０５の一機能であってもよい。
【００４５】
（実施の形態４）
以下本発明の第４の実施の形態におけるファイルシステムについて、ＦＡＴファイルシステムを例に、図面を参照しながら説明する。
【００４６】
図４は本発明におけるファイルシステムの構成図である。４０１はコンピュータ、４０２はファイルシステム、４０３は補助記憶、４０４はファイル情報生成手段、４０５はアドレス変換手段、４０６はデバイス書き込み手段、４０７はｂａｎｋ１、４０８はｂａｎｋ２、４０９は書き込み効率化手段、４１０は書き込み回数管理テーブルを示す。
【００４７】
図９は本発明における書き込み回数管理テーブルの構成図である。９０１は書き込み回数管理テーブル、９０２はブロックナンバー、９０３はブロックナンバーに対応するクラスタ番号、９０４は書き込み回数、９０５はバンクナンバー、９０６は使用状況を示す。
【００４８】
まずクラスタ番号と、フラッシュメモリの各バンクにおけるアドレスが固定であるとして考える。つまり、クラスタ番号が決まれば、フラッシュメモリのどこに書き込むか一意に決まる。
【００４９】
書き込み回数管理テーブル４１０は、クラスタ毎の書き込み回数を把握している。
書き込み効率化手段４０９が消去単位を元にクラスタ番号を検索する際に、書き込み回数管理テーブル４１０にこれらの情報を問い合わせることにより、効率的なメモリ配置が実現できる。ここでは、フラッシュメモリの消去単位を６４Ｋｂｙｔｅとする。
本発明におけるファイルシステムについて実施の形態２と異なる部分を中心に具体例を挙げ説明をする。
ユーザが「７０Ｋｂｙｔｅ」のデータを書き込む要求をする。ファイルシステム４０２はファイル情報生成手段に要求されたデータを渡す。ファイル情報生成手段４０４は、クラスタサイズが５１２ｂｙｔｅなので、７０Ｋｂｙｔｅのファイルデータを１４０クラスタに分割する。まずファイル情報生成手段４０４は、書き込み効率化手段４０９に問い合わせ、空きクラスタ番号を取得する。この際、フラッシュメモリの消去単位が６４Ｋｂｙｔｅなので、７０Ｋｂｙｔｅのファイルの６４Ｋｂｙｔｅはフラッシュメモリの同じブロックに配置したほうが効率がよい。また、各ブロックの最大書き込み回数が規定されているので、回数が少ないブロックから書き込むべきである。よって、書き込み効率化手段４０９は、書き込み回数管理テーブル９０１を参照して、使用状況９０６を確認して現在使用されていない、かつ、書き込み回数９０４の少ないブロック９０２に対応するクラスタ番号９０３である「０〜１２７」を取得し、ファイル情報生成手段９０４に返す。書き込み効率化手段４０９は、このとき書き込み回数管理テーブル９０１の書き込み回数９０４を１増加させ、使用状況９０６を「○」にする。また、残りの６Ｋｂｙｔｅについては、先に割り当てた６４Ｋｂｙｔｅと異なるバンクナンバー９０５の、空いているアドレスに対応するクラスタ番号９０３である「３８４〜５１１」を取得して、ファイル情報生成手段９０４に返す。ファイル情報生成手段９０４は、取得したクラスタ番号をファイル情報に記述し、アドレス変換手段９０５にクラスタ番号とクラスタのデータを渡す。アドレス変換手段９０５は、クラスタ番号とフラッシュメモリのアドレスが一意に決まっているので、機械的にクラスタ番号とアドレスを変換し、デバイス書き込み手段９０６に渡す。またこのとき先の６４Ｋｂｙｔｅのデータと６Ｋｂｙｔｅのデータは別バンクに書き込むので、並列に実行できる。
ここではアドレス変換手段４０５と、書き込み効率化手段４０９は別の手段として説明したが、書き込み効率化手段４０９は、アドレス変換手段４０５の一機能であってもよい。
また、書き込み回数管理テーブル９０１は、書き込み効率化手段４０９内に含まれても良い。
また、書き込み回数管理テーブル９０１は、より効率よく書き込むためにクラスタごとの書き込み回数を管理しても良い。
【００５０】
（実施の形態５）
以下本発明の第５の実施の形態におけるファイルシステムについて、ＦＡＴファイルシステムを例に、図面を参照しながら説明する。
【００５１】
図５は本発明におけるファイルシステムの構成図である。５０１はコンピュータ、５０２はファイルシステム、５０３は補助記憶、５０４はファイル情報生成手段、５０５はアドレス変換手段、５０６はデバイス書き込み手段、５０７はｂａｎｋ１、５０８はｂａｎｋ２、５０９は書き込み効率化手段、５１０は書き込み回数管理テーブルを示す。
【００５２】
図１０は本発明における書き込み回数管理テーブルの構成図である。１００１は書き込み回数管理テーブル、１００２はブロックナンバー、１００３はブロックナンバーに対応するアドレス、１００４は書き込み回数、１００５はバンクナンバー、１００６は使用状況を示す。
【００５３】
書き込み回数管理テーブル５１０は、アドレス毎の書き込み回数を把握している。
書き込み効率化手段５０９が消去単位を元にアドレスを検索する際に、書き込み回数管理テーブル５１０にこれらの情報を問い合わせることにより、効率的なメモリ配置が実現できる。ここでは、フラッシュメモリの消去単位を６４Ｋｂｙｔｅとする。
本発明におけるファイルシステムについて実施の形態４と異なる部分を中心に具体例を挙げ説明をする。
ユーザが「７０Ｋｂｙｔｅ」のデータを書き込む要求をする。ファイルシステム５０２はファイル情報生成手段に要求されたデータを渡す。ファイル情報生成手段５０４は、クラスタサイズが５１２ｂｙｔｅなので、７０Ｋｂｙｔｅのファイルデータを１４０クラスタに分割する。それぞれのクラスタに対し空きクラスタ番号を付与する。ファイル情報生成手段５０４はアドレス変換手段５０５に対してクラスタ番号とクラスタのデータを渡す。
アドレス変換手段５０５は、フラッシュメモリの消去単位が６４Ｋｂｙｔｅなので、７０Ｋｂｙｔｅのファイルの６４Ｋｂｙｔｅはフラッシュメモリの同じブロックに配置したほうが効率がよい。また、各ブロックの最大書き込み回数が規定されているので、回数が少ないブロックから書き込むべきである。書き込み効率化手段５０９は、書き込み回数管理テーブル１００１を参照して、使用状況１００６を確認して現在使用されていない、かつ、書き込み回数１００４の少ないブロック１００２に対応するアドレス１００３である「１００００Ｈ」を取得し、アドレス変換手段５０５に返す。書き込み効率化手段１００９は、このとき書き込み回数管理テーブル１００１の書き込み回数１００４を１増加させ、使用状況１００６を「○」にする。また、残りの６Ｋｂｙｔｅについては、先に割り当てた６４Ｋｂｙｔｅと異なるバンクナンバー１００５の、空いているアドレス１００３である「５００００Ｈ」を取得して、アドレス変換手段５０５に返す。アドレス変換手段５０５は、取得したアドレスを元にクラスタ番号をアドレスに変換し、対応するクラスタデータをデバイス書き込み手段５０６に渡す。またこのとき先の６４Ｋｂｙｔｅのデータと６Ｋｂｙｔｅのデータは別バンクに書き込むので、並列に実行できる。
ここではアドレス変換手段５０５と、書き込み効率化手段５０９は別の手段として説明したが、書き込み効率化手段５０９は、アドレス変換手段５０５の一機能であってもよい。
また、書き込み回数管理テーブル１００１は、書き込み効率化手段５０９内に含まれても良い。
また、書き込み回数管理テーブル１００１は、より効率よく書き込むためにより細分化されたアドレスごとの書き込み回数を管理しても良い。
【００５４】
【発明の効果】
以上説明したように、本発明における第１の発明では、ファイルシステムにおいてクラスタごとに管理しているファイルデータを複数バンクに同時に書き込むことで、１ファイルの書き込み速度を向上することができる。
【００５５】
本発明における第２、第３の発明では、ファイルデータをフラッシュメモリの消去単位で複数バンクに同時に書き込むことで、１ファイルの書き込み速度と、ファイルデータの書き換えの効率を向上することができる。
【００５６】
本発明における第４、第５の発明では、ファイルデータをフラッシュメモリの消去単位で、複数バンクの書き換え回数の少ない位置から同時に書き込むことで、１ファイルの書き込み速度と、ファイルデータの書き換えの効率と、フラッシュメモリの延命を向上することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるファイルシステムの構成図
【図２】本発明の第２の実施の形態におけるファイルシステムの構成図
【図３】本発明の第３の実施の形態におけるファイルシステムの構成図
【図４】本発明の第４の実施の形態におけるファイルシステムの構成図
【図５】本発明の第５の実施の形態におけるファイルシステムの構成図
【図６】ＦＡＴファイルシステムにおけるファイル情報の構成図
【図７】ＦＡＴファイルシステムにおけるクラスタとメモリのアドレスの関係を示す図
【図８】本発明におけるファイルシステムの動作するコンピュータの構成図
【図９】本発明の第４の実施の形態における書き込み回数管理テーブルの構成図
【図１０】本発明の第５の実施の形態における書き込み回数管理テーブルの構成図
【符号の説明】
１０１  コンピュータ
１０２  ファイルシステム
１０３  補助記憶
１０４  ファイル情報生成手段
１０５  アドレス変換手段
１０６  デバイス書き込み手段
１０７  ｂａｎｋ１
１０８  ｂａｎｋ２
２０１  コンピュータ
２０２  ファイルシステム
２０３  補助記憶
２０４  ファイル情報生成手段
２０５  アドレス変換手段
２０６  デバイス書き込み手段
２０７  ｂａｎｋ１
２０８  ｂａｎｋ２
２０９  書き込み効率化手段
３０１  コンピュータ
３０２  ファイルシステム
３０３  補助記憶
３０４  ファイル情報生成手段
３０５  アドレス変換手段
３０６  デバイス書き込み手段
３０７  ｂａｎｋ１
３０８  ｂａｎｋ２
３０９  書き込み効率化手段
４０１  コンピュータ
４０２  ファイルシステム
４０３  補助記憶
４０４  ファイル情報生成手段
４０５  アドレス変換手段
４０６  デバイス書き込み手段
４０７  ｂａｎｋ１
４０８  ｂａｎｋ２
４０９  書き込み効率化手段
４１０  書き込み回数管理テーブル
５０１  コンピュータ
５０２  ファイルシステム
５０３  補助記憶
５０４  ファイル情報生成手段
５０５  アドレス変換手段
５０６  デバイス書き込み手段
５０７  ｂａｎｋ１
５０８  ｂａｎｋ２
５０９  書き込み効率化手段
５１０  書き込み回数管理テーブル
６０１  ファイル情報
６０２  ファイル名
６０３  ファイルサイズ
６０４  スタートクラスタナンバー
７０１  クラスタチェーンテーブル
７０２  次のクラスタ番号
７０３  ｂａｎｋ１
７０４  ｂａｎｋ２
７０５  補助記憶
７０６  最後のクラスタ
８０１  コンピュータ
８０２  ファイルシステム
８０３  補助記憶
８０４  表示部
８０５  主記憶
８０６  ＣＰＵ
８０７  ユーザ入力
９０１  書き込み回数管理テーブル
９０２  ブロックナンバー
９０３  ブロックナンバーに対応するクラスタ番号
９０４  書き込み回数
９０５  バンクナンバー
９０６  使用状況
１００１  書き込み回数管理テーブル
１００２  ブロックナンバー
１００３  ブロックナンバーに対応するアドレス
１００４  書き込み回数
１００５  バンクナンバー
１００６  使用状況
【図１】
2004310656.tif 000003
【図２】
2004310656.tif 000004
【図３】
2004310656.tif 000005
【図４】
2004310656.tif 000006
【図５】
2004310656.tif 000007
【図６】
2004310656.tif 000008
【図７】
2004310656.tif 000009
【図８】
2004310656.tif 000010
【図９】
2004310656.tif 000011
【図１０】
2004310656.tif 000012