JP2013233759A - 情報処理装置、情報処理方法、情報処理システム、プログラム - Google Patents

情報処理装置、情報処理方法、情報処理システム、プログラム Download PDF

Info

Publication number
JP2013233759A
JP2013233759A JP2012108684A JP2012108684A JP2013233759A JP 2013233759 A JP2013233759 A JP 2013233759A JP 2012108684 A JP2012108684 A JP 2012108684A JP 2012108684 A JP2012108684 A JP 2012108684A JP 2013233759 A JP2013233759 A JP 2013233759A
Authority
JP
Japan
Prior art keywords
processing
data
holding
unit
resources
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.)
Granted
Application number
JP2012108684A
Other languages
English (en)
Other versions
JP6341628B2 (ja
Inventor
Tomohiro Sato
智大 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012108684A priority Critical patent/JP6341628B2/ja
Priority to US13/888,234 priority patent/US8873076B2/en
Publication of JP2013233759A publication Critical patent/JP2013233759A/ja
Application granted granted Critical
Publication of JP6341628B2 publication Critical patent/JP6341628B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1822Analysing the received data before processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • G06K15/1806Receiving job control commands
    • G06K15/1807Receiving job control commands relating to the print image preparation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1215Improving printing performance achieving increased printing speed, i.e. reducing the time between printing start and printing end
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/124Parallel printing or parallel ripping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1245Job translation or job parsing, e.g. page banding by conversion to intermediate or common format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1282High volume printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1817Buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1849Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1857Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1275Print workflow management, e.g. defining or changing a workflow, cross publishing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)

Abstract

【課題】 中間データを生成する処理手段と、中間データから印刷データを生成する処理手段との間で複数のプロセッサコアを融通する場合、印刷データを印刷する印刷部において、印刷データの不足に起因するロスタイムが生じないように、2つの処理手段による処理状況に応じて適応的にプロセッサコアの割り当てを行うことが求められる。
【解決手段】 中間データの保持されている量に基づいて中間データを生成する処理手段へのプロセッサコアの割り当てを制御し、また、印刷データの保持されている量に基づいて中間データから印刷データを生成する処理手段へのプロセッサコアの割り当てを制御する。
【選択図】 図2

Description

本発明は、処理リソースを管理する情報処理装置、情報処理方法、プログラムに関する。
従来、一方の処理部による処理済みデータに対して他方の処理部が処理を実行する、パイプライン構造の印刷システムが存在する。
特許文献1は、複数のCPUコアを用いて中間データ生成部および描画部を起動して、中間データ生成部がPDLデータから中間データを生成し、生成された中間データを描画部が描画して出力する印刷システムを開示する。この印刷システムは、生成された中間データを一時的に保持(スプール)し、スプールされた中間データの量が十分にある場合に描画部による描画処理を行う。そしてこの印刷システムは、描画処理後の画像データを印刷装置によって印刷する。
特開2011−167857号公報
しかしながら、特許文献1の開示する印刷システムでは、描画部による描画処理の実行は、スプールされた中間データの量に基づいて制御され、描画処理後の画像データの過多に基づいて制御されてはいない。そのため、特許文献1の開示する印刷システムにおいて例えば複数枚数の連続印刷を行う場合、描画処理が遅延すると、印刷装置への描画処理後の画像データの供給が遅延する。その結果、印刷が行われないロスタイムが生じる。
本発明の情報処理システムは、印刷手段が印刷する印刷データをPDLデータから生成するための複数のプロセッサコアを有する情報処理システムであって、前記複数のプロセッサコアのうちの一部のプロセッサコアを用いて前記PDLデータを処理することで中間データを生成し、中間データ保持手段に保持させる第1の処理手段と、前記複数のプロセッサコアのうちの前記一部のプロセッサコアを除くプロセッサコアを用いて前記中間データ保持手段に保持された中間データを処理することで印刷データを生成し、印刷データ保持手段に保持させる第2の処理手段と、前記第1の処理手段の用いるプロセッサコアの数を、前記中間データ保持手段に保持される中間データの量に基づいて増減させ、前記第2の処理手段の用いるプロセッサコアの数を、前記印刷データ保持手段に保持される印刷データの量に基づいて増減させる制御手段と、を有することを特徴とする。
本発明は、処理手段による処理済みデータを保持する保持手段を設けることで、処理手段の処理時間のばらつきによる影響を吸収することができる。また、この保持手段に保持されているデータ量に基づいて処理手段へ割り当てるコア数(リソース量)を制御することで、処理手段の処理速度を調整して安定した保持手段へのデータ供給を行うことができる。その結果、処理済みデータをさらに処理する後段の手段が前段からのデータ出力を待つために生じるロスタイムを削減することができる。
実施例1の印刷システムのハードウェアの構成図 実施例1の印刷システムのブロック図 実施例1の印刷システムの動作状態を表す図 実施例1の印刷システムの動作状態の遷移を表す図 実施例1の保持プロセスに蓄積されているページ数、閾値、動作タイミングの関係を示す図 実施例1の印刷システムが実行する処理全体のフローチャート 処理開始の判定処理のフローチャート 読込プロセスの処理速度の変更処理のフローチャート 閾値の更新処理のフローチャート 第N処理プロセスの処理速度の変更処理のフローチャート 印刷システムの保持プロセスに保持されるデータのページ数を取得する方式を示すブロック図 処理単位データのデータ粒度の一例を示す図 実施例2の印刷システムが動作するブレードサーバの構成図の一例を示す図
(実施例1)
本実施例の情報処理システムは、読み込まれたPDL(Page Description Language)データから印刷装置が印刷できるデータフォーマットである印刷データへの変換処理を行いながら、同時に印刷を行う印刷システムである。はじめにデータ変換処理の処理速度と印刷速度の関係を説明する。
高速印刷機の内部では一定速度で高速に紙送りがされているため、それに伴って印刷データを遅延なく供給する必要がある。一方でPDLデータ投入から速やかに印刷を開始することで印刷完了までの時間を短縮することが望まれる。
印刷機の印刷速度が一定なのに対し、データ変換処理の速度は与えられるジョブに含まれるPDLデータの内容によって変動しやすい。PDLデータは、複数の描画命令や画像の組み合わせで構成されており、それらの数や複雑さによって必要な処理時間が異なってくる。ここで印刷されるべき時点で印刷データの変換処理が完了できなかった場合は、例えば印刷中のロスタイムが生じる等、生産性が低下する。これを防ぐためには、印刷機の速度以上のデータ変換処理の速度が要求される。
また、並列処理を行う場合は処理単位データごとの処理時間が異なると、処理を開始した時のデータの順序と処理を終了した時のデータの順序が一致するとは限らない。例えばNページ目、N+1ページ目の順序でデータ変換処理すると、N+1ページ目、Nページ目の順序で印刷データが生成される場合がある。印刷データの生成された順序で印刷を行うと印刷順序の逆転が発生するため、保持部に一定量の印刷データを蓄積し、順序の若いデータから出力することで印刷順序の逆転を防いでいる。保持部に一定量の印刷データを蓄積することには、データ変換処理の速度が変動したときの影響を吸収する働きもある。
保持部に一定量のデータを蓄積するためには、保持部の印刷データの入出力量が影響するので、システム全体での処理速度の調整が必要になる。その処理速度の調整の手段として、後述の並列して動作する第1処理部と第2処理部の動作する数を増減させている。
以下、図面を参照して本発明を実施するための形態について説明する。
本実施例のPDLデータから印刷データに変換しながら印刷する印刷システムは、例えば図1のようにコンピュータ100、110で構成される。コンピュータ100は、複数のCPU(Central Processing Unit)101、103と、RAM(Random Access Memory)105と、HDD(Hard Disk Drive)106と、NIC(Network Interface Card)107とを備える。これらは、システムバス108を介して互いに通信可能に接続された構成としている。CPU101、103は、RAM105またはHDD106に記憶されたプログラムを実行することで、システムバス108に接続された各構成部を総括的に制御する。すなわち、CPU101、103は、前述したような動作を行うための処理プログラムを、HDD106から読み出して実行することで、本実施形態での動作を実現するための制御を行う。RAM105は、CPU101、103の主メモリまたはワークエリア等として機能する。NIC107と117は、LAN(Local Area Network)121を介して互いに通信可能に接続された構成としており、不図示のホストコンピュータからPDLデータを受信する。コンピュータ110も、コンピュータ100と同様の構成と動作である。
ここで、本実施例のCPU101は複数のプロセッサコア102を持っているマルチコアプロセッサであり、処理プログラムを実行することで実現される各プロセス(動作中のプログラムの実行単位)を動作させる。CPU103、111、113も同様である。更に、プロセスの動作は1つ以上のスレッド(プロセス中の処理の実行単位)が動作することで構成されている。なお、各プロセスは処理手段と言い換えることができる。例えば制御プロセス210は制御手段と言い換えることができる。同様に読込プロセス、第1処理プロセス203、第2処理プロセス206は、読込手段、第1処理手段、第2処理手段と言い換えることができる。また同様に第1保持プロセス、第2保持プロセス、第3保持プロセスは、第1保持手段、第2保持手段、第3保持手段と言い換えることができる。また、プロセッサコアのことを以下では単にコアあるいはリソースと呼ぶ。また、以下、図3を用いて行う説明からもわかるように、コンピュータ100および110の有するCPU101、103、111、113の備える複数のプロセッサコアは、CPU順に通し番号(1〜20)が振られることでそれぞれ識別される。通し番号の振り分けの一例として、本実施例では、CPU101の備えるプロセッサコア、CPU103の備えるプロセッサコア、CPU111の備えるプロセッサコア、CPU113の備えるプロセッサコアの順番で通し番号が割り振られる。
スレッドは、複数あるコアの内1つを使用して処理を行う。複数のプロセスが同時に異なる処理を行うこと、および複数のスレッドが同時に異なる処理を行うことを並列処理と呼ぶ。スレッドのコア割り当て、つまりスレッドがどのコアを使用して処理を行うかの決定は、通常はOS(Operating System)が管理し、コンピュータ内での他のプロセスやスレッドによるコアの使用状況により自動的に行われる。
OSによる管理ではスレッドと使用するコアの対応が多対1となることがある。このとき、複数のスレッドを1つのコア上で動作させるために、動作しているスレッドのメモリ領域とキャッシュを他のメモリ領域に退避させ、以前に退避したスレッドのメモリ領域とキャッシュを元のメモリ領域とキャッシュに復帰させる動作を繰り返し行う。つまり、複数のスレッドの処理を時間軸で分割し短時間に切り替える事で、並行処理(疑似的な並列処理)を行う事になる。
それに対し、処理プログラムの管理で、スレッドと使用するコアの対応が1対1となる並列処理の場合は、複数のスレッドが1つのコア上で動作する並行処理と違い、メモリ領域とキャッシュの退避と復帰の動作が必要無くなるため、処理効率が良い。
制御プロセス210による管理によって、1つのスレッドに対して明示的に1つのアフィニティマスク(動作中のスレッドとそのスレッドの処理において使用されるコアとの対応関係表)が設定される。これにより、スレッドが使用できるコアをアフィニティマスクで指定した1つ以上のコアだけに限定できる。本実施例ではアフィニティマスクによって使用できるコアをただ1つに設定することで、スレッドと使用するコアを1対1に対応付けることができる。つまり、複数動作するスレッドに対してそれぞれのアフィニティマスクが設定されることによって、スレッドの使用するコア同士が重複しないように制御される。
本実施例では、「スレッドにコアを割り当てること」を、「1つのスレッドが特定の1コアを使用して動作し、かつ、他スレッドが当該1コアを使用して動作しないように、制御プロセス210がアフィニティマスクを設定すること」と定義する。また、各プロセスにコアを割り当てることを、当該プロセスに含まれる1つ以上のスレッドに当該コアを割り当てることと定義する。プロセスに割り当てるコア数と当該プロセスに含まれるスレッド数は同じである。例えば、プロセスに2コアが割り当てられる場合、そのプロセス内部では2つのスレッドが動作し、2つのスレッドにはそれぞれのアフィニティマスクによって、2つのコアが1コアずつ重複せずに割り当てられる。
図2に、パイプライン構造で動作する印刷システムのシステムブロック図を示す。本実施例の印刷システムは、CPU101、103がHDD106に記憶される処理プログラムを実行することで実現され、次の各プロセス(各処理部)を有する。読込プロセス201(読込部)201、第1保持プロセス202(第1保持部)202、第1処理プロセス203(第1処理部)203、第2保持プロセス205(第2保持部)205、第2処理プロセス(第2処理部)206、第3保持プロセス208(第3保持部)208である。に第3保持プロセス208は印刷部209と通信する。なお本実施例では、第1保持プロセスおよび第2保持プロセスは、HDD106を用いてコンピュータ100内で動作し、第3保持プロセスは、HDD116を用いてコンピュータ110内で動作するものとするが、動作する場所はこれに限定されない。
読込プロセス201はNIC107を通じて受信したPDLデータを読み込み、ページ単位のPDLデータなどの処理単位データに分割する。そして読込プロセス201は、第1保持プロセス202へ処理単位データを送信する。この第1保持プロセス202は、後段の第1処理プロセス203へ供給される処理単位データを保持する処理単位データ保持手段として機能する。処理単位データが分割されたPDLデータであった場合、処理谷データ保持手段は、PDLデータ保持手段とも呼ばれる。
第1処理プロセス203は第1保持プロセス202に保持された処理単位データを読み込み、内部の処理スレッド204によって、処理単位データ中のレンダリング単位(例えばオブジェクト)ごとの情報がまとめられたディスプレイリストなどの中間データに変換処理を行う。そして第1処理プロセス203は、第2保持プロセス205へ中間データを送信する。この第2保持プロセス205は、中間データを保持するため、中間データ保持手段として機能する。
第2処理プロセス206は、第2保持プロセス205に保持された中間データを読み込み、内部の処理スレッド207によって、中間データを、印刷部209が処理できるデータフォーマットであるビットマップデータなどの印刷データへの変換処理(レンダリング)を行う。そして第2処理プロセス206は、第3保持プロセス208へ印刷データを送信する。この第3保持プロセス208は、印刷データを保持するため、印刷データ保持手段として機能する。
印刷部209は第3保持プロセス208に保持された印刷データを読み込み、一定速度で印刷を行う。なお、印刷部209は印刷手段と呼ぶこともある。
制御プロセス210はコンピュータ100、110に搭載されている複数のプロセッサコア(コア群211)による処理状況を監視する。また、制御プロセス210は、第1保持プロセス202、第2保持プロセス205、第3保持プロセス208のメモリの使用状況を監視する。また制御プロセス210は、読込プロセス201、第1処理プロセス203、第2処理プロセス206、印刷部209の動作状況を監視する。更に制御プロセス210は、図を用いて後述するように、メモリの使用状況とコア群211による処理状況に基づいて、第1処理プロセス203と第2処理プロセス206へコア群211の一部のコアを割り当てる。この割り当ては、第1処理プロセス203に割り当てられるコアは第2処理プロセス206には割り当てられず、第2処理プロセス206に割り当てられるコアは第1処理プロセス203には割り当てられないような、排他的なコアの割り当てである。つまり第2処理プロセス206へ割り当てられるコアは、第1処理プロセス203に割り当てられる、コア群211の一部のコアを除くコアである。
以下、第1処理プロセス203、第2処理プロセス206を総称して処理プロセスと呼び、第1保持プロセス202、第2保持プロセス205、第3保持プロセス208を総称して保持プロセスと呼ぶ。
なお、第1保持プロセス202に保持される処理単位データのことを、第1の処理データと呼ぶことがある。また、第2保持プロセス205に保持される中間データのことを、第2の処理データと呼ぶことがあり、この第2保持プロセス205のことを、第1データ保持手段と呼ぶことがある。また、第3保持プロセス208に保持される印刷データのことを、第3の処理データと呼ぶことがあり、第3保持プロセス208のことを、第2データ保持手段と呼ぶことがある。
また、第1処理プロセス203のことを、第1の処理データを処理することで第2の処理データを生成する第1の処理手段と呼ぶことがある。また、第2処理プロセス206のことを、第2の処理データを処理することで第3の処理データを生成する第2の処理手段と呼ぶことがある。
以下に述べる閾値T1a、T1b、T2a、T2b、T2c、T3a、T3b、T3cは、印刷部209への印刷データ供給が滞ることが無いように設定された値とする。
以下では、処理単位データがPDLデータをページ単位に分割された場合について図3を用いて説明する。図3は、印刷システムの動作状態を表す。
初期動作状態A、初期動作状態B、初期動作状態Cは、ジョブが投入され印刷部209が印刷を開始するまでの状態遷移を表している。
通常動作状態Dは、PDLデータをHDD106等から読み出しながら印刷部209が印刷を行っている「RIP while Print」が実現されている状態を表している。
終了動作状態E、終了動作状態F、終了動作状態Gは、PDLデータの読み出しが終了し、処理プロセスで処理しているまたは保持プロセスで蓄積しているデータを順次印刷している状態遷移を表している。
例外動作状態H、例外動作状態I、例外動作状態Jは、印刷部209が印刷を開始する前にPDLデータの読み出しが終了した状態遷移を表している。
ここで、通常動作状態Dの図を例に取って図面の説明をする。
第1保持プロセス202、第2保持プロセス205、第3保持プロセス208と記載されている部分の上の数字は、その保持プロセスに蓄積されているページ数を表し、更にその上の棒グラフ(黒塗り部分)はそのページ数を表している。棒グラフに重ねられている矢印は、ページ数の増減を表しており、上向き矢印は増加中、下向き矢印は減少中、両向き矢印は一定の範囲内で変動していることを意味する。印刷済みページと記載されている部分も、保持プロセスと記載されている部分と同様の意味である。つまり、図3の通常動作状態Dの図は、第1保持プロセス202に保持されている処理単位データのページ数は250ページであることを示す。同様に、第2保持プロセス205および第3保持プロセス208それぞれが保持するデータのページ数と印刷済みのページ数は、250ページ、285ページ、150ページであることが表されている。また図3の通常動作状態Dの図は、第1処理プロセス203に保持されるページ数が一定の範囲で変動していることを表す。同様に、第2処理プロセスおよび第3処理プロセスに保持されるページ数がそれぞれ一定の範囲で変動していることを示している。印刷済みのページ数は増加中である。
第1処理プロセス203、第2処理プロセスと記載されている部分の上の数字は、その処理プロセスに割り当てられているコアの数(印刷システム上で動く全ての各処理プロセスの内部のスレッド数の合計)を表している。更にその上の20個の矩形は各プロセスに割り当てられるコア(この例では最大20コア)の動作状況を1矩形1コアで表したものである。これら矩形で表されたコアは、第1処理プロセス203および第2処理プロセス間で共有される。つまり、あるときは第1処理プロセス203に割り当てられていたコアが、別のときは第2処理プロセスに割り当てられる。なお、黒く塗りつぶされた矩形は各処理プロセスに割り当てられているコアを、白い矩形は処理プロセスに割り当てられていない未使用のコアを表す。なお未使用コアとは、第1処理プロセス203としても第2処理プロセス206としても機能していないコアである。
また全てのコアはそれぞれが識別可能である。説明の便宜上、例えば、図3に示されるように、全てのコアに通し番号(1〜20)を割り振ったとする。すると、図3の通常動作状態Dの図は、番号1〜6、7に対応するコアが第1処理プロセス203に割り当てられており、番号10〜12、14、15、17〜20に対応するコアが第2処理プロセスに割り当てられていることを表している。なおこのような、各プロセスへのコアの割り当てが制御できるのは、制御プロセス210が、処理プロセス1つに対しアフィニティマスク1つを設定し、全ての処理プロセスへのコア割り当ての状況を管理しているためである。したがって制御プロセス210は、未割り当て(未使用)のコアを常に把握できる。
なお本実施例では、制御プロセス210は、未割り当てのコアのうち、第1処理プロセス203には通し番号が小さい方から対応するコアを選択して割り当て、第2処理プロセスには通し番号が大きい方から対応するコアを選択して割り当てる。また、本実施例の第1保持プロセスおよび第2保持プロセス205は、通し番号が小さいコアを持つコンピュータに、第3保持プロセス208を通し番号が大きいコアを持つコンピュータに配置する。本実施例では、通し番号1〜10のコアがコンピュータ100の有するプロセッサコア、通し番号11〜20のコアがコンピュータ110の有するプロセッサコアであるとする。
このコアの割り当て方法について説明する。処理プロセスにコアが割り当てられるということは、処理プロセスが動作するコンピュータ(例えばコンピュータ100)が特定されるということである。例えば処理プロセスが、保持プロセスが動作しているコンピュータと同一のコンピュータ(例えばコンピュータ100)内で動作する場合、処理プロセスと保持プロセスの間のデータ転送にはシステムバス108のみが使用される。一方、処理プロセスが、保持プロセスが動作しているコンピュータと異なるコンピュータ(例えばコンピュータ110)内で動作する場合、処理プロセスと保持プロセスの間のデータ転送には、システムバス108、LAN121、システムバス118が使用される。
例えば本実施例のように、各保持プロセスの動作場所を、図2に示すパイプライン構造に従ったものにすることで、各処理プロセスとそのデータ転送先の保持プロセスとの間のデータ転送距離を短くすることができる。すなわち、第1保持プロセス202と第1処理プロセス203と第2保持プロセス205とを同一コンピュータ100内で動作させ、第2処理プロセス206と第3保持プロセス208を同一コンピュータ110内で動作させることができる。なお前述したように、コンピュータ100の有するコアの通し番号は、コンピュータ110の有するコアの通し番号より小さい。したがって、前述の制御プロセス210による各処理プロセスへのコア割り当ての結果、システムバス109と比べて通信速度の遅いLAN121を用いてデータ転送する回数を減らし、通信スループットの向上が見込める。この方法は、転送するデータサイズが大きく、LANの通信帯域の不足が想定される時に有効である。
上記説明した制御プロセス210の未割り当てのコアの割り当て方は、未割り当てコアの割り当て先が第1処理プロセス203であるか、第2処理プロセス206であるかという被利用属性に応じて決まる。
一方で、第1処理部と第2処理部を区別せずに使用するコアを分散させた場合は、コアからのメモリアクセス等のシステムバス109の通信負荷が分散するため、処理プロセスの処理速度の向上が見込める。この方法は、コア数やLANの通信帯域等のハードウェアリソースに余裕がある時に有効である。
次に、図4と図5でシステムの動作状態とプロセッサコアの割り当ての概略を説明する。
まず、図4に印刷システムの動作状態を表す状態遷移図を示し、実際の処理動作の例を元にシステムの状態を順に説明する。
待機状態(S401)の印刷システムに印刷指示を行うためのジョブが投入されると、印刷システムは初期動作状態A(S402)に移行する。初期動作状態Aでは、読込プロセス201がPDLデータの読み込みと分割処理を開始し、生成された処理単位データが第1保持プロセス202に蓄積される。初期動作状態Aにて第1保持プロセス202のページ数P1が閾値T1b以上になったとき、システムは初期動作状態B(S403)へ移行する。初期動作状態Bでは、第1処理プロセス203がコア群211のすべてのコアを使用して動作を開始し、生成された中間データが第2保持プロセス205に蓄積される。初期動作状態Bにて第2保持プロセス205のページ数P2が閾値T2b以上になったとき、システムは初期動作状態C(S404)へ移行する。初期動作状態Cでは、第2処理プロセスが動作を開始し、生成された印刷データが第3保持プロセス208に蓄積される。初期動作状態Cにて第3保持プロセス208のページ数P3が閾値T3b以上になったとき、システムは通常動作状態D(S405)へ移行する。
通常動作状態Dでは、印刷部209が動作を開始し、「RIP while Print」による印刷が行われる。通常動作状態Dにて読込プロセス201が全PDLデータの読み込みと分割が終了したとき、読込プロセス201は停止し、システムは終了動作状態E(S415)へ移行する。
終了動作状態Eでは、第1保持プロセス202への処理単位データの流入が無くなり、第1処理プロセス203と第2処理プロセスと印刷部209だけの動作となる。終了動作状態Eにて第1保持プロセス202が蓄積するページ数がゼロになったとき、全ての第1処理プロセス203は待機状態になり、終了動作状態F(S425)へ移行する。終了動作状態Fでは、第2保持プロセス205への中間データの流入が無くなり、第2処理プロセスと印刷部209だけの動作となる。終了動作状態Fにて第2保持プロセス205が蓄積するページ数がゼロになったとき、全ての第2処理プロセスは待機状態になり、終了動作状態G(S435)へ移行する。終了動作状態Gでは、第3保持プロセス208への印刷データの流入が無くなり、印刷部209だけの動作となる。終了動作状態Gにて第3保持プロセス208が蓄積するページ数がゼロになったとき、全てのページの印刷が完了してジョブが完了したことになり、待機状態(S401)へ移行する。
また、例外動作状態は、通常動作状態D(S405)を経ない動作状態であり、「RIP while Print」による印刷は行われていない。つまり全ページのPDLデータが読み込まれて分割処理が行われた後に、印刷部209による印刷が開始される。印刷ジョブとして入力されたPDLデータのページ数に対し保持プロセスの閾値が大きいとき、または入力されたPDLデータのページ数が少ないときに生じやすい。初期動作状態A(S402)または初期動作状態B(S403)にて読込プロセス201が停止したとき、例外動作状態H(S413)へ移行する。
例外動作状態Hでは、第1処理プロセス203だけの動作となる。初期動作状態C(S404)にて読込プロセス201が停止、または例外動作状態H(S413)にて第2保持プロセス205のページ数P2が閾値T2b以上になったとき、例外動作状態I(S414)へ移行する。例外動作状態Iでは、第1処理プロセス203と第2処理プロセスだけの動作となる。例外動作状態Iにて第3保持プロセス208のページ数P3が閾値T3b以上になったとき、終了動作状態E(S415)に移行する。例外動作状態H(S413)または例外動作状態I(S414)にて第1保持プロセス202が蓄積するページ数が無くなったとき、全ての第1処理プロセス203は待機状態になり、例外動作状態J(S424)へ移行する。例外動作状態Jでは、第2処理プロセスだけの動作となる。例外動作状態Jにて第3保持プロセス208のページ数P3が閾値T3b以上になったとき、終了動作状態F(S425)に移行する。例外動作状態Jにて第2保持プロセス205が蓄積するページ数が無くなったとき、全ての第2処理プロセスは待機状態になり、終了動作状態G(S435)へ移行する。
次に、本実施例の制御プロセス210によるコア配分の概略について、図5の保持プロセスに蓄積されているページ数、閾値、動作タイミングの関係を示す図を用いて説明する。
制御プロセス210は、保持プロセスの状態が変化する、第1処理プロセス203または第2処理プロセスの処理終了のタイミングで、第1処理プロセス203および第2処理プロセスに割り当てるコアの数を調整する。
制御プロセス210はPDLデータを含む印刷ジョブを受信すると、はじめに読込プロセス201へ、PDLデータの読み込みと処理単位データへ分割する処理の開始を指示する(初期動作状態A)。すると、読込プロセス201が生成する処理単位データが第1保持プロセス202へと蓄積されていくので、制御プロセス210は読込プロセス201の処理完了報告を受けたときに各保持プロセスに蓄積されているページ数を確認する。このページ数が閾値以上になったときに、処理プロセスや印刷部209の処理開始の指示と、読込プロセス201の処理速度の調整を行う。第1保持プロセス202が持つ閾値は、大きいほうからT1a、T1bであり、蓄積するページ数がT1aとT1bの間にあれば十分なページの蓄積が行われ、かつデータの入出力の速度が安定していることを意味する。同様に、第2保持プロセス205は、T2a、T2b、T2c、第3保持プロセス208はT3a、T3b、T3cの閾値を持つ。制御プロセス210は、第1保持プロセス202のページ数がT1b以上となったときに第1処理プロセス203へ処理開始を指示する(初期動作状態B)。また、第2保持プロセス205のページ数がT2b以上となったときに第2処理プロセスへ処理開始を指示する(初期動作状態C)。また、第3保持プロセス208のページ数がT3b以上となったときに印刷部209へ処理開始を指示する(通常動作状態D)。つまり、システムが動作開始した直後は読込プロセス201のみが動作しているが、徐々に第1処理プロセス203、第2処理プロセス、印刷部209へと処理が伝搬していき、PDLデータの入力と印刷部209への出力が同時に行われることになりRIP while Printが実現される。さらに、第2処理プロセスが動作開始するまでは、第1処理プロセス203には2コアずつ最大限割り当てることで高速に処理し、PDLデータの読み込みを開始してから印刷部209が動作開始するまでのスタートアップタイムの短縮を図る。
読込プロセス201と制御プロセス210は、データフローの前後に存在する保持プロセスの格納するページ数またはデータ量に基づき、制御プロセス210によって処理速度が調整される。
読込プロセス201は、処理プロセスと比べ短時間で処理が終わるため、第1保持プロセス202へのデータ流出に対してデータ流入が大きくなる傾向がある。読込プロセス201が単純に処理を続け、第1保持プロセス202の蓄積する処理単位データのデータ量(例えば処理単位データのページ数)が際限なく増えると、第1保持プロセス202が処理単位データの蓄積に使用するメモリ量も増えてしまう。これを防ぐために制御プロセス210は第1保持プロセス202のページ数を監視し、ページ数が閾値T1a以上となったときに読込プロセス201へ一時停止を指示する。逆にT1a未満になったら、読込プロセス201へ処理再開を指示する。こうすることで、閾値T1aを大きく上回るページ数を蓄積してしまうことによる、多量のメモリ使用を防ぐことができる。
第1処理プロセス203と第2処理プロセスは、コアの割当てを効率良く行うことで、無駄なくスループットを向上させる工夫がなされている。制御プロセス210は、第1処理プロセス203と第2処理プロセスのいずれかから処理完了の報告を受けると、その処理プロセスの直後の保持プロセスに蓄積されているページ数を取得した上で、処理を分岐する。第1処理プロセス203を例に取ると、ページ数P2が閾値T2c以下であれば印刷部209による印刷中に中間データが不足する可能性が高いと見なして第1処理プロセス203の処理を大幅に加速する。同様にP2が閾値T2b以下であれば通常の加速、T2a以下であれば速度を維持、T2aを超える場合は第2保持プロセス205の使用メモリ量を抑制するために減速する。なおここでいう処理の加速および減速は、後述するように、各処理プロセスに割り当てるコアの数を増減することで行われる。
大幅に加速するときは、制御プロセス210は、同一コンピュータ内の2コアの未使用コアが複数コンピュータ内で2組あるかを、アフィニティマスクを用いて確認する。そして制御プロセス210は、2つの第1処理プロセス203それぞれに2コアを割り当てるようにアフィニティマスクを設定し、2つの第1処理プロセス203に処理開始を指示する。処理完了した第1処理プロセス203が1コアで動作していた場合、2つの第1処理プロセス203が4コアで動作することになるので、処理速度は4倍となる。
通常の加速をするときは、制御プロセス210は、同一コンピュータ内に2コアの未使用コアがあるかを、アフィニティマスクを用いて確認する。そして制御プロセス210は、1つの第1処理プロセス203に2コアを割り当てるようにアフィニティマスクを設定し、1つの第1処理プロセス203に処理開始を指示する。処理完了した第1処理プロセス203が1コアで動作していた場合、1つの第1処理プロセス203が2コアで動作することになるので、処理速度は2倍となる。
速度を維持するときは、制御プロセス210は、1コアの未使用コアがあるかを、アフィニティマスクを用いて確認する。そして制御プロセス210は、1つの第1処理プロセス203に1コアを割り当てるようにアフィニティマスクを設定し、1つの第1処理プロセス203に処理開始を指示する。処理完了した第1処理プロセス203が1コアで動作していた場合、1つの第1処理プロセス203が1コアで動作することになるので、処理速度は変わらない。
減速するときは、制御プロセス210は、処理完了を報告した第1処理プロセス203を待機状態にし、使用していたコアを未使用状態にする。処理完了した第1処理プロセス203が1コアで動作していた場合、1つの第1処理プロセス203が動作を停止することになるので、処理速度は低下する。
第1保持プロセス202の蓄積するページ数がT1bより少なくなると、処理速度を加速させる必要性が少なくなるため、制御プロセス210は、図5に示す第2保持プロセスにおける閾値T2bのように閾値T2bをページ数と同じ値まで減少させる。また、制御プロセス210は、T2cもT2bの値の減少量と同じ量だけ減少させる。これにより、第1処理プロセス203に割り当てられるコアの数が少なくなり、第2処理プロセス206に割り当てることができる未割り当て(未使用)コア数が増え、パイプライン上で印刷部209に近く影響の大きい第2処理プロセスを優先的に動作させられる。
次に、制御プロセス210が第1処理プロセス203と第2処理プロセスへのコア割り当ての判定を行い、処理の指示を行うアルゴリズムを説明する。
図6〜図10は、本実施例の制御アルゴリズムのフローチャートであって、制御プロセスによる統括管理のもと実行される。なお、このフローチャートを実行するための各プロセス(各処理部)は、CPU101、103、111、113が処理プログラムを実行することで実現されている。
<全体の処理フロー>
図6は、本実施例のコンピュータが実行する処理の全体を示すフローチャートである。このフローチャートの処理は制御プロセス210によって制御される。
まず、図6のステップS601では、制御プロセス210が読込プロセス201に処理開始の指示をし、ステップS602へ進む。
ステップS602では、制御プロセス210が処理開始の判定のサブルーチンS621(図7)を呼び出す。
ステップS603では、制御プロセス210が読込プロセス201または処理プロセスからの処理完了報告を待ち、ステップS604へ進む。
ステップS604では、制御プロセス210が処理プロセスからの報告か判定する。結果が偽であればステップS605へ進み、真であればS606へ進む。
ステップS605では、制御プロセス210が読込プロセス201の処理速度を変更するサブルーチンS641(図8)を呼び出す。
ステップS606では、制御プロセス210が閾値を更新するサブルーチンS661(図9)を呼び出す。
ステップS607では、制御プロセス210がNを2としたときの第N処理プロセスの処理速度すなわち第2処理プロセスの処理速度を変更するサブルーチンS681(図10)を呼び出す。なお第2処理プロセスの処理速度の変更は、第2処理プロセスへのコアの割り当てを制御(調整)することによって行われる。
ステップS608では、制御プロセス210がNを1としたときの第N処理プロセスの処理速度すなわち第1処理プロセスの処理速度を変更するサブルーチンS681(図10)を呼び出す。なお第1処理プロセスの処理速度の変更は、第1処理プロセスへのコアの割り当てを制御(調整)することによって行われる。
ステップS608による第1処理プロセスの処理速度の変更がステップS608による第2処理プロセスの変更よりも先に行われている。これは、第2処理プロセスへのコアの割り当て制御が、第1処理プロセスへのコアの割り当て制御よりも優先的に行われることを意味する。
ステップS609では、制御プロセス210が保持プロセスにページが蓄積されている、または処理プロセスが処理中か判定する。結果が真であれば処理を終了し、偽であればステップS602へ進む。
以上が全体の処理フローである。
<処理開始の判定のサブルーチン>
S602において呼び出されるサブルーチンS621の処理フローを図7に示す。
ステップS622では、制御プロセス210が、第1処理プロセス203の動作状況が処理開始前であり、かつ、第1保持プロセス202のページ数が閾値T1b以上か判定する。ここで「第1処理プロセス203の動作状況が処理開始前」というのは、「PDLデータを含む印刷ジョブが入力されてから、この印刷ジョブに含まれるPDLデータが第1処理プロセス203により中間データへ初めて変換されるまでの期間」のことである。もし結果が真であればステップS623へ進み、偽であればステップS624へ進む。
ステップS623では、制御プロセス210が、コア群211におけるコア割り当てが可能なすべてのコアを使用して、第1処理プロセス203に2コアでの処理開始を指示し、ステップS624へ進む。すなわち、制御プロセス210は、1つ以上の第1処理プロセス203を起動して、各第1処理プロセス203に対して2コアを割り当てて処理を開始させる。
ステップS624では、制御プロセス210が、第2処理プロセス206の動作状況が処理開始前であり、かつ、第2保持プロセス205のページ数が閾値T2b以上か判定する。もし結果が真であればステップS625へ進み、偽であればステップS626へ進む。
ステップS625では、制御プロセス210が、コア群211におけるコア割り当てが可能なコアを使用して、第2処理プロセス206に1コアでの処理開始を指示し、ステップS626へ進む。すなわち、制御プロセス210は、第2処理プロセス206を起動して、この第2処理プロセス206に対して1コアを割り当てて処理を開始させる。
ステップS626では、制御プロセス210が、印刷部209の動作状況が印刷開始前であり、かつ、第3保持プロセス208のページ数が閾値T3b以上か判定する。結果が真であればステップS627へ進み、偽であればサブルーチンS621の呼び出し元のステップS603に進む。
ステップS627では、制御プロセス210が印刷部209に印刷開始を指示し、サブルーチンS621の呼び出し元のステップS603に進む。
以上が処理開始の判定のサブルーチンS621である。
<読込プロセスの処理速度の変更のサブルーチン>
S605において呼び出されるサブルーチンS641の処理フローを図8に示す。
ステップS642では、制御プロセス210が、第1保持プロセス202に蓄積されているページ数Pを取得し、ステップS643へ進む。
ステップS643では、制御プロセス210が、NIC107を通じて受信した全てのPDLデータを処理単位データへ分割したかを判定する。すなわち、全てのジョブの分割処理が完了したかが判定される。結果が真であればステップS644へ進み、偽であればステップS645へ進む。
ステップS644では、制御プロセス210が、読込プロセス201へ終了を指示し、サブルーチンS641の呼び出し元のステップS609に進む。
ステップS645では、制御プロセス210が、S642で取得されたページ数Pが閾値T1a以上か判定する。結果が真であればステップS646へ進み、偽であればステップS647へ進む。
ステップS646では、制御プロセス210が、読込プロセス201へ一時停止を指示し、サブルーチンS641の呼び出し元のステップS609に進む。
ステップS647では、制御プロセス210が、読込プロセス201が一時停止中か判定する。結果が真であればステップS648へ進み、偽であればサブルーチンS641の呼び出し元のステップS609に進む。
ステップS648では、制御プロセス210が、読込プロセス201へ処理再開を指示し、サブルーチンS641の呼び出し元のステップS609に進む。
以上が読込プロセスの処理速度の変更のサブルーチンS641である。
<閾値更新のサブルーチン>
S606において呼び出されるサブルーチンS661の処理フローを図9に示す。
ステップS662では、制御プロセス210が、読込プロセス201の処理が未完了か判定する。結果が真であればサブルーチンS661の呼び出し元のステップS607へ進み、偽であればステップS663へ進む。
ステップS663では、制御プロセス210が、第1保持プロセス202に蓄積されているページ数Pを取得し、ステップS664へ進む。
ステップS664では、制御プロセス210が、ステップS663で取得されたページ数Pが閾値T2b以下か判定する。結果が真であればステップS665へ進み、偽であればサブルーチンS661の呼び出し元のステップS607へ進む。
ステップS665では、制御プロセス210が、閾値T2bからステップS663で取得されたページ数Pを減じた値を変数Dとする。そして制御プロセス210は、閾値T2bを、閾値T2bから変数Dを減じた値で更新し、閾値T2cを、閾値T2cから変数Dを減じた値で更新して、ステップS666へ進む。
ステップS666では、制御プロセス210が閾値T2b、閾値T2cのそれぞれについて0未満のときは0で各閾値T2b、T2cを更新し、サブルーチンS661の呼び出し元のステップS607へ進む。
以上が閾値更新のサブルーチンS661である。
<第N処理プロセスの処理速度の変更のサブルーチン>
S607、S608において呼び出されるサブルーチンS681の処理フローを図10に示す。すなわち、第N処理プロセスの処理速度の変更のサブルーチンS681について説明する。なお、Nを1とした場合、第N処理プロセス、第N保持プロセス、第N+1保持プロセス、閾値T(N+1)a、T(N+1)b、T(N+1)cは、第1処理プロセス、第1保持プロセス、第2保持プロセス、閾値T2a、T2b、T2cのことを示す。また、Nを2とした場合も同様に、第N処理プロセス、第N保持プロセス、第N+1保持プロセス、閾値T(N+1)a、T(N+1)b、T(N+1)cは、第2処理プロセス、第2保持プロセス、第3保持プロセス、閾値T3a、T3b、T3cのことを示す。
ステップS682では、制御プロセス210が、第N保持プロセスのページ数が0か判定する。結果が真であればサブルーチンS681の呼び出し元のステップS608へ進み、偽であればステップS683へ進む。
ステップS683では、制御プロセス210が、第N+1保持プロセスに蓄積されているページ数Pを取得し、ステップS684へ進む。
ステップS684では、制御プロセス210が、ステップS683で取得されたページ数Pが閾値T(N+1)b以下か判定する。結果が真であればステップS685へ進み、偽であればステップS688へ進む。
ステップS685では、制御プロセス210が、同一コンピュータ内に2コア以上の未使用コア(未割り当てコア)が2組以上あるか判定する。結果が真であればステップS686へ進み、偽であればステップS689へ進む。
ステップS686では、制御プロセス210が、未使用コアのうち物理的に近い2つのコアを1つの第N処理プロセスに割り当てる。そして制御プロセス210は、さらに残った未使用コアのうち物理的に近い2つのコアを1つの第N処理プロセスに割り当てて、ステップS687へ進む。すなわちこれは、制御プロセス210が同一のコンピュータ内の2組それぞれの2コアを2つの第N処理プロセスに割り当てることを示している。言い換えれば、制御プロセス210は、図3に示される通し番号の振られた全ての未使用コアについて、同一のコンピュータ内の通し番号の近い2つの未使用のコアの1組を、1つの第N処理プロセスに割り当てる。また同様に制御プロセス210は、さらに、未使用のコアのうち同一のコンピュータ内の通し番号の近いもう1組の2つの未使用のコアを、もう1つの第N処理プロセスに割り当てる。これは第N処理プロセスを同一コンピュータ内で動作させた方がデータ転送のロスが少ないためである。
ステップS687では、制御プロセス210が、2つの第N処理プロセスそれぞれに2コアでの処理開始を指示し、サブルーチンS681の呼び出し元のステップS608へ進む。
ステップS688では、制御プロセス210が、ステップS683で取得されたページ数Pが閾値T(N+1)b以下か判定する。結果が真であればステップS689へ進み、偽であればステップS692へ進む。
ステップS689では、制御プロセス210が、同一コンピュータコンピュータ内に2コア以上の未使用コアが1組以上あるか判定する。結果が真であればステップS690へ進み、偽であればステップS693へ進む。
ステップS690では、制御プロセス210が、未使用コアのうち物理的に近い2つのコアを2つの第N処理プロセスに割り当て、ステップS691へ進む。すなわちこれは、制御プロセス210が同一のコンピュータ内の2つの未使用コアを2つの第N処理プロセスに割り当てることを示している。言い換えれば、制御プロセス210は、図3に示される通し番号の振られた全ての未使用コアのうち、1つの未使用コアを1つの第N処理プロセスに割り当てる。また同様に制御プロセス210は、さらに、未使用のコアのうち割り当てられたコアの通し番号と近いもう1つの未使用のコアを、もう1つの第N処理プロセスに割り当てる。これは第N処理プロセスを同一コンピュータ内で動作させた方がデータ転送のロスが少ないためである。
ステップS691では、制御プロセス210が2つの第N処理プロセスそれぞれに1コアでの処理開始を指示し、サブルーチンS681の呼び出し元のステップS608へ進む。
ステップS692では、制御プロセス210が、ステップS683で取得されたページ数Pが閾値T(N+1)a以下か判定する。結果が真であればステップS693へ進み、偽であればサブルーチンS681の呼び出し元のステップS608へ進む。
ステップS693では、制御プロセス210が、1コア以上の未使用コアがあるか判定する。結果が真であればステップS694へ進み、偽であればサブルーチンS681の呼び出し元のステップS608へ進む。
ステップS694では、制御プロセス210が、1つの未使用コアを1つの第N処理プロセスに割り当てて、第N処理プロセスに1コアでの処理開始を指示する。処理は、サブルーチンS681の呼び出し元のステップS608へ進む。
以上が第N処理プロセスの処理速度の変更のサブルーチンS681である。
以上説明したように、本実施例の印刷システムは、2種類の処理プロセスのパイプライン構造を有する。そして本実施例の印刷システムは、処理プロセスによって処理された処理後データを保持プロセスによって保持させ、処理プロセスに割り当てるプロセッサコアの数を保持プロセスの保持する処理後データの量によって制御する。この結果、処理手段による処理済みデータを保持する保持手段を設けることで、処理手段の処理時間のばらつきによる影響を吸収することができる。また、この保持手段に保持されているデータ量に基づいて処理手段へ割り当てるコア数を制御することで、処理手段の処理速度を調整して安定した保持手段へのデータ供給を行うことができる。その結果、処理済みデータをさらに処理する後段の手段が前段からのデータ出力を待つために生じるロスタイムを削減することができる。
さらに、本実施例の印刷システムは、保持プロセスに保持されるデータ量が閾値(例えばT2a、T3a)を超える場合、処理プロセスに割り当てるコア数を減らすことで、処理プロセスの処理速度を減速させる。その結果、処理プロセスは、後段の保持プロセスに保持するデータ量を所定の範囲に収めるような処理速度で処理を実行し、保持プロセスに保持されるデータ量をむやみに増やすことなく、保持プロセスの省メモリ化を図ることができる。
なお本実施例では、1つの処理プロセスに割り当てるコア数は1コアまたは2コアであったが、本発明はこれに限られない。
(変形例1)
実施例1では、制御プロセス210が保持プロセスの蓄積しているページ数を取得する方法として、処理プロセスが処理を完了したタイミングで保持プロセスの状況を確認する方法を採っていた。以下に、その他の制御プロセス210が保持プロセスの蓄積しているページ数を取得する方法を説明する。
図11に示される各機能ブロックは、実施例1の図2で説明した第2処理プロセス206、第3保持プロセス208、制御プロセス210に対応している。図11は、制御プロセス210が保持プロセスの蓄積しているページ数を取得する方法を、第2処理プロセスと第3保持プロセス208によるフィードバック制御の場合を例に2つ示している。
図11(A)は実施例1のように制御プロセス803は、タイマ動作などで一定時間ごとにページ数の状況を把握して第3保持プロセス802から直接的にページ数を取得している。そして、制御プロセス803は、取得したページ数に基づいて、第2処理プロセス801へのコアの割り当てを行うフィードバック処理を行う。ページ数を取得する時間間隔小さくすることによって制御プロセス803が動作状況を把握する精度は上がるが、保持プロセス802へのアクセス回数が増えるためシステム負荷も高くなる。
図11(B)は実施例1の変形例1を示しており、第3保持プロセス812のデータの流入量と流出量を取得することで間接的にページ数を得る。そして、前後の第2処理プロセス811や印刷部209の動作タイミングに応じた即応性の高い動作状況を制御プロセス813が把握できる。データの送受信のタイミングで取得するため、取得時間の誤差は小さくなるが、大きなデータ送受信の最中に更に負荷をかけることになる。
(変形例2)
実施例1では、PDLデータをページ単位の処理単位データに分割して複数の処理プロセスで並列処理をする動作例を示していた。以下にページ単位以外のデータの粒度に分割する方法と、処理プロセスに複数のスレッドが並列処理を行うときのデータ分割の粒度について説明する。
図12(A)、(B)は、実施例1の図2で説明した読込プロセス201、保持プロセス、処理プロセスと対応した図面であり、それぞれのプロセスが処理または保持するデータ粒度の分割例を示した機能ブロック図である。読込プロセス201でPDLデータを分割した後、第1処理プロセス203と第2処理プロセスで処理する処理対象となるデータを更に細かい粒度に分割することができ、それぞれデータの粒度は任意に組み合わせることができる。例えば、単一ページデータ単位、描画オブジェクト単位、タイル単位、バンド単位であり、複数の前記単位データを束ねた、ページデータ群、描画オブジェクト群、タイル群、バンド群でも良い。
ブロック901、911は読込プロセス201に対応する。ブロック902、912は第1保持プロセス202に対応する。ブロック903、913は第1処理プロセス203に対応する。ブロック904、914は処理スレッド204に対応する。ブロック905、915は第2保持プロセス205に対応する。ブロック906、916は第2処理プロセス206に対応する。ブロック907、917は処理スレッド207に対応する。ブロック908、918は第3保持プロセス208に対応する。
図12(A)では、読込プロセス901にてPDLデータを読み込み、単一ページデータに分割して第1保持プロセス902に保持する。第1処理プロセス903では、受け取った単一ページデータを描画オブジェクトに分割することで、処理スレッド904にて並列処理を行う。処理スレッド904がそれぞれ処理した結果を第1処理プロセス903がマージし中間データを生成して、第2保持プロセス905へ蓄積する。第2処理プロセス906では、受け取った中間データをタイルに分割することで、処理スレッド907にて並列処理を行う。処理スレッド907がそれぞれ処理した結果を、第2処理プロセス906がマージし印刷データを生成して、第3保持プロセス908へ蓄積する。
図12(B)では、読込プロセス911にてPDLデータを読み込み、複数ページデータに分割して第1保持プロセス912に保持する。第1処理プロセス913では、受け取った複数ページデータを単一ページデータに分割することで、処理スレッド914にて並列処理を行う。処理スレッド914がそれぞれ処理した結果から、第1処理プロセス203が中間データを生成して、第2保持プロセス915へ蓄積する。第2処理プロセス916では、受け取った中間データをバンドに分割することで、処理スレッド917にて並列処理を行う。処理スレッド917がそれぞれ処理した結果を第2処理プロセスがマージし印刷データを生成して、第3保持プロセス918へ蓄積する。
データの分割する粒度を小さくすることで、1つのデータを処理する時間が短くなるため1つのコアを占有することが少なくなり、第1処理プロセスおよび第2処理プロセスへのコア割り当てするアルゴリズムが適用しやすくなる。さらにデータサイズを小さくすることで低速な回線でも転送スループットを高めることができるため、LANやWAN(Wide Area Network)、クラスタ計算機を使用した分散処理にも応用が可能となる。
また、データサイズによってはPDLデータを1ページずつ分割する場合に長い処理時間が必要なことがあるため、粒度を粗い複数ページを一単位として分割することも処理時間の短縮のために有効な手段になる。
分割するデータの粒度は、印刷システムの納入時、オペレータのジョブ投入時、動作中等に、納入する際の顧客の要望、シミュレータによる算出、オペレータの経験に基づいた手動入力等の方法で決定することができる。
(実施例2)
実施例1では、処理プログラムの動作するハードウェアの構成と処理について説明した。以下に、印刷システムを実現するためのハードウェア構成の一例を説明する。なお以下説明する読込プロセス、第1処理プロセス、第2処理プロセス、第1保持プロセス、第2保持プロセス、第3保持プロセス、印刷部は、実施例1で説明した各プロセスおよび印刷部と同様である。
図13は、本発明を複数のコンピュータで実施した例を示し、各コンピュータは読込プロセスあるいは第1処理プロセスあるいは第2処理プロセスの何れか1種類のプロセスを実行する。また各コンピュータは、それぞれが実行する前述のプロセスの後段の保持プロセスも実行する。すなわち、コンピュータ1301は、読込プロセスおよび第1保持プロセスを実行する。またコンピュータ1302、1303、1304は、第1処理プロセスおよび第2保持プロセスを実行する。またコンピュータ1305は、制御プロセスを実行する。またコンピュータ1306、1307、1308は、第2処理プロセスおよび第3保持プロセスを実行する。そして印刷機1309は印刷部209の機能を有する印刷装置である。
図13のような構成のため、各処理プロセスから後段の保持プロセスへのデータ転送に使われる通信経路は、同一の計算機内の場合はデータバス等が使用される。また、異なる計算機間のデータ転送の場合はデータバス等に加えLAN等も使用される。
高解像度の印刷が求められるとき、入力されるPDLデータや印刷機に転送される印刷データは大きなデータサイズとなる(例えば、1200dpiの印刷データは約500MB)。このような大容量のデータのやりとりが、データバス等に比べて低速なLAN等の通信経路に集中することは、データ転送の遅延が生じるため、避けることが望ましい。
本実施例の印刷システムのコンピュータ1305の実行する制御プロセスは、処理プロセスのコアの使用状況や保持プロセスの蓄積しているページ数を取得する機能を有している。更に、計算機とコアの物理的な所在を把握した上で使用するコアを決定して処理プロセスへコア割り当てを行えるため、同様に使用する通信経路を決定することも可能である。
保持プロセスから処理プロセスへデータを転送するとき、保持プロセスと同一の計算機に未使用コアがある場合は、当該コアを処理プロセスに割り当てて変換処理を行う。保持プロセスと同一の計算機に未使用コアが無い場合は、未使用コアが最も多い他の計算機を探し、当該コアを処理プロセスに割り当てて変換処理を行う。
処理プロセスから保持プロセスへデータを転送するとき、処理プロセスと同一の計算機にデータを格納する未使用メモリを持つ保持プロセスがある場合は、当該保持プロセスへデータを蓄積する。
処理プロセスと同一の計算機にデータを格納する未使用メモリを持つ保持プロセスが無い場合は、他の計算機からデータを格納する未使用メモリを持つ保持プロセスを探し、当該保持プロセスへデータを蓄積する。
(その他の実施例)
上記実施例および変形例において、制御プロセスが保持プロセスから取得するコア割り当ての判定をするための情報は、ページ数の代わりにデータ数またはデータ量であっても良い。
保持プロセスから処理プロセスへデータを転送するときの処理プロセスへのコア割り当てを決定する際に、未使用コアが最も少ない他の計算機を探す。そして当該コアを処理プロセスに割り当てて変換処理を行うことで、なるべく少ない数の計算機に処理を集中させても良い。
処理プロセスから保持プロセスへデータを転送するときの保持プロセスを決定する際に、データを格納する未使用メモリが最も多い保持プロセスへデータを蓄積することで、計算機ごとの格納データ量を平準化させても良い。
なお、上記の実施例および変形例は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (27)

  1. 印刷手段が印刷する印刷データをPDLデータから生成するための複数のプロセッサコアを有する情報処理システムであって、
    前記複数のプロセッサコアのうちの一部のプロセッサコアを用いて前記PDLデータを処理することで中間データを生成し、中間データ保持手段に保持させる第1の処理手段と、
    前記複数のプロセッサコアのうちの前記一部のプロセッサコアを除くプロセッサコアを用いて前記中間データ保持手段に保持された中間データを処理することで印刷データを生成し、印刷データ保持手段に保持させる第2の処理手段と、
    前記第1の処理手段の用いるプロセッサコアの数を、前記中間データ保持手段に保持される中間データの量に基づいて増減させ、前記第2の処理手段の用いるプロセッサコアの数を、前記印刷データ保持手段に保持される印刷データの量に基づいて増減させる制御手段と、
    を有することを特徴とする情報処理システム。
  2. 前記第1の処理手段に供給する前記PDLデータを保持するPDLデータ保持手段を有し、
    前記制御手段は、
    前記PDLデータ保持手段に保持されるPDLデータの量が閾値T1bより小さい場合、前記第1の処理手段が前記複数のプロセッサコアのうちの全てのプロセッサコアを用いて処理を行うようにすることを特徴とする請求項1の情報処理システム。
  3. 前記制御手段は、前記第2の処理手段の用いるプロセッサコアの数の増減を、前記第1の処理手段の用いるプロセッサコアの数の増減よりも優先して制御することを特徴とする請求項1の情報処理システム。
  4. 処理データを処理するための複数のリソースを制御する情報処理装置であって、
    前記複数のリソースのうちの一部のリソースを、第1の処理データを処理することで第2の処理データを生成して前記第2の処理データを第1データ保持手段に保持させる第1の処理手段として機能させ、前記複数のリソースの前記一部のリソースを除くリソースを、前記第2の処理データを処理することで第3の処理データを生成して前記第3の処理データを第2データ保持手段に保持させる第2の処理手段として機能させるように、前記複数のリソースの制御を行う制御手段と、
    を有し、
    前記制御手段は、前記第1データ保持手段に保持される第2の処理データの量に基づいて、前記複数のリソースのうち前記第1の処理手段として機能させる前記一部のリソースの量を増減させ、前記第2データ保持手段に保持される第3の処理データの量に基づいて、前記複数のリソースのうち前記第2の処理手段として機能させる前記一部のリソースを除くリソースの量を増減させることを特徴とする情報処理装置。
  5. 前記制御手段は、
    前記第1データ保持手段に保持される第2の処理データの量が閾値T2b以下の場合、前記複数のリソースのうち前記第1の処理手段としても前記第2の処理手段としても機能していないリソースを前記第1の処理手段として機能させ、
    前記第2データ保持手段に保持される第3の処理データの量が閾値T3b以下の場合、前記複数のリソースのうち前記第1の処理手段としても前記第2の処理手段としても機能していないリソースを前記第2の処理手段として機能させるように前記複数のリソースの制御を行うことを特徴とする請求項4に記載の情報処理装置。
  6. 前記制御手段は、
    前記第1データ保持手段に保持される第2の処理データの量が閾値T2bよりも大きい閾値T2aを超える場合、前記第1の処理手段として機能させるリソースの量を減らし、
    前記第2データ保持手段に保持される第3の処理データの量が閾値T3bよりも大きい閾値T3aを超える場合、前記第2の処理手段として機能させるリソースの量を減らすことを特徴とする請求項4の情報処理装置。
  7. 前記第1の処理手段は、前記第1の処理データを保持する手段から、前記第1の処理データを取得して処理を行い、
    前記制御手段は、
    前記第1の処理データを保持する前記手段に保持される前記第1の処理データの量が、前記閾値T2b以下である場合、前記閾値T2bを小さい閾値に更新することを特徴とする請求項6に記載の情報処理装置。
  8. 前記複数のリソースのそれぞれは、1つ以上のマルチコアプロセッサの有する各プロセッサコアであり、
    前記制御手段は、前記プロセッサコアを前記第1の処理手段または前記第2の処理手段として機能させる場合、前記第1の処理手段または前記第2の処理手段による処理の実行単位として、1つの処理スレッドが他の処理スレッドと排他的に前記プロセッサコアを用いて動作するように制御することを特徴とする請求項4に記載の情報処理装置。
  9. 前記第1の処理手段に供給する前記第1の処理データを保持する手段を有し、
    前記制御手段は、
    前記第1の処理データを保持する手段に保持される第1の処理データの量が閾値T1bより小さい場合、前記複数のリソースのうちの全てのリソースを、前記第1の処理手段として機能させることを特徴とする請求項4の情報処理装置。
  10. 前記制御手段は、前記第1の処理手段として機能させるリソースの量の増減の制御を、前記第2の処理手段として機能させるリソースの量の増減の制御よりも優先して行うことを特徴とする請求項4の情報処理装置。
  11. 前記制御手段は、
    前記複数のリソースのうち前記第1の処理手段としても前記第2の処理手段としても機能していないリソースから、前記第1データ保持手段までのデータ転送距離がより短くなるようなリソースを選択することで定まるリソースを前記第1の処理手段として機能させ、
    前記複数のリソースのうち前記第1の処理手段としても前記第2の処理手段としても機能していないリソースから、前記第2データ保持手段までのデータ転送距離がより短くなるようなリソースを選択することで定まるリソースを前記第2の処理手段として機能させるように前記複数のリソースの制御を行うことを特徴とする請求項4に記載の情報処理装置。
  12. 前記第3の処理データは、印刷手段によって印刷されるデータフォーマットである印刷データであり、
    前記第2の処理データは、前記印刷データに変換される前の中間データであることを特徴とする請求項4乃至11の何れか1項に記載の情報処理装置。
  13. 前記第1の処理手段または前記第2の処理手段の少なくとも何れか1つは、前記第1の処理データに対して、複数のリソースを用いた並列処理を行うことを特徴とする請求項4乃至12の何れか1項に記載の印刷システム。
  14. 前記第1の処理手段または前記第2の処理手段の少なくとも何れか1つは、処理対象となるデータを、描画オブジェクト単位、または、バンド単位、または、タイル単位に分割して、分割された前記処理対象となるデータの処理を行うことを特徴とする請求項4乃至13の何れか1項に記載の印刷システム。
  15. 複数のプロセッサコアを用いて、PDLデータから印刷データを生成しながら印刷を行う印刷システムにおいて、
    前記PDLデータを処理単位データに分割する分割手段と、
    前記処理単位データを保持する第1保持手段と、
    前記複数のプロセッサコアの一部のプロセッサコアを用いて、前記処理単位データを解釈し中間データを生成する第1処理手段と、
    前記中間データを保持する第2保持手段と、
    前記複数のプロセッサコアの前記一部のプロセッサコアを除くプロセッサコアを用いて、前記中間データを解釈し前記印刷データを生成する第2処理手段と、
    前記印刷データを保持する第3保持手段と、
    前記第3保持手段に保持された前記印刷データの印刷を行う印刷手段と、
    前記第2保持手段で保持される前記中間データの量に基づいて、前記第2保持手段で保持される前記中間データの量を、閾値T2aおよびT2bで定まる所定の範囲内とするように前記複数のプロセッサコアのうち前記第1処理手段にも前記第2処理手段にも用いられていないプロセッサコアを前記第1処理手段に用いらせ、前記第3保持手段で保持される前記印刷データの量に基づいて、前記第3保持手段で保持される前記印刷データの量を閾値T3aおよびT3bで定まる所定の範囲内とするように前記複数のプロセッサコアのうち前記第1処理手段にも前記第2処理手段にも用いられていないプロセッサコアを前記第2処理手段に用いらせる制御手段と、
    を有することを特徴とする印刷システム。
  16. 前記第1処理手段または前記第2処理手段の少なくとも何れか1つは、前記処理単位データに対して、複数のプロセッサコアを用いた並列処理を行うことを特徴とする請求項15に記載の印刷システム。
  17. 前記分割手段は、
    前記PDLデータを、ページ単位、または、描画オブジェクト単位に分割することで前記処理単位データを得ることを特徴とする請求項15または16に記載の印刷システム。
  18. 前記第1処理手段または前記第2処理手段の少なくとも何れか1つは、
    処理対象となるデータを、描画オブジェクト単位、または、バンド単位、または、タイル単位に分割して、分割された前記処理対象となるデータの処理を行うことを特徴とする請求項15乃至17の何れか1項に記載の印刷システム。
  19. 処理データを処理するための複数のリソースを有する情報処理装置であって、
    前記複数のリソースのうちの一部のリソースを用いて第1の処理データを処理することで第2の処理データを生成し、第1データ保持手段に保持させる第1の処理手段と、
    前記複数のリソースのうちの前記一部のリソースを除くリソースを用いて前記第1データ保持手段に保持された第2の処理データを処理することで第3の処理データを生成し、第2データ保持手段に保持させる第2の処理手段と、
    前記第1の処理手段の用いるリソースの量を、前記第1データ保持手段に保持される第2の処理データの量に基づいて増減させ、前記第2の処理手段の用いるリソースの量を、前記第2データ保持手段に保持される第3の処理データの量に基づいて増減させる制御手段と、
    を有することを特徴とする情報処理システム。
  20. 印刷手段が印刷する印刷データをPDLデータから生成するための複数のプロセッサコアを有する情報処理システムの実行する情報処理方法であって、
    前記複数のプロセッサコアのうちの一部のプロセッサコアを用いて前記PDLデータを処理することで中間データを生成し、中間データ保持手段に保持させる第1の処理工程と、
    前記複数のプロセッサコアのうちの前記一部のプロセッサコアを除くプロセッサコアを用いて前記中間データ保持手段に保持された中間データを処理することで印刷データを生成し、印刷データ保持手段に保持させる第2の処理工程と、
    前記第1の処理工程で用いられるプロセッサコアの数を、前記中間データ保持手段に保持される中間データの量に基づいて増減させ、前記第2の処理工程で用いられるプロセッサコアの数を、前記印刷データ保持手段に保持される印刷データの量に基づいて増減させる制御工程と、
    を有することを特徴とする情報処理方法。
  21. 処理データを処理するための複数のリソースを制御する情報処理方法であって、
    前記複数のリソースのうちの一部のリソースを、第1の処理データを処理することで第2の処理データを生成して前記第2の処理データを第1データ保持手段に保持させる第1の処理手段として機能させ、前記複数のリソースの前記一部のリソースを除くリソースを、前記第2の処理データを処理することで第3の処理データを生成して前記第3の処理データを第2データ保持手段に保持させる第2の処理手段として機能させるように、前記複数のリソースの制御を行う制御工程、
    を有し、
    前記制御工程は、前記第1データ保持手段に保持される第2の処理データの量に基づいて、前記複数のリソースのうち前記第1の処理手段として機能させる前記一部のリソースの量を増減させ、前記第2データ保持手段に保持される第3の処理データの量に基づいて、前記複数のリソースのうち前記第2の処理手段として機能させる前記一部のリソースを除くリソースの量を増減させることを特徴とする情報処理方法。
  22. 複数のプロセッサコアを用いて、PDLデータから印刷データを生成しながら印刷を行う印刷システムの実行する印刷方法であって、
    前記PDLデータを処理単位データに分割して第1保持手段に保持させる分割工程と、
    前記複数のプロセッサコアの一部のプロセッサコアを用いて、前記処理単位データを解釈し中間データを生成し、第2保持手段に保持させる第1処理工程と、
    前記複数のプロセッサコアの前記一部のプロセッサコアを除くプロセッサコアを用いて、前記中間データを解釈し前記印刷データを生成し、第3保持手段に保持させる第2処理工程と、
    前記第3保持手段に保持された印刷データの印刷を行う印刷工程と、
    前記第2保持手段で保持された前記中間データの量に基づいて、前記第2保持手段で保持された前記中間データの量を、閾値T2aおよびT2bで定まる所定の範囲内とするように前記複数のプロセッサコアのうち前記第1処理工程にも前記第2処理工程にも用いられていないプロセッサコアを前記第1処理工程で用いらせ、前記第3保持手段で保持される前記印刷データの量に基づいて、前記第3保持手段で保持される前記印刷データの量を閾値T3aおよびT3bで定まる所定の範囲内とするように前記複数のプロセッサコアのうち前記第1処理工程にも前記第2処理工程にも用いられていないプロセッサコアを前記第2処理工程で用いらせる制御手段と、
    を有することを特徴とする印刷方法。
  23. 処理データを処理するための複数のリソースを有する情報処理装置の情報処理方法であって、
    前記複数のリソースのうちの一部のリソースを用いて第1の処理データを処理することで第2の処理データを生成し、第1データ保持手段に保持させる第1の処理工程と、
    前記複数のリソースのうちの前記一部のリソースを除くリソースを用いて前記第1データ保持手段に保持された第2の処理データを処理することで第3の処理データを生成し、第2データ保持手段に保持させる第2の処理工程と、
    前記第1の処理工程で用いられるリソースの量を、前記第1データ保持手段に保持される第2の処理データの量に基づいて増減させ、前記第2の処理工程で用いられるリソースの量を、前記第2データ保持手段に保持される第3の処理データの量に基づいて増減させる制御工程と、
    を有することを特徴とする情報処理方法。
  24. 1つ以上のコンピュータに請求項20に記載された情報処理方法を実行させるためのプログラム。
  25. 1つ以上のコンピュータに請求項21に記載された情報処理方法を実行させるためのプログラム。
  26. 1つ以上のコンピュータに請求項22に記載された印刷方法を実行させるためのプログラム。
  27. 1つ以上のコンピュータに請求項23に記載された情報処理方法を実行させるためのプログラム。
JP2012108684A 2012-05-10 2012-05-10 情報処理装置、情報処理方法、情報処理システム、プログラム Active JP6341628B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012108684A JP6341628B2 (ja) 2012-05-10 2012-05-10 情報処理装置、情報処理方法、情報処理システム、プログラム
US13/888,234 US8873076B2 (en) 2012-05-10 2013-05-06 Information processing apparatus, information processing method, information processing system, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012108684A JP6341628B2 (ja) 2012-05-10 2012-05-10 情報処理装置、情報処理方法、情報処理システム、プログラム

Publications (2)

Publication Number Publication Date
JP2013233759A true JP2013233759A (ja) 2013-11-21
JP6341628B2 JP6341628B2 (ja) 2018-06-13

Family

ID=49621376

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012108684A Active JP6341628B2 (ja) 2012-05-10 2012-05-10 情報処理装置、情報処理方法、情報処理システム、プログラム

Country Status (2)

Country Link
US (1) US8873076B2 (ja)
JP (1) JP6341628B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015114776A (ja) * 2013-12-10 2015-06-22 キヤノン株式会社 情報処理装置、情報処理方法、印刷システム、およびプログラム
JP2015125740A (ja) * 2013-12-27 2015-07-06 キヤノン株式会社 情報処理装置、情報処理方法およびコンピュータプログラム
KR20170085973A (ko) * 2016-01-15 2017-07-25 캐논 가부시끼가이샤 인쇄 데이터 처리 장치, 인쇄 데이터 처리 방법, 및 저장 매체
JP2018047611A (ja) * 2016-09-21 2018-03-29 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP2019093612A (ja) * 2017-11-22 2019-06-20 コニカミノルタ株式会社 画像形成装置及びプログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014189500A1 (en) * 2013-05-22 2014-11-27 Hewlett-Packard Development Company, L.P. Production simulation
JP6518087B2 (ja) * 2015-03-09 2019-05-22 キヤノン株式会社 プログラム処理装置
JP6821926B2 (ja) * 2016-03-10 2021-01-27 富士ゼロックス株式会社 描画データ作成装置
JP2018062157A (ja) * 2016-10-14 2018-04-19 富士ゼロックス株式会社 画像形成装置、情報処理装置およびプログラム
DE102016125023B4 (de) * 2016-12-20 2021-09-23 Canon Production Printing Holding B.V. Verfahren zum Betreiben eines Druckservers für digitale Hochleistungsdrucksysteme
DE102016125020B4 (de) * 2016-12-20 2021-09-23 Canon Production Printing Holding B.V. Verfahren zum Betreiben eines Druckservers für digitale Hochleistungsdrucksysteme

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10304158A (ja) * 1997-04-30 1998-11-13 Fuji Xerox Co Ltd 画像処理装置
JP2000168175A (ja) * 1998-09-29 2000-06-20 Seiko Epson Corp ペ―ジプリンタ及びペ―ジプリントシステム
JP2000211198A (ja) * 1999-01-28 2000-08-02 Oki Data Corp イメ―ジデ―タの管理方法
JP2006178571A (ja) * 2004-12-21 2006-07-06 Sony Computer Entertainment Inc 描画処理装置、ラスタライザ、および描画処理方法
JP2006293561A (ja) * 2005-04-07 2006-10-26 Seiko Epson Corp プリンタドライバ及びそのプリンタシステム
JP2008096845A (ja) * 2006-10-13 2008-04-24 Ricoh Co Ltd 画像形成装置
JP2008238592A (ja) * 2007-03-27 2008-10-09 Canon Inc 画像形成装置及びその制御方法
JP2010120196A (ja) * 2008-11-17 2010-06-03 Canon Inc 画像処理方法及び画像処理装置ならびに該画像処理方法を実行するためのプログラム
JP2010282489A (ja) * 2009-06-05 2010-12-16 Ricoh Co Ltd 画像形成装置、制御方法及び制御プログラム
JP2011167857A (ja) * 2010-02-16 2011-09-01 Ricoh Co Ltd 画像形成装置、画像形成方法、および画像形成プログラム
JP2011257972A (ja) * 2010-06-09 2011-12-22 Konica Minolta Business Technologies Inc 画像処理装置、プログラム及び画像処理方法
JP2012071544A (ja) * 2010-09-29 2012-04-12 Ricoh Co Ltd 画像形成装置、画像処理方法
JP2012111210A (ja) * 2010-11-29 2012-06-14 Konica Minolta Business Technologies Inc 印刷データ生成装置、印刷データ生成方法及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012060401A (ja) * 2010-09-08 2012-03-22 Ricoh Co Ltd 画像形成装置及び描画制御方法
JP5751020B2 (ja) * 2011-05-30 2015-07-22 株式会社リコー 画像形成装置、描画処理方法、プログラム及び記録媒体

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10304158A (ja) * 1997-04-30 1998-11-13 Fuji Xerox Co Ltd 画像処理装置
JP2000168175A (ja) * 1998-09-29 2000-06-20 Seiko Epson Corp ペ―ジプリンタ及びペ―ジプリントシステム
JP2000211198A (ja) * 1999-01-28 2000-08-02 Oki Data Corp イメ―ジデ―タの管理方法
JP2006178571A (ja) * 2004-12-21 2006-07-06 Sony Computer Entertainment Inc 描画処理装置、ラスタライザ、および描画処理方法
JP2006293561A (ja) * 2005-04-07 2006-10-26 Seiko Epson Corp プリンタドライバ及びそのプリンタシステム
JP2008096845A (ja) * 2006-10-13 2008-04-24 Ricoh Co Ltd 画像形成装置
JP2008238592A (ja) * 2007-03-27 2008-10-09 Canon Inc 画像形成装置及びその制御方法
JP2010120196A (ja) * 2008-11-17 2010-06-03 Canon Inc 画像処理方法及び画像処理装置ならびに該画像処理方法を実行するためのプログラム
JP2010282489A (ja) * 2009-06-05 2010-12-16 Ricoh Co Ltd 画像形成装置、制御方法及び制御プログラム
JP2011167857A (ja) * 2010-02-16 2011-09-01 Ricoh Co Ltd 画像形成装置、画像形成方法、および画像形成プログラム
JP2011257972A (ja) * 2010-06-09 2011-12-22 Konica Minolta Business Technologies Inc 画像処理装置、プログラム及び画像処理方法
JP2012071544A (ja) * 2010-09-29 2012-04-12 Ricoh Co Ltd 画像形成装置、画像処理方法
JP2012111210A (ja) * 2010-11-29 2012-06-14 Konica Minolta Business Technologies Inc 印刷データ生成装置、印刷データ生成方法及びプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015114776A (ja) * 2013-12-10 2015-06-22 キヤノン株式会社 情報処理装置、情報処理方法、印刷システム、およびプログラム
JP2015125740A (ja) * 2013-12-27 2015-07-06 キヤノン株式会社 情報処理装置、情報処理方法およびコンピュータプログラム
KR20170085973A (ko) * 2016-01-15 2017-07-25 캐논 가부시끼가이샤 인쇄 데이터 처리 장치, 인쇄 데이터 처리 방법, 및 저장 매체
KR102145809B1 (ko) * 2016-01-15 2020-08-19 캐논 가부시끼가이샤 인쇄 데이터 처리 장치, 인쇄 데이터 처리 방법, 및 저장 매체
US10885409B2 (en) 2016-01-15 2021-01-05 Canon Kabushiki Kaisha Print data processing apparatus
JP2018047611A (ja) * 2016-09-21 2018-03-29 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP2019093612A (ja) * 2017-11-22 2019-06-20 コニカミノルタ株式会社 画像形成装置及びプログラム
JP7006173B2 (ja) 2017-11-22 2022-01-24 コニカミノルタ株式会社 画像形成装置及びプログラム

Also Published As

Publication number Publication date
JP6341628B2 (ja) 2018-06-13
US8873076B2 (en) 2014-10-28
US20130314729A1 (en) 2013-11-28

Similar Documents

Publication Publication Date Title
JP6341628B2 (ja) 情報処理装置、情報処理方法、情報処理システム、プログラム
JP4417153B2 (ja) 並行印刷システム
JP5663941B2 (ja) 印刷文書変換装置およびプログラム
US8782371B2 (en) Systems and methods for memory management for rasterization
JP5333763B2 (ja) 画像処理装置、画像処理システムおよび画像処理プログラム
US8503019B2 (en) Print document conversion apparatus and computer readable medium
US8861011B2 (en) Print image processing system and non-transitory computer readable medium
JP2012059093A (ja) 印刷制御装置、印刷システムおよびプログラム
JP6372262B2 (ja) 印刷装置、およびプログラム
KR20040033182A (ko) 인쇄작업 순서 제어방법 및 이를 위한 프린트 시스템
US20140115601A1 (en) Data processing method and data processing system
US8976396B2 (en) Print image processing system and non-transitory computer readable medium
JP5942860B2 (ja) 印刷データ処理システム
JP6518087B2 (ja) プログラム処理装置
JP6294650B2 (ja) 情報処理装置、情報処理方法、印刷システム、およびプログラム
US10303404B2 (en) Method for operating a print server for digital high-capacity printing systems
JP5750018B2 (ja) 画像処理システム、印刷システム、制御装置、画像処理方法およびプログラム
JP5799968B2 (ja) 印刷システム
JP2016155280A (ja) 制御装置、制御方法およびプログラム
US20230010895A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium storing information processing program
JP5631022B2 (ja) 処理装置、処理の割り当て方法及びプログラム
JP2016206729A (ja) 情報処理装置およびその制御方法、並びにプログラム
JP6078954B2 (ja) 画像処理装置
JP2016103196A (ja) 画像処理装置、その制御方法、およびプログラム
JP2013052568A (ja) 画像形成装置、制御方法及び制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160519

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170302

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170303

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20170414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180515

R151 Written notification of patent or utility model registration

Ref document number: 6341628

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151