JPH0528290A - Data driven type computer - Google Patents
Data driven type computerInfo
- Publication number
- JPH0528290A JPH0528290A JP20403291A JP20403291A JPH0528290A JP H0528290 A JPH0528290 A JP H0528290A JP 20403291 A JP20403291 A JP 20403291A JP 20403291 A JP20403291 A JP 20403291A JP H0528290 A JPH0528290 A JP H0528290A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- hash
- processing unit
- memory
- address
- 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
Links
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 オーバーフローパケットによる巡回パイプラ
インの不要な混雑を避けることができ、オーバーフロー
パケットによる混雑やハッシュ衝突に起因する実行停止
を回避することができるデータ駆動形計算機を得る。
【構成】 待ち合わせメモリとしてハッシュメモリを有
し、このハッシュメモリの各アドレスに当該ハッシュア
ドレスでハッシュ衝突が生じオーバーフローパケットを
出力した時にセットするOVフラグを設けた発火処理部
101を備えるとともに、待ち合わせメモリとして前記
発火処理部101から出力されたオーバーフローパケッ
トを前記ハッシュメモリと同一のハッシュ関数で、かつ
チェイン接続を用いて格納するハッシュメモリを有する
拡張発火処理器106を備える。パケットは発火処理部
101か拡張発火処理器106の何れかに格納され、O
Vフラグがセットされているアドレスに関しては発火処
理部101と拡張発火処理器106の両方をアクセスす
る。
(57) [Summary] [Object] To obtain a data-driven computer capable of avoiding unnecessary congestion of a cyclic pipeline due to overflow packets, and avoiding congestion due to overflow packets and execution suspension due to hash collision. A queuing processing unit 101 is provided which has a hash memory as a queuing memory, and is provided with an OV flag which is set at each address of the hash memory when a hash collision occurs at the hash address and an overflow packet is output. The extended ignition processor 106 has a hash memory that stores the overflow packet output from the ignition processing unit 101 by using the same hash function as the hash memory and using a chain connection. The packet is stored in either the ignition processing unit 101 or the extended ignition processing unit 106, and
With respect to the address in which the V flag is set, both the firing processing unit 101 and the extended firing processing unit 106 are accessed.
Description
【0001】[0001]
【産業上の利用分野】本発明は、データの依存関係に基
づいて処理を駆動する方式のデータ駆動形計算機に係
り、特に巡回パイプライン構成で待ち合わせメモリのあ
ふれによる実行停止の回避に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data driven type computer which drives processing based on data dependency, and more particularly to avoiding execution suspension due to overflow of queuing memory in a cyclic pipeline configuration. ..
【0002】[0002]
【従来の技術】図16はデータ駆動形計算機におけるデ
ータ処理の概念図であり、2つのデータの加算が行われ
ている様子を示している。図において、“A”という値
を持ち“a”という識別子を付加されたパケット81が
発火処理部87に与えられると、この発火処理部87の
識別子フィールド比較部84は、同発火処理部87内の
待ち合わせメモリ85に新たに入力された前記パケット
81の識別子“a”と一致する識別子を持つパケットが
既に格納されているか否かを検索する。図16の例で
は、“B”という値を持ち、“a”という識別子を持つ
パケット82が既に格納されているので、このパケット
82が待ち合わせメモリ85から読み出され、入力され
たパケット81と共にデータ対形成部86に転送され
る。2. Description of the Related Art FIG. 16 is a conceptual diagram of data processing in a data driven computer and shows how two data are added. In the figure, when a packet 81 having a value of “A” and an identifier of “a” is given to the ignition processing unit 87, the identifier field comparison unit 84 of this ignition processing unit 87 causes the ignition processing unit 87 It is searched whether or not a packet having an identifier matching the identifier "a" of the newly input packet 81 is already stored in the waiting memory 85 of FIG. In the example of FIG. 16, since the packet 82 having the value “B” and the identifier “a” has already been stored, this packet 82 is read from the queuing memory 85, and the data together with the input packet 81 is read. It is transferred to the pair forming unit 86.
【0003】データ対形成部86はパケット81と82
とを合体し、“A”という値と“B”という値とに
“a”という識別子を付加したデータ83を形成し(こ
れを発火という)、データ処理部88に転送する。デー
タ処理部88は「A+B」の演算を実行する。この演算
結果は、図示しないプログラムメモリにおいて識別子の
一部をアドレスとしてメモリの読出しを行い、識別子の
更新を行った後、外部に出力されるか、または再度、発
火処理部87に入力される。これらの発火処理部87、
データ処理部88、及び図示しないプログラムメモリと
から巡回パイプラインが構成される。The data pair forming unit 86 includes packets 81 and 82.
Are combined to form data 83 in which the identifier “a” is added to the values “A” and “B” (this is called firing), and the data 83 is transferred to the data processing unit 88. The data processing unit 88 executes the operation of “A + B”. The calculation result is read out from the memory by using a part of the identifier as an address in a program memory (not shown), and after updating the identifier, is output to the outside or is input to the ignition processing unit 87 again. These ignition processing units 87,
A cyclic pipeline is composed of the data processing unit 88 and a program memory (not shown).
【0004】図16の例では、入力されたパケット81
と同じ識別子“a”を持つパケット82が待ち合わせメ
モリ85に既に格納されていたが、入力されたパケット
81と同じ識別子を持つパケットが待ち合わせメモリ8
5に格納されていなかった場合は、入力されたパケット
81は待ち合わせメモリ85に格納され、これと一致す
る識別子を持つパケットが入力されるまで待機させられ
る。In the example of FIG. 16, the input packet 81
Although the packet 82 having the same identifier “a” as the above is already stored in the queuing memory 85, the packet having the same identifier as the input packet 81 is queuing memory 8
If it is not stored in 5, the input packet 81 is stored in the queuing memory 85, and is made to wait until a packet having an identifier matching this is input.
【0005】このように発火処理部87はデータ駆動形
計算機において演算すべきパケットを検索し、識別子が
一致するパケットについてはこれを合体して出力する機
能を持っている。As described above, the ignition processing section 87 has a function of searching for a packet to be calculated in the data driven computer and coalescing and outputting the packet having the same identifier.
【0006】ところで、かかるデータ駆動形計算機にあ
っては、識別子のビット幅はプログラム空間のビット幅
に相当するため、数10ビットとなり、識別子毎にメモ
リの空間を割り当てると、メモリ容量が膨大なものにな
る。このため、従来から待ち合わせメモリ85に用いる
メモリとして、一定のルールのもとにビット幅を圧縮
(ハッシュ)し、これをメモリアドレスとして用いたメ
モリ,すなわちハッシュメモリを用いている。In such a data driven computer, since the bit width of the identifier corresponds to the bit width of the program space, it becomes several tens of bits, and if a memory space is allocated for each identifier, the memory capacity becomes enormous. It becomes a thing. For this reason, conventionally, as a memory used for the queuing memory 85, a memory that compresses (hashes) the bit width under a certain rule and uses this as a memory address, that is, a hash memory is used.
【0007】図17は入力パケットの一例の構成を示す
ビットマップ図、図18はハッシュメモリの一例の構成
を示すブロック図である。図17に示す入力パケット
は、演算対象となる18ビットのオペランドデータOD
と、演算内容を示すコードである7ビットのオペレーシ
ョンコードOCと、1ビットのプロセッサ選択ビットP
S,入力パケットが2入力命令か1入力命令かを示す1
ビットのFC処理選択ビット及び演算順に応じて演算場
所(ノード)の左または右に配置することを示す1ビッ
トの左右データ選択ビットを含み、各種選択を行う7ビ
ットのセレクションコードSCと、入力データの入力順
等の属性を示す9ビットのカラー/世代識別番号DN
と、演算が行われるべき場所を示す21ビットのノード
番号NNの合計62ビットから構成され、プロセッサ選
択ビットPSとカラー/世代識別番号DNとノード番号
NNとから31ビットの識別子が構成されている。但
し、プロセッサ選択ビットPSが“1”の場合、入力パ
ケットは処理後に出力されて他のプロセッサに送られる
ため、ノード番号NNの上位9ビットにプロセッサ番号
が格納されるようになっている。FIG. 17 is a bit map diagram showing an example of the structure of an input packet, and FIG. 18 is a block diagram showing an example of the structure of a hash memory. The input packet shown in FIG. 17 is the 18-bit operand data OD to be operated.
And a 7-bit operation code OC, which is a code indicating the operation content, and a 1-bit processor selection bit P
S, 1 indicating whether the input packet is a 2-input command or a 1-input command
A 7-bit selection code SC for performing various selections, including an FC processing selection bit of a bit and a 1-bit left / right data selection bit indicating that it is placed on the left or right of a calculation location (node) according to the calculation order, and input data -Bit color / generation identification number DN indicating attributes such as input order
And a 21-bit node number NN indicating a place where an operation should be performed, totaling 62 bits, and a 31-bit identifier is constituted by the processor selection bit PS, the color / generation identification number DN, and the node number NN. .. However, when the processor selection bit PS is "1", the input packet is output after processing and sent to another processor, so that the processor number is stored in the upper 9 bits of the node number NN.
【0008】図18に示すハッシュメモリ601は、ノ
ード番号NNの下位9ビットをハッシュアドレスとして
アクセスされるものであり、リード/ライトサイクルを
定めるリード/ライト信号W/バーR・H、書き込みデ
ータ及び各アドレスの有効/無効の区別を示すプレゼン
スビットPBの更新を行うセット/リセット信号S/バ
ーRが与えられる。The hash memory 601 shown in FIG. 18 is accessed by using the lower 9 bits of the node number NN as a hash address, and a read / write signal W / bar R · H that determines a read / write cycle, write data, and A set / reset signal S / bar R for updating the presence bit PB indicating the validity / invalidity of each address is applied.
【0009】このハッシュメモリ601に格納される書
き込みデータは18ビットのオペランドデータODと、
9ビットのカラー/世代識別番号DN及びノード番号N
Nの残り12ビットの計21ビットの識別子と、1ビッ
トのプロセッサ選択ビットPSの合計40ビットからな
っている。また、これとは別に、1ビットのプレゼンス
ビットPBが格納されるようになっており、合計で1ワ
ード41ビット構成となっている。また、そのアドレス
空間は29=512となっており、ハッシュメモリ60
1は41ビット/ワード×512の大きさを有してい
る。The write data stored in the hash memory 601 is 18-bit operand data OD,
9-bit color / generation identification number DN and node number N
The remaining 12 bits of N are 21 bits in total, and a total of 40 bits of 1 bit of processor selection bit PS. Separately from this, 1-bit presence bit PB is stored, and a total of 41 bits per word is formed. Further, the address space is 2 9 = 512, and the hash memory 60
1 has a size of 41 bits / word × 512.
【0010】[0010]
【発明が解決しようとする課題】従来のデータ駆動形計
算機は以上のように構成され、発火処理部の待ち合わせ
メモリ内に納まり切れなかったパケットは、巡回パイプ
ライン構成のループ内を無為に周回することで待ち合わ
せメモリに空きができるのを待っていた。この様なオー
バーフローパケットがループ内を周回するとパイプライ
ンが混雑する。また、オーバーフローパケット同志では
発火できないのでデッドロック,すなわち実行停止の虞
があった。また、ハッシュメモリ601を用いた場合、
ハッシュしたアドレス(ハッシュアドレス)をアクセス
した時に同一アドレスでの衝突,いわゆるハッシュ衝突
が起こる虞れがある。すなわち、ハッシュ衝突とは、識
別子の一部をハッシュアドレスとした場合に、ハッシュ
アドレスが既にハッシュメモリ601内に格納されたデ
ータと一致しても、残りの識別子が一致しないデータが
アクセスされた時、そのデータを記憶したアドレスが既
に占有されているために起こるものである。The conventional data-driven computer is configured as described above, and the packets that cannot be stored in the waiting memory of the ignition processing section circulate randomly in the loop of the cyclic pipeline configuration. I was waiting for a free space in the waiting memory. When such overflow packets circulate in the loop, the pipeline becomes crowded. Further, since the overflow packets cannot fire together, there is a risk of deadlock, that is, execution stop. Further, when the hash memory 601 is used,
When accessing a hashed address (hash address), collision at the same address, so-called hash collision, may occur. That is, hash collision means that when a part of the identifier is used as a hash address and the hash address matches the data already stored in the hash memory 601, the remaining data that does not match the identifier is accessed. , This occurs because the address storing the data is already occupied.
【0011】ここで、ハッシュメモリ601を図16の
待ち合わせメモリ85に適用したデータ駆動形計算機に
おいて、図19の(a)に示すデータフローグラフを実
行する場合について考察する。なお、説明を簡単にする
ために、ハッシュメモリ601はノード番号の下位2ビ
ットをハッシュアドレスとしてアクセスされ、4つのパ
ケットを格納するだけの容量(アドレス空間=22=
4)を持つものとして説明する。Now, let us consider a case where a data driven computer in which the hash memory 601 is applied to the waiting memory 85 of FIG. 16 executes the data flow graph shown in FIG. 19 (a). In order to simplify the description, the hash memory 601 is accessed by using the lower 2 bits of the node number as a hash address and has a capacity enough to store four packets (address space = 2 2 =
4) will be described.
【0012】まず、図19の(a)に示すように、この
データフローではノード数=8で構成され、6つの入力
パケットを演算処理するようになっているが、ここでは
特に、番号0のノードの左入力となる第2パケットが番
号7のノードの左入力にもなっている。ハッシュメモリ
601をアクセスするメモリアドレスは4メモリアドレ
スとなり、図19の(a)のデータフローグラフのノー
ド番号とメモリアドレスとは同図の(b)に示すような
対応関係となる。この時、図19の(a)において、番
号3(“011”)のノードの左入力となる第1パケッ
トと番号7(“111”)のノードの左入力となる第2
パケットとは、ノード番号の下位2ビットが同じ値
(“11”)であるので、ハッシュメモリ601の同一
メモリアドレス「3(“11”)」を指すことになる。First, as shown in FIG. 19A, the number of nodes is 8 in this data flow, and six input packets are arithmetically processed. The second packet that is the left input of the node is also the left input of the node of number 7. The memory addresses that access the hash memory 601 are four memory addresses, and the node numbers and memory addresses in the data flow graph of FIG. 19A have a correspondence relationship as shown in FIG. 19B. At this time, in FIG. 19A, the first packet that is the left input of the node of number 3 (“011”) and the second packet that is the left input of the node of number 7 (“111”).
Since the lower 2 bits of the node number have the same value (“11”), the packet indicates the same memory address “3 (“ 11 ”)” of the hash memory 601.
【0013】データ駆動形計算機の場合、一般にデータ
の到着順によらず同一の結果を得られることが保証され
ている。ところが、ハッシュメモリの容量が小さい時は
次のような問題が起こる。すなわち、第2パケットが第
1パケットよりも先にハッシュメモリ601に格納され
た場合、第2パケットは番号7のノードの右入力となる
第3パケットを待つことになるが、第3パケットは番号
3,5及び6のノードが実行されないと生成されない。
しかし、第2パケットが第1パケットより先にハッシュ
メモリ601に格納されてしまっているので、第2パケ
ットは待ち合わせの相手である第3パケットが何時まで
経っても現れないことになる。このため、第2パケット
がハッシュメモリ601内に格納されたままになり、第
1パケットと第2パケットがハッシュ衝突を引き起こし
た状態となる。この結果、第1パケットはハッシュメモ
リ601に格納されなくなり、従って、番号3のノード
の演算は永久に実行されず、結局、演算処理が停止して
しまうことになる。In the case of a data driven computer, it is generally guaranteed that the same result can be obtained regardless of the data arrival order. However, the following problems occur when the hash memory capacity is small. That is, when the second packet is stored in the hash memory 601 before the first packet, the second packet waits for the third packet which is the right input of the node with the number 7, but the third packet is the number. It will not be generated unless the nodes 3, 5 and 6 are executed.
However, since the second packet has been stored in the hash memory 601 prior to the first packet, the second packet will not appear even after the third packet, which is the waiting partner, does not appear. Therefore, the second packet remains stored in the hash memory 601, and the first packet and the second packet are in a state of causing a hash collision. As a result, the first packet is no longer stored in the hash memory 601, so that the calculation of the node with the number 3 is not executed permanently, and the calculation process is eventually stopped.
【0014】このようにハッシュメモリ601の容量よ
り大きなデータフローグラフを実行する場合、同一メモ
リアドレスを複数のノードが発火のために使用すること
があるので、パケットの到着順によってはハッシュ衝突
を引き起こし、データフローグラフの実行が途中で停止
してしまうという問題点があった。When a data flow graph larger than the capacity of the hash memory 601 is executed in this way, a plurality of nodes may use the same memory address for firing, so hash collision may occur depending on the order of arrival of packets. However, there was a problem that the execution of the data flow graph was stopped halfway.
【0015】そこで、本出願人はこのような問題を解決
する手段の1つとして、ハッシュメモリを用いた待ち合
わせメモリの他に、ハッシュメモリと同時にアクセスさ
れる小容量(32ワード)の連想メモリを設け、ハッシ
ュ衝突で待ち合わせメモリに格納しえなかったパケット
については連想メモリに格納し、ここで待ち合わせを行
うようにしたものを既に提案している。しかし、この連
想メモリを設ける構成においては、連想メモリの容量以
上のハッシュ衝突がおこると、上述したような問題と同
様の問題が起こる。これは、連想メモリの容量を大きく
することにより解決することが可能であるが、ハードウ
ェアとしての構成が大規模になるばかりか、行き先ノー
ド番号が一致するパケットを検索する際に、常に全ての
アドレスを検索することになるので、全体のパイプライ
ン処理速度が著しく低下するという問題を引き起こす。Therefore, as one of the means for solving such a problem, the present applicant uses not only a waiting memory using a hash memory but also a small-capacity (32-word) associative memory accessed simultaneously with the hash memory. It has already been proposed that a packet that cannot be stored in the queuing memory due to hash collision is stored in the associative memory and queuing is performed here. However, in the configuration in which the associative memory is provided, when a hash collision exceeding the capacity of the associative memory occurs, the same problem as described above occurs. This can be solved by increasing the capacity of the associative memory, but not only does the hardware configuration become large-scale, but when searching for a packet with a matching destination node number, all Since the address is searched, the whole pipeline processing speed is significantly reduced.
【0016】本発明の目的は、オーバーフローパケット
によるパイプラインの不要な混雑を避けることができ、
オーバーフローパケットによる混雑やハッシュ衝突に起
因する実行停止を回避することができるデータ駆動形計
算機を得ることにある。An object of the present invention is to avoid unnecessary congestion of the pipeline due to overflow packets,
(EN) It is possible to obtain a data driven computer capable of avoiding execution suspension due to congestion due to overflow packets or hash collision.
【0017】[0017]
【課題を解決するための手段】本発明は、少なくとも次
に実行すべき命令の場所を示す行き先ノード番号を含む
識別情報及びデータを有するパケットを格納する待ち合
わせメモリを備え、この待ち合わせメモリに格納された
パケットと新たに入力されたパケットとの少なくとも行
き先ノード番号が一致するパケットを検出し、一致した
パケットを合体する発火処理を行う発火処理部を有する
巡回パイプライン構成のデータ駆動形計算機において、
前記待ち合わせメモリとしてハッシュメモリを有し、こ
のハッシュメモリの各アドレスに当該ハッシュアドレス
でハッシュ衝突が生じオーバーフローパケットを出力し
た時にセットするOVフラグを設けた第1の発火処理部
を備えるとともに、待ち合わせメモリとして前記第1の
発火処理部から出力されたオーバーフローパケットを前
記ハッシュメモリと同一のハッシュ関数で、かつチェイ
ン接続を用いて格納するハッシュメモリを有する第2の
発火処理部を備え、前記第1の発火処理部は、ハッシュ
衝突により生じたオーバーフローパケットを第2の発火
処理部に出力するとともに、ハッシュ衝突を起こしたア
ドレスのOVフラグをセットし、以降,OVフラグがセ
ットされたハッシュアドレスで発火しないパケットは第
2の発火処理部に出力し、前記第2の発火処理部は、ハ
ッシュメモリに既に格納されているパケットと新たに入
力されたパケットとを比較し、少なくとも行き先ノード
番号が一致するパケットがあれば発火処理を行なうとと
もに、当該パケットが該ハッシュアドレスよりチェイン
に接続されている唯一のパケットの時は当該発火パケッ
トにその旨を示すために付加されたOVCフラグをセッ
トして第1の発火処理部へ出力し、前記第1の発火処理
部は、入力された発火パケットのOVCフラグがセット
されている時は当該ハッシュアドレスのOVフラグをク
リアするようにしたものである。SUMMARY OF THE INVENTION The present invention comprises a queuing memory for storing a packet having identification information and data including at least a destination node number indicating the location of an instruction to be executed next, and stored in the queuing memory. In a data-driven computer having a cyclic pipeline configuration having a firing processing unit that detects a packet in which at least a destination node number of a newly input packet and a newly input packet match, and performs a firing process to combine the matched packets,
The waiting memory includes a hash memory as the queuing memory, and a first firing processing unit provided with an OV flag which is set at each address of the hash memory when a hash collision occurs at the hash address and an overflow packet is output. And a second ignition processing unit having a hash memory for storing the overflow packet output from the first ignition processing unit with the same hash function as the hash memory and using a chain connection. The firing processing unit outputs the overflow packet generated by the hash collision to the second firing processing unit, sets the OV flag of the address in which the hash collision has occurred, and thereafter does not fire at the hash address in which the OV flag is set. The packet is sent to the second ignition processing unit The second firing processing unit compares the packet already stored in the hash memory with the newly input packet, and performs firing processing if there is at least a packet having the same destination node number, When the packet is the only packet connected to the chain from the hash address, the OVC flag added to indicate the fact to the ignition packet is set, and is output to the first ignition processing unit. The ignition processing unit 1 is configured to clear the OV flag of the hash address when the OVC flag of the input ignition packet is set.
【0018】[0018]
【作用】本発明においては、従来からある第1の発火処
理部をオーバーフローしたパケットは新たに設けられた
第2の発火処理部に送り、ここで発火処理を行なう。そ
の際、オーバーフローしたハッシュアドレスのOVフラ
グをセットし、以降,第1の発火処理部に与えられたパ
ケットは、OVフラグのセットされたハッシュアドレス
となるパケットのみ第1の発火処理部と第2の発火処理
部の両方でマッチングを行なう。OVフラグは、第2の
発火処理部の該当ハッシュアドレスに対応するチェイン
接続されたパケットが全て発火し出力された場合に、O
VCフラグがセットされた発火パケットによりクリアさ
れる。このように、オーバーフローパケットを受け入れ
る第2の発火処理部を設け、一度オーバーフローが起こ
ったら両方の発火処理部をアクセスすることにより、オ
ーバーフローによるパイプラインの混雑やデッドロック
(実行停止)を防止することができる。In the present invention, the packet that has overflowed from the conventional first ignition processing unit is sent to the newly provided second ignition processing unit, where the ignition processing is performed. At that time, the OV flag of the overflowed hash address is set, and thereafter only the packet having the hash address with the OV flag set is set to the first firing processing unit and the second firing processing unit. Matching is performed in both the ignition processing units. The OV flag is O when all the chain-connected packets corresponding to the relevant hash address of the second firing processing unit are fired and output.
It is cleared by the firing packet with the VC flag set. In this way, by providing a second ignition processing unit that accepts overflow packets and accessing both ignition processing units once overflow occurs, it is possible to prevent pipeline congestion and deadlock (execution stop) due to overflow. You can
【0019】[0019]
【実施例】以下、この発明の一実施例を図を参照して説
明する。図1は本発明を適用したデータ駆動形計算機の
一実施例を示すブロック図であり、発火処理部(第1の
発火処理部)101、演算処理部102、プログラム記
憶部103、分岐制御部104、合流制御部105、拡
張発火処理器(第2の発火処理部)106とから構成さ
れている。上記発火処理部101は、待ち合わせメモリ
としてハッシュメモリを有し、このハッシュメモリの各
アドレスに当該ハッシュアドレスでハッシュ衝突が生じ
オーバーフローパケットを出力した時にセットするOV
フラグを設けたものであり、ハッシュ衝突が原因で生じ
たオーバーフローパケットには拡張発火処理器106へ
送出することを示すEXフラグを“1”にセットして出
力するとともに、ハッシュ衝突を起こしたアドレスのO
Vフラグをセットする。また、OVフラグがセットされ
ているハッシュアドレスが発火して空になり新たなパケ
ットが格納された時は、当該パケットにその旨を示すた
めに付加されたNSフラグを“1”にセットし、かつ上
記EXフラグもセットして出力する。発火処理部101
から巡回パイプライン上に出力されたパケットは分岐制
御部104に入力される。分岐制御部104では、パケ
ットに付加されたEXフラグに基づき、EXフラグがセ
ットされていない時(EX=0)は従来同様,データと
タグ(識別子)からなるパケットを演算処理部102に
送るが、EXフラグがセットされている時(EX=1)
はデータ,タグ及びNSフラグからなるパケットを拡張
発火処理器106に分岐させる。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing an embodiment of a data driven computer to which the present invention is applied. An ignition processing unit (first ignition processing unit) 101, an arithmetic processing unit 102, a program storage unit 103, a branch control unit 104. , A merge control unit 105 and an extended ignition processing unit (second ignition processing unit) 106. The firing processing unit 101 has a hash memory as a waiting memory, and sets an OV when an overflow packet is output due to a hash collision at the hash address at each address of the hash memory.
A flag is provided, and an EX flag indicating that the overflow packet is to be sent to the extended ignition processor 106 is set to “1” and output to the overflow packet caused by the hash collision, and the address in which the hash collision has occurred. O
Set the V flag. Further, when the hash address with the OV flag set is fired to become empty and a new packet is stored, the NS flag added to indicate that fact is set to “1”, Moreover, the EX flag is also set and output. Ignition processing unit 101
The packet output from the above to the cyclic pipeline is input to the branch control unit 104. In the branch control unit 104, based on the EX flag added to the packet, when the EX flag is not set (EX = 0), the packet including the data and the tag (identifier) is sent to the arithmetic processing unit 102 as in the conventional case. , EX flag is set (EX = 1)
Branches a packet including data, a tag, and an NS flag to the extended ignition processor 106.
【0020】拡張発火処理器106は、待ち合わせメモ
リとして上記オーバーフローパケットを発火処理部10
1のハッシュメモリと同一のハッシュ関数で、かつチェ
イン接続を用いて格納するハッシュメモリを有し、この
ハッシュメモリに既に格納されているパケットと新たに
入力されたパケットとを比較する。そして、少なくとも
行き先ノード番号が一致するパケットがあれば発火処理
を行い発火パケットとして出力するが、相手パケットが
該ハッシュアドレスよりチェインに接続されている唯一
のパケットの時は当該発火パケットにその旨を示すため
に付加されたOVCフラグをセットして出力し、NSフ
ラグがセットされたパケットの時は当該発火パケットに
その旨を示すために付加されたPKCフラグをセットし
て出力する。また、オーバーフローパケットが発火しな
かった場合には格納されるが、NSフラグがセットされ
た入力パケット(発火処理部101に既に格納されたパ
ケット)が発火しなかった時は、発火処理部101と拡
張発火処理器106の両方に格納されるのを防ぐため当
該パケットを消去する。The extended firing processor 106 uses the overflow packet as a waiting memory to fire the overflow packet.
The hash memory has the same hash function as the one hash memory and stores using a chain connection, and the packet already stored in this hash memory is compared with the newly input packet. Then, if there is a packet with at least the destination node number matching, the firing process is performed and the packet is output as a firing packet. However, when the other packet is the only packet connected to the chain from the hash address, the fact is notified to the firing packet. The OVC flag added for indicating is output, and when the NS flag is set for the packet, the PKC flag added for indicating to that effect is set and output. When the overflow packet is not fired, it is stored, but when the input packet with the NS flag set (the packet already stored in the firing processing unit 101) is not fired, the overflow packet is stored in the ignition processing unit 101. The packet is deleted to prevent the packet from being stored in both of the extended firing processors 106.
【0021】拡張発火処理器106から出力された発火
パケットは、合流制御部105を介して発火処理部10
1に入力される。発火処理部101では、入力された発
火パケットを素通りさせるが、PKCフラグがセットさ
れている時は当該ハッシュアドレスに格納されたパケッ
トをクリアし、OVCフラグがセットされている時は当
該ハッシュアドレスのOVフラグをクリアする。なお、
発火処理部101から出力される発火パケットは分岐制
御部104を介して演算処理部102に入力され、その
演算結果は、プログラム記憶部103でタグが更新され
て合流制御部105を通じて発火処理部101に再度入
力される。The ignition packet output from the extended ignition processor 106 is sent to the ignition processor 10 via the merge controller 105.
Input to 1. The ignition processing unit 101 allows the input ignition packet to pass through, but clears the packet stored at the hash address when the PKC flag is set, and clears the packet at the hash address when the OVC flag is set. Clear the OV flag. In addition,
The ignition packet output from the ignition processing unit 101 is input to the calculation processing unit 102 via the branch control unit 104, and the calculation result is updated in the tag in the program storage unit 103, and the ignition processing unit 101 is updated via the merge control unit 105. Will be entered again.
【0022】図2は発火処理部101のブロック構成図
であり、これはハッシュメモリの他に連想メモリを備え
た,既に本出願人が提案済みのもの(特願平3−122
338号等)に本発明を適用した概略構成を示すもので
あるが、ハッシュメモリのみのものにも適用できること
はもちろんである。図示のように、この発火処理部10
1は、ハッシュメモリ1,連想メモリ2,ハッシュ処理
器3,比較器4,制御部5,セレクタ6,オペランド交
換器7等から構成され、上述した先の出願のものとほぼ
同様なものであるが、上述した機能を実現するために若
干の機能拡張が必要となる。拡張内容は、ハッシュメモ
リ1の各アドレスに上述したOVフラグを格納するフィ
ールドを追加し、新たに上述したPKC,OVC,N
S,EXの4つの信号を付加したことである。これによ
って制御部5の動作が多少複雑化している。図3にハッ
シュメモリ格納データフィールドを示し、図4に制御部
5の制御内容を示す。FIG. 2 is a block diagram of the ignition processing unit 101, which has already been proposed by the applicant of the present invention and has an associative memory in addition to the hash memory (Japanese Patent Application No. 3-122).
No. 338, etc.) shows a schematic configuration to which the present invention is applied, but it goes without saying that it can be applied to only a hash memory. As shown, this ignition processing unit 10
Reference numeral 1 is composed of a hash memory 1, an associative memory 2, a hash processor 3, a comparator 4, a controller 5, a selector 6, an operand exchanger 7 and the like, and is almost the same as that of the above-mentioned previous application. However, some function expansion is required to realize the above-mentioned functions. As the extension content, a field for storing the above-mentioned OV flag is added to each address of the hash memory 1 to newly add PKC, OVC, N described above.
That is, four signals of S and EX are added. This makes the operation of the control unit 5 somewhat complicated. FIG. 3 shows the hash memory storage data field, and FIG. 4 shows the control contents of the control unit 5.
【0023】図5は拡張発火処理器106の詳細構成を
示すブロック図である。図において、201は発火処理
部101でハッシュ衝突が原因で発火できずに送られて
きたオーバーフローパケット等の入力パケット、202
はタグの一部ビットで示されるアドレスを圧縮してハッ
シュアドレスを生成するハッシュ処理器、205はアド
レス変換テーブル書き込みデータセレクタ、206はア
ドレス変換テーブル(CT)、207はパケットを格納
するアドレスを指定する書き込みアドレスポインタ(A
P)、208は1つ前に読み出しを行ったアドレスを記
憶するチェイン書き換えレジスタ(CCR)、209は
最後に読み出しを行ったアドレスを記憶した読み出しア
ドレスレジスタ(RR)、210はアドレスセレクタ、
211は入力されたパケットを格納するパケットメモ
リ、212はパケットメモリ211の連鎖関係を記憶す
るチェインポインタメモリ、213はチェインアドレス
CAを記憶するチェインアドレスレジスタ(CAR)、
214はチェインビットCBを記憶するチェインビット
レジスタ(CBR)、215はチェインポインタの書き
込みデータを選択するチェインポインタ書き込みセレク
タ、216は入力されたパケット201のタグとパケッ
トメモリ211から読み出したタグを比較する比較器、
217は全体動作を制御する制御部である。なお、すべ
てのレジスタはメモリの読み出し時に更新される。ま
た、ハッシュ処理器202のハッシュ関数は、前述した
発火処理部101のハッシュ処理器3と同一のものが設
定されている。FIG. 5 is a block diagram showing the detailed construction of the extended ignition processor 106. In the figure, 201 is an input packet such as an overflow packet sent without being fired by the ignition processing unit 101 due to hash collision, 202
Is a hash processor that compresses the address indicated by some bits of the tag to generate a hash address, 205 is an address translation table write data selector, 206 is an address translation table (CT), and 207 is an address for storing packets. Write address pointer (A
P), 208 is a chain rewriting register (CCR) that stores the address that has been read immediately before, 209 is a read address register (RR) that stores the address that has been read last, 210 is an address selector,
211 is a packet memory for storing the input packet, 212 is a chain pointer memory for storing the chain relation of the packet memory 211, 213 is a chain address register (CAR) for storing the chain address CA,
Reference numeral 214 is a chain bit register (CBR) that stores the chain bit CB, 215 is a chain pointer write selector that selects write data of the chain pointer, and 216 is a comparison between the tag of the input packet 201 and the tag read from the packet memory 211. Comparator,
A control unit 217 controls the entire operation. Note that all registers are updated when reading the memory. The hash function of the hash processor 202 is set to be the same as that of the hash processor 3 of the ignition processor 101 described above.
【0024】アドレス変換テーブル206の構成は、図
6に示すように、テーブル検索キーで指定し得る複数の
領域から構成され、パケットメモリ211におけるパケ
ットの格納アドレスを示すパケット格納アドレスPAを
記憶するパケット格納アドレス部223と、有効なパケ
ット格納アドレスPAが記憶されている時はPB=1,
記憶されていなければPB=0のプレゼンスビットPB
を記憶するプレゼンスビット部222とからなり、ハッ
シュ処理器202から出力されるハッシュアドレスをテ
ーブル検索キーとしてアクセスされ、この検索キーが検
索を行うべきパケットメモリ211のアドレスに変換さ
れる。図6においては、テーブル検索キーで検索される
パケットはパケットメモリ211のアドレスn1に格納
されていることを示している。As shown in FIG. 6, the address conversion table 206 is composed of a plurality of areas which can be designated by a table search key, and stores a packet storage address PA indicating a packet storage address in the packet memory 211. When the storage address portion 223 and the valid packet storage address PA are stored, PB = 1,
Presence bit PB with PB = 0 if not stored
And a presence bit unit 222 for storing the address, and the hash address output from the hash processor 202 is accessed as a table search key, and this search key is converted into an address of the packet memory 211 to be searched. FIG. 6 shows that the packet searched by the table search key is stored at the address n 1 of the packet memory 211.
【0025】パケットメモリ211及びチェインポイン
タメモリ212の構成は、図7に示すように、パケット
格納アドレスPAで指定し得る複数の領域から構成さ
れ、パケットメモリ211はタグを記憶するタグ部21
8とデータを記憶するデータ部219とからなり、また
チェインポインタメモリ212はチェインビットCBを
記憶するチェインビット部220とチェインアドレスC
Aを記憶するチェインアドレス部221とからなってい
る。例えば、パケット格納アドレスPAによってアドレ
スn1がアクセスされたとすると、このアドレスn1に格
納されているタグ=T1,データ=D1とからなるパケッ
トがパケットメモリ211から読み出され、チェインビ
ットCB=1とチェインアドレスCA=n11がチェイン
ポインタメモリ212から読み出される。As shown in FIG. 7, the packet memory 211 and the chain pointer memory 212 are composed of a plurality of areas which can be designated by the packet storage address PA. The packet memory 211 has a tag section 21 for storing tags.
8 and a data section 219 for storing data, and the chain pointer memory 212 has a chain bit section 220 for storing a chain bit CB and a chain address C.
And a chain address part 221 for storing A. For example, if the address n 1 is accessed by the packet storage address PA, the packet having the tag = T 1 and the data = D 1 stored at this address n 1 is read from the packet memory 211 and the chain bit CB. = 1 and the chain address CA = n 11 are read from the chain pointer memory 212.
【0026】チェインビットCB=1はタグT1と同一
のハッシュアドレスとなるパケットが他に存在すること
を示し、チェインアドレスCAはそのパケットが格納さ
れているアドレスを示すもので、CB=0の場合は同一
のハッシュアドレスとなるパケットがこれ以上存在しな
いことを示している。例えば、図7の例では、パケット
格納アドレスPAがn1,n11,n13であるパケットメ
モリ211のアドレスには、同一のハッシュアドレスと
なるパケットが格納されていることを表している。The chain bit CB = 1 indicates that there is another packet having the same hash address as the tag T 1, and the chain address CA indicates the address where the packet is stored, and CB = 0. The case indicates that there are no more packets having the same hash address. For example, the example of FIG. 7 indicates that packets having the same hash address are stored at the addresses of the packet memory 211 having the packet storage addresses PA of n 1 , n 11 , and n 13 .
【0027】次に、図8のフローチャートを参照して上
記拡張発火処理器106の概略動作について説明する。
まず、ステップS1で入力パケット201のNSフラグ
が“1”にセットされているか否か,すなわち発火処理
部101に既に格納されたパケットであるかオーバーフ
ローパケットであるかを判定する。オーバーフローパケ
ットの場合はNSフラグがセットされておらず“0”で
あるので、ステップS2に進んで発火したか否かを判定
し、発火しなければ格納される(ステップS3)。ステ
ップS2の判定で発火しておれば、ステップS4に進ん
で発火の相手パケットが該ハッシュアドレスよりチェイ
ンに接続されている唯一のパケットであるか否かが判定
される。唯一のパケットでなければ、OVCフラグ,P
KCフラグともセットせずに(OVC=0,PKC=
0)、発火パケット224として出力する(ステップS
5)。また、唯一のパケットであれば、OVCフラグの
みをセットして(OVC=1,PKC=0)、発火パケ
ット224として出力する(ステップS6)。一方、入
力パケット201が発火処理部101に既に格納済みの
パケットの場合はNSフラグがセットされており“1”
であるので、ステップS1からステップS7に進んで発
火したか否かを判定し、発火しなければ重複して格納さ
れるのを防ぐため消去される(ステップS8)。ステッ
プS7の判定で発火しておれば、ステップS9に進んで
発火の相手パケットが該ハッシュアドレスよりチェイン
に接続されている唯一のパケットであるか否かが判定さ
れる。唯一のパケットでなければ、PKCフラグのみを
セットして(OVC=0,PKC=1)、発火パケット
224として出力する(ステップS10)。また、唯一
のパケットであれば、OVCフラグ,PKCフラグとも
セットして(OVC=1,PKC=1)、発火パケット
224として出力する(ステップS11)。Next, the general operation of the extended ignition processor 106 will be described with reference to the flowchart of FIG.
First, in step S1, it is determined whether or not the NS flag of the input packet 201 is set to "1", that is, whether the packet is already stored in the ignition processing unit 101 or is an overflow packet. In the case of an overflow packet, since the NS flag is not set and is "0", the process proceeds to step S2, it is determined whether or not a fire has occurred, and if it does not fire, it is stored (step S3). If the packet is fired in the determination in step S2, the process proceeds to step S4 and it is determined whether or not the packet of the other party of firing is the only packet connected to the chain from the hash address. If it is not the only packet, OVC flag, P
Without setting the KC flag (OVC = 0, PKC =
0), and output as an ignition packet 224 (step S
5). If it is the only packet, only the OVC flag is set (OVC = 1, PKC = 0) and output as the ignition packet 224 (step S6). On the other hand, if the input packet 201 is already stored in the ignition processing unit 101, the NS flag is set and “1” is set.
Therefore, the process proceeds from step S1 to step S7, it is determined whether or not a fire is generated, and if it is not fired, it is erased to prevent duplicate storage (step S8). If the packet is fired in the determination in step S7, the process proceeds to step S9 and it is determined whether or not the packet of the other party of firing is the only packet connected to the chain from the hash address. If it is not the only packet, only the PKC flag is set (OVC = 0, PKC = 1) and output as an ignition packet 224 (step S10). If it is the only packet, both the OVC flag and the PKC flag are set (OVC = 1, PKC = 1), and the packet is output as an ignition packet 224 (step S11).
【0028】次に、オーバーフローパケットを例にとっ
て、チェイン接続を用いたパケットの格納及び発火処理
の詳細について図9のフローチャートを参照して説明す
る。なお、発火処理部101に既に格納済みでNSフラ
グがセットされた入力パケットについても、発火しない
場合に消去される点を除けばほぼ同様である。また、図
9において、(1),(2)を付した各処理の細かい内
容は図10〜図15に示す。まず、入力パケット201
としてオーバーフローパケットが入力されると、ハッシ
ュ処理器202においてオーバーフローパケットのタグ
を圧縮することによってハッシュアドレスが生成され、
生成されたハッシュアドレスによりアドレス変換テーブ
ル206を検索する(ステップS1)。この結果、ハッ
シュアドレスで示されるアドレス変換テーブル206に
おけるアドレスのプレゼンスビットPBが“0”であっ
たならば(ステップS2)、パケットは格納されていな
いことになるので、この時入力されたパケットを書き込
みアドレスポインタ207によって指示されているパケ
ットメモリ211のアドレスに格納すると共に、変換テ
ーブル206のプレゼンスビットPBを“1”に書き換
える(ステップS3,詳細は図10を参照)。Next, taking an overflow packet as an example, details of packet storage and firing processing using a chain connection will be described with reference to the flowchart of FIG. It should be noted that the input packet, which has already been stored in the ignition processing unit 101 and has the NS flag set, is substantially the same except that it is deleted when it is not fired. In addition, the detailed contents of each process denoted by (1) and (2) in FIG. 9 are shown in FIGS. First, the input packet 201
When the overflow packet is input as, the hash address is generated by compressing the tag of the overflow packet in the hash processor 202,
The address conversion table 206 is searched by the generated hash address (step S1). As a result, if the presence bit PB of the address in the address conversion table 206 indicated by the hash address is "0" (step S2), it means that no packet is stored. The address is stored in the address of the packet memory 211 designated by the write address pointer 207, and the presence bit PB of the conversion table 206 is rewritten to "1" (step S3, see FIG. 10 for details).
【0029】ステップS2において、ハッシュアドレス
で示されるテーブルアドレスのプレゼンスビットPBが
“1”であったならば、制御部217はセレクタ210
をアドレス変換テーブル206の出力側に切り換え、P
B=1となっているテーブルアドレスから読み出されて
いるパケット格納アドレスPAをセレクタ210を通じ
てパケットメモリ211の検索アドレスとして入力し、
該パケット格納アドレスPAで示されるアドレスに格納
されているパケットを読み出す(ステップS4,図11
を参照)。In step S2, if the presence bit PB of the table address indicated by the hash address is "1", the control unit 217 causes the selector 210 to operate.
To the output side of the address conversion table 206, and
The packet storage address PA read from the table address with B = 1 is input as a search address of the packet memory 211 through the selector 210,
The packet stored at the address indicated by the packet storage address PA is read (step S4, FIG. 11).
See).
【0030】パケットメモリ211から読み出されたパ
ケットのタグは比較器216に入力され、ここで入力さ
れたオーバーフローパケットのタグと比較され、この結
果、タグが一致したならば(ステップS5)、発火処理
が行なわれるとともにアドレスがクリアされる(ステッ
プS6,図12を参照)。これらのパケットは発火パケ
ット224として合体されて出力され、合流制御部10
5,発火処理部101,分岐制御部104,演算処理部
102へと転送される。The tag of the packet read from the packet memory 211 is input to the comparator 216, and is compared with the tag of the overflow packet input here, and if the tags match as a result (step S5), it is fired. The address is cleared as the process is performed (step S6, see FIG. 12). These packets are combined and output as an ignition packet 224, and the merging control unit 10
5, transferred to the ignition processing unit 101, the branch control unit 104, and the arithmetic processing unit 102.
【0031】ステップS5において、パケットメモリ2
11から読み出したパケットと入力されたオーバーフロ
ーパケットのタグが一致していなかった場合は、チェイ
ンポインタメモリ212から読み出されてチェインビッ
トレジスタ(CBR)214に格納されているチェイン
ビットCBが“0”か“1”かによって他に同一ハッシ
ュアドレスとなるパケットが存在するか否かを調べ(ス
テップS7)、CB=0ならば入力されたオーバーフロ
ーパケットをパケットメモリ211に格納する(ステッ
プS8,図13を参照)。一方、CB=1ならば、他に
同一ハッシュアドレスとなるパケットが存在することに
なるので、チェインアドレスレジスタ(CAR)213
に格納されているチェインアドレスCAに従ってパケッ
トメモリ211を検索する(ステップS9,図14を参
照)。これは、チェインポインタメモリ212から読み
出され、チェインアドレスレジスタ(CAR)213に
セットされているチェインアドレスCAをセレクタ21
0を通じてパケットメモリ211のアドレスとして入力
することにより行う。これにより、チェインアドレスC
Aで示されるアドレスから先に読み出したパケットと同
一ハッシュアドレスとなるパケットが読み出される。こ
のパケットのタグは、先のパケットと同様にして比較器
216に入力され、ここで入力されたオーバーフローパ
ケットと比較される。この結果、タグが一致したならば
(ステップS10)、発火処理が行なわれるとともにア
ドレスがクリアされる(ステップS11,図15を参
照)。これらのパケットは前記同様,発火パケット22
4として合体され、合流制御部105,発火処理部10
1,分岐制御部104,演算処理部102へと転送され
る。しかし、タグが一致しない場合、ステップS7に戻
り、このステップS7以降の処理が繰り返される。In step S5, the packet memory 2
If the tags of the packet read from 11 and the input overflow packet do not match, the chain bit CB read from the chain pointer memory 212 and stored in the chain bit register (CBR) 214 is “0”. Whether or not there is another packet having the same hash address depending on whether it is "1" or not (step S7), and if CB = 0, the input overflow packet is stored in the packet memory 211 (step S8, FIG. 13). See). On the other hand, if CB = 1, there is another packet having the same hash address, so the chain address register (CAR) 213
The packet memory 211 is searched according to the chain address CA stored in (step S9, see FIG. 14). This is because the chain address CA read from the chain pointer memory 212 and set in the chain address register (CAR) 213 is the selector 21.
It is performed by inputting the address of the packet memory 211 through 0. As a result, the chain address C
A packet having the same hash address as the previously read packet is read from the address indicated by A. The tag of this packet is input to the comparator 216 in the same manner as the previous packet, and is compared with the overflow packet input here. As a result, if the tags match (step S10), the firing process is performed and the address is cleared (step S11, see FIG. 15). These packets are the same as the above, and the ignition packet 22
4, the merge control unit 105 and the ignition processing unit 10 are combined.
1, the branch control unit 104, and the arithmetic processing unit 102. However, if the tags do not match, the process returns to step S7, and the processes after step S7 are repeated.
【0032】以上述べたように、本実施例では、ハッシ
ュメモリを用いた発火処理部101においてオーバーフ
ローを起こした時、オーバーフローパケットを拡張発火
処理器106に送り、衝突を起こしたハッシュメモリの
OVフラグをセットする。発火処理部101にて発火せ
ず,かつ当該ハッシュアドレスが空アドレスの場合で、
OVフラグが“1”の時には、パケットは発火処理部1
01内に格納されるが、更に拡張発火処理器106をも
アクセスする。発火処理部101では発火せず、拡張発
火処理器106で発火したならば、拡張発火処理器10
6で発火したパケットは発火処理部101内を素通りし
ていく時に、発火処理部101内に格納済みのパケット
をクリアする。また、拡張発火処理器106で発火しな
かったならば、重複して格納されるのを防ぐため当該パ
ケットは拡張発火処理器106内で消滅させる。発火処
理部101内に空アドレスがなかった場合には当然格納
される。OVフラグは、拡張発火処理器106の該当ハ
ッシュアドレスに対応するチェイン接続されたパケット
が全て発火し出力された場合に、OVCフラグがセット
された発火パケットによりクリアされる。つまり、パケ
ットは発火処理部101か拡張発火処理器106の何れ
かに格納され、OVフラグがセットされているアドレス
に関しては発火処理部101と拡張発火処理器106の
両方をアクセスする。As described above, in the present embodiment, when an overflow occurs in the ignition processing unit 101 using a hash memory, an overflow packet is sent to the extended ignition processor 106, and the OV flag of the hash memory in which the collision has occurred. Set. When the ignition processing unit 101 does not fire and the hash address is an empty address,
When the OV flag is "1", the packet is the ignition processing unit 1
However, the extended ignition processor 106 is also accessed. If the ignition processing unit 101 does not ignite, and the extended ignition processor 106 fires, the extended ignition processor 10
The packet fired in 6 clears the packet already stored in the firing processing unit 101 when passing through the firing processing unit 101. If the extended firing processor 106 does not fire, the packet is erased in the extended firing processor 106 to prevent the packet from being redundantly stored. If there is no empty address in the ignition processing unit 101, it is stored as a matter of course. The OV flag is cleared by the firing packet with the OVC flag set when all the chain-connected packets corresponding to the relevant hash address of the extended firing processor 106 are fired and output. That is, the packet is stored in either the firing processing unit 101 or the extended firing processing unit 106, and both the firing processing unit 101 and the extended firing processing unit 106 are accessed with respect to the address in which the OV flag is set.
【0033】このようにした結果、オーバーフローパケ
ットによるパイプラインの不要な混雑を避けることがで
き、オーバーフローパケットによる混雑やハッシュ衝突
に起因するデッドロック,すなわち実行停止を回避する
ことができる。拡張発火処理器106は、少量のロジッ
クと、あとは通常のDRAMやSRAMで構成可能であ
り、リーズナブルである。As a result, unnecessary congestion of the pipeline due to overflow packets can be avoided, and deadlock due to congestion due to overflow packets and hash collision, that is, execution suspension, can be avoided. The extended ignition processor 106 can be configured with a small amount of logic and the usual DRAM and SRAM, and is reasonably priced.
【0034】なお、上記実施例では、発火処理部101
において、OVフラグがセットされているハッシュアド
レスが発火して空になり新たなパケットが格納された時
は、当該パケットにその旨を示すために付加されたNS
フラグを“1”にセットして拡張発火処理器106に出
力するようにしたが、OVフラグがセットされているハ
ッシュアドレスが発火して空になってもOVフラグがセ
ットされている間は、当該ハッシュアドレスに新たなパ
ケットが到来しても格納せずにオーバーフローパケット
して拡張発火処理器106に出力するようにしてもよ
く、この場合、拡張発火処理器106や発火処理部10
1での該当パケットの消去,クリアは不要となり、それ
に関するNSフラグ及びPKCフラグも不要となる。ま
た、上記実施例では、発火処理部101から全てのパケ
ットを巡回パイプライン上に出力し、分岐制御部104
でEXフラグに基づきオーバーフローパケット等は拡張
発火処理器106に分岐させるようにしたが、該当パケ
ットは発火処理部101から拡張発火処理器106に直
接送出するようにしてもよく、この場合、分岐制御部1
04やEXフラグは不要となる。In the above embodiment, the ignition processing unit 101
In, when the hash address with the OV flag set fires and becomes empty, and a new packet is stored, the NS added to the packet to indicate that fact.
Although the flag is set to "1" and is output to the extended firing processor 106, even if the hash address in which the OV flag is set is fired and becomes empty, the OV flag is set as long as it remains set. Even if a new packet arrives at the hash address, it may be output as an overflow packet to the extended ignition processor 106 without being stored. In this case, the extended ignition processor 106 and the ignition processing unit 10 are provided.
It is not necessary to delete or clear the corresponding packet in 1 and the related NS flag and PKC flag are also unnecessary. Further, in the above embodiment, all packets are output from the firing processing unit 101 onto the cyclic pipeline, and the branch control unit 104
Although the overflow packet or the like is branched to the extended ignition processor 106 based on the EX flag, the packet may be directly transmitted from the ignition processor 101 to the extended ignition processor 106. In this case, the branch control is performed. Part 1
04 and the EX flag are unnecessary.
【0035】[0035]
【発明の効果】以上説明したように、本発明では、待ち
合わせメモリとしてハッシュメモリを有し、このハッシ
ュメモリの各アドレスに当該ハッシュアドレスでハッシ
ュ衝突が生じオーバーフローパケットを出力した時にセ
ットするOVフラグを設けた第1の発火処理部を備える
とともに、待ち合わせメモリとして前記第1の発火処理
部から出力されたオーバーフローパケットを前記ハッシ
ュメモリと同一のハッシュ関数で、かつチェイン接続を
用いて格納するハッシュメモリを有する第2の発火処理
部を備え、前記第1の発火処理部は、ハッシュ衝突によ
り生じたオーバーフローパケットを第2の発火処理部に
出力するとともに、ハッシュ衝突を起こしたアドレスの
OVフラグをセットし、以降,OVフラグがセットされ
たハッシュアドレスで発火しないパケットは第2の発火
処理部に出力し、前記第2の発火処理部は、ハッシュメ
モリに既に格納されているパケットと新たに入力された
パケットとを比較し、少なくとも行き先ノード番号が一
致するパケットがあれば発火処理を行なうとともに、当
該パケットが該ハッシュアドレスよりチェインに接続さ
れている唯一のパケットの時は当該発火パケットにその
旨を示すために付加されたOVCフラグをセットして第
1の発火処理部へ出力し、前記第1の発火処理部は、入
力された発火パケットのOVCフラグがセットされてい
る時は当該ハッシュアドレスのOVフラグをクリアする
ようにしたので、オーバーフローパケットによるパイプ
ラインの不要な混雑を避けることができ、オーバーフロ
ーパケットによる混雑やハッシュ衝突に起因する実行停
止を回避することができるといった効果がある。As described above, according to the present invention, a hash memory is provided as a waiting memory, and an OV flag set when an overflow packet is output at each address of this hash memory when a hash collision occurs at the hash address. A hash memory that includes the first firing processing unit that is provided and that stores an overflow packet output from the first firing processing unit as a waiting memory with the same hash function as the hash memory and using a chain connection is provided. And a second ignition processing unit having the second ignition processing unit, wherein the first ignition processing unit outputs the overflow packet generated by the hash collision to the second ignition processing unit, and sets the OV flag of the address causing the hash collision. , And thereafter, the hash address with the OV flag set The packet which is not fired at is output to the second firing processing unit, and the second firing processing unit compares the packet already stored in the hash memory with the newly input packet, and at least the destination node number is If there is a matching packet, the firing process is performed, and if the packet is the only packet connected to the chain from the hash address, the OVC flag added to indicate the fact is set in the firing packet. It outputs to the first ignition processing unit, and the first ignition processing unit clears the OV flag of the hash address when the OVC flag of the input ignition packet is set. It is possible to avoid unnecessary congestion of the pipeline due to congestion, congestion due to overflow packets and hash collision. There is advantage of the ability to avoid the execution stop due to.
【図1】この発明の一実施例に係るデータ駆動形計算機
の全体構成図である。FIG. 1 is an overall configuration diagram of a data driven computer according to an embodiment of the present invention.
【図2】図1の発火処理部の一実施例を示す構成図であ
る。FIG. 2 is a configuration diagram showing an embodiment of an ignition processing unit in FIG.
【図3】図2のハッシュメモリ格納データフィールドを
示す図である。FIG. 3 is a diagram showing a hash memory storage data field of FIG. 2;
【図4】図2の制御部の制御内容を示す図である。FIG. 4 is a diagram showing control contents of a control unit in FIG.
【図5】図1の拡張発火処理器の一実施例を示す詳細構
成図である。5 is a detailed configuration diagram showing an embodiment of the extended ignition processor of FIG.
【図6】図5のアドレス変換テーブルの構成説明図であ
る。6 is an explanatory diagram of a configuration of an address conversion table shown in FIG.
【図7】図5のパケットメモリとチェインポインタメモ
リの構成説明図である。FIG. 7 is an explanatory diagram of configurations of a packet memory and a chain pointer memory in FIG.
【図8】実施例の拡張発火処理器の全体動作を示すフロ
ーチャートである。FIG. 8 is a flowchart showing the overall operation of the extended ignition processor of the embodiment.
【図9】実施例の拡張発火処理器の詳細動作を示すフロ
ーチャートである。FIG. 9 is a flowchart showing a detailed operation of the extended ignition processor of the embodiment.
【図10】図9のパケット格納(1)の詳細を示すフロ
ーチャートである。FIG. 10 is a flowchart showing details of packet storage (1) in FIG.
【図11】図9のパケット検索(1)の詳細を示すフロ
ーチャートである。11 is a flowchart showing details of packet search (1) in FIG. 9. FIG.
【図12】図9のアドレスクリア(1)の詳細を示すフ
ローチャートである。FIG. 12 is a flowchart showing details of address clear (1) in FIG.
【図13】図9のパケット格納(2)の詳細を示すフロ
ーチャートである。13 is a flowchart showing details of packet storage (2) in FIG.
【図14】図9のパケット検索(2)の詳細を示すフロ
ーチャートである。14 is a flowchart showing details of packet search (2) in FIG. 9. FIG.
【図15】図9のアドレスクリア(2)の詳細を示すフ
ローチャートである。15 is a flowchart showing details of address clear (2) in FIG.
【図16】従来のデータ駆動形計算機のデータ処理の概
念を示す説明図である。FIG. 16 is an explanatory diagram showing the concept of data processing of a conventional data driven computer.
【図17】パケットの一例の構成を示すビットマップ図
である。FIG. 17 is a bit map diagram showing an example of the structure of a packet.
【図18】ハッシュメモリの一例の構成を示すブロック
図である。FIG. 18 is a block diagram showing a configuration of an example of a hash memory.
【図19】データフローグラフの一例とメモリアドレス
及びノード番号との関係を示す説明図である。FIG. 19 is an explanatory diagram showing the relationship between an example of a data flow graph and memory addresses and node numbers.
1 ハッシュメモリ 2 連想メモリ 3,202 ハッシュ処理器 4,216 比較器 5,217 制御部 101 発火処理部(第1の発火処理部) 102 演算処理部 103 プログラム記憶部 104 分岐制御部 105 合流制御部 106 拡張発火処理器(第2の発火処理部) 206 アドレス変換テーブル 211 パケットメモリ(ハッシュメモリ) 212 チェインポインタメモリ 1 Hash Memory 2 Associative Memory 3,202 Hash Processor 4,216 Comparator 5,217 Control Unit 101 Ignition Processing Unit (First Ignition Processing Unit) 102 Arithmetic Processing Unit 103 Program Storage Unit 104 Branch Control Unit 105 Confluence Control Unit 106 Extended Fire Processor (Second Fire Processor) 206 Address Conversion Table 211 Packet Memory (Hash Memory) 212 Chain Pointer Memory
─────────────────────────────────────────────────────
─────────────────────────────────────────────────── ───
【手続補正書】[Procedure amendment]
【提出日】平成4年6月4日[Submission date] June 4, 1992
【手続補正1】[Procedure Amendment 1]
【補正対象書類名】図面[Document name to be corrected] Drawing
【補正対象項目名】図4[Name of item to be corrected] Fig. 4
【補正方法】変更[Correction method] Change
【補正内容】[Correction content]
【図4】 [Figure 4]
Claims (1)
示す行き先ノード番号を含む識別情報及びデータを有す
るパケットを格納する待ち合わせメモリを備え、この待
ち合わせメモリに格納されたパケットと新たに入力され
たパケットとの少なくとも行き先ノード番号が一致する
パケットを検出し、一致したパケットを合体する発火処
理を行う発火処理部を有する巡回パイプライン構成のデ
ータ駆動形計算機において、 前記待ち合わせメモリとしてハッシュメモリを有し、こ
のハッシュメモリの各アドレスに当該ハッシュアドレス
でハッシュ衝突が生じオーバーフローパケットを出力し
た時にセットするOVフラグを設けた第1の発火処理部
を備えるとともに、待ち合わせメモリとして前記第1の
発火処理部から出力されたオーバーフローパケットを前
記ハッシュメモリと同一のハッシュ関数で、かつチェイ
ン接続を用いて格納するハッシュメモリを有する第2の
発火処理部を備え、前記第1の発火処理部は、ハッシュ
衝突により生じたオーバーフローパケットを第2の発火
処理部に出力するとともに、ハッシュ衝突を起こしたア
ドレスのOVフラグをセットし、以降,OVフラグがセ
ットされたハッシュアドレスで発火しないパケットは第
2の発火処理部に出力し、前記第2の発火処理部は、ハ
ッシュメモリに既に格納されているパケットと新たに入
力されたパケットとを比較し、少なくとも行き先ノード
番号が一致するパケットがあれば発火処理を行なうとと
もに、当該パケットが該ハッシュアドレスよりチェイン
に接続されている唯一のパケットの時は当該発火パケッ
トにその旨を示すために付加されたOVCフラグをセッ
トして第1の発火処理部へ出力し、前記第1の発火処理
部は、入力された発火パケットのOVCフラグがセット
されている時は当該ハッシュアドレスのOVフラグをク
リアすることを特徴とするデータ駆動形計算機。Claims: 1. A queuing memory for storing a packet having identification information and data including at least a destination node number indicating a location of an instruction to be executed next, and the packet stored in the queuing memory. In the data-driven computer having a cyclic pipeline structure having a firing processing unit that detects a packet in which at least the destination node number of the newly input packet and the destination node number match and performs a firing process to combine the matched packets, the waiting memory As a queuing memory, and has a first ignition processing unit having an OV flag to be set when a hash collision occurs at the hash address and an overflow packet is output at each address of the hash memory. 1 is output from the ignition processing unit A second ignition processing unit having a hash memory for storing an overflow packet with the same hash function as the hash memory and using a chain connection is provided, wherein the first ignition processing unit is an overflow packet generated by a hash collision. Is output to the second firing processing unit, and the OV flag of the address in which the hash collision has occurred is set, and thereafter, the packet that does not fire at the hash address with the OV flag set is output to the second firing processing unit, The second firing processing unit compares the packet already stored in the hash memory with the newly input packet, performs firing processing if there is at least a packet having a matching destination node number, and If the only packet connected to the chain from the hash address is An OVC flag added to indicate the fact to the ignition packet is set and output to the first ignition processing unit, and the first ignition processing unit has the OVC flag of the input ignition packet set. A data-driven computer characterized by clearing the OV flag of the hash address at that time.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20403291A JPH0528290A (en) | 1991-07-18 | 1991-07-18 | Data driven type computer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20403291A JPH0528290A (en) | 1991-07-18 | 1991-07-18 | Data driven type computer |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0528290A true JPH0528290A (en) | 1993-02-05 |
Family
ID=16483628
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP20403291A Pending JPH0528290A (en) | 1991-07-18 | 1991-07-18 | Data driven type computer |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0528290A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7370048B2 (en) | 2005-05-27 | 2008-05-06 | International Business Machines Corporation | File storage method and apparatus |
-
1991
- 1991-07-18 JP JP20403291A patent/JPH0528290A/en active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7370048B2 (en) | 2005-05-27 | 2008-05-06 | International Business Machines Corporation | File storage method and apparatus |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2668438B2 (en) | Data retrieval device | |
| US6553002B1 (en) | Apparatus and method for routing data packets through a communications network | |
| US6779102B2 (en) | Data processor capable of executing an instruction that makes a cache memory ineffective | |
| US20120239702A1 (en) | String lookup using three-transition tree structure | |
| JPH05128164A (en) | Data base processing device | |
| JP3720094B2 (en) | Data-driven information processing device | |
| JPH04247571A (en) | Data processor | |
| JPH0814801B2 (en) | Programmable access memory | |
| JPH0668736B2 (en) | Apparatus and method for providing a cache memory unit with a write operation utilizing two system clock cycles | |
| JPH03118649A (en) | Memory subsystem input que | |
| JPH0322155A (en) | cache memory device | |
| JPH03225542A (en) | Memory of data and processing circuit for bit encode data | |
| JPH09114734A (en) | Store buffer device | |
| US7124280B2 (en) | Execution control apparatus of data driven information processor for instruction inputs | |
| US6671781B1 (en) | Data cache store buffer | |
| JP2735255B2 (en) | Hatching treatment method | |
| JPH052608A (en) | Data retrieval device | |
| JP2590866B2 (en) | Data retrieval device | |
| JPH04367084A (en) | Data driving type calculator | |
| JPS63251835A (en) | Vector processing device | |
| JPH06103477B2 (en) | Parallel cache memory | |
| JP2615046B2 (en) | Record addition processing method | |
| JP3318787B2 (en) | Data management method and device | |
| JPH0766391B2 (en) | Search method for associative matrix | |
| JPH0528291A (en) | Storage device |