(57)【要約】【課題】本発明は、プログラムを実行する複数のデバイスを、起動時に、速やかに起動させる。【解決手段】複合装置１は、認証プログラムと初期化プログラムをＲＯＭ２２に格納しており、起動時に、サブＣＰＵ３１が実行する認証プログラムに対して、ＴＰＭ４２に該認証プログラムの正当性を認証させて、正当性が認証されると、メインＣＰＵ２１が実行する初期化プログラムに対して、サブＣＰＵ３１に、該認証プログラムを用いて認証処理を行なわせて、正当性が認証されると、メインＣＰＵ２１に、該初期化プログラムを実行させるとともに、その間に、サブＣＰＵ３１に、サブＣＰＵ３１が実行するプログラムに対して該認証プログラムを用いて認証処理を行わせて、正当性が認証されると、該プログラムを起動させるとともに、メインＣＰＵ２１の初期化が完了すると、メインＣＰＵ２１に、メインＣＰＵ２１が実行するプログラムの認証処理を行わせる。【選択図】          図１
2014021953.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ専用のプログラムを実行する順位付けられている複数のデバイスを搭載する情報処理装置において、
前記各デバイスで実行されるプログラムに対して正当性の認証を行なう認証プログラムと該各デバイスの初期化を行なう初期化プログラムを格納する不揮発性記憶手段と、
前記デバイスで実行される前記プログラムに対する前記認証プログラムの処理結果に基づいて該プログラムの正当性を認証する認証手段と、
起動時に、最下位の前記デバイスに、該デバイスが実行する前記認証プログラムの正当性を前記認証手段を用いて認証させて、正当性が認証されると、該最下位の次に上位のデバイスが実行する前記初期化プログラムに対して該認証プログラムを用いて認証処理を行なわせて、該認証手段が正当性を認証すると、上位の該デバイスに、該初期化プログラムを実行させるとともに、上位の該デバイスが該初期化プログラムを実行している間に、該最下位のデバイスに、該最下位のデバイスが実行するプログラムに対して該認証プログラムを用いて認証処理を行わせて、該認証手段が正当性を認証すると、該プログラムを起動させるとともに、上位の該デバイスの該初期化プログラムによる初期化が完了すると、上位の該デバイスに、上位の該デバイスが実行するプログラムに対して該認証プログラムと該認証手段を用いて認証処理を行わせる処理を、複数の前記デバイスに対して前記順位に従って順次実行させる起動制御手段と、
を備えていることを特徴とする情報処理装置。
【請求項２】
前記不揮発性記憶手段は、
前記認証プログラムと前記初期化プログラムを連続した領域に格納しており、
前記デバイスは、
前記不揮発性メモリから前記認証プログラムと前記初期化プログラムを順次読み出して、前記正当性の認証及び前記初期化を実行することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記情報処理装置は、
前記順位の連続するデバイスの実行するプログラム間で通信を行う通信手段を備え、
前記通信手段は、
上位の前記デバイスにおいて前記初期化プログラムの実行が開始された後に、下位の前記デバイスにおいて上位の該デバイスが実行するプログラムの正当性が認証されたことを、該プログラムの認証を行った前記認証プログラムから該初期化プログラムへ通信することを特徴とする請求項１または請求項２記載の情報処理装置。
【請求項４】
前記情報処理装置は、
前記デバイスとして、順位が上位であるメインＣＰＵと下位であるサブＣＰＵを備え、
前記メインＣＰＵの実行する複数のプログラムのプログラムリストを記憶するプログラムリスト記憶手段と、
前記プログラムリストに登録されている前記プログラムを保管するプログラム記憶手段と、
を備え、
前記メインＣＰＵ及び前記サブＣＰＵは、
該メインＣＰＵが、前記初期化が完了すると、前記プログラムリストに登録されている前記プログラムを所定順序で前記プログラム記憶手段から読み出して該プログラムの認証依頼を前記サブＣＰＵに行ない、該サブＣＰＵが、前記認証プログラムを実行して前記認証手段に該プログラムの正当性を認証させて、認証結果を前記メインＣＰＵに通知し、該メインＣＰＵが、該プログラムの正当性が認証されると、該プログラムリストに登録されている次のプログラムを該プログラム記憶手段から読み出して、該プログラムの認証依頼を該サブＣＰＵに行なうプログラム認証処理を該プログラムリストに登録されている全てのプログラムに対して順次行うことを特徴とする請求項１から請求項３のいずれかに記載の情報処理装置。
【請求項５】
前記情報処理装置は、
前記サブＣＰＵの実行する前記認証プログラムが、
前記通信手段を介して前記メインＣＰＵの実行するプログラムであるとして通知された該プログラムの認証処理を行い、
前記メインＣＰＵの実行する前記プログラムが、
前記通信手段を介して前記認証プログラムから認証結果が通知されるのを待ち合わせることを特徴とする請求項４記載の情報処理装置。
【請求項６】
それぞれ専用のプログラムを実行して各種画像処理を実行する順位付けられている複数のデバイスを搭載する画像処理装置において、
前記各デバイスで実行されるプログラムに対して正当性の認証を行なう認証プログラムと該各デバイスの初期化を行なう初期化プログラムを格納する不揮発性記憶手段と、
前記デバイスで実行される前記プログラムに対する前記認証プログラムの処理結果に基づいて該プログラムの正当性を認証する認証手段と、
起動時に、最下位の前記デバイスに、該デバイスが実行する前記認証プログラムの正当性を前記認証手段を用いて認証させて、正当性が認証されると、該最下位の次に上位のデバイスが実行する前記初期化プログラムに対して該認証プログラムを用いて認証処理を行なわせて、該認証手段が正当性を認証すると、上位の該デバイスに、該初期化プログラムを実行させるとともに、上位の該デバイスが該初期化プログラムを実行している間に、該最下位のデバイスに、該最下位のデバイスが実行するプログラムに対して該認証プログラムを用いて認証処理を行わせて、該認証手段が正当性を認証すると、該プログラムを起動させるとともに、上位の該デバイスの該初期化プログラムによる初期化が完了すると、上位の該デバイスに、上位の該デバイスが実行するプログラムに対して該認証プログラムと該認証手段を用いて認証処理を行わせる処理を、複数の前記デバイスに対して前記順位に従って順次実行させる起動制御手段と、
を備えていることを特徴とする画像処理装置。
【請求項７】
それぞれ専用のプログラムを実行する順位付けられている複数のデバイスを搭載する情報処理装置の実行する起動制御方法であって、
前記各デバイスで実行されるプログラムに対して正当性の認証を行なう認証プログラムと該各デバイスの初期化を行なう初期化プログラムを不揮発性記憶手段に格納するプログラム格納制御処理ステップと、
前記デバイスで実行される前記プログラムに対する前記認証プログラムの処理結果に基づいて該プログラムの正当性を認証する認証処理ステップと、
起動時に、最下位の前記デバイスに、該デバイスが実行する前記認証プログラムの正当性を前記認証処理ステップで認証させて、正当性が認証されると、該最下位の次に上位のデバイスが実行する前記初期化プログラムに対して該認証プログラムを用いて認証処理を行なわせて、該認証処理ステップで正当性が認証されると、上位の該デバイスに、該初期化プログラムを実行させるとともに、上位の該デバイスが該初期化プログラムを実行している間に、該最下位のデバイスに、該最下位のデバイスが実行するプログラムに対して該認証プログラムを用いて認証処理を行わせて、該認証処理ステップで正当性を認証されると、該プログラムを起動させるとともに、上位の該デバイスの該初期化プログラムによる初期化が完了すると、上位の該デバイスに、上位の該デバイスが実行するプログラムに対して該認証プログラムと該認証処理ステップを用いて認証処理を行わせる処理を、複数の前記デバイスに対して前記順位に従って順次実行させる起動制御処理ステップと、
を有していることを特徴とする起動制御方法。
【請求項８】
それぞれ専用のプログラムを実行する順位付けられている複数のデバイスを搭載する情報処理装置の搭載する起動制御プログラムであって、
コンピュータに、
前記各デバイスで実行されるプログラムに対して正当性の認証を行なう認証プログラムと該各デバイスの初期化を行なう初期化プログラムを不揮発性記憶手段に格納するプログラム格納制御処理と、
前記デバイスで実行される前記プログラムに対する前記認証プログラムの処理結果に基づいて該プログラムの正当性を認証する認証処理と、
起動時に、最下位の前記デバイスに、該デバイスが実行する前記認証プログラムの正当性を前記認証処理で該認証プログラムを用いて認証させて、正当性が認証されると、該最下位の次に上位のデバイスが実行する前記初期化プログラムに対して該認証プログラムを用いて認証処理を行なわせて、該認証処理で正当性が認証されると、上位の該デバイスに、該初期化プログラムを実行させるとともに、上位の該デバイスが該初期化プログラムを実行している間に、該最下位のデバイスに、該最下位のデバイスが実行するプログラムに対して該認証プログラムを用いて認証処理を行わせて、該認証処理で正当性を認証されると、該プログラムを起動させるとともに、上位の該デバイスの該初期化プログラムによる初期化が完了すると、上位の該デバイスに、上位の該デバイスが実行するプログラムに対して該認証プログラムと該認証処理を用いて認証処理を行わせる処理を、複数の前記デバイスに対して前記順位に従って順次実行させる起動制御処理と、
を実行させることを特徴とする起動制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像処理装置、起動制御方法及び起動制御プログラムに関し、詳細には、プログラムを実行する複数のデバイスを、起動時に、速やかに起動させる情報処理装置、画像処理装置、起動制御方法及び起動制御プログラムに関する。
【背景技術】
【０００２】
複写装置、プリンタ装置、複合装置及びコンピュータ等の各種情報を取り扱う情報処理装置においては、近年、セキュリティの要求から、ソフトウェアの不正改ざんや情報の漏洩の防止が要求されるようになってきている。
【０００３】
情報処理装置は、ＣＰＵ（Central Processing Unit ）によって実行するプログラムが、不正に書き換えられると、起動時に、そのまま不正改ざんされたプログラムが実行されることとなる。
【０００４】
そして、従来、プログラムを起動する前に、該プログラムを構成する情報に基づいて第１の署名データを生成し、該第１の署名データと該プログラムに対応して保存されている第二の署名データとを比較して、該プログラムの正当性を判断して、正当であることが確認された場合に、該プログラムを起動する技術が提案されている（特許文献１参照）。
【０００５】
すなわち、この従来技術は、ＴＰＭ（Trusted Platform Module）を用いて外部記憶媒体に記憶されているアプリケーションプログラムを実行する際に正当性を認証した上で、該アプリケーションプログラムを実行している。
【０００６】
従来、複数、例えば、メインＣＰＵとサブＣＰＵを備えている情報処理装置においては、図７に示すように、情報処理装置の電源がＯＮされると（ステップＳ１００１）、サブＣＰＵ用ＢＩＯＳ／モニタとメインＣＰＵ用ＢＩＯＳ／モニタプログラムが起動するが（Ｓ１００２、Ｓ１００３）、同じＲＯＭ（Read Only Memory）とＴＰＭを使用するため、先に、サブＣＰＵにおける認証処理が完了するまで（ステップＳ１００４〜Ｓ１００８）、メインＣＰＵにおける認証処理を中断して待つ（ステップＳ１００９）。
【０００７】
そして、サブＣＰＵにおける認証処理では、メインＣＰＵが処理を待っている間に、サブＣＰＵ用ＢＩＯＳ／モニタのハッシュ値を算出して（ステップＳ１００４）、サブＣＰＵ用ＢＩＯＳ／モニタの認証を行ない（ステップＳ１００５）、正当性が確認されると、サブＣＰＵ用Ｋｅｒｎｅｌのロードとハッシュ値の計算を行って（ステップＳ１００６）、サブＣＰＵ用Ｋｅｒｎｅｌの正当性の確認を行なって（ステップＳ１００７）、正当性が確認されると、サブＣＰＵ用Ｋｅｒｎｅｌを起動させる（ステップＳ１００８）。
【０００８】
上記サブＣＰＵの認証が正常に完了すると、メインＣＰＵが、メインＣＰＵ用ＢＩＯＳ／モニタのハッシュ値を算出して（ステップＳ１０１０）、メインＣＰＵ用ＢＩＯＳ／モニタの認証を行って（ステップＳ１０１１）、正当性が確認されると、デバイスの診断と初期化処理を行ない（ステップＳ１０１２）、その後、メインＣＰＵ用Ｋｅｒｎｅｌのロードとハッシュ値の計算を行って（ステップＳ１０１３）、メインＣＰＵ用Ｋｅｒｎｅｌの正当性の確認を行なって（ステップＳ１０１４）、正当性が確認されると、メインＣＰＵ用Ｋｅｒｎｅｌを起動させる（ステップＳ１０１５）。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来技術にあっては、プログラムの起動時に、該プログラムの正当性の認証を行った後に、該プログラムの起動を行なっているため、認証処理が完了するまで、プログラムの実行を待つ必要があり、起動時間が長くなるという問題があった。
【００１０】
特に、近年、消費電力の低減やシステム性能の向上を目的として、情報処理装置に複数のＣＰＵが搭載されるようになってきている。このような複数のＣＰＵを搭載する情報処理装置においては、各ＣＰＵが別々のＯＳ（Operating System）プログラムを実行する場合がある。このような場合、情報処理装置においては、ＣＰＵ毎にプログラムの正当性の認証を行う必要があるとともに、ＯＳを起動する前までに、いずれかのＣＰＵがハードウェアの初期化処理を完了している必要があり、初期化処理が完了していない場合には、起動時のいずれかの時点で待ち合わせることになるため、起動時間がさらに長くなるという問題があった。
【００１１】
そこで、本発明は、複数のデバイスで複数のプログラムを起動する場合における起動時間を短縮化することを目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、請求項１記載の情報処理装置は、それぞれ専用のプログラムを実行する順位付けられている複数のデバイスを搭載する情報処理装置において、前記各デバイスで実行されるプログラムに対して正当性の認証を行なう認証プログラムと該各デバイスの初期化を行なう初期化プログラムを格納する不揮発性記憶手段と、前記デバイスで実行される前記プログラムに対する前記認証プログラムの処理結果に基づいて該プログラムの正当性を認証する認証手段と、起動時に、最下位の前記デバイスに、該デバイスが実行する前記認証プログラムの正当性を前記認証手段を用いて認証させて、正当性が認証されると、該最下位の次に上位のデバイスが実行する前記初期化プログラムに対して該認証プログラムを用いて認証処理を行なわせて、該認証手段が正当性を認証すると、上位の該デバイスに、該初期化プログラムを実行させるとともに、上位の該デバイスが該初期化プログラムを実行している間に、該最下位のデバイスに、該最下位のデバイスが実行するプログラムに対して該認証プログラムを用いて認証処理を行わせて、該認証手段が正当性を認証すると、該プログラムを起動させるとともに、上位の該デバイスの該初期化プログラムによる初期化が完了すると、上位の該デバイスに、上位の該デバイスが実行するプログラムに対して該認証プログラムと該認証手段を用いて認証処理を行わせる処理を、複数の前記デバイスに対して前記順位に従って順次実行させる起動制御手段と、を備えていることを特徴としている。
【発明の効果】
【００１３】
本発明によれば、複数のデバイスで複数のプログラムを起動する場合における起動時間を短縮化することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施例を適用した複合装置の要部ブロック構成図。
【図２】プリンタ装置のソフトウェア構成図。
【図３】ＴＰＭを用いた起動時正当性検証処理の説明図。
【図４】起動制御処理を示すフローチャート。
【図５】アプリケーションプログラムの起動認証処理を示すフローチャート。
【図６】アプリケーションデータテーブルの一例を示す図。
【図７】従来のＣＰＵを２つ有する装置の起動制御の説明図。
【発明を実施するための形態】
【００１５】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１６】
図１〜図６は、本発明の情報処理装置、画像処理装置、起動制御方法及び起動制御プログラムの一実施例を示す図であり、図１は、本発明の情報処理装置、画像処理装置、起動制御方法及び起動制御プログラムの一実施例を適用した複合装置１の要部ブロック構成図である。
【００１７】
図１において、複合装置（情報処理装置、画像処理装置）１は、エンジン２とコントローラボード３等を備えており、ＬＡＮ（Local Area Network）等の所定のネットワークＮＷを介して外部装置Ｇｓに接続されている。
【００１８】
外部装置Ｇｓは、例えば、パーソナルコンピュータ等であり、ユーザは、パーソナルコンピュータ等の外部装置Ｇｓにインストールされているアプリケーションソフトやドライバを利用して、ネットワークＮＷを介して、複合装置１の各種制御や画像データの入出力及び画像データに対する各種画像処理指定等を行うことができる。
【００１９】
エンジン２は、プロッタ１１、スキャナ１２及び図示しないファクシミリ通信部等を備えており、コントローラボード３から電源が供給されるとともに、コントローラボード３との間で、画像データと制御信号の授受を行う。
【００２０】
プロッタ１１は、所定の画像形成方式、例えば、電子写真方式、インク噴射方式等で、コントローラボード３から送られてくる画像データと制御信号に基づいて、用紙に画像を形成する。
【００２１】
スキャナ１２は、コントローラボード３からの制御信号に応じて画像の記録されている原稿を主走査及び副走査して、原稿の画像をＣＣＤ(Charge Coupled Device）、ＣＭＯＳ（Complementary Metal Oxide Semiconductor ）等の光電変換素子で光電変換した後、２値の画像データに変換してコントローラボード３に出力する。
【００２２】
ファクシミリ通信部は、電話回線を介して相手ファクシミリ装置との間でファクシミリ通信を行って、コントローラボード３から受け取ったファクシミリ画像データを送信し、また、相手ファクシミリ装置から受信したファクシミリ画像データをコントローラボード３に渡したり、プロッタ１１で用紙に記録出力させる。
【００２３】
コントローラボード３は、メインシステム部２０、サブシステム部３０、ＲＡＭ（Random Access Memory）４１、ＴＰＭ（Trusted Platform Module）４２及び電源制御部４３等を搭載しており、メインシステム部２０、サブシステム部３０、ＲＡＭ４１及びＴＰＭ４２は、バス４４により接続されている。
【００２４】
メインシステム部２０は、メインＣＰＵ２１、ＲＯＭ（Read Only Memory）２２、画像処理部２３、操作部２４及びハードディスク（ＨＤＤ：Hard Disk Drive）２５等を備えており、サブシステム部３０は、サブＣＰＵ３１、サブＲＡＭ３２及びネットワーク制御部３３等を備えている。
【００２５】
メインシステム部２０のＲＯＭ２２は、複合装置１としての基本プログラムであってメインＣＰＵ２１とサブＣＰＵ３１が実行するプログラムが格納されており、特に、後述するメインＣＰＵ２１及びサブＣＰＵ３１で実行されるプログラムの正当性を認証するための認証プログラム及びメインＣＰＵ２１とサブＣＰＵ３１の初期化を行なう初期化プログラムが、連続した領域に格納されているとともに、これらの認証プログラム及び初期化プログラムを用いた認証処理と初期化処理を効率的に行う本発明の起動制御プログラムが格納されている。ＲＯＭ２２は、各デバイスで実行されるプログラムに対して正当性の認証を行なう認証プログラムと該各デバイスの初期化を行なう初期化プログラムを格納する不揮発性記憶手段として機能し、また、後述するメインＣＰＵ２１の実行する複数のプログラムのアプリケーションデータテーブル（プログラムリスト）Ｔｂ１（図６参照）を記憶するプログラムリスト記憶手段及び該アプリケーションデータテーブルＴｂ１に登録されているプログラムを保管するプログラム記憶手段として機能している。
【００２６】
メインＣＰＵ（デバイス）２１は、ＲＯＭ２２内のプログラムに基づいてＲＡＭ４１をワークメモリとして利用して複合装置１の各部を制御して、複合装置１としての基本処理を実行するとともに、後述するように、本発明の起動制御プログラムに基づく認証処理と初期化処理を制御する起動制御処理を行なう。
【００２７】
画像処理部２３は、ＣＰＵ２１の制御下で、画像データに対して各種画像処理を施して、エンジン２との間で該画像データの授受を行う。
【００２８】
操作部２４は、複合装置１を操作するのに必要な各種キーを備えているとともに、ディスプレイ（例えば、液晶ディスプレイ）やＬＥＤ（Light Emitting Diode）等のランプを備えている。操作部２４は、操作キーから、複合装置１を利用したプリント処理、コピー処理、スキャナ処理、ファクシミリ処理等に必要な各種操作や後述するように機動制御処理における各種操作が行われ、ディスプレイには、操作キーから入力された命令内容や複合装置１からユーザに通知する各種情報が表示される。
【００２９】
ハードディスク２５は、ＣＰＵ２１の制御下で、各種データ、特に、画像データが書き込まれ、また、読み出される。
【００３０】
電源制御部４３は、複合装置１の各部への電源電力の供給を制御し、特に、サブシステム部３０からの制御信号に基づいて、消費電力を削減する省電力モードにおけるエンジン２及びメインシステム部２０への電力供給を制御する。
【００３１】
ＲＡＭ４１は、メインＣＰＵ２１のワークメモリとして利用され、ＲＯＭ２２に格納されていてメインＣＰＵ２１の実行するプログラムが展開されて、実行されるとともに、メインＣＰＵ２１とサブＣＰＵ３１の双方から参照可能なメモリ領域を有していて、メインシステム２０とサブシステム３０間のデータの送受信に利用される。このＲＡＭ４１のメインＣＰＵ２１とサブＣＰＵ３１の双方から参照可能なメモリ領域は、順位の連続するデバイスであるメインＣＰＵ２１とサブＣＰＵ３１の実行するプログラム間で通信を行う通信手段として機能している。
【００３２】
ＴＰＭ（認証手段）４２は、ＣＰＵ、ＲＯＭ、ＲＡＭ、不揮発性メモリ、タイマ等を含むハードウェアチップであり、起動検証に必要な情報を不揮発性メモリに記録している。このＴＰＭ４２を用いたプログラムの検証については、後で詳細に説明する。
【００３３】
サブシステム部３０は、本実施例の複合装置１では、外部装置Ｇｓとの通信及び省電力制御等を実行するシステムであり、サブＣＰＵ（デバイス）３１が、ＲＯＭ２２内に格納されているサブシステムプログラムをサブＲＡＭ３２に展開して該サブシステムプログラムに基づいて、ネットワーク制御部３３を介してネットワークＮＷ経由で外部装置Ｇｓとの間でデータ及び信号の授受を行うとともに、省電力モード移行要因（例えば、待機状態が所定の待ち時間継続したこと、操作部２４の省電力ボタンが操作されたこと等）が発生すると、電源制御部４３に省電力移行信号を出力し、省電力復帰要因（例えば、スキャナ１２への原稿のセット、操作部２４の所定のキー操作等）が発生すると、電源制御部４３に省電力復帰信号を出力する。
【００３４】
ネットワーク制御部３３は、サブＣＰＵ３１の制御下で、ネットワークＮＷを介して外部装置Ｇｓとの間で、データと信号の授受を行う。
【００３５】
上記メインＣＰＵ２１とサブＣＰＵ３１は、メインＣＰＵ２１がサブＣＰＵ３１よりも順が上位のデバイスとして機能している。
【００３６】
なお、複合装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Versatile Disk）、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明の起動制御方法を実行する起動制御プログラムを読み込んでＲＯＭ２２やハードディスク２２に導入することで、後述する複数のデバイスで複数のプログラムを起動する場合における起動時間を短縮化する起動制御方法を実行する情報処理装置である複合装置として構築されている。この起動制御プログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００３７】
そして、複合装置１は、図２に示すように、ソフトウェア構成されており、ソフトウェア群１００として、アプリケーション１１０とプラットホーム１２０を備えていて、プラットホーム１２０は、アプリケーション１１０からの処理要求を受信可能とするＡＰＩ（Application Program Interface ）１３０を有している。
【００３８】
アプリケーション１１０は、コピー、プリンタ、スキャナ及びファックス（ファクシミリ）等の画像処理に関連するユーザサービスにそれぞれ固有の処理を行うプログラムを含んでおり、コピー用のアプリケーションであるコピーアプリ（以下、アプリケーションのことを、必要に応じて、単に、アプリという。）１１１、プリンタ用のアプリケーションであるプリンタアプリ１１２、スキャナ用のアプリケーションであるスキャナアプリ１１３及びファックス用のアプリケーションであるファックスアプリ１１４等を備えている。そして、プリンタアプリ１１２は、ページ記述言語（ＰＤＬ）、ＰＣＬ及びポストスクリプト（ＰＳ）を有している。
【００３９】
プラットホーム１２０は、アプリケーション１１０からの処理要求を解析してハードウェア資源の獲得要求を発生させる複数のコントロールサービス１２１〜１２５、１または複数のハードウェア資源の管理を行いコントロールサービス１２１〜１２５からの獲得要求を調停するシステム・リソース・マネージャ（ＳＲＭ）１２６及び汎用オペレーティングシステム（以下、ＯＳという。）１２８及びＢＩＯＳ／モニタプログラム１２９等を有している。
【００４０】
上記コントロールサービス１２１〜１２５は、複数のサービスモジュールから構成され、エンジン・コントロール・サービス（ＥＣＳ）１２１、メモリ・コントロール・サービス（ＭＣＳ）１２２、オペレーションパネル・コントロール・サービス（ＯＣＳ）１２３、ファックス・コントロール・サービス（ＦＣＳ）１２４、ネットワーク・コントロール・サービス（ＮＣＳ）１２５及びシステム・リソース・マネージャ（ＳＲＭ）１２６の内蔵するシステム・コントロール・サービス（ＳＣＳ）１２７等がある。
【００４１】
汎用ＯＳ１２８は、ＵＮＩＸ（登録商標）等の汎用オペレーティングシステムであり、ＢＩＯＳ／モニタプログラム１２９によって起動されて、プラットホーム１２０及びアプリケーション１１０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００４２】
システム・リソース・マネージャ（ＳＲＭ）１２６のプロセスは、システム・コントロール・サービス（ＳＣＳ）１２７とともに複合装置１の制御及びリソースの管理を行い、システム・リソース・マネージャ（ＳＲＭ）１２６のプロセスは、スキャナ２２やプロッタ２１等のエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４Ｉ／Ｆ、ＲＳ２３２ＣＩ／Ｆ等）のハードウェアリソースを利用する上位層からの要求に従って調停を行い、実行制御する。具体的には、システム・リソース・マネージャ（ＳＲＭ）１２６は、要求されたハードウェア資源が利用可能であるか否かを判断し、利用可能であると判断すると、要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、システム・リソース・マネージャ（ＳＲＭ）１２６は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施する。
【００４３】
システム・コントロール・サービス（ＳＣＳ）１２７のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御等を行い、エンジン・コントロール・サービス（ＥＣＳ）１２１のプロセスは、プロッタ２１、スキャナ２２、ファクシミリ等からなるハードウェアリソースのエンジンの制御を行って、画像の読み込みと印刷動作、状態通知、ジャムリカバリ等を行う。具体的には、アプリケーション１１０から受け取ったジョブモードの指定に従い、印刷要求をシステム・リソース・マネージャ（ＳＲＭ）１２６に順次発行していくことで、一連のコピー／スキャン／印刷動作を実現する。
【００４４】
このエンジン・コントロール・サービス（ＥＣＳ）１２１が取り扱う対象のジョブは、画像入力デバイスにスキャナが指定されているか、または、画像出力デバイスにプリンタが指定されているものとする。
【００４５】
例えば、コピー動作の場合には、「ＳＣＡＮＮＥＲ  →  ＰＬＯＴＴＥＲ」と指定され、ファイル蓄積の場合には、「ＳＣＡＮＮＥＲ  →  ＭＥＭＯＲＹ」と指定される。また、ファクシミリ送信の場合には、「ＳＣＡＮＮＥＲ  →  ＦＡＸＩＮ」と指定され、蓄積ファイル印刷またはプリンタアプリ１１２からの印刷の場合には、「ＭＥＯＭＯＲＵ  →  ＰＬＯＴＴＥＲ」と指定される。さらに、ファクシミリ受信の場合には、「ＦＡＸ＿ＯＵＴ  →  ＰＬＯＴＴＥＲ」と指定される。
【００４６】
メモリ・コントロール・サービス（ＭＣＳ）１２２のプロセスは、画像メモリの取得及び解放、ハードディスク２２の利用、画像データの圧縮及び伸長等を行い、ファックス・コントロール・サービス（ＦＣＳ）１２４のプロセスは、システムコントローラの各アプリケーション１２１〜１２５からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読み取り、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【００４７】
ネットワーク・コントロール・サービス（ＮＣＳ）１２５のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーション１２１〜１２５に対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーション１２１〜１２５に振り分けたり、アプリケーション１２１〜１２５から受け取ったデータをネットワーク側に送信する際の仲介を行ったりする。具体的には、ネットワーク・コントロール・サービス（ＮＣＳ）１２５は、ｆｔｐｄ、ｈｔｔｐｄ、ｌｐｄ、ｓｎｍｐｄ、ｔｅｌｎｅｔｅｄ、ｓｍｔｐｄ等のサーバデーモンや同プロトコルのクライアント機能等を有している。
【００４８】
オペレーションパネル・コントロール・サービス（ＯＣＳ）１２３のプロセスは、オペレータ（ユーザ）と複合装置１の本体制御との間の情報伝達を行うオペレーションパネル（操作部）２４の制御を行う。オペレーションパネル・コントロール・サービス（ＯＣＳ）１２３は、操作部２４でのキー押下をキーイベントとして取得し、取得したキーに対応するキーイベント関数をシステム・コントロール・サービス（ＳＣＳ）１２７に送信するＯＣＳプロセスの部分と、アプリケーション１１０またはコントロールサービスからの要求により操作部２４のディスプレイに各種画面を描画出力する描画関数やその他の操作部２４に対する制御を行う関数等が予め登録されたＯＣＳライブラリの部分とから構成される。
【００４９】
そして、上記ＴＰＭ４２は、一般的に、プラットホーム構成情報（ソフトウェアの計測値）をＴＰＭ４２内のレジスタＰＣＲ（Platform Configuration Registers）に安全に保管し、通知する機能を有している。これらの機能はそれぞれＲＴＳ（Root of Trust for Storage）、ＲＴＲ（Root of Trust for Reporting）と呼ばれ、ＲＴＭ（Root of Trust for Measurements）で計測したソフトウェアのインテグリティ情報（ハッシュ値）を安全に保管、通知することを可能としている。
【００５０】
そして、ＴＰＭ４２は、起動検証に必要な情報として、例えば、図３に示すようなハッシュ値を保管、通知する。すなわち、ＴＰＭ４２は、ＰＣＲ０に、システムＢＩＯＳ／モニタプログラム１２９のハッシュ値が、ＰＣＲ１に、システムＯＳのＫｅｒｎｅｌのハッシュ値が、ＰＣＲ２以降に、アプリケーションプログラムのハッシュ値が、それぞれ格納されている。これらの情報は、いずれも複合装置１の出荷時あるいは初めての起動時にＴＰＭ４２内部の不揮発性メモリに格納される。
【００５１】
複合装置１は、電源が入ると、まず、ＢＩＯＳ／モニタプログラム１２９が、自身のハッシュ値を計算して、計算の結果がＴＰＭ４２のＰＣＲ０に格納されている値と同値であると、プログラムの実行を継続し、異なると、そこでプログラムの実行を停止する。続いて、ＢＩＯＳ／モニタプログラム１２９が、次に実行するＫｅｒｎｅｌのハッシュ値を計算し、ＴＰＭ４２のＰＣＲ１に格納されている値と比較して、同値であると、Ｋｅｒｎｅｌを起動する。複合装置１は、Ｋｅｒｎｅｌが起動すると、アプリケーションプログラム１１０を実行する前に、各プログラムのハッシュ値を計算し、ＰＣＲ２以降のハッシュ値と比較して、同値であると、正当性が認証されたとして、起動させる。
【００５２】
このように、ＴＰＭ４２を用いて各プログラムを起動する前に認証を行うことで、不正なプログラムの実行を防止することができる。
【００５３】
次に、本実施例の作用を説明する。本実施例の複合装置１は、複数のデバイスで複数のプログラムを起動する場合における起動時間を短縮化する。
【００５４】
すなわち、複合装置１は、図４に示すように、電源がＯＮされると（ステップＳ１０１）、サブＣＰＵ３１が、サブＣＰＵ用のＢＩＯＳ／モニタプログラム１２９をＲＯＭ２２から読み出して起動し（ステップＳ１０２）、サブＣＰＵ用のＢＩＯＳ／モニタプログラム１２９の認証用にハッシュ値を計算する（ステップＳ１０３）。
【００５５】
次に、サブＣＰＵ３１において、メインＣＰＵ２１で実行するデバイス初期化用のプログラムをＲＯＭ２２からロードして、そのハッシュ値を計算し（ステップＳ１０４）、ハッシュ値を計算した各プログラムの認証を行う（ステップＳ１０５）。
【００５６】
ここで、サブＣＰＵ用のＢＩＯＳ／モニタプログラムとメインＣＰＵ用のデバイス初期化プログラムが、ＲＯＭ２２上の連続した領域に格納されているため、ステップＳ１０３でのサブＣＰＵ用ＢＩＯＳ／ハッシュ値の計算とステップＳ１０４でのメインＣＰＵ用のデバイス初期化プログラムのロードとハッシュ値の計算及びステップＳ１０５でのデバイス初期化プログラムの認証をそれぞれ一括して行うことができ、処理効率を向上させて、待ち時間をより一層短縮することができる。
【００５７】
そして、ステップＳ１０５で、メインＣＰＵ用のデバイス初期化プログラムの認証が完了すると、サブＣＰＵ３１は、メインＣＰＵ２１のリセットを解除して、メインＣＰＵ２１が動作を開始し、ステップＳ１０５で、認証が完了しているデバイス初期化用のプログラムを起動して（ステップＳ２０１）、デバイスの初期化処理や診断処理を実行する（ステップＳ２０２）。
【００５８】
一方、サブＣＰＵ３１において、サブＣＰＵ用のＢＩＯＳ／モニタプログラム１２９の認証を行うと（ステップＳ１０６）、サブＣＰＵ用のＫｅｒｎｅｌをＲＯＭ２２からロードして、ハッシュ値を計算して（ステップＳ１０７）、サブＣＰＵ用のＫｅｒｎｅｌの認証を行い（ステップＳ１０８）、認証したサブＣＰＵ用のＫｅｒｎｅｌを起動する（ステップＳ１０９）。
【００５９】
そして、サブＣＰＵ３１は、このようにして、メインＣＰＵ２１がデバイスの初期化・診断処理を行っている間に、メインＣＰＵ用のＫｅｒｎｅｌのロード・認証の処理を行い（ステップＳ１１０）、認証に成功すると、メインＣＰＵ２１で動作しているデバイス初期化用プログラムへメインＣＰＵ用のＫｅｒｎｅｌのロード・認証が完了したことを通知する（ステップＳ１１１）。
【００６０】
サブＣＰＵ３１は、この通知を、例えば、上記ＲＡＭ４１の共有領域に初期値「０」のフラグ（Flag）を用意しておいて、サブＣＰＵ側でメインＣＰＵ２１のＫｅｒｎｅｌのロード・認証が完了した段階で、フラグを「１」に設定することで行う。
【００６１】
メインＣＰＵ２１のデバイス初期化プログラムは、デバイス初期化処理の最後で、このフラグが「１」になっていると、Ｋｅｒｎｅｌの起動を開始する（ステップＳ２０２）。
【００６２】
これにより、メインＣＰＵ２１は、デバイスの初期化処理が完了する段階で、Ｋｅｒｎｅｌのロード・認証の処理が完了しているため、速やかに、Ｋｅｒｎｅｌを起動することができる（ステップＳ２０２）。
【００６３】
また、複合装置１は、ステップＳ１１１で、メインＣＰＵ２１へＫｅｒｎｅｌの起動を開始できることを通知することで、たとえ、ステップＳ２０２でのデバイス初期化・診断処理がステップＳ１１０でのメインＣＰＵ用Ｋｅｒｎｅｌのロード・認証処理よりも先に完了していた場合であっても、このＫｅｒｎｅｌの起動開始を待ち合わせることができ、認証されていないプログラムの起動を防止することができる。
【００６４】
そして、複合装置１は、上述のようにして、サブＣＰＵ３１とメインＣＰＵ２１のＫｅｒｎｅｌが起動すると、各アプリケーションプログラムを起動・認証するが、このアプリケーションプログラムの起動・認証に関しても、プログラムのロード・起動と認証の処理を、図５に示すように、別々のＣＰＵ２１、３１で実行することで、アプリケーションプログラムの起動時間の短縮化を図っている。
【００６５】
すなわち、複合装置１は、図５に示すように、図４に示した起動制御処理を行なってメインＣＰＵ２１でＫｅｒｎｅｌが起動した後、initプロセスにより各アプリケーションプログラムを実行する際に、まず、メインＣＰＵ２１が、アプリケーションａをＲＡＭ（メモリ）４１に展開（圧縮されていた場合は解凍も行う）し、サブＣＰＵ３１へアプリケーションａの認証処理の実施を依頼する通知を行う（ステップＳ３０１）。
【００６６】
サブＣＰＵ３１は、認証開始依頼を待って、アプリケーションａのハッシュ値の計算と認証の処理を行い、認証が完了すると、完了通知をメインＣＰＵ２１へ送る（ステップＳ４０１）。
【００６７】
メインＣＰＵ２１は、アプリケーションａの認証完了通知を受け取ると、アプリケーションａを起動する（ステップＳ３０２）。
【００６８】
ここで、メインＣＰＵ２１及びサブＣＰＵ３１は、ステップＳ３０１及びステップＳ４０１の通知においては、図６に示すようなＲＯＭ２２に格納されているアプリケーションデータテーブル（プログラムリスト）Ｔｂ１を参照して行なう。すなわち、アプリケーションデータテーブルＴｂ１には、アプリケーション名、アプリケーションプログラムの先頭アドレス、サイズ及び認証状態が項目として設定されており、ＲＯＭ２２のメインＣＰＵ２１とサブＣＰＵ３１の両方から参照可能な領域に格納されている。アプリケーションデータテーブルＴｂ１の開始アドレスとサイズは、認証に使用するハッシュ値の計算に使用される。また、アプリケーションデータテーブルＴｂ１の認証状態は、「０」〜「２」の値をとり、「０」を初期値として、メインＣＰＵ２１が、ステップＳ３０１で認証開始依頼をする際に「１」に設定して、サブＣＰＵ３１が、認証完了すると、「２」に設定する。
【００６９】
サブＣＰＵ３１は、このアプリケーションデータテーブルＴｂ１の認証状態が、「１」になると、該当するアプリケーションプログラムのハッシュ値の計算と認証処理を行って、認証に成功すると、認証状態を、「２」に変更する。
【００７０】
メインＣＰＵ２１は、アプリケーションの解凍・ロードを行なった後、サブＣＰＵ３１へ認証処理を依頼する際に認証フラグを「１」に設定変更し、その後、サブＣＰＵ３１が、認証に成功して、認証フラグを「２」に設定変更すると、認証処理が完了するのを待って、アプリケーションの起動を行う。
【００７１】
複合装置１は、上記一連の処理を、図６のアプリケーションデータテーブルＴｂ１に登録されている全てのアプリケーションプログラムに対して実行する（ステップＳ３０１〜Ｓ３０６・・・、ステップＳ４０１〜Ｓ４０３・・・）。
【００７２】
また、このとき、メインＣＰＵ２１は、アプリケーションａの認証処理を依頼した後、認証完了通知が来るのを待たずに、アプリケーションｂの解凍・ロードの処理を実施し、処理の最後でアプリケーションａの認証処理が完了していることを確認して、アプリケーションａの起動を行うようにしてもよい。
【００７３】
このようにすると、アプリケーションの認証完了を待ち合わせる時間を有効に利用することができ、より一層処理効率を向上させて、処理時間を短縮することができる。
【００７４】
このように、本実施例の複合装置１は、それぞれ専用のプログラムを実行する順位付けられている複数のデバイスであるメインＣＰＵ２１とサブＣＰＵ３１を搭載し、前記各デバイスで実行されるプログラムに対して正当性の認証を行なう認証プログラムと該各デバイスの初期化を行なう初期化プログラムを格納するＲＯＭ（不揮発性記憶手段）２２と、前記デバイスで実行される前記プログラムに対する前記認証プログラムの処理結果に基づいて該プログラムの正当性を認証するＴＰＭ（認証手段）４２と、起動時に、最下位の前記デバイスに、該デバイスが実行する前記認証プログラムの正当性を前記ＴＰＭ４２を用いて認証させて、正当性が認証されると、該最下位の次に上位のデバイスが実行する前記初期化プログラムに対して該認証プログラムを用いて認証処理を行なわせて、ＴＰＭ４２が正当性を認証すると、上位の該デバイスに、該初期化プログラムを実行させるとともに、上位の該デバイスが該初期化プログラムを実行している間に、該最下位のデバイスに、該最下位のデバイスが実行するプログラムに対して該認証プログラムを用いて認証処理を行わせて、ＴＰＭ４２が正当性を認証すると、該プログラムを起動させるとともに、上位の該デバイスの該初期化プログラムによる初期化が完了すると、上位の該デバイスに、上位の該デバイスが実行するプログラムに対して該認証プログラムとＴＰＭ４２を用いて認証処理を行わせる処理を、複数の前記デバイスに対して前記順位に従って順次実行させるメインＣＰＵ２１とサブＣＰＵ３１で機能している起動制御手段と、を備えている。
【００７５】
したがって、認証プログラムと初期化プログラムを分けて異なるデバイスで実行して、デバイスの初期化を行なっている間にデバイス初期化後に実行するプログラムの認証を、認証プログラムを実行するデバイスで予め実行することで、デバイスの初期化プログラムの実行が完了した後に実行するプログラムの認証を待ち合わせる必要性を省くことができ、複数のデバイスで複数のプログラムを起動する場合における起動時間を短縮化することができる。
【００７６】
また、本実施例の複合装置１は、それぞれ専用のプログラムを実行する順位付けられている複数のデバイスであるメインＣＰＵ２１とサブＣＰＵ３１を搭載して、前記各デバイスで実行されるプログラムに対して正当性の認証を行なう認証プログラムと該各デバイスの初期化を行なう初期化プログラムをＲＯＭ２２に格納するプログラム格納制御処理ステップと、前記デバイスで実行される前記プログラムに対する前記認証プログラムの処理結果に基づいて該プログラムの正当性を認証する認証処理ステップと、起動時に、最下位の前記デバイスに、該デバイスが実行する前記認証プログラムの正当性を前記認証処理ステップで認証させて、正当性が認証されると、該最下位の次に上位のデバイスが実行する前記初期化プログラムに対して該認証プログラムを用いて認証処理を行なわせて、該認証処理ステップで正当性が認証されると、上位の該デバイスに、該初期化プログラムを実行させるとともに、上位の該デバイスが該初期化プログラムを実行している間に、該最下位のデバイスに、該最下位のデバイスが実行するプログラムに対して該認証プログラムを用いて認証処理を行わせて、該認証処理ステップで正当性を認証されると、該プログラムを起動させるとともに、上位の該デバイスの該初期化プログラムによる初期化が完了すると、上位の該デバイスに、上位の該デバイスが実行するプログラムに対して該認証プログラムと該認証処理ステップを用いて認証処理を行わせる処理を、複数の前記デバイスに対して前記順位に従って順次実行させる起動制御処理ステップと、を有する起動制御方法を実行している。
【００７７】
したがって、認証プログラムと初期化プログラムを分けて異なるデバイスで実行して、デバイスの初期化を行なっている間にデバイス初期化後に実行するプログラムの認証を、認証プログラムを実行するデバイスで予め実行することで、デバイスの初期化プログラムの実行が完了した後に実行するプログラムの認証を待ち合わせる必要性を省くことができ、複数のデバイスで複数のプログラムを起動する場合における起動時間を短縮化することができる。
【００７８】
さらに、本実施例の複合装置１は、コンピュータに、それぞれ専用のプログラムを実行する順位付けられている複数のデバイスであるメインＣＰＵ２１とサブＣＰＵ３１で実行されるプログラムに対して正当性の認証を行なう認証プログラムと該各デバイスの初期化を行なう初期化プログラムをＲＯＭ２２に格納するプログラム格納制御処理と、前記デバイスで実行される前記プログラムに対する前記認証プログラムの処理結果に基づいて該プログラムの正当性を認証する認証処理と、起動時に、最下位の前記デバイスに、該デバイスが実行する前記認証プログラムの正当性を前記認証処理で認証させて、正当性が認証されると、該最下位の次に上位のデバイスが実行する前記初期化プログラムに対して該認証プログラムを用いて認証処理を行なわせて、該認証処理で正当性が認証されると、上位の該デバイスに、該初期化プログラムを実行させるとともに、上位の該デバイスが該初期化プログラムを実行している間に、該最下位のデバイスに、該最下位のデバイスが実行するプログラムに対して該認証プログラムを用いて認証処理を行わせて、該認証処理で正当性を認証されると、該プログラムを起動させるとともに、上位の該デバイスの該初期化プログラムによる初期化が完了すると、上位の該デバイスに、上位の該デバイスが実行するプログラムに対して該認証プログラムと該認証処理を用いて認証処理を行わせる処理を、複数の前記デバイスに対して前記順位に従って順次実行させる起動制御処理と、を実行させる起動制御プログラムを搭載している。
【００７９】
したがって、認証プログラムと初期化プログラムを分けて異なるデバイスで実行して、デバイスの初期化を行なっている間にデバイス初期化後に実行するプログラムの認証を、認証プログラムを実行するデバイスで予め実行することで、デバイスの初期化プログラムの実行が完了した後に実行するプログラムの認証を待ち合わせる必要性を省くことができ、複数のデバイスで複数のプログラムを起動する場合における起動時間を短縮化することができる。
【００８０】
また、本実施例の複合装置１は、ＲＯＭ２２が、前記認証プログラムと前記初期化プログラムを連続した領域に格納しており、前記デバイスであるメインＣＰＵ２１とサブＣＰＵ３１が、ＲＯＭ２２から前記認証プログラムと前記初期化プログラムを順次読み出して、前記正当性の認証及び前記初期化を実行している。
【００８１】
したがって、認証プログラムと初期化プログラムを連続して読み出して実行してハッシュ値計算までを纏めて実行することができ、起動時間をより一層短縮化することができる。
【００８２】
さらに、本実施例の複合装置１は、前記順位の連続するデバイスの実行するプログラム間で通信を行うＲＡＭ（通信手段）４１を備え、ＲＡＭ４１が、上位の前記デバイスであるメインＣＰＵ２１において前記初期化プログラムの実行が開始された後に、下位の前記デバイスであるサブＣＰＵ３１においてメインＣＰＵ２１が実行するプログラムの正当性が認証されたことを、該プログラムの認証を行った前記認証プログラムから該初期化プログラムへ通信している。すなわち、メインＣＰＵ２１とサブＣＰＵ３１の双方が参照可能なメモリ領域をＲＡＭ４１に通信手段として設け、該メモリ領域に通知用のフラグを設定、設定変更することで、プログラム間の通信を行なっている。
【００８３】
したがって、初期化プログラムの実行後に実行するプログラムの起動開始タイミングを、認証が完了した後に待ち合わせることができ、起動時間をより一層短縮化することができる。
【００８４】
また、本実施例の複合装置１は、前記デバイスとして、順位が上位であるメインＣＰＵ２１と下位であるサブＣＰＵ３１を備え、メインＣＰＵ２１の実行する複数のプログラムのプログラムリストであるアプリケーションデータテーブルＴｂ１を記憶するＲＯＭ（プログラムリスト記憶手段）２２と、アプリケーションデータテーブルＴｂ１に登録されている前記プログラムを保管するＲＯＭ（プログラム記憶手段）２２と、を備え、メインＣＰＵ２１及びサブＣＰＵ３１が、該メインＣＰＵ２１が、前記初期化が完了すると、アプリケーションデータテーブルＴｂ１に登録されているプログラムを所定順序でＲＯＭ２２から読み出して該プログラムの認証依頼をサブＣＰＵ３１に行ない、サブＣＰＵ３１が、前記認証プログラムを実行してＴＰＭ４２に該プログラムの正当性を認証させて、認証結果をメインＣＰＵ２１に通知し、メインＣＰＵ２１が、該プログラムの正当性が認証されると、アプリケーションデータテーブルＴｂ１に登録されている次のプログラムをＲＯＭ２２から読み出して、該プログラムの認証依頼をサブＣＰＵ３１に行なうプログラム認証処理を該プログラムリストに登録されている全てのプログラムに対して順次行っている。
【００８５】
したがって、サブＣＰＵ３１が待ち状態となることなく、各プログラムを起動する段階で認証処理が完了した状態とすることができ、起動時間をより一層短縮化することができる。
【００８６】
さらに、本実施例の複合装置１は、サブＣＰＵ３１の実行する前記認証プログラムが、前記通信手段としてのＲＡＭ４１を介してメインＣＰＵ２１の実行するプログラムであるとして通知された該プログラムの認証処理を行い、メインＣＰＵ２１の実行する前記プログラムが、該通信手段としてのＲＡＭ４１を介して前記認証プログラムから認証結果が通知されるのを待ち合わせている。
【００８７】
したがって、メインＣＰＵ２１で実行するプログラムが、アプリケーションプログラムを起動する前に、認証処理が完了したことを確認することができ、認証の完了していないプログラムを実行することを防止して処理の適正化を図りつつ、起動時間を短縮化することができる。
【００８８】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００８９】
１  複合装置
２  エンジン
３  コントローラボード
１１  プロッタ
１２  スキャナ
２０  メインシステム部
２１  メインＣＰＵ
２２  ＲＯＭ
２３  画像処理部
２４  操作部
２５  ハードディスク
３０  サブシステム部
３１  サブＣＰＵ
３２  サブＲＡＭ
３３  ネットワーク制御部
４１  ＲＡＭ
４２  ＴＰＭ
４３  電源制御部
４４  バス
１００  ソフトウェア群
１１０  アプリケーション
１１１  コピーアプリ
１１２  プリンタアプリ
１１３  スキャナアプリ
１１４  ファックスアプリ
１２０  プラットホーム
１２１  エンジン・コントロール・サービス（ＥＣＳ）
１２２  メモリ・コントロール・サービス（ＭＣＳ）
１２３  オペレーションパネル・コントロール・サービス（ＯＣＳ）
１２４  ファックス・コントロール・サービス（ＦＣＳ）
１２５  ネットワーク・コントロール・サービス（ＮＣＳ）
１２６  システム・リソース・マネージャ（ＳＲＭ）
１２７  システム・コントロール・サービス（ＳＣＳ）
１２８  汎用オペレーティングシステム
１２９  ＢＩＯＳ／モニタプログラム
１３０  ＡＰＩ
ＮＷ  ネットワーク
Ｇｓ  外部装置
Ｔｂ１  アプリケーションデータテーブル
【先行技術文献】
【特許文献】
【００９０】
【特許文献１】特開２００５−１４８９３４号公報
【図１】
2014021953.tif 000003
【図２】
2014021953.tif 000004
【図３】
2014021953.tif 000005
【図４】
2014021953.tif 000006
【図５】
2014021953.tif 000007
【図６】
2014021953.tif 000008
【図７】
2014021953.tif 000009