(57)【要約】【課題】プログラムを迅速に起動させ、システムの起動時間の短縮化に寄与することができる「情報処理装置及びプログラム起動方法」を提供すること。【解決手段】システムの機能を実現するプログラムを格納した不揮発性のメモリと、揮発性のメモリと、ＣＰＵと、ＤＭＡコントローラとを備えた情報処理装置において、電源投入時に、ＣＰＵからの制御に基づきＤＭＡコントローラにより、不揮発性メモリから揮発性メモリへのプログラムの転送を開始する一方で（Ｓ３）、該転送の処理と並行してＣＰＵにより、当該プログラムの正当性をチェックし（Ｓ４、Ｓ５）、正当でないと判定した場合にＤＭＡコントローラに対し当該プログラムの転送を停止させる（Ｓ７）。【選択図】図２
2007293565.tif 000002
【特許請求の範囲】
【請求項１】
システムの機能を実現するプログラムを格納した不揮発性の第１の記憶手段と、
揮発性の第２の記憶手段と、
前記システム全体の制御を行う第１の制御手段と、
前記第１の記憶手段と前記第２の記憶手段の間のデータ転送を制御する第２の制御手段とを具備し、
前記第１の制御手段は、電源投入時に、前記第２の制御手段を制御して前記第１の記憶手段から前記第２の記憶手段への前記プログラムの転送を開始させる一方で、該転送の処理と並行して当該プログラムの正当性をチェックし、正当でないと判定した場合に当該プログラムの転送を停止させることを特徴とする情報処理装置。
【請求項２】
前記第１の制御手段は、当該プログラムが正当であると判定した場合に所要の初期化処理を行い、前記第２の制御手段から当該プログラムの転送を完了した旨の通知があったときに、当該プログラムを読み込んで所定の処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の制御手段は、前記第２の制御手段に対し当該プログラムの転送を停止させたときに、リカバリプログラムを読み込んで所要の修復処理を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１の記憶手段はフラッシュメモリであり、前記第２の記憶手段はランダムアクセスメモリであることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
車両に搭載されていることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
不揮発性の第１の記憶手段と、揮発性の第２の記憶手段と、システム全体の制御を行う第１の制御手段と、前記第１の記憶手段と前記第２の記憶手段の間のデータ転送を制御する第２の制御手段とを備えた情報処理装置において、
前記システムの電源投入時に、前記第２の制御手段により、前記第１の記憶手段から前記第２の記憶手段へのプログラムの転送を開始すると共に、
該転送の処理と並行して前記第１の制御手段により、当該プログラムの正当性をチェックし、正当でないと判定した場合に、前記第２の制御手段に対し当該プログラムの転送を停止させることを特徴とするプログラム起動方法。
【請求項７】
前記第１の制御手段により、前記第２の制御手段に対し当該プログラムの転送を停止させたときに、リカバリプログラムを読み込んで所要の修復処理を実行することを特徴とする請求項６に記載のプログラム起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの機能を実現するプログラムを起動させるのに有用な技術に関し、特に、ナビゲーション装置や各種オーディオ機器などから構築される車載システムにおいて各装置や機器の機能を実現するプログラムを起動させるよう適応された情報処理装置及びプログラム起動方法に関する。
【背景技術】
【０００２】
近年の車載システムは、プログラムをＣＤやＤＶＤ等のディスクメディアなどによりバージョンアップ（プログラムの内容を更新）することができる機構を備えている。そのため、実際にシステムの機能を実現するＯＳ(Operating System)を含むプログラム（以下、便宜上「アプリケーションプログラム」ともいう。）と、システムの起動時に必要最少限の処理を行い、アプリケーションプログラムを起動するＩＰＬ(Initial Program Loader)と呼ばれるプログラムの２種類のプログラムを内蔵した構成となっている。これは、万一バージョンアップ時にシステムの電源がオフとなってアプリケーションプログラムが破壊されてしまった場合にも、その修復が可能であることを保証するための機構である。
【０００３】
かかるシステムでは、その性能を向上させるため、アプリケーションプログラムは読み出し専用メモリ（ＲＯＭ）やフラッシュメモリ等の書き換え可能な不揮発性メモリに格納しておき、システムの起動時に中央処理演算装置（ＣＰＵ）からの制御に基づいて、アクセス速度のより高速なランダムアクセスメモリ（ＲＡＭ）等の揮発性メモリに転送（ロード）し、ＲＡＭ上で当該プログラムを展開して実行するのが一般的である。図３はその場合のシステムの起動シーケンスの概略を示したものであり、従来のシステムにおいて行うプログラム起動処理に係る動作シーケンスの一例を示している。
【０００４】
図３に例示するように、先ず、システムの電源が投入されると（電源ＯＮ）、ＩＰＬが起動し、ＣＰＵでは、バスコントローラ、シリアルＩ／Ｏコントローラ等のＣＰＵ周りの初期化を行い（ステップＳ２１）、フラッシュメモリ等に格納されているアプリケーションプログラム（今から実行しようとするプログラム）の正当性をチェックした後（ステップＳ２２）、当該アプリケーションプログラムのＲＡＭへの転送（ＲＡＭ上でのプログラムの展開）を行う（ステップＳ２３）。アプリケーションプログラムのＲＡＭ展開を完了すると、ＣＰＵでは、その他の必要な初期化処理を行い（ステップＳ２４）、アプリケーションプログラムへ分岐する（ステップＳ２５）。次いでＣＰＵでは、ＲＡＭ展開されたアプリケーションプログラムを読み込んで、その初期化を行った後（ステップＳ２６）、当該プログラムに規定された手順に従って所定の処理を実行する。これによって、アプリケーションプログラムが起動して通常動作が開始され（ステップＳ２７）、システムが作動する。
【０００５】
上記の従来技術に関連する技術としては、例えば、特許文献１に記載されるように、システムリセット（初期化）とは独立したメモリアクセスコントローラ（ＤＭＡＣ）を、ＲＡＭにつながるホストバスとＲＯＭにつながるＩ／Ｏバスとの間に介在させたシステムにおいて、ＤＭＡＣにより、起動直後からシステムリセット期間中にＲＯＭからＲＡＭにデータを転送しておき、システムリセット処理が終了した直後にはメモリにデータが格納された状態とするようにしたものがある。
【特許文献１】特開２００３−３３７７４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように従来の技術では、システムの性能向上のため、アプリケーションプログラムはＲＯＭやフラッシュメモリ等に格納しておき、システムの起動時にアクセス速度のより高速なＲＡＭ等に転送（ロード）し、ＲＡＭ上で当該プログラムを展開して実行するのが一般的であった。そして、その手法として、図３に例示したようなＣＰＵによるシーケンス動作が行われていた。
【０００７】
しかしながら、このシーケンス動作では、転送されるプログラムのサイズ（データ量）に依存してメモリ（ＲＡＭ）上でのプログラム展開に要する時間が長くなるため（ステップＳ２３の処理）、それに応じて当該プログラムの起動が遅くなってしまうことになる。つまり、プログラムを迅速に起動させることができないといった問題があった。現在の車載システムにおいては多機能化が進んでおり、今後ますますプログラムのサイズは拡大していく傾向にあるため、起動時間の短縮化は大きな課題となっている。
【０００８】
なお、上記の特許文献１には、ＣＰＵとは別のコントローラ（ＤＭＡＣ）により、起動直後からシステムリセット期間中にＲＯＭからＲＡＭへのデータ転送を行うことで起動時間を少しでも早くするようにした技術が開示されているが、データ転送を行っている途中で当該データに何らかの不具合が発生した場合の対策等については明示されていない。
【０００９】
本発明は、かかる従来技術における課題に鑑み創作されたもので、プログラムを迅速に起動させ、ひいてはシステムの起動時間の短縮化に寄与することができる情報処理装置及びプログラム起動方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の従来技術の課題を解決するため、本発明の一形態によれば、システムの機能を実現するプログラムを格納した不揮発性の第１の記憶手段と、揮発性の第２の記憶手段と、前記システム全体の制御を行う第１の制御手段と、前記第１の記憶手段と前記第２の記憶手段の間のデータ転送を制御する第２の制御手段とを具備し、前記第１の制御手段は、電源投入時に、前記第２の制御手段を制御して前記第１の記憶手段から前記第２の記憶手段への前記プログラムの転送を開始させる一方で、該転送の処理と並行して当該プログラムの正当性をチェックし、正当でないと判定した場合に当該プログラムの転送を停止させることを特徴とする情報処理装置が提供される。
【００１１】
本発明に係る情報処理装置によれば、電源投入時に、第１の制御手段からの制御に基づき第２の制御手段により、第１の記憶手段に格納されているプログラムの第２の記憶手段への転送を開始すると共に、この転送の処理と並行して第１の制御手段では、当該プログラムの正当性をチェックし、正当でない場合には当該プログラムの転送処理を停止するよう制御している。つまり、第１の制御手段と第２の制御手段は並行して処理を行っているので、第１の制御手段は、第２の制御手段によるプログラム転送の処理中に、他の必要な初期化処理を行うことができる。
【００１２】
従来の技術では、図３に例示したようにアプリケーションプログラムをＲＡＭにロードして実行する場合、ＣＰＵが単独で各処理をシーケンシャル（連続的）に実行していたため、ＣＰＵがプログラムの転送処理（ＲＡＭ展開）を完了するまではその他の必要な初期化処理を実行することができなかった。
【００１３】
これに対し、本発明によれば、プログラムの転送を第２の制御手段に行わせるようにしているので、第１の制御手段では、他の必要な初期化処理を並行して行うことができる。これによって、当該プログラムを迅速に起動させることができ、システムの起動時間の短縮化に寄与することができる。
【００１４】
また、本発明では、転送中のプログラムが正当でないと判定した場合には、第２の制御手段に対しその転送処理を停止するよう制御しているので、それ以降の時間の無駄を無くすことができる。これは、最終的にはシステムの起動時間の短縮化に寄与する。
【００１５】
また、本発明の他の形態によれば、不揮発性の第１の記憶手段と、揮発性の第２の記憶手段と、システム全体の制御を行う第１の制御手段と、前記第１の記憶手段と前記第２の記憶手段の間のデータ転送を制御する第２の制御手段とを備えた情報処理装置において、前記システムの電源投入時に、前記第２の制御手段により、前記第１の記憶手段から前記第２の記憶手段へのプログラムの転送を開始すると共に、該転送の処理と並行して前記第１の制御手段により、当該プログラムの正当性をチェックし、正当でないと判定した場合に、前記第２の制御手段に対し当該プログラムの転送を停止させることを特徴とするプログラム起動方法が提供される。
【００１６】
本発明に係る情報処理装置及びプログラム起動方法の他の特徴及びそれに基づく動作態様等については、後述する発明の実施の形態を参照しながら詳細に説明する。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について、添付の図面を参照しながら説明する。
【００１８】
図１は本発明の一実施形態に係る情報処理装置の構成をブロック図の形態で示したものである。本実施形態では、情報処理装置１０を車載システムに適用しており、この車載システムを構成する各種の車載機器（ナビゲーション装置、ＣＤプレーヤ、ＤＶＤプレーヤ等のオーディオ機器、エアコンなど）の機能を実現する各種アプリケーションプログラムを起動させるよう適応されている。
【００１９】
本実施形態に係る情報処理装置１０は、図示のように中央処理演算装置（ＣＰＵ）１１と、入力デバイス１２と、出力デバイス１３と、不揮発性メモリとしてのフラッシュメモリ１４と、揮発性メモリとしての同期式ダイナミックＲＡＭ（ＳＤＲＡＭ）１５と、ダイレクトメモリアクセス（ＤＭＡ）コントローラ１６と、ディスクメディア１７とを備えており、各ユニット１１〜１７はシステムバス１８を介して相互に接続されている。
【００２０】
ＣＰＵ１１は、本装置全体の制御を行うものであり、基本的にはプログラムを読み込んでそのプログラムに規定された手順に従い所定の処理を実行する。このＣＰＵ１１は、本発明に関連する処理として、後述するようにＤＭＡコントローラ１６と協働してプログラム起動に係る処理を制御する。入力デバイス１２は、本装置の起動／停止時に電源をＯＮ／ＯＦＦ（オン／オフ）するための電源キーや本装置をリセットするためのリセットキーなど各種操作キーと、キー操作に基づき入力された信号をシステムバス１８に接続するためのキーインタフェースとを備えている。出力デバイス１３は、システムバス１８を介して送られてくるデータを画面に表示するＬＣＤモニタ等の表示デバイスや、スピーカ等の音声出力ユニットなどを備えている。
【００２１】
フラッシュメモリ１４には、当該システムに含まれる各車載機器の機能を実現するためのＯＳを含むプログラム（アプリケーションプログラム）と、システムの起動時にアプリケーションプログラムを起動するためのＩＰＬ（プログラム）とが予め格納されており、さらに必要に応じて、ユーザにより作成されたデータや追加されたプログラム等が適宜格納される。このフラッシュメモリ１４に格納されたプログラムやデータは、必要なときにＳＤＲＡＭ１５にロードされて使用される。
【００２２】
ディスクメディア１７は、例えば、ＨＤＤやＤＶＤ−ＲＯＭ等の記録媒体であり、アプリケーションプログラムの内容が破壊されてしまった場合にその修復を行うためのリカバリプログラムを格納している。例えば、プログラムの内容を更新（バージョンアップ）する際にシステムの電源がオフとなってしまった場合や、後述するようにＤＭＡコントローラ１６によるプログラムのＤＭＡ転送の途中でその転送を停止した場合などに、当該プログラムの内容が破壊される可能性がある。このディスクメディア１７に格納されたリカバリプログラムも同様に、必要なときにＳＤＲＡＭ１５にロードされて使用される。本実施形態では、ディスクメディア１７（ＨＤＤやＤＶＤ−ＲＯＭ等）にリカバリプログラムを格納しているが、フラッシュメモリ１４の容量に余裕が有れば、ＩＰＬ、アプリケーションプログラムと共にリカバリプログラムを格納させるようにしてもよい。
【００２３】
ＤＭＡコントローラ１６は、後述するように電源投入時にＣＰＵ１１からの制御（起動指示）に基づき、システムバス１７を介して、フラッシュメモリ１４からＳＤＲＡＭ１５へのアプリケーションプログラムの転送（プログラムのメモリ（ＲＡＭ）上での展開）を開始する。そして、当該プログラムのＤＭＡ転送を完了したときに、その旨をＣＰＵ１１に通知する。さらにＤＭＡコントローラ１６は、後述するようにＣＰＵ１１からＤＭＡ転送を停止する旨の指示（停止指示）を受信した場合には、その時点で実行中のプログラムの転送処理を直ちに停止する。
【００２４】
以上の構成に係る情報処理装置１０において、ＣＰＵ１１は「第１の制御手段」に、フラッシュメモリ１４は「第１の記憶手段」に、ＳＤＲＡＭ１５は「第２の記憶手段」に、ＤＭＡコントローラ１６は「第２の制御手段」に、それぞれ対応している。
【００２５】
以下、本実施形態に係る情報処理装置１０において行うプログラム起動処理について、その動作シーケンスの一例を示す図２を参照しながら説明する。
【００２６】
先ず、入力デバイス１２を介してシステムの電源が投入されると（電源ＯＮ）、ＩＰＬが起動し、ＣＰＵ１１では、メモリコントローラ、バスコントローラ、シリアルＩ／Ｏコントローラ等のＣＰＵ周りの初期化を行う（ステップＳ１）。次にＣＰＵ１１では、ＤＭＡコントローラ１６に対し、ＤＭＡ転送を開始する旨の起動指示を発信する（ステップＳ２）。これにより、ＤＭＡコントローラ１６では、フラッシュメモリ１４からＳＤＲＡＭ１５へのアプリケーションプログラム（今から実行しようとするプログラム）の転送を開始し、当該プログラムをメモリ（ＲＡＭ）上で展開し始める（ステップＳ３）。
【００２７】
このようにアプリケーションプログラムのＤＭＡ転送（ＲＡＭ展開）を行っている間、ＣＰＵ１１では、チェックサム等の手法により、現在転送中のアプリケーションプログラムの正当性をチェックする（ステップＳ４）。そして、そのチェック結果に基づき、アプリケーションプログラムの正当性がアサートされた（ＹＥＳ）かネゲートされた（ＮＯ）かを判定する（ステップＳ５）。判定結果がＹＥＳの場合（チェックＯＫの場合）にはステップＳ６に移行し、判定結果がＮＯの場合（アプリケーションプログラムが正当でない場合）にはステップＳ７に移行する。
【００２８】
ＣＰＵ１１では、アプリケーションプログラムが正当でないと判定した場合には、ＤＭＡコントローラ１６に対し、現在実行中のＤＭＡ転送（アプリケーションプログラムの転送）を停止する旨の停止指示を発信する。これにより、ＤＭＡコントローラ１６では、現在実行中のプログラムの転送処理を直ちに停止する（ステップＳ７）。さらにＣＰＵ１１では、そのＤＭＡ転送の停止に起因して破壊されている可能性のある当該アプリケーションプログラムの修復を行うために、ディスクメディア１７からリカバリプログラムをＳＤＲＡＭ１５に展開して実行する（ステップＳ８）。この修復処理が完了すると、システムはリセット状態となる。
【００２９】
一方、ステップＳ５においてアプリケーションプログラムが正当であると判定した場合には、ＣＰＵ１１では、その他の必要な初期化処理（例えば、エンジンを起動してから規定時間以内に動作可能な状態に設定されることが要求されるような、時間制約のあるデバイスを初期化する処理など）を行う（ステップＳ６）。
【００３０】
ＤＭＡコントローラ１６では、アプリケーションプログラムのＤＭＡ転送（プログラムのＲＡＭ展開）を完了すると、その旨をＣＰＵ１１に通知する（ステップＳ９）。これを受けてＣＰＵ１１では、ＩＰＬから当該アプリケーションプログラムへ分岐する（ステップＳ１０）。
【００３１】
次にＣＰＵ１１では、その分岐されたアプリケーションプログラムを読み込んで、その初期化を行った後（ステップＳ１１）、当該プログラムに規定された手順に従って所定の処理を実行する。これによって、アプリケーションプログラムが起動して通常動作が開始され（ステップＳ１２）、システムが作動する。
【００３２】
以上説明したように、本実施形態に係る情報処理装置１０（図１）において行うプログラム起動処理（図２）によれば、ＣＰＵ１１からＤＭＡコントローラ１６に対しアプリケーションプログラムの転送開始を指示してからそのＤＭＡ転送の完了通知を受信するまでの間は、ＣＰＵ１１とＤＭＡコントローラ１６は並行して処理を行っているので、ＣＰＵ１１は、ＤＭＡコントローラ１６によるアプリケーションプログラムのＲＡＭ展開の処理中に、その他の必要な初期化処理（ステップＳ６）を行うことができる。
【００３３】
従来のシステムの起動シーケンスでは（図３）、アプリケーションプログラムをＲＡＭにロードして実行する場合、ＣＰＵが単独で各処理をシーケンシャル（連続的）に実行していたため（ステップＳ２１〜Ｓ２７）、ＣＰＵはプログラムのＲＡＭ展開（ステップＳ２３）を完了するまではその他の必要な初期化処理（ステップＳ２４）を実行することができないといった不都合があった。
【００３４】
これに対し、本実施形態に係るシステムの起動シーケンスでは（図２）、アプリケーションプログラムのＲＡＭ展開（ステップＳ３）をＤＭＡコントローラ１６に行わせるようにしているので、ＣＰＵ１１は、起動時のその他の必要な初期化処理（ステップＳ６）を並行して行うことができる。つまり、ＤＭＡコントローラ１６との並行処理により、図２において破線で囲んだ枠の部分の処理が高速化されることになる。その結果、アプリケーションプログラムを迅速に起動させることが可能となり、システムの起動時間の短縮化に寄与することができる。
【００３５】
また、本実施形態では、ＤＭＡ転送中のアプリケーションプログラムが正当でないと判定した場合には（ステップＳ７）、ＤＭＡコントローラ１６に対し、現在実行中のＤＭＡ転送（アプリケーションプログラムのＲＡＭ展開）を直ちに停止するよう制御しているので、それ以降の時間の無駄を無くすことができる。そして、そのＤＭＡ転送の停止に起因して破壊されている可能性のある当該アプリケーションプログラムに対して、その修復を行うための対策を講じている（リカバリプログラムの実行）。前述した特許文献１に開示された技術では、このような対策については明示されていない。
【００３６】
上述した実施形態では、情報処理装置１０を車載システムの一部として組み込んだ場合を例にとって説明したが、本発明の要旨からも明らかなように、必ずしも車載システムに適用する必要がないことはもちろんである。例えば、ＰＣ（パーソナルコンピュータ）や携帯型のＰＤＡ(Personal Digital Assistants) 等の情報処理装置にも、本発明は同様に適用することが可能である。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】図１の情報処理装置において行うプログラム起動処理に係る動作シーケンスの一例を示すフロー図である。
【図３】従来のシステムにおいて行うプログラム起動処理に係る動作シーケンスの一例を示すフロー図である。
【符号の説明】
【００３８】
１０…情報処理装置、
１１…ＣＰＵ（第１の制御手段）、
１４…フラッシュメモリ（不揮発性の第１の記憶手段）、
１５…ＳＤＲＡＭ（揮発性の第２の記憶手段）、
１６…ＤＭＡコントローラ（第２の制御手段）。
１７…ディスクメディア。
【図１】
2007293565.tif 000003
【図２】
2007293565.tif 000004
【図３】
2007293565.tif 000005