説明

ナビゲーション装置、およびナビゲーション装置に用いる制御用プログラム

【課題】ナビゲーション装置において、メモリ資源を有効活用しつつ、ユーザの快適性の低下を抑える技術を提供する。
【解決手段】ナビゲーション装置のCPUは、外部記憶部16中の複数個のプログラム441〜45のうち、常駐グループに属するプログラム41〜43を、DRAM17bに常駐させ、常駐グループに属さないプログラム44、45を、DRAM17bに常駐させない。また、CPUは、操作部に対するユーザの選択操作に基づいて、当該複数個のプログラム41〜45を、常駐グループに属するプログラムと常駐グループに属するプログラムに振り分ける。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はナビゲーション装置、およびナビゲーション装置に用いる制御用プログラムに関するものである。
【背景技術】
【0002】
従来、ナビゲーション装置においては、プログラムは常にDRAM等の1次記憶装置に読み込まれた状態で動作している。例えば、頻繁に利用されるプログラム(例えば、目的地検索用のプログラム、経路計算用のプログラム、経路案内用のプログラム)も、日頃ほとんど利用されないプログラム(例えばゲームのプログラム)も、等しく1次記憶装置に常駐していた。
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、ナビゲーション装置のような1次記憶装置のメモリ資源が限られた環境において、日頃ほとんど利用されないプログラムまで常時1次記憶装置に読み込まれていることは、メモリ資源の有効活用という観点からは望ましくない。
【0004】
なお、計算機の分野においては、ハードディスクドライブなどの2次記憶装置に1次記憶装置の記憶内容を退避させることで、擬似的にメモリ資源の拡大を実現する仮想記憶(より具体的にはメモリスワッピング)の技術が知られている。
【0005】
しかしながら、このような技術を単純にナビゲーション装置に適用したとしても、ナビゲーション装置では、経路案内等の主要かつ頻繁に利用されるプログラムや、迅速な応答性が要求されるようなプログラムが、1次記憶装置よりもアクセス速度の遅い2次記憶装置に退避されてしまうと、ユーザに対して快適なサービスを提供できなくなる。
【0006】
本発明は上記点に鑑み、ナビゲーション装置において、メモリ資源を有効活用しつつ、ユーザの快適性の低下を抑える技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するための請求項1に記載の技術は、第1の記憶装置(17b)と、第1の記憶装置(17b)よりもアクセス速度の遅い第2の記憶装置(16、17c)と、第2の記憶装置(16、17c)に記憶された複数個のプログラムを第1の記憶装置(17b)に読み込んで実行する演算回路(17a)と、を備えたナビゲーション装置に関するものである。このナビゲーション装置において、演算回路(17a)は、当該複数個のプログラムのうち、常駐グループに属するプログラムを、当該第1の記憶装置(17b)に常駐させ、常駐グループに属さないプログラムを、当該記憶装置(17b)に常駐させないようになっていてもよい。
【0008】
なお、「あるプログラムXを第1の記憶装置(17b)に常駐させる」とは、当該プログラムXを、他のプログラムの実行の有無に関わらず、第1の記憶装置(17b)に読み込まれた状態にし続けることをいう。
【0009】
また、「あるプログラムXを第1の記憶装置(17b)に常駐させない」とは、第1の記憶装置(17b)への読み込みに関して当該プログラムXを他のプログラムYと競合させることをいう。すなわち、あるプログラムXが第1の記憶装置(17b)に読み込まれている状態において、他のプログラムYの実行が必要となったときに、当該プログラムXは第1の記憶装置(17b)から削除され、その削除の結果空いた第1の記憶装置(17b)の記憶領域に、当該プログラムYが読み込まれるようになっているとき、当該プログラムXは、第1の記憶装置(17b)に常駐していないことになる。
【0010】
このように、ナビゲーション装置は、複数個のプログラムを常駐グループとそうでないグループに振り分け、常駐が必要な常駐グループのプログラムを選択的に第1の記憶装置(17b)に常駐させることで、メモリ資源を有効活用しつつ、ユーザの快適性の低下を抑えることができる。
【0011】
なお、第1の記憶装置(17b)に常駐しているプログラムは、必ずしも演算回路(16)によって常に実行されている状態である必要はない。
【0012】
また、請求項2に記載のように、ナビゲーション装置は、ユーザの操作を受け付ける操作部(13)を備えていてもよい。この場合、演算回路(17a)は、操作部(13)に対するユーザの選択操作に基づいて、当該複数個のプログラムを、常駐グループに属するプログラムと、常駐グループに属さないプログラムとに、振り分けるようになっていてもよい。
【0013】
どのようなプログラムが頻繁に利用され、どのようなプログラムがあまり利用されないかについては、ユーザがよく知っている。したがって、このように、ユーザの選択操作に基づいて、常駐グループへの振り分けを決定することで、メモリ資源を有効活用しつつ、より的確にユーザの快適性の低下を抑えることができる。
【0014】
また、請求項3に記載のように、ナビゲーション装置は、ユーザに情報を報知するための報知装置(12)を備えていてもよい。この場合、演算回路(17a)は、当該複数のプログラムの常駐グループへの振り分けの状況を、報知装置(12)に報知させるようになっていてもよい。
【0015】
このようにすることで、ユーザは、複数のプログラムの常駐グループへの振り分けの状況を容易に把握することができる。
【0016】
また、請求項4に記載のように、ナビゲーション装置は、ユーザの操作を受け付ける操作部(13)を備えていてもよい。この場合、演算回路(17a)は、常駐グループに属するプログラムの実行のために当該プログラム以外のデータを読み込む付加領域を第1の記憶装置(17b)に確保するようになっていてもよい。さらにこの場合、演算回路(17a)は、当該付加領域のメモリサイズを、操作部(13)に対するユーザの指定操作に従って決定するようになっていてもよい。
【0017】
このように、常駐グループに属するプログラムの実行のために第1の記憶装置(17b)に確保する付加領域のメモリサイズを、ユーザが設定することができる。プログラムの実行においては、第1の記憶装置(17b)に確保される付加領域が大きいほど、そのプログラムの処理の応答性が高くなる(すなわち、より機敏に応答するようになる)。したがって、ユーザは、自分の好みに応じて、常駐グループに属するプログラムの応答性を調整することができる。
【0018】
また、請求項5に記載のように、請求項1に記載の発明の特徴は、プログラムとしても捉えることができる。
【0019】
なお、上記および特許請求の範囲における括弧内の符号は、特許請求の範囲に記載された用語と後述の実施形態に記載される当該用語を例示する具体物等との対応関係を示すものである。
【発明を実施するための最良の形態】
【0020】
以下、本発明の一実施形態について説明する。図1に、本実施形態に係る車両用ナビゲーション装置1のハードウェア構成を示す。この車両用ナビゲーション装置1は、車両に搭載され、位置検出器11、画像表示装置12、操作部13、スピーカ14、無線受信部15、外部記憶部16(第2の記憶装置の一例に相当する)、および制御回路17を有している。
【0021】
位置検出器11は、いずれも周知の図示しない加速度センサ、地磁気センサ、ジャイロセンサ、車速センサ、およびGPS受信機等のセンサを有しており、これらセンサの各々の性質に基づいた、車両の現在位置、向き、および速度を特定するための情報を制御回路17に出力する。
【0022】
画像表示装置12は、制御回路17から出力された映像信号に基づいた映像をユーザに表示する。表示映像としては、例えば現在地を中心とする地図等がある。
【0023】
操作部13は、車両用ナビゲーション装置1に設けられた複数のメカニカルスイッチ、画像表示装置12の表示面に重ねて設けられたタッチパネル等の入力装置から成り、ユーザによるメカニカルスイッチの押下、タッチパネルのタッチに基づいた信号を制御回路17に出力する。
【0024】
無線受信部15は、車両外部の無線基地局、路上機等と無線通信を行うことで、インターネット等の広域データネットワーク上の通信装置(例えばWebサーバ)とデータ通信を行うことができる。この無線受信部15は、制御回路17によって制御される。
【0025】
外部記憶部16は、DVD、CD、HDD等の不揮発性の記憶媒体およびそれら記憶媒体に対してデータの読み出し(および可能ならば書き込み)を行う装置から成る。当該記憶媒体は、制御回路17が実行する複数個のプログラム、経路案内用の地図データ等を記憶している。
【0026】
地図データは、道路データおよび施設データを有している。道路データは、リンクの位置情報、種別情報、ノードの位置情報、種別情報、および、ノードとリンクとの接続関係の情報等を含んでいる。施設データは、施設毎のレコードを複数有しており、各レコードは、対象とする施設の名称情報、所在位置情報、住所情報、電話番号情報、施設種類情報等を示すデータを有している。
【0027】
制御回路(コンピュータに相当する)17は、CPU17a、DRAM17b(第1の記憶装置の一例に相当する)、ROM17c(第2の記憶装置の一例に相当する)等を有するマイコンである。ROM17cには、CPU17aが実行するための各種プログラムが記録されている。
【0028】
DRAM17bは、CPU17aが直接アクセスすることのできる1次記憶装置(すなわち、メインメモリ)であり、ROM17c、外部記憶部16等の2次記憶装置よりもアクセス速度が高い。以下、外部記憶部16およびROM17cを総称して2次記憶装置という。
【0029】
本実施形態においては、DRAM17bの記憶領域は、図2に示すように、常駐領域20と仮想記憶用領域30とに分けられている。常駐領域20と仮想記憶用領域30のメモリサイズ(ずなわち記憶容量)の比率は、固定値であってもよいし、CPU17aが変更できるようになっていてもよい。
【0030】
CPU17aは、2次記憶装置に記憶されている車両用ナビゲーション装置1の動作のための複数個のプログラムを実行する。CPU17aが同時に実行するプログラムは、1つのみであってもよい。あるいは、CPU17aはタイムシェアリング方式によって実効的に同時に2個以上のプログラムを実行するようになっていてもよい。CPU17aがどのプログラムを実行するかは、位置検出器11、操作部13、無線受信部15から入力された信号、および、CPU17aが実行中のプログラム中の命令の内容のうち、いずれか1つまたは複数によって決まる。
【0031】
CPU17aが実行するプログラムとしては、例えば、図2に示すように、外部記憶部16に記憶されている地図描画プログラム41、検索プログラム42、案内プログラム43、ブラウザプログラム44、およびゲームプログラム45等がある。以下、これらのプログラムについて説明する。
【0032】
まず、地図描画プログラム41について説明する。地図描画プログラム41を実行することで、CPU17aは、自車両の現在位置の周辺等の特定の領域の地図を、画像表示装置12に表示させる。なお、CPU17aは、自車両の現在位置を、位置検出器11からの信号によって特定する。
【0033】
CPU17aは、地図描画プログラム41を実行する際、地図表示のために用いる地図データを、外部記憶部16からDRAM17bに読み込む。ただし、一時期にDRAM17b中に保持させることのできる地図データのデータ量には、上限が設けられている。一時期にDRAM17b中に保持させることのできる地図データのデータ量は、地図描画プログラム41のために割り当てられるDRAM17b上の地図データ用領域(すなわちデータバッファ)のメモリサイズによって決まる。
【0034】
したがって、CPU17aは、地図描画プログラム41のために割り当てられたDRAM17b上の地図データ用領域(付加領域の一例に相当する)に、外部記憶部16中の地図データのうち表示すべき領域を含む一部のみを、読み込むようになっている。
【0035】
ここで、DRAM17b中に一時期に保持することのできる地図データのデータ量が、画像表示装置12の表示画面の1画面分のみ(すなわち現在表示させている分のみ)であった場合について説明する。この場合、車両の移動、またはユーザによる操作部13を用いた表示領域の移動の指示があると、画像表示装置12に表示させるべき地図の範囲が移動する。しかし、地図表示範囲の移動の結果新たに表示する必要が発生した分の地図データについては、DRAM17bにないので、その分については、外部記憶部16からDRAM17bに新たに読み込む必要が発生する。したがって、この場合には、地図表示範囲が移動する度に、新たな地図表示を行う前に、(DRAM17bに比べてアクセス速度が低い)外部記憶部16へのディスクアクセスが発生する。したがって、ユーザから見れば、地図描画の応答性が低くなってしまう。
【0036】
また、DRAM17b中に一時期に保持することのできる地図データのデータ量が、画像表示装置12の表示画面の9画面分のみ(すなわち現在表示させている分およびその周りを取り囲む8画面分)であった場合について説明する。この場合、地図表示範囲の移動があっても、その結果新たに表示する必要が発生した分の地図データについては、急激な地図表示範囲の変化でない限り、既にDRAM17b中にあることになる。
【0037】
したがって、この場合には、CPU17aは、地図表示範囲が移動しても、新たな地図表示を行う前に外部記憶部16へのディスクアクセスを発生させる必要はない。なお、地図表示範囲が移動すると、地図表示範囲の周囲におけるDRAM17bに保持すべき地図データの範囲も変化するが、その変化に対応した外部記憶部16からの地図データの読み込みは、新たな地図表示を行った後の、処理の空き時間に行うことができる。したがって、新たな地図表示を行う前に、外部記憶部16へのディスクアクセスが発生する可能性が低いので、ユーザから見れば地図描画の応答性が向上する。
【0038】
なお、地図描画プログラム41のために割り当てられたDRAM17b上の地図データ用領域の容量が大きくなればなるほど、より急激な地図表示範囲の移動に対しても新たな地図表示を行う前に外部記憶部16へのディスクアクセスを発生させずに済む。
【0039】
以上の通り、地図描画プログラム41の実行の際には、地図データ用領域の容量が大きくなればなるほど、ユーザから見た地図描画の応答性が向上する。
【0040】
次に、検索プログラム42について説明する。検索プログラム42を実行することで、CPU17aは、ユーザが操作部13を用いて目的地候補として入力したキーワード(例えば、施設名の先頭の文字または文字列、住所の先頭の文字または文字列、電話番号の先頭の数字または数字列)にマッチする施設を、外部記憶部16の地図データ中の施設データから検索する。検索の際、CPU17aは、施設データを外部記憶部16からDRAM17bに読み込む。
【0041】
ただし、一時期にDRAM17b中に保持させることのできる施設データのデータ量には、上限が設けられている。一時期にDRAM17b中に保持させることのできる施設データのデータ量は、検索プログラム42のために割り当てられるDRAM17b上の施設データ用領域(すなわちデータバッファ)のメモリサイズによって決まる。
【0042】
したがって、CPU17aは、検索プログラム42のために割り当てられたDRAM17b上の施設データ用領域(付加領域の一例に相当する)に、外部記憶部16中の施設データのうち一部のみを読み込むようになっている。
【0043】
したがって、CPU17aは、施設データのうち、検索のために用いる必要がある部分がDRAM17b中にない場合は、DRAM17b中の施設データの一部(または全部)と入れ替えに、当該必要部分をDRAM17bに読み込む必要がある。
【0044】
このようになっているので、検索プログラム42の実行においては、検索プログラム42のために割り当てられたDRAM17b上の施設データ用領域が小さいほど、検索のために必要な外部記憶部16へのディスクアクセスの量が増大する。換言すれば、当該施設データ用領域の容量が大きくなればなるほど、ユーザから見れば検索の応答性が向上する。
【0045】
次に、案内プログラム43について説明する。案内プログラム43を実行することで、CPU17aは、検索プログラム42の実行によって検索した施設の1つに対するユーザの(操作部13を用いた)選択に応じて目的地を特定し、特定した目的地への最適な誘導経路を算出する。さらにCPU17aは、誘導経路上の右左折交差点等の案内ポイントの手前に自車両が到達したときに、右折、左折等を指示する案内音声をスピーカ14に出力させ、当該案内ポイントの拡大図を画像表示装置12に表示させることで、誘導経路に沿った車両の運転を案内する。
【0046】
このような案内プログラム43の処理においても、CPU17aは、案内プログラム43のために割り当てられたDRAM17b上の案内用データ領域(付加領域の一例に相当する)を利用する。そして、この案内用データ領域にも、上限が設けられている。
【0047】
案内用データ領域は、案内プログラム43の実行のためにDRAM17bに読み込むデータのうち、当該案内プログラム43そのもの以外のデータである。より具体的には、案内用データ領域は、ワークエリアおよびデータバッファとして用いる。ワークエリアとは、経路検索、案内等において行う計算処理において一時的に保持する必要があるデータを記憶する領域をいう。データバッファとは、2次記憶装置中のデータ(例えば、地図データ)を、2次記憶装置よりもアクセス速度の速いDRAM17bに記憶させるための領域をいう。
【0048】
そして、案内プログラム43の実行においても、案内プログラム43のために割り当てられた案内用データ領域が大きいほど、計算のために用いることのできる領域が広くなり、また、2次記憶装置へのディスクアクセスの量が減少する。すなわち、当該案内用データ領域の容量が大きくなればなるほど、ユーザから見れば案内プログラム43の実行処理の応答性が向上する。
【0049】
次に、ブラウザプログラム44について説明する。ブラウザプログラム44を実行することで、CPU17aは、ユーザの操作部13に対するアクセス先の指定(例えばURL指定)があると、無線受信部15を用いて、広域ネットワーク上の当該アクセス先から情報(例えばWebデータ)を受信し、受信した情報を画像表示装置12に表示させる。
【0050】
このような案内プログラム43の処理においても、CPU17aは、ブラウザプログラム44のために割り当てられたDRAM17b上のブラウザ用データ領域(付加領域の一例に相当する)を利用する。そして、このブラウザ用領域にも、上限が設けられている。
【0051】
ブラウザ用データ領域は、ブラウザプログラム44の実行のためにDRAM17bに読み込むデータのうち、当該ブラウザプログラム44そのもの以外のデータである。より具体的には、案内用データ領域は、ブラウザプログラム44用のワークエリア(例えば、受信したWebデータのキャッシュ)およびデータバッファとして用いる。
【0052】
そして、ブラウザプログラム44の実行においても、ブラウザプログラム44のために割り当てられた案内用データ領域が大きいほど、計算のために用いることのできる領域が広くなり、また、2次記憶装置へのディスクアクセスの量が減少する。すなわち、当該案内用データ領域の容量が大きくなればなるほど、ユーザから見ればブラウザプログラム44の実行処理の応答性が向上する。
【0053】
次に、ゲームプログラム45について説明する。ゲームプログラム45を実行することで、CPU17aは、アミューズメント目的のゲーム(例えば、シューティンググゲーム、スポーツゲーム、カードゲーム等)のための処理を実現する。
【0054】
このようなゲームプログラム45の処理においても、CPU17aは、ゲームプログラム45のために割り当てられたDRAM17b上のゲーム用データ領域(付加領域の一例に相当する)を利用する。そして、このゲーム用データ領域にも、上限が設けられている。このゲーム用データ領域は、ワークエリアおよびデータバッファとして用いる。
【0055】
そして、ゲームプログラム45の実行においても、ゲームプログラム45のために割り当てられたゲーム用データ領域が大きいほど、計算のために用いることのできる領域が広くなり、また、2次記憶装置へのディスクアクセスの量が減少する。すなわち、当該ゲーム用データ領域の容量が大きくなればなるほど、ユーザから見ればゲームプログラム45の実行処理の応答性が向上する。
【0056】
なお、上記のような各プログラムの付加領域の上限、すなわち、付加領域のメモリサイズは、後述する通り、CPU17aが、操作部13に対するユーザの操作に基づいて決定する。
【0057】
ここで、CPU17aによるプログラムの実行の方法について説明する。あるプログラムを実行する際、CPU17aは、DRAM17b中に読み込まれている(すなわち、DRAM17b中に展開されている)当該プログラムの命令を、順番に自身のレジスタに格納し、格納した命令を解釈および実行する。
【0058】
したがって、あるプログラムをCPU17aが実行するためには、そのプログラムは、2次記憶装置からDRAM17bにあらかじめ読み込まれている必要がある。本実施形態においては、CPU17aは、2次記憶装置からDRAM17bへの読み込まれ方の違いに応じて、車両用ナビゲーション装置1用の複数のプログラムを、2つのグループに振り分ける。
【0059】
2つのグループとは、常駐グループおよび非常駐グループである。常駐グループは、DRAM17b中に常駐させるよう設定されたすべてのプログラムが属するグループであり、非常駐グループは、それ以外のプログラムが属するグループである。以下、常駐グループに属するプログラムを常駐プログラムといい、非常駐グループに属するプログラムを非常駐グループという。
【0060】
なお、「あるプログラムXをDRAM17bに常駐させる」とは、車両用ナビゲーション装置1に対して(より具体的にはDRAM17bに対して)電力供給がされている間は、当該プログラムXを、他のプログラムの実行の有無に関わらず、常にDRAM17bに読み込まれた状態にし続け、外部記憶部16に退避させないことをいう。ただし、DRAM17bに常駐しているプログラムは、必ずしもCPU17aによって常に実行されている状態である必要はない。
【0061】
なお、一旦DRAM17bへの電力供給が途絶えた後、その後再度DRAM17bに電力供給が為された場合は、CPU17aは、2次記憶装置から、当該常駐グループに属するすべてのプログラムをDRAM17bの常駐領域20に読み込む。
【0062】
ここで、上記のプログラム41〜45のうち、地図描画プログラム41、検索プログラム42、および案内プログラム43が常駐グループに属しており、ブラウザプログラム44およびゲームプログラム45が非常駐グループに属している場合について説明する。
【0063】
この場合、図2に示すように、常駐グループのプログラム41、42、43は、それぞれDRAM17bの常駐領域20中の領域21、22、23に常駐している。なお、領域25も、常駐グループに属する他のプログラム(例えば、後述する制御プログラム100、200)が常駐している領域である。
【0064】
そして、常駐プログラム41、42、43用の常駐用の付加領域として、領域24が割り当てられている。常駐用の付加領域とは、電力供給がされている間は、他のプログラムの実行の有無に関わらず、常に継続的にDRAM17b中に割り当てられている付加領域をいう。なお、付加領域24は、常駐グループのプログラム41、42、43にそれぞれ対応する複数の領域に分かれている。また、領域26は、どのプログラムの領域として付加領域としても使用されていない空き領域である。
【0065】
また、非常駐グループに属するブラウザプログラム44、ゲームプログラム45は、DRAM17bに常駐しておらず、仮想記憶用領域30に、必要時に外部記憶部16から読み込まれるようになっている。
【0066】
「あるプログラムXをDRAM17bに常駐させない」とは、DRAM17bへの読み込みに関して当該プログラムXを他のプログラムYと競合させることをいう。すなわち、あるプログラムXがDRAM17bに読み込まれている状態において、他のプログラムYの実行が必要となったときに、当該プログラムXはDRAM17bから削除され、その削除の結果空いたDRAM17bの記憶領域に、当該プログラムYが読み込まれるようになっているとき、当該プログラムXは、DRAM17bに常駐していないことになる。
【0067】
非常駐プログラムをDRAM17bに常駐させず、かつ、非常駐プログラムを必要時に実行するための方法として、本実施形態においては、メモリスワッピングを用いる。CPU17aは、メモリスワッピングにより、仮想記憶用領域30中の非常駐プログラムXを、外部記憶部16のHDD中の一部領域(以下、スワップ領域という)に書き出すことで、仮想記憶用領域30中に空き領域を設け、その空き領域に別の非常駐プログラムYを読み込み、その後、非常駐プログラムYを実行するようになっている。
【0068】
例えば、図2の例においては、CPU17aが、ブラウザプログラム44を実行するために外部記憶部16からブラウザプログラム44を仮想記憶用領域30に読み込んでいる状況において、ゲームプログラム45の実行の必要が発生した場合について説明する。この場合、CPU17aは、ブラウザプログラム44を仮想記憶用領域30から外部記憶部16のスワップ領域にブラウザプログラム44を書き込み(すなわち、ブラウザプログラム44を退避させ)、仮想記憶用領域30からブラウザプログラム44を削除する。そして、その削除によって仮想記憶用領域30に空いた領域に、ゲームプログラム45を読み込む。そして、このゲームプログラム45を実行する。
【0069】
このように、CPU17aは、メモリスワッピングを用いることで、非常駐グループに属する複数のプログラムのうち、仮想記憶用領域30に読み込むプログラムを選択的に切り替える。このようにすることで、非常駐グループに属する複数のプログラムのために必要なDRAM17bの容量を抑え、かつ、非常駐グループに属する複数のプログラムが、常駐グループに属するプログラムのためのDRAM17bの容量を圧迫することがなくなる。
【0070】
このように、車両用ナビゲーション装置1のCPU17aは、2次記憶装置中の複数個のプログラムのうち、常駐グループに属するプログラムを、DRAM17bに常駐させ、常駐グループに属さないプログラムを、DRAM17bに常駐させないようになっている。
【0071】
このように、車両用ナビゲーション装置1は、複数個のプログラムを常駐グループとそうでないグループに振り分け、常駐が必要な常駐グループのプログラムを選択的にDRAM17bに常駐させることで、DRAM17bのメモリ資源を有効活用しつつ、ユーザの快適性の低下を抑えることができる。
【0072】
なお、2次記憶装置中の複数のプログラムのそれぞれが、常駐グループと非常駐グループのどちらに属するかについては、操作部13に対するユーザの選択操作に基づいて、CPU17aが振り分ける。なお、CPU17aは、各プログラムが常駐グループと非常駐グループのどちらに属するかについての情報(以下、グループ振り分け情報という)を、外部記憶部16のHDD中に記録するようになっていてもよいし、DRAM17b中に記録するようになっていてもよいし、制御回路17がフラッシュメモリを有している場合は、当該フラッシュメモリに記録するようになっていてもよい。
【0073】
またCPU17aは、各常駐プログラムの付加領域のメモリサイズについても、操作部13に対するユーザの設定操作に基づいて決定する。なお、CPU17aは、各常駐プログラムの付加領域のメモリサイズの情報(以下、付加領域設定情報という)を、外部記憶部16のHDD中に記録するようになっていてもよいし、DRAM17b中に記録するようになっていてもよいし、制御回路17がフラッシュメモリを有している場合は、当該フラッシュメモリに記録するようになっていてもよい。
【0074】
図3に、このような常駐グループ・非常駐グループの振り分け、および、付加領域のメモリサイズの設定のために、CPU17aが画像表示装置12に表示する設定画面の一例50を示す。
【0075】
この設定画面50は、2次記憶装置中に記録されている各プログラムの名称を表示する名称部51a〜55a、各プログラムが常駐グループであるか非常駐グループであるかを示す選択部51b〜55bを有している。なお、選択部51b〜55bは、ユーザが操作部13を用いて選択することができるようになっている。そして、選択された選択部は、ハイライト表示となった常駐状態(すなわち、対応するプログラムが常駐グループである状態)と、非ハイライト表示となった非常駐状態(すなわち、対応するプログラムが非常駐グループである状態)との間を交互に遷移するようになっている。
【0076】
図3の例においては、常駐状態となっている選択部51b、52b、53bによって、それぞれ地図描画プログラム、検索プログラム、および案内プログラムが、常駐グループに属していることがユーザに示されている。また、非常駐状態となっている選択部54bおよび55bによって、それぞれブラウザプログラムおよびゲームプログラムが、非常駐グループに属していることがユーザに示されている。
【0077】
更に設定画面50は、常駐プログラムのそれぞれについて、当該常駐プログラムの応答性を示すインジケータ部51c〜53cを有している。これらインジケータ部51c〜53cのそれぞれにおける設定つまみ51d〜53dは、操作部13に対するユーザの操作に応じて、対応するインジケータ部51c〜53c上を左右に移動することができるようになっている。そして、設定つまみ51d〜53dの左右位置が、対応する常駐プログラムの応答性の高さを示している。
【0078】
具体的には、設定つまみ51d〜53dが右側に移動するほど、対応する常駐プログラムの応答性が高いことを示している。なお、応答性の高さを示す具体的な数値の単位は、どのようなものを用いてもよい。ただし、応答性が高くなるほど(すなわち、迅速になるほど)、この数値は高くなる。
【0079】
また、設定画面50は、DRAM17bの常駐領域20中の空き領域のメモリサイズを示すための領域であり、インジケータ部56cと、当該インジケータ部56c上を左右に移動可能なポインタ56dとを有している。
【0080】
そして、設定つまみ51d〜53dの左右位置が、対応する常駐プログラムの応答性を示している。具体的には、設定つまみ51d〜53dが右側に移動するほど、対応する常駐プログラムの応答性が高いことを示している。このようになっているのは、CPU17aが、設定つまみ51d〜53dが右にあるほど、より大きな付加領域を対応するプログラムに割り当てるからである。
【0081】
ここで、図4に、選択部51b〜55bのいずれかを選択する操作をユーザが行ったときに、CPU17aが実行する制御プログラム100のフローチャートを示す。この制御プログラム100の実行において、CPU17aは、まずステップ110で、切替操作が常駐状態から非常駐状態への切り替えであるか、あるいは逆(非常駐状態から常駐状態)の切り替えであるかを判定する。具体的には、常駐状態にある選択部が選択された場合は、常駐状態から非常駐状態への切り替えであると判定して続いてステップ160を実行する。非常駐状態にある選択部が選択された場合は、非常駐状態から常駐状態への切り替えであると判定して続いてステップ120を実行する。
【0082】
ステップ120では、選択されたプログラム(図中ではサービスと記す)が必要とする最小メモリサイズMminを取得する。選択されたプログラムとは、選択された選択部に対応するプログラムをいう。選択されたプログラムが必要とする最小メモリサイズとは、当該プログラム自体のデータ量であってもよいし、当該プログラム自体のデータ量に当該プログラムの実行のために最低限必要な付加領域の量を加えたものであってもよい。
【0083】
続いてステップ130では、現時点における常駐領域20中の総メモリ使用量Mtotalに、選択されたプログラムの最小メモリサイズMminを加算した値が、常駐領域20全体のメモリサイズSlock未満であるか否かを判定し、判定結果が肯定的であれば続いてステップ140を実行する。なお、Slockの値は、あらかじめRAM17bまたはROM17cに記憶されていてもよい。
【0084】
判定結果が否定的であれば、選択された非常駐プログラムを常駐グループに入れることなく、そのままプログラム100の実行を終了する。この際、常駐領域20の容量が不足している旨を、画像表示装置12またはスピーカ14を用いてユーザに通知してもよい。
【0085】
ステップ140では、選択されたプログラムを外部記憶部16からDRAM17bに読み込む。そして、常駐プログラムの総メモリ使用量Mtotalに、選択されたプログラムの最小メモリサイズMminを加えた値を、常駐プログラムの総メモリ使用量Mtotalの新たな値とする。
【0086】
そして、新たな総メモリ使用量Mtotalを常駐領域20全体のメモリサイズSlockから減算し、その結果の値、すなわち常駐領域20中の空きメモリ量Munusedを、設定画面50の空きメモリ表示部56に反映させる。具体的には、常駐領域20中の空きメモリ量Munusedに対応する位置に、ポインタ56dを移動させる。
【0087】
続いてステップ150では、選択されたプログラムを非常駐グループから外し常駐グループに入れ、グループ振り分け情報にその旨を反映させる。さらに、設定画面50中の選択されたプログラムに対応する選択部の表示を、ハイライト表示に切り替える。ステップ150の後、プログラム100の実行を終了する。
【0088】
このようになっていることで、CPU17aは、非常駐プログラムに対応する選択部54b〜55bが選択されると(ステップ110→NO参照)、当該選択されたプログラムのデータ量(ステップ120参照)と現在の常駐プログラムの総データ量との和が常駐領域20の容量に収まる場合には(ステップ130→YES参照)、選択されたプログラムを非常駐グループから外して常駐プログラムに追加し、その追加を設定画面50に反映させる(ステップ140、150参照)。
【0089】
常駐状態から非常駐状態への切り替えであると判定した場合に続くステップ160では、選択されたプログラムの使用メモリサイズMusedを取得する。ここで、選択されたプログラムの使用メモリサイズMusedとは、当該プログラム自体のデータ量に、当該プログラムに割り当てられている付加領域のメモリサイズを加えた結果のメモリサイズである。
【0090】
続いてステップ170では、選択されたプログラムおよび当該プログラムに対応する付加領域をDRAM17bから消去する。更に、常駐領域20における総メモリ使用量Mtotalから、選択されたプログラムの使用メモリサイズMusedを減算した結果の値を、新たな総メモリ使用量Mtotalとする。そして、新たな総メモリ使用量Mtotalを常駐領域20全体のメモリサイズSlockから減算し、その結果の値、すなわち常駐領域20中の空きメモリサイズMunusedを、設定画面50の空きメモリ表示部56に反映させる。
【0091】
続いてステップ180では、選択されたプログラムを常駐グループから外して非常駐グループに入れ、グループ振り分け情報にその旨を反映させる。さらに、設定画面50中の選択されたプログラムに対応する選択部の表示を、非ハイライト表示に切り替える。ステップ180の後、プログラム100の実行を終了する。
【0092】
このようになっていることで、CPU17aは、常駐プログラムに対応する選択部51b〜53bが選択されると(ステップ110→YES参照)、選択されたプログラムを常駐グループから外して非常駐グループに追加し、その追加を設定画面50に反映させる(ステップ170、180参照)。
【0093】
このように、CPU17aは、操作部13に対するユーザの選択操作に基づいて、当該複数個のプログラムを、常駐グループに属するプログラムと常駐グループに属するプログラムに振り分ける。
【0094】
どのようなプログラムが頻繁に利用され、どのようなプログラムがあまり利用されないかについては、ユーザがよく知っている。したがって、このように、ユーザの選択操作に基づいて、常駐グループへの振り分けを決定することで、DRAM17bのメモリ資源を有効活用しつつ、より的確にユーザの快適性の低下を抑えることができる。
【0095】
また、CPU17aは、当該複数のプログラムの常駐グループへの振り分けの状況を、画像表示装置12に報知させるようになっている。すなわち、どのプログラムが常駐グループに属し、そのプログラムが非常駐グループに属し、また、常駐領域20の空き領域がどれくらいであるかを、画像表示装置12に報知させるようになっている。このようにすることで、ユーザは、複数のプログラムの常駐グループへの振り分けの状況を容易に把握することができる。
【0096】
次に、図5に、設定つまみ51d〜53dのいずれかを移動させる操作をユーザが行ったときに、CPU17aが実行するプログラム200のフローチャートを示す。このプログラム200の実行において、CPU17aは、まずステップ210で、操作対象の設定つまみに対応するプログラム(図中ではサービスと記す)を、操作対象プログラムとして特定する。
【0097】
続いてステップ215で、操作された設定つまみの、操作後におけるインジケータ部上の左右位置を特定する。この左右位置は、操作対象プログラムについてユーザが要求した応答性の高さを示している。
【0098】
続いてステップ220では、操作対象プログラムについて要求された応答性の高さから、操作対象プログラムに必要な付加領域のメモリサイズを算出する。要求された応答性の高さと、必要な付加領域のメモリサイズとの関係は、プログラムによらず、あらかじめ定められた比による比例関係であってもよい。また、この比は、プログラム毎に変化するようになっていてもよい。
【0099】
さらにステップ220では、算出した必要な付加領域のメモリサイズから、操作対象プログラムに割り当てられた付加領域の現在のメモリサイズを減算した結果の値Mneedを算出する。この値Mneedは、要求された応答性のために付加領域のメモリサイズに必要な増加量である。したがって、要求された応答性が現状よりも高い場合には、値Mneedは正の数となり、要求された応答性が現状よりも低い場合には、値Mneedは負の数となる。以下、この値Mneedを、必要増加メモリサイズMneedという。
【0100】
続いてステップ225では、現在の常駐領域20中の空きメモリサイズMunuseが、算出された必要増加メモリサイズMneedよりも大きいか否かを判定し、大きければ続いてステップ230を実行し、大きくなければ続いてステップ245を実行する。
【0101】
ステップ230では、操作対象プログラムの付加領域として追加で割り当てるメモリサイズ(以下、追加メモリサイズMaddという)として、算出された必要付加メモリサイズMneedを採用する。このようにするのは、常駐領域20中に、必要付加メモリサイズMneedを超える量の空き領域26が存在するからである。
【0102】
更にステップ230では、操作対象プログラムについての付加領域のメモリサイズの大きさを、現在の値から、追加メモリサイズMadd分変化させ、その結果の値を、上述の付加領域設定情報に反映させる。
【0103】
そして、追加メモリサイズMaddが正の値である場合は、操作対象プログラムについての付加領域として、追加メモリサイズMadd分を、常駐領域20の空き領域26中に追加確保する。なお、「プログラムの付加領域として確保する」とは、当該プログラムの付加領域の用途以外では用いられないように保護することをいう。
【0104】
また、追加メモリサイズMaddが負の値である場合は、操作対象プログラムについての付加領域のうち、追加メモリサイズMadd分を解放する。なお、「付加領域の部分を開放する」とは、部分を空き領域26に加えることをいう。
【0105】
続いてステップ235では、付加領域のメモリサイズを変更した後の常駐領域20中の空きメモリサイズMunuseを再計算する。すなわち、新たな値Munuseとして、それまでの空きメモリサイズMunuseから追加メモリサイズMaddを減算した結果の値を、新たな空きメモリサイズMunuseとして採用する。
【0106】
続いてステップ240では、ステップ235で算出した常駐領域20の新たな空きメモリサイズMunuseを、設定画面50の空きメモリ表示部56に反映させる。また、常駐領域20全体のメモリサイズSlockから、当該新たな空きメモリサイズMunuseを減じた結果の値を、新たな常駐領域20中の総メモリ使用量Mtotalとして採用する。ステップ240の後、プログラム200の実行を終了する。
【0107】
また、ステップ245では、操作対象プログラムの付加領域として追加で割り当てるメモリサイズ(すなわち、追加メモリサイズMadd)として、ステップ220で算出された必要付加メモリサイズMneedではなく、常駐領域20中の現時点における空きメモリサイズMunusedを採用する。このように、常駐領域20中には、必要付加メモリサイズMneedを賄う空き容量がない場合には、現時点で割り当て可能な最大の容量を、操作対象プログラムの付加領域に追加するよう設定する。
【0108】
続いてステップ250では、ステップ245で決定した追加メモリサイズMaddに、操作対象プログラムの付加領域の容量の追加前の大きさを加算した結果の値を算出し、その加算結果に対応する応答性の高さを算出する。この算出においては、ステップ220において用いた対応関係を使用する。
【0109】
続いてステップ255では、ステップ250で算出した応答性の高さに従って、設定画面50中の操作対象プログラムに対応する設定つまみの位置を変化させる。ステップ255に続いては、ステップ235を実行する。
【0110】
このようなプログラム200を実行することで、CPU17aは、設定画面50中の設定つまみ51d〜53dのうち、ユーザの操作によって移動した設定つまみに対応する操作対象プログラムを特定し(ステップ210参照)、当該設定つまみの移動後の位置から、操作対象プログラムに要求される応答性の高さを算出する(ステップ215参照)。
【0111】
そしてCPU17aは、要求された応答性を満たすために、操作対象プログラムの付加領域に追加する必要がある必要増加メモリサイズMneedを算出し(ステップ225参照)、算出した必要付加メモリサイズMneedよりも常駐領域20の空きメモリ容量Munuseが大きいか否かを判定し(ステップ225参照)、大きければ必要付加メモリサイズMneed分だけ当該付加領域を拡大させ(ステップ230参照)、小さければ空きメモリ容量Munuseすべてを当該付加領域に追加する(ステップ245〜255参照)。そして、そのような付加領域の変更を、設定画面50中の応答性の表示に反映させる(ステップ240参照)。
【0112】
このように、CPU17aは、常駐グループに属するプログラムの実行のために当該プログラム以外のデータを読み込む付加領域をDRAM17bに確保するようになっており、また、当該付加領域の大きさを、操作部13に対するユーザの指定操作に従って決定する。
【0113】
したがって、常駐グループに属するプログラムの実行のためにDRAM17bに確保する付加領域の大きさを、ユーザが設定することができる。プログラムの実行においては、DRAM17bに確保される付加領域が大きいほど、そのプログラムの処理の応答性が高くなる(すなわち、より機敏に応答するようになる)。それ故、ユーザは、自分の好みに応じて、常駐グループに属するプログラムの応答性を調整することができる。
【0114】
(他の実施形態)
以上、本発明の実施形態について説明したが、本発明の範囲は、上記実施形態のみに限定されるものではなく、本発明の各発明特定事項の機能を実現し得る種々の形態を包含するものである。
【0115】
例えば、図4のステップ120において取得する、選択されたプログラムが必要とする最小メモリサイズとは、当該プログラム自体のデータ量に当該プログラムの実行のために最低限必要な付加領域の量を加えたものであってもよい。
【0116】
例えば、第1の記憶媒体は、DRAMに限らず、SRAMであってもよい。すなわち、第1の記憶媒体は、CPU17aが直接アクセスすることのできる一次記憶装置(すなわち、メインメモリ)であれば足りる。また、第2の記憶媒体は、ROM17c、HDD、DVDメディア、CDメディアに限らず、第1の記憶媒体よりもアクセス速度が低い2次記憶装置であればどのようなものであってもよい。
【0117】
また、付加領域は、上記実施形態において例示したようなものに限らない。すなわち、あるプログラムの付加領域は、そのプログラム自体を記憶するための領域でなく、かつ、そのプログラムの実行のためにCPU17aが用いるDRAM17b中の領域であれば、どのようなものでもよい。
【0118】
また、上記実施形態においては、ナビゲーション装置は車載タイプのものであるが、ナビゲーション装置は、船舶や飛行機に搭載されるものであってもよいし、人が持ち運びできるタイプのものであってもよい。例えば、ナビゲーション装置の機能を有する携帯電話機やPDAも、本発明のナビゲーション装置に該当する。
【図面の簡単な説明】
【0119】
【図1】本発明の一実施形態に係る車両用ナビゲーション装置1の構成図である。
【図2】DRAM17b内の記憶領域の構成、および、外部記憶部16に記録されているプログラムを示す図である。
【図3】画像表示装置12が表示する設定画面50を示す図である。
【図4】CPU17aが実行するプログラム100のフローチャートである。
【図5】CPU17aが実行するプログラム200のフローチャートである。
【符号の説明】
【0120】
1 車両用ナビゲーション装置
16 外部記憶部
17a CPU
17b DRAM
20 常駐領域
21〜23、25 プログラム領域
24 付加領域
26 空き領域
30 仮想記憶用領域
41 地図描画プログラム
42 検索プログラム
43 案内プログラム
44 ブラウザプログラム
45 ゲームプログラム
50 設定画面
51a〜55a 名称部
51b〜55b 選択部
51c〜53c インジケータ部
51d〜53d 設定つまみ
56 空きメモリ表示部

【特許請求の範囲】
【請求項1】
第1の記憶装置(17b)と、
前記第1の記憶装置(17b)よりもアクセス速度の遅い第2の記憶装置(16、17c)と、
前記第2の記憶装置(16、17c)に記憶された複数個のプログラムを、前記第1の記憶装置(17b)に読み込んで実行する演算回路(17a)と、を備え、
前記演算回路(17a)は、前記複数個のプログラムのうち、常駐グループに属するプログラムを、前記第1の記憶装置(17b)に常駐させ、前記常駐グループに属さないプログラムを、前記記憶装置(17b)に常駐させないことを特徴とするナビゲーション装置。
【請求項2】
ユーザの操作を受け付ける操作部(13)を備え、
前記演算回路(17a)は、前記操作部(13)に対するユーザの選択操作に基づいて、前記複数個のプログラムを、前記常駐グループに属するプログラムと前記常駐グループに属さないプログラムに振り分けることを特徴とする請求項1に記載のナビゲーション装置。
【請求項3】
ユーザに情報を報知するための報知装置(12)を備え、
前記演算回路(17a)は、前記複数のプログラムの前記常駐グループへの振り分けの状況を、前記報知装置(12)に報知させることを特徴とする請求項1または2に記載のナビゲーション装置。
【請求項4】
ユーザの操作を受け付ける操作部(13)を備え、
前記演算回路(17a)は、前記常駐グループに属するプログラムの実行のために当該プログラム以外のデータを読み込む付加領域を前記第1の記憶装置(17b)に確保し、前記付加領域のメモリサイズを、前記操作部(13)に対するユーザの指定操作に従って決定することを特徴とする請求項1ないし3のいずれか1つに記載のナビゲーション装置。
【請求項5】
第1の記憶装置(17b)と、前記第1の記憶装置(17b)よりもアクセス速度の遅い第2の記憶装置(16、17c)と、前記第2の記憶装置(16、17c)に記憶された複数個のプログラムを前記第1の記憶装置(17b)に読み込んで実行する演算回路(17a)と、を備えたナビゲーション装置に用いる制御用プログラムであって、
前記複数個のプログラムのうち、常駐グループに属するプログラムを、前記第1の記憶装置(17b)に常駐させ、前記常駐グループに属さないプログラムを、前記記憶装置(17b)に常駐させない機能を、前記演算回路(17a)に実現させる制御用プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2010−14590(P2010−14590A)
【公開日】平成22年1月21日(2010.1.21)
【国際特許分類】
【出願番号】特願2008−175748(P2008−175748)
【出願日】平成20年7月4日(2008.7.4)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】