(57)【要約】      （修正有）【課題】記録媒体内のFAT情報の占める割合を増やすことなく、書き換え制限のある記録媒体の寿命を延ばすデバイスドライバを提供する。【解決手段】本発明のデバイスドライバは、記録媒体内のFAT更新回数を管理し、ある規定回数に到達した場合にFAT情報を同一FAT領域内で変換し、FATの項目番号101とクラスタ番号111の関係を動的に変化させることで、データ領域222に手を加えることなくFAT100の一部に集中する書き込みを分散させ、FAT100の相対的な寿命を延ばす。【選択図】図１（Ｂ）
2007299020.tif 000002
【特許請求の範囲】
【請求項１】
書き換え回数に制限のある記録媒体にファイルを記録する際において、ファイル割り当てテーブル（以下FAT）の更新回数を前記記録媒体に記録し、前記FATを更新する度に前記更新回数を更新し、ある規定値を超えた段階で前記FATの項目番号と前記記録媒体内のデータ領域を管理するクラスタ番号の関係を動的に変更し、この変更方法に基づき前記FATの値を変更し、変更内容を前記記録媒体に記録し、かつ前記更新回数を初期化する特徴を有するデバイスドライバ。
【請求項２】
前記記録媒体の前記変更内容情報に基づき、前記FATの項目番号と前記記録媒体内のデータ領域を管理するクラスタ番号の対応関係を構築し、ファイル本体の読み込み、書き込みを行うことを特徴とする請求項１記載のデバイスドライバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、書き換え回数に制限のある記録媒体にファイルを記録する際にファイルの作成を実施したり、削除ならびに更新を行うデバイスドライバに関する。
【背景技術】
【０００２】
ファイル割り当てテーブル(File Allocation Table:以下、FATと称す)を用いて記録媒体上のファイルを管理するファイルシステムにおいては、図６に示すように、記録媒体204の固定的な位置にFAT100を配置し、ファイルの作成、更新、削除時に、FAT100を更新している。FAT100には、記録媒体204の記録域（データ領域）222の空き状況やファイル本体223の連鎖状況が記録されている。記録域222の基本単位はブロックあるいはクラスタと呼ばれ、１つ以上のセクタから構成されている。記録域222の空き状況はクラスタ単位で管理される。また、ファイル本体223の連鎖状況は、ファイルに対するクラスタチェーン224によって管理される。このクラスタはFATの項目番号と対応づけられて管理される。そのため、クラスタチェーン224からファイル本体223へアクセスするためには一意に対応付けられたFATの項目番号を記録領域222上のアドレスに変換してアクセスすれば良い。
【０００３】
図７はFATを用いたファイルシステムのクラスタチェーンを示す概要図である。図７に示すようにFATを用いたファイルシステムでは、ディレクトリ毎にディレクトリエントリ701と言うファイル管理記述子があり、このディレクトリエントリ701でディレクトリ内に存在するファイルやディレクトリが管理される。管理しているのがデータファイルの場合はデータが実際に記録されている開始クラスタ番号とファイルサイズがディレクトリエントリ701に記録される。実際に記録領域222にどのように記録されているかについては、FAT100を参照することによって情報を得る事ができる。この16ビットの情報に、次のアクセスすべきFAT項目番号101を記録し、一連のファイルを構成する。ファイル終端のクラスタにはそれが一番最後であることを示すための情報(0xFFFF)を記録する。つまり管理記述子によって記録域222に記録されたデータの開始位置クラスタ番号が分かり、記録域222に記録されたデータの読み出しにはFAT100で管理された次に読み出すべきクラスタ番号を辿っていき0xFFFFが現れるまで繰り返せばよいことになる。FATの項目番号101と記録域222のクラスタ番号111は一致するため、一意に変換が可能であり、FAT100で管理されているクラスタ番号を辿ることで実際に記録域222に記録されたデータファイルを参照することができる。
【０００４】
FATの管理情報(16ビット)と記録域222のクラスタは連動しており、リアルタイムデータの記録などを行う際においてはデータ実体がクラスタサイズを超えた場合に、データ領域内のデータ実体と共にFAT管理情報のクラスタチェーンも更新するために記録されることになる。
【０００５】
このようなFATを用いたファイルシステムにおいて、記録媒体204として、フラッシュメモリやCD-RW/DVD-RAM/DVD-RW等のように書き換え回数に制限のある記録媒体を使用した場合、ファイル本体223に比べてFAT100に対する書き換え頻度が格段に高くなり、その結果としてFAT100部分の寿命が他の領域部分に比べて早く尽き、記録媒体204を長期間使用することができなくなる問題がある。そこで、このような記録媒体の寿命を延ばす方法が特許文献1に提案されている。
【０００６】
特許文献１に記載される方法では、現在使用しているFATの更新が行われる毎に記録書き換え回数のカウントアップを行い、保存し予め定められた回数に達したときに、FATを別の場所に移動することで、FATが記録されている記録領域の寿命に達する前に記録位置を空き領域に移動することで長寿命化を図る方法が提案されている。
【特許文献１】特開２００５−２２７９１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載される従来技術では、書き換え制限のある記録媒体に記録されたFAT部分の書き換え回数が制限回数に達したことを検出して、記録媒体の長寿命化を図るためにFAT情報を別の場所に移動している。そのためFATを別の場所に移動する回数が増えれば旧FATの残骸が記録媒体の中に複数残り、記録媒体内のFAT情報の占める割合が増える問題点がある。
【０００８】
本発明では上記の問題点を解決するために、記録媒体内のFAT情報の占める割合を増やすことなく、書き換え制限のある記録媒体の寿命を延ばすデバイスドライバを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、記録媒体内のFAT更新回数を管理し、ある規定回数に到達した場合にFAT情報を同一FAT領域内で変換して利用する方法について提案する。
【００１０】
本発明のデバイスドライバは、書き換え回数に制限のある記録媒体にファイルを記録する際において、ファイル割り当てテーブル（以下FAT）の更新回数を前記記録媒体に記録し、前記FATを更新する度に前記更新回数を更新し、ある規定値を超えた段階で前記FATの項目番号と前記記録媒体内のデータ領域を管理するクラスタ番号の関係を動的に変更し、この変更方法に基づき前記FATの値を変更し、変更内容を前記記録媒体に記録し、かつ前記更新回数を初期化する特徴を有する。
【発明の効果】
【００１１】
本発明のデバイスドライバによれば、対応関係を動的に切り替える際にはFAT内のクラスタチェーン情報もその対応関係に合わせて変更を行うので、データ領域の情報に一切手を加えることなく、FATのみを操作することでFAT内での書き込みを分散させることができる。このようにFAT領域の情報を変更させることで、FATの一部に書き込みが集中する事例を回避することができ、相対的な記録媒体の長寿命の効果を持つ。
【発明を実施するための最良の形態】
【００１２】
図１は、FATの項目番号とデータ領域のクラスタ番号の関係概念図である。図１（Ａ）で示されるように記録機器は記録メディアに対してある一定の書き込み単位120（例えば512B）でしか書き込みを行えない特徴を持つため、FATのように16バイト程度のFATの項目番号101で記録域222のクラスタ番号111と対応づけ、数百バイト（例えば512B）のクラスタを管理する特徴を持つファイルシステムにおいては、データ領域の記録回数に対してそれを管理しているFAT領域100は同一箇所の書き込み回数が多くなる傾向が分かる。そのため、データ領域222のクラスタチェーンを管理しているこのFAT100の書き込み回数が増加するため、データ実体が存在する記録域222は書き込み回数が書き込み制限に到達していなくても、クラスタチェーンを管理しているFAT100が記録制限回数に到達してしまい、データの読み込みが行えなくなる問題が発生してしまう。通常データの書き換え処理(フォーマット処理後を含む)を実行する際にはデータ領域222においてアドレス空間の小さい値から書き込む傾向がある。そのため一部のFAT領域100に書き込みが集中してしまう傾向があるので、書き込み回数を分散することが必要となってくる。
【００１３】
そこで本発明ではこの書き込み回数をカウントし、ある規定回数を超えたことを判断した場合にFAT内の項目番号101と記録領域のクラスタ番号111との1対1の対応関係を動的に切り替える。つまりクラスタ番号111：FAT項目番号101の関係が2：2、3：3、4：4と一意に関連づけられていた関係を規定回数以上の書き込み回数が発生したことを検知すると図１（B）で示されるように、クラスタ番号111：FAT項目番号101の関係を2：N、3：N-1、4：N-2・・・の関係のように動的に切り替える。ここでのNは最大FAT項目番号を示す。この関係を式で表現すると（数１)のようになり、f()をFAT書き換え回数に応じて動的に切り替える変換式を示す。 
【００１４】
【数１】
2007299020.tif 000003
【００１５】
この切り替えにより、従来ならばデータ領域222のクラスタ4にデータの追記に伴い更新されるFATのクラスタチェーン情報の位置は、FATの項目番号4を含む書き込み単位に記録されるが、動的に関係を切り替えることでFATの項目番号N-2の箇所に切り替えることが可能となりFATの書き込み箇所を分散することを可能とする。
【００１６】
また、対応関係を動的に切り替える際にはFAT100内のクラスタチェーン情報もその対応関係に合わせて変更を行うことでデータ領域222の情報に一切手を加えることなく、FAT100のみを操作することでFAT内での書き込みを分散させることができるようになる。
【００１７】
(数１)の変換処理は言わば、FAT項目番号101から対応するクラスタ番号111を算出する処理と捉えることができる。その逆にディレクトリエントリに記載されている開始クラスタ番号はクラスタチェーンの先頭であり、そのクラスタからチェーンを辿る際にはクラスタ番号１１１からFAT項目番号101を算出する必要がある。この変換には（数２)の変換式を用いて変換することで先頭クラスタ番号111と対応するFAT項目番号101を取得することができるようになるため、取得したFAT項目番号からFAT100を辿ることでクラスタチェーンを取得することができる。つまりこれはデータ領域のディレクトリエントリに修正を加えることなく対応関係を動的に切り替えることが可能となることを意味するものである。
【００１８】
【数２】
2007299020.tif 000004
【００１９】
つまり、対応関係を動的に切り替える際にはディレクトリエントリで取得される開始クラスタ番号よりクラスタチェーンを辿る際に（数２)を用いて変換したFAT項目番号からクラスタチェーンを辿ることで、データ領域222の情報に一切手を加えることなく、FAT内での書き込みを分散させることができるようになる。
【００２０】
このようにFAT領域の情報を変更させることと、ディレクトリエントリの開始クラスタ番号取得処理を変更することで、FATの一部に書き込みが集中する事例を回避することができ、相対的な記録媒体の長寿命の効果を持つ特徴を有することができる。
【００２１】
（実施の形態１）
図２は本発明を実現するためのコンピュータシステムの一例である。本システムはコンピュータシステム201と信号線202により接続される記憶装置203とを含む構成で形成され、記憶装置203には書き換え制限がある記録媒体204が内蔵されており、コンピュータシステム201は記憶機器203用のデバイスドライバ210を設けている。
【００２２】
記録媒体204の記録域222には記録域222全体の空き状況及び、データファイルの配置状況(クラスタチェーン)を示すFAT100、FAT100により管理されるファイル本体223、FAT100の書き込み回数220、及びFAT100内のクラスタチェーン224と記録域222のクラスタ番号の書き換え方法225が記録されている。またFAT100はファイルに対するクラスタチェーン224によってファイルのクラスタ連続性を管理している。
【００２３】
デバイスドライバ210はファイル更新手段211を含んでいる。ファイル更新手段211はコンピュータシステム上で動作するアプリケーションやOSからの要求によって記録媒体204の記録域222上にファイルの作成を実施したり、削除ならびに更新を行うことを実施する。この際にFAT100の更新が発生した場合にはファイル更新手段211は、記録媒体204内のFAT更新回数220を1増加させる機能を有し、FAT更新回数220がある規定回数以上に達した場合は、機器が定める変換ルールに従ってFAT100を変更する機能を有し、かつその変換ルール情報を記録媒体204内の書き換え方法225へ書き込む機能をも有する。
【００２４】
本実施の形態では説明を簡潔にするため、FAT更新回数220の更新を記録媒体204上で行う説明としているが、実際にはデバイスドライバ内の内部RAMでFAT更新回数220を管理し、ファイル更新処理が終了した時点で記録媒体上に書き込む機能と捉えてよい。
【００２５】
ファイル更新手段211は記録媒体の書き換え方法255を用いてFAT項目番号101とクラスタ番号111を対応付ける機能を有し、ディレクトリエントリ701の開始クラスタ番号を書き換え方法225に従ってFATの項目番号101へ変換する機能をも有する。
【００２６】
次に本実施の形態の動作について詳細説明を行う。図３はデバイスドライバ210のファイル更新手段211の処理フローである。
【００２７】
ファイル更新手段211は、記録機器203の記録域222上にファイルを作成する要求があった際、及び作成したファイルを更新、削除する要求があった際に利用される。これらの要求が発生すると、まずファイル更新手段211はこの要求処理実行により、FAT100の更新処理が発生するかを確認する(ステップA1)。FAT100の更新が発生しない場合は、ファイルの更新処理(ステップA6)を行う。ステップA1において更新が発生すると判断された場合、ファイル更新手段211はFAT書き換え回数220を記録媒体204から読み取り、書き換え回数がある定められた規定回数を超えていないかを確認する(ステップA2)。規定回数を超えていない場合は書き換え回数220を1増加(ステップA7)させてファイルの更新処理(ステップA6)を実行する。ステップA2で書き換え回数が規定回数を超えていた場合は、FAT100の情報を書き換え(ステップA3)、書き換え方法225を保存し(ステップA4)、書き換え回数211を１に設定(ステップA5)し、ファイルの更新をステップA6で行う。
【００２８】
次にファイルの変換方法について記載する。図４はFAT情報を点対称に変換するフローである。変換方法については各システムが独自に備えることが可能である。
【００２９】
FAT情報の書き換え処理ステップA3がコールされた場合に実行される処理フローであり、
まずFATテーブルの項目番号を示すidxを初期化する(ステップA10)。このFAT100の項目番号idxの値がファイル終端を示す0xFFFFか確認をする(ステップA11)。ファイル終端でない場合は一時メモリWork[idxMax-idx]に(idx Max - FAT[idx])の計算結果を格納する(ステップA12)。また、ファイル終端の場合は一時メモリWork[idxMax-idx]にファイル終端を示す0xFFFFを格納する(ステップA13)。idxを1インクリメントし(ステップA14)、FATの項目数最大値までidxが増加されたか確認する(ステップA15)。ここで項目数最大値まで増加されていない場合はステップA11の処理に戻り以降の処理を繰り返す。最大値に到達した場合は、一時メモリに格納した情報をFAT領域に展開するための処理を実行するために、再度変数idxを0に初期化する(ステップA16)。次に一時メモリWork[idx]をFAT[idx]へコピーする(ステップA17)。コピー終了後idxを１インクリメントし(ステップA18) 、このコピー処理をidxMaxまで行われているかを確認する(ステップA18)。コピーがidxMaxまで終了されていない場合は、ステップA17に戻り以降のステップを繰り返す。コピーが終了していた場合は、このフローを終了する。
【００３０】
図５はFATの項目番号とデータ領域のクラスタ番号を動的に変更させた場合のファイル更新処理方法について記載したフローである。
【００３１】
まず、OSなどにより要求されたファイルの読み込みを行う際にはディレクトリエントリから得られるファイル先頭のクラスタ番号を取得する(ステップB1)。従来のFATシステムではFATの項目番号とクラスタ番号は1対1で関連付けられているが動的に切り替えることにより、クラスタ番号とFATの項目番号を関連づける処理が必要となる。
【００３２】
ディレクトリエントリから取得したクラスタ番号(CLN)をFATの項目番号(CLN’)に記録媒体204内の書き換え方法225（数２）に従って変換する。(ステップB2)。FATの項目番号(CLN’)からクラスタ番号（CLN）を記録媒体204内の書き換え方法225（数１）を用いて算出する(ステップB3)。前記ステップB3で取得されたクラスタ番号(CLN)に従いデータ領域に記録されているデータの読み込みを行う(ステップB4)。項目番号(CLN’)のFATに記載されているクラスタ番号を取得し、取得された値がクラスタ番号ファイル終端を示す０ｘFFFFでない場合は、取得したクラスタ番号をCLN’へ格納しステップB3へ戻り、以降処理を繰り返す(ステップB5)。また取得したファイル終端がクラスタ番号０ｘFFFFの場合は処理を終了する。書き込み処理については上記処理のファイル終端を判別する処理(ステップB5)において、ファイル終端までデータの記録が終わっている場合には、FAT項目番号CLN’に0xFFFFを記録するし、そうでない場合は、ステップB3へ戻る処理に変更するのみで良い。
【００３３】
このように、本実施の形態によれば、書き換え制限がある記録媒体で用いられているFATファイルシステムにおいて書き込みが集中するFAT部分を分散させることでFAT領域を増やすことなく、相対的に長寿命化を図ることができた。
【産業上の利用可能性】
【００３４】
本発明のデバイスドライバは、FATの使用領域を増やすことなく、FATの項目番号とデータ領域のクラスタ番号の関係を動的に切り替えることで、一部に集中していたFAT内の書き込みを分散させることができるようになり、記録媒体の全領域の使用を保証しながら、記録媒体の相対的な寿命を延ばすことができるため、書き換え制限のある記録媒体分野では有能である。
【図面の簡単な説明】
【００３５】
【図１（Ａ）】FATの項目番号とデータ領域のクラスタ番号の関係概念図
【図１（Ｂ）】FATの項目番号とデータ領域のクラスタ番号の関係概念図
【図２】ファイル記録方法及びファイルシステムを持つ装置のブロック図
【図３】ファイル更新手段の処理フローチャート
【図４】FAT情報の書き換え処理フローチャート
【図５】FAT項目番号とクラスタ番号を動的に切り替えた場合のファイル更新処理フローチャート
【図６】FATを有する記録媒体の情報を示す概念図
【図７】FATを用いたファイルシステムのクラスタチェーンを示す概要図
【符号の説明】
【００３６】
100    FAT
101    FAT項目番号 
111    クラスタ番号
120    データ書き込み単位
201    コンピュータシステム
202    信号線
203    記憶機器
204    記憶媒体
210    デバイスドライバ
211    ファイル更新手段
220    FAT書き込み回数
222    記録域（データ領域）
223    ファイル本体
224    クラスタチェーン
225    書き換え方法
701    ディレクトリエントリ
【図１（Ａ）】
2007299020.tif 000005
【図１（Ｂ）】
2007299020.tif 000006
【図２】
2007299020.tif 000007
【図３】
2007299020.tif 000008
【図４】
2007299020.tif 000009
【図５】
2007299020.tif 000010
【図６】
2007299020.tif 000011
【図７】
2007299020.tif 000012