(57)【特許請求の範囲】
【請求項１】
電源投入後に起動処理を行う第１の処理部、及び第２の処理部と、
前記第１の処理部が実行し、実行中に予め定められた状態に遷移する過程を含む第１の処理が記述された第１のプログラム、及び、当該第１のプログラムと別バージョンの第２のプログラムを記憶する第１の記憶部と、
前記第２の処理部が実行し、実行中に予め定められた状態に遷移する過程を含む第２の処理が記述された第３のプログラム、及び、当該第３のプログラムと別バージョンの第４のプログラムを記憶する第２の記憶部と、
前記第１の処理部からの応答信号を伝送する第１の信号線と、
前記第２の処理部からの応答信号を伝送する第２の信号線と、
前記第１の処理部への制御信号を伝送する第３の信号線と、
前記第２の処理部への制御信号を伝送する第４の信号線と、
前記第１の信号線及び前記第３の信号線で前記第１の処理部と接続され、前記第２の信号線及び前記第４の信号線で前記第２の処理部と接続されており、起動処理を制御するプログラム起動制御部と
を備え、
前記第１の処理部は、前記第１の処理の実行中に自身の状態の遷移に合わせて、順に前記第１の信号線における応答信号のオン及びオフの切り替えを行うことで、複数ある状態遷移を前記プログラム起動制御部に通知するとともに、前記第３の信号線における制御信号のオン又はオフを読み取り次の状態に遷移するかを判断し、
前記第２の処理部は、前記第２の処理の実行中に自身の状態の遷移に合わせて、順に前記第２の信号線における応答信号のオン及びオフの切り替えを行うことで、複数ある状態遷移を前記プログラム起動制御部に通知するとともに、前記第４の信号線における制御信号のオン又はオフを読み取り次の状態に遷移するかを判断し、
前記プログラム起動制御部は、前記第１の信号線における応答信号のオン又はオフの状態により、前記第１の処理部の遷移状態を確認し、前記第２の信号線における応答信号のオン又はオフの状態により、前記第２の処理部の遷移状態を確認し、前記第１の処理部及び前記第２の処理部の状態遷移が予め定められた順となるように、前記第３の信号線及び前記第４の信号線のオン及びオフの切り替えを行うこと
を特徴とする情報処理装置。
【請求項２】
前記プログラム起動制御部は、前記第１の処理部とリセット信号を伝送する第５の信号線で接続されているとともに、前記第２の処理部とリセット信号を伝送する第６の信号線で接続されており、
前記プログラム起動制御部は、前記第１の信号線における応答信号のオン又はオフの状態により、前記第１の処理部の遷移状態を確認し、前記第２の信号線における応答信号のオン又はオフの状態により、前記第２の処理部の遷移状態を確認することで、予め定められた期間に、前記第１の処理部及び前記第２の処理部の少なくとも何れか一方で、予め定められた状態の遷移がなかった場合には、起動の失敗と判断し、前記第５の信号線及び前記第６の信号線におけるリセット信号によって、前記第１の処理部及び前記第２の処理部を再起動させること
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プログラム起動制御部は、前記第１の処理部と第７の信号線で接続されており、前記第７の信号線における信号のオン又はオフによって前記第１の処理部が前記第１のプログラムを実行するか、前記第２のプログラムを実行するかを通知し、
前記第１の処理部は、前記第２の処理部と第８の信号線で接続されており、前記第７の信号線における信号に基づいて前記第８の信号線における信号をオン又はオフすることによって、前記第２の処理部が前記第３のプログラムを実行するか、前記第４のプログラムを実行するかを通知すること
を特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記プログラム起動制御部は、前記第１の処理部と第７の信号線で接続されているとともに、前記第２の処理部と第８の信号線で接続されており、
前記プログラム起動制御部は、前記第１の処理部、又は、前記第２の処理部の起動を行う際に、前記第７の信号線における信号のオン又はオフによって、前記第１の処理部が、前記第１のプログラムを実行するか、前記第２のプログラムを実行するかを通知するとともに、前記第８の信号線における信号のオン又はオフによって、前記第２の処理部が、前記第３のプログラムを実行するか、前記第４のプログラムを実行するかを通知すること
を特徴とする請求項１又は２に記載の情報処理装置。
【請求項５】
実行中に予め定められた状態に遷移する過程を含む第１の処理が記述された第１のプログラム、又は、当該第１のプログラムと別バージョンの第２のプログラムを実行する第１の処理部と、
実行中に予め定められた状態に遷移する過程を含む第２の処理が記述された第３のプログラム、又は、当該第３のプログラムと別バージョンの第４のプログラムを実行する第２の処理部と、
前記第１の処理部及び前記第２の処理部の起動処理を制御するプログラム起動制御部とを備える情報処理装置の起動方法であって、
前記第１の処理部は、前記第１の処理の実行中に自身の状態の遷移に合わせて、順に第１の信号線における応答信号のオン及びオフの切り替えを行うことで、複数ある状態遷移を前記プログラム起動制御部に通知するとともに、第３の信号線における制御信号のオン又はオフを読み取り次の状態に遷移するかを判断し、
前記第２の処理部は、前記第２の処理の実行中に自身の状態の遷移に合わせて、順に第２の信号線における応答信号のオン及びオフの切り替えを行うことで、複数ある状態遷移を前記プログラム起動制御部に通知するとともに、第４の信号線における制御信号のオン又はオフを読み取り次の状態に遷移するかを判断し、
前記プログラム起動制御部は、前記第１の信号線における応答信号のオン又はオフの状態により、前記第１の処理部の遷移状態を確認し、前記第２の信号線における応答信号のオン又はオフの状態により、前記第２の処理部の遷移状態を確認し、前記第１の処理部及び前記第２の処理部の状態遷移が予め定められた順となるように、前記第３の信号線及び前記第４の信号線のオン及びオフの切り替えを行うこと
を特徴とする起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び起動方法に関し、特に、複数の処理を備える情報処理装置及びその起動方法に関する。
【背景技術】
【０００２】
一般に、監視システムにおける映像記録再生装置である監視レコーダは、カメラから送信される映像データを大容量メモリに記録する記録系と、大容量メモリに記録された映像データを再生する再生系とを備える。【０００３】
特に、監視レコーダは、カメラから送信される映像データを記録し続けることが重要である。このため記録系のプロセッサである記録系ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と再生系のプロセッサである再生系ＣＰＵとを別個独立して備えることで、再生系ＣＰＵからの影響を受けることなく記録系ＣＰＵを動作させ続けることができる。【０００４】
監視レコーダでは、時々刻々と変化するセキュリティの脅威に対応するためにプログラムの更新をする必要がある。一方、記録系ＣＰＵと再生系ＣＰＵとで映像データのやり取りを行うために、記録系ＣＰＵ及び再生系ＣＰＵで動作するプログラムは対応付けられたものである必要がある。【０００５】
プログラムの更新処理が行われた際に、プログラムが正しく更新されず、新しいプログラムに破損があった場合、又は、各ＣＰＵに対して新しく更新されたプログラム同士のバージョンが異なっている場合等、その新しいプログラムで起動すると互いにデータのやり取りができず、正常に監視レコーダとして動作できないことがある。そのため、更新される前の古いプログラムを保存し、起動できなかった場合には古いプログラムを使って再起動する方法がある。【０００６】
例えば、特許文献１に記載されたマルチＣＰＵシステムでは、起動時に複数のＣＰＵが自己のプログラムバージョンを他方のＣＰＵに通知して、異なっていると判断すると、新しいプログラムで起動していたＣＰＵが古いプログラムに切り替えて再起動する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１６０４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載されたマルチＣＰＵシステムにおいては、プログラムのバージョンを確認するために、まず、自己のバージョンをメモリから読み出して特定の通信プロトコルに従って送信し、他方のＣＰＵから送信されたバージョンを受信して、比較を行わなければならない。起動時にこのような処理を行うためには、起動プログラム又はＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が正常に起動する必要がある。起動プログラム又はＯＳの起動時にエラーが発生した場合には、ＣＰＵは他方のＣＰＵのプログラムバージョンを確認できず、再起動してもどちらか一方のバージョンに合わせることができない。【０００９】
そこで、本発明は、上記の課題を解決するためになされたものであり、一方の処理部がプログラムの起動に失敗した場合でも、全ての処理部が互いに互換性を持ったバージョンのプログラムで再起動を行うことができるようにすることを目的とするものである。
【課題を解決するための手段】
【００１０】
本発明の一態様に係る情報処理装置は、電源投入後に起動処理を行う第１の処理部、及び第２の処理部と、前記第１の処理部が実行し、実行中に予め定められた状態に遷移する過程を含む第１の処理が記述された第１のプログラム、及び、当該第１のプログラムと別バージョンの第２のプログラムを記憶する第１の記憶部と、前記第２の処理部が実行し、実行中に予め定められた状態に遷移する過程を含む第２の処理が記述された第３のプログラム、及び、当該第３のプログラムと別バージョンの第４のプログラムを記憶する第２の記憶部と、前記第１の処理部からの応答信号を伝送する第１の信号線と、前記第２の処理部からの応答信号を伝送する第２の信号線と、前記第１の処理部への制御信号を伝送する第３の信号線と、前記第２の処理部への制御信号を伝送する第４の信号線と、前記第１の信号線及び前記第３の信号線で前記第１の処理部と接続され、前記第２の信号線及び前記第４の信号線で前記第２の処理部と接続されており、起動処理を制御するプログラム起動制御部とを備え、前記第１の処理部は、前記第１の処理の実行中に自身の状態の遷移に合わせて、順に前記第１の信号線における応答信号のオン及びオフの切り替えを行うことで、複数ある状態遷移を前記プログラム起動制御部に通知するとともに、前記第３の信号線における制御信号のオン又はオフを読み取り次の状態に遷移するかを判断し、前記第２の処理部は、前記第２の処理の実行中に自身の状態の遷移に合わせて、順に前記第２の信号線における応答信号のオン及びオフの切り替えを行うことで、複数ある状態遷移を前記プログラム起動制御部に通知するとともに、前記第４の信号線における制御信号のオン又はオフを読み取り次の状態に遷移するかを判断し、前記プログラム起動制御部は、前記第１の信号線における応答信号のオン又はオフの状態により、前記第１の処理部の遷移状態を確認し、前記第２の信号線における応答信号のオン又はオフの状態により、前記第２の処理部の遷移状態を確認し、前記第１の処理部及び前記第２の処理部の状態遷移が予め定められた順となるように、前記第３の信号線及び前記第４の信号線のオン及びオフの切り替えを行うことを特徴とする。
【００１１】
本発明の一態様に係る起動方法は、実行中に予め定められた状態に遷移する過程を含む第１の処理が記述された第１のプログラム、又は、当該第１のプログラムと別バージョンの第２のプログラムを実行する第１の処理部と、実行中に予め定められた状態に遷移する過程を含む第２の処理が記述された第３のプログラム、又は、当該第３のプログラムと別バージョンの第４のプログラムを実行する第２の処理部と、前記第１の処理部及び前記第２の処理部の起動処理を制御するプログラム起動制御部とを備える情報処理装置の起動方法であって、前記第１の処理部は、前記第１の処理の実行中に自身の状態の遷移に合わせて、順に第１の信号線における応答信号のオン及びオフの切り替えを行うことで、複数ある状態遷移を前記プログラム起動制御部に通知するとともに、第３の信号線における制御信号のオン又はオフを読み取り次の状態に遷移するかを判断し、前記第２の処理部は、前記第２の処理の実行中に自身の状態の遷移に合わせて、順に第２の信号線における応答信号のオン及びオフの切り替えを行うことで、複数ある状態遷移を前記プログラム起動制御部に通知するとともに、第４の信号線における制御信号のオン又はオフを読み取り次の状態に遷移するかを判断し、前記プログラム起動制御部は、前記第１の信号線における応答信号のオン又はオフの状態により、前記第１の処理部の遷移状態を確認し、前記第２の信号線における応答信号のオン又はオフの状態により、前記第２の処理部の遷移状態を確認し、前記第１の処理部及び前記第２の処理部の状態遷移が予め定められた順となるように、前記第３の信号線及び前記第４の信号線のオン及びオフの切り替えを行うことを特徴とする。
【発明の効果】
【００１２】
本発明の一態様によれば、一方の処理部がプログラムの起動に失敗した場合でも、全ての処理部が互いに互換性を持ったバージョンのプログラムで再起動を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係る映像記録再生装置である監視レコーダの構成を概略的に示すブロック図である。
【図２】実施の形態１における記録系プログラム記憶部に記憶されているプログラムの一例を示す概略図である。
【図３】実施の形態１における再生系プログラム記憶部に記憶されているプログラムの一例を示す概略図である。
【図４】実施の形態１におけるプログラム起動制御部の構成を概略的に示すブロック図である。
【図５】実施の形態１におけるプログラム起動制御部の起動制御動作を示すフローチャートである。
【図６】実施の形態１における再生部の起動動作を示すフローチャートである。
【図７】実施の形態１における記録系ＣＰＵ及び再生系ＣＰＵの接続例を示す概略図である。
【図８】実施の形態１における記録部の起動動作を示すフローチャートである。
【図９】（Ａ）及び（Ｂ）は、実施の形態１におけるプログラム起動制御部と再生系ＣＰＵとの間の通信の一例を示すタイミングチャートである。
【図１０】実施の形態２に係る監視レコーダの構成を概略的に示すブロック図である。
【図１１】実施の形態２におけるプログラム起動制御部の構成を概略的に示すブロック図である。
【発明を実施するための形態】
【００１４】
実施の形態１．
次に、図面を用いて、実施の形態を説明する。図面において、同一又は類似の部分には、同一又は類似の符号を付している。但し、図面は模式的なものであり、各寸法の比率等は現実のものとは異なる。従って、具体的な寸法等は以下の説明を参酌して判断すべきものである。また、図面相互間においても互いの寸法の関係又は比率が異なる部分が含まれていることは勿論である。
【００１５】
図１は、実施の形態１に係る情報処理装置である監視レコーダ１１０の構成を概略的に示すブロック図である。図１において、監視レコーダ１１０を含む監視システム１００は、監視レコーダ１１０以外に監視カメラとしての複数のカメラ１５０Ａ、１５０Ｂ、１５０Ｃ及び映像表示装置としての表示装置１６０を含む。
【００１６】
監視カメラは、第１カメラ１５０Ａ、第２カメラ１５０Ｂ及び第３カメラ１５０Ｃからなり、それぞれが監視レコーダ１１０に接続されている。なお、第１カメラ１５０Ａ、第２カメラ１５０Ｂ及び第３カメラ１５０Ｃの各々を特に区別する必要がない場合には、カメラ１５０という。カメラ１５０は、監視対象を撮影して得られた映像データを監視レコーダ１１０に送信する。カメラ１５０は、例えば、監視レコーダ１１０から離れた場所に設置されてもよい。
【００１７】
監視レコーダ１１０は、カメラ１５０から送信された映像データを受信し記録する映像記録再生装置として機能する。
表示装置１６０は、監視レコーダ１１０に接続される出力装置であり、監視レコーダ１１０に記録された映像データに基づく記録映像、又は、カメラ１５０の撮影によって生成された映像データに基づく現在映像を表示する。なお、ここでカメラ１５０の台数を３台としたが、３台に限られないことはいうまでもない。例えば、１台、２台又は４台以上のいずれであってもよい。カメラ１５０と監視レコーダ１１０との接続は、データのやり取りが可能な接続であれば、有線及び無線の何れの接続方式でもよく、それらが混在した接続方式でもよい。また、ネットワーク又は他の中継装置を介した接続であってもよい。
【００１８】
図１に示されるように、監視レコーダ１１０は、通信Ｉ／Ｆ（ＩｎｔｅｒＦａｃｅ）部１１１と、出力Ｉ／Ｆ部１１２と、接続Ｉ／Ｆ部１１３と、第１システムとしての記録系である記録部１２０と、第２システムとしての再生系である再生部１３０と、プログラム起動制御部１４０と、通知部１４５とを備える。
【００１９】
通信Ｉ／Ｆ部１１１は、カメラ１５０との間の通信を行うインタフェースである。例えば、通信Ｉ／Ｆ部１１１は、カメラ１５０から送信された映像データを受信する。
出力Ｉ／Ｆ部１１２は、表示装置１６０との間の通信を行うインタフェースである。例えば、出力Ｉ／Ｆ部１１２は、表示装置１６０に再生データを出力する。
接続Ｉ／Ｆ部１１３は、外部記憶装置１７０を接続するためのインタフェースである。
【００２０】
記録部１２０は、通信Ｉ／Ｆ部１１１を介して、カメラ１５０から映像データを取得して、記録を行う。記録部１２０は、記録系プログラム記憶部１２１と、記録系ワークメモリ１２２と、情報格納部１２３と、記録系ＣＰＵ１２４とを備える。
【００２１】
記録系プログラム記憶部１２１は、監視レコーダ１１０の電源が投入され記録系ＣＰＵ１２４が起動処理を開始するときに実行するプログラムを記憶する記憶部（メモリ）である。実施の形態１では、記録系ＣＰＵ１２４で実行されるプログラムは、ブートローダ、ＯＳ及び記録系アプリケーションであるものとして説明する。
【００２２】
ブートローダは、ＯＳを起動するための処理を実行するプログラムである。例えば、ブートローダは、実行するＯＳの指定、ワーキングメモリの初期化及び起動ログの取得等を行う。さらに、ブートローダは、ＯＳに比べ機能が制限されており、一般的に複数の処理を並列的に処理することができない。
ＯＳは、記録部１２０の全体を管理するための基本ソフトである。
記録系アプリケーションプログラムは、例えば、カメラ１５０から送信された映像データを受け取り、情報格納部１２３に記録する動作を行うプログラム等である。記録系アプリケーションプログラムは、ＯＳの起動後に、処理を開始することができる。また、ＯＳの起動後であれば、同じアプリケーションプログラムを複数同時に実行することができ、また、異なるアプリケーションプログラムを複数同時に実行することもできる。
言い換えると、ＯＳ及び記録系アプリケーションプログラムは、記録系ＣＰＵ１２４が予め定められた処理を行うためのプログラムである。
【００２３】
図２は、記録系プログラム記憶部１２１に記憶されているプログラムの一例を示す概略図である。
図示するように、記録系プログラム記憶部１２１は、記録系ブートローダ１２１ａと、記録系第１ＯＳ１２１ｂと、記録系第１アプリケーションプログラム１２１ｃと、記録系第２ＯＳ１２１ｄと、記録系第２アプリケーションプログラム１２１ｅとを有する。
【００２４】
記録部１２０で使用する記録系ＯＳ及び記録系アプリケーションプログラムは、セキュリティ等を考慮して、更新される。
プログラムの更新は、実行中の記録系ＯＳ及び記録系アプリケーションプログラムとは別の記録系ＯＳ及び記録系アプリケーションプログラムを書き換えることにより行われる。例えば、記録系ＣＰＵ１２４が記録系第１ＯＳ１２１ｂ及び記録系第１アプリケーションプログラム１２１ｃを実行している場合に、記録系第２ＯＳ１２１ｄ及び記録系第２アプリケーションプログラム１２１ｅが新しいプログラムに書き換えられる。この場合、記録系第１ＯＳ１２１ｂ及び記録系第１アプリケーションプログラム１２１ｃは、記録系第２ＯＳ１２１ｄ及び記録系第２アプリケーションプログラム１２１ｅの古いバージョンのプログラムとなる。古いバージョンのプログラムは、既に処理が実行されており、後述する再生部１３０と互換性のとれた、安定して実行することのできるプログラムである。従って、記録系ＣＰＵ１２４は、起動時に、前回起動した記録系第１ＯＳ１２１ｂ及び記録系第１アプリケーションプログラム１２１ｃで起動するか、又は、新しく更新された記録系第２ＯＳ１２１ｄ及び記録系第２アプリケーションプログラム１２１ｅで起動するかを選択することになる。
以下では、記録系第１ＯＳ１２１ｂ及び記録系第１アプリケーションプログラム１２１ｃを記録系第１プログラムといい、記録系第２ＯＳ１２１ｄ及び記録系第２アプリケーションプログラム１２１ｅを記録系第２プログラムという場合もある。
【００２５】
プログラムの更新は、監視レコーダ１１０に外部記憶装置１７０を接続し、データを読み出すことで行う。外部記憶装置１７０は、例えば、ＵＳＢメモリのような記憶媒体であってもよいし、ネットワークに接続された情報処理装置であってもよい。
【００２６】
ここで、カメラ１５０は、監視レコーダ１１０から電源の投入制御を行うことが可能であり、監視レコーダ１１０の電源投入以降の起動処理中に記録部１２０から送信される制御信号によって起動を開始する。
【００２７】
図１に戻り、記録系ワークメモリ１２２は、記録系ＣＰＵ１２４が作業領域として使用するメモリである。記録系ワークメモリ１２２は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。記録系ＣＰＵ１２４は、記録系ワークメモリ１２２にＯＳ又はアプリケーションプログラム等を読み出して実行し、記録部１２０の動作を制御する。
【００２８】
情報格納部１２３は、カメラ１５０で撮影された映像の映像データを記録する情報記憶部である。情報格納部１２３は、例えば、フラッシュメモリ又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）といった記憶媒体で構成される。なお、情報格納部１２３は、記録部１２０の外部、又は、監視レコーダ１１０の外部に切り離して独立に構成されてもよい。また、情報格納部１２３は、監視レコーダ１１０に、着脱可能に構成されてもよい。
【００２９】
記録系ＣＰＵ１２４は、記録系プログラム記憶部１２１に記憶されている記録系第１プログラム又は記録系第２プログラムを起動して、記録部１２０での処理を制御する記録系の処理部である。
記録系ＣＰＵ１２４は、監視レコーダ１１０の電源が投入され、プログラム起動制御部１４０から起動処理開始の命令が発行されると、その命令に従い起動処理を順次実行する。
また、記録系ＣＰＵ１２４は、自己の起動処理だけでなく、例えば、カメラ１５０の起動を制御する機能も有する。記録系ＣＰＵ１２４は、自己の起動状況だけでなく、記録系ＣＰＵ１２４が起動制御を行うものの起動状況を示す情報を、例えば、プログラム起動制御部１４０又は情報格納部１２３に出力する機能を有する。
さらに、記録系ＣＰＵ１２４は、監視レコーダ１１０の電源投入時に、記録系プログラム記憶部１２１から、ＯＳ又はアプリケーションプログラム等を、記録系ワークメモリ１２２に読み出して実行し、記録部１２０の起動動作を制御する。
【００３０】
再生部１３０は、記録部１２０内の情報格納部１２３に記録された映像データに基づいて、映像を再生した再生データを生成して、この再生データを表示装置１６０に送り、映像データに基づく映像を表示装置１６０に表示させる。再生部１３０は、カメラ１５０によって撮影された映像データに基づく映像をリアルタイムで表示装置１６０に表示させることもできる。再生部１３０は、再生系プログラム記憶部１３１と、再生系ワークメモリ１３２と、再生系ＣＰＵ１３３とを備える。
【００３１】
再生系プログラム記憶部１３１は、監視レコーダ１１０の電源が投入され再生系ＣＰＵ１３３が起動処理を開始するときに実行するプログラムが記憶されている記憶部（メモリ）である。実施の形態１では、再生系ＣＰＵ１３３で実行されるプログラムは、ブートローダ、ＯＳ及び再生系アプリケーションであるものとして説明する。
【００３２】
ブートローダは、上述のように、ＯＳを起動するための処理を実行するプログラムである。
ＯＳは、再生部１３０の全体を管理するための基本ソフトである。
再生系アプリケーションプログラムは、例えば、情報格納部１２３に記録された映像データを複数読み出し、読み出された複数の映像データに基づいて、複数の映像を表示装置１６０に並べて表示させるプログラムである。再生系アプリケーションプログラムは、ＯＳが起動後に、処理を開始することができる。また、ＯＳの起動後であれば、同じアプリケーションプログラムを複数同時に実行することができ、また、異なるアプリケーションプログラムを複数同時に実行することもできる。
【００３３】
図３は、再生系プログラム記憶部１３１に記憶されているプログラムの一例を示す概略図である。
図示するように、再生系プログラム記憶部１３１は、再生系ブートローダ１３１ａと、再生系第１ＯＳ１３１ｂと、再生系第１アプリケーションプログラム１３１ｃと、再生系第２ＯＳ１３１ｄと、再生系第２アプリケーションプログラム１３１ｅとを有する。
【００３４】
再生部１３０で使用する再生系ＯＳ及び再生系アプリケーションプログラムは、セキュリティ等を考慮して、更新される。
プログラムの更新は、実行中の再生系ＯＳ及び再生系アプリケーションプログラムとは別の再生系ＯＳ及び再生系アプリケーションプログラムを書き換えることにより行われる。例えば、再生系ＣＰＵ１３３が再生系第１ＯＳ１３１ｂ及び再生系第１アプリケーションプログラム１３１ｃを実行している場合に、再生系第２ＯＳ１３１ｄ及び再生系第２アプリケーションプログラム１３１ｅが新しいプログラムに書き換えられる。この場合、再生系第１ＯＳ１３１ｂ及び再生系第１アプリケーションプログラム１３１ｃは、再生系第２ＯＳ１３１ｄ及び再生系第２アプリケーションプログラム１３１ｅの古いバージョンのプログラムである。古いバージョンのプログラムは、既に処理が実行されており、記録部１２０と互換性のとれた、安定して実行することのできるプログラムである。従って、再生系ＣＰＵ１３３は、起動時に、前回起動した再生系第１ＯＳ１３１ｂ及び再生系第１アプリケーションプログラム１３１ｃで起動するか、又は、新しく更新された再生系第２ＯＳ１３１ｄ及び再生系第２アプリケーションプログラム１３１ｅで起動するかを選択することになる。
以下では、再生系第１ＯＳ１３１ｂ及び再生系第１アプリケーションプログラム１３１ｃを再生系第１プログラムといい、再生系第２ＯＳ１３１ｄ及び再生系第２アプリケーションプログラム１３１ｅを再生系第２プログラムという場合もある。
【００３５】
プログラム更新は、監視レコーダ１１０に外部記憶装置１７０を接続し、データを読み出すことで行う。外部記憶装置１７０は、例えば、ＵＳＢメモリのような記憶媒体であってもよいし、ネットワークに接続された情報処理装置であってもよい。
【００３６】
図１に戻り、再生系ワークメモリ１３２は、再生系ＣＰＵ１３３が作業領域として使用するメモリである。再生系ワークメモリ１３２は、例えば、ＲＡＭである。再生系ＣＰＵ１３３は、再生系ワークメモリ１３２にＯＳ又はアプリケーションプログラム等を読み出して実行し、再生部１３０の起動動作を制御する。
【００３７】
再生系ＣＰＵ１３３は、再生系プログラム記憶部１３１に記憶されている再生系第１プログラム又は再生系第２プログラムを起動して、再生部１３０での処理を制御する再生系の処理部である。
再生系ＣＰＵ１３３は、監視レコーダ１１０の電源が投入され、プログラム起動制御部１４０から起動処理開始の命令が発行されると、その命令に従い起動処理を順次実行する。
【００３８】
プログラム起動制御部１４０は、監視レコーダ１１０での起動処理、言い換えると、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３における起動処理を制御する。
例えば、プログラム起動制御部１４０は、監視レコーダ１１０の電源が投入されると、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３の起動状況を確認する。そして、プログラム起動制御部１４０は、それぞれに対し起動処理開始命令を発行する。プログラム起動制御部１４０は、予め記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３の起動動作における情報、例えば、起動処理の順序が記載されている起動情報としてのＣＰＵ起動情報テーブルを持っており、そのＣＰＵ起動情報テーブルを参照して、正しくその順序で起動動作が進むように起動状況を確認し、起動処理命令を発行する。
なお、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３も自身の起動動作における情報、例えば起動処理の順序が記載されているＣＰＵ起動情報テーブルを持っており、これらの内容はプログラム起動制御部１４０が持っているＣＰＵ起動情報テーブルの内容と等しい。
【００３９】
また、プログラム起動制御部１４０は、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３が起動状況を通知してからの経過時間を計測しており、次の起動状況を通知するまでに予め定められた時間を経過した場合には、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３を再起動させるためのリセット信号を出力する。
さらに、プログラム起動制御部１４０は、監視レコーダ１１０の再起動を行う際には、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３が再起動を行うプログラムのバージョンを調整する。プログラム起動制御部１４０は、記録系ＣＰＵ１２４が最新のバージョンである記録系第２プログラムの起動に失敗した場合、又は、再生系ＣＰＵ１３３が最新のバージョンである再生系第２プログラムの起動に失敗した場合には、記録系ＣＰＵ１２４に古いバージョンの記録系第１プログラムを再起動させるとともに、再生系ＣＰＵ１３３に古いバージョンの再生系第１プログラムを再起動させる。
【００４０】
図４は、プログラム起動制御部１４０の構成を概略的に示すブロック図である。
図示するように、プログラム起動制御部１４０は、バージョン制御部１４１と、バージョン記憶部１４２と、時間計測部１４３と、再起動制御部１４４とを備える。図示するように、記録系ＣＰＵ１２４、再生系ＣＰＵ１３３及びプログラム起動制御部１４０は、信号線Ｌ１１〜Ｌ２０で接続されている。
【００４１】
バージョン制御部１４１は、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３の起動状況及び時間計測部１４３による計測時間に応じて、起動処理における次の処理の開始を制御信号により通知する。
【００４２】
バージョン記憶部１４２は、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３に、起動するＯＳ及びアプリケーションプログラムを通知する。即ち、記録系プログラム記憶部１２１及び再生系プログラム記憶部１３１に記憶されているＯＳ及びアプリケーションプログラムのどちらを使用するかを示すバージョン情報を通知する。
【００４３】
時間計測部１４３は、バージョン制御部１４１が記録系ＣＰＵ１２４又は再生系ＣＰＵ１３３に起動開始通知を出力してからの時間を計測する。予め定められた時間を超過した場合はその旨をバージョン制御部１４１に通知する。時間計測部１４３は、例えば、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３からの応答信号に基づいて、予め定められた時間が超過したか否かを判断する。
【００４４】
再起動制御部１４４は、記録系ＣＰＵ１２４又は再生系ＣＰＵ１３３のどちらかの起動処理が正常に完了しなかった場合に、リセット信号を記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３に対して出力し、再起動処理を実行させる。
【００４５】
実施の形態１に係る記録系ＣＰＵ１２４は、バージョン制御部１４１、バージョン記憶部１４２、時間計測部１４３及び再起動制御部１４４に接続されている。記録系ＣＰＵ１２４と、バージョン制御部１４１、バージョン記憶部１４２及び時間計測部１４３との接続は、それぞれが別個の信号線で接続されてもよいし、共通化された信号線で接続されてもよい。
【００４６】
実施の形態１に係る再生系ＣＰＵ１３３は、バージョン制御部１４１、時間計測部１４３及び再起動制御部１４４に接続されている。再生系ＣＰＵ１３３と、バージョン制御部１４１及び時間計測部１４３との接続は、それぞれが別個の信号線で接続されてもよいし、共通化された信号線で接続されてもよい。
【００４７】
記録系ＣＰＵ１２４と再生系ＣＰＵ１３３とは、記録系ＣＰＵ１２４から情報を通知することができるように接続されている。
【００４８】
図１に戻り、通知部１４５は、例えば、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ、発光ダイオード）を備え、その点灯により起動エラーが生じたことを通知する。
【００４９】
以下に、実施の形態１に係る監視レコーダ１１０の動作、すなわち、監視レコーダ１１０の起動制御方法について説明する。
図５は、実施の形態１に係る監視レコーダ１１０のプログラム起動制御部１４０の起動制御動作を示すフローチャートである。
監視レコーダ１１０の電源が投入された後、プログラム起動制御部１４０のバージョン制御部１４１は、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３にブートローダの起動開始命令を発行する（Ｓ１０）。このような命令を発行すると、プログラム起動制御部１４０の時間計測部１４３は、時間計測を開始する。
【００５０】
次に、時間計測部１４３は、記録系ＣＰＵ１２４がブートローダの起動を予め定められた時間内に完了したか否かを判断する（Ｓ１１）。例えば、時間計測部１４３は、予め定められた時間内に、記録系ＣＰＵ１２４からブートローダの起動完了の通知を受信したか否かでこの判断を行う。そして、予め定められた時間が経過しても、記録系ＣＰＵ１２４からブートローダの起動完了の通知を受信しなかった場合（Ｓ１１でＮｏ）には、処理はステップＳ１２に進む。予め定められた時間内に、記録系ＣＰＵ１２４からブートローダの起動完了の通知を受信した場合（Ｓ１１でＹｅｓ）には、処理はステップＳ１４に進む。
【００５１】
ステップＳ１２では、時間計測部１４３は、ステップＳ１０でブートローダの起動開始命令を発行してから、予め定められた時間内に再生系ＣＰＵ１３３がブートローダの起動を完了したか否かを判断する。例えば、時間計測部１４３は、予め定められた時間内に、再生系ＣＰＵ１３３からブートローダの起動完了の通知を受信したか否かでこの判断を行う。そして、予め定められた時間が経過しても、再生系ＣＰＵ１３３からブートローダの起動完了の通知を受信しなかった場合（Ｓ１２でＮｏ）には、処理はステップＳ１３に進む。予め定められた時間内に、再生系ＣＰＵ１３３からブートローダの起動完了の通知を受信した場合（Ｓ１２でＹｅｓ）には、処理はステップＳ２１に進む。
ステップＳ１３では、時間計測部１４３は、起動時エラー処理として、通知部１４５に外部への通知を行わせる。
【００５２】
ステップＳ１４では、バージョン記憶部１４２は、記録系ＣＰＵ１２４に対し、記録系ＣＰＵ１２４が、記録系第１プログラム又は記録系第２プログラムのどちらで起動するか、及び、再生系ＣＰＵ１３３が、再生系第１プログラム又は再生系第２プログラムのどちらで起動するかを示すバージョン情報を通知することで、起動するプログラムのバージョンを指定する。記録系ＣＰＵ１２４は、再生系ＣＰＵ１３３に、再生系第１プログラム又は再生系第２プログラムのどちらで起動するかを示すバージョン情報を通知する。
【００５３】
ステップＳ１４にて起動するプログラムを指定した後、時間計測部１４３が、再生系ＣＰＵ１３３のブートローダの起動完了、又は、起動開始から一定時間経過し、再生系ＣＰＵ１３３の起動失敗を確認した後、バージョン制御部１４１は、記録系ＯＳ及び記録系アプリケーションプログラム（以下、記録系プログラムともいう）の起動開始命令を発行する（Ｓ１５）。このような命令を発行すると、時間計測部１４３は、時間計測を開始する。
【００５４】
次に、時間計測部１４３は、ステップＳ１５で記録系プログラムの起動開始命令を発行してから、予め定められた時間内に記録系ＣＰＵ１２４が予め定められたアプリケーションプログラムの起動を完了したか否かを判断する（Ｓ１６）。例えば、時間計測部１４３は、予め定められた時間以内に記録系ＣＰＵ１２４から、予め定められたアプリケーションプログラムが立ち上がったことの通知を受けたか否かでこの判断を行う。予め定められた時間以内に記録系ＣＰＵ１２４から、予め定められたアプリケーションプログラムが立ち上がったことの通知を受けた場合（Ｓ１６でＹｅｓ）には、処理は、ステップＳ１７に進む。一方、予め定められた時間以内に記録系ＣＰＵ１２４から、予め定められたアプリケーションプログラムが立ち上がったことの通知を受けていない場合（Ｓ１６でＮｏ）には、処理は、ステップＳ２１に進む。ここで、例えば、予め定められたアプリケーションプログラムは、再生系ＣＰＵ１３３の起動ログを取得するためのアプリケーションである。
【００５５】
ステップＳ１７では、バージョン制御部１４１は、再生系ＣＰＵ１３３に再生系ＯＳ及びアプリケーションプログラム（以下、再生系プログラムともいう）の起動開始命令を発行する。このような命令を発行すると、時間計測部１４３は、時間計測を開始する。
【００５６】
次に、時間計測部１４３は、ステップＳ１５で記録系プログラムの起動開始命令を発行してから、予め定められた時間内に記録系ＣＰＵ１２４が記録系プログラムの起動を完了したか否かを判断する（Ｓ１８）。例えば、時間計測部１４３は、予め定められた時間以内に記録系ＣＰＵ１２４から、記録系プログラムが立ち上がったことの通知を受けたか否かでこの判断を行う。予め定められた時間以内に記録系ＣＰＵ１２４から、記録系プログラムが立ち上がったことの通知を受けた場合（Ｓ１８でＹｅｓ）には、処理は、ステップＳ１９に進む。一方、予め定められた時間以内に記録系ＣＰＵ１２４から、記録系プログラムが立ち上がったことの通知を受けていない場合（Ｓ１８でＮｏ）には、処理は、ステップＳ２２に進む。
【００５７】
そして、時間計測部１４３は、ステップＳ１７で再生系プログラムの起動開始命令を発行してから、予め定められた時間内に再生系ＣＰＵ１３３が再生系プログラムの起動を完了したか否かを判断する（Ｓ１９）。例えば、時間計測部１４３は、予め定められた時間以内に再生系ＣＰＵ１３３から、再生系プログラムが立ち上がったことの通知を受けたか否かでこの判断を行う。予め定められた時間以内に再生系ＣＰＵ１３３から、再生系プログラムが立ち上がったことの通知を受けた場合（Ｓ１９でＹｅｓ）には、正常に監視レコーダ１１０の起動が完了しているため、処理は終了する。一方、予め定められた時間以内に再生系ＣＰＵ１３３から、再生系プログラムが立ち上がったことの通知を受けていない場合（Ｓ１９でＮｏ）には、処理は、ステップＳ２０に進む。
【００５８】
ステップＳ２０では、バージョン制御部１４１は、再生系ＣＰＵ１３３において再生系プログラムが正常に動作していないことを記録系ＣＰＵ１２４に通知する。このような通知を受けた記録系ＣＰＵ１２４は、起動時エラー処理を実行する。例えば、記録系ＣＰＵ１２４は、再生系ＣＰＵ１３３の起動ログを記録系ワークメモリ１２２から記録系プログラム記憶部１２１又は情報格納部１２３に移したり、プログラム起動制御部１４０に指示して、通知部１４５にエラーの発生を通知させたりといった処理を行う。
また、バージョン制御部１４１は、次回の起動時に記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３が別のバージョンのプログラムで起動するようにバージョン記憶部１４２の記述を変更する。そして、バージョン制御部１４１は、再起動制御部１４４に指示して、監視レコーダ１１０の再起動を行わせる。このような指示を受けた再起動制御部１４４は、リセット信号を記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３に送信する。
【００５９】
ステップＳ１２で、予め定められた時間内に再生系ブートローダの起動が完了した場合（Ｓ１２でＹｅｓ）、又は、ステップＳ１６で、予め定められた時間内に記録系プログラムの起動が完了していない場合（Ｓ１６でＮｏ）には、処理は、ステップＳ２１に進む。ステップＳ２１では、バージョン制御部１４１は、再生系ＣＰＵ１３３に再生系プログラムの強制起動開始命令を発行する。なお、強制起動開始命令であるか否かは、バージョン制御部１４１が認識していればよく、再生系ＣＰＵ１３３には、通常の再生系プログラムの起動開始命令が出力される。このような命令を発行すると、時間計測部１４３は、時間計測を開始する。そして処理はステップＳ２２へ進む。
【００６０】
ステップＳ２２では、時間計測部１４３は、ステップＳ２１又はＳ１７で再生系プログラムの起動開始命令を発行してから、予め定められた時間内に再生系ＣＰＵ１３３が再生系プログラムの起動を完了したか否かを判断する。例えば、時間計測部１４３は、予め定められた時間以内に再生系ＣＰＵ１３３から、再生系プログラムが立ち上がったことの通知を受けたか否かでこの判断を行う。予め定められた時間以内に再生系ＣＰＵ１３３から、再生系プログラムが立ち上がったことの通知を受けた場合（Ｓ２２でＹｅｓ）には、処理はステップＳ２３に進み、予め定められた時間以内に再生系ＣＰＵ１３３から、再生系プログラムが立ち上がったことの通知を受けていない場合（Ｓ２２でＮｏ）には、処理はステップＳ２４に進む。
【００６１】
ステップＳ２３では、バージョン制御部１４１は、正常に起動した再生系ＣＰＵ１３３に対し記録系ＣＰＵ１２４の起動が完了していないことを通知する。このような通知を受けた再生系ＣＰＵ１３３は、エラー処理を実行する。例えば、再生系ＣＰＵ１３３は、記録系ＣＰＵ１２４の起動ログを再生系ワークメモリ１３２から再生系プログラム記憶部１３１に移したり、プログラム起動制御部１４０に指示して、通知部１４５にエラーの発生を通知させたりといった処理を行う。また、バージョン制御部１４１は、次回の起動時に記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３が別のバージョンのプログラムで起動するように、バージョン記憶部１４２の記述を変更する。そして、バージョン制御部１４１は、再起動制御部１４４に指示して、監視レコーダ１１０の再起動を行わせる。このような指示を受けた再起動制御部１４４は、リセット信号を記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３に送信する。
【００６２】
一方、ステップＳ２４では、時間計測部１４３は、記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３の両方におけるエラーの発生を認識する。このため、バージョン制御部１４１は、次回の起動時に記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３が別のバージョンのプログラムで起動するようにバージョン記憶部１４２の記述を変更する。そして、バージョン制御部１４１は、再起動制御部１４４に指示して、監視レコーダ１１０の再起動を行わせる。このような指示を受けた再起動制御部１４４は、リセット信号を記録系ＣＰＵ１２４及び再生系ＣＰＵ１３３に送信する。
【００６３】
図６は、実施の形態１に係る監視レコーダ１１０の再生部１３０の起動動作を示すフローチャートである。
まず、プログラム起動制御部１４０のバージョン制御部１４１が再生系ＣＰＵ１３３にブートローダの起動開始命令を発行すると、再生系ＣＰＵ１３３は、再生系プログラム記憶部１３１に記憶されている再生系ブートローダに書かれた処理を実行する（Ｓ３０）。
【００６４】
再生系ＣＰＵ１３３は、再生系ブートローダの起動が完了すると、プログラム起動制御部１４０の時間計測部１４３に、ブートローダの起動完了を通知する（Ｓ３１）。
【００６５】
再生系ＣＰＵ１３３は、ブートローダが起動した後、記録系ＣＰＵ１２４において記録系ＯＳ及び予め定められたアプリケーションが起動するまで、任意の処理を行うことができる（Ｓ３２）。例えば、任意の処理は、記録系ＣＰＵ１２４の起動ログの取得等である。一般的に、ＯＳの起動処理はブートローダが実行するため、ＯＳの起動処理を実行しながら、記録系ＣＰＵ１２４は、自身の起動ログを取得することはできない。起動ログは、ＣＰＵが正常に動作しない場合に、そのデバッグをするために必要であり、起動ログを取得できない場合は、デバッグにかかるコストは増大する。また、任意の処理は、例えば、周辺デバイスの初期化等がある。図１における表示装置１６０が出画までに初期化が必要な場合、ブートローダにより初期化を行うことで電源投入から出画までの時間を短縮することができる。
【００６６】
バージョン制御部１４１から再生系プログラムの起動開始通知があったら（Ｓ３３）、再生系ＣＰＵ１３３は、記録系ＣＰＵ１２４から再生系第１プログラム及び再生系第２プログラムの何れで起動するかを示すバージョン情報を取得する（Ｓ３４）。
そして、再生系ＣＰＵ１３３は、取得したバージョン情報で示される再生系プログラムを起動する（Ｓ３５）。
【００６７】
なお、記録系ＣＰＵ１２４が正常に起動していなくても、ステップＳ３３において、プログラム起動制御部１４０から再生系プログラムの起動開始通知が行われる場合もある。
このような場合、例えば、記録系ＣＰＵ１２４から再生系ＣＰＵ１３３にプログラムのバージョンを通知する信号線Ｌ２０を図７に示されているように構成し、この信号線Ｌ２０の信号がＬｏｗであるかＨｉｇｈであるかで、プログラムのバージョンを通知するようにしておけば、再生系ＣＰＵ１３３は、どのバージョンで起動すればよいのかを把握することができる。なお、この場合、記録系ＣＰＵ１２４が動作していないため、再生系ＣＰＵ１３３は、プログラム起動制御部１４０から記録系ＣＰＵ１２４に通知していたプログラムのバージョンを正しく読み取ることができない。しかし、このような場合は、緊急的に再生系ＣＰＵ１３３を起動させている状態であり、再生系ＣＰＵ１３３にエラー処理をさせるという観点ではどちらのバージョンで起動させても問題はない。
【００６８】
図６に戻り、再生系ＣＰＵ１３３は、再生系ＯＳ及び再生系アプリケーションプログラムの起動を完了すると、時間計測部１４３に対し、起動完了を通知する（Ｓ３６）。
【００６９】
次に、再生系ＣＰＵ１３３は、バージョン制御部１４１から記録系ＯＳ及び記録系アプリケーションプログラムの起動完了通知を受け取ったか否かを判断する（Ｓ３７）。このような通知を受け取った場合（Ｓ３７でＹｅｓ）には、監視レコーダ１１０は正常に起動完了しているため処理を終了する。このような通知を受け取っていない場合（Ｓ３７でＮｏ）には、処理はステップＳ３８に進む。
【００７０】
ステップＳ３８では、再生系ＣＰＵ１３３は、記録系ＣＰＵ１２４の起動が正常に完了していない場合のエラー処理を実行し、プログラム起動制御部１４０によって再起動処理がなされるまで待機する。なお、記録系ＯＳ及び記録系アプリケーションプログラムの起動完了通知がない場合には、記録系ＣＰＵ１２４がブートローダの起動を完了していない場合も含む。
【００７１】
図８は、実施の形態１に係る監視レコーダ１１０の記録部１２０の起動動作を示すフローチャートである。
まず、プログラム起動制御部１４０のバージョン制御部１４１が記録系ＣＰＵ１２４にブートローダの起動開始命令を発行すると、記録系ＣＰＵ１２４は、記録系プログラム記憶部１２１に記憶されている記録系ブートローダに書かれた処理を実行する（Ｓ４０）。
【００７２】
記録系ＣＰＵ１２４は、記録系ブートローダの起動が完了すると、プログラム起動制御部１４０の時間計測部１４３に、ブートローダの起動完了を通知する（Ｓ４１）。
【００７３】
次に、記録系ＣＰＵ１２４は、バージョン制御部１４１から起動するプログラムのバージョンを取得し（Ｓ４２）、記録系プログラムの起動を開始する（Ｓ４３）。
【００７４】
次に、記録系ＣＰＵ１２４は、再生系ＣＰＵ１３３に対して、バージョン制御部１４１から取得した起動するプログラムのバージョンを通知する（Ｓ４４）。このとき、再生系ＣＰＵ１３３に通知するバージョンは、記録系ＣＰＵ１２４と同じものであってもよいし、バージョン制御部１４１から異なるバージョンを指定するように設定できるようにしてもよい。
【００７５】
記録系ＣＰＵ１２４は、記録系ＯＳ及び予め定められたアプリケーションプログラムの起動が完了したら、時間計測部１４３にその旨を通知する（Ｓ４５）。
そして、記録系ＣＰＵ１２４は、起動されたアプリケーションプログラムを実行することで、任意の処理を行う（Ｓ４６）。例えば、記録系ＣＰＵ１２４は、再生系ＣＰＵ１３３の起動ログの取得等の処理を行う。
【００７６】
次に、記録系ＣＰＵ１２４は、記録系プログラムの起動が完了したら、時間計測部１４３にその旨を通知する（Ｓ４７）。
【００７７】
その後、記録系ＣＰＵ１２４は、バージョン制御部１４１から再生系ＯＳ及び再生系アプリケーションプログラムの起動完了通知を受け取ったか否かを判断する（Ｓ４８）。このような通知を受け取った場合（Ｓ４８でＹｅｓ）には、監視レコーダ１１０は正常に起動完了しているため処理を終了する。このような通知を受け取っていない場合（Ｓ４８でＮｏ）には、処理はステップＳ４９に進む。
【００７８】
ステップＳ４９では、記録系ＣＰＵ１２４は、再生系ＣＰＵ１３３の起動が正常に完了していない場合のエラー処理を実行し、プログラム起動制御部１４０によって再起動処理がなされるまで待機する。
【００７９】
図９（Ａ）及び（Ｂ）は、プログラム起動制御部１４０と再生系ＣＰＵ１３３との間の通信の一例を示すタイミングチャートである。
プログラム起動制御部１４０が再生系ＣＰＵ１３３の起動制御を行う場合、図４に示されているバージョン制御部１４１と再生系ＣＰＵ１３３とを接続する信号線Ｌ１６、及び、時間計測部１４３と再生系ＣＰＵ１３３とを接続する信号線Ｌ１７の２本の信号線のみで制御が行われる。図９（Ａ）に示されている再生系ＯＵＴは、再生系ＣＰＵ１３３が信号を制御しプログラム起動制御部１４０に通知する応答信号であり、図４に示されている時間計測部１４３と再生系ＣＰＵ１３３とを接続する信号線Ｌ１７の信号である。図９（Ｂ）に示されている再生系ＩＮは、プログラム起動制御部１４０が信号を制御し再生系ＣＰＵ１３３に通知する制御信号であり、図４に示されているバージョン制御部１４１と再生系ＣＰＵ１３３とを接続する信号線Ｌ１６の信号である。
【００８０】
電源投入後、バージョン制御部１４１は、図９（Ｂ）に示されているように、再生系ＩＮの信号をＬｏｗ（オフ）からＨｉｇｈ（オン）にすることで、再生系ＣＰＵ１３３に対してブートローダ起動開始を通知する。
このような通知を受けた再生系ＣＰＵ１３３は、図９（Ａ）に示されているように、再生系ＯＵＴの信号をＬｏｗからＨｉｇｈにすることで、ブートローダの起動を実際に開始したことを時間計測部１４３に通知する。この通知を受けることで、時間計測部１４３は、再生系ブートローダの起動に対応した時間を計測する。
【００８１】
再生系ＣＰＵ１３３は、ブートローダの起動が完了すると、図９（Ａ）に示されているように、再生系ＯＵＴの信号をＨｉｇｈからＬｏｗにすることで、ブートローダ起動完了を時間計測部１４３に通知する。この通知を受けることで、時間計測部１４３は、ブートローダの起動からの時間の計測を終了する。ここでは、予め定められた時間内にブートローダの起動が完了しているものとして説明を続ける。
【００８２】
バージョン制御部１４１は、記録系ＣＰＵ１２４のブートローダが起動完了すると、図９（Ｂ）に示されているように、再生系ＩＮの信号をＨｉｇｈからＬｏｗにすることで、記録系ブートローダの起動完了と記録系プログラムの起動開始を再生系ＣＰＵ１３３に通知する。このような通知を受けた再生系ＣＰＵ１３３は、任意の処理、例えば、記録系ＣＰＵ１２４の起動ログの取得等を行う。
【００８３】
記録系ＯＳ及び予め定められたアプリケーションプログラムの起動が完了すると、バージョン制御部１４１は、図９（Ｂ）に示されているように、再生系ＩＮの信号をＬｏｗからＨｉｇｈにすることで、再生系プログラムの起動開始を再生系ＣＰＵ１３３に通知する。
【００８４】
再生系ＣＰＵ１３３は、再生系プログラムの起動を開始すると、図９（Ａ）に示されているように、再生系ＯＵＴの信号をＬｏｗからＨｉｇｈにすることで、再生系プログラムの起動開始を時間計測部１４３に通知する。この通知を受けることで、時間計測部１４３は、再生系プログラムの起動に対応した時間を計測する。
【００８５】
記録系ＣＰＵ１２４の記録系プログラムの起動が完了すると、バージョン制御部１４１は、図９（Ｂ）に示されているように、再生系ＩＮの信号をＨｉｇｈからＬｏｗにすることで、その旨を再生系ＣＰＵ１３３に通知する。
【００８６】
再生系ＣＰＵ１３３は、再生系プログラムの起動が完了したら、図９（Ａ）に示されているように、再生系ＯＵＴの信号をＨｉｇｈからＬｏｗにすることで、その旨を時間計測部１４３に通知する。
【００８７】
以上のように動作させることで、プログラム起動制御部１４０と再生系ＣＰＵ１３３とは、相互に通知を行うことができる。プログラム起動制御部１４０における時間計測部１４３は、起動開始からの時間を測定しており、予め定められた時間が経過しても起動完了の通知がなされないことを判断することができる。
また、バージョン制御部１４１及び時間計測部１４３が、それぞれ信号の立ち上がり及び立ち下がりの回数を、例えば、バージョン記憶部１４２等に記憶させておくことで、起動処理の段階を判断することができる。
【００８８】
なお、上記の通知動作は、一例であり、他の方法で通知が行われてもよい。上記では２本の信号線で通知を行っているが、信号線の本数は２本に限られない。また、通知方法についても、例えば、クロック等の信号があるような通信手段が用いられてもよい。
【００８９】
また、図１に示された構成だけでなく、他の装置が起動動作に関連していてもよい。例えば、無線通信によって映像データを離れた地点にある映像出力デバイスに配信する機能を有する遠隔配信装置が再生部１３０に接続されており、その遠隔配信装置の起動処理が監視レコーダ１１０の起動動作に含まれてもよい。
【００９０】
以上説明した実施の形態１に係る監視レコーダ１１０によれば、以下の（１）〜（８）の効果が得られる。
【００９１】
（１）監視レコーダ１１０は、プログラム起動制御部１４０で起動するプログラムのバージョンを一括して管理するため、電源投入後複数のＣＰＵがそれぞれ互換性のない異なるバージョンのプログラムで起動してしまい、正常に動作できない状況を回避することができる。
【００９２】
（２）監視レコーダ１１０は、起動プログラムの更新が行われたＣＰＵの一方が起動を完了できなかった場合に、前回起動しているプログラムを再起動させることができる。
【００９３】
（３）プログラム起動制御部１４０は、搭載されたＣＰＵの何れかが起動処理に失敗し、応答がなくなったとき、起動のどの段階で起動に失敗したかを記憶することができる。
【００９４】
（４）起動動作時における、プログラム起動制御部１４０と、再生系ＣＰＵ１３３との間の通信では、２本の信号線があればよく、基板面積の削減が可能である。
【００９５】
（５）プログラム起動制御部１４０と、再生系ＣＰＵ１３３との間の通信では、クロック及び同期処理等が必要なく、ＧＰＩＯ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｉ／Ｏ）が制御できればよく、ハードウェアのインタフェースに依存することなく実装することができる。
【００９６】
（６）プログラム起動制御部１４０と、再生系ＣＰＵ１３３との間の通信は、直接再生系ＣＰＵ１３３と記録系ＣＰＵ１２４とが接続されていなくても良く、一方のＣＰＵの起動処理の異常によって他方のＣＰＵに影響を与えることを回避することができる。
【００９７】
（７）プログラム起動制御部１４０は、記録系ＣＰＵ１２４の起動が正常に行われなかった場合に、バージョン情報が正確に再生系ＣＰＵ１３３に通知されなくても、再生系ＣＰＵ１３３を、エラー処理を実行可能な状態で起動させることができる。
【００９８】
（８）プログラム起動制御部１４０は、搭載された一つのＣＰＵに対して、その起動の段階を少なくとも２本の信号線によって把握及び制御が可能となるため、監視レコーダ１１０の部品点数の削減を行うことができる。
【００９９】
実施の形態２．
図１０は、実施の形態２に係る情報処理装置である監視レコーダ２１０の構成を概略的に示すブロック図である。図１０において、監視レコーダ２１０を含む監視システム２００は、監視レコーダ１１０以外に監視カメラとしての複数のカメラ１５０Ａ、１５０Ｂ、１５０Ｃ及び映像表示装置としての表示装置１６０を含む。
図１０に示されるように、監視レコーダ２１０は、通信Ｉ／Ｆ部１１１と、出力Ｉ／Ｆ部１１２と、接続Ｉ／Ｆ部１１３と、記録部２２０と、再生部２３０と、プログラム起動制御部２４０と、通知部１４５とを備える。実施の形態２に係る監視レコーダ２１０は、記録部２２０、再生部２３０及びプログラム起動制御部２４０以外の構成については、実施の形態１に係る監視レコーダ２１０と同様である。
【０１００】
記録部２２０は、記録系プログラム記憶部１２１と、記録系ワークメモリ１２２と、情報格納部１２３と、記録系ＣＰＵ２２４とを備える。実施の形態２における記録部２２０は、記録系ＣＰＵ２２４以外の構成は、実施の形態１における記録部１２０と同様である。
再生部２３０は、再生系プログラム記憶部１３１と、再生系ワークメモリ１３２と、再生系ＣＰＵ２３３とを備える。実施の形態２における再生部２３０は、再生系ＣＰＵ２３３以外の構成は、実施の形態１における再生部１３０と同様である。
図１０に示されているように、実施の形態２に係る監視レコーダ２１０では、記録系ＣＰＵ２２４と、再生系ＣＰＵ２３３との間が直接接続されていない。
【０１０１】
図１１は、実施の形態２に係るプログラム起動制御部２４０の構成を概略的に示すブロック図である。
図示するように、プログラム起動制御部２４０は、バージョン制御部１４１、バージョン記憶部２４２、時間計測部１４３及び再起動制御部１４４を備える。図示するように、記録系ＣＰＵ２２４、再生系ＣＰＵ２３３及びプログラム起動制御部２４０は、信号線Ｌ１１〜Ｌ１９及び信号線Ｌ２１で接続されている。
実施の形態２におけるプログラム起動制御部２４０のバージョン記憶部２４２は、記録系ＣＰＵ２２４の他に、再生系ＣＰＵ２３３にも接続されている。
これにより、実施の形態２では、バージョン記憶部２４２は、記録系ＣＰＵ２２４の他、再生系ＣＰＵ２３３にも、起動するプログラムのバージョン情報を通知する。
従って、再生系ＣＰＵ２３３は、記録系ＣＰＵ２２４から起動するプログラムのバージョン情報を取得しないで、直接、バージョン記憶部２４２からバージョン情報を取得する。
また、記録系ＣＰＵ２２４は、再生系ＣＰＵ２３３に対してバージョン情報を通知する処理を行わなくてよい。
【０１０２】
従って、図５に示されているフローチャートでは、ステップＳ１４において、バージョン記憶部２４２は、記録系ＣＰＵ２２４だけでなく、再生系ＣＰＵ２３３にもバージョン情報を指定する。再生系ＣＰＵ２３３は、バージョン記憶部２４２からバージョン情報が通知された瞬間にこれを参照しなくてもよく、再生系ブートローダの起動が完了し、再生系プログラムを起動するときに参照すればよい。なお、バージョン記憶部２４２は、再生系ＣＰＵ２３３が再生系プログラムの起動を開始するまで、バージョン情報の通知をし続ける必要がある。
【０１０３】
また、図６に示されているフローチャートでは、再生系ＣＰＵ２３３は、ステップＳ３４において、バージョン記憶部２４２からバージョン情報を取得する。
さらに、図８に示されているフローチャートでは、記録系ＣＰＵ２２４は、ステップＳ４４における起動プログラムのバージョン情報の通知を行わない。
【０１０４】
以上に説明したように、実施の形態２によれば、上記実施の形態１における（１）〜（８）の効果に加えて、下記の（９）及び（１０）の効果を得ることができる。
（９）直接、再生系ＣＰＵ２３３と記録系ＣＰＵ２２４が接続されなくても良く、互いが接続できるインタフェースを持っていなくてもよい。
（１０）記録系ＣＰＵ２２４において、記録系ＯＳ又は記録系アプリケーションプログラムの起動が完了しなかった場合に、プログラム起動制御部２４０が再生系ＣＰＵ２３３に再生系プログラムの強制起動を通知するとき（図５のステップＳ２１）に、再生系ＣＰＵ２３３に起動プログラムのバージョンを直接指定することができるため、再生系ＣＰＵ２３３を、エラー処理等の目的に応じたプログラムで起動させることができる。
【０１０５】
実施の形態１及び２において、プログラム起動制御部１４０、２４０の機能は、電子回路等のハードウェア資源のみにより実現されてもよいし、ハードウェア資源とソフトウェア資源との協働により実現されてもよい。ハードウェア資源とソフトウェア資源の協働により実現される場合には、プログラム起動制御部１４０、２４０の機能は、例えば、コンピュータが対応するコンピュータプログラムを実行することによって実現される。より具体的には、プログラム起動制御部１４０、２４０の機能は、ＲＯＭ等の記憶媒体に記憶されたコンピュータプログラムを、ＲＡＭ等の主記憶装置に呼び出して、ＣＰＵが実行することによって実現される。コンピュータプログラムは、光ディスク等のコンピュータ読み取り可能な記憶媒体に記憶されて提供されてもよいし、インターネット等の通信回路を介して提供されてもよい。
【０１０６】
また、本発明は、上記の実施の形態１及び２に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の態様に変更することができる。
【０１０７】
また、本発明が適用可能な装置は、映像記録再生装置のうちの監視レコーダに限られない。複数のＣＰＵの起動動作に予め定まった順序があり、少なくとも、いずれかの方法で、複数のＣＰＵ間で情報のやり取りを行うことのできる機能を有している装置であれば、監視レコーダ以外の映像記録再生装置、録画再生機能を備えたテレビ受像機、パーソナルコンピュータ、映像保存印刷機能を備えたプリンター、スマートフォン又はタブレット端末のような携帯情報端末、及び、ゲーム機等のような様々な種類の装置に適用することが可能である。
【０１０８】
また、本発明は、構成に必要なＣＰＵの数に限られない。実施の形態１及び２ではＣＰＵが２つの場合で説明したが、例えばＣＰＵが３つの場合でも本発明を該装置に適用することが可能である。その場合、再起動のためのリセット信号を除いて各ＣＰＵとプログラム起動制御部１４０、２４０と間の接続に必要な信号線は実施の形態１では６本、実施の形態２では９本で構成可能である。ＣＰＵが４つ以上の場合でも同様に構成が可能である。
【０１０９】
図４及び図１１に示されている記録系ＣＰＵ１２４、２２４、再生系ＣＰＵ１３３、２３３及びプログラム起動制御部１４０、２４０の接続例は、一つの例であって、この例に限定されるものではない、例えば、記録系ＣＰＵ１２４、２２４及び再生系ＣＰＵ１３３、２３３の位置を逆にして、プログラム起動制御部１４０、２４０に接続してもよい。このような場合には、記録系ＣＰＵ１２４、２２４よりも先に再生系ＣＰＵ１３３、２３３が起動され、また、再生系ＣＰＵ１３３、２３３から記録系ＣＰＵ１２４、２２４にバージョン情報が通知され、さらに、図９に示されているような制御は、記録系ＣＰＵ１２４、２２４と、プログラム起動制御部１４０、２４０との間で行われる。
【符号の説明】
【０１１０】
１００，２００  監視システム、  １１０，２１０  監視レコーダ、  １１１  通信Ｉ／Ｆ部、  １１２  出力Ｉ／Ｆ部、  １１３  接続Ｉ／Ｆ部、  １２０，２２０  記録部、  １２１  記録系プログラム記憶部、  １２２  記録系ワークメモリ、  １２３  情報格納部、  １２４，２２４  記録系ＣＰＵ、  １３０，２３０  再生部、  １３１  再生系プログラム記憶部、  １３２  再生系ワークメモリ、  １３３，２３３  再生系ＣＰＵ、  １４０，２４０  プログラム起動制御部、  １４１  バージョン制御部、  １４２，２４２  バージョン記憶部、  １４３  時間計測部、  １４４  再起動制御部、  １４５  通知部、  １５０  カメラ、  １６０  表示装置。
【要約】
第１の処理を行うための第１のプログラム、及び、当該第１のプログラムと別のバージョンの第２のプログラムを記憶する記録系プログラム記億部（１２１）と、第１のプログラム又は第２のプログラムを起動して、第１の処理を行う記録系ＣＰＵ（１２４）と、記録系ＣＰＵ（１２４）における起動処理を制御するプログラム起動制御部（１４０）とを備え、プログラム起動制御部（１４０）は、制御信号を送信する第１の信号線及び制御信号への応答信号を送信する第２の信号線によって、記録系ＣＰＵ（１２４）と接続されており、記録系ＣＰＵ（１２４）は、第２の信号線において、応答信号をオン又はオフすることで、プログラム起動制御部（１４０）に応答を行う。【図１】
0005933875.tif 000002
【図２】
0005933875.tif 000003
【図３】
0005933875.tif 000004
【図４】
0005933875.tif 000005
【図５】
0005933875.tif 000006
【図６】
0005933875.tif 000007
【図７】
0005933875.tif 000008
【図８】
0005933875.tif 000009
【図９】
0005933875.tif 000010
【図１０】
0005933875.tif 000011
【図１１】
0005933875.tif 000012