JP3555748B2 - 印刷制御方法および印刷制御装置並びに印刷システム - Google Patents
印刷制御方法および印刷制御装置並びに印刷システム Download PDFInfo
- Publication number
- JP3555748B2 JP3555748B2 JP19767199A JP19767199A JP3555748B2 JP 3555748 B2 JP3555748 B2 JP 3555748B2 JP 19767199 A JP19767199 A JP 19767199A JP 19767199 A JP19767199 A JP 19767199A JP 3555748 B2 JP3555748 B2 JP 3555748B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- processors
- command
- bitmap
- 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 - Lifetime
Links
Images
Description
【産業上の利用分野】
本発明は、印刷制御方法および印刷制御装置並びに印刷システムに係り、特に、レーザプリンタ、LED(発光ダイオード)プリンタ、LCS(液晶シャッタ)プリンタ等のページプリンタやシャトルプリンタを、高速印刷するための印刷制御方法および印刷制御装置並びに印刷システムに関する。
【0002】
【従来の技術】
従来、特願昭63−158481号や特願平1−282747号に記載の印刷制御装置においては、ホストコンピュータからの印刷コマンド列の受信と、ページバッファへの描画と、描画済みページバッファについての印刷を並行処理することにより、印刷スループットをプリンタ最高性能に迄高めていた。本プリンタ最高性能は、ページ当りの描画時間が概ねページ当りのプリンタメカニズム印刷時間(1ページの最短印刷時間)以下なら、達成されていた。
【0003】
特開平1−263055号に記載の印刷制御装置においては、1ページを複数個の領域に分割し、各領域毎に専用の描画プロセッサを用意し、各々が各領域を独立に描画することにより描画性能を向上させ、1ページの印刷を高速化しようとしていた。この装置では、ページ当りの描画時間がページ当りのプリンタメカニズム印刷時間を超えても、1ページのみの印刷(ファーストプリント)なら、印刷性能を向上させることができた。
【0004】
特開平1−263051号に記載の印刷制御装置においては、1ページを複数個の領域に分割し、各領域毎に文字描画プロセッサ、図形描画プロセッサのいずれかを割り当て、各プロセッサが各領域を独立に描画することにより描画性能を向上させ、1ページの印刷を高速化しようとしていた。
【0005】
その他、複数のプロセッサを用いて印刷制御を行なう従来の技術として、特開平1−263051号、特開平1−263055号、特開平2−63852号、特開平2−108567号の各公報に記載のものがある。
【0006】
【発明が解決しようとする課題】
上記特願昭63−158481号や特願平1−282747号においては、ページ当りの描画時間が、概ねページ当りのプリンタメカニズム印刷時間を超えると、印刷スループットがプリンタ最高性能より低下するという問題があった。
【0007】
また、上記特開平1−263055号及び特開平1−263051号においては、1ページのみの描画性能は高いが、描画と印刷を並行処理していないため、各ページの印刷内容が異なる複数ページからなる文書を連続して印刷する際(以後、単に連続印刷と呼ぶ)、プリンタ最高性能が得られないという問題があった。
【0008】
上記特開平1−263051号においては、各ページが文字又は図形のみの場合、図形描画プロセッサ又は文字描画プロセッサが役に立たないため、描画性能の向上が図れず、1ページの印刷も十分高速化できないという問題があった。
【0009】
また、複数のプロセッサを利用した上記いずれの従来技術においても、印刷内容が異なる複数ページからなる文書を連続して印刷する際の、複数のプロセッサが異なるページを並列描画する手法について何ら言及されていないという問題があった。
【0010】
本発明の目的は、複数ページからなる文書を連続して印刷する際の印刷性能を向上させることができる印刷制御方法および印刷制御装置並びに印刷システムを提供することにある。
【0011】
【課題を解決するための手段】
本発明による印刷制御方法は、複数頁にわたる印刷コマンドをコマンドバッファに格納し、該印刷コマンドに従って複数のプロセッサにより各頁の描画処理および印刷処理を行なう印刷制御方法であって、異なる頁の描画処理を順次異なるプロセッサに割当てる際、前記コマンドバッファ内の複数頁にわたる印刷コマンド列を読み、実際の描画(実描画)を行なうことなく各頁の描画属性パラメータの設定を行なう空描画を実行し、該空描画の終了した頁について当該設定された描画属性パラメータに従って前記印刷コマンド列に基づき各プロセッサで実描画を実行するようにしたものである。なお、本明細書において、描画属性パラメータとは、フォントの種類およびサイズ、文字ピッチ、行ピッチ、反転、アンダライン、イタリック、等各種の描画属性の他、紙サイズ、印刷部数、印字方向(ポートレート/ランドスケープ)等の用紙制御情報も含むものとする。
【0012】
本発明による印刷制御装置は、マスタプロセッサと、該マスタプロセッサの指示に従って動作する複数のスレーブプロセッサと、ホストコンピュータとの通信を行うためのホスト通信コントローラと、プリンタエンジン部との入出力を行うためのプリンタエンジンアダプタと、ホストコンピュータから前記ホスト通信コントローラを介して受信した印刷コマンド列を格納するコマンドバッファ部を有し、前記全プロセッサがアクセス可能な共有メモリと、個々のプロセッサしかアクセスできない各プロセッサ毎のローカルメモリとを備え、前記マスタプロセッサに、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理を頁区切りを検出するまで1頁分行い、次頁先頭の頁区切りアドレスを求める空描画機能と、該空描画の後空き状態のスレーブプロセッサを獲得する機能と、該スレーブプロセッサの獲得の後、前記空描画により確定した紙サイズ分の大きさを有する空き状態のページバッファメモリを獲得する機能と、該ページバッファメモリの獲得の後、空描画を終了した頁についての前記獲得スレーブプロセッサによる前記獲得ページバッファメモリへの実描画を、当該頁先頭の頁区切りアドレスと描画属性パラメータとを入力パラメータとし順次起動する機能を持たせ、前記スレーブプロセッサに、実描画として、前記空描画により求められた描画属性パラメータに従って1頁分の描画を行う機能と、該実描画の後マスタプロセッサに該実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理をマスタプロセッサに依頼する機能とを持たせ、さらに前記マスタプロセッサに、該実描画の終了報告を受信したとき、実描画終了頁の更新と、報告元スレーブプロセッサの解放とを行う機能と、印刷処理を依頼されたとき、前記描画済みページバッファについての印刷処理を実行する機能と、該印刷処理により起動された描画済みページバッファからの読み出しの終了を、プリンタエンジンアダプタ又はスレーブプロセッサから認知したとき、当該ページバッファを解放する機能とを持たせ、前記マスタプロセッサによる空描画処理と印刷処理を並行処理し、さらに前記マスタプロセッサによる処理と前記各スレーブプロセッサによる処理を並列処理するようにしたものである。
【0013】
本発明による他の印刷制御装置は、マスタプロセッサと、該マスタプロセッサの指示に従って動作する複数のスレーブプロセッサと、ホストコンピュータとの通信を行うためのホスト通信コントローラと、プリンタエンジン部との入出力を行うためのプリンタエンジンアダプタと、ホストコンピュータから前記ホスト通信コントローラを介して受信した印刷コマンド列を格納するコマンドバッファ部を有し、前記全プロセッサがアクセス可能な共有メモリと、個々のプロセッサしかアクセスできない各プロセッサ毎のローカルメモリとを備え、前記マスタプロセッサに、複数のスレーブプロセッサに対し、M個の個別描画タスクの任意の一つを起動する機能を持たせ、第1番目のスレーブプロセッサに割り当てた個別描画タスク1に、固定サイズ(プリンタエンジン部にて印刷可能な最大紙サイズ分の大きさに対応)の空き状態のページバッファメモリの獲得をマスタプロセッサに依頼する機能と、その後前記獲得ページバッファメモリへの実描画として描画属性パラメータの設定処理及び描画を頁区切りを検出するまで行い1頁分の描画をする機能と、該実描画の後該スレーブプロセッサからマスタプロセッサに、該実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する機能と、該印刷処理の依頼の後、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理を頁区切りを検出するまで1頁分行う空描画をMー1回実行する機能を繰返し実行する機能とを持たせ、第k番目のスレーブプロセッサに割り当てた個別描画タスクmに、前記空描画をmー1回実行する機能と、前記固定サイズの空き状態のページバッファメモリの獲得をマスタプロセッサに依頼する機能と、その後前記獲得ページバッファメモリへの実描画として描画属性パラメータの設定処理及び描画を頁区切りを検出するまで行い1頁分の描画をする機能と、該実描画の後該スレーブプロセッサからマスタプロセッサに該実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する機能と、該印刷処理の依頼の後、前記空描画をMーm回実行する機能とを持たせ、さらに前記マスタプロセッサに、前記実描画の終了報告の受信時に実描画終了頁の更新を行う機能と、印刷処理の依頼時に該描画済みページバッファについての印刷処理を実行する機能と、該印刷処理により起動された描画済みページバッファからの読出しの終了をプリンタエンジンアダプタ又はスレーブプロセッサから認知したとき、当該ページバッファを解放する機能と、ページバッファ獲得の依頼時にページバッファの獲得を実行する機能とを持たせ、前記マスタプロセッサによる空描画処理と印刷処理を並行処理し、さらに前記マスタプロセッサによる処理と前記各スレーブプロセッサによる処理を並列処理するようにしたものである。
【0014】
【作用】
マスタプロセッサと複数のスレーブプロセッサとを有するマルチプロセッサ型印刷制御装置においては、マスタプロセッサの制御のもとで、複数個のスレーブプロセッサが描画等の処理を並列処理することができるので、印刷制御装置における処理能力を向上させることができる。特に、空描画の採用により複数のプロセッサによる描画処理の並列実行が容易となった。
【0015】
空描画集中処理方式(紙サイズ確定型空描画集中処理方式、又は紙サイズ仮定型空描画集中処理方式)を用いた印刷制御装置においては、描画管理タスクが空描画を行ない、複数個の個別描画タスクが別プロセッサ上で実描画を並列実行する。また、実描画により描画の済んだ各ページバッファについての印刷処理を、上記空描画とは並行的に、また実描画とは並列的に実行することができる。なお、本明細書において、「並列」実行とは、複数のプロセッサが同時に複数の処理を実行することを意味し、「並行」実行とは、1つのプロセッサが複数の処理をパイプライン的に処理することを意味する。
【0016】
また、空描画分散処理方式においても、複数個の個別描画タスクが別プロセッサ上で実描画を並列実行し、実描画により描画の済んだ各ページバッファについての印刷処理を、実描画とは並列的に実行する。
【0017】
従って、空描画集中処理方式及び空描画分散処理方式においては、実描画処理を並列実行しているため、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。また描画と印刷を並行処理しているため、各ページの印刷内容が異なる複数ページからなる文書についての連続印刷においても、プリンタ最高性能を達成することができる。また複数個のプロセッサとして汎用プロセッサを用いることにより、各ページが文字又は図形のみの文書についても描画性能を向上させ、印刷性能を向上させることができる。
【0018】
また、空描画集中処理方式及び空描画分散処理方式のうち可変長ページバッファ制御のものを用いる場合、紙サイズに応じて必要なサイズのページバッファだけを獲得するため、大きな紙サイズの印刷を少ないページバッファ総容量で実現することができる。さらに、小さな紙サイズの印刷では多数のページバッファを配置できるようになるため、一部描画負荷の大きいページの印刷が混在していても、平均印刷スループットを低下することなく、プリンタエンジン最高性能での印刷を実現することができる。
【0019】
また、空描画分散処理方式においては、空描画集中処理方式とは異なり、空描画を個別描画タスクが行なっている。従って、前記空描画の負荷が小さい場合、個別描画タスク数Mをスレーブプロセッサ総数KまたはK+1と等しくし、各個別描画タスクmを、いずれかのスレーブプロセッサ及びマスタプロセッサに割り当てることで、印刷スループットを空描画集中処理方式より向上させることができる。
【0020】
また前記制約コマンドをサポートするとともに、該制約コマンドに対応した印刷制御処理においては前記空描画処理において、明瞭なページ区切りの検出のみを行ない、前記描画属性パラメータの設定処理を行なわないで済む。そのため、制約コマンドと制約コマンドに対応した印刷制御方式を設けることにより、空描画集中処理方式及び空描画分散処理方式における空描画処理を、制約コマンドの場合、簡単化し、高速することができる。
【0021】
従って、制約コマンドに対しては、前記空描画集中処理方式と空描画分散処理について示した効果に加え、プロセッサ数にほぼ比例した描画性能の向上効果も得ることができる。
【0022】
またページ内並列処理方式の印刷制御装置においては、各1ページについての描画を複数個の領域に分け、各領域について別プロセッサが並列実行する。さらに、描画の済んだ各ページバッファについての印刷処理を、上記描画とは並行的に実行する。
【0023】
従って、ページ内並列処理方式の印刷制御装置においては、連続印刷を高速実行するだけでなく、1ページからなる文書や、ファーストプリントも高速印刷することができる。
【0024】
【実施例】
次に、本発明の第1実施例を説明する。初めに、図2から図5に示すハードウェアの基本構成図を用いて本実施例における印刷制御装置のハードウェアの基本構成を説明する。
【0025】
図2にハードウェアの第1の基本構成を示す。本図において印刷制御装置11は、マスタプロセッサモジュール100、スレーブプロセッサモジュール1(110)、…、スレーブプロセッサモジュールk(本図からは省略)、…、スレーブプロセッサモジュールK(120)、システムバス調停部130、システムバス12、共有メモリ141、ホスト通信コントローラ151−a、二次記憶装置161、ファイルコントローラ162−a、プリンタエンジンアダプタ部1(171−a)とからなる。
【0026】
マスタプロセッサモジュール100は、マスタプロセッサ(以後、MPUとも記す)101、内部バス102、ローカルメモリ103、バスインターフェース(以後I/Fとも記す)104とからなる。内部バス102は、MPU101の各種入出力信号(アドレス信号、データ信号、その他の制御信号)からなる。
【0027】
MPU101がアドレス信号を発生すると、バスI/F104は発生したアドレス信号に応じて内部バス102上のアドレスをそのまま発生し、該内部バス102上のローカルメモリ103との入出力を行ったり、システムバス12上のアドレスへ変換した後、システムバス12上の共有メモリ141や各種周辺コントローラとの入出力を行ったりする。
【0028】
スレーブプロセッサモジュール1(110)は、スレーブプロセッサ1(以後SPU1とも記す)(111)、内部バス112、ローカルメモリ113、バスI/F114とからなる。内部バス112は、SPU1(111)の各種入出力信号(アドレス信号、データ信号、その他の制御信号)からなる。SPU1(111)がアドレス信号を発生すると、バスI/F114は発生したアドレス信号に応じて内部バス112上のアドレスをそのまま発生し、該内部バス112上のローカルメモリ113との入出力を行ったり、システムバス12上のアドレスへ変換した後、システムバス12上の共有メモリ141や各種周辺コントローラとの入出力を行ったりする。
【0029】
以下、スレーブプロセッサモジュール2、…、k、…、Kはスレーブプロセッサモジュール1(110)と同様に構成する。例えばスレーブプロセッサモジュールK(120)はスレーブプロセッサK(以後SPU Kとも記す)(121)、内部バス122、ローカルメモリ123、バスI/F124とからなり、各々はスレーブプロセッサモジュール1(110)の場合と同様に機能する。
【0030】
システムバス12は、前記各プロセッサモジュールつまりマスタプロセッサモジュール100、スレーブプロセッサモジュール1(110)、…、スレーブプロセッサモジュールK(120)が前記共有メモリ141や各種周辺コントローラ、つまりホスト通信コントローラ151−aやファイルコントローラ162−aやプリンタエンジンアダプタ部1(171−a)との間で入出力を行うための各種入出力信号(アドレス信号、データ信号、その他の制御信号)からなる。
【0031】
システムバス調停部130はシステムバス12に対し、該システムバス12のマスタであるマスタプロセッサモジュール100、スレーブプロセッサモジュール1(110)、…、スレーブプロセッサモジュールk、…、スレーブプロセッサモジュールK(120)、ホスト通信コントローラ151−a、ファイルコントローラ162−a、プリンタエンジンアダプタ部1(171−a)等がシステムバスの使用権の要求信号を有効にした時、どのマスタに該システムバスの使用権を与えるかを決定する。使用権の決定方式としては、先着順方式、集中制御優先度方式、デージーチェーン方式、サイクリック方式等の中のいずれを用いても良い。
【0032】
共有メモリ141は、MPU101、SPU1(111)、…、SPUk、…、SPUK(121)のすべてからアクセス可能なメモリである。共有メモリ141をマルチポートメモリで構成し、一つのポートをホスト通信コントローラ151−aやファイルコントローラ162−a等の周辺コントローラがアクセスするためのポートとし、別の一つのポートをマスタプロセッサやスレーブプロセッサがアクセスするためのポートとしてもよい。
【0033】
ホスト通信コントローラ151−aは、印刷制御装置11がホストコンピュータ10と通信を行うためのコントローラであり、システムバス12の一つの周辺コントローラである。
【0034】
本通信(ホストI/Fと呼ぶ)の物理I/FとしてはSCSI(Small ComputerSystem Interface)、RS232C、RS422、GP−IB(General Purpose Interface Bus)、セントロニクス、HDLC(High −Level Data Link Control)、ISDN(Integrated Services Degital Network)、Ethernet等を用い、使用する物理I/Fの種類に応じて本コントローラ151−aのハードウェア論理として適切なものを実装する。
【0035】
二次記憶装置161は、フォントデータ、書式データ、プログラム等を格納するために用い、システムバス12の一つの周辺コントローラであるファイルコントローラ162−aを介してシステムバス12に接続される。
【0036】
プリンタエンジンアダプタ部1(171−a)は、印刷制御装置11がプリンタエンジン部18と入出力を行うためのコントローラであり、やはりシステムバス12の一つの周辺コントローラである。
【0037】
次にハードウェアの第1の基本構成(図2)における各種信号について説明する。
【0038】
信号線12−aは、マスタプロセッサモジュールとシステムバスを接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、MPU101の制御信号、共有メモリ141の制御信号等からなる。
【0039】
信号線12−bは、スレーブプロセッサモジュール1とシステムバスを接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、SPU1(101)の制御信号、共有メモリ141の制御信号等からなる。
【0040】
他のスレーブプロセッサモジュール2からKも、スレーブプロセッサモジュール1と同様の信号線を用いて、システムバスとの間で入出力信号の送受信を行う。
【0041】
信号線12−cは、共有メモリとシステムバスを接続するための入出力信号の集まりであり、アドレス信号、データ信号、共有メモリ141の制御信号等からなる。
【0042】
信号線12−dは、ホスト通信コントローラ151−aと共有メモリ141を接続するための入出力信号の集まりであり、アドレス信号、データ信号、共有メモリ141の制御信号等からなる。
【0043】
信号線12−eは、ホスト通信コントローラ151−aとシステムバスを接続するための入出力信号の集まりであり、バス調停用信号、ホスト通信コントローラの制御信号(MPUへの割込み信号を含む)等からなる。各SPUへの割込み信号をさらに該信号線12−dに追加することもできる。
【0044】
信号線12−fは、ファイルコントローラ162−aと共有メモリ141を接続するための入出力信号の集まりであり、アドレス信号、データ信号、共有メモリ141の制御信号等からなる。
【0045】
信号線12−gは、ファイルコントローラ162−aとシステムバスを接続するための入出力信号の集まりであり、バス調停用信号、ファイルコントローラ制御信号(MPUへの割込み信号を含む)等からなる。各SPUへの割込み信号をさらに該信号線12−gに追加することもできる。
【0046】
信号線12−hは、プリンタエンジンアダプタ部1(171−a)とシステムバスを接続するための入出力信号の集まりであり、バス調停用信号、プリンタエンジンアダプタ部1の制御信号(MPUへの割込み信号や各SPUへの割込み信号を含む)、アドレス信号、データ信号、共有メモリ141の制御信号等からなる。各SPUへの割込み信号を省略することもできる。
【0047】
信号線12−iは、プリンタエンジンアダプタ部1(171−a)とプリンタエンジン部18を接続するための入出力信号の集まりであり、プリンタエンジン部18が定める各種インターフェース信号からなる。
【0048】
図3にハードウェアの第2の基本構成を示す。本図は、図2におけるプリンタエンジンアダプタ部1(171−a)をプリンタエンジンアダプタ部2(171−b)に置き換えたものである。プリンタエンジンアダプタ部2(171−b)はシステムバス12に接続される点は同じであるが、プリンタエンジン部18への印刷データの読出しを、システムバス12でなく、新たに設けたビデオバス1(13)を用いて行う。
【0049】
そのためビデオバス1(13)とのインターフェースを信号線12−j、信号線12−k、信号線12−lを用いてとる。
【0050】
信号線12−jは、マスタプロセッサモジュールとビデオバスを接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、MPU101の制御信号、プリンタエンジンアダプタ部2(171−b)内のメモリ(本図には示さず)をアクセスするための制御信号等からなる。
【0051】
信号線12−kは、スレーブプロセッサモジュール1とビデオバス1(13)を接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、SPU1(111)の制御信号、プリンタエンジンアダプタ部2(171−b)内のメモリ(本図には示さず)をアクセスするための制御信号等からなる。
【0052】
他のスレーブプロセッサモジュール2からKも、スレーブプロセッサモジュール1と同様の信号線を用いて、ビデオバス1(13)との間で入出力信号の送受信を行う。
【0053】
信号線12−lは、プリンタエンジンアダプタ部2(171−b)とビデオバス1(13)を接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、プリンタエンジンアダプタ部2(171−b)の制御信号、MPUや各SPUへの割込み信号等からなる。
【0054】
図4にハードウェアの第3の基本構成を示す。本図は、図2におけるホスト通信コントローラ151−aとファイルコントローラ162−aとを、それぞれホスト通信コントローラ151−bとファイルコントローラ162−bに置き換え、それらを共有メモリに直接接続するのをやめ、システムバスのみに接続したものである。共有メモリ周りのインターフェースが図2の場合とは異なるため、本図では共有メモリの参照番号として142を用いる。
【0055】
信号線12−c’は、共有メモリとシステムバス12を接続するための入出力信号の集まりであり、アドレス信号、データ信号、共有メモリ142の制御信号等からなる。
【0056】
信号線12−e’は、ホスト通信コントローラ151−bとシステムバス12を接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、ホスト通信コントローラの制御信号(MPUへの割込み信号を含む)、共有メモリ142の制御信号等からなる。
【0057】
信号線12−g’は、ファイルコントローラ162−bとシステムバス12を接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、ファイルコントローラ制御信号(MPUへの割込み信号を含む)、共有メモリ142の制御信号等からなる。
【0058】
前記信号線12−e’と信号線12−g’に各SPUへの割込み信号を追加することもできる。
【0059】
図5にハードウェアの第4の基本構成を示す。本図は、図3におけるホスト通信コントローラ151−aとファイルコントローラ162−aとを、それぞれホスト通信コントローラ151−bとファイルコントローラ162−bとに置き換え、それらを共有メモリに直接接続するのをやめ、システムバスのみに接続したものである。図2を図4へ変更したのと、変更内容は同様である。本図でも共有メモリの参照番号としては、142を用いる。
【0060】
次に図1を用いて、印刷制御装置11のハードウェア構成をさらに詳しく説明する。図1では図3において、マスタプロセッサモジュール100、各スレーブプロセッサモジュール部に、タイマ106、116、126等;イメージ処理プロセッサ107、117、127等;文字、図形描画プロセッサ108、118、128等を追加した。さらに、操作パネル部19も追加し、印刷制御装置11についての表示と入力とを行えるようにした。
【0061】
なお、図2〜図5にも、図1と同様の構成要素を追加することができる。
【0062】
次に図6を用いて印刷制御装置11のソフトウェア構成を説明する。本図に示すように、ソフトウェアはモニタ部31とタスク処理部32とから構成される。モニタ部31は、カーネル部311、ホスト通信制御部312、コマンドバッファ制御部313、ファイル制御部314、ページバッファ制御部315、プリンタ制御部316とコマンドバッファ部33とページバッファ部34とから構成される。
【0063】
カーネル部311は、割込み制御プログラムのメインルーチン、スーパバイザコール(SVCと略す)制御のメインルーチン、タスク制御部、及びタイマ制御部とからなる。
【0064】
ホスト通信制御部312は、ホストコンピュータ10と印刷制御装置11の間で各種コマンドの授受を行う。例えば、ホストコンピュータ10から印刷コマンド列を受信したり、印刷制御装置11内で発生した各種事象(エラー発生、頁印刷終了、文書印刷終了等)をホストコンピュータ10へ報告したりする。
【0065】
コマンドバッファ制御部313は、コマンドバッファ部33についての書き込みと読み出しを行う際に用いる書き込みスタートポインタ、書き込みエンドポインタ、読み出しポインタ等の制御を行う。
【0066】
本コマンドバッファ制御部313を前記ホスト通信制御部312が用いて、印刷コマンドをコマンドバッファ部33へ格納する。また同じくコマンドバッファ制御部313を用いて、後述するタスク処理部32内の描画タスク部321がコマンドバッファ部33の内容を読み出し、処理する。
【0067】
ファイル制御部314は、前記二次記憶装置161内の各ファイルを制御するための部分であり、各ファイル内データのアクセスのための制御や、ファイルを構成するファイル実体(複数個のブロックの集合)の管理等を行う。タスク処理部内の各タスクは本ファイル制御部314内のファイル制御用の各種SVC機能を用いて、ファイルの制御を行う。
【0068】
ページバッファ制御部315は、複数ページ構成のページバッファ部34についての空き管理(獲得、解放の管理)を行う。本空き管理を用いることで、ページバッファへの描画書き込みが必要になった時点で、紙サイズに対応して定まる必要なだけのページバッファを獲得し、描画内容の読み出しが終った時点で該ページバッファを解放することもできる。
【0069】
プリンタ制御部316は、プリンタエンジン部18とプリンタエンジンアダプタ部1(171−a)又はプリンタエンジンアダプタ部2(171−b)の空き管理や、プリンタエンジン部18との入出力の制御を行う。
【0070】
タスク処理部32は描画タスク部321と印刷タスク部322とその他のタスクの処理部323とからなる。
【0071】
描画タスク部321は、描画管理タスク3210と、個別描画タスク1(3211)、個別描画タスク2(3212)、…、個別描画タスクM(3213)とからなる。これらの各種描画タスク321、3210、3211、…、3213は、本印刷制御装置11に実装した複数個のプロセッサモジュール(100、110、120等)を用いて異なるプロセッサ間では並列処理され、同一のプロセッサ内では並行処理される。これらの各種描画タスク321、3210、3211、3213の処理内容は、後で詳しく述べる。
【0072】
印刷タスク部322は、印刷タスク1(3221)、印刷タスク2(3222)、…、印刷タスクN(3223)とからなる。各印刷タスクnは、各個別描画タスクmが前記ページバッファ部34への描画を終了した時点で、該個別描画タスクmにより起動される。起動された各印刷タスクnは、描画の終了した各ページバッファ(紙面1ページ分)についての印刷処理を実行する。本印刷処理は、前記プリンタ制御部316に対し、プリンタ制御用の各種SVC命令を発行することにより実行する。印刷タスクは別々のページについて並行処理するため、複数個用意する。用意する印刷タスクの合計数は、本装置内で同時に並行処理しうる印刷タスク数の最大値とした。具体的には、任意の時点で、プリンタエンジン部18の給紙部から排紙部までの間に存在しうる最大紙数に対応し、この数はプリンタエンジン部18の仕様によって増減する。
【0073】
本ソフトウェア構成における各部の処理内容は、本発明の出願人が先に出願した特願昭63−158481号や特願平1−282747号の場合と、マルチプロセッサを利用して前述のように並列処理する点以外は、同様である。
【0074】
なお、コマンドバッファ部33とページバッファ部34は、モニタ部31にもタスク処理部32にも属さないメモリ部分としてとらえてもよい。
【0075】
図6のソフトウェア構成に示した各部分は、前記図1又は図2〜図5のハードウェア構成図内の各部分に次のように対応づけられる。
【0076】
(1)モニタ部31(コマンドバッファ部33とページバッファ部34を除く)のプログラムは、MPU101用のローカルメモリ103に格納し、MPU101にて実行する。
【0077】
(2)コマンドバッファ部33は共有メモリ(141又は142)に配置する。さらに、コマンドバッファ部33の全体又は一部を各ローカルメモリ(103、113、123等)に配置してもよい。
【0078】
(3)ページバッファ部34は共有メモリ(141又は142)又は各ローカルメモリ(103、113、123等)に配置する。
【0079】
(4)描画管理タスク3210のプログラムは、MPU101用のローカルメモリ103に格納し、MPU101にて実行する。各SPU用のローカルメモリ(113、123等)に格納し、各SPU(111、121等)にて実行してもよい。
【0080】
(5)個別描画タスク1、個別描画タスク2、…、個別描画タスクM用のプログラムは、各SPU用のローカルメモリ(113、123等)又はMPU101用のローカルメモリ103に格納し、SPU(111、121等)又はMPU101にて実行する。
【0081】
(6)印刷タスク1、印刷タスク2、…、印刷タスクN用のプログラムは、MPU101用のローカルメモリ103に格納し、MPU101にて実行する。各SPU用のローカルメモリ(113、123等)に格納し、各SPU(111、121等)にて実行することもできる。
【0082】
(7)その他のタスク処理部323は、MPU101用のローカルメモリ103又は各SPU用のローカルメモリ(113、123等)に格納し、MPU101又はSPU(111、121等)にて実行する。
【0083】
次に図7を用いて、本印刷制御装置11における一つの処理手順を説明する。以後、本処理手順を紙サイズ確定型空描画集中処理方式と呼ぶ。
【0084】
初めにマスタプロセッサがホストコンピュータからホスト通信コントローラを介して印刷コマンド列を受信し、前記共有メモリ(141又は142)内のコマンドバッファ部に格納する。
【0085】
マスタプロセッサ内の描画管理タスク3210は、コマンドバッファ部内の印刷コマンド列に対し、次の処理を行う。
【0086】
(1)パラメータの初期化を行う(41)。
【0087】
(1−1)個別描画タスク番号mを0に初期化する(411)。
【0088】
(1−2)ページ通し番号jを0に初期化する(412)。
【0089】
(1−3)描画属性パラメータを初期化する(413)。
【0090】
(2)以下の処理を無限に繰り返す(42)。
【0091】
(2−1)パラメータを更新する(421)。
【0092】
(2−1−1)個別描画タスク番号iを更新する(4211)。
【0093】
(2−1−2)ページ通し番号jを更新する(4212)。
【0094】
(2−2)1ページ分の空描画を行う(422)。つまり、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理をページ区切りを検出するまで1ページ分行う。これにより、次ページ先頭用のページ区切りアドレスと描画属性パラメータとを求める(422)。
【0095】
(2−3)ページ通し番号jについての実描画を行うための個別描画タスクm用に資源を獲得する(423)。
【0096】
(2−3−1)個別描画タスクm用に空き状態のスレーブプロセッサを獲得する(4231)。
【0097】
(2−3−2)個別描画タスクm用に空き状態のページバッファを獲得するつまり、個別描画タスクm用に獲得したスレーブプロセッサがアクセス可能で、前記空描画処理により確定した紙サイズ分の大きさを有する空き状態のページバッファメモリを獲得する(4232)。
【0098】
(2−4)個別描画タスクmを起動し、空描画を終了したページ(ページ通し番号j)についての前記獲得スレーブプロセッサによる前記獲得ページバッファメモリへの実描画と呼ぶ処理を、第1ページついては初期値である第1ページ先頭用のページ区切りアドレスと描画属性パラメータを入力パラメータとし、また第2ページ以降については既にマスタプロセッサが検出済みのページ先頭用のページ区切りアドレスと描画属性パラメータを入力パラメータとして起動する(424)。
【0099】
前記マスタプロセッサ内の前記描画管理タスク3210により起動されたスレーブプロセッサk内の個別描画タスクm(3212から3213)は、次の処理を行う。
【0100】
(1)1ページ分の実描画を行う。つまり、実描画として描画属性パラメータの設定処理及び獲得したページバッファへの描画をページ区切りを検出するまで行い、1ページ分の描画を実行する(441)。
【0101】
(2)該SPUkからMPUに、該実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する(442)。
【0102】
(3)本報告と印刷処理の依頼が受理されたことを、MPUからの連絡により知った後、処理を終了する。
【0103】
各SPUk(kは1からK)からMPUへの連絡や処理の依頼は、以下のように行う。
【0104】
(1)各SPUkが、MPUへの情報送信処理部を用いて、MPUへの連絡や処理の依頼を行う(451)。
【0105】
(2)MPUが、SPUからの情報受信処理部を用いて、前記連絡や処理の依頼を受信する(432)。
【0106】
(3)MPUが、SPU依頼内容の実行部を用いて、連絡の受信や処理の実行を行う(433)。
【0107】
(4)MPUが、SPUへの情報送信処理部を用いて、SPUlへ連絡の受信や処理の実行が終了したことを送信する(431)。
【0108】
(5)MPUが、SPUからの情報受信処理部を用いて、前記連絡や処理の依頼が終了したことを知る(452)。
【0109】
次に図24と図25を用いて、MPUと各SPU間の連絡方法をさらに詳しく説明する。
【0110】
MPUとSPU間は、図24に示すように、割込み信号を相互に入力することにより、連絡を取り合う。これらの各割込み信号は前記システムバス12の中に含めるようにしたが、システムバス12とは独立の信号線としてもよい。
【0111】
また連絡内容を示す情報は、図25のように共有メモリ上に配置する。
【0112】
図24に示した割込み信号と図25に示した共有メモリ上の連絡情報を用いて、MPU(SPU k)からSPU k(MPU)への連絡は以下のように行う。
【0113】
(A)MPU(SPU k)の処理
(1)連絡用マクロ命令mtos(stom)をタスク又はモニタが発行する。
【0114】
(2)MPU(SPU k)上のモニタがmtos(stom)を実行する。
【0115】
(a)[入力]
(i) k:SPU番号
(ii)連絡情報I
(b)[出力]
なし
(c)[処理]
(i)MPU(SPU k)からSPU k(MPU)への連絡情報エリアに、連絡情報Iを記入する。
【0116】
(ii)MPU(SPU k)からSPU k(MPU)への割込み信号をアサートする。
【0117】
(B)SPU k(MPU)の処理
(1)割込み処理において割込み要因を解析し、MPU(SPU k)からの連絡割込みであることを識別する。
【0118】
(2)該連絡割込みに対応する処理で、MPU(SPU k)からSPUk(MPU)への連絡情報Iを読出し、その内容に応じた処理を行う。
【0119】
(3)該処理では連絡情報Iの単なる受信に加え、各種処理(タスク起動、タスク終了、事象発生待ち、資源空き待ち等のタスク制御を伴うことも可能)を行うことができる。
【0120】
ページバッファの獲得と再獲得の依頼を受信したMPUは、前記ページバッファ制御部315を用いて、ページバッファの獲得と再獲得を行う(553)。
【0121】
該実描画の終了報告を受信したMPUは、SPU依頼内容の実行部において、実描画終了ページの更新と、報告元スレーブプロセッサの解放を行う(433)。
【0122】
また印刷処理を依頼されたMPUは、同じくSPU依頼内容の実行部において、該描画済みページバッファについての印刷タスクを起動する(433)。
【0123】
また該印刷タスクにより起動された描画済みページバッファからの読み出しの終了を、MPUがプリンタエンジンアダプタ部2(171−b)又はSPUからの割込み信号により知ると、MPUがページバッファ制御部315を用いて、当該ページバッファを解放する。
【0124】
またMPUによる描画管理タスク処理と印刷タスク処理は、前記従来技術に示した方法を用いて並行処理する。さらにMPUによる処理と各SPUによる処理は前述のように並列処理する。
【0125】
次に図8を用いて、本印刷制御装置11におけるもう一つの処理手順を説明する。以後、本処理手順を紙サイズ仮定型空描画集中処理方式と呼ぶ。
【0126】
初めにMPUがホストコンピュータからホスト通信コントローラを介して印刷コマンド列を受信し、共有メモリ内のコマンドバッファ部に格納する。MPU内の描画管理タスク3210は、コマンドバッファ部内の印刷コマンド列に対し、次の処理を行う。
【0127】
(1)パラメータの初期化を行う(51)。
【0128】
(1−1)個別描画タスク番号mを1に初期化する(511)。
【0129】
(1−2)ページ通し番号jを1に初期化する(512)。
【0130】
(1−3)描画属性パラメータを初期化する(513)。
【0131】
(2)ページ通し番号1についての実描画を行うため、個別描画タスクi用に資源を獲得する(52)。
【0132】
(2−1)個別描画タスクm用に空き状態のSPUを獲得する(521)。
【0133】
(2−2)個別描画タスクm用に空き状態のページバッファを獲得する。つまり、個別描画タスクm用に獲得したSPUがアクセス可能な、初期値として仮定されている紙サイズ分の大きさを有する空き状態のページバッファメモリを獲得する(522)。
【0134】
(3)個別描画タスクmを起動し、ページ通し番号1のページ(第1ページ)についての前記獲得スレーブプロセッサによる前記獲得ページバッファメモリへの実描画と呼ぶ処理を、第1ページ先頭用のページ区切りアドレスと描画属性パラメータを入力パラメータとして起動する(53)。
【0135】
(4)以下の処理を無限に繰り返す(54)。
【0136】
(4−1)1ページ分の空描画を行う。つまり、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理をページ区切りを検出するまで1ページ分行う。これにより、次ページ先頭用のページ区切りアドレスと描画属性パラメータとを格納する(541)。
(4−2)パラメータを更新する(542)。
【0137】
(4−2−1)個別描画タスク番号mを更新する(5421)。
【0138】
(4−2−2)ページ通し番号jを更新する(5422)。
【0139】
(4−3)ページ通し番号jについての実描画を行うための個別描画タスクm用に資源を獲得する(543)。
【0140】
(4−3−1)個別描画タスクm用に空き状態のSPUを獲得する(5431)。
【0141】
(4−3−2)個別描画タスクi用に空き状態のページバッファを獲得する。つまり、個別描画タスクi用に獲得したSPUがアクセス可能な、前記空描画終了時点のデフォルト紙サイズ分の大きさを有する、空き状態のページバッファメモリを獲得する(5432)。
【0142】
(4−4)個別描画タスクmを起動し、空描画を終了した次のページ(ページ通し番号j)についての前記獲得スレーブプロセッサによる前記獲得ページバッファメモリへの実描画と呼ぶ処理を、次頁先頭用のページ区切りアドレスと描画属性パラメータを入力パラメータとして起動する(544)。
【0143】
前記MPU内の前記描画管理タスク3210により起動されたスレーブプロセッサk内の個別描画タスクm(3212から3213)は、次の処理を行う。
【0144】
(1)1ページ分の実描画を行う。つまり、実描画として描画属性パラメータの設定処理及び獲得したページバッファへの描画をページ区切りを検出するまで行い、1ページ分の描画を実行する。
【0145】
該実描画における描画属性パラメータの設定処理において紙サイズの変更を検出すると、該変更紙サイズについてのページバッファの再獲得をMPUに依頼する(561)。
【0146】
(2)該個別描画タスクm(SPUkにて処理)からMPUに、該実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する(562)。
【0147】
(3)本報告と印刷処理の依頼が受理されたことを、MPUからの連絡により知った後、処理を終了する。
【0148】
各SPUk(kは1からK)からMPUへの連絡や処理の依頼は、MPUへの情報送信処理部(571)、MPUからの情報受信処理部(572)、SPUへの情報送信処理部(551)、SPUからの情報受信処理部(552)、SPU依頼内容の実行部(553)を用いて、図7の場合と同様にして行う。
【0149】
ページバッファ獲得と再獲得の依頼を受信したMPUは、前記ページバッファ制御部315を用いて、ページバッファの獲得と再獲得を行う。
【0150】
該実描画の終了報告を受信した該MPUは、SPU依頼内容の実行部において、実描画終了ページの更新と、報告元スレーブプロセッサの解放を行う(553)。また印刷処理を依頼されたMPUは、同じくSPU依頼内容の実行部において、該描画済みページバッファについての印刷タスクを起動する(553)。
【0151】
また該印刷タスクにより起動された描画済みページバッファからの読み出しの終了を、MPUがプリンタエンジンアダプタ部2(171−b)又はSPUからの割込み信号により知ると、MPUが前記ページバッファ制御部315を用いて、当該ページバッファを解放する。
【0152】
またMPUによる描画管理タスク処理と印刷タスク処理は、前記従来技術に示した方法を用いて並行処理する。さらに前記MPUによる処理と前記各SPUによる処理は前述のように並列処理する。
【0153】
なお、前述の手順においてはページバッファの獲得、解放方式として紙サイズに応じて、必要サイズのページバッファを獲得、解放する可変長ページバッファ制御方式を採用したが、紙サイズに依らず固定サイズ(プリンタエンジンにて印刷可能な最大紙サイズ分の大きさに対応)のページバッファを獲得、解放する固定長ページバッファ制御方式を採用することもできる。この場合、前記手順において、ページバッファの再獲得が不要になる等、ページバッファの制御は簡単にできるが、可変長ページバッファ制御方式ほどにはページバッファメモリを有効活用することはできない。
【0154】
次に図9と図10を用いて、プリンタエンジンアダプタ部2(172)の構成の例を説明する。
【0155】
プリンタエンジンアダプタ部2(172)は図9では、プリンタエンジンアダプタ部2(172)をプリンタ制御用プロセッサ(PPUと略す)1721、内部バス1722、ローカルメモリ1723、プリンタメモリコントローラ1(1724、PMC1とも略す)、バスI/F1725と1726とから構成される。このうち、PMC1(1724)は前記ローカルメモリ1723の内容(通常、後述する印刷中継バッファと呼ぶエリアの内容)のプリンタエンジン部18への読み出し処理と前記ローカルメモリ1723の制御(DRAMのリフレッシュ等)を行う。本読み出し処理のために、内蔵のDMA(Direct Memory Access)回路を設け、該読み出し処理を前記プリンタ制御用プロセッサ1721に負担をかけないで行うことが望ましい。本構成の下で、マスタプロセッサモジュール100、各スレーブプロセッサモジュール(110等)内のローカルメモリ上に配置されているページバッファ部内の描画済みページバッファの内容を、各プロセッサモジュール用の内部バスに接続されている各プロセッサモジュール内のマスタプロセッサ、スレーブプロセッサのいずれかのプロセッサ、又はDMA回路(109、119等)が、該内部バスからビデオバス1(13)と呼ぶ前記システムバス12とは別のバスにに送信の後、該ビデオバス1(13)から前記プリンタエンジンアダプタ部2(171−b)内のローカルメモリ1723上に配置した印刷中継バッファと呼ぶエリアに送信し、該印刷中継バッファ内のデータを前記プリンタエンジン部18へ、プリンタエンジンインターフェース(12−i−1と12−i−2)に従って送信する。また、前記プリンタエンジンアダプタ部2(172)内の前記印刷中継バッファから前記プリンタエンジン部18へのデータの読み出しを、プリンタエンジンアダプタ部2(171−b)内のPMCに内蔵したDMA回路を用いて行ってもよい。
【0156】
図10では、プリンタエンジンアダプタ部2(171−b)はプリンタ制御用プロセッサ(PPUと略す)1721、内部バス1722、ローカルメモリ1723、バスI/F1725とから構成される。
【0157】
また本構成では、各プロセッサモジュール内にプリンタメモリコントローラ2(10A、11A等、PMC2と略す)を設けてもよい。該PMC2は各ローカルメモリ103、113等の内容(通常ページバッファの内容)のプリンタエンジン部18への読み出し処理と前記ローカルメモリ103、113等の制御(DRAMのリフレッシュ等)を行う。本読み出し処理のために、内蔵のDMA(Direct Memory Access)回路を設け、該読み出し処理を各プロセッサモジュール内のMPUや各SPUに負担をかけないで行うこともできる。
【0158】
本構成の下で、マスタプロセッサモジュール、各スレーブプロセッサモジュール内のローカルメモリ(103、113等)上に配置されているページバッファ部内の描画済みページバッファの内容を、各プロセッサモジュール内のPMC2が各プロセッサモジュール用の内部バスを介さず、ビデオバス2と呼ぶ前記システムバスとは別のバスに送信の後、該ビデオバス2から前記プリンタエンジン部へ、プリンタエンジンインターフェースに従って送信する。
【0159】
なお、上記図9と図10において、DMA回路109、119等やPMC2(10A、11A等)が前記データ転送を行う際、ページバッファの各ラスタの読み出し時に、ゼロクリアするモードとしないモードを設けた。ゼロクリアするモードは通常の各ページを印刷部数1枚ずつ印刷するシングルページコピーと呼ぶ印刷において用いる。また、ゼロクリアしないモードは各ページを印刷部数で2枚以上印刷するマルチページコピーと呼ぶ印刷において用いる。
【0160】
本実施例においては、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。
【0161】
図11、図12、図13に本実施例におけるコマンド受信、空描画、実描画、印刷等のタイミングを示す。図示のように、MPUによる描画管理タスクの処理と各SPUによる各個別描画タスク1、2、3等の処理はプロセッサ毎に並列して実行されている。またMPUにより処理されるコマンド受信、描画管理タスクの処理、転送1、転送2、…、転送5等、印刷1、印刷2、…、印刷5等は、並行(パイプライン処理)して実行されている。
【0162】
ここで図11と図12は、プリンタエンジンアダプタ部2(172)の構成として、前記図9を用いた場合に対応する。このうち図11では、各プロセッサモジュール(100、110、120等)内のローカルメモリ(103、113等)から前記プリンタエンジンアダプタ部2(171−b)内の印刷中継バッファ(ローカルメモリ1723内)へのデータ転送をDMA回路(109、119等)が行う場合に相当する。また、本図では前記ゼロクリアをハードウェア(該DMA回路)を用いて行っている。
【0163】
一方、図12は前記データ転送を、各プロセッサモジュール用の内部バスに接続されている各プロセッサモジュール内のMPU、SPUのいずれかのプロセッサがソフトウェア処理を用いて行う場合に相当する。また、本図では前記ゼロクリアをソフトウェア(該プロセッサ)を用いて行っている。
【0164】
なお、前記図11と図12では前記プリンタエンジンアダプタ部2(171−b)内の印刷中継バッファとして、少なくともページバッファ2ページ分(1ページがプリンタエンジン部18にて印刷可能な最大紙サイズ分の大きさを有する)を用意することにより、該印刷中継バッファへの書き込みと読み出しを並行処理可能とした。なお、印刷中継バッファの容量を減らしても印刷処理を行うことができる。
【0165】
なお、図12はクリア時間が転送時間より大きい場合の例を示しているが、印刷制御装置の実現方法に応じて、クリア時間、転送時間両者の大小関係は変化する。しかし、両者の大小関係が変わっても、各処理のタイミングは図12の場合と同様である。
【0166】
また図13は、プリンタエンジンアダプタ部2(172)の構成として、前記図10を用いた場合に対応する。
【0167】
以上のように本実施例においては実描画処理を並列実行しているため、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。
【0168】
また描画と印刷を前記並行処理しているため、各ページの印刷内容が異なる複数ページからなる文書についての連続印刷においても、プリンタ最高性能を達成することができる。
【0169】
また複数個のプロセッサ(MPU、SPU1、SPU2、…、SPUK)として汎用プロセッサを用いているため、各ページが文字又は図形のみの文書についても描画性能を向上し、印刷性能を向上させることができる。
【0170】
次に本発明の第2実施例を説明する。
【0171】
ハードウェアの基本構成、ハードウェアの詳細構成、ソフトウェア構成、プリンタエンジンアダプタ部2の構成は、前記第1実施例の場合と同じく、図1〜図6、図9、図10に示したものを利用する。
【0172】
図14を用いて、本実施例における一つの処理手順を説明する。以後、本手順を空描画分散処理方式と呼ぶ。
【0173】
次に図14を用いて、本印刷制御装置11におけるもう一つの処理手順を説明する。初めにMPUがホストコンピュータからホスト通信コントローラを介して印刷コマンド列を受信し、前記共有メモリ内のコマンドバッファ部に格納する。
【0174】
前記MPU内の前記描画管理タスク3210は、前記コマンドバッファ部内の印刷コマンド列に対し、次の処理を行う。
【0175】
(1)すべての個別描画タスク(個別描画タスク1、2、…、M)を起動す る(81)。個別描画タスク数Mとしては通常次の二つの場合がある。
【0176】
(a)個別描画タスク数Mをスレーブプロセッサ総数Kと同数とする。
【0177】
(b)個別描画タスク数MをK+1とする。
【0178】
(a)の場合、各個別描画タスクlは、いずれかのスレーブプロセッサに割り当てる。(b)の場合、各個別描画タスクmは、いずれかのスレーブプロセッサ及びマスタプロセッサに割り当てる。以後本説明では、(a)の場合を想定して説明するが、(b)の場合についても同様にして実現することができる。
【0179】
(2)本タスクの処理を終了する(82)。
【0180】
前記MPU内の前記描画管理タスク3210により起動されたSPU1内の個別描画タスク1(3212)は、次の処理を無限に繰り返す(84)。
【0181】
(1)個別描画タスク1用に空き状態のページバッファの獲得をMPUに依頼する。つまり、個別描画タスク1用に獲得したSPUがアクセス可能な、デフォルト紙サイズについてページバッファの獲得をMPUに依頼する(841)。
【0182】
(2)1ページ分の実描画を行う。つまり、前記獲得ページバッファメモリへの実描画として描画属性パラメータの設定処理及び描画をページ区切りを検出するまで行い1ページ分の描画を行う。該実描画での描画属性パラメータの設定処理において紙サイズ変更を検出すると、該変更紙サイズについてのページバッファ再獲得をマスタプロセッサに依頼する(842)。
【0183】
(3)本個別描画タスク1からMPUへ実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する(843)。
【0184】
(4)次に示す1ページ分の空描画(845)を、M−1回繰り返す(844)。このM−1という数は、他の個別描画タスクが実描画を担当するページ数に相当する。
【0185】
(4−1)1ページ分の空描画を行う。つまり、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理をページ区切りを検出するまで1ページ分行う(845)。どのページで描画属性パラメータが変更されるかは不明なので、自己の担当しないページについてもすべて順次空描画を行っていく必要がある。
【0186】
前記MPU内の前記描画管理タスク3210により起動されたSPUk内の個別描画タスクm(3213)は、次の処理を無限に繰り返す(86)。
【0187】
(1)次に示す1ページ分の空描画(862)を、m−1回繰り返す(861)。このm−1という数は、個別描画タスクmが描画を担当するページまでの他の個別描画タスクが担当するページ数に相当する。
【0188】
(1−1)1ページ分の空描画を行う。つまり、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理をページ区切りを検出するまで1ページ分行う(862)。
【0189】
(2)個別描画タスクm用に空き状態のページバッファの獲得をMPUに依頼する。つまり、個別描画タスクm用に獲得したSPUがアクセス可能な、デフォルト紙サイズについてページバッファの獲得手順をMPUに依頼する(863)。
【0190】
(3)1ページ分の実描画を行う。つまり、前記獲得ページバッファメモリへの実描画として描画属性パラメータの設定処理及び描画をページ区切りを検出するまで行い1ページ分の描画を行う。該実描画での描画属性パラメータの設定処理において紙サイズ変更を検出すると、該変更紙サイズについてのページバッファ再獲得をマスタプロセッサに依頼する(864)。
【0191】
(4)本個別描画タスクmからMPUへ実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する(865)。
【0192】
(5)1ページ分の空描画(867)を、M−m回繰り返す。このM−mという数は、Mページのうち、該個別描画タスクmが描画を担当したページに続き他の個別描画タスクが担当するページ数に相当する。空描画(867)の処理内容は、862に示したのと同じであり、同一のサブルーチンプログラムや関数としてもよい。
【0193】
各SPUk(kは1からK)からMPUへの連絡や処理の依頼は、MPUへの情報送信処理部(851、871)、MPUからの情報受信処理部(852、872)、SPUへの情報送信処理部(831)、SPUからの情報受信処理部(832)、SPU依頼内容の実行部(833)を用いて、図6や図11〜図13に示した実施例1の場合と同様にして行う。
【0194】
ページバッファ獲得と再獲得の依頼を受信したMPUは、前記ページバッファ制御部315を用いて、ページバッファの獲得と再獲得を行う。
【0195】
該実描画の終了報告を受信したMPUは、SPU依頼内容の実行部において、実描画終了ページの更新を行う(833)。
【0196】
また印刷処理を依頼されたMPUは、同じくSPU依頼内容の実行部において、該描画済みページバッファについての印刷タスクを起動する(833)。
【0197】
また該印刷タスクにより起動された描画済みページバッファからの読み出しの終了を、MPUがプリンタエンジンアダプタ部2(171−b)又はSPUからの割込み信号により知ると、該MPUが前記ページバッファ制御部315を用いて、当該ページバッファを解放する。
【0198】
なお、前述の手順においてはページバッファの獲得、解放方式として紙サイズに応じて、必要サイズのページバッファを獲得、解放する可変長ページバッファ制御方式を採用したが、紙サイズに依らず固定サイズ(プリンタエンジンにて印刷可能な最大紙サイズ分の大きさに対応)のページバッファを獲得、解放する固定長ページバッファ制御方式を採用することもできる。この場合、前記手順において、ページバッファの再獲得が不要になる等、ページバッファの制御は簡単にできるが、可変長ページバッファ制御方式ほどにはページバッファメモリを有効活用することはできない。
【0199】
また前記MPUによる描画管理タスク処理と印刷タスク処理は、前記従来技術に示した方法を用いて並行処理する。さらに前記MPUによる処理と前記各SPUによる処理はを前述のように並列処理する。
【0200】
また本第2実施例におけるコマンド受信、空描画、実描画、印刷等のタイミング図は、前記図11、図12、図13の場合と同様である。つまり、図示のように、MPUによる描画管理タスクの処理と各SPUによる各個別描画タスク1、2、3等の処理は並列して実行されている。またMPUにより処理されるコマンド受信、描画管理タスクの処理、転送1、転送2、…、転送5等、印刷1、印刷2、…、印刷5等は、並行して実行されている。
【0201】
また、図11、図12、図13と図9、図10との対応も前記第1実施例の場合と同様である。
【0202】
以上のように本実施例においても実描画処理を並列実行しているため、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。
【0203】
また描画と印刷を前述のように並行処理しているため、各ページの印刷内容が異なる複数ページからなる文書についての連続印刷においても、プリンタ最高性能を達成することができる。
【0204】
また複数個のプロセッサ(MPU、SPU1、SPU2、…、SPUK)として汎用プロセッサを用いているため、各ページが文字又は図形のみの文書についても描画性能を向上し、印刷性能を向上させることができる。
【0205】
また本実施例においては、第1実施例とは異なり、空描画を各個別描画タスクが行っている。従って、前記空描画の負荷が小さい場合、個別描画タスク数Mをスレーブプロセッサ総数K+1とし、各個別描画タスクmを、いずれかのスレーブプロセッサ及びマスタプロセッサに割り当てることで、印刷スループットを第1実施例の場合より向上させることができる。
【0206】
次に本発明の第3実施例を説明する。本実施例のハ−ドウェアの基本構成、ハ−ドウェアの詳細構成、ソフトウェア構成、プリンタエンジンアダプタ部2の構成は、前記第1実施例の場合と同じく、図1〜図6、図9、図10に示したものを利用する。
【0207】
従来の印刷コマンドの中には、明瞭なペ−ジ区切りがなく、描画属性パラメ−タの引継ぎありのコマンド(以下、無制約コマンドと呼ぶ)がある。ここで、明瞭なペ−ジ区切りなしとは、ペ−ジ区切りを示すコマンドがペ−ジ区切り位置になく、以下のような条件が発生した時、印刷制御装置が暗黙的にペ−ジ区切りが指示されたとみなすことである。
【0208】
(1)文字行の総数がペ−ジ長を超えた。
【0209】
(2)紙サイズや印刷部数等の各ペ−ジについて一通りしか指定できない各種仕様の変更が、あるペ−ジについての描画の途中で指示された。
【0210】
また、描画属性パラメ−タの引継ぎありのコマンドとは、文字フォントの種類、文字行ピッチ、文字列ピッチ、線幅、線種、紙サイズ、印刷部数、プリンタ給紙部、プリンタ排紙部等の描画や印刷に関する各種パラメ−タが、次頁に引き継がれるコマンドのことである。
【0211】
なお、明瞭なペ−ジ区切りがなく、描画属性パラメ−タの引継ぎありのコマンド、つまり無制約コマンドの代表としては、各プリンタメ−カが独自に定めているプリンタ制御用エスケ−プシ−ケンスがある。
【0212】
上記無制約コマンドを用いて印刷を行う場合、前述の第1実施例及び第2実施例においては、前記空描画処理の負荷が大きくなると、マルチプロセッサ方式を用いても印刷性能の飛躍的な向上は望めない。
【0213】
例えば、空描画分散処理方式における個別描画タスクによる空描画処理の処理量dは、
d=(M−1)・a+1
ここで、M:個別描画タスク数
a:空描画処理の負荷係数(描画処理時間に対する比率)
である。
【0214】
この場合、M=3、a=0.1〜0.4とすると空描画処理の処理量dはd=1.2〜1.8となる。
【0215】
また、空描画集中処理方式においては、無制約コマンドについては描画管理タスクが各ペ−ジについて、空描画処理負荷係数aだけの空描画を行う。
【0216】
本実施例においては、図15に示すような制約コマンドと呼ぶ印刷コマンドを定義することにより、上記問題点を解消する。ここで制約コマンドとは、ペ−ジの区切りにペ−ジ区切りを示す改頁コマンドと呼ぶコマンドを配置し(95、98)、各ペ−ジの先頭にて各種描画属性パラメ−タが印刷コマンド仕様により初期化されるか、又は各ペ−ジの先頭に各種描画属性パラメ−タを初期化するためのリセットコマンドB(93、96)と呼ぶコマンドを配置し、第1ペ−ジ用のコマンドの前に、本文書の以後のすべてのペ−ジについて有効となるすべての外字、書式、関数、辞書等からなる文書全ペ−ジ有効パラメ−タを定義するためのコマンドを配置し(92)、文書の先頭に前記描画属性パラメ−タ及び文書全ペ−ジ有効パラメ−タを初期化するためのリセットコマンドA(91)と呼ぶコマンドを配置し、前記リセットコマンドBと改頁コマンドの間に各ペ−ジの描画、印刷内容を指定するための各種描画属性パラメ−タの設定コマンドと各種描画コマンドの列を配置した(94、97)ものである。
【0217】
なお、制約コマンドの実現方法としては次の二つの方法がある。
【0218】
(1)上記規約に従う印刷コマンドとして新たに定義する。
【0219】
(2)無制約コマンドの使い方、つまりコマンドシ−ケンスを前記規約に従うようにする。
【0220】
また近年、レーザプリンタ等を用いて高品位印刷を行うため、Page Description Language(PDLと略す)と呼ばれる印刷コマンドが普及しつつある。PDLとしては、Adobe社のPostScript、HP社のDDL、ゼロックス社のInterpress等がある。これらのPDLは前記プリンタ制御用エスケープシーケンスに比べ、処理量が大きいため、前記問題点は特に重大である。そのため、図16に示すように、PDLを制約コマンド化すると、印刷性能を大きく向上することができる。この制約を付けたPDLを、以下制約付きPDLと呼ぶことにする。
【0221】
図16に示すように制約付きPDLは、文頭コメント部10A、文書全ページ有効パラメータ設定部10B、第1ページ内容部10C、第2ページ内容部10D、…、最終ページ内容部10E、文末コメント部10Fとからなる。
【0222】
前置きコメント部10Aは、文書の作成者10A1、文書名称10A2、作成日10A3、総ページ数10A4、使用フォント一覧10A5、文頭コメント部の終了記述子10A6等からなる。なお、本例では総ページ数10A4と使用フォント一覧10A5は、前記文末コメント部10Fを参照するようにしてある。
【0223】
文書全ページ有効パラメータ設定部10Bは、前述の文書全ページ有効パラメータ92を設定する部分である。
【0224】
第1ページ内容部10C、第2ページ内容部10D、…、最終ページ内容部10Eは、前記各ページの描画、印刷内容を指定するための各種描画属性パラメータの設定コマンドと各種描画コマンドの列(94、97)からなる。
【0225】
文末コメント部10Fは文末コメント部の開始記述子10F1、総ページ数10F2、使用フォント一覧10F3等からなる。
【0226】
なお、少なくとも第1ページ内容部10C、第2ページ内容部10D、…、最終ページ内容部10Eの区切り、つまりページ区切りは、前記10C、10D、10E等のページ内容の記述と簡単に区別がつくようにし、該ページ区切りの検出を簡単にできるようにすることが、前記空描画処理の負荷を軽減するために望ましい。
【0227】
なお、PostScriptには、copypageと呼ばれるコマンドが使われている。本コマンドは、前ページについてのページバッファへの描画内容と描画属性パラメータをすべて次のページに引き継ぐ。従って、本印刷制御装置では、copypageコマンドではページが更新されないものとみなして、処理を進める。
【0228】
次に図17を参照しながら、制約コマンド、無制約コマンドのホストコンピュータ10と印刷制御装置とによる処理について説明する。
【0229】
ホストコンピュータは次のいずれかを行うことにより、印刷コマンド列を印刷制御装置11に送信する。
【0230】
(1)制約コマンド11A1を、ホストコンピュータ10内の応用プログラムやプリンタドライバが直接生成し、印刷制御装置11に送信する。
【0231】
(2)無制約コマンド11A2を、ホストコンピュータ10内の応用プログラムやプリンタドライバが一度作成し、同じくホストコンピュータ10が制約コマンドへの変換部11Bを用いて、該無制約コマンド11A2を制約コマンド11C2へ変換した後、印刷制御装置11に送信する。
【0232】
(3)無制約コマンド11A2を、ホストコンピュータ110内の応用プログラムやプリンタドライバが作成し、印刷制御装置11にそのまま送信する(11C3に相当)。
【0233】
なお、該印刷コマンド列の先頭エリアには制約コマンドと無制約コマンドを区別するため、制約有無指定コマンドを配置し(図18参照)、前記ホストコンピュータが該印刷コマンド列を印刷制御装置に送信する。
【0234】
印刷制御装置11は次の処理を行う。
【0235】
(1)ホストコンピュータから受信した印刷コマンド列内に記述されている前記制約有無指定コマンドを処理することにより、受信した印刷コマンド列が制約コマンドと無制約コマンドのいずれであるか判別する(11D1)。
【0236】
(2)判別の結果、制約コマンドならば制約コマンド対応印刷制御方式11E1を実行する(11E1)。無制約コマンドならば、無制約コマンド対応印刷制御方式を実行する(11E2)。
【0237】
なお、無制約コマンド対応印刷制御方式においては、空描画処理として第1実施例又は第2実施例に示した処理を行う。また、制約コマンド対応印刷制御方式においては、空描画処理として明瞭なページ区切りの検出のみを行うようにし、前記描画属性パラメータの引継ぎ処理は行わないようにする。
【0238】
なお、本実施例における描画管理タスクと個別描画タスクの処理手順としては、第1実施例における紙サイズ確定型空描画集中処理方式(図7)、紙サイズ仮定型空描画集中処理方式(図8)、又は空描画分散処理方式(図14)を用いるものとする。但し、制約コマンドにおいては、前述のように空描画を簡単化するものとする。
【0239】
次に、ホストコンピュータが送信する印刷コマンド列の形式について、説明する。ホストコンピュータ10は図18に示す形式の印刷コマンド列を作成し、印刷制御装置11へ送信する。印刷プロトコル指定コマンド12A1により、前述の各プリンタメーカ対応プリン制御用エスケープシーケンス、PostScript等の各種PDLの種別を指定する。本印刷プロトコル指定コマンドは省略できない。
【0240】
制約有無指定コマンド12A2により、制約コマンドと無制約コマンドの区別を付ける。また、制約有無指定コマンド12A2より後に、文書の印刷内容を示す印刷コマンド列12A3(以後、文書内容記述印刷コマンド列と呼ぶ)を配置する。文書内容記述印刷コマンド列12A3の内容の一例としては、前記図15や図16に示した印刷コマンド列がある。文書内容記述印刷コマンド列12A3の中に片面/両面印刷指定コマンド12A4を付けることにより、片面印刷と両面印刷のいずれかを指定する。制約有無指定コマンド及び片面/両面印刷指定コマンドは省略すると、前指定値を用いることとする。前指定値がない場合、初期値とみなす。本実施例では、初期値を無制約コマンドや片面印刷としたが、制約コマンドや両面印刷とすることもできる。なお、印刷プロトコル指定コマンド12A1と制約有無指定指定コマンド12A2を合わせて印刷プロトコル指定コマンド12A1としてもよい。
【0241】
以上のように、制約コマンドと制約コマンド対応印刷制御方式を設けることにより、空描画集中処理方式における描画管理タスクによる空描画処理、及び空描画分散処理方式における個別描画タスクによる空描画処理を、制約コマンドの場合、簡単化し、高速化を計ることができる。
【0242】
従って本実施例においては、前記第1実施例及び第2実施例で得られた効果に加え、プロセッサ数にほぼ比例した描画性能の向上効果も得ることができる。
【0243】
なお、制約コマンドにおいては、各ページ用の印刷コマンド列を切り出した後、前記共有メモリから、各個別描画タスクに対応するプロセッサモジュール内のローカルメモリに転送し、その転送した印刷コマンド列について各個別描画タスクが処理を行うようにしてもよい。この場合、各個別描画タスクによる印刷コマンド列のアクセス時に、共有メモリの場合のようなアクセス競合が発生しないという効果がある。但し、前記転送時間が余分にかかる。
【0244】
また、次のように改頁コマンドより検出の容易なページ区切りを設けることにより、ページ切り出しをさらに高速化し、空描画の負荷をさらに減少することもできる。
【0245】
(1)SCSI(Small Computer System Interface)におけるPrintコマンドを各ページ毎に別々に発行する、
(2)前記制約付きPDLにて述べたように、ページ区切りとして、前記10C、10D、10E等のページ内容の記述と簡単に区別がつくような記述子を特別に設ける。
【0246】
次に本発明の第4実施例を説明する。
【0247】
ソフトウェア構成、プリンタエンジンアダプタ部2の構成は、前記第1実施例の場合と同じく、図6、図9、図10に示したものを利用する。また、ハードウェア構成としては図1〜図5に示したものを用いることもできるが、他の構成もとることができる。ハードウェア構成については、後述する。
【0248】
本実施例は1ページからなる文書や、ファーストプリントと呼ばれる文書第1ページの印刷も高速印刷するためのものである。
【0249】
そのため、1ページを複数個の領域に分け、各領域について別々のプロセッサが個別描画タスク処理として、各領域についての描画を行うことにより、各1ページを高速描画する。
【0250】
さらに、1ページを構成するすべての領域についての描画が終了すると、印刷タスクが、図6に示したのと同様の方式で起動される。該印刷タスクは、前記個別描画タスクと別プロセッサについては並列処理され、同一プロセッサについては並行処理されるので、複数ページからなる文書でも高速印刷を実現することができる。以上説明した第4実施例に示した処理方式をページ内並列処理方式と呼ぶ。
【0251】
さらに詳しく説明する。ホストコンピュータ10からホスト通信コントローラ(151−aや151−b)を介して印刷コマンド列を受信し、共有メモリ(141や142)内のコマンドバッファ部に格納する。
【0252】
前記MPU101に1ページを領域1から領域Kに分け、領域1用に空き状態の一つの部分ページバッファを獲得し、本領域1への描画を第1番目のスレーブプロセッサSPU1(111)にページ内モード個別描画タスク処理1と呼ぶ処理を起動することで指示し、以下同様に各領域k用に空き状態の一つの部分ページバッファを獲得し、本領域kへの描画を第k番目のスレーブプロセッサSPUkにページ内モード個別描画タスク処理kと呼ぶ処理を起動することで指示する。
【0253】
各第k番目のスレーブプロセッサSPUkの前記ページ内モード個別描画タスク処理kにおいては、領域kをクリッピングエリアとする描画属性パラメータの設定処理及び描画処理をページ区切りを検出するまで行い、1ページ分の処理が終ると、その旨MPUに報告した後、本処理を終了する。
【0254】
MPUが各SPUによる各領域についての前記処理終了報告を受信すると、報告元の各SPUを解放する。
【0255】
MPUが、各SPUによる各領域についての前記処理終了報告をすべての領域から受信すると、描画を終了した該1ページについて印刷タスク(3221、3222、3223等のいずれか)を起動する。
【0256】
本印刷タスクの処理においては領域1から領域Kに対応する部分ページバッファの内容を、1ページを構成するために必要な順序で読出し、プリンタエンジン部18に出力する。
【0257】
各描画済み部分ページバッファからの読出しの終了を、MPUがプリンタエンジンアダプタ部1、プリンタエンジンアダプタ部2又は各SPUからの割込み信号により知ると、該MPUが当該部分ページバッファを解放する。
【0258】
また、前記マスタプロセッサによる印刷以外の処理と印刷処理を並行処理し、さらに前記マスタプロセッサによる処理と前記各スレーブプロセッサによる処理を並列処理するようにした。
【0259】
次にハードウェア構成を、図19と図20を用いて説明する。
【0260】
図19の方式をプロセッサ対応ローカルバス結合方式と呼ぶ。図2から図5の場合と基本的には同じである。違いは、各プロセッサモジュール100、110、120等内のローカルメモリ103、113、123等を、前記領域1、領域2、…、領域Kに対応させうる部分ページバッファとして利用する点にある。ここで、部分ページバッファと部分を付けて呼んだ理由は、各領域がページの一部分に対応するため、1ページ全体からなるフルページバッファが必ずしも必要とならないためである。
【0261】
図19においては、例えば領域1、領域2、…、領域Kを各々同図内の13A1、13A2、…、13A3にて示したローカルメモリ上に配置している。
【0262】
また図20に示すハードウェア構成をとることもできる。本構成を以後、マトリックススイッチ結合方式と呼ぶ。本構成においては、複数個のスレーブプロセッサと複数個の部分ページバッファを、任意のスレーブプロセッサと任意の部分ページバッファをスイッチで結合することにより、該スレーブプロセッサが該部分ページバッファをアクセスし、描画することができるような構成とした。
【0263】
図21に印刷結果の例を示す。141、142、143に示した“abc”、“def”、“ghi”といった描画が、各々部分ページバッファ1、2、3上の領域1、2、3になされる。本図において、144は領域の区切りを示すための概念上の線であり、印刷結果としては出力されない。
【0264】
ページバッファ読出し回路は以下のようにする。
【0265】
(1)領域1、領域2、…、領域Kに対しアドレスの連続した部分ページバッファの組みを割当てれば、従来の読出し回路でよい。
【0266】
(2)そうでない割当てを許す場合、回路を工夫することが必要である。
【0267】
つまり1ページを構成する部分ページバッファの組みを登録し、一つの部分ページバッファからの読出しが終わると、次の部分ページバッファの先頭アドレスへラスタ読出しアドレスを切替える機構が必要となる。
【0268】
プロセッサ対応ローカルバス設置方式の場合、異なるローカルバス上の部分ページバッファの組みを登録する。
【0269】
マトリクススイッチ結合方式の場合、任意の部分ページバッファの組みを登録する。
【0270】
部分ページバッファの組みとしては、図22に示す縦方向組合せをサポートした。図23の縦横方向組合せもサポートすれば、部分ページバッファをさらに効率良く使うことができる。
【0271】
本実施例によれば、1ページからなる文書や、ファーストプリントも高速印刷することができる。
【0272】
総ページ数、制約コマンド/無制約コマンドの区別等の文書の内容に応じて、ホストコンピュータや印刷制御装置が(a)前記ページ内並列処理方式と(b)ページ別並列処理方式(ページ別に並列処理を行う方式であり、前述の(b−1)空描画分散処理方式、(b−2)紙サイズ確定型空描画集中処理方式、(b−3)紙サイズ仮定型空描画集中処理方式のいずれか)の一方を選択し、切替えて実行することができる。さらに、前記文書内容に応じて、(b)のページ別並列処理方式の中から、適切なもの((b−1)、(b−2)、(b−3)のいずれか)をホストコンピュータや印刷制御装置が選択し、切替えて実行することもできる。
【0273】
次に本発明の第5実施例を説明する。本実施例は、図26に示す別形式のホストコンピュータ送信コマンドに対応するためのものである。また、この実施例では、後述する用紙に関連する制御情報については別個に設けたロードコマンドで指定するようにし、その他の描画属性パラメータ(文字ピッチ、行ピッチ、イタリック、倍角、アンダーライン等)は描画・印刷内容指定コマンドで指定するようにした。具体的には、フォントロードコマンド2612や書式ロードコマンド2613や用紙制御情報ロードコマンド2614を、第1頁用の描画・印刷内容指定コマンド262の前に受信することにより、それぞれホストから受信したフォントと書式と用紙制御用パラメータとを印刷制御装置11内に予め格納する。それらのフォントと書式と用紙制御用パラメータは、第1頁以後の描画と印刷において利用される。但し、用紙制御用パラメータは後続の任意の頁の前で変更することができる。
【0274】
描画・印刷内容指定コマンド262,263はそのサブコマンドとして、各種描画属性パラメータ設定用サブコマンドと各種描画用サブコマンドの列を含み、1頁分の文字、図形、イメージ等の描画・印刷内容を指定する。本サブコマンドの中に、改頁を指定するサブコマンドがあると、その後のサブコマンド列はないものとみなす。
【0275】
また用紙制御情報ロードコマンド2614は、そのサブコマンドとして、片面・両面印刷指定、給紙部指定、排紙部指定、紙サイズ指定、印刷部数指定、印字方向(ポートレート/ランドスケープ)指定のためのサブコマンドの列を含み、これらの各種用紙制御用パラメータの指定を行なう。
【0276】
図26の例では、第1頁から第n−1頁において、フォントロードコマンド2612と書式ロードコマンド2613と用紙制御情報ロードコマンド2614でそれぞれロードしたフォントと書式と用紙制御用パラメータを利用し、第n頁以後では新たに指定されたフォントロードコマンド2641と書式ロードコマンド2642と用紙制御情報ロードコマンド2643でそれぞれロードしたフォントと書式と用紙制御用パラメータを利用する。これら3種のロードコマンドのいずれかがない場合も許容される。
【0277】
従来形式のコマンドに加えて上記各種ロードコマンドも処理するために、本実施例で採用したソフトウェア構成を、図27を用いて説明する。本構成では、図6におけるモニタ部31内のコマンドバッファ部33に加えて、タスク処理部32内に編集コマンドバッファ部331を設けた。本編集コマンドバッファ部331には、一頁ずつに区切り、各頁を制御情報部と、描画、印刷内容指定コマンドとで構成する(図29参照)。
【0278】
また本構成では、図26のコマンドに対応するため、タスクとして以下のものを新設した。
【0279】
・コマンドタスク320
・印刷管理タスク3220
以上の新設タスクと、描画、印刷関係の各種タスクの機能を図28に示す。
【0280】
(1)コマンドタスク
(1−a)コマンドタスクは、コマンド対応に存在する。
【0281】
(1−b)フォントロードコマンドおよび書式ロードコマンド用のコマンドタスクは、メモリやテーブルに必要なデータを設定する。
【0282】
(1−c)用紙制御情報ロードコマンド用のコマンドタスクは、本コマンドのサブコマンドとして指定された各種用紙制御用パラメータを、用紙制御用パラメータテーブルに設定する。
【0283】
(1−d)描画・印刷内容指定コマンド用のコマンドタスクでは、次の処理を行う。
【0284】
(1−d−1)1頁分の制御情報部を作成する。具体的には、用紙制御パラメータテーブルの内容から本ページ用の用紙制御用パラメータをコピーし、編集コマンドバッファ部331の各ページ先頭部の固定エリアに設定する(例えば図29の3311−1)。
【0285】
(1−d−2)コマンドバッファ部33から編集コマンドバッファ部331へ、描画・印刷内容指定コマンドの内容である各種描画属性パラメータ設定用サブコマンドと各種描画用サブコマンドの列を移す。
【0286】
(1−d−3)編集コマンドバッファ部331に1頁分のデータが揃う度に、描画管理タスク(図29の3210)へその旨、メッセージ(29M1)を送信することにより連絡する。
【0287】
(2)描画管理タスク
(2−a)メッセージまたはSPUからの報告を受け取ることにより起動される。
【0288】
(2−b)必要に応じて、SPUおよびページバッファの獲得と解放を行う。
【0289】
(2−c)メッセージがコマンドタスクからの1頁分のデータが揃ったことを示すもの(29M1)でああれば、本ページについてSPUとページバッファとを獲得し、その後、個別描画タスク(3211、3212…)を起動する。
【0290】
(2−d)SPUからの個別描画タスクの描画完了報告を受信した場合、印刷管理タスク3220へ起動要求メッセージ(29M2)を送付するとともに、編集コマンドバッファ管理テーブル(29C)の該当するページについての編集コマンドバッファ状態を“描画完了状態”とする。
【0291】
(2−e)ページバッファ読みだし終了割込が発生すると、本割込処理は、本ページの解放要求メッセージを本描画管理タスク(3210)へ送信する。本メッセージを受けた描画管理タスクは、読出しの終わったページの編集コマンドバッファ状態を空き状態とし、編集コマンドバッファを解放するとともに、読み出しの終わったページバッファ(29C1,29C2,…,29C3のいずれか)を解放する。
【0292】
(3)個別描画タスク1〜M
(3−a)描画管理タスクより指示されたページバッファについての描画を行う。
【0293】
(3−b)1頁分の描画が完了すると、その旨、描画管理タスクへ報告する。
【0294】
(4)印刷管理タスク
(4−a)描画完了ページバッファについての印刷を行うための印刷タスクを選択し、起動する。
【0295】
(5)印刷タスク1〜N
(5−a)1頁分の印刷処理を行う。
【0296】
次に本実施例における、ホスト送信コマンドの処理方式を図29を参照しながら、説明する。
【0297】
本方式では、バッファメモリや管理テーブルとして、図27のものに加え、次のものを設けた。
【0298】
(1)フォントメモリ(29A1):明朝体、ゴシック体等の各種フォントを格納するためのメモリ。ドットフォントとアウトラインフォントを区分して格納。ドットフォントはサイズ別に区分して格納。
【0299】
(2)フォント属性メモリ(29A2):各フォントの属性[フォント名称、ドットフォント/アウトラインフォントの区別、ドットフォントのサイズ等]、及び文字コードと各文字フォントアドレスの対応表等からなる。
【0300】
書式メモリ(29B):書式を格納するためのメモリ。例えば、書式IDと書式内容(文字、図形、イメージの混在データ)との組として表現する。
【0301】
(3)編集コマンドバッファ管理テーブル(29C):編集コマンドバッファ部331を管理するためのテーブル。各頁対応の編集コマンドバッファ状態(描画待ち、描画中、描画完了、空き)と各頁対応の編集コマンドバッファ読出しポインタ等からなる。
【0302】
次に、図29を参照して、ホスト送信コマンドの処理方式を説明する。
【0303】
(1)まず、ホスト通信制御部312が、その内部バッファに、図26に示したいずれかのコマンドを受信する(291−1)。
【0304】
(2)MPUにおけるホスト通信制御部割込み処理を契機として、コマンドバッファ部33にコマンドを格納する(291−2)。
【0305】
(3)コマンドバッファ部33へのコマンド格納を契機として、各コマンドに対応するコマンドタスク320が起動される(291−3)。コマンドタスク32は、次の処理を行う。
【0306】
フォントロードコマンドの場合、本コマンドを実行することにより、ホストから受信したフォントデータをフォントメモリ29A1とフォント属性メモリ29A2へ設定する。
【0307】
書式ロードコマンドの場合、本コマンドを実行することにより、ホストから受信した書式データを書式メモリ29Bへ設定する。
【0308】
用紙制御情報ロードコマンドでは、本コマンドのサブコマンドにより指定された各種用紙制御用パラメータを、それ用の用紙制御用パラメータテーブル(図29には図示していない)に設定する。
【0309】
描画・印刷内容指定コマンドの場合、図28の(1−d)で説明したように、編集コマンドバッファ部331に各頁用の制御情報部および描画・印刷内容指定コマンドを格納し、1頁分の情報が揃う度に描画管理タスク3210へメッセージ29M1を送出する(292)。このコマンドタスク320による各頁分の制御情報部3311の作成は、前述した集中型の空描画方式に相当する。
【0310】
(4)編集コマンドバッファ部331に1頁分のデータがそろったことを、前述のメッセージ29M1の受信により知った描画管理タスク3210は、図28内の描画管理タスクの説明欄の(2−b)から(2−c)に示した処理を行なう。つまり、SPUとページバッファとを獲得し、編集コマンドバッファ管理テーブル29Cの当該ページの編集コマンドバッファ状態を“描画待ち状態”とした後、獲得したSPU(SPUxと仮定)とページバッファについて個別描画タスクを、前述の実施例の場合と同様にして、起動する。
【0311】
(5)起動された個別描画タスク(3211,3212,3213等)は、1頁分の描画を完了すると、描画管理タスク3210に対し、終了報告を、前述の実施例の場合と同様にして、行なう。
【0312】
なお、描画管理タスク3210と個別描画タスク(3211,3212,3213等)間の連絡方法を、次のようにしてもよい。
【0313】
▲1▼MPU上に各SPUxとの連絡を行なうためのSPU管理タスクxを設ける。つまり、3211,3212,3213等の各個別描画タスクに対応し、SPU管理タスク3211A,3212A,3213A等を設ける。そして各SPU管理タスクxが、各SPUxとMPUの連絡をカーネル部311の一機能であるメッセージ送・受信機能を用いながら、仲介する。
【0314】
▲2▼描画管理タスク3210は、前述の(4)において、SPU上の個別描画タスクxを直接起動せず、SPU管理タスクxを起動する。
【0315】
▲3▼SPU管理タスクxが、SPUxを起動し、本SPUによる個別描画タスクxの実行を指示する。
【0316】
▲4▼SPU上の個別描画タスクxは、1頁分の描画が完了すると、その旨MPU上のSPU管理タスクxへ、前述の実施例と同様のプロセッサ間の連絡方法を用いて、連絡する。
【0317】
▲5▼上記連絡を受けたSPU管理タスクxは、描画管理タスク3210へその旨、前述のメッセージ送信機能を用いて、連絡する。
【0318】
(6)描画管理タスク3210は、個別描画タスクxによる1頁分の描画の完了を知ると、印刷管理タスクへ、起動要求メッセージ29M2を送信する。
【0319】
(7)起動要求メッセージ29M2を受信した印刷管理タスクは、描画の完了したページバッファを印刷するための印刷タスクを選択した後、該印刷タスク(3221、3222、3223等のいずれか)を起動する。
【0320】
(8)印刷タスクは、描画の完了した該ページバッファについての印刷処理を、前述の実施例の場合と同様にして、行なう。
【0321】
なお、本印刷管理タスクの機能を、前記描画管理タスクの機能の一部分として実現することもできる。
【0322】
本実施例によれば、フォントや書式を予めロードした後、描画、印刷を進める場合についても、マルチプロセッサを活用して、印刷スループットを向上することができる。
【0323】
また、本実施例では、コマンドバッファ部33の内容を、頁毎に区分した編集コマンドバッファ部331の内容に変換してから、従来の描画、印刷処理をマルチプロセッサを利用して行なうことができるので、前述の制約コマンドについても、無制約コマンドの場合と同様に、印刷スループットを向上することができる。
【0324】
以上の実施例において、マスタプロサッセとスレーブプロセッサには、図30に示した4項目のエラー、すなわち、SPU例外、SPU無応答、MPU例外、MPU無応答の各エラーが発生しうる。各エラー項目について、(a)そのエラーを検出するプロセッサ(エラー検出部)と、(b)そのエラー処理名称と、(c)エラー処理の内容は、図に示すとおりである。なお、エラー項目2および4のSPUからMPUへの無応答や、MPUからSPUへの無応答は、図24、図25で説明したプロセッサ間の正常時にある筈の連絡がない場合のエラーである。
【0325】
以上のエラー処理を設けることにより、マスタプロサッセやスレーブプロセッサにエラーが発生した場合でも、エラー発生プロセッサを除いた残りのプロセッサを用いて、印刷処理を支障なく続行することができる。
【0326】
以上の実施例においては、以下のいずれかの方法を用いることにより、印刷制御装置をホストコンピュータ10の一機能として実現することもできる。
【0327】
(1)印刷制御装置をホストコンピュータ内の一つの印刷制御アダプタ又は印刷制御ボードとして実現し、本アダプタ又はボードにマルチプロセッサを実装するとともに、本マルチプロセッサ部に前述のような機能を搭載する。
【0328】
(2)印刷制御装置をホストコンピュータの主プロセッサによるソフトウェア処理として、実現する。この時、本主プロセッサを、マルチプロセッサとして実現し、マルチプロセッサ部に前述のような機能を搭載する。
【0329】
マルチプロセッサ型印刷制御装置においては、マスタプロセッサの制御のもとで、複数個のスレーブプロセッサが描画等の処理を並列処理することができるので、印刷制御装置における処理能力を向上させることができる。特に、空描画を採用したので、複数のプロセッサによる並列描画処理が容易になる。
【0330】
空描画集中処理方式(紙サイズ確定型空描画集中処理方式、又は紙サイズ仮定型空描画集中処理方式)を用いた印刷制御装置においては、描画管理タスクが空描画を行ない、複数個の個別描画タスクが別プロセッサ上で実描画を並列実行する。また、実描画により描画の済んだ各ページバッファについての印刷処理を、上記空描画とは並行的に、また実描画とは並列的に実行することができる。
【0331】
また空描画分散処理方式においても、複数個の個別描画タスクが別プロセッサ上で実描画を並列実行し、実描画により描画の済んだ各ページバッファについての印刷処理を、前記実描画とは並列的に実行できる。
【0332】
従って、空描画集中処理方式及び空描画分散処理方式においては、実描画処理を並列実行しているため、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。また描画と印刷を前記並行処理しているため、各ページの印刷内容が異なる複数ページからなる文書についての連続印刷においても、プリンタ最高性能を達成することができる。また複数個のプロセッサとして汎用プロセッサを用いているため、各ページが文字又は図形のみの文書についても描画性能をおよび印刷性能を向上させることができる。
【0333】
また、空描画集中処理方式及び空描画分散処理方式のうち可変長ページバッファ制御のものを用いる場合、紙サイズに応じて必要なサイズのページバッファだけを獲得するため、大きな紙サイズの印刷を少ないページバッファ総容量で実現することができる。さらに、小さな紙サイズの印刷では多数のページバッファを配置できるようになるため、一部描画負荷の大きいページの印刷が混在していても、平均印刷スループットを低下させることなく、プリンタエンジン最高性能での印刷を実現することができるという効果もある。
【0334】
また、空描画分散処理方式においては、空描画集中処理方式とは異なり、空描画を個別描画タスクが行なっている。従って、前記空描画の負荷が小さい場合、個別描画タスク数Mをスレーブプロセッサ総数K+1とし、各個別描画タスクmを、いずれかのスレーブプロセッサ及びマスタプロセッサに割り当てることで、印刷スループットを空描画集中処理方式より向上させることができる。
【0335】
また前記制約コマンドをサポートするとともに、該制約コマンドに対応した印刷制御処理においては前記空描画処理において、明瞭なページ区切りの検出のみを行ない、前記描画属性パラメータの設定処理を行なわないで済む。そのため、制約コマンドと制約コマンドに対応した印刷制御方式を設けることにより、空描画集中処理方式及び空描画分散処理方式における空描画処理を、制約コマンドの場合、簡単化し、高速することができる。
【0336】
従って、制約コマンドに対しては、前記空描画集中処理方式と空描画分散処理について示した効果に加え、プロセッサ数にほぼ比例した描画性能の向上効果も得ることができる。
【0337】
またページ内並列処理方式の印刷制御装置においては、各1ページについての描画を複数個の領域に分け、各領域について別プロセッサが並列実行する。さらに、描画の済んだ各ページバッファについての印刷処理を、上記描画とは並行的に実行する。
【0338】
従って、ページ内並列処理方式の印刷制御装置においては、連続印刷を高速実行するだけでなく、1ページからなる文書や、ファーストプリントも高速印刷することができる。
【0339】
また、フォントや書式を予めロードした後、描画、印刷を進める方法も用いることにより、このような場合についてもマルチプロセッサを活用して、印刷スループットを向上することができる。
【0340】
コマンドバッファ部の内容を、頁毎に区分した編集コマンドバッファ部の内容に変換してから、通常の描画、印刷処理をマルチプロセッサを利用して行なう方法を用いることにより、制約コマンドについても、無制約コマンドの場合と同様の高い印刷スループットを得る。
【0341】
またプロセッサエラー時の処理方式を工夫したことにより、マスタプロサッセやスレーブプロセッサにエラーが発生した場合でも、エラー発生プロセッサを除いた残りのプロセッサを用いて、印刷処理を支障なく続行することができる。
【0342】
【発明の効果】
本発明によれば、描画処理を並列に処理することにより、好適な印刷処理を実現することができる。
【図面の簡単な説明】
【図1】本発明の印刷制御装置の一実施例のハードウェア構成を示す図である。
【図2】本発明の印刷制御装置のハードウェアの第1の基本構成を示す図である。
【図3】本発明の印刷制御装置のハードウェアの第2の基本構成を示す図である。
【図4】本発明の印刷制御装置のハードウェアの第3の基本構成を示す図である。
【図5】本発明の印刷制御装置のハードウェアの第4の基本構成を示す図である。
【図6】本発明の印刷制御装置のソフトウェア構成を示す図である。
【図7】本発明の第1実施例における紙サイズ確定型空描画集中処理方式の処理手順を説明するための図である。
【図8】本発明の第1実施例における紙サイズ仮定型空描画集中処理方式の処理手順を説明するための図である。
【図9】本発明の第1実施例におけるにおけるプリンタエンジンアダプタ部2の構成を説明するための図である。
【図10】本発明の第1実施例におけるにおけるプリンタエンジンアダプタ部2の他の構成を説明するための図である。
【図11】本発明の第1実施例における印刷制御装置全体の印刷手順を説明するための図である。
【図12】本発明の第1実施例における印刷制御装置全体の他の印刷手順を説明するための図である。
【図13】本発明の第1実施例における印刷制御装置全体の更に他の印刷手順を説明するための図である。
【図14】本発明の第2実施例における空描画分散処理方式の処理手順を説明するための図である。
【図15】本発明の第3実施例における制約コマンドを説明するための図である。
【図16】本発明の第3実施例における制約付きPDLを説明するための図である。
【図17】本発明の第3実施例における制約コマンドと無制約コマンドのホストコンピュータと印刷制御装置による処理を説明するための図である。
【図18】本発明の第3実施例におけるホストコンピュータ送信コマンドの形式を説明するための図である。
【図19】本発明の第4実施例におけるSPU対応ローカルバス結合方式を説明するための図である。
【図20】本発明の第4実施例におけるマトリックススイッチ結合方式を説明するための図である。
【図21】本発明の第4実施例における印刷結果の例を示す図である。
【図22】本発明の第4実施例におけるページの領域の分割方法を説明するための図である。
【図23】本発明の第4実施例におけるページの領域の他の分割方法を説明するための図である。
【図24】本発明の実施例におけるMPUとSPUとの間の連絡方法を説明するための図である。
【図25】本発明の実施例における共有メモリ上のプロセッサ間の連絡情報を説明する為の図である。
【図26】本発明の第5実施例におけるホストコンピュータ送信コマンドの形式を説明するための図である。
【図27】本発明の第5実施例における印刷制御装置のソフトウェア構成を示す図である。
【図28】本発明の第5実施例における、新設タスクと描画・印刷関係タスクの機能を説明するための図である。
【図29】本発明の第5実施例における、ホスト送信コマンドの処理方式を説明するための図である。
【図30】本発明におけるプロセッサエラー時の処理仕様を説明するための図である。
【符号の説明】
10…ホストコンピュータ、11…印刷制御装置、12…システムバス、13…ビデオバス1、100…マスタプロセッサモジュール、110…スレーブプロセッサモジュール、120…スレーブプロセッサモジュール、130…システムバス調停部、1331…ビデオバス1調停部、141…共有メモリ、171−b…プリンタエンジンアダプタ部2、19…操作パネル部、18…プリンタエンジン部、101…マスタプロセッサ、103…ローカルメモリ、111…スレーブプロセッサ1、113…ローカルメモリ、121…スレーブプロセッサK、123…ローカルメモリ、31…モニタ部、311…カーネル部、312…ホスト通信制御部、313…コマンドバッファ制御部、314…ファイル制御部、315…ページバッファ制御部、316…プリンタ制御部、33…コマンドバッファ部、34…ページバッファ部、32…タスク処理部、321…描画タスク部、3210…描画管理タスク、3211…個別描画タスク1、3212…個別描画タスク2、3213…個別描画タスクM、322…印刷タスク部、3221…印刷タスク1、3222…印刷タスク2、3223…印刷タスクN、323…その他のタスクの処理部。
Claims (12)
- 印刷コマンドに基づいたプリント情報をプリントエンジンへ出力する印刷制御装置において、
前記印刷コマンドを格納するバッファと、
複数のプロセッサと、
整理手段とを備え、
前記複数のプロセッサ各々は、前記バッファからページ単位で読み込んだ印刷コマンドに従って、 当該印刷コマンドに含まれる描画データをプリント情報としてビットマップ展開して出力する処理を、他の前記複数のプロセッサと並列に行い、
前記整理手段は、前記複数のプロセッサ各々からページ毎に前記ビットマップ展開の終了通知を受けて、前記複数のプロセッサ各々から入力された前記ビットマップ展開されたプリント情報を、所定の順序でプリントエンジンへ出力することを特徴とする印刷制御装置。 - 印刷コマンドに基づいたプリント情報をプリントエンジンへ出力する印刷制御装置において、
複数のプロセッサと、
整理手段とを備え、
前記複数のプロセッサ各々は、ページ単位で入力された前記印刷コマンドに従って、当該印刷コマンドに含まれる描画データをプリント情報としてビットマップ展開して出力する処理を、他の前記複数のプロセッサと並列に行い、
前記整理手段は、ページ毎に前記複数のプロセッサ各々からビットマップ展開の終了通知を受けて、前記複数のプロセッサ各々から入力された前記ビットマップ展開されたプリント情報を、所定の順序でプリントエンジンへ出力することを特徴とする印刷制御装置。 - 印刷コマンドに基づいたプリント情報をプリントエンジンへ出力する印刷制御装置において、
前記印刷コマンドを格納するバッファと、
複数のプロセッサとを備え、
前記複数のプロセッサ各々は、前記バッファからページ単位で読み込んだ印刷コマンドに従って、 当該印刷コマンドに含まれる描画データをプリント情報としてビットマップ展開して出力する処理を、他の前記複数のプロセッサと並列に行い、
前記複数のプロセッサの内、いずれか1のプロセッサは、ページ毎に、当該1のプロセッサ以外の前記複数のプロセッサ各々からビットマップ展開の終了通知を受けて、入力された前記ビットマップ展開されたプリント情報を、所定の順序でプリントエンジンへ出力することを特徴とする印刷制御装置。 - 印刷コマンドに基づいたプリント情報をプリントエンジンへ出力する印刷制御装置において、
複数のプロセッサを備え、
前記複数のプロセッサ各々は、ページ単位で入力された前記印刷コマンドに従って、当該印刷コマンドに含まれる描画データをプリント情報としてビットマップ展開して出力する処理を、他の前記複数のプロセッサと並列に行い、
前記複数のプロセッサの内、いずれか1のプロセッサは、ページ毎に、当該1のプロセッサ以外の前記複数のプロセッサ各々からビットマップ展開の終了通知を受けて、入力された前記ビットマップ展開されたプリント情報を、所定の順序でプリントエンジンへ出力することを特徴とする印刷制御装置。 - 請求項1〜4のいずれか一項に記載の印刷制御装置において、
前記プリントエンジンに出力されるプリント情報の所定の順序は、ページ単位の順序であることを特徴とする印刷制御装置。 - 印刷コマンドに基づいたプリント情報を印刷する印刷制御システムにおいて、
前記印刷コマンドを格納するバッファと、
複数のプロセッサと、
整理手段と
プリントエンジンとを備え、
前記複数のプロセッサ各々は、前記バッファからページ単位で読み込んだ印刷コマンドに従って、 当該印刷コマンドに含まれる描画データをプリント情報としてビットマップ展開して出力する処理を、他の前記複数のプロセッサと並列に行い、
前記整理手段は、ページ毎に前記複数のプロセッサ各々からビットマップ展開の終了通知を受けて、前記複数のプロセッサ各々から入力された前記ビットマップ展開されたプリント情報を、所定の順序でプリントエンジンへ出力し、
前記プリントエンジンは、所定の順序で出力されたプリント情報を印刷することを特徴とする印刷制御システム。 - 印刷コマンドに基づいたプリント情報を印刷する印刷制御システムにおいて、
複数のプロセッサと、
整理手段と
プリントエンジンとを備え、
前記複数のプロセッサ各々は、ページ単位で入力された前記印刷コマンドに従って、当該印刷コマンドに含まれる描画データをプリント情報としてビットマップ展開して出力する処理を、他の前記複数のプロセッサと並列に行い、
前記整理手段は、ページ毎に前記複数のプロセッサ各々からビットマップ展開の終了通知を受けて、前記複数のプロセッサ各々から入力された前記ビットマップ展開されたプリント情報を、所定の順序でプリントエンジンへ出力し、
前記プリントエンジンは、所定の順序で出力されたプリント情報を印刷することを特徴とする印刷制御システム。 - 印刷コマンドに基づいたプリント情報を印刷する印刷制御システムにおいて、
前記印刷コマンドを格納するバッファと、
複数のプロセッサと、
プリントエンジンとを備え、
前記複数のプロセッサ各々は、ページ単位で入力された前記印刷コマンドに従って、当該印刷コマンドに含まれる描画データをプリント情報としてビットマップ展開して出力する処理を、他の前記複数のプロセッサと並列に行い、
前記複数のプロセッサの内、いずれか1のプロセッサは、ページ毎に、当該1のプロセッサ以外の前記複数のプロセッサ各々からビットマップ展開の終了通知を受けて、入力された前記ビットマップ展開されたプリント情報を、所定の順序でプリントエンジンへ出力し、
前記プリントエンジンは、前記所定の順序で出力されたプリント情報を印刷することを特徴とする印刷制御システム。 - 請求項6〜8のいずれか一項に記載の印刷制御システムにおいて、
前記プリントエンジンに出力されるプリント情報の所定の順序は、ページ単位の順序であることを特徴とする印刷制御システム。 - 印刷コマンドに基づいたプリント情報をプリントエンジンへ出力する印刷制御方法において、
ページ単位で入力された前記印刷コマンドに従って、当該印刷コマンドに含まれる描画データをプリント情報としてビットマップ展開して出力する処理を他のプロセッサと並列に行う複数の前記プロセッサから、前記プリント情報と当該ビットマップ展開の終了通知とを受け取り、
前記複数のプロセッサ各々からページ毎に受けた前記ビットマップ展開の終了通知を基に、前記ビットマップ展開されたプリント情報を、所定の順序でプリントエンジンへ出力することを特徴とする印刷制御方法。 - 印刷コマンドに基づいたプリント情報を印刷する印刷制御方法において、
ページ単位で入力された前記印刷コマンドに従って、当該印刷コマンドに含まれる描画データをプリント情報としてビットマップ展開して出力する処理を他のプロセッサと並列に行う複数の前記プロセッサから、前記プリント情報と当該ビ ットマップ展開の終了通知とを受け取り、
前記複数のプロセッサ各々からページ毎に受けた前記ビットマップ展開の終了通知を基に、前記ビットマップ展開されたプリント情報を、所定の順序で印刷することを特徴とする印刷制御方法。 - 請求項10および11のいずれか一項に記載の印刷制御方法において、
前記所定の順序は、ページ単位の順序であることを特徴とする印刷制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19767199A JP3555748B2 (ja) | 1991-08-06 | 1999-07-12 | 印刷制御方法および印刷制御装置並びに印刷システム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3-196872 | 1991-08-06 | ||
JP19687291 | 1991-08-06 | ||
JP19767199A JP3555748B2 (ja) | 1991-08-06 | 1999-07-12 | 印刷制御方法および印刷制御装置並びに印刷システム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18395792A Division JP3553985B2 (ja) | 1991-08-06 | 1992-07-10 | 印刷制御方法および印刷制御装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001238258A Division JP3304081B2 (ja) | 1991-08-06 | 2001-08-06 | 印刷制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000033744A JP2000033744A (ja) | 2000-02-02 |
JP3555748B2 true JP3555748B2 (ja) | 2004-08-18 |
Family
ID=26510034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19767199A Expired - Lifetime JP3555748B2 (ja) | 1991-08-06 | 1999-07-12 | 印刷制御方法および印刷制御装置並びに印刷システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3555748B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8054474B2 (en) * | 2006-07-03 | 2011-11-08 | Fuji Xerox Co., Ltd. | Image data producing apparatus, image forming apparatus and computer readable medium |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6139830B2 (ja) | 2011-11-07 | 2017-05-31 | キヤノン株式会社 | 印刷装置及びその制御方法 |
-
1999
- 1999-07-12 JP JP19767199A patent/JP3555748B2/ja not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8054474B2 (en) * | 2006-07-03 | 2011-11-08 | Fuji Xerox Co., Ltd. | Image data producing apparatus, image forming apparatus and computer readable medium |
US8508752B2 (en) | 2006-07-03 | 2013-08-13 | Fuji Xerox Co., Ltd. | Image data producing apparatus, image forming apparatus and computer readable medium |
US9304897B2 (en) | 2006-07-03 | 2016-04-05 | Fuji Xerox Co., Ltd. | Image data producing apparatus, image forming apparatus and computer readable medium |
Also Published As
Publication number | Publication date |
---|---|
JP2000033744A (ja) | 2000-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5774638A (en) | Print controlling method and apparatus using a plurality of processors | |
US7280245B2 (en) | Data processing apparatus adaptable to plural environments and data processing method | |
JP3997504B2 (ja) | 文書印刷方法、文書処理方法及びプリンタ | |
US8054474B2 (en) | Image data producing apparatus, image forming apparatus and computer readable medium | |
US6690477B2 (en) | Printing control apparatus and method | |
JP3630943B2 (ja) | 情報処理装置および印刷制御方法および印刷制御システムおよび印刷制御プログラムを格納した記憶媒体 | |
US7551313B2 (en) | Image processing device, image processing method, program, and computer readable recording medium on which the program is recorded | |
JP3553985B2 (ja) | 印刷制御方法および印刷制御装置 | |
JP5226581B2 (ja) | ディスプレイリストの並行ラスタ化のための方法、コンピュータ可読媒体及びコンピュータ可読メモリ | |
JP2000025276A (ja) | 印刷制御方法及び装置 | |
JP2009110389A (ja) | データ処理装置およびデータ処理方法 | |
US5970222A (en) | Memory management system for printing a print job with limited capacity | |
EP1031915A2 (en) | Disk-based image storage system and method with prioritized loading and retrieval operations | |
JP4029391B2 (ja) | プリンタ | |
JP3555748B2 (ja) | 印刷制御方法および印刷制御装置並びに印刷システム | |
JP3512403B2 (ja) | 印刷制御装置 | |
JP3304081B2 (ja) | 印刷制御方法 | |
JP3814410B2 (ja) | 印刷制御装置および方法 | |
JP3304073B2 (ja) | 印刷制御方法および印刷制御装置並びに印刷システム | |
JP2816184B2 (ja) | 印刷制御装置 | |
JP3526255B2 (ja) | 情報処理装置および印刷制御方法および印刷制御システム及び記憶媒体 | |
JP2008269324A (ja) | プリンタドライバ | |
JP2000015875A (ja) | 印刷装置及び印刷制御方法と記憶媒体 | |
JP2003067149A (ja) | データ処理装置、データ処理システム、データ処理方法、タブ印刷方法、記憶媒体、及びプログラム | |
JP3174624B2 (ja) | プリンタ装置における印刷情報の管理方法及びプリンタ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20040420 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040506 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090521 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090521 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090521 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100521 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110521 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120521 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120521 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 9 |