(57)【要約】【課題】少ないメモリ容量で、複雑な処理を行うことなく、記録媒体に記録されているファイルシステムを更新する。【解決手段】キャッシュはα個のエントリで構成され、それぞれ、キャッシュ内の情報を更新したかを示すフラグＤ、エントリが有効かを示すフラグＶ、このエントリの情報を記録媒体に書き込むことが可能かを示すフラグＷ、対応するファイルシステム内アドレス(FS address)、記録媒体から読み込んだか、記録媒体に書き込むデータ(data)が記録されている。少なくとも１エントリは、プリロードされたエントリの更新のためのデータの記録媒体からの読み出し、および、他のエントリへの書き込みのために用いられる。このエントリの数をｘとした場合、α−ｘのエントリが、プリロードに用いられ、プリロードされたデータは、必要に応じて更新された後、記録媒体に記録される。本発明は、記録装置に適用できる。【選択図】図５
2008065779.tif 000002
【特許請求の範囲】
【請求項１】
装着された記録媒体に、データファイルとともに、ファイルシステムを記録可能な情報処理装置において、
装着された前記記録媒体に記録されている前記ファイルシステムの一部を読み出すとともに、前記記録媒体に前記データファイルおよび前記ファイルシステムの一部を書き込む記録再生手段と、
前記ファイルシステムを更新するために必要なデータを格納する第１の格納手段と、
前記記録再生手段により前記記録媒体から読み出された前記ファイルシステムの一部を保持するとともに、前記記録媒体に書き込まれる前記ファイルシステムの一部を保持する第１の記憶領域と、前記第１の記憶領域に保持された前記ファイルシステムの一部を更新するために用いられるデータを保持する第２の記憶領域とを含む第２の格納手段と、
前記記録再生手段による前記記録媒体への前記データファイルおよび前記ファイルシステムの一部の読み出しおよび書き込み、前記第１の格納手段へのデータの読み出しおよび書き込み、並びに、前記第２の格納手段への前記ファイルシステムまたはデータの読み出しおよび書き込みを制御するとともに、前記第２の格納手段の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記第１の格納手段に格納されたデータ、および、前記第２の格納手段の前記第２の記憶領域に格納されたデータに基づいて更新する制御手段と
を備える情報処理装置。
【請求項２】
前記第２の記憶領域は、前記記録再生手段により前記記録媒体から読み出された前記ファイルシステムの一部を保持する
請求項１に記載の情報処理装置。
【請求項３】
前記第２の格納手段は、複数のエントリにより構成され、
複数の前記エントリのそれぞれには、このエントリに格納された情報を前記記録媒体に書き込むことが可能か否かを示すフラグが設けられ、
前記第１の記憶領域に対応するエントリの前記フラグは、このエントリに格納された情報を前記記録媒体に書き込むことが可能であることを示し、
前記第２の記憶領域に対応するエントリの前記フラグは、このエントリに格納された情報を前記記録媒体に書き込むことが可能でないことを示す
請求項１に記載の情報処理装置。
【請求項４】
前記第２の格納手段は、複数のエントリにより構成され、
複数の前記エントリのそれぞれには、このエントリに格納されている前記ファイルシステムの一部のアドレスを示す情報が更に格納される
請求項１に記載の情報処理装置。
【請求項５】
前記制御手段は、前記記録再生手段により前記記録媒体に書き込まれる前記ファイルシステムの一部の範囲を設定するためのカウンタの値を基に、前記第２の格納手段の前記ファイルシステムの一部またはデータの読み出しおよび書き込みを制御するとともに、前記第２の格納手段の前記第１の記憶領域に格納された前記ファイルシステムの一部を、前記第１の格納手段に格納されたデータ、および、前記第２の格納手段の前記第２の記憶領域に格納されたデータに基づいて更新する
請求項１に記載の情報処理装置。
【請求項６】
前記第２の格納手段は、複数のエントリにより構成され、
複数の前記エントリのそれぞれには、このエントリに格納されている前記ファイルシステムの一部のアドレスを示す情報が更に格納され、
前記制御手段は、
前記カウンタの値に基づいて前記記録媒体に書き込まれる範囲である示される前記アドレスを示す情報が格納された前記エントリは、前記第１の記憶領域であると判断し、
前記カウンタの値に基づいて前記記録媒体に書き込まれる範囲ではないと示される前記アドレスを示す情報が格納された前記エントリは、前記第２の記憶領域であると判断する
請求項５に記載の情報処理装置。
【請求項７】
前記第２の格納手段は、複数のエントリにより構成され、
複数の前記エントリのそれぞれには、エントリが有効であるか否かを示すフラグが設けられる
請求項１に記載の情報処理装置。
【請求項８】
前記第２の格納手段は、複数のエントリにより構成され、
複数の前記エントリのそれぞれには、前記記録媒体から読み込まれた前記ファイルシステムのうちの一部が前記制御手段により更新されたか否かを示すフラグが設けられる
請求項１に記載の情報処理装置。
【請求項９】
前記制御手段は、前記第２の格納手段の前記第１の記憶領域の前記フラグを参照し、前記記録媒体から読み込まれたデータが更新されている前記エントリに格納されている前記ファイルシステムが、前記記録再生手段により前記記録媒体へ書き込まれるように制御する
請求項８に記載の情報処理装置。
【請求項１０】
装着された記録媒体に、データファイルとともに、ファイルシステムを記録する情報処理装置の情報処理方法において、
前記ファイルシステムを更新するために必要なデータの入力を受け、
入力されたデータを第１の格納部に格納し、
装着された前記記録媒体に記録されている前記ファイルシステムの一部を読み出して、第２の格納部のうちの第１の記憶領域に書き込み、
前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記第１の格納部に格納されたデータ、および、前記第２の格納部の前記第１の記憶領域とは区別される第２の記憶領域に格納されたデータに基づいて更新し、
前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記記録媒体へ記録する
ステップを含む情報処理方法。
【請求項１１】
前記第２の格納部の前記第１の記憶領域は、前記記録媒体から読み出された前記ファイルシステムの一部を保持するとともに、前記記録媒体に書き込まれる前記ファイルシステムの一部を保持するものであり、
前記第２の格納部の前記第２の記憶領域は、前記第１の記憶領域に保持された前記ファイルシステムの一部を更新するために用いられるデータを保持する
請求項１０に記載の情報処理方法。
【請求項１２】
装着された記録媒体に、データファイルとともに、ファイルシステムを記録する処理をコンピュータに実行させるためのプログラムであって、
前記ファイルシステムを更新するために必要なデータの入力を制御し、
入力されたデータの第１の格納部への格納を制御し、
装着された前記記録媒体に記録されている前記ファイルシステムの一部の読み出しを制御するとともに、第２の格納部のうちの第１の記憶領域への書き込みを制御し、
前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記第１の格納部に格納されたデータ、および、前記第２の格納部の前記第１の記憶領域とは区別される第２の記憶領域に格納されたデータに基づいて更新し、
前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部の、前記記録媒体への記録を制御する
ステップを含む処理をコンピュータに実行させるプログラム。
【請求項１３】
請求項１２に記載のプログラムが記録されているプログラム格納媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法、プログラム、並びに、プログラム格納媒体に関し、特に、ファイルシステムを記録媒体に記録する場合に用いて好適な、情報処理装置および情報処理方法、プログラム、並びに、プログラム格納媒体に関する。
【背景技術】
【０００２】
複数のファイルを取り扱う場合、ファイルとともに、複数のファイルを管理するためのファイルシステムの情報を用意し、ファイルシステムを参照して、ファイルを再生することができるようになされている。
【０００３】
ファイルシステムとは、一般的に、記憶装置や記録媒体に記録されているデータを管理するための方式のことであるが、管理を行うソフトウェアや、記憶装置や記憶媒体に設けられた管理領域や管理情報のこともファイルシステムと称される。
【０００４】
ファイルシステムとして、記憶装置や記録媒体にファイルやフォルダ(ディレクトリ)を作成したり、ファイルやフォルダ(ディレクトリ)の移動や削除を行ったりする方法や、データを記録する方式、管理領域の場所や利用方法などが定められている。通常、ファイルシステムはＯＳ（operating system）の持つ機能の一つとして提供され、ＯＳごとに異なるファイルシステムが用いられている。また、ＣＤ−ＲＯＭやＤＶＤなどは、独自のファイルシステムを有している。ファイルシステムのそれぞれの方式によって、ファイル名の文字長や、アクセス権の管理方法などが異なる。
【０００５】
記憶装置や記録媒体に新たなデータが記録される場合や、記録されているデータが更新される場合など、記憶装置や記憶媒体に記録される管理情報としてのファイルシステム（以下、単にファイルシステムと称する）も更新される必要が生じる。
【０００６】
従来、記録媒体に記録されているファイルシステムの更新においては、ファイルシステム全体を書き換えるようになされている技術があった。また、大きなファイルシステムを更新する際には、更新が必要な部分だけを順次更新するようになされている場合もあった。また、更新前のファイルシステムより更新後のファイルシステムが大きい場合、更新前のファイルシステムを部分的に拡張することにより、ファイルシステムを更新する技術があった。
【０００７】
また、従来、記録媒体にファイルシステムを記録する際に、利用する部分だけを抽出することにより、部分的にファイルシステムを更新し、更新しない部分はもとのファイルシステムを利用するものとすることにより、ファイルシステムを記録するための記録媒体の容量を節約することができるような技術がある（例えば、特許文献１参照）。
【０００８】
【特許文献１】特開２００６−２４２８６号公報
【０００９】
また、従来、ファイルシステムの断片化を解消するために、通常のファイルシステム機構とは別に断片化解消機構を使用して、ファイルシステムの更新処理を実行することができるようになされている技術がある（例えば、特許文献２参照）。
【００１０】
【特許文献２】特開２００６−１２７７０１号公報
【００１１】
また、従来、例えば、UDF(Optical Storage Technology AssociationのUniversal Disk Format Specification)のVAT(virtual allocation table)やBlu-ray Disc Recordable FormatのLogical Overwriteなどのように、一度しか書き込めない記録媒体のファイルシステムを更新する際に、擬似的に記録媒体の書き換えを行うように見せかける機構を利用する技術がある。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ファイルシステムの更新時において、ファイルシステム全体を書き換えるようになされている場合、更新されるファイルシステムの全体を読み込めるだけのメモリ容量を必要とするので、装置が有するメモリの容量や、ファイルシステムの更新のために利用可能なメモリの容量によって、取り扱えるファイルシステムの大きさに制限が生じてしまう。
【００１３】
また、特許文献１に記載された技術においては、更新されるファイルシステムのうち、利用したい部分と、そうでない部分が明確に分かれておらず、両者の領域が混在している場合においては、効率よく処理を行うことができない。また、更新されるファイルシステムのうち、利用したい部分を一度に読み込めるメモリを必要とするため、扱えるファイルシステムの大きさに制限が生じてしまう。
【００１４】
また、特許文献２に記載された技術においては、通常のファイルシステム機構とは別に断片化解消機構を使用することにより、ファイルシステムの断片化を解消するようになされているので、ファイルシステムの更新処理が複雑になってしまう。
【００１５】
また、一度しか書き込めない記録媒体のファイルシステムを更新する際に、擬似的に記録媒体の書き換えを行うように見せかける機構を利用する場合、擬似的な書き換えの処理が複雑であるため、従来における擬似的な書き換えだけに頼って、他の技術を用いることなくファイルシステムの更新を行うと、書き換えや読み出しの速度が遅くなってしまう場合があった。
【００１６】
本発明はこのような状況に鑑みてなされたものであり、少ないメモリ容量で、複雑な処理を行うことなく、記録媒体に記録されているファイルシステムを更新することができるようにするものである。
【課題を解決するための手段】
【００１７】
本発明の一側面の情報処理装置は、装着された記録媒体に、データファイルとともに、ファイルシステムを記録可能な情報処理装置であって、装着された前記記録媒体に記録されている前記ファイルシステムの一部を読み出すとともに、前記記録媒体に前記データファイルおよび前記ファイルシステムの一部を書き込む記録再生手段と、前記ファイルシステムを更新するために必要なデータを格納する第１の格納手段と、前記記録再生手段により前記記録媒体から読み出された前記ファイルシステムの一部を保持するとともに、前記記録媒体に書き込まれる前記ファイルシステムの一部を保持する第１の記憶領域と、前記第１の記憶領域に保持された前記ファイルシステムの一部を更新するために用いられるデータを保持する第２の記憶領域とを含む第２の格納手段と、前記記録再生手段による前記記録媒体への前記データファイルおよび前記ファイルシステムの一部の読み出しおよび書き込み、前記第１の格納手段へのデータの読み出しおよび書き込み、並びに、前記第２の格納手段への前記ファイルシステムまたはデータの読み出しおよび書き込みを制御するとともに、前記第２の格納手段の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記第１の格納手段に格納されたデータ、および、前記第２の格納手段の前記第２の記憶領域に格納されたデータに基づいて更新する制御手段とを備える。
【００１８】
前記第２の記憶領域には、前記記録再生手段により前記記録媒体から読み出された前記ファイルシステムの一部を保持させるようにすることができる。
【００１９】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、複数の前記エントリのそれぞれには、このエントリに格納された情報を前記記録媒体に書き込むことが可能か否かを示すフラグが設けられるものとすることができ、前記第１の記憶領域に対応するエントリの前記フラグは、このエントリに格納された情報を前記記録媒体に書き込むことが可能であることを示すものとすることができ、前記第２の記憶領域に対応するエントリの前記フラグは、このエントリに格納された情報を前記記録媒体に書き込むことが可能でないことを示すものとすることができる。
【００２０】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、複数の前記エントリのそれぞれには、このエントリに格納されている前記ファイルシステムの一部のアドレスを示す情報が更に格納されるものとすることができる。
【００２１】
前記制御手段には、前記記録再生手段により前記記録媒体に書き込まれる前記ファイルシステムの一部の範囲を設定するためのカウンタの値を基に、前記第２の格納手段の前記ファイルシステムの一部またはデータの読み出しおよび書き込みを制御させるとともに、前記第２の格納手段の前記第１の記憶領域に格納された前記ファイルシステムの一部を、前記第１の格納手段に格納されたデータ、および、前記第２の格納手段の前記第２の記憶領域に格納されたデータに基づいて更新させるようにすることができる。
【００２２】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、複数の前記エントリのそれぞれには、このエントリに格納されている前記ファイルシステムの一部のアドレスを示す情報が更に格納されるものとすることができ、前記制御手段には、前記カウンタの値に基づいて前記記録媒体に書き込まれる範囲である示される前記アドレスを示す情報が格納された前記エントリは、前記第１の記憶領域であると判断させ、前記カウンタの値に基づいて前記記録媒体に書き込まれる範囲ではないと示される前記アドレスを示す情報が格納された前記エントリは、前記第２の記憶領域であると判断させるようにすることができる。
【００２３】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、複数の前記エントリのそれぞれには、エントリが有効であるか否かを示すフラグが設けられるものとすることができる。
【００２４】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、複数の前記エントリのそれぞれには、前記記録媒体から読み込まれた前記ファイルシステムのうちの一部が前記制御手段により更新されたか否かを示すフラグが設けられるものとすることができる。
【００２５】
前記制御手段には、前記第２の格納手段の前記第１の記憶領域の前記フラグを参照させ、前記記録媒体から読み込まれたデータが更新されている前記エントリに格納されている前記ファイルシステムが、前記記録再生手段により前記記録媒体へ書き込まれるように制御させるようにすることができる。
【００２６】
本発明の一側面の情報処理方法は、装着された記録媒体に、データファイルとともに、ファイルシステムを記録する情報処理装置の情報処理方法であって、前記ファイルシステムを更新するために必要なデータの入力を受け、入力されたデータを第１の格納部に格納し、装着された前記記録媒体に記録されている前記ファイルシステムの一部を読み出して、第２の格納部のうちの第１の記憶領域に書き込み、前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記第１の格納部に格納されたデータ、および、前記第２の格納部の前記第１の記憶領域とは区別される第２の記憶領域に格納されたデータに基づいて更新し、前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記記録媒体へ記録するステップを含む。
【００２７】
前記第２の格納部の前記第１の記憶領域は、前記記録媒体から読み出された前記ファイルシステムの一部を保持するとともに、前記記録媒体に書き込まれる前記ファイルシステムの一部を保持するものであるとすることができ、前記第２の格納部の前記第２の記憶領域には、前記第１の記憶領域に保持された前記ファイルシステムの一部を更新するために用いられるデータを保持させるようにすることができる。
【００２８】
本発明の一側面のプログラムは、装着された記録媒体に、データファイルとともに、ファイルシステムを記録する処理をコンピュータに実行させるためのプログラムであって、前記ファイルシステムを更新するために必要なデータの入力を制御し、入力されたデータの第１の格納部への格納を制御し、装着された前記記録媒体に記録されている前記ファイルシステムの一部の読み出しを制御するとともに、第２の格納部のうちの第１の記憶領域への書き込みを制御し、前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記第１の格納部に格納されたデータ、および、前記第２の格納部の前記第１の記憶領域とは区別される第２の記憶領域に格納されたデータに基づいて更新し、前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部の、前記記録媒体への記録を制御するステップを含む処理をコンピュータに実行させる。
【００２９】
本発明の一側面においては、ファイルシステムを更新するために必要なデータが入力されて、第１の格納手段（格納部）へ格納され、装着された記録媒体に記録されているファイルシステムの一部が読み出されて、第２の格納手段（格納部）のうちの第１の記憶領域へ書き込まれ、第２の格納手段（格納部）の第１の記憶領域に格納されたファイルシステムの少なくとも一部が、第１の格納手段（格納部）に格納されたデータ、および、第２の格納手段（格納部）の第２の記憶領域に格納されたデータに基づいて更新され、第２の格納手段（格納部）の第１の記憶領域に格納されたファイルシステムの少なくとも一部が、記録媒体へ記録される。
【００３０】
ネットワークとは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【００３１】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【００３２】
記録装置は、独立した装置であっても良いし、記録再生装置の記録処理を行うブロックであっても、情報処理装置の記録処理を行うブロックであっても良い。
【発明の効果】
【００３３】
以上のように、本発明の一側面によれば、ファイルシステムを記録媒体に記録することができ、特に、少ないメモリ容量で、複雑な処理を行うことなく、記録媒体に記録されているファイルシステムを更新することができる。
【発明を実施するための最良の形態】
【００３４】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３５】
本発明の一側面の情報処理装置は、装着された記録媒体（例えば、図１の記録媒体３１）に、データファイルとともに、ファイルシステムを記録可能な情報処理装置（例えば、図１の記録装置１）であって、装着された前記記録媒体に記録されている前記ファイルシステムの一部を読み出すとともに、前記記録媒体に前記データファイルおよび前記ファイルシステムの一部を書き込む記録再生手段（例えば、図１のドライブ１４）と、前記ファイルシステムを更新するために必要なデータを格納する第１の格納手段（例えば、図１のファイルシステム情報テーブル保持領域２２）と、前記記録再生手段により前記記録媒体から読み出された前記ファイルシステムの一部を保持するとともに、前記記録媒体に書き込まれる前記ファイルシステムの一部を保持する第１の記憶領域（例えば、図１のキャッシュ２３のうち、フラグＷ＝１に対応する第１のエントリ）と、前記第１の記憶領域に保持された前記ファイルシステムの一部を更新するために用いられるデータを保持する第２の記憶領域（例えば、図１のキャッシュ２３のうち、フラグＷ＝０に対応する第２のエントリ）とを含む第２の格納手段（例えば、図１のキャッシュ２３）と、前記記録再生手段による前記記録媒体への前記データファイルおよび前記ファイルシステムの一部の読み出しおよび書き込み、前記第１の格納手段へのデータの読み出しおよび書き込み、並びに、前記第２の格納手段への前記ファイルシステムまたはデータの読み出しおよび書き込みを制御するとともに、前記第２の格納手段の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記第１の格納手段に格納されたデータ、および、前記第２の格納手段の前記第２の記憶領域に格納されたデータに基づいて更新する制御手段（例えば、図１のＣＰＵ１１）とを備える。
【００３６】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、複数の前記エントリのそれぞれには、このエントリに格納された情報を前記記録媒体に書き込むことが可能か否かを示すフラグ（例えば、図５のフラグＷ）が設けられるものとすることができ、前記第１の記憶領域に対応するエントリの前記フラグは、このエントリに格納された情報を前記記録媒体に書き込むことが可能であることを示すものであるとすることができ、前記第２の記憶領域に対応するエントリの前記フラグは、このエントリに格納された情報を前記記録媒体に書き込むことが可能でないことを示すものであるとすることができる。
【００３７】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、複数の前記エントリのそれぞれには、このエントリに格納されている前記ファイルシステムの一部のアドレスを示す情報（ファイルシステム内アドレス、または、記録媒体上のアドレス）が更に格納されるものとすることができる。
【００３８】
前記制御手段は、前記記録再生手段により前記記録媒体に書き込まれる前記ファイルシステムの一部の範囲を設定するためのカウンタ（例えば、図９の書き込み範囲カウンタ６３）の値を基に、前記第２の格納手段の前記ファイルシステムの一部またはデータの読み出しおよび書き込みを制御するとともに、前記第２の格納手段の前記第１の記憶領域に格納された前記ファイルシステムの一部を、前記第１の格納手段に格納されたデータ、および、前記第２の格納手段の前記第２の記憶領域に格納されたデータに基づいて更新することができる。
【００３９】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、複数の前記エントリのそれぞれには、このエントリに格納されている前記ファイルシステムの一部のアドレスを示す情報（ファイルシステム内アドレス、または、記録媒体上のアドレス）が更に格納されるものとすることができ、前記制御手段は、前記カウンタの値に基づいて前記記録媒体に書き込まれる範囲である示される前記アドレスを示す情報が格納された前記エントリは、前記第１の記憶領域であると判断することができ、前記カウンタの値に基づいて前記記録媒体に書き込まれる範囲ではないと示される前記アドレスを示す情報が格納された前記エントリは、前記第２の記憶領域であると判断することができる。
【００４０】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、複数の前記エントリのそれぞれには、エントリが有効であるか否かを示すフラグ（例えば、図５のフラグＶ）が設けられるものとすることができる。
【００４１】
前記第２の格納手段は、複数のエントリにより構成されるものとすることができ、
複数の前記エントリのそれぞれには、前記記録媒体から読み込まれた前記ファイルシステムのうちの一部が前記制御手段により更新されたか否かを示すフラグ（例えば、図５のフラグＤ）が設けられるものとすることができる。
【００４２】
本発明の一側面の情報処理方法は、装着された記録媒体（例えば、図１の記録媒体３１）に、データファイルとともに、ファイルシステムを記録する情報処理装置（例えば、図１の記録装置１）の情報処理方法であって、前記ファイルシステムを更新するために必要なデータの入力を受け（例えば、図１０のステップＳ１、または、図１９のステップＳ２９１の処理）、入力されたデータを第１の格納部（例えば、図１のファイルシステム情報テーブル保持領域２２）に格納し（例えば、図１０のステップＳ３、または、図１９のステップＳ２９３の処理）、装着された前記記録媒体に記録されている前記ファイルシステムの一部を読み出して、第２の格納部（例えば、図１のキャッシュ２３）のうちの第１の記憶領域（例えば、図１のキャッシュ２３のうち、フラグＷ＝１に対応する第１のエントリ）に書き込み（例えば、図１０のステップＳ７、または、図１９のステップＳ２９６の処理）、前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記第１の格納部に格納されたデータ、および、前記第２の格納部の前記第１の記憶領域とは区別される第２の記憶領域（例えば、図１のキャッシュ２３のうち、フラグＷ＝０に対応する第２のエントリ）に格納されたデータに基づいて更新し（例えば、図１０のステップＳ９、または、図１９ステップのＳ２９８の処理）、前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記記録媒体へ記録する（例えば、図１０のステップＳ１０、または、図１９ステップのＳ２９９の処理）ステップを含む。
【００４３】
本発明の一側面のプログラムは、装着された記録媒体（例えば、図１の記録媒体３１）に、データファイルとともに、ファイルシステムを記録する処理をコンピュータに実行させるためのプログラムであって、前記ファイルシステムを更新するために必要なデータの入力を制御し（例えば、図１０のステップＳ１、または、図１９のステップＳ２９１の処理）、入力されたデータの第１の格納部（例えば、図１のファイルシステム情報テーブル保持領域２２）への格納を制御し（例えば、図１０のステップＳ３、または、図１９のステップＳ２９３の処理）、装着された前記記録媒体に記録されている前記ファイルシステムの一部の読み出しを制御するとともに、第２の格納部（例えば、図１のキャッシュ２３）のうちの第１の記憶領域（例えば、図１のキャッシュ２３のうち、フラグＷ＝１に対応する第１のエントリ）への書き込みを制御し（例えば、図１０のステップＳ７、または、図１９のステップＳ２９６の処理）、前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部を、前記第１の格納部に格納されたデータ、および、前記第２の格納部の前記第１の記憶領域とは区別される第２の記憶領域（例えば、図１のキャッシュ２３のうち、フラグＷ＝０に対応する第２のエントリ）に格納されたデータに基づいて更新し（例えば、図１０のステップＳ９、または、図１９ステップのＳ２９８の処理）、前記第２の格納部の前記第１の記憶領域に格納された前記ファイルシステムの少なくとも一部の、前記記録媒体への記録を制御する（例えば、図１０のステップＳ１０、または、図１９ステップのＳ２９９の処理）ステップを含む処理をコンピュータに実行させる。
【００４４】
以下、図を参照して、本発明の実施の形態について説明する。
【００４５】
図１は、装着された記録媒体に、データ、および、ファイルシステムの記録を行う機能を有する記録装置１の構成を示すブロック図である。記録装置１は、記録媒体への情報の記録を行う機能以外に、他に、再生機能や情報処理機能を有していてもよいことは言うまでもないが、ここでは、その説明は省略する。
【００４６】
記録装置１は、ＣＰＵ１１、操作入力部１２、情報取得部１３、ドライブ１４、および、メモリ１５を含んで構成され、これらは、システムバス１６によって相互に接続されている。
【００４７】
ＣＰＵ１１は、操作入力部１２、または、情報取得部１３から供給される、ドライブ１４に装着された記録媒体３１に書き込むデータおよびファイルシステムに関する情報、または、データおよびファイルシステムの更新に関する情報を基に、メモリ１５を利用して、データおよびファイルシステムの記録媒体３１への記録を制御する。
【００４８】
操作入力部１２は、例えば、キーボードやボタン、または、図示しないリモートコマンダから送信される赤外線などの無線信号の受信部などを含んで構成され、ユーザの操作入力を受け、システムバス１６を介して、ＣＰＵ１１に、ユーザの操作入力に対応する情報を供給する。
【００４９】
情報取得部１３は、例えば、ネットワークインターフェースや外部入出力端子など、外部との情報の授受を行うものであり、記録または更新されるデータやファイルシステムに関する情報を取得して、システムバス１６を介して、ＣＰＵ１１に供給する。
【００５０】
ドライブ１４は、例えば、Blu-ray DiscやＤＶＤなどの記録媒体３１を装着され、ＣＰＵ１１の制御に基づいて、データやファイルシステムの記録媒体３１への記録および更新を実行する。
【００５１】
ドライブ１４は、擬似的な書き換え行うための機構を備えており、記録媒体３１が、ただ一度の書き込みしか許さない特性をもつ場合（read at once）であっても、ＣＰＵ１１からみると、あたかも記録媒体３１が書き換え可能であるかのように振舞うことが可能である。
【００５２】
メモリ１５は、ドライブ１４による記録媒体３１へのデータおよびファイルシステムの記録および更新に用いられるものである。メモリ１５には、少なくとも、ボリューム情報保持領域２１、ファイルシステム情報テーブル保持領域２２、および、キャッシュ２３とが用意される。
【００５３】
ボリューム情報保持領域２１には、ドライブ１４により記録媒体３１から読み込まれたボリューム情報が蓄積される。ボリューム情報には、例えば、ファイルシステム種別を認識するための情報、ファイルシステムが記録されている位置を示す情報などが記載されている。
【００５４】
ファイルシステム情報テーブル保持領域２２には、操作入力部１２、または、情報取得部１３から供給される、ドライブ１４に装着された記録媒体３１へのデータの記録または更新に関する情報のうち、ファイルシステムに関する情報が格納される。ファイルシステム情報テーブル保持領域２２に記録される情報については、図４を用いて後述する。
【００５５】
キャッシュ２３には、記録媒体３１に記録されているファイルシステムのコピーが部分的に蓄えられるとともに、記録媒体３１へファイルシステムを記録または更新するために必要な情報が保持される。記録媒体３１に記録されているファイルシステムのキャッシュ２３へのコピーを、プリロードとも称するものとする。そして、記録媒体３１からプリロードされた情報は、ファイルシステム情報テーブル保持領域２２に保持されている情報に基づいて必要に応じて書き換えられ、システムバス１６を介して、ドライブ１４に供給され、記録媒体３１の所定の位置に書き込まれる。キャッシュ２３についての詳細は、図５を用いて後述する。
【００５６】
ドライブ１４に装着された記録媒体３１について、図２を用いて説明する。
【００５７】
記録媒体３１は、所定のblock size毎にセクタに分割されており、各セクタにはアドレスが付与されている。ここでは記録媒体３１上にはＮ個のセクタが存在し、0から順にN-1までのアドレスが付与されているものとして説明する。
【００５８】
なお、記録媒体３１に対して実行される記録処理の基本単位は、セクタと同一であっても良いし、セクタと異なる単位であっても良い。例えば、所定の数セクタが記録処理の基本単位であっても良いし、１セクが記録処理の基本単位であっても良いし、１セクタを複数に分割して、記録処理の基本単位としても良い。
【００５９】
記録媒体３１の先頭の数セクタおよび終了部分の数セクタには、ボリューム情報（図中ＶＯＬと記載されている）が記録されている。ボリューム情報にはファイルシステムが記録されている位置を示す情報が含まれている。ボリューム情報は２箇所に分割されて記録される以外に、例えば、１箇所にまとまって記録されたり、３つ以上の複数に分割されて記録されてもよいし、それぞれの領域に対して、複数のボリューム情報のコピーが記録されていてもよい。
【００６０】
記録媒体３１において、アドレス３乃至５、およびアドレス１０乃至１２の領域には、更新前のファイルシステム（図中old FSと記載）が記録されている。このように、ファイルシステムの占める領域は、２つ以上に断片化している場合がある。
【００６１】
そして、記録媒体３１には、ファイルシステムから参照される各ファイルの本体（図中、dataと記載）が記載されている。
【００６２】
次に、図２を用いて説明した記録装置１に対する、記録媒体３１へのデータおよびファイルシステムの更新動作について説明する。
【００６３】
ＣＰＵ１１は、操作入力部１２、または、情報取得部１３から供給される、ドライブ１４に装着された記録媒体３１に書き込む、または、更新されるデータに関する情報のうち、まず、データについて、ドライブ１４を制御して、記録媒体３１の所定の位置に書き込ませる。換言すれば、ファイルシステムによって参照される実データ(実ファイル)は、メモリ１５を介することなく、直接、記録媒体３１の所定の領域に記録される。ＣＰＵ１１は、ドライブ１４に対して、記録媒体３１上の読み込みまたは書き込みを行う位置とその長さを指定する。ドライブ１４は、図３に示されるように、記録媒体３１に対して、所定の位置に、新たに追加されたデータ、または、更新用のデータを記録する。
【００６４】
ドライブ１４は、擬似的な書き換え行うための機構を備えており、記録媒体３１が、ただ一度の書き込みしか許さない特性をもつ場合（read at once）であっても、ＣＰＵ１１からみると、あたかも記録媒体３１が書き換え可能であるかのように振舞うことができる。
【００６５】
そして、ＣＰＵ１１は、操作入力部１２、または、情報取得部１３から供給される、ドライブ１４に装着された記録媒体３１に書き込む、または、更新されるデータに関する情報のうち、ファイルシステムに関する情報を、メモリ１５のファイルシステム情報テーブル保持領域２２に蓄積する。
【００６６】
ファイルシステム情報テーブル保持領域２２について、図４を用いて説明する。
【００６７】
ファイルシステム情報テーブル保持領域２２に保持されるファイル情報は、β個のエントリで構成され、ファイルシステムを更新するために必要な全ての情報が格納されている。換言すれば、ファイルシステム情報テーブル保持領域２２には、ファイルシステムを更新するために必要な情報のみが格納され、ファイルシステム全体が格納されるのではないため、ファイルシステム情報テーブル保持領域２２として必要な容量は、ファイルシステムの大きさには関係せず、ファイルシステムの変更の規模に関係するものである。
【００６８】
各エントリには、ファイル名(name)、ファイルシステム内での位置を示す情報であるファイルシステム内アドレス(FS address)、その他ファイル属性およびファイル本体の配置情報(attr)が記載される。その他ファイル属性およびファイル本体の配置情報には、例えば、作成日時、所有者、アクセス権、本体サイズ、配置情報、ファイルの種別(通常ファイル・ディレクトリファイル)などが含まれる。また、ファイルシステム情報テーブル保持領域２２に保持されるファイル情報は、記録媒体に記録されるバイトデータの状態でなくても、ＣＰＵ１１がファイルシステムの更新内容を認識することが可能な形態であればよい。
【００６９】
例えば、“/”は、ファイルシステムにおけるルートディレクトリである。以下、それぞれのエントリには、更新されるファイルシステムに関する情報が蓄積される。ファイルシステム情報テーブル保持領域２２において、使用されていないエントリは、空白になっている。
【００７０】
ファイルシステムは、例えば、記録装置１の電源ＯＮまたはＯＦＦや、記録媒体３１の装着または取出しなど、所定のファイルシステムの更新タイミングになるまで更新されない。ＣＰＵ１１は、操作入力部１２、または、情報取得部１３から供給される、ドライブ１４に装着された記録媒体３１に書き込むデータに関する情報のうち、ファイルシステムに関する情報を、所定のファイルシステムの更新タイミングになるまでの間、メモリ１５のファイルシステム情報テーブル保持領域２２に蓄積する。
【００７１】
例えば、下位の階層のディレクトリに変更があった場合、それより上位の階層にも、変更が発生する。ファイルシステム情報テーブル保持領域２２に保持されるファイル情報は、下位のディレクトリなどの変更に伴う上位の変更をそれぞれ蓄積して、一つのノードの変更情報を複数保持するのではなく、それぞれのノードにおける変更内容を１つのエントリ内に蓄積する。すなわち、ファイルシステムにおけるルートディレクトリ“/”の更新に関する情報は、ファイルシステム情報テーブル保持領域２２の１つのエントリに蓄積される。
【００７２】
これにより、ファイルシステムの同一箇所が複数回更新されることを防止することが可能となる。したがって、１回のみ書き込み可能な記録媒体３１においては、記録領域を節約することができ、複数回書き込み可能な記録媒体３１においては、上書き回数を減少させることにより寿命をいたずらに短くすることを防止することができる。
【００７３】
そして、記録媒体３１上の特定の位置から情報の書き込みを開始する必要がある場合、ドライブ１４は、記録媒体３１を調べ、書き込み開始位置を特定してＣＰＵ１１に通知する。
【００７４】
そして、ドライブ１４は、ＣＰＵ１１の制御に基づいて、ファイルシステムの更新のために、記録媒体３１の所定位置に記録された情報を、メモリ１５のキャッシュ２３のうちの所定のエントリに読み込む。
【００７５】
ＣＰＵ１１は、ファイルシステム情報テーブル保持領域２２に蓄積された、ファイルシステムに関する情報に基づいて、必要に応じて、記録媒体３１から読み出されてキャッシュ２３に記録された、すなわち、プリロードされたデータを更新した後、記録媒体３１の所定の記録位置に記録させる。
【００７６】
図５を参照して、キャッシュ２３について説明する。
【００７７】
キャッシュ２３はα個のエントリで構成されている。１エントリには、ファイルシステムの所定単位(例えば、１セクタ分)に関する情報として、記録媒体３１の対応する部分に記録されるファイルシステムのデータ、アドレス情報、および、フラグ情報が保持される。すなわち、それぞれのエントリには、キャッシュ２３内の情報を更新したかどうかを示すフラグＤ(dirty)、エントリが有効かどうかを示すフラグＶ(valid)、このエントリの情報を記録媒体３１に書き込むことが可能か否かを示すフラグＷ(write)、対応するファイルシステム内アドレス(FS address)、および、記録媒体３１から読み込んだ、または、記録媒体３１に書き込むデータ(data)が記録されている。
【００７８】
キャッシュ２３のαのエントリのうち、少なくとも１エントリは、プリロードされたエントリの更新のためのデータの記録媒体３１からの読み出し、および、キャッシュ２３の他のエントリへの書き込みのために用いられる。そして、プリロードされたエントリの更新のためのデータの読み出しおよび書き込みのために用いられるエントリの数をｘとした場合、α−ｘのエントリが、プリロードに用いられ、プリロードされたファイルシステムのデータは、必要に応じて更新された後、記録媒体に記録される。すなわち、プリロードに用いられたエントリの全て、または、その一部が、記録媒体３１へ書き込まれるファイルシステム、すなわち、更新後のファイルシステムの記録前の一時保持に用いられる。
【００７９】
換言すれば、キャッシュ２３のそれぞれのエントリは、記録媒体３１からデータを読み出して保持するとともに、記録媒体３１に書き込まれるデータを保持するための第１のエントリか、記録媒体からデータを読み出して保持するのみに用いられる第２のエントリかのいずれかであり、それぞれのエントリがいずれのエントリとして用いられるかは、固定されない。
【００８０】
例えば、図５に示されるキャッシュ２３においては、α＝４であり、ｘ＝１エントリが、プリロードされたエントリの更新のためのデータの読み出しおよび書き込みのために用いられる。図５に示される状態は、ファイルシステム内アドレス（FS addr）３乃至５の情報が記録媒体３１からプリロードされて、フラグＷが１とされ、そのうちの、ファイルシステム内アドレス（FS addr）４および５の情報が更新されて、フラグＤが１とされている。そして、残るエントリは、フラグＷは０とされ、プリロードされたエントリの更新のためのデータの読み出しおよび書き込みのために用いることが可能なようになされている。
【００８１】
例えば、図５のファイルシステム内アドレス（FS addr）４および５の情報のように、ファイルシステムの内容がプリロードされた内容から更新される場合、ファイルシステム情報テーブル保持領域２２に保持されるファイル情報が参照されて、記録媒体に記録されるバイトデータの状態に変換されて、記録媒体３１に書き込むデータ(data)の部分が更新される。
【００８２】
すなわち、キャッシュ２３は、更新されるファイルシステムのうちの一部を、記録媒体からコピー(プリロード)し、ファイルシステム情報テーブル保持領域２２に保持されるファイル情報を元に、ファイルシステムの対応する部分を更新するために用いられるものであるので、キャッシュ２３の容量は、更新したいファイルシステムの大きさには関係しない。具体的には、更新するべきファイルシステムが大きくても、α−ｘエントリずつ更新処理が実行されるので、α−ｘの値が小さい場合であっても、更新処理の回数が多くなるが、更新処理は実行可能である。また、ｘの値が小さい場合には、ｘの値が大きい場合と比較して、プリロードされたデータの更新処理のために用いられるデータの読み出しおよび書き込み処理に時間がかかってしまう可能性があるが、更新処理は実行可能である。
【００８３】
また、フラグＷは、対応するエントリが、記録媒体３１からデータを読み出して保持するとともに、記録媒体３１に書き込まれるデータを保持するための第１のエントリと、記録媒体からデータを読み出して保持するのみに用いられる第２のエントリでとのいずれであるかを示すものである。換言すれば、フラグＷは、対応するアドレスが現在の更新処理におけるデータの書き込み範囲内であるかどうかを示す情報である。すなわち、キャッシュエントリにフラグＷを用意しなくても、対応するアドレスが現在の更新処理におけるデータの書き込み範囲内であるか否かを判断すれば、対応するエントリが、第１のエントリであるか第２のエントリであるかを判断することができるので、その判断結果に基づいて、このエントリにデータを上書きすることが可能であるか否か、または、このエントリの情報を記録媒体３１に書き込むか否かを決定することも可能である。
【００８４】
そして、ＣＰＵ１１は、キャッシュ２３の各エントリのそれぞれのフラグの情報を参照して、更新されるファイルシステムの情報を、システムバス１６を介してドライブ１４に供給し、記録媒体３１に記録させる。
【００８５】
ファイルシステムの更新方法は、例えば、図６に示されるように、更新後のファイルシステムの全体が、記録媒体３１の空き領域に新たに記録されるものであっても良い。
【００８６】
図６の下段に示されるように、更新前および更新後のファイルシステムの領域において、領域の先頭から順にファイルシステム内アドレスを付与し、ファイルシステム内アドレスは、更新前のファイルシステムと更新後のファイルシステムで同じ値を使用するものとすると、ファイルシステムが更新前と更新後において、記録媒体３１上の異なるアドレスに記録されている場合においても、ファイルシステム内の相互参照アドレスとしてファイルシステム内アドレスを用いることにより、参照情報を更新する必要がなくなるため、好適である。ボリューム情報保持領域２１に保持されているボリューム情報を参照することにより、ファイルシステム内アドレスと記録媒体３１上のアドレスを相互に変換することが可能である。そして、更新後のファイルシステムの領域が更新前よりも大きい場合に、更新前のファイルシステムに対応しないファイルシステム内アドレス（ここでは、ファイルシステム内アドレス＝６）が生じる。
【００８７】
図６においては、更新後のファイルシステムの全体は、更新前のファイルシステム（old FS）の記録領域とは異なる領域である、記録媒体３１上のアドレス２３乃至２９に記録されている。
【００８８】
図６における場合においては、更新前のファイルシステムとは別に、更新後のファイルシステムが書き込まれるため、更新処理中であっても、更新前のファイルシステム（old FS）と更新後のファイルシステム（FS）がいずれも存在する。したがって、更新処理中の停電などにより更新処理が中断され、更新後のファイルシステムが破壊されてしまったとしても、少なくとも更新前のファイルシステムが残るため、再度、更新処理を行うことが可能となる。
【００８９】
なお、ファイルシステム内アドレスが記録媒体３１内のアドレスとは別に用意されていない場合、ファイルシステムが更新前と更新後において、記録媒体３１上の異なるアドレスに記録されている場合には、ファイルシステム内の相互参照アドレスとして用いられる記録媒体３１上のアドレスをそれぞれ更新する必要が生じてしまうが、ファイルシステムを更新するための処理は、参照アドレスの更新部分以外については、同様にして実行可能であることはいうまでもない。
【００９０】
また、ファイルシステムの更新方法は、例えば、図７に示されるように、更新前のファイルシステムの記憶領域に更新後のファイルシステムのうちの対応する部分、すなわち、同一のファイルシステム内アドレスを有する情報が上書きして記録され、更新後のファイルシステムの領域のうち、更新前よりも拡張された部分が、記録媒体３１の空き領域に新たに記録されるものであっても良い。
【００９１】
図７においては、更新後のファイルシステムのうち、更新前のファイルシステムのファイルシステム内アドレスに対応する部分は、記録媒体３１上のアドレス３乃至５および１０乃至１２に上書きされ、更新後のファイルシステムのうち、拡張された部分、すなわち、ここでは、ファイルシステムのファイルシステム内アドレス＝６に対応する部分は、記録媒体３１上のアドレス２３に記録されている。なお、更新後のファイルシステムのうち、更新前のファイルシステムのファイルシステム内アドレスに対応する部分は、全て上書き処理を行うものとしても良いし、更新された部分のみ上書き処理を行うものとしても良い。
【００９２】
さらに、ファイルシステムの更新方法は、例えば、図８に示されるように、更新前のファイルシステムに対して、内容が更新されていない部分に関しては、更新前のファイルシステムを参照するものとし、内容が更新された部分、および、新たに追加された拡張部分に関してのみ、記録媒体３１の空き領域が確保されて、新たに記録されるものであっても良い。
【００９３】
例えば、更新前のファイルシステムのファイルシステム内アドレス２および３の部分が更新され、ファイルシステム内アドレス６の部分が拡張された場合、ファイルシステム内アドレス２,３、および、６に対応する部分が、記録媒体３１上で新たに記録領域が確保されたアドレス２３乃至２６に記録される。
【００９４】
ファイルシステムの更新方法としていずれの方法が選択されるかは、ＣＰＵ１１の制御によるものであり、記録媒体３１の記録方式、上位のシステム、または、ユーザの操作入力などによって決まる。
【００９５】
例えば、記録媒体３１の記録方式が書き換え可能な記録方式であった場合、記録容量の節約のため、ファイルシステム内アドレスが一致する部分については更新後のファイルシステムを更新前のファイルシステムに上書きするものとしても良いし、更新前のファイルシステムが記録されている領域が離散している場合には、新たな領域に更新後のファイルシステムを連続して書き込むことにより、それ以降の記録再生のためにかかる時間を短縮することができるようにしても良いし、また、ファイルシステム更新中の停電などによるファイルシステムの破壊を防止するために、更新前のファイルシステムとは異なる領域であれば、例えば、更新前のファイルシステムよりもさらに古いファイルシステムが記載されていた領域など、削除可能な情報が記載された領域に上書きして、または、空き領域を確保して、更新後のファイルシステムを書き込むようにしても良い。
【００９６】
図９は、ＣＰＵ１１が有する機能を示す機能ブロック図である。
【００９７】
ＣＰＵ１１は、記録／更新関連情報取得部６１、データ記録制御部６２、書き込み範囲カウンタ６３、ファイルシステム情報管理部６４、および、キャッシュデータ管理部６５の機能を有する。
【００９８】
記録／更新関連情報取得部６１は、操作入力部１２、または、情報取得部１３からの、ドライブ１４に装着された、記録媒体３１に書き込むデータに関する情報の取得を制御し、取得された情報を、データ記録制御部６２、書き込み範囲カウンタ６３、ファイルシステム情報管理部６４、および、キャッシュデータ管理部６５へ供給する。
【００９９】
データ記録制御部６２は、ドライブ１４を制御して、例えば、図３を用いて説明したように、記録／更新関連情報取得部６１により取得された、ドライブ１４に装着された記録媒体３１に書き込むデータに関する情報のうちの本体データ、すなわち、ファイルシステムではなくファイルデータなどの、記録媒体３１の所定の位置への記録を制御する。
【０１００】
書き込み範囲カウンタ６３は、ファイルシステムの更新において、記録媒体３１に記録されるファイルシステムの書き込み範囲を制御するものであり、記録／更新関連情報取得部６１により取得されたドライブ１４に装着された記録媒体３１に書き込むデータに関する情報に基づいて、書き込み範囲を設定し、キャッシュデータ管理部６５の書き込み範囲設定部８１の制御に基づいて、カウンタをリセットしたり、インクリメントする。
【０１０１】
ファイルシステム情報管理部６４は、記録／更新関連情報取得部６１により取得された、ドライブ１４に装着された記録媒体３１に書き込むデータに関する情報に基づいて、図４を用いて説明したように、ファイルシステムに関する情報の、ファイルシステム情報テーブル保持領域２２への記憶を制御する。
【０１０２】
キャッシュデータ管理部６５は、キャッシュ２３に保持されるデータの授受やフラグの値を管理するものであり、書き込み範囲設定部８１、ファイルシステム管理部８２、ファイルシステム情報比較処理部８３、プリロード制御部８４、フラグ管理部８５、Push／Pop制御部８６、および、ファイルシステム記録制御部８７の機能を有する。
【０１０３】
書き込み範囲設定部８１は、書き込み範囲カウンタ６３において設定された書き込み範囲の開始点から終了点までの処理を実行するためのカウンタの値のリセット、または、インクリメントを制御する。
【０１０４】
ファイルシステム管理部８２は、ファイルシステムの更新のためにキャッシュ２３に一時保持されているファイルシステムの情報の更新を制御するものである。ファイルシステム管理部８２は、例えば、ファイルシステム情報比較処理部８３によるファイルシステムの比較結果を受けて、キャッシュ２３に一時保持されているファイルシステムの情報のうちの所定の部分をファイルシステム情報システム保持領域２２に保持されている情報を基に書き換えたり、フラグ管理部８５を制御して、キャッシュ２３のそれぞれのエントリのフラグの値を決定したり、Push／Pop制御部８６を制御して、キャッシュ２３に対する情報のPushおよびPopを制御したり、ファイルシステム記録制御部８７を制御してキャッシュ２３の所定のエントリに保持されている情報の、記録媒体３１への書き込みを制御する。
【０１０５】
ファイルシステム情報比較処理部８３は、ファイルシステム情報テーブル保持領域２２に保持されている情報を参照し、ファイルシステム情報テーブルに保持されている情報と、キャッシュ２３に保持されているプリロードされた情報とを比較して、対応するファイルシステムの更新が必要であるか否かを判断し、その結果を、ファイルシステム管理部８２に供給する。
【０１０６】
プリロード制御部８４は、記録媒体３１上の所定の領域のファイルシステムのキャッシュ２３へのコピー、すなわち、プリロードを制御するものである。
【０１０７】
フラグ管理部８５は、ファイルシステム管理部８２による制御、および、ファイルシステム情報比較処理部８３による比較結果に基づいて、キャッシュ２３のα個のエントリのそれぞれにおいて、キャッシュ２３内の情報を更新したかどうかを示すフラグＤ、エントリが有効かどうかを示すフラグＶ、および、このエントリの情報を記録媒体３１に書き込むことが可能か否かを示すフラグＷの値を管理する。
【０１０８】
Push／Pop制御部８６は、プリロードおよびファイルシステムの記録処理において、キャッシュ２３の各エントリに保持されるデータの記録媒体３１からの読み込み及び書き込み、すなわち、キャッシュ２３へのPushおよびPopを制御する。
【０１０９】
ファイルシステム記録制御部８７は、キャッシュ２３の各エントリに保持されるファイルシステムの一部に対応するデータの、記録媒体３１への記録を制御する。
【０１１０】
次に、図１０のフローチャートを参照して、記録装置１において実行される、データの更新処理１について説明する。
【０１１１】
ステップＳ１において、記録／更新関連情報取得部６１は、操作入力部１２、または、情報取得部１３から、ドライブ１４に装着された記録媒体３１に記録されるデータ更新の指令を受け、データ記録制御部６２、書き込み範囲カウンタ６３、ファイルシステム情報管理部６４、および、キャッシュデータ管理部６５へ通知する。書き込み範囲カウンタ６３は、ファイルシステム内アドレスが存在した場合、ファイルシステムの書き込み範囲を、ファイルシステム内アドレスと対応するものとし、ファイルシステム内アドレスが存在しない場合、ファイルシステムの書き込み範囲の開始点を、記録媒体３１内のアドレスと対応するものとし、書き込み範囲を設定する。
【０１１２】
ステップＳ２において、データ記録制御部６２は、ドライブ１４を制御して、記録／更新関連情報取得部６１により取得された、ドライブ１４に装着された記録媒体３１に書き込むデータに関する情報のうちの、データ本体の、記録媒体３１の所定の位置への記録を制御する。ドライブ１４は、ＣＰＵ１１のデータ記録制御部６２の制御に基づいて、例えば、図３を用いて説明したように、供給されたデータを記録媒体３１に記録する。
【０１１３】
ステップＳ３において、ファイルシステム情報管理部６４は、記録／更新関連情報取得部６１により取得されたドライブ１４に装着された記録媒体３１に書き込むデータに関する情報に基づいて、図４を用いて説明したように、ファイルシステムに関する情報を、ファイルシステム情報テーブル保持領域２２のファイルシステム情報テーブルに蓄積する。
【０１１４】
ステップＳ４において、キャッシュデータ管理部６５のファイルシステム管理部８２は、例えば、記録装置１の電源ＯＮまたはＯＦＦや、記録媒体３１の装着または取出しなど、所定のファイルシステムの更新タイミングであるか否かを判断する。ステップＳ４において、ファイルシステムの更新タイミングではないと判断された場合、処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。
【０１１５】
ステップＳ４において、ファイルシステムの更新タイミングであると判断された場合、ステップＳ５において、ファイルシステム管理部８２は、書き込み範囲カウンタ６３、並びに、ファイルシステム記録制御部８７、書き込み範囲設定部８１、ファイルシステム情報比較処理部８３、および、フラグ管理部８５にファイルシステムの更新タイミングであることを通知する。ファイルシステム記録制御部８７は、記録媒体３１において、更新によるファイルシステムの書き込み領域を確保する。例えば、ファイルシステム記録制御部８７は、更新によるファイルシステムの書き込み領域の先頭アドレスをn、書き込まれるファイルシステムの大きさをnsとして、更新によるファイルシステムの書き込み領域を確保する。
【０１１６】
ステップＳ６において、書き込み範囲設定部８１は、ファイルシステムの書き込み範囲を制御するためのカウンタの値Aをリセットする。具体的には、例えば、図６を用いて説明した場合、書き込み範囲カウンタ６３において、更新されるファイルシステムの記録アドレスは、ファイルシステム内アドレスが存在すれば、書き込み範囲は、０乃至６に設定され、ファイルシステム内アドレスが存在しなければ、書き込み範囲は、２３乃至２９に設定される。そして、書き込み範囲設定部８１は、書き込み範囲カウンタ６３において設定された書き込み範囲内の更新位置を制御するためのカウンタの値Aをファイルシステムの書き込み範囲の開始点に設定する。
【０１１７】
ステップＳ７において、図１１を用いて後述する、プリロード処理が実行される。
【０１１８】
ステップＳ８において、プリロード制御部８４は、プリロードが実行できたか否かを判断する。ステップＳ８において、プリロードが実行できなかったと判断された場合、処理は、終了される。
【０１１９】
ステップＳ８において、プリロードが実行できたと判断された場合、ステップＳ９において、図１４を用いて後述する、ファイルシステム更新準備処理が実行される。
【０１２０】
ステップＳ１０において、図１５または図１６を用いて後述する、ファイルシステム記録処理が実行される。
【０１２１】
ステップＳ１１において、書き込み範囲設定部８１は、書き込み範囲カウンタ６３の、ファイルシステムの書き込み範囲を制御するためのカウンタの値Aを、所定の規則にのっとってインクリメントする。
【０１２２】
ここで、所定の規則とは、キャッシュ２３におけるエントリ数αと、プリロードされたエントリの更新のためのデータの読み出しおよび書き込みのために用いられるエントリの数ｘによって決まるものであり、例えば、キャッシュ２３におけるエントリ数α＝４、データの読み出しおよび書き込みのために用いられるエントリの数ｘ＝１である場合、ここでは、３エントリ分のファイルシステムの更新が終了されたことになるので、カウンタの値Ａが３つインクリメントされる。
【０１２３】
ステップＳ１２において、書き込み範囲設定部８１は、書き込み範囲カウンタ６３のカウンタ値を参照し、ファイルシステムの書き込み範囲内のファイルシステムの記録処理は終了したか否かを判断する。
【０１２４】
ステップＳ１２において、ファイルシステムの記録処理は終了していないと判断された場合、処理は、ステップＳ７に戻り、それ以降の処理が繰り返される。ステップＳ１２において、ファイルシステムの記録処理は終了したと判断された場合、処理は終了される。
【０１２５】
このような処理により、ファイルシステムのデータが更新される。
【０１２６】
次に、図１１のフローチャートを参照して、図１０のステップＳ７において実行される、プリロード処理について説明する。
【０１２７】
ステップＳ４１において、プリロード制御部８４は、プリロードを制御する内部のカウンタの値ｉをリセットする。
【０１２８】
ステップＳ４２において、図１２または図１３のフローチャートを用いて説明するキャッシュエントリ選択処理が実行される。
【０１２９】
ステップＳ４３において、プリロード制御部８４は、ステップＳ４２のキャッシュエントリ選択処理でキャッシュエントリが確保できたか否かを確認する。ステップＳ４３において、キャッシュエントリが確保できなかったと判断された場合、処理は、図１０のステップＳ７に戻り、ステップＳ８に進む。
【０１３０】
ステップＳ４３において、キャッシュエントリが確保できたと判断された場合、ステップＳ４４において、プリロード制御部８４は、現在の書き込み範囲カウンタのカウンタ値Ａに基づいて、記録媒体３１からA+iに対応するアドレスのデータを読み込む。
【０１３１】
ステップＳ４５において、プリロード制御部８４は、A+iのデータは有効であるか否かを判断する。
【０１３２】
ステップＳ４５において、A+iのデータは有効であると判断された場合、すなわち、更新されるファイルシステムは、既に記録媒体３１に記録されているファイルシステムのいずれかのファイルシステム内アドレスに対応する部分である場合、ステップＳ４６において、プリロード制御部８４は、記録媒体３１から読み出されたA+iに対応するデータを、選択されたエントリのdataの部分に書き込む。
【０１３３】
ステップＳ４７において、プリロード制御部８４は、対応するエントリのフラグを、V=1、W=1、D＝０に設定し、処理は、後述するステップＳ５０に進む。
【０１３４】
ステップＳ４５において、A+iのデータは有効ではないと判断された場合、すなわち、更新されるファイルシステムは、既に記録媒体３１に記録されているファイルシステムのいずれかのファイルシステム内アドレスに対応する部分ではなく、拡張された部分である場合、ステップＳ４８において、プリロード制御部８４は、例えば、値０などのダミーデータを、選択されたエントリのdataの部分に書き込む。
【０１３５】
ステップＳ４９において、プリロード制御部８４は、対応するエントリのフラグを、V=1、W=1、D＝１に設定する。
【０１３６】
ステップＳ４７またはステップＳ４９の処理の終了後、ステップＳ５０において、プリロード制御部８４は、プリロードを制御するカウンタの値ｉをインクリメントする。
【０１３７】
ステップＳ５１において、プリロード制御部８４は、プリロードを制御するカウンタの値ｉは、ｉ＜α−xを満たすか否かを判断する。
【０１３８】
ここで、ｘとは、キャッシュ２３のαのエントリのうち、プリロードされたエントリの更新のためのデータの読み出しおよび書き込みのために用いられるエントリの数を示すものであり、１以上の値となる。
【０１３９】
ステップＳ５１において、ｉ＜α−xを満たすと判断された場合、処理は、ステップＳ４２に戻り、それ以降の処理が繰り返される。ステップＳ５１において、ｉ＜α−xを満たさないと判断された場合、処理は、図１０のステップＳ７に戻り、ステップＳ８に進む。
【０１４０】
このような処理により、記録媒体３１からキャッシュ２３へのファイルシステムの一部のプリロードが実行される。
【０１４１】
なお、プリロードの途中（ｉ＜α−xを満たすと判断される状態）であっても、ファイルシステムの書き込み領域の最後までプリロードが実行された場合、プリロード処理は終了される。
【０１４２】
次に、図１２のフローチャートを参照して、図１１のステップＳ４２において実行される、キャッシュエントリ選択処理１について説明する。
【０１４３】
ステップＳ８１において、フラグ管理部８５は、キャッシュ２３内に、V=0のエントリが存在するか否かを判断する。
【０１４４】
ステップＳ８１において、キャッシュ２３内に、V=0のエントリが存在しないと判断された場合、ステップＳ８２において、フラグ管理部８５は、キャッシュ２３内に、W=0のエントリが存在するか否かを判断する。
【０１４５】
ステップＳ８１において、キャッシュ２３内に、V=0のエントリが存在すると判断された場合、または、ステップＳ８２において、キャッシュ２３内に、W=0のエントリが存在すると判断された場合、ステップＳ８３において、フラグ管理部８５は、Push／Pop制御部８６に、存在したエントリを通知する。Push／Pop制御部８６は、V=0、または、W=0のエントリを選択し、処理は、図１１のステップＳ４２に戻り、ステップＳ４３に進む。
【０１４６】
ステップＳ８２において、キャッシュ２３内に、W=0のエントリが存在しないと判断された場合、ステップＳ８４において、フラグ管理部８５は、Push／Pop制御部８６に、対応するエントリが存在しないことを通知する。Push／Pop制御部８６は、エラー処理を実行し、処理は、図１１のステップＳ４２に戻り、ステップＳ４３に進む。
【０１４７】
このような処理により、キャッシュ２３の総エントリ数αが少なくても、この後に記録媒体３１への書き込みに利用されない部分を効率的に選択することが可能となる。
【０１４８】
なお、キャッシュ２３においては、プリロードされたエントリの更新のためのデータの読み出しおよび書き込みのために用いられるエントリが少なくとも１つ用意されるので、通常の処理が実行されている場合、キャッシュ２３内に、W=0のエントリが存在しないことはありえない。しかしながら、キャッシュ２３内に、W=0のエントリが存在しないと判断された場合、処理自体に何らかのエラーが発生していると考えられるため、エラー処理が実行される。
【０１４９】
また、図１２を用いて説明したキャッシュエントリ選択処理１においては、このエントリが有効かどうかを示すフラグＶ、および、このエントリの情報を記録媒体３１に書き込むか否かを示すフラグＷを参照し、エントリが有効ではないか、または、記録媒体３１に書き込まれるエントリ以外のエントリを選択するものとして説明した。
【０１５０】
このエントリの情報を記録媒体３１に書き込むか否かを示すフラグＷは、対応するアドレスが現在の更新処理におけるファイルシステムの書き込み範囲内であるかどうかを示す情報である。すなわち、キャッシュエントリにフラグＷを用意することなく、対応するアドレスが現在の更新処理におけるファイルシステムの書き込み範囲内であるか否かを判断し、その判断結果に基づいて、このエントリの情報を記録媒体３１に書き込むか否かを決定するようにすることも可能である。
【０１５１】
次に、図１３のフローチャートを参照して、キャッシュエントリにフラグＷが用意されていない場合に図１１のステップＳ４２において実行される、キャッシュエントリ選択処理２について説明する。
【０１５２】
ステップＳ１１１において、フラグ管理部８５は、キャッシュ２３内に、V=0のエントリが存在するか否かを判断する。フラグ管理部８５は、Push／Pop制御部８６に、判断結果を通知する。
【０１５３】
ステップＳ１１１において、キャッシュ２３内に、V=0のエントリが存在しないと判断された場合、ステップＳ１１２において、Push／Pop制御部８６は、現在の更新処理におけるファイルシステムの書き込み範囲外のエントリ、具体的には、現在の書き込み範囲カウンタのカウンタ値Ａ乃至（Ａ＋α−ｘ）に対応するアドレスが対応付けられたエントリが存在するか否かを判断する。
【０１５４】
ステップＳ１１１において、キャッシュ２３内に、V=0のエントリが存在したと判断された場合、ステップＳ１１２において、ファイルシステムの書き込み範囲外のエントリが存在したと判断された場合、ステップＳ１１３において、Push／Pop制御部８６は、V=0、または、ファイルシステムの書き込み範囲外のエントリを選択し、処理は、図１１のステップＳ４２に戻り、ステップＳ４３に進む。
【０１５５】
ステップＳ１１２において、ファイルシステムの書き込み範囲外のエントリが存在しないと判断された場合、ステップＳ１１４において、Push／Pop制御部８６は、エラー処理を実行し、処理は、図１１のステップＳ４２に戻り、ステップＳ４３に進む。
【０１５６】
このような処理により、キャッシュエントリにフラグＷが用意されていない場合であっても、現在の更新処理におけるファイルシステムの書き込み範囲を参照して、対応するエントリの情報を記録媒体３１に書き込むか否かを判断することができるので、キャッシュ２３の総エントリ数αが少なくても、この後に記録媒体３１への書き込みに利用されない部分を効率的に選択することが可能となる。
【０１５７】
次に、図１４のフローチャートを参照して、図１０のステップＳ９において実行される、ファイルシステム更新準備処理について説明する。
【０１５８】
ステップＳ１４１において、ファイルシステム情報比較処理部８３は、ファイルシステムの更新を制御するカウンタの値ｐをリセットする。ファイルシステムの更新を制御するカウンタの値ｐは、例えば、処理実行中において０乃至β−１の範囲の値をとるものであり（換言すれば、ｐ＝βとなったときに、処理が終了される）、ファイルシステム情報テーブルに保持されているエントリ数βのエントリのうちのいずれかを示すものである。
【０１５９】
ステップＳ１４２において、ファイルシステム情報比較処理部８３は、ファイルシステム情報テーブルに保持されている情報のうち、カウンタの値ｐに対応する情報を読み込む。
【０１６０】
ステップＳ１４３において、ファイルシステム情報比較処理部８３は、ファイルシステム情報テーブルおよびキャッシュ２３に保持されているファイルシステム内アドレス (FS address)を基に、対応するファイルシステムに関する情報が、プリロードされているか否かを判断する。ステップＳ１４３において、対応するファイルシステムに関する情報が、プリロードされていないと判断された場合、処理は、後述するステップＳ１４６に進む。
【０１６１】
ステップＳ１４３において、対応するファイルシステムに関する情報が、プリロードされていると判断された場合、ステップＳ１４４において、ファイルシステム情報比較処理部８３は、ファイルシステム情報テーブルに保持されている情報と、キャッシュ２３に保持されているプリロードされた情報とを比較して、対応するファイルシステムの更新が必要であるか否かを判断し、その結果を、ファイルシステム管理部８２に供給する。ファイルシステム管理部８２は、必要に応じて、Push／Pop制御部８６を制御して、空いているキャッシュエントリを利用して、更新されるファイルシステムの情報をキャッシュ２３に書き込む。
【０１６２】
具体的には、ファイルシステム情報テーブルに保持されている情報のうち、カウンタの値ｐに対応する情報が、例えば、ファイルシステム内アドレス３に関するものであり、ディレクトリ名「ＡＡＡ」を「ＢＢＢ」に更新することを示すものであり、キャッシュ２３に、ファイルシステム内アドレス３のファイルシステムの情報がプリロードされている場合、ファイルシステム管理部８２は、キャッシュ２３にプリロードされている対応するファイルシステムの内容を、ディレクトリ名「ＡＡＡ」からディレクトリ名「ＢＢＢ」に更新する。
【０１６３】
このとき、ファイルシステム管理部８２は、必要に応じて、Push／Pop制御部８６を制御して、空いているキャッシュエントリを利用して、情報の読み出しおよび書き込みを実行する。情報の読み出しおよび書き込みの処理についての詳細は、後述する。
【０１６４】
そして、ステップＳ１４５において、ファイルシステム管理部８２は、キャッシュ２３の情報の更新内容を、フラグ管理部８５に通知する。フラグ管理部８５は、必要に応じて、対応するキャッシュ２３のエントリのフラグＤの値を決定する。具体的には、フラグ管理部８５は、更新されたキャッシュ２３のエントリのフラグＤの値を１に設定し、更新されていないキャッシュ２３のエントリのフラグＤの値を０に設定する。
【０１６５】
ステップＳ１４３において、対応するファイルシステムに関する情報が、プリロードされていないと判断された場合、または、ステップＳ１４５の処理の終了後、ステップＳ１４６において、ファイルシステム情報比較処理部８３は、ファイルシステムの更新を制御するカウンタの値ｐをインクリメントする。
【０１６６】
ステップＳ１４７において、ファイルシステム情報比較処理部８３は、ファイルシステムの更新を制御するカウンタの値ｐは、ｐ＜βを満たすか否か、すなわち、ファイルシステム情報テーブルに保持されている情報の全てを、現在プリロードされているファイルシステムの情報と比較する処理が終了したか否かを判断する。
【０１６７】
ステップＳ１４７において、ファイルシステムの更新を制御するカウンタの値ｐは、ｐ＜βを満たす、すなわち、ファイルシステム情報テーブルに保持されている情報の全てを、現在プリロードされているファイルシステムの情報と比較する処理が終了していないと判断された場合、処理は、ステップＳ１４２に戻り、それ以降の処理が繰り返される。ステップＳ１４７において、ファイルシステムの更新を制御するカウンタの値ｐは、ｐ＜βを満たさない、すなわち、ファイルシステム情報テーブルに保持されている情報の全てを、現在プリロードされているファイルシステムの情報と比較する処理が終了したと判断された場合、処理は、図１０のステップＳ９に戻り、ステップＳ１０に進む。
【０１６８】
このような処理により、ファイルシステムの更新のために、キャッシュ２３にプリロードされている対応するファイルシステムの内容が、必要に応じて書き換えられ、書き換えられたキャッシュエントリのフラグＤの値が、１に更新される。
【０１６９】
次に、図１５のフローチャートを参照して、図１０のステップＳ１０において実行されるファイルシステム記録処理１について説明する。
【０１７０】
図１５のフローチャートに示されるファイルシステム記録処理１は、図６を用いて説明したように、更新後のファイルシステムの全体が、更新前のファイルシステムとは異なる位置に記録される場合、または、図７を用いて説明した場合において、更新前のファイルシステムにおけるファイルシステム内アドレスに対応する部分は、更新されている部分も更新されていない部分も、上書き処理が実行され、拡張された部分は、記録媒体３１の異なる領域に新たに記録されるとき、すなわち、更新後のファイルシステムの全体が記録媒体３１に記録される場合に実行される処理である。
【０１７１】
ステップＳ１７１において、ファイルシステム記録制御部８７は、ファイルシステムの記録を制御するカウンタの値ｑを０にリセットする。
【０１７２】
ステップＳ１７２において、ファイルシステム記録制御部８７は、ファイルシステムの書き込み範囲を制御するためのカウンタの値Aに基づいて、キャッシュ２３から、A+qのアドレスに対応するエントリを抽出する。
【０１７３】
ステップＳ１７３において、ファイルシステム記録制御部８７は、抽出されたエントリに記載されている情報の記録媒体３１への記録をドライブ１４に指令し、抽出されたエントリに記載されている情報が記録媒体３１へ記録されたことを、ファイルシステム管理部８２に通知する。
【０１７４】
ステップＳ１７４において、ファイルシステム管理部８２は、フラグ管理部８５に、抽出されたエントリに記載されている情報が記録媒体３１へ記録されたことを通知する。フラグ管理部８５は、対応するエントリのフラグを、V=1、W=０、D＝０に設定する。
【０１７５】
ステップＳ１７５において、ファイルシステム記録制御部８７は、ファイルシステムの更新を制御するカウンタの値ｑをインクリメントする。
【０１７６】
ステップＳ１７６において、ファイルシステム記録制御部８７は、ファイルシステムの更新を制御するカウンタの値ｑは、ｑ＜α−xを満たすか否かを判断する。ステップＳ１７６において、カウンタの値ｑは、ｑ＜α−xを満たすと判断された場合、処理は、ステップＳ１７２に戻り、それ以降の処理が繰り返される。ステップＳ１７６において、カウンタの値ｑは、ｑ＜α−xを満たさないと判断された場合、処理は、図１０のステップＳ１０に戻り、ステップＳ１１に進む。
【０１７７】
このような処理により、キャッシュ２３に保持されたファイルシステムの一部の情報が、記録媒体３１に記録され、例えば、図６を用いて説明したように、ファイルシステムが更新される。
【０１７８】
次に、図１６のフローチャートを参照して、図１０のステップＳ１０において実行されるファイルシステム記録処理２について説明する。
【０１７９】
図１５のフローチャートに示されるファイルシステム記録処理１は、図８を用いて説明したように、更新後のファイルシステムのうち、更新前のファイルシステムから更新された部分および拡張された部分のみが、記録媒体３１に新たに記録される場合、または、図７を用いて説明した場合において、更新前のファイルシステムにおけるファイルシステム内アドレスに対応する部分は、更新されている部分のみにおいて上書き処理が実行され、拡張された部分は、記録媒体３１の異なる領域に新たに記録される場合、すなわち、更新後のファイルシステムの全体ではなく、更新または拡張された（フラグＤ＝１である）部分のみが記録媒体３１に記録される場合に実行される処理である。
【０１８０】
ステップＳ２０１およびステップＳ２０２において、図１５のステップＳ１７１およびステップＳ１７２と同様の処理が実行される。
【０１８１】
すなわち、ファイルシステムの記録を制御するカウンタの値ｑが０にリセットされ、ファイルシステムの書き込み範囲を制御するためのカウンタの値Aに基づいて、キャッシュ２３から、A+qに対応するエントリが抽出される。
【０１８２】
ステップＳ２０３において、ファイルシステム記録制御部８７は、抽出されたエントリに記載されているフラグＤの値は、１であるか否かを判断する。
【０１８３】
ステップＳ２０３において、抽出されたエントリに記載されているフラグＤの値は、１であると判断された場合、ステップＳ２０４において、ファイルシステム記録制御部８７は、抽出されたエントリに記載されている情報の記録媒体３１への記録をドライブ１４に指令し、抽出されたエントリに記載されている情報が記録媒体３１へ記録されたことを、ファイルシステム管理部８２に通知する。
【０１８４】
ステップＳ２０３において、抽出されたエントリに記載されているフラグＤの値は、１ではないと判断された場合、または、ステップＳ２０４の処理の終了後、ステップＳ２０５において、フラグ管理部８５は、対応するエントリのフラグを、V=1、W=０、D＝０に設定する。
【０１８５】
ステップＳ２０６およびステップＳ２０７において、ステップＳ１７５およびステップＳ１７６と基本的に同様の処理が実行される。すなわち、ファイルシステムの更新を制御するカウンタの値ｑがインクリメントされ、ファイルシステムの更新を制御するカウンタの値ｑは、ｑ＜α−xを満たすか否かが判断される。カウンタの値ｑは、ｑ＜α−xを満たすと判断された場合、処理は、ステップＳ２０２に戻り、それ以降の処理が繰り返される。カウンタの値ｑは、ｑ＜α−xを満たさないと判断された場合、処理は、図１０のステップＳ１０に戻り、ステップＳ１１に進む。
【０１８６】
このような処理により、エントリに記載されている情報が更新されている場合のみ、キャッシュ２３に保持されたファイルシステムの一部の情報が、記録媒体３１に記録される。これにより、記録媒体３１においてデータの記録が実行されるブロックを必要最小限にすることができるので、記録媒体３１が上書きの回数制限、すなわち、データの上書きによる寿命に達するのを遅らせることができる。
【０１８７】
次に、図１７のフローチャートを参照して、データ読み出し処理について説明する。
【０１８８】
図１７の処理は、例えば、ファイルシステム更新準備処理などにおいて、読み出すべきファイルシステムのアドレスおよびサイズの入力を受け、指定されたファイルシステムのデータを読み出す必要がある場合に、キャッシュ２３のうちのいずれかのエントリに保持されている対応するデータを読み出すか、または、キャッシュ２３のうちのいずれかのエントリに対応するデータを書き込んだ後、このデータを読み出す処理である。
【０１８９】
ステップＳ２３１において、ファイルシステム管理部８２は、読み出したいデータがキャッシュ２３内に存在するか否かを判断する。ステップＳ２３１において、読み出したいデータがキャッシュ２３内に存在すると判断された場合、処理は、ステップＳ２３５に進む。
【０１９０】
ステップＳ２３１において、読み出したいデータがキャッシュ２３内に存在しないと判断された場合、ステップＳ２３２において、図１２または図１３を用いて説明した、キャッシュエントリ選択処理が実行される。
【０１９１】
ステップＳ２３３において、ファイルシステム管理部８２は、Push／Pop制御部８６を制御し、読み出したいデータを、記録媒体３１から読み出させ、選択されたエントリに書き込ませる。
【０１９２】
ステップＳ２３４において、ファイルシステム管理部８２は、フラグ管理部８５に、記録媒体３１からデータを読み込んで選択されたエントリに書き込んだことを通知する。フラグ管理部８５は、対応するエントリのフラグを、V=1、W=０、D＝０に設定する。
【０１９３】
ステップＳ２３１において、読み出したいデータがキャッシュ２３内に存在すると判断された場合、または、ステップＳ２３４の処理の終了後、ステップＳ２３５において、ファイルシステム管理部８２は、対応するエントリに書き込まれたデータのコピーを読み出し、処理が終了される。
【０１９４】
このように、ファイルシステムの読み出しは、基本的に、記録媒体３１から直接行われるのではなく、キャッシュ２３を介して実行される。
【０１９５】
次に、図１８のフローチャートを参照して、キャッシュデータ書き込み処理について説明する。
【０１９６】
図１８の処理は、例えば、ファイルシステム更新準備処理などにおいて、更新されるべきファイルシステムのアドレスおよびサイズ、並びに、それを置き換えるデータ(更新用のデータ)の入力を受け、指定されたファイルシステムの更新用のデータを書き込む必要がある場合に、更新前のデータが書き込まれているキャッシュエントリに対して、更新後のデータを書き込む処理である。
【０１９７】
ステップＳ２６１において、ファイルシステム管理部８２は、指定された位置とサイズに対応するデータが、キャッシュ２３内に存在するか否かを判断する。
【０１９８】
ステップＳ２６１において、指定された位置とサイズに対応するデータが、キャッシュ２３内に存在しないと判断された場合、ステップＳ２６２において、図１７を用いて説明したデータ読み出し処理が実行され、指定された位置とサイズに対応するデータが、キャッシュ２３内に読み出される。
【０１９９】
ステップＳ２６１において、指定された位置とサイズに対応するデータが、キャッシュ２３内に存在すると判断された場合、または、ステップＳ２６２の処理の終了後、ステップＳ２６３において、ファイルシステム管理部８２は、Push／Pop制御部８６を制御し、書き込まれるデータ(更新用のデータ)を、選択されたエントリに書き込む。
【０２００】
ステップＳ２６４において、ファイルシステム管理部８２は、フラグ管理部８５に、書き込まれるデータ(更新用のデータ)を、選択されたエントリに書き込んだことを通知する。フラグ管理部８５は、対応するエントリのフラグを、D＝１に設定し、処理が終了される。
【０２０１】
そして、このようにしてキャッシュ２３上で更新されたデータが、上述したファイルシステム記録処理において記録媒体３１に記録される。すなわち、記録媒体３１では、直接データが更新されるのではなく、キャッシュ２３上で更新されたデータが、記録媒体３１に記録されるようになされている。
【０２０２】
以上のフローチャートを用いて説明した一連の処理においては、まず最初に、ファイルシステムの書き出し領域が確保されたが、特に、図８を用いて説明したように、更新後のファイルシステムのうち、更新前のファイルシステムから更新された部分および拡張された部分のみが、記録媒体３１に新たに記録される場合の処理、または、図７を用いて説明した更新方法のうちの一方のように、更新前のファイルシステムにおけるファイルシステム内アドレスに対応する部分は、更新されている部分のみにおいて上書き処理が実行され、拡張された部分は、記録媒体３１の異なる領域に新たに記録される場合の処理において、ファイルシステムの書き出し領域は、更新前のファイルシステムから更新される部分および拡張される部分が抽出された後、確保されるようにしても良い。
【０２０３】
次に、図１９のフローチャートを参照して、更新前のファイルシステムから更新される部分および拡張される部分が抽出された後、ファイルシステムの書き出し領域が確保されるようになされている場合のデータ更新処理２について説明する。
【０２０４】
ステップＳ２９１乃至ステップＳ２９４において、図１０のステップＳ１乃至ステップＳ４と同様の処理が実行される。
【０２０５】
すなわち、操作入力部１２、または、情報取得部１３から、ドライブ１４に装着された記録媒体３１に記録されるデータ更新の指令を受け、データ記録制御部６２、書き込み範囲カウンタ６３、ファイルシステム情報管理部６４、および、キャッシュデータ管理部６５へ、データ更新の指令の内容が通知されるとともに、書き込み範囲カウンタ６３において、書き込み範囲が設定される。そして、ドライブ１４が制御されて、本体データが記録媒体３１に記録され、図４を用いて説明したように、ファイルシステムに関する情報が、ファイルシステム情報テーブル保持領域２２のファイルシステム情報テーブルに蓄積される。
【０２０６】
そして、例えば、記録装置１の電源ＯＮまたはＯＦＦや、記録媒体３１の装着または取出しなど、所定のファイルシステムの更新タイミングであるか否かが判断され、ファイルシステムの更新タイミングではないと判断された場合、処理は、ステップＳ２９１に戻り、それ以降の処理が繰り返される。
【０２０７】
ステップＳ２９４において、ファイルシステムの更新タイミングであると判断された場合、ステップＳ２９５乃至ステップＳ２９８において、図１０のステップＳ６乃至ステップＳ９と基本的に同様の処理が実行される。
【０２０８】
すなわち、ファイルシステムの書き込み範囲を制御するためのカウンタの値Aがリセットされて、図１１を用いて説明したプリロード処理が実行され、プリロードが実行できたと判断された場合、図１４を用いて説明した、ファイルシステム更新準備処理が実行される。
【０２０９】
ステップＳ２９９において、図２０を用いて説明する、ファイルシステム記録処理３が実行される。
【０２１０】
そして、ステップＳ３００およびステップＳ３０１において、図１０のステップＳ１１およびステップＳ１２と基本的に同様の処理が実行される。すなわち、書き込み範囲カウンタ６３の、ファイルシステムの書き込み範囲を制御するためのカウンタの値Aが、所定の規則にのっとってインクリメントされ、書き込み範囲カウンタ６３のカウンタ値が参照されて、ファイルシステムの書き込み範囲内のファイルシステムの記録処理は終了したか否かが判断される。ファイルシステムの記録処理は終了していないと判断された場合、処理は、ステップＳ２９６に戻り、それ以降の処理が繰り返される。ファイルシステムの記録処理は終了したと判断された場合、処理は終了される。
【０２１１】
すなわち、ファイルシステムの書き込み領域の確保は、ステップＳ２９９のファイルシステム記録処理３において実行される。
【０２１２】
次に、図２０のフローチャートを参照して、図１９のステップＳ２９９において実行される、ファイルシステム記録処理３について説明する。
【０２１３】
ステップＳ３３１およびステップＳ３３２において、図１５のステップＳ１７１およびステップＳ１７２、または、図１６のステップＳ２０１およびステップＳ２０２と同様の処理が実行される。
【０２１４】
すなわち、ファイルシステムの記録を制御するカウンタの値ｑが０にリセットされ、ファイルシステムの書き込み範囲を制御するためのカウンタの値Aに基づいて、キャッシュ２３から、A+qに対応するエントリが抽出される。
【０２１５】
ステップＳ３３３において、ファイルシステム記録制御部８７は、抽出されたエントリに記載されているフラグＤの値は、１であるか否かが判断される。
【０２１６】
ステップＳ３３３において、抽出されたエントリに記載されているフラグＤの値は、１であると判断された場合、ステップＳ３３４において、ファイルシステム記録制御部８７は、記録媒体３１において、更新によるファイルシステムの書き込み領域を１エントリ分確保する。
【０２１７】
ステップＳ３３５において、ファイルシステム記録制御部８７は、抽出されたエントリに記載されている情報の記録媒体３１への記録をドライブ１４に指令し、抽出されたエントリに記載されている情報が記録媒体３１へ記録されたことを、ファイルシステム管理部８２に通知する。
【０２１８】
ステップＳ３３３において、抽出されたエントリに記載されているフラグＤの値は、１ではないと判断された場合、または、ステップＳ３３５の処理の終了後、ステップＳ３３６乃至ステップＳ２２８において、ステップＳ２０５乃至ステップＳ２０７において実行された処理と同様の処理が繰り返される。
【０２１９】
すなわち、対応するエントリのフラグが、V=1、W=０、D＝０に設定され、ファイルシステムの更新を制御するカウンタの値ｑがインクリメントされ、ファイルシステムの更新を制御するカウンタの値ｑは、ｑ＜α−xを満たすか否かが判断される。カウンタの値ｑは、ｑ＜α−xを満たすと判断された場合、処理は、ステップＳ３３２に戻り、それ以降の処理が繰り返される。カウンタの値ｑは、ｑ＜α−xを満たさないと判断された場合、処理は、図１９のステップＳ２９９に戻り、ステップＳ３００に進む。
【０２２０】
このような処理により、エントリに記載されている情報が更新されている場合のみ、記録媒体３１上の書き込み領域が確保されて、キャッシュ２３に保持されたファイルシステムの一部の情報が、記録媒体３１に記録される。これにより、記録媒体３１においてデータの記録が実行されるブロックを必要最小限にすることができるので、記録媒体３１が上書きの制限に達するのを遅らせることができるとともに、１度だけ書き込み可能な記録媒体３１において、ファイルシステムの記録に利用する記録領域をできるだけ少なくすることが可能である。
【０２２１】
以上説明した処理において、例えば、図６を用いて説明したように、更新後のファイルシステムを書き込む領域を連続で配置した場合、効率よく書き込むことができ、書き込み速度が向上するとともに、このように書き込まれたファイルシステムは、効率よく読み込むことができ、読み込み速度が向上する。また、図６に示されるファイルシステムの更新方法は、隣り合う領域の書き込みを順番に行う必要がある書き込み手順で記録媒体３１に書き込むようになされている場合に適用することができる。また、断片化解消処理を実行する必要がないので、ファイルシステムの書き込み処理が複雑にならない。
【０２２２】
また、図６に示されるファイルシステムの更新方法を用いた場合、ファイルシステム更新中であっても、常に元のファイルシステムはそのまま残っているため、停電など、なんらかの事故により更新処理が中断されても、元のファイルシステムを参照することにより、容易に復旧を行うことができる。これにより、ファイルシステム全体が破損することを回避することができる。
【０２２３】
また、上述した処理では、キャッシュ２３に書き込まれた一定量のファイルシステムを、ファイルシステムの更新タイミングまでの間に蓄積されたファイルシステム情報テーブルの情報に基づいて、キャッシュ２３内で更新した後、記録媒体３１に記録するようにしたので、記録媒体３１上の同一領域に対する書き換え回数を減少することができる。これにより、書き換え制限のある記録媒体３１の寿命を延ばすことができる。また、擬似的な書き換え機構の利用を最小限にとどめ、効率よく、書き換えや、読み込みを行うことができる。
【０２２４】
さらに、ファイルシステムの大きさに関係なく、一定のメモリ容量、すなわち、キャッシュ２３として割り当てられた領域で処理を行うため、ファイルシステム全体が大きく、メモリ１５のうち、キャッシュ２３として割り当てられた領域では読み込みきれない場合、または、メモリ１５の容量が大きくても、他のアプリケーションなどの関係によりファイルシステム全体に対応するほどキャッシュ２３として割り当てることが可能でない場合であっても、ファイルシステムを更新することができる。
【０２２５】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。この場合、例えば、図１を用いて説明した記録装置１は、図２１に示されるようなパーソナルコンピュータ３０１により構成される。
【０２２６】
図２１において、ＣＰＵ（Central Processing Unit）３１１は、ＲＯＭ（Read Only Memory）３１２に記憶されているプログラム、または記憶部３１８からＲＡＭ（Random Access Memory）３１３にロードされたプログラムにしたがって、各種の処理を実行する。ＲＡＭ３１３にはまた、ＣＰＵ３１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２２７】
ＣＰＵ３１１、ＲＯＭ３１２、およびＲＡＭ３１３は、バス３１４を介して相互に接続されている。このバス３１４にはまた、入出力インタフェース３１５も接続されている。
【０２２８】
入出力インタフェース３１５には、キーボード、マウスなどよりなる入力部３１６、ディスプレイやスピーカなどよりなる出力部３１７、ハードディスクなどより構成される記憶部３１８、モデム、ターミナルアダプタなどより構成される通信部３１９が接続されている。通信部３１９は、インターネットを含むネットワークを介しての通信処理を行う。
【０２２９】
入出力インタフェース３１５にはまた、必要に応じてドライブ３２０が接続され、磁気ディスク３３１、光ディスク３３２、光磁気ディスク３３３、もしくは、半導体メモリ３３４などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部３１８にインストールされる。
【０２３０】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークやプログラム格納媒体からインストールされる。
【０２３１】
このプログラム格納媒体は、図２１に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク３３１（フロッピディスクを含む）、光ディスク３３２（ＣＤ-ＲＯＭ（Compact Disk-Read Only Memory），ＤＶＤ（Digital Versatile Disk）を含む）、光磁気ディスク３３３（ＭＤ（Mini-Disk）（商標）を含む）、もしくは半導体メモリ３３４などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているＲＯＭ３１２や、記憶部３１８に含まれるハードディスクなどで構成される。
【０２３２】
また、本明細書において、プログラム格納媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２３３】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２３４】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２３５】
【図１】記録装置の構成を示すブロック図である。
【図２】記録媒体におけるファイルシステムなどの記録領域について説明するための図である。
【図３】記録媒体におけるファイルシステムなどの記録領域について説明するための図である。
【図４】ファイルシステム情報テーブルについて説明するための図である。
【図５】キャッシュに保持される情報について説明するための図である。
【図６】記録媒体におけるファイルシステム更新時の記録領域について説明するための図である。
【図７】記録媒体におけるファイルシステム更新時の記録領域について説明するための図である。
【図８】記録媒体におけるファイルシステム更新時の記録領域について説明するための図である。
【図９】記録装置のＣＰＵの機能ブロック図である。
【図１０】データ更新処理１について説明するためのフローチャートである。
【図１１】プリロード処理について説明するためのフローチャートである。
【図１２】キャッシュエントリ選択処理１について説明するためのフローチャートである。
【図１３】キャッシュエントリ選択処理２について説明するためのフローチャートである。
【図１４】ファイルシステム更新準備処理について説明するためのフローチャートである。
【図１５】ファイルシステム記録処理１について説明するためのフローチャートである。
【図１６】ファイルシステム記録処理２について説明するためのフローチャートである。
【図１７】データ読み出し処理について説明するためのフローチャートである。
【図１８】キャッシュデータ書き込み処理について説明するためのフローチャートである。
【図１９】データ更新処理２について説明するためのフローチャートである。
【図２０】ファイルシステム記録処理３について説明するためのフローチャートである。
【図２１】パーソナルコンピュータの構成について説明するための図である。
【符号の説明】
【０２３６】
１  記録装置，  １１  ＣＰＵ，  １２  操作入力部，  １３  情報取得部，  １４  ドライブ，  １５  メモリ，  １６  システムバス，  ２１  ボリューム情報保持領域，  ２２  ファイルシステム情報テーブル保持領域，  ２３  キャッシュ，  ３１  記録媒体，  ６１  記録／更新関連情報取得部，  ６２  データ記録制御部，  ６３  書き込み範囲カウンタ，  ６４  ファイルシステム情報管理部，  ６５  キャッシュデータ管理部，  ８１  書き込み範囲設定部，  ８２  ファイルシステム管理部，  ８３  ファイルシステム情報比較処理部，  ８４  プリロード制御部，  ８５  フラグ管理部，  ８６  Push／Pop制御部，  ８７  ファイルシステム記録制御部
【図１】
2008065779.tif 000003
【図２】
2008065779.tif 000004
【図３】
2008065779.tif 000005
【図４】
2008065779.tif 000006
【図５】
2008065779.tif 000007
【図６】
2008065779.tif 000008
【図７】
2008065779.tif 000009
【図８】
2008065779.tif 000010
【図９】
2008065779.tif 000011
【図１０】
2008065779.tif 000012
【図１１】
2008065779.tif 000013
【図１２】
2008065779.tif 000014
【図１３】
2008065779.tif 000015
【図１４】
2008065779.tif 000016
【図１５】
2008065779.tif 000017
【図１６】
2008065779.tif 000018
【図１７】
2008065779.tif 000019
【図１８】
2008065779.tif 000020
【図１９】
2008065779.tif 000021
【図２０】
2008065779.tif 000022
【図２１】
2008065779.tif 000023