(57)【要約】【課題】２つのＣＰＵを備える情報処理装置の起動時に、サブＣＰＵによる制御対象のデバイスの準備動作の完了が、改ざん検知機能に起因して遅くなることを防止する。【解決手段】メインＣＰＵは、ＭＦＰ（情報処理装置）が起動すると、不揮発性メモリに格納されたサブＣＰＵファーム（第２制御プログラム）及びサブＣＰＵ起動プログラムの正当性を検証する（Ｓ４０２）。メインＣＰＵは、サブＣＰＵ起動プログラムを実行してサブＣＰＵ２４を起動した後に（Ｓ４０４）、不揮発性メモリに格納されたメインＣＰＵファーム（第１制御プログラム）の正当性を検証する（Ｓ４０５）。メインＣＰＵは、メインＣＰＵファームの正当性を確認すると、当該メインＣＰＵファームの実行を開始する（Ｓ４０７）。【選択図】図４
2020042589.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
第１制御手段と、
制御対象のデバイスを制御する第２制御手段と、
前記第１制御手段によって実行される第１制御プログラム、前記第２制御手段によって実行される第２制御プログラム、及び前記第２制御手段を起動するための起動プログラムが格納された不揮発性の記憶手段と、を備え、
前記第１制御手段は、前記情報処理装置が起動すると、前記記憶手段に格納された前記第２制御プログラム及び前記起動プログラムの正当性を検証し、前記起動プログラムを実行して前記第２制御手段を起動した後に、前記記憶手段に格納された前記第１制御プログラムの正当性を検証する
ことを特徴とする情報処理装置。
【請求項２】
前記第１制御手段は、前記第２制御プログラム及び前記起動プログラムが正当であることを確認すると、前記起動プログラムを実行し、前記第１制御プログラムが正当であることを確認すると、前記第１制御プログラムの実行を開始する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２制御手段は、前記第１制御手段によって起動されると、前記第２制御プログラムの実行を開始して、前記デバイスに準備動作を開始させる
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１制御手段は、前記起動プログラムを実行することによって、前記記憶手段から前記第２制御プログラムを読み出して前記第２制御手段に対応するメモリに転送し、前記第２制御手段のリセット状態を解除する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２制御手段は、前記第１制御手段によって前記リセット状態が解除されると、前記メモリに格納された前記第２制御プログラムの実行を開始する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記第１制御手段は、前記記憶手段に格納された前記第１制御プログラム、前記第２制御プログラム、及び前記起動プログラムのそれぞれについて、各プログラムが正当ではないことを確認すると、プログラムの改ざんの検知を報知する
ことを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記起動プログラムは、前記第１制御プログラムの一部として前記記憶手段に格納されている
ことを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記記憶手段に格納された前記第１制御プログラム、前記第２制御プログラム及び前記起動プログラムには、それぞれ、プログラムの正当性の検証に用いられる電子署名情報が付与されている
ことを特徴とする請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
情報処理装置であって、
第１制御手段と、
制御対象のデバイスを制御する第２制御手段と、
前記第１制御手段によって実行される第１制御プログラム、前記第２制御手段によって実行される第２制御プログラム、及び前記第２制御手段を起動するための起動プログラムが格納された不揮発性の記憶手段と、を備え、
前記第１制御手段は、前記情報処理装置が起動すると、前記記憶手段に格納された前記第２制御プログラムの正当性を検証し、前記起動プログラムを実行して前記第２制御手段を起動した後に、前記記憶手段に格納された前記第１制御プログラムの正当性を検証する
ことを特徴とする情報処理装置。
【請求項１０】
情報処理装置であって、
第１制御手段と、
制御対象のデバイスを制御する第２制御手段と、
前記第１制御手段によって実行される第１制御プログラム、前記第２制御手段によって実行される第２制御プログラム、及び前記第２制御手段を起動するための起動プログラムが格納された不揮発性の記憶手段と、を備え、
前記第１制御手段は、前記情報処理装置が起動すると、前記記憶手段に格納された前記起動プログラムの正当性を検証し、前記起動プログラムを実行して前記第２制御手段を起動した後に、前記記憶手段に格納された前記第１制御プログラムの正当性を検証する
ことを特徴とする情報処理装置。
【請求項１１】
第１制御手段と、制御対象のデバイスを制御する第２制御手段と、前記第１制御手段によって実行される第１制御プログラム、前記第２制御手段によって実行される第２制御プログラム、及び前記第２制御手段を起動するための起動プログラムが格納された不揮発性の記憶手段と、を備える情報処理装置の制御方法であって、
前記第１制御手段が、前記情報処理装置が起動すると、前記記憶手段に格納された前記第２制御プログラム及び前記起動プログラムの正当性を検証する工程と、
前記第１制御手段が、前記起動プログラムを実行して前記第２制御手段を起動した後に、前記記憶手段に格納された前記第１制御プログラムの正当性を検証する工程と、
を含むことを特徴とする情報処理装置の制御方法。
【請求項１２】
請求項１１に記載の情報処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
近年、情報処理装置では、システムの起動開始の時点で、当該システムに含まれるソフトウェアの改ざんの有無を調べ、改ざんされている可能性のあるソフトウェアを動作させない仕組み（改ざん検知機能）が導入されつつある。一般的には、このような改ざん検知機能を有するシステムでは、改ざん検知機能を有しないシステムに比べて、改ざんの有無の判定に要する時間分、システムの起動時間が長くなる傾向にある。
【０００３】
また、画像形成装置（画像処理装置）等の情報処理装置においては、メインＣＰＵ及びサブＣＰＵの２つのＣＰＵで構成されたコントローラを備えたものがある（例えば、特許文献１を参照）。このような構成では、メインＣＰＵとサブＣＰＵは、一般に、それぞれ異なる処理を担当する。例えば、サブＣＰＵが、スキャナ装置又はプリンタ装置等のデバイスの制御を担当し、スキャン又はプリント処理を各デバイスに実行させる。この場合、画像形成装置の起動時において、スキャナ装置及びプリンタ装置の準備動作は、サブＣＰＵの起動後にサブＣＰＵとのネゴシエーションが実行されることによって完了する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２１９５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の改ざん検知機能によれば、ファームウェアの改ざんを検知可能になる一方で、画像処理装置のシステム全体の起動時間が長くなる。起動時間が長くなることによって、サブＣＰＵとプリンタ装置との間のネゴシエーションが開始されるタイミングが遅れ、プリンタ装置の準備動作が完了するまでの時間が遅くなる。その結果、画像処理装置における騒音及び無駄な電力浪費が発生し、また、プリンタエンジンの寿命が短くなる可能性がある。
【０００６】
本発明は、上述の課題に鑑みてなされたものである。本発明は、２つのＣＰＵを備える情報処理装置の起動時に、サブＣＰＵによる制御対象のデバイスの準備動作の完了が、改ざん検知機能に起因して遅くなることを防止する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る情報処理装置は、第１制御手段と、制御対象のデバイスを制御する第２制御手段と、前記第１制御手段によって実行される第１制御プログラム、前記第２制御手段によって実行される第２制御プログラム、及び前記第２制御手段を起動するための起動プログラムが格納された不揮発性の記憶手段と、を備え、前記第１制御手段は、前記情報処理装置が起動すると、前記記憶手段に格納された前記第２制御プログラム及び前記起動プログラムの正当性を検証し、前記起動プログラムを実行して前記第２制御手段を起動した後に、前記記憶手段に格納された前記第１制御プログラムの正当性を検証することを特徴とする。
【０００８】
本発明の他の一態様に係る情報処理装置は、第１制御手段と、制御対象のデバイスを制御する第２制御手段と、前記第１制御手段によって実行される第１制御プログラム、前記第２制御手段によって実行される第２制御プログラム、及び前記第２制御手段を起動するための起動プログラムが格納された不揮発性の記憶手段と、を備え、前記第１制御手段は、前記情報処理装置が起動すると、前記記憶手段に格納された前記第２制御プログラムの正当性を検証し、前記起動プログラムを実行して前記第２制御手段を起動した後に、前記記憶手段に格納された前記第１制御プログラムの正当性を検証することを特徴とする。
【０００９】
また、本発明の他の一態様に係る情報処理装置は、第１制御手段と、制御対象のデバイスを制御する第２制御手段と、前記第１制御手段によって実行される第１制御プログラム、前記第２制御手段によって実行される第２制御プログラム、及び前記第２制御手段を起動するための起動プログラムが格納された不揮発性の記憶手段と、を備え、前記第１制御手段は、前記情報処理装置が起動すると、前記記憶手段に格納された前記起動プログラムの正当性を検証し、前記起動プログラムを実行して前記第２制御手段を起動した後に、前記記憶手段に格納された前記第１制御プログラムの正当性を検証することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、２つのＣＰＵを備える情報処理装置の起動時に、サブＣＰＵによる制御対象のデバイスの準備動作の完了が、改ざん検知機能に起因して遅くなることを防止できる。
【図面の簡単な説明】
【００１１】
【図１】ＭＦＰのハードウェア構成例を示すブロック図。
【図２】不揮発性メモリ内に保存されているプログラムの例を示す図。
【図３】ＭＦＰの起動処理の手順を示すフローチャート。
【図４】メインＣＰＵの起動制御の手順を示すフローチャート。
【図５】サブＣＰＵの起動制御の手順を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１３】
＜画像処理装置の構成＞
図１は、本発明の実施形態に係る画像処理装置である複合機（ＭＦＰ）のハードウェア構成例を示すブロック図である。本実施形態は、情報処理装置の一例として、メインＣＰＵ（第１ＣＰＵ）及びサブＣＰＵ（第２ＣＰＵ）を備え、画像処理を行う画像処理装置であるＭＦＰに本発明を適用した例について説明する。なお、本発明は、メインＣＰＵ及びサブＣＰＵを備える情報処理装置に適用可能であり、例えば、印刷装置、読取装置、複写機、及びファクシミリ装置等にも適用可能である。
【００１４】
図１に示すように、本実施形態のＭＦＰ１００は、メインコントローラ１、サブコントローラ２、ハードディスク装置３、電源制御部５、プリンタ装置４１、及びスキャナ装置４２を備える。メインコントローラ１は、いわゆる汎用ＣＰＵ（Central Processing Unit）システムで構成される。メインコントローラ１は、メインＣＰＵ１５、ブートＲＯＭ（Read Only Memory）１１、不揮発性メモリ１２、メモリ１３、ディスクコントローラ１４、及びバスブリッジ１６を備える。
【００１５】
メインＣＰＵ１５は、メインコントローラ１の全体を制御する。ブートＲＯＭ１１には、初期プログラム１１１が格納されている。初期プログラム１１１は、ＭＦＰ１００の起動時にメインＣＰＵ１５によって実行される。不揮発性メモリ１２は、電源から電力が供給されていない状態でも記憶内容を保持できる不揮発性記憶装置である。メモリ１３は、メインＣＰＵ１５に対応する揮発性メモリであり、メインＣＰＵ１５による作業領域として使用される。メインコントローラ１にはハードディスク装置３が接続されており、ハードディスク装置３は、ディスクコントローラ１４に対して接続されている。
【００１６】
サブコントローラ２は、メインコントローラ１よりも小規模な汎用ＣＰＵシステムと、画像処理ハードウェアとで構成される。サブコントローラ２は、サブＣＰＵ２４、メモリ２１、画像処理部２２、及びバスブリッジ２３を備える。なお、メインコントローラ１とサブコントローラ２は、バスブリッジ１６及びバスブリッジ２３によって接続されている。
【００１７】
サブＣＰＵ２４は、サブコントローラ２の全体を制御する。メモリ２１は、サブＣＰＵ２４に対応する揮発性メモリであり、サブＣＰＵ２４による作業領域として使用される。サブコントローラ２にはプリンタ装置４１及びスキャナ装置４２が接続されており、プリンタ装置４１及びスキャナ装置４２は、画像処理部２２に対して接続されている。本実施形態では、サブＣＰＵ２４は、制御対象のデバイスとしてプリンタ装置４１及びスキャナ装置４２を制御する。
【００１８】
ハードディスク装置３は、画像データ等の各種データ、及び各種制御プログラムが格納されている。プリンタ装置４１は、サブコントローラ２から出力される画像データに基づいて、シートに画像を印刷（出力）する。なお、シートは、記録紙、記録材、記録媒体、用紙、転写材、転写紙等と称されてもよい。スキャナ装置４２は、原稿から光学的に画像を読み取って当該画像をデジタル画像に変換し、画像データとしてサブコントローラ２へ出力する。電源制御部５は、図１に示す各デバイスに対して電力を供給し、ＭＦＰ１００の電力状態を制御している。
【００１９】
なお、本実施形態において、メインＣＰＵ１５は、第１制御手段の一例として機能し、サブＣＰＵ２４は、第２制御手段の一例として機能する。
【００２０】
＜不揮発性メモリ内のプログラム＞
図２は、不揮発性メモリ１２内に保存されているプログラムを模式的に示す図である。不揮発性メモリ１２は、ＯＳ（Operating System）２０１、メインＣＰＵファームウェア２０２、及びサブＣＰＵファームウェア２０３等のプログラムを格納している。メインＣＰＵファームウェア２０２は、サブＣＰＵ起動プログラム２０４を含む。即ち、サブＣＰＵ起動プログラム２０４は、メインＣＰＵファームウェア２０２の一部として不揮発性メモリ１２に格納されている。なお、以下では「ファームウェア」を「ファーム」と略記する場合がある。
【００２１】
メインＣＰＵファーム２０２は、メインＣＰＵ１５によって実行される制御プログラムである。サブＣＰＵファーム２０３は、サブＣＰＵ２４によって実行される制御プログラムである。サブＣＰＵ起動プログラム２０４は、後述する検証処理により正当性が確認されたサブＣＰＵファーム２０３をメモリ２１へ転送し、その後、サブＣＰＵ２４のリセット状態の解除を行うことにより、サブＣＰＵ２４を起動するためのプログラムである。なお、前述した各プログラムには、予め導出された電子署名情報が付与されている。この電子署名情報は、後述する検証処理におけるプログラムの正当性（即ち、プログラムが正当であること）の検証（確認）に用いられる。
【００２２】
このように、不揮発性メモリ１２には、メインＣＰＵ１５によって実行されるメインＣＰＵファーム２０２、サブＣＰＵ２４によって実行されるサブＣＰＵファーム２０３、及びサブＣＰＵ２４を起動するためのサブＣＰＵ起動プログラムが格納されている。本実施形態では、メインＣＰＵファーム２０２は第１制御プログラムの一例であり、サブＣＰＵファーム２０３は第２制御プログラムの一例である。
【００２３】
＜ＭＦＰの起動処理＞
図３は、ＭＦＰ１００の起動処理の手順を示すフローチャートである。なお、図３及び図４を参照して説明する検証処理は、例えば、検証対象のプログラムに付与された電子署名情報に対して、公開鍵による署名検証処理を行う処理によって実現されるが、他の手法が用いて実現されてもよい。また、本実施形態では、検証処理の手法として、各プログラムの検証処理に同じ手法を用いているが、異なるプログラムの検証処理にそれぞれ異なる手法が用いられてもよい。
【００２４】
ＭＦＰ１００が起動すると、Ｓ３０１で、メインＣＰＵ１５は、ブートＲＯＭ１１内に格納された初期プログラム１１１の実行を開始する。初期プログラム１１１は、不揮発性メモリ１２内に格納されているＯＳ２０１の正当性を確認するための検証処理を行い、ＯＳ２０１を起動するためのプログラムである。メインＣＰＵ１５は、初期プログラム１１１の実行により、ＯＳ２０１の検証処理を実行する。メインＣＰＵ１５は、Ｓ３０２で、ＯＳ２０１の正当性（即ち、ＯＳ２０１が正当であること）が確認されたか否かを判定する。メインＣＰＵ１５は、ＯＳ２０１の正当性が確認された（即ち、ＯＳ２０１が正当である）場合にはＳ３０３へ処理を進め、正当性が確認されなかった（即ち、ＯＳ２０１が正当ではない）場合にはＳ３０４へ処理を進める。
【００２５】
ＯＳ２０１の正当性が確認された場合、Ｓ３０３で、メインＣＰＵ１５は、後述する図４に示す手順で、メインＣＰＵ１５の起動制御を行う。この起動制御では、メインＣＰＵ１５は、ＯＳ２０１を不揮発性メモリ１２から読み出して起動することにより、ＯＳ２０１による処理を実行する。具体的には、メインＣＰＵ１５は、不揮発性メモリ１２に格納されている各ファーム（メインＣＰＵファーム２０２、サブＣＰＵ起動プログラム２０４、及びサブＣＰＵファーム２０３）の検証処理を行う。メインＣＰＵ１５は、各ファームの正当性が確認されると、各ファームの起動を開始するための処理を行う。各ファームの起動が完了すると、メインＣＰＵ１５は、図３の手順による処理を終了する。
【００２６】
一方、ＯＳ２０１の正当性が確認されなかった場合、Ｓ３０４で、メインＣＰＵ１５は、ＯＳ２０１の改ざんの検知を報知する。例えば、メインＣＰＵ１５は、ＭＦＰ１００の操作部（表示部）で起動不良に関するエラー通知を行い、ＭＦＰ１００の起動を停止することで、図３の手順による処理を終了する。
【００２７】
＜メインＣＰＵの起動制御＞
図４は、メインＣＰＵ１５起動制御の手順を示すフローチャートである。まずＳ４０１で、メインＣＰＵ１５は、ＯＳ２０１を起動する。ＯＳ２０１が起動すると、Ｓ４０２で、メインＣＰＵ１５は、不揮発性メモリ１２に格納されているサブＣＰＵファーム２０３及びサブＣＰＵ起動プログラム２０４の検証処理を行う。これにより、メインＣＰＵ１５は、サブＣＰＵファーム２０３及びサブＣＰＵ起動プログラム２０４の改ざんの有無を判定する。Ｓ４０３で、メインＣＰＵ１５は、Ｓ４０２の検証処理の結果、サブＣＰＵファーム２０３及びサブＣＰＵ起動プログラム２０４の正当性が確認されたか否かを判定する。メインＣＰＵ１５は、正当性が確認された場合にはＳ４０４へ処理を進め、正当性が確認されなかった場合にはＳ４０９へ処理を進める。
【００２８】
メインＣＰＵ１５は、サブＣＰＵファーム２０３及びサブＣＰＵ起動プログラム２０４が正当であることを確認すると、Ｓ４０４で、サブＣＰＵ起動プログラム２０４を実行する。メインＣＰＵ１５は、サブＣＰＵ起動プログラム２０４を実行することによって、サブコントローラ２へのサブＣＰＵファーム２０３の転送、及びサブＣＰＵ２４のリセット状態の解除を行う。即ち、メインＣＰＵ１５は、サブＣＰＵファーム２０３を、バスブリッジ１６を介してサブコントローラ２へ転送し、メモリ２１の所定の記憶領域にロードする。更に、メインＣＰＵ１５は、サブＣＰＵ２４のリセット状態の解除を行うことにより、サブＣＰＵ２４を起動する。これにより、サブＣＰＵ２４は、後述する図５の手順による処理（サブＣＰＵ２４の起動制御）の実行を開始する。
【００２９】
Ｓ４０４の処理が完了すると、Ｓ４０５で、メインＣＰＵ１５は、不揮発性メモリ１２に格納されているメインＣＰＵファーム２０２の検証処理を行う。これにより、メインＣＰＵ１５は、メインＣＰＵファーム２０２の改ざんの有無を判定する。Ｓ４０６で、メインＣＰＵ１５は、Ｓ４０５の検証処理の結果、メインＣＰＵファーム２０２の正当性が確認されたか否かを判定する。メインＣＰＵ１５は、正当性が確認された場合にはＳ４０７へ処理を進め、正当性が確認されなかった場合にはＳ４０９へ処理を進める。
【００３０】
Ｓ４０７で、メインＣＰＵ１５は、メインＣＰＵファーム２０２が正当であることを確認すると、メインＣＰＵファーム２０２の実行を開始する。メインＣＰＵファーム２０２を、メモリ１３の所定の記憶領域にロードし、メインＣＰＵファーム２０２の実行を開始する。メインＣＰＵ１５がメインＣＰＵファーム２０２を実行することによって、Ｓ４０８で、メインコントローラ１内の各デバイスの初期化が実行される。以上により、メインＣＰＵ１５は、Ｓ３０３の処理を終了する。
【００３１】
一方、メインＣＰＵファーム２０２、サブＣＰＵファーム２０３及びサブＣＰＵ起動プログラム２０４のいずれかの正当性が確認されなかった場合、Ｓ４０９で、メインＣＰＵ１５は、プログラムの改ざんの検知を報知する。例えば、メインＣＰＵ１５は、ＭＦＰ１００の操作部（表示部）で起動不良に関するエラー通知を行い、ＭＦＰ１００の起動を停止することで、図３及び図４の手順による処理を終了する。
【００３２】
＜サブＣＰＵの起動制御＞
図５は、サブＣＰＵ２４の起動制御の手順を示すフローチャートである。Ｓ４０４の処理によってサブＣＰＵ２４のリセット状態が解除されると、サブＣＰＵ２４は、図５の手順による処理を開始する。なお、本実施形態では、後述するネゴシエーションの実行対象としてプリンタ装置４１を例に説明しているが、スキャナ装置４２がネゴシエーションの実行対象であってもよい。また、プリンタ装置４１とのネゴシエーションとスキャナ装置４２とのネゴシエーションとが同時に実行されてもよいし、順に実行されてもよい。
【００３３】
まずＳ５０１で、サブＣＰＵ２４は、メインＣＰＵ１５によってリセット状態が解除されると、メモリ２１に格納されているサブＣＰＵファーム２０３の実行を開始する。次にＳ５０２で、サブＣＰＵ２４は、サブコントローラ２内の各デバイスの初期化を行う。各デバイスの初期化が完了すると、Ｓ５０３で、サブＣＰＵ２４は、画像処理部２２を介してプリンタ装置４１とのネゴシエーションを実行する。このように、サブＣＰＵ２４は、メインＣＰＵ１５によって起動されると、サブＣＰＵファーム２０３の実行を開始して、制御対象のデバイス（プリンタ装置４１）に準備動作を開始させる。
【００３４】
その後Ｓ５０４で、サブＣＰＵ２４は、プリンタ装置４１の準備（即ち、ジョブが実行可能になるための準備）が完了したか否かを判定する。Ｓ５０３におけるネゴシエーションの実行後、プリンタ装置４１は、各種の調整動作を実行する。このため、ジョブの実行が可能になるためには、調整動作の実行の完了を待つ必要がある。サブＣＰＵ２４は、画像処理部２２を介して、プリンタ装置４１の準備が完了したか否かを確認し、準備が完了するまでＳ５０４の判定処理を繰り返す。サブＣＰＵ２４は、プリンタ装置４１の準備が完了すると、図５の手順による処理を終了する。
【００３５】
以上説明したように、本実施形態のＭＦＰ１００において、メインＣＰＵ１５は、ＭＦＰ１００が起動すると、不揮発性メモリ１２に格納されたサブＣＰＵファーム（第２制御プログラム）及びサブＣＰＵ起動プログラムの正当性を検証する。メインＣＰＵ１５は、更に、サブＣＰＵ起動プログラムを実行してサブＣＰＵ２４を起動した後に、不揮発性メモリ１２に格納されたメインＣＰＵファーム（第１制御プログラム）の正当性を検証する。
【００３６】
このように、メインＣＰＵ１５は、メインＣＰＵファームの正当性の検証に先行して、サブＣＰＵファーム及びサブＣＰＵ起動プログラムの正当性を検証して、サブＣＰＵ２４を先に起動する。これにより、サブＣＰＵ２４は、メインＣＰＵファームの正当性の検証が完了するのを待つ必要なく、サブＣＰＵファームの実行を開始でき、制御対象のデバイス（プリンタ装置４１及びスキャナ装置４２）に準備動作を開始させることができる。即ち、改ざん検知機能により、メインＣＰＵファームの正当性の検証が完了するまで、デバイスの準備動作の開始を不必要に待たされることがない。したがって、本実施形態によれば、ＭＦＰ１００の起動時に、サブＣＰＵ２４による制御対象のデバイスの準備動作の完了が、改ざん検知機能に起因して遅くなることを防止できる。
【００３７】
なお、上述の実施形態は、サブＣＰＵファーム又はサブＣＰＵ起動プログラムの正当性を検証しない場合にも適用可能である。例えば、サブＣＰＵファーム又はサブＣＰＵ起動プログラムが、プログラムを一度のみ書き込み可能なワンタイムメモリ領域（ＯＴＰ領域）に格納されている場合、当該メモリ領域に格納されているプログラムの検証処理を行わなくてもよい。
【００３８】
具体的には、サブＣＰＵ起動プログラムの検証処理を行わない場合、メインＣＰＵ１５は、Ｓ４０２で、メインＣＰＵファームの正当性の検証に先行して、サブＣＰＵファームの検証処理を行う。一方、サブＣＰＵファームの検証処理を行わない場合、メインＣＰＵ１５は、Ｓ４０２で、メインＣＰＵファームの正当性の検証に先行して、サブＣＰＵ起動プログラムの検証処理を行う。更に、メインＣＰＵ１５は、サブＣＰＵ起動プログラムを実行してサブＣＰＵ２４を起動した後に（Ｓ４０４）、不揮発性メモリ１２に格納されたメインＣＰＵファームの正当性を検証する（Ｓ４０５）。これにより、上述の実施形態と同様、サブＣＰＵ２４は、メインＣＰＵファームの正当性の検証が完了するのを待つ必要なく、サブＣＰＵファームの実行を開始でき、制御対象のデバイスに準備動作を開始させることができる。したがって、ＭＦＰ１００の起動時に、サブＣＰＵ２４による制御対象のデバイスの準備動作の完了が、改ざん検知機能に起因して遅くなることを防止できる。
【００３９】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４０】
１００：ＭＦＰ、１：メインコントローラ、２：サブコントローラ、１２：不揮発性メモリ、１５：メインＣＰＵ、２２：画像処理部、２４：サブＣＰＵ、４１：プリンタ装置、４２：スキャナ装置
【図１】
2020042589.tif 000003
【図２】
2020042589.tif 000004
【図３】
2020042589.tif 000005
【図４】
2020042589.tif 000006
【図５】
2020042589.tif 000007