(57)【要約】【課題】  ハードディスクなどに記録を行う際に、振動や衝撃、落下などによる記録エラーが発生してもデータの記録が継続可能とし、記録エラー発生時の記録データが失われることを防ぐようにする。【解決手段】  ハードディスクに対してデータを記録中に、振動や衝撃、落下などで記録処理がタイムアウトし記録エラーになると、データの記録先がハードディスクから不揮発性メモリに切り換えられ、データの記録が継続される。不揮発性メモリに書き込まれたデータは、例えばハードディスクの再生時など所定のタイミングで、ハードディスクに対して書き戻される。書き戻しが成功すると、不揮発性メモリ内の書き戻されたデータが削除される。【選択図】  図７
2008077780.tif 000002
【特許請求の範囲】
【請求項１】
ディスク状記録媒体にデータを記録する記録装置において、
書き込み要求されたデータをディスク状記録媒体に書き込む記録部と、
上記ディスク状記録媒体に対する上記書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断部と、
上記記録部による上記ディスク状記録媒体に対するデータの書き込みを制御する制御部と
を有し、
上記制御部は、
上記判断部により上記書き込み要求されたデータの上記書き込みが正常に行われないと判断された場合に、該書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、該書き込み要求されたデータの管理情報を作成し保持するようにした
ことを特徴とする記録装置。
【請求項２】
請求項１に記載の記録装置において、
上記制御部は、
上記記憶媒体に書き込まれた上記書き込み要求されたデータを、所定のタイミングで、上記管理情報に基づき上記ディスク状記録媒体に書き込むようにした
ことを特徴とする記録装置。
【請求項３】
請求項２に記載の記録装置において、
上記所定のタイミングは、上記ディスク状記録媒体のアンマウント時である
ことを特徴とする記録装置。
【請求項４】
請求項３に記載の記録装置において、
上記所定のタイミングは、装置の電源切断処理時である
ことを特徴とする記録装置。
【請求項５】
請求項３に記載の記録装置において、
ホスト機能を有する機器と通信可能な通信部をさらに有し、
上記所定のタイミングは、上記通信部を介して上記ホスト機能を有する機器と接続を行う接続処理時である
ことを特徴とする記録装置。
【請求項６】
請求項２に記載の記録装置において、
上記所定のタイミングは、上記ディスク状記録媒体のマウント時である
ことを特徴とする記録装置。
【請求項７】
請求項６に記載の記録装置において、
上記所定のタイミングは、装置の電源投入処理時である
ことを特徴とする記録装置。
【請求項８】
請求項６に記載の記録装置において、
ホスト機能を有する機器と通信可能な通信部をさらに有し、
上記所定のタイミングは、上記通信部を介して接続された上記ホスト機能を有する機器が、該接続を解除したタイミングである
ことを特徴とする記録装置。
【請求項９】
請求項２に記載の記録装置において、
上記制御部は、
上記記憶媒体に書き込まれた上記書き込み要求されたデータが上記ディスク状記録媒体に書き込まれたら、上記記憶媒体から該書き込み要求されたデータを削除すると共に、上記管理情報の対応する情報を削除する
ことを特徴とする記録装置。
【請求項１０】
請求項１に記載の記録装置において、
上記判断部は、
上記記録部による上記ディスク状記録媒体に対するデータの書き込みの際に記録エラーが発生したら、上記書き込み要求されたデータの書き込みが正常に行われないと判断する
ことを特徴とする記録装置。
【請求項１１】
請求項１０に記載の記録装置において、
上記記録エラーは、記録処理のタイムアウトである
ことを特徴とする記録装置。
【請求項１２】
請求項１に記載の記録装置において、
上記ディスク状記録媒体に加えられる加速度、振動、および／または衝撃を検出するセンサ部をさらに有し、
上記判断部は、
上記センサ部により上記加速度、振動、および／または衝撃が検出されたら、上記書き込み要求されたデータの上記書き込みが正常に行われないと判断する
ことを特徴とする記録装置。
【請求項１３】
請求項１に記載の記録装置において、
上記管理情報は、
少なくとも、上記書き込み要求に基づく上記ディスク状記録媒体上のアドレスを示すアドレス情報と、該書き込み要求されたデータを上記記憶媒体に書き込んだ際の該記憶媒体上のアドレスを示すアドレス情報とが関連付けられる
ことを特徴とする記録装置。
【請求項１４】
請求項１に記載の記録装置において、
上記記憶媒体は、フラッシュメモリである
ことを特徴とする記録装置。
【請求項１５】
ディスク状記録媒体にデータを記録する記録方法において、
書き込み要求されたデータをディスク状記録媒体に書き込む記録のステップと、
上記ディスク状記録媒体に対する上記書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断のステップと、
上記記録のステップによる上記ディスク状記録媒体に対するデータの書き込みを制御する制御のステップと
を有し、
上記制御のステップは、
上記判断のステップにより上記書き込み要求されたデータの上記書き込みが正常に行われないと判断された場合に、該書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、該書き込み要求されたデータの管理情報を作成し保持するようにした
ことを特徴とする記録方法。
【請求項１６】
ディスク状記録媒体にデータを記録する記録方法をコンピュータ装置に実行させる記録プログラムにおいて、
上記記録方法は、
書き込み要求されたデータをディスク状記録媒体に書き込む記録のステップと、
上記ディスク状記録媒体に対する上記書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断のステップと、
上記記録のステップによる上記ディスク状記録媒体に対するデータの書き込みを制御する制御のステップと
を有し、
上記制御のステップは、
上記判断のステップにより上記書き込み要求されたデータの上記書き込みが正常に行われないと判断された場合に、該書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、該書き込み要求されたデータの管理情報を作成し保持する
ようにした記録方法をコンピュータ装置に実行させる
ことを特徴とする記録プログラム。
【請求項１７】
ディスク状記録媒体にデータを記録し、ディスク状記録媒体からデータを再生する記録再生装置において、
書き込み要求されたデータをディスク状記録媒体に書き込む記録部と、
ディスク状記録媒体に書き込まれたデータを読み出し要求に基づき再生する再生部と、
上記ディスク状記録媒体に対する上記書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断部と、
上記記録部による上記ディスク状記録媒体に対するデータの書き込みと、上記再生部による上記ディスク状記録媒体からのデータの再生とを制御する制御部と
を有し、
上記制御部は、
上記判断部により上記書き込み要求されたデータの上記書き込みが正常に行われないと判断された場合に、該書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、該書き込み要求されたデータの管理情報を作成し保持するようにした
ことを特徴とする記録再生装置。
【請求項１８】
請求項１７に記載の記録再生装置において、
上記制御部は、
上記記憶媒体に書き込まれた上記書き込み要求されたデータを、所定のタイミングで、上記管理情報に基づき上記ディスク状記録媒体に書き込むようにした
ことを特徴とする記録再生装置。
【請求項１９】
請求項１８に記載の記録再生装置において、
上記所定のタイミングは、上記再生部による、上記ディスク状記録媒体に書き込まれたデータの再生時である
ことを特徴とする記録再生装置。
【請求項２０】
請求項１８に記載の記録再生装置において、
上記所定のタイミングは、上記ディスク状記録媒体のアンマウント時である
ことを特徴とする記録再生装置。
【請求項２１】
請求項２０に記載の記録再生装置において、
上記所定のタイミングは、装置の電源切断処理時である
ことを特徴とする記録再生装置。
【請求項２２】
請求項２０に記載の記録再生装置において、
ホスト機能を有する機器と通信可能な通信部をさらに有し、
上記所定のタイミングは、上記通信部を介して上記ホスト機能を有する機器と接続を行う接続処理時である
ことを特徴とする記録再生装置。
【請求項２３】
請求項１８に記載の記録再生装置において、
上記所定のタイミングは、上記ディスク状記録媒体のマウント時である
ことを特徴とする記録再生装置。
【請求項２４】
請求項２３に記載の記録再生装置において、
上記所定のタイミングは、装置の電源投入処理時である
ことを特徴とする記録再生装置。
【請求項２５】
請求項２３に記載の記録再生装置において、
ホスト機能を有する機器と通信可能な通信部をさらに有し、
上記所定のタイミングは、上記通信部を介して接続された上記ホスト機能を有する機器が、該接続を解除したタイミングである
ことを特徴とする記録再生装置。
【請求項２６】
請求項１８に記載の記録再生装置において、
上記制御部は、
上記記憶媒体に書き込まれた上記書き込み要求されたデータが上記ディスク状記録媒体に書き込まれたら、上記記憶媒体から該書き込み要求されたデータを削除すると共に、上記管理情報の対応する情報を削除する
ことを特徴とする記録再生装置。
【請求項２７】
請求項２６に記載の記録再生装置において、
上記制御部は、
上記再生部により上記ディスク状記録媒体から読み出し要求に基づきデータが再生される際に、
上記管理情報に基づき、上記読み出し要求に示されるデータ範囲に含まれるデータが上記記憶媒体に書き込まれているとされれば、上記ディスク状記録媒体からのデータの再生時に、上記記憶媒体の上記読み出し要求に示されるデータ範囲に含まれるデータに対応する部分では該記憶媒体から対応する該データを読み出すようにした
ことを特徴とする記録再生装置。
【請求項２８】
請求項１７に記載の記録再生装置において、
上記判断部は、
上記記録部による上記ディスク状記録媒体に対するデータの書き込みの際に記録エラーが発生したら、上記書き込み要求されたデータの書き込みが正常に行われないと判断する
ことを特徴とする記録再生装置。
【請求項２９】
請求項２８に記載の記録再生装置において、
上記記録エラーは、記録処理のタイムアウトである
ことを特徴とする記録再生装置。
【請求項３０】
請求項１７に記載の記録再生装置において、
上記ディスク状記録媒体に加えられる加速度、振動、および／または衝撃を検出するセンサ部をさらに有し、
上記判断部は、
上記センサ部により上記加速度、振動、および／または衝撃が検出されたら、上記書き込み要求されたデータの上記書き込みが正常に行われないと判断する
ことを特徴とする記録再生装置。
【請求項３１】
請求項１７に記載の記録再生装置において、
上記管理情報は、
少なくとも、上記書き込み要求に基づく上記ディスク状記録媒体上のアドレスを示すアドレス情報と、該書き込み要求されたデータを上記記憶媒体に書き込んだ際の該記憶媒体上のアドレスを示すアドレス情報とが関連付けられる
ことを特徴とする記録再生装置。
【請求項３２】
請求項１７に記載の記録再生装置において、
上記記憶媒体は、フラッシュメモリである
ことを特徴とする記録再生装置。
【請求項３３】
ディスク状記録媒体にデータを記録し、ディスク状記録媒体からデータを再生する記録再生方法において、
書き込み要求されたデータをディスク状記録媒体に書き込む記録のステップと、
ディスク状記録媒体に書き込まれたデータを読み出し要求に基づき再生する再生のステップと、
上記ディスク状記録媒体に対する上記書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断のステップと、
上記記録のステップによる上記ディスク状記録媒体に対するデータの書き込みと、上記再生のステップによる上記ディスク状記録媒体からのデータの再生とを制御する制御のステップと
を有し、
上記制御のステップは、
上記判断のステップにより上記書き込み要求されたデータの上記書き込みが正常に行われないと判断された場合に、該書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、該書き込み要求されたデータの管理情報を作成し保持するようにした
ことを特徴とする記録再生方法。
【請求項３４】
ディスク状記録媒体にデータを記録し、ディスク状記録媒体からデータを再生する記録再生方法をコンピュータ装置に実行させる記録再生プログラムにおいて、
上記記録再生方法は、
書き込み要求されたデータをディスク状記録媒体に書き込む記録のステップと、
ディスク状記録媒体に書き込まれたデータを読み出し要求に基づき再生する再生のステップと、
上記ディスク状記録媒体に対する上記書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断のステップと、
上記記録のステップによる上記ディスク状記録媒体に対するデータの書き込みと、上記再生のステップによる上記ディスク状記録媒体からのデータの再生とを制御する制御のステップと
を有し、
上記制御のステップは、
上記判断のステップにより上記書き込み要求されたデータの上記書き込みが正常に行われないと判断された場合に、該書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、該書き込み要求されたデータの管理情報を作成し保持する
ようにした記録再生方法をコンピュータ装置に実行させる
ことを特徴とする記録再生プログラム。
【請求項３５】
撮像部で被写体を撮像して得られたビデオデータをディスク状記録媒体に記録し、ディスク状記録媒体からビデオデータを再生する撮像装置において、
被写体を撮像してビデオデータを出力する撮像部と、
書き込み要求されたビデオデータをディスク状記録媒体に書き込む記録部と、
ディスク状記録媒体に書き込まれたビデオデータを読み出し要求に基づき再生する再生部と、
上記ディスク状記録媒体に対する上記書き込み要求されたビデオデータの書き込みが正常に行われるか否かを判断する判断部と、
上記記録部による上記ディスク状記録媒体に対するビデオデータの書き込みと、上記再生部による上記ディスク状記録媒体からのビデオデータの再生とを制御する制御部と
を有し、
上記制御部は、
上記判断部により上記書き込み要求されたビデオデータの上記書き込みが正常に行われないと判断された場合に、該書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、該書き込み要求されたビデオデータの管理情報を作成し保持するようにした
ことを特徴とする撮像装置。
【請求項３６】
請求項３５に記載の撮像装置において、
上記制御部は、
上記記憶媒体に書き込まれた上記書き込み要求されたビデオデータを、所定のタイミングで、上記管理情報に基づき上記ディスク状記録媒体に書き込むようにした
ことを特徴とする撮像装置。
【請求項３７】
請求項３６に記載の撮像装置において、
上記所定のタイミングは、上記再生部による、上記ディスク状記録媒体に書き込まれたビデオデータの再生時である
ことを特徴とする撮像装置。
【請求項３８】
請求項３６に記載の撮像装置において、
上記所定のタイミングは、上記ディスク状記録媒体のアンマウント時である
ことを特徴とする撮像装置。
【請求項３９】
請求項３８に記載の撮像装置において、
上記所定のタイミングは、装置の電源切断処理時である
ことを特徴とする撮像装置。
【請求項４０】
請求項３８に記載の撮像装置において、
ホスト機能を有する機器と通信可能な通信部をさらに有し、
上記所定のタイミングは、上記通信部を介して上記ホスト機能を有する機器と接続を行う接続処理時である
ことを特徴とする撮像装置。
【請求項４１】
請求項３６に記載の撮像装置において、
上記所定のタイミングは、上記ディスク状記録媒体のマウント時である
ことを特徴とする撮像装置。
【請求項４２】
請求項４１に記載の撮像装置において、
上記所定のタイミングは、装置の電源投入処理時である
ことを特徴とする撮像装置。
【請求項４３】
請求項４１に記載の撮像装置において、
ホスト機能を有する機器と通信可能な通信部をさらに有し、
上記所定のタイミングは、上記通信部を介して接続された上記ホスト機能を有する機器が、該接続を解除したタイミングである
ことを特徴とする撮像装置。
【請求項４４】
請求項３６に記載の撮像装置において、
上記制御部は、
上記記憶媒体に書き込まれた上記書き込み要求されたビデオデータが上記ディスク状記録媒体に書き込まれたら、上記記憶媒体から該書き込み要求されたビデオデータを削除すると共に、上記管理情報の対応する情報を削除する
ことを特徴とする撮像装置。
【請求項４５】
請求項４４に記載の撮像装置において、
上記制御部は、
上記再生部により上記ディスク状記録媒体から読み出し要求に基づきビデオデータが再生される際に、
上記管理情報に基づき、上記読み出し要求に示されるビデオデータ範囲に含まれるビデオデータが上記記憶媒体に書き込まれているとされれば、上記ディスク状記録媒体からのビデオデータの再生時に、上記記憶媒体の上記読み出し要求に示されるビデオデータ範囲に含まれるビデオデータに対応する部分では該記憶媒体から対応する該ビデオデータを読み出すようにした
ことを特徴とする撮像装置。
【請求項４６】
請求項３５に記載の撮像装置において、
上記判断部は、
上記記録部による上記ディスク状記録媒体に対するビデオデータの書き込みの際に記録エラーが発生したら、上記書き込み要求されたビデオデータの書き込みが正常に行われないと判断する
ことを特徴とする撮像装置。
【請求項４７】
請求項４６に記載の撮像装置において、
上記記録エラーは、記録処理のタイムアウトである
ことを特徴とする撮像装置。
【請求項４８】
請求項３５に記載の撮像装置において、
上記ディスク状記録媒体に加えられる加速度、振動、および／または衝撃を検出するセンサ部をさらに有し、
上記判断部は、
上記センサ部により上記加速度、振動、および／または衝撃が検出されたら、上記書き込み要求されたビデオデータの上記書き込みが正常に行われないと判断する
ことを特徴とする撮像装置。
【請求項４９】
請求項３５に記載の撮像装置において、
上記管理情報は、
少なくとも、上記書き込み要求に基づく上記ディスク状記録媒体上のアドレスを示すアドレス情報と、該書き込み要求されたビデオデータを上記記憶媒体に書き込んだ際の該記憶媒体上のアドレスを示すアドレス情報とが関連付けられる
ことを特徴とする撮像装置。
【請求項５０】
請求項３５に記載の撮像装置において、
上記記憶媒体は、フラッシュメモリである
ことを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ハードディスクといったランダムアクセス可能なディスク状記録媒体に対する落下や振動、衝撃などにより記録エラーが発生した場合に、記録処理を継続可能とすると共に、記録エラーによる記録データの損失が無いようにした記録装置、記録方法および記録プログラム、記録再生装置、記録再生方法および記録再生プログラム、ならびに、撮像装置に関する。
【背景技術】
【０００２】
ランダムアクセス可能なディスク状記録媒体の一つであるハードディスクは、記録容量が大きくアクセス速度が高速であることから、コンピュータ装置などの記録媒体として従来から多く用いられていた。近年では、ハードディスクの小型化および大容量化に伴い、携帯用のビデオカメラやオーディオ機器などの記録媒体としての需要も、大幅に伸びている。
【０００３】
ハードディスクでは、一般的に、ディスク表面に対してヘッドを近接させ、ディスクを高速に回転させると共にヘッドをディスクの径方向に移動させながらディスク上のアドレスにアクセスして、ディスクに対するデータの記録や、ディスクに記録されたデータの再生を行う。
【０００４】
ハードディスクは、アクセスが機構的に行われるため、落下や振動、衝撃よりアクセスエラーを起こす可能性がある。すなわち、アクセス中のハードディスクに対して所定量以上の振動や衝撃、加速度が加えられると、ヘッドが例えばディスク面から所定距離以上離れる、ヘッドとディスクとが接触するなどにより、アクセス不能状態に陥ったり、ヘッドおよび／またはディスクを破損してしまうことがある。例えば、ハードディスク装置に振動などを検知するためのセンサを設け、所定量以上の振動を検知すると、記録再生を停止させてヘッドを安全領域に移動させることで、ヘッドとディスクの接触によるヘッドおよび／またはディスクの破損を避けるようにしたものもある。
【０００５】
再生中にアクセスエラーが生じると、データの再生が中断されてしまうことになる。そこで、従来から、ハードディスクに記録されているデータを再生する際に、再生すべきデータの所定量を予めハードディスクから読み出してバッファリングしておくことで、ハードディスクからのデータの再生が途切れた場合に対処することが行われていた。例えば、ビデオデータの場合、ハードディスクに記録されたビデオデータを、再生時刻に対して所定時間分先のデータまでをハードディスクから先読みして、メモリに溜め込むようにする。
【０００６】
また、ハードディスクは、ヘッドのシーク動作によってもアクセスが中断されてしまうことがある。特許文献１には、シーク動作に伴い発生する再生中断を回避するために、シークによるアクセスが必要となる箇所の先頭部分のデータを所定データ量だけメモリに保持し、シークによりディスク状記録媒体からのデータ再生が困難な期間の間、このメモリに保持したデータを出力するようにした技術が記載されている。
【特許文献１】特開２００３−１２５３５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ここで、略リアルタイムに供給される、ビデオデータやオーディオデータといった時間的に連続するストリームデータを、ハードディスクに対して記録する場合について考える。記録時も、再生時と同様に、記録中のハードディスクに一定量以上の振動や衝撃が加えられた場合、記録エラーが発生する可能性がある。従来では、記録中に記録エラーが発生した場合は記録を停止するしかなく、エラーにより記録できなかったデータを復帰させる方法がなかったという問題点があった。
【０００８】
特に、携帯用のビデオカメラの記録媒体としてハードディスクを用いた場合に、落下や振動、衝撃などで記録が停止してしまうと、撮影自体がその時点で中断されてしまい、撮影を再び再開するまでの間の貴重な撮影チャンスを逸してしまうという問題点があった。
【０００９】
また、撮影が中断された時点における、唯一無二の撮影タイミングで撮影されたデータが失われることになり、ビデオカメラの機能として問題があった。
【００１０】
なお、記録時には、ディスク状記録媒体が未記録の状態であったり、十分な空き容量が存在する場合には、データを媒体上の連続したアドレスに記録することができ、シークによる問題は生じにくいものと考えられる。
【００１１】
したがって、この発明の目的は、ハードディスクといったディスク状記録媒体を用いた場合に、落下や振動、衝撃などによる記録エラーが発生してもデータの記録が継続されると共に、記録エラー発生時の記録データが失われることを防ぐことができるようにした記録装置、記録方法および記録プログラム、記録再生装置、記録再生方法および記録再生プログラム、ならびに、撮像装置を提供することにある。
【課題を解決するための手段】
【００１２】
第１の発明は、上述した課題を解決するために、ディスク状記録媒体にデータを記録する記録装置において、書き込み要求されたデータをディスク状記録媒体に書き込む記録部と、ディスク状記録媒体に対する書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断部と、記録部によるディスク状記録媒体に対するデータの書き込みを制御する制御部とを有し、制御部は、判断部により書き込み要求されたデータの書き込みが正常に行われないと判断された場合に、書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、書き込み要求されたデータの管理情報を作成し保持するようにしたことを特徴とする記録装置である。
【００１３】
また、第２の発明は、ディスク状記録媒体にデータを記録する記録方法において、書き込み要求されたデータをディスク状記録媒体に書き込む記録のステップと、ディスク状記録媒体に対する書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断のステップと、記録のステップによるディスク状記録媒体に対するデータの書き込みを制御する制御のステップとを有し、制御のステップは、判断のステップにより書き込み要求されたデータの書き込みが正常に行われないと判断された場合に、書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、書き込み要求されたデータの管理情報を作成し保持するようにしたことを特徴とする記録方法である。
【００１４】
また、第３の発明は、ディスク状記録媒体にデータを記録する記録方法をコンピュータ装置に実行させる記録プログラムにおいて、記録方法は、書き込み要求されたデータをディスク状記録媒体に書き込む記録のステップと、ディスク状記録媒体に対する書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断のステップと、記録のステップによるディスク状記録媒体に対するデータの書き込みを制御する制御のステップとを有し、制御のステップは、判断のステップにより書き込み要求されたデータの書き込みが正常に行われないと判断された場合に、書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、書き込み要求されたデータの管理情報を作成し保持するようにした記録方法をコンピュータ装置に実行させることを特徴とする記録プログラムである。
【００１５】
また、第４の発明は、ディスク状記録媒体にデータを記録し、ディスク状記録媒体からデータを再生する記録再生装置において、書き込み要求されたデータをディスク状記録媒体に書き込む記録部と、ディスク状記録媒体に書き込まれたデータを読み出し要求に基づき再生する再生部と、ディスク状記録媒体に対する書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断部と、記録部によるディスク状記録媒体に対するデータの書き込みと、再生部によるディスク状記録媒体からのデータの再生とを制御する制御部とを有し、制御部は、判断部により書き込み要求されたデータの書き込みが正常に行われないと判断された場合に、書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、書き込み要求されたデータの管理情報を作成し保持するようにしたことを特徴とする記録再生装置である。
【００１６】
また、第５の発明は、ディスク状記録媒体にデータを記録し、ディスク状記録媒体からデータを再生する記録再生方法において、書き込み要求されたデータをディスク状記録媒体に書き込む記録のステップと、ディスク状記録媒体に書き込まれたデータを読み出し要求に基づき再生する再生のステップと、ディスク状記録媒体に対する書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断のステップと、記録のステップによるディスク状記録媒体に対するデータの書き込みと、再生のステップによるディスク状記録媒体からのデータの再生とを制御する制御のステップとを有し、制御のステップは、判断のステップにより書き込み要求されたデータの書き込みが正常に行われないと判断された場合に、書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、書き込み要求されたデータの管理情報を作成し保持するようにしたことを特徴とする記録再生方法である。
【００１７】
また、第６の発明は、ディスク状記録媒体にデータを記録し、ディスク状記録媒体からデータを再生する記録再生方法をコンピュータ装置に実行させる記録再生プログラムにおいて、記録再生方法は、書き込み要求されたデータをディスク状記録媒体に書き込む記録のステップと、ディスク状記録媒体に書き込まれたデータを読み出し要求に基づき再生する再生のステップと、ディスク状記録媒体に対する書き込み要求されたデータの書き込みが正常に行われるか否かを判断する判断のステップと、記録のステップによるディスク状記録媒体に対するデータの書き込みと、再生のステップによるディスク状記録媒体からのデータの再生とを制御する制御のステップとを有し、制御のステップは、判断のステップにより書き込み要求されたデータの書き込みが正常に行われないと判断された場合に、書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、書き込み要求されたデータの管理情報を作成し保持するようにした記録再生方法をコンピュータ装置に実行させることを特徴とする記録再生プログラムである。
【００１８】
また、第７の発明は、撮像部で被写体を撮像して得られたビデオデータをディスク状記録媒体に記録し、ディスク状記録媒体からビデオデータを再生する撮像装置において、被写体を撮像してビデオデータを出力する撮像部と、書き込み要求されたビデオデータをディスク状記録媒体に書き込む記録部と、ディスク状記録媒体に書き込まれたビデオデータを読み出し要求に基づき再生する再生部と、ディスク状記録媒体に対する書き込み要求されたビデオデータの書き込みが正常に行われるか否かを判断する判断部と、記録部によるディスク状記録媒体に対するビデオデータの書き込みと、再生部によるディスク状記録媒体からのビデオデータの再生とを制御する制御部とを有し、制御部は、判断部により書き込み要求されたビデオデータの書き込みが正常に行われないと判断された場合に、書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、書き込み要求されたビデオデータの管理情報を作成し保持するようにしたことを特徴とする撮像装置である。
【００１９】
上述したように、この発明は、書き込み要求されたデータをディスク状記録媒体に書き込む際に、書き込み要求されたデータの書き込みが正常に行われるか否かを判断し、判断結果に基づき書き込み要求されたデータの書き込みが正常に行われないと判断された場合に、書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、書き込み要求されたデータの管理情報を作成し保持するようにしているため、ディスク状記録媒体に対する書き込み要求されたデータの書き込みが正常に行われない場合でも、書き込み要求によるデータの書き込み処理を継続することができる。
【発明の効果】
【００２０】
この発明は、上述のように、書き込み要求されたデータをディスク状記録媒体に書き込む際に、書き込み要求されたデータの書き込みが正常に行われるか否かを判断し、判断結果に基づき書き込み要求されたデータの書き込みが正常に行われないと判断された場合に、書き込み要求されたデータを不揮発性の記憶媒体に書き込むと共に、書き込み要求されたデータの管理情報を作成し保持するようにしているため、ディスク状記録媒体に対する書き込み要求されたデータの書き込みが正常に行われない場合でも、書き込み要求によるデータの書き込み処理を継続することができる効果がある。
【発明を実施するための最良の形態】
【００２１】
以下、この発明の実施の第１の形態について説明する。この発明では、例えばハードディスクといったディスク状記録媒体に対するデータの記録中に記録エラーが発生した際や記録エラーの発生するおそれがある場合に、記録データを不揮発性メモリなどの他の記録媒体に記憶させ、記録データを退避させるようにする。さらに、この他の記録媒体に記憶された記録データを、所定のタイミングで、ディスク状記録媒体の本来書き込まれるべき位置に書き戻すようにしている。
【００２２】
ディスク状記録媒体に記録データを記録中に落下や振動、衝撃などで記録エラーが発生したり、記録エラーが発生するおそれがある状況になっても記録を継続することができ、ディスク状記録媒体に対する記録エラーが発生した場合でも記録データが失われることがない。また、記録エラーに伴い不揮発性メモリなどの他の記録媒体に記憶された記録データを、後にディスク状記録媒体の所定位置に書き込むことで、恰も記録エラーが存在しなかったかの如く、ディスク状記録媒体から記録データの再生を行うことができる。
【００２３】
先ず、理解を容易とするために、この発明の実施の第１の形態に適用可能なファイルシステムについて、概略的に説明する。この発明の実施の第１の形態では、ファイルシステムとして、ＦＡＴ(File Allocation Table)を適用する。ＦＡＴは、コンピュータ装置のＯＳ(Operating System)の一つであるＷｉｎｄｏｗｓ（登録商標）で用いられるファイルシステムであって、エントリのサイズによってＦＡＴ１６やＦＡＴ３２と呼ばれる。
【００２４】
図１は、ＦＡＴファイルシステムに基づきフォーマットされたハードディスクのデータ構造の例を示す。図１Ａは、ＦＡＴ１６でフォーマットした例を示す。ハードディスク全体は、ＬＢＡ(Logical Block Address)モードにより、０から始まるＬＢＡという論理的な通し番号でセクタ番号が指定される。ハードディスクの先頭セクタ（ＬＢＡ＝０）には、マスターブートレコード（ＭＢＲ）が配置される。
【００２５】
マスターブートレコードは、図２に一例が示されるように、起動コードと当該ハードディスクに対して割り当てられたパーティションの情報が記述される。図３は、マスターブートレコードにおいてパーティションの情報が記述されるパーティションテーブルの一例の構造を示す。パーティションテーブルは、パーティションに対するアクセスポインタがＣＨＳ(Cylinder/Head/Secter)モードおよびＬＢＡモードで記述される。アクセスポインタは、ＣＨＳモードでは、開始セクタと終了セクタとで記述され、ＬＢＡモードでは、開始セクタとパーティションサイズとで記述される。
【００２６】
マスターブートレコードの次に、所定の空き領域を介してパーティションが配置される。パーティションの先頭には、パーティションブートレコード（ＰＢＲ）が配置され、ディスクパラメータ、最初のファイルを読み込むためのプログラムコードなどが記述される。パーティションブートレコードに続けて、ＦＡＴが記述される。ＦＡＴの次には、ルートディレクトリエントリが記述される。このルートディレクトリエントリは、ＦＡＴにより管理されない領域である。ルートディレクトリエントリの次からがデータ領域とされ、ＦＡＴにより管理されるクラスタが並べられる。
【００２７】
なお、クラスタは、セクタを２n個（ｎは０以上の整数）集めたもので、ＦＡＴにおいてデータを管理可能な最小単位である。また、１セクタのサイズは、ハードディスクの場合、５１２バイトが一般的に用いられる。
【００２８】
図４は、ＦＡＴ１６におけるディレクトリエントリの一例の構造を示す。図４において、横方向の１目盛りは、８ビットを示す。ディレクトリエントリは、１のファイルに対して、先頭から、ファイル名、拡張子名および属性情報が記述され、予約領域を介して、さらにファイルの作成時刻および作成日時、最終アクセス日時、先頭クラスタ番号（高位側）、記録時刻および日付、先頭クラスタ番号（低位側）およびファイルサイズが記述される。このファイル情報が当該ディレクトリエントリが属するパーティションに記録されるファイル数分、記述される。
【００２９】
なお、ＦＡＴ３２においては、ＶＦＡＴ(Virtual FAT)ファイルシステムにより、最長２５５文字までのファイル名を指定できるようになっている。ＶＦＡＴシステムでは、ＦＡＴ１６のディレクトリエントリを拡張し、ＦＡＴ１６ファイルシステムと互換性のあるファイル名を保持するディレクトリエントリに加えて、長いファイル名を記録するディレクトリエントリを設けている。
【００３０】
図１Ｂは、ＦＡＴ３２でフォーマットした例を示す。この場合には、上述のＦＡＴ１６でフォーマットした例に対して、ルートディレクトリエントリをデータ領域内に配置するようになっている点と、パーティションブートレコードの次に領域ＦＳＩｎｆｏが置かれる点とが異なっている。領域ＦＳＩｎｆｏは、空きクラスタ情報が記述される。
【００３１】
ＦＡＴファイルシステムは、データ領域に割り当てられたクラスタ全てと１対１で対応する要素（ＦＡＴエントリ）が順番に並んだテーブルを用いて、記録領域の管理を行う。図５は、ＦＡＴ３２によるＦＡＴの例を示す。ＦＡＴ３２は、図５Ａに例示されるように、１のエントリが３２ビットのサイズを有する。図５Ａ中、行および列で示されるクラスタ番号のそれぞれにＦＡＴエントリが対応付けられ、「ＲＳＶ」は、予約クラスタを示し、「ＥＯＦ」は、そのクラスタがファイルの終端であることを示す。ＦＡＴエントリに１６進表記で示される数値は、当該ＦＡＴエントリで示されるクラスタに連結される次のクラスタのクラスタ番号を表している。
【００３２】
ＦＡＴファイルシステムでは、後述するディレクトリエントリに基づき先頭クラスタ番号を取得し、先頭クラスタ番号に基づきＦＡＴエントリを参照し、連結される次のクラスタのクラスタ番号を見つけながら、ファイルのアクセスを行う。
【００３３】
図５Ａの例では、第１のファイルは、先頭クラスタ番号がクラスタ番号「０００００００７」であって、クラスタ番号「０００００００８」と続き、クラスタ番号「０００００００９」でファイル終端となる（図５Ｂ参照）。第２のファイルは、先頭クラスタ番号がクラスタ番号「０００００００Ａ」であって、クラスタ番号「００００００１Ｆ」、「００００００２５」、「００００００３１」と続き、クラスタ番号「００００００３０」でファイル終端となる（図５Ｃ参照）。第３のファイルは、先頭クラスタ番号がクラスタ番号「００００００１Ｂ」であって、クラスタ番号「００００００１１」、「００００００１２」、「００００００１３」、「００００００１４」と続き、クラスタ番号「０００００００３」でファイル終端となる（図５Ｄ参照）。また、第４のファイルは、先頭クラスタ番号がクラスタ番号「００００００２Ｃ」であって、クラスタ番号「００００００２Ｄ」、「００００００２Ｅ」、「００００００２Ｆ」、「００００００３８」、「００００００３９」、「００００００３Ａ」と続き、クラスタ番号「００００００３Ｂ」でファイル終端となる（図５Ｅ参照）。
【００３４】
図６は、上述したファイルシステムを実現するための一例のアーキテクチャを示す。アプリケーション部１０、ファイルシステム部１１およびデバイスドライバ部１２は、ホストＣＰＵ(Central Processing Unit)上で動作するプログラムである。記録媒体１３は、ハードディスクや不揮発性メモリなどのハードウェアである。ファイルシステム部１１は、例えばホストＣＰＵ上で動作するＯＳ(Operating System)に含まれる。アプリケーション部１０は、このＯＳ上で動作するソフトウェアである。ＯＳは、デバイスドライバ部１２を介して、アプリケーション部１０と記録媒体１３との間の仲介を行う。
【００３５】
なお、ハードディスクは、一般的には、記録媒体そのものであるハードディスク本体と、ハードディスクを駆動するためのドライブ装置とからなるハードディスクドライブ（ＨＤＤ）として用いられる。
【００３６】
アプリケーション部１０は、記録媒体１３に対してファイルレベルでアクセス要求を出す。このアクセス要求は、ファイルシステム部１１に渡される。ファイルシステム部１１は、アプリケーション部１０から渡されたファイルレベルのアクセス要求を、ＦＡＴファイルシステムに基づくクラスタレベルのアクセス要求に変換する。例えば、ファイルシステム部１１は、ファイルレベルのアクセス要求に基づきＦＡＴを参照してアクセスを行うクラスタ番号を取得し、取得されたクラスタ番号からＬＢＡを計算する。このクラスタレベルのアクセス要求は、デバイスドライバ部１２に渡され、実際に記録媒体１３にアクセスするためのセクタレベルのアクセス要求に変換される。デバイスドライバ部１２は、セクタレベルのアクセス要求を、所定のインターフェイスを介して記録媒体１３に渡す。
【００３７】
アクセス要求に対するアクセス応答は、上述と逆の流れで行われる。すなわち、記録媒体１３におけるセクタレベルのアクセス要求に対する応答が、セクタレベルのアクセス応答としてでバイスドライバ部１２に返される。例えば、記録媒体１３において、セクタに対するデータの書き込みが成功したか否か、あるいは、セクタからのデータの読み出しが成功したか否かといったセクタレベルの応答が、記録媒体１３からデバイスドライバ部１２に返される。
【００３８】
デバイスドライバ部１２は、このセクタレベルのアクセス応答を、クラスタレベルのアクセス応答、例えばＬＢＡ単位のアクセス応答に変換してファイルシステム部１１に渡す。ファイルシステム部１１では、このＬＢＡに基づきクラスタ番号を求め、ＦＡＴを参照して求められたクラスタ番号に対応するファイル情報を取得する。このファイル情報に基づき、ファイルレベルのアクセス応答がファイルシステム部１１からアプリケーション部１０に返される。
【００３９】
次に、この発明の実施の第１の形態について説明する。この発明では、落下や振動、衝撃などにより、例えばハードディスクといったディスク状記録媒体に対するデータの書き込みが困難な期間に、ディスク状記録媒体に書き込むべきデータをフラッシュメモリなどの書き換え可能な不揮発性メモリに記憶および保持し、記録データの退避を行う。再生時には、ディスク状記録媒体の当該書き込み困難な期間に対応するアドレスからデータを再生する際には、記録時において当該期間に不揮発性メモリに記憶された対応するデータを再生する。
【００４０】
さらに、不揮発性メモリに記憶され退避されたデータを、所定のタイミングで、ディスク状記録媒体の所定のアドレスに書き戻すことを試みる。データをディスク状記録媒体に対して書き戻すことに成功したら、不揮発性メモリに退避した当該データを不揮発性メモリから削除する。以降は、ディスク状記録媒体からの通常通りの再生が可能とされる。
【００４１】
なお、ディスク状記録媒体に書き込むべきデータを不揮発性メモリに記憶する際に、不揮発性メモリに対して当該データが書き込まれるアドレスを、ディスク状記録媒体のアドレスと対応させることで、ディスク状記録媒体と不揮発性メモリとを用いて記録または再生する際に、恰もディスク状記録媒体のみにアクセスしているように見せることができる。
【００４２】
図７を用いて、より具体的に説明する。図７Ａは、ＦＡＴ３２によりフォーマットされたハードディスクの一例のデータ構造を示し、図７Ｂは、不揮発性メモリの一例のアドレス空間を示す。不揮発性メモリにおいても、ハードディスクに合わせて１セクタを５１２バイトとし、２n個のセクタを集めたクラスタ単位でデータが管理されるようにする。
【００４３】
ハードディスクでは、セクタ単位でデータの書き込みがなされ、セクタへの書き込みが失敗すると、当該セクタに対して再度書き込みを行うように制御される。同一セクタに対する再書き込みを所定時間以上繰り返しても書き込みが成功しない場合、書き込み処理がタイムアウトエラーとなり、記録エラーが発生する。
【００４４】
例えば、図７Ａに例示されるように、アドレスＬＢＡ＝Ｘ１からアドレスＬＢＡ＝Ｘ２で示される範囲にデータを書き込もうとしたときに、落下や振動、衝撃などにより書き込み処理がタイムアウトしたものとする。この場合、アドレスＬＢＡ＝Ｘ１からＬＢＡ＝Ｘ２で示される範囲に書き込むべきデータを、不揮発性メモリのアドレスＬＢＡ＝Ｙ１からアドレスＬＢＡ＝Ｙ２の範囲に書き込み（図７Ｂ）、ハードディスクに書き込まれるべきデータを不揮発性メモリに退避させる。
【００４５】
このとき、上位のシステムに対して、ハードディスクのアドレスＬＢＡ＝Ｘ１からアドレスＬＢＡ＝Ｘ２の範囲にデータの書き込みがなされているように通知する。これにより、ハードディスクに対する次の書き込みは、不揮発性メモリに対するデータの退避が行われた次のアドレスである、アドレスＬＢＡ＝Ｘ３から行われることになる。
【００４６】
所定のタイミングで、不揮発性メモリに書き込まれ退避されたデータをハードディスクに書き戻すことが試みられる。すなわち、ハードディスクに対して、不揮発性メモリへのデータの退避が行われなかったとした場合に書き込まれるべきハードディスク上のアドレスに、データの書き込みが試みられる。図７の例では、ハードディスクにおいてアドレスＬＢＡ＝Ｘ１からアドレスＬＢＡ＝Ｘ２の範囲に書き込むように要求され不揮発性メモリのアドレスＬＢＡ＝Ｙ１からアドレスＬＢＡ＝Ｙ２の範囲に退避されたデータが、ハードディスクのアドレスＬＢＡ＝Ｘ１からアドレスＬＢＡ＝Ｘ２の区間に書き込まれる。不揮発性メモリに書き込まれたデータのハードディスクに対する書き戻しが成功すると、不揮発性メモリ上の当該データが削除される。
【００４７】
別の例として、不揮発性メモリのアドレスＬＢＡ＝Ｙ３からアドレスＬＢＡ＝Ｙ４の範囲のデータを、ハードディスクの対応する範囲であるアドレスＬＢＡ＝Ｘ３からアドレスＬＢＡ＝Ｘ４に書き戻す際の書き込み処理が失敗した場合、不揮発性メモリ上の当該データは削除されない。この場合には、ハードディスクにおけるアドレスＬＢＡ＝Ｘ３からアドレスＬＢＡ＝Ｘ４の間のデータにアクセスする際には、不揮発性メモリの対応するアドレスにアクセスする。
【００４８】
次に、この発明の実施の第１の形態について、より詳細に説明する。図８は、この発明の実施の第１の形態に適用可能な、ＦＡＴによるファイルシステムの一例の構成をより詳細に示す。なお、図８において、上述した図６と共通する部分には同一の符号を付し、詳細な説明を省略する。すなわち、図８におけるアプリケーション部１０、ファイルシステム部１１およびデバイスドライバ部１２は、図６の説明に対応する。
【００４９】
ファイルシステム部１１は、記録制御部２０と記録媒体制御部２１とを有し、記録制御部２０は、ＦＡＴ制御部２２、クラスタ制御部２３およびディレクトリエントリ制御部２４を有する。また、記録媒体制御部２１は、位置算出部２５を有する。
【００５０】
ここでは、２の記録媒体１３Ａおよび１３Ｂが用いられ、デバイスドライバ部１２は、これら記録媒体１３Ａおよび１３Ｂのそれぞれに対応するデバイスドライバ１２Ａおよび１２Ｂを有する。一例として、記録媒体１３Ａは、ハードディスクであり、記録媒体１３Ｂは、不揮発性メモリである。
【００５１】
なお、上述したように、ハードディスクは、記録媒体そのものであるハードディスク本体と、ハードディスクを駆動するためのドライブ装置からなるハードディスクドライブとして用いられる。また、不揮発性メモリも同様に、記録または記憶媒体そのものとしての不揮発性メモリ本体と、不揮発性メモリを電気的に駆動する駆動回路とを含む。
【００５２】
デバイスドライバ１２Ａおよび１２Ｂは、それぞれ所定のインターフェイスを介して記録媒体１３Ａおよび１３Ｂに接続される。記録媒体１３Ａがハードディスクであるこの例では、デバイスドライバ１２Ａは、例えばＡＴＡ(AT Attachment)をインターフェイスとして記録媒体１３Ａと接続される。デバイスドライバ部１２は、記録媒体１３Ａおよび１３Ｂが接続されると、対応するデバイスドライバ１２Ａおよび１２Ｂによりそれぞれの記録媒体の情報を取得し、記録媒体１３Ａおよび記録媒体１３Ｂをシステムにマウントする。
【００５３】
例えば、ハードディスクである記録媒体１３Ａが接続されると、記録媒体１３Ａにアクセスするために必要な情報が記録媒体１３Ａから取得され、記録媒体１３Ａがシステムにマウントされる。一例として、デバイスドライバ１２Ａにより記録媒体１３ＡからＭＢＲが読み込まれ、パーティションテーブルに基づきパーティション情報が取得される。そして、パーティションからＦＡＴおよびディレクトリエントリが読み込まれる。このようにして記録媒体１３Ａの情報が取得され、ドライブ情報２６としてファイルシステム部１１に保持されることで、記録媒体１３のシステムへのマウントが行われる。ドライブ情報２６は、例えばＣＰＵのワークメモリとしてのＲＡＭ３０に記憶され、保持される。
【００５４】
不揮発性メモリである記録媒体１３Ｂが接続された場合も同様に、記録媒体１３Ｂにアクセスするために必要な情報がデバイスドライバ１２Ｂにより記録媒体１３Ｂから取得され、ドライブ情報２７としてファイルシステム部１１に保持されることで、記録媒体１３Ｂのシステムへのマウントが行われる。
【００５５】
ファイルシステム部１１の動作の一例について概略的に説明する。ファイルシステム部１１は、アプリケーション部１０から、例えば記録媒体１３Ａにファイルを書き込む書き込み要求が渡されると、ディレクトリエントリ制御部２４により、書き込み要求に基づき、書き込むファイルのディレクトリエントリ情報を作成する。このとき、ディレクトリエントリ制御部２４は、ＦＡＴ制御部２２に対してファイル書き込み可能な空きクラスタの情報を要求する。ディレクトリエントリ制御部２４は、この空きクラスタ情報に基づきファイル書き込みの際の先頭クラスタ番号をクラスタ制御部２３に渡す。先頭クラスタ番号は、クラスタ制御部２３から位置算出部２５に渡され、位置算出部２５は、渡されたクラスタ番号をＬＢＡに変換してデバイスドライバ１２Ａに渡す。
【００５６】
アプリケーション部１０からファイルシステム部１１に渡された記録データは、先ず、この先頭クラスタ番号で示されるクラスタに書き込まれる。以降、クラスタ制御部２３は、位置制御部２５とやりとりを行いデータを書き込むクラスタのクラスタ番号を指定し、指定されたクラスタ番号が位置算出部２５でＬＢＡに変換されて記録データが当該ＬＢＡに対して書き込まれると共に、データが書き込まれたクラスタのクラスタ番号がＦＡＴ制御部２２に渡され、ＦＡＴに登録される。
【００５７】
このように、アプリケーション部１０による記録媒体１３に対するファイル単位のアクセス要求は、ファイルシステム部１１において、記録制御部２０でクラスタ単位のアクセス要求に変換され、さらに記録媒体制御部２１でＬＢＡに変換される。デバイスドライバ部１２は、このＬＢＡに基づき、例えばＡＴＡといった所定のプロトコルを用いたインターフェイスによるコマンドを生成し、このコマンドを記録媒体１３に対して供給する。これにより、記録媒体１３では、セクタ単位でのアクセスがなされる。
【００５８】
例えば、データの書き込み時には、デバイスドライバ部１２において所定のインターフェイスによるライトコマンドが生成され、このライトコマンドと記録データとが、記録媒体１３に対して渡される。このようにして、記録媒体１３に対してセクタ単位で記録データの書き込みがなされる。
【００５９】
なお、実際には、ＲＡＭ３０の所定領域がバッファメモリとして確保され、記録データは、一旦、このバッファメモリに溜め込まれる。一例として、ファイルシステム部１１は、例えばアプリケーション部１０からの書き込み要求に基づき、バッファメモリを参照し記録データを書き込むためのクラスタ番号を決める。デバイスドライバ部１２は、バッファメモリから記録データを読み出し、ライトコマンドと共に記録媒体１３に渡す。
【００６０】
図９は、この発明の実施の第１の形態による一例の記録処理を示すフローチャートである。以下では、図８における記録媒体１３Ａをハードディスクとし、ハードディスク１３Ａと記述する。また、図８における記録媒体１３Ｂをフラッシュメモリといった書き換え可能な不揮発性メモリとし、不揮発性メモリ１３Ｂと呼ぶ。これらハードディスク１３Ａおよび不揮発性メモリ１３Ｂは、予めシステムにマウントされているものとする。また、不揮発性メモリ１３Ｂは、予め、デバイスドライバ１２Ｂによりハードディスク１３Ａと同様にセクタ単位でアクセスが可能なようにされると共に、ファイルシステム部１１によりセクタに対してＬＢＡが対応付けられ、管理される。なお、不揮発性メモリ１３Ｂにおける１セクタのサイズは、ハードディスク１３Ａにおける１セクタのサイズと同一とする。
【００６１】
このフローチャートによる各処理は、例えばシステムのＯＳの制御に基づきファイルシステム部１１により実行される。より詳細には、ファイルシステム部１１の位置算出部２５において実行される。例えばアプリケーション部１０によりファイルの書き込み要求が出されると、記録データがバッファメモリに所定に溜め込まれると共に、ステップＳ１０で、書き込み処理に即したタイムアウト値が設定される。タイムアウト値は、例えば数秒乃至数十秒が設定される。タイムアウト値は、記録処理に先立ち予め設定しておいてもよい。
【００６２】
ステップＳ１１で、バッファに溜め込まれたＮセクタ分の記録データがハードディスク１３Ａのセクタ番号Ｘで示されるセクタから書き込まれる。
【００６３】
ハードディスク１３Ａへの記録データの書き込み処理は、例えば次のように行われる。ファイルシステム部１１は、アプリケーション部１０によるハードディスク１３Ａに対するファイルの記録要求に対して、上述したように、ディレクトリエントリを参照してファイル情報を作成または取得すると共に、ＦＡＴを参照して記録データを書き込むクラスタ番号を取得し位置算出部２５によりＬＢＡを計算する。ＬＢＡは、デバイスドライバ１２Ａに渡され、ライトコマンドが生成される。デバイスドライバ１２Ａは、バッファメモリを制御してセクタ単位で記録データを読み出し、ハードディスク１３Ａに対して、指定されたセクタ番号のセクタから順次、記録データを書き込むように要求を出す。
【００６４】
次のステップＳ１２で、ハードディスク１３Ａに対する書き込みが成功したか否かが判断される。すなわち、ステップＳ１１における書き込み結果を示すアクセス応答が、ハードディスク１３Ａからデバイスドライバ１２Ａを介してファイルシステム部１１の位置算出部２５に返される。若し、書き込みが成功したと判断されれば、処理はステップＳ１３に移行され、書き込みが成功した旨がファイルシステム部１１から上位、例えばアプリケーション部１０やＯＳに通知され、Ｎセクタ分の記録処理が終了される。
【００６５】
一方、若し、ステップＳ１２でハードディスク１３Ａに対するＮセクタ分の書き込みが成功しなかったと判断されたら、処理はステップＳ１４に移行する。ステップＳ１４では、書き込みが失敗したと判断された理由が、ステップＳ１０で設定されたタイムアウト値に対するタイムアウトエラーであるか否かが判断される。例えば、ハードディスクから、インターフェイスに基づくコマンドにより書き込み失敗の理由が通知される。
【００６６】
若し、ステップＳ１４で、書き込みが失敗した理由がタイムアウトエラーではないと判断されたら、処理はステップＳ２０に移行され、書き込みが失敗した旨がファイルシステム部１１から上位、例えばアプリケーション部１０やＯＳに通知され、Ｎセクタ分の記録処理が終了される。
【００６７】
一方、ステップＳ１４で、書き込みが失敗した理由がタイムアウトエラーであると判断されれば、処理はステップＳ１５に移行され、不揮発性メモリ１３Ｂの空き容量が確認される。不揮発性メモリ１３Ｂの空き容量は、後述する退避情報（図１０Ｂ参照）に基づき取得することができる。なお、この時点では、バッファに記憶されるＮセクタ分の記録データは、バッファ内に保持されている。
【００６８】
次のステップＳ１６では、ステップＳ１５で取得された不揮発性メモリ１３Ｂの空き容量情報に基づき、ステップＳ１２で書き込みが失敗していると判断されたＮセクタ分の記録データを、不揮発性メモリ１３Ｂに退避可能か否かが判断される。すなわち、不揮発性メモリ１３ＢにＮセクタ分以上の空き容量があれば、記録データの退避が可能であると判断できる。若し、不揮発性メモリ１３ＢにＮセクタ分のデータを書き込めるだけの空き容量が存在しない場合には、書き込みが失敗したとして処理がステップＳ２０に移行され、書き込み失敗が上位に通知される。
【００６９】
一方、ステップＳ１６で、不揮発性メモリ１３ＢにＮセクタ分以上の空き容量が存在すると判断されたら、Ｎセクタ分の記録データの退避が可能であるとして処理はステップＳ１７に移行される。ステップＳ１７では、バッファに保持されているＮセクタ分の記録データを、不揮発性メモリ１３Ｂに対して、所定のセクタ番号Ｙで示されるセクタからＮセクタ分、書き込む。
【００７０】
例えば、ファイルシステム部１１は、デバイスドライバ１２Ｂに対してＮセクタ分の記録データを不揮発性メモリ１３Ｂに書き込むためのアドレスをＬＢＡで指定すると共に、ハードディスク１３Ａに対する書き込みが失敗したＮセクタ分の記録データをバッファから読み出してデバイスドライバ１２Ｂに渡す。デバイスドライバ１２Ｂは、不揮発性メモリ１３Ｂに対して、ＬＢＡで与えられたアドレスを変換したセクタ番号が示すセクタから、Ｎセクタ分の記録データを順次書き込む。
【００７１】
このとき、位置算出部２５は、デバイスドライバ部１２側には、不揮発性メモリ１３ＢのアドレスをＬＢＡで指定し、記録制御部２０側には、クラスタ制御部２３で指定されたクラスタ番号での書き込みが行われているように通知する。このように位置算出部２５すなわち記録媒体制御部２１においてアドレス情報を制御することで、記録データを不揮発性メモリ１３Ｂに書き込みながら、当該記録データが恰もハードディスク１３Ａに記録されているかのように、上位側に見せることができる。これにより、ステップＳ１２で落下や振動、衝撃などにより書き込みが成功しなかったとされた場合でも、記録を継続させることができる。
【００７２】
ステップＳ１８で、不揮発性メモリ１３Ｂに対するＮセクタ分の記録データの書き込みが成功したか否かが判断される。例えば、デバイスドライバ１２Ｂから不揮発性メモリ１３Ｂに対するセクタ単位での書き込み要求に対する不揮発性メモリ１３Ｂからの応答に基づき、書き込み成功の可否を判断することができる。若し、書き込みに失敗したと判断されれば、処理はステップＳ２０に移行され、書き込みを要求されたデータの書き込みが失敗した旨が上位に通知される。
【００７３】
一方、ステップＳ１８で、Ｎセクタ分の記録データの不揮発性メモリ１３Ｂへの書き込みが成功したと判断されれば、処理はステップＳ１９に移行される。ステップＳ１９では、ハードディスク１３Ａに対する書き込みが失敗したＮセクタ分の記録データを不揮発性メモリ１３Ｂに書き込んだことによる、Ｎセクタ分の記録データの不揮発性メモリ１３Ｂへの退避情報を作成する。そして、退避情報が作成されると、処理はステップＳ１３に移行され、要求されたデータの書き込みが成功した旨が上位システムに通知される。
【００７４】
上述した、ステップＳ１０からステップＳ２０までの一連の処理は、位置算出部２５のアクセス要求単位で繰り返される。上述の例では、Ｎセクタ分の書き込みが完了したら、処理がステップＳ１０またはステップＳ１１に戻され、同様の処理により次のＮセクタ分の記録データの記録がなされる。このとき、セクタ数を示しているＮの値は、繰り返し毎に異なっていてよい。
【００７５】
図１０は、ステップＳ１９で作成される一例の退避情報を示す。この退避情報は、図１０Ａに例示される、ハードディスク１３Ａから不揮発性メモリ１３Ｂに対して書き込みが退避された記録データの、ハードディスク１３Ａに本来書き込まれるべきセクタのアドレス情報（退避元情報）と、不揮発性メモリ１３Ｂに退避して書き込まれたセクタのアドレス情報（退避先情報）とが対応付けられたエントリからなるテーブルと、図１０Ｂに例示される、不揮発性メモリ１３Ｂの使用容量および／または空き容量を示す情報とからなる。
【００７６】
なお、図１０Ｂの不揮発性メモリ１３Ｂの使用容量および／または空き容量を示す情報は、例えば不揮発性メモリ１３Ｂにおいてハードディスク１３Ａから退避されたデータを書き込んだ容量に基づき取得される。一例として、不揮発性メモリ１３Ｂがハードディスク１３Ａから退避されたデータを書き込むことにのみ用いられる場合には、ハードディスク１３Ａからの記録データの退避が全く行われていない状態では、不揮発性メモリ１３Ｂの使用容量が０となる。
【００７７】
退避元情報では、上述のステップＳ１２において書き込みが成功しなかったと判断されたハードディスク１３Ａのアドレス情報が、開始ＬＢＡとして示され、書き込みがハードディスク１３Ａから不揮発性メモリ１３Ｂに対して退避されたセクタ数が、セクタカウントとして示される。退避先情報についても同様に、上述のステップＳ１７で不揮発性メモリ１３Ｂへの書き込みが開始されたアドレスが開始ＬＢＡとして示され、不揮発性メモリ１３Ｂに対して書き込まれたセクタ数が、セクタカウントとして示される。なお、ステップＳ１２でハードディスク１３Ａに対して書き込みが試みられたＮセクタ分の記録データが全て不揮発性メモリ１３Ｂに退避された場合には、退避元情報と退避先情報とでセクタカウントが一致することになる。
【００７８】
図１０の例では、退避情報の１エントリは、２バイトのデータ長を有するエントリ番号と、退避元情報について、バイトのデータ長を有する開始ＬＢＡおよび４バイトのデータ長を有するセクタカウントと、退避先情報について、バイトのデータ長を有する開始ＬＢＡおよび４バイトのデータ長を有するセクタカウントとからなり、２６バイトのデータ長を有する。すなわち、１の退避記録処理に費やされる退避情報の容量は、高々２６バイトである。
【００７９】
図１０Ａに示す退避情報と、図１０Ｂに示す不揮発性メモリ１３Ｂの空き容量に関する情報とは、それぞれ書き換え可能な不揮発性のメモリに保持される。この退避情報および空き容量情報を保持する不揮発性メモリは、ハードディスク１３Ａから退避した記録データを書き込む不揮発性メモリ１３Ｂを兼用して用いてもよいし、別途、メモリを用意することもできる。以下、この退避情報および空き容量情報を保持するメモリを、退避情報保持メモリと呼ぶ。
【００８０】
上述したステップＳ１１による、バッファに溜め込まれた記録データをハードディスク１３Ａに書き込む処理は、ハードディスク１３Ａそのものと、当該ハードディスク１３Ａを駆動するためのドライブ装置からなるハードディスクドライブが有するキャッシュメモリの制御に応じて、図１１に例示されるように、３種類の処理が考えられる。
【００８１】
すなわち、一般的にドライブハードディスクは、内部にキャッシュメモリを有し、ハードディスクドライブに対して入出力されるデータを一時的にキャッシュメモリに溜め込み、キャッシュメモリに対するデータの書き込みおよびキャッシュメモリからのデータの読み出しのタイミングを所定に制御することで、ハードディスクドライブ内におけるハードディスクに対するアクセスを、見かけ上均一化することができる。また、キャッシュメモリに溜め込まれたデータを用いることで、ハードディスクにおけるセクタ書き込みエラーやセクタ読み出しエラーに対し、ある程度、対処できる。キャッシュメモリの制御は、例えばＡＴＡといった、ハードディスクドライブのインターフェイスからのコマンドによりなされる。
【００８２】
図１１Ａは、ハードディスクドライブがキャッシュメモリを持たないか、キャッシュメモリの制御を行わない場合の例である。すなわち、セクタ書き込みが開始されると、単に、バッファに溜め込まれた記録データを、ハードディスク１３Ａのセクタ番号Ｘで示されるセクタからＮセクタ分、書き込む（ステップＳ１００）。
【００８３】
図１１Ｂおよび図１１Ｃは、ハードディスクドライブにおいてキャッシュメモリの制御を行う場合の例である。図１１Ｂの例では、バッファに溜め込まれた記録データを、ハードディスク１３Ａのセクタ番号Ｘで示されるセクタからＮセクタ分書き込み（ステップＳ１０１）、次のステップＳ１０２で、ハードディスクドライブ内のキャッシュメモリに溜め込まれているデータを、ハードディスク１３Ａに所定に書き込む。
【００８４】
図１１Ｃの例では、セクタ書き込みが開始されると、先ず、ハードディスクドライブ内のキャッシュメモリの使用をＯＦＦとし（ステップＳ１０３）、ハードディスクドライブに入力される記録データをキャッシュメモリに溜め込まないようにする。そして、ハードディスクドライブに入力された記録データを、ハードディスク１３Ａのセクタ番号Ｘで示されるセクタからＮセクタ分書き込む（ステップＳ１０４）。Ｎセクタ分の記録データの書き込みが完了したら、ハードディスクドライブ内のキャッシュメモリの使用をＯＮとする（ステップＳ１０５）。
【００８５】
図１１Ａ、図１１Ｂおよび図１１Ｃで示した何れの場合であっても、落下や振動、衝撃などによりハードディスク１３Ａへの書き込み処理がタイムアウトエラーを起こす可能性は、存在する。タイムアウトエラーに対する対処方法は、これら３種類の場合に共通である。
【００８６】
図１２は、ハードディスク１３Ａに対して動画データファイル「M2U00001.MPG」、「M2U00002.MPG」および「M2U00003.MPG」を書き込んだ場合の一例のファイルレイアウトを示す。この図１２の例では、クラスタ番号３で示されるクラスタにディレクトリエントリが書き込まれ、ディレクトリエントリに対してファイル「M2U00001.MPG」、「M2U00002.MPG」および「M2U00003.MPG」の情報がそれぞれ書き込まれる。
【００８７】
例えば、ファイル「M2U00001.MPG」が、ディレクトリエントリの情報に基づき先頭クラスタ番号がクラスタ番号４とされ、クラスタ番号４からクラスタ番号Ｘまでの範囲に書き込まれる。
【００８８】
次のファイル「M2U00002.MPG」は、ディレクトリエントリの情報に基づき先頭クラスタ番号がクラスタ番号Ｘ＋１とされ、クラスタ番号Ｘ＋１のクラスタから順次、データの書き込みがなされる。この図１２の例では、このファイル「M2U00002.MPG」におけるクラスタ番号Ｘ＋Ｎおよびクラスタ番号Ｘ＋Ｎ＋１で示すクラスタが、落下や振動、衝撃によるタイムアウトエラーで書き込みが行われていない。
【００８９】
ハードディスク１３Ａに対する書き込みに際してタイムアウトエラーが発生すると、上述した図１０のフローチャートに従い、記録データの記録先がハードディスク１３Ａから不揮発性メモリ１３Ｂに切り換えられ、ハードディスク１３Ａのクラスタ番号Ｘ＋Ｎおよびクラスタ番号Ｘ＋Ｎ＋１で示すクラスタに記録すべき記録データが、不揮発性メモリ１３Ｂに退避される。位置算出部２５は、デバイスドライバ部１２には不揮発性メモリ１３Ｂに対するＬＢＡを指定し、上位、例えば記録制御部２０には、ハードディスク１３Ａに書き込みがなされているような通知を行う。
【００９０】
これにより、ハードディスク１３Ａにおいてクラスタ番号Ｘ＋Ｎの先頭アドレスであるＬＢＡ＝ｘ1から、クラスタ番号Ｘ＋Ｎ＋１の末尾アドレスであるＬＢＡ＝ｘ2の範囲にはデータが記録されない状態とされる。
【００９１】
以降、この例では次のクラスタからファイル「M2U00002.MPG」の終端クラスタ（クラスタ番号Ｙ）まで、ハードディスク１３Ａに対して正常に書き込みがなされている。
【００９２】
この実施の第１の形態では、不揮発性メモリ１３Ｂに退避されたデータを、所定のタイミングでハードディスク１３Ａに書き戻すようにしている。不揮発性メモリ１３Ｂに退避したデータをハードディスク１３Ａに書き戻すタイミングとしては、例えば、（１）ハードディスク１３Ａに記録されたデータの読み出し時が考えられる。また、（２）システムの起動時または終了時に書き戻しを行うことが考えられる。さらに、ハードディスク１３Ａのシステムに対するマウント時およびアンマウント時に書き戻しを行うことが考えられる。
【００９３】
例えば、ハードディスク１３Ａを搭載した装置を、パーソナルコンピュータといったコンピュータ装置に所定のインターフェイスで接続した際に、ハードディスク１３Ａをコンピュータ装置に対してマウントすることで、ハードディスク１３Ａをコンピュータ装置の外部記憶装置として認識させるようにできる。また、システムに電源を投入したり、電源をＯＦＦする際に、ハードディスク１３Ａのシステムに対するマウント処理およびアンマウント処理が行われる。このマウント時や、マウントを解除するアンマウント時に、ハードディスク１３Ａに対する書き戻しを行う。ハードディスク１３Ａを搭載した装置と、コンピュータ装置とを接続するインターフェイスとしては、ＵＳＢ(Universal Serial Bus)やＩＥＥＥ１３９４(Institute Electrical and Electronics Engineers 1394)が考えられる。
【００９４】
図１３および図１４は、（１）の、ハードディスク１３Ａからデータを読み出す際に、不揮発性メモリ１３Ｂに書き込まれた記録データをハードディスク１３Ａに対して書き戻す一例の処理を示すフローチャートである。なお、図１３および図１４において、符号「Ａ」および「Ｂ」は、対応する符号に処理が移行することを示す。
【００９５】
フローチャートの実行に先立って、例えばアプリケーション部１０からファイルシステム部１１に対して、ハードディスク１３Ａから読み出すファイル名が渡される。ファイルシステム部１１は、記録制御部２０において、ディレクトリエントリを参照して渡されたファイル名のエントリを検索し、当該ファイルの先頭セクタ番号を取得する。ファイルシステム部１１は、記録制御部２０において、さらにＦＡＴを参照し、先頭クラスタ番号のクラスタに続くクラスタのクラスタ番号を順次取得し、読み出しを行うアクセス要求を生成する。一例として、クラスタ番号が連続したクラスタに対して連続的にアクセスするように、アクセス要求が生成される。
【００９６】
ステップＳ３０で、記録媒体制御部２１は、図１０に例示した退避情報を参照し、アクセスが要求されたＬＢＡをチェックする。チェックの結果、次のステップＳ３１で、（Ａ）アクセスが要求された範囲のＬＢＡのデータが全て不揮発性メモリ１３Ｂに退避されているか、（Ｂ）当該範囲のＬＢＡのデータが全て退避されずハードディスク１３Ａに書き込まれているか、（Ｃ）当該範囲のうち一部のＬＢＡのデータが不揮発性メモリ１３Ｂに退避されているかで、処理を分岐させる。
【００９７】
ステップＳ３１において、（Ａ）の、アクセスが要求された範囲のＬＢＡのデータが全て不揮発性メモリ１３Ｂに退避していると判断された場合、処理はステップＳ３２に移行される。ステップＳ３２では、退避情報に基づき不揮発性メモリ１３Ｂに対してアクセス要求がなされ、不揮発性メモリ１３Ｂからデータの読み出しが行われる。次のステップＳ３３で、ステップＳ３２でのアクセス要求に応じて不揮発性メモリ１３Ｂから読み出されたデータの、ハードディスク１３Ａに対する書き戻しが試みられる。
【００９８】
一例として、上述した図１２を参照し、ハードディスク１３Ａに対し、クラスタ番号Ｘ＋Ｎおよびクラスタ番号Ｘ＋Ｎ＋１のクラスタの読み出しが要求された場合、退避情報に基づきハードディスク１３Ａのクラスタ番号Ｘ＋Ｎの先頭アドレスであるＬＢＡ＝ｘ1からクラスタ番号Ｘ＋Ｎ＋１の末尾アドレスであるＬＢＡ＝ｘ2の範囲に対応するデータが全て、不揮発性メモリ１３Ｂに退避されていることが分かる。記録媒体制御部２１は、退避情報の退避先情報に基づき、ハードディスク１３Ａに対して読み出しが要求されたＬＢＡに対応する、不揮発性メモリ１３Ｂ上のアドレスにアクセスするようにデバイスドライバ１２Ｂに対してアクセス要求を出す（ステップＳ３２）。この要求に応じて、デバイスドライバ１２Ｂにより、不揮発性メモリ１３Ｂからデータが読み出される。読み出されたデータは、記録媒体制御部２１に渡され、不揮発性メモリ１３Ｂのアドレス情報がハードディスク１３Ａのアドレス情報に変換されて、上位に渡される。
【００９９】
ステップＳ３３では、記録媒体制御部２１は、デバイスドライバ１２Ａに対して、ステップＳ３２で不揮発性メモリ１３Ｂから読み出されたデータを、退避情報の退避元情報に基づきハードディスク１３ＡのアドレスＬＢＡ＝ｘ1からＬＢＡ＝ｘ2に書き込むように要求する。この要求に応じて、デバイスドライバ１２Ａにより、ハードディスク１３Ａに対してデータの書き込みが試みられる。
【０１００】
ステップＳ３３による、ハードディスク１３Ａに対する書き込みが成功したか否かが、ステップＳ３４で判断される。若し、書き込みが成功したと判断されれば、処理はステップＳ３５に移行され、書き込みが成功した分に対応して退避情報の変更を行う。例えば、図１０Ａの退避情報における対応するエントリが削除されると共に、図１０Ｂの不揮発性メモリ１３Ｂの使用容量および／または空き容量を示す情報が変更される。
【０１０１】
不揮発性メモリ１３Ｂに書き込まれたデータのハードディスク１３Ａに対する書き戻しが成功した場合、このように退避情報が書き換えられて、書き戻しを行ったデータに関する情報が削除される。また、不揮発性メモリ１３Ｂ上の書き戻しに成功した分のデータが削除される。
【０１０２】
一方、ステップＳ３４で、例えばタイムアウトエラーやその他の原因によりハードディスク１３Ａに対する書き込みが失敗したと判断されれば、一連の書き戻し処理が終了され、退避情報が保持される。この場合には、上位から読み出しが要求されたデータは、不揮発性メモリ１３Ｂから読み出されることになる。
【０１０３】
ステップＳ３１で、（Ｂ）の、当該範囲のＬＢＡのデータが全て退避されずハードディスク１３Ａに書き込まれていると判断された場合には、処理はステップＳ３６に移行される。この場合には、上位から指示されたアドレスをそのまま用いて、ハードディスク１３Ａに対して読み出しのためのアクセスがなされる。上述した図１２を参照して、例えばクラスタ番号３およびクラスタ番号４で示されるクラスタをアクセスするように要求された場合、退避情報に基づきこれらのクラスタのデータが不揮発性メモリ１３Ｂに退避されていないことが分かる。記録媒体制御部２１は、上位から読み出しを要求されたクラスタ番号からＬＢＡを算出し、デバイスドライバ１２Ａに渡す。
【０１０４】
ステップＳ３１で、（Ｃ）当該範囲のうち一部のＬＢＡのデータが不揮発性メモリ１３Ｂに退避されていると判断された場合には、処理はステップＳ３７に移行される（図１４参照）。ステップＳ３７では、退避情報に基づき、ハードディスク１３Ａおよび不揮発性メモリ１３Ｂのアクセス順序が算出される。
【０１０５】
例えば、図１２を参照し、上位からクラスタ番号Ｘ＋Ｎ−１からクラスタ番号Ｘ＋Ｎ＋２までの範囲を読み出すように要求された場合について考える。退避情報に基づき、要求されたクラスタ番号Ｘ＋Ｎ−１からクラスタ番号Ｘ＋Ｎ＋２までの範囲のうち、クラスタ番号Ｘ＋Ｎからクラスタ番号Ｘ＋Ｎ＋１に対応するＬＢＡ＝ｘ1からＬＢＡ＝ｘ2の範囲において、データの不揮発性メモリ１３Ｂへの退避が行われているのが分かる。
【０１０６】
この例の場合、ステップＳ３７において、退避情報に基づき、先ずクラスタ番号Ｘ＋Ｎ−１で示されるクラスタをハードディスク１３Ａから読み出し、次にクラスタ番号Ｘ＋Ｎからクラスタ番号Ｘ＋Ｎ＋１までのクラスタについては、不揮発性メモリ１３Ｂの対応するアドレスからデータを読み出す。その次は、クラスタ番号Ｘ＋Ｎ＋２で示されるクラスタをハードディスク１３Ａから読み出すように、ハードディスク１３Ａおよび不揮発性メモリ１３Ｂのアクセス順序を決める。
【０１０７】
ハードディスク１３Ａに対するアクセス要求を行う場合には（ステップＳ３８）、処理はステップＳ３９に移行されてハードディスク１３Ａへのアクセス要求がなされ、ハードディスク１３Ａからデータが読み出される。そして、処理はステップＳ４０に移行され、読み出し要求された全てのアドレスからデータが読み出されたか否かが判断される。若し、要求された全てのアドレスからデータが読み出されていないと判断されたら、処理はステップＳ３８に戻され、次のアクセス順のアドレスに対するアクセスが行われる。
【０１０８】
不揮発性メモリ１３Ｂからデータを読み出す際には（ステップＳ３８）、上述のステップＳ３２〜ステップＳ３５の処理と同様にして、退避情報に基づき、不揮発性メモリ１３Ｂに対して読み出しアクセスを行い（ステップＳ４１）、読み出されたデータをハードディスク１３Ａに書き戻す処理を行う（ステップＳ４２）。ハードディスク１３Ａに対する書き戻しが成功したと判断されたら（ステップＳ４３）、退避情報の対応するエントリと、不揮発性メモリ１３Ｂの対応するデータが削除される（ステップＳ４４）。そして、処理はステップＳ４０に移行される。
【０１０９】
次に、（２）および（３）の、ハードディスク１３Ａのマウント時およびアンマウント時に書き戻しを行う一例の処理について、図１５〜図１７のフローチャートを用いて説明する。図１５は、不揮発性メモリ１３Ｂに書き込まれたデータのハードディスク１３Ａに対する書き戻しを、ハードディスク１３Ａのシステムへのマウント時に行う場合の一例の処理を示す。例えば、装置の電源を投入し、システムが起動される場合に、ハードディスク１３Ａのマウントが行われる。また、ハードディスク１３Ａを用いた装置が所定のインターフェイスでコンピュータ装置と接続され、ハードディスク１３Ａが当該コンピュータ装置の外部記憶装置として用いられている場合に、インターフェイスが切断された後、ハードディスク１３Ａを再び使用可能とさせる際に、ハードディスク１３Ａのマウントが行われる。
【０１１０】
例えば装置の電源投入時やインターフェイス切断時に、先ず、ハードディスク１３Ａに関連する処理以外の所定の処理がなされ（ステップＳ５０）、次に、ハードディスク１３Ａがシステムにマウントされる（ステップＳ５１）。なお、ハードディスク１３Ａを用いた装置が所定のインターフェイスでコンピュータ装置に接続されハードディスク１３Ａが当該コンピュータ装置の外部記憶装置として用いられた後に、インターフェイスが切断される場合には、当該コンピュータ装置側において予め、所定の手順で以てハードディスク１３Ａのアンマウント処理が行われているものとする。
【０１１１】
ハードディスク１３Ａがシステムにマウントされると、退避情報保持メモリが参照され、退避情報に基づき不揮発性メモリ１３Ｂに書き込まれているデータをハードディスク１３Ａに書き戻す処理が行われる（ステップＳ５２）。このステップＳ５２の処理の詳細については、後述する。データのハードディスク１３Ａへの書き戻しが終了したら、ステップＳ５３で他の所定の処理がなされる。
【０１１２】
図１６は、不揮発性メモリ１３Ｂに書き込まれたデータのハードディスク１３Ａに対する書き戻しを、ハードディスク１３Ａのシステムからのアンマウント時に行う場合の一例の処理を示す。例えば、装置の電源を切断し、システムが停止される場合に、ハードディスク１３Ａのアンマウントが行われる。また、ハードディスク１３Ａを用いた装置をコンピュータ装置の外部記憶装置として用いるために、当該ハードディスク１３Ａを用いた装置を所定のインターフェイスで当該コンピュータ装置に接続した際に、当該ハードディスク１３Ａを用いた装置においてハードディスク１３Ａがアンマウントされる。
【０１１３】
例えば装置の電源切断時やコンピュータ装置に対して所定のインターフェイスで接続された際に、先ず、バッファメモリやハードディスク１３Ａが有するキャッシュメモリに溜め込まれた、ハードディスク１３Ａに対して未書き込みの記録データがハードディスク１３Ａに対して所定に書き込まれ（ステップＳ６０）、オープン中のファイルがクローズされる（ステップＳ６１）。そして、退避情報保持メモリが参照され、退避情報に基づき不揮発性メモリ１３Ｂに書き込まれているデータをハードディスク１３Ａに書き戻す処理が行われる（ステップＳ６２）。データのハードディスク１３Ａに対する書き戻しが終了したら、ハードディスク１３Ａがシステムからアンマウントされ（ステップＳ６３）、他の所定の処理がなされる。
【０１１４】
図１７は、図１５におけるステップＳ５２、ならびに、図１６におけるステップＳ６２による、不揮発性メモリ１３Ｂのデータをハードディスク１３Ａに書き戻す一例の処理を示す。先ず、ステップＳ７０で、退避情報保持メモリに保持されている、不揮発性メモリ１３Ｂの使用容量および／または空き容量の情報が取得される（図１０Ｂ参照）。そして、次のステップＳ７１で、取得された使用容量および／または空き容量の情報に基づき、不揮発性メモリ１３Ｂにハードディスク１３Ａから退避された記録データが書き込まれているか否かが判断される。
【０１１５】
例えば、不揮発性メモリ１３Ｂがハードディスク１３Ａから退避された記録データの書き込みにのみ、用いられている場合、不揮発性メモリ１３Ｂの使用量が０であるか否かを調べる。
【０１１６】
若し、不揮発性メモリ１３Ｂにハードディスク１３Ａから退避された記録データが書き込まれていないと判断されたら、不揮発性メモリ１３Ｂからハードディスク１３Ａへのデータの書き戻しも行われず、図１７のフローチャートによる処理が終了される。処理は、図１５のステップＳ５３や図１６のステップＳ６３の処理にそのまま移行されることになる。
【０１１７】
一方、ステップＳ７１で、不揮発性メモリ１３Ｂにハードディスク１３Ａから退避された記録データが書き込まれていると判断されれば、処理はステップＳ７２に移行され、不揮発性メモリ１３Ｂに書き込まれたデータのハードディスク１３Ａへの書き戻しが行われる。すなわち、図１３のフローチャートを用いて説明したステップＳ３２〜ステップＳ３５の処理と同様にして、退避情報に基づき、不揮発性メモリ１３Ｂに対して読み出しアクセスを行い、読み出されたデータをハードディスク１３Ａに書き戻す処理を行う（ステップＳ７２）。ハードディスク１３Ａに対する書き戻しが成功したと判断されたら、退避情報の対応するエントリと、不揮発性メモリ１３Ｂの対応するデータが削除され（ステップＳ７３）、図１７のフローチャートによる処理が終了される。
【０１１８】
次に、この発明の実施の第２の形態について説明する。この発明の実施の第２の形態は、上述した発明の実施の第１の形態を携帯用のビデオカメラ装置に適用した例である。図１８は、この発明の実施の第２の形態による携帯用ビデオカメラ装置１００の一例の構成を示す。
【０１１９】
このビデオカメラ装置１００は、被写体からの光をＣＣＤ(Charge Coupled Device)やＣＭＯＳ(Complementary Metal-Oxide Semiconductor)イメージセンサといった撮像素子で受光して、受光された光を光電変換により電気信号に変換し所定の処理を施してディジタルビデオデータとし、このディジタルビデオデータをハードディスクといったディスク状記録媒体に記録する。
【０１２０】
ディジタルビデオデータをディスク状記録媒体に記録する際に、落下や振動、衝撃によりタイムアウトエラーが発生したら、ビデオカメラ装置１００が有する不揮発性メモリに記録データを書き込み、当該不揮発性メモリに記録データを退避させるようにする。不揮発性メモリに退避された記録データは、ディスク状記録媒体からディジタルビデオデータを再生する際や、ビデオカメラ装置１００の電源を切断する際などに、ディスク状記録媒体に書き戻すようにする。
【０１２１】
また、このビデオカメラ装置１００は、有線通信や無線通信により、それぞれ所定のインターフェイスを介して外部の機器と接続することができる。接続される外部の機器がパーソナルコンピュータなどのコンピュータ装置である場合には、ディジタルビデオデータが記録されるディスク状記録媒体を接続先機器にマウントし、接続先機器の外部記録媒体として用いることができるようにされている。ビデオカメラ装置１００を接続先機器にマウントおよびアンマウントする際に、不揮発性メモリに退避した記録データをディスク状記録媒体に書き戻すようにする。
【０１２２】
図１８において、ＣＰＵ(Central Processing Unit)１２０は、ＲＯＭ１２３に予め記憶されたプログラムデータに基づき、ＲＡＭ１２１をワークメモリとして用いてこのビデオカメラ装置１００の全体を制御する。ＣＰＵ１２０は、ＲＯＭ１２３からプログラムデータを読み出しＲＡＭ１２１上に展開して当該プログラムを実行する。このプログラムにより、図６および図８を用いて説明したアプリケーション部１０、ファイルシステム部１１およびデバイスドライバ部１２が実現される。なお、図１８では、ＣＰＵ１２０とビデオカメラ装置１００を構成する各部とが直接的に接続されるように示されているが、これはこの例に限らず、各部がバスに接続され、バスを介してコマンドやデータのやりとりを行うようにしてもよい。
【０１２３】
光学レンズ部１１０は、被写体からの光を光電変換部１１１が有する撮像素子に導くためのレンズ系、絞り調整機構、フォーカス調整機構、ズーム機構、シャッタ機構などを備え、被写体からの光を集光し光電変換部１１１に入射させる。絞り調整機構、フォーカス調整機構、ズーム機構、シャッタ機構は、ＣＰＵ１２０の制御に基づきカメラ機能部１１５により制御される。光電変換部１１１は、例えばＣＣＤやＣＭＯＳイメージセンサといった撮像素子を有し、光学レンズ部１１０を介して入射された光を光電変換により電気信号に変換し、さらに所定の信号処理を施し撮像信号として出力する。
【０１２４】
画像信号処理部１１２は、例えば、光電変換部１１１から出力された撮像信号をディジタル信号に変換する撮像信号処理部と、撮像信号処理部で撮像信号が変換されたディジタル信号に対して所定の信号処理を施すと共にベースバンドのディジタルビデオデータに変換するビデオ信号処理部と、ビデオ信号処理部で得られたベースバンドのディジタルビデオデータを所定の方式で圧縮符号化する圧縮符号化部とを有する。
【０１２５】
撮像信号処理部は、例えば光電変換部１１１から出力された撮像信号に対して、ＣＤＳ(Correlated Double Sampling)回路により画像情報を有する信号だけをサンプリングすると共に、ノイズを除去し、ＡＧＣ(Auto Gain Control)回路によりゲインを調整する。そして、Ａ／Ｄ変換によりディジタル信号に変換する。また、撮像信号処理部は、光電変換部１１１から出力された撮像信号の情報をＣＰＵ１２０に送る。ＣＰＵ１２０は、この情報に基づき光学レンズ部１１０を制御するための制御信号を生成し、フォーカス調整機構や絞り調整機構などの制御を行う。
【０１２６】
ビデオ信号処理部は、撮像信号処理部で得られたディジタル信号に対して所定の信号処理を施す。例えば、ビデオ信号処理部は、ディジタル信号に対して検波系の信号処理を施し、Ｒ（赤色）、Ｇ（緑色）およびＢ（青色）各色の成分を取り出す。そして、取り出された各色成分に基づきγ補正やホワイトバランス補正などの処理を行い、最終的に１本のベースバンドのディジタルビデオデータとして出力する。
【０１２７】
圧縮符号化部は、ビデオ信号処理部から出力されたベースバンドのディジタルビデオデータを、例えばＭＰＥＧ２(Moving Pictures Experts Group 2)方式に従い圧縮符号化する。この例に限定されず、例えばＨ．２６４｜ＡＶＣすなわちＩＴＵ−Ｔ(International Telecommunication Union-Telecommunication Standarization Sector)勧告Ｈ．２６４あるいはＩＳＯ(International Organization for Standarization)／ＩＥＣ(International Electrotechnical Commission)国際標準１４４９６−１０（ＭＰＥＧ−４パート１０）Advanced Video Codingに準じた圧縮符号化方式を用いることも考えられる。
【０１２８】
表示部１１４は、例えばＬＣＤ(Liquid Crystal Display)を表示素子として用い、画像信号処理部１１２から供給されたディジタルビデオデータに基づく表示を行うことができる。表示部１１４は、撮影時には撮影画像のモニタとして用いられ、再生時には、再生画像を映出させることができる。
【０１２９】
画像入出力部１１３は、画像信号処理部１１２から出力されたディジタルビデオデータを外部に出力する。外部から供給されたディジタルビデオデータを画像信号処理部１１２に供給することもできる。また、画像入出力部１１３にＡ／Ｄ変換部やＤ／Ａ変換部を持たせ、画像信号処理部１１２から出力されたディジタルビデオデータをアナログビデオ信号に変換して出力したり、外部から供給されたアナログビデオ信号をディジタルビデオデータに変換して画像信号処理部１１２に供給するようにしてもよい。
【０１３０】
音声入出力部１１６は、マイクロフォン、スピーカといった音声の入出力手段を有し、外部の音声を音声信号に変換したり、音声信号を音声に変換する。また、音声入出力部１１６は、音声信号の入出力手段も有する。音声処理部１１７は、音声入出力部１１６から供給されるアナログ音声信号をＡ／Ｄ変換してディジタルオーディオデータとし、ノイズ除去や音質補正など所定の音声信号処理を施してベースバンドのディジタルオーディオデータとして出力する。ベースバンドのディジタルオーディオデータを所定の方式で圧縮符号化してもよい。また、音声信号処理部１１７は、供給されるディジタルオーディオデータに対して音質補正や音量調整などの所定の音声信号処理を施してＤ／Ａ変換してアナログ音声信号とし、増幅処理などを行い音声入出力部１１６に供給する。
【０１３１】
操作入力部１２４は、このビデオカメラ装置１００の動作をユーザが操作するための操作子が所定に設けられ、操作子に対する操作に応じた制御信号を出力するこの制御信号は、ＣＰＵ１２０に供給される。ＣＰＵ１２０は、ユーザ操作に応じてそうさ入力部１２４から供給された制御信号に基づきなされるプログラムの処理により、ビデオカメラ装置１００の各部の動作を制御する。また、操作入力部１２４に、簡易的な表示部を設け、ビデオカメラ装置１００の動作に関する所定の表示を行うようにしてもよい。
【０１３２】
ドライブ部１２６は、ＣＰＵ１２０からの命令に基づき記録媒体の制御を行う。例えば、光電変換部１１１の撮像素子で撮像され画像信号処理部１１２で所定に圧縮符号化されたディジタルビデオデータを、ＣＰＵ１２０の命令に基づき記録媒体に記録する。
【０１３３】
ドライブ部１２６に対して適用可能な記録媒体は、ランダムアクセス可能な記録媒体であれば特に種類を問わないが、ハードディスクなどの磁気ディスク、記録可能なタイプのＤＶＤ(Digital Versatile Disc)やＣＤ(Compact Disc)、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標）といった光ディスク、光磁気ディスクといったディスク状記録媒体、半導体メモリが用いて好適である。
【０１３４】
ここで、半導体メモリとしてフラッシュメモリなどの書き換え可能な不揮発性メモリを用い、画像信号処理部１１２で圧縮符号化されたディジタルビデオデータを他の記録媒体、例えばハードディスクといったディスク状記録媒体に記録することで、この発明による、ディスク状記録媒体の記録エラーに対する記録データの退避処理が可能となる。
【０１３５】
なお、この図１８の例では、ドライブ部１２６が各種記録媒体に共通なように示されているが、実際には、記録媒体毎にドライブ部が設けられる。また、図１８に示した全ての記録媒体に対応している必要もなく、ビデオカメラ装置１００は、例えば上述の不揮発性メモリとしての半導体メモリと、ハードディスク、記録可能なタイプの光ディスクおよび光磁気ディスクのうち少なくとも１とに対応していればよい。
【０１３６】
通信部１２５は、ＣＰＵ１２０の制御に基づき、所定のプロトコルを用いて、有線および／または無線により外部機器との通信を行う。有線および／または無線通信のインターフェイスは、ディジタル通信が可能であれば特に種類を問わないが、有線通信としては、ＵＳＢ、ＩＥＥＥ１３９４、イーサネット（登録商標）などによるＬＡＮ(Local Area Network)などが考えられる。また、無線通信としては、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ、ｂｌｕｅｔｏｏｔｈなどが考えられる。また、ＵＳＢやＩＥＥＥ１３９４といったインターフェイスで、パーソナルコンピュータなどのホスト機能を有する外部機器と、このビデオカメラ装置１００とを接続することで、ビデオカメラ装置１００のドライブ部１２６に接続される記録媒体を、外部機器に対してマウントすることができる。
【０１３７】
センサ１２７は、ビデオカメラ装置１００に加えられた加速度を検出する。センサ１２７の検出結果は、ＣＰＵ１２０に渡される電源部１３０は、例えばバッテリからなり、このビデオカメラ装置１００の各部に対して電源を供給する。電源部１３０による電源の供給のＯＮ／ＯＦＦは、例えば操作入力部１２４に対する所定の操作に応じて、ＣＰＵ１２０により制御される。
【０１３８】
この実施の第２の形態によるビデオカメラ装置１００の一例の動作について、概略的に説明する。なお、以下では、ストリームデータは、ビデオカメラ装置１００に内蔵されるハードディスクドライブのハードディスクを記録媒体として記録されるものとする。また、ドライブ部１２６には、フラッシュメモリといった不揮発性メモリが他の記録媒体として接続されている。この場合、フラッシュメモリは、このビデオカメラ装置１００に予め内蔵されるものとすると、好ましい。
【０１３９】
先ず、ビデオカメラ装置１００の電源投入時には、図１５のフローチャートを用いて説明したように、電源投入に伴い、ビデオカメラ装置１００の各部で所定の処理が行われる（ステップＳ５０）。例えばＣＰＵ１２０によりＲＯＭ１２３からプログラムデータが読み込まれ、ファイルシステム部１１やデバイスドライバ部１２がプログラムにより形成されると共に、アプリケーション部１０が起動される。また、ビデオカメラ装置１００の各部が初期化される。そして、ドライブ部１２６に接続された記録媒体（この例では、ハードディスクおよびフラッシュメモリ）がＣＰＵ１２０によりシステムにマウントされ（ステップＳ５１）、退避情報がＣＰＵ１２０に読み込まれる。退避情報は、例えばフラッシュメモリの所定の領域に記憶されている。ＣＰＵ１２０は、退避情報に基づき、フラッシュメモリに退避データが存在すれば、当該退避データをハードディスクに書き戻す（ステップＳ５３）。その後、さらに必要な処理が行われる（ステップＳ５４）。
【０１４０】
記録時には、被写体からの光が光学レンズ部１１０を介して光電変換部１１１に入射され、撮像素子により電気信号に変換され、所定の信号処理により撮像信号として出力される。撮像信号は、画像信号処理部１１２に供給され、画像信号処理部１１２内の撮像信号処理部でディジタル信号に変換され、このディジタル信号は、ビデオ信号処理部で所定に信号処理されベースバンドのディジタルビデオデータとされる。このベースバンドのディジタルビデオデータは、表示部１１４に供給され表示素子に表示されると共に、画像入出力部１１３に供給される。
【０１４１】
また、画像信号処理部１１２は、撮像信号に基づくベースバンドのディジタルビデオデータを所定の方式で圧縮符号化して圧縮ディジタルビデオデータとする。
【０１４２】
また、音声入力部１１６が有するマイクロフォンにより音声が収音されてアナログ音声信号とされ、アナログ音声信号が音声信号処理部１１７でベースバンドのディジタルオーディオデータとされる。
【０１４３】
ＣＰＵ１２０は、例えば、操作入力部１２４に対するユーザの記録開始操作に応じて、画像信号処理部１１２から供給された圧縮ディジタルビデオデータと、音声信号処理部１１７から供給されたベースバンドのディジタルオーディオデータとを所定に多重化してストリームデータとし、ドライブ部１２６に供給する。そして、ＣＰＵ１２０は、ドライブ部１２６に対して、当該ストリームデータを記録媒体に記録するように命令を出す。ここでは、ストリームデータは、ファイルに格納されてハードディスクに記録されるものとする。
【０１４４】
ＣＰＵ１２０は、プログラムにより実行されるファイルシステム部１１（図８参照）の記録制御部２０で、ハードディスク上のディレクトリエントリおよびＦＡＴを参照し、ストリームデータが格納されるファイルを記録するための先頭クラスタ番号が求められ、さらに、先頭クラスタ番号のクラスタから連続して記録データが記録されるクラスタのクラスタ番号が取得される。ファイルシステム部１１の記録媒体制御部２１は、記録制御部２０で取得されたクラスタ番号をハードディスクのＬＢＡに変換する。ＬＢＡは、ＣＰＵ１２０によりプログラムにより実行されるデバイスドライバ部１２のハードディスクに対応するデバイスドライバに渡される。デバイスドライバは、ＬＢＡと記録データとに基づきハードディスクに対して記録データを書き込むためのコマンドを生成し、このコマンドに基づきハードディスクに対して、例えばセクタ単位で記録データを書き込む。
【０１４５】
ストリームデータをハードディスクに記録している間、ＣＰＵ１２０は、センサ１２７の出力信号を監視している。ＣＰＵ１２０は、センサ１２７により検出された加速度が所定値以上で、ストリームデータのハードディスクへの記録に際して記録エラーが発生する可能性があるような落下や振動、衝撃が、ビデオカメラ装置１００に対して加えられたと判断する。ＣＰＵ１２０は、センサ１２７に所定値以上の加速度が検出されると、ストリームデータの記録先をハードディスクからフラッシュメモリに退避させる。
【０１４６】
この場合、記録エラーを事前に回避できるため、図９のフローチャートを用いて説明した処理のうち、ステップＳ１５の不揮発性メモリの空き容量確認処理から、ステップＳ１９の退避情報作成およびステップＳ１３の書き込み成功通知までの処理が行われる。
【０１４７】
例えば、ＣＰＵ１２０は、センサ１２７の検出結果に基づきビデオカメラ装置１００に所定値以上の加速度が加えられたと判断したら、図９のステップＳ１５により、ハードディスクに書き込む記録データの退避先であるフラッシュメモリの空き容量を確認し、退避可能であれば、ハードディスクに書き込むためのバッファメモリに記憶された記録データを、フラッシュメモリに書き込む（ステップＳ１７）。書き込みが成功したら、退避情報を作成し、記憶されている退避情報を更新する（ステップＳ１９）。退避情報は、例えばドライブ部１２６に別途、フラッシュメモリなどの不揮発性メモリを接続し、当該不揮発性メモリに書き込むことができる。これに限らず、記録データの退避先となるフラッシュメモリの所定の領域を退避情報を書き込むために確保することもできる。記録データのフラッシュメモリへの書き込みが成功したら、上位に対してその旨通知する（ステップＳ１３）。
【０１４８】
ＣＰＵ１２０は、センサ１２７からの検出結果に基づき、ビデオカメラ装置１００に対して所定値以上の加速度が加えられている間、記録データのフラッシュメモリに対する退避記録を継続させる。そして、センサ１２７に検出される加速度が所定値を下回ったら、記録データのフラッシュメモリへの退避を終了し、記録データの記録先をフラッシュメモリからハードディスクに切り換える。
【０１４９】
ハードディスクに記録されたストリームデータの再生時には、図１３を用いて説明したように、フラッシュメモリに退避された記録データのハードディスクに対する書き戻しを試みるようにする。例えば、操作入力部１２４に対するユーザの再生開始操作に応じて、ＣＰＵ１２０は、退避情報を読み込む。そして、図１３および図１４のフローチャートを用いて説明したように、退避情報と読み出しアクセスを要求されたＬＢＡとに基づき、ファイルシステム部１１の記録媒体制御部２１により、読み出しが要求されたデータの一部または全体がフラッシュメモリに退避されているか否かが判断される（ステップＳ３０）。
【０１５０】
以降、読み出しが要求されたデータが全てフラッシュメモリに退避されていれば、ステップＳ３２〜ステップＳ３５の処理がなされ、フラッシュメモリから当該データが読み出されると共に、退避情報に基づき読み出されたデータをハードディスクに書き戻す処理が行われる。読み出しが要求されたデータがフラッシュメモリに退避されていなければ、ステップＳ３６の処理により、当該データがハードディスクから読み出される。また、読み出しが要求されたデータの一部がフラッシュメモリに退避されていれば、ステップＳ３７〜ステップＳ４４（図１４参照）の処理がなされ、退避情報に基づきハードディスクとフラッシュメモリとのアクセス順序が算出され、算出されたアクセス順序と退避情報とに基づき、ハードディスクおよびフラッシュメモリからデータが読み出されると共に、フラッシュメモリから読み出されたデータがハードディスクに書き戻される。
【０１５１】
通信部１２５に対してホスト機能を有する、例えばコンピュータ装置といった他の機器が接続された場合、ビデオカメラ装置１００のドライブ部１２６に接続される記録媒体を当該他の機器にマウントすることができる。これにより、例えばドライブ部１２６に接続されるハードディスクに記録されるストリームデータを、当該他の機器に対して直接的に送信することや、当該他の機器側からビデオカメラ装置１００に対してデータを送信し、ハードディスクに書き込むことができる。また、当該他の機器からビデオカメラ装置１００を制御することも可能である。
【０１５２】
通信部１２５に対して、例えばＵＳＢをインターフェイスとして用いてホスト機能を有する他の機器が接続されると、通信部１２５と当該他の機器の通信インターフェイスとの間でＵＳＢによるプロトコルで以て所定のやりとりが行われ、通信が確立される。それと共に、ＣＰＵ１２０は、図１６のフローチャートを用いて説明したように、例えばバッファメモリに記憶されている未記録のデータがハードディスクに書き込まれ（ステップＳ６０）、ファイルシステム部１１により、オープン中のファイルが全てクローズされる（ステップＳ６１）。また、ＣＰＵ１２０により退避情報が読み込まれ、この退避情報に基づきフラッシュメモリに退避された記録データがハードディスクに所定に書き戻される。そして、ドライブ部１２６に接続されたハードディスクやフラッシュメモリがビデオカメラ装置１００のシステムからアンマウントされ（ステップＳ６３）、その後、さらに必要な処理が行われる（ステップＳ６４）。このとき、例えば、接続された他の機器により、ハードディスクのマウント処理が行われる。
【０１５３】
ビデオカメラ装置１００の電源切断時にも、図１６のフローチャートを用いて説明したように、バッファメモリに記憶されている未記録データのハードディスクに対する書き込みが行われ、オープン中のファイルが全てクローズされ、退避情報に基づきフラッシュメモリに退避された記録データのハードディスクに対する書き戻しの処理が行われる。そして、ドライブ部１２６に接続されたハードディスクやフラッシュメモリのアンマウント処理がなされ、各部の初期化など、他の必要な処理がなされる。
【０１５４】
上述では、この発明が撮像素子で撮像された撮像信号に基づくビデオデータを、ハードディスクに記録するようにしたビデオカメラ装置１００に適用した例について説明したが、これはこの例に限定されない。例えば、ビデオデータを記録する記録媒体は、ランダムアクセスが可能であり、且つ、装置に対する落下や振動、衝撃によって記録エラーが発生するようなものであれば、他の種類の記録媒体にも適用できる。
【０１５５】
例えば、記録可能なタイプのＤＶＤやＢｌｕ−ｒａｙ  Ｄｉｓｃといった、記録可能な光ディスクを記録媒体として用いることができる。この場合でも、上述の処理と同様に、センサの検出結果に基づき落下や振動、衝撃により記録エラーを起こす可能性があるをと判断されるか、または、記録データの書き込みに際してタイムアウトエラーが発生した際に、フラッシュメモリに対して記録データを退避させて記録を継続させる。なお、これら記録可能な光ディスクは、一般的には、ビデオカメラ装置１００に対して脱着可能とされている。そこで、記録媒体のイジェクト時にも、フラッシュメモリに退避された記録データを記録媒体に書き戻す処理を行うようにする。
【０１５６】
また、上述では、記録データの退避先を不揮発性メモリ１３Ｂであるとして説明したが、これはこの例に限定されない。すなわち、記録データの退避先は、装置の電源を切断した際にも記憶内容が失われないような記録媒体であれば、他の種類の記録媒体を適用することができる。例えば、ハードディスク１３Ａ自体の空き領域を、記録データの退避先として用いることができる。この場合、例えば、図１Ａや図１Ｂに示すハードディスクのデータ構造における、ＭＢＲとＰＢＲとの間の空き領域を、記録データの退避先とすることが考えられる。
【０１５７】
さらに、上述では、センサ１２７で加速度を検出して落下や振動、衝撃の有無を判断するように説明したが、これはこの例に限定されない。例えば、センサ１２７は、ビデオカメラ装置１００内部の温度を検知する温度センサであってもよい。ビデオカメラ装置１００内が所定温度以上になったら、ハードディスク１３Ａにおいて記録エラーが発生する可能性が高くなるとして、ハードディスク１３Ａに書き込まれる記録データを不揮発性メモリ１３Ｂに退避させることが考えられる。勿論、加速度センサおよび温度センサを共に設け、加速度センサの検出結果と温度センサの検出結果のうち何れか一方でも所定値を超えたら、ハードディスク１３Ａに書き込まれる記録データを不揮発性メモリ１３Ｂに退避させるようにしてもよい。
【０１５８】
さらにまた、この発明は、図１９に一例が示されるような、一般的な構成を有するコンピュータ装置２００に対して適用することもできる。図１９において、バス２０１に対してＣＰＵ２１０、ＲＡＭ２１１およびＲＯＭ２１２、ならびに、入出力インターフェイス２２０が接続される。ＣＰＵ２１０は、ＲＯＭ２１２に予め記憶されたプログラムに基づきＲＡＭ２１１をワークメモリとして用いてシステムを起動させ、後述するハードディスク２２４Ｂに予め記録されるプログラムデータを読み込んでＲＡＭ２１１に展開し、ＲＡＭ２１１上に展開されたプログラムデータに基づきコンピュータ装置２００の各部を制御する。
【０１５９】
入出力インターフェイス２２０は、接続される各入出力デバイスのデバイスコントローラとして機能するもので、実際には、入出力デバイスの種類に応じてそれぞれ設けられる。
【０１６０】
データの入力を受け付ける入力部２２１のデバイスとしては、例えばキーボード２２１Ａ、マウス２２１Ｂといったポインティングデバイス、スキャナ２２１Ｃといった画像入力装置、マイクロフォン２２１Ｄといった音声入力装置が考えられる。勿論、ＣＣＤやＣＭＯＳイメージセンサを撮像素子として用いたビデオカメラも、入力デバイスとして用いることができる。なお、スキャナ２２１Ｃは、後述するＵＳＢインターフェイス２２３ＡやＩＥＥＥ１３９４インターフェイス２２３Ｂを接続インターフェイスとして用いて、画像データをコンピュータ装置２００に送信する。また、マイクロフォン２２１Ｄを入力デバイスとして用いる場合、マイクロフォンから出力されたアナログ音声信号をディジタルオーディオデータに変換するＡ／Ｄ変換手段が必要となる。
【０１６１】
データの出力を行う出力部２２２のデバイスとしては、ディスプレイ２２２Ａ、スピーカ２２２Ｂ、プリンタ装置２２２Ｃおよびプロッタ装置２２２Ｄが考えられる。ディスプレイ２２２Ａは、実際には、ＣＰＵ２１０で生成された表示制御信号をビデオ信号に変換するビデオ信号処理部（図示しない）を介して、コンピュータ装置２００に対して接続される。スピーカ２２２Ｂを出力デバイスとして用いる場合、バス２０１を介して供給されたディジタルオーディオデータをアナログ音声信号に変換するＤ／Ａ変換手段が必要となる。また、プリンタ装置２２２Ｃおよびプロッタ装置２２２Ｄは、後述するＵＳＢインターフェイス２２３ＡやＩＥＥＥ１３９４インターフェイス２２３Ｂ、さらに他のインターフェイスなどを接続インターフェイスとして用いて、バス２０１を介して供給される画像信号に基づく印刷を行う。
【０１６２】
外部とのデータ通信を行う通信部２２３のデバイスとしては、ＵＳＢによる通信を司るＵＳＢインターフェイス２２３Ａ、ＩＥＥＥ１３９４による通信を司るＩＥＥＥ１３９４インターフェイス２２３Ｂ、Ｂｌｕｅｔｏｏｔｈによる無線通信を司るＢｌｕｅｔｏｏｔｈインターフェイス２２３Ｃおよび所謂無線ＬＡＮによる無線通信を司るＩＥＥＥ８０２．１１ａ／ｂ／ｇインターフェイス２２３Ｄが考えられる。各インターフェイスは、それぞれ所定のプロトコルを用いて接続先の相手機器と通信を行う。
【０１６３】
データを記録する記録部２２４のデバイスとしては、記録可能なタイプのＤＶＤやＢｌｕ−ｒａｙ  Ｄｉｓｃといった光ディスク２２４Ａ、ハードディスクといった磁気ディスク２２４Ｂ、ＭＯ(Magneto-Optical Disc)といった光磁気ディスク２２４Ｃ、書き換え可能で不揮発性のメモリであるフラッシュメモリなどの半導体メモリ２２４Ｄが考えられる。なお、光ディスク２２４Ａや光磁気ディスク２２４Ｃは、対応するドライブ（図示しない）に装填して用いられる。また、ハードディスクは、記録媒体そのものであるハードディスク本体と、ハードディスクを駆動するためのドライブ装置とからなるハードディスクドライブ（ＨＤＤ）として用いられる。
【０１６４】
このような構成を有するコンピュータ装置２００において、例えばハードディスク（磁気ディスク２２４Ｂ）や、光ディスク２２４Ａ、光磁気ディスク２２４Ｃに対してデータを記録する際に、タイムアウトエラーが発生した場合、図９などを用いて既に説明したような手順で以て、不揮発性メモリである半導体メモリ２２４Ｄに記録データを退避させるようにできる。
【０１６５】
さらにまた、この発明を適用可能な装置は、上述したビデオカメラ装置１００やコンピュータ装置２００に限られない。すなわち、この発明は、ハードディスクなどランダムアクセスが可能で、且つ、落下や振動、衝撃などにより記録エラーが発生する可能性がある記録媒体を用いる装置であれば、他の種類の装置にも適用することができる。例えば、音声信号をハードディスクや光ディスク、光磁気ディスクに記録するようにした録音機にこの発明を適用することができる。
【０１６６】
また、近年では、本来の電話機能の他に、ハードディスクを内蔵し、電波により受信した音楽データや、所定のインターフェイスにより有線でコンピュータ装置などに接続して音楽データなどをコンピュータ装置から転送することができるようにした携帯電話端末が普及の兆しを見せている。この発明は、このようなハードディスク内蔵の携帯電話端末にも適用させることができる。
【０１６７】
さらに、上述では、この発明がＦＡＴによるファイルシステムに適用されるように説明したが、これは一例であって、この例に限定されるものではない。すなわち、この発明は、ランダムアクセス可能な記録媒体に対して所定単位でアドレス管理を行うようなファイルシステムであれば、他のファイルシステムにも適用可能なものである。
【図面の簡単な説明】
【０１６８】
【図１】ＦＡＴファイルシステムに基づきフォーマットされたハードディスクのデータ構造の例を示す略線図である。
【図２】マスターブートレコードの一例の構造を示す略線図である。
【図３】パーティションテーブルの一例の構造を示す略線図である。
【図４】ＦＡＴ１６におけるディレクトリエントリの一例の構造を示す略線図である。
【図５】ＦＡＴ３２によるＦＡＴの例を示す略線図である。
【図６】ファイルシステムを実現するための一例のアーキテクチャを示す略線図である。
【図７】この発明の実施の形態を説明するための略線図である。
【図８】この発明の実施の第１の形態に適用可能な、ＦＡＴによるファイルシステムの一例の構成をより詳細に示すブロック図である。
【図９】この発明の実施の第１の形態による一例の記録処理を示すフローチャートである。
【図１０】退避情報の一例を示す略線図である。
【図１１】バッファに溜め込まれた記録データをハードディスクに書き込む処理を説明するためのフローチャートである。
【図１２】ハードディスクに対して動画データファイル「M2U00001.MPG」、「M2U00002.MPG」および「M2U00003.MPG」を書き込んだ場合の一例のファイルレイアウトを示す略線図である。
【図１３】ハードディスクからデータを読み出す際に、不揮発性メモリに書き込まれた記録データをハードディスクに書き戻す一例の処理を示すフローチャートである。
【図１４】ハードディスクからデータを読み出す際に、不揮発性メモリに書き込まれた記録データをハードディスクに書き戻す一例の処理を示すフローチャートである。
【図１５】ハードディスクのマウント時およびアンマウント時に書き戻しを行う一例の処理を説明するためのフローチャートである。
【図１６】ハードディスクのマウント時およびアンマウント時に書き戻しを行う一例の処理を説明するためのフローチャートである。
【図１７】ハードディスクのマウント時およびアンマウント時に書き戻しを行う一例の処理を説明するためのフローチャートである。
【図１８】この発明の実施の第２の形態による携帯用ビデオカメラ装置１一例の構成を示すブロック図である。
【図１９】一般的なコンピュータ装置の一例の構成を示すブロック図である。
【符号の説明】
【０１６９】
１０  アプリケーション部
１１  ファイルシステム部
１２  デバイスドライバ部
１３  記録媒体
１３Ａ  ハードディスク
１３Ｂ  不揮発性メモリ
２０  記録制御部
２１  記録媒体制御部
２２  ディレクトリエントリ制御部
２３  クラスタ制御部
２４  ＦＡＴ制御部
２５  位置算出部
３０  ワークメモリ
１００  ビデオカメラ装置
１１０  光学レンズ部
１１１  光電変換部
１１２  画像信号処理部
１１４  表示部
１１６  音声入出力部
１１７  音声処理部
１２０  ＣＰＵ
１２１  ＲＡＭ
１２３  ＲＯＭ
１２４  操作入力部
１２５  通信部
１２６  ドライブ部
１２７  センサ
【図１】
2008077780.tif 000003
【図２】
2008077780.tif 000004
【図３】
2008077780.tif 000005
【図４】
2008077780.tif 000006
【図５】
2008077780.tif 000007
【図６】
2008077780.tif 000008
【図７】
2008077780.tif 000009
【図８】
2008077780.tif 000010
【図９】
2008077780.tif 000011
【図１０】
2008077780.tif 000012
【図１１】
2008077780.tif 000013
【図１２】
2008077780.tif 000014
【図１３】
2008077780.tif 000015
【図１４】
2008077780.tif 000016
【図１５】
2008077780.tif 000017
【図１６】
2008077780.tif 000018
【図１７】
2008077780.tif 000019
【図１８】
2008077780.tif 000020
【図１９】
2008077780.tif 000021