(57)【要約】      （修正有）【課題】プロセッサのリセット解除を適切に制御する情報処理装置を提供する。【解決手段】情報処理装置（ＭＦＰ）１の検知部１１６は、サブＣＰＵから出力されるＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７を所定期間監視する。その監視期間においてはＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号が非アクティブ状態を維持する場合（正常なレベル遷移）には、スイッチ回路をオフとする。ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号が所定期間内にアクティブ状態となった場合（異常なレベル遷移）でも、そのレベル遷移に同期してスイッチ回路がオンとなり、ＲＥＳＥＴ＿ＲＥＳＥＡＳＥ信号を強制的に非アクティブ状態にドライブ（非アクティブ化）する。【効果】サブＣＰＵ１１５の故障、実装上の不具合によってリセット解除信号が出力されたとしても、ブートコードの検証を待たずにメインＣＰＵ１０１が起動してしまうことを防止可能となる。【選択図】図１
2020042424.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサのリセット状態を解除するためのリセット解除信号を入力する入力手段と、
前記入力手段により入力された前記リセット解除信号が、所定の期間においてアクティブ状態となると、前記リセット解除信号を非アクティブ状態とする非アクティブ化手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記リセット解除信号のレベルがハイに変化してアクティブ状態となると、前記非アクティブ化手段は、前記リセット解除信号のレベルをローにすることで、前記リセット解除信号を非アクティブ状態とする、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記非アクティブ化手段は、グランドに接続されたスイッチ回路を含み、前記リセット解除信号のレベルをグランドレベルとすることにより、前記リセット解除信号を非アクティブ状態とすることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記プロセッサは、初期化のためのコードを記憶するメモリと接続され、前記リセット解除信号がアクティブ状態となると、前記プロセッサは、前記メモリからの前記コードの読み出しを開始することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記コードの正常性を検証する検証手段、をさらに備え、
前記入力手段は、前記検証手段から前記リセット解除信号を入力する、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記所定の期間は、前記検証手段による検証の開始前であることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記検証手段が前記コードの正常性を検証するための信号を入力する第２入力手段と、
前記第２入力手段により入力された前記コードの正常性を検証するための信号のレベルに基づいて、前記検証手段による検証の開始を検出する検出手段と、をさらに備え、
前記非アクティブ化手段は、前記検出手段による検出の結果に基づいて、前記リセット解除信号が前記アクティブ状態となると前記リセット解除信号を前記非アクティブ状態とする、
ことを特徴とする請求項５又は６に記載の情報処理装置。
【請求項８】
前記所定の期間は、前記情報処理装置の起動後の所定期間であることを特徴とする請求項５又は６に記載の情報処理装置。
【請求項９】
前記非アクティブ化手段により前記リセット解除信号が前記非アクティブ状態とされると、前記検証手段による前記コードの正常性の検証は行われないことを特徴とする請求項５乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記非アクティブ化手段により前記リセット解除信号が前記非アクティブ状態とされると、前記情報処理装置への電源の供給を遮断する電源制御手段、をさらに備えることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記検証手段は、前記プロセッサと異なる他のプロセッサであることを特徴とする請求項５乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記入力手段および前記非アクティブ化手段は、前記プロセッサの外部に構成されていることを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記情報処理装置は、画像を形成する画像形成手段を備える画像形成装置であることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
情報処理装置において実行される制御方法であって、
プロセッサのリセット状態を解除するためのリセット解除信号を入力する入力工程と、
前記入力工程における監視の結果、所定の期間において前記リセット解除信号がアクティブ状態となると、前記リセット解除信号を非アクティブ状態とする非アクティブ工程と、
を有することを特徴とする制御方法。
【請求項１５】
請求項１乃至１３のいずれか１項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサの状態を制御する情報処理装置および制御方法に関する。
【背景技術】
【０００２】
従来の画像処理装置におけるブートコードの改竄検知の方法として、メインＣＰＵが実行するブートコードをメインＣＰＵが起動する前にサブＣＰＵが読み出し、サブＣＰＵが、読み出したブートコードが改竄されていないかを検証する方法が知られている。
【０００３】
サブＣＰＵがブートコードの改竄を検知した場合、メインＣＰＵを起動させないために、メインＣＰＵに入力するリセット信号をサブＣＰＵが制御することで、メインＣＰＵはリセット状態とされる。特許文献１には、メインＣＰＵのリセット端子に所定形態のパルス信号が入力されると、それをリセット解除信号と判定し、それ以外のリセット端子電圧波形が入力されると、リセット信号とみなすことが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１３４７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、サブＣＰＵから出力されるリセット信号の端子が基板実装時の半田ブリッジやゴミの付着、さらにはサブＣＰＵ自体の故障により、リセット信号が正しく出力されない場合がある。リセット信号がリセット解除を示す状態となってしまうと、サブＣＰＵがブートコードの改竄を検知してメインＣＰＵを起動させたくない状況でも、メインＣＰＵが起動してしまう。
【０００６】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、プロセッサのリセット解除を適切に制御する情報処理装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る情報処理装置は、プロセッサのリセット状態を解除するためのリセット解除信号を入力する入力手段と、前記入力手段により入力された前記リセット解除信号が、所定の期間においてアクティブ状態となると、前記リセット解除信号を非アクティブ状態とする非アクティブ化手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、プロセッサのリセット解除を適切に制御することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の構成を示す図である。
【図２】検知部の構成を示す図である。
【図３】サブＣＰＵの動作を示すフローチャートである。
【図４】検知部の処理手順を示すフローチャートである。
【図５】検知部のタイミングチャートを示す図である。
【図６】情報処理装置の構成を示す図である。
【図７】検知部の構成を示す図である。
【図８】検知部の処理手順を示すフローチャートである。
【図９】検知部のタイミングチャートを示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１１】
［第１の実施形態］
図１は、本実施形態における情報処理装置の構成を示す図である。本実施形態では、情報処理装置１として、ＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎａｌ  Ｐｅｒｉｐｈｅｒａｌ：複合機）を一例として説明する。しかしながら、プロセッサがメモリから初期化のためのブートコードを読み出して実行する構成においてプロセッサのリセット解除を制御するのであれば、特にＭＦＰでなくても良い。以下、情報処理装置１の一例としてＭＦＰ１を説明する。
【００１２】
図１において、メインＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、ＭＦＰ１０１全体の制御を司る。ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、メインＣＰＵ１０１で実行されるプログラムを格納すると共に一時的なデータのワークエリアとして機能する。
【００１３】
操作部１０３は、ユーザからの指示や設定等の指示を受付可能であり、パネルやハードウェアキーを含む。操作部１０３は、操作部インタフェース（Ｉ／Ｆ）１１３を介して、メインＣＰＵ１０１にユーザの操作情報を通知する。ネットワークＩ／Ｆ１０４は、ＬＡＮ等のネットワーク１３０と接続して外部機器と通信を行う。ネットワークＩ／Ｆ１０４は、有線や無線などのネットワーク１３０の媒体に対応した構成を有する。
【００１４】
プリンタ部１０５は、画像データに基づいて、用紙等の記録媒体上に画像を形成する画像形成部である。プリンタ部１０５は、インクジェット記録方式や電子写真方式等の種種の記録方式が採用され得る。スキャナ部１０６は、原稿台に設置された原稿上の画像を光学的に読み取って電気信号に変換し、スキャン画像データを生成する。プリンタ部１０５で印刷対象となる画像データには、ＰＣ等の外部機器から取得した画像データや、スキャナ部１０６で生成されたスキャン画像データが含まれる。ＦＡＸ部１０７は、公衆回線１１０と接続され、外部機器とファクシミリ通信を行う。
【００１５】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０８は、メインＣＰＵ１０１で実行されるプログラムを格納すると共に、プリントジョブやスキャンジョブ等のスプール領域としても利用される。また、スキャン画像データを保管し再利用するための領域としても用いられる。信号バス１０９は、各モジュールを相互に接続して通信を可能とする。公衆回線１１０は、ＦＡＸ部１０７と外部機器とを相互に通信可能に接続する。
【００１６】
画像処理部１１１は、ネットワークＩ／Ｆ１０４で受信したプリントジョブ及び画像データのプリンタ部１０５が処理可能なデータへの変換、スキャナ部１０６で生成されたスキャン画像データのノイズ除去や色空間変換、回転、圧縮等の処理を実行する。また、画像処理部１１１は、ＨＤＤ１０８に保存されたスキャン画像データに対して画像処理を実行する場合もある。
【００１７】
ＦＬＡＳＨ  ＲＯＭ（ＦＬＡＳＨ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１２は、メインＣＰＵ１０１で実行されるブートコードを含むプログラムを格納すると共に、ＭＦＰ１のデフォルト設定値を記憶する。操作部Ｉ／Ｆ１１３は、操作部１０３と信号バス１０９とを相互に接続する。ＳＰＩバス１１４は、メインＣＰＵ１０１、ＦＬＡＳＨ  ＲＯＭ１１２、サブＣＰＵ１１５を相互に接続する。
【００１８】
サブＣＰＵ１１５は、ＭＦＰ１の起動時に、メインＣＰＵ１０１が起動する前にＦＬＡＳＨ  ＲＯＭ１１２からブートコードを読み出して改竄がされていないかのブートコードの正常性の検証を行う。ここで、改竄の検証方法としては、例えば、ブートコードのデジタル署名の公開鍵情報（ハッシュ値を公開鍵暗号化した値）を、製造時に、サブＣＰＵ１１５内のＯＴＰ（Ｏｎｅ  Ｔｉｍｅ  Ｐｒｏｇｒａｍ）領域（不図示）に記憶させておき、読み出したブートコードをこの公開鍵情報で復号化して検証を行う。公開鍵暗号化の方法としては、ＲＳＡ２０４８、ＥＣＤＳＡなどが用いられる。
【００１９】
検知部１１６は、サブＣＰＵから出力されるＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号（リセット解除信号）１１７を監視し、不具合等により不適切にレベルが“Ｈｉ”（ハイ）（即ち、リセット解除）であった場合は強制的にＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７を“Ｌｏｗ”（ロー）レベルにドライブする。起動時、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７は、サブＣＰＵ１１５によってレベルが“Ｌｏｗ”（即ち、リセット）とされる。そして、サブＣＰＵ１１５は、ブートコードの検証結果が正常であれば、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７のレベルを“Ｈｉ”（即ち、リセット解除）とする。電源制御部１１８は、ＭＦＰ１内の各モジュールの電力供給を制御する。
【００２０】
電源線１１９は、ＭＦＰ１内の各モジュールに電力を供給する。電源供給線１２０を介して、商業用ＡＣ電源から電力が供給される。ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７を“Ｌｏｗ”レベルにドライブする代わりに、電源制御部１１８によってメインＣＰＵ１０１もしくはＭＦＰ１の電源をオフするようにしても良い。
【００２１】
図２は、検知部１１６の構成を示す図である。図２において、タイマ回路２０４は、タイマを含み、電力供給線１１９を介して電力が供給されると、後述する所定期間“Ｈｉ”レベルを出力し、その後“Ｌｏｗ”レベルを出力する。ＡＮＤ回路２０５は、タイマ回路２０４のレベルとＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７のレベルとの論理積のレベルの信号を出力する。
【００２２】
ラッチ回路２０６は、ＡＮＤ回路２０５の出力レベルを入力し、変化があった後、そのレベルを保持して出力する。抵抗２０７および２０８は、一端がグランドレベルに接地されたトランジスタ２０９のバイアス抵抗であり、ＴＲ＿ＯＮ信号２１０が“Ｈｉ”レベルの状態でトランジスタ２０９がオンするように定数が設定されている。トランジスタ２０９は、ＴＲ＿ＯＮ信号２１０が“Ｈｉ”レベルの状態の時にオンとなる。ＴＲ＿ＯＮ信号２１０は、ラッチ回路２０６の出力信号である。この出力信号が“Ｈｉ”レベルの状態でトランジスタ２０９がオンとなり、“Ｌｏｗ”レベルの状態でトランジスタ２０９がオフとなる。ＴＲ＿ＯＮ信号２１０は、電力供給された直後は“Ｌｏｗ”レベルとなっており、その結果、トランジスタ２０９はオフである。ＴＩＭＥＲ＿ＯＵＴ信号２１１は、電源線１１９を介して電力が供給されてからタイマ回路２０４に設定された所定期間、“Ｈｉ”レベルとなる。つまり、ＴＩＭＥＲ＿ＯＵＴ信号２１１が“Ｈｉ”レベルになっている間、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が監視される。なお、図２の検知部１１６は、例えば、ＣＰＬＤやＦＰＧＡ等のＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、またはＡＳＩＣで実現されても良い。
【００２３】
次に、本実施形態におけるサブＣＰＵ１１５の処理手順を図３を参照しながら説明する。図３は、サブＣＰＵ１１５の動作を示すフローチャートである。サブＣＰＵ１１５は、起動すると、直ちにＳＰＩバス１１４を介してＦＬＡＳＨ  ＲＯＭ１１２からブートコードを読み込む（Ｓ３０１）。次に、サブＣＰＵ１１５は、読み込んだブートコードが改竄されていないかの検証を実行する（Ｓ３０２）。検証は、例えば、ハッシュ値の算出結果が期待値と一致するかを照合することにより行われる。検証の結果、ブートコードが正しくない（即ち、改竄がされている）と判定した場合（Ｓ３０３：ＮＯ）、図３の処理を終了し、ＭＦＰ１の起動を中断する。一方、ブートコードが正しい（即ち、改竄がされていない）と判定した場合（Ｓ３０３：ＹＥＳ）、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７を“Ｈｉ”レベル（即ち、リセット解除）にする（Ｓ３０４）。続いて、サブＣＰＵ１１５は、消費電力を下げるために、自身をスリープ状態とし（Ｓ３０５）、図３の処理を終了し、ＭＦＰ１の起動が続行される。
【００２４】
次に、本実施形態における検知部１１６の処理手順を図４を参照しながら説明する。起動後してからタイマ回路２０４に設定された所定期間、タイマ回路２０４は、ＴＩＭＥＲ＿ＯＵＴ信号２１１のレベルを”Ｈｉ“レベルとする（Ｓ４０１）。その結果、検知部１１６は、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７のレベルを監視可能となる（Ｓ４０２）。ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７のレベルが“Ｈｉ”であれば（Ｓ４０３：ＹＥＳ）、ＴＲ＿ＯＮ信号２１０のレベルがＨｉとなってトランジスタ２０９をオンとする（Ｓ４０４）。一方、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７のレベルが“Ｌｏｗ”であれば（Ｓ４０３：ＮＯ）、ＴＲ＿ＯＮ信号２１０のレベルがＬｏｗとなってトランジスタ２０９をオフとする（Ｓ４０５）。
【００２５】
なお、起動してからブートコードの検証が完了するまでの時間は、サブＣＰＵ１１５に割込みの受付を許可しなければ、毎回ほぼ一定となる。そこで、例えば、設計者は予めその時間を計測しておき、その時間を上記の所定期間としてタイマ回路２０４に設定しておく。また、本実施形態では、ＴＩＭＥＲ＿ＯＵＴ信号２１１のレベルを“Ｈｉ”にする期間をタイマ回路２０４に設定することで実現しているが、他の構成が用いられても良い。例えば、サブＣＰＵ１１５のＧＰＩＯ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）の端子の一つから出力する信号をＴＩＭＥＲ＿ＯＵＴ信号２１１の代わりとし、ＧＰＩＯ端子を起動時に“Ｈｉ”レベルとし、ブートコードの検証が完了した時点で“Ｌｏｗ”レベルとするようにしても良い。その場合、ＧＰＩＯ端子の”Ｈｉ”レベルの期間は、上記の所定期間に対応する。
【００２６】
図５は、検知部１１６のタイミングチャートを示す図である。図５において、Ｔ０は、装置が起動を開始した（電源が投入された）時間であり、Ｔ１は、サブＣＰＵ１１５が起動した時間である。また、Ｔ２は、サブＣＰＵ１１５がブートコードの検証を終えた時間である。
【００２７】
図５の上段３つの信号、ＴＩＭＥＲ＿ＯＵＴ信号２１１、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７、ＴＲ＿ＯＮ信号２１０は、サブＣＰＵ１１５の起動期間中に、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７がリセット解除にならない場合（正常時）を示している。
【００２８】
レベル５０１は、ＴＩＭＥＲ＿ＯＵＴ信号２１１のレベル遷移を示し、前述のとおり“Ｈｉ”レベルの期間、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７を監視する。ブートコードの検証中にメインＣＰＵ１０１を起動させないためには、Ｔ２以前の期間のみ、ＴＩＭＥＲ＿ＯＵＴ信号２１１を“Ｈｉ”レベルにしてＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号のレベルを監視する必要がある。従って、タイマ回路２０４にはＴ２よりも短い時間が設定される。
【００２９】
レベル５０２は、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７のレベル遷移を示す。レベル５０２に示すように、ブートコード検証が終了したＴ２の時点で、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７は、“Ｈｉ”レベル（リセット解除）となる。レベル５０３は、ＴＲ＿ＯＮ信号２１０のレベル遷移を示し、ＴＩＭＥＲ＿ＯＵＴ信号２１１が“Ｈｉ”レベルの期間にＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７は“Ｌｏｗ”レベルであるので、ＴＲ＿ＯＮ信号２１０は、“Ｌｏｗ”レベルのままとなる。そして、その結果、トランジスタ２０９はオフとなる。また、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が”Ｈｉ”レベルとなると、ＴＩＭＥＲ＿ＯＵＴ信号２１１は”Ｌｏｗ”レベルになるので、ＴＲ＿ＯＮ信号２１０は、”Ｌｏｗ”レベルを維持する。
【００３０】
図５の下段２つの信号、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７、ＴＲ＿ＯＮ信号２１０は、サブＣＰＵ１１５の起動期間中に、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７がリセット解除になった場合（異常時）を示している。
【００３１】
レベル５０４は、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７のレベル遷移を示す。レベル５０４に示すように、起動直後のＴａのタイミングで、基板実装時の半田ブリッジやゴミの付着などの何らかの理由により、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が“Ｈｉ”レベル（リセット解除）となっている。レベル５０５は、ＴＲ＿ＯＮ信号２１０のレベル遷移を示し、ＴＩＭＥＲ＿ＯＵＴ信号２１０が“Ｈｉ”レベルの期間にＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が“Ｈｉ”レベルにあるので、Ｔｂのタイミングで、ＴＲ＿ＯＮ信号２１０が“Ｈｉ”レベルとなる。その結果、トランジスタ２０９がオンとなり、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７は“Ｌｏｗ”レベル（リセット）となる。
【００３２】
以上のように、本実施形態によれば、サブＣＰＵ１１５から出力されるリセット信号の端子が基板実装時の半田ブリッジやゴミの付着、さらにはサブＣＰＵ１１５自体の故障により、リセット信号が正しく出力されない場合（上記の異常時）には、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７を強制的に“Ｌｏｗ”（リセット）にする。そのような構成により、サブＣＰＵ１１５の故障、実装上の不具合によってリセット解除信号が出力されたとしても、ブートコードの検証を待たずにメインＣＰＵ１０１が起動してしまうことを防止することが可能となる。
【００３３】
図２において説明したように、本実施形態の検知部１１６は、以下の３点を実現するように構成されている。即ち、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７を所定期間監視することを実現するように構成されている。また、その監視期間においてはＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が非アクティブ状態を維持する場合（正常なレベル遷移）にはスイッチ回路をオフとするように構成されている。また、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が所定期間内にアクティブ状態となった場合（異常なレベル遷移）でも、そのレベル遷移に同期してスイッチ回路がオンとなりＲＥＳＥＴ＿ＲＥＳＥＡＳＥ信号１１７を強制的に非アクティブ状態とする（非アクティブ化）ように構成されている。それらの３点を実現するように構成するのであれば、図２の構成でなくても良い。本実施形態では、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が”Ｌｏｗ”レベルでリセット（非アクティブ状態）、”Ｈｉ”レベルでリセット解除（アクティブ状態）であるとしたが、アクティブ状態となるレベルが逆であっても、上記の３点を満たすように構成されても良い。アクティブ状態となるレベルが逆であっても、所定期間内にＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が何らかの理由により”Ｌｏｗ”レベル（リセット解除：アクティブ状態）となった場合でも、例えばＴＲ＿ＯＮ信号２１０が”Ｌｏｗ”レベルとなってスイッチ回路がオンとなり、その結果、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が電圧レベル、即ち”Ｈｉ”レベル（リセット：非アクティブ状態）となるような構成でも良い。
【００３４】
［第２の実施形態］
以下、第２の実施形態について第１の実施形態と異なる点について説明する。
【００３５】
図６は、本実施形態における情報処理装置１の構成を示す図である。図１に示す構成とは、ＳＰＩバス１１４が検知部１１６に接続されている点が異なる。なお、第１の実施形態と同様、情報処理装置１の一例としてＭＦＰ１を説明する。
【００３６】
図７は、本実施形態における検知部１１６の構成を示す図である。図２に示す構成とは、ＣＳ信号７０１を用いた回路がＡＮＤ回路２０５とラッチ回路２０６の間に挿入されている点で異なる。図７において、ＣＳ信号７０１は、ＳＰＩバス１１４のＣＳ＃（Ｃｈｉｐ  Ｓｅｌｅｃｔ）信号であって、ＦＬＡＳＨ  ＲＯＭ１１２にアクセスする場合、マスターとなるデバイスから出力される信号である。エッジ検出回路７０２は、ＣＳ信号７０１のエッジを検出する。ＥＤＧＥ＿ＯＵＴ信号７０３は、起動時は“Ｌｏｗ”レベルであるが、エッジ検出回路７０２がＣＳ信号７０１のエッジを検出すると“Ｈｉ”レベルとなる。ＡＮＤ回路７０４は、ＥＤＧＥ＿ＯＵＴ信号７０３のＮＯＴ回路７０５により論理反転された信号と、ＡＮＤ回路２０５の出力信号との論理積を、ラッチ回路２０６へ出力する。つまり、図７では、ＣＳ信号７０１のエッジを監視し、サブＣＰＵ１１５によるＦＬＡＳＨ  ＲＯＭ１１２からのブートコードの読み出しの開始を検出することができる。なお、図７の検知部１１６は、図２と同様、例えば、ＣＰＬＤやＦＰＧＡ等のＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、またはＡＳＩＣで実現されても良い。
【００３７】
次に、本実施形態における検知部１１６の処理手順を図８を参照しながら説明する。図８は、図４のフローチャートとは、Ｓ８０１、Ｓ８０２が追加されている点で異なる。Ｓ４０２でＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７のレベルが“Ｈｉ”（リセット解除）であった場合、エッジ検出回路７０２は、ＣＳ信号７０１のエッジを監視する（Ｓ８０１）。エッジ検出回路７０２がエッジを検出しない場合（Ｓ８０２、ＮＯ）、ＥＤＧＥ＿ＯＵＴ信号７０３のレベルは”Ｌｏｗ”となり、ＡＮＤ回路７０４には、論理反転された”Ｈｉ”レベルが入力される。その結果、ＴＲ＿ＯＮ信号２１０が”Ｈｉ”レベルとなってトランジスタ２０９をオンとする（Ｓ４０４）。
【００３８】
一方、エッジ検出回路７０２がエッジを検出した場合（Ｓ８０２：Ｙｅｓ）、ＥＤＧＥ＿ＯＵＴ信号７０３のレベルは”Ｈｉ”となり、ＡＮＤ回路７０４には、論理反転された”Ｌｏｗ”レベルが入力される。その結果、ＴＲ＿ＯＮ信号２１０が”Ｌｏｗ”レベルとなってトランジスタ２０９をオフとする（Ｓ４０５）。
【００３９】
図９は、本実施形態における検知部１１６のタイミングチャートを示す図である。図５とは、レベル９０１、９０２が追加されている点で異なる。
【００４０】
図９の上段５つの信号、ＴＩＭＥＲ＿ＯＵＴ信号２１１、ＣＳ信号７０１、ＥＤＧＥ＿ＯＵＴ信号７０３、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７、ＴＲ＿ＯＮ信号２１０は、サブＣＰＵ１１５の起動期間中に、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７がリセット解除にならない場合（正常時）を示している。
【００４１】
本ケースでは、サブＣＰＵ１１５は、サブＣＰＵ１１５の起動期間中、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７を正しく”Ｌｏｗ”レベル（リセット）で出力する。そして、その起動期間中はエッジ検出回路７０２はエッジを検出していないので、ＴＲ＿ＯＮ信号２１０は”Ｌｏｗ”レベルとなり、トランジスタ２０９はオフとなる。その後、サブＣＰＵ１１５は、Ｔ１のタイミングからブートコード検証を開始するために、ＣＳ信号７０１をドライブしてＦＬＡＳＨ  ＲＯＭ１１２からブートコードを読み出す。レベル９０２は、ＥＤＧＥ＿ＯＵＴ信号７０３のレベル遷移を示し、エッジ検出回路７０２によってＣＳ信号７０１のエッジを検出すると、“Ｈｉ”レベルとなる。従って、ＥＤＧＥ＿ＯＵＴ信号７０３が“Ｌｏｗ”レベルの期間はＦＬＡＳＨ  ＲＯＭ１１２からのブートコード読出しが行われる前となる。エッジ検出回路７０２がエッジを検出すると、ＴＲ＿ＯＮ信号２１０は”Ｌｏｗ”レベルを維持する。
【００４２】
ここで、ＴＲ＿ＯＮ信号２１０が”Ｌｏｗ”レベルを維持するのは、ＥＤＧＥ＿ＯＵＴ信号７０３が”Ｈｉ”レベルとなったためであり、結果、トランジスタ２０９は、ＴＩＭＥＲ＿ＯＵＴ信号２１１とＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７に関わりなく、オフとなる。しかしながら、サブＣＰＵ１１５の起動期間中にＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が正常にレベル遷移しているのであれば、サブＣＰＵ１１５の故障や、実装上の不具合が発生している確率は極めて低いと考えられる。従って、ブートコード検証期間中、トランジスタ２０９がオフとなっていたとしても、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７がその検証期間においてリセット解除に遷移する確率は極めて低い。つまり、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７の監視期間をエッジ検出回路７０２によるエッジ検出前に限定することができ、その後は、トランジスタ２０９をオフにする。そのような構成により、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７に対して早期に検知部１１６を解放することができ、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７に対する検知部１１６からの不用意な影響（信号揺れなど）を防ぐことができる。
【００４３】
図９の下段２つの信号、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７、ＴＲ＿ＯＮ信号２１０は、サブＣＰＵ１１５の起動期間中に、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７がリセット解除になった場合（異常時）を示している。
【００４４】
サブＣＰＵ１１５の起動期間中は、ブートコード読出しの開始前であるので、ＥＤＧＥ＿ＯＵＴ信号７０３は”Ｌｏｗ”レベルであり、トランジスタ２０９は、ＴＩＭＥＲ＿ＯＵＴ信号２１１とＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７に基づいて、オンオフが制御される。本ケースの動作は、図５の下段の２つの信号、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７とＴＲ＿ＯＮ信号２１０についての説明と同じである。即ち、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７がリセット解除となったとしても、トランジスタ２０９がオンとなることで、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が強制的にリセットとなる。その場合、後段でＥＤＧＥ＿ＯＵＴ信号７０１が”Ｈｉ”レベルとなると、トランジスタ２０９がオフとなってＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が再度”Ｈｉ”レベル（リセット解除）となり得るので、ブートコード読出しが行われる前に、電源制御部１１８によりＭＦＰ１への電源の供給を遮断するようにする。
【００４５】
以上のように、本実施形態によれば、サブＣＰＵ１１５がブートコード検証を開始する前にＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７が“Ｈｉ”レベルになることは明らかに異常な動作であることから、その異常時には、ＲＥＳＥＴ＿ＲＥＬＥＡＳＥ信号１１７を強制的に“Ｌｏｗ”レベルにする。そのような構成により、サブＣＰＵ１１５の故障、実装上の不具合によってリセット解除信号が出力されたとしても、ブートコードの検証を待たずにメインＣＰＵ１０１が起動してしまうことを防止することが可能となる。
【００４６】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。また、プログラムには、ＦＰＧＡなどに設けられるコンフィグレーションＲＯＭに記憶されるプログラムも含まれる。
【符号の説明】
【００４７】
１  ＭＦＰ：  １０１  メインＣＰＵ：  １１２  ＦＬＡＳＨ  ＲＯＭ：  １１５  サブＣＰＵ：  １１６  検知部：  ２０４  タイマー管理回路：  ２０９  トランジスタ
【図１】
2020042424.tif 000003
【図２】
2020042424.tif 000004
【図３】
2020042424.tif 000005
【図４】
2020042424.tif 000006
【図５】
2020042424.tif 000007
【図６】
2020042424.tif 000008
【図７】
2020042424.tif 000009
【図８】
2020042424.tif 000010
【図９】
2020042424.tif 000011