(57)【要約】【課題】装置が起動する時に、アプリケーションが起動するまでの時間を短縮する。【解決手段】アプリケーションが記憶されるデバイスを含む第１デバイスを認識するための初期化処理を行う第１デバイス初期化手段と、第１デバイスとは異なるデバイスを含む第２デバイスを認識するための初期化処理を行う第２デバイス初期化手段と、第１デバイスからアプリケーションを読み出してアプリケーションを実行するための初期化処理を行うアプリ初期化手段と、第１デバイス初期化手段による初期化処理を実行した後に、第２デバイス初期化手段とアプリ初期化手段との初期化処理を並行して実行するよう制御する初期化制御手段と、を備える。【選択図】図３
2014006725.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが記憶されるデバイスを含む第１デバイスを認識するための初期化処理を行う第１デバイス初期化手段と、
前記第１デバイスとは異なるデバイスを含む第２デバイスを認識するための初期化処理を行う第２デバイス初期化手段と、
前記第１デバイスから前記アプリケーションを読み出して前記アプリケーションを実行するための初期化処理を行うアプリ初期化手段と、
前記第１デバイス初期化手段による初期化処理を実行した後に、前記第２デバイス初期化手段と前記アプリ初期化手段との初期化処理を並行して実行するよう制御する初期化制御手段と、
を備える情報処理装置。
【請求項２】
前記初期化制御手段は、
前記第２デバイス初期化手段と前記アプリ初期化手段とに、処理の実行権を交互に渡し、前記第２デバイス初期化手段が給電の安定化を待つ状態になった場合には、前記アプリ初期化手段に前記実行権を渡す請求項１記載の情報処理装置。
【請求項３】
前記情報処理装置の操作部がバスを介して前記情報処理装置に接続される場合、該操作部を前記第１デバイスに含める請求項１又は２記載の情報処理装置。
【請求項４】
前記第１デバイスを予め設定する設定手段をさらに備え、
前記初期化制御手段は、
前記設定手段により設定された前記第１デバイスを参照することで、前記第１デバイスを特定する請求項１乃至３いずれか一項に記載の情報処理装置。
【請求項５】
アプリケーションが記憶されるデバイスを含む第１デバイスを認識するための第１初期化処理を行う第１初期化ステップと、
前記第１初期化処理の終了後に、前記第１デバイスとは異なるデバイスを含む第２デバイスを認識するための第２初期化処理を行う第２初期化ステップと、
前記第１初期化処理の終了後に、前記第１デバイスから前記アプリケーションを読み出して前記アプリケーションを実行するための初期化処理を前記第２初期化処理と並行して行うアプリ初期化ステップと、
をコンピュータが実行する情報処理方法。
【請求項６】
アプリケーションが記憶されるデバイスを含む第１デバイスを認識するための第１初期化処理を行う第１初期化ステップと、
前記第１初期化処理の終了後に、前記第１デバイスとは異なるデバイスを含む第２デバイスを認識するための第２初期化処理を行う第２初期化ステップと、
前記第１初期化処理の終了後に、前記第１デバイスから前記アプリケーションを読み出して前記アプリケーションを実行するための初期化処理を前記第２初期化処理と並行して行うアプリ初期化ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、複写機、ファクシミリ、プリンタ、ＰＣ（Personal Computer）等の情報処理装置において、メモリに格納されたプログラムを実行する場合、そのメモリはランダムアクセス可能なメモリが用いられていた。プログラム格納用の不揮発メモリとしては、ＮＯＲ型フラッシュメモリが一般的に採用されている。
【０００３】
しかし、最近では、各装置におけるアプリケーションの増大によりプログラム容量が肥大化している。そこで、単位ビットあたりの単価が安く、書き込み速度の速いＮＡＮＤ型フラッシュメモリ（以降、ＮＡＮＤと略す）をプログラム格納用に採用するケースが増えている。
【０００４】
例えばＮＡＮＤのようにプログラムが格納されたデバイスは、起動時早期にカーネルに認識される必要がある。これは、アプリケーションがメモリに格納されているため、このメモリを認識しないことにはアプリケーションの起動処理を進めることができないからである。
【０００５】
しかし、一般的には、プログラムが格納されたデバイスの認識処理を進める場合に、他のデバイスやポートの初期化処理も同時に実行される。そのため、デバイスの認識処理に時間がかかり、起動時間を早くしたいというニーズがあった。
【０００６】
例えば、特許文献１では、起動時に必要なプログラムを優先的に起動することで、起動時間を短くする技術が記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術では、起動時に必要なプログラムを優先的に処理するが、このプログラムを読み出すまでの時間を短縮するものではない。よって、従来技術では、プログラムが格納されたデバイスを認識する際に、他のデバイスも認識することで、デバイスの認識処理に時間がかかり、アプリケーションの起動が遅くなるという問題点は解決されていない。
【０００８】
そこで、本発明は、装置が起動する時に、アプリケーションが起動するまでの時間を短縮することができる情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様の情報処理装置は、アプリケーションが記憶されるデバイスを含む第１デバイスを認識するための初期化処理を行う第１デバイス初期化手段と、前記第１デバイスとは異なるデバイスを含む第２デバイスを認識するための初期化処理を行う第２デバイス初期化手段と、前記第１デバイスから前記アプリケーションを読み出して前記アプリケーションを実行するための初期化処理を行うアプリ初期化手段と、前記第１デバイス初期化手段による初期化処理を実行した後に、前記第２デバイス初期化手段と前記アプリ初期化手段との初期化処理を並行して実行するよう制御する初期化制御手段と、を備える。
【発明の効果】
【００１０】
本発明によれば、装置が起動する時に、アプリケーションが起動するまでの時間を短縮することができる。
【図面の簡単な説明】
【００１１】
【図１】実施例における情報処理装置のハードウェア構成の一例を示すブロック図。
【図２】ＵＳＢ関連デバイス（その１）の一例を示す図。
【図３】実施例における情報処理装置の機能的構成の一例を示すブロック図。
【図４】ＵＳＢ関連デバイス（その２）の一例を示す図。
【図５】従来技術と実施例との起動時間の違いを説明する図。
【図６】実施例における情報処理装置の起動処理の一例を示すシーケンス図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施例を図面に基づいて説明する。
【００１３】
［実施例］
＜ハードウェア構成＞
図１は、実施例における情報処理装置１０のハードウェア構成の一例を示すブロック図である。なお、図１に示す例では、ＰＣなどの情報処理装置１０を用いて説明するが、本発明はこれに限らず、例えばプリンタ等の画像処理装置等であっても良い。
図１に示すように、情報処理装置１０は、入力装置１０１と、出力装置１０２と、ドライブ装置１０３と、補助記憶装置１０４と、メモリ装置１０５と、演算処理装置１０６と、ネットワーク接続装置１０７と、記録媒体１０８とを有する。これら各装置は、システムバスＢで相互に接続されている。
【００１４】
入力装置１０１は、ユーザが操作するキーボード及びマウス等のポインティングデバイスや、ユーザが操作するタッチスクリーン等を有しており、ユーザからの起動プログラム、各アプリケーションの実行指示等、各種操作信号を入力する。
【００１５】
出力装置１０２は、各種処理を行うために必要な各種画面やデータ等を表示するディスプレイを有し、演算処理装置１０６が有する制御プログラムにより、起動プログラム等の実行経過や結果等を表示する。
【００１６】
ここで、実施例においてインストールされる各種プログラムは、例えばＣＤ−ＲＯＭ等の記録媒体１０８により提供される。各種プログラムを記録した記録媒体１０８は、ドライブ装置１０３にセット可能であり、記録媒体１０８に含まれる実行プログラムが、記録媒体１０８からドライブ装置１０３を介して補助記憶装置１０４にインストールされる。
【００１７】
なお、記憶媒体１０８は、上述したＣＤ−ＲＯＭの他、フレキシブルディスク、光磁気ディスクのように情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ（Read Only Memory）、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００１８】
補助記憶装置１０４は、ハードディスク等のストレージ手段であり、実施例における機動プログラム等の実行プログラムや、コンピュータに設けられた制御プログラム、各種データ等を蓄積し、必要に応じて入出力を行うことができる。
【００１９】
メモリ装置１０５は、演算処理装置１０６により補助記憶装置１０４から読み出された起動プログラム等の実行プログラムを格納する。なお、メモリ装置１０５は、ＲＯＭやＲＡＭ（Random Access Memory）等を有する。
【００２０】
演算処理装置１０６は、ＯＳ（Operating System）等の制御プログラム、メモリ装置１０５により格納されている起動プログラム等の実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等を行う。また、演算処理装置１０６は、コンピュータ全体の処理を制御して各処理を実現することができる。また、プログラムの実行中に必要な各種情報は、補助記憶装置１０４から取得することができ、また格納することもできる。演算処理装置１０６は、例えばＣＰＵ（Central Processing Unit）などである。
【００２１】
ネットワーク接続装置１０７は、通信ネットワークと接続することにより、各種データを通信ネットワークに接続されている他の端末等から取得する。また、ネットワーク接続装置１０７は、プログラムを実行することで得られた実行結果又は実施例における各種プログラム等の実行プログラム自体を他の端末等に提供したりすることができる。
【００２２】
図２は、ＵＳＢ関連デバイス（その１）の一例を示す図である。図２は、情報処理装置１０をＭＦＰ（MultiFunction Peripheral）とした場合の例を示す。図２に示すｅｈｃｉ（Enhanced Host Controller Interface）２０１は、ＵＳＢ接続の周辺機器とコンピュータ本体の通信を制御するＵＳＢコントローラである。ｅｈｃｉ２０１は、例えばドライブ装置１０３に相当する。
【００２３】
ＮＡＮＤ２０２は、コピーアプリケーション、プリンタアプリケーションなどのアプリケーションを記憶するデバイスである。ＮＡＮＤ２０２に記憶されるアプリケーションは、アプリケーションプログラムを意味する。ＮＡＮＤ２０２は、マザーボードに搭載され、オンボードの状態でもよい。
【００２４】
ポート１  ２０３、ポート２  ２０４は、ＵＳＢポートであり、ＵＳＢデバイスと接続される。ハブ２０５は、スター型物理トポロジを取るネットワークにおいて使われる集線装置である。ハブ２０５には、ＳＤカードリーダ２０７や操作部ポート２０８が接続されている。
【００２５】
ＳＤカードリーダ２０７は、ＳＤカードのデータを読み込む装置である。操作部ポート２０８は、ＭＦＰの操作部と接続されるためのポートである。ＭＦＰでは、操作部は、ＵＳＢ接続されるケースがある。未使用ポート２０６は、未使用のポートである。
【００２６】
図２に示す場合において、従来技術では、ＮＡＮＤ２０２を認識するための初期化処理が行われ、続いて各ポート２０３、２０４やＳＤカードリーダ２０７を認識するための初期化処理が行われる。初期化処理は、デバイスを接続するための処理である。
【００２７】
そこで、実施例では、アプリケーションを記憶するデバイスを先に認識し、その他のデバイスの認識と、アプリケーションの初期化とを並行して行う。アプリケーションの初期化とは、アプリケーションを実行可能にするための処理である。これにより、アプリケーションの起動処理を開始するまでの時間を短縮でき、その結果、装置の起動時間を短縮することができる。
【００２８】
＜機能＞
次に、情報処理装置１０の機能的構成について説明する。図３は、実施例における情報処理装置１０の機能的構成の一例を示すブロック図である。
【００２９】
図３に示す第１デバイス３２１は、装置の起動時に優先的に認識する対象のデバイスである。第１デバイス３２１は、例えば、アプリケーションを記憶するＮＡＮＤ２０２である。図３に示す第２デバイス３２２は、装置の起動時に不要なデバイスである。例えば各ポート２０３、２０４やＳＤカードリーダ２０７などである。
【００３０】
図３に示すように、補助記憶装置１０４は、起動プログラム３０１を記憶する。起動プログラム３０１は、装置が起動した時に実行されるプログラムであり、装置に接続されているデバイスを認識したり、アプリケーションの初期化を指示したりする。この起動プログラム３０１が実行されることで、デバイスを認識するための初期化処理やアプリケーションの初期化処理が演算処理装置１０６により行われる。
【００３１】
演算処理装置１０６は、初期化制御手段３１１と、設定手段３１２と、第１デバイス初期化手段３１３と、第２デバイス初期化手段３１４と、アプリ初期化手段３１５と、アプリケーション３１６とを有する。
【００３２】
初期化制御手段３１１と、第１デバイス初期化手段３１３と、第２デバイス初期化手段３１４と、アプリ初期化手段３１５とは、例えばＯＳの中核となるカーネルにより実行される。
【００３３】
初期化制御手段３１１は、装置が起動する（例えば電源がＯＮされた）時に、補助記憶装置１０４から起動プログラム３０１を読み出し、起動プログラム３０１を実行する。初期化制御手段３１１は、まず第１デバイス３２１を特定するため、設定手段３１２に設定されている内容を参照する。
【００３４】
設定手段３１２は、例えばカーネルコンフィグ又はハードコーディングにより第１デバイス３２１を設定する。初期化制御手段３１１は、設定手段３１２による設定内容を参照することで、ポートに接続されているどのデバイスが第１デバイス３２１であるかを特定できる。
【００３５】
初期化制御手段３１１は、第１デバイス３２１を特定すると、第１デバイス初期化手段３１３に第１デバイス３２１を通知し、初期化処理を実行するよう指示する。初期化制御手段３１１は、例えば第１デバイス３２１が接続されているポート番号などを通知する。
【００３６】
第１デバイス初期化手段３１３は、アプリケーションが記憶されるデバイスを含む第１デバイス３２１を認識するための初期化処理を行う。第１デバイス初期化手段３１３は、初期化処理として、データ通信を可能にするため、第１デバイス３２１に接続するための処理を行う。
【００３７】
第１デバイス初期化手段３１３は、第１デバイス３２１の初期化処理が終了すると、その旨を初期化制御手段３１１に通知する。
【００３８】
初期化制御手段３１１は、第１デバイス３２１の初期化処理が終了すると、第２デバイス初期化手段３１４の初期化処理と、アプリ初期化手段３１５の初期化処理とを交互に制御し、並列して初期化処理が行われるように制御する。
【００３９】
第２デバイス初期化手段３１４は、第１デバイス３２１とは異なるデバイスを含む第２デバイス３２２を認識するための初期化処理を行う。つまり、第２デバイス初期化手段３１４は、装置の起動時に優先して処理する必要のないデバイスの初期化処理を行う。
【００４０】
アプリ初期化手段３１５は、第１デバイス３２１からアプリケーション（アプリケーションプログラム）を読み出して、アプリケーションの初期化処理を行う。アプリ初期化手段３１５は、アプリケーションプログラムを起動し、アプリケーションを実行可能な状態にするための初期化処理を行う。
【００４１】
アプリケーション３１６は、アプリ初期化手段３１５による初期化処理が終了することで、そのサービスが実行可能な状態となる。
【００４２】
また、初期化制御手段３１１は、第２デバイス初期手段３１４が給電を安定化するために待ち状態になった場合には、アプリ初期化手段３１５にＣＰＵの実行権を渡す。ＵＳＢ関連デバイスは、ＵＳＢの規格によりディレイ（delay）が生じる。
【００４３】
よって、第２デバイス初期化手段３１４が、第２デバイス３２２の初期化処理中に給電の安定化を待つためのディレイを実行する場合には、初期化制御手段３１１は、アプリ初期化手段３１５にＣＰＵの実行権を渡し、アプリケーションの初期化処理を進める。
【００４４】
また、上述したカーネルは、オプションの機器を装着することでハードウェアの構成が変更になった場合、第１デバイス３２１を追加及び削除することができる。
【００４５】
図４は、ＵＳＢ関連デバイス（その２）の一例を示す図である。図４に示す例では、操作部ポート２０８に操作部４０１が接続されている。情報処理装置１０をＭＦＰとして場合、ＭＦＰの操作部４０１は、ＵＳＢ接続される場合がある。
【００４６】
アプリケーション３１６の中には、操作部４０１の初期化が完了している前提のもとで動作するものがある。そのため、操作部４０１の初期化処理が、アプリケーション３１６の初期化処理と並行して実施されると、アプリケーション３１６の処理に問題が生じる。
【００４７】
よって、操作部ポート２０８に操作部４０１が接続された場合には、第１デバイス３２１は、ＮＡＮＤ２０２、ハブ２０５、操作部４０１の３つとなる。ハブ２０５は、装置の起動時に直接的に必要なデバイスではないが、ハブ２０５の先に接続されている操作部４０１が起動時に必要なデバイスであるため、第１デバイス３２１となる。
【００４８】
追加された第１デバイス３２１（例えばハブ２０５や操作部４０１）は、設定手段３１２により、カーネルコンフィグ又はハードコーディングにより設定される。
【００４９】
なお、上記例では、ＭＦＰのＵＳＢ関連デバイスを例にして説明したが、ＰＣなどの情報処理装置においても、アプリケーションを格納したＵＳＢデバイスが接続されていれば同様のことが言える。また、ＵＳＢ関連デバイス以外にも、ＳＡＴＡ（Serial Advanced Technology Attachment）を用いて接続されるデバイスについても実施例を適用できる。
【００５０】
ＳＡＴＡは、コンピュータにハードディスク、ＳＳＤや光学ドライブを接続する為のインタフェース規格である。
【００５１】
＜比較＞
次に、従来技術と実施例との比較を行う。まず、従来技術と実施例との起動時間について比較を行う。
【００５２】
図５は、従来技術と実施例との起動時間の違いを説明する図である。図５に示す起動シーケンス１は、従来技術の起動シーケンスを表す。起動シーケンス１では、先に全てのデバイスの初期化処理が行われ、次に、アプリケーションの初期化処理が行われている。
【００５３】
また、図５に示すように、装置の起動時には、まず第１デバイス３２１の初期化処理が行われるが、アプリケーションの初期化を行うまでに、第２デバイス３２２の初期化処理が行われている。
【００５４】
第２デバイス３２２には、給電を安定化させるための待ちが生じるため、ＣＰＵが処理を行わない無駄な時間が発生する。
【００５５】
一方、図５に示す起動シーケンス２は、実施例の起動シーケンスを表す。アプリケーションの初期化処理を行うために必要なデバイスである第１デバイス３２１の初期化処理が完了していれば、アプリケーションの初期化処理を開始することができる。
【００５６】
そのため、起動シーケンス２では、第１デバイス３２１の初期化処理の完了後、その他デバイスやポートの第２デバイス３２２の初期化処理が実行されるのと並行して、アプリケーションの初期化処理が実行される。
【００５７】
デバイスの初期化処理とアプリケーションの初期化処理とを並行して実施する場合、ＣＰＵの実行権の問題から、それぞれの処理は、直列で実行する場合よりも初期化処理時間としては長くなる。
【００５８】
しかし、デバイスやポートなどの第２デバイス３２２の初期化処理に時間がかかる理由は、給電の安定化を待つためのディレイがあるからである。そのため、ディレイ中に、第２デバイス３２２の初期化処理にＣＰＵの実行権を与える必要はない。よって、第２デバイス３２２の給電の安定化を待つディレイ中に、アプリケーションの初期化処理にＣＰＵの実行権が与えられる。これにより、第２デバイスとアプリケーションの初期化処理を並列で実行する場合に、アプリケーションが起動するまでの時間を早くすることができる。
【００５９】
＜動作＞
次に、情報処理装置１０の動作について説明する。図６は、実施例における情報処理装置１０の起動処理の一例を示すシーケンス図である。
【００６０】
図６に示すステップＳ１０１で、起動プログラム３０１は、情報処理装置１０の電源ＯＮ時などに演算処理装置１０６に読み込まれ、実行される。これにより、デバイスの初期化処理、アプリケーションの初期化処理が行われる。
【００６１】
ステップＳ１０２で、第１デバイス３２１は、第１デバイス初期化手段３１３により初期化処理が行われ、初期化処理が完了すると、初期化処理の完了を起動プログラム３０１に通知する。
【００６２】
ステップＳ１０３で、起動プログラム３０１は、第１デバイス３２１の初期化処理が完了すると、第１デバイス３２１からアプリケーション（アプリケーションプログラム）を読み出す（ロードする）処理を実行する。
【００６３】
ステップＳ１０４で、第１デバイス３２１からアプリーション（アプリケーションプログラム）がロードされ、アプリケーション３１６は、アプリ初期化手段３１５により初期化処理が行われる。
【００６４】
ステップＳ１０５で、起動プログラム３０１は、第２デバイス３２２の初期化処理を実行する。
【００６５】
ステップＳ１０６で、アプリケーション３１６の初期化処理と、第２デバイス３２２の初期化処理とが、並行して行われる。初期化制御手段３１１は、ディレイが発生する度にコンテキストスイッチを行い、どちらかの処理でＣＰＵリソースを無駄に独占しないように制御する。
【００６６】
ステップＳ１０７で、アプリケーション３１６は、アプリ初期化手段３１５による初期化処理が完了すると、初期化処理の完了を起動プログラム３０１に通知する。
【００６７】
ステップＳ１０８で、第２デバイス３２２は、第２デバイス初期化手段３１４による初期化処理が完了すると、初期化処理の完了を起動プログラム３０１に通知する。
【００６８】
起動プログラム３０１は、第１デバイス３２１と第２デバイス３２２の初期化処理、アプリケーション３１６の初期化処理が完了すると、処理を完了する。
【００６９】
以上、実施例によれば、装置が起動する時に、アプリケーションが起動するまでの時間を短縮することができる。また、アプリケーションと第２デバイスの初期化処理を、ＣＰＵリソースに無駄が無いよう並行して行うことで、装置の起動時間を短縮することができる。
【００７０】
なお、実施例の情報処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００７１】
また、実施例の情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施例の情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００７２】
また、実施例の情報処理装置で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００７３】
実施例の情報処理装置で実行されるプログラムは、前述した各部や各手段を含むモジュール構成となっている。実際のハードウェアとしては、ＣＰＵがＲＯＭやＨＤＤからプログラムを読み出して実行することにより上記各部や各手段のうち１又は複数の各部や各手段がＲＡＭ上にロードされ、１又は複数の各部や各手段がＲＡＭ上に生成されるようになっている。
【００７４】
なお、上記の情報処理装置、情報処理方法又はプログラムは、上記実施例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。
【符号の説明】
【００７５】
１０  情報処理装置
１０４  補助記憶装置
１０５  メモリ装置
１０６  演算処理装置
２０２  ＮＡＮＤ
３０１  起動プログラム
３１１  初期化制御手段
３１３  第１デバイス初期化手段
３１４  第２デバイス初期化手段
３１５  アプリ初期化手段
３２１  第１デバイス
３２２  第２デバイス
【先行技術文献】
【特許文献】
【００７６】
【特許文献１】特開２００６−２５９８７３号公報
【図１】
2014006725.tif 000003
【図２】
2014006725.tif 000004
【図３】
2014006725.tif 000005
【図４】
2014006725.tif 000006
【図５】
2014006725.tif 000007
【図６】
2014006725.tif 000008