JPH01283640A - データ駆動型制御方法 - Google Patents

データ駆動型制御方法

Info

Publication number
JPH01283640A
JPH01283640A JP11243388A JP11243388A JPH01283640A JP H01283640 A JPH01283640 A JP H01283640A JP 11243388 A JP11243388 A JP 11243388A JP 11243388 A JP11243388 A JP 11243388A JP H01283640 A JPH01283640 A JP H01283640A
Authority
JP
Japan
Prior art keywords
instruction
procedure
data
execution
nest level
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
JP11243388A
Other languages
English (en)
Other versions
JP2749058B2 (ja
Inventor
Yukito Maejima
前島 幸仁
Yoshikatsu Iguma
猪熊 義勝
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11243388A priority Critical patent/JP2749058B2/ja
Publication of JPH01283640A publication Critical patent/JPH01283640A/ja
Application granted granted Critical
Publication of JP2749058B2 publication Critical patent/JP2749058B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ駆動型制御方法に関し、特に並列実行
が可能となった複数の手続きを処理する場合、1つの手
続きの処理が終了するまでの他の手続きの実行を待ち合
せることで、手続き処理の実行順序による結果の非決定
性を防止したデータ・フロー・プログラムの命令制御方
法に関するものである。
〔従来の技術〕
データ駆動型制御は、データフロー、すなわち被処理デ
ータの準備状況に応じて、処理シーケンスを制御するも
のであって、いわゆる非ノイマン型コンピュータの実現
として研究されてきた。データ駆動の原理に基いて実行
されるプログラムは、第2図で示すように、長方形ブロ
ックの中に演算基が記載されたノード(加算、減算9等
)に対して、オペランド(データ、データアドレス、等
)が入力され、演算結果としてそれらの出力が与えられ
る。これらのノードへの入力と出力は矢印付きの線で表
わして、これらの線をアークと呼び。
繰上のデータをトークンと呼ぶ、このようにデータ・フ
ロー・プログラムは演算実行に必要なデータや制御の流
れが2次元の図式で表現されるため、理解性が高く、し
かも、並列処理の記述性が高い(電子通信学会誌、昭和
58年2月号、PP191〜PP193)、そこで、並
列処理単位をプロセッサ単位に割り付けることで演算速
度を上げることもできるし、プログラムの理解性向上だ
けを狙うならデータ・フロー・プログラムを従来の逐次
型プロセッサで実行してもかまわない。
ところで、逐次型プロセッサ上でデータ駆動制御を行う
方法においては1例えば、特開昭61−123937号
公報に記載されているように、並列実行可能となった命
令を待ち合せるために1つの命令実行待ちキューが用意
されていた。すなわち、上記公報に記載されたデータ駆
動型制御方式では、並列に実行可能状態となった命令は
1つの命令実行待ちキューへFIFO(ファーストイン
・ファーストアウト)形式で登録されているため、例え
ば、同時に手続きAを呼出す手続き呼出しA′と手続き
Bを呼出す手続き呼出しB′が実行可能となる場合、命
令実行待ちキューには手続き呼出しA′の命令が先頭に
、手続き呼出しB′の命令が最後尾に登録される。従っ
て、命令実行はまず手続き呼出しA′の命令が命令実行
待ちキューから取り出されて、手続きAが呼出され、そ
の結果新たに実行可能となった手続きA内の命令が命令
実行待ちキューの最後尾にある手続き呼出しB′の命令
の後に登録される。そして、次に、命令実行待ちキュー
から手続き呼出しB′の命令が取り出されて、手続きB
が呼出され、その結果新たに実行可能となった手続きB
内の命令が実行待ちキューの最後尾にある手続きA内の
命令の後に登録される。このため1手続きAと手続きB
の命令が交互に実行されてしまう。
〔発明が解決しようとする1lllJI)前述のように
、従来の技術においては、命令実行待ちキュー1つで命
令を制御しているため、同時に複数の手続きが並列に実
行可能となる場合には、プログラム設計時に手続きの間
の実行順序や終了時刻に十分な注意を払う必要であり、
しかも。
プログラムトレース時には、複数の手続きが交互に実行
されてしまうため、トレース結果の解析に多大な工数壁
いやすという問題点がある。
本発明の目的は、これらの問題を解決し、1つの手続き
が終了するまでの他の並列に実行可能状態にある手続き
を待ち合せることが可能なデータ駆動型制御方法を提供
することにある。
〔課題を解決するための手段〕
上記目的を達成するため、本発明のデータ駆動制御方法
は、演算処理名と入力データ入手先と該入力データを用
いて演算結果の出力通知先と該入力データが準備された
ことを示す入力データ数カウンタから構成される命令と
、実行可能状態にある命令の実行を待ち合せるための命
令実行待ちキューとデータ駆動の原理に基づいて命令の
実行を制御するデータ駆動命令実行制御部とを格納した
記憶手段を有するデータ駆動型制御方法において、該記
憶手段に、実行中の手続きのネストレベルを指示するネ
ストレベルカウンタとネストレベルカウンタの値に対応
してそれぞれに命令実行待ちキューとを格納しておき、
該ネストレベルカウンタは手続き呼出し命令または呼出
し元へ戻るリターン命令が発生するたびに更新しつつ、
データ駆動命令実行制御部はネストレベルカウンタで指
示される命令実行待ちキューから実行可能状態にある命
令を取り出し、命令内の演算処理名で指示される演算を
行い、演算結果により新たに実行可能状態となった命令
をネストレベルカウンタで指示される命令実行待ちキュ
ーの最後尾に登録することにより、1つの手続きが終了
するまで他の並列実行可能状態にある手続きの実行を待
ち合せることを可能としたものである。
〔作用〕
本発明においては、複数の手続き呼出し命令が並列に実
行可能となった時に、データ駆動命令実行制御部は手続
きの実行レベルを表示するネストレベルカウンタで指示
される命令実行待ちキューに上記複数手続き呼出し命令
を登録し、次に、該命令実行待ちキューの先頭にある命
令を取り出し、該命令が手続き呼出し命令の場合1手続
き呼出し命令処理において、ネストレベルカウンタは+
1され、新たに実行可能となった手続き内の命令は更新
されたネストレベルカウンタが指示される命令待ちキュ
ーに登録していく。
以後、手続き呼出し命令が実行されるたびにネストレベ
ルカウンタは+1だけ更新されていく。
また、同様に、呼出し元へのリターン命令が実行される
たびに、ネストレベルカウンタは−1される。
従って、1つの手続き処理が始まるとネストレベルカウ
ンタが更新されるので、該手続きが終了を示すリターン
命令が実行されるまでは、同一ネストレベルで実行可能
状態にある他の手続きの命令実行は待ち合せることが可
能になる。
〔実施例〕
以下、本発明の実施例を図面により詳細に説明する。
第2図は1本発明において適用されるデータ・フロー・
グラフの記述例を示す図である。
前述のように、第2図における演算ノード12はデータ
駆動で実行される演算命令を表わしており、ノード12
の中に演算の内容を示す演算処理名が記述され、また、
アーク13は命令間で授受されるデータの流路を表わし
ている。通常のデータ・フロー・グラフの主ルーチン1
0は演算ノード12とアーク13を組み合せて記述され
、主ルーチンから呼出される手続き11も主ルーチンと
同様に演算ノード12とアーク13の組み合せで記述さ
れ1階層的に記述することが可能である。
そして、命令は全てデータ駆動に基づいて実行されるの
で、命令の実行に必要な入力データの全てが揃った時点
で始めて演算が実行される。
第2図では、入力データで指示されたXとyを加算(A
 D D)する命令と、Xとyを加算した結果を入力と
して、手続きを呼出す命令(CALL)とから構成され
る。手続き呼出し命令の入力AとBは呼出す手続き名を
表わしている。また、手続きAで使用される演算ノード
12はA1〜Anで記述し1手続きBで使用される演算
ノード12は81〜Bmで記述しである。
第3図は、上記第2図に示したデータ・フロー・グラフ
に対応する命令語(命令テーブル)を表現した図である
第3図における命令テーブル20は、FIF○により命
令実行を待ち合せるためのリンケージポインタ21と演
算処理内容を示す演算処理名22と入力データの入手先
のアドレスを示す入力データ入手先23と該入力データ
を入力した演算結果を出力として次命令に通知するため
の出力通知先24と該命令の入力データの準備状況を表
示するための入力データ数カウンタ25と演算結果を格
納するための出力データ格納エリア26から構成される
そして、各演算ノード12に対して、命令テーブル20
が1面ずつ用意される。また、入力データ入手先23と
出力通知24と出力データ格納エリア26は各々の個数
によって可変となることは言までもない、なお、ADD
ノードの命令を構成する各エリアだけに記号が付けられ
ているが、他のCALLノードの各エリアも、演算処理
名22と入力データ入手先23に手続き名が入っている
点のみが異なるだけで、それ以外のエリアは全く同じで
あるため、記号を省略しである。
第4図は、データ駆動制御において、並列に実行可能と
なった命令を逐次的に処理するために、命令実行を待ち
合せるための命令実行待ちキュー3の構成例を示したも
のである。第4図における命令実行待ちキュー3は、並
列に実行可能となった複数の手続きを処理する場合に、
1つの手続き処理で終了するまで、他の手続きを待ち合
せることができるようにしである。すなわち、命令実行
待ちキュー3は階層的に実行される手続きの実行階層を
表示するネストレベルカウンタ2で指示される階層分だ
け用意し、各階層に対応する命令実行待ちキューはキュ
ーに登録された先頭の命令のアドレスを示す先頭アドレ
スポインタ30とキューに登録された最後尾の命令のア
ドレスを示す最終アドレスポインタ31から構成される
。そして、実行可能となった命令テーブル20は各命令
のリンケージポインタ21を使用して、ネストレベルカ
ウンタ2で指示される命令実行待ちキュー3に登録する
。なお、この例では命令テーブルのリンケージをとるた
めに命令アドレスを用いたが、命令テーブルが識別可能
な番号であってもさしつかえない。
第1図は、本発明の一実施例を示すデータ駆動型制御方
法の機能ブロック図である。
第1図において、5は演算ノードやアークで表現された
データ・フロー・プログラム、2は実行中の手続きの階
層レベルを表示するネストレベルカウンタ、3は並列に
実行可能となった命令の実行を待ち合せるための命令実
行待ちキュー、4は命令内の演算処理名で指示される演
算を行う演算処理部、1はデータ・フロー表現されたプ
ログラム命令を、データ駆動で実行するデータ駆動命令
実行制御部である。
第5図は、第1図におけるデータ駆動命令実行制御部の
動作フローチャートであり、第6図は第2図におけるA
DD命令を実行し、その結果2つの手続き呼出し命令が
実行可能状態となった場合のネストレベルカウンタと命
令実行待ちキューの状態を表わす例を示し、第7図は第
2図における手続きAを呼出すCALL命令を実行し、
その結果手続きA内の命令A1が実行可能状態となった
場合のネストレベルカウンタと命令実行待ちキューの状
態を表わす例である。
次に、第5図と第6図および第7図により、第1図の機
能ブロックと第3図の命令実行の動作と第4図のネスト
レベルカウンタと命令実行待ちキューの動作を説明する
先ず、データ駆動命令実行制御部1は、実行すべきデー
タ・フロー・プログラム5内の命令の入力データ数カウ
ンタ25とネストレベルカウンタ2と命令実行待ちキュ
ー3の先頭アドレスポインタ30と最終アドレスポイン
タ31を初期設定する(ステップ41)(第1図の矢印
(、) ) 、そして、一番初めに実行すべき命令のア
ドレスをネストレベルカウンタ2で指示される命令実行
待ちキュー3に9.録する(ステップ42)(第1図の
矢印(b))、次に、ネストレベルカウンタ2で指示さ
れる命令実行待ちキュー3に実行可能な命令があれば(
ステップ43.44)(第1図の矢印(c))、命令実
行待ちキュー3から先頭の命令アドレスを取り出した後
、先頭アドレスポインタ30と必要があれば最終アドレ
スポインタ31を更新しくステップ45)、取り出した
命令内の演算処理名22で定まる演算処理部4を決定し
て。
その命令アドレスを演算処理部4に引き継ぎ、演算処理
部4を起動する。起動を受けた演算処理部4は、その命
令アドレスで指示される命令内の入力データ入手先23
から入力データを入手し、その入力データを用いて所定
の演算を行い、演算結果を出力データ格納エリア26に
格納する(ステップ46)(第1図の矢印(d))。そ
して、データ駆動命令制御部1へ制御を戻す(第1図の
矢印(e))。
次に、データ駆動命令制御部1は処理中の命令内で指示
される出力通知先24を求め、出力データすなわち次命
令の入力データが準備されたことを入力データ数カウン
タ25を用いて更新しくステップ47.48) 、次命
令の実行に必要な全ての入力データが揃えば(ステップ
49)、次命令のアドレスをネストレベルカウンタ2で
指示される命令実行待ちキュー3の最終アドレスポイン
タ31で指示される命令の次に登録するために最終アド
レスポインタ31とリンケージポインタ21を更新する
(ステップ50)、また、次命令の入力データが全て揃
わなければ何もしない。さらに、出力通知先24が複数
があれば前述の処理を繰り返す(ステップ47〜ステツ
プ50)。
そして、全ての出力通知先24への出力データの通知が
終了すると、命令実行待ちキュー3に実行すべき命令ア
ドレスが登録されているか否かの判定処理(ステップ4
3.ステップ44)に戻る。
命令アドレスが登録されていれば、前記命令実行処理(
ステップ45〜ステツプ50)を繰り返す。
一方、命令実行待ちキュー3に登録されている命令アド
レスがなければ、実行すべき命令がないものと判断して
データ・フロー・プログラムの処理を終了する。
次に、第2図のおけるデータ・フロー・プログラムの命
令実行について、第6図と第7図を用いて詳述する。
前述したように、データ駆動命令実行制御部1は、第2
図における主ルーチン10の実行において、ネストレベ
ルカウンタ2を初期設定(例えば。
O)し、一番初めに実行すべき命令、すなわち、ADD
命令をネストレベルカウンタ2で指示される命令実行待
ちキュー3に登録した後、該ADD命令を命令実行待ち
キュー3から取り出し、命令の実行を行う、そして、該
ADD命令の演算結果を手続きAと手続きBを呼出す2
つの手続き呼出し命令に通知する。その際、手続きを呼
出すための手続き名は固定的に与えられている。(第2
図の手続は呼出し命令(CALL)の入力であるAとB
)ので、該ADD命令の演算結果が前記2つの手続き呼
出し命令に通知されると同時に2つの手続き呼出し命令
が実行可能状態となり、データ駆動命令実行制御部1は
該手続き呼出し命令を命令実行待ちキュー3へ登録する
そのネストレベルカウンタ2と命令実行待ちキュー3の
状態を第6図に示す、そして、次に、第6図の状態にお
いて、データ駆動命令実行制御部1により、命令実行待
ちキュー3から、手続きAを呼出す手続き呼出し命令が
取り出され、手続きAが呼出される。この手続きを呼出
す処理の過程がネストレベルカウンタ2は+1だけ更新
され、手続きA内の命令の入力データ数カウンタ2Sが
初期設定された後、ネストレベルカウンタ2で指示され
る命令実行待ちキュー3に手続きAの一番最初に実行す
べき命令(第2図ではAx)が登録される(第7図)。
以後、ネストレベルカウンタ2が更新されるまでは、手
続きAの命令が先立って実行され、手続きBの呼出し命
令の実行が待ち合せられる。なお、手続きAから主ルー
チンに戻るためのリターン命令が実行されるとネストレ
ベルカウンタ2は−1だけ更新される。そして、待ち合
せていた手続きBを呼出す命令が実行される。
このように、本実施例においては、並列に実行可能状態
となった複数の手続きを実行する場合、1つの手続き処
理が終了するまで他の手続き処理を待ち合せることがで
きるため、大局的な並列性と局所的な並列性を無差別に
明示したり、実行したりすることがなくなり、プログラ
ムの理解性やテスト効率の向上が図れる。
〔発明の効果〕 以上説明したように5本発明によれば、複数の手続きが
並列に実行可能状態になっても、手続きの生起・終了の
シケースを保証することができるため、手続き内での局
所的な並列性と主ルーチンにおける大局的な並列性が無
差別に明示されたり、実行されたりすることがなくなり
、プログラムの理解性向上やプログラムのトレース時間
の削減が可能になる。
【図面の簡単な説明】
第1図は本発明の一実施例を示すデータ駆動型制御方法
の機能ブロック図、第2図は本発明で使用するデータ・
フロー・グラフの説明図、第3図は本発明の一実施例を
示すデータ駆動命令の結合図、第4図は本発明の一実施
例を示すネストレベルカウンタと命令実行待ちキューの
関係を示す説明図、第5図は第1図におけるデータ駆動
命令実行制御部の動作フローチャート、第6図は第2図
のデータ・フロー・プログラムの実行過程におけるネス
トレベルカウンタと命令実行待ちキューの関係の説明図
、第7図は第2図のデータ・フロー・プログラムの実行
過程におけるネストレベルヵウンタと命令実行待ちキュ
ーの関係の説明図である。 1・・・データ駆動命令実行制御部、2・・・ネストレ
ベルカウンタ、3・・・命令実行待ちキュー、4・・・
演算処理部、5・・・データ・フロー・プログラム、6
゜10・・・主ルーチン、11・・・手続き、12・・
・演算ノード、13・・・アーク、20・・・命令テー
ブル、21・・・リンケージポインタ、22・・・演算
処理名、23・・・入力データ入手先、24・・・出力
通知先、25・・・入力データ数カウンタ、26・・・
出力データ格納エリア、30・・・先頭アドレスポイン
タ、31・・・最終アドレスポインタ。 鶏 2 目

Claims (1)

    【特許請求の範囲】
  1. 1、演算処理名と入力データ入手先と該入力データを用
    いた演算結果の出力通知先と該入力データが準備された
    ことを示す入力データ数カウンタから構成される命令と
    実行可能状態となつた命令の実行を持ち合せるための命
    令実行待ちキューとデータ駆動の原理に基づいて命令の
    実行を制御するデータ駆動命令実行制御部とこれらを格
    納する記憶手段とを有するデータ駆動制御方法において
    、実行中の手続きのネストレベルを指示するネストレベ
    ルカウンタとネストレベルカウンタの値に対応してそれ
    ぞれに命令実行待ちキューとを該記憶手段に具備し、該
    ネストレベルカウンタは手続き呼出し命令または呼出し
    元へ戻るリターン命令が発生するたびに更新しつつ、デ
    ータ駆動命令実行制御部はネストレベルカウンタで指示
    される命令実行待ちキューから実行可能状態となつた命
    令を取り出し、命令内の演算処理名で指示される演算を
    行い、演算結果により新たに実行可能状態となつた命令
    をネストレベルカウンタで指示される命令実行待ちキュ
    ーの最後尾へ登録することにより、1つの手続きが終了
    まで他の並列に実行可能状態となつた手続きの実行を待
    ち合せるようにしたことを特徴とするデータ駆動型制御
    方法。
JP11243388A 1988-05-11 1988-05-11 データ駆動型制御方法 Expired - Fee Related JP2749058B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11243388A JP2749058B2 (ja) 1988-05-11 1988-05-11 データ駆動型制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11243388A JP2749058B2 (ja) 1988-05-11 1988-05-11 データ駆動型制御方法

Publications (2)

Publication Number Publication Date
JPH01283640A true JPH01283640A (ja) 1989-11-15
JP2749058B2 JP2749058B2 (ja) 1998-05-13

Family

ID=14586515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11243388A Expired - Fee Related JP2749058B2 (ja) 1988-05-11 1988-05-11 データ駆動型制御方法

Country Status (1)

Country Link
JP (1) JP2749058B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009529147A (ja) * 2006-03-06 2009-08-13 ジン ホ ジュン, 立体映像撮影レンズ系

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009529147A (ja) * 2006-03-06 2009-08-13 ジン ホ ジュン, 立体映像撮影レンズ系

Also Published As

Publication number Publication date
JP2749058B2 (ja) 1998-05-13

Similar Documents

Publication Publication Date Title
US20040205751A1 (en) Virtual supercomputer
JPH0756892A (ja) マスク付きベクトル演算器を持つ計算機
JP2001356907A (ja) 処理コード情報を有するデータベース・システムおよび情報処理システム
JPH01283640A (ja) データ駆動型制御方法
Sampson Process-oriented patterns for concurrent software engineering
JP6510430B2 (ja) トレースデータ編集装置及び方法
JP2003122410A (ja) コントローラの演算実行方法
JP2559494B2 (ja) マイクロプログラム制御方法
Tanwar Hands-On Parallel Programming with C# 8 and. NET Core 3: Build solid enterprise software using task parallelism and multithreading
CN109634766A (zh) 提升数据流机运行效率的方法、装置、设备及存储介质
JPH05181712A (ja) スタック履歴作成方式
JP3701583B2 (ja) キュープロセッサ
JPH0736829A (ja) トランザクション処理システム
JP3022398B2 (ja) 仮想計算機方式
JPH07334358A (ja) 手順編集装置
JPH03255565A (ja) 並列計算機シミュレート方式
CN119292780A (zh) 一种面向数据的粒子系统任务设计和调度方法和设备
JPH01102645A (ja) タスクレベルデータ駆動型計算機
CN117056051A (zh) 基于事件的操作系统的调度方法和调度系统的构建方法
JPH01193940A (ja) オブジェクト指向言語による時間の処理方式
JPH0495129A (ja) 計算機
JPH0661039B2 (ja) メモリアクセス制御回路
JPH03263265A (ja) ベクトル処理装置
JP2004021658A (ja) プログラム自動実行システム
JPH0398123A (ja) 時刻スタンプ付き命令系列処理装置

Legal Events

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