(57)【特許請求の範囲】
【請求項１】
第１のオペレーションシステム、及び、当該第１のオペレーションシステム上で動作する第１のアプリケーションを実行する第１の制御部と、
第２のオペレーションシステム、及び、当該第２のオペレーションシステム上で動作する第２のアプリケーションを実行する第２の制御部と、
を備える情報処理装置であって、
前記第２の制御部は、前記情報処理装置に接続されたデバイスを制御するデバイス制御部を備え、
前記第１の制御部は、前記情報処理装置の電源が投入された後に、前記第１のオペレーションシステム及び前記第１のアプリケーションを起動する第１の起動処理を行い、
前記第２の制御部は、前記情報処理装置の電源が投入された後に、前記第１の起動処理よりも早く処理を完了する、前記第２のオペレーションシステム及び前記第２のアプリケーションを起動する第２の起動処理を前記第１の起動処理と並行して行い、
前記第２の制御部は、前記第１の起動処理の完了前に前記第２の起動処理を完了し、前記第２の起動処理の完了後に、前記第２のアプリケーションを実行することで前記情報処理装置を制御する第２の制御処理を行うとともに、前記デバイス制御部を介して、前記デバイスを制御するデバイス制御処理を行い、
前記第１の制御部は、前記第１の起動処理の完了後に、制御権限の切り替えが可能になったことを前記第２の制御部に通知し、
前記第２の制御部は、前記第１の制御部からの通知を受けると、前記第２の制御処理で既に行われた処理の状態を示す情報及び前記デバイスの制御状態を示す情報を含むデバイス制御情報、並びに、前記デバイスから通知された内容を示す通知情報を含む引継情報を生成した後に、前記第１の制御部に対して制御権限切換完了を通知し、
前記第１の制御部は、前記第１の起動処理の完了後に、前記第１のアプリケーションを実行し、前記第２の制御部から制御権限切換完了の通知を受けると、前記引継情報を参照して、前記第２の制御処理で実行されていた制御を継続して行うことで、前記第２の制御処理の代わりに前記情報処理装置を制御する第１の制御処理を行い、
前記第２の制御部は、前記第１の制御部が前記第１の制御処理を開始すると、前記第２の制御処理を終了し、前記デバイス制御処理を継続すること
を特徴とする情報処理装置。
【請求項２】
前記第２の制御部は、前記第２の制御処理において、前記第２のアプリケーションに対応する第２のＧＵＩを、前記情報処理装置に接続された出力装置に表示させ、
前記引継情報には、前記第２のＧＵＩの表示状態を示す情報が含まれ、
前記第１の制御部は、前記第１の制御処理において、前記引継情報を参照することで、前記第２のＧＵＩの代わりに、前記第２のＧＵＩの表示状態に対応し、かつ、前記第１のアプリケーションに対応する第１のＧＵＩを、前記情報処理装置に接続された出力装置に表示させること
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
第１のオペレーションシステム、及び、当該第１のオペレーションシステム上で動作する第１のアプリケーションを実行する第１の制御部と、
第２のオペレーションシステム、及び、当該第２のオペレーションシステム上で動作する第２のアプリケーションを実行する第２の制御部と、を備える情報処理装置が行う起動方法であって、
前記第１の制御部が、前記情報処理装置の電源が投入された後に、前記第１のオペレーションシステム及び前記第１のアプリケーションを起動する第１の起動処理を行う第１の起動過程と、
前記第２の制御部が、前記情報処理装置の電源が投入された後に、前記第１の起動処理よりも早く処理を完了する、前記第２のオペレーションシステム及び前記第２のアプリケーションを起動する第２の起動処理を前記第１の起動処理と並行して行う第２の起動過程と、
前記第２の制御部が、前記第１の起動過程の完了前に前記第２の起動処理を完了し、前記第２の起動処理の完了後に、前記第２のアプリケーションを実行することで前記情報処理装置を制御する第２の制御処理を行うとともに、前記情報処理装置に接続されたデバイスを制御するデバイス制御処理を行う制御処理過程と、
前記第１の制御部が、前記第１の起動処理の完了後に、前記第１のアプリケーションを実行し、前記第２の制御処理の代わりに前記情報処理装置を制御する第１の制御処理を行う引継制御処理過程と、を有し、
前記引継制御処理過程は、
前記第１の制御部が、前記第１の起動処理の完了後に、制御権限の切り替えが可能になったことを前記第２の制御部に通知する過程と、
前記第２の制御部が、前記第１の制御部からの通知を受けると、前記第２の制御処理で既に行われた処理の状態を示す情報及び前記デバイスの制御状態を示す情報を含むデバイス制御情報、並びに、前記デバイスから通知された内容を示す通知情報を含む引継情報を生成した後に、前記第１の制御部に対して制御権限切換完了を通知する過程と、
前記第１の制御部は、前記第２の制御部から制御権限切換完了の通知を受けると、前記引継情報を参照することで、前記第２の制御処理で実行されていた制御を継続して行う過程と、を有し、
前記第２の制御部は、前記第１の制御部が前記第１の制御処理を開始すると、前記第２の制御処理を終了し、前記デバイス制御処理を継続すること
を特徴とする起動方法。
【請求項４】
前記制御処理過程において、前記第２の制御部は、前記第２の制御処理で、前記第２のアプリケーションに対応する第２のＧＵＩを、前記情報処理装置に接続された出力装置に表示させ、
前記引継情報には、前記第２のＧＵＩの表示状態を示す情報が含まれ、
前記引継制御処理過程において、前記第１の制御部は、前記第１の制御処理で、前記引継情報を参照することで、前記第２のＧＵＩの代わりに、前記第２のＧＵＩの表示状態に対応し、かつ、前記第１のアプリケーションに対応する第１のＧＵＩを、前記情報処理装置に接続された出力装置に表示させること
を特徴とする請求項３に記載の起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその起動方法に関する。
【背景技術】
【０００２】
近年の記録媒体の多様化により、記録媒体に記録されたコンテンツの再生を行う情報処理装置は、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））を代表とする光ディスクだけでなく、ＵＳＢメモリ又はＳＤカードといった様々な記録媒体での再生に対応する必要が生じてきている。
【０００３】
また、これらの記録媒体は年々大容量化が進んでおり、記録可能なコンテンツの量も膨大になってきている。そして、膨大なコンテンツの中から目的のコンテンツを容易に見つけ出すことができるようにするため、情報処理装置は、サーチ機能といった再生補助機能の高度化も求められてきている。
【０００４】
大容量の記録媒体及び様々な種類の記録媒体へのアクセスを実現するため、並びに、高度な再生補助機能を実現するためには、開発しなければならないソフトウェアの規模が大きくなる。そのため、開発を効率良く行うために、高機能なオペレーティングシステム（以下、ＯＳという）が情報処理装置に搭載され、実行させるようになってきている。
【０００５】
高機能なＯＳを搭載することにより、ドライバ等のソフトウエアモジュールを用意するだけで、各種記録媒体へのアクセス機能等の各種の機能を比較的容易に情報処理装置に実装することができる。
【０００６】
しかしながら、高機能なＯＳを情報処理装置において起動させるようにした場合、数々のドライバ等のモジュールをロードしたり、ファイルシステムを初期化したりする処理等、電源を投入してから起動完了までに行わなくてはならない種々の処理があるため、このＯＳ上で動作するアプリケーションプログラムの起動も遅くなってしまう。
【０００７】
電源ＯＮからユーザ操作の受付開始までの時間を短縮するために、特許文献１には、高機能なＯＳを実行する第一のＣＰＵと、この高機能なＯＳよりも高速に起動する低機能なＯＳを実行する第二のＣＰＵと、第一のＣＰＵ及び第二のＣＰＵの両方がアクセスできる共有メモリとが、一つの制御バスで接続されている電子機器が記載されている。この電子機器は、電源ＯＮ時には、まず、第一のＣＰＵがブートローダを共有メモリ上に展開して、このブートローダを実行する。次に、第一のＣＰＵは、高機能なＯＳを起動する前に、第二のＣＰＵへ起動要求を送信する。このような起動要求を受けた第二のＣＰＵは、高速に起動する低機能なＯＳを起動させて、この低機能なＯＳ上で、機能の限定された限定アプリケーションプログラムを実行することで、ユーザ操作の受付を開始する。その後、第一のＣＰＵは、高機能なＯＳを起動させて、全ての機能を実行することのできる完全アプリケーションプログラムを実行する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−４６６７２号公報（段落００５５〜００５９、図５、図６）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載された電子機器では、まず、第一のＣＰＵがブートローダを起動させてから、第二のＣＰＵに起動要求を与えているため、第二のＣＰＵは、第一のＣＰＵから起動要求を受け付けるまで、起動処理を行えない。従って、電源ＯＮから第二のＣＰＵが起動を開始するまでに、第二のＣＰＵが何も処理できない時間が含まれるため、この分だけ限定アプリケーションプログラムの起動時間が遅くなる。
【００１０】
そこで、本発明は、起動開始から所定の処理を実行可能になるまでに要する時間を短縮できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様に係る情報処理装置は、第１のオペレーションシステム、及び、当該第１のオペレーションシステム上で動作する第１のアプリケーションを実行する第１の制御部と、第２のオペレーションシステム、及び、当該第２のオペレーションシステム上で動作する第２のアプリケーションを実行する第２の制御部と、を備える情報処理装置であって、前記第２の制御部は、前記情報処理装置に接続されたデバイスを制御するデバイス制御部を備え、前記第１の制御部は、前記情報処理装置の電源が投入された後に、前記第１のオペレーションシステム及び前記第１のアプリケーションを起動する第１の起動処理を行い、前記第２の制御部は、前記情報処理装置の電源が投入された後に、前記第１の起動処理よりも早く処理を完了する、前記第２のオペレーションシステム及び前記第２のアプリケーションを起動する第２の起動処理を前記第１の起動処理と並行して行い、前記第２の制御部は、前記第１の起動処理の完了前に前記第２の起動処理を完了し、前記第２の起動処理の完了後に、前記第２のアプリケーションを実行することで前記情報処理装置を制御する第２の制御処理を行うとともに、前記デバイス制御部を介して、前記デバイスを制御するデバイス制御処理を行い、前記第１の制御部は、前記第１の起動処理の完了後に、制御権限の切り替えが可能になったことを前記第２の制御部に通知し、前記第２の制御部は、前記第１の制御部からの通知を受けると、前記第２の制御処理で既に行われた処理の状態を示す情報及び前記デバイスの制御状態を示す情報を含むデバイス制御情報、並びに、前記デバイスから通知された内容を示す通知情報を含む引継情報を生成した後に、前記第１の制御部に対して制御権限切換完了を通知し、前記第１の制御部は、前記第１の起動処理の完了後に、前記第１のアプリケーションを実行し、前記第２の制御部から制御権限切換完了の通知を受けると、前記引継情報を参照して、前記第２の制御処理で実行されていた制御を継続して行うことで、前記第２の制御処理の代わりに前記情報処理装置を制御する第１の制御処理を行い、前記第２の制御部は、前記第１の制御部が前記第１の制御処理を開始すると、前記第２の制御処理を終了し、前記デバイス制御処理を継続することを特徴とする。
【発明の効果】
【００１２】
本発明の一態様によれば、起動開始から所定の処理を実行可能になるまでに要する時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１及び実施の形態２に係る情報処理装置の構成例を示すブロック図である。
【図２】実施の形態１及び実施の形態２における不揮発記憶部が記憶している情報の一例を示す概略図である。
【図３】実施の形態１での共有記憶部におけるデータ構造の一例を示す概略図である。
【図４】実施の形態１及び実施の形態２における第１の記憶部が記憶する情報の一例を示す概略図である。
【図５】実施の形態１及び実施の形態２における第２の記憶部が記憶する情報の一例を示す概略図である。
【図６】実施の形態１に係る情報処理装置の起動時の処理の流れを概略的に示すタイムチャートである。
【図７】実施の形態１での第１の制御部における起動処理を示すフローチャートである。
【図８】実施の形態１における第１の制御部が行う第１のアプリケーションの同期処理を示すフローチャートである。
【図９】実施の形態１での第２の制御部における起動処理を示すフローチャートである。
【図１０】実施の形態１における制御権限委譲処理を示すフローチャートである。
【図１１】実施の形態２での共有記憶部におけるデータ構造の一例を示す概略図である。
【図１２】実施の形態２での第１の制御部における起動処理を示すフローチャートである。
【図１３】実施の形態２での第２の制御部における起動処理を示すフローチャートである。
【図１４】実施の形態２における制御権限委譲処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
実施の形態１．
図１は、実施の形態１に係る情報処理装置１００の構成例を示すブロック図である。情報処理装置１００は、不揮発記憶部１１０と、共有記憶部１２０と、第１の制御部１３０と、第２の制御部１４０と、入力部１５０とを備える。また、情報処理装置１００には、ドライブ１６０と、出力装置１７０とが接続されている。なお、図１の括弧内の符号は、実施の形態２における構成を示す。
【００１５】
不揮発記憶部１１０は、情報処理装置１００の電源状態に関わらずに記憶しておく必要のある情報を記憶する。図２は、不揮発記憶部１１０が記憶している情報の一例を示す概略図である。図示するように、不揮発記憶部１１０は、ブートローダのプログラムデータ１８０と、第１のＯＳのプログラムデータ１８１と、第１のアプリケーションのプログラムデータ１８２と、第２のＯＳのプログラムデータ１８３と、第２のアプリケーションのプログラムデータ１８４とを記憶する。なお、図２の括弧内の符号は、実施の形態２における情報を示す。
【００１６】
ブートローダのプログラムデータ１８０は、第１のＯＳを起動させるために必要なプログラムのデータである。
第１のＯＳのプログラムデータ１８１は、電源投入から起動完了までの時間が第２のＯＳよりも長いＯＳのプログラムのデータである。例えば、本実施の形態においては、第１のＯＳは、Ｌｉｎｕｘ（登録商標）又はＷｉｎｄｏｗｓ（登録商標）といった、高機能で、起動時間の長いＯＳである。
第１のアプリケーションのプログラムデータ１８２は、第１のＯＳ上で動作するアプリケーションのプログラムのデータである。本実施の形態においては、第１のアプリケーションは、情報処理装置１００における全機能を実現することのできるフルアプリケーションである。
第２のＯＳのプログラムデータ１８３は、電源投入から起動完了までの時間が第１のＯＳよりも短いＯＳのプログラムのデータである。例えば、本実施の形態においては、第２のＯＳは、ＩＴＲＯＮ（登録商標）又はＶｘＷＯＲＫＳ（登録商標）といった、低機能ではあるが高速に起動することができるＯＳである。
第２のアプリケーションのプログラムデータ１８４は、第２のＯＳ上で動作するアプリケーションのプログラムのデータである。本実施の形態においては、第２のアプリケーションは、情報処理装置１００における一部の機能だけを実現することのできる簡易アプリケーションである。ここで、第２のアプリケーションは、電源投入から起動完了までの時間が、第１のアプリケーションよりも短い。
【００１７】
図１の説明に戻り、共有記憶部１２０は、第１の制御部１３０及び第２の制御部１４０の間で共有すべき情報を記憶する。共有記憶部１２０は、第１の制御部１３０及び第２の制御部１４０からの指示に従って、情報の読み込み及び書き込みを行う。図３は、共有記憶部１２０におけるデータ構造の一例を示す概略図である。図示するように、共有記憶部１２０は、通信情報記憶領域１２１と、引継情報記憶領域１２２とを備える。
【００１８】
通信情報記憶領域１２１には、第１の制御部１３０と第２の制御部１４０との間でやり取りされる通信情報が記憶される。例えば、本実施の形態においては、後述する切替開始通知及び切替完了通知等が通信情報として通信情報記憶領域１２１に記憶される。
引継情報記憶領域１２２には、第１のアプリケーションが、第２のアプリケーションでの制御処理を引き継ぐために必要な引継情報が記憶される。例えば、本実施の形態においては、引継情報記憶領域１２２には、第２のアプリケーションで既に行われた処理の状態を示す、第２のアプリケーションの内部状態情報１８５が引継情報として記憶される。
【００１９】
図１の説明に戻り、第１の制御部１３０は、不揮発記憶部１１０に記憶されているプログラムデータを読み込んで、第１のＯＳ及び第１のアプリケーションを実行する。図示するように、第１の制御部１３０は、第１の演算処理部１３１と、第１の記憶部１３２と、第１の制御バス１３３とを備える。
【００２０】
第１の演算処理部１３１は、不揮発記憶部１１０から、ブートローダのプログラムデータ１８０、第１のＯＳのプログラムデータ１８１及び第１のアプリケーションのプログラムデータ１８２を読み込み、第１の記憶部１３２に書き込む。そして、第１の演算処理部１３１は、第１のＯＳ及び第１のアプリケーションを起動させて、第１のアプリケーションに基づいて、情報処理装置１００の制御処理を行う。なお、第１の演算処理部１３１は、第１のアプリケーションに基づいて、情報処理装置１００の制御処理を行う際には、第２のアプリケーションで既に行われた処理を引き継ぐために、共有記憶部１２０から、内部状態情報１８５を読み込み、第１のアプリケーションと第２のアプリケーションとの間の同期を取る同期処理を行う。
【００２１】
第１の記憶部１３２は、第１の演算処理部１３１が処理を行う際に必要な情報を記憶する。図４は、第１の記憶部１３２が記憶する情報の一例を示す概略図である。なお、図４の括弧内の符号は、実施の形態２における情報を示す。
第１の記憶部１３２は、ブートローダのプログラムデータ１８０１、第１のＯＳのプログラムデータ１８１１及び第１のアプリケーションのプログラムデータ１８２１を記憶する。ブートローダのプログラムデータ１８０１、第１のＯＳのプログラムデータ１８１１及び第１のアプリケーションのプログラムデータ１８２１は、ブートローダのプログラムデータ１８０、第１のＯＳのプログラムデータ１８１及び第１のアプリケーションのプログラムデータ１８２が展開されたものである。
また、第１の記憶部１３２は、第１の演算処理部１３１が処理を行う際に一時的に必要な情報である第１の一時データ１８６を記憶する。第１の一時データ１８６には、例えば、共有記憶部１２０から読み出された内部状態情報１８５等が含まれる。
【００２２】
図１の説明に戻り、第１の制御バス１３３は、第１の制御部１３０の制御信号及び各種情報を伝達するバスであり、第１の演算処理部１３１及び第１の記憶部１３２を接続している。また、第１の制御部１３０が、入力部１５０から入力信号を受け取る際、並びに、共有記憶部１２０及び不揮発記憶部１１０との間のデータのやり取りを行う際にも、第１の演算処理部１３１は、この第１の制御バス１３３を用いる。
【００２３】
第２の制御部１４０は、不揮発記憶部１１０に記憶されているプログラムデータを読み込んで、第２のＯＳ及び第２のアプリケーションを実行する。図示するように、第２の制御部１４０は、第２の演算処理部１４１と、第２の記憶部１４２と、デバイス制御部１４３と、第２の制御バス１４４とを備える。
【００２４】
第２の演算処理部１４１は、不揮発記憶部１１０から、第２のＯＳのプログラムデータ１８３及び第２のアプリケーションのプログラムデータ１８４を読み込み、第２の記憶部１４２に書き込む。そして、第２の演算処理部１４１は、第２のＯＳ及び第２のアプリケーションを起動させて、第２のアプリケーションに基づいて、情報処理装置１００の制御処理を行う。また、第２の演算処理部１４１は、第１の演算処理部１３１から後述する切替開始通知を受け取った際には、第２のアプリケーションで既に行われた処理を引き継がせるために、内部状態情報１８５を生成して、この内部状態情報１８５を共有記憶部１２０に記憶させる制御権限委譲処理を行う。さらに、第２の演算処理部１４１は、デバイス制御部１４３を介して、情報処理装置１００に接続されている各種デバイスを制御するデバイス制御処理を行う。
【００２５】
第２の記憶部１４２は、第２の演算処理部１４１が処理を行う際に必要な情報を記憶する。図５は、第２の記憶部１４２が記憶する情報の一例を示す概略図である。なお、図５の括弧内の符号は、実施の形態２における情報を示す。
第２の記憶部１４２は、第２のＯＳのプログラムデータ１８３１及び第２のアプリケーションのプログラムデータ１８４１を記憶する。第２のＯＳのプログラムデータ１８３１及び第２のアプリケーションのプログラムデータ１８４１は、第２のＯＳのプログラムデータ１８３及び第２のアプリケーションのプログラムデータ１８４が展開されたものである。
また、第２の記憶部１４２は、第２の演算処理部１４１が処理を行う際に一時的に必要な情報である第２の一時データ１８７を記憶する。第２の一時データ１８７には、例えば、第２の演算処理部１４１が生成した内部状態情報１８５等が含まれる。
【００２６】
図１の説明に戻り、デバイス制御部１４３は、情報処理装置１００に接続されている様々なデバイスに対して、第２の演算処理部１４１からの指示に従って制御を行う。例えば、本実施の形態においては、デバイス制御部１４３は、ＡＴＡインタフェース（図示せず）等を介して情報処理装置１００に接続されているドライブ１６０に対して制御することで、ドライブ１６０に挿入されている記録媒体に記録されている、映像及び音声等のコンテンツに関する信号を読み込む処理を行う。また、デバイス制御部１４３は、ドライブ１６０から読み込まれた信号をデコードして、映像情報及び音声情報を生成し、例えば、ＨＤＭＩインタフェース（図示せず）等を介して情報処理装置１００に接続されている出力装置１７０等に転送することで、映像及び音声をユーザに提示する処理を行う。
【００２７】
第２の制御バス１４４は、第２の制御部１４０の制御信号及び各種情報を伝達するバスであり、第２の演算処理部１４１、第２の記憶部１４２及びデバイス制御部１４３を接続している。また、第２の制御部１４０が、入力部１５０から入力信号を受け取る際、並びに、共有記憶部１２０及び不揮発記憶部１１０との間のデータのやり取りを行う際にも、第２の演算処理部１４１は、この第２の制御バス１４４を用いる。
なお、第２の演算処理部１４１は、共有記憶部１２０及び不揮発記憶部１１０との間のデータのやり取りを行う際に、第１の演算処理部１３１が用いる第１の制御バス１３３とは異なる第２の制御バス１４４を用いる。このため、第２の演算処理部１４１は、共有記憶部１２０及び不揮発記憶部１１０との間のデータのやり取りを行う際に、第１の演算処理部１３１での処理の完了待ちをする等、第１の演算処理部１３１での処理状態に影響されない。
【００２８】
入力部１５０は、外部からのユーザ操作の入力を受け付ける。そして、入力部１５０は、ユーザからの操作の入力を受け付けた際に、その操作内容を示す入力信号を第１の制御部１３０及び第２の制御部１４０の何れか一方に通知する。
【００２９】
図６は、情報処理装置１００の起動時の処理の流れを概略的に示すタイムチャートである。情報処理装置１００は、電源投入直後は、第２の制御部１４０で情報処理装置１００の制御を行い、その後、第２の制御部１４０から第１の制御部１３０に制御権限を委譲して、第１の制御部１３０で情報処理装置１００の制御を行う。
【００３０】
まず、時刻Ｔ０において、電源が投入されると、第１の制御部１３０では、第１の演算処理部１３１が、不揮発記憶部１１０からブートローダのプログラムデータ１８０を読み出し、第１の記憶部１３２にこのプログラムデータを展開することで、ブートローダのプログラムデータ１８０１とする。また、第２の制御部１４０では、第２の演算処理部１４１が、不揮発記憶部１１０から第２のＯＳのプログラムデータ１８３を読み出し、第２の記憶部１４２にこのプログラムデータを展開することで、第２のＯＳのプログラムデータ１８３１とする。なお、電源は、例えば、入力部１５０を介して投入されてもよく、また、図示されてはいないが、電源投入用の専用の操作ボタン等からなる電源投入部が備えられ、この電源投入部を介して投入されてもよい。
【００３１】
次に、時刻Ｔ１において、第２の制御部１４０では、第２の演算処理部１４１が、不揮発記憶部１１０から第２のアプリケーションのプログラムデータ１８４を読み出し、第２の記憶部１４２にこのプログラムデータを展開することで、第２のアプリケーションのプログラムデータ１８４１とする。
【００３２】
次に、時刻Ｔ２において、第１の制御部１３０では、第１の演算処理部１３１が、第１の記憶部１３２に展開されているブートローダのプログラムデータ１８０１に基づいて、ブートローダを実行する。
【００３３】
次に、時刻Ｔ３において、第２の制御部１４０では、第２の演算処理部１４１が、第２の記憶部１４２に展開されている第２のＯＳのプログラムデータ１８３１に基づいて、第２のＯＳの起動処理を行う。なお、第２の制御部１４０が第２のＯＳを起動させる過程に含まれる時刻Ｔ４以降、情報処理装置１００に接続されている出力装置１７０には、黒画面等の初期画面が表示される。
【００３４】
次に、時刻Ｔ５において、第１の制御部１３０では、第１の演算処理部１３１が、実行されているブートローダに基づいて、不揮発記憶部１１０から第１のＯＳのプログラムデータ１８１を読み出し、第１の記憶部１３２にこのプログラムデータを展開することで、第１のＯＳのプログラムデータ１８１１とする。
【００３５】
次に、時刻Ｔ７において、第２の制御部１４０では、第２の演算処理部１４１が、第２の記憶部１４２に展開されている第２のアプリケーションのプログラムデータ１８４１に基づいて、第２のアプリケーションの起動処理を行う。
【００３６】
次に、時刻Ｔ８において、第１の制御部１３０では、第１の演算処理部１３１が、不揮発記憶部１１０から第１のアプリケーションのプログラムデータ１８２を読み出し、第１の記憶部１３２にこのプログラムデータを展開することで、第１のアプリケーションのプログラムデータ１８２１とする。
【００３７】
次に、時刻Ｔ９において、第２の制御部１４０では、第２の演算処理部１４１が、第２のアプリケーションの起動過程で、デバイス制御部１４３の起動を行う。
【００３８】
次に、時刻Ｔ１０において、第１の制御部１３０では、第１の演算処理部１３１が、不揮発記憶部１１０に展開されている第１のＯＳのプログラムデータ１８１１に基づいて、第１のＯＳの起動処理を行う。
【００３９】
次に、時刻Ｔ１１において、第２の制御部１４０では、第２の演算処理部１４１が、デバイス制御部１４３の起動を行うことで、情報処理装置１００に接続されているドライブ１６０及び出力装置１７０への制御を行うことができるようになる。
【００４０】
次に、時刻Ｔ１２において、第２の制御部１４０では、第２の演算処理部１４１が、第２のアプリケーションの起動を完了し、第２のアプリケーションによる情報処理装置１００の制御処理を開始する。そして、時刻Ｔ１３において、第２の演算処理部１４１は、第２のアプリケーションが提供する簡易ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を、デバイス制御部１４３を介して、出力装置１７０に与えて、出力装置１７０にこの簡易ＧＵＩを表示させる。これにより、第２の制御部１４０は、簡易ＧＵＩを介して、ユーザからの操作要求を受け付けることができるようになる。ここで、簡易ＧＵＩは、第２のアプリケーションが実行可能な、情報処理装置１００の一部の機能だけに対応した第２のＧＵＩである。
【００４１】
次に、時刻Ｔ１４において、第１の制御部１３０では、第１の演算処理部１３１が、第１のＯＳの起動を完了し、その後、ドライバ等の各種モジュールのロードを行う。
【００４２】
次に、時刻Ｔ１６において、第１の制御部１３０では、第１の演算処理部１３１が、第１の記憶部１３２に展開されている第１のアプリケーションのプログラムデータ１８２１に基づいて、第１のアプリケーションの起動処理を行う。
【００４３】
次に、時刻Ｔ１８において、第１の制御部１３０で第１のアプリケーションの起動が完了すると、第１の演算処理部１３１は、情報処理装置１００の制御権限を第１の制御部１３０に切り換えることが可能になったことを第２の制御部１４０に通知するため、制御権限切換開始通知を第２の制御部１４０に与える。その後、第１の制御部１３０は、第２の制御部１４０からの制御権限切換完了通知待ちとなる。
このような制御権限切換開始通知を受け取った第２の制御部１４０では、第２の演算処理部１４１が、第２のアプリケーションに基づいて、制御権限委譲処理を実行する。ここで、制御権限委譲処理は、第２のアプリケーションで実行中だった、情報処理装置１００の制御処理を中断し、必要な情報を第１のアプリケーションに引き継ぐ処理である。このような処理を行うことで、第２のアプリケーションで実行されていた情報処理装置１００の制御処理を、第１のアプリケーションで継続できるようになる。制御権限委譲処理には、第２のアプリケーションが受け付けていた、入力部１５０からの入力信号を、第１のアプリケーションに与えたり、第２のアプリケーションで管理している情報処理装置１００の制御情報、例えば、再生中又は早送り中といった再生状態等を、第１のアプリケーションに与えたりする処理等が含まれる。なお、制御権限委譲処理に含まれる処理は、上記のものに限るわけではなく、例えば、コンテンツの現在の再生位置を示す再生位置情報、及び、ＧＵＩ画面の現在の表示画面を示す表示画面情報等、他の引継情報の受け渡す処理を行ってもよい。
【００４４】
時刻Ｔ１９において、第２の制御部１４０にて制御権限委譲処理が完了すると、第２のアプリケーションで情報処理装置１００の制御処理を終了して、第１のアプリケーションに制御権限を委譲することを第１の制御部１３０に通知するため、第２の演算処理部１４１は、制御権限切換完了通知を第１の制御部１３０に与え、第２の演算処理部１４１は、第２のアプリケーションによる情報処理装置１００の制御処理を終了するが、第２のアプリケーションによるデバイス制御処理は継続して行う。このような制御権限切換完了通知を受け取った第１の制御部１３０では、第１の演算処理部１３１が、同期処理を行った上で、第１のアプリケーションに基づいて、情報処理装置１００の制御処理を開始する。そして、時刻Ｔ２０において、第１の演算処理部１３１は、第２の制御部１４０を介して、ユーザに提示すべきフルＧＵＩ画面を出力装置１７０に表示させ、ユーザからの操作要求を受け付ける。ここで、フルＧＵＩは、情報処理装置１００の全ての機能に対応した第１のＧＵＩである。
【００４５】
なお、例えば、時刻Ｔ６のように、第１の制御部１３０及び第２の制御部１４０が共にアプリケーションの起動を完了していないタイミングで、ユーザが入力部１５０に再生要求を入力した場合は、何れの制御部１３０、１４０においても情報処理装置１００の制御処理を行うことができないため、その処理要求は無視（キャンセル）されることになる。
【００４６】
その後、時刻Ｔ１５のように、第２の制御部１４０において第２のアプリケーションが起動完了した後のタイミングで、ユーザが入力部１５０に再生要求を入力した場合は、制御権限を有している第２の制御部１４０において、第２の演算処理部１４１が、第２のアプリケーションにより再生処理の制御を行う。
【００４７】
一方、時刻Ｔ１７のように、第２のアプリケーションは起動が完了しているが、第１のアプリケーションは起動が完了していないタイミングで、第２のアプリケーションの制御対象外である処理、例えば、サーチ処理の要求をユーザが入力部１５０に入力した場合は、制御権限を有している第２の制御部１４０において、第２の演算処理部１４１が、第２のアプリケーションにより入力信号を受け取った上で、制御対象外として要求を無視（キャンセル）する。
【００４８】
また、時刻Ｔ２１のように、第１の制御部１３０において第１のアプリケーションの起動が完了し、情報処理装置１００の制御権限の切り換えが完了したタイミングで、ユーザが入力部１５０に再生要求を入力した場合は、制御権限を有している第１の制御部１３０において、第１の演算処理部１３１が第１のアプリケーションにより再生処理の制御を行う。さらに、時刻Ｔ２２において、ユーザが入力部１５０にサーチ処理要求を入力した場合も、第１の演算処理部１３１が第１のアプリケーションによりサーチ処理の制御を行う。
【００４９】
以上のように、本発明を適用した情報処理装置１００は、第１の制御部１３０において第１のアプリケーションの起動が完了するまでの間に、より早いタイミングで起動が完了する第２のアプリケーションにより第２の制御部１４０が制御を開始するため、電源を投入してから、各種操作が有効になるまでの時間、言い換えると、情報処理装置１００の起動時間を短縮することができる。
【００５０】
なお、時刻Ｔ１８の制御権限切換開始通知及び時刻Ｔ１９の制御権限切換完了通知は、共有記憶部１２０の通信情報記憶領域１２１に、通知を送信する方の制御部が通知内容を示す情報を書き込み、他方の制御部がその領域を参照することで通信が行われている。しかしながら、通信方法はこのような方法に限られるものではなく、例えば、第１の演算処理部１３１と第２の演算処理部１４１とは、直接通信を行ってもよいし、他の方法で通信を行ってもよい。
【００５１】
なお、第２のアプリケーションで実装対象とする情報処理装置１００の機能は、例えば再生、停止、早送り及び早戻し等のような、情報処理装置１００の基本的な機能としてユーザに提供するものである。一方、実装対象外とする機能は、例えば、対象となる記録媒体に記録されている多数のコンテンツをサーチする機能、及び、複数のドライブを有している場合に対象となるドライブを切り換える機能等のように、情報処理装置１００の付加機能としてユーザに提供するようなものである。なお、本実施の形態における第２のアプリケーションが実装する機能は、上述した基本機能だけに限定されるものではなく、上述した付加機能の一部を実装してもよく、又は、情報処理装置１００の全ての機能を実装してもよい。また、上述した基本機能についてもその一部だけが実装対象とされてもよい。
【００５２】
図７は、第１の制御部１３０における起動処理を示すフローチャートである。図７に示されているフローチャートは、情報処理装置１００の電源が投入されることにより開始される。
【００５３】
まず、第１の制御部１３０が有する第１の演算処理部１３１は、第１の制御部１３０を起動する際に最初に実行されるブートローダのプログラムデータ１８０を、第１の制御部１３０に接続されている不揮発記憶部１１０から読み込み、そのデータを第１の制御部１３０が有する第１の記憶部１３２にコピーする（Ｓ１０）。
【００５４】
次に、第１の演算処理部１３１は、ステップＳ１０で第１の記憶部１３２に記憶されたブートローダのプログラムデータ１８０１に基づいて、ブートローダを実行する（Ｓ１１）。この処理には、例えば、第１のＯＳが起動するときに作業領域として使用する領域を、第１の記憶部１３２に確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、第１のＯＳを起動するために必要な処理が含まれる。
【００５５】
次に、第１の演算処理部１３１は、ステップＳ１１でブートローダを実行することにより、第１の制御部１３０で実行する第１のＯＳのプログラムデータ１８１を、不揮発記憶部１１０から読み込み、そのデータを第１の記憶部１３２にコピーする（Ｓ１２）。また、同様に、第１の演算処理部１３１は、第１の制御部１３０で実行する第１のアプリケーションのプログラムデータ１８２を、不揮発記憶部１１０から読み込んで、第１の記憶部１３２にコピーする（Ｓ１３）。
【００５６】
次に、第１の演算処理部１３１は、ステップＳ１２で第１の記憶部１３２に記憶された第１のＯＳのプログラムデータ１８１１を実行して、第１のＯＳの起動を行う（Ｓ１４）。この処理には、例えば、第１のＯＳが作業領域として使用する領域を第１の記憶部１３２に確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、第１のＯＳを実行するために必要な処理が含まれる。また、このステップＳ１４における第１のＯＳの起動処理を行うことで、第１の演算処理部１３１は、第１のＯＳが管理するドライバ等のモジュールのロードも行う（Ｓ１５）。
【００５７】
次に、第１の演算処理部１３１は、ステップＳ１３で第１の記憶部１３２に記憶された第１のアプリケーションのプログラムデータ１８２１に基づいて、第１のアプリケーションの起動を行う（Ｓ１６）。この処理には、例えば、フルアプリケーションが作業領域として使用する領域を第１の記憶部１３２から確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、フルアプリケーションを起動するために必要な処理が含まれる。
【００５８】
以上に記載したステップＳ１０からステップＳ１６までの処理で、第１の制御部１３０の起動処理が完了するため、次に、第１の演算処理部１３１は、情報処理装置１００の制御権限を譲り受ける処理を始める。
【００５９】
まず、第１の演算処理部１３１は、入力部１５０に指示することにより、入力部１５０における入力信号の出力先を第２の制御部１４０から第１の制御部１３０に切り替えさせる（Ｓ１７）。この処理は、ユーザからの操作要求に対応する入力信号を、入力部１５０から第１の制御部１３０が受けられるようにするための処理である。
【００６０】
次に、第１の演算処理部１３１は、第１のアプリケーションの起動が完了したことを第２の制御部１４０に通知して、制御権限を譲り受けるために、制御権限切換開始通知を第２の制御部１４０に与える（Ｓ１８）。
【００６１】
そして、第１の演算処理部１３１は、第２の制御部１４０から制御権限切換完了通知を取得したか否かを確認し（Ｓ１９）、制御権限切換完了通知を取得した場合（ステップＳ１９でＹｅｓ）には、ステップＳ２０の処理に進む。
【００６２】
なお、ステップＳ１８における制御権限切替開始通知及びステップＳ１９における制御権限切換開始通知の授受は、共有記憶部１３０に用意されている通信情報記憶領域１２１に、通知内容を示す情報を書き込むことで実現される。
【００６３】
ステップＳ２０では、第１の演算処理部１３１は、共有記憶部１２０に用意されている引継情報記憶領域１２２に書き込まれている内部状態情報１８５に従って、第１のアプリケーションの内部状態を、第２のアプリケーションの内部状態と同期させる。なお、ステップＳ２０における同期処理については、図８を用いて詳細に説明する。
【００６４】
そして、第１の演算処理部１３１は、ステップＳ２０における同期処理の結果を反映させたフルＧＵＩの画面の表示を第２の制御部１４０に要求する（Ｓ２１）。この画面表示要求の授受についても、共有記憶部１２０に用意されている通信情報記憶領域１２１に要求内容を示す情報を書き込むことで実現される。
【００６５】
また、以上のステップＳ２１までの処理によって第１の制御部１３０での起動処理が終了し、以降、第１の演算処理部１３１は、入力部１５０を介して入力されるユーザの操作要求に応じて、情報処理装置１００の制御処理を第１のアプリケーションに基づいて行う。なお、第１の演算処理部１３１は、ドライブ１６０及び出力装置１７０に対して必要な処理を行う場合には、必要なデバイス制御処理を第２の制御部１４０に要求する。
【００６６】
図８は、図７のステップＳ２０において、第１の制御部１３０が行う第１のアプリケーションの同期処理を示すフローチャートである。
【００６７】
まず、第一の演算処理部１３１は、共有記憶部１２０に用意されている引継情報記憶領域１２２に書き込まれている内部状態情報１８５を読み込む（Ｓ３０）。
【００６８】
次に、第１の演算処理部１３１は、ステップＳ３０で読み込まれた内部状態情報１８５で示されている第２のアプリケーションの内部状態を、第１のアプリケーションの内部状態に反映させる（Ｓ３１）。
【００６９】
次に、第１の演算処理部１３１は、ステップＳ３１にて反映した内部状態を元に、フルＧＵＩの状態遷移を行い（Ｓ３２）、同期処理を完了する。
【００７０】
図９は、第２の制御部１４０における起動処理を示すフローチャートである。図９に示されているフローチャートは、情報処理装置１００の電源が投入されることにより開始され、図７に示されているフローチャートと並行して行われる。
【００７１】
まず、第２の制御部１４０が有する第２の演算処理部１４１は、第２の制御部１４０で実行する第２のＯＳのプログラムデータ１８３を、第２の制御部１４０に接続されている不揮発記憶部１１０から読み込み、そのデータを第２の制御部１４０が有する第２の記憶部１４２にコピーする（Ｓ４０）。また、同様に、第２の演算処理部１４１は、第２の制御部１４０で実行する第２のアプリケーションのプログラムデータ１８３を、不揮発記憶部１１０から読み込んで、第２の記憶部１４２にコピーする（Ｓ４１）。
【００７２】
次に、第２の演算処理部１４１は、ステップＳ４０で第２の記憶部１４２に記憶された第２のＯＳのプログラムデータ１８３１に基づいて、第２のＯＳの起動を行う（Ｓ４２）。この処理には、例えば、第２のＯＳが作業領域として使用する領域を第２の記憶部１４２に確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、第２のＯＳを実行するために必要な処理が含まれる。
【００７３】
次に、第２の演算処理部１４１は、ステップＳ４１で第２の記憶部１４２に記憶された第２のアプリケーションのプログラムデータ１８４１に基づいて、第２のアプリケーションの起動を行う（Ｓ４３）。この処理には、例えば、第２のアプリケーションが作業領域として使用する領域を第２の記憶部１４２に確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、第２のアプリケーションを起動するために必要な処理が含まれる。
【００７４】
次に、第２の演算処理部１４１は、ステップＳ４３で第２のアプリケーションを起動することにより、第２の制御部１４０に接続されているデバイスを制御するデバイス制御部１４３の起動を行い、デバイス制御処理を行うことが可能な状態にする（Ｓ４４）。この処理には、例えば、情報処理装置１００に接続されているドライブ１６０に対して初期化を行う信号を送信したり、映像情報及び音声情報をデコードするための初期設定を行ったりする処理が含まれる。そのほかにも、デバイス制御処理を行うために必要な処理が含まれる。
【００７５】
次に、第２の演算処理部１４１は、ステップＳ４３で起動した第２のアプリケーションが実現する簡易ＧＵＩの起動を行い、ステップＳ４４で初期化したデバイス制御部１３４に対して、その簡易ＧＵＩの画面を出力装置１７０に表示するように制御する（Ｓ４５）。
【００７６】
そして、第２の演算処理部１４１は、第２のアプリケーションに基づいて、情報処理装置１００の制御処理を行う（Ｓ４６）。この情報処理装置１００の制御処理には、例えば、入力部１５０に入力されたユーザからの操作要求に対する再生制御処理、簡易ＧＵＩの操作処理、情報処理装置１００に接続されているドライブ１６０及び出力装置１７０に対する制御信号の送出処理、コンテンツ情報の読込処理、並びに、映像信号及び音声信号のデコード処理、といった処理が含まれる。
【００７７】
次に、第２の演算処理部１４１は、第１の制御部１３０から制御権限切替開始通知を受け取ったか否かを確認する（ステップＳ４７）。そして、第２の演算処理部１４１は、制御権限切替開始通知を受け取った場合（ステップＳ４７でＹｅｓ）には、ステップＳ４８の処理に進み、制御権限切替開始通知を受け取っていない場合（ステップＳ４７でＮｏ）には、ステップＳ４６の処理に戻る。なお、この制御権限切換開始通知を受け取る処理は、共有記憶部１２０に用意されている通信情報記憶領域１２１に書き込まれた通知内容を示す情報を読み込むことで実現する。
【００７８】
ステップＳ４８では、第２の演算処理部１４１は、情報処理装置１００の制御権限を委譲するための処理を行う。このステップＳ４８での制御権限委譲処理は、より具体的には、第２のアプリケーションで行っていた情報処理装置１００の制御処理及びデバイス制御処理を中断し、第１のアプリケーションが第２のアプリケーションでの制御処理を引き継いで、処理を継続できるようにするための処理である。なお、ステップＳ４８での制御権限委譲処理については、図１０を用いて詳細に説明する。
【００７９】
次に、第２の演算処理部１４１は、ステップＳ４８における制御権限委譲処理が完了し、情報処理装置１００の制御権限を第１の制御部１３０に委譲する準備が整ったら、第１の制御部１３０に対して制御権限切換完了通知を与える（Ｓ４９）。この制御権限切換完了通知の授受についても、共有記憶部１２０に用意されている通信情報記憶領域１２１に通知内容を示す情報を書き込むことで実現する。
【００８０】
次に、第２の演算処理部１４１は、第１の制御部１３０から、フルＧＵＩの画面描画を要求されたか否かを確認する（Ｓ５０）。そして、第２の演算処理部１４１は、このような要求を受けた場合（ステップＳ５０でＹｅｓ）には、ステップＳ５１の処理に進む。
【００８１】
ステップＳ５１では、第２の演算処理部１４１は、描画中の簡易ＧＵＩの表示の終了をデバイス制御部１４３に対して要求することで、簡易ＧＵＩの表示を終了させる。
【００８２】
次に、第２の演算処理部１４１は、第１の制御部１３０から要求されたフルＧＵＩの描画をデバイス制御部１４３に対して要求することで、フルＧＵＩを出力装置１７０に表示させる（Ｓ５２）。このステップＳ５２で描画するフルＧＵＩの情報も、共有記憶部１２０に用意されている通信情報記憶領域１２１を介して、第２の制御部１４０に与えられる。
【００８３】
以上のステップＳ５２までの処理によって、第２の制御部１４０での起動処理が終了し、以降、第２の演算処理部１４１は、第１の制御部１３０からのデバイス制御の要求に応じて、デバイス制御部１４３の制御を行う。
【００８４】
図１０は、図９のステップＳ４８における制御権限委譲処理を示すフローチャートである。
【００８５】
まず、第２の演算処理部１４１は、入力部１５０から通知された、ユーザからの操作要求の中で、第２の制御部１４０で受け付けたが、まだ処理できていないものがあるか否かを確認する（Ｓ６０）。そして、第２の演算処理部１４１は、まだ処理できていない操作要求が存在する場合（ステップＳ６０でＹｅｓ）には、ステップＳ６１の処理に進み、まだ処理できていない操作要求が存在しない場合（ステップＳ６０でＮｏ）には、ステップＳ６２の処理に進む。
【００８６】
ステップＳ６１では、第２の演算処理部１４１は、未処理の操作要求に応じた処理を実行して、完了させる。
【００８７】
一方、ステップＳ６２では、第２の演算処理部１４１は、第２のアプリケーションに基づく、情報処理装置１００の制御処理及びデバイス制御部１４３へのデバイス制御処理を中断する。
【００８８】
次に、第２の演算処理部１４１は、第２のアプリケーションの内部状態に関する情報、例えば、通常再生中又は早送り再生中といったデバイス制御状態に関する情報等を抽出して、内部状態情報１８５を生成する（Ｓ６３）。なお、第２のアプリケーションの内部状態に関する情報は、上述のデバイス制御状態に限られるものではなく、例えば、簡易ＧＵＩにて表示中の画面を示す画面状態を示す情報が含まれていてもよく、また、それ以外の状態を示す情報が含まれていてもよい。さらに、コンテンツの現在の再生位置といった情報が含まれていてもよい。
【００８９】
そして、第２の演算処理部１４１は、ステップＳ６３で生成された内部状態情報１８５を、共有記憶部１２０の引継情報記憶領域１２２に書き込む（Ｓ６４）。
【００９０】
次に、第２の演算処理部１４１は、ステップＳ６２で中断していた制御処理の内、デバイス制御部１４３へのデバイス制御処理を再開して（Ｓ６５）、制御権限委譲処理を終了する。
【００９１】
以上のように、本実施の形態に係る情報処理装置１００によれば、高速に起動できる第２のＯＳを電源投入直後に起動させて、その第２のＯＳ上で動作する第２のアプリケーションにより情報処理装置１００の制御処理を実行しているため、起動開始後、比較的速いタイミングで情報処理装置１００の制御処理を開始することができるようになり、情報処理装置１００の体感的な起動時間を短縮させることができる。
【００９２】
以上に記載した情報処理装置１００の効果を、特許文献１に記載されている電子機器のように、第１の演算処理部及び第２の演算処理部が、一つの制御バスを介して、共有メモリ及びフラッシュメモリにアクセスする従来例を適用した情報処理装置と比較する。
ここで、例えば、第１の演算処理部ではじめに起動させるブートローダのプログラムサイズを２ＭＢｙｔｅ、第１の演算処理部で動作させる第１のＯＳ及び第１のアプリケーションのプログラムサイズをあわせて５５ＭＢｙｔｅ、第２の演算処理部で動作させる第２のＯＳ及び第２のアプリケーションのプログラムサイズをあわせて１５ＭＢｙｔｅと仮定する。また、第１の演算処理部及び第２の演算処理部が、不揮発記憶部であるフラッシュメモリからデータを読み出す速度を１６０ＭＢｙｔｅ／秒、共有メモリに書き込む速度を６００ＭＢｙｔｅ／秒と仮定する。さらに、第１の演算処理部が単独で第１のアプリケーションを起動させるために要する時間が３秒、第２の演算処理部が単独で第２のアプリケーションを起動させるために要する時間が１秒であると仮定する。そして、特許文献１に記載されている電子機器のように、第１の演算処理部と第２の演算処理部とが一つの制御バスを平等に共有し、第１の演算処理部と第２の演算処理部とが共に動作している場合には、これらが単独で動作している場合と比べて、処理時間が２倍になると仮定する。
【００９３】
上述した仮定において、従来例を適用した情報処理装置が起動するために要する時間は、第１の演算処理部がフラッシュメモリから第１の演算処理部用と第２の演算処理部用の各種データ（ブートローダ、第１のＯＳ、第２のＯＳ、第１のアプリケーション及び第２のアプリケーションのプログラムデータ）を読み込むために必要な時間（＝７２ＭＢｙｔｅ÷１６０ＭＢｙｔｅ／秒）と、共有メモリに第１の演算処理部用と第２の演算処理部用の各種データを書き込むために必要な時間（＝７２ＭＢｙｔｅ÷６００ＭＢｙｔｅ／秒）と、第二の演算処理部において第２のアプリケーションを起動させるために必要な時間（＝１秒×２倍）とを加算することにより、約２．６秒となる。
【００９４】
一方、上述した仮定において、本発明を適用した情報処理装置１００が起動するために要する時間は、第２の演算処理部１４１がフラッシュメモリから第２の演算処理部１４１用の各種データ（第２のＯＳ及び第２のアプリケーションのプログラムデータ）を読み込むために必要な時間（＝１５ＭＢｙｔｅ÷１６０ＭＢｙｔｅ／秒）と、第２の記憶部１４２に第２の演算処理部１４１用の各種データを書き込むために必要な時間（＝１５ＭＢｙｔｅ÷６００ＭＢｙｔｅ／秒）と、第２の演算処理部１４１において第２のアプリケーションを起動させるために必要な時間（＝１秒）とを加算することにより、約１．１秒となる。
【００９５】
このように、上述した仮定において、第２の演算処理部１４１側で第２のアプリケーションを起動するために要する時間は、本発明を適用した情報処理装置１００では、従来例を適用した情報処理装置と比較して約５８％削減されることがわかる。つまり、本発明を適用した情報処理装置１００の方が約５８％高速に起動する。
【００９６】
また、上述した仮定において、第１の演算処理部１３１側で動作する第１のアプリケーションを起動するために要する時間をさらに検証する。
【００９７】
従来例を適用した情報処理装置で必要な時間は、第１の演算処理部がフラッシュメモリから第１の演算処理部用と第２の演算処理部用の各種データ（ブートローダ、第１のＯＳ、第２のＯＳ、第１のアプリケーションのプログラムデータ及び第２のアプリケーションのプログラムデータ）を読み込むために必要な時間（＝７２ＭＢｙｔｅ÷１６０ＭＢｙｔｅ／秒）と、共有メモリに第１の演算処理部１３１用と第２の演算処理部１４１用の各種データを書き込むために必要な時間（＝７２ＭＢｙｔｅ÷６００ＭＢｙｔｅ／秒）と、第１の演算処理部１３１側で動作する第１のアプリケーションを起動させるために必要な時間（＝３秒×２倍）とを加算することにより、約６．６秒となる。
【００９８】
一方、本発明を適用した情報処理装置１００で必要な時間は、第１の演算処理部１３１がフラッシュメモリから第１の演算処理部１３１用の各種データ（ブートローダ、第１のＯＳ及び第１のアプリケーションのプログラムデータ）を読み込むために必要な時間（＝５７ＭＢｙｔｅ÷１６０ＭＢｙｔｅ／秒）と、第１の記憶部１３２に第１の演算処理部１３１用の各種データを書き込むために必要な時間（＝５７ＭＢｙｔｅ÷６００ＭＢｙｔｅ／秒）と、第１の演算処理部１３１側で動作する第１のアプリケーションを起動させるために必要な時間（＝３秒）とを加算することにより、約３．５秒となる。
【００９９】
このように、上述した仮定において、第１のアプリケーションを起動させてすべての機能を実行できるようになるために必要な時間は、本発明を適用した情報処理装置１００では、従来例を適用した情報処理装置と比較して、約４７％削減されることがわかる。つまり、本発明を適用した情報処理装置１００の方が、約４７％高速に全機能を実行可能になる。
【０１００】
また、以上に記載した実施の形態１に係る情報処理装置１００によれば、全ての機能が使える第１のアプリケーションが起動した後に、第１のアプリケーションと第２のアプリケーションとの内部状態を同期させているため、第２のアプリケーションから第１のアプリケーションへの制御権限の切換前後でも、デバイスの状態や画面の表示を継続させることができ、アプリケーションの切り替わりに伴う操作感の変化のようなユーザへの負担を軽減することができる。
【０１０１】
実施の形態２．
次に、実施の形態２について説明する。
上述した実施の形態１では、制御権限委譲処理において、第２のアプリケーションによる制御処理を中断した上で、第２のアプリケーションの内部状態を示す内部状態情報１８５を共有記憶部１２０に記録させるようにしたが、各種デバイスは、第２のアプリケーションによる制御処理が中断されている間も動作し続けており、各種デバイスから、各種情報、例えば、再生位置の変化、内部状態の変化、又は、エラーの発生等が通知されることがある。例えば、ドライブ１６０で記録媒体の読み込みエラーが発生した際に、そのことを通知するイベントが一度だけ発生し、ドライブ１６０の内部状態としては停止状態となるというように、デバイスが一度だけ通知を行い、デバイスの状態としてはその通知が記憶されていないような場合がある。
このような通知について、第１のアプリケーション及び第２のアプリケーションは随時受け入れられるように構成されており、情報処理装置１００の制御処理を行うと共に、このような通知に対する処理を行うようにしているが、上述した制御権限委譲処理の期間においては、第１のアプリケーションはまだ動作可能ではなく、第２のアプリケーションはその制御処理を中断しているため、この期間においてはこれらの通知に対する処理を実行することはできない。
実施の形態２は、上述したような問題を解決するためのものであり、制御権限委譲処理において第２のアプリケーションから第１のアプリケーションに引き継ぐ情報に、このような通知を示す通知情報を含めることで、第１のアプリケーションが実行可能になったら、このような通知に応じた処理を実行することができるようにするものである。以下、実施の形態２について説明を行う。
【０１０２】
図１に示すように、実施の形態２に係る情報処理装置２００は、不揮発記憶部２１０と、共有記憶部２２０と、第１の制御部２３０と、第２の制御部２４０と、入力部１５０とを備える。実施の形態２に係る情報処理装置２００は、不揮発記憶部２１０に記憶される情報、共有記憶部２２０に記憶される情報、並びに、第１の制御部２３０及び第２の制御部２４０での処理において、実施の形態１に係る情報処理装置１００と異なっている。
【０１０３】
共有記憶部２２０は、第１の制御部２３０及び第２の制御部２４０の間で共有すべき情報を記憶する。共有記憶部２２０は、第１の制御部２３０及び第２の制御部２４０からの指示に従って、情報の読み込み及び書き込みを行う。図１１は、共有記憶部２２０におけるデータ構造の一例を示す概略図である。図示するように、共有記憶部２２０は、通信情報記憶領域１２１と、引継情報記憶領域２２２とを備える。実施の形態２における共有記憶部２２０は、引継情報記憶領域２２２に記憶される情報において、実施の形態１における共有記憶部１２０と異なっている。
【０１０４】
引継情報記憶領域２２２には、第１のアプリケーションが、第２のアプリケーションでの制御処理を引き継ぐために必要な引継情報が記憶される。例えば、本実施の形態においては、引継情報記憶領域２２２には、内部状態情報１８５の他、デバイス制御部１４３から第２の演算処理部２４１に通知された内容を示す通知情報２８８１Ａ、２８８１Ｂ、２８８１Ｃ（以下、特に各々を区別する必要がないときは、通知情報２８８１という）が通知情報リスト２８８として記憶される。
【０１０５】
図１の説明に戻り、不揮発記憶部２１０は、情報処理装置２００の電源状態に関わらずに記憶しておく必要がある情報を記憶する。図２に示すように、不揮発記憶部２１０は、ブートローダのプログラムデータ１８０と、第１のＯＳのプログラムデータ１８１と、第１のアプリケーションのプログラムデータ２８２と、第２のＯＳのプログラムデータ１８３と、第２のアプリケーションのプログラムデータ２８４とを記憶する。実施の形態２における不揮発記憶部２１０は、第１のアプリケーションのプログラムデータ２８２及び第２のアプリケーションのプログラムデータ２８４を実行することにより発揮される機能において、実施の形態１における不揮発記憶部１１０と異なっている。
【０１０６】
第１のアプリケーションのプログラムデータ２８２は、第１のＯＳ上で動作するアプリケーションのプログラムのデータである。本実施の形態における第１のアプリケーションのプログラムデータ２８２は、実施の形態１と同様の機能の他に、共有記憶部２２０に記憶されている通知情報２８８１を取得して、この通知情報２８８１に示されている通知内容に従った処理を行う機能を備える。
【０１０７】
第２のアプリケーションのプログラムデータ２８４は、第２のＯＳ上で動作するアプリケーションのプログラムのデータである。本実施の形態における第２のアプリケーションのプログラムデータ２８４は、実施の形態１とほぼ同様の機能を有しているが、制御権限委譲処理においてデバイス制御処理を中断しない点、及び、デバイス制御部１４３からの通知を通知情報２８８１として共有記憶部２２０に記憶させる点において、実施の形態１における第２のアプリケーションのプログラムデータ１８４と異なっている。本実施の形態における第２のアプリケーションでの処理の詳細については、図１３及び図１４を用いて詳細に説明する。
【０１０８】
図１の説明に戻り、第１の制御部２３０は、不揮発記憶部２１０に記憶されているプログラムデータを読み込んで、ブートローダ、第１のＯＳ及び第１のアプリケーションを実行する。図示するように、第１の制御部２３０は、第１の演算処理部２３１と、第１の記憶部２３２と、第１の制御バス１３３とを備える。実施の形態２における第１の制御部２３０は、第１の演算処理部２３１での処理及び第１の記憶部２３２に記憶される情報において、実施の形態１における第１の制御部１３０と異なっている。
【０１０９】
第１の演算処理部２３１は、不揮発記憶部２１０から、ブートローダのプログラムデータ１８０、第１のＯＳのプログラムデータ１８１及び第１のアプリケーションのプログラムデータ２８２を読み込み、第１の記憶部２３２に書き込む。そして、第１の演算処理部２３１は、第１のＯＳ及び第１のアプリケーションを起動させて、第１のアプリケーションに基づいて、情報処理装置２００の制御処理を行う。なお、第１の演算処理部２３１は、第１のアプリケーションに基づいて、情報処理装置２００の制御処理を行う際には、第２のアプリケーションで既に行われた処理を引き継ぐために、共有記憶部２２０から、内部状態情報１８５を読み込み、第１のアプリケーションと第２のアプリケーションとの間の同期を取る同期処理を行う。ここで、実施の形態２における第１の演算処理部２３１は、共有記憶部２２０に記憶されている通知情報２８８１を取得して、この通知情報２８８１に示されている通知内容に従った処理を行う点において、実施の形態１における第１の演算処理部１３１と異なっている。
【０１１０】
第１の記憶部２３２は、第１の演算処理部２３１が処理を行う際に必要な情報を記憶する。図４に示すように、第１の記憶部２３２は、ブートローダのプログラムデータ１８０１、第１のＯＳのプログラムデータ１８１１及び第１のアプリケーションのプログラムデータ２８２１を記憶する。ブートローダのプログラムデータ１８０１、第１のＯＳのプログラムデータ１８１１及び第１のアプリケーションのプログラムデータ２８２１は、不揮発記憶部２１０から読み出されたブートローダのプログラムデータ１８０、第１のＯＳのプログラムデータ１８１及び第１のアプリケーションのプログラムデータ２８２を展開したものである。
また、第１の記憶部２３２は、第１の演算処理部２３１が処理を行う際に一時的に必要な情報である第１の一時データ２８６を記憶する。例えば、第１の一時データ２８６には、共有記憶部２２０から読み出された内部状態情報１８５及び通知情報２８８１等が含まれる。
【０１１１】
図１の説明に戻り、第２の制御部２４０は、不揮発記憶部２１０に記憶されているプログラムデータを読み込んで、第２のＯＳ及び第２のアプリケーションを実行する。図示するように、第２の制御部２４０は、第２の演算処理部２４１と、第２の記憶部２４２と、デバイス制御部１４３と、第２の制御バス１４４とを備える。実施の形態２における第２の制御部２４０は、第２の演算処理部２４１での処理及び第２の記憶部２４２に記憶される情報において、実施の形態１における第２の制御部１４０と異なっている。
【０１１２】
第２の演算処理部２４１は、不揮発記憶部２１０から、第２のＯＳのプログラムデータ１８３及び第２のアプリケーションのプログラムデータ２８４を読み込み、第２の記憶部２４２に書き込む。そして、第２の演算処理部２４１は、第２のＯＳ及び第２のアプリケーションを起動させて、第２のアプリケーションに基づいて、情報処理装置２００の制御処理を行う。また、第２の演算処理部２４１は、第１の演算処理部２３１から切替開始通知を受け取った際には、第２のアプリケーションで既に行われた処理を引き継がせるために、内部状態情報１８５を生成して、この内部状態情報１８５を共有記憶部２２０に記憶させる制御権限委譲処理を行う。さらに、第２の演算処理部２４１は、デバイス制御部１４３を介して、情報処理装置１００に接続されている各種デバイスを制御するデバイス制御処理を行う。ここで、実施の形態２における第２の演算処理部２４１は、制御権限委譲処理においてデバイス制御処理を中断しない点、及び、デバイス制御部１４３からの通知を通知情報２８８１として共有記憶部２２０に記憶させる点において、実施の形態１における第２の演算処理部１４１と異なっている。
【０１１３】
第２の記憶部２４２は、第２の演算処理部２４１が処理を行う際に必要な情報を記憶する。図５に示すように、第２の記憶部２４２は、第２のＯＳのプログラムデータ１８３１及び第２のアプリケーションのプログラムデータ２８４１を記憶する。第２のＯＳのプログラムデータ１８３１及び第２のアプリケーションのプログラムデータ２８４１は、不揮発記憶部２１０から読み出された第２のＯＳのプログラムデータ１８３及び第２のアプリケーションのプログラムデータ２８４を展開したものである。
また、第２の記憶部２４２は、第２の演算処理部２４１が処理を行う際に一時的に必要な情報である第２の一時データ２８７を記憶する。例えば、第２の一時データ２８７には、第２の演算処理部２４１が生成した内部状態情報１８５及び通知情報２８８１等が含まれる。
【０１１４】
図１２は、第１の制御部２３０における起動処理を示すフローチャートである。図１２に示されているフローチャートは、情報処理装置２００の電源が投入されることにより開始される。なお、図１２に示されているフローチャートにおいて、図７に示されているフローチャートと同じ符号が付されているステップＳ１０〜Ｓ２１の処理は、図７に示されているフローチャートと同様の処理である。但し、第１のアプリケーションのプログラムデータ１８２及び第１のアプリケーションのプログラムデータ１８２１の代わりに、それぞれ、第１のアプリケーションのプログラムデータ２８２及び第１のアプリケーションのプログラムデータ２８２１が用いられる。
【０１１５】
そして、第１の演算処理部２３１は、ステップＳ２０において、第１のアプリケーションの内部状態を、第２のアプリケーションの内部状態と同期させた後、ステップＳ２１の処理と、ステップＳ７０の処理とを並行して行う。
【０１１６】
ステップＳ７０では、第１の演算処理部２３１は、共有記憶部２２０の引継情報記憶領域２２２に記憶されている通知情報リスト２８８から通知情報２８８１を取得して、制御権限委譲処理の実行中にデバイス制御部１４３が通知してきた各種イベントに対応する処理を実行する。
【０１１７】
図１３は、第２の制御部２４０における起動処理を示すフローチャートである。図１３に示されているフローチャートは、情報処理装置２００の電源が投入されることにより開始され、図１２に示されているフローチャートと並行して行われる。図１３に示されているフローチャートにおいて、図９に示されているフローチャートと同じ符号が付されているステップＳ４０〜Ｓ４７及びステップＳ４９〜Ｓ５２の処理は、図９に示されているステップＳ４０〜Ｓ４７及びステップＳ４９〜Ｓ５２の処理と同様の処理である。但し、第２のアプリケーションのプログラムデータ１８３及び第２のアプリケーションのプログラムデータ１８４１の代わりに、それぞれ、第２のアプリケーションのプログラムデータ２８３及び第２のアプリケーションのプログラムデータ２８４１が用いられる。
【０１１８】
そして、第２の演算処理部２４１は、第１の制御部１３０から制御権限切替開始通知を受け取った場合（ステップＳ４７でＹｅｓ）には、ステップＳ８０及びステップＳ８１の処理に進む。そして、第２の演算処理部２４１は、ステップＳ８０、Ｓ４９及びＳ５０の処理と、ステップＳ８１の処理とを並行して実行する。
【０１１９】
ステップＳ８０では、第２の演算処理部２４１は、情報処理装置２００の制御権限を委譲するための処理を行う。なお、ステップＳ８０での制御権限委譲処理については、図１４を用いて詳細に説明する。そして、第２の演算処理部２４１は、ステップＳ４９の処理に進む。
【０１２０】
一方、ステップＳ８１では、第２の演算処理部２４１は、デバイス制御部１４３からの通知内容を示す通知情報２８８１を生成し、共有記憶部２２０の引継情報記憶領域２２２に追記する処理を行う。なお、第２の演算処理部１４１は、デバイス制御部１４３から通知を受ける度に、引継情報記憶領域２２２に、例えば、通知情報２８８１Ａ、２８８１Ｂ、２８８１Ｃ、・・・のように、通知情報２８８１を順次追記する。
【０１２１】
図１４は、図１３のステップＳ８０における制御権限委譲処理を示すフローチャートである。図１４に示されているフローチャートにおいて、図１０に示されているフローチャートと同じ符号が付されているステップＳ６０、Ｓ６１、Ｓ６３及びＳ６４の処理は、図１０に示されているステップＳ６０、Ｓ６１、Ｓ６３及びＳ６４の処理と同様の処理である。
【０１２２】
第２の演算処理部２４１は、ステップＳ６０において、まだ処理できていないユーザ要求が存在しないと判断した場合（ステップＳ６０でＮｏ）には、ステップＳ９０の処理に進む。
【０１２３】
ステップＳ９０では、第２の演算処理部２４１は、第２のアプリケーションに基づく、情報処理装置２００の制御処理を中断する。この点、第２の演算処理部２４１は、デバイス制御部１４３へのデバイス制御処理は中断しない。これは、図１３のステップＳ８１の処理を行うためである。なお、本実施の形態では、デバイス制御部１４３へのデバイス制御処理が中断されないため、図１０のステップＳ６５の処理は必要ない。
【０１２４】
以上のように、実施の形態２に係る情報処理装置２００によれば、デバイス制御部１４３からの通知内容を示す通知情報、例えば、ドライブ１６０の読み込みエラー通知のような、エラー発生時に一度のみ通知される情報であって、現在の状態としては記録されないような非同期情報についても、第２のアプリケーションから第１のアプリケーションに引き継ぐことができる。このため、制御権限の切換中に発生した各種通知に対応する処理を、制御権限委譲処理が完了した後に第１のアプリケーションで実行することができる。従って、実施の形態２に係る情報処理装置２００によれば、例えば、ユーザに対して予期せぬ動作の契機となった理由を提示することが可能となり、その結果ユーザが感じる不快感を軽減することができる。
【０１２５】
以上に記載された実施の形態１及び２では、本発明を情報処理装置１００、２００に適用した例を説明したが、例えば、携帯電話機、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ（登録商標））及びＢＤの光ディスク等に対応した映像再生装置及び映像録画装置、デジタル放送又はワンセグ放送に対応した放送受信装置等のように、起動時にＯＳを実行する必要がある各種の装置に本発明を適用することもできる。
【０１２６】
また、以上に記載された実施の形態１及び２では、２つの演算処理部が１つの装置に設けられている場合について説明したが、３つ以上の演算処理部が設けられる装置においても、より起動が速い制御部において第２のアプリケーションを動作させるような構成にすることで、上述したような起動時間の短縮効果を得ることが可能である。
【０１２７】
さらに、以上に記載された実施の形態１及び２では、第１の制御部１３０、２３０と第２の制御部１４０、２４０とは、共有記憶部１２０を利用して、情報の受け渡しをしているが、例えば、第１の制御部１３０、２３０が有する第１の演算処理部１３１、２３１と、第２の制御部１４０、２４０が有する第２の演算処理部１４１、２４１との間に通信路を追加して演算処理部間通信を行うことで、情報の受け渡しを行ってもよい。
【０１２８】
また、以上に記載された実施の形態１及び２では、不揮発記憶部１１０、２１０が一つだけ設けられており、第１の制御部１３０、２３０と、第２の制御部１４０、２４０の両方がアクセスできるようにしているが、例えば、第１の制御部１３０、２３０のみがアクセスする不揮発記憶部と、第２の制御部１４０、２４０のみがアクセスする不揮発記憶部といったように、複数の不揮発記憶部が設けられていてもよい。この場合は、第１の制御部１３０、２３０と、第２の制御部１４０、２４０との両方で参照すべき情報は、第２の制御部１４０が不揮発記憶部１１０、２１０から共有記憶部１２０、２２０へ展開すればよい。さらには、第１の制御部１３０、２３０のみがアクセスする不揮発記憶部と、第２の制御部１４０、２４０のみがアクセスする不揮発記憶部と、その両方がアクセスする不揮発記憶部の３つの不揮発記憶部が設けられていてもよく、さらに、より多くの不揮発記憶部が設けられていてもよい。
【０１２９】
以上に記載された実施の形態１及び２では、ブートローダを実行して、第１のＯＳを起動させるようにしているが、第１のＯＳの起動にブートローダの実行が必要ない場合には、ブートローダのプログラムデータを記憶しておき、このデータを読み込む処理、展開する処理及び実行する処理は必要ない。
【０１３０】
また、以上に記載された実施の形態１及び２では、第１の制御部１３０が行う第１の起動処理、及び、第２の制御部１４０が行う第２の起動処理は、同時に開始されている。例えば、電源が投入された直後（図６の時刻Ｔ０）に、第１の起動処理及び第２の起動処理が開始されているが、これに限定されるものではなく、第２の起動処理が開始された後に、第１の起動処理が開始されてもよい。
【０１３１】
なお、本発明の実施の形態は、上述した実施の形態１及び２に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１３２】
１００，２００：情報処理装置、  １１０，２１０：不揮発記憶部、  １２０，２２０：共有記憶部、  １３０，２３０：第１の制御部、  １３１，２３１：第１の演算処理部、  １３２，２３２：第１の記憶部、  １３３：第１の制御バス、  １４０，２４０：第２の制御部、  １４１，２４１：第２の演算処理部、  １４２，２４２：第２の記憶部、  １４３：デバイス制御部、  １４４：第２の制御バス、  １５０：入力部、  １６０：ドライブ、  １７０：出力装置。
【図１】
0005766032.tif 000002
【図２】
0005766032.tif 000003
【図３】
0005766032.tif 000004
【図４】
0005766032.tif 000005
【図５】
0005766032.tif 000006
【図６】
0005766032.tif 000007
【図７】
0005766032.tif 000008
【図８】
0005766032.tif 000009
【図９】
0005766032.tif 000010
【図１０】
0005766032.tif 000011
【図１１】
0005766032.tif 000012
【図１２】
0005766032.tif 000013
【図１３】
0005766032.tif 000014
【図１４】
0005766032.tif 000015