JPH0620072A - Data driven information processor and data buffer used in this processor - Google Patents

Data driven information processor and data buffer used in this processor

Info

Publication number
JPH0620072A
JPH0620072A JP17829892A JP17829892A JPH0620072A JP H0620072 A JPH0620072 A JP H0620072A JP 17829892 A JP17829892 A JP 17829892A JP 17829892 A JP17829892 A JP 17829892A JP H0620072 A JPH0620072 A JP H0620072A
Authority
JP
Japan
Prior art keywords
data
input
output
stored
data packet
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.)
Withdrawn
Application number
JP17829892A
Other languages
Japanese (ja)
Inventor
Manabu Onozaki
学 小野崎
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP17829892A priority Critical patent/JPH0620072A/en
Publication of JPH0620072A publication Critical patent/JPH0620072A/en
Withdrawn legal-status Critical Current

Links

Abstract

PURPOSE:To improve the data processing efficiency of the data driven information processor having a function which uses a degeneration memory space to detect a pair of data. CONSTITUTION:A buffer memory 1 which is provided in a cyclic path and is provided to absorb the fluctuation of the flow rate of packets of data in this cyclic path includes a re-arrangement control unit 10 which rearranges the output order in accordance with prescribed key data of stored data packets. This rearrangement control unit changes the arrangement order of output data packets in accordance with the same discrimination reference as the priority level discrimination reference used by a data pair detecting unit 562. Since a data packet of high probability of firing is quickly given to the data pair detecting unit by rearrangement of output data packets in the data buffer, the degradation of the processing efficiency due to hash collision data packets is prevented; and thus, the data driven information processor which executes a data flow program at a high speed is provided.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】この発明は与えられたデータに従
って処理を実行するデータフロー型情報処理装置および
データを一時的に格納するためのデータバッファに関
し、特に、縮退したメモリ空間を利用する対データ検出
機能を備えるデータフロー型情報処理装置およびそこに
用いるのに適したデータ並び換え機能を有するデータバ
ッファに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data flow type information processing apparatus for executing processing in accordance with given data and a data buffer for temporarily storing the data, and more particularly, to a pair of data utilizing a degenerate memory space. The present invention relates to a data flow type information processing apparatus having a detection function and a data buffer having a data rearranging function suitable for use therein.

【0002】[0002]

【従来の技術】近年高精彩画像処理など様々な分野にお
いて大量のデータを高速で処理することが必要とされ
る。情報を高速で処理する手法の1つに、複数の演算を
並列に処理する並列処理がある。並列処理向きの処理装
置の1つにデータフロー型(データ駆動型)情報処理装
置がある。データフロー型情報処理装置は、データフロ
ープログラムに従って処理を実行する。
2. Description of the Related Art Recently, it is required to process a large amount of data at high speed in various fields such as high definition image processing. One of the methods for processing information at high speed is parallel processing for processing a plurality of operations in parallel. There is a data flow type (data driven type) information processing device as one of the processing devices suitable for parallel processing. The data flow type information processing device executes processing according to a data flow program.

【0003】データフロープログラムは、演算および制
御を示すノード(アクタと呼ばれる)と、ノードとノー
ドとの間を結ぶアークとで構成される有向グラフで記述
される。
A data flow program is described by a directed graph composed of nodes (called actors) indicating operations and controls, and arcs connecting the nodes.

【0004】図13は、データフロープログラム(デー
タフローグラフ)の一例を示す図である。図13におい
て、ノードND1は入力アークaおよびbに対し演算O
P1を施してノードND3へ出力する。ノードND2
は、入力アークdに演算OP2を施し、その演算結果を
ノードND3およびND4へ与える。ノードND3は、
ノードND1からのデータ、入力アークcおよびノード
ND2からのデータに対し演算OP3を施してその処理
結果を出力する。ノードND4は、ノードND2からの
データに演算OP4を施してその処理結果を出力する。
各ノードにおいては、入力アークにデータ(トークンと
呼ばれる)が揃ったときにそのノードに割り当てられた
演算が実行される。演算の実行をそのノードが「発火す
る」と称す。この発火の結果、入力データ(入力トーク
ン)は消費され、出力トークンが生成される。
FIG. 13 is a diagram showing an example of a data flow program (data flow graph). In FIG. 13, the node ND1 calculates O for the input arcs a and b.
P1 is applied and output to the node ND3. Node ND2
Applies the operation OP2 to the input arc d and gives the operation result to the nodes ND3 and ND4. Node ND3
The operation OP3 is performed on the data from the node ND1, the input arc c and the data from the node ND2, and the processing result is output. The node ND4 performs the operation OP4 on the data from the node ND2 and outputs the processing result.
In each node, when data (called a token) is available in the input arc, the operation assigned to that node is executed. The execution of an operation is called that the node "fires". As a result of this firing, the input data (input token) is consumed and the output token is generated.

【0005】ノードND1は2つの入力アークaおよび
bを有する。ノードND1は、2つの入力アークaおよ
びbに入力データがそれぞれ到着しかつ出力アークが空
いているときに発火する。すなわち、入力データ(入力
トークン)に演算OP1が施されてその演算結果が出力
トークンとなる。このときノードND2の入力アークd
に入力データが到着していれば、ノードND1とノード
ND2とは同時に発火することができる。ノードND3
は、ノードND1およびノードND2の演算が完了する
のを待つ必要がある。ノードND4は、ノードND2に
おいて演算OP2が実行された後に発火することができ
る。
The node ND1 has two input arcs a and b. The node ND1 fires when the input data arrives at the two input arcs a and b, respectively, and the output arc is empty. That is, the operation OP1 is applied to the input data (input token), and the operation result becomes an output token. At this time, the input arc d of the node ND2
If the input data arrives at, the nodes ND1 and ND2 can fire at the same time. Node ND3
Must wait for the operations of the nodes ND1 and ND2 to be completed. The node ND4 can fire after the operation OP2 is executed in the node ND2.

【0006】一般に、n入力m出力のノードは最大2入
力および2出力を有する基本ノードの組合せで実現する
ことができる。基本ノードとしては、入力アークに与え
られたデータに演算を施す演算ノードと、入力トークン
をコピーして複数の出力アークに出力する分配ノード
と、複数の入力アークに与えられたデータを出力アーク
へ伝達する合流ノードと、データの伝達経路を制御する
制御ノードなどがある。
In general, an n-input m-output node can be realized by a combination of basic nodes having a maximum of 2 inputs and 2 outputs. The basic nodes are a calculation node that performs a calculation on the data given to the input arc, a distribution node that copies the input token and outputs it to multiple output arcs, and the data given to the multiple input arcs to the output arc. There are a merging node for transmitting and a control node for controlling a data transmitting route.

【0007】データフロー型処理では、データ駆動と呼
ばれる実行原理に基づいて処理が実行される。データ駆
動の原理においては、「すべての演算は、その実行に必
要なオペランド(データ)が揃ったときに実行され
る」。データ駆動方式は、或る処理に1組の入力データ
しか許さない静的データ駆動方式と、2組以上の入力デ
ータの組を許す動的データ駆動方式とを含む。動的デー
タ駆動方式においては、複数の入力データの組を識別す
るために、「世代番号」などの識別子が利用される。伝
送データは、行先ノードなどを特定する情報を含み、パ
ケットの形態で伝達される。
In the data flow type processing, the processing is executed based on an execution principle called data driving. In the data driven principle, "all operations are executed when the operands (data) necessary for the execution are prepared". The data driven method includes a static data driven method that allows only one set of input data for a certain process and a dynamic data driven method that allows two or more sets of input data. In the dynamic data driving method, an identifier such as "generation number" is used to identify a plurality of sets of input data. The transmission data includes information identifying the destination node and the like, and is transmitted in the form of packets.

【0008】図14は、データパケットの構成を示す図
である。図14において、データパケットは、未発火フ
ラグ、2出力命令識別フラグなどのデータの状態を示す
フラグを格納するフラグフィールドF1と、行先ノード
を特定する行先ノード番号を格納する行先ノード番号フ
ィールドF2と、その行先ノードにおける世代識別子で
ある世代番号を格納する世代番号フィールドF3と、実
行されるべき演算を特定する命令を格納する命令フィー
ルドF4と、処理されるべきデータすなわちオペランド
データを格納するオペランドデータフィールドF5およ
びF6を含む。命令フィールドは、その命令が2項演算
命令であるか単項演算命令であるかを識別する2項/単
項演算命令識別フラグを含む。この命令フィールドF4
に含まれる2項/単項演算命令識別フラグについては後
にまた説明する。
FIG. 14 is a diagram showing the structure of a data packet. In FIG. 14, the data packet includes a flag field F1 that stores a flag indicating a data state such as an unfired flag and a two-output instruction identification flag, and a destination node number field F2 that stores a destination node number that identifies the destination node. , A generation number field F3 for storing a generation number which is a generation identifier at the destination node, an instruction field F4 for storing an instruction specifying an operation to be executed, and operand data for storing data to be processed, that is, operand data It includes fields F5 and F6. The instruction field includes a binary / unary operation instruction identification flag that identifies whether the instruction is a binary operation instruction or a unary operation instruction. This command field F4
The binary / unary operation instruction identification flag included in (1) will be described later.

【0009】図15は、データ駆動型情報処理装置の全
体の構成を概略的に示す図である。図15において、デ
ータ駆動型情報処理装置500は、外部から与えられる
入力データを受けるための入力ポート502と、入力ポ
ート502からの入力データのうち、このデータ駆動型
情報処理装置500を指定する入力データとそうでない
入力データとを分離する分岐ユニット504と、分岐ユ
ニット504からの入力データを受け、その入力データ
に含まれる演算命令に従って処理を行なうデータ駆動エ
ンジン506と、データ駆動エンジン506からの処理
データと分岐ユニット504からの入力データとを合流
する合流ユニット508と、合流ユニット508からの
データを出力する出力ポート510を含む。
FIG. 15 is a diagram schematically showing the overall structure of the data driven type information processing apparatus. In FIG. 15, the data driven information processing apparatus 500 has an input port 502 for receiving input data given from the outside, and an input for designating the data driven information processing apparatus 500 among the input data from the input port 502. A branch unit 504 that separates data from input data that is not, a data driven engine 506 that receives input data from the branch unit 504, and performs processing according to an arithmetic instruction included in the input data, and processing from the data driven engine 506. It includes a merging unit 508 that merges the data and the input data from the branching unit 504, and an output port 510 that outputs the data from the merging unit 508.

【0010】入力ポート502は、外部から与えられる
入力データを受ける。複数の処理装置が含まれるマルチ
プロセサシステムにおいては、入力ポート502は、異
なる処理装置からのデータを合流した後に出力する。分
岐ユニット504は、この処理装置500を参照しない
入力データを合流ユニット508へ出力し、この処理装
置500を参照する入力データをデータ駆動エンジン5
06へ伝達する。
Input port 502 receives input data provided from the outside. In a multi-processor system including a plurality of processing devices, the input port 502 merges data from different processing devices and then outputs the data. The branching unit 504 outputs the input data that does not refer to the processing device 500 to the merging unit 508, and inputs the input data that refers to the processing device 500 to the data driven engine 5.
It is transmitted to 06.

【0011】データ駆動エンジン506は、この分岐ユ
ニット504から与えられたデータに従って処理を実行
する。このデータ駆動エンジン506は、その構成は後
に詳細に説明するが、命令コードの更新および次命令フ
ェッチに必要な行先情報(ノード番号)の更新を行なう
機能と、処理に必要なデータが揃ったこと(発火)の検
出を行なう発火制御機能と、必要なデータの待合せが完
了した命令に対し算術・論理演算などを行なう演算処理
機能とを備える。
The data driven engine 506 executes processing according to the data supplied from the branching unit 504. The configuration of the data driven engine 506 will be described in detail later, but the function for updating the instruction code and the destination information (node number) necessary for the next instruction fetch and the data necessary for the processing are prepared. It has a firing control function for detecting (firing) and an arithmetic processing function for performing arithmetic / logical operations on an instruction for which waiting of necessary data has been completed.

【0012】分岐ユニット504からのこの処理装置5
00を参照しない入力データおよびデータ駆動エンジン
506からの処理結果データは合流ユニット508で合
流される。合流ユニット508においては、分岐ユニッ
ト504およびデータ駆動エンジン506から排他的に
与えられるデータを出力ポート510へ伝達する。出力
ポート510は、与えられたデータに対し、所定のルー
ティング(マルチプロセサシステムにおける処理装置へ
の振り分け)を行ない、対応の処理装置へ伝達する。
This processor 5 from the branching unit 504
The input data that does not refer to 00 and the processing result data from the data driven engine 506 are merged by the merge unit 508. In merging unit 508, data exclusively provided from branching unit 504 and data driven engine 506 is transmitted to output port 510. The output port 510 performs predetermined routing (assignment to the processing device in the multiprocessor system) to the given data and transmits it to the corresponding processing device.

【0013】図16は、図15に示すデータ駆動エンジ
ンの構成を概略的に示すブロック図である。図16にお
いて、データ駆動エンジン506は、与えられたデータ
パケットを入力順に出力する合流ユニット550と、合
流ユニット550からのデータパケットに対し、命令コ
ードの更新、ノード番号の更新および発火の検出を行な
うプログラム記憶付発火制御ユニット552と、このプ
ログラム記憶付発火制御ユニット552からの発火デー
タパケットに対しその命令フィールドF4に含まれる命
令に従った演算を行なう演算処理ユニット554と、演
算処理ユニット554からの処理データまたは未発火デ
ータパケットを受け、そのデータパケットに含まれる行
先情報(ノード番号)に従ってその行先をデータ駆動エ
ンジン506の外部または内部に振り分ける分岐ユニッ
ト556と、分岐ユニット556からのデータパケット
を順次格納し、その格納データを順次入力順に合流ユニ
ット550へ与えるデータバッファ558を含む。
FIG. 16 is a block diagram schematically showing the structure of the data driven engine shown in FIG. In FIG. 16, a data driven engine 506 performs an instruction code update, a node number update, and an ignition detection on a merge unit 550 that outputs given data packets in the order of input and a data packet from the merge unit 550. An ignition control unit 552 with a program memory, an arithmetic processing unit 554 for performing an arithmetic operation on an ignition data packet from this program storage with an ignition control unit 552 according to an instruction included in the instruction field F4, and an arithmetic processing unit 554. A branch unit 556 that receives the processed data or the unfired data packet and distributes the destination to the outside or the inside of the data driving engine 506 according to the destination information (node number) included in the data packet, and the data packet from the branch unit 556 sequentially. It was paid, including data buffer 558 to provide the stored data sequentially to the merge unit 550 in the input order.

【0014】プログラム記憶付発火制御ユニット552
は、2項演算命令等で処理されるべき2つのオペランド
データの待合せを行なうための対データ検出ユニット5
62と、行先情報(ノード番号等)および命令情報を格
納したレコードを複数個含むデータフロープログラムを
記憶するプログラム記憶ユニット564を含む。プログ
ラム記憶ユニット564は、また与えられたデータパケ
ットに含まれるノード番号データに基づいて生成された
アドレスに従ってこのプログラムメモリから対応のデー
タレコードを読出し、与えられたデータパケットの行先
ノード番号フィールドF2および命令フィールドF4の
内容を、読出したデータレコードの内容に更新して出力
する機能を備える。
Ignition control unit 552 with program storage
Is a pair data detection unit 5 for waiting two operand data to be processed by a binary operation instruction or the like.
62, and a program storage unit 564 for storing a data flow program including a plurality of records storing destination information (node number etc.) and command information. Program storage unit 564 also reads the corresponding data record from this program memory according to the address generated based on the node number data contained in the given data packet, and determines the destination node number field F2 and the instruction of the given data packet. It has a function of updating the contents of the field F4 to the contents of the read data record and outputting the contents.

【0015】対データ検出ユニット562は、前述のご
とく2項演算命令等で処理されるべき2つのオペランド
データの待合せを行なう。すなわち、対となるデータを
検出する。ここで、対となるデータとは、同じ行先ノー
ド番号および同じ世代番号を有するデータパケットであ
る。この対データ検出ユニット562は、このデータの
待合せのための待合せメモリを備える。
The pair data detection unit 562 waits for two operand data to be processed by a binary operation instruction or the like as described above. That is, paired data is detected. Here, the paired data is a data packet having the same destination node number and the same generation number. The pair data detection unit 562 includes a queuing memory for queuing this data.

【0016】この図16に示す構成においては、プログ
ラム記憶付発火制御ユニット552において発火が検出
されたデータに対してのみ演算処理ユニット554にお
いて処理が実行される。未発火データパケットは演算処
理ユニット554では処理は実行されない。この未発火
のデータパケットは分岐ユニット556によりデータバ
ッファ558へ格納される。分岐ユニット556は、ま
た、未発火状態でないデータパケットに対しても、その
行先番号フィールドF2に含まれるノード番号情報に従
ってデータパケットを装置外部またはデータバッファ5
58へ伝達する。
In the structure shown in FIG. 16, the arithmetic processing unit 554 executes the processing only on the data in which the ignition control unit 552 with the program memory detects the ignition. The unfired data packet is not processed by the arithmetic processing unit 554. This unfired data packet is stored in the data buffer 558 by the branching unit 556. The branching unit 556 also sends a data packet to the outside of the device or the data buffer 5 according to the node number information included in the destination number field F2 even for a data packet which is not in an unfired state.
58.

【0017】データバッファ558は、この処理装置5
06を流れるデータパケットの数が増加した場合に、こ
の処理装置506のパイプラインから溢れ出ないように
するために、一時的にデータパケットを格納する。デー
タバッファ558は、通常、先入れ先出し型メモリで構
成される。データバッファ558は、この分岐ユニット
556から入力されるデータパケットを順次取込んで格
納し、合流ユニット550が空き状態にあれば、この格
納した順にデータパケット合流ユニット550を介して
プログラム記憶付制御ユニット552へデータパケット
を伝達する。処理装置506においては、通常このプロ
グラム記憶付発火制御552および演算処理554がパ
イプラインを構成しており、データ処理が互いにオーバ
ラップしながら実行され、データ処理の高速化が図られ
ている。
The data buffer 558 is used by the processing device 5.
When the number of data packets flowing through 06 increases, the data packets are temporarily stored so as not to overflow the pipeline of the processing device 506. The data buffer 558 is usually composed of a first-in first-out memory. The data buffer 558 sequentially fetches and stores the data packets input from the branching unit 556, and if the merging unit 550 is in an empty state, the control unit with program storage unit via the data packet merging unit 550 in the stored order. The data packet is transmitted to 552. In the processing device 506, the ignition control 552 with program storage and the arithmetic processing 554 normally form a pipeline, and the data processing is executed while overlapping each other, thereby speeding up the data processing.

【0018】図17は、図16に示すプログラム記憶付
発火制御ユニットの機能的構成を示す図である。図17
において、対データ検出ユニット562は、与えられた
入力データパケットの命令フィールドF4の命令をデコ
ードし、その命令が単項演算命令であるか2項演算命令
であるかの判別を行なう命令識別部602と、命令識別
部602の制御の下に活性化され、入力データパケット
の行先ノード番号フィールドF2および世代番号フィー
ルドF3に含まれる行先ノード番号および世代番号に対
しハッシュ演算(これについては後述する)を施して待
合せメモリ604のアドレスを生成し、対応のアドレス
のデータ(データパケット)を読出す読出制御部606
と、読出制御部606により待合せメモリ604から読
出されたデータ(データパケット)と入力データパケッ
トとの優先順位を予め定められた条件に従って判別する
とともに、対となるデータであるか否かの判別をも合わ
せて行なう優先度判別部608と、優先度判別部608
の判別結果に従って、入力データパケットおよび読出デ
ータ(データパケット)に対し所定の処理を行なうパケ
ット制御部610を含む。パケット制御部610は、優
先度判別部608において、読出されたデータ(データ
パケット)と入力データパケットとが対をなすデータで
あることが判別された場合には、発火パケットを生成し
プログラム記憶ユニット564へ伝達する。
FIG. 17 is a diagram showing the functional configuration of the ignition control unit with program storage shown in FIG. FIG. 17
In, the paired data detection unit 562 decodes the instruction in the instruction field F4 of the given input data packet and determines whether the instruction is a unary operation instruction or a binary operation instruction. , Which is activated under the control of the instruction identifying unit 602, and performs a hash operation (which will be described later) on the destination node number and the generation number included in the destination node number field F2 and the generation number field F3 of the input data packet. A read control unit 606 that generates an address in the queuing memory 604 and reads the data (data packet) at the corresponding address.
Then, the priority of the data (data packet) read from the queuing memory 604 by the read control unit 606 and the input data packet is determined according to a predetermined condition, and it is also determined whether the data is a pair of data. Priority determination unit 608 and priority determination unit 608
A packet control unit 610 for performing a predetermined process on the input data packet and the read data (data packet) in accordance with the determination result of. When the priority determination unit 608 determines that the read data (data packet) and the input data packet are paired data, the packet control unit 610 generates an ignition packet and generates a program storage unit. To 564.

【0019】命令識別部602は、命令フィールドF4
に含まれる単項演算命令/2項演算命令フラグを見て命
令を識別してもよい。
The instruction identifying unit 602 has an instruction field F4.
The instruction may be identified by looking at the unary operation instruction / binary operation instruction flag included in.

【0020】待合せメモリ604は、通常対をなすデー
タを待受けるデータパケットに対しては、有効フラグ
(VLD)を立てて格納する。優先度判別部608は、
この待合せメモリ604から読出されたデータと入力デ
ータパケットとのハッシュ衝突および発火命令の判別を
行なう。ハッシュ衝突時においては、優先度判別部60
8は、予め定められた優先順位に従っていずれのデータ
パケットを待合せメモリ604に格納するかを判別す
る。ハッシュ衝突時において、待合せメモリ604に格
納されないデータパケットは、パケット制御部610に
おいて、未発火フラグNFRが立てられて“1”とされ
てプログラム記憶ユニット564へ伝達される。ここ
で、読出制御部606がアドレス生成時に行なうハッシ
ュ演算および優先度判別部608におけるハッシュ衝突
について説明する。
The queuing memory 604 sets a valid flag (VLD) for a data packet which normally waits for a pair of data and stores the data packet. The priority determination unit 608
The hash collision between the data read from the queuing memory 604 and the input data packet and the firing instruction are determined. At the time of hash collision, the priority determination unit 60
8 determines which data packet is stored in the queuing memory 604 according to a predetermined priority order. At the time of hash collision, the data packet not stored in the queuing memory 604 is transmitted to the program storage unit 564 with the unfired flag NFR set to “1” in the packet control unit 610. Here, the hash calculation performed by the read control unit 606 at the time of address generation and the hash collision in the priority determination unit 608 will be described.

【0021】図18は、ハッシュ演算の効果を示す図で
ある。動的データ駆動方式においては、或る処理に対し
複数組の入力データの組が許容される。この複数組の入
力データを識別するために世代番号などの識別子が導入
される。したがって、行先ノード番号および世代番号を
アドレスとするメモリの物理的空間が対データを待合せ
るための場所として利用される。このデータの待合せ領
域としては、使用されるすべての行先ノード番号と世代
番号の組合せのすべてを含むメモリ空間を持つことが望
ましい。しかしながら、取扱われる世代数およびノード
番号の数が多くなると、このような行先ノード番号およ
び世代番号すべての組をアドレスとするメモリ空間を有
することはメモリ利用効率の点からみて現実的ではなく
また経済的でもない。そこで、図18に示すように、行
先ノード番号と世代番号とに対しハッシュ演算を施し、
その結果得られる値をアドレスとする待合せメモリアド
レス空間を作成する。
FIG. 18 is a diagram showing the effect of the hash calculation. In the dynamic data driven method, a plurality of sets of input data are allowed for a certain process. An identifier such as a generation number is introduced to identify the plurality of sets of input data. Therefore, the physical space of the memory having the destination node number and the generation number as an address is used as a place for waiting the paired data. As a waiting area for this data, it is desirable to have a memory space containing all combinations of all destination node numbers and generation numbers used. However, when the number of generations and node numbers to be handled increases, it is not realistic from the viewpoint of memory usage efficiency to have a memory space having addresses of all such destination node numbers and generation numbers, and it is economical. Not even the target. Therefore, as shown in FIG. 18, a hash operation is performed on the destination node number and the generation number,
A waiting memory address space whose address is the value obtained as a result is created.

【0022】ハッシュ演算とは、複数のフィールド(通
常キー)を異なった配置に変更するために行なわれる操
作を示す。たとえば元のキーを新しいキーに変形するた
めに、元のキーについて何らかの予め定められた操作を
行なうことをハッシュ演算と呼ぶ。このハッシュ演算に
は様々な方法がある。簡単なハッシュ演算に、除算剰余
法と呼ばれるものがある。この除算剰余法においては、
或る適当な数を選択し、この選択された数を除数として
被除数を割り、商と余りとを求める。この余りを変換後
のキーとする。この場合、除数として、たとえば100
0を用いると、変換後のキーは元のキーのモジュロ10
00となる。すなわち、たとえば除数を1000とした
場合、行先ノード番号と世代番号をこのモジュロ100
0の演算によりハッシュアドレスを生成する。この場
合、図18に示すように、ノード番号/世代番号空間を
ハッシュ演算により待合せメモリアドレス空間へ圧縮し
たため、待合せメモリアドレス空間のアドレス(以下ハ
ッシュアドレスと呼ぶ)とノード番号/世代番号空間に
おけるアドレスとは1対多対応となる。このようにハッ
シュアドレスが重複することをハッシュ衝突と呼ぶ。ハ
ッシュ演算としては、上述の除算数剰余法の他に、折り
重ね法、基数変換法および数字再配置法などがある。
The hash operation means an operation performed for changing a plurality of fields (normal keys) to different arrangements. Performing some predetermined operation on the original key in order to transform the original key into a new key is called a hash operation. There are various methods for this hash operation. A simple hash operation is called the division and remainder method. In this division remainder method,
An appropriate number is selected, the dividend is divided by using the selected number as a divisor, and the quotient and the remainder are obtained. This remainder is the converted key. In this case, the divisor is, for example, 100
If 0 is used, the converted key will be modulo 10 of the original key.
It becomes 00. That is, for example, when the divisor is 1000, the destination node number and the generation number are modulo 100.
A hash address is generated by calculating 0. In this case, as shown in FIG. 18, since the node number / generation number space is compressed into the waiting memory address space by the hash operation, the address of the waiting memory address space (hereinafter referred to as hash address) and the address in the node number / generation number space And one-to-many correspondence. Such overlapping of hash addresses is called hash collision. As the hash operation, there are a folding method, a radix conversion method, a number rearrangement method, and the like, in addition to the above-mentioned division and remainder method.

【0023】図19に示すように、ノード番号/世代番
号空間800において、行先ノード番号NDと世代番号
GNがそれぞれ異なる領域ND1/GN1、ND2/G
N2、ND3/GN3、ND4/GN4が待合せメモリ
アドレス空間におけるハッシュアドレスHAiに対応す
る状態が存在する。1つのハッシュアドレスに対し複数
のノード番号/世代番号アドレスが存在する状態を縮退
と称す。
As shown in FIG. 19, in the node number / generation number space 800, areas ND1 / GN1 and ND2 / G having different destination node numbers ND and generation numbers GN are provided.
There is a state in which N2, ND3 / GN3, and ND4 / GN4 correspond to the hash address HAi in the waiting memory address space. A state in which a plurality of node number / generation number addresses exist for one hash address is called degeneration.

【0024】読出制御部606は上述のハッシュ演算を
施して待合せメモリ604に対するアドレスを生成して
いる。この場合、互いに異なる行先ノード番号および世
代番号を有するデータであっても、この待合せメモリ6
04の同一アドレスの待合せ領域を利用する。したがっ
てハッシュ衝突が生じる。
The read control unit 606 performs the above-mentioned hash calculation to generate an address for the queuing memory 604. In this case, even if the data has different destination node numbers and generation numbers, the waiting memory 6
The waiting area of the same address 04 is used. Therefore, hash collision occurs.

【0025】今、対データの待合せを行なうためにデー
タパケットがこの待合せメモリ604に書込まれている
とき(待合せデータは通常有効フラグが立てられてい
る)、行先ノード番号または世代番号が異なるが同一の
ハッシュアドレスを有するデータが与えられた場合に
は、どちらのデータを優先的に処理するのかを判別する
必要がある。この優先度の判別が優先度判別部608に
おいて実行される。優先度判別部608は、その待合せ
メモリ604から読出されたデータと入力データとの優
先度を比較し、優先度が高い方のデータパケットを待合
せメモリ604に書込み、優先度の低いデータパケット
は未発火フラグNFRを立てて出力する。この待合せメ
モリ604へのデータパケットの書込および未発火フラ
グのオン/オフはパケット制御部610において実行さ
れる。以下の説明において、優先度判別部608が用い
る優先度の判別基準には、(1)世代番号が小さい方が
優先度が高い、(2)世代番号が同一の場合には、行先
ノード番号が小さい方が優先度が高いという基準が利用
されるものとする。
Now, when a data packet is written in the queuing memory 604 for queuing the paired data (the queuing data is normally flagged as valid), the destination node number or generation number is different. When data having the same hash address is given, it is necessary to determine which data is preferentially processed. This priority determination is executed by the priority determination unit 608. The priority determination unit 608 compares the priority of the data read from the queuing memory 604 with the input data, writes the data packet with the higher priority to the queuing memory 604, and the data packet with the lower priority is not The ignition flag NFR is set and output. The writing of the data packet to the queuing memory 604 and the turning on / off of the unfired flag are executed by the packet control unit 610. In the following description, the priority determination criteria used by the priority determination unit 608 are (1) a smaller generation number has a higher priority, and (2) a same generation number has a destination node number. It is assumed that the criterion that the smaller is the higher is used.

【0026】ハッシュ衝突が生じず、対をなすデータが
検出された場合、パケット制御部610は、有効フラグ
をオフとし、かつ未発火フラグをもオフとしてデータパ
ケットをプログラム記憶ユニット564へ伝達する。
When a hash collision does not occur and a pair of data is detected, the packet control unit 610 transmits the data packet to the program storage unit 564 with the valid flag off and the unfired flag off.

【0027】プログラム記憶ユニット564は、対デー
タ検出ユニット562からのデータパケットを受け、そ
のデータパケットが発火しているか否かを識別する発火
識別部620と、発火識別部620からの発火/未発火
指示情報に従って、入力データパケットの行先ノード番
号フィールドF2に含まれる行先ノード番号に基づいて
アドレスを生成し、プログラムメモリ622から次の命
令をフェッチする次命令フェッチ部624と、この次命
令フェッチ部624でフェッチされたデータパケットに
対し、発火識別部620からの発火指示に従って、入力
データパケットの行先ノード番号フィールドF2および
命令フィールドF4の内容を、次命令フェッチ部624
によりプログラムメモリ622からフェッチされた次の
行先情報および命令情報により更新するパケット生成部
626を含む。パケット生成部626は、発火識別部6
20が発火を識別しないとき、すなわち入力データパケ
ットの未発火フラグが立てられてオン状態の場合にはこ
の入力データパケットに対しては処理を行なわずそのま
ま出力する。
The program storage unit 564 receives the data packet from the paired data detection unit 562, and identifies the firing of the data packet, and the firing / non-firing of the firing discrimination unit 620. A next instruction fetch unit 624 that generates an address based on the destination node number included in the destination node number field F2 of the input data packet according to the instruction information, and fetches the next instruction from the program memory 622, and this next instruction fetch unit 624. For the data packet fetched in step S6, the contents of the destination node number field F2 and the instruction field F4 of the input data packet are transferred to the next instruction fetch unit 624 according to the firing instruction from the firing identification unit 620.
It includes a packet generation unit 626 that updates with the next destination information and instruction information fetched from the program memory 622 by. The packet generation unit 626 uses the firing identification unit 6
When 20 does not identify the firing, that is, when the non-firing flag of the input data packet is set and is in the ON state, this input data packet is not processed and is output as it is.

【0028】このパケット生成部626からのデータパ
ケットが演算処理ユニット554へ伝達される。次に、
この対データ検出ユニット552およびプログラム記憶
ユニット564の動作についてその動作フロー図である
図20および図21を参照して説明する。
The data packet from the packet generator 626 is transmitted to the arithmetic processing unit 554. next,
The operation of paired data detection unit 552 and program storage unit 564 will be described with reference to the operation flow charts of FIGS. 20 and 21.

【0029】図20は対データ検出ユニットの動作を示
すフロー図である。以下、図17および図20を参照し
て対データ検出ユニットの動作について説明する。
FIG. 20 is a flow chart showing the operation of the paired data detection unit. The operation of the paired data detection unit will be described below with reference to FIGS. 17 and 20.

【0030】入力データパケットが与えられると、まず
命令識別部602において命令がデコードされ(ステッ
プS1)、その入力データパケットに含まれる演算命令
が2項演算命令であるか単項演算命令であるかの判別が
行なわれる(ステップS2)。このとき、2項演算命令
は2変数演算命令および定数演算命令両者を含んでもよ
い。また、命令デコード操作としては、単に単項演算命
令/2項演算命令フラグを見ることによりデコードおよ
び判別動作が行なわれてもよい。
When an input data packet is given, the instruction discriminating unit 602 first decodes the instruction (step S1) to determine whether the operation instruction included in the input data packet is a binary operation instruction or a unary operation instruction. A determination is made (step S2). At this time, the binary operation instruction may include both a two-variable operation instruction and a constant operation instruction. Further, as the instruction decoding operation, the decoding and discriminating operation may be performed simply by looking at the unary operation instruction / binary operation instruction flag.

【0031】ステップS2において2項演算命令ではな
いと判別された場合、その命令は単項演算命令であり、
対データは待合せていないため、そのデータパケットの
未発火フラグはオフ状態にリセットされ(ステップS
4)出力される。
If it is determined in step S2 that it is not a binary operation instruction, the instruction is a unary operation instruction,
Since the paired data is not waiting, the unfired flag of the data packet is reset to the off state (step S
4) It is output.

【0032】ステップS2において、2項演算命令であ
ると判別された場合、読出制御部606において、入力
データパケットに含まれる行先ノード番号および世代番
号に対しハッシュ演算を施してハッシュアドレスが生成
され、待合せメモリ604へアクセスが行なわれる(ス
テップS6)。
When it is determined in step S2 that the operation instruction is a binary operation instruction, the read control unit 606 performs a hash operation on the destination node number and the generation number included in the input data packet to generate a hash address, The waiting memory 604 is accessed (step S6).

【0033】ステップS6において、優先度判別部60
8により待合せメモリ604から読出制御部606によ
り読出されたデータパケットが有効なデータパケットで
あるか、すなわち待合せを行なっているデータパケット
であるか否かの判別が行なわれる(ステップS8)。こ
れは待合せメモリ604において待合せているデータパ
ケットには有効フラグが立てられており、この有効フラ
グを見ることにより実行される。
In step S6, the priority determination unit 60
In step S8, it is determined whether the data packet read from the queuing memory 604 by the read control unit 606 is a valid data packet, that is, whether or not it is a queuing data packet (step S8). This is executed by checking the valid flag for the data packet waiting in the queuing memory 604.

【0034】ステップS8において、有効なデータパケ
ットが存在しない場合、その入力データパケットは待合
せのため、パケット制御部610によりこの生成された
ハッシュアドレスに従って待合せメモリ604に格納さ
れ、有効フラグが立てられる(ステップS10)。この
とき、合わせて有効データであることを示す有効データ
フラグが立てられる。
In step S8, if there is no valid data packet, the input data packet is stored in the queuing memory 604 according to the generated hash address by the packet control unit 610 for queuing, and a valid flag is set ( Step S10). At this time, a valid data flag indicating that it is valid data is also set.

【0035】ステップS8において、有効な待合せデー
タパケットが存在する場合、優先度判別部608により
入力データパケットと読出されたデータパケットの行先
ノード番号および世代番号の一致/不一致が判別され
る。すなわち、ハッシュ衝突が生じたか否かの判別が行
なわれる(ステップS12)。
In step S8, when there is a valid waiting data packet, the priority determining unit 608 determines whether the destination node number and generation number of the input data packet and the read data packet match / mismatch. That is, it is determined whether or not a hash collision has occurred (step S12).

【0036】ステップS12においてハッシュ衝突が生
じていないと判別された場合、それは対をなすデータで
ある。したがってこの状態では、パケット制御部610
により発火データパケットが生成され、未発火フラグは
オフ状態にリセットされて出力される(ステップS1
4)。
If it is determined in step S12 that a hash collision has not occurred, it is a pair of data. Therefore, in this state, the packet control unit 610
Generates an ignition data packet, and the unfired flag is reset to the off state and output (step S1).
4).

【0037】ステップS12においてハッシュ衝突が生
じていると判別された場合(これは図17に示す優先度
判別部608が実行する)、この入力データパケットと
読出されたデータパケットとの優先順位の判別が行なわ
れる。優先順位基準に従って、世代番号の大小がまず比
較され、世代番号が小さい方が優先度が高いと判別され
る。世代番号が同じ場合には行先ノード番号が小さい方
が優先度が高いものと判定される。この判定基準に従っ
て優先度が高いと判別されたデータパケットは待合せメ
モリ604へ格納され、その有効データフラグがオン状
態とされる。
When it is determined in step S12 that a hash collision has occurred (this is executed by the priority determination unit 608 shown in FIG. 17), the priority order of this input data packet and the read data packet is determined. Is performed. According to the priority standard, the generation numbers are compared first, and the smaller generation number is determined to have higher priority. When the generation numbers are the same, it is determined that the smaller the destination node number is, the higher the priority is. The data packet determined to have a high priority according to this criterion is stored in the queuing memory 604, and its valid data flag is turned on.

【0038】一方、優先度が低いと判別されたデータパ
ケットは、その未発火フラグがオン状態に設定されて出
力される(ステップS16)。
On the other hand, the data packet determined to have the low priority is output with its unfired flag set to the ON state (step S16).

【0039】上述の処理動作により、対データ検出ユニ
ット562においては、待合せのためのデータパケット
の格納、入力データパケットの保存(未発火フラグをオ
ン状態に設定して出力)、および発火パケットの生成の
いずれかが実行され、この処理結果がプログラム記憶ユ
ニット564へ伝達される。次に、図17および図21
を参照してプログラム記憶ユニットの動作について説明
する。
By the above-described processing operation, the paired data detection unit 562 stores a data packet for waiting, saves an input data packet (sets the unfired flag in the ON state and outputs it), and generates a fired packet. Is executed and the processing result is transmitted to the program storage unit 564. Next, FIGS.
The operation of the program storage unit will be described with reference to FIG.

【0040】まず、対データ検出ユニット562から伝
達されたデータパケットはその発火識別部660におい
て未発火フラグがオンであるかオフであるかの判別が行
なわれる(ステップS20)。未発火フラグがオン状態
にあり、待合せデータパケットである場合には、そのま
ま出力される。未発火フラグがオフ状態にあり、発火デ
ータパケットの場合にはプログラム命令の次命令フェッ
チのため、プログラムメモリ622がアクセスされる
(ステップS22)。このアクセスのためには、入力デ
ータパケットに含まれる行先ノード番号が利用される。
このとき、また対データ検出ユニット562と同様のハ
ッシュ演算が実行されてもよい。
First, the data packet transmitted from the paired data detection unit 562 is discriminated by the firing identification section 660 as to whether the non-firing flag is on or off (step S20). If the unfired flag is in the ON state and the packet is a waiting data packet, it is output as it is. When the unfired flag is in the OFF state and the data packet is a fired data packet, the program memory 622 is accessed for the next instruction fetch of the program instruction (step S22). The destination node number included in the input data packet is used for this access.
At this time, the same hash calculation as that performed by the paired data detection unit 562 may be executed.

【0041】ステップS22においてプログラムメモリ
622から読出されたデータ、すなわちデータフロープ
ログラムに従って、入力データパケットに対し以下の処
理が行なわれる。すなわち、入力データパケットの命令
フィールドF4および行先ノード番号フィールドF2の
行先ノード番号の更新が実行される。この更新の後、未
発火フラグはリセット状態とされて出力される。
According to the data read from program memory 622 in step S22, that is, the data flow program, the following processing is performed on the input data packet. That is, the destination node number of the instruction field F4 and the destination node number field F2 of the input data packet is updated. After this update, the unfired flag is reset and output.

【0042】このプログラム記憶ユニットから出力され
るデータパケットは演算処理ユニット554へ与えられ
る。演算処理ユニット554は、入力されたデータパケ
ットの未発火フラグがオフ状態であれば、命令フィール
ドF4に含まれる命令に従ってそこに含まれるデータに
対し演算処理を施し、その処理結果をオペランドデータ
フィールドF5に格納する。
The data packet output from the program storage unit is applied to the arithmetic processing unit 554. If the unfired flag of the input data packet is off, the arithmetic processing unit 554 performs arithmetic processing on the data contained therein according to the instruction contained in the instruction field F4, and outputs the processing result to the operand data field F5. To store.

【0043】演算処理ユニット554は、入力データパ
ケットの未発火フラグがオン状態の場合には演算処理は
実行しない。
The arithmetic processing unit 554 does not execute the arithmetic processing when the unfired flag of the input data packet is on.

【0044】演算処理ユニット554の出力データパケ
ットは分岐ユニット556へ伝達される。分岐ユニット
556は、与えられたデータパケットの未発火フラグが
オフ状態にあれば、そこに含まれる行先ノード番号フィ
ールドF2に含まれる行先ノード番号に従って、装置外
部およびデータバッファ558の一方に選択的に出力す
る。与えられたデータパケットの未発火フラグがオン状
態の場合には、この分岐ユニット556は入力データパ
ケットをデータバッファ558へ伝達する。
The output data packet of the arithmetic processing unit 554 is transmitted to the branching unit 556. If the unfired flag of the given data packet is in the off state, the branching unit 556 selectively outputs to one of the outside of the device and the data buffer 558 according to the destination node number contained in the destination node number field F2 contained therein. Output. When the unfired flag of the given data packet is in the ON state, this branching unit 556 transfers the input data packet to the data buffer 558.

【0045】データバッファ558は、この処理装置5
06を流れているデータパケットの揺らぎを吸収する。
The data buffer 558 is the processing unit 5
The fluctuation of the data packet flowing through 06 is absorbed.

【0046】[0046]

【発明が解決しようとする課題】上述のように、データ
パケットが、対データ検出ユニット562→プログラム
記憶ユニット564→演算処理ユニット554→分岐ユ
ニット556→データバッファ558→合流ユニット5
50→対データ検出ユニット562…と巡回し続けるこ
とによりプログラム記憶ユニット564に格納されたデ
ータフロープログラムに基づいた情報処理が進行する。
このデータパケットの巡回パスは、通常、パイプライン
化されている。
As described above, the data packet is transferred to the data detection unit 562.fwdarw.program storage unit 564.fwdarw.arithmetic processing unit 554.fwdarw.branch unit 556.fwdarw.data buffer 558.fwdarw.merging unit 5.
The information processing based on the data flow program stored in the program storage unit 564 progresses by continuing to cycle from 50 to the pair data detection unit 562 ....
The circular path of this data packet is usually pipelined.

【0047】対データ検出ユニット562において、未
発火フラグがオン状態とされたデータパケットも同様
に、対データ検出ユニット562→プログラム記憶ユニ
ット564→演算処理ユニット554→分岐ユニット5
56→データバッファ558→合流ユニット550とこ
のデータ処理中のデータパケットと同様のパイプライン
化された巡回パスを巡回する。この未発火フラグがオン
状態のデータパケットはプログラム記憶ユニット564
および演算処理ユニット554で処理されることなく対
データ検出ユニット562における待合せメモリ604
の待合せ領域が利用可能となるまでこの巡回パスを巡回
し続ける。
Similarly, in the paired data detection unit 562, a data packet whose unfired flag is turned on is paired data detection unit 562 → program storage unit 564 → arithmetic processing unit 554 → branch unit 5 as well.
56-> data buffer 558-> merging unit 550 and a pipelined cyclic path similar to the data packet in the process of data processing. The data packet whose on-fire flag is on is stored in the program storage unit 564.
And the queuing memory 604 in the data detection unit 562 without being processed by the arithmetic processing unit 554.
This patrol path continues to be patrolled until the waiting area of is available.

【0048】未発火状態のデータパケットが増加し、デ
ータバッファ558に格納されるデータパケットの数が
増加すると、この巡回パスにおけるパイプラインが長く
なる。このため、即座に処理することのできる可能性の
あるデータパケットがこの巡回パスを巡回する速度が低
下するという問題が生じる。
As the number of unfired data packets increases and the number of data packets stored in the data buffer 558 increases, the pipeline in this cyclic path becomes longer. For this reason, there arises a problem that the speed at which the data packet, which may be processed immediately, travels through this cyclic path is reduced.

【0049】また、すぐに処理可能なデータパケット
は、対データ検出ユニット562において検出され、速
やかに発火状態とされ、対データ検出ユニット652に
おける待合せメモリ604に空き領域を形成しなけれ
ば、未発火状態のデータパケットはいつまでも未発火状
態を維持することになり、処理が進行しない。この結
果、全体としての処理速度が低下する。この状態につい
て少し詳しく以下に説明する。
A data packet which can be immediately processed is detected by the paired data detection unit 562, is immediately set to the firing state, and is not fired unless an empty area is formed in the waiting memory 604 of the paired data detection unit 652. The state data packet will remain in the unfired state forever and the process will not proceed. As a result, the overall processing speed decreases. This state will be described in more detail below.

【0050】図22は、データ駆動型情報処理装置にお
ける巡回パスにおけるデータパケットの流れを例示する
図である。図22において、データバッファ558は、
合流ユニット550、対データ検出ユニット562、プ
ログラム記憶ユニット564、演算処理ユニット554
および分岐ユニット556からなるパイプラインに収納
可能な数以上のデータパケットが存在するために、この
パイプラインのオーバフローを吸収するために複数のデ
ータパケットを格納する。データバッファ558に格納
されるデータパケットは合流ユニット550の入力に空
きが生じたときに合流ユニット550を介して対データ
検出ユニット562へ与えられる。
FIG. 22 is a diagram showing an example of the flow of data packets in the cyclic path in the data driven type information processing apparatus. In FIG. 22, the data buffer 558 is
Merging unit 550, pair data detection unit 562, program storage unit 564, arithmetic processing unit 554
Since there are more data packets than can be accommodated in the pipeline including the branch unit 556, a plurality of data packets are stored to absorb the overflow of this pipeline. The data packet stored in the data buffer 558 is provided to the paired data detection unit 562 via the merging unit 550 when the input of the merging unit 550 has a space.

【0051】今、データバッファ558に含まれるデー
タパケット110a、101b、および110bに着目
する。これらのデータパケット101b、110a、お
よび110bは、対データ検出ユニット562に含まれ
る待合せメモリ604の同一の待合せ領域を重複利用し
ているものとする。すなわち同一のハッシュアドレスを
生成するものとする。データパケット101bは、その
未発火フラグNRFがオフ状態(“0”)にあり、対デ
ータ検出ユニット562において待っているデータパケ
ット101aと対データとして検出されて発火する。デ
ータパケット110aおよび110bは、未発火フラグ
NRFがオン状態(“1”)となっており、対データ検
出ユニット562においてデータパケット101aが待
合せメモリ604の待合せ領域を使用しているため、未
発火フラグNRFがオン状態とされ出力されたデータパ
ケットである。この仮定の下でデータパケットの処理の
流れについて説明する。
Attention is now paid to the data packets 110a, 101b and 110b included in the data buffer 558. It is assumed that these data packets 101b, 110a, and 110b redundantly use the same waiting area of the waiting memory 604 included in the paired data detection unit 562. That is, the same hash address is generated. The data packet 101b has its unfired flag NRF in the off state (“0”), and is detected as the paired data packet 101a waiting in the paired data detection unit 562 and fired. The unfired flag NRF of the data packets 110a and 110b is in the ON state (“1”), and the unfired flag NRF in the data detection unit 562 uses the waiting area of the waiting memory 604. This is a data packet output with the NRF turned on. Based on this assumption, the flow of data packet processing will be described.

【0052】データバッファ558は、先入れ先出し型
メモリである。データパケット110a、101b、お
よび110bの出力順序は変化しない。
The data buffer 558 is a first-in first-out memory. The output order of the data packets 110a, 101b, and 110b does not change.

【0053】まず、データパケット110aが対データ
検出ユニット562へ与えられる。このデータパケット
110aのための待合せ領域は優先度の高いデータパケ
ット101aが利用している。したがって、データパケ
ット110aは再び、未発火フラグをオン状態とされて
出力される。
First, the data packet 110a is given to the data detection unit 562. The waiting area for the data packet 110a is used by the data packet 101a having a high priority. Therefore, the data packet 110a is output again with the unfired flag turned on.

【0054】次に、データパケット101bが対データ
検出ユニット562へ与えられる。このデータパケット
101bは、待合せメモリ604に格納されているデー
タパケット101aと対をなすため、対データとして検
出される。これにより、それまでデータパケット101
aが格納されていた待合せ領域が空き領域となる。この
データパケット101aおよび101bは対データとし
てプログラム記憶ユニット564へ出力される。
Next, the data packet 101b is given to the data detection unit 562. The data packet 101b forms a pair with the data packet 101a stored in the queuing memory 604, and thus is detected as paired data. This allows the data packet 101
The waiting area in which a has been stored becomes an empty area. The data packets 101a and 101b are output to the program storage unit 564 as paired data.

【0055】その後、データパケット110bが対デー
タ検出ユニット562へ伝達されると、待合せメモリ6
04の対応の待合せ領域へ格納される。再びデータパケ
ット110aが対データ検出ユニット562へ入力され
るまで同一待合せ領域を共有しかつ優先順位の高い別の
データパケットが入力されなければ、データパケット1
10aが対データ検出ユニット562へ与えられると、
このデータパケット110aとデータパケット110b
が対データとして検出される。
Then, when the data packet 110b is transmitted to the data detection unit 562, the waiting memory 6
No. 04 is stored in the corresponding waiting area. Until another data packet 110a is input to the data detection unit 562 again, the same queuing area is shared, and if another high-priority data packet is not input, the data packet 1
When 10a is given to the pair data detection unit 562,
This data packet 110a and data packet 110b
Are detected as paired data.

【0056】したがって、待合せメモリ604において
対応の待合せ領域が空き状態となるまで、優先順位の低
いデータパケットは未発火状態で巡回パス(パイプライ
ン)を巡回し続ける。また、データパケット101b
は、データパケット101aと対をなすデータである
が、データバッファ558へ入力された順序で対データ
検出ユニット562へ与えられるため、発火可能なデー
タパケットの処理が遅れ、この処理装置の処理速度が低
下する。また、未発火状態のデータパケット110aお
よび110bはデータパケット101aが対データとし
て検出されて消費されるまでこの巡回パスを巡回し続け
る。このデータパケット110aおよび110bの処理
が遅れ、このため全体としての処理速度が低下する。
Therefore, until the corresponding queuing area in the queuing memory 604 becomes empty, the low priority data packet continues to circulate in the circular path (pipeline) in the unfired state. Also, the data packet 101b
Is paired with the data packet 101a, but is given to the paired data detection unit 562 in the order of input to the data buffer 558, the processing of the ignitable data packet is delayed, and the processing speed of this processing device increases. descend. The unfired data packets 110a and 110b continue to circulate on this circular path until the data packet 101a is detected as paired data and consumed. The processing of the data packets 110a and 110b is delayed, which reduces the overall processing speed.

【0057】また、データバッファ558はたとえばシ
フトレジスタ型の先入れ先出し型メモリで構成される。
この場合、データバッファ558において空き領域が存
在しても、入力データパケットがこのデータバッファ5
58において受ける遅延時間は一定である。したがっ
て、このデータバッファ558における遅延により有効
データパケットが高速で巡回パスを巡回することができ
ず、このため処理速度が低下する。
The data buffer 558 is composed of, for example, a shift register type first-in first-out memory.
In this case, even if there is a free area in the data buffer 558, the input data packet is
The delay time received at 58 is constant. Therefore, due to the delay in the data buffer 558, the valid data packet cannot circulate in the circular path at high speed, which reduces the processing speed.

【0058】それゆえ、この発明の目的は、データフロ
ープログラムを高速かつ効率的に処理することのできる
データ駆動型情報処理装置を提供することである。
Therefore, an object of the present invention is to provide a data driven type information processing apparatus capable of processing a data flow program at high speed and efficiently.

【0059】この発明の他の目的は、未発火データパケ
ットの発生を抑制することのできるデータ駆動型情報処
理装置を提供することである。
Another object of the present invention is to provide a data driven type information processing apparatus capable of suppressing the generation of unfired data packets.

【0060】この発明のさらに他の目的は、格納データ
数に応じて遅延時間を変更することのできるデータバッ
ファを提供することである。
Still another object of the present invention is to provide a data buffer whose delay time can be changed according to the number of stored data.

【0061】この発明のさらに他の目的は、データフロ
ープログラムの処理効率を改善することのできるデータ
バッファを提供することである。
Still another object of the present invention is to provide a data buffer capable of improving the processing efficiency of a data flow program.

【0062】[0062]

【課題を解決するための手段】請求項1に係るデータ駆
動型情報処理装置は、データ巡回パス上の一方からのデ
ータを受けて一時的に格納しかつ格納データをこの巡回
パスを介して対データ検出ユニットへ伝達するバッファ
メモリ回路を含む。このバッファメモリ回路は、データ
を格納するための格納部と、入力データおよび格納デー
タに含まれるキーデータに従って予め定められた順序で
格納データが格納されるようにこの受けた入力データに
含まれるキーデータと格納データのキーデータとに従っ
て格納部の格納データを再配列する回路手段を含む。
According to another aspect of the present invention, there is provided a data driven type information processing apparatus which receives data from one side of a data cyclic path and temporarily stores the data, and stores the stored data via the cyclic path. A buffer memory circuit for transmitting to the data detection unit is included. The buffer memory circuit includes a storage unit for storing data and a key included in the received input data so that the stored data is stored in a predetermined order according to the input data and the key data included in the stored data. It includes circuit means for rearranging the stored data of the storage unit according to the data and the key data of the stored data.

【0063】請求項2に係るデータ駆動型情報処理装置
は、このデータ再配列手段が、対データ検出部において
実行される優先度判別基準と同様の判別基準に従って格
納データの再配列を行なう手段を含む。
In the data driven type information processing apparatus according to the second aspect of the present invention, the data rearrangement means comprises means for rearranging the stored data according to the same discrimination criterion as the priority discrimination criterion executed in the paired data detection section. Including.

【0064】請求項3に係るデータバッファは、入力デ
ータを受ける入力部と、出力データを出力する出力部と
の間のデータ伝送路に沿って配置され、入力データを順
次格納しかつ出力するための、互いに縦続接続された複
数のデータメモリと、このデータ伝送路の鏡映対象の位
置のデータメモリに対して設けられ、出力部側のデータ
メモリに格納されたデータが存在しないとき入力部側デ
ータメモリのデータをこの読出出力部側データメモリに
転送する第1の転送手段と、鏡映対象の位置のデータメ
モリに設けられ、入力部側データメモリに格納されたデ
ータに含まれる所定のキーデータと出力部側データメモ
リに格納されるデータの所定のキーデータとを比較する
比較手段と、この比較手段の比較結果に従って出力部側
データメモリの格納データと入力部側データメモリの格
納データとを交換する手段とを含む。
The data buffer according to claim 3 is arranged along the data transmission line between the input section for receiving the input data and the output section for outputting the output data, and is for sequentially storing and outputting the input data. Of a plurality of data memories connected in cascade with each other and a data memory of a position to be mirrored on this data transmission path, when there is no data stored in the data memory on the output side, the input side First transfer means for transferring the data in the data memory to the data memory on the read output side and a predetermined key included in the data stored in the data memory on the input side provided in the data memory at the position to be mirrored Comparing means for comparing the data with predetermined key data of the data stored in the output side data memory, and the comparison of the output side data memory according to the comparison result of the comparing means. And means for exchanging data with the input side data memory storing data.

【0065】[0065]

【作用】請求項1に係るデータ駆動型情報処理装置にお
いては、再配列手段によりデータバッファ内のデータパ
ケットはそこに含まれるキーデータに従って所定の順序
で配列されて対データ検出ユニットへ順次伝達される。
これにより、データフロープログラムを効率的に処理す
る順序で対データ検出ユニットへデータパケットを与え
ることが可能となる。
In the data driven type information processing apparatus according to the present invention, the data packets in the data buffer are arranged by the rearrangement means in a predetermined order according to the key data contained therein and are sequentially transmitted to the paired data detection unit. It
As a result, it becomes possible to provide the data packets to the paired data detection units in the order of efficiently processing the data flow program.

【0066】請求項2に係るデータ駆動型情報処理装置
においては、対データ検出ユニットで利用される優先度
判別基準と同様の判別基準に従ってデータバッファ内の
データパケットが再配列される。これにより、待合せ状
態のデータパケットに対し対を形成し発火する可能性の
大きいデータパケットが早く対データ検出ユニットへ伝
達される。
In the data driven type information processing apparatus according to the second aspect, the data packets in the data buffer are rearranged according to the same discrimination criterion as the priority discrimination criterion used in the paired data detection unit. As a result, a data packet having a high possibility of forming a pair and being fired with respect to the data packet in the waiting state is transmitted to the pair data detection unit quickly.

【0067】請求項3に係るデータバッファにおいて
は、出力部側データメモリに格納データが存在しないと
き第1の転送手段により入力部側データメモリからその
出力部側データメモリへデータが転送されるため、デー
タバッファの記憶段数を格納データの数に応じて変更す
ることができ、高速でデータを出力することが可能とな
る。
In the data buffer according to the third aspect, the data is transferred from the input side data memory to the output side data memory by the first transfer means when there is no stored data in the output side data memory. The number of storage stages of the data buffer can be changed according to the number of stored data, and the data can be output at high speed.

【0068】また、キーデータの大小に応じて入力部側
データメモリと出力部側データメモリとの交換を行なう
ことにより、出力データ列を常時キーデータの大小に応
じて配列することが可能となり、データ処理内容に応じ
たデータの再配列を容易かつ確実に実現することが可能
となる。
Further, by exchanging the input side data memory and the output side data memory according to the size of the key data, it becomes possible to always arrange the output data string according to the size of the key data. It becomes possible to easily and surely realize rearrangement of data according to the contents of data processing.

【0069】[0069]

【実施例】図1はこの発明の一実施例であるデータ駆動
型情報処理装置の構成を示す図である。図1において
は、データ駆動エンジン部の構成が機能的に示される。
図1に示す構成において、図16に示す構成と同一部分
には同一の参照番号を付しその詳細説明は省略する。図
1において、分岐ユニット556と合流ユニット550
との間に、データパケットの流れの揺らぎを吸収するた
めのデータバッファ1が設けられる。データバッファ1
は、分岐ユニット556からのデータパケットを格納す
るためのメモリユニット2と、このメモリユニット2に
格納されたデータパケットをキーデータの大小関係に従
って再配列する再配列制御ユニット10を含む。
1 is a diagram showing the configuration of a data driven type information processing apparatus according to an embodiment of the present invention. In FIG. 1, the configuration of the data driven engine unit is functionally shown.
In the configuration shown in FIG. 1, the same parts as those in the configuration shown in FIG. 16 are designated by the same reference numerals, and detailed description thereof will be omitted. In FIG. 1, a branching unit 556 and a merging unit 550
And a data buffer 1 for absorbing fluctuations in the flow of data packets. Data buffer 1
Includes a memory unit 2 for storing the data packet from the branch unit 556, and a rearrangement control unit 10 for rearranging the data packet stored in the memory unit 2 according to the magnitude relation of the key data.

【0070】再配列制御ユニット10は、分岐ユニット
556から与えられる入力データパケットから予め定め
られたキー(データ)を検出するキー検出部4と、メモ
リユニット2に格納されたデータパケットの各キーを監
視するキーモニタ3と、キーモニタ3からのキー情報と
キー検出部4からのキー情報を比較しその大小関係を示
す信号を出力するキー比較部5と、このキー比較部5か
らの比較結果情報に従ってメモリユニット2内のデータ
パケットの配列順序を入れ替える配列制御部6を含む。
The rearrangement control unit 10 detects the key detecting unit 4 for detecting a predetermined key (data) from the input data packet given from the branching unit 556 and each key of the data packet stored in the memory unit 2. The key monitor 3 to be monitored, the key comparison unit 5 that compares the key information from the key monitor 3 and the key information from the key detection unit 4 and outputs a signal indicating the magnitude relationship, and the comparison result from this key comparison unit 5. An array control unit 6 is included for switching the order of arraying the data packets in the memory unit 2 according to the information.

【0071】用いられるキーとしては、図2に示すよう
に、上位から未発火フラグNFR(未発火時“1”)、
世代番号、および行先ノード番号を用いる。世代番号お
よび行先ノード番号は、対データ検出ユニット562に
おける優先度を判別するための判別基準として利用され
ている。したがって、この対データ検出ユニット562
に用いられる優先度判別基準と同様の判別基準がデータ
バッファ1におけるデータパケット再配列評価基準とし
て利用される。
As shown in FIG. 2, the keys to be used are the non-fire flag NFR (“1” when non-fire), from the top.
Generation number and destination node number are used. The generation number and the destination node number are used as a discrimination criterion for discriminating the priority in the paired data detection unit 562. Therefore, this paired data detection unit 562
A determination criterion similar to the priority determination criterion used for is used as a data packet rearrangement evaluation criterion in the data buffer 1.

【0072】図1において、対データ検出ユニット56
2は、待合せデータパケットを格納する待合せメモリ6
04と、この待合せメモリへのデータパケットの格納お
よび読出ならびに優先度の判別とを実行する書込/制御
部20を含む。この書込/読出制御部20は、図17に
示す構成において命令識別部602、読出制御部60
6、優先度判別部608およびパケット制御部610を
含む。次に動作について説明する。データバッファ1を
除くユニットすなわち、合流ユニット550、対データ
検出ユニット562、プログラム記憶ユニット564、
演算処理ユニット554および分岐ユニット556の動
作は図16および図17に示す従来のデータ駆動型情報
処理装置のそれと同様である。したがって以下の説明に
おいてはこの発明において利用されるデータバッファ1
の動作についてのみ説明する。
In FIG. 1, the pair data detection unit 56.
2 is a waiting memory 6 for storing waiting data packets.
04, and a writing / control unit 20 for storing and reading a data packet in the waiting memory and determining the priority. This writing / reading control unit 20 has an instruction identifying unit 602 and a reading control unit 60 in the configuration shown in FIG.
6, including a priority determination unit 608 and a packet control unit 610. Next, the operation will be described. Units excluding the data buffer 1, that is, the merging unit 550, the pair data detection unit 562, the program storage unit 564,
Operations of the arithmetic processing unit 554 and the branching unit 556 are similar to those of the conventional data driven type information processing apparatus shown in FIGS. Therefore, in the following description, the data buffer 1 used in the present invention will be described.
Only the operation of will be described.

【0073】キー検出部4は、分岐ユニット556から
与えられる入力データパケットから所定のキーすなわち
未発火フラグNFR、世代番号および行先ノード番号を
抽出することによりキーデータを生成する。キーモニタ
3は、メモリユニット2に格納される各データパケット
のキーデータをモニタしている。データ入力時において
キー比較部5はこのキーモニタ3からのキーデータとキ
ー検出部4からのキーデータとを受け、その大小を比較
する。配列制御部6はこのキー比較部5からの比較情報
に従ってこのキーデータの小さい順に出力データパケッ
トが配列されるようにそのデータパケットを再配列す
る。したがって、メモリユニット2からデータパケット
が出力される場合には、(1)未発火フラグNFRが立
っていないデータパケット(NFR=0)の方が未発火
フラグが立っているデータパケット(NFR=1)より
も先に、(2)未発火フラグNFRが同じ状態にあるデ
ータパケットは世代番号が小さい方が先に、および
(3)未発火フラグNFRが同じ状態にありかつ世代番
号が同じデータパケットは行先ノード番号が小さい方が
先に出力される。
The key detector 4 generates key data by extracting a predetermined key, that is, an unfired flag NFR, a generation number and a destination node number from the input data packet supplied from the branching unit 556. The key monitor 3 monitors the key data of each data packet stored in the memory unit 2. At the time of data input, the key comparison unit 5 receives the key data from the key monitor 3 and the key data from the key detection unit 4 and compares the sizes. The arrangement control unit 6 rearranges the data packets so that the output data packets are arranged in the ascending order of the key data according to the comparison information from the key comparison unit 5. Therefore, when the data packet is output from the memory unit 2, (1) the data packet in which the non-fire flag NFR is not set (NFR = 0) is the data packet in which the non-fire flag is set (NFR = 1). ), (2) the data packet having the same non-firing flag NFR has a smaller generation number, and (3) the data packet having the same non-firing flag NFR and the same generation number. Is output first when the destination node number is small.

【0074】未発火フラグNFRが立っていないすなわ
ちオフ状態のデータパケットは、待合せメモリ604に
対のデータパケットが格納されているかまたはこれから
待合せメモリ604に格納される可能性が高い。また、
未発火フラグNFRが同じ状態にあれば、世代番号が小
さい方が先に実行される可能性が高い。また、未発火フ
ラグNFRが同じ状態でありかつ世代番号が同じであれ
ば、行先ノード番号が小さい方が先に処理される可能性
が高い(データフロープログラムでは、通常データアー
クはノード番号の小さい方から大きい方へ流れる)。し
たがって、このような優先順位に従って出力データを再
配列して出力することにより、早く処理される可能性の
高いデータパケットを早く出力することができ、データ
フロープログラムの処理効率が高くなる。この動作を図
22を参照して説明する。
A data packet in which the non-fire flag NFR is not set, that is, in the off state, is likely to have a pair of data packets stored in the waiting memory 604 or will be stored in the waiting memory 604 from now on. Also,
If the unfired flags NFR are in the same state, the smaller generation number is more likely to be executed first. If the unfired flag NFR is in the same state and the generation numbers are the same, the smaller destination node number is more likely to be processed first (in the data flow program, the normal data arc has a smaller node number). Flowing from one to the other). Therefore, by rearranging and outputting the output data according to such a priority order, it is possible to quickly output a data packet that is likely to be processed earlier, and the processing efficiency of the data flow program is improved. This operation will be described with reference to FIG.

【0075】データバッファ1はデータ並べ換え機能す
なわちデータ再配列機能を備える。したがって、図22
に示すように、データパケット110a、データパケッ
ト101bおよびデータパケット110bがこの順に入
力された場合、最も先に出力されるのは、未発火フラグ
NRFがオフ状態にあるデータパケット101bであ
る。このデータパケット101bは対データ検出ユニッ
ト562へ与えられ、待合せメモリ604内に格納され
ているデータパケット101aと対を形成する。これに
よりデータパケット101aおよび101bにより発火
パケットが生成され、データメモリ604の待合せ領域
に空きが生じる。
The data buffer 1 has a data rearrangement function, that is, a data rearrangement function. Therefore, FIG.
As shown in, when the data packet 110a, the data packet 101b, and the data packet 110b are input in this order, the data packet 101b with the unfired flag NRF in the off state is output first. The data packet 101b is supplied to the pair data detection unit 562 and forms a pair with the data packet 101a stored in the queuing memory 604. As a result, an ignition packet is generated by the data packets 101a and 101b, and an empty space is created in the waiting area of the data memory 604.

【0076】次に、データパケット110aが対データ
検出ユニット562へ与えられ、待合せメモリ604の
待合せ領域に格納される。
Next, the data packet 110a is supplied to the data detection unit 562 and stored in the waiting area of the waiting memory 604.

【0077】その後、データパケット110bが対デー
タ検出ユニット562へ与えられる。出力データの再配
列により、データパケット110aが与えられてからデ
ータパケット110bが対データ検出ユニット562へ
与えられる時間的な差は従来よりも小さくなっている。
データパケット110aとデータパケット110bがメ
モリユニット2から出力される間にデータバッファ1に
対しより優先度の高いデータパケットの入力がないかま
たは合流ユニット550から外部から入力されたデータ
パケットがこのデータパケット110aおよび110b
の間に割り込まない限り、データパケット110aとデ
ータパケット110bは連続して対データ検出ユニット
562へ与えられる。したがって、データパケット11
0aとデータパケット110bとが対データ検出ユニッ
ト562で対データとして検出されて発火するまでの間
に、待合せメモリ604の同一待合せ領域をアクセスす
るデータパケットが現われる可能性が小さくなってい
る。このデータパケットの出力再配列について具体的な
例について説明する。
After that, the data packet 110b is given to the paired data detection unit 562. Due to the rearrangement of the output data, the time difference between the data packet 110a and the data packet 110b being given to the data detection unit 562 is smaller than before.
While the data packet 110a and the data packet 110b are output from the memory unit 2, there is no input of a data packet having a higher priority to the data buffer 1, or the data packet input from the outside from the merging unit 550 is this data packet. 110a and 110b
The data packet 110a and the data packet 110b are successively provided to the paired data detection unit 562 unless interrupted during this period. Therefore, the data packet 11
0a and the data packet 110b are detected as paired data by the paired data detection unit 562 and fired, the possibility that a data packet accessing the same waiting area of the waiting memory 604 will appear is reduced. A specific example of the output rearrangement of the data packet will be described.

【0078】図3に、このデータバッファ1における出
力データの出力順序を並べ換える状態を概略的に示す。
待合せメモリ604においてキーデータ10106Hが
待合せている状態を考える。今、メモリユニット2にお
ける出力データは00405H、00505H、102
06H、10307Hの順に配置されていた場合に新た
に00206Hのデータパケットが入力された状態を考
える。この新たに入力されたデータパケット00106
Hは待合せメモリ内の待合せデータパケット(キーデー
タ00106H)と対をなす。この場合、再配列制御ユ
ニットの機能の下に、新たに入力されたデータパケット
(キーデータ00106H)が未発火フラグNRFがオ
フ(“0”)、世代番号が“01”であるため最優先し
て出力される。この最優先して出力されるデータパケッ
トは待合せているデータパケットと対データを形成す
る。これにより待合せデータパケットの消費が行なわ
れ、待合せ領域に速やかに空き領域が生じ、未発火フラ
グがオン状態の未発火データパケットの巡回が防止され
る。ここで、対をなすデータはノード番号が同じであり
世代番号が同じデータパケットと想定している。出力デ
ータパケットとしてはキーデータ00405Hとキーデ
ータ10405Hのデータパケットが対をなすため、対
をなすデータが短期間に対データ検出ユニットへ与えら
れる可能性が高い。これによりデータフロープログラム
の処理の高速化および処理効率の改善が得られる。
FIG. 3 schematically shows a state in which the output order of the output data in the data buffer 1 is rearranged.
Consider a state where the key data 10106H is waiting in the waiting memory 604. Now, the output data in the memory unit 2 is 00405H, 00505H, 102
Consider a state in which a data packet of 00206H is newly input when the data packets are arranged in the order of 06H and 10307H. This newly input data packet 00106
H is paired with the waiting data packet (key data 00106H) in the waiting memory. In this case, under the function of the rearrangement control unit, the newly input data packet (key data 00106H) has the highest priority because the non-fire flag NRF is off (“0”) and the generation number is “01”. Is output. The data packet output with the highest priority forms a pair of data with the waiting data packet. As a result, the queuing data packet is consumed, a vacant area is promptly created in the queuing area, and the circulation of the non-firing data packet in which the non-firing flag is ON is prevented. Here, it is assumed that the paired data are data packets having the same node number and the same generation number. Since the data packet of the key data 00405H and the data packet of the key data 10405H form a pair as the output data packet, there is a high possibility that the paired data will be given to the pair data detection unit in a short period of time. This makes it possible to speed up the processing of the data flow program and improve the processing efficiency.

【0079】上述のように、未発火フラグNFRの大小
比較と、対データ検出ユニット562における優先度判
別と同様の優先度判別基準に従って優先順位を決定し、
この優先順位に基づいてメモリユニットに格納されてい
るデータパケットの順序を変更して出力することによ
り、すぐに処理される可能性のあるデータパケットは未
発火パケットに邪魔されることなく高速で巡回パス上に
送出することが可能となる。またこの出力データの順序
再配列により、データ待合せ領域が早く開放されること
が可能となる。さらに、対データとなる可能性の高いデ
ータパケット間の距離を近くすることが可能となり、対
データ検出ユニットにおけるデータ待合せ領域を効率的
に機能させることができ、データ処理のうえで無駄な動
きをしているように見える未発火データパケットの発生
を低減することが可能となる。これにより、データフロ
ープログラムの処理効率が向上する。
As described above, the priority order is determined according to the comparison of the magnitudes of the unfired flags NFR and the priority determination criteria similar to the priority determination in the paired data detection unit 562,
By changing the order of the data packets stored in the memory unit based on this priority and outputting them, data packets that may be processed immediately can circulate at high speed without being disturbed by unfired packets. It is possible to send on the path. Further, by rearranging the order of the output data, the data waiting area can be released quickly. Furthermore, it is possible to reduce the distance between data packets that are likely to be paired data, and the data waiting area in the paired data detection unit can function efficiently, resulting in unnecessary movement in data processing. It is possible to reduce the occurrence of unfired data packets that appear to be occurring. This improves the processing efficiency of the data flow program.

【0080】次に、この出力データの再配列をキーデー
タの優先順位に従って行なうための構成について説明す
る。
Next, the structure for rearranging the output data according to the priority order of the key data will be described.

【0081】図4は、図1に示すデータバッファの具体
的構成の一例を示す図である。図4において、データバ
ッファ1は、入力データパケットを伝達するための互い
に縦続接続された選択入力機能付ラッチ110a、11
0b、110c、…、および110nと、この入力デー
タパケット伝達用の選択入力機能付ラッチ110a〜1
10n各々に対応して設けられる互いに縦続接続された
出力データ伝達用選択入力機能付ラッチ210a、21
0b、210c、…、および210nと、それぞれ対応
の選択入力機能付ラッチ110iおよび210i(i=
a〜n)の間に設けられ、この対応のラッチに格納され
たデータパケットのうちキーデータを抽出しその大小関
係を比較するとともにその比較結果に従って対応のラッ
チに格納されたデータの交換を制御するデータ入替え制
御回路310a、310b、310c、…、310nを
含む。
FIG. 4 is a diagram showing an example of a specific configuration of the data buffer shown in FIG. In FIG. 4, the data buffer 1 includes latches 110a and 11a having selective input functions, which are cascaded with each other for transmitting an input data packet.
0b, 110c, ..., And 110n, and latches 110a to 1 with a selective input function for transmitting this input data packet.
Output data transmission selection input function latches 210a, 21 that are provided in correspondence with each other and are connected in series.
0b, 210c, ..., And 210n, and the corresponding latches 110i and 210i with a selection input function (i =
a) to n), which extracts the key data from the data packet stored in the corresponding latch, compares the size relationship, and controls the exchange of the data stored in the corresponding latch according to the comparison result. Data replacement control circuits 310a, 310b, 310c, ..., 310n.

【0082】入力部101aへ与えられる入力データパ
ケットDIはm−1ビットのデータ幅を有し、信号線1
02を介して与えられる有効データフラグVLDが1ビ
ット付加される。したがって、この選択機能付ラッチの
一方入力Aへはmビットのデータが与えられる。この選
択入力機能付ラッチ110a〜110nは、クロック入
力103を介して与えられる入力データ転送クロックC
KFに従ってその格納データを次段の選択入力機能付ラ
ッチへ転送する。このラッチ110a〜110nに格納
される有効データフラグVLDが“1”(“H”レベ
ル)のときにはそのラッチに格納されているデータパケ
ットが有効であることを示す。有効データフラグVLD
が“0”(“L”レベル)のとき、そのラッチに含まれ
ているデータパケットは無効であることを示す。
The input data packet DI supplied to the input section 101a has a data width of m-1 bit, and the signal line 1
One bit is added to the valid data flag VLD given via 02. Therefore, m-bit data is applied to one input A of this latch with selection function. The selection input function latches 110a to 110n are provided with an input data transfer clock C supplied through the clock input 103.
According to KF, the stored data is transferred to the latch with the selective input function at the next stage. When the valid data flag VLD stored in the latches 110a to 110n is "1"("H" level), it indicates that the data packet stored in the latch is valid. Valid data flag VLD
Is "0"("L" level), it indicates that the data packet contained in the latch is invalid.

【0083】出力データパケットを出力するための選択
入力機能付ラッチ210a〜210nはクロック入力2
03を介して与えられる出力データ転送クロックCKB
に応答してその格納データを前段のラッチ(出力部20
1に近い出力用の選択入力機能付ラッチ)へ転送する。
Latches 210a to 210n with a selective input function for outputting an output data packet are clock input 2
03 output data transfer clock CKB
In response to the latch, the stored data is latched in the preceding stage (output unit 20
To a latch with a selection input function for output close to 1).

【0084】データ入替え制御回路310a〜310n
は、対応のラッチに格納されたnビットのデータのうち
キーデータとしてnビットのデータを抽出しそのキーデ
ータの大小関係に応じて入力部側のラッチから出力部側
のラッチへのデータの転送および入力部側ラッチと出力
部側ラッチとの間のデータを交換を実行する。このデー
タ入替え制御回路310a〜310nの比較結果はクロ
ック入力301へ与えられるクロック信号CKCに応答
して確定状態となる。
Data exchange control circuits 310a to 310n
Is an n-bit data extracted from the n-bit data stored in the corresponding latch as key data, and transfers the data from the input side latch to the output side latch according to the size relation of the key data. And exchanging data between the input side latch and the output side latch. The comparison result of the data exchange control circuits 310a to 310n becomes a definite state in response to the clock signal CKC applied to the clock input 301.

【0085】図4において、図の右側に示されている入
力データ出力部101b、状態フラグFULL出力信号
線105、クロック信号CKFを伝達する信号線10
6、クロック信号CKCを伝達する信号線302、クロ
ック信号CKBを伝達する信号線206および出力デー
タを入力する信号線204はそれぞれこのデータバッフ
ァが次段のデータバッファに接続される状態を示す。こ
の図4に示すデータバッファは同一構成の回路成分を含
んでおり、容易に拡張することが可能である。信号線1
05上に現われる状態フラグFULLが“1”の場合、
この入力データ用のラッチ110a〜110nのすべて
に対し有効データが格納されている状態を示す。また信
号線204から与えられるm−1ビットのデータは
“0”の有効性フラグVLD(信号線205から与えら
れる)とともにmビットのデータとなり、ラッチ210
nへ与えられる。信号線202から与えられる状態フラ
グEMPTYは、この出力データ用のラッチ210a〜
210nに出力すべき有効データパケットが存在するか
否かを示す。この状態フラグFULLおよびEMPTY
は、それぞれ信号線102から与えられる有効性フラグ
VLDおよび信号線205から与えられる有効性フラグ
VLDに対応する。
In FIG. 4, the input data output unit 101b, the status flag FULL output signal line 105, and the signal line 10 for transmitting the clock signal CKF are shown on the right side of the drawing.
6, the signal line 302 for transmitting the clock signal CKC, the signal line 206 for transmitting the clock signal CKB, and the signal line 204 for inputting output data show the state in which this data buffer is connected to the data buffer of the next stage. The data buffer shown in FIG. 4 includes circuit components having the same structure and can be easily expanded. Signal line 1
If the status flag FULL appearing on 05 is "1",
The state where valid data is stored in all of the latches 110a to 110n for input data is shown. Further, the m-1 bit data given from the signal line 204 becomes m bit data together with the validity flag VLD of "0" (given from the signal line 205), and the latch 210
given to n. The status flag EMPTY supplied from the signal line 202 is the latch for this output data 210a ...
210n indicates whether or not there is a valid data packet to be output. This status flag FULL and EMPTY
Correspond to the validity flag VLD given from the signal line 102 and the validity flag VLD given from the signal line 205, respectively.

【0086】次にこの図4に示すデータバッファのデー
タ入力動作および出力動作について説明する。まずデー
タ入力時の動作についてその動作フロー図である図5を
併せて参照して説明する。
Next, the data input operation and output operation of the data buffer shown in FIG. 4 will be described. First, the operation at the time of data input will be described with reference to FIG. 5, which is an operation flow chart thereof.

【0087】まず、信号線105から出力される状態フ
ラグFULLが“0”であるか否かの判別が行なわれる
(ステップS30)。状態フラグFULLが“1”の場
合には、この入力データのためのラッチ110a〜11
0nすべてに有効データが格納されていることを示して
おり、新たにデータパケットを入力することができない
ことを示している。したがってこの状態フラグFULL
が“0”となるまでデータパケットの入力は行なわれな
い。
First, it is determined whether or not the status flag FULL output from the signal line 105 is "0" (step S30). When the status flag FULL is "1", the latches 110a to 11 for this input data
This indicates that valid data is stored in all 0n, indicating that a new data packet cannot be input. Therefore, this status flag FULL
No data packet is input until is "0".

【0088】状態フラグFULLが“0”となると、信
号線101aにデータパケットDIが入力される。m−
1ビットのデータパケットDIは有効データフラグVL
D(“1”)とともにラッチ110aへ与えられる。こ
こで、初期状態においてはリセットRESETがラッチ
110a〜110nおよび210a〜210nへ与えら
れ、これらのラッチ110a〜110nおよび210a
〜210nに含まれる有効データフラグVLDは“0”
にリセットされる。
When the status flag FULL becomes "0", the data packet DI is input to the signal line 101a. m-
The 1-bit data packet DI has a valid data flag VL.
It is applied to latch 110a together with D ("1"). Here, in the initial state, reset RESET is applied to latches 110a to 110n and 210a to 210n, and these latches 110a to 110n and 210a.
Valid data flag VLD included in ˜210n is “0”
Is reset to.

【0089】状態フラグFULLが“0”であると、信
号線101aを介してデータパケットDIが与えられ
る。m−1ビットのデータパケットは信号線102から
の有効性を示す有効性フラグVLDと共にmビットのデ
ータとなってラッチ110aの一方入力Aへ与えられ
る。ラッチ110a〜110nにおける入力データパケ
ットDIおよび格納データDiおよび有効データフラグ
VLD(以下、両者を含めて単にデータと称す)の取込
みおよびシフト動作はクロック信号CKFにより制御さ
れる。すなわち、クロック信号CKFが信号線103を
介して与えられると、ラッチ110a〜110nはその
ラッチデータを次段のラッチへ転送するとともに新たに
与えられたデータをラッチする。たとえば、ラッチ11
0aに格納されていたデータはラッチ110bへ転送さ
れ、ラッチ110bに格納されていたデータはラッチ1
10cへ転送される(ステップS32)。
When the status flag FULL is "0", the data packet DI is given via the signal line 101a. The m-1 bit data packet is supplied to one input A of the latch 110a as m bit data together with the validity flag VLD indicating the validity from the signal line 102. The operation of fetching and shifting the input data packet DI, the stored data Di, and the valid data flag VLD (hereinafter, both are simply referred to as data) in the latches 110a to 110n is controlled by the clock signal CKF. That is, when the clock signal CKF is applied via the signal line 103, the latches 110a to 110n transfer the latched data to the latch of the next stage and latch the newly applied data. For example, latch 11
The data stored in 0a is transferred to the latch 110b, and the data stored in the latch 110b is transferred to the latch 1b.
It is transferred to 10c (step S32).

【0090】次に図4において互いに向かい合ったラッ
チの格納データが比較される。データ入替え制御回路3
10aないし310nは、入力データ用ラッチ110i
(iはaないしnのいずれか)に有効データが存在し
(有効データフラグVLDが“1”)かつ出力データ用
のラッチ210iに有効データが存在しない(有効デー
タフラグVLD=“0”)か否かを判別する(ステップ
S34)。入力データ用のラッチ110iに有効データ
が存在し、出力データ用のラッチ210iに有効データ
が存在しない場合には、そのラッチ110iに格納され
ているデータDIと出力側ラッチ210iに格納されて
いるデータQiとの交換が実行される(ステップS3
8)。
Next, in FIG. 4, the stored data of the latches facing each other are compared. Data exchange control circuit 3
10a to 310n are input data latches 110i
(I is one of a to n) has valid data (valid data flag VLD is "1") and output data latch 210i does not have valid data (valid data flag VLD = "0"). It is determined whether or not (step S34). When valid data exists in the input data latch 110i and does not exist in the output data latch 210i, the data DI stored in the latch 110i and the data stored in the output side latch 210i. Exchange with Qi is executed (step S3).
8).

【0091】入力データ用のラッチ110iに有効デー
タが存在し(VLD=1)かつ出力側のラッチ210i
にも有効データが存在する場合、その格納データDIお
よびQiから所望のnビットのキーデータを抽出しその
キーデータDi(n)およびQi(n)の大小を比較す
る(ステップS36)。入力用データのラッチ110i
に格納されているデータDiのキーデータDi(n)の
方が出力用データのラッチ210iに格納されているデ
ータQiのキーデータQi(n)よりも小さい場合に
は、このデータ入替え制御回路の制御の下にデータDi
とデータQiの交換がその他方入力ポートBを介して実
行される(ステップS38)。
Input data latch 110i has valid data (VLD = 1) and output side latch 210i.
If there is valid data, the desired n-bit key data is extracted from the stored data DI and Qi, and the size of the key data Di (n) and Qi (n) is compared (step S36). Input data latch 110i
If the key data Di (n) of the data Di stored in the data is smaller than the key data Qi (n) of the data Qi stored in the output data latch 210i, the data replacement control circuit Data Di under control
And data Qi are exchanged via the other input port B (step S38).

【0092】ステップS36において、入力用データの
ラッチ110iに格納されているDiのキーデータDi
(n)が出力用データのラッチ210iに格納されてい
るデータQiのキーデータQi(n)よりも大きいかま
たは等しい場合にはデータの交換は実行されない。次い
で、再び入力データが与えられるのを待つ。これによ
り、出力部201に最も近いラッチ210aにおいては
常にキーデータQi(n)が最も小さいデータが格納さ
れる。たとえば、初期状態において、まずデータDIが
与えられた場合、入力用データラッチ110aに格納さ
れる。このラッチ110aに格納されたデータはラッチ
210aに転送される(初めて入力データパケットDI
が与えられたとき、出力用ラッチ210aには有効デー
タは格納されていないためである)。次に入力データパ
ケットが与えられると、ラッチ210aに格納されてい
るデータのキーデータと新たに与えられた入力データの
キーデータとの大小の比較が行なわれる。この大小の比
較結果に従ってデータの交換が行なわれるかまたは行な
われない。次にデータパケットが新たに格納されると、
この2番目のデータパケットがラッチ110bへ転送さ
れ次いでラッチ210bへ転送される(出力データがま
だ出力されていない状態)。3番目に入力されたデータ
パケットのキーデータとこのラッチ210aに格納され
ているデータのキーデータとの大小比較が行なわれる。
この動作を繰返し行なうことにより出力データ用ラッチ
210aには最小のキーデータを有するデータがラッチ
され、次段の出力用データラッチ210bには2番目に
小さいキーデータを有するデータがラッチされる。すな
わち、この出力側のデータラッチ210a〜210nに
おいてはこのキーデータの大小関係に従って出力データ
が再配列されて格納される。次にデータ読出動作につい
てその動作フロー図である図6を併せて参照して説明す
る。
In step S36, the key data Di of Di stored in the latch 110i for input data is stored.
If (n) is greater than or equal to the key data Qi (n) of the data Qi stored in the output data latch 210i, data exchange is not executed. Then, it waits for input data to be given again. As a result, the latch 210a closest to the output unit 201 always stores the data having the smallest key data Qi (n). For example, in the initial state, when data DI is first applied, it is stored in input data latch 110a. The data stored in the latch 110a is transferred to the latch 210a (for the first time, the input data packet DI
This is because valid data is not stored in the output latch 210a when is given). When an input data packet is applied next, the key data of the data stored in latch 210a and the key data of the newly applied input data are compared in magnitude. Data is exchanged or not according to the comparison result of this magnitude. Next time a new data packet is stored,
This second data packet is transferred to the latch 110b and then to the latch 210b (a state in which output data has not been output yet). The key data of the third input data packet is compared with the key data of the data stored in the latch 210a.
By repeating this operation, the data having the smallest key data is latched in the output data latch 210a, and the data having the second smallest key data is latched in the output data latch 210b in the next stage. That is, in the data latches 210a to 210n on the output side, the output data is rearranged and stored according to the magnitude relation of the key data. Next, the data read operation will be described with reference to FIG. 6 which is an operation flow chart thereof.

【0093】データを出力する場合には、まず信号線2
02から与えられる状態フラグEMPTYが“1”であ
るか否かの判別が行なわれる(ステップS40)。この
状態フラグEMPTYが“1”のとき、ラッチ210a
には有効データが格納されているため、データの出力が
可能である。状態フラグEMPTYが“0”の場合に
は、出力すべきデータは存在しないため、この状態フラ
グEMPTYが“1”となるまでそのデータ出力は待ち
状態となる。
When outputting data, first the signal line 2
It is determined whether or not the status flag EMPTY given from 02 is "1" (step S40). When the status flag EMPTY is "1", the latch 210a
Since valid data is stored in, data can be output. When the status flag EMPTY is "0", there is no data to be output, so the data output is in a waiting state until the status flag EMPTY becomes "1".

【0094】データ出力時においては、信号線203上
へ出力データ用クロック信号CKBを与える。これによ
りラッチ210a〜210nがシフト動作を行ない、そ
のラッチデータを出力端子Yを介して前段のラッチへ伝
達するとともに、出力部201から出力データパケット
QOが出力される(ステップS42)。
At the time of data output, output data clock signal CKB is applied onto signal line 203. As a result, the latches 210a to 210n perform the shift operation, transmit the latched data to the latch at the previous stage via the output terminal Y, and the output unit 201 outputs the output data packet QO (step S42).

【0095】次に再び入替え制御回路310a〜310
nにおいて各対応のラッチ110iとラッチ210iと
の間でのデータ転送および交換の判別が実行される。す
なわち、ステップS44において、出力用データラッチ
210iに格納されるデータQiの有効データフラグV
LDが“1”であるか否かの判別が行なわれる。有効デ
ータフラグVLDが“0”の場合には出力データ用ラッ
チ210iに有効データが存在しないため、対応の入力
データ用のラッチ110iからデータの転送が行なわれ
る(ラッチ110iに有効データが存在する場合)。
Next, the replacement control circuits 310a to 310 are again provided.
At n, the determination of data transfer and exchange between each corresponding latch 110i and latch 210i is executed. That is, in step S44, the valid data flag V of the data Qi stored in the output data latch 210i.
It is determined whether LD is "1". When the valid data flag VLD is "0", there is no valid data in the output data latch 210i, and therefore data is transferred from the corresponding input data latch 110i (when valid data exists in the latch 110i). ).

【0096】ステップS44において、ラッチ210i
に含まれるデータQiの有効データフラグVLDが
“1”の場合、次いでこのデータDiおよびQiのキー
データDi(l)およびQi(n)の大小比較が行なわ
れる。入力データ用ラッチ110iに含まれるデータD
iのキーデータDi(l)が出力用データQiのキーデ
ータQi(n)よりも小さい場合にはラッチ110iと
ラッチ210iとの間でのデータの交換が行なわれる
(ステップS48)。
In step S44, the latch 210i
When the valid data flag VLD of the data Qi included in is "1", the key data Di (l) and Qi (n) of the data Di and Qi are compared in magnitude. Data D included in the input data latch 110i
When the key data Di (l) of i is smaller than the key data Qi (n) of the output data Qi, data exchange is performed between the latch 110i and the latch 210i (step S48).

【0097】キーデータDi(l)がキーデータQi
(l)以上の場合にはデータの交換は行なわれない。こ
のステップS46における判別動作およびステップS4
8におけるデータの交換動作によりラッチ210aに確
実に最小のキーデータQi(n)を有するデータが配置
される。
The key data Di (l) is the key data Qi.
In the case of (l) or more, data exchange is not performed. The determination operation in step S46 and step S4
The data exchange operation in 8 ensures that the data having the minimum key data Qi (n) is arranged in the latch 210a.

【0098】この図4に示すデータバッファにおいて
は、そのデータを記憶する段数は格納データ数に応じ可
変である。すなわちクロック信号CKFおよびCKCを
与えるとデータが入力され、クロック信号CKBおよび
CKCを与えると直ちにデータが出力される。したがっ
て、シフトレジスタ構成のバッファメモリと異なり、そ
の有効データの数に応じてデータパケットが受ける伝達
遅延を変更することができ、常に即座に高速でデータパ
ケットを対データ検出ユニットへ伝達することができ
る。次に各回路部分の具体的構成および動作について説
明する。
In the data buffer shown in FIG. 4, the number of stages for storing the data is variable according to the number of stored data. That is, data is input when clock signals CKF and CKC are applied, and data is output immediately when clock signals CKB and CKC are applied. Therefore, unlike the buffer memory having the shift register configuration, the transmission delay received by the data packet can be changed according to the number of valid data, and the data packet can always be immediately and rapidly transmitted to the data detection unit. . Next, the specific configuration and operation of each circuit portion will be described.

【0099】図7は、図4に示す選択入力機能付ラッチ
の構成を示す図である。この選択入力機能付ラッチ11
0(および210)は、入力ポートAに与えられる入力
データDA(mビット)と入力ポートBに与えられる入
力データDB(mビット)の一方をそのクロック入力C
K1およびCK2に与えられるクロック信号CK1およ
びCK2に従って取込みかつ出力する。すなわち、クロ
ック信号CK1がクロック入力CK1に与えられたとき
には入力ポートAに与えられた入力データDAを取込
み、クロック入力CK2にクロック信号CK2が与えら
れたとき入力ポートBに与えられた入力データBを取込
む。このラッチ110(210)は、対応のクロック信
号の立下がりで取込んだデータをその出力ポートYから
出力する。このラッチ110(210)は、図4に示す
構成において、入力ポートAに隣接ラッチからの出力デ
ータを受け、その入力ポートBに対応の向かい合ったラ
ッチ(出力データ用ラッチまたは入力データ用ラッチ)
の出力を受ける。これにより、データの交換および転送
を行なうことができる。
FIG. 7 is a diagram showing the configuration of the latch with selection input function shown in FIG. This latch with selection input function 11
0 (and 210) is one of the input data DA (m bits) given to the input port A and the input data DB (m bits) given to the input port B at its clock input C.
It takes in and outputs according to clock signals CK1 and CK2 applied to K1 and CK2. That is, when the clock signal CK1 is given to the clock input CK1, the input data DA given to the input port A is taken in, and when the clock signal CK2 is given to the clock input CK2, the input data B given to the input port B is taken. Take in. The latch 110 (210) outputs the data taken in at the falling edge of the corresponding clock signal from its output port Y. In the configuration shown in FIG. 4, the latch 110 (210) receives the output data from the adjacent latch at the input port A and faces the corresponding input port B (the output data latch or the input data latch).
Receive the output of. As a result, data can be exchanged and transferred.

【0100】図8はこの選択入力機能付ラッチの具体的
構成の一例を示す図である。図8において、選択入力機
能付ラッチは、クロック入力CK1に与えられるクロッ
ク信号CK1に応答して入力ポートAに与えられる信号
を通過させるnチャネルMOSトランジスタ(絶縁ゲー
ト型電界効果トランジスタ)401と、トランジスタ4
01の出力を受ける2段の縦続接続されたインバータ回
路402および404と、クロック入力CK1に与えら
れた信号をインバータ回路410を介してそのゲートに
受け、インバータ回路404の出力をインバータ回路4
02の入力へ伝達するnチャネルMOSトランジスタ4
06と、クロック入力CK1およびCK2にそれぞれ与
えられるクロック信号CK1およびCK2を受けるOR
回路428と、OR回路428の出力に応答してリセッ
トされかつインバータ回路410の出力に応答してセッ
トされるRSフリップフロップ412と、RSフリップ
フロップ412の出力φ1に応答してインバータ回路4
04の出力を出力ポートYへ伝達するnチャネルMOS
トランジスタ408を含む。RSフリップフロップ41
2は、セット入力Sへ与えられる信号の立上がりに応答
してセット状態とされ、その出力信号φ1を“H”に設
定し、リセット入力Rに与えられる信号の立上がりに応
答してリセット状態とされ、その出力信号φ1を“L”
に立下げる。
FIG. 8 is a diagram showing an example of a specific structure of the latch with the selective input function. In FIG. 8, the latch with selective input function includes an n-channel MOS transistor (insulated gate type field effect transistor) 401 that passes a signal applied to the input port A in response to the clock signal CK1 applied to the clock input CK1, and a transistor. Four
Inverter circuits 402 and 404 which are connected in cascade and which receive the output of 01, and the gate of which receives the signal applied to the clock input CK1 through the inverter circuit 410, and the output of the inverter circuit 404.
N-channel MOS transistor 4 transmitting to the input of 02
06 and the clock signals CK1 and CK2 applied to the clock inputs CK1 and CK2, respectively.
Circuit 428, RS flip-flop 412 reset in response to the output of OR circuit 428 and set in response to the output of inverter circuit 410, and inverter circuit 4 in response to output φ1 of RS flip-flop 412.
N-channel MOS for transmitting the output of 04 to the output port Y
A transistor 408 is included. RS flip-flop 41
2 is set to the set state in response to the rise of the signal applied to the set input S, sets its output signal φ1 to "H", and is set to the reset state in response to the rise of the signal applied to the reset input R. , Its output signal φ1 is "L"
Fall to.

【0101】選択入力機能付ラッチはさらに、入力ポー
トBに与えられる信号をクロック入力CK2に与えられ
るクロック信号CK2に応答して伝達するnチャネルM
OSトランジスタ414と、トランジスタ414が伝達
する信号を増幅する2段の縦続接続されたインバータ回
路416および418と、クロック信号CK2を反転す
るインバータ回路424と、インバータ回路424の出
力に応答してインバータ回路418の出力をインバータ
回路416の入力へ帰還させるnチャネルMOSトラン
ジスタ422と、インバータ回路424の出力に応答し
てセット状態とされ、OR回路428の出力に応答して
リセット状態とされるRSフリップフロップ426と、
RSフリップフロップ426の出力信号φ2に応答し
て、インバータ回路418の出力を出力ポートYへ伝達
するnチャネルMOSトランジスタ420を含む。
The latch with selective input function further transmits an n-channel M for transmitting the signal applied to the input port B in response to the clock signal CK2 applied to the clock input CK2.
The OS transistor 414, two stages of cascaded inverter circuits 416 and 418 that amplify the signal transmitted by the transistor 414, an inverter circuit 424 that inverts the clock signal CK2, and an inverter circuit that responds to the output of the inverter circuit 424. An n-channel MOS transistor 422 that returns the output of 418 to the input of the inverter circuit 416, and an RS flip-flop that is set in response to the output of the inverter circuit 424 and is reset in response to the output of the OR circuit 428. 426,
It includes an n-channel MOS transistor 420 transmitting the output of inverter circuit 418 to output port Y in response to output signal φ2 of RS flip-flop 426.

【0102】この選択入力機能付ラッチにおいては、イ
ンバータ回路404および418の駆動力はインバータ
回路402および416の駆動力よりも大きくされてい
る。これにより、トランジスタ406および422がオ
ン状態となったとき、ラッチ回路が構成される。
In this latch with selective input function, the driving force of inverter circuits 404 and 418 is made larger than the driving force of inverter circuits 402 and 416. As a result, when the transistors 406 and 422 are turned on, a latch circuit is formed.

【0103】この選択入力機能付ラッチはさらに、リセ
ット入力RESETに与えられるリセット信号に応答し
て、インバータ回路402および416の入力をそれぞ
れ接地電位にリセットするnチャネルMOSトランジス
タ430および432を含む。次に、この図7および図
8に示す選択入力機能付ラッチの動作についてその動作
波形図である図9を合わせて参照して説明する。
This latch with selective input function further includes n channel MOS transistors 430 and 432 which reset the inputs of inverter circuits 402 and 416 to the ground potential in response to the reset signal applied to reset input RESET. The operation of the latch with selective input function shown in FIGS. 7 and 8 will now be described with reference to FIG. 9 which is an operation waveform diagram thereof.

【0104】今、フリップフロップ412がセット状態
にあり、信号φ1が“H”の状態を考える。この状態に
おいては、トランジスタ408がオン状態であり、出力
ポートYからは入力ポートAに与えられたデータが出力
されていると想定する。この状態においては、トランジ
スタ406がオン状態であり、インバータ回路402お
よび404とトランジスタ406とによりラッチ回路が
構成されている。RSフリップフロップ426はリセッ
ト状態にあり、信号φ2は“L”のレベルである。
Now, assume that the flip-flop 412 is in the set state and the signal φ1 is "H". In this state, it is assumed that the transistor 408 is in the on state and the data given to the input port A is output from the output port Y. In this state, the transistor 406 is on, and the inverter circuits 402 and 404 and the transistor 406 form a latch circuit. The RS flip-flop 426 is in the reset state, and the signal φ2 is at the "L" level.

【0105】この状態で、クロック入力CK1に与えら
れたクロック信号CK1が“H”に立上がると、インバ
ータ回路410の出力が“L”、OR回路428の出力
が“H”となる。これにより、RSフリップフロップ4
12がリセット状態とされ、信号φ1が“L”に立下が
り、トランジスタ408がオフ状態となる。一方トラン
ジスタ401はクロック信号CK1に応答してオン状態
となり、入力ポートAに与えられたデータDAを通過さ
せる。トランジスタ406はまだオフ状態であり、単に
このトランジスタ401からのデータはインバータ回路
402および404により増幅されているだけである。
In this state, when the clock signal CK1 applied to the clock input CK1 rises to "H", the output of the inverter circuit 410 becomes "L" and the output of the OR circuit 428 becomes "H". As a result, the RS flip-flop 4
12 is reset, the signal φ1 falls to "L", and the transistor 408 is turned off. On the other hand, the transistor 401 is turned on in response to the clock signal CK1, and passes the data DA applied to the input port A. Transistor 406 is still off and the data from transistor 401 is simply amplified by inverter circuits 402 and 404.

【0106】クロック信号CK1が“L”へ立下がる
と、トランジスタ401がオフ状態、トランジスタ40
6がオン状態となり、それまでに与えられていた信号が
インバータ回路402および404とトランジスタ40
6からなるラッチ回路によりラッチされる。インバータ
回路410の出力信号が“H”に立上がり、RSフリッ
プフロップ412がセット状態とされ、信号φ1が
“H”に立上がる。これにより、インバータ回路404
の出力が出力ポートYへ伝達され、出力データDOとし
て出力される。
When the clock signal CK1 falls to "L", the transistor 401 is turned off and the transistor 40 is turned off.
6 is turned on, and the signals given up to that point are the inverter circuits 402 and 404 and the transistor 40.
It is latched by a latch circuit composed of 6. The output signal of inverter circuit 410 rises to "H", RS flip-flop 412 is set, and signal φ1 rises to "H". As a result, the inverter circuit 404
Is transmitted to the output port Y and is output as output data DO.

【0107】次に、クロック入力CK2に与えられるク
ロック信号CK2が“H”となると、OR回路428の
出力が“H”となり、RSフリップフロップ412がリ
セットされ、信号φ1が“L”に立下がる。トランジス
タ414が、このクロック信号CK2に応答してオン状
態となり、入力ポートBに与えられていた信号を通過さ
せる。トランジスタ414および422はまだオフ状態
であり、この入力ポートBに与えられた信号はインバー
タ回路416および418により増幅される。
Then, when the clock signal CK2 applied to the clock input CK2 becomes "H", the output of the OR circuit 428 becomes "H", the RS flip-flop 412 is reset, and the signal φ1 falls to "L". . Transistor 414 is turned on in response to clock signal CK2, and passes the signal applied to input port B. Transistors 414 and 422 are still off, and the signal applied to input port B is amplified by inverter circuits 416 and 418.

【0108】次にクロック信号CK2が“L”に立下が
ると、トランジスタ414がオフ状態となり、トランジ
スタ422がオン状態となる。これにより、それまでに
与えられていた信号がインバータ回路416および41
8とトランジスタ422とによりラッチされる。クロッ
ク信号CK2の立下がりに応答してインバータ回路42
4の出力が“H”に立上がり、RSフリップフロップ4
26がセットされ、信号φ2が“H”に立上がり、トラ
ンジスタ420がオン状態となる。これにより出力ポー
トYへはインバータ回路418の出力が伝達される。
Next, when the clock signal CK2 falls to "L", the transistor 414 is turned off and the transistor 422 is turned on. As a result, the signals given up to that point are converted into inverter circuits 416 and 41.
8 and the transistor 422. The inverter circuit 42 responds to the fall of the clock signal CK2.
The output of 4 rises to "H", and RS flip-flop 4
26 is set, the signal φ2 rises to "H", and the transistor 420 is turned on. As a result, the output of the inverter circuit 418 is transmitted to the output port Y.

【0109】上述のようにして、クロック入力CK1に
クロック信号が与えられた場合には、入力ポートAに与
えられた信号が選択され、クロック入力CK2にクロッ
ク信号が与えられると入力ポートBに与えられた信号が
出力される。
As described above, when the clock signal is applied to the clock input CK1, the signal applied to the input port A is selected and applied to the input port B when the clock signal is applied to the clock input CK2. The output signal is output.

【0110】なお、図8に示す構成において、クロック
信号CK1またはCK2が“H”に立上がったとき、ト
ランジスタ408および420はオフ状態となり、出力
ポートYの信号状態が不安定となることが考えられる。
この場合クロック信号CK1およびCK2のORをとっ
た信号により活性化されるラッチ回路がこの出力ポート
Yにさらに設けられてもよい。これにより、確実にデー
タを転送することが可能となる。このラッチ回路は、ク
ロック信号CK1およびCK2が“L”のとき与えられ
た信号をそのまま通過させるスルー状態となる。
In the structure shown in FIG. 8, when the clock signal CK1 or CK2 rises to "H", the transistors 408 and 420 are turned off and the signal state of the output port Y may become unstable. To be
In this case, a latch circuit activated by a signal obtained by ORing the clock signals CK1 and CK2 may be further provided at the output port Y. This makes it possible to transfer the data reliably. This latch circuit is in a through state in which the applied signal is passed as it is when the clock signals CK1 and CK2 are "L".

【0111】このようなラッチ回路の構成としては、イ
ンバータ回路402および404とトランジスタ406
からなるラッチ回路の構成を適用することができる。
The structure of such a latch circuit includes inverter circuits 402 and 404 and a transistor 406.
It is possible to apply the configuration of the latch circuit consisting of.

【0112】この図7および図8に示す構成を図4に示
す構成に対応させれば、入力ポートAには隣接するラッ
チ回路の出力が与えられ、入力ポートBには、向かい合
った対応の入力部側または出力部側からのラッチの出力
が与えられる。クロック入力CK1は、クロック信号C
KFまたはCKBであり、クロック入力CK2へはデー
タ入替え制御回路からの比較結果指示信号が与えられ
る。
If the configuration shown in FIGS. 7 and 8 is made to correspond to the configuration shown in FIG. 4, the output of the adjacent latch circuit is given to the input port A, and the corresponding input which faces the input port B is provided. The output of the latch from the output side or the output side is given. The clock input CK1 is a clock signal C
It is KF or CKB, and the comparison result instruction signal from the data exchange control circuit is applied to the clock input CK2.

【0113】この選択入力機能付ラッチにラッチされる
データは、(m−1)ビットのデータパケットと、この
ラッチされているデータが有効であるか否かを示す1ビ
ットの有効データフラグVLDである。有効データフラ
グVLDが“1”であれば、そのバッファに蓄えられて
いるデータが有効であることを示す。
The data latched in the latch with selective input function is a (m-1) -bit data packet and a 1-bit valid data flag VLD indicating whether the latched data is valid or not. is there. If the valid data flag VLD is "1", it indicates that the data stored in the buffer is valid.

【0114】図10は、図4に示すデータ入替え制御回
路の構成を示す図である。図10において、データ入替
え制御回路310は、信号線301および302を介し
てnビットのデータを受ける。このnビットのデータは
(n−1)ビットのキーデータと1ビットの有効データ
フラグVLDとを含む。図10においては、この入力デ
ータを区別するため、一方の入力データの有効データフ
ラグをVLDA、他方の入力データの有効データフラグ
をVLDBとして示す。
FIG. 10 shows a structure of the data exchange control circuit shown in FIG. In FIG. 10, data exchange control circuit 310 receives n-bit data via signal lines 301 and 302. The n-bit data includes (n-1) -bit key data and 1-bit valid data flag VLD. In FIG. 10, in order to distinguish this input data, the valid data flag of one input data is shown as VLDA, and the valid data flag of the other input data is shown as VLDB.

【0115】データ入替え制御回路310はさらに、こ
の信号線301から与えられたnビットのデータうち
(n−1)ビットのキーデータを受ける入力ポートA
と、信号線302を介して与えられるnビットのデータ
のうち(n−1)ビットのキーデータを受けるBポート
と、この入力ポートAおよびBに与えられたキーデータ
の大小を比較しその比較結果を出力する出力ポートLT
とを有する比較器350と、比較器350の出力LT
(出力ポートと出力信号とを同じ符号で示す)と有効デ
ータフラグVLDAおよびVLDBを受ける3入力AN
D回路310と、有効データフラグVLDAをその真入
力に受け、他方有効データフラグVLDBを偽入力に受
けるゲート回路320と、AND回路310の出力とゲ
ート回路320の出力を受けるOR回路330と、比較
指示信号CKCとOR回路330の出力とを受けるAN
D回路340を含む。AND回路340からデータの交
換を行なう入替え指示信号CKCHが発生される。この
信号CKCHは図7および図8に示すクロック信号CK
2に対応する。
The data exchange control circuit 310 further receives an input port A for receiving (n-1) -bit key data out of the n-bit data supplied from the signal line 301.
And the B port that receives (n-1) -bit key data out of the n-bit data provided via the signal line 302, and the size of the key data provided to these input ports A and B are compared, and the comparison is made. Output port LT that outputs the result
And a output LT of the comparator 350
3-input AN for receiving (output port and output signal are indicated by the same reference numeral) and valid data flags VLDA and VLDB
A comparison is made between a D circuit 310, a gate circuit 320 that receives a valid data flag VLDA at its true input and a valid data flag VLDB at its false input, and an OR circuit 330 that receives the output of the AND circuit 310 and the output of the gate circuit 320. AN receiving instruction signal CKC and output of OR circuit 330
A D circuit 340 is included. AND instruction circuit 340 generates a replacement instruction signal CKCH for exchanging data. This signal CKCH is the clock signal CK shown in FIGS. 7 and 8.
Corresponds to 2.

【0116】比較器350は入力ポートAに与えられた
(n−1)ビットのデータが入力ポートBに与えられた
(n−1)ビットのデータよりも小さいときにその出力
ポートLTから“1”の信号を出力する。この場合、比
較器350は、キーデータの昇順に出力データを再配列
する。比較器350の大小判断基準を逆にすれば降順に
再配列することが可能である。以下の説明においては、
データパケットをキーデータの小さい順に配列する必要
があるため、比較器350がデータを昇順に再配列する
場合の動作について説明する。データを降順に再配列す
る場合も容易に実現することができる。
The comparator 350 outputs "1" from its output port LT when the (n-1) -bit data given to the input port A is smaller than the (n-1) -bit data given to the input port B. The signal of "" is output. In this case, the comparator 350 rearranges the output data in ascending order of the key data. It is possible to rearrange in descending order by reversing the criterion of the comparator 350. In the following description,
Since it is necessary to arrange the data packets in ascending order of the key data, the operation when the comparator 350 rearranges the data in ascending order will be described. It can be easily realized when rearranging the data in descending order.

【0117】2つのラッチ110および210からの出
力のうちnビットのキーデータがデータ入替え制御回路
310へ与えられる。比較器350は入力ポートAおよ
びBにそれぞれ与えられた(n−1)ビットのデータの
値の大小を比較する。入力ポートAに与えられるデータ
値が入力ポートBに与えられる(n−1)ビットのデー
タ値よりも小さいときにその出力ポートLTが“1”と
なる。
Of the outputs from the two latches 110 and 210, n-bit key data is applied to the data exchange control circuit 310. The comparator 350 compares the magnitudes of the (n-1) -bit data values given to the input ports A and B, respectively. When the data value given to the input port A is smaller than the (n-1) -bit data value given to the input port B, the output port LT becomes "1".

【0118】AND回路310は、比較器350の出力
LTと有効データフラグVLDAおよびVLDBを受け
る。有効データフラグVLDAは入力部側に設けられた
データラッチに格納されているデータの有効/無効を示
すフラグであり、有効データフラグVLDBは、出力部
側に設けられたラッチに格納されているデータの有効/
無効を示すフラグである。AND回路310は、その3
入力がすべて“H”(“1”)のとき、“H”の信号を
出力する。したがって、AND回路310から“1”の
信号が出力されるのは次の場合である。すなわち、有効
データフラグVLDAおよびVLDBが共に“1”にあ
り、比較器350の出力LTが“1”の場合である。こ
の状態は、入力データ用ラッチ110に有効データが格
納されており、かつ出力データ用ラッチ210に有効デ
ータが格納されており、かつ入力データ用ラッチ110
に格納されたデータのキーデータが出力データ用ラッチ
210のラッチするデータのキーデータよりも小さい場
合である。
AND circuit 310 receives output LT of comparator 350 and valid data flags VLDA and VLDB. The valid data flag VLDA is a flag indicating validity / invalidity of the data stored in the data latch provided on the input side, and the valid data flag VLDB is the data stored in the latch provided on the output side. Valid /
This is a flag indicating invalidity. The AND circuit 310 has 3
When all the inputs are "H"("1"), the "H" signal is output. Therefore, the AND circuit 310 outputs the signal of "1" in the following cases. That is, the valid data flags VLDA and VLDB are both "1" and the output LT of the comparator 350 is "1". In this state, the valid data is stored in the input data latch 110, the valid data is stored in the output data latch 210, and the input data latch 110 is stored.
This is the case where the key data of the data stored in is smaller than the key data of the data latched by the output data latch 210.

【0119】ゲート回路320は、有効データフラグV
LDAが“1”でありかつ有効データフラグVLDBが
“0”のときにのみ“1”の信号を出力する。OR回路
330は、AND回路310およびゲート回路320の
出力の一方が“1”であれば“1”の信号を出力する。
AND回路340は、クロック信号CKCに応答してO
R回路330の出力を伝達する。したがって、AND回
路340の出力CKCHが“1”となるのは、次の2つ
の場合である。(1)入力データ用ラッチ110および
出力データ用ラッチ210に共に有効データがラッチさ
れており、かつその入力データ用ラッチ110に格納さ
れるキーデータが出力用ラッチ210に格納されるキー
データよりも小さいとき、および(2)入力データ用ラ
ッチ110に有効データがラッチされかつ出力データ用
ラッチ210に有効データがラッチされていない場合。
The gate circuit 320 uses the valid data flag V
The signal of "1" is output only when LDA is "1" and the valid data flag VLDB is "0". The OR circuit 330 outputs a signal of "1" when one of the outputs of the AND circuit 310 and the gate circuit 320 is "1".
The AND circuit 340 responds to the clock signal CKC with an O signal.
The output of the R circuit 330 is transmitted. Therefore, the output CKCH of the AND circuit 340 becomes "1" in the following two cases. (1) Valid data is latched in both the input data latch 110 and the output data latch 210, and the key data stored in the input data latch 110 is higher than the key data stored in the output latch 210. When it is small, and (2) when valid data is latched in the input data latch 110 and valid data is not latched in the output data latch 210.

【0120】AND回路340の出力信号CKCHは、
図7および図8に示すクロック入力CK2へ与えられ
る。これにより、データの交換が実現される。
The output signal CKCH of the AND circuit 340 is
It is applied to clock input CK2 shown in FIGS. 7 and 8. Thereby, the exchange of data is realized.

【0121】図11は、この図4に示す回路の全体の動
作を示す信号波形図である。以下、全体の動作について
簡単に説明する。
FIG. 11 is a signal waveform diagram representing an overall operation of the circuit shown in FIG. The overall operation will be briefly described below.

【0122】入力データDIを与える場合には、状態フ
ラグFULLが“0”であることを確認した後にクロッ
ク信号CKFを与える。これにより入力データ用ラッチ
110a〜110nにおいて入力データの取込み、ラッ
チおよび出力が行なわれる。
When the input data DI is supplied, the clock signal CKF is supplied after confirming that the status flag FULL is "0". As a result, the input data latches 110a to 110n fetch, latch and output the input data.

【0123】次いで、比較制御信号CKCが与えられ、
データ入替え制御回路310が比較結果をこの制御信号
CKCに従って出力する。この制御信号CKCに従っ
て、入替え制御信号CKCHが“1”または“0”とな
り、データの再配列が実行される。
Then, the comparison control signal CKC is given,
The data exchange control circuit 310 outputs the comparison result according to the control signal CKC. According to the control signal CKC, the replacement control signal CKCH becomes "1" or "0", and the data rearrangement is executed.

【0124】状態フラグFULLが“1”の場合には、
このデータバッファ1に有効データが一杯格納されてい
ることを示しており、新たにデータを入力することがで
きないことを示している。
When the status flag FULL is "1",
This indicates that the valid data is fully stored in the data buffer 1 and that new data cannot be input.

【0125】データを出力する場合には、状態フラグE
MPTYが“1”であることを確認した後に出力クロッ
ク信号CKBを与える。データを出力した後、制御信号
CKCを与える。これにより信号CKCHが“1”また
は“0”となり、再び出力データの再配列が実行され
る。状態フラグEMPTYが“0”の場合は、データバ
ッファ1においては有効出力データが存在しないことを
示しており、データを出力することができない。
When outputting data, the status flag E
After confirming that MPTY is "1", the output clock signal CKB is applied. After outputting the data, the control signal CKC is given. As a result, the signal CKCH becomes "1" or "0", and the rearrangement of the output data is executed again. When the status flag EMPTY is "0", it means that there is no valid output data in the data buffer 1, and the data cannot be output.

【0126】この図4に示すデータバッファは、選択入
力機能付ラッチ110および210とデータ入替え制御
回路310が規則的に配置されている。すなわち、この
図4に示すデータバッファ1は、同じ回路構成を備える
単位回路が規則的に繰返し配置されている。したがっ
て、このデータバッファ1は、容易に拡張することがで
き、その収納することのできるデータの数を増加させる
ことができる。
In the data buffer shown in FIG. 4, latches 110 and 210 with selection input function and data exchange control circuit 310 are regularly arranged. That is, in the data buffer 1 shown in FIG. 4, unit circuits having the same circuit configuration are regularly and repeatedly arranged. Therefore, the data buffer 1 can be easily expanded and the number of data that can be stored can be increased.

【0127】さらに、このデータバッファは単にデータ
駆動型情報処理装置におけるデータパケットの再配列の
用途のみに適用されるものではない。一般に、データの
配列順序を予め定められた規則に従って変更する必要の
ある用途において適用可能である。データに含まれるキ
ーデータ(データそのものであってもよい)の大小関係
に応じてそのデータの配列順序が決定される用途に適用
可能である。
Furthermore, this data buffer is not only applied to the purpose of rearranging data packets in a data driven type information processing apparatus. Generally, it can be applied to applications in which the arrangement order of data needs to be changed according to a predetermined rule. The present invention can be applied to applications in which the arrangement order of data is determined according to the size relation of key data (may be the data itself) included in the data.

【0128】図12は、このデータバッファの一般的構
成を示す。図12において、データバッファ回路900
は、3段のカスケード接続されたデータバッファ1a、
1bおよび1cと、このデータバッファのデータの入出
力を制御するための入出力制御部950を含む。データ
バッファ1a、1bおよび1cは図4に示すデータバッ
ファ1と同じ構成を備える。入出力制御部950は、入
力データ伝送路に沿って与えられる有効データフラグV
LDを受ける入力FULLと、出力データ伝送路に沿っ
て出力される有効データフラグVLDを受ける入力EM
PTYと、入力要求信号INREQを受ける入力PUS
Hと、出力要求信号OTREQを受ける入力POPと、
入力許可信号INACKを出力する出力ACKIと、出
力要求に対する許可を示す出力許可信号OTACKを出
力する出力ACKOと、クロック信号CKF、CKCお
よびCKBを出力するクロック出力CKF、CKC、お
よびCKBを含む。
FIG. 12 shows the general structure of this data buffer. In FIG. 12, a data buffer circuit 900
Is a three-stage cascaded data buffer 1a,
1b and 1c, and an input / output control unit 950 for controlling input / output of data in this data buffer. The data buffers 1a, 1b and 1c have the same structure as the data buffer 1 shown in FIG. The input / output control unit 950 uses the valid data flag V provided along the input data transmission path.
An input FULL receiving an LD and an input EM receiving a valid data flag VLD output along the output data transmission line.
Input PUS for receiving PTY and input request signal INREQ
H and an input POP that receives the output request signal OTREQ,
It includes an output ACKI which outputs an input permission signal INACK, an output ACKO which outputs an output permission signal OTACK indicating permission for an output request, and clock outputs CCK, CCK and CKB which output clock signals CKF, CCK and CKB.

【0129】入出力制御部950は、入力FULLに与
えられる有効データフラグVLDの“1”および“0”
に従って入力要求信号INREQに対する許可信号IN
ACKを“1”または“0”にし、入力データの受付の
許可および待機を制御する。
The input / output control unit 950 inputs "1" and "0" of the valid data flag VLD given to the input FULL.
According to the input request signal INREQ
The ACK is set to "1" or "0" to control permission and waiting of acceptance of input data.

【0130】入出力制御部950はさらに、入力EMP
TYに与えられる有効データフラグVLDの“1”およ
び“0”に従って、出力要求信号OTREQに対する許
可信号OTACKを“1”または“0”に設定する。こ
れにより、データバッファ1a〜1cにラッチされてい
るデータの格納状況に応じてデータの入出力が実行され
る。入出力制御部950は、インターフェイス回路であ
り、出力要求信号OTREQが与えられ、出力許可信号
OTACKを出力したとき、クロック信号CKBおよび
CKCを発生する。入出力制御部950はまた、入力要
求信号INREQが与えられかつ入力許可信号INAC
Kが発生されたとき、クロック信号CKFおよびCKC
を発生する。
The input / output control unit 950 further receives the input EMP.
The enable signal OTACK for the output request signal OTREQ is set to "1" or "0" according to "1" and "0" of the valid data flag VLD given to TY. As a result, data input / output is performed according to the storage status of the data latched in the data buffers 1a-1c. The input / output control unit 950 is an interface circuit, which is supplied with the output request signal OTREQ and generates the clock signals CKB and CKC when the output permission signal OTACK is output. The input / output control unit 950 also receives the input request signal INREQ and inputs the input permission signal INAC.
When K is generated, the clock signals CKF and CKC
To occur.

【0131】[0131]

【発明の効果】請求項1に係るデータ駆動型情報処理装
置によれば、データパケットに含まれるキーデータに従
って出力データパケットが再配列される。これにより、
データフロープログラムを効率的に処理する順序で対デ
ータ検出ユニットへデータパケットが与えられ、データ
処理効率が増大する。また、対データ検出ユニットにお
いて未発火フラグが立てられたデータパケットの数が増
大しても、この出力データパケットの再配列によりデー
タ処理の効率が低下することはない。
According to the data driven type information processing apparatus of the first aspect, the output data packet is rearranged according to the key data included in the data packet. This allows
The data packets are provided to the paired data detection units in the order of efficiently processing the data flow program, and the data processing efficiency is increased. Further, even if the number of data packets for which the non-firing flag is set in the pair-to-data detection unit increases, the rearrangement of the output data packets does not reduce the data processing efficiency.

【0132】請求項2に係るデータ駆動型情報処理装置
においては、出力データパケットの配列は、対データ検
出ユニットにおける優先順位判別基準と同じ判別基準に
従って実行されている。このため、対データとなる可能
性のあるデータパケットを近接させることができ、対デ
ータ検出ユニットのデータ待合せ領域を効率的に利用す
ることが可能となり、未発火データパケットの発生を抑
制することができ、データフロープログラムの処理効率
を向上することが可能となる。
In the data driven type information processing apparatus according to the second aspect, the arrangement of the output data packets is executed according to the same discrimination criterion as the priority discrimination criterion in the paired data detection unit. For this reason, data packets that may be paired data can be brought close to each other, the data waiting area of the paired data detection unit can be efficiently used, and generation of unfired data packets can be suppressed. Therefore, the processing efficiency of the data flow program can be improved.

【0133】請求項3に係るデータバッファによれば、
格納されているデータの内容に従って出力データの配列
順序が変更可能であり、高速で処理内容に応じて配列さ
れた出力データ系列を得ることができる。また、格納デ
ータの数によりその記憶段数を変更することができるた
め、格納データの数にかかわらず、その記憶段に空きが
生じることがなく、高速でデータの出力を行なうことが
でき、データ処理効率を向上させることができる。また
このデータバッファは同じ構造を有する回路が規則的に
配列されているため、そのレイアウトが容易でありかつ
また規模も容易に拡張することができる。
According to the data buffer of claim 3,
The arrangement order of the output data can be changed according to the contents of the stored data, and the output data series arranged according to the processing contents can be obtained at high speed. Further, since the number of storage stages can be changed depending on the number of stored data, there is no vacancy in the storage stage regardless of the number of stored data, high-speed data output can be performed, and data processing can be performed. The efficiency can be improved. Further, since the circuits having the same structure are regularly arranged in this data buffer, the layout thereof is easy and the scale can be easily expanded.

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

【図1】この発明の一実施例であるデータ駆動型情報処
理装置のエンジンの構成を示す図である。
FIG. 1 is a diagram showing a configuration of an engine of a data driven type information processing apparatus according to an embodiment of the present invention.

【図2】この発明の一実施例であるデータ駆動型情報処
理装置において利用されるキーデータの構成を示す図で
ある。
FIG. 2 is a diagram showing a configuration of key data used in a data driven type information processing apparatus according to an embodiment of the present invention.

【図3】この発明の一実施例であるデータ駆動型情報処
理装置におけるデータ再配列動作を例示する図である。
FIG. 3 is a diagram exemplifying a data rearrangement operation in a data driven information processing apparatus which is an embodiment of the present invention.

【図4】図1に示すデータバッファの構成を示す図であ
る。
FIG. 4 is a diagram showing a configuration of a data buffer shown in FIG.

【図5】図4に示すデータバッファのデータ入力動作を
示すフロー図である。
5 is a flowchart showing a data input operation of the data buffer shown in FIG.

【図6】図4に示すデータバッファのデータ出力動作を
示すフロー図である。
6 is a flowchart showing a data output operation of the data buffer shown in FIG.

【図7】図4に示す選択入力機能付ラッチの外部構成を
示す図である。
FIG. 7 is a diagram showing an external configuration of the latch with selective input function shown in FIG.

【図8】図7に示す選択入力機能付ラッチの具体的構成
を示す図である。
8 is a diagram showing a specific configuration of the latch with selective input function shown in FIG.

【図9】図7および図8に示す選択入力機能付ラッチの
動作を示す信号波形図である。
9 is a signal waveform diagram showing an operation of the latch with selective input function shown in FIGS. 7 and 8. FIG.

【図10】図4に示すデータ入替え制御回路の構成を示
す図である。
10 is a diagram showing a configuration of a data exchange control circuit shown in FIG.

【図11】図4に示すデータバッファの全体の動作を示
す信号波形図である。
11 is a signal waveform diagram showing an overall operation of the data buffer shown in FIG.

【図12】図4に示すデータバッファを拡張した際の構
成を示す図である。
12 is a diagram showing a configuration when the data buffer shown in FIG. 4 is expanded.

【図13】データフローグラフの一例を示す図である。FIG. 13 is a diagram showing an example of a data flow graph.

【図14】データ駆動型情報処理装置のエンジンにおい
て利用されるデータパケットの構成を示す図である。
FIG. 14 is a diagram showing a structure of a data packet used in an engine of a data driven type information processing apparatus.

【図15】データ駆動型情報処理装置の全体の構成を示
す図である。
FIG. 15 is a diagram showing an overall configuration of a data driven type information processing apparatus.

【図16】図15に示すデータ駆動エンジンの構成を示
すブロック図である。
16 is a block diagram showing a configuration of a data driven engine shown in FIG.

【図17】図16に示すプログラム記憶付発火制御部の
構成を示すブロック図である。
17 is a block diagram showing a configuration of an ignition control unit with a program storage shown in FIG.

【図18】ハッシュ演算を説明するための図である。FIG. 18 is a diagram for explaining a hash operation.

【図19】メモリ空間の縮退を説明するための図であ
る。
FIG. 19 is a diagram for explaining degeneracy of a memory space.

【図20】図17に示す対データ検出ユニットの動作を
示すフロー図である。
FIG. 20 is a flowchart showing an operation of the paired data detection unit shown in FIG. 17.

【図21】図17に示すプログラム記憶ユニットの動作
を示すフロー図である。
21 is a flowchart showing the operation of the program storage unit shown in FIG.

【図22】従来のデータ駆動型情報処理装置の問題点を
説明するための図である。
FIG. 22 is a diagram for explaining a problem of a conventional data driven type information processing device.

【符号の説明】 1 データバッファ 2 メモリユニット 3 キーモニタ 4 キー検出部 5 キー比較部 6 配列制御部 10 再配列制御ユニット 110a〜110n 入力データ用選択入力機能付ラッ
チ 210a〜210n 出力データ用選択入力機能付ラッ
チ 310a〜310n データ入替え制御器 506 データ駆動エンジン 550 合流ユニット 552 プログラム記憶付発火制御部 554 演算処理ユニット 556 分岐ユニット 558 データバッファ 562 対データ検出ユニット 564 プログラム記憶ユニット 900 データバッファ回路 950 入出力制御部
[Explanation of Codes] 1 data buffer 2 memory unit 3 key monitor 4 key detection unit 5 key comparison unit 6 array control unit 10 rearrangement control unit 110a to 110n input data selection input function latch 210a to 210n output data selection input Latch with function 310a to 310n Data exchange controller 506 Data driven engine 550 Merge unit 552 Ignition control unit with program memory 554 Arithmetic processing unit 556 Branch unit 558 Data buffer 562 Pair data detection unit 564 Program storage unit 900 Data buffer circuit 950 Input / output Control unit

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 データ巡回パスを有しかつ前記データ巡
回パス上のデータから対となるデータを検出する対デー
タ検出手段を含み、前記対データ検出手段により対デー
タが検出されたとき発火して対応の処理を実行する機能
を有するデータ駆動型情報処理装置であって、 前記データ巡回パス上の一方からのデータを受けて一時
的に格納しかつ格納データを前記巡回パスを介して前記
対データ検出手段へ伝達するバッファメモリ手段を含
み、前記データは配列順序を決定するキーデータを含
み、 前記バッファメモリ手段は、各データに含まれる前記キ
ーデータに従って予め定められた順序で格納データが配
列されるように、受けたデータに含まれるキーデータと
格納データのキーデータとに従って格納データを再配列
する手段を含む、データ駆動型情報処理装置。
1. A pair data detection means having a data circulation path and detecting paired data from data on the data circulation path, wherein the pair data detection means fires when pair data is detected. A data driven information processing apparatus having a function of executing corresponding processing, wherein the data driven information processing apparatus receives data from one of the data cyclic paths and temporarily stores the data, and stores the stored data via the cyclic path to the paired data. The data includes key data for determining an arrangement order, and the buffer memory means arranges the stored data in a predetermined order according to the key data included in each data. So that the stored data is rearranged according to the key data contained in the received data and the key data of the stored data. Type information processing apparatus.
【請求項2】 請求項1記載のデータ駆動型情報処理装
置であって、 前記対データ検出手段は縮退したメモリ空間を有しかつ
対を形成すべきデータを一時的に格納する待合せメモリ
手段と、 対を形成すべきデータが与えられたとき、この受けた対
を形成すべきデータを格納すべきアドレスに既にデータ
が格納されているとき予め定められた優先順位に従って
いずれのデータを前記待合せメモリ手段に格納すべきか
否かを判別する優先度判別手段をさらに含み、 前記再配列手段は、前記優先順位判別手段が従う優先順
位と同じ優先順位に従って前記キーデータに従って格納
データを再配列する手段を含む。
2. The data driven type information processing apparatus according to claim 1, wherein the paired data detection means has a degenerate memory space and a waiting memory means for temporarily storing data to be paired. When data to be formed into a pair is given, and when the data is already stored in the address to store the data to be formed into the received pair, which data is stored in the queuing memory according to a predetermined priority order. Means for rearranging the stored data according to the key data according to the same priority as the priority determined by the priority determination means. Including.
【請求項3】 入力データを順次格納しかつ出力するた
めに、データ入力部とデータ出力部とを有するデータ伝
送路に沿って配置される互いに縦続接続された複数のデ
ータ格納手段、 前記データ伝送路に沿って鏡映対象の位置のデータ格納
手段に対して設けられ、出力部側データ格納手段に有効
格納データが存在しないとき、入力部側データ格納手段
のデータを前記出力部側データ格納手段へ転送する転送
手段、 前記データ伝送路に沿って鏡映対象の位置のデータ格納
手段に対して設けられ、入力部側データ格納手段のデー
タに含まれる所定のキーデータと出力部側データ格納手
段のデータに含まれる所定のキーデータとを比較する比
較手段、および前記比較手段の比較結果に従って対応の
出力部側データ格納手段の格納データと対応の入力部側
データ格納手段の格納データとを交換する交換手段を含
む、データバッファ。
3. A plurality of data storage means connected in series and arranged along a data transmission path having a data input section and a data output section for sequentially storing and outputting input data, said data transmission The data of the input side data storage means is provided to the data storage means at the position of the mirroring target along the path, and when the output side data storage means does not have effective storage data, Transfer means for transferring to the data storage means at the position of the mirroring target along the data transmission path, and predetermined key data and output part data storage means included in the data of the input side data storage means Comparing means for comparing with predetermined key data included in the data, and stored data of the corresponding output side data storing means and corresponding input according to the comparison result of the comparing means. Including the exchange means for exchanging and storing data side data storage means, data buffer.
JP17829892A 1992-07-06 1992-07-06 Data driven information processor and data buffer used in this processor Withdrawn JPH0620072A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17829892A JPH0620072A (en) 1992-07-06 1992-07-06 Data driven information processor and data buffer used in this processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17829892A JPH0620072A (en) 1992-07-06 1992-07-06 Data driven information processor and data buffer used in this processor

Publications (1)

Publication Number Publication Date
JPH0620072A true JPH0620072A (en) 1994-01-28

Family

ID=16046032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17829892A Withdrawn JPH0620072A (en) 1992-07-06 1992-07-06 Data driven information processor and data buffer used in this processor

Country Status (1)

Country Link
JP (1) JPH0620072A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6900909B2 (en) * 1999-12-03 2005-05-31 Ricoh Company, Ltd. Image processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6900909B2 (en) * 1999-12-03 2005-05-31 Ricoh Company, Ltd. Image processor
US7372599B2 (en) 1999-12-03 2008-05-13 Ricoh Compnay, Ltd. Image processor

Similar Documents

Publication Publication Date Title
US4884192A (en) Information processor capable of data transfer among plural digital data processing units by using an active transmission line having locally controlled storage of data
JP2668438B2 (en) Data retrieval device
US4145733A (en) Data processing apparatus for highly parallel execution of stored programs
US4972315A (en) Data flow machine
KR100346515B1 (en) Temporary pipeline register file for a superpipe lined superscalar processor
US3553653A (en) Addressing an operating memory of a digital computer system
US20060004980A1 (en) Address creator and arithmetic circuit
US5848297A (en) Control apparatus for maintaining order and accomplishing priority promotion in a computer interconnect
JPH0155499B2 (en)
US5019969A (en) Computer system for directly transferring vactor elements from register to register using a single instruction
US5615375A (en) Interrupt control circuit
JP3505728B2 (en) Storage controller
US7474586B1 (en) Random access memory (RAM) method of operation and device for search engine systems
US3337851A (en) Memory organization for reducing access time of program repetitions
JPH0620072A (en) Data driven information processor and data buffer used in this processor
JPH10502756A (en) Chunk chains for vector processors
JP2638613B2 (en) Programmable accelerator and method thereof
US5268902A (en) Data transmission apparatus
JPS6236575B2 (en)
US3351918A (en) Computer system employing specialized instruction execution units
JPH0793152A (en) Microprocessor controller
JP3982077B2 (en) Multiprocessor system
JP2766404B2 (en) Data driven microprocessor
JPH1131066A (en) Buffer control system
JP3323142B2 (en) Crossbar device, multi-stage crossbar device, and information processing device

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991005