JP2013004043A - 情報処理装置、画像形成装置およびプログラム - Google Patents
情報処理装置、画像形成装置およびプログラム Download PDFInfo
- Publication number
- JP2013004043A JP2013004043A JP2011137920A JP2011137920A JP2013004043A JP 2013004043 A JP2013004043 A JP 2013004043A JP 2011137920 A JP2011137920 A JP 2011137920A JP 2011137920 A JP2011137920 A JP 2011137920A JP 2013004043 A JP2013004043 A JP 2013004043A
- Authority
- JP
- Japan
- Prior art keywords
- program
- configuration
- stored
- variable
- area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とする。
【解決手段】初回の起動において、CPU51は、ROM55から読み出した圧縮プログラムを展開して不揮発性RAM56に格納した後、不揮発性RAM56からプログラムを読み出し実行することで起動処理を行う。2回目以降の起動において、CPU51は、装置構成の変更がない場合は、不揮発性RAM56から読み出したプログラムをそのまま実行することで起動処理を行い、装置構成が一部追加される変更があった場合は、既にプログラムが格納された不揮発性RAM56に、追加された構成に対応するプログラムを追加して格納した後、不揮発性RAM56からプログラムを読み出し実行することで起動処理を行う。
【選択図】図2
【解決手段】初回の起動において、CPU51は、ROM55から読み出した圧縮プログラムを展開して不揮発性RAM56に格納した後、不揮発性RAM56からプログラムを読み出し実行することで起動処理を行う。2回目以降の起動において、CPU51は、装置構成の変更がない場合は、不揮発性RAM56から読み出したプログラムをそのまま実行することで起動処理を行い、装置構成が一部追加される変更があった場合は、既にプログラムが格納された不揮発性RAM56に、追加された構成に対応するプログラムを追加して格納した後、不揮発性RAM56からプログラムを読み出し実行することで起動処理を行う。
【選択図】図2
Description
本発明は、情報処理装置、画像形成装置およびプログラムに関する。
公報記載の従来技術として、主記憶装置の一部を構成する不揮発性記憶部に予め記憶された主記憶イメージからシステムの起動を行うとともに、不揮発性記憶部上の主記憶イメージのブロック毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーし、そのコピー上で書き込みを行い、以後、コピー済の主記憶イメージの領域へのアクセスを、コピーへのアクセスに切り替えるようにした計算機システムが存在する(特許文献1参照)。
また、他の公報記載の従来技術として、読み書き可能な不揮発性メモリデバイスの領域を細分化するとともに、不揮発性メモリデバイスの対象領域にデータを書き込む前に、この対象領域に既に書き込まれているデータを他の領域に退避させ、さらに、不揮発性メモリデバイスにおける複数の領域にまたがるデータの書き込みが発生した場合には、これら複数の領域に既に書き込まれているデータを、他の領域に同時にバックアップさせるようにしたコンピュータ装置が存在する(特許文献2参照)。
本発明は、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることを目的とする。
請求項1記載の発明は、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されるプログラムを読み出して実行する第2の手順と、既にプログラムが記憶された当該記憶手段へのさらなるプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第3の手順とを有し、前記認識手段にて接続される機器を最初に検出した場合には当該第1の手順を実行し、当該認識手段にて接続される機器の変更を検出しない場合には当該第2の手順を実行し、当該認識手段にて接続される機器の変更を検出した場合には当該第3の手順を実行することを特徴とする情報処理装置である。
請求項2記載の発明は、前記実行手段は、前記認識手段にて接続される機器の変更を検出した場合において、当該機器の変更量が予め決められた閾値以上となった場合には前記第1の手順を実行することを特徴とする請求項1記載の情報処理装置である。
請求項3記載の発明は、前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項1または2記載の情報処理装置である。
請求項4記載の発明は、前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1乃至3のいずれか1項記載の情報処理装置である。
請求項2記載の発明は、前記実行手段は、前記認識手段にて接続される機器の変更を検出した場合において、当該機器の変更量が予め決められた閾値以上となった場合には前記第1の手順を実行することを特徴とする請求項1記載の情報処理装置である。
請求項3記載の発明は、前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項1または2記載の情報処理装置である。
請求項4記載の発明は、前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1乃至3のいずれか1項記載の情報処理装置である。
請求項5記載の発明は、記録材に画像を形成する画像形成部と、前記画像形成部の動作を制御する制御部とを備え、前記制御部は、前記画像形成部の制御に用いるために転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、前記不揮発性メモリに記憶されるプログラムを読み出して実行する実行手段と、接続される機器を認識する認識手段とを含み、前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されるプログラムを読み出して実行する第2の手順と、既にプログラムが記憶された当該記憶手段へのさらなるプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第3の手順とを有し、前記認識手段にて接続される機器を最初に検出した場合には当該第1の手順を実行し、当該認識手段にて接続される機器の変更を検出しない場合には当該第2の手順を実行し、当該認識手段にて接続される機器の変更を検出した場合には当該第3の手順を実行することを特徴とする画像形成装置である。
請求項6記載の発明は、コンピュータに、転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、前記不揮発性メモリに記憶されるプログラムを読み出して実行させる機能と、接続される機器を認識する機能と、前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されるプログラムを読み出して実行する第2の手順と、既にプログラムが記憶された当該不揮発性メモリへのさらなるプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第3の手順とを有し、接続される機器を最初に検出した場合には当該第1の手順を実行させ、接続される機器の変更を検出しない場合には当該第2の手順を実行させ、接続される機器の変更を検出した場合には当該第3の手順を実行させる機能とを実現させるプログラムである。
請求項1記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項2記載の発明によれば、本構成を有しない場合と比較して、起動処理で使用するプログラムの断片化を抑制することができる。
請求項3記載の発明によれば、本構成を有しない場合と比較して、起動処理をさらに高速化することができる。
請求項4記載の発明によれば、例えば不揮発性メモリとしてEEPROMあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。
請求項5記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項6記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項2記載の発明によれば、本構成を有しない場合と比較して、起動処理で使用するプログラムの断片化を抑制することができる。
請求項3記載の発明によれば、本構成を有しない場合と比較して、起動処理をさらに高速化することができる。
請求項4記載の発明によれば、例えば不揮発性メモリとしてEEPROMあるいはフラッシュメモリを用いた場合と比較して、不揮発性メモリからのプログラムの読み取りをより高速に行うことができる。
請求項5記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
請求項6記載の発明によれば、本構成を有していない場合と比較して、プログラムの読み出しおよび実行を伴う起動処理の高速化を図るとともに、起動処理で使用するプログラムの書き換えを可能とすることができる。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図1は、本実施の形態が適用される画像形成システムの構成の一例を示す図である。
この画像形成システムは、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を備えた所謂複合機として動作する画像形成装置1と、画像形成装置1に接続されるネットワーク2と、ネットワーク2に接続される端末装置3と、ネットワーク2に接続されるファクシミリ装置4と、ネットワーク2に接続されるサーバ装置5とを有している。
図1は、本実施の形態が適用される画像形成システムの構成の一例を示す図である。
この画像形成システムは、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を備えた所謂複合機として動作する画像形成装置1と、画像形成装置1に接続されるネットワーク2と、ネットワーク2に接続される端末装置3と、ネットワーク2に接続されるファクシミリ装置4と、ネットワーク2に接続されるサーバ装置5とを有している。
ここで、ネットワーク2は、インターネット回線や電話回線等によって構成されている。また、端末装置3は、ネットワーク2を介して、画像形成装置1に画像の形成等を指示するものであり、例えばPC(Personal Computer)で構成される。さらに、ファクシミリ装置4は、ネットワーク2を介して、画像形成装置1との間でファクシミリを送受信する。さらにまた、サーバ装置5は、ネットワーク2を介して、画像形成装置1との間でデータ(プログラムを含む)を送受信する。
また、画像形成装置1は、紙等の記録媒体に記録された画像を読み取る画像読取部10と、紙等の記録媒体に画像を形成する画像形成部20と、ユーザから電源のオン/オフ、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェース(UI)30と、ネットワーク2を介して端末装置3、ファクシミリ装置4およびサーバ装置5との間でデータの送受信を行う送受信部40と、これら画像読取部10、画像形成部20、UI30および送受信部40の動作を制御する制御部50とを備えている。そして、この画像形成装置1では、画像読取部10によってスキャン機能が実現され、画像形成部20によってプリント機能が実現され、画像読取部10および画像形成部20によってコピー機能が実現され、画像読取部10、画像形成部20および送受信部40によってファクシミリ機能が実現される。なお、送受信部40は、例えばインターネット回線用のものと電話回線用のものとを、別々に設けるようにしてもかまわない。
図2は、図1に示す画像形成装置1に設けられた制御部50の内部構成の一例を示すハードウェアブロック図である。
情報処理装置の一例としての制御部50は、種々の演算を実行することによって画像形成装置1の各部を制御する実行手段あるいは認識手段の一例としてのCPU(Central Processing Unit:中央処理装置)51と、CPU51に接続され、CPU51との間で各種データのやりとりを行うバスブリッジ52とを備えている。制御部50において、バスブリッジ52には、第1のクロックでデータのやりとりを行うメモリバス53と、第1のクロックよりも周波数が低い第2のクロックでデータのやりとりを行うPCI(Peripheral Component Interconnect)バス54とが接続されている。
情報処理装置の一例としての制御部50は、種々の演算を実行することによって画像形成装置1の各部を制御する実行手段あるいは認識手段の一例としてのCPU(Central Processing Unit:中央処理装置)51と、CPU51に接続され、CPU51との間で各種データのやりとりを行うバスブリッジ52とを備えている。制御部50において、バスブリッジ52には、第1のクロックでデータのやりとりを行うメモリバス53と、第1のクロックよりも周波数が低い第2のクロックでデータのやりとりを行うPCI(Peripheral Component Interconnect)バス54とが接続されている。
また、制御部50は、ROM(Read Only Memory)55と、不揮発性RAM(Random Access Memory)56と、揮発性RAM57とを備えている。そして、これらROM55、不揮発性RAM56および揮発性RAM57は、それぞれ、メモリバス53に接続されている。
さらに、制御部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が接続されることもある。
そして、制御部50は、制御部50を構成する各部(CPU51等)が動作するクロックの基準となる基準クロックを生成するクロックジェネレータ58と、CPU51等の動作に伴って計時を行うタイマ59とをさらに備えている。
本実施の形態における制御部50は、例えば、1チップのマイクロコントローラによって構成されている。ただし、制御部50を、複数のチップで構成してもかまわない。
また、本実施の形態の制御部50において、CPU51は、ROM55、不揮発性RAM56および揮発性RAM57に直接アクセスすることが可能となっている。以下の説明では、メモリバス53に接続されるROM55、不揮発性RAM56および揮発性RAM57を、まとめて『メインメモリ』と称することがある。
ここで、格納手段の一例としてのROM55は、所謂マスクROM、各種PROM(Programmable ROM:例えばOTP ROM (One Time Programmable ROM)、UV−EPROM(Ultra-Violet Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM))、フラッシュメモリなどで構成されている。なお、この例では、ROM55として、フラッシュメモリが用いられている。
また、記憶手段の一例としての不揮発性RAM56は、MRAM(Magnetoresistive RAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase change RAM)、ReRAM(Resistance RAM)など、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリによって構成されている。なお、この例では、不揮発性RAM56として、ROM55として用いられるフラッシュメモリよりも高速にデータの読み書きが可能なMRAMが用いられている。
さらに、揮発性RAM57は、DRAM(Dynamic RAM)やSRAM(Static RAM)など、電源を供給しないと、記憶している情報を保持することができない揮発性メモリによって構成されている。なお、この例では、揮発性RAM57として、DRAMが用いられている。
そして、本実施の形態では、不揮発性RAM56および揮発性RAM57が、ともに第1のクロックでデータの読み書きを行う。このため、不揮発性RAM56は、揮発性RAM57(この例ではDRAM)と同等の読み書き性能を有していることになる。
図3は、図2に示す制御部50に設けられたCPU51の内部構成の一例を示すハードウェアブロック図である。
本実施の形態のCPU51は、制御部50に設けられたバスブリッジ52と接続され、バスブリッジ52との間で各種データのやりとりを行うバスコントロールユニット511と、バスコントロールユニット511に接続され、CPU51内において上述した第1のクロックよりも周波数が高い第3のクロックで各種データのやりとりを行うCPU内部バス512とを備えている。またCPU51は、CPU51内の各部を制御する制御ユニット513と、読み出したプログラムにしたがって各種演算を実行する演算ユニット514と、演算ユニット514が実行するプログラムが格納されたアドレスの保持、演算ユニット514による演算結果の保持、さらにはメインメモリ(ROM55、不揮発性RAM56および揮発性RAM57)との間でデータのやりとりを行う際のアドレスの保持を行うための各種レジスタを備えたレジスタ群515と、演算ユニット514による演算結果を一時的に保持するキャッシュメモリ516と、CPU51が要求するメモリアクセスを処理するメモリ管理ユニット517とを備えている。
本実施の形態のCPU51は、制御部50に設けられたバスブリッジ52と接続され、バスブリッジ52との間で各種データのやりとりを行うバスコントロールユニット511と、バスコントロールユニット511に接続され、CPU51内において上述した第1のクロックよりも周波数が高い第3のクロックで各種データのやりとりを行うCPU内部バス512とを備えている。またCPU51は、CPU51内の各部を制御する制御ユニット513と、読み出したプログラムにしたがって各種演算を実行する演算ユニット514と、演算ユニット514が実行するプログラムが格納されたアドレスの保持、演算ユニット514による演算結果の保持、さらにはメインメモリ(ROM55、不揮発性RAM56および揮発性RAM57)との間でデータのやりとりを行う際のアドレスの保持を行うための各種レジスタを備えたレジスタ群515と、演算ユニット514による演算結果を一時的に保持するキャッシュメモリ516と、CPU51が要求するメモリアクセスを処理するメモリ管理ユニット517とを備えている。
ここで、レジスタ群515は、演算ユニット514が次に実行するべき命令を格納するメインメモリ上のアドレスを保持するプログラムカウンタ(PC)515aと、一時的にデータを退避しておくために用意するスタック領域のアドレスを保持するスタックポインタ(SP)515bと、CPU51の状態や演算の状態などを保持するステータスレジスタ(SR)515cと、演算やデータ転送の一次記憶などに使用されるアキュムレータ、メインメモリ上のデータにアクセスするためのアドレスを保持するアドレスレジスタ、さらにはCPU51の動作設定の情報を保持するコントロールレジスタ等として機能する汎用レジスタ515dとを含んでいる。
そして、レジスタ群515およびキャッシュメモリ516は、ともに、電源を供給しないと、記憶している情報を保持することができない揮発性メモリによって構成されている。なお、この例では、レジスタ群515およびキャッシュメモリ516として、揮発性RAM57で用いられるDRAMよりも高速にデータの読み書きが可能なSRAMが用いられている。
図4は、上述したメインメモリ(ROM55、不揮発性RAM56および揮発性RAM57)によるメモリマップの構成の一例を示す図である。
この例では、ROM55にリセットベクタ領域A01および圧縮プログラム領域A02が配置され、不揮発性RAM56にプログラム/変数領域A11および履歴領域A12が配置され、揮発性RAM57にワーク領域A21およびバッファ領域A22が配置されている。また、不揮発性RAM56に配置される履歴領域A12は、起動フラグ領域A12aと、構成ステータス領域A12bと、ログ領域A12cとを有している。
この例では、ROM55にリセットベクタ領域A01および圧縮プログラム領域A02が配置され、不揮発性RAM56にプログラム/変数領域A11および履歴領域A12が配置され、揮発性RAM57にワーク領域A21およびバッファ領域A22が配置されている。また、不揮発性RAM56に配置される履歴領域A12は、起動フラグ領域A12aと、構成ステータス領域A12bと、ログ領域A12cとを有している。
これらのうち、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に装着された場合には、単独であるいは他の構成部とともに、予め決められた機能を発揮するものである。
このように、本実施の形態では、実際に使用する際の画像形成装置1の構成(図1に示す画像形成装置1は後処理装置70を備えていない)とは関係なく、この画像形成装置1に実装され得る各構成に対応した複数の圧縮プログラムを、ROM55に配置された圧縮プログラム領域A02に、予め格納させている。これにより、画像形成装置1の装置構成の変更に伴って、ROM55を交換したり、あるいは、ROM55に格納されるプログラムの更新を行ったりしなくてもよいようにしている。
次に、不揮発性RAM56に配置されるプログラム/変数領域A11は、上述した圧縮プログラム領域A02から読み出した圧縮プログラムを、CPU51が伸張することによって得たプログラム/変数を格納する。また、不揮発性RAM56に配置される履歴領域A12のうち、起動フラグ領域A12aは、画像形成装置1が過去に起動されたことがあるか否かを示すフラグを格納する。ここで、起動フラグ領域A12aには、画像形成装置1が過去に起動されている場合には「オン(1)」が格納され、画像形成装置1が過去に起動されていない場合には「オフ(0)」が格納される。さらに、不揮発性RAM56に配置される履歴領域A12のうち、構成ステータス領域A12bは、画像形成装置が前回起動された際の装置構成(以下では、『前回の装置構成』と称する)を、構成ステータスとして格納する。ここで、構成ステータス領域A12bには、この画像形成装置1に装着され得る各構成に対し、その構成が存在している場合には「オン(1)」が格納され、その構成が存在していない場合には「オフ(0)」が格納される。さらにまた、不揮発性RAM56に配置される履歴領域A12のうち、ログ領域A12cは、画像形成装置1が受けた指示の内容、装置構成が変更された際の内容、さらには発生したエラーの内容等を、ログデータとして格納する。
そして、揮発性RAM57に配置されるワーク領域A21は、CPU51によるプログラムの実行に伴って一時的に発生するデータを格納する。また、揮発性RAM57に配置されるバッファ領域A22は、CPU51によるデータ処理に伴って、画像形成装置の各構成要素に対して出力される指示(PCIバス54を介して各IFに出力されるデータ)に関するデータを格納する。
図5は、図1に示す画像形成装置1の起動処理を説明するためのフローチャートである。なお、この起動処理は、例えばUI30を介して画像形成装置1の電源が投入されることに伴ってCPU51にリセット指示が入力されたとき、また、画像形成装置1の電源が投入された後に何らかの理由によりCPU51にリセット指示が入力されたとき、などに実行される。
制御部50に設けられたCPU51がリセット指示を受け付けると(ステップ1)、CPU51は、自身のリセット(CPUリセット)を実行する(ステップ2)。このとき、CPUリセットに伴って、CPU51に設けられたレジスタ群515およびキャッシュメモリ516(ともに揮発性メモリで構成される)の記憶内容もクリアされる。また、CPUリセットに伴って、制御部50に設けられた揮発性RAM57の記憶内容もクリアされる。一方、CPUリセットが実行されても、制御部50に設けられたROM55および不揮発性RAM57の記憶内容はクリアされず、CPUリセット前の記憶内容がそのまま保持される。
続いて、CPU51は、バスブリッジ52およびメモリバス53を介して、ROM55のリセットベクタ領域A01に格納されるイニシャル・プログラム・ローダ(IPL)を読み出すとともに、読み出したIPLを実行し(ステップ3)、画像形成装置1に実装された各構成が使用可能となるように動作準備を行う。そして、画像形成装置1の動作準備が完了する(ステップ4)ことで、一連の起動処理を終了する。
次に、上述したステップ3におけるIPLの実行について、より詳細に説明する。
図6〜図8は、IPLの実行に伴う処理の手順を説明するためのフローチャートである。
IPLの実行に伴い、CPU51は、最初に、バスブリッジ52およびPCIバス54を介して接続されている各IF(この例では、UIIF61、プリントIF62、オプションIF63、ネットワークIF64およびUSBIF65)を用いて、画像形成装置1の装置構成を検出する(ステップ11)。なお、ステップ11では、例えば各IFにコネクタ等が物理的に接続されているか否かを検出するハードウェア的な手法を用いてもよいし、また、例えば各IFを介して接続対象と通信が行えるか否かを検出するソフトウェア的な手法を用いてもよい。
図6〜図8は、IPLの実行に伴う処理の手順を説明するためのフローチャートである。
IPLの実行に伴い、CPU51は、最初に、バスブリッジ52およびPCIバス54を介して接続されている各IF(この例では、UIIF61、プリントIF62、オプションIF63、ネットワークIF64およびUSBIF65)を用いて、画像形成装置1の装置構成を検出する(ステップ11)。なお、ステップ11では、例えば各IFにコネクタ等が物理的に接続されているか否かを検出するハードウェア的な手法を用いてもよいし、また、例えば各IFを介して接続対象と通信が行えるか否かを検出するソフトウェア的な手法を用いてもよい。
続いて、CPU51は、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aから、起動フラグを読み出して取得する(ステップ12)。そして、CPU51は、起動フラグがオフ(0)であるか否か、すなわち、今回の起動が初回の起動であるか否かを判断する(ステップ13)。
ステップ13において肯定の判断(Yes)を行った場合、すなわち、今回の起動処理が初回の起動処理であった場合、CPU51は、続いて、ステップ11で検出した今回の装置構成に基づき、ROM55の圧縮プログラム領域A02から、今回の装置構成の中に含まれる1つの構成に対応する圧縮プログラムを読み出し(ステップ14)、ステップ14で読み出した圧縮プログラムを展開し(ステップ15)、ステップ15で圧縮プログラムを展開して得られたプログラム/変数を、不揮発性RAM56におけるプログラム/変数領域A11に格納する(ステップ16)。その後、ステップ11で検出した今回の装置構成について、全構成に対応するプログラム/変数の、プログラム/変数領域A11への格納が完了したか否かを判断する(ステップ17)。ステップ17において否定の判断(No)を行った場合は、ステップ14に戻り、今回の装置構成における残りの構成に対応する圧縮プログラムの読み出し、読み出した圧縮プログラムの展開、そして展開によって得られたプログラム/変数の格納を続けて行う。
一方、ステップ17において肯定の判断(Yes)を行った場合、CPU51は、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとして「オン(1)」を格納させる(ステップ18)。続いて、CPU51は、ステップ11で検出した今回の装置構成の内容を反映させた変更ログを作成し、作成した変更ログを履歴領域A12のログ領域A12cに格納する(ステップ19)。さらに、CPU51は、ステップ11で検出した今回の装置構成について、存在する構成を「オン(1)」、存在しない構成を「オフ(0)」とした構成ステータスを、履歴領域A12の構成ステータス領域A12bに格納する(ステップ20)。そして、後述するステップ25に進む。
また、上述したステップ13において否定の判断(No)を行った場合、すなわち、今回の起動処理が2回目以降の起動処理であった場合、CPU51は、不揮発性RAM56の履歴領域A12における構成ステータス領域A12bから、構成ステータスを読み出して取得し(ステップ21)、ステップ11で検出した今回の装置構成が、ステップ21で取得した構成ステータスすなわち前回の装置構成から変更されているか否かを判断する(ステップ22)。
ステップ22において否定の判断(No)を行った場合、すなわち、前回の装置構成と今回の装置構成とが同じである場合、CPU51は、不揮発性メモリ56のプログラム/変数領域A11に格納される各プログラム/変数に対してエラーチェックを実行する(ステップ23)。なお、ステップ23で実行されるエラーチェックの手法としては、例えばCRC(Cyclic Redundancy Check:巡回冗長検査)が挙げられる。そして、CPU51は、ステップ23でエラーチェックを実行した結果に基づき、不揮発性RAM56のプログラム/変数領域A11に格納される各プログラム/変数においてエラーが発生しているか否かを、プログラム毎に判断する(ステップ24)。
ステップ24において否定の判断(No)を行った場合、および、上述したステップ20における処理を行った後、CPU51は、不揮発性RAM56のプログラム/変数領域A11に格納された各プログラム/変数を用いて処理を行うことにより、画像形成装置1の初期設定を行い(ステップ25)、IPLの実行を完了する。
一方、上述したステップ22において肯定の判断(Yes)を行った場合、すなわち、前回の装置構成と今回の装置構成とが相違していた場合、CPU51は、前回の装置構成を基準とした場合における今回の装置構成の変更量が、予め決められた閾値以上となっているか否かを判断する(ステップ26)。
ここで、「変更量」は、例えば、変更された構成の数(追加および削減の両者を含む)や、変更された構成に対応するプログラム/変数の記憶領域の、プログラム/変数領域A11に占める割合(占有率)等に基づいて決められる。そして、本実施の形態では、1つの閾値が、変更された構成の数(2以上)に設定されており、他の1つの閾値が、変更された構成に対応するプログラム/変数の記憶領域がプログラム/変数領域A11に占める割合(30%以上)に設定されている。なお、この例では、変更量が、上述した2つの閾値の少なくともいずれか一方以上となった場合に、肯定の判断を行う。
ステップ26において否定の判断(No)を行った場合、すなわち、装置構成の変更量が閾値未満であった場合、CPU51は、今回の装置構成の変更が構成の追加によるものであるか否かを判断する(ステップ27)。
ステップ27において肯定の判断(Yes)を行った場合、すなわち、構成が追加されていた場合、CPU51は、続いて、今回の起動において追加された構成に基づき、ROM55の圧縮プログラム領域A02から、追加された構成に対応する圧縮プログラムを読み出し(ステップ28)、ステップ28で読み出した圧縮プログラムを展開し(ステップ29)、ステップ29で圧縮プログラムを展開して得られたプログラム/変数を、不揮発性RAM56におけるプログラム/変数領域A11に格納する(ステップ30)。
一方、ステップ27において否定の判断(No)を行った場合、すなわち、構成が削減されていた場合、CPU51は、続いて、不揮発性RAM56におけるプログラム/変数領域A11に格納される各プログラム/変数のうち、今回の起動において削減された構成に対応するプログラム/変数を無効化する(ステップ31)。
ステップ30あるいはステップ31を経た後、CPU51は、今回の装置構成に関し他に変更があるか否かを判断する(ステップ32)。ステップ32において肯定の判断(Yes)を行った場合は、ステップ27に戻り、今回変更された他の構成に対応するプログラム/変数の、プログラム/変数領域A11への格納あるいはプログラム/変数領域A11での無効化を続けて行う。
一方、ステップ32において否定の判断(No)を行った場合、CPU51は、ステップ11で検出した今回の装置構成の内容を反映させた変更ログを作成し、作成した変更ログを履歴領域A12のログ領域A12cに格納する(ステップ33)。続いて、CPU51は、ステップ11で検出した今回の装置構成について、存在する構成を「オン(1)」、存在しない構成を「オフ(0)」とした構成ステータスを、履歴領域A12の構成ステータス領域A12bに格納する(ステップ34)。そして、上述したステップ23に進む。
また、ステップ26において肯定の判断(Yes)を行った場合、すなわち、装置構成の変更量が閾値以上であった場合、CPU51は、前回の装置構成から今回の装置構成に至る変更内容を反映させた変更ログを作成し、作成した変更ログを履歴領域A12のログ領域A12cに格納する(ステップ35)。続いて、CPU51は、起動フラグをリセットし(ステップ36)、不揮発性RAM56の履歴領域A12における起動フラグ領域A12aに、起動フラグとして「オフ(0)」を格納させた状態で、上述したステップ14に移行する。
これにより、前回の起動処理と今回の起動処理とにおいて、装置構成に閾値以上となるような変更(大幅な変更)があった場合は、ステップ11で検出した今回の装置構成に基づき、各構成に対応するプログラム/変数が、再度、不揮発性RAM56のプログラム/変数領域A11に書き込まれる。このとき、新たに書き込まれるプログラム/変数は、今回の起動処理よりも前の起動処理において、プログラム/変数領域A11に既に書き込まれていたプログラム/変数に上書きされる。
一方、前回の起動処理と今回の起動処理とにおいて、装置構成に閾値未満となるような変更(小幅な変更)があった場合は、今回の起動において追加された構成にのみ対応するプログラム/変数が、不揮発性RAM56のプログラム/変数領域A11に追加して書き込まれ、あるいは、今回の起動において削除された構成にのみ対応するプログラム/変数が、不揮発性RAM56のプログラム/変数領域A11にて無効化される。このとき、追加して書き込まれるプログラム/変数は、プログラム/変数領域A11に既に書き込まれていたプログラム/変数とは異なる領域に追記される。
また、ステップ24において肯定の判断(Yes)を行った場合、すなわち、不揮発性RAM56のプログラム/変数領域A11に格納されるいずれかのプログラム/変数においてエラーが発生した場合、CPU51は、不揮発性RAM56のログ領域A12cに格納されているエラーログを読み出して取得する(ステップ37)。
続いて、CPU51は、ステップ24でエラーが検出されたプログラム/変数が、ステップ37で取得したエラーログにおいて最後(直近)にエラーを発生したプログラム/変数と同一であるか否かを判断する(ステップ38)。
ステップ38において否定の判断(No)を行った場合、すなわち、今回エラーが検出されたプログラム/変数と直近にエラーを発生したプログラム/変数とが異なる場合、CPU51は、今回エラーが検出されたプログラム/変数に対応する圧縮プログラムを読み出し(ステップ39)、ステップ39で読み出した圧縮プログラムを展開し(ステップ40)、ステップ40で圧縮プログラムを展開して得られたプログラム/変数を、不揮発性RAM56におけるプログラム/圧縮領域11に格納する(ステップ41)。
そして、CPU51は、さらに他のプログラム/変数でエラーがあったか否かを判断する(ステップ42)。ステップ42において肯定の判断(Yes)を行った場合は、ステップ39に戻り、今回エラーが発生したプログラム/変数に対応するプログラム/変数の、プログラム変数領域A11への再格納を続けて行う。そして、後述するステップ44に進む。
一方、ステップ38において肯定の判断(Yes)を行った場合、すなわち、今回エラーが検出されたプログラム/変数と直近にエラーを発生したプログラム/変数とが同じ場合、CPU51は、不揮発性RAM56におけるプログラム/変数領域A11に格納される各プログラム/変数のうち、今回エラーが発生したプログラム/変数を無効化する(ステップ43)。そして、後述するステップ44に進む。
そして、CPU51は、どのプログラムにおいてエラーが発生しているのかを反映させたエラーログを作成し、作成したエラーログを履歴領域A12のログ領域A12cに格納する(ステップ44)。続いて、CPU51は、ステップ11で検出した今回の装置構成について、存在する構成を「オン(1)」、存在しない構成を「オフ(0)」とした構成ステータスを、履歴領域A12の構成ステータス領域A12bに格納する(ステップ45)。そして、上述したステップ23に移行する。
これにより、今回の起動処理において、プログラム/変数領域A11に格納されている特定のプログラム/変数に初めてエラーが発生した場合は、この特定のプログラム/変数が、この特定のプログラム/変数のもととなる圧縮プログラムから改めて作成されるとともに、再度、不揮発性RAM56のプログラム/変数領域A11に書き込まれる。このとき、再度書き込まれる特定のプログラム/変数は、プログラム/変数領域A11に既に書き込まれていた特定のプログラム/変数に上書きされる。
一方、今回の起動処理において、上述した特定のプログラム/変数に、連続して2回目のエラーが発生した場合は、不揮発性RAM56のプログラム/変数領域A11においてこの特定のプログラム/変数が無効化されることにより、この特定のプログラム/変数に対応する構成が存在しないものとして、ステップ25の初期設定が行われることになる。
次に、図6〜図8に示すIPLの実行に伴う処理の手順について、具体的に例を挙げながら説明する。
<最初の起動>
図9は、画像形成装置1が初めて起動される場合(初回起動時)における、CPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図9(a)はIPLの実行中における状態を例示しており、図9(b)はIPLの実行が完了した状態を例示している。なお、ここでは、初回起動時において、構成A、構成Bおよび構成Cが接続されているものとする。
図9は、画像形成装置1が初めて起動される場合(初回起動時)における、CPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図9(a)はIPLの実行中における状態を例示しており、図9(b)はIPLの実行が完了した状態を例示している。なお、ここでは、初回起動時において、構成A、構成Bおよび構成Cが接続されているものとする。
図9(a)に示すように、初回の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには起動フラグ(Flag)として「0」が格納されており、構成ステータス領域A12bには構成ステータスとして「A=B=C=D=0」が格納されている。また、図9(a)に示すように、初回の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11およびログ領域A12cは、ともに空の状態となっている。
CPU51は、ステップ11において、図9(a)に示すように、構成A、構成Bおよび構成Cを検出する(A=B=C=1、D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「0」を取得する。これにより、CPU51は、ステップ13において肯定の判断を行う。
続いて、CPU51は、ステップ11で検出した今回の構成(A=B=C=1、D=0)に基づき、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)。
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図9(b)に示すように、構成A用のプログラム/変数(図9(b)では「A(展開)」)、構成B用のプログラム/変数(図9(b)では「B(展開)」)、および構成C用のプログラム/変数(図9(b)では「C(展開)」)が、それぞれ格納されることになる。
その後、CPU51は、ステップ18において、図9(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログ(履歴)を格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=B=C=1、D=0」を格納する。
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行することで初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。
<2回目以降の起動:その1>
図10は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、装置構成の変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図10(a)はIPLの実行中における状態を例示しており、図10(b)はIPLの実行が完了した状態を例示している。
図10は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、装置構成の変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図10(a)はIPLの実行中における状態を例示しており、図10(b)はIPLの実行が完了した状態を例示している。
図10(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図9に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図9に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図10(a)に示すように、2回目の起動が開催される前の不揮発性RAM56において、プログラム/変数領域A11には、図9に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図9に示す初回の起動に伴い変更ログが格納されている。
CPU51は、ステップ11において、図10(a)に示すように、構成A、構成Bおよび構成Cを検出する(A=B=C=1、D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
続いて、CPU51は、ステップ11において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致することから、ステップ22において否定の判断を行う。
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、すべてのプログラム/変数においてエラーが発生しなかったことより、CPU51が、ステップ24において肯定の判断を行っているものとする。
その後、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。
このように、今回の構成が前回の構成から変更されていない場合は、起動時に、各構成に対応する圧縮プログラムの読み出し、展開および格納を行わずに、前回までの起動において、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラムをそのまま実行することで、起動時に、今回の構成のすべてに対応する圧縮プログラムの読み出し、展開および格納を行ってから各プログラムを実行する場合と比較して、起動処理にかかる時間が短縮化されることになる。
<2回目以降の起動:その2>
図11は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成A〜Cにさらに構成Dを追加する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図11(a)はIPLの実行中における状態を例示しており、図11(b)はIPLの実行が完了した状態を例示している。
図11は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成A〜Cにさらに構成Dを追加する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図11(a)はIPLの実行中における状態を例示しており、図11(b)はIPLの実行が完了した状態を例示している。
図11(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図9に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図9に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図11(a)に示すように、2回目の起動が開催される前の不揮発性RAM56において、プログラム/変数領域A11には、図9に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図9に示す初回の起動に伴い変更ログが格納されている。
CPU51は、ステップ11において、図11(a)に示すように、構成A、構成B、構成Cに加えて、構成Dも検出する(A=B=C=D=1)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ22において肯定の判断を行う。
次に、CPU51は、ステップ26において、前回と今回との装置構成の変更量を演算し、閾値との比較を行う。なお、この例では、構成の変更数が1(追加)であり、また、プログラム/変数領域A11に占める、構成Dに対応するプログラム/変数の記憶領域の割合が30%未満であることから、ステップ26において否定の判断を行う。
すると、CPU51は、今回の構成において構成Dが追加されていることに基づき、ステップ27において肯定の判断を行う。これに伴い、CPU51は、ROM55に配置された圧縮プログラム領域A02から、構成Dに対応する構成D用圧縮プログラム(図11(a)では「D(圧縮)」)を読み出し、読み出した構成D用圧縮プログラムを展開し、展開によって得られた構成D用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ28〜ステップ30)。
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図11(b)に示すように、前回までの起動において既に格納されていた構成A用のプログラム/変数(図11(b)では「A(展開)」)、構成B用のプログラム/変数(図11(b)では「B(展開)」)、および構成C用のプログラム/変数(図11(b)では「C(展開)」)に加え、新たに構成D用のプログラム/変数(図11(b)では「D(展開)」)が格納される。ここで、プログラム/変数領域A11において、構成D用のプログラム/変数は、上述した構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数とは異なる領域に書き込まれることになる。
それから、CPU51は、ステップ32において否定の判断を行い、ステップ33において不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、ステップ34において、図11(b)に示すように、不揮発性RAM56に配置された構成ステータス領域A12bに「A=B=C=D=1」を格納する。
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、すべてのプログラム/変数においてエラーが発生しなかったことより、CPU51が、ステップ24において肯定の判断を行っているものとする。
その後、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラム、構成C用のプログラムおよび構成D用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成A、構成B、構成Cおよび構成Dが使用可能な状態となる。
このように、今回の構成が前回の構成から閾値未満となる範囲内で増加した場合は、起動時に、増加した構成のみに対応する圧縮プログラムの読み出し、展開および格納を新たに行い、前回までの起動において、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラム、および、今回の起動において新たに格納したプログラムを実行することで、起動時に、今回の構成のすべて対応する圧縮プログラムの読み出し、展開および格納を行ってから各プログラムを実行する場合と比較して、起動処理にかかる時間が短縮化されることになる。
<2回目以降の起動:その3>
図12は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成Bを削減する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図12(a)はIPLの実行中における状態を例示しており、図12(b)はIPLの実行が完了した状態を例示している。
図12は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成Bを削減する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図12(a)はIPLの実行中における状態を例示しており、図12(b)はIPLの実行が完了した状態を例示している。
図12(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図9に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図9に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図12(a)に示すように、2回目の起動が開催される前の不揮発性RAM56において、プログラム/変数領域A11には、図9に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図9に示す初回の起動に伴い変更ログが格納されている。
CPU51は、ステップ11において、図12(a)に示すように、構成Aおよび構成Cを検出する(A=C=1、B=D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ22において肯定の判断を行う。
次に、CPU51は、ステップ26において、前回と今回との装置構成の変更量を演算し、閾値との比較を行う。なお、この例では、構成の変更数が1(削減)であり、また、プログラム/変数領域A11に占める、構成Dに対応するプログラム/変数の記憶領域の割合が30%未満であることから、ステップ26において否定の判断を行う。
それから、CPU51は、今回の構成において構成Bが削減されていることに基づき、ステップ27において否定の判断を行う。これに伴い、CPU51は、ステップ31において、不揮発性RAM56に配置されたプログラム/変数領域A11に格納されている、構成B用のプログラム/変数を無効化する。
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図12(b)に示すように、前回までの起動において既に格納されていた構成A用のプログラム/変数(図12(b)では「A(展開)」)、構成B用のプログラム/変数(図12(b)では「B(展開)」)、および構成C用のプログラム/変数(図12(b)では「C(展開)」)のうち、構成A用のプログラム/変数および構成C用のプログラム/変数は有効に維持される一方、構成B用のプログラム/変数は無効なものとなる。
それから、CPU51は、ステップ32において否定の判断を行い、ステップ33において不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、ステップ34において、図12(b)に示すように、不揮発性RAM56に配置された構成ステータス領域A12bに「A=C=1、B=D=0」を格納する。
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、すべてのプログラム/変数においてエラーが発生しなかったことより、CPU51が、ステップ24において肯定の判断を行っているものとする。
その後、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラムおよび構成C用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成Aおよび構成Cが使用可能な状態となる。
このように、今回の構成が前回の構成から閾値未満となる範囲内で削減された場合は、起動時に、削減された構成に対応するプログラムの無効化を行い、前回までの起動において、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラム(無効化されていないもののみ)を実行することで、起動時に、今回の構成のすべて対応する圧縮プログラムの読み出し、展開および格納を行ってから各プログラムを実行する場合と比較して、起動処理にかかる時間が短縮化されることになる。
<2回目以降の起動:その4>
図13は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成Aを削減する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図13(a)はIPLの実行中における状態を例示しており、図13(b)はIPLの実行が完了した状態を例示している。
図13は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、構成Aを削減する変更がなされた状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図13(a)はIPLの実行中における状態を例示しており、図13(b)はIPLの実行が完了した状態を例示している。
図13(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図9に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図9に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図13(a)に示すように、2回目の起動が開催される前の不揮発性RAM56において、プログラム/変数領域A11には、図9に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図9に示す初回の起動に伴い変更ログが格納されている。
CPU51は、ステップ11において、図13(a)に示すように、構成Bおよび構成Cを検出する(B=C=1、A=D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ22において肯定の判断を行う。
次に、CPU51は、ステップ26において、前回と今回との装置構成の変更量を演算し、閾値との比較を行う。なお、この例では、構成の変更数が1(削減)であるものの、プログラム/変数領域A11に占める、構成Aに対応するプログラム/変数の記憶領域の割合が30%以上であることから、ステップ26において肯定の判断を行う。
次いで、CPU51は、ステップ35において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ36において、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「0」を格納した後、ステップ14に移行する。
それから、CPU11は、ステップ11で検出した今回の構成(B=C=1、A=D=0)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図13(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図13(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図13(b)に示すように、新たに、構成B用のプログラム/変数(図13(b)では「B(展開)」)および構成C用のプログラム(図13(b)では「C(展開)」)が、それぞれ格納(上書き)されることになる。
その後、CPU51は、ステップ18において、図13(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログ(履歴)を格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「B=C=1、A=D=0」を格納する。
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成B用のプログラムおよび構成C用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成Bおよび構成Cが使用可能な状態となる。
このように、今回の構成が前回の構成から閾値以上となる範囲で削減された場合は、起動時に、今回の構成のすべてに対応する圧縮プログラムの読み出し、展開および格納を行ってから各プログラムを実行することで、不揮発性RAM56に配置されたプログラム/変数領域A11における各プログラムの断片化および起動後における処理速度の低下が抑制されることになる。
<2回目以降の起動:その5>
図14は、図11に示す状態(構成A、構成B、構成Cおよび構成Dを備えた状態)で画像形成装置1が2回目に起動された後、構成Bおよび構成Dを削減する変更がなされた状態で、3回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図14(a)はIPLの実行中における状態を例示しており、図14(b)はIPLの実行が完了した状態を例示している。
図14は、図11に示す状態(構成A、構成B、構成Cおよび構成Dを備えた状態)で画像形成装置1が2回目に起動された後、構成Bおよび構成Dを削減する変更がなされた状態で、3回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図14(a)はIPLの実行中における状態を例示しており、図14(b)はIPLの実行が完了した状態を例示している。
図14(a)に示すように、3回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図9に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図11に示す2回目の起動に伴い構成ステータスとして「A=B=C=D=1」が格納されている。また、図14(a)に示すように、3回目の起動が開始される前の不揮発性RAM56において、プログラム/変数領域A11には、図11に示す2回目の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数、構成C用のプログラム/変数および構成D用のプログラム/変数が格納され、ログ領域A12cには、図11に示す2回目の起動に伴い変更ログが格納されている。
CPU51は、ステップ11において、図14(a)に示すように、構成Aおよび構成Cを検出する(A=C=1、B=D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
続いて、CPU51は、ステップ21において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では2回目の起動時)の構成ステータス(A=B=C=D=1)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致しないことから、ステップ22において肯定の判断を行う。
次に、CPU51は、ステップ26において、前回と今回との装置構成の変更量を演算し、閾値との比較を行う。なお、この例では、構成の変更数が2(ともに削減)であることから、ステップ26において肯定の判断を行う。
次いで、CPU51は、ステップ35において、不揮発性RAM56に配置されたログ領域A12cに変更ログを格納し、さらに、ステップ36において、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「0」を格納した後、ステップ14に移行する。
それから、CPU11は、ステップ11で検出した今回の構成(A=C=1、B=D=0)に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Aに対応する構成A用圧縮プログラム(図14(a)では「A(圧縮)」)を読み出し、読み出した構成A用圧縮プログラムを展開し、展開によって得られた構成A用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。次に、CPU51は、ステップ11で検出した今回の構成に基づき、ROM55に配置された圧縮プログラム領域A02から、構成Cに対応する構成C用圧縮プログラム(図14(a)では「C(圧縮)」)を読み出し、読み出した構成C用圧縮プログラムを展開し、展開によって得られた構成C用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ14〜ステップ16)。
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図14(b)に示すように、新たに、構成A用のプログラム/変数(図14(b)では「A(展開)」)および構成C用のプログラム(図14(b)では「C(展開)」)が、それぞれ格納(上書き)されることになる。
その後、CPU51は、ステップ18において、図14(b)に示すように、不揮発性RAM56に配置された起動フラグ領域A12aに起動フラグとして「1」を格納し、また、ステップ19において、不揮発性RAM56に配置されたログ領域A12cに変更ログ(履歴)を格納し、さらに、ステップ20において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=C=1、B=D=0」を格納する。
そして、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラムおよび構成C用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成Aおよび構成Cが使用可能な状態となる。
このように、今回の構成が前回の構成から閾値以上となる範囲で削減された場合は、起動時に、改めて、今回の構成のすべてに対応する圧縮プログラムの読み出し、展開および格納を行ってから各プログラムを実行することで、不揮発性RAM56に配置されたプログラム/変数領域A11における各プログラムの断片化が抑制されることになり、起動後における処理速度の低下が抑制されることになる。
<2回目以降の起動:その6>
図15は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、装置構成に変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図15(a)はIPLの実行中における状態を例示しており、図15(b)はIPLの実行が完了した状態を例示している。
図15は、図9に示す状態(構成A、構成Bおよび構成Cを備えた状態)で画像形成装置1が初回起動された後、装置構成に変更がない状態で、2回目に起動される場合におけるCPU51、ROM55および不揮発性RAM56の状態を説明するための図である。ここで、図15(a)はIPLの実行中における状態を例示しており、図15(b)はIPLの実行が完了した状態を例示している。
図15(a)に示すように、2回目の起動が開始される前の不揮発性RAM56において、起動フラグ領域A12aには、図9に示す初回の起動に伴い起動フラグとして「1」が格納されており、構成ステータス領域A12bには、図9に示す初回の起動に伴い構成ステータスとして「A=B=C=1、D=0」が格納されている。また、図15(a)に示すように、2回目の起動が開催される前の不揮発性RAM56において、プログラム/変数領域A11には、図9に示す初回の起動に伴い構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数が格納され、ログ領域A12cには、図9に示す初回の起動に伴い変更ログが格納されている。
CPU51は、ステップ11において、図15(a)に示すように、構成A、構成Bおよび構成Cを検出する(A=B=C=1、D=0)。また、CPU51は、ステップ12において、起動フラグ領域A12aから起動フラグとして「1」を取得する。これにより、CPU51は、ステップ13において否定の判断を行う。
続いて、CPU51は、ステップ11において、不揮発性RAM56に配置された構成ステータス領域A12bから、前回起動時(この例では初回起動時)の構成ステータス(A=B=C=1、D=0)を取得する。そして、CPU51は、ステップ11で検出した今回の構成とステップ21で取得した前回の構成とが一致することから、ステップ22において否定の判断を行う。
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、図15(a)に示したように、エラーチェックの結果、構成B用のプログラム/変数においてエラーが発生することにより、CPU51が、ステップ24において肯定の判断を行っているものとする。
その後、CPU51は、ステップ37において不揮発性RAM56に配置されたログ領域A12cより、直近のエラーログを取得し、ステップ38において今回発生したエラーと前回発生したエラーとが、同じ構成を対象とするプログラム/変数であったか否かを判断する。なお、この例では、今回エラーが発生したプログラム/変数が直近にエラーが発生したプログラム/変数とは異なることにより、CPU51が、ステップ38において否定の判断を行っているものとする。
すると、CPU51は、構成B用のプログラム/変数においてエラーが発生していることに基づき、ROM55に配置された圧縮プログラム領域A02から、構成Bに対応する構成B用圧縮プログラム(図15(a)では「B(圧縮)」)を読み出し、読み出した構成B用圧縮プログラムを展開し、展開によって得られた構成B用のプログラム/変数を不揮発性RAM56に配置されたプログラム/変数領域A11に格納する(ステップ39〜ステップ41)。
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図15(b)に示すように、前回までの起動において既に格納されていた構成A用のプログラム/変数(図15(b)では「A(展開)」)、構成B用のプログラム/変数(図15(b)では「B(展開)」)、および構成C用のプログラム/変数(図15(b)では「C(展開)」)のうち、構成A用のプログラム/変数および構成C用のプログラム/変数はそのままの状態で維持される一方、構成B用のプログラム/変数が再度書き込まれる。ここで、プログラム/変数領域A11において、新たに書き込まれる構成B用のプログラム/変数は、既に買い込まれていた構成B用のプログラム/変数に上書きされることになる。
それから、CPU51は、ステップ42において否定の判断を行い、ステップ44において不揮発性RAM56に配置されたログ領域A12cにエラーログを格納し、ステップ45において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=B=C=1、D=0」を格納する。
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について再度エラーチェックを実行する。なお、この例では、エラーチェックの結果、すべてのプログラム/変数においてエラーが発生しなかったことより、CPU51が、ステップ24において肯定の判断を行っているものとする。
その後、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラム、構成B用のプログラムおよび構成C用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成A、構成Bおよび構成Cが使用可能な状態となる。
このように、不揮発性RAM56におけるプログラム/変数領域A11に格納された特定のプログラムにエラーが生じた場合には、起動時に、エラーが生じたプログラム/変数に対応する圧縮プログラムの読み出し、展開および格納を再度行い、前回までの起動において、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラム、および、今回の起動において再度格納したプログラムを実行することで、起動時に、今回の構成のすべて対応する圧縮プログラムの読み出し、展開および格納を行ってから各プログラムを実行する場合と比較して、起動処理にかかる時間が短縮化されることになる。
一方、上記ステップ39〜ステップ41において構成B用のプログラム/変数をプログラム/変数領域A11に再度書き込んだ後、上述したステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数、構成B用のプログラム/変数および構成C用のプログラム/変数について再度エラーチェックを実行した結果として、構成B用のプログラム/変数で再びエラーが発生した場合、CPU51は、ステップ38において肯定の判断を行う。
すると、CPU51は、構成B用のプログラム/変数において連続してエラーが発生していることに基づき、ステップ31において、不揮発性RAM56に配置されたプログラム/変数領域A11に格納されている、構成B用のプログラム/変数を無効化する。
以上の手順により、不揮発性RAM56に配置されたプログラム/変数領域A11には、図16に示すように、前回までの起動において既に格納されていた構成A用のプログラム/変数(図16では「A(展開)」)、構成B用のプログラム/変数(図16では「B(展開)」)、および構成C用のプログラム/変数(図16では「C(展開)」)のうち、構成A用のプログラム/変数および構成C用のプログラム/変数は有効に維持される一方、構成B用のプログラム/変数は無効なものとなる。
それから、CPU51は、ステップ44において不揮発性RAM56に配置されたログ領域A12cにエラーログを格納し、ステップ45において、不揮発性RAM56に配置された構成ステータス領域A12bに「A=C=1、B=D=0」を格納する。
そして、CPU51は、ステップ23において、プログラム/変数領域A11に格納された構成A用のプログラム/変数および構成C用のプログラム/変数について順次エラーチェックを実行する。なお、この例では、エラーチェックの結果、すべてのプログラム/変数(ここでは構成A用のプログラム/変数および構成C用のプログラム/変数)においてエラーが発生しなかったことより、CPU51が、ステップ24において肯定の判断を行っているものとする。
その後、CPU51は、ステップ25において、プログラム/変数領域A11に格納された構成A用のプログラムおよび構成C用のプログラムを順次実行する初期設定を行い、その結果、画像形成装置1において構成Aおよび構成Cが使用可能な状態となる。
このように、不揮発性RAM56におけるプログラム/変数領域A11に格納された特定のプログラムに連続してエラーが生じた場合には、起動時に、エラーが生じたプログラムの無効化を行い、前回までの起動において、不揮発性RAM56に配置されたプログラム/変数領域A11に既に格納されている各プログラム(無効化されていないもののみ)を実行することで、起動時に、今回の構成のすべて対応する圧縮プログラムの読み出し、展開および格納を行ってから各プログラムを実行する場合と比較して、起動処理にかかる時間が短縮化されることになる。
ここで、上述した説明では、構成の追加あるいは削減に伴って、装置構成が変更される場合を例としたが、例えば接触不良や装置故障など、実際の装置構成が変更されていないにも関わらず、特定の構成を検出できないような場合も生じ得る。本実施の形態で説明した手法を用いれば、このような理由によって装置構成の変更が生じた場合であっても、使用可能な残りの構成で構築された装置を動作させるためのプログラムを再構成することが可能になる。
なお、本実施の形態では、各圧縮プログラムを格納する圧縮プログラム領域A02を、不揮発性RAM56に配置していたが、これに限られるものではない。すなわち、圧縮プログラム領域A02を、例えば画像形成装置1にネットワーク2を介して接続されるサーバ装置5(図1参照)や、USBIF65に接続されたカードリーダ80に配置されるメモリカード81に配置するようにしてもよい。なお、このような場合には、IPLの実行時において、各圧縮プログラムの読み取り対象を、サーバ装置5あるいはカードリーダ80に装着されたメモリカードに設定すればよい。
また、本実施の形態では、不揮発性RAM56にプログラム/変数領域A11および履歴領域A12を配置するとともに、揮発性RAM57にワーク領域A21およびバッファ領域A22を配置するようにしていたが、これに限られるものではなく、例えば不揮発性RAM56のみを設け、この不揮発性RAM56にプログラム/変数領域A11、履歴領域A12、ワーク領域A21およびバッファ領域A22を配置するようにしてもかまわない。
さらに、本実施の形態では、制御部50を画像形成装置1に組み込んだ場合を例として説明を行ったが、これに限られるものではなく、複数のユニットの組み合わせによって構成され、これら複数のユニットの着脱に伴って構成が変更され得る装置に適用しても差し支えない。
さらにまた、本実施の形態では、プログラム/変数領域A11に格納されるプログラム/変数の書き込み、再書き込みあるいは無効化が生じた原因を、履歴領域A12(より具体的にはログ領域A12c)に格納された変更ログあるいはエラーログ等を読み出して解析することが可能となる。
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…メモリ管理ユニット
Claims (6)
- 転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、
前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、
接続される機器を認識する認識手段と
を含み、
前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されるプログラムを読み出して実行する第2の手順と、既にプログラムが記憶された当該記憶手段へのさらなるプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第3の手順とを有し、前記認識手段にて接続される機器を最初に検出した場合には当該第1の手順を実行し、当該認識手段にて接続される機器の変更を検出しない場合には当該第2の手順を実行し、当該認識手段にて接続される機器の変更を検出した場合には当該第3の手順を実行すること
を特徴とする情報処理装置。 - 前記実行手段は、前記認識手段にて接続される機器の変更を検出した場合において、当該機器の変更量が予め決められた閾値以上となった場合には前記第1の手順を実行することを特徴とする請求項1記載の情報処理装置。
- 前記記憶手段に転送されるプログラムを圧縮した状態で格納する格納手段をさらに含み、
前記実行手段は、前記格納手段から圧縮されたプログラムを読み出し且つ展開してから前記記憶手段に記憶させることを特徴とする請求項1または2記載の情報処理装置。 - 前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1乃至3のいずれか1項記載の情報処理装置。
- 記録材に画像を形成する画像形成部と、
前記画像形成部の動作を制御する制御部とを備え、
前記制御部は、
前記画像形成部の制御に用いるために転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶する記憶手段と、
前記記憶手段に記憶されるプログラムを読み出して実行する実行手段と、
接続される機器を認識する認識手段と
を含み、
前記実行手段は、前記記憶手段へのプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第1の手順と、当該記憶手段へのプログラムの転送に連続せず既に当該記憶手段に記憶されるプログラムを読み出して実行する第2の手順と、既にプログラムが記憶された当該記憶手段へのさらなるプログラムの転送に連続して当該記憶手段に記憶されるプログラムを読み出して実行する第3の手順とを有し、前記認識手段にて接続される機器を最初に検出した場合には当該第1の手順を実行し、当該認識手段にて接続される機器の変更を検出しない場合には当該第2の手順を実行し、当該認識手段にて接続される機器の変更を検出した場合には当該第3の手順を実行すること
を特徴とする画像形成装置。 - コンピュータに、
転送されるプログラムを、読み書き可能であって、電源を供給しなくても、記憶している情報を保持することが可能な不揮発性メモリに記憶させる機能と、
前記不揮発性メモリに記憶されるプログラムを読み出して実行させる機能と、
接続される機器を認識する機能と、
前記不揮発性メモリへのプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第1の手順と、当該不揮発性メモリへのプログラムの転送に連続せず既に当該不揮発性メモリに記憶されるプログラムを読み出して実行する第2の手順と、既にプログラムが記憶された当該不揮発性メモリへのさらなるプログラムの転送に連続して当該不揮発性メモリに記憶されるプログラムを読み出して実行する第3の手順とを有し、接続される機器を最初に検出した場合には当該第1の手順を実行させ、接続される機器の変更を検出しない場合には当該第2の手順を実行させ、接続される機器の変更を検出した場合には当該第3の手順を実行させる機能と
を実現させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011137920A JP2013004043A (ja) | 2011-06-22 | 2011-06-22 | 情報処理装置、画像形成装置およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011137920A JP2013004043A (ja) | 2011-06-22 | 2011-06-22 | 情報処理装置、画像形成装置およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013004043A true JP2013004043A (ja) | 2013-01-07 |
Family
ID=47672513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011137920A Withdrawn JP2013004043A (ja) | 2011-06-22 | 2011-06-22 | 情報処理装置、画像形成装置およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013004043A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2857979A1 (en) | 2013-09-25 | 2015-04-08 | Canon Kabushiki Kaisha | Memory control device that controls semiconductory memory, memory control method, information device equipped with memory control device, and storage medium storing memory control program |
US10803502B2 (en) | 2002-10-31 | 2020-10-13 | Mastercard Mobile Transactions Solutions, Inc. | Configuring a life occurrence container |
-
2011
- 2011-06-22 JP JP2011137920A patent/JP2013004043A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10803502B2 (en) | 2002-10-31 | 2020-10-13 | Mastercard Mobile Transactions Solutions, Inc. | Configuring a life occurrence container |
US10861072B2 (en) | 2002-10-31 | 2020-12-08 | Mastercard Mobile Transactions Solutions, Inc. | Handling live occurrence events with a rules engine |
EP2857979A1 (en) | 2013-09-25 | 2015-04-08 | Canon Kabushiki Kaisha | Memory control device that controls semiconductory memory, memory control method, information device equipped with memory control device, and storage medium storing memory control program |
US10268257B2 (en) | 2013-09-25 | 2019-04-23 | Canon Kabushiki Kaisha | Memory control device that control semiconductor memory, memory control method, information device equipped with memory control device, and storage medium storing memory control program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5636034B2 (ja) | データ利用についてのマウント時間の調停 | |
CN109726163B (zh) | 一种基于spi的通信系统、方法、设备和储存介质 | |
JP5783809B2 (ja) | 情報処理装置、起動方法およびプログラム | |
JP5948976B2 (ja) | 画像形成装置および情報処理装置 | |
JP2005010897A (ja) | 計算機システム、計算機システム起動方法およびプログラム | |
CN108108261B (zh) | 数据存储装置及其操作方法 | |
JP4843222B2 (ja) | 半導体記憶装置の制御方法、メモリカード、及びホスト機器 | |
JP5754264B2 (ja) | プログラム実行装置、画像処理装置およびプログラム | |
JP5747680B2 (ja) | 情報処理装置、画像形成装置およびプログラム | |
KR20180126921A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
JP2005157528A (ja) | メモリ装置 | |
JP5970867B2 (ja) | 情報処理装置、画像形成装置およびプログラム | |
JP2013004043A (ja) | 情報処理装置、画像形成装置およびプログラム | |
JP2008117299A (ja) | 記憶媒体制御装置 | |
JP2013045285A (ja) | 情報処理装置、画像形成装置およびプログラム | |
JP2013003984A (ja) | 情報処理装置、画像形成装置、およびプログラム | |
JP2009176147A (ja) | 電子機器および電子機器のメモリアクセス許可判別方法 | |
JP5895609B2 (ja) | 情報処理装置、画像形成装置およびプログラム | |
WO2015170454A1 (ja) | メモリ制御装置、メモリ装置およびメモリ制御方法 | |
JP2014112419A (ja) | 携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラム | |
US20170344260A1 (en) | Electronic device and operating method thereof | |
JP5016604B2 (ja) | 情報処理装置および情報処理方法 | |
JP2013003985A (ja) | 情報処理装置、画像形成装置、およびプログラム | |
JP2014182666A (ja) | 情報処理装置、画像形成装置およびプログラム | |
JP5971022B2 (ja) | 画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140902 |