JPS61123937A - Data drive type control system - Google Patents
Data drive type control systemInfo
- Publication number
- JPS61123937A JPS61123937A JP24443284A JP24443284A JPS61123937A JP S61123937 A JPS61123937 A JP S61123937A JP 24443284 A JP24443284 A JP 24443284A JP 24443284 A JP24443284 A JP 24443284A JP S61123937 A JPS61123937 A JP S61123937A
- Authority
- JP
- Japan
- Prior art keywords
- data
- input
- program
- input data
- processing program
- 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
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明はデータ駆動型制御方式に関し、特に逐次実行型
プロセッサシステムにおいて、処理能力の低下を防止し
たデータ駆動型制御方式に関するものである。DETAILED DESCRIPTION OF THE INVENTION [Field of Application of the Invention] The present invention relates to a data-driven control method, and particularly to a data-driven control method that prevents a decrease in processing performance in a sequential execution processor system.
データ駆動型制御は、データのフロー、すなわち被処理
データの準備状況に応じて、処理シーケンスを制御する
ものであって、従来、いわゆる非ノイマン型コンピュー
タの実現手段として研究されてきたものである(「コン
ピュータ構造を変革するデータフロー・コンピュータの
動向(上)」日経エレクトロニクス、1979年5月2
8日号。Data-driven control controls the processing sequence according to the flow of data, that is, the preparation status of the data to be processed, and has been studied as a means of realizing so-called non-Neumann computers ( “Trends in data flow computers that will transform computer structures (Part 1)” Nikkei Electronics, May 2, 1979
8th issue.
第64〜81頁参照)、データ駆動式の非ノイマン型コ
ンピュータは従来のいわゆるノイマン型、すなわち、プ
ログラムが予め定められた単一の流れとして逐次実行さ
れる型(本明細書では逐次実行型という)のコンピュー
タとは基本的に異なるアーキテクチャを有し、かつ、並
列処理等によるデータ処理能力の向上を主として狙った
ものであるから、限られた処理能力で充分な仕事にとっ
ては非常に高価なものとなるなど、必ずしも常に最適と
はいえない面を持っている。(See pages 64 to 81), data-driven non-Neumann type computers are conventional so-called Neumann type computers, that is, types in which programs are executed sequentially as a single predetermined flow (herein referred to as sequential execution type). ) has a fundamentally different architecture from that of other computers, and is mainly aimed at improving data processing capacity through parallel processing, etc., so it is extremely expensive for tasks where limited processing capacity is sufficient. It has aspects that are not always optimal.
他方、従来の逐次実行型装置は、データ処理能力のみな
らず、ソフトウェアの作成に関しても、種々の難点が指
摘されている。この点でも、データ駆動型制御は、プロ
グラムの諸部分の間における入出力データの相互関係や
各部分の実行条件などが明瞭になることによって、プロ
グラムの全体構造を見やすくする結果、ソフトウェアの
開発。On the other hand, it has been pointed out that conventional sequential execution type devices have various difficulties not only in terms of data processing ability but also in terms of software creation. In this respect as well, data-driven control makes it easier to see the overall structure of a program by clarifying the interrelationships of input and output data between various parts of a program and the execution conditions of each part, thereby making software development easier.
デバッグ、変更などが容易になる利点をもつ。This has the advantage of making debugging, changes, etc. easier.
一つの妥協案は、さほどのデータ処理能力を要しない場
合に、従来の逐次実行型装置を、データ駆動型動作を行
なうようにプログラムすることである。しかし、II々
の演算命令に対して、所要のオペランドが準備されてい
るか否かをチェックするとともに、その実行の都度、そ
の生成データをオペランドとする命令について、その準
備ができたことを開示するための処理、いわゆるオーバ
ヘッドは大きく、さらにこのデータ駆動型プログラムを
何度も繰り返して使用する場合(例えば、電子交換機)
には、前記の入力データの準備状況の表示の初期設定に
費いやす処理の大小が、処理能力低下に大きく影響する
。One compromise is to program conventional sequential devices to perform data-driven operations when less data processing power is required. However, in addition to checking whether the necessary operands are prepared for each arithmetic instruction, each time it is executed, it is disclosed that the instruction that uses the generated data as an operand is ready. The processing, so-called overhead, is large, and furthermore, when this data-driven program is used many times (for example, in an electronic switchboard)
In this case, the amount of processing required to initialize the display of the input data preparation status greatly affects the reduction in processing capacity.
本発明の目的は、従来の逐次実行型装置において、オー
バヘッドその他に基因する処理能力の低下を最小限に抑
え、実用的で汎用性のあるデータ駆動型制御方式を実現
することにある。SUMMARY OF THE INVENTION An object of the present invention is to realize a practical and versatile data-driven control method in a conventional sequential execution device by minimizing the reduction in processing performance due to overhead and other factors.
本発明は、比較的小規模で独立した逐次実行型の処理プ
ログラムモジュールを単位とし、かようなプログラムモ
ジュールの相互間を入出力データに関する情報を集約し
たテーブルに基づくデータ駆動型制御で連結し、それに
伴うオーバヘッド環を最小°限に抑え、大規模な実時間
ソフトウェアの構築においてデータ駆動論理の利点を享
受しようとするものである。The present invention uses relatively small-scale, independent sequential execution type processing program modules as units, and connects such program modules with each other using data-driven control based on a table that aggregates information regarding input and output data. The aim is to minimize the overhead associated with it and to enjoy the benefits of data-driven logic in building large-scale real-time software.
すなわち、逐次実行型の制御装置において、前記各処理
プログラムモジュールに対応してテーブル(入出力規定
テーブル)を記憶装置内に用意し、ここにその処理プロ
グラムモジュールのための入出力データ入手先テーブル
指示部、入力データ準備状況表示部、出力通知先テーブ
ル指示部、出力データ格納部などを設ける。また、入力
データが全部揃ったテーブルを待機させておくキュー(
起動待合せキュー)を記憶装置内に用意する。各処理プ
ログラムモジュールは、起動されると、対応するテーブ
ルを参照しつつ、そこに指示された入手先テーブルから
入力データを読出し、逐次実行形式で所定の処理を行な
って、その結果の出力データを前記の対応するテーブル
の所定格納部に書込む、そうして、実行制御プログラム
は、前記の対応するテーブルを参照して、前記処理結果
の出力データについて指示された出力通知先テーブルの
入力データ準備状況表示部に、対応する入力データが準
備されたことを表示する。この入力データ準備状況表示
部はカウンタで、他のプログラムモジュールからの出力
データのみの個数を初期値としてセットする。実行制御
プログラムは、入力データが揃うたびに該カウンタの値
をチェックし。That is, in a sequential execution type control device, a table (input/output regulation table) is prepared in the storage device corresponding to each of the processing program modules, and input/output data source table instructions for the processing program module are specified here. 1, an input data preparation status display section, an output notification destination table instruction section, an output data storage section, and the like. In addition, there is a queue (
A startup waiting queue) is prepared in the storage device. When each processing program module is started, it refers to the corresponding table, reads input data from the specified source table, performs the specified processing in a sequential execution format, and outputs the resulting output data. The execution control program writes the data into a predetermined storage section of the corresponding table, and then refers to the corresponding table to prepare input data for the output notification destination table specified for the output data of the processing result. The status display section displays that the corresponding input data has been prepared. This input data preparation status display section is a counter, and the number of only output data from other program modules is set as an initial value. The execution control program checks the value of the counter every time the input data is complete.
カウンタの値が2以上であればカウンタの値を1だけ減
算し、既に該カウンタの値が1であれば所要の入力デー
タが全部揃ったと判断し、その入力データが揃ったテー
ブルを前記キューの末尾に登録するが、該カウンタは1
のままで更新しない。If the counter value is 2 or more, the counter value is decremented by 1, and if the counter value is already 1, it is determined that all the required input data has been collected, and the table containing the input data is placed in the queue. It is registered at the end, but the counter is 1.
Leave as is and do not update.
さらに、実行制御プログラムは該キュー内で待機中のテ
ーブルを先頭から順次取り出して、対応する処理プログ
ラムモジュールを起動する。Further, the execution control program sequentially takes out the tables waiting in the queue from the top and starts the corresponding processing program module.
この制御方法によると、入力データ準備状況表示部のカ
ウンタの初期値が1であるプログラムが大多数である場
合には、あらかじめ、入力データ準備表示部のカウンタ
が2以上の入出力規定テーブルだけの初期値をセットす
ればよく、入力データ表示部のカウンタが1のものは、
初期設定処理を行う必要がなく、初期設定処理量の増大
を抑える効果が非常に大きい、初期設定の時期について
は、すべてのプログラムの終了時、すなわち、前記キュ
ーに登録されたテーブルが無くなったときか、あるいは
、一番最初にプログラムが実行される直前かのどちらか
の場合でよい。According to this control method, if the majority of programs have an initial value of 1 for the counter in the input data preparation status display section, only the input/output regulation tables for which the counter in the input data preparation display section has a counter of 2 or more are set in advance. All you have to do is set the initial value, and if the counter on the input data display section is 1,
There is no need to perform initial setting processing, and the effect of suppressing the increase in the amount of initial setting processing is very large.The timing of initial setting is at the end of all programs, that is, when there are no more tables registered in the queue. or immediately before the program is executed for the first time.
所要入力データ中に定数などの既知データがあれば、そ
のデータ自体をテーブルに格納する。このように入力デ
ータに複数の種類(例えばデータ自体とアドレス)があ
るときは、テーブル中にその種別を表示しておく、また
条件によって出力通知先が異なる場合には、出力データ
の格納とともにそれが有効であることを表示し、この表
示があるものについてのみ出力通知処理を行なう。If the required input data includes known data such as constants, the data itself is stored in the table. In this way, when there are multiple types of input data (for example, the data itself and an address), display the types in the table. Also, if the output notification destination differs depending on the conditions, it is necessary to display the types as well as the storage of the output data. Displays that the is valid, and performs output notification processing only for those with this display.
第1図は本発明の制御方法を実施するための制御装置の
一例を示す、この制御装置は1台の逐次実行型プロセッ
サ10と、処理プログラム20と、入出力規定テーブル
30と、実行制御プログラム40と、起動待合せキュー
50とがプロセッサバス60で相互に接続されたもので
ある。また、これらの20〜50のプログラム及びキュ
ーをそれぞれ別個の記憶装置に収容したり、同一記憶装
置に収容したりすることは可能である。FIG. 1 shows an example of a control device for implementing the control method of the present invention. This control device includes one sequential execution type processor 10, a processing program 20, an input/output regulation table 30, and an execution control program. 40 and a startup waiting queue 50 are interconnected by a processor bus 60. Furthermore, it is possible to accommodate these 20 to 50 programs and queues in separate storage devices or in the same storage device.
処理プログラム20は、複数の小規模で独立した処理プ
ログラムモジュールから成り、入出力規定テーブル30
は、前記処理プログラムモジュールのそれぞれに対応し
て、プログラム同定情報(プログラム信号、先頭アドレ
ス等)、入力データ準備状況表示情報、入力データ指示
情報(アドレス又はリテラル)、出力データ格納領域、
出力通知先指示情報その他からなる。入出力規定テール
を制御する実行制御プログラム40は、入出力データの
制御や入力データの準備が整ったか否かの判定や、起動
待合せキュー50から実行可能な入出力規定テーブル3
0を取出し、対応する処理プログラムモジュール20を
起動する。起動待合せキュー50は、全入力データが揃
った処理プログラムモジュールに対応する入出力規定テ
ーブル30のアドレスをFIFO形式で登録する。The processing program 20 consists of a plurality of small-scale independent processing program modules, and includes an input/output regulation table 30.
corresponds to each of the processing program modules, program identification information (program signal, start address, etc.), input data preparation status display information, input data instruction information (address or literal), output data storage area,
Consists of output notification destination instruction information and other information. The execution control program 40 that controls the input/output regulation tail controls the input/output data, determines whether the input data is ready, and executes the input/output regulation table 3 that can be executed from the startup waiting queue 50.
0 and starts the corresponding processing program module 20. The startup waiting queue 50 registers in FIFO format the addresses of the input/output regulation table 30 corresponding to the processing program modules for which all input data has been completed.
全体の動作を概説すれば、逐次実行型プロセッサ10は
、実行制御プログラム40と処理プログラム20を交互
に実行し、実行制御プログラム40は、入出力規定テー
ブル30の入力データの4!!備状況を示す入力状況表
示カウンタが′″2″2″以上だけに所定の初期値を設
定する。但し、入力状況表示カウンタがl″であるもの
についてはシステム立上げ時に初期値として711 I
+がセットしである。初期設定が終了すると、実行制御
プログラム40は一番初めに起動すべき入出力規定テー
ブル30の1つを起動待合せキュー50の先頭に登録す
る0次に、実行制御プログラム40は、前記起動待合せ
キュー50の先頭にある入出力規定テーブル30のアド
レスを取出して、当該テーブルから対応する処理プログ
ラム20の同定情報を読出し、当該テーブルアドレス情
報を対応する処理プログラム20に引渡し、当該処理プ
ログラム20を起動する。起動された処理プログラム2
0は、対応する入出力規定テーブル30を参照しつつ、
そこに指示された入力データを用いて実行し、出力デー
タを同テーブル中の所定領域に書込み、しかる後、実行
制御プログラム40に処理゛の完了を報告する。この報
告を受けた実行制御プログラム40は対応する入出力規
定テーブル30を調べ、そこに指示されたすべての出力
通知先の入出力規定テーブル50に対して、それらの入
力状況表示のカウンタをチェックし、そのカウンタの値
が2以上であれば、1だけカウントダウンし、もし、カ
ウンタの値が1であれば全入力データが揃ったと判断し
、そのカウンタを更新することなく、その入出力規定テ
ーブル30を起動待合せキュー50の末尾に登録する。To summarize the overall operation, the sequential execution type processor 10 alternately executes the execution control program 40 and the processing program 20, and the execution control program 40 executes 4! of the input data of the input/output regulation table 30. ! A predetermined initial value is set only when the input status display counter indicating the readiness status is ``2'' or more.However, for those whose input status display counter is l'', the initial value is set to 711 I at system startup.
+ is set. When the initial settings are completed, the execution control program 40 registers one of the input/output regulation tables 30 to be activated first at the head of the activation waiting queue 50. 50, reads out the identification information of the corresponding processing program 20 from the table, passes the table address information to the corresponding processing program 20, and starts the processing program 20. . Started processing program 2
0, while referring to the corresponding input/output regulation table 30,
The process is executed using the input data specified therein, the output data is written in a predetermined area in the same table, and then the completion of the process is reported to the execution control program 40. Upon receiving this report, the execution control program 40 checks the corresponding input/output regulation table 30, and checks the input status display counters of all the output notification destinations specified therein in the input/output regulation table 50. , if the value of the counter is 2 or more, it counts down by 1, and if the value of the counter is 1, it is determined that all input data has been collected, and the input/output regulation table 30 is updated without updating the counter. is registered at the end of the activation waiting queue 50.
このように実行制御プログラム40は、起動待合せキュ
ー50が空きになるまで、 iIf記動作を繰返し、デ
ータ駆動型制御を実現している。In this way, the execution control program 40 repeats the iIf operations until the activation queue 50 becomes empty, realizing data-driven control.
以下、更に細部の説明をする。第2図は1本発明が適用
される簡単なデータ駆動型プログラムの例である。これ
は、全体としては、入力データAに対しである処理を施
して、結果の出力データBを得るプログラムである。そ
の処理の内容は、小規模な処理プログラムモジュールF
’t+ F2及びF、の組合せによって表わされ、各処
理プ、ログラムモジュールの間のデータ授受関係は、矢
印の線であられされる。各処理プログラムモジュールF
1〜F、の中味は、通常の逐次実行型プログラムにより
実現されるが、それらの実行は、それらの必要な入力デ
ータのすべてが揃ったことに応じて起動され1通常の逐
次実行型のプログラムとは違って、プログラムカウンタ
の指示によることはない。Further details will be explained below. FIG. 2 is an example of a simple data-driven program to which the present invention is applied. This is, as a whole, a program that performs certain processing on input data A and obtains output data B as a result. The content of the processing is a small-scale processing program module F.
It is represented by the combination of 't+F2 and F, and the data transfer relationship between each processing program module is drawn by an arrow line. Each processing program module F
The contents of 1 to F are realized by normal sequential execution type programs, and their execution is started when all of the necessary input data is collected. 1 Normal sequential execution type programs Unlike , it does not depend on the instructions from the program counter.
各処理プログラムモジュール間における入出力データの
授受を仲介する場が入出力規定テーブルであって、第3
図はその構成の一例を示す。1つの処理プログラムモジ
ュールに対する入出力規定テーブル100は、起動待合
せキューを形成するためのリンケージポインタ(LIN
KPT>101、当該処理プログラムモジュールの同定
情報(プログラム番号、先頭アドレス等)102゜入力
データ数103.入力データの準備状況を示す入力状況
表示カウンタ104.出力データ数105、入力データ
種別106.入力データの指示(リテラルデータ又はア
ドレス)107.出力データの有効性表示108.出力
通知先数109゜出力データ格納部110及び出力通知
先の指示111の諸領域を含む、106と107の組み
は。The input/output regulation table mediates the transfer of input/output data between each processing program module.
The figure shows an example of its configuration. The input/output regulation table 100 for one processing program module includes a linkage pointer (LIN) for forming a startup waiting queue.
KPT>101, identification information of the processing program module (program number, start address, etc.) 102° number of input data 103. Input status display counter 104 indicating the preparation status of input data. Number of output data: 105, type of input data: 106. Input data instruction (literal data or address) 107. Validity display of output data 108. Number of output notification destinations 109° The set of 106 and 107 includes various areas of the output data storage section 110 and the output notification destination instruction 111.
そのプログラムが必要とする入力データの数だけ設けら
れ、また111は当該出力の通知先の数だけ設けられる
とともに、108〜111の組は。The numbers 111 are provided as many as the number of input data required by the program, and the numbers 111 are provided as many as the number of notification destinations of the output, and the sets 108 to 111 are provided.
そのプログラムによって生成される全出力データの数だ
け設けられる。There are provided the same number of output data as the total output data generated by the program.
リンケージポインタ101と出力データ有効性表示10
8は、選択的に出力データが出力される場合に、その出
力データの有効性を示すフラグに用いる。同定情報10
2.入力データ数103゜出力データ数105.及び出
力データ格納部110については、説明を要しないであ
ろう。入力状況表示104はカウンタで、他の処理プロ
グラムからの出力データ数の個数のみを示している。Linkage pointer 101 and output data validity display 10
8 is used as a flag indicating the validity of the output data when the output data is selectively output. Identification information 10
2. Number of input data: 103° Number of output data: 105. and the output data storage section 110 need no explanation. The input status display 104 is a counter that shows only the number of output data from other processing programs.
但し1例外的に一番先に起動すべき入出力規定テーブル
は、必ず一番先に起動されるので、この入力状況°表示
の値は″1”に設定しである。入力データ種別106は
、1ビツトのフラグであって、当該入力データが予め知
られている固定データ(例えば定数)の場合はl OH
で、他のプログラムの出力データである場合は′1”と
なる。そして、前者の場合には、入力データ指示107
にそのデータ自体が予め書込まれており、後者の場合に
は、そのデータが読取られるべきアドレス(すなわち、
そのデータを生成する処理プログラムモジュールに対応
する入出力規定テーブルの領域110)が書込まれてい
る。出力通知先数109には、当該出力データを入力デ
ータとして必要とする処理プログラムモジュールの個数
が格納されており、そして、出力通知先表示111には
、前記出力通知先プログラムモジュールに対応する入出
力規定テーブルのアドレス、詳しくいえばその入力状況
表示104の対応のカウンタ位置が書込まれている。な
お、これらの情報は+ 101゜104.108,1
10を除きすべてプログラミングの段階で決定されてい
る固定情報である。However, as an exception, the input/output regulation table that should be activated first is always activated first, so the value of this input status display should be set to "1". The input data type 106 is a 1-bit flag, and if the input data is fixed data known in advance (for example, a constant), the input data type 106 is a 1-bit flag.
If it is the output data of another program, it will be '1'.In the former case, the input data instruction 107
in which the data itself has been written in advance, and in the latter case, the address from which the data is to be read (i.e.
An area 110) of the input/output regulation table corresponding to the processing program module that generates the data is written. The number of output notification destinations 109 stores the number of processing program modules that require the output data as input data, and the output notification destination display 111 stores the input/output information corresponding to the output notification destination program module. The address of the regulation table, more specifically, the corresponding counter position of the input status display 104 is written. In addition, this information is + 101°104.108,1
All but 10 are fixed information determined at the programming stage.
例として、第2図のデータ駆動型プログラムのための入
出力規定テーブルを第4rMに示す、なお。As an example, an input/output regulation table for the data-driven program of FIG. 2 is shown in FIG. 4rM.
第3のプログラムF、の出力データを入力データとして
使用されるプログラムは1図示されていないが、n個あ
るものとする。It is assumed that there are n programs (not shown) that use the output data of the third program F as input data.
起動待合せキュー50は1通常のFIF○メモリで一向
に差支えないが、本実施例は、キューの構成を簡単なも
のにするために入出力規定テーブルのリンケージポイン
タ(第3図101)によってキューのリンクを行なう、
第5図に示すように起動待合せキュ−50自体は、ヘッ
ドポインタ200とテールポインタ201のみを備えて
いるにすぎない。ヘッドポインタ200は、キューの先
頭にある入出力規定テーブル(TBLI)100−1の
アドレスを保持する。TBLIのリンケージポインタ1
01−1は、キューに並ぶ次位の入出力規定テーブル(
TBL2)のアドレスを保持し、以下同様して、キュー
の最後尾にある入出力規定テーブル(TBL3)のリン
ケージポインタ101−3はそれ以上のリンクがないこ
とを表示すべく ” OIIを保持する。そして、起動
待合せキュー50内のテールポインタ301は、この最
後尾にある入出力規定テーブル(TBL3)のアドレス
を保持する。キューからの取出し及び登録については、
公知の技術なので説明を要しないであろう。The startup waiting queue 50 can be a single ordinary FIF○ memory, but in this embodiment, in order to simplify the configuration of the queue, the queue is linked by the linkage pointer (101 in FIG. 3) of the input/output regulation table. do the
As shown in FIG. 5, the activation waiting queue 50 itself is only provided with a head pointer 200 and a tail pointer 201. The head pointer 200 holds the address of the input/output regulation table (TBLI) 100-1 at the head of the queue. TBLI linkage pointer 1
01-1 is the next input/output regulation table in the queue (
Similarly, the linkage pointer 101-3 of the input/output regulation table (TBL3) at the end of the queue holds "OII" to indicate that there are no more links. The tail pointer 301 in the activation waiting queue 50 holds the address of the last input/output regulation table (TBL3).For taking out and registering from the queue,
Since this is a well-known technique, no explanation is necessary.
次に、第4図の入出力規定テーブルに従って第2図のプ
ログラムを実行する場合における。第1図の制御装置の
動作を説明する。実行制御プログラム40は、まず、こ
れから実行すべき処理プログラムモジュール20に対応
する入出力規定テーブル30の入力状況表示104の初
期値が2以上のものだけに所定の初期値を設定する(シ
ステム立上げ時に、全入出力規定テーブルの入力状況表
示は# 1 ′1が初期値として設定されている。)(
第6図70)、この場合、F3TBLの入力状況表示に
l# 2 pgを初期値と設定する0次に予め一番先に
起動するよう定められたFITBLのアドレスを起動待
合せキュー50に登録する(71)、次いで、実行制御
プログラム40は、起動待合せキュー50のヘッドポイ
ンタ200を調べて(72)、その内容(この場合はF
LTBLのアドレス)を取出しく73)、それに基づい
て当該テーブルを参照することにより、そのプログラム
番号102から起動すべき処理プログラムがFlである
ことを知り、処理プログラムFlに制御を渡す(74)
、処理プログラムF1は、外部からの入力データをオペ
ランドして使用する際に、FITBLを参照して、その
入力データ数103が1で、入力データ種別106が0
であることがら、入力データが1個で、それは入力デー
タ指示部107に格納されたデータ自体であることを知
す、そこから ′A′ を読出して所定の演算を行な
い、その結果である C′ を、第1出力データ格納部
110すなわち○UTIIに格納し、出力データ有効性
表示108に1を設定する。処理プログラムが終了する
と、実行制御プログラム40に制御を戻す、そこで、実
行制御プログラム40は、今実行された処理プログラム
F1に対応する入出力規定テーブルFITBLを参照す
る。そして、その出力データ有効性表示108に1が設
定されている出力データに対応する出力通知先指示11
1に従って、F2TBL及びF3TBLの入 6力状況
表示104を読出す(75)、そして、入力状況表示1
04が1か否かの判定をしく76)、1であれば、それ
(この場合ではF2TBL)が起動待合せキュー50に
登録され(77)、1以外であれば、入力状況表示10
4(この場合F3TBL)を1だけ減算し、その値が更
新される(78)。以下同様にして、処理プログラムF
2およびF3が実行される。Next, there is a case where the program shown in FIG. 2 is executed according to the input/output regulation table shown in FIG. 4. The operation of the control device shown in FIG. 1 will be explained. The execution control program 40 first sets a predetermined initial value only for those whose initial value is 2 or more in the input status display 104 of the input/output regulation table 30 corresponding to the processing program module 20 to be executed (system startup). At times, the input status display of all input/output regulation tables is set to #1 '1 as the initial value.) (
70), in this case, set l# 2 pg as the initial value in the input status display of F3TBL.0 Next, register the address of FITBL, which is predetermined to be activated first, in the activation waiting queue 50. (71), Next, the execution control program 40 checks the head pointer 200 of the startup waiting queue 50 (72), and checks its contents (in this case, F
LTBL address) 73), and by referring to the table based on it, it learns that the processing program to be started from the program number 102 is Fl, and passes control to the processing program Fl (74).
, when the processing program F1 uses external input data as an operand, it refers to FITBL and determines that the number of input data 103 is 1 and the input data type 106 is 0.
Therefore, we know that there is only one piece of input data, and it is the data itself stored in the input data instruction section 107. 'A' is read from there, a predetermined operation is performed, and the result is C. ' is stored in the first output data storage unit 110, that is, UTII, and the output data validity indicator 108 is set to 1. When the processing program ends, control is returned to the execution control program 40, and the execution control program 40 refers to the input/output regulation table FITBL corresponding to the processing program F1 that has just been executed. Then, the output notification destination instruction 11 corresponds to the output data whose output data validity indicator 108 is set to 1.
1, read the input status display 104 of F2TBL and F3TBL (75), and read the input status display 1 of F2TBL and F3TBL (75).
04 is 1 or not (76), and if it is 1, it (F2TBL in this case) is registered in the activation waiting queue 50 (77), and if it is other than 1, the input status display 10 is registered.
4 (F3TBL in this case) is subtracted by 1 and the value is updated (78). Similarly, processing program F
2 and F3 are executed.
なお、実行制御プログラム40は、起動待合せキュー5
0に登録された入出力規定テーブルがなくなったことを
検出すると(72)、全処理が終了したと判断する。Note that the execution control program 40 is executed in the startup waiting queue 5.
When it is detected that there are no more input/output regulation tables registered as 0 (72), it is determined that all processing has been completed.
この制御方式によれば、データ駆動型プログラムが何度
も繰り返し実行し、かつ、入力状況表示の初期値が11
”である入出力規定テーブルが大部分を占める場合には
、実行制御プログラムの入力データが揃ったか否かの判
断処理時間や入出力状況表示の初期設定処理時間の増大
を防ぎ、処理能力低下を最小限にとどめることができる
。According to this control method, the data-driven program is executed repeatedly, and the initial value of the input status display is 11.
”, if the input/output regulation table occupies most of the input/output regulation table, it is possible to prevent an increase in the processing time for determining whether the input data of the execution control program is complete or for initializing the input/output status display, and to reduce the processing performance. can be kept to a minimum.
本発明によれば、従来の逐次実行型プロセッサを用いて
、処理能力低下に基因する種々のオーバヘッドを最小限
に抑え、実用性のあるデータ駆動制御を実現でき、プロ
グラム各部の入出力条件及び起動条件が明解で、しかも
、それらの実行順序がそれらの記述順序によらないとい
う、データ駆動制御の利点を実質上享受することができ
る。その結果、ソフトウェアの開発、保守などが容易に
なり、ソフトウェアの生産性、保守性の向上に寄与する
ところ大である。According to the present invention, by using a conventional sequential execution type processor, it is possible to minimize various overheads caused by a decrease in processing performance, realize practical data-driven control, and adjust the input/output conditions and startup of each part of the program. It is possible to substantially enjoy the advantages of data-driven control in that the conditions are clear and the order in which they are executed does not depend on the order in which they are written. As a result, software development and maintenance become easier, greatly contributing to improvements in software productivity and maintainability.
第1図は本発明による制御装置の一実施例のダイヤグラ
ム、第2図はデータ駆動型プログラムの一例のプログラ
ムチャート、第3図は入出力規定テーブルの構成図、第
4図は第2図に示されたプログラムにおける入出力規定
テーブルの相互関係図、第5図は起動待合せキューの模
式図、第6図は実行制御処理のフローチャートである。
10・・・逐次実行型プロセッサ、20・・・処理プロ
グラム、30・・・入出力規定テーブル、40・・・実
行制御プログラム、50・・・起動待合せキュー。
60・・・プロセッサバス
葛 / 図
躬3図
第4図
葛夕図Fig. 1 is a diagram of an embodiment of the control device according to the present invention, Fig. 2 is a program chart of an example of a data-driven program, Fig. 3 is a configuration diagram of an input/output regulation table, and Fig. 4 is similar to Fig. 2. FIG. 5 is a diagram showing the interrelationship of input/output regulation tables in the shown program, FIG. 5 is a schematic diagram of a startup waiting queue, and FIG. 6 is a flowchart of execution control processing. DESCRIPTION OF SYMBOLS 10... Sequential execution type processor, 20... Processing program, 30... Input/output regulation table, 40... Execution control program, 50... Start waiting queue. 60...Processor bus kudzu / Figure 3 Figure 4 Figure 4
Claims (1)
ル群とテーブル群とキューとを格納した記憶手段を備え
たデータ処理装置において、前記テーブルにより各処理
プログラムモジュール対応に入力データ入手先テーブル
と出力通知先テーブルを指示し、起動された処理プログ
ラムモジュールに対応するテーブルの前記指示に従って
入力データを入手させるとともに処理結果の出力データ
を同テーブルの所定位置に書込ませ、そして、前記処理
結果の出力データについて指示された通知先テーブル中
に対応する入力データが準備されたことを通知する表示
カウンタを設け、入力データが準備されるたびに該表示
カウンタの値をチェックし、該表示カウンタが2以上の
場合には、該表示カウンタを1減算し、該表示カウンタ
が1の場合には該表示カウンタを更新せず、所要入力デ
ータが全部準備されたと判断し、該テーブルを前記キュ
ーの末尾に登録し、同キュー内で待機中のテーブルを順
次取出して対応する処理プログラムモジュールを起動す
ることを特徴とする、データ駆動型制御方式。 2、特許請求の範囲第1項において、一番初めに処理プ
ログラムモジュールを起動する直前か、あるいはすべて
の処理プログラムモジュールの終了したときに、入力デ
ータ数が少なくとも2以上のテーブルの表示カウンタだ
けに所定の初期値を設定し、入力データ数が1の場合、
該表示カウンタの値をそのまま使用することを特徴とす
るデータ駆動型制御方式。[Scope of Claims] 1. In a data processing device equipped with a sequential execution type processor and a storage means storing a group of processing program modules, a group of tables, and a queue, an input data acquisition source table is created corresponding to each processing program module using the table. and an output notification destination table, and causes the activated processing program module to obtain input data according to the instructions of the table corresponding to the table, and to write the output data of the processing result to a predetermined position in the same table, and then A display counter is provided to notify that the corresponding input data has been prepared in the notification destination table specified for the output data of, and the value of the display counter is checked every time the input data is prepared. If it is 2 or more, the display counter is subtracted by 1, and if the display counter is 1, the display counter is not updated, it is determined that all the required input data has been prepared, and the table is placed at the end of the queue. A data-driven control method characterized by registering tables in a queue, sequentially fetching tables waiting in the same queue, and activating the corresponding processing program modules. 2. In claim 1, immediately before starting a processing program module for the first time, or when all processing program modules are finished, only the display counter of a table in which the number of input data is at least 2 or more is displayed. If the predetermined initial value is set and the number of input data is 1,
A data-driven control method characterized in that the value of the display counter is used as is.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24443284A JPH0715676B2 (en) | 1984-11-21 | 1984-11-21 | Data driven control method for data processing device |
EP85108647A EP0168054B1 (en) | 1984-07-11 | 1985-07-11 | Method and system for data driven information processing |
US07/753,852 US4901274A (en) | 1984-07-11 | 1985-07-11 | Method and system for data driven information processing |
DE8585108647T DE3584324D1 (en) | 1984-07-11 | 1985-07-11 | DATA FLOW-CONTROLLED INFORMATION PROCESSING PROCESS AND SYSTEM. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24443284A JPH0715676B2 (en) | 1984-11-21 | 1984-11-21 | Data driven control method for data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61123937A true JPS61123937A (en) | 1986-06-11 |
JPH0715676B2 JPH0715676B2 (en) | 1995-02-22 |
Family
ID=17118567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24443284A Expired - Lifetime JPH0715676B2 (en) | 1984-07-11 | 1984-11-21 | Data driven control method for data processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0715676B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5185873A (en) * | 1988-02-19 | 1993-02-09 | Hitachi, Ltd. | Control system with flag indicating two or less data inputs and counter indicating two or more controlling data driven execution method |
WO2007037215A1 (en) * | 2005-09-27 | 2007-04-05 | Sonac Incorporated | Data drive type processor simulator and program |
-
1984
- 1984-11-21 JP JP24443284A patent/JPH0715676B2/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5185873A (en) * | 1988-02-19 | 1993-02-09 | Hitachi, Ltd. | Control system with flag indicating two or less data inputs and counter indicating two or more controlling data driven execution method |
WO2007037215A1 (en) * | 2005-09-27 | 2007-04-05 | Sonac Incorporated | Data drive type processor simulator and program |
Also Published As
Publication number | Publication date |
---|---|
JPH0715676B2 (en) | 1995-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2644780B2 (en) | Parallel computer with processing request function | |
JPH08505965A (en) | Context switching device and method | |
JPS61107434A (en) | Data processor | |
JPH05250305A (en) | Data transfer control system | |
JPH07120338B2 (en) | Method for a data processor to coordinate the execution of instructions by a coprocessor and the data processor | |
JPS62115542A (en) | Information processor | |
JP2690406B2 (en) | Processor and data processing system | |
US7155718B1 (en) | Method and apparatus to suspend and resume on next instruction for a microcontroller | |
JPS61123937A (en) | Data drive type control system | |
JPH11110214A (en) | Command control system and method for the same | |
JPH09212360A (en) | Data processor | |
JPH0754467B2 (en) | Data processing device | |
JPH07219766A (en) | Arithmetic processor | |
JPS6230455B2 (en) | ||
JP2824484B2 (en) | Pipeline processing computer | |
JPS59163671A (en) | Vector processor | |
JPH0282318A (en) | Floating-point arithmetic unit | |
JPS6352240A (en) | Data processor | |
JPH06266630A (en) | Input/output controller with trace function | |
JPS6123239A (en) | Method and device for control of data processor | |
JPS60193046A (en) | Detecting system for instruction exception | |
JPH05298092A (en) | Information processor | |
JPH06301633A (en) | Data transferring device | |
JPS5942331B2 (en) | Prosetsusasouchinoseigiohoshiki | |
JPH07295885A (en) | Data processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |