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
Links
Landscapes
- Advance Control (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、データ駆動型制御方法に関し、特に並列実行
が可能となった複数の手続きを処理する場合、1つの手
続きの処理が終了するまでの他の手続きの実行を待ち合
せることで、手続き処理の実行順序による結果の非決定
性を防止したデータ・フロー・プログラムの命令制御方
法に関するものである。
が可能となった複数の手続きを処理する場合、1つの手
続きの処理が終了するまでの他の手続きの実行を待ち合
せることで、手続き処理の実行順序による結果の非決定
性を防止したデータ・フロー・プログラムの命令制御方
法に関するものである。
データ駆動型制御は、データフロー、すなわち被処理デ
ータの準備状況に応じて、処理シーケンスを制御するも
のであって、いわゆる非ノイマン型コンピュータの実現
として研究されてきた。データ駆動の原理に基いて実行
されるプログラムは、第2図で示すように、長方形ブロ
ックの中に演算基が記載されたノード(加算、減算9等
)に対して、オペランド(データ、データアドレス、等
)が入力され、演算結果としてそれらの出力が与えられ
る。これらのノードへの入力と出力は矢印付きの線で表
わして、これらの線をアークと呼び。
ータの準備状況に応じて、処理シーケンスを制御するも
のであって、いわゆる非ノイマン型コンピュータの実現
として研究されてきた。データ駆動の原理に基いて実行
されるプログラムは、第2図で示すように、長方形ブロ
ックの中に演算基が記載されたノード(加算、減算9等
)に対して、オペランド(データ、データアドレス、等
)が入力され、演算結果としてそれらの出力が与えられ
る。これらのノードへの入力と出力は矢印付きの線で表
わして、これらの線をアークと呼び。
繰上のデータをトークンと呼ぶ、このようにデータ・フ
ロー・プログラムは演算実行に必要なデータや制御の流
れが2次元の図式で表現されるため、理解性が高く、し
かも、並列処理の記述性が高い(電子通信学会誌、昭和
58年2月号、PP191〜PP193)、そこで、並
列処理単位をプロセッサ単位に割り付けることで演算速
度を上げることもできるし、プログラムの理解性向上だ
けを狙うならデータ・フロー・プログラムを従来の逐次
型プロセッサで実行してもかまわない。
ロー・プログラムは演算実行に必要なデータや制御の流
れが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
の命令が交互に実行されてしまう。
方法においては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手続
き呼出し命令処理において、ネストレベルカウンタは+
1され、新たに実行可能となった手続き内の命令は更新
されたネストレベルカウンタが指示される命令待ちキュ
ーに登録していく。
以後、手続き呼出し命令が実行されるたびにネストレベ
ルカウンタは+1だけ更新されていく。
ルカウンタは+1だけ更新されていく。
また、同様に、呼出し元へのリターン命令が実行される
たびに、ネストレベルカウンタは−1される。
たびに、ネストレベルカウンタは−1される。
従って、1つの手続き処理が始まるとネストレベルカウ
ンタが更新されるので、該手続きが終了を示すリターン
命令が実行されるまでは、同一ネストレベルで実行可能
状態にある他の手続きの命令実行は待ち合せることが可
能になる。
ンタが更新されるので、該手続きが終了を示すリターン
命令が実行されるまでは、同一ネストレベルで実行可能
状態にある他の手続きの命令実行は待ち合せることが可
能になる。
以下、本発明の実施例を図面により詳細に説明する。
第2図は1本発明において適用されるデータ・フロー・
グラフの記述例を示す図である。
グラフの記述例を示す図である。
前述のように、第2図における演算ノード12はデータ
駆動で実行される演算命令を表わしており、ノード12
の中に演算の内容を示す演算処理名が記述され、また、
アーク13は命令間で授受されるデータの流路を表わし
ている。通常のデータ・フロー・グラフの主ルーチン1
0は演算ノード12とアーク13を組み合せて記述され
、主ルーチンから呼出される手続き11も主ルーチンと
同様に演算ノード12とアーク13の組み合せで記述さ
れ1階層的に記述することが可能である。
駆動で実行される演算命令を表わしており、ノード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で記述しである。
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から構成される
。
令実行を待ち合せるためのリンケージポインタ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図におけるA
DD命令を実行し、その結果2つの手続き呼出し命令が
実行可能状態となった場合のネストレベルカウンタと命
令実行待ちキューの状態を表わす例を示し、第7図は第
2図における手続きAを呼出すCALL命令を実行し、
その結果手続きA内の命令A1が実行可能状態となった
場合のネストレベルカウンタと命令実行待ちキューの状
態を表わす例である。
動作フローチャートであり、第6図は第2図におけるA
DD命令を実行し、その結果2つの手続き呼出し命令が
実行可能状態となった場合のネストレベルカウンタと命
令実行待ちキューの状態を表わす例を示し、第7図は第
2図における手続きAを呼出すCALL命令を実行し、
その結果手続きA内の命令A1が実行可能状態となった
場合のネストレベルカウンタと命令実行待ちキューの状
態を表わす例である。
次に、第5図と第6図および第7図により、第1図の機
能ブロックと第3図の命令実行の動作と第4図のネスト
レベルカウンタと命令実行待ちキューの動作を説明する
。
能ブロックと第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を決定し
て。
タ・フロー・プログラム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))。
部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)に戻る。
終了すると、命令実行待ちキュー3に実行すべき命令ア
ドレスが登録されているか否かの判定処理(ステップ4
3.ステップ44)に戻る。
命令アドレスが登録されていれば、前記命令実行処理(
ステップ45〜ステツプ50)を繰り返す。
ステップ45〜ステツプ50)を繰り返す。
一方、命令実行待ちキュー3に登録されている命令アド
レスがなければ、実行すべき命令がないものと判断して
データ・フロー・プログラムの処理を終了する。
レスがなければ、実行すべき命令がないものと判断して
データ・フロー・プログラムの処理を終了する。
次に、第2図のおけるデータ・フロー・プログラムの命
令実行について、第6図と第7図を用いて詳述する。
令実行について、第6図と第7図を用いて詳述する。
前述したように、データ駆動命令実行制御部1は、第2
図における主ルーチン10の実行において、ネストレベ
ルカウンタ2を初期設定(例えば。
図における主ルーチン10の実行において、ネストレベ
ルカウンタ2を初期設定(例えば。
O)し、一番初めに実行すべき命令、すなわち、ADD
命令をネストレベルカウンタ2で指示される命令実行待
ちキュー3に登録した後、該ADD命令を命令実行待ち
キュー3から取り出し、命令の実行を行う、そして、該
ADD命令の演算結果を手続きAと手続きBを呼出す2
つの手続き呼出し命令に通知する。その際、手続きを呼
出すための手続き名は固定的に与えられている。(第2
図の手続は呼出し命令(CALL)の入力であるAとB
)ので、該ADD命令の演算結果が前記2つの手続き呼
出し命令に通知されると同時に2つの手続き呼出し命令
が実行可能状態となり、データ駆動命令実行制御部1は
該手続き呼出し命令を命令実行待ちキュー3へ登録する
。
命令をネストレベルカウンタ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図)。
状態を第6図に示す、そして、次に、第6図の状態にお
いて、データ駆動命令実行制御部1により、命令実行待
ちキュー3から、手続きAを呼出す手続き呼出し命令が
取り出され、手続きAが呼出される。この手続きを呼出
す処理の過程がネストレベルカウンタ2は+1だけ更新
され、手続きA内の命令の入力データ数カウンタ2Sが
初期設定された後、ネストレベルカウンタ2で指示され
る命令実行待ちキュー3に手続きAの一番最初に実行す
べき命令(第2図ではAx)が登録される(第7図)。
以後、ネストレベルカウンタ2が更新されるまでは、手
続きAの命令が先立って実行され、手続きBの呼出し命
令の実行が待ち合せられる。なお、手続きAから主ルー
チンに戻るためのリターン命令が実行されるとネストレ
ベルカウンタ2は−1だけ更新される。そして、待ち合
せていた手続きBを呼出す命令が実行される。
続きAの命令が先立って実行され、手続きBの呼出し命
令の実行が待ち合せられる。なお、手続きAから主ルー
チンに戻るためのリターン命令が実行されるとネストレ
ベルカウンタ2は−1だけ更新される。そして、待ち合
せていた手続きBを呼出す命令が実行される。
このように、本実施例においては、並列に実行可能状態
となった複数の手続きを実行する場合、1つの手続き処
理が終了するまで他の手続き処理を待ち合せることがで
きるため、大局的な並列性と局所的な並列性を無差別に
明示したり、実行したりすることがなくなり、プログラ
ムの理解性やテスト効率の向上が図れる。
となった複数の手続きを実行する場合、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 目
の機能ブロック図、第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つの手続きが終了
まで他の並列に実行可能状態となつた手続きの実行を待
ち合せるようにしたことを特徴とするデータ駆動型制御
方法。
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009529147A (ja) * | 2006-03-06 | 2009-08-13 | ジン ホ ジュン, | 立体映像撮影レンズ系 |
-
1988
- 1988-05-11 JP JP11243388A patent/JP2749058B2/ja not_active Expired - Fee Related
Cited By (1)
| 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 |