JP2749058B2 - データ駆動型制御方法 - Google Patents
データ駆動型制御方法Info
- Publication number
- JP2749058B2 JP2749058B2 JP11243388A JP11243388A JP2749058B2 JP 2749058 B2 JP2749058 B2 JP 2749058B2 JP 11243388 A JP11243388 A JP 11243388A JP 11243388 A JP11243388 A JP 11243388A JP 2749058 B2 JP2749058 B2 JP 2749058B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- procedure
- data
- execution
- level counter
- 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
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ駆動型制御方法に関し、特に並列実
行が可能となつた複数の手続きを処理する場合、1つの
手続きの処理が終了するまでの他の手続きの実行を待ち
合せることで、手続き処理の実行順序による結果の非決
定性を防止したデータ・フロー・プログラムの命令制御
方法に関するものである。
行が可能となつた複数の手続きを処理する場合、1つの
手続きの処理が終了するまでの他の手続きの実行を待ち
合せることで、手続き処理の実行順序による結果の非決
定性を防止したデータ・フロー・プログラムの命令制御
方法に関するものである。
データ駆動型制御は、データフロー、すなわち被処理
データの準備状況に応じて、処理シーケンスを制御する
ものであつて、いわゆる非ノイマン型コンピユータの実
現として研究されてきた。データ駆動の原理に基いて実
行されるプログラムは、第2図で示すように、長方形ブ
ロツクの中に演算名が記載されたノード(加算,減算,
等)に対して、オペランド(データ,データアドレス,
等)が入力され、演算結果としてそれらの出力が与えら
れる。これらのノードへの入力と出力は矢印付きの線で
表わして、これらの線をアークと呼び、線上のデータを
トークンと呼ぶ。このようにデータ・フロー・プログラ
ムは演算実行に必要なデータや制御の流れが2次元の図
式で表現されるため、理解性が高く、しかも、並列処理
の記述性が高い(電子通信学会誌,昭和58年2月号,PP1
91〜PP193)。そこで、並列処理単位をプロセツサ単位
に割り付けることで演算速度を上げることもできるし、
プログラムの理解性向上だけを狙うならデータ・フロー
・プログラムを従来の遂次型プロセツサで実行してもか
まわない。
データの準備状況に応じて、処理シーケンスを制御する
ものであつて、いわゆる非ノイマン型コンピユータの実
現として研究されてきた。データ駆動の原理に基いて実
行されるプログラムは、第2図で示すように、長方形ブ
ロツクの中に演算名が記載されたノード(加算,減算,
等)に対して、オペランド(データ,データアドレス,
等)が入力され、演算結果としてそれらの出力が与えら
れる。これらのノードへの入力と出力は矢印付きの線で
表わして、これらの線をアークと呼び、線上のデータを
トークンと呼ぶ。このようにデータ・フロー・プログラ
ムは演算実行に必要なデータや制御の流れが2次元の図
式で表現されるため、理解性が高く、しかも、並列処理
の記述性が高い(電子通信学会誌,昭和58年2月号,PP1
91〜PP193)。そこで、並列処理単位をプロセツサ単位
に割り付けることで演算速度を上げることもできるし、
プログラムの理解性向上だけを狙うならデータ・フロー
・プログラムを従来の遂次型プロセツサで実行してもか
まわない。
ところで、遂次型プロセツサ上でデータ駆動制御を行
う方法においては、例えば、特開昭61−123937号公報に
記載されているように、並列実行可能となつた命令を待
ち合せるために1つの命令実行待ちキユーが用意されて
いた。すなわち、上記公報に記載されたデータ駆動型制
御方式では、並列に実行可能状態となつた命令は1つの
命令実行待ちキユーへFIFO(フアーストイン・フアース
トアウト)形式で登録されているため、例えば、同時に
手続きAを呼出す手続き呼出しA′と手続きBを呼出す
手続き呼出しB′が実行可能となる場合、命令実行待ち
キユーには手続き呼出しA′の命令が先頭に、手続き呼
出しB′の命令が最後尾に登録される。従つて、命令実
行はまず手続き呼出しA′の命令が命令実行待ちキユー
から取り出されて、手続きAが呼出され、その結果新た
に実行可能となつた手続きA内の命令が命令実行待ちキ
ユーの最後尾にある手続き呼出しB′の命令の後に登録
される。そして、次に、命令実行待ちキユーから手続き
呼出しB′の命令が取り出されて、手続きBが呼出さ
れ、その結果新たに実行可能となつた手続きB内の命令
が実行待ちキユーの最後尾にある手続きA内の命令の後
に登録される。このため、手続きAと手続きBの命令が
交互に実行されてしまう。
う方法においては、例えば、特開昭61−123937号公報に
記載されているように、並列実行可能となつた命令を待
ち合せるために1つの命令実行待ちキユーが用意されて
いた。すなわち、上記公報に記載されたデータ駆動型制
御方式では、並列に実行可能状態となつた命令は1つの
命令実行待ちキユーへFIFO(フアーストイン・フアース
トアウト)形式で登録されているため、例えば、同時に
手続きAを呼出す手続き呼出しA′と手続きBを呼出す
手続き呼出しB′が実行可能となる場合、命令実行待ち
キユーには手続き呼出しA′の命令が先頭に、手続き呼
出しB′の命令が最後尾に登録される。従つて、命令実
行はまず手続き呼出しA′の命令が命令実行待ちキユー
から取り出されて、手続きAが呼出され、その結果新た
に実行可能となつた手続きA内の命令が命令実行待ちキ
ユーの最後尾にある手続き呼出しB′の命令の後に登録
される。そして、次に、命令実行待ちキユーから手続き
呼出しB′の命令が取り出されて、手続きBが呼出さ
れ、その結果新たに実行可能となつた手続きB内の命令
が実行待ちキユーの最後尾にある手続きA内の命令の後
に登録される。このため、手続きAと手続きBの命令が
交互に実行されてしまう。
前述のように、従来の技術においては、命令実行待ち
キユー1つで命令を制御しているため、同時に複数の手
続きが並列に実行可能となる場合には、プログラム設計
時に手続きの間の実行順序や終了時刻に十分な注意を払
う必要であり、しかも、プログラムトレース時には、複
数の手続きが交互に実行されてしまうため、トレース結
果の解析に多大な工数費いやすという問題点がある。
キユー1つで命令を制御しているため、同時に複数の手
続きが並列に実行可能となる場合には、プログラム設計
時に手続きの間の実行順序や終了時刻に十分な注意を払
う必要であり、しかも、プログラムトレース時には、複
数の手続きが交互に実行されてしまうため、トレース結
果の解析に多大な工数費いやすという問題点がある。
本発明の目的は、これらの問題を解決し、1つの手続
きが終了するまでの他の並列に実行可能状態にある手続
きを待ち合せることが可能なデータ駆動型制御方法を提
供することにある。
きが終了するまでの他の並列に実行可能状態にある手続
きを待ち合せることが可能なデータ駆動型制御方法を提
供することにある。
上記目的を達成するため、本発明のデータ駆動型制御
方法は、演算処理名と入力データ入手先と該入力データ
を用いて演算結果の出力通知先と該入力データが準備さ
れたことを示す入力データ数カウンタから構成される命
令と、実行可能状態にある命令の実行を待ち合せるため
の命令実行待ちキユーとデータ駆動の原理に基づいて命
令の実行を制御するデータ駆動命令実行制御部とを格納
した記憶手段を有するデータ駆動型制御方法において、
該記憶手段に、実行中の手続きのネストレベルを指示す
るネストレベルカウンタとネストレベルカウンタの値に
対応してそれぞれに命令実行待ちキユーとを格納してお
き、該ネストレベルカウンタは手続き呼出し命令または
呼出し元へ戻るリターン命令が発生するたびに更新しつ
つ、データ駆動命令実行制御部はネストレベルカウンタ
で指示される命令実行待ちキユーから実行可能状態にあ
る命令を取り出し、命令内の演算処理名で指示される演
算を行い、演算結果により新たに実行可能状態となつた
命令をネストレベルカウンタで指示される命令実行待ち
キユーの最後尾に登録することにより、1つの手続きが
終了するまで他の並列実行可能状態にある手続きの実行
を待ち合せることを可能としたものである。
方法は、演算処理名と入力データ入手先と該入力データ
を用いて演算結果の出力通知先と該入力データが準備さ
れたことを示す入力データ数カウンタから構成される命
令と、実行可能状態にある命令の実行を待ち合せるため
の命令実行待ちキユーとデータ駆動の原理に基づいて命
令の実行を制御するデータ駆動命令実行制御部とを格納
した記憶手段を有するデータ駆動型制御方法において、
該記憶手段に、実行中の手続きのネストレベルを指示す
るネストレベルカウンタとネストレベルカウンタの値に
対応してそれぞれに命令実行待ちキユーとを格納してお
き、該ネストレベルカウンタは手続き呼出し命令または
呼出し元へ戻るリターン命令が発生するたびに更新しつ
つ、データ駆動命令実行制御部はネストレベルカウンタ
で指示される命令実行待ちキユーから実行可能状態にあ
る命令を取り出し、命令内の演算処理名で指示される演
算を行い、演算結果により新たに実行可能状態となつた
命令をネストレベルカウンタで指示される命令実行待ち
キユーの最後尾に登録することにより、1つの手続きが
終了するまで他の並列実行可能状態にある手続きの実行
を待ち合せることを可能としたものである。
本発明においては、複数の手続き呼出し命令が並列に
実行可能となつた時に、データ駆動命令実行制御部は手
続きの実行レベルを表示するネストレベルカウンタで指
示される命令実行待ちキユーに上記複数手続き呼出し命
令を登録し、次に、該命令実行待ちキユーの先頭にある
命令を取り出し、該命令が手続き呼出し命令の場合、手
続き呼出し命令処理において、ネストレベルカウンタは
+1され、新たに実行可能となつた手続き内の命令は更
新されたネストレベルカウンタが指示される命令待ちキ
ユーに登録していく。
実行可能となつた時に、データ駆動命令実行制御部は手
続きの実行レベルを表示するネストレベルカウンタで指
示される命令実行待ちキユーに上記複数手続き呼出し命
令を登録し、次に、該命令実行待ちキユーの先頭にある
命令を取り出し、該命令が手続き呼出し命令の場合、手
続き呼出し命令処理において、ネストレベルカウンタは
+1され、新たに実行可能となつた手続き内の命令は更
新されたネストレベルカウンタが指示される命令待ちキ
ユーに登録していく。
以後、手続き呼出し命令が実行されるたびにネストレ
ベルカウンタは+1だけ更新されていく。また、同様
に、呼出し元へのリターン命令が実行されるたびに、ネ
ストレベルカウンタは−1される。
ベルカウンタは+1だけ更新されていく。また、同様
に、呼出し元へのリターン命令が実行されるたびに、ネ
ストレベルカウンタは−1される。
従つて、1つの手続き処理が始まるとネストレベルカ
ウンタが更新されるので、該手続きが終了を示すリター
ン命令が実行されるまでは、同一ネストレベルで実行可
能状態にある他の手続きの命令実行は待ち合せることが
可能になる。
ウンタが更新されるので、該手続きが終了を示すリター
ン命令が実行されるまでは、同一ネストレベルで実行可
能状態にある他の手続きの命令実行は待ち合せることが
可能になる。
以下、本発明の実施例を図面により詳細に説明する。
第2図は、本発明において適用されるデータ・フロー
・グラフの記述例を示す図である。
・グラフの記述例を示す図である。
前述のように、第2図における演算ノード12はデータ
駆動で実行される演算命令を表わしており、ノード12の
中に演算の内容を示す演算処理名が記述され、また、ア
ーク13は命令間で授受されるデータの流路を表わしてい
る。通常のデータ・フロー・グラフの主ルーチン10は演
算ノード12とアーク13を組み合せて記述され、主ルーチ
ンから呼出される手続き11も主ルーチンと同様に演算ノ
ード12とアーク13の組み合せで記述され、階層的に記述
することが可能である。そして、命令は全てデータ駆動
に基づいて実行されるので、命令の実行に必要な入力デ
ータの全てが揃つた時点で始めて演算が実行される。
駆動で実行される演算命令を表わしており、ノード12の
中に演算の内容を示す演算処理名が記述され、また、ア
ーク13は命令間で授受されるデータの流路を表わしてい
る。通常のデータ・フロー・グラフの主ルーチン10は演
算ノード12とアーク13を組み合せて記述され、主ルーチ
ンから呼出される手続き11も主ルーチンと同様に演算ノ
ード12とアーク13の組み合せで記述され、階層的に記述
することが可能である。そして、命令は全てデータ駆動
に基づいて実行されるので、命令の実行に必要な入力デ
ータの全てが揃つた時点で始めて演算が実行される。
第2図では、入力データで指示されたxとyを加算
(ADD)する命令と、xとyを加算した結果を入力とし
て、手続きを呼出す命令(CALL)とから構成される。手
続き呼出し命令の入力AとBは呼出す手続き名を表わし
ている。また、手続きAで使用される演算ノード12はA1
〜Anで記述し、手続きBで使用される演算ノード12はB1
〜Bmで記述してある。
(ADD)する命令と、xとyを加算した結果を入力とし
て、手続きを呼出す命令(CALL)とから構成される。手
続き呼出し命令の入力AとBは呼出す手続き名を表わし
ている。また、手続きAで使用される演算ノード12はA1
〜Anで記述し、手続きBで使用される演算ノード12はB1
〜Bmで記述してある。
第3図は、上記第2図に示したデータ・フロー・グラ
フに対応する命令語(命令テーブル)を表現した図であ
る。
フに対応する命令語(命令テーブル)を表現した図であ
る。
第3図における命令テープル20は、FIFOにより命令実
行を待ち合せるためのリンケージポインタ21と演算処理
内容を示す演算処理名22と入力データの入手先のアドレ
スを示す入力データ入手先23と該入力データを入力した
演算結果を出力として次命令に通知するための出力通知
先24と該命令の入力データの準備状況を表示するための
入力データ数カウンタ25と演算結果を格納するための出
力データ格納エリア26から構成される。
行を待ち合せるためのリンケージポインタ21と演算処理
内容を示す演算処理名22と入力データの入手先のアドレ
スを示す入力データ入手先23と該入力データを入力した
演算結果を出力として次命令に通知するための出力通知
先24と該命令の入力データの準備状況を表示するための
入力データ数カウンタ25と演算結果を格納するための出
力データ格納エリア26から構成される。
そして、各演算ノード12に対して、命令テーブル20が
1面ずつ用意される。また、入力データ入手先23と出力
通知24と出力データ格納エリア26は各々の個数によつて
可変となることは言までもない。なお、ADDノードの命
令を構成する各エリアだけに記号が付けられているが、
他のCALLノードの各エリアも、演算処理名22と入力デー
タ入手先23に手続き名が入つている点のみが異なるだけ
で、それ以外のエリアは全く同じであるため、記号を省
略してある。
1面ずつ用意される。また、入力データ入手先23と出力
通知24と出力データ格納エリア26は各々の個数によつて
可変となることは言までもない。なお、ADDノードの命
令を構成する各エリアだけに記号が付けられているが、
他のCALLノードの各エリアも、演算処理名22と入力デー
タ入手先23に手続き名が入つている点のみが異なるだけ
で、それ以外のエリアは全く同じであるため、記号を省
略してある。
第4図は、データ駆動制御において、並列に実行可能
となつた命令を遂次的に処理するために、命令実行を待
ち合せるための命令実行待ちキユー3の構成例を示した
ものである。第4図における命令実行待ちキユー3は、
並列に実行可能となつた複数の手続きを処理する場合
に、1つの手続き処理で終了するまで、他の手続きを待
ち合せることができるようにしてある。すなわち、命令
実行待ちキユー3は階層的に実行される手続きの実行階
層を表示するネストレベルカウンタ2で指示される階層
分だけ用意し、各階層に対応する命令実行待ちキユーは
キユーに登録された先頭の命令のアドレスを示す先頭ア
ドレスポインタ30とキユーに登録された最後尾の命令の
アドレスを示す最終アドレスポインタ31から構成され
る。そして、実行可能となつた命令テーブル20は各命令
のリンケージポインタ21を使用して、ネストレベルカウ
ンタ2で指示される命令実行待ちキユー3に登録する。
なお、この例では命令テーブルのリンケージをとるため
に命令アドレスを用いたが、命令テーブルが識別可能な
番号であつてもさしつかえない。
となつた命令を遂次的に処理するために、命令実行を待
ち合せるための命令実行待ちキユー3の構成例を示した
ものである。第4図における命令実行待ちキユー3は、
並列に実行可能となつた複数の手続きを処理する場合
に、1つの手続き処理で終了するまで、他の手続きを待
ち合せることができるようにしてある。すなわち、命令
実行待ちキユー3は階層的に実行される手続きの実行階
層を表示するネストレベルカウンタ2で指示される階層
分だけ用意し、各階層に対応する命令実行待ちキユーは
キユーに登録された先頭の命令のアドレスを示す先頭ア
ドレスポインタ30とキユーに登録された最後尾の命令の
アドレスを示す最終アドレスポインタ31から構成され
る。そして、実行可能となつた命令テーブル20は各命令
のリンケージポインタ21を使用して、ネストレベルカウ
ンタ2で指示される命令実行待ちキユー3に登録する。
なお、この例では命令テーブルのリンケージをとるため
に命令アドレスを用いたが、命令テーブルが識別可能な
番号であつてもさしつかえない。
第1図は、本発明の一実施例を示すデータ駆動型制御
方法の機能ブロツク図である。
方法の機能ブロツク図である。
第1図において、5は演算ノードやアークで表現され
たデータ・フロー・プログラム、2は実行中の手続きの
階層レベルを表示するネストレベルカウンタ、3は並列
に実行可能となつた命令の実行を待ち合せるための命令
実行待ちキユー、4は命令内の演算処理名で指示される
演算を行う演算処理部、1はデータ・フロー表現された
プログラム命令を、データ駆動で実行するデータ駆動命
令実行制御部である。
たデータ・フロー・プログラム、2は実行中の手続きの
階層レベルを表示するネストレベルカウンタ、3は並列
に実行可能となつた命令の実行を待ち合せるための命令
実行待ちキユー、4は命令内の演算処理名で指示される
演算を行う演算処理部、1はデータ・フロー表現された
プログラム命令を、データ駆動で実行するデータ駆動命
令実行制御部である。
第5図は、第1図におけるデータ駆動命令実行制御部
の動作フローチヤートであり、第6図は第2図における
ADD命令を実行し、その結果2つの手続き呼出し命令が
実行可能状態となつた場合のネストレベルカウンタと命
令実行待ちキユーの状態を表わす例を示し、第7図は第
2図における手続きAを呼出すCALL命令を実行し、その
結果手続きA内の命令A1が実行可能状態となつた場合の
ネストレベルカウンタと命令実行待ちキユーの状態を表
わす例である。
の動作フローチヤートであり、第6図は第2図における
ADD命令を実行し、その結果2つの手続き呼出し命令が
実行可能状態となつた場合のネストレベルカウンタと命
令実行待ちキユーの状態を表わす例を示し、第7図は第
2図における手続きAを呼出すCALL命令を実行し、その
結果手続きA内の命令A1が実行可能状態となつた場合の
ネストレベルカウンタと命令実行待ちキユーの状態を表
わす例である。
次に、第5図と第6図および第7図により、第1図の
機能ブロツクと第3図の命令実行の動作と第4図のネス
トレベルカウンタと命令実行待ちキユーの動作を説明す
る。
機能ブロツクと第3図の命令実行の動作と第4図のネス
トレベルカウンタと命令実行待ちキユーの動作を説明す
る。
先ず、データ駆動命令実行制御部1は、実行すべきデ
ータ・フロー・プログラム5内の命令の入力データ数カ
ウンタ25とネストレベルカウンタ2と命令実行待ちキユ
ー3の先頭アドレスポインタ30と最終アドレスポインタ
31を初期設定する(ステツプ41)(第1図の矢印
(a))。そして、一番初めに実行すべき命令のアドレ
スをネストレベルカウンタ2で指示される命令実行待ち
キユー3に登録する(ステツプ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))。
ータ・フロー・プログラム5内の命令の入力データ数カ
ウンタ25とネストレベルカウンタ2と命令実行待ちキユ
ー3の先頭アドレスポインタ30と最終アドレスポインタ
31を初期設定する(ステツプ41)(第1図の矢印
(a))。そして、一番初めに実行すべき命令のアドレ
スをネストレベルカウンタ2で指示される命令実行待ち
キユー3に登録する(ステツプ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を求め、出力データすなわち次命
令の入力データが準備されたことを入力データ数カウン
タ25を用いて更新し(ステツプ47,48)、次命令の実行
に必要な全ての入力データが揃えば(ステツプ49)、次
命令のアドレスをネストレベルカウンタ2で指示される
命令実行待ちキユー3の最終アドレスポインタ31で指示
される命令の次に登録するために最終アドレスポインタ
31とリンケージポインタ21を更新する(ステツプ50)。
また、次命令の入力データが全て揃わなければ何もしな
い。さらに、出力通知先24が複数あれば前述の処理を繰
り返す(ステツプ47〜ステツプ50)。
そして、全ての出力通知先24への出力データの通知が
終了すると、命令実行待ちキユー3に実行すべき命令ア
ドレスが登録されているか否かの判定処理(ステツプ4
3,ステツプ44)に戻る。命令アドレスが登録されていれ
ば、前記命令実行処理(ステツプ45〜ステツプ50)を繰
り返す。一方、命令実行待ちキユー3に登録されている
命令アドレスがなければ、実行すべき命令がないものと
判断してデータ・フロー・プログラムの処理を終了す
る。
終了すると、命令実行待ちキユー3に実行すべき命令ア
ドレスが登録されているか否かの判定処理(ステツプ4
3,ステツプ44)に戻る。命令アドレスが登録されていれ
ば、前記命令実行処理(ステツプ45〜ステツプ50)を繰
り返す。一方、命令実行待ちキユー3に登録されている
命令アドレスがなければ、実行すべき命令がないものと
判断してデータ・フロー・プログラムの処理を終了す
る。
次に、第2図のおけるデータ・フロー・プログラムの
命令実行について、第6図と第7図を用いて詳述する。
命令実行について、第6図と第7図を用いて詳述する。
前述したように、データ駆動命令実行制御部1は、第
2図における主ルーチン10の実行において、ネストレベ
ルカウンタ2を初期設定(例えば、0)し、一番初めに
実行すべき命令、すなわち、ADD命令をネストレベルカ
ウンタ2で指示される命令実行待ちキユー3に登録した
後、該ADD命令を命令実行待ちキユー3から取り出し、
命令の実行を行う。そして、該ADD命令の演算結果を手
続きAと手続きBを呼出す2つの手続き呼出し命令に通
知する。その際、手続きを呼出すための手続き名は固定
的に与えられている。(第2図の手続は呼出し命令(CA
LL)の入力であるAとB)ので、該ADD命令の演算結果
が前記2つの手続き呼出し命令に通知されると同時に2
つの手続き呼出し命令が実行可能状態となり、データ駆
動命令実行制御部1は該手続き呼出し命令を命令実行待
ちキユー3へ登録する。
2図における主ルーチン10の実行において、ネストレベ
ルカウンタ2を初期設定(例えば、0)し、一番初めに
実行すべき命令、すなわち、ADD命令をネストレベルカ
ウンタ2で指示される命令実行待ちキユー3に登録した
後、該ADD命令を命令実行待ちキユー3から取り出し、
命令の実行を行う。そして、該ADD命令の演算結果を手
続きAと手続きBを呼出す2つの手続き呼出し命令に通
知する。その際、手続きを呼出すための手続き名は固定
的に与えられている。(第2図の手続は呼出し命令(CA
LL)の入力であるAとB)ので、該ADD命令の演算結果
が前記2つの手続き呼出し命令に通知されると同時に2
つの手続き呼出し命令が実行可能状態となり、データ駆
動命令実行制御部1は該手続き呼出し命令を命令実行待
ちキユー3へ登録する。
そのネストレベルカウンタ2と命令実行待ちキユー3
の状態を第6図に示す。そして、次に、第6図の状態に
おいて、データ駆動命令実行制御部1により、命令実行
待ちキユー3から、手続きAを呼出す手続き呼出し命令
が取り出され、手続きAが呼出される。この手続きを呼
出す処理の過程がネストレベルカウンタ2は+1だけ更
新され、手続きA内の命令の入力データ数カウンタ25が
初期設定された後、ネストレベルカウンタ2で指示され
る命令実行待ちキユー3に手続きAの一番最初に実行す
べき命令(第2図ではA1)が登録される(第7図)。
の状態を第6図に示す。そして、次に、第6図の状態に
おいて、データ駆動命令実行制御部1により、命令実行
待ちキユー3から、手続きAを呼出す手続き呼出し命令
が取り出され、手続きAが呼出される。この手続きを呼
出す処理の過程がネストレベルカウンタ2は+1だけ更
新され、手続きA内の命令の入力データ数カウンタ25が
初期設定された後、ネストレベルカウンタ2で指示され
る命令実行待ちキユー3に手続きAの一番最初に実行す
べき命令(第2図ではA1)が登録される(第7図)。
以後、ネストレベルカウンタ2が更新されるまでは、
手続きAの命令が先立つて実行され、手続きBの呼出し
命令の実行が待ち合せられる。なお、手続きAから主ル
ーチンに戻るためのリターン命令が実行されるとネスト
レベルカウンタ2は−1だけ更新される。そして、待ち
合せていた手続きBを呼出す命令が実行される。
手続きAの命令が先立つて実行され、手続きBの呼出し
命令の実行が待ち合せられる。なお、手続きAから主ル
ーチンに戻るためのリターン命令が実行されるとネスト
レベルカウンタ2は−1だけ更新される。そして、待ち
合せていた手続きBを呼出す命令が実行される。
このように、本実施例においては、並列に実行可能状
態となつた複数の手続きを実行する場合、1つの手続き
処理が終了するまで他の手続き処理を待ち合せることが
できるため、大局的な並列性と局所的な並列性を無差別
に明示したり、実行したりすることがなくなり、プログ
ラムの理解性やテスト効率の向上が図れる。
態となつた複数の手続きを実行する場合、1つの手続き
処理が終了するまで他の手続き処理を待ち合せることが
できるため、大局的な並列性と局所的な並列性を無差別
に明示したり、実行したりすることがなくなり、プログ
ラムの理解性やテスト効率の向上が図れる。
以上説明したように、本発明によれば、複数の手続き
が並列に実行可能状態になつても、手続きの生起・終了
のシケースを保証することができるため、手続き内での
局所的な並列性と主ルーチンにおける大局的な並列性が
無差別に明示されたり、実行されたりすることがなくな
り、プログラムの理解性向上やプログラムのトレース時
間の削減が可能になる。
が並列に実行可能状態になつても、手続きの生起・終了
のシケースを保証することができるため、手続き内での
局所的な並列性と主ルーチンにおける大局的な並列性が
無差別に明示されたり、実行されたりすることがなくな
り、プログラムの理解性向上やプログラムのトレース時
間の削減が可能になる。
第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図は本発明で使用するデータ・
フロー・グラフの説明図、第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……
最終アドレスポインタ。
Claims (1)
- 【請求項1】演算処理名と入力データ入手先と該入力デ
ータを用いた演算結果の出力通知先と該入力データが準
備されたことを示す入力データ数カウンタから構成され
る命令と実行可能状態となつた命令の実行を持ち合せる
ための命令実行待ちキユーとデータ駆動の原理に基づい
て命令の実行を制御するデータ駆動命令実行制御部とこ
れらを格納する記憶手段とを有するデータ駆動制御方法
において、実行中の手続きのネストレベルを指示するネ
ストレベルカウンタとネストレベルカウンタの値に対応
してそれぞれに命令実行待ちキユーとを該記憶手段に具
備し、該ネストレベルカウンタは手続き呼出し命令また
は呼出し元へ戻るリターン命令が発生するたびに更新し
つつ、データ駆動命令実行制御部はネストレベルカウン
タで指示される命令実行待ちキユーから実行可能状態と
なつた命令を取り出し、命令内の演算処理名で指示され
る演算を行い、演算結果により新たに実行可能状態とな
つた命令をネストレベルカウンタで指示される命令実行
待ちキユーの最後尾へ登録することにより、1つの手続
きが終了まで他の並列に実行可能状態となつた手続きの
実行を待ち合せるようにしたことを特徴とするデータ駆
動型制御方法。
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 JPH01283640A (ja) | 1989-11-15 |
JP2749058B2 true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090058992A1 (en) * | 2006-03-06 | 2009-03-05 | Jin Ho Jung | Three dimensional photographic lens system |
-
1988
- 1988-05-11 JP JP11243388A patent/JP2749058B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH01283640A (ja) | 1989-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR970016979A (ko) | 다중 처리 시스템에서 타스크의 큐잉 시스템 및 방법 | |
JP2749058B2 (ja) | データ駆動型制御方法 | |
JP2518293B2 (ja) | デ−タフロ−プロセツサ | |
EP0240108A2 (en) | A data processing system | |
JPH07219766A (ja) | 演算処理装置 | |
JPH01503340A (ja) | データ処理ユニット | |
JP2003244190A (ja) | データフロー制御スイッチ用プロセッサ及びデータフロー制御スイッチ | |
JPS6320536A (ja) | 情報処理装置 | |
JPS6122818B2 (ja) | ||
JPH0743649B2 (ja) | 演算回路 | |
JP2747164B2 (ja) | ソフトウェア・シミュレータ | |
JPS63317805A (ja) | ペトリネットに基づくシミュレ−ション装置 | |
JPH02176849A (ja) | 電子式卓上計算機 | |
JP2503983B2 (ja) | 情報処理装置 | |
JPS61123937A (ja) | データ処理装置のデータ駆動型制御方式 | |
JPS6320537A (ja) | 情報処理装置 | |
JPH01193940A (ja) | オブジェクト指向言語による時間の処理方式 | |
JPH0269826A (ja) | 条件付命令制御方式 | |
JPH03223955A (ja) | 情報処理システム | |
JPH0620071A (ja) | データ駆動型情報処理装置 | |
JPH0752397B2 (ja) | タスク制御方式 | |
JPH0661039B2 (ja) | メモリアクセス制御回路 | |
JPH0638235B2 (ja) | 情報処理装置 | |
JPH02287624A (ja) | データ処理装置 | |
JPH01304538A (ja) | スタツク制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |