(57)【要約】【課題】主記憶装置として不揮発性メモリおよび揮発性メモリを併用する場合に、起動処理に要する時間を短くする。【解決手段】１回目の起動処理において、ＣＰＵ５１は、ＲＯＭ５５から読み出した複数の圧縮プログラムを順次展開してＭＲＡＭ５６およびＤＲＡＭ５７に記憶させる。各圧縮プログラムを展開して得られる外部データには、展開および待機に要する時間の長さに応じて優先度が設定される。そして、ＤＲＡＭ５７に記憶される外部データの優先度がＭＲＡＭ５６に記憶される外部データの優先度よりも高い場合には、起動処理が完了した後に実行される終了処理において、ＭＲＡＭ５６に記憶される優先度の低い外部データを削除するとともに、ＤＲＡＭ５７に記憶される優先度の高い外部データをＭＲＡＭ５６に記憶させた後に、ＭＲＡＭ５６およびＤＲＡＭ５７に対する給電を停止する。【選択図】図２
2014203361.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータを転送する転送手段と、
読み書き可能であって電源を供給しなくても情報を保持することが可能な不揮発性メモリと、読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリとを有し、前記転送手段によって転送されてくる複数の前記データを記憶する主記憶手段と、
前記主記憶手段に記憶された複数の前記データを読み出して実行する実行手段と、
複数の前記データが前記転送手段によって転送され且つ前記主記憶手段に記憶されるために必要な時間が長い順に、複数の当該データのそれぞれに優先度を設定する設定手段と、
前記主記憶手段への給電を停止する前に行われる停止前処理において、当該主記憶手段に記憶される複数の前記データのうち、前記揮発性メモリに記憶される第１のデータに設定される優先度が、前記不揮発性メモリに記憶される第２のデータに設定される優先度よりも高い場合に、当該不揮発性メモリから当該第２のデータを削除して当該不揮発性メモリに当該第１のデータを記憶させることで、当該不揮発性メモリの記憶内容を再構築する再構築手段と
を含む情報処理装置。
【請求項２】
前記転送手段は、前記主記憶手段への給電を開始することに伴って行われる起動処理において、当該起動処理に必要となる順番にて複数の前記データを転送し、
前記主記憶手段は、前記転送手段から転送されてくる複数の前記データを、転送順に前記不揮発性メモリに記憶し、当該不揮発性メモリに記憶できなくなった後は、転送順に前記揮発性メモリに記憶することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記不揮発性メモリには、当該不揮発性メモリに記憶される１または複数の前記データを管理するための管理情報を記憶する管理情報記憶領域が設けられ、
前記転送手段は、前記管理情報に基づき、前記不揮発性メモリに既に記憶されているデータについては転送を行わないことを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
前記不揮発性メモリの記憶容量が、前記揮発性メモリの記憶容量よりも少ないことを特徴とする請求項１乃至３のいずれか１項記載の情報処理装置。
【請求項５】
記録材に画像を形成する画像形成部と、
前記画像形成部の動作を制御する制御部とを備え、
前記制御部は、
複数のデータを転送する転送手段と、
読み書き可能であって電源を供給しなくても情報を保持することが可能な不揮発性メモリと、読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリとを有し、前記転送手段によって転送されてくる複数の前記データを記憶する主記憶手段と、
前記主記憶手段に記憶された複数の前記データを読み出して実行する実行手段と、
複数の前記データが前記転送手段によって転送され且つ前記主記憶手段に記憶されるために必要な時間が長い順に、複数の当該データのそれぞれに優先度を設定する設定手段と、
前記主記憶手段への給電を停止する前に行われる停止前処理において、当該主記憶手段に記憶される複数の前記データのうち、前記揮発性メモリに記憶される第１のデータに設定される優先度が、前記不揮発性メモリに記憶される第２のデータに設定される優先度よりも高い場合に、当該不揮発性メモリから当該第２のデータを削除して当該不揮発性メモリに当該第１のデータを記憶させることで、当該不揮発性メモリの記憶内容を再構築する再構築手段と
を含む画像形成装置。
【請求項６】
コンピュータに、
複数のデータを転送する機能と、
読み書き可能であって電源を供給しなくても情報を保持することが可能な不揮発性メモリと、読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリとを有し且つ転送されてくる複数の前記データを記憶する主記憶手段に記憶された複数の当該データを読み出して実行する実行手段と、
複数の前記データが転送され且つ前記主記憶手段に記憶されるために必要な時間が長い順に、複数の当該データのそれぞれに優先度を設定する機能と、
前記主記憶手段への給電を停止する前に行われる停止前処理において、当該主記憶手段に記憶される複数の前記データのうち、前記揮発性メモリに記憶される第１のデータに設定される優先度が、前記不揮発性メモリに記憶される第２のデータに設定される優先度よりも高い場合に、当該不揮発性メモリから当該第２のデータを削除して当該不揮発性メモリに当該第１のデータを記憶させることで、当該不揮発性メモリの記憶内容を再構築する機能と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像形成装置およびプログラムに関する。
【背景技術】
【０００２】
公報記載の従来技術として、複数の機能をそれぞれに対応するプログラムによって実現する機器において、優先的に機能を実現するためのプログラムを高速なフラッシュメモリに格納するとともに、残りのプログラムをハードディスクに格納しておき、機器の起動後にまず動作が高速なフラッシュメモリから優先機能に相当するプログラムをロードして利用可能とし、引き続き残りの機能に相当するプログラムを順次ハードディスクからロードして利用可能とすることが記載されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２８７３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、主記憶装置として不揮発性メモリおよび揮発性メモリを併用する場合に、起動処理に要する時間を短くすることを目的とする。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、複数のデータを転送する転送手段と、読み書き可能であって電源を供給しなくても情報を保持することが可能な不揮発性メモリと、読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリとを有し、前記転送手段によって転送されてくる複数の前記データを記憶する主記憶手段と、前記主記憶手段に記憶された複数の前記データを読み出して実行する実行手段と、複数の前記データが前記転送手段によって転送され且つ前記主記憶手段に記憶されるために必要な時間が長い順に、複数の当該データのそれぞれに優先度を設定する設定手段と、前記主記憶手段への給電を停止する前に行われる停止前処理において、当該主記憶手段に記憶される複数の前記データのうち、前記揮発性メモリに記憶される第１のデータに設定される優先度が、前記不揮発性メモリに記憶される第２のデータに設定される優先度よりも高い場合に、当該不揮発性メモリから当該第２のデータを削除して当該不揮発性メモリに当該第１のデータを記憶させることで、当該不揮発性メモリの記憶内容を再構築する再構築手段とを含む情報処理装置である。
【０００６】
請求項２記載の発明は、前記転送手段は、前記主記憶手段への給電を開始することに伴って行われる起動処理において、当該起動処理に必要となる順番にて複数の前記データを転送し、前記主記憶手段は、前記転送手段から転送されてくる複数の前記データを、転送順に前記不揮発性メモリに記憶し、当該不揮発性メモリに記憶できなくなった後は、転送順に前記揮発性メモリに記憶することを特徴とする請求項１記載の情報処理装置である。
請求項３記載の発明は、前記不揮発性メモリには、当該不揮発性メモリに記憶される１または複数の前記データを管理するための管理情報を記憶する管理情報記憶領域が設けられ、前記転送手段は、前記管理情報に基づき、前記不揮発性メモリに既に記憶されているデータについては転送を行わないことを特徴とする請求項１または２記載の情報処理装置である。
請求項４記載の発明は、前記不揮発性メモリの記憶容量が、前記揮発性メモリの記憶容量よりも少ないことを特徴とする請求項１乃至３のいずれか１項記載の情報処理装置である。
【０００７】
請求項５記載の発明は、記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、複数のデータを転送する転送手段と、読み書き可能であって電源を供給しなくても情報を保持することが可能な不揮発性メモリと、読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリとを有し、前記転送手段によって転送されてくる複数の前記データを記憶する主記憶手段と、前記主記憶手段に記憶された複数の前記データを読み出して実行する実行手段と、複数の前記データが前記転送手段によって転送され且つ前記主記憶手段に記憶されるために必要な時間が長い順に、複数の当該データのそれぞれに優先度を設定する設定手段と、前記主記憶手段への給電を停止する前に行われる停止前処理において、当該主記憶手段に記憶される複数の前記データのうち、前記揮発性メモリに記憶される第１のデータに設定される優先度が、前記不揮発性メモリに記憶される第２のデータに設定される優先度よりも高い場合に、当該不揮発性メモリから当該第２のデータを削除して当該不揮発性メモリに当該第１のデータを記憶させることで、当該不揮発性メモリの記憶内容を再構築する再構築手段とを含む画像形成装置である。
【０００８】
請求項６記載の発明は、コンピュータに、複数のデータを転送する機能と、読み書き可能であって電源を供給しなくても情報を保持することが可能な不揮発性メモリと、読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリとを有し且つ転送されてくる複数の前記データを記憶する主記憶手段に記憶された複数の当該データを読み出して実行する実行手段と、複数の前記データが転送され且つ前記主記憶手段に記憶されるために必要な時間が長い順に、複数の当該データのそれぞれに優先度を設定する機能と、前記主記憶手段への給電を停止する前に行われる停止前処理において、当該主記憶手段に記憶される複数の前記データのうち、前記揮発性メモリに記憶される第１のデータに設定される優先度が、前記不揮発性メモリに記憶される第２のデータに設定される優先度よりも高い場合に、当該不揮発性メモリから当該第２のデータを削除して当該不揮発性メモリに当該第１のデータを記憶させることで、当該不揮発性メモリの記憶内容を再構築する機能とを実現させるプログラムである。
【発明の効果】
【０００９】
請求項１記載の発明によれば、本構成を有していない場合と比較して、主記憶装置として不揮発性メモリおよび揮発性メモリを併用する場合に、起動処理に要する時間を短くすることができる。
請求項２記載の発明によれば、本構成を有していない場合と比較して、本構成を有していない場合と比較して、複数のデータを転送順に記憶することができる。
請求項３記載の発明によれば、本構成を有していない場合と比較して、データの転送に要する時間を短くすることができる。
請求項４記載の発明によれば、本構成を有していない場合と比較して、主記憶装置に必要な容量をより容易に確保することが可能になる。
請求項５記載の発明によれば、本構成を有していない場合と比較して、主記憶装置として不揮発性メモリおよび揮発性メモリを併用する場合に、起動処理に要する時間を短くすることができる。
請求項６記載の発明によれば、本構成を有していない場合と比較して、主記憶装置として不揮発性メモリおよび揮発性メモリを併用する場合に、起動処理に要する時間を短くすることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態が適用される画像形成システムの構成の一例を示す図である。
【図２】画像形成装置に設けられた制御部の内部構成の一例を示すハードウェアブロック図である。
【図３】メインメモリによるメモリマップの構成の一例を示す図である。
【図４】画像形成装置における起動処理の手順を説明するためのフローチャートである。
【図５】起動処理におけるプログラム展開処理の手順を説明するためのフローチャートである。
【図６】起動処理におけるプログラム初期化処理のうち、ＯＳの初期化処理の手順を説明するためのフローチャートである。
【図７】ＯＳの初期化処理におけるデータ展開処理の手順を説明するためのフローチャートである。
【図８】起動処理におけるプログラム初期化処理のうち、アプリケーションプログラムの初期化処理の手順を説明するためのフローチャートである。
【図９】画像形成装置における終了処理の手順を説明するためのフローチャートである。
【図１０】終了処理における再構築処理の手順を説明するためのフローチャートである。
【図１１】１回目の起動処理における、ＭＲＡＭ、ＤＲＡＭおよびＭＲＡＭ管理領域の状態の遷移の例を説明するための図である。
【図１２】１回目の起動処理における、各プログラムおよび各データの状態の遷移の例を説明するためのタイムチャートである。
【図１３】１回目の終了処理における、ＭＲＡＭ、ＤＲＡＭおよびＭＲＡＭ管理領域の状態の遷移を説明するための図である。
【図１４】２回目の起動処理における、ＭＲＡＭ、ＤＲＡＭおよびＭＲＡＭ管理領域の状態の遷移の例を説明するための図である。
【図１５】２回目の起動処理における、各プログラムおよび各データの状態の遷移の例を説明するためのタイムチャートである。
【図１６】２回目の起動処理（比較例）における、ＭＲＡＭ、ＤＲＡＭおよびＭＲＡＭ管理領域の状態の遷移の例を説明するための図である。
【図１７】２回目の起動処理（比較例）における、各プログラムおよび各データの状態の遷移の例を説明するためのタイムチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態が適用される画像形成システムの構成の一例を示す図である。
この画像形成システムは、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を備えた所謂複合機として動作する画像形成装置１と、画像形成装置１に接続されるネットワーク２と、ネットワーク２に接続される端末装置３と、ネットワーク２に接続されるファクシミリ装置４と、ネットワーク２に接続されるサーバ装置５とを有している。
【００１２】
ここで、ネットワーク２は、インターネット回線や電話回線等によって構成されている。また、端末装置３は、ネットワーク２を介して、画像形成装置１に画像の形成等を指示するものであり、例えばＰＣ（Personal Computer）で構成される。さらに、ファクシミリ装置４は、ネットワーク２を介して、画像形成装置１との間でファクシミリを送受信する。さらにまた、サーバ装置５は、ネットワーク２を介して、画像形成装置１との間でデータ（プログラムを含む）を送受信する。
【００１３】
また、画像形成装置１は、紙等の記録媒体に記録された画像を読み取る画像読取部１０と、紙等の記録媒体（記録材）に画像を形成する画像形成部２０と、ユーザから電源のオン／オフ、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェース（ＵＩ）３０と、ネットワーク２を介して端末装置３、ファクシミリ装置４およびサーバ装置５との間でデータの送受信を行う送受信部４０と、これら画像読取部１０、画像形成部２０、ＵＩ３０および送受信部４０の動作を制御する制御部５０とを備えている。そして、この画像形成装置１では、画像読取部１０によってスキャン機能が実現され、画像形成部２０によってプリント機能が実現され、画像読取部１０および画像形成部２０によってコピー機能が実現され、画像読取部１０、画像形成部２０および送受信部４０によってファクシミリ機能が実現される。なお、送受信部４０は、例えばインターネット回線用のものと電話回線用のものとを、別々に設けるようにしてもかまわない。
【００１４】
図２は、図１に示す画像形成装置１に設けられた制御部５０の内部構成の一例を示すハードウェアブロック図である。
情報処理装置の一例としての制御部５０は、種々の演算を実行することによって画像形成装置１の各部を制御するＣＰＵ（Central Processing Unit：中央処理装置）５１と、ＣＰＵ５１に接続され、ＣＰＵ５１との間で各種データのやりとりを行うバスブリッジ５２とを備えている。制御部５０において、バスブリッジ５２には、第１のクロックでデータのやりとりを行うメモリバス５３と、第１のクロックよりも周波数が低い第２のクロックでデータのやりとりを行うＰＣＩ（Peripheral Component Interconnect）バス５４とが接続されている。
【００１５】
また、制御部５０は、ＲＯＭ（Read Only Memory）５５と、ＭＲＡＭ（Magnetoresistive Random Access Memory）５６と、ＤＲＡＭ（Dynamic Random Access Memory）５７とを備えている。そして、これらＲＯＭ５５、ＭＲＡＭ５６およびＤＲＡＭ５７は、それぞれ、メモリバス５３に接続されている。
【００１６】
転送手段、実行手段、設定手段および再構築手段の一例としてのＣＰＵ５１は、ＲＯＭ５５、ＭＲＡＭ５６およびＤＲＡＭ５７に直接アクセスすることが可能となっている。以下の説明では、メモリバス５３に接続されるＲＯＭ５５、ＭＲＡＭ５６およびＤＲＡＭ５７を、まとめて『メインメモリ』と称することがある。また、本実施の形態において、ＭＲＡＭ５６およびＤＲＡＭ５７は、主記憶手段の一例としての機能を有している。
【００１７】
ここで、ＲＯＭ５５は、所謂マスクＲＯＭ、各種ＰＲＯＭ（Programmable ROM：例えばＯＴＰ  ＲＯＭ (One Time Programmable ROM)、ＵＶ−ＥＰＲＯＭ（Ultra-Violet Erasable Programmable ROM）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM））、フラッシュメモリなどで構成されている。なお、この例では、ＲＯＭ５５として、フラッシュメモリが用いられている。
【００１８】
また、ＭＲＡＭ５６は、書き換え可能であって電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリの一例としての機能を有している。なお、本実施の形態の不揮発性メモリに要求される特性は、ＲＯＭ５５（この例ではフラッシュメモリ）よりも高速にデータの読み書きが行えることであり、ＭＲＡＭ５６以外に、ＦｅＲＡＭ（Ferroelectric RAM）、ＰＲＡＭ（Phase change RAM）、あるいはＲｅＲＡＭ（Resistance RAM）などを用いてもよい。
【００１９】
さらに、ＤＲＡＭ５７は、書き換え可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリの一例としての機能を有している。なお、ＤＲＡＭ５７以外に、ＳＲＡＭ（Static Random Access Memory）などを用いてもよい。
【００２０】
そして、本実施の形態では、ＭＲＡＭ５６およびＤＲＡＭ５７が、ともに第１のクロックでデータの読み書きを行う。このため、ＭＲＡＭ５６は、ＤＲＡＭ５７と同等の読み書き性能を有していることになる。また、本実施の形態では、ＭＲＡＭ５６の記憶容量に対し、ＤＲＡＭ５７の記憶容量がより大きくなっている。これは、ＭＲＡＭ５６の単位容量あたりの単価が、ＤＲＡＭ５７の単位容量あたりの単価に比べて高価となっていることによる。
【００２１】
さらにまた、本実施の形態の制御部５０は、制御部５０を構成する各部（ＣＰＵ５１等）が動作するクロックの基準となる基準クロックを生成するクロックジェネレータ５８と、ＣＰＵ５１等の動作に伴って計時を行うタイマ５９とをさらに備えている。
【００２２】
なお、ＣＰＵ５１が実行するプログラムは、予めＲＯＭ５５に記憶させておく形態の他、例えばＣＤ−ＲＯＭ等の記憶媒体に格納してＣＰＵ５１に提供したり、あるいは、サーバ装置５からネットワーク２を介してＣＰＵ５１に提供したりすることも可能である。
【００２３】
また、制御部５０は、ＵＩ３０を制御するためのＵＩインタフェース回路（ＵＩＩＦ）６１と、画像形成部２０を制御するためのプリントインタフェース回路（プリントＩＦ）６２と、例えば画像形成が行われた記録媒体に後処理を施す後処理装置７０など、画像形成装置１に後付けで装着されるオプションユニットを制御するためのオプションインタフェース回路（オプションＩＦ）６３と、送受信部４０を制御するためのネットワークインタフェース回路（ネットワークＩＦ）６４と、ＵＳＢ（Universal Serial Bus）デバイスを制御するためのＵＳＢインタフェース回路（ＵＳＢＩＦ）６５とを備えている。そして、これらＵＩＩＦ６１、プリントＩＦ６２、オプションＩＦ６３、ネットワークＩＦ６４およびＵＳＢＩＦ６５は、それぞれ、ＰＣＩバス５４に接続されている。また、本実施の形態では、ＵＳＢＩＦ６５に対し、画像読取部１０が接続されている。なお、ＵＳＢＩＦ６５には、例えば、装着されたメモリカード８１に対しデータを読み書きするカードリーダ８０が接続されることもある。
【００２４】
図３は、上述したメインメモリ（ＲＯＭ５５、ＭＲＡＭ５６およびＤＲＡＭ５７）によるメモリマップの構成の一例を示す図である。ここで、図３（ａ）はメインメモリにおける複数の記憶領域の配置を示しており、図３（ｂ）はＲＯＭ５５に配置される圧縮プログラム記憶領域Ａ０２（詳細は後述する）の記憶内容を示しており、図３（ｃ）はＭＲＡＭ５６に配置されるＭＲＡＭ管理領域Ａ１１（詳細は後述する）の記憶内容を示している。
【００２５】
この例では、図３（ａ）に示すように、ＲＯＭ５５にリセットベクタ記憶領域Ａ０１、圧縮プログラム記憶領域Ａ０２および空き領域Ａ０３が配置され、ＭＲＡＭ５６にＭＲＡＭ管理領域Ａ１１およびＭＲＡＭデータ記憶領域Ａ１２が配置され、ＤＲＡＭ５７にＤＲＡＭデータ記憶領域Ａ２１が配置されている。
【００２６】
これらのうち、ＲＯＭ５５に配置されるリセットベクタ記憶領域Ａ０１は、画像形成装置１を起動するにあたり、制御部５０においてＣＰＵ５１が最初に実行するプログラムである、イニシャル・プログラム・ローダ（Initial Program Loader：ＩＰＬ）を記憶する。また、ＲＯＭ５５に配置される圧縮プログラム記憶領域Ａ０２は、本実施の形態の画像形成装置１に実装され得る各構成に対応したＯＳおよびアプリケーションプログラム（以下ではこれらをまとめてプログラムと呼ぶ）や、これらのプログラムで使用されるデータ（以下では外部データと呼ぶ）を、それぞれ圧縮した圧縮プログラムとして記憶する。ここで、圧縮プログラム記憶領域Ａ０２には、複数の圧縮プログラムが記憶されている。さらに、ＲＯＭ５５に配置される空き領域Ａ０３は、現段階において、何も記憶されていない領域である。
【００２７】
次に、ＭＲＡＭ５６に配置されるＭＲＡＭ管理領域Ａ１１は、ＭＲＡＭデータ記憶領域Ａ１２およびＤＲＡＭデータ記憶領域Ａ２１に記憶される複数のデータを管理するための情報（ＭＲＡＭ管理情報と呼ぶ）を記憶する。また、ＭＲＡＭ５６に配置されるＭＲＡＭデータ記憶領域Ａ１２は、ＲＯＭ５５に配置された圧縮プログラム記憶領域Ａ０２から読み出した圧縮プログラムを、ＣＰＵ５１が展開することによって得た展開済データ（プログラムや外部データ）等を記憶する。
【００２８】
さらに、ＤＲＡＭ５７に配置されるＤＲＡＭデータ記憶領域Ａ２１は、上記ＭＲＡＭデータ記憶領域Ａ１２と同じく、ＲＯＭ５５に配置された圧縮プログラム記憶領域Ａ０２から読み出した圧縮プログラムを、ＣＰＵ５１が展開することによって得た展開済データ（プログラムや外部データ）等を記憶する。
なお、後述するように、ＭＲＡＭデータ記憶領域Ａ１２とＤＲＡＭデータ記憶領域Ａ２１とには、それぞれ、内容が異なる展開済データが記憶される。
【００２９】
次に、ＲＯＭ５５に配置された圧縮プログラム記憶領域Ａ０２について説明する。
この例では、図３（ｂ）に示すように、圧縮プログラム記憶領域Ａ０２に、プログラムの一例としてのＯＳ（Operating System）を圧縮してなる「ＯＳの圧縮プログラム」と、プログラムの一例としてのＡｐｐｌｉｃａｔｉｏｎＡを圧縮してなる「ＡｐｐｌｉｃａｔｉｏｎＡの圧縮プログラム」と、プログラムの一例としてのＡｐｐｌｉｃａｔｉｏｎＢを圧縮してなる「ＡｐｐｌｉｃａｔｉｏｎＢの圧縮プログラム」と、外部データの一例としてのＤａｔａαを圧縮してなる「Ｄａｔａαの圧縮プログラム」と、外部データの一例としてのＤａｔａβを圧縮してなる「Ｄａｔａβの圧縮プログラム」とが記憶されている。ここで、ＡｐｐｌｉｃａｔｉｏｎＡおよびＡｐｐｌｉｃａｔｉｏｎＢは、ＯＳ上で動作するプログラムであるものとする。また、Ｄａｔａαは、ＡｐｐｌｉｃａｔｉｏｎＡの実行に必要とされる外部データであり、Ｄａｔａβは、ＡｐｐｌｉｃａｔｉｏｎＢの実行に必要とされる外部データであるものとする。
【００３０】
また、ＭＲＡＭ管理領域Ａ１１は、ＭＲＡＭ管理情報として、ＭＲＡＭデータ記憶領域Ａ１２およびＤＲＡＭデータ記憶領域Ａ２１に記憶される複数の展開済データのそれぞれについて、展開情報と呼ばれる各展開済データに固有な情報を記憶する。ここで、展開情報としては、各展開済データに付与された種別（名称）に関するデータ種別情報、各展開済データ（外部データ）に設定された優先度に関する優先度情報、ＭＲＡＭデータ記憶領域Ａ１２において各展開済データが展開された場所（アドレス）に関する展開場所情報等が挙げられる。なお、展開情報のうちのデータ種別情報は、展開済データの元となる圧縮プログラムに予め記録されている。また、データ種別情報は、圧縮プログラムのヘッダ部分に記録されており、圧縮プログラムを展開してなくても、データ種別情報が取得できるようになっている。
【００３１】
図４は、図１に示す画像形成装置１における起動処理の手順を説明するためのフローチャート（メインルーチン）である。なお、この起動処理は、例えばＵＩ３０を介して画像形成装置１の電源が投入されることに伴ってＣＰＵ５１にリセット指示が入力されたとき、また、画像形成装置１の電源が投入された後に何らかの理由によりＣＰＵ５１にリセット指示が入力されたとき、さらには、メインメモリを含む画像形成装置１の一部の構成要素への給電を停止するスリープモードから復帰するとき、などに実行される。
【００３２】
制御部５０に設けられたＣＰＵ５１がリセット指示を受け付けると、ＣＰＵ５１は、自身のリセット（ＣＰＵリセット）を実行する。ＣＰＵリセットに伴い、ＤＲＡＭ５７の記憶内容は消去されるが、ＲＯＭ５５およびＭＲＡＭ５６の記憶内容は消去されず、ＣＰＵリセット前の記憶内容がそのまま保持される。
【００３３】
続いて、ＣＰＵ５１は、ＲＯＭ５５のリセットベクタ記憶領域Ａ０１に記憶されるイニシャル・プログラム・ローダ（ＩＰＬ）を読み出すとともに、読み出したＩＰＬを実行する。ＩＰＬの実行に伴い、ＣＰＵ５１は、ＭＲＡＭ５６のＭＲＡＭ管理領域Ａ１１に記憶されるＭＲＡＭ管理情報を読み出して取得する（ステップ１０１）。
【００３４】
次に、ＣＰＵ５１は、ＩＰＬの実行に伴い、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶される複数の圧縮プログラムのうち、プログラム（ＯＳやアプリケーションプログラム）の圧縮プログラムを、必要に応じて展開し、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２あるいはＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に記憶させるプログラム展開処理を実行する（ステップ１０２）。なお、ステップ１０２では、ステップ１０１で取得したＭＲＡＭ管理情報における展開情報に基づいてプログラム展開処理を実行するのであるが、その詳細については後述する。
【００３５】
また、ＣＰＵ５１は、ステップ１０２においてプログラム展開処理がなされたプログラムを初期化する処理を実行する（ステップ１０３）。なお、ステップ１０３におけるプログラムの初期化処理は、複数のプログラムについて、順次且つ並列に実行される。
【００３６】
続いて、今回の起動処理において必要となるプログラムがＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２あるいはＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に全て記憶されているか、換言すれば、今回の起動処理で使用する全ての展開対象（プログラム）に対する展開処理が終了しているか否かを判断する（ステップ１０４）。ここで、展開対象（プログラム）は、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶される複数の圧縮プログラムのうちの１つの圧縮プログラム（ＯＳあるいはアプリケーションプログラムの圧縮プログラム）を指す。ただし、今回の起動処理において、圧縮プログラム記憶領域Ａ０２に記憶される全ての圧縮プログラムが展開対象（プログラム）となるわけではなく、起動後の画像形成装置１に要求される機能によっては、一部の圧縮プログラムが展開対象（プログラム）から外れることもある。
【００３７】
ステップ１０４において否定の判断（ＮＯ）を行った場合は、ステップ１０２に戻り、次の展開対象（プログラム）に対する展開処理を続行する。
一方、ステップ１０４において肯定の判断（ＹＥＳ）を行った場合、ＣＰＵ５１は起動処理を完了し、画像形成装置１が使用可能な状態へと移行する。
【００３８】
図５は、図４に示す起動処理におけるプログラム展開処理（ステップ１０２）の手順を説明するためのフローチャート（サブルーチン）である。
プログラム展開処理では、まず、ＣＰＵ５１が、展開対象（プログラム）を設定する（ステップ２０１）。ステップ２０１では、ＣＰＵ５１が、画像形成装置１を起動するために必要な手順に基づいて展開対象（プログラム）を設定する。１番目に設定される展開対象（プログラム）としては、例えば各種プログラムを動作させるためのベースとなるＯＳが挙げられる。
【００３９】
次に、ＣＰＵ５１は、上記ステップ１０１（図４参照）で取得したＭＲＡＭ管理情報における展開情報（より具体的にはデータ種別情報）を参照し、ステップ２０１で設定された展開対象（プログラム）が、既にＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に展開済となっているか否か（展開済データとして記憶されているか否か）を判断する(ステップ２０２)。ステップ２０２で肯定の判断（ＹＥＳ）を行った場合は、この展開対象（プログラム）に対するプログラム展開処理を完了する。
【００４０】
一方、ステップ２０２において否定の判断（ＮＯ）を行った場合、ＣＰＵ５１は、次に、この展開対象（プログラム）の圧縮プログラムを展開して得られる展開済データの容量が、ＭＲＡＭ５６におけるＭＲＡＭデータ記憶領域Ａ１２の空き容量以下となっているか否か、換言すれば、この展開対象（プログラム）がＭＲＡＭ５６に展開可能であるか否かを判断する（ステップ２０３）。
【００４１】
ステップ２０３において肯定の判断（ＹＥＳ）を行った場合、ＣＰＵ５１は、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２から展開対象（プログラム）の圧縮プログラムを読み出すとともに、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に、展開対象（プログラム）の圧縮プログラムを展開して得られた展開済データを記憶させる（ステップ２０４）。
【００４２】
一方、ステップ２０３において否定の判断（ＮＯ）を行った場合、ＣＰＵ５１は、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２から展開対象（プログラム）の圧縮プログラムを読み出すとともに、ＭＲＡＭ５６ではなく、ＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に、展開対象（プログラム）の圧縮プログラムを展開して得られた展開済データを記憶させる（ステップ２０５）。
【００４３】
ステップ２０４あるいはステップ２０５を実行した後、ＣＰＵ５１は、この展開対象（プログラム）の圧縮プログラムをＭＲＡＭデータ記憶領域Ａ１２あるいはＤＲＡＭデータ記憶領域Ａ２１に展開して得られた展開済データの展開情報（展開対象（プログラム）の展開情報）を、ＭＲＡＭ５６におけるＭＲＡＭ管理領域Ａ１１に記録し（ステップ２０６）、この展開対象（プログラム）に対するプログラム展開処理を完了する。
【００４４】
図６は、図４に示す起動処理におけるプログラム初期化処理（ステップ１０３）のうち、ＯＳの初期化処理の手順を説明するためのフローチャートである。
ＯＳの初期化処理では、まず、ＣＰＵ５１が、ＭＲＡＭデータ記憶領域Ａ１２あるいはＤＲＡＭデータ記憶領域Ａ２１からＯＳの展開済データを読み出してＯＳ自身の初期化処理を実行する（ステップ３０１）。次に、ＣＰＵ５１は、ＯＳの初期化処理を実行しつつ、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶される複数の圧縮プログラムのうち、ＯＳあるいはＯＳ上で動作する各種アプリケーションプログラムにおいて必要となる外部データの圧縮プログラムを、必要に応じて展開し、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２あるいはＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に記憶させるデータ展開処理を実行する（ステップ３０２）。
【００４５】
続いて、今回の起動処理において必要となる外部データがＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２あるいはＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に全て記憶されているか、換言すれば、今回の起動処理で使用する全ての展開対象（外部データ）に対する展開処理が終了しているか否かを判断する（ステップ３０３）。ここで、展開対象（外部データ）は、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶される複数の圧縮プログラムのうちの１つの圧縮プログラム（外部データの圧縮プログラム）を指す。ただし、今回の起動処理において、圧縮プログラム記憶領域Ａ０２に記憶される全ての圧縮プログラムが展開対象（外部データ）となるわけではなく、起動後の画像形成装置１に要求される機能によっては、一部の圧縮プログラムが展開対象（外部データ）から外れることもある。
【００４６】
ステップ３０３において否定の判断（ＮＯ）を行った場合は、ステップ３０２に戻り、次の展開対象（外部データ）に対する展開処理を続行する。
一方、ステップ３０３において否定の判断（ＮＯ）を行った場合、ＣＰＵ５１はＯＳの初期化処理を完了する。
【００４７】
図７は、図６に示すＯＳの初期化処理におけるデータ展開処理（ステップ３０２）の手順を説明するためのフローチャートである。
データ展開処理では、まず、ＣＰＵ５１が展開対象（外部データ）を設定する（ステップ４０１）。ステップ４０１では、ＣＰＵ５１が、ＯＳあるいはＯＳ上で動作する各種アプリケーションプログラムで必要となる順番に基づいて展開対象（外部データ）を設定する。
【００４８】
次に、ＣＰＵ５１は、上記ステップ１０１（図４参照）で取得したＭＲＡＭ管理情報における展開情報（より具体的にはデータ種別情報）を参照し、ステップ４０１で設定された展開対象（外部データ）が、既にＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に展開済となっているか否か（展開済データとして記憶されているか否か）を判断する(ステップ４０２)。ステップ４０２で肯定の判断（ＹＥＳ）を行った場合は、この展開対象（外部データ）に対するデータ展開処理を完了する。
【００４９】
一方、ステップ４０２において否定の判断（ＮＯ）を行った場合、ＣＰＵ５１は、次に、タイマ５９を用いて、この展開対象（外部データ）の展開処理を開始した展開開始時刻を取得する（ステップ４０３）。続いて、ＣＰＵ５１は、この展開対象（外部データ）の圧縮プログラムを展開して得られる展開済データの容量が、ＭＲＡＭ５６におけるＭＲＡＭデータ記憶領域Ａ１２の空き容量以下となっているか否か、換言すれば、この展開対象（外部データ）がＭＲＡＭ５６に展開可能であるか否かを判断する（ステップ４０４）。
【００５０】
ステップ４０４において肯定の判断（ＹＥＳ）を行った場合、ＣＰＵ５１は、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２から展開対象（外部データ）の圧縮プログラムを読み出すとともに、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に、展開対象（外部データ）の圧縮プログラムを展開して得られた展開済データを記憶させる（ステップ４０５）。
【００５１】
一方、ステップ４０４において否定の判断（ＮＯ）を行った場合、ＣＰＵ５１は、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２から展開対象（外部データ）の圧縮プログラムを読み出すとともに、ＭＲＡＭ５６ではなく、ＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に、展開対象（外部データ）の圧縮プログラムを展開して得られた展開済データを記憶させる（ステップ４０６）。
【００５２】
ステップ４０５あるいはステップ４０６を実行した後、ＣＰＵ５１は、次に、タイマ５９を用いて、この展開対象（外部データ）の展開処理を終了した展開終了時刻を取得する（ステップ４０７）。そして、ＣＰＵ５１は、この展開対象（外部データ）の圧縮プログラムをＭＲＡＭデータ記憶領域Ａ１２あるいはＤＲＡＭデータ記憶領域Ａ２１に展開して得られた展開済データの展開情報（展開対象（外部データ）の展開情報）を、ＭＲＡＭ５６におけるＭＲＡＭ管理領域Ａ１１に記録し（ステップ４０８）、この展開対象（外部データ）に対するデータ展開処理を完了する。
【００５３】
ここで、ステップ４０７で取得された展開終了時刻とステップ４０３で取得された展開開始時刻との差分を「展開時間」と呼ぶ。この展開時間は、ＭＲＡＭ５６におけるＭＲＡＭ管理領域Ａ１１に、外部データに対応付けて記憶される。
【００５４】
図８は、図４に示す起動処理におけるプログラム初期化処理（ステップ１０３）のうち、アプリケーションプログラム（例えばＡｐｐｌｉｃａｔｉｏｎＡやＡｐｐｌｉｃａｔｉｏｎＢ）の初期化処理の手順を説明するためのフローチャートである。
アプリケーションプログラムの初期化処理では、まず、ＣＰＵ５１が、初期化処理のうち、外部データが不要な初期化処理を実行する（ステップ５０１）。続いて、ＣＰＵ５１は、この初期化処理において外部データが必要となったか否かを判断する（ステップ５０２）。
【００５５】
ステップ５０２において否定の判断（ＮＯ）を行った場合、ＣＰＵ５１は、後述するステップ５０８へと進む。
一方、ステップ５０２において肯定の判断（ＹＥＳ）を行った場合、ＣＰＵ５１は、上記ステップ１０１（図４参照）で取得したＭＲＡＭ管理情報における展開情報（より具体的にはデータ種別情報）を参照し、必要とする外部データが、既にＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２あるいはＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に展開済となっているか否か（展開済データとして記憶されているか否か）を判断する（ステップ５０３）。
【００５６】
ステップ５０３で肯定の判断（ＹＥＳ）を行った場合は、後述するステップ５０７へと移行する。
これに対し、ステップ５０３において否定の判断（ＮＯ）を行った場合、ＣＰＵ５１は、次に、タイマ５９を用いて、この外部データの展開終了の待機を開始した待機開始時刻を取得する（ステップ５０４）。そして、ＣＰＵ５１は、この外部データの展開処理が完了したか否かを判断する（ステップ５０５）。
【００５７】
ステップ５０５において否定の判断（ＮＯ）を行った場合は、ステップ５０５へと戻る。
一方、ステップ５０５において肯定の判断（ＹＥＳ）を行った場合、ＣＰＵ５１は、次に、タイマ５９を用いて、この外部データの展開終了の待機を終了した待機終了時刻を取得する（ステップ５０６）。それから、ＣＰＵ５１は、データ展開処理が終了した外部データを取得し、外部データが必要な初期化処理を実行する（ステップ５０７）。そして、ＣＰＵ５１は、このアプリケーションプログラムの初期化処理が完了したか否かを判断する（ステップ５０８）。
【００５８】
ステップ５０８において否定の判断（ＮＯ）を行った場合は、ステップ５０１に戻る。一方、ステップ５０８において肯定の判断（ＹＥＳ）を行った場合は、このアプリケーションプログラムの初期化処理を完了する。
【００５９】
ここで、ステップ５０６で取得された待機終了時間とステップ５０４で取得された待機開始時間との差分を「待機時間」と呼ぶ。この待機時間は、ＭＲＡＭ５６におけるＭＲＡＭ管理領域Ａ１１に、外部データに対応付けて記憶される。また、本実施の形態においては、同じ外部データに対する展開時間と待機時間との合計値を「待ち時間」と呼ぶ。そして、実際には、ＭＲＡＭ５６におけるＭＲＡＭ管理領域Ａ１１に、各外部データに対応付けて「待ち時間」が記憶されることになる。
【００６０】
図９は、図１に示す画像形成装置１における終了処理の手順を説明するためのフローチャート（メインルーチン）である。なお、停止前処理の一例としての終了処理は、図４に示す起動処理の完了に伴って画像形成装置１が動作可能な状態となった後、例えばＵＩ３０を介して画像形成装置１の電源を切断する指示がなされたとき、また、メインメモリを含む画像形成装置１の一部の構成要素への給電を停止するスリープモードに移行するとき、などに実行される。
【００６１】
終了処理では、まず、ＣＰＵ５１が、ＭＲＡＭ５６のＭＲＡＭ管理領域Ａ１１に記憶されるＭＲＡＭ管理情報を読み出して取得する（ステップ６０１）。続いて、ＣＰＵ５１は、ステップ６０１で取得したＭＲＡＭ管理情報に基づき、ＭＲＡＭデータ記憶領域Ａ１２およびＤＲＡＭデータ記憶領域Ａ２１に記憶される複数の外部データのそれぞれに対し、優先度を設定する（ステップ６０２）。なお、ステップ６０２では、各外部データに対応付けられた「待ち時間」が長い順に優先度が設定されるのであるが、その詳細については後述する。
【００６２】
次に、ＣＰＵ５１は、ステップ６０２で各外部データに設定された優先度に基づき、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に記憶される展開済データの内容を再構築する再構築処理を実行し（ステップ６０３）、終了処理を完了する。
そして、この終了処理が完了した後に、画像形成装置１の電源が切断される。
【００６３】
図１０は、図９に示す終了処理における再構築処理の手順を説明するためのフローチャート（サブルーチン）である。
再構築処理において、ＣＰＵ５１は、ステップ６０２（図９参照）にて各外部データに設定された優先度に基づき、再構築における展開対象（外部データ）を設定する（ステップ７０１）。続いて、ＣＰＵ５１は、ステップ７０１で設定した再構築における展開対象（外部データ）が、既にＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に展開済となっているか否か（展開済データとして記憶されているか否か）を判断する(ステップ７０２)。
【００６４】
ステップ７０２で肯定の判断（ＹＥＳ）を行った場合は、後述するステップ７０９へと進む。
一方、ステップ７０２において否定の判断（ＮＯ）を行った場合、ＣＰＵ５１は、再構築の展開対象（外部データ）の圧縮プログラムを展開して得られる展開済データの容量が、ＭＲＡＭ５６におけるＭＲＡＭデータ記憶領域Ａ１２の空き容量以下となっているか否か、換言すれば、この展開対象（外部データ）がＭＲＡＭ５６に展開可能であるか否かを判断する（ステップ７０３）。
【００６５】
ステップ７０３において肯定の判断（ＹＥＳ）を行った場合は、後述するステップ７０７へと進む。
一方、ステップ７０３において否定の判断（ＮＯ）を行った場合、ＣＰＵ５１は、次に、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に、この再構築の展開対象（外部データ）の展開済データよりも優先度が低い展開済データ（外部データ）が記憶されているか否かを判断する（ステップ７０４）。
【００６６】
ステップ７０４において否定の判断（ＮＯ）を行った場合は、後述するステップ７０９へと進む。
一方、ステップ７０４において肯定の判断（ＹＥＳ）を行った場合、ＣＰＵ５１は、この再構築の展開対象（外部データ）の圧縮プログラムを展開して得られる展開済データの容量が、ＭＲＡＭ５６におけるＭＲＡＭデータ記憶領域Ａ１２から相対的な優先度が低い展開済データを削除した後の空き容量以下となっているか否か、換言すれば、再構築の展開対象（外部データ）の圧縮プログラムがＭＲＡＭ５６に展開可能であるか否かを判断する（ステップ７０５）。
【００６７】
ステップ７０５において否定の判断（ＮＯ）を行った場合は、後述するステップ７０９へと進む。
一方、ステップ７０５において肯定の判断（ＹＥＳ）を行った場合、ＣＰＵ５１は、再構築における展開対象（外部データ）よりも相対的な優先度が低い（低優先度の）展開済データ（外部データ）を削除対象に設定し、ＭＲＡＭ５６におけるＭＲＡＭデータ記憶領域Ａ１２から削除する（ステップ７０６）。
【００６８】
ステップ７０６が実行された後、および、ステップ７０３において肯定の判断（ＹＥＳ）がなされた場合、ＣＰＵ５１は、次に、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２から再構築の展開対象（外部データ）の圧縮プログラムを読み出すとともに、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に、再構築の展開対象（外部データ）の圧縮プログラムを展開して得られた展開済データを記憶させる（ステップ７０７）。続いて、ＣＰＵ５１は、この再構築の展開対象（外部データ）の圧縮プログラムをＭＲＡＭデータ記憶領域Ａ１２に展開して得られた展開済データの展開情報（展開対象（外部データ）の展開情報）を、ＭＲＡＭ５６におけるＭＲＡＭ管理領域Ａ１１に記録する（ステップ７０８）。
【００６９】
そして、ＣＰＵ５１は、今回の終了処理において全ての展開対象（外部データ）に対する再構築処理が終了しているか否かを判断する（ステップ７０９）。ステップ７０９において否定の判断（ＮＯ）を行った場合は、ステップ７０１に戻り、次の展開対象（外部データ）に対する再構築処理を続行する。
一方、ステップ７０９において肯定の判断（ＹＥＳ）を行った場合は、一連の再構築処理を完了する。
【００７０】
次に、図４〜図１０に示す起動処理および終了処理の手順について、具体的に例を挙げながら説明を行う。
【００７１】
＜１回目の起動処理の例＞
図１１は、１回目（最初）の起動処理における、ＭＲＡＭ５６、ＤＲＡＭ５７およびＭＲＡＭ管理領域Ａ１１の状態の遷移の例を説明するための図である。
【００７２】
図１１（ａ）は、１回目の起動処理が開始される前の状態を示している。このとき、ＭＲＡＭ５６におけるＭＲＡＭデータ記憶領域Ａ１２およびＤＲＡＭ５７におけるＤＲＡＭデータ記憶領域Ａ２１は空となっている。また、ＭＲＡＭ５６におけるＭＲＡＭ管理領域Ａ１１には、展開情報が記録されていない。
【００７３】
なお、この例では、起動処理に伴って最初にＯＳが起動され、ＯＳに続いてＡｐｐｌｉｃａｔｉｏｎＡが起動され、さらにＡｐｐｌｉｃａｔｉｏｎＢが起動されるものとする。ただし、ＡｐｐｌｉｃａｔｉｏｎＡおよびＡｐｐｌｉｃａｔｉｏｎＢは、起動が開始されるタイミングは異なるものの、それぞれの初期化処理は並列に行われるものとする。また、上述したように、ＡｐｐｌｉｃａｔｉｏｎＡの初期化処理においてはＤａｔａαが必要になり、ＡｐｐｌｉｃａｔｉｏｎＢの初期化処理においてはＤａｔａβが必要になるものとする。
【００７４】
起動処理のステップ１０１（図４参照）では、ＭＲＡＭ５６のＭＲＡＭ管理領域Ａ１１から、ＭＲＡＭ管理情報が取得される。なお、この起動処理において取得されるＭＲＡＭ管理情報は、上述した通り（展開情報：記録なし）となっている。
【００７５】
続くステップ１０２では、プログラム展開処理のサブルーチン（図５参照）が実行される。
ここでは、ステップ２０１において展開対象（プログラム）が「ＯＳ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ２０２において否定の判断（ＮＯ）がなされる。このとき、「ＯＳ」の展開済データの容量がＭＲＡＭデータ記憶領域Ａ１２の空き容量以下となっていることから、続くステップ２０３において肯定の判断（ＹＥＳ）がなされる。これに伴い、ステップ２０４において、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶されている「ＯＳの圧縮プログラム」が読み出されるとともに、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に、「ＯＳの圧縮プログラム」を展開して得られた「ＯＳ」の展開済データが記憶される。続くステップ２０６では、この「ＯＳ」の展開情報（データ種別：ＯＳ、展開場所：０ｘＸＸＸＸ）が、ＭＲＡＭ管理領域Ａ１１に記録されて、「ＯＳ」に対するプログラム展開処理が完了する。そして、「ＯＳ」に関するプログラム展開処理が終了すると、図４に示すメインルーチンのステップ１０３において、「ＯＳ」の初期化が開始される。
【００７６】
「ＯＳ」に関する初期化処理が開始された後、ステップ１０４において否定の判断（ＮＯ）がなされることにより、ステップ１０２へと戻り、プログラム展開処理のサブルーチン（図５参照）が実行される。
ここでは、ステップ２０１において展開対象（プログラム）が「ＡｐｐｌｉｃａｔｉｏｎＡ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ２０２において否定の判断（ＮＯ）がなされる。このとき、「ＡｐｐｌｉｃａｔｉｏｎＡ」の展開済データの容量がＭＲＡＭデータ記憶領域Ａ１２の空き容量以下となっていることから、続くステップ２０３において肯定の判断（ＹＥＳ）がなされる。これに伴い、ステップ２０４において、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶されている「ＡｐｐｌｉｃａｔｉｏｎＡの圧縮プログラム」が読み出されるとともに、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に、「ＡｐｐｌｉｃａｔｉｏｎＡの圧縮プログラム」を展開して得られた「ＡｐｐｌｉｃａｔｉｏｎＡ」の展開済データが記憶される。続くステップ２０６では、この「ＡｐｐｌｉｃａｔｉｏｎＡ」の展開情報（データ種別：ＡｐｐｌｉｃａｔｉｏｎＡ、展開場所：０ｘＸＸＸＸ）が、ＭＲＡＭ管理領域Ａ１１に記録されて、「ＡｐｐｌｉｃａｔｉｏｎＡ」に対するプログラム展開処理が完了する。そして、「ＡｐｐｌｉｃａｔｉｏｎＡ」に関するプログラム展開処理が終了すると、図４に示すメインルーチンのステップ１０３において、「ＡｐｐｌｉｃａｔｉｏｎＡ」の初期化が開始される。
【００７７】
「ＡｐｐｌｉｃａｔｉｏｎＡ」に関する初期化処理が開始された後、ステップ１０４において否定の判断（ＮＯ）がなされることにより、ステップ１０２へと戻り、プログラム展開処理のサブルーチン（図５参照）が実行される。
ここでは、ステップ２０１において展開対象（プログラム）が「ＡｐｐｌｉｃａｔｉｏｎＢ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ２０２において否定の判断（ＮＯ）がなされる。このとき、「ＡｐｐｌｉｃａｔｉｏｎＢ」の展開済データの容量がＭＲＡＭデータ記憶領域Ａ１２の空き容量以下となっていることから、続くステップ２０３において肯定の判断（ＹＥＳ）がなされる。これに伴い、ステップ２０４において、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶されている「ＡｐｐｌｉｃａｔｉｏｎＢの圧縮プログラム」が読み出されるとともに、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に、「ＡｐｐｌｉｃａｔｉｏｎＢの圧縮プログラム」を展開して得られた「ＡｐｐｌｉｃａｔｉｏｎＢ」の展開済データが記憶される。続くステップ２０６では、この「ＡｐｐｌｉｃａｔｉｏｎＢ」の展開情報（データ種別：ＡｐｐｌｉｃａｔｉｏｎＢ、展開場所：０ｘＸＸＸＸ）が、ＭＲＡＭ管理領域Ａ１１に記録されて、「ＡｐｐｌｉｃａｔｉｏｎＢ」に対するプログラム展開処理が完了する。そして、「ＡｐｐｌｉｃａｔｉｏｎＢ」に関するプログラム展開処理が終了すると、図４に示すメインルーチンのステップ１０３において、「ＡｐｐｌｉｃａｔｉｏｎＢ」の初期化が開始される。
【００７８】
ここで、図１１（ｂ）は、「ＯＳ」、「ＡｐｐｌｉｃａｔｉｏｎＡ」および「ＡｐｐｌｉｃａｔｉｏｎＢ」のプログラム展開処理が終了するとともに、これら「ＯＳ」、「ＡｐｐｌｉｃａｔｉｏｎＡ」および「ＡｐｐｌｉｃａｔｉｏｎＢ」の初期化処理が開始された状態を示している。
【００７９】
図６に示すプログラム初期化処理（ＯＳ）では、ステップ３０１においてＯＳの初期化処理が実行され、続くステップ３０２では、データ展開処理のサブルーチン（図７参照）が実行される。
ここでは、ステップ４０１において展開対象（外部データ）が「Ｄａｔａα」に設定され、ＭＲＡＭ管理情報に基づき、ステップ４０２において否定の判断（ＮＯ）がなされる。そして、ステップ４０３において「Ｄａｔａα」の展開開始時刻が取得される。このとき、「Ｄａｔａα」の展開済データの容量がＭＲＡＭデータ記憶領域Ａ１２の空き容量以下となっていることから、続くステップ４０４において肯定の判断（ＹＥＳ）がなされる。これに伴い、ステップ４０５において、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶されている「Ｄａｔａαの圧縮プログラム」が読み出されるとともに、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に、「Ｄａｔａαの圧縮プログラム」を展開して得られた「Ｄａｔａα」の展開済データが記憶される。続くステップ４０７では、「Ｄａｔａα」の展開終了時刻が取得され、ステップ４０８において、この「Ｄａｔａα」の展開情報（データ種別：Ｄａｔａα、展開場所：０ｘＸＸＸＸ）が、ＭＲＡＭ管理領域Ａ１１に記録されて、「Ｄａｔａα」に対するデータ展開処理が完了する。
【００８０】
ここで、図１１（ｃ）は、「Ｄａｔａα」に関するデータ展開処理が終了した状態を示している。
【００８１】
「Ｄａｔａα」に対するデータ展開処理が終了した後、図６に示すメインルーチンのステップ３０３において否定の判断（ＮＯ）がなされることにより、ステップ３０２へと戻り、データ展開処理のサブルーチン（図７参照）が実行される。
ここでは、ステップ４０１において展開対象（外部データ）が「Ｄａｔａβ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ４０２において否定の判断（ＮＯ）がなされる。そして、ステップ４０３において「Ｄａｔａβ」の展開開始時刻が取得される。このとき、「Ｄａｔａβ」の展開済データの容量がＭＲＡＭデータ記憶領域Ａ１２の空き容量を超えてしまうことから、続くステップ４０４において否定の判断（ＮＯ）がなされる。これに伴い、ステップ４０６において、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶されている「Ｄａｔａβの圧縮プログラム」が読み出されるとともに、ＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に、「Ｄａｔａβの圧縮プログラム」を展開して得られた「Ｄａｔａβ」の展開済データが記憶される。続くステップ４０７では、「Ｄａｔａβ」の展開終了時刻が取得され、ステップ４０８において、この「Ｄａｔａβ」の展開情報（データ種別：Ｄａｔａβ）が、ＭＲＡＭ管理領域Ａ１１に記録されて、「Ｄａｔａβ」に対するデータ展開処理が完了する。
【００８２】
ここで、図１１（ｄ）は、「Ｄａｔａβ」に関するデータ展開処理が終了し、１回目の起動処理が完了した状態を示している。なお、図１１（ｄ）に示すように、１回目の起動処理が完了する前に、ＭＲＡＭ管理領域Ａ１１には、「Ｄａｔａα」の待ち時間および「Ｄａｔａβ」の待ち時間が記録される。なお、待ち時間については後述する。
【００８３】
図１２は、１回目（最初）の起動処理における、各プログラム（ＯＳ、ＡｐｐｌｉｃａｔｉｏｎＡおよびＡｐｐｌｉｃａｔｉｏｎＢ）および各外部データ（ＤａｔａαおよびＤａｔａβ）の状態の遷移の例を説明するためのタイムチャートである。なお、図１２に示すタイムチャートは、上述した図１１に対応している。
【００８４】
この例では、最初にＯＳの初期化処理が開始され、次にＡｐｐｌｉｃａｔｉｏｎＡの初期化処理が開始され、続いてＡｐｐｌｉｃａｔｉｏｎＢの初期化処理が開始される。
【００８５】
この例では、ＡｐｐｌｉｃａｔｉｏｎＢの初期化処理が開始された後に、ＯＳによるＤａｔａαのデータ展開処理が開始される。また、この例では、ＯＳがＤａｔａαにデータ展開処理を施している間に、ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機が開始される。その後、ＯＳによるＤａｔａαの展開が終了されることに伴い、ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機が終了（Ｄａｔａαの読み出しが可能）となり、Ｄａｔａαを用いたＡｐｐｌｉｃａｔｉｏｎＡの初期化が実行される。ここで、ＯＳによるＤａｔａαの展開開始時刻から展開終了時刻に至る展開時間を、第１展開時間Ｔｅαと呼ぶ。また、ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機開始時刻から待機終了時刻に至る待機時間を、第１待機時間Ｔｗαと呼ぶ。
【００８６】
そして、この例では、ＯＳによるＤａｔａαのデータ展開処理が終了（ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機が終了）した後に、ＡｐｐｌｉｃａｔｉｏｎＢによるＤａｔａβの待機が開始される。また、この例では、ＡｐｐｌｉｃａｔｉｏｎＢがＤａｔａβを待機している間に、ＯＳによるＤａｔａβのデータ展開処理が開始される。そして、ＯＳによるＤａｔａβの展開が終了されることに伴い、ＡｐｐｌｉｃａｔｉｏｎＢによるＤａｔａβの待機が終了（Ｄａｔａβの読み出しが可能）となり、Ｄａｔａβを用いたＡｐｐｌｉｃａｔｉｏｎＢの初期化が実行される。ここで、ＯＳによるＤａｔａβの展開開始時刻から展開終了時刻に至る展開時間を、第２展開時間Ｔｅβと呼ぶ。また、ＡｐｐｌｉｃａｔｉｏｎＢによるＤａｔａβの待機開始時刻から待機終了時刻に至る待機時間を、第２待機時間Ｔｗβと呼ぶ。
【００８７】
この例において、Ｄａｔａαの待ち時間である第１待ち時間Ｔαは、第１展開時間Ｔｅαと第１待機時間Ｔｗαとの和（Ｔα＝Ｔｅα＋Ｔｗα）として表され、Ｄａｔａβの待ち時間である第２待ち時間Ｔβは、第２展開時間Ｔｅβと第２待機時間Ｔｗβとの和（Ｔβ＝Ｔｅβ＋Ｔｗβ）として表される。また、この例では、第１展開時間Ｔｅαおよび第２展開時間Ｔｅβがそれぞれ２０ｍｓｅｃであり、第１待機時間Ｔｗαは５ｍｓｅｃであり、第２待機時間Ｔｗβは４０ｍｓｅｃであるものとする。すると、第１待ち時間Ｔαは、Ｔα＝Ｔｅα＋Ｔｗα＝２０＋５＝２５ｍｓｅｃとなり、第２待ち時間Ｔβは、Ｔβ＝Ｔｅβ＋Ｔｗβ＝２０＋４０＝６０ｍｓｅｃとなる。そして、これら第１待ち時間Ｔαおよび第２待ち時間Ｔβの値は、図１１（ｄ）に示すように、ＭＲＡＭ管理領域Ａ１１に、待ち時間として、それぞれのデータ種別（ＤａｔａαあるいはＤａｔａβ）に対応付けて記憶される。
【００８８】
＜１回目の終了処理の例＞
図１３は、１回目の終了処理における、ＭＲＡＭ５６、ＤＲＡＭ５７およびＭＲＡＭ管理領域Ａ１１の状態の遷移の例を説明するための図である。なお、この例では、上記１回目の起動処理が完了した後に１回目の終了処理が行われるものとする。したがって、ＭＲＡＭ５６（ＭＲＡＭ管理領域Ａ１１を含む）およびＤＲＡＭ５７は、図１１（ｄ）に示す状態となっている。
【００８９】
ステップ６０１（図９参照）では、ＭＲＡＭ５６のＭＲＡＭ管理領域Ａ１１から、ＭＲＡＭ管理情報が取得される。なお、この終了処理において取得されるＭＲＡＭ管理情報は、図１１（ｄ）に示した通りとなっている。
【００９０】
次のステップ６０２では、各外部データ（この例ではＤａｔａαおよびＤａｔａβ）に、優先度が設定される。この例では、Ｄａｔａαの待ち時間である第１待ち時間Ｔαが２５ｍｓｅｃであり、Ｄａｔａβの待ち時間である第２待ち時間Ｔβが６０ｍｓｅｃである。そして、ステップ６０２では、待ち時間が大きい順に優先度が設定される。したがって、この例では、Ｄａｔａβの優先度が１に設定され、Ｄａｔａβの優先度が２に設定される。ここで、図１３（ａ）は、各外部データに優先度が設定された状態を示している。
【００９１】
続くステップ６０３では、再構築処理のサブルーチン（図１０参照）が実行される。
ここでは、ステップ７０１において再構築の展開対象（外部データ）が「Ｄａｔａβ」に設定され、ＭＲＡＭ管理情報に基づきステップ７０２において否定の判断（ＮＯ）がなされる。このとき、「Ｄａｔａβ」の展開済データの容量がＭＲＡＭデータ記憶領域Ａ１２の空き容量を超えていることから、続くステップ７０３において否定の判断（ＮＯ）がなされる。
【００９２】
次のステップ７０４では、ＭＲＡＭデータ記憶領域Ａ１２に、「Ｄａｔａβ」よりも優先度の低い展開済データ（外部データ）が記憶されているか否かが判断される。この例では、ＭＲＡＭデータ記憶領域Ａ１２に、「Ｄａｔａβ」（優先度：１）よりも優先度が低い「Ｄａｔａα」（優先度：２）が存在していることから、ステップ７０４において肯定の判断（ＹＥＳ）がなされる。また、「Ｄａｔａβ」（優先度：１）の展開済データの容量が、ＭＲＡＭデータ記憶領域Ａ１２から「Ｄａｔａα」（優先度：２）を削除した場合の空き容量以下となっていることから、続くステップ７０５では肯定の判断（ＹＥＳ）がなされる。そして、ステップ７０６において、ＭＲＡＭデータ記憶領域Ａ１２から「Ｄａｔａα」が削除され、ＭＲＡＭ管理領域Ａ１１から「Ｄａｔａα」の展開情報が削除される。ここで、図１３（ｂ）は、「Ｄａｔａα」の展開済データの削除が行われた状態を示している。
【００９３】
「Ｄａｔａα」の展開済データの削除が完了した後、ステップ７０７では、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶されている「Ｄａｔａβの圧縮プログラム」が読み出されるとともに、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に、「Ｄａｔａβの圧縮プログラム」を展開して得られた「Ｄａｔａβ」の展開済データが記憶される。続くステップ７０８では、「Ｄａｔａβ」の展開情報（データ種別：Ｄａｔａβ、展開領域：０ｘＸＸＸＸ）がＭＲＡＭ管理領域Ａ１１に記録されて、「Ｄａｔａβ」に対する再構築処理が完了する。ここで、図１３（ｃ）は、「Ｄａｔａβ」に関するデータ展開処理が終了した状態を示している。
【００９４】
「Ｄａｔａβ」に対するデータ展開処理が終了した後、ステップ７０９において否定の判断（ＮＯ）がなされることにより、ステップ７０１へと戻る。
ここでは、ステップ７０１において再構築の展開対象（外部データ）が「Ｄａｔａα」に設定され、ＭＲＡＭ管理情報に基づきステップ７０２において否定の判断（ＮＯ）がなされる。このとき、「Ｄａｔａα」の展開済データの容量がＭＲＡＭデータ記憶領域Ａ１２の空き容量を超えていることから、続くステップ７０３において否定の判断（ＮＯ）がなされる。
【００９５】
次のステップ７０４では、ＭＲＡＭデータ記憶領域Ａ１２に、「Ｄａｔａα」よりも優先度の低い展開済データ（外部データ）が記憶されているか否かが判断される。この例では、ＭＲＡＭデータ記憶領域Ａ１２に、「Ｄａｔａα」（優先度：２）よりも優先度の低い外部データが存在していないことから、ステップ７０４において否定の判断（ＮＯ）がなされる。そして、続くステップ７０９において肯定の判断（ＹＥＳ）がなされることにより、再構築処理および終了処理を完了する。この例において、図１３（ｃ）は、再構築処理および終了処理が終了したときの状態も示していることになる。
以上により、１回目の終了処理が完了し、その後、画像形成装置１の電源が切断される。
なお、この例においては、Ｄａｔａβが第１のデータに、Ｄａｔａαが第２のデータに、それぞれ対応していることになる。
【００９６】
＜２回目の起動処理の例＞
図１４は、２回目の起動処理における、ＭＲＡＭ５６、ＤＲＡＭ５７およびＭＲＡＭ管理領域Ａ１１の状態の遷移の例を説明するための図である。
【００９７】
図１４（ａ）は、２回目の起動処理が開始される前の状態を示している。なお、この例では、上記１回目の終了処理が完了した後に２回目の起動処理が行われるものとする。したがって、ＭＲＡＭ５６（ＭＲＡＭ管理領域Ａ１１を含む）は、図１３（ｃ）に示した状態を維持している。一方、ＤＲＡＭ５７については、電源が切断されることに伴って、その記憶内容が消去された状態となっている。
【００９８】
また、この例では、２回目の起動処理においても、「ＡｐｐｌｉｃａｔｉｏｎＡ」、「ＡｐｐｌｉｃａｔｉｏｎＢ」、「Ｄａｔａα」、「Ｄａｔａβ」の順番で、合計４つの展開対象が設定されているものとする。
【００９９】
起動処理のステップ１０１（図４参照）では、ＭＲＡＭ５６のＭＲＡＭ管理領域Ａ１１から、ＭＲＡＭ管理情報が取得される。なお、この起動処理において取得されるＭＲＡＭ管理情報は、図１４（ａ）に示した通りとなっている。
【０１００】
続くステップ１０２では、プログラム展開処理のサブルーチン（図５参照）が実行される。
ここでは、ステップ２０１において展開対象（プログラム）が「ＯＳ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ２０２において肯定の判断（ＹＥＳ）がなされ、「ＯＳ」に対するプログラム展開処理が終了する。そして、「ＯＳ」に関するプログラム展開処理が終了すると、図４に示すメインルーチンのステップ１０３において、「ＯＳ」の初期化が開始される。
【０１０１】
「ＯＳ」に関する初期化処理が開始された後、ステップ１０４において否定の判断（ＮＯ）がなされることにより、ステップ１０２へと戻り、プログラム展開処理のサブルーチン（図５参照）が実行される。
ここでは、ステップ２０１において展開対象（プログラム）が「ＡｐｐｌｉｃａｔｉｏｎＡ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ２０２において肯定の判断（ＹＥＳ）がなされ、「ＡｐｐｌｉｃａｔｉｏｎＡ」に対するプログラム展開処理が終了する。そして、「ＡｐｐｌｉｃａｔｉｏｎＡ」に関するプログラム展開処理が終了すると、図４に示すメインルーチンのステップ１０３において、「ＡｐｐｌｉｃａｔｉｏｎＡ」の初期化が開始される。
【０１０２】
「ＡｐｐｌｉｃａｔｉｏｎＡ」に関する初期化処理が開始された後、ステップ１０４において否定の判断（ＮＯ）がなされることにより、ステップ１０２へと戻り、プログラム展開処理のサブルーチン（図５参照）が実行される。
ここでは、ステップ２０１において展開対象（プログラム）が「ＡｐｐｌｉｃａｔｉｏｎＢ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ２０２において肯定の判断（ＹＥＳ）がなされ、「ＡｐｐｌｉｃａｔｉｏｎＢ」に対するプログラム展開処理が終了する。そして、「ＡｐｐｌｉｃａｔｉｏｎＢ」に関するプログラム展開処理が終了すると、図４に示すメインルーチンのステップ１０３において、「ＡｐｐｌｉｃａｔｉｏｎＢ」の初期化が開始される。
【０１０３】
図６に示すプログラム初期化処理（ＯＳ）では、ステップ３０１においてＯＳの初期化処理が実行され、続くステップ３０２では、データ展開処理のサブルーチン（図７参照）が実行される。
ここでは、ステップ４０１において展開対象（外部データ）が「Ｄａｔａα」に設定され、ＭＲＡＭ管理情報に基づき、ステップ４０２において否定の判断（ＮＯ）がなされる。そして、ステップ４０３において「Ｄａｔａα」の展開開始時刻が取得される。このとき、「Ｄａｔａα」の展開済データの容量がＭＲＡＭデータ記憶領域Ａ１２の空き容量を超えてしまうことから、続くステップ４０４において否定の判断（ＮＯ）がなされる。これに伴い、ステップ４０６において、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶されている「Ｄａｔａαの圧縮プログラム」が読み出されるとともに、ＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に、「Ｄａｔａαの圧縮プログラム」を展開して得られた「Ｄａｔａα」の展開済データが記憶される。続くステップ４０７では、「Ｄａｔａα」の展開終了時刻が取得され、ステップ４０８において、この「Ｄａｔａα」の展開情報（データ種別：Ｄａｔａα）が、ＭＲＡＭ管理領域Ａ１１に記録されて、「Ｄａｔａα」に対するデータ展開処理が完了する。
【０１０４】
ここで、図１４（ｂ）は、「Ｄａｔａα」に関するデータ展開処理が終了した状態を示している。
【０１０５】
「Ｄａｔａα」に対するデータ展開処理が終了した後、図６に示すメインルーチンのステップ３０３において否定の判断（ＮＯ）がなされることにより、ステップ３０２へと戻り、データ展開処理のサブルーチン（図７参照）が実行される。
ここでは、ステップ４０１において展開対象（外部データ）が「Ｄａｔａβ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ４０２において肯定の判断（ＹＥＳ）がなされ、「Ｄａｔａβ」に関するデータ展開処理が終了する。
【０１０６】
ここで、図１４（ｃ）は、「Ｄａｔａβ」に関するデータ展開処理が終了し、２回目の起動処理が完了した状態を示している。なお、図１４（ｃ）に示すように、２回目の起動処理が完了する前に、ＭＲＡＭ管理領域Ａ１１には、「Ｄａｔａα」の待ち時間が記録される。
【０１０７】
図１５は、２回目の起動処理における、各プログラム（ＯＳ、ＡｐｐｌｉｃａｔｉｏｎＡおよびＡｐｐｌｉｃａｔｉｏｎＢ）および各外部データ（ＤａｔａαおよびＤａｔａβ）の状態の遷移の例を説明するためのタイムチャートである。なお、図１５に示すタイムチャートは、上述した図１４に対応している。
【０１０８】
この例では、１回目の起動処理と同じく、最初にＯＳの初期化処理が開始され、次にＡｐｐｌｉｃａｔｉｏｎＡの初期化処理が開始され、続いてＡｐｐｌｉｃａｔｉｏｎＢの初期化処理が開始される。
【０１０９】
また、この例では、１回目の起動処理と同じく、ＡｐｐｌｉｃａｔｉｏｎＢの初期化処理が開始された後に、ＯＳによるＤａｔａαのデータ展開処理が開始され、ＯＳがＤａｔａαのデータ展開処理を行っている間に、ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機が開始される。その後、ＯＳによるＤａｔａαの展開が終了されることに伴い、ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機が終了（Ｄａｔａαの読み出しが可能）となり、Ｄａｔａαを用いたＡｐｐｌｉｃａｔｉｏｎＡの初期化が実行される。
【０１１０】
ここで、１回目の起動処理では、ＯＳによるＤａｔａαのデータ展開処理が終了（ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機が終了）した後に、ＡｐｐｌｉｃａｔｉｏｎＢによるＤａｔａβの待機が開始され、ＡｐｐｌｉｃａｔｉｏｎＢがＤａｔａβを待機している間に、ＯＳによるＤａｔａβのデータ展開処理が開始されていた。そして、１回目の起動処理では、ＯＳによるＤａｔａβの展開が終了されることに伴い、ＡｐｐｌｉｃａｔｉｏｎＢによるＤａｔａβの待機が終了（Ｄａｔａβの読み出しが可能）となり、Ｄａｔａβを用いたＡｐｐｌｉｃａｔｉｏｎＢの初期化が実行されるようになっていた（図１２参照）。
【０１１１】
これに対し、２回目の起動処理では、ＡｐｐｌｉｃａｔｉｏｎＢの初期化が開始される時点で、既に、Ｄａｔａβのデータ展開処理が完了している。より具体的に説明すると、２回目の起動処理が開始される時点で、Ｄａｔａβは、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に記憶された状態となっている。したがって、２回目の起動処理においては、ＯＳによるＤａｔａβの展開が不要となり、ＡｐｐｌｉｃａｔｉｏｎＢによるＤａｔａβの待機も不要となる。それゆえ、図１５に破線で示したように、Ｄａｔａβの展開および待機が不要となる分、ＡｐｐｌｉｃａｔｉｏｎＢの初期化処理の終了がより早くなり、起動処理に要する時間が短くなる。
【０１１２】
ではここで、比較のために、上記再構築処理を行わなかった場合における２回目の起動処理（比較例と呼ぶ）について説明を行う。
＜２回目の起動処理（比較例）＞
図１６は、２回目の起動処理（比較例）が開始される前の状態を示している。なお、この比較例では、上記１回目の起動処理において再構築処理を行わないことを前提としている。したがって、ＭＲＡＭ５６（ＭＲＡＭ管理領域Ａ１１を含む）は、図１１（ａ）に示した状態（ＭＲＡＭデータ記憶領域Ａ１２については図１１（ｄ）と同じ状態）となっている。一方、ＤＲＡＭ５７については、電源が切断されることに伴って、その記憶内容が消去された状態となっている。
【０１１３】
また、この例では、２回目の起動処理（比較例）においても、「ＡｐｐｌｉｃａｔｉｏｎＡ」、「ＡｐｐｌｉｃａｔｉｏｎＢ」、「Ｄａｔａα」、「Ｄａｔａβ」の順番で、合計４つの展開対象が設定されているものとする。
【０１１４】
起動処理のステップ１０１では、ＭＲＡＭ５６のＭＲＡＭ管理領域Ａ１１から、ＭＲＡＭ管理情報が取得される。なお、この起動処理において取得されるＭＲＡＭ管理情報は、図１６（ａ）に示した通りとなっている。
【０１１５】
続くステップ１０２では、プログラム展開処理のサブルーチン（図５参照）が実行される。
ここでは、ステップ２０１において展開対象（プログラム）が「ＯＳ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ２０２において肯定の判断（ＹＥＳ）がなされ、「ＯＳ」に対するプログラム展開処理が終了する。そして、「ＯＳ」に関するプログラム展開処理が終了すると、図４に示すメインルーチンのステップ１０３において、「ＯＳ」の初期化が開始される。
【０１１６】
「ＯＳ」に関する初期化処理が開始された後、ステップ１０４において否定の判断（ＮＯ）がなされることにより、ステップ１０２へと戻り、プログラム展開処理のサブルーチン（図５参照）が実行される。
ここでは、ステップ２０１において展開対象（プログラム）が「ＡｐｐｌｉｃａｔｉｏｎＡ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ２０２において肯定の判断（ＹＥＳ）がなされ、「ＡｐｐｌｉｃａｔｉｏｎＡ」に対するプログラム展開処理が終了する。そして、「ＡｐｐｌｉｃａｔｉｏｎＡ」に関するプログラム展開処理が終了すると、図４に示すメインルーチンのステップ１０３において、「ＡｐｐｌｉｃａｔｉｏｎＡ」の初期化が開始される。
【０１１７】
「ＡｐｐｌｉｃａｔｉｏｎＡ」に関する初期化処理が開始された後、ステップ１０４において否定の判断（ＮＯ）がなされることにより、ステップ１０２へと戻り、プログラム展開処理のサブルーチン（図５参照）が実行される。
ここでは、ステップ２０１において展開対象（プログラム）が「ＡｐｐｌｉｃａｔｉｏｎＢ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ２０２において肯定の判断（ＹＥＳ）がなされ、「ＡｐｐｌｉｃａｔｉｏｎＢ」に対するプログラム展開処理が終了する。そして、「ＡｐｐｌｉｃａｔｉｏｎＢ」に関するプログラム展開処理が終了すると、図４に示すメインルーチンのステップ１０３において、「ＡｐｐｌｉｃａｔｉｏｎＢ」の初期化が開始される。
【０１１８】
図６に示すプログラム初期化処理（ＯＳ）では、ステップ３０１においてＯＳの初期化処理が実行され、続くステップ３０２では、データ展開処理のサブルーチン（図７参照）が実行される。
ここでは、ステップ４０１において展開対象（外部データ）が「Ｄａｔａα」に設定され、ＭＲＡＭ管理情報に基づき、ステップ４０２において肯定の判断（ＹＥＳ）がなされ、「Ｄａｔａα」に関するデータ展開処理が終了する。
【０１１９】
「Ｄａｔａα」に対するデータ展開処理が終了した後、図６に示すメインルーチンのステップ３０３において否定の判断（ＮＯ）がなされることにより、ステップ３０２へと戻り、データ展開処理のサブルーチン（図７参照）が実行される。
ここでは、ステップ４０１において展開対象（外部データ）が「Ｄａｔａβ」に設定され、ＭＲＡＭ管理情報に基づき、ステップ４０２において否定の判断（ＮＯ）がなされる。そして、ステップ４０３において「Ｄａｔａβ」の展開開始時刻が取得される。このとき、「Ｄａｔａβ」の展開済データの容量がＭＲＡＭデータ記憶領域Ａ１２の空き容量を超えてしまうことから、続くステップ４０４において否定の判断（ＮＯ）がなされる。これに伴い、ステップ４０６において、ＲＯＭ５５の圧縮プログラム記憶領域Ａ０２に記憶されている「Ｄａｔａβの圧縮プログラム」が読み出されるとともに、ＤＲＡＭ５７のＤＲＡＭデータ記憶領域Ａ２１に、「Ｄａｔａβの圧縮プログラム」を展開して得られた「Ｄａｔａβ」の展開済データが記憶される。続くステップ４０７では、「Ｄａｔａβ」の展開終了時刻が取得され、ステップ４０８において、この「Ｄａｔａβ」の展開情報（データ種別：Ｄａｔａβ）が、ＭＲＡＭ管理領域Ａ１１に記録されて、「Ｄａｔａβ」に対するデータ展開処理が完了する。
【０１２０】
ここで、図１６（ｂ）は、「Ｄａｔａβ」に関する展開処理が終了した状態を示している。また、図１６（ｃ）は、「Ｄａｔａβ」に関する展開処理が終了し、２回目の起動処理（比較例）が完了した状態を示している。なお、図１６（ｃ）に示すように、２回目の起動処理が完了する前に、ＭＲＡＭ管理領域Ａ１１には、「Ｄａｔａβ」の待ち時間が記録される。
【０１２１】
図１７は、２回目の起動処理（比較例）における、各プログラム（ＯＳ、ＡｐｐｌｉｃａｔｉｏｎＡおよびＡｐｐｌｉｃａｔｉｏｎＢ）および各データ（ＤａｔａαおよびＤａｔａβ）の状態の遷移の例を説明するためのタイムチャートである。なお、図１７に示すタイムチャートは、上述した図１６に対応している。
【０１２２】
この比較例では、上記２回目の起動処理と同じく、最初にＯＳの初期化処理が開始され、次にＡｐｐｌｉｃａｔｉｏｎＡの初期化処理が開始され、続いてＡｐｐｌｉｃａｔｉｏｎＢの初期化処理が開始される。
【０１２３】
ここで、上記２回目の起動処理では、ＡｐｐｌｉｃａｔｉｏｎＢの初期化が開始された後に、ＯＳによるＤａｔａαのデータ添加処理が開始され、ＯＳがＤａｔａαのデータ展開処理を行っている間に、ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機が開始されていた。そして、上記２回目の起動処理では、ＯＳによるＤａｔａαの展開が終了されることに伴い、ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機が終了（Ｄａｔａαの読み出しが可能）となり、Ｄａｔａαを用いたＡｐｐｌｉｃａｔｉｏｎＡの初期化が実行されるようになっていた（図１５参照）。
【０１２４】
これに対し、２回目の起動処理（比較例）では、ＡｐｐｌｉｃａｔｉｏｎＡの初期化が開始される時点で、既に、Ｄａｔａαのデータ展開処理が完了している。より具体的に説明すると、２回目の起動処理（比較例）が開始される時点で、Ｄａｔａαは、ＭＲＡＭ５６のＭＲＡＭデータ記憶領域Ａ１２に記憶された状態となっている。したがって、２回目の起動処理においては、ＯＳによるＤａｔａαの展開が不要となり、ＡｐｐｌｉｃａｔｉｏｎＡによるＤａｔａαの待機も不要となる。
【０１２５】
しかしながら、２回目の起動処理（比較例）では、上記２回目の起動処理とは異なり、あらためてＤａｔａβの展開を行う必要があるため、Ｄａｔａβの展開に要する第２展開時間ＴｅβおよびＤａｔａβの待機に要する第２待機時間Ｔｗβが、上記２回目の起動処理に比べて余分にかかることになる。したがって、終了処理において予め再構築処理を実行しておくことにより、２回目以降の起動処理において、起動処理に要する時間を短くすることが可能になる。
【符号の説明】
【０１２６】
１…画像形成装置、２…ネットワーク、３…端末装置、４…ファクシミリ装置、５…サーバ装置、１０…画像読取部、２０…画像形成部、３０…ＵＩ、４０…送受信部、５０…制御部、５１…ＣＰＵ、５２…バスブリッジ、５３…メモリバス、５４…ＰＣＩバス、５５…ＲＯＭ、５６…ＭＲＡＭ、５７…ＤＲＡＭ、５８…クロックジェネレータ、５９…タイマ、６１…ＵＩＩＦ、６２…プリントＩＦ、６３…オプションＩＦ、６４…ネットワークＩＦ、６５…ＵＳＢＩＦ、７０…後処理装置、８０…カードリーダ、８１…メモリカード、Ａ０１…リセットベクタ記憶領域、Ａ０２…圧縮プログラム記憶領域、Ａ０３…空き領域、Ａ１１…ＭＲＡＭ管理領域、Ａ１２…ＭＲＡＭデータ記憶領域、Ａ２１…ＤＲＡＭデータ記憶領域
【図１】
2014203361.tif 000003
【図２】
2014203361.tif 000004
【図３】
2014203361.tif 000005
【図４】
2014203361.tif 000006
【図５】
2014203361.tif 000007
【図６】
2014203361.tif 000008
【図７】
2014203361.tif 000009
【図８】
2014203361.tif 000010
【図９】
2014203361.tif 000011
【図１０】
2014203361.tif 000012
【図１１】
2014203361.tif 000013
【図１２】
2014203361.tif 000014
【図１３】
2014203361.tif 000015
【図１４】
2014203361.tif 000016
【図１５】
2014203361.tif 000017
【図１６】
2014203361.tif 000018
【図１７】
2014203361.tif 000019