(57)【特許請求の範囲】
【請求項１】
ページ記述の展開処理を複数の処理装置にて行うページ記述展開装置において、
ページ記述を入力してその構文解析を行うとともにページ中に含まれる描画オブジェクトの存在領域の抽出を行うページ記述解析手段と、
前記ページ記述解析手段にて実施した構文解析および描画オブジェクトの存在領域の抽出結果をもとに前記ページ記述に含まれる描画オブジェクトの相互依存関係を判定してページ記述の論理構造を抽出するページ構造抽出手段と、
展開処理を実施する前記処理装置のそれぞれのリソース情報を取得するパラメータ取得手段と、
前記ページ構造抽出手段にて抽出されたページ記述の論理構造から展開するページ記述中の各描画オブジェクトの展開負荷を求め、前記パラメータ取得手段より取得した前記処理装置のリソース情報をもとに、前記展開負荷の大きい描画オブジェクトを有効リソースの多い処理装置へ割り付け、展開負荷の小さい描画オブジェクトを有効リソースの少ない処理装置へ割り付けるプロセス割り付け手段と、
前記プロセス割り付け手段にて割り付けられた各処理装置において生成されたイメージ群を統合してページイメージを生成するページ生成手段と、
を備えていることを特徴とするページ記述展開装置。
【請求項２】
前記パラメータ取得手段は、前記処理装置のリソース情報として処理装置ごとの稼働率、有効メモリ数、有効バス帯域幅を取得し、各々の平均値から算出した偏差値に基づいて有効なリソースを順序付けるようにしたことを特徴とする請求項１記載のページ記述展開装置。
【請求項３】
ページ記述の展開処理を複数の処理装置にて行うページ記述展開方法において、
ページ記述を入力してその構文解析を行い、
ページ中に含まれる描画オブジェクトの存在領域の抽出を行い、
抽出された描画オブジェクトの存在領域から描画オブジェクトの相互依存関係を判定してページ記述の論理構造を抽出し、
展開処理を実施する前記処理装置からそれぞれのリソース情報を取得し、
前記ページ記述の論理構造から展開しようとするページ記述中の各描画オブジェクトの展開負荷を求め、
取得した前記リソース情報をもとにして前記処理装置を有効リソースの多い順にソートし、
前記描画オブジェクトの展開負荷の大きい順に前記ソートした順番で前記処理装置に対して前記描画オブジェクトの処理の割り付けを行い、
割り付けられた各処理装置において生成されたイメージ群を統合してページイメージを生成する、
ことからなるページ記述展開方法。
【請求項４】
前記描画オブジェクトの処理の処理装置への割り付けを行うステップは、前記描画オブジェクトのオブジェクトサイズが同じである場合には、処理負荷の大きいオブジェクトタイプの描画オブジェクトを他のオブジェクトタイプの描画オブジェクトに優先して、より有効リソースの多い処理装置に割り付けるようにしたことを特徴とする請求項３記載のページ記述展開方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はページ記述展開装置に関し、特にページ記述を入力とし、これを複数の処理装置（ＰＥ：Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔｓ）にて展開処理してプリントデータやプレビューデータを生成するようにしたページ記述展開装置に関する。
【０００２】
【従来の技術】
従来、プリントサーバなどにおいて、クライアント計算機からページ記述言語によって記述されたプリントデータを受けると、そのページ記述はページ記述展開装置（デコンポーザ）に入力され、展開処理が行われてページイメージとして出力される。ページ記述の展開処理は一般に負荷が大きいので、展開処理中にメモリ不足になってラスタ処理ができなかったり、出力が極端に遅くなることがある。そこで、ページ記述の展開処理を複数の処理装置が分担して行うことにより、処理時間を短縮することが考えられている。たとえば、特開平７−１０４９８８号公報では、複数の処理装置を有するページ記述展開装置において、入力されたページ記述が含むオペレータ（画像処理手続き）数を処理装置の数で単純に均等割りし、その数を各処理装置への割り付けオペレータ数としている。
【０００３】
【発明が解決しようとする課題】
しかし、プリントサーバは、一つのページ記述が入力されて展開処理を行うことは少なく、複数のページ記述が入力される。このため、展開処理の待ち行列がある場合や、展開処理中のページ記述があって実際に使うことができる資源が減っている場合や、ハードウェアが持つ処理装置ごとの資源が異なっている場合のように、処理装置ごとに稼働率が異なっているので、一律に同数のプロセスを各処理装置へ割り付けると、負荷の大きい処理装置と負荷の小さい処理装置とで処理時間が異なり、総処理時間が最も負荷の大きい処理装置に依存する、という問題点があった。
【０００４】
本発明はこのような点に鑑みてなされたものであり、ページ記述が入力された時点で各処理装置が持つ資源に応じて処理の負荷が処理装置間で均等になるように展開処理の振り分けを行うことができるページ記述展開装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明では上記問題を解決するために、ページ記述の展開処理を複数の処理装置にて行うページ記述展開装置において、ページ記述を入力してその構文解析を行うとともにページ中に含まれる描画オブジェクトの存在領域の抽出を行うページ記述解析手段と、前記ページ記述解析手段にて実施した構文解析および描画オブジェクトの存在領域の抽出結果をもとに前記ページ記述に含まれる描画オブジェクトの相互依存関係を判定してページ記述の論理構造を抽出するページ構造抽出手段と、展開処理を実施する前記処理装置のそれぞれのリソース情報を取得するパラメータ取得手段と、前記ページ構造抽出手段にて抽出されたページ記述の論理構造から展開するページ記述中の各描画オブジェクトの展開負荷を求め、前記パラメータ取得手段より取得した前記処理装置のリソース情報をもとに、前記展開負荷の大きい描画オブジェクトを有効リソースの多い処理装置へ割り付け、展開負荷の小さい描画オブジェクトを有効リソースの少ない処理装置へ割り付けるプロセス割り付け手段と、前記プロセス割り付け手段にて割り付けられた各処理装置において生成されたイメージ群を統合してページイメージを生成するページ生成手段とを備えていることを特徴とするページ記述展開装置が提供される。
【０００６】
上述の構成によれば、ページ記述解析手段が入力されたページ記述を順次解析し、ページ構造抽出手段が描画オブジェクトの依存関係を調べて、ページ記述を構造化する。パラメータ取得手段は描画オブジェクトの展開負荷を求めるとともに、実際に展開処理しようとしている処理装置のリソースに対してどれだけ動的な負荷がかかっているかという有効リソースの情報を取得する。たとえば、有効リソースはハードウェア資源が有する処理装置の稼働率、有効メモリ数、有効バス帯域幅を任意の時間サンプリングした上で各々その平均値を取得して、処理装置当たりの偏差値を算出することにより求められる。プロセス割り付け手段はページ構造抽出手段で求めた展開負荷が各処理装置に対してなるべく対応する有効リソースをもった各処理装置にて処理されるように、各処理装置への描画オブジェクトの処理を配分する。すなわち、サンプリング時間における処理装置当たりの負荷を偏差値で比較して順序付けを行い、展開するページ記述中の各描画オブジェクトの中で展開負荷の大きい描画オブジェクトは有効リソースの多い処理装置へ割り付け、展開負荷の小さい描画オブジェクトは有効リソースの少ない処理装置へ割り付けるようにする。そして、各処理装置においてそれぞれ生成されたイメージ群はページ生成手段にて合成され、一つのページイメージとして出力される。これにより、各処理装置への処理配分をそれらの有効リソースに応じて動的に割り付けることができ、ページ記述展開装置全体の処理効率を向上させることができる。
【０００７】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
図１は本発明のページ記述展開装置の原理構成を示す図である。本発明のページ記述展開装置は、ページ記述１を入力とするページ記述解析手段２と、ページ記述の論理構造を抽出するページ構造抽出手段３と、展開処理を実施する複数の処理装置（ＰＥ）４ａ，４ｂ，４ｃ，４ｄ，・・・と、これらのリソース情報を取得するパラメータ取得手段５と、各処理装置への処理配分を決めるプロセス割り付け手段６と、各処理装置において生成されたイメージからページイメージを出力するページ生成手段７とから構成されている。
【０００８】
ページ記述解析手段２は、入力されたページ記述１を順次解析してその構文解析を行い、ページ中に含まれる描画オブジェクトの存在領域の抽出を行う。ページ構造抽出手段３では、ページ記述解析手段２にて実施した構文解析および描画オブジェクトの存在領域の抽出結果から、ページ記述１に含まれる描画オブジェクトの相互依存関係を判定し、ページ記述１の論理構造を抽出して処理単位への分割を行う。パラメータ取得手段５は、その処理単位の展開負荷を求めるとともに、実際に展開処理しようとしている処理装置４ａ，４ｂ，４ｃ，４ｄ，・・・のリソースに対してどれだけ動的な負荷がかかっているかという情報、すなわち、処理装置の稼働率、有効メモリ数、有効バス帯域幅を有効リソースの情報として取得する。有効リソースの情報は任意の時間サンプリングした上で各々その平均値を取得して、処理装置当たりの偏差値を算出する。プロセス割り付け手段６は、パラメータ取得手段５より取得した処理単位の描画オブジェクトの展開負荷と、処理装置４ａ，４ｂ，４ｃ，４ｄ，・・・の有効リソース情報とをもとに、展開負荷の大きい描画オブジェクトを有効リソースの多い処理装置へ割り付け、展開負荷の小さい描画オブジェクトを有効リソースの少ない処理装置へ割り付ける処理をする。処理装置４ａ，４ｂ，４ｃ，４ｄ，・・・は、プロセス割り付け手段６にて配分された描画オブジェクトの描画処理を行い、それぞれの処理装置４ａ，４ｂ，４ｃ，４ｄ，・・・において生成されたイメージは、ページ生成手段７にて統合され、ページイメージを生成する。
【０００９】
次に、本発明の実施の形態を、ネットワークにより結合されたプリントサーバに適用した場合を例に説明する。
図２はプリントサーバの構成例を示す図である。この図において、複数のクライアント計算機１１，１２，・・・がネットワーク２０に接続されており、このネットワーク２０にはプリントサーバ３０が接続されている。プリントサーバ３０は、ネットワーク２０に接続されてページ記述を入力する命令解析部３１と、この命令解析部３１の出力を受けるように接続されたページ記述構造化部３２と、このページ記述構造化部３２の出力の一部を受けるように接続されたリソース情報取得部３３と、ページ記述構造化部３２の出力の一部を受けるように接続されたプロセス割り付け部３４と、複数の描画処理部３５ａ，３５ｂ，３５ｃ，３５ｄ，・・・と、バストラフィック監視部３６と、画像メモリ３７と、プリンタインタフェース３８とから構成され、リソース情報取得部３３、プロセス割り付け部３４、複数の描画処理部３５ａ，３５ｂ，・・・、バストラフィック監視部３６、画像メモリ３７、およびプリンタインタフェース３８はバス３９によって接続されている。プリンタインタフェース３８はプリントエンジン４０に接続されている。さらに、描画処理部３５ａは、プロセッサ（ＣＰＵ）３５１と、メモリ３５２と、メモリ監視部３５３とから構成されており、他の描画処理部３５ｂ，３５ｃ，３５ｄ，・・・についてもそれぞれ同じ構成であり、各々の描画処理部ごとにプロセッサに対応するローカルなメモリを有している。
【００１０】
あるクライアント計算機からプリントサーバ３０がページ記述言語で記述されたページ記述を受けると、命令解析部３１にて構文解析が行われ、さらに、ページの中に含まれるオブジェクトごとの存在領域の抽出が行われる。ページ記述構造化部３２では、ページ記述が構造化されて、領域が独立している、すなわち、存在領域に重なりのないオブジェクトに分割される。リソース情報取得部３３は、そのオブジェクトの展開処理に必要と思われる展開負荷、すなわち、ページ記述構造化部３２で得られたオブジェクトのオブジェクトサイズを求め、ページ生成処理を実行するために有効な資源に関するリソース情報を取得する。すると、オブジェクトサイズとリソース情報をもとに得られた有効リソースとから、プロセス割り付け部３４は描画処理部３５ａ，３５ｂ，３５ｃ，３５ｄ，・・・へのオブジェクトの割り付けを行う。すなわち、プロセス割り付け部３４では、展開負荷の大きい描画オブジェクトが有効リソースの多い処理装置へ割り付けられ、展開負荷の小さい描画オブジェクトが有効リソースの少ない処理装置へ割り付けられる。各描画処理部３５ａ，３５ｂ，３５ｃ，３５ｄ，・・・において生成された部分的なページイメージは、画像メモリ３７に転送されて最終的なページイメージに合成され、プリンタインタフェース３８を介してプリントエンジン４０より出力される。
【００１１】
バストラフィック監視部３６は描画処理部相互のバストラフィックを監視して、そのトラフィックを指定された時間間隔でサンプリングし、リソース情報取得部３３に対して有効バス帯域幅の情報を提供する。また、各描画処理部内のプロセッサ３５１は、ローカルなメモリ３５２に対するアクセスとバス３９を介して他の描画処理部に対するアクセスとを行う。メモリ監視部３５３は、メモリ３５２へのアクセス頻度を監視して、各描画処理部内でメモリ３５２の空き状態を指定された時間調べて単位時間当たりの平均空きメモリ容量を描画処理部ごとに取得し、リソース情報の一つとしてリソース情報取得部３３に提供する。
【００１２】
以下、ページ記述展開装置を構成する各構成要素について説明する。まず、命令解析部３１に入力されるページ記述の例を示す。
図３はページ記述の一例を示す図である。図示のページ記述５０によれば、最初の「Ｐａｇｅｓｉｚｅ」において、描画するページのサイズを１００×１００と指定している。次に、「ｗｉｄｔｈ」により、以降に描画する線の線幅を「５」に指定している。「ｍｏｖｅ」は描画開始座標点を指定しており、ｘ−ｙ座標で（４０，１０）の位置から描画することを示している。「ｌｉｎｅ」は「ｍｏｖｅ」で指定した描画開始点から描画した線分の終了点を指定している。次に、「ｗｉｄｔｈ」で線幅を別の値に変更して、「ｍｏｖｅ」で指定した点を描画開始点として「ｌｉｎｅ」で順次線分を描画する。こうしてすべての描画オペレータが実行されると一つのページイメージが生成される。
【００１３】
図４はページ記述に従って生成されたページイメージの例を示す図である。図示のページイメージ６０は、その外枠がページ記述５０の「Ｐａｇｅｓｉｚｅ」によって指定されたサイズを示しており、その中に、描画オペレータが実行されることにより、直線のオブジェクト６１、四角のオブジェクト６２、三角のオブジェクト６３とがその位置に生成されることを示している。
【００１４】
図３に示すようなページ記述５０を入力する命令解析部３１は、そのページ記述５０の構文解析を行い、内部データ構造を生成する。なお、構文解析の方式は公知であり、ここではその説明は割愛する。入力されたページ記述５０を解析して生成された内部構造の一例を図５に示す。
【００１５】
図５はページ記述から生成された内部データ構造の一例を示す図である。命令解析部３１において、ページ記述５０が構文解析されて内部データ構造が生成されるが、その内部データ構造は、オペレータのリスト７１，７２，７３とオペランドのリスト８１，８２，８３とから構成される。各オペレータのリストは対応するオペランドのリストを参照し、かつ、次のオペレータのリストを参照するようにしている。図中、矢印は参照先をそれぞれ表している。たとえば、「ｗｉｄｔｈ」なるオペレータのリスト７１は対応するオペランドのリスト８１を参照し、次のオペレータのリスト７２を参照している。
【００１６】
また、命令解析部３１では、ページ中に含むオブジェクトごとの存在領域を判定するための判定関数を生成する。
図６は存在領域判定用の判定関数を示す図である。図示の例によれば、ページ記述を解析して内部構造を生成する過程で、オブジェクト６２に対してその領域を判定する判定関数ｆ１（ｘ，ｙ）が生成され、オブジェクト６１に対してその領域を判定する判定関数ｆ２（ｘ，ｙ）が生成され、そしてオブジェクト６３に対してその領域を判定する判定関数ｆ３（ｘ，ｙ）が生成される。これらの判定関数ｆ１、ｆ２、ｆ３は、任意の点ｘ，ｙを与えたとき、その点を内部に包含するかどうかの判定を行う。たとえば、ｆ１に（１６，２１）を与えたとき、ｆ１（１６，２１）は真（ＴＲＵＥ）を返し、ｆ１（１０，１０）では偽（ＦＡＬＳＥ）を返す。
【００１７】
ページ記述構造化部３２では、命令解析部３１が生成する図５に示したページの内部構造と図６に示したオブジェクトの領域判定関数とを基にしてページ記述を構造化する。
【００１８】
図７は命令解析部で生成された内部構造表現をページ記述構造化部で構造化した例を示す図である。図６の判定関数によれば、判定関数ｆ１は判定関数ｆ２を包含しているので、これを「オブジェクト１」９１とし、判定関数ｆ３は領域が独立しているので「オブジェクト２」９２とする。「オブジェクト１」９１は「オブジェクト１−１」９３および「オブジェクト１−２」９４からなり、それぞれのオブジェクトは図５に示したページの内部構造表現に従ってオペレータリストおよびオペランドリストにより構造化される。「オブジェクト２」９２は一つのオブジェクトからなっているので、そのオブジェクトについて内部構造表現に従ったページ記述の構造化が行われる。
【００１９】
次に、このページ記述の構造化に関するページ構造の抽出処理の流れについて以下に説明する。
図８はページ構造抽出処理の流れを示すフローチャートである。最初に、命令解析部３１において生成された内部構造のオペレータリストからベースデータをフェッチする（ステップＳ１）。ここで、ベースデータがなく、リストが終了であるかどうかが判定され（ステップＳ２）、リストが終了であれば、このページ構造抽出処理は終了する。リストが終了でなければ、フェッチしたデータがすでに領域判定されているかどうかをフラグで判定する（ステップＳ３）。データがすでに領域判定されていれば、ステップＳ１に戻って次のベースデータをフェッチする。もし、未判定であれば、判定領域を該ベースデータの領域関数で更新し、同時に新規領域別リストを追加する（ステップＳ４）。次に、該データのサイズおよびオブジェクトタイプをチェックして領域フィールドへ記録し、チェックフラグを立てる（ステップＳ５）。
【００２０】
次に、オペレータリストから現在のベースデータの次のデータを検査データとしてフェッチする（ステップＳ６）。ここで、リストが終了であるかどうかが判定され（ステップＳ７）、リストが終了であって検査データがなければ、ステップＳ１に戻って次のベースデータをフェッチする。リストが終了でなければ、先にフェッチした検査データがすでに領域判定済みかどうかをチェックフラグで判定する（ステップＳ８）。ここで、チェックフラグが立っていれば、ステップＳ６に戻って次の検査データをフェッチする。もし、チェックフラグが立っていなければ、フェッチした検査データが判定領域に含まれるか否かが判定される（ステップＳ９）。ここで、検査データが判定領域に含まれなければ、ステップＳ６に戻って次の検査データをフェッチする。もし、検査データが判定領域に含まれるならば、該データを領域別リストへ登録して該検査データのチェックフラグを立てる（ステップＳ１０）。
【００２１】
この処理の結果、図７に示す構造化されたページデータが生成される。この実施の形態では、データは、描画領域ごとにまとめて領域ごとのリスト構造と各々の領域が含むオブジェクトのリスト構造と各オブジェクトの実体とからなる３階層のリスト構造にしてある。オブジェクトの属性フィールドにはオブジェクトのタイプ、サイズをストアしている。
【００２２】
リソース情報取得部３３は、ページ生成処理を実行するために有効な資源に関する情報を取得する。この実施の形態では、有効な資源は、任意の時間サンプリングをしたＣＰＵの稼働率と平均有効メモリ量と平均有効バス帯域幅とする。
【００２３】
図９はリソース情報取得部が取得した情報の一例を示す図である。リソース情報取得部３３が取得した図示の情報１００は、ページ記述の展開処理に利用することができる描画処理部３５ａ，３５ｂ，３５ｃ，３５ｄ，・・・の数（ＰＥ数）が８つであり、サンプリング時間が１０ミリ秒の場合を示しており、サンプリング時間中の各描画処理部当たりの、負荷状況、有効メモリ（ＭＢ）、有効バス帯域幅（ＭＢ／秒）のデータを含んでいる。なお、この例ではＰＥ数を８、サンプリング時間を１０ミリ秒としているが、これは言うまでもなく、任意のＰＥ数、任意の時間でサンプリングすることができる。
【００２４】
リソース情報取得部３３では、これらの情報から、描画処理部当たりの処理負荷を計算する。具体的には、
（１）すべての描画処理部の非負荷（すなわち、１から負荷を差し引いた値）、有効メモリ、有効バス帯域幅から平均値を計算し、
（２）各描画処理部ごとに、描画処理部の非負荷、有効メモリ、有効バス帯域幅の偏差値を求め、
（３）描画処理部ごとに（２）で計算した偏差値の平均値を計算し、
（４）（３）で計算した平均値でソートする。
【００２５】
図１０はリソース情報取得部で計算された描画処理部当たりの処理負荷の例を示す図である。図示の計算結果１１０によれば、各描画処理部に対して、描画処理部当たりの非負荷、有効メモリ、有効バス帯域幅の偏差値がそれぞれ求められ、そして、有効なリソースの偏差値の平均を計算した結果が求められている。この計算結果１１０から、有効なリソースが豊富な描画処理部は、描画処理部の識別番号（ＰＥｉｄ）で６，７，８，５，１，２，４，３の順序であることがわかる。
【００２６】
次に、プロセス割り付け部３４は、ページ記述構造化部３２とリソース情報取得部３３における処理結果から、描画処理部へ描画オペレータ列からなるプロセスを割り付ける。プロセス割り付け部３４は、ページ記述構造化部３２にて生成された図７に示す構造化リストからオブジェクトの属性フィールドを読み出して、オブジェクトサイズが大きい順序でオブジェクトを有効リソースが豊富な描画処理部へ割り付けるような処理を行う。このとき、オブジェクトタイプがラスタイメージの場合には、オブジェクトサイズが同じである他のタイプの画像オブジェクトよりも処理負荷が大きいので、同一のサイズで異なるタイプの画像オブジェクトに対して優先的にリソースが豊富な描画処理部へ割り付けるようにしている。
【００２７】
図１１はプロセス割り付け部でのプロセス割り付けの一例を示す図である。この図において、その左側には、ページ記述構造化部３２から得られたオブジェクトごとのオブジェクトタイプおよびオブジェクトサイズの表１２１が示されており、右側にはリソース情報取得部３３から得られた描画処理部ごとの有効リソースの表１２２が示されている。これらの表の間を結ぶ矢印は、プロセス割り付け部３４において割り付けられたオブジェクトの割り付け先を示している。
【００２８】
プロセス割り付け部３４では、まず、オブジェクトサイズが最も大きいオブジェクトを有効リソースが最も豊富な描画処理部へ割り付ける処理を行う。この例では、オブジェクトサイズが最も大きいオブジェクトは、オブジェクトの識別番号（ｉｄ）が１および８で、オブジェクトサイズが１．２ＭＢと同じである。この場合は、オブジェクトタイプを参照し、オブジェクトタイプがラスタイメージであるときには、他のタイプのオブジェクトに優先してリソースが豊富な描画処理部へ割り付けるので、ｉｄ＝８のオブジェクトが有効リソースの最も豊富なＰＥｉｄ＝６の描画処理部へ割り付けられる。その次に、ｉｄ＝１のオブジェクトが２番目に有効リソースの豊富なＰＥｉｄ＝７の描画処理部へ割り付けられる。以降は、オブジェクトサイズの大きい順にオブジェクトが有効リソースの豊富な描画処理部へ順に割り付けられていく。
【００２９】
このようにしてプロセス割り付け部３４で割り付けられたオブジェクトは、割り付け先の描画処理部にてそれぞれ部分的なページイメージの生成が行われ、最終的に、画像メモリ３７に集められて全体的なページイメージの生成処理が行われる。
【００３０】
図１２はページイメージ生成処理の概念を示す図である。プロセス割り付け部３４にて処理が割り付けられたそれぞれの描画処理部３５ａ，３５ｂ，３５ｃ，３５ｄ，３５ｅ，３５ｆ，３５ｇ，３５ｈは、割り付けられたオブジェクトからその描画オペレータ列を実行して描画処理部ごとに部分的なページイメージを生成する。このようにして、描画処理部ごとに生成された部分的なページイメージは画像メモリ３７に転送され、ここで統合されて最終的なページイメージが生成される。画像メモリ３７にて統合されたページイメージは、プリンタインタフェース３８を介してプリントエンジン４０へ転送される。
【００３１】
以上は、図２に示したように、各描画処理部がそれぞれローカルなメモリを有する分散メモリ型マルチプロセッサを備えたプリントサーバの場合について示したが、次に、描画処理部の別な構成を例示する。
【００３２】
図１３はプリントサーバの描画処理部の別な構成例を示す図である。この図では、プリントサーバの中でパラメータ取得に関する部分の構成だけを示し、図２に示した構成要素と同じ要素については同じ符号を付してある。
【００３３】
バス３９には、バストラフィック監視部３６と、メインメモリ１２１と、メモリ監視部１２２と、複数の描画処理部１２３，１２４，・・・とが接続され、これにより、共有記憶型マルチプロセッサを構成している。各描画処理部１２３，１２４，・・・はそれぞれ同じ構成を有し、たとえば描画処理部１２３においては、プロセッサ（ＣＰＵ）１２３ａと、キャッシュメモリ１２３ｂとから構成されている。
【００３４】
バストラフィック監視部３６は描画処理部相互のバストラフィックを監視する。メモリ監視部１２２は描画処理部とメインメモリと間のアクセス頻度を監視する。メインメモリ１２１は各描画処理部１２３，１２４，・・・のプロセッサ（ＣＰＵ）に共有され、バスを介してアクセスされる。描画処理部１２３，１２４，・・・ごとのキャッシュメモリ（特にスヌープキャッシュと呼ぶ）１２３ｂはメインメモリ１２１の内容の一部をコピーしたり描画処理部内のデータを保持する。
【００３５】
バストラフィック監視部３６は描画処理部間を結合するバス３９を監視してそのトラフィックを指定された時間でサンプリングする。メモリ監視部１２２はメインメモリ１２１の空き状態を指定された時間調べて単位時間当たりの平均空きメモリ容量を取得する。描画処理部ごとのキャッシュはメモリ監視部１２２では監視しない。これはキャッシュメモリがメインメモリ１２１に比べて高速に動作するため、メインメモリ１２１と同一のサンプリング時間ではキャッシュメモリの空き容量を正確に把握できないためである。各描画処理部１２３，１２４，・・・のプロセッサ（ＣＰＵ）稼働率、メモリ監視部１２２にて監視された有効メモリ量、バストラフィック監視部３６にて監視されたバス帯域幅の各情報は、リソース情報取得部３３へ与えられる。
【００３６】
【発明の効果】
以上説明したように本発明では、複数の処理装置を有するページ記述展開装置において、各処理装置への処理配分を処理装置の有効リソース量に応じて動的に割り付けることで、処理装置上のリソースを効率的に利用することができる。これによって、展開処理の待ち行列がある場合や、展開処理中のページ記述がある場合、ハードウェアが含む処理装置ごとの資源が異なる場合のように処理装置ごとの稼働率が異なる場合でも、各処理装置に対して均等な負荷割合で処理を割り付けることができるので、負荷割合を考慮せずに割り付けた場合に比して、ページイメージ生成時間がワーストケースの処理装置（リソースに対して割り当て処理量が多い処理装置）に依存することがない。また、展開処理全体の時間見積もりも任意の一処理装置の処理量に割り付けオーバーヘッドを加えた時間で見積もることができる。
【図面の簡単な説明】
【図１】本発明のページ記述展開装置の原理構成を示す図である。
【図２】プリントサーバの構成例を示す図である。
【図３】ページ記述の一例を示す図である。
【図４】ページ記述に従って生成されたページイメージの例を示す図である。
【図５】ページ記述から生成された内部データ構造の一例を示す図である。
【図６】存在領域判定用の判定関数を示す図である。
【図７】命令解析部で生成された内部構造表現をページ記述構造化部で構造化した例を示す図である。
【図８】ページ構造抽出処理の流れを示すフローチャートである。
【図９】リソース情報取得部が取得した情報の一例を示す図である。
【図１０】リソース情報取得部で計算された描画処理部当たりの処理負荷の例を示す図である。
【図１１】プロセス割り付け部でのプロセス割り付けの一例を示す図である。
【図１２】ページイメージ生成処理の概念を示す図である。
【図１３】プリントサーバの描画処理部の別な構成例を示す図である。
【符号の説明】
１  ページ記述
２  ページ記述解析手段
３  ページ構造抽出手段
４ａ，４ｂ，４ｃ，４ｄ，・・・  処理装置（ＰＥ）
５  パラメータ取得手段
６  プロセス割り付け手段
７  ページ生成手段
１１，１２，・・・  クライアント計算機
２０  ネットワーク
３０  プリントサーバ
３１  命令解析部
３２  ページ記述構造化部
３３  リソース情報取得部
３４  プロセス割り付け部
３５ａ，３５ｂ，３５ｃ，３５ｄ，・・・  描画処理部
３６  バストラフィック監視部
３７  画像メモリ
３８  プリンタインタフェース
３９  バス
４０  プリントエンジン
３５１  プロセッサ（ＣＰＵ）
３５２  メモリ
３５３  メモリ監視部
【図１】
0003570100.tif 000002
【図２】
0003570100.tif 000003
【図３】
0003570100.tif 000004
【図４】
0003570100.tif 000005
【図５】
0003570100.tif 000006
【図６】
0003570100.tif 000007
【図７】
0003570100.tif 000008
【図８】
0003570100.tif 000009
【図９】
0003570100.tif 000010
【図１０】
0003570100.tif 000011
【図１１】
0003570100.tif 000012
【図１２】
0003570100.tif 000013
【図１３】
0003570100.tif 000014