(57)【特許請求の範囲】
【請求項１】
外部に接続される機能手段に予め定められた機能を実現させるための制御プログラムを実行する実行手段と、
前記制御プログラム、前記機能手段の状態を示す状態変数、および初回の起動または二回目以降の起動のいずれであるかの起動履歴を、読み書き可能であって、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、
前記実行手段が前記機能手段と通信する通信手段と
を含み、
前記実行手段は、前記制御プログラムを前記記憶手段に記憶させ当該制御プログラムを読み出して実行する第１手順と、当該制御プログラムを当該記憶手段に記憶させることなく既に当該記憶手段に記憶された当該制御プログラムを読み出して実行する第２手順と、を有し、起動する際に前記起動履歴を参照し、初回の起動である場合には当該第１手順を実行し、二回目以降の起動である場合には当該第２手順を実行するとともに、前記通信手段により前記機能手段と通信し当該機能手段の状態を示す状態変数を取得して当該記憶手段に記憶させることにより、動作可能な状態に移行することを特徴とする情報処理装置。
【請求項２】
前記実行手段は、前記第２手順を実行した後、前記機能手段に送信した応答要求に対して当該機能手段から肯定応答を前記通信手段を介して受信しない場合に、当該機能手段に初期化を指示する初期化信号を当該通信手段を介して送信するとともに、前記第１手順を実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記実行手段は、前記実行手段を制御する基本プログラムを前記記憶手段に記憶させ当該基本プログラムを読み出して実行する第３手順をさらに有し、前記初回の起動である場合に前記第１手順を実行する前に当該第３手順を実行することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記記憶手段に転送される前記基本プログラムまたは制御プログラムを圧縮した状態で格納する格納手段をさらに含み、
前記実行手段は、前記格納手段から圧縮された前記基本プログラムまたは前記制御プログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記不揮発性メモリが、ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭのいずれかであることを特徴とする請求項１ないし３のいずれか１項に記載の情報処理装置。
【請求項６】
記録材に画像を形成する画像形成部と、
前記画像形成部の動作を制御する制御部とを備え、
前記制御部は、
前記画像形成部を制御する制御プログラムを実行する実行手段と、
前記制御プログラム、前記画像形成部の状態を示す状態変数、および初回の起動または二回目以降の起動のいずれであるかの起動履歴を、読み書き可能であって、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、
前記実行手段が前記画像形成部と通信する通信手段と
を含み、
前記実行手段は、前記制御プログラムを前記記憶手段に記憶させ当該制御プログラムを読み出して実行する第１手順と、当該制御プログラムを当該記憶手段に記憶させることなく既に当該記憶手段に記憶された当該制御プログラムを読み出して実行する第２手順と、を有し、起動する際に前記起動履歴を参照し、初回の起動である場合には当該第１手順を実行し、二回目以降の起動である場合には当該第２手順を実行するとともに、前記通信手段により前記画像形成部と通信し当該画像形成部の状態を示す状態変数を取得して当該記憶手段に記憶させることにより、動作可能な状態に移行することを特徴とする画像形成装置。
【請求項７】
コンピュータに、
外部に接続される機能手段に予め定められた機能を実現させるための制御プログラムを実行させる機能と、
前記制御プログラム、前記機能手段の状態を示す状態変数、および初回の起動または二回目以降の起動のいずれであるかの起動履歴を、読み書き可能であって、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、
前記不揮発性メモリへの制御プログラムの転送に連続して当該不揮発性メモリに記憶される制御プログラムを読み出して実行する第１手順と、当該不揮発性メモリへの制御プログラムの転送に連続せず既に当該不揮発性メモリに記憶されている当該制御プログラムを読み出して実行する第２手順と、を有し、起動する際に前記起動履歴が初回の起動である場合には当該第１手順を実行させ、二回目以降の起動である場合には当該第２手順を実行させる機能と、
前記機能手段と通信して、当該機能手段の状態を示す状態変数を取得して前記不揮発性メモリに記憶させる機能と
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像形成装置およびプログラムに関する。
【背景技術】
【０００２】
公報記載の従来技術として、外部コンピュータより送られてきた画像データをプリント出力する場合、コンピュータインターフェイス部は外部コンピュータよりこのようなジョブコマンドを受けると、ＣＰＵにそのコマンドを送り、ＣＰＵはコンピュータインターフェイス部を通して外部コンピュータに応答すると同時に、オン／オフ制御信号発生回路にそのジョブ内容を送ると、オン／オフ制御信号発生回路が画像処理部、画像形成部、ＰＤＬ展開部の各ブロックへのスイッチ回路をオンする制御信号を出力することで、これらの各ブロックに電源が供給されるようした画像形成装置が存在する（特許文献１参照）。
【０００３】
また、他の公報記載の従来技術として、主記憶装置の一部を構成する不揮発性記憶部に予め記憶された主記憶イメージからシステムの起動を行うとともに、不揮発性記憶部上の主記憶イメージのブロック毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーし、そのコピー上で書き込みを行い、以後、コピー済の主記憶イメージの領域へのアクセスを、コピーへのアクセスに切り替えるようにした計算機システムが存在する（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２９５０６５号公報
【特許文献２】特開２００５−０１０８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、ＣＰＵの制御により予め定められた機能を実行する制御装置を含んで構成される情報処理装置等にて、起動処理の高速化、特に二回目以降の起動処理の高速化を図ることを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、外部に接続される機能手段に予め定められた機能を実現させるための制御プログラムを実行する実行手段と、前記制御プログラム、前記機能手段の状態を示す状態変数、および初回の起動または二回目以降の起動のいずれであるかの起動履歴を、読み書き可能であって、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記実行手段が前記機能手段と通信する通信手段とを含み、前記実行手段は、前記制御プログラムを前記記憶手段に記憶させ当該制御プログラムを読み出して実行する第１手順と、当該制御プログラムを当該記憶手段に記憶させることなく既に当該記憶手段に記憶された当該制御プログラムを読み出して実行する第２手順と、を有し、起動する際に前記起動履歴を参照し、初回の起動である場合には当該第１手順を実行し、二回目以降の起動である場合には当該第２手順を実行するとともに、前記通信手段により前記機能手段と通信し当該機能手段の状態を示す状態変数を取得して当該記憶手段に記憶させることにより、動作可能な状態に移行することを特徴とする情報処理装置である。
請求項２に記載の発明は、前記実行手段は、前記第２手順を実行した後、前記機能手段に送信した応答要求に対して当該機能手段から肯定応答を前記通信手段を介して受信しない場合に、当該機能手段に初期化を指示する初期化信号を当該通信手段を介して送信するとともに、前記第１手順を実行することを特徴とする請求項１に記載の情報処理装置である。
請求項３に記載の発明は、前記実行手段は、前記実行手段を制御する基本プログラムを前記記憶手段に記憶させ当該基本プログラムを読み出して実行する第３手順をさらに有し、前記初回の起動である場合に前記第１手順を実行する前に当該第３手順を実行することを特徴とする請求項１または２に記載の情報処理装置である。
請求項４に記載の発明は、前記記憶手段に転送される前記基本プログラムまたは制御プログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮された前記基本プログラムまたは前記制御プログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項３に記載の情報処理装置である。
請求項５に記載の発明は、前記不揮発性メモリが、ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭのいずれかであることを特徴とする請求項１ないし３のいずれか１項に記載の情報処理装置である。
請求項６に記載の発明は、記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部を制御する制御プログラムを実行する実行手段と、前記制御プログラム、前記画像形成部の状態を示す状態変数、および初回の起動または二回目以降の起動のいずれであるかの起動履歴を、読み書き可能であって、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記実行手段が前記画像形成部と通信する通信手段とを含み、前記実行手段は、前記制御プログラムを前記記憶手段に記憶させ当該制御プログラムを読み出して実行する第１手順と、当該制御プログラムを当該記憶手段に記憶させることなく既に当該記憶手段に記憶された当該制御プログラムを読み出して実行する第２手順と、を有し、起動する際に前記起動履歴を参照し、初回の起動である場合には当該第１手順を実行し、二回目以降の起動である場合には当該第２手順を実行するとともに、前記通信手段により前記画像形成部と通信し当該画像形成部の状態を示す状態変数を取得して当該記憶手段に記憶させることにより、動作可能な状態に移行することを特徴とする画像形成装置である。
請求項７に記載の発明は、コンピュータに、外部に接続される機能手段に予め定められた機能を実現させるための制御プログラムを実行させる機能と、前記制御プログラム、前記機能手段の状態を示す状態変数、および初回の起動または二回目以降の起動のいずれであるかの起動履歴を、読み書き可能であって、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリへの制御プログラムの転送に連続して当該不揮発性メモリに記憶される制御プログラムを読み出して実行する第１手順と、当該不揮発性メモリへの制御プログラムの転送に連続せず既に当該不揮発性メモリに記憶されている当該制御プログラムを読み出して実行する第２手順と、を有し、起動する際に前記起動履歴が初回の起動である場合には当該第１手順を実行させ、二回目以降の起動である場合には当該第２手順を実行させる機能と、前記機能手段と通信して、当該機能手段の状態を示す状態変数を取得して前記不揮発性メモリに記憶させる機能とを実現させるためのプログラムである。
【発明の効果】
【０００７】
請求項１記載の発明によれば、本構成を有していない場合と比較して、起動処理の高速化、特に二回目以降の起動処理の高速化が図れる。
請求項２記載の発明によれば、本構成を有しない場合と比較して、起動処理のやり直しができる。
請求項３記載の発明によれば、本構成を有していない場合と比較して、起動処理をさらに高速化できる。
請求項４記載の発明によれば、本構成を有していない場合と比較して、制御プログラム等を小さな容量で管理できる。
請求項５記載の発明によれば、例えば不揮発性メモリとしてＥＥＰＲＯＭあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。
請求項６記載の発明によれば、本構成を有していない場合と比較して、画像形成装置の起動処理の高速化、特に二回目以降の起動処理の高速化が図れる。
請求項７記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化、特に二回目以降の起動処理の高速化が図れる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態が適用される画像形成システムの構成の一例を示す図である。
【図２】画像形成装置に設けられた制御部の内部構成の一例を示すハードウェアブロック図である。
【図３】メインメモリによるメモリマップの構成の一例を示す図である。
【図４】画像形成装置の起動処理を説明するためのフローチャートである。
【図５】初回の起動処理における制御部と各構成との通信制御の一例を示すシーケンス図である。
【図６】画像形成装置の二回目以降の起動処理を説明するためのフローチャートである。
【図７】二回目以降の起動処理における制御部と各構成との通信制御の一例を示すシーケンス図である。
【図８】初回と二回目以降とにおける起動処理の所要時間を比較して示した図である。
【図９】プログラム／変数展開領域におけるプログラムおよび変数の上書きを説明する図である。
【図１０】各構成のいずれかから肯定応答信号Ａｃｋを受信しない場合の起動処理における制御部と各構成との通信制御の一例を示すシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態が適用される画像形成システムの構成の一例を示す図である。
この画像形成システムは、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を備えた所謂複合機として動作する画像形成装置１と、画像形成装置１に接続されるネットワーク２と、ネットワーク２に接続される端末装置３と、ネットワーク２に接続されるファクシミリ装置４と、ネットワーク２に接続されるサーバ装置５とを有している。
【００１０】
ここで、ネットワーク２は、インターネット回線や電話回線等によって構成されている。また、端末装置３は、ネットワーク２を介して、画像形成装置１に画像の形成等を指示するものであり、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）で構成される。さらに、ファクシミリ装置４は、ネットワーク２を介して、画像形成装置１との間でファクシミリを送受信する。さらにまた、サーバ装置５は、ネットワーク２を介して、画像形成装置１との間でデータ（プログラムを含む）を送受信する。
【００１１】
また、画像形成装置１は、紙等の記録材に記録された画像を読み取る画像読取部１０と、紙等の記録材に画像を形成する画像形成部２０と、ユーザからスキャン機能、プリント機能、コピー機能およびファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェース（ＵＩ）３０と、ネットワーク２を介して端末装置３、ファクシミリ装置４およびサーバ装置５との間でデータの送受信を行う送受信部４０と、これら画像読取部１０、画像形成部２０、ＵＩ３０および送受信部４０の動作を制御する制御部５０とを備えている。そして、この画像形成装置１では、画像読取部１０によってスキャン機能が実現され、画像形成部２０によってプリント機能が実現され、画像読取部１０および画像形成部２０によってコピー機能が実現され、画像読取部１０、画像形成部２０および送受信部４０によってファクシミリ機能が実現される。なお、送受信部４０は、例えばインターネット回線用のものと電話回線用のものとを、別々に設けるようにしてもかまわない。
画像読取部１０、画像形成部２０、ＵＩ３０、送受信部４０などは機能手段の一例である。
【００１２】
図２は、図１に示す画像形成装置１に設けられた制御部５０の内部構成の一例を示すハードウェアブロック図である。
情報処理装置の一例としての制御部５０は、種々の演算を実行することによって画像形成装置１の各部を制御する実行手段の一例としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）５１と、ＣＰＵ５１に接続され、ＣＰＵ５１との間で各種データのやりとりを行うバスブリッジ５２とを備えている。制御部５０において、バスブリッジ５２には、第１のクロックでデータのやりとりを行うメモリバス５３と、第１のクロックよりも周波数が低い第２のクロックでデータのやりとりを行うＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス５４とが接続されている。
【００１３】
また、制御部５０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５５と、不揮発性ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５６と、揮発性ＲＡＭ５７とを備えている。そして、これらＲＯＭ５５、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７は、それぞれ、メモリバス５３に接続されている。
【００１４】
さらに、制御部５０は、ＵＩ３０を制御するためのＵＩインタフェース回路（ＵＩＩＦ）６１と、画像読取部１０を制御するためのスキャンインタフェース回路（スキャンＩＦ）６２と、画像形成部２０を制御するためのプリントインタフェース回路（プリントＩＦ）６３と、送受信部４０を制御するためのネットワークインタフェース回路（ネットワークＩＦ）６４と、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの汎用インタフェースを制御するための汎用インタフェース回路（汎用ＩＦ）６５とを備えている。そして、これらＵＩＩＦ６１、スキャンＩＦ６２、プリントＩＦ６３、ネットワークＩＦ６４および汎用ＩＦ６５は、それぞれ、ＰＣＩバス５４に接続されている。なお、本実施の形態では、汎用ＩＦ６５に対し、例えば、装着されたメモリカードに対しデータを読み書きするカードリーダ７０が接続されている。
ＵＩＩＦ６１、スキャンＩＦ６２、プリントＩＦ６３、ネットワークＩＦ６４および汎用ＩＦ６５およびＰＣＩバス５４は通信手段の一例である。
【００１５】
そして、制御部５０を構成する各部（ＣＰＵ５１等）が動作するクロックの基準となる基準クロックを生成するクロックジェネレータ５８と、ＣＰＵ５１等の動作に伴って計時を行うタイマ５９とをさらに備えている。
【００１６】
さらに、制御部５０は、メインスイッチＭＳｗによって、電源がオン／オフされる。また、ＵＩ３０、画像読取部１０、画像形成部２０、送受信部４０、カードリーダ７０は、それぞれ制御部５０によって制御されるサブスイッチＳＳｗ１〜ＳＳｗ５によって、電源がオン／オフされる。
【００１７】
本実施の形態における制御部５０は、例えば、１チップのマイクロコントローラによって構成されている。ただし、制御部５０を、複数のチップで構成してもかまわない。
【００１８】
また、本実施の形態の制御部５０において、ＣＰＵ５１は、ＲＯＭ５５、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７に直接アクセスすることが可能となっている。以下の説明では、メモリバス５３に接続されるＲＯＭ５５、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７を、まとめて『メインメモリ』と称することがある。
【００１９】
ここで、格納手段の一例としてのＲＯＭ５５は、所謂マスクＲＯＭ、各種ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ：例えばＯＴＰ  ＲＯＭ  （Ｏｎｅ  Ｔｉｍｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＵＶ−ＥＰＲＯＭ（Ｕｌｔｒａ−Ｖｉｏｌｅｔ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ））、フラッシュメモリなどで構成されている。なお、この例では、ＲＯＭ５５として、フラッシュメモリが用いられている。
【００２０】
また、記憶手段の一例としての不揮発性ＲＡＭ５６は、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）、ＰＲＡＭ（Ｐｈａｓｅ  ｃｈａｎｇｅ  ＲＡＭ）、ＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  ＲＡＭ）など、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリによって構成されている。なお、この例では、不揮発性ＲＡＭ５６として、ＲＯＭ５５として用いられるフラッシュメモリよりも高速にデータの読み書きが可能なＭＲＡＭが用いられている。
【００２１】
さらに、揮発性ＲＡＭ５７は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）やＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）など、電源を供給しないと、記憶している情報を保持することができない揮発性メモリによって構成されている。なお、この例では、揮発性ＲＡＭ５７として、ＤＲＡＭが用いられている。
【００２２】
そして、本実施の形態では、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７が、ともに第１のクロックでデータの読み書きを行う。このため、不揮発性ＲＡＭ５６は、揮発性ＲＡＭ５７（この例ではＤＲＡＭ）と同等の読み書き性能を有していることになる。
【００２３】
そして、メインスイッチＭＳｗがオフになると、ＣＰＵ５１に設けられたレジスタ群およびキャッシュメモリ（ともに揮発性メモリで構成される）の記憶内容はクリアされる。また、制御部５０に設けられた揮発性ＲＡＭ５７の記憶内容もクリアされる。一方、メインスイッチＭＳｗがオフになっても、制御部５０に設けられたＲＯＭ５５および不揮発性ＲＡＭ５６の記憶内容はクリアされない。そして、不揮発性ＲＡＭ５６には、オフになる前に記憶させた内容がそのまま保持される。
なお、後述するイニシャル・プログラム・ローダ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ：ＩＰＬ）が起動されるときも、ＣＰＵ５１に設けられたレジスタ群およびキャッシュメモリの記憶内容はクリア（リセット）される。
【００２４】
図３は、上述したメインメモリ（ＲＯＭ５５、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７）によるメモリマップの構成の一例を示す図である。
この例では、ＲＯＭ５５に圧縮ＯＳ領域Ａ０１および圧縮プログラム領域Ａ０２が配置されている。不揮発性ＲＡＭ５６にＯＳ展開領域Ａ１１、プログラム／変数展開領域Ａ１２および履歴領域Ａ１３が配置されている。また、履歴領域Ａ１３は、起動履歴の一例としての起動フラグを記憶する起動フラグ領域Ａ１３ａと、構成ステータスを記憶する構成ステータス領域Ａ１３ｂと、ログを記憶するログ領域Ａ１３ｃとを有している。そして、揮発性ＲＡＭ５７にワーク領域Ａ２１およびバッファ領域Ａ２２が配置されている。
【００２５】
これらのうち、ＲＯＭ５５に配置される圧縮ＯＳ領域Ａ０１は、画像形成装置１を起動するにあたり、制御部５０においてＣＰＵ５１が実行するプログラムである、イニシャル・プログラム・ローダ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ：ＩＰＬ）および圧縮した基本プログラムの一例としてのオペレーションシステム（ＯＳ）（圧縮ＯＳ）を格納している。また、ＲＯＭ５５に配置される圧縮プログラム領域Ａ０２は、本実施の形態の画像形成装置１に実装され得る各構成を動作させる制御プログラムの一例としてのプログラムおよびこのプログラムで用いられる状態変数の一例としての変数を、構成毎にまとめて圧縮した状態で格納している。例えば図３に示す例では、圧縮プログラム領域Ａ０２に、構成１を動作させるためのプログラム／変数を圧縮した圧縮プログラム（構成１用圧縮プログラム）、構成２を動作させるためのプログラム／変数を圧縮した圧縮プログラム（構成２用圧縮プログラム）、構成３を動作させるためのプログラム／変数を圧縮した圧縮プログラム（構成３用圧縮プログラム）、…を格納している。なお、ここでいう構成１、２、３、…は、上述した画像読取部１０、画像形成部２０、ＵＩ３０、送受信部４０、そしてカードリーダ７０等のそれぞれに対応するものであり、画像形成装置１の本体に対し着脱可能であって、画像形成装置１に装着された場合には、単独であるいは他の構成とともに、予め決められた機能を発揮するものである。
【００２６】
このように、本実施の形態では、実際に使用する際の画像形成装置１の構成（図１に示す画像形成装置１はカードリーダ７０を備えていない）とは関係なく、この画像形成装置１に実装され得る各構成に対応した複数の圧縮プログラムを、ＲＯＭ５５に配置された圧縮プログラム領域Ａ０２に、予め格納させている。これにより、画像形成装置１の装置構成の変更に伴って、ＲＯＭ５５を交換したり、あるいは、ＲＯＭ５５に格納されるプログラムの更新を行ったりしなくてもよいようにしている。
【００２７】
次に、不揮発性ＲＡＭ５６に配置されるＯＳ展開領域Ａ１１は、ＲＯＭ５５に格納された圧縮ＯＳを、ＣＰＵ５１が展開（伸張）することによって得たＯＳを格納する。
プログラム／変数展開領域Ａ１２は、上述した圧縮プログラム領域Ａ０２から読み出した圧縮プログラムを、ＣＰＵ５１が展開することによって得たプログラム／変数を格納する。例えば図３に示す例では、プログラム／変数展開領域Ａ１２に、構成１を動作させるためのプログラムおよび変数（構成１用プログラム／変数）、構成２を動作させるためのプログラムおよび変数（構成２用プログラム／変数）、構成３を動作させるためのプログラムおよび変数（構成３用プログラム／変数）、…を格納している。
なお、変数は、それぞれの構成が機能することによって変化し、変化に対応して書き換えられるパラメータである。圧縮プログラムは、変数の初期値を有している。変数については、後述する。
【００２８】
また、不揮発性ＲＡＭ５６に配置される履歴領域Ａ１３のうち、起動フラグ領域Ａ１３ａは、画像形成装置１が過去に起動されたことがあるか否かを示すフラグ（起動フラグ）を格納する。ここで、起動フラグ領域Ａ１３ａには、画像形成装置１が過去に起動されている場合には「オン（１）」が格納され、画像形成装置１が過去に起動されていない場合には「オフ（０）」が格納される。さらに、不揮発性ＲＡＭ５６に配置される履歴領域Ａ１３のうち、構成ステータス領域Ａ１３ｂは、画像形成装置が前回起動された際の装置構成（以下では、『前回の装置構成』と称する）を、構成ステータスとして格納する。ここで、構成ステータス領域Ａ１３ｂには、この画像形成装置１に装着され得る各構成に対し、その構成が存在している場合には「オン（１）」が格納され、その構成が存在していない場合には「オフ（０）」が格納される。さらにまた、不揮発性ＲＡＭ５６に配置される履歴領域Ａ１３のうち、ログ領域Ａ１３ｃは、画像形成装置１が受けた指示の内容、装置構成が変更された際の内容、さらには発生したエラーの内容等を、ログデータとして格納する。
【００２９】
そして、揮発性ＲＡＭ５７に配置されるワーク領域Ａ２１は、ＣＰＵ５１によるプログラムの実行に伴って一時的に発生するデータを格納する。また、揮発性ＲＡＭ５７に配置されるバッファ領域Ａ２２は、ＣＰＵ５１によるデータ処理に伴って、画像形成装置１の各構成要素に対して出力される指示（ＰＣＩバス５４を介して各ＩＦ（この例では、ＵＩＩＦ６１、スキャンＩＦ６２、プリントＩＦ６３、ネットワークＩＦ６４および汎用ＩＦ６５）に出力されるデータ）に関するデータを格納する。
【００３０】
ここで、変数を説明する。
変数とは、制御部５０が各構成を機能させる上で参照することが必要であって、且つ各構成が機能することにより変化するパラメータである。よって、変数をパラメータ変数と称することがある。
例えば、構成が画像読取部１０であれば、変数は画像の読み取りを実行するＣＣＤに関するパラメータである。ＣＣＤの特性は経過時間や温度によって変化する。よって、ＣＣＤの温度、熱、電圧などによるばらつきを補正するためのパラメータが変数として必要になる。そして、この変数は、画像読取部１０の状態の変化に伴って変化する。
また、構成が画像形成部２０であれば、紙等の量やトナーの量などが変数として必要となる。
さらに、構成が送受信部４０であれば、カレンダ、時刻、時間（タイマ）などが変数として必要となる。
【００３１】
上述したように、変数は構成の状態に対応したパラメータであるので、例え画像形成装置１が、電源（後述するメインスイッチＭＳｗ）がオンにされて起動したときであっても、接続された構成から読み出して書き換えることが必要となる。そして、構成が動作することにより、変数が変化した場合は、変化した場合毎に書き換えることが必要となる。
例えば、構成が画像形成部２０であれば、紙等を保持するカセットが抜き差しされると、紙等の量が増減することがありうる。よって、カセットの抜き差しをトリガとして、画像形成部２０が紙等の量についての変数を取得し、制御部５０に送信する。
すなわち、画像読取部１０、画像形成部２０、送受信部４０などの構成が、それぞれの状態の変化を検知して、変数を制御部５０に送信するようになっている。そして、制御部５０においては、ＣＰＵ５１が各構成に対応するプログラム／変数展開領域Ａ１２の変数を書き換える。
これらの変数は、制御部５０において、ＣＰＵ５１によって参照され、画像読取部１０、画像形成部２０、送受信部４０などの各構成を制御するために用いられる。また、これらの変数のいくつかは、ＵＩ３０に送信されて、ユーザに対して画像読取部１０、画像形成部２０、送受信部４０などの構成の状態の表示、紙等の補給を要請するための警告（アラート）の発出に用いられる。
【００３２】
次に、画像形成装置１の起動処理を説明する。
図４は、図１に示す画像形成装置１の起動処理を説明するためのフローチャートである。図４では、ＣＰＵ５１の動作を示している。ここでは、画像形成装置１は構成１、構成２、構成３、…を備えている。そして、これらの構成１、構成２、構成３、…は、画像形成装置１に対して、画像形成装置１の制御部５０に設けられた各ＩＦ（図２に示す例では、ＵＩＩＦ６１、スキャンＩＦ６２、プリントＩＦ６３、ネットワークＩＦ６４および汎用ＩＦ６５）を介して、画像形成装置１に接続されている。そして、画像形成装置１の制御部５０はメインスイッチＭＳｗでオン／オフされ、構成１、構成２、構成３、…はサブスイッチＳＳｗ１、ＳＳｗ２、ＳＳｗ３、…でオン／オフされる。
【００３３】
制御部５０のメインスイッチＭＳｗがオンになると（ステップ１）、ＣＰＵ５１は、バスブリッジ５２およびメモリバス５３を介して、ＲＯＭ５５のＯＳ領域Ａ０１に格納されるイニシャル・プログラム・ローダ（ＩＰＬ）を読み出すとともに、読み出したＩＰＬを起動する（ステップ２）。
ＩＰＬの実行に伴い、ＣＰＵ５１は、最初に、バスブリッジ５２およびＰＣＩバス５４を介して接続されている各ＩＦを用いて、画像形成装置１の装置構成を検出する（ステップ３）。ここでは、画像形成装置１の備えている構成１、構成２、構成３、…が検出されたとする。
なお、ステップ３では、例えば各ＩＦにコネクタ等が物理的に接続されているか否かを検出するハードウェア的な手法を用いてもよいし、また、例えば各ＩＦを介して接続対象と通信が行えるか否かを検出するソフトウェア的な手法を用いてもよい。
【００３４】
続いて、不揮発性ＲＡＭ５６の履歴領域Ａ１３における起動フラグ領域Ａ１３ａから、起動フラグを読み出して取得する（ステップ４）。そして、ＣＰＵ５１は、起動フラグがオフ（０）であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断する（ステップ５）。以下では、ステップ４において肯定の判断（Ｙｅｓ）を行った場合を説明し、否定の判断（Ｎｏ）を行った場合（図４におけるＡの場合）については、後に説明する（後述する図６参照）。
【００３５】
ステップ５において肯定の判断（Ｙｅｓ）を行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、ＣＰＵ５１は、ＲＯＭ５５の圧縮ＯＳ領域Ａ０１から圧縮ＯＳを読み出して展開し、展開したＯＳを不揮発性ＲＡＭ５６におけるＯＳ展開領域Ａ１１に格納する（ステップ６）。そして、不揮発性ＲＡＭ５６におけるＯＳ展開領域Ａ１１から展開されたＯＳ（以下ではＯＳと呼ぶ。）を起動する（ステップ７）。ここから、ＣＰＵ５１は、ＩＰＬに変わってＯＳによって制御される。ここで、ステップ６およびステップ７は第３手順の一例である。
【００３６】
次に、ＣＰＵ５１は、制御部５０を介して、装置構成の中に含まれる１つの構成に対応するサブスイッチＳＳｗＸ（Ｘは１、２、３、…）をオンにする（ステップ８）。ステップ３で検出した今回の装置構成について、全構成のサブスイッチＳＳｗ１、ＳＳｗ２、ＳＳｗ３、…をオンにしたか否かを判断する（ステップ９）。ステップ９において否定の判断（Ｎｏ）を行った場合は、ステップ８に戻り、今回の装置構成における残りの構成のサブスイッチＳＳｗＸを続けてオンにする。前述したように、サブスイッチＳＳｗ１、ＳＳｗ２、ＳＳｗ３、…は、制御部５０によって制御される。
構成１、構成２、構成３、…は、それぞれのサブスイッチＳＳｗ１、ＳＳｗ２、ＳＳｗ３、…がオンになると、それぞれが初期化を実行する（後述する図５参照）。それぞれの構成は、ＣＰＵ５１と同様に種々の演算を実行することによって構成を制御するプロセッサやＲＯＭを備えている。そして、初期化において、プロセッサに設けられたレジスタ群およびキャッシュメモリ（ともに揮発性メモリで構成される）の記憶内容がクリアされ、次いで、ＲＯＭからそれぞれの構成を制御するためのプログラムを読み出して、レジスタ群にデータを設定する。これにより、動作可能な状態に移行する。
なお、構成１、構成２、構成３、…は、ＣＰＵ５１から初期化信号の一例としてのリセット信号Ｒｓｔを受信したときにも、上記の初期化を実行する。
【００３７】
ＣＰＵ１は、続いて、ＲＯＭ５５の圧縮プログラム領域Ａ０２から、装置構成の中に含まれる１つの構成に対応する圧縮プログラムを読み出し（転送して）、読み出した圧縮プログラムを展開し、圧縮プログラムを展開して得られたプログラムおよび変数を、不揮発性ＲＡＭ５６におけるプログラム／変数展開領域Ａ１２に格納する（ステップ１０）。その後、連続してＣＰＵ５１は、プログラムを起動（ステップ１１）し、対応する構成と通信を確立する（同期をとる）ための応答要求信号Ｒｅｑ（図４ではＲｅｑ信号と表記する）を送信する（ステップ１２）。ステップ１０およびステップ１１は第１手順の一例である。
ステップ３で検出した今回の装置構成について、全構成に対応するプログラムおよび変数の、プログラム／変数展開領域Ａ１２への格納と、プログラムの起動、応答要求信号Ｒｅｑの送信が完了したか否かを判断する（ステップ１３）。ステップ１３において否定の判断（Ｎｏ）を行った場合は、ステップ１０に戻り、今回の装置構成における残りの構成に対応する圧縮プログラムの読み出し、読み出した圧縮プログラムの展開、そして展開によって得られたプログラムおよび変数の格納、プログラムの起動、応答要求信号Ｒｅｑの送信を続けて行う。
【００３８】
すると、構成１、構成２、構成３、…は、応答要求信号Ｒｅｑに対する処理（応答処理）をそれぞれ終了すると、肯定応答信号Ａｃｋを、各ＩＦを介して、ＣＰＵ５１に送信する。
そこで、ＣＰＵ５１は、肯定応答信号Ａｃｋを受信したか否かを判断する（ステップ１４）。ステップ１４において肯定の判断（Ｙｅｓ）をした場合、ステップ１４で肯定応答信号Ａｃｋを受信した構成に対して、変数の送信を要求し、変数を受信する。そして、受信した変数で、不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２のその構成に対応する領域に変数を格納する（書き換える）（ステップ１５）。
ステップ３で検出した今回の装置構成について、全構成に対応する肯定応答信号Ａｃｋの受信、変数の受信および格納が完了したか否かを判断する（ステップ１６）。ステップ１６において否定の判断（Ｎｏ）を行った場合は、ステップ１４に戻り、今回の装置構成における残りの構成に対応する肯定応答信号Ａｃｋの受信、変数の受信および格納を続けて行う。
【００３９】
なお、ステップ１４において肯定応答信号Ａｃｋが受信できない場合（ステップ１４において否定の判断（Ｎｏ）をした場合）には、ＣＰＵ５１は、ＵＩ３０にエラーが発生したこと（エラー情報）を送信して（ステップ２０）、停止（ホルト）（図４ではＨＬＴと表記）してもよく、後述するように、肯定応答信号Ａｃｋが受信できない構成に対して、リセット信号Ｒｓｔを送信し、初期化を再度行なわせてもよい。再度初期化を行わせる場合には、再度応答要求信号Ｒｅｑを送信して、肯定応答信号Ａｃｋが受信できるか否かを判断することになる（後述する図６、９参照）。
【００４０】
そして、ＣＰＵ５１は、不揮発性ＲＡＭ５６の履歴領域Ａ１３における起動フラグ領域Ａ１３ａに、起動フラグとして「オン（１）」を格納する（ステップ１７）。続いて、ＣＰＵ５１は、存在する構成を「オン（１）」、存在しない構成を「オフ（０）」とした構成ステータスを履歴領域Ａ１３における構成ステータス領域Ａ１３ｂに格納する（ステップ１８）。
さらに、装置構成および実行した処理の内容を反映させたログを作成し、作成したログを履歴領域Ａ１３のログ領域Ａ１３ｃに格納する（ステップ１９）。
【００４１】
このようにして、画像形成装置１の起動処理が終了し、画像形成装置１は動作可能な状態（スタンバイの状態）に立ち上がる。
【００４２】
画像形成装置１の使用を終了するときは、サブスイッチＳＳｗ１、ＳＳｗ２、ＳＳｗ３、…およびメインスイッチＭＳｗをオフにする。これは、ユーザがＵＩ３０にオフを指示することにより、ＣＰＵ５１が、サブスイッチＳＳｗ１、ＳＳｗ２、ＳＳｗ３、…をオフにし、次いでメインスイッチＭＳｗをオフにする一連の操作で行なわれる。
【００４３】
また、画像形成装置１が使用されていないとき、電力（エネルギ）消費の削減（省エネネルギ化）のため、ＣＰＵ５１が、予め定められた条件にしたがって判断し、ＳＳｗ１、２、３、…およびメインスイッチＭＳｗをオフにしてもよい。
【００４４】
図５は、初回の起動処理における制御部５０と各構成（構成１、２、３、）との通信制御の一例を示すシーケンス図である。図５では、時間が紙面において上から下へと進行する。図５では、図４に示したと同じステップは、同じ符号を付している。なお、構成１、２、３、…に対してそれぞれ分けて示す場合は、ハイフン（−）に続けて構成１、２、３、…の番号を付けている。
前述したように、制御部５０、すなわちＣＰＵ５１（図５では制御部５０と表記し、以下では制御部５０（ＣＰＵ５１）と表記する。）は、各ＩＦを介して、構成１、２、３、…と通信を行うことで、画像形成装置１に設けられた構成１、２、３、…から変数の取得を行う。
【００４５】
制御部５０、すなわちＣＰＵ５１は、圧縮ＯＳを読み出して展開し、展開したＯＳを格納し（ステップ６）、ＯＳを起動する（ステップ７）。そして、制御部５０（ＣＰＵ５１）は、サブスイッチＳＳｗ１、２、３、…をオンにする（ステップ８−１、８−２、８−３、…）。これにより、それぞれの構成１、２、３、…は、初期化を実行する（ステップ１０１−１、１０１−２、１０１−３、…）。これらの初期化は、それぞれの構成１、２、３、…が独自に行う。
そして、制御部５０（ＣＰＵ５１）は、構成１、２、３、…に対応する構成１用圧縮プログラム、構成２用圧縮プログラム、構成３用圧縮プログラム、…の読み出して展開し、展開した構成１用プログラム／変数、構成２用プログラム／変数、構成３用プログラム／変数、…を格納し、構成１用プログラム、構成２用プログラム、構成３用プログラム、…を起動する（ステップ１０−１、１０−２、１０−３、…およびステップ１１−１、１１−２、１１−３、…）。そして、応答要求信号Ｒｅｑ１、２、３、…をそれぞれの構成１、２、３、…に対して送信する（ステップ１２−１、１２−２、１２−３、…）。
【００４６】
構成１、２、３、…は、それぞれに対する応答要求信号Ｒｅｑ１、２、３、…を受信すると、制御部５０（ＣＰＵ５１）に対して応答するための処理（応答処理）を実行する（ステップ１０２−１、１０２−２、１０２−３、…）。そして、構成１、２、３、…は、制御部５０（ＣＰＵ５１）に対して肯定応答信号Ａｃｋ１、２、３、…を送信する。
そして、制御部５０（ＣＰＵ５１）は、構成１、２、３、…から肯定応答信号Ａｃｋ１、２、３、…を受信する（ステップ１４−１、１４−２、１４−３、…）。これにより、制御部５０（ＣＰＵ５１）と構成１、２、３、…のそれぞれとの間で通信が確立する。その後、制御部５０（ＣＰＵ５１）は、それぞれの構成１、２、３、…から、変数を取得し、不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２の対応する領域（図３参照）に格納することで変数を書き換える（ステップ１５−１、１５−２、１５−３、…）。
これにより、画像形成装置１が動作可能な状態（スタンバイ状態）になる。
【００４７】
なお、図５においては、制御部５０（ＣＰＵ５１）は、応答要求信号Ｒｅｑを送信後、肯定応答信号Ａｃｋの受信を待つことなく、次の圧縮プログラムを読み出して展開し、展開したプログラムおよび変数の格納を行っている（例えば、図５のステップ１２−１の応答要求信号Ｒｅｑ１の送信の後のステップ１０−２の構成２用圧縮プログラムの読み出し・展開）。これは、ＣＰＵ５１が複数のプログラムを並列に実行できる（マルチタスク）機能を有しているからである。
ＣＰＵ５１は、圧縮プログラムを読み出して展開し、展開したプログラムおよび変数の格納を行いつつ、肯定応答信号Ａｃｋを受信すれば、これに対応して変数の送信要求などを行う。
なお、ＣＰＵ５１は、応答要求信号Ｒｅｑを送信後、肯定応答信号Ａｃｋを受信してから、次の圧縮プログラムを読み出して展開し、展開したプログラムおよび変数の格納を行ってもよい（シングルタスク）。
【００４８】
次に、ステップ４において否定の判断（Ｎｏ）を行った場合（図４のＡの場合）を説明する。ステップ４において否定の判断（Ｎｏ）を行った場合とは、二回目以降に起動処理する場合である。
図６は、画像形成装置１の二回目以降の起動処理を説明するためのフローチャートである。
【００４９】
取得した起動フラッグがオン（１）であるので、今回の起動は二回目以降の起動である。よって、ＯＳおよび各構成に対応するプログラムおよび変数はプログラム／変数展開領域Ａ１２に格納されている。
そこで、ＣＰＵ５１は、不揮発性メモリ５６のＯＳ展開領域Ａ１１に格納されている展開されたＯＳを起動する（ステップ３１）。そして、不揮発性ＲＡＭ５６の履歴領域Ａ１３の構成ステータス領域Ａ１３ｂから構成ステータスを読み出す（取得する）（ステップ３２）。
そして、図３に示したステップ３において検出した装置構成と比較し、変更があるか否かを判断する（ステップ３３）。
ここで、否定の判断（Ｎｏ）を行った場合は、装置構成の中に含まれる１つの構成に対応するサブスイッチＳＳｗＸ（Ｘは１、２、３、…）をオンにする（ステップ３４）。図３に示したステップ３で検出した今回の装置構成について、全構成のサブスイッチＳＳｗ１、ＳＳｗ２、ＳＳｗ３、…をオンにしたか否かを判断する（ステップ３５）。ステップ３５において否定の判断（Ｎｏ）を行った場合は、ステップ３４に戻り、今回の装置構成における残りの構成のサブスイッチＳＳｗＸを続けてオンにする。
【００５０】
そして、ＣＰＵ５１は、不揮発性メモリ５６のプログラム／変数展開領域Ａ１２に格納されている展開された各構成に対応するプログラムを起動する（ステップ３６）。次に、ＣＰＵ５１は、応答要求信号Ｒｅｑを各構成に送信する（ステップ３７）。ステップ３６は第２手順の一例である。
図３に示したステップ３で検出した今回の装置構成について、対応するプログラムの起動、応答要求信号Ｒｅｑの送信が完了したか否かを判断する（ステップ３８）。ステップ３８において否定の判断（Ｎｏ）を行った場合は、ステップ３６に戻り、今回の装置構成における残りの構成に対応するプログラムの起動、応答要求信号Ｒｅｑの送信を続けて行う。
【００５１】
すると、各構成は、応答要求信号Ｒｅｑに対する処理（応答処理）を実行し、それが終了すると、肯定応答信号Ａｃｋを、各ＩＦを介して、ＣＰＵ５１に送信する。
そこで、ＣＰＵ５１は、肯定応答信号Ａｃｋを受信したか否かを判断する（ステップ３９）。以下では、ステップ３９において肯定の判断（Ｙｅｓ）をした場合について説明する。
なお、ステップ３９において否定の判断（Ｎｏ）をした場合の処理については、後述する。
【００５２】
ステップ３９において肯定の判断（Ｙｅｓ）をした場合、ステップ３９で肯定応答信号Ａｃｋを受信した構成に対して、変数の送信を要求し、変数を受信する。そして、受信した変数で、不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２のその構成に対応する領域に変数を格納する（書き換える）（ステップ４０）。
図３に示したステップ３で検出した今回の装置構成について、全構成に対応する肯定応答信号Ａｃｋの受信、変数の受信および格納が完了したか否かを判断する（ステップ４１）。ステップ４１において否定の判断（Ｎｏ）を行った場合は、ステップ３９に戻り、今回の装置構成における残りの構成に対応する肯定応答信号Ａｃｋの受信、変数の受信および格納を続けて行う。
【００５３】
この後、図４に示すフローチャートのＢに戻り、実行した処理の内容を反映させたログを作成し、作成したログを履歴領域Ａ１３のログ領域Ａ１３ｃに格納する（図４のステップ１９）。
【００５４】
ステップ３３において否定の判断（Ｎｏ）を行った場合、すなわち、前回の装置構成と今回の装置構成とが異なる場合には、例えば、ＣＰＵ５１は、不揮発性ＲＡＭ５６の履歴領域Ａ１２における起動フラグ領域Ａ１２ａに、起動フラグとして「オフ（０）」を格納する（起動フラグのリセット）（ステップ４２）。そして、図４のＣに戻り、ステップ２のＩＰＬの起動を行ってもよい。この場合は、前述の、初回の起動処理となる。
また、今回の構成に基づいて、不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２に格納されていないプログラムおよび変数を、ＲＯＭ５５から読み出して展開し、展開したプログラムおよび変数を格納し、プログラムを起動してから、ステップ３４に移行してもよい。このときは、図３のＢではなく、図３のステップ１８に戻って、今回の装置構成に対応する構成ステータスを不揮発性ＲＡＭ５６の履歴領域Ａ１３の構成ステータス領域Ａ１３ｂに格納するようにすればよい。
【００５５】
図７は、二回目以降の起動処理における制御部５０と各構成（構成１、２、３、…）との通信制御の一例を示すシーケンス図である。図７では、図６に示したと同じステップには同じ符号を付している。なお、構成１、２、３、…に対して分けて示す場合は、ハイフン（−）に続けて構成１、２、３、…の番号を付けている。
【００５６】
制御部５０（ＣＰＵ５１）がＯＳを起動する（ステップ３１）と、制御部５０（ＣＰＵ５１）は、サブスイッチＳＳｗ１、２、３、…をオンにする（ステップ３４−１、３４−２、３４−３、…）。これにより、それぞれの構成１、２、３、…は、初期化を実行する（ステップ１０１−１、１０１−２、１０１−３、…）。これらの初期化は、それぞれの構成１、２、３、…が独自に行う。
そして、制御部５０（ＣＰＵ５１）は、構成１、２、３、…に対応する構成１用プログラム、構成２用プログラム、構成３用プログラム、…を起動する（ステップ３６−１、３６−２、３６−３、…）。そして、応答要求信号Ｒｅｑ１、２、３、…をそれぞれ構成１、２、３、…に対して送信する（ステップ３７−１、３７−２、３７−３、…）。
【００５７】
構成１、２、３、…は、それぞれに対する応答要求信号Ｒｅｑ１、２、３、…を受信すると、制御部５０（ＣＰＵ５１）に対して応答するための処理（応答処理）を実行する（ステップ１０２−１、１０２−２、１０２−３、…）。そして、構成１、２、３、…は、制御部５０（ＣＰＵ５１）に対して肯定応答信号Ａｃｋ１、２、３、…を送信する。
そして、制御部５０（ＣＰＵ５１）は、構成１、２、３、…から肯定応答信号Ａｃｋ１、２、３、…を受信する（ステップ３９−１、３９−２、３９−３、…）。これにより、制御部５０（ＣＰＵ５１）と構成１、２、３、…のそれぞれとの間で通信が確立する。その後、制御部５０（ＣＰＵ５１）と構成１、２、３、…との間で通信が確立すると、制御部５０（ＣＰＵ５１）は、それぞれの構成１、２、３、…から、変数を取得し、不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２の対応する領域（図３参照）に格納することで変数を書き換える（ステップ４０−１、４０−２、４０−３、…）。
これにより、画像形成装置１が動作可能な状態（スタンバイ状態）になる。
【００５８】
図８は、初回と二回目以降とにおける起動処理の所要時間を比較して示した図である。図８（ａ）は初回における起動処理（初回の起動）の所要時間を、図８（ｂ）は二回目以降における起動処理（二回目以降の起動）の所要時間を示している。
図８（ａ）に示すように、初回における起動処理では、圧縮ＯＳの読み出しと展開、展開したＯＳの格納、圧縮プログラムの読み出しと展開、展開したプログラムおよび変数の格納に要する時間が必要である。これに対して、二回目以降の起動処理では、これらの時間を要しないので、短い時間で画像形成装置１を立ち上げることができる。
一例として、初回において、圧縮ＯＳの読み出しと展開、展開したＯＳの格納、ＯＳの起動に約１０秒、圧縮プログラムの読み出しと展開、展開したプログラムおよび変数の格納、プログラムの起動に約３０秒要した場合、すなわち、初回における起動処理の所要時間は約４０秒となる。これに対し、二回目以降では、不揮発性ＲＡＭ５６に展開されて格納されたＯＳおよびプログラムの起動となるので、数秒で立ち上がるようにすることもできる。
なお、構成１、２、３、…のそれぞれの変数の取得と格納は、起動処理ごとに必要となるので、このための所要時間は同じである。
以上説明したように、本実施の形態では、画像形成装置１を二回目以降に起動する際において、起動処理に要する時間を短くできる。このため、画像形成部２０における電磁誘導（ＩＨ）加熱による定着装置の採用などにより、各構成の立ち上り時間が短くなることと合わせて、画像形成装置１の立ち上がり時間が短くなる。
【００５９】
次に、図６に戻って、ステップ３９において否定の判断（Ｎｏ）をした場合、すなわち構成１、２、３、…のいずれかから肯定応答信号Ａｃｋを受信しない場合について説明する。
このとき、ＣＰＵ５１は、肯定応答信号Ａｃｋを受信しない構成（構成１、２、３、…のいずれか）に対して、構成の初期化の処理を再度実行させるためにリセット信号Ｒｓｔを送信する（ステップ５１）。リセット信号Ｒｓｔを受信した構成は、再度初期化の処理を実行する。
【００６０】
そして、ＣＰＵ５１は、ＲＯＭ５５の圧縮プログラム領域Ａ０２から、その構成に対応する圧縮プログラムを読み出して展開し、展開したプログラムおよび変数を不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１３のその構成に対応する領域に上書きする（ステップ５２）。そして、そのプログラムを起動する（ステップ５３）。
次いで、ＣＰＵ５１は、その構成に対して応答要求信号Ｒｅｑを再度送信する（ステップ５４）。
【００６１】
その後、ＣＰＵ５１は、肯定応答信号Ａｃｋを受信したか否かを判断する（ステップ５５）。ステップ５５において肯定の判断（Ｙｅｓ）をした場合、その構成に対して、変数の送信を要求し、変数を受信する。そして、受信した変数で、不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２のその構成に対応する領域に変数を格納する（書き換える）（ステップ４０）。
そして、ステップ３で検出した今回の装置構成について、全構成に対応する肯定応答信号Ａｃｋの受信、変数の受信および格納が完了したか否かを判断する（ステップ４１）。ステップ４１において否定の判断（Ｎｏ）を行った場合は、ステップ３９に戻り、今回の装置構成における残りの構成に対応する肯定応答信号Ａｃｋの受信、変数の受信および格納を続けて行う。
その後、図４に示すフローチャートにおけるＢに戻り、実行した処理の内容を反映させたログを作成し、作成したログを履歴領域Ａ１３のログ領域Ａ１３ｃに格納する（図４のステップ１９）。
【００６２】
なお、ステップ５５において否定の判断（Ｎｏ）をした場合、ＣＰＵ５１は、ＵＩ３０にエラーが発生したこと（エラー情報）を送信して（ステップ５６）、停止（ホルト）（ＨＬＴ）するようにしてもよい。
【００６３】
図９は、プログラム／変数展開領域Ａ１３におけるプログラムおよび変数の上書きを説明する図である。ＣＰＵ５１は、ステップ５２において、ＲＯＭ５５の圧縮プログラム領域Ａ０２から、その構成（図９では構成２）に対応する圧縮プログラムを読み出して展開し、展開したプログラムおよび変数を不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１３のその構成（構成２）に対応する領域に上書きする。
【００６４】
図１０は、各構成（構成１、２、３、…）のいずれかから肯定応答信号Ａｃｋを受信しない場合の起動処理における制御部５０と各構成（構成１、２、３、…）との通信制御の一例を示すシーケンス図である。
図１０では、図７における制御部５０（ＣＰＵ５１）が構成１、２、３、…に対応する構成１用プログラム、構成２用プログラム、構成３用プログラム、…を起動するステップ（ステップ３６−１、３６−２、３６−３、…）から記載している。
次に、制御部５０（ＣＰＵ５１）は、応答要求信号Ｒｅｑ１、２、３、…をそれぞれの構成１、２、３、…に対して送信する（ステップ３７−１、３７−２、３７−３、…）。
【００６５】
ここで、構成２は正常に初期化されなかったとする。
構成１、２、３、…は、それぞれに対する応答要求信号Ｒｅｑ１、２、３、…を受信すると、制御部５０（ＣＰＵ５１）に対して応答するための処理（応答処理）を実行する（ステップ１０２−１、１０２−２、１０２−３、…）。
すると、構成１、構成３、…は、それぞれが応答要求信号Ｒｅｑ１、３に対する処理（応答処理）が終了すると、肯定応答信号Ａｃｋ１、３、…を、制御部５０（ＣＰＵ５１）に送信する。
そして、制御部５０（ＣＰＵ５１）は、構成１、３、…から肯定応答信号Ａｃｋ１、３、…を受信する（ステップ３８−１、３８−３、…）。これにより、制御部５０（ＣＰＵ５１）と構成１、３、…のそれぞれとの間で通信が確立する。
そして、制御部５０（ＣＰＵ５１）は、それぞれの構成１、３、…から、変数を取得し、不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２の対応する領域（図３参照）に格納することで変数を書き換える（ステップ４０−１、４０−３、…）。
【００６６】
しかし、構成２は、正常に初期化されなかったため、応答要求信号Ｒｅｑ２を受信して、応答処理（ステップ１０２−２）が実行されたとしても、肯定応答信号Ａｃｋ２を制御部５０（ＣＰＵ５１）に対して送信できない。よって、制御部５０（ＣＰＵ５１）は構成２からの肯定応答信号Ａｃｋ２を受信できない。
このとき、制御部５０（ＣＰＵ５１）は、応答要求信号Ｒｅｑ２を送信した時刻から、タイマ５９により設定された予め定められた時間が計測されたとき、通信が確立しない（タイムアウト）と判断し、リセット信号Ｒｓｔを構成２に送信する（ステップ５１）。構成２は、リセット信号Ｒｓｔを受信すると、初期化を実行する（ステップ１０３）。
一方、制御部５０（ＣＰＵ５１）は、ＲＯＭ５５の圧縮プログラム領域Ａ０２から構成２用圧縮プログラムを読み出して展開し、展開した構成２用プログラムおよび変数をプログラム／変数展開領域Ａ１３の構成２の領域に上書きする（ステップ５２）。そして、構成２用プログラムを起動し（ステップ５３）、応答要求信号Ｒｅｑを再度送信する（ステップ５４）。
構成２は、再初期化により正常な状態になれば、応答要求信号Ｒｅｑ２を受信し、応答処理（ステップ１０４）を実行し、肯定応答信号Ａｃｋ２を制御部５０（ＣＰＵ５１）に送信する。
そして、制御部５０（ＣＰＵ５１）は、構成２から肯定応答信号Ａｃｋ２が受信できれば（ステップ５５）、制御部５０（ＣＰＵ５１）と構成２との間で通信が確立する。制御部５０（ＣＰＵ５１）と構成２との間で通信が確立すると、制御部５０（ＣＰＵ５１）は、構成２から、変数を取得し、不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２の対応する領域に格納することで変数を書き換える（ステップ４０−２）。
【００６７】
以上説明したように、本実施の形態では、例えば複数の構成のうちの少なくとも１つについて、ＣＰＵ５１は、応答要求信号Ｒｅｑの送信後の時間を、タイマ５９により計測して、予め定められた時間経過しても肯定応答信号Ａｃｋが受信できない場合には、タイムアウトとして、異常が発生したと判断する。そして、ＣＰＵ５１は、肯定応答信号Ａｃｋを受信しない構成に対してリセット信号Ｒｓｔを送信して、その構成の初期化をさせるとともに、ＲＯＭ５５の圧縮プログラム領域Ａ０２から、その構成に対する圧縮プログラムを読み出して展開し、展開したプログラムおよび変数を不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２のその構成に対応する領域に上書きする。そして、そのプログラムを起動して、応答要求信号Ｒｅｑを再度送信する。
もし、上述した例のように、構成の初期化に不具合がある場合には、再初期化により正常な状態に戻りうる。この場合、構成は、応答要求信号Ｒｅｑに対応して肯定応答信号Ａｃｋを送信するので、通信が確立する。画像形成装置１は、起動処理が終了して、動作可能な状態（スタンバイ状態）になる。
【００６８】
また、不揮発性ＲＡＭ５６のプログラム／変数展開領域Ａ１２に格納されたプログラムのデータが書き換わって不具合が発生した場合でも、再度圧縮プログラムを読み出して展開して、プログラムを上書きするので、正常な状態に戻りうる。
そして、これらの処理は、ＣＰＵ５１の制御により行われるようになっている。
【００６９】
なお、本実施の形態では、各圧縮プログラムを格納する圧縮プログラム領域Ａ０２を、ＲＯＭ５５に配置していたが、これに限られるものではない。すなわち、圧縮プログラム領域Ａ０２を、例えば画像形成装置１にネットワーク２を介して接続されるサーバ装置５（図１参照）や、カードリーダ７０に配置されるメモリカードに配置するようにしてもよい。なお、この場合には、ＩＰＬの実行時において、各圧縮プログラムの読み取り対象を、サーバ装置５あるいはカードリーダ７０に装着されたメモリカードに設定すればよい。
【００７０】
また、本実施の形態では、不揮発性ＲＡＭ５６にプログラム／変数領域Ａ１２および履歴領域Ａ１３を配置するとともに、揮発性ＲＡＭ５７にワーク領域Ａ２１およびバッファ領域Ａ２２を配置するようにしていたが、これに限られるものではなく、例えば不揮発性ＲＡＭ５６に、プログラム／変数領域Ａ１２、履歴領域Ａ１３、ワーク領域Ａ２１およびバッファ領域Ａ２２を配置するようにしてもかまわない。また、ＲＯＭ５５に圧縮ＯＳ領域Ａ０１および圧縮プログラム領域Ａ０２を配置していたが、例えば、不揮発性ＲＡＭ５６に、圧縮ＯＳ領域Ａ０１、圧縮プログラム領域Ａ０２、プログラム／変数領域Ａ１２、履歴領域Ａ１３、ワーク領域Ａ２１およびバッファ領域Ａ２２を配置するようにしてもかまわない。
【００７１】
さらに、本実施の形態では、制御部５０を画像形成装置１に組み込んだ場合を例として説明を行ったが、これに限られるものではなく、複数のユニットの組み合わせによって構成され、これら複数のユニットの着脱に伴って構成が変更され得る装置に適用しても差し支えない。
【符号の説明】
【００７２】
１…画像形成装置、２…ネットワーク、３…端末装置、４…ファクシミリ装置、５…サーバ装置、１０…画像読取部、２０…画像形成部、３０…ＵＩ、４０…送受信部、５０…制御部、５１…ＣＰＵ、５２…バスブリッジ、５３…メモリバス、５４…ＰＣＩバス、５５…ＲＯＭ、５６…不揮発性ＲＡＭ、５７…揮発性ＲＡＭ、５８…クロックジェネレータ、５９…タイマ、６１…ＵＩＩＦ、６２…スキャンＩＦ、６３…プリントＩＦ、６４…ネットワークＩＦ、６５…汎用ＩＦ、７０…カードリーダ
【図１】
0005895609.tif 000002
【図２】
0005895609.tif 000003
【図３】
0005895609.tif 000004
【図４】
0005895609.tif 000005
【図５】
0005895609.tif 000006
【図６】
0005895609.tif 000007
【図７】
0005895609.tif 000008
【図８】
0005895609.tif 000009
【図９】
0005895609.tif 000010
【図１０】
0005895609.tif 000011