JP2765058B2 - Stream operation completion detection method and apparatus - Google Patents
Stream operation completion detection method and apparatusInfo
- Publication number
- JP2765058B2 JP2765058B2 JP14515689A JP14515689A JP2765058B2 JP 2765058 B2 JP2765058 B2 JP 2765058B2 JP 14515689 A JP14515689 A JP 14515689A JP 14515689 A JP14515689 A JP 14515689A JP 2765058 B2 JP2765058 B2 JP 2765058B2
- Authority
- JP
- Japan
- Prior art keywords
- token
- data
- stream
- input
- value
- 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 - Lifetime
Links
Landscapes
- Multi Processors (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、メモリ部,演算部をパイプライン状のバス
で結合し、データ駆動方式により演算順序をコントロー
ルすることを特徴とするデータフロープロセッサにおい
て、トークンの演算制御を行うストリーム演算終了検知
方法及びその装置に関する。DETAILED DESCRIPTION OF THE INVENTION [Industrial Application Field] The present invention relates to a data flow processor in which a memory unit and an operation unit are connected by a pipeline bus, and the operation order is controlled by a data driving method. The present invention relates to a stream computation end detection method for controlling the computation of a token and a device therefor.
従来、データフロー方式のプロセッサとしては特開昭
58−70360号公報に記載されている技術があり、それを
製品化したものとして日本電気株式会社製のデータフロ
ープロセッサであるμPD7281がある。Conventionally, as a data flow type processor,
There is a technology described in Japanese Patent Application Laid-Open No. 58-70360, and as a product thereof, there is a μPD7281 which is a data flow processor manufactured by NEC Corporation.
このμPD7281は第6図に示されるような構成を持つ。
外部バスからデータフロープロセッサに入力されるデー
タの単位となるトークンは、データ値と、入力後にリン
クテーブル92を参照するためのリンクテーブルアドレス
と、そのトークンが処理されるべきデータフロープロセ
ッサを示すモジュール番号とを持つ。トークン入力部91
は、外部バスを通るトークンのモジュール番号がそのデ
ータフロープロセッサの番号と一致する場合にそのトー
クンを内部に入力し、そうでない場合にトークン出力部
97を通じてそのまま外部バスへ出力する。入力されたト
ークンは、そのトークンの持つリンクテーブルアドレス
によりリンクテーブル92を参照し、そこでファンクショ
ンテーブル93を参照するためのファンクションテーブル
アドレスと次回にリンクテーブル92を参照するためのリ
ンクテーブルアドレスとを得た後にファンクションテー
ブル93へ送られる。The μPD7281 has a configuration as shown in FIG.
A token, which is a unit of data input to the data flow processor from the external bus, includes a data value, a link table address for referring to the link table 92 after input, and a module indicating the data flow processor in which the token is to be processed. With numbers. Token input unit 91
Input the token internally if the module number of the token passing through the external bus matches the number of the data flow processor; otherwise, the token output unit
Output to the external bus as it is through 97. The input token refers to the link table 92 based on the link table address of the token, and obtains a function table address for referencing the function table 93 and a link table address for referencing the link table 92 next time. After that, it is sent to the function table 93.
トークンはファンクションテーブル93においてそのフ
ァンクションテーブルアドレスによる参照を行い、そこ
でデータメモリ94の管理情報の参照・更新を行うと同時
に、プロセッシングユニット96での処理内容を示す処理
コードとデータメモリ94のアクセスアドレスとを得る。
トークンはそこからデータメモリ94に送られ、そこで必
要に応じて2項演算の相手方のオペランドの待ち合わせ
あるいは定数演算のための定数の読み出しを行う。キュ
ーメモリ95はプロセッシングユニット96が前のトークン
を処理中で次のトークンを入力できない時にトークンを
一時保持するためのメモリであり、プロセッシングユニ
ット96がビジーでない場合には、トークンはキューメモ
リ95からプロセッシングユニット96に送られ、その処理
コードに応じて、整数データの加減乗算,論理演算,シ
フト,比較,ビット反転,プライオリティエンコーディ
ング,分流,数値発生,コピー,内部レジスタを利用し
た演算などのうちの1つの処理を受ける。処理をうけた
トークンは、リンクテーブル92に送られ、再びそのリン
クテーブルアドレスにより参照を行う。以下同様にして
外部バス出力命令が実行されるまで内部のリングバスを
回り、そのデータ値に対して必要な処理を受ける。The token refers to the function table address in the function table 93, and refers to / updates the management information in the data memory 94. At the same time, the processing code indicating the processing contents in the processing unit 96, the access address of the data memory 94, and the like. Get.
The token is sent from there to the data memory 94, where it waits for the operand of the other party of the binary operation or reads out the constant for the constant operation as necessary. The queue memory 95 is a memory for temporarily holding the token when the processing unit 96 is processing the previous token and cannot input the next token.If the processing unit 96 is not busy, the token is processed from the queue memory 95. The data is sent to the unit 96, and according to the processing code, one of the addition, subtraction, multiplication, logical operation, shift, comparison, bit inversion, priority encoding, diversion, numerical value generation, copy, operation using the internal register, etc. of the integer data is performed. Receive one process. The processed token is sent to the link table 92, and is referred again by the link table address. In the same manner, the circuit goes around the internal ring bus until the external bus output instruction is executed, and receives necessary processing for the data value.
トークンがプロセッシングユニット96で処理を受けた
のち外部バス出力命令により外部バスへ出力されるべき
場合には、そのデータフロープロセッサでの最後の演算
処理をプロセッシングユニット96で受けた後、まずリン
クテーブル92で外部バストークンとして持つべきリンク
テーブルアドレスをフェッチし、ついでファンクション
テーブル93で同じく外部バストークンとして持つべきモ
ジュール番号及び出力を示す処理コードをフェッチした
後にデータメモリ94を経てキューメモリ95へ入力され
る。キューメモリ95の出口においてトークンの持つ処理
コードが出力を示すものである場合には、トークンはキ
ューメモリ95からトークン出力部97へ送られ、先に述べ
たように獲得したモジュール番号とリンクテーブルアド
レスとを用いて外部バストークンの形に変形された後
に、外部バスへ出力される。If the token is to be output to an external bus by an external bus output instruction after being processed by the processing unit 96, the processing unit 96 receives the last operation processing in the data flow processor, and then the link table 92 Fetches a link table address to be held as an external bus token, and fetches a processing code indicating a module number and output to be held as an external bus token in the function table 93, and then inputs the queue to the queue memory 95 via the data memory 94. . If the processing code of the token indicates an output at the exit of the queue memory 95, the token is sent from the queue memory 95 to the token output unit 97, and the module number and the link table address obtained as described above are obtained. After being transformed into the form of an external bus token by using, the data is output to the external bus.
このように従来のデータフロープロセッサでは、同じ
処理を受けるべき複数のトークンと同じトークン識別子
(リンクテーブルアドレスと呼ぶ)を与えて連続して流
すという手法が用いられる。このような連続した流れを
ストリームと呼ぶ。As described above, in the conventional data flow processor, a method is used in which a plurality of tokens to be subjected to the same processing are given the same token identifier (referred to as a link table address) and are continuously transmitted. Such a continuous flow is called a stream.
従来のプロセッサでは、ストリームデータの累積加算
をする場合には、第7図に示すように次のような方法が
用いられる、 すなわち、第7図(a)に示される方法は、演算部
(プロセッサユニット)にレジスタを設け、ストリーム
データを流し込んでトークンが入力されるごとにレジス
タで累積加算を行う。In a conventional processor, when performing cumulative addition of stream data, the following method is used as shown in FIG. 7. That is, the method shown in FIG. A unit is provided with a register, and each time a token is input by inputting stream data, the register performs cumulative addition.
第7図(b)に示される方法は、加算を2項加算の組
合せに分解し、予め最後に総和が求められるようにトー
ナメント方式にプログラムした上で、ストリームデータ
を分配して入力する。In the method shown in FIG. 7 (b), the addition is decomposed into a combination of binomial additions, the program is programmed in a tournament system so that the sum is finally obtained, and then the stream data is distributed and input.
第7図(c)に示される方法は、μPD7281の“convo
命令”に見られるように、演算ノードに入力されるスト
リームデータとそれまでに計算した部分和とを奇数個目
で分流し、この下の加算命令を用いて2項ずつ加算し、
結果を入力アークに戻すという動作を、予め与えられた
ストリームの長さに対応する回数行った後に累積加算結
果を出力する。The method shown in FIG. 7 (c) uses the “convo” of μPD7281.
Instruction ", the stream data input to the operation node and the partial sum calculated so far are divided by an odd-numbered number, and two terms are added using the addition instruction below,
After performing the operation of returning the result to the input arc the number of times corresponding to the length of the stream given in advance, the cumulative addition result is output.
このような方法により、データフロープロセッサにお
いて、ストリームデータの累積加算が行われる。By such a method, the data flow processor performs the cumulative addition of the stream data.
しかし、データフロープロセッサにおけるストリーム
データの累積加算を行う方法には、それぞれ次のような
問題点がある。However, the method of performing the cumulative addition of the stream data in the data flow processor has the following problems.
第7図(a)に示される方法、すなわちレジスタによ
る方法はプロセッシングユニット内のレジスタを使用す
るため、同時に複数箇所での累積加算ができず、高速化
が妨げられ、またそのためのプログラムによる制御が必
要となる。In the method shown in FIG. 7 (a), that is, the method using a register, the register in the processing unit is used, so that the cumulative addition at a plurality of locations cannot be performed at the same time. Required.
第7図(b)に示される方法、すなわちトーナメント
方式による方法はあらかじめ与えられた長さのデータに
対し、トーナメント方式の加算が進められるようにデー
タ流を規定するプログラムを用意しなければならない。In the method shown in FIG. 7 (b), that is, the method based on the tournament system, a program for defining the data flow must be prepared so that the tournament system can be added to data of a predetermined length.
第7図(c)に示される方法、すなわちconvo命令に
よる方法はこの場合もconvo命令であからじめストリー
ムの長さが分からなければ使用できず、柔軟性に欠け
る。The method shown in FIG. 7C, that is, the method based on the convo instruction cannot be used unless the length of the stream is previously known by the convo instruction, and lacks flexibility.
このように従来のデータフロープロセッサでは、デー
タフローグラムで1つのアークに任意の長さのストリー
ムデータを流してそれらの累積加算をとるときに、複数
箇所で平行して使え任意の長さに対応する累積加算をす
る手段がなく、どの方法をとるにしても効率の悪い処理
となっているという問題点がある。これは従来のデータ
フロープロセッサに入力される任意長のストリームの終
端を発見し、その演算の終了を検知する手段がないため
である。As described above, in the conventional data flow processor, when a stream data of an arbitrary length is flowed to one arc in a data flowgram and their cumulative addition is taken, it can be used in parallel at a plurality of locations and corresponds to an arbitrary length. There is no means for performing the cumulative addition, and there is a problem in that the processing is inefficient regardless of which method is used. This is because there is no means for detecting the end of an arbitrary-length stream input to the conventional data flow processor and detecting the end of the operation.
本発明では、ストリームデータの最後尾として終端マ
ークをつけたトークンを流し、その終端を検知すること
により、可変長のストリームの累積加算を高速化する方
法、及びそれを実現するデータフロープロセッサを提供
することを目的としている。The present invention provides a method for accelerating the cumulative addition of a variable-length stream by flowing a token with an end mark as the end of stream data and detecting the end of the token, and a data flow processor realizing the method. It is intended to be.
第1の発明は、互いを区別するための識別子であるリ
ンクテーブルアドレスと処理されるデータとストリーム
終端を示す終端マークとを持つトークンを、データの単
位として内部のバスに流すことにより処理を行う、デー
タメモリを備えたデータフロープロセッサの、複数のト
ークンからなるデータストリームに対する演算の終了を
検知するストリーム演算終了検知方法において、 トークンの入力ごとに、直前の判定処理の結果として
得られた終端状態フラグの値と、直前に前記データメモ
リに書き込みを行ったか否かを記憶した書き込みフラグ
の値と、今回入力されたトークンの持つ前記終端マーク
との3つを入力し、その組合せから今回の入力トークン
に対する動作として、入力トークンのデータ値を前記デ
ータメモリに書き込むか否かと、今回の判定処理の結果
としての終端状態フラグの値と、今回の判定処理の結果
としての書き込みフラグの値と、結果として出力するト
ークンのリンクテーブルアドレスの値と、結果として出
力するトークンの終端マークの値と、結果として出力す
るトークンの後段での演算を指定する演算コードとを決
定し、ストリームに対する演算の途中と終了時で異なる
リンクテーブルアドレスを与えることによりストリーム
演算の終了を判定することを特徴としている。In the first invention, processing is performed by flowing a token having a link table address, which is an identifier for distinguishing each other, data to be processed, and an end mark indicating the end of a stream, into an internal bus as a data unit. In a stream operation completion detection method for detecting the completion of an operation on a data stream composed of a plurality of tokens by a data flow processor having a data memory, the termination state obtained as a result of the immediately preceding determination processing for each token input The value of the flag, the value of the write flag storing whether or not the data was written to the data memory immediately before, and the end mark of the token input this time are input. Whether to write the data value of the input token to the data memory as an operation for the token And the value of the termination state flag as a result of the current determination processing, the value of the write flag as a result of the current determination processing, the value of the link table address of the token to be output as a result, and the value of the token to be output as the result. Determine the value of the end mark and the operation code that specifies the operation at the subsequent stage of the token to be output as a result, and determine the end of the stream operation by giving different link table addresses during and at the end of the operation on the stream. It is characterized by:
第2の発明は、互いを区別するための識別子と処理さ
れるデータとストリーム終端を示す終端マークとを持つ
トークンを、データの単位として内部のバスに流すこと
により処理を行う、内部メモリを持つデータフロープロ
セッサのストリーム演算終了検知装置において、 流入するトークンを一時保持する入力トークンレジス
タと、 前記トークンレジスタ内のアドレスで参照され、演算
を指定する演算コードフィールドと、前記内部メモリア
クセスのためのデータメモリアドレスフィールドを持つ
コードテーブルと、 終了検知動作を実現するための内部状態として終端状
態フラグフィールドと書き込みフラグフィールドとを保
持し記憶する、前記トークンレジスタ内のアドレスでア
クセスされる状態保持部と、 前記入力トークンレジスタと前記コードテーブルと前
記状態保持部との内容を入力とし前記状態保持部の内容
を更新すると共に出力トークンの持つ値を決定する終了
検知コントローラと、 前記終了検知コントローラの信号により前記入力トー
クンレジスタのリンクテーブルアドレスフィールドの値
から出力トークンのリンクテーブルアドレスフィールド
を生成するインクリメンタとを有することを特徴として
いる。The second invention has an internal memory that performs processing by flowing a token having an identifier for distinguishing each other, data to be processed, and an end mark indicating the end of a stream as an data unit to an internal bus. In the stream operation end detecting device of the data flow processor, an input token register for temporarily holding an incoming token, an operation code field referred to by an address in the token register and specifying an operation, and data for accessing the internal memory. A code table having a memory address field, a state holding unit accessed and held by an address in the token register, which holds and stores an end state flag field and a write flag field as internal states for realizing the end detection operation; The input token register and the previous An end detection controller that receives the contents of the code table and the state holding unit as input, updates the contents of the state holding unit, and determines a value of an output token; and links the input token register by a signal of the end detection controller. And an incrementer for generating a link table address field of the output token from the value of the table address field.
本発明のストリーム終了検知方法を使用する場合、累
積加算を行うストリームの最後尾トークンにあからじめ
終端マークを与える。When the end-of-stream detection method of the present invention is used, an end mark is given in advance to the last token of the stream to be subjected to cumulative addition.
ストリーム終了検知装置は2つの連続したトークン入
力があった場合、その前者をメモリに書き込み、後者の
到着時にこれを読み出して加算する。ストリームが入力
されると、ストリームデータの隣接する2データずつの
加算が行われ、その部分和はトークンとして出力されて
またもとの命令への入力ストリームとして戻されるとい
う動作が反復して行われ、1度の加算ごとに入力される
ストリームの長さが1ずつ短くなる。If there are two consecutive token inputs, the end-of-stream detection device writes the former into memory and reads and adds it when the latter arrives. When a stream is input, an operation of adding two adjacent data streams is performed, and the partial sum is output as a token and returned as an input stream to the original instruction. In each addition, the length of the input stream is reduced by one.
ストリーム演算終了検知装置は前回に処理したトーク
ンの終端マークの値を終端状態フラグに保持し、これと
今回入力されたトークンの終端マークがどちらも“1"と
なるまで前述した動作を続ける。どちらも“1"となる
と、これによりストリームの長さが1になったことが判
定され、そのときのデータがもとのストリームデータ全
体の累積加算の結果として、別のリンクテーブルアドレ
スを持ったトークンにより(すなわち別の場所から)出
力される。The stream operation completion detection device holds the value of the token termination mark processed last time in the termination status flag, and continues the above-described operation until both this and the token termination mark input this time become “1”. When both become "1", it is determined that the stream length has become 1 and the data at that time has another link table address as a result of the cumulative addition of the entire original stream data. Output by token (ie from another location).
以上のような作用により、本発明によればストリーム
の終端を検知することにより、可変長で効率の良いスト
リーム累積加算を実現することができる。According to the present invention, by detecting the end of a stream according to the above-described operation, a variable-length and efficient stream cumulative addition can be realized.
本発明の実施例を図面を参照しながら説明する。 Embodiments of the present invention will be described with reference to the drawings.
第1図は本発明のストリーム演算終了検知装置の基本
構成図、第2図はそのストリーム演算終了検知装置を持
つデータフロープロセッサの構成図、第3図は本発明の
説明に供するトークン及びテーブルの形式を示す図であ
る。FIG. 1 is a diagram showing the basic configuration of a stream operation end detecting device according to the present invention, FIG. 2 is a diagram showing the configuration of a data flow processor having the stream operation end detecting device, and FIG. It is a figure showing a format.
第2図に示すデータフロープロセッサは、互いを区別
するための識別子と処理されるデータとストリーム終端
を示す終端マークとを持つトークンを、データの単位と
して内部のバスに流すことにより処理を行う、内部メモ
リを持つデータフロープロセッサであって、バストーク
ン入力部11と、リンクテーブル12と、ストリーム演算終
了検知装置1と、データメモリ14と、バッファキュー15
と、プロセッシングユニット16と、バストークン出力部
17とを備えている。The data flow processor shown in FIG. 2 performs processing by flowing a token having an identifier for distinguishing each other, data to be processed, and an end mark indicating the end of a stream to an internal bus as a unit of data. A data flow processor having an internal memory, comprising: a bus token input unit 11, a link table 12, a stream operation end detecting device 1, a data memory 14, and a buffer queue 15.
, Processing unit 16 and bus token output unit
17 and.
まず、データフロープロセッサの構成を示す第2図と
データフロープロセッサ内部のトークン形式を示す第3
図を用いて、本発明を使用するデータフロープロセッサ
の動作を説明する。本データフロープロセッサは第2図
で長方形で示すユニットからなり、各々のユニットは共
通して外部から供給されるパイプラインクロックに同期
してトークンの受渡しを行い、動作する。First, FIG. 2 showing the configuration of the data flow processor and FIG. 3 showing the token format inside the data flow processor.
The operation of the data flow processor using the present invention will be described with reference to the drawings. This data flow processor is composed of units shown by rectangles in FIG. 2. Each unit exchanges a token in synchronization with a pipeline clock supplied in common from the outside, and operates.
第2図においてデータフロープロセッサは外部からバ
ストークン入力部11を介して入力されるトークンに従っ
て動作する。リンクテーブル12におけるトークンは、第
3図(a)に示すように処理されるべきデータ値を持つ
データ部64にそのトークンを識別するためのリンクテー
ブルアドレス63と、ストリームの終端を示すための終端
マーク62を持つ。ストリームは同じリンクテーブルアド
レスを持つ複数のトークンが互いの順序を保って流れる
ものであり、その中でのトークン間の相対位置関係が不
変であることを利用して演算処理が行われる。終端マー
クは最後尾のトークンでは“1"を、それ以外では“0"を
値として持つ。In FIG. 2, the data flow processor operates according to a token input from the outside via the bus token input unit 11. The token in the link table 12 includes a link table address 63 for identifying the token in a data section 64 having a data value to be processed as shown in FIG. 3 (a), and an end for indicating the end of the stream. With mark 62. In the stream, a plurality of tokens having the same link table address flow while maintaining the order of each other, and arithmetic processing is performed using the fact that the relative positional relationship between the tokens in the plurality of tokens is invariable. The end mark has a value of "1" for the last token and "0" otherwise.
トークンは第2図に示されるプロセッシングユニット
16で演算を受ける前に、演算後に持つべきリンクテーブ
ルアドレスと、ストリーム演算終了検知装置1を参照す
るためのコードテーブルアドレス73をリンクテーブル12
でフェッチする。この参照によって第3図(b)の形式
を持ったトークンはストリーム演算終了検知装置1へ送
られ、後述するようなストリーム演算終了検知動作を受
ける。その後トークンは、必要に応じてデータメモリ14
でのメモリ読み出しによって得た2つのオペランドとプ
ロセッシングユニット16で用いる演算コードと共に(第
3図(d))、バッファキュー15を通過してプロセッシ
ングユニット16へ送られ、そこで演算コードにしたがっ
た演算処理を受ける。演算処理後はそのリンクテーブル
アドレスによって信号線103を経由しリンクテーブル12
に送られてさらに同様な動作を続けるが、またはバスト
ークン出力部17を介して結果トークンとしてデータフロ
ープロセッサ外部に出力される。The token is a processing unit shown in FIG.
Before receiving the operation at 16, the link table address to be held after the operation and the code table address 73 for referring to the stream operation end detecting device 1 are stored in the link table 12.
Fetch with By this reference, the token having the format shown in FIG. 3 (b) is sent to the stream operation end detecting device 1 and undergoes a stream operation end detecting operation as described later. The token is then transferred to data memory 14 as needed.
Along with the two operands obtained by the memory read in step (1) and the operation code used in the processing unit 16 (FIG. 3 (d)), the data is sent to the processing unit 16 through the buffer queue 15, where the operation processing according to the operation code is performed. Receive. After the arithmetic processing, the link table 12 is transmitted via the signal line 103 according to the link table address.
And the same operation continues, or is output to the outside of the data flow processor as a result token via the bus token output unit 17.
次にストリーム演算終了検知装置1の構成と動作につ
いて第1図と第3図を用いて説明する。Next, the configuration and operation of the stream calculation end detecting device 1 will be described with reference to FIGS.
このストリーム演算終了検知装置1は、流入するトー
クンを一時保持する入力トークンレジスタ4と、トーク
ンレジスタ4内のアドレスで参照され、演算を指定する
演算コード30と、内部メモリアクセスのためのデータメ
モリアドレス32を持つコードテーブル5と、終了検知動
作を実現するための内部状態として終端状態フラグ36と
書き込みフラグ37とを保持し記憶する、トークンレジス
タ4内のアドレスでアクセスされる状態保持部6と、入
力トークンレジスタ4と、コードテーブル5と状態保持
部6との内容を入力とし、状態保持部6の内容を更新す
ると共に出力トークンの持つ値を決定する終了検知コン
トローラ8と、終了検知コントローラ8の信号により入
力トークンレジスタ4のリンクテーブルアドレスの値か
ら出力トークンのリンクテーブルアドレス71を生成する
インクリメンタ9とから構成される。The stream operation completion detecting device 1 includes an input token register 4 for temporarily storing an incoming token, an operation code 30 which is referred to by an address in the token register 4 and specifies an operation, and a data memory address for accessing an internal memory. A code table 5 having 32; a state holding unit 6 which holds and stores an end state flag 36 and a write flag 37 as internal states for realizing the end detection operation; An end token controller 8 that receives the contents of the input token register 4, the code table 5, and the state holding unit 6, updates the contents of the state holding unit 6, and determines the value of the output token. The signal of the output token is converted from the value of the link table address of the input token register 4 by the signal. It consists incrementer 9 for generating a table address 71.
このようなストリーム演算終了検知装置1において、
第2図に示される前段のリンクテーブル12から信号線10
1を介してストリーム演算終了検知装置1へ入力された
トークンは、データフロープロセッサのパイプラインサ
イクルに同期して、第1図に示されるストリーム演算終
了検知装置1の入力トークンレジスタ4にラッチされ
る。第1図ではトークン内の各ビットフィールドに対応
するようにレジスタを分割して書いてある。入力トーク
ンのコードテーブルアドレス73によりコードテーブル5
と状態保持部6とが参照される。In such a stream operation end detection device 1,
From the link table 12 in the preceding stage shown in FIG.
The token input to the stream operation end detecting device 1 through 1 is latched in the input token register 4 of the stream operation end detecting device 1 shown in FIG. 1 in synchronization with the pipeline cycle of the data flow processor. . In FIG. 1, the register is divided and written so as to correspond to each bit field in the token. Code table 5 based on the code table address 73 of the input token
And the state holding unit 6 are referred to.
コードテーブル5は第3図(e)に示すフィールドを
複数持つテーブルメモリであり、ここで参照された行が
そのトークンのストリーム演算終了検知装置1,第2図に
示すデータメモリ14及びプロセッシングユニット16での
動作を規定する。第1図に示す演算コード30は、ストリ
ーム演算終了検知装置1及び第2図に示すプロセッシン
グユニット16での演算を示す命令コードである。ストリ
ーム演算終了検知装置1は以下に詳説するストリーム加
算命令の他に、従来技術の項で述べたデータフロープロ
セッサの持つ、トークンの待ち合わせやデータメモリ読
み出し/書き込みなどの動作を実行する。第1図に示す
データメモリアドレス32はストリーム加算命令でデータ
メモリをアクセスする際のアドレスを与える。The code table 5 is a table memory having a plurality of fields shown in FIG. 3 (e), and the row referred to here is the device for detecting the stream operation end of the token 1, the data memory 14 and the processing unit 16 shown in FIG. The operation in is specified. The operation code 30 shown in FIG. 1 is an instruction code indicating an operation in the stream operation end detecting device 1 and the processing unit 16 shown in FIG. The stream operation completion detection device 1 executes operations such as token waiting and data memory read / write that the data flow processor has in the background art in addition to the stream addition instruction described in detail below. The data memory address 32 shown in FIG. 1 gives an address when accessing the data memory by the stream addition instruction.
状態保持部6は第3図(f)のような行を複数持つテ
ーブルであり、参照された行がそのトークンが参照すべ
きストリーム演算終了検知装置の内部状態を保持してい
る。終端状態フラグ36は基本的に、その行の前回の命令
実行の際に終端トークンの処理を行ったか否かを示す。
書き込みフラグ37はデータメモリに対して最後に書き込
みが行われたか読み出しが行われたかを示す。The state holding unit 6 is a table having a plurality of rows as shown in FIG. 3 (f), and the referenced row holds the internal state of the stream operation completion detection device to which the token refers. The termination state flag 36 basically indicates whether or not the termination token has been processed at the time of the previous instruction execution of the line.
The write flag 37 indicates whether the data memory was last written or read.
終了検知コントローラ8はコードテーブル5のうち入
力トークンレジスタ4上のコードテーブルアドレス73で
指示される行の演算コードフィールドと、入力トークン
レジスタ4からの終端マーク72と、状態保持部6のうち
入力トークンレジスタ上のコードテーブルアドレス73で
指示される行に保持された状態を入力し、先に述べた状
態の遷移を行う。その結果の状態を状態保持部6の同じ
行に書き戻すと共に、ストリーム演算終了検知装置1か
らの出力トークンの終端マーク82,データメモリコード8
3,演算コード85の各フィールドを生成し出力する。また
インクリメンタ9への信号86を出力する。The end detection controller 8 calculates the operation code field of the line specified by the code table address 73 on the input token register 4 in the code table 5, the termination mark 72 from the input token register 4, and the input token The state held in the line designated by the code table address 73 on the register is input, and the state transition described above is performed. The state of the result is written back to the same line of the state holding unit 6, and the end mark 82 of the token output from the stream operation end detecting device 1, the data memory code 8
3. Generate and output each field of the operation code 85. Also, it outputs a signal 86 to the incrementer 9.
終了検知コントローラの入出力及び状態保持部更新
は、次の第1表に従う。The input / output of the end detection controller and the update of the state holding unit follow Table 1 below.
ただし「演算コード」の前半はデータメモリでの動作
を、後半はプロセッシングユニットでの動作を記述して
ある。“write"はデータメモリへの書き込み、“read"
はデータメモリからの読み出し、“dmnop"はデータメモ
リへの無作用(NOP)、“add"はプロセッシングユニッ
トでの2つのオペランドの加算、“nop"はプロセッシン
グユニットでの第1オペランドのNOP出力、“ERROR"は
エラー状態への遷移を示す。データメモリでの書き込み
“write"が行われるとトークンはデータメモリで消滅す
るので、その対応する出力トークンの項は書いていな
い。第1図に示すインクリメンタ信号86が“1"のときイ
ンクリメンタ9は入力に“1"を加えた値を出力し、その
他のときは入力をそのまま出力する。 However, the first half of the "operation code" describes the operation in the data memory, and the second half describes the operation in the processing unit. “Write” writes to data memory, “read”
Is read from data memory, "dmnop" is no effect on data memory (NOP), "add" is the addition of two operands in the processing unit, "nop" is the NOP output of the first operand in the processing unit, “ERROR” indicates a transition to an error state. When the write “write” is performed in the data memory, the token disappears in the data memory, so that the corresponding output token term is not written. When the incrementer signal 86 shown in FIG. 1 is "1", the incrementer 9 outputs a value obtained by adding "1" to the input, and otherwise outputs the input as it is.
ストリーム演算終了検知装置1は以上述べたように出
力トークンを形成し、それを第2図の信号線102を介し
て後続するデータメモリ14へ送出する。ストリーム演算
終了検知装置1からデータメモリ14へ送られるトークン
の形式を第3図(c)に示す。データ部80は同期キュー
からトークンが入力されたときと同じものを持ち、それ
以外はストリーム演算終了検知装置1の動作により決定
される。The stream operation completion detecting device 1 forms an output token as described above and sends it to the subsequent data memory 14 via the signal line 102 in FIG. FIG. 3 (c) shows the format of the token sent from the stream operation completion detecting device 1 to the data memory 14. The data section 80 has the same data as when the token was input from the synchronization queue, and the rest is determined by the operation of the stream operation completion detection device 1.
データメモリコード83は (I)データメモリのアクセスを行わずに入力トークン
を通過させる。出力トークンは右オペランドは“0"とす
る(コードdmnop)、 (II)データメモリアドレス84の値をアドレスとしてデ
ータメモリ14の読み出しを行い、読み出された値を右オ
ペランド66として送る(コードread)、 (III)トークンがデータ部80に持つデータ値を、デー
タメモリアドレス84の値をアドレスとしてデータメモリ
に書き込み、トークンをそこで消滅させる(コードwrit
e)、 のいずれかを規定する。データメモリアドレス84はその
トークンが第2図に示すデータメモリ14においてメモリ
の読み書きを行う際のアクセスアドレスを示す。The data memory code 83 passes (I) the input token without accessing the data memory. For the output token, the right operand is set to “0” (code dmnop). (II) The data memory 14 is read using the value of the data memory address 84 as an address, and the read value is sent as the right operand 66 (code read). ), (III) Write the data value of the token in the data section 80 to the data memory using the value of the data memory address 84 as the address, and erase the token there (code writ
e) Specify either The data memory address 84 indicates an access address when the token reads and writes data in the data memory 14 shown in FIG.
演算コード85は第1図に示すストリーム演算終了検知
装置1のコードテーブル5からフェッチされるものであ
り、ストリーム演算終了検知装置の動作とプロセッシン
グユニット16での演算命令を指定する。The operation code 85 is fetched from the code table 5 of the stream operation end detecting device 1 shown in FIG. 1, and specifies the operation of the stream operation end detecting device and the operation instruction in the processing unit 16.
第4図を用いて第1の発明のストリーム演算終了検知
方法によって本発明の目的とするストリームデータの累
積加算という動作を説明する。第4図のように、累積加
算されるべきデータ列はストリームデータとして、「ス
トリーム加算命令」を実行するノード20に入力する。ス
トリームデータの最後尾のトークンT4のみが、終端マー
クが“1"のトークンとする。ストリーム加算命令は内部
に終端状態フラグと書き込みフラグを持ち、トークンが
入力されると、これらのフラグと入力されたトークンの
終端マークとから、第5図のフローチャートに従った判
定を行い、得られた結果に基づき決められた動作を実行
する。ただし第5図において出力の枝が2本出ている四
角形はその中にかかれた値が“1"であるか“0"であるか
の判定動作を行うことを示す。それ以外の四角形は結果
として行われる動作のうち状態保持部の新状態と出力ト
ークンの終端マークについて記述したものである。“ES
M",“ESF",“WF"はそれぞれ入力トークンの終端マー
ク,状態保持部の終端状態フラグ,書き込みフラグを表
す。The operation of the present invention, ie, the cumulative addition of stream data, according to the stream operation end detection method of the first invention will be described with reference to FIG. As shown in FIG. 4, a data sequence to be cumulatively added is input as stream data to a node 20 that executes a “stream addition instruction”. Only the last token T4 of the stream data is a token whose end mark is "1". The stream addition instruction has a termination state flag and a write flag therein. When a token is input, the stream addition instruction performs a determination according to the flowchart of FIG. And perform an operation determined based on the result. However, in FIG. 5, a square with two output branches indicates that an operation of determining whether the value inserted therein is "1" or "0" is performed. The other rectangles describe the new state of the state holding unit and the end mark of the output token among the operations performed as a result. “ES
M "," ESF ", and" WF "represent the end mark of the input token, the end state flag of the state holding unit, and the write flag, respectively.
以下この動作を、ストリーム演算終了検知装置の長さ
4のストリームが入力されたときの動作を例にして説明
する。ストリーム加算命令を実行するノードに対応する
ストリーム演算終了検知装置内の状態保持部の初期値
は、終端状態フラグが“0"、書き込みフラグが“0"とな
っている。Hereinafter, this operation will be described by taking as an example an operation when a stream having a length of 4 is input. The initial value of the state holding unit in the stream operation completion detection device corresponding to the node that executes the stream addition instruction is such that the end state flag is “0” and the write flag is “0”.
(1)まず、先頭のトークンT1が終端マーク“0"を持っ
てこのノードに入ると、そのトークンの持つコードテー
ブルアドレスにより第1図に示すコードテーブル5と状
態保持部が参照される。この入力によって前に示した終
了検知コントローラの動作表である第1表のaの行が実
行され、これに従ってそのトークンのデータがデータメ
モリに書き込まれる。トークンはデータメモリで消滅す
る。(1) First, when the leading token T1 enters this node with the terminating mark "0", the code table 5 and the state holding unit shown in FIG. 1 are referred to by the code table address of the token. By this input, the row of a in Table 1 which is the operation table of the end detection controller shown earlier is executed, and the data of the token is written to the data memory in accordance with this. The token disappears in the data memory.
(2)2個目のトークンT2では同じく終端マークは“0"
であるが書き込みフラグが“1"なので第1表bの行が実
行され、データメモリから読み出されたデータと入力ト
ークンが持っていたデータとがプロセッシングユニット
で加算される。結果は与えられたリンクテーブルアドレ
スを持つトークンT5により出力され、これは第4図のア
ーク22を経てもとのアーム21に合流する。(2) The end mark of the second token T2 is also "0"
However, since the write flag is "1", the row of Table 1 is executed, and the data read from the data memory and the data held by the input token are added by the processing unit. The result is output by a token T5 having the given link table address, which joins the original arm 21 via the arc 22 in FIG.
(3)先の(2)で得られたトークン1,2の部分和を持
つトークンT5と、もとのストリームの第3のトークンT3
とは第4図に示すノード20の入口で合流する。どちらが
早く到着するにせよ、早く着いた方のデータが第1表a
の行に従いデータメモリに書き込まれ、後に着いた方が
第1表bの行に従いそれを読み出して両方のデータを加
算する。これによりストリームの3番目までの部分和を
持つトークンT6が得られ、これもアーク22を経てアーク
21からノード20に入力される。(3) Token T5 having a partial sum of tokens 1 and 2 obtained in (2) above, and third token T3 of the original stream
Merges at the entrance of the node 20 shown in FIG. Whichever arrives earlier, the data for the one who arrived earlier is shown in Table 1a
Is written to the data memory according to the row of (1), and the one arriving later reads it out according to the row of Table 1b and adds both data. This gives a token T6 with the third partial sum of the stream, which is also
Input from 21 to node 20.
(4)ストリームの第4のトークンT4がこの3つのデー
タの部分和を持つトークンT6より早く到着したとする
と、これは終端マーク“1"を持つので第1表eの行に従
いデータがデータメモリに書き込まれると共に終端状態
フラグが“1"となる。(4) Assuming that the fourth token T4 of the stream arrives earlier than the token T6 having the partial sum of these three data, since it has the end mark "1", the data is stored in the data memory according to the row of Table 1e. And the termination status flag is set to "1".
(5)続いてもう一方のトークンT6がトークンT4に続い
てノード20に到着すると第1表dの行が実行される。デ
ータメモリの値が読み出され加算が行われ、ストリーム
演算終了検知装置の終端状態フラグは“1"となる。加算
結果を持つトークンT7の終端マークは“1"となり、トー
クンT7はアーク22を経てアーク21からノード20に入力さ
れる。(5) Subsequently, when the other token T6 arrives at the node 20 following the token T4, the row of Table 1 d is executed. The value of the data memory is read and added, and the end state flag of the stream operation end detection device becomes "1". The end mark of the token T7 having the addition result is “1”, and the token T7 is input to the node 20 from the arc 21 via the arc 22.
(6)トークンT7がノード20に入力されると、第1表g
の行が選択され、これによりトークンT7のデータは何も
演算を受けずに出力される。ただしストリーム演算終了
検知装置内のインクリメンタが動作し、出力トークンの
リンクテーブルアドレス“1"が加算される。これにより
出力トークンは他の場合と異なったアーク23から出力さ
れ、これはストリームの4データの累積加算結果を持
つ。(6) When the token T7 is input to the node 20, Table g
Is selected, whereby the data of the token T7 is output without any operation. However, the incrementer in the stream operation completion detection device operates, and the link table address “1” of the output token is added. As a result, the output token is output from the arc 23 different from the other cases, and has an accumulation result of four data of the stream.
以上の説明では2つのトークンの合流に際しての到着
順について仮定を置いたが、これ以外の順であっても正
しく動作する。またストリームの長さについては4の場
合を例にしたが、2以上の任意の長さを持つストリーム
について同様に動作し、正しい累積加算結果を得ること
ができる。In the above description, the order of arrival at the time of merging of two tokens is assumed. However, any other order will work correctly. Although the length of the stream is set to 4 as an example, the same operation is performed for a stream having an arbitrary length of 2 or more, and a correct cumulative addition result can be obtained.
以上説明したように、本発明の方法を本発明の装置に
より実現した「ストリーム加算命令」を用いて、ストリ
ームの最後に終端マークをつけたストリームを演算する
ことで、任意の長さのストリームデータの累積加算が実
現できる効果がある。As described above, stream data having an arbitrary length can be calculated by using the “stream addition instruction” in which the method of the present invention is implemented by the device of the present invention to calculate the stream with the end mark at the end of the stream. Has the effect of realizing the cumulative addition of.
この方法ではレジスタを使用しないため複数箇所で平
行してこの命令を利用することができ、またあらかじめ
長さの分かわないストリーも処理することが可能とな
る。In this method, since no register is used, this instruction can be used in parallel at a plurality of locations, and a stream whose length is not known in advance can be processed.
第1図は本発明のストリーム演算終了検知装置の一例を
示す基本構成図、 第2図はそのストリーム演算終了検知装置を持つデータ
フロープロセッサの構成図、 第3図は本発明の説明に供するトークン及びテーブルの
形式を示す図、 第4図は本発明を利用する場合のデータフロープロセッ
サの動作を記述するデータフローグラフ、 第5図は本発明のストリーム演算終了検知方法を説明す
るフロー図、 第6図は従来のデータフロープロセッサの構成図、 第7図は従来のデータフロープロセッサにおけるストリ
ームデータの累積加算の実現法を示すフローグラフであ
る。 1……ストリーム演算終了検知装置 4……入力トークンレジスタ 5……コードテーブル 6……状態保持部 8……終了検知コントローラ 9……インクリメンタFIG. 1 is a basic configuration diagram showing an example of a stream operation end detection device of the present invention, FIG. 2 is a configuration diagram of a data flow processor having the stream operation end detection device, and FIG. 3 is a token used for describing the present invention. FIG. 4 is a diagram showing the format of a table, FIG. 4 is a data flow graph describing the operation of a data flow processor when the present invention is used, FIG. FIG. 6 is a configuration diagram of a conventional data flow processor, and FIG. 7 is a flow graph showing a method of realizing the cumulative addition of stream data in the conventional data flow processor. 1 stream operation end detecting device 4 input token register 5 code table 6 state holding unit 8 end detecting controller 9 incrementer
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 15/82 JOIS(JICST)──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int.Cl. 6 , DB name) G06F 15/82 JOIS (JICST)
Claims (2)
テーブルアドレスと処理されるデータとストリーム終端
を示す終端マークとを持つトークンを、データの単位と
して内部のバスに流すことにより処理を行う、データメ
モリを備えたデータフロープロセッサの、複数のトーク
ンからなるデータストリームに対する演算の終了を検知
するストリーム演算終了検知方法において、 トークンの入力ごとに、直前の判定処理の結果として得
られた終端状態フラグの値と、直前に前記データメモリ
に書き込みを行ったか否かを記憶した書き込みフラグの
値と、今回入力されたトークンの持つ前記終端マークと
の3つを入力し、その組合せから今回の入力トークンに
対する動作として、入力トークンのデータ値を前記デー
タメモリに書き込むか否かと、今回の判定処理の結果と
しての終端状態フラグの値と、今回の判定処理の結果と
しての書き込みフラグの値と、結果として出力するトー
クンのリンクテーブルアドレスの値と、結果として出力
するトークンの終端マークの値と、結果として出力する
トークンの後段での演算を指定する演算コードとを決定
し、ストリームに対する演算の途中と終了時で異なるリ
ンクテーブルアドレスを与えることによりストリーム演
算の終了を判定することを特徴とするストリーム演算終
了検知方法。Processing is performed by flowing a token having a link table address as an identifier for distinguishing each other, data to be processed, and an end mark indicating the end of a stream to an internal bus as a unit of data. In a stream operation completion detection method for detecting the completion of an operation on a data stream composed of a plurality of tokens by a data flow processor having a data memory, a termination state flag obtained as a result of a previous determination process for each token input , The value of a write flag that stores whether or not the data was written to the data memory immediately before, and the end mark of the token that has been input this time. As an operation for whether or not to write the data value of the input token to the data memory , The value of the termination state flag as a result of the current determination processing, the value of the write flag as the result of the current determination processing, the value of the link table address of the token to be output as a result, and the end of the token to be output as the result Determining the end of stream operation by determining the value of the mark and the operation code that specifies the operation at the subsequent stage of the token to be output as a result, and giving a different link table address during and at the end of the operation on the stream A stream operation end detection method.
データとストリーム終端を示す終端マークとを持つトー
クンを、データの単位として内部のバスに流すことによ
り処理を行う、内部メモリを持つデータフロープロセッ
サのストリーム演算終了検知装置において、 流入するトークンを一時保持する入力トークンレジスタ
と、 前記トークンレジスタ内のアドレスで参照され、演算を
指定する演算コードフィールドと、前記内部メモリアク
セスのためのデータメモリアドレスフィールドを持つコ
ードテーブルと、 終了検知動作を実現するための内部状態として終端状態
フラグフィールドと書き込みフラグフィールドとを保持
し記憶する、前記トークンレジスタ内のアドレスでアク
セスされる状態保持部と、 前記入力トークンレジスタと前記コードテーブルと前記
状態保持部との内容を入力とし前記状態保持部の内容を
更新すると共に出力トークンの持つ値を決定する終了検
知コントローラと、 前記終了検知コントローラの信号により前記入力トーク
ンレジスタのリンクテーブルアドレスフィールドの値か
ら出力トークンのリンクテーブルアドレスフィールドを
生成するインクリメンタとを有することを特徴とするス
トリーム演算終了検知装置。2. Data having an internal memory, which is processed by flowing a token having an identifier for distinguishing each other, data to be processed, and an end mark indicating a stream end to an internal bus as a data unit. An input token register for temporarily holding an incoming token, an operation code field that is referred to by an address in the token register and specifies an operation, and a data memory for accessing the internal memory. A code table having an address field, a state holding unit that holds and stores an end state flag field and a write flag field as internal states for realizing the end detection operation, and is accessed by an address in the token register; Input token register and said An end detection controller that receives a code table and the contents of the state holding unit as input, updates the contents of the state holding unit, and determines a value of an output token, and a link table of the input token register according to a signal of the end detection controller. A stream operation end detecting device, comprising: an incrementer for generating a link table address field of an output token from a value of the address field.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14515689A JP2765058B2 (en) | 1989-06-09 | 1989-06-09 | Stream operation completion detection method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14515689A JP2765058B2 (en) | 1989-06-09 | 1989-06-09 | Stream operation completion detection method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0311479A JPH0311479A (en) | 1991-01-18 |
JP2765058B2 true JP2765058B2 (en) | 1998-06-11 |
Family
ID=15378722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14515689A Expired - Lifetime JP2765058B2 (en) | 1989-06-09 | 1989-06-09 | Stream operation completion detection method and apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2765058B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0634192B2 (en) * | 1984-05-30 | 1994-05-02 | 沖電気工業株式会社 | Voice recognizer |
-
1989
- 1989-06-09 JP JP14515689A patent/JP2765058B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0311479A (en) | 1991-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4943916A (en) | Information processing apparatus for a data flow computer | |
JP3677315B2 (en) | Data-driven information processing device | |
US6269440B1 (en) | Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously | |
US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
US4967338A (en) | Loosely coupled pipeline processor | |
JPH063584B2 (en) | Information processing equipment | |
US5125097A (en) | Data flow type information processors where data packets pass through plurality of merging and branching portions of the internal path | |
EP0173040B1 (en) | Vector processing system | |
JPH07104784B2 (en) | Digital data processor | |
JPS61253541A (en) | Instruction processor | |
JPH0248732A (en) | Micro processor for instruction pipe line system | |
US5745725A (en) | Parallel instruction execution with operand availability check during execution | |
JP3180175B2 (en) | Instruction level parallel processing control method and processor | |
JP2518293B2 (en) | Data Flow Processor | |
JPH10143365A (en) | Parallel processing device and its command issuing system | |
JP2765058B2 (en) | Stream operation completion detection method and apparatus | |
US4924377A (en) | Pipelined instruction processor capable of reading dependent operands in parallel | |
JP3983455B2 (en) | Execution control apparatus for data driven information processing apparatus | |
JP3335306B2 (en) | Method, processor and data processing system for dispatching instructions | |
David et al. | Self-timed architecture of a reduced instruction set computer | |
US6789185B1 (en) | Instruction control apparatus and method using micro program | |
EP1050805B1 (en) | Transfer of guard values in a computer system | |
US7062633B1 (en) | Conditional vector arithmetic method and conditional vector arithmetic unit | |
EP0790552A2 (en) | Data processing apparatus for performing pipeline processing | |
JP2668156B2 (en) | Execution control method of data driven type information processing device |