JPH03229381A - Data drive type computer - Google Patents

Data drive type computer

Info

Publication number
JPH03229381A
JPH03229381A JP2462090A JP2462090A JPH03229381A JP H03229381 A JPH03229381 A JP H03229381A JP 2462090 A JP2462090 A JP 2462090A JP 2462090 A JP2462090 A JP 2462090A JP H03229381 A JPH03229381 A JP H03229381A
Authority
JP
Japan
Prior art keywords
packet
data
memory
bit
packets
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.)
Pending
Application number
JP2462090A
Other languages
Japanese (ja)
Inventor
Hirono Tsubota
浩乃 坪田
Nobufumi Komori
伸史 小守
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2462090A priority Critical patent/JPH03229381A/en
Publication of JPH03229381A publication Critical patent/JPH03229381A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To carry on the operation of a data drive type computer with no discontinuation by replacing all packets with other ones in a queuing memory if a discontinuation state is detected by the presence or absence of ignition of all packets included in a circulating pipeline. CONSTITUTION:If a packet unstorable in a queuing memory 112 is produced, this packet is transmitted through the processing parts 101 - 103 set on a circulating pipeline and inputted again into the memory 112. Meanwhile it is decided whether or not an ignition processing part 101 applied the ignition processing to the packet, i.e., the packet is outputted from the memory 112 for proceeding of the data processing. If not, all packets are replaced with other ones in the memory 112. Thus the input packets are stored in the memory 112 without fail and the processing is carried on with no discontinuation.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データの依存関係に基づいて処理を駆動する
方式を採用しているデータ駆動形計算機に関し、特に巡
回パイプライン構成において待合わせメモリに起因する
実行停止を回避する技術に関する。
[Detailed Description of the Invention] [Industrial Application Field] The present invention relates to a data-driven computer that employs a method of driving processing based on data dependencies, and particularly relates to a data-driven computer that uses a method of driving processing based on data dependencies, and particularly in a cyclic pipeline configuration. This invention relates to a technique for avoiding execution stoppage caused by.

(従来の技術〕 第7図はデータ駆動形計算機におけるデータ処理の概念
図であり、2つのデータの加算が行われる様子を示して
いる。図において“A” という値を持ち“a”という
識別子を付加されたパケット81が発火処理部87に与
えられると、識別子フィールド比較部84は待合わせメ
モリ85にパケット81の識別子“a”と一致する識別
子を持つパケ−/ )が格納されているか否かを検索す
る。第7図では“B”という値を持ち“a”という識別
子を持つパケット82が格納されているので、このパケ
ット82が待合わせメモリ85から読出され、入力され
たパケット81と共にデータ対形成部86へ送られる。
(Prior Art) Fig. 7 is a conceptual diagram of data processing in a data-driven computer, showing how two pieces of data are added. When the packet 81 with ``a'' added is given to the firing processing unit 87, the identifier field comparison unit 84 determines whether or not a packet with an identifier matching the identifier "a" of the packet 81 is stored in the waiting memory 85. Search for. In FIG. 7, a packet 82 having a value of "B" and an identifier of "a" is stored, so this packet 82 is read out from the waiting memory 85 and is sent to the data pair forming unit 82 along with the input packet 81. sent to.

データ対形成部86はパケット81とパケット82とを
合体し、“A”という値と“B″という値とにa”とい
う識別子を付加したデータ83を形成しくこれを発火と
呼ぶ)、データ処理部88でA+Bの演算が実行される
。演算結果は図示しないプログラムメモリに識別子をア
ドレスとして与えられ、そこで更新処理を行った後、外
部に出力されるか、又は再度発火処理部87に与えられ
る。これらの発火処理部87、データ処理部88及びプ
ログラムメモリから巡回パイプラインが構成される。
The data pair forming unit 86 combines the packets 81 and 82 to form data 83, which is the value "A" and the value "B" with an identifier "a" added (this is called firing), and data processing. The operation A+B is executed in the unit 88. The operation result is given to a program memory (not shown) using an identifier as an address, and after being updated there, it is outputted to the outside or given again to the firing processing unit 87. A cyclic pipeline is constructed from these firing processing section 87, data processing section 88, and program memory.

第7図の例では入力されたパケット81と同じ識別子“
a”を有するパケット82が待合わせメモリ85に格納
されていたが、入力されたバケツ)81と同じ識別子を
有するパケットが待合わせメモリ85に格納されていな
い場合は、入力されたパケット81は待合わせメモリ8
5に格納され、これと一致する識別子を有するパケット
が入力されるまで待合される。
In the example of FIG. 7, the same identifier as the input packet 81 “
a” was stored in the waiting memory 85, but if a packet with the same identifier as the input bucket) 81 is not stored in the waiting memory 85, the input packet 81 is stored in the waiting memory 85. Alignment memory 8
5 and waits until a packet with an identifier matching this is input.

このように発火処理部87はデータ駆動形計算機におい
て演算すべきパケットを検索する役割を持っている。
In this way, the firing processing section 87 has the role of searching for packets to be operated on in the data-driven computer.

通常データ駆動形計算機においては、識別子のビット幅
は数十ビットとなるため、識別子毎にメモリのアドレス
を割当てるとメモリ容量が膨大なものとなるため、従来
より待合わせメモリ85に用いるメモリとしてビット幅
を圧縮(以下ハツシュという)し、これをメモリアドレ
スとして用いたメモリ (以下ハツシュメモリという)
を用いている。
In normal data-driven computers, the bit width of an identifier is several tens of bits, so if a memory address is assigned to each identifier, the memory capacity will be enormous. Memory whose width is compressed (hereinafter referred to as hash) and used as a memory address (hereinafter referred to as hash memory)
is used.

第8図は入力パケットの一例の構成を示すビットマツプ
図、第9図はハツシュメモリの一例の構成を示すブロッ
ク図である。
FIG. 8 is a bitmap diagram showing the structure of an example of an input packet, and FIG. 9 is a block diagram showing the structure of an example of the hash memory.

入力パケットは演算対象となる18ビツトのオペランド
データOD、演算内容を示すコードである7ビソトのオ
ペレーションコードQC,1ビツトのプロセッサ選択ビ
ットPS、入力パケットが2入力命令か1入力命令かを
示すIビットのFC処理選択ビット及び演算順に応して
演算場所(ノード)の左又は右に配置することを示す左
右データ選択ビットを含み、各種の選択を行うセレクシ
ョンコートSC1入力データの入力順等の属性を示す9
ビツトのカラー/世代番号DN並びに演算の行われるべ
き場所を示す21ビツトのノード番号NNの60ピント
にて構成されている。そしてプロセッサ選択ビットps
とカラー/世代番号DNとノード番号NNとから31ビ
ツトの識別子が構成される。
The input packet contains 18-bit operand data OD to be operated on, a 7-bit operation code QC that indicates the content of the operation, a 1-bit processor selection bit PS, and I that indicates whether the input packet is a 2-input instruction or a 1-input instruction. Attributes such as the input order of the input data of the selection court SC1 that performs various selections, including the FC processing selection bit of the bit and the left and right data selection bits that indicate placement on the left or right of the calculation location (node) depending on the calculation order. 9 showing
It consists of 60 pins of a bit color/generation number DN and a 21-bit node number NN indicating the location where the calculation is to be performed. and processor selection bit ps
A 31-bit identifier is constructed from the color/generation number DN and the node number NN.

ハツシュメモリ601はノード番号NNの下位9ビツト
をハフシュアドレスとしてアクセスされるものであり、
リードライトサイクルを定めるリードライト信号W/R
−H,書込みデータ及び各アドレスの有効・無効の別を
示すプレゼンスビットPBの更新を行うセントリセット
信号S/πが与えられる。格納される書込みデータは1
8ピントのオペランドデータODと、9ビツトのカラー
/世代番号DN及びノード番号NNの残り12ビツトの
21ビツトの識別子と、1ビツトのプロセッサ選択ビッ
トPSの合計40ビツトからなっている。またハツシュ
メモリ601には別に1ビツトのプレゼンスビットPB
が格納されており、合計lワード41ビツトとなってい
る。またアドレス空間は29=512となっており、ハ
ツシュメモリ601 は41ビツト/ワード×512の
大きさを有している。
The hash memory 601 is accessed using the lower 9 bits of the node number NN as a hash address.
Read/write signal W/R that determines the read/write cycle
-H, and a cent reset signal S/π for updating write data and a presence bit PB indicating whether each address is valid or invalid. The write data stored is 1
It consists of 8-pin operand data OD, 9-bit color/generation number DN, 21-bit identifier of the remaining 12 bits of node number NN, and 1-bit processor selection bit PS, for a total of 40 bits. Additionally, the hash memory 601 has an additional 1-bit presence bit PB.
are stored, making a total of 1 word and 41 bits. The address space is 29=512, and the hash memory 601 has a size of 41 bits/word×512.

ハツシュメモリを用いた場合、ハ・ンシュしたアドレス
(以下ハツシュアドレスという)をアクセスしたときに
同一アドレスでの衝突、所謂ハツシュ衝突が起こる虞が
ある。
When a hash memory is used, when a hashed address (hereinafter referred to as a hash address) is accessed, there is a risk that a collision at the same address, a so-called hash collision, may occur.

即ちハツシュ衝突とは識別子の一部をハツシュアドレス
とした場合にハツシュアドレスが既にハツシュメモリ内
に格納されたデータと一致しても、残りの識別子が一致
しないデータがアクセスされたとき、そのデータを記憶
するアドレスが既に占有されているために起こるもので
ある。
In other words, a hashish collision is a hashish address that occurs when part of an identifier is used as a hashish address, and even if the hashish address matches data already stored in the hashish memory, the remaining identifiers do not match when data is accessed. This occurs because the address for storing data is already occupied.

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

ここでハツシュメモリ601を待合わせメモリ85に用
いたデータ駆動形計算機において、第10図!a)に示
すデータフローグラフを実行する場合を考える。
Here, in a data-driven computer using the hash memory 601 as the waiting memory 85, FIG. Consider the case of executing the data flow graph shown in a).

なお、説明を平易にするためハツシュメモリ601はノ
ード番号の下位2ビツトをハツシュアトレスとしてアク
セスされ、4つのパケットを蓄えるだけの容量(アドレ
ス空間=22=4)を持つこととして以下の説明を行う
To simplify the explanation, the following explanation assumes that the hash memory 601 is accessed using the lower two bits of the node number as the hash address, and has a capacity sufficient to store four packets (address space = 22 = 4). conduct.

第10図(alに示す如くこのデータフローではノート
数8で構成され、6つの入力パケットを演算処理してい
く。ここで特に番号0のノードの左入力となる第2パケ
ツトが番号7のノードの左入力にもなっている。ハツシ
ュメモリ601をアクセスするメモリアドレスは4メモ
リアドレスとなり、第10図(a)のデータフローグラ
フのノード番号は同図(b)に示すメモリアドレスとな
る。このとき第10図(alにおいて、番号3 (01
1)のノードの左入力となる第1パケツトと番号7 (
111)のノートの左入力となる第2パケツトとは、ノ
ード番号の下位2ビツトが同じ値(=11)なのでハツ
シュメモリ601の同一メモリアドレス“3″(=11
)を指すこととなる。第2パケツトが第1パケツトより
も先にハツシュメモリ601に蓄えられた場合、第2パ
ケツトは番号7のノードの右入力となる第3バケツトを
待つことになるが、第3バケツトは番号3,5及び6の
ノードが実行されないと生成されない。
As shown in Figure 10 (al), this data flow consists of 8 notes, and 6 input packets are processed. In particular, the second packet that is the left input of the node with number 0 is the node with number 7. The memory address for accessing the hash memory 601 is 4 memory addresses, and the node number of the data flow graph in FIG. 10(a) is the memory address shown in FIG. 10(b). When number 3 (01
The first packet, which is the left input of the node in 1), and the number 7 (
111), the lower two bits of the node number have the same value (=11), so the second packet is the same memory address "3" (=11) in the hash memory 601.
). If the second packet is stored in the hash memory 601 before the first packet, the second packet will wait for the third bucket, which is the right input of the node with number 7, but the third packet will be stored in the hash memory 601 before the first packet. It will not be generated unless nodes 5 and 6 are executed.

ところが、第2パケツトが第1パケツトより先に格納さ
れ、第2パケツトは待合わせの相手(第3バケツト)が
生成されないので、ハツシュメモリ601内に格納され
たままとなり、第1パケツトと第2パケツトとがハツシ
ュ衝突してしまうので、第1パケツトはハツシュメモリ
601へ蓄えられず、従って番号3のノードの演算は実
行されないこととなり、結局演算処理の実行が停止して
しまうことになる。
However, since the second packet is stored before the first packet and the meeting partner (third packet) is not generated, the second packet remains stored in the hash memory 601, and the first and second packets remain stored in the hash memory 601. Since there is a hash collision with the first packet, the first packet is not stored in the hash memory 601, and therefore the operation of the node numbered 3 is not executed, and the execution of the operation process ends up being stopped.

このようにハツシュメモリ601の容量より大きなデー
タフローグラフを実行する際、同一メモリアドレスを複
数のノードが発火のために使用するので、パケットの到
着順によってはハツシュ衝突を起こし、データフローグ
ラフの実行を途中で停止させてしまうという問題点があ
った。
In this way, when executing a data flow graph larger than the capacity of the hash memory 601, multiple nodes use the same memory address for firing, so depending on the order of arrival of packets, hash collisions may occur, causing the execution of the data flow graph. There was a problem that the process would stop midway.

本発明は上記のような問題点を解決するためになされた
ものであり、待合わせメモリであるハツシュメモリ内に
既に格納されているパケットのために、先に演算を実行
すべきパケットがハツシュメモリに格納することができ
ず、プログラムの実行が事実上停止状態となったことを
巡回パイプライン中にある全パケットの発火の有無によ
り検出し、停止状態が検出された場合、待合わせメモリ
内の全パケットを入れ換えることにより先に実行すべき
パケットを待合わせメモリ内に格納し、演算の実行を停
止させることなく継続して実行できるデータ駆動形計算
機を得ることを目的とする。
The present invention has been made to solve the above-mentioned problems, and because the packet is already stored in the hash memory, which is the waiting memory, the packet to be processed first is stored in the hash memory. It is detected by whether or not all packets in the cyclic pipeline are fired that the program execution is effectively stopped because the program cannot be stored in the waiting memory. The purpose of the present invention is to provide a data-driven computer which can store packets to be executed first in a waiting memory by exchanging all packets and can continuously execute operations without stopping them.

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

本発明に係るデータ駆動形計算機は、入力されたパケッ
トが少なくとも1つの待合わせメモリに格納できず、巡
回パイプラインを介して再度待合わされるまでに発火処
理されたか否かを検出する手段を設け、この間に発火処
理されなかった場合、データ処理が進んでおらず、待合
わせメモリから処理を実行するために出力されたパケッ
トがなく、データ処理が停止状態となる虞があると判定
し、この場合に待合わせメモリ内の全パケットを入換手
段により入換えるようにしたものである。
The data-driven computer according to the present invention is provided with means for detecting whether or not an input packet cannot be stored in at least one waiting memory and has been fired before being waited for again via the cyclic pipeline. If the firing process is not performed during this time, it is determined that the data processing is not progressing, there is no packet output from the waiting memory for processing, and there is a risk that the data processing will be stopped. In this case, all the packets in the waiting memory are replaced by the replacement means.

〔作用〕[Effect]

本発明においては待合わせメモリに格納できないパケッ
トが発生すると、そのパケットは巡回パイプライン上の
各処理部を通過し、再度待合わせメモリに入力される。
In the present invention, when a packet that cannot be stored in the scheduling memory is generated, the packet passes through each processing unit on the cyclic pipeline and is inputted into the scheduling memory again.

この間に発火処理部で発火処理されたか否か、即ち待合
わせメモリからデータ処理を進めるためにパケットが出
力されたか否かを検出し、この間に発火処理されず、パ
ケットが出力されなかったときは、待合わせメモリ内の
全パケットを入換え、入力されたパケットが必ず待合わ
せメモリに格納されるようになり、処理の実行が停止さ
れることはなくなる。
During this period, the firing processing section detects whether or not the firing process has been performed, that is, whether or not the packet has been output from the waiting memory to proceed with data processing. , all packets in the waiting memory are replaced, so that the input packet is always stored in the waiting memory, and the execution of the process is no longer stopped.

〔実施例〕〔Example〕

以下、本発明の実施例を図に基づいて詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail based on the drawings.

第1図はこの発明に係るデータ駆動形計算機の構成図で
ある。図において101は発火処理部である。該発火処
理部101 はパケットが入力されると、パケットに付
属している識別子の内、行き先ノードを示すノード番号
及びカラー/世代番号が一致するパケットが待合わせメ
モリである連想メモリ112に、あるかどうかを検索し
、ノード番号及びカラー/世代番号が一致するパケット
が存在した場合、2つのパケットをマージし、発火パケ
ットを生成し、ノード番号及びカラー/世代番号が一致
するパケットが存在しなかった場合、入力パケットを連
想メモリ112に格納する機能を有する。
FIG. 1 is a block diagram of a data-driven computer according to the present invention. In the figure, 101 is an ignition processing section. When a packet is input, the firing processing unit 101 stores the packet whose node number indicating the destination node and color/generation number match among the identifiers attached to the packet in the associative memory 112, which is a waiting memory. If there is a packet with a matching node number and color/generation number, merge the two packets and generate a firing packet, and if there is no packet with a matching node number and color/generation number. In this case, it has a function of storing the input packet in the associative memory 112.

発火処理部101で発火した発火パケットは演算処理部
102に与えられ、発火パケットに付属している命令コ
ードに従って演算処理を施す。演算結果のパケットはプ
ログラムメモリ103に与えられ、パケットに付属して
いるノード番号を入力アドレスとしてプログラムメモリ
103の内容を読出し、読出した内容に基づき識別子の
ノード番号と命令コードとの更新を行う。
The firing packet fired by the firing processing section 101 is given to the arithmetic processing section 102, which performs arithmetic processing according to the instruction code attached to the firing packet. The packet resulting from the calculation is given to the program memory 103, the contents of the program memory 103 are read using the node number attached to the packet as an input address, and the node number and instruction code of the identifier are updated based on the read contents.

以上、発火処理部101、演算処理部102、プログラ
ムメモリ103は、発火処理部101は1段の、その他
は複数段のパイプライン構成となっており、全体として
巡回パイプライン構成となっている。
As described above, the firing processing section 101, the arithmetic processing section 102, and the program memory 103 have a one-stage pipeline configuration for the firing processing section 101, and a multi-stage pipeline configuration for the others, and have a cyclic pipeline configuration as a whole.

第2図はパケットのデータ構造を示す図であり、パケッ
トは全部で81ビツトあり、上位から順に18ビツトの
オペランドデータ20D2、オペランドデータ1001
.7ビツトのオペレーションコード0C11ビツトの印
ビットMB、各1ビツトのスルービットTH1左/右デ
ータ選択ビットSL及びFC処理選択ビットを含む7ビ
ソトのセレクションビット5C119ヒツトのカラー/
世代番号DN並びに21ビツトのノード番号NNから構
成される。ここでビットMBは、これが発火処理部10
1から出力されてから次に入力されるまでに、発火処理
がされたか否かを検出するための対象となるパケットを
示すためのものである。この巡回パイプライン上を第2
図に示すデータ構造のパケットが移動している。但し、
演算処理部102の出力から発火処理部101の入力ま
ではパケットはオペランドデータ20D2を持たず、6
3ビツト構成となっているが、発火処理部101での処
理後は、発火前のパケットの2つのオペランドデータ0
01.002を夫々の左/右データ選択ビットSLに従
ってオペランドデータ10D1及びオペランドデータ2
0D2として格納した状態で演算処理部102に送られ
る。演算処理部102では、2つのオペランドデータ0
01 、 OD2の演算結果がオペランドデータ10D
1 として格納されてまた元の63ビツト構成となる。
FIG. 2 is a diagram showing the data structure of a packet. The packet has a total of 81 bits, and from the highest order, 18-bit operand data 20D2, operand data 1001
.. 7-bit operation code 0C 11-bit mark bit MB, 1-bit through bit TH1 7-bit selection bit including left/right data selection bit SL and FC processing selection bit 5C 119-bit color/
It consists of a generation number DN and a 21-bit node number NN. Here, bit MB is the firing processing unit 10.
This is to indicate a target packet for detecting whether firing processing has been performed from the time it is output from 1 to the time it is next input. On this circular pipeline,
A packet with the data structure shown in the figure is moving. however,
From the output of the arithmetic processing unit 102 to the input of the firing processing unit 101, the packet does not have operand data 20D2 and has 6
Although it has a 3-bit configuration, after processing in the firing processing unit 101, the two operand data of the packet before firing are 0.
01.002 to operand data 10D1 and operand data 2 according to the respective left/right data selection bits SL.
It is sent to the arithmetic processing unit 102 in a state stored as 0D2. In the arithmetic processing unit 102, two operand data 0
01, the operation result of OD2 is operand data 10D
1 and returns to its original 63-bit configuration.

但し、発火処理部101から演算処理部102の間のパ
ケットでも1オペランド演算のパケット又は連想メモリ
112が満杯のために巡回パイプラインを通過するスル
ーパケットの場合は、オペランドデータ20D2にはな
にも保持されない。
However, even if the packet is between the firing processing unit 101 and the arithmetic processing unit 102, if it is a one-operand operation packet or a through packet that passes through the cyclic pipeline because the associative memory 112 is full, no operand data 20D2 is stored. Not retained.

また、発火処理部101から出力されたスルーパケット
は演算処理部102及びプログラムメモリ103では、
処理されずそのままの情報を保持して再び発火処理部1
01に戻ってくる。
Furthermore, the through packet output from the firing processing section 101 is processed by the arithmetic processing section 102 and the program memory 103.
The firing processing unit 1 retains the unprocessed information and fires it again.
Come back to 01.

次に発火処理部101内部の構成について説明する。Next, the internal configuration of the firing processing section 101 will be explained.

111は、発火処理部101に入力されたパケットをラ
ッチするデータラッチである。入力パケットは、波ライ
ンの前段からの信号COが“H″のタイミングでラッチ
される。ラッチされたパケットのうち印ビア)MB、F
C処理選択ビット、左/右データ選択ピッ)SLが制御
部118に出力される。また、印ピッ)MBとスルービ
ットTFIを除く入力パケットの各データは、識別子3
0ビツトとその他の32ビツトに分けて連想メモリ11
2に入力される。同じく印ビット問とスルーピッ1−T
Hを除く入力パケットの各データは、データ対形成器1
16にも入力される。
A data latch 111 latches a packet input to the firing processing unit 101. The input packet is latched at the timing when the signal CO from the previous stage of the wave line is "H". Among the latched packets, India via) MB, F
C processing selection bit, left/right data selection bit) SL is output to the control unit 118. In addition, each data of the input packet except MB and through bit TFI has the identifier 3.
Associative memory 11 divided into 0 bit and other 32 bits
2 is input. Similarly mark bit question and through pit 1-T
Each data of the input packet except H is sent to the data pair former 1.
16 is also input.

第3図は、連想メモ1月12の構成を示すブロック図で
ある。図において201はデータラッチ111を介して
入力されるパケ・ノドに含まれる30ビツトの識別子と
一致するデータを検索する連想メモリ(以下CAMとい
う)であり、31ビツト×32アドレスの容量となって
いる。CAM 201のうち1ビツトは格納されている
データの有効性を判別するためのプレゼンスビットPB
の格納に用いられる。CAM201には各アドレスに対
して一致/不一致信号線(以下マツチラインという)が
設けられており、与えられた30ビツトの識別子と、C
AM 201に格納された識別子とが一致したアドレス
のマツチラインのみ“H”が出力される。またCAM 
201にはセレクタ205を介してプレゼンスビットP
Bの更新を行うセット信号S/πが与えられると共にリ
ードライトのサイクルを定めるリードライト信号W/π
が与えられる。セレクタ205は一端に基準電圧“H″
が、他端にセント信号S/πが与えられており、また切
替端子にリードライト信号W/πが与えられており、リ
ードサイクルのときは基準電圧“H”が、ライトサイク
ルのときはセント信号S/πが選択される。即ちリード
サイクルW/π=4L″のときは、プレゼンスピッ)P
B=1のアドレスだけを検索する必要があるので、検索
データのプレゼンスビットPBに相当するビットを常に
1とし、ライトサイクルW/π=“H”のときのみプレ
ゼンスピントPBを更新する必要があるためにこのセレ
クタ205が用いられる。
FIG. 3 is a block diagram showing the structure of the associative memo January 12. In the figure, 201 is an associative memory (hereinafter referred to as CAM) that searches for data that matches the 30-bit identifier included in the packet node input via the data latch 111, and has a capacity of 31 bits x 32 addresses. There is. One bit of the CAM 201 is a presence bit PB for determining the validity of stored data.
It is used for storing. The CAM 201 is provided with a match/mismatch signal line (hereinafter referred to as a match line) for each address, and a given 30-bit identifier and C
"H" is output only for the match line whose address matches the identifier stored in the AM 201. Also CAM
The presence bit P is sent to 201 via the selector 205.
A set signal S/π for updating B is given, and a read/write signal W/π determines a read/write cycle.
is given. The selector 205 has a reference voltage “H” at one end.
However, a cent signal S/π is applied to the other terminal, and a read/write signal W/π is applied to the switching terminal. The signal S/π is selected. That is, when the read cycle W/π=4L'', the presence pitch)P
Since it is necessary to search only the address with B=1, it is necessary to always set the bit corresponding to the presence bit PB of the search data to 1 and update the presence focus PB only when the write cycle W/π = “H”. This selector 205 is used for this purpose.

またCAM 201からは32ビツトのマツチラインに
識別子の一致、不一致の別を示す判定信号が出力される
と共に、空アドレス検出器203に各アドレスのプレゼ
ンスビットPBが出力され、そこでプレゼンスビットP
Bより有効なデータが格納されていないアドレスが検出
される。
Further, the CAM 201 outputs a judgment signal indicating whether the identifiers match or do not match on the 32-bit match line, and also outputs the presence bit PB of each address to the empty address detector 203, where the presence bit P
An address in which no valid data is stored is detected from B.

空アドレス検出器203は、空アドレスを示す32ビツ
トの検出信号をアドレスセレクタ206 及ヒ207の
一端に出力すると共に、空アドレスがなく CAM20
1全アドレスにパケットが格納されたとき、そのことを
示す満杯信号FLを制御部118に出力する。
The empty address detector 203 outputs a 32-bit detection signal indicating an empty address to one end of the address selector 206 and the address selector 207, and also indicates that there is no empty address in the CAM 20.
When packets are stored in all addresses of 1, a full signal FL indicating this is output to the control unit 118.

なお、空アドレスを示す検出信号はCAM 201の3
2個のアドレスに対応する32ビツトの出力であり、そ
の空アドレスのビットだけが“H”となっている。アド
レスセレクタ206及び同207には、マツチラインか
らの判定信号も与えられる。
Note that the detection signal indicating an empty address is 3 of the CAM 201.
It is a 32-bit output corresponding to two addresses, and only the bit of the empty address is "H". The address selectors 206 and 207 are also given a determination signal from the match line.

追出アドレス発生器204は、連想メモリ112内に格
納されている全パケットを出力するための追出アドレス
を発生する。追出アドレス発生器204は、制御部11
8から出力される信号Tdのタイミングで、32アドレ
スの各々を示す追出アドレスを順に生成し、アドレスセ
レクタ206及び207に与える。
The eviction address generator 204 generates eviction addresses for outputting all packets stored in the associative memory 112. The expulsion address generator 204 is the controller 11
At the timing of the signal Td output from 8, a eviction address representing each of the 32 addresses is generated in order and given to address selectors 206 and 207.

アドレスセレクタ206では、切換端子に与えられたリ
ードライト信号W/π及び連想メモ1月12内の全パケ
ットを出力するために制御部118から出力される追出
信号りに応じて、追出信号りが“H”のときには追出ア
ドレスを、追出信号りが“L”でありリードサイクルW
/π=“L”のときは固定信号“0”を、また追出信号
りが“L”でありライトサイクルW/R= “H”のと
き、空アドレス検出器203の検出信号を各々選択する
The address selector 206 generates a eviction signal according to the read/write signal W/π applied to the switching terminal and the eviction signal output from the control unit 118 to output all packets in the associative memo January 12. When the eviction signal is "H", the eviction address is set, and when the eviction signal is "L", the read cycle W is set.
When /π = “L”, select the fixed signal “0”, and when the eviction signal is “L” and write cycle W/R = “H”, select the detection signal of the empty address detector 203. do.

また追出信号りは後述する出力セレクタ117にも出力
される。
The eviction signal is also output to an output selector 117, which will be described later.

アドレスセレクタ207では、切換端子に与えられたリ
ードライト信号W/R及び制御部118により入力され
る連想メモリ112内の全パケットを出力するための追
出信号りに応じて、追出信号りが“H”のときには追出
アドレスを、追出信号りがL″でありリードサイクルW
/π=″L”のときは判定信号を、また追出信号りが“
L”でありライトサイクルW/π=“H”のとき空アド
レス検出器203の検出信号を各々選択する。
The address selector 207 outputs a eviction signal according to the read/write signal W/R applied to the switching terminal and the eviction signal inputted by the control unit 118 for outputting all packets in the associative memory 112. When it is “H”, the eviction address is read, and when the eviction signal is “L”, the read cycle is W.
When /π=“L”, the judgment signal and the expulsion signal are “
When the write cycle W/π=“H”, the detection signal of the empty address detector 203 is selected.

RA門202は、オペランドデータ00118ビツト、
オペレーションコードOC7ビノト及びセレクションコ
ードSC7ビノトの合計32ビツトを格納するものであ
り、32ビツト×32アドレスの容量となっている。リ
ードサイクルでは、アドレスセレクタ207から入力さ
れるアドレスのデータ32ビツトがCAM201 のデ
ータ30ビツトと共にデータラッチ113に出力される
。即ち、CAM 201から出力される判定信号32ビ
ツトと合計94ビツトのデータがデータラッチ113に
出力される。一方、ライトサイクルではアドレスセレク
タ207の入力されるアドレスに従ってデータラッチ1
11から与えられた入力パケットの内容が格納される。
The RA gate 202 receives operand data 00118 bits,
It stores a total of 32 bits, including an operation code OC7 bit and a selection code SC7 bit, and has a capacity of 32 bits x 32 addresses. In the read cycle, 32 bits of address data input from the address selector 207 are output to the data latch 113 together with 30 bits of data from the CAM 201. That is, a 32-bit judgment signal output from the CAM 201 and a total of 94 bits of data are output to the data latch 113. On the other hand, in the write cycle, the data latch 1
The contents of the input packet given from 11 are stored.

またライトサイクルでは、CAM 201がヒツトした
場合及び追出信号りの制御によってパケットが追い出さ
れた場合は、出力されたアドレスのプレゼンスビ・ント
PBがクリアされる。
Further, in the write cycle, when the CAM 201 hits or when the packet is evicted by control of the ejection signal, the presence bit PB of the output address is cleared.

第1図において113はデータラッチであり、連想メモ
リ112より出力された92ビツトのデータが信号TI
= “H”でラッチされる。94ビツトのうち・判定信
号32ビツトはヒツト検出に、それ以外の62ビツトは
出力セレクタ117に出力される。オペランドデータ1
0D1の18ビツトは同時にデータラッチ115にも出
力される。
In FIG. 1, 113 is a data latch, and the 92-bit data output from the associative memory 112 is applied to the signal TI.
= latched at “H”. Of the 94 bits, 32 bits of the judgment signal are used for hit detection, and the other 62 bits are output to the output selector 117. Operand data 1
The 18 bits of 0D1 are also output to data latch 115 at the same time.

ヒツト検出器114はCAM 201からの32本のマ
ンチラインの反転信号をモニタし、その中の1ビツトで
も“H”に立ち上がったものがあった場合は(=CAM
 201がヒツトすれば)、ヒツト信号旧Tを制御部1
18に与える。
The hit detector 114 monitors the inverted signals of the 32 munch lines from the CAM 201, and if even 1 bit among them rises to "H", the
201), the hit signal old T is sent to the control unit 1.
Give to 18.

データ対形成器116は、データラッチ113を介して
連想メモマ月12から出力されたオペランドデータ10
01が一端に入力されると共に、他端にはデータラッチ
111からの63ビツトの入力されたパケットのデータ
が与えられる。そして2つのデータがマージされ、2つ
のオペランドデータ001 、002を含む81ビツト
のパケットが形成される。このとき2項演算の減算命令
の如くオペランドの順序関係が重要なものがあるので、
選択されたオペランドデータと入力されたオペランドデ
ータとは正しく左または右のオペランドとして配置され
る必要がある。
The data pair generator 116 outputs the operand data 10 outputted from the associative memory 12 via the data latch 113.
01 is input to one end, and the 63-bit input packet data from the data latch 111 is applied to the other end. The two data are then merged to form an 81-bit packet containing two operand data 001 and 002. At this time, there are cases where the order of the operands is important, such as the subtraction instruction in binary operations, so
The selected operand data and the input operand data must be correctly placed as left or right operands.

第4図はデータ対形成器116の構成を示すブロック図
である。データ対形成器116は2つのデータセレクタ
501,502からなり、各々の切換端子には入力され
たパケットの左/右データ選択ビットSLでその状態を
示すセレクタ制′4B信号L/πが与えられる。データ
セレクタ501のA端子及びデータセレクタ502のB
端子にはデータラッチ111からの入力されたパケット
のオペランドデータが各々与えられ、データセレクタ5
01のB端子及びデータセレクタ502のA端子にはデ
ータラッチ115より格納されたオペランドデータが与
えられる。
FIG. 4 is a block diagram showing the configuration of the data pair former 116. The data pair forming unit 116 consists of two data selectors 501 and 502, and each switching terminal is given a selector-controlled '4B signal L/π that indicates its status using the left/right data selection bit SL of the input packet. . A terminal of data selector 501 and B of data selector 502
The operand data of the input packet from the data latch 111 is given to each terminal, and the data selector 5
The operand data stored from the data latch 115 is given to the B terminal of 01 and the A terminal of the data selector 502.

そして入力されたパケットの左/右データ選択ビットS
Lがセレクタ制御信号L/πとして入力され、L/πが
“1″のときは夫々のデータセレクタ501゜502の
A端子に与えられたオペランドデータが、またL/πが
“0”のときは夫々のデータセレクタ501 、502
のB端子に与えられたオペランドデータが選択され、デ
ータセレクタ501からの選択出力が左オペランド(オ
ペランドデータ1)となり、データセレクタ502から
の選択出力が右オペランド(オペランドデータ2)とな
り、それらと入力されたパケットのオペランドデータを
除く他のデータとがマージされ出力セレクタ117に入
力される。セレクタ制御信号L/πは、入力パケットが
1オペランド命令の場合又は連想メモリ112が満杯で
あり、入力パケットがそのまま出力される場合は入力パ
ケットの左/右データ選択ピッ)SLに拘らず制御部1
18により強制的にセレクタ制御信号L/πは“1”と
されるため入力パケットがそのまま出力される。
and the left/right data selection bit S of the input packet
L is input as the selector control signal L/π, and when L/π is “1”, the operand data given to the A terminal of each data selector 501 and 502 is input, and when L/π is “0”, are the respective data selectors 501 and 502
The operand data given to the B terminal of is selected, the selected output from data selector 501 becomes the left operand (operand data 1), the selected output from data selector 502 becomes the right operand (operand data 2), The data other than the operand data of the packet is merged with the other data and is input to the output selector 117. When the input packet is a one-operand instruction, or when the associative memory 112 is full and the input packet is output as is, the selector control signal L/π is used to select the left/right data of the input packet. 1
Since the selector control signal L/π is forced to "1" by 18, the input packet is output as is.

出力セレクタ117は、連想メモ1月12から追い出さ
れたパケットを出力するか、発火したパケット、1オペ
ランド命令を含む入力パケット又は、スルーパケットを
出力するかを選択するものである。この選択は制御部1
18から与えられた追出信号りによって選択される。こ
の追出信号りは、制御部118によって巡回パイプライ
ン中の全パケットが発火しなかったことを検出した場合
に“H”となる。
The output selector 117 selects whether to output a packet ejected from the associative memo January 12, a fired packet, an input packet containing a one-operand instruction, or a through packet. This selection is made by the control unit 1.
The selection is made according to the eviction signal given from 18. This eviction signal becomes "H" when the control unit 118 detects that all packets in the cyclic pipeline are not fired.

制御部118には、2つのレジスタ、即ち印カウンタ1
19と発火フラグレジスタ120とが設けられている。
The control unit 118 includes two registers, namely a mark counter 1
19 and an firing flag register 120 are provided.

印カウンタ119は、印ビットMBが”1”のパケット
 (以下印付きパケットという)が巡回パイプライン上
にいくつあるかをカウントするレジスタであり、発火フ
ラグレジスタ120は直近に出力された印付きパケット
を出力してから発火が起こった場合には“1”が、起こ
っていない場合には“O”が保持されている。また、制
御部118は印ビットMB、入力パケットの左/右選択
ビ・ノドSL、入力パケットが2オペランド命令か1オ
ペランド命令かの別を示すFC処理選択ビットの状態で
定まる入力選択信号FC(2入力命令FC=1.1入力
命令FC=0)、ヒツト信号旧T及び満杯信号PLが与
えられる。また、パイプライン前段の処理が終了し、前
段の出力データをデータラッチ111にラッチしたこと
を示す信号CO、パイプライン次段の処理が終了し、次
段に発火処理部101の結果パケットを出力してもよい
という許可信号■が与えられる。これらの入力信号を判
断して追出信号D、リードライト信号W/R、セット信
号S/π、データ対形成器116に出力するセレクタ制
御信号し/R,出力パケットのスルービットT)l及ヒ
印ビットMB、データ出力信号CI及びデータ入力許可
信号■を出力する。
The mark counter 119 is a register that counts the number of packets whose mark bit MB is "1" (hereinafter referred to as "marked packets") on the cyclic pipeline, and the firing flag register 120 is a register that counts the number of packets whose mark bit MB is "1" (hereinafter referred to as "marked packets"). If firing occurs after the output of , "1" is held, and if no firing occurs, "O" is held. The control unit 118 also controls the input selection signal FC (which is determined by the mark bit MB, the left/right selection bit/node SL of the input packet, and the FC processing selection bit indicating whether the input packet is a 2-operand instruction or a 1-operand instruction). Two input commands FC=1.1 input command FC=0), a hit signal old T and a full signal PL are given. In addition, a signal CO indicating that the processing at the previous stage of the pipeline has been completed and the output data of the previous stage has been latched into the data latch 111, and the processing at the next stage of the pipeline has been completed and the result packet of the firing processing unit 101 is output to the next stage. A permission signal (■) is given indicating that it is OK to do so. These input signals are judged to generate an eviction signal D, a read/write signal W/R, a set signal S/π, a selector control signal /R to be output to the data pair former 116, and a through bit T)l of the output packet. It outputs a hit mark bit MB, a data output signal CI, and a data input permission signal ■.

また処理のタイミングを決定するタイミング信号Tl、
T2.Tdの出力も行う。
Also, a timing signal Tl that determines the timing of processing,
T2. It also outputs Td.

次に上記の如く構成されたこの発明のデータ駆動形計算
機の発火処理部101の動作について説明する。なお連
想メモリ112にはデータ対を待つ複数のパケットが格
納されているとする。第5図は発火処理部101の概略
動作を説明するフローチャートである。
Next, the operation of the firing processing section 101 of the data-driven computer of the present invention configured as described above will be explained. It is assumed that the associative memory 112 stores a plurality of packets waiting for data pairs. FIG. 5 is a flowchart illustrating the general operation of the firing processing section 101.

パケットが入力されると入力パケットの印ビットMBが
制御部118に入力され、印ビットMBが“1″かどう
かが判断され(Sl)、印ピッ)MBが”ビの場合、こ
のパケットは前回発火処理部101で処理が行われたと
き、連想メモリ112中に行き先ノード番号NNとカラ
ー/世代番号DNが一致するパケットは存在しなかった
が、連想メモリ112が満杯であったため入力されたパ
ケットがそのままスルーパケットとして出力されたこと
を示す。このため、制御部118では、前回このパケッ
トが発火処理部101から出力されてから巡回パイプラ
イン中の全パケットが発火しなかったかどうかを印カウ
ンタ119及び発火フラグレジスタ120により検出す
る必要がある。そこでまず、印付きパケットが発火処理
部101に入力され、巡回パイプライン上から印付きパ
ケットがひとつ減ったので印カウンタ119をデクリメ
ントする(S2)。次に印カウンタ119の内容をチエ
ツクする(S3)。この印カウンタ119が“0”以外
の場合は、この入力された印付きパケットが前回出力さ
れてから発火が起こり1度は連想メモ1月12に空がで
きたが、また連想メモ1月12への新たな格納により連
想メモ1月12が再度満杯状態となり、新たなスルーパ
ケットが生成され印付きパケットとされたことを示して
いる。即ちこの印付きパケット出力以降に発火したパケ
ットが存在したことを示しているので、巡回パイプライ
ン上の全パケットが発火しなかったとは判断できず、通
常の処理S6へと処理は移る。印カウンタ119が“0
”の場合は、さらに発火フラグの内容をチエツクする(
S4)。発火フラグが“0”の場合、即ち最終に出力さ
れた印付きパケット以降発火が行われなかった場合、入
力された印付きパケットが前回発火処理部101から出
力されてから発火が起こらなかったことを示している。
When a packet is input, the mark bit MB of the input packet is input to the control unit 118, and it is determined whether the mark bit MB is "1" (Sl). If the mark bit MB is "B", this packet is the previous packet. When the processing was performed by the firing processing unit 101, there was no packet whose destination node number NN and color/generation number DN matched in the associative memory 112, but since the associative memory 112 was full, the input packet is output as a through packet. Therefore, the control unit 118 uses the mark counter 119 to check whether all packets in the cyclic pipeline have not fired since this packet was output from the firing processing unit 101 last time. and needs to be detected by the firing flag register 120. First, a marked packet is input to the firing processing unit 101, and since the number of marked packets has decreased by one from the cyclic pipeline, the marking counter 119 is decremented (S2). Next, the content of the mark counter 119 is checked (S3).If the mark counter 119 is other than "0", firing occurs since the input marked packet was output last time, and once the associative memo January 12 became empty, but due to new storage in the associative memo January 12, the associative memo January 12 became full again, and a new through packet was generated and marked as a packet. In other words, since this indicates that there was a packet that fired after the output of this marked packet, it cannot be determined that all packets on the cyclic pipeline have not fired, and the process moves to normal processing S6. 119 is “0”
”, further check the contents of the firing flag (
S4). If the firing flag is “0”, that is, if firing has not occurred since the last marked packet output, it means that firing has not occurred since the input marked packet was output from the firing processing unit 101 last time. It shows.

即ち、前回この入力パケットが発火処理部101から出
力されたとき、巡回パイプライン上に存在した全パケッ
トが発火せず発火処理部101を通過したことがこのこ
とにより検出され、そこで連想メモ1月12内に格納さ
れている全パケットを巡回パイプライン上に出力する(
S5)。連想メモリ112内に格納されたパケットの出
力は、まず追出信号りを“H”として、連想メモリ11
2からの出力が出力セレクタ117で出力されるように
する。その後タイミング信号Tdにより連想メモリ11
2内の全アドレスを次々にアドレスセレクタ206 、
207に入力し、全アドレスのパケットをデータラッチ
113に出力する。その後パイプラインの次段の入力許
可信号■に従って出力セレクタ117を介して全アドレ
スのパケットを順に出力していく。連想メモ1月12内
の全パテ・ノドが出力された後、ステップS6以降の通
常の入力パケットに対する処理を行う。
That is, when this input packet was output from the firing processing unit 101 last time, it is detected that all the packets existing on the circular pipeline passed through the firing processing unit 101 without firing, and the associative memo January Output all packets stored in 12 onto the cyclic pipeline (
S5). The output of the packet stored in the associative memory 112 is first outputted to the associative memory 11 by setting the eviction signal to "H".
The output from 2 is outputted by the output selector 117. After that, the content addressable memory 11 is activated by the timing signal Td.
Address selector 206 sequentially selects all addresses within 2,
207 and outputs packets of all addresses to the data latch 113. Thereafter, packets of all addresses are sequentially outputted via the output selector 117 in accordance with the input permission signal (2) of the next stage of the pipeline. After all putty/nods in the associative memo January 12 are output, normal input packets are processed from step S6 onwards.

ヒツト検出器からの旧T信号により連想メモリ112内
に入力パケットの識別子と同一の識別子をもつパケット
があるかどうかを判断する(S6)。旧T信号が“1”
、即ち連想メモ1月12内に大カパケ・ノドの識別子と
同一の識別子をもつパケットが存在した場合、制御部1
18内の発火フラグを“l”にセットしく5IO) 、
入力パケットと連想メモ1月12内のデータとをマージ
し、発火パケットを出力セレクタ117を介して出力す
る(Sll)。一方ヒントしなかった場合、連想メモ1
月12からの満杯信号FLによって連想メモリ112が
満杯かどうかが判断される(S7)。連想メモリ112
が満杯でない場合は1、入力パケットが連想メモリ11
2に格納される(S14)連想メモ1月12が満杯であ
った場合は、スルーパケットとして出力するが、このと
き印付きパケットとするかどうかの判断が行われる(S
8 、S9)。
Based on the old T signal from the hit detector, it is determined whether there is a packet with the same identifier as the input packet in the associative memory 112 (S6). Old T signal is “1”
, that is, if there is a packet with the same identifier as that of the large Kapake Nodo in the associative memo January 12, the control unit 1
Please set the firing flag in 18 to "l" (5IO),
The input packet and the data in the associative memo January 12 are merged, and the firing packet is output via the output selector 117 (Sll). On the other hand, if you do not give a hint, associative memo 1
It is determined whether the associative memory 112 is full based on the full signal FL from month 12 (S7). Associative memory 112
1 if is not full, the input packet is in content addressable memory 11
If the associative memo January 12 stored in 2 (S14) is full, it will be output as a through packet, but at this time a judgment is made as to whether or not it will be a marked packet (S14).
8, S9).

まず、現在印付きパケットが巡回パイプライン上にはな
く、初めてのスルーパケットの場合、即ち印カウンタ1
19が“O”の場合はステップS12に進み、発火フラ
グレジスタ120をリセットし、印カウンタ119をイ
ンクリメントし、スルービットTH及び印ビットMBを
セットして、印付きパケットとして出力される。印カウ
ンタ119が0”以外、即ちすでに印付きパケットが巡
回パイプライン上に出力されている場合には、最後に印
付きパケット出力されてから発火が起こったか否かがス
テップS9で発火フラグをチエツクすることで判断され
、発火が起こっていない場合は、そのままスルーピット
T)Iをセットして出力する。発火が起こっている場合
は、最後に印付きパケットが出力されてから発火が起こ
りさらに再度、連想メモ1月12が満杯となり、スルー
パケットが生成されたと考えられるので、印カウンタ1
19をインクリメントし、発火フラグをリセットし、ス
ルーピットTO及び印ビットMBをセットして印付きパ
ケットとして出力する。
First, if the currently marked packet is not on the circular pipeline and is the first through packet, that is, the marked counter 1
If 19 is "O", the process advances to step S12, where the firing flag register 120 is reset, the mark counter 119 is incremented, the through bit TH and the mark bit MB are set, and the packet is output as a marked packet. If the mark counter 119 is other than 0'', that is, a marked packet has already been output to the circular pipeline, the firing flag is checked in step S9 to determine whether firing has occurred since the last marked packet was output. If firing is not occurring, set the through pit T)I and output.If firing is occurring, firing occurs after the last marked packet is output, and then again. , it is thought that the associative memo January 12 is full and a through packet is generated, so the mark counter 1
19 is incremented, the firing flag is reset, the through pit TO and mark bit MB are set, and the packet is output as a marked packet.

第6図は本発明装置の動作サイクルを説明するタイミン
グチャートであり、特に巡回パイプライン上の全パケッ
トが発火せずに発火処理部101を通過したことを検出
し、連想メモ1月12内の全パケットを出力する場合の
タイミングチャートである。信号COが“H”のタイミ
ングで入力パケットがデータラッチ111にランチされ
る。制御部118によってこの入力パケットのデータ及
び制御部118内の印カウンタ119、発火フラグレジ
スタ120の情報から巡回パイプライン上の全パケット
が発火せずに発火処理部101を通過したことを検出す
ると、まず追出信号りが“H”となる。これにより、出
力セレクタ117からの出力は連想メモリ112内部か
らの出力が選択される。最初、信号W/πは“L″であ
り、リードサイクルである。そののち制御部118から
信号Tdが連想メモリ112の追出アドレス発生器20
4に与えられ、信号Tdが“H”のタイミングで追出ア
ドレスがひとつ生成され、アドレスセレクタ206.2
07に与えられる。アドレスセレクタにも追出信号りが
入力されており、これにより追出アドレスが選択される
。追出アドレスの発生からアドレス選択及び連想メモリ
112からの出力が決定するまでの遅延ののち信号Tl
が“H”とされ、連想メモリ112からの出力はデータ
ラッチ113にラッチされる。データがランチされたの
ち信号W/πは“H” となり、出力されたアドレスの
プレゼンスビットPBがリセットされる。またタイミン
グ信号T1の“H”及びパイプライン次段からのデータ
入力許可信号■の入力が共に確認されると、データ出力
信号C1が出力され、データラッチ113にラッチされ
ていたパケットは出力セレクタ117を介して出力され
る。この動作を32回繰り返すことで連想メモリ112
内の全パケットが巡回パイプライン上に出力される。そ
の後、リードサイクル、処理サイクル、ライトサイクル
を経て処理を終了する。処理が終了するとパイプライン
前段に入力許可信号■が出力され次のパケットの入力が
促される。
FIG. 6 is a timing chart explaining the operation cycle of the device of the present invention. In particular, when it is detected that all packets on the circular pipeline have passed through the firing processing unit 101 without firing, It is a timing chart when all packets are output. An input packet is launched into the data latch 111 at the timing when the signal CO is "H". When the control unit 118 detects from the data of this input packet and the information of the mark counter 119 and firing flag register 120 in the control unit 118 that all packets on the cyclic pipeline have passed through the firing processing unit 101 without firing, First, the eviction signal becomes "H". As a result, the output from the content addressable memory 112 is selected as the output from the output selector 117. Initially, the signal W/π is "L", which is a read cycle. After that, a signal Td is sent from the control unit 118 to the eviction address generator 20 of the associative memory 112.
4, one eviction address is generated at the timing when the signal Td is "H", and the address selector 206.2
Given on 07. The eviction signal is also input to the address selector, and the eviction address is thereby selected. After a delay from generation of the evicted address to address selection and determination of the output from the associative memory 112, the signal Tl
is set to "H", and the output from the associative memory 112 is latched into the data latch 113. After the data is launched, the signal W/π becomes "H" and the presence bit PB of the output address is reset. Further, when both the "H" of the timing signal T1 and the input of the data input permission signal (■) from the next stage of the pipeline are confirmed, the data output signal C1 is output, and the packet latched in the data latch 113 is transferred to the output selector 117. Output via . By repeating this operation 32 times, the associative memory 112
All packets within are output onto the cyclic pipeline. Thereafter, the process is completed through a read cycle, a processing cycle, and a write cycle. When the processing is completed, an input permission signal (■) is output to the previous stage of the pipeline, prompting input of the next packet.

なお、上述の実施例ではオペランドの待合わせメモリと
してパケットの識別子全体をキーとじて待合わせを行う
連想メモ1月12を用いたが、本発明はこれに限るもの
ではなく、識別子の一部、又は識別子からなんらかの演
算によって生成された数をアドレスとしてパケットを待
合わせメモリに格納しておき、同じアドレスとなるパケ
ットに対してだけ発火すべきパケットであるかを全識別
子を比較することで発火させるかどうかを決定するハツ
シュメモリを待合わせメモリとする構成でもよい。
In the above-described embodiment, an associative memo January 12, which uses the entire identifier of the packet as a key to perform the waiting operation, was used as the operand waiting memory, but the present invention is not limited to this, and part of the identifier, Alternatively, the packet is stored in the waiting memory using a number generated by some calculation from the identifier as an address, and is fired by comparing all identifiers to see if it is a packet that should be fired only for packets with the same address. The configuration may be such that the hash memory that determines whether or not the request is made is a waiting memory.

また、待合わせメモリを通過したパケットが再び待合わ
せメモリに戻ってきたことの検出をパケットに印を付け
ることで実現したが、巡回パイプラインの段数以上のパ
ケットが待合わせメモリを通過したことを検出すること
で実行の停止状態を検出してもよい。
In addition, the detection that a packet that has passed through the waiting memory has returned to the waiting memory is achieved by marking the packet, but it is possible to detect that a packet that has passed through the waiting memory has returned to the waiting memory. The halted state of execution may be detected by detecting this.

さらに、待合わせメモリの全パケット入れ換えとして、
全パケットを出力した後にパケットの入力を許す例を示
したが、パケットを一つ出力しては一つ入力するという
方法で入れ換えを実現することもできる。
Furthermore, as a replacement of all packets in the waiting memory,
Although an example has been shown in which packets are allowed to be input after all packets have been output, switching can also be achieved by outputting one packet and then inputting one packet.

〔発明の効果〕〔Effect of the invention〕

以上説明したように、この発明によれば、待合わせメモ
リに先に実行すべきパケットが格納できない場合が生じ
、データ処理が停止状態となるのを検出するため、待合
わせメモリを通過したパケ・7トが再度待合わせメモリ
に戻ってくるまでに発火処理がなされたか否かを検出し
、発火処理がなされなかったときは、何ら状況が変化し
ておらず、停止状態となる虞があるので、待合わせメモ
リの全パケットを入れ換えるようにし、停止状態の検出
及び待合わせメモリの全パケットの入れ換えを繰り返す
ことで先に実行すべきパケットがいつか必ず待合わせメ
モリに格納されて実行が進み実行の停止が回避できる等
価れた効果を奏する。
As explained above, according to the present invention, in order to detect that a packet to be executed first cannot be stored in the waiting memory and the data processing is stopped, the packet that has passed through the waiting memory is 7. It is detected whether or not the firing process has been performed before the computer returns to the waiting memory again. If the firing process has not been performed, the situation has not changed at all and there is a possibility that the system will be in a stopped state. , all the packets in the waiting memory are replaced, and by repeating the detection of the stop state and the replacement of all the packets in the waiting memory, the packet to be executed first will be stored in the waiting memory at some point, and the execution will proceed. This provides an equivalent effect of avoiding stoppage.

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

第1図は本発明のデータ駆動形計算機の構成図、第2図
は本発明のデータ駆動形計算機上を動作するパケット構
成を示す図、第3図は本発明のデータ駆動形計算機の待
合わせメモリの構成を示すブロック図、第4図は本発明
のデータ駆動形計算機のデータ対形成器の構成を示すブ
ロック図、第5図は本発明の処理の流れを示したフロー
チャート、第6図は本発明のデータ駆動形計算機の発火
処理部のタイミングチャート、第7図は従来例のデータ
駆動形計算機における処理の概念図、第8図はパケット
の一例の構成を示すビットマツプ図、第9図はハツシュ
メモリの一例の構成を示すブロック図、第10図(a)
はデータフローグラフの一例を示す図、第10図(b)
は従来例のメモリアドレスとノード番号との関係を示す
図である。 101・・・発火処理部 102・・・ALU  10
3・・・プログラムメモリ 112・・・連想メモリ 
117・・・出力セレクタ 118・・・制御部 20
4・・・追出アドレス発生器なお、図中、同一符号は同
一、又は相当部分を示す。
FIG. 1 is a block diagram of a data-driven computer according to the present invention, FIG. 2 is a diagram showing a packet configuration operating on the data-driven computer according to the present invention, and FIG. 3 is a diagram showing the configuration of a data-driven computer according to the present invention. FIG. 4 is a block diagram showing the structure of the memory, FIG. 4 is a block diagram showing the structure of the data pair generator of the data-driven computer of the present invention, FIG. 5 is a flowchart showing the process flow of the present invention, and FIG. FIG. 7 is a conceptual diagram of processing in a conventional data-driven computer; FIG. 8 is a bitmap diagram showing the structure of an example of a packet; FIG. Block diagram showing the configuration of an example of hash memory, FIG. 10(a)
is a diagram showing an example of a data flow graph, FIG. 10(b)
is a diagram showing the relationship between memory addresses and node numbers in a conventional example. 101... Ignition processing unit 102... ALU 10
3...Program memory 112...Associative memory
117... Output selector 118... Control section 20
4... Eviction address generator In the drawings, the same reference numerals indicate the same or corresponding parts.

Claims (1)

【特許請求の範囲】[Claims] (1)少なくとも実行すべき演算内容を示す命令コード
と、次に実行すべき命令の場所を示す行先ノード番号と
を含む識別情報及びデータを有するパケットを格納し、
格納されたパケットと入力されたパケットとの少なくと
も行先ノード番号が一致する2つのパケットを検出する
1又は複数の待合わせメモリを有し、一致した2つのパ
ケットを合体する発火処理を行う発火処理部を含む複数
の処理部を巡回パイプライン構造になしてあるデータ駆
動形計算機において、 入力されたパケットがいずれかの待合わせ メモリに格納されずに前記発火処理部から出力されてか
ら巡回パイプラインを介して再度格納されなかった待合
わせメモリに入力されるまでに、前記巡回パイプライン
中の全パケットが前記発火処理部で発火処理されたか否
かを検出する手段と、 発火処理が検出されなかったとき、前記待 合わせメモリの内容を全て入換える手段と を備えることを特徴とするデータ駆動形計 算機。
(1) storing a packet having identification information and data including at least an instruction code indicating the content of the operation to be executed and a destination node number indicating the location of the next instruction to be executed;
A firing processing unit that includes one or more waiting memories for detecting two packets whose destination node numbers match at least the stored packet and the input packet, and performs firing processing to combine the two matched packets. In a data-driven computer that has a cyclic pipeline structure with multiple processing units including means for detecting whether or not all packets in the cyclic pipeline have been fired in the firing processing unit before being inputted to the waiting memory that were not stored again through the firing processing unit; 1. A data-driven computer comprising: means for exchanging all the contents of the waiting memory at the time of the appointment.
JP2462090A 1990-02-02 1990-02-02 Data drive type computer Pending JPH03229381A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2462090A JPH03229381A (en) 1990-02-02 1990-02-02 Data drive type computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2462090A JPH03229381A (en) 1990-02-02 1990-02-02 Data drive type computer

Publications (1)

Publication Number Publication Date
JPH03229381A true JPH03229381A (en) 1991-10-11

Family

ID=12143194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2462090A Pending JPH03229381A (en) 1990-02-02 1990-02-02 Data drive type computer

Country Status (1)

Country Link
JP (1) JPH03229381A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404558A (en) * 1992-02-17 1995-04-04 Sharp Kabushiki Kaisha Data driven type information processor having a plurality of memory banks
JP2012515387A (en) * 2009-01-16 2012-07-05 リーチ、スティーブン、フレデリック、ナイト Processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404558A (en) * 1992-02-17 1995-04-04 Sharp Kabushiki Kaisha Data driven type information processor having a plurality of memory banks
JP2012515387A (en) * 2009-01-16 2012-07-05 リーチ、スティーブン、フレデリック、ナイト Processor
US10049079B2 (en) 2009-01-16 2018-08-14 Stephen Leach System and method for determining whether to modify a message for rerouting upon receipt at a current target processor

Similar Documents

Publication Publication Date Title
JP2668438B2 (en) Data retrieval device
US5274790A (en) Cache memory apparatus having a plurality of accessibility ports
US5148538A (en) Translation look ahead based cache access
JP3602542B2 (en) Apparatus and method for improving branch prediction accuracy in superscalar microprocessor
KR880002660B1 (en) Central processor
US4942520A (en) Method and apparatus for indexing, accessing and updating a memory
US4551799A (en) Verification of real page numbers of stack stored prefetched instructions from instruction cache
US6963964B2 (en) Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses
KR100555997B1 (en) A memory engine for the inspection and manipulation of data
US20050289299A1 (en) Digital data processing apparatus having multi-level register file
JPS62106545A (en) Results forecasting apparatus for branch command
KR100346515B1 (en) Temporary pipeline register file for a superpipe lined superscalar processor
JP2006509306A (en) Cell engine for cross-referencing data processing systems to related applications
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
JPH02208729A (en) Control of apparatus having multiple functions by parallel operation in microcode type execution apparatus
WO1997030395A1 (en) Multiport memory and data processor making access to it
EP0394624A2 (en) Multiple sequence processor system
US4761731A (en) Look-ahead instruction fetch control for a cache memory
TWI244037B (en) Processing unit for a computer system and operating method thereof
JP2001195304A (en) Cache storage device
JP3727244B2 (en) Cache system control circuit
JP3725547B2 (en) Limited run branch prediction
JPH03229381A (en) Data drive type computer
US7036003B1 (en) Instruction processing device and method for controlling branch instruction accompanied by mode change
US7069386B2 (en) Associative memory device