(57)【特許請求の範囲】
【請求項１】
連続した複数頁にわたる書式情報を含む一連の印刷コマンドに基づき、前記連続した頁を含む複数頁の印刷に関する処理を、複数のプロセッサが実行する印刷制御方法であって、
前記コマンドバッファから前記一連の印刷コマンドを順次読み出しながら、前記複数の頁のページ順に、順次、各頁の書式情報を、当該頁に設定された書式設定コマンドまたは当該頁の前頁の書式情報から得る空描画処理が実行され、
前記複数のプロセッサのうち、前記複数の頁のうちのいずれかの頁が割り当てられたプロセッサが、当該プロセッサに割り当てられたページについて得られた書式情報および当該頁に対応する印刷コマンドに基づき、ページバッファへの実描画を実行する、
ことを特徴とする印刷制御方法。
【請求項２】
請求項１記載の印刷制御方法であって、
前記複数のプロセッサのうちの１のプロセッサが、
前記空描画処理において、前記各頁の書式情報を得ながら前記各頁の先頭のページ区切りアドレスを検出し、
前記いずれかの頁の実描画を実行させるプロセッサに、当該頁について得られた書式情報およびページ区切りアドレスを与えることを特徴とする印刷制御方法。
【請求項３】
請求項１記載の印刷制御方法であって、
前記複数の頁のいずれかの頁の実描画を実行する各プロセッサが、それぞれ、当該プロセッサに割り当てられた頁の書式情報が得られるまで前記空描画処理を実行することを特徴とする、請求項１記載の印刷制御方法。
【請求項４】
前記空描画で各頁の紙サイズを検出し、該検出された紙サイズのページバッファを当該頁の実描画用に獲得することを特徴とする、請求項１記載の印刷制御方法。
【請求項５】
各頁につき予め定めた紙サイズのページバッファを獲得し、各頁の実描画時に紙サイズが異なることを検出した場合に当該紙サイズのページバッファを再獲得することを特徴とする、請求項１記載の印刷制御方法。
【請求項６】
請求項１記載の印刷制御方法であって、
前記印刷コマンドとして、頁の区切りに頁区切りを示す改頁コマンドを配置し、各頁の先頭で書式情報が印刷コマンド仕様により初期化されるか又は各頁の先頭に書式情報を初期化するためのリセットコマンドＢを配置し、第１頁用のコマンドの前に、本文書の以後のすべての頁について有効となるすべての外字、書式、関数、辞書等からなる文書全頁有効パラメータを定義するためのコマンドを配置し、文書の先頭に前記書式情報及び文書全頁有効パラメータを初期化するためのリセットコマンドＡを配置し、前記各リセットコマンドＢと各改頁コマンドとの間に、当該リセットコマンドの次の頁の書式情報の設定を指示するコマンドと各種描画コマンドの列とを配置する制約コマンド体系を採用したことを特徴とする印刷制御方法。
【請求項７】
印刷制御装置に送出する印刷コマンド列の先頭エリアには制約コマンド体系とそうでない無制約コマンド体系とを区別するための制約有無指定コマンドを配置し、印刷制御装置は受信した印刷コマンド列内に記述されている前記制約有無指定コマンドを処理することにより、制約コマンド対応印刷制御方式と無制約コマンド対応印刷制御方式を切替えるようにしたことを特徴とする、請求項６記載の印刷制御方法。
【請求項８】
無制約コマンド体系の印刷コマンド列に対しては、前記空描画処理として書式情報の設定および頁区切りの検出の処理を行い、制約コマンド体系の印刷コマンド列に対しては、前記空描画処理として頁区切りの検出のみを行うようにしたことを特徴とする、請求項７記載の印刷制御方法。
【請求項９】
連続した頁にわたる書式情報を含む一連の印刷コマンドに基づき、前記連続した頁を含む複数の頁の印刷に関する処理を実行する印刷制御装置であって、
マスタプロセッサと、
前記マスタプロセッサの指示に従って動作する複数のスレーブプロセッサと、
ホストコンピュータとの通信を行うためのホスト通信コントローラと、
プリンタエンジン部との入出力を行うためのプリンタエンジンアダプタと、
前記ホストコンピュータから前記ホスト通信コントローラを介して受信した一連の印刷コマンドを格納するコマンドバッファ部を有し、前記すべてのプロセッサがアクセス可能な共有メモリと、
個々のプロセッサごとに設けられたローカルメモリとを備え、
前記マスタプロセッサは、
前記コマンドバッファ部から前記一連の印刷コマンドを順次読出し、前記複数の頁のページ順に、順次、各頁の書式情報を、当該頁に設定された書式設定コマンドまたは当該頁の前頁の書式情報から得ながら、当該頁の次の頁の先頭のページ区切りアドレスを検出する空描画機能と、
前記書式情報が得られた頁を割り当てるスレーブプロセッサを獲得する機能と、
前記スレーブプロセッサの獲得の後、前記空描画機能により確定された紙サイズ分の大きさを有する空き状態のページバッファメモリを獲得する機能と、
前記ページバッファメモリの獲得の後、前記書式情報が得られた頁に割り当てられたスレーブプロセッサに、当該頁の先頭の頁区切りアドレスと前記書式情報とに基づく、前記ページバッファメモリへの実描画を実行させる機能と、
を有し、
前記スレーブプロセッサは、
前記マスタプロセッサの指示に応じて、前記頁バッファメモリに１頁分の実描画を、前記空描画機能により得られた書式情報にしたがって行う機能と、
前記実描画が終了したら、前記マスタプロセッサに、前記実描画の終了を報告するとともに、前記描画済みのページバッファについての印刷処理をマスタプロセッサに依頼する機能と、
を有し、
前記マスタプロセッサは、さらに、
前記実描画の終了報告を受信したとき、前記実描画の終了した頁の更新と、前記実描画の終了報告発信元スレーブプロセッサの解放とを行う機能と、
印刷処理を依頼されたときに、前記描画済みページバッファについての印刷処理を実行する機能と、
前記印刷処理により起動された描画済みページバッファからの読み出しの終了を、前記プリンタエンジンアダプタまたは前記スレーブプロセッサから認知したとき、当該ページバッファを解放する機能と、
を有し、
当該印刷制御装置は、
前記マスタプロセッサによる空描画処理と印刷処理とを並行処理し、さらに前記マスタプロセッサによる処理と前記各スレーブプロセッサによる処理とを並列処理する、
ことを特徴とする印刷制御装置。
【請求項１０】
前記空描画により確定した紙サイズ分の大きさを有する空き状態のページバッファメモリを獲得する機能に代えて、前記スレーブプロセッサの獲得の後該スレーブプロセッサがアクセス可能な、固定サイズ（プリンタエンジン部にて印刷可能な最大紙サイズ分の大きさ）の空き状態のページバッファメモリを獲得する機能を前記マスタプロセッサに持たせたことを特徴とする、請求項９記載の印刷制御装置。
【請求項１１】
請求項９記載の印刷制御装置であって、
前記マスタプロセッサは、
前記空描画により確定した紙サイズ分の大きさを有する空き状態のページバッファメモリを獲得する機能に代えて、前記スレーブプロセッサの獲得後該スレーブプロセッサがアクセス可能な、各頁について予め定められた紙サイズ分のページバッファメモリを獲得する機能を有し、
前記各スレーブプロセッサは、
前記スレーブプロセッサでの実描画時に紙サイズの変更を検出したとき当該変更後の紙サイズ分のページバッファの再獲得を前記マスタプロセッサに依頼する機能を有する、
ことを特徴とする印刷制御装置。
【請求項１２】
請求項９記載の印刷制御装置であって、
各頁毎の書式情報を格納する複数頁分のエリアを有する編集コマンドバッファ部を有し、
前記マスタプロセッサは、
順次各頁について前記空描画により得られた書式情報を前記編集コマンドバッファ部に格納する機能と、
前記編集コマンドバッファ部内の各頁の内容について順次前記スレーブプロセッサに実描画を依頼する機能と、
を有することを特徴とする印刷制御装置。
【請求項１３】
連続した頁にわたる書式情報を含む一連の印刷コマンドに基づき、前記連続した頁を含む複数の頁の印刷に関する処理を実行する印刷制御装置であって、
マスタプロセッサと、
前記マスタプロセッサの指示にしたがって動作する複数のスレーブプロセッサと、
ホストコンピュータとの通信を行うためのホスト通信コントローラと、
プリンタエンジン部との入出力を行うためのプリンタエンジンアダプタと、
前記ホストコンピュータから前記ホスト通信コントローラを介して受信した前記一連の印刷コマンドを格納するコマンドバッファ部を有し、前記すべてのプロセッサがアクセス可能な共有メモリと、
個々のプロセッサごとに設けられたローカルメモリと、
を備え、
前記マスタプロセッサは、
複数のスレーブプロセッサに対し、Ｍ個の個別描画タスクのうちの一つを起動する機能を有し、
第１番目のスレーブプロセッサに割り当てた個別描画タスク１は、
固定サイズの空き状態のページバッファメモリの獲得をマスタプロセッサに依頼する機能と、
前記コマンドバッファ部から前記一連の印刷コマンドを順次読み出しながら、頁区切りを検出するまで、次の頁の書式情報を、当該頁に設定された書式設定コマンドまたは当該頁の前の頁の書式情報から得て、前記獲得されたページバッファメモリへ１頁分の実描画を実行する機能と、
前記実描画が終了したら、前記マスタプロセッサに、前記実描画の終了を報告するとともに、前記描画済みページバッファについての印刷処理を依頼する機能と、
前記印刷処理の依頼後、前記コマンドバッファ部から前記一連の印刷コマンドを順次読出しながら、頁区切りを検出するまで、次の頁の書式情報を、当該頁に設定された書式設定コマンドまたは当該頁の前の頁の書式情報から得る空描画処理をＭ−１回実行する機能と、
を有し、
前記第１番以外の第ｍ番目のスレーブプロセッサに割り当てた個別描画タスクｍは、
前記空描画をｍ−１回実行する機能と、
前記固定サイズの空き状態のページバッファメモリの獲得をマスタプロセッサに依頼する機能と、
前記コマンドバッファ部から前記印刷コマンドを読出しながら、頁区切りを検出するまで、次の頁の書式情報を、当該頁に設定された書式設定コマンドまたは当該頁の前の頁の書式情報から得て、前記獲得されたページバッファメモリへ１頁分の実描画を実行する機能と、
前記実描画の後、前記マスタプロセッサに前記実描画の終了を報告するとともに、該描画済みのページバッファについての印刷処理を依頼する機能と、
前記印刷処理の依頼後、前記空描画をＭ−ｍ回実行する機能と、
を有し、
前記マスタプロセッサは、さらに、
前記実描画の終了報告を受信した場合に実描画終了頁の更新を行う機能と、
前記印刷処理が依頼された場合に前記描画済みページバッファについての印刷処理を実行する機能と、
前記印刷処理により起動された描画済みページバッファからの読出しの終了をプリンタエンジンアダプタまたはスレーブプロセッサから認知したとき、当該ページバッファを解放する機能と、
ページバッファの獲得を依頼された場合に、ページバッファの獲得を実行する機能と、
を有し、
当該印刷制御装置は、
前記マスタプロセッサによる空描画処理と印刷処理とを並行処理し、前記マスタプロセッサによる処理と前記各スレーブプロセッサによる処理とを並列処理する、
ことを特徴とする印刷制御装置。
【請求項１４】
請求項１３記載の印刷制御装置であって、
前記各スレーブプロセッサは、
前記固定サイズの空き状態のページバッファメモリの獲得をマスタプロセッサに依頼する機能に代えて、予め定めた紙サイズについてページバッファの獲得をマスタプロセッサに依頼する機能を有し、
前記各スレーブプロセッサは、
前記実描画のために書式情報を得る処理において紙サイズ変更を検出すると、該変更紙サイズについてのページバッファの再獲得をマスタプロセッサに依頼する機能を有する、
ことを特徴とする印刷制御装置。
【請求項１５】
前記ページバッファをすべて前記共有メモリ上に配置し、該ページバッファに対し前記実描画を行い、該実描画により描画されたページバッファについての印刷処理を前記マスタプロセッサが行うようにしたことを特徴とする、請求項９または１３記載の印刷制御装置。
【請求項１６】
前記ページバッファをすべて前記ローカルメモリ上に配置し、該ページバッファに対し前記実描画を行い、該実描画により描画されたページバッファについての印刷処理を前記マスタプロセッサが行うようにしたことを特徴とする、請求項９または１３記載の印刷制御装置。
【請求項１７】
全スレーブプロセッサ及びホスト通信コントローラ、プリンタエンジンアダプタからマスタプロセッサへの割込み機能と、マスタプロセッサから全スレーブプロセッサへの割込み機能とを設けたことを特徴とする、請求項９または１３記載の印刷制御装置。
【請求項１８】
前記ページバッファをすべて前記ローカルメモリ上に配置し、該ページバッファに対し前記実描画を行い、該実描画により描画されたページバッファについての印刷処理を、各ページバッファが存在するローカルメモリに対応する前記スレーブプロセッサが、マスタプロセッサに依頼し、前記マスタプロセッサの印刷タスクからの指示に基づき、前記ページバッファからの内容を出力することを特徴とする、請求項９または１３記載の印刷制御装置。
【請求項１９】
前記共有メモリをマルチポートメモリで構成し、一つのポートをホスト通信コントローラやファイルコントローラ等の周辺コントローラが該共有メモリをアクセスするためのポートとし、別の一つのポートをマスタプロセッサやスレーブプロセッサが該共有メモリをアクセスするためのポートとしたことを特徴とする、請求項９または１３記載の印刷制御装置。
【請求項２０】
前記ローカルメモリ上に配置されているページバッファ部内の描画済みページバッファの内容を、前記マスタプロセッサおよび前記スレーブプロセッサのいずれかが、前記共有メモリの接続されたシステムバスとは別のビデオバスに送信の後、該ビデオバスから前記プリンタエンジンアダプタ内のローカルメモリ上に配置した印刷中継バッファに送信し、該印刷中継バッファ内のデータを前記プリンタエンジン部へ、プリンタエンジンインターフェースに従って送信するようにしたことを特徴とする、請求項９または１３記載の印刷制御装置。
【請求項２１】
前記プリンタエンジンアダプタ内の前記印刷中継バッファから前記プリンタエンジン部へのデータの読み出しを、プリンタエンジンアダプタ部内に設けたＤＭＡ回路を用いて行ったことを特徴とする、請求項２０記載の印刷制御装置。
【請求項２２】
前記ローカルメモリ上に配置されているページバッファ部内の描画済みページバッファの内容を、前記共有メモリの接続されたシステムバスとは別のビデオバスに送信の後、該ビデオバスから前記プリンタエンジン部へ、プリンタエンジンインターフェースに従って送信するプリンタメモリコントローラを各プロセッサ対応に設けたことを特徴とする、請求項９または１３記載の印刷制御装置。
【請求項２３】
前記ページバッファ部内の描画済みページバッファの内容のデータ転送を行う際、ページバッファの各ラスタの読み出し時に、ゼロクリアするモードとしないモードとを設けたことを特徴とする、請求項２０または２２記載の印刷制御装置。
【請求項２４】
フォントデータを格納するフォントメモリおよび書式データを格納する書式メモリの少なくとも一方を備え、ホストコンピュータからのフォントロードコマンドまたは書式ロードコマンドに応じて前記フォントメモリへフォントデータを格納し、または前記書式メモリへ書式データを格納する機能を前記マスタプロセッサに設けたことを特徴とする請求項９または１３記載の印刷制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、印刷制御装置及び印刷制御方法に係り、特に、レーザプリンタ、ＬＥＤ（発光ダイオード）プリンタ、ＬＣＳ（液晶シャッタ）プリンタ等のページプリンタやシャトルプリンタを、マルチプロセッサを利用して高速印刷するための印刷制御装置及び印刷制御方法に関する。
【０００２】
【従来の技術】
従来、特願昭６３−１５８４８１号や特願平１−２８２７４７号に記載の印刷制御装置においては、ホストコンピュータからの印刷コマンド列の受信と、ページバッファへの描画と、描画済みページバッファについての印刷を並行処理することにより、印刷スループットをプリンタ最高性能に迄高めていた。本プリンタ最高性能は、ページ当りの描画時間が概ねページ当りのプリンタメカニズム印刷時間（１ページの最短印刷時間）以下なら、達成されていた。
【０００３】
特開平１−２６３０５５号に記載の印刷制御装置においては、１ページを複数個の領域に分割し、各領域毎に専用の描画プロセッサを用意し、各々が各領域を独立に描画することにより描画性能を向上させ、１ページの印刷を高速化しようとしていた。この装置では、ページ当りの描画時間がページ当りのプリンタメカニズム印刷時間を超えても、１ページのみの印刷（ファーストプリント）なら、印刷性能を向上させることができた。
【０００４】
特開平１−２６３０５１号に記載の印刷制御装置においては、１ページを複数個の領域に分割し、各領域毎に文字描画プロセッサ、図形描画プロセッサのいずれかを割り当て、各プロセッサが各領域を独立に描画することにより描画性能を向上させ、１ページの印刷を高速化しようとしていた。
【０００５】
その他、複数のプロセッサを用いて印刷制御を行なう従来の技術として、特開平１−２６３０５１号、特開平１−２６３０５５号、特開平２−６３８５２号、特開平２−１０８５６７号の各公報に記載のものがある。
【０００６】
【発明が解決しようとする課題】
上記特願昭６３−１５８４８１号や特願平１−２８２７４７号においては、ページ当りの描画時間が、概ねページ当りのプリンタメカニズム印刷時間を超えると、印刷スループットがプリンタ最高性能より低下するという問題があった。
【０００７】
また、上記特開平１−２６３０５５号及び特開平１−２６３０５１号においては、１ページのみの描画性能は高いが、描画と印刷を並行処理していないため、各ページの印刷内容が異なる複数ページからなる文書を連続して印刷する際（以後、単に連続印刷と呼ぶ）、プリンタ最高性能が得られないという問題があった。
【０００８】
上記特開平１−２６３０５１号においては、各ページが文字又は図形のみの場合、図形描画プロセッサ又は文字描画プロセッサが役に立たないため、描画性能の向上が図れず、１ページの印刷も十分高速化できないという問題があった。
【０００９】
また、複数のプロセッサを利用した上記いずれの従来技術においても、印刷内容が異なる複数ページからなる文書を連続して印刷する際の、複数のプロセッサが異なるページを並列描画する手法について何ら言及されていないという問題があった。
【００１０】
本発明の目的は、レーザプリンタ等に用いて好適なマルチプロセッサ構成の印刷制御装置において、複数ページからなる文書を連続して印刷する際の印刷性能を向上させることができる印刷制御方法を提供することにある。
【００１１】
【課題を解決するための手段】
本発明による印刷制御方法は、
連続した複数頁にわたる書式情報を含む一連の印刷コマンドに基づき、前記連続した頁を含む複数頁の印刷に関する処理を、複数のプロセッサが実行する印刷制御方法であって、
前記コマンドバッファから前記一連の印刷コマンドを順次読み出しながら、前記複数の頁のページ順に、順次、各頁の書式情報を、当該頁に設定された書式設定コマンドまたは当該頁の前頁の書式情報から得る空描画処理が実行され、
前記複数のプロセッサのうち、前記複数の頁のうちのいずれかの頁が割り当てられたプロセッサが、当該プロセッサに割り当てられたページについて得られた書式情報および当該頁に対応する印刷コマンドに基づき、ページバッファへの実描画を実行するようにしたものである。
なお、書式情報とは（以下において、描画属性パラメータ）とは、フォントの種類およびサイズ、文字ピッチ、行ピッチ、反転、アンダライン、イタリック、等各種の描画属性の他、紙サイズ、印刷部数、印字方向（ポートレート／ランドスケープ）等の用紙制御情報も含むものとする。
【００１５】
【作用】
マスタプロセッサと複数のスレーブプロセッサとを有するマルチプロセッサ型印刷制御装置においては、マスタプロセッサの制御のもとで、複数個のスレーブプロセッサが描画等の処理を並列処理することができるので、印刷制御装置における処理能力を向上させることができる。特に、空描画の採用により複数のプロセッサによる描画処理の並列実行が容易となった。
【００１６】
【実施例】
空描画集中処理方式（紙サイズ確定型空描画集中処理方式、又は紙サイズ仮定型空描画集中処理方式）を用いた印刷制御装置においては、描画管理タスクが空描画を行ない、複数個の個別描画タスクが別プロセッサ上で実描画を並列実行する。また、実描画により描画の済んだ各ページバッファについての印刷処理を、上記空描画とは並行的に、また実描画とは並列的に実行することができる。なお、本明細書において、「並列」実行とは、複数のプロセッサが同時に複数の処理を実行することを意味し、「並行」実行とは、１つのプロセッサが複数の処理をパイプライン的に処理することを意味する。
【００１７】
また、空描画分散処理方式においても、複数個の個別描画タスクが別プロセッサ上で実描画を並列実行し、実描画により描画の済んだ各ページバッファについての印刷処理を、実描画とは並列的に実行する。
【００１８】
従って、空描画集中処理方式及び空描画分散処理方式においては、実描画処理を並列実行しているため、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。また描画と印刷を並行処理しているため、各ページの印刷内容が異なる複数ページからなる文書についての連続印刷においても、プリンタ最高性能を達成することができる。また複数個のプロセッサとして汎用プロセッサを用いることにより、各ページが文字又は図形のみの文書についても描画性能を向上させ、印刷性能を向上させることができる。
【００１９】
また、空描画集中処理方式及び空描画分散処理方式のうち可変長ページバッファ制御のものを用いる場合、紙サイズに応じて必要なサイズのページバッファだけを獲得するため、大きな紙サイズの印刷を少ないページバッファ総容量で実現することができる。さらに、小さな紙サイズの印刷では多数のページバッファを配置できるようになるため、一部描画負荷の大きいページの印刷が混在していても、平均印刷スループットを低下することなく、プリンタエンジン最高性能での印刷を実現することができる。
【００２０】
また、空描画分散処理方式においては、空描画集中処理方式とは異なり、空描画を個別描画タスクが行なっている。従って、前記空描画の負荷が小さい場合、個別描画タスク数Ｍをスレーブプロセッサ総数ＫまたはＫ＋１と等しくし、各個別描画タスクｍを、いずれかのスレーブプロセッサ及びマスタプロセッサに割り当てることで、印刷スループットを空描画集中処理方式より向上させることができる。
【００２１】
また前記制約コマンドをサポートするとともに、該制約コマンドに対応した印刷制御処理においては前記空描画処理において、明瞭なページ区切りの検出のみを行ない、前記描画属性パラメータの設定処理を行なわないで済む。そのため、制約コマンドと制約コマンドに対応した印刷制御方式を設けることにより、空描画集中処理方式及び空描画分散処理方式における空描画処理を、制約コマンドの場合、簡単化し、高速することができる。
【００２２】
従って、制約コマンドに対しては、前記空描画集中処理方式と空描画分散処理について示した効果に加え、プロセッサ数にほぼ比例した描画性能の向上効果も得ることができる。
【００２３】
またページ内並列処理方式の印刷制御装置においては、各１ページについての描画を複数個の領域に分け、各領域について別プロセッサが並列実行する。さらに、描画の済んだ各ページバッファについての印刷処理を、上記描画とは並行的に実行する。
【００２４】
従って、ページ内並列処理方式の印刷制御装置においては、連続印刷を高速実行するだけでなく、１ページからなる文書や、ファーストプリントも高速印刷することができる。
【００２５】
次に、本発明の第１実施例を説明する。初めに、図２から図５に示すハードウェアの基本構成図を用いて本実施例における印刷制御装置のハードウェアの基本構成を説明する。
【００２６】
図２にハードウェアの第１の基本構成を示す。本図において印刷制御装置１１は、マスタプロセッサモジュール１００、スレーブプロセッサモジュール１（１１０）、…、スレーブプロセッサモジュールｋ（本図からは省略）、…、スレーブプロセッサモジュールＫ（１２０）、システムバス調停部１３０、システムバス１２、共有メモリ１４１、ホスト通信コントローラ１５１−ａ、二次記憶装置１６１、ファイルコントローラ１６２−ａ、プリンタエンジンアダプタ部１（１７１−ａ）とからなる。
【００２７】
マスタプロセッサモジュール１００は、マスタプロセッサ（以後、ＭＰＵとも記す）１０１、内部バス１０２、ローカルメモリ１０３、バスインターフェース（以後Ｉ／Ｆとも記す）１０４とからなる。内部バス１０２は、ＭＰＵ１０１の各種入出力信号（アドレス信号、データ信号、その他の制御信号）からなる。
【００２８】
ＭＰＵ１０１がアドレス信号を発生すると、バスＩ／Ｆ１０４は発生したアドレス信号に応じて内部バス１０２上のアドレスをそのまま発生し、該内部バス１０２上のローカルメモリ１０３との入出力を行ったり、システムバス１２上のアドレスへ変換した後、システムバス１２上の共有メモリ１４１や各種周辺コントローラとの入出力を行ったりする。
【００２９】
スレーブプロセッサモジュール１（１１０）は、スレーブプロセッサ１（以後ＳＰＵ１とも記す）（１１１）、内部バス１１２、ローカルメモリ１１３、バスＩ／Ｆ１１４とからなる。内部バス１１２は、ＳＰＵ１（１１１）の各種入出力信号（アドレス信号、データ信号、その他の制御信号）からなる。ＳＰＵ１（１１１）がアドレス信号を発生すると、バスＩ／Ｆ１１４は発生したアドレス信号に応じて内部バス１１２上のアドレスをそのまま発生し、該内部バス１１２上のローカルメモリ１１３との入出力を行ったり、システムバス１２上のアドレスへ変換した後、システムバス１２上の共有メモリ１４１や各種周辺コントローラとの入出力を行ったりする。
【００３０】
以下、スレーブプロセッサモジュール２、…、ｋ、…、Ｋはスレーブプロセッサモジュール１（１１０）と同様に構成する。例えばスレーブプロセッサモジュールＫ（１２０）はスレーブプロセッサＫ（以後ＳＰＵ  Ｋとも記す）（１２１）、内部バス１２２、ローカルメモリ１２３、バスＩ／Ｆ１２４とからなり、各々はスレーブプロセッサモジュール１（１１０）の場合と同様に機能する。
【００３１】
システムバス１２は、前記各プロセッサモジュールつまりマスタプロセッサモジュール１００、スレーブプロセッサモジュール１（１１０）、…、スレーブプロセッサモジュールＫ（１２０）が前記共有メモリ１４１や各種周辺コントローラ、つまりホスト通信コントローラ１５１−ａやファイルコントローラ１６２−ａやプリンタエンジンアダプタ部１（１７１−ａ）との間で入出力を行うための各種入出力信号（アドレス信号、データ信号、その他の制御信号）からなる。
【００３２】
システムバス調停部１３０はシステムバス１２に対し、該システムバス１２のマスタであるマスタプロセッサモジュール１００、スレーブプロセッサモジュール１（１１０）、…、スレーブプロセッサモジュールｋ、…、スレーブプロセッサモジュールＫ（１２０）、ホスト通信コントローラ１５１−ａ、ファイルコントローラ１６２−ａ、プリンタエンジンアダプタ部１（１７１−ａ）等がシステムバスの使用権の要求信号を有効にした時、どのマスタに該システムバスの使用権を与えるかを決定する。使用権の決定方式としては、先着順方式、集中制御優先度方式、デージーチェーン方式、サイクリック方式等の中のいずれを用いても良い。
【００３３】
共有メモリ１４１は、ＭＰＵ１０１、ＳＰＵ１（１１１）、…、ＳＰＵｋ、…、ＳＰＵＫ（１２１）のすべてからアクセス可能なメモリである。共有メモリ１４１をマルチポートメモリで構成し、一つのポートをホスト通信コントローラ１５１−ａやファイルコントローラ１６２−ａ等の周辺コントローラがアクセスするためのポートとし、別の一つのポートをマスタプロセッサやスレーブプロセッサがアクセスするためのポートとしてもよい。
【００３４】
ホスト通信コントローラ１５１−ａは、印刷制御装置１１がホストコンピュータ１０と通信を行うためのコントローラであり、システムバス１２の一つの周辺コントローラである。
【００３５】
本通信（ホストＩ／Ｆと呼ぶ）の物理Ｉ／ＦとしてはＳＣＳＩ（Ｓｍａｌｌ  ＣｏｍｐｕｔｅｒＳｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＲＳ２３２Ｃ、ＲＳ４２２、ＧＰ−ＩＢ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｉｎｔｅｒｆａｃｅ  Ｂｕｓ）、セントロニクス、ＨＤＬＣ（Ｈｉｇｈ  −Ｌｅｖｅｌ  Ｄａｔａ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ）、ＩＳＤＮ（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｄｅｇｉｔａｌ  Ｎｅｔｗｏｒｋ）、Ｅｔｈｅｒｎｅｔ等を用い、使用する物理Ｉ／Ｆの種類に応じて本コントローラ１５１−ａのハードウェア論理として適切なものを実装する。
【００３６】
二次記憶装置１６１は、フォントデータ、書式データ、プログラム等を格納するために用い、システムバス１２の一つの周辺コントローラであるファイルコントローラ１６２−ａを介してシステムバス１２に接続される。
【００３７】
プリンタエンジンアダプタ部１（１７１−ａ）は、印刷制御装置１１がプリンタエンジン部１８と入出力を行うためのコントローラであり、やはりシステムバス１２の一つの周辺コントローラである。
【００３８】
次にハードウェアの第１の基本構成（図２）における各種信号について説明する。
【００３９】
信号線１２−ａは、マスタプロセッサモジュールとシステムバスを接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、ＭＰＵ１０１の制御信号、共有メモリ１４１の制御信号等からなる。
【００４０】
信号線１２−ｂは、スレーブプロセッサモジュール１とシステムバスを接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、ＳＰＵ１（１０１）の制御信号、共有メモリ１４１の制御信号等からなる。
【００４１】
他のスレーブプロセッサモジュール２からＫも、スレーブプロセッサモジュール１と同様の信号線を用いて、システムバスとの間で入出力信号の送受信を行う。  信号線１２−ｃは、共有メモリとシステムバスを接続するための入出力信号の集まりであり、アドレス信号、データ信号、共有メモリ１４１の制御信号等からなる。
【００４２】
信号線１２−ｄは、ホスト通信コントローラ１５１−ａと共有メモリ１４１を接続するための入出力信号の集まりであり、アドレス信号、データ信号、共有メモリ１４１の制御信号等からなる。
【００４３】
信号線１２−ｅは、ホスト通信コントローラ１５１−ａとシステムバスを接続するための入出力信号の集まりであり、バス調停用信号、ホスト通信コントローラの制御信号（ＭＰＵへの割込み信号を含む）等からなる。各ＳＰＵへの割込み信号をさらに該信号線１２−ｄに追加することもできる。
【００４４】
信号線１２−ｆは、ファイルコントローラ１６２−ａと共有メモリ１４１を接続するための入出力信号の集まりであり、アドレス信号、データ信号、共有メモリ１４１の制御信号等からなる。
【００４５】
信号線１２−ｇは、ファイルコントローラ１６２−ａとシステムバスを接続するための入出力信号の集まりであり、バス調停用信号、ファイルコントローラ制御信号（ＭＰＵへの割込み信号を含む）等からなる。各ＳＰＵへの割込み信号をさらに該信号線１２−ｇに追加することもできる。
【００４６】
信号線１２−ｈは、プリンタエンジンアダプタ部１（１７１−ａ）とシステムバスを接続するための入出力信号の集まりであり、バス調停用信号、プリンタエンジンアダプタ部１の制御信号（ＭＰＵへの割込み信号や各ＳＰＵへの割込み信号を含む）、アドレス信号、データ信号、共有メモリ１４１の制御信号等からなる。各ＳＰＵへの割込み信号を省略することもできる。
【００４７】
信号線１２−ｉは、プリンタエンジンアダプタ部１（１７１−ａ）とプリンタエンジン部１８を接続するための入出力信号の集まりであり、プリンタエンジン部１８が定める各種インターフェース信号からなる。
【００４８】
図３にハードウェアの第２の基本構成を示す。本図は、図２におけるプリンタエンジンアダプタ部１（１７１−ａ）をプリンタエンジンアダプタ部２（１７１−ｂ）に置き換えたものである。プリンタエンジンアダプタ部２（１７１−ｂ）はシステムバス１２に接続される点は同じであるが、プリンタエンジン部１８への印刷データの読出しを、システムバス１２でなく、新たに設けたビデオバス１（１３）を用いて行う。
【００４９】
そのためビデオバス１（１３）とのインターフェースを信号線１２−ｊ、信号線１２−ｋ、信号線１２−ｌを用いてとる。
【００５０】
信号線１２−ｊは、マスタプロセッサモジュールとビデオバスを接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、ＭＰＵ１０１の制御信号、プリンタエンジンアダプタ部２（１７１−ｂ）内のメモリ（本図には示さず）をアクセスするための制御信号等からなる。
【００５１】
信号線１２−ｋは、スレーブプロセッサモジュール１とビデオバス１（１３）を接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、ＳＰＵ１（１１１）の制御信号、プリンタエンジンアダプタ部２（１７１−ｂ）内のメモリ（本図には示さず）をアクセスするための制御信号等からなる。
【００５２】
他のスレーブプロセッサモジュール２からＫも、スレーブプロセッサモジュール１と同様の信号線を用いて、ビデオバス１（１３）との間で入出力信号の送受信を行う。
【００５３】
信号線１２−ｌは、プリンタエンジンアダプタ部２（１７１−ｂ）とビデオバス１（１３）を接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、プリンタエンジンアダプタ部２（１７１−ｂ）の制御信号、ＭＰＵや各ＳＰＵへの割込み信号等からなる。
【００５４】
図４にハードウェアの第３の基本構成を示す。本図は、図２におけるホスト通信コントローラ１５１−ａとファイルコントローラ１６２−ａとを、それぞれホスト通信コントローラ１５１−ｂとファイルコントローラ１６２−ｂに置き換え、それらを共有メモリに直接接続するのをやめ、システムバスのみに接続したものである。共有メモリ周りのインターフェースが図２の場合とは異なるため、本図では共有メモリの参照番号として１４２を用いる。
【００５５】
信号線１２−ｃ’は、共有メモリとシステムバス１２を接続するための入出力信号の集まりであり、アドレス信号、データ信号、共有メモリ１４２の制御信号等からなる。
【００５６】
信号線１２−ｅ’は、ホスト通信コントローラ１５１−ｂとシステムバス１２を接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、ホスト通信コントローラの制御信号（ＭＰＵへの割込み信号を含む）、共有メモリ１４２の制御信号等からなる。
【００５７】
信号線１２−ｇ’は、ファイルコントローラ１６２−ｂとシステムバス１２を接続するための入出力信号の集まりであり、アドレス信号、データ信号、バス調停用信号、ファイルコントローラ制御信号（ＭＰＵへの割込み信号を含む）、共有メモリ１４２の制御信号等からなる。
【００５８】
前記信号線１２−ｅ’と信号線１２−ｇ’に各ＳＰＵへの割込み信号を追加することもできる。
【００５９】
図５にハードウェアの第４の基本構成を示す。本図は、図３におけるホスト通信コントローラ１５１−ａとファイルコントローラ１６２−ａとを、それぞれホスト通信コントローラ１５１−ｂとファイルコントローラ１６２−ｂとに置き換え、それらを共有メモリに直接接続するのをやめ、システムバスのみに接続したものである。図２を図４へ変更したのと、変更内容は同様である。本図でも共有メモリの参照番号としては、１４２を用いる。
【００６０】
次に図１を用いて、印刷制御装置１１のハードウェア構成をさらに詳しく説明する。図１では図３において、マスタプロセッサモジュール１００、各スレーブプロセッサモジュール部に、タイマ１０６、１１６、１２６等；イメージ処理プロセッサ１０７、１１７、１２７等；文字、図形描画プロセッサ１０８、１１８、１２８等を追加した。さらに、操作パネル部１９も追加し、印刷制御装置１１についての表示と入力とを行えるようにした。
【００６１】
なお、図２〜図５にも、図１と同様の構成要素を追加することができる。
【００６２】
次に図６を用いて印刷制御装置１１のソフトウェア構成を説明する。本図に示すように、ソフトウェアはモニタ部３１とタスク処理部３２とから構成される。モニタ部３１は、カーネル部３１１、ホスト通信制御部３１２、コマンドバッファ制御部３１３、ファイル制御部３１４、ページバッファ制御部３１５、プリンタ制御部３１６とコマンドバッファ部３３とページバッファ部３４とから構成される。
【００６３】
カーネル部３１１は、割込み制御プログラムのメインルーチン、スーパバイザコール（ＳＶＣと略す）制御のメインルーチン、タスク制御部、及びタイマ制御部とからなる。
【００６４】
ホスト通信制御部３１２は、ホストコンピュータ１０と印刷制御装置１１の間で各種コマンドの授受を行う。例えば、ホストコンピュータ１０から印刷コマンド列を受信したり、印刷制御装置１１内で発生した各種事象（エラー発生、頁印刷終了、文書印刷終了等）をホストコンピュータ１０へ報告したりする。
【００６５】
コマンドバッファ制御部３１３は、コマンドバッファ部３３についての書き込みと読み出しを行う際に用いる書き込みスタートポインタ、書き込みエンドポインタ、読み出しポインタ等の制御を行う。
【００６６】
本コマンドバッファ制御部３１３を前記ホスト通信制御部３１２が用いて、印刷コマンドをコマンドバッファ部３３へ格納する。また同じくコマンドバッファ制御部３１３を用いて、後述するタスク処理部３２内の描画タスク部３２１がコマンドバッファ部３３の内容を読み出し、処理する。
【００６７】
ファイル制御部３１４は、前記二次記憶装置１６１内の各ファイルを制御するための部分であり、各ファイル内データのアクセスのための制御や、ファイルを構成するファイル実体（複数個のブロックの集合）の管理等を行う。タスク処理部内の各タスクは本ファイル制御部３１４内のファイル制御用の各種ＳＶＣ機能を用いて、ファイルの制御を行う。
【００６８】
ページバッファ制御部３１５は、複数ページ構成のページバッファ部３４についての空き管理（獲得、解放の管理）を行う。本空き管理を用いることで、ページバッファへの描画書き込みが必要になった時点で、紙サイズに対応して定まる必要なだけのページバッファを獲得し、描画内容の読み出しが終った時点で該ページバッファを解放することもできる。
【００６９】
プリンタ制御部３１６は、プリンタエンジン部１８とプリンタエンジンアダプタ部１（１７１−ａ）又はプリンタエンジンアダプタ部２（１７１−ｂ）の空き管理や、プリンタエンジン部１８との入出力の制御を行う。
【００７０】
タスク処理部３２は描画タスク部３２１と印刷タスク部３２２とその他のタスクの処理部３２３とからなる。
【００７１】
描画タスク部３２１は、描画管理タスク３２１０と、個別描画タスク１（３２１１）、個別描画タスク２（３２１２）、…、個別描画タスクＭ（３２１３）とからなる。これらの各種描画タスク３２１、３２１０、３２１１、…、３２１３は、本印刷制御装置１１に実装した複数個のプロセッサモジュール（１００、１１０、１２０等）を用いて異なるプロセッサ間では並列処理され、同一のプロセッサ内では並行処理される。これらの各種描画タスク３２１、３２１０、３２１１、３２１３の処理内容は、後で詳しく述べる。
【００７２】
印刷タスク部３２２は、印刷タスク１（３２２１）、印刷タスク２（３２２２）、…、印刷タスクＮ（３２２３）とからなる。各印刷タスクｎは、各個別描画タスクｍが前記ページバッファ部３４への描画を終了した時点で、該個別描画タスクｍにより起動される。起動された各印刷タスクｎは、描画の終了した各ページバッファ（紙面１ページ分）についての印刷処理を実行する。本印刷処理は、前記プリンタ制御部３１６に対し、プリンタ制御用の各種ＳＶＣ命令を発行することにより実行する。印刷タスクは別々のページについて並行処理するため、複数個用意する。用意する印刷タスクの合計数は、本装置内で同時に並行処理しうる印刷タスク数の最大値とした。具体的には、任意の時点で、プリンタエンジン部１８の給紙部から排紙部までの間に存在しうる最大紙数に対応し、この数はプリンタエンジン部１８の仕様によって増減する。
【００７３】
本ソフトウェア構成における各部の処理内容は、本発明の出願人が先に出願した特願昭６３−１５８４８１号や特願平１−２８２７４７号の場合と、マルチプロセッサを利用して前述のように並列処理する点以外は、同様である。
【００７４】
なお、コマンドバッファ部３３とページバッファ部３４は、モニタ部３１にもタスク処理部３２にも属さないメモリ部分としてとらえてもよい。
【００７５】
図６のソフトウェア構成に示した各部分は、前記図１又は図２〜図５のハードウェア構成図内の各部分に次のように対応づけられる。
【００７６】
（１）モニタ部３１（コマンドバッファ部３３とページバッファ部３４を除く）のプログラムは、ＭＰＵ１０１用のローカルメモリ１０３に格納し、ＭＰＵ１０１にて実行する。
【００７７】
（２）コマンドバッファ部３３は共有メモリ（１４１又は１４２）に配置する。さらに、コマンドバッファ部３３の全体又は一部を各ローカルメモリ（１０３、１１３、１２３等）に配置してもよい。
【００７８】
（３）ページバッファ部３４は共有メモリ（１４１又は１４２）又は各ローカルメモリ（１０３、１１３、１２３等）に配置する。
【００７９】
（４）描画管理タスク３２１０のプログラムは、ＭＰＵ１０１用のローカルメモリ１０３に格納し、ＭＰＵ１０１にて実行する。各ＳＰＵ用のローカルメモリ（１１３、１２３等）に格納し、各ＳＰＵ（１１１、１２１等）にて実行してもよい。
【００８０】
（５）個別描画タスク１、個別描画タスク２、…、個別描画タスクＭ用のプログラムは、各ＳＰＵ用のローカルメモリ（１１３、１２３等）又はＭＰＵ１０１用のローカルメモリ１０３に格納し、ＳＰＵ（１１１、１２１等）又はＭＰＵ１０１にて実行する。
【００８１】
（６）印刷タスク１、印刷タスク２、…、印刷タスクＮ用のプログラムは、ＭＰＵ１０１用のローカルメモリ１０３に格納し、ＭＰＵ１０１にて実行する。各ＳＰＵ用のローカルメモリ（１１３、１２３等）に格納し、各ＳＰＵ（１１１、１２１等）にて実行することもできる。
【００８２】
（７）その他のタスク処理部３２３は、ＭＰＵ１０１用のローカルメモリ１０３又は各ＳＰＵ用のローカルメモリ（１１３、１２３等）に格納し、ＭＰＵ１０１又はＳＰＵ（１１１、１２１等）にて実行する。
【００８３】
次に図７を用いて、本印刷制御装置１１における一つの処理手順を説明する。以後、本処理手順を紙サイズ確定型空描画集中処理方式と呼ぶ。
【００８４】
初めにマスタプロセッサがホストコンピュータからホスト通信コントローラを介して印刷コマンド列を受信し、前記共有メモリ（１４１又は１４２）内のコマンドバッファ部に格納する。
【００８５】
マスタプロセッサ内の描画管理タスク３２１０は、コマンドバッファ部内の印刷コマンド列に対し、次の処理を行う。
【００８６】
（１）パラメータの初期化を行う（４１）。
（１−１）個別描画タスク番号ｍを０に初期化する（４１１）。
（１−２）ページ通し番号ｊを０に初期化する（４１２）。
（１−３）描画属性パラメータを初期化する（４１３）。
（２）以下の処理を無限に繰り返す（４２）。
（２−１）パラメータを更新する（４２１）。
（２−１−１）個別描画タスク番号ｉを更新する（４２１１）。
（２−１−２）ページ通し番号ｊを更新する（４２１２）。
（２−２）１ページ分の空描画を行う（４２２）。つまり、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理をページ区切りを検出するまで１ページ分行う。これにより、次ページ先頭用のページ区切りアドレスと描画属性パラメータとを求める（４２２）。
（２−３）ページ通し番号ｊについての実描画を行うための個別描画タスクｍ用に資源を獲得する（４２３）。
（２−３−１）個別描画タスクｍ用に空き状態のスレーブプロセッサを獲得する（４２３１）。
（２−３−２）個別描画タスクｍ用に空き状態のページバッファを獲得するつまり、個別描画タスクｍ用に獲得したスレーブプロセッサがアクセス可能で、前記空描画処理により確定した紙サイズ分の大きさを有する空き状態のページバッファメモリを獲得する（４２３２）。
（２−４）個別描画タスクｍを起動し、空描画を終了したページ（ページ通し番号ｊ）についての前記獲得スレーブプロセッサによる前記獲得ページバッファメモリへの実描画と呼ぶ処理を、第１ページついては初期値である第１ページ先頭用のページ区切りアドレスと描画属性パラメータを入力パラメータとし、また第２ページ以降については既にマスタプロセッサが検出済みのページ先頭用のページ区切りアドレスと描画属性パラメータを入力パラメータとして起動する（４２４）。
【００８７】
前記マスタプロセッサ内の前記描画管理タスク３２１０により起動されたスレーブプロセッサｋ内の個別描画タスクｍ（３２１２から３２１３）は、次の処理を行う。
（１）１ページ分の実描画を行う。つまり、実描画として描画属性パラメータの設定処理及び獲得したページバッファへの描画をページ区切りを検出するまで行い、１ページ分の描画を実行する（４４１）。
（２）該ＳＰＵｋからＭＰＵに、該実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する（４４２）。
（３）本報告と印刷処理の依頼が受理されたことを、ＭＰＵからの連絡により知った後、処理を終了する。
【００８８】
各ＳＰＵｋ（ｋは１からＫ）からＭＰＵへの連絡や処理の依頼は、以下のように行う。
（１）各ＳＰＵｋが、ＭＰＵへの情報送信処理部を用いて、ＭＰＵへの連絡や処理の依頼を行う（４５１）。
（２）ＭＰＵが、ＳＰＵからの情報受信処理部を用いて、前記連絡や処理の依頼を受信する（４３２）。
（３）ＭＰＵが、ＳＰＵ依頼内容の実行部を用いて、連絡の受信や処理の実行を行う（４３３）。
（４）ＭＰＵが、ＳＰＵへの情報送信処理部を用いて、ＳＰＵｌへ連絡の受信や処理の実行が終了したことを送信する（４３１）。
（５）ＭＰＵが、ＳＰＵからの情報受信処理部を用いて、前記連絡や処理の依頼が終了したことを知る（４５２）。
【００８９】
次に図２４と図２５を用いて、ＭＰＵと各ＳＰＵ間の連絡方法をさらに詳しく説明する。
【００９０】
ＭＰＵとＳＰＵ間は、図２４に示すように、割込み信号を相互に入力することにより、連絡を取り合う。これらの各割込み信号は前記システムバス１２の中に含めるようにしたが、システムバス１２とは独立の信号線としてもよい。
【００９１】
また連絡内容を示す情報は、図２５のように共有メモリ上に配置する。
【００９２】
図２４に示した割込み信号と図２５に示した共有メモリ上の連絡情報を用いて、ＭＰＵ（ＳＰＵ  ｋ）からＳＰＵ  ｋ（ＭＰＵ）への連絡は以下のように行う。
【００９３】
（Ａ）ＭＰＵ（ＳＰＵ  ｋ）の処理
（１）連絡用マクロ命令ｍｔｏｓ（ｓｔｏｍ）をタスク又はモニタが発行する。
（２）ＭＰＵ（ＳＰＵ  ｋ）上のモニタがｍｔｏｓ（ｓｔｏｍ）を実行する。
【００９４】
0003553985.tif 000002
【００９５】
（ｉｉ）ＭＰＵ（ＳＰＵ  ｋ）からＳＰＵ  ｋ（ＭＰＵ）への割込み信号をアサートする。
【００９６】
（Ｂ）ＳＰＵ  ｋ（ＭＰＵ）の処理
（１）割込み処理において割込み要因を解析し、ＭＰＵ（ＳＰＵ  ｋ）からの連絡割込みであることを識別する。
【００９７】
（２）該連絡割込みに対応する処理で、ＭＰＵ（ＳＰＵ  ｋ）からＳＰＵｋ（ＭＰＵ）への連絡情報Ｉを読出し、その内容に応じた処理を行う。
【００９８】
（３）該処理では連絡情報Ｉの単なる受信に加え、各種処理（タスク起動、タスク終了、事象発生待ち、資源空き待ち等のタスク制御を伴うことも可能）を行うことができる。
【００９９】
ページバッファの獲得と再獲得の依頼を受信したＭＰＵは、前記ページバッファ制御部３１５を用いて、ページバッファの獲得と再獲得を行う（５５３）。
【０１００】
該実描画の終了報告を受信したＭＰＵは、ＳＰＵ依頼内容の実行部において、実描画終了ページの更新と、報告元スレーブプロセッサの解放を行う（４３３）。  また印刷処理を依頼されたＭＰＵは、同じくＳＰＵ依頼内容の実行部において、該描画済みページバッファについての印刷タスクを起動する（４３３）。
【０１０１】
また該印刷タスクにより起動された描画済みページバッファからの読み出しの終了を、ＭＰＵがプリンタエンジンアダプタ部２（１７１−ｂ）又はＳＰＵからの割込み信号により知ると、ＭＰＵがページバッファ制御部３１５を用いて、当該ページバッファを解放する。
【０１０２】
またＭＰＵによる描画管理タスク処理と印刷タスク処理は、前記従来技術に示した方法を用いて並行処理する。さらにＭＰＵによる処理と各ＳＰＵによる処理は前述のように並列処理する。
【０１０３】
次に図８を用いて、本印刷制御装置１１におけるもう一つの処理手順を説明する。以後、本処理手順を紙サイズ仮定型空描画集中処理方式と呼ぶ。
【０１０４】
初めにＭＰＵがホストコンピュータからホスト通信コントローラを介して印刷コマンド列を受信し、共有メモリ内のコマンドバッファ部に格納する。ＭＰＵ内の描画管理タスク３２１０は、コマンドバッファ部内の印刷コマンド列に対し、次の処理を行う。
（１）パラメータの初期化を行う（５１）。
【０１０５】
（１−１）個別描画タスク番号ｍを１に初期化する（５１１）。
（１−２）ページ通し番号ｊを１に初期化する（５１２）。
（１−３）描画属性パラメータを初期化する（５１３）。
【０１０６】
（２）ページ通し番号１についての実描画を行うため、個別描画タスクｉ用に資源を獲得する（５２）。
（２−１）個別描画タスクｍ用に空き状態のＳＰＵを獲得する（５２１）。
（２−２）個別描画タスクｍ用に空き状態のページバッファを獲得する。つまり、個別描画タスクｍ用に獲得したＳＰＵがアクセス可能な、初期値として仮定されている紙サイズ分の大きさを有する空き状態のページバッファメモリを獲得する（５２２）。
【０１０７】
（３）個別描画タスクｍを起動し、ページ通し番号１のページ（第１ページ）についての前記獲得スレーブプロセッサによる前記獲得ページバッファメモリへの実描画と呼ぶ処理を、第１ページ先頭用のページ区切りアドレスと描画属性パラメータを入力パラメータとして起動する（５３）。
【０１０８】
（４）以下の処理を無限に繰り返す（５４）。
（４−１）１ページ分の空描画を行う。つまり、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理をページ区切りを検出するまで１ページ分行う。これにより、次ページ先頭用のページ区切りアドレスと描画属性パラメータとを格納する（５４１）。
（４−２）パラメータを更新する（５４２）。
（４−２−１）個別描画タスク番号ｍを更新する（５４２１）。
（４−２−２）ページ通し番号ｊを更新する（５４２２）。
（４−３）ページ通し番号ｊについての実描画を行うための個別描画タスクｍ用に資源を獲得する（５４３）。
（４−３−１）個別描画タスクｍ用に空き状態のＳＰＵを獲得する（５４３１）。
（４−３−２）個別描画タスクｉ用に空き状態のページバッファを獲得する。つまり、個別描画タスクｉ用に獲得したＳＰＵがアクセス可能な、前記空描画終了時点のデフォルト紙サイズ分の大きさを有する、空き状態のページバッファメモリを獲得する（５４３２）。
（４−４）個別描画タスクｍを起動し、空描画を終了した次のページ（ページ通し番号ｊ）についての前記獲得スレーブプロセッサによる前記獲得ページバッファメモリへの実描画と呼ぶ処理を、次頁先頭用のページ区切りアドレスと描画属性パラメータを入力パラメータとして起動する（５４４）。
【０１０９】
前記ＭＰＵ内の前記描画管理タスク３２１０により起動されたスレーブプロセッサｋ内の個別描画タスクｍ（３２１２から３２１３）は、次の処理を行う。
【０１１０】
（１）１ページ分の実描画を行う。つまり、実描画として描画属性パラメータの設定処理及び獲得したページバッファへの描画をページ区切りを検出するまで行い、１ページ分の描画を実行する。
【０１１１】
該実描画における描画属性パラメータの設定処理において紙サイズの変更を検出すると、該変更紙サイズについてのページバッファの再獲得をＭＰＵに依頼する（５６１）。
【０１１２】
（２）該個別描画タスクｍ（ＳＰＵｋにて処理）からＭＰＵに、該実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する（５６２）。
【０１１３】
（３）本報告と印刷処理の依頼が受理されたことを、ＭＰＵからの連絡により知った後、処理を終了する。
【０１１４】
各ＳＰＵｋ（ｋは１からＫ）からＭＰＵへの連絡や処理の依頼は、ＭＰＵへの情報送信処理部（５７１）、ＭＰＵからの情報受信処理部（５７２）、ＳＰＵへの情報送信処理部（５５１）、ＳＰＵからの情報受信処理部（５５２）、ＳＰＵ依頼内容の実行部（５５３）を用いて、図７の場合と同様にして行う。
【０１１５】
ページバッファ獲得と再獲得の依頼を受信したＭＰＵは、前記ページバッファ制御部３１５を用いて、ページバッファの獲得と再獲得を行う。
【０１１６】
該実描画の終了報告を受信した該ＭＰＵは、ＳＰＵ依頼内容の実行部において、実描画終了ページの更新と、報告元スレーブプロセッサの解放を行う（５５３）。また印刷処理を依頼されたＭＰＵは、同じくＳＰＵ依頼内容の実行部において、該描画済みページバッファについての印刷タスクを起動する（５５３）。
【０１１７】
また該印刷タスクにより起動された描画済みページバッファからの読み出しの終了を、ＭＰＵがプリンタエンジンアダプタ部２（１７１−ｂ）又はＳＰＵからの割込み信号により知ると、ＭＰＵが前記ページバッファ制御部３１５を用いて、当該ページバッファを解放する。
【０１１８】
またＭＰＵによる描画管理タスク処理と印刷タスク処理は、前記従来技術に示した方法を用いて並行処理する。さらに前記ＭＰＵによる処理と前記各ＳＰＵによる処理は前述のように並列処理する。
【０１１９】
なお、前述の手順においてはページバッファの獲得、解放方式として紙サイズに応じて、必要サイズのページバッファを獲得、解放する可変長ページバッファ制御方式を採用したが、紙サイズに依らず固定サイズ（プリンタエンジンにて印刷可能な最大紙サイズ分の大きさに対応）のページバッファを獲得、解放する固定長ページバッファ制御方式を採用することもできる。この場合、前記手順において、ページバッファの再獲得が不要になる等、ページバッファの制御は簡単にできるが、可変長ページバッファ制御方式ほどにはページバッファメモリを有効活用することはできない。
【０１２０】
次に図９と図１０を用いて、プリンタエンジンアダプタ部２（１７２）の構成の例を説明する。
【０１２１】
プリンタエンジンアダプタ部２（１７２）は図９では、プリンタエンジンアダプタ部２（１７２）をプリンタ制御用プロセッサ（ＰＰＵと略す）１７２１、内部バス１７２２、ローカルメモリ１７２３、プリンタメモリコントローラ１（１７２４、ＰＭＣ１とも略す）、バスＩ／Ｆ１７２５と１７２６とから構成される。このうち、ＰＭＣ１（１７２４）は前記ローカルメモリ１７２３の内容（通常、後述する印刷中継バッファと呼ぶエリアの内容）のプリンタエンジン部１８への読み出し処理と前記ローカルメモリ１７２３の制御（ＤＲＡＭのリフレッシュ等）を行う。本読み出し処理のために、内蔵のＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）回路を設け、該読み出し処理を前記プリンタ制御用プロセッサ１７２１に負担をかけないで行うことが望ましい。本構成の下で、マスタプロセッサモジュール１００、各スレーブプロセッサモジュール（１１０等）内のローカルメモリ上に配置されているページバッファ部内の描画済みページバッファの内容を、各プロセッサモジュール用の内部バスに接続されている各プロセッサモジュール内のマスタプロセッサ、スレーブプロセッサのいずれかのプロセッサ、又はＤＭＡ回路（１０９、１１９等）が、該内部バスからビデオバス１（１３）と呼ぶ前記システムバス１２とは別のバスにに送信の後、該ビデオバス１（１３）から前記プリンタエンジンアダプタ部２（１７１−ｂ）内のローカルメモリ１７２３上に配置した印刷中継バッファと呼ぶエリアに送信し、該印刷中継バッファ内のデータを前記プリンタエンジン部１８へ、プリンタエンジンインターフェース（１２−ｉ−１と１２−ｉ−２）に従って送信する。また、前記プリンタエンジンアダプタ部２（１７２）内の前記印刷中継バッファから前記プリンタエンジン部１８へのデータの読み出しを、プリンタエンジンアダプタ部２（１７１−ｂ）内のＰＭＣに内蔵したＤＭＡ回路を用いて行ってもよい。
【０１２２】
図１０では、プリンタエンジンアダプタ部２（１７１−ｂ）はプリンタ制御用プロセッサ（ＰＰＵと略す）１７２１、内部バス１７２２、ローカルメモリ１７２３、バスＩ／Ｆ１７２５とから構成される。
【０１２３】
また本構成では、各プロセッサモジュール内にプリンタメモリコントローラ２（１０Ａ、１１Ａ等、ＰＭＣ２と略す）を設けてもよい。該ＰＭＣ２は各ローカルメモリ１０３、１１３等の内容（通常ページバッファの内容）のプリンタエンジン部１８への読み出し処理と前記ローカルメモリ１０３、１１３等の制御（ＤＲＡＭのリフレッシュ等）を行う。本読み出し処理のために、内蔵のＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）回路を設け、該読み出し処理を各プロセッサモジュール内のＭＰＵや各ＳＰＵに負担をかけないで行うこともできる。
【０１２４】
本構成の下で、マスタプロセッサモジュール、各スレーブプロセッサモジュール内のローカルメモリ（１０３、１１３等）上に配置されているページバッファ部内の描画済みページバッファの内容を、各プロセッサモジュール内のＰＭＣ２が各プロセッサモジュール用の内部バスを介さず、ビデオバス２と呼ぶ前記システムバスとは別のバスに送信の後、該ビデオバス２から前記プリンタエンジン部へ、プリンタエンジンインターフェースに従って送信する。
【０１２５】
なお、上記図９と図１０において、ＤＭＡ回路１０９、１１９等やＰＭＣ２（１０Ａ、１１Ａ等）が前記データ転送を行う際、ページバッファの各ラスタの読み出し時に、ゼロクリアするモードとしないモードを設けた。ゼロクリアするモードは通常の各ページを印刷部数１枚ずつ印刷するシングルページコピーと呼ぶ印刷において用いる。また、ゼロクリアしないモードは各ページを印刷部数で２枚以上印刷するマルチページコピーと呼ぶ印刷において用いる。
【０１２６】
本実施例においては、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。
【０１２７】
図１１、図１２、図１３に本実施例におけるコマンド受信、空描画、実描画、印刷等のタイミングを示す。図示のように、ＭＰＵによる描画管理タスクの処理と各ＳＰＵによる各個別描画タスク１、２、３等の処理はプロセッサ毎に並列して実行されている。またＭＰＵにより処理されるコマンド受信、描画管理タスクの処理、転送１、転送２、…、転送５等、印刷１、印刷２、…、印刷５等は、並行（パイプライン処理）して実行されている。
【０１２８】
ここで図１１と図１２は、プリンタエンジンアダプタ部２（１７２）の構成として、前記図９を用いた場合に対応する。このうち図１１では、各プロセッサモジュール（１００、１１０、１２０等）内のローカルメモリ（１０３、１１３等）から前記プリンタエンジンアダプタ部２（１７１−ｂ）内の印刷中継バッファ（ローカルメモリ１７２３内）へのデータ転送をＤＭＡ回路（１０９、１１９等）が行う場合に相当する。また、本図では前記ゼロクリアをハードウェア（該ＤＭＡ回路）を用いて行っている。
【０１２９】
一方、図１２は前記データ転送を、各プロセッサモジュール用の内部バスに接続されている各プロセッサモジュール内のＭＰＵ、ＳＰＵのいずれかのプロセッサがソフトウェア処理を用いて行う場合に相当する。また、本図では前記ゼロクリアをソフトウェア（該プロセッサ）を用いて行っている。
【０１３０】
なお、前記図１１と図１２では前記プリンタエンジンアダプタ部２（１７１−ｂ）内の印刷中継バッファとして、少なくともページバッファ２ページ分（１ページがプリンタエンジン部１８にて印刷可能な最大紙サイズ分の大きさを有する）を用意することにより、該印刷中継バッファへの書き込みと読み出しを並行処理可能とした。なお、印刷中継バッファの容量を減らしても印刷処理を行うことができる。
【０１３１】
なお、図１２はクリア時間が転送時間より大きい場合の例を示しているが、印刷制御装置の実現方法に応じて、クリア時間、転送時間両者の大小関係は変化する。しかし、両者の大小関係が変わっても、各処理のタイミングは図１２の場合と同様である。
【０１３２】
また図１３は、プリンタエンジンアダプタ部２（１７２）の構成として、前記図１０を用いた場合に対応する。
【０１３３】
以上のように本実施例においては実描画処理を並列実行しているため、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。
【０１３４】
また描画と印刷を前記並行処理しているため、各ページの印刷内容が異なる複数ページからなる文書についての連続印刷においても、プリンタ最高性能を達成することができる。
【０１３５】
また複数個のプロセッサ（ＭＰＵ、ＳＰＵ１、ＳＰＵ２、…、ＳＰＵＫ）として汎用プロセッサを用いているため、各ページが文字又は図形のみの文書についても描画性能を向上し、印刷性能を向上させることができる。
【０１３６】
次に本発明の第２実施例を説明する。
【０１３７】
ハードウェアの基本構成、ハードウェアの詳細構成、ソフトウェア構成、プリンタエンジンアダプタ部２の構成は、前記第１実施例の場合と同じく、図１〜図６、図９、図１０に示したものを利用する。
【０１３８】
図１４を用いて、本実施例における一つの処理手順を説明する。以後、本手順を空描画分散処理方式と呼ぶ。
【０１３９】
次に図１４を用いて、本印刷制御装置１１におけるもう一つの処理手順を説明する。初めにＭＰＵがホストコンピュータからホスト通信コントローラを介して印刷コマンド列を受信し、前記共有メモリ内のコマンドバッファ部に格納する。
【０１４０】
前記ＭＰＵ内の前記描画管理タスク３２１０は、前記コマンドバッファ部内の印刷コマンド列に対し、次の処理を行う。
【０１４１】
（１）すべての個別描画タスク（個別描画タスク１、２、…、Ｍ）を起動す  る（８１）。個別描画タスク数Ｍとしては通常次の二つの場合がある。
【０１４２】
（ａ）個別描画タスク数Ｍをスレーブプロセッサ総数Ｋと同数とする。
【０１４３】
（ｂ）個別描画タスク数ＭをＫ＋１とする。
【０１４４】
（ａ）の場合、各個別描画タスクｌは、いずれかのスレーブプロセッサに割り当てる。（ｂ）の場合、各個別描画タスクｍは、いずれかのスレーブプロセッサ及びマスタプロセッサに割り当てる。以後本説明では、（ａ）の場合を想定して説明するが、（ｂ）の場合についても同様にして実現することができる。
【０１４５】
（２）本タスクの処理を終了する（８２）。
【０１４６】
前記ＭＰＵ内の前記描画管理タスク３２１０により起動されたＳＰＵ１内の個別描画タスク１（３２１２）は、次の処理を無限に繰り返す（８４）。
【０１４７】
（１）個別描画タスク１用に空き状態のページバッファの獲得をＭＰＵに依頼する。つまり、個別描画タスク１用に獲得したＳＰＵがアクセス可能な、デフォルト紙サイズについてページバッファの獲得をＭＰＵに依頼する（８４１）。
【０１４８】
（２）１ページ分の実描画を行う。つまり、前記獲得ページバッファメモリへの実描画として描画属性パラメータの設定処理及び描画をページ区切りを検出するまで行い１ページ分の描画を行う。該実描画での描画属性パラメータの設定処理において紙サイズ変更を検出すると、該変更紙サイズについてのページバッファ再獲得をマスタプロセッサに依頼する（８４２）。
【０１４９】
（３）本個別描画タスク１からＭＰＵへ実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する（８４３）。
【０１５０】
（４）次に示す１ページ分の空描画（８４５）を、Ｍ−１回繰り返す（８４４）。このＭ−１という数は、他の個別描画タスクが実描画を担当するページ数に相当する。
（４−１）１ページ分の空描画を行う。つまり、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理をページ区切りを検出するまで１ページ分行う（８４５）。どのページで描画属性パラメータが変更されるかは不明なので、自己の担当しないページについてもすべて順次空描画を行っていく必要がある。
【０１５１】
前記ＭＰＵ内の前記描画管理タスク３２１０により起動されたＳＰＵｋ内の個別描画タスクｍ（３２１３）は、次の処理を無限に繰り返す（８６）。
【０１５２】
（１）次に示す１ページ分の空描画（８６２）を、ｍ−１回繰り返す（８６１）。このｍ−１という数は、個別描画タスクｍが描画を担当するページまでの他の個別描画タスクが担当するページ数に相当する。
（１−１）１ページ分の空描画を行う。つまり、前記コマンドバッファ部内の印刷コマンド列を読出し、解釈しながら、描画を伴わない描画属性パラメータの設定処理をページ区切りを検出するまで１ページ分行う（８６２）。
【０１５３】
（２）個別描画タスクｍ用に空き状態のページバッファの獲得をＭＰＵに依頼する。つまり、個別描画タスクｍ用に獲得したＳＰＵがアクセス可能な、デフォルト紙サイズについてページバッファの獲得手順をＭＰＵに依頼する（８６３）。
【０１５４】
（３）１ページ分の実描画を行う。つまり、前記獲得ページバッファメモリへの実描画として描画属性パラメータの設定処理及び描画をページ区切りを検出するまで行い１ページ分の描画を行う。該実描画での描画属性パラメータの設定処理において紙サイズ変更を検出すると、該変更紙サイズについてのページバッファ再獲得をマスタプロセッサに依頼する（８６４）。
【０１５５】
（４）本個別描画タスクｍからＭＰＵへ実描画の終了を報告するとともに、該描画済みページバッファについての印刷処理を依頼する（８６５）。
【０１５６】
（５）１ページ分の空描画（８６７）を、Ｍ−ｍ回繰り返す。このＭ−ｍという数は、Ｍページのうち、該個別描画タスクｍが描画を担当したページに続き他の個別描画タスクが担当するページ数に相当する。空描画（８６７）の処理内容は、８６２に示したのと同じであり、同一のサブルーチンプログラムや関数としてもよい。
【０１５７】
各ＳＰＵｋ（ｋは１からＫ）からＭＰＵへの連絡や処理の依頼は、ＭＰＵへの情報送信処理部（８５１、８７１）、ＭＰＵからの情報受信処理部（８５２、８７２）、ＳＰＵへの情報送信処理部（８３１）、ＳＰＵからの情報受信処理部（８３２）、ＳＰＵ依頼内容の実行部（８３３）を用いて、図６や図１１〜図１３に示した実施例１の場合と同様にして行う。
【０１５８】
ページバッファ獲得と再獲得の依頼を受信したＭＰＵは、前記ページバッファ制御部３１５を用いて、ページバッファの獲得と再獲得を行う。
【０１５９】
該実描画の終了報告を受信したＭＰＵは、ＳＰＵ依頼内容の実行部において、実描画終了ページの更新を行う（８３３）。
【０１６０】
また印刷処理を依頼されたＭＰＵは、同じくＳＰＵ依頼内容の実行部において、該描画済みページバッファについての印刷タスクを起動する（８３３）。
【０１６１】
また該印刷タスクにより起動された描画済みページバッファからの読み出しの終了を、ＭＰＵがプリンタエンジンアダプタ部２（１７１−ｂ）又はＳＰＵからの割込み信号により知ると、該ＭＰＵが前記ページバッファ制御部３１５を用いて、当該ページバッファを解放する。
【０１６２】
なお、前述の手順においてはページバッファの獲得、解放方式として紙サイズに応じて、必要サイズのページバッファを獲得、解放する可変長ページバッファ制御方式を採用したが、紙サイズに依らず固定サイズ（プリンタエンジンにて印刷可能な最大紙サイズ分の大きさに対応）のページバッファを獲得、解放する固定長ページバッファ制御方式を採用することもできる。この場合、前記手順において、ページバッファの再獲得が不要になる等、ページバッファの制御は簡単にできるが、可変長ページバッファ制御方式ほどにはページバッファメモリを有効活用することはできない。
【０１６３】
また前記ＭＰＵによる描画管理タスク処理と印刷タスク処理は、前記従来技術に示した方法を用いて並行処理する。さらに前記ＭＰＵによる処理と前記各ＳＰＵによる処理はを前述のように並列処理する。
【０１６４】
また本第２実施例におけるコマンド受信、空描画、実描画、印刷等のタイミング図は、前記図１１、図１２、図１３の場合と同様である。つまり、図示のように、ＭＰＵによる描画管理タスクの処理と各ＳＰＵによる各個別描画タスク１、２、３等の処理は並列して実行されている。またＭＰＵにより処理されるコマンド受信、描画管理タスクの処理、転送１、転送２、…、転送５等、印刷１、印刷２、…、印刷５等は、並行して実行されている。
【０１６５】
また、図１１、図１２、図１３と図９、図１０との対応も前記第１実施例の場合と同様である。
【０１６６】
以上のように本実施例においても実描画処理を並列実行しているため、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。
【０１６７】
また描画と印刷を前述のように並行処理しているため、各ページの印刷内容が異なる複数ページからなる文書についての連続印刷においても、プリンタ最高性能を達成することができる。
【０１６８】
また複数個のプロセッサ（ＭＰＵ、ＳＰＵ１、ＳＰＵ２、…、ＳＰＵＫ）として汎用プロセッサを用いているため、各ページが文字又は図形のみの文書についても描画性能を向上し、印刷性能を向上させることができる。
【０１６９】
また本実施例においては、第１実施例とは異なり、空描画を各個別描画タスクが行っている。従って、前記空描画の負荷が小さい場合、個別描画タスク数Ｍをスレーブプロセッサ総数Ｋ＋１とし、各個別描画タスクｍを、いずれかのスレーブプロセッサ及びマスタプロセッサに割り当てることで、印刷スループットを第１実施例の場合より向上させることができる。
【０１７０】
次に本発明の第３実施例を説明する。本実施例のハ−ドウェアの基本構成、ハ−ドウェアの詳細構成、ソフトウェア構成、プリンタエンジンアダプタ部２の構成は、前記第１実施例の場合と同じく、図１〜図６、図９、図１０に示したものを利用する。
【０１７１】
従来の印刷コマンドの中には、明瞭なペ−ジ区切りがなく、描画属性パラメ−タの引継ぎありのコマンド（以下、無制約コマンドと呼ぶ）がある。ここで、明瞭なペ−ジ区切りなしとは、ペ−ジ区切りを示すコマンドがペ−ジ区切り位置になく、以下のような条件が発生した時、印刷制御装置が暗黙的にペ−ジ区切りが指示されたとみなすことである。
【０１７２】
（１）文字行の総数がペ−ジ長を超えた。
【０１７３】
（２）紙サイズや印刷部数等の各ペ−ジについて一通りしか指定できない各種仕様の変更が、あるペ−ジについての描画の途中で指示された。
【０１７４】
また、描画属性パラメ−タの引継ぎありのコマンドとは、文字フォントの種類、文字行ピッチ、文字列ピッチ、線幅、線種、紙サイズ、印刷部数、プリンタ給紙部、プリンタ排紙部等の描画や印刷に関する各種パラメ−タが、次頁に引き継がれるコマンドのことである。
【０１７５】
なお、明瞭なペ−ジ区切りがなく、描画属性パラメ−タの引継ぎありのコマンド、つまり無制約コマンドの代表としては、各プリンタメ−カが独自に定めているプリンタ制御用エスケ−プシ−ケンスがある。
【０１７６】
上記無制約コマンドを用いて印刷を行う場合、前述の第１実施例及び第２実施例においては、前記空描画処理の負荷が大きくなると、マルチプロセッサ方式を用いても印刷性能の飛躍的な向上は望めない。
【０１７７】
例えば、空描画分散処理方式における個別描画タスクによる空描画処理の処理量ｄは、
ｄ＝（Ｍ−１）・ａ＋１
ここで、Ｍ：個別描画タスク数
ａ：空描画処理の負荷係数（描画処理時間に対する比率）
である。
【０１７８】
この場合、Ｍ＝３、ａ＝０．１〜０．４とすると空描画処理の処理量ｄはｄ＝１．２〜１．８となる。
【０１７９】
また、空描画集中処理方式においては、無制約コマンドについては描画管理タスクが各ペ−ジについて、空描画処理負荷係数ａだけの空描画を行う。
【０１８０】
本実施例においては、図１５に示すような制約コマンドと呼ぶ印刷コマンドを定義することにより、上記問題点を解消する。ここで制約コマンドとは、ペ−ジの区切りにペ−ジ区切りを示す改頁コマンドと呼ぶコマンドを配置し（９５、９８）、各ペ−ジの先頭にて各種描画属性パラメ−タが印刷コマンド仕様により初期化されるか、又は各ペ−ジの先頭に各種描画属性パラメ−タを初期化するためのリセットコマンドＢ（９３、９６）と呼ぶコマンドを配置し、第１ペ−ジ用のコマンドの前に、本文書の以後のすべてのペ−ジについて有効となるすべての外字、書式、関数、辞書等からなる文書全ペ−ジ有効パラメ−タを定義するためのコマンドを配置し（９２）、文書の先頭に前記描画属性パラメ−タ及び文書全ペ−ジ有効パラメ−タを初期化するためのリセットコマンドＡ（９１）と呼ぶコマンドを配置し、前記リセットコマンドＢと改頁コマンドの間に各ペ−ジの描画、印刷内容を指定するための各種描画属性パラメ−タの設定コマンドと各種描画コマンドの列を配置した（９４、９７）ものである。
【０１８１】
なお、制約コマンドの実現方法としては次の二つの方法がある。
【０１８２】
（１）上記規約に従う印刷コマンドとして新たに定義する。
【０１８３】
（２）無制約コマンドの使い方、つまりコマンドシ−ケンスを前記規約に従うようにする。
【０１８４】
また近年、レーザプリンタ等を用いて高品位印刷を行うため、Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＰＤＬと略す）と呼ばれる印刷コマンドが普及しつつある。ＰＤＬとしては、Ａｄｏｂｅ社のＰｏｓｔＳｃｒｉｐｔ、ＨＰ社のＤＤＬ、ゼロックス社のＩｎｔｅｒｐｒｅｓｓ等がある。これらのＰＤＬは前記プリンタ制御用エスケープシーケンスに比べ、処理量が大きいため、前記問題点は特に重大である。そのため、図１６に示すように、ＰＤＬを制約コマンド化すると、印刷性能を大きく向上することができる。この制約を付けたＰＤＬを、以下制約付きＰＤＬと呼ぶことにする。
【０１８５】
図１６に示すように制約付きＰＤＬは、文頭コメント部１０Ａ、文書全ページ有効パラメータ設定部１０Ｂ、第１ページ内容部１０Ｃ、第２ページ内容部１０Ｄ、…、最終ページ内容部１０Ｅ、文末コメント部１０Ｆとからなる。
【０１８６】
前置きコメント部１０Ａは、文書の作成者１０Ａ１、文書名称１０Ａ２、作成日１０Ａ３、総ページ数１０Ａ４、使用フォント一覧１０Ａ５、文頭コメント部の終了記述子１０Ａ６等からなる。なお、本例では総ページ数１０Ａ４と使用フォント一覧１０Ａ５は、前記文末コメント部１０Ｆを参照するようにしてある。
【０１８７】
文書全ページ有効パラメータ設定部１０Ｂは、前述の文書全ページ有効パラメータ９２を設定する部分である。
【０１８８】
第１ページ内容部１０Ｃ、第２ページ内容部１０Ｄ、…、最終ページ内容部１０Ｅは、前記各ページの描画、印刷内容を指定するための各種描画属性パラメータの設定コマンドと各種描画コマンドの列（９４、９７）からなる。
【０１８９】
文末コメント部１０Ｆは文末コメント部の開始記述子１０Ｆ１、総ページ数１０Ｆ２、使用フォント一覧１０Ｆ３等からなる。
【０１９０】
なお、少なくとも第１ページ内容部１０Ｃ、第２ページ内容部１０Ｄ、…、最終ページ内容部１０Ｅの区切り、つまりページ区切りは、前記１０Ｃ、１０Ｄ、１０Ｅ等のページ内容の記述と簡単に区別がつくようにし、該ページ区切りの検出を簡単にできるようにすることが、前記空描画処理の負荷を軽減するために望ましい。
【０１９１】
なお、ＰｏｓｔＳｃｒｉｐｔには、ｃｏｐｙｐａｇｅと呼ばれるコマンドが使われている。本コマンドは、前ページについてのページバッファへの描画内容と描画属性パラメータをすべて次のページに引き継ぐ。従って、本印刷制御装置では、ｃｏｐｙｐａｇｅコマンドではページが更新されないものとみなして、処理を進める。
【０１９２】
次に図１７を参照しながら、制約コマンド、無制約コマンドのホストコンピュータ１０と印刷制御装置とによる処理について説明する。
【０１９３】
ホストコンピュータは次のいずれかを行うことにより、印刷コマンド列を印刷制御装置１１に送信する。
【０１９４】
（１）制約コマンド１１Ａ１を、ホストコンピュータ１０内の応用プログラムやプリンタドライバが直接生成し、印刷制御装置１１に送信する。
【０１９５】
（２）無制約コマンド１１Ａ２を、ホストコンピュータ１０内の応用プログラムやプリンタドライバが一度作成し、同じくホストコンピュータ１０が制約コマンドへの変換部１１Ｂを用いて、該無制約コマンド１１Ａ２を制約コマンド１１Ｃ２へ変換した後、印刷制御装置１１に送信する。
【０１９６】
（３）無制約コマンド１１Ａ２を、ホストコンピュータ１１０内の応用プログラムやプリンタドライバが作成し、印刷制御装置１１にそのまま送信する（１１Ｃ３に相当）。
【０１９７】
なお、該印刷コマンド列の先頭エリアには制約コマンドと無制約コマンドを区別するため、制約有無指定コマンドを配置し（図１８参照）、前記ホストコンピュータが該印刷コマンド列を印刷制御装置に送信する。
【０１９８】
印刷制御装置１１は次の処理を行う。
【０１９９】
（１）ホストコンピュータから受信した印刷コマンド列内に記述されている前記制約有無指定コマンドを処理することにより、受信した印刷コマンド列が制約コマンドと無制約コマンドのいずれであるか判別する（１１Ｄ１）。
【０２００】
（２）判別の結果、制約コマンドならば制約コマンド対応印刷制御方式１１Ｅ１を実行する（１１Ｅ１）。無制約コマンドならば、無制約コマンド対応印刷制御方式を実行する（１１Ｅ２）。
【０２０１】
なお、無制約コマンド対応印刷制御方式においては、空描画処理として第１実施例又は第２実施例に示した処理を行う。また、制約コマンド対応印刷制御方式においては、空描画処理として明瞭なページ区切りの検出のみを行うようにし、前記描画属性パラメータの引継ぎ処理は行わないようにする。
【０２０２】
なお、本実施例における描画管理タスクと個別描画タスクの処理手順としては、第１実施例における紙サイズ確定型空描画集中処理方式（図７）、紙サイズ仮定型空描画集中処理方式（図８）、又は空描画分散処理方式（図１４）を用いるものとする。但し、制約コマンドにおいては、前述のように空描画を簡単化するものとする。
【０２０３】
次に、ホストコンピュータが送信する印刷コマンド列の形式について、説明する。ホストコンピュータ１０は図１８に示す形式の印刷コマンド列を作成し、印刷制御装置１１へ送信する。印刷プロトコル指定コマンド１２Ａ１により、前述の各プリンタメーカ対応プリン制御用エスケープシーケンス、ＰｏｓｔＳｃｒｉｐｔ等の各種ＰＤＬの種別を指定する。本印刷プロトコル指定コマンドは省略できない。
【０２０４】
制約有無指定コマンド１２Ａ２により、制約コマンドと無制約コマンドの区別を付ける。また、制約有無指定コマンド１２Ａ２より後に、文書の印刷内容を示す印刷コマンド列１２Ａ３（以後、文書内容記述印刷コマンド列と呼ぶ）を配置する。文書内容記述印刷コマンド列１２Ａ３の内容の一例としては、前記図１５や図１６に示した印刷コマンド列がある。文書内容記述印刷コマンド列１２Ａ３の中に片面／両面印刷指定コマンド１２Ａ４を付けることにより、片面印刷と両面印刷のいずれかを指定する。制約有無指定コマンド及び片面／両面印刷指定コマンドは省略すると、前指定値を用いることとする。前指定値がない場合、初期値とみなす。本実施例では、初期値を無制約コマンドや片面印刷としたが、制約コマンドや両面印刷とすることもできる。なお、印刷プロトコル指定コマンド１２Ａ１と制約有無指定指定コマンド１２Ａ２を合わせて印刷プロトコル指定コマンド１２Ａ１としてもよい。
【０２０５】
以上のように、制約コマンドと制約コマンド対応印刷制御方式を設けることにより、空描画集中処理方式における描画管理タスクによる空描画処理、及び空描画分散処理方式における個別描画タスクによる空描画処理を、制約コマンドの場合、簡単化し、高速化を計ることができる。
【０２０６】
従って本実施例においては、前記第１実施例及び第２実施例で得られた効果に加え、プロセッサ数にほぼ比例した描画性能の向上効果も得ることができる。
【０２０７】
なお、制約コマンドにおいては、各ページ用の印刷コマンド列を切り出した後、前記共有メモリから、各個別描画タスクに対応するプロセッサモジュール内のローカルメモリに転送し、その転送した印刷コマンド列について各個別描画タスクが処理を行うようにしてもよい。この場合、各個別描画タスクによる印刷コマンド列のアクセス時に、共有メモリの場合のようなアクセス競合が発生しないという効果がある。但し、前記転送時間が余分にかかる。
【０２０８】
また、次のように改頁コマンドより検出の容易なページ区切りを設けることにより、ページ切り出しをさらに高速化し、空描画の負荷をさらに減少することもできる。
【０２０９】
（１）ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）におけるＰｒｉｎｔコマンドを各ページ毎に別々に発行する、
（２）前記制約付きＰＤＬにて述べたように、ページ区切りとして、前記１０Ｃ、１０Ｄ、１０Ｅ等のページ内容の記述と簡単に区別がつくような記述子を特別に設ける。
【０２１０】
次に本発明の第４実施例を説明する。
【０２１１】
ソフトウェア構成、プリンタエンジンアダプタ部２の構成は、前記第１実施例の場合と同じく、図６、図９、図１０に示したものを利用する。また、ハードウェア構成としては図１〜図５に示したものを用いることもできるが、他の構成もとることができる。ハードウェア構成については、後述する。
【０２１２】
本実施例は１ページからなる文書や、ファーストプリントと呼ばれる文書第１ページの印刷も高速印刷するためのものである。
【０２１３】
そのため、１ページを複数個の領域に分け、各領域について別々のプロセッサが個別描画タスク処理として、各領域についての描画を行うことにより、各１ページを高速描画する。
【０２１４】
さらに、１ページを構成するすべての領域についての描画が終了すると、印刷タスクが、図６に示したのと同様の方式で起動される。該印刷タスクは、前記個別描画タスクと別プロセッサについては並列処理され、同一プロセッサについては並行処理されるので、複数ページからなる文書でも高速印刷を実現することができる。以上説明した第４実施例に示した処理方式をページ内並列処理方式と呼ぶ。
【０２１５】
さらに詳しく説明する。ホストコンピュータ１０からホスト通信コントローラ（１５１−ａや１５１−ｂ）を介して印刷コマンド列を受信し、共有メモリ（１４１や１４２）内のコマンドバッファ部に格納する。
【０２１６】
前記ＭＰＵ１０１に１ページを領域１から領域Ｋに分け、領域１用に空き状態の一つの部分ページバッファを獲得し、本領域１への描画を第１番目のスレーブプロセッサＳＰＵ１（１１１）にページ内モード個別描画タスク処理１と呼ぶ処理を起動することで指示し、以下同様に各領域ｋ用に空き状態の一つの部分ページバッファを獲得し、本領域ｋへの描画を第ｋ番目のスレーブプロセッサＳＰＵｋにページ内モード個別描画タスク処理ｋと呼ぶ処理を起動することで指示する。
【０２１７】
各第ｋ番目のスレーブプロセッサＳＰＵｋの前記ページ内モード個別描画タスク処理ｋにおいては、領域ｋをクリッピングエリアとする描画属性パラメータの設定処理及び描画処理をページ区切りを検出するまで行い、１ページ分の処理が終ると、その旨ＭＰＵに報告した後、本処理を終了する。
【０２１８】
ＭＰＵが各ＳＰＵによる各領域についての前記処理終了報告を受信すると、報告元の各ＳＰＵを解放する。
【０２１９】
ＭＰＵが、各ＳＰＵによる各領域についての前記処理終了報告をすべての領域から受信すると、描画を終了した該１ページについて印刷タスク（３２２１、３２２２、３２２３等のいずれか）を起動する。
【０２２０】
本印刷タスクの処理においては領域１から領域Ｋに対応する部分ページバッファの内容を、１ページを構成するために必要な順序で読出し、プリンタエンジン部１８に出力する。
【０２２１】
各描画済み部分ページバッファからの読出しの終了を、ＭＰＵがプリンタエンジンアダプタ部１、プリンタエンジンアダプタ部２又は各ＳＰＵからの割込み信号により知ると、該ＭＰＵが当該部分ページバッファを解放する。
【０２２２】
また、前記マスタプロセッサによる印刷以外の処理と印刷処理を並行処理し、さらに前記マスタプロセッサによる処理と前記各スレーブプロセッサによる処理を並列処理するようにした。
【０２２３】
次にハードウェア構成を、図１９と図２０を用いて説明する。
【０２２４】
図１９の方式をプロセッサ対応ローカルバス結合方式と呼ぶ。図２から図５の場合と基本的には同じである。違いは、各プロセッサモジュール１００、１１０、１２０等内のローカルメモリ１０３、１１３、１２３等を、前記領域１、領域２、…、領域Ｋに対応させうる部分ページバッファとして利用する点にある。ここで、部分ページバッファと部分を付けて呼んだ理由は、各領域がページの一部分に対応するため、１ページ全体からなるフルページバッファが必ずしも必要とならないためである。
【０２２５】
図１９においては、例えば領域１、領域２、…、領域Ｋを各々同図内の１３Ａ１、１３Ａ２、…、１３Ａ３にて示したローカルメモリ上に配置している。
【０２２６】
また図２０に示すハードウェア構成をとることもできる。本構成を以後、マトリックススイッチ結合方式と呼ぶ。本構成においては、複数個のスレーブプロセッサと複数個の部分ページバッファを、任意のスレーブプロセッサと任意の部分ページバッファをスイッチで結合することにより、該スレーブプロセッサが該部分ページバッファをアクセスし、描画することができるような構成とした。
【０２２７】
図２１に印刷結果の例を示す。１４１、１４２、１４３に示した“ａｂｃ”、“ｄｅｆ”、“ｇｈｉ”といった描画が、各々部分ページバッファ１、２、３上の領域１、２、３になされる。本図において、１４４は領域の区切りを示すための概念上の線であり、印刷結果としては出力されない。
【０２２８】
ページバッファ読出し回路は以下のようにする。
（１）領域１、領域２、…、領域Ｋに対しアドレスの連続した部分ページバッファの組みを割当てれば、従来の読出し回路でよい。
（２）そうでない割当てを許す場合、回路を工夫することが必要である。
つまり１ページを構成する部分ページバッファの組みを登録し、一つの部分ページバッファからの読出しが終わると、次の部分ページバッファの先頭アドレスへラスタ読出しアドレスを切替える機構が必要となる。
【０２２９】
プロセッサ対応ローカルバス設置方式の場合、異なるローカルバス上の部分ページバッファの組みを登録する。
【０２３０】
マトリクススイッチ結合方式の場合、任意の部分ページバッファの組みを登録する。
【０２３１】
部分ページバッファの組みとしては、図２２に示す縦方向組合せをサポートした。図２３の縦横方向組合せもサポートすれば、部分ページバッファをさらに効率良く使うことができる。
【０２３２】
本実施例によれば、１ページからなる文書や、ファーストプリントも高速印刷することができる。
【０２３３】
総ページ数、制約コマンド／無制約コマンドの区別等の文書の内容に応じて、ホストコンピュータや印刷制御装置が（ａ）前記ページ内並列処理方式と（ｂ）ページ別並列処理方式（ページ別に並列処理を行う方式であり、前述の（ｂ−１）空描画分散処理方式、（ｂ−２）紙サイズ確定型空描画集中処理方式、（ｂ−３）紙サイズ仮定型空描画集中処理方式のいずれか）の一方を選択し、切替えて実行することができる。さらに、前記文書内容に応じて、（ｂ）のページ別並列処理方式の中から、適切なもの（（ｂ−１）、（ｂ−２）、（ｂ−３）のいずれか）をホストコンピュータや印刷制御装置が選択し、切替えて実行することもできる。
【０２３４】
次に本発明の第５実施例を説明する。本実施例は、図２６に示す別形式のホストコンピュータ送信コマンドに対応するためのものである。また、この実施例では、後述する用紙に関連する制御情報については別個に設けたロードコマンドで指定するようにし、その他の描画属性パラメータ（文字ピッチ、行ピッチ、イタリック、倍角、アンダーライン等）は描画・印刷内容指定コマンドで指定するようにした。具体的には、フォントロードコマンド２６１２や書式ロードコマンド２６１３や用紙制御情報ロードコマンド２６１４を、第１頁用の描画・印刷内容指定コマンド２６２の前に受信することにより、それぞれホストから受信したフォントと書式と用紙制御用パラメータとを印刷制御装置１１内に予め格納する。それらのフォントと書式と用紙制御用パラメータは、第１頁以後の描画と印刷において利用される。但し、用紙制御用パラメータは後続の任意の頁の前で変更することができる。
【０２３５】
描画・印刷内容指定コマンド２６２，２６３はそのサブコマンドとして、各種描画属性パラメータ設定用サブコマンドと各種描画用サブコマンドの列を含み、１頁分の文字、図形、イメージ等の描画・印刷内容を指定する。本サブコマンドの中に、改頁を指定するサブコマンドがあると、その後のサブコマンド列はないものとみなす。
【０２３６】
また用紙制御情報ロードコマンド２６１４は、そのサブコマンドとして、片面・両面印刷指定、給紙部指定、排紙部指定、紙サイズ指定、印刷部数指定、印字方向（ポートレート／ランドスケープ）指定のためのサブコマンドの列を含み、これらの各種用紙制御用パラメータの指定を行なう。
【０２３７】
図２６の例では、第１頁から第ｎ−１頁において、フォントロードコマンド２６１２と書式ロードコマンド２６１３と用紙制御情報ロードコマンド２６１４でそれぞれロードしたフォントと書式と用紙制御用パラメータを利用し、第ｎ頁以後では新たに指定されたフォントロードコマンド２６４１と書式ロードコマンド２６４２と用紙制御情報ロードコマンド２６４３でそれぞれロードしたフォントと書式と用紙制御用パラメータを利用する。これら３種のロードコマンドのいずれかがない場合も許容される。
【０２３８】
従来形式のコマンドに加えて上記各種ロードコマンドも処理するために、本実施例で採用したソフトウェア構成を、図２７を用いて説明する。本構成では、図６におけるモニタ部３１内のコマンドバッファ部３３に加えて、タスク処理部３２内に編集コマンドバッファ部３３１を設けた。本編集コマンドバッファ部３３１には、一頁ずつに区切り、各頁を制御情報部と、描画、印刷内容指定コマンドとで構成する（図２９参照）。
【０２３９】
また本構成では、図２６のコマンドに対応するため、タスクとして以下のものを新設した。
・コマンドタスク３２０
・印刷管理タスク３２２０
【０２４０】
以上の新設タスクと、描画、印刷関係の各種タスクの機能を図２８に示す。
【０２４１】
（１）コマンドタスク
（１−ａ）コマンドタスクは、コマンド対応に存在する。
（１−ｂ）フォントロードコマンドおよび書式ロードコマンド用のコマンドタスクは、メモリやテーブルに必要なデータを設定する。
（１−ｃ）用紙制御情報ロードコマンド用のコマンドタスクは、本コマンドのサブコマンドとして指定された各種用紙制御用パラメータを、用紙制御用パラメータテーブルに設定する。
（１−ｄ）描画・印刷内容指定コマンド用のコマンドタスクでは、次の処理を行う。
（１−ｄ−１）１頁分の制御情報部を作成する。具体的には、用紙制御パラメータテーブルの内容から本ページ用の用紙制御用パラメータをコピーし、編集コマンドバッファ部３３１の各ページ先頭部の固定エリアに設定する（例えば図２９の３３１１−１）。
（１−ｄ−２）コマンドバッファ部３３から編集コマンドバッファ部３３１へ、描画・印刷内容指定コマンドの内容である各種描画属性パラメータ設定用サブコマンドと各種描画用サブコマンドの列を移す。
（１−ｄ−３）編集コマンドバッファ部３３１に１頁分のデータが揃う度に、描画管理タスク（図２９の３２１０）へその旨、メッセージ（２９Ｍ１）を送信することにより連絡する。
【０２４２】
（２）描画管理タスク
（２−ａ）メッセージまたはＳＰＵからの報告を受け取ることにより起動される。
（２−ｂ）必要に応じて、ＳＰＵおよびページバッファの獲得と解放を行う。
（２−ｃ）メッセージがコマンドタスクからの１頁分のデータが揃ったことを示すもの（２９Ｍ１）でああれば、本ページについてＳＰＵとページバッファとを獲得し、その後、個別描画タスク（３２１１、３２１２…）を起動する。
（２−ｄ）ＳＰＵからの個別描画タスクの描画完了報告を受信した場合、印刷管理タスク３２２０へ起動要求メッセージ（２９Ｍ２）を送付するとともに、編集コマンドバッファ管理テーブル（２９Ｃ）の該当するページについての編集コマンドバッファ状態を“描画完了状態”とする。
（２−ｅ）ページバッファ読みだし終了割込が発生すると、本割込処理は、本ページの解放要求メッセージを本描画管理タスク（３２１０）へ送信する。本メッセージを受けた描画管理タスクは、読出しの終わったページの編集コマンドバッファ状態を空き状態とし、編集コマンドバッファを解放するとともに、読み出しの終わったページバッファ（２９Ｃ１，２９Ｃ２，…，２９Ｃ３のいずれか）を解放する。
【０２４３】
（３）個別描画タスク１〜Ｍ
（３−ａ）描画管理タスクより指示されたページバッファについての描画を行う。
（３−ｂ）１頁分の描画が完了すると、その旨、描画管理タスクへ報告する。
【０２４４】
（４）印刷管理タスク
（４−ａ）描画完了ページバッファについての印刷を行うための印刷タスクを選択し、起動する。
【０２４５】
（５）印刷タスク１〜Ｎ
（５−ａ）１頁分の印刷処理を行う。
【０２４６】
次に本実施例における、ホスト送信コマンドの処理方式を図２９を参照しながら、説明する。
【０２４７】
本方式では、バッファメモリや管理テーブルとして、図２７のものに加え、次のものを設けた。
（１）フォントメモリ（２９Ａ１）：明朝体、ゴシック体等の各種フォントを格納するためのメモリ。ドットフォントとアウトラインフォントを区分して格納。ドットフォントはサイズ別に区分して格納。
（２）フォント属性メモリ（２９Ａ２）：各フォントの属性［フォント名称、ドットフォント／アウトラインフォントの区別、ドットフォントのサイズ等］、及び文字コードと各文字フォントアドレスの対応表等からなる。
書式メモリ（２９Ｂ）：書式を格納するためのメモリ。例えば、書式ＩＤと書式内容（文字、図形、イメージの混在データ）との組として表現する。
（３）編集コマンドバッファ管理テーブル（２９Ｃ）：編集コマンドバッファ部３３１を管理するためのテーブル。各頁対応の編集コマンドバッファ状態（描画待ち、描画中、描画完了、空き）と各頁対応の編集コマンドバッファ読出しポインタ等からなる。
【０２４８】
次に、図２９を参照して、ホスト送信コマンドの処理方式を説明する。
【０２４９】
（１）まず、ホスト通信制御部３１２が、その内部バッファに、図２６に示したいずれかのコマンドを受信する（２９１−１）。
【０２５０】
（２）ＭＰＵにおけるホスト通信制御部割込み処理を契機として、コマンドバッファ部３３にコマンドを格納する（２９１−２）。
【０２５１】
（３）コマンドバッファ部３３へのコマンド格納を契機として、各コマンドに対応するコマンドタスク３２０が起動される（２９１−３）。コマンドタスク３２は、次の処理を行う。
フォントロードコマンドの場合、本コマンドを実行することにより、ホストから受信したフォントデータをフォントメモリ２９Ａ１とフォント属性メモリ２９Ａ２へ設定する。
書式ロードコマンドの場合、本コマンドを実行することにより、ホストから受信した書式データを書式メモリ２９Ｂへ設定する。
用紙制御情報ロードコマンドでは、本コマンドのサブコマンドにより指定された各種用紙制御用パラメータを、それ用の用紙制御用パラメータテーブル（図２９には図示していない）に設定する。
描画・印刷内容指定コマンドの場合、図２８の（１−ｄ）で説明したように、編集コマンドバッファ部３３１に各頁用の制御情報部および描画・印刷内容指定コマンドを格納し、１頁分の情報が揃う度に描画管理タスク３２１０へメッセージ２９Ｍ１を送出する（２９２）。このコマンドタスク３２０による各頁分の制御情報部３３１１の作成は、前述した集中型の空描画方式に相当する。
【０２５２】
（４）編集コマンドバッファ部３３１に１頁分のデータがそろったことを、前述のメッセージ２９Ｍ１の受信により知った描画管理タスク３２１０は、図２８内の描画管理タスクの説明欄の（２−ｂ）から（２−ｃ）に示した処理を行なう。つまり、ＳＰＵとページバッファとを獲得し、編集コマンドバッファ管理テーブル２９Ｃの当該ページの編集コマンドバッファ状態を“描画待ち状態”とした後、獲得したＳＰＵ（ＳＰＵｘと仮定）とページバッファについて個別描画タスクを、前述の実施例の場合と同様にして、起動する。
【０２５３】
（５）起動された個別描画タスク（３２１１，３２１２，３２１３等）は、１頁分の描画を完了すると、描画管理タスク３２１０に対し、終了報告を、前述の実施例の場合と同様にして、行なう。
【０２５４】
なお、描画管理タスク３２１０と個別描画タスク（３２１１，３２１２，３２１３等）間の連絡方法を、次のようにしてもよい。
▲１▼ＭＰＵ上に各ＳＰＵｘとの連絡を行なうためのＳＰＵ管理タスクｘを設ける。つまり、３２１１，３２１２，３２１３等の各個別描画タスクに対応し、ＳＰＵ管理タスク３２１１Ａ，３２１２Ａ，３２１３Ａ等を設ける。そして各ＳＰＵ管理タスクｘが、各ＳＰＵｘとＭＰＵの連絡をカーネル部３１１の一機能であるメッセージ送・受信機能を用いながら、仲介する。
▲２▼描画管理タスク３２１０は、前述の（４）において、ＳＰＵ上の個別描画タスクｘを直接起動せず、ＳＰＵ管理タスクｘを起動する。
▲３▼ＳＰＵ管理タスクｘが、ＳＰＵｘを起動し、本ＳＰＵによる個別描画タスクｘの実行を指示する。
▲４▼ＳＰＵ上の個別描画タスクｘは、１頁分の描画が完了すると、その旨ＭＰＵ上のＳＰＵ管理タスクｘへ、前述の実施例と同様のプロセッサ間の連絡方法を用いて、連絡する。
▲５▼上記連絡を受けたＳＰＵ管理タスクｘは、描画管理タスク３２１０へその旨、前述のメッセージ送信機能を用いて、連絡する。
【０２５５】
（６）描画管理タスク３２１０は、個別描画タスクｘによる１頁分の描画の完了を知ると、印刷管理タスクへ、起動要求メッセージ２９Ｍ２を送信する。
【０２５６】
（７）起動要求メッセージ２９Ｍ２を受信した印刷管理タスクは、描画の完了したページバッファを印刷するための印刷タスクを選択した後、該印刷タスク（３２２１、３２２２、３２２３等のいずれか）を起動する。
【０２５７】
（８）印刷タスクは、描画の完了した該ページバッファについての印刷処理を、前述の実施例の場合と同様にして、行なう。
なお、本印刷管理タスクの機能を、前記描画管理タスクの機能の一部分として実現することもできる。
【０２５８】
本実施例によれば、フォントや書式を予めロードした後、描画、印刷を進める場合についても、マルチプロセッサを活用して、印刷スループットを向上することができる。
【０２５９】
また、本実施例では、コマンドバッファ部３３の内容を、頁毎に区分した編集コマンドバッファ部３３１の内容に変換してから、従来の描画、印刷処理をマルチプロセッサを利用して行なうことができるので、前述の制約コマンドについても、無制約コマンドの場合と同様に、印刷スループットを向上することができる。
【０２６０】
以上の実施例において、マスタプロサッセとスレーブプロセッサには、図３０に示した４項目のエラー、すなわち、ＳＰＵ例外、ＳＰＵ無応答、ＭＰＵ例外、ＭＰＵ無応答の各エラーが発生しうる。各エラー項目について、（ａ）そのエラーを検出するプロセッサ（エラー検出部）と、（ｂ）そのエラー処理名称と、（ｃ）エラー処理の内容は、図に示すとおりである。なお、エラー項目２および４のＳＰＵからＭＰＵへの無応答や、ＭＰＵからＳＰＵへの無応答は、図２４、図２５で説明したプロセッサ間の正常時にある筈の連絡がない場合のエラーである。
【０２６１】
以上のエラー処理を設けることにより、マスタプロサッセやスレーブプロセッサにエラーが発生した場合でも、エラー発生プロセッサを除いた残りのプロセッサを用いて、印刷処理を支障なく続行することができる。
【０２６２】
以上の実施例においては、以下のいずれかの方法を用いることにより、印刷制御装置をホストコンピュータ１０の一機能として実現することもできる。
（１）印刷制御装置をホストコンピュータ内の一つの印刷制御アダプタ又は印刷制御ボードとして実現し、本アダプタ又はボードにマルチプロセッサを実装するとともに、本マルチプロセッサ部に前述のような機能を搭載する。
（２）印刷制御装置をホストコンピュータの主プロセッサによるソフトウェア処理として、実現する。この時、本主プロセッサを、マルチプロセッサとして実現し、マルチプロセッサ部に前述のような機能を搭載する。
【０２６３】
マルチプロセッサ型印刷制御装置においては、マスタプロセッサの制御のもとで、複数個のスレーブプロセッサが描画等の処理を並列処理することができるので、印刷制御装置における処理能力を向上させることができる。特に、空描画を採用したので、複数のプロセッサによる並列描画処理が容易なものとなる。
【０２６４】
空描画集中処理方式（紙サイズ確定型空描画集中処理方式、又は紙サイズ仮定型空描画集中処理方式）を用いた印刷制御装置においては、描画管理タスクが空描画を行ない、複数個の個別描画タスクが別プロセッサ上で実描画を並列実行する。また、実描画により描画の済んだ各ページバッファについての印刷処理を、上記空描画とは並行的に、また実描画とは並列的に実行することができる。
【０２６５】
また空描画分散処理方式においても、複数個の個別描画タスクが別プロセッサ上で実描画を並列実行し、実描画により描画の済んだ各ページバッファについての印刷処理を、前記実描画とは並列的に実行できる。
【０２６６】
従って、空描画集中処理方式及び空描画分散処理方式においては、実描画処理を並列実行しているため、ページ当りの描画時間が、ページ当りのプリンタメカニズム印刷時間を超える場合でも、印刷スループットとしてプリンタ最高性能を達成することができる。また描画と印刷を前記並行処理しているため、各ページの印刷内容が異なる複数ページからなる文書についての連続印刷においても、プリンタ最高性能を達成することができる。また複数個のプロセッサとして汎用プロセッサを用いているため、各ページが文字又は図形のみの文書についても描画性能をおよび印刷性能を向上させることができる。
【０２６７】
また、空描画集中処理方式及び空描画分散処理方式のうち可変長ページバッファ制御のものを用いる場合、紙サイズに応じて必要なサイズのページバッファだけを獲得するため、大きな紙サイズの印刷を少ないページバッファ総容量で実現することができる。さらに、小さな紙サイズの印刷では多数のページバッファを配置できるようになるため、一部描画負荷の大きいページの印刷が混在していても、平均印刷スループットを低下させることなく、プリンタエンジン最高性能での印刷を実現することができるという効果もある。
【０２６８】
また、空描画分散処理方式においては、空描画集中処理方式とは異なり、空描画を個別描画タスクが行なっている。従って、前記空描画の負荷が小さい場合、個別描画タスク数Ｍをスレーブプロセッサ総数Ｋ＋１とし、各個別描画タスクｍを、いずれかのスレーブプロセッサ及びマスタプロセッサに割り当てることで、印刷スループットを空描画集中処理方式より向上させることができる。
【０２６９】
また前記制約コマンドをサポートするとともに、該制約コマンドに対応した印刷制御処理においては前記空描画処理において、明瞭なページ区切りの検出のみを行ない、前記描画属性パラメータの設定処理を行なわないで済む。そのため、制約コマンドと制約コマンドに対応した印刷制御方式を設けることにより、空描画集中処理方式及び空描画分散処理方式における空描画処理を、制約コマンドの場合、簡単化し、高速することができる。
【０２７０】
従って、制約コマンドに対しては、前記空描画集中処理方式と空描画分散処理について示した効果に加え、プロセッサ数にほぼ比例した描画性能の向上効果も得ることができる。
【０２７１】
またページ内並列処理方式の印刷制御装置においては、各１ページについての描画を複数個の領域に分け、各領域について別プロセッサが並列実行する。さらに、描画の済んだ各ページバッファについての印刷処理を、上記描画とは並行的に実行する。
【０２７２】
従って、ページ内並列処理方式の印刷制御装置においては、連続印刷を高速実行するだけでなく、１ページからなる文書や、ファーストプリントも高速印刷することができる。
【０２７３】
また、フォントや書式を予めロードした後、描画、印刷を進める方法も用いることにより、このような場合についてもマルチプロセッサを活用して、印刷スループットを向上することができる。
【０２７４】
コマンドバッファ部の内容を、頁毎に区分した編集コマンドバッファ部の内容に変換してから、通常の描画、印刷処理をマルチプロセッサを利用して行なう方法を用いることにより、制約コマンドについても、無制約コマンドの場合と同様の高い印刷スループットを得る。
【０２７５】
またプロセッサエラー時の処理方式を工夫したことにより、マスタプロセッサやスレーブプロセッサにエラーが発生した場合でも、エラー発生プロセッサを除いた残りのプロセッサを用いて、印刷処理を支障なく続行することができる。
【発明の効果】
本発明によれば、マルチプロセッサ構成の印刷制御装置において、複数頁からなる文書を連続して印刷する場合の印刷性能を向上させることができる。
【図面の簡単な説明】
【図１】本発明の印刷制御装置の一実施例のハードウェア構成を示す図である。
【図２】本発明の印刷制御装置のハードウェアの第１の基本構成を示す図である。
【図３】本発明の印刷制御装置のハードウェアの第２の基本構成を示す図である。
【図４】本発明の印刷制御装置のハードウェアの第３の基本構成を示す図である。
【図５】本発明の印刷制御装置のハードウェアの第４の基本構成を示す図である。
【図６】本発明の印刷制御装置のソフトウェア構成を示す図である。
【図７】本発明の第１実施例における紙サイズ確定型空描画集中処理方式の処理手順を説明するための図である。
【図８】本発明の第１実施例における紙サイズ仮定型空描画集中処理方式の処理手順を説明するための図である。
【図９】本発明の第１実施例におけるにおけるプリンタエンジンアダプタ部２の構成を説明するための図である。
【図１０】本発明の第１実施例におけるにおけるプリンタエンジンアダプタ部２の他の構成を説明するための図である。
【図１１】本発明の第１実施例における印刷制御装置全体の印刷手順を説明するための図である。
【図１２】本発明の第１実施例における印刷制御装置全体の他の印刷手順を説明するための図である。
【図１３】本発明の第１実施例における印刷制御装置全体の更に他の印刷手順を説明するための図である。
【図１４】本発明の第２実施例における空描画分散処理方式の処理手順を説明するための図である。
【図１５】本発明の第３実施例における制約コマンドを説明するための図である。
【図１６】本発明の第３実施例における制約付きＰＤＬを説明するための図である。
【図１７】本発明の第３実施例における制約コマンドと無制約コマンドのホストコンピュータと印刷制御装置による処理を説明するための図である。
【図１８】本発明の第３実施例におけるホストコンピュータ送信コマンドの形式を説明するための図である。
【図１９】本発明の第４実施例におけるＳＰＵ対応ローカルバス結合方式を説明するための図である。
【図２０】本発明の第４実施例におけるマトリックススイッチ結合方式を説明するための図である。
【図２１】本発明の第４実施例における印刷結果の例を示す図である。
【図２２】本発明の第４実施例におけるページの領域の分割方法を説明するための図である。
【図２３】本発明の第４実施例におけるページの領域の他の分割方法を説明するための図である。
【図２４】本発明の実施例におけるＭＰＵとＳＰＵとの間の連絡方法を説明するための図である。
【図２５】本発明の実施例における共有メモリ上のプロセッサ間の連絡情報を説明する為の図である。
【図２６】本発明の第５実施例におけるホストコンピュータ送信コマンドの形式を説明するための図である。
【図２７】本発明の第５実施例における印刷制御装置のソフトウェア構成を示す図である。
【図２８】本発明の第５実施例における、新設タスクと描画・印刷関係タスクの機能を説明するための図である。
【図２９】本発明の第５実施例における、ホスト送信コマンドの処理方式を説明するための図である。
【図３０】本発明におけるプロセッサエラー時の処理仕様を説明するための図である。
【符号の説明】
１０…ホストコンピュータ、１１…印刷制御装置、１２…システムバス、１３…ビデオバス１、１００…マスタプロセッサモジュール、１１０…スレーブプロセッサモジュール、１２０…スレーブプロセッサモジュール、１３０…システムバス調停部、１３３１…ビデオバス１調停部、１４１…共有メモリ、１７１−ｂ…プリンタエンジンアダプタ部２、１９…操作パネル部、１８…プリンタエンジン部、１０１…マスタプロセッサ、１０３…ローカルメモリ、１１１…スレーブプロセッサ１、１１３…ローカルメモリ、１２１…スレーブプロセッサＫ、１２３…ローカルメモリ、３１…モニタ部、３１１…カーネル部、３１２…ホスト通信制御部、３１３…コマンドバッファ制御部、３１４…ファイル制御部、３１５…ページバッファ制御部、３１６…プリンタ制御部、３３…コマンドバッファ部、３４…ページバッファ部、３２…タスク処理部、３２１…描画タスク部、３２１０…描画管理タスク、３２１１…個別描画タスク１、３２１２…個別描画タスク２、３２１３…個別描画タスクＭ、３２２…印刷タスク部、３２２１…印刷タスク１、３２２２…印刷タスク２、３２２３…印刷タスクＮ、３２３…その他のタスクの処理部。
【図１】
0003553985.tif 000003
【図２】
0003553985.tif 000004
【図３】
0003553985.tif 000005
【図４】
0003553985.tif 000006
【図５】
0003553985.tif 000007
【図６】
0003553985.tif 000008
【図７】
0003553985.tif 000009
【図８】
0003553985.tif 000010
【図９】
0003553985.tif 000011
【図１０】
0003553985.tif 000012
【図１１】
0003553985.tif 000013
【図１２】
0003553985.tif 000014
【図１３】
0003553985.tif 000015
【図１４】
0003553985.tif 000016
【図１５】
0003553985.tif 000017
【図１６】
0003553985.tif 000018
【図１７】
0003553985.tif 000019
【図１８】
0003553985.tif 000020
【図１９】
0003553985.tif 000021
【図２０】
0003553985.tif 000022
【図２１】
0003553985.tif 000023
【図２２】
0003553985.tif 000024
【図２３】
0003553985.tif 000025
【図２４】
0003553985.tif 000026
【図２５】
0003553985.tif 000027
【図２６】
0003553985.tif 000028
【図２７】
0003553985.tif 000029
【図２８】
0003553985.tif 000030
【図２９】
0003553985.tif 000031
【図３０】
0003553985.tif 000032