機器を起動するためのプログラムおよび当該プログラムで用いられる変数の値を、読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に前記プログラムおよび前記変数の値が記憶されていない初期状態で前記機器の起動が指示された場合に、当該プログラムおよび当該変数の値の前記記憶手段への転送に連続して、当該転送によって前記記憶手段に記憶された当該プログラムを、当該転送によって前記記憶手段に記憶された当該変数の値を用いて実行し、前記機器の起動が再び指示された場合に、前記初期状態で前記機器の起動が指示されたときの前記転送によって前記記憶手段に記憶された前記プログラムを、前記記憶手段に記憶されている前記変数の値を用いて実行する実行手段とを備えたことを特徴とするプログラム実行装置。前記実行手段は、前記機器の起動が再び指示された場合に、前記初期状態で前記機器の起動が指示されたときの前記転送によって前記記憶手段に記憶された前記プログラムを、当該転送によって前記記憶手段に記憶され当該プログラムが実行されても値が変わらない第1の変数の値と、当該プログラムが実行されると値が変わる第2の変数の当該転送によって前記記憶手段に記憶されたときの値とを用いて実行することを特徴とする請求項1に記載のプログラム実行装置。前記実行手段は、前記第2の変数の前記転送によって前記記憶手段に記憶されたときの値として、前記機器の起動が再び指示されたときの当該第2の変数の値の前記記憶手段への転送によって前記記憶手段に記憶された当該第2の変数の値を用いることを特徴とする請求項2に記載のプログラム実行装置。前記実行手段は、前記第2の変数の前記転送によって前記記憶手段に記憶されたときの値として、前記初期状態で前記機器の起動が指示されたときの当該転送によって前記記憶手段に記憶された前記変数の値とは別に当該転送によって前記記憶手段に記憶された当該第2の変数の値であって、前記プログラムが実行された際に用いられなかった当該第2の変数の値を用いることを特徴とする請求項2に記載のプログラム実行装置。前記プログラムおよび前記変数の値を格納する格納手段をさらに備え、前記実行手段は、前記格納手段に格納された前記プログラムおよび前記変数の値の前記記憶手段への前記転送を実行することを特徴とする請求項1乃至請求項4のいずれかに記載のプログラム実行装置。前記格納手段は、前記プログラムおよび前記変数の値を圧縮した状態で格納し、前記実行手段は、前記格納手段に格納された圧縮した状態の前記プログラムおよび前記変数の値を伸張することを特徴とする請求項5に記載のプログラム実行装置。前記不揮発性メモリは、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1乃至請求項6のいずれかに記載のプログラム実行装置。記録材に画像を形成する画像形成機能、記録材に形成された画像を読み取る画像読み取り機能、画像を送受信する画像送受信機能のうちの特定の機能による画像処理を行う画像処理手段と、前記特定の機能を起動するためのプログラムおよび当該プログラムで用いられる変数の値を、読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に前記プログラムおよび前記変数の値が記憶されていない初期状態で前記特定の機能の起動が指示された場合に、前記プログラムおよび前記変数の値の前記記憶手段への転送に連続して、当該転送によって前記記憶手段に記憶された当該プログラムを、当該転送によって前記記憶手段に記憶された当該変数の値を用いて実行し、前記特定の機能の起動が再び指示された場合に、前記初期状態で前記特定の機能の起動が指示されたときの前記転送によって前記記憶手段に記憶された前記プログラムを、前記記憶手段に記憶されている前記変数の値を用いて実行する実行手段とを備えたことを特徴とする画像処理装置。コンピュータに、機器を起動するためのプログラムおよび当該プログラムで用いられる変数の値を、読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに記憶する機能と、前記不揮発性メモリに前記プログラムおよび前記変数の値が記憶されていない初期状態で前記機器の起動が指示された場合に、前記プログラムおよび前記変数の値の前記不揮発性メモリへの転送に連続して、当該転送によって前記不揮発性メモリに記憶された当該プログラムを、当該転送によって前記不揮発性メモリに記憶された当該変数の値を用いて実行し、前記機器の起動が再び指示された場合に、前記初期状態で前記機器の起動が指示されたときの前記転送によって前記不揮発性メモリに記憶された前記プログラムを、前記不揮発性メモリに記憶されている前記変数の値を用いて実行する機能とを実現させるためのプログラム。本発明の目的は、機器の起動が初期状態で指示された後に再び指示された際に、機器を起動するためのプログラムの実行までの時間を短縮することにある。請求項1に記載の発明は、機器を起動するためのプログラムおよび当該プログラムで用いられる変数の値を、読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に前記プログラムおよび前記変数の値が記憶されていない初期状態で前記機器の起動が指示された場合に、当該プログラムおよび当該変数の値の前記記憶手段への転送に連続して、当該転送によって前記記憶手段に記憶された当該プログラムを、当該転送によって前記記憶手段に記憶された当該変数の値を用いて実行し、前記機器の起動が再び指示された場合に、前記初期状態で前記機器の起動が指示されたときの前記転送によって前記記憶手段に記憶された前記プログラムを、前記記憶手段に記憶されている前記変数の値を用いて実行する実行手段とを備えたことを特徴とするプログラム実行装置である。請求項2に記載の発明は、前記実行手段は、前記機器の起動が再び指示された場合に、前記初期状態で前記機器の起動が指示されたときの前記転送によって前記記憶手段に記憶された前記プログラムを、当該転送によって前記記憶手段に記憶され当該プログラムが実行されても値が変わらない第1の変数の値と、当該プログラムが実行されると値が変わる第2の変数の当該転送によって前記記憶手段に記憶されたときの値とを用いて実行することを特徴とする請求項1に記載のプログラム実行装置である。請求項3に記載の発明は、前記実行手段は、前記第2の変数の前記転送によって前記記憶手段に記憶されたときの値として、前記機器の起動が再び指示されたときの当該第2の変数の値の前記記憶手段への転送によって前記記憶手段に記憶された当該第2の変数の値を用いることを特徴とする請求項2に記載のプログラム実行装置である。請求項4に記載の発明は、前記実行手段は、前記第2の変数の前記転送によって前記記憶手段に記憶されたときの値として、前記初期状態で前記機器の起動が指示されたときの当該転送によって前記記憶手段に記憶された前記変数の値とは別に当該転送によって前記記憶手段に記憶された当該第2の変数の値であって、前記プログラムが実行された際に用いられなかった当該第2の変数の値を用いることを特徴とする請求項2に記載のプログラム実行装置である。請求項5に記載の発明は、前記プログラムおよび前記変数の値を格納する格納手段をさらに備え、前記実行手段は、前記格納手段に格納された前記プログラムおよび前記変数の値の前記記憶手段への前記転送を実行することを特徴とする請求項1乃至請求項4のいずれかに記載のプログラム実行装置である。請求項6に記載の発明は、前記格納手段は、前記プログラムおよび前記変数の値を圧縮した状態で格納し、前記実行手段は、前記格納手段に格納された圧縮した状態の前記プログラムおよび前記変数の値を伸張することを特徴とする請求項5に記載のプログラム実行装置である。請求項7に記載の発明は、前記不揮発性メモリは、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1乃至請求項6のいずれかに記載のプログラム実行装置である。請求項8に記載の発明は、記録材に画像を形成する画像形成機能、記録材に形成された画像を読み取る画像読み取り機能、画像を送受信する画像送受信機能のうちの特定の機能による画像処理を行う画像処理手段と、前記特定の機能を起動するためのプログラムおよび当該プログラムで用いられる変数の値を、読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に前記プログラムおよび前記変数の値が記憶されていない初期状態で前記特定の機能の起動が指示された場合に、前記プログラムおよび前記変数の値の前記記憶手段への転送に連続して、当該転送によって前記記憶手段に記憶された当該プログラムを、当該転送によって前記記憶手段に記憶された当該変数の値を用いて実行し、前記特定の機能の起動が再び指示された場合に、前記初期状態で前記特定の機能の起動が指示されたときの前記転送によって前記記憶手段に記憶された前記プログラムを、前記記憶手段に記憶されている前記変数の値を用いて実行する実行手段とを備えたことを特徴とする画像処理装置である。請求項9に記載の発明は、コンピュータに、機器を起動するためのプログラムおよび当該プログラムで用いられる変数の値を、読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに記憶する機能と、前記不揮発性メモリに前記プログラムおよび前記変数の値が記憶されていない初期状態で前記機器の起動が指示された場合に、前記プログラムおよび前記変数の値の前記不揮発性メモリへの転送に連続して、当該転送によって前記不揮発性メモリに記憶された当該プログラムを、当該転送によって前記不揮発性メモリに記憶された当該変数の値を用いて実行し、前記機器の起動が再び指示された場合に、前記初期状態で前記機器の起動が指示されたときの前記転送によって前記不揮発性メモリに記憶された前記プログラムを、前記不揮発性メモリに記憶されている前記変数の値を用いて実行する機能とを実現させるためのプログラムである。請求項1の発明によれば、機器の起動が初期状態で指示された後に再び指示された際に、本構成を有していない場合に比較して、機器を起動するためのプログラムの実行までの時間を短縮することができる。請求項2の発明によれば、機器の起動が初期状態で指示された後に再び指示された際に、プログラムが実行されると値が変わる変数の値として初期状態の値を用いることができる。請求項3の発明によれば、本構成を有していない場合に比較して、プログラムが実行されると値が変わる変数の値として初期状態の値を用いることを可能にするために機器の起動が初期状態で指示された際に処理負荷が増大することを抑制することができる。請求項4の発明によれば、本構成を有していない場合に比較して、プログラムが実行されると値が変わる変数の値として初期状態の値を用いる処理を高速に行うことができる。請求項5の発明によれば、機器の起動が初期状態で指示された後に再び指示された際に、本構成を有していない場合に比較して、機器を起動するためのプログラムおよび変数の値を格納手段から転送してプログラムを実行するまでの時間を短縮することができる。請求項6の発明によれば、本構成を有していない場合に比較して、格納手段におけるプログラムおよび変数の値の記憶容量を低減することができる。請求項7の発明によれば、例えば不揮発性メモリとしてEEPROMあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。請求項8の発明によれば、特定の機能の起動が初期状態で指示された後に再び指示された際に、本構成を有していない場合に比較して、その特定の機能を起動するためのプログラムの実行までの時間を短縮することができる。請求項9の発明によれば、機器の起動が初期状態で指示された後に再び指示された際に、本構成を有していない場合に比較して、機器を起動するためのプログラムの実行までの時間を短縮することができる。以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。図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が配置されている。これらのうち、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は、画像形成装置1が過去に起動されたことがあるか否かを示すフラグを格納する。ここで、起動フラグ領域A12には、画像形成装置1が過去に起動されている場合にはオン1が格納され、画像形成装置1が過去に起動されていない場合にはオフ0が格納される。なお、本実施の形態では、起動フラグ領域A12は、不揮発性RAM56に配置されるものとして説明するが、ROM55に配置されるものでもよい。また、起動フラグ領域A12は、エラーが発生した場合、または、UI30や特殊ブートによるユーザの指示があった場合に、クリアされるような構成としてもよい。そして、揮発性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および不揮発性RAM56の記憶内容はクリアされず、CPUリセット前の記憶内容がそのまま保持される。続いて、CPU51は、バスブリッジ52およびメモリバス53を介して、ROM55のリセットベクタ領域A01に格納されるイニシャルプログラムローダIPLを読み出すとともに、読み出したIPLを実行しステップ3、画像形成装置1に実装された各構成が使用可能となるように動作準備を行う。そして、画像形成装置1の動作準備が完了するステップ4ことで、一連の起動処理を終了する。続いて、上述したステップ3におけるIPLの実行について、より詳細に説明する。IPLの実行に伴い、CPU51は、ROM55から圧縮プログラムを読み出し、これを展開して得られたプログラム/変数を不揮発性RAM56に格納して実行することにより、画像形成装置1を起動する。しかしながら、2回目以降の起動時においても、ROM55から圧縮プログラムを読み出し、これを展開して得られたプログラム/変数を不揮発性RAM56に格納する処理を行ったのでは、画像形成装置1の起動時間が長くなってしまう。そこで、本実施の形態では、初回の起動時にのみ、ROM55から圧縮プログラムを読み出して展開伸張し、2回目以降の起動時には、ROM55から圧縮プログラムを読み出して展開伸張する処理の少なくとも一部を省略することで、画像形成装置1の起動時間を短縮する。なお、本明細書では、画像形成装置1の工場出荷後の最初の起動だけでなく、不揮発性RAM56にプログラム/変数が記憶されていない初期状態での画像形成装置1の起動も初回の起動と称し、それ以降再び初期状態になるまでの起動を2回目以降の起動と称するものとする。具体的には、画像形成装置1の起動時間を短縮する起動方法として3つの方法を考えているので、以下、これらの方法を順に、第1、第2、第3の実施例として詳細に説明する。第1の実施例図6は、第1の実施例における画像形成装置1の起動方法について模式的に示す図である。初回の起動時には、不揮発性RAM56にはプログラム/変数が何も記憶されていないため、矢印Aで示すように、ROM55から圧縮プログラムを読み出して伸張し、不揮発性RAM56に格納する必要がある。しかしながら、2回目以降の起動時には、不揮発性RAM56にはプログラム/変数が記憶されているため、ROM55から再度圧縮プログラムを読み出して伸張する必要がない。従って、2回目以降の起動時に、ROM55から圧縮プログラムを読み出して伸張する処理を省略することで、画像形成装置1の起動を高速化できる。なお、本実施の形態では、圧縮プログラムを伸張することで不揮発性RAM56に格納されるプログラム/変数として、図示するように、TEXT、RODATAReadOnlyDATA、DATA、BSSBlockStartedbySymbolを考える。このうち、TEXTは、圧縮プログラムを伸張することによって得られたプログラムのコードである。また、RODATAは、圧縮プログラムを伸張することによって得られた変数のうち、値が変わらない変数の値定数である。さらに、DATAは、圧縮プログラムを伸張することによって得られた変数のうち、値が変わりかつ初期値を持つ変数の値である。さらにまた、BSSは、圧縮プログラムを伸張することによって得られた変数のうち、値が変わりかつ初期値を持たない変数の値である。続いて、第1の実施例におけるIPLの実行について、さらに詳しく説明する。図7は、このときのIPLの実行に伴う処理の手順を説明するためのフローチャートである。IPLの実行に伴い、CPU51は、不揮発性RAM56の起動フラグ領域A12から、起動フラグを読み出して取得するステップ11。そして、CPU51は、起動フラグがオフ0であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断するステップ12。ステップ12において肯定の判断Yesを行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、CPU51は、続いて、ROM55の圧縮プログラム領域A02から、全ての装置構成の中に含まれる1つの構成に対応する圧縮プログラムを読み出しステップ13、ステップ13で読み出した圧縮プログラムを展開しステップ14、ステップ14で圧縮プログラムを展開して得られたプログラム/変数TEXT、RODATA、DATA、BSSを、不揮発性RAM56のプログラム/変数領域A11に格納するステップ15。その後、全構成に対応するプログラム/変数の、プログラム/変数領域A11への格納が完了したか否かを判断するステップ16。ステップ16において否定の判断Noを行った場合は、ステップ13に戻り、残りの構成に対応する圧縮プログラムの読み出し、読み出した圧縮プログラムの展開、そして展開によって得られたプログラム/変数の格納を続けて行う。一方、ステップ16において肯定の判断Yesを行った場合、処理は、後述するステップ21に進む。また、上述したステップ12において否定の判断Noを行った場合、すなわち、今回の起動処理が2回目以降の起動処理であった場合も、処理は、後述するステップ21に進む。すると、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納された各プログラムを、対応する変数を用いて実行しステップ21、システムフェイルを検出したかどうかを判断するステップ22。ここで、システムフェイルとは、例えば、ステップ21で各プログラムを実行したときに正常に動作しないことであるが、ステップ21で各プログラムを実行する前に各プログラム/変数に対してエラーチェックを行うことにより発見されるエラーであってもよい。ステップ22において否定の判断Noを行った場合、すなわち、システムフェイルを検出しなかった場合、CPU51は、不揮発性RAM56の起動フラグ領域A12に、起動フラグとしてオン1を格納するステップ23。一方、ステップ22において肯定の判断Yesを行った場合、すなわち、システムフェイルを検出した場合、CPU51は、そこで処理を停止して、フェイル処理を行うステップ24。ここで、フェイル処理としては、例えば、UI30等を用いてユーザにシステムフェイルが発生した旨を通知する処理が考えられる。システムフェイルが発生した場合は、圧縮プログラムを再度展開する必要があるので、処理は、ステップ13に戻る。第2の実施例図8は、第2の実施例における画像形成装置1の起動方法について模式的に示す図である。上述した第1の実施例では、初回の起動時に不揮発性RAM56に格納されたデータを、2回目以降の起動時に初期化しなかったが、2回目以降の起動時に初期化した方がよいデータもある。不揮発性RAM56に格納されたプログラム/変数のうち、TEXTおよびRODATAは値が変化しないので初期化する必要はないが、DATAおよびBSSは値が変化するので初期化した方がよい。そこで、この第2の実施例では、TEXTおよびRODATAを圧縮した第1圧縮部分と、DATAおよびBSSを圧縮した第2圧縮部分とを、圧縮プログラムを構成する部分としてROM55に格納する。そして、初回の起動時には、矢印Aで示すように、ROM55から第1圧縮部分および第2圧縮部分を読み出して伸張し、TEXT、RODATA、DATA、BSSを不揮発性RAM56に格納し、2回目以降の起動時には、矢印Bに示すように、ROM55から第2圧縮部分のみを読み出して伸張し、DATAおよびBSSを不揮発性RAM56に再度格納するようにした。すなわち、2回目以降の起動時に、第1圧縮部分を伸張してTEXTおよびRODATAを格納する処理を行わないようにすることで、画像形成装置1の起動時間を短縮している。なお、このような起動方法を採用するかどうかは、ユーザによって予め選択できるようにするとよい。また、この第2の実施例では、TEXTおよびRODATAを圧縮した第1圧縮部分と、DATAおよびBSSを圧縮した第2圧縮部分とをROM55に記憶するものとして説明するが、第1の実施例のように、TEXT、RODATA、DATA、BSSを圧縮した圧縮プログラムをROM55に記憶するものとしてもよい。ただし、この場合、初回の起動時には、圧縮プログラムを伸張して得られたTEXT、RODATA、DATA、BSSを不揮発性RAM56に格納し、2回目以降の起動時には、圧縮プログラムを伸張して得られたTEXT、RODATA、DATA、BSSのうち、DATAおよびBSSを不揮発性RAM56に格納することになる。続いて、第2の実施例におけるIPLの実行について、さらに詳しく説明する。図9は、このときのIPLの実行に伴う処理の手順を説明するためのフローチャートである。IPLの実行に伴い、CPU51は、不揮発性RAM56の起動フラグ領域A12から、起動フラグを読み出して取得するステップ31。そして、CPU51は、起動フラグがオフ0であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断するステップ32。ステップ32において肯定の判断Yesを行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、CPU51は、続いて、ROM55の圧縮プログラム領域A02から、全ての装置構成の中に含まれる1つの構成に対応する第1圧縮部分および第2圧縮部分を読み出しステップ33、ステップ33で読み出した第1圧縮部分および第2圧縮部分を展開するステップ34。そして、ステップ34で第1圧縮部分を展開して得られたプログラム/変数TEXT、RODATAおよびステップ34で第2圧縮部分を展開して得られた変数DATA、BSSを、不揮発性RAM56のプログラム/変数領域A11に格納するステップ35。その後、全構成に対応するプログラム/変数の、プログラム/変数領域A11への格納が完了したか否かを判断するステップ36。ステップ36において否定の判断Noを行った場合は、ステップ33に戻り、残りの構成に対応する第1圧縮部分および第2圧縮部分の読み出し、読み出した第1圧縮部分および第2圧縮部分の展開、そして展開によって得られたプログラム/変数の格納を続けて行う。一方、ステップ36において肯定の判断Yesを行った場合、処理は、後述するステップ41に進む。また、上述したステップ32において否定の判断Noを行った場合、すなわち、今回の起動処理が2回目以降の起動処理であった場合、CPU51は、ROM55の圧縮プログラム領域A02から、全ての装置構成の中に含まれる1つの構成に対応する第2圧縮部分を読み出しステップ37、ステップ37で読み出した第2圧縮部分を展開するステップ38。そして、ステップ38で第2圧縮部分を展開して得られた変数DATA、BSSを、不揮発性RAM56のプログラム/変数領域A11に格納するステップ39。その後、全構成に対応する変数の、プログラム/変数領域A11への格納が完了したか否かを判断するステップ40。ステップ40において否定の判断Noを行った場合は、ステップ37に戻り、残りの構成に対応する第2圧縮部分の読み出し、読み出した第2圧縮部分の展開、そして展開によって得られた変数の格納を続けて行う。一方、ステップ40において肯定の判断Yesを行った場合、処理は、後述するステップ41に進む。すると、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納された各プログラムを、対応する変数を用いて実行しステップ41、システムフェイルを検出したかどうかを判断するステップ42。ここで、システムフェイルとは、例えば、ステップ41で各プログラムを実行したときに正常に動作しないことであるが、ステップ41で各プログラムを実行する前に各プログラム/変数に対してエラーチェックを行うことにより発見されるエラーであってもよい。ステップ42において否定の判断Noを行った場合、すなわち、システムフェイルを検出しなかった場合、CPU51は、不揮発性RAM56の起動フラグ領域A12に、起動フラグとしてオン1を格納するステップ43。一方、ステップ42において肯定の判断Yesを行った場合、すなわち、システムフェイルを検出した場合、CPU51は、そこで処理を停止して、フェイル処理を行うステップ44。ここで、フェイル処理としては、例えば、UI30等を用いてユーザにシステムフェイルが発生した旨を通知する処理が考えられる。システムフェイルが発生した場合、少なくとも変数DATA、BSSの初期化は再度行う必要があるので、処理は、初回起動時であればステップ33に、2回目以降の起動時であればステップ33またはステップ37に戻る。第3の実施例図10は、第3の実施例における画像形成装置1の起動方法について模式的に示す図である。上述した第2の実施例では、2回目以降の起動時に、ROM55から第2圧縮部分を読み出して伸張し、DATAおよびBSSを不揮発性RAM56に格納するようにしたが、この方法だと、ROM55から第2圧縮部分を読み出して伸張しなければならないので、依然として起動に時間がかかってしまう。そこで、この第3の実施例では、初回の起動時に、矢印Aで示すように、ROM55から第1圧縮部分および第2圧縮部分を読み出して伸張し、TEXT、RODATA、DATA、BSSを不揮発性RAM56に格納するのに加え、矢印A’で示すように、DATAおよびBSSは不揮発性RAM56の別の領域にもコピーしておく。そして、2回目以降の起動時に、矢印Bで示すように、この別の領域からDATAおよびBSSを読み出して、本来格納すべき領域に格納する。これにより、ROM55から第2圧縮部分を読み出して伸張し、DATAおよびBSSを不揮発性RAM56に格納するよりも高速に、DATAおよびBSSを不揮発性RAM56に格納することが可能となり、画像形成装置1の起動時間がさらに短縮される。なお、このような起動方法を採用するかどうかは、ユーザによって予め選択できるようにするとよい。また、この第3の実施例では、TEXTおよびRODATAを圧縮した第1圧縮部分と、DATAおよびBSSを圧縮した第2圧縮部分とをROM55に記憶するものとして説明するが、第1の実施例のように、TEXT、RODATA、DATA、BSSを圧縮した圧縮プログラムをROM55に記憶するものとしてもよい。続いて、第3の実施例におけるIPLの実行について、さらに詳しく説明する。図11は、このときのIPLの実行に伴う処理の手順を説明するためのフローチャートである。IPLの実行に伴い、CPU51は、不揮発性RAM56の起動フラグ領域A12から、起動フラグを読み出して取得するステップ51。そして、CPU51は、起動フラグがオフ0であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断するステップ52。ステップ52において肯定の判断Yesを行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、CPU51は、続いて、ROM55の圧縮プログラム領域A02から、全ての装置構成の中に含まれる1つの構成に対応する第1圧縮部分および第2圧縮部分を読み出しステップ53、ステップ53で読み出した第1圧縮部分および第2圧縮部分を展開するステップ54。そして、ステップ54で第1圧縮部分を展開して得られたプログラム/変数TEXT、RODATAおよびステップ54で第2圧縮部分を展開して得られた変数DATA、BSSを、不揮発性RAM56のプログラム/変数領域A11における本来格納すべき領域に格納すると共に、ステップ54で第2圧縮部分を展開して得られた変数DATA、BSSを、不揮発性RAM56のプログラム/変数領域A11におけるこれとは別の領域に格納するステップ55。その後、全構成に対応するプログラム/変数の、プログラム/変数領域A11への格納が完了したか否かを判断するステップ56。ステップ56において否定の判断Noを行った場合は、ステップ53に戻り、残りの構成に対応する第1圧縮部分および第2圧縮部分の読み出し、読み出した第1圧縮部分および第2圧縮部分の展開、そして展開によって得られたプログラム/変数の格納を続けて行う。一方、ステップ56において肯定の判断Yesを行った場合、処理は、後述するステップ61に進む。また、上述したステップ52において否定の判断Noを行った場合、すなわち、今回の起動処理が2回目以降の起動処理であった場合、CPU51は、不揮発性RAM56のプログラム/変数領域A11における本来格納すべき領域とは別の領域から、全ての装置構成の中に含まれる1つの構成に対応する変数DATA、BSSを読み出しステップ57、ステップ57で読み出した変数DATA、BSSを、不揮発性RAM56のプログラム/変数領域A11における本来格納すべき領域に格納するステップ59。その後、全構成に対応する変数の、プログラム/変数領域A11への格納が完了したか否かを判断するステップ60。ステップ60において否定の判断Noを行った場合は、ステップ57に戻り、残りの構成に対応する変数の読み出し、読み出した変数の格納を続けて行う。一方、ステップ60において肯定の判断Yesを行った場合、処理は、後述するステップ61に進む。すると、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納された各プログラムを、対応する変数を用いて実行しステップ61、システムフェイルを検出したかどうかを判断するステップ62。ここで、システムフェイルとは、例えば、ステップ61で各プログラムを実行したときに正常に動作しないことであるが、ステップ61で各プログラムを実行する前に各プログラム/変数に対してエラーチェックを行うことにより発見されるエラーであってもよい。ステップ62において否定の判断Noを行った場合、すなわち、システムフェイルを検出しなかった場合、CPU51は、不揮発性RAM56の起動フラグ領域A12に、起動フラグとしてオン1を格納するステップ63。一方、ステップ62において肯定の判断Yesを行った場合、すなわち、システムフェイルを検出した場合、CPU51は、そこで処理を停止して、フェイル処理を行うステップ64。ここで、フェイル処理としては、例えば、UI30等を用いてユーザにシステムフェイルが発生した旨を通知する処理が考えられる。システムフェイルが発生した場合、少なくとも変数DATA、BSSの初期化は再度行う必要があるので、処理は、初回起動時であればステップ53に、2回目以降の起動時であればステップ53またはステップ57に戻る。なお、本実施の形態では、各圧縮プログラムを格納する圧縮プログラム領域A02を、ROM55に配置していたが、これに限られるものではない。すなわち、圧縮プログラム領域A02を、例えば画像形成装置1にネットワーク2を介して接続されるサーバ装置5図1参照や、USBIF65に接続されたカードリーダ80に配置されるメモリカード81に配置するようにしてもよい。なお、このような場合には、IPLの実行時において、各圧縮プログラムの読み取り対象を、サーバ装置5あるいはカードリーダ80に装着されたメモリカードに設定すればよい。また、本実施の形態では、ROM55には、画像形成装置1を起動するためのプログラム/変数を圧縮した状態で記憶していたが、画像形成装置1を起動するためのプログラム/変数を圧縮しない状態で記憶してもよい。例えば、プログラムを実行するためのイメージを記憶してもよい。この場合、プログラム/変数は、ROM55から読み出され、伸張されることなく、不揮発性RAM56に格納される。さらに、本実施の形態では、不揮発性RAM56にプログラム/変数領域A11および起動フラグ領域A12を配置するとともに、揮発性RAM57にワーク領域A21およびバッファ領域A22を配置するようにしていたが、これに限られるものではなく、例えば不揮発性RAM56のみを設け、この不揮発性RAM56にプログラム/変数領域A11、起動フラグ領域A12、ワーク領域A21およびバッファ領域A22を配置するようにしてもかまわない。さらにまた、本実施の形態では、制御部50を画像形成装置1に組み込んだ場合を例として説明を行ったが、これに限られるものではなく、機器を起動するためのプログラムを実行することにより起動されるいかなる機器に適用しても差し支えない。なお、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD-ROM等の記録媒体に格納して提供することも可能である。