JPH07104988A - Program generator - Google Patents

Program generator

Info

Publication number
JPH07104988A
JPH07104988A JP5249577A JP24957793A JPH07104988A JP H07104988 A JPH07104988 A JP H07104988A JP 5249577 A JP5249577 A JP 5249577A JP 24957793 A JP24957793 A JP 24957793A JP H07104988 A JPH07104988 A JP H07104988A
Authority
JP
Japan
Prior art keywords
processing
parallel
procedure
language
source code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5249577A
Other languages
Japanese (ja)
Other versions
JP3284523B2 (en
Inventor
Eri Nakamura
恵理 中村
Fumio Nagasaka
文夫 長坂
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP24957793A priority Critical patent/JP3284523B2/en
Priority to EP94115655A priority patent/EP0652511B1/en
Priority to DE69431386T priority patent/DE69431386T2/en
Priority to US08/318,448 priority patent/US5752036A/en
Priority to SG1996003287A priority patent/SG73378A1/en
Publication of JPH07104988A publication Critical patent/JPH07104988A/en
Application granted granted Critical
Publication of JP3284523B2 publication Critical patent/JP3284523B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

PURPOSE:To generate a parallelized source code so as to equalize the load of each processor by properly adjusting processing granularity in the automatic generation of the source code of a page descriptive language having a parallel processing syntax as a language specification. CONSTITUTION:When a printer driver 11 calls each image operation, a calling side program refers to the branch table to an image processing procedure performing the service of an OS by a fixed procedure. An image processing procedure number acquisition means 49 counts the calling via this branch table. A granularity determination means 50 recognizes the number of processor which is possible to be used for a parallel processing and determines parallelized granularity by using the number of procedure acquired by the means 49. The printer driver 11 outputs a complex sentence to be processing unit by the granularity calculated by the granularity determination means 50 in accordance with the grammar of a parallel syntax. As a result of the processing, the source code including a parallel execution part is outputted in accordance with the grammar of a page descriptive language.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、目的とする処理の内容
を、予め定められたプログラム言語の文法に従って、ソ
ースコードとして書き出す技術(ソースコードの自動生
成)に関連する。特にパーソナルコンピュータの印刷処
理において、文書の毎ページあたりの文字、図形等の画
像操作の手順を、ページ記述言語と呼ぶプログラム言語
の文法に従って書き下す手段に関連する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique (automatic generation of source code) of writing out the contents of a target process as a source code according to a grammar of a predetermined programming language. Particularly, in the print processing of a personal computer, it relates to a means for writing down the procedure of image operations such as characters and figures for each page of a document according to the grammar of a program language called a page description language.

【0002】[0002]

【従来の技術】[Prior art]

1.並列処理 処理速度を向上させる技術の一つに並列処理がある。並
列処理を行なうためには、次の2つの段階が必要であ
る。
1. Parallel processing One of the technologies to improve the processing speed is parallel processing. In order to perform parallel processing, the following two stages are necessary.

【0003】(1)目的とする処理の内容の中から、並
列に実行することができる部分、できない部分を取り出
し、処理系に識別できる記述によって伝える処理。
(1) A process of extracting a part that can be executed in parallel and a part that cannot be executed in parallel from the contents of a target process and transmitting it to a processing system by a distinguishable description.

【0004】(2)実際にプロセッサ資源等を複数用い
て、並列実行する処理。
(2) A process in which a plurality of processor resources are actually used and executed in parallel.

【0005】本発明で行うプログラム言語のソースコー
ド自動生成は、(1)で用いられる技術である。
The automatic generation of the source code of the programming language according to the present invention is the technique used in (1).

【0006】2.ページ記述言語 ページ記述言語と呼ばれるプログラム言語がある。この
プログラム言語は、図形または文字についての記述手順
を表したプログラムのソースコードを入力として、画素
データを出力する。出力先のデバイスは、プリンタであ
っても良いし、CRTやファクシミリ装置であっても良
い。
2. Page description language There is a programming language called page description language. This program language inputs the source code of a program representing the description procedure for a figure or character and outputs pixel data. The output destination device may be a printer, a CRT or a facsimile machine.

【0007】例えば、ページ記述言語は、直線の画素を
作り出すための命令語を持っているので、使用者が{直
線命令の命令語、開始位置の座標データ、終了位置の座
標データ}という程度の情報を与えれば、ページ記述言
語の翻訳実行プログラムは、画素を作り出す操作を行
う。このために、アプリケーションプログラムにとり、
表示または印刷の処理では、画素データを毎回作り出す
操作より、ページ記述言語のソースコードを出力する操
作の方が簡単である。
For example, the page description language has a command word for creating a linear pixel, so that the user can say {command word of linear command, coordinate data of start position, coordinate data of end position}. Given the information, the page description language translation executive program performs the operation of creating pixels. To this end, for application programs,
In the display or printing process, the operation of outputting the source code of the page description language is easier than the operation of generating pixel data every time.

【0008】ページ記述言語の命令語では、一つ一つの
操作が画素発生を伴う場合が多い。これは、命令語処理
の平均完了時間が長いことを示している。こうした処理
内容は、並列化のためのオーバーヘッドを生じ易い疎結
合の並列処理にも適する。疎結合形式の並列処理は、専
用のハードウェアを用いることなく、汎用のワークステ
ーション等を通信手段で接続して構成でき、安価で、保
守性、可搬性、移植性に優れる。疎結合の並列処理で使
用に耐える方式を開発する事は、処理効率の向上に大い
に寄与する。
In the instruction word of the page description language, each operation is often accompanied by pixel generation. This indicates that the average completion time of instruction word processing is long. Such processing contents are also suitable for loosely coupled parallel processing in which overhead for parallelization is likely to occur. The loosely-coupled parallel processing can be configured by connecting a general-purpose workstation or the like with a communication means without using dedicated hardware, and is inexpensive, excellent in maintainability, portability, and portability. Developing a system that can be used in loosely coupled parallel processing will greatly contribute to the improvement of processing efficiency.

【0009】3.負荷の均等化 並列処理においては、個々の処理部分を分担した処理装
置の全てが処理を完了した時点が、目的処理の終了時と
なる。言い換えれば、どれか一つでも、処理遅れの発生
した装置があれば、全体の処理時間は遅れる。そこで、
各装置がほぼ同じ時間で処理を終える様に、処理内容を
切り分けた時が、最も処理効率が高いと言える。
3. Equalization of load In parallel processing, the end of the target processing is the time when all the processing devices that share the individual processing parts have completed processing. In other words, if any one of the devices has a processing delay, the overall processing time is delayed. Therefore,
It can be said that the processing efficiency is highest when the processing contents are divided so that each device finishes the processing in substantially the same time.

【0010】ところで、予め特性の分かっている「処理
速度が同等に近い装置」を用いて並列処理する時、各処
理装置におよそ等しい規模の処理内容を与えれば、効率
の高い並列処理を行うことが出来る。汎用のワークステ
ーション等を用いて疎結合並列処理を構築する場合、各
装置について事前に、性能・処理特性などを知る事が出
来る。出願人の特開平3-815831号公報は,粗結合の並列
処理系を開示している。
By the way, when parallel processing is performed using "apparatuses having similar processing speeds" whose characteristics are known in advance, highly efficient parallel processing can be performed by giving processing contents of approximately the same scale to each processing apparatus. Can be done. When constructing loosely coupled parallel processing using a general-purpose workstation, etc., it is possible to know the performance and processing characteristics of each device in advance. Applicant's Japanese Patent Laid-Open No. 3-815831 discloses a coarsely coupled parallel processing system.

【0011】一方、特開平04-127284号公報は、密結合
並列処理により画像操作を行う好適な公知例である。並
列化する際の処理の分割は、画素発生を伴う手続きが呼
ばれる度に行われる。
On the other hand, Japanese Unexamined Patent Publication No. 04-127284 is a well-known example in which image manipulation is performed by tightly coupled parallel processing. The division of processing for parallelization is performed each time a procedure involving pixel generation is called.

【0012】[0012]

【発明が解決しようとする課題】特開平04-127284号公
報の技術では、画素発生を伴う手続きが呼ばれるごと
に、プロセッサに処理を分担し並列化している。この方
法を粗結合の処理系で利用する場合、並列化するための
処理と、プロセッサ間の通信によるオーバーヘッドが大
きく効率よい並列化ができない。
In the technique disclosed in Japanese Patent Laid-Open No. 04-127284, each time a procedure involving pixel generation is called, the processor shares the processing and is parallelized. When this method is used in a coarsely coupled processing system, processing for parallelization and overhead due to communication between processors are large, and efficient parallelization cannot be achieved.

【0013】本発明はこのような従来発明の問題点に鑑
みて考案されたもので、その目的は処理の並列化に際
し、無駄な処理手順の発生を抑え、複数のプロセッサに
負荷を均等に与える事で、並列処理の効果をより効率よ
く引き出す印刷装置を提供することである。
The present invention was devised in view of the above problems of the conventional invention, and its purpose is to suppress the occurrence of useless processing procedures when processing is parallelized, and evenly apply a load to a plurality of processors. Therefore, it is an object of the present invention to provide a printing apparatus that can more efficiently bring out the effect of parallel processing.

【0014】[0014]

【課題を解決するための手段】図形、文字により構成さ
れる文書の印刷に際し、印刷を行なうアプリケーション
プログラムが処理する画像操作手順を、プログラム言語
の文法に従ったソースコードに書き出す装置であって、
前記の一連の画像操作が呼び出す手続き数を取得する画
像処理手続き数取得手段と、並列処理に使用可能なプロ
セッサの数を知って、前記画像処理手続き数取得手段で
取得された画像処理手続き数とを用いて、並列処理に適
当な処理単位を決定する粒度決定手段と、により構成さ
れ、プログラム言語の文法に定められた一定の構文を生
成することを特徴とする。
An apparatus for writing an image operation procedure processed by an application program for printing into a source code according to a grammar of a program language when printing a document composed of figures and characters,
An image processing procedure number acquisition means for acquiring the number of procedures called by the series of image operations, and an image processing procedure number acquired by the image processing procedure number acquisition means by knowing the number of processors available for parallel processing. And a granularity determining means for determining an appropriate processing unit for parallel processing, and generate a constant syntax defined by the grammar of the programming language.

【0015】[0015]

【作用】[Action]

(1)アプリケーションあるいはプリンタドライバによ
る個々の画像操作において、呼び出し側プログラムは、
画像処理手続きを、オペレーティングシステムのサービ
スする分岐テーブルを介して、呼び出す。
(1) In the individual image operation by the application or printer driver, the calling program is
The image processing procedure is called via the branch table serviced by the operating system.

【0016】(2)画像処理手続き数取得手段は、この
分岐テーブルを介した呼び出しを計数する。
(2) The image processing procedure number acquisition means counts the number of calls through this branch table.

【0017】(3)粒度決定手段は、並列処理に使用可
能なプロセッサの数を知って、前記の各手段が取得した
画像処理手続き数と、プロセッサ数を用いて、並列化す
る際の粒度を決定する。
(3) The granularity determining means knows the number of processors that can be used for parallel processing, and uses the number of image processing procedures and the number of processors acquired by each means to determine the granularity for parallelization. decide.

【0018】(4)アプリケーションあるいはプリンタ
ドライバは、粒度決定手段が決定した粒度に従って並列
処理を行う構文を作成する。
(4) The application or printer driver creates a syntax for performing parallel processing according to the granularity determined by the granularity determining means.

【0019】[0019]

【実施例】次に本発明の説明に好適な実施例を示し説明
する。
EXAMPLES Examples suitable for explaining the present invention will now be described.

【0020】1.動作環境 実施例の動作環境は、次のような条件を満たす環境であ
る。
1. Operating environment The operating environment of the embodiment is an environment that satisfies the following conditions.

【0021】(1)複数台のパーソナルコンピュータ
(以下PCと略)ないしはワークステーション(以下W
Sと略)が、ローカルエリアネットワーク(以下ネット
ワークと略)によって接続されている。ネットワークと
して、例えばIEEE-802.xで規定された仕様が現在広く普
及している。ネットワークの機械的、電気的な接続のほ
かに、プロトコルと呼ぶ伝送手続きに関する規定があ
る。本実施例は伝送プロトコルとして、TCP/IPを用い
た。TCP/IPは複数プロトコルの総称であるが、現在広く
普及しており多くの公知資料に解説されている。
(1) A plurality of personal computers (hereinafter abbreviated as PC) or workstations (hereinafter W)
A local area network (hereinafter abbreviated as a network) is connected to each other. As a network, for example, the specifications defined by IEEE-802.x are currently widespread. In addition to the mechanical and electrical connections of the network, there are regulations related to transmission procedures called protocols. In this embodiment, TCP / IP is used as the transmission protocol. TCP / IP is a general term for multiple protocols, but it is widely used at present and explained in many publicly known materials.

【0022】(2)前記の条件に含まれるPC、WSの
中の少なくとも1台の装置の使用者が、アプリケーショ
ンプログラムを利用する。更に、利用者はこのアプリケ
ーションプログラムにおいて、印刷処理を行なう。
(2) The user of at least one of the PC and WS included in the above conditions uses the application program. Further, the user performs print processing in this application program.

【0023】(3)前記の条件に含まれるPC、WSの
上で、オペレーティングシステム(以下OSと略)が、
アプリケーションプログラムの実行、停止を管理する。
OSは各PC、WS毎に独自の仕様で良い。しかし、い
ずれのOSもネットワーク上でTCP/IPのプロトコルを扱
うことを前提とする。またいずれのOSもいわゆるマル
チタスク処理によって、複数の処理プログラムが、CP
U資源を時分割して利用する事を許すことを前提とす
る。
(3) On the PC and WS included in the above conditions, the operating system (hereinafter abbreviated as OS) is
Manages the execution and termination of application programs.
The OS may have its own specifications for each PC and WS. However, it is assumed that any OS handles the TCP / IP protocol on the network. In addition, in any OS, so-called multi-task processing causes a plurality of processing programs to execute CP.
It is premised that U resources are allowed to be used in a time-sharing manner.

【0024】(補)TCP/IPについて解説した公知資料 Douglas Comer "INTERNETWORKING WITH TCP/IP: PRINCI
PLES, PROTOCOLS, ANDARCHITECTURE",Prentice-Hall, I
nc. 1988 2.実施例の構成、処理手順の概略 図1は、本発明の並列処理印刷装置の全体の構成の概略
を示す図である。構成及び処理手順は以下の通りであ
る。
(Supplement) Douglas Comer "INTERNETWORKING WITH TCP / IP: PRINCI"
PLES, PROTOCOLS, ANDARCHITECTURE ", Prentice-Hall, I
nc. 1988 2. Configuration of Embodiment, Outline of Processing Procedure FIG. 1 is a diagram showing an outline of the overall configuration of a parallel processing printing apparatus of the present invention. The configuration and processing procedure are as follows.

【0025】(1)使用者が、アプリケーション1を利
用し印刷処理を行なう。アプリケーション1が、並列処
理ページ記述言語(以下並列処理PDLと略)で書かれ
たソースコード2を出力する。最近のグラフィカルユー
ザインターフェース機能を重視したOSの一部には、プ
リンタ制御に関する機能をアプリケーションに負担させ
ない様に設計されたものがある。この場合、アプリケー
ション1が、OSの提供するプリンタドライバと呼ぶ組
み込みソフトウェアの機能(関数、手続き)を呼び出
す。呼び出されたプリンタドライバ11中の関数/手続
きが、並列処理PDLで書かれたソースコード2を出力
する。
(1) The user uses application 1 to perform print processing. The application 1 outputs a source code 2 written in a parallel processing page description language (hereinafter abbreviated as parallel processing PDL). Some of recent OSs that place importance on the graphical user interface function are designed so as not to burden the application with the function related to printer control. In this case, the application 1 calls a function (function, procedure) of embedded software called a printer driver provided by the OS. The called function / procedure in the printer driver 11 outputs the source code 2 written in the parallel processing PDL.

【0026】(2)並列言語コンパイラ3は、アプリケ
ーション1(またはプリンタドライバ11)が出力した
ソースコード2を入力し、オブジェクトコード4を出力
する。オブジェクトコード4は、仮想機械に対する機械
語及び必要なパラメータから構成されたデータ列であ
る。
(2) The parallel language compiler 3 inputs the source code 2 output by the application 1 (or the printer driver 11) and outputs the object code 4. The object code 4 is a data string composed of a machine language for the virtual machine and necessary parameters.

【0027】(3)仮想機械5は、オブジェクトコード
4を入力し、その機械語命令を解釈し、実行し、画素を
発生する。
(3) The virtual machine 5 inputs the object code 4, interprets and executes the machine language instruction, and generates a pixel.

【0028】(4)印刷装置6は、仮想機械5が生成し
た画素データを受信し、1ページ単位に印刷処理を行な
う。
(4) The printing device 6 receives the pixel data generated by the virtual machine 5 and performs the printing process for each page.

【0029】以上の処理において、(1)(2)は逐次
実行される。従ってアプリケーション1と並列言語コン
パイラ3は、同一のコンピュータで実行しても構わな
い。この時、アプリケーション1と並列言語コンパイラ
3の間の通信7は、プロセス間通信と呼ぶ手段で行な
う。
In the above processing, (1) and (2) are sequentially executed. Therefore, the application 1 and the parallel language compiler 3 may be executed by the same computer. At this time, the communication 7 between the application 1 and the parallel language compiler 3 is performed by means called interprocess communication.

【0030】一方、(3)は複数のPC、WSを利用し
て並列に実行する。同一のプロセッサ装置が、並列言語
コンパイラ3と、少なくとも一つの仮想機械5を実行し
ても構わない。この場合、並列言語コンパイラ3と仮想
機械5の間の通信はやはりプロセス間通信である。
On the other hand, (3) is executed in parallel using a plurality of PCs and WSs. The same processor device may execute the parallel language compiler 3 and at least one virtual machine 5. In this case, the communication between the parallel language compiler 3 and the virtual machine 5 is also interprocess communication.

【0031】あるいは、並列言語コンパイラ3と仮想機
械5が、それぞれ別のプロセッサ装置で実行されても良
い。この時は、並列言語コンパイラ3と仮想機械5の間
の通信8は、ネットワークを利用して行なう。また、仮
想機械5と他の仮想機械5の間の通信9、10もネット
ワークを利用して行なう。
Alternatively, the parallel language compiler 3 and the virtual machine 5 may be executed by different processor devices. At this time, the communication 8 between the parallel language compiler 3 and the virtual machine 5 is performed using the network. Further, communication 9, 10 between the virtual machine 5 and another virtual machine 5 is also performed using the network.

【0032】(補)プロセス間通信とネットワークによ
る通信に関する公知資料 W. Richard Stevens "UNIX NETWORK PROGRAMING", Pren
tice Hall, Inc. 1990 (補)プロセスの説明 プロセスは、OSが複数の処理プログラムに割り当てる
CPU時間、メモリ領域等資源の管理単位である。プロ
セスは、プロセスの識別子と実行管理・メモリ管理のた
めの情報を含むプロセスヘッダと、中断の際に現在のプ
ロセッサのレジスタの状態を保存するための領域と、オ
ブジェクト領域、スタック領域からなる管理単位であ
る。本実施例が前提とするOSは、複数のプログラムを
同時に実行する。一つのプログラムは一つ以上のプロセ
スで構成される。そこで、複数プログラムの実行とは、
プロセッサ、メモリ等の資源を時分割により、複数のプ
ロセスにスケジュールする処理であると言い換えて良
い。プログラムとプログラムの間の通信は、実際には一
つのプログラムを構成するいずれかのプロセスと、他の
プロセスの間で行なわれるので、プロセス間通信という
用語を用いた。この用語は、上記文献等の公知資料でも
用いられる。
(Supplementary) Public Information on Interprocess Communication and Network Communication W. Richard Stevens "UNIX NETWORK PROGRAMING", Pren
tice Hall, Inc. 1990 (Supplement) Description of Process A process is a unit of resource management such as CPU time and memory area allocated by the OS to a plurality of processing programs. A process is a management unit consisting of a process header that contains the process identifier and information for execution management and memory management, an area for saving the current processor register status at the time of suspension, an object area, and a stack area. Is. The OS based on this embodiment executes a plurality of programs at the same time. A program consists of one or more processes. Therefore, the execution of multiple programs is
It may be said that the process is a process of scheduling resources such as a processor and a memory in a plurality of processes by time division. Since the communication between programs is actually performed between any process that constitutes one program and another process, the term interprocess communication is used. This term is also used in known materials such as the above-mentioned documents.

【0033】3.本実施例の実装技術の中で公知の部分 次の技術は公知である。3. Known part of the mounting technology of this embodiment The following technology is known.

【0034】(1)アプリケーションまたはプリンタド
ライバによってPDLのソースコードを自動生成する技
術(公知資料 Apple Computer, Inc.によるLaseWriter
プリンタドライバプログラム他)。
(1) Technology for automatically generating PDL source code by application or printer driver (Lase Writer by known material Apple Computer, Inc.)
Printer driver program and others).

【0035】(2)並列言語向けのコンパイラ(公知資
料 M. Ben-Ari "PRINCIPLES OF CONCURRENT PROGRAMMIN
G", Prentice-Hall International, Inc. その他、複数
の並列言語に関する教科書)。
(2) Compiler for parallel language (known document M. Ben-Ari "PRINCIPLES OF CONCURRENT PROGRAMMIN
G ", Prentice-Hall International, Inc. Other textbooks on multiple parallel languages).

【0036】(3)ページ記述言語を、複数のプロセッ
サ装置により並列に実行する方法(公知資料 特開平3-
815831号公報)。
(3) A method for executing a page description language in parallel by a plurality of processor devices (known document: Japanese Patent Laid-Open No. 3-3003)
815831).

【0037】(4)仮想機械を用いたプログラムの実行
(公知資料 中田育男 ”コンパイラ”,産業図書,1981
その他、複数のコンパイラに関する教科書)。
(4) Execution of program using virtual machine (publicly known material Ikuo Nakata "Compiler", Sangyo Tosho, 1981
Other textbooks about multiple compilers).

【0038】4.本実施例の特徴 本実施例の特徴について、まず特開平03-815831号公
報、特開平04-127284号公報と同じ部分を挙げ、次に異
なる部分を挙げる。
4. Features of this Embodiment Regarding the features of this embodiment, first, the same parts as in JP-A-03-815831 and JP-A-04-127284 will be mentioned, and then the different parts will be mentioned.

【0039】4A.特開平03-815831号公報及び特開平0
4-127284号公報と同じ処理上の特徴 複数のプロセッサ装置が、ページ記述言語で書かれたソ
ースコードの内容を解釈し、画素を発生し、1台のプリ
ンタを用いて印刷するまでの過程を協調して並列実行す
る。
4A. JP 03-815831 A and JP 0
The same processing characteristics as the 4-127284 publication The process until a plurality of processor devices interpret the contents of a source code written in a page description language, generate pixels, and print using one printer Coordinate and execute in parallel.

【0040】4B.特開平03-815831号公報及び特開平0
4-127284号公報との差異 (1)特開平04-127284号公報との違い 本実施例の構成では、ネットワークを利用した粗結合状
態でプロセッサを使用するため、処理内容を転送するた
めに数10から百数10ミリ秒を必要とする。一方、シ
ステムバスを用いた密結合の処理系では、この時間は数
百マイクロ秒から数ミリ秒である。このため、粗結合の
処理系では粒度を大きくせざるを得ない。
4B. JP 03-815831 A and JP 0
Difference from JP-A-4-127284 (1) Difference from JP-A-04-127284 In the configuration of the present embodiment, since the processor is used in a coarsely coupled state using the network, it is necessary to transfer a plurality of processing contents. It takes 10 to a hundred tens of milliseconds. On the other hand, in a tightly coupled processing system using a system bus, this time is several hundred microseconds to several milliseconds. For this reason, the grain size must be increased in the coarse coupling processing system.

【0041】より具体的に言えば、ページ記述言語で書
いた時に、複数の手続文からなる処理単位を選び、並列
処理の単位とするのが適切である。出願人は特開平3-81
5831号公報で、既に生成されているソースコードを読み
取り、複数の新たなソースコードに分割する方法を示し
た。しかしより適切な方法は、並列処理ページ記述言語
を用意し、これに与えるソースコードの中で、前もって
並列処理部分を指定する方法である。
More specifically, when writing in a page description language, it is appropriate to select a processing unit consisting of a plurality of procedural statements and use it as a unit of parallel processing. Applicant is JP-A-3-81
Japanese Patent No. 5831 discloses a method of reading already generated source code and dividing it into a plurality of new source codes. However, a more appropriate method is to prepare a parallel processing page description language and specify the parallel processing part in advance in the source code given to it.

【0042】(2)特開平03-815831号公報との違い すなわち、特開平03-8155831号公報は並列処理ページ記
述言語を前提にしていなかった。これに対し、本実施例
は並列処理PDLの言語仕様を定義し、アプリケーショ
ン1は並列PDLで記述されたソースコード2を出力す
る。並列PDLを用い従来技術では、PDLのコンパイ
ラ前処理がソースコードを解析し、並列に実行可能な部
分を取り出す処理を行なった。これに対し、本実施例の
並列言語コンパイラ3は、並列記述に従い一つの機械語
コード列を発生する。すなわち並列に実行できる部分
は、ソースコードの中で予め指定されているので、この
指定に従い処理を並列化するための複数の特別な機械語
をオブジェクトコードに挿入する。
(2) Difference from Japanese Patent Laid-Open No. 03-815831 In other words, Japanese Laid-Open Patent Publication No. 03-8155831 does not presume a parallel processing page description language. On the other hand, this embodiment defines the language specification of the parallel processing PDL, and the application 1 outputs the source code 2 described in the parallel PDL. In the related art using the parallel PDL, the preprocessing of the PDL compiler analyzes the source code and extracts the executable parts in parallel. On the other hand, the parallel language compiler 3 of this embodiment generates one machine language code string according to the parallel description. That is, since the parts that can be executed in parallel are designated in advance in the source code, a plurality of special machine languages for parallelizing the processing are inserted into the object code according to this designation.

【0043】5.本実施例の特徴を実現する技術 本実施例の特徴は、4Bで述べた通り、アプリケーショ
ン(またはプリンタドライバ)が、並列処理PDLの文
法に従って、画像処理の内容を記述したソースコード
を、粒度が均等になるように生成する点にある。この特
徴を実現する上で、中心となる技術は次の3つである。
5. Technology for Implementing Features of the Present Embodiment As described in 4B, the feature of the present embodiment is that the application (or printer driver) has the granularity of the source code describing the contents of the image processing according to the grammar of the parallel processing PDL. The point is that they are generated evenly. The following three technologies are the main technologies for realizing this feature.

【0044】(1)プロセッサ数取得手段48 (2)画像処理手続き数取得手段49 (3)粒度決定手段50 手段48、49、50の動作は、図4を用いて6B−2
節で説明する。
(1) Processor number acquisition means 48 (2) Image processing procedure number acquisition means 49 (3) Granularity determination means 50 The operation of the means 48, 49, 50 is 6B-2 using FIG.
I explain in a section.

【0045】6.本実施例の特徴を実現する技術の詳
細。
6. Details of the technique for realizing the features of the present embodiment.

【0046】次に5で述べた本実施例の特徴となる技術
について、詳細に説明する。
Next, the technique which characterizes this embodiment described in 5 will be described in detail.

【0047】6A.並列PDLの言語仕様 (1)簡単な例による説明 本実施例の並列処理PDLでは、言語Pascalのサブセッ
トに並列構文及び画像処理のための拡張を加えた言語を
定義して用いた。この言語の文法の拡張部分を説明する
ために、図2に簡単なソースコードの例を示した。述語
「begin」と述語「end」により囲まれた文を説明のため
「複文」と呼ぶ。図2のソースコード中で並列実行の対
象となるのは、述語「proceed」21と述語22で囲ま
れた複数の文である。述語「//」23で始まる文は、可
能であれば他のプロセッサ装置に分散され、並列に実行
される。他のプロセッサ装置が使用できない場合、同じ
プロセッサ装置上で実行される。述語「//」23に続く
文は、単一の文または複文である。複文を使用する時は
24のように記述する。述語「otherwise」25で始ま
る文(これも文または複文である)は、分散されず必ず
自プロセッサ装置の上で実行される。述語「otherwis
e」25は、省略できず、なにも行なわない場合は空文
(空白の文)を書く。
6A. Language Specification of Parallel PDL (1) Description by Simple Example In the parallel processing PDL of this embodiment, a language in which parallel syntax and extension for image processing are added to a subset of the language Pascal is defined and used. To illustrate the extension of the grammar of this language, Figure 2 shows a simple source code example. The sentence enclosed by the predicate "begin" and the predicate "end" is called "complex sentence" for the sake of explanation. Targets for parallel execution in the source code of FIG. 2 are a plurality of statements surrounded by predicates “proceed” 21 and predicate 22. Statements starting with the predicate "//" 23 are distributed to other processor units if possible and executed in parallel. If no other processor device is available, it will run on the same processor device. The sentence following the predicate "//" 23 is a single sentence or a compound sentence. When using a compound sentence, describe as 24. Statements starting with the predicate "otherwise" 25 (which are also statements or compound statements) are always executed on the own processor device without being distributed. The predicate "otherwis
"e" 25 cannot be omitted, and if nothing is done, write an empty sentence (blank sentence).

【0048】(2)構文解析処理プログラムの説明 上記に説明した部分は、言語の仕様の中で、特に並列構
文に関する仕様である。構文を解析する処理プログラム
を開発する有力な公知技術に、コンパイラ・コンパイラ
と呼ぶ技術がある。コンパイラ・コンパイラは、言語の
構文上の仕様を書いたテキストを入力して、構文解析プ
ログラムのソースコードを出力するソフトウェアの名称
である。広く知られたものにYACCがある。YACCはUNIXオ
ペレーティングシステムの標準ツールとして使用される
事が多い。本実施例においても並列言語コンパイラ3の
構文解析処理プログラムは、YACCを用いて開発した。
(1)に示した並列記述の構文について、YACCの入力と
して与えた解析のルールの記述を図3に示した。但し、
ここで「//」文は「when_stm」文で表される。これは周
知の通り、YACCで使用出来る記号の制限に従ったためで
ある。また「proceed- end」文は文30で示される。す
なわち「proceed - end」文は、予約語PROCEEDで開始さ
れ、予約語ENDで終わり、when_body、opt_otherを構成
要素に持つ。構成要素when_bodyは予約語WHENで始ま
り、statementを構成要素に持つ。ここで主な予約語に
対応する文字列は次の通りである。
(2) Description of the syntax analysis processing program The above-mentioned part is a specification regarding parallel syntax among the specifications of the language. A known technique for developing a processing program that analyzes a syntax is a technique called a compiler / compiler. Compiler-Compiler is the name of software that inputs text in which the syntax specifications of a language are written and outputs the source code of a syntax analysis program. The widely known one is YACC. YACC is often used as a standard tool in UNIX operating systems. Also in this embodiment, the syntactic analysis processing program of the parallel language compiler 3 was developed using YACC.
Regarding the syntax of the parallel description shown in (1), the description of the analysis rule given as the input of YACC is shown in FIG. However,
Here, the "//" statement is represented by a "when_stm" statement. This is because, as is well known, the restrictions on the symbols that can be used in YACC have been followed. The “proceed-end” sentence is shown as sentence 30. That is, the "proceed-end" statement starts with the reserved word PROCEED, ends with the reserved word END, and has when_body and opt_other as constituent elements. The component when_body starts with the reserved word WHEN and has statement as a component. Here, the character strings corresponding to the main reserved words are as follows.

【0049】予約語PROCEED = 文字列'proceed' 予約語END = 文字列'end' 予約語WHEN = 文字列'//' (注)UNIXオペレーティングシステムはUNIX System La
boratories, Inc.が開発し、ライセンスしている。
Reserved word PROCEED = character string'proceed 'reserved word END = character string'end' reserved word WHEN = character string '//' (Note) UNIX operating system is UNIX System La
Developed and licensed by boratories, Inc.

【0050】6B.アプリケーション1及びプリンタド
ライバ11の動作 本実施例の装置での印刷処理は、並列言語コンパイラ3
に何らかの入力を与える事で開始される。この入力
は、”並列PDL”の文法に従って記述されたソースフ
ァイルでなければならない。このソースファイルを作り
出す手段が、アプリケーション1またはプリンタドライ
バ11である。以下公知の部分(6B−1)と考案した
部分(6B−2)に分けて説明する。
6B. Operation of Application 1 and Printer Driver 11 The parallel language compiler 3
It is started by giving some input to. This input must be a source file described according to the "parallel PDL" grammar. The means for creating this source file is the application 1 or the printer driver 11. The known part (6B-1) and the devised part (6B-2) will be described below separately.

【0051】6B−1.公知技術の部分 本実施例では、アプリケーションプログラムを使用する
装置として、広く普及している市販のパーソナルコンピ
ュータ用いた。この装置の場合、印刷時にPDLのソー
スコードを作り出すのは、アプリケーション1ではな
く、プリンタドライバ11と呼ぶ独立したサービスプロ
グラムである。このパーソナルコンピュータのOSの機
能から見て、プリンタドライバ11はOSのサービスプ
ログラムとして組み込まれたプリントマネージャ41と
呼ぶ機能の下層プログラムと見なすことができる。
6B-1. Part of the Known Technology In this embodiment, a commercially available personal computer that is widely used is used as an apparatus that uses an application program. In the case of this device, it is not the application 1 that creates the PDL source code at the time of printing but an independent service program called the printer driver 11. From the viewpoint of the OS function of the personal computer, the printer driver 11 can be regarded as a lower layer program called a print manager 41 incorporated as a service program of the OS.

【0052】プリンタドライバ11は、個々のプリンタ
の構成上の特徴に合わせてプリンタの種類毎に開発さ
れ、供給されるソフトウェアである。従って本実施例で
は、本実施例の並列処理印刷装置の仕様に合わせたプリ
ンタドライバ11を開発し、前記の市販パーソナルコン
ピュータに実装した。
The printer driver 11 is software developed and supplied for each type of printer according to the structural characteristics of each printer. Therefore, in this embodiment, the printer driver 11 that meets the specifications of the parallel processing printing apparatus of this embodiment is developed and mounted on the commercially available personal computer.

【0053】図4は、アプリケーション1、プリントマ
ネージャ41、プリンタドライバ11の関係を説明する
図である。構成は次の通りである。
FIG. 4 is a diagram for explaining the relationship among the application 1, the print manager 41, and the printer driver 11. The structure is as follows.

【0054】(ア)このパーソナルコンピュータのOS
の構成要素の中で、印刷と表示に関係する部分だけを4
2に示す。
(A) OS of this personal computer
Of the components of, only the part related to printing and display is 4
2 shows.

【0055】(イ)実際の画素発生を行なう手続き/関
数により構成された手段を、画像処理群43に示す。画
像処理群43は、予め用意された標準手続き44と、変
更可能手続き45から構成される。
(A) The image processing group 43 shows the means constituted by the procedure / function for actual pixel generation. The image processing group 43 includes a standard procedure 44 prepared in advance and a changeable procedure 45.

【0056】(ウ)プリントマネージャ41は、プリン
タドライバ11のプログラムを、ハードディスク装置等
の補助記憶装置から、プロセッサの主記憶領域に読み込
み、実行可能な状態に置く。
(C) The print manager 41 reads the program of the printer driver 11 from the auxiliary storage device such as a hard disk device into the main storage area of the processor and puts it in an executable state.

【0057】(エ)デバイスドライバ46は、シリアル
インターフェースの制御ICなど、物理的なデバイス4
7を制御する手段である。
(D) The device driver 46 is a physical device 4 such as a serial interface control IC.
7 is a means for controlling.

【0058】動作は次の通りである。The operation is as follows.

【0059】(1)アプリケーション1は、図形、文字
の画素を作り出し、CRT装置に表示する際、画像処理
群43の手続き/関数を個々に呼び出して用いる。
(1) When the application 1 creates pixels of figures and characters and displays them on the CRT device, the procedures / functions of the image processing group 43 are individually called and used.

【0060】(2)アプリケーション1は、図形、文字
の画素を作り出し、印刷装置に印刷する際、プリントマ
ネージャ41の機能を呼び出し、印刷に必要なプリンタ
ドライバの初期設定他の処理を行なう。(必要であれば
シリアルインターフェース等の実際のハードウェアに対
する設定も行なう)。プリンタドライバ11は、初期設
定として、変更可能手続き45を、自分独自の処理手続
き群で差し替える。
(2) The application 1 calls up the function of the print manager 41 when producing pixels of figures and characters and printing them on the printing apparatus, and performs initialization of printer driver necessary for printing and other processing. (If necessary, make settings for the actual hardware such as the serial interface). The printer driver 11 replaces the changeable procedure 45 with its own processing procedure group as an initial setting.

【0061】(3)アプリケーション1は、印刷を行な
う場合、(2)に続き、(1)の表示と同一の手順で画
像処理群43の手続き/関数を個々に呼び出し、印刷す
る。この時、画像処理群43の処理分岐プログラムは、
標準手続き44に代替して、変更可能手続き45の処理
へ分岐する。既に上記(2)の操作が行なわれているの
で、この結果プリンタドライバ11が用意した処理手続
きが使用される。
(3) When performing printing, the application 1 individually calls the procedure / function of the image processing group 43 and prints following the procedure of (2) in the same procedure as the display of (1). At this time, the processing branch program of the image processing group 43 is
Instead of the standard procedure 44, the process branches to the changeable procedure 45. Since the above operation (2) has already been performed, the processing procedure prepared by the printer driver 11 is used as a result.

【0062】(4)スプールファイル40の作成は、ア
プリケーション1にとっての印刷処理を、速い段階で完
了させるために広く行われている方法である。スプール
ファイルの作成が終わった時点で、アプリケーションは
印刷処理に関係する入出力処理から解放され、後は、プ
リンタドライバがスプールファイルのデータに従った処
理を続行する。スプールファイルに保存するデータは、
画像処理手続きのバイナリーコード列や、特定の言語仕
様に従ったソースコードの場合があり、データ内容は処
理系によって異なる。
(4) Creating the spool file 40 is a widely used method for completing the printing process for the application 1 at a fast stage. When the spool file is created, the application is released from the input / output processing related to the print processing, and then the printer driver continues the processing according to the data in the spool file. The data saved in the spool file is
It may be a binary code string of an image processing procedure or a source code according to a specific language specification, and the data content differs depending on the processing system.

【0063】(5)プリンタドライバ11は、変更可能
手続き45として差し替えた手続き群を用いて、アプリ
ケーションプログラムが出力した画像処理手続きの命令
語をPDLのソースコードを生成する。次に、デバイス
ドライバ46を呼び出し、PDL処理手段へのデータ転
送を行なう。
(5) The printer driver 11 uses the replaced procedure group as the changeable procedure 45 to generate the PDL source code for the command word of the image processing procedure output from the application program. Next, the device driver 46 is called to transfer data to the PDL processing means.

【0064】より具体的に言えば、例えばPDL処理手
段が印刷装置に組み込まれており、この印刷装置が、こ
のパーソナルコンピュータとシリアルインターフェース
で接続されていれば、デバイスドライバ46は物理デバ
イス47としてシリアルインターフェースの制御装置を
指定し、データ転送を行なう。
More specifically, for example, if the PDL processing means is incorporated in the printing apparatus, and this printing apparatus is connected to this personal computer through the serial interface, the device driver 46 will be serialized as the physical device 47. Specify the interface controller and transfer data.

【0065】または図1で説明した本実施例の構成の様
に、PDL処理のための仮想機械がWSに実装されてい
るとき、デバイスドライバ46は物理デバイス47とし
てネットワーク制御装置を指定し、データ転送を行な
う。WSはこれを受信し、実行した後、処理結果として
得た画素データを印刷装置6に転送し、印刷処理を行
う。
Alternatively, when the virtual machine for PDL processing is installed in the WS as in the configuration of the present embodiment described in FIG. 1, the device driver 46 designates the network controller as the physical device 47, and Transfer. After receiving and executing this, the WS transfers the pixel data obtained as the processing result to the printing device 6 and performs the printing process.

【0066】6B−2.本実施例に特有の部分 本実施例では、並列実行が均等に成るような並列PDL
のソースコードを出力するために、プリンタドライバ1
1に3つの手段を組み込んだ。
6B-2. Part peculiar to this embodiment In this embodiment, a parallel PDL in which parallel execution becomes even
Printer driver 1 to output the source code of
3 means were incorporated into 1.

【0067】(1)プロセッサ数取得手段48 本実施例の並列処理系では、できるだけ多くのプロセッ
サを利用して、処理を実行しようとする。この手段の目
的は、画素発生処理を行う仮想機械5を実装し、並列処
理に使用可能なプロセッサの数を取得することにある。
使用可能なプロセッサには、ネットワークに接続されて
いるコンピュータ、又はその他の情報機器内部のプロセ
ッサ、あるいは自分自身の内部のプロセッサがある。
(1) Number of Processors Obtaining Unit 48 In the parallel processing system of the present embodiment, the process is executed by using as many processors as possible. The purpose of this means is to mount the virtual machine 5 that performs pixel generation processing and obtain the number of processors that can be used for parallel processing.
Available processors include computers within a networked computer or other information device, or processors within itself.

【0068】プロセッサを獲得するには、使用するプロ
セッサをあらかじめファイル等に記録しておく方法があ
る。この方法の場合は、プロセッサ数を獲得するのも容
易である。本実施例のプロセッサ数取得手段では、前記
の方法とは別に、何らかの手段で接続されているプロセ
ッサに対して、並列化する時点でプロセス生成が可能か
どうかの確認をし、プロセッサ数を獲得する方法をと
る。
To obtain the processor, there is a method of recording the processor to be used in a file or the like in advance. With this method, it is easy to obtain the number of processors. In addition to the above-mentioned method, the processor number acquisition means of this embodiment confirms whether or not a process can be generated at the time of parallelization with respect to a processor connected by some means, and acquires the number of processors. Take the way.

【0069】図5の流れ図を用いて手順を説明する。The procedure will be described with reference to the flowchart of FIG.

【0070】(51)プロセッサ数取得手段48が、プ
ロセッサ数のカウントを’1’で初期化する。
(51) The processor number obtaining means 48 initializes the count of the number of processors to "1".

【0071】(52)接続されているプロセッサにメッ
セージを送り、画素発生処理のプロセスを生成可能であ
るか確認する。メッセージを受け取ったプロセッサは、
メモリの使用状況を調べ、新たなプロセスの生成が可能
であるか判断し、結果のメッセージを返す。
(52) Send a message to the connected processor to confirm whether the process of pixel generation processing can be generated. The processor that received the message
Examine the memory usage, determine if a new process can be created, and return the resulting message.

【0072】(53)プロセッサ数取得手段が、受け取
ったメッセージの内容に応じて、プロセス生成可能であ
るか判定を行う。
(53) The processor number acquisition means determines whether a process can be generated according to the content of the received message.

【0073】(54)判定の結果、プロセス生成可能で
あった場合、プロセッサ数のカウントを1増やす。他
方、プロセス生成不可能であった場合は、カウンタはそ
のままとする。
(54) If the process can be generated as a result of the determination, the count of the number of processors is incremented by 1. On the other hand, if the process cannot be generated, the counter is left unchanged.

【0074】(55)接続されているすべてのプロセッ
サに対して確認をするまで、手順(52)から(55)
の一連の処理を繰り返し実行する。処理が終了した時点
で得られるカウント数を、使用可能なプロセッサ数とし
て以降の粒度決定手段で使用する。
(55) From steps (52) to (55) until confirmation is made for all connected processors.
The series of processing of is repeatedly executed. The count number obtained at the time when the processing is completed is used as the number of usable processors in the subsequent granularity determining means.

【0075】(2)画像処理手続き数取得手段49 この手段の目的は、印刷処理で実行する手続き数を数え
る点にある。均等な並列化を実現させるために、まず処
理全体の手続き数を把握する必要がある。本実施例で
は、プリンタドライバがPDLソースコードを作成する
前段階で、補助記憶装置上に一時的にスプールファイル
40を作成する方法をとる。
(2) Image processing procedure number acquisition unit 49 The purpose of this unit is to count the number of procedures executed in the printing process. In order to realize even parallelization, it is first necessary to grasp the number of procedures in the entire process. In this embodiment, a method of temporarily creating the spool file 40 on the auxiliary storage device is used before the printer driver creates the PDL source code.

【0076】スプールファイル40のデータ構造を図1
3に示す。スプールファイルは、主に次の5つのフィー
ルドから構成される。
The data structure of the spool file 40 is shown in FIG.
3 shows. The spool file is mainly composed of the following five fields.

【0077】(ア)解像度、用紙サイズ等、プリンタを
設定する情報を格納する領域131。 (イ)印刷ページ数を格納する領域132 (ウ)画像処理手続き数を格納する領域133 (エ)ページデータ格納領域135へのオフセット値を
格納する領域134 (オ)ページデータを格納する領域135 フィールド133、134、135は1ページごとに情
報が記録されている。フィールド135に格納されるペ
ージデータは、アプリケーションがドキュメントの画像
を実際に描画するために出力する手続きのコード列であ
り、バイナリーデータで記録される。画像処理手続き数
取得手段49は、前期スプールファイルを作成する段階
で、手続き数をカウントし、フィールド133に記録す
る。
(A) Area 131 for storing information for setting the printer such as resolution and paper size. (A) Area 132 for storing the number of print pages (c) Area 133 for storing the number of image processing procedures (d) Area 134 for storing an offset value to page data storage area 135 (e) Area 135 for storing page data The fields 133, 134, and 135 record information for each page. The page data stored in the field 135 is a code string of a procedure that the application outputs to actually draw the image of the document, and is recorded as binary data. The image processing procedure number acquisition means 49 counts the number of procedures and records it in the field 133 at the stage of creating the spool file in the previous term.

【0078】PDLで、画像発生の点から見て、ページ
データに格納される各手続きは、大きく2つのグループ
に分けて考える事ができる。一つは画素の発生を伴う命
令である。例えば塗りつぶし、輪郭発生等である。他の
一つは、実際の画素の発生を生じない命令であり、例え
ば、描画ペンサイズの指定、塗りつぶしのために領域図
形の指定、ストローク発生のための、曲線形状の形成等
である。ページ記述言語の処理は、「画像の定義→画素
の発生」という手順の繰り返しを特徴とする。従って少
なくとも、画素生成を伴う手続きを検出できる処理が必
要である。本手段49では、画素発生を伴う手続きのみ
を、手続き数のカウントの対象とする。画像処理手続き
数取得手段49の処理手順を、図6を用いて説明する。
From the viewpoint of image generation in PDL, each procedure stored in page data can be roughly divided into two groups. One is an instruction that involves the generation of pixels. For example, filling, contour generation, etc. The other one is an instruction that does not actually generate pixels, for example, designation of a drawing pen size, designation of a region figure for filling, formation of a curved shape for stroke generation, and the like. The processing of the page description language is characterized by repeating the procedure of "definition of image → generation of pixel". Therefore, at least a process capable of detecting a procedure involving pixel generation is required. In this means 49, only the procedure involving pixel generation is the object of counting the number of procedures. The processing procedure of the image processing procedure number acquisition means 49 will be described with reference to FIG.

【0079】(61)画像処理手続き数取得手段49
が、手続き数を’0’で初期化する。
(61) Image processing procedure number acquisition means 49
Initializes the number of procedures with '0'.

【0080】(62)スプールファイルに手続きを書き
込む都度、手続きの性質を判断する。 (63)手続きが、画素発生を伴うか否かを判定する。
(62) Each time a procedure is written in the spool file, the nature of the procedure is judged. (63) It is determined whether the procedure involves pixel generation.

【0081】(64)画素発生を伴う手続きの場合は、
手続き数を’1’増やす。逆に伴わなかった場合は何も
せずに処理を継続する。
(64) In the case of a procedure involving pixel generation,
Increase the number of procedures by '1'. On the contrary, if it is not accompanied, the processing is continued without doing anything.

【0082】(65)手続き数のカウントは、1ページ
単位で行う。1ページ分の手続きのコード列がすべて終
了するまで、手順(62)から(64)までの一連の動
作を繰り返し行う。
(65) The number of procedures is counted page by page. A series of operations from steps (62) to (64) are repeated until the code string of the procedure for one page is completed.

【0083】(67)1ページ分終了したと判定された
ならば、現時点での手続き数を、フィールド133中
の、ページごとに割り当てた領域に記録する。各ページ
ごとに、手続き数を記録し終えた段階で本手段49の処
理は終了する。
(67) If it is determined that one page has been completed, the current number of procedures is recorded in the area assigned to each page in the field 133. The processing of the present means 49 ends when the number of procedures has been recorded for each page.

【0084】(3)粒度決定手段50 この手段の目的は、並列実行する処理の単位が、使用で
きるプロセッサに均等に割り当てられるように粒度を決
定し、PDLソースコードを作成することにある。処理
の流れを図15を用いて説明する。
(3) Granularity determining means 50 The purpose of this means is to determine the granularity so that the units of processing executed in parallel are evenly allocated to the processors that can be used, and create the PDL source code. The processing flow will be described with reference to FIG.

【0085】(150)粒度決定手段50が、並列化の
実行単位と成る粒度を決定する。粒度は、前記のプロセ
ッサ数取得手段48で得た値をn個、画像処理手続き数
取得手段49で得た値をm個とした時、m/nの値を四
捨五入する計算で求める。但し、計算の結果得られた値
が’0’の場合は、粒度を’1’とする。粒度が決定す
ると、PDLソースコードを作成する処理に移行する。
(150) The granularity determining means 50 determines the granularity which is the execution unit of parallelization. The granularity is calculated by rounding off the value of m / n, where n is the value obtained by the processor number acquisition means 48 and m is the value obtained by the image processing procedure number acquisition means 49. However, when the value obtained as a result of the calculation is "0", the granularity is set to "1". When the granularity is determined, the process shifts to the process of creating the PDL source code.

【0086】本実施例では、「全ての命令語は、先行す
る画像の処理結果に依存しない」というページ記述言語
仕様を用いる。この仕様の言語では、画像処理結果は、
先行処理の画素を無視して、全て上書きされる処理とな
る。この場合は次の2点が必要である。
In this embodiment, the page description language specification "all instruction words do not depend on the processing result of the preceding image" is used. In the language of this specification, the image processing result is
All the pixels are overwritten by ignoring the pixels of the preceding process. In this case, the following two points are necessary.

【0087】・6Dの(3)に後述するように、重ね合
わせ順序の整合性を維持する ・並列構文の挿入位置は、少なくとも画素生成を行う手
続きまでを一単位とする ソースコード作成は、具体的には、次の手順で行われ
る。
As will be described later in (3) of 6D, the consistency of the superposition order is maintained.-The insertion position of the parallel syntax is at least one procedure up to the pixel generation. Specifically, the procedure is as follows.

【0088】(151)プログラムの宣言部を出力す
る。
(151) Output the declaration part of the program.

【0089】(152)並列実行の開始を表す述語「pr
oceed」を出力する。
(152) Predicate "pr" representing the start of parallel execution
output "oceed".

【0090】(153)並列に実行する1単位中の手続
き数を数えるカウンタを’0’で初期化する。
(153) A counter for counting the number of procedures in one unit to be executed in parallel is initialized to '0'.

【0091】(154)並列化可能な実行単位の開始を
表す述語「//」を出力する。
(154) The predicate "//" representing the start of the parallelizable execution unit is output.

【0092】(155)手続き数をカウントするため
に、画素発生を伴う手続きであるか否かを判定する。
(155) In order to count the number of procedures, it is determined whether or not the procedure involves pixel generation.

【0093】(156)画素発生を伴う場合のみ、手続
き数に1を加える。
(156) 1 is added to the number of procedures only when pixel generation is involved.

【0094】(157)ページデータが終了するまで、
ソースコードとして用いる手続き文を生成し出力する。
(157) Until the page data is completed,
Generates and outputs procedural statements used as source code.

【0095】(158)ページデータが終了したか否か
を判定する。
(158) It is determined whether the page data is finished.

【0096】(159)現時点の手続き数のカウント
が、粒度計算(150)で求めた粒度と等しいか判定す
る。
(159) It is determined whether the count of the number of procedures at the present time is equal to the granularity calculated in the granularity calculation (150).

【0097】(160)判定(159)の結果、手続き
数が粒度と等しくなった場合は、述語「end」を出力
し、手順(153)から(160)までの処理を再度行
う。前記の一連の処理は、1ページ文のデータが終了す
るまで繰り返し実行される(158)。
(160) If the number of procedures is equal to the granularity as a result of the judgment (159), the predicate "end" is output, and the processes from steps (153) to (160) are performed again. The series of processes described above is repeatedly executed until the data of one page sentence is completed (158).

【0098】(161)ページデータが終了した場合
は、手続き数のカウントが粒度の値に満たない場合で
も、「end」文を出力する。
(161) When the page data is completed, the "end" statement is output even if the number of procedures is less than the granularity value.

【0099】(162)、(163)プログラムの終了
手続き文を出力し処理を終了する。
(162), (163) A program termination procedure statement is output and the process is terminated.

【0100】以上の処理により、ソースコード上で並列
化される処理が明示的に示されることになる。
By the above processing, the processing to be parallelized on the source code is explicitly indicated.

【0101】(4)出力されるソースコードの例 図7は、図15の流れ図の処理に従い生成されるソース
コードの例を示す。
(4) Example of Output Source Code FIG. 7 shows an example of the source code generated according to the processing of the flowchart of FIG.

【0102】図15中の手順(151)で7、1のプロ
グラム開始部分を出力する。手続き数のカウントが、粒
度計算処理(150)で求められた値と等しくなるま
で、ソースコードに用いる手続き文の生成を行い、記述
72のように「// begin --- end;」形式の複文として
出力する。粒度決定手段50は、この繰り返しにより、
以下記述73、74等、プロセッサ数と等しい個数の
「// begin --- end;」形式の複文を出力する。1ペー
ジ当たりの全ての記述が完結した場合、プリンタドライ
バ11は、構文76を出力する。複数ページの印刷はこ
の繰り返しである。
In the procedure (151) in FIG. 15, the program start portion of 7 and 1 is output. Until the count of the number of procedures becomes equal to the value obtained in the granularity calculation process (150), the procedural statements used in the source code are generated, and as in the description 72, "// begin --- end;" Output as a compound sentence. The particle size determination means 50 repeats this
The following statements 73, 74, etc., output the same number of compound statements in the format "// begin --- end;" equal to the number of processors. When all the descriptions per page are completed, the printer driver 11 outputs the syntax 76. Printing of multiple pages is a repetition of this.

【0103】「proceed -- end;」形式で囲まれる範囲
75の、復文72、73、74それぞれの中に含まれて
いる画素発生を伴う手続きの数は等しい。従って、各復
文の処理を、それぞれ使用可能なプロセッサに割り当て
た場合、均等に並列実行することが可能となる。
In the range 75 surrounded by the “proceed--end;” format, the number of procedures involving pixel generation included in each of the reprints 72, 73, and 74 is equal. Therefore, when the processing of each sentence is assigned to each available processor, it is possible to execute the processing in parallel evenly.

【0104】6C.並列言語コンパイラ3の実装と動作 コンパイラ3は、字句解析処理、構文解析処理、コード
生成処理から構成される。前述した様に、本実施例では
yaccを用い構文解析部分のソースコードを作成し、コン
パイラを開発した。この手段によるコンパイラの開発
は、広く普及しており周知の技術である。また字句解析
処理、コード生成処理についても、公知の各種コンパイ
ラプログラムと同様で、特別な構成を持たない。
6C. Implementation and Operation of Parallel Language Compiler 3 The compiler 3 is composed of lexical analysis processing, syntax analysis processing, and code generation processing. As described above, in this embodiment,
The source code of the parsing part was created using yacc, and the compiler was developed. The development of a compiler by this means is a widely known and well-known technique. Also, the lexical analysis processing and the code generation processing are similar to those of various known compiler programs, and have no special configuration.

【0105】本実施例のコンパイラ3は、特定のプロセ
ッサの機械語を出力せず、代わりに仮想機械を設定し、
仮想機械の機械語を出力する。この方法も広く普及して
いる。コンパイラ3は、N台のプロセッサ装置を使用し
並列実行する場合でも、1つの仮想機械語のオブジェク
トコードを出力する。一つの仮想機械語のオブジェクト
コードは、実行段階で処理を多重化するために専用に設
計された仮想機械語を含む。以下に例を挙げてこれを説
明する。
The compiler 3 of this embodiment does not output the machine language of a specific processor but sets a virtual machine instead,
Output the machine language of the virtual machine. This method is also widely used. The compiler 3 outputs one virtual machine language object code even when N processor units are used and executed in parallel. The object code of one virtual machine language includes a virtual machine language specifically designed to multiplex processing at the execution stage. This will be described below with an example.

【0106】本実施例が画像操作に使用する手続きの例
を示す。
An example of the procedure used in this embodiment for image manipulation will be shown.

【0107】(a)直接画素の操作を行わない手続き newpath() … 領域定義の開始命令 penSize() … 描画ペンサイズの指定命令 penPat() … 描画パターンの指定命令 polygon() … 多角形、曲線の定義命令 line() … 直線の定義命令 oval() … だ円輪郭の定義命令 他 (b)画素の操作を伴う手続き strokepath() … 輪郭、線の画素発生命令 fillpath() … 領域の塗りつぶし命令 invert() … 領域の画素の輝度反転命令 他。(A) Procedure that does not directly manipulate pixels newpath () ... area definition start command penSize () ... drawing pen size specification command penPat () ... drawing pattern specification command polygon () ... polygon, curve Definition command line ()… Line definition command oval ()… Oval contour definition command etc. (b) Procedure involving pixel operation strokepath ()… Contour and line pixel generation command fillpath ()… Region filling command invert ()… Instruction to invert the brightness of pixels in the area

【0108】図8に簡単な並列実行文を含むソースコー
ドの例を挙げた。この例はコンパイラ3の処理結果を説
明する目的で示したものであり、並列実行の粒度は、本
実施例の粒度決定手段49で設定した粒度に比較し小さ
い。領域80に示した図は、図8のリストに従い実行し
た結果得られる図形を示した図である。
FIG. 8 shows an example of source code including a simple parallel execution statement. This example is shown for the purpose of explaining the processing result of the compiler 3, and the granularity of parallel execution is smaller than the granularity set by the granularity determining means 49 of this embodiment. The diagram shown in the area 80 is a diagram showing a graphic obtained as a result of execution according to the list of FIG.

【0109】コンパイラ3がこれを入力として処理した
時、出力されるオブジェクトコードを、アセンブラ書式
で書き表したリストを図9に示す。コンパイラ3は、例
えば手続き文81を、アセンブラ形式で書いた時91で
示される複数の仮想機械語のコード列に翻訳する。
FIG. 9 shows a list in which the object code output when the compiler 3 processes it as an input is written in the assembler format. The compiler 3 translates, for example, the procedure statement 81 into a plurality of virtual machine code strings indicated by 91 when written in the assembler format.

【0110】(補)簡単に仮想機械語を説明する。PUSH
C(00)は定数をスタックメモリの最上位に置く。NEG(17)
はスタックメモリ最上位の値の符号を反転する。TRAP(2
a)はソフトウェア割り込みを用い、各手続き呼び出しの
ディスパッチテーブルを参照し分岐を発生する。ADDSP
(30)はスタックポインタの値に定数を加える。
(Supplement) The virtual machine language will be briefly described. PUSH
C (00) places the constant at the top of stack memory. NEG (17)
Inverts the sign of the top value in the stack memory. TRAP (2
In a), a software interrupt is used and a branch is generated by referring to the dispatch table of each procedure call. ADDSP
(30) adds a constant to the stack pointer value.

【0111】実行段階で処理を多重化するために、コン
パイラ3が出力する機械語は次の3種類である。
In order to multiplex the processing at the execution stage, the compiler 3 outputs the following three types of machine language.

【0112】(1)FORK(2f) // 文または、// begin -- end; 複文が開始される位置
でコンパイラ3が生成する機械語である。
(1) FORK (2f) // statement or // begin --end; This is a machine language generated by the compiler 3 at the position where the compound statement starts.

【0113】(2)EXIT(2d) // 文または、// begin -- end; 複文が終了する位置で
コンパイラ3が生成する機械語である。
(2) EXIT (2d) // statement or // begin --end; Machine language generated by the compiler 3 at the position where the compound statement ends.

【0114】(3)WAIT(2e) proceed -- end; 文が終了する位置でコンパイラ3が生
成する機械語である。
(3) WAIT (2e) proceed--end; This is a machine language generated by the compiler 3 at the position where the statement ends.

【0115】6D.仮想機械の動作 仮想機械5はコンパイラ3が出力したオブジェクトコー
ド4を入力として、仮想機械語の命令語を”逐次”実行
するインタープリタである。
6D. Operation of Virtual Machine The virtual machine 5 is an interpreter that executes the instruction words of the virtual machine language "sequentially" with the object code 4 output by the compiler 3 as an input.

【0116】(ア)仮想機械の構成とその動作 (1)起動 仮想機械5の構成図を図10に示す。仮想機械5はOS
の管理下で実行される一つのプロセスである。仮想機械
5は通信ソケット101を介して、外部プログラムと通
信する。コンパイラ3は、コンパイル操作終了後、オブ
ジェクトコード4をファイルとして記録し、オブジェク
トコード4の仮想機械語を、仮想機械5伝える。後処理
の関係から、全ての仮想機械語は一時的に受信バッファ
110に蓄積される。
(A) Configuration of Virtual Machine and Its Operation (1) Startup FIG. 10 shows a configuration diagram of the virtual machine 5. Virtual machine 5 is OS
It is a process that runs under the control of. The virtual machine 5 communicates with an external program via the communication socket 101. After the compilation operation is completed, the compiler 3 records the object code 4 as a file and transmits the virtual machine language of the object code 4 to the virtual machine 5. Due to post-processing, all virtual machine languages are temporarily stored in the reception buffer 110.

【0117】これを受信した仮想機械5は、プロセス複
製手段102は自分と同一の処理を行うプロセス103
を複製する。この後、プロセス103が、実際に仮想機
械語オブジェクトコード4を実行する。この方法は、複
数の要求を単一のプロセスで受領し、マルチタスク処理
する場合の最も一般的な公知技術である。
In the virtual machine 5 having received this, the process duplicating means 102 performs the same process 103 as itself.
To duplicate. After this, the process 103 actually executes the virtual machine language object code 4. This method is the most commonly known technique for receiving multiple requests in a single process and multitasking.

【0118】(2)実行 プロセス103は、通信ソケット130を介して、オブ
ジェクトコード4の仮想機械語を逐次読み取り、実行制
御手段104に渡す。実行制御手段104は、仮想機械
のスタック管理、プログラムポインタ管理を行う核とな
る部分で、個々の機械語の実処理への分岐を発生する。
実行制御手段104は、個々の機械語の意味を解釈し、
一般の制御語(スタック操作命令、演算子、ジャンプ命
令)の場合、ディスパッチャを通し処理105を実行す
る。また、画像操作命令(本実施例では命令語TRAP(2a)
で開始される)の場合は画像処理ライブラリ106に含
まれる個々の手続きを実行する。
(2) The execution process 103 sequentially reads the virtual machine language of the object code 4 via the communication socket 130 and passes it to the execution control means 104. The execution control unit 104 is a core unit for performing stack management and program pointer management of the virtual machine, and branches each machine language to actual processing.
The execution control means 104 interprets the meaning of each machine language,
In the case of a general control word (stack operation instruction, operator, jump instruction), the processing 105 is executed through the dispatcher. Further, an image operation command (command TRAP (2a) in this embodiment)
In the case of (starting with), each procedure included in the image processing library 106 is executed.

【0119】(イ)処理を並列化する機械語とその動作 実行制御手段104は特別な場合の命令語として、6C
で述べたFORK(2f)、EXIT(2d)、WAIT(2e)を実行する。こ
れら各命令はそれぞれ対応するP_FORK処理107、P_EX
IT処理108、P_WAIT処理109で構成される。
(A) Machine language for parallelizing processing and its operation The execution control means 104 uses 6C as an instruction word in a special case.
Execute FORK (2f), EXIT (2d), and WAIT (2e) described in. Each of these instructions corresponds to the corresponding P_FORK processing 107 and P_EX.
It is composed of an IT process 108 and a P_WAIT process 109.

【0120】(1)P_FORK処理107 P_FORK処理107は、プロセスの複製と等価な処理を仮
想機械語のレベルで行う。すなわちP_FORK処理107
は、受信バッファ110を参照し、先頭から終了までの
仮想機械語の命令語のデータ列を、他プロセッサ上に実
装された別の仮想機械5に転送する。図1を用いれば、
これは通信9で示される。
(1) P_FORK Processing 107 The P_FORK processing 107 performs processing equivalent to process duplication at the virtual machine language level. That is, P_FORK processing 107
Refers to the reception buffer 110 and transfers a data string of a virtual machine instruction word from the beginning to the end to another virtual machine 5 installed on another processor. Using Figure 1,
This is indicated by communication 9.

【0121】既に述べた通り、仮想機械5はインタープ
リタであるから、アーキテクチャの異なる他のマシンに
対しても、容易に実装できる。なぜなら、そのマシンの
OSの管理下で、そのマシン固有の開発言語(例えばC
言語やPascal言語)でインタープリタプログラムを記述
し、コンパイル後、実装するだけで良いからである。ま
た仮想機械5と他の仮想機械との間の通信は、ネットワ
ークを利用したソケット間の通信であり、今日広く使用
されている技術にすぎない。
As described above, since the virtual machine 5 is an interpreter, it can be easily mounted on other machines having different architectures. This is because the development language (for example, C
This is because it is sufficient to write an interpreter program in the language or Pascal language), compile it, and then implement it. Further, the communication between the virtual machine 5 and another virtual machine is communication between sockets using a network, and is only a technique widely used today.

【0122】他プロセッサ上に実装された別の仮想機械
5は、仮想機械語を受信し受信バッファ110に蓄積
し、実行する。このとき仮想機械語を送付してきた相手
が、コンパイラ3であるか、別の仮想機械5であるかは
判断出来ない。仮想機械5は単純に実行する。
Another virtual machine 5 mounted on another processor receives the virtual machine language, stores it in the reception buffer 110, and executes it. At this time, it is not possible to determine whether the partner who sent the virtual machine language is the compiler 3 or another virtual machine 5. The virtual machine 5 simply executes.

【0123】図9に戻り機械語の説明を行う。Returning to FIG. 9, the machine language will be described.

【0124】P_FORK処理107(すなわちFORK(2c)仮想
機械語)の処理を実行した実行制御手段104は、仮想
機械語の転送が正しく完了した時、処理結果として値
「0」をスタック最上段に置く。図9の命令92の後、
処理が正しく完了すればスタック最上段の値=0であ
る。命令93はスタック最上段の値=0の時、アドレス
相対ジャンプを行う。ここでは16進数で+2a先のア
ドレスに、処理が分岐する。従ってP_FORK処理107が
正しく完了した後、この仮想機械5の実行制御手段10
4は、16進数表示で0033番地から処理を続ける。
この結果、処理単位94(図8の処理単位82)は他の
仮想機械5が実行し、この仮想機械5は次の実行文(0
033番地)以後の処理へ移る。
The execution control means 104, which has executed the processing of the P_FORK processing 107 (that is, the FORK (2c) virtual machine language), sets the value "0" as the processing result to the top of the stack when the transfer of the virtual machine language is completed correctly. Put. After instruction 92 in FIG.
If the processing is completed correctly, the value at the top of the stack = 0. The instruction 93 performs an address relative jump when the value 0 at the top of the stack. Here, the process branches to the address + 2a ahead in hexadecimal. Therefore, after the P_FORK process 107 is correctly completed, the execution control means 10 of this virtual machine 5
4 is a hexadecimal number display and continues processing from the address 0033.
As a result, the processing unit 94 (processing unit 82 in FIG. 8) is executed by another virtual machine 5, and this virtual machine 5 executes the next execution statement (0
Address 033) and the subsequent processing.

【0125】通信障害、仮想機械の未実装などの理由で
P_FORK処理107が正しく実行されなかった場合、ス
タック最上段の値は=1となる。このとき命令語93の
分岐は実行されない。よって000a番地以後の機械語
を逐次処理することになる。また通信障害、仮想機械の
未実装などの事象はエラーとして検出され、エラー時に
はP_EXIT処理108は無視される。従ってP_FORK処理1
07に失敗した場合は、図9に示すような並列処理を含
む機械語列であっても、逐次処理される。
Due to a communication failure, a non-implementation of a virtual machine, etc.
When the P_FORK process 107 is not executed correctly, the value at the top of the stack is = 1. At this time, the branch of the instruction word 93 is not executed. Therefore, the machine words after the address 000a will be sequentially processed. Events such as communication failure and non-installation of virtual machines are detected as errors, and the P_EXIT processing 108 is ignored at the time of error. Therefore, P_FORK processing 1
If 07 fails, even a machine language string including parallel processing as shown in FIG. 9 is sequentially processed.

【0126】(2)P_EXIT処理108 (1)で仮想機械語を受け取った別の仮想機械5では、
初期値としてスタック最上段の値が「1」とされる。図
9の例では、命令93の分岐は発生しない。この結果、
この仮想機械5は処理単位94(図8の処理単位82)
を実行する。
(2) P_EXIT processing 108 In another virtual machine 5 that received the virtual machine language in (1),
As the initial value, the value at the top of the stack is set to "1". In the example of FIG. 9, the branch of the instruction 93 does not occur. As a result,
This virtual machine 5 has a processing unit 94 (processing unit 82 in FIG. 8).
To execute.

【0127】処理単位94の最後の命令はEXIT(2d)であ
る。この命令を検出した時、実行制御手段104はP_EX
IT処理108を実行する。この処理は、処理結果として
画像メモリ111の全ての内容を、仮想機械語命令の発
信元となった仮想機械5に返信する。この後、実行制御
手段104は、処理終了と見なし、通信ソケットを閉
じ、プロセスの実行を終了する。
The last instruction of the processing unit 94 is EXIT (2d). When this instruction is detected, the execution control means 104 causes P_EX
The IT process 108 is executed. As a result of this processing, all the contents of the image memory 111 are returned to the virtual machine 5 which is the source of the virtual machine language instruction. After that, the execution control unit 104 regards the processing as end, closes the communication socket, and ends the execution of the process.

【0128】(3)P_WAIT処理109 最初に仮想機械語命令の発信元となった仮想機械5は、
命令語95の位置で同期的な待ち状態に入る。すなわち
実行制御手段104が、P_WAIT処理109を呼び出す
と、P_WAIT処理109は処理を分散した他の仮想機械5
が処理結果を返すまで待機する。処理結果が返信された
場合、P_WAIT処理109は、結果として返された画像メ
モリ111の内容を、自プロセス内の画像メモリ111
に複写する。
(3) P_WAIT Processing 109 The virtual machine 5 that is the source of the virtual machine language instruction first
At the position of the command word 95, a synchronous waiting state is entered. That is, when the execution control unit 104 calls the P_WAIT processing 109, the P_WAIT processing 109 distributes the processing to other virtual machines 5
Waits for the processing result to be returned. When the processing result is returned, the P_WAIT processing 109 uses the contents of the image memory 111 returned as a result, as the image memory 111 in the own process.
Copy to.

【0129】このとき、唯一の制限事項は、重ね合わせ
処理の順序である。並列処理により得た”独立した図
形”を重ね合わせる場合、ソースコード中で記述が現れ
た順番に従い重ね合わせる。図8の例で言えば、第1の
「// begin -- end」文から得た画像を下に、第2の「/
/ begin -- end」文から得た画像を上に置く。この結
果、領域80の画像に示す様に、斜線部分に、曲線が上
書きされる。
At this time, the only limitation is the order of the superposition processing. When superimposing "independent figures" obtained by parallel processing, superimpose them according to the order in which the descriptions appear in the source code. In the example of FIG. 8, the image obtained from the first “// begin --end” sentence is displayed below, and the second “/
Put the image from the "/ begin--end" sentence on top. As a result, as shown in the image of the area 80, the curved line is overwritten on the shaded portion.

【0130】(ウ)印刷動作 以上の処理手順によりプログラム中の全ての画像操作の
処理結果が画像メモリ111に記録された。図8の例に
示す様に、ページ記述の最後で実行される画像操作の命
令は「showpage」文83である。この文は図9の記述9
6に翻訳される。仮想機械5はこの命令を検出したと
き、画像メモリ111の内容を印刷装置6に転送する。
この処理によって、1ページに対する印刷処理の流れが
完了する。 7.第2の実施例 本発明について、別の実施例を挙げて説明する。装置全
体の構成は、図1に示したものと同じである。また処理
の前提条件も等しい。
(C) Printing Operation The processing results of all the image operations in the program are recorded in the image memory 111 by the above processing procedure. As shown in the example of FIG. 8, the image operation command executed at the end of the page description is the “show page” statement 83. This sentence is the description 9 in FIG.
Translated into 6. When the virtual machine 5 detects this command, it transfers the contents of the image memory 111 to the printing device 6.
By this processing, the flow of the printing processing for one page is completed. 7. Second Embodiment The present invention will be described with reference to another embodiment. The overall configuration of the device is the same as that shown in FIG. The preconditions for processing are also the same.

【0131】現在では、パーソナルコンピュータにおい
ても、主記憶装置と、ハードディスク等の補助記憶装置
の容量が拡大した。一時的であれば、出力すべきソース
コード全体を、主記憶装置ないし補助記憶装置に記録す
る事も可能である。
At present, even in personal computers, the capacities of the main storage device and the auxiliary storage device such as a hard disk have been expanded. If it is temporary, the entire source code to be output can be recorded in the main storage device or the auxiliary storage device.

【0132】前記の実施例に比較し、バッファ60を充
分大きな領域として確保出来る場合、図11、12に示
す処理手順が考えられる。プロセッサ数取得手段48
は、第1の実施例と同様の手順でプロセッサ数を取得す
る。
When the buffer 60 can be secured as a sufficiently large area as compared with the above embodiment, the processing procedure shown in FIGS. 11 and 12 can be considered. Processor number acquisition means 48
Acquires the number of processors in the same procedure as in the first embodiment.

【0133】(1)画像処理手続き数取得手段49、図
11 (111) プリンタドライバ11は、ページ開始から
終了までの処理において、ページ記述言語の各手続き文
の生成を行う。
(1) Image processing procedure number acquisition means 49, FIG. 11 (111) The printer driver 11 generates each procedural sentence in the page description language in the processing from the page start to the page end.

【0134】(112)生成結果のソースコードを、バ
ッファ60に記録する。このとき画像処理手続き数取得
手段49は、手続き(の命令語)が画素生成を伴う処理
か判断する。
(112) The source code of the generation result is recorded in the buffer 60. At this time, the image processing procedure number obtaining unit 49 determines whether (the instruction word of) the procedure is a process involving pixel generation.

【0135】(113)画素生成を伴う場合、画像処理
手続き数取得手段49は、手続き数のカウントに1を加
える。
(113) When pixel generation is involved, the image processing procedure number acquisition means 49 adds 1 to the procedure number count.

【0136】(114)画素生成を伴う場合には、手続
き数のカウントはそのままで、ソースコードに用いる手
続き文を生成する。
(114) When pixel generation is involved, the procedure count used for the source code is generated with the procedure count kept unchanged.

【0137】(115)ページが終了するまで、各手続
きに対するソースコードをバッファ60に保存する。
(115) The source code for each procedure is stored in the buffer 60 until the page is completed.

【0138】(2)粒度決定手段50、図12 (122)粒度決定手段48が、バッファ60に記録さ
れたソースコードを、ページ終了まで順次読み取る。
(2) The granularity determining means 50 and FIG. 12 (122) The granularity determining means 48 sequentially reads the source code recorded in the buffer 60 until the end of the page.

【0139】(123)このとき、手続き数を逐次計数
する。
(123) At this time, the number of procedures is sequentially counted.

【0140】(124)第1の実施例と同様に、プロセ
ッサ数と前記で求めた手続き数から決定した粒度を用い
て、現時点での手続き数のカウントと比較する。
(124) Similar to the first embodiment, the granularity determined from the number of processors and the number of procedures obtained above is used to compare with the current number of procedures.

【0141】(125)手続き数のカウントが、粒度と
等しくなった場合、ソースコード上へ、並列化の構文を
書き加える。
(125) When the count of the number of procedures becomes equal to the granularity, the syntax of parallelization is added on the source code.

【0142】この処理は、ソースコードを一度生成した
後、書き加えを行うが、バッファ60を主記憶装置に配
置した場合、充分高速に処理できる。
In this processing, the source code is generated once and then the writing is performed. However, when the buffer 60 is arranged in the main memory, it can be processed at a sufficiently high speed.

【0143】8.第1の実施例の拡張 (1)ソースコード生成の拡張 ページ記述言語のソースコードは、プリンタドライバ等
のソフトウェアにより機械生成される場合がほとんどで
ある。ページ記述言語のコンパイラ/インタープリンタ
は、機械生成されたソースコードを直接受け取る。この
点から、ソースコードが文字列によって記述されなけれ
ばならない、という必然性は低い。
8. Extension of First Embodiment (1) Extension of Source Code Generation In most cases, the source code of the page description language is machine-generated by software such as a printer driver. The page description language compiler / interprinter receives the machine generated source code directly. From this point, it is not necessary that the source code be described by a character string.

【0144】ソースコードにおいて、文字列による予約
語を用いるよりも、予約語に適切な符号を割り当て、い
わゆるバイナリコードの記述を採用する方法がある。コ
ード長の短縮、コード転送時間短縮、情報の隠蔽の点か
ら、バイナリコードの方が有利である。ソースコード
が、文字列以外のデータ形式により記述された場合で
も、コンパイラ側は、字句解析処理の変更で対応でき
る。また仮想機械は何ら変更を受けない。従って、本実
施例のソースコード記述手段を変更する事は容易であ
る。
There is a method of assigning an appropriate code to a reserved word and adopting a so-called binary code description rather than using a reserved word of a character string in the source code. The binary code is more advantageous in terms of shortening the code length, shortening the code transfer time, and hiding information. Even if the source code is described in a data format other than a character string, the compiler can deal with it by changing the lexical analysis processing. Also, the virtual machine is not subject to any changes. Therefore, it is easy to change the source code description means of this embodiment.

【0145】(2)粒度決定手段50の必要性 粒度決定手段50は、並列処理の粒度をプロセッサ数に
合わせて調整する。疎結合の処理系では、処理分散のオ
ーバーヘッドが無視できないため、必要以上に細分化し
ないほうが効率が良い場合もある。一方で、極端に大き
な処理単位では、並列化の個数が減少し、処理速度の改
善の効果が減ずる。従って、処理内容とのバランスが重
要である。
(2) Necessity of the granularity determining means 50 The granularity determining means 50 adjusts the granularity of parallel processing according to the number of processors. In a loosely coupled processing system, the processing distribution overhead cannot be ignored, so it may be more efficient not to subdivide it more than necessary. On the other hand, in an extremely large processing unit, the number of parallelizations decreases, and the effect of improving the processing speed decreases. Therefore, the balance with the processing content is important.

【0146】第1の実施例では、画像操作の手続き数
が、プロセッサの数より少ない場合は、「粒度1」とな
り、手続き一つ一つが並列実行の単位となる。処理全体
のサイズが小さい場合は、並列化によるオーバヘッドを
考え、逐次処理を行う。この場合は、粒度の最小値に基
準を設け、基準値以下の場合は並列化を行わない。ある
いは、使用するプロセッサ数を減らし、粒度を大にする
方法でも対応できる。いずれの場合でも、実現は容易で
ある。
In the first embodiment, if the number of image manipulation procedures is smaller than the number of processors, the "granularity 1" is set, and each procedure becomes a unit of parallel execution. If the overall size of the processing is small, consider the overhead due to parallelization and perform sequential processing. In this case, a reference is set to the minimum value of the granularity, and if it is less than the reference value, parallelization is not performed. Alternatively, it is also possible to reduce the number of processors used and increase the granularity. In either case, realization is easy.

【0147】第1の実施例で示した粒度決定手段を用い
ずに、一つ一つの手続きを並列化する方法も可能であ
る。これは特に細粒度の処理である。細粒度の処理は、
処理をマルチプロセッサに分散するための処理時間が極
めて短い密結合の装置に適する。この装置について、1
0節で第2の実施例として挙げる。
A method of parallelizing each procedure is also possible without using the granularity determining means shown in the first embodiment. This is a particularly fine-grained process. Fine-grained processing is
Suitable for tightly coupled devices with extremely short processing times for distributing processing to multiple processors. About this device, 1
A second embodiment will be given in Section 0.

【0148】9.第1の実施例の装置全体について生じ
る効果 本実施例の印刷装置において、アプリケーション(また
はプリンタドライバ)が、並列処理PDLの文法に従
い、上記の通り効率よく、画像を記述したソースコード
を生成する。並列処理PDLのコンパイラは、この記述
結果をソースファイルとして入力し、仮想機械の機械語
を出力する。これを入力として、インタープリタが画像
の発生を並列に実行する。この結果、印刷処理全体を通
して次に挙げる効果が生じた。
9. Effect that occurs in the entire apparatus of the first embodiment In the printing apparatus of the present embodiment, the application (or printer driver) efficiently generates the source code describing the image as described above according to the grammar of the parallel processing PDL. The parallel processing PDL compiler inputs this description result as a source file and outputs the machine language of the virtual machine. With this as an input, the interpreter executes image generation in parallel. As a result, the following effects were produced throughout the printing process.

【0149】(1)一般のページプリンタは、処理速度
に関し購入時点での性能がそのまま変わらない。しか
し、並列処理PDLを搭載したプリンタは、ネットワー
ク上のWSに並列処理の仮想機械を実装すると、その分
だけ速くなる。オフィスのWS数拡大に伴い、個々のプ
リンタの速度向上を図ることが出来る。
(1) Regarding a general page printer, the performance at the time of purchase remains unchanged with respect to the processing speed. However, the printer equipped with the parallel processing PDL becomes faster by mounting the virtual machine for parallel processing on the WS on the network. As the number of office WSs increases, the speed of individual printers can be improved.

【0150】(2)エンドユーザ(消費者)が、新たに
高速なページプリンタを購入しても、速いのはその1台
だけである。しかし、並列処理PDL対応のページプリ
ンタを使用しているユーザは、ネットワークに速いWS
を導入した時、これに仮想機械を実装すると、全ての並
列PDLプリンタが速くなるという恩恵を受ける事が出
来る。
(2) Even if the end user (consumer) purchases a new high-speed page printer, only one is fast. However, a user who uses a page printer that supports parallel processing PDL has a fast WS on the network.
If you implement a virtual machine on your system, you can benefit from the speedup of all parallel PDL printers.

【0151】(3)並列処理によって生じる一般的なメ
リットがある。ピーク時負荷の特定装置への集中を防
ぐ。処理速度が改善される。
(3) There is a general merit caused by parallel processing. Prevent the peak load from being concentrated on a specific device. The processing speed is improved.

【0152】10.第2の実施例 本発明を細粒度の並列処理システムに用いた好適な実施
例を図14を用いて説明する。
10. Second Embodiment A preferred embodiment in which the present invention is applied to a fine-grain parallel processing system will be described with reference to FIG.

【0153】(1)構成 ページプリンタ146は、電子写真式のプリントエンジ
ン145を持つ装置である。ページプリンタ146の画
像処理装置は、複数個のマイクロプロセッサユニット1
41が、システムバス142を介してバス結合された方
式である。各マイクロプロセッサは、システムバス14
2を通して、共通のメモリ147にアクセスすることが
出来る。各マイクロプロセッサは、第1の実施例と同様
の仮想機械のインタープリタ・プログラムを処理する。
パーソナルコンピュータ144は、通信経路143によ
って、ページプリンタ146の画像処理装置に接続され
る。
(1) Configuration The page printer 146 is a device having an electrophotographic print engine 145. The image processing device of the page printer 146 includes a plurality of microprocessor units 1
41 is a system that is bus-coupled via a system bus 142. Each microprocessor has a system bus 14
2 can access the common memory 147. Each microprocessor processes a virtual machine interpreter program similar to that of the first embodiment.
The personal computer 144 is connected to the image processing apparatus of the page printer 146 by the communication path 143.

【0154】(2)動作 パーソナルコンピュータ144の使用者が、アプリケー
ション・プログラムから印刷処理を行う。アプリケーシ
ョン・プログラムは、オペレーティングシステムのサー
ビスを用い、プリンタドライバが用意する印刷処理用の
画像操作(関数/手続き)を呼び出す。プリンタドライ
バは、呼び出しを受けた手続き中の処理として、ページ
記述言語のソースコードを作成する。この生成手順は6
B−1に述べた処理と等しい。
(2) Operation The user of the personal computer 144 performs print processing from the application program. The application program uses an operating system service to call an image operation (function / procedure) for print processing prepared by the printer driver. The printer driver creates the source code of the page description language as a process in the procedure that received the call. This generation procedure is 6
This is the same as the processing described in B-1.

【0155】次にプリンタドライバは、デバイスドライ
バの機能を呼び出し、生成済みのソースコードを、通信
経路143により、ページプリンタ146に送る。ペー
ジプリンタ146は、受信したソースコードをコンパイ
ルし、仮想機械語によるオブジェクトコードを作り出
す。このオブジェクトコードは、複数マイクロプロセッ
サを用い実装された、仮想機械で実行される。
Next, the printer driver calls the function of the device driver and sends the generated source code to the page printer 146 via the communication path 143. The page printer 146 compiles the received source code and creates an object code in virtual machine language. This object code is executed by a virtual machine implemented using multiple microprocessors.

【0156】(3)第1の実施例との違い ページプリンタ146では、複数のマイクロプロセッサ
が、共通メモリ147とシステムバス142を用いて、
極めて高速に相互間通信出来る。この場合、処理並列化
のための通信時間は短いので、画像操作を伴う一つの命
令語毎に並列処理しても良い。
(3) Differences from the First Embodiment In the page printer 146, a plurality of microprocessors use the common memory 147 and the system bus 142,
Communicate with each other at extremely high speed. In this case, since the communication time for parallel processing is short, parallel processing may be performed for each instruction word involving image operation.

【0157】そこでプリンタドライバ側では、画像操作
が行われる度に、並列構文を発生しても良い。これは
「粒度=1」で粒度決定手段50が実行される特別の場
合である。しかし、この実施例の様な密結合のマルチプ
ロセッサ装置であっても、処理を並列化する処理時間は
0ではない。これは、仮想機械語P_FORK(2f)の処理時間
から考え当然である。P_FORK(2f)の処理は、この実施例
でも6D(1)の処理と同様である。但し、ネットッワ
ークを利用した通信に代わり、システムバス142を用
いた通信が行われる。並列化処理時間は、主としてプロ
グラムの走行ステップ数と、バス調停時間により決ま
る。この時間は数百マイクロ秒から、数ミリ秒である。
Therefore, the printer driver may generate a parallel syntax each time an image operation is performed. This is a special case where the grain size determining means 50 is executed with "grain size = 1". However, even in the tightly coupled multiprocessor device as in this embodiment, the processing time for parallelizing the processing is not zero. This is natural considering the processing time of the virtual machine language P_FORK (2f). The processing of P_FORK (2f) is the same as the processing of 6D (1) also in this embodiment. However, instead of the communication using the network, the communication using the system bus 142 is performed. The parallelization processing time is mainly determined by the number of running steps of the program and the bus arbitration time. This time is from a few hundred microseconds to a few milliseconds.

【0158】この事から、やはり粒度決定手段50は必
要であり、適切な処理粒度を処理対象の系によって決め
る必要があると言える。
From this, it can be said that the grain size determining means 50 is still necessary, and the appropriate grain size must be determined depending on the system to be treated.

【0159】(4)第2の実施例の拡張 この実施例では、マイクロプロセッサユニット141の
アーキテクチャは均一である。この場合、仮想機械と実
機械を一致させても問題は生じない。実際のマイクロプ
ロセッサには、FORK(2f)、EXIT(2d)、WAIT(2e)等の特殊
な機械語が組み込まれていない。しかし、これはライブ
ラリ関数として実装すれば良い。画像処理の各種手続き
の命令語も同様である。この変更は、実施例のコンパイ
ラ部分の変更で実現出来る。本発明のコード生成処理自
体は、変更を受ける事は無い。
(4) Extension of the Second Embodiment In this embodiment, the architecture of the microprocessor unit 141 is uniform. In this case, there is no problem even if the virtual machine and the real machine are matched. No special machine language such as FORK (2f), EXIT (2d), or WAIT (2e) is built in the actual microprocessor. However, this can be implemented as a library function. The same applies to command words for various image processing procedures. This change can be realized by changing the compiler part of the embodiment. The code generation process itself of the present invention does not change.

【0160】[0160]

【発明の効果】上記の実施例が明らかにした様に、本発
明の構成上の特徴から次の効果が生じる。
As is clear from the above embodiment, the following effects are brought about by the structural features of the present invention.

【0161】(1)並列処理に使用するプロセッサの数
と等しい数に、処理単位を分割するため、並列化のため
の処理で消費される時間を最小に抑え、ソースコード生
成を効率良く行うことができる。
(1) Since the processing unit is divided into the number equal to the number of processors used for parallel processing, the time consumed by the processing for parallelization is minimized and the source code is efficiently generated. You can

【0162】(2)並列処理の単位となる一連の操作に
含まれる述語の数を調整して、均一な粒度の並列化ソー
スコードを生成する。この結果、各プロセッサの処理時
間は偏らず、処理全体の速度向上に効果がある。
(2) The number of predicates included in a series of operations, which is a unit of parallel processing, is adjusted to generate a parallelized source code with a uniform grain size. As a result, the processing time of each processor is not biased, and it is effective in improving the speed of the entire processing.

【図面の簡単な説明】[Brief description of drawings]

【図1】 アプリケーション及びプリンタドライバの処
理の説明図。
FIG. 1 is an explanatory diagram of processing of an application and a printer driver.

【図2】 並列構文の説明図。FIG. 2 is an explanatory diagram of parallel syntax.

【図3】 構文定義の説明図。FIG. 3 is an explanatory diagram of syntax definition.

【図4】 印刷装置の全体構成の説明図。FIG. 4 is an explanatory diagram of the overall configuration of the printing apparatus.

【図5】 プロセッサ数取得手段48の処理の流れ図。FIG. 5 is a flowchart of the process of the processor number acquisition unit 48.

【図6】 画像処理手続き数取得手段49の処理の流れ
図。
FIG. 6 is a flowchart of the processing of the image processing procedure number acquisition unit 49.

【図7】 プログラム生成結果の説明図。FIG. 7 is an explanatory diagram of a program generation result.

【図8】 コンパイラ動作の例を説明する図。FIG. 8 is a diagram illustrating an example of a compiler operation.

【図9】 コンパイラ動作の例を説明する図。FIG. 9 is a diagram illustrating an example of a compiler operation.

【図10】 仮想機械の説明図。FIG. 10 is an explanatory diagram of a virtual machine.

【図11】 画像処理手続き数取得手段49の処理の流
れ図。
FIG. 11 is a flowchart of the processing of the image processing procedure number acquisition unit 49.

【図12】 粒度決定手段50の処理の流れ図。FIG. 12 is a flowchart of the processing of the grain size determination means 50.

【図13】 スプールファイルのデータ構造の説明図。FIG. 13 is an explanatory diagram of a data structure of a spool file.

【図14】 第2の実施例の構成図。FIG. 14 is a configuration diagram of a second embodiment.

【図15】 粒度決定手段50の処理の流れ図。FIG. 15 is a flowchart of the processing of the grain size determination means 50.

【符号の説明】[Explanation of symbols]

1…アプリケーションプログラム 2…並列言語で記述されたソースコード 3…並列言語コンパイラ 4…仮想機械語によるオブジェクトコード 5…仮想機械(を構成するプロセス) 6…印刷装置 11…プリンタドライバ 40…スプールファイル 42…オペレーティングシステム 43…画像処理手続き群 44…標準手続き 45…変更可能手続き 46…デバイスドライバ 47…物理デバイス 48…プロセッサ数取得手段 49…画像処理手続き数取得手段 50…粒度決定手段 60…一時バッファ 141…マイクロプロセッサユニット 142…システムバス 143…通信経路 144…パーソナルコンピュータ 145…電子写真方式プリントエンジン 146…ページプリンタ 147…共通メモリ DESCRIPTION OF SYMBOLS 1 ... Application program 2 ... Source code written in parallel language 3 ... Parallel language compiler 4 ... Object code by virtual machine language 5 ... Virtual machine (process which comprises) 6 ... Printing device 11 ... Printer driver 40 ... Spool file 42 Operating system 43 ... Image processing procedure group 44 ... Standard procedure 45 ... Changeable procedure 46 ... Device driver 47 ... Physical device 48 ... Processor number acquisition means 49 ... Image processing procedure number acquisition means 50 ... Granularity determination means 60 ... Temporary buffer 141 Microprocessor unit 142 System bus 143 Communication path 144 Personal computer 145 Electrophotographic print engine 146 Page printer 147 Common memory

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】 図形、文字により構成される文書の印刷
に際し、印刷を行なうアプリケーションプログラムが処
理する画像操作手順を、プログラム言語の文法に従った
ソースコードに書き出す装置であって、 前記の一連の画像操作が呼び出す手続き数を取得する画
像処理手続き数取得手段と、 並列処理に使用可能なプロセッサの数を知って、前記画
像処理手続き数取得手段で取得された画像処理手続き数
とを用いて、並列処理に適当な処理単位を決定する粒度
決定手段とにより構成され、プログラム言語の文法に定
められた一定の構文を生成することを特徴とするプログ
ラム生成装置。
1. An apparatus for writing an image operation procedure processed by an application program for printing into a source code according to a grammar of a program language when printing a document composed of graphics and characters, wherein By using the image processing procedure number obtaining means for obtaining the number of procedures called by the image operation and the number of processors available for parallel processing, and using the image processing procedure number obtained by the image processing procedure number obtaining means, A program generating device comprising: a granularity determining means for determining a processing unit suitable for parallel processing, and generating a constant syntax defined by a grammar of a programming language.
JP24957793A 1993-10-05 1993-10-05 Program generator Expired - Lifetime JP3284523B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP24957793A JP3284523B2 (en) 1993-10-05 1993-10-05 Program generator
EP94115655A EP0652511B1 (en) 1993-10-05 1994-10-05 Apparatus and method for generating a program for parallel processing
DE69431386T DE69431386T2 (en) 1993-10-05 1994-10-05 Method and device for generating a program for parallel processing
US08/318,448 US5752036A (en) 1993-10-05 1994-10-05 Apparatus for generating a program for parallel processing
SG1996003287A SG73378A1 (en) 1993-10-05 1994-10-05 Apparatus and method for generating a program for parallel processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24957793A JP3284523B2 (en) 1993-10-05 1993-10-05 Program generator

Publications (2)

Publication Number Publication Date
JPH07104988A true JPH07104988A (en) 1995-04-21
JP3284523B2 JP3284523B2 (en) 2002-05-20

Family

ID=17195081

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24957793A Expired - Lifetime JP3284523B2 (en) 1993-10-05 1993-10-05 Program generator

Country Status (1)

Country Link
JP (1) JP3284523B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010280101A (en) * 2009-06-03 2010-12-16 Ricoh Co Ltd Image forming apparatus, control method, and control program
JP2011148242A (en) * 2010-01-25 2011-08-04 Konica Minolta Business Technologies Inc Image forming apparatus, and program
JP2011198287A (en) * 2010-03-23 2011-10-06 Fuji Xerox Co Ltd Apparatus and program for processing image

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010280101A (en) * 2009-06-03 2010-12-16 Ricoh Co Ltd Image forming apparatus, control method, and control program
JP2011148242A (en) * 2010-01-25 2011-08-04 Konica Minolta Business Technologies Inc Image forming apparatus, and program
JP2011198287A (en) * 2010-03-23 2011-10-06 Fuji Xerox Co Ltd Apparatus and program for processing image

Also Published As

Publication number Publication date
JP3284523B2 (en) 2002-05-20

Similar Documents

Publication Publication Date Title
US5752036A (en) Apparatus for generating a program for parallel processing
EP0864964B1 (en) Printer driver switching in windows operating systems
Sneed Encapsulation of legacy software: A technique for reusing legacy software components
US7102768B2 (en) Printer drivers using filters that are operating system-independent and printer-independent
US5230049A (en) Program source code translator
US6691303B2 (en) Method and system of testing and verifying computer code in a multi-threaded environment
JP4715654B2 (en) Image data generating apparatus and image forming apparatus
AU2002250218B2 (en) Efficiently scheduled multiple raster image processors
US8625133B2 (en) Print data processing apparatus, print data processing method, and storage medium
JP3417742B2 (en) Print processing apparatus and method
TW410312B (en) Data processing method and device
JPH09114611A (en) Method and device for print processing
JP2007156613A (en) Drawing controller, drawing control method, storage medium and program
US6263493B1 (en) Method and system for controlling the generation of program statements
US5592654A (en) Apparatus and method for converting a job conforming to a first protocol into a job conforming to a second protocol
JPH06274608A (en) Multiprocessor image processor
JP3284523B2 (en) Program generator
JP3284522B2 (en) Program generator
JP3245151B2 (en) Page description language processing device and page description language processing printing device
JPH08263299A (en) Method for converting program
US6449050B1 (en) Code generator for printer driver
JPH11143656A (en) Printing system, data processing method of the same and storage medium for storing computer readable program
US5724559A (en) Method for displaying ISPF panels in a VM non-ISPF environment
US5765148A (en) Database processing apparatus and database processing method for variable length objects, and computer-readable memory medium for storing database processing program
JP3094712B2 (en) Page description language processor

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080308

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090308

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090308

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100308

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100308

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110308

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120308

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120308

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130308

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140308

Year of fee payment: 12

EXPY Cancellation because of completion of term