(57)【要約】【課題】例えば、車載用の音声記録・再生装置において、電源瞬断などの影響で、記録媒体に正しく記録できなくなることを解消すること。【解決手段】本発明では、情報を備えるファイルと複数のファイルの保管場所であるディレクトリによって、ファイルを階層的に管理するファイルシステムを用い、あらかじめ定められた情報については、バックアップ用のワークセクタに先に記録してから、本来の記録を行う。ワークセクタは、複数のセクタからなるワークセクタ領域から選択され、さらに、前記ワークセクタには、前記ファイルシステムのマウント回数を記録している。これにより、データの復旧には、最適なワークセクタが用いられる。【選択図】図１０
2011076643.tif 000002
【特許請求の範囲】
【請求項１】
主情報をファイルとして記録すると共に、この主情報に関するデータベースファイルを更新してなる情報記録または再生方法であって、
前記データベースファイルの更新は、主データベースファイルの更新を行い、主データベースファイルの更新完了後に、バックアップデータベースファイルの更新を行い、更に、それぞれのデータベースファイルの更新中においては、そのファイル中の更新状況フラグを更新中を示す状態に設定する情報記録または再生方法。
【請求項２】
前記バックアップファイルは第一バックアップファイルと第二バックアップファイルであり、第一バックアップファイルの更新完了後、第二バックアップファイルの更新を行ってなる請求項１記載の情報記録または再生方法。
【請求項３】
前記ファイル中の更新状況フラグは、更に、更新完了を示す状態を有していて、データベースファイルの更新が完了したデータベースファイルの更新状況フラグを更新完了の状態に設定してなる請求項２記載の情報記録または再生方法。
【請求項４】
起動時において、主データベースファイル及び第一、第二バックアップデータベースファイルの更新状況フラグをチェックして、全ての更新状況フラグが更新完了の状態でない場合に、更新完了しているデータベースファイルを元にデータベースファイルの復旧処理を行ってなる請求項３記載の情報記録または再生方法。
【請求項５】
前記主データベースファイル及び第一、第二のバックアップデータベースファイルには、更に、主情報のファイルを特定するファイル特定情報が含まれており、起動時において、前記主データベースファイル及び第一、第二バックアップデータベースファイルの更新状況フラグをチェックにより、更新完了の状態でないファイルは、このファイル特定情報に基づきファイルを削除する処理を行ってなる請求項４記載の情報記録または再生方法。
【請求項６】
主情報をファイルとして記録する記録手段と、この主情報に関する主及びバックアップからなるデータベースファイルを更新するデータベースファイル更新手段とを備え、前記データベースファイル更新手段は、主データベースファイルの更新を行い、主データベースファイルの更新完了後に、バックアップデータベースファイルの更新を行い、更に、それぞれのデータベースファイルの更新中においては、そのファイル中の更新状況フラグを更新中を示す状態に設定してなる情報記録再生装置。
【請求項７】
前記バックアップファイルは第一バックアップファイルと第二バックアップファイルであり、第一バックアップファイルの更新完了後、第二バックアップファイルの更新を行ってなる請求項６記載の情報記録再生装置。
【請求項８】
前記ファイル中の更新状況フラグは、更に、更新完了を示す状態を有していて、データベースファイルの更新が完了したデータベースファイルの更新状況フラグを更新完了の状態に設定してなる請求項７記載の情報記録再生装置。
【請求項９】
起動時において、主データベースファイル及び第一、第二バックアップデータベースファイルの更新状況フラグをチェックして、全ての更新状況フラグが更新完了の状態でない場合に、更新完了しているデータベースファイルを元にデータベースファイルの復旧処理を行ってなる請求項８記載の情報記録再生装置。
【請求項１０】
前記主データベースファイル及び第一、第二のバックアップデータベースファイルには、更に、主情報のファイルを特定するファイル特定情報が含まれており、起動時において、前記主データベースファイル及び第一、第二バックアップデータベースファイルの更新状況フラグをチェックにより、更新完了の状態でないファイルは、このファイル特定情報に基づきファイルを削除する処理を行ってなる請求項９記載の情報記録再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報を記録／再生する方法及び装置に関し、更に詳しく言えば、音声信号をハードディスク等の記録媒体に記録／再生する方法及び記録／再生装置に関する。
【背景技術】
【０００２】
情報としての音声信号の圧縮技術を利用した音声信号記録／再生装置が実用化されており、その記録媒体としては、半導体メモリやハードディスクを用いるものがある。さらに、最近では、車載用の音声信号記録／再生装置においても、ハードディスクを記録媒体としたものが実用化されている。
【０００３】
ハードディスクを記録媒体として用いる場合、実装の容易さから、ファイルシステムとしてＦＡＴ(File Allocation Table)が用いられることが多い（例えば、特開２００２―
４１３３６号公報参照。ＦＡＴシステムについては、例えば、雑誌インターフェース誌２００１年７月号の特集を参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ハードディスクを記録媒体とした車載用の音声信号記録／再生装置においては、車載用という特別の用途からくる、特別の課題が存在する。
【０００５】
つまり、車載用の場合、振動対策や電源の瞬断といった室内で使用される音声信号記録／再生装置とは違った課題への対応が必要である。特に、ハードディスクを使用していると、振動や不安定な電源電圧により、記録／再生の動作が不安定になり、記録／再生が確実に行われないという問題が生じる。これは、ハードディスクドライブ装置において、振動が激しい場合には、ヘッドを待避させ記録／再生を停止するように構成されているからである。
【０００６】
ハードディスクを使用した音声信号記録／再生装置における具体的な問題について説明する。
【０００７】
データファイルの記録自体は、パーソナルコンピュータにて広く用いられているＦＡＴが使用されることが多い。ハードディスクへのアクセスにおいては、低レベルのアクセスはセクタ単位で実現できるが、ＦＡＴシステム上ではクラスタ単位の管理のみ可能であって、通常、１クラスタは複数のセクタからなる。今、考えているシステムにおいては、１クラスタが３２セクタからなっている。
【０００８】
ＦＡＴシステム自体については、よく知られているので詳しい説明は省略する。ファイルの実体が記録されているハードディスク上のセクタの連なりをファイル・アロケーション・テーブル（ＦＡＴ）と呼ばれるディスク上の領域に記録して、そのファイルのアクセスに利用するものである。また、ファイルは、ディレクトリと呼ばれるファイルの保管場所を利用して、階層的に管理される。ディレクトリの情報は、その名の元に管理されるファイルの情報を含んでおり、この情報が破壊されると、実際のファイルに問題はなくても、それらのファイルに対するアクセスが不可能になるという問題がある。そして、このディレクトリの情報は、ファイルの記録に伴い、更新されるから、その更新時に、振動、電源瞬断などの現象が生じると、実ファイルとディレクトリの情報で不整合が発生したり、アクセスできないことがある。
【０００９】
ＦＡＴシステム自体は、古くから使用されているファイルシステムであり、パーソナルコンピュータの発展と共に、機能拡張が行われている。古いバージョンのＦＡＴシステムでは、ルートディレクトリについての情報は、ＦＡＴ直後の領域に固定して記録されていたが、最近のＦＡＴ３２システムにおいては、すべてのディレクトリ情報について、データ領域の任意の位置に、任意のサイズにて配置することができるようになっている。
【００１０】
ここで、ディレクトリ情報もＦＡＴシステム上では、一つのファイルと同じように管理され、そのディレクトリに含まれるファイルの数にかかわらず、一つのディレクトリについては、最低１クラスタの領域を必要とする。上記のように、今考えているシステムにおいては、３２セクタに該当する。
【００１１】
そこで、ディレクトリ情報を更新（書き換え）する場合に、バックアップを作成してから、更新するようにすれば、更新処理中に電源瞬断などにより、更新がうまくいかなかったときに、このバックアップから復旧することが可能となる。このような、方法の一つとして、ＦＡＴシステムにおけるブート領域に書き換えるセクタアドレスと書き換える内容とを保持することが考えられる。
【００１２】
一方、このブート領域の一部分（ワークセクタ）が不良セクタとなって、書き込み／読み出しが正しくできないことへの対策も必要となる。これについては、ブート領域におけるワークセクタ領域として、複数のセクタからなる領域を割り当てることも考えられる。このときには、ワークセクタ領域の、例えば、下位アドレスから、書き込み読み出すことのできるセクタを、順番に、ワークセクタとして、使用することができる。
【００１３】
しかし、車載用途で、振動の激しい環境においては、不良セクタではないのに、書き込み／読み出しができない場合がある。このような、場合には、別のワークセクタを用いることになって、古い内容で、データの復旧を処理する可能性がある。
【００１４】
この発明は、上記の事情に鑑みなされたものにして、例えば、車載用の音声記録・再生装置において、電源瞬断などの影響で、記録媒体に正しく記録できなくなることを解消することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、主情報をファイルとして記録すると共に、この主情報に関するデータベースファイルを更新してなる情報記録及び若しくは再生方法（装置）であって、前記データベースファイルの更新は、主データベースファイルの更新を行い、主データベースファイルの更新完了後に、バックアップデータベースファイルの更新を行い、更に、それぞれのデータベースファイルの更新中においては、そのファイル中の更新状況フラグを更新中を示す状態に設定する情報記録及び若しくは再生方法（装置）である。
【００１６】
そして、本発明では、マスター（主）データベースファイルのほかに、バックアップのデータベースファイルを利用すると共に、データベースファイルに含まれる更新状況フラグを用いて、それぞれのデータベースファイルの更新状況を調べ、必要な処理を行うようにしている。
【００１７】
上記構成によれば、ハードディスクなどの記録媒体に対して、主情報とこの主情報に関するデータベースファイルを記録する場合において、電源断などにより処理が中断したとしても、主情報とデータベースの間の不整合を防止することができる。
【００１８】
また、本発明では、前記バックアップファイルは第一バックアップファイルと第二バックアップファイルであり、第一バックアップファイルの更新完了後、第二バックアップファイルの更新を行っている。
【００１９】
また、本発明では、前記ファイル中の更新状況フラグは、更に、更新完了を示す状態を有していて、データベースファイルの更新が完了したデータベースファイルの更新状況フラグを更新完了の状態に設定している。
【００２０】
さらに、本発明では、起動時において、主データベースファイル及び第一、第二バックアップデータベースファイルの更新状況フラグをチェックして、全ての更新状況フラグが更新完了の状態でない場合に、更新完了しているデータベースファイルを元にデータベースファイルの復旧処理を行っている。
【００２１】
また、本発明では、前記主データベースファイル及び第一、第二のバックアップデータベースファイルには、更に、主情報のファイルを特定するファイル特定情報が含まれており、起動時において、前記主データベースファイル及び第一、第二バックアップデータベースファイルの更新状況フラグをチェックにより、更新完了の状態でないファイルは、このファイル特定情報に基づきファイルを削除する処理を行っている。
【００２２】
また、本発明では、主情報をファイルとして記録する記録手段と、この主情報に関する主及びバックアップからなるデータベースファイルを更新するデータベースファイル更新手段とを備え、前記データベースファイル更新手段は、主データベースファイルの更新を行い、主データベースファイルの更新完了後に、バックアップデータベースファイルの更新を行い、更に、それぞれのデータベースファイルの更新中においては、そのファイル中の更新状況フラグを更新中を示す状態に設定してなる情報記録再生装置である。
【００２３】
また、本発明では、バックアップファイルは第一バックアップファイルと第二バックアップファイルであり、第一バックアップファイルの更新完了後、第二バックアップファイルの更新を行っている。
【００２４】
また、本発明では、前記ファイル中の更新状況フラグは、更に、更新完了を示す状態を有していて、データベースファイルの更新が完了したデータベースファイルの更新状況フラグを更新完了の状態に設定している。
【００２５】
また、本発明では、起動時において、主データベースファイル及び第一、第二バックアップデータベースファイルの更新状況フラグをチェックして、全ての更新状況フラグが更新完了の状態でない場合に、更新完了しているデータベースファイルを元にデータベースファイルの復旧処理を行っている。
【００２６】
また、本発明では、前記主データベースファイル及び第一、第二のバックアップデータベースファイルには、更に、主情報のファイルを特定するファイル特定情報が含まれており、起動時において、前記主データベースファイル及び第一、第二バックアップデータベースファイルの更新状況フラグをチェックにより、更新完了の状態でないファイルは、このファイル特定情報に基づきファイルを削除する処理を行っている。
【発明の効果】
【００２７】
本願発明においては、録音処理中または削除処理中のいつ処理が停止しても、更新前または後の状態に戻すことが出来、ファイルとデータベースの間に不整合が生じなくなる。
【図面の簡単な説明】
【００２８】
【図１】この発明の実施例を示すブロック図である。
【図２】この発明の実施例の概略動作を示すフローチャートである。
【図３】この発明におけるハードディスクにおける領域を示す構成図である。
【図４】この発明の実施例のマウント処理の動作の一部を示すフローチャートである。
【図５】この発明の実施例のマウント処理の動作の一部を示すフローチャートである。
【図６】この発明の実施例のマウント処理の動作の一部を示すフローチャートである。
【図７】この発明の実施例のデータベースファイルチェック処理を示すフローチャートである。
【図８】この発明の実施例の録音動作におけるデータベースファイル処理を示すフローチャートである。
【図９】この発明の実施例の別のデータベースファイル処理を示すフローチャートである。
【図１０】この発明の実施例のセクタ書き込み処理を示すフローチャートである。
【図１１】この発明の実施例のセクタ読み込み処理を示すフローチャートである。
【図１２】この発明のディレクトリを示す構成図である。
【図１３】この発明のデータファイルを示す構成図である。
【発明を実施するための形態】
【００２９】
以下、図面に従い、この発明の実施例について説明する。
【００３０】
図１は、この発明が使用される車載用音声信号の記録／再生装置の構成を示す概略ブロック図である。本実施例は、車載用の音声信号記録／再生装置１０００であり、メインユニット１とデジタル処理ユニット２とに分かれている。メインユニット１は、従来の車載用システムと同等のものであり、アンテナ３、チューナ４、ホストマイクロコンピュータ５、サブマイクロコンピュータ６、電子ボリューム７、パワーアンプ８、スピーカ９、表示用の液晶表示ディスプレイ（ＬＣＤ）１０、ＬＣＤドライバ１１、冷却用のＤＣファン１２、ＤＣファンコントローラ１３、操作スイッチ１４、リモコン受信機１５を備えている。このメインユニット１については、詳細な説明は省略する。
【００３１】
デジタル処理ユニット２は、ハードディスク２１とＣＤ−ＲＯＭドライブ２２が記録若しくは再生用の媒体として設けられている。ＤＳＰ（デジタル信号プロセッサ）２４は、ＩＤＥ（Integrated Drive Electronics）バス２５を介して、ハードディスク２１、ＣＤ−ＲＯＭドライブ２２、ＳＤ−ＲＡＭ（Synchronous DRAM）２６、フラッシュメモリ２７と接続されている。また、ＤＳＰ２４の音声出力はＤＡＣ(デジタルアナログコンバータ
）２９を介して、電子ボリュームコントローラ７に供給され、パワーアンプ８で増幅され、最終的にスピーカ９から放音出力される。
【００３２】
ＤＳＰ２４は、音声信号のデコード／エンコード処理を行う。更に、具体的に言えば、例えば、ＣＤ−ＲＯＭドライブ２２に装着された音楽ＣＤを再生し、そのＣＤ−ＤＡフォーマットの信号がＩＤＥバス２５からＤＳＰ２４に与えられ、ＤＳＰ２４がＣＤ−ＤＡフォーマットの信号をリアルタイムでＭＰ３（MPEG Audio Layer-3 ）エンコード処理を行
う。そして、ＤＳＰ２４は、ＭＰ３の信号がＩＤＥバス２５からハードディスク２１に与えられ、デジタル信号として記録する。また、ハードディスク２１から読み出したＭＰ３のデジタル信号をＭＰ３デコードして、デジタル音声信号としてＤＡＣ２９に供給する。ＳＤ−ＲＡＭ２６とフラッシュメモリ２７は、このエンコード／デコード処理に必要なプログラム、データを保管し、あるいは、作業領域として利用される。
【００３３】
デジタル処理ユニット２のコントロールは、メインユニット１により行われるが、これは、ＵＡＲＴ（Universal Asynchronous Receiver-Transceiver）バス３０によって両ユニットが接続されていて、コマンド通信により行われる。
【００３４】
図２は、音声信号の記録処理を中心に考えたデジタル処理ユニット２のシステム起動から終了までの概略を示すフローチャートである。デジタル処理ユニット２に電源が供給され、システムが起動されると、まず、ステップ３１にて、ハードディスクのマウント処理及びチェック処理が行われる。ここでは、ハードディスク２１のマウント処理およびエラーチェック処理が行われる。次に、音楽データのデータベース（ＤＢ）のチェック処理が行われる（ステップ３２）。ステップ３２のＤＢチェック処理の後で、ステップ３３に進み、記録処理が行われる。そして、ステップＳ３４に進み、１曲の記録が行われる毎に、データベースの更新処理が行われる。続いて、ステップＳ３５において、音声の記録動作が終了するか否か判断され、記録動作が終了しない場合には、ステップ３３に戻り、前述の動作を繰り返す。ステップ３５で、システムの終了と判断されると、ステップＳ３６に進み、終了処理が行われ、終了処理後にシステムが終了する。
【００３５】
さて、以上の説明では、ファイルシステムとしてＦＡＴを用いたことを前提として説明を行ってきた。ＦＡＴシステムは、前述のごとく、パーソナルコンピュータにおいて、広く採用されているファイルシステムであり、これに関する文献は数多く、詳しい説明は省略する。ハードディスクは、図３に示すように分割されていて、最初にブート領域１００、次にＦＡＴ領域１０１、ルートディレクトリ領域１０２があり、大部分はデータ領域１０４となっている。ブート領域１００は、ＯＳ(Operating System)をロードするためのブート（ＩＰＬ：Initial Program Loader)や、ハードディスクを管理するための情報（Ｆ
ＡＴ領域、ディレクトリ領域、データ領域の開始セクタと容量の情報）が記録されている。本実施例の場合、ブート領域１００は、これら以外にも、ディレクトリを更新するときのバックアップ領域としても利用されている。そして、本実施例の場合、このブート領域１００は、ワークセクタとしても利用している。
【００３６】
ワークセクタは、ファイルシステムのコントロール外に記録される方がよいので、本実施例では、ブート領域に記録されている。ファイルシステムで管理されている領域に記録されると、ファイルシステム経由でアクセスすることになる。この場合、ファイルシステムに不都合が生じるとアクセスできなくなり問題である。このため、ファイルシステム外にワークセクタは記録する方がよく、また、ディスク上の予め定められた位置にワークセクタを記録すると、直接簡単にアクセスできて便利であるからである。
【００３７】
ＦＡＴは、データ領域が分割されてなる複数のクラスタにそれぞれ対応した数のＦＡＴエントリからなっている。各ＦＡＴエントリの内容としては、対応するクラスタにファイルが記録される場合には、そのファイルがさらに記憶されている次のクラスタ番号（次にたどるべきＦＡＴエントリの番号をも示している）、またはそのファイルが記録されている最後のクラスタであることを示す値が書き込まれる。
【００３８】
さらに、各ＦＡＴエントリの内容としては、対応するクラスタが未だ使用されておらず使用可能であることを示す値、対応するクラスタが欠陥クラスタ（疵で読み書きできないセクタを含む）であることを示す値等も書き込まれる。
【００３９】
ＦＡＴシステムでは、最小管理単位が１クラスタであるので、ディレクトリは最低１クラスタ（本実施例では３２セクタ）を消費する。これは、１つのディレクトリ中に収納できるファイルの数を限定している本システムにおいては、ディスク領域の無駄遣いにつながるので、後で説明するように、ディレクトリエントリが記録されるクラスタを有効活用する仕組みを作っている。
【００４０】
次に、図４ないし図６を参照して、マウント・チェック処理（ステップ３１）について説明する。ハードディスク２１のマウント処理は、デジタル処理ユニット２がハードディスク２１でファイルシステムを使用できるようにするための処理である。
【００４１】
ハードディスクのマウント時には、まず、ワークセクタのチェックが行われる。ワークセクタは、本実施例では、図３のブート領域の８セクタ目から６１セクタまでの領域に設けられており、２セクタをペアとして用いる。従って２７セットのワークセクタがあり、
実際にシステムで使用するワークセクタを有効ワークセクタと呼ぶ。ペアのうち、最初のセクタ（最初が８から始まる偶数番目のセクタＷのうち有効ワークセクタに該当するもの）には、ファイルシステムのマウント回数、有効ワークセクタ番号、ディレクトリのアドレス、チェックサムが記録される。そして、ペアのうち後のセクタ（最初が９から始まる奇数番目のセクタＷ＋１のうち有効ワークセクタに該当するもの）には、更新処理中のディレクトリエントリのセクタと同じデータが記録されるようになっている。しかし、更新が問題なく終了すると、Ｗ＋１のセクタの内容はクリアされる。従って、有効ワークセクタＷ＋１の内容がクリアされていれば、ディレクトリエントリの更新処理が問題なく終了したことがわかる。
【００４２】
さて、図４に従い、マウント時のチェック処理について説明する。まず、初期設定を行い、ＬＢＡ（論理ブロックアドレス）を８に設定し、カレントワークセクタ番号を０、最大マウント回数を０にする（ステップ３８）。そして、ステップ３９に進み、ステップ３９において、ＬＢＡが６１以上か否か判断される。最初のルーチンでは、ＬＢＡは８であるので、ステップＳ４０に進む。ステップ４０で、マウント回数、有効ワークセクタ番号を読み込み、ステップ４１に進み、読み込みエラーの有無を判定する。読み込みエラーがあると、ステップ４４に進む。正常に読み込まれると、ステップ４２に進み、ステップ４２において、マウント回数が最大マウントより小さいか否か判断され、小さい場合にはステップ４４に進み、ステップ４４にて、ＬＢＡを２つインクリメントし、ステップ３９に戻り、前述の動作を繰り返す。ステップ４２でマウント回数が最大マント回数に達した判断すると、ステップ４３で最大マウント回数をマウント回数に設定し、カレントワークセクタ番号をワーク番号に設定した後、ステップ４４を経てステップ３９に戻る。ステップ３９でＬＢＡが６１になると図５の（１）（ステップ４６）に進む。
【００４３】
上記処理で、セクタのＬＢＡ(論理ブロックアドレス）が８から６１までの領域のうち
、偶数セクタからマウント回数、有効ワークセクタ番号のデータを読み込むことを繰り返す。これらの処理により、ステップ３９から図５の（１）（ステップ４６）でステップ４６に進む段階で、変数「最大マウント回数」には、前回のマウント時の累積したマウント回数（ワークセクタに記録されている最大のマウント回数）が、変数「カレントワークセクタ番号」には、前回のマウント時の有効なカレントワークセクタ番号が保持される。
【００４４】
図５のステップ４６では、有効なカレントワークセクタ番号が０（ゼロ）でないかがチェックされ、ゼロでなければ、ステップ４７に進み、ステップ４７にてカレントワークセクタ位置のセクタの読み込みが行われ、ステップ４８に進み、読み込みエラーがあるか否かチェックされ、エラーがあると図６の（２）のステップ５６に進む。エラーがないとステップ４９に進み、カレントワークセクタを１つインクリメントし、その位置のセクタを読み込み、ステップ５０に進む。ステップ５０において、読み込みエラーがあるか否かチェックされ、エラーがあると図６の（２）（ステップ５６）に進む。エラーがないとステップ５１に進み、チェックサムを調べる。このステップ４７からステップ５１までにおいては、有効なカレントワークセクタＷ及びその次のＷ＋１のワークセクタからデータが読み込まれ、それぞれ、読み込みエラーがなく、チェックサムを調べる。これにより、カレントワークセクタの次のワークセクタＷ＋１がクリアされているかどうかを調べることになる。クリアされていれば、図６の（２）のステップ５６に進む。クリアされていなければ、システム起動中において、ディレクトリエントリの更新時になにか問題が生じたとみなして、ステップ５２からステップ５４の処理を行う。すなわち、ステップＳ５２で、有効なカレントワークセクタに記録されたディレクトリエントリのアドレスが示すセクタへ、Ｗ＋１のセクタの内容を書き込み、さらに、ステップ５３で＋１６はなれた位置のセクタへも同じ内容を書き込んで、ステップ５４において、Ｗ＋１のセクタの内容をクリアする。そして、図６の（２）のステップ５６に進む。この実施例では１クラスタを３２セクタとしているので、そのクラスタの半分である１６セクタ離れた分オフセット分離させている。
【００４５】
図６のステップ５６からの処理は、今回のマウント時のチェックのための前処理である。まず、ステップ５６において、初期処理動作を行い、変数の初期化を行う。すなわち、ＬＢＡを８，カレントワークセクタを０、最大マウント回数を最大マウント回数より＋１インクリメントし、ステップ５７に進む。ステップ５７においては、変数「最大マウント回数」が３２ビットの２進表記で０ｘＦＦＦＦＦＦＦＦより大きいか否か判断され、変数「最大マウント回数」が＋１インクリメントされた結果、３２ビットの２進表記で０ｘＦＦＦＦＦＦＦＦより大きくなると、ステップ５８に進み、最大マウント回数として１を代入する。大きくない場合にステップ５９に進む。
【００４６】
ステップ５９からステップ６４までの処理ループにおいて、偶数ワークセクタとその次のワークセクタが連続して読み書きできるペアであるセットを選択するための処理が行われる。すなわち、ステップ５９において、ＬＢＡが６１以上か否かチェックされ、６１以上の場合には、マウントエラーとする。ＬＢＡが６１より小さい場合には、ステップ６０に進み、セクタＬＢＡの次のセクタ（ＬＢＡ＋１）をクリアし、ステップ６１に進む。続いて、ステップ６１にて、書き込みエラーがあるか否かチェックされ、書き込みエラーでなければ、ステップ６２に進み、ＬＢＡで示されるワークセクタに「最大マウント回数」と「カレントワークセクタ番号」を書き込み、ステップ６３に進む。
【００４７】
ステップ６１で書き込みエラーがあると判断されると、ステップ６４に進み、ＬＢＡを＋２インクリメントし、ステップ５９に戻り、前述の動作を繰り返す。
【００４８】
ＬＢＡで示されるワークセクタに「最大マウント回数」と「カレントワークセクタ番号」を書き込み、ステップ６３に進んで、書き込みエラーでなければ、連続したセクタにおいて、エラーがなかったので、このときのセクタＬＢＡ及びセクタＬＢＡ＋１を有効なカレントワークセクタとして利用するために、ループを抜けてステップ６５に進む。どちらかの書き込みでエラーが生じた場合には、ステップ６４を経て次のペアのチェックに進む。
【００４９】
ステップ６５、ステップ６７、ステップ６８、ステップ７０、ステップ７１では、残されたワークセクタの領域の偶数セクタ（有効なカレントワークセクタを除く）に更新された「最大マウント回数」と有効なカレントワークセクタ番号とを記録しておく処理ループが行われる。
【００５０】
ステップ６５でカレントワークセクタをＬＢＡに設定し、ＬＢＡを８に設定し、ステップ６７に進む。ステップ６７にて、ループの終了、すなわちＬＢＡが６１以上になったか否か判断され、６１以上になればループの終了を検出して、ステップ６６に進む。
【００５１】
ＬＢＡが６１より小さい場合には、ステップ７０に進み、ステップ７０でＬＢＡがカレントセクタか否か判断され、カレントセレクタの場合には、ステップ６８に進み、ＬＢＡを＋２インクリメントし、ステップ６７に戻る。ステップ７０において、ＬＢＡがカレントセクタでない場合には、ＬＢＡ位置に最大マント回数、カレントワークを書き込み、ステップ６８に進む。
【００５２】
ステップ６７でループの終了を検出すると、ステップ６６でファイルシステムマウント処理行い、ステップ７２に進み、ステップ７２でマウントエラーが発生したか否か判断され、マウントエラーが発生していない場合にはマウント完了となる。マウントエラーが発生している場合にマウントエラーで終了する。
【００５３】
前述のステップ３５におけるＤＢチェック処理は、音声信号のデータ（具体的には楽曲）のデータベースのチェック処理である。このチェック処理の前に、本システムにて用いられているデータベースについて簡単に説明する。データベースは、その楽曲について、ハードディスク上で管理するためのデータベースであり、例えば、アルバム番号、トラック数、前後のアルバム名のチェーン等の情報を保持している。更に、ハードディスク上に記録された全ての楽曲データについてのこれらの情報が保持されている。これらデータは例えば、音楽ＣＤのデータを取り込んだ場合、自動的にデータを作成して、データベースに登録される。データベースの項目としては、｛アルバムNo、トラック数（そのアルバム中の曲の数）、前後のアルバムNo、アルバムタイトル、アーティスト、カテゴリ｝である。
【００５４】
音楽ＣＤから取り込んだときには、自動的にデータが生成されるので、例えば、｛Album04、１５、（Album03、Album05）、Album＿A、Artist#A、Cat1｝のようなデータが生成
されて記録される。（Album03、Album05）は前後のアルバムNoが０３と０５であることを示している。このデータは、後で、手入力により、本来のデータに変更することができる。
【００５５】
本システムにおいては、電源瞬断などの影響によるエラーを少なくするために、このデータベースファイルのバックアップを２つ備えている。すなわち、同一内容を保持したデータベースのファイルが３つあるわけである。そこで、何らかの原因で、メインのデータベースファイルが読み取り不可となった場合でも、バックアップのデータベースファイルを用いることにより、データベースの復旧処理が可能である。
【００５６】
しかしながら、これら３つのデータベースもハードディスク上に記録されるファイルであることには変わりなく、メインのデータベースファイルやバックアップファイルの更新時に、電源断などの影響から、ファイルが正しく記録されない恐れがある。そこで、本実施例では、データベースファイルに更新状況を示すフラグを付加して、この問題を解決している。
【００５７】
図１２にこの発明のディレクトリ構成を示す。ここで、メインのデータベースファイルをマスターＤＢ（ＤＢ（ＳＹＳ））、バックアップ用のファイルをバックアップ１ＤＢ（ＤＢ（ＢＵ１））、バックアップ２ＤＢ（ＤＢ（ＢＵ２））と名づける。ここで、例えば、マスターＤＢファイルは、ハードディスク上のシステムディレクトリに、バックアップ１ＤＢファイルはバックアップ１ディレクトリに、バックアップ２ＤＢファイルはバックアップ２ディレクトリのように、それぞれ別々のディレクトリに記録される。音楽データは、ＭＵＳＩＣ１〜１０迄のディレクトリに構成され、その下のディレクトリにＡＬＢＵＭ１〜１０のディレクトリが作成され、その下のディレクトリＴ０１〜９９迄のディレクトリが作成され、１つのアルバムの曲はこのＴディレクトリに格納される。
【００５８】
図１３にデータベースファイルの構成を示す。それぞれのＤＢファイルのヘッダ部分には、そのファイルの更新状況を示すフラグが書き込まれるようになっている。すなわち、編集中であれば「Ｅ」、バックアップＤＢコピー中であれば、「Ｃ」（マスターＤＢのみがもつフラグ）であり、編集完了であれば「Ｆ」となっている。
【００５９】
このデータベースファイルを用いて、システム起動時には、次のようなチェック処理を行う（図７から図９参照）。すなわち、ＤＢチェック処理を開始すると、ＤＢファイルは、前述のように、所在があらかじめわかっているので、３つのＤＢファイルから、それぞれのヘッダ情報を読み出し、更新状況をチェックする（ステップＳ２００）。ステップＳ２００において、すべてのＤＢファイルの更新フラグが「Ｆ」であれば、ＤＢファイルの更新が完全に問題なく行われたということであるから、何もすることなく、次の処理のステップＳ２０７へ進む。
【００６０】
一方、ステップ２００にて、すべてのＤＢファイルの更新フラグが「Ｆ」でない場合には、１つのＤＢファイルないし２つのＤＢファイルの更新フラグが「Ｆ」で、他のＤＢファイルの更新フラグが「Ｆ」以外であるか、又は、読み出し処理がエラーとなった場合には、更新フラグが「Ｆ」であるＤＢファイルを基にして、他のＤＢファイルを復旧する。復旧動作とは、具体的には、更新フラグが「Ｆ」であるファイルを、他のＤＢファイルにコピーすることである。更新フラグが「Ｆ」であるファイルが複数ある場合には、図７のフローチャート示されているように、バックアップ２ＤＢ、バックアップ１ＤＢ、マスターＤＢの順に優先して処理が行われる。すなわち、ステップ２００にて、すべてのＤＢファイルの更新フラグが「Ｆ」でない場合には、ステップ２０１に進み、ステップ２０１でバックアップ２ＤＢの更新フラグが「Ｆ」か否か判断され、フラグが「Ｆ」の場合には、ステップ２０４に進み、バックアップ２ＤＢの内容をバックアップ１ＤＢに書き込み、バックアップ２ＤＢの内容をマスターＤＢに書き込み、ステップ２０７に進む。
【００６１】
一方、ステップ２０１でバックアップ２ＤＢの更新フラグが「Ｆ」でない場合には、ステップ２０２に進み、ステップ２０２でバックアップ１ＤＢの更新フラグが「Ｆ」か否か判断され、フラグが「Ｆ」の場合には、バックアップ１ＤＢの内容をバックアップ２ＤＢに書き込み、バックアップ１ＤＢの内容をマスタＤＢに書き込み、ステップ２０７に進む。
【００６２】
ステップ２０２でバックアップ１ＤＢの更新フラグが「Ｆ」でない場合には、ステップ２０３に進み、ステップ２０３でマスターＤＢの更新フラグが「Ｆ」か否か判断され、フラグが「Ｆ」の場合には、マスターＤＢの内容をバックアップ２ＤＢ、バックアップ１ＤＢに書き込みをそれぞれ書き込み、ステップ２０７に進む。そして、ステップ２０３でマスターＤＢの更新フラグが「Ｆ」でない場合には、エラー発生とする。
【００６３】
上記のように、バックアップ２ＤＢ、バックアップ１ＤＢ、マスターＤＢの順に優先して処理を行うのは、音声信号の記録の処理が行われるときに、この逆の順序にて、ＤＢファイルが更新されるからである。以上の処理により、ＤＢファイルは、正しい状態に保持されることになる。
【００６４】
また、このＤＢチェック処理では、ＤＢファイルのヘッダ中に作成／更新中のファイル（若しくはアルバム）を特定する情報、例えば、そのファイルのパス名（又はその他ファイルを特定する情報）を記録するようになっており、ＤＢファイルのヘッダ中のそのファイル（アルバム）を削除する処理を行う（ステップ２０７からステップ２１０）。
【００６５】
ステップ２０７において、各ＤＢファイルがＳＤ−ＲＡＭ２６に展開し、続いて、ステップ２０８で、削除ファイルがあるか否か判断され、ない場合にはステップ２０１に進む。削除ファイルがある場合には、ステップ２０９に進み、指定トラック／アルバムを削除してステップ２１０に進む。ステップ２１０では、各ＤＢファイルをオープンして、更新し、その後クローズし、ＤＢチェック処理が終了する。
【００６６】
これら処理により、記録が完全に行われなかったかもしれない若しくは、削除の指令が出されていた楽曲／アルバムに関するファイルを削除することができる。
【００６７】
なお、ステップ２０７においては、各ＤＢファイルがＳＤ−ＲＡＭ２６に展開された後、それぞれのＤＢファイルはクローズされている。
【００６８】
ステップ３３の録音（記録）処理では、ＤＳＰ２４によりＭＰ３エンコードされたデータがハードディスク２１にファイルとして記録される。このときの処理の詳細を図８に示す。
【００６９】
録音（記録）の処理が指示されると、ステップ２１１で、音楽ファイルの記録されるディレクトリ（カレントディレクトリ）を設定し、ステップ２１２に進み、マスターＤＢファイルのヘッダに対して編集中であることを示す「Ｅ」を書き込み、更に、書き込み中の音楽ファイルの位置を特定する情報を書き込んで、マスターＤＢファイルを閉じる（ステップ２１２）。次に、二つのバックアップファイルを順次オープンして、ヘッダに書き込み中の音楽ファイルの位置を特定する情報を書き込んで、クローズする処理を行う（ステップ２１３、２１４）。そして、ステップＳ２１５で、音楽ファイルを作成して記録を継続する。このように、データベースファイルの状態を設定することにより、音楽ファイル作成中で、記録状態のときに問題が生じて動作が中断したような場合、図７のフローにより、問題のある音楽ファイル（中断されたファイル）を削除することができる。
【００７０】
そして、１曲の処理が終了すると、その音楽ファイルを閉じて（ステップ２１６）、ステップ２１７に進み、ステップ２１７にて、マスターＤＢファイルの更新ヘッダをコピー中を示す「Ｃ」に変更し（バックアップのデータベースファイルが更新される状態であることを示している）、さらに、編集ファイルの位置情報をクリアする。
【００７１】
次に、ステップ２１８に進み、ステップ２１８にて、バックアップ１ＤＢファイルの更新フラグを「Ｅ」に変更した後、ステップ２１９に進み、ＤＢファイルの更新を行う。その処理の完了後、ステップ２２０にて、更新フラグを「Ｆ」に戻して、さらに編集ファイルの位置情報をクリアする。
【００７２】
次に、ステップ２２１にて、バックアップ２ＤＢファイルの更新フラグを一旦、「Ｅ」に変更した後、ＤＢファイルの更新（バックアップ１の場合と同じ）を行い、その後、更新フラグを「Ｆ」にして、編集ファイル情報をクリアした後で、ファイルをクローズする（ステップ２２２、２２３）。最後に、マスターＤＢファイルの更新フラグを「Ｆ」に変更して、クローズする（ステップ２２４）ことで、１曲の録音が完了する。ステップ２２５で録音が終了したか否か判断され、終了していない場合にはステップ２１２に戻り、前述の動作を繰り返す。そして録音動作が終了すると、この録音（記録）動作は終了する。
【００７３】
ステップ２１７からステップ２２４により、データベースファイルのバックアップが作成されることになる。更に、バックアップ作成中に電源断などによって、処理が中断した場合でも、図７のフローにより、データベースファイルと音楽データファイルとの不整合を防止することができる。
【００７４】
図９は、録音中に、録音動作の停止が指示された場合や、シャットダウンの通知があった場合の動作を示すフローチャートである。停止等の指示（ステップ２４０）があると、記録中の音楽ファイルを閉じて、削除し（ステップ２３０）、ステップ２３１に進む。そして、マスターＤＢファイルを開いて、ファイル状態のフラグを「Ｆ」に設定すると共に、ファイル位置情報をクリアする（ステップ２３１、２３２）。
【００７５】
そして、マスターＤＢを閉じて、バックアップ１ＤＢファイルを開いて、ファイル状態のフラグを「Ｆ」に設定すると共に、ファイル位置情報をクリアする（ステップ２３３、２３４）。続いて、バックアップ１ＤＢを閉じて、バックアップ２ＤＢファイルを開いて、ファイル状態のフラグを「Ｆ」に設定すると共に、ファイル位置情報をクリアし（ステップ２３５、２３６）、そして、バックアップ２ＤＢを閉じて動作を終了する（ステップ２３７）。これらの処理がすべて完了しておれば、すべてのＤＢファイルのフラグは「Ｆ」に設定されることになる。
【００７６】
上記のような処理を行うので、楽曲の記録動作途中等において、電源瞬断などにより、予期せぬ動作の終了が行われると、更新フラグがすべて「Ｆ」ではない状態となるが、次の起動時において、更新フラグの状態から、ＤＢと楽曲ファイルが矛盾ない状態に、ＤＢファイル及び音楽ファイル等を復旧すること（不整合のない状態にすること）ができる。
【００７７】
図１０は、セクタへの書き込み処理を示すフローチャートである。既に説明した記録処理では、基本的にこのセクタへの書き込みが下位レベルで実行されている。この書き込み処理では、まず、書き込む内容がディレクトリエントリかどうかがチェックされる（ステップ８０）。図１０の処理を呼び出した処理において、ディレクトリに関する情報を書き込むのかどうかは把握されており、この情報に基づき判断される。ステップ８０にて、ディレクトリエントリでなければ、ステップ８２に進み、そのまま指定されたＬＢＡにデータを書き込む。
【００７８】
ディレクトリエントリの場合は、ステップ８１に進み、有効なカレントワークセクタがあるかどうかをチェックして（上述のようにシステム起動時にチェックしてある）（ステップ１）、有効なカレントワークセクタがあればステップ８６に進む。なければ、ステップ８２へ進む。
【００７９】
ステップ８６以降では、ステップ８６にて、有効なカレントワークセクタの内容をクリアし、書き込みエラーがあるか否かチェックされ、エラーがなければステップ８８に進む。エラーがあれば書き込みエラーで動作が終了する。ステップ８８では、有効なカレントワークセクタ＋１のセクタにまず、ディレクトリエントリの書き込み、セクタの情報を書き込む。そして、ステップ８９に進みエラーの有無をチェックする。そして、エラーがなければステップ９０に進む。エラーがあれば書き込みエラーで動作が終了する。
【００８０】
ステップ９０では、有効なカレントワークセクタへマウント回数、有効なカレントワークセクタ番号、今から書き込もうとしているＬＢＡ及びチェックサムを記録する。ここで、チェックサムは、有効なカレントワークセクタのチェックサムを除いた情報と、有効なカレントワークセクタ＋１のセクタの情報とをワード単位で加算した後、ビット反転して＋１した値であり、先に説明したマウント時の処理において、有効なカレントワークセクタ＋１の内容がクリアされているかどうかの判別に使用するものである。続いて、ステップ９１でエラーの有無がチェックされ、エラーがなければステップ９２に進む。エラーがあれば書き込みエラーで動作が終了する。
【００８１】
次のステップ９２では、書き込もうとしているＬＢＡから＋１６の位置のセクタに、バックアップのためにデータを書き込む。その後、ステップ８２に進む。この処理により、ディレクトリエントリの場合は、指定されたＬＢＡとそのＬＢＡ＋１６のＬＢＡに同じデータが書き込まれる。言い換えれば、１クラスタを前半と後半に分けて（オフセットとしてクラスタサイズの半分である１６セクタ分を設けて）、それぞれに、ディレクトリエントリに関するデータを書き込むことになる。ここで、ディレクトリエントリの内容は、ファイル名、ファイルサイズ、ファイルの開始クラスタ番号などである。
【００８２】
ここで、書き込む情報がディレクトリに関する情報の場合、すなわち、ディレクトリエントリが書き込まれるクラスタの一部のセクタである場合には、＋１６オフセットされたセクタに最初に書き込み（ステップ９２）、その後で指定されたセクタに書き込むことになる（ステップ８２）。これにより、図１０に示された処理を呼び出したときに指定されたセクタにエラーなく情報が記録されたときには、＋１６オフセットされたセクタにもエラーなく情報が記録されたことが保障される。
【００８３】
また、クラスタを２分割して処理することにより、すなわち、オフセットの値をクラスタサイズの半分に設定することにより、この変更により管理できるファイルの数を最大にすることができる。例えば、オフセット量を＋８にして、４重にディレクトリエントリを書き込むことも考えられるが、この場合、信頼性は向上しても、管理できるファイルの数は、オフセットを＋１６にしたときと比較して半分になってしまう。
【００８４】
ステップ８２の後では、もう一度書き込む内容がディレクトリエントリかどうかを確認して（ステップ８３）、ディレクトリエントリであれば、有効なカレントワークセクタ＋１のセクタの内容をクリアする。このようにすることにより、ディレクトリエントリの更新が正しく終了すれば、チェックサムによる不正が検出でき、マウント時のディレクトリエントリ復旧処理を行わない（図５のフロー及びその説明参照）。
【００８５】
この動作の効果は、次のセクタからの読み込み動作により確認できる。図１１は、セクタからの読み出しの動作を示しているが、ＬＢＡが指定されたこの読み出し動作において、指定されたセクタからデータが読み出される。読み込みエラーがなければ、読み込み動作を完了する（ステップ７６）。エラーの場合は、ステップ７７に進み、ディレクトリエントリの内容を読み出しているかどうかを判別する（ステップ７７）。基本的には、このセクタ読み込み処理を呼び出した処理において、ディレクトリエントリの読み出しかどうかが、定まっているので、ステップ７５では、この情報を利用する。ディレクトリエントリでなければ、そのままエラー終了する。ディレクトリエントリであれば、ステップ７７に進んで、指定されたＬＢＡ＋１６のセクタからデータを読み込み、ディレクトリエントリに関する情報として利用することができる。
【００８６】
すなわち、ディレクトリエントリについては、同じ情報が、１つのクラスタ内に２重に記録されていることになり、冗長度が高く、エラーに強くなっているわけである。したがって、車載用などの音声記録・再生装置に、用いて、効果が高い。
【００８７】
以上の説明では、ハードディスクを用いた記録／再生装置について説明したが、記録媒体に半導体メモリを用いたものでもこの発明は適用することができる。
【産業上の利用可能性】
【００８８】
この発明は、車載用の音声信号の記録／再生装置、携帯用の音声信号の記録／再生装置、ＰＤＡ（Personal digital assistant）、ノート型パーソナルコンピュータなどハードディスクを記憶媒体に用いる装置に適用できる。
【符号の説明】
【００８９】
１  メインユニット
２  デジタル処理ユニット
５  ホストマイコン
２１  ハードディスク
２２  ＣＤ−ＲＯＭ
２４  ＤＳＰ
２９  ＤＡＣ
２６  ＳＤ−ＲＡＭ
２７  フラッシュメモリ
８２  ＬＢＡ位置への書き込み処理
９２  ＬＢＡ＋１６位置への書き込み処理
【図１】
2011076643.tif 000003
【図２】
2011076643.tif 000004
【図３】
2011076643.tif 000005
【図４】
2011076643.tif 000006
【図５】
2011076643.tif 000007
【図６】
2011076643.tif 000008
【図７】
2011076643.tif 000009
【図８】
2011076643.tif 000010
【図９】
2011076643.tif 000011
【図１０】
2011076643.tif 000012
【図１１】
2011076643.tif 000013
【図１２】
2011076643.tif 000014
【図１３】
2011076643.tif 000015