(58)【調査した分野】(Int.Cl.,DB名)
前記第2の処理手段は、前記第2の処理手段が起動してから前記出力手段へ前記情報の転送を開始するまでの時間として設定された第2の遅延時間と、前記第2の処理手段に対して設定された動作モードに応じて決定される第3の遅延時間とを用いて、前記第1の遅延時間を算出する、請求項2に記載の情報出力システム。
前記第2の処理手段は、前記通知された起動タイミングが前記第2の処理手段の起動タイミングに対して遅延する場合に起動タイミングの異常を検知する、請求項1〜3のいずれか1項に記載の情報出力システム。
前記第2の処理手段が前記異常を検知した場合に該異常を検知した日時、該異常を検知したときに加算される異常発生回数、出力された情報のページ数をログとして記憶する第3の記憶手段を含む、請求項6に記載の情報出力システム。
前記第2の処理手段は、前記第2の前記異常発生回数が所定の回数を超えた場合に、前記制御手段に対して前記異常が発生した旨を通知する、請求項7に記載の情報出力システム。
【発明を実施するための形態】
【0009】
本実施形態の情報出力システムについて説明する前に、従来の情報出力システムの一例としての画像形成装置の構成について説明しておく。
図1は、従来の画像形成装置の構成例を示した図である。従来の画像形成装置は、モジュールとして、コントローラ100と、エンジン110とを含んで構成される。コントローラ100は、画像形成装置を制御し、印刷指示を受け付け、印刷対象の画像データをメモリから読み出す処理を実行する。エンジン110は、コントローラ100から画像データを取得し、印刷出力する。これらのモジュールは、1つの装置内に実装されるものであってもよいし、2以上の装置に分散して実装されていてもよい。
【0010】
コントローラ100は、上記の処理を実行するために、画像形成装置を制御するCTL-CPU(Central Processing Unit)101と、画像データを蓄積するメモリ102と、蓄積された画像データを読み出すCTL-ASIC(Application Specific Integrated Circuit)103とを含む。
【0011】
CTL-CPU101は、印刷指示を受け、実行コマンドをCTL-ASIC103に出力する。CTL-ASIC103は、CTL-CPU101から実行コマンドを受けて起動し、メモリ102から画像データを読み出す。CTL-ASIC103は、データを一時的に蓄積する内部バッファを備え、読み出した画像データを内部バッファに蓄積する。そして、CTL-ASIC103は、待機状態となる。
【0012】
エンジン110は、エンジン110を制御するENG-CPU111と、コントローラ100から画像データを取得し、所定の画像処理を実行するENG-ASIC112と、ENG-ASIC112から出力された画像データに基づき、印刷出力するプロッタ113とを含む。
【0013】
ENG-CPU111は、印刷を制御するためのソフトウェアを実行し、コントローラ100から画像データを取得させるために、開始コマンドをENG-ASIC112に出力する。ENG-ASIC112は、ENG-CPU111から開始コマンドを受けて起動し、コントローラ100のCTL-ASIC103の内部バッファに蓄積された画像データを読み出し、取得する。ENG-ASIC112も、CTL-ASIC103と同様、データを一時的に蓄積する内部バッファを備え、取得した画像データを内部バッファに蓄積する。そして、ENG-ASIC112は、待機状態となる。
【0014】
ENG-ASIC112は、開始コマンドを受けてからプロッタ113へデータを出力するまでの時間に関する情報を、ENG-ASIC遅延量として保持し、開始コマンドを受けてからENG-ASIC遅延量が経過したタイミングで、内部バッファに蓄積した画像データのプロッタ113への出力を開始する。プロッタ113は、出力された画像データに基づき、印刷出力する。
【0015】
以降、CTL-ASIC103がメモリ102から画像データを読み出し、ENG-ASIC112がCTL-ASIC103から画像データを取得し、ENG-ASIC112がプロッタ113へ画像データを出力することを繰り返す。これにより、1ページ分、あるいは2ページ以上のデータ出力を行うことができる。
【0016】
従来の構成では、CTL-ASIC103の起動を先に行い、その後、ENG-ASIC112を起動することで、正常な印刷結果を得ることができる。しかしながら、ソフトウェアに不具合が生じ、これらの起動の順序が入れ替わると、CTL-ASIC103の内部バッファに画像データがないにもかかわらず、ENG-ASIC112から読み出しが行われるため、ENG-ASIC112からは、不正なデータが出力され、印刷結果が異常画像となってしまう。
【0017】
このようなソフトウェアに不具合が生じても、異常画像を発生させないようにするため、本実施形態では、CTL-CPUから書き込み可能な記憶手段を設ける。記憶手段としては、別途メモリ等を設けてもよいが、ENG-ASIC内の記憶回路であるレジスタを使用することができる。
【0018】
図2は、情報出力システムの一例としての画像形成装置の第1の構成例を示した図である。本実施形態の画像形成装置は、従来の画像形成装置と同様、コントローラ10と、エンジン20とを含み、コントローラ10は、CTL-CPU11、メモリ12、CTL-ASIC13を含み、エンジン20は、ENG-CPU21、ENG-ASIC22、プロッタ23を含む。
【0019】
メモリ12は、出力する情報としての画像データを記憶する記憶手段として機能し、CTL-ASIC13は、メモリ12から画像データを読み出す第1の処理手段として機能する。
【0020】
ENG-ASIC22は、CTL-ASIC13からの画像データを、プロッタ23へ転送する第2の処理手段として機能し、プロッタ23は、転送された画像データを出力する出力手段として機能する。
【0021】
本実施形態では、CTL-CPU11が、CTL-ASIC13の起動タイミングを通知する通知手段として機能し、ENG-ASIC22が参照する、通知された起動タイミングを記憶するための記憶手段としてのレジスタ24を備える。
【0022】
CTL-CPU11は、CTL-ASIC13へ実行コマンドを発行した後に、CTL-ASIC13の起動タイミングを通知するためのMemory Readyコマンドを発行する。Memory Readyコマンドは、CTL-ASIC13を介してレジスタ24に書き込まれる。レジスタ24には、Memory Readyコマンドが書き込まれた日時も関連付けて記憶される。
【0023】
ENG-ASIC22は、ENG-CPU21から開始コマンドを受信し、起動するが、その開始コマンドの受信とレジスタ24へのMemory Readyコマンドの書き込みの日時を確認する。レジスタ24へのMemory Readyコマンドの書き込みの日時が先である場合、CTL-ASIC13の起動後にENG-ASIC22が起動するので、画像データをメモリ12から読み出し、ENG-ASIC22がプロッタ23へ転送し、正常な印刷結果を得ることができる。
【0024】
レジスタ24へのMemory Readyコマンドの書き込みの日時が後である場合、順序が入れ替わっているので、ENG-ASIC22は、次のような処理を行う。
【0025】
ENG-ASIC22は、レジスタ24へのMemory Readyコマンドの書き込みが開始コマンドの受信に対して遅延した時間に応じて、レジスタ24へのMemory Readyコマンドの書き込み後に画像データの転送を開始し、または画像データの読み出しを中止するように要求する。すなわち、ENG-ASIC22は、このページの印刷をキャンセルするように要求する。
【0026】
ENG-ASIC22は、いずれの処理を実行するかを判断するために、ENG-ASIC遅延量のほかに、ENG-ASIC遅延量より小さく、許容できる遅延時間(許容遅延量)を保持する。許容遅延量は、ENG-ASIC遅延量に合わせてプロッタ23にデータ出力を開始できるようにするために待つことができる限界値として設定される。これにより、ENG-ASIC22は、上記の遅延した時間を許容遅延量と比較し、遅延した時間の方が小さい場合、レジスタ24へのMemory Readyコマンドの書き込み後に画像データの転送を開始し、遅延した時間の方が大きい場合、CTL-ASIC13に対して印刷をキャンセルするように要求することができる。
【0027】
具体的には、ENG-ASIC22は、遅延した時間の方が小さい場合、ENG-ASIC遅延量が経過するまでに、ENG-ASIC22が画像データを取得することが可能であるため、レジスタ24へのMemory Readyコマンドの書き込み後に画像データの転送を開始する。これにより、印刷を続行することができる。
【0028】
一方、遅延した時間の方が大きい場合、ENG-ASIC遅延量が経過するまでに、ENG-ASIC22が画像データを取得できないため、印刷を続行しても、印刷結果が異常画像となってしまう。したがって、このページの印刷をキャンセルするように、CTL-ASIC13に対して要求する。
【0029】
このとき、ENG-ASIC22は、ENG-CPU21に対してキャンセルを要求する割り込みを発行し、ENG-CPU21が、CTL-ASIC13を介してCTL-CPU11へキャンセルを通知する。CTL-CPU11は、CTL-ASIC13に対して画像データの読み出しをキャンセルするように指示する。これにより印刷をキャンセルした後、CTL-CPU11は、再度実行コマンドを発行することができる。この実行コマンドの発行により、印刷シーケンスを最初からやり直すことができる。
【0030】
ENG-ASIC22は、CTL-ASIC13、ENG-ASIC22の順に起動されるのではなく、その起動の順序が逆の起動タイミングの異常を検知することができる。画像形成装置は、異常が発生したことを示す情報を記憶する記憶手段としてのレジスタ25を備えることができる。異常が発生したことを示す情報としては、エラーフラグを用いることができる。ENG-CPU21は、エラーフラグを参照し、エラー発生を認識することができる。
【0031】
最初に、
図3を参照して、通常の印刷動作の流れについて説明する。通常の印刷動作は、レジスタ24へのMemory Readyコマンドの書き込み後に、ENG-CPU21から開始コマンドを受信する場合の動作である。
【0032】
CTL-CPU11は、ユーザから印刷要求を受け付けると、印刷対象の画像データをメモリ12に蓄積し、ユーザにより設定された印刷設定等の各種のパラメータをENG-CPU21へ送信する(S1)。ENG-CPU21は、受信したパラメータをENG-ASIC22へ送信する(S2)。ENG-ASIC22は、受信したパラメータを、画像データに対して画像処理を行うために使用する。
【0033】
CTL-CPU11は、CTL-ASIC13に対して実行コマンドを発行する(S3)。CTL-ASIC13は、実行コマンドにより起動し、メモリ12に対して画像データを要求し(S4)、画像データを読み出す(S5)。読み出された画像データは、CTL-ASIC13の内部バッファに蓄積される。
【0034】
CTL-CPU11は、CTL-ASIC13を介してENG-ASIC22にMemory Readyコマンドを発行し、レジスタ24に書き込む(S6)。
【0035】
ENG-CPU21は、ENG-ASIC22に対して開始コマンドを発行する(S7)。ENG-ASIC22は、開始コマンドにより起動し、レジスタ24を確認する。この例では、CTL-ASIC13、ENG-ASIC22の順序で起動しているので、起動タイミングに異常が発生していないと判断する。このため、ENG-ASIC22は、CTL-ASIC13に対して画像データを要求し(S8)、CTL-ASIC13の内部バッファから画像データを取得する(S9)。
【0036】
CTL-ASIC13は、メモリ12に対して画像データを要求し、画像データを読み出すことを繰り返す。ENG-ASIC22も、CTL-ASIC13に対して画像データを要求し、CTL-ASIC13の内部バッファから画像データを取得することを繰り返す。これらの処理は、メモリ12内の全ての画像データが読み出されるまで繰り返される。
【0037】
ENG-ASIC22は、自身が保持するENG-ASIC遅延量が経過したとき、取得した画像データをプロッタ23へ転送し、印刷出力させる(S10)。この処理も、ENG-ASIC22が取得した画像データの全てが転送されるまで繰り返される。
【0038】
次に、
図4および
図5を参照して、レジスタ24へのMemory Readyコマンドの書き込みの前に、ENG-CPU21から開始コマンドを受信する場合の起動順序が入れ替わったときの印刷動作について説明する。
図4は、起動順序が入れ替わったときの印刷動作の第1の例を示した図である。
図4のS1、S2は、
図3のS1、S2と同様の処理であるため、ここではその説明を省略する。
【0039】
この例では、CTL-CPU11が実行コマンドを発行する前に、ENG-CPU21がENG-ASIC22に対して開始コマンドを発行する(S3)。ENG-ASIC22は、レジスタ24を参照し、まだMemory Readyコマンドが書き込まれていないので、エラーフラグを設定し、レジスタ25に格納する。
【0040】
その後、CTL-CPU11が、CTL-ASIC13に対して実行コマンドを発行し(S4)、CTL-ASIC13が、実行コマンドにより起動する。そして、CTL-ASIC13が、メモリ12に対して画像データを要求し(S5)、画像データを読み出す(S6)。読み出された画像データは、CTL-ASIC13の内部バッファに蓄積される。画像データの蓄積後、CTL-CPU11は、CTL-ASIC13を介してENG-ASIC22へMemory Readyコマンドを発行し、レジスタ24に書き込む(S7)。
【0041】
ENG-ASIC22は、開始コマンドの受信からレジスタ24へのMemory Readyコマンドの書き込みまでの遅延した時間を計測し、その時間が、自身が保持する許容遅延量より大きいか、小さいかを判定する。この例では、許容遅延量より小さいので、ENG-ASIC21はCTL-ASIC13に対して画像データを要求し(S8)、CTL-ASIC13の内部バッファから画像データを取得する(S9)。
【0042】
CTL-ASIC13は、メモリ12に対して画像データを要求し、画像データを読み出すことを繰り返す。ENG-ASIC21も、CTL-ASIC13に対して画像データを要求し、CTL-ASIC13の内部バッファから画像データを取得することを繰り返す。これらの処理は、メモリ12内の全ての画像データが読み出されるまで繰り返される。
【0043】
ENG-ASIC22は、自身が保持するENG-ASIC遅延量が経過したとき、取得した画像データをプロッタ23へ転送し、印刷出力させる(S10)。この処理も、ENG-ASIC22が取得した画像データの全てが転送されるまで繰り返される。
【0044】
図5は、起動順序が入れ替わったときの印刷動作の第2の例を示した図である。
図5のS1〜S3は、
図4のS1〜S3と同様の処理であるため、ここではその説明を省略する。
【0045】
この例では、遅延した時間が、許容遅延量より大きいため、エンジン側では、エラーフラグを設定し、レジスタ25に格納した後、ENG-ASIC22がENG-CPU21に対して割り込みを発行し、印刷をキャンセルするように要求する(S4)。
【0046】
一方、コントローラ側では、CTL-CPU11が、CTL-ASIC13に対して実行コマンドを発行し(S5)、CTL-ASIC13が、実行コマンドにより起動する。そして、CTL-ASIC13が、メモリ12に対して画像データを要求し(S6)、画像データを読み出す(S7)。読み出された画像データは、CTL-ASIC13の内部バッファに蓄積される。画像データの蓄積後、CTL-CPU11は、CTL-ASIC13を介してENG-ASIC22へMemory Readyコマンドを発行し、レジスタ24に書き込む(S8)。
【0047】
ENG-CPU21は、ENG-ASIC22からの要求を受けて、ENG-ASIC22およびCTL-ASIC13を介してCTL-CPU11にキャンセルを要求し(S9)、CTL-CPU11がCTL-ASIC13に対してメモリ12から画像データの読み出しをキャンセルするように指示する(S10)。印刷がキャンセルされた後、CTL-CPU11が実行コマンドを発行して、印刷シーケンスを最初からやり直す。
【0048】
ここで、上記の許容遅延量は、ENG-ASIC22にレジスタを持ち、ENG-CPU21から設定可能とされていてもよい。これにより、エンジン20を制御するためのプログラムを実行するENG-CPU21が、その制御において許容できる適切な遅延量を設定することが可能となる。
【0049】
また、許容遅延量は、ENG-ASIC22内で自動計算し、レジスタに設定してもよい。これにより、ENG-CPU21の処理量を減らすことができる。この場合、ENG-CPU21から設定可能なレジスタ値であるENG-ASIC遅延量と、ENG-ASIC22の動作モード設定に応じて自動的に決まる値である内部遅延量とを用いて計算することができる。これにより、ENG-CPU21の処理を削減することができる。
【0051】
図6は、画像形成装置の第2の構成例を示した図である。
図6に示す画像形成装置は、レジスタ24、25のほか、レジスタ26、メモリ27をさらに備えている。コントローラ10の構成は、
図2に示した例と同様であるため、ここでは説明を省略する。エンジン20の構成も、ENG-CPU21、ENG-ASIC22、プロッタ23、レジスタ24、25については、
図2に示した例と同様であるため、ここでは説明を省略する。
【0052】
レジスタ26は、起動順序が入れ替わったというエラーが発生した回数をカウントするために使用される。レジスタ26は、エラーが発生する度にENG-ASIC22によりカウンタ値が1ずつ加算され、加算された値が格納される。レジスタ26は、ENG-CPU21により読み出すことが可能とされている。
【0053】
メモリ27は、エラーが発生したときに、エラーが発生した日時(タイムスタンプ)、レジスタ26に格納されたエラーカウンタの値(累計値)、ページ数(累計値)をエラーログとして格納する。メモリ27も、ENG-CPU21により読み出すことが可能とされている。このようにENG-CPU21による読み出しを可能にすることで、エラー発生状況のログを読み出し、ENG-CPU21が実行するプログラムのデバッグに活用することができる。
【0054】
ENG-ASIC22は、レジスタ26を参照し、格納されたエラーカウンタの値が設定された基準値を超える場合、異常と判定し、割り込みを発行する。ENG-ASIC22は、レジスタを持ち、ENG-CPU21からレジスタに基準値を設定することができる。基準値は、任意の値を設定することができる。これにより、ENG-CPU21がエラー発生回数の異常を認識し、実行するプログラムのデバッグに活用することができる。
【0055】
ENG-CPU21は、割り込みの発行を受けて、ENG-ASIC22、CTL-ASIC13を介してCTL-CPU11にキャンセルを要求し、CTL-CPU11がCTL-ASIC13に対してキャンセルを指示する。
【0056】
このようにして印刷動作をキャンセルする場合、ENG-CPU21は、任意のタイミングで、メモリ27に格納されたエラーログとしてのエラーカウンタの値、ページ数を消去(リセット)することができる。
【0057】
以上のようにして、起動順序が入れ替わったとしても、Memory Readyコマンドの書き込み後に画像データの取得を開始し、またはキャンセルするように要求するので、印刷結果に異常を発生させないようにすることができる。
【0058】
これまで本発明を、情報出力システム、情報の出力方法およびプログラムとして上述した実施の形態をもって説明してきた。しかしながら、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができるものである。また、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【0059】
したがって、上記のプログラムが記録された記録媒体、上記のプログラムが格納され、ダウンロード要求を受けて提供するサーバ装置等を提供することができるものである。
【0060】
また、情報の出力は、印刷に限らず、音の出力や映像の出力であってもよい。これらの場合、起動順序の入れ替わりで、ノイズ(雑音や映像の乱れ)が入る等の異常が発生するが、上記の処理を行うことで、ノイズの発生をなくすことができる。