説明

車載電子機器、及び制御プログラム

【課題】コスト増を伴わず、かつ短時間でファイルエントリ情報やリンクリスト情報を復旧可能な、車載用の車載電子機器を提供する。
【解決手段】
リンクリスト情報をその一部である書込み単位ごとに前記記憶デバイスにおける複数の書込み位置に書き込み、前記複数の書込み位置と、当該複数の書込み位置に対する前記書込み単位の書込み終了を示すデータとをバックアップ用のメモリに格納し、電源が遮断された後再投入されたときに、前記メモリに格納された複数の書込み位置のうち第1の書込み位置に対する前記第1の書込み単位の書込みが終了していない場合には、第2の書込み位置に書き込まれたデータを前記第1の書込み位置に書き込む。よって、大容量のバックアップ用メモリを必要とせず、またバックアップ用のリンクリスト情報のすべてを書き込むことなく復旧が可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、単一のファイルを複数の領域に振り分けて格納する記憶デバイスを有するとともに、外部スイッチにより電源が投入・遮断される車載電子機器に関し、特に、前記記憶デバイスにデータ書込み中に電源が遮断されたときに、データを復旧する技術に関する。
【背景技術】
【0002】
近年の車載電子機器は、カーナビゲーションだけでなく、オーディオ、ビジュアルといった機能を備えることが求められる。そして、車載電子機器は、地図データ、楽曲データ、映像データといった種々のコンテンツデータを格納するための記憶デバイスを必要とする。これらのコンテンツデータは、大容量であるとともに適宜更新することが求められる。よって、大容量かつ書き換え可能な記憶デバイスとして、ハードディスク装置が用いられる。特許文献1には、コンテンツデータを格納するハードディスク装置について記載されている。
【0003】
ハードディスク装置は一般的に、単一のファイルを複数の領域(セクタ)に振り分けて格納する。またハードディスク装置は、ディスクをデータ領域と管理領域とに分け、データ領域にファイルのデータを格納する。そして、管理領域にファイルのいわば目次に相当する、ファイルエントリ情報とリンクリスト情報とを格納する。ファイルエントリ情報は、ファイルごとの開始位置(セクタ番号)を有する。また、リンクリスト情報は、ファイルが格納されたセクタのリンク順序を有する。
【0004】
車載電子機器では、ファイルシステムがハードディスク装置に対するファイルの読み書きを制御する。データを読み出すときには、ファイルシステムはまず管理領域のファイルエントリ情報とリンクリスト情報を読み出す。そして、ファイルの開始セクタ番号とセクタのリンク順序とを取得する。そして、データ領域内のセクタをリンク順序に従って開始セクタから順次参照してデータを読み出し、所望のファイルを読み出す。またファイルを書き込むときには、ファイルシステムはハードディスク装置から書込み可能なセクタ番号を取得する。そして、開始セクタ番号を有するファイルエントリ情報とセクタのリンク順序を有するリンクリスト情報とを管理領域に書き込むとともに、データ領域のセクタにファイルのデータを書き込む。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第377922号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ハードディスク装置は、ファイル書込みの際、セクタごとにデータの書込みが完了したか否かを管理する。データの書込みが完了したセクタでは、以後、随時データの読み出しが可能となる。しかし、データの書込みが完了しないセクタでは、以後、データの読出しができなくなる。かかるセクタを、以下では不良セクタという。
【0007】
不良セクタが発生する原因の一つとして、ハードディスク装置にデータを書き込んでいるときの電源の瞬断があげられる。ここで、車載電子機器は一般的に、アクセサリスイッチにより車載バッテリと接続され、電源が投入・遮断される。そして、アクセサリスイッチは、電装品など他の車載機器に対しても電源を投入・遮断するように構成される。よって、ユーザは、アクセサリスイッチを開閉することにより、車載電子機器その他の機器に対する電源の投入・遮断を一括して行う傾向にある。このため、たとえばパーソナルコンピュータなどの汎用コンピュータと比べたときに、車載電子機器の正常な終了手順を経ずに電源が遮断される場合が多くなる。すると、ハードディスク装置において不良セクタが生じ、その後のファイルの読出しに支障をきたす確率が高くなる。
【0008】
特に、管理領域に不良セクタが生じると、次のような問題が生じる。たとえばリンクリスト情報に不良セクタが生じると、不良セクタが生じた箇所以降のリンク順序を読み出せなくなり、セクタのリンクをたどれなくなる。すると、ファイルそのものを読み出せなくなる。あるいは、ファイルエントリ情報に不良セクタが生じると、不良セクタが生じた箇所におけるディレクトリとその下位のディレクトリに含まれるファイルの開始位置が読み出せなくなる。このように、書込み途中だったファイルだけでなく、書込みが完了したファイルや、すでに格納されていたファイルまで読み出せなくなる場合がある。
【0009】
この点、汎用コンピュータであれば、ファイルエントリ情報やリンクリスト情報に書き込むデータの履歴を不揮発メモリまたはハードディスクに格納したり、ハードディスク内にこれらの情報のバックアップデータを作成したりして、復旧に備える方法が提案されている。しかし、前者の方法は大容量のメモリまたはハードディスクを必要とするので、小型化と低コスト化の要望が強い車載電子機器には好ましくない。また、後者の方法では、バックアップしたデータを不良セクタが生じたファイルエントリ情報やリンクリスト情報に移植する復旧処理に、ある程度の時間がかかる。車載電子機器では汎用コンピュータより高頻度で復旧処理が発生しうることを考慮すると、長時間の復旧処理はユーザの利便性を損ねるおそれがあり、好ましくない。
【0010】
そこで、上記に鑑みてなされた本発明の目的は、コスト増を伴わず、かつ短時間でファイルエントリ情報やリンクリスト情報を復旧可能な、車載電子機器を提供することにある。
【課題を解決するための手段】
【0011】
上記の目的を達成するために、本発明の第1の側面における車載電子機器は、単一のファイルを複数の領域に振り分けて格納する記憶デバイスを有するとともに、車載バッテリからの電源が投入・遮断される車載電子機器であって、前記電源が遮断されたときでもデータを保持可能なメモリを有する。そして、書込手段が、前記記憶デバイスに前記ファイルを格納するときの当該ファイルの開始位置を有するファイルエントリ情報と、前記開始位置からの前記領域のリンク順序を有するリンクリスト情報とを前記記憶デバイスに書き込むときに、前記リンクリスト情報をその一部である第1の書込み単位ごとに前記記憶デバイスにおける複数のリンクリスト情報書込み位置に書き込む。また、バックアップ手段が、前記複数のリンクリスト情報書込み位置と、当該複数のリンクリスト情報書込み位置に対する前記第1の書込み単位の書込み終了を示すデータとを前記メモリに格納する。さらに、復旧手段が、前記電源が遮断された後再投入されたときに、前記複数のリンクリスト情報書込み位置のうち第1のリンクリスト情報書込み位置に対する前記第1の書込み単位の書込みが終了していない場合には、第2のリンクリスト情報書込み位置に書き込まれたデータを前記第1のリンクリスト情報書込み位置に書き込むことを特徴とする。
【0012】
また、本発明の第2の側面における車載電子機器は、書込手段が、前記記憶デバイスに前記ファイルを格納するときの当該ファイルの開始位置を有するファイルエントリ情報と、前記開始位置からの前記領域のリンク順序を有するリンクリスト情報とを前記記憶デバイスに書き込むときに、前記ファイルエントリ情報をその一部である第2の書込み単位ごとに前記記憶デバイスにおける複数のファイルエントリ情報書込み位置に書き込む。また、バックアップ手段が、前記複数のファイルエントリ情報書込み位置のうち第1のファイルエントリ情報書込み位置を前記記憶デバイスに書き込む。そして、復旧手段が、前記電源が遮断された後再投入されたときに、前記第1のファイルエントリ情報書込み位置に対する前記第2の書込み単位の書込みが終了していない場合には、第2のファイルエントリ情報書込み位置に書き込まれたデータを前記第1のファイルエントリ情報書込み位置に書き込むことを特徴とする。
【0013】
さらに、本発明の第3の側面における車載電子機器は、書込手段が、前記記憶デバイスに前記ファイルを格納するときの当該ファイルの開始位置を有するファイルエントリ情報と、前記開始位置からの前記領域のリンク順序を有するリンクリスト情報とを前記記憶デバイスに書き込むときに、前記ファイルエントリ情報をその一部である第2の書込み単位ごとに前記記憶デバイスにおけるファイルエントリ情報書込み位置に書き込む。また、バックアップ手段が、前記第2の書込み単位と前記ファイルエントリ情報書込み位置とを前記メモリに格納する。そして、復旧手段が、前記電源が遮断された後再投入されたときに、前記ファイルエントリ情報書込み位置に対する前記メモリに格納された第2の書込み単位の書込みが終了していない場合には、当該第2の書込み単位を当該ファイルエントリ情報書込み位置に書き込むことを特徴とする。
【発明の効果】
【0014】
本発明によれば、コスト増を伴わず、かつ短時間でリンクリスト情報やファイルエントリ情報を復旧可能な車載電子機器が提供される。
【図面の簡単な説明】
【0015】
【図1】本実施形態における車載電子機器の使用状況を説明する図である。
【図2】車載電子機器10の構成を説明するブロック図である。
【図3】ハードディスク装置19に対するデータの読み書きについて説明する図である。
【図4】リンクリスト情報の復旧における、書込手段、バックアップ手段としてのファイルシステム128aの動作について説明する図である。
【図5】ファイルシステム128aの復旧手段としての動作について説明する図である。
【図6】リンクリスト情報LLの復旧方法における変形例について説明する図である。
【図7】ファイルエントリ情報の復旧における、ファイルシステム128aの、書込手段、バックアップ手段としての動作について説明する。
【図8】ファイルシステム128aの復旧手段としての動作について説明する図である。
【図9】バックアップメモリ18にバックアップデータを作成する方法について説明する図である。
【図10】バックアップメモリ18に格納されるデータについて説明する図である。
【図11】ハードディスク装置19にデータを書き込むときの車載電子機器10の動作手順を説明するフローチャート図である。
【図12】復旧方法を実行するときの、車載電子機器10の動作手順を説明するフローチャート図である。
【図13】リンクリスト情報復旧処理の手順を説明するフローチャート図である。
【図14】ファイルエントリ情報復旧処理の手順を説明するフローチャート図である。
【図15】ファイルエントリ情報復旧処理の別の手順を説明するフローチャート図である。
【発明を実施するための形態】
【0016】
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【0017】
図1は、本実施形態における車載電子機器の使用状況を説明する図である。車載電子機器10は、カーナビゲーション、オーディオ、及びビジュアル機能が一体化された車載電子機器である。車載電子機器10は、地図データ、楽曲データ、映像データといったコンテンツデータを格納するためのハードディスク装置19を有する。また、車載電子機器10は、ハードディスク装置19に対するコンテンツデータの読み書きを制御する読み書き制御部128を有する。車載電子機器10は、読み書き制御部128によりハードディスク装置19に格納した地図データを読み出し、経路探索を行う。また、車載電子機器10は、読み書き制御部128によりハードディスク装置19に格納した楽曲データや映像データを読み出し、楽曲や映像を再生出力する。
【0018】
車載電子機器10は、公衆通信網50と接続可能に構成される。公衆通信網50は、たとえばインターネットやVICS(Vehicle Information and Communication System)通信網である。車載電子機器10は、公衆通信網50を介してコンテンツデータ提供者のサーバ(図示は省略)に接続し、コンテンツデータをダウンロードする。そして、ダウンロードしたコンテンツデータをハードディスク装置19に格納する。かかるコンテンツデータには、上記のような楽曲データや映像データのほかに、音楽CDのTOC(Table of Contents)やCDDB(CD Data Base)などが含まれる。また、車載電子機器10は、公衆通信網50以外に、無線放送により伝送されるコンテンツデータを受信してもよい。
【0019】
また、車載電子機器10は、外部の記憶媒体7と接続可能に構成される。記憶媒体7は、たとえばUSBメモリやSDカードである。車載電子機器10は、外部の記憶媒体7からコンテンツデータを読み出し、ハードディスク装置19に格納する。ユーザは、汎用コンピュータその他の情報処理装置を用いてこれら記憶媒体7にコンテンツデータを格納することにより、記憶媒体7を介して車載電子機器10にコンテンツデータを移植することができる。
【0020】
このように、車載電子機器10は、ユーザの希望により随時、公衆通信網50や記憶媒体7により新規のコンテンツデータを取得できる。よって、ハードディスク装置19に格納されるコンテンツデータは、適宜、更新される。
【0021】
また、車載電子機器10は、車載バッテリ20と車載電子機器10外部のアクセサリ(ACC)スイッチ22により接続され電源が投入・遮断される。車載電子機器10は、ACCスイッチ22がオンのときに電源が投入されて動作する。一方、ACCスイッチ22がオフのときには電源が遮断され、動作を中断する。またACCスイッチ22は、同じ車両に搭載された電装品などの機器に車載バッテリ20からの電源を投入・遮断する。よって、ユーザがACCスイッチ22を開閉することにより、車載電子機器10を含む機器への電源を一括して投入・遮断する場合がある。
【0022】
ここで、ハードディスク装置19がデータの書込みを行っているときに電源が遮断されると、ハードディスクに不良セクタが生じる。すると読み書き制御部128が不良セクタに対する読み書きをしようとしたときに、ハードディスク装置19は読み書き制御部128にエラーを通知する。よって、データの読み書きに支障を来すようになる。本実施形態では、後述する方法により、不良セクタが生じた場合であっても以後のデータ読出しを可能にする。
【0023】
図2は、車載電子機器10の構成を説明するブロック図である。車載電子機器10では、CPU(Central Processing Unit)12が、種々の制御プログラムや処理プログラムを実行して、システム制御部122、ナビゲーション制御部124、メイン制御部126、読み書き制御部128、及びデコード部140を構成する。ROM(Read Only Memory)14は、CPU12が実行する制御プログラムや処理プログラムを格納する。RAM(Random Access Memory)16は、CPU12が動作するときに各種演算のためのデータを一時的に格納し、作業領域として用いられる。
【0024】
システム制御部122は、車載電子機器10全体の動作を統括的に制御する。また、車載電子機器10への電源投入を検知して、ナビゲーション制御部124、メイン制御部126、読み書き制御部128、及びデコード部140を起動する。
【0025】
ナビゲーション制御部124は、地図データに基づきカーナビゲーションのための経路探索処理を行う。地図データは、ハードディスク装置19に格納される。また、表示部3や操作入力部4と、他の各部とのインターフェイスを提供する。すなわち、表示部3に表示させる画像データを生成したり、操作入力部4からの入力を他の各部に受け渡したりする。
【0026】
メイン制御部126は、カーオーディオやビジュアル機能を実現するための制御を行う。メイン制御部126は、ユーザによる楽曲再生指示や映像再生指示を操作入力部4から受ける。そして、読み書き制御部128を介して楽曲データや映像データなどのコンテンツデータを取得する。コンテンツデータは、接続ポート6に接続される記憶媒体7やハードディスク装置19に格納される。あるいは、メイン制御部126は、オーディオデッキ21からコンテンツデータを取得する。オーディオデッキ21は、CDやDVDといった記憶媒体からコンテンツデータを読み出す。そして、メイン制御部126は、コンテンツデータをデコード部140に渡す。
【0027】
デコード部140は、楽曲データをデコードして音声信号を生成し、車載されたスピーカ8に出力する。あるいは、映像データをデコードして映像信号を生成し、ナビゲーション制御部124を介して表示部3に出力する。
【0028】
またメイン制御部126は、ユーザによるコンテンツデータのダウンロード指示を操作入力部4から受ける。そして、通信部19を介して公衆通信網50に接続し、公衆通信網50経由でコンテンツデータ提供者のサーバに接続する。通信部19は、無線通信により公衆通信網50と接続可能に構成される。そしてメイン制御部126は、そのサーバからコンテンツデータをダウンロードする。そして、ダウンロードしたコンテンツデータを、読み書き制御部128を介してハードディクス装置19に格納する。あるいは、通信部19は、無線放送により伝送されるコンテンツデータを受信してもよい。
【0029】
また、メイン制御部126は、ユーザによるコンテンツデータの転送指示を操作入力部4から受ける。そして、読み書き制御部128を介して記憶媒体7からコンテンツデータを取得する。そして、取得したコンテンツデータを読み書き制御部128を介してハードディクス装置19に格納する。
【0030】
読み書き制御部128は、接続ポート6に接続される記憶媒体7やハードディスク装置19に対し、コンテンツデータの読出しや書込みを行う。読み書き制御部128は、デバイスドライバ128bとファイルシステム128aを有する。デバイスドライバ128bは、記憶媒体7とハードディスク装置19に対し、コンテンツデータを読み書きする位置とコンテンツデータの受渡しを行う。ファイルシステム128aは、デバイスドライバ128bに対し、コンテンツデータをファイルとして読み書きする位置の指示と、コンテンツデータの受渡しを行う。その動作については、後に詳述する。
【0031】
ハードディスク装置19は、磁性体が塗布されたハードディスク19aと、これにデータを書き込む磁気ヘッド、及びこれらのドライブ機構とその制御回路を有する。ハードディスクは、管理領域とデータ領域とを有する。ハードディスク装置19は、管理領域とデータ領域においてセクタ単位でデータを格納する。このとき、単一のファイルを複数のセクタに振り分けて格納する。ハードディスク装置19は、ACCスイッチ22がオンのときに電源が投入されて動作する。そして、ACCスイッチ22がオフのときには電源が遮断され、動作を中断する。
【0032】
車載電子機器10は、ROM14やRAM16のほかに、バックアップメモリ18を有する。バックアップメモリ18は、ACCスイッチ22により車載バッテリ20からの電源が遮断されたときでも、格納したデータを保持できるように構成される。たとえば、バックアップ電源を有するDRAM(Dynamic RAM)やSDRAM(Synchronous DRAM)で構成される。あるいは、EEPROM(Electrically Erasable and Programmable ROM)などの書換え可能な不揮発性メモリで構成してもよい。本実施形態では、バックアップメモリ18はハードディスク装置19に格納されるファイルの復旧に必要なデータを保持する。その詳細については後に詳述する。
【0033】
図3は、ハードディスク装置19に対するデータの読み書きについて説明する図である。ハードディスク装置19のハードディスク19aは、管理領域MAとデータ領域DAを有する。ハードディスク装置19は、管理領域MAにファイルエントリ情報FEとリンクリスト情報LLを格納し、データ領域DAにデータのファイルを格納する。またハードディスク装置19は、管理領域MAとデータ領域DAでは、セクタ単位でデータを格納する。
【0034】
ファイルエントリ情報FEは、ファイル名「File_001」、「File_002」、「File_003」・・・と、ファイルの開始位置である開始セクタ番号を有する。ファイルエントリ情報FEはさらに、図示を省略するが、ファイルごとのデータ容量を有する。リンクリスト情報LLは、ファイルが格納されたセクタのリンク順序を有する。リンクリスト情報LLはたとえば、FAT(File Allocation Table)である。FATの場合、複数のセクタを1つのクラスタとして取り扱い、クラスタ単位でセクタのリンク順序を有する。ただし、ここでは便宜上、リンクリスト情報LLはセクタ単位でリンク順序を有するものとして説明する。
【0035】
まず、ファイル「File_001」を例として、ファイルの書込みについて説明する。
【0036】
ハードディスク装置19は、データ領域DAの空き状況に応じて、ファイル「File_001」をセクタSECに格納する。ここで、セクタSECは、それぞれセクタ番号「001」、「008」、「010」、「003」、「020」を有する。そして、セクタSECは、この順序でリンクする。ここで、ファイル「File_001」の開始セクタ番号は「001」である。
【0037】
ファイルシステム128aは、各セクタ番号をハードディスク装置19から受け取る。そして、ファイルエントリ情報FEに、ファイル名「File_001」と開始セクタ番号「001」を書き込む(矢印F1)。
【0038】
そして、ファイルシステム128aは、リンクリスト情報LLにセクタのリンク順序を書き込む。リンクリスト情報LLのインデックス番号は、セクタ番号に対応する。そして、各インデックス番号には次のセクタ番号が対応づけて登録される。よって、ファイル「File_001」のセクタのリンク順序は、インデックス番号に従って「001」「008」、「010」、「003」、「020(END)」のようにたどることができる。
【0039】
次に、ファイルの読出しについて説明する。上記このようにして書き込まれたファイル「File_001」を読み出すときには、ファイルシステム128aはまずファイルエントリ情報FEからファイル名「File_001」とその開始セクタ位置「001」を検索する。そして、リンクリスト情報LLからセクタSECのリンク順序を取得する。つまり、インデックス番号「001」「008」、「010」、「003」、「020(END)」を検索する。そして、データ領域DAのセクタSECをその順序で参照して、格納されたデータを読み出す。このようにして、ファイル「File_001」が読み出される。
【0040】
なお、一旦書き込んだファイルを更新するときには、ファイルシステム128aは、上記のようにして検索したリンク順序で、セクタSECに対し順次更新データを書き込む。
【0041】
ここで、ファイルエントリ情報FEやリンクリスト情報LLを書き込むときに車載電子機器10の電源が遮断され、管理領域MAに不良セクタが生じると、以後のファイル読み出しに支障をきたす。かかる場合にファイルエントリ情報FEやリンクリスト情報LLの復旧を行うために、ファイルシステム128aは次のような処理を実行する。本実施形態では、以下で説明するファイルエントリ情報FEやリンクリスト情報LLの復旧処理を行うファイルシステム128aが、本発明における「書込手段」、「バックアップ手段」、及び「復旧手段」に対応する。
【0042】
説明の便宜上、まずリンクリスト情報LLの復旧方法について説明する。次いで、ファイルエントリ情報FEの復旧方法について説明する。
【0043】
[1] リンクリスト情報LLの復旧方法
図4、図5は、リンクリスト情報LLの復旧方法について説明する図である。本実施形態では、ファイルシステム128aは、リンクリスト情報LLのバックアップデータをハードディスク19aの管理領域MAに作成する。そうすることによりデータを冗長化して、不良セクタが生じたときに備える。なお、FATの仕様によれば、管理領域MAには2つのFATを格納するための領域を設けることが可能である。以下では、リンクリスト情報LL1とそのバックアップデータのリンクリスト情報LL2を例として説明する。
【0044】
まず図4で、書込手段、バックアップ手段としてのファイルシステム128aの動作について説明する。ファイルシステム128は、書込手段として、リンクリスト情報LL1、LL2をハードディスク装置19に書き込む際、所定の書込み単位WUごとにリンクリスト情報LL1、LL2の一部を作成してRAMに格納する(S1)。ここで書込み単位WUは、たとえば1セクタに相当する512バイト分のデータである。
【0045】
そして、ファイルシステム128aがバックアップ手段として、書込み単位WUを書き込む位置と、書込み終了を示すフラグデータ(以下、書込みフラグ)とをバックアップメモリ18に格納する。ここで、書込み単位WUを書き込む位置は、セクタ番号やそのアドレスである。このときファイルシステム128aは、リンクリスト情報LL1、LL2ごとに、書込み位置WP1、WP2と書込みフラグWF1、WF2をバックアップメモリ18に格納する(S2)。ここにおいて、書込み位置WP1、WP2が、「リンクリスト情報書込み位置」に対応する。また以下では、書込みフラグWF1、WF2の値「ON」は書込みが完了していない状態を示し、「OFF」は書込み完了を示す。そして、書込みフラグWP1、WP2は、「OFF」を初期値として書き込まれる。
【0046】
次に、ファイルシステム128aが書込手段として、書込み単位WUをハードディスク装置19に書き込む。このとき、まず書込みフラグWF1を「ON」にし、リンクリスト情報LL1に対し書込み単位WUを書き込む(S3)。このとき、書込み位置WP1に対応するセクタSEC_WP1に書込み単位WUを書き込む。そして、リンクリスト情報LL1に対する書込み単位WUの書込みが終了すると、ファイルシステム128aは、バックアップ手段として書込みフラグWF1を「OFF」にする(S3´)。次に、ファイルシステム128aは書込みフラグWF2を「ON」にし、リンクリスト情報LL2に対し書込み単位WUを書き込む(S4)。このとき、書込み位置WP2に対応するセクタSEC_WP2に書込み単位WUを書き込む。そして、リンクリスト情報LL2に対する書込み単位の書込みが終了すると、書込みフラグWF2を「OFF」にする(S4´)。
【0047】
このような動作を繰り返すことにより、リンクリスト情報LL1、LL2が管理領域MAに書き込まれる。このとき、バックアップメモリ18に格納される書込み位置WP1、WP2は、書込み単位WUごとに上書きされる。また書込みフラグWP1、WP2の初期値は、その度ごとに「OFF」に設定される。
【0048】
上記の処理において、たとえばリンクリスト情報LL1に書込み単位WUを書き込んでいるときに電源が遮断されると、書込みフラグWF1は「ON」、書込みフラグWF2は「OFF」の状態でバックアップメモリ18に保持される。また、リンクリスト情報LL2に書込み単位を書き込んでいるときに電源が遮断されると、書込みフラグWF1は「OFF」、書込みフラグWF2は「ON」の状態でバックアップメモリ18に保持される。
【0049】
よって、電源が復帰した後に、ファイルシステム128aは復旧手段として、まず書込みフラグWF1、WF2を読み出して、リンクリスト情報LL1、LL2のどちらを書き込んでいるときに電源が遮断されたかを検出する。
【0050】
次に図5を用いて、ファイルシステム128aの復旧手段としての動作について説明する。まず説明の便宜上、図5(A)を用いてリンクリスト情報LL2を書き込んでいるときに電源が遮断された場合について説明する。この場合、書込みフラグWF1は「OFF」、書込みフラグWF2は「ON」の状態でバックアップメモリ18に格納されている。よってこのとき、リンクリスト情報LL2を構成するセクタに不良セクタが発生しているものと判断できる。そして、その位置は、電源遮断時に書込みが行われていた位置、すなわちバックアップメモリ18に格納されたリンクリスト情報LL2の書込み位置WP2に対応する。
【0051】
よって、ファイルシステム128aは、バックアップメモリ18から書込み位置WP2を読み出す(S5)。そして、書込み位置WP2に対応する書込み位置、つまり書込み位置WP1を読み出す(S6)。そして、書込み位置WP1におけるリンクリスト情報LL1のセクタSEC_WP1からデータを読み出す(S7)。このときリンクリスト情報LL1に対する書込み単位WUの書込みは既に終了しており、そのデータはセクタSEC_WP1に格納されている。よって、ファイルシステム128aは、読み出したデータをリンクリスト情報LL2の書込み位置WP2に対応するセクタSEC_WP2に書き込む(S8)。このようにすることで、セクタSEC_WP2のデータが確定される。よって、セクタSEC_WP2が不良セクタであった場合にこれを解消でき、それとともにリンクリスト情報LL2を復旧できる。
【0052】
次に、図5(B)を用いて、リンクリスト情報LL1を書き込んでいるときに電源が遮断された場合について説明する。この場合、書込みフラグWF1は「ON」、書込みフラグWF2は「OFF」の状態でバックアップメモリ18に格納されている。よってこのとき、リンクリスト情報LL1を構成するセクタに不良セクタが発生しているものと判断できる。そして、その位置は、電源遮断時に書込みが行われていた位置、すなわちバックアップメモリ18に格納された書込み位置WP1に対応する。
【0053】
よって、ファイルシステム128aは、バックアップメモリ18から書込み位置WP1を読み出す(S15)。そして、その書込み位置WP1に対応する書込み位置、つまり書込み位置WP2を読み出す(S16)。そして、書込み位置WP2におけるリンクリスト情報LL2のセクタSEC_WP2からデータを読み出す(S17)。このときリンクリスト情報LL2は、書込みが行われる前の状態であるので、過去のデータが読み出される。そして、ファイルシステム128aは、読み出したデータを書込み位置WP1に対応するリンクリスト情報LL1のセクタSEC_WP1に書き込む(S18)。このようにすることで、セクタSEC_WP1のデータが確定される。よって、セクタSEC_WP1が不良セクタであった場合に、これが解消される。なお、上述したように、セクタSEC_WP2に書き込まれるデータは過去のリンクリスト情報のデータであるが、不良セクタを解消することで、以後の読み出しを可能にできる。よって、再度コンテンツデータの書込みを実行することができるようになる。
【0054】
このようにして、リンクリスト情報LL1、LL2を復旧できる。また、バックアップメモリ18は書込み単位WU全体(512バイト)を格納するのではなく、その書込み位置WP1、WP2と書込みフラグWF1、WF2を格納することとした。よって、バックアップメモリ18の最小限の容量(たとえば4バイト)を用いることでリンクリスト情報LL1、LL2の復旧が可能となる。特に、コンテンツデータのファイルの容量が大きくなると、これに伴いリンクリスト情報LL1、LL2のデータ容量も大きくなる。しかし、このようにすれば、コンテンツデータのファイルの容量にかかわらず、バックアップメモリ18の一定の容量を使用するだけでリンクリスト情報LL1、LL2の復旧が可能となる。そして、バックアップメモリ18の容量を最小限とすることができるので、車載電子機器10全体として回路規模を小型化でき、低コスト化が可能になる。
【0055】
さらに、リンクリスト情報LL1、LL2のうち一方の全体のデータを他方に書き込むのではなく、不良セクタ分のデータを書き込むようにした。よって、復旧処理にかかる時間を最小限とすることが可能となるので、ユーザの利便性を向上させることができる。
【0056】
[2] リンクリスト情報の復旧方法における変形例
バックアップメモリ18は、上述したように、ACCスイッチ22がオフされたときでも格納されたデータを保持できるように構成される。そのためにはたとえば、EEPROMなどの書換え可能な不揮発性メモリで構成することが可能であるが、より望ましくは、バックアップ電源を有するDRAMやSDRAMで構成される。SDRAMやDRAMは読み書き速度がEEPROMより速いので処理を高速化でき、またEEPROMと比べて小容量単位での書込みが可能であるのでハードウェア資源を最適に利用できる。
【0057】
バックアップ電源としては、車載バッテリ20とは別個に電池を備えることや、ACCスイッチ22とは別系統で車載バッテリ20から電源供給を受けることが可能である。ここで後者の場合に、車載バッテリ20との接続が取り外されることにより、バックアップメモリ18のデータが消失してしまうことがある。たとえば、検査などの目的で車載電子機器10が車体から取り外されるような場合である。
【0058】
そこで、変形例におけるファイルシステム128aは、バックアップメモリ18のデータが消失した場合に、次のような方法によりリンクリスト情報LL1、LL2を復旧する。
【0059】
図6は、リンクリスト情報LLの復旧方法における変形例について説明する図である。まず、図6(A)で、ハードディスク19aの管理領域MAに格納されたリンクリスト情報LL2に不良セクタが含まれる場合について説明する。ファイルシステム128aは、復旧手段としてまず、バックアップメモリ18に格納した書込み位置WP1、WP2を参照する。しかし、このとき書込み位置WP1、WP2は消失している。あるいは、たとえば後述するように、バックアップメモリ18に予め格納されるチェックコードが消失している場合に、書込み位置WP1、WP2が消失していることを判断してもよい。そして、この時点ではリンクリスト情報LL1、LL2のいずれに不良セクタが含まれるかは不明である。
【0060】
そこでファイルシステム128aは、まずリンクリスト情報LL1の開始位置から順次セクタSEC1_1、2、・・・、Nごとにデータを読み出す。そして、読み出したデータをリンクリスト情報LL2のセクタSEC2_1、2、・・・、Nに順次書き込む(S20)。ここで、リンクリスト情報LL1における全セクタの読み出しが完了すれば、リンクリスト情報LL2に不良セクタが含まれる蓋然性が高い。しかしこのとき、リンクリスト情報LL1のデータを移植することにより、リンクリスト情報LL2を復旧することができる。
【0061】
次に、図6(B)で、リンクリスト情報LL1に不良セクタが含まれる場合について説明する。図6(A)の動作を実行しているときに、リンクリスト情報LL1におけるセクタSEC1_Nが不良セクタである場合には、ハードディスク装置19からエラーが通知され、その位置で読み出しができなくなる。するとファイルシステム128aは、リンクリスト情報LL1の読み出しを一旦中止する。そして、読み出せないセクタSEC1_Nに対応するリンクリスト情報LL2のセクタSEC2_Nのデータを読み出す。そして、読み出したデータをリンクリスト情報LL1のセクタSEC1_Nに書き込む(S22)。そして、リンクリスト情報LL1における続きのセクタSEC1_N+1からデータの読出しを再開し、読み出したデータをリンクリスト情報LL2のセクタSEC2_N+1から書き込む(S24)。
【0062】
このようにすれば、リンクリスト情報LL1を復旧することができる。なおこの場合、リンクリスト情報LL2は、書込みが行われる前の状態であるので、最新の情報のデータではない。しかし、不良セクタを解消することで、以後の読出しを可能にできる。よって、再度コンテンツデータの書込みを実行することができるようになる。
【0063】
[3] ファイルエントリ情報の第1の復旧方法
次に、ファイルエントリ情報FEの復旧方法について説明する。本実施形態では、ファイルシステム128aはファイルエントリ情報FEをハードディスク19aに書き込む際、2つの方法でデータを冗長化させ、復旧に備える。第1の方法は、ハードディスク19a内にファイルエントリ情報のバックアップデータを作成する方法である。第2の方法は、ハードディスク19aに書き込むときの書込み単位をバックアップメモリ18に格納する方法である。次では、まず第1の方法について説明し、次いで第2の方法について説明する。
【0064】
図7、図8は、ハードディスク19aにファイルエントリ情報FEのバックアップデータを作成することにより、ファイルエントリ情報FEを復旧する方法について説明する図である。ここでは、ファイルエントリ情報FE1とそのバックアップデータのファイルエントリ情報FE2を例として説明する。
【0065】
まず図7を用いて、ファイルシステム128aの、書込手段、バックアップ手段としての動作について説明する。ファイルシステム128aは、書込手段として、ファイルエントリ情報FE1のバックアップデータのファイルエントリ情報FE2を作成する際、所定の書込み単位fWUごとにファイルエントリ情報の一部を作成してRAMに格納する(S101)。書込み単位fWUは、たとえば1セクタに対応する512バイト分のデータである。そしてファイルシステム128aは、書込み単位fWUをハードディスク装置19に書き込む。このとき、まずファイルエントリ情報FE1に対し書込み単位fWUを書き込む(S103)。このとき、書込み位置fWP1に対応するセクタSEC_fWP1に書込み単位fWUを書き込む。ここにおいて、書込み位置fWP1が、「ファイルエントリ情報書込み位置」に対応する。
【0066】
次に、ファイルシステム128aは、バックアップ手段として、ファイルエントリ情報FE2に対し書込み単位fWUを書き込む(S104)。このときファイルエントリ情報FE2は、管理領域MAではなく固定の未使用領域DA1に書き込まれる。また、書込み位置fWP2に対応するセクタSEC_fWP2に書込み単位fWUが書き込まれる。そしてファイルシステム128aは、書込み位置fWP1をハードディスク装置19の固定の未使用領域DA1に格納する(S105)。
【0067】
このような動作を繰り返すことにより、ファイルエントリ情報FE1がハードディスク19aの管理領域MAに、ファイルエントリ情報FE2が固定の未使用領域DA1に書き込まれる。ただし、ファイルエントリ情報を格納する領域により本実施形態が限定されるものではない。なお、書込み位置fWP1も固定の未使用領域DA1に書き込まれるが、書込み位置fWP1は書込み単位fWUごとに上書きされる。
【0068】
図8は、ファイルシステム128aの復旧手段としての動作について説明する図である。ここでは、ファイルエントリ情報FE1に書き込んでいるときに電源が遮断された場合について説明する。
【0069】
ファイルシステム128aは、復旧手段としてハードディスク装置19の固定の未使用領域DA1から書込み位置fWP1を読み出す(S115)。そして、ファイルエントリ情報FE2における書込み位置fWP1に対応する書込み位置、つまり書込み位置fWP2のセクタSEC_fWP2からデータを読み出して(S116)、書込み位置fWP1に対応するファイルエントリ情報FE1のセクタSEC_fWP1に、読み出したデータを書き込む(S118)。このようにすることで、セクタSEC_fWP1が不良セクタであった場合に、これが解消される。なお、このときファイルエントリ情報FE2は、書込みが行われる前の状態であるので、最新の情報のデータではないが、不良セクタを解消することで、以後の読み出しを可能にできる。よって、再度コンテンツデータの書込みを実行することができるようになる。
【0070】
このように、ファイルエントリ情報FE1を復旧できる。また、ハードディスク装置19の未使用領域DA1に書込み位置fWP1を格納することとしたので、ハードディスク装置19の容量増大を必要とせず、最小限の容量を用いることでファイルエントリ情報FE1の復旧が可能となる。また、バックアップRAM18の容量増大を必要としない。よって、車載電子機器10全体として回路規模を小型化でき、低コスト化が可能になる。
【0071】
さらに、ファイルエントリ情報FE2の全体のデータをファイルエントリ情報FE1に書き込むのではなく、不良セクタ分のデータを書き込むようにしたので、復旧処理にかかる時間を最小限とすることが可能となり、ユーザの利便性を向上させることができる。
【0072】
[4] ファイルエントリ情報の第2の復旧方法
図9は、バックアップメモリ18にバックアップデータを作成する方法について説明する図である。まずファイルエントリ情報FEをハードディスク19の管理領域MAに書き込むときに、ファイルシステム128aは書込手段として、所定の書込み単位fWUごとにファイルエントリ情報FEの一部のデータを生成してRAM16に格納する(S201)。ここで書込み単位fWUは、たとえば1セクタに相当する512バイトである。
【0073】
そして、ファイルシステム128aは、バックアップ手段として、書込み単位を書き込む位置fWPと、書込み単位fWUのデータとをバックアップメモリ18に格納する(S202、S203)。
【0074】
そして、ファイルシステム128aは、書込手段として、書込み単位fWUをハードディスク装置19に書き込む(S204)。このような動作を繰り返すことにより、ファイルエントリ情報FEが管理領域MAに書き込まれる。このとき、バックアップメモリ18に格納される書込み単位fWUと書込み位置fWPは、書込み単位ごとに上書きされる。
【0075】
上記の処理において、ファイルエントリ情報FEに書込み単位fWUを書き込んでいるときに電源が遮断される。そして電源が復帰した後、ファイルシステム128aは復旧手段として、まずファイルエントリ情報FEにおける書込み位置fWPのデータを確認する。そして、これが読み出せない場合には、ファイルエントリ情報FEに不良セクタが発生しているものと判断できる。よって、バックアップメモリ18に格納された書込み単位fWUを、書込み位置fWPに対応するセクタSEC_fWPに書き込む(S210)。そうすることにより、不良セクタを解消するとともにデータを復旧できる。
【0076】
このように、ファイルエントリ情報FEを復旧できる。なおこの方法によれば、バックアップメモリ18はハードディスク装置19より読み書きが高速であるので、書込み単位fWUを書き込む際の処理が高速化される。また、リンクリスト情報LLの場合は上述したようにファイルの容量が大きくなるのに伴いデータ容量が大きくなるが、ファイルエントリ情報FEの場合はそのデータ容量はリンクリスト情報LLほどファイルの容量に依存しない。よって、バックアップメモリ18に書込み単位fWUを格納する方法は、処理を高速化させるうえで好適な態様である。
【0077】
上述の説明において、リンクリスト情報LLとファイルエントリ情報FEの復旧方法を示した。本実施形態には、リンクリスト情報LLの復旧とファイルエントリ情報FEの復旧の両方を行う場合も、いずれか一方のみを行う場合も含まれる。
【0078】
[5] バックアップメモリ18に保持されたデータの正確性を担保するための変形例
上述したリンクリスト情報LLや、ファイルエントリ情報FEの第2の復旧方法では、バックアップメモリ18に格納されたデータに基づいて復旧が行われる。よって、バックアップメモリ18に格納されるデータの正確性が要求される。ここで、バックアップメモリ18に格納されたデータの正確性を担保するための変形例について説明する。
【0079】
本変形例は、リンクリスト情報LLとファイルエントリ情報FEの復旧方法のいずれにも適用可能である。本変形例では、ファイルシステム128aがバックアップ手段として、バックアップメモリ18に次のようなデータを格納しておく。これにより、復旧手段としてバックアップメモリ18のデータを読み出す際に、その正確性を確認することができる。
【0080】
図10は、バックアップメモリ18に格納されるデータについて説明する図である。バックアップチェックコードbCHは、車載電子機器10の初期化時などに書き込まれる所定のデータ(たとえば文字列)である。ファイルシステム128aは、バックアップチェックコードbCHを読み出すことができたときに、バックアップメモリ18全体としてのデータが消失していないことを確認できる。
【0081】
リンクリスト情報LLの書込み位置WP、リンクリスト情報LLの書込みフラグWF、ファイルエントリ情報FEの書込み位置fWP、ファイルエントリ情報FEの書込み単位fWUについては上述したとおりである。なおここでは、リンクリスト情報LLとファイルエントリ情報FEの両方の復旧を行う場合を示すが、いずれか一方のみの場合には、それぞれに必要なデータが書き込まれる。また、ファイルエントリ情報FEのバックアップデータをハードディスク装置19に作成する第1の方法の場合には、ファイルエントリ情報FEの書込み単位fWUを省略することが可能である。
【0082】
ファイルエントリ情報FEの書込み単位チェックコードfCHは、バックアップメモリ18の所定領域、たとえば512バイト分の予め確保された領域の末尾に書き込まれる所定のデータ(たとえば文字列)である。ファイルシステム128aは、書込み単位チェックコードfCHを初期化時に書き込む。そしてファイルエントリ情報FEの書込み単位fWUをこの所定領域に正常に書き込むと、この書込み単位チェックコードfCHは上書きされる。よって、ファイルシステム128aは、この書込み単位チェックコードfCHを読み出すことができないときに、書込み単位fWUが正常に書き込まれたことを確認できる。
【0083】
さらに、ファイルシステム128aは、ファイルエントリ情報FE2に書き込まれた書込み単位fWUの正確性を確認するために、ファイルエントリ情報FE2の書込み単位fWUのチェックサムCSMを格納する。ファイルシステム128aは、ハードディスク装置19から書込み単位fWUを読み出してそのチェックサムを算出し、格納されたチェックサムCSMと一致すれば、ファイルエントリ情報FE2に書き込まれた書込み単位が正確であることを確認できる。
【0084】
[6] 本実施形態における車載電子機器10の動作手順
次に、本実施形態における車載電子機器10の動作手順について、図11〜図15を用いて説明する。
【0085】
図11は、リンクリスト情報LL1、LL2やファイルエントリ情報FE1、FE2をハードディスク装置19に書き込むときの車載電子機器10の動作手順を説明するフローチャート図である。図11(A)の手順は、電源が投入された状態で、たとえばユーザからの指示入力に応答してコンテンツデータをハードディスク装置19に格納する際に実行される。図11(A)の手順は、ファイルシステム128aが実行する手順である。
【0086】
ファイルシステム128aは、まずリンクリスト情報の書込みを、対応するすべてのセクタが終了するまでループして実行する(S100、S110)。すなわち、ファイルシステム128aは、書込み単位WUごとに、書込み位置WP1をバックアップメモリ18に格納する(S101)。そして、書込みフラグWF1を初期値の「OFF」から「ON」に変更する(S102)。そしてリンクリスト情報LL1の書き込み位置WP1に書込み単位WUを書き込む(S103)。そして、書込み位置WP1に対する書込みが終了すると書込みフラグWF1の値を「ON」から「OFF」に変更する(S104)。
【0087】
次に、ファイルシステム128aは、リンクリスト情報LL2の書き込み位置WP2をバックアップメモリ18に格納する(S105)。そして、書込みフラグWF2を初期値の「OFF」から「ON」に変更する(S106)。そして、リンクリスト情報LL2の書込み位置WP2に書込み単位WUを書き込む(S107)。そして、書込み位置WP2に対する書込みが終了すると書込みフラグWF2の値を「ON」から「OFF」に変更する(S108)。このように、ファイルシステム128aは、手順S102から手順S108を、リンクリスト情報LL1、LL2に対応するすべてのセクタにデータを書き込むまで繰り返す。
【0088】
次に、ファイルシステム128aは、ファイルエントリ情報の書込みを、対応するすべてのセクタが終了するまでループして実行する(S112、S122)。ここでは、例として、ファイルエントリ情報FE1、FE2をハードディスク装置19に書き込む場合を示す。
【0089】
ファイルシステム128aは、、固定の未使用領域DA1のファイルエントリ情報FE2に書込み単位fWUを書き込み(S118)、更に書込み位置WP1を書き込む(S119)。そして、ファイルエントリ情報FE1の書込み位置fWP1に書込み単位fWUを書き込む(S120)。このように、ファイルシステム128aは、手順S112から手順S122を、ファイルエントリ情報FE1、FE2に対応するすべてのセクタに書き込むまで繰り返す。
【0090】
なお、書込み単位fWUをバックアップメモリ18に格納する場合には、手順S118〜S120の代わりに、図11(B)に示すように、バックアップメモリ18に書込み単位fWUと書込み位置WPを格納し(S113)、ファイルエントリ情報FEに書込み単位fWUの書込みを行う(S115)。
【0091】
また、ここでは図示を省略したが、ファイルシステム128aは、上記の手順に加え、ハードディスク19aのデータ領域DAに対し、コンテンツデータのファイルの書込みを行う。
【0092】
次に、図11の手順を実行するときに電源が遮断され、再投入されたときの復旧処理について図12を用いて説明する。
【0093】
図12は、上述した復旧方法を実行するときの、車載電子機器10の動作手順を説明するフローチャート図である。図12の手順は、電源が投入されたときに、車載電子機器10全体としての初期化動作の一部としてファイルシステム128aが実行する手順である。ファイルシステム128aは、まずリンクリスト情報の復旧処理を実行する(S1000)。そして、ファイルエントリ情報の復旧処理を実行する(S1002)。リンクリスト情報の復旧処理(S1000)と、ファイルエントリ情報の復旧処理(S1002)は、いずれか一方のみであってもよい。
【0094】
図13は、リンクリスト情報復旧処理の手順を説明するフローチャート図である。図13の手順は、図12における手順S1000のサブルーチンに対応する。図13の手順は、復旧手段としてのファイルシステム128aが実行する。
【0095】
まず、ファイルシステム128aは、バックアップメモリ18にデータが格納されているかを確認する(S1010)。このとき、図10で示したバックアップチェックコードbCHが読み出されたときに、データが格納されていることを確認する。格納されていれば(S1010のYES)、書込みフラグWF1、WF2に基づいて、リンクリスト情報LL1、LL2のうちどちらで不良セクタが生じたかを判断する(S1014)。リンクリスト情報LL2と判断した場合には(S1014の「LL2」)、リンクリスト情報LL1からリンクリスト情報LL2に書込みを行い(S1018)、処理を終了する。一方、リンクリスト情報LL1と判断した場合には(S1014の「LL1」)、リンクリスト情報LL2からリンクリスト情報LL1に書込みを行い(S1016)、処理を終了する。
【0096】
また、ファイルシステム128aは、バックアップメモリ18にデータが格納されていない場合には(S1010のNO)、リンクリスト情報LL11のすべてのデータをリンクリスト情報LL2に書き込む(S1018)。全セクタの書込みが完了するまで、リンクリスト情報LL1からリンクリスト情報LL2にデータを書き込む処理を実行する(S1024のNO)。そして、全てのセクタの書込みが完了すると(S1024のYES)、処理を終了する。このとき、リンクリスト情報LL1に不良セクタがある場合(S1020のYES)、リンクリスト情報LL2におけるそのセクタのデータをリンクリスト情報LL1に書き込み(S1022)、処理を終了する。
【0097】
このような手順によれば、リンクリスト情報LL1、LL2を短時間で復旧できる。また、バックアップメモリ18のデータが消失していた場合であっても、リンクリスト情報LL1、LL2を復旧できる。
【0098】
図14は、ファイルエントリ情報復旧処理の手順を説明するフローチャート図である。図14の手順は、図12における手順S1002のサブルーチンに対応する。図14の手順は、復旧手段としてのファイルシステム128aが実行する手順である。またこの手順は、ハードディスク装置19にファイルエントリ情報のバックアップデータを作成する第1の方法に対応する。
【0099】
まず、ファイルシステム128aは、ハードディスク装置19からファイルエントリ情報FE2の書込み単位WUを読出し(S1119)、そのチェックサムを算出して、図10で示した書込み単位チェックサムCSMと一致するかを確認する(S1120)。一致していれば(S1120のOK)、ファイルエントリ情報FE2に対する書込みが正常に終了していると判断できる。そして、ファイルシステム128aは、ファイルエントリ情報FE1の書込み位置WPを読読出す(S1122)。そして、読出されないときにはファイルエントリ情報FE1で不良セクタが生じたと判断し(S1124のYES)、ファイルエントリ情報FE2からファイルエントリ情報FE1に書込みを行い(S1126)、処理を終了する。なお、ファイルエントリ情報FE2の書込み単位WUから求めたチェックサムが書込み単位チェックサムCSMと一致しない場合や(S1120のNG)、情報FE1で不良セクタが生じていないと判断した場合(S1124のNO)には、処理を終了する。
【0100】
このような手順によれば、ファイルエントリ情報FE1を短時間で復旧できる。
【0101】
図15は、ファイルエントリ情報復旧処理の別の手順を説明するフローチャート図である。図15の手順は、バックアップメモリ18にファイルエントリ情報の書込み単位のバックアップデータを作成する第2の方法に対応する。すなわち、この手順は、図12における手順S1002のサブルーチンとして、図14の手順の代わりに復旧手段としてのファイルシステム128aが実行する。
【0102】
まず、ファイルシステム128aは、バックアップメモリ18にデータが格納されているかを確認する(S1130)。具体的には、図10で示したバックアップチェックコードbCHが読み出されれば、格納されていると判断できる。そして、格納されていれば(S1130のYES)、そのデータが正確であるかを確認する(S1132)。具体的には、図10で示した書込み単位チェックコードfCHが読み出されれば、正確であると判断できる。そして、正確であれば(S1132のYES)、書込み位置WPを読み出し(S133)、ファイルエントリ情報で不良セクタが生じたかを判断する(S1134)。読出しができず、不良セクタが生じていると判断した場合には(S1134のYES)、バックアップメモリ18が格納するファイルエントリ情報の一部、つまり書込み単位fWUをハードディスク19aの管理領域MA内のファイルエントリ情報FEに書き込み(S1136)、処理を終了する。
【0103】
また、バックアップメモリ18にデータが格納されていない場合や(S1130のNO)、そのデータが正確でない場合には(S1132のNO)、復旧処理を行わずに終了する。
【0104】
このような手順によれば、ファイルエントリ情報FEを短時間で復旧できる。そしてさらに、バックアップメモリ18のデータが消失または一部が破壊されていた場合であっても、ファイルエントリ情報FEを復旧できる。
【0105】
上述の説明では、ハードディスク装置19を記憶デバイスの例として示した。しかし、1つのファイルを複数の領域に振り分けて格納する、EEPROMなどの記憶デバイスにも本実施形態は適用できる。また、リンクリスト情報については、セクタ単位でリンク順序を有する場合を例として説明した。しかし、FATなどクラスタ単位でセクタのリンク順序を有する場合であっても、本実施形態の範囲内に含まれる。さらに、上述の説明では、リンクリスト情報やファイルエントリ情報に対する書込み単位の例として、セクタの容量に対応した書込み単位について説明した。しかし、書込み単位の大きさはこれに限られず、たとえばクラスタ単位であってもよい。また、記憶デバイスがEEPROMで構成される場合には、1または複数のブロック単位であってもよい。
【0106】
また、外部スイッチにより電源が投入・遮断される電子機器として、車載電子機器を例として説明したが、かかる構成を有する電子機器であれば、他の電子機器であっても本実施形態は適用できる。
【0107】
以上のように、本実施形態によれば、低コストかつ迅速にファイルエントリ情報やリンクリスト情報の復旧が可能となる。
【符号の説明】
【0108】
10:車載電子機器、18:バックアップメモリ、19:ハードディスク装置、128:読み書き制御部、128a:ファイルシステム、LL1、LL2:リンクリスト情報、FE1、FE2:ファイルエントリ情報

【特許請求の範囲】
【請求項1】
単一のファイルを複数の領域に振り分けて格納する記憶デバイスを有するとともに、車載バッテリからの電源が投入・遮断される車載電子機器であって、
前記電源が遮断されたときでもデータを保持可能なメモリと、
前記記憶デバイスに前記ファイルを格納するときの当該ファイルの開始位置を有するファイルエントリ情報と、前記開始位置からの前記領域のリンク順序を有するリンクリスト情報とを前記記憶デバイスに書き込むときに、前記リンクリスト情報をその一部である第1の書込み単位ごとに前記記憶デバイスにおける複数のリンクリスト情報書込み位置に書き込む書込手段と、
前記複数のリンクリスト情報書込み位置と、当該複数のリンクリスト情報書込み位置に対する前記第1の書込み単位の書込み終了を示すデータとを前記メモリに格納するバックアップ手段と、
前記電源が遮断された後再投入されたときに、前記複数のリンクリスト情報書込み位置のうち第1のリンクリスト情報書込み位置に対する前記第1の書込み単位の書込みが終了していない場合には、第2のリンクリスト情報書込み位置に書き込まれたデータを前記第1のリンクリスト情報書込み位置に書き込む復旧手段とを有することを特徴とする車載電子機器。
【請求項2】
請求項1において、
前記書込手段は、更に前記ファイルエントリ情報をその一部である第2の書込み単位ごとに前記記憶デバイスにおける複数のファイルエントリ情報書込み位置に書き込み、
前記バックアップ手段は、更に前記複数のファイルエントリ情報書込み位置のうち第1のファイルエントリ情報書込み位置を前記記憶デバイスに書き込み、
前記復旧手段は、前記電源が遮断された後再投入されたとき更に、前記第1のファイルエントリ情報書込み位置に対する前記第2の書込み単位の書込みが終了していない場合には、第2のファイルエントリ情報書込み位置に書き込まれたデータを前記第1のファイルエントリ情報書込み位置に書き込むことを特徴とする車載電子機器。
【請求項3】
請求項1において、
前記復旧手段は、前記電源が再投入されたときに、前記メモリに予め格納されるチェックコードが所定の状態でない場合には、前記記憶デバイスに格納された複数のリンクリスト情報のうち1つのリンクリスト情報を他のリンクリスト情報に書き込むことを特徴とする車載電子機器。
【請求項4】
請求項1において、
前記復旧手段は、前記電源が再投入されたときに、前記メモリにデータが格納されていない場合には、前記記憶デバイスに格納された複数のリンクリスト情報のうち1つのリンクリスト情報を他のリンクリスト情報に書き込むことを特徴とする車載電子機器。
【請求項5】
請求項1において、
前記ファイルの数または容量にかかわらず、前記メモリが所定容量であることを特徴とする車載電子機器。
【請求項6】
単一のファイルを複数の領域に振り分けて格納する記憶デバイスを有するとともに、車載バッテリからの電源が投入・遮断される車載電子機器であって、
前記電源が遮断されたときでもデータを保持可能なメモリと、
前記記憶デバイスに前記ファイルを格納するときの当該ファイルの開始位置を有するファイルエントリ情報と、前記開始位置からの前記領域のリンク順序を有するリンクリスト情報とを前記記憶デバイスに書き込むときに、前記ファイルエントリ情報をその一部である第2の書込み単位ごとに前記記憶デバイスにおける複数のファイルエントリ情報書込み位置に書き込む書込手段と、
前記複数のファイルエントリ情報書込み位置のうち第1のファイルエントリ情報書込み位置を前記記憶デバイスに書き込むバックアップ手段と、
前記電源が遮断された後再投入されたときに、前記第1のファイルエントリ情報書込み位置に対する前記第2の書込み単位の書込みが終了していない場合には、第2のファイルエントリ情報書込み位置に書き込まれたデータを前記第1のファイルエントリ情報書込み位置に書き込む復旧手段とを有することを特徴とする車載電子機器。
【請求項7】
単一のファイルを複数の領域に振り分けて格納する記憶デバイスを有するとともに、車載バッテリからの電源が投入・遮断される車載電子機器であって、
前記電源が遮断されたときでもデータを保持可能なメモリと、
前記記憶デバイスに前記ファイルを格納するときの当該ファイルの開始位置を有するファイルエントリ情報と、前記開始位置からの前記領域のリンク順序を有するリンクリスト情報とを前記記憶デバイスに書き込むときに、前記ファイルエントリ情報をその一部である第2の書込み単位ごとに前記記憶デバイスにおけるファイルエントリ情報書込み位置に書き込む書込手段と、
前記第2の書込み単位と、前記ファイルエントリ情報書込み位置とを前記メモリに格納するバックアップ手段と、
前記電源が遮断された後再投入されたときに、前記ファイルエントリ情報書込み位置に対する前記メモリに格納された第2の書込み単位の書込みが終了していない場合には、当該第2の書込み単位を当該ファイルエントリ情報書込み位置に書き込む復旧手段とを有することを特徴とする車載電子機器。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記車載バッテリからの電源が更に他の車載機器に投入・遮断されることを特徴とする車載電子機器。
【請求項9】
単一のファイルを複数の領域に振り分けて格納する記憶デバイスを有するとともに車載バッテリからの電源が投入・遮断され、更に前記電源が遮断されたときでもデータを保持可能なメモリを有する車載電子機器の制御プログラムであって、
前記記憶デバイスに前記ファイルを格納するときの当該ファイルの開始位置を有するファイルエントリ情報と、前記開始位置からの前記領域のリンク順序を有するリンクリスト情報とを前記記憶デバイスに書き込むときに、前記リンクリスト情報をその一部である第1の書込み単位ごとに前記記憶デバイスにおける複数のリンクリスト情報書込み位置に書き込む第1の書込工程と、
前記複数のリンクリスト情報書込み位置と、前記複数のリンクリスト情報書込み位置に対する書込み終了を示すデータとを前記メモリに格納する第1のバックアップ工程と、
前記電源が遮断された後再投入されたときに、前記複数のリンクリスト情報書込み位置のうち第1のリンクリスト情報書込み位置に対する前記第1の書込み単位の書込みが終了していない場合には、第2のリンクリスト情報書込み位置に書き込まれたデータを前記第1のリンクリスト情報書込み位置に書き込む第1の復旧工程とを前記車載電子機器に実行させることを特徴とする制御プログラム。
【請求項10】
請求項9において、
前記ファイルエントリ情報をその一部である第2の書込み単位ごとに前記記憶デバイスにおける複数のファイルエントリ情報書込み位置に書き込む第2の書込工程と、
前記複数のファイルエントリ情報書込み位置のうち第1のファイルエントリ情報書込み位置を前記記憶デバイスに書き込む第2のバックアップ行程と、
前記電源が遮断された後再投入されたときに、前記第1のファイルエントリ情報書込み位置に対する前記第2の書込み単位の書込みが終了していない場合には、第2のファイルエントリ情報書込み位置に書き込まれたデータを前記第1のファイルエントリ情報書込み位置に書き込む第2の復旧工程とを更に前記車載電子機器に実行させることを特徴とする制御プログラム。
【請求項11】
単一のファイルを複数の領域に振り分けて格納する記憶デバイスを有するとともに車載バッテリからの電源が投入・遮断され、更に前記電源が遮断されたときでもデータを保持可能なメモリを有する車載電子機器の制御プログラムであって、
前記記憶デバイスに前記ファイルを格納するときの当該ファイルの開始位置を有するファイルエントリ情報と、前記開始位置からの前記領域のリンク順序を有するリンクリスト情報とを前記記憶デバイスに書き込むときに、前記ファイルエントリ情報をその一部である第2の書込み単位ごとに前記記憶デバイスにおける複数のファイルエントリ情報書込み位置に書き込む書込工程と、
前記複数のファイルエントリ情報書込み位置のうち第1のファイルエントリ情報書込み位置を前記記憶デバイスに書き込むバックアップ工程と、
前記電源が遮断された後再投入されたときに、前記第1のファイルエントリ情報書込み位置に対する前記第2の書込み単位の書込みが終了していない場合には、第2のファイルエントリ情報書込み位置に書き込まれたデータを前記第1のファイルエントリ情報書込み位置に書き込む復旧工程とを前記車載電子機器に実行させることを特徴とする制御プログラム。
【請求項12】
単一のファイルを複数の領域に振り分けて格納する記憶デバイスを有するとともに車載バッテリからの電源が投入・遮断され、更に前記電源が遮断されたときでもデータを保持可能なメモリを有する車載電子機器の制御プログラムであって、
前記記憶デバイスに前記ファイルを格納するときの当該ファイルの開始位置を有するファイルエントリ情報と、前記開始位置からの前記領域のリンク順序を有するリンクリスト情報とを前記記憶デバイスに書き込むときに、前記ファイルエントリ情報をその一部である第2の書込み単位ごとに前記記憶デバイスにおけるファイルエントリ情報書込み位置に書き込む書込工程と、
前記第2の書込み単位と前記ファイルエントリ情報書込み位置とを前記メモリに格納するバックアップ工程と、
前記電源が遮断された後再投入されたときに、前記ファイルエントリ情報書込み位置に対する前記メモリに格納された第2の書込み単位の書込みが終了していない場合には、当該第2の書込み単位を当該ファイルエントリ情報書込み位置に書き込む復旧工程とを前記車載電子機器に実行させることを特徴とする制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2010−272044(P2010−272044A)
【公開日】平成22年12月2日(2010.12.2)
【国際特許分類】
【出願番号】特願2009−124994(P2009−124994)
【出願日】平成21年5月25日(2009.5.25)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.VICS
【出願人】(000237592)富士通テン株式会社 (3,383)
【Fターム(参考)】