JP3284522B2 - プログラム生成装置 - Google Patents
プログラム生成装置Info
- Publication number
- JP3284522B2 JP3284522B2 JP24957593A JP24957593A JP3284522B2 JP 3284522 B2 JP3284522 B2 JP 3284522B2 JP 24957593 A JP24957593 A JP 24957593A JP 24957593 A JP24957593 A JP 24957593A JP 3284522 B2 JP3284522 B2 JP 3284522B2
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- image processing
- processing
- parallel
- 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.)
- Expired - Lifetime
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
を、予め定められたプログラム言語の文法に従って、ソ
ースコードとして書き出す技術(ソースコードの自動生
成)に関連する。特にパーソナルコンピュータの印刷処
理において、文書の毎ページあたりの文字、図形等の画
像操作の手順を、ページ記述言語と呼ぶプログラム言語
の文法に従って書き下す手段に関連する。
列処理を行なうためには、次の2つの段階が必要であ
る。
列に実行することができる部分、できない部分を取り出
し、処理系に識別できる記述によって伝える処理。
て、並列実行する処理。
ド自動生成は、(1)で用いられる技術である。
学技術計算などの分野に広く応用されてきた。例えば、
並列FORTRANコンパイラ等を処理系として、行列計算等
に多く使用される「多重化されたDOループを分解し、並
列に実行可能なソースコードを作り出す」技術がある。
特開平3-188529号公報、特開平2-132525号公報は、共有
変数の扱いなどのプログラム言語の特徴に従い、効率の
良い並列化ソースコードをどのように作り出すかを課題
とした発明である。
成では、並列実行したときと逐次実行したときで結果に
差異がないことを保証する必要がある。
プログラム言語は、図形または文字についての記述手順
を表したプログラムのソースコードを入力として、画素
データを出力する。出力先のデバイスは、プリンタであ
っても良いし、CRTやファクシミリ装置であっても良
い。例えば、ページ記述言語は、直線の画素を作り出す
ための命令語を持っているので、使用者が{直線命令の
命令語、開始位置の座標データ、終了位置の座標デー
タ}という程度の情報を与えれば、ページ記述言語の翻
訳実行プログラムは、画素を作り出す操作を行う。この
ために、アプリケーションプログラムにとり、表示また
は印刷の処理では、画素データを毎回作り出す操作よ
り、ページ記述言語のソースコードを出力する操作の方
が簡単である。
ード生成 アプリケーションプログラムが、ページ記述言語の文法
に従ってソースコードを生成する技術は、科学技術計算
分野で用いられるソースコード機械生成の技術と似てい
る。しかしページ記述言語には次に示すような特徴があ
る。
形が、人の作成する文書に現われる確率は低い。従って
多くの場合、生成されたソースコードの中に、繰り返し
制御のループが現われることは無い。
れた処理結果に依存する操作と依存しない操作がある。
例えば、領域を指定して画素を重ね合わせる、あるいは
輝度反転する、といった操作では、下地に置かれた画素
のデータによって処理結果が異なる。この類の操作で
は、少なくとも先行して行われた画像と重なり合いのあ
る領域については、逐次操作する必要がある。
は、以上の特徴を考慮して行なわなければならない。出
願人の特開平3-815831号公報は空間的な重なり合いを持
たない図形・文字は、並列して画素発生処理を行う事が
できるというアイデアに基づく。この発明では図形グル
ープ検出と呼ぶ図形どうしの重なり合いを検出する手段
を用い、「互いに重なり合いを持たず、独立して処理可
能な部分」を取り出す事によって、並列実行を記述する
ソースコード(または中間コード)を取り出している。
さらに特開平3-815831号公報ではページ記述言語の文法
として、並列構文の記述を前提としておらず、一度ソー
スコードを生成した後、ソースコードを読み取り解析し
て、並列実行可能な部分毎に独立した(複数の)ソース
コードないし中間コードファイルを出力している。
は、生成済みのソースコードの全体について、一つ一つ
の操作の記述を読み取り、操作対象の領域を割り出す。
これは多くの処理時間を必要とする。言わば並列処理の
前処理段階で時間がかかる事になり、処理対象の規模に
よっては、並列実行しても期待したほど処理時間が短縮
されないという問題点を持っていた。
含まれていないソースコードでは、領域どうし重なり合
う画像でも、操作単位で並行して実行して問題を生じな
い。このような場合には、図形グループ検出にかかる処
理時間は、全く意味の無い処理時間となってしまってい
た。
ループは、大きさや処理工数がまちまちであり、並列実
行時に均等な負荷分散とはならず、実行効率の上から更
なる改善の余地を持っていた。
みて考案されたもので、その目的は、処理の並列化に際
し、無駄な処理手順の発生を抑える事で、並列処理の効
果をより効率よく引き出す印刷装置を提供することであ
る。
めの一連の画像処理手続を表現したソースコードを生成
する装置において、前記一連の画像処理手続の中から、
独立実行可能な画像処理手続を検出する独立手続検出手
段と、前記検出された独立実行可能な画像処理手続の個
数を数える手続計数手段と、前記計数手段の出力に基づ
いて、前記一連の画像処理手続の中から、並列処理単位
の粒度として適当な個数の一連の前記独立実行可能な画
像処理手続からなる手続集合を抽出する手続集合抽出手
段と、前記抽出された手続集合が1つの並列処理単位で
あることを意味するソースコードを生成する並列構文ソ
ースコード生成手段と、を備えたことを特徴とする。
る個々の画像操作において、呼び出し側プログラムは、
画像処理手続きを、オペレーティングシステムのサービ
スする分岐テーブルを介して、呼び出す。
を介した呼び出しを計数し、予め定めた値を越えた場
合、粒度大と判定する。また実際のソースコード出力を
遅延する。
処理手続きから、画素生成を伴う処理を検出し、この画
素生成が先行する処理に依存する場合、依存有りと判定
する。 (4)アプリケーションあるいはプリンタドライバは、
粒度検出手段が粒度大であると判定し、かつ並列化位置
検出手段が依存無しと判定した場合、プログラム言語の
文法に従い、並列処理を行う構文を作成する。また、列
化位置検出手段が依存有りと判定した場合は、逐次処理
を行う構文を作成する。
する。
る。
(以下PCと略)ないしはワークステーション(以下W
Sと略)が、ローカルエリアネットワーク(以下ネット
ワークと略)によって接続されている。ネットワークと
して、例えばIEEE-802.xで規定された仕様が現在広く普
及している。ネットワークの機械的、電気的な接続のほ
かに、プロトコルと呼ぶ伝送手続きに関する規定があ
る。本実施例は伝送プロトコルとして、TCP/IPを用い
た。TCP/IPは複数プロトコルの総称であるが、現在広く
普及しており多くの公知資料に解説されている。
P/IP: PRINCIPLES, PROTOCOLS, ANDARCHITECTURE",Pren
tice-Hall, Inc. 1988 (2)前記の条件に含まれるPC、WSの中の少なくと
も1台の装置の使用者が、アプリケーションプログラム
を利用する。更に、利用者はこのアプリケーションプロ
グラムにおいて、印刷処理を行なう。
上で、オペレーティングシステム(以下OSと略)が、
アプリケーションプログラムの実行、停止を管理する。
OSは各PC、WS毎に独自の仕様で良い。しかし、い
ずれのOSもネットワーク上でTCP/IPのプロトコルを扱
うことを前提とする。またいずれのOSもいわゆるマル
チタスク処理によって、複数の処理プログラムが、CP
U資源を時分割して利用する事を許すことを前提とす
る。
を示す図である。構成及び処理手順は以下の通りであ
る。
用し印刷処理を行なう。アプリケーション1が、並列処
理ページ記述言語(以下並列処理PDLと略)で書かれ
たソースコード2を出力する。最近のグラフィカルユー
ザインターフェース機能を重視したOSの一部には、プ
リンタ制御に関する機能をアプリケーションに負担させ
ない様に設計されたものがある。この場合、アプリケー
ション1が、OSの提供するプリンタドライバと呼ぶ組
み込みソフトウェアの機能(関数、手続き)を呼び出
す。呼び出されたプリンタドライバ11中の関数/手続
きが、並列処理PDLで書かれたソースコード2を出力
する。
ーション1(またはプリンタドライバ11)が出力した
ソースコード2を入力し、オブジェクトコード4を出力
する。オブジェクトコード4は、仮想機械に対する機械
語及び必要なパラメータから構成されたデータ列であ
る。
4を入力し、その機械語命令を解釈し、実行し、画素を
発生する。
た画素データを受信し、1ページ単位に印刷処理を行な
う。
次実行される。従ってアプリケーション1と並列言語コ
ンパイラ3は、同一のコンピュータで実行しても構わな
い。この時、アプリケーション1と並列言語コンパイラ
3の間の通信7は、プロセス間通信と呼ぶ手段で行な
う。
て並列に実行する。同一のプロセッサ装置が、並列言語
コンパイラ3と、少なくとも一つの仮想機械5を実行し
ても構わない。この場合、並列言語コンパイラ3と仮想
機械5の間の通信はやはりプロセス間通信である。
械5が、それぞれ別のプロセッサ装置で実行されても良
い。この時は、並列言語コンパイラ3と仮想機械5の間
の通信8は、ネットワークを利用して行なう。また仮想
機械5と他の仮想機械5の間の通信9、10もネットワ
ークを利用して行なう。
る通信に関する公知資料 W. Richard Stevens ”UNIX
NETWORK PROGRAMING”, Pren
tice Hall, Inc. 1990 (補)プロセスの説明 プロセスは、OSが複数の処理プログラムに割り当てる
CPU時間、メモリ領域等資源の管理単位である。プロ
セスは、プロセスの識別子と実行管理・メモリ管理のた
めの情報を含むプロセスヘッダと、中断の際に現在のプ
ロセッサのレジスタの状態を保存するための領域と、オ
ブジェクト領域、スタック領域からなる管理単位であ
る。本実施例が前提とするOSは、複数のプログラムを
同時に実行する。一つのプログラムは一つ以上のプロセ
スで構成される。そこで、複数プログラムの実行とは、
プロセッサ、メモリ等の資源を時分割により、複数のプ
ロセスにスケジュールする処理であると言い換えて良
い。プログラムとプログラムの間の通信は、実際には一
つのプログラムを構成するいずれかのプロセスと、他の
プロセスの間で行なわれるので、プロセス間通信という
用語を用いた。この用語は、上記文献等の公知資料でも
用いられる。
ライバによってPDLのソースコードを自動生成する技
術(公知資料 Apple Computer, Inc.によるLaseWriter
プリンタドライバプログラム他)。
料 M. Ben-Ari "PRINCIPLES OF CONCURRENT PROGRAMMIN
G", Prentice-Hall International, Inc. その他、複数
の並列言語に関する教科書)。
サ装置により並列に実行する方法(公知資料 出願人、
特開平3-815831号公報)。
(公知資料 中田育男 ”コンパイラ”,産業図書,1981
その他、複数のコンパイラに関する教科書)。
同じ部分を挙げ、次に異なる部分を挙げる。
れたソースコードの内容を解釈し、画素を発生し、1台
のプリンタを用いて印刷するまでの過程を協調して並列
実行する。
置のCPUのアーキテクチャおよび、オペレーティング
システムは異なっていても良い。各プロセッサ装置のア
ーキテクチャの違いを、仮想機械を用いる事で吸収す
る。
置はネットワークによって相互に接続されている。
徴 (1)特開平3-815831号公報では、アプリケーション1
がPDLの言語仕様に従いソースコードを出力するが、
この時PDLの言語仕様は並列処理記述を含まない。言
い換えれば、並列PDLではない。これに対し、本実施
例は並列処理PDLの言語仕様を定義し、アプリケーシ
ョン1は、並列PDLで記述されたソースコード2を出
力する。
DLを用いないため、PDLのコンパイラ前処理が、ソ
ースコードを解析し、並列に実行可能な部分を取り出す
処理を行なった。これに対し、本実施例の並列言語コン
パイラ3は、並列記述に従い一つの機械語コード列を発
生する。すなわち並列に実行できる部分は、ソースコー
ドの中で予め指定されているので、この指定に従い処理
を並列化するための複数の特別な機械語をオブジェクト
コードに挿入する。
ーション(またはプリンタドライバ)が、並列処理PD
Lの文法に従って、画像処理の内容を記述したソースコ
ードを生成する点にある。この特徴を実現する上で、中
心となる技術は次の2つである。
依存した画像操作の手続き/関数」を検出する処理が必
要である。この処理は並列化位置検出手段49に従属す
る。具体的に、ページ記述言語のどの命令語が、先行す
る処理に依存するか判断するためには、依存する命令語
を内部で記録として持てば良い。プログラム言語の命令
語は、高々数十〜百数十個に過ぎないため、命令語を辞
書として持ち、ここに判別用のフラグを付加すること
は、実装上も容易である。また既存技術である。
−2節で説明する。
細。
について、詳細に説明する。
トに並列構文及び画像処理のための拡張を加えた言語を
定義して用いた。この言語の文法の拡張部分を説明する
ために、図2に簡単なソースコードの例を示した。述語
「begin」と述語「end」により囲まれた文を説明のため
「複文」と呼ぶ。図2のソースコード中で並列実行の対
象となるのは、述語「proceed」21と述語22で囲ま
れた複数の文である。述語「//」23で始まる文は、可
能であれば他のプロセッサ装置に分散され、並列に実行
される。他のプロセッサ装置が使用できない場合、同じ
プロセッサ装置上で実行される。述語「//」23に続く
文は、単一の文または複文である。複文を使用する時は
24のように記述する。述語「otherwise」25で始ま
る文(これも文または複文である)は、分散されず必ず
自プロセッサ装置の上で実行される。述語「otherwis
e」25は、省略できず、なにも行なわない場合は空文
(空白の文)を書く。
文に関する仕様である。構文を解析する処理プログラム
を開発する有力な公知技術に、コンパイラ・コンパイラ
と呼ぶ技術がある。コンパイラ・コンパイラは、言語の
構文上の仕様を書いたテキストを入力して、構文解析プ
ログラムのソースコードを出力するソフトウェアの名称
である。広く知られたものに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を構成要素に持つ。ここで主な予約語に
対応する文字列は次の通りである。
m Laboratories, Inc.が開発し、ライセンスしている。
ライバ11のの動作 本実施例の装置での印刷処理は、並列言語コンパイラ3
に何らかの入力を与える事で開始される。この入力
は、”並列PDL”の文法に従って記述されたソースフ
ァイルでなければならない。このソースファイルを作り
出す手段が、アプリケーション1またはプリンタドライ
バ11である。以下公知の部分(6B−1)と考案した
部分(6B−2)に分けて説明する。
装置として、広く普及している市販のパーソナルコンピ
ュータ用いた。この装置の場合、印刷時にPDLのソー
スコードを作り出すのは、アプリケーション1ではな
く、プリンタドライバ11と呼ぶ独立したサービスプロ
グラムである。このパーソナルコンピュータのOSの機
能から見て、プリンタドライバ11はOSのサービスプ
ログラムとして組み込まれたプリントマネージャ41と
呼ぶ機能の下層プログラムと見なすことができる。
の構成上の特徴に合わせてプリンタの種類毎に開発さ
れ、供給されるソフトウェアである。従って本実施例で
は、本実施例の並列処理印刷装置の仕様に合わせたプリ
ンタドライバ11を開発し、前記の市販パーソナルコン
ピュータに実装した。
ネージャ41、プリンタドライバ11の関係を説明する
図である。構成は次の通りである。
の構成要素の中で、印刷と表示に関係する部分だけを4
2に示す。
数により構成された手段を、画像処理群43に示す。画
像処理群43は、予め用意された標準手続き44と、変
更可能手続き45から構成される。
タドライバ11のプログラムを、ハードディスク装置等
の補助記憶装置から、プロセッサの主記憶領域に読み込
み、実行可能な状態に置く。
インターフェースの制御ICなど、物理的なデバイス4
7を制御する手段である。
の画素を作り出し、CRT装置に表示する際、画像処理
群43の手続き/関数を個々に呼び出して用いる。
の画素を作り出し、印刷装置に印刷する際、プリントマ
ネージャ41の機能を呼び出し、印刷に必要なプリンタ
ドライバの初期設定他の処理を行なう。(必要であれば
シリアルインターフェース等の実際のハードウェアに対
する設定も行なう)。プリンタドライバ11は、初期設
定として、変更可能手続き45を、自分独自の処理手続
き群で差し替える。
う場合、(2)に続き、(1)の表示と同一の手順で画
像処理群43の手続き/関数を個々に呼び出し、印刷す
る。この時、画像処理群43の処理分岐プログラムは、
標準手続き44に代替して、変更可能手続き45の処理
へ分岐する。既に上記(2)の操作が行なわれているの
で、この結果プリンタドライバ11が用意した処理手続
きが使用される。
手続き45として差し替えた手続き群を用いて、PDL
のソースコードを生成する。次に、デバイスドライバ4
6を呼び出し、PDL処理手段へのデータ転送を行な
う。
段が印刷装置に組み込まれており、この印刷装置が、こ
のパーソナルコンピュータとシリアルインターフェース
で接続されていれば、デバイスドライバ46は物理デバ
イス47としてシリアルインターフェースの制御装置を
指定し、データ転送を行なう。
に、PDL処理のための仮想機械がWSに実装されてい
るとき、デバイスドライバ46は物理デバイス47とし
てネットワーク制御装置を指定し、データ転送を行な
う。WSはこれを受信し、実行した後、処理結果として
得た画素データを印刷装置6に転送し、印刷処理を行
う。
に、プリンタドライバ11に2つの手段を組み込んだ。
分散するために必要な時間と、実際に画素発生を行なう
ために必要な時間の比率から考え、適切なサイズに収ま
る様に管理する点にある。本実施例の構成では、あるプ
ロセッサ装置から他のプロセッサ装置に処理内容を転送
するために、数10から百数10ミリ秒を必要とする。
一方、直線発生、曲線発生等の、PDLソースコードに
現われる一つの文の処理時間は数ミリ秒である。従って
仮に、1命令単位に処理の並列化を行なうと、処理速度
はかえって遅くなる。しかし、100から500命令程
度を単位として処理の並列化を行なうとこの問題は回避
できる。この様な、並列に実行しようとする単位の大き
さを「粒度」と呼ぶ。
生成処理は、ページ開始命令によって開始され、ページ
終了命令を検出するまで行なわれる。
だけ多くの部分の並列処理を前提としてソースコードを
作るため、プログラム宣言部分に続いて、proceed文を
出力する。粒度検出手段48は、画像処理手続き群43
の、変更可能手続き45に含まれる個々の手続き/関数
の呼び出しに先立って処理される。
S53によって、手続き呼び出しがある都度、カウンタ
55を+1する。
55の値が100以上かを調べる。100以上であれ
ば、粒度検出手段48は、「充分粒度の大きな手続き呼
び出しが行なわれた」と判断し、粒度フラグ56を=1
とする。フラグ56は、次に述べる手段で処理並列化の
判断基準となる。
る。
れた処理に依存するものか判断し、並列化の構文を生成
するか否か判断する点にある。
て、各命令は大きく2つのグループに分けて考える事が
できる。一つは画素の発生を伴う命令である。例えば塗
りつぶし、イメージ反転、ストローク発生等である。他
の一つは、実際の画素の発生を生じない命令であり、例
えば、描画ペンサイズの指定、塗りつぶしのために領域
図形の指定、ストローク発生のための、曲線形状の形成
等である。
する」という操作が指定された時、先行する画像発生の
様々な手続きによって形成された図形形状が下地にあれ
ば、この形状のパターンにより操作の結果が異なる。こ
の様な画像処理の手続きを実行する場合、実行が必ず先
行する命令の後に、(すなわち順次処理として)行なわ
れる様にプログラムのソースコードを出力する必要があ
る。並列化位置検出手段49は、この条件を満たすもの
である事が重要である。この点を図6を用いて説明す
る。
初に命令の性質を判断する。
ば、並列化位置検出手段49は、実際の処理手続きを呼
び出し、ソースコードとして用いる手続き文を生成す
る。但しこの時、手続き文は直ちに出力されるのではな
く、一時的にバッファ60に格納される。
命令であると判断できた場合、並列化位置検出手段49
は、さらにこの命令が先行する画素の配置に依存する命
令か否か判断する。
この直前に発行された「画素生成を伴う手続き文」の直
後の位置で、並列記述を終了する必要がある。そこで並
列化位置検出手段49は「otherwise文」及び「end;
文」を発行する。次に並列化位置検出手段49は、現在
バッファ60にあるソースコードを出力し、今回の命令
述語を出力する。更に、次回以降の並列実行に備え、
「proceed文」を出力する。この結果、ソースコード上
は、一度並列実行が終了し、先行する画素に依存する操
作が逐次処理された後、再び並列記述が開始されるとい
う内容の記述が行なわれる。
の場合、並列化位置検出手段49は、現在の処理内容の
粒度を検査する。すなわち、粒度検出手段48が設定し
たフラグ56の値を調べる。フラグ56が真(ここでは
=1が真)でないとき、粒度は充分な大きさに至ってい
ないので、S62以降の処理に戻る。
位置検出手段49は、既にバッファ60に格納されてい
る処理と今回の述語を含めた、一つの並列実行の単位が
あると判断する。そこで並列化位置検出手段49は、
「// begin」文を出力し、バッファ60の内容を出力
し、今回の命令の述語を出力した後、「end;文」を出力
し、一つの並列実行の単位となる複文のソースコードを
出力する。また並列化位置検出手段49は、フラグ56
及びカウンタ54を、次回以降の使用に備えリセットす
る。
記述言語において、「線の太さを伴わず定義された、図
形の輪郭または線分、曲線」に対し、現在の指定ペンサ
イズにより、太さを与える操作を示す。
スコードの例を示す。
する。手続き文生成処理S62は生成したソースコード
中の記述をバッファ60に蓄積する。バッファ60に蓄
積された命令語数が充分多くなり(処理単位の粒度が大
きくなり)、先行して配置された画素に依存しない命令
で、かつ画素の操作を伴う手続きが呼び出された時、並
列化位置検出手段49は「// begin」文を出力し、バッ
ファ60の内容、「end;」文の順に記述72を出力す
る。手段49は、この繰り返しにより、以下記述73
等、複数の「// begin --- end;」形式の複文を出力す
る。
でも呼び出された時、並列化位置検出手段49は、S6
4を用い、「otherwise; end;」文を出力し、一つの並
列実行単位74を終結する。
伴う命令が、この時点以前の最後に出力されて以来のソ
ースコード形式により保存されている。並列化位置検出
手段49は、この内容を出力する。この操作の結果出力
された処理単位77は、74の「proceed -- end 」文
の外にあり、先行する「proceed -- end 」文が終了す
るまで待って逐次処理される。従って、前置の画素に依
存する命令であっても、正しい処理結果が得られる。
え、「proceed文」75を出力する。この繰り返しによ
り、再び並列実行単位74の生成が行われる。
合、プリンタドライバ11は、構文76を出力する。複
数ページの印刷はこの繰り返しである。
生成処理から構成される。前述した様に、本実施例では
yaccを用い構文解析部分のソースコードを作成し、コン
パイラを開発した。この手段によるコンパイラの開発
は、広く普及しており周知の技術である。また字句解析
処理、コード生成処理についても、公知の各種コンパイ
ラプログラムと同様で、特別な構成を持たない。
ッサの機械語を出力せず、代わりに仮想機械を設定し、
仮想機械の機械語を出力する。この方法も広く普及して
いる。コンパイラ3は、N台のプロセッサ装置を使用し
並列実行する場合でも、1つの仮想機械語のオブジェク
トコードを出力する。一つの仮想機械語のオブジェクト
コードは、実行段階で処理を多重化するために専用に設
計された仮想機械語を含む。以下に例を挙げてこれを説
明する。
を示す。
ドの例を挙げた。この例はコンパイラ3の処理結果を説
明する目的で示したものであり、並列実行の粒度は、本
実施例の並列化位置検出手段49で設定した粒度に比較
し小さい。領域80に示した図は、図8のリストに従い
実行した結果得られる図形を示した図である。
時、出力されるオブジェクトコードを、アセンブラ書式
で書き表したリストを図9に示す。コンパイラ3は、例
えば手続き文81を、アセンブラ形式で書いた時91で
示される複数の仮想機械語のコード列に翻訳する。
C(00)は定数をスタックメモリの最上位に置く。NEG(17)
はスタックメモリ最上位の値の符号を反転する。TRAP(2
a)はソフトウェア割り込みを用い、各手続き呼び出しの
ディスパッチテーブルを参照し分岐を発生する。ADDSP
(30)はスタックポインタの値に定数を加える。
パイラ3が出力する機械語は次の3種類である。
でコンパイラ3が生成する機械語である。
コンパイラ3が生成する機械語である。
成する機械語である。
ド4を入力として、仮想機械語の命令語を”逐次”実行
するインタープリタである。
の管理下で実行される一つのプロセスである。仮想機械
5は通信ソケット101を介して、外部プログラムと通
信する。コンパイラ3は、コンパイル操作終了後、オブ
ジェクトコード4をファイルとして記録し、オブジェク
トコード4の仮想機械語を、仮想機械5伝える。後処理
の関係から、全ての仮想機械語は一時的に受信バッファ
110に蓄積される。
製手段102は自分と同一の処理を行うプロセス103
を複製する。この後、プロセス103が、実際に仮想機
械語オブジェクトコード4を実行する。この方法は、複
数の要求を単一のプロセスで受領し、マルチタスク処理
する場合の最も一般的な公知技術である。
ジェクトコード4の仮想機械語を逐次読み取り、実行制
御手段104に渡す。実行制御手段104は、仮想機械
のスタック管理、プログラムポインタ管理を行う核とな
る部分で、個々の機械語の実処理への分岐を発生する。
実行制御手段104は、個々の機械語の意味を解釈し、
一般の制御語(スタック操作命令、演算子、ジャンプ命
令)の場合、ディスパッチャを通し処理105を実行す
る。また、画像操作命令(本実施例では命令語TRAP(2a)
で開始される)の場合は画像処理ライブラリ106に含
まれる個々の手続きを実行する。
で述べたFORK(2f)、EXIT(2d)、WAIT(2e)を実行する。こ
れら各命令はそれぞれ対応するP_FORK処理107、P_EX
IT処理108、P_WAIT処理109で構成される。
想機械語のレベルで行う。すなわちP_FORK処理107
は、受信バッファ110を参照し、先頭から終了までの
仮想機械語の命令語のデータ列を、他プロセッサ上に実
装された別の仮想機械5に転送する。図1を用いれば、
これは通信9で示される。
リタであるから、アーキテクチャの異なる他のマシンに
対しても、容易に実装できる。なぜなら、そのマシンの
OSの管理下で、そのマシン固有の開発言語(例えばC
言語やPascal言語)でインタープリタプログラムを記述
し、コンパイル後、実装するだけで良いからである。ま
た仮想機械5と他の仮想機械との間の通信は、ネットワ
ークを利用したソケット間の通信であり、今日広く使用
されている技術にすぎない。
5は、仮想機械語を受信し受信バッファ110に蓄積
し、実行する。このとき仮想機械語を送付してきた相手
が、コンパイラ3であるか、別の仮想機械5であるかは
判断出来ない。仮想機械5は単純に実行する。
機械語)の処理を実行した実行制御手段104は、仮想
機械語の転送が正しく完了した時、処理結果として値
「0」をスタック最上段に置く。図9の命令92の後、
処理が正しく完了すればスタック最上段の値=0であ
る。命令93はスタック最上段の値=0の時、アドレス
相対ジャンプを行う。ここでは16進数で+2a先のア
ドレスに、処理が分岐する。従ってP_FORK処理107が
正しく完了した後、この仮想機械5の実行制御手段10
4は、16進数表示で0033番地から処理を続ける。
この結果、処理単位94(図8の処理単位82)は他の
仮想機械5が実行し、この仮想機械5は次の実行文(0
033番地)以後の処理へ移る。
で、 P_FORK処理107が正しく実行されなかった場
合、スタック最上段の値は=1となる。このとき命令語
93の分岐は実行されない。よって000a番地以後の
機械語を逐次処理することになる。また通信障害、仮想
機械の未実装などの事象はエラーとして検出され、エラ
ー時にはP_EXIT処理108は無視される。従ってP_FORK
処理107に失敗した場合は、図9に示すような並列処
理を含む機械語列であっても、逐次処理される。
初期値としてスタック最上段の値が「1」とされる。図
9の例では、命令93の分岐は発生しない。この結果、
この仮想機械5は処理単位94(図8の処理単位82)
を実行する。
る。この命令を検出した時、実行制御手段104はP_EX
IT処理108を実行する。この処理は、処理結果として
画像メモリ111の全ての内容を、仮想機械語命令の発
信元となった仮想機械5に返信する。この後、実行制御
手段104は、処理終了と見なし、通信ソケットを閉
じ、プロセスの実行を終了する。
命令語95の位置で同期的な待ち状態に入る。すなわち
実行制御手段104が、P_WAIT処理109を呼び出す
と、P_WAIT処理109は処理を分散した他の仮想機械5
が処理結果を返すまで待機する。処理結果が返信された
場合、P_WAIT処理109は、結果として返された画像メ
モリ111の内容を、自プロセス内の画像メモリ111
に複写する。
に論理和として重ね合わせて良い。なぜなら、前述した
並列化位置検出手段49が、前置画素に影響される命令
語を並列化しない様に作用するためである。このとき、
唯一の制限事項は、重ね合わせ処理の順序である。並列
処理により得た”独立した図形”を重ね合わせる場合、
ソースコード中で記述が現れた順番に従い重ね合わせ
る。図8の例で言えば、第1の「// begin -- end」文
から得た画像を下に、第2の「// begin -- end」文か
ら得た画像を上に置く。この結果、領域80の画像に示
す様に、斜線部分に、曲線が上書きされる。
処理結果が画像メモリ111に記録された。図8の例に
示す様に、ページ記述の最後で実行される画像操作の命
令は「showpage」文83である。この文は図9の記述9
6に翻訳される。仮想機械5はこの命令を検出したと
き、画像メモリ111の内容を印刷装置6に転送する。
この処理によって、1ページに対する印刷処理の流れが
完了する。
例 並列化位置検出手段49について、別の実施例を挙げて
説明する。装置全体の構成は、図1に示したものと同じ
である。また処理の前提条件も等しい。
ても、主記憶装置と、ハードディスク等の補助記憶装置
の容量が拡大した。一時的であれば、出力すべきソース
コード全体を、主記憶装置ないし補助記憶装置に記録す
る事も可能である。
分大きな領域として確保出来る場合、図11、12に示
す処理手順が考えられる。
理において、ページ記述言語の各手続き文の生成を行
う。生成結果のソースコードを、バッファ60に記録す
る。このとき粒度検出手段48は、手続き(の命令語)
が画素生成を伴う処理か判断する(S111)。画像処
理を伴う場合、さらに、この命令語が先行する画像処理
に依存するか検査する(S112)。先行する画像処理
に依存しない場合には、「構文上で、この位置が並列処
理の候補になる」と判断する。粒度検出手段48は、こ
の候補位置のリストを、バッファ60に記録する。
コードと、並列化位置の候補リストを、ページ終了ま
で、順次読み取る。このとき、命令語を計数し、粒度を
判定する(S121)。粒度が予め定めた値より大きい
場合、並列化位置の候補リストに従い、ソースコード上
へ、並列化の構文を書き加える(S122)。この処理
は、ソースコードを一度生成した後、書き加えを行う
が、バッファ60を主記憶装置に配置した場合、充分高
速に処理できる。
例 並列化位置検出手段49について、さらに別の実施例を
挙げて説明する。装置全体の構成は、図1に示したもの
と同じである。また処理の前提条件も等しい。この実施
例では、プログラム言語の備えるユーザ記述サブルーチ
ンの機能を利用する。プログラム言語により呼び方は異
なるものの、サブルーチンを記述できる仕様を持つもの
は多い。本実施例のページ記述言語は、Pascalに拡張を
加えたため、ユーザの処理内容を「procedure」ないし
「function」として定義できる。図13を用いて処理の
流れを説明する。この実施例では、第2のバッファとし
て、バッファ130を用いる。
理において、ページ記述言語の各手続き文の生成を行
う。生成結果のソースコードを、バッファ130に記録
する。このとき粒度検出手段48は、手続き(の命令
語)が画素生成を伴う処理か判断する(S131)。画
像処理を伴う場合、さらに、この命令語が先行する画像
処理に依存するか検査する(S132)。先行する画素
に依存する命令語を発見した場合、プリンタドライバ1
1は、バッファ130に記録されたソースコードを包含
するサブルーチン(procedure)を、バッファ60に作
成する(S133)。この後、次の処理に備え、バッフ
ァ130をクリアする。他方、先行する画素に依存しな
い場合は、並列化位置の候補リストを、バッファ60に
作成する(S134)。
類似している。ただし、粒度の大小を判定し、並列化位
置を取り出し、並列構文を生成するのは、(1)で作成
したサブルーチン内部の処理に限られる。この結果、逐
次処理すべき記述は、サブルーチンの外に有り、これと
は独立に、並列実行の構文を含んだ一つないし複数のサ
ブルーチンが作られる。
い、ソースコード内の主プログラム部で、サブルーチン
呼び出し部分と、逐次処理部分の記述を行う。Pascal型
言語では、主プログラムは、ソースコードの最終部に配
置される文法であるため、この様な処理に適している。
な様に、「先行する画像処理結果に依存した画像処理の
命令語を検出する手段」を設けることが、ページ記述言
語の並列化処理において重要である。
処理結果に依存しない」というページ記述言語仕様を設
計した場合について述べる。この仕様の言語では、画像
処理結果は、先行処理の画素を無視して、全て上書きさ
れる処理となる。この場合は次の2点が必要である。
整合性を維持する ・並列構文の挿入位置は、少なくとも画素生成を行う命
令語までを一単位とする ページ記述言語の処理は、「画像の定義→画素の発生」
という手順の繰り返しを特徴とする。従って少なくと
も、画素生成を伴う命令語を検出できる処理が必要であ
る。
のソフトウェアにより機械生成される場合がほとんどで
ある。ページ記述言語のコンパイラ/インタープリンタ
は、機械生成されたソースコードを直接受け取る。この
点から、ソースコードが文字列によって記述されなけれ
ばならない、という必然性は低い。
語を用いるよりも、予約語に適切な符号を割り当て、い
わゆるバイナリコードの記述を採用する方法がある。コ
ード長の短縮、コード転送時間短縮、情報の隠蔽の点か
ら、バイナリコードの方が有利である。ソースコード
が、文字列以外のデータ形式により記述された場合で
も、コンパイラ側は、字句解析処理の変更で対応でき
る。また仮想機械は何ら変更を受けない。従って、本実
施例のソースコード記述手段を変更する事は容易であ
る。
合わせて調整する。第1の実施例の様な疎結合の処理系
では、処理分散のオーバーヘッドが無視できないので、
個々の処理単位はある程度大きな方が良い。一方で、極
端に大きな処理単では、並列化の個数が減少し、処理速
度改善の効果が減ずる。従って、処理内容とのバランス
が重要である。すでに述べた様に、疎結合の並列処理ペ
ージ記述言語処理系では、命令語数にして100程度が
適当である。
この場合は、画像操作の命令語一つ一つが並列実行の単
位となる。しかし、これはむしろ「粒度=1」で粒度検
出手段48が実行された結果と見なす事ができる。これ
は特に細粒度の処理である。細粒度の処理は、処理をマ
ルチプロセッサに分散するための処理時間が極めて短い
密結合の装置に適する。この装置について、11節で第
2の実施例として挙げる。
じる効果 本実施例の印刷装置において、アプリケーション(また
はプリンタドライバ)が、並列処理PDLの文法に従
い、上記の通り効率よく、画像を記述したソースコード
を生成する。並列処理PDLのコンパイラは、この記述
結果をソースファイルとして入力し、仮想機械の機械語
を出力する。これを入力として、インタープリタが画像
の発生を並列に実行する。この結果、印刷処理全体を通
して次に挙げる効果が生じた。
に関し購入時点での性能がそのまま変わらない。しか
し、並列処理PDLを搭載したプリンタは、ネットワー
ク上のWSに並列処理の仮想機械を実装すると、その分
だけ速くなる。オフィスのWS数拡大に伴い、個々のプ
リンタの速度向上を図ることが出来る。
高速なページプリンタを購入しても、速いのはその1台
だけである。しかし、並列処理PDL対応のページプリ
ンタを使用しているユーザは、ネットワークに速いWS
を導入した時、これに仮想機械を実装すると、全ての並
列PDLプリンタが速くなるという恩恵を受ける事が出
来る。
リットがある。ピーク時負荷の特定装置への集中を防
ぐ。処理速度が改善される。
例を図14を用いて説明する。
ン145を持つ装置である。ページプリンタ146の画
像処理装置は、複数個のマイクロプロセッサユニット1
41が、システムバス142を介してバス結合された方
式である。各マイクロプロセッサは、システムバス14
2を通して、共通のメモリ147にアクセスすることが
出来る。各マイクロプロセッサは、第1の実施例と同様
の仮想機械のインタープリタ・プログラムを処理する。
パーソナルコンピュータ144は、通信経路143によ
って、ページプリンタ146の画像処理装置に接続され
る。
ション・プログラムから印刷処理を行う。アプリケーシ
ョン・プログラムは、オペレーティングシステムのサー
ビスを用い、プリンタドライバが用意する印刷処理用の
画像操作(関数/手続き)を呼び出す。プリンタドライ
バは、呼び出しを受けた手続き中の処理として、ページ
記述言語のソースコードを作成する。この生成手順は6
B−1に述べた処理と等しい。
バの機能を呼び出し、生成済みのソースコードを、通信
経路143により、ページプリンタ146に送る。ペー
ジプリンタ146は、受信したソースコードをコンパイ
ルし、仮想機械語によるオブジェクトコードを作り出
す。このオブジェクトコードは、複数マイクロプロセッ
サを用い実装された、仮想機械で実行される。
が、共通メモリ147とシステムバス142を用いて、
極めて高速に相互間通信出来る。この場合、処理並列化
のための通信時間は短いので、画像操作を伴う一つの命
令語毎に並列処理しても良い。
が行われる度に、並列構文を発生しても良い。先に述べ
た通り、これは「粒度=1」で粒度検出手段48が実行
される特別の場合である。しかし、この実施例の様な密
結合のマルチプロセッサ装置であっても、処理を並列化
する処理時間は0ではない。これは、仮想機械語P_FORK
(2f)の処理時間から考え当然である。P_FORK(2f)の処理
は、この実施例でも6D(1)の処理と同様である。但
し、ネットッワークを利用した通信に代わり、システム
バス142を用いた通信が行われる。並列化処理時間
は、主としてプログラムの走行ステップ数と、バス調停
時間により決まる。この時間は数百マイクロ秒から、数
ミリ秒である。
要であり、適切な処理粒度を処理対象の系によって決め
る必要があると言える。
アーキテクチャは均一である。この場合、仮想機械と実
機械を一致させても問題は生じない。実際のマイクロプ
ロセッサには、FORK(2f)、EXIT(2d)、WAIT(2e)等の特殊
な機械語が組み込まれていない。しかし、これはライブ
ラリ関数として実装すれば良い。画像処理の各種手続き
の命令語も同様である。この変更は、実施例のコンパイ
ラ部分の変更で実現出来る。本発明のコード生成処理自
体は、変更を受ける事は無い。
明の構成上の特徴から次の効果が生じる。
作に依存する命令」が含まれる時だけ逐次処理のソース
コードを生成するため、並列化のための処理で消費され
る時間を最小に抑え、ソースコード生成を効率良く行
う。
なる一連の操作に含まれる述語の数を調整して、適切な
粒度の並列化ソースコードを生成する。この結果、言語
の翻訳・実行処理系は、効率の良い並列実行を行う事が
できる。
理の説明図。
Claims (6)
- 【請求項1】画像形成のための一連の画像処理手続を表
現したソースコードを生成する装置において、 前記一連の画像処理手続の中から、独立実行可能な画像
処理手続を検出する独立手続検出手段と、 前記検出された独立実行可能な画像処理手続の個数を数
える手続計数手段と、 前記計数手段の出力に基づいて、前記一連の画像処理手
続の中から、並列処理単位の粒度として適当な個数の一
連の前記独立実行可能な画像処理手続からなる手続集合
を抽出する手続集合抽出手段と、 前記抽出された手続集合が1つの並列処理単位であるこ
とを意味するソースコードを生成する並列構文ソースコ
ード生成手段と、 を備えたことを特徴とするプログラム生成装置。 - 【請求項2】請求項1記載の装置において、 前記独立実行可能な画像処理手続とは、先行する画像処
理手続に依存しない画像処理手続であることを特徴とす
るプログラム生成装置。 - 【請求項3】請求項1記載の装置において、 前記一連の画像処理手続の中から、画素生成を伴う画像
処理手続を検出する画素生成手続検出手段をさらに備
え、 前記手続集合抽出手段が、前記画素生成手続検出手段の
出力に基づいて、前記画素生成を伴う画像処理手続の1
個以上が前記手続集合に含まれるように、前記手続集合
を抽出することを特徴とするプログラム生成装置。 - 【請求項4】請求項2記載の装置において、 前記独立手続検出手段の出力に基づいて、先行する画像
処理手手続に依存する画像処理手続と、これに先行する
一連の1個以上の前記手続集合とが、逐次に実行される
関係であることを意味するソースコードを生成する逐次
構文ソースコー ド生成手段をさらに備えたことを特徴と
するプログラム生成装置。 - 【請求項5】画像形成のために順次に呼び出される画像
処理手続のソースコードを生成する装置において、 呼び出された画像処理手続が独立実行可能な画像処理手
続であるかチェックする独立手続チェック手段と、 前記独立手続チェック手段の出力を受けて、連続して呼
び出された前記独立実行可能な画像処理手続の個数を数
える手続計数手段と、 前記手続計数手段の出力に基づいて、並列処理単位の粒
度として適当な個数の前記独立実行可能な画像処理手続
が連続して呼び出されたことを検出する粒度検出手段
と、 前記粒度検出手段の出力に応答して、前記連続して呼び
出された適当な個数の独立実行可能な画像処理手続が1
つの並列処理単位であることを意味するソースコードを
生成する並列構文ソースコード生成手段と、 を備えたことを特徴とするプログラム生成装置。 - 【請求項6】画像形成のための一連の画像処理手続を表
現したソースコードを生成する方法において、 前記一連の画像処理手続の中から、独立実行可能な画像
処理手続を検出する独立手続検出ステップと、 前記検出された独立実行可能な画像処理手続の個数を数
える手続計数ステップと、 前記計数手段の出力に基づいて、前記一連の画像処理手
続の中から、並列処理単位の粒度として適当な個数の一
連の前記独立実行可能な画像処理手続からなる手続集合
を抽出する手続集合抽出ステップと、 前記抽出された手続集合が1つの並列処理単位であるこ
とを意味するソースコードを生成する並列構文ソースコ
ード生成ステップと、 を備えたことを特徴とするプログラム生成方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24957593A JP3284522B2 (ja) | 1993-10-05 | 1993-10-05 | プログラム生成装置 |
SG1996003287A SG73378A1 (en) | 1993-10-05 | 1994-10-05 | Apparatus and method for generating a program for parallel processing |
DE69431386T DE69431386T2 (de) | 1993-10-05 | 1994-10-05 | Verfahren und Gerät zur Erzeugung eines Programms für parallele Verarbeitung |
EP94115655A EP0652511B1 (en) | 1993-10-05 | 1994-10-05 | Apparatus and method 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 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24957593A JP3284522B2 (ja) | 1993-10-05 | 1993-10-05 | プログラム生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07104987A JPH07104987A (ja) | 1995-04-21 |
JP3284522B2 true JP3284522B2 (ja) | 2002-05-20 |
Family
ID=17195053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24957593A Expired - Lifetime JP3284522B2 (ja) | 1993-10-05 | 1993-10-05 | プログラム生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3284522B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3211648B2 (ja) * | 1995-12-07 | 2001-09-25 | 富士ゼロックス株式会社 | 描画プログラム生成装置および描画プログラム生成方法 |
JP2817687B2 (ja) * | 1995-12-28 | 1998-10-30 | 富士ゼロックス株式会社 | 画像形成装置 |
JP2910649B2 (ja) * | 1995-12-28 | 1999-06-23 | 富士ゼロックス株式会社 | 画像形成装置および画像形成方法 |
JP4818389B2 (ja) | 2009-04-07 | 2011-11-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 並列処理によりデータ処理を行う印刷装置および制御方法 |
-
1993
- 1993-10-05 JP JP24957593A patent/JP3284522B2/ja not_active Expired - Lifetime
Non-Patent Citations (3)
Title |
---|
Birk,Y. ,On−line control and deadlock−avoidance in a page−parallel multiprocessor rasterizer,「IEEE Trans.on Parallel and Distributed Systems」V,米国,IEEE Trans.on Parallel and Distributed Systems,1993年 2月28日,Vol.4,No.2,P.155−163 |
Faigle,C.et al,MOVIE model for open systems based high performance distributed computing,IEEE Proc.of the 1st Symp.on High Performance Distributed Compuging,米国,IEEE,1992年 9月 9日,P.37−56 |
Leler,W.,PIX the latest NeWS,IEEE Digest of Papers COMPCON Spring ’89,米国,IEEE,1989年 2月27日,P.239−242 |
Also Published As
Publication number | Publication date |
---|---|
JPH07104987A (ja) | 1995-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5752036A (en) | Apparatus for generating a program for parallel processing | |
Van Den Bos et al. | PROCOL: A parallel object language with protocols | |
EP0718760B1 (en) | Method and apparatus for generating platform-standard object files containing machine-independent code | |
Sneed | Encapsulation of legacy software: A technique for reusing legacy software components | |
US5546583A (en) | Method and system for providing a client/server interface in a programming language | |
JP2000155686A (ja) | 分散システム中におけるプログラム実行方法及びその装置、分散システム中におけるプログラム実行手順を記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム | |
JPH11242597A (ja) | Javaバイトコードデータのフローグラフの生成方法 | |
JP2000029714A (ja) | 分散システム中における実行用プログラムコンポ―ネントのパッケ―ジ方法、実行用プログラムコンポ―ネントのパッケ―ジプログラムを記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム | |
JP2000505225A (ja) | ソフトウェアコードの生成方法及び装置 | |
US8214815B2 (en) | Reducing the run-time cost of invoking a server page | |
JPH09114611A (ja) | 印刷処理装置および方法 | |
JPH10198539A (ja) | 画像形成装置および画像形成方法 | |
JP3284522B2 (ja) | プログラム生成装置 | |
JPH06274608A (ja) | マルチプロセッサ画像処理装置 | |
US20160124727A1 (en) | Method for Checking and/or Transformation of a Computer Program with First-Class Static Functions | |
JP3284523B2 (ja) | プログラム生成装置 | |
JP2991242B2 (ja) | マルチプロセッサコンピュータシステム使用方法 | |
JPH08263299A (ja) | プログラム変換方法 | |
US6449050B1 (en) | Code generator for printer driver | |
Wiedmann | A performance comparison between an APL interpreter and compiler | |
US5765148A (en) | Database processing apparatus and database processing method for variable length objects, and computer-readable memory medium for storing database processing program | |
Cargill | Implementation of the Blit debugger | |
JP2002132502A (ja) | 言語機能解釈による分散オブジェクト自動生成システム及び方法 | |
JPH0683597A (ja) | オブジェクト指向プログラム開発装置およびオブジェクト指向プログラム開発方法 | |
JPH0660047A (ja) | マルチプロセッサ処理装置 |
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 |