本発明は、情報処理装置及び画像処理装置に関し、特に装置の起動時間の短縮化に関する。
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ、書類の電子化に用いるスキャナ等の画像形成装置は欠かせない機器となっている。このような画像形成装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。この様な画像処理装置においては、ユーザが装置の電源供給を開始してから装置が使用可能な状態になるまで、即ち起動時間の短縮化が望まれている。上記のような多機能化、高機能化に伴い、近年の画像処理装置においては、CPU(Central Processing Unit)若しくはマイコン(マイクロコンピュータ)、DRAM(Dynamic Random Access Memory)等のRAM及びRAM上で動作する制御プログラムにより制御部を構成することが多い。
他方、情報処理装置の初期化動作において、CPUの初期化動作(システムリセット)とは独立した系統で動作するコントローラを備え、そのコントローラがROM(Read Only Memory)とRAMの間のデータ転送をシステムリセット期間中に行うことにより、情報処理装置の起動時間短縮を図る方法が提案されている(例えば特許文献1、特許文献2参照)。特許文献1、特許文献2に開示された技術は、いずれもROMからRAMへのデータ転送について着目したものであり、本件とはその目的が異なる。
特開2005−258642号公報
特開2003−337746号公報
特許文献1、特許文献2に記載の方法においては、いずれもRAMへのデータ書き込みを前提としており、その処理はRAM及びRAMへのアクセスをコントロールするRAMコントローラ等の起動処理が完了した後の処理に限定される。ここで、RAM及びRAMコントローラ等の起動処理は、所定の初期化コードに基づき、CPUによって実行されることが一般的である。即ち、RAMにアクセスするためには、RAM及びRAMコントローラ等の初期化を完了する必要がある。従って、現状、特許文献1、特許文献2に開示されているように、CPU等の起動が完了する前にROMへのデータ転送を開始することは困難である。
他方、CPU、RAM及び制御プログラム等によって構成される制御部の起動処理において、電源供給が開始された後、CPUが動作可能となり、初期化を開始するタイミングとRAM及びROM、USBコントローラ等のその他のハードウェアが動作可能となり、初期化を開始するタイミングとには一般的に差がある。具体的には、その他のハードウェアの初期化開始可能タイミングよりもCPUの初期化開始可能タイミングの方が遅い。従って、その他のハードウェアの初期化処理をCPUによって実行する場合、CPUの初期化が完了した後の処理となることに加えて、CPUが初期化可能となるまでの間も待機する必要がある。同様に、特許文献1に記載されているように、DMACによる処理とCPUによる処理とを並列して行う場合も、その他のハードウェアが動作可能となった後、CPUが動作可能となるまで待機する必要がある。これらの態様は、起動時間短縮の観点からは好ましくない。尚、このような課題は、CPU若しくはマイコン、RAM及び制御プログラム等によって制御部が構成される画像処理装置に限らず、CPU若しくはマイコン、RAM及び制御プログラムによって制御部を構成する情報処理装置であれば同様に発生し得る。
本発明は、上述した実情を考慮してなされたもので、情報処理装置の起動処理において、CPUの初期化完了前にRAM及びRAMコントローラ等のその他のハードウェアの初期化を開始可能とすることにより、起動処理に要する時間を短縮することを目的とする。
上記の課題を解決するために、請求項1に記載の発明は、情報処理装置であって、信号を伝達するバスと、当該情報処理装置全体の動作を制御するプロセッサと前記バスとの間で信号を伝達するプロセッサインタフェースと、当該情報処理装置の動作を制御するプログラムの動作領域であるメモリに前記プロセッサとは独立して信号を転送するダイレクトメモリアクセスコントローラと、当該情報処理装置を構成するハードウェアをコントロールするハードウェアコントローラとを有し、前記ハードウェアコントローラは、前記プログラムを格納する不揮発性記憶部と前記バスとの間で信号を伝達する不揮発性記憶媒体コントローラを含み、前記ダイレクトメモリアクセスコントローラは、当該情報処理装置への電源供給開始後、前記プロセッサと前記プロセッサインタフェースとが通信開始する前に、前記不揮発性記憶部における記憶領域を指定するアドレスを指定して前記記憶媒体コントローラを介して前記不揮発性記憶部にアクセスすることにより、前記ハードウェアコントローラの初期化のために用いる情報を前記不揮発性記憶部から読み出して前記ハードウェアコントローラの初期化を実行することを特徴とする。
また、請求項2に記載の発明は、請求項1に記載の情報処理装置において、前記ハードウェアコントローラは、前記メモリと前記バスとの間で信号を伝達するメモリコントローラと、当該情報処理装置に他の機器を接続する外部機器インタフェースと前記バスとの間で信号を伝達する外部機器コントローラと、当該情報処理装置をネットワークに接続するネットワークインタフェースと前記バスとの間で信号を伝達するネットワークコントローラと、当該情報処理装置の状態を視覚的に表示する表示部と前記バスとの間で信号を伝達する表示部コントローラと、当該情報処理装置をユーザが操作する操作部と前記バスとの間で信号を伝達する操作部コントローラとのうち少なくとも一つを有することを特徴とする。
また、請求項3に記載の発明は、請求項2に記載の情報処理装置において、前記ハードウェアコントローラは少なくとも前記表示部コントローラを有し、前記ダイレクトメモリアクセスコントローラは、前記ハードウェアコントローラの初期化完了後、前記表示部に表示させる表示データを前記表示部コントローラに転送することを特徴とする。
また、請求項4に記載の発明は、請求項3に記載の情報処理装置において、前記表示データは、当該情報処理装置への電源供給開始後、当該画像処理装置が使用可能となるまでの時間情報を含むことを特徴とする。
また、請求項5に記載の発明は、請求項1乃至4いずれか1項に記載の情報処理装置において、前記ハードウェアコントローラの初期化のために用いる情報は、前記ハードウェアの動作設定値であり、前記ダイレクトメモリアクセスコントローラは、前記読み出した動作設定値を前記ハードウェアコントローラに転送することを特徴とする。
また、請求項6に記載の発明は、請求項1乃至5いずれか1項に記載の情報処理装置において、前記ハードウェアコントローラの初期化が完了したことを示す情報を記憶するハードウェアコントローラ初期化完了フラグ記憶部を更に有し、前記プロセッサは、前記ハードウェアコントローラ初期化完了フラグ記憶部にアクセスすることにより、前記ハードウェアコントローラの初期化が完了したか否かを確認することを特徴とする。
また、請求項7に記載の発明は、請求項1乃至6いずれか1項に記載の情報処理装置において、電源の供給状態を監視する電源制御部を更に有し、前記電源制御部は、前記情報処理装置への電源供給開始後に第1の信号を発信し、前記第1の信号発信後に第2の信号を発信し、前記ダイレクトメモリアクセスコントローラは、前記第1の信号に基づいて前記ハードウェアコントローラの初期化を開始し、前記プロセッサコントローラは、前記第2の信号に基づいて前記プロセッサとの通信を開始することを特徴とする。
また、請求項8に記載の発明は、請求項1乃至7いずれか1項に記載の情報処理装置において、前記メモリと、複数の前記プログラムが格納された前記不揮発性記憶部とを更に有し、前記ダイレクトメモリアクセスコントローラは、前記ハードウェアの初期化が完了した後、前記不揮発性記憶部に記憶された第1のプログラムを前記メモリに転送し、前記プロセッサは、前記メモリに転送された前記第1のプログラムを起動し、前記ダイレクトメモリアクセスコントローラは、前記プロセッサが前記プロセッサによる前記第1のプログラムの起動動作と並行して前記不揮発性記憶部に記憶された第2のプログラムを前記メモリに転送することを特徴とする。
また、請求項9に記載の発明は、請求項8に記載の情報処理装置において、前記ダイレクトメモリアクセスコントローラが前記不揮発性記憶部から前記メモリに前記第1のプログラム及び前記第2のプログラムを転送する順番をユーザが任意に変更できることを特徴とする。
また、請求項10に記載の発明は、請求項1乃至9いずれか1項に記載の情報処理装置において、前記プログラムは、少なくとも第1の部分及び第2の部分に分割されて圧縮された上で記憶されており、前記ダイレクトメモリアクセスコントローラは、前記第1の部分を前記メモリに転送し、前記プロセッサは、前記メモリに転送された前記第1の部分を伸長し、前記ダイレクトメモリアクセスコントローラは、前記プロセッサによる前記第1の部分の伸長動作と並行して前記第2の部分を前記メモリに転送することを特徴とする。
また、請求項11に記載の発明は、画像処理装置であって、請求項1乃至10いずれか1項に記載の情報処理装置を有することを特徴とする。
本発明によれば、情報処理装置の起動処理において、CPUの初期化完了前にRAM及びRAMコントローラ等のその他のハードウェアの初期化を開始可能とすることにより、起動処理に要する時間を短縮することが可能となる。
以下、図面を参照して、本発明の実施形態を詳細に説明する。以下の説明においては、情報処理装置の例として、画像処理装置の制御部を構成するコントローラを例として説明する。
図1は、本実施例に係る画像処理装置の制御部を構成するコントローラボード1及びユーザが画像処理装置の状態を確認し若しくは画像処理装置を直接操作する操作パネル9の全体構成を示すブロック図である。図1に示すように、本実施例に係るコントローラボード1は、CPU2、ASIC3、RAM4、ROM5、USB(Universal Serial Bus)−I/F6、ネットワークI/F7、UI(User Interface)コネクタ8及び電源制御回路11を有する。本実施例に係る情報処理装置の制御部は、コントローラボード1におけるソフトウェアとハードウェアとの組み合わせによって構成される。尚、図1においては、電源制御回路11への電源供給を破線にて示す。
コントローラボード1における制御部の構成を更に具体的に説明すると、ROM5や不揮発性メモリ並びにHDD(Hard Disc Drive)や光学ディスク等の不揮発性記憶媒体に格納されたファームウェア等の制御プログラムが、揮発性メモリであるRAM4にロードされ、CPU2の制御に従って構成されるソフトウェア制御部とASIC3等の他のハードウェアとによって制御部が構成される。このように構成される画像処理装置の制御部は、入力された印刷ジョブに基づいて画像を描画するための描画情報の生成(画像処理)や画像処理装置に含まれる画像形成機構若しくは撮像機構等の制御を行う。
USB−I/F6、ネットワークI/F7は、画像処理装置がホスト装置等の他の機器と通信する際のインタフェースである。USB−I/F6は、画像処理装置がUSBケーブルを介して他の機器と通信する際のインタフェースである。ネットワークI/F7は、画像処理装置がイーサネット(登録商標)回線等を介して他の機器と通信する際のインタフェースである。UIコネクタ8は、操作パネル9等のユーザインタフェースを接続するためのコネクタである。操作パネル9は、タッチパネル機能を備えるLCD(Liquid Crystal Display)及び他の操作ボタン等を含む操作表示部である。操作パネル9は、LCD表示、タッチパネル機能を制御するLCDコントローラ10を有する。電源制御回路11は、外部からコントローラボード11に供給される電源を制御し、コントローラボード1各部及び操作パネル9へ電源を供給する。また、電源制御回路11は、外部から供給される電源の状態(電圧)を監視し、その監視結果に基づいて電源監視信号EをASIC3に入力する。
次に、ASIC3について更に詳細に説明する。図1に示すように、ASIC3はDMAC(Direct Memory Access Controller:ダイレクトメモリアクセスコントローラ)301、CPU−I/F302、RAMコントローラ303、ROMコントローラ304、USBコントローラ305、ネットワークコントローラ306、UIコントローラ307及びイニシャルデータ記憶部308を有し、夫々がバス309を介して接続されている。DMAC301は、RAM4へのアクセスを制御するコントローラである。DMAC301により、ROM5、USB−I/F6、ネットワークI/F7等の他のデバイスからRAM4へのデータ転送を、CPU2の制御によらず実行することが可能となる。
CPU−I/F302は、バス308にCPU2を接続するプロセッサインタフェースであり、CPU2とバス308との間で信号を伝達する。RAMコントローラ303は、RAM4へのアクセスをコントロールし、RAM4とバス308との間で信号を伝達する。RAMコントローラ303には、RAM4へのアクセスタイミング、RAM4のリフレッシュサイクル、RAM4の搭載容量、CAS(column address strobe)−Latencyの設定値等が設定される。ROMコントローラ304は、ROM5へのアクセスをコントロールし、ROM5とバス308との間で信号を伝達する。ROMコントローラ304には、ページモード等のアクセス方式及びアクセスタイミング等が設定される。
USBコントローラ305、ネットワークコントローラ306は、夫々USB−I/F6、ネットワークI/F7をコントロールし、USB−I/F6若しくはネットワークI/F7とバス308との間で信号を伝達する。USBコントローラ305は、USB−I/F6を介して接続されたUSB機器(外部機器)を制御する。即ち、USBコントローラ305は、外部機器コントローラとして機能する。UIコントローラ307は、UIコネクタ8を介して操作パネル9をコントロールし、UIコネクタ8とバス308との間で信号を伝達する。UIコントローラ307には、コントラスト設定等、操作パネル9のLCD表示設定や、UIコントローラ307とLDCコントローラ10との間のデータ転送速度等が設定される。即ち、UIコントローラ307は、表示部コントローラ及び操作部コントローラとして機能する。
イニシャルデータ記憶部308は、上記ASIC3に含まれる夫々のデバイスの初期設定情報が格納された記憶媒体である。ASIC3の初期化動作においては、DMAC301によってイニシャルデータ記憶部308に格納された設定情報が読み出され、夫々のデバイスに設定される。この他、ASIC3若しくはコントローラボード1には、IDE(Integrated Drive Electronics)コントローラ等を搭載し、HDDや光学ディスクドライブ等を接続することも可能である。この場合、イニシャルデータ記憶部308には、IDEコントローラの初期設定情報も格納される。
次に、本実施例に係る画像処理装置に電源が投入された後の、コントローラボード1の初期化処理について説明する。図2は、コントローラボード1への電源供給開始時におけるコントローラボード1の状態を示すタイミングチャートである。図3は、本実施例に係るコントローラボード1の初期化処理を示すフローチャートである。タイミングt1において電源制御回路11に電源が供給開始されると、電源制御回路11は、コントローラボード1各部に電源供給を開始する(S301)。コントローラボード1に電源が供給開始された直後は、コントローラボード1に含まれる各デバイスはリセット状態であり、初期化処理を開始する前の状態である。このリセット状態期間において、各デバイスへの電源若しくはクロックの供給が安定化する。
電源制御回路11は、タイミングt1から所定期間経過後のタイミングt2において、RAM4、ROM5、USB−I/F6、ネットワークI/F7及び操作パネル9(以降、H/Wとする)のリセット状態を解除するリセット解除信号E1をASIC3に入力する(S302)。これにより、RAMコントローラ303等のASIC3に含まれる各コントローラ(H/Wコントローラ:ハードウェアコントローラ)は、夫々対応するH/Wとの通信が可能な状態となる。また、ASIC3がリセット解除信号E1を受信することにより、DMAC301が動作を開始する。このとき、図2に示すようにCPU2はまだリセット状態である。即ち、CPU−I/F302は、CPU2との通信が不可能な状態である。
タイミングt2においてASIC3がH/Wと通信可能になると、DMAC301がH/Wの初期化処理を実行する(S303)。DMAC301は、RAM4の初期化処理として、RAM4へのアクセスタイミング、RAM4のリフレッシュサイクル、RAM4の搭載容量、CAS(column address strobe)−Latency等をイニシャルデータ記憶部308から読み出し、RAMコントローラ303に夫々設定する。また、ROM5の初期化処理として、ページモード等のアクセス方式及びアクセスタイミング等をイニシャルデータ記憶部308から読み出し、ROM5コントローラ304に夫々設定する。また、USB−I/F6及びネットワークI/F7の初期化処理として、USBコントローラ及びネットワークコントローラ306のレジスタのリセット等を行う。また、操作パネル9の初期化処理として、コントラスト設定等、操作パネル9のLCD表示設定や、UIコントローラ307とLDCコントローラ10との間のデータ転送速度設定等をイニシャルデータ記憶部308から読み出し、UIコントローラ307に設定する。DMAC301によるイニシャルデータ記憶部308から各H/Wコントローラへのイニシャルデータの転送は、夫々のH/W毎に時分割で実行される。
このようにH/Wの初期化処理を完了することにより、コントローラボード1に設けられ若しくは接続された各H/Wが夫々動作可能となる。これらのH/Wの初期化処理は、従来、CPU2によってBIOS(Basic Input/Output System)が起動された後、BIOSの処理等によって実行されていたものであるが、本実施例においては、DMAC301がそれを行うことにより、CPU2が他の処理を実行している間に並列して処理を行うことが可能となる。また、本実施例においては、CPU2のリセット期間、即ち、CPU−I/F302がCPU2との通信を開始する前の期間であっても、他のH/Wの初期化動作が可能となる。
他方、S302、S303の処理とは独立した処理として、電源制御回路11は、タイミングt1から所定期間経過後のタイミングt3において、CPU2のリセット状態を解除するリセット解除信号E2をASIC3に入力する(S304)。これにより、ASIC3に含まれるCPU−I/F302とCPU2とが通信可能となる。図2に示すように、電源制御回路11がリセット解除信号E2を発信するタイミングt3は、H/Wのリセット解除信号E1を発信するタイミングt2よりも遅い。これは、タイミングt1において電源供給が開始された後、CPU2は動作周波数等のイニシャライズデータをリードし、CPU−I/F302とのアクセス方法、方式を決定する処理等が必要となるためである。CPU2のリセットが解除された後、CPU2は初期化処理を実行する(S305)。CPU2の初期化処理においては、診断プログラムによる自己診断及びBIOSプログラムの読み出し及び起動等を順次行う。
H/W初期化処理(S303)及びCPU初期化処理(S305)が完了すると、続いてCPU2は診断プログラムによりH/Wの診断処理を実行する(S306)。H/Wの診断処理が完了すると、CPU2若しくはDMAC301がROMコントローラ304を介してROM5にアクセスし、ROMデータをRAM4に転送する(S304)。S304においてROM5から読み出されるデータは例えばカーネル、OS(Operation System)プログラム等である。ROMデータの読み出しが完了すると、CPU2はタイミングt4において、OSの起動及び初期化を実行する(S307)。
OSが起動すると、CPU2は、操作パネル9や画像処理装置の画像形成機構、撮像機構等を制御するアプリケーションプログラムをダウンロードする(S308)。これらのアプリケーションプログラムは、画像形成機構、撮像機構等の各ハードウェア内部のROM若しくはコントローラボード1上の記憶媒体に格納されている。その後、CPU2は、ダウンロードしたアプリケーションを起動する(S309)。S309までの処理が完了したタイミングt5においてシステムスタンバイとなり(S310)、画像処理装置が動作可能な状態となることによって起動処理が完了する。
このように、本実施例に係る情報処理装置の起動処理においては、CPU2のリセット解除(タイミングt3、S304)や初期化処理が完了するタイミング(S305)に関わらず、H/Wの初期化処理を開始する(S303)。これにより、H/W診断処理(S306)を開始するまでの時間を短縮し、コントローラ1の起動処理全体として要する時間を短縮することが可能となる。
尚、上記の説明においては、H/WとしてRAM4、ROM5、USB−I/F6、ネットワークI/F7及び操作パネル9の初期化処理をDMAC301がCPU2のリセット及び初期化処理とは独立して実行する例を説明した。この他、これらのH/Wの一部の初期化処理をDMAC301が行うようにしても良い。また、図1において示したH/W以外のデバイスの初期化処理を図3のS303において実行しても良い。図1において示したH/W以外のデバイスとしては、HDD、光学ドライブ等の記憶装置及びそれらを制御するIDEコントローラ等が例として挙げられる。
また、上記の説明においては、H/Wの初期化処理のための情報がイニシャルデータ記憶部308に格納されている例を説明した。この他、例えばH/Wの初期化処理のためのデータがROM5に格納されていても良い。この場合、図3に示すS303においてDMAC301は、ROMコントローラ304を介してROM5にアクセスすることにより、H/Wの初期化情報を読み出す。このとき、ROMコントローラ304は、まだ初期化される前であるため、ページモード等のアクセス方式やアクセスタイミングが設定される前である。このため、DAMC301がROM5にアクセスする際には、ページモードを使用せず、行アドレス及び列アドレスを指定してアクセスする。また、アクセスタイミングとしては、最も遅いタイミングを用いる。
また、イニシャルデータ記憶部308をコントローラボード1上であってASIC3の外部に設けても良い。このような場合、AISC3にはイニシャルデータ記憶部用I/Fが更に設けられ、このイニシャルデータ記憶部用I/Fを介してバス308とイニシャルデータ記憶部308とが接続される。このイニシャルデータ記憶部用I/Fは、他のH/Wコントローラよりも簡易な初期化処理で動作可能若しくは初期化処理が不要なコントローラとして構成することが好ましい。また、上記の説明においては、コントローラボード1及び画像処理装置を制御するプロセッサとしてCPUを用いる例を説明したが、プロセッサとしてマイコンを用いるコントローラに適用することによっても、同様の効果を得ることが可能である。
また、上記の説明においては、電源制御部11がリセット解除信号E1、E2をASIC3に入力することにより、夫々H/W、CPU2のリセット状態が解除される例を説明した。この他、電源制御回路11のリセット解除信号によることなく、ASIC3に電源供給が開始された後、所定期間経過後に夫々H/W、CPU2のリセット状態が解除されるようにしても良い。また、上記の説明においては、RAM4、ROM5、USB−I/F6、ネットワークI/F7、操作パネル9のリセット状態がリセット解除信号E1によって同時に解除される例を説明したが、夫々異なるタイミングにおいて解除されるようにしても良い。
実施例1においては、CPUの起動処理とは独立して、DMAC301が各H/Wの初期化処理を実行する例を説明した。しかしながら、図3に示すS306において、CPUが初期化処理を完了した時点において、H/Wの初期化処理(S303)が完了していなければ、H/Wの診断処理(S306)に移行することが出来ない。また、H/W初期化処理が完了していないことをCPUが認識不能である場合、CPU初期化処理(S305)が完了した後、H/Wの初期化処理が完了していないにも関わらず、CPUがH/Wの診断処理を開始してしまうと、H/Wに不具合を与える可能性もある。CPUがH/Wの初期化処理が完了しているか否かを認識可能とする例を説明する。尚、実施例1と同様の符号を付す構成については実施例1と同一又は相当部を示し、説明を省略する。
図4は、本実施例に係る画像処理装置の制御部を構成するコントローラボード1及び操作パネル9の全体構成を示すブロック図である。図4に示すように、本実施例に係るコントローラボード1は、図1に示す実施例1に係る構成と略同様である。ここで、本実施例に係るASIC3は、H/W初期化完了フラグ部310を更に有する。H/W初期化完了フラグ部301は、H/Wの初期化処理が完了したか否かを示すフラグ情報が格納される記憶部であり、例えば1ビットの記憶素子により実現され、H/Wの初期化処理が完了していれば“1”、完了していなければ“0”が書き込まれる。換言すると、H/W初期化完了フラグ部301は、ハードウェアコントローラ初期化完了フラグ記憶部として機能する。CPU2は、H/W初期化完了フラグ部301のフラグを確認することにより、H/Wの初期化処理が完了しているか否かを確認する。
次に、図5を参照して本実施例に係るコントローラボード1の初期化処理について説明する。図5は、本実施例に係るコントローラボード1の初期化処理を示すフローチャートである。電源制御回路11に電源が供給開始されると、電源制御回路11は、コントローラボード1各部に電源供給を開始する(S501)。その後、電源制御回路11は、H/Wのリセット状態を解除するリセット解除信号E1をASIC3に入力する(S502)。これにより、RAMコントローラ303等のASIC3に含まれる各コントローラは、夫々対応するH/Wとの通信が可能な状態となると共に、DMAC301が動作を開始する。ASIC3がH/Wと通信可能になると、DMAC301がH/Wの初期化処理を実行する(S503)。ここで実行されるH/Wの初期化処理は、実施例1における処理と同様の処理である。H/Wの初期化処理完了に際し、DMAC301は、H/W初期化完了フラグをH/W初期化完了フラグ部に書き込む(S504)。
他方、S502〜S504の処理とは独立した処理として、電源制御回路11は、リセット解除信号E1をASIC3に入力した後、CPU2のリセット状態を解除するリセット解除信号E2をASIC3に入力する(S505)。これにより、ASIC3に含まれるCPU−I/F302とCPU2とが通信可能となる。CPU2のリセットが解除された後、CPU2は初期化処理を実行する(S506)。ここで実行されるCPU2の初期化処理は、実施例1における処理と同様の処理である。
CPU2は、初期化処理が完了した後、H/W初期化完了フラグ部310にアクセスし、DMAC301によるH/Wの初期化処理が完了しているか否かを確認する(S507)。S507の確認の結果、H/Wの初期化処理が完了していれば、即ち、H/W初期化完了フラグ部310にH/W初期化完了フラグが書き込まれていれば(S508/YES)、CPU2はH/Wの診断処理を実行する(S509)。他方、S507の確認の結果、H/Wの初期化処理が完了していなければ、CPU2は所定時間待機した後、再度H/W初期化完了フラグを確認する(S507)。H/W診断処理(S507)以降については、実施例1と同様の処理であるため、説明を省略する。
このように、本実施例においては、DMAC301がH/Wの初期化処理を完了すると、H/W初期化完了フラグ部310にH/W初期化完了フラグを書き込む。これにより、DMAC301による初期化処理が完了しているか否かをCPU2が認識することが可能となる。また、CPU2がH/W診断処理を実行する前に、H/W初期化処理化完了しているか否かを確認することにより、H/Wの初期化処理が完了していないにも関わらずH/Wの診断処理が実行され、H/W若しくはASIC3に不具合が生じることを防ぐことが可能となる。
本実施例においては、コントローラボード1の初期化動作期間中における操作パネル9の画面表示における他の態様を説明する。尚、実施例1と同様の符号を付す構成については実施例1と同一又は相当部を示し、説明を省略する。本実施例に係るコントローラボード1は、図6に示すように、図1に示す実施例1に係る構成と略同様である。ここで、本実施例に係るASIC3は、起動完了タイマ311を更に有する。起動完了タイマ311は、ASIC3に電源供給が開始された後、コントローラ1の起動処理が完了してシステムスタンバイとなり、画像処理装置が動作可能となるまでの時間をカウントするタイマである。尚、実施例2において説明したように、H/W初期化完了フラグ部310を設け、CPU2がH/Wの初期化処理が完了したか否かを確認できるようにしても良い。
次に、図6を参照して、本実施例に係るコントローラボード1の初期化処理について説明する。S701〜S703については、実施例1と同様の処理であるため、説明を省略する。DMAC301は、H/Wの初期化処理(S703)が完了すると、操作パネル9のLCDに表示させる表示データをUIコントローラ307を介してLCDコントローラ10に転送する(S704)。ここで転送される表示データとは、コントローラボード1が起動処理中であることを示す画面表示や、コントローラボード1の起動段階を示す画面表示及びコントローラボード1及び画像処理装置が起動した直後における初期画面等である。このとき、DMAC301は起動完了タイマ311と連動し、システムスタンバイまでに要する時間に応じた表示データをLCDコントローラ10に転送する。
S704における表示データ転送は、従来、CPU2の初期化処理(S706)が完了した後、H/Wの診断処理(S707)を実行するための診断プログラムの読み込み時や、その後のOSプログラムの読み込み若しくは起動時に行われていた。これに対し、本実施例のように、CPU2のリセット(S705)及び初期化処理(S706)とは独立して行うことにより、コントローラボード1の起動処理において、より早いタイミングで操作パネル9の画面表示を行うことが可能となり、ユーザが画像処理装置の状態をより早いタイミングで認識することが可能となる。また、CPU2のリセット及び初期化処理と並行して表示データの転送を行うことにより、CPU2が初期化処理を完了した後、表示データの転送を実行する必要がなくなり、起動時間の短縮化を図ることが可能となる。
S704において転送される表示データは、ROM5若しくはイニシャルデータ記憶部308に格納されている。DMAC301は、起動完了タイマ311のカウント状態に基づき、そのカウント状態に対応する表示データをROM5若しくはイニシャルデータ記憶部308からLCDコントローラ10へ転送する。その他、CPU2のリセット(S705)、初期化処理(S706)及びH/W診断処理(S707)以降の処理は、実施例1と同様である。
本実施例においては、コントローラボード1の起動処理において、OSが起動した後のアプリケーション起動からシステムスタンバイまでの処理の例について説明する。尚、実施例1と同様の符号を付す構成については実施例1と同一又は相当部を示し、説明を省略する。従来技術においても説明した通り、近年、画像処理装置は様々な機能を有する複合機として構成されることが多い。これに伴い、夫々の機能、装置を制御するアプリケーションの容量や種類も増大し、アプリケーションの起動に要する時間が非常に長くなっている。本実施例においては、アプリケーションの起動順を制御することにより、画像処理装置の各機能が使用可能となるまでの時間を短縮する。
本実施例に係るコントローラボード1の起動処理について図8を参照して説明する。図8は、本実施例に係るコントローラボード1の起動処理において、OS起動処理から、画像処理装置の夫々の機能が使用可能となるまでのアプリケーション起動動作を示すフローチャートである。実施例1において説明したように、H/Wの診断処理が完了すると、DMAC301により、ROM5に格納されたOSプログラムが読み出される(S801)。OSプログラムが読み出されると、CPU2は、OSを起動、初期化する(S802)。また、DMAC301は、OSプログラムの読み出しを完了すると、CPU2によるOSの起動・初期化処理と並行して画像処理装置をコピー機として動作させるコピーアプリを読み出す(S803)。
OSの起動・初期化処理及びコピーアプリの読み出しが完了すると、CPU2は、コピーアプリの起動処理を行う(S804)。ここで、アプリケーションが圧縮されて格納されている場合、この起動処理にて伸長処理が行われる。また、DMAC301は、コピーアプリの読み出しが完了すると、CPU2によるコピーアプリの起動処理と並行して画像処理装置をプリンタとして動作させるプリンタアプリを読み出す(S805)。CPU2によってコピーアプリが起動されると、画像処理装置はコピー機として動作可能なコピースタンバイ状態となる(S806)。
コピーアプリの起動処理及びプリンタアプリの読み出しが完了すると、CPU2は、プリンタアプリの起動処理を行う(S807)。また、DMAC301は、プリンタアプリの読み出しが完了すると、CPU2によるプリンタアプリの起動処理と並行して画像処理装置をスキャナとして動作させるスキャナアプリを読み出す(S808)。CPU2によってプリンタアプリが起動されると、画像処理装置はプリンタとして動作可能なプリンタスタンバイ状態となる(S809)。
プリンタアプリの起動処理及びスキャナアプリの読み出しが完了すると、CPU2は、スキャナアプリの起動処理を行う(S810)。また、DMAC301は、スキャナアプリの読み出しが完了すると、CPU2によるスキャナアプリの起動処理と並行して画像処理装置をFAXとして動作させるFAXアプリを読み出す(S811)。CPU2によってスキャナアプリが起動されると、画像処理装置はスキャナとして動作可能なスキャナスタンバイ状態となる(S812)。スキャナアプリの起動処理及びFAXアプリの読み出しが完了すると、CPU2は、FAXアプリの起動処理を行う(S813)。CPU2によってFAXアプリが起動されると、画像処理装置はFAXとして動作可能なFAXスタンバイ状態となる(S814)。これにより、画像処理装置の全ての機能が起動し、システムスタンバイ状態となって処理を終了する。
本実施例においては、画像処理装置の各機能を制御するアプリケーションの起動処理において、夫々のアプリケーションの起動順に優先順位を設ける。また、他のアプリケーションの起動が完了していない状態であっても、起動の完了したアプリケーションに対応する機能については使用可能とする。これにより、電源投入後、画像処理装置の機能のうち、一の機能を使用可能となるまでの期間を短縮化することが可能となる。尚、上記の説明においては、コピー、プリンタ、スキャナ、FAXの順にアプリケーションを起動する例を説明したが、これらのアプリケーションの起動順は、ユーザによって選択可能であり、所望の機能から使用開始することができる。
本実施例においては、コントローラ1の起動処理において、診断プログラム、OSプログラム及びアプリケーションプログラム等、夫々のプログラムの読み込み及び起動処理の他の例について説明する。尚、実施例1と同様の符号を付す構成については実施例1と同一又は相当部を示し、説明を省略する。実施例1の図3に示すS305のCPU2の初期化処理や、S307に示すOSプログラムの読み出し及び起動処理、S308、S309に示すアプリケーションプログラムの読み出し及び起動処理においては、CPU2は、圧縮されて格納されているプログラムを伸長(解凍)処理した上で起動する。図9(a)は、圧縮されたプログラムの読み出し、伸長処理及び起動処理を時系列で示す図である。図9(a)に示すように、通常の処理としては、タイミングT1においてDMAC301がプログラムの読み出しを開始し、タイミングT2において読み出しが完了した圧縮プログラムをCPU2が伸長処理し、タイミングT3において伸長が完了したプログラムをCPU2が起動し、タイミングT4において起動処理が完了する。
ここで、DMAC301による処理とCPU2による処理は並列動作が可能である。しかしながら、圧縮プログラムの伸長処理はプログラムが全て読み出された後でなければ開始不可能であるため、図9(a)に示す例においては、DMAC301によるプログラムの読み出し処理と、CPU2によるプログラムの伸長処理とを並列して行うことができない。本実施例においては、プログラムを分割して圧縮、格納することにより、プログラムの読み出し処理と伸長処理との並列動作を可能とする。図9(b)、(c)を用いて、本実施例に係るプログラムの読み出し及び伸長、起動処理について説明する。図9(b)は、プログラムを2分割して圧縮し、格納した例を示す図である。図9(b)の例においては、プログラムはn1、n2の部分に分割され、ROM5若しくはイニシャルデータ記憶部308に格納されている。
タイミングT´1において、DMAC301がプログラムn1部分の読み出しを開始し、タイミングT´2においてプログラムn1部分の読み出しが完了する。すると、DMAC301は続いてプログラムn2部分の読み出しを開始する。また、CPU2はタイミングT´2において、読み出しが完了したプログラムn1部分の伸長処理を開始する。即ち、CPU2は、DMAC301がプログラムn2部分を読み出すのと並行して、プログラムn1部分の伸長処理を実行する。タイミングT´3において、プログラムn2部分の読み出し及びプログラムn1部分の伸長処理が完了すると、CPU2は、プログラムn2部分の伸長処理を開始する。
その後、タイミングT´4においてプログラムn2部分の伸長処理が完了すると、CPU2はプログラムn1部分とn2部分との結合処理を実行する。タイミングT´5において、結合処理が完了すると、CPU2は、プログラムの起動処理を開始し、タイミングT´6においてプログラムの起動処理が完了する。図9(a)、図9(b)に示すように、プログラムの読み出し処理と伸長処理との一部を並行処理することにより、図9(b)におけるタイミングT´1からタイミングT´6までの間隔は、図9(a)に示すタイミングT1からタイミングT4までの間隔よりも短縮されている。このように、プログラムを分割して圧縮及び格納することにより、プログラムの読み出し処理と伸長処理との一部並行処理が可能となる。従って、プログラムの読み出し開始から起動完了までに要する時間を短縮することが可能となる。
図9(c)は、更にプログラムの分割数を上げ、n1〜n5の5つの部分に分割した例を示している。図9(c)に示すように、プログラムの分割数を上げることにより、プログラムの読み出し処理と伸長処理とを並行処理可能な期間が長くなり、プログラム起動完了までに要する時間を更に短縮することが可能となる。本実施例において説明したプログラムの読み出し、伸長及び起動処理は、実施例1〜4までにおいて説明した様々なプログラムの読み出し及び起動処理に適用することが可能であり、圧縮され格納されているプログラムであれば適用することができる。
尚、上記の説明においては、CPU2がプログラムの伸長処理を行う例を説明したが、この他、専用のデータ伸長回路を設け、当該回路にデータ伸長を実行させることも可能である。また、上記の例を適用するにあたり、分割されたプログラムの部分を読み出す時間(Td)とプログラムの部分を伸長する時間(TE)とが同等となるように調整することが好ましい。このような調整は、プログラムの分割数や圧縮方式を調整することにより可能である。これにより、図9(b)、図9(c)に示す並列処理期間において、プログラムの読み出し処理若しくはプログラムの伸長処理のうち一方のみが処理完了し、他方が処理未完了となる状態を防ぐことができる。結果として、DMAC301若しくはCPU2の一方が他方の処理完了まで待機しなければならない状態を低減することができ、処理の効率化を図ることが可能となる。
本発明の実施例に係る画像処理装置のコントローラ及び操作パネルの構成を示すブロック図である。
本発明の実施例に係る画像処理装置の起動処理を示すタイミングチャートである。
本発明の実施例に係る画像処理装置の起動処理を示すフローチャートである。
本発明の他の実施例に係る画像処理装置のコントローラ及び操作パネルの構成を示すブロック図である。
本発明の他の実施例に係る画像処理装置の起動処理を示すフローチャートである。
本発明の他の実施例に係る画像処理装置のコントローラ及び操作パネルの構成を示すブロック図である。
本発明の他の実施例に係る画像処理装置の起動処理を示すフローチャートである。
本発明の他の実施例に係る画像処理装置の起動処理を示すフローチャートである。
本発明の他の実施例に係るプログラムの読み出し、伸長及び起動処理を時系列で示す図である。
符号の説明
1 コントローラボード
2 CPU
3 ASIC
4 RAM
5 ROM
6 USB−I/F
7 ネットワークI/F
8 UIコネクタ
9 操作パネル
10 LCDコントローラ
11 電源制御回路
301 DMAC
302 CPU−I/F
303 RAMコントローラ
304 ROMコントローラ
305 USBコントローラ
306 ネットワークコントローラ
307 UIコントローラ
308 イニシャルデータ格納部
309 バス
310 H/W初期化完了フラグ部
311 起動完了タイマ