(57)【特許請求の範囲】
【請求項１】
入出力バスを介して互いに接続される、少なくとも、データ入力処理部、蓄積部、データ出力処理部と、
前記データ入力処理部、前記蓄積部および前記データ出力処理部での処理実行の開始、終了を制御する制御処理部と、
を備え、前記データ入力処理部、前記蓄積部または前記データ出力処理部において、データ転送を行うために、前記入出力バスを介してＤＭＡ転送を行って、前記データ出力処理部から画像データを画像出力装置に転送するようにする画像出力制御装置において、
前記データ入力処理部、前記蓄積部および前記データ出力処理部の各処理部において実行される各処理中で、前記画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は第１のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第１のスケジューリング方式とは異なる第２のスケジューリング方式で処理を実行するようにする処理スケジューリング手段と、
前記処理の各々が、ＤＭＡを発行する前に、当該処理が前記第１のスケジューリング方式で処理されるものであるか、前記第２のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第１のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第２のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第１のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第１のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第１のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録するバス制御手段と、
を備えることを特徴とする画像出力制御装置。
【請求項２】
請求項１に記載の画像出力制御装置において、
前記特定処理が複数個であって、前記特定処理の内容に応じて決定されている優先順の情報を保持する優先順保持手段を備え、
前記バス制御手段は、前記判別した処理が前記第１のスケジューリング方式のものであるときに、前記優先順保持手段により保持されている前記特定処理の優先順の情報に応じて、前記ＤＭＡ転送を優先的に行う
ことを特徴とする画像出力制御装置。
【請求項３】
前記特定処理は、前記蓄積部からのデータを、前記画像出力装置に転送する前記データ出力処理部に係わる処理であることを特徴とする請求項１または請求項２に記載の画像出力制御装置。
【請求項４】
請求項１、請求項２または請求項３に記載の画像出力制御装置において、
前記データ入力処理部で受け取ったデータから、前記画像出力装置から出力可能なデータを生成するデータ生成処理部を備え、
前記蓄積部は、２次記憶装置を有するとともに、前記データ出力処理部は、１次記憶装置を有し、
前記データ生成処理部で生成されたデータは、前記蓄積部の２次記憶装置に転送され、
前記データ出力処理部は、前記蓄積部の前記２次記憶装置から前記１次記憶装置へのＤＭＡ転送を行う
ことを特徴とする画像出力制御装置。
【請求項５】
請求項４に記載の画像出力制御装置において、
前記データ生成処理部は、生成した画像データをデータ圧縮して、前記蓄積部の２次記憶装置に転送するものであるとともに、
前記データ出力処理部は、前記データ圧縮された画像データをデータ伸長するデータ伸長手段を備え、
前記特定処理は、
前記蓄積部の２次記憶装置から前記データ出力処理部の１次記憶装置に対してＤＭＡ転送を行う処理と、
前記データ出力処理部の１次記憶装置から、前記データ伸長手段へデータをＤＭＡ転送を行う処理とからなる
ことを特徴とする画像出力制御装置。
【請求項６】
請求項４または請求項５に記載の画像出力制御装置において、
前記優先順保持手段には、前記データ出力処理部での前記蓄積部の２次記憶装置から１次記憶装置へのＤＭＡ転送を実行する処理が、前記データ生成処理部で生成した画像データの前記蓄積部の２次記憶装置へのＤＭＡ転送の書き込み処理より高い優先順として保持されていることを特徴とする画像出力制御装置。
【請求項７】
請求項５に記載の画像出力制御装置において、
前記優先順決定手段には、前記データ出力処理部での前記１次記憶装置からデータ伸長手段へデータをＤＭＡ転送する処理が、前記蓄積部の２次記憶装置から前記１次記憶装置へのＤＭＡ転送を実行する処理より高い優先順として保持されていることを特徴とする画像出力制御装置。
【請求項８】
請求項４に記載の画像出力制御装置において、
前記蓄積部は、
前記データ入力処理部から入力されたデータを蓄積し、当該蓄積されたデータを、前記データ生成処理部が読み出して画像データ生成処理をおこなうための第１の２次記憶装置と、
前記データ生成処理部が、画像データ生成処理により生成した画像データを蓄積し、当該蓄積された画像データを、前記データ出力処理部が読み出すための第２の２次記憶装置と、
を備えることを特徴とする画像出力制御装置。
【請求項９】
請求項８に記載の画像出力制御装置において、
前記特定処理は、前記蓄積部の第２の２次記憶装置からのデータを、前記画像出力装置に転送する前記データ出力処理部に係わる処理であることを特徴とする画像出力制御装置。
【請求項１０】
請求項８に記載の画像出力制御装置において、
前記データ生成処理部は、生成した画像データをデータ圧縮して、前記蓄積部の２次記憶装置に転送するものであるとともに、
前記データ出力処理部は、前記データ圧縮された画像データをデータ伸長するデータ伸長手段を備え、
前記特定処理は、
前記蓄積部の第２の２次記憶装置から前記データ出力処理部の１次記憶装置に対してＤＭＡ転送を行う処理と、
前記データ出力処理部の１次記憶装置から、前記データ伸長手段へデータをＤＭＡ転送を行う処理からなることを特徴とする画像出力制御装置。
【請求項１１】
請求項８に記載の画像出力制御装置において、
前記優先順保持手段には、前記データ出力処理部での前記蓄積部の第２の２次記憶装置から１次記憶装置へのＤＭＡ転送を実行する処理が、前記データ生成処理部で生成した画像データの前記蓄積部の第２の２次記憶装置へのＤＭＡ転送の書き込み処理より高い優先順として保持されていることを特徴とする画像出力制御装置。
【請求項１２】
請求項８に記載の画像出力制御装置において、
前記優先順決定手段には、前記データ出力処理部での１次記憶装置からデータ伸長手段へデータをＤＭＡ転送する処理が、前記蓄積部の第２の２次記憶装置から前記１次記憶装置へのＤＭＡ転送を実行する処理より高い優先順として保持されていることを特徴とする画像出力制御装置。
【請求項１３】
入出力バスを介して互いに接続される、少なくとも、データ入力処理部、蓄積部、データ出力処理部と、
前記データ入力処理部、前記蓄積部および前記データ出力処理部での処理実行の開始、終了を制御する制御処理部と、
を備え、前記データ入力処理部、前記蓄積部または前記データ出力処理部において、データ転送を行うために、前記入出力バスを介してＤＭＡ転送を行って、前記データ出力処理部から画像データを画像出力装置に転送するようにする画像出力制御装置の処理実行制御方法において、
前記データ入力処理部、前記蓄積部および前記データ出力処理部の各処理部において実行される各処理中で、前記画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は第１のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第１のスケジューリング方式とは異なる第２のスケジューリング方式で処理を実行するように設定しておき、
前記各処理について、前記入出力バスを利用するためにＤＭＡを発行する前に、当該処理が前記第１のスケジューリング方式で処理されるものであるか、前記第２のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第１のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第２のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第１のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第１のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第１のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録する
ことを特徴とする画像出力制御装置の処理実行制御方法。
【請求項１４】
時間制約を受ける特定処理は第１のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第１のスケジューリング方式とは異なる第２のスケジューリング方式で処理を実行するようにする処理スケジューリング手段と、
前記処理の各々が、ＤＭＡを発行する前に、当該処理が前記第１のスケジューリング方式で処理されるものであるか、前記第２のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第１のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第２のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第１のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第１のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第１のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録するバス制御手段と、
を備えることを特徴とするバス制御方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えば、クライアントから印刷要求ジョブを受け取って、プリントアウト可能なデータに変換し、これを電子写真技術を用いたプリンタなどの画像出力装置に対してデータ転送を行うようにする画像出力制御装置に関する。
【０００２】
【従来の技術】
画像出力制御装置からデータ転送する画像出力装置として電子写真方式のプリンタを利用する場合には、当該画像出力装置の画像出力処理速度が一定であり、１ページ分の画像出力処理の途中で、処理を中断することができないという特性を考慮する必要がある。
【０００３】
また、画像出力制御装置では、一般に、画像出力装置への出力対象とするデータの入力処理や、入力したデータに対する画像処理等の複数の処理が存在するが、画像出力装置の持つ画像出力処理速度で、異なる画像を連続して画像出力装置から出力するようにするためには、このような複数の処理を並行して実行する機構が必要となる。
【０００４】
また、電子写真方式の画像出力装置は、画像出力処理速度が一定であり、かつ、画像出力処理の途中で中断できないために、画像出力制御装置において、上記の複数の処理の中でも画像出力装置に画像データを供給する処理が、画像出力装置の画像出力処理速度に応じて画像データを供給することを保証できないと、画像出力装置が正常な画像を出力できないという問題が生じる。
【０００５】
このようにな画像出力制御装置の複数の処理において、時間的な制約のある処理を優先的に実行させることに注目した従来例が種々開示されており、利用する方式として、ＣＰＵ利用に関する方式、Ｂｕｓの利用権に関する方式、マルチメディアのデータ処理に関するバス利用方式、プリンタの画像メモリに対するバス利用権に関する方式などが知られている。
【０００６】
例えば、特開平４−３４３１４２号公報では、電子写真方式を、コピーマシン、プリンタ、ファクシミリなどの複合機に応用した場合の画像形成装置において、複数のタスクでの画像形成を制御する方式として、当該複数のタスクを、高速に処理することが要求されているものと、そうでないものとに分類し、高速に処理することが要求されるタスク（高速タスク）を優先的に処理するために、その高速タスクに固定の高い優先度を割り付けるとともに、通常のタスクは時分割方式で制御するようにしている。
【０００７】
また、特開平８−１２３６３４号公報では、複合機において、複数装置からデータ転送の要求が発生した際に、その要求を、装置別に優先順位を設けることによって、バスの利用権の調整を行う方式を開示している。具体的には、複数のバスマスタ（ファクシミリ、スキャナ、ＳＣＳＩディスク、ＥＰＣメモリ、ネットワーク等）が、バスへ同時にアクセスを求めた時に、各マスタのアクセスすべき順番を裁定する方式を開示している。
【０００８】
また、特開平８−９５９０７号公報では、マルチファンクション装置（多機能装置）における複数処理間でのバス利用の優先制御（バス転送が中心）を行う方式として、同じ時間帯に同時に動作する必要のある機能を区分しておき、各時間帯毎での機能手段からの要求の優先順位が異なることに着目し、各時間帯に応じて、機能手段の要求の優先順位を変更し、その優先順位でバスを利用させるようにする調停装置を設けて、複数の機能手段に関するデータ転送の状態を示す信号に基づき優先順位を決定する方式を開示している。
【０００９】
また、特開平７−１７８９７３号公報では、電子写真方式の画像出力装置を印刷装置とした場合に、印刷装置に画像データを供給するために、画像展開手段と、画像データ転送手段とを持ち、画像展開手段は、印刷装置より出力可能な画像データを生成して画像メモリに格納し、画像データ転送手段は、画像メモリに格納された画像データを印刷装置に転送するようにするとともに、画像展開手段による処理が連続的に発生しても、画像データ転送手段の処理を優先的に実行できるようにバス使用権を調整する方式について開示している。
【００１０】
さらに、特開平６−３３２８５０号公報では、複数の装置からのバス利用要求が重複すると、リアルタイム性の高い装置からのバス要求が待たされてしまい、リアルタイム性のある処理の実行に支障が生じる問題を解決するため、バス調停の方式として、チャネル（装置）に対して優先順位を設定し、優先順位の高い装置のバス使用要求に優先権を与えるようにしている。さらに、マルチメディアデータが周期的に実行されることに注目し、一定期間に一定量のデータ転送方式が保証できる機能を有している。この場合、優先順位の低い装置のバス使用は、優先順位の高い装置により、一定時間内にバス使用権を奪われる。
【００１１】
【発明が解決しようとする課題】
電子写真方式の画像出力装置から、複数の画像を連続して画像出力するためには、画像出力制御装置が、画像出力装置の出力処理時間に合わせて、画像データを定常的に画像出力装置に供給する機構が必要とされる。
【００１２】
しかし、この点に関し、上記従来例では、以下のような問題点がある。
【００１３】
すなわち、特開平４−３４３１４２号公報に示されたものは、画像出力装置上で実行される複数タスクに対して、優先的に実行する必要のあるタスクを優先する方式であるが、基本的には、既に公知となっている処理の優先制御方式についてのみの方式であり、バス等を用いたデータ転送が含まれる処理をどのように処理するかについては触れられておらず、データ処理（ＣＰＵ）と、データ転送（Ｂｕｓ）の両方を優先して実行する必要のある、この発明の対象とする画像出力制御装置における複数処理の実行を制御することはできない。
【００１４】
また、特開平７−１７８９０７３号公報、特開平６−３３２８５０号公報、特開平８−１２３６３４号公報および特開平８−９５９０７号公報に記載されたものは、複数のバス利用要求に対して、バス使用権を調停する方式に関するものであるが、これらの技術は、いずれも複数の装置間でのバス使用に対する優先順位の設定を示したものである。このように、上記従来技術は、複数の装置間でのバスの優先使用に関するものであるため、同一の装置内において、優先度の異なる複数の処理要求が発生した時に、その処理レベルで、バスの使用を調停することができない問題がある。
【００１５】
また、画像出力制御装置では、前述したように、複数の処理が、ＣＰＵとバスを競合するために、これらの計算機資源をどのように管理するかが重要になるが、従来例のいずれの方式も、装置からバスへ利用要求が発行されたことを前提としており、バスに対して処理要求を発行するために必要となるＣＰＵのスケジューリング方式については触れられていない。
【００１６】
ところで、一般に、画像出力制御装置は、ワークステーション（以下ＷＳと記述）や、パーソナルコンピュータ（以下ＰＣと記述）のような計算機システム上で構築される。画像出力装置としてネットワークプリンタを想定した場合の画像出力制御装置での処理の概略を、データの流れに従って次に説明する。
【００１７】
この場合の画像出力制御装置での処理は、大きく分けると、ネットワーク上のリモートクライアントからプリントジョブ（画像出力制御情報と出力対象データ）を受け取る処理と、受け取ったデータを画像出力装置から出力可能なデータに変換する処理（ラスタライズ）と、ラスタライズされたデータを画像出力装置へ転送する処理とからなる。一般には、ラスラタライズされたデータは、データサイズが大きくなるため、一旦圧縮処理され、画像出力装置へのデータ転送時に伸長を行う方式がとられている。
【００１８】
このように画像出力制御装置では、クライアントから受け取ったプリントジョブを、画像出力装置に転送して画像出力させるために、複数の処理を、同時並行して実行している。これらの処理の特徴としては、データ処理を中心とした、主にＣＰＵを多く利用する処理と、データ転送を中心とした、主にバスを多く利用する処理とが混在していることである。
【００１９】
データ処理を中心とする処理は、出力可能なデータに変換（ラスタデータ生成）する処理や、ネットワークから入力されたデータのデータ転送用のパケットを解釈する処理等である。
【００２０】
データ転送が中心となる処理としては、メインメモリ（第１のメモリ）中に取り込んだプリントジョブのデータを２次記憶装置に格納する処理と、この２次記憶装置から、プリントジョブのデータをデータ変換のために、メインメモリ（第２のメモリ）に転送する処理と、この第２のメモリ中のデータを伸長用デバイスに転送する処理等がある。
【００２１】
このデータ転送を中心とする処理においては、データ転送を、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）により実行するが、ＤＭＡは、一回のデータ転送を行おうとするごとに、ＣＰＵに割り込みを発生させて、当該ＤＭＡの実行を受け付けるように動作する。
【００２２】
通常、割り込みルーチンは、どの処理よりも優先して実行することが可能であるが、割り込み処理自体が長くなると、通常レベルの処理に悪影響が及ぶために、割り込み処理内での動作記述は、ある一定処理以上のことを記述できない。このため、ＤＭＡを呼び出した処理は、割り込み処理を受けた後に、ＤＭＡに関する処理の実行を割り込み処理の中で行うことはせず、優先度が通常の処理のレベルで、ＤＭＡに関する処理の実行を行なわなければならない。
【００２３】
したがって、このＤＭＡを呼び出す処理が、画像出力装置からの時間制約を伴う処理である場合であっても、この処理が優先的にＣＰＵを利用できないため、他の処理の実行要求の状態によっては、ＣＰＵの獲得ができずに、データ転送が遅れてしまうという問題が発生する。
【００２４】
例えば、ラスタ画像生成処理と、既に蓄積された画像データを画像出力装置へ転送する処理とが並行に動作する場合においては、ラスタ画像生成処理はＣＰＵが行い、画像出力装置へデータ転送するための処理（蓄積されたデータをメモリに読み込む処理と、メモリに読み込んだデータを伸長デバイスに転送する処理）は、各デバイスとメモリ間のＤＭＡ転送により行う。
【００２５】
このデータ転送中には、わずかの時間ではあるが、各ＤＭＡ転送終了時に、ＣＰＵに割り込み処理が発生し、次のＤＭＡを発行するためＣＰＵを獲得して、ＤＭＡを起動する。
【００２６】
この場合に、特に、メモリから伸長デバイスにデータ転送する処理が、画像出力装置の画像出力処理速度に応じて実行できないと、画像出力装置へのデータ転送が遅れてしまい、画像出力装置から乱れた画像が出力されてしまうことになる。
【００２７】
しかし、ＣＰＵに対するスケジューリングが、適切に行われていない場合には、ラスタデータ生成のための処理によりＣＰＵが頻繁に使用されていると、ＤＭＡを起動するための処理の実行が遅れてしまうという問題が発生する。また、ＣＰＵに対するスケジューリングが、適切に行われていても、ＣＰＵのスケジューリングだけでは、バス利用時に、バスでのデータ転送速度が他の処理から影響を受けてしまう。
【００２８】
次に、デバイス間でのバス利用の調整方式について考える。
画像出力制御装置では、ラスタ化し、かつ、圧縮したデータを、一旦、２次記憶装置に格納し、格納したデータを２次記憶装置からメインメモリへ読み出し、そのメインメモリから伸長デバイスにデータを転送し、データ伸長しながら画像出力装置へデータを送るようにしている。
【００２９】
この場合に、２次記憶装置からのデータの読み出し処理は、画像出力装置でのデータ出力処理速度に応じた速度で行う必要があるが、２次記憶装置へのデータ書込み処理は、画像出力装置での画像出力処理速度に応じた速度で行う必要はない。
【００３０】
すなわち、画像出力制御装置では、このような一つの装置におけるバス利用の優先制御が行う必要があるが、上記従来技術では、装置間のバス利用の競合時に、装置間にバス利用の優先権を設定することで、バス競合を回避する方式が開示されているだけであって、上記従来技術での装置間でバスの優先権を設定する方式では、画像出力制御装置という一つの装置内におけるバス利用の優先制御が行えないという問題がある。
【００３１】
電子写真方式の画像出力装置は、高画質化、カラー化に伴い、１ページ当りの画像データ量は増加し、また、高速化に伴い、１ページ当りの出力時間は短くなってきている。このような状況の下で、画像出力制御装置で処理するデータ量も増加し、処理自体の量も増加している。
【００３２】
さらに、画像出力制御装置から電子写真方式の画像出力装置に、その画像処理速度に応じて画像データを供給するためには、画像データを画像出力装置に転送する転送時間を、ある一定時間内に保証しなければならないが、その保証時間も、画像出力処理の速度向上に伴って短くなる。
【００３３】
このため、画像データを画像出力制御装置から、画像出力装置の画像出力処理速度に応じて、画像出力装置にデータ転送することが、高画質化、カラー化、高速化にとっても、ますます重要な課題となる。
【００３４】
特に、カラー画像を高速出力するための電子写真方式の画像出力装置の方式として、複数の転写ドラムを備えるタンデム方式があるが、このタンデム方式においては、Ｋ（黒）、Ｙ（黄）、Ｍ（マゼンタ）、Ｃ（シアン）の４色それぞれに対応した４つの転写ドラムを備え、複数ページを連続して出力する場合には、隣り合った４ページの異なる色の転写処理を、同時に行うことで、画像出力処理の高速化を計っている。
【００３５】
このタンデム方式を用いたプリンタでは、その処理速度に合わせて、データの供給が保証されないと、著しく画像出力の効率が低下することになる。また、上記のタンデム方式では、同時に、４ページの画像出力処理を行っているので、その中の１つのページの、１色のデータの供給が間に合わなかった場合には、同時に処理している他のページの画像出力も同時に乱れるという問題を生じる。
【００３６】
このように、フルカラープリンタを画像出力装置とする画像出力制御装置での処理は、主にＣＰＵを用いて実行する演算処理と、デバイス間のデータ転送を行う複数の処理とを、並行して実行することが要求されるため、ＣＰＵのスケジューリング（ＤＭＡの実行を要求するための処理の実行）や、バスの調停を独立に考えるだけでは、画像出力処理速度に応じて画像データを画像出力装置に転送することができない。
【００３７】
この発明は、上記の問題点を解決するためのもので、画像データを、画像出力装置に、その画像出力速度に応じて、転送することを保証できる画像出力制御装置を提供することを目的とするものである。
【００３８】
【課題を解決するための手段】
上記課題を解決するため、この発明による画像出力制御装置（請求項１）は、
入出力バスを介して互いに接続される、少なくとも、データ入力処理部、蓄積部、データ出力処理部と、
前記データ入力処理部、前記蓄積部および前記データ出力処理部での処理実行の開始、終了を制御する制御処理部と、
を備え、前記データ入力処理部、前記蓄積部または前記データ出力処理部において、データ転送を行うために、前記入出力バスを介してＤＭＡ転送を行って、前記データ出力処理部から画像データを画像出力装置に転送するようにする画像出力制御装置において、
前記データ入力処理部、前記蓄積部および前記データ出力処理部の各処理部において実行される各処理中で、前記画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は第１のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第１のスケジューリング方式とは異なる第２のスケジューリング方式で処理を実行するようにする処理スケジューリング手段と、
前記処理の各々が、ＤＭＡを発行する前に、当該処理が前記第１のスケジューリング方式で処理されるものであるか、前記第２のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第１のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第２のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第１のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第１のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第１のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録するバス制御手段と、
を備えることを特徴とする。
【００４０】
また、この発明による画像出力制御装置の処理実行制御方法（請求項１３）は、
入出力バスを介して互いに接続される、少なくとも、データ入力処理部、蓄積部、データ出力処理部と、
前記データ入力処理部、前記蓄積部および前記データ出力処理部での処理実行の開始、終了を制御する制御処理部と、
を備え、前記データ入力処理部、前記蓄積部または前記データ出力処理部において、データ転送を行うために、前記入出力バスを介してＤＭＡ転送を行って、前記データ出力処理部から画像データを画像出力装置に転送するようにする画像出力制御装置の処理実行制御方法において、
前記データ入力処理部、前記蓄積部および前記データ出力処理部の各処理部において実行される各処理中で、前記画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は第１のスケジューリング方式で処理を実行し、前記特定処理よりも処理の優先度が低いその他の処理は、第１のスケジューリング方式とは異なる第２のスケジューリング方式で処理を実行するように設定しておき、
前記各処理について、前記入出力バスを利用するためにＤＭＡを発行する前に、当該処理が前記第１のスケジューリング方式で処理されるものであるか、前記第２のスケジューリング方式で処理されるものであるかを判別し、その判別の結果に基づき、前記第１のスケジューリング方式の処理を優先して処理するように制御すると共に、前記判別の結果、前記当該処理が前記第２のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する第１のスケジューリング方式の処理があるとき、また、前記判別の結果、前記当該処理が前記第１のスケジューリング方式であって、かつ、前記当該処理に対してバスを優先的に利用する前記第１のスケジューリング方式の処理があるときには、前記判別されたスケジューリング方式についてのキューに前記当該処理を登録する
ことを特徴とする。
【００４１】
【作用】
上記の構成の画像出力制御装置においては、その複数の処理について、画像出力装置の画像出力処理速度に基づく時間制約を受ける特定処理は、他の処理に対して優先的に実行できるように固定の高い優先度を設定しておく。
【００４２】
ＣＰＵは、処理スケジューリング手段により、この特定処理を、他に優先して実行するようにするとともに、バス制御手段により、この特定処理に関するＤＭＡ転送は、他に優先して行うように制御する。
【００４３】
したがって、画像出力制御装置は、特定処理として、データ出力処理部から画像出力装置への転送の処理を、特定処理とすることにより、画像出力装置の出力処理速度に応じて、データを画像出力装置に転送することを保証することができる。
【００４４】
そして、請求項１の発明においては、バス制御手段により、各処理がバスを利用するために、ＤＭＡを発行する前に、優先度の高い処理がバスを利用中であるかどうかをチェックする。そして、優先度の高い処理がバスを利用中であるときには、ＤＭＡを発行せず、優先度の高い処理がバスを利用していない時にのみ、ＤＭＡの発行をするようにする。
【００４５】
したがって、優先度の高い処理のバス利用処理中は、他の優先度の低い処理からのＤＭＡ発行により、その処理が妨げられることはなく、時間制約のあるデータ転送は制約時間内に行われることが保証される。
【００４６】
【発明の実施の形態】
以下、この発明による画像出力制御装置およびその処理実行制御方法の実施の形態を、図を参照しながら説明する。
【００４７】
まず、この実施の形態の画像出力制御装置が適用されるネットワークプリンタシステムについて説明する。
【００４８】
［ネットワークプリンタシステムの説明］
図２は、このネットワークプリンタシステムの全体構成を示すもので、プリントジョブを発行する複数のクライアントマシン１が、ネットワーク２に対して接続されているとともに、前記複数のクライアントマシン１が共通に利用することができる画像出力装置（プリンタ）３が、画像出力制御装置１０を介してネットワーク２に接続されている。画像出力装置３は、この例では、電子写真技術を用いたタンデム方式のプリンタで構成されている。
【００４９】
このネットワークプリンタシステムでは、クライアントマシン１側で、プリントジョブと出力先のプリンタ名（画像出力制御装置１０のネットワーク２におけるホスト名）を指定したプリントジョブの発行をすることで、クライアントマシン１上にある文書データを、所望のプリンタから出力するようにすることができる。プリントジョブは、出力対象とする文書データと、それをどのように出力するかを指定した情報（出力部数、丁合出力、両面出力等）からなっている。
【００５０】
クライアントマシン１から発行されたプリントジョブは、ネットワーク２を通じて、指定された画像出力制御装置１０に入力される。画像出力制御装置１０は、受け取ったプリントジョブから画像出力装置３で画像出力可能な形式の画像データ（印刷データ）を生成して、画像出力装置３に転送する。画像出力装置３は、印刷を実行して、画像をプリントアウトする。
【００５１】
画像出力制御装置１０は、ワークステーション（以下ＷＳと記述）や、パーソナルコンピュータ（以下ＰＣと記述）などの計算機システムを用いて構成されている。
【００５２】
［実施の形態の画像出力制御装置の基本構成］
図１に、この実施の形態の画像出力制御装置１０の基本構成を示す。図１は、画像出力制御装置１０の処理機能を中心にして、装置構成を記述したもので、画像出力制御装置１０は、データ入力処理部１１と、ラスタデータ生成処理部１２と、データ出力処理部１３と、これらの処理部１１〜１３の動作を制御するプリント制御処理部１４とからなる。また、画像出力制御装置１０は、プリントジョブ記憶部１５と、ラスタデータ記憶部１６とを備える。
【００５３】
データ入力処理部１１は、ネットワーク通信により、クライアントからのプリントジョブを受け取り、プリントジョブ記憶部１５にプリントジョブのデータを記憶する。
【００５４】
ラスタデータ生成部１２は、プリントジョブ記憶部１５からデータを読み出し、画像出力装置３から出力可能なデータ、一般には、ラスタデータにデータ変換する処理を行う。この場合、ラスタデータ生成部１２は、画像データ圧縮手段を備え、扱うデータ量が大きい場合には、ラスタデータ生成部１２は、生成したデータを圧縮してラスタデータ記憶部１６に記憶する。
【００５５】
データ出力処理部１３は、ラスタデータ記憶部１６から出力対象とする画像データを画像出力装置３にデータ転送する。データ出力処理部１３は、画像データ伸長手段を備え、画像データが圧縮されている場合には、画像出力装置３へデータ転送する前にデータ伸長をする。
【００５６】
プリント制御処理部１４は、処理部１１〜１３のそれぞれから各処理についての通知を受け取り、次の処理の実行指示を行う。
【００５７】
すなわち、プリント制御処理部１４は、クライアントからプリントジョブ転送の依頼をデータ入力処理部１１を通じて受け取ると、それをデータ入力処理部１１に通知して、データ入力処理を開始させる。この開始指示を受けたデータ入力処理部１１は、プリントジョブのデータを受け取り、プリントジョブ記憶部１５に記憶し、プリントジョブ記憶部１５への記憶が終了すると、プリント制御処理部１５にその旨を通知する。
【００５８】
プリント処理制御部１４はこの通知を受け取ると、ラスタデータ生成処理部１２に、その処理対象データを通知する。ラスタデータ生成処理部１２は、通知されたデータを対象として、プリントジョブデータ記憶部１５から取得し、ラスタデータの生成処理を行い、ラスタデータ記憶部１６に記憶する。
【００５９】
そして、ラスタデータの生成および記憶の処理が完了すると、ラスタデータ生成処理部１２は、ラスタデータ記憶部１６に記憶したラスタデータの識別情報をプリント制御処理部１４に通知する。プリント制御処理部１４は、データ出力処理部１３に、通知のあったラスタデータを知らせる。これを受けて、データ出力処理部１３が、ラスタデータ記憶部１６から画像出力装置へのデータ転送を実行する。
【００６０】
［画像出力制御装置のハードウエア構成例］
図３は、この実施の形態の画像出力制御装置１０のハードウェア構成例を示すものである。
【００６１】
図３において、１０１および１０２はＣＰＵ、１０３はメインメモリ、１０４はメインバス−Ｉ／ＯバスブリッジおよびＩ／Ｏバスコントローラ、１０５はＩ／Ｏバス、１０６はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）、１０７はＤＭＡＣ（ＤＭＡコントローラ）を備えるＩ／Ｆボード、１０８および１０９はＤＭＡＣを備え、ＳＣＳＩインターフェースによりデータのやり取りをするＩ／Ｆボード、１１０はＤＭＡＣ，データ伸長部およびＩＯＴ（画像出力装置）インターフェースを備えるデータ伸長、転送用ボード、１１１はスプールディスク、１１２はプリコレーションディスクである。
【００６２】
メインメモリ１０３は、蓄積部の１次記憶装置を構成し、スプールディスク１１１は、蓄積部の第１の２次記憶装置を構成し、プリコレーションディスク１１２は、蓄積部の第２の２次記憶装置を構成する。
【００６３】
データ入力処理部１１は、この例では、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０１により構成されて、このＮＩＣ１０１を通して、ネットワークからのプリントジョブのデータの入力転送を行う。入力されたプリントジョブを記憶するプリントジョブ記憶部１５としてはスプールディスク１１１を用いる。
【００６４】
ラスタデータ生成処理部１２は、スプールディスク１１１に記憶されたデータをメインメモリ１０３中に読み込み、ラスタデータを生成する。そして、生成されたラスタデータは、ラスタデータ記憶部１６に記憶する。このラスタデータ記憶部１６としては、プリコレーションディスク１１２を用いる。
【００６５】
データ出力処理部１３は、プリコレーションディスク１２から、一旦、メインメモリ１０３に画像データを読み出し、このメインメモリ１０３から、読み出した画像データを伸長しながら画像出力装置３へ転送する。
【００６６】
この実施の形態の実施例においては、画像出力装置３としては、図４に示すように、フルカラーのタンデム方式を用いた電子写真方式の画像出力装置を用いている。
【００６７】
フルカラーの電子写真方式の画像出力装置では、黒（Ｋ）、黄（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）を塗り合せてカラー画像を生成している。タンデム方式では、図４に示したように、４個の転写ドラム２１Ｋ，２１Ｙ，２１Ｍ，２１Ｃを並列に並べることで、画像形成のためのペーパパス２２の時間を短縮し、画像出力の短縮化を実現している。なお、図４において、２３は画像が形成される用紙である。
【００６８】
１ドラム方式では、１ページのフルカラー画像を形成するためには、４色分塗り合せを行う必要があるから、同一ページが４回、転写ドラムを繰返し通らなければならない。この場合には、画像出力制御装置は、各１回の転写ドラムの回転に併せて、同一ページを構成する４色分の情報を、順次に画像出力装置に転送すればよい。
【００６９】
これに対して、タンデム方式では、図４に示すように、４個の転写ドラム２１Ｋ，２１Ｙ，２１Ｍ，２１Ｃで、４ページの画像出力が同時並行（各ページ毎に対応した色の処理を行う）して行う。したがって、画像出力制御装置でのデータ出力処理は、このような処理に応じたデータ転送を画像出力装置に対して行い、画像出力装置の高速の画像出力処理速度に応じて、データを供給することを保証しなければならない。
【００７０】
つまり、この実施の形態において、画像出力制御装置１０上で、画像出力装置３の画像出力速度に応じて実行しなければならない処理は、画像出力装置３の画像出力処理速度から派生する時間制約のある処理である。この時間制約のある処理が、その制約時間内に終了しなければ、画像出力装置３に画像データを供給することが間に合わないために出力画像が乱れてしまう。
【００７１】
この実施例では、圧縮されたラスタデータを、ラスタデータ記憶部１６としてのプリコレーションディスク１１２からメインメモリ１０３に読み出し、そして、メインメモリ１０３のデータを伸長ボードに渡すまでの処理が、画像出力装置３の画像出力処理速度から派生する時間制約のある処理である。
【００７２】
画像出力制御装置１０では、上述した通り、ネットワークプリンタシステムにおいて、画像出力装置がネットワークプリンタとしての機能を果たすために複数の処理が並行して動作している。
【００７３】
［処理のスケジューリング方式の例の説明］
図５は、処理のスケジューリング方式として、ラウンドロビン方式と、固定優先度の横取り方式による処理の実行方法を示す。
【００７４】
ここで、時間制約のある処理とは、処理の要求が発生してから、その処理がある時間以内に終了しなければならない処理のことであり、ここでは、処理を終了しなければならない時間を終了期限という。
【００７５】
図５（Ａ）に示す処理スケジューリング方式は、複数の処理を平等に実行するためのラウンドロビン方式である。この方式は、処理要求が発生した順に処理を実行するが、複数の処理を平等に実行するため、処理要求が発生したすべての処理を時分割（タイムシェアリング）により実行する。
【００７６】
近年のＷＳやＰＣでは、デスクトップ上で複数の処理を同時並行して行えるように、このラウンドロビン方式が採用されていることが多いが、この方式では、図５（Ａ）に示したように、処理数により処理の実行待ち時間が増えるため、時間制約のある処理には向いていない。すなわち、図５（Ａ）に示した例では、処理Ｐ１の終了期限があっても、他の処理要求の発生により時分割により処理しなければ処理が多くなったため、処理Ｐ１の実際の終了時間は、終了期限よりも後になってしまっている。
【００７７】
このラウンドロビン方式に対して、処理に優先度を与え、優先度の高い処理が終了するまでは、優先度の低い処理を実行しないという固定優先度の横取り方式がある。図５（Ｂ）は、この固定優先度の横取り方式による処理の例を示すものである。
【００７８】
図５（Ｂ）に示した例では、処理Ｐ１の優先度が高いとしている。すなわち、処理Ｐ２が実行中に、これよりも優先度の高い処理Ｐ１が発生すると、他の処理に優先して、この処理Ｐ１を実行する。この処理Ｐ１の実行中に、これより優先度の低い処理Ｐ３の処理要求が発生したとしても、このＰ３処理要求は、キュー（待ち行列）に入れられて、優先処理Ｐ１が終了まで実行される。
【００７９】
この固定優先度の横取り方式においても、優先度の同じ処理Ｐ２と、処理Ｐ３とは、基本的には、図５（Ａ）のラウンドロビンと同様に、時分割処理が実行されることになる。
【００８０】
この固定優先度の横取り方式は、優先度の高い処理に処理の実行権を与えるため、優先度の低い処理の処理数の影響を受けない。このことから、時間制約のある処理に対しては、この方式を適用することが有効である。
【００８１】
［実施の形態の画像出力制御装置の処理の流れの説明］
図６に、この実施の形態の画像出力制御装置における処理の概要について、各デバイス間のデータの流れの示す。ＤＭＡは、Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓの略記として用い、ＤＭＡｎ（ｎ＝１，２，…，６）は、複数のＤＭＡ処理を識別するために用いる。また、メモリＭ１，Ｍ２，Ｍ３，Ｍ４は、それぞれメインメモリ１０３内のメモリエリアを示している。
【００８２】
ＤＭＡ１は、ＮＩＣ１０６で、ネットワークからデータ入力されてデータをメモリＭ１に転送するためのものである。
【００８３】
ＤＭＡ２は、メモリＭ１中のデータを，スプールディスク１１１に転送するためのものである。
【００８４】
ＤＭＡ３は、スプールディスク１１１のデータを、ラスタデータ生成のためにメモリＭ２に転送するためのものである。この場合、ラスタデータ生成処理部１２が、メモリＭ２のデータに対して、画像出力装置３に供給する画像データへの変換および圧縮処理を施し、その処理結果の圧縮画像データを、メモリＭ３に保管する。
【００８５】
ＤＭＡ４は、メモリＭ３の圧縮された画像データを、プリコレーションディスク１１２に転送するためのものである。
【００８６】
ＤＭＡ５は、プリコレーションディスク１１２に蓄積されたデータを、メモリＭ４に転送するためのものである。
【００８７】
ＤＭＡ６は、メモリＭ４からデータ伸長、転送用ボード１１０にデータ転送するためのものである。
【００８８】
この実施の形態においては、画像出力装置３の画像出力処理速度から派生する時間制約のある処理は、圧縮画像データを、プリコレーションディスク１１２からメモリＭ４に読み出す処理（ＤＭＡ５）と、メモリＭ４に読み出した圧縮データをデータ伸長、転送用ボードにデータ転送する処理（ＤＭＡ６）である。したがって、プリコレーションディスク１１２に蓄積されているデータは、画像出力装置３の画像出力処理速度により画像出力が可能となる。
【００８９】
ＤＡＭによるデータ転送は、次のようにしてなされる。
図７は、Ｉ／Ｏデバイスとデータ転送を行う場合の計算機資源の利用の概要を示したものである。
【００９０】
例えばディスクからデータを読み出す場合には、読み出し処理プログラムが起動されると、図７に示したように、計算機資源を使って動作する。読み出し処理は、読み出しアドレスとデータサイズとが指定されて起動される。これは、ＣＰＵ上でＤＭＡコントローラ（ＤＭＡＣ）にＤＭＡ要求を発行することによりなされる。
【００９１】
ＤＭＡＣが、このＤＭＡ要求を受け取ると、一回、ＤＭＡを実行する。このときのデータサイズは、指定することが可能であるが、上限値がシステムにより決められている。
【００９２】
ＤＭＡ転送が終了すると、ＤＭＡＣはＣＰＵに割り込みをかけ、ＤＭＡ転送が終了したことを知らせる。読み出したいデータサイズ全体の転送が終了していない場合には、ＣＰＵは、再度、ＤＭＡの起動を発行する。これを繰り返すことでデータ転送を行っている。
【００９３】
通常、Ｉ／Ｏデバイスへのアクセスが生じた場合には、全体のスループットを向上するために、ＤＭＡＣが実行中は、読み出し命令を実行した処理は、待機状態になり、他の処理を実行することができる。
【００９４】
次に、複数の処理で、バス利用が競合した場合の制御について、比較例と対照しながら、この実施の形態の場合の競合制御について、以下に説明する。
【００９５】
［複数の処理によるバス利用の競合制御の比較例］
まず、この発明との比較例について説明する。図８および図９は、異なるＤＭＡＣ（異なる装置）が、バス利用を競合した場合の比較例の動作を示したものである。
【００９６】
図８の比較例は、複数の処理によるバス利用要求が発行された時に、当該複数の処理がバスを時分割に利用する場合の例である。この例のように、複数の処理によるバス利用が発生した時に、単純に時分割でバスを利用するようにした場合には、バスの利用競合により、図８の下方に示すように、例えば、処理Ａのみでバスが利用された場合の終了時間が、バスにおいてデータ転送時間が競合する他の処理Ｂの影響を受け、時間ＤＬだけ遅延してしまうことが分かる。
【００９７】
図９の比較例は、このような問題に対応するために、バス利用要求が発行されたときに、ＤＭＡＣ１を優先的に実行することを指定した場合のバス利用の状態を示したものである。
【００９８】
図９では、ＤＭＡＣ１の管理下にある優先度の高い処理Ａの実行中に、ＤＭＡＣ２の管理に係る処理Ｂからバス利用を要求しても、処理Ａのバスを用いたデータ転送時間が影響されることがない。さらに、処理Ｂの実行中に、処理Ａの実行要求が起こった場合でも、処理Ａが待たされる時間は、最大でも、１つのＤＭＡを行う時間内の時間τに押さえることができる。
【００９９】
次に、同じＤＭＡＣに対して、複数の処理が、バス利用を要求した場合の動作について、図１０と図１１とに示す。
【０１００】
図１０は、ＦＩＦＯ方式でバス利用を制御した場合で、先に要求を発行した方のバス利用を優先して行う方式である。この方式の場合には、先に要求が発行された処理が実行中の間に、次の処理の要求が起こったときには、先に要求が発行された処理の優先度が高いために、後の処理の実行開始時間が、その先の処理の終了まで待たされてしまう。
【０１０１】
図１１は、同一のＤＭＡＣに対して、複数の処理要求が生じた時に、時分割にバス利用を制御する方式を示す。
【０１０２】
この場合には、図８に示した結果と同様に、処理Ａのバス利用によるデータ転送時間が他の処理（処理Ｂ）の実行により影響を受けてしまうことが分かる。
【０１０３】
［実施の形態におけるバス制御方式についての説明］
この発明の実施の形態においては、複数のスケジューリング方式を採用し、スケジューリング方式ごとに優先度を設定する。
【０１０４】
画像出力装置の画像出力速度に応じて処理を実行しなければならない処理は、固定優先度で優先度の高いものから実行できるスケジューリング方式に設定する。以下、このスケジューリング方式の優先度を、リアルタイム・クラス（以下ＲＴクラスという）と呼ぶことにする。このＲＴクラスの優先度は、他のスケジューリング方式の優先度よりもすべて高い。そして、画像出力装置の画像出力速度に応じて処理を実行しなければならないＲＴクラスの処理が、複数個、ある場合には、その優先度を当該ＲＴクラスのスケジューリング方式内で設定する。
【０１０５】
このＲＴクラス以外で扱う処理は、前述の図５（Ａ）を用いて説明した時分割のラウンドロビン方式でスケジューリングを行う。このスケジューリング方式の優先度を、以下、タイムシェアリング・クラス（以下ＴＳクラスという）と呼ぶことにする。
【０１０６】
さらに、この実施の形態では、各処理（デバイスドライバ）から、ＤＭＡＣにＤＭＡを発行する前に、次のようなバス制御処理を行うようにする。
【０１０７】
すなわち、各処理（デバイスドライバ）から、ＤＭＡＣにＤＭＡを発行する前に、自分よりも優先される処理の実行中であるか否かチェックを行う。このチェックの結果、自分よりも優先される処理の実行中であれば、ＤＭＡを発行せず、順番待ちの状態にする。自分よりも優先される処理の実行中でなければ、各処理は、そのままＤＭＡを発行し、当該処理が設定されているスケジューリング方式による競合制御に任せるようにする。
【０１０８】
図１２は、バス制御処理を呼び出すタイミングを示すものである。すなわち、従来は、図１２（Ａ）に示し、また、図７に示したように、処理の開始要求が発生したとき、ＣＰＵがその開始要求を認識したら、即座にバスにＤＭＡを発行するようにしていた。これに対して、この実施の形態では、ＣＰＵは、処理開始要求を認識したら、図１２（Ｂ）に示すように、即座にＤＭＡを発行するのではなく、わずかの期間であるが、ＤＭＡ発行前の期間ＣＢにおいて、前記のバス制御処理を行うようにするものである。
【０１０９】
［実施の形態におけるバス制御処理の説明］
以下に、この実施の形態においてバス制御処理手段として用意するデータ構造と動作について説明する。
【０１１０】
バス制御処理手段は、バスを優先的に利用する処理の有無を示す変数ＲＴ−ｆｌａｇと、バスを優先利用している処理の優先度を保持する変数ｐｒｉ−ｐｒｏと、ＤＭＡＣへのＤＭＡの発行を待たされている処理の処理ＩＤを保持するキュー（待ち行列）を持つ。
【０１１１】
変数ＲＴ−ｆｌａｇは、「１」より大きければ、バスを優先的に利用するＲＴクラスの処理が存在し、「０」であれば、バスを優先的に利用するＲＴクラスの処理は存在しないことを意味している。変数ｐｒｉ−ｐｒｏは、ＲＴクラスの中での各処理の優先度を示すものである。
【０１１２】
また、キューは、ＤＭＡを呼び出そうとしている処理の優先度のクラスにより分けて管理する。ＲＴクラスの処理は、優先度別のキューを持ち、ＴＳクラスの処理はＴＳクラスのキューとして一括に管理する。
【０１１３】
次に、バス制御処理の動作について、図１３〜図１６を参照しながら説明する。
【０１１４】
［処理がＲＴクラスの場合の動作］
ＲＴクラスの処理が、バス利用を行うために、最初にＤＭＡ呼び出しを行う場合の動作を、図１３に示す。
【０１１５】
まず、これよりＤＭＡを発行しようとする処理ＴＥＭＰがＲＴクラスのものかどうかを確認し（ステップＳ１０１）、ＲＴクラスであれば、変数ＲＴ−ｆｌａｇの値を１加算する（ステップＳ１０２）。次に、変数ＲＴ−ｆｌａｇが「１」より大きいかどうか、すなわち、既にバスを優先的に利用する処理が実行されているかどうかをチェックする（ステップＳ１０３）。
【０１１６】
変数ＲＴ−ｆｌａｇが「１」以下の場合には、バスを優先的に利用する処理が実行されていないことを意味するため、変数ｐｒｉ−ｐｒｏに、処理ＴＥＭＰの優先度を設定して、ＤＭＡＣにＤＭＡ実行を指示する（ステップＳ１０４）。
【０１１７】
一方、変数ＲＴ−ｆｌａｇが「１」より大きい場合には、既にバスを優先的に利用する処理が実行中であることを意味するため、変数ｐｒｉ−ｐｒｏの値と自分の処理の優先度ｔｅｍｐ−ｐｒｏとの比較を行う（ステップＳ１０５）。そして、自分の優先度ｔｅｍｐ−ｐｒｏが高い場合には、変数ｐｒｉ−ｐｒｏに、自分の優先度ｔｅｍｐ−ｐｒｏを設定し、ＤＭＡＣにＤＭＡ実行を指示する（ステップＳ１０６）。
【０１１８】
また、自分の優先度ｔｅｍｐ−ｐｒｏが、変数ｐｒｉ−ｐｒｏより低い場合には、自分の処理ＴＥＭＰのＩＤ（識別符号）を、ＲＴクラスのキューの、自分の優先度ｔｅｍｐ−ｐｒｏのところに追加し、自分の処理を待機状態にする（ステップＳ１０７）。
【０１１９】
次に、既にＤＭＡを発行し、１回のＤＭＡが終了して、割り込みにより処理が起動された場合の動作を、図１４を用いて説明する。
【０１２０】
まず、ＤＭＡを発行しようとする処理ＴＥＭＰがＲＴクラスのものかどうかを確認し（ステップＳ２０１）、ＲＴクラスであれば、次のＤＭＡを発行する前に、自分の処理の優先度ｔｅｍｐ−ｐｒｏが、変数ｐｒｉ−ｐｒｏの優先度より高いかどうかチェックする（ステップＳ２０２）。
【０１２１】
自分の処理の優先度ｔｅｍｐ−ｐｒｏが、変数ｐｒｉ−ｐｒｏの優先度より高い場合は、自分の処理が一番優先されるので、引き続きＤＭＡＣにＤＭＡの実行を指示する（ステップＳ２０３）。変数ｐｒｉ−ｐｒｏの優先度の値が、自分の優先度ｔｅｍｐ−ｐｒｏより高い場合には、ＲＴクラスのキューの自分の優先度に、自分の処理のＩＤを追加し、自分の処理を待機状態にする（ステップＳ２０４）。
【０１２２】
次に、データ転送要求に対して最後のＤＭＡを実行し、終了の割り込みを受けた場合に、データ転送を終了する場合の動作について、図１５を用いて説明する。
【０１２３】
まず、終了の割り込みを受けた処理ＴＥＭＰがＲＴクラスのものかどうかを確認し（ステップＳ３０１）、ＲＴクラスであれば、変数ＲＴ−ｆｌａｇの値を１減算する（ステップＳ３０２）。そして、減算後の変数ＲＴ−ｆｌａｇが「０」か、それより大きいか判断する（ステップＳ３０３）。
【０１２４】
減算後の変数ＲＴ−ｆｌａｇが「０」であれば、バス利用しようとしているＲＴクラスの処理はないことを意味しているので、ＴＳクラスのキューにある、それぞれの処理ＩＤで示される全ての処理を起動する（ステップＳ３０４）。また、減算後の変数ＲＴ−ｆｌａｇが「１」以上であれば、変数ｐｒｉ−ｐｒｏの優先度の値を、ＲＴクラスのキューの一番高い優先度で順番待ちしている処理の優先度に設定し、ＲＴクラスのキューにある処理ＩＤで示される処理を起動する（ステップＳ３０５）。
【０１２５】
［処理がＴＳクラスの場合］
ＴＳクラスの処理がバス利用を行うために、最初にＤＭＡ呼び出しを行う場合には、図１３のステップＳ１０１から、図１６のステップＳ４０１に移行する。そして、まず、変数ＲＴ−ｆｌａｇが「０」であるかどうかをチェックする（ステップＳ４０１）。ここで、ＲＴ−ｆｌａｇが「０」の場合には、バスを優先的に利用する処理が実行されてないことを意味するため、ＤＭＡＣにＤＭＡを発行する（ステップＳ４０２）。
【０１２６】
ＲＴ−ｆｌａｇが「０」でない場合には、既にバスを優先的に利用する処理が実行中であることを意味するため、自分の処理ＩＤを、ＴＳクラスのキューに追加し、自分の処理を待機状態にする（ステップＳ４０３）。
【０１２７】
既にＤＭＡを発行し、前の回のＤＭＡが終了して、割り込みにより処理が起動された場合には、図１４のステップＳ２０１から図１６のステップＳ４０１に移行する。この場合にも、次のＤＭＡを発行する前に、ＲＴ−ｆｌａｇが「０」であるかどうかをチェックして、上記と同じ動作を行う。
【０１２８】
さらに、最後のＤＭＡを実行し、終了の割り込みを受けた場合に、データ転送を終了する場合には、図１５のステップＳ３０１から図１５のステップＳ３０６に移行し、ＴＳクラスの転送終了処理を行う。
【０１２９】
このＴＳクラスの転送終了処理においては、ＲＴ−ｆｌａｇが「０」であるかどうかをチェックして、ＲＴクラスの処理があれば、ＴＳクラスのキューにある処理についてのＤＭＡの発行はせず、ＲＴクラスの処理の終了を待つ。チェックの結果、ＲＴクラスの処理が存在しなければ、ＴＳクラスのキューにある処理の実行を行う。ＴＳクラスのキューに処理がなければ、処理は終了となる。
【０１３０】
以上のようにして、バスを用いたデータ転送を含む処理に対しても、処理の優先度を反映させた実行を可能とすることができる。
【０１３１】
［変形例］
上記の実施の形態の説明では、ＲＴクラスの優先度が同じ場合には、要求が発生した順に実行するようにしたが、この方法に限るものではない。次に説明する方法は、ＲＴクラスの優先度が同じ場合には、時分割でバスを利用する方式である。これについて説明する。
【０１３２】
この場合には、バス制御処理手段で用いるデータとして同一の優先度の処理の数を示すｐｒｉ−ｐｒｏ−ｎｕｍを、さらに設ける。
【０１３３】
ＲＴクラスの処理が、バス利用を行うために、最初にＤＭＡ呼び出しを行う場合には、まず、変数ＲＴ−ｆｌａｇが「０」であるかどうかをチェックし、ＲＴ−ｆｌａｇの値を「１」加算する。
【０１３４】
前記チェックの結果、変数ＲＴ−ｆｌａｇが「０」の場合には、バスを優先的に利用する処理が実行されてないことを意味するため、変数ｐｒｉ−ｐｒｏに処理の優先度を設定して、ＤＭＡＣにＤＭＡ実行を指示する。
【０１３５】
また、前記チェックの結果、変数ＲＴ−ｆｌａｇが「０」でない場合には、既にバスを優先的に利用する処理が実行中であることを意味するため、変数ｐｒｉ−ｐｒｏの値と、自分の処理の優先度との比較を行う。自分の優先度が高い場合には、変数ｐｒｉ−ｐｒｏに自分の優先度を設定し、ＤＭＡＣにＤＭＡ実行を指示する。優先度が同じ場合には、変数ｐｒｉ−ｐｒｏ−ｎｕｍの値を「１」加算し、ＤＭＡＣにＤＭＡを発行する。そうでない場合には、自分の処理ＩＤを、ＲＴクラスのキューの自分の優先度のところに追加し、自分の処理を待機状態にする。
【０１３６】
次に、この例の場合において、既にＤＭＡを発行し、前回のＤＭＡが終了して、割り込みにより処理が起動された場合の動作について説明する。
【０１３７】
次のＤＭＡを発行する前に、変数ｐｒｉ−ｐｒｏの値が、自分の処理の優先度より高くないことを確認する。確認されれば、自分の処理が一番優先されるので、引き続きＤＭＡＣにＤＭＡの実行を指示する。変数ｐｒｉ−ｐｒｏの値が、自分の優先度より高い場合には、ＲＴクラスのキューの自分の優先度に、自分の処理ＩＤを追加し、自分の処理を待機状態にする。
【０１３８】
次に、この例の場合のデータ転送を終了する場合の動作について説明する。
【０１３９】
データ転送要求に対して最後のＤＭＡを実行し、終了の割り込みを受けた場合には、変数ＲＴ−ｆｌａｇの値を「１」減算する。このとき、変数ＲＴ−ｆｌａｇが「０」であれば、ＴＳクラスのキューにある処理ＩＤの処理を全て起動する。
【０１４０】
変数ＲＴ−ｆｌａｇが「１」以上で、変数ｐｒｉ−ｐｒｏ−ｎｕｍが「１」以上であれば、同一の優先度の処理が、バス転送を実行中であるので、変数ｐｒｉ−ｐｒｏ−ｎｕｍの値を「１」減算する。
【０１４１】
変数ＲＴ−ｆｌａｇが「１」以上で、変数ｐｒｉ−ｐｒｏ−ｎｕｍが「０」であれば、変数ｐｒｉ−ｐｒｏの値として、ＲＴクラスのキューの一番高い優先度でキューされている処理の優先度を設定し、ＲＴクラスのキューにある一番高い優先度の全ての処理ＩＤの処理を起動する。
【０１４２】
このようにすることで、ＲＴクラスの処理が同じ優先度の場合に、バス利用を時分割に並行に実行することができる。なお、ＴＳクラスに対しての動作は、前述の例と全く同じである。
【０１４３】
次に、バス制御処理手段の起動のタイミングの変形例について説明する。上記の例では、指定したＤＭＡ転送の最小単位の実行終了毎に、バス利用の制御を実行するようにした。これは、優先度の高い処理のバス利用の待ち時間を最小にする方式である。
【０１４４】
しかし、バスのバンド幅や、リアルタイムにデータ転送が要求されるデータ量等の関係で、時間制約はあるものの、制約時間までに余裕がある場合も考えられる。この場合には、各処理で、バス制御処理を行う回数を、各ＤＭＡの終了割り込みのタイミング毎にするのではなく、例えば、ある処理では、１０回に１回行い、別の処理では、５回に１回行うというようにすることも可能である。
【０１４５】
次に、画像出力制御装置の幾つかの他の実現方法の概要を、図１７から図２１に示す。これらの実現方式においても、この発明を適用することで、画像データを電子写真方式の画像出力装置の画像出力速度から派生する時間制約のある処理を、優先的に実行することが可能である。
【０１４６】
図１７、図１８の例は、蓄積部として一つの２次記憶装置を利用する場合の構成概要を示したものである。すなわち、図１７は、図３に対応するハードウエア構成例であり、また、図１８は、図６に対応する処理の流れを説明するための構成図である。蓄積部の２次記憶装置としては、前述の例では、スプールディスク１１１と、プリコレーションディスク１１２の２個を用いたが、この例の場合には、図１７および図１８に示したように、スプール、プリコレーションディスク１２０の１個のみを用いるようにする。
【０１４７】
この例の場合には、データ転送の回数は、前述の図３、図６の構成の場合の例と同じであるが、２次記憶装置が１個であるため、同じ２次記憶装置に対してＤＭＡを行う回数が多くなる。
【０１４８】
図１９および図２０の例は、画像出力制御装置内に、画像データ生成処理部を持たない場合についての構成概要を示したものである。
【０１４９】
図１９の例の場合のデータ転送について説明する。
この例では、既に画像出力装置から出力可能なデータに変換されたデータが、ネットワークから画像出力制御装置１０に送られてくる場合を想定している。この場合、画像出力制御装置１０には、ラスタデータであって、かつ、圧縮された形で入力データが送られてくる。
【０１５０】
したがって、この図１９の例においては、プリントジョブデータ記憶部を構成するスプールディスク１１１は、不要である。したがって、図６のＤＭＡ３およびＤＭＡ４は、この例の場合には存在せず、メモリＭ２，Ｍ３も不要となる。
【０１５１】
この図１９の例の場合には、ＤＭＡ１は、ＮＩＣ１０６からメモリＭ１へのデータ転送であり、ＤＭＡ２はメモリＭ１から２次記憶装置（プリコレーションディスク１１２）へのデータ転送であり、ＤＭＡ５は、２次記憶装置からメモリＭ４へのデータ転送であり、ＤＭＡ６は、メモリＭ４からデータ伸長、転送用ボード１１０へのデータ転送である。
【０１５２】
図２０は、この例の場合の画像出力制御装置１０の機能ブロック図であり、前述例の図１の機能ブロック図に対応している。両図の比較から明らかなように、この例の場合には、プリントジョブ記憶部１５と、ラスタデータ生成部１２が不要になっている。
【０１５３】
図２１の例は、画像データ生成処理部が生成したデータを、２次記憶装置に蓄積せず、直接、画像出力装置に転送する場合の構成概要を示したものである。
【０１５４】
この例の場合には、ＤＭＡ１は、ＮＩＣ１０６からメモリＭ１へのデータ転送、ＤＭＡ２はメモリＭ１から２次記憶装置（スプールディスク１１１）へのデータ転送、ＤＭＡ３は、２次記憶装置からメモリＭ２へのデータ転送、ＤＭＡ６は、メモリＭ３からデータ伸長、転送用ボード１１０へのデータ転送である。
【０１５５】
以上のいずれの例の場合においても、この発明による画像出力制御装置によれば、画像出力制御装置から画像出力装置への画像データの転送は、画像出力装置の画像出力速度性能を最高に発揮できる状態を保証することができるものである。
【０１５６】
【発明の効果】
以上説明したように、この発明によれば、複数の処理を並行して実行する画像出力制御装置において、画像出力装置の出力処理速度に応じて画像出力制御装置からデータ転送することを保証することができる。したがって、画像出力装置の性能を最高に発揮させるようにすることができ、ネットワークプリンタシステムとした場合に、高速プリント処理が可能になる。
【０１５７】
また、画像出力装置の画像出力処理速度から派生する時間制約を受けない緒処理も、優先度の高い処理が実行していない時間を利用して実行することで、システム全体として、効率の良い動作が行える。
【０１５８】
さらに、画像出力装置へのデータ転送を保証するために、計算機資源の競合を避ける方式と比較して、計算機資源を必要最低限にすることで、コストダウンが計れ、さらに計算機資源の遊び時間を少なくすることができる。
【図面の簡単な説明】
【図１】この発明による画像出力制御装置の実施の形態の機能ブロック図である。
【図２】この発明の実施の形態が適用されるネットワークプリンタシステムの概念構成図である。
【図３】この発明による画像出力制御装置の実施の形態のハードウエア構成例を示す図である。
【図４】この発明の実施の形態が適用される画像出力装置の例を示す図である。
【図５】処理要求に対するスケジューリング方式の例を示す図である。
【図６】この発明による画像出力制御装置の実施の形態における処理の流れを説明するための図である。
【図７】ＤＭＡ転送を説明するための図である。
【図８】バスを競合した場合のバス利用の状態を、この発明の比較例について示した図である。
【図９】バスを競合した場合のバス利用の状態を、この発明の比較例について示した図である。
【図１０】バスを競合した場合のバス利用の状態を、この発明の比較例について示した図である。
【図１１】バスを競合した場合のバス利用の状態を、この発明の比較例について示した図である。
【図１２】この発明による画像出力制御装置の実施の形態における要部の動作タイミングを示す図である。
【図１３】この発明による画像出力制御装置の実施の形態における要部の動作を説明するためのフローチャートである。
【図１４】この発明による画像出力制御装置の実施の形態における要部の動作を説明するためのフローチャートである。
【図１５】この発明による画像出力制御装置の実施の形態における要部の動作を説明するためのフローチャートである。
【図１６】この発明による画像出力制御装置の実施の形態における要部の動作を説明するためのフローチャートである。
【図１７】この発明による画像出力制御装置の蓄積部として、一つの２次記憶装置を持つ場合のハードウェア構成の概要を示した図である。
【図１８】この発明による画像出力制御装置の蓄積部として、一つの２次記憶装置を持つ場合のデータ転送の流れの概要を示した図である。
【図１９】この発明による画像出力制御装置内に画像データ生成処理部を持たない場合についてのデータの流れの概要について示した図である。
【図２０】この発明による画像出力制御装置内に画像データ生成処理部を持たない場合についての各処理部とその関係の概要を示した図である。
【図２１】この発明による画像出力制御装置の画像データ生成処理部が生成したデータを２次記憶装置に蓄積せず、直接画像出力装置に転送する場合のデータ転送の流れの概要を示した図である。
【符号の説明】
１    クライアントマシン
２    ネットワーク
３    画像出力装置
１０  画像出力制御装置
１１  データ入力処理部
１２  ラスタデータ生成処理部
１３  データ出力処理部
１４  プリント制御処理部
１５  プリントジョブデータ記憶部
１６  ラスタデータ記憶部
１０１、１０２  ＣＰＵ
１０３  メインメモリ（一次記憶装置）
１０５  Ｉ／Ｏバス
１１０  データ伸長、転送用ボード
１１１  スプールディスク（２次記憶装置）
１１２  プリコレーションディスク（２次記憶装置）
【図１】
0003724536.tif 000002
【図２】
0003724536.tif 000003
【図３】
0003724536.tif 000004
【図４】
0003724536.tif 000005
【図５】
0003724536.tif 000006
【図６】
0003724536.tif 000007
【図７】
0003724536.tif 000008
【図８】
0003724536.tif 000009
【図９】
0003724536.tif 000010
【図１０】
0003724536.tif 000011
【図１１】
0003724536.tif 000012
【図１２】
0003724536.tif 000013
【図１３】
0003724536.tif 000014
【図１４】
0003724536.tif 000015
【図１５】
0003724536.tif 000016
【図１６】
0003724536.tif 000017
【図１７】
0003724536.tif 000018
【図１８】
0003724536.tif 000019
【図１９】
0003724536.tif 000020
【図２０】
0003724536.tif 000021
【図２１】
0003724536.tif 000022