JP5766032B2 - 情報処理装置及びその起動方法 - Google Patents

情報処理装置及びその起動方法 Download PDF

Info

Publication number
JP5766032B2
JP5766032B2 JP2011127283A JP2011127283A JP5766032B2 JP 5766032 B2 JP5766032 B2 JP 5766032B2 JP 2011127283 A JP2011127283 A JP 2011127283A JP 2011127283 A JP2011127283 A JP 2011127283A JP 5766032 B2 JP5766032 B2 JP 5766032B2
Authority
JP
Japan
Prior art keywords
control
control unit
application
information
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011127283A
Other languages
English (en)
Other versions
JP2012256091A (ja
JP2012256091A5 (ja
Inventor
高木 和也
和也 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2011127283A priority Critical patent/JP5766032B2/ja
Publication of JP2012256091A publication Critical patent/JP2012256091A/ja
Publication of JP2012256091A5 publication Critical patent/JP2012256091A5/ja
Application granted granted Critical
Publication of JP5766032B2 publication Critical patent/JP5766032B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置及びその起動方法に関する。
近年の記録媒体の多様化により、記録媒体に記録されたコンテンツの再生を行う情報処理装置は、BD(Blu−ray Disc(登録商標))を代表とする光ディスクだけでなく、USBメモリ又はSDカードといった様々な記録媒体での再生に対応する必要が生じてきている。
また、これらの記録媒体は年々大容量化が進んでおり、記録可能なコンテンツの量も膨大になってきている。そして、膨大なコンテンツの中から目的のコンテンツを容易に見つけ出すことができるようにするため、情報処理装置は、サーチ機能といった再生補助機能の高度化も求められてきている。
大容量の記録媒体及び様々な種類の記録媒体へのアクセスを実現するため、並びに、高度な再生補助機能を実現するためには、開発しなければならないソフトウェアの規模が大きくなる。そのため、開発を効率良く行うために、高機能なオペレーティングシステム(以下、OSという)が情報処理装置に搭載され、実行させるようになってきている。
高機能なOSを搭載することにより、ドライバ等のソフトウエアモジュールを用意するだけで、各種記録媒体へのアクセス機能等の各種の機能を比較的容易に情報処理装置に実装することができる。
しかしながら、高機能なOSを情報処理装置において起動させるようにした場合、数々のドライバ等のモジュールをロードしたり、ファイルシステムを初期化したりする処理等、電源を投入してから起動完了までに行わなくてはならない種々の処理があるため、このOS上で動作するアプリケーションプログラムの起動も遅くなってしまう。
電源ONからユーザ操作の受付開始までの時間を短縮するために、特許文献1には、高機能なOSを実行する第一のCPUと、この高機能なOSよりも高速に起動する低機能なOSを実行する第二のCPUと、第一のCPU及び第二のCPUの両方がアクセスできる共有メモリとが、一つの制御バスで接続されている電子機器が記載されている。この電子機器は、電源ON時には、まず、第一のCPUがブートローダを共有メモリ上に展開して、このブートローダを実行する。次に、第一のCPUは、高機能なOSを起動する前に、第二のCPUへ起動要求を送信する。このような起動要求を受けた第二のCPUは、高速に起動する低機能なOSを起動させて、この低機能なOS上で、機能の限定された限定アプリケーションプログラムを実行することで、ユーザ操作の受付を開始する。その後、第一のCPUは、高機能なOSを起動させて、全ての機能を実行することのできる完全アプリケーションプログラムを実行する。
特開2008−46672号公報(段落0055〜0059、図5、図6)
しかしながら、特許文献1に記載された電子機器では、まず、第一のCPUがブートローダを起動させてから、第二のCPUに起動要求を与えているため、第二のCPUは、第一のCPUから起動要求を受け付けるまで、起動処理を行えない。従って、電源ONから第二のCPUが起動を開始するまでに、第二のCPUが何も処理できない時間が含まれるため、この分だけ限定アプリケーションプログラムの起動時間が遅くなる。
そこで、本発明は、起動開始から所定の処理を実行可能になるまでに要する時間を短縮できるようにすることを目的とする。
本発明の一態様に係る情報処理装置は、第1のオペレーションシステム、及び、当該第1のオペレーションシステム上で動作する第1のアプリケーションを実行する第1の制御部と、第2のオペレーションシステム、及び、当該第2のオペレーションシステム上で動作する第2のアプリケーションを実行する第2の制御部と、を備える情報処理装置であって、前記第2の制御部は、前記情報処理装置に接続されたデバイスを制御するデバイス制御部を備え、前記第1の制御部は、前記情報処理装置の電源が投入された後に、前記第1のオペレーションシステム及び前記第1のアプリケーションを起動する第1の起動処理を行い、前記第2の制御部は、前記情報処理装置の電源が投入された後に、前記第1の起動処理よりも早く処理を完了する、前記第2のオペレーションシステム及び前記第2のアプリケーションを起動する第2の起動処理を前記第1の起動処理と並行して行い、前記第2の制御部は、前記第1の起動処理の完了前に前記第2の起動処理を完了し、前記第2の起動処理の完了後に、前記第2のアプリケーションを実行することで前記情報処理装置を制御する第2の制御処理を行うとともに、前記デバイス制御部を介して、前記デバイスを制御するデバイス制御処理を行い、前記第1の制御部は、前記第1の起動処理の完了後に、制御権限の切り替えが可能になったことを前記第2の制御部に通知し、前記第2の制御部は、前記第1の制御部からの通知を受けると、前記第2の制御処理で既に行われた処理の状態を示す情報及び前記デバイスの制御状態を示す情報を含むデバイス制御情報、並びに、前記デバイスから通知された内容を示す通知情報を含む引継情報を生成した後に、前記第1の制御部に対して制御権限切換完了を通知し、前記第1の制御部は、前記第1の起動処理の完了後に、前記第1のアプリケーションを実行し、前記第2の制御部から制御権限切換完了の通知を受けると、前記引継情報を参照して、前記第2の制御処理で実行されていた制御を継続して行うことで、前記第2の制御処理の代わりに前記情報処理装置を制御する第1の制御処理を行い、前記第2の制御部は、前記第1の制御部が前記第1の制御処理を開始すると、前記第2の制御処理を終了し、前記デバイス制御処理を継続することを特徴とする。
本発明の一態様によれば、起動開始から所定の処理を実行可能になるまでに要する時間を短縮することができる。
実施の形態1及び実施の形態2に係る情報処理装置の構成例を示すブロック図である。 実施の形態1及び実施の形態2における不揮発記憶部が記憶している情報の一例を示す概略図である。 実施の形態1での共有記憶部におけるデータ構造の一例を示す概略図である。 実施の形態1及び実施の形態2における第1の記憶部が記憶する情報の一例を示す概略図である。 実施の形態1及び実施の形態2における第2の記憶部が記憶する情報の一例を示す概略図である。 実施の形態1に係る情報処理装置の起動時の処理の流れを概略的に示すタイムチャートである。 実施の形態1での第1の制御部における起動処理を示すフローチャートである。 実施の形態1における第1の制御部が行う第1のアプリケーションの同期処理を示すフローチャートである。 実施の形態1での第2の制御部における起動処理を示すフローチャートである。 実施の形態1における制御権限委譲処理を示すフローチャートである。 実施の形態2での共有記憶部におけるデータ構造の一例を示す概略図である。 実施の形態2での第1の制御部における起動処理を示すフローチャートである。 実施の形態2での第2の制御部における起動処理を示すフローチャートである。 実施の形態2における制御権限委譲処理を示すフローチャートである。
実施の形態1.
図1は、実施の形態1に係る情報処理装置100の構成例を示すブロック図である。情報処理装置100は、不揮発記憶部110と、共有記憶部120と、第1の制御部130と、第2の制御部140と、入力部150とを備える。また、情報処理装置100には、ドライブ160と、出力装置170とが接続されている。なお、図1の括弧内の符号は、実施の形態2における構成を示す。
不揮発記憶部110は、情報処理装置100の電源状態に関わらずに記憶しておく必要のある情報を記憶する。図2は、不揮発記憶部110が記憶している情報の一例を示す概略図である。図示するように、不揮発記憶部110は、ブートローダのプログラムデータ180と、第1のOSのプログラムデータ181と、第1のアプリケーションのプログラムデータ182と、第2のOSのプログラムデータ183と、第2のアプリケーションのプログラムデータ184とを記憶する。なお、図2の括弧内の符号は、実施の形態2における情報を示す。
ブートローダのプログラムデータ180は、第1のOSを起動させるために必要なプログラムのデータである。
第1のOSのプログラムデータ181は、電源投入から起動完了までの時間が第2のOSよりも長いOSのプログラムのデータである。例えば、本実施の形態においては、第1のOSは、Linux(登録商標)又はWindows(登録商標)といった、高機能で、起動時間の長いOSである。
第1のアプリケーションのプログラムデータ182は、第1のOS上で動作するアプリケーションのプログラムのデータである。本実施の形態においては、第1のアプリケーションは、情報処理装置100における全機能を実現することのできるフルアプリケーションである。
第2のOSのプログラムデータ183は、電源投入から起動完了までの時間が第1のOSよりも短いOSのプログラムのデータである。例えば、本実施の形態においては、第2のOSは、ITRON(登録商標)又はVxWORKS(登録商標)といった、低機能ではあるが高速に起動することができるOSである。
第2のアプリケーションのプログラムデータ184は、第2のOS上で動作するアプリケーションのプログラムのデータである。本実施の形態においては、第2のアプリケーションは、情報処理装置100における一部の機能だけを実現することのできる簡易アプリケーションである。ここで、第2のアプリケーションは、電源投入から起動完了までの時間が、第1のアプリケーションよりも短い。
図1の説明に戻り、共有記憶部120は、第1の制御部130及び第2の制御部140の間で共有すべき情報を記憶する。共有記憶部120は、第1の制御部130及び第2の制御部140からの指示に従って、情報の読み込み及び書き込みを行う。図3は、共有記憶部120におけるデータ構造の一例を示す概略図である。図示するように、共有記憶部120は、通信情報記憶領域121と、引継情報記憶領域122とを備える。
通信情報記憶領域121には、第1の制御部130と第2の制御部140との間でやり取りされる通信情報が記憶される。例えば、本実施の形態においては、後述する切替開始通知及び切替完了通知等が通信情報として通信情報記憶領域121に記憶される。
引継情報記憶領域122には、第1のアプリケーションが、第2のアプリケーションでの制御処理を引き継ぐために必要な引継情報が記憶される。例えば、本実施の形態においては、引継情報記憶領域122には、第2のアプリケーションで既に行われた処理の状態を示す、第2のアプリケーションの内部状態情報185が引継情報として記憶される。
図1の説明に戻り、第1の制御部130は、不揮発記憶部110に記憶されているプログラムデータを読み込んで、第1のOS及び第1のアプリケーションを実行する。図示するように、第1の制御部130は、第1の演算処理部131と、第1の記憶部132と、第1の制御バス133とを備える。
第1の演算処理部131は、不揮発記憶部110から、ブートローダのプログラムデータ180、第1のOSのプログラムデータ181及び第1のアプリケーションのプログラムデータ182を読み込み、第1の記憶部132に書き込む。そして、第1の演算処理部131は、第1のOS及び第1のアプリケーションを起動させて、第1のアプリケーションに基づいて、情報処理装置100の制御処理を行う。なお、第1の演算処理部131は、第1のアプリケーションに基づいて、情報処理装置100の制御処理を行う際には、第2のアプリケーションで既に行われた処理を引き継ぐために、共有記憶部120から、内部状態情報185を読み込み、第1のアプリケーションと第2のアプリケーションとの間の同期を取る同期処理を行う。
第1の記憶部132は、第1の演算処理部131が処理を行う際に必要な情報を記憶する。図4は、第1の記憶部132が記憶する情報の一例を示す概略図である。なお、図4の括弧内の符号は、実施の形態2における情報を示す。
第1の記憶部132は、ブートローダのプログラムデータ1801、第1のOSのプログラムデータ1811及び第1のアプリケーションのプログラムデータ1821を記憶する。ブートローダのプログラムデータ1801、第1のOSのプログラムデータ1811及び第1のアプリケーションのプログラムデータ1821は、ブートローダのプログラムデータ180、第1のOSのプログラムデータ181及び第1のアプリケーションのプログラムデータ182が展開されたものである。
また、第1の記憶部132は、第1の演算処理部131が処理を行う際に一時的に必要な情報である第1の一時データ186を記憶する。第1の一時データ186には、例えば、共有記憶部120から読み出された内部状態情報185等が含まれる。
図1の説明に戻り、第1の制御バス133は、第1の制御部130の制御信号及び各種情報を伝達するバスであり、第1の演算処理部131及び第1の記憶部132を接続している。また、第1の制御部130が、入力部150から入力信号を受け取る際、並びに、共有記憶部120及び不揮発記憶部110との間のデータのやり取りを行う際にも、第1の演算処理部131は、この第1の制御バス133を用いる。
第2の制御部140は、不揮発記憶部110に記憶されているプログラムデータを読み込んで、第2のOS及び第2のアプリケーションを実行する。図示するように、第2の制御部140は、第2の演算処理部141と、第2の記憶部142と、デバイス制御部143と、第2の制御バス144とを備える。
第2の演算処理部141は、不揮発記憶部110から、第2のOSのプログラムデータ183及び第2のアプリケーションのプログラムデータ184を読み込み、第2の記憶部142に書き込む。そして、第2の演算処理部141は、第2のOS及び第2のアプリケーションを起動させて、第2のアプリケーションに基づいて、情報処理装置100の制御処理を行う。また、第2の演算処理部141は、第1の演算処理部131から後述する切替開始通知を受け取った際には、第2のアプリケーションで既に行われた処理を引き継がせるために、内部状態情報185を生成して、この内部状態情報185を共有記憶部120に記憶させる制御権限委譲処理を行う。さらに、第2の演算処理部141は、デバイス制御部143を介して、情報処理装置100に接続されている各種デバイスを制御するデバイス制御処理を行う。
第2の記憶部142は、第2の演算処理部141が処理を行う際に必要な情報を記憶する。図5は、第2の記憶部142が記憶する情報の一例を示す概略図である。なお、図5の括弧内の符号は、実施の形態2における情報を示す。
第2の記憶部142は、第2のOSのプログラムデータ1831及び第2のアプリケーションのプログラムデータ1841を記憶する。第2のOSのプログラムデータ1831及び第2のアプリケーションのプログラムデータ1841は、第2のOSのプログラムデータ183及び第2のアプリケーションのプログラムデータ184が展開されたものである。
また、第2の記憶部142は、第2の演算処理部141が処理を行う際に一時的に必要な情報である第2の一時データ187を記憶する。第2の一時データ187には、例えば、第2の演算処理部141が生成した内部状態情報185等が含まれる。
図1の説明に戻り、デバイス制御部143は、情報処理装置100に接続されている様々なデバイスに対して、第2の演算処理部141からの指示に従って制御を行う。例えば、本実施の形態においては、デバイス制御部143は、ATAインタフェース(図示せず)等を介して情報処理装置100に接続されているドライブ160に対して制御することで、ドライブ160に挿入されている記録媒体に記録されている、映像及び音声等のコンテンツに関する信号を読み込む処理を行う。また、デバイス制御部143は、ドライブ160から読み込まれた信号をデコードして、映像情報及び音声情報を生成し、例えば、HDMIインタフェース(図示せず)等を介して情報処理装置100に接続されている出力装置170等に転送することで、映像及び音声をユーザに提示する処理を行う。
第2の制御バス144は、第2の制御部140の制御信号及び各種情報を伝達するバスであり、第2の演算処理部141、第2の記憶部142及びデバイス制御部143を接続している。また、第2の制御部140が、入力部150から入力信号を受け取る際、並びに、共有記憶部120及び不揮発記憶部110との間のデータのやり取りを行う際にも、第2の演算処理部141は、この第2の制御バス144を用いる。
なお、第2の演算処理部141は、共有記憶部120及び不揮発記憶部110との間のデータのやり取りを行う際に、第1の演算処理部131が用いる第1の制御バス133とは異なる第2の制御バス144を用いる。このため、第2の演算処理部141は、共有記憶部120及び不揮発記憶部110との間のデータのやり取りを行う際に、第1の演算処理部131での処理の完了待ちをする等、第1の演算処理部131での処理状態に影響されない。
入力部150は、外部からのユーザ操作の入力を受け付ける。そして、入力部150は、ユーザからの操作の入力を受け付けた際に、その操作内容を示す入力信号を第1の制御部130及び第2の制御部140の何れか一方に通知する。
図6は、情報処理装置100の起動時の処理の流れを概略的に示すタイムチャートである。情報処理装置100は、電源投入直後は、第2の制御部140で情報処理装置100の制御を行い、その後、第2の制御部140から第1の制御部130に制御権限を委譲して、第1の制御部130で情報処理装置100の制御を行う。
まず、時刻T0において、電源が投入されると、第1の制御部130では、第1の演算処理部131が、不揮発記憶部110からブートローダのプログラムデータ180を読み出し、第1の記憶部132にこのプログラムデータを展開することで、ブートローダのプログラムデータ1801とする。また、第2の制御部140では、第2の演算処理部141が、不揮発記憶部110から第2のOSのプログラムデータ183を読み出し、第2の記憶部142にこのプログラムデータを展開することで、第2のOSのプログラムデータ1831とする。なお、電源は、例えば、入力部150を介して投入されてもよく、また、図示されてはいないが、電源投入用の専用の操作ボタン等からなる電源投入部が備えられ、この電源投入部を介して投入されてもよい。
次に、時刻T1において、第2の制御部140では、第2の演算処理部141が、不揮発記憶部110から第2のアプリケーションのプログラムデータ184を読み出し、第2の記憶部142にこのプログラムデータを展開することで、第2のアプリケーションのプログラムデータ1841とする。
次に、時刻T2において、第1の制御部130では、第1の演算処理部131が、第1の記憶部132に展開されているブートローダのプログラムデータ1801に基づいて、ブートローダを実行する。
次に、時刻T3において、第2の制御部140では、第2の演算処理部141が、第2の記憶部142に展開されている第2のOSのプログラムデータ1831に基づいて、第2のOSの起動処理を行う。なお、第2の制御部140が第2のOSを起動させる過程に含まれる時刻T4以降、情報処理装置100に接続されている出力装置170には、黒画面等の初期画面が表示される。
次に、時刻T5において、第1の制御部130では、第1の演算処理部131が、実行されているブートローダに基づいて、不揮発記憶部110から第1のOSのプログラムデータ181を読み出し、第1の記憶部132にこのプログラムデータを展開することで、第1のOSのプログラムデータ1811とする。
次に、時刻T7において、第2の制御部140では、第2の演算処理部141が、第2の記憶部142に展開されている第2のアプリケーションのプログラムデータ1841に基づいて、第2のアプリケーションの起動処理を行う。
次に、時刻T8において、第1の制御部130では、第1の演算処理部131が、不揮発記憶部110から第1のアプリケーションのプログラムデータ182を読み出し、第1の記憶部132にこのプログラムデータを展開することで、第1のアプリケーションのプログラムデータ1821とする。
次に、時刻T9において、第2の制御部140では、第2の演算処理部141が、第2のアプリケーションの起動過程で、デバイス制御部143の起動を行う。
次に、時刻T10において、第1の制御部130では、第1の演算処理部131が、不揮発記憶部110に展開されている第1のOSのプログラムデータ1811に基づいて、第1のOSの起動処理を行う。
次に、時刻T11において、第2の制御部140では、第2の演算処理部141が、デバイス制御部143の起動を行うことで、情報処理装置100に接続されているドライブ160及び出力装置170への制御を行うことができるようになる。
次に、時刻T12において、第2の制御部140では、第2の演算処理部141が、第2のアプリケーションの起動を完了し、第2のアプリケーションによる情報処理装置100の制御処理を開始する。そして、時刻T13において、第2の演算処理部141は、第2のアプリケーションが提供する簡易GUI(Graphical User Interface)を、デバイス制御部143を介して、出力装置170に与えて、出力装置170にこの簡易GUIを表示させる。これにより、第2の制御部140は、簡易GUIを介して、ユーザからの操作要求を受け付けることができるようになる。ここで、簡易GUIは、第2のアプリケーションが実行可能な、情報処理装置100の一部の機能だけに対応した第2のGUIである。
次に、時刻T14において、第1の制御部130では、第1の演算処理部131が、第1のOSの起動を完了し、その後、ドライバ等の各種モジュールのロードを行う。
次に、時刻T16において、第1の制御部130では、第1の演算処理部131が、第1の記憶部132に展開されている第1のアプリケーションのプログラムデータ1821に基づいて、第1のアプリケーションの起動処理を行う。
次に、時刻T18において、第1の制御部130で第1のアプリケーションの起動が完了すると、第1の演算処理部131は、情報処理装置100の制御権限を第1の制御部130に切り換えることが可能になったことを第2の制御部140に通知するため、制御権限切換開始通知を第2の制御部140に与える。その後、第1の制御部130は、第2の制御部140からの制御権限切換完了通知待ちとなる。
このような制御権限切換開始通知を受け取った第2の制御部140では、第2の演算処理部141が、第2のアプリケーションに基づいて、制御権限委譲処理を実行する。ここで、制御権限委譲処理は、第2のアプリケーションで実行中だった、情報処理装置100の制御処理を中断し、必要な情報を第1のアプリケーションに引き継ぐ処理である。このような処理を行うことで、第2のアプリケーションで実行されていた情報処理装置100の制御処理を、第1のアプリケーションで継続できるようになる。制御権限委譲処理には、第2のアプリケーションが受け付けていた、入力部150からの入力信号を、第1のアプリケーションに与えたり、第2のアプリケーションで管理している情報処理装置100の制御情報、例えば、再生中又は早送り中といった再生状態等を、第1のアプリケーションに与えたりする処理等が含まれる。なお、制御権限委譲処理に含まれる処理は、上記のものに限るわけではなく、例えば、コンテンツの現在の再生位置を示す再生位置情報、及び、GUI画面の現在の表示画面を示す表示画面情報等、他の引継情報の受け渡す処理を行ってもよい。
時刻T19において、第2の制御部140にて制御権限委譲処理が完了すると、第2のアプリケーションで情報処理装置100の制御処理を終了して、第1のアプリケーションに制御権限を委譲することを第1の制御部130に通知するため、第2の演算処理部141は、制御権限切換完了通知を第1の制御部130に与え、第2の演算処理部141は、第2のアプリケーションによる情報処理装置100の制御処理を終了するが、第2のアプリケーションによるデバイス制御処理は継続して行う。このような制御権限切換完了通知を受け取った第1の制御部130では、第1の演算処理部131が、同期処理を行った上で、第1のアプリケーションに基づいて、情報処理装置100の制御処理を開始する。そして、時刻T20において、第1の演算処理部131は、第2の制御部140を介して、ユーザに提示すべきフルGUI画面を出力装置170に表示させ、ユーザからの操作要求を受け付ける。ここで、フルGUIは、情報処理装置100の全ての機能に対応した第1のGUIである。
なお、例えば、時刻T6のように、第1の制御部130及び第2の制御部140が共にアプリケーションの起動を完了していないタイミングで、ユーザが入力部150に再生要求を入力した場合は、何れの制御部130、140においても情報処理装置100の制御処理を行うことができないため、その処理要求は無視(キャンセル)されることになる。
その後、時刻T15のように、第2の制御部140において第2のアプリケーションが起動完了した後のタイミングで、ユーザが入力部150に再生要求を入力した場合は、制御権限を有している第2の制御部140において、第2の演算処理部141が、第2のアプリケーションにより再生処理の制御を行う。
一方、時刻T17のように、第2のアプリケーションは起動が完了しているが、第1のアプリケーションは起動が完了していないタイミングで、第2のアプリケーションの制御対象外である処理、例えば、サーチ処理の要求をユーザが入力部150に入力した場合は、制御権限を有している第2の制御部140において、第2の演算処理部141が、第2のアプリケーションにより入力信号を受け取った上で、制御対象外として要求を無視(キャンセル)する。
また、時刻T21のように、第1の制御部130において第1のアプリケーションの起動が完了し、情報処理装置100の制御権限の切り換えが完了したタイミングで、ユーザが入力部150に再生要求を入力した場合は、制御権限を有している第1の制御部130において、第1の演算処理部131が第1のアプリケーションにより再生処理の制御を行う。さらに、時刻T22において、ユーザが入力部150にサーチ処理要求を入力した場合も、第1の演算処理部131が第1のアプリケーションによりサーチ処理の制御を行う。
以上のように、本発明を適用した情報処理装置100は、第1の制御部130において第1のアプリケーションの起動が完了するまでの間に、より早いタイミングで起動が完了する第2のアプリケーションにより第2の制御部140が制御を開始するため、電源を投入してから、各種操作が有効になるまでの時間、言い換えると、情報処理装置100の起動時間を短縮することができる。
なお、時刻T18の制御権限切換開始通知及び時刻T19の制御権限切換完了通知は、共有記憶部120の通信情報記憶領域121に、通知を送信する方の制御部が通知内容を示す情報を書き込み、他方の制御部がその領域を参照することで通信が行われている。しかしながら、通信方法はこのような方法に限られるものではなく、例えば、第1の演算処理部131と第2の演算処理部141とは、直接通信を行ってもよいし、他の方法で通信を行ってもよい。
なお、第2のアプリケーションで実装対象とする情報処理装置100の機能は、例えば再生、停止、早送り及び早戻し等のような、情報処理装置100の基本的な機能としてユーザに提供するものである。一方、実装対象外とする機能は、例えば、対象となる記録媒体に記録されている多数のコンテンツをサーチする機能、及び、複数のドライブを有している場合に対象となるドライブを切り換える機能等のように、情報処理装置100の付加機能としてユーザに提供するようなものである。なお、本実施の形態における第2のアプリケーションが実装する機能は、上述した基本機能だけに限定されるものではなく、上述した付加機能の一部を実装してもよく、又は、情報処理装置100の全ての機能を実装してもよい。また、上述した基本機能についてもその一部だけが実装対象とされてもよい。
図7は、第1の制御部130における起動処理を示すフローチャートである。図7に示されているフローチャートは、情報処理装置100の電源が投入されることにより開始される。
まず、第1の制御部130が有する第1の演算処理部131は、第1の制御部130を起動する際に最初に実行されるブートローダのプログラムデータ180を、第1の制御部130に接続されている不揮発記憶部110から読み込み、そのデータを第1の制御部130が有する第1の記憶部132にコピーする(S10)。
次に、第1の演算処理部131は、ステップS10で第1の記憶部132に記憶されたブートローダのプログラムデータ1801に基づいて、ブートローダを実行する(S11)。この処理には、例えば、第1のOSが起動するときに作業領域として使用する領域を、第1の記憶部132に確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、第1のOSを起動するために必要な処理が含まれる。
次に、第1の演算処理部131は、ステップS11でブートローダを実行することにより、第1の制御部130で実行する第1のOSのプログラムデータ181を、不揮発記憶部110から読み込み、そのデータを第1の記憶部132にコピーする(S12)。また、同様に、第1の演算処理部131は、第1の制御部130で実行する第1のアプリケーションのプログラムデータ182を、不揮発記憶部110から読み込んで、第1の記憶部132にコピーする(S13)。
次に、第1の演算処理部131は、ステップS12で第1の記憶部132に記憶された第1のOSのプログラムデータ1811を実行して、第1のOSの起動を行う(S14)。この処理には、例えば、第1のOSが作業領域として使用する領域を第1の記憶部132に確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、第1のOSを実行するために必要な処理が含まれる。また、このステップS14における第1のOSの起動処理を行うことで、第1の演算処理部131は、第1のOSが管理するドライバ等のモジュールのロードも行う(S15)。
次に、第1の演算処理部131は、ステップS13で第1の記憶部132に記憶された第1のアプリケーションのプログラムデータ1821に基づいて、第1のアプリケーションの起動を行う(S16)。この処理には、例えば、フルアプリケーションが作業領域として使用する領域を第1の記憶部132から確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、フルアプリケーションを起動するために必要な処理が含まれる。
以上に記載したステップS10からステップS16までの処理で、第1の制御部130の起動処理が完了するため、次に、第1の演算処理部131は、情報処理装置100の制御権限を譲り受ける処理を始める。
まず、第1の演算処理部131は、入力部150に指示することにより、入力部150における入力信号の出力先を第2の制御部140から第1の制御部130に切り替えさせる(S17)。この処理は、ユーザからの操作要求に対応する入力信号を、入力部150から第1の制御部130が受けられるようにするための処理である。
次に、第1の演算処理部131は、第1のアプリケーションの起動が完了したことを第2の制御部140に通知して、制御権限を譲り受けるために、制御権限切換開始通知を第2の制御部140に与える(S18)。
そして、第1の演算処理部131は、第2の制御部140から制御権限切換完了通知を取得したか否かを確認し(S19)、制御権限切換完了通知を取得した場合(ステップS19でYes)には、ステップS20の処理に進む。
なお、ステップS18における制御権限切替開始通知及びステップS19における制御権限切換開始通知の授受は、共有記憶部130に用意されている通信情報記憶領域121に、通知内容を示す情報を書き込むことで実現される。
ステップS20では、第1の演算処理部131は、共有記憶部120に用意されている引継情報記憶領域122に書き込まれている内部状態情報185に従って、第1のアプリケーションの内部状態を、第2のアプリケーションの内部状態と同期させる。なお、ステップS20における同期処理については、図8を用いて詳細に説明する。
そして、第1の演算処理部131は、ステップS20における同期処理の結果を反映させたフルGUIの画面の表示を第2の制御部140に要求する(S21)。この画面表示要求の授受についても、共有記憶部120に用意されている通信情報記憶領域121に要求内容を示す情報を書き込むことで実現される。
また、以上のステップS21までの処理によって第1の制御部130での起動処理が終了し、以降、第1の演算処理部131は、入力部150を介して入力されるユーザの操作要求に応じて、情報処理装置100の制御処理を第1のアプリケーションに基づいて行う。なお、第1の演算処理部131は、ドライブ160及び出力装置170に対して必要な処理を行う場合には、必要なデバイス制御処理を第2の制御部140に要求する。
図8は、図7のステップS20において、第1の制御部130が行う第1のアプリケーションの同期処理を示すフローチャートである。
まず、第一の演算処理部131は、共有記憶部120に用意されている引継情報記憶領域122に書き込まれている内部状態情報185を読み込む(S30)。
次に、第1の演算処理部131は、ステップS30で読み込まれた内部状態情報185で示されている第2のアプリケーションの内部状態を、第1のアプリケーションの内部状態に反映させる(S31)。
次に、第1の演算処理部131は、ステップS31にて反映した内部状態を元に、フルGUIの状態遷移を行い(S32)、同期処理を完了する。
図9は、第2の制御部140における起動処理を示すフローチャートである。図9に示されているフローチャートは、情報処理装置100の電源が投入されることにより開始され、図7に示されているフローチャートと並行して行われる。
まず、第2の制御部140が有する第2の演算処理部141は、第2の制御部140で実行する第2のOSのプログラムデータ183を、第2の制御部140に接続されている不揮発記憶部110から読み込み、そのデータを第2の制御部140が有する第2の記憶部142にコピーする(S40)。また、同様に、第2の演算処理部141は、第2の制御部140で実行する第2のアプリケーションのプログラムデータ183を、不揮発記憶部110から読み込んで、第2の記憶部142にコピーする(S41)。
次に、第2の演算処理部141は、ステップS40で第2の記憶部142に記憶された第2のOSのプログラムデータ1831に基づいて、第2のOSの起動を行う(S42)。この処理には、例えば、第2のOSが作業領域として使用する領域を第2の記憶部142に確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、第2のOSを実行するために必要な処理が含まれる。
次に、第2の演算処理部141は、ステップS41で第2の記憶部142に記憶された第2のアプリケーションのプログラムデータ1841に基づいて、第2のアプリケーションの起動を行う(S43)。この処理には、例えば、第2のアプリケーションが作業領域として使用する領域を第2の記憶部142に確保する処理、及び、その領域を初期化する処理が含まれる。そのほかにも、第2のアプリケーションを起動するために必要な処理が含まれる。
次に、第2の演算処理部141は、ステップS43で第2のアプリケーションを起動することにより、第2の制御部140に接続されているデバイスを制御するデバイス制御部143の起動を行い、デバイス制御処理を行うことが可能な状態にする(S44)。この処理には、例えば、情報処理装置100に接続されているドライブ160に対して初期化を行う信号を送信したり、映像情報及び音声情報をデコードするための初期設定を行ったりする処理が含まれる。そのほかにも、デバイス制御処理を行うために必要な処理が含まれる。
次に、第2の演算処理部141は、ステップS43で起動した第2のアプリケーションが実現する簡易GUIの起動を行い、ステップS44で初期化したデバイス制御部134に対して、その簡易GUIの画面を出力装置170に表示するように制御する(S45)。
そして、第2の演算処理部141は、第2のアプリケーションに基づいて、情報処理装置100の制御処理を行う(S46)。この情報処理装置100の制御処理には、例えば、入力部150に入力されたユーザからの操作要求に対する再生制御処理、簡易GUIの操作処理、情報処理装置100に接続されているドライブ160及び出力装置170に対する制御信号の送出処理、コンテンツ情報の読込処理、並びに、映像信号及び音声信号のデコード処理、といった処理が含まれる。
次に、第2の演算処理部141は、第1の制御部130から制御権限切替開始通知を受け取ったか否かを確認する(ステップS47)。そして、第2の演算処理部141は、制御権限切替開始通知を受け取った場合(ステップS47でYes)には、ステップS48の処理に進み、制御権限切替開始通知を受け取っていない場合(ステップS47でNo)には、ステップS46の処理に戻る。なお、この制御権限切換開始通知を受け取る処理は、共有記憶部120に用意されている通信情報記憶領域121に書き込まれた通知内容を示す情報を読み込むことで実現する。
ステップS48では、第2の演算処理部141は、情報処理装置100の制御権限を委譲するための処理を行う。このステップS48での制御権限委譲処理は、より具体的には、第2のアプリケーションで行っていた情報処理装置100の制御処理及びデバイス制御処理を中断し、第1のアプリケーションが第2のアプリケーションでの制御処理を引き継いで、処理を継続できるようにするための処理である。なお、ステップS48での制御権限委譲処理については、図10を用いて詳細に説明する。
次に、第2の演算処理部141は、ステップS48における制御権限委譲処理が完了し、情報処理装置100の制御権限を第1の制御部130に委譲する準備が整ったら、第1の制御部130に対して制御権限切換完了通知を与える(S49)。この制御権限切換完了通知の授受についても、共有記憶部120に用意されている通信情報記憶領域121に通知内容を示す情報を書き込むことで実現する。
次に、第2の演算処理部141は、第1の制御部130から、フルGUIの画面描画を要求されたか否かを確認する(S50)。そして、第2の演算処理部141は、このような要求を受けた場合(ステップS50でYes)には、ステップS51の処理に進む。
ステップS51では、第2の演算処理部141は、描画中の簡易GUIの表示の終了をデバイス制御部143に対して要求することで、簡易GUIの表示を終了させる。
次に、第2の演算処理部141は、第1の制御部130から要求されたフルGUIの描画をデバイス制御部143に対して要求することで、フルGUIを出力装置170に表示させる(S52)。このステップS52で描画するフルGUIの情報も、共有記憶部120に用意されている通信情報記憶領域121を介して、第2の制御部140に与えられる。
以上のステップS52までの処理によって、第2の制御部140での起動処理が終了し、以降、第2の演算処理部141は、第1の制御部130からのデバイス制御の要求に応じて、デバイス制御部143の制御を行う。
図10は、図9のステップS48における制御権限委譲処理を示すフローチャートである。
まず、第2の演算処理部141は、入力部150から通知された、ユーザからの操作要求の中で、第2の制御部140で受け付けたが、まだ処理できていないものがあるか否かを確認する(S60)。そして、第2の演算処理部141は、まだ処理できていない操作要求が存在する場合(ステップS60でYes)には、ステップS61の処理に進み、まだ処理できていない操作要求が存在しない場合(ステップS60でNo)には、ステップS62の処理に進む。
ステップS61では、第2の演算処理部141は、未処理の操作要求に応じた処理を実行して、完了させる。
一方、ステップS62では、第2の演算処理部141は、第2のアプリケーションに基づく、情報処理装置100の制御処理及びデバイス制御部143へのデバイス制御処理を中断する。
次に、第2の演算処理部141は、第2のアプリケーションの内部状態に関する情報、例えば、通常再生中又は早送り再生中といったデバイス制御状態に関する情報等を抽出して、内部状態情報185を生成する(S63)。なお、第2のアプリケーションの内部状態に関する情報は、上述のデバイス制御状態に限られるものではなく、例えば、簡易GUIにて表示中の画面を示す画面状態を示す情報が含まれていてもよく、また、それ以外の状態を示す情報が含まれていてもよい。さらに、コンテンツの現在の再生位置といった情報が含まれていてもよい。
そして、第2の演算処理部141は、ステップS63で生成された内部状態情報185を、共有記憶部120の引継情報記憶領域122に書き込む(S64)。
次に、第2の演算処理部141は、ステップS62で中断していた制御処理の内、デバイス制御部143へのデバイス制御処理を再開して(S65)、制御権限委譲処理を終了する。
以上のように、本実施の形態に係る情報処理装置100によれば、高速に起動できる第2のOSを電源投入直後に起動させて、その第2のOS上で動作する第2のアプリケーションにより情報処理装置100の制御処理を実行しているため、起動開始後、比較的速いタイミングで情報処理装置100の制御処理を開始することができるようになり、情報処理装置100の体感的な起動時間を短縮させることができる。
以上に記載した情報処理装置100の効果を、特許文献1に記載されている電子機器のように、第1の演算処理部及び第2の演算処理部が、一つの制御バスを介して、共有メモリ及びフラッシュメモリにアクセスする従来例を適用した情報処理装置と比較する。
ここで、例えば、第1の演算処理部ではじめに起動させるブートローダのプログラムサイズを2MByte、第1の演算処理部で動作させる第1のOS及び第1のアプリケーションのプログラムサイズをあわせて55MByte、第2の演算処理部で動作させる第2のOS及び第2のアプリケーションのプログラムサイズをあわせて15MByteと仮定する。また、第1の演算処理部及び第2の演算処理部が、不揮発記憶部であるフラッシュメモリからデータを読み出す速度を160MByte/秒、共有メモリに書き込む速度を600MByte/秒と仮定する。さらに、第1の演算処理部が単独で第1のアプリケーションを起動させるために要する時間が3秒、第2の演算処理部が単独で第2のアプリケーションを起動させるために要する時間が1秒であると仮定する。そして、特許文献1に記載されている電子機器のように、第1の演算処理部と第2の演算処理部とが一つの制御バスを平等に共有し、第1の演算処理部と第2の演算処理部とが共に動作している場合には、これらが単独で動作している場合と比べて、処理時間が2倍になると仮定する。
上述した仮定において、従来例を適用した情報処理装置が起動するために要する時間は、第1の演算処理部がフラッシュメモリから第1の演算処理部用と第2の演算処理部用の各種データ(ブートローダ、第1のOS、第2のOS、第1のアプリケーション及び第2のアプリケーションのプログラムデータ)を読み込むために必要な時間(=72MByte÷160MByte/秒)と、共有メモリに第1の演算処理部用と第2の演算処理部用の各種データを書き込むために必要な時間(=72MByte÷600MByte/秒)と、第二の演算処理部において第2のアプリケーションを起動させるために必要な時間(=1秒×2倍)とを加算することにより、約2.6秒となる。
一方、上述した仮定において、本発明を適用した情報処理装置100が起動するために要する時間は、第2の演算処理部141がフラッシュメモリから第2の演算処理部141用の各種データ(第2のOS及び第2のアプリケーションのプログラムデータ)を読み込むために必要な時間(=15MByte÷160MByte/秒)と、第2の記憶部142に第2の演算処理部141用の各種データを書き込むために必要な時間(=15MByte÷600MByte/秒)と、第2の演算処理部141において第2のアプリケーションを起動させるために必要な時間(=1秒)とを加算することにより、約1.1秒となる。
このように、上述した仮定において、第2の演算処理部141側で第2のアプリケーションを起動するために要する時間は、本発明を適用した情報処理装置100では、従来例を適用した情報処理装置と比較して約58%削減されることがわかる。つまり、本発明を適用した情報処理装置100の方が約58%高速に起動する。
また、上述した仮定において、第1の演算処理部131側で動作する第1のアプリケーションを起動するために要する時間をさらに検証する。
従来例を適用した情報処理装置で必要な時間は、第1の演算処理部がフラッシュメモリから第1の演算処理部用と第2の演算処理部用の各種データ(ブートローダ、第1のOS、第2のOS、第1のアプリケーションのプログラムデータ及び第2のアプリケーションのプログラムデータ)を読み込むために必要な時間(=72MByte÷160MByte/秒)と、共有メモリに第1の演算処理部131用と第2の演算処理部141用の各種データを書き込むために必要な時間(=72MByte÷600MByte/秒)と、第1の演算処理部131側で動作する第1のアプリケーションを起動させるために必要な時間(=3秒×2倍)とを加算することにより、約6.6秒となる。
一方、本発明を適用した情報処理装置100で必要な時間は、第1の演算処理部131がフラッシュメモリから第1の演算処理部131用の各種データ(ブートローダ、第1のOS及び第1のアプリケーションのプログラムデータ)を読み込むために必要な時間(=57MByte÷160MByte/秒)と、第1の記憶部132に第1の演算処理部131用の各種データを書き込むために必要な時間(=57MByte÷600MByte/秒)と、第1の演算処理部131側で動作する第1のアプリケーションを起動させるために必要な時間(=3秒)とを加算することにより、約3.5秒となる。
このように、上述した仮定において、第1のアプリケーションを起動させてすべての機能を実行できるようになるために必要な時間は、本発明を適用した情報処理装置100では、従来例を適用した情報処理装置と比較して、約47%削減されることがわかる。つまり、本発明を適用した情報処理装置100の方が、約47%高速に全機能を実行可能になる。
また、以上に記載した実施の形態1に係る情報処理装置100によれば、全ての機能が使える第1のアプリケーションが起動した後に、第1のアプリケーションと第2のアプリケーションとの内部状態を同期させているため、第2のアプリケーションから第1のアプリケーションへの制御権限の切換前後でも、デバイスの状態や画面の表示を継続させることができ、アプリケーションの切り替わりに伴う操作感の変化のようなユーザへの負担を軽減することができる。
実施の形態2.
次に、実施の形態2について説明する。
上述した実施の形態1では、制御権限委譲処理において、第2のアプリケーションによる制御処理を中断した上で、第2のアプリケーションの内部状態を示す内部状態情報185を共有記憶部120に記録させるようにしたが、各種デバイスは、第2のアプリケーションによる制御処理が中断されている間も動作し続けており、各種デバイスから、各種情報、例えば、再生位置の変化、内部状態の変化、又は、エラーの発生等が通知されることがある。例えば、ドライブ160で記録媒体の読み込みエラーが発生した際に、そのことを通知するイベントが一度だけ発生し、ドライブ160の内部状態としては停止状態となるというように、デバイスが一度だけ通知を行い、デバイスの状態としてはその通知が記憶されていないような場合がある。
このような通知について、第1のアプリケーション及び第2のアプリケーションは随時受け入れられるように構成されており、情報処理装置100の制御処理を行うと共に、このような通知に対する処理を行うようにしているが、上述した制御権限委譲処理の期間においては、第1のアプリケーションはまだ動作可能ではなく、第2のアプリケーションはその制御処理を中断しているため、この期間においてはこれらの通知に対する処理を実行することはできない。
実施の形態2は、上述したような問題を解決するためのものであり、制御権限委譲処理において第2のアプリケーションから第1のアプリケーションに引き継ぐ情報に、このような通知を示す通知情報を含めることで、第1のアプリケーションが実行可能になったら、このような通知に応じた処理を実行することができるようにするものである。以下、実施の形態2について説明を行う。
図1に示すように、実施の形態2に係る情報処理装置200は、不揮発記憶部210と、共有記憶部220と、第1の制御部230と、第2の制御部240と、入力部150とを備える。実施の形態2に係る情報処理装置200は、不揮発記憶部210に記憶される情報、共有記憶部220に記憶される情報、並びに、第1の制御部230及び第2の制御部240での処理において、実施の形態1に係る情報処理装置100と異なっている。
共有記憶部220は、第1の制御部230及び第2の制御部240の間で共有すべき情報を記憶する。共有記憶部220は、第1の制御部230及び第2の制御部240からの指示に従って、情報の読み込み及び書き込みを行う。図11は、共有記憶部220におけるデータ構造の一例を示す概略図である。図示するように、共有記憶部220は、通信情報記憶領域121と、引継情報記憶領域222とを備える。実施の形態2における共有記憶部220は、引継情報記憶領域222に記憶される情報において、実施の形態1における共有記憶部120と異なっている。
引継情報記憶領域222には、第1のアプリケーションが、第2のアプリケーションでの制御処理を引き継ぐために必要な引継情報が記憶される。例えば、本実施の形態においては、引継情報記憶領域222には、内部状態情報185の他、デバイス制御部143から第2の演算処理部241に通知された内容を示す通知情報2881A、2881B、2881C(以下、特に各々を区別する必要がないときは、通知情報2881という)が通知情報リスト288として記憶される。
図1の説明に戻り、不揮発記憶部210は、情報処理装置200の電源状態に関わらずに記憶しておく必要がある情報を記憶する。図2に示すように、不揮発記憶部210は、ブートローダのプログラムデータ180と、第1のOSのプログラムデータ181と、第1のアプリケーションのプログラムデータ282と、第2のOSのプログラムデータ183と、第2のアプリケーションのプログラムデータ284とを記憶する。実施の形態2における不揮発記憶部210は、第1のアプリケーションのプログラムデータ282及び第2のアプリケーションのプログラムデータ284を実行することにより発揮される機能において、実施の形態1における不揮発記憶部110と異なっている。
第1のアプリケーションのプログラムデータ282は、第1のOS上で動作するアプリケーションのプログラムのデータである。本実施の形態における第1のアプリケーションのプログラムデータ282は、実施の形態1と同様の機能の他に、共有記憶部220に記憶されている通知情報2881を取得して、この通知情報2881に示されている通知内容に従った処理を行う機能を備える。
第2のアプリケーションのプログラムデータ284は、第2のOS上で動作するアプリケーションのプログラムのデータである。本実施の形態における第2のアプリケーションのプログラムデータ284は、実施の形態1とほぼ同様の機能を有しているが、制御権限委譲処理においてデバイス制御処理を中断しない点、及び、デバイス制御部143からの通知を通知情報2881として共有記憶部220に記憶させる点において、実施の形態1における第2のアプリケーションのプログラムデータ184と異なっている。本実施の形態における第2のアプリケーションでの処理の詳細については、図13及び図14を用いて詳細に説明する。
図1の説明に戻り、第1の制御部230は、不揮発記憶部210に記憶されているプログラムデータを読み込んで、ブートローダ、第1のOS及び第1のアプリケーションを実行する。図示するように、第1の制御部230は、第1の演算処理部231と、第1の記憶部232と、第1の制御バス133とを備える。実施の形態2における第1の制御部230は、第1の演算処理部231での処理及び第1の記憶部232に記憶される情報において、実施の形態1における第1の制御部130と異なっている。
第1の演算処理部231は、不揮発記憶部210から、ブートローダのプログラムデータ180、第1のOSのプログラムデータ181及び第1のアプリケーションのプログラムデータ282を読み込み、第1の記憶部232に書き込む。そして、第1の演算処理部231は、第1のOS及び第1のアプリケーションを起動させて、第1のアプリケーションに基づいて、情報処理装置200の制御処理を行う。なお、第1の演算処理部231は、第1のアプリケーションに基づいて、情報処理装置200の制御処理を行う際には、第2のアプリケーションで既に行われた処理を引き継ぐために、共有記憶部220から、内部状態情報185を読み込み、第1のアプリケーションと第2のアプリケーションとの間の同期を取る同期処理を行う。ここで、実施の形態2における第1の演算処理部231は、共有記憶部220に記憶されている通知情報2881を取得して、この通知情報2881に示されている通知内容に従った処理を行う点において、実施の形態1における第1の演算処理部131と異なっている。
第1の記憶部232は、第1の演算処理部231が処理を行う際に必要な情報を記憶する。図4に示すように、第1の記憶部232は、ブートローダのプログラムデータ1801、第1のOSのプログラムデータ1811及び第1のアプリケーションのプログラムデータ2821を記憶する。ブートローダのプログラムデータ1801、第1のOSのプログラムデータ1811及び第1のアプリケーションのプログラムデータ2821は、不揮発記憶部210から読み出されたブートローダのプログラムデータ180、第1のOSのプログラムデータ181及び第1のアプリケーションのプログラムデータ282を展開したものである。
また、第1の記憶部232は、第1の演算処理部231が処理を行う際に一時的に必要な情報である第1の一時データ286を記憶する。例えば、第1の一時データ286には、共有記憶部220から読み出された内部状態情報185及び通知情報2881等が含まれる。
図1の説明に戻り、第2の制御部240は、不揮発記憶部210に記憶されているプログラムデータを読み込んで、第2のOS及び第2のアプリケーションを実行する。図示するように、第2の制御部240は、第2の演算処理部241と、第2の記憶部242と、デバイス制御部143と、第2の制御バス144とを備える。実施の形態2における第2の制御部240は、第2の演算処理部241での処理及び第2の記憶部242に記憶される情報において、実施の形態1における第2の制御部140と異なっている。
第2の演算処理部241は、不揮発記憶部210から、第2のOSのプログラムデータ183及び第2のアプリケーションのプログラムデータ284を読み込み、第2の記憶部242に書き込む。そして、第2の演算処理部241は、第2のOS及び第2のアプリケーションを起動させて、第2のアプリケーションに基づいて、情報処理装置200の制御処理を行う。また、第2の演算処理部241は、第1の演算処理部231から切替開始通知を受け取った際には、第2のアプリケーションで既に行われた処理を引き継がせるために、内部状態情報185を生成して、この内部状態情報185を共有記憶部220に記憶させる制御権限委譲処理を行う。さらに、第2の演算処理部241は、デバイス制御部143を介して、情報処理装置100に接続されている各種デバイスを制御するデバイス制御処理を行う。ここで、実施の形態2における第2の演算処理部241は、制御権限委譲処理においてデバイス制御処理を中断しない点、及び、デバイス制御部143からの通知を通知情報2881として共有記憶部220に記憶させる点において、実施の形態1における第2の演算処理部141と異なっている。
第2の記憶部242は、第2の演算処理部241が処理を行う際に必要な情報を記憶する。図5に示すように、第2の記憶部242は、第2のOSのプログラムデータ1831及び第2のアプリケーションのプログラムデータ2841を記憶する。第2のOSのプログラムデータ1831及び第2のアプリケーションのプログラムデータ2841は、不揮発記憶部210から読み出された第2のOSのプログラムデータ183及び第2のアプリケーションのプログラムデータ284を展開したものである。
また、第2の記憶部242は、第2の演算処理部241が処理を行う際に一時的に必要な情報である第2の一時データ287を記憶する。例えば、第2の一時データ287には、第2の演算処理部241が生成した内部状態情報185及び通知情報2881等が含まれる。
図12は、第1の制御部230における起動処理を示すフローチャートである。図12に示されているフローチャートは、情報処理装置200の電源が投入されることにより開始される。なお、図12に示されているフローチャートにおいて、図7に示されているフローチャートと同じ符号が付されているステップS10〜S21の処理は、図7に示されているフローチャートと同様の処理である。但し、第1のアプリケーションのプログラムデータ182及び第1のアプリケーションのプログラムデータ1821の代わりに、それぞれ、第1のアプリケーションのプログラムデータ282及び第1のアプリケーションのプログラムデータ2821が用いられる。
そして、第1の演算処理部231は、ステップS20において、第1のアプリケーションの内部状態を、第2のアプリケーションの内部状態と同期させた後、ステップS21の処理と、ステップS70の処理とを並行して行う。
ステップS70では、第1の演算処理部231は、共有記憶部220の引継情報記憶領域222に記憶されている通知情報リスト288から通知情報2881を取得して、制御権限委譲処理の実行中にデバイス制御部143が通知してきた各種イベントに対応する処理を実行する。
図13は、第2の制御部240における起動処理を示すフローチャートである。図13に示されているフローチャートは、情報処理装置200の電源が投入されることにより開始され、図12に示されているフローチャートと並行して行われる。図13に示されているフローチャートにおいて、図9に示されているフローチャートと同じ符号が付されているステップS40〜S47及びステップS49〜S52の処理は、図9に示されているステップS40〜S47及びステップS49〜S52の処理と同様の処理である。但し、第2のアプリケーションのプログラムデータ183及び第2のアプリケーションのプログラムデータ1841の代わりに、それぞれ、第2のアプリケーションのプログラムデータ283及び第2のアプリケーションのプログラムデータ2841が用いられる。
そして、第2の演算処理部241は、第1の制御部130から制御権限切替開始通知を受け取った場合(ステップS47でYes)には、ステップS80及びステップS81の処理に進む。そして、第2の演算処理部241は、ステップS80、S49及びS50の処理と、ステップS81の処理とを並行して実行する。
ステップS80では、第2の演算処理部241は、情報処理装置200の制御権限を委譲するための処理を行う。なお、ステップS80での制御権限委譲処理については、図14を用いて詳細に説明する。そして、第2の演算処理部241は、ステップS49の処理に進む。
一方、ステップS81では、第2の演算処理部241は、デバイス制御部143からの通知内容を示す通知情報2881を生成し、共有記憶部220の引継情報記憶領域222に追記する処理を行う。なお、第2の演算処理部141は、デバイス制御部143から通知を受ける度に、引継情報記憶領域222に、例えば、通知情報2881A、2881B、2881C、・・・のように、通知情報2881を順次追記する。
図14は、図13のステップS80における制御権限委譲処理を示すフローチャートである。図14に示されているフローチャートにおいて、図10に示されているフローチャートと同じ符号が付されているステップS60、S61、S63及びS64の処理は、図10に示されているステップS60、S61、S63及びS64の処理と同様の処理である。
第2の演算処理部241は、ステップS60において、まだ処理できていないユーザ要求が存在しないと判断した場合(ステップS60でNo)には、ステップS90の処理に進む。
ステップS90では、第2の演算処理部241は、第2のアプリケーションに基づく、情報処理装置200の制御処理を中断する。この点、第2の演算処理部241は、デバイス制御部143へのデバイス制御処理は中断しない。これは、図13のステップS81の処理を行うためである。なお、本実施の形態では、デバイス制御部143へのデバイス制御処理が中断されないため、図10のステップS65の処理は必要ない。
以上のように、実施の形態2に係る情報処理装置200によれば、デバイス制御部143からの通知内容を示す通知情報、例えば、ドライブ160の読み込みエラー通知のような、エラー発生時に一度のみ通知される情報であって、現在の状態としては記録されないような非同期情報についても、第2のアプリケーションから第1のアプリケーションに引き継ぐことができる。このため、制御権限の切換中に発生した各種通知に対応する処理を、制御権限委譲処理が完了した後に第1のアプリケーションで実行することができる。従って、実施の形態2に係る情報処理装置200によれば、例えば、ユーザに対して予期せぬ動作の契機となった理由を提示することが可能となり、その結果ユーザが感じる不快感を軽減することができる。
以上に記載された実施の形態1及び2では、本発明を情報処理装置100、200に適用した例を説明したが、例えば、携帯電話機、DVD(Digital Versatile Disc(登録商標))及びBDの光ディスク等に対応した映像再生装置及び映像録画装置、デジタル放送又はワンセグ放送に対応した放送受信装置等のように、起動時にOSを実行する必要がある各種の装置に本発明を適用することもできる。
また、以上に記載された実施の形態1及び2では、2つの演算処理部が1つの装置に設けられている場合について説明したが、3つ以上の演算処理部が設けられる装置においても、より起動が速い制御部において第2のアプリケーションを動作させるような構成にすることで、上述したような起動時間の短縮効果を得ることが可能である。
さらに、以上に記載された実施の形態1及び2では、第1の制御部130、230と第2の制御部140、240とは、共有記憶部120を利用して、情報の受け渡しをしているが、例えば、第1の制御部130、230が有する第1の演算処理部131、231と、第2の制御部140、240が有する第2の演算処理部141、241との間に通信路を追加して演算処理部間通信を行うことで、情報の受け渡しを行ってもよい。
また、以上に記載された実施の形態1及び2では、不揮発記憶部110、210が一つだけ設けられており、第1の制御部130、230と、第2の制御部140、240の両方がアクセスできるようにしているが、例えば、第1の制御部130、230のみがアクセスする不揮発記憶部と、第2の制御部140、240のみがアクセスする不揮発記憶部といったように、複数の不揮発記憶部が設けられていてもよい。この場合は、第1の制御部130、230と、第2の制御部140、240との両方で参照すべき情報は、第2の制御部140が不揮発記憶部110、210から共有記憶部120、220へ展開すればよい。さらには、第1の制御部130、230のみがアクセスする不揮発記憶部と、第2の制御部140、240のみがアクセスする不揮発記憶部と、その両方がアクセスする不揮発記憶部の3つの不揮発記憶部が設けられていてもよく、さらに、より多くの不揮発記憶部が設けられていてもよい。
以上に記載された実施の形態1及び2では、ブートローダを実行して、第1のOSを起動させるようにしているが、第1のOSの起動にブートローダの実行が必要ない場合には、ブートローダのプログラムデータを記憶しておき、このデータを読み込む処理、展開する処理及び実行する処理は必要ない。
また、以上に記載された実施の形態1及び2では、第1の制御部130が行う第1の起動処理、及び、第2の制御部140が行う第2の起動処理は、同時に開始されている。例えば、電源が投入された直後(図6の時刻T0)に、第1の起動処理及び第2の起動処理が開始されているが、これに限定されるものではなく、第2の起動処理が開始された後に、第1の起動処理が開始されてもよい。
なお、本発明の実施の形態は、上述した実施の形態1及び2に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
100,200:情報処理装置、 110,210:不揮発記憶部、 120,220:共有記憶部、 130,230:第1の制御部、 131,231:第1の演算処理部、 132,232:第1の記憶部、 133:第1の制御バス、 140,240:第2の制御部、 141,241:第2の演算処理部、 142,242:第2の記憶部、 143:デバイス制御部、 144:第2の制御バス、 150:入力部、 160:ドライブ、 170:出力装置。

Claims (4)

  1. 第1のオペレーションシステム、及び、当該第1のオペレーションシステム上で動作する第1のアプリケーションを実行する第1の制御部と、
    第2のオペレーションシステム、及び、当該第2のオペレーションシステム上で動作する第2のアプリケーションを実行する第2の制御部と、
    を備える情報処理装置であって、
    前記第2の制御部は、前記情報処理装置に接続されたデバイスを制御するデバイス制御部を備え、
    前記第1の制御部は、前記情報処理装置の電源が投入された後に、前記第1のオペレーションシステム及び前記第1のアプリケーションを起動する第1の起動処理を行い、
    前記第2の制御部は、前記情報処理装置の電源が投入された後に、前記第1の起動処理よりも早く処理を完了する、前記第2のオペレーションシステム及び前記第2のアプリケーションを起動する第2の起動処理を前記第1の起動処理と並行して行い、
    前記第2の制御部は、前記第1の起動処理の完了前に前記第2の起動処理を完了し、前記第2の起動処理の完了後に、前記第2のアプリケーションを実行することで前記情報処理装置を制御する第2の制御処理を行うとともに、前記デバイス制御部を介して、前記デバイスを制御するデバイス制御処理を行い、
    前記第1の制御部は、前記第1の起動処理の完了後に、制御権限の切り替えが可能になったことを前記第2の制御部に通知し、
    前記第2の制御部は、前記第1の制御部からの通知を受けると、前記第2の制御処理で既に行われた処理の状態を示す情報及び前記デバイスの制御状態を示す情報を含むデバイス制御情報、並びに、前記デバイスから通知された内容を示す通知情報を含む引継情報を生成した後に、前記第1の制御部に対して制御権限切換完了を通知し、
    前記第1の制御部は、前記第1の起動処理の完了後に、前記第1のアプリケーションを実行し、前記第2の制御部から制御権限切換完了の通知を受けると、前記引継情報を参照して、前記第2の制御処理で実行されていた制御を継続して行うことで、前記第2の制御処理の代わりに前記情報処理装置を制御する第1の制御処理を行い、
    前記第2の制御部は、前記第1の制御部が前記第1の制御処理を開始すると、前記第2の制御処理を終了し、前記デバイス制御処理を継続すること
    を特徴とする情報処理装置。
  2. 前記第2の制御部は、前記第2の制御処理において、前記第2のアプリケーションに対応する第2のGUIを、前記情報処理装置に接続された出力装置に表示させ、
    前記引継情報には、前記第2のGUIの表示状態を示す情報が含まれ、
    前記第1の制御部は、前記第1の制御処理において、前記引継情報を参照することで、前記第2のGUIの代わりに、前記第2のGUIの表示状態に対応し、かつ、前記第1のアプリケーションに対応する第1のGUIを、前記情報処理装置に接続された出力装置に表示させること
    を特徴とする請求項に記載の情報処理装置。
  3. 第1のオペレーションシステム、及び、当該第1のオペレーションシステム上で動作する第1のアプリケーションを実行する第1の制御部と、
    第2のオペレーションシステム、及び、当該第2のオペレーションシステム上で動作する第2のアプリケーションを実行する第2の制御部と、を備える情報処理装置が行う起動方法であって、
    前記第1の制御部が、前記情報処理装置の電源が投入された後に、前記第1のオペレーションシステム及び前記第1のアプリケーションを起動する第1の起動処理を行う第1の起動過程と、
    前記第2の制御部が、前記情報処理装置の電源が投入された後に、前記第1の起動処理よりも早く処理を完了する、前記第2のオペレーションシステム及び前記第2のアプリケーションを起動する第2の起動処理を前記第1の起動処理と並行して行う第2の起動過程と、
    前記第2の制御部が、前記第1の起動過程の完了前に前記第2の起動処理を完了し、前記第2の起動処理の完了後に、前記第2のアプリケーションを実行することで前記情報処理装置を制御する第2の制御処理を行うとともに、前記情報処理装置に接続されたデバイスを制御するデバイス制御処理を行う制御処理過程と、
    前記第1の制御部が、前記第1の起動処理の完了後に、前記第1のアプリケーションを実行し、前記第2の制御処理の代わりに前記情報処理装置を制御する第1の制御処理を行う引継制御処理過程と、を有し、
    前記引継制御処理過程は、
    前記第1の制御部が、前記第1の起動処理の完了後に、制御権限の切り替えが可能になったことを前記第2の制御部に通知する過程と、
    前記第2の制御部が、前記第1の制御部からの通知を受けると、前記第2の制御処理で既に行われた処理の状態を示す情報及び前記デバイスの制御状態を示す情報を含むデバイス制御情報、並びに、前記デバイスから通知された内容を示す通知情報を含む引継情報を生成した後に、前記第1の制御部に対して制御権限切換完了を通知する過程と、
    前記第1の制御部は、前記第2の制御部から制御権限切換完了の通知を受けると、前記引継情報を参照することで、前記第2の制御処理で実行されていた制御を継続して行う過程と、を有し、
    前記第2の制御部は、前記第1の制御部が前記第1の制御処理を開始すると、前記第2の制御処理を終了し、前記デバイス制御処理を継続すること
    を特徴とする起動方法。
  4. 前記制御処理過程において、前記第2の制御部は、前記第2の制御処理で、前記第2のアプリケーションに対応する第2のGUIを、前記情報処理装置に接続された出力装置に表示させ、
    前記引継情報には、前記第2のGUIの表示状態を示す情報が含まれ、
    前記引継制御処理過程において、前記第1の制御部は、前記第1の制御処理で、前記引継情報を参照することで、前記第2のGUIの代わりに、前記第2のGUIの表示状態に対応し、かつ、前記第1のアプリケーションに対応する第1のGUIを、前記情報処理装置に接続された出力装置に表示させること
    を特徴とする請求項に記載の起動方法。
JP2011127283A 2011-06-07 2011-06-07 情報処理装置及びその起動方法 Active JP5766032B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011127283A JP5766032B2 (ja) 2011-06-07 2011-06-07 情報処理装置及びその起動方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011127283A JP5766032B2 (ja) 2011-06-07 2011-06-07 情報処理装置及びその起動方法

Publications (3)

Publication Number Publication Date
JP2012256091A JP2012256091A (ja) 2012-12-27
JP2012256091A5 JP2012256091A5 (ja) 2014-07-10
JP5766032B2 true JP5766032B2 (ja) 2015-08-19

Family

ID=47527635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011127283A Active JP5766032B2 (ja) 2011-06-07 2011-06-07 情報処理装置及びその起動方法

Country Status (1)

Country Link
JP (1) JP5766032B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019024649A1 (zh) * 2017-07-31 2019-02-07 Oppo广东移动通信有限公司 应用程序的启动方法、装置、存储介质和终端

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6036578B2 (ja) 2013-03-08 2016-11-30 株式会社デンソー データ処理装置
JP2014192656A (ja) * 2013-03-27 2014-10-06 Mitsubishi Electric Corp 情報処理装置及び起動方法
JP6512895B2 (ja) * 2015-03-27 2019-05-15 キヤノン株式会社 撮像装置、その制御方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5028904B2 (ja) * 2006-08-10 2012-09-19 ソニー株式会社 電子機器、および起動方法
US7689820B2 (en) * 2006-09-27 2010-03-30 L3 Communications Corporation Rapid-boot computing device with dual operating systems
JP2011060225A (ja) * 2009-09-14 2011-03-24 Toshiba Corp オペレーティングシステム起動方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019024649A1 (zh) * 2017-07-31 2019-02-07 Oppo广东移动通信有限公司 应用程序的启动方法、装置、存储介质和终端

Also Published As

Publication number Publication date
JP2012256091A (ja) 2012-12-27

Similar Documents

Publication Publication Date Title
US7900035B2 (en) Electronic appliance and startup method
JP6046216B2 (ja) ホストシステム及びホストコントローラ
JP6070360B2 (ja) 情報処理装置およびその処理方法
JP5766032B2 (ja) 情報処理装置及びその起動方法
EP3761564A1 (en) Master/standby container system switch
JP2017087773A (ja) 車載装置
KR20080087579A (ko) 외부 저장장치 및 상기 외부 저장장치의 자동 실행방법
TW201102925A (en) Computer system and booting method
JP2006252754A (ja) ポータブルデジタルオーディオ/ビデオ再生装置
JP2009086955A (ja) カメラ装置およびその制御方法
EP2557497A1 (en) Method for improving booting of a computing device
JP2016179801A (ja) 車載システム
JP5209793B2 (ja) 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP5606249B2 (ja) 映像再生装置及び起動方法
JP2006268377A (ja) プログラム起動制御装置及びプログラム起動制御方法
JP6109340B2 (ja) 情報機器
JP2005258642A (ja) 組込型情報処理装置
KR20100050098A (ko) 영상처리장치 및 그 제어 방법
CN110647428B (zh) 镜像文件的制作及恢复方法、处理器和嵌入式系统
JP4023441B2 (ja) コンピュータシステム及びプログラム
JP2015158902A (ja) メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置
JP2008269380A (ja) 情報処理装置
JP2008009506A (ja) 情報処理装置及びそのファイルアクセス方法
JP5218024B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム
JP6966568B2 (ja) 情報処理システム及び情報処理システムによる情報処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140526

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150320

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150519

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150616

R150 Certificate of patent or registration of utility model

Ref document number: 5766032

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250