(57)【特許請求の範囲】
【請求項１】
機器を起動するためのプログラムおよび当該プログラムで用いられる変数であって当該プログラムが実行されても値が変わらない変数である第１の変数の値を圧縮した第１の圧縮データと、当該プログラムで用いられる変数であって当該プログラムが実行されると値が変わる変数である第２の変数の値を圧縮した第２の圧縮データとを格納する格納手段と、
読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに、データを記憶する記憶手段と、
前記記憶手段に前記プログラム、前記第１の変数の値および前記第２の変数の値が記憶されていない初期状態で前記機器の起動が指示された場合に、前記第１の圧縮データを伸張することによって当該プログラムおよび当該第１の変数の値を取得し、前記第２の圧縮データを伸張することによって当該第２の変数の値を取得し、当該プログラム、当該第１の変数の値および当該第２の変数の値の前記記憶手段への転送である第１の転送を行い、当該第１の転送によって前記記憶手段に記憶された当該プログラムを、当該第１の転送によって前記記憶手段に記憶された当該第１の変数の値および当該第２の変数の値を用いて実行し、前記機器の起動が再び指示された場合に、前記第２の圧縮データを伸張することによって前記第２の変数の値を取得し、当該第２の変数の値の前記記憶手段への転送である第２の転送を行い、前記第１の転送によって前記記憶手段に記憶された前記プログラムを、前記第１の転送によって前記記憶手段に記憶された前記第１の変数の値と、当該第２の転送によって前記記憶手段に記憶された前記第２の変数の値とを用いて実行する実行手段と
を備えたことを特徴とするプログラム実行装置。
【請求項２】
前記不揮発性メモリは、ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭのいずれかであることを特徴とする請求項１に記載のプログラム実行装置。
【請求項３】
記録材に画像を形成する画像形成機能、記録材に形成された画像を読み取る画像読み取り機能、画像を送受信する画像送受信機能のうちの特定の機能による画像処理を行う画像処理手段と、
前記特定の機能を起動するためのプログラムおよび当該プログラムで用いられる変数であって当該プログラムが実行されても値が変わらない変数である第１の変数の値を圧縮した第１の圧縮データと、当該プログラムで用いられる変数であって当該プログラムが実行されると値が変わる変数である第２の変数の値を圧縮した第２の圧縮データとを格納する格納手段と、
読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに、データを記憶する記憶手段と、
前記記憶手段に前記プログラム、前記第１の変数の値および前記第２の変数の値が記憶されていない初期状態で前記特定の機能の起動が指示された場合に、前記第１の圧縮データを伸張することによって当該プログラムおよび当該第１の変数の値を取得し、前記第２の圧縮データを伸張することによって当該第２の変数の値を取得し、当該プログラム、当該第１の変数の値および当該第２の変数の値の前記記憶手段への転送である第１の転送を行い、当該第１の転送によって前記記憶手段に記憶された当該プログラムを、当該第１の転送によって前記記憶手段に記憶された当該第１の変数の値および当該第２の変数の値を用いて実行し、前記特定の機能の起動が再び指示された場合に、前記第２の圧縮データを伸張することによって前記第２の変数の値を取得し、当該第２の変数の値の前記記憶手段への転送である第２の転送を行い、前記第１の転送によって前記記憶手段に記憶された前記プログラムを、前記第１の転送によって前記記憶手段に記憶された前記第１の変数の値と、当該第２の転送によって前記記憶手段に記憶された前記第２の変数の値とを用いて実行する実行手段と
を備えたことを特徴とする画像処理装置。
【請求項４】
コンピュータに、
機器を起動するためのプログラムおよび当該プログラムで用いられる変数であって当該プログラムが実行されても値が変わらない変数である第１の変数の値を圧縮した第１の圧縮データと、当該プログラムで用いられる変数であって当該プログラムが実行されると値が変わる変数である第２の変数の値を圧縮した第２の圧縮データとを格納する機能と、
読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに、データを記憶する機能と、
前記不揮発性メモリに前記プログラム、前記第１の変数の値および前記第２の変数の値が記憶されていない初期状態で前記機器の起動が指示された場合に、前記第１の圧縮データを伸張することによって当該プログラムおよび当該第１の変数の値を取得し、前記第２の圧縮データを伸張することによって当該第２の変数の値を取得し、当該プログラム、当該第１の変数の値および当該第２の変数の値の前記不揮発性メモリへの転送である第１の転送を行い、当該第１の転送によって前記不揮発性メモリに記憶された当該プログラムを、当該第１の転送によって前記不揮発性メモリに記憶された当該第１の変数の値および当該第２の変数の値を用いて実行し、前記機器の起動が再び指示された場合に、前記第２の圧縮データを伸張することによって前記第２の変数の値を取得し、当該第２の変数の値の前記不揮発性メモリへの転送である第２の転送を行い、前記第１の転送によって前記不揮発性メモリに記憶された前記プログラムを、前記第１の転送によって前記不揮発性メモリに記憶された前記第１の変数の値と、当該第２の転送によって前記不揮発性メモリに記憶された前記第２の変数の値とを用いて実行する機能と
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム実行装置、画像処理装置、プログラムに関する。
【背景技術】
【０００２】
主記憶装置の一部を構成する不揮発性記憶部に予め記憶された主記憶イメージからシステムの起動を行う計算機システムは知られている（例えば、特許文献１参照）。この特許文献１の計算機システムでは、不揮発性記憶部上の主記憶イメージのブロック毎に、システム運用後に初めて書き込みアクセスが発生したときに、アドレス変換部は、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーし、そのコピー上で書き込みを行う。また、以後、コピー済みの主記憶イメージの領域へのアクセスはコピーへのアクセスに切り替える。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１０８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、機器の起動が初期状態で指示された後に再び指示された際に、機器を起動するためのプログラムの実行までの時間を短縮することにある。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明は、機器を起動するためのプログラムおよび当該プログラムで用いられる変数であって当該プログラムが実行されても値が変わらない変数である第１の変数の値を圧縮した第１の圧縮データと、当該プログラムで用いられる変数であって当該プログラムが実行されると値が変わる変数である第２の変数の値を圧縮した第２の圧縮データとを格納する格納手段と、読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに、データを記憶する記憶手段と、前記記憶手段に前記プログラム、前記第１の変数の値および前記第２の変数の値が記憶されていない初期状態で前記機器の起動が指示された場合に、前記第１の圧縮データを伸張することによって当該プログラムおよび当該第１の変数の値を取得し、前記第２の圧縮データを伸張することによって当該第２の変数の値を取得し、当該プログラム、当該第１の変数の値および当該第２の変数の値の前記記憶手段への転送である第１の転送を行い、当該第１の転送によって前記記憶手段に記憶された当該プログラムを、当該第１の転送によって前記記憶手段に記憶された当該第１の変数の値および当該第２の変数の値を用いて実行し、前記機器の起動が再び指示された場合に、前記第２の圧縮データを伸張することによって前記第２の変数の値を取得し、当該第２の変数の値の前記記憶手段への転送である第２の転送を行い、前記第１の転送によって前記記憶手段に記憶された前記プログラムを、前記第１の転送によって前記記憶手段に記憶された前記第１の変数の値と、当該第２の転送によって前記記憶手段に記憶された前記第２の変数の値とを用いて実行する実行手段とを備えたことを特徴とするプログラム実行装置である。
請求項２に記載の発明は、前記不揮発性メモリは、ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭのいずれかであることを特徴とする請求項１に記載のプログラム実行装置である。
請求項３に記載の発明は、記録材に画像を形成する画像形成機能、記録材に形成された画像を読み取る画像読み取り機能、画像を送受信する画像送受信機能のうちの特定の機能による画像処理を行う画像処理手段と、前記特定の機能を起動するためのプログラムおよび当該プログラムで用いられる変数であって当該プログラムが実行されても値が変わらない変数である第１の変数の値を圧縮した第１の圧縮データと、当該プログラムで用いられる変数であって当該プログラムが実行されると値が変わる変数である第２の変数の値を圧縮した第２の圧縮データとを格納する格納手段と、読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに、データを記憶する記憶手段と、前記記憶手段に前記プログラム、前記第１の変数の値および前記第２の変数の値が記憶されていない初期状態で前記特定の機能の起動が指示された場合に、前記第１の圧縮データを伸張することによって当該プログラムおよび当該第１の変数の値を取得し、前記第２の圧縮データを伸張することによって当該第２の変数の値を取得し、当該プログラム、当該第１の変数の値および当該第２の変数の値の前記記憶手段への転送である第１の転送を行い、当該第１の転送によって前記記憶手段に記憶された当該プログラムを、当該第１の転送によって前記記憶手段に記憶された当該第１の変数の値および当該第２の変数の値を用いて実行し、前記特定の機能の起動が再び指示された場合に、前記第２の圧縮データを伸張することによって前記第２の変数の値を取得し、当該第２の変数の値の前記記憶手段への転送である第２の転送を行い、前記第１の転送によって前記記憶手段に記憶された前記プログラムを、前記第１の転送によって前記記憶手段に記憶された前記第１の変数の値と、当該第２の転送によって前記記憶手段に記憶された前記第２の変数の値とを用いて実行する実行手段とを備えたことを特徴とする画像処理装置である。
請求項４に記載の発明は、コンピュータに、機器を起動するためのプログラムおよび当該プログラムで用いられる変数であって当該プログラムが実行されても値が変わらない変数である第１の変数の値を圧縮した第１の圧縮データと、当該プログラムで用いられる変数であって当該プログラムが実行されると値が変わる変数である第２の変数の値を圧縮した第２の圧縮データとを格納する機能と、読み書き可能であって、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリに、データを記憶する機能と、前記不揮発性メモリに前記プログラム、前記第１の変数の値および前記第２の変数の値が記憶されていない初期状態で前記機器の起動が指示された場合に、前記第１の圧縮データを伸張することによって当該プログラムおよび当該第１の変数の値を取得し、前記第２の圧縮データを伸張することによって当該第２の変数の値を取得し、当該プログラム、当該第１の変数の値および当該第２の変数の値の前記不揮発性メモリへの転送である第１の転送を行い、当該第１の転送によって前記不揮発性メモリに記憶された当該プログラムを、当該第１の転送によって前記不揮発性メモリに記憶された当該第１の変数の値および当該第２の変数の値を用いて実行し、前記機器の起動が再び指示された場合に、前記第２の圧縮データを伸張することによって前記第２の変数の値を取得し、当該第２の変数の値の前記不揮発性メモリへの転送である第２の転送を行い、前記第１の転送によって前記不揮発性メモリに記憶された前記プログラムを、前記第１の転送によって前記不揮発性メモリに記憶された前記第１の変数の値と、当該第２の転送によって前記不揮発性メモリに記憶された前記第２の変数の値とを用いて実行する機能とを実現させるためのプログラムである。
【発明の効果】
【０００６】
請求項１の発明によれば、機器の起動が初期状態で指示された後に再び指示された際に、本構成を有していない場合に比較して、機器を起動するためのプログラムの実行までの時間を短縮することができる。
請求項２の発明によれば、例えば不揮発性メモリとしてＥＥＰＲＯＭあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。
請求項３の発明によれば、特定の機能の起動が初期状態で指示された後に再び指示された際に、本構成を有していない場合に比較して、その特定の機能を起動するためのプログラムの実行までの時間を短縮することができる。
請求項４の発明によれば、機器の起動が初期状態で指示された後に再び指示された際に、本構成を有していない場合に比較して、機器を起動するためのプログラムの実行までの時間を短縮することができる。
【図面の簡単な説明】
【０００７】
【図１】本実施の形態が適用される画像形成システムの構成の一例を示す図である。
【図２】画像形成装置に設けられた制御部の内部構成の一例を示すハードウェアブロック図である。
【図３】制御部に設けられたＣＰＵの内部構成の一例を示すハードウェアブロック図である。
【図４】メインメモリによるメモリマップの構成の一例を示す図である。
【図５】画像形成装置の起動処理を説明するためのフローチャートである。
【図６】第１の実施例における画像形成装置の起動方法について模式的に示す図である。
【図７】第１の実施例におけるＩＰＬの実行に伴う処理の手順を説明するためのフローチャートである。
【図８】第２の実施例における画像形成装置の起動方法について模式的に示す図である。
【図９】第２の実施例におけるＩＰＬの実行に伴う処理の手順を説明するためのフローチャートである。
【図１０】第３の実施例における画像形成装置の起動方法について模式的に示す図である。
【図１１】第３の実施例におけるＩＰＬの実行に伴う処理の手順を説明するためのフローチャートである。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態が適用される画像形成システムの構成の一例を示す図である。
この画像形成システムは、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を備えた画像形成装置１と、画像形成装置１に接続されるネットワーク２と、ネットワーク２に接続される端末装置３と、ネットワーク２に接続されるファクシミリ装置４と、ネットワーク２に接続されるサーバ装置５とを有している。
【０００９】
ここで、ネットワーク２は、インターネット回線や電話回線等によって構成されている。また、端末装置３は、ネットワーク２を介して、画像形成装置１に画像の形成等を指示するものであり、例えばＰＣ（Personal Computer）で構成される。さらに、ファクシミリ装置４は、ネットワーク２を介して、画像形成装置１との間でファクシミリを送受信する。さらにまた、サーバ装置５は、ネットワーク２を介して、画像形成装置１との間でデータ（プログラムを含む）を送受信する。
【００１０】
また、画像形成装置１は、紙等の記録媒体に記録された画像を読み取る画像読取部１０と、紙等の記録媒体に画像を形成する画像形成部２０と、ユーザから電源のオン／オフ、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェース（ＵＩ）３０と、ネットワーク２を介して端末装置３、ファクシミリ装置４およびサーバ装置５との間でデータの送受信を行う送受信部４０と、これら画像読取部１０、画像形成部２０、ＵＩ３０および送受信部４０の動作を制御する制御部５０とを備えている。そして、この画像形成装置１では、画像処理手段の一例としての画像読取部１０によって特定の機能の一例としてのスキャン機能が実現され、画像処理手段の一例としての画像形成部２０によって特定の機能の一例としてのプリント機能が実現され、画像処理手段の一例としての画像読取部１０および画像処理手段の一例としての画像形成部２０によって特定の機能の一例としてのコピー機能が実現され、画像処理手段の一例としての画像読取部１０、画像処理手段の一例としての画像形成部２０および画像処理手段の一例としての送受信部４０によって特定の機能の一例としてのファクシミリ機能が実現される。なお、送受信部４０は、例えばインターネット回線用のものと電話回線用のものとを、別々に設けるようにしてもかまわない。
【００１１】
図２は、図１に示す画像形成装置１に設けられた制御部５０の内部構成の一例を示すハードウェアブロック図である。
プログラム実行装置の一例としての制御部５０は、種々の演算を実行することによって画像形成装置１の各部を制御する実行手段の一例としてのＣＰＵ（Central Processing Unit：中央処理装置）５１と、ＣＰＵ５１に接続され、ＣＰＵ５１との間で各種データのやりとりを行うバスブリッジ５２とを備えている。制御部５０において、バスブリッジ５２には、第１のクロックでデータのやりとりを行うメモリバス５３と、第１のクロックよりも周波数が低い第２のクロックでデータのやりとりを行うＰＣＩ（Peripheral Component Interconnect）バス５４とが接続されている。
【００１２】
また、制御部５０は、ＲＯＭ（Read Only Memory）５５と、不揮発性ＲＡＭ（Random Access Memory）５６と、揮発性ＲＡＭ５７とを備えている。そして、これらＲＯＭ５５、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７は、それぞれ、メモリバス５３に接続されている。
【００１３】
さらに、制御部５０は、ＵＩ３０を制御するためのＵＩインタフェース回路（ＵＩＩＦ）６１と、画像形成部２０を制御するためのプリントインタフェース回路（プリントＩＦ）６２と、例えば画像形成が行われた記録媒体に後処理を施す後処理部７０など、画像形成装置１に後付けで装着されるオプションユニットを制御するためのオプションインタフェース回路（オプションＩＦ）６３と、送受信部４０を制御するためのネットワークインタフェース回路（ネットワークＩＦ）６４と、ＵＳＢ（Universal Serial Bus）デバイスを制御するためのＵＳＢインタフェース回路（ＵＳＢＩＦ）６５とを備えている。そして、これらＵＩＩＦ６１、プリントＩＦ６２、オプションＩＦ６３、ネットワークＩＦ６４およびＵＳＢＩＦ６５は、それぞれ、ＰＣＩバス５４に接続されている。また、本実施の形態では、ＵＳＢＩＦ６５に対し、画像読取部１０が接続されている。なお、ＵＳＢＩＦ６５には、例えば、装着されたメモリカード８１に対しデータを読み書きするカードリーダ８０が接続されることもある。
【００１４】
そして、制御部５０は、制御部５０を構成する各部（ＣＰＵ５１等）が動作するクロックの基準となる基準クロックを生成するクロックジェネレータ５８と、ＣＰＵ５１等の動作に伴って計時を行うタイマ５９とをさらに備えている。
【００１５】
本実施の形態における制御部５０は、例えば、１チップのマイクロコントローラによって構成されている。ただし、制御部５０を、複数のチップで構成してもかまわない。
【００１６】
また、本実施の形態の制御部５０において、ＣＰＵ５１は、ＲＯＭ５５、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７に直接アクセスすることが可能となっている。以下の説明では、メモリバス５３に接続されるＲＯＭ５５、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７を、まとめて『メインメモリ』と称することがある。
【００１７】
ここで、格納手段の一例としてのＲＯＭ５５は、所謂マスクＲＯＭ、各種ＰＲＯＭ（Programmable ROM：例えばＯＴＰ  ＲＯＭ (One Time Programmable ROM)、ＵＶ−ＥＰＲＯＭ（Ultra-Violet Erasable Programmable ROM）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM））、フラッシュメモリなどで構成されている。なお、この例では、ＲＯＭ５５として、フラッシュメモリが用いられている。
【００１８】
また、記憶手段の一例としての不揮発性ＲＡＭ５６は、ＭＲＡＭ（MagnetoresistiveRAM）、ＦｅＲＡＭ（Ferroelectric RAM）、ＰＲＡＭ（Phase change RAM）、ＲｅＲＡＭ（Resistance RAM）など、電源を供給しなくても、記憶しているデータを保持することが可能な不揮発性メモリによって構成されている。なお、この例では、不揮発性ＲＡＭ５６として、ＲＯＭ５５として用いられるフラッシュメモリよりも高速にデータの読み書きが可能なＭＲＡＭが用いられている。
【００１９】
さらに、揮発性ＲＡＭ５７は、ＤＲＡＭ（Dynamic RAM）やＳＲＡＭ（Static RAM）など、電源を供給しないと、記憶しているデータを保持することができない揮発性メモリによって構成されている。なお、この例では、揮発性ＲＡＭ５７として、ＤＲＡＭが用いられている。
【００２０】
そして、本実施の形態では、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７が、ともに第１のクロックでデータの読み書きを行う。このため、不揮発性ＲＡＭ５６は、揮発性ＲＡＭ５７（この例ではＤＲＡＭ）と同等の読み書き性能を有していることになる。
【００２１】
図３は、図２に示す制御部５０に設けられたＣＰＵ５１の内部構成の一例を示すハードウェアブロック図である。
本実施の形態のＣＰＵ５１は、制御部５０に設けられたバスブリッジ５２と接続され、バスブリッジ５２との間で各種データのやりとりを行うバスコントロールユニット５１１と、バスコントロールユニット５１１に接続され、ＣＰＵ５１内において上述した第１のクロックよりも周波数が高い第３のクロックで各種データのやりとりを行うＣＰＵ内部バス５１２とを備えている。またＣＰＵ５１は、ＣＰＵ５１内の各部を制御する制御ユニット５１３と、読み出したプログラムにしたがって各種演算を実行する演算ユニット５１４と、演算ユニット５１４が実行するプログラムが格納されたアドレスの保持、演算ユニット５１４による演算結果の保持、さらにはメインメモリ（ＲＯＭ５５、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７）との間でデータのやりとりを行う際のアドレスの保持を行うための各種レジスタを備えたレジスタ群５１５と、演算ユニット５１４による演算結果を一時的に保持するキャッシュメモリ５１６と、ＣＰＵ５１が要求するメモリアクセスを処理するメモリ管理ユニット５１７とを備えている。
【００２２】
ここで、レジスタ群５１５は、演算ユニット５１４が次に実行するべき命令を格納するメインメモリ上のアドレスを保持するプログラムカウンタ（ＰＣ）５１５ａと、一時的にデータを退避しておくために用意するスタック領域のアドレスを保持するスタックポインタ（ＳＰ）５１５ｂと、ＣＰＵ５１の状態や演算の状態などを保持するステータスレジスタ（ＳＲ）５１５ｃと、演算やデータ転送の一次記憶などに使用されるアキュムレータ、メインメモリ上のデータにアクセスするためのアドレスを保持するアドレスレジスタ、さらにはＣＰＵ５１の動作設定の情報を保持するコントロールレジスタ等として機能する汎用レジスタ５１５ｄとを含んでいる。
【００２３】
そして、レジスタ群５１５およびキャッシュメモリ５１６は、ともに、電源を供給しないと、記憶しているデータを保持することができない揮発性メモリによって構成されている。なお、この例では、レジスタ群５１５およびキャッシュメモリ５１６として、揮発性ＲＡＭ５７で用いられるＤＲＡＭよりも高速にデータの読み書きが可能なＳＲＡＭが用いられている。
【００２４】
図４は、上述したメインメモリ（ＲＯＭ５５、不揮発性ＲＡＭ５６および揮発性ＲＡＭ５７）によるメモリマップの構成の一例を示す図である。
この例では、ＲＯＭ５５にリセットベクタ領域Ａ０１および圧縮プログラム領域Ａ０２が配置され、不揮発性ＲＡＭ５６にプログラム／変数領域Ａ１１および起動フラグ領域Ａ１２が配置され、揮発性ＲＡＭ５７にワーク領域Ａ２１およびバッファ領域Ａ２２が配置されている。
【００２５】
これらのうち、ＲＯＭ５５に配置されるリセットベクタ領域Ａ０１は、画像形成装置１を起動するにあたり、制御部５０においてＣＰＵ５１が実行するプログラムである、イニシャル・プログラム・ローダ（Initial Program Loader：ＩＰＬ）を格納している。また、ＲＯＭ５５に配置される圧縮プログラム領域Ａ０２は、本実施の形態の画像形成装置１に実装され得る各構成に対応したプログラムおよびこのプログラムで用いられる変数（以下では、これらを『プログラム／変数』と称する）を、構成毎にまとめて圧縮した状態で格納している。例えば図４に示す例では、圧縮プログラム領域Ａ０２に、構成Ａを動作させるためのプログラム／変数を圧縮した圧縮プログラム（構成Ａ用圧縮プログラム）、構成Ｂを動作させるためのプログラム／変数を圧縮した圧縮プログラム（構成Ｂ用圧縮プログラム）、構成Ｃを動作させるためのプログラム／変数を圧縮した圧縮プログラム（構成Ｃ用圧縮プログラム）、構成Ｄを動作させるためのプログラム／変数を圧縮した圧縮プログラム（構成Ｄ用圧縮プログラム）、…、を格納している。なお、ここでいう構成Ａ〜構成Ｄは、上述した画像読取部１０、画像形成部２０、ＵＩ３０、送受信部４０、後処理部７０、そしてカードリーダ８０等のそれぞれに対応するものであり、画像形成装置１の本体に対し着脱可能であって、画像形成装置１に装着された場合には、単独であるいは他の構成部とともに、予め決められた機能を発揮するものである。
【００２６】
このように、本実施の形態では、実際に使用する際の画像形成装置１の構成（図１に示す画像形成装置１は後処理部７０を備えていない）とは関係なく、この画像形成装置１に実装され得る各構成に対応した複数の圧縮プログラムを、ＲＯＭ５５に配置された圧縮プログラム領域Ａ０２に、予め格納させている。これにより、画像形成装置１の装置構成の変更に伴って、ＲＯＭ５５を交換したり、あるいは、ＲＯＭ５５に格納されるプログラムの更新を行ったりしなくてもよいようにしている。
【００２７】
次に、不揮発性ＲＡＭ５６に配置されるプログラム／変数領域Ａ１１は、上述した圧縮プログラム領域Ａ０２から読み出した圧縮プログラムを、ＣＰＵ５１が伸張することによって得たプログラム／変数を格納する。また、不揮発性ＲＡＭ５６に配置される起動フラグ領域Ａ１２は、画像形成装置１が過去に起動されたことがあるか否かを示すフラグを格納する。ここで、起動フラグ領域Ａ１２には、画像形成装置１が過去に起動されている場合には「オン（１）」が格納され、画像形成装置１が過去に起動されていない場合には「オフ（０）」が格納される。なお、本実施の形態では、起動フラグ領域Ａ１２は、不揮発性ＲＡＭ５６に配置されるものとして説明するが、ＲＯＭ５５に配置されるものでもよい。また、起動フラグ領域Ａ１２は、エラーが発生した場合、または、ＵＩ３０や特殊ブートによるユーザの指示があった場合に、クリアされるような構成としてもよい。
【００２８】
そして、揮発性ＲＡＭ５７に配置されるワーク領域Ａ２１は、ＣＰＵ５１によるプログラムの実行に伴って一時的に発生するデータを格納する。また、揮発性ＲＡＭ５７に配置されるバッファ領域Ａ２２は、ＣＰＵ５１によるデータ処理に伴って、画像形成装置の各構成要素に対して出力される指示（ＰＣＩバス５４を介して各ＩＦに出力されるデータ）に関するデータを格納する。
【００２９】
図５は、図１に示す画像形成装置１の起動処理を説明するためのフローチャートである。なお、この起動処理は、例えばＵＩ３０を介して画像形成装置１の電源が投入されることに伴ってＣＰＵ５１にリセット指示が入力されたとき、また、画像形成装置１の電源が投入された後に何らかの理由によりＣＰＵ５１にリセット指示が入力されたとき、などに実行される。
【００３０】
制御部５０に設けられたＣＰＵ５１がリセット指示を受け付けると（ステップ１）、ＣＰＵ５１は、自身のリセット（ＣＰＵリセット）を実行する（ステップ２）。このとき、ＣＰＵリセットに伴って、ＣＰＵ５１に設けられたレジスタ群５１５およびキャッシュメモリ５１６（ともに揮発性メモリで構成される）の記憶内容もクリアされる。また、ＣＰＵリセットに伴って、制御部５０に設けられた揮発性ＲＡＭ５７の記憶内容もクリアされる。一方、ＣＰＵリセットが実行されても、制御部５０に設けられたＲＯＭ５５および不揮発性ＲＡＭ５６の記憶内容はクリアされず、ＣＰＵリセット前の記憶内容がそのまま保持される。
【００３１】
続いて、ＣＰＵ５１は、バスブリッジ５２およびメモリバス５３を介して、ＲＯＭ５５のリセットベクタ領域Ａ０１に格納されるイニシャル・プログラム・ローダ（ＩＰＬ）を読み出すとともに、読み出したＩＰＬを実行し（ステップ３）、画像形成装置１に実装された各構成が使用可能となるように動作準備を行う。そして、画像形成装置１の動作準備が完了する（ステップ４）ことで、一連の起動処理を終了する。
【００３２】
続いて、上述したステップ３におけるＩＰＬの実行について、より詳細に説明する。
ＩＰＬの実行に伴い、ＣＰＵ５１は、ＲＯＭ５５から圧縮プログラムを読み出し、これを展開して得られたプログラム／変数を不揮発性ＲＡＭ５６に格納して実行することにより、画像形成装置１を起動する。
しかしながら、２回目以降の起動時においても、ＲＯＭ５５から圧縮プログラムを読み出し、これを展開して得られたプログラム／変数を不揮発性ＲＡＭ５６に格納する処理を行ったのでは、画像形成装置１の起動時間が長くなってしまう。
【００３３】
そこで、本実施の形態では、初回の起動時にのみ、ＲＯＭ５５から圧縮プログラムを読み出して展開（伸張）し、２回目以降の起動時には、ＲＯＭ５５から圧縮プログラムを読み出して展開（伸張）する処理の少なくとも一部を省略することで、画像形成装置１の起動時間を短縮する。なお、本明細書では、画像形成装置１の工場出荷後の最初の起動だけでなく、不揮発性ＲＡＭ５６にプログラム／変数が記憶されていない初期状態での画像形成装置１の起動も「初回の起動」と称し、それ以降再び初期状態になるまでの起動を「２回目以降の起動」と称するものとする。
具体的には、画像形成装置１の起動時間を短縮する起動方法として３つの方法を考えているので、以下、これらの方法を順に、第１、第２、第３の実施例として詳細に説明する。
【００３４】
（第１の実施例）
図６は、第１の実施例における画像形成装置１の起動方法について模式的に示す図である。
初回の起動時には、不揮発性ＲＡＭ５６にはプログラム／変数が何も記憶されていないため、矢印Ａで示すように、ＲＯＭ５５から圧縮プログラムを読み出して伸張し、不揮発性ＲＡＭ５６に格納する必要がある。
しかしながら、２回目以降の起動時には、不揮発性ＲＡＭ５６にはプログラム／変数が記憶されているため、ＲＯＭ５５から再度圧縮プログラムを読み出して伸張する必要がない。従って、２回目以降の起動時に、ＲＯＭ５５から圧縮プログラムを読み出して伸張する処理を省略することで、画像形成装置１の起動を高速化できる。
【００３５】
なお、本実施の形態では、圧縮プログラムを伸張することで不揮発性ＲＡＭ５６に格納されるプログラム／変数として、図示するように、ＴＥＸＴ、ＲＯＤＡＴＡ（Read-Only DATA）、ＤＡＴＡ、ＢＳＳ（Block Started by Symbol）を考える。このうち、ＴＥＸＴは、圧縮プログラムを伸張することによって得られたプログラムのコードである。また、ＲＯＤＡＴＡは、圧縮プログラムを伸張することによって得られた変数のうち、値が変わらない変数の値（定数）である。さらに、ＤＡＴＡは、圧縮プログラムを伸張することによって得られた変数のうち、値が変わりかつ初期値を持つ変数の値である。さらにまた、ＢＳＳは、圧縮プログラムを伸張することによって得られた変数のうち、値が変わりかつ初期値を持たない変数の値である。
【００３６】
続いて、第１の実施例におけるＩＰＬの実行について、さらに詳しく説明する。
図７は、このときのＩＰＬの実行に伴う処理の手順を説明するためのフローチャートである。
ＩＰＬの実行に伴い、ＣＰＵ５１は、不揮発性ＲＡＭ５６の起動フラグ領域Ａ１２から、起動フラグを読み出して取得する（ステップ１１）。そして、ＣＰＵ５１は、起動フラグがオフ（０）であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断する（ステップ１２）。
【００３７】
ステップ１２において肯定の判断（Ｙｅｓ）を行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、ＣＰＵ５１は、続いて、ＲＯＭ５５の圧縮プログラム領域Ａ０２から、全ての装置構成の中に含まれる１つの構成に対応する圧縮プログラムを読み出し（ステップ１３）、ステップ１３で読み出した圧縮プログラムを展開し（ステップ１４）、ステップ１４で圧縮プログラムを展開して得られたプログラム／変数（ＴＥＸＴ、ＲＯＤＡＴＡ、ＤＡＴＡ、ＢＳＳ）を、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１に格納する（ステップ１５）。その後、全構成に対応するプログラム／変数の、プログラム／変数領域Ａ１１への格納が完了したか否かを判断する（ステップ１６）。ステップ１６において否定の判断（Ｎｏ）を行った場合は、ステップ１３に戻り、残りの構成に対応する圧縮プログラムの読み出し、読み出した圧縮プログラムの展開、そして展開によって得られたプログラム／変数の格納を続けて行う。
一方、ステップ１６において肯定の判断（Ｙｅｓ）を行った場合、処理は、後述するステップ２１に進む。
【００３８】
また、上述したステップ１２において否定の判断（Ｎｏ）を行った場合、すなわち、今回の起動処理が２回目以降の起動処理であった場合も、処理は、後述するステップ２１に進む。
【００３９】
すると、ＣＰＵ５１は、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１に格納された各プログラムを、対応する変数を用いて実行し（ステップ２１）、システムフェイルを検出したかどうかを判断する（ステップ２２）。ここで、「システムフェイル」とは、例えば、ステップ２１で各プログラムを実行したときに正常に動作しないことであるが、ステップ２１で各プログラムを実行する前に各プログラム／変数に対してエラーチェックを行うことにより発見されるエラーであってもよい。
【００４０】
ステップ２２において否定の判断（Ｎｏ）を行った場合、すなわち、システムフェイルを検出しなかった場合、ＣＰＵ５１は、不揮発性ＲＡＭ５６の起動フラグ領域Ａ１２に、起動フラグとして「オン（１）」を格納する（ステップ２３）。
【００４１】
一方、ステップ２２において肯定の判断（Ｙｅｓ）を行った場合、すなわち、システムフェイルを検出した場合、ＣＰＵ５１は、そこで処理を停止して、フェイル処理を行う（ステップ２４）。ここで、フェイル処理としては、例えば、ＵＩ３０等を用いてユーザにシステムフェイルが発生した旨を通知する処理が考えられる。システムフェイルが発生した場合は、圧縮プログラムを再度展開する必要があるので、処理は、ステップ１３に戻る。
【００４２】
（第２の実施例）
図８は、第２の実施例における画像形成装置１の起動方法について模式的に示す図である。
上述した第１の実施例では、初回の起動時に不揮発性ＲＡＭ５６に格納されたデータを、２回目以降の起動時に初期化しなかったが、２回目以降の起動時に初期化した方がよいデータもある。不揮発性ＲＡＭ５６に格納されたプログラム／変数のうち、ＴＥＸＴおよびＲＯＤＡＴＡは値が変化しないので初期化する必要はないが、ＤＡＴＡおよびＢＳＳは値が変化するので初期化した方がよい。
【００４３】
そこで、この第２の実施例では、ＴＥＸＴおよびＲＯＤＡＴＡを圧縮した第１圧縮部分と、ＤＡＴＡおよびＢＳＳを圧縮した第２圧縮部分とを、圧縮プログラムを構成する部分としてＲＯＭ５５に格納する。そして、初回の起動時には、矢印Ａで示すように、ＲＯＭ５５から第１圧縮部分および第２圧縮部分を読み出して伸張し、ＴＥＸＴ、ＲＯＤＡＴＡ、ＤＡＴＡ、ＢＳＳを不揮発性ＲＡＭ５６に格納し、２回目以降の起動時には、矢印Ｂに示すように、ＲＯＭ５５から第２圧縮部分のみを読み出して伸張し、ＤＡＴＡおよびＢＳＳを不揮発性ＲＡＭ５６に再度格納するようにした。すなわち、２回目以降の起動時に、第１圧縮部分を伸張してＴＥＸＴおよびＲＯＤＡＴＡを格納する処理を行わないようにすることで、画像形成装置１の起動時間を短縮している。
なお、このような起動方法を採用するかどうかは、ユーザによって予め選択できるようにするとよい。
【００４４】
また、この第２の実施例では、ＴＥＸＴおよびＲＯＤＡＴＡを圧縮した第１圧縮部分と、ＤＡＴＡおよびＢＳＳを圧縮した第２圧縮部分とをＲＯＭ５５に記憶するものとして説明するが、第１の実施例のように、ＴＥＸＴ、ＲＯＤＡＴＡ、ＤＡＴＡ、ＢＳＳを圧縮した圧縮プログラムをＲＯＭ５５に記憶するものとしてもよい。ただし、この場合、初回の起動時には、圧縮プログラムを伸張して得られたＴＥＸＴ、ＲＯＤＡＴＡ、ＤＡＴＡ、ＢＳＳを不揮発性ＲＡＭ５６に格納し、２回目以降の起動時には、圧縮プログラムを伸張して得られたＴＥＸＴ、ＲＯＤＡＴＡ、ＤＡＴＡ、ＢＳＳのうち、ＤＡＴＡおよびＢＳＳを不揮発性ＲＡＭ５６に格納することになる。
【００４５】
続いて、第２の実施例におけるＩＰＬの実行について、さらに詳しく説明する。
図９は、このときのＩＰＬの実行に伴う処理の手順を説明するためのフローチャートである。
ＩＰＬの実行に伴い、ＣＰＵ５１は、不揮発性ＲＡＭ５６の起動フラグ領域Ａ１２から、起動フラグを読み出して取得する（ステップ３１）。そして、ＣＰＵ５１は、起動フラグがオフ（０）であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断する（ステップ３２）。
【００４６】
ステップ３２において肯定の判断（Ｙｅｓ）を行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、ＣＰＵ５１は、続いて、ＲＯＭ５５の圧縮プログラム領域Ａ０２から、全ての装置構成の中に含まれる１つの構成に対応する第１圧縮部分および第２圧縮部分を読み出し（ステップ３３）、ステップ３３で読み出した第１圧縮部分および第２圧縮部分を展開する（ステップ３４）。そして、ステップ３４で第１圧縮部分を展開して得られたプログラム／変数（ＴＥＸＴ、ＲＯＤＡＴＡ）およびステップ３４で第２圧縮部分を展開して得られた変数（ＤＡＴＡ、ＢＳＳ）を、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１に格納する（ステップ３５）。その後、全構成に対応するプログラム／変数の、プログラム／変数領域Ａ１１への格納が完了したか否かを判断する（ステップ３６）。ステップ３６において否定の判断（Ｎｏ）を行った場合は、ステップ３３に戻り、残りの構成に対応する第１圧縮部分および第２圧縮部分の読み出し、読み出した第１圧縮部分および第２圧縮部分の展開、そして展開によって得られたプログラム／変数の格納を続けて行う。
一方、ステップ３６において肯定の判断（Ｙｅｓ）を行った場合、処理は、後述するステップ４１に進む。
【００４７】
また、上述したステップ３２において否定の判断（Ｎｏ）を行った場合、すなわち、今回の起動処理が２回目以降の起動処理であった場合、ＣＰＵ５１は、ＲＯＭ５５の圧縮プログラム領域Ａ０２から、全ての装置構成の中に含まれる１つの構成に対応する第２圧縮部分を読み出し（ステップ３７）、ステップ３７で読み出した第２圧縮部分を展開する（ステップ３８）。そして、ステップ３８で第２圧縮部分を展開して得られた変数（ＤＡＴＡ、ＢＳＳ）を、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１に格納する（ステップ３９）。その後、全構成に対応する変数の、プログラム／変数領域Ａ１１への格納が完了したか否かを判断する（ステップ４０）。ステップ４０において否定の判断（Ｎｏ）を行った場合は、ステップ３７に戻り、残りの構成に対応する第２圧縮部分の読み出し、読み出した第２圧縮部分の展開、そして展開によって得られた変数の格納を続けて行う。
一方、ステップ４０において肯定の判断（Ｙｅｓ）を行った場合、処理は、後述するステップ４１に進む。
【００４８】
すると、ＣＰＵ５１は、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１に格納された各プログラムを、対応する変数を用いて実行し（ステップ４１）、システムフェイルを検出したかどうかを判断する（ステップ４２）。ここで、「システムフェイル」とは、例えば、ステップ４１で各プログラムを実行したときに正常に動作しないことであるが、ステップ４１で各プログラムを実行する前に各プログラム／変数に対してエラーチェックを行うことにより発見されるエラーであってもよい。
【００４９】
ステップ４２において否定の判断（Ｎｏ）を行った場合、すなわち、システムフェイルを検出しなかった場合、ＣＰＵ５１は、不揮発性ＲＡＭ５６の起動フラグ領域Ａ１２に、起動フラグとして「オン（１）」を格納する（ステップ４３）。
【００５０】
一方、ステップ４２において肯定の判断（Ｙｅｓ）を行った場合、すなわち、システムフェイルを検出した場合、ＣＰＵ５１は、そこで処理を停止して、フェイル処理を行う（ステップ４４）。ここで、フェイル処理としては、例えば、ＵＩ３０等を用いてユーザにシステムフェイルが発生した旨を通知する処理が考えられる。システムフェイルが発生した場合、少なくとも変数（ＤＡＴＡ、ＢＳＳ）の初期化は再度行う必要があるので、処理は、初回起動時であればステップ３３に、２回目以降の起動時であればステップ３３またはステップ３７に戻る。
【００５１】
（第３の実施例）
図１０は、第３の実施例における画像形成装置１の起動方法について模式的に示す図である。
上述した第２の実施例では、２回目以降の起動時に、ＲＯＭ５５から第２圧縮部分を読み出して伸張し、ＤＡＴＡおよびＢＳＳを不揮発性ＲＡＭ５６に格納するようにしたが、この方法だと、ＲＯＭ５５から第２圧縮部分を読み出して伸張しなければならないので、依然として起動に時間がかかってしまう。
【００５２】
そこで、この第３の実施例では、初回の起動時に、矢印Ａで示すように、ＲＯＭ５５から第１圧縮部分および第２圧縮部分を読み出して伸張し、ＴＥＸＴ、ＲＯＤＡＴＡ、ＤＡＴＡ、ＢＳＳを不揮発性ＲＡＭ５６に格納するのに加え、矢印Ａ’で示すように、ＤＡＴＡおよびＢＳＳは不揮発性ＲＡＭ５６の別の領域にもコピーしておく。そして、２回目以降の起動時に、矢印Ｂで示すように、この別の領域からＤＡＴＡおよびＢＳＳを読み出して、本来格納すべき領域に格納する。これにより、ＲＯＭ５５から第２圧縮部分を読み出して伸張し、ＤＡＴＡおよびＢＳＳを不揮発性ＲＡＭ５６に格納するよりも高速に、ＤＡＴＡおよびＢＳＳを不揮発性ＲＡＭ５６に格納することが可能となり、画像形成装置１の起動時間がさらに短縮される。
なお、このような起動方法を採用するかどうかは、ユーザによって予め選択できるようにするとよい。
【００５３】
また、この第３の実施例では、ＴＥＸＴおよびＲＯＤＡＴＡを圧縮した第１圧縮部分と、ＤＡＴＡおよびＢＳＳを圧縮した第２圧縮部分とをＲＯＭ５５に記憶するものとして説明するが、第１の実施例のように、ＴＥＸＴ、ＲＯＤＡＴＡ、ＤＡＴＡ、ＢＳＳを圧縮した圧縮プログラムをＲＯＭ５５に記憶するものとしてもよい。
【００５４】
続いて、第３の実施例におけるＩＰＬの実行について、さらに詳しく説明する。
図１１は、このときのＩＰＬの実行に伴う処理の手順を説明するためのフローチャートである。
ＩＰＬの実行に伴い、ＣＰＵ５１は、不揮発性ＲＡＭ５６の起動フラグ領域Ａ１２から、起動フラグを読み出して取得する（ステップ５１）。そして、ＣＰＵ５１は、起動フラグがオフ（０）であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断する（ステップ５２）。
【００５５】
ステップ５２において肯定の判断（Ｙｅｓ）を行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、ＣＰＵ５１は、続いて、ＲＯＭ５５の圧縮プログラム領域Ａ０２から、全ての装置構成の中に含まれる１つの構成に対応する第１圧縮部分および第２圧縮部分を読み出し（ステップ５３）、ステップ５３で読み出した第１圧縮部分および第２圧縮部分を展開する（ステップ５４）。そして、ステップ５４で第１圧縮部分を展開して得られたプログラム／変数（ＴＥＸＴ、ＲＯＤＡＴＡ）およびステップ５４で第２圧縮部分を展開して得られた変数（ＤＡＴＡ、ＢＳＳ）を、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１における本来格納すべき領域に格納すると共に、ステップ５４で第２圧縮部分を展開して得られた変数（ＤＡＴＡ、ＢＳＳ）を、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１におけるこれとは別の領域に格納する（ステップ５５）。その後、全構成に対応するプログラム／変数の、プログラム／変数領域Ａ１１への格納が完了したか否かを判断する（ステップ５６）。ステップ５６において否定の判断（Ｎｏ）を行った場合は、ステップ５３に戻り、残りの構成に対応する第１圧縮部分および第２圧縮部分の読み出し、読み出した第１圧縮部分および第２圧縮部分の展開、そして展開によって得られたプログラム／変数の格納を続けて行う。
一方、ステップ５６において肯定の判断（Ｙｅｓ）を行った場合、処理は、後述するステップ６１に進む。
【００５６】
また、上述したステップ５２において否定の判断（Ｎｏ）を行った場合、すなわち、今回の起動処理が２回目以降の起動処理であった場合、ＣＰＵ５１は、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１における本来格納すべき領域とは別の領域から、全ての装置構成の中に含まれる１つの構成に対応する変数（ＤＡＴＡ、ＢＳＳ）を読み出し（ステップ５７）、ステップ５７で読み出した変数（ＤＡＴＡ、ＢＳＳ）を、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１における本来格納すべき領域に格納する（ステップ５９）。その後、全構成に対応する変数の、プログラム／変数領域Ａ１１への格納が完了したか否かを判断する（ステップ６０）。ステップ６０において否定の判断（Ｎｏ）を行った場合は、ステップ５７に戻り、残りの構成に対応する変数の読み出し、読み出した変数の格納を続けて行う。
一方、ステップ６０において肯定の判断（Ｙｅｓ）を行った場合、処理は、後述するステップ６１に進む。
【００５７】
すると、ＣＰＵ５１は、不揮発性ＲＡＭ５６のプログラム／変数領域Ａ１１に格納された各プログラムを、対応する変数を用いて実行し（ステップ６１）、システムフェイルを検出したかどうかを判断する（ステップ６２）。ここで、「システムフェイル」とは、例えば、ステップ６１で各プログラムを実行したときに正常に動作しないことであるが、ステップ６１で各プログラムを実行する前に各プログラム／変数に対してエラーチェックを行うことにより発見されるエラーであってもよい。
【００５８】
ステップ６２において否定の判断（Ｎｏ）を行った場合、すなわち、システムフェイルを検出しなかった場合、ＣＰＵ５１は、不揮発性ＲＡＭ５６の起動フラグ領域Ａ１２に、起動フラグとして「オン（１）」を格納する（ステップ６３）。
【００５９】
一方、ステップ６２において肯定の判断（Ｙｅｓ）を行った場合、すなわち、システムフェイルを検出した場合、ＣＰＵ５１は、そこで処理を停止して、フェイル処理を行う（ステップ６４）。ここで、フェイル処理としては、例えば、ＵＩ３０等を用いてユーザにシステムフェイルが発生した旨を通知する処理が考えられる。システムフェイルが発生した場合、少なくとも変数（ＤＡＴＡ、ＢＳＳ）の初期化は再度行う必要があるので、処理は、初回起動時であればステップ５３に、２回目以降の起動時であればステップ５３またはステップ５７に戻る。
【００６０】
なお、本実施の形態では、各圧縮プログラムを格納する圧縮プログラム領域Ａ０２を、ＲＯＭ５５に配置していたが、これに限られるものではない。すなわち、圧縮プログラム領域Ａ０２を、例えば画像形成装置１にネットワーク２を介して接続されるサーバ装置５（図１参照）や、ＵＳＢＩＦ６５に接続されたカードリーダ８０に配置されるメモリカード８１に配置するようにしてもよい。なお、このような場合には、ＩＰＬの実行時において、各圧縮プログラムの読み取り対象を、サーバ装置５あるいはカードリーダ８０に装着されたメモリカードに設定すればよい。
【００６１】
また、本実施の形態では、ＲＯＭ５５には、画像形成装置１を起動するためのプログラム／変数を圧縮した状態で記憶していたが、画像形成装置１を起動するためのプログラム／変数を圧縮しない状態で記憶してもよい。例えば、プログラムを実行するためのイメージを記憶してもよい。この場合、プログラム／変数は、ＲＯＭ５５から読み出され、伸張されることなく、不揮発性ＲＡＭ５６に格納される。
【００６２】
さらに、本実施の形態では、不揮発性ＲＡＭ５６にプログラム／変数領域Ａ１１および起動フラグ領域Ａ１２を配置するとともに、揮発性ＲＡＭ５７にワーク領域Ａ２１およびバッファ領域Ａ２２を配置するようにしていたが、これに限られるものではなく、例えば不揮発性ＲＡＭ５６のみを設け、この不揮発性ＲＡＭ５６にプログラム／変数領域Ａ１１、起動フラグ領域Ａ１２、ワーク領域Ａ２１およびバッファ領域Ａ２２を配置するようにしてもかまわない。
【００６３】
さらにまた、本実施の形態では、制御部５０を画像形成装置１に組み込んだ場合を例として説明を行ったが、これに限られるものではなく、機器を起動するためのプログラムを実行することにより起動されるいかなる機器に適用しても差し支えない。
【００６４】
なお、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することも可能である。
【符号の説明】
【００６５】
１…画像形成装置、１０…画像読取部、２０…画像形成部、３０…ＵＩ、４０…送受信部、５０…制御部、５１…ＣＰＵ、５５…ＲＯＭ、５６…不揮発性ＲＡＭ、５７…揮発性ＲＡＭ
【図１】
0005754264.tif 000002
【図２】
0005754264.tif 000003
【図３】
0005754264.tif 000004
【図４】
0005754264.tif 000005
【図５】
0005754264.tif 000006
【図６】
0005754264.tif 000007
【図７】
0005754264.tif 000008
【図８】
0005754264.tif 000009
【図９】
0005754264.tif 000010
【図１０】
0005754264.tif 000011
【図１１】
0005754264.tif 000012