(57)【特許請求の範囲】
【請求項１】
複数のデータ駆動型プロセッサ（以下、プロセッサと略す）が、命令情報を少なくとも格納したデータパケットが伝送される伝送路を用いて相互に通信接続されるデータ駆動型情報処理システムにおいて、
前記複数プロセッサの各々は、前記命令情報の少なくとも１つ以上の種類からなる異なる命令体系を処理可能であり、
前記データ駆動型情報処理システムは、
該システムの入力段に設けられて、前記複数プロセッサの各々と前記伝送路を介して接続される第１経路選択手段を有し、
前記第１経路選択手段は、
与えられる前記データパケットを入力して、該入力データパケット中の前記命令情報に基づいて、該命令情報の種類に該当する前記命令体系を処理可能な前記プロセッサに接続された前記伝送路を接続される複数の前記伝送路から選択して、選択された前記伝送路に該入力データパケットを出力し、
前記複数プロセッサの各々は、
該プロセッサの出力段に設けられた第２経路選択手段と、
与えられる前記データパケットを入力して該入力データパケットを用いて前記命令情報に基づく演算を含んだ情報処理をして、前記情報処理により得られた前記データパケットを出力する処理部と、
複数の命令情報を含むデータフロープログラムを記憶しており、前記処理部から出力された前記データパケットを入力して、入力した前記データパケットの内容に基づき次位の命令情報を読み出し、読み出した前記次位の命令情報を新たな命令情報としてデータパケットに格納して前記第２経路選択手段に出力するプログラム記憶部と、
他の全てのプロセッサのそれぞれに対応の入力ポートを有すると共に、自己のプロセッサの前記第２経路選択手段にも接続されていて、前記入力ポートに与えられる前記データパケット及び自己のプロセッサの前記第２経路選択手段から与えられる前記データパケットを入力して前記処理部に出力する合流部とを有し、
前記第２経路選択手段は、
他の全てのプロセッサのそれぞれに対応し、且つ対応のプロセッサの前記合流部の自己のプロセッサに対応の前記入力ポートと前記伝送路により接続された出力ポートを有すると共に、
自己のプロセッサの前記合流部にも接続されており、
前記プログラム記憶部から出力された前記データパケットを入力して、該入力データパケット中の前記命令情報が他のプロセッサで処理可能な命令情報である場合は、該命令情報の種類に該当する前記命令体系を処理可能な前記プロセッサに接続された前記伝送路を該プロセッサに接続される前記伝送路から選択して、前記出力ポートのうち、選択された前記伝送路を接続する前記出力ポートに該入力データパケットを出力し、入力データパケット中の前記命令情報が自己のプロセッサの前記処理部で処理可能な命令情報である場合は、自己のプロセッサの前記合流部に該入力データパケットを出力することを特徴とする、データ駆動型情報処理システム。
【請求項２】
前記第１経路選択手段は、
前記システムの外部と前記伝送路により接続される出力ポートをさらに有し、
入力したデータパケット中の前記命令情報が前記複数プロセッサのいずれでも処理できない命令情報である場合は、前記システムの外部と前記伝送路により接続される前記出力ポートにデータパケットを出力し、
前記第２経路選択手段は、
前記システムの外部と前記伝送路により接続される出力ポートをさらに有し、
前記プログラム記憶部から与えられるデータパケット中の命令情報が自己のプロセッサ及び他の全てのプロセッサのいずれでも処理できない命令情報である場合は、前記システムの外部と前記伝送路により接続される前記出力ポートにデータパケットを出力することを特徴とする、請求項１に記載のデータ駆動型情報処理システム。
【請求項３】
複数のデータ駆動型プロセッサ（以下、プロセッサと略す）が、命令情報を少なくとも格納したデータパケットが伝送される伝送路を用いて相互に通信接続されるデータ駆動型情報処理システムにおいて、
前記複数プロセッサの各々は、前記命令情報の少なくとも１つ以上の種類からなる異なる命令体系を演算処理可能であり、
前記プロセッサの外部から前記データパケットが与えられる経路選択手段と、
前記経路選択手段と接続され、前記経路選択手段から与えられる前記データパケットを入力して該入力データパケットを用いて前記命令情報に基づく前記演算処理を含んだ情報処理をして、該情報処理により得られた前記データパケットを出力する処理部と、
複数の命令情報を含むデータフロープログラムを記憶しており、前記処理部から出力されたデータパケットを入力して、入力したデータパケットの内容に基づき次位の命令情報を読み出し、読み出した前記次位の命令情報を新たな命令情報としてデータパケットに格納して前記経路選択手段に出力するプログラム記憶部とを有し、
前記経路選択手段は、
他の全てのプロセッサのそれぞれに対応し、且つ与えられる前記データパケットを出力する出力ポートと、他の全てのプロセッサのそれぞれに対応し、且つ対応のプロセッサの自己のプロセッサに対応の前記出力ポートと前記伝送路により接続された入力ポートと、を有し、
前記入力ポートに与えられるデータパケット及び前記プログラム記憶部から出力されたデータパケットを入力して、該入力データパケット中の前記命令情報が他のプロセッサで処理可能な命令情報である場合は、該命令情報の種類に該当する前記命令体系を処理可能な前記プロセッサに接続された前記伝送路を該プロセッサに接続される前記伝送路から選択して、前記出力ポートのうち、選択された前記伝送路を接続する前記出力ポートに該入力データパケットを出力し、入力データパケット中の前記命令情報が自己のプロセッサの前記処理部で処理可能な命令情報である場合は、自己のプロセッサの前記処理部に該入力データパケットを出力することを特徴とする、データ駆動型情報処理システム。
【請求項４】
前記経路選択手段は、
前記システムの外部と前記伝送路により接続される出力ポートをさらに有し、
入力したデータパケット中の前記命令情報が自己のプロセッサ及び他の全てのプロセッサのいずれでも処理できない命令情報である場合は、前記システムの外部と前記伝送路により接続される出力ポートに該入力データパケットを出力することを特徴とする、請求項３に記載のデータ駆動型情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ駆動型情報処理システムに関し、特に、複数のデータ駆動型情報処理装置をマルチネットワーク状に接続するのに適したデータ駆動型情報処理システムに関する。
【０００２】
【従来の技術】
ノイマン型計算機においては、種々の命令が予めプログラムとしてプログラム記憶部に記憶され、プログラムカウンタによってプログラム記憶部のアドレスが逐次指定されて命令が読出され、その命令が実行される。
【０００３】
一方データ駆動型情報処理装置は、プログラムカウンタによる逐次的な命令の実行という概念を持たない非ノイマン型計算機の一種である。データ駆動型情報処理装置においては、演算の対象となるデータが揃い次第、命令の実行が可能となり、複数の命令が並列的に実行されるため、大幅に演算の実行時間が短縮されるという利点を有する。
【０００４】
図１３は、従来のデータ駆動型プロセッサのブロック構成図であり、図１４（Ａ）〜（Ｃ）は、図１３のデータ駆動型プロセッサにおいて処理されるデータパケットのフィールド構成を説明するための図である。図１５は、図１３のプログラム記憶部の記憶内容の一例を示す図である。図１６は、図１３のデータ駆動型プロセッサを複数個含むシステムの構成図である。
【０００５】
図１４（Ａ）のデータパケットＰＡ１は、ＰＥ（プロセッサの略）番号５０、ノード番号５１、左右データフラグ５２、命令コード５３、世代番号５４および第１オペランド５５を含む。図１４（Ｂ）のデータパケットＰＢ１はデータパケットＰＡの内容に加えて第２オペランド５６を含む。図１４（Ｃ）のデータパケットＰＣ１はＰＥ番号５０、ノード番号５１、世代番号５４および第１オペランド５５を含む。
【０００６】
図１３のデータ駆動型プロセッサＰＥ１は、与えられるデータパケットを入力し該入力パケットの内容と予め内部のメモリに設定された内容とを比較し、その比較結果に応じて選択された出力先へ該入力データパケットを出力する分岐部２０および２５、与えられたデータパケットを入力し順次出力する合流部２１および２７、対データ検出部２２、演算処理部２３、図１５に示されるようなデータフロープログラムを予め記憶するプログラム記憶部２４および内部データバッファ部２６を含む。
【０００７】
分岐部２０および２５は内部にメモリ２０１および２５１をそれぞれ有する。メモリ２０１および２５１には、該データ駆動型プロセッサＰＥ１を一意に識別するためのＰＥ番号がソフトウェアにより予め記憶されるか、外部端子により予め設定される。
【０００８】
動作において、分岐部２０は入力ポートＩＮから入力したデータパケットＰＡ１のＰＥ番号５０とメモリ２０１に予め設定されているＰＥ番号とが一致するか否かを判定し、一致した場合には該入力データパケットＰＡ１を合流部２１に出力し、一致しない場合には合流部２７に出力する。合流部２１は分岐部２０から出力されたデータパケットＰＡ１と内部データバッファ２６から出力されたデータパケットＰＡ１とを入力し、データパケットの流れを制御しながら、順次該入力データパケットＰＡ１を対データ検出部２２へ出力する。
【０００９】
対データ検出部２２は、２項演算命令に対して対となる２つのデータパケットを検出する。つまり、２項演算命令に対してノード番号５１と世代番号５４とが等しい２つのデータパケットＰＡ同士を待ち合わせて、待合せができた（対データ検出された）時点で、２つのデータパケットＰＡ１を１つのデータパケットＰＢ１にして演算処理部２３へ出力する。この際、対データとして検出された２つのデータパケットＰＡ１の２つの第１オペランド５５のそれぞれはデータパケットＰＢ１の第１および第２オペランド５５および５６のいずれか一方にセットされる。この際、対データ検出された２つのデータパケットＰＡ１の第１オペランド５５はデータパケットＰＢ１の第１および第２オペランド５５および５６のいずれにセットされるかは、対データ検出された２つのデータパケットＰＡ１のそれぞれの左右データフラグ５２によって決定される。
【００１０】
演算処理部２３では、入力データパケットＰＢ１の命令コード５３に従い、対応の第１または第２オペランド５５または５６について演算を施し、その演算結果を第１オペランド５５として格納したデータパケットＰＣ１をプログラム記憶部２４に出力する。
【００１１】
プログラム記憶部２４は、図１５に示されるように複数のプロセッサ番号、複数のノード番号、複数の命令コードおよび複数の左右データフラグからなるデータフロープログラムを予め記憶する。プログラム記憶部２４は与えられるデータパケットＰＣ１を入力し、該入力パケットＰＣ１のノード番号５１に基づくアドレス指定によりデータフロープログラムから次位のプロセッサ番号、ノード番号、命令コードおよび左右データフラグを読出す。読出されたプロセッサ番号およびノード番号は該入力データパケットＰＣ１のＰＥ番号５０およびノード番号５１としてそれぞれセットされ、読出された命令コードおよび左右データフラグは命令コード５３および左右データフラグ５２として該入力データパケットＰＣ１に付加されて（世代番号５４はそのままで）、データパケットＰＡ１として分岐部２５に出力される。これを命令フェッチと呼ぶ。
【００１２】
分岐部２５はプログラム記憶部２４から出力されたデータパケットＰＡ１を入力し、該入力データパケットＰＡ１のＰＥ番号５０とメモリ２５１中のＰＥ番号とが一致するか否か判定する。両番号が一致した場合には分岐部２５は該入力データパケットＰＡ１を内部データバッファ部２６に出力し、一致しない場合は合流部２７に出力する。
【００１３】
内部データバッファ部２６は与えられるデータパケットＰＡ１を入力し、順次合流部２１に出力する。
【００１４】
このように合流部２１→対データ検出部２２→演算処理部２３→プログラム記憶部２４→分岐部２５をデータパケットが流れることにより、プログラム記憶部２４に予め記憶されたデータフロープログラムにより示されるデータフローグラフの１ノード分の処理が完了する。
【００１５】
以上のように、データパケットに対し、対データ検出、演算処理、命令フェッチが繰返されることにより、データフローグラフ（データフロープログラム）が実行される。
【００１６】
上述したデータ駆動型情報処理装置の処理性能を向上させるための手法として１つのシステムの中に複数のデータ駆動型プロセッサＰＥを内蔵することが考えられる。
【００１７】
特開平６−２５９５８３号公報では図１６に示されるように複数のデータ駆動型プロセッサ１〜４を含んで構成されるシステムにおいて、各プロセッサを相互に接続する方法が示される。ここでは、各プロセッサはプロセッサ間伝送路を介して接続される。そして、動作においては、データパケット中のそれ自身が処理されるべきプロセッサを指定するプロセッサ指定情報（ＰＥ番号）と予め定められた条件とに従い、該データパケットが処理されるべきプロセッサに到達するまでの経路が短くなるような伝送路を介してデータパケットが伝送される。すなわち、システム中の各プロセッサは自身を一意に識別するための情報（ＰＥ番号）を格納する図１３のメモリ２０１と２５１とを有してデータパケット中のプロセッサ指定情報（ＰＥ番号）と該プロセッサに設定されたＰＥ番号とが比較されながら、データパケットは各プロセッサで処理される。
【００１８】
【発明が解決しようとする課題】
データ駆動型プロセッサのＩＣ（集積回路）化にあたり、演算処理能力の向上ならびに１システムを構成するプロセッサの数が増加する傾向にある。これに伴い、回路が大規模になるのでコストアップを生じ、消費電力、および端子数が増加する。そして、消費電力の増加によるパッケージの放熱対策コストの増加および端子数の増加による不要輻射対策コストの増加も著しい。
【００１９】
それゆえにこの発明の目的は、経済性に優れたデータ駆動型情報処理システムを提供することである。
【００２０】
【課題を解決するための手段】
請求項１に記載のデータ駆動型情報処理システムは、複数のデータ駆動型プロセッサ（以下、プロセッサと略す）が、命令情報を少なくとも格納したデータパケットが伝送される伝送路を用いて相互に通信接続されるものであり、以下の特徴を有する。
【００２１】
複数プロセッサの各々は、命令情報の少なくとも１つ以上の種類からなる異なる命令体系を処理可能である。
【００２２】
そして、データ駆動型情報処理システムは、該システムの入力段に設けられて、複数プロセッサの各々と伝送路を介して接続される第１経路選択手段を有する。第１経路選択手段は与えられる前記データパケットを入力して、該入力データパケット中の命令情報に基づいて、該命令情報の種類に該当する命令体系を処理可能なプロセッサに接続された伝送路を接続される複数の伝送路から選択して、選択された伝送路に該入力データパケットを出力する。
【００２３】
複数プロセッサの各々は、該プロセッサの出力段に設けられた第２経路選択手段と、与えられるデータパケットを入力して該入力データパケットを用いて命令情報に基づく演算を含んだ情報処理をして、情報処理により得られたデータパケットを出力する処理部とを有する。さらに複数の命令情報を含むデータフロープログラムを記憶しており、処理部から出力されたデータパケットを入力して、入力したデータパケットの内容に基づき次位の命令情報を読み出し、読み出した次位の命令情報を新たな命令情報としてデータパケットに格納して第２経路選択手段に出力するプログラム記憶部と、他の全てのプロセッサのそれぞれに対応の入力ポートを有すると共に、自己のプロセッサの第２経路選択手段にも接続されていて、前記入力ポートに与えられるデータパケット及び自己のプロセッサの第２経路選択手段から与えられる前記データパケットを入力して処理部に出力する合流部とを有する。
【００２４】
第２経路選択手段は、他の全てのプロセッサのそれぞれに対応し、且つ対応のプロセッサの合流部の自己のプロセッサに対応の入力ポートと伝送路により接続された出力ポートを有すると共に、自己のプロセッサの合流部にも接続されており、プログラム記憶部から出力されたデータパケットを入力して、該入力データパケット中の命令情報が他のプロセッサで処理可能な命令情報である場合は、該命令情報の種類に該当する命令体系を処理可能なプロセッサに接続された伝送路を該プロセッサに接続される伝送路から選択して、出力ポートのうち、選択された伝送路を接続する出力ポートに該入力データパケットを出力し、入力データパケット中の命令情報が自己のプロセッサの処理部で処理可能な命令情報である場合は、自己のプロセッサの合流部に該入力データパケットを出力する。
【００２５】
請求項１によれば、第１および第２経路選択手段はデータパケット中の命令情報に基づいて、該命令情報の種類に該当する命令体系を処理可能な、すなわち該データパケットを処理可能なプロセッサに接続された伝送路を選択して、該伝送路を介して該データパケットを伝送する。
【００２６】
言い換えると、システムの入力段および各プロセッサの出力段ではデータパケット中の命令情報に基づいて、処理可能なプロセッサに該データパケットを振り分ける。
【００２７】
したがって、従来のように各プロセッサへのプロセッサ番号の付与が不要となり、かつデータパケット中のＰＥ番号格納領域が不要となるからシステムに関して回路規模を縮小でき、コストおよび消費電力を低減できる。
【００２８】
また、消費電力が低減されるので該システムを内蔵するパッケージの放熱対策コストも減少する。またデータパケット中にＰＥ番号格納領域が不要となることでデータパケットのデータ幅を縮小できて、システムにおけるデータパケットのための端子数は減少して不要な輻射も低減する。
【００２９】
またシステムでは第１経路選択部が複数のプロセッサの外部（システムの入力段）に配置されるので、システム構成時に各プロセッサの演算処理部の相違を考慮しなくともプロセッサを規則的に配置できる。それゆえに、該システムはプロセッサの規則的な配置構成（レイアウト）が必要とされる場合の適用に有効である。
【００３０】
請求項２に記載のデータ駆動型情報処理システムは、請求項１に記載のデータ駆動型情報処理システムにおいて以下の特徴を有する。
【００３１】
第１経路選択手段は、システムの外部と接続される出力ポートをさらに有し、入力したデータパケット中の命令情報が複数プロセッサのいずれでも処理できない命令情報である場合は、システムの外部と伝送路により接続される出力ポートに該入力データパケットを出力する。
【００３２】
第２経路選択手段は、システム外部と接続される出力ポートをさらに有し、プログラム記憶部から与えられるデータパケット中の命令情報が自己のプロセッサ及び他の全てのプロセッサのいずれでも処理できない命令情報である場合は、システムの外部と伝送路により接続される出力ポートに該入力データパケットを出力する。
【００３３】
請求項２に記載のデータ駆動型情報処理システムによれば第１および第２経路選択手段はシステム外部と接続される伝送路をさらに有するので、データパケットを、その命令情報に基づいて該データパケットを処理できるシステム内部のいずれかのプロセッサまたはシステム外部のプロセッサに選択的に供給することができる。
【００３７】
請求項３に記載のデータ駆動型情報処理システムは、複数のデータ駆動型プロセッサ（以下、プロセッサと略す）が、命令情報を少なくとも格納したデータパケットが伝送される伝送路を用いて相互に通信接続されるものであり、以下の特徴を有する。
【００３８】
複数プロセッサの各々は、命令情報の少なくとも１つ以上の種類からなる異なる命令体系を演算処理可能である。そしてプロセッサの外部からデータパケットが与えられる経路選択手段と、経路選択手段を接続し、該経路選択手段を介して与えられるデータパケットを入力して該入力データパケットを用いて命令情報に基づく演算処理を含んだ情報処理をして、該情報処理により得られたデータパケットを出力する処理部とを有する。さらに、複数の命令情報を含むデータフロープログラムを記憶しており、処理部から出力されたデータパケットを入力して、入力したデータパケットの内容に基づき次位の命令情報を読み出し、読み出した次位の命令情報を新たな命令情報としてデータパケットに格納して経路選択手段に出力するプログラム記憶部を有する。
【００３９】
経路選択手段は、他の全てのプロセッサのそれぞれに対応し、且つ与えられる前記データパケットを出力する出力ポートと、他の全てのプロセッサのそれぞれに対応し、且つ対応のプロセッサの自己のプロセッサに対応の出力ポートと伝送路により接続された入力ポートと、を有する。そして、入力ポートに与えられるデータパケット及びプログラム記憶部から出力されたデータパケットを入力して、該入力データパケット中の命令情報が他のプロセッサで処理可能な命令情報である場合は、該命令情報の種類に該当する命令体系を処理可能なプロセッサに接続された伝送路を該プロセッサに接続される伝送路から選択して、出力ポートのうち、選択された伝送路を接続する出力ポートに該入力データパケットを出力し、入力データパケット中の命令情報が自己のプロセッサの処理部で処理可能な命令情報である場合は、自己のプロセッサの処理部に該入力データパケットを出力する。
【００４０】
請求項３によれば、各プロセッサの経路選択手段はデータパケット中の命令情報に基づいて、該命令情報の種類に該当する命令体系を処理可能な、すなわち該データパケットを処理可能な他のプロセッサ及び自プロセッサ（処理部）のいずれかに接続された伝送路を選択して、選択された伝送路を介して該データパケットを伝送する。
【００４１】
言い換えると、システムの各プロセッサではデータパケット中の命令情報に基づいて、他のプロセッサおよび自プロセッサのうち処理可能なプロセッサに該データパケットを振り分ける。
【００４２】
したがって、従来のように各プロセッサへのプロセッサ番号の付与が不要となり、かつデータパケット中のＰＥ番号格納領域が不要となるからシステムに関して回路規模を縮小でき、コストおよび消費電力を低減できる。
【００４３】
また、消費電力が低減されるので該システムを内臓するパッケージの放熱対策コストも減少する。またデータパケット中にＰＥ番号格納領域が不要となることでデータパケットのデータ幅を縮小できて、システムにおけるデータパケットのための端子数は減少して不要な輻射も低減する。
【００４４】
また請求項３に記載のデータ駆動型情報処理システムは、データパケットを演算処理可能か否かの判断が各プロセッサ内で個別に行なわれるので、各プロセッサの処理部（処理可能な命令体系）の相違に従いプロセッサの配置構成（レイアウト）を異ならせることができる。それゆえに、プロセッサの規則的な配置が困難な場合には該システムの適用は有効である。
【００４５】
請求項４に記載のデータ駆動型情報処理システムは請求項３に記載のデータ駆動型情報処理システムにおいて以下の特徴を有する。
【００４６】
経路選択手段は、システムの外部と伝送路により接続される出力ポートをさらに有し、入力したデータパケット中の命令情報が自己のプロセッサ及び他の全てのプロセッサのいずれでも処理できない命令情報である場合は、システムの外部と伝送路により接続される出力ポートに該入力データパケットを出力する。
【００４７】
請求項４に記載のデータ駆動型情報処理システムによれば経路選択手段はシステム外部と接続される伝送路をさらに有するので、データパケットを、その命令情報に基づいて該データパケットを処理できるシステム内部の自プロセッサ（処理部）を含むいずれかのプロセッサおよびシステム外部のプロセッサに選択的に供給することができる。
【００４８】
【発明の実施の形態】
以下、この発明の実施の形態１と２について図面を参照し説明する。
【００４９】
（実施の形態１）
図１は、この発明の実施の形態１による複数のデータ駆動型情報処理装置を含むシステムの構成を示す図である。図２は、この発明の実施の形態１によるデータ駆動型情報処理装置のブロック構成図である。図１の各データ駆動型情報処理装置中の各ブロックは図２中の対応するブロックの符号を用いて略して示される。
【００５０】
図３は図１の分岐部の詳細構成図である。図４は、図３の分岐判定部のブロック構成図である。図５（Ａ）〜（Ｃ）は、図２のデータ駆動型情報処理装置において処理されるデータパケットのフィールド構成を示す図である。
【００５１】
図１のシステムは図２の構成を有するデータ駆動型情報処理装置（以下、プロセッサと略す）ＰＥＡ、ＰＥＢおよびＰＥＣと、入力および出力ポートＩＮおよびＯＵＴと、ポートＩＮから入力したデータパケット中の命令コードを参照して、該データパケットを処理できるプロセッサに該入力データパケットを出力する分岐部１０１と、分岐部１０１ならびにプロセッサＰＥＡ、ＰＥＢおよびＰＥＣからの出力データパケットを入力して順次出力ポートＯＵＴを介して外部に出力する合流部１０２とを含む。
【００５２】
図５（Ａ）のデータパケットＰＡは、ノード番号５１、左右データフラグ５２、命令コード５３、世代番号５４および第１オペランド５５を含む。図５（Ｂ）のデータパケットＰＢはデータパケットＰＡの内容に加え第２オペランド５６を含む。図５（Ｃ）のデータパケットＰＣはノード番号５１、世代番号５４および第１オペランド５５を含む。
【００５３】
図２においてデータ駆動型プロセッサＰＥは合流部３１〜３３、対データ検出部３４、演算処理部３５、プログラム記憶部３６、分岐部３７および内部バッファ３８を含む。合流部３１〜３３は同様な機能を有し、対応の入力ポートまたは内部バッファ３８から入力したデータパケットＰＡを入力し、順次出力する。
【００５４】
演算処理部３５に関してはプロセッサＰＥＡ、ＰＥＢおよびＰＥＣについて演算処理部３５Ａ、演算処理部３５Ｂおよび演算処理部３５Ｃのそれぞれが設けられ、同様に分岐部３７に関しては分岐部３７Ａ、分岐部３７Ｂおよび分岐部３７Ｃのそれぞれが設けられる。
【００５５】
また、プロセッサＰＥＡは入力ポートＩＢ、ＩＣおよびＩＩならびに出力ポートＯＢ、ＯＣおよびＯＯを含む。同様にプロセッサＰＥＢは入力ポートＩＡ、ＩＣおよびＩＩならびに出力ポートＯＡ、ＯＣおよびＯＯを含む。。同様にプロセッサＰＥＣは入力ポートＩＡ、ＩＢおよびＩＩならびに出力ポートＯＡ、ＯＢおよびＯＯを含む。
【００５６】
対データ検出部３４は、２項演算命令に対し、データパケットＰＡの待ち合わせを行なう。つまり、ノード番号５１と世代番号５４が等しい２つのデータパケットＰＡ同士を待ち合わせ、待ち合わせができた時点で２つのデータパケットＰＡを１つのデータパケットＰＢにして演算処理部３５に出力する。この際２つのデータパケットＰＡそれぞれの第１オペランド５５がデータパケットＰＢの第１オペランド５５および第２オペランド５６のいずれにセットされるかは、データパケットＰＡが有する左右データフラグ５２の値によって決定される。
【００５７】
演算処理部３５は、演算処理回路を有する。本実施形態ではこの演算処理回路は命令体系ごとに設けられて、異なる命令体系の演算処理回路ごとに演算処理部３５Ａ、３５Ｂおよび３５Ｃのそれぞれが設けられる。
【００５８】
ここでは、命令体系とは、命令コード５３の少なくとも１つ以上の種類からなるものを示す。
【００５９】
演算処理部３５Ａには演算処理回路として乗除演算処理回路が、演算処理部３５Ｂには同様に減算および平方根演算処理回路が、演算処理部３５Ｃには同様に加算およびＮＯＰ（データパケットをコピーする処理）演算処理回路がそれぞれ使用される。
【００６０】
演算処理部３５では、入力データパケットＰＢ中の命令コード５３に従い、該入力データパケットＰＢ中の第１または第２オペランド５５または５６に対して演算処理回路を用いた演算が施され、その演算結果が第１オペランド５５として設定されたデータパケットＰＣがプログラム記憶部３６に出力される。
【００６１】
図６は、図２のプログラム記憶部３６の記憶内容例を示す図である。プログラム記憶部３６には複数のノード番号、複数の命令コードおよび複数の左右データフラグからなるデータフロープログラムが予め記憶される。
【００６２】
プログラム記憶部３６では、入力データパケットＰＣのノード番号５１に基づくアドレス指定により、データフロープログラムから次位のノード番号、命令コードおよび左右データフラグが読出される。読出されたノード番号は入力データパケットＰＣのノード番号５１としてセットされる。その後データパケットＰＣには読出された命令コードおよび左右データフラグが付加されて、データパケットＰＡとして分岐部３７に出力される。
【００６３】
分岐部３７は第１ないし第４の出力ポートを有する。第１の出力ポートはポートＯＯであり、図１の合流部１０２に接続される。第２の出力ポートはプロセッサＰＥＣまたはプロセッサＰＥＢに接続されるポートＯＣまたはポートＯＢである。第３の出力ポートはプロセッサＰＥＢまたはＰＥＡに接続されるポートＯＢまたはＯＡである。第４の出力ポートは内部バッファ３８に接続される。
【００６４】
分岐部３７は入力データパケットＰＡの命令コード５３を参照して、プロセッサＰＥＡで処理可能な命令コードと判別すれば、該入力データパケットＰＡをプロセッサＰＥＡに出力するように、プロセッサＰＥＢで処理可能な命令コードと判別すれば、該入力パケットＰＡをプロセッサＰＥＢに出力するように、プロセッサＰＥＣで処理可能な命令コードと判別すれば、該入力パケットＰＡをプロセッサＰＥＣへ出力するように、これ以外の命令コードと判別すれば、該入力パケットＰＡを合流部１０２に出力するように動作する。
【００６５】
なお、分岐部３７の構成と動作は後述される分岐部１０１のそれと同様なので説明は省略される。
【００６６】
合流部３１は２つの入力ポートを有する。１方入力ポートは図１の分岐部１０１からデータパケットＰＡを入力するためのポートＩＩである。他方入力ポートはデータ駆動型プロセッサＰＥＣまたはＰＥＢから出力されたデータパケットＰＡを入力するためのポートＩＣまたはポートＩＢである。
【００６７】
合流部３２は２つの入力ポートを有する。一方の入力ポートは内部バッファ３８からのデータパケットＰＡを入力するためのポートである。他方の入力ポートはデータ駆動型プロセッサＰＥＢまたはＰＥＡから出力されたデータパケットＰＡを入力するためのポートＩＢまたはＩＡである。
【００６８】
図１において、各ブロック間の信号の流れを示す実線の矢印は、後述の図３に示されるようにデータ伝送路と転送制御素子間の制御線とを示す。
【００６９】
分岐部１０１は該システムの入力ポートＩＮを介してデータパケットＰＡを入力し、該入力データパケットＰＡ中の命令コード５３を参照して、該命令コード５３が演算処理部３５Ａで処理可能なコードであれば該入力データパケットをデータ駆動型プロセッサＰＥＡに出力し、同様に演算処理部３５Ｂで処理可能なコードであれば該入力データパケットをデータ駆動型プロセッサＰＥＢへ出力し、同様に演算処理部３５Ｃで処理可能なコードであれば該入力データパケットＰＡをデータ駆動型プロセッサＰＥＣへ出力し、これら以外の命令コードであれば、該入力データパケットＰＡを直接に合流部１０２へ出力する。
【００７０】
図３を参照して分岐部１０１の動作について説明する。図３では分岐部１０１の構成が、ポートＩＮの出力部側、プロセッサＰＥＡ、ＰＥＢおよびＰＥＣのポートＩＩに接続される合流部３１側ならびに合流部１０２の入力側の関連部分とともに示される。
【００７１】
図３を参照して、入力ポートＩＮの出力部側は、データパケットを伝送するためのパイプラインを構成するデータ伝送路１０１１および１０１２ならびにデータラッチ回路１００３を含むとともにデータラッチ回路１００３によるデータパケットのラッチのタイミングを制御するための転送制御素子１００１を含む。
【００７２】
プロセッサＰＥＡ、ＰＥＢおよびＰＥＣそれぞれの合流部３１側は、データ伝送路１０１３を介して与えられるデータパケットを入力してラッチし、合流部３３に接続されるデータ伝送路１００Ａ３、１００Ｂ３および１００Ｃ３のそれぞれへ出力するデータラッチ回路１００Ａ２、１００Ｂ２および１００Ｃ２と、対応のデータラッチ回路のラッチのタイミングを制御するための転送制御素子１００Ａ１、１００Ｂ１および１００Ｃ１のそれぞれとを含む。合流部１０２の入力側はデータ伝送路１０１３を介して与えられるデータパケットを入力してラッチし、出力ポートＯＵＴに接続されるデータ伝送路１０２３へ出力するデータラッチ回路１０２２と、回路１０２２のラッチタイミングを制御するための転送制御素子１０２１を含む。
【００７３】
分岐部１０１は、データパケットを伝送するためのパイプラインを構成するデータ伝送路１０１２および１０１３、ならびにデータラッチ回路１００４を含むと共にデータラッチ回路１００４によるラッチのタイミングを制御するための転送制御素子１００２、分岐判定部１００５、インバータ１００６、ＡＮＤ回路１００７、ＮＡＮＤ回路１００８、１００９、１０１０および１０１１を含む。
【００７４】
データラッチ回路１００４の出力側のデータ伝送路１０１３は４方向に分岐されて各分岐先は、プロセッサＰＥＡ、ＰＥＢ、ＰＥＣおよび合流部１０２の入力側のデータラッチ回路１００Ａ２、１００Ｂ２、１００Ｃ２および１０２２のそれぞれの入力段に接続される。
【００７５】
転送制御素子１００１、１００２、１００Ａ１、１００Ｂ１、１００Ｃ１および１０２１のそれぞれは、対応のデータラッチ回路によるデータパケットのラッチのタイミングを制御するためのクロックパルスを生成し、対応のデータラッチ回路に与える。
【００７６】
転送制御素子１００１、１００２、１００Ａ１、１００Ｂ１、１００Ｃ１および１０２１のそれぞれは、データ保持信号の入力端子ＣＩと、データ保持信号の出力端子ＣＯと、空き信号の入力端子ＲＩと、空き信号の出力端子ＲＯと、前述したクロックパルス出力の端子ＣＰとを有する。各転送制御素子は、データ保持信号および空き信号を前段および後段の転送制御素子と交信することにより、伝送路を介したデータパケットの伝送を制御する。
【００７７】
分岐判定部１００５は図４に示されるように乗または除演算コードをデコードする命令コードデコード回路９０、減算または平方根演算コードをデコードする命令コードデコード回路９１、加算またはＮＯＰ演算コードをデコードする命令コードデコード回路９２およびその他の演算コードをデコードする命令コードデコード回路９３を含む。
【００７８】
動作において命令コードデコード回路９０〜９３のそれぞれは入力ポートＩＮのデータラッチ回路１００３を介して与えられるデータ伝送路１０１２上のデータパケット内の命令コード５３を並行して入力して（参照して）、該命令コード５３に基づいて出力信号ＢＡ、ＢＢ、ＢＣおよびＢＯのレベルを決定してデータラッチ回路１００４に出力する。具体的には、分岐判定部１００５は該命令コード５３がプロセッサＰＥＡの演算処理部３５Ａで処理可能な乗または除演算コードを示せば、信号ＢＡ＝１、信号ＢＢ＝ＢＣ＝ＢＯ＝０となるように設定し、同様にプロセッサＰＥＢの演算処理部３５Ｂで処理可能な減算または平方根演算コードであれば出力信号ＢＢ＝１、出力信号ＢＡ＝ＢＣ＝ＢＯ＝０となるよう設定し、同様にプロセッサＰＥＣの演算処理部３５Ｃで処理可能な加算またはＮＯＰ演算コードであれば出力信号ＢＣ＝１、出力信号ＢＡ＝ＢＢ＝ＢＯ＝０となるよう設定して，同様にいずれのプロセッサの演算処理部でも処理できない演算コードであれば出力信号ＢＯ＝１，出力信号ＢＡ＝ＢＢ＝ＢＣ＝０となるように設定してデータラッチ回路１００４の入力側に出力する。
【００７９】
インバータ１００６は入力側が転送制御素子１００２の出力端子ＣＯに接続される。
【００８０】
ＮＡＮＤ回路１００８は一方入力側がインバータ１００６の出力側に接続され他方入力側はデータラッチ回路１００４を介してラッチされた分岐判定部１００５の出力信号ＢＡに一致する信号ＢＡ１が与えられる。
【００８１】
ＮＡＮＤ回路１００９は一方入力側がインバータ１００６の出力側に接続され、他方入力側はデータラッチ回路１００４を介してラッチされた分岐判定部１００５の出力信号ＢＢに一致する信号ＢＢ１が与えられる。
【００８２】
ＮＡＮＤ回路１０１０は、一方入力側がインバータ１００６の出力側に接続され他方入力側にデータラッチ回路１００４を介してラッチされた分岐判定部１００５の出力信号ＢＣに一致する信号ＢＣ１が与えられる。
【００８３】
ＮＡＮＤ回路１０１１は、一方入力側がインバータ１００６の出力側に接続され他方入力側にデータラッチ回路１００４を介してラッチされた分岐判定部１００５の出力信号ＢＯに一致する信号ＢＯ１が与えられる。
【００８４】
ＡＮＤ回路１００７は、入力側が転送制御素子１００Ａ１、１００Ｂ１、１００Ｃ１および１０２１の空き信号ＲＯの出力端子に接続され、出力側が転送制御素子１００２の入力端子ＲＩに接続される。
【００８５】
ＮＡＮＤ回路１００８の出力側は転送制御素子１００Ａ１の入力端子ＣＩに接続され、ＮＡＮＤ回路１００９の出力側は転送制御素子１００Ｂ１の入力端子ＣＩに接続され、ＮＡＮＤ回路１０１０の出力側は転送制御素子１００Ｃ１の入力端子ＣＩに接続され、ＮＡＮＤ回路１０１１の出力側は転送制御素子１０２１の入力端子ＣＩに接続される。
【００８６】
図７（Ａ）〜（Ｔ）は、図３に示される分岐部の動作を説明したタイミングチャートである。図３の分岐部１０１の動作についてこのタイミングチャートを参照し説明する。
【００８７】
図７（Ａ）〜（Ｔ）ではデータラッチ回路１００４および１００Ａ２のデータパケットの出力状態、分岐判定部１００５の出力信号ＢＡ１、ＢＢ１，ＢＣ１およびＢＯ１、ならびに転送制御素子１００２、１００Ａ１、１００Ｂ１，１００Ｃ１および１０２１のそれぞれについて入出力端子の信号レベルが示される。
【００８８】
まず、転送制御素子１００１、１００２、１００Ａ１、１００Ｂ１、１００Ｃ１および１０２１の出力端子ＲＯおよびＣＯから出力される空き信号およびデータ保持信号はいずれもハイレベルであると想定する。この場合、転送制御素子１００１および１００２の入力端子ＲＩに与えられる空き信号はハイレベルとなる。このように、後段からの空き信号がハイレベルとなっている場合、後段では前段からのデータパケットを受理することが可能であることを示す。逆に、後段から入力した空き信号がローレベルであれば、後段ではデータパケットを受理する準備ができていないのでデータパケットを受理不可能であることを示す。
【００８９】
転送制御素子１００２の端子ＲＯの空き信号がハイレベルで、かつデータラッチ回路１００３にデータパケットがラッチされた状況であり、次段のデータラッチ回路１００４へのデータパケット転送準備が整った場合、転送制御素子１００２の入力端子ＣＩに前段から与えられるデータ保持信号がデータパケットがデータラッチ回路１００４に入力したことを示すローレベルに立下がる。これにより転送制御素子１００２は出力端子ＲＯを介して前段の転送制御素子に与える空き信号をローレベルに立下げる。
【００９０】
前段の転送制御素子１００１は入力端子ＲＩに転送制御素子１００２から与えられる空き信号がローレベルとなったことに応答して、出力端子ＣＯを介して出力されるデータ保持信号をハイレベルに立上げる。この時、転送制御素子１００２は、入力端子ＣＩに与えられるデータ保持信号がハイレベルに立上がったことに応答して、対応のデータラッチ回路１００４に対して端子ＣＰから出力されるクロックパルスを立上げるとともに、出力端子ＲＯから出力される空き信号をハイレベルに立上げる。
【００９１】
データラッチ回路１００４は対応の転送制御素子１００２の端子ＣＰから与えられるクロックパルスが立上がったことに応答して、データラッチ回路１００３の出力データパケットおよび分岐判定部１００５の出力信号ＢＡ、ＢＢ、ＢＣおよびＢＯをラッチする。
【００９２】
ここで、入力ポートＩＮから分岐部１０１に与えられたデータパケット内の命令コード５３が乗または除演算コードである場合を想定すると、分岐判定部１００５の出力信号ＢＡ＝１（ハイレベル）、かつ出力信号ＢＢ、ＢＣおよびＢＯはローレベル（０）となる。
【００９３】
さらに、転送制御素子１００２は端子ＣＰから出力されるラッチパルスの立上がりに応答して端子ＣＯから出力されるデータ保持信号をローレベルに立下げるので、インバータ１００６の出力はローレベルからハイレベルに立上がる。また、データラッチ回路１００４にラッチされた分岐判定部１００５の出力信号ＢＡ１はハイレベルであるため、ＮＡＮＤ回路１００８の出力はハイレベルからローレベルに立下がる。
【００９４】
転送制御素子１００Ａ１は入力端子ＣＩに与えられるデータ保持信号（ＮＡＮＤ回路１００８の出力信号）はローレベルとなったことに応答して、出力端子ＲＯから出力する空き信号をハイレベルからローレベルに立下げる。
【００９５】
一方、データラッチ回路１００４にラッチされた分岐判定部１００５の出力信号ＢＢ１，ＢＣ１およびＢＯ１はローレベルであるため、ＮＡＮＤ回路１００９、１０１０および１０１１の出力信号（転送制御素子１００Ｂ１の入力端子ＣＩに入力されるデータ保持信号、転送制御素子１００Ｃ１の入力端子ＣＩに与えられるデータ保持信号および転送制御素子１０２１の入力端子ＣＩに与えられるデータ保持信号）は、インバータ１００６の出力信号にかかわらず常にハイレベルであるから転送制御素子１００Ｂ１、１００Ｃ１および１０２１は動作せず、その出力端子ＲＯから出力される空き信号ＲＯはハイレベルのままとなる。
【００９６】
ＡＮＤ回路１００７の出力信号は、転送制御素子１００Ａ１の出力端子ＲＯから出力される空き信号がローレベルとなったことに応答してローレベルとなる。この時、転送制御素子１００２は、入力端子ＲＩに与えられる空き信号がローレベルとなったことに応答して端子ＣＰから出力されるラッチパルスをローレベルに立下げるとともに出力端子ＣＯから出力されるデータ保持信号をローレベルからハイレベルに立上げる。これにより転送制御素子１００Ａ１では入力端子ＣＩに与えられるデータ保持信号がハイレベルとなるので、端子ＣＰからデータラッチ回路１００Ａ２へ出力されるクロックパルスが立上がる。したがって、データラッチ回路１００４内のデータパケットはデータラッチ回路１００Ａ２にラッチされて、転送制御素子１００Ａ１では端子ＲＯから出力される空き信号が再びハイレベルに立上がって転送制御素子１００２の入力端子ＲＩに与えられる空き信号もハイレベルに立上がる。このとき、転送制御素子１００Ｂ１、１００Ｃ１および１０２１は動作しない。
【００９７】
上述したような信号ＢＡ＝１ならびに信号ＢＢ＝ＢＣ＝ＢＯ＝０の場合、分岐部１０１でデータラッチ回路１００４にラッチされたデータはプロセッサＰＥＡ向けのデータラッチ回路１００Ａ２のみにラッチされ、プロセッサＰＥＢ，ＰＥＣおよび合流部１０２向けのデータラッチ回路１００Ｂ２、１０Ｃ２および１０２２にはラッチされない。
【００９８】
このように分岐判定部１００５の出力信号ＢＡ,ＢＢ,ＢＣおよびＢＯの値に
応じて、データラッチ回路１００４のデータはプロセッサＰＥＡ，ＰＥＢ，ＰＥＣおよび合流部１０２のデータラッチ回路１００Ａ２，１００Ｂ２，１００Ｃ２および１０２２のいずれか１つにのみラッチされ、他のデータラッチ回路にはラッチされない。
【００９９】
したがって、分岐部１０１に入力されるデータパケット中の命令コード５３の分岐判定部１００５による判定結果により、分岐部１０１が該入力データパケットをプロセッサＰＥＡ、ＰＥＢ、ＰＥＣおよび合流部１０２のいずれか１つに選択的に出力するこが可能となる。なお、分岐部１０１では、データパケットの構成は変化しない。
【０１００】
図１では分岐部１０１の分岐数が４の場合を示しているが、分岐数は該システムで処理可能な命令体系の数に基づいて決定されればよくその数は任意である。
【０１０１】
分岐部１０１からプロセッサＰＥＡ、ＰＥＢおよびＰＥＣのそれぞれに送られたデータパケットの内容は、それぞれのプロセッサで演算処理が行なわれ、プログラム記憶部３６の命令フェッチにより命令コードが更新されて、更新された命令コードに従って分岐部３７において自己のプロセッサ（内部バッファ３８）、他のプロセッサおよび合流部１０２のいずれかに出力される。
【０１０２】
図８は、図１のシステムで実行されるデータフローグラフ（データフロープログラム）の一例を示す図である。ここで、図１のシステムにおいて図８のデータフローグラフが実行される場合を例にしてシステムの動作を説明する。
【０１０３】
図８において各ノードには命令コード５３に相当する演算コードＮＯＰ、×、−、√、＋および／などがそれぞれ割当てられるとともに、ノード番号♯ｉ（ｉ＝１、２、…、１４）が割当てられる。また、各ノードにおいて入力される矢印は演算処理される入力データを示し、出力される矢印は演算結果である出力データを示す。
【０１０４】
図１においてプロセッサＰＥＡの演算処理部３５Ａには乗除演算コード、すなわち図８のデータフローグラフ上のノード番号♯２、♯６、♯７、♯８、♯１３および♯１４の各ノードに割当てられた演算コードを処理する演算処理回路が含まれる。プロセッサＰＥＢの演算処理部３５Ｂには減算および平方根演算コード、すなわち図８のデータフローグラフ上のノード番号♯４、♯９、♯１０および♯１２の各ノードに割当てられた演算コードを処理する演算処理回路が含まれる。プロセッサＰＥＣの演算処理部３５Ｃには加算およびＮＯＰ演算コード、すなわち図８のデータフローグラフ上のノード番号♯１、♯３、♯５および♯１１の各ノードに割当てられた演算コードを処理する演算処理回路が含まれる。
【０１０５】
まず入力ポートＩＮから入力されたデータパケットＰＡは、ノード番号５１には「♯２」が、命令コード５３には「４を乗ずることを示す値」 が、左右データフラグ５２には「左データであることを示す値」が、第１オペランド５５には「データｃの値」が、世代番号５４には「 任意の値」 がそれぞれ設定されているとする。
【０１０６】
このデータパケットＰＡは、分岐部１０１において命令コード５３の値が「乗または除演算コード」であると判断されて、プロセッサＰＥＡに出力される。
【０１０７】
プロセッサＰＥＡでは、ノード番号♯２の演算が演算処理部３５Ａで処理されてその結果を格納したデータパケットはプログラム記憶部３６に与えられる。プログラム記憶部３６では該データパケットを用いて命令フェッチが行なわれて次位のノード番号♯６および命令コード（ｘ）が読出される。これにより、分岐部３７では次位の命令コードは乗除演算コードに該当すると判断されて、該データパケットは内部バッファ３８に与えられる。
【０１０８】
プロセッサＰＥＡでノード番号♯６の演算が演算処理部３５Ａで処理されて、その結果を格納したデータパケットはプログラム記憶部３６における命令フェッチにより次位のノード番号♯９および命令コード（−）が格納されて、分岐部３７に出力される。分岐部３７では該データパケットの命令コードは減算および平方根演算コードに該当すると判定されて、該データパケットは分岐部３７Ａの出力ポートＯＢを介してプロセッサＰＥＢに出力される。
【０１０９】
以降、上述と同様にして、処理されるデータパケットが各プロセッサ間を行き来して、図７に示されるデータフローグラフが実行され、かつ第１オペランド５５としてデータａおよびデータｃの値をそれぞれ格納したデータパケットＰＡのそれぞれについても同様の処理が実行されることにより、結果として図８に示されるような解（ａｎｓ１およびａｎｓ２）が得られる。
【０１１０】
（実施の形態２）
図９は、この発明の実施の形態２による複数のデータ駆動型情報処理装置を含むシステムの構成図である。図９では後述する図１０〜図１２中の対応する同一部分が同一符号のみを用いて示される。
【０１１１】
図９に示されたシステムと図１に示されたシステムとの基本的な相違は、各プロセッサのブロック構成、それに伴うデータパケットの伝送経路であって基本的な情報処理形態は同様であるから、以降、詳細な記述を適宜省略する。
【０１１２】
図９のシステムにおいて入力ポートＩＮから与えられるデータパケットは図５（Ａ）のデータパケットＰＡのフィールド構成を有する。また、図９のシステムは入力ポートＩＮ、出力ポートＯＵＴおよびデータ駆動型プロセッサＰＥＡＡ、ＰＥＢＢおよびＰＥＣＣを含む。
【０１１３】
図１０〜１２は、この発明の実施の形態２によるデータ駆動型情報処理装置の第１〜第３のブロック構成図である。図１０〜１２のデータ駆動型プロセッサＰＥＡＡ、ＰＥＢＢおよびＰＥＣＣの分岐部および合流部を除く他の部分、すなわち情報処理部分の構成は図１のデータ駆動型プロセッサＰＥＡ、ＰＥＢおよびＰＥＣそれぞれの情報処理部分と同じなので詳細説明は省略される。図１０〜１２のプロセッサにおいて各合流部はデータパケットを入力して順次出力するものである。また図１０〜１２中で示される分岐部のそれぞれは、分岐数と分岐判定部１００５の命令コードデコード回路９０〜９３のゲートレベルでの構成を除いては基本的には図３で示された分岐部１０１の構成と同じであるから説明は省略される。
【０１１４】
図１０中のデータ駆動型プロセッサＰＥＡＡにおいて分岐部４０はポートＩＮから入力されたデータパケットＰＡを、その命令コード５３を参照して、演算処理部３５Ａで処理可能と判別されれば合流部４１へ、プロセッサＰＥＢＢ内の演算処理部３５Ｂで処理可能と判別されれば出力ポートＯＢに接続された合流部４３へ、プロセッサＰＥＣＣ内の演算処理部３５Ｃで処理可能と判別されれば出力ポートＯＣに接続された合流部４４へそれぞれ出力する。
【０１１５】
以降、プロセッサＰＥＡＡ内の合流部４１に入力されたデータパケットは、次段の合流部３３→対データ検出部３４→演算処理部３５Ａ→プログラム記憶部３６→分岐部３９Ａの経路を流れることにより、データフローグラフの１ノード分の処理が完了する。そして図１に示される分岐部１０１と同様にして分岐部３９Ａに入力されたデータパケットは、図１に示される分岐部１０１と同様にしてプログラム記憶部３６の命令フェッチで更新された命令コード５３に基づいて以下のように処理される。つまり、該命令コード５３がプロセッサＰＥＡＡ内の演算処理部３５Ａで処理可能と判別された場合は該入力データパケットは内部バッファ３８へ出力され、同様にしてプロセッサＰＥＢＢ内の演算処理部３５Ｂで処理可能と判別された場合は出力ポートＯＢに接続された合流部４３を経由して分岐部４０からのデータパケットとともにプロセッサＰＥＢＢのポートＩＡに出力され、同様にしてプロセッサＰＥＣＣ内の演算処理部３５Ｃで処理可能と判別された場合およびポートＯＵＴに出力されるべきと判別された（該命令コードがいずれのプロセッサの処理部でも処理できないと判別された）場合は出力ポートＯＣに接続された合流部４４を経由して分岐部４０からのデータパケットとともにプロセッサＰＥＣＣの入力ポートＩＡに出力される。
【０１１６】
データ駆動型プロセッサＰＥＢＢの入力ポートＩＡおよびＩＣに入力したデータパケットは、合流部４５で入力順に従い出力されて次段の合流部３３→対データ検出部３４→演算処理部３５Ｂ→プログラム記憶部３６→分岐部３９Ｂの経路を流れる。これにより、データフローグラフの１ノード分の処理が完了する。
【０１１７】
つぎに、分岐部３９Ｂにて入力データパケットは、その中のプログラム記憶部３６で更新された命令コード５３に基づいて以下のように処理される。つまり命令コード５３がプロセッサＰＥＢＢ内の演算処理部３５Ｂで処理可能と判別されると該入力データパケットは内部バッファ３８に出力され、同様にしてプロセッサＰＥＡＡ内の演算処理部３５Ａで処理可能と判別されると分岐部３９Ｂを経由して出力ポートＯＡに出力され、同様にしてプロセッサＰＥＣＣ内の演算処理部３５Ｃで処理可能と判別されると分岐部３９Ｂを経由して出力ポートＯＣに出力される。
【０１１８】
プロセッサＰＥＣＣのポートＩＡおよびＩＢに入力したデータパケットは、分岐部４８および４７にて該データパケット中の命令コード５３に基づいて以下のように処理される。つまり、該命令コード５３が演算処理部３５Ｃで処理可能と判別されなければ合流部４９を経由して出力ポートＯＵＴ（ポートＯＯ）に出力される。同様にして演算処理部３５Ｃで処理可能と判別された場合には合流部５０に出力される。
【０１１９】
以降、プロセッサＰＥＣＣ内の合流部５０に出力されたデータパケットは、次段の合流部３３→対データ検出部３４→演算処理部３５Ｃ→プログラム記憶部３６→分岐部３９Ｃの経路で流れる。これにより、データフローグラフの１ノード分の処理が完了する。そして分岐部３９Ｃにて、プログラム記憶部３６における命令フェッチで更新されたデータパケット中の命令コード５３に基づいて以下のように処理される。つまり該命令コード５３がプロセッサＰＥＣＣ内の演算処理部３５Ｃで処理可能と判別されると該データパケットは内部バッファ３８に出力され、同様にしてプロセッサＰＥＡＡ内の演算処理部３５Ａで処理可能と判別さされると出力ポートＯＡに出力され、同様にしてプロセッサＰＥＢＢ内の演算処理部３５Ｂで処理可能と判別されると出力ポートＯＢに出力され、同様にしていずれの演算処理部でも演算不可能と判別されると合流部５１を経由して合流部４９からのデータパケットとともに出力ポートＯＵＴ（出力ポートＯＯ）に出力される。
【０１２０】
図９および図１２に示される構成を用いて、図８のデータフローグラフ（データフロープログラム）を実行する場合を例にして動作を説明する。
【０１２１】
なお演算処理部３５Ａには乗除演算を、すなわち図８のデータフローグラフ上のノード番号♯２、♯６、♯７、♯８、♯１３および♯１４の命令コードを処理する演算処理回路が、演算処理部３５Ｂには減算および平方根演算を、すなわち図８のデータフローグラフ上のノード番号♯４、♯９、♯１０および♯１２の命令コードを処理する演算処理回路が、演算処理部３５Ｃには加算およびＮＯＰ演算を、すなわち図８のデータフローグラフ上のノード番号♯１、♯３、♯５および♯１１のノードの命令コードを処理する演算処理回路がそれぞれ割当てられている。その場合、データパケットは次のように処理される。
【０１２２】
まず、入力ポートＩＮから入力されたデータパケットＰＡは、ノード番号５１には「♯２」が、命令コード５３には「４を乗ずることを示す値」が、左右データフラグ５２には「左データであることを示す値」が、第１オペランド５５には「データｃの値」が、および世代番号５４には任意の値がそれぞれ設定されている。
【０１２３】
このデータパケットＰＡはデータ駆動型プロセッサＰＥＡＡ内の分岐部４０にて、命令コード５３に基づいて、「乗除演算」を対象とするデータパケットと判定され、該プロセッサ内の合流部４１に出力され、次段の合流部３３→対データ検出部２２→演算処理部３５Ａ→プログラム記憶部３６→分岐部３９Ａの経路を流れて、データフローグラフの１ノード分の処理が完了する。これによりノード番号♯２のノードに割当てられた命令コードが処理されて、プログラム記憶部３６で命令フェッチが行なわれてデータパケットには次位のノード番号♯６が格納される。ノード番号♯６のノードの命令コードは乗除演算を示すので、分岐部３９Ａにおいて該データパケットはプロセッサＰＥＡＡの外部には出力されず、内部バッファ３８に与えられる。
【０１２４】
プロセッサＰＥＡＡで、次にノード番号♯６ノードの演算が処理されて、プログラム記憶部３６で命令フェッチが行なわれて次位のノード番号♯９を格納したデータパケットが得られる。該データパケット中の命令コード５３が減算演算を示すので、該データパケット分岐部３９Ａにより合流部４３を介して出力ポートＯＢからプロセッサＰＥＢＢへ出力される。
【０１２５】
以降、上述と同様にして処理されるデータパケットが各プロセッサ間を行き来しながらデータフローグラフが実行され、かつ第１オペランド５５としてデータａの値およびデータｂの値をそれぞれ格納したデータパケットＰＡについても同様に処理が実行されることにより、図８に示されるように解（ａｎｓ１およびａｎｓ２）が得られる。
【０１２６】
上述の実施の形態１または２によれば、システム内のデータ駆動型プロセッサのそれぞれにおいて処理可能な命令体系を異ならせるようにしてデータパケットは命令コードに基づいて該データパケットを処理できるプロセッサへ与えられるように伝送路が選択されるように構成される。したがって、従来のように各プロセッサへのプロセッサ番号の付与が不要となり、かつデータパケット中のＰＥ番号格納領域が不要となるからシステムに関して回路規模を縮小でき、コストおよび消費電力を低減できる。
【０１２７】
また、消費電力が低減されるので該システムを内蔵するパッケージの放熱対策コストも減少する。またデータパケット中にＰＥ番号格納領域が不要となることでデータパケットのデータ幅を縮小できて、システムにおけるデータパケットのための端子数は減少して不要な輻射も低減する。
【０１２８】
また実施の形態１のシステムでは分岐部と合流部が複数のプロセッサの外部（システムの入出力段）に配置されるので、システム構成時に各プロセッサの演算処理部の相違を考慮しなくともプロセッサを規則的に配置できる。それゆえに、該システムはプロセッサの規則的な配置構成（レイアウト）が必要とされる場合の適用に有効である。
【０１２９】
また実施の形態２のシステムは、データパケットを演算処理可能か否かの判断が各プロセッサ内で個別に行なわれるので、各プロセッサの演算処理部の相違に従いプロセッサの配置構成（レイアウト）を異ならせることができる。それゆえに、プロセッサの規則的な配置が困難な場合には該システムの適用は有効である。
【０１３０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】この発明の実施の形態１による複数のデータ駆動型情報処理装置を含むシステムの構成を示す図である。
【図２】この発明の実施の形態１によるデータ駆動型情報処理装置のブロック構成図である。
【図３】図１の分岐部の詳細構成図である。
【図４】図３の分岐判定部のブロック構成図である。
【図５】（Ａ）〜（Ｃ）は、図２のデータ駆動型情報処理装置において処理されるデータパケットのフィールド構成を示す図である。
【図６】図２のプログラム記憶部の記憶内容例を示す図である。
【図７】（Ａ）〜（Ｔ）は図３の分岐部の動作を説明したタイミングチャートである。
【図８】図１のシステムで実行されるデータフローグラフ（データフロープログラム）の一例を示す図である。
【図９】この発明の実施の形態２による複数のデータ駆動型情報処理装置を含むシステムの構成図である。
【図１０】この発明の実施の形態２によるデータ駆動型情報処理装置の第１のブロック構成を示す図である。
【図１１】この発明の実施の形態２によるデータ駆動型情報処理装置の第２のブロック構成を示す図である。
【図１２】この発明の実施の形態２によるデータ駆動型情報処理装置の第３のブロック構成を示す図である。
【図１３】従来のデータ駆動型プロセッサのブロック構成図である。
【図１４】（Ａ）〜（Ｃ）は、図１３のプロセッサにおいて処理されるデータパケットのフィールド構成を説明するための図である。
【図１５】図１３のプログラム記憶部の記憶内容の一例を示す図である。
【図１６】図１３のデータ駆動型プロセッサを複数個含むシステムの構成図である。
【符号の説明】
ＰＥ１、ＰＥ、ＰＥＡ、ＰＥＢ、ＰＥＣ、ＰＥＡＡ、ＰＥＢＢおよびＰＥＣＣデータ駆動型プロセッサ
３７、３７Ａ〜３７Ｃ、３９Ａ〜３９Ｃ、４０、４６、４７、４８および１０１  分岐部
１００５  分岐判定部
なお、各図中同一符号は同一または相当部分を示す。
【図１】
0003853098.tif 000002
【図２】
0003853098.tif 000003
【図３】
0003853098.tif 000004
【図４】
0003853098.tif 000005
【図５】
0003853098.tif 000006
【図６】
0003853098.tif 000007
【図７】
0003853098.tif 000008
【図８】
0003853098.tif 000009
【図９】
0003853098.tif 000010
【図１０】
0003853098.tif 000011
【図１１】
0003853098.tif 000012
【図１２】
0003853098.tif 000013
【図１３】
0003853098.tif 000014
【図１４】
0003853098.tif 000015
【図１５】
0003853098.tif 000016
【図１６】
0003853098.tif 000017