JP2760800B2 - Data-driven control method - Google Patents

Data-driven control method

Info

Publication number
JP2760800B2
JP2760800B2 JP12173288A JP12173288A JP2760800B2 JP 2760800 B2 JP2760800 B2 JP 2760800B2 JP 12173288 A JP12173288 A JP 12173288A JP 12173288 A JP12173288 A JP 12173288A JP 2760800 B2 JP2760800 B2 JP 2760800B2
Authority
JP
Japan
Prior art keywords
instruction
data
executed
input data
queue
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
Application number
JP12173288A
Other languages
Japanese (ja)
Other versions
JPH01292437A (en
Inventor
幸仁 前島
太平 鈴木
宏俊 白須
利昭 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP12173288A priority Critical patent/JP2760800B2/en
Priority to US07/311,291 priority patent/US5185873A/en
Publication of JPH01292437A publication Critical patent/JPH01292437A/en
Application granted granted Critical
Publication of JP2760800B2 publication Critical patent/JP2760800B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ駆動型制御方法に関し、特に、並列処
理に伴う命令の待合せ制御を簡略化することで、実行性
能を向上させ、かつ命令を逐次処理していくことで、ト
レース効率を向上させることができるデータ駆動命令の
制御方法に関するものである。
Description: BACKGROUND OF THE INVENTION The present invention relates to a data-driven control method, and more particularly, to improving execution performance and simplifying instruction queuing control by simplifying instruction queuing control accompanying parallel processing. The present invention relates to a method of controlling a data driving instruction that can improve tracing efficiency by performing sequential processing.

〔従来の技術〕[Conventional technology]

データフロープログラムの特長として、(1)データ
の依存関係のみで命令実行順序が決まり、しかも、プロ
グラム自身が図式表現されるため、理解性の向上が期待
できる。(2)並列処理を陽に表現できるので、マルチ
プロセツサ構成により処理能力の向上が期待できる、等
がある。従来、データフロープログラムの命令実行の待
合せについては、例えば電子通信学会誌B分冊、Vol.J6
7−B No.6,654ページから661ページで論じられてい
る。前記方法においては、命令レベルの並列実行による
処理能力向上を図るために、マルチプロセツサ構成を採
用し、命令はパケツト形式でプロセツサ間を流れ、しか
も、命令実行の待合せのために先入れ先出し(FIFO)の
キユーを用いている。この方法によれば、処理能力の向
上が期待できる反面、プログラム内の局所的な並列処理
と大局的な並列処理が区別なく実行されてしまうので、
命令実行のトレース効率はあまり高くない。
The features of the data flow program are as follows: (1) The order of instruction execution is determined only by the data dependency, and the program itself is represented graphically. (2) Since parallel processing can be explicitly expressed, improvement in processing capability can be expected with a multiprocessor configuration. Conventionally, with respect to waiting for execution of an instruction of a data flow program, see, for example, IEICE Journal B, Vol.
7-B No. 6, pages 654-661. In the above-mentioned method, a multiprocessor configuration is adopted in order to improve the processing performance by parallel execution at the instruction level, instructions flow between the processors in a packet format, and first-in first-out (FIFO) for waiting for instruction execution. The ku is used. According to this method, it is expected that the processing capacity is improved, but the local parallel processing and the global parallel processing in the program are executed without distinction.
The trace efficiency of instruction execution is not very high.

そこで、(1)の理解性向上だけを目的とするなら
ば、命令レベルの並列性は失われるが、データフロープ
ログラムを従来のノイマン型マシン上で実行してもよ
い。これはプロセツサとメモリがあれば安価に実現でき
る。しかし、データ駆動をエミユレーシヨンすることか
らそのオーバヘツドが問題となる。
Therefore, if the purpose is only to improve the comprehension of (1), the parallelism at the instruction level is lost, but the data flow program may be executed on a conventional Neumann machine. This can be realized at low cost with a processor and memory. However, since the data drive is emulated, its overhead becomes a problem.

〔発明が解決しようとする課題〕[Problems to be solved by the invention]

前述のように、従来の技術においては、マルチプロセ
ツサ構成のデータフローマシンそのものであり、処理能
力向上が期待できる反面、ハード量が多く、またプログ
ラム内の大局的な並列処理と局所的な並列処理の区別が
難しいことによるトレース効率の低下という問題があ
る。
As described above, in the conventional technology, the data flow machine itself has a multi-processor configuration, and although the processing capability can be expected to be improved, the amount of hardware is large, and global parallel processing and local parallel processing in a program are performed. There is a problem that the tracing efficiency is reduced due to the difficulty in distinguishing the processing.

そこで、データフロープログラムを従来の安価なノイ
マン型マシン上で実行し、キユーをソフト的に形成する
ことが考えられる。しかし、キユーを先入れ先出しで制
御するだけでは、プログラム内の大局的な並列処理と局
所的な並列処理の区別することは難しく、しかも、並列
処理による命令実行の待合せから、必ず一度キユーに命
令を登録してからでないと該命令を実行することができ
ないという2つの課題が生じる。
Therefore, it is conceivable to execute the data flow program on a conventional inexpensive Neumann-type machine to form the queue in software. However, it is difficult to distinguish between global parallel processing and local parallel processing in a program only by controlling the queue on a first-in, first-out basis. There are two problems that the instruction cannot be executed until after.

本発明の目的は、これらの課題を解決し、データ駆動
型制御におけるオーバヘツドに基因する処理能力低下を
最小に抑えることができ、かつ命令のトレース効率の良
いデータ駆動型制御方法を提供することにある。
An object of the present invention is to solve these problems and to provide a data-driven control method capable of minimizing a decrease in processing performance due to overhead in data-driven control and having high instruction trace efficiency. is there.

〔課題を解決するための手段〕[Means for solving the problem]

上記の目的を達成するため、本発明によれば、各命令
毎に、入力データ入手先と、該入力データを用いた演算
結果の出力通知先と、出力通知先数と、上記入力データ
の準備状況を示すためのカウンタとを設け、上記カウン
タによって実行可能となった命令を順次に実行するよう
にしたデータ駆動型制御方法において、実行可能な状態
となった命令を後入れ先出しキューに登録しておき、上
記キューに登録された最新の命令から順に命令を実行
し、演算結果を該命令の出力通知先で指定された他の命
令に入力データとして通知するようにしたことを特徴と
する。
To achieve the above object, according to the present invention, for each command, a source of input data, a destination of output notification of a calculation result using the input data, a number of destinations of output notification, and preparation of the input data In a data driven control method in which a counter for indicating a situation is provided and instructions executable by the counter are sequentially executed, an instruction in an executable state is registered in a last-in first-out queue. It is characterized in that the instructions are executed in order from the latest instruction registered in the queue, and the operation result is notified as input data to another instruction specified by the output notification destination of the instruction.

また、本発明の他の特徴は、実行した命令の出力通知
先数が1で、且つ、演算結果の通知によって該出力通知
先となる他の命令が実行可能な状態となっていた場合、
該他の命令を前記キューに登録することなく実行するよ
うにしたことにある。
Another feature of the present invention is that, when the number of output notification destinations of the executed instruction is 1, and another instruction to be the output notification destination is in an executable state by notification of an operation result,
The other instruction is executed without being registered in the queue.

〔作用〕[Action]

上記構成により、本発明によれば、データ駆動に基づ
いて実行され、しかも並列実行可能な命令は、実行に先
出ち、後入れ先出しのキユーにより並直列変換され、そ
の実行は逐次的すなわち水平的ではなく垂直的に実行さ
れるため、命令トレースを効率的に行うことができる。
また、該実行命令の出力通知先数が1で、かつ該出力通
知先の命令が実行可能状態になる場合には、前記キユー
に命令を登録しないで直ちに命令を実行できるので、性
能の向上が期待できる。
With the above arrangement, according to the present invention, instructions that are executed based on data driving and that can be executed in parallel are executed before execution, and are subjected to parallel-serial conversion by a last-in first-out queue. Instruction tracing can be performed efficiently because the execution is performed vertically instead of target.
Further, when the number of output notification destinations of the execution instruction is 1, and the instruction of the output notification destination becomes executable, the instruction can be executed immediately without registering the instruction in the queue, so that the performance is improved. Can be expected.

〔実施例〕〔Example〕

以下、本発明の一実施例を図面により説明する。 Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

第2図は本発明において適用されるデータフローグラ
フの記述例を示す図である。第2図において、ノード1
(1A〜1E)はデータ駆動で実行される演算命令を表して
おり、アーク2は命令間で授受されるデータの流路を表
している。そして、命令はデータ駆動に基づいて実行さ
れるので、命令の実行に必要な入力データの全てが揃つ
た時点で始めて演算が実行される。
FIG. 2 is a diagram showing a description example of a data flow graph applied in the present invention. In FIG. 2, node 1
(1A to 1E) represent arithmetic instructions executed by data driving, and arc 2 represents a flow path of data exchanged between the instructions. Since the instruction is executed based on the data driving, the operation is executed only when all the input data necessary for the execution of the instruction are prepared.

第2図では、入力データで指示されるパケツト番号か
らパケツトアドレスに変換する命令1A、入力データで指
示されるパケツトアドレスと構造体名で情報を読み出す
命令1B,1C、入力データのコードを変換する命令1Dと2
つの入力データを加算する命令1Eとから構成される。演
算は先ず入力されたパケツト番号をパケツトアドレスに
変換し、パケツトアドレスと構造体名で指示される2つ
のデータを読み出し、一方のデータはコード変換を行
い、その結果と、他方の読み出されたデータとを加算す
ることにより行われる。
In FIG. 2, an instruction 1A for converting a packet number designated by input data into a packet address, instructions 1B and 1C for reading information by a packet address and a structure name designated by input data, and a code of input data are shown. Instructions 1D and 2 to convert
And an instruction 1E for adding two input data. The operation first converts the input packet number into a packet address, reads two data designated by the packet address and the structure name, performs one code conversion, and reads the result and the other. This is performed by adding the obtained data.

第3図は本発明が適用される電子交換機のブロツク構
成図である。ここでは、本発明を適用したデータフロー
グラフ表現の電子交換機プログラムが実行される。また
第3図では、ノイマン型プロセツサが用いられる。
FIG. 3 is a block diagram of an electronic exchange to which the present invention is applied. Here, an electronic exchange program in a data flow graph expression to which the present invention is applied is executed. In FIG. 3, a Neumann-type processor is used.

第3図の電子交換機では、通常のプログラム・カウン
タ制御によるノイマン型プロセツサ3と、記憶保護機能
を有するメモリ4と、空間分割型または時分割型の通話
路5とが、プロセツサ・バス6を介して接続されてお
り、かつその通話路5には、電話機7およびトランク8
が収容されている。これらの電話機7およびトランク8
は複数個が通話路5に収容されているが、ここではその
うちの1個ずつが示されている。
In the electronic exchange shown in FIG. 3, a Neumann-type processor 3 controlled by a normal program counter, a memory 4 having a memory protection function, and a space-division type or time-division type communication path 5 are connected via a processor bus 6. And a telephone line 7 and a trunk 8
Is housed. These telephone 7 and trunk 8
Are accommodated in the communication path 5, one of which is shown here.

通話路5を介して電話機7とトランク8を接続する電
子交換機プログラムは、第2図に示すようなデータフロ
ーグラフで表現され、プログラム自体はメモリ4に格納
されている。プロセツサ3は電話機7またはトランク8
からの交換接続要求に対して、メモリ4に格納されてい
る所定の電子交換機プログラムを選択し、そのプログラ
ムをデータ駆動に基づいて実行制御することにより、通
話路5を介して電話機7またはトランク8等の端末間の
接続を行う。
An 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. Processor 3 is telephone 7 or trunk 8
In response to an exchange connection request from the telephone set, a predetermined electronic exchange program stored in the memory 4 is selected, and the execution of the program is controlled based on data driving. Connection between terminals.

第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 connection of functional parts constituting the electronic exchange program of FIG.

第1図において、10は電話機7およびトランク8から
の交換接続要求を分析して、所定の交換接続動作を決定
する交換接続要求解析部、11はデータフローグラフで表
現されたプログラムの命令実行を待合せるキユー、12は
データフローグラフで表現されたプログラム命令をデー
タ駆動で実行するデータ駆動命令実行制御部、13は命令
の名称に対応する演算を行うための演算命令処理部、14
は交換接続動作をデータフローで記述したプログラムの
接続処理部、15は命令の実行に必要な入力データ数を指
示するカウンタを初期設定するための命令アドレスとカ
ウンタの初期値からなる初期設定テーブルである。
In FIG. 1, reference numeral 10 denotes an exchange connection request analysis unit for analyzing an exchange connection request from the telephone 7 and the trunk 8 to determine a predetermined exchange connection operation, and 11 an instruction execution of a program represented by a data flow graph. A queue to wait for, 12 is a data driven instruction execution control unit for executing a data driven graph driven program instruction by data driving, 13 is an operation instruction processing unit for performing an operation corresponding to the instruction name, 14
Is a connection processing unit of a program in which the switching connection operation is described in a data flow, and 15 is an initial setting table including an instruction address for initial setting a counter indicating the number of input data necessary for executing the instruction and an initial value of the counter. is there.

第4図は第1図の接続処理部14に規定された接続処理
1〜mのうち1つに該当する命令1A,1B,1C,1D,1Eの接続
例を示しており、1つの命令は9個のエリア20〜28から
構成される。そして、第4図に示す1A,1B,1C,1D,1Eの関
係は第2図に示したデータフローグラフと等価であつ
て、第2図のノード1A〜1Eは第4図の各ノード1A〜1Eに
該当する。21のエリア内に演算命令コードが書き込まれ
ている。1Aがアドレス変換、1B,1Cがデータ読み出し、1
Dがコード変換、1Eが加算の各命令である。なお、ノー
ド1Aの命令を構成する各エリアだけに記号が付けられて
いるが、他のノード1B,1C,1D,1Eの各エリアの構成は1A
と全く同じであるため、記号を省略している。
FIG. 4 shows a connection example of instructions 1A, 1B, 1C, 1D, and 1E corresponding to one of the connection processes 1 to m defined in the connection processing unit 14 of FIG. It consists of nine areas 20-28. The relationship between 1A, 1B, 1C, 1D, and 1E shown in FIG. 4 is equivalent to the data flow graph shown in FIG. 2, and the nodes 1A to 1E in FIG. This corresponds to ~ 1E. The operation instruction code is written in area 21. 1A is address translation, 1B and 1C are data read, 1
D is a code conversion instruction, and 1E is an addition instruction. Note that only the area constituting the instruction of node 1A is marked with a symbol, but the configuration of each area of the other nodes 1B, 1C, 1D, and 1E is 1A.
The symbols are omitted because they are exactly the same.

第4図において、20は命令実行時に書き換えられるエ
リアのヘツダを示すランダムアクセスメモリアドレス、
21は命令の処理を規定する演算命令コード、22は入力デ
ータ数、23は入力データの入手先を指示する入力データ
入手先アドレス、24は出力通知先数、25は出力が与えら
れることを次命令に伝達するための出力通知先アドレ
ス、26は実行可能状態の命令をキユーに登録するための
リンケージポインタ、27は命令の実行に必要な入力デー
タの到着状況を示すカウンタ、28は演算結果を格納する
出力データ格納エリアである。
In FIG. 4, reference numeral 20 denotes a random access memory address indicating a header of an area to be rewritten when an instruction is executed;
21 is an operation instruction code that regulates instruction processing, 22 is the number of input data, 23 is an input data acquisition address indicating the acquisition source of input data, 24 is the number of output notification destinations, and 25 is that output is given. An output notification destination address for transmitting to an instruction, 26 is a linkage pointer for registering an executable instruction in a queue, 27 is a counter indicating the arrival status of input data necessary for executing the instruction, and 28 is an operation result. This is an output data storage area to be stored.

1つの接続処理を構成する各ノードごとに、上記命令
がメモリ4に確保される。
The above instruction is secured in the memory 4 for each node constituting one connection process.

ランダムアクセスメモリアドレス20,演算命令コード2
1,命令の入力データ数22,入力データ入手先アドレス23,
出力通知先数24、および出力通知先アドレス25はいずれ
もプログラムコンパイル時に決定される。しかも、これ
らはプログラム実行時に書き換えられることがないた
め、プログラムをメモリ4にローデイングした後、記憶
内容を保護するためのメモリプロテクトを施すことがで
きる。
Random access memory address 20, operation instruction code 2
1, Instruction input data number 22, Input data acquisition address 23,
Both the output notification destination number 24 and the output notification destination address 25 are determined at the time of compiling the program. In addition, since these are not rewritten when the program is executed, after the program is loaded into the memory 4, memory protection for protecting the stored contents can be performed.

一方、リンケージポインタ26,カウンタ27、および出
力データ格納エリア28は命令実行時に書き換えられるた
めに、ランダムアクセスが可能なメモリ領域に割り付け
られる。これにより大部分のエリアの内容を保護するこ
とができるので、プログラムが暴走しても、命令の破壊
を防止でき、信等性を向上できる。
On the other hand, since the linkage pointer 26, the counter 27, and the output data storage area 28 are rewritten at the time of instruction execution, they are allocated to a memory area where random access is possible. As a result, the contents of most areas can be protected, so that even if the program runs away, the destruction of instructions can be prevented, and the credibility can be improved.

次に、第5図により第1図の機能ブロツクおよび第4
図のメモリエリアの動作を詳述する。第1図における矢
印の番号は処理を移す順序を示している。
Next, referring to FIG. 5, the function block shown in FIG.
The operation of the memory area shown in the figure will be described in detail. The numbers of the arrows in FIG. 1 indicate the order in which the processing is shifted.

先ず、第1図および第3図において、電話機7および
トランク8等の端末から接続要求が交換機に到着する
と、交換接続要求解析部10はこの接続要求を解析し、実
行すべき接続処理の1つを接続処理部14の接続処理1〜
mのうちから選択し決定した後(第1図の矢印
(1))、その接続処理の先頭にある命令アドレスをキ
ユー11の最後尾に登録する(第1図の矢印(2))。そ
して、登録した接続処理名称をデータ駆動命令実行制御
部12に引き継いで、データ駆動命令実行制御部12を起動
する(第1図の矢印(3))。起動を受けたデータ駆動
命令実行制御部12は第5図の動作フローに従つて動作す
る。
First, in FIGS. 1 and 3, when a connection request arrives at the exchange from terminals such as the telephone 7 and the trunk 8, the exchange connection request analysis unit 10 analyzes this connection request and performs one of the connection processes to be executed. For connection processing 1 to connection processing unit 14
After selecting and determining from among m (arrow (1) in FIG. 1), the instruction address at the head of the connection processing is registered at the end of queue 11 (arrow (2) in FIG. 1). Then, the registered connection processing name is taken over by the data drive command execution control unit 12, and the data drive command execution control unit 12 is activated (arrow (3) in FIG. 1). The data drive command execution control unit 12 that has been activated operates according to the operation flow of FIG.

先ず、引き継いだ接続処理の名称に対応する初期設定
テーブル15を索引し、命令実行に必要な入力データ数を
指示するカウンタ27を初期設定する(ステツプ30)(第
1図の矢印(4))。そして、キユー11が空きでなけれ
ば(ステツプ31)、キユー11の最後尾から交換接続要求
解析部10が登録した接続処理の先頭の命令アドレスを抽
出して、これを記憶した後(第1図の矢印(5))、キ
ユー11からその命令を取り外し(ステツプ32;第1図の
矢印(6))、命令内の演算命令コード21で定まる演算
命令処理部13を決定し、その命令アドレスを演算命令処
理部13に引き継いだ後(第1図の矢印(7))、その演
算命令処理部13を起動する(ステツプ33)。起動された
演算命令処理部13は、その命令アドレスで指示される命
令内の入力データ入手先アドレス23から入力データを入
手した後、その入力データを用いて所定の演算を行い、
演算結果をランダムアクセスメモリアドレス20でリンク
される出力データ格納エリア28に格納する(ステツプ3
4;第1図の矢印(8))。そして、制御をデータ駆動命
令実行制御部12に戻す(第1図の矢印(9))。
First, the initialization table 15 corresponding to the name of the inherited connection process is indexed, and the counter 27 for instructing the number of input data necessary for executing the instruction is initialized (step 30) (arrow (4) in FIG. 1). . If the queue 11 is not empty (step 31), the first instruction address of the connection process registered by the exchange connection request analysis unit 10 is extracted from the end of the queue 11 and stored there (FIG. 1). Arrow (5)), the instruction is removed from the queue 11 (step 32; arrow (6) in FIG. 1), the operation instruction processing unit 13 determined by the operation instruction code 21 in the instruction is determined, and the instruction address is determined. After being taken over by the operation instruction processing unit 13 (arrow (7) in FIG. 1), the operation instruction processing unit 13 is started (step 33). The activated operation instruction processing unit 13 obtains input data from the input data obtaining address 23 in the instruction specified by the instruction address, and then performs a predetermined operation using the input data,
The operation result is stored in the output data storage area 28 linked by the random access memory address 20 (Step 3).
4; arrow (8) in FIG. 1). Then, control is returned to the data drive instruction execution control unit 12 (arrow (9) in FIG. 1).

次に、データ駆動命令実行制御部12は記憶していた命
令アドレスに基づいて、出力通知先数24を求め、出力通
知先数24が0でなく(ステツプ35)、かつ出力通知先数
24が1であれば(ステツプ36)、出力通知先アドレス25
を求め(ステツプ37)、出力データすなわち次命令の入
力データが準備されたことを通知する(第1図の矢印
(10))。この通知は以下のようにして行われる。先
ず、出力通知先アドレス25で指示される次命令のランダ
ムアクセスメモリアドレス20を求め、ランダムアクセス
メモリアドレス20で指示されるカウンタ27を「−1」し
(ステツプ38)、もしカウンタ27が0であれば(ステツ
プ39)、その命令が実行可能であると判断し、前述のよ
うにその命令アドレスで指示される命令を実行する。ま
た、カウンタ27が0でなければ何もしないで、次に実行
すべき命令アドレスをキユー11の最後尾から取り出す処
理(ステツプ31)に戻る。さらに、出力通知先数24が複
数であれば、出力通知先アドレス25を求め(ステツプ4
0)、出力データが準備されたことを通知する(第1図
の矢印(10))。この通知は前述したように行われる。
先ず、出力通知先アドレス25で指示される次命令のラン
ダムアクセスメモリアドレス20を求め、ランダムアクセ
スメモリアドレス20で指示されるカウンタ27を「−1」
し(ステツプ41)、もしカウンタ27が0であれば(ステ
ツプ42)、その命令が実行可能であると判断し、前述の
ようにその次命令アドレスをキユー11の最後尾に登録す
る。このように出力通知先が複数あればその数だけステ
ツプ40〜ステツプ44を繰り返し、全ての出力通知先アド
レス25へ出力データの通知が終了すると、次に実行すべ
き命令アドレスをキユー11から取り出す処理(ステツプ
31)に戻る。一方、キユー11の最後尾に登録されている
命令アドレスがなければ(ステツプ31)、実行すべき命
令がないものと判断して、データ駆動命令実行制御部12
は交換接続要求解析部10に制御を戻して(第1図の矢印
(12))、その接続処理を終了する。
Next, the data driven instruction execution control unit 12 obtains the number of output notification destinations 24 based on the stored instruction address, and the number of output notification destinations 24 is not 0 (step 35), and the number of output notification destinations is 24
If 24 is 1 (step 36), the output notification destination address 25
Is obtained (step 37), and it is notified that output data, that is, input data of the next command is prepared (arrow (10) in FIG. 1). This notification is performed as follows. First, the random access memory address 20 of the next instruction specified by the output notification destination address 25 is obtained, and the counter 27 specified by the random access memory address 20 is set to "-1" (step 38). If there is (step 39), it is determined that the instruction is executable, and the instruction indicated by the instruction address is executed as described above. If the counter 27 is not 0, nothing is performed, and the process returns to the step of extracting the next instruction address to be executed from the end of the queue 11 (step 31). Further, if the number of output notification destinations 24 is plural, an output notification destination address 25 is obtained (step 4).
0), and notifies that the output data has been prepared (arrow (10) in FIG. 1). This notification is performed as described above.
First, the random access memory address 20 of the next instruction specified by the output notification destination address 25 is obtained, and the counter 27 specified by the random access memory address 20 is set to “−1”.
If the counter 27 is 0 (step 42), it is determined that the instruction is executable, and the next instruction address is registered at the end of the queue 11 as described above. In this way, if there are a plurality of output notification destinations, steps 40 to 44 are repeated by that number, and when the notification of output data to all output notification destination addresses 25 is completed, the next instruction address to be executed is retrieved from queue 11. (Step
Return to 31). On the other hand, if there is no instruction address registered at the end of the queue 11 (step 31), it is determined that there is no instruction to be executed, and the data drive instruction execution control unit 12
Returns control to the exchange connection request analysis unit 10 (arrow (12) in FIG. 1), and ends the connection processing.

また、後入れ先出しキユー11により命令の実行順序
は、前述したように並列実行可能な部分が交互に実行さ
れるのではなく、1つの並行実行可能な部分が終了し
て、初めて他の並列実行可能な部分が実行されるので、
命令トレースが容易になる。
The order of execution of instructions by the last-in / first-out queue 11 is not that the portions that can be executed in parallel are executed alternately as described above. Since the possible parts are executed,
Instruction tracing becomes easier.

〔発明の効果〕 本発明によれば、データ駆動に基づく命令実行におい
て、出力通知先数が1で、しかも出力通知先が直ちに実
行可能状態になる場合は、キユー制御を簡略化できるの
で、命令実行の性能を向上させることができる。さら
に、並列実行可能な命令群が複数ある場合でも、並列実
行可能な部分が交互に実行されるのではなく、1つの並
列実行可能な部分が終了するまで、他の部分の実行を待
合せることができるので、命令のトレース効率を向上で
きる。
[Effects of the Invention] According to the present invention, when the number of output notification destinations is one and the output notification destination immediately becomes executable in the instruction execution based on data driving, the queue control can be simplified. Execution performance can be improved. Furthermore, even when there are a plurality of instruction groups that can be executed in parallel, the execution of another part is not performed until the execution of another part is completed, instead of the execution of the part that can be executed in parallel. Therefore, the instruction tracing efficiency can be improved.

【図面の簡単な説明】[Brief description of the drawings]

第1図は本発明の一実施例を示すデータ駆動型制御方法
の機能ブロツク図、第2図はデータフローグラフの説明
図、第3図は本発明のデータフローグラフを適用する電
子交換機のブロツク構成図、第4図は本発明の一実施例
を示すデータ駆動命令を記憶するメモリエリアの結合
図、第5図は第1図におけるデータ駆動命令実行制御部
の動作フローチヤートである。 1A,1B,1C,1D,1E……命令ノード、2……アーク、3……
プロセツサ、4……メモリ、5……通話路、6……プロ
セツサ・バス、7……電話機、8……トランク、10……
交換接続要求解析部、11……キユー、12……データ駆動
命令実行制御部、13……演算命令処理部、14……接続処
理部、15……初期設定テーブル、20……ランダムアクセ
スメモリアドレス、21……演算命令コード、22……入力
データ数、23……入力データ入手先アドレス、24……出
力通知先数、25……出力通知先アドレス、26……リンケ
ージポインタ、27……カウンタ、28……出力データ格納
エリア。
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 data flow graph, and FIG. 3 is a block diagram of an electronic exchange to which the data flow graph of the present invention is applied. FIG. 4 is a connection diagram of a memory area for storing a data driving instruction according to an embodiment of the present invention, and FIG. 5 is an operation flowchart of a data driving instruction execution control unit in FIG. 1A, 1B, 1C, 1D, 1E ... Instruction node, 2 ... Arc, 3 ...
Processor 4, Memory 5, Communication line 6, Processor bus 7, Telephone 8, Trunk 10, 10
Exchange connection request analysis unit, 11 Queue, 12 Data drive instruction execution control unit, 13 Operation instruction processing unit, 14 Connection processing unit, 15 Initial setting table, 20 Random access memory address , 21… operation instruction code, 22… number of input data, 23… input data acquisition address, 24… output notification destination number, 25… output notification destination address, 26… linkage pointer, 27… counter , 28 ... Output data storage area.

フロントページの続き (72)発明者 山本 利昭 神奈川県横浜市戸塚区戸塚町216番地 株式会社日立製作所戸塚工場内 (56)参考文献 特開 平1−283640(JP,A)Continuation of the front page (72) Inventor Toshiaki Yamamoto 216 Totsuka-cho, Totsuka-ku, Yokohama-shi, Kanagawa Prefecture Inside the Hitachi, Ltd. Totsuka Plant (56) References JP-A-1-283640 (JP, A)

Claims (2)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】各命令毎に、入力データ入手先と、該入力
データを用いた演算結果の出力通知先と、出力通知先数
と、上記入力データの準備状況を示すためのカウンタと
を設け、上記カウンタによって実行可能となった命令を
順次に実行するようにしたデータ駆動型制御方法におい
て、 実行可能な状態となった命令を後入れ先出しキューに登
録しておき、上記キューに登録された最新の命令から順
に命令を実行し、演算結果を該命令の出力通知先で指定
された他の命令に入力データとして通知するようにした
ことを特徴とするデータ駆動型制御方法。
An instruction is provided for each instruction, where an input data is obtained, an output notification destination of an operation result using the input data, the number of output notification destinations, and a counter for indicating a preparation status of the input data. In the data-driven control method in which instructions executable by the counter are sequentially executed, the executable instruction is registered in a last-in first-out queue and registered in the queue. A data-driven control method, wherein instructions are executed in order from the latest instruction, and an operation result is notified as input data to another instruction specified by an output notification destination of the instruction.
【請求項2】実行した命令の出力通知先数が1で、且
つ、演算結果の通知によって該出力通知先となる他の命
令が実行可能な状態となっていた場合、該他の命令を前
記キューに登録することなく実行するようにしたことを
特徴とする請求項1に記載のデータ駆動型制御方法。
2. When the number of output notification destinations of an executed instruction is 1, and another instruction to be the output notification destination is in an executable state by notification of an operation result, the other instruction is output to the execution destination. 2. The data-driven control method according to claim 1, wherein the method is executed without being registered in a queue.
JP12173288A 1988-02-19 1988-05-20 Data-driven control method Expired - Fee Related JP2760800B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP12173288A JP2760800B2 (en) 1988-05-20 1988-05-20 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
JP12173288A JP2760800B2 (en) 1988-05-20 1988-05-20 Data-driven control method

Publications (2)

Publication Number Publication Date
JPH01292437A JPH01292437A (en) 1989-11-24
JP2760800B2 true JP2760800B2 (en) 1998-06-04

Family

ID=14818511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12173288A Expired - Fee Related JP2760800B2 (en) 1988-02-19 1988-05-20 Data-driven control method

Country Status (1)

Country Link
JP (1) JP2760800B2 (en)

Also Published As

Publication number Publication date
JPH01292437A (en) 1989-11-24

Similar Documents

Publication Publication Date Title
US5047917A (en) Apparatus for intrasystem communications within a binary n-cube including buffer lock bit
JP2644780B2 (en) Parallel computer with processing request function
De Witt et al. The CRYSTAL multicomputer: Design and implementation experience
EP0087978A2 (en) Information processing unit
EP0327196A2 (en) Processor simulation
JPH08502612A (en) Data processing system and operating system
KR970016979A (en) Queuing system and method of tasks in a multiprocessing system
JP2002502516A (en) Selective emulation interpretation using post-translation instructions
EP0069525A1 (en) Data processing system
JP5030647B2 (en) Method for loading a program in a computer system including a plurality of processing nodes, a computer readable medium containing the program, and a parallel computer system
Rayfield et al. System and application software for the Armstrong multiprocessor
Yasugi et al. ABCL/onEM-4: A new software/hardware architecture for object-oriented concurrent computing on an extended dataflow supercomputer
JP2760800B2 (en) Data-driven control method
EP0240108A2 (en) A data processing system
CN111310638A (en) Data processing method and device and computer readable storage medium
JP2736237B2 (en) Remote memory access controller
JPH0683615A (en) Computer for executing instruction set emulation
JPH06202877A (en) Emulator
JP2745519B2 (en) Data-driven control method
JP3807860B2 (en) Compiling method and apparatus, and method activity calculating method and apparatus
EP0201065A2 (en) Virtual single machine with logical ring and with message-like hardware interrupts and processor exceptions
US5185873A (en) Control system with flag indicating two or less data inputs and counter indicating two or more controlling data driven execution method
Crowley The design and implementation of a new UNIX kernel
Kakulavarapu et al. Design of the runtime system for the Portable Threaded-C language
US5579495A (en) Information processing in which a simulation of parallelism is achieved

Legal Events

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