(57)【要約】【課題】正常に書き込みが終了しなかった場合でも、記憶デバイスに記憶された情報を基にデータを復旧させることができ、効率の良い書き込み制御を行うことができるホスト機器を提供する。【解決手段】ファイルシステムによってデータ管理を行う記憶デバイス１０に対して、データを順次連続的に記録するホスト機器１において、書き込み対象のデータを特定するためのファイル特定情報を作成すると共に、前記データを記録する記録開始位置を決定する。少なくともファイル特定情報と記録開始位置の情報を含むファイル管理情報の一部を、前記データの記録を開始する前に作成しておき、前記データの記録中は記憶デバイス１０に、ファイル管理情報の更新を行わず、データの記録が終了した後にファイル管理情報の更新を行う。【選択図】      図７
2010026931.tif 000002
【特許請求の範囲】
【請求項１】
ファイルシステムによってデータ管理を行う記憶デバイスに対してデータを順次連続的に記録するホスト機器において、
書き込み対象のデータを特定するためのファイル特定情報を作成すると共に、前記データを記録する記録開始位置を決定し、
少なくとも前記ファイル特定情報と前記記録開始位置の情報を含むファイル管理情報の一部を、前記データの記録を開始する前に作成しておき、
前記データの記録中は前記記憶デバイスに、前記ファイル管理情報の更新を行わず、データの記録が終了した後に前記ファイル管理情報の更新を行う制御部を具備することを特徴とするホスト機器。
【請求項２】
前記ファイル特定情報は、ファイル名とその内容が保存されている位置情報によって記録されたファイルのディレクトリ階層を特定するディレクトリ管理情報であり、
記録を開始する前に作成するデータのディレクトリ管理情報として、ファイル名、記録開始位置情報、記録開始日時を記録し、
前記ファイル管理情報として、異なる位置に記録したデータがひとつのシーケンシャルなデータであることを示すデータ接続情報と、記録したデータのデータ長を記録することを特徴とする請求項１に記載のホスト機器。
【請求項３】
前記ファイルシステムとしてファイルアロケーションテーブル（ＦＡＴ）システムを用い、前記ディレクトリ管理情報はルートディレクトリとディレクトリエントリを指し、前記データ接続情報はファイルアロケーションテーブルを指すことを特徴とする請求項２に記載のホスト機器。
【請求項４】
ファイルシステムによってデータ管理を行う記憶デバイスに対してデータを順次連続的に記録するホスト機器のデータ記録方法において、
前記記憶デバイスへのデータの記録が異常終了したかどうかの情報を前記記憶デバイスから取得して判定するステップと、
異常終了を検出した場合に、前記記憶デバイスのディレクトリ管理情報から、消去マークがなく最新の記録開始日時が設定されているファイルを前回最後に記録したファイルとして、記録開始位置情報を取得するステップと、
前記記憶デバイスから最後に正しく書き込みが終了したデータの記録最終位置情報を取得するステップと、
前記記録開始位置から前記記録最終位置まで、前記データの記録時に使用した記録位置決定手段を繰り返し用いて記録されたデータ位置を特定することにより、前記データの接続情報を復旧し、前記データ位置の特定が完了後に全データ長を計算しディレクトリ管理情報を復旧し、記録データを復旧するステップと、
を具備することを特徴とするホスト機器のデータ記録方法。
【請求項５】
前記データ復旧後、時間的に分割した形式で記録されているデータに対し、不完全に記録された最後の記録データの一部を削除し、それに伴い前記データの接続情報を修正し、修正後のデータの全データ長を計算し、前記ディレクトリ管理情報を修正することを特徴とする請求項４に記載のホスト機器のデータ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト機器及びそのデータ記録方法に関するものであり、例えばＯＴＰ(One Time Programmable)メモリデバイスや追記型メモリデバイスに、ビデオ録画などのリアルタイムデータの記録を行うホスト機器及びそのデータ記録方法で使用されるものである。
【背景技術】
【０００２】
記憶デバイスは、ファイルシステムによってデータが管理されている。したがって、記憶デバイスにデータを連続的に順次記録していく場合、ファイルシステムのファイル管理情報を書き込んだときに、データ書き込みが完了したことになる。ファイル管理情報の内容としては、記録したデータ位置情報、データサイズ、記録した日付などがある。
【０００３】
ファイル管理情報の書き込みの途中で電源断が発生すると、ファイル管理情報が失われてしまうために、書き込みを開始したときからのデータがすべて失われてしまう。特に、ビデオ録画機器などの携帯機器では、ユーザが機器を落としてしまい、バッテリが外れてしまうようなケースが想定される。
【０００４】
従来手法では、データの消失を極力少なくするために、データ記録中にファイル管理情報を定期的に更新する操作を行っている。
【０００５】
しかし、ＯＴＰメモリデバイスや追記型メモリデバイスでは、次のような制限があるため、ファイル管理情報の更新によって同じアドレスに何度も書き込みを行うと、問題が生じる恐れがある。
【０００６】
（１）すでに書き込まれている場所は更新ができない。
【０００７】
（２）更新の回数に限界がある。
【０００８】
（３）ファイル管理情報の更新を行う毎に記憶容量が減ってしまう。
【０００９】
（４）デバイスの寿命が低下する。
【００１０】
通常のメモリデバイスにおいても、ファイル管理情報の書き込みを行うとトータルな書き込み性能を低下させてしまうという問題がある。
【００１１】
また、本発明に関する従来技術として、例えば特許文献１には、メモリカード用のメモリコントローラによるファイルアロケーションテーブル（ＦＡＴ）管理の手法が記載れている。
【特許文献１】特開２００３−１８７２０３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明によれば、正常に書き込みが終了しなかった場合でも、記憶デバイスに記憶された情報を基にデータを復旧させることができ、効率の良い書き込み制御を行うことができるホスト機器を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一実施態様のホスト機器は、ファイルシステムによってデータ管理を行う記憶デバイスに対してデータを順次連続的に記録するホスト機器において、書き込み対象のデータを特定するためのファイル特定情報を作成すると共に、前記データを記録する記録開始位置を決定し、少なくとも前記ファイル特定情報と前記記録開始位置の情報を含むファイル管理情報の一部を、前記データの記録を開始する前に作成しておき、前記データの記録中は前記記憶デバイスに、前記ファイル管理情報の更新を行わず、データの記録が終了した後に前記ファイル管理情報の更新を行う制御部を具備することを特徴とする。
【００１４】
本発明の他の実施態様のホスト機器のデータ記録方法は、ファイルシステムによってデータ管理を行う記憶デバイスに対してデータを順次連続的に記録するホスト機器のデータ記録方法において、前記記憶デバイスへのデータの記録が異常終了したかどうかの情報を前記記憶デバイスから取得して判定するステップと、異常終了を検出した場合に、前記記憶デバイスのディレクトリ管理情報から、消去マークがなく最新の記録開始日時が設定されているファイルを前回最後に記録したファイルとして、記録開始位置情報を取得するステップと、前記記憶デバイスから最後に正しく書き込みが終了したデータの記録最終位置情報を取得するステップと、前記記録開始位置から前記記録最終位置まで、前記データの記録時に使用した記録位置決定手段を繰り返し用いて記録されたデータ位置を特定することにより、前記データの接続情報を復旧し、前記データ位置の特定が完了後に全データ長を計算しディレクトリ管理情報を復旧し、記録データを復旧するステップとを具備することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、正常に書き込みが終了しなかった場合でも、記憶デバイスに記憶された情報を基にデータを復旧させることができ、効率の良い書き込み制御を行うことができるホスト機器を提供することが可能である。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照してこの発明の実施形態について説明する。説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１７】
まず、本発明の実施形態のホスト機器について説明する。
【００１８】
［１］ホスト機器及び記憶デバイスのハード構成
図１は、実施形態のホスト機器と、ホスト機器によってデータが記憶される記憶デバイスの構成を示すブロック図である。
【００１９】
ホスト機器１は、記憶デバイス１０に対してアクセスを行うためのハードウエア及びソフトウエアを備えている。ホスト機器１は、制御部としてのＣＰＵ(Central Processing Unit)２、ハードディスク３、メモリ４、及びカードインタフェース（カードＩ／Ｆ）５を有する。記憶デバイス１０は、例えばメモリカード、ＯＴＰメモリデバイス、追記型メモリデバイスなどを含む。
【００２０】
ＣＰＵ２は、ホスト機器１全体の動作を司るものである。ハードディスク３は、ＣＰＵ２により使用される制御プログラムなどを格納するメモリである。メモリ４は、ＣＰＵ２の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する揮発性メモリである。
【００２１】
例えば、ＣＰＵ２は、電源供給を受けた際に、ハードディスク３の中に格納されているファームウェア（制御プログラム）をメモリ４上にロードして所定の処理を実行する。例えば、各種のテーブルをメモリ４上で作成したり、また書き込みコマンド，読み出しコマンド，消去コマンドを記憶デバイス１０に発行したりする。
【００２２】
記憶デバイス１０は、ホスト機器１に接続されたときに電源供給を受けて動作し、ホスト機器１からのアクセスに応じた処理を行う。記憶デバイス１０は、半導体記憶装置、例えばＮＡＮＤ型フラッシュメモリ（以下、フラッシュメモリと記す）１１などの不揮発性半導体記憶装置、及びコントローラ１２を有する。
【００２３】
コントローラ１２は、フラッシュメモリ１１内部の物理状態（何処の物理アドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか）を管理する機能を有する。コントローラ１２には、ＣＰＵ（Central Processing Unit）１３、ＲＯＭ（Read-Only memory）１４、ＲＡＭ（Random Access Memory）１５、バッファ１６、ホストインタフェース（ホストＩ／Ｆ）１７、及びメモリインタフェース（メモリＩ／Ｆ）１８が搭載されている。
【００２４】
ＣＰＵ１３は、記憶デバイス１０全体の動作を司るものである。ＲＯＭ１４は、ＣＰＵ１３により使用される制御プログラムなどを格納するメモリである。ＲＡＭ１５は、ＣＰＵ１３の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する揮発性メモリである。ＣＰＵ１３は、例えば、記憶デバイス１０が電源供給を受けた際に、ＲＯＭ１４の中に格納されているファームウェア（制御プログラム）をＲＡＭ１５上にロードして所定の処理を実行することにより、各種のテーブルをＲＡＭ１５上で作成したり、ホスト機器１から書き込みコマンド，読み出しコマンド，消去コマンドを受けてＮＡＮＤ型フラッシュメモリ１１上の該当領域に対するアクセスを実行したり、バッファ１６を通じたデータ転送処理を制御したりする。
【００２５】
メモリインタフェース１８は、コントローラ１２とフラッシュメモリ１１との間のインタフェース処理を行うものである。ホストインタフェース１７は、コントローラ１２とホスト機器１との間のインタフェース処理を行うものである。ホスト機器１内のカードインタフェース５は、ホスト機器１とコントローラ１２との間のインタフェース処理を行うものである。
【００２６】
バッファ１６は、ホスト機器１から送られてくるデータをフラッシュメモリ１１へ書き込む際に、一定量のデータ（例えば１ページ分）を一時的に記憶したり、フラッシュメモリ１１から読み出されたデータをホスト機器１へ送り出す際に、一定量のデータを一時的に記憶したりするものである。
【００２７】
フラッシュメモリ１１は、１つのメモリセルに１ビットの情報を記憶する２値メモリであっても良いし、一つのメモリセルに２ビット以上の情報を記憶する多値メモリであっても良い。
【００２８】
［２］記憶デバイスに記録されるデータ例
図２に、ホスト機器１により記憶デバイス１０にビデオ録画を行う場合のデータ例を示す。
【００２９】
図２において、データの先頭に配置されたヘッダ２１により、ビデオ形式が指定され、それに続くデータのフォーマットが決定される。図２に示す例では、画像データ２２と音声データ２３が交互に記録された場合を示している。ビデオは、通常、フレーム単位に管理されるため周期的なデータになる。この場合、画像データ２２と音声データ２３は、フレーム単位に管理され、ペアでひとつの同じ時間のフレームデータとなっている。
【００３０】
記憶デバイスにこのようなデータを記録する場合、ファイルシステムの管理単位であるクラスタ２４と呼ばれる大きさに区切り記録される。記憶デバイスのデータ領域はクラスタ単位に分割して管理され、それぞれのクラスタは、順番に振られたクラスタ番号によって指定される。
【００３１】
［３］ファイルシステム
［３−１］ファイル構造
図３は、記憶デバイス１０におけるファイル構造を示す図である。ルートディレクトリ２５の下にサブディレクトリ２６がひとつあり、サブディレクトリ２６の中に、ひとつのファイル２７が記録されている。
【００３２】
［３−２］記憶デバイスにおける記憶域マップ
次に、図３に示したファイルがファイルアロケーションテーブル（ＦＡＴ）ファイルシステムにより管理され記録されている例を図４に示す。図４は、ＦＡＴファイルシステムで管理された、記憶デバイス１０の記憶領域におけるマップ２８を示している。ルートディレクトリ２５には、サブディレクトリ情報としてサブディレクトリ名、およびサブディレクトリのクラスタ位置を示すクラスタ番号“0002h”が記録されている。これにより、サブディレクトリ情報が記録されているディレクトリエントリ２９の場所が分かる。ディレクトリエントリ２９には、記録されているファイルのファイル名、作成日時、データ開始クラスタ番号、データサイズなどが記録されている。
【００３３】
データはデータ1、データ2、データ3、…と順番に書かれている。これらのデータ３０は、図２に示した各クラスタ２４に対応している。
【００３４】
また、マップ２８にはＦＡＴテーブル(1)３１、ＦＡＴテーブル(2)３２が配置されている。ＦＡＴテーブル(2)３２には、バックアップとしてＦＡＴテーブル(1)３１と同じデータが記録される。
【００３５】
マップ３３は、ＦＡＴテーブル(1)３１の一部を、マップ２８の記憶域に対応するように拡大して示している。先頭のデータ(1)の記録場所を示すクラスタ番号は“1234h”を示している。データ(1)に対応するＦＡＴテーブルのマップ３３には、次に続くデータ(2)が記録されているクラスタ番号“1235h”が記録されている。同様に、データ(2)に対応するＦＡＴテーブルには、次に続くデータ(3)のクラスタ番号“1237h”が記録されている。このようにして、ＦＡＴテーブルをたどると、データのつながりが分かるようになっている。最後のデータに対応するＦＡＴテーブルには、“FFFFh”が記録され、ここでデータは終了することを示す。このように、ファイルは、ＦＡＴテーブル３１、３２とディレクトリエントリ２９によって管理されている。
【００３６】
［３−３］ＦＡＴファイルシステムにおけるＦＡＴテーブルの更新
次に、ホスト機器（例えばここでは、ビデオカメラ）１から記憶デバイス１０への録画中にユーザがビデオカメラを落としてしまった場合を考える。ビデオカメラを落とすと、バッテリがはずれて、記録中に書き込みが停止してしまう場合が考えられる。その場合、ＦＡＴテーブルとディレクトリエントリにファイル情報が記録されていないと、録画データが消えてしまうことになる。そのため、記録データを確定させるため、従来、ホスト機器では録画途中にときどきＦＡＴ更新、すなわちＦＡＴテーブルとディレクトリエントリの更新を行っている。
【００３７】
図５は、ＦＡＴ更新の様子を示す図である。図５に示すように、クラスタ２４へデータを書き込んでいる途中に、ＦＡＴテーブル(1)３１とＦＡＴテーブル(2)３２とディレクトリエントリ２９の一部の書き込みを行う。ここでは、これら３つのライトをまとめて、ＦＡＴ更新と呼ぶ。ＦＡＴ更新の周期については、特定のデータ長単位に挿入する方法や、システムタイマーによって一定時間毎に挿入する方法がある。
【００３８】
［４］比較例としての録画フロー
図６Ａ及び図６Ｂに、比較例としてのホスト機器（例えば、録画機器）１による録画フローを示す。図６Ａは、事前に録画が可能な状態に準備しておくための手順を示している。データを記録するディレクトリを決定し、ディレクトリデータを作成する（ステップＳ１）。データを記録する場所を決めるため、空きクラスタを検索し（ステップＳ２）、記録を開始するクラスタを決定する（ステップＳ３）。そして、この記録を開始するクラスタを、ディレクトリ情報として記録する（ステップＳ４）。この段階では、ディレクトリ情報に、ファイル名と開始クラスタ番号と作成日時が記録されている。このとき、後述するように最新の日時となっていることが重要である。以上により、ホスト機器における録画準備が終了する。
【００３９】
図６Ｂは、ホスト機器１の録画ボタンが押されている間、記憶デバイス１０に次々と送られてくる図２で示したクラスタデータ２４を、ファイルシステムにしたがって記憶デバイスに書き込んでいく処理手順を示している。
【００４０】
まず、ディレクトリエントリ２９に記述されている開始クラスタにデータを書き込む（ステップＳ１１）。    続いて、ＦＡＴ更新を行うか否かの判定が行われ（ステップＳ１２）、ＦＡＴ更新を行うとき、ＦＥＴ更新が行われる（ステップＳ１３）。一方、ＦＡＴ更新を行わないとき、またはステップＳ１３にてＦＥＴ更新を行った後に、録画が終了か否かの判定が行われる（ステップＳ１４）。ここで、録画が終了でないとき、すなわち、さらにデータを書き込むとき、空きクラスタを検索し次に書く記憶場所（クラスタ）を決定する（ステップＳ１５）。その後、ステップＳ１１に戻る。ステップＳ１４にて録画が終了のときは、ＦＡＴ更新を行い（ステップＳ１６）、録画を終了する。すなわち、これらの処理は、録画ボタンが離されるまで、あるいは録画が終了するまで繰り返される。
【００４１】
なお、ステップＳ１５のクラスタの決定は、記憶デバイスの書き込み特性に依存する場合がある。例えば、ＮＡＮＤフラッシュメモリを用いた記憶デバイスの場合、消去ブロック中の空きクラスタ数によって書き込み性能が影響するので、要求性能に合うクラスタを選択する。
【００４２】
［５］実施形態の録画フロー
以下に、本実施形態のホスト機器による録画の手順を説明する。
【００４３】
図７は、本実施形態のホスト機器による録画開始から終了までの手順を示すフロー図である。図６Ｂに示したフローと比較すると、ステップＳ１２のＦＡＴ更新を行うか否かの判定と、ステップＳ１３のＦＡＴ更新の実行を不要にしている。
【００４４】
この場合、前述したように、録画の途中で電源が切れるなどのトラブルが発生したとき、記憶デバイス１０におけるＦＡＴテーブルとディレクトリエントリの状態は、図６Ａに示した“録画準備”が完了した状態になっている。ホスト機器１は、録画が中断したデータを復旧するために、図８で示すような手段を持つ必要がある。
【００４５】
図８に、録画中に電源断などが発生し、正常に終了しなかった録画ファイルを修復する“修復処理”の手順を示す。
【００４６】
ここでは、記憶デバイス１０が、異常終了が発生したことをホスト機器１に示す手段と、最後に正しく書き込みが終了したクラスタ番号を示す手段を備えている。
【００４７】
ホスト機器１は、電源を再投入した後、記憶デバイス１０の初期化を行い、“修復処理”を開始する。まず、異常終了の判定を行う（ステップＳ２１）。最後に書き込みを行ったクラスタ番号に対応するＦＡＴテーブルが使用済みとなっている場合は、復旧の対象外となる。しかし、単にこれだけで判断するのではなく、他の判定も合わせてより正確に判定を行うことが好ましい。例えば、記憶デバイスの終了処理を定義し、再初期化時に終了処理が行われたかどうかが判断できるようにする。終了処理を行うホスト機器は、終了処理が行われなかった場合にデータの復旧処理が必要と判断できる。また、データ記録中であることを示すフラグを記憶デバイスに持ち、後で読み出して確認する方法もある。記録デバイスが返す、正しく書き込みが終了したクラスタ番号については、ＦＡＴテーブルの書き込みやクラスタサイズより短いデータ長の書き込みは除外されていなければならない。
【００４８】
ホスト機器１は、前述した手段で異常終了を検出した場合（ステップＳ２２）、ディレクトリ情報の検索を行う（ステップＳ２３）。このディレクトリ情報の検索では、更新日付の検索を行い、最新の日付のファイルで、かつ消去マークが付いていないファイルを見つける。これは、図６Ａに示した“録画準備”の処理、または記録開始前に最新の日時を付けることにより可能となっている。そのディレクトリ情報の中から、記録を開始したクラスタ番号を取得する（ステップＳ２４）。終了のクラスタ番号については、記憶デバイス１０が持つ手段によって、最後に正しく書き込みが終了したクラスタ番号を終了のクラスタ番号とする（ステップＳ２５）。
【００４９】
次に、開始のクラスタ番号から始めて、終了のクラスタ番号に一致するまで、順次空きクラスタを検索する（ステップＳ２６〜Ｓ２９）。この場合、録画時に使用した、ステップＳ１５の空きクラスタ検索のアルゴリズムと、ステップＳ２８の空きクラスタ検索のアルゴリズムは同一である必要がある。終了のクラスタ番号に一致するまでに探し出された空きクラスタを、順次、クラスタチェーンで結び、システムのＲＡＭ上に作成される仮のＦＡＴテーブルに記録しておく（ステップＳ２８，Ｓ２９）。この段階では、まだ記憶デバイス１０のＦＡＴテーブルは更新しない。終了のクラスタ番号に一致したら、それに対応するＦＡＴテーブルにファイルの終わりを示す“FFFFh”を記録する。
【００５０】
次に、ホスト機器１は、記憶デバイス１０に記憶された録画データのデータ解析を行う。すなわち、図２に示したヘッダ２１で規定される録画フォーマットが正しく作成できているかどうかを確認する（ステップＳ３０）。録画フォーマットが壊れていれば、修復を行うことが好ましい。具体的には、最終クラスタの変更やファイルサイズの変更、クラスタチェーンの変更を行うことが好ましい（ステップＳ３１〜Ｓ３３）。このとき、データを再生する装置が、最後の壊れたデータを無視できるようになっていれば、録画データは最後が正しく終了していなくても問題はないので必須の処理ではない。
【００５１】
図９に、録画データにおいて途中のクラスタが破損した例を示す。クラスタ３４が破損したクラスタである。そのため、音声データ２３の一部が欠けてしまうので、この音声データ２３は削除する。また、録画データがフレーム単位で管理されている場合、音声データ２３と画像データ２２のデータはペアとなっているため、画像データ２２も同時に削除する。これにより、２つのクラスタ３５を未使用のクラスタとし、クラスタ３６を終了クラスタとすることになる。フレームデータは、３０ｍｓ程度の短い時間なので、１フレームを削除しても全体のデータからすると微量であり、大きく影響することはない。
【００５２】
再び図８に戻り、以下にステップＳ３０〜Ｓ３４までの手順を説明する。図１０に、ステップＳ３０〜Ｓ３４のデータ解析とデータ修復を実施した結果を示す。ステップＳ３０のデータ解析に基づいて、終了クラスタ番号と、全体のファイルサイズが変更される（ステップＳ３１，Ｓ３２）。このため、ＲＡＭ上に仮に記録されているＦＡＴテーブルの終了クラスタ３６に対応するＦＡＴテーブルに“FFFFh”を記録する。また、未使用とされたクラスタ３５に対応するＦＡＴテーブルには、“0000h”を記録し、未使用領域として登録する。さらに、空きクラスタを、順次、クラスタチェーンで結ぶ（ステップＳ３３）。ステップＳ２３のディレクトリ情報の検索で見つけたディレクトリ情報をＲＡＭ上に仮にコピーしておき、図１０に示すようにファイルサイズを変更し、さらに日付を変更する。
【００５３】
次に、ステップＳ３４ではＦＡＴ更新を実行して、前述したようにＲＡＭ上に仮に作っておいた、ＦＡＴテーブルとディレクトリ情報を記憶デバイス１０に書き込む。これで、録画データの復旧が完了する。
【００５４】
以上説明したように本発明の実施形態によれば、記録中はファイル管理情報の更新を行わず、記録後にファイル管理情報の更新を行い、正常に書き込みが終了しなかった場合、記憶デバイスの情報を基にデータを復旧させる手段を持つことにより、効率の良い書き込み制御を行うことができるホスト機器を提供することができる。
【００５５】
本実施形態では、ファイル情報の更新を行わないことで、トータルなライト性能が向上する。また、ファイル情報の更新を行わなくても、最後に記録したデータは復旧が可能になる。また、ＯＴＰ(One Time Programmable)メモリデバイスや追記型メモリデバイスに対して、効率の良い書き込み制御が行え、ビデオなどのリアルタイムデータ記録を行うことができる。また、再生装置によっては、不完全なファイルを再生すると誤動作する場合がある。これを防ぐため、時間的に分割されて記録されたデータは、最後の不完全部分を削除することによって、正しい形式に修正することができる。
【００５６】
なお、前述した実施形態は唯一の実施形態ではなく、前記構成の変更あるいは各種構成の追加によって、様々な実施形態を形成することが可能である。
【００５７】
本発明は以下の実施態様を取ることが可能である。
【００５８】
（１）ファイルシステムによってデータ管理を行う記憶デバイスに対してデータを順次連続的に記録するホスト機器において、
書き込み対象のデータを特定するためのファイル特定情報を作成すると共に、前記データを記録する記録開始位置を決定し、
少なくとも前記ファイル特定情報と前記記録開始位置の情報を含むファイル管理情報の一部を、前記データの記録を開始する前に作成しておき、
前記データの記録中は前記記憶デバイスに、前記ファイル管理情報の更新を行わず、データの記録が終了した後に前記ファイル管理情報の更新を行う制御部を具備することを特徴とするホスト機器。
【００５９】
（２）前記ファイル特定情報は、ファイル名とその内容が保存されている位置情報によって記録されたファイルのディレクトリ階層を特定するディレクトリ管理情報であり、
記録を開始する前に作成するデータのディレクトリ管理情報として、ファイル名、記録開始位置情報、記録開始日時を記録し、
前記ファイル管理情報として、異なる位置に記録したデータがひとつのシーケンシャルなデータであることを示すデータ接続情報と、記録したデータのデータ長を記録することを特徴とする前記（１）に記載のホスト機器。
【００６０】
（３）前記ファイルシステムとしてファイルアロケーションテーブル（ＦＡＴ）システムを用い、前記ディレクトリ管理情報はルートディレクトリとディレクトリエントリを指し、前記データ接続情報はファイルアロケーションテーブルを指すことを特徴とする前記（２）に記載のホスト機器。
【００６１】
（４）ファイルシステムによってデータ管理を行う記憶デバイスに対してデータを順次連続的に記録するホスト機器のデータ記録方法において、
前記記憶デバイスへのデータの記録が異常終了したかどうかの情報を前記記憶デバイスから取得して判定するステップと、
異常終了を検出した場合に、前記記憶デバイスのディレクトリ管理情報から、消去マークがなく最新の記録開始日時が設定されているファイルを前回最後に記録したファイルとして、記録開始位置情報を取得するステップと、
前記記憶デバイスから最後に正しく書き込みが終了したデータの記録最終位置情報を取得するステップと、
前記記録開始位置から前記記録最終位置まで、前記データの記録時に使用した記録位置決定手段を繰り返し用いて記録されたデータ位置を特定することにより、前記データの接続情報を復旧し、前記データ位置の特定が完了後に全データ長を計算しディレクトリ管理情報を復旧し、記録データを復旧するステップと、
を具備することを特徴とするホスト機器のデータ記録方法。
【００６２】
（５）前記データ復旧後、時間的に分割した形式で記録されているデータに対し、不完全に記録された最後の記録データの一部を削除し、それに伴い前記データの接続情報を修正し、修正後のデータの全データ長を計算し、前記ディレクトリ管理情報を修正することを特徴とする前記（４）に記載のホスト機器のデータ記録方法。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施形態のホスト機器と記憶デバイスの構成を示すブロック図である。
【図２】実施形態のホスト機器により記憶デバイスにビデオ録画を行う場合のデータ例を示す図である。
【図３】実施形態における記憶デバイスのファイル構造を示す図である。
【図４】実施形態におけるＦＡＴファイルシステムで管理された、記憶デバイスの記憶領域におけるマップを示す図である。
【図５】ＦＡＴ更新の様子を示す図である。
【図６Ａ】比較例としてのホスト機器による録画フローを示す図である
【図６Ｂ】比較例としてのホスト機器による録画フローを示す図である
【図７】実施形態のホスト機器による録画開始から終了までのフローを示す図である。
【図８】実施形態において正常に終了しなかった録画ファイルを修復する“修復処理”の手順を示すフロー図である。
【図９】録画データにおいて途中のクラスタが破損したデータ例を示す図である。
【図１０】データ解析とデータ修復を実施したデータ列を示す図である。
【符号の説明】
【００６４】
１…ホスト機器、２…ＣＰＵ(制御部)、３…ハードディスク、４…メモリ、５…カードインタフェース（カードＩ／Ｆ）、１０…記憶デバイス、１１…ＮＡＮＤ型フラッシュメモリ、１２…コントローラ、１３…ＣＰＵ、１４…ＲＯＭ（Read-Only memory）、１５…ＲＡＭ（Random Access Memory）、１６…バッファ、１７…ホストインタフェース（ホストＩ／Ｆ）、１８…メモリインタフェース（メモリＩ／Ｆ）、２１…ヘッダ、２２…画像データ、２３…音声データ、２４…クラスタ、２５…ルートディレクトリ、２６…サブディレクトリ、２７…ファイル、２８…マップ、２９…ディレクトリエントリ、３０…データ、３１…ＦＡＴテーブル(1)、３２…ＦＡＴテーブル(2)、３３…マップ、３４〜３６…クラスタ。
【図１】
2010026931.tif 000003
【図２】
2010026931.tif 000004
【図３】
2010026931.tif 000005
【図４】
2010026931.tif 000006
【図５】
2010026931.tif 000007
【図６Ａ】
2010026931.tif 000008
【図６Ｂ】
2010026931.tif 000009
【図７】
2010026931.tif 000010
【図８】
2010026931.tif 000011
【図９】
2010026931.tif 000012
【図１０】
2010026931.tif 000013