(57)【特許請求の範囲】
【請求項１】
行先情報を格納するための行先フィールドと、命令情報を格納するための命令フィールドと、互いに独立の複数データを格納するためのデータフィールドと、前記データフィールドの前記複数データのそれぞれに対応して、対応するデータの演算処理の結果を、次位の演算処理に反映させるか否かを指示する複数の反映指示情報を格納するための反映指示フィールドと、前記反映指示フィールドの前記複数の反映指示情報に共通して、当該複数の反映指示情報の操作内容を指示する操作情報を格納するための操作フィールドとを少なくとも有したデータパケットを順次入力して、対となる異なる２つの前記入力データパケットを検出して、対検出された一方の入力パケットのデータフィールドの内容を、対検出された他方の入力パケットのデータフィールドに格納して、該他方のデータパケットを出力する対データ検出部と、
前記対データ検出部から出力された前記データパケットを入力して、該入力データパケットの前記データフィールドの複数データのそれぞれを、前記命令フィールドの前記命令情報に従い個別に演算処理して、データパケットを出力する処理部と、
複数の前記命令情報および前記行先情報を含むデータフロープログラムを記憶したプログラム記憶部を有し、前記処理部から出力された前記データパケットを入力して、該データパケットの前記行先情報に基づいて前記プログラム記憶部から読出された次位の前記命令情報および次位の前記行先情報および次位の前記操作情報を、それぞれ、該入力データパケットの前記命令フィールドおよび前記行先フィールドおよび前記操作フィールドに格納して、該入力データパケットを少なくとも前記対データ検出部に出力する制御部とを備えたデータ駆動型情報処理装置において、
前記処理部は、前記データフィールドの複数データのそれぞれに対応して設けられ、対応するデータについて演算処理を実行する複数の演算手段を含み、
前記演算手段は、
前記対応するデータについて、
前記入力データパケットの対応する前記反映指示情報および前記操作情報を入力し、前記反映指示情報の内容を、前記操作情報に基づいて操作して、操作された該反映指示情報を出力する操作手段と、
前記操作手段が出力する前記反映指示情報が反映しないことを指示していることに応じて前記対応するデータを選択し、前記操作手段が出力する前記反映指示情報が反映させることを指示していることに応じて前記対応するデータの前記演算処理の結果データを選択して、選択されたデータを出力データパケットの前記データフィールドに格納するデータ選択手段と、
前記操作手段が出力する前記反映指示情報が反映しないことを指示していることに応じて前記入力データパケットの対応する前記反映指示情報を選択し、前記操作手段が出力する前記反映指示情報が反映させることを指示していることに応じて、前記演算処理の結果に応じた内容が設定された前記反映指示情報を選択して、選択された前記反映指示情報を前記出力データパケットの前記反映指示フィールドに格納する反映指示情報選択手段と、を有する、データ駆動型情報処理装置。
【請求項２】
行先情報を格納するための行先フィールドと、命令情報を格納するための命令フィールドと、互いに独立の複数データを格納するためのデータフィールドと、前記データフィールドの前記複数データのうち演算処理を施す対象のデータの数を示すデータ数情報を格納するために０から前記複数データの個数までの数を表現可能なビット長を有したデータ数フィールドとを少なくとも有したデータパケットを順次入力して、対となる異なる２つの前記入力データパケットを検出して、対検出された一方の入力パケットのデータフィールドの内容を、対検出された他方の入力パケットのデータフィールドに格納して、該他方のデータパケットを出力する対データ検出部と、
前記対データ検出部から出力された前記データパケットを入力して、該入力データパケットの前記データフィールドの複数データのそれぞれを、前記命令フィールドの前記命令情報に従い演算処理して、データパケットを出力する処理部と、
複数の前記命令情報および前記行先情報を含むデータフロープログラムを記憶したプログラム記憶部を有し、前記処理部から出力された前記データパケットを入力して、前記プログラム記憶部から読出された次位の前記命令情報および次位の前記行先情報および次位の前記データ数情報を、それぞれ、該入力データパケットの前記命令フィールドおよび前記行先フィールドおよび前記データ数フィールドに格納して、該入力データパケットを少なくとも前記対データ検出部に出力する制御部とを備えたデータ駆動型情報処理装置において、
前記処理部は、
前記複数データのそれぞれに対応して設けられ、対応するデータについて演算処理を実行する複数の演算手段を含み、
前記演算手段は、
前記対応するデータについて、前記命令情報に従って演算処理を実行する手段と、
前記対応するデータが、予め定められている規則と前記データ数情報とにより特定される演算処理対象データである場合には、前記演算処理の結果データを選択し、それ以外の場合には、前記対応するデータを選択して、出力データパケットのデータフィールドに格納する手段とを含むことを特徴とする、データ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ駆動型情報処理装置に関し、特に、複数のオペランドデータを格納したデータパケットを用いて演算処理するデータ駆動型情報処理装置に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
図１８（Ａ）〜（Ｄ）は、従来のデータ駆動型情報処理装置とデータパケットの構成を示す図であり、特開平９−１１４６６４号公報に開示されたものを示す図である。
【０００３】
図１８（Ａ）において従来のデータ駆動型情報処理装置は、外部からデータを入力するためのポートＰｉ（ｉ＝１、２、３、…ｎ）を接続する入力部１００、合流部１０１、対データ検出部１０２、演算部１０３、プログラム記憶部１０４および分岐部１０５を含む。
【０００４】
図１８（Ｂ）には、演算部１０３の一部のブロック構成が示される。図１８（Ｃ）と（Ｄ）には、従来のデータパケットのフィールド構成の一例と他の例が示される。
【０００５】
図１８（Ｃ）においてデータパケットは、命令情報ＯＰを格納するフィールドＦ１、行先情報ＤＮを格納するフィールドＦ２、世代番号ＧＮを格納するフィールドＦ３および１つ以上のデータＤｉ（ｉ＝１，２，３、…、ｎ）を格納するフィールドＦ４を含む。
【０００６】
図１８（Ａ）のプログラム記憶部１０４には、データフロープログラムが予め格納される。データフロープログラムは、命令情報ＯＰおよび行先情報ＤＮからなる組である複数のプログラムデータを含む。
【０００７】
ここで命令情報ＯＰは、対応するデータフィールドＦ４の内容に対して実行される演算を識別するための情報である。行先情報ＤＮは、プログラム記憶部１０４から次位のプログラムデータを読出すために用いられる。以下、プログラム記憶部１０４におけるプログラムデータの読出をプログラムフェッチと呼ぶ。世代番号ＧＮは、同一の行先情報ＤＮを持つ複数のデータパケットを識別するための情報である。データＤｉは、入力部１００にポートＰｉを介して入力された複数のデータを示し、ポートＰｉ数相当のデータを示す。ここでは、フィールドＦ４内の複数のデータＤｉが１つの命令情報ＯＰ、行先情報ＤＮおよび世代番号ＧＮを共有する。
【０００８】
図１８（Ａ）のデータ駆動型情報処理装置において、データパケットのフィールドＦ４中の一部のデータＤｉが演算に使用される場合には、図１８（Ｄ）に示されるようなデータパケットのフィールド構成が採用される。図１８（Ｄ）では、図１８（Ｃ）のデータフィールドＦ４に代替してデータフィールドＦ５０が設けられる。図１８（Ｄ）の他のフィールド構成は図１８（Ｃ）と同じであり説明は省略する。フィールドＦ５０では、データＤｉのそれぞれに対応してフラグＶが設けられる。フラグＶは、対応するデータＤｉが演算に使用されるデータであること、すなわち有効なデータであること、および演算に使用されないデータであること、すなわち無効なデータであることのいずれかを示す。
【０００９】
図１８（Ａ）において入力部１００は、該データ駆動型情報処理装置の外部からデータを入力するためのポートＰｉから個別に複数のデータを入力して、図１８（Ｃ）の１つのデータパケットのフィールドＦ４に格納して、該データパケットを出力する。合流部１０１は、入力部１００と分岐部１０５から出力されるデータパケットを調停しながら入力して、順に対データ検出部１０２に出力する。対データ検出部１０２は、合流部１００から与えられるデータパケットの待ち合わせを行ない、対となるデータパケットのうち、すなわち行先情報ＤＮが一致する異なる２つのデータパケットのうち、一方のデータパケットのデータフィールドＦ４の内容を他方のデータパケットのデータフィールドＦ４に格納して、該他方のデータパケットを出力する。これにより、たとえば２項演算のための２つのオペランドデータとなるべきデータＤｉが対データとして検出される。ここでは、対データの一方をデータＬＤｉ（ｉ＝１，２，３、…、ｎ）、他方をＲＤｉ（ｉ＝１，２，３、…、ｎ）とする。
【００１０】
演算部１０３は、対データ検出部１０２から出力されるデータパケットを入力して、該データパケットの命令情報ＯＰを解読し、解読結果に基づいて該データパケットのデータフィールドＦ４に格納されたデータＤｉに対して所定演算処理を施し、その結果を該データパケットのデータフィールドＦ４に格納して出力する。
【００１１】
プログラム記憶部１０４は、演算部１０３から出力されるデータパケットを入力して、該データパケットの行先情報ＤＮに基づくアドレス指定によってデータフロープログラムから次位の行先情報ＤＮおよび次位の命令情報ＯＰを読出し、読出されたこれら情報を該入力データパケットのフィールドＦ２およびＦ１のそれぞれに格納して、該データパケットを出力する。分岐部１０５は、プログラム記憶部１０４から出力されるデータパケットを入力して、該入力データパケットの行先情報ＤＮに基づいて、該データパケットを該データ駆動型情報処理装置の外部および合流部１０１のいずれかに出力する。
【００１２】
演算部１０３は、図１８（Ｂ）のように、演算部１０３に入力されたデータパケットの対データ（ＬＤｉとＲＤｉ）と命令情報ＯＰが与えられる複数の演算器ＯＰＵｉ（ｉ＝１、２、３、…ｎ）を含む。各演算器（ＯＰＵｉ）は、命令情報ＯＰに基づいて対応する各対データを同時に演算処理して、演算結果としてデータＤｉを出力する。出力されたデータＤｉは該入力データパケットのフィールドＦ４にそれぞれ格納される。その後、該入力データパケットが出力される。
【００１３】
上述したような従来のデータ駆動型情報処理装置では、データパケット内のデータＤｉのそれぞれに対して同じ演算処理を施す演算器（ＯＰＵｉ）が複数個準備され、これら演算器（ＯＰＵｉ）では、共通の命令情報ＯＰにより演算処理がなされる。そのため、データパケット内のすべてのデータＤｉは、無条件に、同じ演算が施されることになる。したがって、データフィールドＦ４中の所望するデータＤｉに対してのみ演算を行なうためには、次のような処理が行なわれていた。つまり、演算に先立って予めデータパケットの分割を行なって、その後、所望するデータＤｉに対応した演算器（ＯＰＵｉ）でのみ所定演算が行なわれて、その後、分割されたデータパケットについて合成の処理を施していた。それゆえに、従来のデータ駆動型情報処理装置では、データフィールドＦ４中の所望するデータＤｉに対してのみ演算を行なう際には、処理が冗長となっていた。
【００１４】
また、従来のデータ駆動型情報処理装置では、所望する一部のデータＤｉに対してのみ演算を施すために、図１８（Ｄ）のデータパケットを用いて、対応するフラグＶが有効を示す対データＤｉについてのみ、すなわち所望するデータＤｉについてのみ演算を行なうことができる。この方法によれば、上述のようなデータパケットの分割および合成の処理は省略されるので処理の冗長性は解消される。しかしながら、データパケットはデータＤｉのそれぞれについて、フラグＶを格納するための領域を特別に有していたので、データパケットのサイズが大きくなって、該データ駆動型情報処理装置のデータ伝送路の幅が大きくなり、該装置の小型化が阻害されていた。
【００１５】
それゆえに、この発明の目的は、複数のオペランドデータを格納したデータパケットを用いた演算処理の効率を上げることのできるデータ駆動型情報処理装置を提供することである。
【００１６】
【課題を解決するための手段】
この発明のある局面に係るデータ駆動型情報処理装置は、行先情報を格納するための行先フィールドと、命令情報を格納するための命令フィールドと、互いに独立の複数データを格納するためのデータフィールドと、前記データフィールドの前記複数データのそれぞれに対応して、対応するデータの演算処理の結果を、次位の演算処理に反映させるか否かを指示する複数の反映指示情報を格納するための反映指示フィールドと、前記反映指示フィールドの前記複数の反映指示情報に共通して、当該複数の反映指示情報の操作内容を指示する操作情報を格納するための操作フィールドとを少なくとも有したデータパケットを順次入力して、対となる異なる２つの前記入力データパケットを検出して、対検出された一方の入力パケットのデータフィールドの内容を、対検出された他方の入力パケットのデータフィールドに格納して、該他方のデータパケットを出力する対データ検出部と、
前記対データ検出部から出力された前記データパケットを入力して、該入力データパケットの前記データフィールドの複数データのそれぞれを、前記命令フィールドの前記命令情報に従い個別に演算処理して、データパケットを出力する処理部と、
複数の前記命令情報および前記行先情報を含むデータフロープログラムを記憶したプログラム記憶部を有し、前記処理部から出力された前記データパケットを入力して、該データパケットの前記行先情報に基づいて前記プログラム記憶部から読出された次位の前記命令情報および次位の前記行先情報および次位の前記操作情報を、それぞれ、該入力データパケットの前記命令フィールドおよび前記行先フィールドおよび前記操作フィールドに格納して、該入力データパケットを少なくとも前記対データ検出部に出力する制御部とを備えて、以下の特徴を有する。
【００１７】
つまり、前記処理部は、前記データフィールドの複数データのそれぞれに対応して設けられ、対応するデータについて演算処理を実行する複数の演算手段を含む。
【００１８】
そして、前記演算手段は、
前記対応するデータについて、
前記入力データパケットの対応する前記反映指示情報および前記操作情報を入力し、前記反映指示情報の内容を、前記操作情報に基づいて操作して、操作された該反映指示情報を出力する操作手段と、
前記操作手段が出力する前記反映指示情報が反映しないことを指示していることに応じて前記対応するデータを選択し、前記操作手段が出力する前記反映指示情報が反映させることを指示していることに応じて前記対応するデータの前記演算処理の結果データを選択して、選択されたデータを出力データパケットの前記データフィールドに格納するデータ選択手段と、
前記操作手段が出力する前記反映指示情報が反映しないことを指示していることに応じて前記入力データパケットの対応する前記反映指示情報を選択し、前記操作手段が出力する前記反映指示情報が反映させることを指示していることに応じて、前記演算処理の結果に応じた内容が設定された前記反映指示情報を選択して、選択された前記反映指示情報を前記出力データパケットの前記反映指示フィールドに格納する反映指示情報選択手段と、を有する。
【００１９】
上述のデータ駆動型情報処理装置によれば、入力データパケット中の複数データについて命令情報に従う演算処理が実行される際には、処理部のデータおよび反映指示情報選択手段により、反映指示情報に対応する複数データを用いて、演算処理結果を次位の命令情報による演算処理に反映させることが指示されているデータに対してのみ、その演算処理の結果データと、該演算処理の結果データに応じた内容が設定された反映指示情報が前記データパケットに格納されて出力される。
【００２０】
このように、上述したデータ駆動型情報処理装置では、データパケット中の複数データのうち、その演算処理結果を次位の演算処理に反映させることが所望されるデータについてのみ演算処理結果を得る場合に、従来のようなデータパケットを分割および合成の処理ステップは省略される。それゆえに、データ駆動型情報処理装置において実行されるプログラムのデータ量、処理すべきデータパケットの数を減少させることができて、処理速度および処理効率を向上させることができる。
【００２３】
したがって、処理部では、次位の命令情報に従う演算処理が実行される際には直前に実行された命令情報による演算処理結果に応じた内容が設定された反映指示情報に関わらず、操作手段が出力する反映指示情報に基づいてデータ選択手段および反映指示情報選択手段を次のように制御できる。つまり、データ選択手段に対しては、入力データパケットのデータを選択させたり、該データの該次位命令情報の演算処理の結果データを選択させたりでき、反映指示情報選択手段に対しては、入力データパケットの反映指示情報を選択させたり（言換えると、反映指示情報の内容を保持（コピー）させたり）、該次位命令情報の演算処理の結果に応じた内容が設定された反映指示情報を選択させたりできる。
【００２４】
それゆえに、該データ駆動型情報処理装置では、同一命令情報に従い同一データに対して演算処理が行なわれる場合でも、操作情報を用いることにより、複数種類の命令情報が実行されたのと同様な処理結果を得ることができるから、情報処理に必要とされる命令情報の種類を少なくできる。このことから、少ない命令情報を用いて従来と同様な処理を実行できることになり、処理速度の向上と、プログラム記憶領域の削減が可能になる。
【００２９】
この発明の他の局面に係るデータ駆動型情報処理装置は、行先情報を格納するための行先フィールドと、命令情報を格納するための命令フィールドと、互いに独立の複数データを格納するためのデータフィールドと、前記データフィールドの前記複数データのうち演算処理を施す対象のデータの数を示すデータ数情報を格納するために０から前記複数データの個数までの数を表現可能なビット長を有したデータ数フィールドとを少なくとも有したデータパケットを順次入力して、対となる異なる２つの前記入力データパケットを検出して、対検出された一方の入力パケットのデータフィールドの内容を、対検出された他方の入力パケットのデータフィールドに格納して、該他方のデータパケットを出力する対データ検出部と、
前記対データ検出部から出力された前記データパケットを入力して、該入力データパケットの前記データフィールドの複数データのそれぞれを、前記命令フィールドの前記命令情報に従い演算処理して、データパケットを出力する処理部と、
複数の前記命令情報および前記行先情報を含むデータフロープログラムを記憶したプログラム記憶部を有し、前記処理部から出力された前記データパケットを入力して、前記プログラム記憶部から読出された次位の前記命令情報および次位の前記行先情報および次位の前記データ数情報を、それぞれ、該入力データパケットの前記命令フィールドおよび前記行先フィールドおよび前記データ数フィールドに格納して、該入力データパケットを少なくとも前記対データ検出部に出力する制御部とを備えたデータ駆動型情報処理装置において、
前記処理部は、
前記複数データのそれぞれに対応して設けられ、対応するデータについて演算処理を実行する複数の演算手段を含み、
前記演算手段は、
前記対応するデータについて、前記命令情報に従って演算処理を実行する手段と、
前記対応するデータが、予め定められている規則と前記データ数情報とにより特定される演算処理対象データである場合には、前記演算処理の結果データを選択し、それ以外の場合には、前記対応するデータを選択して、出力データパケットのデータフィールドに格納する手段とを含むことを特徴とする。
【００３０】
したがって、演算処理が施されることが所望されるデータ数に対してのみの演算処理結果を得ることができる。
【００３１】
従来は、演算処理が施されることが所望されるデータ数に対してのみの演算処理結果を得ようとする場合には、複数データのそれぞれについて個別に演算処理が所望されるか否かの１ビットの情報を付加していた。それに対して、上述のデータ駆動型情報処理装置では、データパケットには、演算処理が所望されるデータの数を示すデータ数情報を格納するためのデータ数フィールドは複数データの個数に対応のビット長を有するだけでよいから、複数データが３個以上である場合には、従来に比較してデータパケットの長さを短縮できる。これにより、データ駆動型情報処理装置におけるデータパケット伝送、並びにその内容の読出／書込に要する処理時間が短縮して、処理速度は向上する。
【００３２】
また、上述のデータ数情報により、データフィールドの複数データのうち、演算処理が施されることが所望されているデータが特定される。
【００３３】
【発明の実施の形態】
以下、この発明の実施の形態１〜４について図面を参照し詳細に説明する。
【００３４】
（実施の形態１）
本実施の形態１では、データパケット内の複数のデータＤｉのそれぞれに対して、該データＤｉについての演算結果を、次位の演算処理に反映するための１ビットのフラグデータＦＢｉが付加される。これにより所定の値を示すフラグデータＦＢｉに対応したデータＤｉに対してのみ、演算結果が得られて、演算結果は該データパケットにデータＤｉとして格納されて、次位の演算処理に与えられる。したがって、該演算結果を次位の演算処理に反映させることができる。
【００３５】
図１（Ａ）〜（Ｄ）は、この発明の各実施の形態に係るデータ駆動型情報処理装置のブロック構成と、データパケットのフィールド構成を示す図である。図２は、図１（Ａ）の演算部１３のブロック構成図である。図３は、図２の演算装置ＰＰｉのブロック構成図である。図４は、図３の演算器のブロック構成図である。図５（Ａ）〜（Ｄ）は、図４の各演算回路の出力を表形式にして示す図である。図６（Ａ）と（Ｂ）は、所定処理に対する従来のデータフローグラフとこの発明の実施の形態１に係るデータフローグラフとを示す図である。
【００３６】
図１（Ａ）の各実施の形態に係るデータ駆動型情報処理装置は、演算部およびプログラム記憶部の構成が各実施の形態毎に異なる。その他の各部は各実施の形態について共通である。なお、これら他の各部は、図１８（Ａ）のそれと同じであるから説明は省略する。図示される演算部１３、１３Ａ、１３Ｂおよび１３Ｃのそれぞれ、およびプログラム記憶部１４、１４Ａ、１４Ｂおよび１４Ｃのそれぞれは、実施の形態１、２、３および４のそれぞれに適用される。
【００３７】
図１（Ｂ）において本実施の形態１に適用されるデータパケットは、命令情報ＯＰが格納されるフィールドＦ１、行先情報ＤＮが格納されるフィールドＦ２、世代番号ＧＮが格納されるフィールドＦ３および互いに独立した複数データＤｉが格納されるフィールドＦ４、ならびにフィールドＦ５１を含む。
【００３８】
フィールドＦ５１には、フィールドＦ４の複数データＤｉのそれぞれに対応したフラグデータＦＢｉ（ｉ＝１、２、３、…ｎ）が格納される。
【００３９】
なお、フラグデータＦＢｉは、１ビットのデータであるが、ビット数はこれに限定されない。データフィールドＦ４のデータＤｉは、対データ検出部１０２により対データが検出された後は、図１（Ｃ）で示されるように対データであるデータＬＤｉとＲＤｉからなる。
【００４０】
図１（Ｄ）には、プログラム記憶部１４におけるデータフロープログラムが記憶されたプログラム記憶領域が示される。図示されるように、データフロープログラムは、次位の命令情報ＯＰおよび行先情報ＤＮからなるプログラムデータを複数含む。プログラム記憶部１４は、図１（Ｂ）のデータパケットを入力すると、該入力データパケットの行先情報ＤＮに基づくアドレス指定により、プログラム記憶領域から次位の命令情報ＯＰおよび行先情報ＤＮを読出して（プログラムフェッチして）、読出された情報のそれぞれを該入力データパケットのフィールドＦ１およびＦ２のそれぞれに格納して、該入力データパケットを出力する。これにより、データパケットに次位の命令情報ＯＰおよび行先情報ＤＮが付与される。
【００４１】
図２において演算部１３は、入力バッファ１０Ｉ、出力バッファ１０ＯおよびデータＤｉのそれぞれに対応して複数個の演算装置ＰＰｉ（ｉ＝１、２、３、…ｎ）を含む。入力バッファ１０Ｉと出力バッファ１０Ｏは、対データ検出部１０２から出力された対データ（ＬＤｉとＲＤｉ）を格納したデータパケットが並行して与えられるので、与えられた該データパケットの内容を格納する。ここでは説明を容易とするために、対データ検出部１０２から演算部１３に与えられたデータパケットには、フラグデータＦｂｉが格納されており、また演算部１３の処理の結果によりフラグデータＦＢｉが得られると想定する。
【００４２】
図３において、図２の各演算装置ＰＰｉは演算器２０２、選択器２０３および２０４を含む同様な構成を有している。選択器２０３と２０４の構成は公知の技術で構成できるので説明を省略する。演算装置ＰＰｉは、入力バッファ１０ｉに格納されたデータパケットの命令情報ＯＰ、データＬＤｉとＲＤｉからなる対データＤｉおよび該対データＤｉに対応のフラグデータＦＢｉが与えられる。なお、図３においては、演算装置ＰＰｉの動作を簡単に説明するために、各部に与えられるデータについて、データｇ、ｈ、ｉ、ｊ、ｋが示されている。
【００４３】
演算器２０２は、図４に示されるように、演算回路２１０〜２１３と選択器２１４および２１５を含む。演算回路２１０〜２１３のそれぞれは、演算処理部２１０Ａ〜２１３Ａのそれぞれおよびフラグ処理部２１０Ｂ〜２１３Ｂのそれぞれを含む。演算処理部２１０Ａ〜２１３Ａのそれぞれは、演算器２０２に与えられるデータＬＤｉとデータＲＤｉとを入力して、入力したこれらのデータについて加算命令（ＡＤＤ命令）、演算命令（ＳＵＢ命令）、最大値を選択する命令（ＭＡＸ命令）、最小値を選択する命令（ＭｉＮ命令）に従う演算処理をそろぞれ実行して、演算結果を出力する機能を有する。ここでは、上述した４種類の演算を行なう演算処理部２１０Ａ〜２１３Ａを提示したが、適用される演算の種類および適用される演算処理部の数はこれに限定されない。
【００４４】
フラグ処理部２１０Ｂ〜２１３Ｂのそれぞれは、対応する演算処理部２１０Ａ〜２１３Ａのそれぞれの演算結果に応じた値（０または１のいずれか）を示すための１ビットのフラグデータを出力する。
【００４５】
選択器２１４は演算器２０２に与えられた命令情報ＯＰと演算処理部２１０Ａ〜２１３Ａから出力された演算結果とを入力して、入力した演算結果の中から命令情報ＯＰで示される演算命令に対応の演算結果（図のデータｉ参照）を選択して、出力する。また、選択器２１５は演算器２０２に与えられた命令情報ＯＰとフラグ処理部２１０Ｂ〜２１３Ｂから出力されるフラグデータとを入力して、入力したフラグデータの中から命令情報ＯＰで示される演算命令に対応した演算処理部のフラグ処理部から出力されたフラグデータ（図のデータｈ参照）を選択して出力する。
【００４６】
演算器２０２から出力されるフラグデータ（データｈ参照）の、演算結果（データｉ参照）に対応した値が、図５（Ａ）〜（Ｄ）に表形式にして示されている。図示されるように、フラグデータ（データｈ参照）は、入力データＬＤｉとＲＤｉの命令情報ＯＰに基づく所定演算処理の結果に応じて、“１”および“０”のいずれかの値を取る。
【００４７】
図３において選択器２０３は、演算装置ＰＰｉに与えられたデータＬＤｉ（図のデータｊ参照）とフラグデータＦＢｉ（図のデータｋ参照）と演算器２０２から出力された演算結果（図３と図４のデータｉ参照）とを入力して、フラグデータＦｂｉの値に基づいて、データＬＤｉと演算結果とのいずれか一方を選択して、データＤｉとして出力バッファ１０Ｏに出力する。
【００４８】
選択器２０４は、演算装置ＰＰｉに与えられたフラグデータＦｂｉ（図のデータｇ参照）と演算器２０２から出力されたフラグデータ（図３と図４のデータｈ参照）とを入力して、フラグデータＦｂｉに基づいて、該フラグデータＦｂｉおよびフラグデータ（図３と図４のデータｈ参照）のいずれかを選択して、フラグデータＦＢｉとして出力バッファ１０Ｏに出力する。
【００４９】
演算装置ＰＰｉの動作において、演算器２０２で命令情報ＯＰに従い演算されて、得られた演算結果（データｉ参照）は選択器２０３に与えられる。そして該演算によるフラグデータＦｂｉの変化を示すためのフラグデータは、選択器２０４に与えられる（データｈ参照）。選択器２０３では、フラグデータＦｂｉの値（データｋ参照）が、演算を行なうことを示す場合は、与えられた演算結果（データｉ参照）が選択されて、一方、演算を行なわないことを示す場合には入力データＬＤｉ（データｊ参照）が選択される。そして選択されたデータはデータＤｉとして出力バッファ１０Ｏに出力される。
【００５０】
また、選択器２０４ではフラグデータＦｂｉの値（データｋで示す）が、演算を行なうことを示す場合は、演算器２０２から入力したフラグデータ（データｈで示す）が選択されて、また、演算を行なわないことを示す場合は、該演算装置ＰＰｉ入力されたフラグデータＦｂｉ（データｇで示す）が選択される。選択されたフラグデータはフラグデータＦＢｉとして出力バッファ１０Ｏに出力される。
【００５１】
このように、図３の演算装置ＰＰｉが、データパケットの複数のデータＤｉ（データＬＤｉとＲＤｉの対データ）のそれぞれに対して１個ずつ準備されることにより、入力されたｎ個の対データＤｉを命令情報ＯＰに従い同時に演算処理することができる。また、各データＤｉに対応のフラグデータＦｂｉが演算を行なうことを示す場合には、該データＤｉの演算処理結果（データｉとデータｈ参照）を格納したデータパケットを出力することができ、各データＤｉに対応のフラグデータＦｂｉが演算を行なわないことを示す場合には、演算処理結果ではなくて、入力データ（データＬＤｉとフラグデータＦｂｉ）をすなわち、演算処理が施される前のデータを格納したデータパケットを出力することができる。
【００５２】
ここで、図６（Ａ）と（Ｂ）を参照して、従来のデータ駆動型情報処理装置の動作と比較しながら実施の形態１によるデータ駆動型情報処理装置の動作を説明する。図６（Ａ）と（Ｂ）のそれぞれは、従来のデータ駆動型情報処理装置と本実施の形態１に係るデータ駆動型情報処理装置のそれぞれにおいて、データＤ１〜Ｄｎを格納したデータパケットを入力して、データＤ１〜Ｄｎのうちしきい値ｂ未満のデータのみを２倍するための処理を実行するためのデータフロープログラムを記述したデータフローグラフである。図においては、ノード２０５〜２０９のそれぞれに、該ノードにおいて実行される命令情報ＯＰで示される命令コードが示される。
【００５３】
従来の図６（Ａ）では、ノード２０５では、入力したデータパケットの各データＤｉとしきい値ｂとが比較され、しきい値ｂ以上のデータＤｉを格納したデータパケットとしきい値ｂ未満のデータＤｉを格納したデータパケットとに該入力データパケットが分割されて、分割により得られた各データパケットは次位のノード２０６と２０７にそれぞれ出力される。その後、しきい値ｂ未満のデータＤｉは、ノード２０６において命令情報ＯＰ（命令コードＭＵＬ）に従い２倍されて、その結果を格納したデータパケットはノード２０７に与えられる。ノード２０７においては命令情報ＯＰ（命令コードＰＡＣＫ）に従い、ノード２０６から出力されたデータパケットとノード２０５から出力されたデータパケットとは合成されて、１つのデータパケットが出力される。
【００５４】
本発明による図６（Ｂ）では、ノード２０８において、入力したデータパケットの各データＤｉとしきい値ｂとが比較されて、比較結果を、各データＤｉに対応するフラグデータＦＢｉとして該入力データパケットに格納して、該データパケットはノード２０９に出力される。この際、しきい値ｂ未満のデータＤｉに対応のフラグデータＦＢｉには１が設定される。ノード２０９では、入力したデータパケット中の“１”であるフラグデータＦＢｉに対応のデータＤｉのみに対して該データＤｉを２倍にした後、該入力データパケットを出力する。この際、“０”であるフラグデータＦＢｉに対応したデータＤｉはそのまま出力される。
【００５５】
このように同じ処理が実行される場合、従来のデータ駆動型情報処理装置に比較して、本実施の形態１のデータ駆動型情報処理装置においては、データパケットの合成処理（図６（Ａ）のノード２０７の処理）の分だけ実行すべき命令数が少なくなっていること、そして分割処理が省略されたことで扱うデータパケット量も少なくなっていることにより、本実施の形態１に係るデータ駆動型情報処理装置では処理速度および処理効率は向上する。
【００５６】
なお、ここではしきい値ｂ未満のデータＤｉについては、対応のフラグデータＦＢｉに“１”をセットするとしたが、“０”にセットするとしても、同様にして演算することができる。
【００５７】
上述したように、データパケットの複数のデータＤｉのうち、所望するデータＤｉについてのみ演算結果を得ようとする場合には、従来はデータパケットを分割し、分割により得られたデータパケットのそれぞれに演算を行ない、その後、データパケットを合成する必要があったが、本実施の形態１によれば、データパケットを分割および合成することなく、所望の条件に一致するデータＤｉに対してのみ、すなわち対応するフラグデータＦＢｉがその演算結果を次位の命令情報に従う演算処理に反映することを指示するようなデータＤｉに対してのみ演算結果を得ることができる。それゆえに、データ駆動型情報処理装置におけるプログラムのデータ量、処理するデータパケットの数を減少させることができるから、処理速度および処理効率を向上させることができる。
【００５８】
（実施の形態２）
次に、この発明の実施の形態２について説明する。本実施の形態２では、データパケットに、後述するデータＣＴＬ（ｃｏｎｔｒｏｌの略）を追加して格納し、データＣＴＬの値に基づいて、（１）対応するフラグデータＦＢｉの値にかかわらず、すべてのデータＤｉについて演算を実行する、（２）“１”であるフラグデータＦＢｉに対応のデータＤｉ、および“０”であるフラグデータＦＢｉのデータＤｉのいずれかに対してのみ演算を実行する、（３）対応するフラグデータＦＢｉの値にかかわらず、すべてのデータＤｉについて演算を行なわないといった、いずれかのケースを選択可能とするような特徴を有する。
【００５９】
図７は、本実施の形態２に係る演算部１３Ａのブロック構成図であり、図８（Ａ）〜（Ｃ）は、本実施の形態２に係るデータパケットの構成と該データパケットによりアクセスされるプログラム記憶部の構成を示す図であり、図９（Ａ）と（Ｂ）は、図７の演算装置ＰＰＡｉの構成と動作を示す図であり、図１０（Ａ）と（Ｂ）は、同一の処理に対する実施の形態１に係るデータ駆動型情報処理装置で実行されるデータフロープログラムに対応のデータフローグラフと、本実施の形態２に係るデータ駆動型情報処理装置で実行されるデータフロープログラムに対応のデータフローグラフを示す図である。
【００６０】
本実施の形態２に係るデータ駆動型情報処理装置の構成に関しては、実施の形態１で示されたデータ駆動型情報処理装置の演算部１３とプログラム記憶部１４に代替して演算部１３Ａプログラム記憶部１４Ａが設けられた他は、実施の形態１に示されたものと同様であり、説明は省略する。
【００６１】
図８（Ａ）の本実施の形態２に係るデータパケットは、図１（Ｂ）の実施の形態１に係るデータパケットの構成にデータＣＴＬが格納されるフィールドＦ５２を追加して有する。データＣＴＬは、フラグデータＦｂｉに関わらず、図３の選択器２０３に対して、強制的に演算結果（図３のｉ参照）を出力させるか、強制的に演算前のデータ（図３のｊ参照）を出力させるかするように作用する。また、選択器２０４に対しては、フラグデータＦｂｉに関わらず、入力されたフラグデータＦｂｉの値および入力されたフラグデータＦｂｉの反転された値のいずれかを出力させるように作用する。データＣＴＬは、こここでは、値“０”〜“３”を示す２ビットのデータとしているが、ビット数はこれに限定されない。
【００６２】
図８（Ｃ）には、プログラム記憶部１４Ａにおけるデータフロープログラムが記憶されたプログラム記憶領域が示される。図示されるように、データフロープログラムは、次位の命令情報ＯＰ、次位の行先情報ＤＮおよびデータＣＴＬからなるプログラムデータを複数含む。プログラム記憶部１４Ａは、図８（Ａ）のデータパケットを入力すると、該入力データパケットの行先情報ＤＮに基づくアドレス指定により、プログラム記憶領域から次位の命令情報ＯＰ、行先情報ＤＮおよびデータＣＴＬを読出して（プログラムフェッチして）、読出された情報のそれぞれを該入力データパケットのフィールドＦ１、Ｆ２およびＦ５２のそれぞれに格納して、該入力データパケットを出力する。これにより、データパケットにデータＣＴＬが付与される。なお、ここでは、データＣＴＬはプログラムフェッチにより付与されるとしているが、入力部１００においてデータパケットに付与されるようにしてもよい。
【００６３】
図７の演算部１３Ａは入出力バッファ１０ＡＩおよび１０ＡＯならびに演算装置ＰＰＡｉを有する。図７の入出力バッファ１０ＡＩおよび１０ＡＯには、演算部１３Ａに与えあられた図８（Ａ）のデータパケットの内容が入力されて、一時的に格納されて出力される。
【００６４】
図９（Ａ）の演算装置ＰＰＡｉは、図３の演算器２０２、操作部３０１、ならびに選択器３０２および３０３を備える。
【００６５】
演算器２０２は図４で示されたものと同様であり説明は省略する。
選択器３０２は、演算装置ＰＰＡｉに与えられるデータＬＤｉと演算器２０２の演算結果と操作部３０１の出力値とを入力して、該出力値に基づいて、入力したデータＬＤｉおよび演算結果のいずれか一方をデータＤｉとして出力する。また選択器３０３は、演算装置ＰＰＡｉに与えられたフラグデータＦｂｉと、演算器２０２の演算結果に対応したフラグデータと操作部３０１の出力値とを入力して、該出力値に基づいて、入力したフラグデータＦｂｉおよび演算結果に対応したフラグデータのいずれか一方をフラグデータＦＢｉとして出力する。
【００６６】
ここでは、操作部３０１の出力値は、図９（Ｂ）のように操作される。具体的には、データＣＴＬ＝１または２の場合には、選択器３０２と３０３によるフラグデータＦｂｉの参照の仕方を反転させたり、データＣＴＬ＝０または３の場合にはフラグデータＦｂｉの値にかかわらず（無条件に）、命令情報ＯＰに従う演算を実行または非実行させることができる。図９（Ａ）の演算装置ＰＰＡｉが、演算部１０３に入力するデータＤｉ（対データ）のそれぞれに対応して１つずつ準備されることで、入力されたｎ個のデータＤｉを同時に演算処理することができる。
【００６７】
ここで、図１０（Ａ）と（Ｂ）とを参照して、同一の処理に対する実施の形態１に係るデータ駆動型情報処理装置による動作と、実施の形態２に係るデータ駆動型情報処理装置による動作を説明する。ここで、同一の処理とは、入力したデータＬＤｉとデータＲＤｉとのうち、大きい方のデータに、さらに１を加算する処理をさす。図１０（Ａ）と（Ｂ）のそれぞれは、該処理を実施の形態１と２のそれぞれによるデータ駆動型情報処理装置で実行するためのデータフロープログラムに対応のデータフローグラフを示す。
【００６８】
図１０（Ａ）と（Ｂ）では、ノード３０４と３０７において入力データＤｉ（データＬＤｉとＲＤｉ）について最大値を選択するための命令情報ＯＰ（命令ＭＡＸ）が実行されて、ノード３０５では入力データに対してフラグデータＦＢｉをセットするための命令情報ＯＰ（命令ＳＥＴ  ＦＢ）が実行されて、ノード３０６と３０８においては入力データＤｉ（データＬＤｉとＲＤｉ）を加算するための命令情報ＯＰ（命令ＡＤＤ）が実行される。
【００６９】
実施の形態１による演算部１３を有したデータ駆動型情報処理装置では、図１０（Ａ）に示されるように、ノード３０４において命令情報ＯＰ（“ＭＡＸ”）に従う演算が実行された後、一旦、ノード３０５において、命令情報ＯＰ（“ＳＥＴ  ＦＢ”）により、入力データパケット中のすべてのフラグデータＦＢｉについて“１”がセットされる。その後、ノード３０６において命令情報ＯＰ（“ＡＤＤ”）に従う演算が実行されることにより、該データ駆動型情報処理装置に入力したデータパケット内のすべてのデータＤｉについて１を足すことができる。
【００７０】
これに対して、本実施の形態２に係る演算部１３Ａを有したデータ駆動型情報処理装置では、図１０（Ｂ）で示されるように、ノード３０７において、命令情報ＯＰ（“ＭＡＸ”）に従う演算が実行された後は、ノード３０８において命令情報ＯＰ（“ＡＤＤ”）に従う演算が実行されることにより、該データ駆動型情報処理装置に入力したデータパケット内のすべてのデータＤｉについて１を足すことができる。
【００７１】
つまり、図１０（Ｂ）においては、ノード３０８で入力データパケットのデータＤｉに対して命令情報ＯＰ（“ＡＤＤ”）が実行される際に、予めプログラム記憶部１４Ａによるプログラムフェッチにより、または入力部１００により該入力データパケットのデータＣＴＬに“０”が設定されるようにする。このことにより、ノード３０７においては入力データパケットのフラグデータＦＢｉの値に関係なく、演算装置ＰＰＡｉによる演算結果のデータＤｉがすべて出力されて、次位のノード３０８において、これらすべてのデータＤｉ（データＤ１〜Ｄｎのすべて）のそれぞれについて１を足すことができる。
【００７２】
このように、同一の処理内容を示す図１０（Ａ）と図１０（Ｂ）のフローグラフを比較すると、本実施の形態２に係るデータ駆動型情報処理装置では、実施の形態１に係るデータ駆動型情報処理装置におけるフラグデータＦＢｉの再設定処理（ＳＥＴ  ＦＢに対応の処理）が省略される。したがって、本実施の形態２に係るデータ駆動型情報処理装置では、この省略分だけ、実行すべきプログラムステップ数が減少して、処理の速度と効率が向上する。
【００７３】
上述の本実施の形態２によれば、データＣＴＬを用いることにより、フラグデータＦＢｉの操作とデータＤｉの演算とを同時に指示する命令情報ＯＰに従う処理の実行直後であっても、フラグデータＦＢｉの値に関係なく（無条件に）、データパケット内のすべてのデータＤｉに対して演算を行なうことができる。このため、同一内容の処理に対して、演算のみを指示する命令情報ＯＰとフラグデータＦＢｉの操作とデータＤｉの演算の両方を指示する命令情報ＯＰとを個別に用意する必要がなくなって、該データ駆動型情報処理装置で実行すべき命令の種類を減らすことができる。
【００７４】
（実施の形態３）
次に、実施の形態３について説明する。
【００７５】
本実施の形態３では、データパケット内のフラグデータＦＢｉの操作を行なうか行なわないかを指示するような後述するデータＦＯ（Flag Operationの略）を用いることにより、該フラグデータＦＢｉによる命令の実行または非実行の指定を、直後に実行される演算だけではなく、さらにその後に実行される複数の演算でも利用できるようにしたことを特徴とする。
【００７６】
図１１は、本実施の形態３に係る演算部のブロック構成図であり、図１２（Ａ）〜（Ｃ）は、本実施の形態３に係るデータパケットの構成と該データパケットの内容によりアクセスされるプログラム記憶領域の内容を示す図であり、図１３（Ａ）と（Ｂ）は、図１１の演算装置ＰＰＢｉの構成と動作を示す図である。
【００７７】
図１２（Ａ）の本実施の形態３に係るデータパケットは、図８（Ａ）のフィールド構成に追加して、データＦＯが格納されるフィールドＦ５３を有する。データＦＯは、図３の選択器２０４の出力するフラグデータを、強制的に、演算装置に入力されたフラグデータＦＢｉとするように作用する。データＦＯは、図１の入力部１００により、またはプログラム記憶部１０４におけるプログラムフェッチにより、データパケットに設定される。ここでは、データＦＯは、値“０”および“１”のいずれかを示す１ビットのデータであるが、ビット数はこれに限定されない。
【００７８】
図１２（Ｃ）には、プログラム記憶部１４Ｂにおけるデータフロープログラムが記憶されたプログラム記憶領域が示される。図示されるように、データフロープログラムは、次位の命令情報ＯＰ、行先情報ＤＮ、データＣＴＬおよびデータＦＯからなるプログラムデータを複数含む。プログラム記憶部１４Ｂは、図１２（Ａ）のデータパケットを入力すると、該入力データパケットの行先情報ＤＮに基づくアドレス指定により、プログラム記憶領域から次位の命令情報ＯＰ、行先情報ＤＮ、データＣＴＬおよびデータＦＯを読出して（プログラムフェッチして）、読出された情報のそれぞれを該入力データパケットのフィールドＦ１、Ｆ２、Ｆ５２およびＦ５３のそれぞれに格納して、該入力データパケットを出力する。これにより、データパケットにデータＦＯが付与される。なお、ここでは、データＦＯはプログラムフェッチによりデータパケットに付与されるとしているが、入力部１００においてデータパケットに付与されるようにしてもよい。
【００７９】
図１１の実施の形態３による演算部１３Ｂは、入出力バッファ１０ＢＩおよび１０ＢＯならびに演算装置ＰＰＢｉを有する。図１１の入出力バッファ１０ＢＩおよび１０ＢＯには、演算部１３Ｂに与えられた図１２（Ａ）のデータパケットの内容が入力されて、一次的に格納されて出力される。
【００８０】
図１３（Ａ）の演算装置ＰＰＢｉは、前述した演算器２０２および操作部３０１と、操作部４０１、選択器４０２および４０３を含む。演算器２０２と操作部３０１は前述したものと同様であり説明は省略する。
【００８１】
選択器４０２は演算器２０２の演算結果と、演算装置ＰＰＢｉに与えられるデータパケットのデータＬＤｉと、操作部４０１の出力データとを入力して、操作部４０１の出力データに基づいて、データＬＤｉと演算結果とのいずれかを選択して、データＤｉとして出力する。選択器４０３は演算装置ＰＰＢｉに与えられるフラグデータＦｂｉと、演算器２０２の出力する演算結果に基づくフラグデータと、操作部４０１の出力データとを入力して、操作部４０１の出力データに基づいて、入力した２つのフラグデータの一方を選択して、フラグデータＦＢｉとして出力する。
【００８２】
操作部４０１は操作部３０１の出力する値とデータＦＯとを入力する。そして、図１３（Ｂ）に示されるように、データＦＯの値に基づいて、操作部３０１から入力した値および０のいずれかを、選択器４０２と４０３に与える。選択器４０３には、操作部３０１の出力値が、図１３（Ｂ）のように操作部４０１により操作された後に与えられる。したがって、選択器４０３は、データＦＯが０である際には、操作部３０１の出力値に関わらず、該演算装置ＰＰＢｉが入力したフラグデータＦｂｉをそのままフラグデータＦＢｉとして出力し、データＦＯが１である際には、操作部３０１の出力値に基づいて、該演算装置ＰＰＢｉが入力したフラグデータＦｂｉと演算器２０２の演算結果に対応のフラグデータのいずれかをフラグデータＦＢｉとして出力することができる。
【００８３】
図１４（Ａ）と（Ｂ）は、同一処理に対する実施の形態２に係るデータフローグラフと本実施の形態３に係るデータフローグラフとを示す図である。この同一処理は、たとえば、データＤ１〜Ｄｎを有するデータパケットの各データＤｉに対して、しきい値ｂを超えるデータは２倍し、かつ１を足して出力し、しきい値ｂ以下のデータＤｉはそのまま出力するような処理である。この処理を、実施の形態２と本実施の形態３のデータ駆動型情報処理装置においてデータフロープログラムに従い実行する場合、対応するデータフローグラフはそれぞれ図１４（Ａ）と図１４（Ｂ）のようになる。
【００８４】
図１４（Ａ）と（Ｂ）ではノード４０４〜４１０が示される。ノード４０４と４０８では命令情報ＯＰにより示される命令コード（Ｄｉ＞ｂ？）が実行され、ノード４０５と４０９では命令情報ＯＰにより示される入力データの乗算命令コード（ＭＵＬ）に従う処理が実行され、ノード４０６では命令情報ＯＰにより示されるフラグデータＦＢｉのコピー命令コード（ｃｏｐｙ  ＦＢ）に従う処理が実行され、ノード４０７と４１０では、命令情報ＯＰにより示される入力データの加算命令コード（ＡＤＤ）に従う処理が実行される。
【００８５】
図１４（Ａ）に示される実施の形態２に係るデータフローグラフに従えば、まずノード４０４において、入力された図１２（Ａ）のデータパケットの各データＤｉは、しきい値ｂと比較されて、しきい値ｂより大きいデータＤｉに対応の該入力データパケットのフラグデータＦＢｉが１にされて、該入力データパケットはノード４０５に与えられる（図のデータｍ参照）。一方、しきい値ｂ以下のデータＤｉは、対応のフラグデータＦＢｉを０にされて、該入力データパケットはノード４０６に与えられる（図のデータｌ参照）。なお、ノード４０４では、入力データパケットのデータＣＴＬが０と設定されているため、フラグデータＦＢｉの値にかかわらず演算処理（入力データＤｉとしきい値ｂとの比較処理）が実行される。
【００８６】
ノード４０５では、ノード４０４から出力されたデータパケットを入力する。この際、該入力データパケットのフラグデータＦＢｉは１であり、またデータＣＴＬも１に設定されているため、該ノードに対応の命令情報ＯＰ（ＭＵＬ）に従う乗算処理が実行されて、入力データパケットのデータＤｉのそれぞれは２倍になって、該入力データパケットは次位のノード４０６に出力される（図のデータｐ参照）。この乗算処理では、直前の（ノード４０４の）演算結果を正しく反映させようとするために、データＣＴＬには予め１が設定されている。つまり、データＣＴＬが１と設定されることにより、演算部１３Ｂでは直前のフラグデータＦｂｉの値が参照される。
【００８７】
この場合は、フラグデータＦｂｉは“１”と設定されているため、演算部１３Ｂでは、演算器２０２から出力された演算結果に応じた値のフラグデータが、選択器３０３により選択されてフラグデータＦＢｉとして出力される。したがって、出力されるフラグデータＦＢｉの値が変化してしまうから、直前のノード４０４において設定されたフラグデータＦＢｉの値は失われてしまう。言換えると、直前の（ノード４０４の）演算結果を正しく反映させることができなくなってしまう。そこで、次位のノード４０６において、命令情報ＯＰ（ｃｏｐｙ  ＦＢ）に従う演算処理が実行されることにより、直前のノード４０４において設定されたフラグデータＦＢｉの値が保持される。つまり、ノード４０４で値が設定されて出力されたフラグデータＦＢｉを入力して、コピーして、該ノード４０６に入力されたデータパケットのフィールドＦ５１に格納した後、該入力データパケットは、次位のノード４０７に与えられる。
【００８８】
これにより、ノード４０５における命令情報ＯＰ（ＭＵＬ）に従う演算結果のデータＤｉを格納して該ノード４０５から出力されたデータパケット（図中のデータｐ参照）のフラグデータＦＢｉは、すべて１に戻される。一方のデータパケット（図中のデータｌ参照）のフラグデータＦＢｉの値は０のままである。
【００８９】
そして、次位のノード４０７において、与えられたデータパケットが入力されて、該入力データパケットの内容が命令情報ＯＰ（ＡＤＤ）に従って処理されることにより、対応のフラグデータＦＢｉが１であるデータＤｉには、すなわちノード４０５において乗算が実施されたデータＤｉには、１を足す処理が行なわれる。この際、演算結果を正しく反映させるために、データＣＴＬは予め１が設定されている。つまり、前のフラグデータＦｂｉの値を参照すると、この場合は、対応するフラグデータＦＢｉは１のため、選択器は３０３は演算器２０２の演算結果に応じた値のフラグデータを出力するからである。一方の入力データパケット（図のデータｌ参照）については、対応するフラグデータＦＢｉは０であるため、ノード４０７においては該入力データパケットのデータＤｉは加算処理が施されず、そのまま出力される。
【００９０】
次に、本実施の形態３によるプログラムを図１４（Ｂ）を参照して説明する。
まず、ノード４０８において命令情報ＯＰ（（Ｄｉ＞ｂ？）が実行されることにより、入力データパケットのデータＤｉとしきい値ｂとが大小比較される。ここでは、入力データパケットのデータＦＯは予め１と設定されているので、選択器４０３には操作部３０１の出力が、選択器４０１を介してそのまま入力される。そのため、前述した図１４（Ａ）のノード４０４の処理と同様な処理が行なわれる。つまり、ノード４０８において入力データパケットの各データＤｉは、しきい値ｂと比較されて、しきい値ｂより大きいデータＤｉは対応するフラグデータＦＢｉが１に設定され、一方、しきい値ｂ以下のデータＤｉは、対応のフラグデータＦＢｉが０に設定される。また、該入力データパケット中のデータＣＴＬは予め０と設定されているので、該データパケット中のフラグデータＦＢｉの値にかかわらず（無条件で）、しきい値ｂとデータＤｉとの大小比較処理が実行されて、比較結果を格納したデータパケット（図のデータｑ参照）は次位のノード４０９に与えられる。
【００９１】
ノード４０９では、与えられたデータパケットが入力されて、該入力データパケットの内容について命令情報ＯＰ（ＭＵＬ）に従う演算が実行される。これにより、該入力データパケットのデータＤｉを２倍にする乗算処理が実行される。この際、該入力データパケットのデータＣＴＬは予め１に設定されているので、該入力データパケットのフラグデータＦＢｉが参照される。
【００９２】
この参照結果、しきい値ｂ以下のデータＤｉに対応するフラグデータＦＢｉは０であるから、該データＤｉについてはノード４０９において命令情報ＯＰ（ＭＵＬ）に従う演算は行なわれず、該データＤｉはそのまま出力される。一方、前述の参照結果、しきい値ｂより大きいデータＤｉは、対応するフラグデータＦＢｉが１であるから、該データＤｉについてはノード４０９において命令情報ＯＰ（ＭＵＬ）に従い、２倍にする処理が実行される。ただし、このとき、入力データパケットのデータＦＯは予め０に設定されているため、選択器４０３には操作部３０１からの出力（１：前のフラグデータＦＢｉを参照）は入力されず、操作部４０１の出力（＝０）が入力される。すなわち、選択器４０３は図９（Ｂ）のデータＣＴＬが３に相当する場合の無条件の演算非実行となり、選択器４０３からは前のフラグデータＦｂｉがそのまま出力される。
【００９３】
一方、選択器４０２は、操作部３０１の信号が入力されるため、演算器２０２による演算結果（ここでは、２倍の乗算結果）を選択して、データＤｉとして出力する。このように、乗算命令（命令ＭＵＬ）に従う演算処理実行後の出力は、しきい値ｂ以下のデータＤｉはフラグデータＦＢｉが０であるため、乗算非実行で、すなわちそのままの値で出力される。一方、しきい値ｂより大きいデータＤｉは乗算され、かつ対応のフラグデータＦＢｉは変化せず、１のまま出力された状態となっている。
【００９４】
続いて、ノード４１０において加算命令（命令ＡＤＤ）に従う処理が実行されて入力データＤｉについて１が加算される。この際、複数の入力データＤｉの内しきい値ｂ以下のデータＤｉは、対応するフラグデータＦＢｉが０であるため、乗算処理が実行されず、そのままの値で出力される。一方、しきい値ｂより大きいので、乗算処理を経たデータＤｉは、前述したように対応のフラグデータＦＢｉが１となっているため、加算処理が行なわれた後、出力される。
【００９５】
ノード４１０では、ノード４０９と同じく入力データパケットのデータＣＴＬは１およびＦＯは０であるため、図１４（Ａ）のノード４０７と同じ加算処理（命令ＡＤＤに従う処理）が実行される。これにより、入力データＤｉについて加算が実行され、該入力データＤｉの対応するフラグデータＦＢｉとしては加算の演算処理結果が反映された演算器２０２出力のフラグデータが付与されて、該入力データパケットが出力される。
【００９６】
このように、複数の入力データＤｉのそれぞれをしきい値ｂと比較して、しきい値ｂ以下のデータＤｉはそのまま出力し、一方しきい値ｂより大きいデータＤｉについてはさらに２倍にし、かつ１を加算した後、出力することができた。
【００９７】
図１４（Ａ）と（Ｂ）のフローグラフを比較した場合、図１４（Ｂ）の実施の形態３に従う処理は、図１４（Ａ）の実施の形態２に従う処理におけるフラグデータＦＢｉのコピー処理（“ｃｏｐｙ  ＦＢ”に従う処理）が省略された分、同一内容の処理を行なう場合でも実施の形態２に比較して、実行すべきプログラムステップ数は減少して、データ駆動型情報処理装置における処理の速度ならびに効率は向上する。
【００９８】
実施の形態３では、上述したようにフラグデータＦＢｉを操作することにより、該フラグデータＦＢｉによる命令の実行または非実行の指定を、直後に実行される演算だけではなく、さらにその後に実行される複数の演算でも利用できる。そのため、フラグデータの保存（コピー）処理は省略されることになり、データ駆動型情報処理装置における処理効率の低下とプログラム量の増大を防ぐことができる。
【００９９】
（実施の形態４）
次に、実施の形態４について説明する。
【０１００】
本実施の形態４では、データパケット中の複数データＤｉのうち、演算処理が所望されるデータ（以下、有効データと呼ぶ）の数を示すデータＣＮＴ（ＣｏｕＮＴ）を用いて、該データＣＮＴのみにより、複数データＤｉにおける有効データＤｉの数が一意に指定されるとともに、有効データＤｉが一意に指定されることを特徴とする。
【０１０１】
つまり、データＣＮＴの値により、複数データＤｉ中の有効データＤｉの組合せが決定される。データＣＮＴは値ｎｘで示されて、値ｎｘは０、１、２、…、ｎのいずれかの値である。例えば値ｎｘが０であるとき、複数データＤｉには有効データＤｉは含まれないことが示される。また、例えば値ｎｘが１であるときはデータＤ１のみが有効データであり、例えば値ｎｘが２、３…、ｎのいずれかの値であるときは、データＤ１〜データＤｎｘのｎｘ個のデータが有効データとなる。
【０１０２】
図１５（Ａ）〜（Ｅ）は、本実施の形態４に係るデータパケットのフィールド構成と該データパケットの内容によりアクセスされるプログラム領域を示す図である。図１５（Ａ）は、命令情報ＯＰ、行先情報ＤＮ、世代番号ＧＮおよび複数のデータＤｉおよびデータＣＮＴが格納されるフィールドＦ１、Ｆ２、Ｆ３、Ｆ４およびＦ５４からなるデータパケットである。図１５（Ｂ）〜（Ｄ）は、前述した実施の形態１〜３のデータパケットのフィールド構成において、データＣＮＴが格納されるフィールドＦ５４が追加されている。
【０１０３】
本実施の形態４に係るデータ駆動型情報処理装置では、説明を簡単にするために図１５（Ｂ）のデータパケットを用いて情報処理すると想定する。
【０１０４】
図１５（Ｅ）には、本実施の形態４に係るデータ駆動型情報処理装置のプログラム記憶部１４Ｃにおけるデータフロープログラムが記憶されたプログラム記憶領域が示される。図示されるように、データフロープログラムは、次位の命令情報ＯＰ、行先情報ＤＮ、データＣＮＴからなるプログラムデータを複数含む。プログラム記憶部１４Ｃは、図１５（Ｂ）のデータパケットを入力すると、該入力データパケットの行先情報ＤＮに基づくアドレス指定により、プログラム記憶領域から次位の命令情報ＯＰ、次位の行先情報ＤＮおよびデータＣＮＴを読出して（プログラムフェッチして）、読出された情報のそれぞれを該入力データパケットのフィールドＦ１、Ｆ２、およびＦ５４のそれぞれに格納して、該入力データパケットを出力する。これにより、データパケットにデータＣＮＴが付与される。なお、ここでは、データＣＮＴはプログラムフェッチによりデータパケットに付与されるとしているが、入力部１００においてデータパケットに付与されるようにしてもよい。
【０１０５】
データＣＮＴは、対応するデータパケットのデータＤｉの最大数を示すビット長を有したデータであり、フィールドＦ５４は該ビット長を有する。
【０１０６】
図１６は、本実施の形態５に係る演算部１３Ｃの構成図であり、図１７（Ａ）と（Ｂ）は、図１６の演算装置ＰＰＣｉの構成と動作を説明するための図である。
【０１０７】
ここでは、実施の形態１の構成にデータＣＮＴに対応の構成が追加された場合を例示して説明する。なお、他の実施の形態にデータＣＮＴが適用された場合であっても、本実施の形態と同様にしてデータＣＮＴに対する構成が追加されることで、同様な処理を実行することができる。
【０１０８】
図１６において演算部１３Ｃには、入出力バッファ１０ＣＩおよび１０ＣＯならびに演算装置ＰＰＣｉが設けられる。入出力バッファ１０ＣＩおよび１０ＣＯには、演算部１３Ｃに与えられた図１５（Ｂ）のデータパケットのデータが入力されて、一時的に格納されて出力される。
【０１０９】
図１７（Ａ）では、前述と同様の演算器２０２、選択器５０３および５０４を含む。選択器５０３は、図３の選択器２０３が入力するデータに追加して、データＣＮＴを入力する。選択器５０３は、図１７（Ｂ）に示されるようにデータＣＮＴ≦ｎの場合には対応する演算器２０２の出力する演算結果を選択、そうでない場合は、演算装置ＰＰＣｉに与えられたデータＬＤｉを、データＤｉとして出力する。選択器５０４は、図３の選択器２０４が入力するデータに追加して、データＣＮＴを入力する。データＣＮＴ≦ｎの場合には演算器２０２の演算結果に応じたフラグデータを選択し、そうでない場合は、演算装置ＰＰＣｉに与えられた前のフラグデータＦｂｉを選択して、フラグデータＦＢｉとして出力する。
【０１１０】
ここで、データパケット中の各データＤｉが有効データであるか否かを示す場合には、従来のデータパケット（図１８（Ｄ）参照）では各データＤｉに対応してデータＶが必要とされるのに対し、本実施の形態４に係るデータパケットの構成（図１５（Ａ））の場合、データＣＮＴにより複数のデータＤｉ中の有効データの数が指定される。したがって、データパケット中のデータＤｉの数ｎが３以上の場合、本実施の形態４によれば従来に比較してデータパケットの長さを短縮できる。たとえば、ｎ＝３の場合、従来は、データパケットにおいてデータＶを格納するために３ビット長必要とされるが、本実施の形態４ではデータパケットにおいてデータＣＮＴを格納するために２ビット（最大値３を表わすための“１１”を示すことの可能なビット長）で済むため、従来に比較し１ビット分短縮できる。
【０１１１】
このように、本実施の形態４では有効なデータの数を数値で示すデータＣＮＴを用いることにより、１データパケット当りに格納されるデータＤｉの最大数が３個以上の場合、該データパケットの長さを従来に比較して短縮できる。それゆえ似、データ駆動型情報処理装置におけるパケット伝送路の幅を小さくできて、装置を小型化できる。
【０１１２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】  （Ａ）〜（Ｄ）は、この発明の各実施の形態に係るデータ駆動型情報処理装置のブロック構成と、データパケットのフィールド構成を示す図である。
【図２】  図１（Ａ）の演算部１３のブロック構成図である。
【図３】  図２の演算装置ＰＰｉのブロック構成図である。
【図４】  図３の演算器のブロック構成図である。
【図５】  （Ａ）〜（Ｄ）は、図４の各演算回路の出力を表形式にして示す図である。
【図６】  （Ａ）と（Ｂ）は、所定処理に対する従来のデータフローグラフとこの発明の実施の形態１に係るデータフローグラフとを示す図である。
【図７】  本実施の形態２に係る演算部１３Ａのブロック構成図である。
【図８】  （Ａ）〜（Ｃ）は、本実施の形態２に係るデータパケットの構成と該データパケットによりアクセスされるプログラム記憶部の構成を示す図である。
【図９】  （Ａ）と（Ｂ）は、図７の演算装置ＰＰＡｉの構成と動作を示す図である。
【図１０】  （Ａ）と（Ｂ）は、同一の処理に対する実施の形態１に係るデータ駆動型情報処理装置で実行されるデータフロープログラムに対応のデータフローグラフと、本実施の形態２に係るデータ駆動型情報処理装置で実行されるデータフロープログラムに対応のデータフローグラフを示す図である。
【図１１】  本実施の形態３に係る演算部のブロック構成図である。
【図１２】  （Ａ）〜（Ｃ）は、本実施の形態３に係るデータパケットの構成と該データパケットの内容によりアクセスされるプログラム記憶領域の内容を示す図である。
【図１３】  （Ａ）と（Ｂ）は、図１１の演算装置ＰＰＢｉの構成と動作を示す図である。
【図１４】  （Ａ）と（Ｂ）は、同一処理に対する実施の形態２に係るデータフローグラフと本実施の形態３に係るデータフローグラフとを示す図である。
【図１５】  （Ａ）〜（Ｅ）は、本実施の形態４に係るデータパケットのフィールド構成と該データパケットの内容によりアクセスされるプログラム領域を示す図である。
【図１６】  本実施の形態５に係る演算部１３Ｃの構成図である。
【図１７】  （Ａ）と（Ｂ）は、図１６の演算装置ＰＰＣｉの構成と動作を説明するための図である。
【図１８】  （Ａ）〜（Ｄ）は、従来のデータ駆動型情報処理装置とデータパケットの構成を示す図である。
【符号の説明】
１００  入力部、１０１  分岐部、１０２  対データ検出部、１０３，１３，１３Ａ，１３Ｂ，１３Ｃ  演算部、１０４，１４，１４Ａ，１４Ｂ，１４Ｃ  プログラム記憶部、１０５  分岐部。
【図１】
0003769445.tif 000002
【図２】
0003769445.tif 000003
【図３】
0003769445.tif 000004
【図４】
0003769445.tif 000005
【図５】
0003769445.tif 000006
【図６】
0003769445.tif 000007
【図７】
0003769445.tif 000008
【図８】
0003769445.tif 000009
【図９】
0003769445.tif 000010
【図１０】
0003769445.tif 000011
【図１１】
0003769445.tif 000012
【図１２】
0003769445.tif 000013
【図１３】
0003769445.tif 000014
【図１４】
0003769445.tif 000015
【図１５】
0003769445.tif 000016
【図１６】
0003769445.tif 000017
【図１７】
0003769445.tif 000018
【図１８】
0003769445.tif 000019