JP2554169B2 - データ駆動型プロセッサの相対ランク解析方式 - Google Patents

データ駆動型プロセッサの相対ランク解析方式

Info

Publication number
JP2554169B2
JP2554169B2 JP1172578A JP17257889A JP2554169B2 JP 2554169 B2 JP2554169 B2 JP 2554169B2 JP 1172578 A JP1172578 A JP 1172578A JP 17257889 A JP17257889 A JP 17257889A JP 2554169 B2 JP2554169 B2 JP 2554169B2
Authority
JP
Japan
Prior art keywords
node
rank
value
nodes
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP1172578A
Other languages
English (en)
Other versions
JPH0337780A (ja
Inventor
裕幹 内藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP1172578A priority Critical patent/JP2554169B2/ja
Publication of JPH0337780A publication Critical patent/JPH0337780A/ja
Application granted granted Critical
Publication of JP2554169B2 publication Critical patent/JP2554169B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〈産業上の利用分野〉 本発明は、高級言語で記述されたソースプログラムを
フローグラフ形式のオブジェクトプログラムにコンパイ
ルして実行する非ノイマン形のデータ駆動型プロセッサ
の相対ランク解析方式に関する。
〈従来の技術〉 最近、多量データ高速処理の要請を満たすべく、逐次
処理方式のノイマン形プロセッサに代わって、プログラ
ム中のどの複数の命令でもその入力が揃った時点で並列
演算できるハードウェア構成になった非ノイマン形のデ
ータ駆動型プロセッサが研究,開発され、実用化されつ
つある。
このデータ駆動型プロセッサは、第5図に示すよう
に、高級言語で分割記述された複数のソースプログラム
1,1,…を、第2図のようなフローグラフの形で表わされ
た中間オブジェクトプログラム2,2,…に夫々コンパイル
し、これらの中間オブジェクトプログラム2,2,…を同時
にランク解析しつつ1つにリンクして実行オブジェクト
プログラム3を生成し、この実行オブジェクトプログラ
ム3に基づいてデータ駆動方式の演算を行なっている。
即ち、各中間オブジェクトプログラム2は、第2図に示
すように、全ての入力が揃った時点で演算を行った結果
を出力する複数のノードx1,x2,…,x10からなり、これら
のノードを入力ノードx1,x2を先頭にして、同時実行可
能なものを横方向の同一ランクに配して実行順に縦方向
に並べ、各ノードの入,出力を互いにアークで結び、末
尾に関数呼出しノードx10を配して構成される。そし
て、このような構成の複数の中間オブジェクトプログラ
ム2の入力ノードの入力アーク相互ならびに関数呼出し
ノードの出力アーク相互を関係づけて一度にリンクし、
かつ全ノードの絶対ランクを一度に決定して、1つの実
行オブジェクトプログラム3を生成するのである。
〈発明が解決しようとする課題〉 ところが、上記従来のデータ駆動型プロセッサによる
実行オブジェクトプログラムの作成方式は、分割記述さ
れた複数のソースプログラム1を夫々中間オブジェクト
プログラム2にコンパイルし、これら複数の中間オブジ
ェクトプログラム2を1つにリンクする時点で一括して
全ノードのランク解析(実行順序の決定)を行なってい
るため、1つのソースプログラム1だけを部分修正する
場合でも、その中間オブジェクトプログラムのみならず
修正に関係のない他の中間オブジェクトプログラム全体
に亘るランク解析が必要となり、実行オブジェクトプロ
グラム3の生成に長時間を要するという欠点がある。
そこで、本発明の目的は、各ソースプログラムをコン
パイルする時点でその中間オブジェクトについて個々に
相対ランク解析を行なうことによって、実行オブジェク
トプログラムを高速に生成することができるデータ駆動
型プロセッサの相対ランク解析方式を提供することであ
る。
〈課題を解決するための手段〉 上記目的を達成するため、本発明のデータ駆動型プロ
セッサの相対ランク解析方式は、分割して作成された複
数のソースプログラムを夫々中間オブジェクトにコンパ
イルし、プログラムを構成するノードを同時実行可能な
ものを横方向の同一のランクに配して実行順に縦方向に
並べ、各ノードを互いにアークで結んでなる上記中間オ
ブジェクトが表わすフローグラフをランク解析して各ノ
ードの実行順序を決定するとともに、これらの中間オブ
ジェクトを1つにリンクして実行オブジェクトを生成す
るデータ駆動型プロセッサにおいて、上記中間オブジェ
クトが表わすフローグラフの先頭のノードにそのランク
値に対応する変数を与える変数付与手段と、先頭以降の
ノードについてそのノードに入力するアーク数を判別
し、入力アーク数が1のときあるいは入力アーク数が2
で直前のノードのランク値が互いに等しいとき、直前の
ノードのランク値に1を加えた値をそのノードに与え、
入力アーク数が2で直前のノードのランク値が互いに等
しくないとき、直前のノードのランク値のうち大きい方
の値に1を加えた値をそのノードに与え、入力アーク数
が3以上のとき、直前の各ノードのランク値を各アーク
に与える相対ランク値付与手段と、中間オブジェクトの
リンク時に、各中間オブジェクトの先頭ノードの実行順
序に対応した絶対ランク値を上記変数付与手段の変数と
して置数する置数手段を備えて、実行オブジェクト生成
の高速化を図ったことを特徴とする。
〈作用〉 分割して作成された複数のソースプログラムは、フロ
ーグラフで表わされる中間オブジェクトに夫々コンパイ
ルされ、各中間オブジェクトに次の処理がなされる。変
数付与手段は、中間オブジェクトが表わすフローグラフ
の先頭のノードにそのランク値に対応する変数を与え
る。次いで、相対ランク値付与手段は、先頭以降のノー
ドについてそのノードに入力するアーク数を判別し、直
前のノードのランク値を比較してそのノードまたはアー
クに相対ランク値を与える。即ち、入力アーク数が1,入
力アーク数が2で直前のノードのランク値が互いに等し
いときは、直前のノードのランク値に1を加えた値をそ
のノードに、入力アーク数が2で直前のノードのランク
値が互いに等しくないときは、直前のノードのランク値
のうち大きい方の値に1を加えた値をそのノードに、入
力アーク数が3以上のときは、直前のノードのランク値
を各アークに夫々相対ランク値として与える。こうし
て、各中間オブジェクトのフローグラフの各ノードに与
えられた相対ランク値は、上記変数を含んでいるが、中
間オブジェクトのリンク時に置数手段が、先頭ノードの
実行順に対応した絶対ランク値を上記変数に置数するの
で、全ノードの絶対ランク値が直ちに決まる。従って、
1つのソースプログラムだけを部分修正する場合には、
他のソースプログラムの中間オブジェクトのノードの相
対ランク値が不変ゆえランク解析が不要となり、そのソ
ースプログラムの中間オブジェクトのみをランク解析す
るだけで済むので、実行オブジェクトを高速に生成する
ことができる。
〈実施例〉 以下、本発明を図示の実施例により詳細に説明する。
第1図は本発明の相対ランク解析方式を採用したデー
タ駆動型プロセッサの実行オブジェクトプログラム生成
手順の一例を示している。このデータ駆動型プロセッサ
は、複数の中間オブジェクトプログラムのリンクとラン
ク解析を同一に一括して行なっていた第5図の従来例と
異なり、分割記述された複数のソースプログラム(以
下、ソース略す)1,1,…を既に述べたフローグラフ(第
2図参照)で記述された中間オブジェクトプログラム
(以下、中間オブジェクトと略す)2,2,…に夫々コンパ
イルし、この時点で各中間オブジェクトを個々に相対的
にランク解析した後、これらの中間オブジェクト2,2,…
を1つの実行オブジェクト3にリンクするようになって
いる。
上記データ駆動型プロセッサは、相対ランク解析を行
なうべく、変数付与手段,相対ランク値付与手段および
置数手段を駆動プログラムの形でソフトウェアとして有
する。
上記変数付与手段は、コンパイルによって得られた中
間オブジェクト2が表わす第2図のフローグラフにおい
て、先頭の入力ノードx1およびx2に、そのランク値に対
応する変数y1,y2およびy4を第3図の如く与える。ま
た、上記相対ランク値付与手段は、先頭以降のノードx
1,x3,…,x10についてそのノードに入力するアーク数を
判別し、かつ直前のノードのランク値を比較してそのノ
ードまたはアークに次のように相対ランク値を与える。
即ち、入力アーク数が1のときあるいは入力アーク数が
2で直前のノードのランク値が互いに等しいときは、直
前のノードのランク値に1を加えた値をそのノードに
(第3,4図のノードx3,x4,x5,x6,x8,x9参照)、入力アー
ク数が2で直前のノードのランク値が互いに等しくない
ときは、直前のノードのランク値のうち大きい方の値に
1を加えた値をそのノードに(第3,4図のノードx1,y3、
x7,y5参照)、入力アーク数が3以上のときは、直前の
各ノードのランク値を各アークに(第3,4図のノードx10
参照)夫々上記相対ランク値として与える。なお、第3
図の末尾の入力アーク数が3以上のノードx10は、最終
演算結果を出力する関数呼出しノードであり、第3図の
相対ランク値欄中のy3=y1:y2は、右辺の値の大きい方
に1を加えた値を相対ランク値たる左辺の値とすること
を表わす。以上の変数付与手段と相対ランク値付与手段
による処理は、第4図のフローチャートに示すようにな
る。
さらに、上記置数手段は、第1図に示す中間オブジェ
クト2,2,…のリンク時に、各中間オブジェクトの先頭ノ
ード(x1,x2)の実行順序に対応した絶対ランク値を上
記変数付与手段の変数(y1,y2,y4)として置数する。す
ると、この置数によって、第3図の相対ランク値のテー
ブルに基づいて、全ノードの絶対ランク値が単純計算に
より迅速に決定される。
上記構成のデータ駆動型プロセッサによる相対ランク
解析方式について、第4図のフローチャートを参照しつ
つ次に述べる。
分割作成されたソースは、ステップS1で、コンパイル
によって各ノードの実行順序を示す第2図の如きフロー
グラフで記述される中間オブジェクトに翻訳される。次
に、ステップS2でまず先頭の入力ノードx1が取り出さ
れ、このノードが2つの入力アークをもつ先頭のノード
であるので、まず変数付与手段がノードx1の2つの入力
アークに相対ランク値として変数y1,y2(第2,3図参照)
を与える。次に、先頭以降のノードについて働く相対ラ
ンク値付与手段は、ステップS3で入力アーク数が2ゆえ
肯と判断し、ステップS4で両入力アークがy1,y2と同一
ランク値でないので否と判断して、入力ノードx1の相対
ランク値を未決定相対ランク値y3=y1:y2として登録す
る。続いて、ステップS9でノード未了ゆえ否となってス
テップS2に戻り、次の入力ノードx2が取り出され、この
ノードx2が単一の入力アークしかもたない先頭のノード
であるので、まず変数付与手段が働いて、入力ノードx2
に相対ランク値として変数y4を付与する。さらに、ステ
ップS2で、次のノードx3が取り出され、ノードx3は入力
アーク数が1なので、先頭以降のノードについて働く相
対ランク値付与手段は、ステップS3,S6,S7と進んでノー
ドx3に直前のノードx1のランク値y3に1を加えて、これ
をノードx3の相対ランク値(y3+1)とする。以降のノ
ードx4,x5,x6,x8,x9についてもこれと同様の手順で相対
ランク値が与えられる。
一方、ノードx7は入力アーク数が2で直前のノードx
3,x5のランク値がy3+1,y4+1と異なるため、相対ラン
ク値付与手段は、ステップS3,S4,S5と進んで未決定相対
ランク値y5=y3+1:y4+1をノードx7に付与する。仮
に、ノードx7の入力アークがノードx5の代わりにノード
x4につながっていたとすると、直前のノードのランク値
はどちらもy3+1となるので、ステップS3,S4,S7と進ん
でこのノードの相対ランク値はy3+2となる。末尾のノ
ードx10は、入力アーク数が3以上の関数呼出しノード
であるため、相対ランク値付与手段は、ステップS3,S6,
S8と進んで、直前の各ノードx6,x7,x8,x9のランク値y3
+2,y5,y3+2,y4+2を各入力アークの相対ランク値と
して登録する。こうして、各中間オブジェクトの全ノー
ドの相対ランク値が第3図の如く決定され、第1図のラ
ンク解析が終了する。なお、第4図のフローチャートの
S3以降の各ステップは、変数付与手段でなく相対ランク
値付与手段の処理のみについて書かれている。また、入
力アーク数が3以上の例えば最終ノードx10を中間ノー
ドとして第2図のフローグラフの中間に置くこともで
き、この場合、第3図に示されたノードx10の相対ラン
ク値y10は、例えばy10=y3+2:y5:y3+2:y4+2と表わ
される。
最後に、第1図の中間オブジェクトの一括リンク時
に、置数手段が各中間オブジェクトの先頭ノードx1,x2
に与えられていた変数y1,y2,y4に、実行順序に対応した
絶対ランク値を置数し、これによって第3図の相対ラン
ク値テーブルに基づいて、全ノードの絶対ランク値が単
純計算により迅速に決定される。
このように、上記実施例では、分割記述された複数の
ソースを中間オブジェクトに夫々コンパイルした時点
で、各中間オブジェクトを個々に相対ランク解析した
後、これらの中間オブジェクトを簡易に絶対ランク付け
しながら一括リンクして実行オブジェクトを作成するよ
うにしているので、1つのソースだけを部分修正する場
合に、他のソースの中間オブジェクトの相対ランク値は
不変だからランク解析が不要となり、そのソースの中間
オブジェクトのみをランク解析するだけで済むので、実
行オブジェクトを従来例に比して格段に高速に生成する
ことができる。
なお、本発明が図示の実施例に限られないのはいうま
でもない。
〈発明の効果〉 以上の説明で明らかなように、本発明のデータ駆動型
プロセッサの相対ランク解析方式は、各ソースをコンパ
イルした中間オブジェクトが表わすフローグラフの先頭
ノードにランク値に対応する変数を与える変数付与手段
と、先頭以降のノードに所定のアルゴリズムによりラン
ク値を与える相対ランク値付与手段と、各中間オブジェ
クトを一括リンクする際上記変数の実行順序に対応した
絶対ランク値を置数する置数手段を備えて、個々の中間
オブジェクトを予め相対ランク付けするようにしている
ので、特定のソースのみを部分修正する場合に他のソー
スの中間オブジェクトのランク解析が不要になって、実
行オブジェクトを高速に生成することができる。
【図面の簡単な説明】
第1図は本発明の相対ランク解析方式の実行オブジェク
ト生成手順の一例を示す図、第2図は中間オブジェクト
のフローグラフを示す、第3図は中間オブジェクトの各
ノードの相対ランク値テーブルを示す図、第4図は上記
生成手順の流れを示すフローチャート、第5図は従来の
実行オブジェクト生成手順を示す図である。 1……ソースプログラム、 2……中間オブジェクトプログラム、 3……実行オブジェクトプログラム。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】分割して作成された複数のソースプログラ
    ムを夫々中間オブジェクトにコンパイルし、プログラム
    を構成するノードを同時実行可能なものを横方向の同一
    のランクに配して実行順に縦方向に並べ、各ノードを互
    いにアークで結んでなる上記中間オブジェクトが表わす
    フローグラフをランク解析して各ノードの実行順序を決
    定するとともに、これらの中間オブジェクトを1つにリ
    ンクして実行オブジェクトを生成するデータ駆動型プロ
    セッサにおいて、 上記中間オブジェクトが表わすフローグラフの先頭のノ
    ードにそのランク値に対応する変数を与える変数付与手
    段と、先頭以降のノードについてそのノードに入力する
    アーク数を判別し、入力アーク数が1のときあるいは入
    力アーク数が2で直前のノードのランク値が互いに等し
    いとき、直前のノードのランク値に1を加えた値をその
    ノードに与え、入力アーク数が2で直前のノードのラン
    ク値が互いに等しくないとき、直前のノードのランク値
    のうち大きい方の値に1を加えた値をそのノードに与
    え、入力アーク数が3以上のとき、直前の各ノードのラ
    ンク値を夫々のアークに与える相対ランク値付与手段
    と、中間オブジェクトのリンク時に、各中間オブジェク
    トの先頭ノードの実行順序に対応した絶対ランク値を上
    記変数付与手段の変数として置数する置数手段を備え
    て、実行オブジェクト生成の高速化を図ったことを特徴
    とするデータ駆動型プロセッサの相対ランク解析方式。
JP1172578A 1989-07-04 1989-07-04 データ駆動型プロセッサの相対ランク解析方式 Expired - Fee Related JP2554169B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1172578A JP2554169B2 (ja) 1989-07-04 1989-07-04 データ駆動型プロセッサの相対ランク解析方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1172578A JP2554169B2 (ja) 1989-07-04 1989-07-04 データ駆動型プロセッサの相対ランク解析方式

Publications (2)

Publication Number Publication Date
JPH0337780A JPH0337780A (ja) 1991-02-19
JP2554169B2 true JP2554169B2 (ja) 1996-11-13

Family

ID=15944436

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1172578A Expired - Fee Related JP2554169B2 (ja) 1989-07-04 1989-07-04 データ駆動型プロセッサの相対ランク解析方式

Country Status (1)

Country Link
JP (1) JP2554169B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055829A (ja) 2000-08-07 2002-02-20 Matsushita Electric Ind Co Ltd 中間オブジェクト連結方法、及び、中間オブジェクト連結装置、及び、リンカ装置、及び、コンパイラドライバ装置、並びに、中間オブジェクトを連結するプログラムを記録した記憶媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
岡本他"データ駆動形プロセッサ向き高級言語処理系の一実現法"並列処理ミニポジウム論文集(1989−2−2〜4)PP.227〜233

Also Published As

Publication number Publication date
JPH0337780A (ja) 1991-02-19

Similar Documents

Publication Publication Date Title
JP2554169B2 (ja) データ駆動型プロセッサの相対ランク解析方式
JPH01118931A (ja) プログラム変換方式
JPH0554277A (ja) プラント監視装置
JPH0764766A (ja) 並列計算機における最大・最小値演算方法
JP2002312167A (ja) 変数の値をコンピュータに算出させるためのプログラム、コンパイルプログラム、変数値確定方法およびプログラム生成方法
JPH0210429A (ja) プログラム構造化処理方式
JPH0460719A (ja) 電子計算機、プログラマブル論理回路及びプログラム処理方法
JP2512215B2 (ja) プログラム作成装置
JP4327533B2 (ja) 演算処理プログラム、演算処理方法、および演算処理装置
JPH0272407A (ja) ラダー・プログラム変換装置
JP2827724B2 (ja) プログラムデバッグ処理方法
JPH0250730A (ja) 共通機械語による言語変換方式
JPS6049935B2 (ja) マイクロプログラム制御方式
JPS6115236A (ja) オブジエクトリストの部分作成方法
JPS6132106A (ja) プログラマブルコントロ−ラのプログラミング装置
JPH03177928A (ja) ルール解釈処理方式
JPS62135958A (ja) シミユレ−シヨン方式
JP2682206B2 (ja) 目的プログラムの最適化方式
JPH02272639A (ja) リンク時外部名情報処理方式
JPS6232557A (ja) 通信プロトコ−ル変換装置
JPH02171901A (ja) プログラマブルコントローラ
JPH02109135A (ja) Do形並び入力変換方式
JPH03127224A (ja) 外部名変更方式
JPH01147624A (ja) 言語処理系システム
JPH03252820A (ja) 最適オブジェクト生成処理方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees