(57)【要約】  【課題】複数のＣＰＵを備える情報処理装置において、その起動処理にかかる時間を短くする。  【解決手段】情報処理装置は、デバイス毎に初期化プログラムを有する。情報処理装置のマスターＣＰＵ及びスレーブＣＰＵはそれぞれ、共通に実行対象である初期化プログラム群の中から、未実行の初期化プログラムを動的に選択して実行する。全ての初期化プログラムが実行済みとなった場合、各ＣＰＵは、自身のＯＳプログラムを起動し、情報処理装置をアイドル状態に移行する。【選択図】図４
2011232791.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵ、及び複数のデバイス備え、前記デバイスの初期化処理を含む起動処理を実行する情報処理装置であって、
前記デバイスの初期化を行うための前記デバイス毎の初期化プログラムと、前記初期化プログラム毎の実行状態を含む管理情報と、を予め格納した第１記憶手段と、
前記初期化プログラムと前記管理情報とを、前記ＣＰＵにより実行可能に格納する第２記憶手段と、を有し、
前記ＣＰＵそれぞれについて、
前記第２記憶手段に格納された管理情報を参照して、未実行の初期化プログラムを特定する特定手段と、
前記特定された初期化プログラムに対応する実行状態を実行済みに設定する設定手段と、
前記第２記憶手段に格納された前記特定された初期化プログラムを実行する実行手段と、を有する、
ことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記ＣＰＵそれぞれについて、
前記初期化プログラム毎の実行状態が全て実行済みに設定されている場合に、ＯＳを起動するＯＳ起動手段を有する、
ことを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記複数のＣＰＵは、マスターＣＰＵとスレーブＣＰＵに分類され、
前記情報処理装置は、
前記スレーブＣＰＵについて、
前記スレーブＣＰＵのＯＳの起動が完了した場合に、前記マスターＣＰＵに通知を行うＯＳ起動通知手段を有し、
前記マスターＣＰＵのＯＳ起動手段は、前記通知を受け付けた場合にＯＳを起動する、
ことを特徴とする情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記マスターＣＰＵについて、
前記通知を受け付けた場合に、前記第２記憶手段に格納されている前記初期化プログラムと前記管理情報とを削除する削除手段を有する、
ことを特徴とする情報処理装置。
【請求項５】
請求項１〜４いずれか一項に記載の情報処理装置であって、
前記初期化プログラムは、ＯＳに依存しないプログラムである、
ことを特徴とする情報処理装置。
【請求項６】
請求項１〜５いずれか一項に記載の情報処理装置であって、
前記特定手段は、ステップ数が多い初期化プログラムから優先的に特定する、
ことを特徴とする情報処理装置。
【請求項７】
請求子１〜６いずれか一項に記載の情報処理装置であって、
前記デバイス毎の初期化プログラムの個数は、前記ＣＰＵの個数よりも多い、
ことを特徴とする情報処理装置。
【請求項８】
請求子１〜７いずれか一項に記載の情報処理装置であって、
前記複数のＣＰＵは、それぞれ異なるＯＳで動作する、
ことを特徴とする情報処理装置。
【請求項９】
請求項１〜８いずれか一項に記載の情報処理装置であって、
前記デバイスは、プリンター、スキャナー、ファクシミリ、ネットワークインターフェイスの少なくとも二つ以上である、
ことを特徴とする情報処理装置。
【請求項１０】
複数のＣＰＵ、及び複数のデバイス備え、前記デバイスの初期化処理を含む起動処理を実行する情報処理装置における情報処理方法であって、
前記デバイスの初期化を行うための前記デバイス毎の初期化プログラムと、前記初期化プログラム毎の実行状態を含む管理情報と、を第１記憶手段に予め格納し、
前記初期化プログラムと前記管理情報とを、前記ＣＰＵにより実行可能に第２記憶手段に格納し、
前記ＣＰＵそれぞれについて、
前記第２記憶手段に格納された管理情報を参照して、未実行の初期化プログラムを特定する特定ステップと、
前記特定された初期化プログラムに対応する実行状態を実行済みに設定する設定ステップと、
前記第２記憶手段に格納された前記特定された初期化プログラムを実行する実行ステップと、を含む、
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵを用いた情報処理技術に関する。
【背景技術】
【０００２】
プリンター、コピー機、複合機等の情報処理装置には、その印刷処理等のデータ処理を高速化するために複数のＣＰＵを設けたものがある。
【０００３】
例えば、特許文献１には、２つのＣＰＵにそれぞれ異なるデータ処理を予め固定的に割り当てておくことにより段階的に進むデータ処理を並列化する印刷装置、が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１９８２４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、情報処理装置の電源オン時の起動処理（起動シーケンス）においては、例えばネットワークインターフェイス（Ｉ／Ｆ）、印刷エンジン、スキャナーエンジン等の各種のデバイスやユニットの初期化処理が実行される。この起動処理において、各種初期化処理を複数のＣＰＵにそれぞれ予め固定的に割り当てておけば、並列化により起動処理全体の時間を短縮することができる。
【０００６】
しかしながら、各種デバイスやユニットの初期化処理は、その平均的な時間で毎回完了するとは限らない。例えば、印刷エンジンやスキャナーエンジン等は、何らかの機構の問題によりエラー状態のまま電源オフされた場合、次の電源オン時の初期化処理において、そのエラーの復帰処理が行われる。エラー復帰処理では、例えば、キャリッジ位置の調整、印刷ヘッド位置の調整、キャリブレーション等が行われる。画像形成媒体の初期充填、印刷ヘッドのクリーニング処理等が行われる場合もある。このエラー復帰処理を含む初期化処理は通常の初期化処理よりも時間がかかる。
【０００７】
上述のように、ある初期化処理の時間がより長くなると、その初期化処理の後にＣＰＵが予定している他の初期化処理が開始されるまでの時間が長くなってしまう。即ち、当該ＣＰＵに割り当てられた全ての初期化処理が終了するまでの時間が長くなってしまう。その結果、情報処理装置全体の起動処理の時間が長くかかってしまう。
【０００８】
そこで、本発明は、複数のＣＰＵを備える情報処理装置において、その起動処理にかかる時間を短くすることを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するための本発明の一態様は、複数のＣＰＵ、及び複数のデバイス備え、前記デバイスの初期化処理を含む起動処理を実行する情報処理装置であって、前記デバイスの初期化を行うための前記デバイス毎の初期化プログラムと、前記初期化プログラム毎の実行状態を含む管理情報と、を予め格納した第１記憶手段と、前記初期化プログラムと前記管理情報とを、前記ＣＰＵにより実行可能に格納する第２記憶手段と、を有し、前記ＣＰＵそれぞれについて、前記第２記憶手段に格納された管理情報を参照して、未実行の初期化プログラムを特定する特定手段と、前記特定された初期化プログラムに対応する実行状態を実行済みに設定する設定手段と、前記第２記憶手段に格納された前記特定された初期化プログラムを実行する実行手段と、を有する、ことを特徴とする。
【００１０】
ここで、上記の情報処理装置であって、前記ＣＰＵそれぞれについて、前記初期化プログラム毎の実行状態が全て実行済みに設定されている場合に、ＯＳを起動するＯＳ起動手段を有する、ことを特徴としていてもよい。
【００１１】
また、上記の情報処理装置であって、前記複数のＣＰＵは、マスターＣＰＵとスレーブＣＰＵに分類され、前記情報処理装置は、前記スレーブＣＰＵについて、前記スレーブＣＰＵのＯＳの起動が完了した場合に、前記マスターＣＰＵに通知を行うＯＳ起動通知手段を有し、前記マスターＣＰＵのＯＳ起動手段は、前記通知を受け付けた場合にＯＳを起動する、ことを特徴としていてもよい。
【００１２】
また、上記の情報処理装置であって、前記マスターＣＰＵについて、前記通知を受け付けた場合に、前記第２記憶手段に格納されている前記初期化プログラムと前記管理情報とを削除する削除手段を有する、ことを特徴としていてもよい。
【００１３】
また、上記のいずれかの情報処理装置であって、前記初期化プログラムは、ＯＳに依存しないプログラムである、ことを特徴としていてもよい。
【００１４】
また、上記のいずれかの情報処理装置であって、前記特定手段は、ステップ数が多い初期化プログラムから優先的に特定する、ことを特徴としていてもよい。
【００１５】
また、上記のいずれかの情報処理装置であって、前記デバイス毎の初期化プログラムの個数は、前記ＣＰＵの個数よりも多い、ことを特徴としていてもよい。
【００１６】
また、上記のいずれかの情報処理装置であって、前記複数のＣＰＵは、それぞれ異なるＯＳで動作する、ことを特徴としていてもよい。
【００１７】
また、上記のいずれかの情報処理装置であって、前記デバイスは、プリンター、スキャナー、ファクシミリ、ネットワークインターフェイスの少なくとも二つ以上である、ことを特徴としていてもよい。
【００１８】
上記の課題を解決するための本発明の他の態様は、複数のＣＰＵ、及び複数のデバイス備え、前記デバイスの初期化処理を含む起動処理を実行する情報処理装置における情報処理方法であって、前記デバイスの初期化を行うための前記デバイス毎の初期化プログラムと、前記初期化プログラム毎の実行状態を含む管理情報と、を第１記憶手段に予め格納し、前記初期化プログラムと前記管理情報とを、前記ＣＰＵにより実行可能に第２記憶手段に格納し、前記ＣＰＵそれぞれについて、前記第２記憶手段に格納された管理情報を参照して、未実行の初期化プログラムを特定する特定ステップと、前記特定された初期化プログラムに対応する実行状態を実行済みに設定する設定ステップと、前記第２記憶手段に格納された前記特定された初期化プログラムを実行する実行ステップと、を含む、ことを特徴とする。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態の一例である印刷装置１のハードウェアの概略構成を示す図。
【図２】各ＣＰＵによる印刷装置１の起動処理の一例を示すフロー図。
【図３】初期化管理テーブル１００の構成例を示す図。
【図４】複数ＣＰＵによる印刷装置１の起動処理（エラーが発生した場合）の一例を示すシーケンス図。
【図５】従来の複数ＣＰＵによる印刷装置の起動処理の一例を示すシーケンス図。
【図６】従来の複数ＣＰＵによる印刷装置の起動処理（エラーが発生した場合）の一例を示すシーケンス図。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態について図面を参照しながら説明する。
【００２１】
本実施形態では、情報処理装置として印刷装置１を例に挙げて説明する。もちろん、情報処理装置は、印刷装置に限られず、デバイスやユニットごとに初期化処理が必要な装置であれば、他の種の装置であってもよい。
【００２２】
図１は、本発明の一実施形態の一例である印刷装置１のハードウェアの概略構成を示す図である。
【００２３】
印刷装置１は、制御ユニット１０と、スキャナーユニット２０と、プリンターユニット３０と、ファクシミリユニット４０と、操作パネル５０とを有する。
【００２４】
制御ユニット１０は、印刷装置１を統合的に制御し、印刷装置１の各種機能（例えば、印刷機能、スキャン機能、コピー機能、ファクシミリ機能等）を実現するユニットである。制御ユニット１０は、マスターＣＰＵ１１と、スレーブＣＰＵ１２と、ネットワークインターフェイス（Ｉ／Ｆ）１３と、ＲＯＭ１４と、ＲＡＭ１５と、制御Ｉ／Ｆ１６とを有する。なお、「マスター」と「スレーブ」は、２つのＣＰＵを区別し易いように便宜上付けた名称であり、これに限れられるものではない。例えば、「マスター」は「メイン」と、「スレーブ」は「サブ」と置き換えてもよい。
【００２５】
マスターＣＰＵ１１及びスレーブＣＰＵ１２はそれぞれ、異なる所定のＯＳプログラムに従って各種デバイスやユニットを制御し、印刷装置１の各種機能を実現する。例えば、印刷装置１の起動処理後のアイドル状態において、マスターＣＰＵ１１は、スキャナーユニット２０及びプリンターユニット３０を制御し、スレーブＣＰＵ１２は、ファクシミリユニット４０、ネットワークＩ／Ｆ１３及び操作パネル５０を制御する。
【００２６】
なお、本実施形態では、アイドル状態における各種機能の処理や制御は主要な事項ではないため、説明を省略する。
【００２７】
また、マスターＣＰＵ１１及びスレーブＣＰＵ１２はそれぞれ、所定の起動プログラムに従って各種デバイスやユニットの初期化処理を行う。即ち、印刷装置１の電源オン時の起動処理（起動シーケンス）を実現する。
【００２８】
詳細は後述するが、印刷装置１に電源が投入されると、マスターＣＰＵ１１及びスレーブＣＰＵ１２はそれぞれ、所定の起動プログラムをＲＯＭ１４から読み出してＲＡＭ１５に展開し、実行する。この起動プログラムにより、マスターＣＰＵ１１及びスレーブＣＰＵ１２はそれぞれ、各種デバイスやユニット毎に用意された初期化プログラムを実行する。
【００２９】
ここで、マスターＣＰＵ１１及びスレーブＣＰＵ１２がそれぞれどの初期化プログラムを実行するかは固定的に割り当てられていない。マスターＣＰＵ１１及びスレーブＣＰＵ１２はそれぞれ、共通に実行対象である初期化プログラム群の中から、未実行の初期化プログラムを動的に選択して実行する。なお、初期化プログラムの数は、ＣＰＵの数よりも多いことを前提とする。全ての初期化プログラムが実行済みとなった場合、マスターＣＰＵ１１及びスレーブＣＰＵ１２はそれぞれ、自身のＯＳプログラムをＲＯＭ１４から読み出してＲＡＭ１５に展開し、実行し、印刷装置１をアイドル状態に移行させる。
【００３０】
なお、本実施形態では、説明を分かり易くするため、初期化処理の対象は、ネットワークＩ／Ｆ１３、スキャナーユニット２０、プリンターユニット３０、及びファクシミリユニット４０であるものとする。もちろん、他のデバイスやユニットの初期化処理が含まれていてもよい。
【００３１】
ネットワークＩ／Ｆ１３は、ＬＡＮ等のネットワークに接続され、当該ネットワーク上の装置、例えば、プリンタードライバーがインストールされたＰＣ等と通信する。ネットワークＩ／Ｆ１３は、コネクタ、ネットワークコントローラーを含み、例えば、Ｅｔｅｒｎｅｔ（登録商標）に対応したＮＩＣ（Network Interface Card）である。
【００３２】
ＲＯＭ１４は、印刷装置１の制御に必要な各種プログラムを予め格納する不揮発性のメモリーであり、例えば、フラッシュＲＯＭである。本実施形態では、ＲＯＭ１４は、印刷装置１の起動処理を行うための起動プログラム、起動処理中に各種デバイスやユニットの初期化処理を行うための初期化プログラム、各ＣＰＵ（マスターＣＰＵ１１及びスレーブＣＰＵ１２）により実行されるＯＳプログラムを格納している。もちろん、必要に応じて他のプログラムを格納していてもよい。
【００３３】
ＯＳプログラムは、マスターＣＰＵ１１及びスレーブＣＰＵ１２それぞれについて存在する。起動プログラムは、マスターＣＰＵ１１及びスレーブＣＰＵ１２で共通に一つ存在する。初期化プログラムは、各種デバイスやユニット（ネットワークＩ／Ｆ１３、スキャナーユニット２０、プリンターユニット３０、及びファクシミリユニット４０）それぞれについて存在する。また、初期化プログラムは、ＯＳプログラムの起動前に各ＣＰＵにより実行可能な、ＯＳに依存しないプログラムである。もちろん、各種プログラムの数や処理分担は、上記に限られず、例えば、起動プログラムはＣＰＵ毎に存在していてもよい。
【００３４】
ＲＡＭ１５は、データやプログラムを一時的に格納する揮発性メモリーであり、例えば、ＤＤＲ−ＳＤＲＡＭ（Double Data Rate SDRAM）である。ＲＡＭ１５には、例えば、マスターＣＰＵ１１及びスレーブＣＰＵ１２により実行・使用される起動プログラム（後述する初期化管理テーブル１００を含む。）、初期化プログラム、ＯＳプログラム等が格納される。
【００３５】
制御Ｉ／Ｆ１６は、各種ユニット（スキャナーユニット２０、プリンターユニット３０、ファクシミリユニット、操作パネル５０）と、制御ユニット１０との間の通信を制御するインターフェイス回路である。
【００３６】
スキャナーユニット２０は、原稿を読み取ってスキャン画像データを形成するユニットである。スキャナーユニット２０は、いわゆるスキャナーであり、例えば、イメージセンサー、光源、キャリッジ、Ａ／Ｄ変換器、画像処理回路等を有する。
【００３７】
プリンターユニット３０は、印刷対象のデータ（例えば、スキャン画像データ、ＰＣから送られた印刷データ等）に基づいて印刷媒体へ印刷を行うユニットである。プリンターユニット３０は、例えば、インクジェット方式のシリアルプリンターである。もちろん、印刷方式はこれに限られず、例えば、レーザー方式のページプリンターであってもよい。
【００３８】
ファクシミリユニット４０は、送受信対象の画像データを電話回線を介して相手先のファクシミリ装置と送受信するユニットである。ファクシミリユニット４０は、いわゆるファクシミリであり、例えば、スキャナーユニット２０により読み取られた画像データを加工して、電話回線を介して送信する。また、例えば、電話回線を介して受信した画像データを、プリンターユニット３０に送り、印刷を実行させる。
【００３９】
操作パネル５０は、ユーザーと印刷装置１との間の入出力インターフェイスとして、印刷装置１の筐体に設けられているユニットである。操作パネル５０は、例えば、液晶ディスプレイ（Liquid Crystal Display）や有機ＥＬディスプレイ（Electro-Luminescence Display）などのディスプレイと、タッチパネルと、ハードスイッチ等を有する。
【００４０】
上記の印刷装置１の構成は、本願発明の特徴を説明するにあたって主要構成を説明したのであって、上記の構成に限られない。また、一般的な印刷装置が備える構成を排除するものではない。
【００４１】
次に、上述の印刷装置１において実行される起動処理について説明する。
【００４２】
図２は、各ＣＰＵによる印刷装置１の起動処理の一例を示すフロー図である。本フローは、印刷装置１の電源がオンにされた後、マスターＣＰＵ１１及びスレーブＣＰＵ１２がそれぞれ上述の起動プログラムをＲＯＭ１４から読み出してＲＡＭ１５に展開して、実行することにより開始される。なお、マスターＣＰＵ１１とスレーブＣＰＵ１２のいずれもが実行する処理については、単にＣＰＵを主体として記載する。
【００４３】
Ｓ１００では、ＣＰＵは、自身がマスターであるか否かを判定する。具体的には、ＣＰＵは、自身がマスターであるか否かを、例えば、予め決められたアドレスに格納された値をＲＯＭ１４から読み出すことにより判定する。自身がマスターである場合（Ｓ１００：ＹＥＳ）、処理をＳ１１０に進める。自身がマスターでない場合（Ｓ１００：ＮＯ）、処理をＳ１３０に進める。
【００４４】
Ｓ１１０では、マスターＣＰＵ１１は、初期化準備を実行する。具体的には、マスターＣＰＵ１１は、起動プログラムに従って、起動処理を制御するための初期化管理テーブル１００を、各ＣＰＵにより共通使用可能なＲＡＭ１５上の領域に生成する。
【００４５】
初期化管理テーブル１００は、例えば、図３に示すように構成することができる。本図に示すように、初期化管理テーブル１００は、初期化管理テーブル１００へのＣＰＵのアクセスを排他制御するためのアクセスフラグ１１０（０：アクセスなし、１：アクセス中）を有する。また、各デバイス及びユニット（プリンターユニット３０：プリンター機能、スキャナーユニット２０：スキャナー機能、ネットワークＩ／Ｆ１３：ネットワーク機能、ファクシミリユニット４０：ファクシミリ機能）毎に、初期化の実行状態を示す実行フラグ１２０・１３０・１４０・１５０（０：未実行、１：実行済）と、初期化プログラムのアドレス１２１・１３１・１４１・１５１とを有する。
【００４６】
もちろん、初期化管理テーブル１００の構成は上記に限られない。また、起動処理は、テーブル以外のデータにより制御されるようにしてもよい。
【００４７】
マスターＣＰＵ１１は、アクセスフラグ１１０を初期値０に設定する。また、実行フラグ１２０・１３０・１４０・１５０を初期値０に設定する。また、マスターＣＰＵ１１は、各種デバイスやユニットの初期化プログラムをＲＯＭ１４から読み出し、各ＣＰＵにより共通使用可能なＲＡＭ１５上の領域に格納する。そして、各初期化プログラムのアドレスを、初期化プログラムのアドレス１２１・１３１・１４１・１５１として設定する。
【００４８】
図２に戻って、マスターＣＰＵ１１は、上述のように初期化管理テーブル１００をＲＡＭ１５内に生成して、処理をＳ１２０に進める。
【００４９】
Ｓ１２０では、マスターＣＰＵ１１は、初期化準備（Ｓ１１０）が終了したことを示す初期化準備通知を、スレーブＣＰＵ１２に送る。そして、処理をＳ１４０に進める。
【００５０】
Ｓ１３０では、スレーブＣＰＵ１２は、起動プログラムにより、初期化準備通知をマスターＣＰＵ１１から受信したか否かを監視する。初期化準備通知を受信した場合（Ｓ１３０：ＹＥＳ）、処理をＳ１４０に進める。初期化準備通知を受信していない間、監視を継続する。
【００５１】
Ｓ１４０では、ＣＰＵは、アクセスフラグが０であるか否かを判定する。具体的には、ＣＰＵは、ＲＡＭ１５内の初期化管理テーブル１００のアクセスフラグ１１０を参照する。アクセスフラグが０（アクセスなし）である場合（Ｓ１４０：ＹＥＳ）、処理をＳ１５０に進める。アクセスフラグが１（アクセス中）である場合（Ｓ１４０：ＮＯ）、判定を継続する。
【００５２】
Ｓ１５０では、ＣＰＵは、アクセスフラグを１（アクセス中）に設定する。そして、処理をＳ１６０に進める。
【００５３】
Ｓ１６０では、ＣＰＵは、全ての実行フラグが１であるか否かを判定する。具体的には、ＣＰＵは、ＲＡＭ１５内の初期化管理テーブル１００の、全ての機能の実行フラグ１２０・１３０・１４０・１５０を参照する。そして、全ての実行フラグが１（実行済）である場合（Ｓ１６０：ＹＥＳ）、処理をＳ２１０に進める。全ての実行フラグが１でない場合（Ｓ１６０：ＮＯ）、処理をＳ１７０に進める。
【００５４】
Ｓ１７０では、ＣＰＵは、初期化処理を未実行の機能の実行フラグに１を設定する。具体的には、ＣＰＵは、Ｓ１６０で参照した実行フラグ１２０・１３０・１４０・１５０のうち、０（未実行）の実行フラグを一つ選択し、１（実行済）を設定する。実行フラグの選択の優先順位は、例えば、初期化管理テーブル１００において並べられている順序であってもよいし、ランダムであってもよい。それから、ＣＰＵは、選択した実行フラグに対応する機能の、初期化プログラムのアドレス（１２１、１３１、１４１又は１５１）を読み出してＲＡＭ１５に格納しておく。そして、ＣＰＵは、処理をＳ１８０に進める。
【００５５】
Ｓ１８０では、ＣＰＵは、アクセスフラグ１１０（アクセスなし）を設定する。そして、処理をＳ１９０に進める。
【００５６】
Ｓ１９０では、ＣＰＵは初期化プログラムを実行する。具体的には、ＣＰＵは、Ｓ１７０で初期化管理テーブル１００から読み出した初期化プログラムのアドレス（１２１、１３１、１４１又は１５１）に格納されている初期化プログラムを実行する。これにより、スキャナーユニット２０、プリンターユニット３０、ファクシミリユニット４０、ネットワークＩ／Ｆ１３のいずれかの初期化処理が開始される。そして、ＣＰＵは、処理をＳ２００に進める。
【００５７】
Ｓ２００では、ＣＰＵは、Ｓ１９０で開始した初期化処理の実行が完了したか否かを監視する。初期化処理を完了した場合（Ｓ２００：ＹＥＳ）、処理をＳ１４０に戻す。初期化処理を完了していない場合（Ｓ２００：ＮＯ）、監視を継続する。
【００５８】
Ｓ２１０では、ＣＰＵは、アクセスフラグを０（アクセスなし）に設定する。そして、処理をＳ２２０に進める。
【００５９】
Ｓ２２０では、ＣＰＵは、自身がマスターであるか否かを判定する。自身がマスターである場合（Ｓ２２０：ＹＥＳ）、処理をＳ２５０に進める。自身がマスターでない場合（Ｓ２２０：ＮＯ）、処理をＳ２３０に進める。なお、起動プログラムによるスレーブＣＰＵ１２の処理は、Ｓ２２０で終了する。
【００６０】
Ｓ２３０では、スレーブＣＰＵ１２は、ＯＳを起動する。具体的には、スレーブＣＰＵ１２は、ＲＯＭ１４から予め指定された自身のＯＳプログラムを読み出してＲＡＭ１５に展開し、実行する。これにより、ファクシミリユニット４０、ネットワークＩ／Ｆ１３及び操作パネル５０は、アイドル状態となることができる。そして、スレーブＣＰＵ１２は、処理をＳ２４０に進める。
【００６１】
Ｓ２４０では、スレーブＣＰＵ１２は、ＯＳ起動（Ｓ２３０）が終了したことを示すＯＳ起動通知を、マスターＣＰＵ１１に送る。そして、本フローを終了する。なお、Ｓ２４０の処理は起動プログラムが実行するようにしてもよい。なお、本フロー終了後、マスターＣＰＵ１１の制御により、印刷装置１はアイドル状態に移行する。
【００６２】
Ｓ２５０では、マスターＣＰＵ１１は、他の全てのＣＰＵ（本実施形態ではスレーブＣＰＵ１２）からＯＳ起動通知を受信したか否かを監視する。ＯＳ起動通知を全て受信した場合（Ｓ２５０：ＹＥＳ）、処理をＳ２６０に進める。ＯＳ起動通知を全て受信していない間、監視を継続する。なお、起動プログラムによるマスターＣＰＵ１１の処理は、Ｓ２５０で終了する。
【００６３】
Ｓ２６０では、マスターＣＰＵ１１は、初期化管理テーブル１００を破棄する。具体的には、マスターＣＰＵ１１は、Ｓ１１０でＲＡＭ１５に展開した初期化管理テーブル１００を消去する。Ｓ１１０でＲＡＭ１５に展開した初期化プログラムも消去してもよい。また、マスターＣＰＵ１１は、マスターＣＰＵ１１及びスレーブＣＰＵ１２によりＲＡＭ１５に展開された起動プログラムを消去する。そして、処理をＳ２７０に進める。
【００６４】
Ｓ２７０では、マスターＣＰＵ１１は、ＯＳを起動する。具体的には、マスターＣＰＵ１１は、ＲＯＭ１４から予め指定された自身のＯＳプログラムを読み出してＲＡＭ１５に展開し、実行する。このとき、Ｓ２６０の処理により空いたＲＡＭ１５の領域を使用する。これにより、スキャナーユニット２０及びプリンターユニット３０は、アイドル状態となることができる。そして、マスターＣＰＵ１１は、本フローを終了する。なお、Ｓ２７０の処理は起動プログラムが実行するようにしてもよい。なお、本フロー終了後、マスターＣＰＵ１１の制御により、印刷装置１はアイドル状態に移行する。
【００６５】
図４は、複数ＣＰＵによる印刷装置１の起動処理（エラーが発生した場合）の一例を示すシーケンス図である。本シーケンスは、プリンター機能の初期化処理（Ｓ１３）に、エラー復帰処理が含まれている場合を示している。エラー復帰処理としては、例えば、ノズルのクリーニング、インクの初期充填、印刷ヘッド位置の調整、キャリブレーション等がある。
【００６６】
印刷装置１の電源がオンされると、マスターＣＰＵ１１により、初期化準備（Ｓ１０：図２のＳ１１０に対応）、初期化準備通知（Ｓ１１：図２のＳ１２０に対応）、初期化対象の特定（Ｓ１２：図２のＳ１７０に対応）、プリンター機能の初期化（エラー復帰処理を含む。）（Ｓ１３：図２のＳ１９０〜Ｓ２００に対応）、初期化対象の特定（Ｓ１４：図２のＳ１６０に対応）、ＯＳ起動通知待ち（Ｓ１５：図２のＳ２５０に対応）、ＯＳ起動（Ｓ１６：図２のＳ２７０に対応）、が実行され、印刷装置１はアイドル状態に移行する。
【００６７】
一方で、印刷装置１の電源がオンされると、スレーブＣＰＵ１２により、初期化準備通知待ち（Ｓ２０：図２のＳ１３０に対応）、初期化対象の特定（Ｓ２１：図２のＳ１７０に対応）、スキャナー機能の初期化（Ｓ２２：図２のＳ１９０〜Ｓ２００に対応）、初期化対象の特定（Ｓ２３：図２のＳ１７０に対応）、ネットワーク機能の初期化（Ｓ２４：図２のＳ１９０〜Ｓ２００に対応）、初期化対象の特定（Ｓ２５：図２のＳ１７０に対応）、ファクシミリ機能の初期化（Ｓ２６：図２のＳ１９０〜Ｓ２００に対応）、初期化対象の特定（Ｓ２７：図２のＳ１６０に対応）、ＯＳ起動（Ｓ２８：図２のＳ２３０に対応）、ＯＳ起動通知（Ｓ２９：図２のＳ２４０に対応）が実行され、印刷装置１はアイドル状態に移行する。
【００６８】
ここで、マスターＣＰＵ１１によるプリンター機能の初期化（Ｓ１３）が平均的な初期化処理時間よりも長くなった結果、スレーブＣＰＵ１２により他の機能の初期化（Ｓ２２、Ｓ２４、Ｓ２６）が全て実行されている。マスターＣＰＵ１１は、プリンター機能の初期化（Ｓ１３）の後に、更にスキャナー機能の初期化を実行する必要がない。
【００６９】
即ち、本実施形態によれば、あるＣＰＵで実行されるいずれかの機能の初期化処理が長引いた場合であっても、当該ＣＰＵが実行予定の他の機能の初期化処理は、他のＣＰＵが空けば当該他のＣＰＵにより実行される。その結果、起動処理全体の処理時間を短縮することができる。
【００７０】
本実施形態の特徴を明確にするため、図５及び図６を参照する。図５は、従来の複数ＣＰＵによる印刷装置の起動処理の一例を示すシーケンス図である。図６は、従来の複数ＣＰＵによる印刷装置の起動処理（エラーが発生した場合）の一例を示すシーケンス図である。
【００７１】
図５及び図６の例では、複数のＣＰＵにはそれぞれ、固定的に所定の機能の初期化処理が割り当てられている。マスターＣＰＵには、プリンター機能及びスキャナー機能の初期化が割り当てられ、スレーブＣＰＵには、ネットワーク機能の初期化及びファクシミリ機能の初期化が割り当てられている。また、各初期化プログラムは、ＯＳプログラムに依存したプログラムにより記述されている。従って、ＯＳ起動後に各初期化プログラムが実行されている。
【００７２】
図５に示すように、印刷装置の電源がオンされると、マスターＣＰＵにより、初期化準備（Ｓ６０）、初期化準備通知（Ｓ６１）、ＯＳ起動（Ｓ６２）、プリンター機能の初期化（Ｓ６３）、スキャナー機能の初期化（Ｓ６４）、初期化完了の通知待ち（Ｓ６５）、が実行され、印刷装置はアイドル状態に移行する。
【００７３】
一方、印刷装置の電源がオンされると、スレーブＣＰＵにより、初期化準備通知待ち（Ｓ７０）、ＯＳ起動（Ｓ７１）、ネットワーク機能の初期化（Ｓ７２）、ファクシミリ機能の初期化（Ｓ７３）、初期化完了の通知（Ｓ７４）、が実行され、印刷装置はアイドル状態に移行する。
【００７４】
図６の各処理の内容も図５と同様である。ただし、図６の例では、プリンター機能の初期化にエラー復帰処理が含まれている。
【００７５】
ここで、図６において、マスターＣＰＵによるプリンター機能の初期化（Ｓ６３）が平均的な初期化処理時間よりも長くなった結果、スレーブＣＰＵによる所定の機能の初期化（Ｓ７２、Ｓ７３）の実行後からアイドル状態に移行するまで空き時間が発生している。マスターＣＰＵは、プリンター機能の初期化（Ｓ６３）の後に、更にスキャナー機能の初期化処理（Ｓ６４）を実行する必要がある。
【００７６】
即ち、従来の起動処理によれば、あるＣＰＵで実行される所定の機能の初期化処理が長引いた場合、当該ＣＰＵが実行する他の所定機能の初期化処理は、他のＣＰＵにより実行されない。その結果、起動処理全体の処理時間が長くなってしまう。
【００７７】
以上の図２、図４、図５、及び図６の各処理単位は、ＣＰＵの処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。ＣＰＵの処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【００７８】
以上、本発明の一実施形態について説明した。本実施形態によれば、複数のＣＰＵを備える情報処理装置において、その起動処理にかかる時間を短くすることができる。
【００７９】
すなわち、本実施形態によれば、複数のＣＰＵそれぞれにより、任意の未実行の初期化対象が選択されて実行される。このような構成により、ある初期化処理が長引いた場合でも、起動処理全体の処理時間を短縮することができる。また、初期化すべき機能が増減した場合であっても、初期化処理の割り当て等を考慮する必要がない。
【００８０】
また、本実施形態によれば、各初期化処理プログラムがＯＳに依存しないプログラムにより記述されている。このような構成により、初期化処理を複数のＣＰＵに動的に割り当てることが可能となる。
【００８１】
また、本実施形態によれば、起動処理の完了時に、当該起動処理で使用されたテーブルやプログラムがＲＡＭから消去され、ＯＳの領域として使用される。このような構成により、メモリー資源を有効に使用することができる。
【００８２】
なお、上記の本発明の実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正および変形例が当業者にとって明らかである。
【００８３】
例えば、ＣＰＵの数は、２つに限られず、３つ以上であってもよい。この場合も、いずれかのＣＰＵがマスターとなり、他のＣＰＵがスレーブとなる。そして、各ＣＰＵが未実行の初期化処理を任意に選択して実行する。
【００８４】
また、例えば、他の機能と比較して初期化処理が大幅に長くなる可能性がある機能の初期化処理が、できる限り優先的に選択されるようにしてもよい。具体的には、例えば、上述の実施形態のように、プリンターやスキャナー等の機械的構造を持つユニットの初期化処理を、初期化管理テーブル１００の上位に設定するようにする。また、例えば、初期化プログラムのステップ数が多い順に、初期化管理テーブル１００の上位に設定するようにしてもよい。このような構成によれば、起動処理時間を短くできるケースをより多くすることができる。
【００８５】
また、例えば、初期化プログラムは、デバイスやユニット毎でなく、予め定めた分割方法で分割されていてもよい。この場合、例えば、一つの初期化プログラムにより、複数のデバイスやユニットを初期化されるようにしたり、複数の初期化プログラムにより、一つのデバイスやユニットが初期化されたりするようにすることができる。
【００８６】
なお、本発明は、印刷装置だけでなく、複数のＣＰＵを有する情報処理装置に適用できる。
【符号の説明】
【００８７】
１：印刷装置、１０：制御ユニット、２０：スキャナーユニット、３０：プリンターユニット、４０：ファクシミリユニット、５０：操作パネル、１１：ＣＰＵ（マスター）、１２：ＣＰＵ（スレーブ）、１３：ネットワークＩ／Ｆ、１４：ＲＯＭ、１５：ＲＡＭ、１６：制御Ｉ／Ｆ、１００：初期化管理テーブル、１１０：アクセスフラグ、１２０・１３０・１４０・１５０：実行フラグ、１２１・１３１・１４１・１５１：初期化プログラムのアドレス
【図１】
2011232791.tif 000003
【図２】
2011232791.tif 000004
【図３】
2011232791.tif 000005
【図４】
2011232791.tif 000006
【図５】
2011232791.tif 000007
【図６】
2011232791.tif 000008