JPH0528290A - データ駆動形計算機 - Google Patents
データ駆動形計算機Info
- 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の両方をアクセスす
る。
インの不要な混雑を避けることができ、オーバーフロー
パケットによる混雑やハッシュ衝突に起因する実行停止
を回避することができるデータ駆動形計算機を得る。 【構成】 待ち合わせメモリとしてハッシュメモリを有
し、このハッシュメモリの各アドレスに当該ハッシュア
ドレスでハッシュ衝突が生じオーバーフローパケットを
出力した時にセットするOVフラグを設けた発火処理部
101を備えるとともに、待ち合わせメモリとして前記
発火処理部101から出力されたオーバーフローパケッ
トを前記ハッシュメモリと同一のハッシュ関数で、かつ
チェイン接続を用いて格納するハッシュメモリを有する
拡張発火処理器106を備える。パケットは発火処理部
101か拡張発火処理器106の何れかに格納され、O
Vフラグがセットされているアドレスに関しては発火処
理部101と拡張発火処理器106の両方をアクセスす
る。
Description
【0001】
【産業上の利用分野】本発明は、データの依存関係に基
づいて処理を駆動する方式のデータ駆動形計算機に係
り、特に巡回パイプライン構成で待ち合わせメモリのあ
ふれによる実行停止の回避に関するものである。
づいて処理を駆動する方式のデータ駆動形計算機に係
り、特に巡回パイプライン構成で待ち合わせメモリのあ
ふれによる実行停止の回避に関するものである。
【0002】
【従来の技術】図16はデータ駆動形計算機におけるデ
ータ処理の概念図であり、2つのデータの加算が行われ
ている様子を示している。図において、“A”という値
を持ち“a”という識別子を付加されたパケット81が
発火処理部87に与えられると、この発火処理部87の
識別子フィールド比較部84は、同発火処理部87内の
待ち合わせメモリ85に新たに入力された前記パケット
81の識別子“a”と一致する識別子を持つパケットが
既に格納されているか否かを検索する。図16の例で
は、“B”という値を持ち、“a”という識別子を持つ
パケット82が既に格納されているので、このパケット
82が待ち合わせメモリ85から読み出され、入力され
たパケット81と共にデータ対形成部86に転送され
る。
ータ処理の概念図であり、2つのデータの加算が行われ
ている様子を示している。図において、“A”という値
を持ち“a”という識別子を付加されたパケット81が
発火処理部87に与えられると、この発火処理部87の
識別子フィールド比較部84は、同発火処理部87内の
待ち合わせメモリ85に新たに入力された前記パケット
81の識別子“a”と一致する識別子を持つパケットが
既に格納されているか否かを検索する。図16の例で
は、“B”という値を持ち、“a”という識別子を持つ
パケット82が既に格納されているので、このパケット
82が待ち合わせメモリ85から読み出され、入力され
たパケット81と共にデータ対形成部86に転送され
る。
【0003】データ対形成部86はパケット81と82
とを合体し、“A”という値と“B”という値とに
“a”という識別子を付加したデータ83を形成し(こ
れを発火という)、データ処理部88に転送する。デー
タ処理部88は「A+B」の演算を実行する。この演算
結果は、図示しないプログラムメモリにおいて識別子の
一部をアドレスとしてメモリの読出しを行い、識別子の
更新を行った後、外部に出力されるか、または再度、発
火処理部87に入力される。これらの発火処理部87、
データ処理部88、及び図示しないプログラムメモリと
から巡回パイプラインが構成される。
とを合体し、“A”という値と“B”という値とに
“a”という識別子を付加したデータ83を形成し(こ
れを発火という)、データ処理部88に転送する。デー
タ処理部88は「A+B」の演算を実行する。この演算
結果は、図示しないプログラムメモリにおいて識別子の
一部をアドレスとしてメモリの読出しを行い、識別子の
更新を行った後、外部に出力されるか、または再度、発
火処理部87に入力される。これらの発火処理部87、
データ処理部88、及び図示しないプログラムメモリと
から巡回パイプラインが構成される。
【0004】図16の例では、入力されたパケット81
と同じ識別子“a”を持つパケット82が待ち合わせメ
モリ85に既に格納されていたが、入力されたパケット
81と同じ識別子を持つパケットが待ち合わせメモリ8
5に格納されていなかった場合は、入力されたパケット
81は待ち合わせメモリ85に格納され、これと一致す
る識別子を持つパケットが入力されるまで待機させられ
る。
と同じ識別子“a”を持つパケット82が待ち合わせメ
モリ85に既に格納されていたが、入力されたパケット
81と同じ識別子を持つパケットが待ち合わせメモリ8
5に格納されていなかった場合は、入力されたパケット
81は待ち合わせメモリ85に格納され、これと一致す
る識別子を持つパケットが入力されるまで待機させられ
る。
【0005】このように発火処理部87はデータ駆動形
計算機において演算すべきパケットを検索し、識別子が
一致するパケットについてはこれを合体して出力する機
能を持っている。
計算機において演算すべきパケットを検索し、識別子が
一致するパケットについてはこれを合体して出力する機
能を持っている。
【0006】ところで、かかるデータ駆動形計算機にあ
っては、識別子のビット幅はプログラム空間のビット幅
に相当するため、数10ビットとなり、識別子毎にメモ
リの空間を割り当てると、メモリ容量が膨大なものにな
る。このため、従来から待ち合わせメモリ85に用いる
メモリとして、一定のルールのもとにビット幅を圧縮
(ハッシュ)し、これをメモリアドレスとして用いたメ
モリ,すなわちハッシュメモリを用いている。
っては、識別子のビット幅はプログラム空間のビット幅
に相当するため、数10ビットとなり、識別子毎にメモ
リの空間を割り当てると、メモリ容量が膨大なものにな
る。このため、従来から待ち合わせメモリ85に用いる
メモリとして、一定のルールのもとにビット幅を圧縮
(ハッシュ)し、これをメモリアドレスとして用いたメ
モリ,すなわちハッシュメモリを用いている。
【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ビットにプロセッサ番号
が格納されるようになっている。
ビットマップ図、図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ビットにプロセッサ番号
が格納されるようになっている。
【0008】図18に示すハッシュメモリ601は、ノ
ード番号NNの下位9ビットをハッシュアドレスとして
アクセスされるものであり、リード/ライトサイクルを
定めるリード/ライト信号W/バーR・H、書き込みデ
ータ及び各アドレスの有効/無効の区別を示すプレゼン
スビットPBの更新を行うセット/リセット信号S/バ
ーRが与えられる。
ード番号NNの下位9ビットをハッシュアドレスとして
アクセスされるものであり、リード/ライトサイクルを
定めるリード/ライト信号W/バーR・H、書き込みデ
ータ及び各アドレスの有効/無効の区別を示すプレゼン
スビットPBの更新を行うセット/リセット信号S/バ
ーRが与えられる。
【0009】このハッシュメモリ601に格納される書
き込みデータは18ビットのオペランドデータODと、
9ビットのカラー/世代識別番号DN及びノード番号N
Nの残り12ビットの計21ビットの識別子と、1ビッ
トのプロセッサ選択ビットPSの合計40ビットからな
っている。また、これとは別に、1ビットのプレゼンス
ビットPBが格納されるようになっており、合計で1ワ
ード41ビット構成となっている。また、そのアドレス
空間は29=512となっており、ハッシュメモリ60
1は41ビット/ワード×512の大きさを有してい
る。
き込みデータは18ビットのオペランドデータODと、
9ビットのカラー/世代識別番号DN及びノード番号N
Nの残り12ビットの計21ビットの識別子と、1ビッ
トのプロセッサ選択ビットPSの合計40ビットからな
っている。また、これとは別に、1ビットのプレゼンス
ビットPBが格納されるようになっており、合計で1ワ
ード41ビット構成となっている。また、そのアドレス
空間は29=512となっており、ハッシュメモリ60
1は41ビット/ワード×512の大きさを有してい
る。
【0010】
【発明が解決しようとする課題】従来のデータ駆動形計
算機は以上のように構成され、発火処理部の待ち合わせ
メモリ内に納まり切れなかったパケットは、巡回パイプ
ライン構成のループ内を無為に周回することで待ち合わ
せメモリに空きができるのを待っていた。この様なオー
バーフローパケットがループ内を周回するとパイプライ
ンが混雑する。また、オーバーフローパケット同志では
発火できないのでデッドロック,すなわち実行停止の虞
があった。また、ハッシュメモリ601を用いた場合、
ハッシュしたアドレス(ハッシュアドレス)をアクセス
した時に同一アドレスでの衝突,いわゆるハッシュ衝突
が起こる虞れがある。すなわち、ハッシュ衝突とは、識
別子の一部をハッシュアドレスとした場合に、ハッシュ
アドレスが既にハッシュメモリ601内に格納されたデ
ータと一致しても、残りの識別子が一致しないデータが
アクセスされた時、そのデータを記憶したアドレスが既
に占有されているために起こるものである。
算機は以上のように構成され、発火処理部の待ち合わせ
メモリ内に納まり切れなかったパケットは、巡回パイプ
ライン構成のループ内を無為に周回することで待ち合わ
せメモリに空きができるのを待っていた。この様なオー
バーフローパケットがループ内を周回するとパイプライ
ンが混雑する。また、オーバーフローパケット同志では
発火できないのでデッドロック,すなわち実行停止の虞
があった。また、ハッシュメモリ601を用いた場合、
ハッシュしたアドレス(ハッシュアドレス)をアクセス
した時に同一アドレスでの衝突,いわゆるハッシュ衝突
が起こる虞れがある。すなわち、ハッシュ衝突とは、識
別子の一部をハッシュアドレスとした場合に、ハッシュ
アドレスが既にハッシュメモリ601内に格納されたデ
ータと一致しても、残りの識別子が一致しないデータが
アクセスされた時、そのデータを記憶したアドレスが既
に占有されているために起こるものである。
【0011】ここで、ハッシュメモリ601を図16の
待ち合わせメモリ85に適用したデータ駆動形計算機に
おいて、図19の(a)に示すデータフローグラフを実
行する場合について考察する。なお、説明を簡単にする
ために、ハッシュメモリ601はノード番号の下位2ビ
ットをハッシュアドレスとしてアクセスされ、4つのパ
ケットを格納するだけの容量(アドレス空間=22=
4)を持つものとして説明する。
待ち合わせメモリ85に適用したデータ駆動形計算機に
おいて、図19の(a)に示すデータフローグラフを実
行する場合について考察する。なお、説明を簡単にする
ために、ハッシュメモリ601はノード番号の下位2ビ
ットをハッシュアドレスとしてアクセスされ、4つのパ
ケットを格納するだけの容量(アドレス空間=22=
4)を持つものとして説明する。
【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”)」を指すことになる。
データフローではノード数=8で構成され、6つの入力
パケットを演算処理するようになっているが、ここでは
特に、番号0のノードの左入力となる第2パケットが番
号7のノードの左入力にもなっている。ハッシュメモリ
601をアクセスするメモリアドレスは4メモリアドレ
スとなり、図19の(a)のデータフローグラフのノー
ド番号とメモリアドレスとは同図の(b)に示すような
対応関係となる。この時、図19の(a)において、番
号3(“011”)のノードの左入力となる第1パケッ
トと番号7(“111”)のノードの左入力となる第2
パケットとは、ノード番号の下位2ビットが同じ値
(“11”)であるので、ハッシュメモリ601の同一
メモリアドレス「3(“11”)」を指すことになる。
【0013】データ駆動形計算機の場合、一般にデータ
の到着順によらず同一の結果を得られることが保証され
ている。ところが、ハッシュメモリの容量が小さい時は
次のような問題が起こる。すなわち、第2パケットが第
1パケットよりも先にハッシュメモリ601に格納され
た場合、第2パケットは番号7のノードの右入力となる
第3パケットを待つことになるが、第3パケットは番号
3,5及び6のノードが実行されないと生成されない。
しかし、第2パケットが第1パケットより先にハッシュ
メモリ601に格納されてしまっているので、第2パケ
ットは待ち合わせの相手である第3パケットが何時まで
経っても現れないことになる。このため、第2パケット
がハッシュメモリ601内に格納されたままになり、第
1パケットと第2パケットがハッシュ衝突を引き起こし
た状態となる。この結果、第1パケットはハッシュメモ
リ601に格納されなくなり、従って、番号3のノード
の演算は永久に実行されず、結局、演算処理が停止して
しまうことになる。
の到着順によらず同一の結果を得られることが保証され
ている。ところが、ハッシュメモリの容量が小さい時は
次のような問題が起こる。すなわち、第2パケットが第
1パケットよりも先にハッシュメモリ601に格納され
た場合、第2パケットは番号7のノードの右入力となる
第3パケットを待つことになるが、第3パケットは番号
3,5及び6のノードが実行されないと生成されない。
しかし、第2パケットが第1パケットより先にハッシュ
メモリ601に格納されてしまっているので、第2パケ
ットは待ち合わせの相手である第3パケットが何時まで
経っても現れないことになる。このため、第2パケット
がハッシュメモリ601内に格納されたままになり、第
1パケットと第2パケットがハッシュ衝突を引き起こし
た状態となる。この結果、第1パケットはハッシュメモ
リ601に格納されなくなり、従って、番号3のノード
の演算は永久に実行されず、結局、演算処理が停止して
しまうことになる。
【0014】このようにハッシュメモリ601の容量よ
り大きなデータフローグラフを実行する場合、同一メモ
リアドレスを複数のノードが発火のために使用すること
があるので、パケットの到着順によってはハッシュ衝突
を引き起こし、データフローグラフの実行が途中で停止
してしまうという問題点があった。
り大きなデータフローグラフを実行する場合、同一メモ
リアドレスを複数のノードが発火のために使用すること
があるので、パケットの到着順によってはハッシュ衝突
を引き起こし、データフローグラフの実行が途中で停止
してしまうという問題点があった。
【0015】そこで、本出願人はこのような問題を解決
する手段の1つとして、ハッシュメモリを用いた待ち合
わせメモリの他に、ハッシュメモリと同時にアクセスさ
れる小容量(32ワード)の連想メモリを設け、ハッシ
ュ衝突で待ち合わせメモリに格納しえなかったパケット
については連想メモリに格納し、ここで待ち合わせを行
うようにしたものを既に提案している。しかし、この連
想メモリを設ける構成においては、連想メモリの容量以
上のハッシュ衝突がおこると、上述したような問題と同
様の問題が起こる。これは、連想メモリの容量を大きく
することにより解決することが可能であるが、ハードウ
ェアとしての構成が大規模になるばかりか、行き先ノー
ド番号が一致するパケットを検索する際に、常に全ての
アドレスを検索することになるので、全体のパイプライ
ン処理速度が著しく低下するという問題を引き起こす。
する手段の1つとして、ハッシュメモリを用いた待ち合
わせメモリの他に、ハッシュメモリと同時にアクセスさ
れる小容量(32ワード)の連想メモリを設け、ハッシ
ュ衝突で待ち合わせメモリに格納しえなかったパケット
については連想メモリに格納し、ここで待ち合わせを行
うようにしたものを既に提案している。しかし、この連
想メモリを設ける構成においては、連想メモリの容量以
上のハッシュ衝突がおこると、上述したような問題と同
様の問題が起こる。これは、連想メモリの容量を大きく
することにより解決することが可能であるが、ハードウ
ェアとしての構成が大規模になるばかりか、行き先ノー
ド番号が一致するパケットを検索する際に、常に全ての
アドレスを検索することになるので、全体のパイプライ
ン処理速度が著しく低下するという問題を引き起こす。
【0016】本発明の目的は、オーバーフローパケット
によるパイプラインの不要な混雑を避けることができ、
オーバーフローパケットによる混雑やハッシュ衝突に起
因する実行停止を回避することができるデータ駆動形計
算機を得ることにある。
によるパイプラインの不要な混雑を避けることができ、
オーバーフローパケットによる混雑やハッシュ衝突に起
因する実行停止を回避することができるデータ駆動形計
算機を得ることにある。
【0017】
【課題を解決するための手段】本発明は、少なくとも次
に実行すべき命令の場所を示す行き先ノード番号を含む
識別情報及びデータを有するパケットを格納する待ち合
わせメモリを備え、この待ち合わせメモリに格納された
パケットと新たに入力されたパケットとの少なくとも行
き先ノード番号が一致するパケットを検出し、一致した
パケットを合体する発火処理を行う発火処理部を有する
巡回パイプライン構成のデータ駆動形計算機において、
前記待ち合わせメモリとしてハッシュメモリを有し、こ
のハッシュメモリの各アドレスに当該ハッシュアドレス
でハッシュ衝突が生じオーバーフローパケットを出力し
た時にセットするOVフラグを設けた第1の発火処理部
を備えるとともに、待ち合わせメモリとして前記第1の
発火処理部から出力されたオーバーフローパケットを前
記ハッシュメモリと同一のハッシュ関数で、かつチェイ
ン接続を用いて格納するハッシュメモリを有する第2の
発火処理部を備え、前記第1の発火処理部は、ハッシュ
衝突により生じたオーバーフローパケットを第2の発火
処理部に出力するとともに、ハッシュ衝突を起こしたア
ドレスのOVフラグをセットし、以降,OVフラグがセ
ットされたハッシュアドレスで発火しないパケットは第
2の発火処理部に出力し、前記第2の発火処理部は、ハ
ッシュメモリに既に格納されているパケットと新たに入
力されたパケットとを比較し、少なくとも行き先ノード
番号が一致するパケットがあれば発火処理を行なうとと
もに、当該パケットが該ハッシュアドレスよりチェイン
に接続されている唯一のパケットの時は当該発火パケッ
トにその旨を示すために付加されたOVCフラグをセッ
トして第1の発火処理部へ出力し、前記第1の発火処理
部は、入力された発火パケットのOVCフラグがセット
されている時は当該ハッシュアドレスのOVフラグをク
リアするようにしたものである。
に実行すべき命令の場所を示す行き先ノード番号を含む
識別情報及びデータを有するパケットを格納する待ち合
わせメモリを備え、この待ち合わせメモリに格納された
パケットと新たに入力されたパケットとの少なくとも行
き先ノード番号が一致するパケットを検出し、一致した
パケットを合体する発火処理を行う発火処理部を有する
巡回パイプライン構成のデータ駆動形計算機において、
前記待ち合わせメモリとしてハッシュメモリを有し、こ
のハッシュメモリの各アドレスに当該ハッシュアドレス
でハッシュ衝突が生じオーバーフローパケットを出力し
た時にセットするOVフラグを設けた第1の発火処理部
を備えるとともに、待ち合わせメモリとして前記第1の
発火処理部から出力されたオーバーフローパケットを前
記ハッシュメモリと同一のハッシュ関数で、かつチェイ
ン接続を用いて格納するハッシュメモリを有する第2の
発火処理部を備え、前記第1の発火処理部は、ハッシュ
衝突により生じたオーバーフローパケットを第2の発火
処理部に出力するとともに、ハッシュ衝突を起こしたア
ドレスのOVフラグをセットし、以降,OVフラグがセ
ットされたハッシュアドレスで発火しないパケットは第
2の発火処理部に出力し、前記第2の発火処理部は、ハ
ッシュメモリに既に格納されているパケットと新たに入
力されたパケットとを比較し、少なくとも行き先ノード
番号が一致するパケットがあれば発火処理を行なうとと
もに、当該パケットが該ハッシュアドレスよりチェイン
に接続されている唯一のパケットの時は当該発火パケッ
トにその旨を示すために付加されたOVCフラグをセッ
トして第1の発火処理部へ出力し、前記第1の発火処理
部は、入力された発火パケットのOVCフラグがセット
されている時は当該ハッシュアドレスのOVフラグをク
リアするようにしたものである。
【0018】
【作用】本発明においては、従来からある第1の発火処
理部をオーバーフローしたパケットは新たに設けられた
第2の発火処理部に送り、ここで発火処理を行なう。そ
の際、オーバーフローしたハッシュアドレスのOVフラ
グをセットし、以降,第1の発火処理部に与えられたパ
ケットは、OVフラグのセットされたハッシュアドレス
となるパケットのみ第1の発火処理部と第2の発火処理
部の両方でマッチングを行なう。OVフラグは、第2の
発火処理部の該当ハッシュアドレスに対応するチェイン
接続されたパケットが全て発火し出力された場合に、O
VCフラグがセットされた発火パケットによりクリアさ
れる。このように、オーバーフローパケットを受け入れ
る第2の発火処理部を設け、一度オーバーフローが起こ
ったら両方の発火処理部をアクセスすることにより、オ
ーバーフローによるパイプラインの混雑やデッドロック
(実行停止)を防止することができる。
理部をオーバーフローしたパケットは新たに設けられた
第2の発火処理部に送り、ここで発火処理を行なう。そ
の際、オーバーフローしたハッシュアドレスのOVフラ
グをセットし、以降,第1の発火処理部に与えられたパ
ケットは、OVフラグのセットされたハッシュアドレス
となるパケットのみ第1の発火処理部と第2の発火処理
部の両方でマッチングを行なう。OVフラグは、第2の
発火処理部の該当ハッシュアドレスに対応するチェイン
接続されたパケットが全て発火し出力された場合に、O
VCフラグがセットされた発火パケットによりクリアさ
れる。このように、オーバーフローパケットを受け入れ
る第2の発火処理部を設け、一度オーバーフローが起こ
ったら両方の発火処理部をアクセスすることにより、オ
ーバーフローによるパイプラインの混雑やデッドロック
(実行停止)を防止することができる。
【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に分岐させる。
明する。図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に分岐させる。
【0020】拡張発火処理器106は、待ち合わせメモ
リとして上記オーバーフローパケットを発火処理部10
1のハッシュメモリと同一のハッシュ関数で、かつチェ
イン接続を用いて格納するハッシュメモリを有し、この
ハッシュメモリに既に格納されているパケットと新たに
入力されたパケットとを比較する。そして、少なくとも
行き先ノード番号が一致するパケットがあれば発火処理
を行い発火パケットとして出力するが、相手パケットが
該ハッシュアドレスよりチェインに接続されている唯一
のパケットの時は当該発火パケットにその旨を示すため
に付加されたOVCフラグをセットして出力し、NSフ
ラグがセットされたパケットの時は当該発火パケットに
その旨を示すために付加されたPKCフラグをセットし
て出力する。また、オーバーフローパケットが発火しな
かった場合には格納されるが、NSフラグがセットされ
た入力パケット(発火処理部101に既に格納されたパ
ケット)が発火しなかった時は、発火処理部101と拡
張発火処理器106の両方に格納されるのを防ぐため当
該パケットを消去する。
リとして上記オーバーフローパケットを発火処理部10
1のハッシュメモリと同一のハッシュ関数で、かつチェ
イン接続を用いて格納するハッシュメモリを有し、この
ハッシュメモリに既に格納されているパケットと新たに
入力されたパケットとを比較する。そして、少なくとも
行き先ノード番号が一致するパケットがあれば発火処理
を行い発火パケットとして出力するが、相手パケットが
該ハッシュアドレスよりチェインに接続されている唯一
のパケットの時は当該発火パケットにその旨を示すため
に付加されたOVCフラグをセットして出力し、NSフ
ラグがセットされたパケットの時は当該発火パケットに
その旨を示すために付加されたPKCフラグをセットし
て出力する。また、オーバーフローパケットが発火しな
かった場合には格納されるが、NSフラグがセットされ
た入力パケット(発火処理部101に既に格納されたパ
ケット)が発火しなかった時は、発火処理部101と拡
張発火処理器106の両方に格納されるのを防ぐため当
該パケットを消去する。
【0021】拡張発火処理器106から出力された発火
パケットは、合流制御部105を介して発火処理部10
1に入力される。発火処理部101では、入力された発
火パケットを素通りさせるが、PKCフラグがセットさ
れている時は当該ハッシュアドレスに格納されたパケッ
トをクリアし、OVCフラグがセットされている時は当
該ハッシュアドレスのOVフラグをクリアする。なお、
発火処理部101から出力される発火パケットは分岐制
御部104を介して演算処理部102に入力され、その
演算結果は、プログラム記憶部103でタグが更新され
て合流制御部105を通じて発火処理部101に再度入
力される。
パケットは、合流制御部105を介して発火処理部10
1に入力される。発火処理部101では、入力された発
火パケットを素通りさせるが、PKCフラグがセットさ
れている時は当該ハッシュアドレスに格納されたパケッ
トをクリアし、OVCフラグがセットされている時は当
該ハッシュアドレスのOVフラグをクリアする。なお、
発火処理部101から出力される発火パケットは分岐制
御部104を介して演算処理部102に入力され、その
演算結果は、プログラム記憶部103でタグが更新され
て合流制御部105を通じて発火処理部101に再度入
力される。
【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の制御内容を示す。
であり、これはハッシュメモリの他に連想メモリを備え
た,既に本出願人が提案済みのもの(特願平3−122
338号等)に本発明を適用した概略構成を示すもので
あるが、ハッシュメモリのみのものにも適用できること
はもちろんである。図示のように、この発火処理部10
1は、ハッシュメモリ1,連想メモリ2,ハッシュ処理
器3,比較器4,制御部5,セレクタ6,オペランド交
換器7等から構成され、上述した先の出願のものとほぼ
同様なものであるが、上述した機能を実現するために若
干の機能拡張が必要となる。拡張内容は、ハッシュメモ
リ1の各アドレスに上述したOVフラグを格納するフィ
ールドを追加し、新たに上述したPKC,OVC,N
S,EXの4つの信号を付加したことである。これによ
って制御部5の動作が多少複雑化している。図3にハッ
シュメモリ格納データフィールドを示し、図4に制御部
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と同一のものが設
定されている。
示すブロック図である。図において、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と同一のものが設
定されている。
【0024】アドレス変換テーブル206の構成は、図
6に示すように、テーブル検索キーで指定し得る複数の
領域から構成され、パケットメモリ211におけるパケ
ットの格納アドレスを示すパケット格納アドレスPAを
記憶するパケット格納アドレス部223と、有効なパケ
ット格納アドレスPAが記憶されている時はPB=1,
記憶されていなければPB=0のプレゼンスビットPB
を記憶するプレゼンスビット部222とからなり、ハッ
シュ処理器202から出力されるハッシュアドレスをテ
ーブル検索キーとしてアクセスされ、この検索キーが検
索を行うべきパケットメモリ211のアドレスに変換さ
れる。図6においては、テーブル検索キーで検索される
パケットはパケットメモリ211のアドレスn1に格納
されていることを示している。
6に示すように、テーブル検索キーで指定し得る複数の
領域から構成され、パケットメモリ211におけるパケ
ットの格納アドレスを示すパケット格納アドレスPAを
記憶するパケット格納アドレス部223と、有効なパケ
ット格納アドレスPAが記憶されている時はPB=1,
記憶されていなければPB=0のプレゼンスビットPB
を記憶するプレゼンスビット部222とからなり、ハッ
シュ処理器202から出力されるハッシュアドレスをテ
ーブル検索キーとしてアクセスされ、この検索キーが検
索を行うべきパケットメモリ211のアドレスに変換さ
れる。図6においては、テーブル検索キーで検索される
パケットはパケットメモリ211のアドレスn1に格納
されていることを示している。
【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から読み出される。
タメモリ212の構成は、図7に示すように、パケット
格納アドレスPAで指定し得る複数の領域から構成さ
れ、パケットメモリ211はタグを記憶するタグ部21
8とデータを記憶するデータ部219とからなり、また
チェインポインタメモリ212はチェインビットCBを
記憶するチェインビット部220とチェインアドレスC
Aを記憶するチェインアドレス部221とからなってい
る。例えば、パケット格納アドレスPAによってアドレ
スn1がアクセスされたとすると、このアドレスn1に格
納されているタグ=T1,データ=D1とからなるパケッ
トがパケットメモリ211から読み出され、チェインビ
ットCB=1とチェインアドレスCA=n11がチェイン
ポインタメモリ212から読み出される。
【0026】チェインビットCB=1はタグT1と同一
のハッシュアドレスとなるパケットが他に存在すること
を示し、チェインアドレスCAはそのパケットが格納さ
れているアドレスを示すもので、CB=0の場合は同一
のハッシュアドレスとなるパケットがこれ以上存在しな
いことを示している。例えば、図7の例では、パケット
格納アドレスPAがn1,n11,n13であるパケットメ
モリ211のアドレスには、同一のハッシュアドレスと
なるパケットが格納されていることを表している。
のハッシュアドレスとなるパケットが他に存在すること
を示し、チェインアドレスCAはそのパケットが格納さ
れているアドレスを示すもので、CB=0の場合は同一
のハッシュアドレスとなるパケットがこれ以上存在しな
いことを示している。例えば、図7の例では、パケット
格納アドレスPAがn1,n11,n13であるパケットメ
モリ211のアドレスには、同一のハッシュアドレスと
なるパケットが格納されていることを表している。
【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)。
記拡張発火処理器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)。
【0028】次に、オーバーフローパケットを例にとっ
て、チェイン接続を用いたパケットの格納及び発火処理
の詳細について図9のフローチャートを参照して説明す
る。なお、発火処理部101に既に格納済みでNSフラ
グがセットされた入力パケットについても、発火しない
場合に消去される点を除けばほぼ同様である。また、図
9において、(1),(2)を付した各処理の細かい内
容は図10〜図15に示す。まず、入力パケット201
としてオーバーフローパケットが入力されると、ハッシ
ュ処理器202においてオーバーフローパケットのタグ
を圧縮することによってハッシュアドレスが生成され、
生成されたハッシュアドレスによりアドレス変換テーブ
ル206を検索する(ステップS1)。この結果、ハッ
シュアドレスで示されるアドレス変換テーブル206に
おけるアドレスのプレゼンスビットPBが“0”であっ
たならば(ステップS2)、パケットは格納されていな
いことになるので、この時入力されたパケットを書き込
みアドレスポインタ207によって指示されているパケ
ットメモリ211のアドレスに格納すると共に、変換テ
ーブル206のプレゼンスビットPBを“1”に書き換
える(ステップS3,詳細は図10を参照)。
て、チェイン接続を用いたパケットの格納及び発火処理
の詳細について図9のフローチャートを参照して説明す
る。なお、発火処理部101に既に格納済みでNSフラ
グがセットされた入力パケットについても、発火しない
場合に消去される点を除けばほぼ同様である。また、図
9において、(1),(2)を付した各処理の細かい内
容は図10〜図15に示す。まず、入力パケット201
としてオーバーフローパケットが入力されると、ハッシ
ュ処理器202においてオーバーフローパケットのタグ
を圧縮することによってハッシュアドレスが生成され、
生成されたハッシュアドレスによりアドレス変換テーブ
ル206を検索する(ステップS1)。この結果、ハッ
シュアドレスで示されるアドレス変換テーブル206に
おけるアドレスのプレゼンスビットPBが“0”であっ
たならば(ステップS2)、パケットは格納されていな
いことになるので、この時入力されたパケットを書き込
みアドレスポインタ207によって指示されているパケ
ットメモリ211のアドレスに格納すると共に、変換テ
ーブル206のプレゼンスビットPBを“1”に書き換
える(ステップS3,詳細は図10を参照)。
【0029】ステップS2において、ハッシュアドレス
で示されるテーブルアドレスのプレゼンスビットPBが
“1”であったならば、制御部217はセレクタ210
をアドレス変換テーブル206の出力側に切り換え、P
B=1となっているテーブルアドレスから読み出されて
いるパケット格納アドレスPAをセレクタ210を通じ
てパケットメモリ211の検索アドレスとして入力し、
該パケット格納アドレスPAで示されるアドレスに格納
されているパケットを読み出す(ステップS4,図11
を参照)。
で示されるテーブルアドレスのプレゼンスビットPBが
“1”であったならば、制御部217はセレクタ210
をアドレス変換テーブル206の出力側に切り換え、P
B=1となっているテーブルアドレスから読み出されて
いるパケット格納アドレスPAをセレクタ210を通じ
てパケットメモリ211の検索アドレスとして入力し、
該パケット格納アドレスPAで示されるアドレスに格納
されているパケットを読み出す(ステップS4,図11
を参照)。
【0030】パケットメモリ211から読み出されたパ
ケットのタグは比較器216に入力され、ここで入力さ
れたオーバーフローパケットのタグと比較され、この結
果、タグが一致したならば(ステップS5)、発火処理
が行なわれるとともにアドレスがクリアされる(ステッ
プS6,図12を参照)。これらのパケットは発火パケ
ット224として合体されて出力され、合流制御部10
5,発火処理部101,分岐制御部104,演算処理部
102へと転送される。
ケットのタグは比較器216に入力され、ここで入力さ
れたオーバーフローパケットのタグと比較され、この結
果、タグが一致したならば(ステップS5)、発火処理
が行なわれるとともにアドレスがクリアされる(ステッ
プS6,図12を参照)。これらのパケットは発火パケ
ット224として合体されて出力され、合流制御部10
5,発火処理部101,分岐制御部104,演算処理部
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以降の処理が繰り返される。
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以降の処理が繰り返される。
【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の
両方をアクセスする。
ュメモリを用いた発火処理部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の
両方をアクセスする。
【0033】このようにした結果、オーバーフローパケ
ットによるパイプラインの不要な混雑を避けることがで
き、オーバーフローパケットによる混雑やハッシュ衝突
に起因するデッドロック,すなわち実行停止を回避する
ことができる。拡張発火処理器106は、少量のロジッ
クと、あとは通常のDRAMやSRAMで構成可能であ
り、リーズナブルである。
ットによるパイプラインの不要な混雑を避けることがで
き、オーバーフローパケットによる混雑やハッシュ衝突
に起因するデッドロック,すなわち実行停止を回避する
ことができる。拡張発火処理器106は、少量のロジッ
クと、あとは通常のDRAMやSRAMで構成可能であ
り、リーズナブルである。
【0034】なお、上記実施例では、発火処理部101
において、OVフラグがセットされているハッシュアド
レスが発火して空になり新たなパケットが格納された時
は、当該パケットにその旨を示すために付加されたNS
フラグを“1”にセットして拡張発火処理器106に出
力するようにしたが、OVフラグがセットされているハ
ッシュアドレスが発火して空になってもOVフラグがセ
ットされている間は、当該ハッシュアドレスに新たなパ
ケットが到来しても格納せずにオーバーフローパケット
して拡張発火処理器106に出力するようにしてもよ
く、この場合、拡張発火処理器106や発火処理部10
1での該当パケットの消去,クリアは不要となり、それ
に関するNSフラグ及びPKCフラグも不要となる。ま
た、上記実施例では、発火処理部101から全てのパケ
ットを巡回パイプライン上に出力し、分岐制御部104
でEXフラグに基づきオーバーフローパケット等は拡張
発火処理器106に分岐させるようにしたが、該当パケ
ットは発火処理部101から拡張発火処理器106に直
接送出するようにしてもよく、この場合、分岐制御部1
04やEXフラグは不要となる。
において、OVフラグがセットされているハッシュアド
レスが発火して空になり新たなパケットが格納された時
は、当該パケットにその旨を示すために付加されたNS
フラグを“1”にセットして拡張発火処理器106に出
力するようにしたが、OVフラグがセットされているハ
ッシュアドレスが発火して空になってもOVフラグがセ
ットされている間は、当該ハッシュアドレスに新たなパ
ケットが到来しても格納せずにオーバーフローパケット
して拡張発火処理器106に出力するようにしてもよ
く、この場合、拡張発火処理器106や発火処理部10
1での該当パケットの消去,クリアは不要となり、それ
に関するNSフラグ及びPKCフラグも不要となる。ま
た、上記実施例では、発火処理部101から全てのパケ
ットを巡回パイプライン上に出力し、分岐制御部104
でEXフラグに基づきオーバーフローパケット等は拡張
発火処理器106に分岐させるようにしたが、該当パケ
ットは発火処理部101から拡張発火処理器106に直
接送出するようにしてもよく、この場合、分岐制御部1
04やEXフラグは不要となる。
【0035】
【発明の効果】以上説明したように、本発明では、待ち
合わせメモリとしてハッシュメモリを有し、このハッシ
ュメモリの各アドレスに当該ハッシュアドレスでハッシ
ュ衝突が生じオーバーフローパケットを出力した時にセ
ットするOVフラグを設けた第1の発火処理部を備える
とともに、待ち合わせメモリとして前記第1の発火処理
部から出力されたオーバーフローパケットを前記ハッシ
ュメモリと同一のハッシュ関数で、かつチェイン接続を
用いて格納するハッシュメモリを有する第2の発火処理
部を備え、前記第1の発火処理部は、ハッシュ衝突によ
り生じたオーバーフローパケットを第2の発火処理部に
出力するとともに、ハッシュ衝突を起こしたアドレスの
OVフラグをセットし、以降,OVフラグがセットされ
たハッシュアドレスで発火しないパケットは第2の発火
処理部に出力し、前記第2の発火処理部は、ハッシュメ
モリに既に格納されているパケットと新たに入力された
パケットとを比較し、少なくとも行き先ノード番号が一
致するパケットがあれば発火処理を行なうとともに、当
該パケットが該ハッシュアドレスよりチェインに接続さ
れている唯一のパケットの時は当該発火パケットにその
旨を示すために付加されたOVCフラグをセットして第
1の発火処理部へ出力し、前記第1の発火処理部は、入
力された発火パケットのOVCフラグがセットされてい
る時は当該ハッシュアドレスのOVフラグをクリアする
ようにしたので、オーバーフローパケットによるパイプ
ラインの不要な混雑を避けることができ、オーバーフロ
ーパケットによる混雑やハッシュ衝突に起因する実行停
止を回避することができるといった効果がある。
合わせメモリとしてハッシュメモリを有し、このハッシ
ュメモリの各アドレスに当該ハッシュアドレスでハッシ
ュ衝突が生じオーバーフローパケットを出力した時にセ
ットするOVフラグを設けた第1の発火処理部を備える
とともに、待ち合わせメモリとして前記第1の発火処理
部から出力されたオーバーフローパケットを前記ハッシ
ュメモリと同一のハッシュ関数で、かつチェイン接続を
用いて格納するハッシュメモリを有する第2の発火処理
部を備え、前記第1の発火処理部は、ハッシュ衝突によ
り生じたオーバーフローパケットを第2の発火処理部に
出力するとともに、ハッシュ衝突を起こしたアドレスの
OVフラグをセットし、以降,OVフラグがセットされ
たハッシュアドレスで発火しないパケットは第2の発火
処理部に出力し、前記第2の発火処理部は、ハッシュメ
モリに既に格納されているパケットと新たに入力された
パケットとを比較し、少なくとも行き先ノード番号が一
致するパケットがあれば発火処理を行なうとともに、当
該パケットが該ハッシュアドレスよりチェインに接続さ
れている唯一のパケットの時は当該発火パケットにその
旨を示すために付加されたOVCフラグをセットして第
1の発火処理部へ出力し、前記第1の発火処理部は、入
力された発火パケットのOVCフラグがセットされてい
る時は当該ハッシュアドレスのOVフラグをクリアする
ようにしたので、オーバーフローパケットによるパイプ
ラインの不要な混雑を避けることができ、オーバーフロ
ーパケットによる混雑やハッシュ衝突に起因する実行停
止を回避することができるといった効果がある。
【図1】この発明の一実施例に係るデータ駆動形計算機
の全体構成図である。
の全体構成図である。
【図2】図1の発火処理部の一実施例を示す構成図であ
る。
る。
【図3】図2のハッシュメモリ格納データフィールドを
示す図である。
示す図である。
【図4】図2の制御部の制御内容を示す図である。
【図5】図1の拡張発火処理器の一実施例を示す詳細構
成図である。
成図である。
【図6】図5のアドレス変換テーブルの構成説明図であ
る。
る。
【図7】図5のパケットメモリとチェインポインタメモ
リの構成説明図である。
リの構成説明図である。
【図8】実施例の拡張発火処理器の全体動作を示すフロ
ーチャートである。
ーチャートである。
【図9】実施例の拡張発火処理器の詳細動作を示すフロ
ーチャートである。
ーチャートである。
【図10】図9のパケット格納(1)の詳細を示すフロ
ーチャートである。
ーチャートである。
【図11】図9のパケット検索(1)の詳細を示すフロ
ーチャートである。
ーチャートである。
【図12】図9のアドレスクリア(1)の詳細を示すフ
ローチャートである。
ローチャートである。
【図13】図9のパケット格納(2)の詳細を示すフロ
ーチャートである。
ーチャートである。
【図14】図9のパケット検索(2)の詳細を示すフロ
ーチャートである。
ーチャートである。
【図15】図9のアドレスクリア(2)の詳細を示すフ
ローチャートである。
ローチャートである。
【図16】従来のデータ駆動形計算機のデータ処理の概
念を示す説明図である。
念を示す説明図である。
【図17】パケットの一例の構成を示すビットマップ図
である。
である。
【図18】ハッシュメモリの一例の構成を示すブロック
図である。
図である。
【図19】データフローグラフの一例とメモリアドレス
及びノード番号との関係を示す説明図である。
及びノード番号との関係を示す説明図である。
1 ハッシュメモリ 2 連想メモリ 3,202 ハッシュ処理器 4,216 比較器 5,217 制御部 101 発火処理部(第1の発火処理部) 102 演算処理部 103 プログラム記憶部 104 分岐制御部 105 合流制御部 106 拡張発火処理器(第2の発火処理部) 206 アドレス変換テーブル 211 パケットメモリ(ハッシュメモリ) 212 チェインポインタメモリ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成4年6月4日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】
Claims (1)
- 【特許請求の範囲】 【請求項1】 少なくとも次に実行すべき命令の場所を
示す行き先ノード番号を含む識別情報及びデータを有す
るパケットを格納する待ち合わせメモリを備え、この待
ち合わせメモリに格納されたパケットと新たに入力され
たパケットとの少なくとも行き先ノード番号が一致する
パケットを検出し、一致したパケットを合体する発火処
理を行う発火処理部を有する巡回パイプライン構成のデ
ータ駆動形計算機において、 前記待ち合わせメモリとしてハッシュメモリを有し、こ
のハッシュメモリの各アドレスに当該ハッシュアドレス
でハッシュ衝突が生じオーバーフローパケットを出力し
た時にセットするOVフラグを設けた第1の発火処理部
を備えるとともに、待ち合わせメモリとして前記第1の
発火処理部から出力されたオーバーフローパケットを前
記ハッシュメモリと同一のハッシュ関数で、かつチェイ
ン接続を用いて格納するハッシュメモリを有する第2の
発火処理部を備え、前記第1の発火処理部は、ハッシュ
衝突により生じたオーバーフローパケットを第2の発火
処理部に出力するとともに、ハッシュ衝突を起こしたア
ドレスのOVフラグをセットし、以降,OVフラグがセ
ットされたハッシュアドレスで発火しないパケットは第
2の発火処理部に出力し、前記第2の発火処理部は、ハ
ッシュメモリに既に格納されているパケットと新たに入
力されたパケットとを比較し、少なくとも行き先ノード
番号が一致するパケットがあれば発火処理を行なうとと
もに、当該パケットが該ハッシュアドレスよりチェイン
に接続されている唯一のパケットの時は当該発火パケッ
トにその旨を示すために付加されたOVCフラグをセッ
トして第1の発火処理部へ出力し、前記第1の発火処理
部は、入力された発火パケットのOVCフラグがセット
されている時は当該ハッシュアドレスのOVフラグをク
リアすることを特徴とするデータ駆動形計算機。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20403291A JPH0528290A (ja) | 1991-07-18 | 1991-07-18 | データ駆動形計算機 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20403291A JPH0528290A (ja) | 1991-07-18 | 1991-07-18 | データ駆動形計算機 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0528290A true JPH0528290A (ja) | 1993-02-05 |
Family
ID=16483628
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP20403291A Pending JPH0528290A (ja) | 1991-07-18 | 1991-07-18 | データ駆動形計算機 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0528290A (ja) |
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/ja 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 (ja) | データ検索装置 | |
| US20120239702A1 (en) | String lookup using three-transition tree structure | |
| US5809274A (en) | Purge control for ON-chip cache memory | |
| US20040199363A1 (en) | Method and system for testing the validity of shared data in a multiprocessing system | |
| JPH05128164A (ja) | データベース処理装置 | |
| EP0602772B1 (en) | Multiprocessor system | |
| JP3720094B2 (ja) | データ駆動型情報処理装置 | |
| JPH04247571A (ja) | データベースレコード処理装置 | |
| JPH0814801B2 (ja) | プログラマブルアクセスメモリ | |
| JPH0668736B2 (ja) | 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法 | |
| US7302519B2 (en) | Distributed content addressable memory | |
| JPH03118649A (ja) | メモリーサブシステム入力キュー | |
| JPH0322155A (ja) | キャッシュメモリ装置 | |
| JPH03225542A (ja) | データ記憶方法及びビットエンコードデータの処理回路 | |
| JPH09114734A (ja) | ストアバッファ装置 | |
| JPH0528290A (ja) | データ駆動形計算機 | |
| US20020040426A1 (en) | Execution control apparatus of data driven information processor | |
| US6671781B1 (en) | Data cache store buffer | |
| JP2735255B2 (ja) | ハツシング処理方法 | |
| JPH052608A (ja) | データ検索装置 | |
| JP2590866B2 (ja) | データ検索装置 | |
| JPH04367084A (ja) | データ駆動形計算機 | |
| JPS63251835A (ja) | ベクトル処理装置 | |
| JPH06103477B2 (ja) | 並列キャッシュメモリ | |
| JPS63261430A (ja) | 情報処理方式および装置 |