JP3724536B2 - Image output control device and process execution control method thereof - Google Patents

Image output control device and process execution control method thereof Download PDF

Info

Publication number
JP3724536B2
JP3724536B2 JP03876398A JP3876398A JP3724536B2 JP 3724536 B2 JP3724536 B2 JP 3724536B2 JP 03876398 A JP03876398 A JP 03876398A JP 3876398 A JP3876398 A JP 3876398A JP 3724536 B2 JP3724536 B2 JP 3724536B2
Authority
JP
Japan
Prior art keywords
data
processing
image output
processing unit
image
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.)
Expired - Fee Related
Application number
JP03876398A
Other languages
Japanese (ja)
Other versions
JPH11237960A (en
Inventor
弘文 小松原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP03876398A priority Critical patent/JP3724536B2/en
Publication of JPH11237960A publication Critical patent/JPH11237960A/en
Application granted granted Critical
Publication of JP3724536B2 publication Critical patent/JP3724536B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、例えば、クライアントから印刷要求ジョブを受け取って、プリントアウト可能なデータに変換し、これを電子写真技術を用いたプリンタなどの画像出力装置に対してデータ転送を行うようにする画像出力制御装置に関する。
【0002】
【従来の技術】
画像出力制御装置からデータ転送する画像出力装置として電子写真方式のプリンタを利用する場合には、当該画像出力装置の画像出力処理速度が一定であり、1ページ分の画像出力処理の途中で、処理を中断することができないという特性を考慮する必要がある。
【0003】
また、画像出力制御装置では、一般に、画像出力装置への出力対象とするデータの入力処理や、入力したデータに対する画像処理等の複数の処理が存在するが、画像出力装置の持つ画像出力処理速度で、異なる画像を連続して画像出力装置から出力するようにするためには、このような複数の処理を並行して実行する機構が必要となる。
【0004】
また、電子写真方式の画像出力装置は、画像出力処理速度が一定であり、かつ、画像出力処理の途中で中断できないために、画像出力制御装置において、上記の複数の処理の中でも画像出力装置に画像データを供給する処理が、画像出力装置の画像出力処理速度に応じて画像データを供給することを保証できないと、画像出力装置が正常な画像を出力できないという問題が生じる。
【0005】
このようにな画像出力制御装置の複数の処理において、時間的な制約のある処理を優先的に実行させることに注目した従来例が種々開示されており、利用する方式として、CPU利用に関する方式、Busの利用権に関する方式、マルチメディアのデータ処理に関するバス利用方式、プリンタの画像メモリに対するバス利用権に関する方式などが知られている。
【0006】
例えば、特開平4−343142号公報では、電子写真方式を、コピーマシン、プリンタ、ファクシミリなどの複合機に応用した場合の画像形成装置において、複数のタスクでの画像形成を制御する方式として、当該複数のタスクを、高速に処理することが要求されているものと、そうでないものとに分類し、高速に処理することが要求されるタスク(高速タスク)を優先的に処理するために、その高速タスクに固定の高い優先度を割り付けるとともに、通常のタスクは時分割方式で制御するようにしている。
【0007】
また、特開平8−123634号公報では、複合機において、複数装置からデータ転送の要求が発生した際に、その要求を、装置別に優先順位を設けることによって、バスの利用権の調整を行う方式を開示している。具体的には、複数のバスマスタ(ファクシミリ、スキャナ、SCSIディスク、EPCメモリ、ネットワーク等)が、バスへ同時にアクセスを求めた時に、各マスタのアクセスすべき順番を裁定する方式を開示している。
【0008】
また、特開平8−95907号公報では、マルチファンクション装置(多機能装置)における複数処理間でのバス利用の優先制御(バス転送が中心)を行う方式として、同じ時間帯に同時に動作する必要のある機能を区分しておき、各時間帯毎での機能手段からの要求の優先順位が異なることに着目し、各時間帯に応じて、機能手段の要求の優先順位を変更し、その優先順位でバスを利用させるようにする調停装置を設けて、複数の機能手段に関するデータ転送の状態を示す信号に基づき優先順位を決定する方式を開示している。
【0009】
また、特開平7−178973号公報では、電子写真方式の画像出力装置を印刷装置とした場合に、印刷装置に画像データを供給するために、画像展開手段と、画像データ転送手段とを持ち、画像展開手段は、印刷装置より出力可能な画像データを生成して画像メモリに格納し、画像データ転送手段は、画像メモリに格納された画像データを印刷装置に転送するようにするとともに、画像展開手段による処理が連続的に発生しても、画像データ転送手段の処理を優先的に実行できるようにバス使用権を調整する方式について開示している。
【0010】
さらに、特開平6−332850号公報では、複数の装置からのバス利用要求が重複すると、リアルタイム性の高い装置からのバス要求が待たされてしまい、リアルタイム性のある処理の実行に支障が生じる問題を解決するため、バス調停の方式として、チャネル(装置)に対して優先順位を設定し、優先順位の高い装置のバス使用要求に優先権を与えるようにしている。さらに、マルチメディアデータが周期的に実行されることに注目し、一定期間に一定量のデータ転送方式が保証できる機能を有している。この場合、優先順位の低い装置のバス使用は、優先順位の高い装置により、一定時間内にバス使用権を奪われる。
【0011】
【発明が解決しようとする課題】
電子写真方式の画像出力装置から、複数の画像を連続して画像出力するためには、画像出力制御装置が、画像出力装置の出力処理時間に合わせて、画像データを定常的に画像出力装置に供給する機構が必要とされる。
【0012】
しかし、この点に関し、上記従来例では、以下のような問題点がある。
【0013】
すなわち、特開平4−343142号公報に示されたものは、画像出力装置上で実行される複数タスクに対して、優先的に実行する必要のあるタスクを優先する方式であるが、基本的には、既に公知となっている処理の優先制御方式についてのみの方式であり、バス等を用いたデータ転送が含まれる処理をどのように処理するかについては触れられておらず、データ処理(CPU)と、データ転送(Bus)の両方を優先して実行する必要のある、この発明の対象とする画像出力制御装置における複数処理の実行を制御することはできない。
【0014】
また、特開平7−1789073号公報、特開平6−332850号公報、特開平8−123634号公報および特開平8−95907号公報に記載されたものは、複数のバス利用要求に対して、バス使用権を調停する方式に関するものであるが、これらの技術は、いずれも複数の装置間でのバス使用に対する優先順位の設定を示したものである。このように、上記従来技術は、複数の装置間でのバスの優先使用に関するものであるため、同一の装置内において、優先度の異なる複数の処理要求が発生した時に、その処理レベルで、バスの使用を調停することができない問題がある。
【0015】
また、画像出力制御装置では、前述したように、複数の処理が、CPUとバスを競合するために、これらの計算機資源をどのように管理するかが重要になるが、従来例のいずれの方式も、装置からバスへ利用要求が発行されたことを前提としており、バスに対して処理要求を発行するために必要となるCPUのスケジューリング方式については触れられていない。
【0016】
ところで、一般に、画像出力制御装置は、ワークステーション(以下WSと記述)や、パーソナルコンピュータ(以下PCと記述)のような計算機システム上で構築される。画像出力装置としてネットワークプリンタを想定した場合の画像出力制御装置での処理の概略を、データの流れに従って次に説明する。
【0017】
この場合の画像出力制御装置での処理は、大きく分けると、ネットワーク上のリモートクライアントからプリントジョブ(画像出力制御情報と出力対象データ)を受け取る処理と、受け取ったデータを画像出力装置から出力可能なデータに変換する処理(ラスタライズ)と、ラスタライズされたデータを画像出力装置へ転送する処理とからなる。一般には、ラスラタライズされたデータは、データサイズが大きくなるため、一旦圧縮処理され、画像出力装置へのデータ転送時に伸長を行う方式がとられている。
【0018】
このように画像出力制御装置では、クライアントから受け取ったプリントジョブを、画像出力装置に転送して画像出力させるために、複数の処理を、同時並行して実行している。これらの処理の特徴としては、データ処理を中心とした、主にCPUを多く利用する処理と、データ転送を中心とした、主にバスを多く利用する処理とが混在していることである。
【0019】
データ処理を中心とする処理は、出力可能なデータに変換(ラスタデータ生成)する処理や、ネットワークから入力されたデータのデータ転送用のパケットを解釈する処理等である。
【0020】
データ転送が中心となる処理としては、メインメモリ(第1のメモリ)中に取り込んだプリントジョブのデータを2次記憶装置に格納する処理と、この2次記憶装置から、プリントジョブのデータをデータ変換のために、メインメモリ(第2のメモリ)に転送する処理と、この第2のメモリ中のデータを伸長用デバイスに転送する処理等がある。
【0021】
このデータ転送を中心とする処理においては、データ転送を、DMA(Direct Memory Access)により実行するが、DMAは、一回のデータ転送を行おうとするごとに、CPUに割り込みを発生させて、当該DMAの実行を受け付けるように動作する。
【0022】
通常、割り込みルーチンは、どの処理よりも優先して実行することが可能であるが、割り込み処理自体が長くなると、通常レベルの処理に悪影響が及ぶために、割り込み処理内での動作記述は、ある一定処理以上のことを記述できない。このため、DMAを呼び出した処理は、割り込み処理を受けた後に、DMAに関する処理の実行を割り込み処理の中で行うことはせず、優先度が通常の処理のレベルで、DMAに関する処理の実行を行なわなければならない。
【0023】
したがって、このDMAを呼び出す処理が、画像出力装置からの時間制約を伴う処理である場合であっても、この処理が優先的にCPUを利用できないため、他の処理の実行要求の状態によっては、CPUの獲得ができずに、データ転送が遅れてしまうという問題が発生する。
【0024】
例えば、ラスタ画像生成処理と、既に蓄積された画像データを画像出力装置へ転送する処理とが並行に動作する場合においては、ラスタ画像生成処理はCPUが行い、画像出力装置へデータ転送するための処理(蓄積されたデータをメモリに読み込む処理と、メモリに読み込んだデータを伸長デバイスに転送する処理)は、各デバイスとメモリ間のDMA転送により行う。
【0025】
このデータ転送中には、わずかの時間ではあるが、各DMA転送終了時に、CPUに割り込み処理が発生し、次のDMAを発行するためCPUを獲得して、DMAを起動する。
【0026】
この場合に、特に、メモリから伸長デバイスにデータ転送する処理が、画像出力装置の画像出力処理速度に応じて実行できないと、画像出力装置へのデータ転送が遅れてしまい、画像出力装置から乱れた画像が出力されてしまうことになる。
【0027】
しかし、CPUに対するスケジューリングが、適切に行われていない場合には、ラスタデータ生成のための処理によりCPUが頻繁に使用されていると、DMAを起動するための処理の実行が遅れてしまうという問題が発生する。また、CPUに対するスケジューリングが、適切に行われていても、CPUのスケジューリングだけでは、バス利用時に、バスでのデータ転送速度が他の処理から影響を受けてしまう。
【0028】
次に、デバイス間でのバス利用の調整方式について考える。
画像出力制御装置では、ラスタ化し、かつ、圧縮したデータを、一旦、2次記憶装置に格納し、格納したデータを2次記憶装置からメインメモリへ読み出し、そのメインメモリから伸長デバイスにデータを転送し、データ伸長しながら画像出力装置へデータを送るようにしている。
【0029】
この場合に、2次記憶装置からのデータの読み出し処理は、画像出力装置でのデータ出力処理速度に応じた速度で行う必要があるが、2次記憶装置へのデータ書込み処理は、画像出力装置での画像出力処理速度に応じた速度で行う必要はない。
【0030】
すなわち、画像出力制御装置では、このような一つの装置におけるバス利用の優先制御が行う必要があるが、上記従来技術では、装置間のバス利用の競合時に、装置間にバス利用の優先権を設定することで、バス競合を回避する方式が開示されているだけであって、上記従来技術での装置間でバスの優先権を設定する方式では、画像出力制御装置という一つの装置内におけるバス利用の優先制御が行えないという問題がある。
【0031】
電子写真方式の画像出力装置は、高画質化、カラー化に伴い、1ページ当りの画像データ量は増加し、また、高速化に伴い、1ページ当りの出力時間は短くなってきている。このような状況の下で、画像出力制御装置で処理するデータ量も増加し、処理自体の量も増加している。
【0032】
さらに、画像出力制御装置から電子写真方式の画像出力装置に、その画像処理速度に応じて画像データを供給するためには、画像データを画像出力装置に転送する転送時間を、ある一定時間内に保証しなければならないが、その保証時間も、画像出力処理の速度向上に伴って短くなる。
【0033】
このため、画像データを画像出力制御装置から、画像出力装置の画像出力処理速度に応じて、画像出力装置にデータ転送することが、高画質化、カラー化、高速化にとっても、ますます重要な課題となる。
【0034】
特に、カラー画像を高速出力するための電子写真方式の画像出力装置の方式として、複数の転写ドラムを備えるタンデム方式があるが、このタンデム方式においては、K(黒)、Y(黄)、M(マゼンタ)、C(シアン)の4色それぞれに対応した4つの転写ドラムを備え、複数ページを連続して出力する場合には、隣り合った4ページの異なる色の転写処理を、同時に行うことで、画像出力処理の高速化を計っている。
【0035】
このタンデム方式を用いたプリンタでは、その処理速度に合わせて、データの供給が保証されないと、著しく画像出力の効率が低下することになる。また、上記のタンデム方式では、同時に、4ページの画像出力処理を行っているので、その中の1つのページの、1色のデータの供給が間に合わなかった場合には、同時に処理している他のページの画像出力も同時に乱れるという問題を生じる。
【0036】
このように、フルカラープリンタを画像出力装置とする画像出力制御装置での処理は、主にCPUを用いて実行する演算処理と、デバイス間のデータ転送を行う複数の処理とを、並行して実行することが要求されるため、CPUのスケジューリング(DMAの実行を要求するための処理の実行)や、バスの調停を独立に考えるだけでは、画像出力処理速度に応じて画像データを画像出力装置に転送することができない。
【0037】
この発明は、上記の問題点を解決するためのもので、画像データを、画像出力装置に、その画像出力速度に応じて、転送することを保証できる画像出力制御装置を提供することを目的とするものである。
【0038】
【課題を解決するための手段】
上記課題を解決するため、この発明による画像出力制御装置(請求項1)は、
入出力バスを介して互いに接続される、少なくとも、データ入力処理部、蓄積部、データ出力処理部と、
前記データ入力処理部、前記蓄積部および前記データ出力処理部での処理実行の開始、終了を制御する制御処理部と、
を備え、前記データ入力処理部、前記蓄積部または前記データ出力処理部において、データ転送を行うために、前記入出力バスを介してDMA転送を行って、前記データ出力処理部から画像データを画像出力装置に転送するようにする画像出力制御装置において、
前記データ入力処理部、前記蓄積部および前記データ出力処理部の各処理部において実行される各処理中で、前記画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は第1のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第1のスケジューリング方式とは異なる第2のスケジューリング方式で処理を実行するようにする処理スケジューリング手段と、
前記処理の各々が、DMAを発行する前に、当該処理が前記第1のスケジューリング方式で処理されるものであるか、前記第2のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第1のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第2のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第1のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第1のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第1のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録するバス制御手段と、
を備えることを特徴とする。
【0040】
また、この発明による画像出力制御装置の処理実行制御方法(請求項13)は、
入出力バスを介して互いに接続される、少なくとも、データ入力処理部、蓄積部、データ出力処理部と、
前記データ入力処理部、前記蓄積部および前記データ出力処理部での処理実行の開始、終了を制御する制御処理部と、
を備え、前記データ入力処理部、前記蓄積部または前記データ出力処理部において、データ転送を行うために、前記入出力バスを介してDMA転送を行って、前記データ出力処理部から画像データを画像出力装置に転送するようにする画像出力制御装置の処理実行制御方法において、
前記データ入力処理部、前記蓄積部および前記データ出力処理部の各処理部において実行される各処理中で、前記画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は第1のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第1のスケジューリング方式とは異なる第2のスケジューリング方式で処理を実行するように設定しておき、
前記各処理について、前記入出力バスを利用するためにDMAを発行する前に、当該処理が前記第1のスケジューリング方式で処理されるものであるか、前記第2のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第1のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第2のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第1のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第1のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第1のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録する
ことを特徴とする。
【0041】
【作用】
上記の構成の画像出力制御装置においては、その複数の処理について、画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は、他の処理に対して優先的に実行できるように固定の高い優先度を設定しておく。
【0042】
CPUは、処理スケジューリング手段により、この特定処理を、他に優先して実行するようにするとともに、バス制御手段により、この特定処理に関するDMA転送は、他に優先して行うように制御する。
【0043】
したがって、画像出力制御装置は、特定処理として、データ出力処理部から画像出力装置への転送の処理を、特定処理とすることにより、画像出力装置の出力処理速度に応じて、データを画像出力装置に転送することを保証することができる。
【0044】
そして、請求項の発明においては、バス制御手段により、各処理がバスを利用するために、DMAを発行する前に、優先度の高い処理がバスを利用中であるかどうかをチェックする。そして、優先度の高い処理がバスを利用中であるときには、DMAを発行せず、優先度の高い処理がバスを利用していない時にのみ、DMAの発行をするようにする。
【0045】
したがって、優先度の高い処理のバス利用処理中は、他の優先度の低い処理からのDMA発行により、その処理が妨げられることはなく、時間制約のあるデータ転送は制約時間内に行われることが保証される。
【0046】
【発明の実施の形態】
以下、この発明による画像出力制御装置およびその処理実行制御方法の実施の形態を、図を参照しながら説明する。
【0047】
まず、この実施の形態の画像出力制御装置が適用されるネットワークプリンタシステムについて説明する。
【0048】
[ネットワークプリンタシステムの説明]
図2は、このネットワークプリンタシステムの全体構成を示すもので、プリントジョブを発行する複数のクライアントマシン1が、ネットワーク2に対して接続されているとともに、前記複数のクライアントマシン1が共通に利用することができる画像出力装置(プリンタ)3が、画像出力制御装置10を介してネットワーク2に接続されている。画像出力装置3は、この例では、電子写真技術を用いたタンデム方式のプリンタで構成されている。
【0049】
このネットワークプリンタシステムでは、クライアントマシン1側で、プリントジョブと出力先のプリンタ名(画像出力制御装置10のネットワーク2におけるホスト名)を指定したプリントジョブの発行をすることで、クライアントマシン1上にある文書データを、所望のプリンタから出力するようにすることができる。プリントジョブは、出力対象とする文書データと、それをどのように出力するかを指定した情報(出力部数、丁合出力、両面出力等)からなっている。
【0050】
クライアントマシン1から発行されたプリントジョブは、ネットワーク2を通じて、指定された画像出力制御装置10に入力される。画像出力制御装置10は、受け取ったプリントジョブから画像出力装置3で画像出力可能な形式の画像データ(印刷データ)を生成して、画像出力装置3に転送する。画像出力装置3は、印刷を実行して、画像をプリントアウトする。
【0051】
画像出力制御装置10は、ワークステーション(以下WSと記述)や、パーソナルコンピュータ(以下PCと記述)などの計算機システムを用いて構成されている。
【0052】
[実施の形態の画像出力制御装置の基本構成]
図1に、この実施の形態の画像出力制御装置10の基本構成を示す。図1は、画像出力制御装置10の処理機能を中心にして、装置構成を記述したもので、画像出力制御装置10は、データ入力処理部11と、ラスタデータ生成処理部12と、データ出力処理部13と、これらの処理部11〜13の動作を制御するプリント制御処理部14とからなる。また、画像出力制御装置10は、プリントジョブ記憶部15と、ラスタデータ記憶部16とを備える。
【0053】
データ入力処理部11は、ネットワーク通信により、クライアントからのプリントジョブを受け取り、プリントジョブ記憶部15にプリントジョブのデータを記憶する。
【0054】
ラスタデータ生成部12は、プリントジョブ記憶部15からデータを読み出し、画像出力装置3から出力可能なデータ、一般には、ラスタデータにデータ変換する処理を行う。この場合、ラスタデータ生成部12は、画像データ圧縮手段を備え、扱うデータ量が大きい場合には、ラスタデータ生成部12は、生成したデータを圧縮してラスタデータ記憶部16に記憶する。
【0055】
データ出力処理部13は、ラスタデータ記憶部16から出力対象とする画像データを画像出力装置3にデータ転送する。データ出力処理部13は、画像データ伸長手段を備え、画像データが圧縮されている場合には、画像出力装置3へデータ転送する前にデータ伸長をする。
【0056】
プリント制御処理部14は、処理部11〜13のそれぞれから各処理についての通知を受け取り、次の処理の実行指示を行う。
【0057】
すなわち、プリント制御処理部14は、クライアントからプリントジョブ転送の依頼をデータ入力処理部11を通じて受け取ると、それをデータ入力処理部11に通知して、データ入力処理を開始させる。この開始指示を受けたデータ入力処理部11は、プリントジョブのデータを受け取り、プリントジョブ記憶部15に記憶し、プリントジョブ記憶部15への記憶が終了すると、プリント制御処理部15にその旨を通知する。
【0058】
プリント処理制御部14はこの通知を受け取ると、ラスタデータ生成処理部12に、その処理対象データを通知する。ラスタデータ生成処理部12は、通知されたデータを対象として、プリントジョブデータ記憶部15から取得し、ラスタデータの生成処理を行い、ラスタデータ記憶部16に記憶する。
【0059】
そして、ラスタデータの生成および記憶の処理が完了すると、ラスタデータ生成処理部12は、ラスタデータ記憶部16に記憶したラスタデータの識別情報をプリント制御処理部14に通知する。プリント制御処理部14は、データ出力処理部13に、通知のあったラスタデータを知らせる。これを受けて、データ出力処理部13が、ラスタデータ記憶部16から画像出力装置へのデータ転送を実行する。
【0060】
[画像出力制御装置のハードウエア構成例]
図3は、この実施の形態の画像出力制御装置10のハードウェア構成例を示すものである。
【0061】
図3において、101および102はCPU、103はメインメモリ、104はメインバス−I/OバスブリッジおよびI/Oバスコントローラ、105はI/Oバス、106はNIC(Network Interface Card)、107はDMAC(DMAコントローラ)を備えるI/Fボード、108および109はDMACを備え、SCSIインターフェースによりデータのやり取りをするI/Fボード、110はDMAC,データ伸長部およびIOT(画像出力装置)インターフェースを備えるデータ伸長、転送用ボード、111はスプールディスク、112はプリコレーションディスクである。
【0062】
メインメモリ103は、蓄積部の1次記憶装置を構成し、スプールディスク111は、蓄積部の第1の2次記憶装置を構成し、プリコレーションディスク112は、蓄積部の第2の2次記憶装置を構成する。
【0063】
データ入力処理部11は、この例では、NIC(Network Interface Card)101により構成されて、このNIC101を通して、ネットワークからのプリントジョブのデータの入力転送を行う。入力されたプリントジョブを記憶するプリントジョブ記憶部15としてはスプールディスク111を用いる。
【0064】
ラスタデータ生成処理部12は、スプールディスク111に記憶されたデータをメインメモリ103中に読み込み、ラスタデータを生成する。そして、生成されたラスタデータは、ラスタデータ記憶部16に記憶する。このラスタデータ記憶部16としては、プリコレーションディスク112を用いる。
【0065】
データ出力処理部13は、プリコレーションディスク12から、一旦、メインメモリ103に画像データを読み出し、このメインメモリ103から、読み出した画像データを伸長しながら画像出力装置3へ転送する。
【0066】
この実施の形態の実施例においては、画像出力装置3としては、図4に示すように、フルカラーのタンデム方式を用いた電子写真方式の画像出力装置を用いている。
【0067】
フルカラーの電子写真方式の画像出力装置では、黒(K)、黄(Y)、マゼンタ(M)、シアン(C)を塗り合せてカラー画像を生成している。タンデム方式では、図4に示したように、4個の転写ドラム21K,21Y,21M,21Cを並列に並べることで、画像形成のためのペーパパス22の時間を短縮し、画像出力の短縮化を実現している。なお、図4において、23は画像が形成される用紙である。
【0068】
1ドラム方式では、1ページのフルカラー画像を形成するためには、4色分塗り合せを行う必要があるから、同一ページが4回、転写ドラムを繰返し通らなければならない。この場合には、画像出力制御装置は、各1回の転写ドラムの回転に併せて、同一ページを構成する4色分の情報を、順次に画像出力装置に転送すればよい。
【0069】
これに対して、タンデム方式では、図4に示すように、4個の転写ドラム21K,21Y,21M,21Cで、4ページの画像出力が同時並行(各ページ毎に対応した色の処理を行う)して行う。したがって、画像出力制御装置でのデータ出力処理は、このような処理に応じたデータ転送を画像出力装置に対して行い、画像出力装置の高速の画像出力処理速度に応じて、データを供給することを保証しなければならない。
【0070】
つまり、この実施の形態において、画像出力制御装置10上で、画像出力装置3の画像出力速度に応じて実行しなければならない処理は、画像出力装置3の画像出力処理速度から派生する時間制約のある処理である。この時間制約のある処理が、その制約時間内に終了しなければ、画像出力装置3に画像データを供給することが間に合わないために出力画像が乱れてしまう。
【0071】
この実施例では、圧縮されたラスタデータを、ラスタデータ記憶部16としてのプリコレーションディスク112からメインメモリ103に読み出し、そして、メインメモリ103のデータを伸長ボードに渡すまでの処理が、画像出力装置3の画像出力処理速度から派生する時間制約のある処理である。
【0072】
画像出力制御装置10では、上述した通り、ネットワークプリンタシステムにおいて、画像出力装置がネットワークプリンタとしての機能を果たすために複数の処理が並行して動作している。
【0073】
[処理のスケジューリング方式の例の説明]
図5は、処理のスケジューリング方式として、ラウンドロビン方式と、固定優先度の横取り方式による処理の実行方法を示す。
【0074】
ここで、時間制約のある処理とは、処理の要求が発生してから、その処理がある時間以内に終了しなければならない処理のことであり、ここでは、処理を終了しなければならない時間を終了期限という。
【0075】
図5(A)に示す処理スケジューリング方式は、複数の処理を平等に実行するためのラウンドロビン方式である。この方式は、処理要求が発生した順に処理を実行するが、複数の処理を平等に実行するため、処理要求が発生したすべての処理を時分割(タイムシェアリング)により実行する。
【0076】
近年のWSやPCでは、デスクトップ上で複数の処理を同時並行して行えるように、このラウンドロビン方式が採用されていることが多いが、この方式では、図5(A)に示したように、処理数により処理の実行待ち時間が増えるため、時間制約のある処理には向いていない。すなわち、図5(A)に示した例では、処理P1の終了期限があっても、他の処理要求の発生により時分割により処理しなければ処理が多くなったため、処理P1の実際の終了時間は、終了期限よりも後になってしまっている。
【0077】
このラウンドロビン方式に対して、処理に優先度を与え、優先度の高い処理が終了するまでは、優先度の低い処理を実行しないという固定優先度の横取り方式がある。図5(B)は、この固定優先度の横取り方式による処理の例を示すものである。
【0078】
図5(B)に示した例では、処理P1の優先度が高いとしている。すなわち、処理P2が実行中に、これよりも優先度の高い処理P1が発生すると、他の処理に優先して、この処理P1を実行する。この処理P1の実行中に、これより優先度の低い処理P3の処理要求が発生したとしても、このP3処理要求は、キュー(待ち行列)に入れられて、優先処理P1が終了まで実行される。
【0079】
この固定優先度の横取り方式においても、優先度の同じ処理P2と、処理P3とは、基本的には、図5(A)のラウンドロビンと同様に、時分割処理が実行されることになる。
【0080】
この固定優先度の横取り方式は、優先度の高い処理に処理の実行権を与えるため、優先度の低い処理の処理数の影響を受けない。このことから、時間制約のある処理に対しては、この方式を適用することが有効である。
【0081】
[実施の形態の画像出力制御装置の処理の流れの説明]
図6に、この実施の形態の画像出力制御装置における処理の概要について、各デバイス間のデータの流れの示す。DMAは、Direct Memory Accessの略記として用い、DMAn(n=1,2,…,6)は、複数のDMA処理を識別するために用いる。また、メモリM1,M2,M3,M4は、それぞれメインメモリ103内のメモリエリアを示している。
【0082】
DMA1は、NIC106で、ネットワークからデータ入力されてデータをメモリM1に転送するためのものである。
【0083】
DMA2は、メモリM1中のデータを,スプールディスク111に転送するためのものである。
【0084】
DMA3は、スプールディスク111のデータを、ラスタデータ生成のためにメモリM2に転送するためのものである。この場合、ラスタデータ生成処理部12が、メモリM2のデータに対して、画像出力装置3に供給する画像データへの変換および圧縮処理を施し、その処理結果の圧縮画像データを、メモリM3に保管する。
【0085】
DMA4は、メモリM3の圧縮された画像データを、プリコレーションディスク112に転送するためのものである。
【0086】
DMA5は、プリコレーションディスク112に蓄積されたデータを、メモリM4に転送するためのものである。
【0087】
DMA6は、メモリM4からデータ伸長、転送用ボード110にデータ転送するためのものである。
【0088】
この実施の形態においては、画像出力装置3の画像出力処理速度から派生する時間制約のある処理は、圧縮画像データを、プリコレーションディスク112からメモリM4に読み出す処理(DMA5)と、メモリM4に読み出した圧縮データをデータ伸長、転送用ボードにデータ転送する処理(DMA6)である。したがって、プリコレーションディスク112に蓄積されているデータは、画像出力装置3の画像出力処理速度により画像出力が可能となる。
【0089】
DAMによるデータ転送は、次のようにしてなされる。
図7は、I/Oデバイスとデータ転送を行う場合の計算機資源の利用の概要を示したものである。
【0090】
例えばディスクからデータを読み出す場合には、読み出し処理プログラムが起動されると、図7に示したように、計算機資源を使って動作する。読み出し処理は、読み出しアドレスとデータサイズとが指定されて起動される。これは、CPU上でDMAコントローラ(DMAC)にDMA要求を発行することによりなされる。
【0091】
DMACが、このDMA要求を受け取ると、一回、DMAを実行する。このときのデータサイズは、指定することが可能であるが、上限値がシステムにより決められている。
【0092】
DMA転送が終了すると、DMACはCPUに割り込みをかけ、DMA転送が終了したことを知らせる。読み出したいデータサイズ全体の転送が終了していない場合には、CPUは、再度、DMAの起動を発行する。これを繰り返すことでデータ転送を行っている。
【0093】
通常、I/Oデバイスへのアクセスが生じた場合には、全体のスループットを向上するために、DMACが実行中は、読み出し命令を実行した処理は、待機状態になり、他の処理を実行することができる。
【0094】
次に、複数の処理で、バス利用が競合した場合の制御について、比較例と対照しながら、この実施の形態の場合の競合制御について、以下に説明する。
【0095】
[複数の処理によるバス利用の競合制御の比較例]
まず、この発明との比較例について説明する。図8および図9は、異なるDMAC(異なる装置)が、バス利用を競合した場合の比較例の動作を示したものである。
【0096】
図8の比較例は、複数の処理によるバス利用要求が発行された時に、当該複数の処理がバスを時分割に利用する場合の例である。この例のように、複数の処理によるバス利用が発生した時に、単純に時分割でバスを利用するようにした場合には、バスの利用競合により、図8の下方に示すように、例えば、処理Aのみでバスが利用された場合の終了時間が、バスにおいてデータ転送時間が競合する他の処理Bの影響を受け、時間DLだけ遅延してしまうことが分かる。
【0097】
図9の比較例は、このような問題に対応するために、バス利用要求が発行されたときに、DMAC1を優先的に実行することを指定した場合のバス利用の状態を示したものである。
【0098】
図9では、DMAC1の管理下にある優先度の高い処理Aの実行中に、DMAC2の管理に係る処理Bからバス利用を要求しても、処理Aのバスを用いたデータ転送時間が影響されることがない。さらに、処理Bの実行中に、処理Aの実行要求が起こった場合でも、処理Aが待たされる時間は、最大でも、1つのDMAを行う時間内の時間τに押さえることができる。
【0099】
次に、同じDMACに対して、複数の処理が、バス利用を要求した場合の動作について、図10と図11とに示す。
【0100】
図10は、FIFO方式でバス利用を制御した場合で、先に要求を発行した方のバス利用を優先して行う方式である。この方式の場合には、先に要求が発行された処理が実行中の間に、次の処理の要求が起こったときには、先に要求が発行された処理の優先度が高いために、後の処理の実行開始時間が、その先の処理の終了まで待たされてしまう。
【0101】
図11は、同一のDMACに対して、複数の処理要求が生じた時に、時分割にバス利用を制御する方式を示す。
【0102】
この場合には、図8に示した結果と同様に、処理Aのバス利用によるデータ転送時間が他の処理(処理B)の実行により影響を受けてしまうことが分かる。
【0103】
[実施の形態におけるバス制御方式についての説明]
この発明の実施の形態においては、複数のスケジューリング方式を採用し、スケジューリング方式ごとに優先度を設定する。
【0104】
画像出力装置の画像出力速度に応じて処理を実行しなければならない処理は、固定優先度で優先度の高いものから実行できるスケジューリング方式に設定する。以下、このスケジューリング方式の優先度を、リアルタイム・クラス(以下RTクラスという)と呼ぶことにする。このRTクラスの優先度は、他のスケジューリング方式の優先度よりもすべて高い。そして、画像出力装置の画像出力速度に応じて処理を実行しなければならないRTクラスの処理が、複数個、ある場合には、その優先度を当該RTクラスのスケジューリング方式内で設定する。
【0105】
このRTクラス以外で扱う処理は、前述の図5(A)を用いて説明した時分割のラウンドロビン方式でスケジューリングを行う。このスケジューリング方式の優先度を、以下、タイムシェアリング・クラス(以下TSクラスという)と呼ぶことにする。
【0106】
さらに、この実施の形態では、各処理(デバイスドライバ)から、DMACにDMAを発行する前に、次のようなバス制御処理を行うようにする。
【0107】
すなわち、各処理(デバイスドライバ)から、DMACにDMAを発行する前に、自分よりも優先される処理の実行中であるか否かチェックを行う。このチェックの結果、自分よりも優先される処理の実行中であれば、DMAを発行せず、順番待ちの状態にする。自分よりも優先される処理の実行中でなければ、各処理は、そのままDMAを発行し、当該処理が設定されているスケジューリング方式による競合制御に任せるようにする。
【0108】
図12は、バス制御処理を呼び出すタイミングを示すものである。すなわち、従来は、図12(A)に示し、また、図7に示したように、処理の開始要求が発生したとき、CPUがその開始要求を認識したら、即座にバスにDMAを発行するようにしていた。これに対して、この実施の形態では、CPUは、処理開始要求を認識したら、図12(B)に示すように、即座にDMAを発行するのではなく、わずかの期間であるが、DMA発行前の期間CBにおいて、前記のバス制御処理を行うようにするものである。
【0109】
[実施の形態におけるバス制御処理の説明]
以下に、この実施の形態においてバス制御処理手段として用意するデータ構造と動作について説明する。
【0110】
バス制御処理手段は、バスを優先的に利用する処理の有無を示す変数RT−flagと、バスを優先利用している処理の優先度を保持する変数pri−proと、DMACへのDMAの発行を待たされている処理の処理IDを保持するキュー(待ち行列)を持つ。
【0111】
変数RT−flagは、「1」より大きければ、バスを優先的に利用するRTクラスの処理が存在し、「0」であれば、バスを優先的に利用するRTクラスの処理は存在しないことを意味している。変数pri−proは、RTクラスの中での各処理の優先度を示すものである。
【0112】
また、キューは、DMAを呼び出そうとしている処理の優先度のクラスにより分けて管理する。RTクラスの処理は、優先度別のキューを持ち、TSクラスの処理はTSクラスのキューとして一括に管理する。
【0113】
次に、バス制御処理の動作について、図13〜図16を参照しながら説明する。
【0114】
[処理がRTクラスの場合の動作]
RTクラスの処理が、バス利用を行うために、最初にDMA呼び出しを行う場合の動作を、図13に示す。
【0115】
まず、これよりDMAを発行しようとする処理TEMPがRTクラスのものかどうかを確認し(ステップS101)、RTクラスであれば、変数RT−flagの値を1加算する(ステップS102)。次に、変数RT−flagが「1」より大きいかどうか、すなわち、既にバスを優先的に利用する処理が実行されているかどうかをチェックする(ステップS103)。
【0116】
変数RT−flagが「1」以下の場合には、バスを優先的に利用する処理が実行されていないことを意味するため、変数pri−proに、処理TEMPの優先度を設定して、DMACにDMA実行を指示する(ステップS104)。
【0117】
一方、変数RT−flagが「1」より大きい場合には、既にバスを優先的に利用する処理が実行中であることを意味するため、変数pri−proの値と自分の処理の優先度temp−proとの比較を行う(ステップS105)。そして、自分の優先度temp−proが高い場合には、変数pri−proに、自分の優先度temp−proを設定し、DMACにDMA実行を指示する(ステップS106)。
【0118】
また、自分の優先度temp−proが、変数pri−proより低い場合には、自分の処理TEMPのID(識別符号)を、RTクラスのキューの、自分の優先度temp−proのところに追加し、自分の処理を待機状態にする(ステップS107)。
【0119】
次に、既にDMAを発行し、1回のDMAが終了して、割り込みにより処理が起動された場合の動作を、図14を用いて説明する。
【0120】
まず、DMAを発行しようとする処理TEMPがRTクラスのものかどうかを確認し(ステップS201)、RTクラスであれば、次のDMAを発行する前に、自分の処理の優先度temp−proが、変数pri−proの優先度より高いかどうかチェックする(ステップS202)。
【0121】
自分の処理の優先度temp−proが、変数pri−proの優先度より高い場合は、自分の処理が一番優先されるので、引き続きDMACにDMAの実行を指示する(ステップS203)。変数pri−proの優先度の値が、自分の優先度temp−proより高い場合には、RTクラスのキューの自分の優先度に、自分の処理のIDを追加し、自分の処理を待機状態にする(ステップS204)。
【0122】
次に、データ転送要求に対して最後のDMAを実行し、終了の割り込みを受けた場合に、データ転送を終了する場合の動作について、図15を用いて説明する。
【0123】
まず、終了の割り込みを受けた処理TEMPがRTクラスのものかどうかを確認し(ステップS301)、RTクラスであれば、変数RT−flagの値を1減算する(ステップS302)。そして、減算後の変数RT−flagが「0」か、それより大きいか判断する(ステップS303)。
【0124】
減算後の変数RT−flagが「0」であれば、バス利用しようとしているRTクラスの処理はないことを意味しているので、TSクラスのキューにある、それぞれの処理IDで示される全ての処理を起動する(ステップS304)。また、減算後の変数RT−flagが「1」以上であれば、変数pri−proの優先度の値を、RTクラスのキューの一番高い優先度で順番待ちしている処理の優先度に設定し、RTクラスのキューにある処理IDで示される処理を起動する(ステップS305)。
【0125】
[処理がTSクラスの場合]
TSクラスの処理がバス利用を行うために、最初にDMA呼び出しを行う場合には、図13のステップS101から、図16のステップS401に移行する。そして、まず、変数RT−flagが「0」であるかどうかをチェックする(ステップS401)。ここで、RT−flagが「0」の場合には、バスを優先的に利用する処理が実行されてないことを意味するため、DMACにDMAを発行する(ステップS402)。
【0126】
RT−flagが「0」でない場合には、既にバスを優先的に利用する処理が実行中であることを意味するため、自分の処理IDを、TSクラスのキューに追加し、自分の処理を待機状態にする(ステップS403)。
【0127】
既にDMAを発行し、前の回のDMAが終了して、割り込みにより処理が起動された場合には、図14のステップS201から図16のステップS401に移行する。この場合にも、次のDMAを発行する前に、RT−flagが「0」であるかどうかをチェックして、上記と同じ動作を行う。
【0128】
さらに、最後のDMAを実行し、終了の割り込みを受けた場合に、データ転送を終了する場合には、図15のステップS301から図15のステップS306に移行し、TSクラスの転送終了処理を行う。
【0129】
このTSクラスの転送終了処理においては、RT−flagが「0」であるかどうかをチェックして、RTクラスの処理があれば、TSクラスのキューにある処理についてのDMAの発行はせず、RTクラスの処理の終了を待つ。チェックの結果、RTクラスの処理が存在しなければ、TSクラスのキューにある処理の実行を行う。TSクラスのキューに処理がなければ、処理は終了となる。
【0130】
以上のようにして、バスを用いたデータ転送を含む処理に対しても、処理の優先度を反映させた実行を可能とすることができる。
【0131】
[変形例]
上記の実施の形態の説明では、RTクラスの優先度が同じ場合には、要求が発生した順に実行するようにしたが、この方法に限るものではない。次に説明する方法は、RTクラスの優先度が同じ場合には、時分割でバスを利用する方式である。これについて説明する。
【0132】
この場合には、バス制御処理手段で用いるデータとして同一の優先度の処理の数を示すpri−pro−numを、さらに設ける。
【0133】
RTクラスの処理が、バス利用を行うために、最初にDMA呼び出しを行う場合には、まず、変数RT−flagが「0」であるかどうかをチェックし、RT−flagの値を「1」加算する。
【0134】
前記チェックの結果、変数RT−flagが「0」の場合には、バスを優先的に利用する処理が実行されてないことを意味するため、変数pri−proに処理の優先度を設定して、DMACにDMA実行を指示する。
【0135】
また、前記チェックの結果、変数RT−flagが「0」でない場合には、既にバスを優先的に利用する処理が実行中であることを意味するため、変数pri−proの値と、自分の処理の優先度との比較を行う。自分の優先度が高い場合には、変数pri−proに自分の優先度を設定し、DMACにDMA実行を指示する。優先度が同じ場合には、変数pri−pro−numの値を「1」加算し、DMACにDMAを発行する。そうでない場合には、自分の処理IDを、RTクラスのキューの自分の優先度のところに追加し、自分の処理を待機状態にする。
【0136】
次に、この例の場合において、既にDMAを発行し、前回のDMAが終了して、割り込みにより処理が起動された場合の動作について説明する。
【0137】
次のDMAを発行する前に、変数pri−proの値が、自分の処理の優先度より高くないことを確認する。確認されれば、自分の処理が一番優先されるので、引き続きDMACにDMAの実行を指示する。変数pri−proの値が、自分の優先度より高い場合には、RTクラスのキューの自分の優先度に、自分の処理IDを追加し、自分の処理を待機状態にする。
【0138】
次に、この例の場合のデータ転送を終了する場合の動作について説明する。
【0139】
データ転送要求に対して最後のDMAを実行し、終了の割り込みを受けた場合には、変数RT−flagの値を「1」減算する。このとき、変数RT−flagが「0」であれば、TSクラスのキューにある処理IDの処理を全て起動する。
【0140】
変数RT−flagが「1」以上で、変数pri−pro−numが「1」以上であれば、同一の優先度の処理が、バス転送を実行中であるので、変数pri−pro−numの値を「1」減算する。
【0141】
変数RT−flagが「1」以上で、変数pri−pro−numが「0」であれば、変数pri−proの値として、RTクラスのキューの一番高い優先度でキューされている処理の優先度を設定し、RTクラスのキューにある一番高い優先度の全ての処理IDの処理を起動する。
【0142】
このようにすることで、RTクラスの処理が同じ優先度の場合に、バス利用を時分割に並行に実行することができる。なお、TSクラスに対しての動作は、前述の例と全く同じである。
【0143】
次に、バス制御処理手段の起動のタイミングの変形例について説明する。上記の例では、指定したDMA転送の最小単位の実行終了毎に、バス利用の制御を実行するようにした。これは、優先度の高い処理のバス利用の待ち時間を最小にする方式である。
【0144】
しかし、バスのバンド幅や、リアルタイムにデータ転送が要求されるデータ量等の関係で、時間制約はあるものの、制約時間までに余裕がある場合も考えられる。この場合には、各処理で、バス制御処理を行う回数を、各DMAの終了割り込みのタイミング毎にするのではなく、例えば、ある処理では、10回に1回行い、別の処理では、5回に1回行うというようにすることも可能である。
【0145】
次に、画像出力制御装置の幾つかの他の実現方法の概要を、図17から図21に示す。これらの実現方式においても、この発明を適用することで、画像データを電子写真方式の画像出力装置の画像出力速度から派生する時間制約のある処理を、優先的に実行することが可能である。
【0146】
図17、図18の例は、蓄積部として一つの2次記憶装置を利用する場合の構成概要を示したものである。すなわち、図17は、図3に対応するハードウエア構成例であり、また、図18は、図6に対応する処理の流れを説明するための構成図である。蓄積部の2次記憶装置としては、前述の例では、スプールディスク111と、プリコレーションディスク112の2個を用いたが、この例の場合には、図17および図18に示したように、スプール、プリコレーションディスク120の1個のみを用いるようにする。
【0147】
この例の場合には、データ転送の回数は、前述の図3、図6の構成の場合の例と同じであるが、2次記憶装置が1個であるため、同じ2次記憶装置に対してDMAを行う回数が多くなる。
【0148】
図19および図20の例は、画像出力制御装置内に、画像データ生成処理部を持たない場合についての構成概要を示したものである。
【0149】
図19の例の場合のデータ転送について説明する。
この例では、既に画像出力装置から出力可能なデータに変換されたデータが、ネットワークから画像出力制御装置10に送られてくる場合を想定している。この場合、画像出力制御装置10には、ラスタデータであって、かつ、圧縮された形で入力データが送られてくる。
【0150】
したがって、この図19の例においては、プリントジョブデータ記憶部を構成するスプールディスク111は、不要である。したがって、図6のDMA3およびDMA4は、この例の場合には存在せず、メモリM2,M3も不要となる。
【0151】
この図19の例の場合には、DMA1は、NIC106からメモリM1へのデータ転送であり、DMA2はメモリM1から2次記憶装置(プリコレーションディスク112)へのデータ転送であり、DMA5は、2次記憶装置からメモリM4へのデータ転送であり、DMA6は、メモリM4からデータ伸長、転送用ボード110へのデータ転送である。
【0152】
図20は、この例の場合の画像出力制御装置10の機能ブロック図であり、前述例の図1の機能ブロック図に対応している。両図の比較から明らかなように、この例の場合には、プリントジョブ記憶部15と、ラスタデータ生成部12が不要になっている。
【0153】
図21の例は、画像データ生成処理部が生成したデータを、2次記憶装置に蓄積せず、直接、画像出力装置に転送する場合の構成概要を示したものである。
【0154】
この例の場合には、DMA1は、NIC106からメモリM1へのデータ転送、DMA2はメモリM1から2次記憶装置(スプールディスク111)へのデータ転送、DMA3は、2次記憶装置からメモリM2へのデータ転送、DMA6は、メモリM3からデータ伸長、転送用ボード110へのデータ転送である。
【0155】
以上のいずれの例の場合においても、この発明による画像出力制御装置によれば、画像出力制御装置から画像出力装置への画像データの転送は、画像出力装置の画像出力速度性能を最高に発揮できる状態を保証することができるものである。
【0156】
【発明の効果】
以上説明したように、この発明によれば、複数の処理を並行して実行する画像出力制御装置において、画像出力装置の出力処理速度に応じて画像出力制御装置からデータ転送することを保証することができる。したがって、画像出力装置の性能を最高に発揮させるようにすることができ、ネットワークプリンタシステムとした場合に、高速プリント処理が可能になる。
【0157】
また、画像出力装置の画像出力処理速度から派生する時間制約を受けない緒処理も、優先度の高い処理が実行していない時間を利用して実行することで、システム全体として、効率の良い動作が行える。
【0158】
さらに、画像出力装置へのデータ転送を保証するために、計算機資源の競合を避ける方式と比較して、計算機資源を必要最低限にすることで、コストダウンが計れ、さらに計算機資源の遊び時間を少なくすることができる。
【図面の簡単な説明】
【図1】この発明による画像出力制御装置の実施の形態の機能ブロック図である。
【図2】この発明の実施の形態が適用されるネットワークプリンタシステムの概念構成図である。
【図3】この発明による画像出力制御装置の実施の形態のハードウエア構成例を示す図である。
【図4】この発明の実施の形態が適用される画像出力装置の例を示す図である。
【図5】処理要求に対するスケジューリング方式の例を示す図である。
【図6】この発明による画像出力制御装置の実施の形態における処理の流れを説明するための図である。
【図7】DMA転送を説明するための図である。
【図8】バスを競合した場合のバス利用の状態を、この発明の比較例について示した図である。
【図9】バスを競合した場合のバス利用の状態を、この発明の比較例について示した図である。
【図10】バスを競合した場合のバス利用の状態を、この発明の比較例について示した図である。
【図11】バスを競合した場合のバス利用の状態を、この発明の比較例について示した図である。
【図12】この発明による画像出力制御装置の実施の形態における要部の動作タイミングを示す図である。
【図13】この発明による画像出力制御装置の実施の形態における要部の動作を説明するためのフローチャートである。
【図14】この発明による画像出力制御装置の実施の形態における要部の動作を説明するためのフローチャートである。
【図15】この発明による画像出力制御装置の実施の形態における要部の動作を説明するためのフローチャートである。
【図16】この発明による画像出力制御装置の実施の形態における要部の動作を説明するためのフローチャートである。
【図17】この発明による画像出力制御装置の蓄積部として、一つの2次記憶装置を持つ場合のハードウェア構成の概要を示した図である。
【図18】この発明による画像出力制御装置の蓄積部として、一つの2次記憶装置を持つ場合のデータ転送の流れの概要を示した図である。
【図19】この発明による画像出力制御装置内に画像データ生成処理部を持たない場合についてのデータの流れの概要について示した図である。
【図20】この発明による画像出力制御装置内に画像データ生成処理部を持たない場合についての各処理部とその関係の概要を示した図である。
【図21】この発明による画像出力制御装置の画像データ生成処理部が生成したデータを2次記憶装置に蓄積せず、直接画像出力装置に転送する場合のデータ転送の流れの概要を示した図である。
【符号の説明】
1 クライアントマシン
2 ネットワーク
3 画像出力装置
10 画像出力制御装置
11 データ入力処理部
12 ラスタデータ生成処理部
13 データ出力処理部
14 プリント制御処理部
15 プリントジョブデータ記憶部
16 ラスタデータ記憶部
101、102 CPU
103 メインメモリ(一次記憶装置)
105 I/Oバス
110 データ伸長、転送用ボード
111 スプールディスク(2次記憶装置)
112 プリコレーションディスク(2次記憶装置)
[0001]
BACKGROUND OF THE INVENTION
The present invention, for example, receives a print request job from a client, converts it into printable data, and transfers the data to an image output device such as a printer using electrophotographic technology. The present invention relates to a control device.
[0002]
[Prior art]
When an electrophotographic printer is used as an image output device for transferring data from the image output control device, the image output processing speed of the image output device is constant, and processing is performed during the image output processing for one page. It is necessary to consider the characteristic that cannot be interrupted.
[0003]
Also, in the image output control apparatus, there are generally a plurality of processes such as input processing of data to be output to the image output apparatus and image processing on the input data, but the image output processing speed of the image output apparatus Therefore, in order to continuously output different images from the image output device, a mechanism for executing such a plurality of processes in parallel is required.
[0004]
In addition, since the electrophotographic image output device has a constant image output processing speed and cannot be interrupted in the middle of the image output processing, the image output control device uses the image output device among the plurality of processes described above. If it is not possible to guarantee that the process for supplying image data supplies image data according to the image output processing speed of the image output apparatus, there arises a problem that the image output apparatus cannot output a normal image.
[0005]
Various conventional examples that focus on preferentially executing time-constrained processing in a plurality of processes of such an image output control apparatus are disclosed, and as a method to be used, a method related to CPU usage, There are known a bus usage right system, a multimedia data processing bus usage system, a printer image memory bus usage right system, and the like.
[0006]
For example, in Japanese Patent Laid-Open No. 4-343142, as an image forming apparatus when an electrophotographic method is applied to a multifunction machine such as a copy machine, a printer, and a facsimile, In order to classify multiple tasks into those that are required to be processed at high speed and those that are not, and to preferentially process tasks that are required to be processed at high speed (high-speed tasks) High-speed tasks are assigned a fixed high priority, and normal tasks are controlled in a time-sharing manner.
[0007]
In Japanese Patent Laid-Open No. 8-123634, when a request for data transfer is generated from a plurality of devices in a multi-function peripheral, the request is prioritized for each device to adjust the right to use the bus. Is disclosed. Specifically, a system is disclosed in which when a plurality of bus masters (facsimile, scanner, SCSI disk, EPC memory, network, etc.) seek access to the bus at the same time, the order in which each master should access is determined.
[0008]
In Japanese Patent Laid-Open No. 8-95907, as a method for performing priority control of bus use among a plurality of processes (mainly bus transfer) in a multi-function device (multi-function device), it is necessary to operate simultaneously in the same time zone. By classifying a certain function, paying attention to the fact that the priority of the request from the function means in each time zone is different, the priority of the request of the function means is changed according to each time zone, and the priority A method is disclosed in which an arbitration device is provided so as to use the bus, and a priority order is determined based on a signal indicating a state of data transfer regarding a plurality of functional means.
[0009]
Japanese Patent Application Laid-Open No. 7-179973 has an image expansion means and an image data transfer means for supplying image data to a printing apparatus when the electrophotographic image output apparatus is a printing apparatus. The image expansion means generates image data that can be output from the printing apparatus and stores the generated image data in the image memory. The image data transfer means transfers the image data stored in the image memory to the printing apparatus. A method of adjusting the bus use right so that the processing of the image data transfer means can be executed preferentially even if the processing by the means occurs continuously is disclosed.
[0010]
Furthermore, in Japanese Patent Laid-Open No. 6-332850, when bus use requests from a plurality of devices are duplicated, a bus request from a device having a high real-time property is awaited, and the execution of processing having a real-time property is hindered. In order to solve this problem, as a bus arbitration method, a priority is set for a channel (device), and a priority is given to a bus use request of a device having a higher priority. Furthermore, paying attention to the fact that multimedia data is executed periodically, it has a function that can guarantee a certain amount of data transfer method in a certain period. In this case, the right to use the bus of a device with a low priority is deprived within a certain time by the device with a high priority.
[0011]
[Problems to be solved by the invention]
In order to continuously output a plurality of images from an electrophotographic image output device, the image output control device steadily transfers the image data to the image output device in accordance with the output processing time of the image output device. A feeding mechanism is required.
[0012]
However, with respect to this point, the conventional example has the following problems.
[0013]
That is, Japanese Patent Laid-Open No. 4-343142 discloses a method that prioritizes tasks that need to be executed with priority over a plurality of tasks executed on the image output apparatus. Is a method only for the prioritized control method of processing that has already been known, and does not touch on how to process processing including data transfer using a bus or the like. ) And data transfer (Bus), it is impossible to control the execution of multiple processes in the image output control apparatus targeted by the present invention.
[0014]
Japanese Patent Application Laid-Open Nos. 7-1789073, 6-332850, 8-123634, and 8-95907 provide a bus for a plurality of bus use requests. This technique relates to a method for arbitrating the right to use, but these techniques all show the setting of the priority order for bus use among a plurality of devices. As described above, the prior art relates to the preferential use of the bus among a plurality of devices. Therefore, when a plurality of processing requests having different priorities occur in the same device, the bus is processed at the processing level. There is a problem that can not mediate the use of.
[0015]
In the image output control apparatus, as described above, since a plurality of processes compete with the CPU and the bus, it is important how to manage these computer resources. However, it is based on the premise that a use request has been issued from the device to the bus, and the scheduling method of the CPU necessary for issuing a processing request to the bus is not mentioned.
[0016]
By the way, in general, an image output control apparatus is constructed on a computer system such as a workstation (hereinafter referred to as WS) or a personal computer (hereinafter referred to as PC). An outline of processing in the image output control apparatus when a network printer is assumed as the image output apparatus will be described next according to the data flow.
[0017]
The processing in the image output control device in this case can be roughly divided into processing for receiving a print job (image output control information and output target data) from a remote client on the network, and output of the received data from the image output device. It consists of a process of converting to data (rasterization) and a process of transferring the rasterized data to the image output apparatus. In general, since the rasterized data has a large data size, a method is employed in which the data is temporarily compressed and decompressed at the time of data transfer to the image output apparatus.
[0018]
As described above, in the image output control apparatus, a plurality of processes are executed in parallel in order to transfer the print job received from the client to the image output apparatus and output the image. A characteristic of these processes is that a process mainly using a CPU mainly using data processing and a process mainly using a bus mainly using data transfer are mixed.
[0019]
Processing centering on data processing includes processing for conversion to outputable data (raster data generation), processing for interpreting data transfer packets of data input from the network, and the like.
[0020]
The main processes of data transfer are the process of storing the print job data captured in the main memory (first memory) in the secondary storage device, and the print job data from the secondary storage device as data. For conversion, there are a process of transferring to the main memory (second memory), a process of transferring data in the second memory to the decompression device, and the like.
[0021]
In the processing centering on this data transfer, the data transfer is executed by DMA (Direct Memory Access). The DMA generates an interrupt to the CPU every time data transfer is performed, and the DMA Operates to accept DMA execution.
[0022]
Normally, an interrupt routine can be executed with priority over any other process, but if the interrupt process itself becomes longer, the normal level process will be adversely affected, so there is a description of the operation within the interrupt process. Cannot describe more than a certain amount of processing. For this reason, the process that called the DMA does not execute the process related to the DMA in the interrupt process after receiving the interrupt process, and executes the process related to the DMA at the normal processing level. Must be done.
[0023]
Therefore, even if this DMA calling process is a process with time constraints from the image output apparatus, this process cannot be preferentially used by the CPU, so depending on the state of the execution request for other processes, There is a problem that the CPU cannot be acquired and the data transfer is delayed.
[0024]
For example, when the raster image generation process and the process of transferring the already stored image data to the image output apparatus operate in parallel, the raster image generation process is performed by the CPU and the data is transferred to the image output apparatus. Processing (processing for reading the accumulated data into the memory and processing for transferring the data read into the memory to the decompression device) is performed by DMA transfer between each device and the memory.
[0025]
During this data transfer, although it is a short time, an interrupt process is generated in the CPU at the end of each DMA transfer, the CPU is acquired to issue the next DMA, and the DMA is activated.
[0026]
In this case, in particular, when the process of transferring data from the memory to the decompression device cannot be executed according to the image output processing speed of the image output apparatus, the data transfer to the image output apparatus is delayed, and the image output apparatus is disturbed. An image will be output.
[0027]
However, if scheduling for the CPU is not properly performed, if the CPU is frequently used for processing of raster data generation, the execution of the processing for starting the DMA is delayed. Will occur. Even if the scheduling for the CPU is performed appropriately, the data transfer speed on the bus is affected by other processes when the bus is used only by the scheduling of the CPU.
[0028]
Next, consider the adjustment method of bus utilization between devices.
In the image output control device, the rasterized and compressed data is temporarily stored in the secondary storage device, the stored data is read from the secondary storage device to the main memory, and the data is transferred from the main memory to the decompression device. Thus, data is sent to the image output device while decompressing the data.
[0029]
In this case, the data reading process from the secondary storage device needs to be performed at a speed corresponding to the data output processing speed in the image output device, but the data writing process to the secondary storage device is performed in the image output device. It is not necessary to carry out at a speed corresponding to the image output processing speed in
[0030]
In other words, in the image output control device, it is necessary to perform priority control of bus use in such a single device. However, in the above-described conventional technology, the priority of bus use between devices is given when there is competition for bus use between devices. Only a method for avoiding bus contention by setting is disclosed. In the above-described method for setting the priority of a bus between devices in the prior art, a bus in one device called an image output control device is used. There is a problem that priority control of use cannot be performed.
[0031]
In an electrophotographic image output apparatus, the amount of image data per page increases as the image quality and color increase, and the output time per page decreases as the speed increases. Under such circumstances, the amount of data processed by the image output control device has increased, and the amount of processing itself has also increased.
[0032]
Further, in order to supply the image data from the image output control device to the electrophotographic image output device according to the image processing speed, the transfer time for transferring the image data to the image output device is set within a certain time. Although the guarantee time must be guaranteed, the guarantee time is shortened as the speed of the image output process increases.
[0033]
For this reason, transferring image data from the image output control device to the image output device according to the image output processing speed of the image output device is increasingly important for high image quality, colorization, and high speed. It becomes a problem.
[0034]
In particular, as a method of an electrophotographic image output device for outputting a color image at a high speed, there is a tandem method including a plurality of transfer drums. In this tandem method, K (black), Y (yellow), M (Magenta) and C (Cyan) are provided with four transfer drums corresponding to each of the four colors, and when a plurality of pages are continuously output, transfer processing of different colors on four adjacent pages is performed simultaneously. Therefore, we are trying to speed up image output processing.
[0035]
In the printer using the tandem method, the efficiency of image output is significantly reduced unless the supply of data is guaranteed in accordance with the processing speed. In the above tandem method, image output processing of four pages is performed at the same time. If one color data supply of one page is not in time, other processing is performed simultaneously. This causes a problem that the image output of this page is also disturbed at the same time.
[0036]
As described above, the processing in the image output control apparatus using a full-color printer as the image output apparatus executes, in parallel, arithmetic processing executed mainly using the CPU and a plurality of processes for transferring data between devices. Therefore, simply considering CPU scheduling (execution of processing for requesting execution of DMA) and bus arbitration independently, image data is sent to the image output device according to the image output processing speed. Cannot be transferred.
[0037]
An object of the present invention is to provide an image output control device that can guarantee that image data is transferred to an image output device in accordance with the image output speed. To do.
[0038]
[Means for Solving the Problems]
  In order to solve the above problems, an image output control device according to the present invention (claim 1)
  At least a data input processing unit, a storage unit, a data output processing unit connected to each other via an input / output bus,
  A control processing unit for controlling start and end of processing execution in the data input processing unit, the storage unit, and the data output processing unit;
  The data input processing unit, the storage unit, or the data output processing unit performs DMA transfer via the input / output bus to transfer image data from the data output processing unit to the image data. In the image output control device to be transferred to the output device,
  Among the processes executed in the processing units of the data input processing unit, the storage unit, and the data output processing unit, the specific processing subject to time constraints based on the image output processing speed of the image output device is the first scheduling A process scheduling unit configured to execute a process in accordance with a second scheduling method different from the first scheduling method, wherein the other process having a process priority lower than that of the specific process is executed;
  Each of the processes determines whether the process is processed by the first scheduling method or the second scheduling method before issuing the DMA, and Based on the determination result, control is performed so that the processing of the first scheduling method is preferentially processed, and as a result of the determination, the processing is the second scheduling method and the processing is performed. When there is a process of the first scheduling method that preferentially uses the bus, and as a result of the determination, the process is the first scheduling method, and the process When there is processing of the first scheduling method that preferentially uses the bus, the corresponding queue is added to the determined scheduling method. And bus control means for registering the process,
  It is characterized by providing.
[0040]
  Further, the processing execution control method (claim 13) of the image output control device according to the present invention comprises:
At least a data input processing unit, a storage unit, a data output processing unit connected to each other via an input / output bus,
  A control processing unit for controlling start and end of processing execution in the data input processing unit, the storage unit, and the data output processing unit;
  The data input processing unit, the storage unit, or the data output processing unit performs DMA transfer via the input / output bus to transfer image data from the data output processing unit to the image data. In the processing execution control method of the image output control device to be transferred to the output device,
  Among the processes executed in the processing units of the data input processing unit, the storage unit, and the data output processing unit, the specific processing subject to time constraints based on the image output processing speed of the image output device is the first scheduling The other processes having a lower processing priority than the specific process are executed by a second scheduling method different from the first scheduling method.Set it,
  Before issuing a DMA to use the I / O bus for each process,It is determined whether the processing is processed by the first scheduling method or the second scheduling method, and based on the determination result, the first scheduling method The control is performed so that processing is prioritized. As a result of the determination, the processing is the second scheduling method, and the bus is preferentially used for the processing. When there is a process of a scheduling method, and as a result of the determination, the process is the first scheduling method, and the first scheduling method uses a bus preferentially for the process When there is a process, the process is registered in the queue for the determined scheduling method
  It is characterized by that.
[0041]
[Action]
  In the image output control device having the above-described configuration, the specific processing subject to the time constraint based on the image output processing speed of the image output device is fixed so that the plurality of processing can be executed with priority over other processing. Set a high priority.
[0042]
The CPU executes the specific process with priority over the other by the process scheduling means, and controls the DMA transfer related to the specific process with priority over the other by the bus control means.
[0043]
Therefore, the image output control device performs the transfer processing from the data output processing unit to the image output device as the specific processing as the specific processing, so that the data is output according to the output processing speed of the image output device. Can be guaranteed to be transferred to.
[0044]
  And claims1In this invention, in order for each process to use the bus, the bus control means checks whether a process with a high priority is using the bus before issuing the DMA. When a high priority process is using the bus, no DMA is issued, and only when a high priority process is not using the bus, the DMA is issued.
[0045]
Therefore, during high-priority bus use processing, DMA processing from other low-priority processing does not hinder the processing, and time-constrained data transfer is performed within the restricted time. Is guaranteed.
[0046]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of an image output control device and a process execution control method thereof according to the present invention will be described below with reference to the drawings.
[0047]
First, a network printer system to which the image output control apparatus of this embodiment is applied will be described.
[0048]
[Description of network printer system]
FIG. 2 shows the overall configuration of this network printer system. A plurality of client machines 1 that issue print jobs are connected to a network 2 and are used in common by the plurality of client machines 1. An image output device (printer) 3 that can be connected to the network 2 via the image output control device 10. In this example, the image output device 3 is configured by a tandem printer using an electrophotographic technique.
[0049]
In this network printer system, the client machine 1 issues a print job specifying a print job and an output destination printer name (host name in the network 2 of the image output control apparatus 10) on the client machine 1, thereby allowing the client machine 1 to issue a print job. Certain document data can be output from a desired printer. The print job is composed of document data to be output and information (how many copies are output, collation output, duplex output, etc.) specifying how to output the document data.
[0050]
A print job issued from the client machine 1 is input to the designated image output control apparatus 10 through the network 2. The image output control device 10 generates image data (print data) in a format that can be output by the image output device 3 from the received print job, and transfers the image data to the image output device 3. The image output device 3 executes printing and prints out an image.
[0051]
The image output control device 10 is configured using a computer system such as a workstation (hereinafter referred to as WS) or a personal computer (hereinafter referred to as PC).
[0052]
[Basic Configuration of Image Output Control Device of Embodiment]
FIG. 1 shows a basic configuration of an image output control apparatus 10 according to this embodiment. FIG. 1 describes the apparatus configuration with a focus on processing functions of the image output control apparatus 10. The image output control apparatus 10 includes a data input processing unit 11, a raster data generation processing unit 12, and a data output process. And a print control processing unit 14 for controlling the operations of the processing units 11 to 13. Further, the image output control apparatus 10 includes a print job storage unit 15 and a raster data storage unit 16.
[0053]
The data input processing unit 11 receives a print job from the client through network communication, and stores the print job data in the print job storage unit 15.
[0054]
The raster data generation unit 12 performs processing for reading data from the print job storage unit 15 and converting the data into data that can be output from the image output apparatus 3, generally raster data. In this case, the raster data generation unit 12 includes image data compression means. When the amount of data to be handled is large, the raster data generation unit 12 compresses the generated data and stores it in the raster data storage unit 16.
[0055]
The data output processing unit 13 transfers image data to be output from the raster data storage unit 16 to the image output device 3. The data output processing unit 13 includes image data decompression means, and decompresses data before transferring the data to the image output device 3 when the image data is compressed.
[0056]
The print control processing unit 14 receives notification of each process from each of the processing units 11 to 13 and issues an instruction to execute the next process.
[0057]
That is, when the print control processing unit 14 receives a print job transfer request from the client via the data input processing unit 11, the print control processing unit 14 notifies the data input processing unit 11 of the request and starts the data input processing. Upon receiving this start instruction, the data input processing unit 11 receives the print job data, stores it in the print job storage unit 15, and when the storage in the print job storage unit 15 is completed, informs the print control processing unit 15 to that effect. Notice.
[0058]
Upon receiving this notification, the print processing control unit 14 notifies the raster data generation processing unit 12 of the processing target data. The raster data generation processing unit 12 acquires the notified data from the print job data storage unit 15, performs raster data generation processing, and stores it in the raster data storage unit 16.
[0059]
When the raster data generation and storage processing is completed, the raster data generation processing unit 12 notifies the print control processing unit 14 of identification information of the raster data stored in the raster data storage unit 16. The print control processing unit 14 notifies the data output processing unit 13 of the notified raster data. In response to this, the data output processing unit 13 executes data transfer from the raster data storage unit 16 to the image output apparatus.
[0060]
[Hardware configuration example of image output control device]
FIG. 3 shows an example of the hardware configuration of the image output control apparatus 10 of this embodiment.
[0061]
In FIG. 3, 101 and 102 are CPUs, 103 is a main memory, 104 is a main bus-I / O bus bridge and I / O bus controller, 105 is an I / O bus, 106 is a NIC (Network Interface Card), 107 is I / F boards with DMAC (DMA controller), 108 and 109 with DMAC, I / F board for exchanging data by SCSI interface, 110 with DMAC, data decompression unit and IOT (image output device) interface A data decompression / transfer board, 111 is a spool disk, and 112 is a pre-collation disk.
[0062]
The main memory 103 constitutes a primary storage device of the accumulation unit, the spool disk 111 constitutes a first secondary storage device of the accumulation unit, and the precoration disk 112 constitutes a second secondary storage device of the accumulation unit. Configure the device.
[0063]
In this example, the data input processing unit 11 is configured by a NIC (Network Interface Card) 101, and performs input transfer of print job data from the network through the NIC 101. A spool disk 111 is used as the print job storage unit 15 for storing the input print job.
[0064]
The raster data generation processing unit 12 reads the data stored in the spool disk 111 into the main memory 103 and generates raster data. The generated raster data is stored in the raster data storage unit 16. As this raster data storage unit 16, a pre-collation disk 112 is used.
[0065]
The data output processing unit 13 once reads image data from the pre-collation disk 12 to the main memory 103 and transfers the read image data from the main memory 103 to the image output device 3 while expanding the read image data.
[0066]
In the example of this embodiment, as the image output device 3, as shown in FIG. 4, an electrophotographic image output device using a full-color tandem method is used.
[0067]
In a full-color electrophotographic image output apparatus, a color image is generated by painting black (K), yellow (Y), magenta (M), and cyan (C). In the tandem method, as shown in FIG. 4, four transfer drums 21K, 21Y, 21M, and 21C are arranged in parallel, thereby shortening the time of the paper path 22 for image formation and shortening the image output. Realized. In FIG. 4, reference numeral 23 denotes a sheet on which an image is formed.
[0068]
In the 1-drum system, in order to form a full-color image of one page, it is necessary to perform coating for four colors, so the same page must be repeatedly passed through the transfer drum four times. In this case, the image output control device may sequentially transfer the information for the four colors constituting the same page to the image output device in accordance with each rotation of the transfer drum.
[0069]
On the other hand, in the tandem system, as shown in FIG. 4, four pages of image output are simultaneously performed by four transfer drums 21K, 21Y, 21M, and 21C (color processing corresponding to each page is performed). ) Therefore, the data output processing in the image output control device performs data transfer according to such processing to the image output device, and supplies data according to the high-speed image output processing speed of the image output device. Must be guaranteed.
[0070]
That is, in this embodiment, the processing that must be executed on the image output control device 10 according to the image output speed of the image output device 3 is a time constraint derived from the image output processing speed of the image output device 3. It is a certain process. If the time-constrained processing is not completed within the time limit, the output image is disturbed because it is not possible to supply image data to the image output device 3 in time.
[0071]
In this embodiment, compressed raster data is read from the pre-collation disk 112 serving as the raster data storage unit 16 to the main memory 103, and the processing until the data in the main memory 103 is transferred to the decompression board is the image output device. 3 is a time-constrained process derived from the image output processing speed of No. 3.
[0072]
In the image output control device 10, as described above, in the network printer system, a plurality of processes operate in parallel in order for the image output device to function as a network printer.
[0073]
[Description of processing scheduling example]
FIG. 5 shows a process execution method using a round robin method and a fixed priority preemption method as a process scheduling method.
[0074]
Here, the time-constrained process is a process that must be completed within a certain period of time after the request for the process is generated. Here, the time that the process must be terminated is determined. It is called the end deadline.
[0075]
The process scheduling method shown in FIG. 5A is a round robin method for executing a plurality of processes equally. In this method, the processes are executed in the order in which the process requests are generated. However, in order to execute a plurality of processes equally, all the processes in which the process requests are generated are executed by time division (time sharing).
[0076]
In recent WSs and PCs, this round robin method is often adopted so that a plurality of processes can be performed simultaneously on the desktop. In this method, as shown in FIG. Since the execution waiting time of processing increases depending on the number of processing, it is not suitable for processing with time constraints. That is, in the example shown in FIG. 5A, even if there is an end deadline for the process P1, the number of processes increases due to the occurrence of another process request, so that the actual end time of the process P1 increases. Is later than the deadline.
[0077]
In contrast to this round robin method, there is a fixed-priority preemption method in which priority is given to processing and processing with low priority is not executed until processing with high priority is completed. FIG. 5B shows an example of processing by this fixed priority preemption method.
[0078]
In the example shown in FIG. 5B, it is assumed that the priority of the process P1 is high. That is, if a process P1 having a higher priority than this occurs while the process P2 is being executed, the process P1 is executed with priority over other processes. Even if a processing request for processing P3 having a lower priority than this occurs during execution of this processing P1, this P3 processing request is queued and executed until the priority processing P1 is completed. .
[0079]
In this fixed priority preemption method, the processing P2 and the processing P3 having the same priority are basically executed in a time-sharing manner as in the round robin of FIG. .
[0080]
This fixed-priority preemption method gives the right to execute processing to a high-priority process, and is not affected by the number of processes having a low priority. For this reason, it is effective to apply this method to processing with time constraints.
[0081]
[Description of Process Flow of Image Output Control Device of Embodiment]
FIG. 6 shows the flow of data between devices with respect to the outline of processing in the image output control apparatus of this embodiment. DMA is used as an abbreviation for Direct Memory Access, and DMAn (n = 1, 2,..., 6) is used to identify a plurality of DMA processes. The memories M1, M2, M3, and M4 indicate memory areas in the main memory 103, respectively.
[0082]
The DMA 1 is used for transferring data to the memory M 1 when data is input from the network by the NIC 106.
[0083]
The DMA 2 is for transferring data in the memory M 1 to the spool disk 111.
[0084]
The DMA 3 is for transferring the data on the spool disk 111 to the memory M 2 for generating raster data. In this case, the raster data generation processing unit 12 converts and compresses the data in the memory M2 into image data to be supplied to the image output device 3, and stores the compressed image data as a result of the processing in the memory M3. To do.
[0085]
The DMA 4 is for transferring the compressed image data in the memory M 3 to the pre-collation disk 112.
[0086]
The DMA 5 is for transferring data stored in the pre-collation disk 112 to the memory M4.
[0087]
The DMA 6 is used to transfer data from the memory M4 to the data decompression / transfer board 110.
[0088]
In this embodiment, the time-constrained process derived from the image output processing speed of the image output device 3 includes a process (DMA5) for reading the compressed image data from the pre-collation disk 112 to the memory M4 and a memory M4. This is a process (DMA 6) for decompressing the compressed data and transferring the data to the transfer board. Therefore, the data stored in the pre-collation disk 112 can be output at the image output processing speed of the image output device 3.
[0089]
Data transfer by DAM is performed as follows.
FIG. 7 shows an outline of the use of computer resources when data transfer is performed with an I / O device.
[0090]
For example, in the case of reading data from a disk, when a read processing program is started, the computer resource is operated as shown in FIG. The read process is started by specifying a read address and a data size. This is done by issuing a DMA request to the DMA controller (DMAC) on the CPU.
[0091]
When the DMAC receives this DMA request, it executes the DMA once. The data size at this time can be specified, but the upper limit is determined by the system.
[0092]
When the DMA transfer is completed, the DMAC interrupts the CPU to notify the completion of the DMA transfer. If the transfer of the entire data size to be read has not been completed, the CPU issues a DMA activation again. Data transfer is performed by repeating this.
[0093]
Normally, when an access to an I / O device occurs, in order to improve the overall throughput, while the DMAC is executing, the process that executed the read instruction is in a standby state and executes other processes. be able to.
[0094]
Next, the control when the bus use competes in a plurality of processes will be described below with reference to the comparative example, in contrast to the comparative example.
[0095]
[Comparative example of competitive control of bus use by multiple processes]
First, a comparative example with the present invention will be described. FIGS. 8 and 9 show the operation of the comparative example when different DMACs (different devices) compete for bus use.
[0096]
The comparative example of FIG. 8 is an example in which when a bus use request by a plurality of processes is issued, the plurality of processes use the bus in a time division manner. As shown in this example, when the bus is used by a plurality of processes, when the bus is simply used in a time-sharing manner, as shown in the lower part of FIG. It can be seen that the end time when the bus is used only in the process A is delayed by the time DL due to the influence of another process B in which the data transfer time in the bus competes.
[0097]
The comparative example of FIG. 9 shows the state of bus use when the DMAC 1 is preferentially executed when a bus use request is issued in order to cope with such a problem. .
[0098]
In FIG. 9, even if a request for bus use is made from the process B related to the management of the DMAC 2 while the high-priority process A under the management of the DMAC 1 is being executed, the data transfer time using the bus of the process A is affected. There is nothing to do. Furthermore, even when an execution request for process A occurs during execution of process B, the time that process A waits can be kept to a time τ within the time for performing one DMA.
[0099]
Next, FIG. 10 and FIG. 11 show operations when a plurality of processes request bus use for the same DMAC.
[0100]
FIG. 10 shows a method of giving priority to the use of the bus that issued the request first when the use of the bus is controlled by the FIFO method. In this method, when a request for the next process occurs while the process in which the request was issued first is being executed, the priority of the process in which the request was issued is high, so The execution start time is kept waiting until the end of the subsequent processing.
[0101]
FIG. 11 shows a method for controlling bus use in a time-sharing manner when a plurality of processing requests are generated for the same DMAC.
[0102]
In this case, similarly to the result shown in FIG. 8, it can be seen that the data transfer time due to the use of the bus of process A is affected by the execution of another process (process B).
[0103]
[Description of Bus Control Method in Embodiment]
In the embodiment of the present invention, a plurality of scheduling methods are adopted, and the priority is set for each scheduling method.
[0104]
The processing that must be executed in accordance with the image output speed of the image output apparatus is set to a scheduling method that can be executed from a fixed priority with a higher priority. Hereinafter, the priority of this scheduling method is referred to as a real-time class (hereinafter referred to as RT class). The priorities of this RT class are all higher than the priorities of other scheduling methods. If there are a plurality of RT class processes that must be executed in accordance with the image output speed of the image output apparatus, the priority is set within the scheduling method of the RT class.
[0105]
In processing other than the RT class, scheduling is performed by the time-division round robin method described with reference to FIG. Hereinafter, the priority of this scheduling method will be referred to as a time sharing class (hereinafter referred to as TS class).
[0106]
Furthermore, in this embodiment, the following bus control processing is performed from each processing (device driver) before issuing a DMA to the DMAC.
[0107]
That is, before issuing a DMA to the DMAC from each process (device driver), it is checked whether or not a process that is prioritized over itself is being executed. As a result of this check, if processing that is prioritized over itself is being executed, a DMA is not issued and a waiting state is set. If processing that is prioritized over itself is not being executed, each processing issues a DMA as it is, and leaves it to contention control by the scheduling method in which the processing is set.
[0108]
FIG. 12 shows the timing for calling the bus control process. That is, conventionally, as shown in FIG. 12A and as shown in FIG. 7, when a processing start request is generated, if the CPU recognizes the start request, it immediately issues a DMA to the bus. I was doing. On the other hand, in this embodiment, when the CPU recognizes the processing start request, as shown in FIG. 12B, the DMA issuance is not performed immediately but is issued for a short period. In the previous period CB, the bus control processing is performed.
[0109]
[Description of Bus Control Processing in Embodiment]
The data structure and operation prepared as bus control processing means in this embodiment will be described below.
[0110]
The bus control processing means includes a variable RT-flag indicating the presence / absence of processing that preferentially uses the bus, a variable pri-pro that holds the priority of processing preferentially using the bus, and issuance of DMA to the DMAC. A queue (queue) that holds a process ID of a process that has been waiting for
[0111]
If the variable RT-flag is greater than “1”, there is RT class processing that preferentially uses the bus, and if “0”, there is no RT class processing that preferentially uses the bus. Means. The variable pri-pro indicates the priority of each process in the RT class.
[0112]
The queues are managed separately according to the priority class of the process that is going to call the DMA. The RT class process has a queue for each priority level, and the TS class process is collectively managed as a TS class queue.
[0113]
Next, the operation of the bus control process will be described with reference to FIGS.
[0114]
[Operation when processing is RT class]
FIG. 13 shows the operation when the RT class process first makes a DMA call to use the bus.
[0115]
First, it is confirmed whether or not the processing TEMP to issue a DMA is RT class (step S101). If it is RT class, 1 is added to the value of the variable RT-flag (step S102). Next, it is checked whether or not the variable RT-flag is larger than “1”, that is, whether or not processing for preferentially using the bus has already been executed (step S103).
[0116]
When the variable RT-flag is “1” or less, it means that the processing that preferentially uses the bus is not executed. Therefore, the priority of the processing TEMP is set in the variable pri-pro, and the DMAC Is instructed to execute DMA (step S104).
[0117]
On the other hand, if the variable RT-flag is larger than “1”, it means that the processing that preferentially uses the bus is already being executed. Therefore, the value of the variable pri-pro and the priority temp of the own processing temp. Comparison with -pro is performed (step S105). If the priority temp-pro is high, the priority temp-pro is set in the variable pri-pro and the DMAC is instructed to execute DMA (step S106).
[0118]
Also, if the priority temp-pro is lower than the variable pri-pro, the ID (identification code) of the processing TEMP is added to the priority temp-pro in the RT class queue. Then, it puts its processing in a standby state (step S107).
[0119]
Next, the operation when a DMA is already issued, one DMA is completed, and processing is started by an interrupt will be described with reference to FIG.
[0120]
First, it is confirmed whether or not the processing TEMP to issue a DMA is of the RT class (step S201). If it is an RT class, the priority temp-pro of its processing is set before issuing the next DMA. It is checked whether the priority of the variable pri-pro is higher (step S202).
[0121]
If the priority temp-pro of the own process is higher than the priority of the variable pri-pro, the own process is given the highest priority, and the DMAC is continuously instructed to execute DMA (step S203). When the priority value of the variable pri-pro is higher than the own priority temp-pro, the ID of the own process is added to the own priority of the RT class queue, and the own process is waited. (Step S204).
[0122]
Next, the operation for ending data transfer when the last DMA is executed in response to a data transfer request and an end interrupt is received will be described with reference to FIG.
[0123]
First, it is confirmed whether or not the processing TEMP that received the termination interrupt is of the RT class (step S301), and if it is the RT class, 1 is subtracted from the value of the variable RT-flag (step S302). Then, it is determined whether the subtracted variable RT-flag is “0” or larger (step S303).
[0124]
If the variable RT-flag after the subtraction is “0”, it means that there is no processing of the RT class that is going to use the bus, and therefore all of the processing IDs indicated by the respective processing IDs in the queue of the TS class. The process is started (step S304). If the variable RT-flag after subtraction is “1” or more, the priority value of the variable pri-pro is set to the priority of the process waiting in order with the highest priority of the RT class queue. The process indicated by the process ID in the RT class queue is activated (step S305).
[0125]
[When processing is TS class]
When the DMA call is made first because the TS class process uses the bus, the process proceeds from step S101 in FIG. 13 to step S401 in FIG. First, it is checked whether or not the variable RT-flag is “0” (step S401). Here, when the RT-flag is “0”, it means that the processing that preferentially uses the bus is not executed, so the DMA is issued to the DMAC (step S402).
[0126]
If the RT-flag is not “0”, it means that a process that preferentially uses the bus is already being executed, so that its own process ID is added to the TS class queue and the own process is executed. A standby state is set (step S403).
[0127]
If the DMA has already been issued, the previous DMA has ended, and the processing is started by an interrupt, the process proceeds from step S201 in FIG. 14 to step S401 in FIG. Also in this case, before issuing the next DMA, it is checked whether RT-flag is “0” and the same operation as described above is performed.
[0128]
Further, when the last DMA is executed and an end interrupt is received, if the data transfer is to end, the process proceeds from step S301 in FIG. 15 to step S306 in FIG. 15 to perform a TS class transfer end process. .
[0129]
In this TS class transfer end processing, it is checked whether RT-flag is “0”, and if there is RT class processing, DMA is not issued for the processing in the TS class queue. Wait for the end of RT class processing. If there is no RT class processing as a result of the check, the processing in the TS class queue is executed. If there is no processing in the TS class queue, the processing ends.
[0130]
As described above, it is possible to execute processing reflecting the priority of processing even for processing including data transfer using a bus.
[0131]
[Modification]
In the description of the above embodiment, when the RT class has the same priority, the execution is performed in the order in which the requests are generated. However, the present invention is not limited to this method. The method described below is a method of using a bus in a time division manner when the RT class has the same priority. This will be described.
[0132]
In this case, a pri-pro-num indicating the number of processes having the same priority is further provided as data used by the bus control processing means.
[0133]
When the RT class process first makes a DMA call in order to use the bus, it first checks whether the variable RT-flag is “0” and sets the value of the RT-flag to “1”. to add.
[0134]
As a result of the check, if the variable RT-flag is “0”, it means that the processing that preferentially uses the bus is not executed. Therefore, the processing priority is set to the variable pri-pro. The DMAC is instructed to execute DMA.
[0135]
If the variable RT-flag is not “0” as a result of the check, it means that a process that preferentially uses the bus is already being executed. Therefore, the value of the variable pri-pro and its own Compare with processing priority. If the priority is high, the priority is set in the variable pri-pro and the DMAC is instructed to execute DMA. If the priorities are the same, the value of the variable pri-pro-num is incremented by “1” and the DMA is issued to the DMAC. Otherwise, add your process ID to your priority in the RT class queue and put your process in a standby state.
[0136]
Next, in the case of this example, the operation when the DMA has already been issued, the previous DMA is completed, and the processing is started by an interrupt will be described.
[0137]
Before issuing the next DMA, it is confirmed that the value of the variable pri-pro is not higher than the priority of its own processing. If it is confirmed, since its own process is given the highest priority, the DMAC is continuously instructed to execute DMA. If the value of the variable pri-pro is higher than its own priority, its own process ID is added to its own priority in the RT class queue, and its process is put in a standby state.
[0138]
Next, the operation for ending data transfer in this example will be described.
[0139]
When the last DMA is executed in response to the data transfer request and an end interrupt is received, the value of the variable RT-flag is decremented by “1”. At this time, if the variable RT-flag is “0”, all processes of the process ID in the queue of the TS class are activated.
[0140]
If the variable RT-flag is “1” or more and the variable pri-pro-num is “1” or more, the processing with the same priority is executing the bus transfer, so the variable pri-pro-num Subtract 1 from the value.
[0141]
If the variable RT-flag is “1” or more and the variable pri-pro-num is “0”, the value of the variable pri-pro is the value of the process queued at the highest priority of the RT class queue. A priority is set, and processing of all process IDs having the highest priority in the RT class queue is started.
[0142]
By doing in this way, when the processing of the RT class has the same priority, the bus utilization can be executed in time division in parallel. The operation for the TS class is exactly the same as in the above example.
[0143]
Next, a modified example of the start timing of the bus control processing means will be described. In the above example, the bus use control is executed every time execution of the minimum unit of the designated DMA transfer is completed. This is a method of minimizing the waiting time for using a bus for high priority processing.
[0144]
However, although there are time constraints depending on the bus bandwidth and the amount of data required to be transferred in real time, there may be cases where there is a margin before the constraint time. In this case, the number of times of performing the bus control process in each process is not set for each DMA end interrupt timing, but for example, in one process, it is performed once every 10 times, and in another process, 5 times. It is also possible to do this once.
[0145]
Next, outlines of some other implementation methods of the image output control apparatus are shown in FIGS. Also in these implementation methods, by applying the present invention, it is possible to preferentially execute processing with time constraints derived from the image output speed of the electrophotographic image output apparatus.
[0146]
The example of FIGS. 17 and 18 shows an outline of the configuration when one secondary storage device is used as the storage unit. That is, FIG. 17 is a hardware configuration example corresponding to FIG. 3, and FIG. 18 is a configuration diagram for explaining the flow of processing corresponding to FIG. As the secondary storage device of the storage unit, the spool disk 111 and the pre-collation disk 112 are used in the above example, but in this example, as shown in FIGS. 17 and 18, Only one spool or pre-collation disk 120 is used.
[0147]
In the case of this example, the number of data transfers is the same as in the case of the configuration of FIGS. 3 and 6 described above. However, since there is one secondary storage device, This increases the number of times DMA is performed.
[0148]
The example of FIGS. 19 and 20 shows an outline of the configuration when the image output control apparatus does not have an image data generation processing unit.
[0149]
Data transfer in the example of FIG. 19 will be described.
In this example, it is assumed that data that has already been converted into data that can be output from the image output apparatus is sent from the network to the image output control apparatus 10. In this case, the input data is sent to the image output control device 10 in raster data and in a compressed form.
[0150]
Therefore, in the example of FIG. 19, the spool disk 111 constituting the print job data storage unit is unnecessary. Therefore, DMA3 and DMA4 in FIG. 6 do not exist in this example, and the memories M2 and M3 are not required.
[0151]
In the case of the example of FIG. 19, DMA1 is data transfer from the NIC 106 to the memory M1, DMA2 is data transfer from the memory M1 to the secondary storage device (pre-collation disk 112), and DMA5 is 2 Data transfer from the next storage device to the memory M4, and DMA6 are data transfer from the memory M4 to the data decompression / transfer board 110.
[0152]
FIG. 20 is a functional block diagram of the image output control apparatus 10 in this example, and corresponds to the functional block diagram of FIG. 1 in the above example. As is clear from the comparison between the two figures, in this example, the print job storage unit 15 and the raster data generation unit 12 are not necessary.
[0153]
The example of FIG. 21 shows an outline of the configuration when the data generated by the image data generation processing unit is transferred directly to the image output device without being stored in the secondary storage device.
[0154]
In this example, DMA1 transfers data from the NIC 106 to the memory M1, DMA2 transfers data from the memory M1 to the secondary storage device (spool disk 111), and DMA3 transfers from the secondary storage device to the memory M2. Data transfer, DMA 6 is data transfer from the memory M 3 to the data decompression / transfer board 110.
[0155]
In any of the above examples, according to the image output control device of the present invention, the transfer of image data from the image output control device to the image output device can maximize the image output speed performance of the image output device. The state can be guaranteed.
[0156]
【The invention's effect】
As described above, according to the present invention, in an image output control device that executes a plurality of processes in parallel, it is ensured that data is transferred from the image output control device in accordance with the output processing speed of the image output device. Can do. Therefore, the performance of the image output apparatus can be maximized, and high-speed print processing can be performed in the case of a network printer system.
[0157]
In addition, processing that is not subject to time constraints derived from the image output processing speed of the image output device is performed using a time during which high-priority processing is not executed, so that the entire system can operate efficiently. Can be done.
[0158]
Furthermore, in order to guarantee the data transfer to the image output device, compared with the method that avoids the competition of computer resources, by reducing the computer resources to the minimum, the cost can be reduced, and the idle time of the computer resources can be further reduced. Can be reduced.
[Brief description of the drawings]
FIG. 1 is a functional block diagram of an embodiment of an image output control apparatus according to the present invention.
FIG. 2 is a conceptual configuration diagram of a network printer system to which an embodiment of the present invention is applied.
FIG. 3 is a diagram showing a hardware configuration example of an embodiment of an image output control apparatus according to the present invention;
FIG. 4 is a diagram illustrating an example of an image output apparatus to which an embodiment of the present invention is applied.
FIG. 5 is a diagram illustrating an example of a scheduling method for a processing request.
FIG. 6 is a diagram for explaining the flow of processing in the embodiment of the image output control apparatus according to the present invention;
FIG. 7 is a diagram for explaining DMA transfer;
FIG. 8 is a diagram showing a state of bus use when competing for a bus in a comparative example of the present invention.
FIG. 9 is a diagram showing a bus use state in the case of competing buses for a comparative example of the present invention.
FIG. 10 is a diagram showing a bus use state when there is a bus contention in a comparative example of the present invention.
FIG. 11 is a diagram showing a bus use state in the case of competing buses for a comparative example of the present invention.
FIG. 12 is a diagram showing an operation timing of a main part in the embodiment of the image output control apparatus according to the present invention.
FIG. 13 is a flowchart for explaining the operation of the main part in the embodiment of the image output control apparatus according to the present invention;
FIG. 14 is a flowchart for explaining an operation of a main part in the embodiment of the image output control apparatus according to the present invention;
FIG. 15 is a flowchart for explaining an operation of a main part in the embodiment of the image output control apparatus according to the present invention;
FIG. 16 is a flowchart for explaining the operation of the main part in the embodiment of the image output control apparatus according to the present invention;
FIG. 17 is a diagram showing an outline of a hardware configuration in the case of having one secondary storage device as an accumulation unit of the image output control device according to the present invention.
FIG. 18 is a diagram showing an outline of the flow of data transfer when a single secondary storage device is provided as the storage unit of the image output control device according to the present invention.
FIG. 19 is a diagram showing an outline of a data flow when the image output control device according to the present invention does not have an image data generation processing unit.
FIG. 20 is a diagram showing an outline of each processing unit and its relationship when the image data generation processing unit is not included in the image output control apparatus according to the present invention.
FIG. 21 is a diagram showing an outline of a data transfer flow when data generated by the image data generation processing unit of the image output control device according to the present invention is transferred directly to the image output device without being stored in the secondary storage device; It is.
[Explanation of symbols]
1 Client machine
2 network
3 Image output device
10 Image output control device
11 Data input processing section
12 Raster data generation processing unit
13 Data output processing section
14 Print control processing unit
15 Print job data storage
16 Raster data storage
101, 102 CPU
103 Main memory (primary storage device)
105 I / O bus
110 Data decompression and transfer board
111 Spool disk (secondary storage device)
112 Precoration disk (secondary storage device)

Claims (14)

入出力バスを介して互いに接続される、少なくとも、データ入力処理部、蓄積部、データ出力処理部と、
前記データ入力処理部、前記蓄積部および前記データ出力処理部での処理実行の開始、終了を制御する制御処理部と、
を備え、前記データ入力処理部、前記蓄積部または前記データ出力処理部において、データ転送を行うために、前記入出力バスを介してDMA転送を行って、前記データ出力処理部から画像データを画像出力装置に転送するようにする画像出力制御装置において、
前記データ入力処理部、前記蓄積部および前記データ出力処理部の各処理部において実行される各処理中で、前記画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は第1のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第1のスケジューリング方式とは異なる第2のスケジューリング方式で処理を実行するようにする処理スケジューリング手段と、
前記処理の各々が、DMAを発行する前に、当該処理が前記第1のスケジューリング方式で処理されるものであるか、前記第2のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第1のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第2のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第1のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第1のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第1のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録するバス制御手段と、
を備えることを特徴とする画像出力制御装置。
At least a data input processing unit, a storage unit, a data output processing unit connected to each other via an input / output bus,
A control processing unit for controlling start and end of processing execution in the data input processing unit, the storage unit, and the data output processing unit;
The data input processing unit, the storage unit, or the data output processing unit performs DMA transfer via the input / output bus to transfer image data from the data output processing unit to the image data. In the image output control device to be transferred to the output device,
Among the processes executed in the processing units of the data input processing unit, the storage unit, and the data output processing unit, the specific processing subject to time constraints based on the image output processing speed of the image output device is the first scheduling A process scheduling unit configured to execute a process in accordance with a second scheduling method different from the first scheduling method, wherein the other process having a process priority lower than that of the specific process is executed;
Each of the processes determines whether the process is processed by the first scheduling method or the second scheduling method before issuing the DMA, and Based on the determination result, control is performed so that the processing of the first scheduling method is preferentially processed, and as a result of the determination, the processing is the second scheduling method and the processing is performed. When there is a process of the first scheduling method that preferentially uses the bus, and as a result of the determination, the process is the first scheduling method, and the process When there is processing of the first scheduling method that preferentially uses the bus, the corresponding queue is added to the determined scheduling method. And bus control means for registering the process,
An image output control device comprising:
請求項1に記載の画像出力制御装置において、
前記特定処理が複数個であって、前記特定処理の内容に応じて決定されている優先順の情報を保持する優先順保持手段を備え、
前記バス制御手段は、前記判別した処理が前記第1のスケジューリング方式のものであるときに、前記優先順保持手段により保持されている前記特定処理の優先順の情報に応じて、前記DMA転送を優先的に行う
ことを特徴とする画像出力制御装置。
The image output control device according to claim 1,
A plurality of the specific processes, comprising priority order holding means for holding priority order information determined according to the contents of the specific processes;
The bus control means performs the DMA transfer according to the priority order information of the specific process held by the priority order holding means when the determined process is of the first scheduling method. An image output control device characterized in that it is performed with priority.
前記特定処理は、前記蓄積部からのデータを、前記画像出力装置に転送する前記データ出力処理部に係わる処理であることを特徴とする請求項1または請求項2に記載の画像出力制御装置。  The image output control apparatus according to claim 1, wherein the specifying process is a process related to the data output processing unit that transfers data from the storage unit to the image output apparatus. 請求項1、請求項2または請求項3に記載の画像出力制御装置において、
前記データ入力処理部で受け取ったデータから、前記画像出力装置から出力可能なデータを生成するデータ生成処理部を備え、
前記蓄積部は、2次記憶装置を有するとともに、前記データ出力処理部は、1次記憶装置を有し、
前記データ生成処理部で生成されたデータは、前記蓄積部の2次記憶装置に転送され、
前記データ出力処理部は、前記蓄積部の前記2次記憶装置から前記1次記憶装置へのDMA転送を行う
ことを特徴とする画像出力制御装置。
In the image output control device according to claim 1, claim 2 or claim 3 ,
A data generation processing unit that generates data that can be output from the image output device from data received by the data input processing unit,
The storage unit has a secondary storage device, and the data output processing unit has a primary storage device,
The data generated by the data generation processing unit is transferred to the secondary storage device of the storage unit,
The image output control device, wherein the data output processing unit performs DMA transfer from the secondary storage device of the storage unit to the primary storage device.
請求項に記載の画像出力制御装置において、
前記データ生成処理部は、生成した画像データをデータ圧縮して、前記蓄積部の2次記憶装置に転送するものであるとともに、
前記データ出力処理部は、前記データ圧縮された画像データをデータ伸長するデータ伸長手段を備え、
前記特定処理は、
前記蓄積部の2次記憶装置から前記データ出力処理部の1次記憶装置に対してDMA転送を行う処理と、
前記データ出力処理部の1次記憶装置から、前記データ伸長手段へデータをDMA転送を行う処理とからなる
ことを特徴とする画像出力制御装置。
The image output control device according to claim 4 ,
The data generation processing unit compresses the generated image data and transfers it to the secondary storage device of the storage unit.
The data output processing unit includes data decompression means for decompressing the data-compressed image data.
The specific process is:
A process of performing DMA transfer from the secondary storage device of the storage unit to the primary storage device of the data output processing unit;
An image output control apparatus comprising: a process of performing DMA transfer of data from a primary storage device of the data output processing unit to the data decompression unit.
請求項または請求項に記載の画像出力制御装置において、
前記優先順保持手段には、前記データ出力処理部での前記蓄積部の2次記憶装置から1次記憶装置へのDMA転送を実行する処理が、前記データ生成処理部で生成した画像データの前記蓄積部の2次記憶装置へのDMA転送の書き込み処理より高い優先順として保持されていることを特徴とする画像出力制御装置。
In the image output control device according to claim 4 or 5 ,
In the priority order holding means, a process of executing a DMA transfer from the secondary storage device of the storage unit to the primary storage device in the data output processing unit is performed on the image data generated by the data generation processing unit. An image output control device, wherein the image output control device is held in a higher priority order than the write processing of the DMA transfer to the secondary storage device of the storage unit.
請求項に記載の画像出力制御装置において、
前記優先順決定手段には、前記データ出力処理部での前記1次記憶装置からデータ伸長手段へデータをDMA転送する処理が、前記蓄積部の2次記憶装置から前記1次記憶装置へのDMA転送を実行する処理より高い優先順として保持されていることを特徴とする画像出力制御装置。
The image output control device according to claim 5 ,
The priority order determining means includes a process of DMA-transferring data from the primary storage device to the data decompression means in the data output processing unit, and a DMA from the secondary storage device of the storage unit to the primary storage device. An image output control apparatus, wherein the image output control apparatus is held in a higher priority order than a process of executing transfer.
請求項に記載の画像出力制御装置において、
前記蓄積部は、
前記データ入力処理部から入力されたデータを蓄積し、当該蓄積されたデータを、前記データ生成処理部が読み出して画像データ生成処理をおこなうための第1の2次記憶装置と、
前記データ生成処理部が、画像データ生成処理により生成した画像データを蓄積し、当該蓄積された画像データを、前記データ出力処理部が読み出すための第2の2次記憶装置と、
を備えることを特徴とする画像出力制御装置。
The image output control device according to claim 4 ,
The storage unit
A first secondary storage device for accumulating data input from the data input processing unit, the data generation processing unit reading out the accumulated data, and performing image data generation processing;
A second secondary storage device for the data generation processing unit to store the image data generated by the image data generation processing, and for the data output processing unit to read the stored image data;
An image output control device comprising:
請求項に記載の画像出力制御装置において、
前記特定処理は、前記蓄積部の第2の2次記憶装置からのデータを、前記画像出力装置に転送する前記データ出力処理部に係わる処理であることを特徴とする画像出力制御装置。
The image output control apparatus according to claim 8 , wherein
The image output control device according to claim 1, wherein the specific processing is processing related to the data output processing unit that transfers data from the second secondary storage device of the storage unit to the image output device.
請求項に記載の画像出力制御装置において、
前記データ生成処理部は、生成した画像データをデータ圧縮して、前記蓄積部の2次記憶装置に転送するものであるとともに、
前記データ出力処理部は、前記データ圧縮された画像データをデータ伸長するデータ伸長手段を備え、
前記特定処理は、
前記蓄積部の第2の2次記憶装置から前記データ出力処理部の1次記憶装置に対してDMA転送を行う処理と、
前記データ出力処理部の1次記憶装置から、前記データ伸長手段へデータをDMA転送を行う処理からなることを特徴とする画像出力制御装置。
The image output control apparatus according to claim 8 , wherein
The data generation processing unit compresses the generated image data and transfers it to the secondary storage device of the storage unit.
The data output processing unit includes data decompression means for decompressing the data-compressed image data.
The specific process is:
A process of performing a DMA transfer from the second secondary storage device of the storage unit to the primary storage device of the data output processing unit;
An image output control apparatus comprising a process of performing DMA transfer of data from a primary storage device of the data output processing section to the data decompression means.
請求項に記載の画像出力制御装置において、
前記優先順保持手段には、前記データ出力処理部での前記蓄積部の第2の2次記憶装置から1次記憶装置へのDMA転送を実行する処理が、前記データ生成処理部で生成した画像データの前記蓄積部の第2の2次記憶装置へのDMA転送の書き込み処理より高い優先順として保持されていることを特徴とする画像出力制御装置。
The image output control apparatus according to claim 8 , wherein
In the priority order holding means, a process of executing a DMA transfer from the second secondary storage device to the primary storage device of the storage unit in the data output processing unit is an image generated by the data generation processing unit. An image output control device characterized in that the data output control device is held in a higher priority order than the write processing of the DMA transfer to the second secondary storage device of the storage unit.
請求項に記載の画像出力制御装置において、
前記優先順決定手段には、前記データ出力処理部での1次記憶装置からデータ伸長手段へデータをDMA転送する処理が、前記蓄積部の第2の2次記憶装置から前記1次記憶装置へのDMA転送を実行する処理より高い優先順として保持されていることを特徴とする画像出力制御装置。
The image output control apparatus according to claim 8 , wherein
The priority order determining means includes a process of DMA transferring data from the primary storage device to the data decompression means in the data output processing section from the second secondary storage apparatus of the storage section to the primary storage apparatus. The image output control apparatus is held in a higher priority order than the process of executing the DMA transfer.
入出力バスを介して互いに接続される、少なくとも、データ入力処理部、蓄積部、データ出力処理部と、
前記データ入力処理部、前記蓄積部および前記データ出力処理部での処理実行の開始、終了を制御する制御処理部と、
を備え、前記データ入力処理部、前記蓄積部または前記データ出力処理部において、データ転送を行うために、前記入出力バスを介してDMA転送を行って、前記データ出力処理部から画像データを画像出力装置に転送するようにする画像出力制御装置の処理実行制御方法において、
前記データ入力処理部、前記蓄積部および前記データ出力処理部の各処理部において実行される各処理中で、前記画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は第1のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第1のスケジューリング方式とは異なる第2のスケジューリング方式で処理を実行するように設定しておき、
前記各処理について、前記入出力バスを利用するためにDMAを発行する前に、当該処理が前記第1のスケジューリング方式で処理されるものであるか、前記第2のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第1のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第2のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第1のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第1のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第1のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録する
ことを特徴とする画像出力制御装置の処理実行制御方法。
At least a data input processing unit, a storage unit, a data output processing unit connected to each other via an input / output bus,
A control processing unit for controlling start and end of processing execution in the data input processing unit, the storage unit, and the data output processing unit;
The data input processing unit, the storage unit, or the data output processing unit performs DMA transfer via the input / output bus to transfer image data from the data output processing unit to the image data. In the processing execution control method of the image output control device to be transferred to the output device,
Among the processes executed in the processing units of the data input processing unit, the storage unit, and the data output processing unit, the specific processing subject to time constraints based on the image output processing speed of the image output device is the first scheduling The other processes having a lower priority than the specific process are set to execute the process in a second scheduling method different from the first scheduling method ,
For each process, before issuing a DMA to use the I / O bus, the process is processed by the first scheduling method or by the second scheduling method. And based on the result of the determination, control is performed so that the processing of the first scheduling method is prioritized, and as a result of the determination, the processing is performed according to the second scheduling method. And when there is a process of a first scheduling method that preferentially uses a bus for the process, and as a result of the determination, the process is the first scheduling method, In addition, when there is a process of the first scheduling method that preferentially uses a bus for the process, the determined scheduling is performed. Process execution control method for an image output control apparatus and registers the corresponding processing in a queue for grayed scheme.
時間制約を受ける特定処理は第1のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第1のスケジューリング方式とは異なる第2のスケジューリング方式で処理を実行するようにする処理スケジューリング手段と、
前記処理の各々が、DMAを発行する前に、当該処理が前記第1のスケジューリング方式で処理されるものであるか、前記第2のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第1のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第2のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第1のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第1のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第1のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録するバス制御手段と、
を備えることを特徴とするバス制御方式。
The specific process subject to the time constraint executes the process according to the first scheduling method, and the other processes whose processing priority is lower than that of the specific process are processed according to the second scheduling method different from the first scheduling method. Processing scheduling means to be executed;
Each of the processes determines whether the process is processed by the first scheduling method or the second scheduling method before issuing the DMA, and Based on the determination result, control is performed so that the processing of the first scheduling method is preferentially processed, and as a result of the determination, the processing is the second scheduling method and the processing is performed. When there is a process of the first scheduling method that preferentially uses the bus, and as a result of the determination, the process is the first scheduling method, and the process When there is processing of the first scheduling method that preferentially uses the bus, the corresponding queue is added to the determined scheduling method. And bus control means for registering the process,
A bus control system characterized by comprising:
JP03876398A 1998-02-20 1998-02-20 Image output control device and process execution control method thereof Expired - Fee Related JP3724536B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03876398A JP3724536B2 (en) 1998-02-20 1998-02-20 Image output control device and process execution control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03876398A JP3724536B2 (en) 1998-02-20 1998-02-20 Image output control device and process execution control method thereof

Publications (2)

Publication Number Publication Date
JPH11237960A JPH11237960A (en) 1999-08-31
JP3724536B2 true JP3724536B2 (en) 2005-12-07

Family

ID=12534333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03876398A Expired - Fee Related JP3724536B2 (en) 1998-02-20 1998-02-20 Image output control device and process execution control method thereof

Country Status (1)

Country Link
JP (1) JP3724536B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895292B2 (en) * 2003-04-28 2005-05-17 Palo Alto Research Center Inc. Predictive and preemptive planning and scheduling for different job priorities system and method
JP4057989B2 (en) 2003-09-26 2008-03-05 株式会社東芝 Scheduling method and information processing system
JP5218377B2 (en) * 2003-11-10 2013-06-26 株式会社リコー Image forming system
JP5455152B2 (en) * 2009-09-28 2014-03-26 サクサ株式会社 Image processing device
JP5387770B2 (en) 2010-06-22 2014-01-15 富士通株式会社 Data transfer control device, data transfer control method, and data transfer control program
JP5509151B2 (en) * 2011-05-26 2014-06-04 京セラドキュメントソリューションズ株式会社 DMA controller and image forming apparatus including the same
JP5729445B2 (en) * 2013-10-10 2015-06-03 富士通株式会社 Multiprocessor system, control method, and control program

Also Published As

Publication number Publication date
JPH11237960A (en) 1999-08-31

Similar Documents

Publication Publication Date Title
JP4101860B2 (en) Interrupt system for multi-function printing system
US6504621B1 (en) System for managing resource deficient jobs in a multifunctional printing system
US5970224A (en) Multifunctional printing system with queue management
US7190477B2 (en) System and method for managing and processing a print job using print job tickets
JP3977356B2 (en) Information processing apparatus and control method thereof
JPH10222331A (en) Printing system
US8625133B2 (en) Print data processing apparatus, print data processing method, and storage medium
JPH11170627A (en) Printing system and job management method therefor
JPH1131055A (en) Queue management method for multi-function print system
JP5482528B2 (en) Printed document conversion apparatus and program
JP4612176B2 (en) Multifunction printing method and multifunction printing system
JP4544728B2 (en) Method and apparatus for optimizing resource transfer from low priority jobs to high priority jobs
US6717690B1 (en) Method and apparatus for managing job contention for system resources in an electrographic reproduction system where images are multibanded
JP4451562B2 (en) Method for prioritizing the use of basic resources in a multi-function printing system, method for managing the processing of multiple jobs and apparatus thereof
US6762857B1 (en) Method and apparatus to enable processing multiple capabilities for a sub-job when using a set of commonly shared resources
JP3724536B2 (en) Image output control device and process execution control method thereof
JP2005352694A (en) Printing device, printing method, information processing device, and control method thereof
US20110235078A1 (en) Image processing apparatus, image processing method, and computer readable medium storing program
JP4678938B2 (en) Job content management method and management apparatus for system resources in an electrophotographic copying system
EP1035498A2 (en) Printer, printer control method and storage medium for recording program
JP2011046034A (en) Image processor, image processing method, image processing program, and recording medium
JP2000132347A (en) Printing method, printer executing the same and storage medium
JP3438710B2 (en) Printer and recording medium recording program for controlling the printer
JP4095581B2 (en) Information processing apparatus and control method thereof
JPH10320156A (en) Multifunctional printing system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050502

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050913

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090930

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110930

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120930

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120930

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130930

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees