[go: up one dir, main page]

JP5284076B2 - Printing apparatus, control method therefor, and program - Google Patents

Printing apparatus, control method therefor, and program Download PDF

Info

Publication number
JP5284076B2
JP5284076B2 JP2008331184A JP2008331184A JP5284076B2 JP 5284076 B2 JP5284076 B2 JP 5284076B2 JP 2008331184 A JP2008331184 A JP 2008331184A JP 2008331184 A JP2008331184 A JP 2008331184A JP 5284076 B2 JP5284076 B2 JP 5284076B2
Authority
JP
Japan
Prior art keywords
print data
data processing
printing
control means
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008331184A
Other languages
Japanese (ja)
Other versions
JP2010149422A (en
Inventor
良介 鈴木
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 JP2008331184A priority Critical patent/JP5284076B2/en
Publication of JP2010149422A publication Critical patent/JP2010149422A/en
Application granted granted Critical
Publication of JP5284076B2 publication Critical patent/JP5284076B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、並列の制御手段を用いた並列処理に関するものである。   The present invention relates to parallel processing using parallel control means.

従来から、複数のプロセッサを用いて処理を行うことにより、処理完了時間を短縮するシステムが多数存在している。複数の印刷装置で1つの印刷ジョブを印刷する分散印刷がその1例である。   Conventionally, there are many systems that shorten processing completion time by performing processing using a plurality of processors. One example is distributed printing in which one printing job is printed by a plurality of printing apparatuses.

例えば入力データを等分して分散処理する場合や、或いは入力データの論理的な区切りで入力データを分け、各装置に分散して処理する場合がある。上述の分散印刷では、印刷用紙単位で処理を分散し、それぞれの印刷装置で印刷用データ処理を行う技術が知られている(例えば特許文献1)。   For example, there are cases where the input data is equally divided and distributed, or the input data is divided at logical divisions of the input data and distributed to each device. In the above-described distributed printing, a technique is known in which processing is distributed in units of printing paper and printing data processing is performed by each printing apparatus (for example, Patent Document 1).

一方、一つの印刷装置にプロセッサを複数搭載することで、高速に印刷用データ処理を行う技術も多数知られている(例えば特許文献2)。
特開2004−288071号公報 特開2007−152623号公報
On the other hand, many techniques for performing printing data processing at high speed by mounting a plurality of processors in one printing apparatus are also known (for example, Patent Document 2).
JP 2004-288071 A JP 2007-152623 A

しかしながら、従来の技術ではそれぞれの処理を高速に行うことを目的としているため、1つの印刷装置の中で複数の処理を同時に実行して、全体として高速化することを考慮したものはなかった。   However, since the conventional technique aims to perform each process at high speed, there has been no consideration of speeding up the entire process by simultaneously executing a plurality of processes in one printing apparatus.

従って、例えば、印刷用データ処理とネットワーク処理、ユーザインタフェースの処理等を、印刷装置に搭載されている複数の制御手段で並列して実行する場合、次のような課題が発生する。   Therefore, for example, when printing data processing, network processing, user interface processing, and the like are executed in parallel by a plurality of control units installed in the printing apparatus, the following problems occur.

まず、印刷用データ処理を行う制御手段と、その他の処理を行う制御手段とが固定されている場合、印刷装置におけるネットワークの処理やユーザインタフェースの処理は、頻繁に発生するものではないため、効率的に複数の制御手段を利用しているとはいえない。   First, when the control means for performing printing data processing and the control means for performing other processing are fixed, network processing and user interface processing in the printing apparatus do not occur frequently. In other words, it cannot be said that a plurality of control means are used.

一方、タイムシェアリング方式等で印刷用データ処理とネットワーク処理とユーザインタフェース処理を複数の制御手段で時分割して実行する場合、各処理の優先度を設定することが可能である。ここで、一つの印刷用データ処理に対して制御手段の数と等しい数のスレッドを生成し、生成した全てのスレッドがその他の処理よりも優先されるように設定すると、印刷用データ処理中はネットワーク処理などが行なわれず、著しくそれらの処理速度が低下する。逆に印刷用データ処理が他の処理よりも優先されないように設定すると、ネットワーク処理などが複数のスレッドで実行される場合には、何れの制御手段でも印刷用データ処理が実行されないような期間が発生し、印刷用データ処理が高速化されない可能性がある。   On the other hand, when printing data processing, network processing, and user interface processing are executed in a time-sharing manner by a plurality of control means by the time sharing method or the like, the priority of each processing can be set. Here, if a number of threads equal to the number of control means is generated for one print data process, and all the generated threads are set to have priority over the other processes, during the print data process, Network processing or the like is not performed, and the processing speed is remarkably reduced. Conversely, if the print data processing is set not to have priority over other processing, when the network processing or the like is executed by a plurality of threads, there is a period in which the print data processing is not executed by any control means. May occur, and printing data processing may not be accelerated.

これに対し、印刷用データ処理のスレッドの一部を、他の処理よりも優先されるように設定し、残りのスレッドを、他の処理よりも優先されないように設定すれば、上述の問題は解決する。しかしながら、どの印刷用データ処理を優先的に設定し、どの印刷用データ処理を優先的に設定しないのか、といった割り振り方が重要になる。   On the other hand, if some of the print data processing threads are set to have priority over other processes, and the remaining threads are set so as not to have priority over other processes, the above-mentioned problem will occur. Solve. However, it is important to assign which print data processing is preferentially set and which print data processing is not preferentially set.

最終的に用紙上に印刷を行う順番は通常ページ順になるため、印刷用データ処理は通常ページの先頭から処理を行うのが好ましい。しかし、先頭ページから順番に複数の制御手段に割り振ると、各ページでの印刷用データ処理時間が異なる場合には、印刷用データ処理が終了するページの順番がばらばらになる可能性が高い。   Since the order in which printing is finally performed on the paper is the normal page order, it is preferable that the print data processing is performed from the top of the normal page. However, if the print data processing time on each page is different when the pages are assigned to a plurality of control units in order from the first page, the order of pages on which the print data processing ends is likely to vary.

予め印刷用データ処理の処理時間を予測することにより印刷用データ処理を終了するページの順番が、実際に紙面に印刷を行う順番になるようにページの割り振りを行うことも考えられるが、処理時間を正確に予測するのは困難な場合が多い。ユーザインタフェースとネットワークの処理が関係する場合、処理時間を正確に予測するのは更に困難である。   Although it is conceivable to allocate pages so that the order of pages for which printing data processing is finished by predicting the processing time of printing data processing in advance is the order in which printing is actually performed on paper, the processing time It is often difficult to predict accurately. When user interface and network processing are involved, it is more difficult to accurately predict processing time.

実際に印刷するページ順に印刷用データ処理を行うため、一つの印刷用データ処理スレッドで連続したページを処理するように、予め各印刷用データ処理スレッドで処理するページ群を決定するのが望ましい。   In order to perform print data processing in the order of pages to be actually printed, it is desirable to determine in advance a group of pages to be processed by each print data processing thread so that continuous pages are processed by one print data processing thread.

しかしながら、それぞれのページの処理時間が一定ではない場合、搭載されている制御手段が効率的に利用されない場合がある。   However, if the processing time of each page is not constant, the mounted control means may not be used efficiently.

例えば、第1制御手段と第2制御手段が搭載された印刷装置で、1からJ(Jは1以上の整数)のページを第1制御手段で、J+1から最後のページを第2制御手段で処理するようにスケジューリングする場合を考える。この場合、ネットワーク処理等よりも高い優先順位の第1印刷用データ処理スレッドで1からJまでのページを処理し、ネットワーク処理等よりも低い優先順位の第2印刷用データ処理スレッドでJ+1から最後のページを処理すればよい。   For example, in a printing apparatus equipped with first control means and second control means, pages 1 to J (J is an integer of 1 or more) are used as the first control means, and pages from J + 1 to the last page are used as the second control means. Consider the case of scheduling to process. In this case, pages 1 to J are processed by a first print data processing thread having a higher priority than network processing and the like, and J + 1 and last are processed by a second print data processing thread having a lower priority than network processing and the like. Can be processed.

しかしながら、1からJまでのページの処理がJ+1から最後のページの処理よりも早く終わると、1からJまでのページの処理が終了してから、実質上一つの制御手段でしか印刷用データ処理が行われないことになる。   However, if the processing of pages 1 to J ends earlier than the processing of J + 1 to the last page, the printing data processing is practically performed by only one control means after the processing of pages 1 to J is completed. Will not be done.

本発明は問題点を解決するためになされたものであり、複数の印刷用データ処理を並列に実行する場合に、全体として効率的に処理することを目的とする。   The present invention has been made in order to solve the problem, and an object of the present invention is to efficiently process a plurality of print data processes as a whole when they are executed in parallel.

上記目的を達成するため、本発明に係る方法は、
印刷用データを用いた印刷用データ処理及びその他の処理を並列に実行できる複数の制御手段を備えた印刷装置の制御方法であって、
前記印刷用データを入力する入力ステップと、
前記印刷用データ処理を複数の部分に分割して前記複数の制御手段に割当てる割当ステップと、
前記複数の制御手段の何れかにおいて、前記印刷用データ処理の割当てられた部分の前記印刷用データ処理を終了した場合に、終了した部分以外の前記印刷用データ処理を、再度、前記複数の制御手段に割り当てる再割ステップと、
前記再割当ステップにおける再割り当てに従って前記複数の制御手段のそれぞれに前記印刷用データ処理を実行させるとともに、前記再割り当ての結果、前記印刷用データ処理の複数の部分のうちで最も優先順位が高い部分が割り当てられた制御手段以外の制御手段に、前記印刷用データ処理より優先して前記その他の処理を実行させる実行ステップと、
前記複数の制御手段により前記印刷用データ処理が実行された前記印刷用データに基づいて、印刷を実行する印刷ステップと、
を含むことを特徴とする。
In order to achieve the above object, the method according to the present invention comprises:
A printing apparatus control method comprising a plurality of control means capable of executing printing data processing using printing data and other processing in parallel,
An input step for inputting the printing data;
An allocation step of assigning to said plurality of control means by dividing the print data processing into a plurality of portions,
Wherein in any of the plurality of control means, when it is completed to the print data processing assignment is part of the print data processing, the print data processing other than termination portion, again, a plurality and re-allocation step of allocating to the control means,
According to the reassignment in the reassignment step, each of the plurality of control means executes the print data processing, and as a result of the reassignment, a portion having the highest priority among the plurality of portions of the print data processing An execution step of causing the control means other than the control means assigned to execute the other processing in preference to the print data processing ;
A printing step for executing printing based on the printing data for which the printing data processing has been executed by the plurality of control means;
It is characterized by including.

上記目的を達成するため、本発明に係る装置は、
印刷用データを入力する入力手段と、
前記入力手段により入力された前記印刷用データを用いた印刷用データ処理及びその他の処理を並列に実行できる複数の制御手段と、
前記印刷用データ処理を複数の部分に分割して前記複数の制御手段に割当てる割当手段と、
前記複数の制御手段の何れかにおいて、前記印刷用データ処理の割当てられた部分の前記印刷用データ処理を終了した場合に、終了した部分以外の前記印刷用データ処理を、再度、前記複数の制御手段に割り当てる再割手段と、
前記再割当手段による再割り当てに従って前記複数の制御手段のそれぞれに前記印刷用データ処理を実行させるとともに、前記再割り当ての結果、前記印刷用データ処理の複数の部分のうちで最も優先順位が高い部分が割り当てられた制御手段以外の制御手段に、前記印刷用データ処理より優先して前記その他の処理を実行させる実行手段と、
前記複数の制御手段により前記印刷用データ処理が実行された前記印刷用データに基づいて、印刷を実行する印刷手段と、
を含むことを特徴とする。
In order to achieve the above object, an apparatus according to the present invention provides:
An input means for inputting print data;
A plurality of control means capable of executing print data processing using the print data input by the input means and other processes in parallel;
And assigning means for assigning to said plurality of control means by dividing the print data processing into a plurality of portions,
Wherein in any of the plurality of control means, when it is completed to the print data processing assignment is part of the print data processing, the print data processing other than termination portion, again, a plurality and re-allocation means for allocating the control means,
According to the reallocation by the reallocation unit, each of the plurality of control units executes the print data processing, and as a result of the reallocation , the highest priority portion among the plurality of portions of the print data processing Execution means for causing the control means other than the control means assigned to execute the other processing in preference to the print data processing ;
Printing means for executing printing based on the printing data for which the printing data processing has been executed by the plurality of control means;
It is characterized by including.

本発明によれば、複数の印刷用データ処理を並列に実行する場合に、全体として効率的に処理することができる。   According to the present invention, when a plurality of print data processes are executed in parallel, the overall process can be efficiently performed.

以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。なお、ここで印刷用データ処理とは、印刷装置に画像データが伝送されてから実際に用紙紙面上に印刷を行う前までの処理を示す。印刷用データ処理の結果は印刷装置が備える記憶部に保持され、実際に用紙紙面上に印刷を行った後に記憶部から削除される。   Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings. However, the constituent elements described in this embodiment are merely examples, and are not intended to limit the scope of the present invention only to them. Here, the printing data processing refers to processing from when image data is transmitted to the printing apparatus until before printing is actually performed on the paper surface. The result of the printing data processing is held in a storage unit provided in the printing apparatus, and is actually deleted from the storage unit after printing on the paper surface.

<システム構成>
図1は、本発明の実施形態を示す画像処理システムとしての印刷システムの全体構成を説明するシステム構成図である。プリンタコントローラ1000は、ネットワークI/F1001と、制御手段としてのCPU1002及びCPU1003と、RAM1004とHDD1005と操作部I/F1006とデバイスI/F1007とRIP1008とを含む。そして、それらは内部バス1009で接続されている。PC1100はパーソナルコンピュータに代表されるホストコンピュータである。操作部1200はユーザインタフェースであり、図示しない各種ボタンやタッチパネル等を備える。操作部1200は操作部I/F1006と接続される。プリンタ部1300はプリンタコントローラで形成した画像データを紙面上に印刷を行う画像出力装置である。プリンタ部1300はデバイスI/F1007と接続される。スキャナ部1400は、図示しない原稿台に置かれた原稿を光学的に走査して画像を読み取る画像入力装置である。スキャナ部1400も、プリンタ部1300と同様、デバイスI/F1007と接続される。
<System configuration>
FIG. 1 is a system configuration diagram illustrating an overall configuration of a printing system as an image processing system according to an embodiment of the present invention. The printer controller 1000 includes a network I / F 1001, CPUs 1002 and 1003 as control means, a RAM 1004, an HDD 1005, an operation unit I / F 1006, a device I / F 1007, and a RIP 1008. They are connected by an internal bus 1009. The PC 1100 is a host computer represented by a personal computer. The operation unit 1200 is a user interface and includes various buttons and a touch panel (not shown). The operation unit 1200 is connected to the operation unit I / F 1006. A printer unit 1300 is an image output device that prints image data formed by a printer controller on a sheet. The printer unit 1300 is connected to the device I / F 1007. The scanner unit 1400 is an image input device that optically scans a document placed on a document table (not shown) and reads an image. Similarly to the printer unit 1300, the scanner unit 1400 is also connected to the device I / F 1007.

ネットワークI/F1001は、LAN1101と接続される、PC1100と各種通信を行うためのインタフェースである。CPU1002及びCPU1003は、RAM1004に格納されている各種プログラムを実行する。RAM1004は、各種プログラム以外に、それぞれのCPUが動作するために必要なワークメモリとして利用される。またRAM1004には各種データを一時的に記憶することができる。HDD1005は、RAMにロードする前のプログラムや各種データを保存することができる。操作部I/F1006は操作部1200と接続されるインタフェースであり、ユーザが操作部1200を操作すると、その情報がプリンタコントローラ1000へと伝えられる。また、操作部1200はプリンタコントローラ1000が出力する各種ステイタスを表示する機能も有する。RIP1008は、特定フォーマットの文書データをビットマップデータに変換するためのハードウェアである。   A network I / F 1001 is an interface for performing various communications with the PC 1100 connected to the LAN 1101. The CPU 1002 and the CPU 1003 execute various programs stored in the RAM 1004. The RAM 1004 is used as a work memory necessary for each CPU to operate in addition to various programs. The RAM 1004 can temporarily store various data. The HDD 1005 can store programs and various data before being loaded into the RAM. An operation unit I / F 1006 is an interface connected to the operation unit 1200, and when the user operates the operation unit 1200, the information is transmitted to the printer controller 1000. The operation unit 1200 also has a function of displaying various statuses output from the printer controller 1000. The RIP 1008 is hardware for converting document data in a specific format into bitmap data.

続いて図1の印刷システムのプリント動作について図2のフローチャートを用いて説明する。まず印刷する文書データをPC1100から伝送する(S2001)。この文書データは例えばPDL(Page Discription Language)であり、PC1100に搭載されるプリンタドライバで生成される。PC1100から伝送(入力)された文書データは、ネットワークI/Fを経由してRAM1004に格納される。   Next, the printing operation of the printing system of FIG. 1 will be described using the flowchart of FIG. First, document data to be printed is transmitted from the PC 1100 (S2001). This document data is, for example, PDL (Page Description Language), and is generated by a printer driver installed in the PC 1100. The document data transmitted (input) from the PC 1100 is stored in the RAM 1004 via the network I / F.

RAM1004に格納された文書データは、RAM1004にロードされている文書データ解析プログラムによって、ページ単位で並列処理可能な第1中間データに変換される(S2002)。文書データ解析プログラムは、CPU1002、1003の何れか、若しくは時分割で両方のCPU1002、1003で動作する。上述のように生成されたデータはHDD1005若しくはRAM1004に格納される。   The document data stored in the RAM 1004 is converted into first intermediate data that can be processed in parallel in page units by the document data analysis program loaded in the RAM 1004 (S2002). The document data analysis program operates on either of the CPUs 1002 and 1003 or both of the CPUs 1002 and 1003 in a time division manner. The data generated as described above is stored in the HDD 1005 or the RAM 1004.

続いてRAM1004若しくはHDD1005に格納された第1中間データを、RAM1004にロードされている中間データ解析プログラムによって、RIP1008が解釈可能な第2中間データに変換する(S2003)。中間データ解析プログラムは、CPU1002とCPU1003それぞれで実行されるように、2つのスレッドを作成する。それぞれの中間データ解析スレッドには、処理するページ範囲がそれぞれ重複しないように指示する。それぞれの中間データ解析スレッドで生成された第2中間データは、RAM1004若しくはHDD1005に格納される。第2中間データの生成後、該当する第1中間データを削除してもよい。   Subsequently, the first intermediate data stored in the RAM 1004 or the HDD 1005 is converted into second intermediate data that can be interpreted by the RIP 1008 by the intermediate data analysis program loaded in the RAM 1004 (S2003). The intermediate data analysis program creates two threads so as to be executed by the CPU 1002 and the CPU 1003, respectively. Each intermediate data analysis thread is instructed not to overlap the page range to be processed. The second intermediate data generated by each intermediate data analysis thread is stored in the RAM 1004 or the HDD 1005. After the second intermediate data is generated, the corresponding first intermediate data may be deleted.

続いてRAM1004若しくはHDD1005に格納された第2中間データを、RIP1008を用いてビットマップに変換する(S2004)。ビットマップに変換されたページに対応する第1中間データ及び第2中間データはビットマップ形成後に削除してもよい。S2004で生成されたビットマップは、デバイスI/F1007を経由してプリンタ部1300に伝送され、そこで紙等の媒体上に印刷される(S2005)。   Subsequently, the second intermediate data stored in the RAM 1004 or the HDD 1005 is converted into a bitmap using the RIP 1008 (S2004). The first intermediate data and the second intermediate data corresponding to the page converted into the bitmap may be deleted after the bitmap is formed. The bitmap generated in S2004 is transmitted to the printer unit 1300 via the device I / F 1007, where it is printed on a medium such as paper (S2005).

なお、S2001で受信した印刷データは、全ページの第2中間データを生成した後に削除してもよいし、該当する第2中間データの生成後に、ページ単位で印刷データを削除してもよい。   Note that the print data received in S2001 may be deleted after generating the second intermediate data of all pages, or the print data may be deleted in units of pages after the corresponding second intermediate data is generated.

また、S2003の処理は、全ページ分の第1中間データを生成した後に実行しても構わない。或いは、一ページ分の第1中間データが生成された時点で、上述のように決定したそれぞれのスレッドで処理するページ範囲にしたがって中間データ解析プログラムに解析処理を依頼してもよい。また、この場合、中間データ解析プログラムはFIFOキューを備えるのが望ましい。   Further, the process of S2003 may be executed after generating the first intermediate data for all pages. Alternatively, when the first intermediate data for one page is generated, the intermediate data analysis program may be requested to perform analysis processing according to the page range to be processed by each thread determined as described above. In this case, the intermediate data analysis program preferably includes a FIFO queue.

続いて、第1中間データについて図3を用いて説明する。文書データ(PDL)には様々なフォーマットがあり、ページ単位で並列処理することができないフォーマットも存在する。例えば、これから描画するラインの線幅を指定する等の印刷設定コマンドと、ラインを描画する等の描画コマンドから構成される文書データがある。ページ毎に印刷設定コマンドを設定する必要のない文書データでは、前ページの印刷設定を次のページでも引き継ぐことが一般的である。この場合、ページ1の描画コマンドが終了するまでに指定された印刷設定は、上書きされない限り、ページ2でも有効にしなければならない。   Next, the first intermediate data will be described with reference to FIG. There are various formats for document data (PDL), and there are also formats that cannot be processed in parallel in page units. For example, there is document data including a print setting command for designating a line width of a line to be drawn and a drawing command for drawing a line. For document data that does not require a print setting command to be set for each page, the print setting for the previous page is generally inherited by the next page. In this case, the print settings specified until the drawing command for page 1 is completed must be valid for page 2 as long as it is not overwritten.

図3の3000は、ページ単位で並列処理することができないフォーマットの印刷データを表す。3001はページ1の終了までに設定される印刷設定コマンドであり、3002はページ1の描画コマンドである。ページ2では印刷設定はないので、3001の印刷設定にしたがってページ2の描画処理を実行する。ページ3には3004に示す印刷設定があるので、この印刷設定にしたがってページ3の描画コマンド3005の処理を行う。   3000 in FIG. 3 represents print data in a format that cannot be processed in parallel in page units. Reference numeral 3001 denotes a print setting command set before the end of page 1, and reference numeral 3002 denotes a drawing command for page 1. Since there is no print setting for page 2, the drawing process for page 2 is executed according to the print setting of 3001. Since page 3 has a print setting indicated by 3004, the drawing command 3005 of page 3 is processed according to the print setting.

このような仕様の文書データで、ページ単位で並列処理を行えるようにするためには、前ページの終了までに行なわれた印刷設定コマンドを、次のページの開始部にコピーすればよい。即ち図3の3100に示すように、ページ毎に前ページの印刷設定をコピーする。3101はページ1の第1中間データであり、印刷設定3001と描画コマンド3002で構成される。3102はページ2の第1中間データであり、印刷設定3001と描画コマンド3003で構成される。3103はページ3の第1中間データであり、印刷設定3004と描画コマンド3005で構成される。このような変換処理を行うことで、並列処理可能な第1中間データに変換することが可能になる。つまり、印刷用データとしての第1中間データ3100は、複数の印刷用データ部分(ページ1の第1中間データ、ページ2の第1中間データ、ページ3の第1中間データ)を含むものである。なお、3000と3100の印刷設定と描画コマンドはそれぞれ同じフォーマットである必要はない。3100の印刷設定や描画コマンドは、印刷装置独自の印刷設定コマンドと描画コマンドとしても構わない。   In order to enable parallel processing in units of pages with document data having such a specification, the print setting command executed up to the end of the previous page may be copied to the start of the next page. That is, as shown by 3100 in FIG. 3, the print settings of the previous page are copied for each page. Reference numeral 3101 denotes first intermediate data of page 1, which includes a print setting 3001 and a drawing command 3002. Reference numeral 3102 denotes first intermediate data of page 2, which includes a print setting 3001 and a drawing command 3003. Reference numeral 3103 denotes first intermediate data of page 3, which includes a print setting 3004 and a drawing command 3005. By performing such conversion processing, it is possible to convert the first intermediate data that can be processed in parallel. That is, the first intermediate data 3100 as print data includes a plurality of print data portions (first intermediate data of page 1, first intermediate data of page 2, first intermediate data of page 3). The print settings and drawing commands of 3000 and 3100 do not have to be in the same format. The print setting and drawing command 3100 may be a printing setting command and drawing command unique to the printing apparatus.

続いて図1のプリンタコントローラ1000で実行されるソフトウェアの構成について図4を用いて説明する。   Next, the configuration of software executed by the printer controller 1000 in FIG. 1 will be described with reference to FIG.

オペレーティングシステム4000は、各種ソフトウェアに各種API(アプリケーションインタフェース)を公開し、また各ソフトウェアの実行を制御するソフトウェアである。本実施の形態のおいて、オペレーティングシステム4000上で動作するソフトウェアは、ネットワーク制御部4100、ユーザI/F制御部4200、コピー動作制御部4300、印刷動作制御部4400及びその他のソフトウェアである。それぞれのソフトウェアは少なくとも一つ以上のスレッドを保有する。オペレーティングシステム4000は、これらのソフトウェアのスレッドに対してCPU1002若しくはCPU1003を適切なタイミングで割り当てて、各スレッドを実行する。オペレーティングシステム4000の各アプリケーションスレッドへのCPUの割り当ては、各スレッドに対してAPIを用いて設定されるスレッドの優先順位等に従う。優先順位は起動時だけではなく、ソフトウェアの動作中にも動的に設定することが可能である。   The operating system 4000 is software that exposes various APIs (application interfaces) to various software and controls the execution of each software. In the present embodiment, software operating on the operating system 4000 is a network control unit 4100, a user I / F control unit 4200, a copy operation control unit 4300, a printing operation control unit 4400, and other software. Each software has at least one thread. The operating system 4000 assigns the CPU 1002 or the CPU 1003 to these software threads at an appropriate timing, and executes each thread. The CPU is assigned to each application thread of the operating system 4000 according to the priority order of the threads set using the API for each thread. Priorities can be set dynamically not only during startup but also during software operation.

ネットワーク制御部4100は、図1のネットワークI/F1001を介して伝送された各種プロトコル解析を行うソフトウェアである。プリンタコントローラ1000は、文書データの伝送に利用するLPRやRAWといったプロトコルだけではなく、プリンタコントローラ1000やプリンタ部1300のステイタスを表示するHTTPや、通信機器を監視するためのSNMP等もサポートする。ネットワーク制御部で解析された受診データは、適切なソフトウェアに引渡される。例えばLPRやRAWで伝送されたデータは印刷動作制御部4400に引渡され、HTTPデータは、図示しないWWWサーバソフトウェアに引渡されて各種処理を行う。   The network control unit 4100 is software that analyzes various protocols transmitted via the network I / F 1001 of FIG. The printer controller 1000 supports not only protocols such as LPR and RAW used for document data transmission, but also HTTP for displaying the status of the printer controller 1000 and the printer unit 1300, SNMP for monitoring communication devices, and the like. The consultation data analyzed by the network control unit is delivered to appropriate software. For example, data transmitted by LPR or RAW is delivered to the printing operation control unit 4400, and HTTP data is delivered to WWW server software (not shown) to perform various processes.

ユーザI/F制御部4200は、図1の操作部1200から入力されたユーザの操作情報にしたがって処理を行い、また、操作部1200に備え付けられた表示装置にプリンタコントローラ1000やプリンタ部1300のステイタスを表示する。   The user I / F control unit 4200 performs processing in accordance with user operation information input from the operation unit 1200 of FIG. 1, and also displays the status of the printer controller 1000 and the printer unit 1300 on a display device provided in the operation unit 1200. Is displayed.

また図1のプリンタコントローラ1000でコピー機能を利用する際には、利用者は操作部1200を操作する。例えば操作部に備え付けられたコピー開始ボタンを押下する。このとき、ユーザI/F制御部4200は、コピー動作制御部4300に処理の開始を指示する。するとコピー動作制御部4300は、図1のスキャナ部を操作して原稿を読み取り、読み取られた画像をプリンタ部1300によって印刷する動作を制御する。   When using the copy function with the printer controller 1000 of FIG. 1, the user operates the operation unit 1200. For example, a copy start button provided in the operation unit is pressed. At this time, the user I / F control unit 4200 instructs the copy operation control unit 4300 to start processing. Then, the copy operation control unit 4300 controls the operation of operating the scanner unit of FIG. 1 to read a document and printing the read image by the printer unit 1300.

続いて、印刷動作制御部4400について詳細に説明する。印刷動作制御部4400は図2のフローチャートを用いて説明したプリント動作を実行するソフトウェアである。印刷制御部4400は、複数のソフトウェアモジュール4401及至4406で構成される。なお、文書データは上述したネットワーク制御部4100から伝送されるが、その際に文書データをRAM1004やHDD1005にバッファリングしても構わない。   Next, the printing operation control unit 4400 will be described in detail. The printing operation control unit 4400 is software that executes the printing operation described with reference to the flowchart of FIG. The print control unit 4400 includes a plurality of software modules 4401 to 4406. The document data is transmitted from the network control unit 4100 described above, but the document data may be buffered in the RAM 1004 or the HDD 1005 at that time.

第1中間データ生成部4401は、図2のフローチャートのS2002における文書データを第1中間データに変換するソフトウェアモジュールである。   The first intermediate data generation unit 4401 is a software module that converts the document data in S2002 in the flowchart of FIG. 2 into first intermediate data.

並列処理スケジューラ4402は、第1中間データ生成部4401が生成する第1中間データを、第2中間データ生成部4403a及び第2中間データ生成部4403bに割り振る役割を担う。それぞれの第2中間データ生成部はひとつのスレッドを保有する。また、並列処理スケジューラ4402は、各第2中間データ生成部4403a、bに割り振った処理が終了すると、処理が終了していないページの第2中間データ生成処理の再割り振りを行う。また、並列処理スケジューラ4402は、各第2中間データ生成部4403a、bが保有するスレッドの優先順位の再設定を行う。   The parallel processing scheduler 4402 has a role of allocating the first intermediate data generated by the first intermediate data generation unit 4401 to the second intermediate data generation unit 4403a and the second intermediate data generation unit 4403b. Each second intermediate data generation unit has one thread. In addition, when the process allocated to each of the second intermediate data generation units 4403a and 4403 is completed, the parallel processing scheduler 4402 reallocates the second intermediate data generation process of the page that has not been processed. The parallel processing scheduler 4402 resets the priority order of the threads held by the second intermediate data generation units 4403a and 4403b.

第2中間データ生成部4403a及び第2中間データ生成部4403bは、図2のフローチャートのS2003における、第1中間データを第2中間データに変換するソフトウェアモジュールである。各第2中間データ生成部は予め指定されたページ範囲の第1中間データを、ページ単位に逐次的に第2中間データに変換する。或いは、各第2中間データ生成部4403a、bに設けられたFIFOキューに蓄えられる、ページ単位の第1中間データ変換命令を逐次的に第2中間データに変換する。   The second intermediate data generation unit 4403a and the second intermediate data generation unit 4403b are software modules that convert the first intermediate data into the second intermediate data in S2003 of the flowchart of FIG. Each second intermediate data generation unit sequentially converts the first intermediate data in a page range designated in advance into second intermediate data in units of pages. Alternatively, the first intermediate data conversion instruction in units of pages stored in the FIFO queue provided in each second intermediate data generation unit 4403a, 4403 is sequentially converted into second intermediate data.

図5に示すように、第2中間データ生成部4403a、bは、FIFOキュー5001に格納された第1中間データを逐次的に処理して第2中間データに変換して出力する。或いは、並列処理スケジューラ4402がFIFOキュー5002に第1中間データを格納する。   As shown in FIG. 5, the second intermediate data generation units 4403a and 4403b sequentially process the first intermediate data stored in the FIFO queue 5001, convert it into second intermediate data, and output the second intermediate data. Alternatively, the parallel processing scheduler 4402 stores the first intermediate data in the FIFO queue 5002.

RIPスケジューラ4404は、第2中間データ生成部4403a、bで生成された第2中間データを、図1のプリンタ部1300で出力する順番で、レンダリング制御部4404に送信する。   The RIP scheduler 4404 transmits the second intermediate data generated by the second intermediate data generation units 4403a and 4403b to the rendering control unit 4404 in the order of output by the printer unit 1300 in FIG.

レンダリング処理部4405は、図2のフローチャートのステップS2004における第2中間データからビットマップを生成する処理を担うソフトウェアモジュールである。実際には、レンダリング処理部4405は、図1のRIP1008を制御することによりレンダリング処理を実行する。   The rendering processing unit 4405 is a software module responsible for processing to generate a bitmap from the second intermediate data in step S2004 in the flowchart of FIG. Actually, the rendering processor 4405 executes the rendering process by controlling the RIP 1008 in FIG.

印刷処理部4406は、図2のフローチャートのS2005における、レンダリング処理部4405で生成されたビットマップを、図1のプリンタ部1300で紙面上に印刷する処理を行うソフトウェアモジュールである。   The print processing unit 4406 is a software module that performs processing for printing the bitmap generated by the rendering processing unit 4405 on the paper surface in step S2005 of FIG. 2 using the printer unit 1300 of FIG.

<並列処理スケジューリング>
並列処理スケジューラ4402の動作の流れについて、図6のフローチャートを用いて説明する。まず、S6001で、各第2中間データ生成部の優先度を設定する。続いてS6002で、各第2中間データ生成部に割り振るページの境界ページ数Nを決定する。
<Parallel processing scheduling>
The operation flow of the parallel processing scheduler 4402 will be described with reference to the flowchart of FIG. First, in S6001, the priority of each second intermediate data generation unit is set. In step S6002, the number N of boundary pages of pages to be allocated to each second intermediate data generation unit is determined.

続いてS6003で、第2中間データ生成処理を行う。続いてS6004で何れかの第2中間データ生成部の処理の終了を待つ。続いてS6005で、全ページの第2中間データ生成が終了しているかを判断する。全ページの第2中間データの生成が終了していない場合には、第2中間データが生成されていないページを各第2中間データ生成部に割り振るページ境界Jを決定する(S6006)。更に各第2中間データ生成部は、スレッドの優先順位を変更して第2中間データ生成処理を続行する。   In step S6003, a second intermediate data generation process is performed. In step S6004, the process waits for the end of any second intermediate data generation unit. In step S6005, it is determined whether the second intermediate data generation for all pages has been completed. If the generation of the second intermediate data for all pages has not been completed, a page boundary J for allocating a page for which the second intermediate data has not been generated to each second intermediate data generation unit is determined (S6006). Further, each second intermediate data generation unit changes the priority order of the threads and continues the second intermediate data generation process.

最終的に全てのページについての第2中間データが生成されるまでステップS6003からS6007の処理を繰り返す。   The processes of steps S6003 to S6007 are repeated until the second intermediate data for all pages is finally generated.

生成された第2中間データは、図1のRAM1004に格納されるが、各第2中間データ生成部は、ある程度連続したページを処理することになるため、効率よくメモリを利用することが可能である。即ち、各第2中間データ生成部は、処理が割り振られるタイミングで、RAM1004の連続領域から割り振られたページ全ての中間データを格納する領域を予約する。各第2中間データ生成部は逐次的に第2中間データを生成するので、前ページの第2中間データの終端直後に次ページの第2中間データを配置することが可能になる。   The generated second intermediate data is stored in the RAM 1004 of FIG. 1, but each second intermediate data generation unit processes pages that are continuous to some extent, so that the memory can be used efficiently. is there. That is, each second intermediate data generation unit reserves an area for storing intermediate data of all pages allocated from the continuous area of the RAM 1004 at the timing at which processing is allocated. Since each second intermediate data generation unit sequentially generates the second intermediate data, it is possible to arrange the second intermediate data of the next page immediately after the end of the second intermediate data of the previous page.

次に、図6のステップS6001とS6002の処理の内部について説明する。これらの処理は、各第2中間データ生成部の優先順位を設定し、並列処理スケジューラ4402が、第1中間データを割り振る処理である。なお、ここでは説明を簡単にする為に、全ページの第1中間データを作成してから第2中間データを作成する場合について説明する。   Next, the inside of the processing of steps S6001 and S6002 of FIG. 6 will be described. These processes are processes in which the priority order of each second intermediate data generation unit is set, and the parallel processing scheduler 4402 allocates the first intermediate data. In order to simplify the description, a case where the second intermediate data is created after the first intermediate data of all pages is created will be described.

図7は、一つの第2中間データ生成部で第2中間データを生成する従来技術について説明する図である。生成された第2中間データ7000と、レンダリング済データ7100と、印刷処理済データ7200のタイムチャートである。レンダリング処理は、実質上、図1のRIP1008によって行なわれるので、第2中間データの生成とレンダリング処理は並列して実行される。レンダリング処理を行うページに対応する第2中間データが生成されなければレンダリング処理は行えない。印刷処理は、図1のプリンタ部1300を操作して紙面上に印刷する処理であり、物理的な用紙の搬送時間等の時間がかかる。特にプリンタ部1300が停止している状態から最初の用紙が出力されるまでの時間はFCOTと呼ばれ、プリンタ部の性能を示す一つの指標となっている。   FIG. 7 is a diagram for explaining a conventional technique for generating the second intermediate data by one second intermediate data generation unit. 10 is a time chart of generated second intermediate data 7000, rendered data 7100, and print processed data 7200. Since the rendering process is substantially performed by the RIP 1008 of FIG. 1, the generation of the second intermediate data and the rendering process are executed in parallel. If the second intermediate data corresponding to the page to be rendered is not generated, the rendering process cannot be performed. The printing process is a process of printing on the paper surface by operating the printer unit 1300 of FIG. 1, and takes time such as a physical paper transport time. In particular, the time from when the printer unit 1300 is stopped until the first sheet is output is called FCOT, which is an index indicating the performance of the printer unit.

なお、プリンタ部に転送するビットマップを生成してからプリンタ部の停止状態を解除することが一般的であるが、RIPに渡す第2中間データが生成されてから解除する場合や、第2中間データが生成されていない段階で解除するような場合もある。本実施の形態では、印刷するビットマップが生成されてからプリンタ部の待ちを解除するものとする。本実施の形態におけるFCOTは、図7に示しているように一ページ目のビットマップデータが生成されてから、1ページ目の用紙が出力されるまでの時間となる。   In general, the stop state of the printer unit is canceled after the bitmap to be transferred to the printer unit is generated. However, when the second intermediate data to be transferred to the RIP is generated, the second intermediate data is released. In some cases, it is canceled when data is not generated. In this embodiment, it is assumed that the printer unit waits after a bitmap to be printed is generated. The FCOT in the present embodiment is the time from when the first page bitmap data is generated to when the first page paper is output, as shown in FIG.

図7によると、印刷処理7200は4ページまで遅延無く行っているが、5ページ目以降は遅延7202が発生しているため、効率的に処理が行えていない。これを、図8に示すように2つの第2中間データ生成部、即ち2つのスレッドで第2中間データの生成を行うと、効率的に印刷用データ処理を行うことが可能となる。   According to FIG. 7, the print processing 7200 is performed without delay until the fourth page, but since the delay 7202 occurs after the fifth page, the processing cannot be performed efficiently. If the second intermediate data is generated by two second intermediate data generation units, that is, two threads, as shown in FIG. 8, the print data processing can be efficiently performed.

例えば、図8のように1ページから4ページまでの第2中間データの生成処理を一つの第2中間データ生成部4403aで行い、5ページ以降の処理を他方の第2中間データ生成部4403bで行う。なお、1ページから4ページまでの第2中間データ8000は、ネットワーク制御部4100やユーザI/F制御部4200のスレッドより優先して実行されるように設定する。また、5ページ以降の第2中間データ8100は、第2中間データ生成部4403bによりネットワーク制御部4100やユーザI/F制御部4200のスレッドより優先して実行されないように制御する。   For example, as shown in FIG. 8, the second intermediate data generation process from page 1 to page 4 is performed by one second intermediate data generation unit 4403a, and the process after page 5 is performed by the other second intermediate data generation unit 4403b. Do. Note that the second intermediate data 8000 from page 1 to page 4 is set to be executed with priority over the thread of the network control unit 4100 or the user I / F control unit 4200. The second intermediate data 8100 on and after the fifth page is controlled by the second intermediate data generation unit 4403b so that it is not executed in preference to the thread of the network control unit 4100 or the user I / F control unit 4200.

処理を分断する境目(本実施形態では5ページ)は、一般的に表すと、以下の数式を満たす最大のNとなる。

Figure 0005284076
In general, the boundary at which the process is divided (5 pages in the present embodiment) is N which satisfies the following formula.
Figure 0005284076

ここでf(i)はページiの第2中間データの生成予測時間である。FCOTは上述したプリンタ部が停止している状態から最初の用紙が出力されるまでの時間である。tはプリンタ部で連続して印刷処理を行える場合の、連続するページの出力完了の間隔である。r(i)はページiのビットマップ生成に必要な時間である。   Here, f (i) is the predicted generation time of the second intermediate data of page i. FCOT is the time from when the printer unit is stopped until the first sheet is output. t is an interval between completions of continuous page output when the printer unit can continuously perform print processing. r (i) is the time required to generate a bitmap for page i.

いずれかの第2中間データ生成部に割り当てられた処理が終了すると、並列処理スケジューラ4402は第2中間データの生成が終了していないページの再割り振りを行う。   When the process assigned to any of the second intermediate data generation units is completed, the parallel processing scheduler 4402 reallocates pages for which generation of the second intermediate data has not been completed.

<再割当て処理と優先順位の変更>
次に図9、図10を用いて、再割当て処理と優先順位の変更処理について具体的に説明する。
処理を終了した第2中間データ生成部で最後に処理していたページをM、同時点でもう一方の第2中間データ生成部の処理対象となっているページをP、同時点でレンダリングしているページをQ、同時点で印刷処理を行っているページをRとする。
<Reassignment and priority change>
Next, the reallocation process and the priority order change process will be specifically described with reference to FIGS. 9 and 10.
The page that was last processed by the second intermediate data generation unit that has completed the processing is M, the page that is the processing target of the other second intermediate data generation unit at the same time is P, and the page is rendered at the same time. Let Q be the current page and R be the page that is printing at the same time.

(MがPよりも小さい場合)
図9(a)に示す例では、Mページ(図では4ページ)が終了した時点で、ページP+1(図では9ページ)から最終ページ(図では20ページ)までの第2中間データ生成処理が終了していない。この場合、図9(b)に示すように、並列処理スケジューラ4402は、ページP+1からページJ(ここでは13ページ)までを、ページPを処理していた第2中間データ生成部(図中下側)で行う。そして、ページJ+1(図では14ページ)から最終ページまでを、処理が終了した第2中間データ生成部(図中上側)で処理するようにスケジューリングを行う(図9(b))。即ち、前回割り当てられた処理が終了していない第2中間データ生成部(図中下側)において、優先的な印刷用データ処理を行なう。つまり、終了した部分以外の印刷用データ処理を、複数の制御手段に割り当てる。
(When M is smaller than P)
In the example shown in FIG. 9A, when the M page (4 pages in the figure) is completed, the second intermediate data generation processing from the page P + 1 (9 pages in the figure) to the last page (20 pages in the figure) is performed. Not finished. In this case, as shown in FIG. 9B, the parallel processing scheduler 4402 has a second intermediate data generator (bottom in the figure) that has processed page P from page P + 1 to page J (here, page 13). Side). Then, scheduling is performed so that the page J + 1 (page 14 in the figure) to the last page is processed by the second intermediate data generation unit (upper side in the figure) that has been processed (FIG. 9B). That is, preferential printing data processing is performed in the second intermediate data generation unit (lower side in the figure) where the previously assigned processing has not been completed. That is, printing data processing other than the completed portion is assigned to a plurality of control means.

また並列処理スケジューラ4402は、ページP+1が割り振られた第2中間データ生成部(図中下側)を、上述のネットワーク制御部4100やユーザI/F制御部4200のスレッドより優先して実行されるように設定する。また、J+1ページ(14ページ)が割り振られた第2中間データ生成部(図中上側)を、上述のネットワーク制御部4100やユーザI/F制御部4200のスレッドより優先して実行されないように設定する。実質上、各第2中間データ生成部の優先順位は互いに入れ替えられることになる。   The parallel processing scheduler 4402 executes the second intermediate data generation unit (lower side in the figure) to which the page P + 1 is allocated with priority over the threads of the network control unit 4100 and the user I / F control unit 4200 described above. Set as follows. Also, the second intermediate data generation unit (upper side in the figure) to which page J + 1 (page 14) is allocated is set not to be executed in preference to the thread of the network control unit 4100 or user I / F control unit 4200 described above. To do. In effect, the priorities of the second intermediate data generation units are interchanged with each other.

Jは以下の数式を満たすもっとも大きい整数に設定する。なお、以下の数式では、レンダリングにかかる時間は第2中間データ生成時間よりも小さいとして無視している。

Figure 0005284076
J is set to the largest integer that satisfies the following formula. In the following formula, the time required for rendering is ignored because it is shorter than the second intermediate data generation time.
Figure 0005284076

次にJページ(図では13ページ)までの第2中間データ生成処理が終了した時点で、他方の第2中間データ生成処理が終了していなければ、その時点で、図6のステップS6006に進み、再割当て処理及び優先順位の変更を行なう。図9の例では、1番目に上式でJとして求められたJ1ページ(図では13ページ)が終了した時点で、上側の第2中間データ生成部での第2中間データ生成処理が終了しておらず、19ページの途中までしか終了していない。従って、再度Jの値を求め、2度目のJの値J2=19だとすると、20ページについては再割当ての対象となり、下側の第2中間データ生成部で20ページの第2中間データを生成する。この際、優先順位が変更になり、下側の第2中間データ生成部の優先順位が下がり、ネットワーク制御部4100やユーザI/F制御部4200の割り込み処理を下側の第2中間データ生成部で実行するように設定が変わる。   Next, when the second intermediate data generation process up to page J (page 13 in the figure) has been completed, if the other second intermediate data generation process has not been completed, the process proceeds to step S6006 in FIG. The reallocation process and the priority order are changed. In the example of FIG. 9, when the J1 page (page 13 in the figure) first obtained as J in the above formula is completed, the second intermediate data generation process in the upper second intermediate data generation unit is completed. It is not completed until the middle of page 19. Accordingly, when the value of J is obtained again and the second value of J is J2 = 19, the 20th page is subject to reallocation, and the second intermediate data generating unit generates the 20th page of second intermediate data. . At this time, the priority order is changed, the priority order of the lower second intermediate data generation unit is lowered, and the interrupt processing of the network control unit 4100 and the user I / F control unit 4200 is processed by the lower second intermediate data generation unit. The setting changes to be executed.

(MがPよりも大きい場合)
処理を終了した第2中間データ生成部で最後に処理していたページMが、同時点でもう一方の第2中間データ生成部の処理対象となっているページPよりも大きい場合について説明する、
図10に示す例では、1度目の再割当て処理では、図9と同様の処理を行ない、図10(a)から図10(b)に進む。その後、最終ページM(ここでは20ページ)が終了した時点で、他方の第2中間データ生成部でページP(ここでは12ページ)が処理中である場合、M>Pとなる。この場合、再度、Jの値を求め、J2=14だとすると、図10(c)に示すようにページP+1(ここでは13ページ)からページJ2(ここでは14ページ)までを、ページPを処理していた図中下側の第2中間データ生成部で行う。ページJ2+1(ここでは15ページ)から、J1ページまでを、図10(b)で処理が終了した図中上側の第2中間データ生成部で処理するようにスケジューリングを行う。この再割当てでは、少ない数字のページを処理する下側の第2中間データ生成部が、優先的に処理すべき第2中間データ生成部であるので、上側の第2中間データ生成部が、引き続き割り込み対象となる。つまり、実質上、各第2中間データ生成部の優先順位は変更されない。つまり、再割当て手段は、その他の処理を過去にどの制御手段が実行したかを考慮して、最も優先順位が高い部分が割り当てられた制御手段以外の制御手段に、その他の処理を実行させる。
(When M is larger than P)
A case will be described in which the page M that was last processed by the second intermediate data generation unit that has finished processing is larger than the page P that is the processing target of the other second intermediate data generation unit at the same time.
In the example shown in FIG. 10, in the first reassignment process, the same process as in FIG. 9 is performed, and the process proceeds from FIG. 10 (a) to FIG. 10 (b). After that, when the last page M (here, 20 pages) is completed, if page P (here, 12 pages) is being processed in the other second intermediate data generation unit, M> P. In this case, if the value of J is obtained again and J2 = 14, page P is processed from page P + 1 (page 13 here) to page J2 (page 14 here) as shown in FIG. This is performed by the second intermediate data generation unit on the lower side in the figure. Scheduling is performed so that pages J2 + 1 (15 pages in this case) to J1 are processed by the second intermediate data generation unit on the upper side in FIG. In this reallocation, since the lower second intermediate data generation unit that processes pages with a small number is the second intermediate data generation unit to be processed with priority, the upper second intermediate data generation unit continues to Can be interrupted. That is, the priority order of each second intermediate data generation unit is not substantially changed. That is, the reassignment unit causes the control unit other than the control unit to which the portion with the highest priority is assigned to execute the other process in consideration of which control unit has executed the other process in the past.

<メモリの使用状況>
ページ1からページLまでの処理を一つのスレッドで行い、L+1からMまでを別のスレッドで処理したときの第2中間データのメモリ出力状況を図11に示す。この図に示されるように、処理を割り振ったページの境目以外では、メモリを連続的に使用することが可能になる。
<Memory usage status>
FIG. 11 shows the memory output status of the second intermediate data when processing from page 1 to page L is performed by one thread and processing from L + 1 to M is performed by another thread. As shown in this figure, the memory can be used continuously except at the boundary of the page to which the process is allocated.

<本実施形態の効果>
以上で説明した方法によれば、f(i)の予測に誤差がある場合や、第2中間データ生成に直接関係が無いような処理が割り込んだ場合においても、第2中間データの生成処理の順番を、ある程度印刷する順番通りに行うことができる。これにより、高速に第2中間データ生成を行うことができ、ある程度同じスレッドで連続するページを処理することになるので、メモリ使用効率を向上させることができる。
<Effect of this embodiment>
According to the method described above, even when there is an error in the prediction of f (i) or when a process that is not directly related to the generation of the second intermediate data is interrupted, the second intermediate data generation process is performed. The order can be performed in the order of printing to some extent. As a result, the second intermediate data can be generated at high speed, and successive pages are processed to some extent by the same thread, so that the memory usage efficiency can be improved.

また、並列処理スケジューラ4402は、オペレーティングシステム4000が公開するAPIを利用して取得できる、本システム上で動作するスレッドのCPU占有率にしたがって、上述したNやLの値を決定してもよい。   Further, the parallel processing scheduler 4402 may determine the above-described values of N and L according to the CPU occupancy rate of threads operating on this system, which can be acquired using an API disclosed by the operating system 4000.

つまり、本実施の形態を適用する別のシステムでは、第2中間データ生成よりも優先順位が高い処理が実行されてもよい。この場合、ネットワークやUI処理によって第2中間データ生成処理は阻害されないが、その他の処理で上述のf(i)の予測値に誤差が生じる恐れがある。そのため第2中間データ生成処理スレッドの占有率を計測して、f(i)にその値を乗ずることでNやLの値を算出すれば、より効率的に処理を行うことができる。   That is, in another system to which this exemplary embodiment is applied, processing having a higher priority than the second intermediate data generation may be executed. In this case, the second intermediate data generation process is not hindered by the network or the UI process, but an error may occur in the predicted value of f (i) described above in other processes. Therefore, if the occupancy rate of the second intermediate data generation processing thread is measured and the value of N or L is calculated by multiplying the value by f (i), the processing can be performed more efficiently.

また、並列処理スケジューラ4402が、上述したNやLの値を算出している間、動作中の第2中間データ生成部は、既に割り振られている処理を実行するようにしてもよい。即ち、並列処理スケジューラ4402がNやLの値を算出するのに時間がかかる場合においても、第2中間データ生成部は前回割り当てられた処理を続行することができるので、更に効率的に処理が行うことができる。この場合、NやLの値を算出している間に生成された第2中間データ以外のページを、第2中間データ生成部で処理するように制御すればよい。   In addition, while the parallel processing scheduler 4402 calculates the above-described values of N and L, the second intermediate data generation unit that is operating may execute a process that has already been allocated. That is, even if it takes time for the parallel processing scheduler 4402 to calculate the values of N and L, the second intermediate data generation unit can continue the process assigned last time, so that the process can be performed more efficiently. It can be carried out. In this case, it is only necessary to control the second intermediate data generating unit to process pages other than the second intermediate data generated while calculating the values of N and L.

(他の実施形態)
以上の実施形態について、2つの制御手段(ここではCPU)を用いた情報処理方法について説明したが、本発明はこれに限定されるものではなく、3つ以上のCPUを用いた情報処理方法にも適用できる。また、さらには、CPUやメモリを複数のスレッドで共有する並列処理や、CPUやメモリを複数のプロセスで共有する並列処理においても、適用できる。
(Other embodiments)
In the above embodiment, the information processing method using two control means (here, the CPU) has been described. However, the present invention is not limited to this, and the information processing method using three or more CPUs is used. Is also applicable. Furthermore, the present invention can also be applied to parallel processing in which a CPU and a memory are shared by a plurality of threads, and parallel processing in which a CPU and a memory are shared by a plurality of processes.

なお、本発明は、前述した実施形態の機能を実現するプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置が、供給されたプログラムコードを読み出して実行することによっても達成される。したがって、本発明の機能処理をコンピュータで実現するために、コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。   The present invention can also be achieved by supplying a program that realizes the functions of the above-described embodiments directly or remotely to a system or apparatus, and the system or apparatus reads and executes the supplied program code. The Accordingly, the program code itself installed in the computer in order to realize the functional processing of the present invention by the computer is also included in the technical scope of the present invention.

その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。   In this case, the program may be in any form as long as it has a program function, such as an object code, a program executed by an interpreter, or script data supplied to the OS.

プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスクがある。また、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。   Examples of the recording medium for supplying the program include a floppy (registered trademark) disk, a hard disk, an optical disk, and a magneto-optical disk. Further, there are MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD-R) and the like.

その他、クライアントPCのブラウザを用いてインターネットサイトに接続し、本発明に係るプログラムそのもの、若しくは更に自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードするという利用方法もある。また、本発明に係るプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムを複数のユーザに対してダウンロードさせるWWWサーバも、本発明の範疇に含まれる。 また、本発明に係るプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布してもよい。所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。   In addition, there is a usage method in which a browser of a client PC is used to connect to an Internet site and a program according to the present invention itself or a file including an automatic installation function is downloaded to a recording medium such as a hard disk. It can also be realized by dividing the program code constituting the program according to the present invention into a plurality of files and downloading each file from a different homepage. That is, a WWW server that allows a plurality of users to download a program for realizing the functional processing of the present invention on a computer is also included in the scope of the present invention. Further, the program according to the present invention may be encrypted and stored in a storage medium such as a CD-ROM and distributed to users. This is realized by having a user who has cleared a predetermined condition download key information to be decrypted from a homepage via the Internet, execute the encrypted program by using the key information, and install it on a computer. It is also possible.

また、プログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。   Further, the functions of the above-described embodiments can be realized by an OS or the like running on the computer based on an instruction of the program and performing part or all of the actual processing.

さらに、PCの機能拡張ユニットに備わるメモリに本発明に係るプログラムが書き込まれ、そのプログラムに基づき、その機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行なう場合も、本発明の範疇に含まれる。   Furthermore, when the program according to the present invention is written in the memory provided in the function expansion unit of the PC and the CPU or the like provided in the function expansion unit performs part or all of the actual processing based on the program, Included in the category.

本発明の実施の形態に係るシステム全体図を説明するための図である。It is a figure for demonstrating the whole system figure concerning embodiment of this invention. 本発明の実施の形態に係る印刷用データ処理を説明するためのフローチャートである。It is a flowchart for demonstrating the data processing for printing which concerns on embodiment of this invention. 本発明の実施の形態に係る印刷データと第1中間データを説明するための図である。It is a figure for demonstrating the print data and 1st intermediate data which concern on embodiment of this invention. 本発明の実施の形態に係るソフトウェア構成を説明するための図である。It is a figure for demonstrating the software structure which concerns on embodiment of this invention. 本発明の実施の形態に係る第2中間データ生成部を説明するための図である。It is a figure for demonstrating the 2nd intermediate data generation part which concerns on embodiment of this invention. 本発明の実施の形態に係る並列処理スケジューラの動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the parallel processing scheduler which concerns on embodiment of this invention. 本発明の実施の形態に係る並列処理スケジューラの動作を説明するための図である。It is a figure for demonstrating operation | movement of the parallel processing scheduler which concerns on embodiment of this invention. 本発明の実施の形態に係る並列処理スケジューラの動作を説明するための図である。It is a figure for demonstrating operation | movement of the parallel processing scheduler which concerns on embodiment of this invention. 本発明の実施の形態に係る並列処理スケジューラの動作を説明するための図である。It is a figure for demonstrating operation | movement of the parallel processing scheduler which concerns on embodiment of this invention. 本発明の実施の形態に係る並列処理スケジューラの動作を説明するための図である。It is a figure for demonstrating operation | movement of the parallel processing scheduler which concerns on embodiment of this invention. 本発明の実施の形態に係るメモリ管理を説明するための図である。It is a figure for demonstrating the memory management which concerns on embodiment of this invention.

Claims (7)

印刷用データを入力する入力手段と、
前記入力手段により入力された前記印刷用データを用いた印刷用データ処理及びその他の処理を並列に実行できる複数の制御手段と、
前記印刷用データ処理を複数の部分に分割して前記複数の制御手段に割当てる割当手段と、
前記複数の制御手段の何れかにおいて、前記印刷用データ処理の割当てられた部分の前記印刷用データ処理を終了した場合に、終了した部分以外の前記印刷用データ処理を、再度、前記複数の制御手段に割り当てる再割手段と、
前記再割当手段による再割り当てに従って前記複数の制御手段のそれぞれに前記印刷用データ処理を実行させるとともに、前記再割り当ての結果、前記印刷用データ処理の複数の部分のうちで最も優先順位が高い部分が割り当てられた制御手段以外の制御手段に、前記印刷用データ処理より優先して前記その他の処理を実行させる実行手段と、
前記複数の制御手段により前記印刷用データ処理が実行された前記印刷用データに基づいて、印刷を実行する印刷手段と、
を含むことを特徴とする印刷装置。
An input means for inputting print data;
A plurality of control means capable of executing print data processing using the print data input by the input means and other processes in parallel;
And assigning means for assigning to said plurality of control means by dividing the print data processing into a plurality of portions,
Wherein in any of the plurality of control means, when it is completed to the print data processing assignment is part of the print data processing, the print data processing other than termination portion, again, a plurality and re-allocation means for allocating the control means,
According to the reallocation by the reallocation unit, each of the plurality of control units executes the print data processing, and as a result of the reallocation , the highest priority portion among the plurality of portions of the print data processing Execution means for causing the control means other than the control means assigned to execute the other processing in preference to the print data processing ;
Printing means for executing printing based on the printing data for which the printing data processing has been executed by the plurality of control means;
A printing apparatus comprising:
前記再割手段は、前記終了した部分以外の前記印刷用データ処理の中で優先順位が低い部分を、前記印刷用データ処理の割り当てられた部分を終了した前記制御手段に対して割り当てることを特徴とする請求項に記載の印刷装置。 The re-assignment means, the low priority portion in the termination portion other than the print data processing, assigning to the control means terminates the allocated portion of the print data processing The printing apparatus according to claim 1 , wherein: 前記印刷用データは、ページ単位の複数の印刷用データ部分を含み、
前記印刷手段は、前記複数の印刷用データ部分に前記印刷用データ処理が実行されることにより生成されたページ単位の画像データに基づいて印刷を実行し、
前記印刷手段により先に印刷されるページに対応する前記印刷用データ部分の前記印刷用データ処理の優先順位が高いことを特徴とする請求項1又は2に記載の印刷装置。
The print data includes a plurality of print data portions in page units,
The printing unit performs printing based on page-unit image data generated by executing the print data processing on the plurality of print data portions;
3. The printing apparatus according to claim 1, wherein a priority of the print data processing of the print data portion corresponding to a page printed earlier by the printing unit is high.
前記再割手段による再割当てが完了するまで、処理が終了していない制御手段は引き続き前回割り当てられた処理を実行することを特徴とする請求項乃至のいずれか1項に記載の印刷装置。 Until said re-allocation due to re-allocation means is completed, to any one of claims 1 to 3 process control means not completed it continues and executes the process devoted last split The printing apparatus as described. 前記制御手段は、CPUであることを特徴とする請求項乃至のいずれか1項に記載の印刷装置。 Wherein, the printing apparatus according to any one of claims 1 to 4, characterized in that a CP U. 印刷用データを用いた印刷用データ処理及びその他の処理を並列に実行できる複数の制御手段を備えた印刷装置の制御方法であって、
前記印刷用データを入力する入力ステップと、
前記印刷用データ処理を複数の部分に分割して前記複数の制御手段に割当てる割当ステップと、
前記複数の制御手段の何れかにおいて、前記印刷用データ処理の割当てられた部分の前記印刷用データ処理を終了した場合に、終了した部分以外の前記印刷用データ処理を、再度、前記複数の制御手段に割り当てる再割ステップと、
前記再割当ステップにおける再割り当てに従って前記複数の制御手段のそれぞれに前記印刷用データ処理を実行させるとともに、前記再割り当ての結果、前記印刷用データ処理の複数の部分のうちで最も優先順位が高い部分が割り当てられた制御手段以外の制御手段に、前記印刷用データ処理より優先して前記その他の処理を実行させる実行ステップと、
前記複数の制御手段により前記印刷用データ処理が実行された前記印刷用データに基づいて、印刷を実行する印刷ステップと、
を含むことを特徴とする印刷装置の制御方法。
A printing apparatus control method comprising a plurality of control means capable of executing printing data processing using printing data and other processing in parallel,
An input step for inputting the printing data;
An allocation step of assigning to said plurality of control means by dividing the print data processing into a plurality of portions,
Wherein in any of the plurality of control means, when it is completed to the print data processing assignment is part of the print data processing, the print data processing other than termination portion, again, a plurality and re-allocation step of allocating to the control means,
According to the reassignment in the reassignment step, each of the plurality of control means executes the print data processing, and as a result of the reassignment, a portion having the highest priority among the plurality of portions of the print data processing An execution step of causing the control means other than the control means assigned to execute the other processing in preference to the print data processing ;
A printing step for executing printing based on the printing data for which the printing data processing has been executed by the plurality of control means;
A control method for a printing apparatus .
請求項に記載の印刷装置の制御方法の各ステップをコンピュータに実行させるためのプログラム。 The program for making a computer perform each step of the control method of the printing apparatus of Claim 6 .
JP2008331184A 2008-12-25 2008-12-25 Printing apparatus, control method therefor, and program Expired - Fee Related JP5284076B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008331184A JP5284076B2 (en) 2008-12-25 2008-12-25 Printing apparatus, control method therefor, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008331184A JP5284076B2 (en) 2008-12-25 2008-12-25 Printing apparatus, control method therefor, and program

Publications (2)

Publication Number Publication Date
JP2010149422A JP2010149422A (en) 2010-07-08
JP5284076B2 true JP5284076B2 (en) 2013-09-11

Family

ID=42569053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008331184A Expired - Fee Related JP5284076B2 (en) 2008-12-25 2008-12-25 Printing apparatus, control method therefor, and program

Country Status (1)

Country Link
JP (1) JP5284076B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5594470B2 (en) * 2010-09-10 2014-09-24 富士ゼロックス株式会社 Printing control apparatus, printing system, and program
JP5766059B2 (en) * 2011-07-25 2015-08-19 キヤノン株式会社 Image forming apparatus, image forming apparatus control method, and program
JP6746326B2 (en) 2016-02-19 2020-08-26 キヤノン株式会社 Printing device, printing method, and program for interpreting print data by a plurality of interpreting means

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3553985B2 (en) * 1991-08-06 2004-08-11 株式会社日立製作所 Print control method and print control device
JPH11301046A (en) * 1998-04-20 1999-11-02 Nec Software Hokuriku Ltd Printing drawing system
JP2000330800A (en) * 1999-05-20 2000-11-30 Canon Inc Unit and method for output control
JP2001217971A (en) * 2000-02-03 2001-08-10 Ricoh Co Ltd Facsimile controller
JP4060233B2 (en) * 2003-05-19 2008-03-12 大日本スクリーン製造株式会社 Task control for print processing
JP4481041B2 (en) * 2004-03-09 2010-06-16 理想科学工業株式会社 Printing device
CN100351857C (en) * 2005-01-07 2007-11-28 北京北大方正电子有限公司 Printing control method capable of reducing print memory requirement
JP2007156613A (en) * 2005-12-01 2007-06-21 Canon Inc Drawing controller, drawing control method, storage medium and program

Also Published As

Publication number Publication date
JP2010149422A (en) 2010-07-08

Similar Documents

Publication Publication Date Title
US7295336B2 (en) Document-management printing system having a displaying unit, and its control method
US6888641B2 (en) Designating an image processing apparatus based on limited selection conditions
US20040196470A1 (en) Raster image processing (RIP) manager for enhanced print shop operation
US8625133B2 (en) Print data processing apparatus, print data processing method, and storage medium
US9678697B2 (en) Systems and methods of displaying a printer driver user interface
JP4482525B2 (en) Image forming apparatus
JP2008146434A (en) Printing control apparatus, printing control method, printing control program, printing apparatus, printing method, printing program, and recording medium
JP5284076B2 (en) Printing apparatus, control method therefor, and program
JP4818389B2 (en) Printing apparatus and control method for data processing by parallel processing
JP6206451B2 (en) Distributed printing control program, distributed printing control apparatus, and distributed printing control method
JP5268427B2 (en) Image forming apparatus and image forming system
JP4303732B2 (en) Image forming apparatus
JPH11194911A (en) Method and system for optical distribution printing and record medium for recording and programming the same method
JP5740913B2 (en) Image forming apparatus and control method thereof
JP5799968B2 (en) Printing system
JP2010250393A (en) Information processing apparatus and information processing method
JP5407520B2 (en) Print control apparatus and print control system
US20020101603A1 (en) Method and apparatus for embodying documents
JP4412718B2 (en) Information processing apparatus and control method thereof
JP2009211523A (en) Information processor and program
JP3833090B2 (en) Control method, control device, program, and storage medium
JP5231926B2 (en) Information processing apparatus, control method therefor, and computer program
JP5907609B2 (en) Information processing apparatus, printing apparatus, printing system, printing control method, and program
JP2012008838A (en) Print document conversion device and program
JP2018010640A (en) Distributed printing control program, distributed printing control device, and distributed printing control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130409

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130430

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130529

LAPS Cancellation because of no payment of annual fees