JP5966805B2 - Control device for printing - Google Patents

Control device for printing Download PDF

Info

Publication number
JP5966805B2
JP5966805B2 JP2012207957A JP2012207957A JP5966805B2 JP 5966805 B2 JP5966805 B2 JP 5966805B2 JP 2012207957 A JP2012207957 A JP 2012207957A JP 2012207957 A JP2012207957 A JP 2012207957A JP 5966805 B2 JP5966805 B2 JP 5966805B2
Authority
JP
Japan
Prior art keywords
data
processor
intermediate code
page
cpu
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.)
Active
Application number
JP2012207957A
Other languages
Japanese (ja)
Other versions
JP2014061648A (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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2012207957A priority Critical patent/JP5966805B2/en
Publication of JP2014061648A publication Critical patent/JP2014061648A/en
Application granted granted Critical
Publication of JP5966805B2 publication Critical patent/JP5966805B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本明細書によって開示される技術は、印刷のための制御装置に関する。特に、複数個のプロセッサを備える制御装置に関する。   The technology disclosed in this specification relates to a control device for printing. In particular, the present invention relates to a control device including a plurality of processors.

特許文献1には、印刷装置が開示されている。印刷装置は、第1のCPUと第2のCPUとを備える。第1のCPUと第2のCPUとのそれぞれは、印刷データを中間段階のデータに変換する処理と、中間段階のデータをビットマップデータに変換する処理と、の両方を実行可能である。   Patent Document 1 discloses a printing apparatus. The printing apparatus includes a first CPU and a second CPU. Each of the first CPU and the second CPU can execute both a process for converting print data into intermediate-stage data and a process for converting intermediate-stage data into bitmap data.

特開2003−251867号公報JP 2003-251867 A

本明細書では、複数個のプロセッサによってビットマップデータが生成される際に利用されるメモリの容量を低減するための技術を提供する。   The present specification provides a technique for reducing the capacity of a memory used when bitmap data is generated by a plurality of processors.

本明細書によって開示される技術は、印刷のための制御装置である。制御装置は、第1のプロセッサと第2のプロセッサとを備える。第1のプロセッサと第2のプロセッサとのそれぞれは、複数ページ分のPDLデータのうちの1ページ分のPDLデータを利用して、1ページ分の中間コードデータを生成する中間コード生成処理と、生成済みの中間コードデータを利用して、ビットマップデータを生成するビットマップ生成処理と、を、複数ページ分のPDLデータを用いて、複数ページ分のビットマップデータが生成されるまで実行する。第1のプロセッサと第2のプロセッサとのそれぞれは、当該プロセッサと異なる他のプロセッサがビットマップ生成処理を実行している第1の場合に、複数ページ分のPDLデータのうち、中間コード生成処理により中間コードデータの生成が未だ完了していない1ページ分のPDLデータを利用して、中間コード生成処理を実行する。第1のプロセッサと第2のプロセッサとのそれぞれは、他のプロセッサがビットマップ生成処理を実行していない第2の場合に、生成済みの中間コードデータのうち、ビットマップ生成処理によるビットマップデータの生成が未だ完了していない中間コードデータを利用して、ビットマップ生成処理を実行する。   The technology disclosed by this specification is a control device for printing. The control device includes a first processor and a second processor. Each of the first processor and the second processor uses one page of PDL data among a plurality of pages of PDL data to generate intermediate code data for one page; A bitmap generation process for generating bitmap data using the generated intermediate code data is executed using a plurality of pages of PDL data until bitmap data for a plurality of pages is generated. Each of the first processor and the second processor performs intermediate code generation processing among PDL data for a plurality of pages in the first case where another processor different from the processor executes the bitmap generation processing. Thus, intermediate code generation processing is executed using PDL data for one page for which generation of intermediate code data has not yet been completed. Each of the first processor and the second processor, in the second case where the other processor is not executing the bitmap generation processing, among the generated intermediate code data, bitmap data by the bitmap generation processing Bitmap generation processing is executed using intermediate code data that has not yet been generated.

プロセッサがビットマップ生成処理を実行している間に利用されるメモリの容量は、プロセッサが中間コード生成処理を実行している間に利用されるメモリの容量よりも多い可能性が高い。上記の制御装置では、一方のプロセッサがビットマップ処理を実行している場合、他方のプロセッサは、中間コード生成処理を実行する。このため、第1のプロセッサと第2のプロセッサとが、同時にビットマップ処理を実行する状況を回避することができる。この構成によれば、第1のプロセッサと第2のプロセッサによって、PDLデータからビットマップデータが生成される際に利用されるメモリ容量を低減し得る。   There is a high possibility that the amount of memory used while the processor executes the bitmap generation processing is larger than the amount of memory used while the processor executes the intermediate code generation processing. In the above control device, when one processor is executing the bitmap processing, the other processor executes the intermediate code generation processing. For this reason, it is possible to avoid a situation in which the first processor and the second processor execute bitmap processing at the same time. According to this configuration, the memory capacity used when the first processor and the second processor generate bitmap data from PDL data can be reduced.

なお、上記の制御装置のための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も、新規で有用である。   Note that a control method, a computer program, and a computer-readable recording medium storing the computer program for the control device are also novel and useful.

通信システムの構成の一例を示す。An example of a structure of a communication system is shown. 複数ページ分のPDLデータの一例を示す。An example of PDL data for a plurality of pages is shown. PDL処理のフローチャートを示す。The flowchart of a PDL process is shown. 設定コマンド処理のフローチャートを示す。The flowchart of a setting command process is shown. 両方コマンド処理のフローチャートを示す。The flowchart of both command processing is shown. BMP処理のフローチャートを示す。The flowchart of a BMP process is shown. CPUが並列に処理を実行する様子を説明するための時間遷移の一例を示す。An example of the time transition for demonstrating a mode that CPU performs a process in parallel is shown.

(第1実施例)
(システムの構成)
図1に示されるように、通信システム2は、PC(プリンタ10の周辺装置)6と、プリンタ10と、を備える。PC6及びプリンタ10は、LAN4を介して、相互に通信可能である。
(First embodiment)
(System configuration)
As shown in FIG. 1, the communication system 2 includes a PC (peripheral device of the printer 10) 6 and a printer 10. The PC 6 and the printer 10 can communicate with each other via the LAN 4.

(プリンタ10の構成)
プリンタ10は、操作部12と、表示部14と、印刷実行部16と、ネットワークインターフェイス18と、制御部20と、を備える。上記の各部12〜20は、バス線(符号省略)に接続されている。操作部12は、複数のキーによって構成される。ユーザは、操作部12を操作することによって、様々な指示をプリンタ10に与えることができる。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部16は、インクジェット方式、レーザ方式等の印刷機構を備え、制御装置20からの指示に従って印刷を実行する。ネットワークインターフェイス18は、LAN4に接続されている。
(Configuration of Printer 10)
The printer 10 includes an operation unit 12, a display unit 14, a print execution unit 16, a network interface 18, and a control unit 20. Each of the above-described units 12 to 20 is connected to a bus line (reference numeral omitted). The operation unit 12 includes a plurality of keys. The user can give various instructions to the printer 10 by operating the operation unit 12. The display unit 14 is a display for displaying various information. The print execution unit 16 includes a printing mechanism such as an inkjet method or a laser method, and executes printing in accordance with an instruction from the control device 20. The network interface 18 is connected to the LAN 4.

制御部20は、IC(Integrated Circuitの略)22と、メモリ30と、を備える。IC22は、2個のCPU24,26と、キャッシュメモリ28と、を備える。各CPU24,26は、メモリ30に格納されているプログラム48に従って、様々な処理を実行する。各CPU24,26は、並列的(同時的)に処理を実行可能である。   The control unit 20 includes an IC (abbreviation of integrated circuit) 22 and a memory 30. The IC 22 includes two CPUs 24 and 26 and a cache memory 28. Each CPU 24, 26 executes various processes according to a program 48 stored in the memory 30. The CPUs 24 and 26 can execute processing in parallel (simultaneously).

キャッシュメモリ28は、各CPU24,26が処理を実行する際に利用されるデータを、一時的に格納するためのメモリである。キャッシュメモリ28のメモリ容量(例えば32kByte)は、メモリ30のメモリ容量(例えば20MByte)と比較して、ごく小さい。一方で、各CPU24,26が、単位時間当りにキャッシュメモリ28に書き込み可能なデータサイズは、各CPU24,26が、単位時間当りにメモリ30に書き込み可能なデータサイズと比較して、極めて大きい。各CPU24,26が、単位時間当りに読み出し可能なデータサイズについても、同様である。即ち、各CPU24,26がキャッシュメモリ28のみを利用して処理を実行する場合、キャッシュメモリ28とメモリ30とを利用して処理を実行する場合と比較して、各CPU24,26の処理速度は高い。2個のCPU24,26が並列的に処理を実行する場合、2個のCPU24,26は、1個のキャッシュメモリ28を共同で利用する。   The cache memory 28 is a memory for temporarily storing data used when the CPUs 24 and 26 execute processing. The memory capacity (for example, 32 kBytes) of the cache memory 28 is very small compared to the memory capacity of the memory 30 (for example, 20 MByte). On the other hand, the data size that each CPU 24, 26 can write in the cache memory 28 per unit time is extremely large compared to the data size that each CPU 24, 26 can write in the memory 30 per unit time. The same applies to the data size that each CPU 24 and 26 can read out per unit time. That is, when the CPUs 24 and 26 execute processing using only the cache memory 28, the processing speed of the CPUs 24 and 26 is higher than when processing is executed using the cache memory 28 and the memory 30. high. When the two CPUs 24 and 26 execute processing in parallel, the two CPUs 24 and 26 use one cache memory 28 jointly.

メモリ30は、ROM、RAM、ハードディスク等によって構成される。メモリ30は、プログラム記憶領域46と、共用メモリ領域50と、各種データの格納領域70〜74と、を備える。プログラム記憶領域46は、CPU24,26によって実行されるプログラム48を格納している。   The memory 30 includes a ROM, a RAM, a hard disk, and the like. The memory 30 includes a program storage area 46, a shared memory area 50, and various data storage areas 70 to 74. The program storage area 46 stores a program 48 executed by the CPUs 24 and 26.

共用メモリ領域50は、CPU24,26によって共用されるメモリ領域である。共用メモリ領域50は、共通処理ページカウンタ60(以下では「CPC(Common Process page Counterの略)60」と呼ぶ)と、共通設定データカウンタ62(以下では「CSC(Common Setting data Counterの略)62」と呼ぶ)と、設定コマンド処理フラグ64(以下では「SPF(Setting command Process Flagの略)64」と呼ぶ)と、ビットマップ生成処理フラグ66(以下では「BPF(Bitmap generating Process Flagの略)66」と呼ぶ)と、設定データ52と、中間コードデータテーブル54と、を格納している。   The shared memory area 50 is a memory area shared by the CPUs 24 and 26. The shared memory area 50 includes a common processing page counter 60 (hereinafter referred to as “CPC (Common Process page Counter) 60”) and a common setting data counter 62 (hereinafter referred to as “CSC (Common Setting data Counter) 62”. ), A setting command processing flag 64 (hereinafter referred to as “SPF (abbreviation of Setting command Process Flag) 64”), and a bitmap generation processing flag 66 (hereinafter referred to as “BPF (abbreviation of Bitmap generating Process Flag)”). 66 ”), setting data 52, and intermediate code data table 54 are stored.

CPC60は、図3のPDL(Page Description Languageの略;ページ記述言語)処理の処理対象のページを示すカウンタである。CSC62は、どのページまでの設定データ(詳しくは後述する)が生成済みであるのかを示すカウンタである。SPF64は、いずれかのCPU24等が図4の設定コマンド処理を実行しているのか否かを示すフラグである。BPF66は、いずれかのCPU24等が図6のBMP(Bit Mapの略)処理を実行しているのか否かを示すフラグである。設定データ52は、CPU24等が後述の設定コマンドを実行することによって生成されるデータである。中間コードデータテーブル54は、中間コードデータを識別するためのデータ名を登録するためのテーブルである。   The CPC 60 is a counter indicating a page to be processed in the PDL (abbreviation of page description language) process of FIG. The CSC 62 is a counter indicating up to which page setting data (details will be described later) has been generated. The SPF 64 is a flag indicating whether any CPU 24 or the like is executing the setting command process of FIG. The BPF 66 is a flag indicating whether any CPU 24 or the like is executing the BMP (abbreviation of Bit Map) process of FIG. The setting data 52 is data generated when the CPU 24 or the like executes a setting command described later. The intermediate code data table 54 is a table for registering a data name for identifying intermediate code data.

PDLデータ格納領域70には、PC6等から受信されるPDLデータを格納するための記憶領域である。中間コードデータ格納領域72は、中間コードデータを格納するための記憶領域である。中間コードデータは、CPU24等が図5の両方コマンド処理を実行することによって生成されるデータである。BMPデータ格納領域74は、ビットマップデータを格納するための記憶領域である。ビットマップデータは、CPU24等が図6のBMP処理を実行することによって生成されるデータである。   The PDL data storage area 70 is a storage area for storing PDL data received from the PC 6 or the like. The intermediate code data storage area 72 is a storage area for storing intermediate code data. The intermediate code data is data generated by the CPU 24 and the like executing both command processes in FIG. The BMP data storage area 74 is a storage area for storing bitmap data. The bitmap data is data generated when the CPU 24 or the like executes the BMP process of FIG.

(PDLデータの構造)
PDLは、ページという概念を利用してデータを記述するためのあらゆる言語を含む概念である。PDLの例として、例えば、PDF(Portable Document Format)、PS(Post Script)等を挙げることができる。また、ワープロソフト、表計算ソフト、描画ソフト等で利用されている言語のうち、ページという概念を利用してデータを記述する言語も、PDLの一例である。
(PDL data structure)
PDL is a concept that includes all languages for describing data using the concept of pages. Examples of PDL include PDF (Portable Document Format) and PS (Post Script). Of the languages used in word processing software, spreadsheet software, drawing software, etc., a language for describing data using the concept of pages is also an example of PDL.

ユーザは、PC6に格納されているアプリケーションを利用して、PDLデータを生成することができる。そして、ユーザは、PDLデータによって表わされる画像の印刷を望む場合に、PDLデータをプリンタ10に送信するための操作をPC6の操作部に加えることができる。この場合、PC6は、PDLデータをプリンタ10に送信する。   The user can generate PDL data by using an application stored in the PC 6. When the user desires to print an image represented by the PDL data, the user can add an operation for transmitting the PDL data to the printer 10 to the operation unit of the PC 6. In this case, the PC 6 transmits the PDL data to the printer 10.

図2には、複数ページ分のPDLデータの一例が示されている。1ページ目のPDLデータは、アルファベット「A」〜「E」を示す5行分のテキストデータを含む。1ページ目のPDLデータに含まれる1行目のテキストデータは、テキスト「A」を示す描画コマンドと、文字サイズ「10pt」を示す設定コマンドと、を含む。従って、プリンタ10は、1行目のテキストデータを読み込むことによって、文字サイズ「10pt」でテキスト「A」を記述すべきことを知ることができる。   FIG. 2 shows an example of PDL data for a plurality of pages. The PDL data for the first page includes five lines of text data indicating alphabets “A” to “E”. The text data of the first line included in the PDL data of the first page includes a drawing command indicating the text “A” and a setting command indicating the character size “10 pt”. Accordingly, the printer 10 can know that the text “A” should be described with the character size “10 pt” by reading the text data of the first line.

1ページ目のPDLデータに含まれる2行目のテキストデータは、テキスト「B」を示す描画コマンドを含む。ただし、2行目のテキストデータは、文字サイズを示す設定コマンドを含まない。この場合、プリンタ10は、直前の行(本例では1行目)と同じ文字サイズ「10pt」でテキスト「B」を記述すべきことを知ることができる。同様に、1ページ目のPDLデータに含まれる3行目のテキストデータは、テキスト「C」を示す描画コマンドを含むが、文字サイズを示す設定コマンドを含まない。この場合、プリンタ10は、文字サイズ「10pt」でテキスト「C」を記述すべきことを知ることができる。このように、同じ文字サイズが2行以上に亘って継続して利用される場合には、後ろの行には、文字サイズを示す設定コマンドが記述されないことがあり得る。   The text data of the second line included in the PDL data of the first page includes a drawing command indicating the text “B”. However, the text data on the second line does not include a setting command indicating the character size. In this case, the printer 10 can know that the text “B” should be described with the same character size “10 pt” as the previous line (the first line in this example). Similarly, the text data of the third line included in the PDL data of the first page includes a drawing command indicating the text “C” but does not include a setting command indicating the character size. In this case, the printer 10 can know that the text “C” should be described with the character size “10 pt”. As described above, when the same character size is continuously used over two or more lines, a setting command indicating the character size may not be described in the subsequent lines.

同様に、プリンタ10は、1ページ目のPDLデータに含まれる4行目及び5行目のテキストデータを読み込むことによって、文字サイズ「20pt」でテキスト「D」、「E」を記述すべきことを知ることができる。   Similarly, the printer 10 should describe the texts “D” and “E” with the character size “20 pt” by reading the text data of the fourth and fifth lines included in the PDL data of the first page. Can know.

2ページ目のPDLデータは、アルファベット「F」〜「G」を示す3行分のテキストデータを含む。2ページ目のPDLデータに含まれる1行目のテキストデータは、テキスト「F」を示す描画コマンドを含むが、文字サイズを示す設定コマンドを含まない。この場合、プリンタ10は、直前のページ(即ち1ページ目)のPDLデータの最後の行(即ち「E」)と同じ文字サイズ「20Pt」でテキスト「F」を記述すべきことを知ることができる。このように、同じ文字サイズが2ページ以上に亘って継続して利用される場合には、後ろのページには、文字サイズを示す設定コマンドが記述されないことがあり得る。   The PDL data on the second page includes three lines of text data indicating alphabets “F” to “G”. The text data of the first line included in the PDL data of the second page includes a drawing command indicating the text “F”, but does not include a setting command indicating the character size. In this case, the printer 10 knows that the text “F” should be described with the same character size “20 Pt” as the last line (ie, “E”) of the PDL data of the previous page (ie, the first page). it can. As described above, when the same character size is continuously used for two or more pages, the setting command indicating the character size may not be described in the subsequent pages.

同様に、プリンタ10は、2ページ目のPDLデータに含まれる2行目及び3行目のテキストデータを読み込むことによって、文字サイズ「20pt」でテキスト「G」を記述すべきこと、及び、文字サイズ「30pt」でテキスト「H」を記述すべきこと、を知ることができる。   Similarly, the printer 10 should describe the text “G” with the character size “20 pt” by reading the text data of the second and third lines included in the PDL data of the second page, and the character It is possible to know that the text “H” should be described with the size “30 pt”.

なお、描画コマンドは、テキスト形式のデータに限られず、ベクトル形式のデータであってもよいし、画像形式のデータ(即ち、JPEG等のビットマップデータ)であってもよい。また、設定コマンドは、文字サイズに限られず、文字の書体(即ち、Times New Roman等)であってもよいし、文字の装飾(即ち、太字、網掛け等)であってもよいし、文字の色であってもよいし、ページのサイズ(即ち、A4、B4等の印刷媒体のサイズ)であってもよい。   The drawing command is not limited to text format data, and may be vector format data or image format data (that is, bitmap data such as JPEG). The setting command is not limited to the character size, and may be a character font (ie, Times New Roman, etc.), a character decoration (ie, bold, shaded, etc.) Or the size of a page (that is, the size of a print medium such as A4 or B4).

また、後で詳しく説明するが、例えば、CPU24は、1ページ目のPDLデータを利用して、1ページ目の中間コードデータを生成し、次いで、1ページ目の中間コードデータを利用して、1ページ目のビットマップデータを生成する。そして、CPU24は、1ページ目のビットマップデータを印刷実行部16に供給する。これにより、印刷実行部16は、1ページ目のビットマップデータに基づいて、印刷を実行する。同様に、例えば、CPU26は、4ページ目のPDLデータを利用して、4ページ目の中間コードデータを生成し、次いで、4ページ目の中間コードデータを利用して、4ページ目のビットマップデータを生成する。そして、CPU26は、4ページ目のビットマップデータを印刷実行部16に供給する。   As will be described in detail later, for example, the CPU 24 generates the intermediate code data of the first page using the PDL data of the first page, and then uses the intermediate code data of the first page, Bitmap data for the first page is generated. Then, the CPU 24 supplies the bitmap data of the first page to the print execution unit 16. As a result, the print execution unit 16 executes printing based on the bitmap data of the first page. Similarly, for example, the CPU 26 generates the intermediate code data of the fourth page using the PDL data of the fourth page, and then uses the intermediate code data of the fourth page to map the bitmap of the fourth page. Generate data. Then, the CPU 26 supplies the bitmap data of the fourth page to the print execution unit 16.

上述したように、本実施例では、プリンタ10は、PDLデータから、中間コードデータを経て、ビットマップデータを生成する。中間コードデータは、プリンタ10のベンダによって予め決められている中間言語で記述されたデータである。中間言語は、例えば、プリンタ10のベンダによって独自に開発された言語であってもよいし、公知の言語であってもよい。   As described above, in this embodiment, the printer 10 generates bitmap data from the PDL data through the intermediate code data. The intermediate code data is data described in an intermediate language determined in advance by the vendor of the printer 10. For example, the intermediate language may be a language uniquely developed by the vendor of the printer 10 or may be a known language.

中間コードデータを利用せずに、PDLデータからビットマップデータを直接的に生成する手法(以下では「直接的な手法」と呼ぶ)が考えられる。直接的な手法では、複数種類のPDLデータ(例えば、PS(Post Script)、PDF(Portable Document Format等)に従った印刷を実現するためには、複数種類のPDLデータのそれぞれについて、当該種類のPDLデータからビットマップデータを直接的に生成するためのプログラムが必要である。この場合、多くのプログラムを格納可能な大容量のメモリをプリンタに搭載しなければならない。   A method of generating bitmap data directly from PDL data without using intermediate code data (hereinafter referred to as “direct method”) is conceivable. In the direct method, in order to realize printing according to a plurality of types of PDL data (for example, PS (Post Script), PDF (Portable Document Format, etc.)), for each of a plurality of types of PDL data, A program for directly generating bitmap data from PDL data is required, and in this case, a large-capacity memory capable of storing many programs must be installed in the printer.

一方において、中間コードデータを利用する本実施例の構成では、複数種類のPDLデータのそれぞれについて、当該種類のPDLデータから、共通の中間言語で記述された中間コードデータを生成するためのプログラムが必要である。そして、中間コードデータからビットマップデータを生成するためのプログラムが必要である。この構成によると、複数種類のPDLデータについて、中間コードデータからビットマップデータを生成するためのプログラムを共通化することができる。従って、複数種類のPDLデータからビットマップデータを生成するためのトータルのプログラム量は、直接的な手法と比べて、少なくて済む。   On the other hand, in the configuration of the present embodiment using intermediate code data, for each of a plurality of types of PDL data, there is a program for generating intermediate code data described in a common intermediate language from the types of PDL data. is necessary. A program for generating bitmap data from the intermediate code data is required. According to this configuration, it is possible to share a program for generating bitmap data from intermediate code data for a plurality of types of PDL data. Therefore, the total program amount for generating bitmap data from a plurality of types of PDL data can be smaller than that of a direct method.

(PDL処理;図3)
続いて、図3を参照しながら、各CPU24,26が実行するPDL処理について説明する。各CPU24,26は、PC6からPDLデータ(図2参照)を受信すると、PDL処理を並列的に実行する。即ち、CPU24がPDL処理を実行している間に、CPU26もPDL処理を実行可能である。以下では、CPU24を主体として各処理の内容を説明するが、CPU26も同様に処理を実行する。
(PDL processing; Fig. 3)
Next, the PDL process executed by each of the CPUs 24 and 26 will be described with reference to FIG. When receiving the PDL data (see FIG. 2) from the PC 6, the CPUs 24 and 26 execute the PDL processing in parallel. That is, while the CPU 24 is executing the PDL process, the CPU 26 can also execute the PDL process. In the following, the contents of each process will be described with the CPU 24 as the main body, but the CPU 26 executes the same process.

S10において、CPU24は、共用メモリ領域50からCPC60(共通処理ページカウンタ(図1参照))の値を読み込み、CPC60の値を処理ページ番号として決定する。なお、CPC60の初期値は「1」である。例えば、CPU24が「M」を処理ページ番号として決定するということは、CPU24がMページ目のPDLデータをS14〜S26の処理対象として決定することを意味する。   In S10, the CPU 24 reads the value of the CPC 60 (common processing page counter (see FIG. 1)) from the shared memory area 50, and determines the value of the CPC 60 as the processing page number. The initial value of CPC 60 is “1”. For example, the CPU 24 determining “M” as the processing page number means that the CPU 24 determines the PDL data of the Mth page as the processing target of S14 to S26.

次いで、S12において、CPU24は、S10で読み込まれたCPC60の値に「1」を加算して、新たなCPC60の値(例えば「2」)を算出する。そして、CPU24は、上記の新たなCPC60の値を共用メモリ領域50に書き込む。この結果、例えば、他のCPU26がS10の処理を実行する際に、上記の新たなCPC60の値(例えば「2」)を処理ページ番号として決定する。この例では、CPU26は、2ページ目のPDLデータをS14〜S26の処理対象として決定する。この説明から明らかなように、各CPU24,26は、複数ページ分のPDLデータのうちの1ページ目のPDLデータから昇順に、異なる1ページ分のPDLデータを利用して、S14〜S26の各処理を実行する。   Next, in S12, the CPU 24 adds “1” to the value of the CPC 60 read in S10 to calculate a new value of the CPC 60 (for example, “2”). Then, the CPU 24 writes the new CPC 60 value in the shared memory area 50. As a result, for example, when the other CPU 26 executes the process of S10, the value of the new CPC 60 (for example, “2”) is determined as the process page number. In this example, the CPU 26 determines the PDL data of the second page as a processing target in S14 to S26. As is apparent from this description, each of the CPUs 24 and 26 uses each different page of PDL data in ascending order from the PDL data of the first page among the PDL data of a plurality of pages. Execute the process.

次いで、S14において、CPU24は、共用メモリ領域50からCSC62(共通設定データカウンタ(図1参照))の値を読み込み、S10で決定された処理ページ番号「M」がCSC62の値より大きいのか否かを判断する。なお、CSC62の初期値は「1」である。処理ページ番号「M」がCSC62の値より大きい場合(S14でYESの場合)には、S16に進み、処理ページ番号「M」がCSC62の値に等しい場合(S14でNOの場合)には、S20に進む。なお、処理ページ番号「M」がCSC62の値より大きい場合(S14でYESの場合)は、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)が生成済みでないことを意味し、処理ページ番号「M」がCSC62の値に等しい場合(S14でNOの場合)は、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)が生成済みであることを意味する。   Next, in S14, the CPU 24 reads the value of the CSC 62 (common setting data counter (see FIG. 1)) from the shared memory area 50, and determines whether or not the processing page number “M” determined in S10 is larger than the value of the CSC 62. Judging. The initial value of the CSC 62 is “1”. If the processing page number “M” is larger than the value of CSC62 (YES in S14), the process proceeds to S16. If the processing page number “M” is equal to the value of CSC62 (NO in S14), Proceed to S20. If the processing page number “M” is larger than the value of the CSC 62 (YES in S14), setting data up to one page before the page indicated by the processing page number “M” (that is, up to the M−1th page). Setting data) has not been generated, and if the processing page number “M” is equal to the value of the CSC 62 (NO in S14), the setting up to one page before the page indicated by the processing page number “M” This means that data (that is, setting data up to the (M-1) th page) has been generated.

S16では、CPU24は、共用メモリ領域50からSPF64(設定コマンド処理フラグ(図1参照))の値を読み込み、SPF64の値が「1」であるのか否かを判断する。SPF64の値が「1」である場合(S16でYESの場合)には、S14に進み、SPF64の値が「0」である場合(S16でNOの場合)には、S18に進む。   In S16, the CPU 24 reads the value of the SPF 64 (setting command processing flag (see FIG. 1)) from the shared memory area 50 and determines whether or not the value of the SPF 64 is “1”. If the value of SPF64 is “1” (YES in S16), the process proceeds to S14, and if the value of SPF64 is “0” (NO in S16), the process proceeds to S18.

SPF64の値が「1」である場合(S16でYESの場合)には、他のCPU26が、S18の設定コマンド処理を実行している。このような状況では、CPU24は、S18の設定コマンド処理を実行せずにS14に戻り、この結果、他のCPU26の設定コマンド処理が終了するまで待機する。   When the value of the SPF 64 is “1” (YES in S16), the other CPU 26 executes the setting command process in S18. In such a situation, the CPU 24 returns to S14 without executing the setting command processing of S18, and as a result, waits until the setting command processing of the other CPUs 26 is completed.

一方において、SPF64の値が「0」である場合(S16でNOの場合)には、他のCPU26が、S18の設定コマンド処理を実行していない。このような状況では、CPU24は、S18の設定コマンド処理を実行する。   On the other hand, when the value of the SPF 64 is “0” (NO in S16), the other CPU 26 has not executed the setting command processing in S18. In such a situation, the CPU 24 executes the setting command process of S18.

(設定コマンド処理;図4)
設定コマンド処理では、S40において、CPU24は、共用メモリ領域50内のSPF64の値を「0」から「1」に変更する。次いで、S42において、CPU24は、共用メモリ領域50からCSC62の値を読み込み、CSC62の値(例えば「1」)を自己設定データカウンタ(以下では「OSC(Own Setting data Counter)」と呼ぶ)の値として決定する。さらに、CPU24は、OSCの値(例えば「1」)を、キャッシュメモリ28内に書き込む。OSCは、現在の設定コマンド処理の処理対象のページ番号(例えば「1」)を示すカウンタである。
(Setting command processing; FIG. 4)
In the setting command process, in S40, the CPU 24 changes the value of the SPF 64 in the shared memory area 50 from “0” to “1”. Next, in S42, the CPU 24 reads the value of the CSC 62 from the shared memory area 50, and sets the value of the CSC 62 (for example, “1”) as the value of a self-setting data counter (hereinafter referred to as “OSC (Own Setting data Counter)”). Determine as. Further, the CPU 24 writes the OSC value (for example, “1”) in the cache memory 28. The OSC is a counter indicating the page number (for example, “1”) that is the processing target of the current setting command processing.

次いで、S44において、CPU24は、共用メモリ領域50から設定データ52を読み込むことによって、設定データ52を取得する。後で説明するが、図4のS60又は図5のS98では、共用メモリ領域50に設定データ52が書き込まれる。例えば、S42で決定されたOSCの値が「N」である場合には、通常、共用メモリ領域50にN−1ページ目までの設定データ52が書き込まれている。従って、S44では、CPU24は、共用メモリ領域50からN−1ページ目までの設定データ52(例えば、文字サイズ「20pt」、文字の装飾「太字」、文字の色「黒」)を取得して、当該設定データ52をキャッシュメモリ28に書き込む。なお、OSCの値(即ち「N」)が「1」である場合には、共用メモリ領域50に未だに設定データが書き込まれていない。この場合、CPU24は、S44をスキップする。   Next, in S <b> 44, the CPU 24 acquires the setting data 52 by reading the setting data 52 from the shared memory area 50. As will be described later, the setting data 52 is written in the shared memory area 50 in S60 of FIG. 4 or S98 of FIG. For example, when the OSC value determined in S42 is “N”, the setting data 52 up to the (N−1) th page is normally written in the shared memory area 50. Therefore, in S44, the CPU 24 obtains the setting data 52 (for example, the character size “20pt”, the character decoration “bold”, and the character color “black”) from the shared memory area 50 to the (N−1) th page. Then, the setting data 52 is written into the cache memory 28. When the value of OSC (that is, “N”) is “1”, the setting data has not been written in the shared memory area 50 yet. In this case, the CPU 24 skips S44.

次いで、S46において、CPU24は、S42で決定されたOSCの値が示す1ページ分のPDLデータを、PDLデータ格納領域70から読み込む。CPU24は、1ページ分のPDLデータを読み込む過程で、1個のコマンドを読み込む毎に、S48以降の処理を実行する。なお、以下では、S48以降の処理の処理対象の1個のコマンドのことを「特定のコマンド」と呼ぶ。例えば、S46で読み込まれるPDLデータが、図2の1ページ目のPDLデータである場合には、CPU24は、まず、1行目のテキストデータに含まれる描画コマンドであるテキスト「A」を特定のコマンドとして、S48以降の処理を実行する。その後、CPU24は、1行目のテキストデータに含まれる設定コマンドである文字サイズ「10pt」を特定のコマンドとして、S48以降の処理を実行する。   Next, in S <b> 46, the CPU 24 reads from the PDL data storage area 70 one page of PDL data indicated by the OSC value determined in S <b> 42. In the process of reading one page of PDL data, the CPU 24 executes the processing after S48 every time one command is read. In the following, one command to be processed in the processes after S48 is referred to as a “specific command”. For example, when the PDL data read in S46 is the PDL data of the first page in FIG. 2, the CPU 24 first specifies the text “A” that is a drawing command included in the text data of the first line. As a command, the processing after S48 is executed. Thereafter, the CPU 24 executes the processing from S48 onward with the character size “10pt”, which is a setting command included in the text data on the first line, as a specific command.

S48では、CPU24は、特定のコマンドがページの終了を示すコマンドであるのか否かを判断する。特定のコマンドがページの終了を示すコマンドである場合(S48でYESの場合)には、S58に進み、特定のコマンドがページの終了を示すコマンドでない場合(S48でNOの場合)には、S50に進む。   In S48, the CPU 24 determines whether or not the specific command is a command indicating the end of the page. If the specific command is a command indicating the end of the page (YES in S48), the process proceeds to S58. If the specific command is not a command indicating the end of the page (NO in S48), S50 is executed. Proceed to

S50では、CPU24は、特定のコマンドが設定コマンドであるのか否かを判断する。特定のコマンドが設定コマンドである場合(S50でYESの場合)には、S52に進む。特定のコマンドが設定コマンドでない場合(S50でNOの場合)には、S54に進む。   In S50, the CPU 24 determines whether or not the specific command is a setting command. If the specific command is a setting command (YES in S50), the process proceeds to S52. If the specific command is not a setting command (NO in S50), the process proceeds to S54.

S52では、CPU24は、設定コマンド(即ち特定のコマンド)を実行して、設定データを生成する。例えば、PC6から受信されたPDLデータが、特定の種類(例えばPS)のPDLで記述されたPDLデータである場合には、CPU24は、まず、当該特定の種類のPDLデータから中間コードデータを生成するためのプログラムを利用して、設定コマンドを記述しているプログラムコードを解析して、設定コマンドの内容(例えば文字サイズ「30pt」)を解釈する。次いで、CPU24は、解釈済みの内容に対応する設定データを、キャッシュメモリ28内に生成する。   In S52, the CPU 24 executes a setting command (that is, a specific command) to generate setting data. For example, when the PDL data received from the PC 6 is PDL data described in a specific type (for example, PS) of PDL, the CPU 24 first generates intermediate code data from the specific type of PDL data. The program code describing the setting command is analyzed by using the program to do this, and the content of the setting command (for example, the character size “30 pt”) is interpreted. Next, the CPU 24 generates setting data corresponding to the interpreted contents in the cache memory 28.

例えば、図2の1ページ目のPDLデータが設定コマンド処理の処理対象である場合には、CPU24は、S46において、1行目のテキストデータに含まれる設定コマンド(文字サイズ「10pt」)を読み込むと、S52において、文字サイズ「10pt」に対応する設定データを、キャッシュメモリ28内に生成する。その後、CPU24は、S46において、4行目のテキストデータに含まれる設定コマンド(文字サイズ「20pt」)を読み込むと、S52において、文字サイズ「10pt」に対応する設定データに代えて、文字サイズ「20pt」に対応する設定データを、キャッシュメモリ28内に生成する。即ち、CPU24は、S52において、特定の設定の種類(上記の例では「文字サイズ」)に対応する新たな設定データを生成する際に、上記の特定の設定の種類に対応する古い設定データがキャッシュメモリ28内に既に記憶されている場合には、古い設定データを消去して、新たな設定データをキャッシュメモリ28内に記憶させる。但し、この場合、CPU24は、キャッシュメモリ28内の他の設定の種類に対応する設定データ(例えば、文字の装飾「太字」、文字の色「黒」)を変更しない。   For example, when the PDL data of the first page in FIG. 2 is the processing target of the setting command process, the CPU 24 reads the setting command (character size “10 pt”) included in the text data of the first line in S46. In S52, setting data corresponding to the character size “10pt” is generated in the cache memory 28. Thereafter, when the CPU 24 reads a setting command (character size “20 pt”) included in the text data on the fourth line in S46, the character size “10” is substituted for the setting data corresponding to the character size “10 pt” in S52. Setting data corresponding to “20 pt” is generated in the cache memory 28. That is, when the CPU 24 generates new setting data corresponding to the specific setting type (“character size” in the above example) in S52, the old setting data corresponding to the specific setting type is stored. If it is already stored in the cache memory 28, the old setting data is erased and new setting data is stored in the cache memory 28. However, in this case, the CPU 24 does not change setting data (for example, character decoration “bold”, character color “black”) corresponding to other setting types in the cache memory 28.

また、例えば、図2の2ページ目のPDLデータが設定コマンド処理の処理対象である場合には、CPU24は、S46において、3行目のテキストデータに含まれる設定コマンド(文字サイズ「30pt」)を読み込むと、S52において、文字サイズ「20pt」に対応する設定データに代えて、文字サイズ「30pt」に対応する設定データを、キャッシュメモリ28内に生成する。   Further, for example, when the PDL data on the second page in FIG. 2 is the processing target of the setting command process, the CPU 24 sets the setting command (character size “30 pt”) included in the text data on the third line in S46. In S52, setting data corresponding to the character size “30pt” is generated in the cache memory 28 instead of setting data corresponding to the character size “20pt”.

設定コマンドから設定データが生成されると、CPU24,26は、後の処理において、設定コマンドの内容を利用すべき際に、設定コマンドを再び実行する必要がなく、設定データを読み出せば足りる。上述したように、CPU24,26は、設定コマンドの内容を解釈するためには、特定の種類のPDLデータから中間コードデータを生成するためのプログラムを利用して、設定コマンドを記述しているプログラムコードを解析する必要があり、比較的に長時間を要する。これに対し、本実施例のように設定データを生成しておけば、CPUは、プログラムコードを解析する必要がなく、設定データを読み出せば、設定コマンドの内容を知ることができる。即ち、CPUは、後の処理において、設定コマンドの内容を比較的に短時間で取得することができる。   When the setting data is generated from the setting command, the CPUs 24 and 26 need not read the setting command again and need to read the setting data when the contents of the setting command are to be used in later processing. As described above, in order to interpret the contents of the setting command, the CPUs 24 and 26 use a program for generating intermediate code data from a specific type of PDL data and describe the setting command. The code needs to be analyzed and takes a relatively long time. On the other hand, if the setting data is generated as in this embodiment, the CPU does not need to analyze the program code, and can read the setting data by reading the setting data. That is, the CPU can acquire the contents of the setting command in a relatively short time in the subsequent processing.

一方において、S54では、CPU24は、特定のコマンドが描画コマンドであるのか否かを判断する。特定のコマンドが描画コマンドである場合(S54でYESの場合)には、S46に戻る。即ち、CPU24は、描画コマンドを実行しない。一方において、特定のコマンドが描画コマンドでない場合(S54でNOの場合)には、S56に進み、CPU24は、コマンドに応じた処理を実行する。S56を終えると、S46に戻る。   On the other hand, in S54, the CPU 24 determines whether or not the specific command is a drawing command. If the specific command is a drawing command (YES in S54), the process returns to S46. That is, the CPU 24 does not execute the drawing command. On the other hand, if the specific command is not a drawing command (NO in S54), the process proceeds to S56, and the CPU 24 executes a process according to the command. When S56 ends, the process returns to S46.

また、S58では、CPU24は、共用メモリ領域50からCSC62の値を読み込む。そして、CPU24は、S42で決定されたOSCの値がCSC62の値以上であるのか否かを判断する。上述したように、S42では、OSCの値=CSC62の値と決定される。従って、S58では、通常、OSCの値とCSC62の値とが同じであるため、OSCの値がCSC62の値以上である(S58でYES)と判断され、S60に進む。但し、CPU24がS46〜S56の処理を実行している過程で、他のCPU26が後述の図5のS100の処理を実行して、CSC62の値がインクリメントされる可能性がある。この場合、OSCの値がCSC62の値より小さい(S58でNO)と判断され、S60及びS62をスキップしてS64に進む。   In S <b> 58, the CPU 24 reads the value of the CSC 62 from the shared memory area 50. Then, the CPU 24 determines whether or not the value of OSC determined in S42 is equal to or greater than the value of CSC62. As described above, in S42, it is determined that the value of OSC = the value of CSC62. Therefore, in S58, since the value of OSC and the value of CSC62 are usually the same, it is determined that the value of OSC is equal to or greater than the value of CSC62 (YES in S58), and the process proceeds to S60. However, while the CPU 24 is executing the processes of S46 to S56, another CPU 26 may execute the process of S100 of FIG. 5 described later, and the value of the CSC 62 may be incremented. In this case, it is determined that the value of OSC is smaller than the value of CSC 62 (NO in S58), and S60 and S62 are skipped and the process proceeds to S64.

S60では、CPU24は、キャッシュメモリ28内の設定データを、共用メモリ領域50に書き込む。例えば、文字サイズ「20Pt」に対応する設定データが共用メモリ領域50内に記憶されており、文字サイズ「30Pt」に対応する設定データがキャッシュメモリ28内に記憶されている場合には、S60において、CPU24は、文字サイズ「20Pt」に対応する設定データに代えて、文字サイズ「30Pt」に対応する設定データを、共用メモリ領域50内に記憶させる。これにより、共用メモリ領域50内には、図4の設定コマンド処理の処理対象のページ(即ちCSC62の値が示すページ)までの設定データが記憶される。   In S <b> 60, the CPU 24 writes the setting data in the cache memory 28 to the shared memory area 50. For example, when the setting data corresponding to the character size “20Pt” is stored in the shared memory area 50 and the setting data corresponding to the character size “30Pt” is stored in the cache memory 28, in S60 The CPU 24 stores the setting data corresponding to the character size “30 Pt” in the shared memory area 50 instead of the setting data corresponding to the character size “20 Pt”. As a result, in the shared memory area 50, setting data up to the processing target page of the setting command processing of FIG. 4 (that is, the page indicated by the value of the CSC 62) is stored.

次いで、S62において、CPU24は、OSCの値に「1」を加算して、新たなCSC62の値(例えば「2」)を算出する。そして、CPU24は、上記の新たなCSC62の値を共用メモリ領域50に書き込む。S62を終えると、S64において、CPU24は、共用メモリ領域50内のSPF64の値を「1」から「0」に変更する。これにより、設定コマンド処理が終了して、図3のS14に戻る。   Next, in S62, the CPU 24 adds “1” to the OSC value to calculate a new value of the CSC 62 (eg, “2”). Then, the CPU 24 writes the new CSC 62 value in the shared memory area 50. When S62 ends, in S64, the CPU 24 changes the value of the SPF 64 in the shared memory area 50 from “1” to “0”. As a result, the setting command processing ends, and the process returns to S14 of FIG.

図3のS14において、処理ページ番号「M」がCSC62の値に等しい(S14でNO)、即ち、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)が生成済みである、と判断される場合(S14でNOの場合)には、S20において、CPU24は、両方コマンド処理を実行する。   In S14 of FIG. 3, the processing page number “M” is equal to the value of the CSC 62 (NO in S14), that is, setting data up to one page before the page indicated by the processing page number “M” (that is, the M−1th page). When it is determined that the setting data up to (the setting data) has been generated (NO in S14), in S20, the CPU 24 executes both command processes.

(両方コマンド処理;図5)
両方コマンド処理では、S80において、CPU24は、共用メモリ領域50から設定データを読み込むことによって、設定データを取得する。これにより、CPU24は、処理ページ番号「M」が示すページの1ページ前までの設定データ(即ちM−1ページ目までの設定データ)を取得することができる。例えば、処理ページ番号が「2」である場合には、CPU24は、図2の1ページ目のPDLデータまでの設定データ(即ち、文字サイズ「20Pt」)を取得することができる。CPU24は、共用メモリ領域50からM−1ページ目までの設定データを取得して、当該設定データをキャッシュメモリ28に書き込む。これにより、CPU24は、キャッシュメモリ28内のM−1ページ目までの設定データを用いて、両方コマンド処理(特に、S84〜S94の処理)を実行することができる。なお、処理ページ番号が「1」である場合には、共用メモリ領域50に未だに設定データが書き込まれていない。この場合、CPU24は、S80をスキップする。
(Both command processing; Fig. 5)
In both command processing, the CPU 24 acquires the setting data by reading the setting data from the shared memory area 50 in S80. Thereby, the CPU 24 can acquire setting data up to one page before the page indicated by the processing page number “M” (that is, setting data up to the (M−1) -th page). For example, when the processing page number is “2”, the CPU 24 can acquire the setting data (that is, the character size “20 Pt”) up to the PDL data of the first page in FIG. The CPU 24 acquires setting data from the shared memory area 50 to the (M−1) th page and writes the setting data to the cache memory 28. As a result, the CPU 24 can execute both command processes (particularly, processes in S84 to S94) using the setting data up to the (M-1) th page in the cache memory 28. When the processing page number is “1”, the setting data has not been written in the shared memory area 50 yet. In this case, the CPU 24 skips S80.

次いで、S82において、CPU24は、図3のS10で決定された処理ページ番号「M」が示す1ページ分のPDLデータを、PDLデータ格納領域70から読み込む。CPU24は、1ページ分のPDLデータを読み込む過程で、1個のコマンドを読み込む毎に、S84以降の処理を実行する。S84〜S94の処理は、図4のS48〜S56の処理とほぼ同様である。但し、上述したように、図4の設定コマンド処理では、特定のコマンドが描画コマンドである場合(図4のS54でYESの場合)には、CPU24は、描画コマンドを実行しない。これに対し、両方コマンド処理では、特定のコマンドが描画コマンドである場合(図5のS90でYESの場合)には、S92において、CPU24は、描画コマンドを実行して中間コードデータを生成する。なお、本実施例では、中間コードデータは、ベクタ形式のデータである。   Next, in S <b> 82, the CPU 24 reads from the PDL data storage area 70 one page of PDL data indicated by the process page number “M” determined in S <b> 10 of FIG. 3. In the process of reading one page of PDL data, the CPU 24 executes the processes after S84 every time one command is read. The processing of S84 to S94 is substantially the same as the processing of S48 to S56 in FIG. However, as described above, in the setting command processing of FIG. 4, when the specific command is a drawing command (YES in S54 of FIG. 4), the CPU 24 does not execute the drawing command. On the other hand, in the both command processing, when the specific command is a drawing command (YES in S90 of FIG. 5), in S92, the CPU 24 executes the drawing command and generates intermediate code data. In this embodiment, the intermediate code data is vector format data.

S92では、例えば、PC6から受信されたPDLデータが、特定の種類(例えばPS)の言語で記述されたPDLデータである場合には、CPU24は、まず、当該特定の種類のPDLデータから中間コードデータを生成するためのプログラムを利用して、描画コマンドを記述しているプログラムコードを解析して、描画コマンドの内容(例えば、テキスト「A」)を解釈する。次いで、CPU24は、キャッシュメモリ28内のM−1ページ目までの設定データに従って、解釈済みの内容に対応する中間コードデータを、キャッシュメモリ28内に生成する。   In S92, for example, when the PDL data received from the PC 6 is PDL data described in a specific type (for example, PS) language, the CPU 24 first determines the intermediate code from the specific type of PDL data. Using a program for generating data, the program code describing the drawing command is analyzed to interpret the contents of the drawing command (for example, the text “A”). Next, the CPU 24 generates intermediate code data corresponding to the interpreted contents in the cache memory 28 according to the setting data up to the (M−1) th page in the cache memory 28.

例えば、図2の2ページ目のPDLデータが両方コマンド処理の処理対象である場合には、CPU24は、S82において、1行目のテキストデータに含まれる描画コマンド(テキスト「F」)を読み込むと、S92において、キャッシュメモリ28内のM−1ページ目までの設定データ(文字サイズ「20pt」)に従って、文字サイズ「20pt」のテキスト「A」を示す中間コードデータを生成する。S92を終えると、S82に戻る。   For example, if the PDL data on the second page in FIG. 2 is both subject to command processing, the CPU 24 reads a drawing command (text “F”) included in the text data on the first line in S82. In S92, intermediate code data indicating the text “A” of the character size “20pt” is generated according to the setting data (character size “20pt”) up to the (M−1) th page in the cache memory 28. When S92 ends, the process returns to S82.

また、S84において、特定のコマンドがページの終了を示すコマンドである場合(S84でYESの場合)には、S96において、CPU24は、共用メモリ領域50からCSC62の値を読み込む。そして、CPU24は、図3のS10で決定された処理ページ番号「M」がCSC62の値以上であるのか否かを判断する。上述したように、図3のS14では、処理ページ番号「M」=CSC62の値と判断される(S14でNOと判断される)。従って、図5のS96では、通常、処理ページ番号「M」とCSC62の値とが同じであるため、処理ページ番号「M」がCSC62の値以上である(S96でYES)と判断され、S98に進む。S98の処理は、図4のS60の処理と同様である。次いで、S100では、CPU24は、処理ページ番号「M」に「1」を加算して、新たなCSC62の値(例えば「3」)を算出して、S102に進む。   If the specific command is a command indicating the end of the page in S84 (YES in S84), the CPU 24 reads the value of the CSC 62 from the shared memory area 50 in S96. Then, the CPU 24 determines whether or not the processing page number “M” determined in S10 of FIG. 3 is equal to or greater than the value of the CSC 62. As described above, in S14 of FIG. 3, it is determined that the processing page number “M” = the value of CSC 62 (NO in S14). Therefore, in S96 of FIG. 5, since the processing page number “M” and the value of the CSC 62 are usually the same, it is determined that the processing page number “M” is equal to or greater than the value of the CSC 62 (YES in S96), and S98. Proceed to The process of S98 is the same as the process of S60 of FIG. Next, in S100, the CPU 24 adds “1” to the processing page number “M” to calculate a new value of CSC 62 (eg, “3”), and proceeds to S102.

但し、CPU24がS82〜S94の処理を実行している過程で、他のCPU26が図4のS62の処理を実行して、CSC62の値がインクリメントされる可能性がある。この場合、処理ページ番号がCSC62の値より小さい(S96でNO)と判断され、S98〜S100をスキップして、S102に進む。S102では、CPU24は、キャッシュメモリ28内に生成された1ページ分の中間コードデータのデータ名(例えば「P2」)を決定し、決定済みのデータ名を、中間コードデータテーブル54に登録する。CPU24は、中間コードデータテーブル54に既に登録されているデータ名の1つ下に、決定済みのデータ名を登録する。なお、中間コードデータテーブル54にデータ名が登録されていない場合、CPU24は、中間コードデータテーブル54の最上位置に、決定済みのデータ名を登録する。次いで、S104では、CPU24は、生成された1ページ分の中間コードデータを、中間コードデータ格納領域72に格納させて、両方コマンド処理を終了する。この場合、図3のS22に進む。   However, while the CPU 24 is executing the processes of S82 to S94, another CPU 26 may execute the process of S62 of FIG. 4 and the value of the CSC 62 may be incremented. In this case, it is determined that the processing page number is smaller than the value of CSC 62 (NO in S96), S98 to S100 are skipped, and the process proceeds to S102. In S <b> 102, the CPU 24 determines the data name (for example, “P2”) of the intermediate code data for one page generated in the cache memory 28, and registers the determined data name in the intermediate code data table 54. The CPU 24 registers the determined data name one below the data name already registered in the intermediate code data table 54. If the data name is not registered in the intermediate code data table 54, the CPU 24 registers the determined data name at the uppermost position of the intermediate code data table 54. Next, in S104, the CPU 24 stores the generated intermediate code data for one page in the intermediate code data storage area 72, and ends both command processing. In this case, the process proceeds to S22 of FIG.

図3のS22では、CPU24は、共用メモリ領域50からBPF66(ビットマップ生成処理フラグ(図1参照))の値を読み込み、BPF66の値が「1」であるのか否かを判断する。BPF66の値が「1」である場合(S22でYESの場合)には、S27に進み、BPF66の値が「0」である場合(S22でNOの場合)には、S23に進む。S23では、CPU24は、共用メモリ領域50内のBPF66の値を「0」から「1」に変更する。次いで、S24のビットマップ生成処理(以下では「BMP処理」と呼ぶ)に進む。   In S22 of FIG. 3, the CPU 24 reads the value of the BPF 66 (bitmap generation processing flag (see FIG. 1)) from the shared memory area 50, and determines whether or not the value of the BPF 66 is “1”. If the value of BPF 66 is “1” (YES in S22), the process proceeds to S27. If the value of BPF 66 is “0” (NO in S22), the process proceeds to S23. In S23, the CPU 24 changes the value of the BPF 66 in the shared memory area 50 from “0” to “1”. Next, the process proceeds to S24 bitmap generation processing (hereinafter referred to as “BMP processing”).

(BMP処理;図6)
BMP処理では、CPU24は、中間コードデータからビットマップデータを生成するためのプログラムを利用して、S20の両方コマンド処理で生成されたベクタ形式の1ページ分の中間コードデータから、多階調(例えば256階調)の1ページ分のビットマップデータを生成する。
(BMP processing; FIG. 6)
In the BMP process, the CPU 24 uses a program for generating bitmap data from the intermediate code data, and uses multiple gradations (one gradation page) from the intermediate code data for one page in the vector format generated by the command process in S20. For example, bitmap data for one page (256 gradations) is generated.

最初に、S112において、CPU24は、中間コードデータ格納領域72から、中間コードデータテーブル54の最上位置に登録されているデータ名で特定される中間コードデータを、キャッシュメモリ28に読み込むことによって、中間コードデータを取得する。次いで、S114では、CPU24は、バンドエンドカウント値WEを、キャッシュメモリ28内に格納する。バンドエンドカウント値WEは、両方コマンド処理において、中間コードデータが生成される際に、特定されていてもよい。次いで、S116では、CPU24は、キャッシュメモリ28内に、バンドカウント値Wの値「0」を設定する。   First, in S112, the CPU 24 reads intermediate code data specified by the data name registered at the uppermost position of the intermediate code data table 54 from the intermediate code data storage area 72 into the cache memory 28, thereby Get code data. Next, in S <b> 114, the CPU 24 stores the band end count value WE in the cache memory 28. The band end count value WE may be specified when intermediate code data is generated in both command processes. Next, in S 116, the CPU 24 sets the value “0” of the band count value W in the cache memory 28.

次いで、S118では、CPU24は、バンドカウント値Wに対応する中間コードデータから、バンドカウント値Wに対応する中間コードデータによって表される画像をビットマップ形式で表すデータ(以下では「部分ビットマップデータ」と呼ぶ)を生成する。部分ビットマップデータは、キャッシュメモリ28に格納される。次いで、S120では、CPU24は、S112で取得された中間コードデータにおいて、S118の処理に利用されていない中間コードデータが残っているのか否かを判断する。具体的には、CPU24は、バンドカウント値Wが、バンドエンドカウント値WE未満であるのか否かを判断する。CPU24は、バンドカウント値Wがバンドエンドカウント値WE未満である場合、S118の処理に利用されていない中間コードデータが残っていると判断し(S120でYES)、S122に進む。S122では、CPU24は、バンドカウント値Wに「1」を加算して、新たなバンドカウント値Wを算出して、S118に戻る。   Next, in S118, the CPU 24 selects, from the intermediate code data corresponding to the band count value W, data representing the image represented by the intermediate code data corresponding to the band count value W in the bitmap format (hereinafter referred to as “partial bitmap data”). "). The partial bitmap data is stored in the cache memory 28. Next, in S120, the CPU 24 determines whether or not intermediate code data that is not used in the processing of S118 remains in the intermediate code data acquired in S112. Specifically, the CPU 24 determines whether or not the band count value W is less than the band end count value WE. If the band count value W is less than the band end count value WE, the CPU 24 determines that intermediate code data that is not used for the processing of S118 remains (YES in S120), and proceeds to S122. In S122, the CPU 24 adds “1” to the band count value W, calculates a new band count value W, and returns to S118.

一方、CPU24は、バンドカウント値Wが、バンドエンドカウント値WEと等しい場合、S118の処理に利用されていない中間コードデータが残っていないと判断し(S120でNO)、S124に進む。S124では、CPU24は、S118〜S122の処理の繰り返しによって生成された複数個の部分ビットマップデータによって形成される1ページ分(印刷用紙1枚分(1個))のビットマップデータを、印刷実行部16に供給する。詳細には、CPU24は、ビットマップデータを、キャッシュメモリ28から読み出して、BMPデータ格納領域74に書き込む。印刷実行部16は、BMPデータ格納領域74に格納されているビットマップデータを用いて、当該ビットマップデータによって表される画像を、印刷用紙に印刷する。なお、CPU24は、S112で取得した中間コードデータのデータ名を、中間コードデータテーブル54から消去する。これにより、BMP処理が終了して、図3のS25に戻る。   On the other hand, if the band count value W is equal to the band end count value WE, the CPU 24 determines that there is no intermediate code data that is not used for the processing of S118 (NO in S120), and proceeds to S124. In S124, the CPU 24 executes printing of bitmap data for one page (one sheet of printing paper (one)) formed by a plurality of partial bitmap data generated by repeating the processing of S118 to S122. To the unit 16. Specifically, the CPU 24 reads bitmap data from the cache memory 28 and writes it in the BMP data storage area 74. The print execution unit 16 uses the bitmap data stored in the BMP data storage area 74 to print the image represented by the bitmap data on a printing paper. The CPU 24 deletes the data name of the intermediate code data acquired in S112 from the intermediate code data table 54. As a result, the BMP process ends, and the process returns to S25 of FIG.

S25では、CPU24は、BMP処理に利用されるべき中間コードデータが、中間コードデータ格納領域72に格納されているのか否かを判断する。CPU24は、中間コードデータテーブル54にデータ名が登録されている場合に、BMP処理に利用されるべき中間コードデータが、中間コードデータ格納領域72に格納されていると判断し(S25でYES)、S112に戻る。一方、CPU24は、中間コードデータテーブル54にデータ名が登録されていない場合に、BMP処理に利用されるべき中間コードデータが、中間コードデータ格納領域72に格納されていないと判断し(S25でNO)、S26に進む。S26では、CPU24は、共用メモリ領域50内のBPF66の値を、「1」から「0」に変更する。   In S <b> 25, the CPU 24 determines whether or not intermediate code data to be used for BMP processing is stored in the intermediate code data storage area 72. When the data name is registered in the intermediate code data table 54, the CPU 24 determines that the intermediate code data to be used for the BMP process is stored in the intermediate code data storage area 72 (YES in S25). , Return to S112. On the other hand, if the data name is not registered in the intermediate code data table 54, the CPU 24 determines that the intermediate code data to be used for the BMP processing is not stored in the intermediate code data storage area 72 (in S25). NO), the process proceeds to S26. In S26, the CPU 24 changes the value of the BPF 66 in the shared memory area 50 from “1” to “0”.

次いで、S27では、CPU24は、PC6から受信されたPDLデータに含まれるデータのうち、S20の処理が実行されていないデータが残っているのか否かを判断する。ここでYESの場合にはS10に戻り、NOの場合にはS28に進む。   Next, in S <b> 27, the CPU 24 determines whether there is data that has not been subjected to the process of S <b> 20 among the data included in the PDL data received from the PC 6. If YES here, the process returns to S10, and if NO, the process proceeds to S28.

S28では、CPU24は、共用メモリ領域50内のBPF66の値が「1」であるのか否かを判断する。BPF66の値が「0」である場合(S28でNO)、PDL処理を終了する。S28において、BPF66の値が「0」である場合とは、CPU24がBMP処理において利用すべき中間コードデータが、中間コードデータ格納領域72に格納されておらず、CPU24が両方コマンド処理において利用すべきPDLデータが、PDLデータ格納領域70に格納されておらず、かつ、他のCPU26がBMP処理を実行していない場合である。この場合、CPU24は、PDL処理を終了する。   In S <b> 28, the CPU 24 determines whether or not the value of the BPF 66 in the shared memory area 50 is “1”. If the value of BPF 66 is “0” (NO in S28), the PDL process is terminated. In S28, when the value of the BPF 66 is “0”, the intermediate code data that the CPU 24 should use in the BMP processing is not stored in the intermediate code data storage area 72, and the CPU 24 uses both in the command processing. This is a case where the PDL data to be stored is not stored in the PDL data storage area 70 and the other CPU 26 is not executing the BMP process. In this case, the CPU 24 ends the PDL process.

一方、BPF66の値が「1」である場合、S30に進む。S30では、CPU24は、BMP補助処理を実行する。具体的には、CPU24は、S30において、キャッシュメモリ28内の補助可能フラグ(図示省略)を、「0」から「1」に変更する。BMP処理を実行中である他のCPU26は、補助可能フラグが「0」から「1」に変更されると、図6のS112で取得された中間コードデータのうち、S118の処理が終了していない中間コードデータを、2分割する。   On the other hand, when the value of BPF 66 is “1”, the process proceeds to S30. In S30, the CPU 24 executes BMP auxiliary processing. Specifically, in S30, the CPU 24 changes the assistable flag (not shown) in the cache memory 28 from “0” to “1”. When the assistable flag is changed from “0” to “1”, the other CPU 26 that is executing the BMP process has completed the process of S118 in the intermediate code data acquired in S112 of FIG. The intermediate code data that does not exist is divided into two.

具体的には、まず、CPU26は、バンドエンドカウント値WE(例えば2000)から現在のバンドカウント値W(例えば200)を減算する(例えばWE−W=1800)。次いで、CPU26は、(WE−W)の値を2で除算して、各CPU24,26が処理すべき処理バンド数(例えば(WE−W)÷2=900)を算出する。そして、CPU26は、現在のバンドカウント値W(例えば200)に、処理バンド数(例えば900)を加算して、新たなバンドエンドカウント値WE´(1100)を算出する。次いで、CPU26は、新たなバンドエンドカウント値WE´に「1」を加算して、CPU24がBMP補助処理で利用すべきバンドカウント値W´(例えば1101)を算出する。さらに、CPU26は、CPU24がBMP補助処理で利用すべきバンドエンドカウント値として、元のバンドエンドカウント値WE(例えば2000)を決定する。   Specifically, first, the CPU 26 subtracts the current band count value W (for example, 200) from the band end count value WE (for example, 2000) (for example, WE−W = 1800). Next, the CPU 26 divides the value of (WE−W) by 2, and calculates the number of processing bands (for example, (WE−W) ÷ 2 = 900) to be processed by the CPUs 24 and 26. Then, the CPU 26 adds a processing band number (for example, 900) to the current band count value W (for example, 200) to calculate a new band end count value WE ′ (1100). Next, the CPU 26 adds “1” to the new band end count value WE ′ to calculate a band count value W ′ (for example, 1101) that the CPU 24 should use in the BMP auxiliary processing. Further, the CPU 26 determines the original band end count value WE (for example, 2000) as the band end count value that the CPU 24 should use in the BMP auxiliary processing.

CPU24は、CPU24がBMP補助処理で利用すべきバンドカウント値W´(例えば1101)と、バンドエンドカウント値WE(例えば2000)と、が決定されると、キャッシュメモリ28を利用して、BMP補助処理を実行する。BMP補助処理では、CPU24は、最初に、キャッシュメモリ28内に、補助処理終了フラグ(図示省略)として、「0」を設定し、図6のS118〜S122の処理を実行する。S120でNOの場合、即ち、バンドカウント値W´とバンドエンドカウント値WEとが等しい場合、キャッシュメモリ28内の補助処理終了フラグを「0」から「1」に変更する。   When the band count value W ′ (for example, 1101) and the band end count value WE (for example, 2000) that the CPU 24 should use in the BMP auxiliary process are determined, the CPU 24 uses the cache memory 28 to assist the BMP. Execute the process. In the BMP auxiliary process, the CPU 24 first sets “0” as an auxiliary process end flag (not shown) in the cache memory 28, and executes the processes of S118 to S122 of FIG. If NO in S120, that is, if the band count value W ′ and the band end count value WE are equal, the auxiliary process end flag in the cache memory 28 is changed from “0” to “1”.

CPU26は、CPU24のBMP補助処理と並行して、BMP処理を実行する。このとき、S120でNOの場合、CPU26は、キャッシュメモリ28内に、補助処理終了フラグが設定されている場合、補助処理終了フラグが「1」に変更されるまで待機する。CPU26は、キャッシュメモリ28内の補助処理終了フラグが「1」に変更されると、S124に進む。なお、CPU26は、キャッシュメモリ28内に、補助処理終了フラグが設定されていない場合には、待機せずに、S124に進む。   The CPU 26 executes the BMP process in parallel with the BMP auxiliary process of the CPU 24. At this time, if NO in S120, if the auxiliary process end flag is set in the cache memory 28, the CPU 26 waits until the auxiliary process end flag is changed to “1”. When the auxiliary processing end flag in the cache memory 28 is changed to “1”, the CPU 26 proceeds to S124. If the auxiliary process end flag is not set in the cache memory 28, the CPU 26 does not wait and proceeds to S124.

上述したように、本実施例では、CPU24,26は、キャッシュメモリ28を利用して、図3のPDL処理を実行する。上述したように、CPU24,26がキャッシュメモリ28のみを利用して処理を実行する場合、メモリ30を利用して処理を実行する場合と比較して、CPU24,26の処理速度は、高い。この結果、CPU24,26は、PDL処理を比較的に早く終了し得る。   As described above, in the present embodiment, the CPUs 24 and 26 execute the PDL process of FIG. As described above, when the CPUs 24 and 26 execute processing using only the cache memory 28, the processing speeds of the CPUs 24 and 26 are higher than when processing is executed using the memory 30. As a result, the CPUs 24 and 26 can finish the PDL process relatively quickly.

(CPUが並列に実行する処理)
図7を参照して、7ページ分のPDLデータを利用して、CPU24,26が並列してPDL処理を実行する様子を説明する。図7では、下方に進むほど、時間が経過している。(P1)、(P2)等は、ページ番号を意味する。例えば、「(P1)設定コマンド処理」は、1ページ目のPDLデータを利用して、設定コマンド処理(図3のS18)を実行することを意味し、「(P1)両方コマンド処理」は、1ページ目のPDLデータを利用して、両方コマンド処理(図3のS20)を実行することを意味する。また、例えば、「(P1)BMP処理」は、1ページ目の中間コードデータを利用して、BMP処理(図3のS24)を実行することを意味する。
(Processes executed by CPU in parallel)
With reference to FIG. 7, a description will be given of how the CPUs 24 and 26 execute PDL processing in parallel using PDL data for seven pages. In FIG. 7, the time has passed as it progressed downward. (P1), (P2), etc. mean page numbers. For example, “(P1) setting command processing” means executing setting command processing (S18 in FIG. 3) using the PDL data of the first page, and “(P1) both command processing” This means that both command processes (S20 in FIG. 3) are executed using the PDL data of the first page. Further, for example, “(P1) BMP processing” means that the BMP processing (S24 in FIG. 3) is executed using the intermediate code data of the first page.

なお、図7では、どの処理で生成されたデータをどの処理で利用するのかを破線の矢印で示す。例えば、CPU24は、(P1)両方コマンド処理を実行し、次いで、(P1)両方コマンド処理で生成された中間コードデータを利用して、(P1)BMP処理を実行する。また、CPU24は、CPU26の(P2)両方コマンド処理によって生成された中間コードデータを利用して、(P2)BMP処理を実行する。   In FIG. 7, which process uses data generated by which process is indicated by a dashed arrow. For example, the CPU 24 executes (P1) both command processing, and then executes (P1) BMP processing using the intermediate code data generated by (P1) both command processing. Further, the CPU 24 executes (P2) BMP processing by using the intermediate code data generated by the (P2) both command processing of the CPU 26.

CPU24は、まず、図3のS10でCPU24の処理ページ番号「M1」として「1」を決定する。この場合、M1=1及びCSC62の値=1(初期値)であるために、CPU24は、図3のS14でNOと判断する。従って、CPU24は、キャッシュメモリ28を利用して、(P1)両方コマンド処理を実行する。   First, the CPU 24 determines “1” as the processing page number “M1” of the CPU 24 in S10 of FIG. In this case, since M1 = 1 and the value of the CSC 62 = 1 (initial value), the CPU 24 determines NO in S14 of FIG. Therefore, the CPU 24 uses the cache memory 28 to execute (P1) both command processing.

CPU24が(P1)両方コマンド処理を実行している間に、CPU26は、図3のS10でCPU26の処理ページ番号「M2」として「2」を決定する。この構成では、CPU26は、両方コマンド処理により中間コードデータの生成に未だ利用されていない1ページ分のPDLデータのうち、最もページ数の小さいPDLデータを利用して、両方コマンド処理を実行する。この場合、M2=2及びCSC62の値=1であるために、CPU26は、図3のS14でYESと判断する。そして、CPU26は、設定コマンドが未だに実行されていない最小ページである1ページ目のPDLデータを用いて、キャッシュメモリ28を利用して、(P1)設定コマンド処理を実行する。CPU26の(P1)設定コマンド処理は、描画コマンドが実行されないために、CPU24の(P1)両方コマンド処理よりも短時間で終了する。従って、CPU26は、(P1)設定コマンド処理の図4のS60において、1ページ目のPDLデータまでの設定データを、キャッシュメモリ28から共用メモリ領域50に記憶させる。   While the CPU 24 is executing (P1) both command processing, the CPU 26 determines “2” as the processing page number “M2” of the CPU 26 in S10 of FIG. In this configuration, the CPU 26 executes both command processing by using the PDL data having the smallest number of pages among the PDL data for one page that has not yet been used to generate the intermediate code data by both command processing. In this case, since M2 = 2 and the value of the CSC 62 = 1, the CPU 26 determines YES in S14 of FIG. Then, the CPU 26 executes (P1) setting command processing using the cache memory 28 using the PDL data of the first page which is the minimum page for which the setting command has not yet been executed. The (P1) setting command processing of the CPU 26 is completed in a shorter time than the (P1) both command processing of the CPU 24 because the drawing command is not executed. Therefore, the CPU 26 stores the setting data up to the PDL data of the first page from the cache memory 28 to the shared memory area 50 in S60 of FIG. 4 of (P1) setting command processing.

さらに、CPU26は、(P1)設定コマンド処理の図4のS62において、CSC62の値を「1」から「2」にインクリメントする。従って、(P1)設定コマンド処理を終えると、M2=2及びCSC62の値=2であるために、CPU26は、図3のS14でNOと判断し、キャッシュメモリ28を利用して、(P2)両方コマンド処理を実行する。この構成によると、CPU26は、2ページ目のPDLデータを利用した両方コマンド処理を実行する際に、CPU26自身によって生成された1ページ目までの設定データを利用することができる(図5のS80)。また、この構成によれば、CPU24が、1ページ目の設定データを生成していない場合に、CPU26は、1ページ目の設定データが、CPU24によって生成されるまで、(P2)両方コマンド処理の実行を待機せずに済む。   Further, the CPU 26 increments the value of the CSC 62 from “1” to “2” in S62 of FIG. 4 of (P1) setting command processing. Therefore, when (P1) the setting command processing is completed, since M2 = 2 and the value of the CSC 62 = 2, the CPU 26 determines NO in S14 of FIG. 3, and uses the cache memory 28 to (P2) Both command processing is executed. According to this configuration, the CPU 26 can use the setting data up to the first page generated by the CPU 26 itself when executing both command processing using the PDL data of the second page (S80 in FIG. 5). ). Further, according to this configuration, when the CPU 24 has not generated the setting data for the first page, the CPU 26 (P2) performs both command processing until the setting data for the first page is generated by the CPU 24. There is no need to wait for execution.

この場合、CPU26は、(P2)両方コマンド処理において、2ページ目のPDLデータまでの設定データを、共用メモリ領域50に記憶させる(図5のS98)。そして、CPU26は、(P2)両方コマンド処理の図5のS100において、CSC62の値を「2」から「3」にインクリメントする。   In this case, the CPU 26 stores the setting data up to the PDL data of the second page in the shared memory area 50 in (P2) both command processing (S98 in FIG. 5). Then, the CPU 26 increments the value of the CSC 62 from “2” to “3” in S100 of FIG. 5 (P2) both command processing.

CPU24が(P1)両方コマンド処理を終了した段階で、CPU26は、(P2)両方コマンド処理を実行中であり、BPFは「0」である(図3のS22でNO)。この場合、CPU24は、(P1)両方コマンド処理に続いて、キャッシュメモリ28を利用して、(P1)BMP処理を実行する。   When the CPU 24 finishes the (P1) both command processing, the CPU 26 is executing the (P2) both command processing, and the BPF is “0” (NO in S22 of FIG. 3). In this case, the CPU 24 executes (P1) BMP processing using the cache memory 28 following (P1) both command processing.

CPU26が(P2)両方コマンド処理を終了した段階で、CPU24は、(P1)BMP処理を実行している(図3のS22でYES)。このため、CPU26は、(P2)BMP処理を実行しない。CPU26は、図3のS10でCPU26の処理ページ番号「M2」として「3」を決定する。この段階では、共用メモリ領域50には、(P2)までの設定データが記憶されており、CSC62の値=「3」である。従って、CPU26は、図3のS14でNOと判断し、BMP処理を実行せずに、(P2)両方コマンド処理に続いて、(P3)両方コマンド処理を実行する。この構成によれば、CPU26は、CPU24がBMP処理を実行している間に、CPU24と同時的にBMP処理を実行する状況を回避することができる。また、CPU24がBMP処理を実行している間に、CPU26が両方コマンド処理を実行することによって、効率よく、PDLデータから中間コードデータを生成することができる。この結果、効率よく、PDLデータから中間コードデータを経て、ビットマップデータを生成することができる。なお、CPU26は、(P3)両方コマンド処理において生成された3ページ目のPDLデータの設定データを、共用メモリ領域50に記憶させる(図5のS98)。   At the stage when the CPU 26 has finished the (P2) both command processing, the CPU 24 is executing (P1) BMP processing (YES in S22 of FIG. 3). For this reason, the CPU 26 does not execute (P2) BMP processing. The CPU 26 determines “3” as the processing page number “M2” of the CPU 26 in S10 of FIG. At this stage, setting data up to (P2) is stored in the shared memory area 50, and the value of the CSC 62 is “3”. Accordingly, the CPU 26 determines NO in S14 of FIG. 3, and executes the (P3) both command processing following the (P2) both command processing without executing the BMP processing. According to this configuration, the CPU 26 can avoid a situation in which the BMP process is executed simultaneously with the CPU 24 while the CPU 24 is executing the BMP process. Further, while the CPU 24 executes the BMP process, the CPU 26 executes both the command processes, so that the intermediate code data can be efficiently generated from the PDL data. As a result, the bitmap data can be efficiently generated from the PDL data through the intermediate code data. The CPU 26 stores the setting data of the PDL data for the third page generated in the (P3) both command processing in the shared memory area 50 (S98 in FIG. 5).

CPU24が(P1)BMP処理を終了した段階で、CPU26は、(P3)両方コマンド処理を実行している。そして、中間コードデータテーブル54には、CPU26の(P2)両方コマンド処理によって、「P2」が登録されている(図5のS102、図3のS25でYES)。従って、CPU24は、(P1)BMP処理に続いて、両方コマンド処理を実行せずに、(P2)BMP処理を実行する。この構成によれば、CPU24は、生成済みの中間コードデータを利用して、比較的に早期にビットマップデータを生成することができる。この結果、CPU24は、ビットマップデータを、早期に印刷実行部16に供給することができる。このため、ユーザは、印刷結果を早期に取得することができる。   At the stage when the CPU 24 finishes (P1) BMP processing, the CPU 26 executes (P3) both command processing. In the intermediate code data table 54, “P2” is registered by the (P2) both command processing of the CPU 26 (YES in S102 of FIG. 5 and S25 of FIG. 3). Therefore, the CPU 24 executes (P2) BMP processing without executing both command processing following (P1) BMP processing. According to this configuration, the CPU 24 can generate bitmap data relatively early using the generated intermediate code data. As a result, the CPU 24 can supply the bitmap data to the print execution unit 16 at an early stage. For this reason, the user can acquire a printing result at an early stage.

同様に、CPU24は、(P2)BMP処理に続いて、両方コマンド処理を実行せずに、(P3)BMP処理を実行する。CPU26は、(P3)両方コマンド処理に続いて、(P4)両方コマンド処理を実行する。   Similarly, following (P2) BMP processing, the CPU 24 executes (P3) BMP processing without executing both command processing. The CPU 26 executes (P4) both command processing following (P3) both command processing.

CPU24が(P3)BMP処理を終了した段階で、CPU26は、(P4)両方コマンド処理を実行している。この段階では、BMP処理において利用すべき中間コードデータが中間コードデータ格納領域72に格納されていない。そのため、CPU24は、図3のS25でNOと判断する。CPU24は、図3のS26で、BPFを「1」から「0」に変更して、BMP処理を終了して、図3のS10に戻る。CPU24は、CSC62の値=「4」であり、CPU24の処理ページ番号「M1」=「5」であることから、図3のS14でYESと判断して、(P4)設定コマンド処理を実行する。   At the stage when the CPU 24 finishes the (P3) BMP process, the CPU 26 executes both (P4) command processes. At this stage, intermediate code data to be used in the BMP process is not stored in the intermediate code data storage area 72. Therefore, the CPU 24 determines NO in S25 of FIG. In S26 of FIG. 3, the CPU 24 changes the BPF from “1” to “0”, ends the BMP process, and returns to S10 of FIG. Since the value of the CSC 62 = “4” and the processing page number “M1” = “5” of the CPU 24, the CPU 24 determines YES in S14 of FIG. 3, and executes (P4) setting command processing. .

CPU26は、(P4)両方コマンド処理において、CPU26の処理ページ番号「M2」=「4」であり、CSC62の値=「4」であるため、の図5のS96でYESと判断される。このため、CPU26は、4ページ目のPDLデータまでの設定データを、キャッシュメモリ28から共用メモリ領域50に記憶させる(図5のS98)。さらに、CPU26は、CSC62の値をインクリメントし、(P4)BMP処理を開始する。   In (P4) both command processing, the CPU 26 determines that the processing page number “M2” of the CPU 26 is “4” and the value of the CSC 62 is “4”, so that YES is determined in S96 of FIG. Therefore, the CPU 26 stores the setting data up to the PDL data of the fourth page from the cache memory 28 to the shared memory area 50 (S98 in FIG. 5). Further, the CPU 26 increments the value of the CSC 62 and starts (P4) BMP processing.

CPU26は、CPU24が(P4)設定コマンド処理の実行中に、CSC62の値をインクリメントする。このため、CPU24は、4ページ目のPDLデータまでの設定データを、キャッシュメモリ28から共用メモリ領域50に記憶させずに、(P4)設定コマンド処理を終了する。次いで、CPU24は、(P5)両方コマンド処理を実行する。このとき、CPU24は、CPU26によって生成済みの4ページ目のPDLデータまでの設定データを、共用メモリ領域50から読み込んで、キャッシュメモリ28に書き込む。CPU24は、キャッシュメモリ28内の設定データを利用して、(P5)両方コマンド処理を実行する。なお、変形例では、CPU24は、(P4)設定コマンド処理によってキャッシュメモリ28内に生成した設定データを利用して、(P5)両方コマンド処理を実行してもよい。   The CPU 26 increments the value of the CSC 62 while the CPU 24 executes (P4) setting command processing. Therefore, the CPU 24 ends the setting command processing (P4) without storing the setting data up to the PDL data of the fourth page from the cache memory 28 to the shared memory area 50. Next, the CPU 24 executes (P5) both command processing. At this time, the CPU 24 reads the setting data up to the fourth page of PDL data generated by the CPU 26 from the shared memory area 50 and writes it into the cache memory 28. The CPU 24 executes both command processing (P5) using the setting data in the cache memory 28. In the modification, the CPU 24 may execute (P5) both command processing by using the setting data generated in the cache memory 28 by (P4) setting command processing.

この構成では、CPU24が、5ページ目のPDLデータを利用して、両方コマンド処理を開始すべきであり、かつ、CPU26が、1〜4ページ目のPDLデータを利用した両方コマンド処理を完了している場合に、CPU24は、CPU26によって生成された1〜4ページ目の設定データを利用して、5ページ目の両方コマンド処理を実行する。この構成によれば、CPU24は、5ページ目のPDLデータを利用して、両方コマンド生成処理を実行する際に、1ページ目から4ページ目までのPDLデータのそれぞれを利用した設定コマンド処理を実行しなくて済む。但し、CPU24,26の処理のタイミングによっては、CPU24は、4ページ目の設定データを生成する場合があり得る。   In this configuration, the CPU 24 should start both command processing using the fifth page of PDL data, and the CPU 26 completes both command processing using the first to fourth page PDL data. In this case, the CPU 24 uses the setting data for the first to fourth pages generated by the CPU 26 to execute both-command processing for the fifth page. According to this configuration, when the CPU 24 executes both command generation processing using the PDL data of the fifth page, the setting command processing using each of the PDL data from the first page to the fourth page is performed. You don't have to do it. However, depending on the processing timing of the CPUs 24 and 26, the CPU 24 may generate setting data for the fourth page.

その後、上記と同様に、CPU24は、(P5)BMP処理と、(P6)設定コマンド処理と、(P7)両方コマンド処理と、を実行する。一方、CPU26は、(P4)BMP処理の終了後、(P5)設定コマンド処理と、(P6)両方コマンド処理と、(P6)BMP処理と、を実行する。   Thereafter, similarly to the above, the CPU 24 executes (P5) BMP processing, (P6) setting command processing, and (P7) both command processing. On the other hand, after the end of (P4) BMP processing, the CPU 26 executes (P5) setting command processing, (P6) both command processing, and (P6) BMP processing.

CPU24が、(P7)両方コマンド処理を終了したタイミングでは、CPU26は、(P6)BMP処理を実行している。この段階では、7ページ分のPDLデータの全てについて、両方コマンド処理が終了している(図3のS27でNO)。また、BPFは「1」である(図3のS28でYES)。この結果、CPU24は、(P6)BMP補助処理(図3のS30、図6のS118〜S122)を実行する。   At the timing when the CPU 24 ends the (P7) both command processing, the CPU 26 executes (P6) BMP processing. At this stage, both command processes have been completed for all the 7 pages of PDL data (NO in S27 of FIG. 3). The BPF is “1” (YES in S28 of FIG. 3). As a result, the CPU 24 executes (P6) BMP auxiliary processing (S30 in FIG. 3, S118 to S122 in FIG. 6).

CPU26が、(P6)BMP処理を終了した段階で、CPU24による(P7)両方コマンド処理で生成された中間コードデータが中間コードデータ格納領域72に格納されている。このため、CPU26は、図3のS25でYESと判断し、(P6)BMP処理に続いて、(P7)BMP処理を実行する。一方、CPU24は、(P6)BMP補助処理が終了すると、CPU26が(P7)BMP処理を実行するため(即ちBPF=1)に、図3のS28でYESと判断し、(P7)BMP補助処理を実行する。この構成では、CPU24は、CPU26が実行しているBMP処理において利用されている中間コードデータを利用して、CPU26と共に、ビットマップデータを生成する処理を実行する。この構成によれば、CPU26が単独で、(P6)BMP処理と(P7)BMP処理とを実行する場合と比較して、早期に、(P6)BMP処理と(P7)BMP処理とを完了することができる。   When the CPU 26 finishes the (P6) BMP process, the intermediate code data generated by the (P7) both command process by the CPU 24 is stored in the intermediate code data storage area 72. For this reason, the CPU 26 determines YES in S25 of FIG. 3, and executes (P7) BMP processing following (P6) BMP processing. On the other hand, when (P6) BMP auxiliary processing is completed, the CPU 24 determines YES in S28 of FIG. 3 in order for the CPU 26 to execute (P7) BMP processing (that is, BPF = 1), and (P7) BMP auxiliary processing. Execute. In this configuration, the CPU 24 executes a process for generating bitmap data together with the CPU 26 using the intermediate code data used in the BMP process executed by the CPU 26. According to this configuration, the CPU 26 completes the (P6) BMP process and the (P7) BMP process earlier than the case where the CPU 26 executes the (P6) BMP process and the (P7) BMP process alone. be able to.

(本実施例の効果)
各CPU24,26がBMP処理を実行している間に利用されるメモリの容量は、各CPU24,26が設定コマンド処理を実行している間に利用されるメモリ容量よりも多く、両方コマンド処理を実行している間に利用されるメモリの容量よりも多い可能性が高い。上述したように、キャッシュメモリ28の容量は、比較的に小さい。仮に、CPU24,26が同時的に、別の中間コードデータを利用して、個別にBMP処理を実行する特定の状況では、BMP処理を実行している間に利用されるメモリの容量が、キャッシュメモリ28のメモリ容量を超える可能性がある。この状況では、メモリ30のメモリ領域を利用して、BMP処理が実行される。上述したように、各CPU24,26がキャッシュメモリ28のみを利用して処理を実行する場合、キャッシュメモリ28とメモリ30とを利用して処理を実行する場合と比較して、CPU24,26の処理速度は高い。このため、上記の特定の状況では、BMP処理が遅くなる可能性が高くなる。
(Effect of this embodiment)
The memory capacity used while each CPU 24, 26 is executing the BMP process is larger than the memory capacity used while each CPU 24, 26 is executing the setting command process. More likely than the amount of memory used during execution. As described above, the capacity of the cache memory 28 is relatively small. If the CPUs 24 and 26 use different intermediate code data at the same time and execute the BMP process individually, the capacity of the memory used while the BMP process is executed is determined as the cache capacity. The memory capacity of the memory 28 may be exceeded. In this situation, the BMP process is executed using the memory area of the memory 30. As described above, when the CPUs 24 and 26 execute processing using only the cache memory 28, the processing of the CPUs 24 and 26 is performed as compared with the case where processing is executed using the cache memory 28 and the memory 30. The speed is high. For this reason, in the above-mentioned specific situation, there is a high possibility that the BMP process will be delayed.

本実施例では、一方のCPU(例えばCPU24)がBMP処理を実行している場合、他方のCPU(例えばCPU26)は、設定コマンド処理及び両方コマンド処理のどちらかの処理を実行する。このため、各CPU24,26は、CPU24,26のうちの一方が、Mページ目の中間コードデータを利用して、BMP処理を実行している場合、CPU24,26のうちの他方は、Mページ目の中間コードデータ以外の中間コードデータを利用して、BMP処理を実行しない。この構成によれば、CPU24,26によって、PDLデータからビットマップデータが生成される際に利用されるメモリ容量を低減し得る。このため、CPU24とCPU26とが、共に、キャッシュメモリ28を利用して処理を実行する構成において、CPU24とCPU26との処理中に、キャッシュメモリ28の容量を超えて、メモリ30が利用される状況を回避することができる。   In this embodiment, when one CPU (for example, CPU 24) is executing the BMP process, the other CPU (for example, CPU 26) executes either the setting command process or the both command process. For this reason, when one of the CPUs 24 and 26 executes the BMP process using the intermediate code data of the Mth page, the other of the CPUs 24 and 26 has the M page. BMP processing is not executed using intermediate code data other than the intermediate code data of the eye. According to this configuration, it is possible to reduce the memory capacity used when the bitmap data is generated from the PDL data by the CPUs 24 and 26. Therefore, in a configuration in which both the CPU 24 and the CPU 26 execute processing using the cache memory 28, the memory 30 is used exceeding the capacity of the cache memory 28 during the processing of the CPU 24 and CPU 26. Can be avoided.

(対応関係)
本実施例のプリンタ10が「制御装置」の一例であり、CPU24とCPU26とがそれぞれ、「第1のプロセッサ」と「第2のプロセッサ」との一例である。両方コマンド処理が、「中間コード生成処理」の一例であり、BMP処理が、「ビットマップ生成処理」の一例である。図3のS22でYESの場合が、「第1の場合」の一例であり、NOの場合が、「第2の場合」の一例である。
(Correspondence)
The printer 10 of this embodiment is an example of a “control device”, and the CPU 24 and the CPU 26 are examples of a “first processor” and a “second processor”, respectively. Both command processing is an example of “intermediate code generation processing”, and BMP processing is an example of “bitmap generation processing”. The case of YES in S22 of FIG. 3 is an example of “first case”, and the case of NO is an example of “second case”.

以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。   Specific examples of the present invention have been described in detail above, but these are merely examples and do not limit the scope of the claims. The technology described in the claims includes various modifications and changes of the specific examples illustrated above. The modifications of the above embodiment are listed below.

(変形例1)上記の実施例では、CPUは2個であるが、CPUの個数に制限はない。即ち、プリンタ10は、3個以上(即ち複数個)のCPUを備えていてもよい。 (Modification 1) In the above embodiment, there are two CPUs, but the number of CPUs is not limited. That is, the printer 10 may include three or more (that is, a plurality) CPUs.

(変形例2)上記の各実施例では、「制御装置」は、プリンタ10であるが、FAXデータの印刷を実行するFAX装置であってもよいし、印刷機能を備える多機能機であってもよい。 (Modification 2) In each of the above embodiments, the “control device” is the printer 10, but may be a FAX device that executes printing of FAX data, or a multi-function device having a printing function. Also good.

(変形例3)上記の各実施例では、プリンタ10が、複数個のCPU24,26を備えており、各CPU24,26が、図3のPDL処理を並列的に実行する。これに代えて、PC6が、複数個のプロセッサを備えており、各プロセッサが、図3のPDL処理を並列的に実行してもよい。この場合、各プロセッサは、図3のS24の処理を実行する際に、ビットマップデータをプリンタ10に供給してもよい。本変形例では、PC6が、それぞれ、「制御装置」の一例である。即ち、「制御装置」は、印刷実行部16を備えていなくてもよい。一般的に言うと、「制御装置」は、印刷のための制御装置であればよい。PDLデータを利用して、ビットマップデータを生成する装置であればよい。 (Modification 3) In each of the above embodiments, the printer 10 includes a plurality of CPUs 24 and 26, and each of the CPUs 24 and 26 executes the PDL processing of FIG. 3 in parallel. Instead of this, the PC 6 may include a plurality of processors, and each processor may execute the PDL processing of FIG. 3 in parallel. In this case, each processor may supply bitmap data to the printer 10 when executing the process of S24 of FIG. In this modification, each PC 6 is an example of a “control device”. In other words, the “control device” may not include the print execution unit 16. Generally speaking, the “control device” may be a control device for printing. Any device that generates bitmap data using PDL data may be used.

(変形例4)上記の実施例では、1ページ分のPDLデータから、1ページ分の中間コードデータが生成され、1ページ分の中間コードデータから、1個のビットマップデータ(即ち印刷用紙1枚の片面のビットマップデータ)が生成される。しかしながら、複数ページ分の中間コードデータから、1個のビットマップデータが生成されてもよい。例えば、ユーザが、複数ページ分のPDLデータによって表される画像を、1枚の印刷用紙に印刷させるように、印刷設定を選択する場合、CPU24,26は、複数ページ分の中間コードデータから、1個のビットマップデータを生成してもよい。本変形例では、図3のS24のBMP処理を開始する前に、CPU24,26は、BMP生成処理によるビットマップデータの生成が未だ完了していない複数ページ分の中間コードデータが、中間コードデータ格納領域72に格納されているのか否かを判断してもよい。CPU24,26は、複数ページ分以上の中間コードデータが、中間コードデータ格納領域72に格納されている場合に、S24に進み、複数ページ分未満の中間コードデータしか、中間コードデータ格納領域72に格納されていない場合、S27に進んでもよい。 (Modification 4) In the above embodiment, one page of intermediate code data is generated from one page of PDL data, and one bit map data (that is, printing paper 1) is generated from one page of intermediate code data. Single-sided bitmap data) is generated. However, one piece of bitmap data may be generated from intermediate code data for a plurality of pages. For example, when the user selects a print setting so that an image represented by PDL data for a plurality of pages is printed on a single sheet of printing paper, the CPUs 24 and 26 determine from the intermediate code data for a plurality of pages, One piece of bitmap data may be generated. In the present modification, before starting the BMP process of S24 in FIG. 3, the CPUs 24 and 26 store intermediate code data for a plurality of pages for which generation of bitmap data by the BMP generation process has not yet been completed. It may be determined whether it is stored in the storage area 72. When the intermediate code data for a plurality of pages or more is stored in the intermediate code data storage area 72, the CPUs 24 and 26 proceed to S24, and only the intermediate code data for less than a plurality of pages is stored in the intermediate code data storage area 72. If not, the process may proceed to S27.

(変形例5)上記の実施例では、CPU24,26は、設定コマンド処理を実行する。しかしながら、CPU24,26は、設定コマンド処理を実行しなくてもよい。例えば、図7において、CPU24が(P1)両方コマンド処理を実行している間、CPU26は、待機していてもよい。CPU26は、CPU24によって、1ページ目の設定データが、共通メモリ領域に格納されると、(P2)両方コマンド処理を開始してもよい。 (Modification 5) In the above embodiment, the CPUs 24 and 26 execute a setting command process. However, the CPUs 24 and 26 do not have to execute the setting command process. For example, in FIG. 7, the CPU 26 may be on standby while the CPU 24 executes (P1) both command processing. When the CPU 24 stores the setting data for the first page in the common memory area, the CPU 26 may start both command processing (P2).

(変形例6)上記の実施例では、CPU24,26は、BMP補助処理を実行する。しかしながら、CPU24,26は、BMP補助処理を実行しなくてもよい。例えば、図7において、CPU24は、(P7)両方コマンド処理を終了した場合、PDL処理を終了してもよい。 (Modification 6) In the above embodiment, the CPUs 24 and 26 execute BMP auxiliary processing. However, the CPUs 24 and 26 do not have to execute the BMP auxiliary process. For example, in FIG. 7, the CPU 24 may end the PDL process when both command processes are ended (P7).

また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。   The technical elements described in this specification or the drawings exhibit technical usefulness alone or in various combinations, and are not limited to the combinations described in the claims at the time of filing. In addition, the technology illustrated in the present specification or the drawings achieves a plurality of objects at the same time, and has technical utility by achieving one of the objects.

2:通信システム、10:プリンタ、16:印刷実行部、20:制御部、24,26:CPU、28:キャッシュメモリ、50:共用メモリ領域、70:PDLデータ格納領域、72:中間コードデータ格納領域、74:BMPデータ格納領域 2: communication system, 10: printer, 16: print execution unit, 20: control unit, 24, 26: CPU, 28: cache memory, 50: shared memory region, 70: PDL data storage region, 72: intermediate code data storage Area, 74: BMP data storage area

Claims (9)

印刷のための制御装置であって、
第1のプロセッサと第2のプロセッサとを備え、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
前記複数ページ分の前記PDLデータのうちの1ページ分の前記PDLデータを利用して、1ページ分の中間コードデータを生成する中間コード生成処理と、
生成済みの前記中間コードデータを利用して、ビットマップデータを生成するビットマップ生成処理と、
を、前記複数ページ分の前記PDLデータを用いて、前記複数ページ分の前記ビットマップデータが生成されるまで実行し、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
当該プロセッサと異なる他のプロセッサが前記ビットマップ生成処理を実行している第1の場合に、前記複数ページ分の前記PDLデータのうち、前記中間コード生成処理により前記中間コードデータの生成が未だ完了していない1ページ分の前記PDLデータを利用して、前記中間コード生成処理を実行し、
前記他のプロセッサが前記ビットマップ生成処理を実行していない第2の場合に、前記生成済みの前記中間コードデータのうち、前記ビットマップ生成処理による前記ビットマップデータの生成が未だ完了していない前記中間コードデータを利用して、前記ビットマップ生成処理を実行する、制御装置。
A control device for printing,
A first processor and a second processor;
Each of the first processor and the second processor is:
Intermediate code generation processing for generating intermediate code data for one page using the PDL data for one page of the PDL data for the plurality of pages;
A bitmap generation process for generating bitmap data using the generated intermediate code data;
And using the PDL data for the plurality of pages until the bitmap data for the plurality of pages is generated,
Each of the first processor and the second processor is:
In the first case where another processor different from the processor is executing the bitmap generation process, generation of the intermediate code data is still completed by the intermediate code generation process among the PDL data for the plurality of pages. The intermediate code generation process is executed using the PDL data for one page that has not been executed,
In the second case where the other processor is not executing the bitmap generation process, the generation of the bitmap data by the bitmap generation process among the generated intermediate code data is not yet completed. A control device that executes the bitmap generation process using the intermediate code data.
前記第1のプロセッサと前記第2のプロセッサとのそれぞれの前記中間コード生成処理によって生成される前記中間コードデータが格納されるメモリを、さらに備え、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
当該プロセッサが、前記ビットマップ生成処理を終了した際に、前記第2の場合であって、かつ、前記ビットマップ生成処理による前記ビットマップデータの生成が未だ完了していない前記中間コードデータが、前記メモリに格納されている場合に、前記メモリに格納されている前記中間コードデータを利用して、前記ビットマップ生成処理を実行する、請求項1に記載の制御装置。
A memory for storing the intermediate code data generated by the intermediate code generation processing of each of the first processor and the second processor;
Each of the first processor and the second processor is:
When the processor finishes the bitmap generation process, the intermediate code data in the second case and the generation of the bitmap data by the bitmap generation process is not yet completed. The control device according to claim 1, wherein the bitmap generation process is executed using the intermediate code data stored in the memory when stored in the memory.
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
当該プロセッサが、前記中間コード生成処理を終了した際に、前記第1の場合に、前記複数ページ分の前記PDLデータのうち、前記中間コード生成処理により前記中間コードデータの生成が未だ完了していない1ページ分の前記PDLデータを利用して、前記中間コード生成処理を実行する、請求項1又は2に記載の制御装置。
Each of the first processor and the second processor is:
When the processor finishes the intermediate code generation process, in the first case, generation of the intermediate code data among the PDL data for the plurality of pages is still completed by the intermediate code generation process. The control device according to claim 1, wherein the intermediate code generation process is executed using the PDL data for one page that is not present.
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、前記中間コード生成処理において、
前記複数ページの前記PDLデータのうちの処理対象である対象ページの前記PDLデータに含まれる設定コマンドを実行して、前記対象ページの設定データを生成し、
前記対象ページ目までの前記PDLデータに含まれる前記設定コマンドを実行した結果として生成される前記対象ページ目までの前記設定データと、前記対象ページの前記PDLデータと、を利用して、前記中間コードデータを生成し、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
前記他のプロセッサが、前記複数ページの前記PDLデータのうちのN(Nは、1以上の整数)ページ目の前記PDLデータを利用して、前記中間コード生成処理を開始しており、かつ、前記ビットマップ生成処理において利用すべき前記中間コードデータが生成されていない場合に、
前記Nページ目の前記PDLデータに含まれる前記設定コマンドを実行して、前記Nページ目の前記設定データを生成する設定データ生成処理を実行し、
生成済みの前記Nページ目までの前記設定データと、前記複数ページの前記PDLデータのうちのN+1ページ目の前記PDLデータと、を利用して、前記中間コード生成処理を実行する、請求項1から3のいずれか一項に記載の制御装置。
Each of the first processor and the second processor in the intermediate code generation process,
Executing a setting command included in the PDL data of the target page to be processed among the PDL data of the plurality of pages to generate setting data of the target page;
Using the setting data up to the target page generated as a result of executing the setting command included in the PDL data up to the target page and the PDL data of the target page, the intermediate data Generate code data,
Each of the first processor and the second processor is:
The other processor starts the intermediate code generation process using the PDL data of N (N is an integer of 1 or more) of the PDL data of the plurality of pages, and When the intermediate code data to be used in the bitmap generation process is not generated,
Executing the setting command included in the PDL data of the N page to execute setting data generation processing for generating the setting data of the N page;
The intermediate code generation process is executed using the setting data up to the Nth page that has already been generated and the PDL data on the (N + 1) th page among the PDL data of the plurality of pages. 4. The control device according to any one of items 1 to 3.
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、前記中間コード生成処理において、
前記複数ページの前記PDLデータのうちの処理対象である対象ページの前記PDLデータに含まれる設定コマンドを実行して、前記対象ページの設定データを生成し、
前記対象ページ目までの前記PDLデータに含まれる前記設定コマンドを実行した結果として生成される前記対象ページ目までの前記設定データと、前記対象ページの前記PDLデータと、を利用して、前記中間コードデータを生成し、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
M(Mは、2以上の整数)ページ目の前記PDLデータを利用して、前記中間コード生成処理を開始すべきであり、かつ、前記他のプロセッサが、L(Lは、1以上M未満の整数)ページ目の前記PDLデータを利用した前記中間コード生成処理を完了している場合に、
前記他のプロセッサによって生成された前記Lページ目の前記設定データを利用して、前記Mページ目の前記中間コード生成処理を実行する、請求項1から4のいずれか一項に記載の制御装置。
Each of the first processor and the second processor in the intermediate code generation process,
Executing a setting command included in the PDL data of the target page to be processed among the PDL data of the plurality of pages to generate setting data of the target page;
Using the setting data up to the target page generated as a result of executing the setting command included in the PDL data up to the target page and the PDL data of the target page, the intermediate data Generate code data,
Each of the first processor and the second processor is:
The intermediate code generation process should be started using the PDL data of the M (M is an integer of 2 or more) page, and the other processor is L (L is 1 or more and less than M) Integer) when the intermediate code generation process using the PDL data of the page has been completed,
5. The control apparatus according to claim 1, wherein the intermediate code generation process of the M page is executed using the setting data of the L page generated by the other processor. 6. .
前記第1の場合であって、かつ、前記複数ページ分の前記PDLデータの全てについて、前記中間コード生成処理が完了している場合に、
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
前記他のプロセッサが実行している前記ビットマップ生成処理において利用されている前記中間コードデータを利用して、前記他のプロセッサと共に、前記ビットマップ処理を実行する、請求項1から5のいずれか一項に記載の制御装置。
In the first case, and when the intermediate code generation processing has been completed for all of the PDL data for the plurality of pages,
Each of the first processor and the second processor is:
6. The bitmap processing is executed together with the other processor using the intermediate code data used in the bitmap generation processing executed by the other processor. The control device according to one item.
前記第1のプロセッサと前記第2のプロセッサとのそれぞれは、
前記中間コード生成処理により前記中間コードデータの生成に未だ利用されていない1ページ分の前記PDLデータのうち、最もページ数の小さい前記PDLデータを利用して、前記中間コード生成処理を実行する、請求項1から6のいずれか一項に記載の制御装置。
Each of the first processor and the second processor is:
Executing the intermediate code generation process using the PDL data having the smallest number of pages among the PDL data for one page not yet used for generating the intermediate code data by the intermediate code generation process; The control device according to any one of claims 1 to 6.
前記制御装置は、さらに、生成済みの前記ビットマップデータによって表される画像を、印刷媒体に印刷する印刷実行部を備える、請求項1から7のいずれか一項に記載の制御装置。   The control device according to any one of claims 1 to 7, further comprising a print execution unit that prints an image represented by the generated bitmap data on a print medium. 印刷のための制御装置のためのコンピュータプログラムであって、
前記制御装置は、第1のプロセッサと第2のプロセッサとを備え、
前記コンピュータプログラムは、前記第1のプロセッサと前記第2のプロセッサとのそれぞれに、
前記複数ページ分の前記PDLデータのうちの1ページ分の前記PDLデータを利用して、1ページ分の中間コードデータを生成する中間コード生成処理と、
生成済みの前記中間コードデータを利用して、ビットマップデータを生成するビットマップ生成処理と、
を、前記複数ページ分の前記PDLデータを用いて、前記複数ページ分の前記ビットマップデータが生成されるまで実行させ、
前記コンピュータプログラムは、前記第1のプロセッサと前記第2のプロセッサとのそれぞれに、
当該プロセッサと異なる他のプロセッサが前記ビットマップ生成処理を実行している第1の場合に、前記複数ページ分の前記PDLデータのうち、前記中間コード生成処理により前記中間コードデータの生成が未だ完了していない1ページ分の前記PDLデータを利用して、前記中間コード生成処理を実行させ、
前記他のプロセッサが前記ビットマップ生成処理を実行していない第2の場合に、前記生成済みの前記中間コードデータのうち、前記ビットマップ生成処理による前記ビットマップデータの生成が未だ完了していない前記中間コードデータを利用して、前記ビットマップ生成処理を実行させる、コンピュータプログラム。
A computer program for a control device for printing,
The control device includes a first processor and a second processor,
The computer program is stored in each of the first processor and the second processor.
Intermediate code generation processing for generating intermediate code data for one page using the PDL data for one page of the PDL data for the plurality of pages;
A bitmap generation process for generating bitmap data using the generated intermediate code data;
Using the PDL data for the plurality of pages until the bitmap data for the plurality of pages is generated,
The computer program is stored in each of the first processor and the second processor.
In the first case where another processor different from the processor is executing the bitmap generation process, generation of the intermediate code data is still completed by the intermediate code generation process among the PDL data for the plurality of pages. The intermediate code generation process is executed using the PDL data for one page that has not been performed,
In the second case where the other processor is not executing the bitmap generation process, the generation of the bitmap data by the bitmap generation process among the generated intermediate code data is not yet completed. A computer program for executing the bitmap generation processing using the intermediate code data.
JP2012207957A 2012-09-21 2012-09-21 Control device for printing Active JP5966805B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012207957A JP5966805B2 (en) 2012-09-21 2012-09-21 Control device for printing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012207957A JP5966805B2 (en) 2012-09-21 2012-09-21 Control device for printing

Publications (2)

Publication Number Publication Date
JP2014061648A JP2014061648A (en) 2014-04-10
JP5966805B2 true JP5966805B2 (en) 2016-08-10

Family

ID=50617370

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012207957A Active JP5966805B2 (en) 2012-09-21 2012-09-21 Control device for printing

Country Status (1)

Country Link
JP (1) JP5966805B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395018B (en) * 2020-12-07 2021-04-13 湖北芯擎科技有限公司 Direction control application starting method and device, electronic equipment and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2937945B2 (en) * 1997-06-02 1999-08-23 日本電気データ機器株式会社 Printer device
JP5183443B2 (en) * 2008-11-27 2013-04-17 京セラドキュメントソリューションズ株式会社 Image forming apparatus
JP5310273B2 (en) * 2009-06-03 2013-10-09 ブラザー工業株式会社 Print control apparatus and computer program
JP5392153B2 (en) * 2010-03-11 2014-01-22 コニカミノルタ株式会社 Image processing apparatus, image processing method, and program
JP5488912B2 (en) * 2010-07-06 2014-05-14 ブラザー工業株式会社 Control device, printing device, and computer program

Also Published As

Publication number Publication date
JP2014061648A (en) 2014-04-10

Similar Documents

Publication Publication Date Title
JP5333259B2 (en) Image forming apparatus, program, and image forming method
JP5552855B2 (en) Image processing apparatus, image forming system, and image processing program
US8767247B2 (en) Print data generation device, print data generation method and computer-readable medium for controlling rasterization processing
US8253962B2 (en) Image forming apparatus, computer readable storage medium and image formation processing method
KR102529343B1 (en) Methods and systems for handling printing of large-size objects
US9164706B2 (en) Information processing apparatus, recording medium, and control method
JP5966805B2 (en) Control device for printing
US9165225B2 (en) Program and information processing apparatus
JP2004188865A (en) Image forming device and program
JP4877331B2 (en) Image processing apparatus, program, and data processing method
US9965709B2 (en) Non-transitory computer readable recording medium that records a program for causing a computer of an information processing apparatus to generate printable data utilizing cached commands, and information processing apparatus that generates printable data
JP5853537B2 (en) Control device for printing
JP2010218325A (en) Printing controller and printing system
JP6015478B2 (en) Control device, control method, and printer driver program
JP2004062431A (en) Information processing device and method, and print control program
US20200401071A1 (en) Image forming apparatus, control method therefor, and program
JP2007299380A (en) Print support device, print support program, storage medium and print support method
JP5393590B2 (en) Image forming system and image forming apparatus
JP5310538B2 (en) Print control program and information processing apparatus
JP6186926B2 (en) Program and information processing apparatus
JP6123356B2 (en) Information processing apparatus, program, and log data generation method
JP5304422B2 (en) Image processing apparatus, image processing method, and image processing program
JP2011194851A (en) Image processor, image forming system, and image processing program
JP5701234B2 (en) Image forming apparatus and character drawing program
JP2014130430A (en) Information processing apparatus, printing system, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150803

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160531

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: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160620

R150 Certificate of patent (=grant) or registration of utility model

Ref document number: 5966805

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150