(57)【要約】【課題】データの記録中に電源が切断される場合において、データを管理する管理情報の破壊を抑制する。【解決手段】初期化部７１は、ファイル単位で位置データを記録するデータ領域と、位置データを管理するFATエントリを記録するFAT領域とを有するハードディスクに設けられた位置ファイルに記録される位置データのサイズとして想定される最大のサイズ以上のサイズの空のファイルを、位置データの位置ファイルとして生成する。記録処理部７２は、その位置ファイルに位置データを記録させる。本発明は、例えば、データを記録する記録装置に適用することができる。【選択図】図３
2008052767.tif 000002
【特許請求の範囲】
【請求項１】
ファイル単位でデータを記録するデータ領域と、前記データを管理する管理情報を記録する管理領域とを有する記録媒体の前記データ領域に設けられたファイルに前記データを記録する記録装置において、
前記ファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズの空のファイルを、前記データのファイルとして生成する生成手段と、
生成された前記ファイルに前記データを記録させる記録処理手段と
を備える記録装置。
【請求項２】
前記ファイルに記録されたデータのサイズを算出する算出手段と、
前記ファイルのサイズを、前記算出手段により算出されたサイズに修正する修正手段と
をさらに備える
請求項１に記載の記録装置。
【請求項３】
前記データの記録中に電源が中断されたかどうかを判定する判定手段
をさらに備え、
前記記録手段は、前記ファイルの終端を表す情報である終端情報を、前記データの終端に記録し、
前記算出手段は、前記判定手段により前記データの記録中に電源が中断されたと判定された場合、前記終端情報に基づいて、前記ファイルに記録されたデータのサイズを算出する
請求項２に記載の記録装置。
【請求項４】
前記データの記録中に電源が中断されたかどうかを判定する判定手段
をさらに備え、
前記算出手段は、前記判定手段により前記データの記録中に電源が中断されたと判定された場合、前記データのチェックサムに基づいて、前記ファイルに記録されたデータのサイズを算出する
請求項２に記載の記録装置。
【請求項５】
ファイル単位でデータを記録するデータ領域と、前記データを管理する管理情報を記録する管理領域とを有する記録媒体の前記データ領域に設けられたファイルに前記データを記録する記録装置の記録方法において、
前記ファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズの空のファイルを、前記データのファイルとして生成し、
生成された前記ファイルに前記データを記録させる
ステップを含む記録方法。
【請求項６】
ファイル単位でデータを記録するデータ領域と、前記データを管理する管理情報を記録する管理領域とを有する記録媒体の前記データ領域に設けられたファイルに前記データを記録する処理を、コンピュータに行わせるプログラムにおいて、
前記ファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズの空のファイルを、前記データのファイルとして生成し、
生成された前記ファイルに前記データを記録させる
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録装置および記録方法、並びにプログラムに関し、特に、データの記録中に電源が切断される場合において、データを管理する管理情報の破壊を抑制することができるようにした記録装置および記録方法、並びにプログラムに関する。
【背景技術】
【０００２】
メモリにファイルを記録する際にデバイスの電源が中断された場合、ファイルのクローズ処理を正しく行えないため、ファイルが破壊されてしまう。例えば、ファイルの実際のデータ（以下、実データという）をクラスタに記録しているときに、電源が中断された場合は、影響はそのファイルのみに抑えられるが、FAT（File Allocation Tables）エントリを更新しているときに、電源が中断された場合は、FAT領域が破壊されるので、その時作成していたファイルだけでなくメモリ内すべてのファイルが破壊され、読み込めなくなる。
【０００３】
そこで、FATエントリのバックアップを行う方法等が考案されている(例えば、特許文献１乃至３参照)。
【０００４】
ところで、ログデータなどを１つのファイルに随時記録するデバイスにおいて、従来はファイルに記録する度にファイルのオープンとクローズを行ったり、ファイルをオープンにしたまま記録を行い、クラスタが追加される度にFATエントリの更新を行ったりしていた。
【０００５】
【特許文献１】特開２００５−０６３０４７号公報
【０００６】
【特許文献２】特開平０９−３１９６４０号公報
【０００７】
【特許文献３】特開２００６−１３４１２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このようにして、ログデータなどを１つのファイルに随時記録する場合、FAT領域への書き込みが常に行われるので、FAT領域が破壊され、メモリ内のすべてのファイルが破壊される可能性が高かった。
【０００９】
本発明は、このような状況に鑑みてなされたものであり、データの記録中に電源が切断される場合において、データを管理する管理情報の破壊を抑制することができるようにするものである。
【課題を解決するための手段】
【００１０】
本発明の一側面の記録装置は、ファイル単位でデータを記録するデータ領域と、前記データを管理する管理情報を記録する管理領域とを有する記録媒体の前記データ領域に設けられたファイルに前記データを記録する記録装置において、前記ファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズの空のファイルを、前記データのファイルとして生成する生成手段と、生成された前記ファイルに前記データを記録させる記録処理手段とを備える。
【００１１】
本発明の一側面の記録装置は、前記ファイルに記録されたデータのサイズを算出する算出手段と、前記ファイルのサイズを、前記算出手段により算出されたサイズに修正する修正手段とをさらに設けることができる。
【００１２】
本発明の一側面の記録装置は、前記データの記録中に電源が中断されたかどうかを判定する判定手段をさらに設け、前記記録手段は、前記ファイルの終端を表す情報である終端情報を、前記データの終端に記録し、前記算出手段は、前記判定手段により前記データの記録中に電源が中断されたと判定された場合、前記終端情報に基づいて、前記ファイルに記録されたデータのサイズを算出することができる。
【００１３】
本発明の一側面の記録装置は、前記データの記録中に電源が中断されたかどうかを判定する判定手段をさらに設け、前記算出手段は、前記判定手段により前記データの記録中に電源が中断されたと判定された場合、前記データのチェックサムに基づいて、前記ファイルに記録されたデータのサイズを算出することができる。
【００１４】
本発明の一側面の記録方法は、ファイル単位でデータを記録するデータ領域と、前記データを管理する管理情報を記録する管理領域とを有する記録媒体の前記データ領域に設けられたファイルに前記データを記録する記録装置の記録方法において、前記ファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズの空のファイルを、前記データのファイルとして生成し、生成された前記ファイルに前記データを記録させるステップを含む。
【００１５】
本発明の一側面のプログラムは、ファイル単位でデータを記録するデータ領域と、前記データを管理する管理情報を記録する管理領域とを有する記録媒体の前記データ領域に設けられたファイルに前記データを記録する処理を、コンピュータに行わせるプログラムにおいて、前記ファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズの空のファイルを、前記データのファイルとして生成し、生成された前記ファイルに前記データを記録させるステップを含む。
【００１６】
本発明の一側面においては、ファイル単位でデータを記録するデータ領域と、前記データを管理する管理情報を記録する管理領域とを有する記録媒体の前記データ領域に設けられたファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズの空のファイルが、前記データのファイルとして生成され、生成された前記ファイルに前記データが記録される。
【発明の効果】
【００１７】
以上のように、本発明の一側面によれば、データの記録中に電源が切断される場合において、データを管理する管理情報の破壊を抑制することができる。
【発明を実施するための最良の形態】
【００１８】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００１９】
本発明の一側面の記録装置は、
ファイル単位でデータを記録するデータ領域と、前記データを管理する管理情報を記録する管理領域とを有する記録媒体の前記データ領域に設けられたファイルに前記データを記録する記録装置(例えば、図１の記録装置１０)において、
前記ファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズの空のファイルを、前記データのファイルとして生成する生成手段（例えば、初期化部７１）と、
生成された前記ファイルに前記データを記録させる記録処理手段(例えば、記録処理部７２)と
を備える。
【００２０】
本発明の一側面の記録装置は、
前記ファイルに記録されたデータのサイズを算出する算出手段（例えば、図６のステップＳ２１の位置ファイルのサイズを算出する処理を実行する図３の終了処理部７３）と、
前記ファイルのサイズを、前記算出手段により算出されたサイズに修正する修正手段(例えば、図６のステップＳ２１の位置ファイルのサイズを修正する処理を実行する図３の終了処理部７３)
をさらに備える。
【００２１】
本発明の一側面の記録装置は、
前記データの記録中に電源が中断されたかどうかを判定する判定手段(例えば、図３の修復処理部７４)
をさらに備え、
前記記録手段は、前記ファイルの終端を表す情報である終端情報を、前記データの終端に記録し、
前記算出手段は、前記判定手段により前記データの記録中に電源が中断されたと判定された場合、前記終端情報に基づいて、前記ファイルに記録されたデータのサイズを算出する。
【００２２】
本発明の一側面の記録装置は、
前記データの記録中に電源が中断されたかどうかを判定する判定手段（例えば、図３の修復処理部７４）
をさらに備え、
前記算出手段は、前記判定手段により前記データの記録中に電源が中断されたと判定された場合、前記データのチェックサムに基づいて、前記ファイルに記録されたデータのサイズを算出する。
【００２３】
本発明の一側面の記録方法は、
ファイル単位でデータを記録するデータ領域と、前記データを管理する管理情報を記録する管理領域とを有する記録媒体の前記データ領域に設けられたファイルに前記データを記録する記録装置（例えば、図１の記録装置１０）の記録方法において、
前記ファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズの空のファイルを、前記データのファイルとして生成し（例えば、図４のステップＳ２）、
生成された前記ファイルに前記データを記録させる(例えば、図５のステップＳ１１)
ステップを含む。
【００２４】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００２５】
図１は、本発明を適用した記録装置１０の一実施の形態の構成例を示すブロック図である。
【００２６】
図１の記録装置１０は、アンテナ１１、増幅部１２、位置データ算出部１３、制御部１４、およびHDD（Hard Disk Drive）１５から構成され、例えば記録装置１０の電源がオンにされたとき、衛星からGPS(Global Positioning System)情報を受信し、そのGPS情報に基づいて、現在の記録装置１０の位置を表す位置データを記録する。
【００２７】
アンテナ１１は、衛星からGPS情報の電波を受信し、増幅部１２に供給する。増幅部１２は、アンテナ１１から供給されるGPS情報の電波を増幅し、位置データ算出部１３に供給する。位置データ算出部１３は、GPS情報に基づいて位置データを算出し、制御部１４に供給する。
【００２８】
制御部１４は、例えば、CPU(Central Processing Unit)、ROM（Read Only Memory）、およびRAM（Random Access Memory）からなるマイクロコンピュータなどにより構成される。制御部１４のCPUは、HDD１５からRAMにロードされたプログラムを実行することにより、記録装置１０全体を制御する。例えば、制御部１４のCPUは、位置データ算出部１３から供給される位置データを、HDD１５に供給して記録させる。また、制御部１４のCPUは、HDD１５から位置データを読み出し、図示せぬ他の装置に出力する。制御部１４のRAMには、CPUが各種の処理を実行する上において必要なデータなどが適宜記憶される。
【００２９】
HDD１５は、例えば、ハードディスク５１（後述する図２）を内蔵しており、制御部１４から供給される位置データをハードディスク５１に記録させる。
【００３０】
図２は、HDD１５に内蔵されているハードディスク５１に対して位置データのファイル（以下、位置ファイルという）の書き込みおよび読み出しを行う場合の、制御部１４のCPUの機能的な構成例を示すブロック図である。
【００３１】
制御部１４のCPUは、アプリケーションプログラム３１およびオペレーティングシステム（以下、OSと称する）３２により構成される。OS３２には、ファイルシステム４１およびデバイスドライバ４２が少なくとも含まれている。
【００３２】
アプリケーションプログラム３１は、各種の処理を実行して、位置ファイルの記録および読み出しをオペレーティングシステム３２に要求する。オペレーティングシステム３２は、いわゆる基本プログラムであり、例えば、記録装置１０のハードウェアなどのリソースの取り扱いを制御する。
【００３３】
ファイルシステム４１は、例えば、FATファイルシステム（FAT１６，FAT３２）であり、ハードディスク５１に記録されているデータを、クラスタ単位で管理する。デバイスドライバ４２は、ハードディスク５１へのデータの記録またはハードディスク５１に記録されているデータの読み出しなどを制御する。
【００３４】
アプリケーションプログラム３１は、OS３２のファイルシステム４１に対してファイル単位（レベル）でのアクセス（読み出しまたは書き込み）を要求（指示）する。
【００３５】
ファイルシステム４１は、ファイルをクラスタ単位で管理しており、アプリケーションプログラム３１から位置ファイルへのアクセスが要求された場合、その位置ファイルの該当するクラスタ（以下、該当クラスタという）を検索する。例えば、アプリケーションプログラム３１からファイルシステム４１に対して、位置ファイルの読み出しが要求された場合、ファイルシステム４１は、その位置ファイルの実データである位置データが記録されているクラスタを該当クラスタとして検索する。また例えば、アプリケーションプログラム３１からファイルシステム４１に対して位置ファイルの書き込みが要求された場合、ファイルシステム４１は、位置ファイルの位置データを書き込み可能な空きクラスタを該当クラスタとして検索する。
【００３６】
そして、ファイルシステム４１は、検索された該当クラスタをLBA(Logical Block Addressing)に変換し、デバイスドライバ４２に対して、セクタ単位でアクセスを要求する。
【００３７】
デバイスドライバ４２は、ファイルシステム４１からアクセスが要求されたセクタにアクセスする。
【００３８】
HDD１５は、デバイスドライバ４２の制御の下で、内蔵するハードディスク５１の要求されたセクタにアクセスする。このハードディスク５１は、FATファイルシステムでフォーマットされており、ハードディスク５１には、記録装置１０を起動させる場合に、ハードディスク５１に記録されているOS３２を実行させるためのMBR(Master Boot Record)、空き領域、１クラスタあたりのセクタ数など、ハードディスク５１の物理的な属性が記録されるBPB（BIOS（Basic Input Output System） Parameter Block）、空き容量を高速に計算するための空きクラスタ数が記録されるFSInfo、データ領域内の各クラスタを管理するFATエントリ（管理情報）が記録されるFAT領域、FAT領域のバックアップなどのために利用される予備の領域、並びに、ファイルの名前、ファイルのサイズ、ファイルの実データの格納場所等が格納されているディレクトリエントリおよび実データが記録される領域であるデータ領域が配置されている。
【００３９】
デバイスドライバ４２は、ファイルシステム４１に対し、セクタ単位でのアクセスの要求に対する応答を行う。例えば、デバイスドライバ４２は、ハードディスク５１から読み出されたデータを、セクタ単位でファイルシステム４１に供給する。ファイルシステム４１は、アプリケーションプログラム３１に対して、ファイル単位でのアクセスの要求に対する応答を行う。例えば、ファイルシステム４１は、複数のクラスタから読み出された位置ファイルの実データである位置データを、ファイル単位でアプリケーションプログラム３１に供給する。
【００４０】
図３は、アプリケーションプログラム３１の構成例を示すブロック図である。
【００４１】
初期化部７１は、位置ファイルとして、位置ファイルに記録されるデータのサイズとして想定される最大のサイズ以上のサイズ(例えば、４MB)である規定サイズの空のファイルを生成する。即ち、初期化部７１は、規定サイズの空のファイルを位置ファイルとしてハードディスク５１に記録させる。また、初期化部７１は、いま注目しているファイル上の位置を表すファイルポインタを、生成した位置ファイルの先頭位置に設定する。
【００４２】
記録処理部７２は、位置データ算出部１３から供給される位置データを、初期化部７１により生成された位置ファイルに記録させる。また、記録処理部７２は、ファイルポインタを、記録終了位置に修正する。
【００４３】
終了処理部７３は、位置ファイル上のファイルポインタに基づいて、位置ファイルに記録された位置データのサイズ、即ち実際の位置ファイルのサイズを算出し、そのサイズに、位置ファイルのサイズを修正する。
【００４４】
修復処理部７４は、電源の中断時に位置データが記録されていた位置ファイルのサイズを算出し、その結果得られたサイズに、位置ファイルのサイズを修正する。
【００４５】
次に、図４を参照して、図３の初期化部７１が初期化を行う初期化処理について説明する。この初期化処理は、例えば、記録装置１０の電源がオンにされたときに開始される。
【００４６】
ステップＳ１において、初期化部７１は、位置データを書き込み中であるかどうかを表す書き込みフラグをオンにし、ステップＳ２に進む。ステップＳ２において、初期化部７１は、位置ファイルとして、規定サイズの空のファイルを生成する。
【００４７】
具体的には、初期化部７１は、規定サイズの空のファイルの位置ファイルとしての書き込みをファイルシステム４１に要求する。ファイルシステム４１は、その要求に応じて、位置ファイルのクラスタとして、データ領域に規定サイズのクラスタを確保し、そのクラスタ（最後のクラスタを除く）の連鎖情報（クラスタチェーン）をFATエントリに作成する。
【００４８】
また、ファイルシステム４１は、ハードディスク５１に設けられたデータ領域に、位置ファイルのディレクトリエントリを記録させる。なお、このディレクトリエントリに格納されるファイルサイズは、規定サイズである。
【００４９】
ステップＳ２の処理後は、ステップＳ３に進み、初期化部７１は、位置ファイルをオープンし、ステップＳ４に進む。ステップＳ４において、初期化部７１は、位置ファイルの終端を表すEOF（End Of File）マークを、位置ファイルのクラスタとして確保された最後のクラスタのクラスタチェーンとしてFATエントリに作成し、ステップＳ５に進む。ステップＳ５において、初期化部７１は、ファイルポインタを、位置ファイルの先頭位置に設定し、処理を終了する。
【００５０】
次に、図５を参照して、図３の記録処理部７２が、位置ファイルに位置データを記録する記録処理について説明する。この記録処理は、例えば、位置データ算出部１３から位置データが供給されたとき、開始される。
【００５１】
ステップＳ１１において、記録処理部７２は、位置ファイルの、ファイルポインタが設定された位置から、位置データを記録させ、その位置データの終端にEOFマークを記録させる。このとき、ファイルポインタは、EOFマークの終端位置に修正される。ステップＳ１１の処理後は、ステップＳ１２に進み、記録処理部７２は、位置データとEOFマークの記録に成功したかどうかを判定し、成功したと判定した場合、ステップＳ１３に進む。
【００５２】
ステップＳ１３において、記録処理部７２は、ファイルポインタを、EOFマークの終端位置から、位置データの終端位置（EOFマークの先頭位置）に修正し、処理を終了する。一方、ステップＳ１２において、位置データとEOFマークの記録に成功していないと判定された場合、記録処理部７２は、例えば所定のエラー処理を行い、処理を終了する。
【００５３】
次に、図６を参照して、図３の終了処理部７３が、データの記録を終了させる終了処理について説明する。この終了処理は、例えば、ユーザが、記録装置１０に設けられた図示せぬ操作部を操作することにより、記録装置１０の電源のオフを指令したとき、開始される。なお、図５の記録処理中に、ユーザが電源のオフを指令した場合は、その記録処理の終了後に、図６の終了処理が行われる。
【００５４】
ステップＳ２０において、終了処理部７３は、書き込みフラグをオフにし、ステップＳ２１に進む。ステップＳ２１において、終了処理部７３は、位置ファイル上のファイルポインタに基づいて、位置ファイルに記録された位置データのサイズを、位置ファイルの実際のサイズとして算出し、その結果得られるサイズに、位置ファイルのサイズを修正する。
【００５５】
具体的には、終了処理部７３は、位置ファイルのサイズの、算出したサイズへの修正を要求する。ファイルシステム４１は、その要求に応じて、位置ファイルのディレクトリエントリに格納されるファイルサイズを、算出したサイズに修正し、FATエントリに作成されたクラスタチェーンを、位置データが記録されるクラスタのクラスタチェーンに修正する。
【００５６】
以上のように、アプリケーションプログラム３１は、規定サイズの位置ファイルを生成し、位置ファイルのオープン中には、その位置ファイルに位置データを記録し、位置ファイルのクローズ時には、位置ファイルのサイズを修正する。これにより、FAT領域への書き込みを、位置ファイルのオープン時とクローズ時の２回に抑えることができる。その結果、位置データの記録中に電源が切断される場合において、FATエントリの破壊を抑制することができる。
【００５７】
ステップＳ２１の処理後は、ステップＳ２２に進み、終了処理部７３は、位置ファイルをクローズし、処理を終了する。
【００５８】
次に、図７を参照して、図３の修復処理部７４が、位置ファイルを修復する修復処理について説明する。この修復処理は、例えば、記録装置１０の電源がオンにされたときに、開始される。
【００５９】
ステップＳ３１において、修復処理部７４は、記録途中の位置ファイルがあるかどうか、即ち、図５の記録処理中に電源が中断されたかどうかを判定する。具体的には、修復処理部７４は、書き込みフラグがオンであるとき、記録途中の位置ファイルがあると判定し、書き込みフラグがオフであるとき、記録途中の位置ファイルがないと判定する。
【００６０】
ステップＳ３１において、記録途中の位置ファイルがないと判定された場合、処理は終了される。
【００６１】
一方、ステップＳ３１において、記録途中の位置ファイルがあると判定された場合、ステップＳ３２において、修復処理部７４は、位置ファイルにEOFマークがある（記録されている）かどうかを判定する。ステップＳ３２において、位置ファイルにEOFマークがあると判定された場合、ステップＳ３３に進み、修復処理部７４は、その位置ファイルのEOFマークに基づいて、位置ファイルの先頭位置からEOFマークまでのデータのサイズを、位置ファイルの実際のサイズとして算出する。
【００６２】
また、ステップＳ３２において、位置ファイルにEOFマークがないと判定された場合、ステップＳ３４に進み、修復処理部７４は、位置ファイルに記録されている位置データのチェックサムに基づいて、位置ファイルの先頭位置から、最後に記録された正常な位置データまでのデータのサイズを、位置ファイルの実際のサイズとして算出する。
【００６３】
ステップＳ３３またはＳ３４の処理後は、ステップＳ３５に進み、修復処理部７４は、ステップＳ３３またはＳ３４で算出されたサイズに、位置ファイルのサイズを修正する。
【図面の簡単な説明】
【００６４】
【図１】本発明を適用した記録装置の一実施の形態の構成例を示すブロック図である。
【図２】CPUの機能的構成例を示す図である。
【図３】アプリケーションプログラムの構成例を示すブロック図である。
【図４】初期化処理を説明するフローチャートである。
【図５】記録処理を説明するフローチャートである。
【図６】終了処理を説明するフローチャートである。
【図７】修復処理を説明するフローチャートである。
【符号の説明】
【００６５】
１４  制御部，  ３１  アプリケーションプログラム，  ５１  ハードディスク，  ７１  初期化部，  ７２  記録処理部，  ７３  終了処理部，  ７４  修復処理部
【図１】
2008052767.tif 000003
【図２】
2008052767.tif 000004
【図３】
2008052767.tif 000005
【図４】
2008052767.tif 000006
【図５】
2008052767.tif 000007
【図６】
2008052767.tif 000008
【図７】
2008052767.tif 000009