JPH01211123A - Data driving type control method - Google Patents
Data driving type control methodInfo
- Publication number
- JPH01211123A JPH01211123A JP3652688A JP3652688A JPH01211123A JP H01211123 A JPH01211123 A JP H01211123A JP 3652688 A JP3652688 A JP 3652688A JP 3652688 A JP3652688 A JP 3652688A JP H01211123 A JPH01211123 A JP H01211123A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- input data
- execution
- 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.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
Abstract
Description
【発明の詳細な説明】
(産業上の利用分野〕
本発明は、データ駆動型制御方法に関し、特に命令の初
期設定時間を短縮してシステム立ち上げ時間を最短にし
、かつ命令実行に必要なデータ数が1個である命令が多
いプログラムの実行性能を向上させることができるデー
タ・フロー・マシンの命令制御方法に関するものである
。DETAILED DESCRIPTION OF THE INVENTION (Industrial Application Field) The present invention relates to a data-driven control method, and in particular to a data-driven control method that shortens the initial setting time of instructions to minimize the system start-up time, and also provides information on The present invention relates to an instruction control method for a data flow machine that can improve the execution performance of a program having many instructions with one instruction.
ソフトウェアの生産性を向上させる言語として、関数型
言語がある。この関数型言語では、関数の値が入力値に
よって一意的に定まるので、他への副作用がなく、かつ
他から影響を受けることがないため、関数の実行は互い
に独立となり、並列処理が可能となる。このような関数
型言語の実行マシンとしては、データ・フロー・マシン
が適している。データ・フロー・マシンを駆動させるデ
ータ駆動の実行原理は、1つの演算ごとに、その必要な
オペランドが揃ったときに、いつでもその演算が実行可
能となることである。Functional languages are languages that improve software productivity. In this functional language, the value of a function is uniquely determined by the input value, so it has no side effects on others and is not influenced by others, so the execution of functions is independent of each other and parallel processing is possible. Become. A data flow machine is suitable as an execution machine for such a functional language. The data-driven execution principle that drives the data flow machine is that an operation can be executed whenever its required operands are available.
データ・フロー・マシンの演算では、例えば第2図に示
すように、長方形ブロック1の中に演算名が記載された
ノード(データ読み出し、コード変換、加算2等)に対
して、オペランド(データアドレス、データ、コード変
換されたデータ、等)が入力され、演算結果としてそれ
らの出力が与えられる。これらのノードへの入力と出力
は、矢印付きの線で表わして、これらの線をアークと呼
び、線上のデータをトークンと呼ぶ。In data flow machine operations, for example, as shown in Figure 2, operands (data addresses) are assigned to nodes whose operation names are written in rectangular block 1 (data read, code conversion, addition 2, etc.). , data, code-converted data, etc.) are input, and their outputs are given as the calculation results. Inputs and outputs to these nodes are represented by lines with arrows, these lines are called arcs, and the data on the lines are called tokens.
例えば、いま左側の入力アークにXというトークンが到
着したとき、Xだけでは加算が実行できないため、又は
入力アーク上で待機する。次に、右側の入力アークにト
ークンyが到着すると、演算は直ちに実行され、その結
果として、x+yという値を持つトークンが出力アーク
に与えられる。For example, when a token X arrives at the input arc on the left side, addition cannot be performed with X alone, or it waits on the input arc. Then, when the token y arrives at the right input arc, the operation is immediately performed, resulting in a token with the value x+y being given to the output arc.
これと同じようにして、x”−2x+1等の関数式も計
算することができる。Functional expressions such as x''-2x+1 can also be calculated in the same way.
ところで、従来のデータ駆動型制御方法におし)ては、
例えば、特開昭61−123937号公報に記載されて
いるように、命令実行の際に書き換えが必要なデータと
、書き換え不要なデータとが、同一のテーブル上に収容
され、しかも各命令の到着した入力データ数は書き換え
可能なカウンタにより表現されていた。すなわち、上記
公報に記載されたデータ駆動型制御方式では、各処理プ
ログラム・モジュールに対応してテーブルを記憶装置内
に用意し、ここにその処理プログラム・モジュールのた
めの入出力データ入手先テーブル指示部と、入力データ
準備状況表示部と、出力通知先テーブル指示部と、出力
データ格納部とを設ける。By the way, in the conventional data-driven control method,
For example, as described in Japanese Patent Application Laid-Open No. 61-123937, data that needs to be rewritten when an instruction is executed and data that does not need to be rewritten are stored in the same table, and when each instruction arrives, The number of input data was expressed by a rewritable counter. In other words, in the data-driven control method described in the above publication, a table is prepared in the storage device corresponding to each processing program module, and this table specifies the input/output data source table for that processing program module. An input data preparation status display section, an output notification destination table instruction section, and an output data storage section are provided.
各プログラム・モジュールは、起動されると、対応する
テーブルを参照して、そこに指示された入手先テーブル
から入力データを読み出し、逐次実行形式で処理した後
、テーブルの所定の格納部に書き込む。次に、再度テー
ブルを参照して、処理結果の出力データについて、出力
通知先テーブルの入力データ準備状況表示部(カウンタ
)に、対応する入力データが準備されてことを表示する
。When each program module is started, it refers to the corresponding table, reads input data from the specified source table, processes it in a sequential execution format, and then writes it to a predetermined storage section of the table. Next, referring to the table again, for the output data of the processing result, the input data preparation status display section (counter) of the output notification destination table displays that the corresponding input data is prepared.
上記カウンタには、他のプログラム・モジュールからの
出力データのみの個数を初期値としてセットする。実行
制御プログラムは、入力データが揃う度にこのカウンタ
の値をチエツクし、カウンタの値が2以上であれば、そ
の値を1だけ減算し、またカウンタの値が1であれば、
所定の入力データが全部揃ったことを判断し、そのデー
タが揃ったテーブルをキューの末尾に登録する。従って
、上記方式では、カウンタの初期値が1であるプログラ
ムが多数ある場合には、予め、カウンタが2以上のテー
ブルだけの初期値をセットすればよく、カウンタが1の
ものは、初期設定を行う必要がないため、初期設定処理
の処理量の増大を抑制することができる。しかし、前述
のように、上記方式では、書き換え可能なカウンタを用
いているため、内容が破壊されるおそれがあり、また1
の値も2以上の値とともに同一のテーブルに格納されて
いるため、1の値も参照する必要がある。The counter is set with the number of output data only from other program modules as an initial value. The execution control program checks the value of this counter every time the input data is complete, and if the value of the counter is 2 or more, it subtracts the value by 1, and if the value of the counter is 1,
It determines that all predetermined input data has been collected, and registers the table containing the data at the end of the queue. Therefore, in the above method, if there are many programs in which the initial value of the counter is 1, it is only necessary to set the initial value in advance for tables with a counter of 2 or more, and for those with a counter of 1, the initial setting is Since it is not necessary to perform this process, it is possible to suppress an increase in the amount of processing of the initial setting process. However, as mentioned above, since the above method uses a rewritable counter, there is a risk that the contents may be destroyed.
Since the value of is also stored in the same table along with values of 2 or more, it is necessary to refer to the value of 1 as well.
前述のように、従来の技術においては、RAMのテーブ
ルを用いているため、プログラムの暴走によるデータの
破壊に対して弱いという問題がある。そこで、書き換え
の不要なデータを読み出し専用メモリ(ROM)に、書
き換えが必要なデータをランダムアクセスメモリ(RA
M)に、それぞれ分割して収容する方法が考えられる
。しかし、単純にデータを分割して収容しただけでは、
両方の関連がとれない。従って、上記ROMとRAMと
のリンケージをとるためには、ROM内にRAMに収容
されたデータのアドレスを記憶しておく必要がある。R
OM内にRAMのデータ・アドレスを記憶しておけば、
両方の関連がとれるが、RAM内に収容されたカウンタ
をアクセスするため、−度ROMをアクセスして、RA
Mのアドレスを抽出してから、そのアドレスを用いてR
AMをアクセスする必要があり、処理量を招く結果とな
る。As mentioned above, since the conventional technology uses a RAM table, there is a problem in that it is vulnerable to data destruction due to program runaway. Therefore, data that does not need to be rewritten is stored in read-only memory (ROM), and data that needs to be rewritten is stored in random access memory (RA).
M) may be divided and accommodated. However, simply dividing and accommodating data is not enough.
I can't find a connection between the two. Therefore, in order to establish a linkage between the ROM and RAM, it is necessary to store in the ROM the address of the data stored in the RAM. R
If you store the RAM data address in OM,
Both are related, but in order to access the counter stored in the RAM, the ROM is accessed and the RAM is
Extract the address of M, then use that address to
It is necessary to access AM, resulting in an increased amount of processing.
次に、カウンタの初期設定については、従来。Next, regarding the initial setting of the counter, use the conventional method.
前述のように、プログラムのローディング時に行ってい
たが、全ての命令について、所定の値に初期設定しなけ
ればならないので、命令数が多くなればなるほど初期設
定時間がかかる。As mentioned above, all instructions must be initialized to predetermined values, which is done when loading the program, so the larger the number of instructions, the longer the initialization time will be.
このように、RAMに格納されたテーブル内容の破壊を
防止すること、およびカウンタの初期設定時間を短縮す
ることの2つの課題が生じている。As described above, two problems have arisen: preventing destruction of the table contents stored in the RAM and shortening the initial setting time of the counter.
本発明の目的は、これらの課題を解決し、カウンタの初
期設定時間を短縮するとともに、登録テーブルの内容の
破壊を防止し、かつデータ駆動型制御におけるオーバヘ
ッドに基因する処理能力の低下を最小に抑えることが可
能なデータ駆動制御方法を提供することにある。The purpose of the present invention is to solve these problems, shorten the initial setting time of the counter, prevent the contents of the registration table from being destroyed, and minimize the decline in processing performance due to overhead in data-driven control. An object of the present invention is to provide a data-driven control method that can reduce the amount of data driven.
上記目的を達成するため1本発明のデータ駆動制御方法
は、各命令対応に、入力データ入手先と該入力データを
用いた演算結果の出力通知先と該入力データが準備され
たことを示す入力データ数カウンタとを格納した記憶手
段を有するデータ駆動型制御方法において、該記憶手段
に、各命令の実行に必要な入力データ数が1あるいは2
以上であることを指示するフラグと、入力データ数が2
以上の入力データ数カウンタと、該カウンタの初期値を
設定するためのテーブルとを格納しておき、データ駆動
に基づいて実行される命令に順次上記入力データ入手先
からデータを取り出した後、該命令対応の上記フラグの
内容を判定して、該内容が入力データ数1のときには該
命令は実行可能であり、また入力データ数2以上のとき
には、入力データ数カウンタを1だけ減算して、減算結
果がOのとき実行可能であり、減算結果が1以上のとき
入力データ未到着と判断し、入力データの揃った命令か
ら演算を実行し、演算結果を出力通知先に通知すること
に特徴がある。In order to achieve the above object, 1 the data-driven control method of the present invention provides, for each command, an input data source, an output notification destination of the calculation result using the input data, and an input indicating that the input data has been prepared. In a data-driven control method having a storage means storing a data number counter, the number of input data required for execution of each instruction is stored in the storage means as 1 or 2.
A flag indicating that the number of input data is 2 or more and a flag indicating that the number of input data is 2 or more.
The above-mentioned input data number counter and a table for setting the initial value of the counter are stored, and the data is sequentially retrieved from the input data source for the instructions executed based on the data drive. The content of the flag corresponding to the instruction is determined, and if the content is the number of input data 1, the instruction is executable, and if the number of input data is 2 or more, the number of input data counter is decremented by 1, and the subtraction is performed. The feature is that it can be executed when the result is O, and when the subtraction result is 1 or more, it is determined that the input data has not arrived, and the operation is executed from the instruction for which the input data is complete, and the operation result is notified to the output notification destination. be.
(作 用〕
本発明においては、データ駆動により実行される命令語
に、その命令の実行に必要な入力データ数が1であるか
、あるいは2以上であるかを識別するためのフラグを設
け、実行に必要な入力データ数が2以上の命令のアドレ
スと、その命令のカウンタの初期値を、テーブルに記憶
する。すなわち、データ駆動に基づいて実行される命令
に、1つの入力データが到着すると、先ず命令内のフラ
グを評価して、命令実行に必要な入力データ数が1であ
ればその命令は実行可能と判断する。また。(Function) In the present invention, a flag to identify whether the number of input data required to execute the instruction is 1 or 2 or more is provided in the instruction word executed by data-driven, The address of an instruction that requires two or more input data for execution and the initial value of the counter for that instruction are stored in a table.In other words, when one input data arrives at an instruction that is executed based on data drive, First, the flag in the instruction is evaluated, and if the number of input data required to execute the instruction is 1, the instruction is determined to be executable.
入力データ数が2以上であれば、入力データ到着数を示
すカウンタを1だけ減算し、減算の結果の値が0であれ
ば実行可能と判断する。減算した結果の値が1以上であ
れば、命令実行に必要な入力データはまだ揃ってないと
判断する。入力データ数が1であるか、あるいは2以上
であるかの決定は、コンパイル時に判別できる。従って
、実行に必要な入力データが2以上のものだけを判定処
理すればよいため、性能を向上させることができる。If the number of input data is 2 or more, the counter indicating the number of input data arrivals is subtracted by 1, and if the value of the subtraction result is 0, it is determined that execution is possible. If the value of the subtraction result is 1 or more, it is determined that the input data necessary for executing the instruction is not yet available. Whether the number of input data is 1 or 2 or more can be determined at the time of compilation. Therefore, it is only necessary to perform judgment processing on input data necessary for execution of two or more, so that performance can be improved.
また、フラグの値は実行時に書き換える必要がないため
、ROMに格納することができ、プログラムの破壊から
防止できる。また、カウンタの初期設定は、ローディン
グ時でなく、実行の直前に行えばよいため、システムの
立ち上げ時間を短縮することができる。また、障害から
の復旧処理時には、命令内のカウンタの初期設定処理を
スキップすることが可能となる。Further, since the value of the flag does not need to be rewritten during execution, it can be stored in the ROM, and the program can be prevented from being destroyed. Further, since the initial setting of the counter can be performed immediately before execution rather than at the time of loading, the system start-up time can be shortened. Further, when recovering from a failure, it is possible to skip the initial setting process of the counter in the instruction.
以下、本発明の実施例を5図面により詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to five drawings.
第2図は、本発明において適用されるデータグラフの記
述例を示す図である。FIG. 2 is a diagram showing a description example of a data graph applied in the present invention.
前述のように、第2図におけるノード1はデータ駆動で
実行される演算命令を表わしており、アーク2は命令間
で授受されるデータの流路を表わしている。そして、命
令はデータ駆動に基づいて実行されるので、命令の実行
に必要な入力データの全てが揃った時点で始めて演算が
実行される。As mentioned above, node 1 in FIG. 2 represents an arithmetic instruction executed by data drive, and arc 2 represents a flow path of data exchanged between instructions. Since the instruction is executed based on data drive, the operation is executed only when all the input data necessary for executing the instruction is collected.
第2図では、入力データで指示されたアドレスからデー
タを読み出す命令と、入力データのコードを変換する命
令と、2つの入力データを加算する命令とから構成され
る。演算の順序は、先ず2つの入力データで指定された
データアドレスからデータを読み出した後、一方で読み
出されたデータをコード変換し、その変換結果と他方で
読み出されたデータを加算することにより、結果が出力
される。In FIG. 2, it is composed of an instruction to read data from an address specified by input data, an instruction to convert the code of input data, and an instruction to add two pieces of input data. The order of operations is to first read data from the data address specified by the two input data, then code convert the data read from one, and add the conversion result to the data read from the other. will output the result.
第3図は、本発明が適用される電子交換機のブロック構
成図である。ここでは、本発明を適用したデータ・フロ
ー・グラフ表現の電子交換機プログラムが実行される。FIG. 3 is a block diagram of an electronic exchange to which the present invention is applied. Here, an electronic exchange program expressing a data flow graph to which the present invention is applied is executed.
また、第3図では、ノイマン型プロセッサ3も用いられ
る。Further, in FIG. 3, a Neumann type processor 3 is also used.
第3図の電子交換機では、通常のプログラム・カウンタ
制御によるノイマン型プロセッサ3と、記憶保護機能を
有するメモリ4と、空間分割型または時分割型の通話路
5とが、プロセッサ・バス6を介して接続されており、
かつその通話路5には、電話機7およびトランク8が収
容されている。In the electronic exchange shown in FIG. 3, a von Neumann processor 3 under normal program counter control, a memory 4 having a memory protection function, and a space-division or time-division communication path 5 are connected via a processor bus 6. is connected to
A telephone 7 and a trunk 8 are accommodated in the communication path 5.
これらの電話機7とトランク8は複数個が通話路5に収
容されているが、ここではそのうちの1個ずつが示され
ている。A plurality of these telephones 7 and trunks 8 are accommodated in the communication path 5, and only one of them is shown here.
通話路5を介して電話機7とトランク8を接続する電子
交換機プログラムは、第2図に示すようなデータ・フロ
ー・グラフで表現され、プログラム自体はメモリ4に格
納されている。プロセッサ3は、電話機7またはトラン
ク8からの交換接続要求に対して、メモリ4に格納され
ている所定の ′電子交換機プログラムを選択し、その
プログラムをデータ駆動に基づいて実行制御することに
より、通話路5を介して電話機7またはトランク8等の
端末間の接続を行う。The electronic exchange program for connecting the telephone 7 and the trunk 8 via the communication path 5 is represented by a data flow graph as shown in FIG. 2, and the program itself is stored in the memory 4. The processor 3 selects a predetermined electronic exchange program stored in the memory 4 in response to an exchange connection request from the telephone 7 or the trunk 8, and controls the execution of the program based on data drive. A connection between terminals such as a telephone 7 or a trunk 8 is established via the line 5.
第1図は、本発明の一実施例を示すデータ駆動型制御方
法の機能ブロック図であって、第3図の電子交換機プロ
グラムを構成する機能部の結合を示している。FIG. 1 is a functional block diagram of a data-driven control method according to an embodiment of the present invention, and shows the combination of functional units constituting the electronic exchange program of FIG. 3.
第1図において、10は電話機7およびトランク8から
の交換接続要求を分析して、所定の交換接続動作を決定
する交換接続要求解析部、11はデータ・フロー・グラ
フで表現されたプログラムの命令実行を待ち合わせる待
ちキュー、12はデータ・フロー・グラフで表現された
プログラム命令を、データ駆動で実行するデータ駆動命
令実行制御部、13は命令の名称に対応する演算を行う
ための演算命令処理部、14は交換接続動作をデータフ
ローで記述したプログラムの接続処理部。In FIG. 1, 10 is a switching connection request analysis unit that analyzes switching connection requests from a telephone 7 and a trunk 8 to determine a predetermined switching connection operation, and 11 is a program instruction expressed in a data flow graph. A waiting queue for waiting for execution, 12 a data-driven instruction execution control unit that data-driven executes program instructions expressed in a data flow graph, and 13 an arithmetic instruction processing unit that performs an operation corresponding to the name of the instruction. , 14 is a connection processing section of a program in which exchange connection operations are described in data flow.
15は命令の実行に必要な入力データ数が2以上の命令
のアドレスとカウンタの初期値を設定するための初期設
定テーブルである。Reference numeral 15 denotes an initial setting table for setting addresses and counter initial values for instructions in which the number of input data required for execution of the instruction is two or more.
第4図は、第1図で実行されるデータ駆動命令の一構成
例を示す図であり、第5図は、第1図におけるデータ駆
動命令実行制御部の動作フローチャートである。FIG. 4 is a diagram showing a configuration example of a data driven instruction executed in FIG. 1, and FIG. 5 is an operation flowchart of the data driven instruction execution control section in FIG. 1.
第4図は、第1図の接続処理部14に規定された接続処
理1〜mのうちの1つに該当する命令IA。FIG. 4 shows an instruction IA corresponding to one of the connection processes 1 to m defined in the connection processing unit 14 of FIG.
IB、IC,LDの接続例を示しており、1つの命令は
8個のエリア20〜27から構成される。A connection example of IB, IC, and LD is shown, and one instruction is composed of eight areas 20 to 27.
そして、第4図に示すLA、IB、iC,LDの関係は
第2図に示したデータ・フロー・グラフと等価であって
、第2図のノードIA〜IDは第4図の各ノードIA〜
IDに該当する6矢印はいずれもアークであり、21の
エリア内に演算名が書き込まれている。すなわち、命令
IA、ICがデータ読み出し、命令IBがコード変換、
命令IDが加算の各命令である。なお、ノードIAの命
令を構成する各エリアにだけ記号が付けられているが、
他のノードIB、IC,IDを構成する各エリアも、演
算命令コードの内容を記入したエリア21のみが異なる
だけで、それ以外のエリアはAと全く同じであるため、
記号を省略している。The relationship between LA, IB, iC, and LD shown in FIG. 4 is equivalent to the data flow graph shown in FIG. 2, and the nodes IA to ID in FIG. ~
All six arrows corresponding to the ID are arcs, and the operation name is written in area 21. That is, instruction IA and IC read data, instruction IB code conversion,
The instruction ID is each instruction of addition. Note that symbols are attached only to each area that constitutes the instructions of node IA,
The areas that make up the other nodes IB, IC, and ID differ only in the area 21 where the contents of the operation instruction code are written, and the other areas are exactly the same as A.
Symbols are omitted.
第4図において、20は命令実行時に書き換えられるエ
リアのヘッダを示すランダムアクセスメモリアドレス、
21は命令の処理を規定する演算命令コード、22は命
令実行に必要な入力データ数が1あるいは2以上である
ことを示すフラグ、23は入力データの入手先を指示す
る入力データ入手先アドレス、24は出力が与えられた
ことを次命令に伝達するための出力通知先アドレス、2
5は実行可能状態の命令を待ちキュー11に登録するた
めのリンケージポインタ、26は命令の実行に必要な入
力データの到着状況を示すカウンタ、27は演算結果を
格納する出力データ格納エリアである。In FIG. 4, 20 is a random access memory address indicating the header of an area that is rewritten when an instruction is executed;
21 is an arithmetic instruction code that specifies the processing of the instruction; 22 is a flag indicating that the number of input data required to execute the instruction is 1 or 2 or more; 23 is an input data source address that indicates where to obtain the input data; 24 is an output notification destination address for transmitting to the next instruction that the output has been given, 2
5 is a linkage pointer for registering executable instructions in the waiting queue 11; 26 is a counter indicating the arrival status of input data necessary for executing the instruction; and 27 is an output data storage area for storing calculation results.
1つの接続処理を構成する各ノードごとに、上記命令が
メモリ4上に確保される。The above-mentioned instructions are secured in the memory 4 for each node constituting one connection process.
ランダムアクセスメモリアドレス20、演算命令コード
21、フラグ22、入力データ入手先アドレス23、お
よび出力通知先アドレス24は、いずれもプログラム・
コンパイル時に決定される。Random access memory address 20, operation instruction code 21, flag 22, input data source address 23, and output notification destination address 24 are all programmed.
Determined at compile time.
しかも1.これらは、プログラム実行時に書き換えられ
ることがないため、プログラムをメモリ4にローディン
グ終了した後、記憶内容を保護するためのメモリプロテ
クトを施こすことができる。Moreover, 1. Since these are not rewritten during program execution, after the program has been loaded into the memory 4, memory protection can be applied to protect the stored contents.
一方、リンケージポインタ25、カウンタ26、および
出力データ格納エリア27は、命令実行時に書き換えら
れるために、ランダムアクセスメモリ領域に格納される
。これによって、大部分のエリア内容を保護することが
できるので、プログラムが暴走しても、命令の破壊を防
止でき、信頼性を向上できる。On the other hand, the linkage pointer 25, counter 26, and output data storage area 27 are stored in a random access memory area because they are rewritten when an instruction is executed. As a result, most area contents can be protected, so even if the program runs out of control, instructions can be prevented from being destroyed and reliability can be improved.
次に、カウンタ26の初期設定の方法について詳述する
。Next, a method for initializing the counter 26 will be described in detail.
命令の実行に必要な入力データ数が1の場合には、前述
のように、プログラムコンパイル時にフラグ22で表示
されているため、プログラムがローディングされてしま
えば、入力データ数が1である命令のカウンタ26の初
期設定は不要となる。If the number of input data required to execute an instruction is 1, this is indicated by flag 22 when compiling the program, as described above, so once the program is loaded, the number of input data required for executing an instruction is 1. Initial setting of the counter 26 becomes unnecessary.
また、命令実行に必要な入力データ数が2以上の命令の
カウンタ26の初期設定は、プログラム実行の直前に、
その実行プログラムに対応する初期設定テーブル15に
従って指示される命令アドレスと初期値を設定すること
により行われる。これによって、従来はプログラムロー
ディング時に行われていたカウンタ26の初期設定処理
は不要となるため、プログラムの初期設定時間を短縮す
ることが可能となる。In addition, the initial setting of the counter 26 for instructions for which the number of input data required for instruction execution is 2 or more is made immediately before program execution.
This is done by setting the specified instruction address and initial value according to the initial setting table 15 corresponding to the execution program. This eliminates the need for the initial setting process for the counter 26, which was conventionally performed at the time of program loading, thereby making it possible to shorten the initial setting time for the program.
次に、第5図により、第1図の機能ブロックおよび第4
図のメモリエリアの動作を詳述する。第1図における矢
印の番号は、処理を移す順序を示している。Next, according to FIG. 5, the functional blocks of FIG. 1 and the fourth
The operation of the memory area shown in the figure will be explained in detail. The arrow numbers in FIG. 1 indicate the order in which the processes are transferred.
先ず、第1図および第3図において、電話機7およびト
ランク8等の端末から接続要求が電子交換機に到着する
と、交換接続要求解析部10はこの接続要求を解析し、
実行すべき接続処理の1つを、接続処理部14の接続処
理1〜mのうちから選択し決定した後(矢印(1))、
その接続処理の先頭にある命令アドレスを待ちキュー1
1に登録する(矢印(2))。そして、登録した接続処
理の名称をデータ駆動命令実行制御部12に引き継いで
、データ駆動命令実行制御部12を起動する(矢印(3
))。起動を受けたデータ駆動命令実行制御部12は、
第5図の動作フローに従って、動作する。First, in FIGS. 1 and 3, when a connection request arrives at the electronic exchange from a terminal such as a telephone 7 and a trunk 8, the exchange connection request analysis section 10 analyzes this connection request,
After selecting and determining one of the connection processes to be executed from connection processes 1 to m of the connection processing unit 14 (arrow (1)),
Waiting queue 1 for the instruction address at the beginning of the connection process
1 (arrow (2)). Then, the data-driven instruction execution control unit 12 takes over the name of the registered connection process and starts the data-driven instruction execution control unit 12 (arrow (3)
)). The data-driven instruction execution control unit 12 that has received the activation,
It operates according to the operation flow shown in FIG.
先ず、引き継いだ接続処理の名称に対応する初期設定テ
ーブル15を索引し、命令実行に必要な入力データ数が
2以上の全ての命令カウンタ26を初期設定する(ステ
ップ31)(第1図の矢印(4))。そして、待ちキュ
ー11が空きでなければ(ステップ32)、待ちキュー
11から交換接続要求解析部10が登録した接続処理の
先頭の命令アドレスを抽出して、これを記憶した後(矢
印(5))、待ちキュー11からその命令を取り外しく
ステップ33)(矢印(6))、命令内の演算命令コー
ド21で定まる演算命令処理部13を決定して。First, the initial setting table 15 corresponding to the name of the inherited connection process is indexed, and all instruction counters 26 whose number of input data required for executing an instruction is 2 or more are initialized (step 31) (as shown by the arrow in FIG. 1). (4)). Then, if the waiting queue 11 is not empty (step 32), the first instruction address of the connection process registered by the exchange connection request analysis unit 10 is extracted from the waiting queue 11 and stored (arrow (5) ), step 33) of removing the instruction from the waiting queue 11 (arrow (6)), determining the arithmetic instruction processing unit 13 determined by the arithmetic instruction code 21 in the instruction.
その命令アドレスを演算命令処理部13に引き継いだ後
(矢印(7))、その演算命令処理部13を起動する(
ステップ34)。起動された演算命令処理部13は、そ
の命令アドレスで指示される命令内の入力データ入手先
アドレス23から入力データを入手した後、その入力デ
ータを用いて所定の演算を行い、演算結果をその命令の
ランダムアクセスメモリアドレス20でリンクされる出
力データ格納エリア27に格納する(ステップ35)(
矢印(8))。そして、制御をデータ駆動命令実行制御
部12に戻す(矢印(9))。After passing the instruction address to the arithmetic instruction processing unit 13 (arrow (7)), the arithmetic instruction processing unit 13 is activated (
Step 34). The activated arithmetic instruction processing unit 13 obtains input data from the input data source address 23 in the instruction specified by the instruction address, performs a predetermined operation using the input data, and stores the result of the operation. Store in the output data storage area 27 linked by the random access memory address 20 of the instruction (step 35) (
arrow (8)). Control is then returned to the data-driven instruction execution control unit 12 (arrow (9)).
次に、データ駆動命令実行制御部12は、記憶していた
命令に基づいて、出力通知先アドレス24を求め、出力
データすなわち次命令の入力データが準備されたことを
通知する(矢印(10))。Next, the data-driven instruction execution control unit 12 determines the output notification destination address 24 based on the stored instruction, and notifies that the output data, that is, the input data of the next instruction is prepared (arrow (10) ).
この通知は、以下のようにして行われる。先ず、出力通
知先アドレス24で指示される次命令のフラグ22を抽
出しくステップ36)、次命令のフラグ22が例えば1
であれば(ステップ37)、命令実行に必要な入力デー
タ数が1で、しかも実行可能であると判断し、次命令の
ランダムアクセスメモリアドレス20で指示されるリン
ケージポインタ25を用いて、その命令のアドレスを待
ちキュー11に登録する(ステップ40)(矢印(11
))。This notification is performed as follows. First, the flag 22 of the next instruction specified by the output notification destination address 24 is extracted (step 36), and if the flag 22 of the next instruction is, for example, 1.
If so (step 37), it is determined that the number of input data required to execute the instruction is 1 and that it is executable, and the linkage pointer 25 indicated by the random access memory address 20 of the next instruction is used to execute that instruction. register the address in the waiting queue 11 (step 40) (arrow (11)
)).
また、もし次命令のフラグ22が0であれば、命令実行
に必要な入力データ数が2以上であるため、ランダムア
クセスメモリアドレス20で指示されるカウンタ26を
−1しくステップ38)、もしカウンタ26が0であれ
ば、その命令が実行可能であると判断して、前述のよう
にその命令アドレスを待ちキュー11に登録する(ステ
ップ40)(第1図の矢印(11))。また、カウンタ
26が0でなければ、何もしない6さらに、出力通知先
アドレス24が複数存在すれば、前述の処理を出力通知
先アドレス数分だけ繰り返す(ステップ36〜ステツプ
41)。そして、全ての出力通知先アドレス24への出
力データの通知が終了すると、待ちキュー11に実行す
べき命令アドレスが登録されているか否かの判定処理(
ステップ32)に戻る。Also, if the flag 22 of the next instruction is 0, the number of input data required to execute the instruction is 2 or more, so the counter 26 specified by the random access memory address 20 is decremented by 1 (step 38). If 26 is 0, it is determined that the instruction is executable, and the instruction address is registered in the waiting queue 11 as described above (step 40) (arrow (11) in FIG. 1). Furthermore, if the counter 26 is not 0, nothing is done.6Furthermore, if there are a plurality of output notification destination addresses 24, the above-mentioned process is repeated for the number of output notification destination addresses (steps 36 to 41). Then, when the notification of output data to all output notification destination addresses 24 is completed, a determination process (
Return to step 32).
命令アドレスが登録されていれば、前記命令実行処理(
ステップ33〜ステツプ35)を繰り返す。If the instruction address is registered, the instruction execution process (
Repeat steps 33 to 35).
一方、待ちキュー11に登録されている命令アドレスが
なければ(ステップ32)、実行すべき命令がないもの
と判断して、データ駆動命令実行制御部12は交換接続
要求解析部10に制御を戻しく矢印(12))、その接
続処理を終了する。On the other hand, if there is no instruction address registered in the waiting queue 11 (step 32), it is determined that there is no instruction to be executed, and the data-driven instruction execution control unit 12 returns control to the exchange connection request analysis unit 10. arrow (12)), the connection process ends.
このように1本実施例においては、命令実行に必要な入
力データの到着を示すカウンタの初期設定を、プログラ
ムローディング時に行う必要がなく、プログラム実行時
に行えばよいので、システムの立ち上げ時間を短縮する
ことが可能であり。In this way, in this embodiment, there is no need to initialize the counter that indicates the arrival of input data necessary for command execution when loading the program, and it can be done when executing the program, reducing system startup time. It is possible.
また再開処理の時も短縮することが可能である。It is also possible to shorten the time required for restart processing.
以上説明したように1本発明によれば、命令の実行に必
要な入力データ数が1か、2以上かを示すフラグを設け
て、入力データ数が1である命令の判定処理を効率的に
行うことができるので、命令実行の性能を向上させるこ
とが可能であり、特に命令実行に必要な入力データ数が
1である命令を多く含むプログラムにおいて、非常に有
効である。また、上記フラグの値は、プログラム実行時
に書き換えられることがないため、読み出し専用メモリ
に格納でき、従ってプログラムの破壊から防止すること
が可能である。As explained above, according to the present invention, a flag is provided to indicate whether the number of input data required for execution of an instruction is 1 or 2 or more, and the determination process for an instruction where the number of input data is 1 can be efficiently performed. This makes it possible to improve the performance of instruction execution, and is particularly effective in programs that include many instructions in which the number of input data required for instruction execution is one. Further, since the value of the flag is not rewritten during program execution, it can be stored in a read-only memory, and therefore the program can be prevented from being destroyed.
第1図は本発明の一実施例を示すデータ駆動型制御方法
の機能ブロック図、第2図は従来のデータフローグラフ
の説明図、第3図は本発明のデータフローグラフを適用
する電子交換機のブロック構成図、第4図は本発明の一
実施例を示すデータ駆動命令を記憶するメモリエリアの
結合図、第5図は第1図におけるデータ駆動命令実行制
御部の動作フローチャートである。
LA、IB、IC,ID:命令ノード、2:アーク、3
:プロセッサ、4:メモリ、5:通話路、6:プロセッ
サバス、7:電話機、8ニドランク、10:交換接続要
求解析部、11:待ちキュー、12:データ駆動命令実
行制御部、13:演算命令処理部、14:接続処理部、
15:初期設定テーブル、20:ランダムアクセスメモ
リアドレス、21:演算命令コード、22:フラグ、2
3:入力データ入手先アドレス、25ニリンケートポイ
ンタ、26:カウンタ、27:出力データ格納エリア。
特許出願人 株式会社 日立製作所
第 1 図
]0
第 2 図
第 3 図
第Φ図Fig. 1 is a functional block diagram of a data-driven control method showing an embodiment of the present invention, Fig. 2 is an explanatory diagram of a conventional data flow graph, and Fig. 3 is an electronic exchange to which the data flow graph of the present invention is applied. FIG. 4 is a combination diagram of memory areas for storing data-driven instructions showing one embodiment of the present invention, and FIG. 5 is an operation flowchart of the data-driven instruction execution control section in FIG. 1. LA, IB, IC, ID: Instruction node, 2: Arc, 3
: Processor, 4: Memory, 5: Communication path, 6: Processor bus, 7: Telephone, 8 Nidrank, 10: Exchange connection request analysis section, 11: Waiting queue, 12: Data driven instruction execution control section, 13: Arithmetic instruction Processing unit, 14: Connection processing unit,
15: Initial setting table, 20: Random access memory address, 21: Operation instruction code, 22: Flag, 2
3: Input data source address, 25 link pointer, 26: counter, 27: output data storage area. Patent applicant: Hitachi, Ltd. Figure 1] 0 Figure 2 Figure 3 Figure Φ
Claims (1)
用いた演算結果の出力通知先と該入力データが準備され
たことを示す入力データ数カウンタとを格納した記憶手
段を有するデータ駆動型制御方法において、該記憶手段
に、各命令の実行に必要な入力データ数が1あるいは2
以上であることを指示するフラグと、入力データ数が2
以上の入力データ数カウンタと、該カウンタの初期値を
設定するためのテーブルとを格納しておき、データ駆動
に基づいて実行される命令に順次上記入力データ入手先
からデータを取り出した後、該命令対応の上記フラグの
内容を判定して、該内容が入力データ数1のときには該
命令は実行可能であり、また入力データ数2以上のとき
には、入力データ数カウンタを1だけ減算して、減算結
果が0のとき実行可能であり、減算結果が1以上のとき
入力データ未到着と判断し、入力データの揃った命令か
ら演算を実行し、演算結果を出力通知先に通知すること
を特徴とするデータ駆動型制御方法。 2、特許請求の範囲第1項記載のデータ駆動型制御方法
において、命令実行に必要な入力データ数が2以上であ
る入力データ数カウンタの初期設定テーブルには、プロ
グラム実行直前に初期値を設定することを特徴とするデ
ータ駆動型制御方法。[Claims] 1. A memory that stores, for each command, an input data acquisition source, an output notification destination of the calculation result using the input data, and an input data number counter indicating that the input data is prepared. In a data-driven control method having a storage means, the number of input data required for execution of each instruction is 1 or 2.
A flag indicating that the number of input data is 2 or more and a flag indicating that the number of input data is 2 or more.
The above-mentioned input data number counter and a table for setting the initial value of the counter are stored, and the data is sequentially retrieved from the input data source for the instructions executed based on the data drive. The content of the flag corresponding to the instruction is determined, and if the content is the number of input data 1, the instruction is executable, and if the number of input data is 2 or more, the number of input data counter is decremented by 1, and the subtraction is performed. It can be executed when the result is 0, and when the subtraction result is 1 or more, it is determined that the input data has not arrived, and the operation is executed from the instruction for which the input data is complete, and the operation result is notified to the output notification destination. data-driven control method. 2. In the data-driven control method as set forth in claim 1, an initial value is set in the initial setting table for an input data number counter where the number of input data required for executing an instruction is 2 or more immediately before program execution. A data-driven control method characterized by:
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3652688A JP2745519B2 (en) | 1988-02-19 | 1988-02-19 | Data-driven control method |
| US07/311,291 US5185873A (en) | 1988-02-19 | 1989-02-16 | Control system with flag indicating two or less data inputs and counter indicating two or more controlling data driven execution method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3652688A JP2745519B2 (en) | 1988-02-19 | 1988-02-19 | Data-driven control method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01211123A true JPH01211123A (en) | 1989-08-24 |
| JP2745519B2 JP2745519B2 (en) | 1998-04-28 |
Family
ID=12472240
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3652688A Expired - Fee Related JP2745519B2 (en) | 1988-02-19 | 1988-02-19 | Data-driven control method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2745519B2 (en) |
-
1988
- 1988-02-19 JP JP3652688A patent/JP2745519B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2745519B2 (en) | 1998-04-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0087978B1 (en) | Information processing unit | |
| US4780820A (en) | Control flow computer using mode and node driving registers for dynamically switching between parallel processing and emulation of von neuman processors | |
| JPS63226732A (en) | Sequencer circuit | |
| EP0168054A2 (en) | Method and System for data driven information processing | |
| US5165026A (en) | Programmable controller in which fetching of operand data and fetching of operand addresses are simultaneously performed | |
| US5542079A (en) | Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage | |
| US5363491A (en) | Data flow processor with data processing and next address determination being made in parallel | |
| JP2745519B2 (en) | Data-driven control method | |
| JP3211423B2 (en) | Branch instruction execution method and branch instruction execution device | |
| US5185873A (en) | Control system with flag indicating two or less data inputs and counter indicating two or more controlling data driven execution method | |
| US5675776A (en) | Data processor using FIFO memories for routing operations to parallel operational units | |
| JPH01503340A (en) | data processing unit | |
| JP2003122410A (en) | Method for causing controller to perform computation | |
| JPS62256045A (en) | Data driving type computer | |
| JP2556083B2 (en) | Complex arithmetic pipeline circuit | |
| JP2760800B2 (en) | Data-driven control method | |
| JP2582546B2 (en) | Parallel processing computer and parallel processing method | |
| JP2744152B2 (en) | Data driven data processor | |
| JP2522372B2 (en) | Data driven computer | |
| JPH08286950A (en) | Information processor and trace information storage method | |
| JP2001166918A (en) | Processor system | |
| JP3027984B2 (en) | Single chip microcomputer | |
| JPH01175034A (en) | Register group loading accelerating system | |
| JPS626329A (en) | data transfer circuit | |
| JPH03263265A (en) | Vector processor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |