(57)【要約】【課題】簡単且つ適切に、データ揮発を抑えることができるようにする。【解決手段】ナビゲーション装置は、メモリカードに記憶されている地図データに基づき地図表示や経路案内等の処理を実現する。また、メモリカード内のデータについては、読出回数が多くなると揮発する確率が上がるため、読出回数の多いデータについては、ＲＡＭに保持し、メモリカードからの読出回数を減らす。また、ナビゲーション装置は、メモリカードに記録されているデータ書込日時からの経過時間を算出し、経過時間が閾値Ｔ１を越える度（Ｓ３３０でＹｅｓ）、メモリカード内のデータ全体をリフレッシュする（Ｓ３４０）。但し、初回に限っては、経過時間が閾値Ｔ１よりも短い閾値Ｔ２を超えた時点で（Ｓ３２５でＹｅｓ）、リフレッシュする。そして、リフレッシュ後には、メモリカードに、現在日時の情報を、データ書込日時として記録する（Ｓ３５０）。【選択図】図４
2010027021.tif 000002
【特許請求の範囲】
【請求項１】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間である書込後経過時間を、推定する書込後経過時間推定手段と、
前記書込後経過時間推定手段により推定された書込後経過時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項２】
前記書込後経過時間推定手段は、前記データ更新手段により最後に前記データ更新処理が実行された時点からの経過時間を、前記書込後経過時間として推定する構成にされていることを特徴とする請求項１記載の電子機器。
【請求項３】
前記データ更新手段は、前記データ更新処理の実行時に、現在日時の情報を、データ書込日時の情報として、前記不揮発性メモリに書き込む構成にされ、
前記書込後経過時間推定手段は、前記不揮発性メモリに記憶された前記データ書込日時からの経過時間を、前記書込後経過時間として推定する構成にされていること
を特徴とする請求項１記載の電子機器。
【請求項４】
前記不揮発性メモリを内包するメモリカードを着脱自在に接続可能なスロット部を備え、前記スロット部を介して前記メモリカードと接続されて、前記メモリカードが内包する前記不揮発性メモリが記憶するデータに基づく処理を実行する請求項２記載の電子機器であって、
前記書込後経過時間推定手段は、前記メモリカードが内包する前記不揮発性メモリに対して過去に前記データ更新処理が実行されていないとき、前記メモリカードが前記スロット部に最初に接続された時点からの経過時間を、前記書込後経過時間として推定する構成にされていること
を特徴とする電子機器。
【請求項５】
前記更新制御手段は、前記不揮発性メモリに対して過去に前記データ更新処理が実行されている場合、前記書込後経過時間推定手段により推定された書込後経過時間が、第一の閾値を超えた時点で、前記データ更新手段に前記データ更新処理を実行させるが、前記不揮発性メモリに対して過去に前記データ更新処理が実行されていない場合には、前記書込後経過時間推定手段により推定された書込後経過時間が、前記第一の閾値よりも小さい第二の閾値を超えた時点で、前記データ更新手段に前記データ更新処理を実行させる構成にされていることを特徴とする請求項４記載の電子機器。
【請求項６】
前記不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手段
を備え、
前記更新制御手段は、更に、前記高温時間推定手段により推定された時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる構成にされていること
を特徴とする請求項１〜請求項５のいずれかに記載の電子機器。
【請求項７】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手段と、
前記高温時間推定手段により推定された時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項８】
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記不揮発性メモリから読み出された回数である読出回数を計測する読出回数計測手段
を備え、
前記更新制御手段は、更に、前記読出回数計測手段の計測結果に基づき、前記各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる構成にされ、
前記データ更新手段は、前記更新制御手段から前記処理対象データが指定されると、前記データ更新処理として、前記不揮発性メモリが記憶するデータの内、前記更新制御手段から指定された処理対象データを選択的に前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行する構成にされていること
を特徴とする請求項１〜請求項７のいずれかに記載の電子機器。
【請求項９】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記不揮発性メモリから読み出された回数である読出回数を計測する読出回数計測手段と、
前記読出回数計測手段の計測結果に基づき、前記各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備え、
前記データ更新手段は、前記データ更新処理として、前記不揮発性メモリが記憶するデータの内、前記更新制御手段から指定された処理対象データを選択的に前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行する構成にされていること
を特徴とする電子機器。
【請求項１０】
前記更新制御手段は、前記不揮発性メモリが記憶するデータを構成する単位データ群の内、予め設定された監視対象の単位データに限って、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる構成にされ、前記監視対象に設定されていない単位データについては、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、前記データ更新手段に前記データ更新処理を実行させる処理を実行しない構成にされていること
を特徴とする請求項８又は請求項９記載の電子機器。
【請求項１１】
前記電子機器は、前記不揮発性メモリに記憶された地図データに基づき、現在位置周辺の地図を表す地図画面を表示する地図表示装置であって、更にユーザインタフェースを通じて登録された地点の情報を、前記地図画面を通じて案内する機能を有するものであり、
前記ユーザインタフェースを通じて登録された地点の情報に基づき、前記更新制御手段に対し、前記監視対象を設定する監視対象設定手段
を備えること特徴とする請求項１０記載の電子機器。
【請求項１２】
読出指令が入力されると、当該読出指令にて指定されたデータを読み出し、当該読み出したデータを、前記読出指令元に出力する読出制御手段と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記読出制御手段により読み出された回数である総読出回数を計測する総読出回数計測手段と、
前記総読出回数計測手段の計測結果に基づき、前記不揮発性メモリが記憶するデータの内、一部のデータを前記記憶手段の特定領域に記憶保持させるコピーデータ生成手段と、
を備え、
前記読出制御手段は、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作により前記記憶手段の特定領域に記憶保持されている場合、前記記憶手段の特定領域から前記読出指令にて指定されたデータを読み出し、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作により前記記憶手段の特定領域に記憶保持されていない場合には、前記不揮発性メモリから前記読出指令にて指定されたデータを読み出す構成にされていること
を特徴とする請求項１〜請求項７のいずれかに記載の電子機器。
【請求項１３】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
読出指令が入力されると、前記読出指令にて指定されたデータを読み出し、当該読み出したデータを、前記読出指令元に出力する読出制御手段と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記読出制御手段により読み出された回数である総読出回数を計測する総読出回数計測手段と、
前記総読出回数計測手段の計測結果に基づき、前記不揮発性メモリが記憶するデータの内、一部のデータを前記記憶手段の特定領域に記憶保持させるコピーデータ生成手段と、
を備え、
前記読出制御手段は、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作によって前記記憶手段の特定領域に記憶保持されている場合、前記記憶手段の特定領域から前記読出指令にて指定されたデータを読み出し、前記読出指令にて指定されたデータが、前記コピーデータ生成手段の動作によって前記記憶手段の特定領域に記憶保持されていない場合には、前記不揮発性メモリから前記読出指令にて指定されたデータを読み出す構成にされていること
を特徴とする電子機器。
【請求項１４】
前記不揮発性メモリにおいては、特定種のデータに関して、同一のデータが、複数個、予め書き込まれており、
前記電子機器は、複数個ある前記特定種のデータ内の一つに異常が生じると、前記複数個ある特定種のデータの内、異常が生じていない同一のデータに基づき、前記異常が生じた特定種のデータを修復するデータ修復手段を備える構成にされていること
を特徴とする請求項１〜請求項１３のいずれかに記載の電子機器。
【請求項１５】
車両に搭載されて使用される請求項１〜請求項１２のいずれかに記載の電子機器であって、
当該電子機器が搭載された自車両の運転状態を表す情報を取得する車両情報取得手段と、
前記車両情報取得手段が取得した前記自車両の運転状態を表す情報に基づき、自車両の運転状態が所定条件を満足する期間、前記データ更新手段による前記データ更新処理の実行を禁止する禁止手段と、
を備えることを特徴とする電子機器。
【請求項１６】
前記車両情報取得手段は、前記自車両の運転状態を表す情報として、自車両の走行速度を表す情報を取得する構成にされていることを特徴とする請求項１５記載の電子機器。
【請求項１７】
前記禁止手段は、前記車両情報取得手段が取得した前記自車両の走行速度を表す情報に基づき、前記自車両の運転状態が所定条件を満足する期間として、自車両の走行速度が閾値未満である期間、前記データ更新手段による前記データ更新処理の実行を禁止する構成にされていること
を特徴とする請求項１６記載の電子機器。
【請求項１８】
車載用の電子機器であって、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手段
を備え、
前記更新制御手段は、更に、前記走行距離推定手段により推定された走行距離が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる構成にされていること
を特徴とする請求項１〜請求項８及び請求項１２及び請求項１４〜請求項１７のいずれかに記載の電子機器。
【請求項１９】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する車載用の電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手段と、
前記走行距離推定手段により推定された走行距離が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項２０】
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手段
を備え、
前記更新制御手段は、更に、前記動作時間推定手段により推定された動作時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる構成にされていること
を特徴とする請求項１〜請求項８及び請求項１２及び請求項１４〜請求項１７のいずれかに記載の電子機器。
【請求項２１】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、
前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段と、
前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込するデータ更新処理を実行することにより、前記不揮発性メモリが記憶するデータを更新するデータ更新手段と、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手段と、
前記動作時間推定手段により推定された動作時間が閾値を超える度、前記データ更新手段に前記データ更新処理を実行させる更新制御手段と、
を備えることを特徴とする電子機器。
【請求項２２】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間である書込後経過時間を、推定する書込後経過時間推定手順と、
前記書込後経過時間推定手順で推定された書込後経過時間が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項２３】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手順と、
前記高温時間推定手順で推定された時間が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項２４】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記不揮発性メモリから読み出された回数である読出回数を計測する読出回数計測手順と、
前記読出回数計測手順での計測結果に基づき、前記各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを、選択的に前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新するデータ更新手順と、
を実行させるためのプログラム。
【請求項２５】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
読出指令が入力されると、前記読出指令にて指定されたデータを読み出し、当該読み出したデータを、前記読出指令元に出力する読出制御手順と、
前記不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが前記読出制御手順により読み出された回数である総読出回数を計測する総読出回数計測手順と、
前記総読出回数計測手順での計測結果に基づき、前記不揮発性メモリが記憶するデータの内、一部のデータを前記記憶手段の特定領域に記憶保持させるコピーデータ生成手順と、
を実行させ、
前記読出制御手順では、前記読出指令にて指定されたデータが、前記コピーデータ生成手順によって前記記憶手段の特定領域に記憶保持されている場合、前記記憶手段の特定領域から前記読出指令にて指定されたデータを読み出し、前記読出指令にて指定されたデータが、前記コピーデータ生成手順によって前記記憶手段の特定領域に記憶保持されていない場合には、前記不揮発性メモリから前記読出指令にて指定されたデータを読み出す処理を、前記コンピュータに実行させるためのプログラム。
【請求項２６】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する車載用の電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手順と、
前記走行距離推定手順で推定された走行距離が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【請求項２７】
予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリと接続されて、当該不揮発性メモリが記憶するデータに基づく処理を実行する電子機器であって、前記不揮発性メモリが記憶するデータを、一時記憶可能な記憶手段を備える電子機器
のコンピュータに、
前記不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手順と、
前記動作時間推定手順により推定された動作時間が閾値を超える度、前記不揮発性メモリが記憶するデータを、前記不揮発性メモリから読み出して前記記憶手段に記憶させ、当該記憶手段に記憶させたデータを、前記不揮発性メモリに再書込する処理を実行して、前記不揮発性メモリが記憶するデータを更新する更新制御手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の電気的にデータ書換可能な不揮発性メモリから、データを読み出して、当該データに基づく処理を実行する電子機器に関する。
【背景技術】
【０００２】
従来、電気的にデータ書換可能な不揮発性メモリとしては、フラッシュメモリが知られている。近年では、メモリセルを多値化して、大容量のフラッシュメモリを開発することに成功しており、フラッシュメモリの記憶容量も、ハードディスク装置の記憶容量と遜色がなくなってきている。
【０００３】
このため、近年では、記録媒体として、従来採用されていたハードディスク装置に代えて、大容量の多値フラッシュメモリを採用して、パーソナルコンピュータや、カーナビゲーション装置等を構成することが、考えられている。
【０００４】
カーナビゲーション装置等の振動の激しい環境下で使用される電子機器においては、ハードディスク装置に代えて、フラッシュメモリ等を採用すると、物理的なクラッシュがなくなるので、振動による故障を防止することができるといった利点がある。
【０００５】
しかしながら、多値フラッシュメモリについては、二値フラッシュメモリやハードディスク装置等の他の記録媒体と比較して、データの記憶保持能力（リテンション）が低いため、長期に渡るデータ記憶保持に劣るといった問題がある。
【０００６】
周知のように、フラッシュメモリは、高温に晒されると、リテンションが低下する性質を有する。また、フラッシュメモリにおいては、書込回数が増えると、ある回数を境に、急激にリテンションが低下する。この他、フラッシュメモリにおいては、データ読出回数が増えるにつれて、メモリセルが保持するデータが揮発する可能性が高くなるといった問題がある。
【０００７】
多値フラッシュメモリは、従来の二値フラッシュメモリと比較して、このような問題が発生しやすいため、パーソナルコンピュータやカーナビゲーション装置等において、記録媒体に、多値フラッシュメモリを採用すると、データ揮発によるトラブルが発生しやすくなることが予想される。
【０００８】
尚、このような問題の対処方法としては、従来、不揮発性メモリ（フラッシュメモリ等）が記憶するデータを、一旦読み出して、これを再書込することにより、不揮発性メモリが記憶するデータをリフレッシュする方法が知られている（特許文献１，２参照）。この技術を用いれば、データ揮発によるトラブルを抑えることができる。
【特許文献１】特開２００５−７８４８９号公報
【特許文献２】特開２００６−３０１９９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来のリフレッシュ方法では、不揮発性メモリにメモリセルの状態を検知するための回路を設けて、リフレッシュの要否を判定するので、回路設置にコストがかかり、簡単且つ安価に、データの揮発を抑えることができないといった問題があった。
【００１０】
この他、従来技術（特許文献２参照）では、外部環境によるリテンション低下の影響を抑えるために、外部環境を表す物理量（温度等）が閾値を超えた時点で、データのリフレッシュを行うようにしているが、このような手法では、例えば、高温時のデータ揮発を抑える場合、高温に晒された時間を考慮にいれず、温度が閾値を超えた時点でリフレッシュを行うことになるので、常時、適切なタイミング（必要十分なタイミング）で、リフレッシュを行うことができないといった問題があった。
【００１１】
特に、フラッシュメモリでは、書込回数に応じてリテンションが低下するので、必要以上に、リフレッシュを行うと、不揮発性メモリ（フラッシュメモリ）の寿命が短くなる。
本発明は、こうした問題に鑑みなされたものであり、簡単且つ適切に、データ揮発を抑えることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
かかる目的を達成するためになされた本発明の電子機器は、予め所定のデータが書き込まれた電気的にデータ書換可能な不揮発性メモリ（フラッシュメモリ等）に接続されて、不揮発性メモリが記憶するデータに基づく処理を実行するものである。例えば、電子機器がカーナビゲーション装置等の地図表示装置である場合には、不揮発性メモリに記憶された地図データに基づき、現在位置周辺の地図を表す地図画面を表示するといった具合である。
【００１３】
この電子機器は、不揮発性メモリが記憶するデータを一時記憶可能な記憶手段を備えると共に、不揮発性メモリが記憶するデータをリフレッシュするためのデータ更新手段を備える。即ち、データ更新手段は、不揮発性メモリが記憶するデータを、不揮発性メモリから読み出して記憶手段に記憶させ、当該記憶手段に記憶させたデータを、不揮発性メモリに再書込するデータ更新処理を実行することにより、不揮発性メモリが記憶するデータを更新する。
【００１４】
また、本発明の電子機器は、データ更新処理の実行を制御する更新制御手段と、書込後経過時間推定手段を備え、更新制御手段は、書込後経過時間推定手段により推定された書込後経過時間が閾値を超える度、データ更新手段にデータ更新処理を実行させる。一方、書込後経過時間推定手段は、書込後経過時間として、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間を、推定する。
【００１５】
即ち、この電子機器では、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの経過時間、が閾値を超えたと推定される度、不揮発性メモリが記憶するデータを、リフレッシュする。
【００１６】
周知のように、不揮発性メモリが記憶するデータは、読出回数が増加したり、高温に晒された時間が長くなる程、揮発する可能性が高くなるが、これらの原因によるデータ揮発の発生率は、不揮発性メモリにデータが書き込まれた時点からの経過時間と相関がある。
【００１７】
従って、本発明のように、データ書込後の経過時間を推定し、推定した経過時間に基づき、データ更新処理を実行するタイミングを制御すれば、不揮発性メモリに対してメモリセルの状態を検知するための回路を設けることなく、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができる。即ち、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【００１８】
尚、書込後経過時間推定手段は、データ更新手段により最後にデータ更新処理が実行された時点からの経過時間を、書込後経過時間として推定する構成にすることができる（請求項２）。
【００１９】
例えば、データ更新処理を実行した日時を記憶しておき、その日時からの経過時間を、書込後経過時間として推定するといった具合である。このようにして、書込後経過時間を推定すれば、簡単な手順で、不揮発性メモリが記憶するデータを、長時間良好に保持することができる。
【００２０】
また、書込後経過時間推定手段は、データ更新処理を実行した日時を自身にて記憶保持する構成にされてもよいが、不揮発性メモリに、その日時を記録する構成にされると一層好ましい。即ち、電子機器は、データ更新処理の実行時に、現在日時の情報を、データ書込日時の情報として、不揮発性メモリに書き込む構成にされるとよい。そして、書込後経過時間推定手段は、不揮発性メモリに記憶されたデータ書込日時からの経過時間を、書込後経過時間として推定する構成にされるとよい（請求項３）。
【００２１】
この電子機器によれば、不揮発性メモリにてデータ書込日時の情報を管理するので、データ書込日時の情報を、不揮発性メモリに記憶されたリフレッシュ対象のデータと共に消失しないように管理することができ、データ書込日時の情報を別管理することで、データ書込日時の情報が消失して、不揮発性メモリに記憶されたデータをリフレッシュするタイミングが不明になるのを防止することができる。
【００２２】
また、このように電子機器を構成すれば、出荷前の不揮発性メモリに対し、上記所定のデータを書き込む工程で、データ書込日時の情報も記録しておく程度で、不揮発性メモリへの初回データ書込時からの経過時間を、電子機器側で正確に把握できるようにすることができ、不揮発性メモリの出荷後、不揮発性メモリが消費者により購入され使用されるまでの期間に依らず、適切なタイミングで、初回のデータ更新処理を実行することができる。
【００２３】
また、スロット部を介してメモリカードと接続され、メモリカードが内包する不揮発性メモリが記憶するデータに基づく処理を実行する電子機器に、上述の発明（請求項２）を適用する場合には、具体的に、書込後経過時間推定手段を、次のように構成するとよい。
【００２４】
即ち、書込後経過時間推定手段は、データ更新手段により最後にデータ更新処理が実行された時点からの経過時間を、書込後経過時間として推定すると共に、メモリカードが内包する不揮発性メモリに対して過去にデータ更新処理が実行されていないとき、メモリカードがスロット部に最初に接続された時点からの経過時間を、書込後経過時間として推定する構成にされると一層好ましい（請求項４）。
【００２５】
具体的に、不揮発性メモリにデータ書込日時を記録する発明（請求項３）に、この思想を適用する場合には、メモリカードがスロット部に最初に接続（装着）された時点で、メモリカードが内包する不揮発性メモリに、その時点での日時を、データ書込日時の情報として記録すればよい。
【００２６】
このように電子機器を構成すれば、出荷前における初回データ書込時の日時が不明であっても、スロット部に新しく接続されたメモリカードに対し、必要なタイミングで、データ更新処理を実行することができる。
【００２７】
但し、このようにして、書込後経過時間を推定する場合には、初回にデータ更新処理を実行するまで、書込後経過時間推定手段により推定される書込後経過時間と真の書込後経過時間との間にずれが生じる。このため、更新制御手段は、次のように構成されるとよい。
【００２８】
即ち、更新制御手段は、不揮発性メモリに対して過去にデータ更新処理が実行されている場合、書込後経過時間推定手段により推定された書込後経過時間が、第一の閾値を超えた時点で、データ更新手段にデータ更新処理を実行させるが、不揮発性メモリに対して過去にデータ更新処理が実行されていない場合には、書込後経過時間推定手段により推定された書込後経過時間が、第一の閾値よりも小さい第二の閾値を超えた時点で、データ更新手段にデータ更新処理を実行させる構成にされるとよい（請求項５）。
【００２９】
このように電子機器を構成すれば、初回にデータ更新処理を実行するまでの期間に生じうる上記「ずれ」を考慮して、早めに、データ更新処理を実行することができ、データ揮発を適切に抑えることができる。
【００３０】
また、上記電子機器には、不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定する高温時間推定手段を設け、更新制御手段は、高温時間推定手段により推定された時間が閾値を超える度、データ更新手段にデータ更新処理を実行させる構成にされるとよい（請求項６，７）。
【００３１】
高温環境下においては、急激にリテンションが低下するので、不揮発性メモリが高温に晒された場合には、不揮発性メモリが記憶するデータをリフレッシュするのがよいが、不揮発性メモリが極短期間高温に晒された程度では、その事象がリテンション低下に与える影響は小さいので、不揮発性メモリが短期間高温に晒された程度で、データ更新処理を実行すると、データ更新処理の実行回数が不要に多くなり、不揮発性メモリの寿命を縮めることになる。
【００３２】
特に、電子機器が車載機器である場合には、夏季に頻繁に不揮発性メモリが高温環境下におかれることになるので、不揮発性メモリが高温になる度、データ更新処理を実行していたのでは、データのリフレッシュを必要以上に実行することになり、不揮発性メモリの寿命が短くなる。
【００３３】
一方、本発明のように、不揮発性メモリが所定温度以上の高温環境下におかれた時間を推定し、この推定時間に基づいて、データ更新処理の実行を制御するようにすれば、不要にデータ更新処理を実行しなくて済む。
【００３４】
即ち、この発明によれば、適切なタイミングでデータ更新処理を実行することができ、不揮発性メモリの寿命が短くならないようにしつつ、不揮発性メモリにおいてデータが揮発するのを抑えることができる。また、この発明によれば、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができるので、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができるといった利点がある。
【００３５】
この他、不揮発性メモリにおけるリテンションは、読出回数が増えることでも低下するので、上記電子機器は、次のように構成されると一層好ましい。
即ち、上記電子機器には、不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが不揮発性メモリから読み出された回数（読出回数）を計測する読出回数計測手段を設け、更新制御手段は、読出回数計測手段の計測結果に基づき、各単位データについて、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、データ更新手段にデータ更新処理を実行させる構成にされるとよい。
【００３６】
また、これに合わせて、データ更新手段は、更新制御手段から処理対象データが指定されると、データ更新処理として、不揮発性メモリが記憶するデータの内、更新制御手段から指定された処理対象データを選択的に不揮発性メモリから読み出して記憶手段に記憶させ、当該記憶手段に記憶させたデータを、不揮発性メモリに再書込する処理を実行する構成にされるとよい（請求項８，９）。
【００３７】
不揮発性メモリが記憶する各メモリセルのデータの読出回数にばらつきがある場合には、読出回数が多いメモリセルのデータが、他のメモリセルのデータに対して揮発しやすくなるため、不揮発性メモリが記憶するデータを所定時間毎にリフレッシュする程度では、読出回数の多いデータに合わせて、冗長にデータ更新を行わないと、読出回数の多いメモリセルで、データ揮発が生じる可能性が高くなる。
【００３８】
本発明の電子機器によれば、読出回数に応じて、単位データ毎に、適切なタイミングで、データ更新処理を実行することができるので、読出回数にばらつきがある場合でも、不揮発性メモリ内のデータが揮発するのを極力防止することができる。そして、この発明によれば、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができるので、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【００３９】
また、更新制御手段は、不揮発性メモリが記憶するデータを構成する単位データ群の内、予め設定された監視対象の単位データに限って、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定して、データ更新手段にデータ更新処理を実行させる構成にされるとよい。換言すれば、更新制御手段は、監視対象に設定されていない単位データについては、読出回数が閾値を超える度、当該読出回数が閾値を超えた単位データを処理対象データに指定し、データ更新手段にデータ更新処理を実行させる処理を実行しない構成にされるとよい（請求項１０）。
【００４０】
このように、一部のデータに限定して読出回数を計測してデータ更新処理を実行するように、電子機器を構成すれば、全データについて読出回数を計測する場合よりも、処理負荷が小さくて済み、電子機器を安価に製造することができる。
【００４１】
特に、書込後経過時間に基づきデータ更新処理を実行する電子機器に、この思想を採用する場合には、データ書込後、所定時間が経過した時点で、読出回数に依らずに、データ更新処理を実行することになるので、読出頻度の低いデータについて、読出回数を計測しても、読出回数が閾値を超える前に上記所定時間が経過することになり、無駄である。従って、本発明（請求項１０）のように電子機器を構成すれば、効率的に、データ揮発を抑えることができる。
【００４２】
尚、電子機器が、不揮発性メモリに記憶された地図データに基づき、現在位置周辺の地図を表す地図画面を表示する地図表示装置であって、ユーザインタフェースを通じて登録された地点の情報を、地図画面を通じて案内する機能を有する地図表示装置である場合には、上記ユーザインタフェースを通じて登録された地点の情報に基づき、監視対象のデータを設定する監視対象設定手段を、上記電子機器に設けるとよい（請求項１１）。
【００４３】
ユーザにより地図表示装置に登録される地点周辺は、ユーザが訪問する可能性が高い地域であるので、必然的に、当該登録地点周辺の地図データも、地図画面表示のために、不揮発性メモリから読み出される可能性が高くなる。従って、この登録地点の情報に基づき、監視対象を設定するように、電子機器を構成すれば、ユーザの使用状況に合わせて、監視対象を設定することができ、効率的に、データ揮発を抑えることができる。
【００４４】
また、上述の電子機器には、読出指令が入力されると、当該読出指令にて指定されたデータを読み出し、当該読み出したデータを、読出指令元に出力する読出制御手段と、不揮発性メモリが記憶するデータについて、単位データ毎に、当該単位データが読出制御手段により読み出された回数である総読出回数を計測する総読出回数計測手段と、総読出回数計測手段の計測結果に基づき、不揮発性メモリが記憶するデータの内、一部のデータを、記憶手段の特定領域に記憶保持させるコピーデータ生成手段と、を設けるとよい。そして、読出制御手段は、次のように構成されるとよい。
【００４５】
即ち、読出制御手段は、読出指令にて指定されたデータが、コピーデータ生成手段の動作により記憶手段の特定領域に記憶保持されている場合、記憶手段の特定領域から読出指令にて指定されたデータを読み出し、読出指令にて指定されたデータが、コピーデータ生成手段の動作により記憶手段の特定領域に記憶保持されていない場合には、不揮発性メモリから読出指令にて指定されたデータを読み出す構成にされるとよい（請求項１２，１３）。具体的に、コピーデータ生成手段は、読出回数の多いデータを、記憶手段の特定領域に記憶保持させる構成にすることができる。
【００４６】
このように構成された電子機器によれば、読出回数の多いデータを、不揮発性メモリから読み出さずに済むので、読出回数の増加によってリテンション低下し、不揮発性メモリ内の該当データが揮発してしまうのを極力抑えることができる。従って、この発明によれば、ソフトウェア的な手法で、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【００４７】
この他、不揮発性メモリには、特定種のデータについて、同一データを、複数個、予め書き込むことで、重要データ等については、不揮発性メモリにデータを多重持ちするようにするとよい。そして、電子機器は、次のように構成されるとよい。即ち、電子機器は、データ修復手段により、複数個ある特定種のデータ内の一つに異常が生じると、複数個ある特定種のデータの内、異常が生じていない同一のデータに基づき、異常が生じた特定種のデータを修復する構成にされるとよい（請求項１４）。
【００４８】
このように電子機器を構成すれば、データ揮発等を原因として、重要データ等に、万が一、異常が生じた場合でも、当該異常を解消することができ、データ揮発に強い耐久性に優れた電子機器を提供することができる。
【００４９】
また、上述した電子機器を車両に搭載して使用する場合には、バッテリを電子機器に接続して、電子機器を作動させることになるが、エンジンを始動させるためにセルモータを回転させるときなどには、電源に急激な電圧降下が生じて、電子機器が突然シャットダウンされる可能性がある。また、車両の停車等には、ユーザにより車両からバッテリが取り外されて、電子機器が突然シャットダウンされる可能性がある。そして、電子機器が突然シャットダウンされる可能性があるときに、不揮発性メモリが記憶するデータを更新しようとすると、不揮発性メモリからデータが消失してしまう可能性がある。
【００５０】
周知のように、フラッシュメモリ等の不揮発性メモリが記憶するデータを更新する場合には、書込先の領域を一旦消去しなければ、その領域に新たにデータを書き込むことができないため、一時的に、不揮発性メモリから更新対象のデータが消去された状態になる。従って、このときに、電子機器が突然シャットダウンされると、更新対象のデータが失われてしまうことになるのである。
【００５１】
勿論、データ更新処理の実行に際して、更新対象のデータを別の不揮発性メモリにバックアップしておけば、このようなデータ消失の問題を解決することができる。しかしながら、更新対象のデータを別の不揮発性メモリにバックアップしておくためには、当該別の不揮発性メモリを用意する必要があるし、この不揮発性メモリに十分な空き領域を確保しておく必要があり、電子機器の製造コストが高くなる。
【００５２】
従って、データ更新処理については、電子機器が突然シャットダウンされる可能性の低いときにのみ実行されるようにするとよい。
即ち、車両に搭載されて使用される電子機器には、自車両の運転状態を表す情報を取得する車両情報取得手段と、車両情報取得手段が取得した自車両の運転状態を表す情報に基づき、自車両の運転状態が所定条件を満足する期間、データ更新手段によるデータ更新処理の実行を禁止する禁止手段と、を設けるのが好ましい。
【００５３】
尚、自車両の運転状態を表す情報としては、エンジンの始動有無を表す情報や、自車両の走行速度を表す情報等を挙げることができる（請求項１５，請求項１６）。
このように電子機器を構成すれば、電圧降下が生じる可能性があるエンジンが始動される前の期間や、バッテリが取り外される可能性のある自車両が走行していない期間（走行速度ゼロの期間）に、データ更新処理が実行されるのを避けることができて、突然のシャットダウンを原因として、不揮発性メモリ内のデータが失われるのを回避することができる。
【００５４】
また、具体的に、禁止手段は、車両情報取得手段が取得した自車両の走行速度を表す情報に基づき、自車両の運転状態が所定条件を満足する期間として、自車両の走行速度が閾値未満である期間、データ更新手段によるデータ更新処理の実行を禁止する構成にすることができる（請求項１７）。
【００５５】
車両が停止等しているときには、バッテリが取り外される可能性があるし、エンジンが始動していないときには、セルモータの回転による電圧降下も生じうる。一方、エンジンが始動して車両がある程度の速度で走行し始めれば、電源の電圧降下が起こることはないし、バッテリの取り外しも起こらない。
【００５６】
従って、自車両の走行速度が閾値未満である期間、データ更新手段によるデータ更新処理の実行を禁止するようにすれば、突然のシャットダウンによるデータ消失のリスクを回避することができて、良好にデータ更新を行うことができる。
【００５７】
また、車載用の電子機器においては、走行距離に比例して読出回数が増える特性があるため、不揮発性メモリが記憶するデータをリフレッシュしなければ、当該電子機器が搭載された車両の走行距離が長くなる程、データ揮発の発生率が高くなる。
【００５８】
従って、車載用の電子機器においては、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの自車両の走行距離を、推定する走行距離推定手段を設けて、走行距離推定手段により推定された走行距離が閾値を超える度、データ更新手段にデータ更新処理を実行させるように更新制御手段を構成してもよい（請求項１８及び請求項１９）。
【００５９】
走行距離を計測するためのセンサ類は、もともと車両に取り付けられているので、このように、走行距離に基づいて、データ更新処理を実行するタイミングを制御するようにしても、ソフトウェア的な手法により、適切なタイミングでデータ更新を行うことができ、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
【００６０】
また、データ更新処理を実行するタイミングを、走行距離及び書込後経過時間の両者に基づいて制御するように電子機器を構成すれば、書込後経過時間の閾値を長めに設定することで、車両をよく利用するユーザ、そうでないユーザの夫々の環境下においても、適切に、不揮発性メモリ内のデータをリフレッシュすることができる（請求項１８）。
【００６１】
また、データ揮発の発生率は、電子機器の動作時間（電子機器がオンにされている時間）が長くなる程、高くなるので、上記電子機器においては、不揮発性メモリが記憶するデータが当該不揮発性メモリに書き込まれた時点からの当該電子機器の動作時間を推定する動作時間推定手段を設けて、動作時間推定手段により推定された動作時間が閾値を超える度、データ更新手段にデータ更新処理を実行させるように更新制御手段を構成してもよい（請求項２０及び請求項２１）。
【００６２】
電子機器の動作時間に基づいて、データ更新処理を実行するタイミングを制御すれば、簡単且つ適切に、不揮発性メモリでのデータ揮発を抑えることができる。
また、データ更新処理を実行するタイミングを、動作時間及び書込後経過時間の両者に基づいて制御するように電子機器を構成すれば、書込後経過時間の閾値を長めに設定することで、車両をよく利用するユーザ、そうでないユーザの夫々の環境下においても、適切に、不揮発性メモリ内のデータをリフレッシュすることができる（請求項２０）。
【００６３】
また、上記記憶手段以外の各手段としての機能は、プログラム（請求項２２〜請求項２７）により、コンピュータに実現させることができるので、上述の電子機器は、この種のプログラムと、コンピュータとを搭載し、プログラムにより、上記各手段としての機能を実現する構成にされると好ましい。
【発明を実施するための最良の形態】
【００６４】
以下、本発明の実施例について、図面と共に説明する。
【実施例１】
【００６５】
図１は、本発明が適用された第一実施例のカーナビゲーション装置１の構成を表すブロック図である。本実施例のナビゲーション装置１は、車両（自動車等）に搭載されて、使用される。
【００６６】
このナビゲーション装置１は、図１に示すように、位置検出器１１と、操作スイッチ群１３と、リモートコントロール端末（以下、リモコンと称す）１５ａと、リモコン１５ａからの送信信号を検知するリモコンセンサ１５ｂと、地図データを記憶するメモリカード１９ａが接続（装着）されるカードスロット部１９と、画面上に各種画像を表示するための表示部２１と、各種音声を出力するための音声出力部２３と、装置内各部を統括制御する制御部２５と、を備える。
【００６７】
位置検出器１１は、ＧＰＳ（Global Positioning System）用の人工衛星からの送信電波を、ＧＰＳアンテナを介して受信し、現在地点の緯度・経度を検出するＧＰＳ受信機１１ａと、ナビゲーション装置１が搭載された車両に加えられる回転運動の大きさを検出するジャイロスコープ１１ｂと、車両の走行距離を検出する距離センサ１１ｃと、地磁気から車両の進行方位を検出する地磁気センサ１１ｄとを備え、これら各部１１ａ〜１１ｄの検出信号を、制御部２５に入力する。
【００６８】
一方、操作スイッチ群１３は、表示部２１の周囲に設けられたメカニカルなキースイッチ、及び、表示部２１と一体に構成されたタッチパネルから構成されており、ユーザが操作可能なユーザインタフェースとして機能する。
【００６９】
また、表示部２１は、液晶モニタで構成され、表示部２１の画面上には、制御部２５の制御により、現在地点周辺の地図や、ユーザにより指定された目的地までの経路などが表示される。この他、音声出力部２３は、スピーカやアンプを備え、制御部２５に制御されて、目的地までの経路に係るガイド音声等を出力する。
【００７０】
その他、カードスロット部１９は、メモリカード１９ａと電気的に接続されて、制御部２５からメモリカード１９ａへのデータ書込及びメモリカード１９ａから制御部２５へのデータ読出を実現するものであり、メモリカード１９ａを着脱自在に接続可能な構成を有する。具体的に、メモリカード１９ａには、電気的にデータ書換可能な不揮発性メモリとしてのＮＡＮＤ型フラッシュメモリが内蔵されており、カードスロット部１９は、制御部２５からの指令に従って、制御部２５からフラッシュメモリへのデータ書込及びフラッシュメモリから制御部２５へのデータ読出を実現する。
【００７１】
また、ナビゲーション装置１に装着されるメモリカード１９ａには、予め当該装置がナビゲーション装置１として機能するのに必要なデータ（プログラムも含む）が記録されている。即ち、ナビゲーション装置１は、当該ナビゲーション装置１と同時又は別個に販売されるメモリカード１９ａが、カードスロット部１９に接続されると、メモリカード１９ａが記憶するデータに基づいて、ナビゲーション装置１としての機能を実現する。
【００７２】
具体的に、このメモリカード１９ａには、制御部２５が実行するプログラムの他、道路の接続関係や施設・地形等の情報を内包する地図データが、予め出荷前に記録される。詳述すると、メモリカード１９ａに記録される地図データは、地図データ全体の構造及び詳細データの参照先を表す地図管理データ、道路形状や背景構造（地形）等を表す道路・背景データ、道路の接続関係を表す道路ネットワークデータ、施設の位置・名称等を表す施設データ、及び、経路案内や操作説明に用いる音声データ等を備える。
【００７３】
この他、制御部２５は、各種演算処理を実行するＣＰＵ２５ａ、ＣＰＵ２５ａによる処理実行時に作業領域として使用されるＲＡＭ２５ｂ、設定情報などを記憶するＮＶＲＡＭ２５ｃ、及び、ブートプログラム等の基本プログラムを記憶するＲＯＭ（図示せず）を備えた構成にされている。この制御部２５は、ＣＰＵ２５ａにて、ＲＯＭやメモリカード１９ａが記憶するプログラムに従って、各種処理を実行することにより、経路案内等、ナビゲーション装置１が果たすべき機能を実現する。
【００７４】
尚、制御部２５が備えるＮＶＲＡＭ２５ｃは、メモリカード１９ａとは異なり、少ない記憶容量で、その用途を果たすことができるため、このＮＶＲＡＭ２５ｃには、データ記憶保持能力の高いメモリを用いる。例えば、ＮＶＲＡＭ２５ｃには、ＮＯＲ型のフラッシュメモリを用いることができる。
【００７５】
この他、制御部２５が備えるＲＡＭ２５ｂは、一時記憶手段であるが、ナビゲーション装置１のオフ時にデータが揮発しないように、ナビゲーション装置１のオン／オフに拘わらず、常時、車両に搭載されたバッテリからの電源供給を受けて、データを記憶保持する構成にされている。
【００７６】
即ち、本実施例のナビゲーション装置１におけるＲＡＭ２５ｂは、バッテリが車両から取り外されるか、バッテリが空になるなどして、バッテリからの電源供給が途絶えない限り、不揮発性メモリと同様に長期に渡って、データ保持可能にされている。
【００７７】
制御部２５は、メモリカード１９ａがカードスロット部１９に接続された時点で、メモリカード１９ａに記憶されたメモリカード１９ａ内のデータ構造を表すデータ管理情報（ＦＡＴ等）及び地図管理データを、メモリカード１９ａから読み出して、これを、上記ＲＡＭ２５ｂの管理情報記憶領域に保存する。そして、以後、メモリカード１９ａからデータを読み出す際には、ＲＡＭ２５ｂに記憶されているデータ管理情報及び地図管理データに従って、読み出すべきデータが記憶されているメモリカード１９ａ上の位置を特定する。
【００７８】
また、制御部２５は、メモリカード１９ａがカードスロット部１９に接続された時点で、メモリカード１９ａに記憶されたプログラムを、メモリカード１９ａから読み出して、これを、ＲＡＭ２５ｂのプログラム記憶領域に保存する。そして、以後、ＲＡＭ２５ｂに保存されたプログラムに基づき、各種処理を実行する。
【００７９】
具体的に、制御部２５は、上記プログラムに基づいて、位置検出器１１の検出信号により特定される自車位置周辺の地図データを、メモリカード１９ａから読み出し、読み出した地図データに基づき、自車位置周辺の地図画面を表示部２１に表示する地図表示処理を実行する。以下では、この地図表示処理を実現するタスクを、「地図表示処理タスク」と称する。
【００８０】
また、制御部２５は、上記プログラムに基づき、現在地から、ユーザインタフェースを通じて指定された目的地までの経路を、メモリカード１９ａが記憶する地図データを用いて探索し、探索の結果得られた目的地までの経路を、表示部２１や音声出力部２３を通じて、ユーザに案内する経路案内処理を実行する。以下では、この経路案内処理を実現するタスクを、「経路案内処理タスク」と称する。
【００８１】
例えば、制御部２５は、表示部２１に表示された自車周辺の地図画面上に、目的地までの経路を、太線等で重ねて表示すると共に、車両の旋回を伴う交差点付近で、車両の旋回方向を音声出力部２３を通じて音声案内する。
【００８２】
この他、制御部２５は、上記プログラムに基づいて、ユーザインタフェースを通じた地点登録の操作を受け付け、ユーザにより指定された地点の情報を、ＮＶＲＡＭ２５ｃに登録し、登録地点（自宅等）に対応する地図画面上の位置に、アイコンを表示して、登録地点を、ユーザに向けて案内する登録地点表示処理を実行する。
【００８３】
また、ナビゲーション装置１において、制御部２５が実行する各種プログラムは、基本的に、図２に示す読出制御処理を実現するプログラムを呼び出し、この読出制御処理を通じて、メモリカード１９ａに記憶されたプログラム以外のデータを取得する構成にされている。例えば、地図表示処理や経路案内処理を実現するプログラムは、図２（ｂ）に示す読出制御処理を通じ、必要な地図データを取得する構成にされている。
【００８４】
従って、以下では、まず、データ取得時に制御部２５が実行する読出制御処理について、図２を用いて説明する。図２（ａ）は、読取制御処理を通じたデータの取得態様を示した説明図であり、図２（ｂ）は、経路案内処理タスクや地図表示処理タスク等のタスクから読出指令が入力されると、制御部２５が実行する読出制御処理を表すフローチャートである。
【００８５】
読出指令が入力されて読出制御処理を開始すると、制御部２５は、まず、読出指令により指定された読出対象のデータを、ＲＡＭ２５ｂの特定領域内で探索し、特定領域に読出対象のデータが存在する場合には、これをＲＡＭ２５ｂの特定領域から読み出す（Ｓ１１０）。この特定領域は、メモリカード１９ａが記憶するデータの内、読出回数の多いデータを、一時的に記憶しておくための領域であり、ＲＡＭ２５ｂにおいて、他の作業領域（管理情報記憶領域及びプログラム記憶領域も含む）とは別に、独立して固定サイズで設けられている。この特定領域には、後述するＳ１９０の処理により、読出回数の多いデータが書き込まれる。
【００８６】
制御部２５は、読出対象のデータをＲＡＭ２５ｂの特定領域から読み出すことに成功した場合（Ｓ１２０でＹｅｓ）、ＲＡＭ２５ｂから読み出した上記読出対象のデータを、読出指令元のタスクに出力する（渡す）処理を行う（Ｓ１３０）。また、この処理を終えると、Ｓ１４０に移行し、読み出したデータに対応するブロックの読出カウンタＣＮを、１カウントアップする（ＣＮ←ＣＮ＋１）。
【００８７】
ここでいうブロックとは、フラッシュメモリを構成する周知のブロックのことである。また、読出カウンタＣＮとは、対応するブロックに記憶されたデータの読出回数を表すパラメータのことである。本実施例においては、メモリカード１９ａ内の各ブロックに対して、読出カウンタＣＮを割り当てており、各ブロックの読出カウンタＣＮを、ＮＶＲＡＭ２５ｃに記憶している。
【００８８】
即ち、本実施例では、メモリカード１９ａに対し、ブロック単位でしかデータを読み書きすることができないので、１ブロックを、データ読出及び書込可能なメモリアクセス単位として取り扱い、フラッシュメモリから読み出されるデータの読出回数を、ブロック毎にカウントする。
【００８９】
この読出カウンタＣＮは、初回に、ＮＶＲＡＭ２５ｃからＲＡＭ２５ｂに読み出された後、当該読出制御処理により該当するデータの読出がある度、カウントアップされる。そして、カウントアップ後の値は、定期的に、ＮＶＲＡＭ２５ｃに書き込まれて、ＮＶＲＡＭ２５ｃが記憶する読出カウンタＣＮに反映される。
【００９０】
Ｓ１４０で読出カウンタＣＮを更新（カウントアップ）すると、制御部２５は、当該読出制御処理を終了する。
一方、制御部２５は、ＲＡＭ２５ｂの特定領域に、読出対象のデータが記憶されておらず、ＲＡＭ２５ｂからのデータ読出に失敗すると（Ｓ１２０でＮｏ）、Ｓ１５０に移行する。そして、カードスロット部１９を通じメモリカード１９ａにアクセスし、メモリカード１９ａから読出対象のデータを読み出す。そして、メモリカード１９ａから読み出した上記読出対象のデータを、読出指令元のタスクに出力する処理を行う（Ｓ１６０）。
【００９１】
また、Ｓ１６０の処理を終えると、制御部２５は、上記読み出したデータに対応するブロックの読出カウンタＣＮを１カウントアップして更新する（Ｓ１７０）。即ち、読み出したデータに対応するブロックに割り当てられた読出カウンタＣＮの値を１増加させる。
【００９２】
その後、制御部２５は、更新後の読出カウンタＣＮ（上記読み出したデータに対応するブロックの読出カウンタＣＮ）が、予め定められた閾値を超えたか否かを判断する（Ｓ１８０）。そして、読出カウンタＣＮが閾値以下であると判断すると（Ｓ１８０でＮｏ）、Ｓ１９０の処理を実行することなく、当該読出制御処理を終了する。
【００９３】
一方、制御部２５は、読出カウンタＣＮが閾値を超えたと判断すると（Ｓ１８０でＹｅｓ）、Ｓ１９０に移行して、閾値を超えた上記読出カウンタＣＮに対応するブロックのデータ（即ち、Ｓ１５０でメモリカード１９ａから読み出したデータ）を、ＲＡＭ２５ｂの上記特定領域に書き込む。
【００９４】
但し、特定領域は、上述したように、固定サイズの領域として予め確保されており、この特定領域には、所定ブロック数分のデータしか記憶できない。このため、Ｓ１９０でのデータ書込時に、特定領域に空き領域がない場合には、過去に書き込まれたデータを特定領域から消去し、今回読み出したデータを、ＲＡＭ２５ｂの上記特定領域に書き込む。
【００９５】
即ち、制御部２５は、読出回数が閾値以上のブロックのデータをメモリカード１９ａから読み出す度、特定領域に書き込まれたデータを書込の古い順に消去して、新しく読み出したブロックのデータを特定領域に登録することにより、最近、読出のあったブロックのデータから、所定ブロック数分のデータを、ＲＡＭ２５ｂに記憶保持する。
【００９６】
また、Ｓ１９０での処理を終えると、制御部２５は、当該読出制御処理を終了する。このようにして、制御部２５は、読出回数が多いブロックのデータを、ＲＡＭ２５ｂに記憶保持して、メモリカード１９ａからのデータ読出回数を抑え、読出回数が増加することにより、メモリカード１９ａ内のデータが揮発するのを防止する。
【００９７】
また、このナビゲーション装置１では、メモリカード１９ａに書き込まれた地図データ等が時間経過と共に揮発するのを防止するため、これらのデータがメモリカード１９ａに書き込まれた日時からの経過時間を推定し、経過時間が閾値を超えた時点で、メモリカード１９ａ全体を、リフレッシュする。
【００９８】
続いて、このリフレッシュ動作を実現するために、制御部２５が実行する処理について、図３〜図７を用いて説明する。図３は、アクセサリ（ＡＣＣ）スイッチがオンにされて、ナビゲーション装置１がオンにされた直後に、制御部２５が実行する起動後処理を表すフローチャートである。但し、制御部２５は、ナビゲーション装置１がオンにされた時点で、メモリカード１９ａがカードスロット部１９に接続されていない場合、カードスロット部１９にメモリカード１９ａが接続された時点で、当該起動後処理を開始する。
【００９９】
図３に示す起動後処理を開始すると、制御部２５は、まず、カードスロット部１９に接続されているメモリカード１９ａがカードスロット部１９に初めて接続されたものであるか否かを判断する（Ｓ２１０）。尚、本実施例では、Ｓ２３０にて、初めて接続されたメモリカード１９ａの所定領域に、データ書込日時の情報を記録する。従って、Ｓ２１０では、メモリカード１９ａの所定領域にデータ書込日時の情報が記録されているか否かを判断することにより、接続されたメモリカード１９ａがカードスロット部１９に初めて接続されたものであるか否かを判断する。
【０１００】
そして、初めて接続されたメモリカード１９ａであると判断すると（Ｓ２１０でＹｅｓ）、制御部２５は、上述したように、メモリカード１９ａの所定領域に、現在日時を、データ書込日時の情報として記録する（Ｓ２３０）。同時に、メモリカード１９ａの所定領域に、未更新フラグの情報として、値「１」を記録して、未更新フラグをセット状態にする。尚、未更新フラグは、メモリカード１９ａが最初に接続されてから、メモリカード１９ａに対し最初にリフレッシュ動作がなされるまでの期間、セット状態にされ、その後、リセット状態（値「０」）にされるものである（詳細後述）。
【０１０１】
また、このようにしてＳ２３０での処理を終えると、制御部２５は、図４に示すカード管理処理の実行を開始し（Ｓ２５０）、その後、当該起動後処理を終了する。詳しくは後述するが、カード書込処理では、未更新フラグがリセット状態のとき、メモリカード１９ａに記録されたデータ書込日時からの経過時間が、閾値Ｔ１（例えば、１年）を越えた時点で、メモリカード１９ａに対するリフレッシュ動作を実行する。一方、未更新フラグがセット状態のとき、メモリカード１９ａに記録されたデータ書込日時からの経過時間が、上記閾値Ｔ１よりも短い閾値Ｔ２（例えば１月）を超えた時点で、メモリカード１９ａに対するリフレッシュ動作を実行する。未更新フラグは、このような処理の切替のために用いられるものである。
【０１０２】
また、制御部２５は、カードスロット部１９に接続されたメモリカード１９ａが初めて接続されたメモリカード１９ａではないと判断すると（Ｓ２１０でＮｏ）、Ｓ２４０に移行し、図７に示す再起動時処理を実行する。
【０１０３】
詳しくは後述するが、この再起動時処理では、メモリカード１９ａに対するリフレッシュ動作が何らかの原因で中断されているとき、そのリフレッシュ動作を再開する動作を行う。この他、制御部２５は、リフレッシュ動作が中断されている状態にないとき、何もせずに再起動時処理を終了する。
【０１０４】
このようにして、Ｓ２４０における再起動時処理を終えると、制御部２５は、直前の再起動時処理にてメモリカード１９ａに対するリフレッシュ動作が完了したか否か（具体的には、Ｓ６９０又はＳ６４５でＹｅｓと判断して再起動時処理が終了したか否か）を判断し（Ｓ２４３）、リフレッシュ動作が完了したと判断すると（Ｓ２４３でＹｅｓ）、メモリカード１９ａの所定領域に記憶されているデータ書込日時を、現在日時に更新する（Ｓ２４７）。その後、Ｓ２５０に移行して、図４に示すカード管理処理の実行を開始し、当該起動後処理を終了する。
【０１０５】
一方、再起動時処理にて、メモリカード１９ａに対するリフレッシュ動作が完了していない場合（即ち、Ｓ６１０でＮｏと判断するか、Ｓ６２５又はＳ６７５でＹｅｓと判断して、再起動時処理が終了している場合）には（Ｓ２４３でＮｏ）、Ｓ２４７の処理を実行することなく、Ｓ２５０に移行する。そして、図４に示すカード管理処理の実行を開始し（Ｓ２５０）、当該起動後処理を終了する。但し、Ｓ６２５又はＳ６７５でＹｅｓと判断した場合には、Ｓ２５０の処理を実行することなく、当該起動後処理を終了し、ナビゲーション装置１をオフにする。
【０１０６】
続いて、制御部２５が、Ｓ２５０で実行を開始するカード管理処理について説明する。図４は、制御部２５が実行するカード管理処理を表すフローチャートである。
このカード管理処理を開始すると、制御部２５は、カードスロット部１９に接続されたメモリカード１９ａの所定領域に記録されているデータ書込日時の情報に基づき、当該データ書込日時からの経過時間を算出する（Ｓ３１０）。更に、メモリカード１９ａが記憶する上記未更新フラグを参照し、未更新フラグがリセット状態にあるか否かを判断する（Ｓ３２０）。そして、未更新フラグがリセット状態にあると判断すると（Ｓ３２０でＹｅｓ）、Ｓ３３０に移行する。
【０１０７】
また、Ｓ３３０では、Ｓ３１０で算出された経過時間が、予め定められた閾値Ｔ１（例えば１年）を超えているか否かを判断し、経過時間が閾値Ｔ１を超えていないと判断すると（Ｓ３３０でＮｏ）、Ｓ３１０に移行する。このようにして、制御部２５は、未更新フラグがリセット状態にある場合、経過時間が閾値Ｔ１を越えるまで待機する。
【０１０８】
そして、経過時間が閾値Ｔ１を超えていると判断すると（Ｓ３３０でＹｅｓ）、Ｓ３４０に移行し、メモリカード１９ａの全ブロックを、リフレッシュする対象である再書込領域に設定し、図５に示す再書込制御処理を実行する。これにより、メモリカード１９ａ内のデータ全体をリフレッシュする（詳細後述）。そして、全ブロックの再書込処理が終了することで再書込制御処理が終了すると、メモリカード１９ａが記憶するデータ書込日時を、現在日時に更新し（Ｓ３５０）、当該カード管理処理を終了する。
【０１０９】
一方、未更新フラグがセット状態にあると判断すると（Ｓ３２０でＮｏ）、制御部２５は、Ｓ３２５に移行し、Ｓ３１０で算出された経過時間が、閾値Ｔ２（例えば１月）を超えているか否かを判断し、経過時間が閾値Ｔ２を超えていないと判断すると（Ｓ３２５でＮｏ）、Ｓ３１０に移行する。このようにして、制御部２５は、未更新フラグがセット状態にある場合、経過時間が閾値Ｔ２を越えるまで待機する。
【０１１０】
そして、経過時間が閾値Ｔ２を超えていると判断すると（Ｓ３２５でＹｅｓ）、Ｓ３４０に移行し、上述したように、メモリカード１９ａの全ブロックを再書込領域に設定して、再書込制御処理を実行する。これにより、メモリカード１９ａ内のデータ全体をリフレッシュする。また、全ブロックの再書込処理が終了することでＳ３４０の処理を終えると、メモリカード１９ａが記憶するデータ書込日時を、現在日時に更新すると共に、メモリカード１９ａが記憶するセット状態の未更新フラグをリセット状態に更新する（Ｓ３５０）。その後、当該カード管理処理を終了する。
【０１１１】
続いて、Ｓ３４０で制御部２５が実行する再書込制御処理について説明する。図５は、制御部２５が実行する再書込制御処理を表すフローチャートである。上述のリフレッシュ動作は、この再書込制御処理により実現される。
【０１１２】
再書込制御処理を開始すると、制御部２５は、再書込制御処理の実行時に設定された再書込領域の情報に基づき、再書込領域内の先頭ブロックを、処理対象ブロックとして設定する（Ｓ４１０）、その後、後続の処理（Ｓ４２０以降）を実行する。
【０１１３】
即ち、Ｓ４１０で処理対象ブロックを設定すると、制御部２５は、Ｓ４２０に移行し、処理対象ブロックに記憶されたデータを、メモリカード１９ａから読み出し、読み出したデータを、ＲＡＭ２５ｂに一時記憶する。尚、ここでの読み出しは、上記読出制御処理を介さずに行うものとする。また、Ｓ４２０では、ＲＡＭ２５ｂの特定領域とは独立した作業領域に、上記読み出したデータを書き込んで、このデータを、ＲＡＭ２５ｂに一時記憶する。
【０１１４】
また、この処理を終えると、制御部２５は、処理対象ブロックのデータがトラブル等で消失してしまうのを防止するため、この処理対象ブロックのデータを、ＮＶＲＡＭ２５ｃにバックアップ保存する。同時に、上記トラブルに備えて、再書込制御処理の進み具合を表す再書込進捗情報をＮＶＲＡＭ２５ｃに記録する（Ｓ４３０）。例えば、再書込制御処理の実行時に設定された再書込領域の情報及び再書込処理が完了したブロックの情報を記録する。
【０１１５】
そして、Ｓ４３０での処理を終えると、制御部２５は、ＲＡＭ２５ｂに読み出した上記処理対象ブロックのデータを、ＲＡＭ２５ｂからメモリカード１９ａに再書込する処理（再書込処理）を開始して（Ｓ４４０）、メモリカード１９ａが記憶する処理対象ブロックのデータをリフレッシュする。この動作により、メモリカード１９ａが記憶する処理対象ブロックのデータは更新され、メモリセルにおいて時間経過と共に低下していた電位は、正常な電位に回復する。
【０１１６】
尚、制御部２５は、この再書込処理を開始した後、当該再書込処理が完了するまでの期間、エラー検出処理を並行して実行する（Ｓ４５０）。図６は、制御部２５が実行するエラー検出処理を表すフローチャートである。
【０１１７】
エラー検出処理を開始すると、制御部２５は、車両のＡＣＣスイッチがオフにされることにより、ナビゲーション装置１に対しオフ操作がなされたか否かを判断し（Ｓ５１０）、ナビゲーション装置１に対してオフ操作がなされたと判断すると（Ｓ５１０でＹｅｓ）、Ｓ５２０に移行し、ナビゲーション装置１に対するオフ操作がなされていないと判断すると（Ｓ５１０でＮｏ）、Ｓ５６０に移行する。
【０１１８】
Ｓ５２０に移行すると、制御部２５は、現在再書込処理中の処理対象ブロックについての当該再書込処理が全て終了するまで待機し、再書込処理が全て終了すると（Ｓ５２０でＹｅｓ）、ＮＶＲＡＭ２５ｃにバックアップ保存されている当該処理対象ブロックのデータを消去する（Ｓ５３０）。同時に、ＮＶＲＡＭ２５ｃに記憶されている再書込進捗情報を更新する（Ｓ５４０）。具体的に、Ｓ５４０では、再書込進捗情報が示す再書込処理が完了したブロックの情報を、現状況に合わせて更新すると共に、中断原因を表す情報として、オフ操作による中断の旨の情報を、再書込進捗情報に付加する。
【０１１９】
また、Ｓ５４０での処理を終えると、制御部２５は、「中断要」と判定して（Ｓ５５０）、当該エラー検出処理を終了する。
一方、Ｓ５６０に移行すると、制御部２５は、カードスロット部１９からメモリカード１９ａが抜かれたか否かを判断し、カードスロット部１９からメモリカード１９ａが抜かれていなければ（Ｓ５６０でＮｏ）、Ｓ５７０〜Ｓ５９７の処理を実行することなく、当該エラー検出処理を終了する。
【０１２０】
これに対し、カードスロット部１９からメモリカード１９ａが抜かれていると判断すると（Ｓ５６０でＹｅｓ）、制御部２５は、Ｓ５７０に移行して、表示部２１に、メモリカード１９ａが接続されていない旨のメッセージを表示し、ユーザに対し、メモリカード１９ａのカードスロット部１９への接続を促す。
【０１２１】
その後、制御部２５は、メモリカード１９ａがカードスロット部１９に接続されたか否かを判断し（Ｓ５８０）、メモリカード１９ａがカードスロット部１９に接続されていなければ（Ｓ５８０でＮｏ）、ナビゲーション装置１に対するオフ操作がなされたか否かを判断し（Ｓ５８５）、ナビゲーション装置１に対するオフ操作がなされていなければ（Ｓ５８５でＮｏ）、Ｓ５８０に移行する。このようにして、制御部２５は、メモリカード１９ａがカードスロット部１９に接続されるか、ナビゲーション装置１に対してオフ操作がなされるまで待機する。
【０１２２】
そして、ナビゲーション装置１に対してオフ操作がなされると（Ｓ５８５でＹｅｓ）、ＮＶＲＡＭ２５ｃ内の再書込進捗情報を更新し（Ｓ５９５）、「中断要」と判定した後（Ｓ５９７）、当該エラー検出処理を終了する。具体的にＳ５９５では、再書込進捗情報が示す再書込処理が完了したブロックの情報を、現状況に合わせて更新すると共に、中断原因を表す情報として、メモリカードの抜き出しによる中断の旨の情報を、再書込進捗情報に付加する。その後、「中断要」と判定し（Ｓ５９７）、エラー検出処理を終了する。
【０１２３】
この他、制御部２５は、カードスロット部１９にメモリカード１９ａが接続された場合（Ｓ５８０でＹｅｓ）、カードスロット部１９に接続されたメモリカード１９ａが前回と同じカードであるか否かを判断する（Ｓ５９０）。
【０１２４】
詳述すると、Ｓ５９０では、メモリカード１９ａに予め記録された個体番号に基づき、カードスロット部１９に接続されたメモリカード１９ａが前回、即ち、最後にカードスロット部１９に接続されたメモリカード１９ａと同じカードであるか否かを判断する。
【０１２５】
そして、今回接続されたメモリカード１９ａが前回と同じカードであると判断すると（Ｓ５９０でＹｅｓ）、再書込処理を、メモリカード１９ａの抜き出しにより中断された位置から開始し（Ｓ５９３）、その後、当該エラー検出処理を終了する。
【０１２６】
これに対し、今回接続されたメモリカード１９ａが前回と同じカードではないと判断すると（Ｓ５９０でＮｏ）、制御部２５は、Ｓ５９５に移行して、ＮＶＲＡＭ２５ｃ内の再書込進捗情報を更新し、その後、「中断要」判定して（Ｓ５９７）、当該エラー検出処理を終了する。
【０１２７】
また、Ｓ４５０でエラー検出処理を実行し終えると、制御部２５は、Ｓ４６０に移行し、エラー検出処理で「中断要」判定がなされたか否かを判断する（Ｓ４６０）。そして、「中断要」判定がなされたと判断すると（Ｓ４６０でＹｅｓ）、Ｓ４７０以降の処理を実行せずに当該再書込制御処理（換言すれば、リフレッシュ動作）を中断する。尚、Ｓ３４０において、「中断要」判定により再書込制御処理を中断した場合、制御部２５は、Ｓ３５０の処理を実行せずに、ナビゲーション装置１をオフにする。
【０１２８】
一方、エラー検出処理で「中断要」判定がなされていないと判断すると（Ｓ４６０でＮｏ）、制御部２５は、Ｓ４７０に移行し、処理対象ブロックについての再書込処理が完了したか否かを判断する。即ち、処理対象ブロックのデータが、全てメモリカード１９ａに書き込まれたか否かを判断する。そして、処理対象ブロックについての再書込処理が完了していないと判断すると（Ｓ４７０でＮｏ）、Ｓ４５０に移行する。
【０１２９】
また、処理対象ブロックについて再書込処理が完了すると（Ｓ４７０でＹｅｓ）、制御部２５は、ＮＶＲＡＭ２５ｃにバックアップ保存されている処理対象ブロックのデータを、ＮＶＲＡＭ２５ｃから消去する（Ｓ４８０）。その後、再書込領域内の全てのブロックについて、再書込処理が終了し、対応するブロックのデータが全てリフレッシュされたか否かを判断する（Ｓ４９０）。
【０１３０】
そして、Ｓ４９０で再書込領域内の全てのブロックについて、再書込処理が終了していないと判断すると（Ｓ４９０でＮｏ）、制御部２５は、処理対象ブロックを、次ブロックに設定変更して（Ｓ４９５）、この処理対象ブロックについて、Ｓ４２０以降の処理を実行する。
【０１３１】
このようにして、制御部２５は、ブロック毎に、再書込処理を実行し、再書込領域内の全てのブロックについて、再書込処理が終了すると（Ｓ４９０でＹｅｓ）、当該再書込制御処理を終了する。
【０１３２】
続いて、制御部２５が、Ｓ２４０（図３参照）にて実行する再起動時処理について、図７を用いて説明する。図７は、制御部２５が実行する再起動時処理を表すフローチャートである。
【０１３３】
再起動時処理を開始すると、制御部２５は、ＮＶＲＡＭ２５ｃに再書込進捗情報が記録されているか否かを判断することにより、ナビゲーション装置１において開始されたリフレッシュ動作（再書込制御処理）が中断されているか否かを判断する（Ｓ６１０）。尚、再書込進捗情報は、メモリカード１９ａのデータ書込日時が更新される時点（Ｓ２４７，Ｓ３５０）で、ＮＶＲＡＭ２５ｃから消去されるものとする。
【０１３４】
制御部２５は、ＮＶＲＡＭ２５ｃに再書込進捗情報が記録されている場合、リフレッシュ動作（再書込制御処理）が中断されていると判断して（Ｓ６１０でＹｅｓ）、Ｓ６２０に移行する。一方、ＮＶＲＡＭ２５ｃに再書込進捗情報が記録されていない場合には、否定判断して（Ｓ６１０でＮｏ）、Ｓ６２０〜Ｓ６９５の処理を実行することなく、当該再起動時処理を終了する。
【０１３５】
Ｓ６２０に移行すると、制御部２５は、リフレッシュ動作の中断直前にカードスロット部１９に接続されていたメモリカード１９ａと同一のカードが、カードスロット部１９に接続されているか否かを判断し、同一のカードがカードスロット部１９に接続されていないと判断すると（Ｓ６２０でＮｏ）、ナビゲーション装置１に対するオフ操作がなされたか否かを判断する（Ｓ６２５）。
【０１３６】
そして、ナビゲーション装置１に対するオフ操作がなされていないと判断すると（Ｓ６２５でＮｏ）、Ｓ６２０に移行する。このようにして、制御部２５は、カードスロット部１９に、中断直前に接続されていたメモリカード１９ａと同一のメモリカード１９ａが接続されるか、ナビゲーション装置１に対するオフ操作がなされるまで待機する。そして、ナビゲーション装置１に対するオフ操作がなされると（Ｓ６２５でＹｅｓ）、当該再起動時処理を終了する。
【０１３７】
一方、カードスロット部１９に中断直前に接続されていたメモリカード１９ａと同一のメモリカード１９ａが接続されると（Ｓ６２０でＹｅｓ）、制御部２５は、Ｓ６３０に移行し、リフレッシュ動作が異常終了しているか否かを判断する。ここでは、ＮＶＲＡＭ２５ｃに中断原因を表す情報が記録されていない場合、リフレッシュ動作が異常終了していると肯定判断し（Ｓ６３０でＹｅｓ）、ＮＶＲＡＭ２５ｃに中断原因を表す情報が記録されている場合には、否定判断する（Ｓ６３０でＮｏ）。
【０１３８】
そして、異常終了していると判断すると（Ｓ６３０でＹｅｓ）、制御部２５は、ＮＶＲＡＭ２５ｃにバックアップ保存されている処理対象ブロックのデータを読み出して、ＲＡＭ２５ｂに記憶し（Ｓ６３３）、ＮＶＲＡＭ２５ｃに記録されている再書込進捗情報に基づいて、その処理対象ブロックのデータを、ＲＡＭ２５ｂからメモリカード１９ａに再書込する処理（再書込処理）を開始する（Ｓ６３７）。その後、Ｓ６７０に移行する。
【０１３９】
一方、異常終了していないと判断すると（Ｓ６３０でＮｏ）、制御部２５は、Ｓ６４０に移行し、ＮＶＲＡＭ２５ｃに記録されている中断原因を表す情報に基づき、中断原因が、オフ操作によるものであるのか、それとも、メモリカードの抜き出しによるものであるのかを判断する。
【０１４０】
そして、中断原因が、メモリカードの抜き出しによるものであると判断すると、制御部２５は、Ｓ６３３に移行して、上述したように、ＮＶＲＡＭ２５ｃにバックアップ保存されている処理対象ブロックのデータを読み出してＲＡＭ２５ｂに記憶し、その処理対象ブロックのデータを、ＲＡＭ２５ｂからメモリカード１９ａに再書込する処理を開始する（Ｓ６３７）。その後、Ｓ６７０に移行する。
【０１４１】
この他、中断原因が、オフ操作によるものであると判断すると、制御部２５は、Ｓ６４５に移行して、ＮＶＲＡＭ２５ｃに記憶されている再書込進捗情報に基づき、現在設定されている再書込領域内の全ブロックに対して、上述の再書込処理を終了したか否かを判断し（Ｓ６４５）、再書込領域内の全ブロックに対する再書込処理を終了したと判断すると（Ｓ６４５でＹｅｓ）、当該再起動時処理を終了する。
【０１４２】
一方、再書込領域内の全ブロックに対して、上述の再書込処理を終了していないと判断すると（Ｓ６４５でＮｏ）、Ｓ６５０に移行し、再書込処理が未完了のブロック群の中で先頭のブロックを、処理対象ブロックに設定する。
【０１４３】
その後、制御部２５は、Ｓ６５０で設定した処理対象ブロックのデータを、メモリカード１９ａから読み出して、これをＲＡＭ２５ｂに書き込む（Ｓ６５５）。同時に、読み出した処理対象ブロックのデータを、ＮＶＲＡＭ２５ｃにバックアップ保存し、更に、ＮＶＲＡＭ２５ｃに記憶されている再書込進捗情報を更新する（Ｓ６６０）。具体的に、ここでは、再書込進捗情報の内、中断原因を表す情報を、ＮＶＲＡＭ２５ｃから消去する処理を行って、再書込進捗情報を更新する。
【０１４４】
そして、Ｓ６６０での処理を終えると、制御部２５は、処理対象ブロックのデータを、ＲＡＭ２５ｂからメモリカード１９ａに再書込する処理を開始する（Ｓ６６５）。その後、Ｓ６７０に移行する。
【０１４５】
この他、Ｓ６７０では、図６に示すエラー検出処理を実行し（Ｓ６７０）、エラー検出処理が終了すると、当該エラー検出処理にて「中断要」判定がなされたか否かを判断する（Ｓ６７５）。そして、「中断要」判定がなされたと判断すると（Ｓ６７５でＹｅｓ）、Ｓ６８０以降の処理を実行せずに当該再起動時処理（換言すれば、リフレッシュ動作）を中断する。
【０１４６】
一方、エラー検出処理にて「中断要」判定がなされなかったと判断すると（Ｓ６７５でＮｏ）、制御部２５は、Ｓ６８０に移行して、Ｓ４７０での処理と同様に、処理対象ブロックについての再書込処理が完了したか否かを判断する。そして、処理対象ブロックについての再書込処理が完了していないと判断すると（Ｓ６８０でＮｏ）、Ｓ６７０に移行する。
【０１４７】
また、処理対象ブロックについて再書込処理が完了すると（Ｓ６８０でＹｅｓ）、制御部２５は、ＮＶＲＡＭ２５ｃにバックアップ保存されている処理対象ブロックのデータを、ＮＶＲＡＭ２５ｃから消去する（Ｓ６８５）。その後、再書込領域内の全ブロックについて、再書込処理が終了したか否かを判断する（Ｓ６９０）。
【０１４８】
そして、Ｓ６９０で再書込処理が終了していないと判断すると（Ｓ６９０でＮｏ）、処理対象ブロックを、次ブロックに設定変更して（Ｓ６９５）、この処理対象ブロックについて、Ｓ６５５以降の処理を実行する。
【０１４９】
このようにして、制御部２５は、ブロック毎に、再書込処理を実行し、再書込領域内の全ブロックについて、再書込処理が終了すると（Ｓ６９０でＹｅｓ）、当該再起動時処理を終了する。
【０１５０】
以上、第一実施例のナビゲーション装置１の構成について説明したが、このナビゲーション装置１によれば、メモリカード１９ａにデータが書き込まれた時点からの経過時間を、メモリカード１９ａに記録されたデータ書込日時の情報に基づいて推定し（Ｓ３１０）、データ書込日時からの経過時間が閾値Ｔ１（初回のみ閾値Ｔ２）を超える度、再書込制御処理を実行して（Ｓ３４０）、メモリカード１９ａ内のデータ全体をリフレッシュする。
【０１５１】
従って、このナビゲーション装置１によれば、時間経過と共に、メモリカード１９ａ内のデータが揮発してしまうのを防止することができ、データの揮発により、ナビゲーション装置１に誤動作が生じるのを防止することができる。そして、本実施例によれば、このような動作を、制御部２５でのプログラム実行により実現しているので、メモリセルの状態を検知するための回路を設ける必要がなく、簡単に、適切なタイミングで、メモリカード１９ａ内をリフレッシュすることができ、簡単且つ適切に、データ揮発を抑えることができる。
【０１５２】
この他、本実施例では、メモリカード１９ａに地図データ等が書き込まれた時点からの経過時間を、メモリカード１９ａに記録されたデータ書込日時の情報に基づき、推定するので、メモリカード１９ａの出荷前におけるデータ書込時に、メモリカード１９ａにデータ書込日時の情報を記録するようにすれば、工場での初回データ書込時からの経過時間を、ナビゲーション装置１で正確に把握することができ、メモリカード１９ａの出荷後、メモリカード１９ａが消費者により購入され使用されるまでの期間に依らず、適切なタイミングで、初回のリフレッシュ動作を実行することができる。
【０１５３】
また、本実施例では、データ書込日時の情報が記録されていないメモリカード１９ａに対し、ナビゲーション装置１への初回接続時に、その接続日時を、データ書込日時の情報として記録する（Ｓ２３０）。そして、ナビゲーション装置１では、メモリカード１９ａに記録されたデータ書込日時の情報に基づいて、メモリカード１９ａがカードスロット部１９に最初に接続された時点からの経過時間を、メモリカード１９ａにデータが書き込まれた時点からの経過時間として推定し、当該経過時間が閾値を超えた時点で、リフレッシュ動作を実行する。
【０１５４】
従って、本実施例のナビゲーション装置１によれば、工場でデータ書込日時の情報がメモリカード１９ａに記録されない場合でも、適切なタイミングで、メモリカード１９ａ内のデータを更新することができ、データの揮発を防止することができる。
【０１５５】
特に、本実施例では、メモリカード１９ａがカードスロット部１９に最初に接続された時点からの経過時間を、メモリカード１９ａにデータが書き込まれた時点からの経過時間として推定するときの誤差を考慮して、閾値Ｔ２を閾値Ｔ１よりも短く設定し、初回のリフレッシュ動作については、早めに実行するようにした。
【０１５６】
従って、本実施例によれば、工場出荷前のデータ書込日時を正確に把握できない場合でも、適切なタイミングで、リフレッシュ動作を実行することができる。
また、本実施例では、読出回数の多いデータについては、毎回、メモリカード１９ａからデータを読み出さなくても済むように、このコピーデータをＲＡＭ２５ｂの特定領域に一時保存するようにした（Ｓ１９０）。このナビゲーション装置１によれば、読出回数の多いデータを、メモリカード１９ａから毎回読み出さずに済むので、メモリカード１９ａからの読出回数が増加することによってリテンションが低下し、メモリカード１９ａにおいて、読出回数の多いデータが、Ｓ３４０での処理を実行する前に、揮発してしまうのを防止することができる。従って、本実施例によれば、データ揮発によるエラーが起こりにくい優れたナビゲーション装置を提供することができる。
【０１５７】
尚、本発明（請求項１〜５，１２，１３）におけるデータ更新手段としての機能は、本実施例において、制御部２５がＳ３４０で実行する再書込制御処理及びＳ３５０の処理等にて実現され、書込後経過時間推定手段としての機能は、Ｓ２３０，Ｓ３１０の処理にて実現されている。
【０１５８】
また、更新制御手段としての機能は、Ｓ３２０〜Ｓ３３０の処理にて実現され、読出制御手段としての機能は、Ｓ１１０〜Ｓ１３０，Ｓ１５０〜Ｓ１６０の処理にて実現されている。この他、総読出回数計測手段としての機能は、Ｓ１４０，Ｓ１７０の処理にて実現され、コピーデータ生成手段としての機能は、Ｓ１８０〜Ｓ１９０の処理にて実現されている。
【実施例２】
【０１５９】
続いて、第二実施例のカーナビゲーション装置１について説明する。但し、第二実施例のナビゲーション装置１のハードウェア構成は、第一実施例のナビゲーション装置１と同一であるので、ここでは、ハードウェア構成の説明を省略し、制御部２５がソフトウェア的に実現する処理の内容についてのみ選択的に説明する。
【０１６０】
図８（ａ）は、制御部２５が、図３に示す起動後処理に代えて実行する第二実施例の起動後処理を表すフローチャートである。
制御部２５は、ＡＣＣスイッチがオンにされて、ナビゲーション装置１がオンにされた直後に、図８（ａ）に示す起動後処理の実行を開始する。但し、制御部２５は、ナビゲーション装置１がオンにされた時点で、メモリカード１９ａがカードスロット部１９に接続されていない場合、カードスロット部１９にメモリカード１９ａが接続された時点で、当該起動後処理を開始する。
【０１６１】
制御部２５は、この起動後処理を開始すると、まず、図８（ｂ）に示す監視対象設定処理を実行する（Ｓ７１０）。図８（ｂ）は、制御部２５が、Ｓ７１０で実行する監視対象設定処理を表すフローチャートである。
【０１６２】
Ｓ７１０で監視対象設定処理を開始すると、制御部２５は、まず、ＮＶＲＡＭ２５ｃに記憶されている登録地点データを読み出す（Ｓ７１３）。本実施例のナビゲーション装置１は、第一実施例と同様、ユーザインタフェースを通じ、地点登録操作を受け付けて、ユーザにより指定された地点の情報を、ＮＶＲＡＭ２５ｃに、登録地点データとして登録し、この登録地点データに基づき、登録地点（自宅等）に対応する地図画面上の位置に、アイコンを表示して、登録地点を、ユーザに向けて案内する。
【０１６３】
Ｓ７１３では、上記地点登録操作により登録された地点を表す登録地点データを、ＮＶＲＡＭ２５ｃから読み出す。そして、読み出した登録地点データの情報に基づき、登録地点データが示す各登録地点について、この登録地点を基点とした周辺地域の地図データを、監視対象に設定し、この設定内容をＮＶＲＡＭ２５ｃに記録する（Ｓ７１７）。例えば、登録地点と同一の行政区（市町村等）の地図データを、監視対象に設定する。そして、この設定内容を、ＮＶＲＡＭ２５ｃに記録する。その後、監視対象設定処理を終了する。
【０１６４】
制御部２５は、このような内容の監視対象設定処理をＳ７１０で終了すると、Ｓ７３０に移行し、Ｓ２１０での処理と同様に、カードスロット部１９に接続されたメモリカード１９ａがカードスロット部１９に初めて接続されたものであるか否かを判断する（Ｓ７３０）。
【０１６５】
そして、初めて接続されたメモリカード１９ａであると判断すると（Ｓ７３０でＹｅｓ）、第一実施例と同様、メモリカード１９ａの所定領域に、現在日時を、データ書込日時の情報として記録する（Ｓ７４０）。同時に、メモリカード１９ａの所定領域に、未更新フラグの情報として、値「１」を記録して、未更新フラグをセット状態にする。
【０１６６】
また、Ｓ７４０での処理を終えると、制御部２５は、図４に示すカード管理処理の実行を開始し（Ｓ７６０）、その後、当該起動後処理を終了する。
このようにして、制御部２５は、ナビゲーション装置１がオンにされている期間、カード管理処理により、データ書込日時から所定時間（閾値Ｔ１，Ｔ２）が経過したか否かを判断し、所定時間が経過した場合には、メモリカード１９ａ内の全ブロックを再書込領域に設定して、メモリカード１９ａ内のデータ全体をリフレッシュする。
【０１６７】
また、リフレッシュ動作がオフ操作等により中断された場合には、ナビゲーション装置がオンにされたときに、図７に示す再起動後処理を実行して（Ｓ７５０）、リフレッシュ動作を再開し、リフレッシュ動作を完了させる。
【０１６８】
即ち、制御部２５は、カードスロット部１９に接続されたメモリカード１９ａが初めて接続されたメモリカード１９ａではないと判断すると（Ｓ７３０でＮｏ）、Ｓ７５０に移行し、図７に示す再起動時処理を実行する。
【０１６９】
また、再起動時処理を終えると、制御部２５は、直前の再起動時処理にて、メモリカード１９ａに対するリフレッシュ動作が完了したか否か（具体的には、Ｓ６９０又はＳ６４５でＹｅｓと判断して再起動時処理が終了したか否か）を判断し、リフレッシュ動作が完了したと判断すると（Ｓ７５３でＹｅｓ）、ＮＶＲＡＭ２５ｃに記憶されている再書込進捗情報に基づき、完了したリフレッシュ動作に対応した処理を実行し、その後、再書込進捗情報を、ＮＶＲＡＭ２５ｃから消去する（Ｓ７５７）。
【０１７０】
具体的に、カード管理処理にて実行を開始したリフレッシュ動作（再書込制御処理）が完了し、メモリカード１９ａ内の全ブロックがリフレッシュされた場合には、第一実施例におけるＳ２４７の処理と同様、メモリカード１９ａの所定領域に記憶されているデータ書込日時を、現在日時に更新し、未更新フラグをリセットする。
【０１７１】
また、このようにしてＳ７５７での処理を終えると、制御部２５は、Ｓ７６０に移行し、図４に示すカード管理処理の実行を開始する。その後、当該起動後処理を終了する。
この他、本実施例のナビゲーション装置１では、制御部２５が、メモリカード１９ａにおいて読出回数の多いデータのブロックを、個別に、再書込領域に設定して再書込制御処理を実行するので（詳細後述）、この再書込制御処理の中断を原因として、再起動時処理にて実行されたリフレッシュ動作が完了し、再書込領域に設定されたブロックがリフレッシュされた場合には、Ｓ７５７において、メモリカード１９ａのデータ書込日時を更新することなく、リフレッシュされたブロックに対応する読出カウンタＣＮをゼロにリセットすると共に、再書込進捗情報を、ＮＶＲＡＭ２５ｃから消去する。その後、Ｓ７６０に移行して、図４に示すカード管理処理の実行を開始した後、当該起動後処理を終了する。
【０１７２】
一方、再起動時処理にて、メモリカード１９ａに対するリフレッシュ動作が完了していない場合（即ち、Ｓ６１０でＮｏと判断するか、Ｓ６２５又はＳ６７５でＹｅｓと判断して、再起動時処理が終了している場合）には（Ｓ７５３でＮｏ）、Ｓ７５７の処理を実行することなく、Ｓ７６０に移行する。但し、Ｓ６２５又はＳ６７５でＹｅｓと判断した場合には、Ｓ７６０の処理を実行することなく、当該起動後処理を終了し、ナビゲーション装置１をオフにする。
【０１７３】
ところで、本実施例のナビゲーション装置１では、上述したように、メモリカード１９ａからの読出回数が多いデータを、個別に再書込処理し、リフレッシュするのであるが、この動作は、制御部２５が、図９に示す読出制御処理を実行することにより実現される。即ち、制御部２５が実行する各種プログラムは、基本的に、第一実施例とは異なり、図９に示す読出制御処理を実現するプログラムを呼び出し、この読出制御処理を通じて、メモリカード１９ａに記憶されたデータを取得する構成にされている。
【０１７４】
次には、この読出制御処理の内容について、図９を用いて説明する。図９は、経路案内処理タスクや地図表示処理タスク等のタスクから読出指令が入力されると、制御部２５が実行する第二実施例の読出制御処理を表すフローチャートである。
【０１７５】
読出指令が入力されて、この読出制御処理を開始すると、制御部２５は、読出指令により指定された読出対象のデータを、メモリカード１９ａから読み出し、これを読出指令元のタスクに渡す処理を行う。ここで、言及しておくが、本実施例においては、第一実施例と異なり、ＲＡＭ２５ｂに上述の特定領域が設けられていないものとする。
【０１７６】
また、この処理を終えると、制御部２５は、読出対象のデータが、監視対象に設定されているデータであるか否かを判断し（Ｓ８２０）、読出対象のデータが、監視対象に設定されているデータではないと判断すると（Ｓ８２０でＮｏ）、Ｓ８３０〜Ｓ８６０の処理を実行することなく、当該読出制御処理を終了する。
【０１７７】
一方、制御部２５は、読出対象のデータが、監視対象に設定されているデータであると判断すると（Ｓ８２０でＹｅｓ）、Ｓ８３０に移行し、読み出したデータに対応するブロックの読出カウンタＣＮを、１カウントアップする（ＣＮ←ＣＮ＋１）。
【０１７８】
尚、本実施例においては、監視対象のデータが記憶されているメモリカード１９ａの各ブロックに対して、読出カウンタＣＮを割り当てるようにしており、各ブロックの読出カウンタＣＮは、ＮＶＲＡＭ２５ｃに記憶される。この読出カウンタＣＮは、ＮＶＲＡＭ２５ｃからＲＡＭ２５ｂに読み出された後、当該読出制御処理により該当するデータの読出がある度、カウントアップされる。そして、カウントアップ後の値は、定期的に、ＮＶＲＡＭ２５ｃに書き込まれて、ＮＶＲＡＭ２５ｃが記憶する読出カウンタＣＮに反映される。
【０１７９】
Ｓ８３０で、この読出カウンタＣＮを更新（カウントアップ）すると、制御部２５は、Ｓ８４０に移行し、更新後の読出カウンタＣＮ（上記読み出したデータに対応するブロックの読出カウンタＣＮ）が、予め定められた閾値を超えたか否かを判断する（Ｓ８４０）。そして、読出カウンタＣＮが閾値以下であると判断すると（Ｓ８４０でＮｏ）、Ｓ８５０〜Ｓ８６０の処理を実行することなく、当該読出制御処理を終了する。
【０１８０】
一方、制御部２５は、読出カウンタＣＮが閾値を超えたと判断すると（Ｓ８４０でＹｅｓ）、Ｓ８５０に移行して、閾値を超えた上記読出カウンタＣＮに対応するブロック（即ち、Ｓ８１０でメモリカード１９ａから読み出したデータのブロック）を、再書込領域に設定し、図５に示す再書込制御処理を実行する。これにより、メモリカード１９ａ内の上記読出対象のデータをリフレッシュする。そして、再書込制御処理が終了すると、データがリフレッシュされたブロックの読出カウンタＣＮの値をゼロにリセットする（Ｓ８６０）。また、再書込進捗情報をＮＶＲＡＭ２５ｃから消去する。その後、当該読出制御処理を終了する。
【０１８１】
但し、Ｓ８５０で、再書込制御処理が中断された場合、制御部２５は、Ｓ８６０の処理を実行することなく、当該読出制御処理を終了し、その後、ナビゲーション装置１をオフにする。
【０１８２】
この他、読出制御処理で開始したリフレッシュ動作（再書込制御処理）が中断された場合、制御部２５は、次のナビゲーション装置１のオン時に、再起動時処理（Ｓ７５０）にて、中断されたリフレッシュ動作を開始して、該当するブロックのデータをリフレッシュする。
【０１８３】
そして、リフレッシュ動作が完了すると、Ｓ７５７にて、リフレッシュしたブロックの上記読出カウンタＣＮの値を、上述したように、ゼロにリセットする。この他、上述しなかったが、本実施例では、カード管理処理にて開始されたリフレッシュ動作が完了した時点でも、読出カウンタＣＮをゼロにリセットする。具体的には、Ｓ３５０，Ｓ７５７でデータ書込日時を更新する際、監視対象のデータに対応する全読出カウンタＣＮをゼロにリセットする。このようにして、本実施例では、読出カウンタＣＮを管理する。
【０１８４】
以上、第二実施例のナビゲーション装置１について説明したが、本実施例では、メモリカード１９ａ全体が、所定時間経過毎にリフレッシュされると共に、監視対象のデータが、読出回数が閾値を超える度に、リフレッシュされる。
【０１８５】
各ブロックのデータの読出回数にばらつきがある場合には、読出回数が多いブロックのデータが、他のブロックのデータに対して揮発しやすくなるため、メモリカード１９ａが記憶する各ブロックのデータを、所定時間毎にリフレッシュする程度では、読出回数が多いブロックの読出頻度に合わせて、冗長にデータ更新を行わないと、読出回数の多いブロックで、データ揮発が生じる可能性が高くなる。
【０１８６】
本実施例では、このような問題に鑑み、読出回数が多いと推定されるデータを予め監視対象に設定して、監視対象のデータが記憶されたブロックの当該データを、読出回数が閾値を超える度、個別にリフレッシュするようにした。従って、本実施例によれば、読出回数にばらつきがある場合でも、メモリカード１９ａ内のデータを効率的に更新して、データが揮発するのを極力防止することができる。また、冗長にデータ更新することにより、書込回数が増えて、メモリカード１９ａの寿命が縮まるのを抑えることができる。
【０１８７】
ところで、本実施例では、メモリカード１９ａ内のデータ全体を一括管理して、データ書込日時からの経過時間が閾値を超える度、データ全体をリフレッシュするが、ナビゲーション装置１では、１ブロック毎、若しくは、所定数のブロック毎に、データ書込日時及び未更新フラグの情報を、メモリカード１９ａに記録し、１ブロック毎、若しくは、所定数のブロック毎に、データ書込日時からの経過時間が閾値を超える度、閾値を越えたブロックのデータを選択的にリフレッシュするようにしてもよい。
【０１８８】
第二実施例では、読出制御処理により、監視対象のデータについて、個別にリフレッシュするので、カード管理処理にて、メモリカード１９ａ内のデータ全体を一括管理し、データ書込日時からの経過時間が閾値を超える度、データ全体をリフレッシュすると、次のような問題が生じる。即ち、読出制御処理にて再書込制御処理を実行した直後に、カード管理処理にて再書込制御処理が実行されて、監視対象のデータが冗長に更新されるといった問題が生じる。
【０１８９】
カード管理処理では１年等の比較的長い時間間隔でリフレッシュ動作を実行するため、データが冗長に更新されるといっても、たいしたことではないが、上述したように、１ブロック毎、若しくは、所定数のブロック毎に、データ書込日時からの経過時間が、閾値を越えたブロックのデータを、リフレッシュすれば、このような冗長さを改善することができる。
【０１９０】
この他、本実施例では、メモリカード１９ａが記憶するデータの内、一部データのみを監視対象に設定し、上述の処理を実行するようにしたが、監視対象を設定せずに、メモリカード１９ａにおける全ブロックのデータについて、上述の監視対象と同様の処理を実行するようにしてもよい。また、この場合には、カード管理処理によるリフレッシュ動作を実行しないようにしてもよい。
【０１９１】
このように、制御部２５が実行するプログラムを構成すれば、メモリカード１９ａを構成する各ブロックのデータについて、読出回数に応じて、個別にリフレッシュすることができる。
【０１９２】
また、本実施例では、登録地点の情報から、読出回数の多いデータを推定して、監視対象を設定する程度であるため、常に監視対象として、適切なデータを設定できるとは限らない。例えば、地点登録の機能を、利用しないユーザのナビゲーション装置１においては、監視対象の設定を、適切に行えない。
【０１９３】
従って、Ｓ７１０で実行する監視対象設定処理は、図１０（ａ）に示す内容に変更してもよい。図１０（ａ）は、変形例の監視対象設定処理を表すフローチャートである。
ここで、図１０を用いて、変形例の監視対象設定処理について説明すると、この処理を開始した制御部２５は、現在カードスロット部１９に接続されているメモリカード１９ａに対して、監視対象が設定されているか否かを判断し（Ｓ９１０）、監視対象が設定されていると判断すると（Ｓ９１０でＹｅｓ）、Ｓ９２０以降の処理を実行せずに、当該監視対象設定処理を終了する。尚、本変形例において、監視対象は、後述するＳ９３０で設定されるものとする。
【０１９４】
一方、監視対象が未だ設定されていないと判断すると（Ｓ９１０でＮｏ）、制御部２５は、Ｓ９２０に移行し、現在カードスロット部１９に接続されているメモリカード１９ａについて、当該カードスロット部１９への初回接続時から、所定時間が経過したか否かを判断する（Ｓ９２０）。
【０１９５】
そして、所定時間が経過していないと判断すると（Ｓ９２０でＮｏ）、当該監視対象設定処理を終了し、当該監視対象設定処理の終了後には、メモリカード１９ａからデータの読出がある度、読み出されたデータに対応するブロックの読出カウンタＣＮを１カウントアップする処理を実行して、上記初回接続時から所定時間が経過するまで、メモリカード１９ａにおける各ブロックのデータ読出回数をカウントする。
【０１９６】
具体的には、図９に示す読出制御処理に代えて、図１０（ｂ）に示す読出制御処理を実行することにより、読み出されたデータに対応するブロックの読出カウンタＣＮを１カウントアップする動作を実行する。図１０（ｂ）は、制御部２５が実行する変形例の読出制御処理を表すフローチャートである。尚、この読出制御処理においては、Ｓ８２０以降の処理の流れが、図９に示す読出制御処理と同一であるので、図１０（ｂ）では、Ｓ８３０以降の処理について、その図示を省略する。
【０１９７】
図１０（ｂ）に示す読出制御処理を開始すると、制御部２５は、読出指令により指定された読出対象のデータを、メモリカード１９ａから読み出し、これを読出指令元のタスクに渡す処理を行う。その後（Ｓ８１０）、Ｓ８１５に移行し、メモリカード１９ａに対して、監視対象を設定済であるか否かを判断する。
【０１９８】
そして、監視対象が設定済であると判断すると（Ｓ８１５でＹｅｓ）、Ｓ８２０に移行する。一方、監視対象が未設定であると判断すると（Ｓ８１５でＮｏ）、読み出されたデータに対応するブロックの読出カウンタＣＮを１カウントアップする（Ｓ８１７）。その後、当該読出制御処理を終了する。尚、変形例では、メモリカード１９ａを構成する各ブロック毎に、読出カウンタＣＮが割り当てられているものとする。
【０１９９】
このようにして、制御部２５は、メモリカード１９ａの初回接続時から所定時間が経過するまでの期間、メモリカード１９ａを構成する各ブロックのデータの読出回数をカウントする（Ｓ８１７）。
【０２００】
そして、メモリカード１９ａの初回接続時から所定時間が経過した後、初めて、ナビゲーション装置１がオンにされたときに、Ｓ９２０でＹｅｓと判断し、その時点で読出カウンタＣＮの値が大きいものから所定数のブロックのデータを、監視対象のデータに設定する（Ｓ９３０）。その後、この監視対象の設定情報を、ＮＶＲＡＭ２５ｃに保持し、次回以降、ナビゲーション装置１がオンにされた場合には、Ｓ９１０でＹｅｓと判断して、それまでに設定した上記監視対象のデータについて、読出カウンタＣＮの値が閾値を超える度、リフレッシュ動作を実行する。
【０２０１】
以上、変形例について説明したが、この変形例のように、メモリカード１９ａが初回に接続されてから所定時間が経過するまでの期間に、読出回数の多かったデータを、監視対象に設定すれば、ユーザの使用方法に合わせて、好適に、監視対象を設定することができ、一層適切に、データの揮発を防止することができる。
【０２０２】
尚、本発明（請求項８〜１１）における読出回数計測手段としての機能は、本実施例において、制御部２５が実行するＳ８３０の処理にて実現され、更新制御手段としての機能は、Ｓ８２０，Ｓ８４０〜Ｓ８５０の処理にて実現されている。また、監視対象設定手段としての機能は、Ｓ７１０の処理にて実現されている。
【実施例３】
【０２０３】
続いて、第三実施例のカーナビゲーション装置１について説明する。但し、第三実施例のナビゲーション装置１は、上記実施例（第一又は第二実施例）のナビゲーション装置１に対して更に機能を付加した程度ものであるので、ここでは、当該付加機能に係る処理の説明を、選択的に説明するに留める。
【０２０４】
第三実施例のナビゲーション装置１は、カードスロット部１９に温度センサ（図示せず）が内蔵された構成にされており、この温度センサから得られるカードスロット部周辺の温度情報に基づき、制御部２５にて、図１１に示す高温時間推定処理を実行する。
【０２０５】
図１１は、制御部２５が実行する高温時間推定処理を表すフローチャートである。具体的に、制御部２５は、この高温時間推定処理を、起動後処理のＳ２５０又はＳ７６０で、カード管理処理と共に開始する。
【０２０６】
高温時間推定処理を開始すると、制御部２５は、まず、カードスロット部１９に接続されたメモリカード１９ａが初めてカードスロット部１９に接続されたものであるか否かを判断する（Ｓ１０１０）。
【０２０７】
具体的に、ここでは、今回接続されているメモリカード１９ａについての高温時間Ｔｘ及び終了日時の情報（詳細後述）がＮＶＲＡＭ２５ｃに記録されているか否かを判断することにより、カードスロット部１９に接続されたメモリカード１９ａが初めてカードスロット部１９に接続されたものであるか否かを判断する。
【０２０８】
そして、メモリカード１９ａが初めてカードスロット部１９に接続されたものであると判断すると、高温時間Ｔｘ＝０に設定した後（Ｓ１０２０）、Ｓ１０５０に移行する。そして、Ｓ１０５０以降では、所定時間Ｔｓ毎に、温度センサを用いて周辺温度を計測し、この温度情報に基づいて、高温時間Ｔｘを更新する動作を行う。
【０２０９】
具体的に、Ｓ１０５０に移行すると、制御部２５は、前回、周辺温度を計測し、その温度情報を取得した時点から、所定時間Ｔｓが経過したか否かを判断する。但し、ナビゲーション装置１がオンにされた直後のＳ１０５０では、形式的に所定時間Ｔｓが経過したと判断する。
【０２１０】
そして、所定時間Ｔｓが経過したと判断すると（Ｓ１０５０でＹｅｓ）、温度センサを用いて周辺温度を計測し、温度センサから温度情報を取得する（Ｓ１０６０）。また、この処理を終えると、得られた情報に基づき、カードスロット部１９の周辺温度が、閾値以上であるか否かを判断する（Ｓ１０７０）。尚、閾値は、メモリカード１９ａのリテンション低下が無視できない温度（例えば、摂氏８０度等）に、予め設計段階で定められるものとする。
【０２１１】
そして、周辺温度が閾値未満であると判断すると（Ｓ１０７０でＮｏ）、制御部２５は、Ｓ１０５０に移行し、周辺温度が閾値以上であると判断すると（Ｓ１０７０でＹｅｓ）、Ｓ１０７５に移行する。また、Ｓ１０７５では、現在設定されている高温時間Ｔｘに、上記時間Ｔｓを加算して、高温時間Ｔｘを更新する（Ｔｘ←Ｔｘ＋Ｔｓ）。
【０２１２】
また、Ｓ１０７５での処理を終えると、制御部２５は、現在の高温時間Ｔｘが、予め定められた閾値を超えているか否かを判断し（Ｓ１０８０）、高温時間Ｔｘが閾値以下であると判断すると（Ｓ１０８０でＮｏ）、Ｓ１０５０に移行し、高温時間Ｔｘが閾値を越えていると判断すると（Ｓ１０８０でＹｅｓ）、Ｓ１０８３に移行する。そして、Ｓ１０８３では、メモリカード１９ａの全ブロックを、再書込領域に設定して、図５に示す再書込制御処理を実行する。これにより、メモリカード１９ａ内のデータ全体をリフレッシュする。
【０２１３】
そして、全ブロックの再書込処理が終了することで再書込制御処理が終了すると、制御部２５は、Ｓ１０８５でＮｏと判断して、メモリカード１９ａが記憶するデータ書込日時を、現在日時に更新すると共に（Ｓ１０８７）、未更新フラグをリセット状態にする。また、再書込進捗情報を消去し、更に、高温時間Ｔｘをゼロにリセットする（Ｓ１０８９）。その後、Ｓ１０５０に移行する。
【０２１４】
一方、Ｓ１０８３で再書込制御処理が中断された場合、制御部２５は、Ｓ１０８５でＹｅｓと判断して、当該高温時間推定処理を終了し、ナビゲーション装置１をオフにする。そして、次回、ナビゲーション装置１がオンにされたときに、再起動時処理にて、中断されたリフレッシュ動作を再開する。そして、リフレッシュ動作が終了した時点で、データ書込日時を更新し、未更新フラグをリセットし、高温時間Ｔｘをゼロにリセットすると共に、再書込進捗情報を消去する（Ｓ２４７，Ｓ７５７）。尚、本実施例においては、Ｓ２４７，Ｓ３５０，Ｓ７５７等で、メモリカード１９ａのデータ書込日時を更新する際には、このメモリカード１９ａの高温時間Ｔｘを、必ず、Ｔｘ＝０にリセットするものとする。
【０２１５】
また、Ｓ１０５０で所定時間Ｔｓが経過していないと判断すると、制御部２５は、Ｓ１０９０に移行し、ＡＣＣスイッチがオフにされることにより、ナビゲーション装置１に対してオフ操作がなされたか否かを判断し、ナビゲーション装置１に対してオフ操作がなされていないと判断すると（Ｓ１０９０でＮｏ）、カードスロット部１９からメモリカード１９ａが抜かれたか否かを判断する（Ｓ１０９３）。そして、カードスロット部１９からメモリカード１９ａが抜かれていなければ（Ｓ１０９３でＮｏ）、Ｓ１０５０に移行する。
【０２１６】
一方、カードスロット部１９からメモリカード１９ａが抜かれたと判断すると（Ｓ１０９３でＹｅｓ）、制御部２５は、Ｓ１０９０に移行し、オフ操作がなされるか、カードスロット部１９に同一のメモリカード１９ａが接続されるまで待機し、カードスロット部１９に同一のメモリカード１９ａが接続されると（Ｓ１０９３でＮｏ）、Ｓ１０５０に移行し、オフ操作がなされた場合には（Ｓ１０９０でＹｅｓ）、Ｓ１０９５に移行する。
【０２１７】
また、Ｓ１０９５に移行すると、制御部２５は、ＮＶＲＡＭ２５ｃに、今回接続されたメモリカード１９ａについての現時点での高温時間Ｔｘの情報を記録すると共に、現在日時を、当該高温時間推定処理の終了日時の情報として、ＮＶＲＡＭ２５ｃに記録する。その後、当該高温時間推定処理を終了する。
【０２１８】
この他、Ｓ１０１０でメモリカード１９ａが初めてカードスロット部１９に接続されたものではないと判断すると（Ｓ１０１０でＮｏ）、制御部２５は、前回のナビゲーション装置１のオフ時に、ＮＶＲＡＭ２５ｃに書き込まれた当該メモリカード１９ａについての高温時間Ｔｘ及び終了日時の情報を、ＮＶＲＡＭ２５ｃから読み出し（Ｓ１０３０）、この読み出した高温時間Ｔｘ及び終了日時の情報と、メモリカード１９ａに記憶されている高温推定期間データとに基づき、改めて高温時間Ｔｘを設定する（Ｓ１０４０）。
【０２１９】
尚、高温推定期間データとは、車内温度がＳ１０７０で用いられる閾値と同程度の温度であると推定される期間（即ち、高温推定期間）を表すデータである。ここでは、例えば、７月〜９月の７時〜１９時までが高温推定期間として定義されているものとする。
【０２２０】
詳述すると、Ｓ１０４０では、高温推定期間データにおいて定義された高温推定期間が、上記読み出した情報が示す終了日時から現在日時までの期間内に存在する場合、上記読み出した情報が示す終了日時から現在日時までの期間内に存在する高温推定期間の合計時間Ｔｍを算出して、これをＮＶＲＡＭ２５ｃから読み出した高温時間Ｔｘに加算し、その加算値を、高温時間Ｔｘに設定する（Ｔｘ←Ｔｘ＋Ｔｍ）。
【０２２１】
終了日時が７月１０日の２０時で、現在日時が７月１３日の８時である場合は、７月１１日の７時〜１９時、７月１２日の７時〜１９時、７月１３日の７時〜８時が高温推定期間に該当するので、Ｔｍ＝２５時間と算出して、高温時間Ｔｘを設定する。
【０２２２】
また、このようにして、Ｓ１０４０での処理を終えると、制御部２５は、Ｓ１０４０で設定した高温時間Ｔｘを起点にして、上述したようにＳ１０５０以降の処理を実行し、高温時間Ｔｘを更新する。そして、高温時間Ｔｘが閾値を越えた時点で（Ｓ１０８０でＹｅｓ）、メモリカード１９ａの全ブロックを、再書込領域に設定して、図５に示す再書込制御処理を実行する（Ｓ１０８３）。これにより、メモリカード１９ａ内のデータ全体をリフレッシュする。
【０２２３】
尚、本実施例では、カード管理処理及び高温時間推定処理が並列実行され、夫々が個別のタイミングで、メモリカード１９ａのリフレッシュ動作を開始する。このため、カード管理処理及び高温時間推定処理では、既にリフレッシュ動作が他の処理にて開始されている場合、再書込制御処理を実行しないようにして、カード管理処理及び高温時間推定処理で同時にリフレッシュ動作が開始されるのを回避する。
【０２２４】
例えば、高温時間推定処理でリフレッシュ動作（再書込制御処理）が開始されている場合、カード管理処理では、形式的にＳ３２５及びＳ３３０でＮｏと判断して、再書込制御処理を実行しないようにする。また、カード管理処理でリフレッシュ動作が開始されている場合、高温時間推定処理では、形式的にＳ１０８０でＮｏと判断して、再書込制御処理を実行しないようにする。
【０２２５】
以上、第三実施例のナビゲーション装置１について説明したが、本実施例では、メモリカード１９ａが高温環境下におかれた時間を、上記高温時間Ｔｘとして推定し、この時間Ｔｘが閾値を超える度、メモリカード１９ａのリフレッシュ動作を開始する。特に、本実施例では、ナビゲーション装置１がオフのときにメモリカード１９ａが高温に晒されていた時間を、高温推定期間データに基づいて推定する。
【０２２６】
従って、本実施例によれば、高温によるリテンション低下に合わせて、適切なタイミングで、メモリカード１９ａ内のデータを更新することができ、メモリカード１９ａが高温環境下に晒されることにより、データが揮発してしまうのを防止することができる。
【０２２７】
尚、本発明（請求項６，７）における更新制御手段としての機能は、Ｓ１０８０の処理にて実現され、データ更新手段としての機能は、制御部２５がＳ１０８３で実行する再書込制御処理及びＳ１０８７の処理等にて実現されている。また、高温時間推定手段としての機能は、Ｓ１０２０，Ｓ１０４０，Ｓ１０７５，Ｓ１０８９等の処理により実現されている。
【実施例４】
【０２２８】
続いて、第四実施例のカーナビゲーション装置１について説明する。但し、第四実施例のナビゲーション装置１は、上記実施例（第一〜第三実施例のいずれか）のナビゲーション装置１に対して更に機能を付加した程度ものであるので、ここでは、当該付加機能に係る説明を、選択的に説明するに留める。
【０２２９】
まず前提として、本実施例では、重要なデータを予め設計段階で定め、この重要データを、メモリカード１９ａに、二重に書き込む。即ち、メモリカード１９ａには、出荷前のデータ書込み時に、重要データについて、同一のデータを、複数書き込む。ここでは、例えば、プログラムや地図管理データ等を、重要データに定めることができる。
【０２３０】
また、制御部２５が、上記メモリカード１９ａが接続されると、その後、図１２に示す処理を周期的に繰返し実行するように、プログラムを設計し、これをメモリカード１９ａ又はＲＯＭに記録する。このようにして、本実施例では、重要データの一つに異常が生じても、異常が生じていない同一のデータに基づき、異常が生じたデータを修復できるようにする。
【０２３１】
図１２は、第四実施例のナビゲーション装置１において、制御部２５が、カードスロット部１９にメモリカード１９ａが接続されている期間、周期的に繰返し実行するデータ監視修復処理を表すフローチャートである。
【０２３２】
このデータ監視修復処理を開始すると、制御部２５は、重要データが記憶されたブロックの一つを、検査対象ブロックに設定し（Ｓ１１１０）、検査対象ブロックが記憶するデータを、メモリカード１９ａから読み出す（Ｓ１１２０）、また、データ書込み時に、検査対象ブロックと同一のデータが書き込まれたブロックのデータを、メモリカード１９ａから読み出す（Ｓ１１３０）。尚、以下では、Ｓ１１２０で読み出したデータをメインデータ、Ｓ１１３０で読み出したデータをサブデータと称する。
【０２３３】
また、Ｓ１１３０での処理を終えると、制御部２５は、上記メモリカード１９ａから読み出したメインデータ及びサブデータが、両方とも、揮発していない正常なデータであるか否かを判断する（Ｓ１１４０）。尚、読み出したデータが正常なデータであるか否かは、例えば、チェックサム等の周知技術を用いて判定することができる。
【０２３４】
そして、読み出したメインデータ及びサブデータが両方とも正常なデータであると判断すると（Ｓ１１４０でＹｅｓ）、Ｓ１１８０に移行する。
一方、読み出したメインデータ及びサブデータの少なくとも一方が正常なデータではないと判断した場合であって（Ｓ１１４０でＮｏ）、サブデータが正常なデータではなく、メインデータが正常なデータであると判断した場合には（Ｓ１１５０でＹｅｓ）、メモリカード１９ａにおいてサブデータが記憶されているブロックのデータを、読み出したメインデータで書き換えて、サブデータが記憶されているブロックのデータを正常値に修復する（Ｓ１１５５）。その後、Ｓ１１８０に移行する。
【０２３５】
この他、読み出したメインデータ及びサブデータの少なくとも一方が正常なデータではないと判断した場合であって（Ｓ１１４０でＮｏ）、メインデータが正常なデータではなくサブデータが正常なデータであると判断した場合（Ｓ１１５０でＮｏ、Ｓ１１６０でＹｅｓ）、制御部２５は、メモリカード１９ａにおいてメインデータが記憶されている検査対象ブロックのデータを、読み出したサブデータで書き換えて、検査対象ブロックのデータを正常値に修復する（Ｓ１１６５）。その後、Ｓ１１８０に移行する。
【０２３６】
この他、メインデータ及びサブデータの両者が正常なデータではないと判断すると（Ｓ１１６０でＮｏ）、表示部２１に、メモリカード１９ａに異常がある旨のメッセージを表示することで、異常をユーザに向けて報知する（Ｓ１１７０）。その後、Ｓ１１８０に移行する。
【０２３７】
また、Ｓ１１８０に移行すると、制御部２５は、重要データが記憶されたブロックを一通り、検査対象ブロックに設定したか否かを判断し、一通り検査対象ブロックに設定していない場合には、Ｓ１１１０に移行して、検査対象ブロックに設定していないブロックの一つを、検査対象ブロックに設定する。その後、Ｓ１１２０以降の処理を実行する。但し、データ監視修復処理では、同一の重要データが記憶された１対のブロックの内の一方のみを、検査対象ブロックに設定するものとする。
【０２３８】
そして、重要データが記憶されたブロックを一通り、検査対象ブロックに設定したと判断すると（Ｓ１１８０）、当該データ監視修復処理を終了する。このような内容のデータ管理修復処理を、制御部２５は、周期的に繰返し実行する。
【０２３９】
以上、第四実施例のナビゲーション装置１について説明したが、本実施例によれば、重要データを、メモリカード１９ａに二重持ちしているので、データ揮発等を原因として、重要データの一方に、異常が生じた場合でも、当該異常を解消することができる。従って、本実施例によれば、データ揮発に強い耐久性に優れたナビゲーション装置１を、ユーザに対して提供することができる。
【０２４０】
尚、本発明（請求項１４）におけるデータ修復手段としての機能は、本実施例において、制御部２５が実行するデータ監視修復処理にて実現されている。
【実施例５】
【０２４１】
続いて、第五実施例について、図１３〜図１７を用いて説明する。
但し、第五実施例のナビゲーション装置１のハードウェア構成は、第一実施例のナビゲーション装置１と同一であるので、ここでは、同一構成の説明を適宜省略し、主として、制御部２５がソフトウェア的に実現する処理の内容について、第一実施例と異なる部分を選択的に説明する。
【０２４２】
まず初めに、第五実施例の概要を説明する。第一実施例においては、ナビゲーション装置１の突然のシャットダウン等に備えるために、再書込制御処理において、処理対象ブロックのデータを、ＮＶＲＡＭ２５ｃにバックアップするようにしたが、バックアップするためには、ＮＶＲＡＭ２５ｃに、そのための領域を確保しておく必要がある。
【０２４３】
周知のように、フラッシュメモリにおいて、既にデータが書き込まれたブロックに対し、上書きするように新規データを書き込む場合には、そのブロック全体を一旦消去した後、新規データを書き込む必要があり、単純に、新規データを上書きすることはできない。従って、処理対象ブロックのデータをメモリカード１９ａへ再書込する際（例えば、Ｓ４４０の実行時）には、最初に、処理対象ブロック内のデータを消去することになる。
【０２４４】
従って、この時点から、処理対象ブロックへの再書込が完了するまでの間（Ｓ４７０でＹｅｓと判断されるまでの間）に、突然のシャットダウンが生じると、その処理対象ブロックにおいては、一部データが消去されたままの状態になる。
【０２４５】
このような理由から、第一実施例では、再書込制御処理において、処理対象ブロックのデータを、ＮＶＲＡＭ２５ｃにバックアップしているのだが、このようにバックアップする場合には、バックアップ用の領域を確保するために容量が大きめのＮＶＲＡＭ２５ｃを、制御部２５に用意しなければならないといった欠点がある。即ち、この手法では、製品（ナビゲーション装置１）の製造コストが高くなる。
【０２４６】
そこで、第五実施例では、処理対象ブロックのデータを、ＮＶＲＡＭ２５ｃにバックアップしない代わりに、ナビゲーション装置１が突然シャットダウンする可能性が高い環境では、処理対象ブロックのデータをメモリカード１９ａへ再書込する処理を実行しないように、ナビゲーション装置１を構成している。
【０２４７】
図１３（ａ）に示すように、本実施例のナビゲーション装置１は、第一実施例のナビゲーション装置１と同様、アクセサリ（ＡＣＣ）スイッチのオン／オフに連動して電力供給されるアクセサリ電源とバッテリが接続されている間には常時電力供給される常時電源とに接続されており、アクセサリスイッチがオンされると起動し、アクセサリスイッチがオフにされると、常時電源により、Ｓ５２０〜Ｓ５５０等の終了処理を実行する。
【０２４８】
しかしながら、周知のようにエンジン始動時には、セルモータの回転等を原因として、図１３（ｂ）に示すように、電圧降下が生じ、正常に終了処理を実行できないまま、ナビゲーション装置１が突然シャットダウンしてしまう可能性がある。
【０２４９】
そして、この場合には、処理対象ブロックの再書込処理が完了しないまま、ナビゲーション装置１が停止し、メモリカード１９ａにおいてデータが消失してしまうことになる。また、この問題は、電圧降下以外にも、ユーザによってバッテリそのものが車両から外された場合にも生じる。
【０２５０】
尚、図１３（ａ）は、ナビゲーション装置１に対する電源の接続態様を表す説明図であり、図１３（ｂ）は、アクセサリ電源及び常時電源の電圧変化の態様、並びに、ナビゲーション装置１のオン／オフ変化の態様を表したタイムチャートである。
【０２５１】
但し、突然のシャットダウンは、主に、クランキング時（セルモータの回転時）やバッテリの取り外し時に生じ、これらが生じるのは、いずれも車両の停止時である。
換言すると、車両が高速走行している場合には、既にエンジンが始動しているので、クランキングによる電圧降下は生じえない。また、車両が高速走行している場合には、ユーザが車両のボンネットを開けてバッテリを取り外すことも、常識的にありえない。
【０２５２】
そこで、本実施例では、車両が低速走行中には、処理対象ブロックのデータをメモリカード１９ａへ再書込する処理を実行しないようにし、車両が高速走行中のときに限って、処理対象ブロックのデータをメモリカード１９ａへ再書込する処理を実行するようにしている。
【０２５３】
具体的に、制御部２５は、図５に示す再書込制御処理に代えて、図１４に示す再書込制御処理を実行することにより、上述の機能を実現する。図１４は、第五実施例において、制御部２５が実行する再書込制御処理を表すフローチャートである。
【０２５４】
尚、第五実施例の制御部２５は、第一実施例と同様にして、図２に示す読出制御処理、図３に示す起動処理、及び、図４に示すカード管理処理を実行すると共に、カード管理処理のＳ３４０にて、図１４に示す再書込制御処理を実行する。
【０２５５】
この再書込制御処理を開始すると、制御部２５は、第一実施例と同様にＳ４１０の処理を実行した後、Ｓ４１５に移行し、図１５（ａ）に示す再書込安全判定処理を実行する。図１５（ａ）は、制御部２５が実行する再書込安全判定処理を表すフローチャートである。
【０２５６】
Ｓ４１５において再書込安全判定処理を開始すると、制御部２５は、まず、再書込許可フラグがセットされているか否かを判断する（Ｓ１２１０）。尚、再書込許可フラグは、セットされた状態で再書込を許可することを意味するフラグであり、ナビゲーション装置１の起動時に、リセットされる。即ち、ナビゲーション装置１の起動後、初回の再書込制御処理では、Ｓ１２１０において、再書込許可フラグがリセットされていると判断する。
【０２５７】
制御部２５は、再書込許可フラグがリセットされていると判断すると（Ｓ１２１０でＮｏ）、Ｓ１２２０に移行し、自車両の現在の走行速度を特定する。例えば、位置検出器１１（距離センサ１１ｃ）の検出信号から自車両の走行速度を求める。
【０２５８】
その後、Ｓ１２２５に移行し、自車両の現在の走行速度が、予め定められた第一閾値ＶＨを超えているか否かを判断する。第一閾値ＶＨとしては、例えば、時速２０ｋｍを設定することができる。
【０２５９】
そして、自車両の現在の走行速度が第一閾値ＶＨ以下であると判断すると（Ｓ１２２５でＮｏ）、所定時間待機（例えば、０．１秒待機）した後（Ｓ１２３０）、Ｓ１２２０に移行する。
【０２６０】
一方、自車両の現在の走行速度が第一閾値ＶＨを超えていると判断すると（Ｓ１２２５でＹｅｓ）、再書込許可フラグをセットした後（Ｓ１２４０）、当該再書込安全判定処理を終了し、Ｓ４２０に移行する。
【０２６１】
即ち、自車両の走行速度が第一閾値ＶＨ以下であるときには、Ｓ１２２０〜Ｓ１２３０を繰返し実行してＳ４２０に移行しないようにすることで、再書込処理の実行を禁止し、自車両の現在の走行速度が第一閾値ＶＨを超えている場合には、Ｓ４２０へ移行することで、再書込処理の実行を許可する。
【０２６２】
これに対し、Ｓ１２１０で再書込許可フラグがセットされていると判断すると（Ｓ１２１０でＹｅｓ）、制御部２５は、Ｓ１２５０に移行し、Ｓ１２２０での処理と同様にして、自車両の現在の走行速度を特定した後、自車両の現在の走行速度が、予め定められた第二閾値ＶＬ未満であるか否かを判断する（Ｓ１２５５）。尚、第二閾値ＶＬは、第一閾値ＶＨよりも小さい値に設定される（第二閾値ＶＬ＜第一閾値ＶＨ）。第二閾値ＶＬとしては、例えば、時速１０ｋｍを設定することができる。
【０２６３】
ここで、自車両の現在の走行速度が第二閾値ＶＬ以上であると判断すると（Ｓ１２５５でＮｏ）、制御部２５は、再書込許可フラグをセットしたまま、当該再書込安全判定処理を終了して、Ｓ４２０に移行する。
【０２６４】
一方、自車両の現在の走行速度が第二閾値ＶＬ未満であると判断すると（Ｓ１２５５でＹｅｓ）、Ｓ１２６０に移行して、再書込許可フラグをリセットする。その後、所定時間待機して（Ｓ１２７０）、Ｓ１２２０に移行する。
【０２６５】
即ち、本実施例では、図１５（ｂ）に示すように、自車両の走行速度が第一閾値ＶＨを超えた場合には、その後、走行速度が第二閾値ＶＬ未満となるまで、再書込処理の実行を許可し、自車両の走行速度が第二閾値ＶＬ未満となった場合には、自車両の走行速度が第一閾値ＶＨを超えるまで、再書込処理の実行を禁止する。
【０２６６】
また、Ｓ４２０に移行すると、制御部２５は、処理対象ブロックに記憶されたデータを、メモリカード１９ａから読み出し、読み出したデータを、ＲＡＭ２５ｂに一時記憶する。
【０２６７】
また、この処理を終えると、制御部２５は、第一実施例とは異なり、処理対象ブロックのデータを、ＮＶＲＡＭ２５ｃにバックアップ保存せずに、Ｓ４４０に移行し、ＲＡＭ２５ｂに読み出した上記処理対象ブロックのデータを、ＲＡＭ２５ｂからメモリカード１９ａに再書込する処理（再書込処理）を開始して（Ｓ４４０）、メモリカード１９ａが記憶する処理対象ブロックのデータをリフレッシュする。
【０２６８】
そして、制御部２５は、この再書込処理を開始した後、当該再書込処理が完了するまでの期間、エラー検出処理を並行して実行する（Ｓ４５０）。但し、本実施例では、図６に示すエラー検出処理に代えて、図１６に示すエラー検出処理を実行する。図１６は、第五実施例において、制御部２５が実行するエラー検出処理を表すフローチャートである。
【０２６９】
図１６に示すエラー検出処理を開始すると、制御部２５は、第一実施例と同様にして、ナビゲーション装置１に対しオフ操作がなされたか否かを判断し（Ｓ５１０）、ナビゲーション装置１に対してオフ操作がなされたと判断すると（Ｓ５１０でＹｅｓ）、Ｓ５２０に移行する。
【０２７０】
そして、Ｓ５２０では、現在再書込処理中の処理対象ブロックについての当該再書込処理が全て終了するまで待機し、再書込処理が全て終了すると（Ｓ５２０でＹｅｓ）、ＮＶＲＡＭ２５ｃに再書込進捗情報を書き込む（Ｓ５４５）。具体的に、Ｓ５４５では、再書込制御処理の実行時に設定された再書込領域の情報及び再書込処理が完了したブロックの情報を記録する。また、Ｓ５４５での処理を終えると、制御部２５は、「中断要」と判定して（Ｓ５５０）、当該エラー検出処理を終了する。
【０２７１】
一方、ナビゲーション装置１に対しオフ操作がなされていないと判断すると、制御部２５は、Ｓ５２０〜Ｓ５５０の処理を実行することなく、当該エラー検出処理を終了する。尚、本実施例では、再書込処理を実行する際に、データのバックアップをとらないため、再書込処理時にカードスロット部１９からメモリカード１９ａが抜かれると都合がわるい。
【０２７２】
このため、本実施例では、正規の手続きを経ない限りは、カードスロット部１９からメモリカード１９ａを抜くことができないような機構をカードスロット部１９に設けて、ユーザからの指令を受け付けたときに限って、ナビゲーション装置１がカードスロット部１９からメモリカード１９を吐き出すようにし、再書込制御処理の実行時には、ユーザからの指令を受け付けないようにしている。
【０２７３】
また、このようにしてＳ４５０でのエラー検出処理を終了すると、その後には、第一実施例と同様に、エラー検出処理で「中断要」判定がなされたか否かを判断する（Ｓ４６０）。そして、「中断要」判定がなされたと判断すると（Ｓ４６０でＹｅｓ）、Ｓ４７０以降の処理を実行せずに当該再書込制御処理を中断する。
【０２７４】
一方、エラー検出処理で「中断要」判定がなされていないと判断すると（Ｓ４６０でＮｏ）、処理対象ブロックについての再書込処理が完了したか否かを判断し（Ｓ４７０）、処理対象ブロックについての再書込処理が完了していないと判断すると（Ｓ４７０でＮｏ）、Ｓ４５０に移行する。
【０２７５】
また、処理対象ブロックについて再書込処理が完了すると（Ｓ４７０でＹｅｓ）、Ｓ４９０に移行して、第一実施例と同様の判断を行い、再書込領域内の全てのブロックについて、再書込処理が終了していないと判断すると（Ｓ４９０でＮｏ）、処理対象ブロックを、次ブロックに設定変更し（Ｓ４９５）、Ｓ４１５に移行する。
【０２７６】
このようにして、制御部２５は、ブロック毎に、再書込安全判定処理を実行し、車両が高速走行しているときに限って、再書込処理を実行する。そして、再書込領域内の全てのブロックについて、再書込処理が終了すると（Ｓ４９０でＹｅｓ）、当該再書込制御処理を終了する。
【０２７７】
また、再書込制御処理及びエラー検出処理が上述したように第一実施例と異なる関係上、第五実施例において、起動後処理のＳ２４０では、Ｓ６３０，Ｓ６３３，Ｓ６３７，Ｓ６４０，Ｓ６６０，Ｓ６８５の手順を抜かした図１７に示す手順で再起動時処理を実行する。即ち、Ｓ６２０でＹｅｓと判断した場合には、Ｓ６３０，Ｓ６４０の処理を実行せずに、Ｓ６４５に移行し、Ｓ６５５の実行後には、Ｓ６６０の処理を実行せずに、Ｓ６６５に移行し、Ｓ６８０でＹｅｓと判断した場合には、Ｓ６８５の処理を実行せずに、Ｓ６９０に移行する。
【０２７８】
以上、第五実施例のナビゲーション装置１について説明したが、本実施例のナビゲーション装置１によれば、車両の走行速度が閾値ＶＬ未満であるときには再書込処理の実行を禁止するようにしたので、再書込処理を実行するに当たって、ＮＶＲＡＭ２３ｃに、リフレッシュ対象のデータをバックアップしなくとも、再書込処理に失敗して、メモリカード１９ａ内のデータが消失してしまう可能性を極力小さくすることができ、安価にナビゲーション装置１を構成することができる。
【０２７９】
尚、本発明の車両情報取得手段は、本実施例において、Ｓ１２２０，Ｓ１２５０の処理により実現され、禁止手段は、Ｓ１２２０，Ｓ１２５０を除く再書込安全判定処理の各ステップにより実現されている。
【実施例６】
【０２８０】
続いて、第六実施例のカーナビゲーション装置１について説明する。但し、第六実施例のナビゲーション装置１のハードウェア構成は、第一実施例を含む上述の各実施例のナビゲーション装置１と同一であるので、ここでは、ハードウェア構成の説明を省略し、制御部２５がソフトウェア的に実現する処理の内容についてのみ選択的に説明する。
【０２８１】
尚、本実施例は、上述の各実施例に対して、メモリカード１９ａに対するリフレッシュ動作の実行条件が異なる程度のものである。つまり、第六実施例の制御部２５が実行する処理については、再書込制御処理の実行条件が異なることに伴う手順の違いを除けば、基本的に、上述した各実施例と同様に構成できる。例えば、再書込制御処理では、第一実施例と同様に、処理対象ブロックのデータをＮＶＲＡＭ２５ｃへバックアップ（Ｓ４３０）すればよい。その他、Ｓ４４０で行う再書込処理の内容も同じである。従って、以下では、特に、上記実行条件が異なることに伴う手順の違いについてを説明する。
【０２８２】
図１８は、制御部２５が、図３に示す起動後処理に代えて実行する第六実施例の起動後処理を表すフローチャートである。
制御部２５は、この起動後処理を開始すると、まず、カードスロット部１９に接続されているメモリカード１９ａがカードスロット部１９に初めて接続されたものであるか否かを判断する（Ｓ１３１０）。尚、本実施例では、Ｓ１３３０にて、初めて接続されたメモリカード１９ａに、通算走行距離Ｄｓ及び未更新フラグの情報を記録する。従って、Ｓ１３１０では、メモリカード１９ａに通算走行距離Ｄｓ及び未更新フラグの情報が記録されているか否かを判断することにより、接続されたメモリカード１９ａがカードスロット部１９に初めて接続されたものであるか否かを判断する。
【０２８３】
そして、初めて接続されたメモリカード１９ａであると判断すると（Ｓ１３１０でＹｅｓ）、制御部２５は、メモリカード１９ａの所定領域に、通算走行距離Ｄｓ及び未更新フラグの情報を記録する（Ｓ１３３０）。但し、この際には、通算走行距離Ｄｓとして値「０」を書き込むことにより、通算走行距離Ｄｓを値「０」に設定し、未更新フラグの情報として、値「１」を記録することにより、未更新フラグをセット状態にする。
【０２８４】
更に、バックアップ距離Ｄｂとして値「０」をＲＡＭ２５ｂに書き込むことにより、ＲＡＭ２５ｂが記憶するバックアップ距離Ｄｂを値「０」に設定する（Ｓ１３３５）。尚、バックアップ距離Ｄｂは、ナビゲーション装置１のオン／オフに拘わらず、ＲＡＭ２５ｂに記憶保持される。
【０２８５】
また、Ｓ１３３５での処理を終えると、制御部２５は、図１９に示すカード管理処理の実行を開始し（Ｓ１３５０）、その後、当該起動後処理を終了する。尚、Ｓ１３５０でカード管理処理の実行を開始した後には、ナビゲーション装置１の終了時まで、繰返しカード管理処理を実行する。
【０２８６】
一方、カードスロット部１９に接続されたメモリカード１９ａが初めて接続されたメモリカード１９ａではないと判断すると（Ｓ１３１０でＮｏ）、制御部２５は、Ｓ１３４０に移行して、図７に示す再起動時処理を実行する。
【０２８７】
また、この再起動時処理を終えると、制御部２５は、直前の再起動時処理にてメモリカード１９ａに対するリフレッシュ動作が完了したか否か（具体的には、Ｓ６９０又はＳ６４５でＹｅｓと判断して再起動時処理が終了したか否か）を判断し（Ｓ１３４３）、リフレッシュ動作が完了したと判断すると（Ｓ１３４３でＹｅｓ）、メモリカード１９ａの所定領域に記憶されている通算走行距離Ｄｓを値「０」に更新すると共に、未更新フラグをリセット状態にする。更に、ＲＡＭ２５ｂが記憶するバックアップ距離を値「０」に更新する（Ｓ１３４７）。その後、Ｓ１３５０に移行して、図１９に示すカード管理処理の実行を開始し、当該起動後処理を終了する。
【０２８８】
一方、再起動時処理にて、メモリカード１９ａに対するリフレッシュ動作が完了していない場合（即ち、Ｓ６１０でＮｏと判断するか、Ｓ６２５又はＳ６７５でＹｅｓと判断して、再起動時処理が終了している場合）には（Ｓ１３４３でＮｏ）、Ｓ１３４７の処理を実行することなく、Ｓ１３５０に移行する。そして、図１９に示すカード管理処理の実行を開始し（Ｓ１３５０）、当該起動後処理を終了する。但し、Ｓ６２５又はＳ６７５でＹｅｓと判断した場合には、Ｓ１３５０の処理を実行することなく、当該起動後処理を終了し、ナビゲーション装置１をオフにする。
【０２８９】
続いて、制御部２５が、Ｓ１３５０で実行を開始するカード管理処理について説明する。図１９は、制御部２５が実行するカード管理処理を表すフローチャートである。
カード管理処理を開始すると、制御部２５は、まず、Ｓ１４１１で、Ｓ１４１１の前回実行時点からの自車両の走行距離Ｄｎを特定する。但し、ナビゲーション装置１の起動後において、Ｓ１４１１の初回実行時には、ナビゲーション装置１の起動時からの自車両の走行距離Ｄｎを特定する。
【０２９０】
例えば、ナビゲーション装置１の起動時に、当該起動時からの走行距離を位置検出器１１の検出信号に基づいて計測するタスクを起動し、Ｓ１４１１では、Ｓ１４１１の前回実行時点で上記タスクにより計測された走行距離と、今回の走行距離との差分を求めることにより、走行距離Ｄｎを特定する。
【０２９１】
Ｓ１４１１での処理を終えると、制御部２５は、Ｓ１４１３に移行し、ＲＡＭ２５ｂが記憶するバックアップ距離Ｄｂを、現在値にＳ１４１１で特定した走行距離Ｄｎを加算した値（Ｄｂ＋Ｄｎ）に更新する（Ｄｂ←Ｄｂ＋Ｄｎ）。そして、更新後のバックアップ距離Ｄｂが、予め設計段階で定められた規定値Ｄ０（例えば、１００ｋｍ）を超えているか否かを判断する（Ｓ１４１５）。
【０２９２】
Ｓ１４１５において、バックアップ距離が規定値Ｄ０以下であると判断すると（Ｓ１４１５でＮｏ）、制御部２５は、Ｓ１４１１に移行し、バックアップ距離が規定値Ｄ０を超えるまで繰返し、バックアップ距離Ｄｂを更新する処理を行う（Ｓ１４１１〜Ｓ１４１５）。
【０２９３】
そして、バックアップ距離が規定値Ｄ０を超えると（Ｓ１４１５でＹｅｓ）、制御部２５は、Ｓ１４１７に移行し、カードスロット部１９に接続されたメモリカード１９ａにアクセスして、メモリカード１９ａが記憶する通算走行距離Ｄｓを、上記規定値Ｄ０を加算した値（Ｄｓ＋Ｄ０）に更新する（Ｄｓ←Ｄｓ＋Ｄ０）。
【０２９４】
また、Ｓ１４１７での処理を終えると、制御部２５は、Ｓ１４１９に移行し、ＲＡＭ２５ｂが記憶するバックアップ距離Ｄｂを、現在値から規定値Ｄ０を減算した値に更新する（Ｄｂ←Ｄｂ−Ｄ０）。
【０２９５】
尚、本実施例において、通算走行距離Ｄｓの更新を、規定値Ｄ０毎としているのは、メモリカード１９ａへのアクセス数（データ書込回数）を減らすためである。上述したように、メモリカード１９ａへのアクセス数が増えると、リテンションが低下するため、本実施例では、このようにして、通算走行距離Ｄｓの更新によるリテンションの低下を抑えている。
【０２９６】
また、Ｓ１４１９の処理後には、メモリカード１９ａが記憶する上記未更新フラグを参照し、未更新フラグがリセット状態にあるか否かを判断する（Ｓ１４２０）。そして、未更新フラグがリセット状態にあると判断すると（Ｓ１４２０でＹｅｓ）、Ｓ１４３０に移行する。
【０２９７】
そして、Ｓ１４３０では、Ｓ１４１７での更新後の通算走行距離Ｄｓが閾値Ｄ１を超えているか否かを判断し、更新後の通算走行距離Ｄｓが閾値Ｄ１を超えていないと判断した場合には（Ｓ１４３０でＮｏ）、Ｓ１４１１に移行する。このようにして、制御部２５は、未更新フラグがリセット状態にある場合、通算走行距離Ｄｓが閾値Ｄ１を超えるまで、上述した手順で、バックアップ距離Ｄｂ及び通算走行距離Ｄｓを更新する。
【０２９８】
一方、更新後の通算走行距離Ｄｓが閾値Ｄ１を超えていると判断すると（Ｓ１４３０でＹｅｓ）、制御部２５は、Ｓ１４４０に移行して、メモリカード１９ａの全ブロックを、リフレッシュする対象である再書込領域に設定し、図５に示す再書込制御処理を実行する（Ｓ１４４０）。
【０２９９】
そして、全ブロックの再書込処理が終了することで再書込制御処理が終了すると、メモリカード１９ａが記憶する通算走行距離Ｄｓを値「０」に更新すると共に、バックアップ距離Ｄｂを値「０」に更新して（Ｓ１４５０）、当該カード管理処理を一旦終了する。そして、再度、Ｓ１４１１からカード管理処理を開始する。
【０３００】
一方、Ｓ１４２０で、メモリカード１９ａが記憶する上記未更新フラグがセット状態にあると判断すると（Ｓ１４２０でＮｏ）、制御部２５は、Ｓ１４２５に移行し、Ｓ１４１７での更新後の通算走行距離Ｄｓが閾値Ｄ２を超えているか否かを判断する。
【０３０１】
但し、閾値Ｄ２は、閾値Ｄ１よりも小さい値に予め定められているものとする。具体的に、閾値Ｄ１と閾値Ｄ２と規定値Ｄ０との間には、次の関係式Ｄ１＞Ｄ２＞Ｄ０が成り立つ。尚、閾値Ｄ１及び閾値Ｄ２については、リテンションを考慮して設計段階で定めればよい。
【０３０２】
Ｓ１４２５で、更新後の通算走行距離Ｄｓが閾値Ｄ２を超えていないと判断した場合には（Ｓ１４２５でＮｏ）、Ｓ１４１１に移行する。このようにして、制御部２５は、未更新フラグがセット状態にある場合、通算走行距離Ｄｓが閾値Ｄ２を超えるまで、上述した手順で、バックアップ距離Ｄｂ及び通算走行距離Ｄｓを更新する。
【０３０３】
そして、上記更新後の通算走行距離Ｄｓが閾値Ｄ２を超えていると判断すると（Ｓ１４２５でＹｅｓ）、制御部２５は、Ｓ１４４０の処理を実行し、更に、Ｓ１４５０の処理を実行する。但し、Ｓ１４２５での判断を行う場合には、未更新フラグがセット状態にあるので、Ｓ１４５０では、メモリカード１９ａが記憶するセット状態の未更新フラグをリセット状態に更新する。その後、制御部２５は、当該カード管理処理を一旦終了し、再度、Ｓ１４１１からカード管理処理を開始する。
【０３０４】
以上、第六実施例のナビゲーション装置１について説明したが、本実施例のナビゲーション装置１によれば、メモリカード１９ａにデータが書き込まれた時点からの車両の走行距離に応じて、再書込制御処理を実行して（Ｓ１４４０）、メモリカード１９ａ内のデータ全体をリフレッシュする。
【０３０５】
従って、このナビゲーション装置１によれば、メモリカード１９ａ内のデータが揮発してしまうのを防止することができ、データの揮発により、ナビゲーション装置１に誤動作が生じるのを防止することができる。
【０３０６】
即ち、ナビゲーション装置１は、車両の走行に必要な情報を車両乗員に提供するものであるので、ナビゲーション装置１に必要なデータ（プログラムも含む）が記憶されたメモリカード１９ａへのアクセス数と車両の走行距離との間には、相関がある。
【０３０７】
従って、本実施例のように走行距離に基づいてメモリカード１９ａ内のデータをリフレッシュするようにしても、適切な時期にリフレッシュ動作を実行することができ、データの揮発により、ナビゲーション装置１に誤動作が生じるのを防止することができるのである。また、本実施例によれば、そのような機能を、ソフトウェアにより簡素に実現できる。
【０３０８】
また、第六実施例のナビゲーション装置１は、通算走行距離Ｄｓに代えて、通算使用時間を、メモリカード１９ａに記録する構成にされてもよい。
即ち、Ｓ１４１１では、走行距離Ｄｎに代えて、前回Ｓ１４１１実行時からの経過時間を特定する。但し、ナビゲーション装置１起動後の初回のみナビゲーション装置１起動時からの経過時間を特定する。
【０３０９】
そして、この経過時間を、ＲＡＭ２５ｂがバックアップ距離Ｄｂの代わりに記憶するバックアップ時間に加算する。そして、このような動作を繰返し実行し（Ｓ１４１１〜Ｓ１４１３）、バックアップ時間が、規定時間を超えた時点で（Ｓ１４１５でＹｅｓ）、メモリカードが記憶する通算使用時間を上記規定時間加算した値に更新する（Ｓ１４１７）。更に、バックアップ時間から規定時間を減算する（Ｓ１４１９）。
【０３１０】
そして、未更新フラグの状態に応じて閾値を切り替えつつ、通算使用時間が閾値を超えているか否かを判断し（Ｓ１４２０〜Ｓ１４３０）、通算使用時間を超えていない場合には、Ｓ１４１１に移行し、通算使用時間が閾値を超えている場合には、Ｓ１４４０の処理を実行して、メモリカード１９ａ内のデータをリフレッシュする。そして、リフレッシュ後には、メモリカード１９ａが記憶する通算使用時間をゼロにリセットすると共に、ＲＡＭ２５ｂが記憶するバックアップ距離をゼロにリセットし、更には、未更新フラグをリセット状態にする。
【０３１１】
このようにナビゲーション装置１を構成しても、適切な時期にリフレッシュ動作を実行することができ、データの揮発により、ナビゲーション装置１に誤動作が生じるのを防止することができる。
【０３１２】
尚、本発明（請求項１８，１９）における走行距離推定手段としての機能は、本実施例において、通算走行距離Ｄｓを更新するＳ１４１７の処理等により実現されており、更新制御手段としての機能は、Ｓ１４２０〜Ｓ１４３０の処理にて実現されている。
【０３１３】
同様に、本発明（請求項２０，２１）における動作時間推定手段としての機能は、通算使用時間を更新する動作により実現され、更新制御手段としての機能は、通算使用時間と閾値との比較により、処理を切り替える動作（Ｓ１４２０〜Ｓ１４３０）により実現される。
【０３１４】
また、以上には、本発明の実施例として、第一〜第六実施例について説明したが、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。
例えば、上記実施例では、メモリカード１９ａ内のデータをリフレッシュする際、メモリカード１９ａから読み出したデータを、メモリカード１９ａにおける読出元のブロックに再書込するようにしたが、本発明は、読み出したデータを別ブロックに書き込み、読出元ブロックのデータを消去することでも、リフレッシュ動作（データ更新動作）を実現することができる。このようにすれば、データ管理は煩雑になるものの、メモリカード１９ａ内のメモリセルを万遍なく使用することができ、メモリカード１９ａの寿命を長くすることができる。
【０３１５】
また、Ｓ４３０，Ｓ６６０においては、処理対象ブロックのデータを、ＮＶＲＡＭ２５ｃにバックアップするようにしたが、メモリカード１９ａの特定領域に、処理対象ブロックのデータをバックアップするようにしてもよい。同様に、再書込進捗情報についても、メモリカード１９ａに記録すればよい。
【０３１６】
この他、カード管理処理における閾値Ｔ１，Ｔ２の設定方法について、上では述べなかったが、閾値Ｔ１，Ｔ２については、データ破壊の確率が一定以上高くなる経過時間と、データ破壊の確率が一定以上高くなるデータ書込回数と、製品の保証期間と、を考慮して定められるのがよい。
【０３１７】
例えば、データ破壊の確率が高くなる経過時間が１年であり、データ破壊の確率が高くなるメモリセルへのデータ書込回数が２０回である場合に、製品保証期間を１０年に設定する場合には、閾値Ｔ１として、０．５年から１年の時間を設定するのがよい。また、データ破壊の確率が高くなる経過時間が０．１年であり、データ破壊の確率が高くなるメモリセルへのデータ書込回数が１００回である場合に、製品保証期間を１０年に設定する場合には、閾値Ｔ１として、０．１年程度の時間を設定するのがよい。
【０３１８】
この他、高温によるリテンション低下を極力抑えるため、ナビゲーション装置１の設置位置は、メモリカード１９ａが高温に晒されないように工夫されるのが好ましい。この他、ナビゲーション装置１周辺に断熱材を設けたり、ファンなどを用いて、ナビゲーション装置１の放熱構造を工夫されると、一層好ましい。
【０３１９】
また、第三実施例では、カードスロット部１９内部に温度センサを設けるようにしたが、カードスロット部１９内部に温度センサを設けずに、高温時間推定処理では、車両に搭載された外気温センサに基づいて各ステップを実行するようにしてもよい。
【０３２０】
この他、第一及び第二実施例では、読出カウンタＣＮを、各ブロック毎に設けたが、読出カウンタＣＮは、所定数のブロック単位で設けられてもよい。
また、以上には、現在日時の取得方法について詳しく言及しなかったが、周知のように、ＧＰＳ衛星から送信されてくる信号に基づき、絶対時間を把握することが可能であるので、本発明を、ナビゲーション装置に適用する場合には、ＧＰＳ受信機を通じて、現在日時の情報を取得すればよい。また、ＧＰＳ受信機から取得した時刻情報に基づいて、定期的に、電子機器の内部時計を調整するようにし、この内部時計に基づいて、メモリカード１９ａに、データ書込日時を記録するようにしてもよい。
【０３２１】
この他、電子機器に時計機能を設けると共に、必要に応じ、ユーザ側で時刻を調整できるようにしてもよいし、車両が有する別の時計に基づいて、電子機器の内部時計が刻む時刻を調整できるようにしてもよい。その他、電子機器に通信機能を設け、外部ネットワーク経由で時刻情報を取得し、電子機器の内部時計が刻む時刻を調整できるようにしてもよい。
【図面の簡単な説明】
【０３２２】
【図１】ナビゲーション装置１の構成を表すブロック図である。
【図２】読取制御処理を通じたデータ取得態様を表す説明図（ａ）及び制御部２５が実行する読出制御処理を表すフローチャート（ｂ）である。
【図３】制御部２５が実行する起動後処理を表すフローチャートである。
【図４】制御部２５が実行するカード管理処理を表すフローチャートである。
【図５】制御部２５が実行する再書込制御処理を表すフローチャートである。
【図６】制御部２５が実行するエラー検出処理を表すフローチャートである。
【図７】制御部２５が実行する再起動時処理を表すフローチャートである。
【図８】第二実施例の起動後処理を表すフローチャート（ａ）及び制御部２５が実行する監視対象設定処理を表すフローチャート（ｂ）である。
【図９】第二実施例の読出制御処理を表すフローチャートである
【図１０】変形例の監視対象設定処理を表すフローチャート（ａ）及び変形例の読出制御処理を表すフローチャート（ｂ）である。
【図１１】制御部２５が実行する高温時間推定処理を表すフローチャートである。
【図１２】制御部２５が実行するデータ監視修復処理を表すフローチャートである。
【図１３】電源の接続態様を表す説明図（ａ）並びにアクセサリ電源及び常時電源の電圧変化の態様を表したタイムチャート（ｂ）である。
【図１４】第五実施例の再書込制御処理を表すフローチャートである。
【図１５】制御部２５が実行する再書込安全判定処理を表すフローチャート（ａ）及び再書込許可フラグの変化態様を表した説明図（ｂ）である。
【図１６】第五実施例のエラー検出処理を表すフローチャートである。
【図１７】第五実施例の再起動時処理を表すフローチャートである。
【図１８】第六実施例の起動後処理を表すフローチャートである。
【図１９】第六実施例のカード管理処理を表すフローチャートである。
【符号の説明】
【０３２３】
１…ナビゲーション装置、１１…位置検出器、１３…操作スイッチ群、１９…カードスロット部、１９ａ…メモリカード、２１…表示部、２３…音声出力部、２５…制御部、２５ａ…ＣＰＵ、２５ｂ…ＲＡＭ、２５ｃ…ＮＶＲＡＭ
【図１】
2010027021.tif 000003
【図２】
2010027021.tif 000004
【図３】
2010027021.tif 000005
【図４】
2010027021.tif 000006
【図５】
2010027021.tif 000007
【図６】
2010027021.tif 000008
【図７】
2010027021.tif 000009
【図８】
2010027021.tif 000010
【図９】
2010027021.tif 000011
【図１０】
2010027021.tif 000012
【図１１】
2010027021.tif 000013
【図１２】
2010027021.tif 000014
【図１３】
2010027021.tif 000015
【図１４】
2010027021.tif 000016
【図１５】
2010027021.tif 000017
【図１６】
2010027021.tif 000018
【図１７】
2010027021.tif 000019
【図１８】
2010027021.tif 000020
【図１９】
2010027021.tif 000021