JPH0620072A - データ駆動型情報処理装置およびそこに用いられるデータバッファ - Google Patents
データ駆動型情報処理装置およびそこに用いられるデータバッファInfo
- Publication number
- JPH0620072A JPH0620072A JP17829892A JP17829892A JPH0620072A JP H0620072 A JPH0620072 A JP H0620072A JP 17829892 A JP17829892 A JP 17829892A JP 17829892 A JP17829892 A JP 17829892A JP H0620072 A JPH0620072 A JP H0620072A
- Authority
- JP
- Japan
- Prior art keywords
- data
- input
- output
- stored
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
(57)【要約】
【目的】 縮退メモリ空間を利用して対データを検出す
る機能を備えるデータ駆動型情報処理装置のデータ処理
効率を向上させることを目的とする。 【構成】 巡回パスに設けられ、この巡回パスにおける
データのパケットの流量の揺らぎを吸収するために設け
られたバッファメモリ(1)は、格納されたデータパケ
ットの所定のキーデータの大小に応じてその出力順序を
再配列する再配列制御ユニット(10)を含む。この再
配列制御ユニットは、対データ検出ユニット(562)
が利用する優先度判別基準と同じ判別基準に従って出力
データパケットの配列順序を変更する。 【効果】 データバッファにおける出力データパケット
の再配列により、発火する可能性の高いデータパケット
が早く対データ検出ユニットへ与えられるため、ハッシ
ュ衝突データパケットによる処理効率の低下を防止する
ことができ、高速でデータフロープログラムを実行する
ことのできるデータ駆動型情報処理装置が得られる。
る機能を備えるデータ駆動型情報処理装置のデータ処理
効率を向上させることを目的とする。 【構成】 巡回パスに設けられ、この巡回パスにおける
データのパケットの流量の揺らぎを吸収するために設け
られたバッファメモリ(1)は、格納されたデータパケ
ットの所定のキーデータの大小に応じてその出力順序を
再配列する再配列制御ユニット(10)を含む。この再
配列制御ユニットは、対データ検出ユニット(562)
が利用する優先度判別基準と同じ判別基準に従って出力
データパケットの配列順序を変更する。 【効果】 データバッファにおける出力データパケット
の再配列により、発火する可能性の高いデータパケット
が早く対データ検出ユニットへ与えられるため、ハッシ
ュ衝突データパケットによる処理効率の低下を防止する
ことができ、高速でデータフロープログラムを実行する
ことのできるデータ駆動型情報処理装置が得られる。
Description
【0001】
【産業上の利用分野】この発明は与えられたデータに従
って処理を実行するデータフロー型情報処理装置および
データを一時的に格納するためのデータバッファに関
し、特に、縮退したメモリ空間を利用する対データ検出
機能を備えるデータフロー型情報処理装置およびそこに
用いるのに適したデータ並び換え機能を有するデータバ
ッファに関する。
って処理を実行するデータフロー型情報処理装置および
データを一時的に格納するためのデータバッファに関
し、特に、縮退したメモリ空間を利用する対データ検出
機能を備えるデータフロー型情報処理装置およびそこに
用いるのに適したデータ並び換え機能を有するデータバ
ッファに関する。
【0002】
【従来の技術】近年高精彩画像処理など様々な分野にお
いて大量のデータを高速で処理することが必要とされ
る。情報を高速で処理する手法の1つに、複数の演算を
並列に処理する並列処理がある。並列処理向きの処理装
置の1つにデータフロー型(データ駆動型)情報処理装
置がある。データフロー型情報処理装置は、データフロ
ープログラムに従って処理を実行する。
いて大量のデータを高速で処理することが必要とされ
る。情報を高速で処理する手法の1つに、複数の演算を
並列に処理する並列処理がある。並列処理向きの処理装
置の1つにデータフロー型(データ駆動型)情報処理装
置がある。データフロー型情報処理装置は、データフロ
ープログラムに従って処理を実行する。
【0003】データフロープログラムは、演算および制
御を示すノード(アクタと呼ばれる)と、ノードとノー
ドとの間を結ぶアークとで構成される有向グラフで記述
される。
御を示すノード(アクタと呼ばれる)と、ノードとノー
ドとの間を結ぶアークとで構成される有向グラフで記述
される。
【0004】図13は、データフロープログラム(デー
タフローグラフ)の一例を示す図である。図13におい
て、ノードND1は入力アークaおよびbに対し演算O
P1を施してノードND3へ出力する。ノードND2
は、入力アークdに演算OP2を施し、その演算結果を
ノードND3およびND4へ与える。ノードND3は、
ノードND1からのデータ、入力アークcおよびノード
ND2からのデータに対し演算OP3を施してその処理
結果を出力する。ノードND4は、ノードND2からの
データに演算OP4を施してその処理結果を出力する。
各ノードにおいては、入力アークにデータ(トークンと
呼ばれる)が揃ったときにそのノードに割り当てられた
演算が実行される。演算の実行をそのノードが「発火す
る」と称す。この発火の結果、入力データ(入力トーク
ン)は消費され、出力トークンが生成される。
タフローグラフ)の一例を示す図である。図13におい
て、ノードND1は入力アークaおよびbに対し演算O
P1を施してノードND3へ出力する。ノードND2
は、入力アークdに演算OP2を施し、その演算結果を
ノードND3およびND4へ与える。ノードND3は、
ノードND1からのデータ、入力アークcおよびノード
ND2からのデータに対し演算OP3を施してその処理
結果を出力する。ノードND4は、ノードND2からの
データに演算OP4を施してその処理結果を出力する。
各ノードにおいては、入力アークにデータ(トークンと
呼ばれる)が揃ったときにそのノードに割り当てられた
演算が実行される。演算の実行をそのノードが「発火す
る」と称す。この発火の結果、入力データ(入力トーク
ン)は消費され、出力トークンが生成される。
【0005】ノードND1は2つの入力アークaおよび
bを有する。ノードND1は、2つの入力アークaおよ
びbに入力データがそれぞれ到着しかつ出力アークが空
いているときに発火する。すなわち、入力データ(入力
トークン)に演算OP1が施されてその演算結果が出力
トークンとなる。このときノードND2の入力アークd
に入力データが到着していれば、ノードND1とノード
ND2とは同時に発火することができる。ノードND3
は、ノードND1およびノードND2の演算が完了する
のを待つ必要がある。ノードND4は、ノードND2に
おいて演算OP2が実行された後に発火することができ
る。
bを有する。ノードND1は、2つの入力アークaおよ
びbに入力データがそれぞれ到着しかつ出力アークが空
いているときに発火する。すなわち、入力データ(入力
トークン)に演算OP1が施されてその演算結果が出力
トークンとなる。このときノードND2の入力アークd
に入力データが到着していれば、ノードND1とノード
ND2とは同時に発火することができる。ノードND3
は、ノードND1およびノードND2の演算が完了する
のを待つ必要がある。ノードND4は、ノードND2に
おいて演算OP2が実行された後に発火することができ
る。
【0006】一般に、n入力m出力のノードは最大2入
力および2出力を有する基本ノードの組合せで実現する
ことができる。基本ノードとしては、入力アークに与え
られたデータに演算を施す演算ノードと、入力トークン
をコピーして複数の出力アークに出力する分配ノード
と、複数の入力アークに与えられたデータを出力アーク
へ伝達する合流ノードと、データの伝達経路を制御する
制御ノードなどがある。
力および2出力を有する基本ノードの組合せで実現する
ことができる。基本ノードとしては、入力アークに与え
られたデータに演算を施す演算ノードと、入力トークン
をコピーして複数の出力アークに出力する分配ノード
と、複数の入力アークに与えられたデータを出力アーク
へ伝達する合流ノードと、データの伝達経路を制御する
制御ノードなどがある。
【0007】データフロー型処理では、データ駆動と呼
ばれる実行原理に基づいて処理が実行される。データ駆
動の原理においては、「すべての演算は、その実行に必
要なオペランド(データ)が揃ったときに実行され
る」。データ駆動方式は、或る処理に1組の入力データ
しか許さない静的データ駆動方式と、2組以上の入力デ
ータの組を許す動的データ駆動方式とを含む。動的デー
タ駆動方式においては、複数の入力データの組を識別す
るために、「世代番号」などの識別子が利用される。伝
送データは、行先ノードなどを特定する情報を含み、パ
ケットの形態で伝達される。
ばれる実行原理に基づいて処理が実行される。データ駆
動の原理においては、「すべての演算は、その実行に必
要なオペランド(データ)が揃ったときに実行され
る」。データ駆動方式は、或る処理に1組の入力データ
しか許さない静的データ駆動方式と、2組以上の入力デ
ータの組を許す動的データ駆動方式とを含む。動的デー
タ駆動方式においては、複数の入力データの組を識別す
るために、「世代番号」などの識別子が利用される。伝
送データは、行先ノードなどを特定する情報を含み、パ
ケットの形態で伝達される。
【0008】図14は、データパケットの構成を示す図
である。図14において、データパケットは、未発火フ
ラグ、2出力命令識別フラグなどのデータの状態を示す
フラグを格納するフラグフィールドF1と、行先ノード
を特定する行先ノード番号を格納する行先ノード番号フ
ィールドF2と、その行先ノードにおける世代識別子で
ある世代番号を格納する世代番号フィールドF3と、実
行されるべき演算を特定する命令を格納する命令フィー
ルドF4と、処理されるべきデータすなわちオペランド
データを格納するオペランドデータフィールドF5およ
びF6を含む。命令フィールドは、その命令が2項演算
命令であるか単項演算命令であるかを識別する2項/単
項演算命令識別フラグを含む。この命令フィールドF4
に含まれる2項/単項演算命令識別フラグについては後
にまた説明する。
である。図14において、データパケットは、未発火フ
ラグ、2出力命令識別フラグなどのデータの状態を示す
フラグを格納するフラグフィールドF1と、行先ノード
を特定する行先ノード番号を格納する行先ノード番号フ
ィールドF2と、その行先ノードにおける世代識別子で
ある世代番号を格納する世代番号フィールドF3と、実
行されるべき演算を特定する命令を格納する命令フィー
ルドF4と、処理されるべきデータすなわちオペランド
データを格納するオペランドデータフィールドF5およ
びF6を含む。命令フィールドは、その命令が2項演算
命令であるか単項演算命令であるかを識別する2項/単
項演算命令識別フラグを含む。この命令フィールドF4
に含まれる2項/単項演算命令識別フラグについては後
にまた説明する。
【0009】図15は、データ駆動型情報処理装置の全
体の構成を概略的に示す図である。図15において、デ
ータ駆動型情報処理装置500は、外部から与えられる
入力データを受けるための入力ポート502と、入力ポ
ート502からの入力データのうち、このデータ駆動型
情報処理装置500を指定する入力データとそうでない
入力データとを分離する分岐ユニット504と、分岐ユ
ニット504からの入力データを受け、その入力データ
に含まれる演算命令に従って処理を行なうデータ駆動エ
ンジン506と、データ駆動エンジン506からの処理
データと分岐ユニット504からの入力データとを合流
する合流ユニット508と、合流ユニット508からの
データを出力する出力ポート510を含む。
体の構成を概略的に示す図である。図15において、デ
ータ駆動型情報処理装置500は、外部から与えられる
入力データを受けるための入力ポート502と、入力ポ
ート502からの入力データのうち、このデータ駆動型
情報処理装置500を指定する入力データとそうでない
入力データとを分離する分岐ユニット504と、分岐ユ
ニット504からの入力データを受け、その入力データ
に含まれる演算命令に従って処理を行なうデータ駆動エ
ンジン506と、データ駆動エンジン506からの処理
データと分岐ユニット504からの入力データとを合流
する合流ユニット508と、合流ユニット508からの
データを出力する出力ポート510を含む。
【0010】入力ポート502は、外部から与えられる
入力データを受ける。複数の処理装置が含まれるマルチ
プロセサシステムにおいては、入力ポート502は、異
なる処理装置からのデータを合流した後に出力する。分
岐ユニット504は、この処理装置500を参照しない
入力データを合流ユニット508へ出力し、この処理装
置500を参照する入力データをデータ駆動エンジン5
06へ伝達する。
入力データを受ける。複数の処理装置が含まれるマルチ
プロセサシステムにおいては、入力ポート502は、異
なる処理装置からのデータを合流した後に出力する。分
岐ユニット504は、この処理装置500を参照しない
入力データを合流ユニット508へ出力し、この処理装
置500を参照する入力データをデータ駆動エンジン5
06へ伝達する。
【0011】データ駆動エンジン506は、この分岐ユ
ニット504から与えられたデータに従って処理を実行
する。このデータ駆動エンジン506は、その構成は後
に詳細に説明するが、命令コードの更新および次命令フ
ェッチに必要な行先情報(ノード番号)の更新を行なう
機能と、処理に必要なデータが揃ったこと(発火)の検
出を行なう発火制御機能と、必要なデータの待合せが完
了した命令に対し算術・論理演算などを行なう演算処理
機能とを備える。
ニット504から与えられたデータに従って処理を実行
する。このデータ駆動エンジン506は、その構成は後
に詳細に説明するが、命令コードの更新および次命令フ
ェッチに必要な行先情報(ノード番号)の更新を行なう
機能と、処理に必要なデータが揃ったこと(発火)の検
出を行なう発火制御機能と、必要なデータの待合せが完
了した命令に対し算術・論理演算などを行なう演算処理
機能とを備える。
【0012】分岐ユニット504からのこの処理装置5
00を参照しない入力データおよびデータ駆動エンジン
506からの処理結果データは合流ユニット508で合
流される。合流ユニット508においては、分岐ユニッ
ト504およびデータ駆動エンジン506から排他的に
与えられるデータを出力ポート510へ伝達する。出力
ポート510は、与えられたデータに対し、所定のルー
ティング(マルチプロセサシステムにおける処理装置へ
の振り分け)を行ない、対応の処理装置へ伝達する。
00を参照しない入力データおよびデータ駆動エンジン
506からの処理結果データは合流ユニット508で合
流される。合流ユニット508においては、分岐ユニッ
ト504およびデータ駆動エンジン506から排他的に
与えられるデータを出力ポート510へ伝達する。出力
ポート510は、与えられたデータに対し、所定のルー
ティング(マルチプロセサシステムにおける処理装置へ
の振り分け)を行ない、対応の処理装置へ伝達する。
【0013】図16は、図15に示すデータ駆動エンジ
ンの構成を概略的に示すブロック図である。図16にお
いて、データ駆動エンジン506は、与えられたデータ
パケットを入力順に出力する合流ユニット550と、合
流ユニット550からのデータパケットに対し、命令コ
ードの更新、ノード番号の更新および発火の検出を行な
うプログラム記憶付発火制御ユニット552と、このプ
ログラム記憶付発火制御ユニット552からの発火デー
タパケットに対しその命令フィールドF4に含まれる命
令に従った演算を行なう演算処理ユニット554と、演
算処理ユニット554からの処理データまたは未発火デ
ータパケットを受け、そのデータパケットに含まれる行
先情報(ノード番号)に従ってその行先をデータ駆動エ
ンジン506の外部または内部に振り分ける分岐ユニッ
ト556と、分岐ユニット556からのデータパケット
を順次格納し、その格納データを順次入力順に合流ユニ
ット550へ与えるデータバッファ558を含む。
ンの構成を概略的に示すブロック図である。図16にお
いて、データ駆動エンジン506は、与えられたデータ
パケットを入力順に出力する合流ユニット550と、合
流ユニット550からのデータパケットに対し、命令コ
ードの更新、ノード番号の更新および発火の検出を行な
うプログラム記憶付発火制御ユニット552と、このプ
ログラム記憶付発火制御ユニット552からの発火デー
タパケットに対しその命令フィールドF4に含まれる命
令に従った演算を行なう演算処理ユニット554と、演
算処理ユニット554からの処理データまたは未発火デ
ータパケットを受け、そのデータパケットに含まれる行
先情報(ノード番号)に従ってその行先をデータ駆動エ
ンジン506の外部または内部に振り分ける分岐ユニッ
ト556と、分岐ユニット556からのデータパケット
を順次格納し、その格納データを順次入力順に合流ユニ
ット550へ与えるデータバッファ558を含む。
【0014】プログラム記憶付発火制御ユニット552
は、2項演算命令等で処理されるべき2つのオペランド
データの待合せを行なうための対データ検出ユニット5
62と、行先情報(ノード番号等)および命令情報を格
納したレコードを複数個含むデータフロープログラムを
記憶するプログラム記憶ユニット564を含む。プログ
ラム記憶ユニット564は、また与えられたデータパケ
ットに含まれるノード番号データに基づいて生成された
アドレスに従ってこのプログラムメモリから対応のデー
タレコードを読出し、与えられたデータパケットの行先
ノード番号フィールドF2および命令フィールドF4の
内容を、読出したデータレコードの内容に更新して出力
する機能を備える。
は、2項演算命令等で処理されるべき2つのオペランド
データの待合せを行なうための対データ検出ユニット5
62と、行先情報(ノード番号等)および命令情報を格
納したレコードを複数個含むデータフロープログラムを
記憶するプログラム記憶ユニット564を含む。プログ
ラム記憶ユニット564は、また与えられたデータパケ
ットに含まれるノード番号データに基づいて生成された
アドレスに従ってこのプログラムメモリから対応のデー
タレコードを読出し、与えられたデータパケットの行先
ノード番号フィールドF2および命令フィールドF4の
内容を、読出したデータレコードの内容に更新して出力
する機能を備える。
【0015】対データ検出ユニット562は、前述のご
とく2項演算命令等で処理されるべき2つのオペランド
データの待合せを行なう。すなわち、対となるデータを
検出する。ここで、対となるデータとは、同じ行先ノー
ド番号および同じ世代番号を有するデータパケットであ
る。この対データ検出ユニット562は、このデータの
待合せのための待合せメモリを備える。
とく2項演算命令等で処理されるべき2つのオペランド
データの待合せを行なう。すなわち、対となるデータを
検出する。ここで、対となるデータとは、同じ行先ノー
ド番号および同じ世代番号を有するデータパケットであ
る。この対データ検出ユニット562は、このデータの
待合せのための待合せメモリを備える。
【0016】この図16に示す構成においては、プログ
ラム記憶付発火制御ユニット552において発火が検出
されたデータに対してのみ演算処理ユニット554にお
いて処理が実行される。未発火データパケットは演算処
理ユニット554では処理は実行されない。この未発火
のデータパケットは分岐ユニット556によりデータバ
ッファ558へ格納される。分岐ユニット556は、ま
た、未発火状態でないデータパケットに対しても、その
行先番号フィールドF2に含まれるノード番号情報に従
ってデータパケットを装置外部またはデータバッファ5
58へ伝達する。
ラム記憶付発火制御ユニット552において発火が検出
されたデータに対してのみ演算処理ユニット554にお
いて処理が実行される。未発火データパケットは演算処
理ユニット554では処理は実行されない。この未発火
のデータパケットは分岐ユニット556によりデータバ
ッファ558へ格納される。分岐ユニット556は、ま
た、未発火状態でないデータパケットに対しても、その
行先番号フィールドF2に含まれるノード番号情報に従
ってデータパケットを装置外部またはデータバッファ5
58へ伝達する。
【0017】データバッファ558は、この処理装置5
06を流れるデータパケットの数が増加した場合に、こ
の処理装置506のパイプラインから溢れ出ないように
するために、一時的にデータパケットを格納する。デー
タバッファ558は、通常、先入れ先出し型メモリで構
成される。データバッファ558は、この分岐ユニット
556から入力されるデータパケットを順次取込んで格
納し、合流ユニット550が空き状態にあれば、この格
納した順にデータパケット合流ユニット550を介して
プログラム記憶付制御ユニット552へデータパケット
を伝達する。処理装置506においては、通常このプロ
グラム記憶付発火制御552および演算処理554がパ
イプラインを構成しており、データ処理が互いにオーバ
ラップしながら実行され、データ処理の高速化が図られ
ている。
06を流れるデータパケットの数が増加した場合に、こ
の処理装置506のパイプラインから溢れ出ないように
するために、一時的にデータパケットを格納する。デー
タバッファ558は、通常、先入れ先出し型メモリで構
成される。データバッファ558は、この分岐ユニット
556から入力されるデータパケットを順次取込んで格
納し、合流ユニット550が空き状態にあれば、この格
納した順にデータパケット合流ユニット550を介して
プログラム記憶付制御ユニット552へデータパケット
を伝達する。処理装置506においては、通常このプロ
グラム記憶付発火制御552および演算処理554がパ
イプラインを構成しており、データ処理が互いにオーバ
ラップしながら実行され、データ処理の高速化が図られ
ている。
【0018】図17は、図16に示すプログラム記憶付
発火制御ユニットの機能的構成を示す図である。図17
において、対データ検出ユニット562は、与えられた
入力データパケットの命令フィールドF4の命令をデコ
ードし、その命令が単項演算命令であるか2項演算命令
であるかの判別を行なう命令識別部602と、命令識別
部602の制御の下に活性化され、入力データパケット
の行先ノード番号フィールドF2および世代番号フィー
ルドF3に含まれる行先ノード番号および世代番号に対
しハッシュ演算(これについては後述する)を施して待
合せメモリ604のアドレスを生成し、対応のアドレス
のデータ(データパケット)を読出す読出制御部606
と、読出制御部606により待合せメモリ604から読
出されたデータ(データパケット)と入力データパケッ
トとの優先順位を予め定められた条件に従って判別する
とともに、対となるデータであるか否かの判別をも合わ
せて行なう優先度判別部608と、優先度判別部608
の判別結果に従って、入力データパケットおよび読出デ
ータ(データパケット)に対し所定の処理を行なうパケ
ット制御部610を含む。パケット制御部610は、優
先度判別部608において、読出されたデータ(データ
パケット)と入力データパケットとが対をなすデータで
あることが判別された場合には、発火パケットを生成し
プログラム記憶ユニット564へ伝達する。
発火制御ユニットの機能的構成を示す図である。図17
において、対データ検出ユニット562は、与えられた
入力データパケットの命令フィールドF4の命令をデコ
ードし、その命令が単項演算命令であるか2項演算命令
であるかの判別を行なう命令識別部602と、命令識別
部602の制御の下に活性化され、入力データパケット
の行先ノード番号フィールドF2および世代番号フィー
ルドF3に含まれる行先ノード番号および世代番号に対
しハッシュ演算(これについては後述する)を施して待
合せメモリ604のアドレスを生成し、対応のアドレス
のデータ(データパケット)を読出す読出制御部606
と、読出制御部606により待合せメモリ604から読
出されたデータ(データパケット)と入力データパケッ
トとの優先順位を予め定められた条件に従って判別する
とともに、対となるデータであるか否かの判別をも合わ
せて行なう優先度判別部608と、優先度判別部608
の判別結果に従って、入力データパケットおよび読出デ
ータ(データパケット)に対し所定の処理を行なうパケ
ット制御部610を含む。パケット制御部610は、優
先度判別部608において、読出されたデータ(データ
パケット)と入力データパケットとが対をなすデータで
あることが判別された場合には、発火パケットを生成し
プログラム記憶ユニット564へ伝達する。
【0019】命令識別部602は、命令フィールドF4
に含まれる単項演算命令/2項演算命令フラグを見て命
令を識別してもよい。
に含まれる単項演算命令/2項演算命令フラグを見て命
令を識別してもよい。
【0020】待合せメモリ604は、通常対をなすデー
タを待受けるデータパケットに対しては、有効フラグ
(VLD)を立てて格納する。優先度判別部608は、
この待合せメモリ604から読出されたデータと入力デ
ータパケットとのハッシュ衝突および発火命令の判別を
行なう。ハッシュ衝突時においては、優先度判別部60
8は、予め定められた優先順位に従っていずれのデータ
パケットを待合せメモリ604に格納するかを判別す
る。ハッシュ衝突時において、待合せメモリ604に格
納されないデータパケットは、パケット制御部610に
おいて、未発火フラグNFRが立てられて“1”とされ
てプログラム記憶ユニット564へ伝達される。ここ
で、読出制御部606がアドレス生成時に行なうハッシ
ュ演算および優先度判別部608におけるハッシュ衝突
について説明する。
タを待受けるデータパケットに対しては、有効フラグ
(VLD)を立てて格納する。優先度判別部608は、
この待合せメモリ604から読出されたデータと入力デ
ータパケットとのハッシュ衝突および発火命令の判別を
行なう。ハッシュ衝突時においては、優先度判別部60
8は、予め定められた優先順位に従っていずれのデータ
パケットを待合せメモリ604に格納するかを判別す
る。ハッシュ衝突時において、待合せメモリ604に格
納されないデータパケットは、パケット制御部610に
おいて、未発火フラグNFRが立てられて“1”とされ
てプログラム記憶ユニット564へ伝達される。ここ
で、読出制御部606がアドレス生成時に行なうハッシ
ュ演算および優先度判別部608におけるハッシュ衝突
について説明する。
【0021】図18は、ハッシュ演算の効果を示す図で
ある。動的データ駆動方式においては、或る処理に対し
複数組の入力データの組が許容される。この複数組の入
力データを識別するために世代番号などの識別子が導入
される。したがって、行先ノード番号および世代番号を
アドレスとするメモリの物理的空間が対データを待合せ
るための場所として利用される。このデータの待合せ領
域としては、使用されるすべての行先ノード番号と世代
番号の組合せのすべてを含むメモリ空間を持つことが望
ましい。しかしながら、取扱われる世代数およびノード
番号の数が多くなると、このような行先ノード番号およ
び世代番号すべての組をアドレスとするメモリ空間を有
することはメモリ利用効率の点からみて現実的ではなく
また経済的でもない。そこで、図18に示すように、行
先ノード番号と世代番号とに対しハッシュ演算を施し、
その結果得られる値をアドレスとする待合せメモリアド
レス空間を作成する。
ある。動的データ駆動方式においては、或る処理に対し
複数組の入力データの組が許容される。この複数組の入
力データを識別するために世代番号などの識別子が導入
される。したがって、行先ノード番号および世代番号を
アドレスとするメモリの物理的空間が対データを待合せ
るための場所として利用される。このデータの待合せ領
域としては、使用されるすべての行先ノード番号と世代
番号の組合せのすべてを含むメモリ空間を持つことが望
ましい。しかしながら、取扱われる世代数およびノード
番号の数が多くなると、このような行先ノード番号およ
び世代番号すべての組をアドレスとするメモリ空間を有
することはメモリ利用効率の点からみて現実的ではなく
また経済的でもない。そこで、図18に示すように、行
先ノード番号と世代番号とに対しハッシュ演算を施し、
その結果得られる値をアドレスとする待合せメモリアド
レス空間を作成する。
【0022】ハッシュ演算とは、複数のフィールド(通
常キー)を異なった配置に変更するために行なわれる操
作を示す。たとえば元のキーを新しいキーに変形するた
めに、元のキーについて何らかの予め定められた操作を
行なうことをハッシュ演算と呼ぶ。このハッシュ演算に
は様々な方法がある。簡単なハッシュ演算に、除算剰余
法と呼ばれるものがある。この除算剰余法においては、
或る適当な数を選択し、この選択された数を除数として
被除数を割り、商と余りとを求める。この余りを変換後
のキーとする。この場合、除数として、たとえば100
0を用いると、変換後のキーは元のキーのモジュロ10
00となる。すなわち、たとえば除数を1000とした
場合、行先ノード番号と世代番号をこのモジュロ100
0の演算によりハッシュアドレスを生成する。この場
合、図18に示すように、ノード番号/世代番号空間を
ハッシュ演算により待合せメモリアドレス空間へ圧縮し
たため、待合せメモリアドレス空間のアドレス(以下ハ
ッシュアドレスと呼ぶ)とノード番号/世代番号空間に
おけるアドレスとは1対多対応となる。このようにハッ
シュアドレスが重複することをハッシュ衝突と呼ぶ。ハ
ッシュ演算としては、上述の除算数剰余法の他に、折り
重ね法、基数変換法および数字再配置法などがある。
常キー)を異なった配置に変更するために行なわれる操
作を示す。たとえば元のキーを新しいキーに変形するた
めに、元のキーについて何らかの予め定められた操作を
行なうことをハッシュ演算と呼ぶ。このハッシュ演算に
は様々な方法がある。簡単なハッシュ演算に、除算剰余
法と呼ばれるものがある。この除算剰余法においては、
或る適当な数を選択し、この選択された数を除数として
被除数を割り、商と余りとを求める。この余りを変換後
のキーとする。この場合、除数として、たとえば100
0を用いると、変換後のキーは元のキーのモジュロ10
00となる。すなわち、たとえば除数を1000とした
場合、行先ノード番号と世代番号をこのモジュロ100
0の演算によりハッシュアドレスを生成する。この場
合、図18に示すように、ノード番号/世代番号空間を
ハッシュ演算により待合せメモリアドレス空間へ圧縮し
たため、待合せメモリアドレス空間のアドレス(以下ハ
ッシュアドレスと呼ぶ)とノード番号/世代番号空間に
おけるアドレスとは1対多対応となる。このようにハッ
シュアドレスが重複することをハッシュ衝突と呼ぶ。ハ
ッシュ演算としては、上述の除算数剰余法の他に、折り
重ね法、基数変換法および数字再配置法などがある。
【0023】図19に示すように、ノード番号/世代番
号空間800において、行先ノード番号NDと世代番号
GNがそれぞれ異なる領域ND1/GN1、ND2/G
N2、ND3/GN3、ND4/GN4が待合せメモリ
アドレス空間におけるハッシュアドレスHAiに対応す
る状態が存在する。1つのハッシュアドレスに対し複数
のノード番号/世代番号アドレスが存在する状態を縮退
と称す。
号空間800において、行先ノード番号NDと世代番号
GNがそれぞれ異なる領域ND1/GN1、ND2/G
N2、ND3/GN3、ND4/GN4が待合せメモリ
アドレス空間におけるハッシュアドレスHAiに対応す
る状態が存在する。1つのハッシュアドレスに対し複数
のノード番号/世代番号アドレスが存在する状態を縮退
と称す。
【0024】読出制御部606は上述のハッシュ演算を
施して待合せメモリ604に対するアドレスを生成して
いる。この場合、互いに異なる行先ノード番号および世
代番号を有するデータであっても、この待合せメモリ6
04の同一アドレスの待合せ領域を利用する。したがっ
てハッシュ衝突が生じる。
施して待合せメモリ604に対するアドレスを生成して
いる。この場合、互いに異なる行先ノード番号および世
代番号を有するデータであっても、この待合せメモリ6
04の同一アドレスの待合せ領域を利用する。したがっ
てハッシュ衝突が生じる。
【0025】今、対データの待合せを行なうためにデー
タパケットがこの待合せメモリ604に書込まれている
とき(待合せデータは通常有効フラグが立てられてい
る)、行先ノード番号または世代番号が異なるが同一の
ハッシュアドレスを有するデータが与えられた場合に
は、どちらのデータを優先的に処理するのかを判別する
必要がある。この優先度の判別が優先度判別部608に
おいて実行される。優先度判別部608は、その待合せ
メモリ604から読出されたデータと入力データとの優
先度を比較し、優先度が高い方のデータパケットを待合
せメモリ604に書込み、優先度の低いデータパケット
は未発火フラグNFRを立てて出力する。この待合せメ
モリ604へのデータパケットの書込および未発火フラ
グのオン/オフはパケット制御部610において実行さ
れる。以下の説明において、優先度判別部608が用い
る優先度の判別基準には、(1)世代番号が小さい方が
優先度が高い、(2)世代番号が同一の場合には、行先
ノード番号が小さい方が優先度が高いという基準が利用
されるものとする。
タパケットがこの待合せメモリ604に書込まれている
とき(待合せデータは通常有効フラグが立てられてい
る)、行先ノード番号または世代番号が異なるが同一の
ハッシュアドレスを有するデータが与えられた場合に
は、どちらのデータを優先的に処理するのかを判別する
必要がある。この優先度の判別が優先度判別部608に
おいて実行される。優先度判別部608は、その待合せ
メモリ604から読出されたデータと入力データとの優
先度を比較し、優先度が高い方のデータパケットを待合
せメモリ604に書込み、優先度の低いデータパケット
は未発火フラグNFRを立てて出力する。この待合せメ
モリ604へのデータパケットの書込および未発火フラ
グのオン/オフはパケット制御部610において実行さ
れる。以下の説明において、優先度判別部608が用い
る優先度の判別基準には、(1)世代番号が小さい方が
優先度が高い、(2)世代番号が同一の場合には、行先
ノード番号が小さい方が優先度が高いという基準が利用
されるものとする。
【0026】ハッシュ衝突が生じず、対をなすデータが
検出された場合、パケット制御部610は、有効フラグ
をオフとし、かつ未発火フラグをもオフとしてデータパ
ケットをプログラム記憶ユニット564へ伝達する。
検出された場合、パケット制御部610は、有効フラグ
をオフとし、かつ未発火フラグをもオフとしてデータパ
ケットをプログラム記憶ユニット564へ伝達する。
【0027】プログラム記憶ユニット564は、対デー
タ検出ユニット562からのデータパケットを受け、そ
のデータパケットが発火しているか否かを識別する発火
識別部620と、発火識別部620からの発火/未発火
指示情報に従って、入力データパケットの行先ノード番
号フィールドF2に含まれる行先ノード番号に基づいて
アドレスを生成し、プログラムメモリ622から次の命
令をフェッチする次命令フェッチ部624と、この次命
令フェッチ部624でフェッチされたデータパケットに
対し、発火識別部620からの発火指示に従って、入力
データパケットの行先ノード番号フィールドF2および
命令フィールドF4の内容を、次命令フェッチ部624
によりプログラムメモリ622からフェッチされた次の
行先情報および命令情報により更新するパケット生成部
626を含む。パケット生成部626は、発火識別部6
20が発火を識別しないとき、すなわち入力データパケ
ットの未発火フラグが立てられてオン状態の場合にはこ
の入力データパケットに対しては処理を行なわずそのま
ま出力する。
タ検出ユニット562からのデータパケットを受け、そ
のデータパケットが発火しているか否かを識別する発火
識別部620と、発火識別部620からの発火/未発火
指示情報に従って、入力データパケットの行先ノード番
号フィールドF2に含まれる行先ノード番号に基づいて
アドレスを生成し、プログラムメモリ622から次の命
令をフェッチする次命令フェッチ部624と、この次命
令フェッチ部624でフェッチされたデータパケットに
対し、発火識別部620からの発火指示に従って、入力
データパケットの行先ノード番号フィールドF2および
命令フィールドF4の内容を、次命令フェッチ部624
によりプログラムメモリ622からフェッチされた次の
行先情報および命令情報により更新するパケット生成部
626を含む。パケット生成部626は、発火識別部6
20が発火を識別しないとき、すなわち入力データパケ
ットの未発火フラグが立てられてオン状態の場合にはこ
の入力データパケットに対しては処理を行なわずそのま
ま出力する。
【0028】このパケット生成部626からのデータパ
ケットが演算処理ユニット554へ伝達される。次に、
この対データ検出ユニット552およびプログラム記憶
ユニット564の動作についてその動作フロー図である
図20および図21を参照して説明する。
ケットが演算処理ユニット554へ伝達される。次に、
この対データ検出ユニット552およびプログラム記憶
ユニット564の動作についてその動作フロー図である
図20および図21を参照して説明する。
【0029】図20は対データ検出ユニットの動作を示
すフロー図である。以下、図17および図20を参照し
て対データ検出ユニットの動作について説明する。
すフロー図である。以下、図17および図20を参照し
て対データ検出ユニットの動作について説明する。
【0030】入力データパケットが与えられると、まず
命令識別部602において命令がデコードされ(ステッ
プS1)、その入力データパケットに含まれる演算命令
が2項演算命令であるか単項演算命令であるかの判別が
行なわれる(ステップS2)。このとき、2項演算命令
は2変数演算命令および定数演算命令両者を含んでもよ
い。また、命令デコード操作としては、単に単項演算命
令/2項演算命令フラグを見ることによりデコードおよ
び判別動作が行なわれてもよい。
命令識別部602において命令がデコードされ(ステッ
プS1)、その入力データパケットに含まれる演算命令
が2項演算命令であるか単項演算命令であるかの判別が
行なわれる(ステップS2)。このとき、2項演算命令
は2変数演算命令および定数演算命令両者を含んでもよ
い。また、命令デコード操作としては、単に単項演算命
令/2項演算命令フラグを見ることによりデコードおよ
び判別動作が行なわれてもよい。
【0031】ステップS2において2項演算命令ではな
いと判別された場合、その命令は単項演算命令であり、
対データは待合せていないため、そのデータパケットの
未発火フラグはオフ状態にリセットされ(ステップS
4)出力される。
いと判別された場合、その命令は単項演算命令であり、
対データは待合せていないため、そのデータパケットの
未発火フラグはオフ状態にリセットされ(ステップS
4)出力される。
【0032】ステップS2において、2項演算命令であ
ると判別された場合、読出制御部606において、入力
データパケットに含まれる行先ノード番号および世代番
号に対しハッシュ演算を施してハッシュアドレスが生成
され、待合せメモリ604へアクセスが行なわれる(ス
テップS6)。
ると判別された場合、読出制御部606において、入力
データパケットに含まれる行先ノード番号および世代番
号に対しハッシュ演算を施してハッシュアドレスが生成
され、待合せメモリ604へアクセスが行なわれる(ス
テップS6)。
【0033】ステップS6において、優先度判別部60
8により待合せメモリ604から読出制御部606によ
り読出されたデータパケットが有効なデータパケットで
あるか、すなわち待合せを行なっているデータパケット
であるか否かの判別が行なわれる(ステップS8)。こ
れは待合せメモリ604において待合せているデータパ
ケットには有効フラグが立てられており、この有効フラ
グを見ることにより実行される。
8により待合せメモリ604から読出制御部606によ
り読出されたデータパケットが有効なデータパケットで
あるか、すなわち待合せを行なっているデータパケット
であるか否かの判別が行なわれる(ステップS8)。こ
れは待合せメモリ604において待合せているデータパ
ケットには有効フラグが立てられており、この有効フラ
グを見ることにより実行される。
【0034】ステップS8において、有効なデータパケ
ットが存在しない場合、その入力データパケットは待合
せのため、パケット制御部610によりこの生成された
ハッシュアドレスに従って待合せメモリ604に格納さ
れ、有効フラグが立てられる(ステップS10)。この
とき、合わせて有効データであることを示す有効データ
フラグが立てられる。
ットが存在しない場合、その入力データパケットは待合
せのため、パケット制御部610によりこの生成された
ハッシュアドレスに従って待合せメモリ604に格納さ
れ、有効フラグが立てられる(ステップS10)。この
とき、合わせて有効データであることを示す有効データ
フラグが立てられる。
【0035】ステップS8において、有効な待合せデー
タパケットが存在する場合、優先度判別部608により
入力データパケットと読出されたデータパケットの行先
ノード番号および世代番号の一致/不一致が判別され
る。すなわち、ハッシュ衝突が生じたか否かの判別が行
なわれる(ステップS12)。
タパケットが存在する場合、優先度判別部608により
入力データパケットと読出されたデータパケットの行先
ノード番号および世代番号の一致/不一致が判別され
る。すなわち、ハッシュ衝突が生じたか否かの判別が行
なわれる(ステップS12)。
【0036】ステップS12においてハッシュ衝突が生
じていないと判別された場合、それは対をなすデータで
ある。したがってこの状態では、パケット制御部610
により発火データパケットが生成され、未発火フラグは
オフ状態にリセットされて出力される(ステップS1
4)。
じていないと判別された場合、それは対をなすデータで
ある。したがってこの状態では、パケット制御部610
により発火データパケットが生成され、未発火フラグは
オフ状態にリセットされて出力される(ステップS1
4)。
【0037】ステップS12においてハッシュ衝突が生
じていると判別された場合(これは図17に示す優先度
判別部608が実行する)、この入力データパケットと
読出されたデータパケットとの優先順位の判別が行なわ
れる。優先順位基準に従って、世代番号の大小がまず比
較され、世代番号が小さい方が優先度が高いと判別され
る。世代番号が同じ場合には行先ノード番号が小さい方
が優先度が高いものと判定される。この判定基準に従っ
て優先度が高いと判別されたデータパケットは待合せメ
モリ604へ格納され、その有効データフラグがオン状
態とされる。
じていると判別された場合(これは図17に示す優先度
判別部608が実行する)、この入力データパケットと
読出されたデータパケットとの優先順位の判別が行なわ
れる。優先順位基準に従って、世代番号の大小がまず比
較され、世代番号が小さい方が優先度が高いと判別され
る。世代番号が同じ場合には行先ノード番号が小さい方
が優先度が高いものと判定される。この判定基準に従っ
て優先度が高いと判別されたデータパケットは待合せメ
モリ604へ格納され、その有効データフラグがオン状
態とされる。
【0038】一方、優先度が低いと判別されたデータパ
ケットは、その未発火フラグがオン状態に設定されて出
力される(ステップS16)。
ケットは、その未発火フラグがオン状態に設定されて出
力される(ステップS16)。
【0039】上述の処理動作により、対データ検出ユニ
ット562においては、待合せのためのデータパケット
の格納、入力データパケットの保存(未発火フラグをオ
ン状態に設定して出力)、および発火パケットの生成の
いずれかが実行され、この処理結果がプログラム記憶ユ
ニット564へ伝達される。次に、図17および図21
を参照してプログラム記憶ユニットの動作について説明
する。
ット562においては、待合せのためのデータパケット
の格納、入力データパケットの保存(未発火フラグをオ
ン状態に設定して出力)、および発火パケットの生成の
いずれかが実行され、この処理結果がプログラム記憶ユ
ニット564へ伝達される。次に、図17および図21
を参照してプログラム記憶ユニットの動作について説明
する。
【0040】まず、対データ検出ユニット562から伝
達されたデータパケットはその発火識別部660におい
て未発火フラグがオンであるかオフであるかの判別が行
なわれる(ステップS20)。未発火フラグがオン状態
にあり、待合せデータパケットである場合には、そのま
ま出力される。未発火フラグがオフ状態にあり、発火デ
ータパケットの場合にはプログラム命令の次命令フェッ
チのため、プログラムメモリ622がアクセスされる
(ステップS22)。このアクセスのためには、入力デ
ータパケットに含まれる行先ノード番号が利用される。
このとき、また対データ検出ユニット562と同様のハ
ッシュ演算が実行されてもよい。
達されたデータパケットはその発火識別部660におい
て未発火フラグがオンであるかオフであるかの判別が行
なわれる(ステップS20)。未発火フラグがオン状態
にあり、待合せデータパケットである場合には、そのま
ま出力される。未発火フラグがオフ状態にあり、発火デ
ータパケットの場合にはプログラム命令の次命令フェッ
チのため、プログラムメモリ622がアクセスされる
(ステップS22)。このアクセスのためには、入力デ
ータパケットに含まれる行先ノード番号が利用される。
このとき、また対データ検出ユニット562と同様のハ
ッシュ演算が実行されてもよい。
【0041】ステップS22においてプログラムメモリ
622から読出されたデータ、すなわちデータフロープ
ログラムに従って、入力データパケットに対し以下の処
理が行なわれる。すなわち、入力データパケットの命令
フィールドF4および行先ノード番号フィールドF2の
行先ノード番号の更新が実行される。この更新の後、未
発火フラグはリセット状態とされて出力される。
622から読出されたデータ、すなわちデータフロープ
ログラムに従って、入力データパケットに対し以下の処
理が行なわれる。すなわち、入力データパケットの命令
フィールドF4および行先ノード番号フィールドF2の
行先ノード番号の更新が実行される。この更新の後、未
発火フラグはリセット状態とされて出力される。
【0042】このプログラム記憶ユニットから出力され
るデータパケットは演算処理ユニット554へ与えられ
る。演算処理ユニット554は、入力されたデータパケ
ットの未発火フラグがオフ状態であれば、命令フィール
ドF4に含まれる命令に従ってそこに含まれるデータに
対し演算処理を施し、その処理結果をオペランドデータ
フィールドF5に格納する。
るデータパケットは演算処理ユニット554へ与えられ
る。演算処理ユニット554は、入力されたデータパケ
ットの未発火フラグがオフ状態であれば、命令フィール
ドF4に含まれる命令に従ってそこに含まれるデータに
対し演算処理を施し、その処理結果をオペランドデータ
フィールドF5に格納する。
【0043】演算処理ユニット554は、入力データパ
ケットの未発火フラグがオン状態の場合には演算処理は
実行しない。
ケットの未発火フラグがオン状態の場合には演算処理は
実行しない。
【0044】演算処理ユニット554の出力データパケ
ットは分岐ユニット556へ伝達される。分岐ユニット
556は、与えられたデータパケットの未発火フラグが
オフ状態にあれば、そこに含まれる行先ノード番号フィ
ールドF2に含まれる行先ノード番号に従って、装置外
部およびデータバッファ558の一方に選択的に出力す
る。与えられたデータパケットの未発火フラグがオン状
態の場合には、この分岐ユニット556は入力データパ
ケットをデータバッファ558へ伝達する。
ットは分岐ユニット556へ伝達される。分岐ユニット
556は、与えられたデータパケットの未発火フラグが
オフ状態にあれば、そこに含まれる行先ノード番号フィ
ールドF2に含まれる行先ノード番号に従って、装置外
部およびデータバッファ558の一方に選択的に出力す
る。与えられたデータパケットの未発火フラグがオン状
態の場合には、この分岐ユニット556は入力データパ
ケットをデータバッファ558へ伝達する。
【0045】データバッファ558は、この処理装置5
06を流れているデータパケットの揺らぎを吸収する。
06を流れているデータパケットの揺らぎを吸収する。
【0046】
【発明が解決しようとする課題】上述のように、データ
パケットが、対データ検出ユニット562→プログラム
記憶ユニット564→演算処理ユニット554→分岐ユ
ニット556→データバッファ558→合流ユニット5
50→対データ検出ユニット562…と巡回し続けるこ
とによりプログラム記憶ユニット564に格納されたデ
ータフロープログラムに基づいた情報処理が進行する。
このデータパケットの巡回パスは、通常、パイプライン
化されている。
パケットが、対データ検出ユニット562→プログラム
記憶ユニット564→演算処理ユニット554→分岐ユ
ニット556→データバッファ558→合流ユニット5
50→対データ検出ユニット562…と巡回し続けるこ
とによりプログラム記憶ユニット564に格納されたデ
ータフロープログラムに基づいた情報処理が進行する。
このデータパケットの巡回パスは、通常、パイプライン
化されている。
【0047】対データ検出ユニット562において、未
発火フラグがオン状態とされたデータパケットも同様
に、対データ検出ユニット562→プログラム記憶ユニ
ット564→演算処理ユニット554→分岐ユニット5
56→データバッファ558→合流ユニット550とこ
のデータ処理中のデータパケットと同様のパイプライン
化された巡回パスを巡回する。この未発火フラグがオン
状態のデータパケットはプログラム記憶ユニット564
および演算処理ユニット554で処理されることなく対
データ検出ユニット562における待合せメモリ604
の待合せ領域が利用可能となるまでこの巡回パスを巡回
し続ける。
発火フラグがオン状態とされたデータパケットも同様
に、対データ検出ユニット562→プログラム記憶ユニ
ット564→演算処理ユニット554→分岐ユニット5
56→データバッファ558→合流ユニット550とこ
のデータ処理中のデータパケットと同様のパイプライン
化された巡回パスを巡回する。この未発火フラグがオン
状態のデータパケットはプログラム記憶ユニット564
および演算処理ユニット554で処理されることなく対
データ検出ユニット562における待合せメモリ604
の待合せ領域が利用可能となるまでこの巡回パスを巡回
し続ける。
【0048】未発火状態のデータパケットが増加し、デ
ータバッファ558に格納されるデータパケットの数が
増加すると、この巡回パスにおけるパイプラインが長く
なる。このため、即座に処理することのできる可能性の
あるデータパケットがこの巡回パスを巡回する速度が低
下するという問題が生じる。
ータバッファ558に格納されるデータパケットの数が
増加すると、この巡回パスにおけるパイプラインが長く
なる。このため、即座に処理することのできる可能性の
あるデータパケットがこの巡回パスを巡回する速度が低
下するという問題が生じる。
【0049】また、すぐに処理可能なデータパケット
は、対データ検出ユニット562において検出され、速
やかに発火状態とされ、対データ検出ユニット652に
おける待合せメモリ604に空き領域を形成しなけれ
ば、未発火状態のデータパケットはいつまでも未発火状
態を維持することになり、処理が進行しない。この結
果、全体としての処理速度が低下する。この状態につい
て少し詳しく以下に説明する。
は、対データ検出ユニット562において検出され、速
やかに発火状態とされ、対データ検出ユニット652に
おける待合せメモリ604に空き領域を形成しなけれ
ば、未発火状態のデータパケットはいつまでも未発火状
態を維持することになり、処理が進行しない。この結
果、全体としての処理速度が低下する。この状態につい
て少し詳しく以下に説明する。
【0050】図22は、データ駆動型情報処理装置にお
ける巡回パスにおけるデータパケットの流れを例示する
図である。図22において、データバッファ558は、
合流ユニット550、対データ検出ユニット562、プ
ログラム記憶ユニット564、演算処理ユニット554
および分岐ユニット556からなるパイプラインに収納
可能な数以上のデータパケットが存在するために、この
パイプラインのオーバフローを吸収するために複数のデ
ータパケットを格納する。データバッファ558に格納
されるデータパケットは合流ユニット550の入力に空
きが生じたときに合流ユニット550を介して対データ
検出ユニット562へ与えられる。
ける巡回パスにおけるデータパケットの流れを例示する
図である。図22において、データバッファ558は、
合流ユニット550、対データ検出ユニット562、プ
ログラム記憶ユニット564、演算処理ユニット554
および分岐ユニット556からなるパイプラインに収納
可能な数以上のデータパケットが存在するために、この
パイプラインのオーバフローを吸収するために複数のデ
ータパケットを格納する。データバッファ558に格納
されるデータパケットは合流ユニット550の入力に空
きが生じたときに合流ユニット550を介して対データ
検出ユニット562へ与えられる。
【0051】今、データバッファ558に含まれるデー
タパケット110a、101b、および110bに着目
する。これらのデータパケット101b、110a、お
よび110bは、対データ検出ユニット562に含まれ
る待合せメモリ604の同一の待合せ領域を重複利用し
ているものとする。すなわち同一のハッシュアドレスを
生成するものとする。データパケット101bは、その
未発火フラグNRFがオフ状態(“0”)にあり、対デ
ータ検出ユニット562において待っているデータパケ
ット101aと対データとして検出されて発火する。デ
ータパケット110aおよび110bは、未発火フラグ
NRFがオン状態(“1”)となっており、対データ検
出ユニット562においてデータパケット101aが待
合せメモリ604の待合せ領域を使用しているため、未
発火フラグNRFがオン状態とされ出力されたデータパ
ケットである。この仮定の下でデータパケットの処理の
流れについて説明する。
タパケット110a、101b、および110bに着目
する。これらのデータパケット101b、110a、お
よび110bは、対データ検出ユニット562に含まれ
る待合せメモリ604の同一の待合せ領域を重複利用し
ているものとする。すなわち同一のハッシュアドレスを
生成するものとする。データパケット101bは、その
未発火フラグNRFがオフ状態(“0”)にあり、対デ
ータ検出ユニット562において待っているデータパケ
ット101aと対データとして検出されて発火する。デ
ータパケット110aおよび110bは、未発火フラグ
NRFがオン状態(“1”)となっており、対データ検
出ユニット562においてデータパケット101aが待
合せメモリ604の待合せ領域を使用しているため、未
発火フラグNRFがオン状態とされ出力されたデータパ
ケットである。この仮定の下でデータパケットの処理の
流れについて説明する。
【0052】データバッファ558は、先入れ先出し型
メモリである。データパケット110a、101b、お
よび110bの出力順序は変化しない。
メモリである。データパケット110a、101b、お
よび110bの出力順序は変化しない。
【0053】まず、データパケット110aが対データ
検出ユニット562へ与えられる。このデータパケット
110aのための待合せ領域は優先度の高いデータパケ
ット101aが利用している。したがって、データパケ
ット110aは再び、未発火フラグをオン状態とされて
出力される。
検出ユニット562へ与えられる。このデータパケット
110aのための待合せ領域は優先度の高いデータパケ
ット101aが利用している。したがって、データパケ
ット110aは再び、未発火フラグをオン状態とされて
出力される。
【0054】次に、データパケット101bが対データ
検出ユニット562へ与えられる。このデータパケット
101bは、待合せメモリ604に格納されているデー
タパケット101aと対をなすため、対データとして検
出される。これにより、それまでデータパケット101
aが格納されていた待合せ領域が空き領域となる。この
データパケット101aおよび101bは対データとし
てプログラム記憶ユニット564へ出力される。
検出ユニット562へ与えられる。このデータパケット
101bは、待合せメモリ604に格納されているデー
タパケット101aと対をなすため、対データとして検
出される。これにより、それまでデータパケット101
aが格納されていた待合せ領域が空き領域となる。この
データパケット101aおよび101bは対データとし
てプログラム記憶ユニット564へ出力される。
【0055】その後、データパケット110bが対デー
タ検出ユニット562へ伝達されると、待合せメモリ6
04の対応の待合せ領域へ格納される。再びデータパケ
ット110aが対データ検出ユニット562へ入力され
るまで同一待合せ領域を共有しかつ優先順位の高い別の
データパケットが入力されなければ、データパケット1
10aが対データ検出ユニット562へ与えられると、
このデータパケット110aとデータパケット110b
が対データとして検出される。
タ検出ユニット562へ伝達されると、待合せメモリ6
04の対応の待合せ領域へ格納される。再びデータパケ
ット110aが対データ検出ユニット562へ入力され
るまで同一待合せ領域を共有しかつ優先順位の高い別の
データパケットが入力されなければ、データパケット1
10aが対データ検出ユニット562へ与えられると、
このデータパケット110aとデータパケット110b
が対データとして検出される。
【0056】したがって、待合せメモリ604において
対応の待合せ領域が空き状態となるまで、優先順位の低
いデータパケットは未発火状態で巡回パス(パイプライ
ン)を巡回し続ける。また、データパケット101b
は、データパケット101aと対をなすデータである
が、データバッファ558へ入力された順序で対データ
検出ユニット562へ与えられるため、発火可能なデー
タパケットの処理が遅れ、この処理装置の処理速度が低
下する。また、未発火状態のデータパケット110aお
よび110bはデータパケット101aが対データとし
て検出されて消費されるまでこの巡回パスを巡回し続け
る。このデータパケット110aおよび110bの処理
が遅れ、このため全体としての処理速度が低下する。
対応の待合せ領域が空き状態となるまで、優先順位の低
いデータパケットは未発火状態で巡回パス(パイプライ
ン)を巡回し続ける。また、データパケット101b
は、データパケット101aと対をなすデータである
が、データバッファ558へ入力された順序で対データ
検出ユニット562へ与えられるため、発火可能なデー
タパケットの処理が遅れ、この処理装置の処理速度が低
下する。また、未発火状態のデータパケット110aお
よび110bはデータパケット101aが対データとし
て検出されて消費されるまでこの巡回パスを巡回し続け
る。このデータパケット110aおよび110bの処理
が遅れ、このため全体としての処理速度が低下する。
【0057】また、データバッファ558はたとえばシ
フトレジスタ型の先入れ先出し型メモリで構成される。
この場合、データバッファ558において空き領域が存
在しても、入力データパケットがこのデータバッファ5
58において受ける遅延時間は一定である。したがっ
て、このデータバッファ558における遅延により有効
データパケットが高速で巡回パスを巡回することができ
ず、このため処理速度が低下する。
フトレジスタ型の先入れ先出し型メモリで構成される。
この場合、データバッファ558において空き領域が存
在しても、入力データパケットがこのデータバッファ5
58において受ける遅延時間は一定である。したがっ
て、このデータバッファ558における遅延により有効
データパケットが高速で巡回パスを巡回することができ
ず、このため処理速度が低下する。
【0058】それゆえ、この発明の目的は、データフロ
ープログラムを高速かつ効率的に処理することのできる
データ駆動型情報処理装置を提供することである。
ープログラムを高速かつ効率的に処理することのできる
データ駆動型情報処理装置を提供することである。
【0059】この発明の他の目的は、未発火データパケ
ットの発生を抑制することのできるデータ駆動型情報処
理装置を提供することである。
ットの発生を抑制することのできるデータ駆動型情報処
理装置を提供することである。
【0060】この発明のさらに他の目的は、格納データ
数に応じて遅延時間を変更することのできるデータバッ
ファを提供することである。
数に応じて遅延時間を変更することのできるデータバッ
ファを提供することである。
【0061】この発明のさらに他の目的は、データフロ
ープログラムの処理効率を改善することのできるデータ
バッファを提供することである。
ープログラムの処理効率を改善することのできるデータ
バッファを提供することである。
【0062】
【課題を解決するための手段】請求項1に係るデータ駆
動型情報処理装置は、データ巡回パス上の一方からのデ
ータを受けて一時的に格納しかつ格納データをこの巡回
パスを介して対データ検出ユニットへ伝達するバッファ
メモリ回路を含む。このバッファメモリ回路は、データ
を格納するための格納部と、入力データおよび格納デー
タに含まれるキーデータに従って予め定められた順序で
格納データが格納されるようにこの受けた入力データに
含まれるキーデータと格納データのキーデータとに従っ
て格納部の格納データを再配列する回路手段を含む。
動型情報処理装置は、データ巡回パス上の一方からのデ
ータを受けて一時的に格納しかつ格納データをこの巡回
パスを介して対データ検出ユニットへ伝達するバッファ
メモリ回路を含む。このバッファメモリ回路は、データ
を格納するための格納部と、入力データおよび格納デー
タに含まれるキーデータに従って予め定められた順序で
格納データが格納されるようにこの受けた入力データに
含まれるキーデータと格納データのキーデータとに従っ
て格納部の格納データを再配列する回路手段を含む。
【0063】請求項2に係るデータ駆動型情報処理装置
は、このデータ再配列手段が、対データ検出部において
実行される優先度判別基準と同様の判別基準に従って格
納データの再配列を行なう手段を含む。
は、このデータ再配列手段が、対データ検出部において
実行される優先度判別基準と同様の判別基準に従って格
納データの再配列を行なう手段を含む。
【0064】請求項3に係るデータバッファは、入力デ
ータを受ける入力部と、出力データを出力する出力部と
の間のデータ伝送路に沿って配置され、入力データを順
次格納しかつ出力するための、互いに縦続接続された複
数のデータメモリと、このデータ伝送路の鏡映対象の位
置のデータメモリに対して設けられ、出力部側のデータ
メモリに格納されたデータが存在しないとき入力部側デ
ータメモリのデータをこの読出出力部側データメモリに
転送する第1の転送手段と、鏡映対象の位置のデータメ
モリに設けられ、入力部側データメモリに格納されたデ
ータに含まれる所定のキーデータと出力部側データメモ
リに格納されるデータの所定のキーデータとを比較する
比較手段と、この比較手段の比較結果に従って出力部側
データメモリの格納データと入力部側データメモリの格
納データとを交換する手段とを含む。
ータを受ける入力部と、出力データを出力する出力部と
の間のデータ伝送路に沿って配置され、入力データを順
次格納しかつ出力するための、互いに縦続接続された複
数のデータメモリと、このデータ伝送路の鏡映対象の位
置のデータメモリに対して設けられ、出力部側のデータ
メモリに格納されたデータが存在しないとき入力部側デ
ータメモリのデータをこの読出出力部側データメモリに
転送する第1の転送手段と、鏡映対象の位置のデータメ
モリに設けられ、入力部側データメモリに格納されたデ
ータに含まれる所定のキーデータと出力部側データメモ
リに格納されるデータの所定のキーデータとを比較する
比較手段と、この比較手段の比較結果に従って出力部側
データメモリの格納データと入力部側データメモリの格
納データとを交換する手段とを含む。
【0065】
【作用】請求項1に係るデータ駆動型情報処理装置にお
いては、再配列手段によりデータバッファ内のデータパ
ケットはそこに含まれるキーデータに従って所定の順序
で配列されて対データ検出ユニットへ順次伝達される。
これにより、データフロープログラムを効率的に処理す
る順序で対データ検出ユニットへデータパケットを与え
ることが可能となる。
いては、再配列手段によりデータバッファ内のデータパ
ケットはそこに含まれるキーデータに従って所定の順序
で配列されて対データ検出ユニットへ順次伝達される。
これにより、データフロープログラムを効率的に処理す
る順序で対データ検出ユニットへデータパケットを与え
ることが可能となる。
【0066】請求項2に係るデータ駆動型情報処理装置
においては、対データ検出ユニットで利用される優先度
判別基準と同様の判別基準に従ってデータバッファ内の
データパケットが再配列される。これにより、待合せ状
態のデータパケットに対し対を形成し発火する可能性の
大きいデータパケットが早く対データ検出ユニットへ伝
達される。
においては、対データ検出ユニットで利用される優先度
判別基準と同様の判別基準に従ってデータバッファ内の
データパケットが再配列される。これにより、待合せ状
態のデータパケットに対し対を形成し発火する可能性の
大きいデータパケットが早く対データ検出ユニットへ伝
達される。
【0067】請求項3に係るデータバッファにおいて
は、出力部側データメモリに格納データが存在しないと
き第1の転送手段により入力部側データメモリからその
出力部側データメモリへデータが転送されるため、デー
タバッファの記憶段数を格納データの数に応じて変更す
ることができ、高速でデータを出力することが可能とな
る。
は、出力部側データメモリに格納データが存在しないと
き第1の転送手段により入力部側データメモリからその
出力部側データメモリへデータが転送されるため、デー
タバッファの記憶段数を格納データの数に応じて変更す
ることができ、高速でデータを出力することが可能とな
る。
【0068】また、キーデータの大小に応じて入力部側
データメモリと出力部側データメモリとの交換を行なう
ことにより、出力データ列を常時キーデータの大小に応
じて配列することが可能となり、データ処理内容に応じ
たデータの再配列を容易かつ確実に実現することが可能
となる。
データメモリと出力部側データメモリとの交換を行なう
ことにより、出力データ列を常時キーデータの大小に応
じて配列することが可能となり、データ処理内容に応じ
たデータの再配列を容易かつ確実に実現することが可能
となる。
【0069】
【実施例】図1はこの発明の一実施例であるデータ駆動
型情報処理装置の構成を示す図である。図1において
は、データ駆動エンジン部の構成が機能的に示される。
図1に示す構成において、図16に示す構成と同一部分
には同一の参照番号を付しその詳細説明は省略する。図
1において、分岐ユニット556と合流ユニット550
との間に、データパケットの流れの揺らぎを吸収するた
めのデータバッファ1が設けられる。データバッファ1
は、分岐ユニット556からのデータパケットを格納す
るためのメモリユニット2と、このメモリユニット2に
格納されたデータパケットをキーデータの大小関係に従
って再配列する再配列制御ユニット10を含む。
型情報処理装置の構成を示す図である。図1において
は、データ駆動エンジン部の構成が機能的に示される。
図1に示す構成において、図16に示す構成と同一部分
には同一の参照番号を付しその詳細説明は省略する。図
1において、分岐ユニット556と合流ユニット550
との間に、データパケットの流れの揺らぎを吸収するた
めのデータバッファ1が設けられる。データバッファ1
は、分岐ユニット556からのデータパケットを格納す
るためのメモリユニット2と、このメモリユニット2に
格納されたデータパケットをキーデータの大小関係に従
って再配列する再配列制御ユニット10を含む。
【0070】再配列制御ユニット10は、分岐ユニット
556から与えられる入力データパケットから予め定め
られたキー(データ)を検出するキー検出部4と、メモ
リユニット2に格納されたデータパケットの各キーを監
視するキーモニタ3と、キーモニタ3からのキー情報と
キー検出部4からのキー情報を比較しその大小関係を示
す信号を出力するキー比較部5と、このキー比較部5か
らの比較結果情報に従ってメモリユニット2内のデータ
パケットの配列順序を入れ替える配列制御部6を含む。
556から与えられる入力データパケットから予め定め
られたキー(データ)を検出するキー検出部4と、メモ
リユニット2に格納されたデータパケットの各キーを監
視するキーモニタ3と、キーモニタ3からのキー情報と
キー検出部4からのキー情報を比較しその大小関係を示
す信号を出力するキー比較部5と、このキー比較部5か
らの比較結果情報に従ってメモリユニット2内のデータ
パケットの配列順序を入れ替える配列制御部6を含む。
【0071】用いられるキーとしては、図2に示すよう
に、上位から未発火フラグNFR(未発火時“1”)、
世代番号、および行先ノード番号を用いる。世代番号お
よび行先ノード番号は、対データ検出ユニット562に
おける優先度を判別するための判別基準として利用され
ている。したがって、この対データ検出ユニット562
に用いられる優先度判別基準と同様の判別基準がデータ
バッファ1におけるデータパケット再配列評価基準とし
て利用される。
に、上位から未発火フラグNFR(未発火時“1”)、
世代番号、および行先ノード番号を用いる。世代番号お
よび行先ノード番号は、対データ検出ユニット562に
おける優先度を判別するための判別基準として利用され
ている。したがって、この対データ検出ユニット562
に用いられる優先度判別基準と同様の判別基準がデータ
バッファ1におけるデータパケット再配列評価基準とし
て利用される。
【0072】図1において、対データ検出ユニット56
2は、待合せデータパケットを格納する待合せメモリ6
04と、この待合せメモリへのデータパケットの格納お
よび読出ならびに優先度の判別とを実行する書込/制御
部20を含む。この書込/読出制御部20は、図17に
示す構成において命令識別部602、読出制御部60
6、優先度判別部608およびパケット制御部610を
含む。次に動作について説明する。データバッファ1を
除くユニットすなわち、合流ユニット550、対データ
検出ユニット562、プログラム記憶ユニット564、
演算処理ユニット554および分岐ユニット556の動
作は図16および図17に示す従来のデータ駆動型情報
処理装置のそれと同様である。したがって以下の説明に
おいてはこの発明において利用されるデータバッファ1
の動作についてのみ説明する。
2は、待合せデータパケットを格納する待合せメモリ6
04と、この待合せメモリへのデータパケットの格納お
よび読出ならびに優先度の判別とを実行する書込/制御
部20を含む。この書込/読出制御部20は、図17に
示す構成において命令識別部602、読出制御部60
6、優先度判別部608およびパケット制御部610を
含む。次に動作について説明する。データバッファ1を
除くユニットすなわち、合流ユニット550、対データ
検出ユニット562、プログラム記憶ユニット564、
演算処理ユニット554および分岐ユニット556の動
作は図16および図17に示す従来のデータ駆動型情報
処理装置のそれと同様である。したがって以下の説明に
おいてはこの発明において利用されるデータバッファ1
の動作についてのみ説明する。
【0073】キー検出部4は、分岐ユニット556から
与えられる入力データパケットから所定のキーすなわち
未発火フラグNFR、世代番号および行先ノード番号を
抽出することによりキーデータを生成する。キーモニタ
3は、メモリユニット2に格納される各データパケット
のキーデータをモニタしている。データ入力時において
キー比較部5はこのキーモニタ3からのキーデータとキ
ー検出部4からのキーデータとを受け、その大小を比較
する。配列制御部6はこのキー比較部5からの比較情報
に従ってこのキーデータの小さい順に出力データパケッ
トが配列されるようにそのデータパケットを再配列す
る。したがって、メモリユニット2からデータパケット
が出力される場合には、(1)未発火フラグNFRが立
っていないデータパケット(NFR=0)の方が未発火
フラグが立っているデータパケット(NFR=1)より
も先に、(2)未発火フラグNFRが同じ状態にあるデ
ータパケットは世代番号が小さい方が先に、および
(3)未発火フラグNFRが同じ状態にありかつ世代番
号が同じデータパケットは行先ノード番号が小さい方が
先に出力される。
与えられる入力データパケットから所定のキーすなわち
未発火フラグNFR、世代番号および行先ノード番号を
抽出することによりキーデータを生成する。キーモニタ
3は、メモリユニット2に格納される各データパケット
のキーデータをモニタしている。データ入力時において
キー比較部5はこのキーモニタ3からのキーデータとキ
ー検出部4からのキーデータとを受け、その大小を比較
する。配列制御部6はこのキー比較部5からの比較情報
に従ってこのキーデータの小さい順に出力データパケッ
トが配列されるようにそのデータパケットを再配列す
る。したがって、メモリユニット2からデータパケット
が出力される場合には、(1)未発火フラグNFRが立
っていないデータパケット(NFR=0)の方が未発火
フラグが立っているデータパケット(NFR=1)より
も先に、(2)未発火フラグNFRが同じ状態にあるデ
ータパケットは世代番号が小さい方が先に、および
(3)未発火フラグNFRが同じ状態にありかつ世代番
号が同じデータパケットは行先ノード番号が小さい方が
先に出力される。
【0074】未発火フラグNFRが立っていないすなわ
ちオフ状態のデータパケットは、待合せメモリ604に
対のデータパケットが格納されているかまたはこれから
待合せメモリ604に格納される可能性が高い。また、
未発火フラグNFRが同じ状態にあれば、世代番号が小
さい方が先に実行される可能性が高い。また、未発火フ
ラグNFRが同じ状態でありかつ世代番号が同じであれ
ば、行先ノード番号が小さい方が先に処理される可能性
が高い(データフロープログラムでは、通常データアー
クはノード番号の小さい方から大きい方へ流れる)。し
たがって、このような優先順位に従って出力データを再
配列して出力することにより、早く処理される可能性の
高いデータパケットを早く出力することができ、データ
フロープログラムの処理効率が高くなる。この動作を図
22を参照して説明する。
ちオフ状態のデータパケットは、待合せメモリ604に
対のデータパケットが格納されているかまたはこれから
待合せメモリ604に格納される可能性が高い。また、
未発火フラグNFRが同じ状態にあれば、世代番号が小
さい方が先に実行される可能性が高い。また、未発火フ
ラグNFRが同じ状態でありかつ世代番号が同じであれ
ば、行先ノード番号が小さい方が先に処理される可能性
が高い(データフロープログラムでは、通常データアー
クはノード番号の小さい方から大きい方へ流れる)。し
たがって、このような優先順位に従って出力データを再
配列して出力することにより、早く処理される可能性の
高いデータパケットを早く出力することができ、データ
フロープログラムの処理効率が高くなる。この動作を図
22を参照して説明する。
【0075】データバッファ1はデータ並べ換え機能す
なわちデータ再配列機能を備える。したがって、図22
に示すように、データパケット110a、データパケッ
ト101bおよびデータパケット110bがこの順に入
力された場合、最も先に出力されるのは、未発火フラグ
NRFがオフ状態にあるデータパケット101bであ
る。このデータパケット101bは対データ検出ユニッ
ト562へ与えられ、待合せメモリ604内に格納され
ているデータパケット101aと対を形成する。これに
よりデータパケット101aおよび101bにより発火
パケットが生成され、データメモリ604の待合せ領域
に空きが生じる。
なわちデータ再配列機能を備える。したがって、図22
に示すように、データパケット110a、データパケッ
ト101bおよびデータパケット110bがこの順に入
力された場合、最も先に出力されるのは、未発火フラグ
NRFがオフ状態にあるデータパケット101bであ
る。このデータパケット101bは対データ検出ユニッ
ト562へ与えられ、待合せメモリ604内に格納され
ているデータパケット101aと対を形成する。これに
よりデータパケット101aおよび101bにより発火
パケットが生成され、データメモリ604の待合せ領域
に空きが生じる。
【0076】次に、データパケット110aが対データ
検出ユニット562へ与えられ、待合せメモリ604の
待合せ領域に格納される。
検出ユニット562へ与えられ、待合せメモリ604の
待合せ領域に格納される。
【0077】その後、データパケット110bが対デー
タ検出ユニット562へ与えられる。出力データの再配
列により、データパケット110aが与えられてからデ
ータパケット110bが対データ検出ユニット562へ
与えられる時間的な差は従来よりも小さくなっている。
データパケット110aとデータパケット110bがメ
モリユニット2から出力される間にデータバッファ1に
対しより優先度の高いデータパケットの入力がないかま
たは合流ユニット550から外部から入力されたデータ
パケットがこのデータパケット110aおよび110b
の間に割り込まない限り、データパケット110aとデ
ータパケット110bは連続して対データ検出ユニット
562へ与えられる。したがって、データパケット11
0aとデータパケット110bとが対データ検出ユニッ
ト562で対データとして検出されて発火するまでの間
に、待合せメモリ604の同一待合せ領域をアクセスす
るデータパケットが現われる可能性が小さくなってい
る。このデータパケットの出力再配列について具体的な
例について説明する。
タ検出ユニット562へ与えられる。出力データの再配
列により、データパケット110aが与えられてからデ
ータパケット110bが対データ検出ユニット562へ
与えられる時間的な差は従来よりも小さくなっている。
データパケット110aとデータパケット110bがメ
モリユニット2から出力される間にデータバッファ1に
対しより優先度の高いデータパケットの入力がないかま
たは合流ユニット550から外部から入力されたデータ
パケットがこのデータパケット110aおよび110b
の間に割り込まない限り、データパケット110aとデ
ータパケット110bは連続して対データ検出ユニット
562へ与えられる。したがって、データパケット11
0aとデータパケット110bとが対データ検出ユニッ
ト562で対データとして検出されて発火するまでの間
に、待合せメモリ604の同一待合せ領域をアクセスす
るデータパケットが現われる可能性が小さくなってい
る。このデータパケットの出力再配列について具体的な
例について説明する。
【0078】図3に、このデータバッファ1における出
力データの出力順序を並べ換える状態を概略的に示す。
待合せメモリ604においてキーデータ10106Hが
待合せている状態を考える。今、メモリユニット2にお
ける出力データは00405H、00505H、102
06H、10307Hの順に配置されていた場合に新た
に00206Hのデータパケットが入力された状態を考
える。この新たに入力されたデータパケット00106
Hは待合せメモリ内の待合せデータパケット(キーデー
タ00106H)と対をなす。この場合、再配列制御ユ
ニットの機能の下に、新たに入力されたデータパケット
(キーデータ00106H)が未発火フラグNRFがオ
フ(“0”)、世代番号が“01”であるため最優先し
て出力される。この最優先して出力されるデータパケッ
トは待合せているデータパケットと対データを形成す
る。これにより待合せデータパケットの消費が行なわ
れ、待合せ領域に速やかに空き領域が生じ、未発火フラ
グがオン状態の未発火データパケットの巡回が防止され
る。ここで、対をなすデータはノード番号が同じであり
世代番号が同じデータパケットと想定している。出力デ
ータパケットとしてはキーデータ00405Hとキーデ
ータ10405Hのデータパケットが対をなすため、対
をなすデータが短期間に対データ検出ユニットへ与えら
れる可能性が高い。これによりデータフロープログラム
の処理の高速化および処理効率の改善が得られる。
力データの出力順序を並べ換える状態を概略的に示す。
待合せメモリ604においてキーデータ10106Hが
待合せている状態を考える。今、メモリユニット2にお
ける出力データは00405H、00505H、102
06H、10307Hの順に配置されていた場合に新た
に00206Hのデータパケットが入力された状態を考
える。この新たに入力されたデータパケット00106
Hは待合せメモリ内の待合せデータパケット(キーデー
タ00106H)と対をなす。この場合、再配列制御ユ
ニットの機能の下に、新たに入力されたデータパケット
(キーデータ00106H)が未発火フラグNRFがオ
フ(“0”)、世代番号が“01”であるため最優先し
て出力される。この最優先して出力されるデータパケッ
トは待合せているデータパケットと対データを形成す
る。これにより待合せデータパケットの消費が行なわ
れ、待合せ領域に速やかに空き領域が生じ、未発火フラ
グがオン状態の未発火データパケットの巡回が防止され
る。ここで、対をなすデータはノード番号が同じであり
世代番号が同じデータパケットと想定している。出力デ
ータパケットとしてはキーデータ00405Hとキーデ
ータ10405Hのデータパケットが対をなすため、対
をなすデータが短期間に対データ検出ユニットへ与えら
れる可能性が高い。これによりデータフロープログラム
の処理の高速化および処理効率の改善が得られる。
【0079】上述のように、未発火フラグNFRの大小
比較と、対データ検出ユニット562における優先度判
別と同様の優先度判別基準に従って優先順位を決定し、
この優先順位に基づいてメモリユニットに格納されてい
るデータパケットの順序を変更して出力することによ
り、すぐに処理される可能性のあるデータパケットは未
発火パケットに邪魔されることなく高速で巡回パス上に
送出することが可能となる。またこの出力データの順序
再配列により、データ待合せ領域が早く開放されること
が可能となる。さらに、対データとなる可能性の高いデ
ータパケット間の距離を近くすることが可能となり、対
データ検出ユニットにおけるデータ待合せ領域を効率的
に機能させることができ、データ処理のうえで無駄な動
きをしているように見える未発火データパケットの発生
を低減することが可能となる。これにより、データフロ
ープログラムの処理効率が向上する。
比較と、対データ検出ユニット562における優先度判
別と同様の優先度判別基準に従って優先順位を決定し、
この優先順位に基づいてメモリユニットに格納されてい
るデータパケットの順序を変更して出力することによ
り、すぐに処理される可能性のあるデータパケットは未
発火パケットに邪魔されることなく高速で巡回パス上に
送出することが可能となる。またこの出力データの順序
再配列により、データ待合せ領域が早く開放されること
が可能となる。さらに、対データとなる可能性の高いデ
ータパケット間の距離を近くすることが可能となり、対
データ検出ユニットにおけるデータ待合せ領域を効率的
に機能させることができ、データ処理のうえで無駄な動
きをしているように見える未発火データパケットの発生
を低減することが可能となる。これにより、データフロ
ープログラムの処理効率が向上する。
【0080】次に、この出力データの再配列をキーデー
タの優先順位に従って行なうための構成について説明す
る。
タの優先順位に従って行なうための構成について説明す
る。
【0081】図4は、図1に示すデータバッファの具体
的構成の一例を示す図である。図4において、データバ
ッファ1は、入力データパケットを伝達するための互い
に縦続接続された選択入力機能付ラッチ110a、11
0b、110c、…、および110nと、この入力デー
タパケット伝達用の選択入力機能付ラッチ110a〜1
10n各々に対応して設けられる互いに縦続接続された
出力データ伝達用選択入力機能付ラッチ210a、21
0b、210c、…、および210nと、それぞれ対応
の選択入力機能付ラッチ110iおよび210i(i=
a〜n)の間に設けられ、この対応のラッチに格納され
たデータパケットのうちキーデータを抽出しその大小関
係を比較するとともにその比較結果に従って対応のラッ
チに格納されたデータの交換を制御するデータ入替え制
御回路310a、310b、310c、…、310nを
含む。
的構成の一例を示す図である。図4において、データバ
ッファ1は、入力データパケットを伝達するための互い
に縦続接続された選択入力機能付ラッチ110a、11
0b、110c、…、および110nと、この入力デー
タパケット伝達用の選択入力機能付ラッチ110a〜1
10n各々に対応して設けられる互いに縦続接続された
出力データ伝達用選択入力機能付ラッチ210a、21
0b、210c、…、および210nと、それぞれ対応
の選択入力機能付ラッチ110iおよび210i(i=
a〜n)の間に設けられ、この対応のラッチに格納され
たデータパケットのうちキーデータを抽出しその大小関
係を比較するとともにその比較結果に従って対応のラッ
チに格納されたデータの交換を制御するデータ入替え制
御回路310a、310b、310c、…、310nを
含む。
【0082】入力部101aへ与えられる入力データパ
ケットDIはm−1ビットのデータ幅を有し、信号線1
02を介して与えられる有効データフラグVLDが1ビ
ット付加される。したがって、この選択機能付ラッチの
一方入力Aへはmビットのデータが与えられる。この選
択入力機能付ラッチ110a〜110nは、クロック入
力103を介して与えられる入力データ転送クロックC
KFに従ってその格納データを次段の選択入力機能付ラ
ッチへ転送する。このラッチ110a〜110nに格納
される有効データフラグVLDが“1”(“H”レベ
ル)のときにはそのラッチに格納されているデータパケ
ットが有効であることを示す。有効データフラグVLD
が“0”(“L”レベル)のとき、そのラッチに含まれ
ているデータパケットは無効であることを示す。
ケットDIはm−1ビットのデータ幅を有し、信号線1
02を介して与えられる有効データフラグVLDが1ビ
ット付加される。したがって、この選択機能付ラッチの
一方入力Aへはmビットのデータが与えられる。この選
択入力機能付ラッチ110a〜110nは、クロック入
力103を介して与えられる入力データ転送クロックC
KFに従ってその格納データを次段の選択入力機能付ラ
ッチへ転送する。このラッチ110a〜110nに格納
される有効データフラグVLDが“1”(“H”レベ
ル)のときにはそのラッチに格納されているデータパケ
ットが有効であることを示す。有効データフラグVLD
が“0”(“L”レベル)のとき、そのラッチに含まれ
ているデータパケットは無効であることを示す。
【0083】出力データパケットを出力するための選択
入力機能付ラッチ210a〜210nはクロック入力2
03を介して与えられる出力データ転送クロックCKB
に応答してその格納データを前段のラッチ(出力部20
1に近い出力用の選択入力機能付ラッチ)へ転送する。
入力機能付ラッチ210a〜210nはクロック入力2
03を介して与えられる出力データ転送クロックCKB
に応答してその格納データを前段のラッチ(出力部20
1に近い出力用の選択入力機能付ラッチ)へ転送する。
【0084】データ入替え制御回路310a〜310n
は、対応のラッチに格納されたnビットのデータのうち
キーデータとしてnビットのデータを抽出しそのキーデ
ータの大小関係に応じて入力部側のラッチから出力部側
のラッチへのデータの転送および入力部側ラッチと出力
部側ラッチとの間のデータを交換を実行する。このデー
タ入替え制御回路310a〜310nの比較結果はクロ
ック入力301へ与えられるクロック信号CKCに応答
して確定状態となる。
は、対応のラッチに格納されたnビットのデータのうち
キーデータとしてnビットのデータを抽出しそのキーデ
ータの大小関係に応じて入力部側のラッチから出力部側
のラッチへのデータの転送および入力部側ラッチと出力
部側ラッチとの間のデータを交換を実行する。このデー
タ入替え制御回路310a〜310nの比較結果はクロ
ック入力301へ与えられるクロック信号CKCに応答
して確定状態となる。
【0085】図4において、図の右側に示されている入
力データ出力部101b、状態フラグFULL出力信号
線105、クロック信号CKFを伝達する信号線10
6、クロック信号CKCを伝達する信号線302、クロ
ック信号CKBを伝達する信号線206および出力デー
タを入力する信号線204はそれぞれこのデータバッフ
ァが次段のデータバッファに接続される状態を示す。こ
の図4に示すデータバッファは同一構成の回路成分を含
んでおり、容易に拡張することが可能である。信号線1
05上に現われる状態フラグFULLが“1”の場合、
この入力データ用のラッチ110a〜110nのすべて
に対し有効データが格納されている状態を示す。また信
号線204から与えられるm−1ビットのデータは
“0”の有効性フラグVLD(信号線205から与えら
れる)とともにmビットのデータとなり、ラッチ210
nへ与えられる。信号線202から与えられる状態フラ
グEMPTYは、この出力データ用のラッチ210a〜
210nに出力すべき有効データパケットが存在するか
否かを示す。この状態フラグFULLおよびEMPTY
は、それぞれ信号線102から与えられる有効性フラグ
VLDおよび信号線205から与えられる有効性フラグ
VLDに対応する。
力データ出力部101b、状態フラグFULL出力信号
線105、クロック信号CKFを伝達する信号線10
6、クロック信号CKCを伝達する信号線302、クロ
ック信号CKBを伝達する信号線206および出力デー
タを入力する信号線204はそれぞれこのデータバッフ
ァが次段のデータバッファに接続される状態を示す。こ
の図4に示すデータバッファは同一構成の回路成分を含
んでおり、容易に拡張することが可能である。信号線1
05上に現われる状態フラグFULLが“1”の場合、
この入力データ用のラッチ110a〜110nのすべて
に対し有効データが格納されている状態を示す。また信
号線204から与えられるm−1ビットのデータは
“0”の有効性フラグVLD(信号線205から与えら
れる)とともにmビットのデータとなり、ラッチ210
nへ与えられる。信号線202から与えられる状態フラ
グEMPTYは、この出力データ用のラッチ210a〜
210nに出力すべき有効データパケットが存在するか
否かを示す。この状態フラグFULLおよびEMPTY
は、それぞれ信号線102から与えられる有効性フラグ
VLDおよび信号線205から与えられる有効性フラグ
VLDに対応する。
【0086】次にこの図4に示すデータバッファのデー
タ入力動作および出力動作について説明する。まずデー
タ入力時の動作についてその動作フロー図である図5を
併せて参照して説明する。
タ入力動作および出力動作について説明する。まずデー
タ入力時の動作についてその動作フロー図である図5を
併せて参照して説明する。
【0087】まず、信号線105から出力される状態フ
ラグFULLが“0”であるか否かの判別が行なわれる
(ステップS30)。状態フラグFULLが“1”の場
合には、この入力データのためのラッチ110a〜11
0nすべてに有効データが格納されていることを示して
おり、新たにデータパケットを入力することができない
ことを示している。したがってこの状態フラグFULL
が“0”となるまでデータパケットの入力は行なわれな
い。
ラグFULLが“0”であるか否かの判別が行なわれる
(ステップS30)。状態フラグFULLが“1”の場
合には、この入力データのためのラッチ110a〜11
0nすべてに有効データが格納されていることを示して
おり、新たにデータパケットを入力することができない
ことを示している。したがってこの状態フラグFULL
が“0”となるまでデータパケットの入力は行なわれな
い。
【0088】状態フラグFULLが“0”となると、信
号線101aにデータパケットDIが入力される。m−
1ビットのデータパケットDIは有効データフラグVL
D(“1”)とともにラッチ110aへ与えられる。こ
こで、初期状態においてはリセットRESETがラッチ
110a〜110nおよび210a〜210nへ与えら
れ、これらのラッチ110a〜110nおよび210a
〜210nに含まれる有効データフラグVLDは“0”
にリセットされる。
号線101aにデータパケットDIが入力される。m−
1ビットのデータパケットDIは有効データフラグVL
D(“1”)とともにラッチ110aへ与えられる。こ
こで、初期状態においてはリセットRESETがラッチ
110a〜110nおよび210a〜210nへ与えら
れ、これらのラッチ110a〜110nおよび210a
〜210nに含まれる有効データフラグVLDは“0”
にリセットされる。
【0089】状態フラグFULLが“0”であると、信
号線101aを介してデータパケットDIが与えられ
る。m−1ビットのデータパケットは信号線102から
の有効性を示す有効性フラグVLDと共にmビットのデ
ータとなってラッチ110aの一方入力Aへ与えられ
る。ラッチ110a〜110nにおける入力データパケ
ットDIおよび格納データDiおよび有効データフラグ
VLD(以下、両者を含めて単にデータと称す)の取込
みおよびシフト動作はクロック信号CKFにより制御さ
れる。すなわち、クロック信号CKFが信号線103を
介して与えられると、ラッチ110a〜110nはその
ラッチデータを次段のラッチへ転送するとともに新たに
与えられたデータをラッチする。たとえば、ラッチ11
0aに格納されていたデータはラッチ110bへ転送さ
れ、ラッチ110bに格納されていたデータはラッチ1
10cへ転送される(ステップS32)。
号線101aを介してデータパケットDIが与えられ
る。m−1ビットのデータパケットは信号線102から
の有効性を示す有効性フラグVLDと共にmビットのデ
ータとなってラッチ110aの一方入力Aへ与えられ
る。ラッチ110a〜110nにおける入力データパケ
ットDIおよび格納データDiおよび有効データフラグ
VLD(以下、両者を含めて単にデータと称す)の取込
みおよびシフト動作はクロック信号CKFにより制御さ
れる。すなわち、クロック信号CKFが信号線103を
介して与えられると、ラッチ110a〜110nはその
ラッチデータを次段のラッチへ転送するとともに新たに
与えられたデータをラッチする。たとえば、ラッチ11
0aに格納されていたデータはラッチ110bへ転送さ
れ、ラッチ110bに格納されていたデータはラッチ1
10cへ転送される(ステップS32)。
【0090】次に図4において互いに向かい合ったラッ
チの格納データが比較される。データ入替え制御回路3
10aないし310nは、入力データ用ラッチ110i
(iはaないしnのいずれか)に有効データが存在し
(有効データフラグVLDが“1”)かつ出力データ用
のラッチ210iに有効データが存在しない(有効デー
タフラグVLD=“0”)か否かを判別する(ステップ
S34)。入力データ用のラッチ110iに有効データ
が存在し、出力データ用のラッチ210iに有効データ
が存在しない場合には、そのラッチ110iに格納され
ているデータDIと出力側ラッチ210iに格納されて
いるデータQiとの交換が実行される(ステップS3
8)。
チの格納データが比較される。データ入替え制御回路3
10aないし310nは、入力データ用ラッチ110i
(iはaないしnのいずれか)に有効データが存在し
(有効データフラグVLDが“1”)かつ出力データ用
のラッチ210iに有効データが存在しない(有効デー
タフラグVLD=“0”)か否かを判別する(ステップ
S34)。入力データ用のラッチ110iに有効データ
が存在し、出力データ用のラッチ210iに有効データ
が存在しない場合には、そのラッチ110iに格納され
ているデータDIと出力側ラッチ210iに格納されて
いるデータQiとの交換が実行される(ステップS3
8)。
【0091】入力データ用のラッチ110iに有効デー
タが存在し(VLD=1)かつ出力側のラッチ210i
にも有効データが存在する場合、その格納データDIお
よびQiから所望のnビットのキーデータを抽出しその
キーデータDi(n)およびQi(n)の大小を比較す
る(ステップS36)。入力用データのラッチ110i
に格納されているデータDiのキーデータDi(n)の
方が出力用データのラッチ210iに格納されているデ
ータQiのキーデータQi(n)よりも小さい場合に
は、このデータ入替え制御回路の制御の下にデータDi
とデータQiの交換がその他方入力ポートBを介して実
行される(ステップS38)。
タが存在し(VLD=1)かつ出力側のラッチ210i
にも有効データが存在する場合、その格納データDIお
よびQiから所望のnビットのキーデータを抽出しその
キーデータDi(n)およびQi(n)の大小を比較す
る(ステップS36)。入力用データのラッチ110i
に格納されているデータDiのキーデータDi(n)の
方が出力用データのラッチ210iに格納されているデ
ータQiのキーデータQi(n)よりも小さい場合に
は、このデータ入替え制御回路の制御の下にデータDi
とデータQiの交換がその他方入力ポートBを介して実
行される(ステップS38)。
【0092】ステップS36において、入力用データの
ラッチ110iに格納されているDiのキーデータDi
(n)が出力用データのラッチ210iに格納されてい
るデータQiのキーデータQi(n)よりも大きいかま
たは等しい場合にはデータの交換は実行されない。次い
で、再び入力データが与えられるのを待つ。これによ
り、出力部201に最も近いラッチ210aにおいては
常にキーデータQi(n)が最も小さいデータが格納さ
れる。たとえば、初期状態において、まずデータDIが
与えられた場合、入力用データラッチ110aに格納さ
れる。このラッチ110aに格納されたデータはラッチ
210aに転送される(初めて入力データパケットDI
が与えられたとき、出力用ラッチ210aには有効デー
タは格納されていないためである)。次に入力データパ
ケットが与えられると、ラッチ210aに格納されてい
るデータのキーデータと新たに与えられた入力データの
キーデータとの大小の比較が行なわれる。この大小の比
較結果に従ってデータの交換が行なわれるかまたは行な
われない。次にデータパケットが新たに格納されると、
この2番目のデータパケットがラッチ110bへ転送さ
れ次いでラッチ210bへ転送される(出力データがま
だ出力されていない状態)。3番目に入力されたデータ
パケットのキーデータとこのラッチ210aに格納され
ているデータのキーデータとの大小比較が行なわれる。
この動作を繰返し行なうことにより出力データ用ラッチ
210aには最小のキーデータを有するデータがラッチ
され、次段の出力用データラッチ210bには2番目に
小さいキーデータを有するデータがラッチされる。すな
わち、この出力側のデータラッチ210a〜210nに
おいてはこのキーデータの大小関係に従って出力データ
が再配列されて格納される。次にデータ読出動作につい
てその動作フロー図である図6を併せて参照して説明す
る。
ラッチ110iに格納されているDiのキーデータDi
(n)が出力用データのラッチ210iに格納されてい
るデータQiのキーデータQi(n)よりも大きいかま
たは等しい場合にはデータの交換は実行されない。次い
で、再び入力データが与えられるのを待つ。これによ
り、出力部201に最も近いラッチ210aにおいては
常にキーデータQi(n)が最も小さいデータが格納さ
れる。たとえば、初期状態において、まずデータDIが
与えられた場合、入力用データラッチ110aに格納さ
れる。このラッチ110aに格納されたデータはラッチ
210aに転送される(初めて入力データパケットDI
が与えられたとき、出力用ラッチ210aには有効デー
タは格納されていないためである)。次に入力データパ
ケットが与えられると、ラッチ210aに格納されてい
るデータのキーデータと新たに与えられた入力データの
キーデータとの大小の比較が行なわれる。この大小の比
較結果に従ってデータの交換が行なわれるかまたは行な
われない。次にデータパケットが新たに格納されると、
この2番目のデータパケットがラッチ110bへ転送さ
れ次いでラッチ210bへ転送される(出力データがま
だ出力されていない状態)。3番目に入力されたデータ
パケットのキーデータとこのラッチ210aに格納され
ているデータのキーデータとの大小比較が行なわれる。
この動作を繰返し行なうことにより出力データ用ラッチ
210aには最小のキーデータを有するデータがラッチ
され、次段の出力用データラッチ210bには2番目に
小さいキーデータを有するデータがラッチされる。すな
わち、この出力側のデータラッチ210a〜210nに
おいてはこのキーデータの大小関係に従って出力データ
が再配列されて格納される。次にデータ読出動作につい
てその動作フロー図である図6を併せて参照して説明す
る。
【0093】データを出力する場合には、まず信号線2
02から与えられる状態フラグEMPTYが“1”であ
るか否かの判別が行なわれる(ステップS40)。この
状態フラグEMPTYが“1”のとき、ラッチ210a
には有効データが格納されているため、データの出力が
可能である。状態フラグEMPTYが“0”の場合に
は、出力すべきデータは存在しないため、この状態フラ
グEMPTYが“1”となるまでそのデータ出力は待ち
状態となる。
02から与えられる状態フラグEMPTYが“1”であ
るか否かの判別が行なわれる(ステップS40)。この
状態フラグEMPTYが“1”のとき、ラッチ210a
には有効データが格納されているため、データの出力が
可能である。状態フラグEMPTYが“0”の場合に
は、出力すべきデータは存在しないため、この状態フラ
グEMPTYが“1”となるまでそのデータ出力は待ち
状態となる。
【0094】データ出力時においては、信号線203上
へ出力データ用クロック信号CKBを与える。これによ
りラッチ210a〜210nがシフト動作を行ない、そ
のラッチデータを出力端子Yを介して前段のラッチへ伝
達するとともに、出力部201から出力データパケット
QOが出力される(ステップS42)。
へ出力データ用クロック信号CKBを与える。これによ
りラッチ210a〜210nがシフト動作を行ない、そ
のラッチデータを出力端子Yを介して前段のラッチへ伝
達するとともに、出力部201から出力データパケット
QOが出力される(ステップS42)。
【0095】次に再び入替え制御回路310a〜310
nにおいて各対応のラッチ110iとラッチ210iと
の間でのデータ転送および交換の判別が実行される。す
なわち、ステップS44において、出力用データラッチ
210iに格納されるデータQiの有効データフラグV
LDが“1”であるか否かの判別が行なわれる。有効デ
ータフラグVLDが“0”の場合には出力データ用ラッ
チ210iに有効データが存在しないため、対応の入力
データ用のラッチ110iからデータの転送が行なわれ
る(ラッチ110iに有効データが存在する場合)。
nにおいて各対応のラッチ110iとラッチ210iと
の間でのデータ転送および交換の判別が実行される。す
なわち、ステップS44において、出力用データラッチ
210iに格納されるデータQiの有効データフラグV
LDが“1”であるか否かの判別が行なわれる。有効デ
ータフラグVLDが“0”の場合には出力データ用ラッ
チ210iに有効データが存在しないため、対応の入力
データ用のラッチ110iからデータの転送が行なわれ
る(ラッチ110iに有効データが存在する場合)。
【0096】ステップS44において、ラッチ210i
に含まれるデータQiの有効データフラグVLDが
“1”の場合、次いでこのデータDiおよびQiのキー
データDi(l)およびQi(n)の大小比較が行なわ
れる。入力データ用ラッチ110iに含まれるデータD
iのキーデータDi(l)が出力用データQiのキーデ
ータQi(n)よりも小さい場合にはラッチ110iと
ラッチ210iとの間でのデータの交換が行なわれる
(ステップS48)。
に含まれるデータQiの有効データフラグVLDが
“1”の場合、次いでこのデータDiおよびQiのキー
データDi(l)およびQi(n)の大小比較が行なわ
れる。入力データ用ラッチ110iに含まれるデータD
iのキーデータDi(l)が出力用データQiのキーデ
ータQi(n)よりも小さい場合にはラッチ110iと
ラッチ210iとの間でのデータの交換が行なわれる
(ステップS48)。
【0097】キーデータDi(l)がキーデータQi
(l)以上の場合にはデータの交換は行なわれない。こ
のステップS46における判別動作およびステップS4
8におけるデータの交換動作によりラッチ210aに確
実に最小のキーデータQi(n)を有するデータが配置
される。
(l)以上の場合にはデータの交換は行なわれない。こ
のステップS46における判別動作およびステップS4
8におけるデータの交換動作によりラッチ210aに確
実に最小のキーデータQi(n)を有するデータが配置
される。
【0098】この図4に示すデータバッファにおいて
は、そのデータを記憶する段数は格納データ数に応じ可
変である。すなわちクロック信号CKFおよびCKCを
与えるとデータが入力され、クロック信号CKBおよび
CKCを与えると直ちにデータが出力される。したがっ
て、シフトレジスタ構成のバッファメモリと異なり、そ
の有効データの数に応じてデータパケットが受ける伝達
遅延を変更することができ、常に即座に高速でデータパ
ケットを対データ検出ユニットへ伝達することができ
る。次に各回路部分の具体的構成および動作について説
明する。
は、そのデータを記憶する段数は格納データ数に応じ可
変である。すなわちクロック信号CKFおよびCKCを
与えるとデータが入力され、クロック信号CKBおよび
CKCを与えると直ちにデータが出力される。したがっ
て、シフトレジスタ構成のバッファメモリと異なり、そ
の有効データの数に応じてデータパケットが受ける伝達
遅延を変更することができ、常に即座に高速でデータパ
ケットを対データ検出ユニットへ伝達することができ
る。次に各回路部分の具体的構成および動作について説
明する。
【0099】図7は、図4に示す選択入力機能付ラッチ
の構成を示す図である。この選択入力機能付ラッチ11
0(および210)は、入力ポートAに与えられる入力
データDA(mビット)と入力ポートBに与えられる入
力データDB(mビット)の一方をそのクロック入力C
K1およびCK2に与えられるクロック信号CK1およ
びCK2に従って取込みかつ出力する。すなわち、クロ
ック信号CK1がクロック入力CK1に与えられたとき
には入力ポートAに与えられた入力データDAを取込
み、クロック入力CK2にクロック信号CK2が与えら
れたとき入力ポートBに与えられた入力データBを取込
む。このラッチ110(210)は、対応のクロック信
号の立下がりで取込んだデータをその出力ポートYから
出力する。このラッチ110(210)は、図4に示す
構成において、入力ポートAに隣接ラッチからの出力デ
ータを受け、その入力ポートBに対応の向かい合ったラ
ッチ(出力データ用ラッチまたは入力データ用ラッチ)
の出力を受ける。これにより、データの交換および転送
を行なうことができる。
の構成を示す図である。この選択入力機能付ラッチ11
0(および210)は、入力ポートAに与えられる入力
データDA(mビット)と入力ポートBに与えられる入
力データDB(mビット)の一方をそのクロック入力C
K1およびCK2に与えられるクロック信号CK1およ
びCK2に従って取込みかつ出力する。すなわち、クロ
ック信号CK1がクロック入力CK1に与えられたとき
には入力ポートAに与えられた入力データDAを取込
み、クロック入力CK2にクロック信号CK2が与えら
れたとき入力ポートBに与えられた入力データBを取込
む。このラッチ110(210)は、対応のクロック信
号の立下がりで取込んだデータをその出力ポートYから
出力する。このラッチ110(210)は、図4に示す
構成において、入力ポートAに隣接ラッチからの出力デ
ータを受け、その入力ポートBに対応の向かい合ったラ
ッチ(出力データ用ラッチまたは入力データ用ラッチ)
の出力を受ける。これにより、データの交換および転送
を行なうことができる。
【0100】図8はこの選択入力機能付ラッチの具体的
構成の一例を示す図である。図8において、選択入力機
能付ラッチは、クロック入力CK1に与えられるクロッ
ク信号CK1に応答して入力ポートAに与えられる信号
を通過させるnチャネルMOSトランジスタ(絶縁ゲー
ト型電界効果トランジスタ)401と、トランジスタ4
01の出力を受ける2段の縦続接続されたインバータ回
路402および404と、クロック入力CK1に与えら
れた信号をインバータ回路410を介してそのゲートに
受け、インバータ回路404の出力をインバータ回路4
02の入力へ伝達するnチャネルMOSトランジスタ4
06と、クロック入力CK1およびCK2にそれぞれ与
えられるクロック信号CK1およびCK2を受けるOR
回路428と、OR回路428の出力に応答してリセッ
トされかつインバータ回路410の出力に応答してセッ
トされるRSフリップフロップ412と、RSフリップ
フロップ412の出力φ1に応答してインバータ回路4
04の出力を出力ポートYへ伝達するnチャネルMOS
トランジスタ408を含む。RSフリップフロップ41
2は、セット入力Sへ与えられる信号の立上がりに応答
してセット状態とされ、その出力信号φ1を“H”に設
定し、リセット入力Rに与えられる信号の立上がりに応
答してリセット状態とされ、その出力信号φ1を“L”
に立下げる。
構成の一例を示す図である。図8において、選択入力機
能付ラッチは、クロック入力CK1に与えられるクロッ
ク信号CK1に応答して入力ポートAに与えられる信号
を通過させるnチャネルMOSトランジスタ(絶縁ゲー
ト型電界効果トランジスタ)401と、トランジスタ4
01の出力を受ける2段の縦続接続されたインバータ回
路402および404と、クロック入力CK1に与えら
れた信号をインバータ回路410を介してそのゲートに
受け、インバータ回路404の出力をインバータ回路4
02の入力へ伝達するnチャネルMOSトランジスタ4
06と、クロック入力CK1およびCK2にそれぞれ与
えられるクロック信号CK1およびCK2を受けるOR
回路428と、OR回路428の出力に応答してリセッ
トされかつインバータ回路410の出力に応答してセッ
トされるRSフリップフロップ412と、RSフリップ
フロップ412の出力φ1に応答してインバータ回路4
04の出力を出力ポートYへ伝達するnチャネルMOS
トランジスタ408を含む。RSフリップフロップ41
2は、セット入力Sへ与えられる信号の立上がりに応答
してセット状態とされ、その出力信号φ1を“H”に設
定し、リセット入力Rに与えられる信号の立上がりに応
答してリセット状態とされ、その出力信号φ1を“L”
に立下げる。
【0101】選択入力機能付ラッチはさらに、入力ポー
トBに与えられる信号をクロック入力CK2に与えられ
るクロック信号CK2に応答して伝達するnチャネルM
OSトランジスタ414と、トランジスタ414が伝達
する信号を増幅する2段の縦続接続されたインバータ回
路416および418と、クロック信号CK2を反転す
るインバータ回路424と、インバータ回路424の出
力に応答してインバータ回路418の出力をインバータ
回路416の入力へ帰還させるnチャネルMOSトラン
ジスタ422と、インバータ回路424の出力に応答し
てセット状態とされ、OR回路428の出力に応答して
リセット状態とされるRSフリップフロップ426と、
RSフリップフロップ426の出力信号φ2に応答し
て、インバータ回路418の出力を出力ポートYへ伝達
するnチャネルMOSトランジスタ420を含む。
トBに与えられる信号をクロック入力CK2に与えられ
るクロック信号CK2に応答して伝達するnチャネルM
OSトランジスタ414と、トランジスタ414が伝達
する信号を増幅する2段の縦続接続されたインバータ回
路416および418と、クロック信号CK2を反転す
るインバータ回路424と、インバータ回路424の出
力に応答してインバータ回路418の出力をインバータ
回路416の入力へ帰還させるnチャネルMOSトラン
ジスタ422と、インバータ回路424の出力に応答し
てセット状態とされ、OR回路428の出力に応答して
リセット状態とされるRSフリップフロップ426と、
RSフリップフロップ426の出力信号φ2に応答し
て、インバータ回路418の出力を出力ポートYへ伝達
するnチャネルMOSトランジスタ420を含む。
【0102】この選択入力機能付ラッチにおいては、イ
ンバータ回路404および418の駆動力はインバータ
回路402および416の駆動力よりも大きくされてい
る。これにより、トランジスタ406および422がオ
ン状態となったとき、ラッチ回路が構成される。
ンバータ回路404および418の駆動力はインバータ
回路402および416の駆動力よりも大きくされてい
る。これにより、トランジスタ406および422がオ
ン状態となったとき、ラッチ回路が構成される。
【0103】この選択入力機能付ラッチはさらに、リセ
ット入力RESETに与えられるリセット信号に応答し
て、インバータ回路402および416の入力をそれぞ
れ接地電位にリセットするnチャネルMOSトランジス
タ430および432を含む。次に、この図7および図
8に示す選択入力機能付ラッチの動作についてその動作
波形図である図9を合わせて参照して説明する。
ット入力RESETに与えられるリセット信号に応答し
て、インバータ回路402および416の入力をそれぞ
れ接地電位にリセットするnチャネルMOSトランジス
タ430および432を含む。次に、この図7および図
8に示す選択入力機能付ラッチの動作についてその動作
波形図である図9を合わせて参照して説明する。
【0104】今、フリップフロップ412がセット状態
にあり、信号φ1が“H”の状態を考える。この状態に
おいては、トランジスタ408がオン状態であり、出力
ポートYからは入力ポートAに与えられたデータが出力
されていると想定する。この状態においては、トランジ
スタ406がオン状態であり、インバータ回路402お
よび404とトランジスタ406とによりラッチ回路が
構成されている。RSフリップフロップ426はリセッ
ト状態にあり、信号φ2は“L”のレベルである。
にあり、信号φ1が“H”の状態を考える。この状態に
おいては、トランジスタ408がオン状態であり、出力
ポートYからは入力ポートAに与えられたデータが出力
されていると想定する。この状態においては、トランジ
スタ406がオン状態であり、インバータ回路402お
よび404とトランジスタ406とによりラッチ回路が
構成されている。RSフリップフロップ426はリセッ
ト状態にあり、信号φ2は“L”のレベルである。
【0105】この状態で、クロック入力CK1に与えら
れたクロック信号CK1が“H”に立上がると、インバ
ータ回路410の出力が“L”、OR回路428の出力
が“H”となる。これにより、RSフリップフロップ4
12がリセット状態とされ、信号φ1が“L”に立下が
り、トランジスタ408がオフ状態となる。一方トラン
ジスタ401はクロック信号CK1に応答してオン状態
となり、入力ポートAに与えられたデータDAを通過さ
せる。トランジスタ406はまだオフ状態であり、単に
このトランジスタ401からのデータはインバータ回路
402および404により増幅されているだけである。
れたクロック信号CK1が“H”に立上がると、インバ
ータ回路410の出力が“L”、OR回路428の出力
が“H”となる。これにより、RSフリップフロップ4
12がリセット状態とされ、信号φ1が“L”に立下が
り、トランジスタ408がオフ状態となる。一方トラン
ジスタ401はクロック信号CK1に応答してオン状態
となり、入力ポートAに与えられたデータDAを通過さ
せる。トランジスタ406はまだオフ状態であり、単に
このトランジスタ401からのデータはインバータ回路
402および404により増幅されているだけである。
【0106】クロック信号CK1が“L”へ立下がる
と、トランジスタ401がオフ状態、トランジスタ40
6がオン状態となり、それまでに与えられていた信号が
インバータ回路402および404とトランジスタ40
6からなるラッチ回路によりラッチされる。インバータ
回路410の出力信号が“H”に立上がり、RSフリッ
プフロップ412がセット状態とされ、信号φ1が
“H”に立上がる。これにより、インバータ回路404
の出力が出力ポートYへ伝達され、出力データDOとし
て出力される。
と、トランジスタ401がオフ状態、トランジスタ40
6がオン状態となり、それまでに与えられていた信号が
インバータ回路402および404とトランジスタ40
6からなるラッチ回路によりラッチされる。インバータ
回路410の出力信号が“H”に立上がり、RSフリッ
プフロップ412がセット状態とされ、信号φ1が
“H”に立上がる。これにより、インバータ回路404
の出力が出力ポートYへ伝達され、出力データDOとし
て出力される。
【0107】次に、クロック入力CK2に与えられるク
ロック信号CK2が“H”となると、OR回路428の
出力が“H”となり、RSフリップフロップ412がリ
セットされ、信号φ1が“L”に立下がる。トランジス
タ414が、このクロック信号CK2に応答してオン状
態となり、入力ポートBに与えられていた信号を通過さ
せる。トランジスタ414および422はまだオフ状態
であり、この入力ポートBに与えられた信号はインバー
タ回路416および418により増幅される。
ロック信号CK2が“H”となると、OR回路428の
出力が“H”となり、RSフリップフロップ412がリ
セットされ、信号φ1が“L”に立下がる。トランジス
タ414が、このクロック信号CK2に応答してオン状
態となり、入力ポートBに与えられていた信号を通過さ
せる。トランジスタ414および422はまだオフ状態
であり、この入力ポートBに与えられた信号はインバー
タ回路416および418により増幅される。
【0108】次にクロック信号CK2が“L”に立下が
ると、トランジスタ414がオフ状態となり、トランジ
スタ422がオン状態となる。これにより、それまでに
与えられていた信号がインバータ回路416および41
8とトランジスタ422とによりラッチされる。クロッ
ク信号CK2の立下がりに応答してインバータ回路42
4の出力が“H”に立上がり、RSフリップフロップ4
26がセットされ、信号φ2が“H”に立上がり、トラ
ンジスタ420がオン状態となる。これにより出力ポー
トYへはインバータ回路418の出力が伝達される。
ると、トランジスタ414がオフ状態となり、トランジ
スタ422がオン状態となる。これにより、それまでに
与えられていた信号がインバータ回路416および41
8とトランジスタ422とによりラッチされる。クロッ
ク信号CK2の立下がりに応答してインバータ回路42
4の出力が“H”に立上がり、RSフリップフロップ4
26がセットされ、信号φ2が“H”に立上がり、トラ
ンジスタ420がオン状態となる。これにより出力ポー
トYへはインバータ回路418の出力が伝達される。
【0109】上述のようにして、クロック入力CK1に
クロック信号が与えられた場合には、入力ポートAに与
えられた信号が選択され、クロック入力CK2にクロッ
ク信号が与えられると入力ポートBに与えられた信号が
出力される。
クロック信号が与えられた場合には、入力ポートAに与
えられた信号が選択され、クロック入力CK2にクロッ
ク信号が与えられると入力ポートBに与えられた信号が
出力される。
【0110】なお、図8に示す構成において、クロック
信号CK1またはCK2が“H”に立上がったとき、ト
ランジスタ408および420はオフ状態となり、出力
ポートYの信号状態が不安定となることが考えられる。
この場合クロック信号CK1およびCK2のORをとっ
た信号により活性化されるラッチ回路がこの出力ポート
Yにさらに設けられてもよい。これにより、確実にデー
タを転送することが可能となる。このラッチ回路は、ク
ロック信号CK1およびCK2が“L”のとき与えられ
た信号をそのまま通過させるスルー状態となる。
信号CK1またはCK2が“H”に立上がったとき、ト
ランジスタ408および420はオフ状態となり、出力
ポートYの信号状態が不安定となることが考えられる。
この場合クロック信号CK1およびCK2のORをとっ
た信号により活性化されるラッチ回路がこの出力ポート
Yにさらに設けられてもよい。これにより、確実にデー
タを転送することが可能となる。このラッチ回路は、ク
ロック信号CK1およびCK2が“L”のとき与えられ
た信号をそのまま通過させるスルー状態となる。
【0111】このようなラッチ回路の構成としては、イ
ンバータ回路402および404とトランジスタ406
からなるラッチ回路の構成を適用することができる。
ンバータ回路402および404とトランジスタ406
からなるラッチ回路の構成を適用することができる。
【0112】この図7および図8に示す構成を図4に示
す構成に対応させれば、入力ポートAには隣接するラッ
チ回路の出力が与えられ、入力ポートBには、向かい合
った対応の入力部側または出力部側からのラッチの出力
が与えられる。クロック入力CK1は、クロック信号C
KFまたはCKBであり、クロック入力CK2へはデー
タ入替え制御回路からの比較結果指示信号が与えられ
る。
す構成に対応させれば、入力ポートAには隣接するラッ
チ回路の出力が与えられ、入力ポートBには、向かい合
った対応の入力部側または出力部側からのラッチの出力
が与えられる。クロック入力CK1は、クロック信号C
KFまたはCKBであり、クロック入力CK2へはデー
タ入替え制御回路からの比較結果指示信号が与えられ
る。
【0113】この選択入力機能付ラッチにラッチされる
データは、(m−1)ビットのデータパケットと、この
ラッチされているデータが有効であるか否かを示す1ビ
ットの有効データフラグVLDである。有効データフラ
グVLDが“1”であれば、そのバッファに蓄えられて
いるデータが有効であることを示す。
データは、(m−1)ビットのデータパケットと、この
ラッチされているデータが有効であるか否かを示す1ビ
ットの有効データフラグVLDである。有効データフラ
グVLDが“1”であれば、そのバッファに蓄えられて
いるデータが有効であることを示す。
【0114】図10は、図4に示すデータ入替え制御回
路の構成を示す図である。図10において、データ入替
え制御回路310は、信号線301および302を介し
てnビットのデータを受ける。このnビットのデータは
(n−1)ビットのキーデータと1ビットの有効データ
フラグVLDとを含む。図10においては、この入力デ
ータを区別するため、一方の入力データの有効データフ
ラグをVLDA、他方の入力データの有効データフラグ
をVLDBとして示す。
路の構成を示す図である。図10において、データ入替
え制御回路310は、信号線301および302を介し
てnビットのデータを受ける。このnビットのデータは
(n−1)ビットのキーデータと1ビットの有効データ
フラグVLDとを含む。図10においては、この入力デ
ータを区別するため、一方の入力データの有効データフ
ラグをVLDA、他方の入力データの有効データフラグ
をVLDBとして示す。
【0115】データ入替え制御回路310はさらに、こ
の信号線301から与えられたnビットのデータうち
(n−1)ビットのキーデータを受ける入力ポートA
と、信号線302を介して与えられるnビットのデータ
のうち(n−1)ビットのキーデータを受けるBポート
と、この入力ポートAおよびBに与えられたキーデータ
の大小を比較しその比較結果を出力する出力ポートLT
とを有する比較器350と、比較器350の出力LT
(出力ポートと出力信号とを同じ符号で示す)と有効デ
ータフラグVLDAおよびVLDBを受ける3入力AN
D回路310と、有効データフラグVLDAをその真入
力に受け、他方有効データフラグVLDBを偽入力に受
けるゲート回路320と、AND回路310の出力とゲ
ート回路320の出力を受けるOR回路330と、比較
指示信号CKCとOR回路330の出力とを受けるAN
D回路340を含む。AND回路340からデータの交
換を行なう入替え指示信号CKCHが発生される。この
信号CKCHは図7および図8に示すクロック信号CK
2に対応する。
の信号線301から与えられたnビットのデータうち
(n−1)ビットのキーデータを受ける入力ポートA
と、信号線302を介して与えられるnビットのデータ
のうち(n−1)ビットのキーデータを受けるBポート
と、この入力ポートAおよびBに与えられたキーデータ
の大小を比較しその比較結果を出力する出力ポートLT
とを有する比較器350と、比較器350の出力LT
(出力ポートと出力信号とを同じ符号で示す)と有効デ
ータフラグVLDAおよびVLDBを受ける3入力AN
D回路310と、有効データフラグVLDAをその真入
力に受け、他方有効データフラグVLDBを偽入力に受
けるゲート回路320と、AND回路310の出力とゲ
ート回路320の出力を受けるOR回路330と、比較
指示信号CKCとOR回路330の出力とを受けるAN
D回路340を含む。AND回路340からデータの交
換を行なう入替え指示信号CKCHが発生される。この
信号CKCHは図7および図8に示すクロック信号CK
2に対応する。
【0116】比較器350は入力ポートAに与えられた
(n−1)ビットのデータが入力ポートBに与えられた
(n−1)ビットのデータよりも小さいときにその出力
ポートLTから“1”の信号を出力する。この場合、比
較器350は、キーデータの昇順に出力データを再配列
する。比較器350の大小判断基準を逆にすれば降順に
再配列することが可能である。以下の説明においては、
データパケットをキーデータの小さい順に配列する必要
があるため、比較器350がデータを昇順に再配列する
場合の動作について説明する。データを降順に再配列す
る場合も容易に実現することができる。
(n−1)ビットのデータが入力ポートBに与えられた
(n−1)ビットのデータよりも小さいときにその出力
ポートLTから“1”の信号を出力する。この場合、比
較器350は、キーデータの昇順に出力データを再配列
する。比較器350の大小判断基準を逆にすれば降順に
再配列することが可能である。以下の説明においては、
データパケットをキーデータの小さい順に配列する必要
があるため、比較器350がデータを昇順に再配列する
場合の動作について説明する。データを降順に再配列す
る場合も容易に実現することができる。
【0117】2つのラッチ110および210からの出
力のうちnビットのキーデータがデータ入替え制御回路
310へ与えられる。比較器350は入力ポートAおよ
びBにそれぞれ与えられた(n−1)ビットのデータの
値の大小を比較する。入力ポートAに与えられるデータ
値が入力ポートBに与えられる(n−1)ビットのデー
タ値よりも小さいときにその出力ポートLTが“1”と
なる。
力のうちnビットのキーデータがデータ入替え制御回路
310へ与えられる。比較器350は入力ポートAおよ
びBにそれぞれ与えられた(n−1)ビットのデータの
値の大小を比較する。入力ポートAに与えられるデータ
値が入力ポートBに与えられる(n−1)ビットのデー
タ値よりも小さいときにその出力ポートLTが“1”と
なる。
【0118】AND回路310は、比較器350の出力
LTと有効データフラグVLDAおよびVLDBを受け
る。有効データフラグVLDAは入力部側に設けられた
データラッチに格納されているデータの有効/無効を示
すフラグであり、有効データフラグVLDBは、出力部
側に設けられたラッチに格納されているデータの有効/
無効を示すフラグである。AND回路310は、その3
入力がすべて“H”(“1”)のとき、“H”の信号を
出力する。したがって、AND回路310から“1”の
信号が出力されるのは次の場合である。すなわち、有効
データフラグVLDAおよびVLDBが共に“1”にあ
り、比較器350の出力LTが“1”の場合である。こ
の状態は、入力データ用ラッチ110に有効データが格
納されており、かつ出力データ用ラッチ210に有効デ
ータが格納されており、かつ入力データ用ラッチ110
に格納されたデータのキーデータが出力データ用ラッチ
210のラッチするデータのキーデータよりも小さい場
合である。
LTと有効データフラグVLDAおよびVLDBを受け
る。有効データフラグVLDAは入力部側に設けられた
データラッチに格納されているデータの有効/無効を示
すフラグであり、有効データフラグVLDBは、出力部
側に設けられたラッチに格納されているデータの有効/
無効を示すフラグである。AND回路310は、その3
入力がすべて“H”(“1”)のとき、“H”の信号を
出力する。したがって、AND回路310から“1”の
信号が出力されるのは次の場合である。すなわち、有効
データフラグVLDAおよびVLDBが共に“1”にあ
り、比較器350の出力LTが“1”の場合である。こ
の状態は、入力データ用ラッチ110に有効データが格
納されており、かつ出力データ用ラッチ210に有効デ
ータが格納されており、かつ入力データ用ラッチ110
に格納されたデータのキーデータが出力データ用ラッチ
210のラッチするデータのキーデータよりも小さい場
合である。
【0119】ゲート回路320は、有効データフラグV
LDAが“1”でありかつ有効データフラグVLDBが
“0”のときにのみ“1”の信号を出力する。OR回路
330は、AND回路310およびゲート回路320の
出力の一方が“1”であれば“1”の信号を出力する。
AND回路340は、クロック信号CKCに応答してO
R回路330の出力を伝達する。したがって、AND回
路340の出力CKCHが“1”となるのは、次の2つ
の場合である。(1)入力データ用ラッチ110および
出力データ用ラッチ210に共に有効データがラッチさ
れており、かつその入力データ用ラッチ110に格納さ
れるキーデータが出力用ラッチ210に格納されるキー
データよりも小さいとき、および(2)入力データ用ラ
ッチ110に有効データがラッチされかつ出力データ用
ラッチ210に有効データがラッチされていない場合。
LDAが“1”でありかつ有効データフラグVLDBが
“0”のときにのみ“1”の信号を出力する。OR回路
330は、AND回路310およびゲート回路320の
出力の一方が“1”であれば“1”の信号を出力する。
AND回路340は、クロック信号CKCに応答してO
R回路330の出力を伝達する。したがって、AND回
路340の出力CKCHが“1”となるのは、次の2つ
の場合である。(1)入力データ用ラッチ110および
出力データ用ラッチ210に共に有効データがラッチさ
れており、かつその入力データ用ラッチ110に格納さ
れるキーデータが出力用ラッチ210に格納されるキー
データよりも小さいとき、および(2)入力データ用ラ
ッチ110に有効データがラッチされかつ出力データ用
ラッチ210に有効データがラッチされていない場合。
【0120】AND回路340の出力信号CKCHは、
図7および図8に示すクロック入力CK2へ与えられ
る。これにより、データの交換が実現される。
図7および図8に示すクロック入力CK2へ与えられ
る。これにより、データの交換が実現される。
【0121】図11は、この図4に示す回路の全体の動
作を示す信号波形図である。以下、全体の動作について
簡単に説明する。
作を示す信号波形図である。以下、全体の動作について
簡単に説明する。
【0122】入力データDIを与える場合には、状態フ
ラグFULLが“0”であることを確認した後にクロッ
ク信号CKFを与える。これにより入力データ用ラッチ
110a〜110nにおいて入力データの取込み、ラッ
チおよび出力が行なわれる。
ラグFULLが“0”であることを確認した後にクロッ
ク信号CKFを与える。これにより入力データ用ラッチ
110a〜110nにおいて入力データの取込み、ラッ
チおよび出力が行なわれる。
【0123】次いで、比較制御信号CKCが与えられ、
データ入替え制御回路310が比較結果をこの制御信号
CKCに従って出力する。この制御信号CKCに従っ
て、入替え制御信号CKCHが“1”または“0”とな
り、データの再配列が実行される。
データ入替え制御回路310が比較結果をこの制御信号
CKCに従って出力する。この制御信号CKCに従っ
て、入替え制御信号CKCHが“1”または“0”とな
り、データの再配列が実行される。
【0124】状態フラグFULLが“1”の場合には、
このデータバッファ1に有効データが一杯格納されてい
ることを示しており、新たにデータを入力することがで
きないことを示している。
このデータバッファ1に有効データが一杯格納されてい
ることを示しており、新たにデータを入力することがで
きないことを示している。
【0125】データを出力する場合には、状態フラグE
MPTYが“1”であることを確認した後に出力クロッ
ク信号CKBを与える。データを出力した後、制御信号
CKCを与える。これにより信号CKCHが“1”また
は“0”となり、再び出力データの再配列が実行され
る。状態フラグEMPTYが“0”の場合は、データバ
ッファ1においては有効出力データが存在しないことを
示しており、データを出力することができない。
MPTYが“1”であることを確認した後に出力クロッ
ク信号CKBを与える。データを出力した後、制御信号
CKCを与える。これにより信号CKCHが“1”また
は“0”となり、再び出力データの再配列が実行され
る。状態フラグEMPTYが“0”の場合は、データバ
ッファ1においては有効出力データが存在しないことを
示しており、データを出力することができない。
【0126】この図4に示すデータバッファは、選択入
力機能付ラッチ110および210とデータ入替え制御
回路310が規則的に配置されている。すなわち、この
図4に示すデータバッファ1は、同じ回路構成を備える
単位回路が規則的に繰返し配置されている。したがっ
て、このデータバッファ1は、容易に拡張することがで
き、その収納することのできるデータの数を増加させる
ことができる。
力機能付ラッチ110および210とデータ入替え制御
回路310が規則的に配置されている。すなわち、この
図4に示すデータバッファ1は、同じ回路構成を備える
単位回路が規則的に繰返し配置されている。したがっ
て、このデータバッファ1は、容易に拡張することがで
き、その収納することのできるデータの数を増加させる
ことができる。
【0127】さらに、このデータバッファは単にデータ
駆動型情報処理装置におけるデータパケットの再配列の
用途のみに適用されるものではない。一般に、データの
配列順序を予め定められた規則に従って変更する必要の
ある用途において適用可能である。データに含まれるキ
ーデータ(データそのものであってもよい)の大小関係
に応じてそのデータの配列順序が決定される用途に適用
可能である。
駆動型情報処理装置におけるデータパケットの再配列の
用途のみに適用されるものではない。一般に、データの
配列順序を予め定められた規則に従って変更する必要の
ある用途において適用可能である。データに含まれるキ
ーデータ(データそのものであってもよい)の大小関係
に応じてそのデータの配列順序が決定される用途に適用
可能である。
【0128】図12は、このデータバッファの一般的構
成を示す。図12において、データバッファ回路900
は、3段のカスケード接続されたデータバッファ1a、
1bおよび1cと、このデータバッファのデータの入出
力を制御するための入出力制御部950を含む。データ
バッファ1a、1bおよび1cは図4に示すデータバッ
ファ1と同じ構成を備える。入出力制御部950は、入
力データ伝送路に沿って与えられる有効データフラグV
LDを受ける入力FULLと、出力データ伝送路に沿っ
て出力される有効データフラグVLDを受ける入力EM
PTYと、入力要求信号INREQを受ける入力PUS
Hと、出力要求信号OTREQを受ける入力POPと、
入力許可信号INACKを出力する出力ACKIと、出
力要求に対する許可を示す出力許可信号OTACKを出
力する出力ACKOと、クロック信号CKF、CKCお
よびCKBを出力するクロック出力CKF、CKC、お
よびCKBを含む。
成を示す。図12において、データバッファ回路900
は、3段のカスケード接続されたデータバッファ1a、
1bおよび1cと、このデータバッファのデータの入出
力を制御するための入出力制御部950を含む。データ
バッファ1a、1bおよび1cは図4に示すデータバッ
ファ1と同じ構成を備える。入出力制御部950は、入
力データ伝送路に沿って与えられる有効データフラグV
LDを受ける入力FULLと、出力データ伝送路に沿っ
て出力される有効データフラグVLDを受ける入力EM
PTYと、入力要求信号INREQを受ける入力PUS
Hと、出力要求信号OTREQを受ける入力POPと、
入力許可信号INACKを出力する出力ACKIと、出
力要求に対する許可を示す出力許可信号OTACKを出
力する出力ACKOと、クロック信号CKF、CKCお
よびCKBを出力するクロック出力CKF、CKC、お
よびCKBを含む。
【0129】入出力制御部950は、入力FULLに与
えられる有効データフラグVLDの“1”および“0”
に従って入力要求信号INREQに対する許可信号IN
ACKを“1”または“0”にし、入力データの受付の
許可および待機を制御する。
えられる有効データフラグVLDの“1”および“0”
に従って入力要求信号INREQに対する許可信号IN
ACKを“1”または“0”にし、入力データの受付の
許可および待機を制御する。
【0130】入出力制御部950はさらに、入力EMP
TYに与えられる有効データフラグVLDの“1”およ
び“0”に従って、出力要求信号OTREQに対する許
可信号OTACKを“1”または“0”に設定する。こ
れにより、データバッファ1a〜1cにラッチされてい
るデータの格納状況に応じてデータの入出力が実行され
る。入出力制御部950は、インターフェイス回路であ
り、出力要求信号OTREQが与えられ、出力許可信号
OTACKを出力したとき、クロック信号CKBおよび
CKCを発生する。入出力制御部950はまた、入力要
求信号INREQが与えられかつ入力許可信号INAC
Kが発生されたとき、クロック信号CKFおよびCKC
を発生する。
TYに与えられる有効データフラグVLDの“1”およ
び“0”に従って、出力要求信号OTREQに対する許
可信号OTACKを“1”または“0”に設定する。こ
れにより、データバッファ1a〜1cにラッチされてい
るデータの格納状況に応じてデータの入出力が実行され
る。入出力制御部950は、インターフェイス回路であ
り、出力要求信号OTREQが与えられ、出力許可信号
OTACKを出力したとき、クロック信号CKBおよび
CKCを発生する。入出力制御部950はまた、入力要
求信号INREQが与えられかつ入力許可信号INAC
Kが発生されたとき、クロック信号CKFおよびCKC
を発生する。
【0131】
【発明の効果】請求項1に係るデータ駆動型情報処理装
置によれば、データパケットに含まれるキーデータに従
って出力データパケットが再配列される。これにより、
データフロープログラムを効率的に処理する順序で対デ
ータ検出ユニットへデータパケットが与えられ、データ
処理効率が増大する。また、対データ検出ユニットにお
いて未発火フラグが立てられたデータパケットの数が増
大しても、この出力データパケットの再配列によりデー
タ処理の効率が低下することはない。
置によれば、データパケットに含まれるキーデータに従
って出力データパケットが再配列される。これにより、
データフロープログラムを効率的に処理する順序で対デ
ータ検出ユニットへデータパケットが与えられ、データ
処理効率が増大する。また、対データ検出ユニットにお
いて未発火フラグが立てられたデータパケットの数が増
大しても、この出力データパケットの再配列によりデー
タ処理の効率が低下することはない。
【0132】請求項2に係るデータ駆動型情報処理装置
においては、出力データパケットの配列は、対データ検
出ユニットにおける優先順位判別基準と同じ判別基準に
従って実行されている。このため、対データとなる可能
性のあるデータパケットを近接させることができ、対デ
ータ検出ユニットのデータ待合せ領域を効率的に利用す
ることが可能となり、未発火データパケットの発生を抑
制することができ、データフロープログラムの処理効率
を向上することが可能となる。
においては、出力データパケットの配列は、対データ検
出ユニットにおける優先順位判別基準と同じ判別基準に
従って実行されている。このため、対データとなる可能
性のあるデータパケットを近接させることができ、対デ
ータ検出ユニットのデータ待合せ領域を効率的に利用す
ることが可能となり、未発火データパケットの発生を抑
制することができ、データフロープログラムの処理効率
を向上することが可能となる。
【0133】請求項3に係るデータバッファによれば、
格納されているデータの内容に従って出力データの配列
順序が変更可能であり、高速で処理内容に応じて配列さ
れた出力データ系列を得ることができる。また、格納デ
ータの数によりその記憶段数を変更することができるた
め、格納データの数にかかわらず、その記憶段に空きが
生じることがなく、高速でデータの出力を行なうことが
でき、データ処理効率を向上させることができる。また
このデータバッファは同じ構造を有する回路が規則的に
配列されているため、そのレイアウトが容易でありかつ
また規模も容易に拡張することができる。
格納されているデータの内容に従って出力データの配列
順序が変更可能であり、高速で処理内容に応じて配列さ
れた出力データ系列を得ることができる。また、格納デ
ータの数によりその記憶段数を変更することができるた
め、格納データの数にかかわらず、その記憶段に空きが
生じることがなく、高速でデータの出力を行なうことが
でき、データ処理効率を向上させることができる。また
このデータバッファは同じ構造を有する回路が規則的に
配列されているため、そのレイアウトが容易でありかつ
また規模も容易に拡張することができる。
【図1】この発明の一実施例であるデータ駆動型情報処
理装置のエンジンの構成を示す図である。
理装置のエンジンの構成を示す図である。
【図2】この発明の一実施例であるデータ駆動型情報処
理装置において利用されるキーデータの構成を示す図で
ある。
理装置において利用されるキーデータの構成を示す図で
ある。
【図3】この発明の一実施例であるデータ駆動型情報処
理装置におけるデータ再配列動作を例示する図である。
理装置におけるデータ再配列動作を例示する図である。
【図4】図1に示すデータバッファの構成を示す図であ
る。
る。
【図5】図4に示すデータバッファのデータ入力動作を
示すフロー図である。
示すフロー図である。
【図6】図4に示すデータバッファのデータ出力動作を
示すフロー図である。
示すフロー図である。
【図7】図4に示す選択入力機能付ラッチの外部構成を
示す図である。
示す図である。
【図8】図7に示す選択入力機能付ラッチの具体的構成
を示す図である。
を示す図である。
【図9】図7および図8に示す選択入力機能付ラッチの
動作を示す信号波形図である。
動作を示す信号波形図である。
【図10】図4に示すデータ入替え制御回路の構成を示
す図である。
す図である。
【図11】図4に示すデータバッファの全体の動作を示
す信号波形図である。
す信号波形図である。
【図12】図4に示すデータバッファを拡張した際の構
成を示す図である。
成を示す図である。
【図13】データフローグラフの一例を示す図である。
【図14】データ駆動型情報処理装置のエンジンにおい
て利用されるデータパケットの構成を示す図である。
て利用されるデータパケットの構成を示す図である。
【図15】データ駆動型情報処理装置の全体の構成を示
す図である。
す図である。
【図16】図15に示すデータ駆動エンジンの構成を示
すブロック図である。
すブロック図である。
【図17】図16に示すプログラム記憶付発火制御部の
構成を示すブロック図である。
構成を示すブロック図である。
【図18】ハッシュ演算を説明するための図である。
【図19】メモリ空間の縮退を説明するための図であ
る。
る。
【図20】図17に示す対データ検出ユニットの動作を
示すフロー図である。
示すフロー図である。
【図21】図17に示すプログラム記憶ユニットの動作
を示すフロー図である。
を示すフロー図である。
【図22】従来のデータ駆動型情報処理装置の問題点を
説明するための図である。
説明するための図である。
【符号の説明】 1 データバッファ 2 メモリユニット 3 キーモニタ 4 キー検出部 5 キー比較部 6 配列制御部 10 再配列制御ユニット 110a〜110n 入力データ用選択入力機能付ラッ
チ 210a〜210n 出力データ用選択入力機能付ラッ
チ 310a〜310n データ入替え制御器 506 データ駆動エンジン 550 合流ユニット 552 プログラム記憶付発火制御部 554 演算処理ユニット 556 分岐ユニット 558 データバッファ 562 対データ検出ユニット 564 プログラム記憶ユニット 900 データバッファ回路 950 入出力制御部
チ 210a〜210n 出力データ用選択入力機能付ラッ
チ 310a〜310n データ入替え制御器 506 データ駆動エンジン 550 合流ユニット 552 プログラム記憶付発火制御部 554 演算処理ユニット 556 分岐ユニット 558 データバッファ 562 対データ検出ユニット 564 プログラム記憶ユニット 900 データバッファ回路 950 入出力制御部
Claims (3)
- 【請求項1】 データ巡回パスを有しかつ前記データ巡
回パス上のデータから対となるデータを検出する対デー
タ検出手段を含み、前記対データ検出手段により対デー
タが検出されたとき発火して対応の処理を実行する機能
を有するデータ駆動型情報処理装置であって、 前記データ巡回パス上の一方からのデータを受けて一時
的に格納しかつ格納データを前記巡回パスを介して前記
対データ検出手段へ伝達するバッファメモリ手段を含
み、前記データは配列順序を決定するキーデータを含
み、 前記バッファメモリ手段は、各データに含まれる前記キ
ーデータに従って予め定められた順序で格納データが配
列されるように、受けたデータに含まれるキーデータと
格納データのキーデータとに従って格納データを再配列
する手段を含む、データ駆動型情報処理装置。 - 【請求項2】 請求項1記載のデータ駆動型情報処理装
置であって、 前記対データ検出手段は縮退したメモリ空間を有しかつ
対を形成すべきデータを一時的に格納する待合せメモリ
手段と、 対を形成すべきデータが与えられたとき、この受けた対
を形成すべきデータを格納すべきアドレスに既にデータ
が格納されているとき予め定められた優先順位に従って
いずれのデータを前記待合せメモリ手段に格納すべきか
否かを判別する優先度判別手段をさらに含み、 前記再配列手段は、前記優先順位判別手段が従う優先順
位と同じ優先順位に従って前記キーデータに従って格納
データを再配列する手段を含む。 - 【請求項3】 入力データを順次格納しかつ出力するた
めに、データ入力部とデータ出力部とを有するデータ伝
送路に沿って配置される互いに縦続接続された複数のデ
ータ格納手段、 前記データ伝送路に沿って鏡映対象の位置のデータ格納
手段に対して設けられ、出力部側データ格納手段に有効
格納データが存在しないとき、入力部側データ格納手段
のデータを前記出力部側データ格納手段へ転送する転送
手段、 前記データ伝送路に沿って鏡映対象の位置のデータ格納
手段に対して設けられ、入力部側データ格納手段のデー
タに含まれる所定のキーデータと出力部側データ格納手
段のデータに含まれる所定のキーデータとを比較する比
較手段、および前記比較手段の比較結果に従って対応の
出力部側データ格納手段の格納データと対応の入力部側
データ格納手段の格納データとを交換する交換手段を含
む、データバッファ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17829892A JPH0620072A (ja) | 1992-07-06 | 1992-07-06 | データ駆動型情報処理装置およびそこに用いられるデータバッファ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP17829892A JPH0620072A (ja) | 1992-07-06 | 1992-07-06 | データ駆動型情報処理装置およびそこに用いられるデータバッファ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0620072A true JPH0620072A (ja) | 1994-01-28 |
Family
ID=16046032
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP17829892A Withdrawn JPH0620072A (ja) | 1992-07-06 | 1992-07-06 | データ駆動型情報処理装置およびそこに用いられるデータバッファ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0620072A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6900909B2 (en) * | 1999-12-03 | 2005-05-31 | Ricoh Company, Ltd. | Image processor |
-
1992
- 1992-07-06 JP JP17829892A patent/JPH0620072A/ja not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6900909B2 (en) * | 1999-12-03 | 2005-05-31 | Ricoh Company, Ltd. | Image processor |
| US7372599B2 (en) | 1999-12-03 | 2008-05-13 | Ricoh Compnay, Ltd. | Image processor |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4884192A (en) | Information processor capable of data transfer among plural digital data processing units by using an active transmission line having locally controlled storage of data | |
| US5093920A (en) | Programmable processing elements interconnected by a communication network including field operation unit for performing field operations | |
| US5471626A (en) | Variable stage entry/exit instruction pipeline | |
| US5251306A (en) | Apparatus for controlling execution of a program in a computing device | |
| US5185868A (en) | Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy | |
| JP2668438B2 (ja) | データ検索装置 | |
| US4145733A (en) | Data processing apparatus for highly parallel execution of stored programs | |
| US4972315A (en) | Data flow machine | |
| JPH0243212B2 (ja) | ||
| US3553653A (en) | Addressing an operating memory of a digital computer system | |
| JP3689143B2 (ja) | データ駆動型情報処理装置 | |
| JPH0155499B2 (ja) | ||
| US5848297A (en) | Control apparatus for maintaining order and accomplishing priority promotion in a computer interconnect | |
| US5019969A (en) | Computer system for directly transferring vactor elements from register to register using a single instruction | |
| JP3505728B2 (ja) | 記憶制御装置 | |
| US3337851A (en) | Memory organization for reducing access time of program repetitions | |
| EP0797803B1 (en) | Chunk chaining for a vector processor | |
| JPH0620072A (ja) | データ駆動型情報処理装置およびそこに用いられるデータバッファ | |
| US20060004980A1 (en) | Address creator and arithmetic circuit | |
| CN115904493B (zh) | 用于可变长度指令集机器的预先暂存指令寄存器 | |
| US5268902A (en) | Data transmission apparatus | |
| JP2638613B2 (ja) | プログラマブル アクセラレータ及びその方法 | |
| US6879523B1 (en) | Random access memory (RAM) method of operation and device for search engine systems | |
| JPS6236575B2 (ja) | ||
| JP2766404B2 (ja) | データ駆動形マイクロプロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19991005 |