情報処理装置、画像形成装置およびプログラム
【課題】プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とする。
【解決手段】初回の起動において、CPU51は、ROM55から読み出した圧縮プログラムを展開して不揮発性RAM56に格納した後、不揮発性RAM56からプログラムを読み出し実行することで起動処理を行う。2回目以降の起動において、CPU51は、装置構成の変更がない場合および不揮発性RAM56から読み出したプログラムにエラーが発生していない場合は、不揮発性RAM56から読み出したプログラムをそのまま実行することで起動処理を行い、装置構成が変更された場合および不揮発性RAM56に格納されるプログラムに異常が生じていた場合は、上述した初回の起動の手順によって起動処理を行う。
【解決手段】初回の起動において、CPU51は、ROM55から読み出した圧縮プログラムを展開して不揮発性RAM56に格納した後、不揮発性RAM56からプログラムを読み出し実行することで起動処理を行う。2回目以降の起動において、CPU51は、装置構成の変更がない場合および不揮発性RAM56から読み出したプログラムにエラーが発生していない場合は、不揮発性RAM56から読み出したプログラムをそのまま実行することで起動処理を行い、装置構成が変更された場合および不揮発性RAM56に格納されるプログラムに異常が生じていた場合は、上述した初回の起動の手順によって起動処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、画像形成装置およびプログラムに関する。
【背景技術】
【0002】
公報記載の従来技術として、主記憶装置の一部を構成する不揮発性記憶部に予め記憶された主記憶イメージからシステムの起動を行うとともに、不揮発性記憶部上の主記憶イメージのブロック毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーし、そのコピー上で書き込みを行い、以後、コピー済の主記憶イメージの領域へのアクセスを、コピーへのアクセスに切り替えるようにした計算機システムが存在する(特許文献1参照)。
【0003】
また、他の公報記載の従来技術として、読み書き可能な不揮発性メモリデバイスの領域を細分化するとともに、不揮発性メモリデバイスの対象領域にデータを書き込む前に、この対象領域に既に書き込まれているデータを他の領域に退避させ、さらに、不揮発性メモリデバイスにおける複数の領域にまたがるデータの書き込みが発生した場合には、これら複数の領域に既に書き込まれているデータを、他の領域に同時にバックアップさせるようにしたコンピュータ装置が存在する(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−010897号公報
【特許文献2】特開2008−004011号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることを目的とする。
【課題を解決するための手段】
【0006】
請求項1記載の発明は、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、当該記憶手段に記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行することを特徴とする情報処理装置である。
請求項2記載の発明は、前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項1記載の情報処理装置である。
請求項3記載の発明は、前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1または2記載の情報処理装置である。
【0007】
請求項4記載の発明は、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、前記認識手段にて接続される機器の変更が認識された場合に、当該第1の手順を実行することを特徴とする情報処理装置である。
請求項5記載の発明は、前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項4記載の情報処理装置である。
請求項6記載の発明は、前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項4または5記載の情報処理装置である。
請求項7記載の発明は、前記実行手段は、前記記憶手段に記憶されるプログラムの内容に異常が検出された場合に、前記第1の手順を実行することを特徴とする請求項4乃至6のいずれか1項記載の情報処理装置である。
【0008】
請求項8記載の発明は、記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部の制御に用いるために転送されてくるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、当該記憶手段に記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行することを特徴とする画像形成装置である。
【0009】
請求項9記載の発明は、記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部の制御に用いるために転送されてくるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、前記認識手段にて接続される機器の変更が認識された場合に、当該第1の手順を実行することを特徴とする画像形成装置である。
【0010】
請求項10記載の発明は、コンピュータに、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリに記憶されているプログラムを実行させる機能と、前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されているプログラムを読み出して実行する第2の手順を、を有し、当該不揮発性メモリに記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行させる機能とを実現させるプログラムである。
【0011】
請求項11記載の発明は、コンピュータに、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリに記憶されるプログラムを読み出して実行させる機能と、接続される機器を認識する機能と、前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されているプログラムを読み出して実行する第2の手順を、を有し、接続される機器の変更が認識された場合に、当該第1の手順を実行させる機能とを実現させるプログラムである。
【発明の効果】
【0012】
請求項1記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項2記載の発明によれば、本構成を有しない場合と比較して、起動処理をさらに高速化することができる。
請求項3記載の発明によれば、例えば不揮発性メモリとしてEEPROMあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。
請求項4記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項5記載の発明によれば、本構成を有しない場合と比較して、起動処理をさらに高速化することができる。
請求項6記載の発明によれば、例えば不揮発性メモリとしてEEPROMあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。
請求項7記載の発明によれば、本構成を有しない場合と比較して、さらに、不揮発性メモリに記憶された異常なプログラムを、正常なプログラムに修正することができる。
請求項8記載の発明によれば本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項9記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項10記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項11記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
【図面の簡単な説明】
【0013】
【図1】本実施の形態が適用される画像形成システムの構成の一例を示す図である。
【図2】画像形成装置に設けられた制御部の内部構成の一例を示すハードウェアブロック図である。
【図3】制御部に設けられたCPUの内部構成の一例を示すハードウェアブロック図である。
【図4】メインメモリによるメモリマップの構成の一例を示す図である。
【図5】画像形成装置の起動処理を説明するためのフローチャートである。
【図6】IPL(イニシャル・プログラム・ローダ)の実行に伴う処理の手順を説明するためのフローチャートである。
【図7】画像形成装置が初めて起動される場合(初回起動時)における、CPU、ROMおよび不揮発性RAMの状態を説明するための図である。
【図8】装置構成に変更がない状態で、画像形成装置が2回目に起動される場合における、CPU、ROMおよび不揮発性RAMの状態を説明するための図である。
【図9】装置構成が変更(追加)された状態で、画像形成装置が2回目に起動される場合における、CPU、ROMおよび不揮発性RAMの状態を説明するための図である。
【図10】装置構成が変更(削減)された状態で、画像形成装置が2回目に起動される場合における、CPU、ROMおよび不揮発性RAMの状態を説明するための図である。
【図11】装置構成に変更がない状態で、画像形成装置が2回目に起動される場合における、CPU、ROMおよび不揮発性RAMの他の状態を説明するための図である。
【発明を実施するための形態】
【0014】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図1は、本実施の形態が適用される画像形成システムの構成の一例を示す図である。
この画像形成システムは、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を備えた所謂複合機として動作する画像形成装置1と、画像形成装置1に接続されるネットワーク2と、ネットワーク2に接続される端末装置3と、ネットワーク2に接続されるファクシミリ装置4と、ネットワーク2に接続されるサーバ装置5とを有している。
【0015】
ここで、ネットワーク2は、インターネット回線や電話回線等によって構成されている。また、端末装置3は、ネットワーク2を介して、画像形成装置1に画像の形成等を指示するものであり、例えばPC(Personal Computer)で構成される。さらに、ファクシミリ装置4は、ネットワーク2を介して、画像形成装置1との間でファクシミリを送受信する。さらにまた、サーバ装置5は、ネットワーク2を介して、画像形成装置1との間でデータ(プログラムを含む)を送受信する。
【0016】
また、画像形成装置1は、紙等の記録媒体に記録された画像を読み取る画像読取部10と、紙等の記録媒体に画像を形成する画像形成部20と、ユーザから電源のオン/オフ、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェース(UI)30と、ネットワーク2を介して端末装置3、ファクシミリ装置4およびサーバ装置5との間でデータの送受信を行う送受信部40と、これら画像読取部10、画像形成部20、UI30および送受信部40の動作を制御する制御部50とを備えている。そして、この画像形成装置1では、画像読取部10によってスキャン機能が実現され、画像形成部20によってプリント機能が実現され、画像読取部10および画像形成部20によってコピー機能が実現され、画像読取部10、画像形成部20および送受信部40によってファクシミリ機能が実現される。なお、送受信部40は、例えばインターネット回線用のものと電話回線用のものとを、別々に設けるようにしてもかまわない。
【0017】
図2は、図1に示す画像形成装置1に設けられた制御部50の内部構成の一例を示すハードウェアブロック図である。
情報処理装置の一例としての制御部50は、種々の演算を実行することによって画像形成装置1の各部を制御する実行手段あるいは認識手段の一例としてのCPU(Central Processing Unit:中央処理装置)51と、CPU51に接続され、CPU51との間で各種データのやりとりを行うバスブリッジ52とを備えている。制御部50において、バスブリッジ52には、第1のクロックでデータのやりとりを行うメモリバス53と、第1のクロックよりも周波数が低い第2のクロックでデータのやりとりを行うPCI(Peripheral Component Interconnect)バス54とが接続されている。
【0018】
また、制御部50は、ROM(Read Only Memory)55と、不揮発性RAM(Random Access Memory)56と、揮発性RAM57とを備えている。そして、これらROM55、不揮発性RAM56および揮発性RAM57は、それぞれ、メモリバス53に接続されている。
【0019】
さらに、制御部50は、UI30を制御するためのUIインタフェース回路(UIIF)61と、画像形成部20を制御するためのプリントインタフェース回路(プリントIF)62と、例えば画像形成が行われた記録媒体に後処理を施す後処理装置70など、画像形成装置1に後付けで装着されるオプションユニットを制御するためのオプションインタフェース回路(オプションIF)63と、送受信部40を制御するためのネットワークインタフェース回路(ネットワークIF)64と、USB(Universal Serial Bus)デバイスを制御するためのUSBインタフェース回路(USBIF)65とを備えている。そして、これらUIIF61、プリントIF62、オプションIF63、ネットワークIF64およびUSBIF65は、それぞれ、PCIバス54に接続されている。また、本実施の形態では、USBIF65に対し、画像読取部10が接続されている。なお、USBIF65には、例えば、装着されたメモリカード81に対しデータを読み書きするカードリーダ80が接続されることもある。
【0020】
そして、制御部50は、制御部50を構成する各部(CPU51等)が動作するクロックの基準となる基準クロックを生成するクロックジェネレータ58と、CPU51等の動作に伴って計時を行うタイマ59とをさらに備えている。
【0021】
本実施の形態における制御部50は、例えば、1チップのマイクロコントローラによって構成されている。ただし、制御部50を、複数のチップで構成してもかまわない。
【0022】
また、本実施の形態の制御部50において、CPU51は、ROM55、不揮発性RAM56および揮発性RAM57に直接アクセスすることが可能となっている。以下の説明では、メモリバス53に接続されるROM55、不揮発性RAM56および揮発性RAM57を、まとめて『メインメモリ』と称することがある。
【0023】
ここで、格納手段の一例としてのROM55は、所謂マスクROM、各種PROM(Programmable ROM:例えばOTP ROM (One Time Programmable ROM)、UV−EPROM(Ultra-Violet Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM))、フラッシュメモリなどで構成されている。なお、この例では、ROM55として、フラッシュメモリが用いられている。
【0024】
また、記憶手段の一例としての不揮発性RAM56は、MRAM(Magnetoresistive RAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase change RAM)、ReRAM(Resistance RAM)など、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリによって構成されている。なお、この例では、不揮発性RAM56として、ROM55として用いられるフラッシュメモリよりも高速にデータの読み書きが可能なMRAMが用いられている。
【0025】
さらに、揮発性RAM57は、DRAM(Dynamic RAM)やSRAM(Static RAM)など、電源を供給しないと、記憶している情報を保持することができない揮発性メモリによって構成されている。なお、この例では、揮発性RAM57として、DRAMが用いられている。
【0026】
そして、本実施の形態では、不揮発性RAM56および揮発性RAM57が、ともに第1のクロックでデータの読み書きを行う。このため、不揮発性RAM56は、揮発性RAM57(この例ではDRAM)と同等の読み書き性能を有していることになる。
【0027】
図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とを備えている。
【0028】
ここで、レジスタ群515は、演算ユニット514が次に実行するべき命令を格納するメインメモリ上のアドレスを保持するプログラムカウンタ(PC)515aと、一時的にデータを退避しておくために用意するスタック領域のアドレスを保持するスタックポインタ(SP)515bと、CPU51の状態や演算の状態などを保持するステータスレジスタ(SR)515cと、演算やデータ転送の一次記憶などに使用されるアキュムレータ、メインメモリ上のデータにアクセスするためのアドレスを保持するアドレスレジスタ、さらにはCPU51の動作設定の情報を保持するコントロールレジスタ等として機能する汎用レジスタ515dとを含んでいる。
【0029】
そして、レジスタ群515およびキャッシュメモリ516は、ともに、電源を供給しないと、記憶している情報を保持することができない揮発性メモリによって構成されている。なお、この例では、レジスタ群515およびキャッシュメモリ516として、揮発性RAM57で用いられるDRAMよりも高速にデータの読み書きが可能なSRAMが用いられている。
【0030】
図4は、上述したメインメモリ(ROM55、不揮発性RAM56および揮発性RAM57)によるメモリマップの構成の一例を示す図である。
この例では、ROM55にリセットベクタ領域A01および圧縮プログラム領域A02が配置され、不揮発性RAM56にプログラム/変数領域A11および履歴領域A12が配置され、揮発性RAM57にワーク領域A21およびバッファ領域A22が配置されている。また、不揮発性RAM56に配置される履歴領域A12は、起動フラグ領域A12aと、構成ステータス領域A12bと、ログ領域A12cとを有している。
【0031】
これらのうち、ROM55に配置されるリセットベクタ領域A01は、画像形成装置1を起動するにあたり、制御部50においてCPU51が実行するプログラムである、イニシャル・プログラム・ローダ(Initial Program Loader:IPL)を格納している。また、ROM55に配置される圧縮プログラム領域A02は、本実施の形態の画像形成装置1に実装され得る各構成に対応したプログラムおよびこのプログラムで用いられる変数(以下では、これらを『プログラム/変数』と称する)を、構成毎にまとめて圧縮した状態で格納している。例えば図4に示す例では、圧縮プログラム領域A02に、構成Aを動作させるためのプログラム/変数を圧縮した圧縮プログラム(構成A用圧縮プログラム)、構成Bを動作させるためのプログラム/変数を圧縮した圧縮プログラム(構成B用圧縮プログラム)、構成Cを動作させるためのプログラム/変数を圧縮した圧縮プログラム(構成C用圧縮プログラム)、構成Dを動作させるためのプログラム/変数を圧縮した圧縮プログラム(構成D用圧縮プログラム)、…、を格納している。なお、ここでいう構成A〜構成Dは、上述した画像読取部10、画像形成部20、UI30、送受信部40、後処理装置70、そしてカードリーダ80等のそれぞれに対応するものであり、画像形成装置1の本体に対し着脱可能であって、画像形成装置1に装着された場合には、単独であるいは他の構成部とともに、予め決められた機能を発揮するものである。
【0032】
このように、本実施の形態では、実際に使用する際の画像形成装置1の構成(図1に示す画像形成装置1は後処理装置70を備えていない)とは関係なく、この画像形成装置1に実装され得る各構成に対応した複数の圧縮プログラムを、ROM55に配置された圧縮プログラム領域A02に、予め格納させている。これにより、画像形成装置1の装置構成の変更に伴って、ROM55を交換したり、あるいは、ROM55に格納されるプログラムの更新を行ったりしなくてもよいようにしている。
【0033】
次に、不揮発性RAM56に配置されるプログラム/変数領域A11は、上述した圧縮プログラム領域A02から読み出した圧縮プログラムを、CPU51が伸張することによって得たプログラム/変数を格納する。また、不揮発性RAM56に配置される履歴領域A12のうち、起動フラグ領域A12aは、画像形成装置1が過去に起動されたことがあるか否かを示すフラグを格納する。ここで、起動フラグ領域A12aには、画像形成装置1が過去に起動されている場合には「オン(1)」が格納され、画像形成装置1が過去に起動されていない場合には「オフ(0)」が格納される。さらに、不揮発性RAM56に配置される履歴領域A12のうち、構成ステータス領域A12bは、画像形成装置が前回起動された際の装置構成(以下では、『前回の装置構成』と称する)を、構成ステータスとして格納する。ここで、構成ステータス領域A12bには、この画像形成装置1に装着され得る各構成に対し、その構成が存在している場合には「オン(1)」が格納され、その構成が存在していない場合には「オフ(0)」が格納される。さらにまた、不揮発性RAM56に配置される履歴領域A12のうち、ログ領域A12cは、画像形成装置1が受けた指示の内容、装置構成が変更された際の内容、さらには発生したエラーの内容等を、ログデータとして格納する。
【0034】
そして、揮発性RAM57に配置されるワーク領域A21は、CPU51によるプログラムの実行に伴って一時的に発生するデータを格納する。また、揮発性RAM57に配置されるバッファ領域A22は、CPU51によるデータ処理に伴って、画像形成装置の各構成要素に対して出力される指示(PCIバス54を介して各IFに出力されるデータ)に関するデータを格納する。
【0035】
図5は、図1に示す画像形成装置1の起動処理を説明するためのフローチャートである。なお、この起動処理は、例えばUI30を介して画像形成装置1の電源が投入されることに伴ってCPU51にリセット指示が入力されたとき、また、画像形成装置1の電源が投入された後に何らかの理由によりCPU51にリセット指示が入力されたとき、などに実行される。
【0036】
制御部50に設けられたCPU51がリセット指示を受け付けると(ステップ1)、CPU51は、自身のリセット(CPUリセット)を実行する(ステップ2)。このとき、CPUリセットに伴って、CPU51に設けられたレジスタ群515およびキャッシュメモリ516(ともに揮発性メモリで構成される)の記憶内容もクリアされる。また、CPUリセットに伴って、制御部50に設けられた揮発性RAM57の記憶内容もクリアされる。一方、CPUリセットが実行されても、制御部50に設けられたROM55および不揮発性RAM57の記憶内容はクリアされず、CPUリセット前の記憶内容がそのまま保持される。
【0037】
続いて、CPU51は、バスブリッジ52およびメモリバス53を介して、ROM55のリセットベクタ領域A01に格納されるイニシャル・プログラム・ローダ(IPL)を読み出すとともに、読み出したIPLを実行し(ステップ3)、画像形成装置1に実装された各構成が使用可能となるように動作準備を行う。そして、画像形成装置1の動作準備が完了する(ステップ4)ことで、一連の起動処理を終了する。
【0038】
続いて、上述したステップ3におけるIPLの実行について、より詳細に説明する。
図6は、IPLの実行に伴う処理の手順を説明するためのフローチャートである。
IPLの実行に伴い、CPU51は、最初に、バスブリッジ52およびPCIバス54を介して接続されている各IF(この例では、UIIF61、プリントIF62、オプションIF63、ネットワークIF64およびUSBIF65)を用いて、画像形成装置1の装置構成を検出する(ステップ11)。なお、ステップ11では、例えば各IFにコネクタ等が物理的に接続されているか否かを検出するハードウェア的な手法を用いてもよいし、また、例えば各IFを介して接続対象と通信が行えるか否かを検出するソフトウェア的な手法を用いてもよい。
【0039】
続いて、CPU51は、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aから、起動フラグを読み出して取得する(ステップ12)。そして、CPU51は、起動フラグがオフ(0)であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断する(ステップ13)。
【0040】
ステップ13において肯定の判断(Yes)を行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、CPU51は、続いて、ステップ11で検出した今回の装置構成に基づき、ROM55の圧縮プログラム領域A02から、今回の装置構成の中に含まれる1つの構成に対応する圧縮プログラムを読み出し(ステップ14)、ステップ14で読み出した圧縮プログラムを展開し(ステップ15)、ステップ15で圧縮プログラムを展開して得られたプログラム/変数を、不揮発性RAM56におけるプログラム/変数領域A11に格納する(ステップ16)。その後、ステップ11で検出した今回の装置構成について、全構成に対応するプログラム/変数の、プログラム/変数領域A11への格納が完了したか否かを判断する(ステップ17)。ステップ17において否定の判断(No)を行った場合は、ステップ14に戻り、今回の装置構成における残りの構成に対応する圧縮プログラムの読み出し、読み出した圧縮プログラムの展開、そして展開によって得られたプログラム/変数の格納を続けて行う。
【0041】
一方、ステップ17において肯定の判断(Yes)を行った場合、CPU51は、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとして「オン(1)」を格納させる(ステップ18)。続いて、CPU51は、ステップ11で検出した今回の装置構成の内容を反映させた変更ログを作成し、作成した変更ログを履歴領域A12のログ領域A12cに格納する(ステップ19)。さらに、CPU51は、ステップ11で検出した今回の装置構成について、存在する構成を「オン(1)」、存在しない構成を「オフ(0)」とした構成ステータスを、履歴領域A12の構成ステータス領域A12bに格納する(ステップ20)。そして、後述するステップ25に進む。
【0042】
また、上述したステップ13において否定の判断(No)を行った場合、すなわち、今回の起動処理が2回目以降の起動処理であった場合、CPU51は、不揮発性RAM56の履歴領域A12における構成ステータス領域A12bから、構成ステータスを読み出して取得し(ステップ21)、ステップ11で検出した今回の装置構成が、ステップ21で取得した構成ステータスすなわち前回の装置構成から変更されているか否かを判断する(ステップ22)。
【0043】
ステップ22において否定の判断(No)を行った場合、すなわち、前回の装置構成と今回の装置構成とが同じである場合、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納される各プログラム/変数に対してエラーチェックを実行する(ステップ23)。なお、ステップ23で実行されるエラーチェックの手法としては、例えばCRC(Cyclic Redundancy Check:巡回冗長検査)が挙げられる。そして、CPU51は、ステップ23でエラーチェックを実行した結果に基づき、不揮発性RAM56のプログラム/変数領域A11に格納される各プログラム/変数においてエラーが発生しているか否かを、プログラム毎に判断する(ステップ24)。
【0044】
ステップ24において否定の判断(No)を行った場合、および、上述したステップ20における処理を行った後、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納された各プログラム/変数を用いて処理を行うことにより、画像形成装置1の初期設定を行い(ステップ25)、IPLの実行を完了する。
【0045】
一方、上述したステップ22において肯定の判断(Yes)を行った場合、すなわち、前回の装置構成と今回の装置構成とが相違していた場合、CPU51は、前回の装置構成から今回の装置構成に至る変更内容を反映させた変更ログを作成し、作成した変更ログを履歴領域A12のログ領域A12cに格納する(ステップ26)。続いて、CPU51は、起動フラグをリセットし(ステップ27)、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとして「オフ(0)」を格納させた状態で、ステップ14に移行する。
【0046】
これにより、前回の起動処理と今回の起動処理とにおいて装置構成に変更があった場合は、ステップ11で検出した今回の装置構成に基づき、各構成に対応するプログラム/変数が、再度、不揮発性RAM56のプログラム/変数領域A11に書き込まれる。このとき、新たに書き込まれるプログラム/変数は、今回の起動処理よりも前の起動処理において、プログラム/変数領域A11に既に書き込まれていたプログラム/変数に上書きされる。
【0047】
他方、上述したステップ24において肯定の判断を行った場合、すなわち、不揮発性RAM56のプログラム/変数領域A11に格納されるいずれかのプログラム/変数においてエラーが発生した場合、CPU51は、どのプログラムにおいてエラーが発生しているのかを反映させたエラーログを作成し、作成したエラーログを履歴領域A12のログ領域A12cに格納する(ステップ28)。続いて、CPU51は、起動フラグをリセットし(ステップ29)、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとして「オフ(0)」を格納させた状態で、ステップ14に移行する。
【0048】
これにより、今回の起動処理よりも前の起動処理において不揮発性RAM56のプログラム/変数領域A11に記憶されていたプログラム/変数にエラー(異常)が生じていた場合は、ステップ11で検出した今回の装置構成に基づき、各構成に対応するプログラム/変数が、再度、不揮発性RAM56のプログラム/変数領域A11に書き込まれる。このとき、新たに書き込まれるプログラム/変数は、今回の起動処理よりも前の起動処理において、プログラム/変数領域A11に既に書き込まれていたプログラム/変数に上書きされる。
【0049】
次に、図6に示すIPLの実行に伴う処理の手順について、具体的に例を挙げながら説明する。
【0050】
<最初の起動>
図7は、画像形成装置1が初めて起動される場合(初回起動時)における、CPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図7(a)はIPLの実行中における状態を例示しており、図7(b)はIPLの実行が完了した状態を例示している。なお、ここでは、初回起動時において、構成A、構成Bおよび構成Cが接続されているものとする。
【0051】
図7(a)に示すように、初回の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには起動フラグ(Flag)として「0」が格納されており、構成ステータス領域A12bには構成ステータスとして、「A=B=C=D=0」が格納されている。また、図7(a)に示すように、初回の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11およびログ領域A12cは、ともに空の状態となっている。
【0052】
CPU51は、ステップ11において、図7(a)に示すように、構成A、構成Bおよび構成Cを検出する(A=B=C=1、D=0)。また、CPU51は、ステップ12において、起動フラグ領域12aから起動フラグとして「0」を取得する。これにより、CPU51は、ステップ13において肯定の判断を行う。
【0053】
続いて、CPU51は、ステップ11で検出した今回の構成(A=B=C=1、D=0)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム(図7(a)では「A(圧縮)」)を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図7(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。続いて、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図7(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
【0054】
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図7(b)に示すように、構成A用のプログラム/変数(図7(b)では「A(展開)」)、構成B用のプログラム/変数(図7(b)では「B(展開)」)、および構成C用のプログラム/変数(図7(b)では「C(展開)」)が、それぞれ格納されることになる。
【0055】
その後、CPU51は,ステップ18において、図7(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログ(履歴)を格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=B=C=1、D=0」を格納する。
【0056】
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。
【0057】
<2回目以降の起動:その1>
図8は、図7に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、装置構成の変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図8(a)はIPLの実行中における状態を例示しており、図8(b)はIPLの実行が完了した状態を例示している。
【0058】
図8(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図8(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。
【0059】
CPU51は、ステップ11において、図8(a)に示すように、構成A、構成Bおよび構成Cを検出する(A=B=C=1、D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
【0060】
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致することから、ステップ22において否定の判断を行う。
【0061】
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、すべてのプログラム/変数においてエラーが発生しなかったことにより、CPU51が、ステップ24において肯定の判断を行っているものとする。
【0062】
その後、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。
【0063】
このように、今回の構成が前回の構成から変更されていない場合は、起動時に各構成に対応する圧縮プログラムの読み出し、展開および格納を行わずに、前回までの起動において、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラムをそのまま実行することで、起動処理にかかる時間の短縮化を図る。
【0064】
<2回目以降の起動:その2>
図9は、図7に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成A〜Cにさらに構成Dを追加する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図9(a)はIPLの実行中における状態を例示しており、図9(b)はIPLの実行が完了した状態を例示している。
【0065】
図9(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図9(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。
【0066】
CPU51は、ステップ11において、図9(a)に示すように、構成A、構成Bおよび構成Cに加えて、構成Dも検出する(A=B=C=D=1)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
【0067】
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ22において肯定の判断を行う。
【0068】
次に、CPU51は、ステップ26において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「0」を格納した後、ステップ14に移行する。
【0069】
それから、CPU51は、ステップ11で検出した今回の構成(A=B=C=D=1)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム(図9(a)では「A(圧縮)」)を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図9(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。続いて、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図9(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。さらに、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Dに対応する構成D用圧縮プログラム(図9(a)では「D(圧縮)」)を読み出し、読み出した構成D用圧縮プログラムを展開し、展開によって得られた構成D用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
【0070】
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図9(b)に示すように、新たに、構成A用のプログラム/変数(図9(b)では「A(展開)」)、構成B用のプログラム/変数(図9(b)では「B(展開)」)、構成C用のプログラム/変数(図9(b)では「C(展開)」)、および構成D用のプログラム/変数(図9(b)では「D(展開)」)が、それぞれ格納(上書き)されることになる。
【0071】
その後、CPU51は,ステップ18において、図9(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=B=C=D=1」を格納する。
【0072】
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラム、構成C用のプログラムおよび構成D用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成B、構成Cおよび構成Dが使用可能な状態となる。
【0073】
このように、今回の構成が前回の構成から変更されている場合(構成が追加された場合)は、起動処理時に今回検出した各構成に対応する圧縮プログラムの読み出し、展開および格納を行い、不揮発性RAM56に配置されたプログラム/変数領域A11に新たに格納された各プログラムを実行することで、今回の構成での動作が可能となる。
【0074】
<2回目以降の起動:その3>
図10は、図7に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成Aを削減する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図10(a)はIPLの実行中における状態を例示しており、図10(b)はIPLの実行が完了した状態を例示している。
【0075】
図10(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図10(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。
【0076】
CPU51は、ステップ11において、図10(a)に示すように、構成Bおよび構成Cを検出する(A=0、B=C=1、D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
【0077】
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ21において肯定の判断を行う。
【0078】
次に、CPU51は、ステップ26において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ27において、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「0」を格納した後、ステップ14に移行する。
【0079】
それから、CPU51は、ステップ11で検出した今回の構成(A=0、B=C=1、D=0)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図10(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図9(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
【0080】
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図10(b)に示すように、新たに、構成B用のプログラム/変数(図10(b)では「B(展開)」)、および構成C用のプログラム/変数(図10(b)では「C(展開)」)が、それぞれ格納(上書き)されることになる。
【0081】
その後、CPU51は,ステップ18において、図10(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=0、B=C=1、D=0」を格納する。
【0082】
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成Bおよび構成Cが使用可能な状態となる。
【0083】
このように、今回の構成が前回の構成から変更されている場合(構成が削減された場合)は、起動処理時に今回検出した各構成に対応する圧縮プログラムの読み出し、展開および格納を行い、不揮発性RAM56に配置されたプログラム/変数領域A11に新たに格納された各プログラムを実行することで、今回の構成での動作が可能となる。
【0084】
<2回目以降の起動:その4>
図11は、図7に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、装置構成の変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の他の状態を説明するための図である。ここで、図11(a)はIPLの実行中における状態を例示しており、図11(b)はIPLの実行が完了した状態を例示している。
【0085】
図11(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図11(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。
【0086】
CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致することから、ステップ22において否定の判断を行う。
【0087】
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、構成B用のプログラム/変数においてエラーが発生したことにより、CPU51が、ステップ24において否定の判断を行っているものとする。
【0088】
次に、CPU51は、ステップ28において、不揮発性RAM56に配置されたログ領域A12cにエラーログを格納し、さらに、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「0」を格納した後、ステップ14に移行する。
【0089】
それから、CPU51は、ステップ11で検出した今回の構成(A=B=C=1、D=0)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム(図11(a)では「A(圧縮)」)を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図11(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。続いて、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図11(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
【0090】
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図11(b)に示すように、再び、構成A用のプログラム/変数(図11(b)では「A(展開)」)、構成B用のプログラム/変数(図11(b)では「B(展開)」)、および構成C用のプログラム/変数(図9(b)では「C(展開)」)が、それぞれ格納(上書き)されることになる。
【0091】
その後、CPU51は,ステップ18において、図11(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=B=C=1、D=0」を格納する。
【0092】
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。
【0093】
このように、今回の構成が前回の構成から変更されていない場合であっても、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラムのいずれかにエラーが発生した状況下においては、、起動処理時に今回検出した各構成に対応する圧縮プログラムの読み出し、展開および格納を行い、不揮発性RAM56に配置されたプログラム/変数領域A11に再び格納された各プログラムを実行することで、今回の構成での動作が可能となる。
【0094】
ここで、上述した説明では、構成の追加あるいは削減に伴って、装置構成が変更される場合を例としたが、例えば接触不良や装置故障など、実際の装置構成が変更されていないにも関わらず、特定の構成を検出できないような場合も生じ得る。本実施の形態で説明した手法を用いれば、このような理由によって装置構成の変更が生じた場合であっても、使用可能な残りの構成で構築された装置を動作させるためのプログラムを再構成することが可能になる。
【0095】
なお、本実施の形態では、各圧縮プログラムを格納する圧縮プログラム領域A02を、不揮発性RAM57に配置していたが、これに限られるものではない。すなわち、圧縮プログラム領域A02を、例えば画像形成装置1にネットワーク2を介して接続されるサーバ装置5(図1参照)や、USBIF65に接続されたカードリーダ80に配置されるメモリカード81に配置するようにしてもよい。なお、このような場合には、IPLの実行時において、各圧縮プログラムの読み取り対象を、サーバ装置5あるいはカードリーダ80に装着されたメモリカードに設定すればよい。
【0096】
また、本実施の形態では、不揮発性RAM56にプログラム/変数領域A11および履歴領域A12を配置するとともに、揮発性RAM57にワーク領域A21およびバッファ領域A22を配置するようにしていたが、これに限られるものではなく、例えば不揮発性RAM56のみを設け、この不揮発性RAM56にプログラム/変数領域A11、履歴領域A12、ワーク領域A21およびバッファ領域A22を配置するようにしてもかまわない。
【0097】
さらに、本実施の形態では、制御部50を画像形成装置1に組み込んだ場合を例として説明を行ったが、これに限られるものではなく、複数のユニットの組み合わせによって構成され、これら複数のユニットの着脱に伴って構成が変更され得る装置に適用しても差し支えない。
【符号の説明】
【0098】
1…画像形成装置、2…ネットワーク、3…端末装置、4…ファクシミリ装置、5…サーバ装置、10…画像読取部、20…画像形成部、30…UI、40…送受信部、50…制御部、51…CPU、52…バスブリッジ、53…メモリバス、54…PCIバス、55…ROM、56…不揮発性RAM、57…揮発性RAM、58…クロックジェネレータ、59…タイマ、61…UIIF、62…プリントIF、63…オプションIF、64…ネットワークIF、65…USBIF、70…後処理装置、80…カードリーダ、81…メモリカード、511…バスコントロールユニット、512…CPU内部バス、513…制御ユニット、514…演算ユニット、515…レジスタ群、516…キャッシュメモリ、517…メモリ管理ユニット
【技術分野】
【0001】
本発明は、情報処理装置、画像形成装置およびプログラムに関する。
【背景技術】
【0002】
公報記載の従来技術として、主記憶装置の一部を構成する不揮発性記憶部に予め記憶された主記憶イメージからシステムの起動を行うとともに、不揮発性記憶部上の主記憶イメージのブロック毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーし、そのコピー上で書き込みを行い、以後、コピー済の主記憶イメージの領域へのアクセスを、コピーへのアクセスに切り替えるようにした計算機システムが存在する(特許文献1参照)。
【0003】
また、他の公報記載の従来技術として、読み書き可能な不揮発性メモリデバイスの領域を細分化するとともに、不揮発性メモリデバイスの対象領域にデータを書き込む前に、この対象領域に既に書き込まれているデータを他の領域に退避させ、さらに、不揮発性メモリデバイスにおける複数の領域にまたがるデータの書き込みが発生した場合には、これら複数の領域に既に書き込まれているデータを、他の領域に同時にバックアップさせるようにしたコンピュータ装置が存在する(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−010897号公報
【特許文献2】特開2008−004011号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることを目的とする。
【課題を解決するための手段】
【0006】
請求項1記載の発明は、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、当該記憶手段に記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行することを特徴とする情報処理装置である。
請求項2記載の発明は、前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項1記載の情報処理装置である。
請求項3記載の発明は、前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1または2記載の情報処理装置である。
【0007】
請求項4記載の発明は、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、前記認識手段にて接続される機器の変更が認識された場合に、当該第1の手順を実行することを特徴とする情報処理装置である。
請求項5記載の発明は、前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項4記載の情報処理装置である。
請求項6記載の発明は、前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項4または5記載の情報処理装置である。
請求項7記載の発明は、前記実行手段は、前記記憶手段に記憶されるプログラムの内容に異常が検出された場合に、前記第1の手順を実行することを特徴とする請求項4乃至6のいずれか1項記載の情報処理装置である。
【0008】
請求項8記載の発明は、記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部の制御に用いるために転送されてくるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、当該記憶手段に記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行することを特徴とする画像形成装置である。
【0009】
請求項9記載の発明は、記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部の制御に用いるために転送されてくるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されているプログラムを読み出して実行する第2の手順と、を有し、前記認識手段にて接続される機器の変更が認識された場合に、当該第1の手順を実行することを特徴とする画像形成装置である。
【0010】
請求項10記載の発明は、コンピュータに、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリに記憶されているプログラムを実行させる機能と、前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されているプログラムを読み出して実行する第2の手順を、を有し、当該不揮発性メモリに記憶されるプログラムの内容に異常が検出された場合に、当該第1の手順を実行させる機能とを実現させるプログラムである。
【0011】
請求項11記載の発明は、コンピュータに、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリに記憶されるプログラムを読み出して実行させる機能と、接続される機器を認識する機能と、前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されているプログラムを読み出して実行する第2の手順を、を有し、接続される機器の変更が認識された場合に、当該第1の手順を実行させる機能とを実現させるプログラムである。
【発明の効果】
【0012】
請求項1記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項2記載の発明によれば、本構成を有しない場合と比較して、起動処理をさらに高速化することができる。
請求項3記載の発明によれば、例えば不揮発性メモリとしてEEPROMあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。
請求項4記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項5記載の発明によれば、本構成を有しない場合と比較して、起動処理をさらに高速化することができる。
請求項6記載の発明によれば、例えば不揮発性メモリとしてEEPROMあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。
請求項7記載の発明によれば、本構成を有しない場合と比較して、さらに、不揮発性メモリに記憶された異常なプログラムを、正常なプログラムに修正することができる。
請求項8記載の発明によれば本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項9記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項10記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項11記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
【図面の簡単な説明】
【0013】
【図1】本実施の形態が適用される画像形成システムの構成の一例を示す図である。
【図2】画像形成装置に設けられた制御部の内部構成の一例を示すハードウェアブロック図である。
【図3】制御部に設けられたCPUの内部構成の一例を示すハードウェアブロック図である。
【図4】メインメモリによるメモリマップの構成の一例を示す図である。
【図5】画像形成装置の起動処理を説明するためのフローチャートである。
【図6】IPL(イニシャル・プログラム・ローダ)の実行に伴う処理の手順を説明するためのフローチャートである。
【図7】画像形成装置が初めて起動される場合(初回起動時)における、CPU、ROMおよび不揮発性RAMの状態を説明するための図である。
【図8】装置構成に変更がない状態で、画像形成装置が2回目に起動される場合における、CPU、ROMおよび不揮発性RAMの状態を説明するための図である。
【図9】装置構成が変更(追加)された状態で、画像形成装置が2回目に起動される場合における、CPU、ROMおよび不揮発性RAMの状態を説明するための図である。
【図10】装置構成が変更(削減)された状態で、画像形成装置が2回目に起動される場合における、CPU、ROMおよび不揮発性RAMの状態を説明するための図である。
【図11】装置構成に変更がない状態で、画像形成装置が2回目に起動される場合における、CPU、ROMおよび不揮発性RAMの他の状態を説明するための図である。
【発明を実施するための形態】
【0014】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図1は、本実施の形態が適用される画像形成システムの構成の一例を示す図である。
この画像形成システムは、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を備えた所謂複合機として動作する画像形成装置1と、画像形成装置1に接続されるネットワーク2と、ネットワーク2に接続される端末装置3と、ネットワーク2に接続されるファクシミリ装置4と、ネットワーク2に接続されるサーバ装置5とを有している。
【0015】
ここで、ネットワーク2は、インターネット回線や電話回線等によって構成されている。また、端末装置3は、ネットワーク2を介して、画像形成装置1に画像の形成等を指示するものであり、例えばPC(Personal Computer)で構成される。さらに、ファクシミリ装置4は、ネットワーク2を介して、画像形成装置1との間でファクシミリを送受信する。さらにまた、サーバ装置5は、ネットワーク2を介して、画像形成装置1との間でデータ(プログラムを含む)を送受信する。
【0016】
また、画像形成装置1は、紙等の記録媒体に記録された画像を読み取る画像読取部10と、紙等の記録媒体に画像を形成する画像形成部20と、ユーザから電源のオン/オフ、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェース(UI)30と、ネットワーク2を介して端末装置3、ファクシミリ装置4およびサーバ装置5との間でデータの送受信を行う送受信部40と、これら画像読取部10、画像形成部20、UI30および送受信部40の動作を制御する制御部50とを備えている。そして、この画像形成装置1では、画像読取部10によってスキャン機能が実現され、画像形成部20によってプリント機能が実現され、画像読取部10および画像形成部20によってコピー機能が実現され、画像読取部10、画像形成部20および送受信部40によってファクシミリ機能が実現される。なお、送受信部40は、例えばインターネット回線用のものと電話回線用のものとを、別々に設けるようにしてもかまわない。
【0017】
図2は、図1に示す画像形成装置1に設けられた制御部50の内部構成の一例を示すハードウェアブロック図である。
情報処理装置の一例としての制御部50は、種々の演算を実行することによって画像形成装置1の各部を制御する実行手段あるいは認識手段の一例としてのCPU(Central Processing Unit:中央処理装置)51と、CPU51に接続され、CPU51との間で各種データのやりとりを行うバスブリッジ52とを備えている。制御部50において、バスブリッジ52には、第1のクロックでデータのやりとりを行うメモリバス53と、第1のクロックよりも周波数が低い第2のクロックでデータのやりとりを行うPCI(Peripheral Component Interconnect)バス54とが接続されている。
【0018】
また、制御部50は、ROM(Read Only Memory)55と、不揮発性RAM(Random Access Memory)56と、揮発性RAM57とを備えている。そして、これらROM55、不揮発性RAM56および揮発性RAM57は、それぞれ、メモリバス53に接続されている。
【0019】
さらに、制御部50は、UI30を制御するためのUIインタフェース回路(UIIF)61と、画像形成部20を制御するためのプリントインタフェース回路(プリントIF)62と、例えば画像形成が行われた記録媒体に後処理を施す後処理装置70など、画像形成装置1に後付けで装着されるオプションユニットを制御するためのオプションインタフェース回路(オプションIF)63と、送受信部40を制御するためのネットワークインタフェース回路(ネットワークIF)64と、USB(Universal Serial Bus)デバイスを制御するためのUSBインタフェース回路(USBIF)65とを備えている。そして、これらUIIF61、プリントIF62、オプションIF63、ネットワークIF64およびUSBIF65は、それぞれ、PCIバス54に接続されている。また、本実施の形態では、USBIF65に対し、画像読取部10が接続されている。なお、USBIF65には、例えば、装着されたメモリカード81に対しデータを読み書きするカードリーダ80が接続されることもある。
【0020】
そして、制御部50は、制御部50を構成する各部(CPU51等)が動作するクロックの基準となる基準クロックを生成するクロックジェネレータ58と、CPU51等の動作に伴って計時を行うタイマ59とをさらに備えている。
【0021】
本実施の形態における制御部50は、例えば、1チップのマイクロコントローラによって構成されている。ただし、制御部50を、複数のチップで構成してもかまわない。
【0022】
また、本実施の形態の制御部50において、CPU51は、ROM55、不揮発性RAM56および揮発性RAM57に直接アクセスすることが可能となっている。以下の説明では、メモリバス53に接続されるROM55、不揮発性RAM56および揮発性RAM57を、まとめて『メインメモリ』と称することがある。
【0023】
ここで、格納手段の一例としてのROM55は、所謂マスクROM、各種PROM(Programmable ROM:例えばOTP ROM (One Time Programmable ROM)、UV−EPROM(Ultra-Violet Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM))、フラッシュメモリなどで構成されている。なお、この例では、ROM55として、フラッシュメモリが用いられている。
【0024】
また、記憶手段の一例としての不揮発性RAM56は、MRAM(Magnetoresistive RAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase change RAM)、ReRAM(Resistance RAM)など、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリによって構成されている。なお、この例では、不揮発性RAM56として、ROM55として用いられるフラッシュメモリよりも高速にデータの読み書きが可能なMRAMが用いられている。
【0025】
さらに、揮発性RAM57は、DRAM(Dynamic RAM)やSRAM(Static RAM)など、電源を供給しないと、記憶している情報を保持することができない揮発性メモリによって構成されている。なお、この例では、揮発性RAM57として、DRAMが用いられている。
【0026】
そして、本実施の形態では、不揮発性RAM56および揮発性RAM57が、ともに第1のクロックでデータの読み書きを行う。このため、不揮発性RAM56は、揮発性RAM57(この例ではDRAM)と同等の読み書き性能を有していることになる。
【0027】
図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とを備えている。
【0028】
ここで、レジスタ群515は、演算ユニット514が次に実行するべき命令を格納するメインメモリ上のアドレスを保持するプログラムカウンタ(PC)515aと、一時的にデータを退避しておくために用意するスタック領域のアドレスを保持するスタックポインタ(SP)515bと、CPU51の状態や演算の状態などを保持するステータスレジスタ(SR)515cと、演算やデータ転送の一次記憶などに使用されるアキュムレータ、メインメモリ上のデータにアクセスするためのアドレスを保持するアドレスレジスタ、さらにはCPU51の動作設定の情報を保持するコントロールレジスタ等として機能する汎用レジスタ515dとを含んでいる。
【0029】
そして、レジスタ群515およびキャッシュメモリ516は、ともに、電源を供給しないと、記憶している情報を保持することができない揮発性メモリによって構成されている。なお、この例では、レジスタ群515およびキャッシュメモリ516として、揮発性RAM57で用いられるDRAMよりも高速にデータの読み書きが可能なSRAMが用いられている。
【0030】
図4は、上述したメインメモリ(ROM55、不揮発性RAM56および揮発性RAM57)によるメモリマップの構成の一例を示す図である。
この例では、ROM55にリセットベクタ領域A01および圧縮プログラム領域A02が配置され、不揮発性RAM56にプログラム/変数領域A11および履歴領域A12が配置され、揮発性RAM57にワーク領域A21およびバッファ領域A22が配置されている。また、不揮発性RAM56に配置される履歴領域A12は、起動フラグ領域A12aと、構成ステータス領域A12bと、ログ領域A12cとを有している。
【0031】
これらのうち、ROM55に配置されるリセットベクタ領域A01は、画像形成装置1を起動するにあたり、制御部50においてCPU51が実行するプログラムである、イニシャル・プログラム・ローダ(Initial Program Loader:IPL)を格納している。また、ROM55に配置される圧縮プログラム領域A02は、本実施の形態の画像形成装置1に実装され得る各構成に対応したプログラムおよびこのプログラムで用いられる変数(以下では、これらを『プログラム/変数』と称する)を、構成毎にまとめて圧縮した状態で格納している。例えば図4に示す例では、圧縮プログラム領域A02に、構成Aを動作させるためのプログラム/変数を圧縮した圧縮プログラム(構成A用圧縮プログラム)、構成Bを動作させるためのプログラム/変数を圧縮した圧縮プログラム(構成B用圧縮プログラム)、構成Cを動作させるためのプログラム/変数を圧縮した圧縮プログラム(構成C用圧縮プログラム)、構成Dを動作させるためのプログラム/変数を圧縮した圧縮プログラム(構成D用圧縮プログラム)、…、を格納している。なお、ここでいう構成A〜構成Dは、上述した画像読取部10、画像形成部20、UI30、送受信部40、後処理装置70、そしてカードリーダ80等のそれぞれに対応するものであり、画像形成装置1の本体に対し着脱可能であって、画像形成装置1に装着された場合には、単独であるいは他の構成部とともに、予め決められた機能を発揮するものである。
【0032】
このように、本実施の形態では、実際に使用する際の画像形成装置1の構成(図1に示す画像形成装置1は後処理装置70を備えていない)とは関係なく、この画像形成装置1に実装され得る各構成に対応した複数の圧縮プログラムを、ROM55に配置された圧縮プログラム領域A02に、予め格納させている。これにより、画像形成装置1の装置構成の変更に伴って、ROM55を交換したり、あるいは、ROM55に格納されるプログラムの更新を行ったりしなくてもよいようにしている。
【0033】
次に、不揮発性RAM56に配置されるプログラム/変数領域A11は、上述した圧縮プログラム領域A02から読み出した圧縮プログラムを、CPU51が伸張することによって得たプログラム/変数を格納する。また、不揮発性RAM56に配置される履歴領域A12のうち、起動フラグ領域A12aは、画像形成装置1が過去に起動されたことがあるか否かを示すフラグを格納する。ここで、起動フラグ領域A12aには、画像形成装置1が過去に起動されている場合には「オン(1)」が格納され、画像形成装置1が過去に起動されていない場合には「オフ(0)」が格納される。さらに、不揮発性RAM56に配置される履歴領域A12のうち、構成ステータス領域A12bは、画像形成装置が前回起動された際の装置構成(以下では、『前回の装置構成』と称する)を、構成ステータスとして格納する。ここで、構成ステータス領域A12bには、この画像形成装置1に装着され得る各構成に対し、その構成が存在している場合には「オン(1)」が格納され、その構成が存在していない場合には「オフ(0)」が格納される。さらにまた、不揮発性RAM56に配置される履歴領域A12のうち、ログ領域A12cは、画像形成装置1が受けた指示の内容、装置構成が変更された際の内容、さらには発生したエラーの内容等を、ログデータとして格納する。
【0034】
そして、揮発性RAM57に配置されるワーク領域A21は、CPU51によるプログラムの実行に伴って一時的に発生するデータを格納する。また、揮発性RAM57に配置されるバッファ領域A22は、CPU51によるデータ処理に伴って、画像形成装置の各構成要素に対して出力される指示(PCIバス54を介して各IFに出力されるデータ)に関するデータを格納する。
【0035】
図5は、図1に示す画像形成装置1の起動処理を説明するためのフローチャートである。なお、この起動処理は、例えばUI30を介して画像形成装置1の電源が投入されることに伴ってCPU51にリセット指示が入力されたとき、また、画像形成装置1の電源が投入された後に何らかの理由によりCPU51にリセット指示が入力されたとき、などに実行される。
【0036】
制御部50に設けられたCPU51がリセット指示を受け付けると(ステップ1)、CPU51は、自身のリセット(CPUリセット)を実行する(ステップ2)。このとき、CPUリセットに伴って、CPU51に設けられたレジスタ群515およびキャッシュメモリ516(ともに揮発性メモリで構成される)の記憶内容もクリアされる。また、CPUリセットに伴って、制御部50に設けられた揮発性RAM57の記憶内容もクリアされる。一方、CPUリセットが実行されても、制御部50に設けられたROM55および不揮発性RAM57の記憶内容はクリアされず、CPUリセット前の記憶内容がそのまま保持される。
【0037】
続いて、CPU51は、バスブリッジ52およびメモリバス53を介して、ROM55のリセットベクタ領域A01に格納されるイニシャル・プログラム・ローダ(IPL)を読み出すとともに、読み出したIPLを実行し(ステップ3)、画像形成装置1に実装された各構成が使用可能となるように動作準備を行う。そして、画像形成装置1の動作準備が完了する(ステップ4)ことで、一連の起動処理を終了する。
【0038】
続いて、上述したステップ3におけるIPLの実行について、より詳細に説明する。
図6は、IPLの実行に伴う処理の手順を説明するためのフローチャートである。
IPLの実行に伴い、CPU51は、最初に、バスブリッジ52およびPCIバス54を介して接続されている各IF(この例では、UIIF61、プリントIF62、オプションIF63、ネットワークIF64およびUSBIF65)を用いて、画像形成装置1の装置構成を検出する(ステップ11)。なお、ステップ11では、例えば各IFにコネクタ等が物理的に接続されているか否かを検出するハードウェア的な手法を用いてもよいし、また、例えば各IFを介して接続対象と通信が行えるか否かを検出するソフトウェア的な手法を用いてもよい。
【0039】
続いて、CPU51は、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aから、起動フラグを読み出して取得する(ステップ12)。そして、CPU51は、起動フラグがオフ(0)であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断する(ステップ13)。
【0040】
ステップ13において肯定の判断(Yes)を行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、CPU51は、続いて、ステップ11で検出した今回の装置構成に基づき、ROM55の圧縮プログラム領域A02から、今回の装置構成の中に含まれる1つの構成に対応する圧縮プログラムを読み出し(ステップ14)、ステップ14で読み出した圧縮プログラムを展開し(ステップ15)、ステップ15で圧縮プログラムを展開して得られたプログラム/変数を、不揮発性RAM56におけるプログラム/変数領域A11に格納する(ステップ16)。その後、ステップ11で検出した今回の装置構成について、全構成に対応するプログラム/変数の、プログラム/変数領域A11への格納が完了したか否かを判断する(ステップ17)。ステップ17において否定の判断(No)を行った場合は、ステップ14に戻り、今回の装置構成における残りの構成に対応する圧縮プログラムの読み出し、読み出した圧縮プログラムの展開、そして展開によって得られたプログラム/変数の格納を続けて行う。
【0041】
一方、ステップ17において肯定の判断(Yes)を行った場合、CPU51は、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとして「オン(1)」を格納させる(ステップ18)。続いて、CPU51は、ステップ11で検出した今回の装置構成の内容を反映させた変更ログを作成し、作成した変更ログを履歴領域A12のログ領域A12cに格納する(ステップ19)。さらに、CPU51は、ステップ11で検出した今回の装置構成について、存在する構成を「オン(1)」、存在しない構成を「オフ(0)」とした構成ステータスを、履歴領域A12の構成ステータス領域A12bに格納する(ステップ20)。そして、後述するステップ25に進む。
【0042】
また、上述したステップ13において否定の判断(No)を行った場合、すなわち、今回の起動処理が2回目以降の起動処理であった場合、CPU51は、不揮発性RAM56の履歴領域A12における構成ステータス領域A12bから、構成ステータスを読み出して取得し(ステップ21)、ステップ11で検出した今回の装置構成が、ステップ21で取得した構成ステータスすなわち前回の装置構成から変更されているか否かを判断する(ステップ22)。
【0043】
ステップ22において否定の判断(No)を行った場合、すなわち、前回の装置構成と今回の装置構成とが同じである場合、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納される各プログラム/変数に対してエラーチェックを実行する(ステップ23)。なお、ステップ23で実行されるエラーチェックの手法としては、例えばCRC(Cyclic Redundancy Check:巡回冗長検査)が挙げられる。そして、CPU51は、ステップ23でエラーチェックを実行した結果に基づき、不揮発性RAM56のプログラム/変数領域A11に格納される各プログラム/変数においてエラーが発生しているか否かを、プログラム毎に判断する(ステップ24)。
【0044】
ステップ24において否定の判断(No)を行った場合、および、上述したステップ20における処理を行った後、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納された各プログラム/変数を用いて処理を行うことにより、画像形成装置1の初期設定を行い(ステップ25)、IPLの実行を完了する。
【0045】
一方、上述したステップ22において肯定の判断(Yes)を行った場合、すなわち、前回の装置構成と今回の装置構成とが相違していた場合、CPU51は、前回の装置構成から今回の装置構成に至る変更内容を反映させた変更ログを作成し、作成した変更ログを履歴領域A12のログ領域A12cに格納する(ステップ26)。続いて、CPU51は、起動フラグをリセットし(ステップ27)、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとして「オフ(0)」を格納させた状態で、ステップ14に移行する。
【0046】
これにより、前回の起動処理と今回の起動処理とにおいて装置構成に変更があった場合は、ステップ11で検出した今回の装置構成に基づき、各構成に対応するプログラム/変数が、再度、不揮発性RAM56のプログラム/変数領域A11に書き込まれる。このとき、新たに書き込まれるプログラム/変数は、今回の起動処理よりも前の起動処理において、プログラム/変数領域A11に既に書き込まれていたプログラム/変数に上書きされる。
【0047】
他方、上述したステップ24において肯定の判断を行った場合、すなわち、不揮発性RAM56のプログラム/変数領域A11に格納されるいずれかのプログラム/変数においてエラーが発生した場合、CPU51は、どのプログラムにおいてエラーが発生しているのかを反映させたエラーログを作成し、作成したエラーログを履歴領域A12のログ領域A12cに格納する(ステップ28)。続いて、CPU51は、起動フラグをリセットし(ステップ29)、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとして「オフ(0)」を格納させた状態で、ステップ14に移行する。
【0048】
これにより、今回の起動処理よりも前の起動処理において不揮発性RAM56のプログラム/変数領域A11に記憶されていたプログラム/変数にエラー(異常)が生じていた場合は、ステップ11で検出した今回の装置構成に基づき、各構成に対応するプログラム/変数が、再度、不揮発性RAM56のプログラム/変数領域A11に書き込まれる。このとき、新たに書き込まれるプログラム/変数は、今回の起動処理よりも前の起動処理において、プログラム/変数領域A11に既に書き込まれていたプログラム/変数に上書きされる。
【0049】
次に、図6に示すIPLの実行に伴う処理の手順について、具体的に例を挙げながら説明する。
【0050】
<最初の起動>
図7は、画像形成装置1が初めて起動される場合(初回起動時)における、CPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図7(a)はIPLの実行中における状態を例示しており、図7(b)はIPLの実行が完了した状態を例示している。なお、ここでは、初回起動時において、構成A、構成Bおよび構成Cが接続されているものとする。
【0051】
図7(a)に示すように、初回の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには起動フラグ(Flag)として「0」が格納されており、構成ステータス領域A12bには構成ステータスとして、「A=B=C=D=0」が格納されている。また、図7(a)に示すように、初回の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11およびログ領域A12cは、ともに空の状態となっている。
【0052】
CPU51は、ステップ11において、図7(a)に示すように、構成A、構成Bおよび構成Cを検出する(A=B=C=1、D=0)。また、CPU51は、ステップ12において、起動フラグ領域12aから起動フラグとして「0」を取得する。これにより、CPU51は、ステップ13において肯定の判断を行う。
【0053】
続いて、CPU51は、ステップ11で検出した今回の構成(A=B=C=1、D=0)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム(図7(a)では「A(圧縮)」)を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図7(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。続いて、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図7(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
【0054】
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図7(b)に示すように、構成A用のプログラム/変数(図7(b)では「A(展開)」)、構成B用のプログラム/変数(図7(b)では「B(展開)」)、および構成C用のプログラム/変数(図7(b)では「C(展開)」)が、それぞれ格納されることになる。
【0055】
その後、CPU51は,ステップ18において、図7(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログ(履歴)を格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=B=C=1、D=0」を格納する。
【0056】
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。
【0057】
<2回目以降の起動:その1>
図8は、図7に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、装置構成の変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図8(a)はIPLの実行中における状態を例示しており、図8(b)はIPLの実行が完了した状態を例示している。
【0058】
図8(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図8(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。
【0059】
CPU51は、ステップ11において、図8(a)に示すように、構成A、構成Bおよび構成Cを検出する(A=B=C=1、D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
【0060】
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致することから、ステップ22において否定の判断を行う。
【0061】
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、すべてのプログラム/変数においてエラーが発生しなかったことにより、CPU51が、ステップ24において肯定の判断を行っているものとする。
【0062】
その後、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。
【0063】
このように、今回の構成が前回の構成から変更されていない場合は、起動時に各構成に対応する圧縮プログラムの読み出し、展開および格納を行わずに、前回までの起動において、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラムをそのまま実行することで、起動処理にかかる時間の短縮化を図る。
【0064】
<2回目以降の起動:その2>
図9は、図7に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成A〜Cにさらに構成Dを追加する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図9(a)はIPLの実行中における状態を例示しており、図9(b)はIPLの実行が完了した状態を例示している。
【0065】
図9(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図9(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。
【0066】
CPU51は、ステップ11において、図9(a)に示すように、構成A、構成Bおよび構成Cに加えて、構成Dも検出する(A=B=C=D=1)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
【0067】
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ22において肯定の判断を行う。
【0068】
次に、CPU51は、ステップ26において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「0」を格納した後、ステップ14に移行する。
【0069】
それから、CPU51は、ステップ11で検出した今回の構成(A=B=C=D=1)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム(図9(a)では「A(圧縮)」)を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図9(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。続いて、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図9(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。さらに、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Dに対応する構成D用圧縮プログラム(図9(a)では「D(圧縮)」)を読み出し、読み出した構成D用圧縮プログラムを展開し、展開によって得られた構成D用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
【0070】
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図9(b)に示すように、新たに、構成A用のプログラム/変数(図9(b)では「A(展開)」)、構成B用のプログラム/変数(図9(b)では「B(展開)」)、構成C用のプログラム/変数(図9(b)では「C(展開)」)、および構成D用のプログラム/変数(図9(b)では「D(展開)」)が、それぞれ格納(上書き)されることになる。
【0071】
その後、CPU51は,ステップ18において、図9(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=B=C=D=1」を格納する。
【0072】
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラム、構成C用のプログラムおよび構成D用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成B、構成Cおよび構成Dが使用可能な状態となる。
【0073】
このように、今回の構成が前回の構成から変更されている場合(構成が追加された場合)は、起動処理時に今回検出した各構成に対応する圧縮プログラムの読み出し、展開および格納を行い、不揮発性RAM56に配置されたプログラム/変数領域A11に新たに格納された各プログラムを実行することで、今回の構成での動作が可能となる。
【0074】
<2回目以降の起動:その3>
図10は、図7に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成Aを削減する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図10(a)はIPLの実行中における状態を例示しており、図10(b)はIPLの実行が完了した状態を例示している。
【0075】
図10(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図10(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。
【0076】
CPU51は、ステップ11において、図10(a)に示すように、構成Bおよび構成Cを検出する(A=0、B=C=1、D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
【0077】
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ21において肯定の判断を行う。
【0078】
次に、CPU51は、ステップ26において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ27において、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「0」を格納した後、ステップ14に移行する。
【0079】
それから、CPU51は、ステップ11で検出した今回の構成(A=0、B=C=1、D=0)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図10(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図9(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
【0080】
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図10(b)に示すように、新たに、構成B用のプログラム/変数(図10(b)では「B(展開)」)、および構成C用のプログラム/変数(図10(b)では「C(展開)」)が、それぞれ格納(上書き)されることになる。
【0081】
その後、CPU51は,ステップ18において、図10(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=0、B=C=1、D=0」を格納する。
【0082】
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成Bおよび構成Cが使用可能な状態となる。
【0083】
このように、今回の構成が前回の構成から変更されている場合(構成が削減された場合)は、起動処理時に今回検出した各構成に対応する圧縮プログラムの読み出し、展開および格納を行い、不揮発性RAM56に配置されたプログラム/変数領域A11に新たに格納された各プログラムを実行することで、今回の構成での動作が可能となる。
【0084】
<2回目以降の起動:その4>
図11は、図7に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、装置構成の変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の他の状態を説明するための図である。ここで、図11(a)はIPLの実行中における状態を例示しており、図11(b)はIPLの実行が完了した状態を例示している。
【0085】
図11(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図7に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図7に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図11(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図7に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図7に示す初回の起動に伴い変更ログが格納されている。
【0086】
CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致することから、ステップ22において否定の判断を行う。
【0087】
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、構成B用のプログラム/変数においてエラーが発生したことにより、CPU51が、ステップ24において否定の判断を行っているものとする。
【0088】
次に、CPU51は、ステップ28において、不揮発性RAM56に配置されたログ領域A12cにエラーログを格納し、さらに、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「0」を格納した後、ステップ14に移行する。
【0089】
それから、CPU51は、ステップ11で検出した今回の構成(A=B=C=1、D=0)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム(図11(a)では「A(圧縮)」)を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図11(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。続いて、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図11(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
【0090】
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図11(b)に示すように、再び、構成A用のプログラム/変数(図11(b)では「A(展開)」)、構成B用のプログラム/変数(図11(b)では「B(展開)」)、および構成C用のプログラム/変数(図9(b)では「C(展開)」)が、それぞれ格納(上書き)されることになる。
【0091】
その後、CPU51は,ステップ18において、図11(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=B=C=1、D=0」を格納する。
【0092】
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。
【0093】
このように、今回の構成が前回の構成から変更されていない場合であっても、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラムのいずれかにエラーが発生した状況下においては、、起動処理時に今回検出した各構成に対応する圧縮プログラムの読み出し、展開および格納を行い、不揮発性RAM56に配置されたプログラム/変数領域A11に再び格納された各プログラムを実行することで、今回の構成での動作が可能となる。
【0094】
ここで、上述した説明では、構成の追加あるいは削減に伴って、装置構成が変更される場合を例としたが、例えば接触不良や装置故障など、実際の装置構成が変更されていないにも関わらず、特定の構成を検出できないような場合も生じ得る。本実施の形態で説明した手法を用いれば、このような理由によって装置構成の変更が生じた場合であっても、使用可能な残りの構成で構築された装置を動作させるためのプログラムを再構成することが可能になる。
【0095】
なお、本実施の形態では、各圧縮プログラムを格納する圧縮プログラム領域A02を、不揮発性RAM57に配置していたが、これに限られるものではない。すなわち、圧縮プログラム領域A02を、例えば画像形成装置1にネットワーク2を介して接続されるサーバ装置5(図1参照)や、USBIF65に接続されたカードリーダ80に配置されるメモリカード81に配置するようにしてもよい。なお、このような場合には、IPLの実行時において、各圧縮プログラムの読み取り対象を、サーバ装置5あるいはカードリーダ80に装着されたメモリカードに設定すればよい。
【0096】
また、本実施の形態では、不揮発性RAM56にプログラム/変数領域A11および履歴領域A12を配置するとともに、揮発性RAM57にワーク領域A21およびバッファ領域A22を配置するようにしていたが、これに限られるものではなく、例えば不揮発性RAM56のみを設け、この不揮発性RAM56にプログラム/変数領域A11、履歴領域A12、ワーク領域A21およびバッファ領域A22を配置するようにしてもかまわない。
【0097】
さらに、本実施の形態では、制御部50を画像形成装置1に組み込んだ場合を例として説明を行ったが、これに限られるものではなく、複数のユニットの組み合わせによって構成され、これら複数のユニットの着脱に伴って構成が変更され得る装置に適用しても差し支えない。
【符号の説明】
【0098】
1…画像形成装置、2…ネットワーク、3…端末装置、4…ファクシミリ装置、5…サーバ装置、10…画像読取部、20…画像形成部、30…UI、40…送受信部、50…制御部、51…CPU、52…バスブリッジ、53…メモリバス、54…PCIバス、55…ROM、56…不揮発性RAM、57…揮発性RAM、58…クロックジェネレータ、59…タイマ、61…UIIF、62…プリントIF、63…オプションIF、64…ネットワークIF、65…USBIF、70…後処理装置、80…カードリーダ、81…メモリカード、511…バスコントロールユニット、512…CPU内部バス、513…制御ユニット、514…演算ユニット、515…レジスタ群、516…キャッシュメモリ、517…メモリ管理ユニット
【特許請求の範囲】
【請求項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】
転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、
前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と
を含み、
前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第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】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−4042(P2013−4042A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−137919(P2011−137919)
【出願日】平成23年6月22日(2011.6.22)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願日】平成23年6月22日(2011.6.22)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]