JP2008009754A - 情報処理装置および方法、並びにプログラム - Google Patents
情報処理装置および方法、並びにプログラム Download PDFInfo
- Publication number
- JP2008009754A JP2008009754A JP2006180100A JP2006180100A JP2008009754A JP 2008009754 A JP2008009754 A JP 2008009754A JP 2006180100 A JP2006180100 A JP 2006180100A JP 2006180100 A JP2006180100 A JP 2006180100A JP 2008009754 A JP2008009754 A JP 2008009754A
- Authority
- JP
- Japan
- Prior art keywords
- file
- division
- information
- processing
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】ファイル分割処理中の電源遮断によるファイル消失を回避することができるようにする。
【解決手段】ディレクトリエントリ制御部311は、アプリケーション101から、分割元および分割後のファイル名やファイルサイズ情報などの分割指示情報が供給されるとともに、記録媒体104に記録されているファイルの分割が要求された場合、クラスタ制御部312およびFAT制御部313を制御し、ファイル分割処理を実行させる。その際、ディレクトリエントリ制御部311は、進捗管理部314を制御し、ファイル分割処理を構成する各処理の終了毎に、不揮発性メモリ33に、その処理段階を記憶させ、その処理段階に対応付けて、その処理段階以降に必要なファイルの管理情報も記憶させる。本発明は、記録媒体に記録されているデータを編集する記録再生装置に適用できる。
【選択図】図15
【解決手段】ディレクトリエントリ制御部311は、アプリケーション101から、分割元および分割後のファイル名やファイルサイズ情報などの分割指示情報が供給されるとともに、記録媒体104に記録されているファイルの分割が要求された場合、クラスタ制御部312およびFAT制御部313を制御し、ファイル分割処理を実行させる。その際、ディレクトリエントリ制御部311は、進捗管理部314を制御し、ファイル分割処理を構成する各処理の終了毎に、不揮発性メモリ33に、その処理段階を記憶させ、その処理段階に対応付けて、その処理段階以降に必要なファイルの管理情報も記憶させる。本発明は、記録媒体に記録されているデータを編集する記録再生装置に適用できる。
【選択図】図15
Description
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、ファイル分割処理中に電源遮断が発生しても、次回の起動時に中断された部分から、ファイル分割処理を再開することができるようにした情報処理装置および方法、並びにプログラムに関する。
FATファイルシステムにおけるファイル分割処理を実現するには、記録済みのディレクトリエントリ情報やFAT情報の編集、および、必要に応じてディレクトリエントリの新規作成を実行することになるが、ファイル分割処理の途中で電源遮断が発生することもあり得る。
なお、特許文献1には、FAT情報を書き換えている途中の電源遮断におけるFAT復旧処理について提案されている。
しかしながら、特許文献1には、ファイル分割処理中におけるディレクトリエントリの復旧処理に係る記載はなく、ファイル分割処理の途中で電源遮断が発生してしまうと、分割後のファイルが生成されないだけでなく、最悪、分割元となる記録済みファイル全体までも消失されてしまうことがあった。
本発明は、このような状況に鑑みてなされたものであり、ファイル分割処理中に電源遮断が発生しても、次回の起動時に中断された部分から、ファイル分割処理を再開することができるようにするものである。
本発明の一側面の情報処理装置は、記録媒体に記録されている分割元のファイルを複数ファイルに分割するファイル分割処理を行う情報処理装置において、複数の処理段階で構成される前記ファイル分割処理を実行する分割処理手段と、前記分割処理手段による前記ファイル分割処理を構成する各処理段階の終了毎に、現在の処理段階を、前記現在の処理段階以降に必要なファイルの管理情報に対応付けて記憶手段に記憶させる記憶制御手段とを備える。
前記分割処理手段は、電源起動時に、前記記憶手段に記憶されている前記現在の処理段階に基づき、前記現在の処理段階以降に必要なファイル管理情報を用いて、前記ファイル分割処理を再開することができる。
前記現在の処理段階以降に必要なファイルの管理情報は、分割元のファイル、および分割後の複数のファイルのうち、少なくとも1つのファイルの属性情報と、前記少なくとも1つのファイルの属性情報を格納する領域の開始アドレスであることができる。
本発明の一側面の情報処理方法は、記録媒体に記録されている分割元のファイルを複数ファイルに分割するファイル分割処理を行う情報処理装置の情報処理方法において、複数の処理段階で構成される前記ファイル分割処理を実行し、前記ファイル分割処理を構成する各処理段階の終了毎に、現在の処理段階を、前記現在の処理段階に必要なファイルの管理情報に対応付けて記憶手段に記憶させるステップを含む。
本発明の一側面のプログラムは、記録媒体に記録されている分割元のファイルを複数ファイルに分割するファイル分割処理をコンピュータに実行させるプログラムであって、複数の処理段階で構成される前記ファイル分割処理を実行し、前記ファイル分割処理を構成する各処理段階の終了毎に、現在の処理段階を、前記現在の処理段階に必要なファイルの管理情報に対応付けて記憶手段に記憶させるステップを含む処理を実行させる。
本発明においては、複数の処理段階で構成される前記ファイル分割処理が実行され、前記ファイル分割処理を構成する各処理段階の終了毎に、現在の処理段階が、前記現在の処理段階に必要なファイルの管理情報に対応付けて記憶手段に記憶される。
本発明によれば、ファイル分割処理中の電源遮断によるファイル消失を回避することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の情報処理装置は、記録媒体(例えば、図2の記録媒体104)に記録されている分割元のファイルを複数ファイルに分割するファイル分割処理を行う情報処理装置(例えば、図1の記録再生装置1)において、複数の処理段階で構成される前記ファイル分割処理を実行する分割処理手段(例えば、図15のディレクトリエントリ制御部311)と、前記分割処理手段による前記ファイル分割処理を構成する各処理段階の終了毎に、現在の処理段階を、前記現在の処理段階以降に必要なファイルの管理情報に対応付けて記憶手段(例えば、図15の不揮発性メモリ33)に記憶させる記憶制御手段(例えば、図15の進捗管理部314)とを備える。
本発明の一側面の情報処理方法またはプログラムは、記録媒体に記録されている分割元のファイルを複数ファイルに分割するファイル分割処理を行う情報処理装置の情報処理方法またはプログラムにおいて、複数の処理段階で構成される前記ファイル分割処理を実行し(例えば、図19のステップS11,S13,S15,S17,S19,またはS21)、前記ファイル分割処理を構成する各処理段階の終了毎に、現在の処理段階を、前記現在の処理段階に必要なファイルの管理情報に対応付けて記憶手段に記憶させる(例えば、図19のステップS12,S14,S16,S18,S20,またはS22)ステップを含む。
本発明は、ランダムアクセス可能な記録媒体に記録されているデータに編集を行うことができる、ビデオカメラ、デジタルスチルカメラ、パーソナルコンピュータ、ポータブルDVDプレーヤ、DVDレコーダ、携帯電話機、およびPDAなどに適用することができる。特に、本発明は、ハードディスクドライブ(HDD)などを記録媒体として用いるビデオカメラ、デジタルスチルカメラ、パーソナルコンピュータや、HDDなどの記録媒体にデータを記録する記録再生装置(例えば、HDDレコーダ)などに適用することができる。
以下、図を参照して本発明の実施の形態について説明する。
図1は、本発明を適用した記録再生装置1の一実施形態に係る構成例を示す図である。この記録再生装置1は、例えば、デジタルスチルカメラ、デジタルビデオカメラなどとして構成され、撮影した画像(または音声)のデータを、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどの記録媒体に記録したり、記録媒体に記録された画像(または音声)のデータを編集したり、再生したりする。
図1において、光学レンズ11は、カメラ機能部12の制御に基づいて、被写体の画像の光を集光し、集光した光を、光電変換部13に結像させる。
カメラ機能部12は、CPU(central processing unit)51の制御に基づいて、光学レンズ11による被写体の撮影動作を開始させたり、終了させたりする他、光学レンズ11のズーム率、取り込む光量などを適宜制御する。
光電変換部13は、例えば、CCD(charge-coupled device)やC-MOS(Complementary-Metal Oxide Semiconductor)などの光電変換素子により構成され、光学レンズ11から供給される光を電気的信号に変換し、画像信号処理部14に供給する。
画像信号処理部14は、光電変換部13から供給される信号に基づいて、画像のデータを生成する。画像信号処理部14は、例えば、CPU51の制御に基づいて、被写体の画像に対応するアナログの信号を、A/D(Analog to Digital)変換して、デジタルの画像のデータとし、その画像のデータに対して、例えば、ホワイトバランスの調整、欠陥画素の補間などの画像処理を適用する。また、画像信号処理部14は、CPU51の制御に基づいて、MEPG(Motion Picture Experts Group)、JPEG(Joint Photographic Expert Group)などの方式による画像のデータの圧縮符号化を行ったり、圧縮符号化された画像のデータの復号を行ったりする。
また、画像信号処理部14は、被写体の画像に対応するアナログの信号を、A/D変換して、ホワイトバランスを調整し、または欠陥画素を補間した画像のデータを、ディスプレイ16および画像入出力部15に供給する。より具体的には、画像信号処理部14は、その画像データを、ディスプレイ16の入力方式である、例えば、RGB(Red, Green, Blue)信号に変換して、ディスプレイ16に供給し、同様に、画像信号処理部14は、RGB信号を画像入出力部15にも供給する。
画像入出力部15は、例えば、外部の装置から供給される画像信号を、画像信号処理部14に供給し、また、画像信号処理部14から出力される画像のデータに対応する信号を、外部の装置に出力する。ディスプレイ16は、例えば、LCD(Liquid Crystal Display)などにより構成され、画像信号処理部14から出力される画像のデータに対応する信号に基づく画像を表示する。
音声入出力部21は、例えば、マイクロフォンなどにより集音された音声信号を、音声処理部22に供給し、また、音声処理部22から出力される音声のデータに対応する音声を、スピーカなどに出力する。音声処理部22は、CPU51の制御に基づいて、音声入出力部21から供給される音声の信号に基づいて、圧縮符号化された音声のデータを生成したり、圧縮符号化された音声のデータの復号を行ったりする。
RAM(Random Access Memory)31は、ドライブ36に装着される記録媒体から読み出されるプログラムなどのデータ、またはプログラムによる処理に伴って生成されるデータなどを記憶し、必要に応じてCPU51に供給する。ROM(Read Only Memory)32は、予め記憶されているデータを、必要に応じてCPU51に供給する。不揮発性メモリ33は、例えば、EEPROM(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリなどで構成され、CPU51の処理に用いられる各種のデータを記憶する。
操作入力部34は、例えば、操作キーまたはボタンなどを有する構成とされ、ユーザにより入力された操作に対応する信号を、CPU51に出力する。
通信部35は、例えば、ネットワークカードなどにより構成され、Ethernet(登録商標)、USB(Universal Serial Bus)などの有線通信のインタフェース、または、IEEE802.11a/b/g、Bluetoothなどの無線通信のインタフェースとして機能し、CPU51の制御に基づいて、ネットワークに接続される他の装置との通信を行う。
ドライブ36には、例えば、HDD(Hard Disk Drive)などの磁気ディスク、DVD(Digital Versatile Disk)やCD(Compact Disk)、Blu-ray DiscやHD-DVD(High Definition DVD)などの光ディスク、MD(登録商標)(Mini-Disk))などの光磁気ディスク、フラッシュメモリ、メモリースティック(登録商標)などの半導体メモリなどで構成される各種の記録媒体が装着される。ドライブ36は、装着された記録媒体にアクセスし、データを記録したり、記録したデータを読み出したりする。
センサ37は、角速度センサや加速度センサ、温度センサなどで構成され、例えば、光学的な補正を行うため、画像のぶれを検出したりする。検出された画像のぶれは、CPU51を介して、画像信号処理部14に供給される。電源38は、記録再生装置1を駆動させるために必要となる電力を供給する。
CPU51は、各種の演算を行ってデータの処理を行い、記録再生装置1全体の動作を制御する。
図2は、記録再生装置1における記録媒体104へのデータの記録、または記録媒体104からのデータの編集や、読み出しの仕組みを説明する図である。同図において、アプリケーション101は、CPU51で実行されるソフトウェアの最上位のレイヤに属するソフトウェアであり、例えば、動画像の記録、編集、または再生の処理を制御する。
アプリケーション101は、自身が行う処理に伴って、記録、編集、または再生が必要となるデータについて、例えば、所定の記録単位のデータで構成されるファイルを単位としてアクセスする。アプリケーション101は、所定のファイルにアクセスするとき、ファイルシステム102にアクセス要求を出力する。また、アプリケーション101は、ファイルシステム102からのファイルのアクセス要求に対する応答を受け、必要に応じて、ユーザに通知するため、その応答に対応する画像を生成して、ディスプレイ16に表示させる。
ファイルシステム102は、記録媒体104のどこに何のファイルがあるのか、その情報を管理するためのソフトウェアであり、やはりCPU51により実行されるソフトウェアとされる。ファイルシステム102は、例えば、FAT(File Allocation Table:ファット)16またはFAT32などにより構成される。なお、FAT32の詳細は、「Microsoft Extensible Firmware Initiative FAT32 File System Specification」に開示されている。
ファイルシステム102は、アプリケーション101からアクセス要求のあったファイルについて、所定のビット量で構成されるクラスタに分解し、クラスタ単位でアクセスする。例えば、アプリケーション101からファイルシステム102に対して、編集または再生に伴うファイルの読み出しが要求された場合、ファイルシステム102は、そのファイルの実データが記録されているクラスタを該当クラスタとして検索する。また例えば、アプリケーション101からファイルシステム102に対して、記録または編集に伴うファイルの書き込みが要求された場合、ファイルシステム102は、ファイルの実データを書き込み可能な空きクラスタを該当クラスタとして検索する。
そして、ファイルシステム102は、検索された該当クラスタをLBA(Logical Block Addressing)に変換し、デバイスドライバ103に対して、セクタ単位でアクセスを要求する。また、ファイルシステム102は、自身が出力したアクセス要求に基づいてデバイスドライバ103から供給された応答に基づいて、ファイルのアクセス要求に対する応答をアプリケーション101に出力する。
デバイスドライバ103は、ドライブ36の動作を制御するためのソフトウェアであり、やはりCPU51により実行されるソフトウェアとされる。デバイスドライバ103は、ファイルシステム102からのアクセス要求に基づいて、ドライブ36を制御してドライブ36に装着される記録媒体104にセクタ単位でアクセスする。これにより、ドライブ36が、自身に装着された記録媒体104の要求されたセクタにアクセスする。ここでセクタは、クラスタよりさらに細かい記録単位であり(複数のセクタによりクラスタが構成される)、LBAによりアクセスすべきセクタが指定される。また、自身が出力したセクタ単位のアクセス要求に基づいて記録媒体104(実際にはドライブ36)から供給された応答に基づいて、セクタのアクセス要求に対する応答をファイルシステム102に出力する。
記録媒体104(ドライブ36)は、デバイスドライバ103からのアクセス要求に基づいて、アクセス要求のあったセクタにデータを書き込み(記録し)、またはアクセス要求のあったセクタからデータを読み出す処理を行い、その処理結果を、セクタのアクセス要求に対する応答としてデバイスドライバ103に出力する。例えば、記録媒体104は、デバイスドライバ103からセクタ単位での読み出しが要求された場合、セクタ毎に記録されているデータをデバイスドライバ103に供給する。
次に、ファイルシステム102により管理されるデータの詳細な構成について、図3と図4を参照して説明する。
図3は、ファイルシステム102がFAT16により構成され、パーティションが1つの場合の、記録媒体104に記録されるデータの詳細な構成例を示す図である。図3と図4においては、記録媒体104に記録されるデータが、それぞれ記録媒体104の中で配置される順番に従って、先頭のデータから順に図中上から下に向かって記載されている。
図3において、記録媒体104のデータの先頭セクタであるLBA(Logical Block Addressing)=0のセクタには、起動コード、記録媒体104に記録されるデータの記録単位であるパーティションについて、各パーティションの先頭のセクタおよび終了セクタ、並びにサイズなどの情報を含むMBR(Master Boot Record)が配置されている。
MBRに続く所定の空き領域に続いて配置される、PBR(Partition Boot Record)、FAT(File Allocation Table)1、FAT2、ルートディレクトエントリ、クラスタは、記録媒体104のデータにおいて1つのパーティションとして記録される。
PBRは、記録媒体104のクラスタ数、セクタとクラスタの関係、パーティションの起動コードなどを含む情報とされ、例えば、オペレーティングシステムの起動時にメモリに読み込まれる。
FAT1およびFAT2は、それぞれ、ファイルを構成するクラスタの連鎖情報を有するテーブルであり、ファイルシステム102がファイルの読出しまたは書き込みを行うとき、FAT1またはFAT2が参照される。なお、通常FAT1とFAT2の記録内容は同様のものとされる(すなわち、FAT2には、FAT1のバックアップとして、FAT1と同じテーブルのコピーが記録される)。
ルートディレクトリエントリには、記録媒体104のルートディレクトリに記録されるディレクトリやファイルに対応するディレクトリエントリが格納される。例えば、記録媒体104のルートディレクトリに複数のファイルが記録される場合、ルートディレクトリエントリには、個々のディレクトリやファイルに関係する情報からなるディレクトリエントリが、複数のディレクトリやファイルのそれぞれに対して形成される。ディレクトリエントリのそれぞれには、対応するファイルの名称、そのファイルの作成日、そのファイルのサイズ、および、そのファイルの先頭クラスタ番号などの情報が格納される。なお、FAT16におけるルートディレクトリエントリは、FAT1およびFAT2で管理されない領域である。
1つのパーティションの中において、PBR乃至ルートディレクトリエントリに記録されるデータはこのパーティションのデータの管理情報であるが、ルートディレクトリエントリに続く、複数のクラスタは、データ領域であり、複数のクラスタには実データ(例えば、画像のデータ)が記録される。通常1以上のクラスタにより1つのファイルが構成されるが、このファイルを構成する複数のクラスタの連鎖情報は、上述したFAT1またはFAT2に記録されることになる。すなわちFAT1またはFAT2には、「当該パーティションに存在する複数のクラスタのうち、あるファイルの先頭が第何番目のクラスタであり、その次のクラスタは、第何番目のクラスタであり、…ファイルの最後のクラスタが第何番目のクラスタである」のような情報が記録される。
図4は、ファイルシステム102がFAT32により構成され、パーティションが1つの場合の、記録媒体104に記録されるデータの詳細な構成例を示す図である。
図4においては、図3のFAT16の場合と異なりルートディレクトリエントリが配置されておらず、記録媒体104の中の空き容量を高速に計算するための空きクラスタ数が記録された情報などを含むデータであるFSInfoが配置されており、その他は、図3の場合と同様の構成とされる。すなわち、FAT32において、ルートディレクトリの情報は、データ領域内に記録される。
なお、図3のFAT16によれば、最大2GB(ギガバイト)までの領域を、1つのパーティションとして管理でき、図4のFAT32によれば、最大2TB(テラバイト)までの領域を1つのパーティションとして管理できる。
図5は、図3および図4のMBRの構成例を示す図である。
MBRは、図中横軸方向に第0番目乃至第15番目までの16バイトのデータ、すなわち、合計512バイト(第0000バイト乃至第01FFバイト)のデータからなる。MBRの先頭クラスタからは、446バイトの起動コード領域151、続いて64バイトのパーティションテーブル152、および2バイトの情報161が配置されている。
起動コード領域151は、クラスタの先頭の0バイト目から始まる第445バイトまでの領域であり、アクティブなパーティションから起動用のプログラムを読み込むためのマスタブートコード(Master Boot Code(Initial Program Loaderとも呼ばれる))が記録されている。さらに第446バイトから始まる64バイト分の領域には、パーティションテーブル152、およびパーティションテーブル152の終端を示す情報である最後の2バイトの情報161(「55h」、および「AAh」)が記録されている。
パーティションテーブル152は、個々のパーティションに対応するパーティション情報(パーティションの開始アドレスとサイズ)を記録する。このパーティションテーブル152には、最大4つのパーティションに対応するパーティション情報が保存される。例えば、1つのパーティションが登録されている場合、パーティションテーブル152は図6に示されるように構成される。
図6は、パーティションテーブル152の詳細な構成例を示す図である。記録媒体104に1つのパーティションが記録されている場合、16バイトのパーティション情報(パーティションテーブル152のエントリ)171が、パーティションテーブル152に保存される。パーティション情報171には、先頭から順に、1バイトのフラグ181,3バイトの開始セクタ(CHS(Cylinder/Head/Sector))182,1バイトのタイプ183,3バイトの終了セクタ(CHS)184,4バイトの開始セクタ(LBA)185、および4バイトのパーティションサイズ186が格納されている。
フラグ181は、パーティションがアクティブであるか否かを示す、いわゆる起動フラグである。例えば、“00h”であるフラグ181は、そのパーティションがノンアクティブである(いわゆる起動パーティションでない)ことを示し、“80h”であるフラグ181は、そのパーティションがアクティブである(いわゆる起動パーティションである)ことを示す。なお、“00h”や“80h”の「h(hexadecimal number)」は、“00”や“80”が16進数で表現されていることを示している。以下、同様に、「h」が付加されている値は、16進数で表現されていることを示す。
開始セクタ182は、シリンダ/ヘッド/セクタという3つのパラメータで、パーティションの先頭のセクタのアドレスを示す。タイプ183は、そのパーティションがフォーマットされているファイルシステムの方式を示す。例えば、“80h”であるタイプ183は、FAT32であることを示す。
終了セクタ184は、シリンダ/ヘッド/セクタという3つのパラメータで、パーティションの最後のセクタのアドレスを示す。開始セクタ185は、LBAによる、パーティションの先頭のセクタのアドレスを示す。パーティションサイズ186は、パーティションに含まれるセクタの総数を示す。
図7は、上述したFATの例を示す図である。図7において、上から2行目乃至5行目における、左から2列目乃至17列目の個々の四角は、それぞれ1つのエントリ(以下、FATエントリとも適宜称する)を表しており、図中の上から第1行目および左から第1列目に示される数値の組み合わせがそのエントリのアドレスとなる。
例えば、FAT32の場合、エントリの中の数字は、次のエントリの番号を表している。なお、図7において、「00000000h」または「00000001h」のアドレスのエントリに格納されている「RSV」は、「00000000h」または「00000001h」のクラスタ番号のクラスタがWindows(登録商標)において使用される領域であり、予め予約されていることを示す。また、同図の「00000003h」のアドレス他のエントリに格納されているEOF(End Of File)は、ファイルの終点を表し、「00000002h」のアドレス他のエントリに格納されている「−」は、「00000000h」を意味し、当該エントリが「未使用」であることを表している。
FAT32においては、各ファイルを記録するとき、後述するディレクトリエントリが作成され、そのディレクトリエントリの中に、ファイル名や作成日時、ファイルサイズなどの情報とともに、そのファイルの先頭クラスタ番号が格納される。ファイルにアクセスするときは、ディレクトリエントリの先頭クラスタ番号を参照し、そこから、FATを参照し次のクラスタ番号を見つけながら、ファイルにアクセスしていくことになる。図7で示されるFATの例において、4つのファイルが格納される実データが記録されているクラスタのアドレスが示されている。
1つのファイルに対応するディレクトリエントリにおいて、先頭クラスタ番号として、「00000007h」が示されている場合、「00000007h」のアドレスのエントリには「00000008h」が格納され、「00000008h」のアドレスのエントリには「00000009h」が格納され、「00000009h」のアドレスのエントリには「EOF」が格納されているので、「00000007h」のクラスタ番号のクラスタ、「00000008h」のクラスタ番号のクラスタ、および「00000009h」のクラスタ番号のクラスタに、先頭クラスタ番号として、「00000007h」が示されているディレクトリエントリに関係するファイルの実データが順に記録されている。
また、1つのファイルに対応するディレクトリエントリにおいて、先頭クラスタ番号として、「0000000Ah」が示されている場合、「0000000Ah」のアドレスのエントリには「0000001Fh」が格納され、「0000001Fh」のアドレスのエントリには「00000025h」が格納され、「00000025h」のアドレスのエントリには「00000031h」が格納され、「00000031h」のアドレスのエントリには「00000030h」が格納され、「00000030h」のアドレスのエントリには「EOF」が格納されているので、「0000000Ah」のクラスタ番号のクラスタ、「0000001Fh」のクラスタ番号のクラスタ、「00000025h」のクラスタ番号のクラスタ、「00000031h」のクラスタ番号のクラスタ、および「00000030h」のクラスタ番号のクラスタに、先頭クラスタ番号として、「0000000Ah」が示されているディレクトリエントリに関係するファイルの実データが順に記録されている。
さらに、1つのファイルに対応するディレクトリエントリにおいて、先頭クラスタ番号として、「0000001Bh」が示されている場合、「0000001Bh」のアドレスのエントリには「00000011h」が格納され、「00000011h」のアドレスのエントリには「00000012h」が格納され、「00000012h」のアドレスのエントリには「00000013h」が格納され、「00000013h」のアドレスのエントリには「00000014h」が格納され、「00000014h」のアドレスのエントリには「00000003h」が格納され、「00000003h」のアドレスのエントリには、「EOF」が格納されているので、「0000001Bh」のクラスタ番号のクラスタ、「00000011h」のクラスタ番号のクラスタ、「00000012h」のクラスタ番号のクラスタ、「00000013h」のクラスタ番号のクラスタ、「00000014h」のクラスタ番号のクラスタ、および「00000003h」のクラスタ番号のクラスタに、先頭クラスタ番号として、「0000001Bh」が示されているディレクトリエントリに関係するファイルの実データが順に記録されている。
また、1つのファイルに対応するディレクトリエントリにおいて、先頭クラスタ番号として、「0000002Ch」が示されている場合、「0000002Ch」のアドレスのエントリには「0000002Dh」が格納され、「0000002Dh」のアドレスのエントリには「0000002Eh」が格納され、「0000002Eh」のアドレスのエントリには「0000002Fh」が格納され、「0000002Fh」のアドレスのエントリには「00000038h」が格納され、「00000038h」のアドレスのエントリには「00000039h」が格納され、「00000039h」のアドレスのエントリには、「0000003Ah」が格納され、「0000003Ah」のアドレスのエントリには「0000003Bh」が格納され、「0000003Bh」のアドレスのエントリには「EOF」が格納されているので、「0000002Ch」のクラスタ番号のクラスタ、「0000002Dh」のクラスタ番号のクラスタ、「0000002Eh」のクラスタ番号のクラスタ、「0000002Fh」のクラスタ番号のクラスタ、「00000038h」のクラスタ番号のクラスタ、「00000039h」のクラスタ番号のクラスタ、「0000003Ah」のクラスタ番号のクラスタ、および「0000003Bh」のクラスタ番号のクラスタに、先頭クラスタ番号として、「0000002Ch」が示されているディレクトリエントリに関係するファイルの実データが順に記録されている。
図8は、FAT32におけるディレクトリやファイルに関係するディレクトリエントリの構造の例を示す図である。なお、図中上側に横一列に記述された数値0乃至1Fは、0を始点としてディレクトリエントリにおけるバイト数を表わす16進数である。すなわち、図8の例において、ディレクトリエントリは、32バイトで構成されている。
ディレクトリエントリの先頭に配置される、8バイトの名前201は、ディレクトリ名やファイル名を示す。名前201に続く、3バイトの拡張名202は、いわゆる、ファイルの拡張子(例えば、MPEG2(Moving Picture Experts Group phase 2)フォーマットの場合は「MPG」、JPEG(Joint Photographic Experts Group)フォーマットの場合は「JPG」、MP3(MPEG Audio Layer-3)フォーマットの場合は「MP3」)を示す。また、拡張名202に続く、1バイトの属性203は、ディレクトリやファイルの属性を示す。この属性203は、ファイルの場合には、例えば、読み取り専用ファイルまたは隠しファイルなどを示す。なお、属性203のうちの1ビットがディレクトリビットであり、このビットが立っている場合は、このディレクトリエントリが、ディレクトリのディレクトリエントリであることを示す。属性203に続く、1バイトの予約領域204は、未使用の領域である。
予約領域204に続く、3バイトの作成時刻205は、ディレクトリやファイルが作成された時刻を示す。作成時刻205に続く、2バイトの作成日付206は、ディレクトリやファイルが作成された日付を示す。作成日付206に続く、2バイトの最終アクセス日付207は、ディレクトリやファイルにアクセスされた最終の日付を示す。
先頭クラスタの番号(位置)は、先頭クラスタの番号の上位を示す2バイトの先頭クラスタ番号(High) 208と、先頭クラスタの番号の下位を示す2バイトの先頭クラスタ番号(Low)211とに分けて配置される。すなわち、先頭クラスタの番号(位置)は、32ビットで示される。そのファイルのサイズは、4バイトのファイルサイズ212に記憶される。
2バイトの記録時刻209は、ディレクトリやファイルが記録された時刻、すなわち、ディレクトリやファイルが最後に更新された時刻(最後に書き込まれた時刻)を示す。2バイトの記録日付210は、ディレクトリやファイルが記録された日付、すなわち、ディレクトリやファイルが最後に更新された日付(最後に書き込まれた日付)を示す。
ディレクトリエントリにおいて、最終アクセス日付207に続いて、先頭クラスタ番号(High)208、記録時刻209、記録日付210、先頭クラスタ番号(Low)211、およびファイルサイズ212が順に配置される。
以上のように、各ディレクトリやファイルは、ディレクトリ名やファイル名や作成日時、ファイルサイズなどのディレクトリやファイルの属性情報を保持する「ディレクトリエントリ」、クラスタの連鎖情報を保持する「FAT」、およびクラスタ単位で記録されている「データ(ファイルの実体)」の3要素に基づいて、HDDなどの記録媒体104に記録されているが、記録位置としては、3要素がひとまとまりになっているわけではなく、点在している。
例えば、図9に示されるようにディレクトリおよびファイルが記録媒体104に記録されているとする。
図9の例においては、記録媒体104のルート(Root)ディレクトリの直下に、「MP_ROOT」という名前のディレクトリ(以下、「MP_ROOT」のディレクトリと称する)と「DCIM」のディレクトリなどが作成されて記録されている。「MP_ROOT」のディレクトリの下の階層(以下、下層と称する)には、「100PNV01」のディレクトリと「101PNV001」のディレクトリなどが作成されて記録されている。さらに、「100PNV01」のディレクトリの下層には、「M2U00001.MPG」という名前のファイル(以下、「M2U00001.MPG」のファイルと称する)、「M2U00002.MPG」のファイル、…「M2U09998.MPG」のファイル、および「M2U09999.MPG」のファイルが記録されている。また、「101PNV001」のディレクトリの下層には、「M2U00001.MPG」のファイルなどが記録されている。なお、拡張子「MPG」に示されるように、これらのファイルは、MPEG2フォーマットの画像のデータのファイルである。
「DCIM」のディレクトリの下層には、「101MSDCF」のディレクトリなどが作成されて記録されている。さらに、「101MSDCF」のディレクトリの下層には、「DSC00001.JPG」のファイル、および「DSC00002.JPG」のファイルなどが記録されている。なお、拡張子「JPG」に示されるように、これらのファイルは、JPEGフォーマットの画像のデータのファイルである。
これらのディレクトリおよびファイルの記録媒体104上の配置は、例えば、図10に示されるようにクラスタを消費していく。なお、図10の例においては、クラスタのサイズが32Kバイトであり、図9の「DCIM」のディレクトリより下層のディレクトリおよびファイルのデータ領域における配置例が示されている。
まず、クラスタ番号「2」のクラスタの32バイトには、「DCIM」のディレクトリのディレクトリエントリが配置されている。このディレクトリエントリには、先頭クラスタ番号として、「3」が記載されている。クラスタ番号「3」のクラスタには、「DCIM」のディレクトリの下層にある子ディレクトリ(例えば、「101MSDCF」のディレクトリや「102MSDCF」のディレクトリ)の各32バイトのディレクトリエントリが配置されている。なお、「101MSDCF」のディレクトリのディレクトリエントリの前(クラスタ番号3のクラスタの先頭側)の、“.”は、「自分のディレクトリ」を表し、“..”は、「1つ上の階層のディレクトリ」を表すエントリである。
「101MSDCF」のディレクトリエントリには、先頭クラスタ番号として、「4」が記載されている。クラスタ番号「4」のクラスタには、「DSC00001.JPG」,「DSC00002.JPG」,…,「DSC001022.JPG」のファイルのディレクトリエントリが配置されている。
ここで、1つのクラスタのサイズは、32Kバイトであり、1つのディレクトリエントリは32バイトで構成されるため、1つのクラスタには、1024のディレクトリエントリが記録可能である。ただし、クラスタ番号4のクラスタには、“.”および“..”のエントリが記録されるため、1022個のファイルのディレクトリエントリとなる。したがって、ファイルのディスクエントリが配置されるクラスタ(以下、ディスクエントリクラスタと称する)[1]には、「DSC00001.JPG」乃至「DSC001022.JPG」のファイルのディレクトリエントリしか配置されないので、「DSC001022.JPG」のファイルの実データが配置されるクラスタ以降に、それ以降のファイルのディレクトリエントリが配置されるディスクエントリクラスタ[2]が構成され、ディスクエントリクラスタ[2]に対応するファイルの実データが配置されるクラスタ以降に、ディスクエントリクラスタ[3]が構成される。
例えば、9,999個のファイルのディレクトリエントリを確保する場合には、ディスクエントリクラスタ[1]には、「DSC00001.JPG」乃至「DSC001022.JPG」のファイルのディレクトリエントリが配置され、ディスクエントリクラスタ[2]には、「DSC01023.JPG」乃至「DSC002046.JPG」のファイルのディレクトリエントリが配置され、ディスクエントリクラスタ[3]には、「DSC02047.JPG」乃至「DSC003070.JPG」のファイルのディレクトリエントリが配置され、ディスクエントリクラスタ[4]には、「DSC03071.JPG」乃至「DSC004094.JPG」のファイルのディレクトリエントリが配置され、ディスクエントリクラスタ[5]には、「DSC04095.JPG」乃至「DSC005118.JPG」のファイルのディレクトリエントリが配置され、ディスクエントリクラスタ[6]には、「DSC05119.JPG」乃至「DSC006142.JPG」のファイルのディレクトリエントリが配置され、ディスクエントリクラスタ[7]には、「DSC06143.JPG」乃至「DSC007166.JPG」のファイルのディレクトリエントリが配置され、ディスクエントリクラスタ[8]には、「DSC07167.JPG」乃至「DSC008190.JPG」のファイルのディレクトリエントリが配置され、ディスクエントリクラスタ[9]には、「DSC08191.JPG」乃至「DSC009214.JPG」のファイルのディレクトリエントリが配置され、ディスクエントリクラスタ[10]には、「DSC09215.JPG」乃至「DSC009999.JPG」のファイルのディレクトリエントリが配置される。
そして、各ディスクエントリクラスタの後のクラスタには、各ディスクエントリが先頭クラスタ番号を示す、各ファイルの実データが配置されている。図10の例においては、ディスクエントリクラスタ[1]の後のクラスタ番号5および6のクラスタには、「DSC00001.JPG」のファイルの実データが配置され、その後のクラスタには、「DSC00002.JPG」乃至「DSC001022.JPG」のファイルの実データが順に配置されている。ディスクエントリクラスタ[2]の後のクラスタには、「DSC01023.JPG」乃至「DSC002046.JPG」のファイルの実データが順に配置されている。ディスクエントリクラスタ[3]の後のクラスタには、「DSC02047.JPG」乃至「DSC003070.JPG」のファイルの実データが配置されている。ディスクエントリクラスタ[4]の後のクラスタには、「DSC03071.JPG」乃至「DSC004094.JPG」のファイルの実データが順に配置されている。なお、実データが配置されているクラスタを以下、ファイルボディクラスタとも称する。
以上のようにして記録媒体104にファイルが記録されるが、次に、記録媒体104に記録されるファイルを分割する処理について、図11および図12を参照して説明する。なお、図11は、分割後、空きとなるクラスタがない場合の例を示しており、図12は、前半のファイル名として分割元を指定し、分割後、空きとなるクラスタがある場合の例を示している。
図11の例においては、分割元となる、ファイルサイズが1GBである「M2U01000.MPG」のファイルが2つのファイルに分割され、その結果、それぞれファイルサイズが512MBである「M2U02000.MPG」および「M2U03000.MPG」のファイルが生成される例が示されている。
図12の例においては、分割元となる、ファイルサイズが1GBである「M2U02000.MPG」のファイルが、前半のファイル名が分割元と同じファイル名になるように2つのファイルに分割され、その結果、前半のファイル名が分割元と同じ「M2U01000.MPG」であり、ファイルサイズが500MBのファイルと、後半のファイル名が「M2U03000.MPG」であり、ファイルサイズが512MBであるファイルが生成される例が示されている。
すなわち、図11と図12においては、分割結果として生成されるファイルの個数は同じであるが、図12の分割後の前半となる「M2U01000.MPG」のファイルのファイルサイズが、例えば、編集やデータの削除などにより、図11の分割後の前半となる「M2U02000.MPG」のファイルのファイルサイズよりも12MB減少している点が異なっている。
次に、図13を参照して、図11の例の場合の従来のファイル分割処理の流れを説明する。
図13の例においては、左から順に、ファイル分割処理の流れに沿った記録媒体104上の情報の変化が示されている。すなわち、一番左側が分割前の記録媒体104に記録されている情報を示しており、一番右側が分割後の記録媒体104に記録されている情報を示している。すなわち、各記録媒体104においては、上から順に、FAT1、FAT2、ディレクトリエントリが配置されるディレクトリエントリ(Directory Entry)クラスタ、ファイルのデータが配置されるファイルボディ(File Body)クラスタが示されており、FAT1、FAT2、ディレクトリエントリクラスタ、ファイルボディクラスタにおいて、ハッチングされている領域は使用中の(データが配置されている)領域を示している。
一番左側の分割前の記録媒体104においては、FAT1およびFAT2における12エントリを用いて、「M2U01000.MPG」のファイルのデータの連鎖情報が保持されており、ディレクトリエントリクラスタの32バイトに、「M2U01000.MPG」のファイルのディレクトリエントリが配置されており、ファイルボディクラスタの7クラスタに、「M2U01000.MPG」のファイルのデータが配置されている。
ここで、ファイル分割処理は、分割元のディレクトリエントリ(DE)の削除処理、分割後の前半のディレクトリエントリの作成処理、分割後の後半のディレクトリエントリの作成処理、分割後の前半のFATの編集処理、および分割後の後半のFATの編集処理などからなる複数の段階の処理で構成されている。
すなわち、ファイル分割処理においては、まず、t1のタイミングに、分割前の記録媒体104から、分割元のファイルのディレクトリエントリの削除処理が行われる。分割元のディレクトリエントリが削除された後の記録媒体104においては、「M2U01000.MPG」のファイルのディレクトリエントリが黒く示されており、「M2U01000.MPG」のファイルのディレクトリエントリが削除されたことを表している。
次に、t2のタイミングに、分割後の前半のファイルのディレクトリエントリの作成処理が行われる。分割後の前半のディレクトリエントリが作成された後の記録媒体104においては、削除された「M2U01000.MPG」のファイルのディレクトリエントリの右に位置する32バイトに、分割後の前半(「M2U02000.MPG」のファイル)のディレクトリエントリが作成されている。この「M2U02000.MPG」のファイルのディレクトリエントリは、1が付された矢印に示されるクラスタ(ファイルボディクラスタの先頭)を先頭クラスタとして示している。
次に、t3のタイミングに、分割後の後半のファイルのディレクトリエントリの作成処理が行われる。分割後の後半のディレクトリエントリが作成された後の記録媒体104においては、t2のタイミングに作成された「M2U02000.MPG」のファイルのディレクトリエントリの右に位置する32バイトに、分割後の後半(「M2U03000.MPG」のファイル)のディレクトリエントリが作成されている。この「M2U03000.MPG」のファイルのディレクトリエントリは、2が付された矢印に示されるクラスタ(ファイルボディクラスタの5クラスタ目)を先頭クラスタとして示している。
次に、t4のタイミングに、分割後の前半のFATの編集処理が実行される。分割後の前半のFATが編集された後の記録媒体104においては、「M2U02000.MPG」のファイルの実データが配置されているファイルボディクラスタの1乃至5番目のクラスタの連鎖情報を保持するFAT1およびFAT2における前半の6FATエントリが編集される。これにより、分割後の前半の「M2U02000.MPG」のファイルが成立する。
次に、t5のタイミングに、分割後の後半のFATの編集処理が実行される。分割後の後半のFATが編集された後、すなわち、ファイルの分割後の記録媒体104(一番右側)においては、「M2U03000.MPG」のファイルの実データが配置されているファイルボディクラスタの6および7番目のクラスタの連鎖情報を保持するFAT1およびFAT2における後半の6FATエントリが編集される。これにより、分割後の後半の「M2U03000.MPG」のファイルが成立する。
同様に、図14を参照して、図12の例の場合の従来のファイル分割処理の流れを説明する。
図14の例においても、図13の例と同様に、左から順に、ファイル分割処理の流れに沿った記録媒体104上の情報の変化が示されている。
一番左側の分割前の記録媒体104においては、FAT1およびFAT2における12エントリを用いて、「M2U01000.MPG」のファイルのデータの連鎖情報が保持されており、ディレクトリエントリクラスタの32バイトに、「M2U01000.MPG」のファイルのディレクトリエントリが配置されており、ファイルボディクラスタの7クラスタに、「M2U01000.MPG」のファイルのデータが配置されている。
図14の例の場合のファイル分割処理においても、まず、t1のタイミングに、分割前の記録媒体104から、分割元のファイルのディレクトリエントリの削除処理が行われる。分割元のディレクトリエントリが削除された後の記録媒体104においては、「M2U01000.MPG」のファイルのディレクトリエントリが黒く示されており、「M2U01000.MPG」のファイルのディレクトリエントリが削除されたことを表している。
次に、t2のタイミングに、分割後の前半のファイルのディレクトリエントリの作成処理が行われる。分割後の前半のディレクトリエントリが作成された後の記録媒体104においては、削除された「M2U01000.MPG」のファイルのディレクトリエントリが配置されていた32バイトに、分割元と同じファイル名が付された、分割後の前半(「M2U01000.MPG」のファイル)のディレクトリエントリが作成されている。この分割後の「M2U01000.MPG」のファイルのディレクトリエントリは、1が付された矢印に示されるクラスタ(ファイルボディクラスタの先頭)を先頭クラスタとして示している。
次に、t3のタイミングに、分割後の後半のファイルのディレクトリエントリの作成処理が行われる。分割後の後半のディレクトリエントリが作成された後の記録媒体104においては、t2のタイミングに作成された「M2U01000.MPG」のファイルのディレクトリエントリの右に位置する32バイトに、分割後の後半(「M2U03000.MPG」のファイル)のディレクトリエントリが作成されている。この「M2U03000.MPG」のファイルのディレクトリエントリは、2が付された矢印に示されるクラスタ(ファイルボディクラスタの5クラスタ目)を先頭クラスタとして示している。
次に、t4のタイミングに、分割後の前半のFATの編集処理が実行される。分割後の前半のFATが編集された後の記録媒体104においては、分割後の「M2U01000.MPG」のファイルの実データが配置されているファイルボディクラスタの1乃至4番目のクラスタの連鎖情報を保持するFAT1およびFAT2における前半の4FATエントリが編集される。これにより、分割後の前半の「M2U01000.MPG」のファイルが成立する。なお、この場合、編集などにより、分割後の「M2U01000.MPG」のファイルの実データ自体が縮小され、ファイルボディクラスタの5番目のクラスタは空き領域となっているので、FAT1およびFAT2も、前半の5および6番目のFATエントリが空き領域となる。
次に、t5のタイミングに、分割後の後半のFATの編集処理が実行される。分割後の後半のFATが編集された後、すなわち、ファイルの分割後の記録媒体104(一番右側)においては、「M2U03000.MPG」のファイルの実データが配置されているファイルボディクラスタの6および7番目のクラスタの連鎖情報を保持するFAT1およびFAT2における後半の6FATエントリが編集される。これにより、分割後の後半の「M2U03000.MPG」のファイルが成立する。
以上のように、ファイル分割処理は、記録済みのディレクトリエントリの情報、およびFATの情報を編集すること、並びに、必要に応じてディレクトリエントリを新規作成することを行うことであり、図14の例のように、ファイルの実データ自体に編集を行わなければ、ファイルボディクラスタに関する編集は一切行われない。
このようなファイル分割処理において、t1乃至t4のいずれかのタイミングに電源遮断が発生してしまった場合、FATファイルシステムとしての3要素のうちの2要素(ディレクトリエントリやFATの情報)などが中途半端な状態となり、すなわち、分割元のファイルに関するディレクトリエントリやFATの情報が消失し、かつ、分割後のファイルに関するディレクトリエントリやFATの情報も不十分な状態になってしまう。一方、t5のタイミングに電源遮断が発生した場合には、分割後の前半となるファイルは成立しているが、分割後の後半となるファイルに関しては不十分な状態になってしまう。
そこで、ファイル分割処理を構成する各処理、具体的には、分割前の処理、分割元のディレクトリエントリの削除処理、前半のディレクトリエントリの作成処理、後半のディレクトリエントリの作成処理、前半のFATの編集処理、および後半のFATの編集処理などの6つの段階の処理がそれぞれ終了する毎に、その旨(すなわち、1つの処理が終了し、6つのうちのある処理段階であること)を不揮発性メモリ33に記録しておくようにする。これにより、電源遮断後の起動後に、中断された部分を把握することができるので、中断された部分から処理を再開できるようになる。
このようなファイル分割処理を実行する場合の図2のファイルシステム102およびデバイスドライバ103は、図15に示される機能ブロックで構成される。
なお、図15の例においては、記録媒体104として、HDDであるメディアAとDVD-R(Digital Versatile Disk Recordable)やCD-R(Compact Disk Recordable)などであるメディアBがドライブ36に装着され、メディアAをマウントした情報とメディアBをマウントした情報が、ファイルシステム102に記憶されており、デバイスドライバ103は、メディアAへのアクセスを制御するデバイスドライバ103−1およびメディアBへのアクセスを制御するデバイスドライバ103−2により構成されている。これらの個々の記録媒体に対応するデバイスドライバは、2つに限らず、ドライブ36に装着されている記録媒体の数だけ備えることができる。
ファイルシステム102は、記録制御部301およびメディア制御部302により構成されている。記録制御部301は、ディレクトリエントリ制御部311、クラスタ制御部312、FAT制御部313、および進捗管理部314により構成されている。また、メディア制御部302は、位置算出部321により構成されている。
ディレクトリエントリ制御部311は、アプリケーション101から、分割元および分割後のファイル名やファイルサイズ情報などの分割指示情報が供給されるとともに、記録媒体104に記録されているファイルの分割が要求された場合、これらの分割指示情報に基づいて、クラスタ制御部312およびFAT制御部313に、分割が要求された分割元のファイルのディレクトリエントリや、分割後のファイルのディレクトリエントリを配置させるクラスタ、分割元のファイルの実データが配置されたクラスタを検索させることで、ファイル分割処理における編集予定情報を作成する。
編集予定情報とは、例えば、分割元および分割後のディレクトリエントリの情報や、ディレクトリエントリが配置されるセクタの開始アドレス情報であり、ファイル分割処理に必要な、分割元および分割後のファイルの管理情報である。
ディレクトリエントリ制御部311は、作成した編集予定情報に基づいて、クラスタ制御部312およびFAT制御部313を制御し、ファイル分割処理を実行させる。すなわち、ディレクトリエントリ制御部311は、クラスタ制御部312を制御し、分割元のファイルのディレクトリエントリが配置されるクラスタから、その情報を削除させ、FAT制御部313により検索されたクラスタに、分割後のファイルのディレクトリエントリを配置させる。また、ディレクトリエントリ制御部311は、作成した編集予定情報に基づいて、FAT制御部313を制御し、記録媒体104におけるFATのエントリを編集させる。
なお、ディレクトリエントリ制御部311は、複数の処理段階で構成されるファイル分割処理の進捗状況を監視しており、進捗管理部314を制御し、ファイル分割処理の進捗状況(すなわち、現在の処理段階を示す情報)を、編集予定情報のうち、現在の処理段階以降に必要なファイルの管理情報に対応付けて、不揮発性メモリ33にバックアップ(記憶)させている。
ディレクトリエントリ制御部311は、電源が入り、記録再生装置1が起動し、CPU51によりファイルシステム102が実行されると、進捗管理部314に、ファイル分割処理の進捗状況などを読み出させ、読み出されたファイル分割処理の進捗状況に応じて、また、その際に必要なファイルの管理情報に基づいて、ファイル分割処理を再開させる。
クラスタ制御部312は、クラスタ単位で、分割が要求されたファイルのディレクトリエントリを検索し、検索されたディレクトリエントリの情報をディレクトリエントリ制御部311に供給する。また、クラスタ制御部312は、ディレクトリエントリ制御部311からのクラスタ番号とともに、そこに配置させるディレクトリエントリのデータを位置算出部321に供給する。
FAT制御部313は、デバイスドライバ103を制御し、記録媒体104のFAT情報を読み出させ、読み出されたFATエントリを確認することで、ディスクエントリを配置させるクラスタや、ファイルの実データが配置されているクラスタを検索する。また、FAT制御部313は、ディレクトリエントリ制御部311の制御のもと、デバイスドライバ103を制御し、記録媒体104のFAT情報を編集する。
進捗管理部314は、ディレクトリエントリ制御部311の制御のもと、ファイル分割処理が現在どの処理段階であるかを示す情報と、その情報が示す処理段階に必要なファイルの管理情報を対応付けて不揮発性メモリ33にバックアップ(記憶)させる。
不揮発性メモリ33には、複数の処理段階で構成されるファイル分割処理が現在どの処理段階であるかを示す情報と、その情報が示す処理段階に必要なファイルの管理情報(すなわち、分割元および分割後のディレクトリエントリの情報や、ディレクトリエントリが配置されるセクタの開始アドレス情報)が対応付けて記憶されている。
位置算出部321は、セクタ単位で、分割が要求されたファイルのディレクトリエントリを検索し、検索されたディレクトリエントリの情報をクラスタ制御部312に供給する。また、位置算出部321は、クラスタ制御部312からのクラスタ番号をLBAに変換し、セクタ単位で、ディレクトリエントリのデータをデバイスドライバ103に供給する。
デバイスドライバ103−1は、ドライブ36を制御し、メディアAに対するデータの書き込みや、メディアAからのデータの読み出しを行う。デバイスドライバ103−2は、ドライブ36を制御し、メディアBに対するデータの書き込みや、メディアBからのデータの読み出しを行う。
RAM31は、記録媒体104に記録されるファイルの実データが蓄積されたり、記録媒体104から読み出されたデータが蓄積されるなど、アプリケーション101、ファイルシステム102、およびデバイスドライバ103のワークメモリとして機能する。
次に、図16および図17を参照して、本発明のファイル分割処理におけるバックアップのタイミングと、その内容について説明する。図16の例においては、図11の例の場合のファイル分割処理における各処理351乃至357(分割完了357を含む)が時間tの経過に沿って示されている。なお、ファイル分割処理における各処理自体は、図13および図14を参照して上述した従来のファイル分割処理と、基本的に略同様の処理である。
すなわち、ファイル分割処理においては、まず、分割前の処理351として、ファイル分割処理における編集予定情報の作成処理が実行される。分割前の処理351が終了したタイミングt0の後、分割元のディレクトリエントリの削除処理352が実行され、分割元のディレクトリエントリの削除処理352が終了したタイミングt1の後、分割後の前半のディレクトリエントリの作成処理353が実行され、分割後の前半のディレクトリエントリの作成処理353が終了したタイミングt2の後、分割後の後半のディレクトリエントリの作成処理354が実行される。また、分割後の後半のディレクトリエントリの作成処理354が終了したタイミングt3の後、分割後の前半のFATの編集処理355が実行され、分割後の前半のFATの編集処理355が終了したタイミングt4の後、分割後の後半のFATの編集処理356が実行され、分割後の後半のFATの編集処理356が終了したタイミングt5の後、分割完了357となる。
図17の例においては、不揮発性メモリ33にバックアップされる2バイトからなる各処理段階を示す情報Tと、516乃至1,548バイトからなるバックアップ内容が示されている。
情報T0は、分割前の処理351が終了したt0のタイミングに不揮発性メモリ33に記憶される、現在、分割元のディレクトリエントリの削除処理352を行う処理段階(=1)であることを示す情報であり、このとき、情報T0が示す処理段階に対応付けて記憶されているバックアップ内容は、分割元のファイルの管理情報、分割後の前半となるファイルの管理情報、および分割後の後半となるファイルの管理情報である。
具体的には、分割元のファイルの管理情報は、分割元のファイルのディレクトリエントリを含む1セクタの情報と、そのセクタの先頭アドレス(LBA)であり、分割後の前半となるファイルの管理情報は、分割後の前半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタの先頭アドレス(LBA)であり、分割後の後半となるファイルの管理情報は、分割後の後半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタの先頭アドレス(LBA)である。なお、これらのディレクトリエントリを含む1セクタの情報は、それぞれ512バイトからなり、セクタの先頭アドレスは、4バイトで構成されている。
これらの情報は、換言するに、編集予定情報のうち、情報T0が示す処理段階以降で必要な管理情報である。すなわち、これらの管理情報があれば、ディレクトリエントリの更新(削除、作成)やFAT情報の編集を行うことが可能になる。
情報T1は、分割元のディレクトリエントリの削除処理352が終了したt1のタイミングに不揮発性メモリ33に記憶される、現在、分割後の前半のディレクトリエントリの作成処理353を行う処理段階(=2)であることを示す情報であり、このとき、情報T1が示す処理段階に対応付けて記憶されているバックアップ内容は、分割後の前半となるファイルの管理情報、および分割後の後半となるファイルの管理情報である。
情報T2は、分割後の前半のディレクトリエントリの作成処理353が終了したt2のタイミングに不揮発性メモリ33に記憶される、現在、分割後の後半のディレクトリエントリの作成処理354を行う処理段階(=3)であることを示す情報であり、このとき、情報T2が示す処理段階に対応付けて記憶されるバックアップ内容は、分割後の前半となるファイルの管理情報、および分割後の後半となるファイルの管理情報である。
情報T3は、分割後の後半のディレクトリエントリの作成処理354が終了したt3のタイミングに不揮発性メモリ33に記憶される、現在、分割後の前半のFATの編集処理355を行う処理段階(=4)であることを示す情報であり、このとき、情報T3が示す処理段階に対応付けて記憶されるバックアップ内容は、分割後の前半となるファイルの管理情報、および分割後の後半となるファイルの管理情報である。
情報T4は、分割後の前半のFATの編集処理355が終了したt4のタイミングに不揮発性メモリ33に記憶される、現在、分割後の後半のFATの編集処理356を行う処理段階(=5)であることを示す情報であり、このとき、情報T4が示す処理段階に対応付けて記憶されるバックアップ内容は、分割後の後半となるファイルの管理情報である。
情報T5は、分割後の後半のFATの編集処理356が終了したt5のタイミングに不揮発性メモリ33に記憶される、分割完了357した処理段階(=6)であることを示す情報であり、このとき、情報T5が示す処理段階に対応付けて記憶されるバックアップ内容はない。すなわち、分割後の後半のFATの編集処理356が終了したt5のタイミングには、分割完了357となるので、バックアップ内容としての管理情報は、もう必要なく、処理段階が6であることを示す情報T5のみが不揮発性メモリ33に記憶される。
以上のように、不揮発性メモリ33においては、ファイル分割処理における各処理段階の終了毎に記憶される現在の処理段階を示す情報Tと対応付けられて管理情報が記憶されている。この管理情報は、情報Tとともに、ファイル分割処理における各処理段階の終了毎に記憶することもできるが、図18を参照して説明するように、タイミングt0において記憶された情報T0が示す処理段階以降で必要な管理情報の中から、情報Tを更新する毎に、不必要となったものを削除していくことも可能である。
図18は、管理情報が記憶される不揮発性メモリ33の例が示されている。図18の例において、矢印は記録される順番を示しており、不揮発性メモリ33には、上から順に情報が格納されている。
例えば、図16におけるt0のタイミングにおいては、2バイトの情報T(この場合、T0)が記憶され、その後、分割後の後半となるファイルの管理情報である、分割後の後半となるディレクトリエントリを含む1セクタが512バイトで記憶され、そのセクタのLBAが4バイトで記憶される。その後、分割後の前半となるファイルの管理情報である、分割後の前半となるディレクトリエントリを含む1セクタが512バイトで記憶され、そのセクタのLBAが4バイトで記憶され、分割元のファイルの管理情報である、分割元のディレクトリエントリを含む1セクタが512バイトで記憶され、そのセクタのLBAが4バイトで記憶される。
その後、t1のタイミングにおいては、情報T0が情報T1に更新されるとともに、不揮発性メモリ33に最後に記憶された分割元のファイルの管理情報である、分割元のディレクトリエントリを含む1セクタと、そのセクタのLBAが削除される。
t2のタイミングにおいては、情報T1が情報T2に更新され、t3のタイミングにおいては、情報T2が情報T3に更新される。
次に、t4のタイミングにおいて、情報T3が情報T4に更新され、不揮発性メモリ33に記憶された分割後の前半のファイルの管理情報である、分割後の前半のディレクトリエントリを含む1セクタと、そのセクタのLBAが削除される。
そして、t5のタイミングにおいて、情報T4が情報T5に更新され、不揮発性メモリ33に記憶された分割後の後半のファイルの管理情報である、分割後の後半のディレクトリエントリを含む1セクタと、そのセクタのLBAが削除される。すなわち、情報T5が示す処理段階では、分割が完了しており、どのファイルの管理情報も必要ないため、情報T5のみが記憶されている。
以上のように、前の処理段階が終了する毎に、現在の処理段階以降に必要な管理情報を記憶するのではなく、前の処理段階が終了する毎に、現在の処理段階を示す情報Tが記憶されるとともに、最初の処理段階において必要として記憶された管理情報のうち、不必要なものを削除し、必要のあるものだけを情報Tに対応付けることで、不揮発性メモリ33への書き込みを効率的に行うことができる。
なお、以上においては、現在の処理段階以降に必要な管理情報を不揮発性メモリ33に記憶する例を説明したが、管理情報の記憶(バックアップ)先の記録媒体としては、不揮発性メモリ33に限定されない。具体的には、例えば、図3や図4におけるMBRに続き、PBRの直前に配置される「空き領域」なども、管理情報の記憶先として利用することができる。
次に、図19のフローチャートを参照して、メディアAに記録されているファイルを分割するファイル分割処理について説明する。すなわち、図19の例においては、記録再生装置1のドライブ36に装着されている記録媒体104が、HDDであるメディアAであり、メディアAに記録されている「M2U01000.MPG」のファイル(分割元のファイル)が、図11の例のように、「M2U02000.MPG」のファイル(分割後の前半のファイル)と「M2U03000.MPG」のファイル(分割後の後半のファイル)に、ファイル分割される場合を例に説明する。
例えば、ファイルの編集処理などを実行するアプリケーション101から、分割元および分割後のファイル名やファイルサイズ情報などの分割指示情報が供給されるとともに、メディアAに記録されているファイルの分割が要求された場合、ディレクトリエントリ制御部311は、ステップS11において、分割前の処理として、ファイル分割処理における編集予定情報を作成する処理を実行する。
すなわち、ディレクトリエントリ制御部311は、ステップS11において、これらの分割指示情報に基づいて、クラスタ制御部312およびFAT制御部313に、分割が要求された分割元のファイルのディレクトリエントリや、分割後のファイルのディレクトリエントリを配置させるクラスタ、分割元のファイルの実データが配置されたクラスタを検索させることで、ファイル分割処理における編集予定情報を作成する処理を実行する。
分割前の処理351が終了されると、ステップS12において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、現在、分割元のディレクトリエントリの削除処理352を行う処理段階(=1)であることを示す情報T0とともに、作成された編集予定情報のうち、分割元のファイルの管理情報、分割後の前半となるファイルの管理情報、および分割後の後半となるファイルの管理情報を、不揮発性メモリ33にバックアップ(記憶)させる。
具体的には、上述したように、情報T0に対応付けられて、分割元のファイルの管理情報である、分割元のディレクトリエントリを含む1セクタの情報とそのセクタのLAB、分割後の前半となるファイルの管理情報である、分割後の前半となるディレクトリエントリを含む1セクタの情報とそのセクタのLAB、および、分割後の後半となるファイルの管理情報である、分割後の後半となるディレクトリエントリを含む1セクタの情報とそのセクタのLABが不揮発性メモリ33に記憶される。
ステップS13において、ディレクトリエントリ制御部311は、編集予定情報に基づいて、クラスタ制御部312を制御し、ステップS11においてクラスタ制御部312により検索された分割元のファイルのディレクトリエントリが配置されるクラスタから、そのディレクトリエントリを削除させる。
すなわち、ディレクトリエントリ制御部311からクラスタ番号が供給され、ディレクトリエントリの削除が要求されるので、クラスタ制御部312は、位置算出部321に、ディレクトリエントリ制御部311からのクラスタ番号を供給するとともに、ディレクトリエントリの削除を要求する。位置算出部321は、クラスタ制御部312からのクラスタ番号をLBAに変換し、セクタ単位で、ディレクトリエントリの削除を、デバイスドライバ103−1に要求する。デバイスドライバ103−1は、ドライバ36を制御し、メディアAにセクタ単位でアクセスし、ディレクトリエントリを削除させ、ドライブ36から供給された応答に基づいて、セクタのアクセス要求に対する応答をファイルシステム102に出力する。
分割元のディレクトリエントリの削除処理352が終了されると、ステップS14において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、現在、分割後の前半のディレクトリエントリの作成処理353を行う処理段階(=2)であることを示す情報T1を不揮発性メモリ33にバックアップさせるとともに、不揮発性メモリ33から、不要となった分割元のファイルの管理情報を削除させる。
これにより、不揮発性メモリ33に、情報T1に対応付けられて記憶されている情報は、分割後の前半となるファイルの管理情報である、分割後の前半となるディレクトリエントリを含む1セクタの情報とそのセクタのLAB、および分割後の後半となるファイルの管理情報である、分割後の後半となるディレクトリエントリを含む1セクタの情報とそのセクタのLABとなる。
ステップS15において、ディレクトリエントリ制御部311は、編集予定情報に基づいて、クラスタ制御部312を制御し、ステップS11においてFAT制御部313により検索されたクラスタに、分割後の前半のファイルのディレクトリエントリを作成(配置)させる。
すなわち、ディレクトリエントリ制御部311からクラスタ番号と、分割後の前半のディレクトリエントリのデータが供給されるので、クラスタ制御部312は、位置算出部321に、ディレクトリエントリ制御部311からのクラスタ番号と、そこに配置させる分割後の前半のディレクトリエントリのデータを供給する。位置算出部321は、クラスタ制御部312からのクラスタ番号をLBAに変換し、セクタ単位で、ディレクトリエントリのデータをデバイスドライバ103−1に供給する。デバイスドライバ103−1は、ドライバ36を制御し、メディアAにセクタ単位でアクセスし、ディレクトリエントリのデータを書き込ませ、ドライブ36から供給された応答に基づいて、セクタのアクセス要求に対する応答をファイルシステム102に出力する。
分割後の前半のディレクトリエントリの作成処理353が終了されると、ステップS16において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、現在、分割後の後半のディレクトリエントリの作成処理354を行う処理段階(=3)であることを示す情報T2を不揮発性メモリ33にバックアップさせる。
ステップS17において、ディレクトリエントリ制御部311は、編集予定情報に基づいて、クラスタ制御部312を制御し、ステップS11においてFAT制御部313により検索されたクラスタに、分割後の後半のファイルのディレクトリエントリを作成(配置)させる。なお、ステップS17の処理の詳細は、ステップS15で上述した処理と基本的に同様な処理であり、その説明は繰り返しになるので省略する。
分割後の後半のディレクトリエントリの作成処理354が終了されると、ステップS18において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、現在、分割後の前半のFATの編集処理355を行う処理段階(=4)であることを示す情報T3を不揮発性メモリ33にバックアップさせる。
ステップS19において、ディレクトリエントリ制御部311は、編集予定情報に基づいて、FAT制御部313を制御し、メディアAにおける分割後の前半のファイルのFAT情報を編集させる。
すなわち、ディレクトリエントリ制御部311から、分割後の前半のファイルの先頭クラスタとファイルサイズが供給されるので、FAT制御部313は、それらに基づいて、デバイスドライバ103−1を制御し、メディアAにおける分割後の前半のファイルのFAT情報を編集させる。デバイスドライバ103−1は、ドライバ36を制御し、メディアAにおける分割後の前半のファイルのFAT情報を更新し、ドライブ36から供給された応答に基づいて、セクタのアクセス要求に対する応答をファイルシステム102に出力する。
分割後の前半のFATの編集処理355が終了されると、ステップS20において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、現在、分割後の後半のFATの編集処理356を行う処理段階(=5)であることを示す情報T4を不揮発性メモリ33にバックアップさせるとともに、不揮発性メモリ33から、不要となった分割後の前半のファイルの管理情報を削除させる。
これにより、不揮発性メモリ33に、情報T4に対応付けられて記憶されている情報は、分割後の後半となるファイルの管理情報である、分割後の後半となるディレクトリエントリを含む1セクタの情報とそのセクタのLABのみとなる。
ステップS21において、ディレクトリエントリ制御部311は、編集予定情報に基づいて、FAT制御部313を制御し、メディアAにおける分割後の後半のファイルのFAT情報を編集させる。なお、ステップS21の処理の詳細は、ステップS19で上述した処理と基本的に同様な処理であり、その説明は繰り返しになるので省略する。
分割後の後半のFATの編集処理356が終了したので、ステップS22において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、分割完了357した処理段階(=6)であることを示す情報T5を不揮発性メモリ33にバックアップさせるとともに、不揮発性メモリ33から、不要となった分割後の後半のファイルの管理情報を削除させる。
これにより、不揮発性メモリ33に記憶されている情報は情報T5のみとなり、ファイル分割処理は終了される。
以上のようにして、不揮発性メモリ33には、ファイル分割処理における現在の処理段階を示す情報Tと、情報Tが示す処理段階以降に必要なファイルの管理情報が記憶される。したがって、不揮発性メモリ33に記憶される情報Tが、情報T5になってない場合、ファイル分割処理の途中で電源遮断などが発生し、ファイル分割処理が中断されたものとみなすことができる。
次に、図20のフローチャートを参照して、記録再生装置1の起動時における処理を説明する。
記録再生装置1に電源が入り、記録再生装置1が起動し、CPU51によりファイルシステム102が実行される。ディレクトリエントリ制御部311は、ステップS51において、進捗管理部314を制御し、不揮発性メモリ33にバックアップされた情報Tを読み出させ、情報Tを確認する。
ステップS52において、ディレクトリエントリ制御部311は、進捗管理部314により読み出された情報Tが情報T0であるか否かを判定し、読み出された情報Tが情報T0であると判定した場合、処理は、ステップS53に進む。
ステップS53において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、不揮発性メモリ33に情報T0に対応付けてバックアップされているファイルの管理情報を読み出させ、読み出されたファイルの管理情報に基づいて、情報T0が示す、分割元のディレクトリエントリの削除処理352を行う処理段階(=1)からファイル分割処理を再開する。
すなわち、不揮発性メモリ33から、情報T0が示す処理段階以降に必要なファイルの管理情報である、分割元のファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBA、分割後の前半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBA、分割後の後半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBAが読み出されるので、ディレクトリエントリ制御部311は、読み出された情報に基づいて、「分割元となるディレクトリエントリを削除する」処理(すなわち、図19のステップS13)からファイル分割処理を再開することができる。再開後のファイル分割処理は、図19を参照して上述したファイル分割処理と同様であり、繰り返しとなるので、その説明を省略する。
ステップS52において、読み出された情報Tが情報T0ではないと判定された場合、ステップS54において、ディレクトリエントリ制御部311は、進捗管理部314により読み出された情報Tが情報T1であるか否かを判定し、読み出された情報Tが情報T1であると判定した場合、処理は、ステップS55に進む。
ステップS55において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、不揮発性メモリ33に情報T1に対応付けてバックアップされているファイルの管理情報を読み出させ、読み出されたファイルの管理情報に基づいて、情報T1が示す、分割後の前半のディレクトリエントリの作成処理353を行う処理段階(=2)からファイル分割処理を再開する。
すなわち、不揮発性メモリ33から、情報T1が示す処理段階以降に必要なファイルの管理情報である、分割後の前半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBA、分割後の後半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBAが読み出されるので、ディレクトリエントリ制御部311は、読み出された情報に基づいて、「前半のディレクトリエントリを作成する」処理(すなわち、図19のステップS15)からファイル分割処理を再開することができる。再開後のファイル分割処理は、図19を参照して上述したファイル分割処理と同様であり、繰り返しとなるので、その説明を省略する。
ステップS54において、読み出された情報Tが情報T1ではないと判定された場合、ステップS56において、ディレクトリエントリ制御部311は、進捗管理部314により読み出された情報Tが情報T2であるか否かを判定し、読み出された情報Tが情報T2であると判定した場合、処理は、ステップS57に進む。
ステップS57において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、不揮発性メモリ33に情報T2に対応付けてバックアップされているファイルの管理情報を読み出させ、読み出されたファイルの管理情報に基づいて、情報T2が示す、分割後の後半のディレクトリエントリの作成処理354を行う処理段階(=3)からファイル分割処理を再開する。
すなわち、不揮発性メモリ33から、情報T2が示す処理段階以降に必要なファイルの管理情報である、分割後の前半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBA、分割後の後半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBAが読み出されるので、ディレクトリエントリ制御部311は、読み出された情報に基づいて、「後半のディレクトリエントリを作成する」処理(すなわち、図19のステップS17)からファイル分割処理を再開することができる。再開後のファイル分割処理は、図19を参照して上述したファイル分割処理と同様であり、繰り返しとなるので、その説明を省略する。
ステップS56において、読み出された情報Tが情報T2ではないと判定された場合、ステップS58において、ディレクトリエントリ制御部311は、進捗管理部314により読み出された情報Tが情報T3であるか否かを判定し、読み出された情報Tが情報T3であると判定した場合、処理は、ステップS59に進む。
ステップS59において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、不揮発性メモリ33に情報T3に対応付けてバックアップされているファイルの管理情報を読み出させ、読み出されたファイルの管理情報に基づいて、情報T3が示す、分割後の前半のFATの編集処理355を行う処理段階(=4)からファイル分割処理を再開する。
すなわち、不揮発性メモリ33から、情報T3が示す処理段階以降に必要なファイルの管理情報である、分割後の前半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBA、分割後の後半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBAが読み出されるので、ディレクトリエントリ制御部311は、読み出された情報に基づいて、「前半のFATを編集する」処理(すなわち、図19のステップS19)からファイル分割処理を再開することができる。再開後のファイル分割処理は、図19を参照して上述したファイル分割処理と同様であり、繰り返しとなるので、その説明を省略する。
ステップS58において、読み出された情報Tが情報T3ではないと判定された場合、ステップS60において、ディレクトリエントリ制御部311は、進捗管理部314により読み出された情報Tが情報T4であるか否かを判定し、読み出された情報Tが情報T4であると判定した場合、処理は、ステップS61に進む。
ステップS61において、ディレクトリエントリ制御部311は、進捗管理部314を制御し、不揮発性メモリ33に情報T4に対応付けてバックアップされているファイルの管理情報を読み出させ、読み出されたファイルの管理情報に基づいて、情報T4が示す、分割後の後半のFATの編集処理356を行う処理段階(=5)からファイル分割処理を再開する。
すなわち、不揮発性メモリ33から、情報T4が示す処理段階以降に必要なファイルの管理情報である、分割後の後半となるファイルのディレクトリエントリを含む1セクタの情報と、そのセクタのLBAが読み出されるので、ディレクトリエントリ制御部311は、読み出された情報に基づいて、「後半のFATを編集する」処理(すなわち、図19のステップS21)からファイル分割処理を再開することができる。再開後のファイル分割処理は、図19を参照して上述したファイル分割処理と同様であり、繰り返しとなるので、その説明を省略する。
ステップS60において、読み出された情報Tが情報T4ではないと判定された場合、すなわち、読み出された情報Tが、分割完了357した処理段階(=6)を示す情報T5であり、ファイル分割処理が分割完了357の状態となっているので、ファイル分割処理を再開させる必要はなく、起動時における処理は終了される。
以上のように、ファイル分割処理の各処理段階の終了毎に、その進捗状況(どの処理段階であるか)を示す情報を不揮発性メモリに記憶しておくようにしたので、仮にファイル分割処理の途中に電源遮断などが発生したとしても、次回の装置の起動時には、不揮発性メモリに記憶されたファイル分割処理の処理段階を示す情報を確認するだけで、どの処理段階でファイル分割処理が中断されたかを判別することができる。
さらに、ファイル分割処理の処理段階を示す情報に対応付けて、その処理段階以降に必要な管理情報も不揮発性メモリに記憶しておくようにしたので、次回の装置の起動時に、判別された処理段階から、ファイル分割処理を復帰、再開させることができる。
これにより、分割元のファイルや分割後のファイルが、処理途中の電源遮断により消失してしまうというリスクを回避することができる。すなわち、処理途中の電源遮断によるファイル消失を回避することができる。
なお、上記説明においては、ファイル分割処理が、各処理351乃至357の6つの処理段階で構成される例を説明したが、処理段階の数や内容はこれに限定されない。
また、上記説明においては、HDDであるメディアAを用いて説明したが、これに限定されることなく、本発明は、ランダムアクセス可能な記録媒体全般と、その制御に用いる各種デバイスに対して適用可能である。また、本発明は、着脱可能な記録媒体に対しても、本体内蔵の記録媒体と同様に、適用可能である。また、ファイルシステムに関しても、UDF(Universal Disk Format)などであってもよく、FAT32またはFAT16に限定されるものではない。
さらに、図9を参照して上述した階層構造およびファイルの命名規則は、DCF(Design rule for Camera File system)に則ったものであるが、本発明は、DCFに限らず適用可能である。
また、上記説明においては、1つのファイルを2つのファイルに分割する例を説明したが、分割後のファイル数は、2つに限定されず、本発明は、1つのファイルを3つ以上の複数ファイルに分割する場合にも適用することができる。
以上においては、本発明を記録再生装置に適用した例について説明したが、本発明を汎用のパーソナルコンピュータに適用することも可能である。図21は、パーソナルコンピュータ601の構成例を示すブロック図である。なお、本発明が適用される記録媒体に記録する記録装置の実施の形態は、図1に示される記録再生装置1および図21に示されるパーソナルコンピュータ601に限定されず、所定のファイルシステムを利用して、記録媒体の記録および読み出しの制御が可能な記録装置であれば構わない。具体的には、例えば、PDA(Personal Digital Assistants)、携帯電話機、または、デジタル電化製品(例えば、テレビジョン受像機やハードディスク録画装置)等様々な実施の形態が可能である。
図21の例において、CPU(Central Processing Unit)611は、ROM(Read Only Memory)612、または記憶部618に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)613には、CPU611が実行するプログラムやデータなどが適宜記憶される。これらのCPU611、ROM612、およびRAM613は、バス614により相互に接続されている。
CPU611にはまた、バス614を介して入出力インタフェース615が接続されている。入出力インタフェース615には、ユーザが操作して、テキストを入力するキーボード631、ポインティングデバイスの一例であるマウス632、画像を入力するスキャナ633、音声を入力するマイクロフォン634等の入力デバイスで構成される入力部616、ディスプレイなどの表示部641、音声を出力するスピーカ642、紙に文字または画像を印刷して、いわゆるハードコピーを出力するプリンタ643、紙に文字または画像を描画するプロッタ644等の出力デバイスで構成される出力部617が接続されている。
さらに、入出力インタフェース615には、プログラムや各種データを記録するHDD619、およびLAN(Local Area Network)またはインターネットを含むネットワークを介してデータを通信する、USB(Universal Serial Bus)インタフェース651,IEEE(Institute of Electrical and Electronic Engineers)1394インタフェース652、ブルートゥースインタフェース653,IEEE802.11インタフェース654などで構成される通信部618が接続されている。
USBインタフェース651は、USBの規格に基づき、ケーブルを介して(有線通信で)、他の機器と通信する。IEEE1394インタフェース652は、IEEE1394の規格に基づき、ケーブルを介して、他の機器と通信する。同様に、ブルートゥースインタフェース653は、ブルートゥースの規格に基づき、他の機器と無線通信する。IEEE802.11インタフェース654は、IEEE802.11a,IEEE802.11b、またはIEEE802.11gなどの規格に基づき、他の機器と無線通信する。
入出力インタフェース615にはまた、必要に応じてドライブ620が接続され、磁気ディスク661、光ディスク662、光磁気ディスク663、或いは半導体メモリ664などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じてHDD619にインストールされる。
ドライブ620は、CPU611の制御に基づいて、装着されている磁気ディスク661、光ディスク662、光磁気ディスク663、或いは半導体メモリ664などの記録媒体に記録されているデータを読み出し、CPU611に供給する。また、CPU611より供給されたデータを、ドライブ620に装着される磁気ディスク661、光ディスク662、光磁気ディスク663、或いは半導体メモリ664などに記憶させる。
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディアなどからなる記録媒体からインストールされる。
この記録媒体は、図21に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)661、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)662、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)663、もしくは半導体メモリ664などよりなるリムーバブルメディアにより構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM612や、HDD619に含まれるハードディスクなどで構成されるものも含む。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
1 記録再生装置, 16 ディスプレイ, 31 RAM, 33 不揮発性メモリ, 36 ドライブ, 51 CPU, 101 アプリケーション, 102 ファイルシステム, 103 デバイスドライバ, 104 記録媒体, 301 記録制御部, 302 メディア制御部, 311 ディスクエントリ制御部, 312 クラスタ制御部, 313 FAT制御部, 314 進捗管理部, 321 位置算出部
Claims (5)
- 記録媒体に記録されている分割元のファイルを複数ファイルに分割するファイル分割処理を行う情報処理装置において、
複数の処理段階で構成される前記ファイル分割処理を実行する分割処理手段と、
前記分割処理手段による前記ファイル分割処理を構成する各処理段階の終了毎に、現在の処理段階を、前記現在の処理段階以降に必要なファイルの管理情報に対応付けて記憶手段に記憶させる記憶制御手段と
を備える情報処理装置。 - 前記分割処理手段は、電源起動時に、前記記憶手段に記憶されている前記現在の処理段階に基づき、前記現在の処理段階以降に必要なファイル管理情報を用いて、前記ファイル分割処理を再開する
請求項1に記載の記録装置。 - 前記現在の処理段階以降に必要なファイルの管理情報は、分割元のファイル、および分割後の複数のファイルのうち、少なくとも1つのファイルの属性情報と、前記少なくとも1つのファイルの属性情報を格納する領域の開始アドレスである
請求項1に記載の記録装置。 - 記録媒体に記録されている分割元のファイルを複数ファイルに分割するファイル分割処理を行う情報処理装置の情報処理方法において、
複数の処理段階で構成される前記ファイル分割処理を実行し、
前記ファイル分割処理を構成する各処理段階の終了毎に、現在の処理段階を、前記現在の処理段階に必要なファイルの管理情報に対応付けて記憶手段に記憶させるステップ
を含む情報処理方法。 - 記録媒体に記録されている分割元のファイルを複数ファイルに分割するファイル分割処理をコンピュータに実行させるプログラムであって、
複数の処理段階で構成される前記ファイル分割処理を実行し、
前記ファイル分割処理を構成する各処理段階の終了毎に、現在の処理段階を、前記現在の処理段階に必要なファイルの管理情報に対応付けて記憶手段に記憶させるステップ
を含む処理を実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006180100A JP2008009754A (ja) | 2006-06-29 | 2006-06-29 | 情報処理装置および方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006180100A JP2008009754A (ja) | 2006-06-29 | 2006-06-29 | 情報処理装置および方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008009754A true JP2008009754A (ja) | 2008-01-17 |
Family
ID=39067901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006180100A Withdrawn JP2008009754A (ja) | 2006-06-29 | 2006-06-29 | 情報処理装置および方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008009754A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010128605A (ja) * | 2008-11-25 | 2010-06-10 | Olympus Imaging Corp | 情報記憶装置、データ記憶方法、およびプログラム |
-
2006
- 2006-06-29 JP JP2006180100A patent/JP2008009754A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010128605A (ja) * | 2008-11-25 | 2010-06-10 | Olympus Imaging Corp | 情報記憶装置、データ記憶方法、およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007108951A (ja) | データ管理装置および記録媒体の管理方法 | |
KR20020079972A (ko) | 파일관리방법 | |
JP2008204298A (ja) | 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム | |
JP2007233638A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
US20050259542A1 (en) | Reproduction device and method, recording medium, and program | |
JP5053945B2 (ja) | 記録媒体初期化方法及び記録媒体初期化装置 | |
JP2008009754A (ja) | 情報処理装置および方法、並びにプログラム | |
JP2007108853A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP4577050B2 (ja) | 記録装置および方法、並びにプログラム | |
JP2007059004A (ja) | 情報処理装置および方法、プログラム並びに記録媒体 | |
JP4668934B2 (ja) | 録画再生装置、および、その起動制御方法 | |
US7424573B2 (en) | Information processing apparatus, method, and program for formatting multiple recording media integrated as one | |
JP4183660B2 (ja) | ファイル管理方法及び装置 | |
JP2005301885A (ja) | データ記憶媒体へのアクセス方法,情報処理装置,データ記憶媒体へのアクセスプログラム | |
JP2006178633A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2006155461A (ja) | 情報処理装置、情報処理方法、並びにプログラム | |
JP3607279B2 (ja) | ファイル管理方法及び装置 | |
JP4206872B2 (ja) | 情報編集装置、撮像装置および情報編集方法 | |
JP4318040B2 (ja) | 情報編集装置、撮像装置および情報編集方法 | |
JP4356011B2 (ja) | 記録装置および方法、撮像装置、記録媒体、並びにプログラム | |
JP2006164017A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2005339628A (ja) | 記録装置および方法、読み出し装置および方法、記録媒体、並びにプログラム | |
JP2005332426A (ja) | 記録装置および方法、読み出し装置および方法、記録媒体、並びにプログラム | |
JP2007264870A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2006178632A (ja) | 情報処理装置、情報処理方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090901 |