(57)【要約】      （修正有）【課題】少なくとも１つの記憶装置に保存されているプログラムが改竄されないという保証がなくても、複数の演算処理装置のうちの少なくとも１つの演算処理装置が改竄されたプログラムにより起動してしまうことを避ける。【解決手段】第１演算処理装置１０１−１で実行される第１プログラム１０５−１に基づく第１演算の第１結果の期待値であって、第２演算処理装置１０１−２から参照することが可能な第１参照データ及び第１乱数に基づいた第１結果の期待値と、第１プログラム及び第１乱数に基づく第１演算を第１演算処理装置１０１−１で実行して得た第１結果の実際値を比較して、第１演算処理装置１０１−１を診断する第１診断手段、これと対称的な第２診断手段１１９−２及びこれらによる診断結果に基づいて、第１演算処理装置１０１−１及び第２演算処理装置１０１−２それぞれの起動を制御する起動制御手段１５３、１５５を備える。【選択図】図１
2018010471.tif 000002
【特許請求の範囲】
【請求項１】
第１演算処理装置の起動と、第２演算処理装置の起動を制御するための起動制御システムであって、
前記第１演算処理装置により実行される第１プログラムに基づく第１演算の第１結果の期待値であって、前記第２演算処理装置から参照することが可能な第１参照データ及び第１乱数に基づいて前記第２演算処理装置で算出した前記第１結果の前記期待値と、前記第１プログラム及び前記第１乱数に基づく前記第１演算を前記第１演算処理装置で実行して得た前記第１結果の実際値とを比較することによって、前記第１演算処理装置を診断する第１診断手段と、
前記第２演算処理装置により実行される第２プログラムに基づく第２演算の第２結果の期待値であって、前記第１演算処理装置から参照することが可能な第２参照データ及び第２乱数に基づいて前記第１演算処理装置で算出した前記第２結果の期待値と、前記第２プログラム及び前記第２乱数に基づく前記第２演算を前記第２演算処理装置で実行して得た前記第２結果の実際値とを比較することによって、前記第２演算処理装置を診断する第２診断手段と、
前記第１診断手段による診断結果及び前記第２診断手段による診断結果に少なくとも基づいて、前記第１演算処理装置及び前記第２演算処理装置それぞれによる前記第１プログラム及び前記第２プログラムの起動を制御する起動制御手段と、
を備えることを特徴とする起動制御システム。
【請求項２】
請求項１に記載の起動制御システムであって、
前記第１演算処理装置は、
前記第１演算を、前記第１プログラム及び前記第１乱数に基づいて前記第１結果の前記実際値を算出するための第１演算手段を備え、
前記第２演算処理装置は、
前記第１参照データ及び前記第１乱数に基づいて前記第１結果の期待値を算出するための参照用第１後半演算手段を備え、
前記第２演算処理装置は、
前記第２演算を、前記第２プログラム及び前記第２乱数に基づいて前記第２結果の前記実際値を算出するための第２演算手段を備え、
前記第１演算処理装置は、
前記第２参照データ及び前記第２乱数に基づいて前記第２結果の期待値を算出するための参照用第２後半演算手段を備えることを特徴とする起動制御システム。
【請求項３】
請求項２に記載の起動制御システムであって、
前記第１演算手段は、
前記第１プログラムに基づいて前記第１参照データに対応する第１中間演算結果を算出するための第１実地前半演算手段と、
前記第１中間演算結果及び前記第１乱数に基づいて前記第１結果の前記実際値を算出するための第１実地後半演算手段と、
を備え、
前記第２演算手段は、
前記第２プログラムに基づいて前記第２参照データに対応する第２中間演算結果を算出するための第２実地前半演算手段と、
前記第２中間演算結果及び前記第２乱数に基づいて前記第２結果の前記実際値を算出するための第２実地後半演算手段と、
を備えることを特徴とする起動制御システム。
【請求項４】
請求項２又は３に記載の起動制御システムであって、
前記第１演算処理装置と前記第２演算処理装置との間の通信を監視するための監視装置を更に備え、
前記監視装置は、
前記第１乱数の前記第１演算装置から前記第２演算装置への送信、
前記第２乱数の前記第２演算装置から前記第１演算装置への送信、
前記第１結果の前記実際値の前記第１演算装置から前記第２演算装置への送信、又は、
前記第１結果の期待値の前記第２演算装置から前記第１演算装置への送信、及び
前記第２結果の前記実際値の前記第２演算装置から前記第１演算装置への送信、又は、
前記第２結果の期待値の前記第１演算装置から前記第２演算装置への送信、
のうちの少なくとも一つの送信を監視することを特徴とする起動制御システム。
【請求項５】
請求項４に記載の起動制御システムであって、
前記起動制御手段は、前記監視装置による前記送信の監視結果にも基づいて、前記第１演算処理装置及び前記第２演算処理装置それぞれによる前記第１プログラム及び前記第２プログラムの起動を制御することを特徴とする起動制御システム。
【請求項６】
請求項１乃至５の何れか１項に記載の起動制御システムであって、
前記第１乱数は、第１演算処理装置で生成したものであり、前記第２乱数は、第２演算処理装置で生成したものであることを特徴とする起動制御システム。
【請求項７】
請求項１乃至５の何れか１項に記載の起動制御システムであって、
前記第１乱数は、第２演算処理装置で生成したものであり、前記第２乱数は、第１演算処理装置で生成したものであることを特徴とする起動制御システム。
【請求項８】
請求項１乃至７の何れか１項の何れか１項に記載の起動制御システムであって、
前記第１診断手段が、前記第１演算処理装置に備わり、前記第２診断手段が、前記第２演算処理装置に備わることを特徴とする起動制御システム。
【請求項９】
請求項１乃至７の何れか１項に記載の起動制御システムであって、
前記第１診断手段が、前記第２演算処理装置に備わり、前記第２診断手段が、前記第１演算処理装置に備わることを特徴とする起動制御システム。
【請求項１０】
前記第１演算処理装置、前記第２演算処理装置及び第３のコンピュータを請求項１乃至９の何れか１項に記載の起動制御システムとして機能させるための起動制御用プログラム群。
【請求項１１】
複数の演算処理装置の起動を制御するための起動制御システムであって、
前記複数の演算処理装置は、１番目からＮ番目まであり、
ｉ＝Ｎの場合には、ｉ＋１＝１として、
第ｉ演算処理装置は、
第ｉ演算処理装置により実行される第ｉプログラムに基づく第ｉ演算の第ｉ結果の期待値であって、第（ｉ＋１）演算処理装置から参照することが可能な第ｉ参照データ及び第ｉ乱数に基づいて前記第（ｉ＋１）演算処理装置で算出した前記第ｉ結果の前記期待値と、前記第ｉプログラム及び前記第ｉ乱数に基づく前記第ｉ演算を前記第ｉ演算処理装置で実行して得た前記第ｉ結果の実際値とを比較することによって、前記第ｉ演算処理装置を診断する第ｉ診断手段と、
前記第ｉ診断手段による第ｉ診断結果に少なくとも基づいて、第ｉ演算処理装置それぞれによる前記第ｉプログラムの起動を制御する起動制御手段と、
を備えることを特徴とする起動制御システム。
【請求項１２】
第1の演算処理装置、第２の演算処理装置、管理装置を有する電子機器であって、
前記第１の演算処理装置と前記第２の演算処理装置は、前記第1の演算処理装置により実行される第1のプログラムと前記第２の演算処理装置により実行される第２のプログラムの正当性を相互に確認するプロセスを実行する手段を備え、
前記監視装置は前記確認プロセスを監視する手段を備えることを特徴とする電子機器。
【請求項１３】
第1の演算処理装置、第２の演算処理装置、管理装置を有する電子機器であって、
前記第1の演算処理装置は、前記第２の演算処理装置により実行されるプログラムの正当性を確認するプロセスを実行する手段を備え、
前記監視装置は前記確認プロセスを監視する手段を備えることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の演算処理装置の起動を制御するための起動制御システム並びに起動制御用プログラム及び起動制御用プログラム群に関する。
【背景技術】
【０００２】
近年のＬＳＩ（Large Scale Integration）のプロセス微細化により、ＬＳＩに搭載可能な回路規模はどんどん増加し、ＬＳＩが処理する機能や性能は加速度的に向上している。なお、回路規模によっては、その半導体集積回路をＶＬＳＩ（Very LSI）、ＵＬＳＩ（Ultra-LSI）などと呼ぶこともある。
【０００３】
機能向上の１つとして、プロセッサ機能をＬＳＩの中に取り込むと、ＬＳＩ内部のプロセッサがＬＳＩ全体を内部から制御することが可能となり、ＬＳＩ内部にあたかも一つのシステムを構築できる。このように、半導体集積回路であって、その内部にプロセッサを内蔵してシステムを構築するデバイスは、ＳｏＣ（System on a Chip）と呼ばれている。
【０００４】
ＳｏＣと呼ばれる半導体集積回路には、様々なデバイスがある。非常に高性能なプロセッサを搭載し、ＳｏＣの外部に接続される全てのデバイスを統合的に管理できるものや、複数のプロセッサを内蔵し、さらに処理能力や演算能力を高めたもの、また、外部デバイスの制御は他のプロセッサに任せて、自身はＳｏＣ内部の制御のみを行うものなど様々である。
【０００５】
ところで、ＳｏＣにおいて、ＣＰＵ（Central Processing Unit）等のプロセッサを安全に立ち上げることは非常に重要であり、特にセキュリティを重視した製品では確実に信頼できるプログラムデータからプロセッサ（以下、ＣＰＵで例示）を起動する必要がある。プログラムが悪意ある者によって差し替えられた状態で起動を許してしまうと、ＳｏＣ内外の記憶装置に暗号化して保存したデータが読み出される危険性や、暗号化データの復号化ができなかったとして消去されてしまう恐れもある。また、ユーザがプログラムを差し替えられたことに気付かずに利用すると、差し替えられた後に生成したデータは、悪意ある者によって盗まれてしまう。
【０００６】
このような危険性を排除するために、ＣＰＵを安全且つ確実に立ち上げることは重要である。実現方法として、例えばプログラムデータを暗号化した上で記憶デバイスに保存しておき、起動時に復号化してからＲＡＭ（Random Access Memory）上に展開して起動する方法や、ＴＰＭ（Trusted Platform Module）などのＳｏＣとは別に外部にセキュリティデバイスを利用する方法などがある。
【０００７】
さらに、ＨＤＤ（Hard Disk Drive）やＳＤカード、ＵＳＢ（Universal Serial Bus）メモリなど一般的に広く利用され汎用性の高い記憶デバイスにプログラムデータを保存するのではなく、基板にオンボードで直接実装するタイプの記憶デバイスに保存することもセキュリティ性を高める方法の一つである。独自のＩ／Ｆ（Interface）プロトコルで動作するデバイスの採用や、Ｆｌａｓｈ  ＤＩＭＭ（Dual Inline Memory Module）など一般的にはユーザが入手しにくいデバイスを採用する方法もある。オンボードタイプデバイスやユーザが入手しにくいデバイスなどの場合、第三者によってデバイスの入れ替えを行うのは難しいばかりではなく、基板に実装したまま外部から書き換えることは非常に専門的な知識が必要となるため、セキュリティ性が高くなる。
【０００８】
複合機（ＭＦＰ）を例に挙げ具体的に説明すると、次のようになる。一般的なモデル（製品）とセキュリティを重視したモデルの２種類ある場合、セキュリティを重視したモデルではデータの暗号化や、動作時に一次的に保存したメモリデータ、ＨＤＤデータの消去などといったセキュリティ機能が付加される。ここで脅威となる一例は、セキュリティを重視したモデルのデバイスを一般的なモデルのプログラムデータ格納デバイスに置き換えることが挙げられる。置き換え後にＣＰＵの起動が可能であると、それまでに蓄積されたデータの消去がなされず、また今後利用する際に生成されるデータは暗号化されていないため、非常に危険な状態となってしまう。従って、ＣＰＵを安全に起動することは、セキュリティ上、非常に重要な要素となる。
【０００９】
一方、近年、ＭＦＰに限らず様々なシステムは、大規模化・複雑化に伴って複数のＣＰＵによってシステム全体を制御することが多くなってきた。例えば、特許文献１には、上述したようなＳｏＣで代表される半導体集積回路を、同じ回路基板などに２以上搭載した半導体デバイスが開示されている。この半導体デバイスも複数のＣＰＵをもつことになる。
【００１０】
そして、このように複数のＣＰＵを搭載する半導体デバイスの場合、全てのＣＰＵに対して安全に起動することが求められる。プログラム格納デバイスの入れ替え脅威を排除するためには、全ての記憶デバイスを交換リスクがなく安全性の高いデバイスにする必要が生じる。従って、２つのＳｏＣに対してプログラム格納デバイスとしてそれぞれ接続する２つの外部記憶装置は、いずれも高セキュリティの装置を採用する必要が生じる。
【００１１】
しかしながら、一般的にＨＤＤなど先に挙げた汎用性の高い記憶デバイスに比べ、セキュリティ性の高い記憶デバイスは技術的に高度であったり、販売数量が少ないなどといった理由によりコストが高くなる傾向にある。
【００１２】
特許文献２に開示されている発明は、上述のような実状に鑑みてなされたものであり、２以上の半導体集積回路を搭載した半導体デバイスにおいて、各半導体集積回路に接続するそれぞれのプログラム格納デバイス（記憶デバイス）のうちの一部の記憶デバイスのみを高セキュリティにするだけで、これらの全ての記憶デバイスについて、記憶デバイスの入れ替え脅威を高いセキュリティレベルで排除することを可能にするものである。
【００１３】
特許文献２に開示されている発明の第１の技術手段は、２以上の半導体集積回路を搭載した半導体デバイスであって、少なくとも１つの半導体集積回路は、他の半導体集積回路の起動プログラムより信頼性が確保された起動プログラムで起動し、該起動した起動プログラムにより他の半導体集積回路の起動プログラムの認証を行うことを特徴としたものである。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００１−１３２１５号公報
【特許文献２】特開２０１２−２５２６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかし、特許文献２の発明では、プログラムが格納されている記憶装置の少なくとも１つが高セキュアな記憶装置であり、改ざんや入れ替え脅威が排除されることを前提に、高セキュアな記憶装置を起動デバイスとするプロセッサ側プログラムが低セキュアな記憶デバイスに格納されているプログラムを認証することで、ＭＦＰのセキュリティを確保していた。従来技術においては起動デバイスの種類が限定される点や、今後、技術進歩により現時点で高セキュアとされているデバイスの改竄が可能になった際、セキュリティ性が保証できない点が課題として挙げられる。
【００１６】
そこで、本発明は、少なくとも１つの記憶装置に保存されているプログラムが改竄されないという保証がなくても、複数の演算処理装置のうちの少なくとも１つの演算処理装置が改竄されたプログラムにより起動してしまうことを避けることができる起動制御システム並びに起動制御用プログラム及び起動制御用プログラム群を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明によれば、
第１演算処理装置の起動と、第２演算処理装置の起動を制御するための起動制御システムであって、
前記第１演算処理装置により実行される第１プログラムに基づく第１演算の第１結果の期待値であって、前記第２演算処理装置から参照することが可能な第１参照データ及び第１乱数に基づいて前記第２演算処理装置で算出した前記第１結果の前記期待値と、前記第１プログラム及び前記第１乱数に基づく前記第１演算を前記第１演算処理装置で実行して得た前記第１結果の実際値とを比較することによって、前記第１演算処理装置を診断する第１診断手段と、
前記第２演算処理装置により実行される第２プログラムに基づく第２演算の第２結果の期待値であって、前記第１演算処理装置から参照することが可能な第２参照データ及び第２乱数に基づいて前記第１演算処理装置で算出した前記第２結果の期待値と、前記第２プログラム及び前記第２乱数に基づく前記第２演算を前記第２演算処理装置で実行して得た前記第２結果の実際値とを比較することによって、前記第２演算処理装置を診断する第２診断手段と、
前記第１診断手段による診断結果及び前記第２診断手段による診断結果に少なくとも基づいて、前記第１演算処理装置及び前記第２演算処理装置それぞれによる前記第１プログラム及び前記第２プログラムの起動を制御する起動制御手段と、
を備えることを特徴とする起動制御システムが提供される。
また、本発明によれば、前記第１演算処理装置、前記第２演算処理装置及び第３のコンピュータを上記の起動制御システムとして機能させるための起動制御用プログラム群が提供される。
更に、本発明によれば、演算処理装置を上記の前記起動制御システムの一部として機能させるための起動制御用プログラムが提供される。
更に、本発明によれば、
複数の演算処理装置の起動を制御するための起動制御システムであって、
前記複数の演算処理装置は、１番目からＮ番目まであり、
ｉ＝Ｎの場合には、ｉ＋１＝１として、
第ｉ演算処理装置は、
第ｉ演算処理装置により実行される第ｉプログラムに基づく第ｉ演算の第ｉ結果の期待値であって、第（ｉ＋１）演算処理装置から参照することが可能な第ｉ参照データ及び第ｉ乱数に基づいて前記第（ｉ＋１）演算処理装置で算出した前記第ｉ結果の前記期待値と、前記第ｉプログラム及び前記第ｉ乱数に基づく前記第ｉ演算を前記第ｉ演算処理装置で実行して得た前記第ｉ結果の実際値とを比較することによって、前記第ｉ演算処理装置を診断する第ｉ診断手段と、
前記第ｉ診断手段による第ｉ診断結果に少なくとも基づいて、第ｉ演算処理装置それぞれによる前記第ｉプログラムの起動を制御する起動制御手段と、
を備えることを特徴とする起動制御システムが提供される。
更に、本発明によれば、
第1の演算処理装置、第２の演算処理装置、管理装置を有する電子機器であって、
前記第１の演算処理装置と前記第２の演算処理装置は、前記第1の演算処理装置により実行される第1のプログラムと前記第２の演算処理装置により実行される第２のプログラムの正当性を相互に確認するプロセスを実行する手段を備え、
前記監視装置は前記確認プロセスを監視する手段を備えることを特徴とする電子機器が提供される。
更に、本発明によれば、
第1の演算処理装置、第２の演算処理装置、管理装置を有する電子機器であって、
前記第1の演算処理装置は、前記第２の演算処理装置により実行されるプログラムの正当性を確認するプロセスを実行する手段を備え、
前記監視装置は前記確認プロセスを監視する手段を備えることを特徴とする電子機器が提供される。
【発明の効果】
【００１８】
本発明によれば、少なくとも１つの記憶装置に保存されているプログラムが改竄されないという保証がなくても、複数の演算処理装置のうちの少なくとも１つの演算処理装置が改竄されたプログラムにより起動してしまうことを避けることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施の形態による起動制御システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態による起動制御システムの動作を説明するためのフローチャート（１／２）である。
【図３】本発明の第１の実施の形態による起動制御システムの動作を説明するためのフローチャート（２／２）である。
【図４】本発明の第１の実施の形態の模式図（１／２）である。
【図５】本発明の第１の実施の形態の模式図（２／２）である。
【図６】本発明の第２の実施の形態の模式図（１／２）である。
【図７】本発明の第２の実施の形態の模式図（２／２）である。
【図８】本発明の第３の実施の形態の模式図（１／２）である。
【図９】本発明の第３の実施の形態の模式図（２／２）である。
【図１０】本発明の第４の実施の形態の模式図（１／２）である。
【図１１】本発明の第４の実施の形態の模式図（２／２）である。
【図１２】本発明の第９の実施の形態による第１及び第２のプログラム実行装置の構成を示すブロック図である。
【図１３】本発明の第１０の実施の形態による起動制御装置を含む複合機の構成を示すブロック図である。
【図１４】本発明の第１１の実施の形態による複合機の構成を示す断面図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明を実施するための形態について詳細に説明する。
［第１の実施の形態］
図１は、第１の実施の形態による起動制御システムの構成を示すブロック図である。
図１を参照すると、この起動制御システムは、第１プログラム実行装置１０１−１、第２プログラム実行装置１０１−２及び監視装置１５１を含む。
【００２１】
第１プログラム実行装置１０１−１は、第１ＣＰＵ１０３−１、第１乱数発生部１０９−１、第１演算部１１１−１、参照用第２後半演算部１１７−１及び第１外部インターフェース１２１−１を含む。第１演算部１１１−１は、第１実地前半演算部１１３−１及び第１実地後半演算部１１５−１を含む。
【００２２】
同様に、第２プログラム実行装置１０１−２は、第２ＣＰＵ１０３−２、第２乱数発生部１０９−２、第２演算部１１１−２、参照用第２後半演算部１１７−２及び第２外部インターフェース１２１−２を含む。第２演算部１１１−２は、第２実地前半演算部１１３−２及び第２実地後半演算部１１５−２を含む。
【００２３】
監視装置１５１は、監視部１５３及び起動制御部１５５を含む。
【００２４】
第１乱数発生部１０９−１は、第１乱数ＲＡＮＤ−ｓｏｃ１を発生する。同様に、第２乱数発生部１０９−２は、第２乱数ＲＡＮＤ−ｓｏｃ２を発生する。
【００２５】
第１ＣＰＵ１０３−１は、第１外部記憶装置１６３−１（図８）に格納されている第１プログラム１０５−１  Ｐｒｏｇｒａｍを実行する。
【００２６】
第２ＣＰＵ１０３−２は、第２外部記憶装置１６３−１（図８）に格納されている第２プログラム１０５−１  ＭａｉｎＰｒｏｇｒａｍを実行する。
【００２７】
第１実地前半演算部１１３−１は、第１プログラム１０５−１の第１実地中間ハッシュ値ＨＡＳＨ−ｓｏｃ１，ｒｅａｌを算出する。例えば、第１プログラム１０５−１のデータをＰｒｏｇｒａｍ、プログラムに加算されている可能性があるエラーをΔ１とした場合、これの第１実地中間ハッシュ値ＨＡＳＨ−ｓｏｃ１，ｒｅａｌを、下式
ＨＡＳＨ−ｓｏｃ１，ｒｅａｌ
＝ＳＨＡ−２５６（Ｐｒｏｇｒａｍ＋Δ１）
により算出する。ここで、エラーΔがゼロでない場合には、例えば、プログラムが改竄されている可能性がある。
【００２８】
第１実地後半演算部１１５−１は、第１実地前半演算部１１３−１が算出した第１実地ハッシュ値ＨＡＳＨ−ｓｏｃ１，ｒｅａｌと第２乱数ＲＡＮＤ−ｓｏｃ２を結合して、これの第１実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌを、下式
ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌ
＝ＳＨＡ−２５６（ｃａｔ（ＲＡＮＤ−ｓｏｃ２、ＨＡＳＨ−ｓｏｃ１，ｒｅａｌ）
により算出する。
【００２９】
参照用第１後半演算部１１７−２は、第２外部記憶装置１６３−２（図８）に格納されている第１参照中間ハッシュ値１０７−２  ＨＡＳＨ−ｓｏｃ１，ｒｅｆと第２乱数ＲＡＮＤ−ｓｏｃ２を結合して、これの第１参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅｆを、下式
ＨＡＳＨ−ｓｏｃ１’ ，ｒｅｆ
＝ＳＨＡ−２５６（ｃａｔ（ＲＡＮＤ−ｓｏｃ２、ＨＡＳＨ−ｓｏｃ１，ｒｅｆ）
により算出する。
【００３０】
ここで、第１参照中間ハッシュ値ＨＡＳＨ−ｓｏｃ１，ｒｅｆは、下式
ＨＡＳＨ−ｓｏｃ１，ｒｅｆ
＝ＳＨＡ−２５６（Ｐｒｏｇｒａｍ）
に基づいて、予め計算しておいたものである。なお、上式に示してある通り、この計算を行う時には、ｐｒｏｇｒａｍには、エラーが加算されていない。
【００３１】
第２診断部１１９−２は、第１実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌと、第１参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅｆとを比較し、両者が等しいならば、現在のプログラムにはエラーが加算されていないと判断する。両者が異なっているならば、現在のプログラムにはエラーが加算されていると判断する。
【００３２】
第２ＣＰＵ１０３−２は、第２外部記憶装置１６３−２（図８）に格納されている第２プログラム１０５−２を実行する。
【００３３】
第２実地前半演算部１１３−２は、第２プログラム１０５−２の第２実地中間ハッシュ値ＨＡＳＨ−ｓｏｃ２，ｒｅａｌを算出する。例えば、第２プログラム１０５−２のデータをＭａｉｎＰｒｏｇｒａｍ、プログラムに加算されている可能性があるエラーをΔ２とした場合、これの第２実地中間ハッシュ値ＨＡＳＨ−ｓｏｃ２，ｒｅａｌを、下式
ＨＡＳＨ−ｓｏｃ２，ｒｅａｌ
＝ＳＨＡ−２５６（Ｐｒｏｇｒａｍ＋Δ２）
により算出する。ここで、エラーΔ２がゼロでない場合には、例えば、プログラムが改竄されている可能性がある。
【００３４】
第２実地後半演算部１１５−２は、第２実地前半演算部１１３−２が算出した第２実地ハッシュ値ＨＡＳＨ−ｓｏｃ２，ｒｅａｌと第１乱数ＲＡＮＤ−ｓｏｃ１を結合して、これの第２実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌを、下式
ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌ
＝ＳＨＡ−２５６（ｃａｔ（ＲＡＮＤ−ｓｏｃ１、ＨＡＳＨ−ｓｏｃ２，ｒｅａｌ）
により算出する。
【００３５】
参照用第２後半演算部１１７−１は、第１外部記憶装置１６３−１（図８）に格納されている第２参照中間ハッシュ値１０７−１  ＨＡＳＨ−ｓｏｃ２，ｒｅｆと第１乱数ＲＡＮＤ−ｓｏｃ１を結合して、これの第２参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅｆを、下式
ＨＡＳＨ−ｓｏｃ２’ ，ｒｅｆ
＝ＳＨＡ−２５６（ｃａｔ（ＲＡＮＤ−ｓｏｃ１、ＨＡＳＨ−ｓｏｃ２，ｒｅｆ）
により算出する。
【００３６】
ここで、第２参照中間ハッシュ値ＨＡＳＨ−ｓｏｃ２，ｒｅｆは、下式
ＨＡＳＨ−ｓｏｃ２，ｒｅｆ
＝ＳＨＡ−２５６（ＭａｉｎＰｒｏｇｒａｍ）
に基づいて、予め計算しておいたものである。なお、上式に示してある通り、この計算を行う時には、ｐｒｏｇｒａｍには、エラーが加算されていない。
【００３７】
第１診断部１１９−１は、第２実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌと、第２参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅｆとを比較し、両者が等しいならば、現在のプログラムにはエラーが加算されていないと判断する。両者が異なっているならば、現在のプログラムにはエラーが加算されていると判断する。
【００３８】
第１外部インターフェース１２１−１及び第２外部インターフェース１２１−２は、第１プログラム実行装置１０１−１と第２プログラム実行装置１０１−２の間で上記の各種のハッシュ値と乱数を送受信するためのものである。
【００３９】
監視部１５３は、第１外部インターフェース１２１−１と第２外部インターフェース１２１−２の間で各種のハッシュ値と乱数が所定の時間が経過するまでに送受信されるか否かを監視する。
【００４０】
起動制御部１５５は、第１診断部１１９−１による診断結果、第２診断部１１９−２による診断結果及び監視部１５３による監視結果に基づいて、第１プログラム実行装置１０１−１と第２プログラム実行装置１０１−２におけるプログラムの起動を制御する。
【００４１】
次に、図２、図３を参照して、第１の実施の形態による起動制御システムの動作を説明する。
図２を参照すると、まず、電源が入ると（ステップＳ２０１）、第１プログラム実行装置１０１−１では、第１プログラム１０５−１  Ｐｒｏｇｒａｍが展開され（ステップＳ２０３−１）、第１乱数発生部１０９−１が、第１乱数ＲＡＮＤ−ｓｏｃ１を発生し（ステップＳ２０５−１）、この第１乱数ＲＡＮＤ−ｓｏｃ１が、監視部１５３まで通知される（ステップＳ２０７−１）。
【００４２】
同様に、第２プログラム実行装置１０１−２では、第２プログラム１０５−２  ＭａｉｎＰｒｏｇｒａｍが展開され（ステップＳ２０３−２）、第２乱数発生部１０９−２が、第２乱数ＲＡＮＤ−ｓｏｃ２を発生し（ステップＳ２０５−２）、この第２乱数ＲＡＮＤ−ｓｏｃ２が、監視装置１５１まで通知される（ステップＳ２０７−２）。
【００４３】
電源が入ってからこれまで間に、監視装置１５１では、まず、起動が完了し（ステップＳ２３１）、変数ＢＯＯＴ＿ＳＴＥＰがゼロに初期化されている（ステップＳ２３３）。
【００４４】
ステップＳ２０７−１及びステップＳ２０７−２での通知があると、監視装置１５１では、変数ＢＯＯＴ＿ＳＴＥＰが１に変更される（ステップＳ２３５）。
【００４５】
第１プログラム実行装置１０１−１は、変数ＢＯＯＴ＿ＳＴＥＰが１に変更されたならば（ステップＳ２０９−１でＹＥＳ）、監視部１５１から第２乱数ＲＡＮＤ−ｓｏｃ２を読み出し（ステップＳ２１１−１）、第１実地前半演算部１１３−１は、ステップＳ２０３−１で展開した第１プログラム１０５−１  Ｐｒｏｇｒａｍの第１実地中間ハッシュ値ＨＡＳＨ−ｓｏｃ１，ｒｅａｌを算出し（ステップＳ２１３−１）、第１実地後半演算部１１５−１は、ステップ２１１−１で読み出された第２乱数ＲＡＮＤ−ｓｏｃ２と、ステップＳ２１３−１で算出された第１実地中間ハッシュ値ＨＡＳＨ−ｓｏｃ１，ｒｅａｌを結合して、これの第１実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌを算出する（ステップＳ２１５−１）。この第１実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌが監視部１５３まで通知される（ステップＳ２１７−１）。
【００４６】
同様に、第２プログラム実行装置１０１−２は、変数ＢＯＯＴ＿ＳＴＥＰが１に変更されたならば（ステップＳ２０９−２でＹＥＳ）、監視部１５１から第１乱数ＲＡＮＤ−ｓｏｃ１を読み出し（ステップＳ２１１−２）、第２実地前半演算部１１３−２は、ステップＳ２０３−２で展開した第２プログラム１０５−１  ＭａｉｎＰｒｏｇｒａｍの第２実地中間ハッシュ値ＨＡＳＨ−ｓｏｃ２，ｒｅａｌを算出し（ステップＳ２１３−２）、第２実地後半演算部１１５−２は、ステップ２１１−２で読み出された第１乱数ＲＡＮＤ−ｓｏｃ１と、ステップＳ２１３−２で算出された第２実地中間ハッシュ値ＨＡＳＨ−ｓｏｃ２，ｒｅａｌを結合して、これの第２実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌを算出する（ステップＳ２１５−２）。この第２実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌが監視部１５３まで通知される（ステップＳ２１７−２）。
【００４７】
ステップＳ２１７−１及びステップＳ２１７−２での通知があると、監視装置１５１では、変数ＢＯＯＴ＿ＳＴＥＰが２に変更される（ステップＳ２３７）。
【００４８】
第１プログラム実行装置１０１−１は、変数ＢＯＯＴ＿ＳＴＥＰが２に変更されたならば（ステップＳ２１９−１でＹＥＳ）、監視部１５１から第２実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌを読み出し（ステップＳ２２１−１）、参照用第２後半演算部１１７−１は、第２参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅｆを算出し（ステップＳ２２３−１）、第１診断部１１９−１は、第２実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌと、第２参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅｆとに基づいて、第２プログラム１０５−２にエラーが加算されているか否かを検証する（ステップＳ２２５−１）。この検証結果が、監視装置１５１まで通知される（ステップＳ２２７−１）。
【００４９】
第２プログラム実行装置１０１−２は、変数ＢＯＯＴ＿ＳＴＥＰが２に変更されたならば（ステップＳ２１９−２でＹＥＳ）、監視部１５１から第１実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌを読み出し（ステップＳ２２１−２）、参照用第１後半演算部１１７−２は、第１参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅｆを算出し（ステップＳ２２３−２）、第２診断部１１９−２は、第１実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌと、第１参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅｆとに基づいて、第１プログラム１０５−２にエラーが加算されているか否かを検証する（ステップＳ２２５−２）。この検証結果が、監視装置１５１まで通知される（ステップＳ２２７−２）。
【００５０】
ステップＳ２２７−１及びステップＳ２２７−２での通知があると、監視装置１５１では、変数ＢＯＯＴ＿ＳＴＥＰが３に変更される（ステップＳ２３９）。
【００５１】
監視装置１５１では、次に、ステップＳ２２７−１で通知された検証結果及びステップＳ２２７−２で通知された検証結果に基づいて、判定をする。具体的には、両方の検証結果が正常（プログラムにエラーが加算されていないこと）を示している場合に、起動可とし、そうでない場合には、起動不可とする（ステップＳ２４１）。
【００５２】
起動可と判定されたならば、起動制御部１５５は、第１プログラム実行装置１０１−１に対して第１プログラム１０５−１  Ｐｒｏｇｒａｍを起動させ、第２プログラム実行装置１０１−２に対して第２プログラム１０５−２  ＭａｉｎＰｒｏｇｒａｍを起動させる（ステップＳ２５１）。
【００５３】
起動不可と判定されたならば、起動制御部１５５は、第１プログラム実行装置１０１−１に対してエラーコードを表示させ、第２プログラム実行装置１０１−２に対してエラーコードを表示させて（ステップＳ２５３）、監視装置１５１は異常終了する（ステップＳ２５７）。これに応じて、第１プログラム実行装置１０１−１は、エラーコードを表示し（ステップＳ２５５−１）、第２プログラム実行装置１０１−２も、エラーコードを表示する（ステップＳ２５５−２）
【００５４】
また、ステップＳ２０７−１、Ｓ２０７−２、Ｓ２１１−１、Ｓ２１１−２、Ｓ２１７−１、Ｓ２１７−２、Ｓ２２１−１、Ｓ２２１−２、Ｓ２２７−１、Ｓ２２７−２における通知が、それぞれに対応した期間内にない場合には、第１プログラム実行装置１０１−１及び第２プログラム実行装置１０１−２における上記の進行は中止され、監視装置１５１は、ステップＳ２５３を経た後で、異常終了する（ステップＳ２５７）。
【００５５】
図４、図５は、本実施の形態を模式的にまとめたものである。
【００５６】
［第２の実施の形態］
第２の実施の形態が、第１の実施の形態と異なるところは、第１実地後半演算部１１５−１が、第１実地前半演算部１１３−１が算出した第１実地ハッシュ値ＨＡＳＨ−ｓｏｃ１，ｒｅａｌと第１乱数ＲＡＮＤ−ｓｏｃ１を結合して、これの第１実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌを、下式
ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌ
＝ＳＨＡ−２５６（ｃａｔ（ＲＡＮＤ−ｓｏｃ１、ＨＡＳＨ−ｓｏｃ１，ｒｅａｌ）
により算出する点と、参照用第１後半演算部１１７−２が、第２外部記憶装置１６３−２（図８）に格納されている第１参照中間ハッシュ値１０７−２  ＨＡＳＨ−ｓｏｃ１，ｒｅｆと第１乱数ＲＡＮＤ−ｓｏｃ１を結合して、これの第１参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅｆを、下式
ＨＡＳＨ−ｓｏｃ１’ ，ｒｅｆ
＝ＳＨＡ−２５６（ｃａｔ（ＲＡＮＤ−ｓｏｃ１、ＨＡＳＨ−ｓｏｃ１，ｒｅｆ）
により算出する点である。
【００５７】
第２の実施の形態が、更に、第１の実施の形態と異なるところは、第２実地後半演算部１１５−２が、第２実地前半演算部１１３−２が算出した第２実地ハッシュ値ＨＡＳＨ−ｓｏｃ２，ｒｅａｌと第２乱数ＲＡＮＤ−ｓｏｃ２を結合して、これの第２実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌを、下式
ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌ
＝ＳＨＡ−２５６（ｃａｔ（ＲＡＮＤ−ｓｏｃ２、ＨＡＳＨ−ｓｏｃ２，ｒｅａｌ）
により算出する点と、参照用第２後半演算部１１７−１は、第１外部記憶装置１６３−１（図８）に格納されている第２参照中間ハッシュ値１０７−１  ＨＡＳＨ−ｓｏｃ２，ｒｅｆと第２乱数ＲＡＮＤ−ｓｏｃ２を結合して、これの第２参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅｆを、下式
ＨＡＳＨ−ｓｏｃ２’ ，ｒｅｆ
＝ＳＨＡ−２５６（ｃａｔ（ＲＡＮＤ−ｓｏｃ２、ＨＡＳＨ−ｓｏｃ２，ｒｅｆ）
により算出する点である。
【００５８】
図６、図７は、本実施の形態を模式的にまとめたものである。
【００５９】
［第３の実施の形態］
第３の実施の形態が、第１の実施の形態と異なるところは、第１診断部１１９−１が、第１実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌと、第１参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅｆとを比較し、両者が等しいならば、現在のプログラムにはエラーが加算されていないと判断し、両者が異なっているならば、現在のプログラムにはエラーが加算されていると判断する点と、第２診断部１１９−２は、第２実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌと、第２参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅｆとを比較し、両者が等しいならば、現在のプログラムにはエラーが加算されていないと判断し、両者が異なっているならば、現在のプログラムにはエラーが加算されていると判断する点である。
【００６０】
図８、図９は、本実施の形態を模式的にまとめたものである。
【００６１】
［第４の実施の形態］
第４の実施の形態が、第２の実施の形態と異なるところは、第１診断部１１９−１が、第１実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅａｌと、第１参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ１’，ｒｅｆとを比較し、両者が等しいならば、現在のプログラムにはエラーが加算されていないと判断し、両者が異なっているならば、現在のプログラムにはエラーが加算されていると判断する点と、第２診断部１１９−２は、第２実地最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅａｌと、第２参照最終ハッシュ値ＨＡＳＨ−ｓｏｃ２’，ｒｅｆとを比較し、両者が等しいならば、現在のプログラムにはエラーが加算されていないと判断し、両者が異なっているならば、現在のプログラムにはエラーが加算されていると判断する点である。
【００６２】
図１０、図１１は、本実施の形態を模式的にまとめたものである。
【００６３】
［第５の実施の形態］
第５の実施の形態は、演算処理装置の数を３以上にしたものである。図４において左側の演算処理装置が右側の演算処理装置を用いて、自演算処理装置に対応するプログラムの検証をしているように、それぞれの演算処理装置を本実施形態に関連した部分を循環的に接続する。
例えば、演算処理装置の数を３にした場合、第１の演算処理装置が第２の演算処理装置を用いて第１の演算処理装置に対応するプログラムの検証をし、第２の演算処理装置が第３の演算処理装置を用いて第２の演算処理装置に対応するプログラムの検証をし、第３の演算処理装置が第１の演算処理装置を用いて第３の演算処理装置に対応するプログラムの検証をする。
そして、監視装置は、円環状の接続において相互に隣接する演算処理装置間の通信を監視し、全ての演算処理装置から検証結果を取得し、これにより全ての演算処理装置の起動を制御する。
図４のように左側の演算処理装置が右側の演算処理装置を用いる代わりに、図７、図９又は図１１のように左側の演算処理装置が右側の演算処理装置を用いてもよい。
【００６４】
［第６の実施の形態］
中間ハッシュ値から最終ハッシュ値を算出する際に、中間ハッシュ値に、第１乱数ＲＡＮＤ−ｓｏｃ１と第２乱数ＲＡＮＤ−ｓｏｃ２を結合してもよい。
【００６５】
［第７の実施の形態］
ステップＳ２４１、Ｓ２５１で、第１プログラム実行装置１０１−１と第２プログラム実行装置１０１−２を独立して扱い、検証結果が正常であるプログラムを起動するようにしてもよい。
【００６６】
［第８の実施の形態］
ハッシュ関数として、SHA-256の代わりに、SHA-224、SHA-256、SHA-384又はSHA-512を用いてもよい。
【００６７】
［第９の実施の形態］
図１２は、第１プログラム実行装置１０１−１と第２プログラム実行装置１０１−２の起動制御に係わらない部分も含んだ構成を示すブロック図である。
【００６８】
図１２を参照すると、第１プログラム実行装置１０１−１は、第１ＣＰＵ１０３−１、第１外部インターフェース１２１−１、第１タイマ１３１−１、第１メモリコントロール１３３−１及び第１外部記憶装置インターフェース１３５−１を含む。
【００６９】
第１ＣＰＵ１０３−１は、第１外部記憶装置インターフェース１３５−１を介して、第１外部記憶装置１６３−１にアクセスし、第１メモリコントロール１３３−１を介して、第１メモリ１６１−１にアクセスする。また、第１ＣＰＵ１０３−１は、第１外部記憶装置インターフェース１３５−１に格納されている起動制御プログラムを読み込んで実行することにより、第１プログラム実行装置１０１−１を、第１起動制御装置として機能させる。この際、第１ＣＰＵ１０３−１は、第１メモリ１６１−１にアクセスしてもよい。この第１起動制御装置は、図１に示すような第１演算部１１１−１、第１乱数発生部１０９−１、第２参照後半演算部１１７−１及び第１診断部１１９−１を含む。
【００７０】
第２プログラム実行装置１０１−２は、第２ＣＰＵ１０３−２、第２外部インターフェース１２１−２、第２タイマ１３１−２、第２メモリコントロール１３３−２及び第２外部記憶装置インターフェース１３５−２を含む。
【００７１】
第２ＣＰＵ１０３−２は、第２外部記憶装置インターフェース１３５−２を介して、第２外部記憶装置１６３−２及び第３外部記憶装置１６３−３にアクセスし、第２メモリコントロール１３３−２を介して、第２メモリ１６１−２にアクセスする。また、第２ＣＰＵ１０３−２は、第２外部記憶装置インターフェース１３５−２に格納されている起動制御プログラムを読み込んで実行することにより、第２プログラム実行装置１０１−２を、第２起動制御装置として機能させる。この際、第２ＣＰＵ１０３−２は、第２メモリ１６１−２にアクセスしてもよい。この第２起動制御装置は、図１に示すような第２演算部１１１−２、第２乱数発生部１０９−２、第１参照後半演算部１１７−２及び第２診断部１１９−２を含む。
【００７２】
［第１０の実施の形態］
図１３は、第１プログラム実行装置１０１−１と第２プログラム実行装置１０１−２が複合機のために利用される場合の複合機の構成を示す機能ブロック図である。図１２に示す構成要素に加え、プリントエンジン制御ブロック１７１、スキャナ制御ブロック１７３を含み、第２プログラム実行装置１０１−２は、これらに接続される。
【００７３】
［第１１の実施の形態］
図１４は、第１１の実施の形態の複合機の構成を示す断面である。
図１４を参照すると、複合機８００は、外部から伝達された画像データに応じて、所定のシート（記録用紙）に対して多色及び単色の画像を形成するもので、装置本体８１０と、自動原稿処理装置８２０とにより構成されている。装置本体８１０は、露光ユニット１、現像器２、感光体ドラム３、クリーナユニット４、帯電器５、中間転写ベルトユニット６、定着ユニット７、給紙カセット８１、排紙トレイ９１等を有して構成されている。
【００７４】
装置本体８１０の上部には、原稿が載置される透明ガラスからなる原稿載置台９２が設けられ、原稿載置台９２の上側には自動原稿処理装置８２０が取り付けられている。自動原稿処理装置８２０は、原稿載置台９２の上に自動で原稿を搬送する。また原稿処理装置８２０は矢印Ｍ方向に回動自在に構成され、原稿載置台９２の上を開放することにより原稿を手置きで置くことができるようになっている。
【００７５】
本複合機において扱われる画像データは、ブラック（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）の各色を用いたカラー画像に応じたものである。従って、現像器２、感光体ドラム３、帯電器５、クリーナユニット４は、各色に応じた４種類の潜像を形成するようにそれぞれ４個ずつ設けられ、それぞれブラック、シアン、マゼンタ、イエローに設定され、これらによって４つの画像ステーションが構成されている。
【００７６】
帯電器５は、感光体ドラム３の表面を所定の電位に均一に帯電させるための帯電手段であり、図１に示すようなチャージャ型の他、接触型のローラ型やブラシ型の帯電器が用いられることもある。
【００７７】
露光ユニット１は、本発明に関わる画像書込み装置に該当するものであり、レーザ出射部及び反射ミラー等を備えたレーザスキャニングユニット（ＬＳＵ）として構成される。露光ユニット１は、レーザビームを走査するポリゴンミラーと、ポリゴンミラーによって反射されたレーザ光を感光体ドラム３に導くためのレンズやミラー等の光学要素が配置されている。露光ユニット１を構成する光走査装置の構成は、後述して具体的に説明する。また露光ユニット１としては、この他発光素子をアレイ状に並べた例えばＥＬやＬＥＤ書込みヘッドを用いる手法も採用できる。
【００７８】
露光ユニット１は、帯電された感光体ドラム３を入力された画像データに応じて露光することにより、その表面に、画像データに応じた静電潜像を形成する機能を有する。現像器２はそれぞれの感光体ドラム３上に形成された静電潜像を４色（ＹＭＣＫ）のトナーにより顕像化するものである。またクリーナユニット４は、現像・画像転写後における感光体ドラム３上の表面に残留したトナーを、除去・回収する。
【００７９】
感光体ドラム３の上方に配置されている中間転写ベルトユニット６は、中間転写ベルト６１、中間転写ベルト駆動ローラ６２、中間転写ベルト従動ローラ６３、中間転写ローラ６４、及び中間転写ベルトクリーニングユニット６５を備えている。上記中間転写ローラ６４は、ＹＭＣＫ用の各色に対応して４本設けられている。
【００８０】
中間転写ベルト駆動ローラ６２、中間転写ベルト従動ローラ６３、及び中間転写ローラ６４は、中間転写ベルト６１を張架して回転駆動させる。また各中間転写ローラ６４は、感光体ドラム３のトナー像を、中間転写ベルト６１上に転写するための転写バイアスを与える。
【００８１】
中間転写ベルト６１は、各感光体ドラム３に接触するように設けられている、そして、感光体ドラム３に形成された各色のトナー像を中間転写ベルト６１に順次的に重ねて転写することによって、中間転写ベルト６１上にカラーのトナー像（多色トナー像）を形成する機能を有している。中間転写ベルト６１は、例えば厚さ１００μｍ〜１５０μｍ程度のフィルムを用いて無端状に形成されている。
【００８２】
感光体ドラム３から中間転写ベルト６１へのトナー像の転写は、中間転写ベルト６１の裏側に接触している中間転写ローラ６４によって行われる。中間転写ローラ６４には、トナー像を転写するために高電圧の転写バイアス（トナーの帯電極性（−）とは逆極性（＋）の高電圧）が印加されている。中間転写ローラ６４は、直径８〜１０ｍｍの金属（例えばステンレス）軸をベースとし、その表面が導電性の弾性材（例えばＥＰＤＭ，発泡ウレタン等）により覆われているローラである。この導電性の弾性材により、中間転写ベルト６１に対して均一に高電圧を印加することができる。本実施の形態では転写電極としてローラ形状を使用しているが、それ以外にブラシなども用いることが可能である。
【００８３】
上述の様に各感光体ドラム３上で各色相に応じて顕像化された静電像は中間転写ベルト６１で積層される。このように、積層された画像情報は中間転写ベルト６１の回転によって、後述の用紙と中間転写ベルト６１の接触位置に配置される転写ローラ１０によって用紙上に転写される。
【００８４】
このとき、中間転写ベルト６１と転写ローラ１０は所定ニップで圧接されると共に、転写ローラ１０にはトナーを用紙に転写させるための電圧が印加される（トナーの帯電極性（−）とは逆極性（＋）の高電圧）。さらに、転写ローラ１０は上記ニップを定常的に得るために、転写ローラ１０もしくは前記中間転写ベルト駆動ローラ６２の何れか一方を硬質材料（金属等）とし、他方を弾性ローラ等の軟質材料（弾性ゴムローラ、または発泡性樹脂ローラ等々）が用いられる。
【００８５】
また、上記のように、感光体ドラム３に接触することにより中間転写ベルト６１に付着したトナー、もしくは転写ローラ１０によって用紙上に転写が行われず中間転写ベルト６１上に残存したトナーは、次工程でトナーの混色を発生させる原因となるために、中間転写ベルトクリーニングユニット６５によって除去・回収されるように設定されている。中間転写ベルトクリーニングユニット６５には、中間転写ベルト６１に接触する例えばクリーニング部材としてクリーニングブレードが備えられており、クリーニングブレードが接触する中間転写ベルト６１は、裏側から中間転写ベルト従動ローラ６３で支持されている。
【００８６】
給紙カセット８１は、画像形成に使用するシート（記録用紙）を蓄積しておくためのトレイであり、装置本体８１０の露光ユニット１の下側に設けられている。また手差し給紙カセット８２にも画像形成に使用するシートを置くことができる。また、装置本体８１０の上方に設けられている排紙トレイ９１は、印刷済みのシートをフェイスダウンで集積するためのトレイである。
【００８７】
また装置本体８１０には、給紙カセット８１及び手差し給紙カセット８２のシートを転写ローラ１０や定着ユニット７を経由させて排紙トレイ９１に送るための、略垂直形状の用紙搬送路Ｓが設けられている。給紙カセット８１ないし手差し給紙カセット８２から排紙トレイ９１までの用紙搬送路Ｓの近傍には、ピックアップローラ１１ａ，１１ｂ、複数の搬送ローラ１２ａ〜１２ｄ，レジストローラ１３、転写ローラ１０、定着ユニット７等が配されている。
【００８８】
搬送ローラ１２ａ〜１２ｄは、シートの搬送を促進・補助するための小型のローラであり、用紙搬送路Ｓに沿って複数設けられている。またピックアップローラ１１ａは、給紙カセット８１の端部近傍に備えられ、給紙カセット８１からシートを１枚ずつピックアップして用紙搬送路Ｓに供給する。同様にまたピックアップローラ１１ｂは、手差し給紙カセット８２の端部近傍に備えられ、手差し給紙カセット８２からシートを１枚ずつピックアップして用紙搬送路Ｓに供給する。
【００８９】
また、レジストローラ１３は、用紙搬送路Ｓを搬送されているシートを一旦保持するものである。そして、感光体ドラム３上のトナー像の先端とシートの先端を合わせるタイミングでシートを転写ローラ１０に搬送する機能を有している。
【００９０】
定着ユニット７は、ヒートローラ７１及び加圧ローラ７２を備えており、ヒートローラ７１及び加圧ローラ７２は、シートを挟んで回転するようになっている。またヒートローラ７１は、図示しない温度検出器からの信号に基づいて制御部によって所定の定着温度となるように設定されており、加圧ローラ７２とともにトナーをシートに熱圧着することにより、シートに転写された多色トナー像を溶融・混合・圧接し、シートに対して熱定着させる機能を有している。またヒートローラ７１を外部から加熱するための外部加熱ベルト７３が設けられている。
【００９１】
次にシート搬送経路を詳細に説明する。上述のように、複合機には予めシートを収納する給紙カセット８１、及び手差し給紙カセット８２が設けられている。これら給紙カセット８１，８２からシートを給紙するために、各々ピックアップローラ１１ａ，１１ｂが配置され、シートを１枚ずつ搬送路Ｓに導くようになっている。
【００９２】
各給紙カセット８１，８２から搬送されるシートは用紙搬送路Ｓの搬送ローラ１２ａによってレジストローラ１３まで搬送され、シートの先端と中間転写ベルト６１上の画像情報の先端を整合するタイミングで転写ローラ１０に搬送され、シート上に画像情報が書き込まれる。その後、シートは定着ユニット７を通過することによってシート上の未定着トナーが熱で溶融・固着され、その後に配された搬送ローラ１２ｂを経て排紙トレイ９１上に排出される。
【００９３】
上記の搬送経路は、シートに対する片面印字要求のときのものであるが、これに対して両面印字要求の時は、上記のように片面印字が終了し定着ユニット７を通過したシートの後端が最終の搬送ローラ１２ｂで把持されたときに、搬送ローラ１２ｂが逆回転することによってシートを搬送ローラ１２ｃ，１２ｄに導く。そしてその後レジストローラ１３を経てシート裏面に印字が行われた後にシートが排紙トレイ９１に排出される。
【００９４】
なお、上記の起動制御システムは、ハードウェア、ソフトウェア又はこれらの組合わせにより実現することができる。また、上記の起動制御システムにより行なわれる起動制御方法も、ハードウェア、ソフトウェア又はこれらに組合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【００９５】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory)）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【産業上の利用可能性】
【００９６】
本発明は、演算処理装置の起動を制御するために用いることができる。
【符号の説明】
【００９７】
１０１−１  第１プログラム実行装置
１０１−２  第２プログラム実行装置
１５１  監視装置
１０３−１  第１ＣＰＵ
１０９−１  第１乱数発生部
１１１−１  第１演算部
１１７−１  参照用第２後半演算部
１２１−１  第１外部インターフェース
１１３−１  第１実地前半演算部
１１５−１  第１実地後半演算部
１０３−２  第２ＣＰＵ
１０９−２  第２乱数発生部
１１１−２  第２演算部
１１７−２  参照用第２後半演算部
１２１−２  第２外部インターフェース
１１３−２  第２実地前半演算部
１１５−２  第２実地後半演算部
１５３  監視部
１５５  起動制御部
【図１】
2018010471.tif 000003
【図２】
2018010471.tif 000004
【図３】
2018010471.tif 000005
【図４】
2018010471.tif 000006
【図５】
2018010471.tif 000007
【図６】
2018010471.tif 000008
【図７】
2018010471.tif 000009
【図８】
2018010471.tif 000010
【図９】
2018010471.tif 000011
【図１０】
2018010471.tif 000012
【図１１】
2018010471.tif 000013
【図１２】
2018010471.tif 000014
【図１３】
2018010471.tif 000015
【図１４】
2018010471.tif 000016