"転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、当該記憶手段に記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行することを特徴とする情報処理装置。前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項1記載の情報処理装置。前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1または2記載の情報処理装置。転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、前記認識手段にて接続される機器の変更が認識された場合に、当該第1の手順を実行することを特徴とする情報処理装置。前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項4記載の情報処理装置。前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項4または5記載の情報処理装置。前記実行手段は、前記記憶手段に記憶されるプログラムの内容に異常が検出された場合に、前記第1の手順を実行することを特徴とする請求項4乃至6のいずれか1項記載の情報処理装置。記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部の制御に用いるために転送されてくるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、当該記憶手段に記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行することを特徴とする画像形成装置。記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部の制御に用いるために転送されてくるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、前記認識手段にて接続される機器の変更が認識された場合に、当該第1の手順を実行することを特徴とする画像形成装置。コンピュータに、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリに記憶されているプログラムを実行させる機能と、前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されているプログラムを読み出して実行する第2の手順を、を有し、当該不揮発性メモリに記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行させる機能とを実現させるプログラム。コンピュータに、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリに記憶されるプログラムを読み出して実行させる機能と、接続される機器を認識する機能と、前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されているプログラムを読み出して実行する第2の手順を、を有し、接続される機器の変更が認識された場合に、当該第1の手順を実行させる機能とを実現させるプログラム。本発明は、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることを目的とする。請求項1記載の発明は、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、当該記憶手段に記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行することを特徴とする情報処理装置である。請求項2記載の発明は、前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項1記載の情報処理装置である。請求項3記載の発明は、前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1または2記載の情報処理装置である。請求項4記載の発明は、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、前記認識手段にて接続される機器の変更が認識された場合に、当該第1の手順を実行することを特徴とする情報処理装置である。請求項5記載の発明は、前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項4記載の情報処理装置である。請求項6記載の発明は、前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項4または5記載の情報処理装置である。請求項7記載の発明は、前記実行手段は、前記記憶手段に記憶されるプログラムの内容に異常が検出された場合に、前記第1の手順を実行することを特徴とする請求項4乃至6のいずれか1項記載の情報処理装置である。請求項8記載の発明は、記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部の制御に用いるために転送されてくるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、当該記憶手段に記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行することを特徴とする画像形成装置である。請求項9記載の発明は、記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部の制御に用いるために転送されてくるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、前記認識手段にて接続される機器の変更が認識された場合に、当該第1の手順を実行することを特徴とする画像形成装置である。請求項10記載の発明は、コンピュータに、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリに記憶されているプログラムを実行させる機能と、前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されているプログラムを読み出して実行する第2の手順を、を有し、当該不揮発性メモリに記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行させる機能とを実現させるプログラムである。請求項11記載の発明は、コンピュータに、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリに記憶されるプログラムを読み出して実行させる機能と、接続される機器を認識する機能と、前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されているプログラムを読み出して実行する第2の手順を、を有し、接続される機器の変更が認識された場合に、当該第1の手順を実行させる機能とを実現させるプログラムである。請求項1記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。請求項2記載の発明によれば、本構成を有しない場合と比較して、起動処理をさらに高速化することができる。請求項3記載の発明によれば、例えば不揮発性メモリとしてEEPROMあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。請求項4記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。請求項5記載の発明によれば、本構成を有しない場合と比較して、起動処理をさらに高速化することができる。請求項6記載の発明によれば、例えば不揮発性メモリとしてEEPROMあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。請求項7記載の発明によれば、本構成を有しない場合と比較して、さらに、不揮発性メモリに記憶された異常なプログラムを、正常なプログラムに修正することができる。請求項8記載の発明によれば本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。請求項9記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。請求項10記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。請求項11記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。図1は、本実施の形態が適用される画像形成システムの構成の一例を示す図である。この画像形成システムは、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を備えた所謂複合機として動作する画像形成装置1と、画像形成装置1に接続されるネットワーク2と、ネットワーク2に接続される端末装置3と、ネットワーク2に接続されるファクシミリ装置4と、ネットワーク2に接続されるサーバ装置5とを有している。ここで、ネットワーク2は、インターネット回線や電話回線等によって構成されている。また、端末装置3は、ネットワーク2を介して、画像形成装置1に画像の形成等を指示するものであり、例えばPCPersonalComputerで構成される。さらに、ファクシミリ装置4は、ネットワーク2を介して、画像形成装置1との間でファクシミリを送受信する。さらにまた、サーバ装置5は、ネットワーク2を介して、画像形成装置1との間でデータプログラムを含むを送受信する。また、画像形成装置1は、紙等の記録媒体に記録された画像を読み取る画像読取部10と、紙等の記録媒体に画像を形成する画像形成部20と、ユーザから電源のオン/オフ、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェースUI30と、ネットワーク2を介して端末装置3、ファクシミリ装置4およびサーバ装置5との間でデータの送受信を行う送受信部40と、これら画像読取部10、画像形成部20、UI30および送受信部40の動作を制御する制御部50とを備えている。そして、この画像形成装置1では、画像読取部10によってスキャン機能が実現され、画像形成部20によってプリント機能が実現され、画像読取部10および画像形成部20によってコピー機能が実現され、画像読取部10、画像形成部20および送受信部40によってファクシミリ機能が実現される。なお、送受信部40は、例えばインターネット回線用のものと電話回線用のものとを、別々に設けるようにしてもかまわない。図2は、図1に示す画像形成装置1に設けられた制御部50の内部構成の一例を示すハードウェアブロック図である。情報処理装置の一例としての制御部50は、種々の演算を実行することによって画像形成装置1の各部を制御する実行手段あるいは認識手段の一例としてのCPUCentralProcessingUnit:中央処理装置51と、CPU51に接続され、CPU51との間で各種データのやりとりを行うバスブリッジ52とを備えている。制御部50において、バスブリッジ52には、第1のクロックでデータのやりとりを行うメモリバス53と、第1のクロックよりも周波数が低い第2のクロックでデータのやりとりを行うPCIPeripheralComponentInterconnectバス54とが接続されている。また、制御部50は、ROMReadOnlyMemory55と、不揮発性RAMRandomAccessMemory56と、揮発性RAM57とを備えている。そして、これらROM55、不揮発性RAM56および揮発性RAM57は、それぞれ、メモリバス53に接続されている。さらに、制御部50は、UI30を制御するためのUIインタフェース回路UIIF61と、画像形成部20を制御するためのプリントインタフェース回路プリントIF62と、例えば画像形成が行われた記録媒体に後処理を施す後処理装置70など、画像形成装置1に後付けで装着されるオプションユニットを制御するためのオプションインタフェース回路オプションIF63と、送受信部40を制御するためのネットワークインタフェース回路ネットワークIF64と、USBUniversalSerialBusデバイスを制御するためのUSBインタフェース回路USBIF65とを備えている。そして、これらUIIF61、プリントIF62、オプションIF63、ネットワークIF64およびUSBIF65は、それぞれ、PCIバス54に接続されている。また、本実施の形態では、USBIF65に対し、画像読取部10が接続されている。なお、USBIF65には、例えば、装着されたメモリカード81に対しデータを読み書きするカードリーダ80が接続されることもある。そして、制御部50は、制御部50を構成する各部CPU51等が動作するクロックの基準となる基準クロックを生成するクロックジェネレータ58と、CPU51等の動作に伴って計時を行うタイマ59とをさらに備えている。本実施の形態における制御部50は、例えば、1チップのマイクロコントローラによって構成されている。ただし、制御部50を、複数のチップで構成してもかまわない。また、本実施の形態の制御部50において、CPU51は、ROM55、不揮発性RAM56および揮発性RAM57に直接アクセスすることが可能となっている。以下の説明では、メモリバス53に接続されるROM55、不揮発性RAM56および揮発性RAM57を、まとめてメインメモリと称することがある。ここで、格納手段の一例としてのROM55は、所謂マスクROM、各種PROMProgrammableROM:例えばOTPROM、UV-EPROMUltraVioletErasableProgrammableROM、EEPROMElectricallyErasableProgrammableROM、フラッシュメモリなどで構成されている。なお、この例では、ROM55として、フラッシュメモリが用いられている。また、記憶手段の一例としての不揮発性RAM56は、MRAMMagnetoresistiveRAM、FeRAMFerroelectricRAM、PRAMPhasechangeRAM、ReRAMResistanceRAMなど、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリによって構成されている。なお、この例では、不揮発性RAM56として、ROM55として用いられるフラッシュメモリよりも高速にデータの読み書きが可能なMRAMが用いられている。さらに、揮発性RAM57は、DRAMDynamicRAMやSRAMStaticRAMなど、電源を供給しないと、記憶している情報を保持することができない揮発性メモリによって構成されている。なお、この例では、揮発性RAM57として、DRAMが用いられている。そして、本実施の形態では、不揮発性RAM56および揮発性RAM57が、ともに第1のクロックでデータの読み書きを行う。このため、不揮発性RAM56は、揮発性RAM57この例ではDRAMと同等の読み書き性能を有していることになる。図3は、図2に示す制御部50に設けられたCPU51の内部構成の一例を示すハードウェアブロック図である。本実施の形態のCPU51は、制御部50に設けられたバスブリッジ52と接続され、バスブリッジ52との間で各種データのやりとりを行うバスコントロールユニット511と、バスコントロールユニット511に接続され、CPU51内において上述した第1のクロックよりも周波数が高い第3のクロックで各種データのやりとりを行うCPU内部バス512とを備えている。またCPU51は、CPU51内の各部を制御する制御ユニット513と、読み出したプログラムにしたがって各種演算を実行する演算ユニット514と、演算ユニット514が実行するプログラムが格納されたアドレスの保持、演算ユニット514による演算結果の保持、さらにはメインメモリROM55、不揮発性RAM56および揮発性RAM57との間でデータのやりとりを行う際のアドレスの保持を行うための各種レジスタを備えたレジスタ群515と、演算ユニット514による演算結果を一時的に保持するキャッシュメモリ516と、CPU51が要求するメモリアクセスを処理するメモリ管理ユニット517とを備えている。ここで、レジスタ群515は、演算ユニット514が次に実行するべき命令を格納するメインメモリ上のアドレスを保持するプログラムカウンタPC515aと、一時的にデータを退避しておくために用意するスタック領域のアドレスを保持するスタックポインタSP515bと、CPU51の状態や演算の状態などを保持するステータスレジスタSR515cと、演算やデータ転送の一次記憶などに使用されるアキュムレータ、メインメモリ上のデータにアクセスするためのアドレスを保持するアドレスレジスタ、さらにはCPU51の動作設定の情報を保持するコントロールレジスタ等として機能する汎用レジスタ515dとを含んでいる。そして、レジスタ群515およびキャッシュメモリ516は、ともに、電源を供給しないと、記憶している情報を保持することができない揮発性メモリによって構成されている。なお、この例では、レジスタ群515およびキャッシュメモリ516として、揮発性RAM57で用いられるDRAMよりも高速にデータの読み書きが可能なSRAMが用いられている。図4は、上述したメインメモリROM55、不揮発性RAM56および揮発性RAM57によるメモリマップの構成の一例を示す図である。この例では、ROM55にリセットベクタ領域A01および圧縮プログラム領域A02が配置され、不揮発性RAM56にプログラム/変数領域A11および履歴領域A12が配置され、揮発性RAM57にワーク領域A21およびバッファ領域A22が配置されている。また、不揮発性RAM56に配置される履歴領域A12は、起動フラグ領域A12aと、構成ステータス領域A12bと、ログ領域A12cとを有している。これらのうち、ROM55に配置されるリセットベクタ領域A01は、画像形成装置1を起動するにあたり、制御部50においてCPU51が実行するプログラムである、イニシャルプログラムローダInitialProgramLoader:IPLを格納している。また、ROM55に配置される圧縮プログラム領域A02は、本実施の形態の画像形成装置1に実装され得る各構成に対応したプログラムおよびこのプログラムで用いられる変数以下では、これらをプログラム/変数と称するを、構成毎にまとめて圧縮した状態で格納している。例えば図4に示す例では、圧縮プログラム領域A02に、構成Aを動作させるためのプログラム/変数を圧縮した圧縮プログラム構成A用圧縮プログラム、構成Bを動作させるためのプログラム/変数を圧縮した圧縮プログラム構成B用圧縮プログラム、構成Cを動作させるためのプログラム/変数を圧縮した圧縮プログラム構成C用圧縮プログラム、構成Dを動作させるためのプログラム/変数を圧縮した圧縮プログラム構成D用圧縮プログラム、...、を格納している。なお、ここでいう構成A~構成Dは、上述した画像読取部10、画像形成部20、UI30、送受信部40、後処理装置70、そしてカードリーダ80等のそれぞれに対応するものであり、画像形成装置1の本体に対し着脱可能であって、画像形成装置1に装着された場合には、単独であるいは他の構成部とともに、予め決められた機能を発揮するものである。このように、本実施の形態では、実際に使用する際の画像形成装置1の構成図1に示す画像形成装置1は後処理装置70を備えていないとは関係なく、この画像形成装置1に実装され得る各構成に対応した複数の圧縮プログラムを、ROM55に配置された圧縮プログラム領域A02に、予め格納させている。これにより、画像形成装置1の装置構成の変更に伴って、ROM55を交換したり、あるいは、ROM55に格納されるプログラムの更新を行ったりしなくてもよいようにしている。次に、不揮発性RAM56に配置されるプログラム/変数領域A11は、上述した圧縮プログラム領域A02から読み出した圧縮プログラムを、CPU51が伸張することによって得たプログラム/変数を格納する。また、不揮発性RAM56に配置される履歴領域A12のうち、起動フラグ領域A12aは、画像形成装置1が過去に起動されたことがあるか否かを示すフラグを格納する。ここで、起動フラグ領域A12aには、画像形成装置1が過去に起動されている場合にはオン1が格納され、画像形成装置1が過去に起動されていない場合にはオフ0が格納される。さらに、不揮発性RAM56に配置される履歴領域A12のうち、構成ステータス領域A12bは、画像形成装置が前回起動された際の装置構成以下では、前回の装置構成と称するを、構成ステータスとして格納する。ここで、構成ステータス領域A12bには、この画像形成装置1に装着され得る各構成に対し、その構成が存在している場合にはオン1が格納され、その構成が存在していない場合にはオフ0が格納される。さらにまた、不揮発性RAM56に配置される履歴領域A12のうち、ログ領域A12cは、画像形成装置1が受けた指示の内容、装置構成が変更された際の内容、さらには発生したエラーの内容等を、ログデータとして格納する。そして、揮発性RAM57に配置されるワーク領域A21は、CPU51によるプログラムの実行に伴って一時的に発生するデータを格納する。また、揮発性RAM57に配置されるバッファ領域A22は、CPU51によるデータ処理に伴って、画像形成装置の各構成要素に対して出力される指示PCIバス54を介して各IFに出力されるデータに関するデータを格納する。図5は、図1に示す画像形成装置1の起動処理を説明するためのフローチャートである。なお、この起動処理は、例えばUI30を介して画像形成装置1の電源が投入されることに伴ってCPU51にリセット指示が入力されたとき、また、画像形成装置1の電源が投入された後に何らかの理由によりCPU51にリセット指示が入力されたとき、などに実行される。制御部50に設けられたCPU51がリセット指示を受け付けるとステップ1、CPU51は、自身のリセットCPUリセットを実行するステップ2。このとき、CPUリセットに伴って、CPU51に設けられたレジスタ群515およびキャッシュメモリ516ともに揮発性メモリで構成されるの記憶内容もクリアされる。また、CPUリセットに伴って、制御部50に設けられた揮発性RAM57の記憶内容もクリアされる。一方、CPUリセットが実行されても、制御部50に設けられたROM55および不揮発性RAM57の記憶内容はクリアされず、CPUリセット前の記憶内容がそのまま保持される。続いて、CPU51は、バスブリッジ52およびメモリバス53を介して、ROM55のリセットベクタ領域A01に格納されるイニシャルプログラムローダIPLを読み出すとともに、読み出したIPLを実行しステップ3、画像形成装置1に実装された各構成が使用可能となるように動作準備を行う。そして、画像形成装置1の動作準備が完了するステップ4ことで、一連の起動処理を終了する。続いて、上述したステップ3におけるIPLの実行について、より詳細に説明する。図6は、IPLの実行に伴う処理の手順を説明するためのフローチャートである。IPLの実行に伴い、CPU51は、最初に、バスブリッジ52およびPCIバス54を介して接続されている各IFこの例では、UIIF61、プリントIF62、オプションIF63、ネットワークIF64およびUSBIF65を用いて、画像形成装置1の装置構成を検出するステップ11。なお、ステップ11では、例えば各IFにコネクタ等が物理的に接続されているか否かを検出するハードウェア的な手法を用いてもよいし、また、例えば各IFを介して接続対象と通信が行えるか否かを検出するソフトウェア的な手法を用いてもよい。続いて、CPU51は、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aから、起動フラグを読み出して取得するステップ12。そして、CPU51は、起動フラグがオフ0であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断するステップ13。ステップ13において肯定の判断Yesを行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、CPU51は、続いて、ステップ11で検出した今回の装置構成に基づき、ROM55の圧縮プログラム領域A02から、今回の装置構成の中に含まれる1つの構成に対応する圧縮プログラムを読み出しステップ14、ステップ14で読み出した圧縮プログラムを展開しステップ15、ステップ15で圧縮プログラムを展開して得られたプログラム/変数を、不揮発性RAM56におけるプログラム/変数領域A11に格納するステップ16。その後、ステップ11で検出した今回の装置構成について、全構成に対応するプログラム/変数の、プログラム/変数領域A11への格納が完了したか否かを判断するステップ17。ステップ17において否定の判断Noを行った場合は、ステップ14に戻り、今回の装置構成における残りの構成に対応する圧縮プログラムの読み出し、読み出した圧縮プログラムの展開、そして展開によって得られたプログラム/変数の格納を続けて行う。一方、ステップ17において肯定の判断Yesを行った場合、CPU51は、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとしてオン1を格納させるステップ18。続いて、CPU51は、ステップ11で検出した今回の装置構成の内容を反映させた変更ログを作成し、作成した変更ログを履歴領域A12のログ領域A12cに格納するステップ19。さらに、CPU51は、ステップ11で検出した今回の装置構成について、存在する構成をオン1、存在しない構成をオフ0とした構成ステータスを、履歴領域A12の構成ステータス領域A12bに格納するステップ20。そして、後述するステップ25に進む。また、上述したステップ13において否定の判断Noを行った場合、すなわち、今回の起動処理が2回目以降の起動処理であった場合、CPU51は、不揮発性RAM56の履歴領域A12における構成ステータス領域A12bから、構成ステータスを読み出して取得しステップ21、ステップ11で検出した今回の装置構成が、ステップ21で取得した構成ステータスすなわち前回の装置構成から変更されているか否かを判断するステップ22。ステップ22において否定の判断Noを行った場合、すなわち、前回の装置構成と今回の装置構成とが同じである場合、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納される各プログラム/変数に対してエラーチェックを実行するステップ23。なお、ステップ23で実行されるエラーチェックの手法としては、例えばCRCCyclicRedundancyCheck:巡回冗長検査が挙げられる。そして、CPU51は、ステップ23でエラーチェックを実行した結果に基づき、不揮発性RAM56のプログラム/変数領域A11に格納される各プログラム/変数においてエラーが発生しているか否かを、プログラム毎に判断するステップ24。ステップ24において否定の判断Noを行った場合、および、上述したステップ20における処理を行った後、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納された各プログラム/変数を用いて処理を行うことにより、画像形成装置1の初期設定を行いステップ25、IPLの実行を完了する。一方、上述したステップ22において肯定の判断Yesを行った場合、すなわち、前回の装置構成と今回の装置構成とが相違していた場合、CPU51は、前回の装置構成から今回の装置構成に至る変更内容を反映させた変更ログを作成し、作成した変更ログを履歴領域A12のログ領域A12cに格納するステップ26。続いて、CPU51は、起動フラグをリセットしステップ27、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとしてオフ0を格納させた状態で、ステップ14に移行する。これにより、前回の起動処理と今回の起動処理とにおいて装置構成に変更があった場合は、ステップ11で検出した今回の装置構成に基づき、各構成に対応するプログラム/変数が、再度、不揮発性RAM56のプログラム/変数領域A11に書き込まれる。このとき、新たに書き込まれるプログラム/変数は、今回の起動処理よりも前の起動処理において、プログラム/変数領域A11に既に書き込まれていたプログラム/変数に上書きされる。他方、上述したステップ24において肯定の判断を行った場合、すなわち、不揮発性RAM56のプログラム/変数領域A11に格納されるいずれかのプログラム/変数においてエラーが発生した場合、CPU51は、どのプログラムにおいてエラーが発生しているのかを反映させたエラーログを作成し、作成したエラーログを履歴領域A12のログ領域A12cに格納するステップ28。続いて、CPU51は、起動フラグをリセットしステップ29、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとしてオフ0を格納させた状態で、ステップ14に移行する。これにより、今回の起動処理よりも前の起動処理において不揮発性RAM56のプログラム/変数領域A11に記憶されていたプログラム/変数にエラー異常が生じていた場合は、ステップ11で検出した今回の装置構成に基づき、各構成に対応するプログラム/変数が、再度、不揮発性RAM56のプログラム/変数領域A11に書き込まれる。このとき、新たに書き込まれるプログラム/変数は、今回の起動処理よりも前の起動処理において、プログラム/変数領域A11に既に書き込まれていたプログラム/変数に上書きされる。次に、図6に示すIPLの実行に伴う処理の手順について、具体的に例を挙げながら説明する。<最初の起動>図7は、画像形成装置1が初めて起動される場合初回起動時における、CPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図7aはIPLの実行中における状態を例示しており、図7bはIPLの実行が完了した状態を例示している。なお、ここでは、初回起動時において、構成A、構成Bおよび構成Cが接続されているものとする。図7aに示すように、初回の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには起動フラグFlagとして0が格納されており、構成ステータス領域A12bには構成ステータスとして、A=B=C=D=0が格納されている。また、図7aに示すように、初回の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11およびログ領域A12cは、ともに空の状態となっている。CPU51は、ステップ11において、図7aに示すように、構成A、構成Bおよび構成Cを検出するA=B=C=1、D=0。また、CPU51は、ステップ12において、起動フラグ領域12aから起動フラグとして0を取得する。これにより、CPU51は、ステップ13において肯定の判断を行う。続いて、CPU51は、ステップ11で検出した今回の構成A=B=C=1、D=0に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム図7aではA圧縮を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム図7aではB圧縮を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。続いて、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム図7aではC圧縮を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図7bに示すように、構成A用のプログラム/変数図7bではA展開、構成B用のプログラム/変数図7bではB展開、および構成C用のプログラム/変数図7bではC展開が、それぞれ格納されることになる。その後、CPU51は,ステップ18において、図7bに示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして1を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログ履歴を格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bにA=B=C=1、D=0を格納する。そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。<2回目以降の起動:その1>図8は、図7に示す状態構成A、構成Bおよび構成Cを備えた状態で画像形成装置1が初回起動された後、装置構成の変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図8aはIPLの実行中における状態を例示しており、図8bはIPLの実行が完了した状態を例示している。図8aに示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして1が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとしてA=B=C=1、D=0が格納されている。また、図8aに示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。CPU51は、ステップ11において、図8aに示すように、構成A、構成Bおよび構成Cを検出するA=B=C=1、D=0。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして1を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時この例では初回起動時の構成ステータスA=B=C=1、D=0を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致することから、ステップ22において否定の判断を行う。そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、すべてのプログラム/変数においてエラーが発生しなかったことにより、CPU51が、ステップ24において肯定の判断を行っているものとする。その後、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。このように、今回の構成が前回の構成から変更されていない場合は、起動時に各構成に対応する圧縮プログラムの読み出し、展開および格納を行わずに、前回までの起動において、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラムをそのまま実行することで、起動処理にかかる時間の短縮化を図る。<2回目以降の起動:その2>図9は、図7に示す状態構成A、構成Bおよび構成Cを備えた状態で画像形成装置1が初回起動された後、構成A~Cにさらに構成Dを追加する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図9aはIPLの実行中における状態を例示しており、図9bはIPLの実行が完了した状態を例示している。図9aに示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして1が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとしてA=B=C=1、D=0が格納されている。また、図9aに示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。CPU51は、ステップ11において、図9aに示すように、構成A、構成Bおよび構成Cに加えて、構成Dも検出するA=B=C=D=1。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして1を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時この例では初回起動時の構成ステータスA=B=C=1、D=0を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ22において肯定の判断を行う。次に、CPU51は、ステップ26において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして0を格納した後、ステップ14に移行する。それから、CPU51は、ステップ11で検出した今回の構成A=B=C=D=1に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム図9aではA圧縮を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム図9aではB圧縮を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。続いて、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム図9aではC圧縮を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。さらに、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Dに対応する構成D用圧縮プログラム図9aではD圧縮を読み出し、読み出した構成D用圧縮プログラムを展開し、展開によって得られた構成D用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図9bに示すように、新たに、構成A用のプログラム/変数図9bではA展開、構成B用のプログラム/変数図9bではB展開、構成C用のプログラム/変数図9bではC展開、および構成D用のプログラム/変数図9bではD展開が、それぞれ格納上書きされることになる。その後、CPU51は,ステップ18において、図9bに示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして1を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bにA=B=C=D=1を格納する。そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラム、構成C用のプログラムおよび構成D用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成B、構成Cおよび構成Dが使用可能な状態となる。このように、今回の構成が前回の構成から変更されている場合構成が追加された場合は、起動処理時に今回検出した各構成に対応する圧縮プログラムの読み出し、展開および格納を行い、不揮発性RAM56に配置されたプログラム/変数領域A11に新たに格納された各プログラムを実行することで、今回の構成での動作が可能となる。<2回目以降の起動:その3>図10は、図7に示す状態構成A、構成Bおよび構成Cを備えた状態で画像形成装置1が初回起動された後、構成Aを削減する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図10aはIPLの実行中における状態を例示しており、図10bはIPLの実行が完了した状態を例示している。図10aに示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして1が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとしてA=B=C=1、D=0が格納されている。また、図10aに示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。CPU51は、ステップ11において、図10aに示すように、構成Bおよび構成Cを検出するA=0、B=C=1、D=0。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして1を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時この例では初回起動時の構成ステータスA=B=C=1、D=0を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ21において肯定の判断を行う。次に、CPU51は、ステップ26において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ27において、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして0を格納した後、ステップ14に移行する。それから、CPU51は、ステップ11で検出した今回の構成A=0、B=C=1、D=0に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム図10aではB圧縮を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム図9aではC圧縮を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図10bに示すように、新たに、構成B用のプログラム/変数図10bではB展開、および構成C用のプログラム/変数図10bではC展開が、それぞれ格納上書きされることになる。その後、CPU51は,ステップ18において、図10bに示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして1を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bにA=0、B=C=1、D=0を格納する。そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成Bおよび構成Cが使用可能な状態となる。このように、今回の構成が前回の構成から変更されている場合構成が削減された場合は、起動処理時に今回検出した各構成に対応する圧縮プログラムの読み出し、展開および格納を行い、不揮発性RAM56に配置されたプログラム/変数領域A11に新たに格納された各プログラムを実行することで、今回の構成での動作が可能となる。<2回目以降の起動:その4>図11は、図7に示す状態構成A、構成Bおよび構成Cを備えた状態で画像形成装置1が初回起動された後、装置構成の変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の他の状態を説明するための図である。ここで、図11aはIPLの実行中における状態を例示しており、図11bはIPLの実行が完了した状態を例示している。図11aに示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして1が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとしてA=B=C=1、D=0が格納されている。また、図11aに示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時この例では初回起動時の構成ステータスA=B=C=1、D=0を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致することから、ステップ22において否定の判断を行う。そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、構成B用のプログラム/変数においてエラーが発生したことにより、CPU51が、ステップ24において否定の判断を行っているものとする。次に、CPU51は、ステップ28において、不揮発性RAM56に配置されたログ領域A12cにエラーログを格納し、さらに、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして0を格納した後、ステップ14に移行する。それから、CPU51は、ステップ11で検出した今回の構成A=B=C=1、D=0に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム図11aではA圧縮を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム図11aではB圧縮を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。続いて、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム図11aではC圧縮を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納するステップ14~ステップ16。以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図11bに示すように、再び、構成A用のプログラム/変数図11bではA展開、構成B用のプログラム/変数図11bではB展開、および構成C用のプログラム/変数図9bではC展開が、それぞれ格納上書きされることになる。その後、CPU51は,ステップ18において、図11bに示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして1を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bにA=B=C=1、D=0を格納する。そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。このように、今回の構成が前回の構成から変更されていない場合であっても、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラムのいずれかにエラーが発生した状況下においては、、起動処理時に今回検出した各構成に対応する圧縮プログラムの読み出し、展開および格納を行い、不揮発性RAM56に配置されたプログラム/変数領域A11に再び格納された各プログラムを実行することで、今回の構成での動作が可能となる。ここで、上述した説明では、構成の追加あるいは削減に伴って、装置構成が変更される場合を例としたが、例えば接触不良や装置故障など、実際の装置構成が変更されていないにも関わらず、特定の構成を検出できないような場合も生じ得る。本実施の形態で説明した手法を用いれば、このような理由によって装置構成の変更が生じた場合であっても、使用可能な残りの構成で構築された装置を動作させるためのプログラムを再構成することが可能になる。なお、本実施の形態では、各圧縮プログラムを格納する圧縮プログラム領域A02を、不揮発性RAM57に配置していたが、これに限られるものではない。すなわち、圧縮プログラム領域A02を、例えば画像形成装置1にネットワーク2を介して接続されるサーバ装置5図1参照や、USBIF65に接続されたカードリーダ80に配置されるメモリカード81に配置するようにしてもよい。なお、このような場合には、IPLの実行時において、各圧縮プログラムの読み取り対象を、サーバ装置5あるいはカードリーダ80に装着されたメモリカードに設定すればよい。また、本実施の形態では、不揮発性RAM56にプログラム/変数領域A11および履歴領域A12を配置するとともに、揮発性RAM57にワーク領域A21およびバッファ領域A22を配置するようにしていたが、これに限られるものではなく、例えば不揮発性RAM56のみを設け、この不揮発性RAM56にプログラム/変数領域A11、履歴領域A12、ワーク領域A21およびバッファ領域A22を配置するようにしてもかまわない。さらに、本実施の形態では、制御部50を画像形成装置1に組み込んだ場合を例として説明を行ったが、これに限られるものではなく、複数のユニットの組み合わせによって構成され、これら複数のユニットの着脱に伴って構成が変更され得る装置に適用しても差し支えない。"