以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
<実施の形態1>
図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の各部の動作を制御する動作制御部51と、画像読取部10および画像形成部20に関連する画像処理を実行する画像処理部52と、動作制御部51および画像処理部52を接続するPCIe(PCI Express)バス53とを備えている。
これらのうち、動作制御部51は、種々のプログラムを実行することによって画像形成装置1の各部を制御する実行手段の一例としてのCPU(Central Processing Unit:中央処理装置)511と、第1内部バス513を介してCPU511に接続されるCPU−MRAM5121と、第2内部バス514を介してCPU511に接続されるCPU−DRAM5122と、第3内部バス516を介してCPU511に接続されるSD(商標)メモリカード(以下ではSDMCと呼ぶ)515とを備えている。なお、以下の説明においては、CPU−MRAM5121およびCPU−DRAM5122を、まとめてCPUメインメモリ512と称することがある。そして、動作制御部51では、CPU511が、第1記憶手段の一例としてのCPUメインメモリ512に対し、直接にデータを読み書きするように構成されている。
ここで、CPU−MRAM5121は、メモリデバイスとしてMRAM(Magnetoresistive RAM)を備えており、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリとして機能している。一方、CPU−DRAM5122は、メモリデバイスとしてDRAM(Dynamic RAM)を備えており、電源を供給しないと、記憶している情報を保持することができない揮発性メモリとして機能している。そして、本実施の形態では、CPUメインメモリ512を構成するCPU−MRAM5121およびCPU−DRAM5122が、共通のクロック周波数(メモリクロック)にてデータの読み書きを行う。したがって、CPU−MRAM5121は、CPU−DRAM5122と同等の読み書き性能を有していることになる。したがって、CPU−MRAM5121は、UV−EPROM(Ultra-Violet Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、あるいはフラッシュメモリなどの不揮発性メモリに比べて、より高速にデータの読み書きを行う。なお、本実施の形態のCPU−DRAM5122は、例えばDDR2−SDRAM(Double-Data-Rate2 Synchronous Dynamic Random Access Memory)で構成されている。また、本実施の形態のCPUメインメモリ512では、CPU−MRAM5121のメモリ容量に比べて、CPU−DRAM5122のメモリ容量がより大きくなっている。
これに対し、第2記憶手段の一例としてのSDMC515は、メモリデバイスとしてフラッシュメモリ(記憶部の一例)を備えており、読み書きが可能であるとともに、電源を供給しなくても、記憶している情報を保持することが可能となっている。SDMC515は、SDカードアソシエーション(SD Card Association)によって策定された規格に準拠しており、この例においては、SPI(Serial Peripheral Interface)バスからなる第3内部バス516を用いてCPU511に接続される。したがって、第3内部バス516が動作するクロック周波数は、第1内部バス513および第2内部バス514の両者が動作するクロック周波数(メモリクロック)よりも低い値に設定されている。したがって、本実施の形態では、CPUメインメモリ512が第1速度で動作するのに対し、SDMC515は第1速度よりも低速な第2速度で動作する。
また、画像処理部52は、種々の演算を実行することによって、画像読取部10から入力される画像データおよび画像形成部20に出力する画像データに処理を施すASIC(Application Specific Integrated Circuit)521と、内部バス523を介してASIC521に接続されるASICメインメモリ522とを備えている。ここで、画像処理部52に設けられるASICメインメモリ522は、上述したCPU−DRAM5122と共通の構成を有するASIC−DRAM5220を備えている。
さらに、動作制御部51と画像処理部52とを接続するPCIeバス53は、PCI EXpress規格に準拠した送受信を行うことで、制御部50において、動作制御部51に設けられたCPU511と、画像処理部52に設けられたASIC521とを接続している。この例において、ASIC521は、CPU511からPCIeバス53を介して受けた指示に基づいて、各種画像処理を実行するようになっている。
図3は、本実施の形態の画像形成装置1における制御対象と制御対象の起動に用いるプログラムとの関係を説明するための図である。なお、図3に示す各プログラムは、制御部50の動作制御部51に設けられたCPU511によって実行される。
画像読取部10は、画像読取部起動プログラムPrsを用いて起動される。また、画像形成部20は、画像形成部起動プログラムPrpを用いて起動される。さらに、UI30は、UI起動プログラムPruを用いて起動される。さらにまた、送受信部40は、送受信部起動プログラムPrtを用いて起動される。そして、制御部50は、制御部起動プログラムPrcを用いて起動される。なお、これら以外のオプション機器が画像形成装置1に装着されている場合において、図示しないオプション機器は、オプション起動プログラムProを用いて起動される。
図4は、本実施の形態における、CPUメインメモリ512およびSDMC515それぞれの記憶内容を説明するための図である。ここで、図4(a)は、CPUメインメモリ512における記憶内容(メモリマップ)を示しており、図4(b)は、SDMC515における記憶内容(メモリマップ)を示している。動作制御部51に設けられたCPU511は、図4(a)に示すメモリマップに基づいて、CPUメインメモリ512に対するデータの読み書きを行う。
まず、図4(a)に示すメモリマップにおいて、CPUメインメモリ512全体としての記憶領域であるMM記憶領域A0は、基本的にROM(Read Only Memory)として用いられるROM領域A1と、基本的にRAM(Random Access Memory)として用いられるRAM領域A2とを含んでいる。本実施の形態では、CPU−MRAM5121にROM領域A1が配置され、CPU−MRAM5121とCPU−DRAM5122とに跨ってRAM領域A2が配置されている。
これらのうち、ROM領域A1は、IPL格納領域A11と第1展開プログラム格納領域A12とを有している。これらのうち、IPL格納領域A11は、画像形成装置1を起動するにあたり、動作制御部51においてCPU511が最初に実行するプログラムであるIPL(Initial Program Loader)を格納する。また、第1展開プログラム格納領域A12は、IPLを実行した後にCPU511が実行する各種プログラムを、展開された状態(未圧縮の状態)で格納している。なお、第1展開プログラム格納領域A12に格納される各種プログラムの詳細については後述する。
一方、RAM領域A2は、CPU−MRAM5121側に配置される第1作業領域A21と、CPU−DRAM5122側に配置される第2作業領域A22とを有している。RAM領域A2を構成する第1作業領域A21および第2作業領域A22は、CPU511によるプログラムの実行に伴って発生するデータや、CPU511による処理に伴って、画像形成装置1の各構成要素に対して出力される指示に関するデータなどを、一時的に格納する領域として用いられる。また、RAM領域A2における第2作業領域A22は、後述するように、第1展開プログラムを実行した後にCPU511が実行する各種プログラムを、展開された状態で格納する第2展開プログラム格納領域としても用いられるようになっている。このように、本実施の形態では、記憶方式が異なる2つのメモリ(CPU−MRAM5121の一部の領域およびCPU−DRAM5122のすべての領域)によってRAM領域A2が構成されている。そして、CPU511は、CPU−MRAM5121側に配置される第1作業領域A21およびCPU−DRAM5122側に配置される第2作業領域A22を、一まとまりのRAM領域A2として扱う。
次に、図4(b)に示すメモリマップにおいて、SDMC515全体としての記憶領域であるSD記憶領域B0は、第1展開プログラムを実行した後にCPU511が実行する各種プログラムを、公知の手法にて圧縮した圧縮プログラムとして格納する圧縮プログラム格納領域B1と、プログラムやデータの格納に使用されていない空き領域B2とを含んでいる。
本実施の形態において、CPUメインメモリ512(より具体的にはCPU−MRAM5121)に設けられた第1展開プログラム格納領域A12には、図3に示す各種プログラムのうち、制御部起動プログラムPrcおよびUI起動プログラムPruが、それぞれ展開された状態(未圧縮の状態)で格納されている。一方、SDMC515に設けられた圧縮プログラム格納領域B1には、図3に示す各種プログラムのうち、画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProが、それぞれ圧縮された状態で格納されている。なお、以下の説明においては、CPUメインメモリ512の第1展開プログラム格納領域A12に、展開された状態で格納される各種プログラム(この例では制御部起動プログラムPrcおよびUI起動プログラムPru)を、まとめて「第1展開プログラム」と呼ぶ。また、SDMC515の圧縮プログラム格納領域B1に、圧縮された状態で格納される各種プログラム(この例では画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)を、まとめて「圧縮プログラム」と呼ぶ。本実施の形態では、上記第1展開プログラムが第1プログラムに対応し、上記圧縮プログラムが第2プログラムに対応する。
図5は、本実施の形態の画像形成装置1における起動処理の手順を説明するためのフローチャートである。なお、この起動処理は、例えばUI30を介して画像形成装置1の電源が投入されることに伴って制御部50(より具体的には、動作制御部51におけるCPU511)にHW(ハードウェア)リセット指示が入力されたとき、また、画像形成装置1の電源が投入された後に、何らかの理由により制御部50にHWリセット指示が入力されたとき、などに実行される。ここで、画像形成装置1の電源が投入された後に、制御部50にHWリセット指示が入力される理由としては、例えば制御部50内でエラーが発生した場合等が挙げられる。
制御部50の動作制御部51に設けられたCPU511に対し、起動処理の開始に伴うHWリセットが実行された後に、このHWリセットが解除される(ステップ101)。
HWリセットが解除されることに伴い、CPU511は、CPUメインメモリ512におけるCPU−MRAM5121に配置されたROM領域A1のIPL格納領域A11からIPLを読み出し(ステップ111)、読み出したIPLを実行する。IPLを実行することに伴い、割込ベクタの設定が実行され(ステップ112)、CPUメインメモリ512に対する、図4(a)に示すメモリマップの設定が実行される(ステップ113)。
続いて、CPU511は、UART(Universal Asynchronous Receiver Transmitter)コントローラおよびI2C(Inter-Integrated Circuit)コントローラ(ともに図示せず)を初期化する(ステップ114)。そして、CPU511は、初期化されたI2Cコントローラ(図示せず)を介して、CPU−MRAM5121およびCPU−DRAM5122から、それぞれのSPD(Serial Presence Detect)値を取得する(ステップ115)。
次いで、CPU511は、CPU−MRAM5121を制御するCPU−MRAMコントローラ(図示せず)を初期化し(ステップ116)、さらに、CPU−DRAM5122を制御するCPU−DRAMコントローラ(図示せず)を初期化する(ステップ117)。ここで、ステップ116では、ステップ115で取得したCPU−MRAM5121のSPD値に基づくトレーニングシーケンスを実行することにより、CPU511とCPU−MRAM5121との間の通信条件の最適化を図る。また、ステップ117では、ステップ115で取得したCPU−DRAM5122のSPD値に基づくトレーニングシーケンスを実行することにより、CPU511とCPU−DRAM5122との間の通信条件の最適化を図る。
それから、CPU511は、CPU511の内部に設けられた内部レジスタ(図示せず)の初期化を実行する(ステップ118)。以上により、制御部50における動作制御部51の初期化が完了する。なお、以下では、上記ステップ111〜ステップ118を、「動作制御部初期化手順(ステップ1)」と呼ぶ。
ステップ1の動作制御部初期化手順が完了すると、CPU511は、次に、CPUメインメモリ512におけるCPU−MRAM5121に配置されたROM領域A1の第1展開プログラム格納領域A12から第1展開プログラム(この例では制御部起動プログラムPrcおよびUI起動プログラムPru)を読み出す(ステップ121)。そして、CPU511は、制御部起動プログラムPrcを実行することに伴い、CPU−MRAM5121およびCPU−DRAM5122に対してメモリ診断を実行し(ステップ122)、さらに、CPU511の内部に設けられたPCIeコントローラ(図示せず)の初期化を実行する(ステップ123)ことで、PCIeバス53を介したCPU511(動作制御部51)とASIC521(画像処理部52)との通信を可能にする。続いて、CPU511は、制御部起動プログラムPrcを実行することに伴い、PCIeバス53を介してASIC521の初期化を実行し(ステップ124)、さらに、CPU511の内部に設けられた各種I/Oの初期化を実行する(ステップ125)。なお、ステップ124におけるASIC521の初期化では、ASIC521と内部バス523を介したASICメインメモリ522との通信や、ASIC521と画像読取部10および画像形成部20との通信なども初期化される。
そして、CPU511は、UI起動プログラムPruを実行することに伴い、UI30の初期化および設定を実行する(ステップ126)。以上により、画像形成装置1では、制御部50およびUI30の両者が動作可能な状態へと移行する。なお、以下では、上記ステップ121〜ステップ126を、「高優先度機器初期化手順(ステップ2)」と呼ぶ。ここで、本実施の形態では、制御部50およびUI30の両者が、高優先度機器となっている。ステップ2の高優先度機器初期化手順が完了することに伴い、画像形成装置1は、UI30を介した各種ジョブ(スキャン機能、プリント機能、コピー機能およびファクシミリ機能)の受け付けが可能な状態となる。
ステップ2の高優先度機器初期化手順が完了すると、CPU511は、次に、SDMC515に配置された圧縮プログラム格納領域B1から圧縮プログラムを読み出す(ステップ131)。次いで、CPU511は、読み出した圧縮プログラムを公知の手法にて展開(解凍)し、得られた展開済のプログラム(この例では画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)を、CPUメインメモリ512におけるCPU−DRAM5122に配置されたRAM領域A2の第2作業領域A22に格納させる(ステップ132)。なお、以下の説明においては、圧縮プログラムを展開して得られた各種プログラム(画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)を、まとめて「第2展開プログラム」と呼ぶ。また、第2作業領域A22のうち、第2展開プログラムが格納される領域を、「第2展開プログラム格納領域」と呼ぶ。
そして、CPU511は、CPUメインメモリ512におけるCPU−DRAM5122に配置されたRAM領域A2の第2作業領域A22(第2展開プログラム格納領域)から第2展開プログラム(この例では画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)を読み出す(ステップ133)。次いで、CPU511は、画像形成部起動プログラムPrpを実行することにより画像形成部20を初期化し(ステップ134)、画像読取部起動プログラムPrsを実行することにより画像読取部10を初期化し(ステップ135)、送受信部起動プログラムPrtを実行することにより送受信部40を初期化し(ステップ136)、オプション起動プログラムProを実行することによりオプション機器(図示せず)を初期化し(ステップ137)、一連の起動処理が完了する。
以上により、画像形成装置1では、制御部50およびUI30に加えて、画像形成部20、画像読取部10および送受信部40(オプション機器が存在する場合はオプション機器も)が、動作可能な状態へと移行する。なお、以下では、上記ステップ131〜ステップ137を、「低優先度機器初期化手順(ステップ3)」と呼ぶ。ここで、本実施の形態では、画像形成部20、画像読取部10、送受信部40およびオプション機器が、低優先度機器となっている。ステップ3の低優先度機器初期化手順が完了することに伴い、画像形成装置1は、すべての機能(スキャン機能、プリント機能、コピー機能およびファクシミリ機能)が実行可能な状態へと移行する。
図6は、本実施の形態の起動手順(図5参照)における、各プログラムの格納場所・格納状態と展開場所との関係を説明するための図である。
上述したように、本実施の形態における高優先度機器である制御部50およびUI30を起動するために用いられる制御部起動プログラムPrcおよびUI起動プログラムPruは、起動前の初期状態において、CPU−MRAM5121の第1展開プログラム格納領域A12に未圧縮の状態で格納されている。そして、CPU511は、起動処理において、これら制御部起動プログラムPrcおよびUI起動プログラムPruを含む第1展開プログラムを、第1展開プログラム格納領域A12から読み出して実行する。
これに対し、本実施の形態における低優先度機器である画像形成部20、画像読取部10、送受信部40およびオプション機器(図示せず)を起動するために用いられる画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProは、起動前の初期状態において、SDMC515の圧縮プログラム格納領域B1に圧縮された状態で格納されている。そして、CPU511は、起動処理において、これら画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProを含む圧縮プログラムを、展開してCPU−DRAM5122の第2作業領域A22に第2展開プログラムとして格納した後、これら画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProを含む第2展開プログラムを、第2作業領域A22の第2展開プログラム格納領域から読み出して実行する。
以上説明したように、本実施の形態では、CPU−MRAM5121に第1展開プログラムを格納しておくことにより、起動処理において、制御部50およびUI30を、画像読取部10、画像形成部20、送受信部40およびオプション機器(図示せず)よりも先に立ち上げることができる。そして、本実施の形態では、CPU−MRAM5121から第1展開プログラムを読み出して実行しているため、例えばCPU−MRAM5121よりも低速なSDMC515に第1展開プログラムを格納しておき、この第1展開プログラムをCPUメインメモリ512(CPU−MRAM5121あるいはCPU−DRAM5122)にコピーしてから第1展開プログラムを実行する場合と比較して、第1展開プログラムを実行するまでに要する時間を短くすること、すなわち、高優先度機器の起動に要する時間を短くすることができる。また、本実施の形態では、SDMC515に圧縮プログラムを格納しておくことにより、画像読取部10、画像形成部20、送受信部40およびオプション機器(図示せず)を、制御部50およびUI30に続いて立ち上げることができる。
ここで、本実施の形態では、制御部50およびUI30が立ち上がる時刻と、画像読取部10、画像形成部20、送受信部40およびオプション機器(図示せず)が立ち上がる時刻との間に差が生じるが、UI30が先に立ち上がることによりユーザによる操作入力を受け付けることが可能となっているため、起動処理におけるユーザの待ち時間を、感覚的に低減させることが可能になる。
また、本実施の形態では、優先度の高い機器用のプログラム(第1展開プログラム)を、単位容量あたりのコストが高価なCPU−MRAM5121に格納させる一方、優先度の低い機器用のプログラム(圧縮プログラム)を、単位容量あたりのコストが安価なSDMC515に格納させるようにした。これにより、すべてのプログラムをCPU−MRAM5121に格納させるようにした場合と比較して、メモリにかかるコストを低減することができる。
さらに、本実施の形態では、優先度の高い機器用のプログラム(第1展開プログラム)については、未圧縮の状態でCPU−MRAM5121に格納させるようにした。これにより、優先度の高い機器用のプログラムを圧縮してCPU−MRAM5121に格納させる場合と比較して、プログラムの展開に要する時間が減らせる分、優先度の高い機器の起動処理にかかる時間を短くすることができる。
一方、本実施の形態では、優先度の低い機器用のプログラム(圧縮プログラム)については、圧縮した状態でSDMC515に格納させるようにした。これにより、SDMC515の容量を低減できるとともに、CPU511がSDMC515からプログラムを読み出す際に要する時間を短くすることができる。
さらにまた、本実施の形態では、第1展開プログラムの実行に先立ってCPU511が実行するIPLについても、CPU−MRAM5121に格納しておくようにした。これにより、例えばIPLをSDMC515に格納しておく場合と比較して、IPLを読み出すために要する時間を短くすることができ、結果として、画像形成装置1の起動処理にかかる時間を短くすることができる。
<実施の形態2>
本実施の形態における画像形成装置1の基本構成は実施の形態1と同様であるが、高優先度機器および低優先度機器の振り分けが実施の形態1とは異なることに伴い、各種プログラムの格納場所の振り分けを実施の形態1とは異ならせたものである。なお、本実施の形態において、実施の形態1と同様のものについては、同じ符号を付してその詳細な説明を省略する。
図7は、本実施の形態における、CPUメインメモリ512およびSDMC515それぞれの記憶内容を説明するための図である。ここで、図7(a)は、CPUメインメモリ512における記憶内容(メモリマップ)を示しており、図7(b)は、SDMC515における記憶内容(メモリマップ)を示している。動作制御部51に設けられたCPU511は、図7(a)に示すメモリマップに基づいて、CPUメインメモリ512に対するデータの読み書きを行う。
本実施の形態において、CPUメインメモリ512(より具体的にはCPU−MRAM5121)に設けられた第1展開プログラム格納領域A12には、図3に示す各種プログラムのうち、制御部起動プログラムPrcおよびUI起動プログラムPruに加えて、画像形成部起動プログラムPrpが、それぞれ展開された状態(未圧縮の状態)で格納されている。一方、SDMC515に設けられた圧縮プログラム格納領域B1には、図3に示す各種プログラムのうち、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProが、それぞれ圧縮された状態で格納されている。すなわち、本実施の形態では、第1展開プログラムが画像形成部起動プログラムPrpをさらに含む一方、圧縮プログラムが画像形成部起動プログラムPrpを含まなくなっている点が、実施の形態1とは異なる。
図8は、本実施の形態の画像形成装置1における起動処理の手順を説明するためのフローチャートである。なお、本実施の形態における起動処理は、動作制御部初期化手順(ステップ1)、高優先度機器初期化手順(ステップ2)および低優先度機器初期化手順(ステップ3)を含んでいる点で、実施の形態1と共通する。
制御部50の動作制御部51に設けられたCPU511に対し、起動処理の開始に伴うHWリセットが実行された後に、このHWリセットが解除される(ステップ201)。
HWリセットが解除されることに伴い、CPU511は、CPUメインメモリ512におけるCPU−MRAM5121に配置されたROM領域A1のIPL格納領域A11からIPLを読み出し(ステップ211)、読み出したIPLを実行する。IPLを実行することに伴い、割込ベクタの設定が実行され(ステップ212)、CPUメインメモリ512に対する、図7(a)に示すメモリマップの設定が実行される(ステップ213)。
続いて、CPU511は、UART(Universal Asynchronous Receiver Transmitter)コントローラおよびI2C(Inter-Integrated Circuit)コントローラ(ともに図示せず)を初期化する(ステップ214)。そして、CPU511は、初期化されたI2Cコントローラ(図示せず)を介して、CPU−MRAM5121およびCPU−DRAM5122から、それぞれのSPD(Serial Presence Detect)値を取得する(ステップ215)。
次いで、CPU511は、CPU−MRAM5121を制御するCPU−MRAMコントローラ(図示せず)を初期化し(ステップ216)、さらに、CPU−DRAM5122を制御するCPU−DRAMコントローラ(図示せず)を初期化する(ステップ217)。ここで、ステップ216では、ステップ215で取得したCPU−MRAM5121のSPD値に基づくトレーニングシーケンスを実行することにより、CPU511とCPU−MRAM5121との間の通信条件の最適化を図る。また、ステップ217では、ステップ215で取得したCPU−DRAM5122のSPD値に基づくトレーニングシーケンスを実行することにより、CPU511とCPU−DRAM5122との間の通信条件の最適化を図る。
それから、CPU511は、CPU511の内部に設けられた内部レジスタ(図示せず)の初期化を実行する(ステップ218)。以上により、制御部50における動作制御部51の初期化が完了する。なお、本実施の形態では、上記ステップ211〜ステップ218が、「動作制御部初期化手順(ステップ1)」となる。
ステップ1の動作制御部初期化手順が完了すると、CPU511は、次に、CPUメインメモリ512におけるCPU−MRAM5121に配置されたROM領域A1の第1展開プログラム格納領域A12から第1展開プログラム(この例では制御部起動プログラムPrc、UI起動プログラムPruおよび画像形成部起動プログラムPrp)を読み出す(ステップ221)。そして、CPU511は、制御部起動プログラムPrcを実行することに伴い、CPU−MRAM5121およびCPU−DRAM5122に対してメモリ診断を実行し(ステップ222)、さらに、CPU511の内部に設けられたPCIeコントローラ(図示せず)の初期化を実行する(ステップ223)ことで、PCIeバス53を介したCPU511(動作制御部51)とASIC521(画像処理部52)との通信を可能にする。続いて、CPU511は、制御部起動プログラムPrcを実行することに伴い、PCIeバス53を介してASIC521の初期化を実行し(ステップ224)、さらに、CPU511の内部に設けられた各種I/Oの初期化を実行する(ステップ225)。なお、ステップ224におけるASIC521の初期化では、ASIC521と内部バス523を介したASICメインメモリ522との通信や、ASIC521と画像読取部10および画像形成部20との通信なども初期化される。
そして、CPU511は、UI起動プログラムPruを実行することに伴い、UI30の初期化および設定を実行し(ステップ226)、さらに、画像形成部起動プログラムPrpを実行することに伴い、画像形成部20の初期化を実行する(ステップ227)。以上により、画像形成装置1では、制御部50、UI30および画像形成部20の三者が動作可能な状態へと移行する。なお、本実施の形態では、上記ステップ221〜ステップ227が、「高優先度機器初期化手順(ステップ2)」となる。ここで、本実施の形態では、制御部50、UI30および画像形成部20の三者が、高優先度機器となっている。ステップ2の高優先度機器初期化手順が完了することに伴い、画像形成装置1は、UI30を介した各種ジョブ(スキャン機能、プリント機能、コピー機能およびファクシミリ機能)の受け付け、および、画像形成部20によるプリント機能の実行が可能な状態となる。
ステップ2の高優先度機器初期化手順が完了すると、CPU511は、次に、SDMC515に配置された圧縮プログラム格納領域B1から圧縮プログラムを読み出す(ステップ231)。次いで、CPU511は、読み出した圧縮プログラムを公知の手法にて展開(解凍)し、得られた展開済のプログラム(この例では画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)を、CPUメインメモリ512におけるCPU−DRAM5122に配置されたRAM領域A2の第2作業領域A22に格納させる(ステップ232)。なお、本実施の形態では、圧縮プログラムを展開して得られた各種プログラム(この例では画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)が、「第2展開プログラム」となる。
そして、CPU511は、CPUメインメモリ512におけるCPU−DRAM5122に配置されたRAM領域A2の第2作業領域A22(第2展開プログラム格納領域)から第2展開プログラム(この例では画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)を読み出す(ステップ233)。次いで、CPU511は、画像読取部起動プログラムPrsを実行することにより画像読取部10を初期化し(ステップ234)、送受信部起動プログラムPrtを実行することにより送受信部40を初期化し(ステップ235)、オプション起動プログラムProを実行することによりオプション機器(図示せず)を初期化し(ステップ236)、一連の起動処理が完了する。
以上により、画像形成装置1では、制御部50、UI30および画像形成部20に加えて、画像読取部10および送受信部40(オプション機器が存在する場合はオプション機器も)が、動作可能な状態へと移行する。なお、本実施の形態では、上記ステップ231〜ステップ236が、「低優先度機器初期化手順(ステップ3)」となる。ここで、本実施の形態では、画像読取部10、送受信部40およびオプション機器が、低優先度機器となっている。ステップ3の低優先度機器初期化手順が完了することに伴い、画像形成装置1は、すべての機能(スキャン機能、プリント機能、コピー機能およびファクシミリ機能)が実行可能な状態へと移行する。
図9は、本実施の形態の起動手順(図8参照)における、各プログラムの格納場所・格納状態と展開場所との関係を説明するための図である。
上述したように、本実施の形態における高優先度機器である制御部50、UI30および画像形成部20を起動するために用いられる制御部起動プログラムPrc、UI起動プログラムPruおよび画像形成部起動プログラムPrpは、起動前の初期状態において、CPU−MRAM5121の第1展開プログラム格納領域A12に未圧縮の状態で格納されている。そして、CPU511は、起動処理において、これら制御部起動プログラムPrc、UI起動プログラムPruおよび画像形成部起動プログラムPrpを含む第1展開プログラムを、第1展開プログラム格納領域A12から読み出して実行する。
これに対し、本実施の形態における低優先度機器である画像読取部10、送受信部40およびオプション機器(図示せず)を起動するために用いられる画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProは、起動前の初期状態において、SDMC515の圧縮プログラム格納領域B1に圧縮された状態で格納されている。そして、CPU511は、起動処理において、これら画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProを含む圧縮プログラムを、展開してCPU−DRAM5122の第2作業領域A22に第2展開プログラムとして格納した後、これら画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProを含む第2展開プログラムを、第2作業領域A22の第2展開プログラム格納領域から読み出して実行する。
以上説明したように、本実施の形態では、制御部50およびUI30とともに、画像形成部20を立ち上げることができる。すなわち、制御部50およびUI30が立ち上がることに伴い、画像形成部20によるプリント動作を開始させることが可能になる。また、これに伴い、SDMC515のメモリ容量を低減すること(よりメモリ容量の小さいSDMC515を使用すること)が可能になる。
なお、本実施の形態では、実施の形態1における低優先度機器である画像形成部20、画像読取部10、送受信部40およびオプション機器(図示せず)のうち、画像形成部20を高優先度機器に組み入れるようにしていたが、これに限られない。例えば画像形成部20に代えて画像読取部10を高優先度機器に組み入れることもできる。この場合には、第1展開プログラム格納領域A12に、画像形成部起動プログラムPrpに代えて画像読取部起動プログラムPrsを未圧縮の状態で格納する一方、圧縮プログラム格納領域B1に、画像読取部起動プログラムPrsに代えて画像形成部起動プログラムPrpを圧縮された状態で格納しておけばよい。また、各プログラムの格納場所および格納状態を変更することにより、2以上の機器(例えば画像形成部20および画像読取部10)を高優先度機器に組み入れることも可能である。
<実施の形態3>
本実施の形態における画像形成装置1の基本構成は実施の形態1と同様であるが、圧縮プログラムを格納する領域を、SDMC515だけでなくCPUメインメモリ512(より具体的にはCPU−MRAM5121)にも設けている点が実施の形態1とは異なる。なお、本実施の形態において、実施の形態1と同様のものについては、同じ符号を付してその詳細な説明を省略する。
図10は、本実施の形態における、CPUメインメモリ512およびSDMC515それぞれの記憶内容を説明するための図である。ここで、図10(a)は、CPUメインメモリ512における記憶内容(メモリマップ)を示しており、図10(b)は、SDMC515における記憶内容(メモリマップ)を示している。動作制御部51に設けられたCPU511は、図10(a)に示すメモリマップに基づいて、CPUメインメモリ512に対するデータの読み書きを行う。
まず、図10(a)に示すメモリマップにおいて、ROM領域A1は、IPL格納領域A11および第1展開プログラム格納領域A12に加えて、圧縮コード格納領域A13をさらに有している。そして、圧縮コード格納領域A13は、第1展開プログラムを実行した後にCPU511が実行する各種プログラムのうちの一部のプログラムを、公知の手法にて圧縮した圧縮プログラムとして格納する。
次に、図10(b)に示すメモリマップにおいて、圧縮プログラム格納領域B1は、第1展開プログラムを実行した後にCPU511が実行する各種プログラムのうち、上記圧縮コード格納領域A13には格納されていない残りのプログラムを、公知の手法にて圧縮した圧縮プログラムとして格納する。
本実施の形態において、CPUメインメモリ512(より具体的にはCPU−MRAM5121)に設けられた第1展開プログラム格納領域A12には、図3に示す各種プログラムのうち、制御部起動プログラムPrcおよびUI起動プログラムPruが、それぞれ展開された状態(未圧縮の状態)で格納されている。また、CPUメインメモリ512(より具体的にはCPU−MRAM5121)に設けられた圧縮コード格納領域A13には、図3に示す各種プログラムのうち、画像形成部起動プログラムPrpが、圧縮された状態で格納されている。さらに、SDMC515に設けられた圧縮プログラム格納領域B1には、図3に示す各種プログラムのうち、上記画像形成部起動プログラムPrpを除く画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProが、それぞれ圧縮された状態で格納されている。すなわち、本実施の形態では、圧縮プログラム格納領域B1に格納される圧縮プログラムが画像形成部起動プログラムPrpを含まなくなっている一方、圧縮コード格納領域A13に圧縮された画像形成部起動プログラムPrpが格納されている点が、実施の形態1とは異なる。
図11は、本実施の形態の画像形成装置1における起動処理の手順を説明するためのフローチャートである。なお、本実施の形態における起動処理は、動作制御部初期化手順(ステップ1)、高優先度機器初期化手順(ステップ2)および低優先度機器初期化手順(ステップ3)を含んでいる点で、実施の形態1および実施の形態2と共通する。
制御部50の動作制御部51に設けられたCPU511に対し、起動処理の開始に伴うHWリセットが実行された後に、このHWリセットが解除される(ステップ301)。
HWリセットが解除されることに伴い、CPU511は、CPUメインメモリ512におけるCPU−MRAM5121に配置されたROM領域A1のIPL格納領域A11からIPLを読み出し(ステップ311)、読み出したIPLを実行する。IPLを実行することに伴い、割込ベクタの設定が実行され(ステップ312)、CPUメインメモリ512に対する、図10(a)に示すメモリマップの設定が実行される(ステップ313)。
続いて、CPU511は、UART(Universal Asynchronous Receiver Transmitter)コントローラおよびI2C(Inter-Integrated Circuit)コントローラ(ともに図示せず)を初期化する(ステップ314)。そして、CPU511は、初期化されたI2Cコントローラ(図示せず)を介して、CPU−MRAM5121およびCPU−DRAM5122から、それぞれのSPD(Serial Presence Detect)値を取得する(ステップ315)。
次いで、CPU511は、CPU−MRAM5121を制御するCPU−MRAMコントローラ(図示せず)を初期化し(ステップ316)、さらに、CPU−DRAM5122を制御するCPU−DRAMコントローラ(図示せず)を初期化する(ステップ317)。ここで、ステップ316では、ステップ315で取得したCPU−MRAM5121のSPD値に基づくトレーニングシーケンスを実行することにより、CPU511とCPU−MRAM5121との間の通信条件の最適化を図る。また、ステップ317では、ステップ315で取得したCPU−DRAM5122のSPD値に基づくトレーニングシーケンスを実行することにより、CPU511とCPU−DRAM5122との間の通信条件の最適化を図る。
それから、CPU511は、CPU511の内部に設けられた内部レジスタ(図示せず)の初期化を実行する(ステップ318)。以上により、制御部50における動作制御部51の初期化が完了する。なお、本実施の形態では、上記ステップ311〜ステップ318が、「動作制御部初期化手順(ステップ1)」となる。
ステップ1の動作制御部初期化手順が完了すると、CPU511は、次に、CPUメインメモリ512におけるCPU−MRAM5121に配置されたROM領域A1の第1展開プログラム格納領域A12から第1展開プログラム(この例では制御部起動プログラムPrcおよびUI起動プログラムPru)を読み出す(ステップ321)。そして、CPU511は、制御部起動プログラムPrcを実行することに伴い、CPU−MRAM5121およびCPU−DRAM5122に対してメモリ診断を実行し(ステップ322)、さらに、CPU511の内部に設けられたPCIeコントローラ(図示せず)の初期化を実行する(ステップ323)ことで、PCIeバス53を介したCPU511(動作制御部51)とASIC521(画像処理部52)との通信を可能にする。続いて、CPU511は、制御部起動プログラムPrcを実行することに伴い、PCIeバス53を介してASIC521の初期化を実行し(ステップ324)、さらに、CPU511の内部に設けられた各種I/Oの初期化を実行する(ステップ325)。なお、ステップ324におけるASIC521の初期化では、ASIC521と内部バス523を介したASICメインメモリ522との通信や、ASIC521と画像読取部10および画像形成部20との通信なども初期化される。
そして、CPU511は、UI起動プログラムPruを実行することに伴い、UI30の初期化および設定を実行する(ステップ326)。以上により、画像形成装置1では、制御部50およびUI30の両者が動作可能な状態へと移行する。なお、本実施の形態では、上記ステップ321〜ステップ326が、「高優先度機器初期化手順(ステップ2)」となる。ここで、本実施の形態では、制御部50およびUI30の両者が、高優先度機器となっている。ステップ2の高優先度機器初期化手順が完了することに伴い、画像形成装置1は、UI30を介した各種ジョブ(スキャン機能、プリント機能、コピー機能およびファクシミリ機能)の受け付けが可能な状態となる。
ステップ2の高優先度機器初期化手順が完了すると、CPU511は、次に、CPUメインメモリ512におけるCPU−MRAM5121に配置されたROM領域A1の圧縮コード格納領域A13から、圧縮プログラム(この例では画像形成部起動プログラムPrp)を読み出す(ステップ331)。次いで、CPU511は、読み出した圧縮プログラムを公知の手法にて展開(解凍)し、得られた展開済のプログラム(この例では画像形成部起動プログラムPrp)を、CPUメインメモリ512におけるCPU−DRAM5122に配置されたRAM領域A2の第2作業領域A22に格納させる(ステップ332)。
さらに、CPU511は、SDMC515に配置された圧縮プログラム格納領域B1から圧縮プログラム(この例では画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)を読み出す(ステップ333)。次いで、CPU511は、読み出した圧縮プログラムを公知の手法にて展開(解凍)し、得られた展開済のプログラム(この例では画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)を、CPUメインメモリ512におけるCPU−DRAM5122に配置されたRAM領域A2の第2作業領域A22に格納させる(ステップ334)。このとき、画像形成部起動プログラムPrpと、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProとは、第2作業領域A22内において異なる領域に格納される。
なお、本実施の形態では、2つの圧縮プログラムを展開して得られた各種プログラム(この例では画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)が、「第2展開プログラム」となる。
そして、CPU511は、CPUメインメモリ512におけるCPU−DRAM5122に配置されたRAM領域A2の第2作業領域A22(第2展開プログラム格納領域)から第2展開プログラム(この例では画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)を読み出す(ステップ335)。次いで、CPU511は、画像形成部起動プログラムPrpを実行することにより画像形成部20を初期化し(ステップ336)、画像読取部起動プログラムPrsを実行することにより画像読取部10を初期化し(ステップ337)、送受信部起動プログラムPrtを実行することにより送受信部40を初期化し(ステップ338)、オプション起動プログラムProを実行することによりオプション機器(図示せず)を初期化し(ステップ339)、一連の起動処理を完了する。
以上により、画像形成装置1では、制御部50およびUI30に加えて、画像形成部20、画像読取部10および送受信部40(オプション機器が存在する場合はオプション機器も)が、動作可能な状態へと移行する。なお、本実施の形態では、上記ステップ331〜ステップ339が、「低優先度機器初期化手順(ステップ3)」となる。ここで、本実施の形態では、画像形成部20、画像読取部10、送受信部40およびオプション機器が、低優先度機器となっている。ステップ3の低優先度機器初期化手順が完了することに伴い、画像形成装置1は、すべての機能(スキャン機能、プリント機能、コピー機能およびファクシミリ機能)が実行可能な状態へと移行する。
図12は、本実施の形態の起動手順(図11参照)における、各プログラムの格納場所・格納状態と展開場所との関係を説明するための図である。
上述したように、本実施の形態における高優先度機器である制御部50およびUI30を起動するために用いられる制御部起動プログラムPrcおよびUI起動プログラムPruは、起動前の初期状態において、CPU−MRAM5121の第1展開プログラム格納領域A12に未圧縮の状態で格納されている。そして、CPU511は、起動処理において、これら制御部起動プログラムPrcおよびUI起動プログラムPruを含む第1展開プログラムを、第1展開プログラム格納領域A12から読み出して実行する。
これに対し、本実施の形態における低優先度機器である画像形成部20、画像読取部10、送受信部40およびオプション機器(図示せず)を起動するために用いられる画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProは、起動前の初期状態において、CPU−MRAM5121の圧縮コード格納領域A13(画像形成部起動プログラムPrp)あるいはSDMC515の圧縮プログラム格納領域B1(画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムPro)に、それぞれ圧縮された状態で格納されている。そして、CPU511は、起動処理において、これら画像形成部起動プログラムPrpを含む圧縮プログラムと、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProを含む圧縮プログラムとを、順番に展開してCPU−DRAM5122の第2作業領域A22に第2展開プログラムとして格納した後、これら画像形成部起動プログラムPrp、画像読取部起動プログラムPrs、送受信部起動プログラムPrtおよびオプション起動プログラムProを含む第2展開プログラムを、第2作業領域A22の第2展開プログラム格納領域から読み出して実行する。
以上説明したように、本実施の形態では、CPU−MRAM5121に圧縮プログラムの一部を格納しておくことにより、CPU−MRAM5121のメモリ容量を有効に活用することができる。また、これに伴い、SDMC515のメモリ容量を低減すること(よりメモリ容量の小さいSDMC515を使用すること)が可能になる。
なお、実施の形態1〜3では、CPUメインメモリ512を構成する不揮発性メモリとして、MRAMを用いていたが、これに限られるものではない。例えば、CPUメインメモリ512で使用する不揮発性メモリとして、FeRAM(Ferroelectric RAM)、PRAM(Phase change RAM)、ReRAM(Resistance RAM)などを用いてもかまわない。
また、実施の形態1〜3では、圧縮プログラムを格納する記憶部として、フラッシュメモリを有するSDMC515を用いていたが、これに限られるものではない。SDMC515に代えて、例えば、所謂マスクROM、各種PROM(Programmable ROM:例えばOTP ROM (One Time Programmable ROM)、UV−EPROM(Ultra-Violet Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM))、他のインタフェースを有するフラッシュメモリ、あるいは、HDD(Hard Disk Drive)などを用いてもかまわない。
さらに、実施の形態1〜3では、SDMC515に、各種プログラムを圧縮した状態で格納していたが、これに限られるものではなく、未圧縮の状態で格納するものであってもよい。