JP2594140B2 - Data driven data processor - Google Patents

Data driven data processor

Info

Publication number
JP2594140B2
JP2594140B2 JP28447388A JP28447388A JP2594140B2 JP 2594140 B2 JP2594140 B2 JP 2594140B2 JP 28447388 A JP28447388 A JP 28447388A JP 28447388 A JP28447388 A JP 28447388A JP 2594140 B2 JP2594140 B2 JP 2594140B2
Authority
JP
Japan
Prior art keywords
data
packet
program
memory
queue memory
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
JP28447388A
Other languages
Japanese (ja)
Other versions
JPH02129773A (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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP28447388A priority Critical patent/JP2594140B2/en
Publication of JPH02129773A publication Critical patent/JPH02129773A/en
Application granted granted Critical
Publication of JP2594140B2 publication Critical patent/JP2594140B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 (イ)産業上の利用分野 本発明は、データ駆動型のデータ処理装置に関するも
のであり、詳しくは、データ処理装置内部のキューメモ
リのオーバーフローを防止する機能をもつデータ駆動型
データ処理装置に関する。
The present invention relates to a data-driven data processing device, and more particularly, to data having a function of preventing a queue memory in a data processing device from overflowing. The present invention relates to a driving type data processing device.

(ロ)従来の技術 一般に、データ駆動型のデータ処理装置は、種々の命
令がデータの流れを示すアークによって接続されるデー
タフローグラフをプログラムとして実行するものであ
り、データ値と制御情報を含むデータが種々の処理要素
を経て転送される間に、データフローグラフに沿って制
御情報の付け換えやデータの複製や命令実行が行なわれ
る。各処理要素は、データの到着に応じてそのデータに
所定の処理を施すように構成され、データが各処理要素
にどのようなタイミングで到着するかは予め規定されて
いない。つまり、外部からの入力、外部への出力、デー
タの複製処理等の種々の処理が発生するタイミングは予
め規定できない。
(B) Conventional technology Generally, a data-driven data processing device executes, as a program, a data flow graph in which various instructions are connected by arcs indicating a data flow, and includes a data value and control information. While data is transferred through various processing elements, control information is exchanged, data is copied, and instructions are executed along the data flow graph. Each processing element is configured to perform predetermined processing on the data in response to the arrival of the data, and the timing at which the data arrives at each processing element is not defined in advance. That is, the timing at which various processes such as input from the outside, output to the outside, and data duplication cannot be specified in advance.

従って、データの複製処理などの、通常の処理時間よ
りも長い時間を要するような特殊な処理が発生した時に
は、その処理要素に後続して到着しようとしているデー
タは、その特殊な処理の終了を待つ必要がある。一般
に、データ駆動型データ処理装置においては、このよう
なデータを一時的にキューメモリに貯えて待たせてい
る。ところがキューメモリの容量には自ずと限界がある
ため、キューメモリのオーバーフローが生じる可能性が
ある。このようなオーバーフローが生じると、プログラ
ムの実行は不可能となり、実行を中止しなければならな
い。また、同じプログラムを再実行しても、やはり同じ
ようにオーバーフローを生じるため、プログラム(デー
タフローグラフの接続情報)を変更、修正して、再実行
させる作業を繰り返さなくてはならない。このような作
業は、一般に多大の時間を要するため、ハードウェアに
よってキューメモリのオーバーフローを防止する機能が
要求されている。
Therefore, when a special process such as a data duplication process that requires a longer time than the normal process time occurs, the data that subsequently arrives at the processing element terminates the special process. I need to wait. Generally, in a data driven type data processing device, such data is temporarily stored in a queue memory and kept waiting. However, since the capacity of the queue memory is naturally limited, the queue memory may overflow. When such an overflow occurs, execution of the program becomes impossible, and execution must be stopped. In addition, even if the same program is re-executed, an overflow also occurs in the same manner. Therefore, it is necessary to change and correct the program (connection information of the data flow graph) and repeat the operation of re-executing the program. Such an operation generally requires a great deal of time, and therefore, a function of preventing overflow of a queue memory by hardware is required.

従来、例えば、昭和59年4月9日付で発行された日経
エレクトロニクスの第181頁から第218頁に開示されてい
るデータ駆動型のデータ処理装置、あるいは、特開昭58
−103037「キューメモリ装置」に示されているデータ駆
動型データ処理装置においては、データの複製を伴わな
いデータを待たせるデータキュー(DQ)、及びデータの
複製処理を伴うデータを待たせるジェネレータキュー
(GQ)を備え、データキュー(DQ)に貯えられているデ
ータ量がある程度以上になると、ジェネレータキュー
(GQ)からのデータの読み出しを停止することによっ
て、データキュー(DQ)のオーバーフローを防止してい
る。
Conventionally, for example, a data driven type data processing apparatus disclosed on page 181 to page 218 of Nikkei Electronics published on April 9, 1984,
In the data driven type data processing device shown in “103037“ Queue memory device ”, a data queue (DQ) for waiting for data without data duplication and a generator queue for waiting for data with data duplication processing (GQ) to prevent overflow of the data queue (DQ) by stopping reading data from the generator queue (GQ) when the amount of data stored in the data queue (DQ) exceeds a certain level. ing.

(ハ)発明が解決しようとする問題点 しかるに、上述の従来のデータ処理装置においては、
データキュー(DQ)のオーバーフローを防止するため
に、別のキューメモリであるジェネレータキュー(GQ)
を設けており、キューメモリのためのハードウエア量が
大きくなってしまい、結果的にデータ処理装置全体のハ
ードウエア量が大きくなってしまうという問題点があっ
た。
(C) Problems to be solved by the invention However, in the above-mentioned conventional data processing device,
To prevent overflow of the data queue (DQ), another queue memory, the generator queue (GQ)
The problem is that the amount of hardware for the queue memory is increased, and as a result, the amount of hardware of the entire data processing device is increased.

更に、上述の従来のデータ処理装置においてはデータ
の複製処理を伴うデータを待たせるジェネレータキュー
(GQ)のオーバフローを防止する機能を有していないと
いう問題点があった。
Further, the above-mentioned conventional data processing apparatus has a problem that it does not have a function of preventing an overflow of a generator queue (GQ) for waiting for data accompanied by data duplication processing.

従って、本発明の目的は、特殊な別系統のキューメモ
リを設けずに、単一のキューメモリにデータ複製処理を
伴うデータ、及びデータ複製処理を伴わないデータを混
在して待たせ、ハードウェア量の大幅な増加を必要とせ
ずに、キューメモリのオーバーフローを総合的に防止す
ることのできるデータ駆動型データ処理装置を提供する
ことである。
Therefore, an object of the present invention is to provide a queue memory of a single queue memory without a special queue memory of a special system, and to mix and wait data with data replication processing and data without data replication processing in a single queue memory. An object of the present invention is to provide a data-driven data processing device capable of comprehensively preventing overflow of a queue memory without requiring a large increase in the amount.

(ニ)問題点を解決するための手段 本発明のデータ駆動型データ処理装置は、キューメモ
リを1ケ所に集中して保持し、更に、このキューメモリ
の中のデータ量を監視するデータ量監視手段と、キュー
メモリ中のデータ滞在量に応じてデータの複製処理を行
なうデータ複製手段を保持するものである。
(D) Means for Solving the Problems The data-driven data processing device of the present invention has a queue memory that is centrally held at one location, and furthermore, a data amount monitor that monitors the amount of data in the queue memory. Means and a data duplicating means for duplicating data according to the amount of data staying in the queue memory.

(ホ)作用 本発明のデータ駆動型データ処理装置は、そのプログ
ラム記憶手段には、到着したデータに付加すべき制御情
報が、データフローグラフのノード識別子(ノード番
号)と対応づけられてテーブル形式で格納される。デー
タフローグラフに従って処理装置内部でデータの複製を
行なう時には、データ複製手段によってこのテーブルが
連続的にアクセスされて、同一のデータに種々の制御情
報が付加されてプログラム記憶手段から連続的に出力さ
れる。この間、キューメモリからの出力は禁止され、キ
ューメモリへの入力データはキューメモリ内部に滞るこ
とになる。データ量監視手段はこのキューメモリ中のデ
ータ滞在量を監視し、データ複製手段に伝える。データ
複製手段は、データ滞在量が所定の値より小さい時は、
1つのデータの到着に応じて、プログラム(データフロ
ーグラフ)に従った数のデータを連続的に出力する。つ
まりこの時、原理的には、1つのデータの到着に応じて
複製するデータの数は無制限である。
(E) Operation In the data driven data processing apparatus of the present invention, the program storage means stores control information to be added to the arrived data in a table format in association with the node identifier (node number) of the data flow graph. Is stored in When data is replicated inside the processing apparatus according to the data flow graph, this table is continuously accessed by the data replication means, and various control information is added to the same data and continuously output from the program storage means. You. During this time, the output from the queue memory is prohibited, and the input data to the queue memory stays inside the queue memory. The data amount monitoring means monitors the amount of data staying in the queue memory and notifies the data duplication means. When the data staying amount is smaller than a predetermined value,
In response to the arrival of one piece of data, a number of pieces of data are continuously output according to a program (data flow graph). That is, at this time, in principle, the number of data to be copied according to the arrival of one data is unlimited.

一方、データ滞在量が所定の値以上になると、一つの
データの到着に応じて複製するデータの数の上限値を小
さい値(例えば2)に限定する。これによって、キュー
メモリの出力を禁止する時間の短時間に押さえるととも
に、処理装置内部のデータ量、及びキューメモリに入力
されるデータ量が増加するのを抑制することができ、キ
ューメモリのオーバーフローを未然に防ぐことができ
る。
On the other hand, when the data staying amount becomes equal to or more than the predetermined value, the upper limit value of the number of data to be copied is limited to a small value (for example, 2) according to arrival of one data. As a result, the output time of the queue memory can be suppressed to a short time, and the amount of data in the processing device and the amount of data input to the queue memory can be suppressed from increasing. It can be prevented beforehand.

(ヘ)実施例 第1図に本発明のデータ駆動型データ処理装置を用い
たシステム例としてデータフロー計算機システムの概要
を示す。同図のシステムは、システム内部のデータの基
本単位であるデータパケット(本来のデータ値の他に制
御情報を組み合わせたもの)を転送するリング状転送路
であるリングネットワーク(RN)に、それ自身がリング
ネットワーク(RN)の一部をなしデータパケットの入出
力を制御するネットワークインタフェース(NIF)(NI
F)(NIF1)・・・(NIFn)を介して、ホストインタフ
ェース(HI)、データ記憶装置(DM)、データフロー計
算装置1(DFC1)、・・・、データフロー計算装置n
(DFCn)が結合されて、ホストインタフェース(HI)に
はさらにホスト計算機(HC)がつながっている。
(F) Embodiment FIG. 1 shows an outline of a data flow computer system as an example of a system using a data driven type data processing device of the present invention. The system shown in FIG. 1 is connected to a ring network (RN) which is a ring-shaped transfer path for transferring a data packet (a combination of original data values and control information) which is a basic unit of data in the system. Is part of the ring network (RN) and controls the input and output of data packets by using a network interface (NIF) (NI
F) (NIF1)... (NIFn) via the host interface (HI), data storage device (DM), data flow calculation device 1 (DFC1),.
(DFCn), and a host computer (HC) is further connected to the host interface (HI).

同システムのデータフロー計算装置n(DFCn)とネッ
トワークインタフェース(NIFn)とを合わせたものは、
内部がリング状をなすデータ駆動型データ処理装置とし
て動作し、データフローグラフによって記述されたデー
タ駆動型(データフロー型)のプログラムを実行する。
具体的には、まずホスト計算機(HC)から、ホストイン
タフェース(HI)、ネットワークインタフェース(NI
F)、リングネットワーク(RN)、ネットワークインタ
フェース(NIFn)を介してデータフロー計算装置n(DF
Cn)にプログラムがダウンロードされ、次に同じ経路
で、プログラムの実行を開始させるデータパケットであ
る開始パケットがデータフロー計算装置n(DFCn)に入
力されるとプログラムの実行が開始され、プログラムの
実行が終了すると、実行の終了を示すデータパケットで
ある終了パケットが、データフロー計算装置n(DFCn)
からネットワークインタフェース(NIFn)、リングネッ
トワーク(RN)、ネットワークインタフェース(NI
F)、ホストインターフェース(HI)を介してホスト計
算機(HC)に出力される。
The combination of the data flow calculator n (DFCn) and the network interface (NIFn) of the system
It operates as a ring-shaped data driven type data processing device, and executes a data driven type (data flow type) program described by a data flow graph.
Specifically, first, from the host computer (HC), the host interface (HI) and the network interface (NI
F), a data flow calculation device n (DF) via a ring network (RN) and a network interface (NIFn).
Cn), the program is downloaded, and then, when a start packet, which is a data packet for starting the execution of the program, is input to the data flow calculation device n (DFCn) on the same path, the execution of the program is started, and the execution of the program is started. Is completed, an end packet, which is a data packet indicating the end of execution, is sent to the data flow calculation device n (DFCn).
To network interface (NIFn), ring network (RN), network interface (NI
F), and output to the host computer (HC) via the host interface (HI).

第2図に本発明のデータ駆動型データ処理装置の概略
構成を示す。同図の装置に於いて(Q)はキューメモ
リ、(PM)はプログラム記憶手段、(NIF)はネットワ
ークインタフェース、(FC)は発火制御手段、(EXE)
は命令実行手段であり、各処理要素がリング状に結合さ
れている。(1)〜と(30)、(40)、(50)はデータ
線である。
FIG. 2 shows a schematic configuration of a data driven type data processing device of the present invention. In the apparatus shown in the figure, (Q) is a queue memory, (PM) is a program storage means, (NIF) is a network interface, (FC) is an ignition control means, and (EXE).
Is an instruction execution means, and each processing element is connected in a ring shape. (1) to (30), (40) and (50) are data lines.

第2図を用いて本データ処理装置の動作の概略を説明
する。ホスト計算機(HC)からロードされたプログラム
(データフローグラフ)は、プログラム記憶手段(PM)
に格納される。開始パケットが上記各要素(NIF)、(F
C)、(EXE)、(Q)を介してプログラム記憶手段(P
M)に到着するとプログラムの実行が開始される。プロ
グラムの実行中に該記憶手段(PM)に入力されるパケッ
トの制御情報はこのデータフローグラフに従って付け替
えられたり、同じくデータフローグラフに従ってデータ
パケットの複製処理が行なわれたりする。プログラム記
憶手段(PM)から出力されたパケットはネットワークイ
ンターフェース(NIF)において外部に出力されるか発
火制御手段(FC)に向けて転送されるかの選択がなされ
る。この発火制御手段(FC)では主に、二項演算命令な
どの左オペランドと右オペランドをデータ対として検出
して、二つのオペランドを対にして出力する発火制御処
理を行なう。左オペランドは出力ライン(5)に右オペ
ランドは出力ライン(50)に出力される。命令実行手段
(EXE)では、到着したパケットの制御情報によって指
定される命令を到着したパケットに対して施して出力す
る。発火制御手段(FC)命令実行手段(EXE)において
はパケットが滞ることがないがネットワークインターフ
ェース(NIF)において外部からパケットが入力される
時と出力しようとして出力できない時、及びプログラム
記憶手段(PM)においてデータの複製処理が行なわれる
時はビジー状態となり後続するデータパケットは停止し
てビジー状態の解除を待たなければならない。キューメ
モリ(Q)はこのような時にデータを一時格納して待た
せるためのパッファリング機能を遂行する。キューメモ
リ(Q)は、内部のキューメモリ中のデータ滞在量を監
視するデータ監視手段を含んでいる。プログラム記憶手
段(PM)においてデータ複製処理の必要が生じた時、キ
ューメモリ(Q)のデータ滞在量が所定の値より小さい
ならばプログラム記憶手段(PM)に格納されたプログラ
ムに従った数の複製データを連続して出力するが、キュ
ーメモリ(Q)のデータ滞在量が所定の値以上ならば一
度に連続して出力する複製データの数を2以下に制限
し、ビジー状態の期間を最小限に押さえる。これによっ
て、キューメモリ(Q)のデータ滞在量の増加を抑制
し、キューメモリ(Q)のオーバーフローを防ぐことが
できる。
The outline of the operation of the data processing apparatus will be described with reference to FIG. The program (data flow graph) loaded from the host computer (HC) is stored in the program storage unit (PM).
Is stored in The start packet consists of the above elements (NIF), (F
C), (EXE) and program storage means (P
Upon arrival at M), execution of the program is started. During the execution of the program, the control information of the packet inputted to the storage means (PM) is replaced according to the data flow graph, and the data packet is copied according to the data flow graph. The packet output from the program storage means (PM) is selected to be output to the outside at the network interface (NIF) or transferred to the ignition control means (FC). The firing control means (FC) mainly performs a firing control process of detecting a left operand and a right operand such as a binary operation instruction as a data pair and outputting the two operands as a pair. The left operand is output on output line (5) and the right operand is output on output line (50). The instruction execution means (EXE) applies an instruction specified by the control information of the arriving packet to the arriving packet and outputs it. In the firing control means (FC) command execution means (EXE), there is no packet delay, but when a packet is input from the outside at the network interface (NIF) and when it is attempted to output and cannot be output, and the program storage means (PM) In the case where the data replication process is performed in step (1), the data packet is in a busy state, and the subsequent data packet must be stopped to wait for the release of the busy state. In such a case, the queue memory (Q) performs a buffering function for temporarily storing data and making it wait. The queue memory (Q) includes data monitoring means for monitoring the amount of data staying in the internal queue memory. When a data duplication process is required in the program storage means (PM), if the data staying amount of the queue memory (Q) is smaller than a predetermined value, the number of data according to the program stored in the program storage means (PM) is reduced. Duplicate data is continuously output. If the data staying amount of the queue memory (Q) is equal to or more than a predetermined value, the number of duplicate data to be output at one time is limited to two or less, and the busy period is minimized. To the limit. As a result, it is possible to suppress an increase in the amount of data staying in the queue memory (Q) and prevent overflow of the queue memory (Q).

各処理要素において上記のような処理が施されながら
データパケットが周回することによってプログラムが実
行される。また、データ処理装置内部に複数のデータパ
ケットが存在する時には、各々のデータパケットに対し
て、異なる処理要素において同時に異なる処理を施すパ
イプライン型の処理を行なうことができる。従って本デ
ータ処理装置は、リング状のパイプライン型データ処理
装置であると言える。
The program is executed by the data packet circulating while the processing described above is performed in each processing element. Further, when a plurality of data packets exist in the data processing device, a pipeline-type process in which different processing elements simultaneously perform different processes on each data packet can be performed. Therefore, it can be said that the present data processing apparatus is a ring-shaped pipeline type data processing apparatus.

第3図にキューメモリ(Q)の更に詳細な構成図を示
し、第4図にプログラム記憶手段(PM)の更に詳細な構
成図を示す。更に、第5図〜第8図に本データ処理装置
に適用するデータパケットの構成を示す。第5図はデー
タをデータ処理装置内部の所定のメモリにダウンロード
するためのロードパケット、第6図はデータ処理装置内
部の所定のメモリからデータをダンプする(読み出す)
ためのダンプパケット、第7図及び第8図はプログラム
の実行中に処理される実行パケットであり、発火制御手
段(FC)において対となる左右のオペランドが検出され
て、二つのオペランドが組になって出力されたときに第
7図の構成となる。全てのデータパケットは2語構成で
あり、1語目と2語目はヘッダ識別子〔H〕によって識
別される。各データパケットはデータ値とその他の情報
(制御情報)から成る。制御情報のうち〔f1、f0〕はパ
ケット識別子であり第10図のように定義されている。モ
ジュール番号は、ホストインターフェース(H1)、デー
タ記憶装置(DM)、及び各データフロー計算装置(DFC
1)、(DFC2)、・・・(DFCn)などの各処理モジュー
ルを識別する番号であり、各モジュールは自分の番号を
持っており自分のモジュール番号を持ったデータパケッ
トのみを入力するようになっている。対象メモリ番号
〔S2S1S0〕はロードあるいはダンプの際に対象となるメ
モリを指定する番号である。セレクションコード〔S2S1
S0〕は、データ処理装置内部でデータパケットが処理さ
れる経路を規定したものであり各コード値は第11図に示
すような意味を持つ。即ち、例えば、開始パケットは、
〔S2S1S0〕=〔000〕というプログラム記憶手段(PM)
宛のセレクションコードを保持しており、これが記憶手
段(PM)において〔S2S1S0〕=〔101〕に付け替えられ
ると、〔S2S1S0〕=〔101〕を保持したパケットは発火
制御手段(FC)において処理され、該手段(FC)は処理
を終えるとセレクションコードを〔S2S1S0〕=〔001〕
に変更したパケットを出力する。するとこのパケットは
次には命令実行手段(EXE)において処理され、該手段
(EXE)は処理を終えるとセレクションコードを〔S2S1S
0〕=〔000〕に変更したパケットを出力することによ
り、パケットは再びプログラム記憶手段(PM)において
処理される。このように、各処理要素は第11図に示す所
定のセレクションコードを保持したパケットのみを処理
しそれ以外のパケットは何も行なわずに通過させるとと
もに、処理を施したパケットに対して各処理要素がその
セレクションコードを次の処理要素に向けて更新するこ
とによって、プログラムの実行処理が進行する。この他
に、ノード番号はデータフローグラフの各ノードを識別
する番号、環境番号は例えば本データ処理装置の複数の
使用者が本データ処理装置にロードされた同一のプログ
ラムを同時に実行する際に、各使用者を識別するための
番号である。また、順序番号は相互に順序関係を持ち同
一のノード番号と環境番号を保持した複数のデータパケ
ットに対して同一のプログラムで記述された処理を行な
う時に各データパケットの順序関係を識別する番号であ
り、〔E〕順序関係を持つ複数のデータパケットのうち
の末尾のデータパケットであるときのみ1となる末尾フ
ラグである。〔ノード番号〕、〔環境番号〕、〔順序番
号〕を合わせたものをタグと呼び、このタグの一致した
二つのパケットが二項演算の左右オペランドとして検出
される。〔L/R〕は左右オペランドを区別するフラグで
あり、左オペランドの時1となる。〔CY〕、〔OV〕は演
算の結果格納される演算フラグであり、〔CY〕はキャリ
ー(桁上げ)フラグ、〔OV〕はオーバーフロー(桁あふ
れ)フラグである。〔TF〕は条件判定命令の実行によっ
て格納される真偽フラグであり、判定結果が、真の時
1、偽の時0となる。第9図にプログラム記憶手段にお
ける記憶形式を示す。
FIG. 3 shows a more detailed configuration diagram of the queue memory (Q), and FIG. 4 shows a more detailed configuration diagram of the program storage means (PM). FIGS. 5 to 8 show the configuration of a data packet applied to the data processing apparatus. FIG. 5 is a load packet for downloading data to a predetermined memory inside the data processing device, and FIG. 6 is dumping (reading) data from a predetermined memory inside the data processing device.
7 and 8 are execution packets that are processed during execution of the program. The ignition control means (FC) detects the pair of left and right operands and forms two operands as a set. When it is output as shown in FIG. All data packets have a two-word structure, and the first and second words are identified by a header identifier [H]. Each data packet consists of a data value and other information (control information). [F 1 , f 0 ] of the control information is a packet identifier and is defined as shown in FIG. The module numbers are stored in the host interface (H1), data storage device (DM), and each data flow calculation device (DFC
1), (DFC2),... (DFCn) are numbers that identify each processing module. Each module has its own number and inputs only data packets with its own module number. Has become. The target memory number [S 2 S 1 S 0 ] is a number for specifying a target memory when loading or dumping. Selection code [S 2 S 1
S 0 ] defines a path through which a data packet is processed inside the data processing device, and each code value has a meaning as shown in FIG. That is, for example, the start packet is
[S 2 S 1 S 0] = [000] that program storage means (PM)
It holds a selection code addressed, which was held when is replaced in [S 2 S 1 S 0] = [101] in the storage means (PM), the [S 2 S 1 S 0] = [101] Packet Is processed in the firing control means (FC), and when the processing is completed, the means (FC) sets the selection code to [S 2 S 1 S 0 ] = [001]
Output the changed packet. The packet is then processed by the instruction execution means (EXE), and when the processing (EXE) completes the processing, the selection code is changed to [S 2 S 1 S
By outputting the packet changed to 0 ] = [000], the packet is processed again in the program storage means (PM). In this way, each processing element processes only the packet holding the predetermined selection code shown in FIG. 11 and passes the other packets without performing any processing. Updates the selection code toward the next processing element, whereby the program execution process proceeds. In addition, the node number is a number for identifying each node of the data flow graph, and the environment number is, for example, when a plurality of users of the data processing apparatus execute the same program loaded on the data processing apparatus at the same time. This is a number for identifying each user. The sequence number is a number that identifies the sequence relationship of each data packet when performing a process described by the same program on a plurality of data packets having the same node number and the same environment number and having the same order relationship with each other. Yes, [E] is a tail flag that is set to 1 only when the data packet is the last data packet among a plurality of data packets having an order relationship. A combination of [node number], [environment number], and [order number] is called a tag, and two packets that match the tag are detected as left and right operands of a binary operation. [L / R] is a flag for distinguishing between left and right operands, and is set to 1 for a left operand. [CY] and [OV] are operation flags stored as a result of the operation, [CY] is a carry (carry) flag, and [OV] is an overflow (overflow) flag. [TF] is a true / false flag stored by execution of the condition determination instruction. The determination result is 1 when true and 0 when false. FIG. 9 shows a storage format in the program storage means.

以下では、第3図、第4図及び第9図を用いて本デー
タ処理装置の動作を更に詳細に説明する。
Hereinafter, the operation of the data processing apparatus will be described in more detail with reference to FIGS. 3, 4, and 9.

I.キューメモリ(Q)の動作 キューメモリ(Q)は、FIFOメモリ(103)、FIFO制
御回路(102)、及びデータ量監視視手段(MONIT)から
構成される。データ量監視手段(MONIT)は、カウンタ
(109)、デコーダ(111)を含む。
I. Operation of Queue Memory (Q) The queue memory (Q) includes a FIFO memory (103), a FIFO control circuit (102), and a data amount monitoring and viewing means (MONIT). The data amount monitoring means (MONIT) includes a counter (109) and a decoder (111).

カウンタ(109)の出力は、キューメモリ滞在データ
数(110)であり、これは、外部からのカウンタリセッ
ト信号(108)によってゼロに初期化される。
The output of the counter (109) is the queue memory stay data count (110), which is initialized to zero by an external counter reset signal (108).

データ線(1)にデータパケットの1語目が到着する
とヘッダ識別信号(101)がハイレベルになりこれに応
じて、FIFO制御回路(102)は書き込み信号(105)を出
力して到着したデータパケットを1語目、2語目の順に
FIFOメモリ(103)に書き込む。この時、インクリメン
ト信号(107)によってカウンタ(109)は、インクリメ
ントされる。
When the first word of the data packet arrives at the data line (1), the header identification signal (101) becomes high level, and in response, the FIFO control circuit (102) outputs the write signal (105) and arrives at the data line. Packets in the order of the first and second words
Write to FIFO memory (103). At this time, the counter (109) is incremented by the increment signal (107).

FIFO制御回路(102)は、キューメモリ滞在データ数
(110)がゼロでなく、かつ待ち要求信号(204)によっ
て待ちが要求されていなければ、読み出し信号(104)
が出力して、FIFOメモリ(103)に書き込まれているデ
ータパケットのうち一番早く書き込まれたデータパケッ
トを、1語目、2語目の順に読み出してデータ線2に出
力する。
The FIFO control circuit (102) outputs the read signal (104) if the queue memory stay data number (110) is not zero and the wait is not requested by the wait request signal (204).
Is output, and the data packet written first among the data packets written in the FIFO memory (103) is read out in the order of the first word and the second word and output to the data line 2.

FIFOメモリ(103)に滞在するデータパケット数(11
0)がゼロの時、または待ち要求信号(204)によって待
ちが要求されている時は、読みだし信号(104)が禁止
されてFIFOメモリ(103)からの読みだしが禁止され、F
IFOメモリ(103)への書き込みのみが許可される。
Number of data packets staying in the FIFO memory (103) (11
When (0) is zero, or when a wait is requested by the wait request signal (204), the read signal (104) is prohibited and reading from the FIFO memory (103) is prohibited.
Only writing to the IFO memory (103) is permitted.

また、データ量監視手段(MONIT)内のデコーダ(11
1)はキューメモリ滞在データ数(110)が所定の値(例
えばFIFOメモリの最大量の15/16)以上になると、デー
タ複製処理抑制信号(112)を出力する。
Also, the decoder (11) in the data amount monitoring means (MONIT)
In 1), when the number of data staying in the queue memory (110) is equal to or more than a predetermined value (for example, 15/16 of the maximum amount of the FIFO memory), a data replication processing suppression signal (112) is output.

II.プログラム記憶手段(PM)の動作 プログラム記憶手段(PM)は、プログラムメモリ(20
3)、データ複製手段(201)、インクリメント機能をも
ったヘッダレジスタ(R1)及びアドレスレジスタ(21
0)、及びテイルレジスタ(R2)から構成されている。
II. Operation of the program storage means (PM) The program storage means (PM)
3), data duplication means (201), header register (R1) having an increment function, and address register (21)
0) and a tail register (R2).

データ線(2)にデータパケットが到着するとプロデ
ータ複製手段(201)に制御情報(202)が入力され、ア
ドレスレジスタ(210)にはロード(ダンプ)パケット
の時はアドレスが、実行パケットの時はノード番号がア
ドレス情報線(211)を経てラッチされるとともにレジ
スタ(R1)にパケットの1語目がラッチされる。アドレ
スレジスタ(210)の出力はプログラムメモリ(203)へ
のアドレスとなる。制御情報がプログラムメモリ(20
3)へのロードを示しておれば、次のタイミングでパケ
ットの2語目のデータ値がレジスタ(R2)から出力さ
れ、書き込み信号(208)によってデータ線(212)を介
してプログラムメモリ(203)に書き込まれる。制御情
報がプログラムメモリ(203)からのダンプを示してお
れば、読みだし信号(207)によってデータ線(212)を
介してプログラムメモリ(203)からデータ値が読みだ
されパケットの2語目に格納される。
When a data packet arrives at the data line (2), the control information (202) is input to the pro-data duplication means (201), and the address is loaded into the address register (210) in the case of a load (dump) packet and in the case of an execution packet. The node number is latched via the address information line (211) and the first word of the packet is latched in the register (R1). The output of the address register (210) is an address to the program memory (203). Control information is stored in the program memory (20
If the loading to 3) is indicated, the data value of the second word of the packet is output from the register (R2) at the next timing, and the program signal (208) is output via the data line (212) by the write signal (208). ) Is written. If the control information indicates a dump from the program memory (203), the data value is read from the program memory (203) via the data line (212) by the read signal (207) and the second word of the packet is read. Is stored.

ロードパケットによってプログラムメモリ(203)に
はデータフログラフ(プログラム)の接続構造とプログ
ラムの実行中に使用される定数データ値が第9図に示す
ような形式でロードされる。同図におけるモジュール番
号、セレクションコード、L/R、ノード番号は、プログ
ラム制御手段(PM)に到着したパケットに新しく付加す
るための制御情報である。この他に定数データ値が格納
されていることを示す定数フラグ、データパケットの複
製処理を行なうことを示すコピーフラグが記憶されてい
る。
The connection structure of the data flow graph (program) and constant data values used during the execution of the program are loaded into the program memory (203) in the format shown in FIG. 9 by the load packet. The module number, selection code, L / R, and node number in the figure are control information for newly adding to a packet arriving at the program control means (PM). In addition, a constant flag indicating that a constant data value is stored and a copy flag indicating that a data packet copy process is to be performed are stored.

再び第3図に戻り、プログラム制御手段(PM)に到着
したパケットが該手段(PM)で処理される実行パケット
(セレクションコード[S2S1S0]=[000])であれば
アドレスレジスタ(210)に保持されたノード番号をア
ドレスとしてプログラムメモリ(PM)を読みだし、パケ
ットの1語目のうちのモジュール番号、セレクションコ
ード、L/R、ノード番号のフィールドを第9図に示すよ
うな新しい制御情報に置換して、パケットの2語目のデ
ータ値はそのままにして出力する。この時プログラムメ
モリ(203)から読みだされてデータ複製手段(201)に
入力されているフラグ情報(206)(定数フラグ、コピ
ーフラグ)のうちのコピーフラグが“0"であれば到着し
たパケットに対する処理を終了する。
Referring back to FIG. 3, if the packet arriving at the program control means (PM) is an execution packet (selection code [S 2 S 1 S 0 ] = [000]) processed by the means (PM), the address register The program memory (PM) is read using the node number held in (210) as an address, and the fields of the module number, selection code, L / R, and node number in the first word of the packet are shown in FIG. The new data is replaced with new control information, and the data value of the second word of the packet is output as it is. At this time, if the copy flag of the flag information (206) (constant flag, copy flag) read from the program memory (203) and input to the data copying means (201) is "0", the packet arrives. The processing for is ended.

もしコピーフラグが“1"であれば、待ち要求信号(20
4)によりキューメモリ(Q)に待ちを要求する。更に
この時、データ複製処理抑制信号(112)が出力されて
いるかどうかをデータ複製手段(201)において判定す
る。
If the copy flag is “1”, the wait request signal (20
4) A wait is requested to the queue memory (Q). Further, at this time, the data copy means (201) determines whether or not the data copy processing suppression signal (112) has been output.

抑制信号(112)が出力されていなければ、アドレス
レジスタ(210)をインクリメントして、プログラムメ
モリ(203)の次の番地を読み出し、読み出した新しい
制御情報に置換してパケットの1語目を出力するととも
にデータラムメモリ制御回路(201)に新たなフラグ情
報を入力し、新たに読み出した定数フラグが“0"であれ
ば出力するパケットの2語目のデータ値として、入力パ
ケットの保持していたデータ値をそのまま出力し、新た
に読み出した定数フラグが“1"であればアドレスレジス
タ(210)をさらにインクリメントしてプログラムメモ
リ(203)に格納されている定数データ値を読み出し、
出力するパケットの2語目のデータ値として、この定数
データ値を出力する。このような動作を、キューメモリ
を待ち状態にしたまま、新たに読み出したコピーフラグ
が“0"になるまで繰り返す。(複製数無制限のパケット
複製処理) 一方、抑制信号(112)が出力されていれば、ヘッダ
レジスタ(R1)に保持されている到着したデデータパケ
ットの制御情報のうちのノード番号を1インクリメント
した制御情報を1語目のデータとしてデータ線(3)に
出力し、しかる後に、到着したデータパケットの2語目
のデータ値をテイルレジスタ(R2)を介してデータ線
(3)に出力して、到着した一つのデータパケットに対
する処理を終了する。従って、例えば、第9図のような
形式でプログラムが記憶されている時に、ノード番号m
を保持したデータパケットが到着すると、抑制信号(11
2)が出力されていない時は、プログラムメモリ(203)
のm番地、m+1番地、m+2番地の内容を制御情報と
した3つのデータパケットが連続的に出力され、2つの
パケットを出力する間、キューメモリは出力禁止状態と
なる。一方、抑制信号(112)が出力されていれば、m
番地の制御情報を保持したデータパケット、及び到着し
たデータパケットのノード番号を1インクリメントした
ノード番号m+1を保持したデータパケットの2つのデ
ータパケットを出力し、1つのパケット出力する間のみ
キューメモリ(Q)は禁止状態となる。ここで出力した
m+1のノード番号を保持したデータパケットは、パイ
プラインリング上を周回し、しかるべき後に、再びプロ
グラム記憶手段(PS)に到着する。この時も、やはり抑
制信号(112)の有無に応じて同様に選択的に処理を行
なう。即ち、通常は、データ駆動型処理方式の利点を生
かして一度に多数のデータを複製する並列的処理を進
め、キューメモリのデータ滞在量が所定の値以上になる
と、逐次的処理に変更することになる。このような処理
方式により、キューメモリのオーバーフローが防止され
る。
If the suppression signal (112) has not been output, the address register (210) is incremented, the next address of the program memory (203) is read out, replaced with the read new control information, and the first word of the packet is output. At the same time, new flag information is input to the data ram memory control circuit (201), and if the newly read constant flag is "0", the input packet is held as the data value of the second word of the output packet. If the newly read constant flag is "1", the address register (210) is further incremented and the constant data value stored in the program memory (203) is read out.
This constant data value is output as the data value of the second word of the packet to be output. Such an operation is repeated with the queue memory kept in a waiting state until the newly read copy flag becomes “0”. (Packet copy processing with unlimited number of copies) On the other hand, if the suppression signal (112) is output, the node number of the control information of the arriving data packet held in the header register (R1) is incremented by one. The control information is output to the data line (3) as data of the first word, and thereafter, the data value of the second word of the arriving data packet is output to the data line (3) via the tail register (R2). Then, the processing for one arriving data packet is completed. Therefore, for example, when a program is stored in a format as shown in FIG.
When the data packet holding the packet arrives, the suppression signal (11
When 2) is not output, program memory (203)
, Three data packets using the contents of addresses m, m + 1, and m + 2 as control information are continuously output, and while the two packets are being output, the queue memory is in an output prohibited state. On the other hand, if the suppression signal (112) is output, m
Two data packets, a data packet holding the control information of the address and a data packet holding the node number m + 1 obtained by incrementing the node number of the arriving data packet by 1, are output, and the queue memory (Q ) Is prohibited. The data packet holding the (m + 1) node number output here circulates on the pipeline ring, and arrives at the program storage means (PS) again after an appropriate time. Also at this time, processing is similarly selectively performed according to the presence or absence of the suppression signal (112). In other words, usually, by taking advantage of the data-driven processing method, parallel processing for copying a large number of data at a time is advanced, and when the amount of data in the queue memory exceeds a predetermined value, the processing is changed to sequential processing. become. With such a processing method, overflow of the queue memory is prevented.

(ト)発明の効果 以上述べたように、本発明のデータ駆動型データ処理
装置は、ハードウェアの大幅な増加を必要とせずに、デ
ータ複製処理によって生じるキューメモリのオーバーフ
ローを未然に防ぐことができる。これによって、キュー
メモリの最大容量に見合った効率的なデータ駆動型プロ
グラム実行が可能となる。
(G) Effects of the Invention As described above, the data-driven data processing apparatus of the present invention can prevent the overflow of the queue memory caused by the data duplication processing without requiring a large increase in hardware. it can. As a result, an efficient data-driven program can be executed in accordance with the maximum capacity of the queue memory.

更に、これによって、オーバーフローの発生に伴う、
プログラムの変更、修正、再実行といった作業の必要が
無くなり、ハードウェアの制限を意識せずにプログラム
が作成できるようになるためプログラム開発効率が大幅
に向上する。
In addition, this allows the overflow to occur,
There is no need to change, modify, and re-execute the program, and the program can be created without being aware of the limitations of the hardware. This greatly improves program development efficiency.

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

第1図は本発明を用いたデータ駆動型データ処理装置が
用いられるデータフロー計算機システムの構成図、第2
図は本発明を用いたデータ駆動型データ処理装置の構成
図、第3図はキューメモリの構成図、第4図はプログラ
ム記憶手段の構成図、第5図、第6図、第7図、並びに
第8図は本発明を用いたデータ駆動型データ処理装置に
おいて用いられる夫々のデータパケットの構成図、第9
図は本発明を用いたデータ駆動型データ処理装置のプロ
グラム記憶手段の記憶形式の一例を示すメモリ図、第10
図及び第11図は夫々コード対照表図である。 (DFCn)……データフロー計算装置、 (PM)……プログラム記憶手段、 (Q)……キューメモリ、 (MONIT)……データ量監視手段。
FIG. 1 is a configuration diagram of a data flow computer system in which a data driven data processing device using the present invention is used.
FIG. 3 is a block diagram of a data-driven data processing apparatus using the present invention, FIG. 3 is a block diagram of a queue memory, FIG. 4 is a block diagram of a program storage means, FIG. 5, FIG. 6, FIG. FIG. 8 is a configuration diagram of each data packet used in the data driven type data processing apparatus using the present invention.
FIG. 10 is a memory diagram showing an example of a storage format of a program storage means of a data driven data processing device using the present invention.
FIG. 11 and FIG. 11 are code comparison tables. (DFCn) Data flow calculator, (PM) Program storage means, (Q) Queue memory, (MONIT) Data amount monitoring means.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】データ値と制御情報を含むデータをプログ
ラムに従って、処理するデータ駆動型のデータ処理装置
に於て、 1つのデータの到着によって複数のデータを生成するデ
ータ複製処理を行なうデータ複製手段と、前記データ複
製処理の終了を待ち合わせる待ちデータを貯えるための
キューメモリと、 前記キューメモリに貯えられているデータ量を監視する
データ量監視手段とを備え、 前記キューメモリに貯えられているデータ量に応じて、
前記データ複製手段において1つのデータの到着によっ
て生成される複製データ数の上限値を変更することを特
徴としたデータ駆動型データ処理装置。
1. A data duplication means for performing data duplication processing for generating a plurality of data upon arrival of one data in a data driven type data processing apparatus which processes data including a data value and control information in accordance with a program. And a queue memory for storing waiting data for waiting for the end of the data duplication processing; and a data amount monitoring unit for monitoring the amount of data stored in the queue memory, the data stored in the queue memory. Depending on the quantity,
A data-driven data processing apparatus, wherein the data copying means changes an upper limit value of the number of pieces of copied data generated by arrival of one piece of data.
JP28447388A 1988-11-10 1988-11-10 Data driven data processor Expired - Fee Related JP2594140B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28447388A JP2594140B2 (en) 1988-11-10 1988-11-10 Data driven data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28447388A JP2594140B2 (en) 1988-11-10 1988-11-10 Data driven data processor

Publications (2)

Publication Number Publication Date
JPH02129773A JPH02129773A (en) 1990-05-17
JP2594140B2 true JP2594140B2 (en) 1997-03-26

Family

ID=17678980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28447388A Expired - Fee Related JP2594140B2 (en) 1988-11-10 1988-11-10 Data driven data processor

Country Status (1)

Country Link
JP (1) JP2594140B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2668156B2 (en) * 1990-08-28 1997-10-27 シャープ株式会社 Execution control method of data driven type information processing device

Also Published As

Publication number Publication date
JPH02129773A (en) 1990-05-17

Similar Documents

Publication Publication Date Title
JP2539199B2 (en) Digital processor controller
US4896259A (en) Apparatus for storing modifying data prior to selectively storing data to be modified into a register
KR100335785B1 (en) Execution of data processing instructions
JP3797570B2 (en) Apparatus and method using semaphore buffer for semaphore instructions
JP2594140B2 (en) Data driven data processor
IE61307B1 (en) Method to execute two instruction sequences in an order determined in advance
JP2639988B2 (en) Data driven data processor
EP0700005B1 (en) Vector data bypass mechanism for vector computer
JP2630779B2 (en) Data driven data processor
EP0177712A2 (en) Masked data fetch and modifying device
JP2906958B2 (en) User program loading method
JP2594093B2 (en) Data driven data processor
JP2814683B2 (en) Instruction processing unit
JP2594091B2 (en) Data driven data processor
JP2755646B2 (en) Data driven data processor
JP2001184259A (en) Arithmetic processor and data transferring method in the device
JP2883488B2 (en) Instruction processing unit
JP2622026B2 (en) Register writing control method in central processing unit
JP2604604B2 (en) Stack control device
JPH0447350A (en) Main storage read/response control
JP2594092B2 (en) Data driven data processor
JPH11212900A (en) System controller
JP2635863B2 (en) Central processing unit
JPH0283779A (en) Instruction execution control system for vector processor
JPS61143850A (en) Processor

Legal Events

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