(57)【特許請求の範囲】
【請求項１】
少なくとも１つ以上の情報処理手段を含む処理部と、前記処理部の入力段に設けられたデータ供給部とを備えたデータ駆動型情報処理装置において、
前記情報処理手段は、
少なくとも行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するデータフィールドからなるデータパケットを入力し、該入力データパケットの前記命令フィールドの前記命令情報が所定命令情報であるとき該入力データパケットをそのまま出力し、前記所定命令情報でないとき対となるデータパケットの待ち合せを行ない、前記行先フィールドの前記行先情報が一致する互いに対となる２つのデータパケットのうち一方のデータパケットの前記データフィールドの内容を他方のデータパケットの前記データフィールドに追加格納して、その他方のデータパケットを出力するデータ対生成手段と、
前記データ対生成手段から出力される前記データパケットを入力し、該入力データパケットの前記命令フィールドの前記命令情報を解読し、該入力データパケットの前記データフィールドの内容に対して所定の演算処理を施し、その結果を該入力データパケットの前記データフィールドに格納して出力する演算手段と、
前記演算手段が前記所定の演算処理結果を格納したデータパケットを出力するとき、前記所定の演算処理の結果に基づく条件コードを出力するフラグ判定手段と、
少なくとも次位の行先情報と次位の命令情報とこれら両情報の有効／無効を示す第１有効／無効情報とを含む第１情報セットを同一プログラムワード内に２つ以上有する第１データフロープログラムが予め記憶され、前記演算手段からデータパケットを入力すると共に前記フラグ判定手段から前記条件コードを入力し、該入力データパケットの前記行先フィールドの内容に基づく第１アドレス指定を行なって第１データフロープログラムから１つのプログラムワードを読出し、読出した前記プログラムワードが有する２つ以上の前記第１情報セットの中に第１所定条件を満たす前記第１情報セットがある場合は、前記第１所定条件を満たす各第１情報セットに対応してデータパケットを生成し、各生成データパケットの前記行先フィールドおよび前記命令フィールドのそれぞれに、対応する前記第１情報セットの前記次位の行先情報および前記次位の命令情報のそれぞれを格納するとともに、各生成データパケットの前記データフィールドに前記入力データパケットの前記データフィールドの内容を格納して、各生成データパケットを出力し、読出した前記プログラムワードが有する２つ以上の前記第１情報セットの中に前記第１所定条件を満たす第１情報セットがない場合は、データパケットは生成せずにパケット消去を行なう第１プログラム記憶手段と、を備え、
前記データ供給部は、
少なくとも次位の行先情報と次位の命令情報とこれら両情報の有効／無効を示す第２有効／無効情報とを含む第２情報セットを同一プログラムワード内に２つ以上有する第２データフロープログラムが予め記憶され、少なくとも前記行先フィールドおよび前記データフィールドからなる第２データパケットと分岐処理のための分岐コードとを入力し、該入力第２データパケットの前記行先フィールドの内容に基づく第２アドレス指定を行なって前記第２データフロープログラムから１つのプログラムワードを読出し、読出した前記プログラムワードが有する２つ以上の前記第２情報セットの中に第２所定条件を満たす前記第２情報セットがある場合は、前記第２所定条件を満たす前記第２情報セットに対してデータパケットを生成し、各生成データパケットの前記行先フィールドおよび前記命令フィールドのそれぞれに、対応する前記第２情報セットの前記次位の行先情報および前記次位の命令情報のそれぞれを格納するとともに、各生成データパケットの前記データフィールドに前記入力第２データパケットの前記データフィールドの内容を格納して、各生成データパケットを出力し、読出した前記プログラムワードが有する２つ以上の前記第２情報セットの中に前記第２所定条件を満たす前記第２情報セットがない場合は、データパケットは生成せずにパケット消去を行なう第２プログラム記憶手段を備え、
前記第１所定条件は、
前記第１アドレス指定により読出された前記プログラムワードが有する２つ以上の前記第１情報セットの内、前記条件コードの値に対応し且つ前記第１有効／無効情報が有効である前記第１情報セットのみを選択するための条件であり、
前記第２所定条件は、
前記第２アドレス指定により読出された前記プログラムワードが有する２つ以上の前記第２情報セットの内、前記分岐コードの値に対応し且つ前記第２有効／無効情報が有効である前記第２情報セットのみを選択するための条件であることを特徴とする、データ駆動型情報処理装置。
【請求項２】
前記分岐コードは少なくとも２つ以上のフラグからなり、該フラグの数は前記第２アドレス指定により読出される前記プログラムワード中の前記第２情報セット数に相当することを特徴とする、請求項１に記載のデータ駆動型情報処理装置。
【請求項３】
前記条件コードは少なくとも２つ以上のフラグからなり、該フラグの数は前記第１アドレス指定により読出される前記プログラムワード中の前記第１情報セット数に相当することを特徴とする、請求項１または２に記載のデータ駆動型情報処理装置。
【請求項４】
少なくとも行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するデータフィールドからなるデータパケットを入力し、該入力データパケットの前記命令フィールドの前記命令情報が所定命令情報であるとき該入力データパケットをそのまま出力し、前記所定命令情報でないとき対となるデータパケットの待ち合せを行ない、前記行先フィールドの前記行先情報が一致する互いに対となる２つのデータパケットのうち一方のデータパケットの前記データフィールドの内容を他方のデータパケットの前記データフィールドに追加格納して、その他方のデータパケットを出力するデータ対生成手段と、
前記データ対生成手段から出力される前記データパケットを入力し、該入力データパケットの前記命令フィールドの前記命令情報を解読し、該入力データパケットの前記データフィールドの内容に対して所定の演算処理を施し、その結果を該入力データパケットのデータフィールドに格納して出力する演算手段と、
前記演算手段が前記所定の演算処理の結果を格納したデータパケットを出力するとき、前記所定の演算処理の結果に基づく条件コードを出力するフラグ判定手段と、
少なくとも次位の行先情報と次位の命令情報とこれら両情報の有効／無効を示す有効／無効情報とを含む情報セットを同一のプログラムワード内に２つ以上有するデータフロープログラムが予め記憶され、前記演算手段からデータパケットを入力すると共に前記フラグ判定手段から前記条件コードを入力し、該入力データパケットの前記行先フィールドの内容に基づくアドレス指定を行なって前記データフロープログラムから１つのプログラムワードを読出し、読出した前記プログラムワードが有する２つ以上の前記情報セットの中に所定条件を満たす前記情報セットがある場合は、前記所定条件を満たす各情報セットに対応してデータパケットを生成し、各生成データパケットの前記行先フィールドおよび前記命令フィールドのそれぞれに、対応する前記情報セットの前記次位の行先情報および前記次位の命令情報をそれぞれ格納するとともに、各生成データパケットの前記データフィールドに前記入力データパケットの前記データフィールドの内容を格納して、各生成データパケットを出力し、読出した前記プログラムワードが有する２つ以上の前記情報セットの中に前記所定条件を満たす前記情報セットがない場合は、データパケットは生成せずにパケット消去を行なうプログラム記憶手段とを備え、
前記所定条件は、
前記アドレス指定により読出された前記プログラムワードが有する２つ以上の前記情報セットの内、前記条件コードの値に対応し且つ前記有効／無効情報が有効である前記情報セットのみを選択するための条件であることを特徴とする、データ駆動型情報処理装置。
【請求項５】
前記条件コードは、少なくとも２つ以上のフラグからなり、該フラグの数は前記アドレス指定により読出される前記プログラムワード中の前記情報セット数に相当することを特徴とする、請求項４に記載のデータ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明はデータ駆動型情報処理装置に関し、特に、プログラムデータの読出機能を改良してプログラム実行効率を向上させるデータ駆動型情報処理装置に関する。
【０００２】
【従来の技術】
情報の高速処理を実現するために並列処理が採用される。並列処理向けアーキテクチャの中でもデータ駆動型と呼ばれるものが特に注目される。
【０００３】
データ駆動型プロセッサでは、「ある処理に必要な入力データがすべて揃い、かつその処理に必要な演算装置などの資源が割当てられたときに処理が行なわれる」という規則にしたがって処理が進行する。
【０００４】
図２６は従来のデータ駆動型プロセッサのブロック構成図である。
図２７は従来およびこの発明の実施例に適用されるデータパケットのフォーマット図である。
【０００５】
図２７においてデータパケットは行先ノード番号ＮＤ♯を格納するための行先ノード番号領域Ｆ１、世代番号ＧＮ♯を格納するための世代番号領域Ｆ２、命令コードＯＰＣを格納するための命令コード領域Ｆ３およびデータＤＡＴＡを格納するためのデータ領域Ｆ４を含む。
【０００６】
図２６においてデータ駆動型プロセッサＰｅは合流部ＪＮＣ、発火制御部ＦＣ、演算部ＦＰＰ、プログラム記憶部ＰＳＰ、分岐部ＢＲＮ、複数個のラッチ部および複数個のＣ（Ｃｎ）素子（パケット転送回路）を含む。
【０００７】
図２８はプログラム記憶部ＰＳＰのブロック構成図である。プログラム記憶部ＰＳＰはプログラムメモリ２００、アドレス生成およびアクセス部２０１およびコピー判定部２０２を含む。
【０００８】
図２９は、図２８のプログラムメモリ２００の内容を部分的に示す図である。
プログラムメモリ２００には予め複数のプログラムワードセットＷからなるデータフロープログラムが格納される。各プログラムワードセットＷは次位のノード番号ＮＤ♯、次位の命令コードＯＰＣおよびコピーフラグｃｐｙからなる。
【０００９】
各Ｃ素子は、前段および後段のＣ素子とのパケット転送パルスのやり取りによって対応する処理部についてのパケット転送を制御する。
【００１０】
パケット転送パルスは、センド信号ＳＤおよびアック信号ＡＫの２種類の信号からなる。センド信号ＳＤは前段のＣ素子から後段のＣ素子へ転送される。センド信号ＳＤはその立下がりにより前段の処理部がパケット転送可能であることを示す。
【００１１】
アック信号ＡＫは後段のＣ素子より前段のＣ素子へ転送される。アック信号ＡＫがレベル“１”であれば後段の処理部はパケット受入れ可能であることを示す。
【００１２】
したがって、２信号がレベル“１”の状態を保っているときは、パケットが存在していないことを示す。
【００１３】
各ラッチ部は対応のＣ素子からのパルス入力に応じて、前段の処理部より入力されているデータを取込んで保持して出力段に導出し、次のパルス入力までこれを保持する。
【００１４】
図２６においてプロセッサＰｅに図２７のデータパケットが入力されると、入力パケットはまず合流部ＪＮＣを通り、発火制御部ＦＣに伝達され、行先ノード番号ＮＤ♯と世代番号ＧＮ♯が同一のパケットの間で対データが形成される。すなわち、ノード番号ＮＤ♯と世代番号ＧＮ♯が一致する異なる２つのデータパケットの検出を行ない、両番号が一致する２つのデータパケットのうち一方のデータパケットのデータＤＡＴＡを他方のデータパケットのデータ領域Ｆ４に追加格納して、この他方データパケットを出力する。
【００１５】
データ領域Ｆ４に対データ（１組のデータＤＡＴＡ）を格納したパケットは次に演算部ＦＰＰへ伝達される。
【００１６】
演算部ＦＰＰは伝達されるデータパケットを入力し、該入力パケットの命令コードＯＰＣに基づいて該入力パケットの内容に対し所定演算を行なって、演算結果を該入力パケットのデータ領域Ｆ４に格納する。該入力パケットは次にプログラム記憶部ＰＳＰに伝達される。
【００１７】
プログラム記憶部ＰＳＰは伝達されるデータパケットを入力し、プログラムメモリ２００より次位のデータをフェッチする。
【００１８】
このプログラムデータのフェッチは、図２８に示されるように、アドレス生成およびアクセス部２０１が入力パケットの行先ノード番号ＮＤ♯からアドレスａｄｒを生成し、アドレスａｄｒに基づくアドレス指定によりプログラムメモリ２００をアクセスし、対応のプログラムワードセットＷを読出す。そして、読出されたワードセットＷ中の行先ノード番号ＮＤ♯および命令コードＯＰＣが該入力パケットの行先ノード番号領域Ｆ１および命令コード領域Ｆ３にそれぞれ格納される。
【００１９】
さらに、このとき、読出されたワードセットＷに対応のコピーフラグｃｐｙが“１”であれば、次位アドレスも有効と判断されて、次位アドレス指定により同様に次位アドレスの行先ノード番号ＮＤ♯および命令コードＯＰＣが該入力パケットに格納される。
【００２０】
したがって、コピーフラグｃｐｙが“１”であるとき、該アドレスと次位アドレスのプログラムワードセットＷに関する２つのパケットが生成されて出力される（パケットコピーという）。コピーフラグｃｐｙが“０”であるとき、該アドレスに関する１つのパケットのみが出力される。
【００２１】
パケットコピーは、読出されたコピーフラグｃｐｙをコピー判定部２０２が判定し対応のＣｎ素子にコピー要求信号ＣＲ（＝１）を送る。
【００２２】
コピー要求信号ＣＲを受けたＣｎ素子は、最初のパケット転送のためのパルスを対応のラッチ部に出力したのちに、ネクストイネーブル信号ＮＥをアドレス生成およびアクセス部２０１に出力する。
【００２３】
その後、適当な時間経過後、Ｃｎ素子はパケット転送のためのパルスを対応のラッチ部に出力するので、アドレス生成およびアクセス部２０１がネクストイネーブル信号ＮＥを受けてアドレスを１インクリメントしてアクセスしたデータ、つまり次のアドレスに格納されているプログラムワードセットＷがラッチされて、パケットがもう１つ転送される。
【００２４】
プログラム記憶部ＰＳＰで出力されるパケットは分岐部ＢＲＮへ伝達され、その行先ノード番号ＮＤ♯などに基づいて出力されるか、または再度プロセッサ内部に戻される。
【００２５】
上述したようなデータ駆動型プロセッサＰｅにおいて複数の命令のうち１つを選択するような分岐処理が実行されるときには、特開平５−１７４１６７号公報に開示されるような命令コードＳＷＮが使用される。この命令コードＳＷＮを用いると、演算部ＦＰＰにおいて入力パケットの行先ノード番号ＮＤ♯が操作されることにより次段のプログラム記憶部ＰＳＰにおけるプログラムメモリ２００のアクセス時に、操作後の行先ノード番号ＮＤ♯に基づくアドレス指定がなされるので、複数のプログラムワードセットＷのうちから１つを選択的にアクセスできるといわれている。
【００２６】
図３０は、従来の命令コードＳＷＮを用いた選択構造を含むフローグラフである。
【００２７】
図３１は、図３０のフローグラフに対するプログラムメモリ２００の内容を示す図である。
【００２８】
図３２は、図３０のフローグラフに従う処理実行時の途中経過を表形式にして説明する図である。
【００２９】
図３０のフローグラフは命令コードが割当てられたノードｎ１〜ｎ８を含む。命令コードＡＤＤは該ノードへの右入力データと左入力データの加算結果の出力を示す。命令コードＥＱは該ノードの左入力データ＝右入力データ（図３０の場合＝０）ならば１を出力し、左入力データ≠右入力データならば０を出力することを示す。命令コードＧＥは該ノードの左入力データ≧右入力データならば１を出力し、左入力データ＜右入力データならば０を出力することを示す。命令コードＳＷＮは該ノードの右入力データの行先ノード番号ＮＤ♯に左入力データを加算し、加算後の行先ノード番号ＮＤ♯に従って出力が分岐することを示す。
【００３０】
図３０のフローグラフは、ノードｎ１の命令コードＡＤＤに従う加算結果＜０ならばノードｎ６の命令コードＯｐｒ０が選択され、同様に＞０ならばノードｎ７の命令コードＯｐｒ１が選択され、同様に＝０ならばノードｎ８の命令コードＯｐｒ２が選択される処理を示す。
【００３１】
図３０のグラフに従うプログラムを実行するときの合流部ＪＮＣ、発火制御部ＦＣおよび分岐部ＢＲＮの動作は前述したものと同じなので説明を省略し、演算部ＦＰＰおよびプログラム記憶部ＰＳＰの動作について説明する。
【００３２】
ノードｎ１の行先ノード番号ＮＤ１および命令コードＡＤＤを格納したパケットが演算部ＦＰＰに入力されると、演算部ＦＰＰでは該入力パケットのデータ領域Ｆ４の対データ（ノードｎ１の右入力データと左入力データ）が加算されて、加算結果値がデータ領域Ｆ４に格納されて、該入力パケットはプログラム記憶部ＰＳＰに転送される。
【００３３】
次にプログラム記憶部ＰＳＰでは伝達されるパケットを入力し、図３１に示されるように該入力パケットの行先ノード番号ＮＤ１に基づくアドレス指定により次位の行先ノード番号ＮＤ２および次位の命令コードＥＱをフェッチする。このとき、フェッチされる対応のコピーフラグｃｐｙ＝１なので、次位アドレスも有効となり、次位の行先ノード番号ＮＤ３および命令コードＧＥがフェッチされ、さらに対応のコピーフラグｃｐｙ＝１なので次位の行先ノード番号ＮＤ５および命令コードＳＷＮがフェッチされる。これによりフェッチされた次位のデータと加算結果を格納した３つのデータパケットがノードｎ２、ｎ３およびｎ５へと転送される。
【００３４】
ノードｎ２においては入力パケット中の加算結果＝０であれば出力データは１となり、加算結果≠０であれば出力データは０となる。
【００３５】
ノードｎ３においては入力パケット中の加算結果＜０であれば出力データは０となり、加算結果≧０であれば出力データは１となる。
【００３６】
これにより、ノードｎ１の加算結果とノードｎ４の左入力データおよび右入力データの関係、そしてｎ４で得られる結果（出力データ）は図３２で示されるようになる。
【００３７】
図３２を参照するとノードｎ５において、ノードｎ１の結果が正ならば左入力データの行先アドレスに１のオフセットが加わり、同様に０ならば２が加わり、同様に負ならば０が加わることがわかる。
【００３８】
よって、演算部ＦＰＰにおいて、命令コードＯＰＣにコードＳＷＮおよび行先ノード番号ＮＤ♯にノード番号ＮＤ５を有するパケットは、ノード番号ＮＤ５に右データ（ノードｎ４の結果値）のオフセットが加えられるので、プログラム記憶部ＰＳＰにおいて、オフセット加算後のノード番号ＮＤ♯にてメモリ２００のアクセスが行なわれる。このように、この公報によれば命令コードＳＷＮの１命令によりノードｎ６〜ｎ８のいずれか１つを選択する分岐処理が行なわれるといわれている。
【００３９】
ところで、前述した説明ではコピーフラグｃｐｙに従うパケットコピーがプログラムの途中で行なわれていたが、これがプログラムの先頭で行なわれる場合は以下のように処理される。
【００４０】
図３３（ａ）〜（ｃ）は、従来のパケットコピーがプログラムの先頭で行なわれる場合の処理手順を説明するための図である。
【００４１】
前述したようにコピーフラグｃｐｙに従うパケットコピーはプログラム記憶部ＰＳＰにて行なわれるので、プログラムの先頭でパケットコピーが行なわれるときは、図３３（ａ）に示されるように命令コードＮＯＰ（演算を一切行なわずプロセッサを通過する命令）をフローグラフの先頭ノードに設定し、プログラムメモリ２００に図３３（ｂ）の内容を格納し、図３３（ｃ）のデータパケットを最初に入力し、ＮＯＰ命令実行後プロセッサＰｅを通過させて再入力するようにしていた。
【００４２】
【発明が解決しようとする課題】
上述した従来の選択構造を含むプログラムの実行制御方式では、図３０に示されるように選択制御信号を作成するのに多段の命令ノードを必要とした。そのため、実行命令数が増加して、データフロープログラムの実行効率を上げることが困難であった。
【００４３】
また、プログラムの先頭でパケットコピーが行なわれるような処理が実行される場合、従来はＮＯＰの命令を実行して、１回プロセッサを通過させなければならず、無駄な周回パケットが発生してプログラムの実行効率を上げることが困難であった。
【００４４】
それゆえにこの発明の目的はプログラムを効率よく実行可能なデータ駆動型情報処理装置を提供することである。
【００４５】
【課題を解決するための手段】
この発明のある局面に従う、少なくとも１つ以上の情報処理手段を含む処理部と、前記処理部の入力段に設けられたデータ供給部とを備えたデータ駆動型情報処理装置では、
前記情報処理手段は、
少なくとも行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するデータフィールドからなるデータパケットを入力し、該入力データパケットの前記命令フィールドの前記命令情報が所定命令情報であるとき該入力データパケットをそのまま出力し、前記所定命令情報でないとき対となるデータパケットの待ち合せを行ない、前記行先フィールドの前記行先情報が一致する互いに対となる２つのデータパケットのうち一方のデータパケットの前記データフィールドの内容を他方のデータパケットの前記データフィールドに追加格納して、その他方のデータパケットを出力するデータ対生成手段と、
前記データ対生成手段から出力される前記データパケットを入力し、該入力データパケットの前記命令フィールドの前記命令情報を解読し、該入力データパケットの前記データフィールドの内容に対して所定の演算処理を施し、その結果を該入力データパケットの前記データフィールドに格納して出力する演算手段と、
前記演算手段が前記所定の演算処理結果を格納したデータパケットを出力するとき、前記所定の演算処理の結果に基づく条件コードを出力するフラグ判定手段と、
少なくとも次位の行先情報と次位の命令情報とこれら両情報の有効／無効を示す第１有効／無効情報とを含む第１情報セットを同一プログラムワード内に２つ以上有する第１データフロープログラムが予め記憶され、前記演算手段からデータパケットを入力すると共に前記フラグ判定手段から前記条件コードを入力し、該入力データパケットの前記行先フィールドの内容に基づく第１アドレス指定を行なって第１データフロープログラムから１つのプログラムワードを読出し、読出した前記プログラムワードが有する２つ以上の前記第１情報セットの中に第１所定条件を満たす前記第１情報セットがある場合は、前記第１所定条件を満たす各第１情報セットに対応してデータパケットを生成し、各生成データパケットの前記行先フィールドおよび前記命令フィールドのそれぞれに、対応する前記第１情報セットの前記次位の行先情報および前記次位の命令情報のそれぞれを格納するとともに、各生成データパケットの前記データフィールドに前記入力データパケットの前記データフィールドの内容を格納して、各生成データパケットを出力し、読出した前記プログラムワードが有する２つ以上の前記第１情報セットの中に前記第１所定条件を満たす第１情報セットがない場合は、データパケットは生成せずにパケット消去を行なう第１プログラム記憶手段と、を備え、
前記データ供給部は、
少なくとも次位の行先情報と次位の命令情報とこれら両情報の有効／無効を示す第２有効／無効情報とを含む第２情報セットを同一プログラムワード内に２つ以上有する第２データフロープログラムが予め記憶され、少なくとも前記行先フィールドおよび前記データフィールドからなる第２データパケットと分岐処理のための分岐コードとを入力し、該入力第２データパケットの前記行先フィールドの内容に基づく第２アドレス指定を行なって前記第２データフロープログラムから１つのプログラムワードを読出し、読出した前記プログラムワードが有する２つ以上の前記第２情報セットの中に第２所定条件を満たす前記第２情報セットがある場合は、前記第２所定条件を満たす前記第２情報セットに対してデータパケットを生成し、各生成データパケットの前記行先フィールドおよび前記命令フィールドのそれぞれに、対応する前記第２情報セットの前記次位の行先情報および前記次位の命令情報のそれぞれを格納するとともに、各生成データパケットの前記データフィールドに前記入力第２データパケットの前記データフィールドの内容を格納して、各生成データパケットを出力し、読出した前記プログラムワードが有する２つ以上の前記第２情報セットの中に前記第２所定条件を満たす前記第２情報セットがない場合は、データパケットは生成せずにパケット消去を行なう第２プログラム記憶手段を備え、
前記第１所定条件は、
前記第１アドレス指定により読出された前記プログラムワードが有する２つ以上の前記第１情報セットの内、前記条件コードの値に対応し且つ前記第１有効／無効情報が有効である前記第１情報セットのみを選択するための条件であり、
前記第２所定条件は、
前記第２アドレス指定により読出された前記プログラムワードが有する２つ以上の前記第２情報セットの内、前記分岐コードの値に対応し且つ前記第２有効／無効情報が有効である前記第２情報セットのみを選択するための条件であることを特徴とする。
好ましくは、前記分岐コードは少なくとも２つ以上のフラグからなり、該フラグの数は前記第２アドレス指定により読出される前記プログラムワード中の前記第２情報セット数に相当することを特徴とする。
好ましくは、前記条件コードは少なくとも２つ以上のフラグからなり、該フラグの数は前記第１アドレス指定により読出される前記プログラムワード中の前記第１情報セット数に相当することを特徴とする。
この発明の他の局面に従うデータ駆動型情報処理装置は、少なくとも行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するデータフィールドからなるデータパケットを入力し、該入力データパケットの前記命令フィールドの前記命令情報が所定命令情報であるとき該入力データパケットをそのまま出力し、前記所定命令情報でないとき対となるデータパケットの待ち合せを行ない、前記行先フィールドの前記行先情報が一致する互いに対となる２つのデータパケットのうち一方のデータパケットの前記データフィールドの内容を他方のデータパケットの前記データフィールドに追加格納して、その他方のデータパケットを出力するデータ対生成手段と、
前記データ対生成手段から出力される前記データパケットを入力し、該入力データパケットの前記命令フィールドの前記命令情報を解読し、該入力データパケットの前記データフィールドの内容に対して所定の演算処理を施し、その結果を該入力データパケットのデータフィールドに格納して出力する演算手段と、
前記演算手段が前記所定の演算処理の結果を格納したデータパケットを出力するとき、前記所定の演算処理の結果に基づく条件コードを出力するフラグ判定手段と、
少なくとも次位の行先情報と次位の命令情報とこれら両情報の有効／無効を示す有効／無効情報とを含む情報セットを同一のプログラムワード内に２つ以上有するデータフロープログラムが予め記憶され、前記演算手段からデータパケットを入力すると共に前記フラグ判定手段から前記条件コードを入力し、該入力データパケットの前記行先フィールドの内容に基づくアドレス指定を行なって前記データフロープログラムから１つのプログラムワードを読出し、読出した前記プログラムワードが有する２つ以上の前記情報セットの中に所定条件を満たす前記情報セットがある場合は、前記所定条件を満たす各情報セットに対応してデータパケットを生成し、各生成データパケットの前記行先フィールドおよび前記命令フィールドのそれぞれに、対応する前記情報セットの前記次位の行先情報および前記次位の命令情報をそれぞれ格納するとともに、各生成データパケットの前記データフィールドに前記入力データパケットの前記データフィールドの内容を格納して、各生成データパケットを出力し、読出した前記プログラムワードが有する２つ以上の前記情報セットの中に前記所定条件を満たす前記情報セットがない場合は、データパケットは生成せずにパケット消去を行なうプログラム記憶手段とを備え、
前記所定条件は、
前記アドレス指定により読出された前記プログラムワードが有する２つ以上の前記情報セットの内、前記条件コードの値に対応し且つ前記有効／無効情報が有効である前記情報セットのみを選択するための条件であることを特徴とする。
好ましくは、前記条件コードは、少なくとも２つ以上のフラグからなり、該フラグの数は前記アドレス指定により読出される前記プログラムワード中の前記情報セット数に相当することを特徴とする。
【００７０】
【作用】
請求項１に記載のデータ駆動型情報処理装置によれば、データ供給部にてデータパケットの生成の処理および第２データパケットの消去処理に係る命令が実行されてから第２データフロープログラムがデータパケットにして処理部に供給されるので、データ供給部にて予め実行された命令分、処理部の各情報処理手段における第１データフロープログラムステップが削減されて、実行命令数が削減される。
各情報処理手段のプログラム記憶手段の第１アドレス指定による次位の各第１データフロープログラム（各第１情報セット）の読出しは第１所定条件の設定により任意に制御できる。これにより、各情報処理手段の実行命令数の削減は第１所定条件により任意に制御できる。
各情報処理手段のプログラム記憶手段による各第１データフロープログラム（各第１情報セット）の読出しは第１有効／無効情報と条件コードの設定により制御できる。
これにより、前述のデータパケットコピー処理およびデータパケット消去処理に加えて、選択的な第１データフロープログラムの読出しが可能となって、その分、各情報処理手段における実行命令数が削減される。
【００７１】
また、データ供給部による処理部へのデータパケットを用いた第２データフロープログラムの供給は、第２所定条件の設定により任意に制御できる。
【００７２】
これにより、実行命令数の削減は第２所定条件の設定内容により調整可能となる。
【００７３】
また、データ供給部による処理部への第２データフロープログラムの供給は、データ供給時に第２アドレス指定されて読出される第２データフロープログラム中のプログラムワード中の各第２情報セットに対応の第２有効／無効情報の設定により任意に制御できる。
【００７４】
これにより、第２アドレス指定されて読出される第２有効／無効情報が２つ以上有効であるときは複数のデータパケットの供給、すなわちデータパケットコピー処理が行なわれ、すべて無効であるときはデータパケットが供給されない、すなわちデータパケットの消去処理が行なわれることになって、その分、処理部の各情報処理手段における実行命令数が削減される。
【００７５】
また、データ供給部による処理部への第２データフロープログラムの供給は、前述の第２有効／無効情報と分岐コードの設定により任意に制御できる。
【００７６】
これにより、前述のデータパケットコピー処理およびデータパケット消去処理に加えて、選択的な第２データフロープログラム供給が可能となって、その分、処理部の各情報処理手段における実行命令数が削減される。
【００７７】
請求項２に記載のデータ駆動型情報処理装置によれば、請求項１に係る装置のデータ供給部の処理部への第２データフロープログラムの供給時に用いられる分岐コードは、第２アドレス指定により読出されるプログラムワード中の第２情報セットのそれぞれに対応のフラグからなる。
【００７８】
これにより、各フラグの設定を用いて供給すべき第２データフロープログラム（第２情報セット）を選択指定できる。
【００７９】
したがって、データ供給部のプログラム読出時点で選択構造処理の実行が可能となって、その分、処理部の各情報処理手段における実行命令数が削減される。
【００８６】
請求項３に記載のデータ駆動型情報処理装置によれば、請求項１または２に係る装置の第１データフローデータプログラム読出時に用いられる条件コードは、第１アドレス指定により読出されるプログラムワード中の第１情報セットのそれぞれに対応のフラグからなる。
【００８７】
これにより、各フラグの設定を用いて、読出すべき第１データフロープログラム（第１情報セット）を選択指定できる。
【００８８】
したがって、プログラム記憶部のプログラム読出時点で、選択構造処理の実行が可能となって、その分、処理部の各情報処理手段における実行命令数が削減される。
【００８９】
請求項４に記載のデータ駆動型情報処理装置によれば、プログラム記憶手段におけるデータフロープログラム読出しは、アドレス指定されたプログラムワード中の各情報セットに対応の有効／無効情報の設定により制御できる。
【００９０】
これにより、アドレス指定されたプログラムワード中の有効／無効情報をすべて無効に設定すればデータパケットは出力されない、すなわちデータパケット消去処理が行なわれ、２つ以上を有効に設定すれば２つ以上のデータパケットが出力される、すなわちデータパケットコピー処理が行なわれる。
【００９１】
したがって、プログラム記憶手段におけるデータフロープログラム読出時において、データパケット消去処理ならびに１アドレス指定によるデータパケットコピー処理が可能となって、装置における実行命令数が削減される。
【００９２】
プログラム記憶手段におけるデータフロープログラムの読出しは、演算手段による所定演算処理の結果を示す条件コードとアドレス指定されたプログラムワード中の各情報セットに対応の有効／無効情報の設定により制御できる。
【００９３】
これにより、プログラムデータ読出時に前述のデータパケットコピー処理およびデータパケット消去処理に加えて、演算結果に従うプログラムデータ選択が可能となって、その分、該装置における実行命令数が削減される。
【００９４】
請求項５に記載のデータ駆動型情報処理装置によれば、請求項４に係る装置のプログラム記憶手段におけるデータフロープログラムの読出時に用いられる条件コードは、アドレス指定されるプログラムワード中の情報セットのそれぞれに対応のフラグからなる。
【００９５】
これにより、各フラグの設定を用いて読出すべきデータフロープログラム（情報セット）を選択指定できる。
【００９６】
したがって、プログラム記憶部のプログラム読出時点で、選択構造処理の実行が可能となって、その分、該情報処理装置における実行命令数が削減される。
【００９７】
【実施例】
以下、この発明の第１ないし第４実施例について図面を参照しながら詳細に説明する。
【００９８】
＜第１実施例＞
この実施例では、プログラム記憶部からのプログラムデータのフェッチ時にデータパケットの消去を可能とするデータ駆動型プロセッサが示される。
【００９９】
図１は、この発明の第１実施例によるデータ駆動型プロセッサのブロック構成図である。
図１のプロセッサＰＥ１は図２６の従来のプロセッサＰｅのプログラム記憶部ＰＳＰに代替してプログラム記憶部ＰＳ１を有し、またラッチ部に代替してラッチ部と同様に機能するＤタイプフリップフロップＤＦ／Ｆを有する。またプロセッサＰＥ１は新たにゲートＧを含む。プロセッサＰＥ１のその他の構成は図２６のそれらと同じであり説明は省略する。
【０１００】
また、このプロセッサＰＥ１で処理されるデータパケットの構成は図２７に示されたものと同様であり説明は省略する。
【０１０１】
図２は図１のプログラム記憶部ＰＳ１のブロック構成図である。
プログラム記憶部ＰＳ１はプログラムメモリ１００、アドレス生成およびアクセス部１０１、Ｖａｌｉｄフラグ判定部１０２およびデータ選択部１０３を含む。
【０１０２】
図３は図２のプログラムメモリ１００の内容を部分的に示す図である。
図４は図１のプログラム記憶部ＰＳ１のフェッチ動作を表形式にして示す図である。
【０１０３】
プログラムメモリ１００はデータパケットの行先ノード番号ＮＤ♯に基づく各アドレス指定領域にプログラムワードセットＷ１およびＷ２を格納するので、アドレス指定による１回のプログラムデータフェッチ動作によりワードセットＷ１およびＷ２が読出される。
【０１０４】
プログラムワードセットＷ１およびＷ２のそれぞれは、次位の行先ノード番号ＮＤ♯および次位の命令コードＯＰＣを含み、さらにワードセットＷ１およびＷ２のそれぞれは該ワードセットが有効（＝１）か無効（＝０）かを示すＶａｌｉｄフラグＶ１およびＶ２をそれぞれ含む。
【０１０５】
プログラム記憶部ＰＳ１は転送されるデータパケットを入力すると、アドレス生成およびアクセス部１０１が該入力パケットの行先ノード番号ＮＤ♯によりアドレスａｄｒを生成して、アドレスａｄｒに基づくアドレス指定によりプログラムメモリ１００からプログラムワードセットＷ１およびＷ２を読出す。
【０１０６】
読出されたプログラムワードセットＷ１およびＷ２はデータ選択部１０３に与えられ、読出されたＶａｌｉｄフラグＶ１およびＶ２はＶａｌｉｄフラグ判定部１０２に与えられる。
【０１０７】
データ選択部１０３およびＶａｌｉｄフラグ判定部１０２は図４に示される手順に従って次のように動作する。
【０１０８】
フラグ判定部１０２は、フラグＶ１およびＶ２ば０であればパケット消去として消去信号ＡＢＳを０（＝消去要求）にしてゲートＧの一方入力側に与える。このときはコピー要求信号ＣＲも０（コピー不要）である。
【０１０９】
また、フラグＶ１およびＶ２のいずれか一方が１ならば、消去信号ＡＢＳは１、コピー要求信号ＣＲは０にそれぞれセットされる。
【０１１０】
また、フラグＶ１およびＶ２がともに１ならば、消去信号ＡＢＳは１、コピー要求信号も１にそれぞれセットされる。
【０１１１】
一方、データ選択部１０３はプログラムワードセットＷ１およびＷ２を入力して、Ｖａｌｉｄフラグが１であるプログラムワードセットの命令コードＯＰＣおよび行先ノード番号ＮＤ♯のみを出力する。もし、Ｖａｌｉｄフラグが２つとも１ならば、まずプログラムワードセットＷ１の行先ノード番号ＮＤ♯および命令コードＯＰＣが出力されて、対応のＣ素子Ｃｎよりネクストイネーブル信号ＮＥを受けた後に、プログラムワードセットＷ２の行先ノード番号ＮＤ♯および命令コードＯＰＣを出力する。
【０１１２】
上述したようにプログラム記憶部ＰＳ１では、１回のフェッチ動作（アドレス指定）により従来のパケットコピーが可能になる。さらに、パケット消去信号ＡＢＳ（＝０）出力時は、演算部ＦＰＰで実行される命令コードを用いてパケットの消去が可能となる。これを図を用いて説明する。
【０１１３】
図５（ａ）および（ｂ）は、パケット消去に関してこの発明の第１の実施例によるフローグラフと従来技術によるフローグラフとを対比して示す図である。
【０１１４】
たとえば命令コードＯｐｒ１を実行してパケットを完全に消去する際に、従来はＡＢＳＲＢ命令が用いられていた（図５（ｂ）参照）。一方、第１実施例によればＡＢＳＲＢ命令を用いることなく、命令コードＯｐｒ１の実行とともにパケットの消去が可能となる（図５（ａ）参照）ので、実行命令数が削減される。
【０１１５】
＜第２実施例＞
この実施例では、プログラム記憶部からのプログラムデータのフェッチ時に演算結果の真偽による二者択一的な分岐処理を可能とするデータ駆動型プロセッサが示される。
【０１１６】
図６は、この発明の第２実施例によるデータ駆動型プロセッサのブロック構成図である。
【０１１７】
図６のプロセッサＰＥ２は図２６の従来のプロセッサＰｅのプログラム記憶部ＰＳＰに代替してプログラム記憶部ＰＳ２を有し、またラッチ部に代替してラッチ部と同じ機能を有するＤタイプフリップフロップＤＦ／Ｆを有する。またプロセッサＰＥ２は新たにゲートＧと演算部ＦＰＰの出力段にフラグ判定部３００を含む。プロセッサＰＥ２のその他の構成は図２６のそれらと同じであり説明は省略する。
【０１１８】
また、このプロセッサＰＥ２で処理されるデータパケットの構成は図２７に示されたものと同様であり説明は省略する。
【０１１９】
図７は図６のプログラム記憶部ＰＳ２のブロック構成図である。
プログラム記憶部ＰＳ２はプログラムメモリ１００、アドレス生成およびアクセス部１０１および判定部１０４を含む。プログラムメモリ１００およびアドレス生成およびアクセス部１０１は図２に示されたものと同じであり説明は省略する。
【０１２０】
図８は図６のプログラム記憶部ＰＳ２のフェッチ動作を表形式にして示す図である。
【０１２１】
図６において演算部ＦＰＰは従来と同様に演算処理してその処理結果データを格納したデータパケットをプログラム記憶部ＰＳ２に出力する。このとき、演算部ＦＰＰで実行された命令コードＯＰＣごとに定められた真偽がフラグ判定部３００で判定されて真偽フラグＴＦがプログラム記憶部ＰＳ２に出力される。
【０１２２】
プログラム記憶部ＰＳ２の判定部１０４はメモリ１００から読出されたプログラムワードセットＷ１およびＷ２、ならびに真偽フラグＴＦを入力する。判定部１０４は真偽フラグＴＦを参照し、１ならば予め設定さている真ノードのプログラムワードセット、たとえばプログラムワードセットＷ１を選択し、０ならば偽ノード、たとえばプログラムワードセットＷ２を選択する。
【０１２３】
真偽フラグＴＦによって選択されたプログラムワードセットはさらに対応のＶａｌｉｄフラグによって有効か否か判定されて、有効と判定された場合にのみ選択されたプログラムワードセットの行先ノード番号ＮＤ♯と命令コードＯＰＣが出力される。
【０１２４】
上述したプログラム記憶部ＰＳ２のフェッチ動作は図８に示される。
データ駆動型プログラムＰＥ２では、プログラムメモリ１００のＶａｌｉｄフラグの設定のしかたによってプログラムを制御できる。つまり、Ｖａｌｉｄフラグを真ノードおよび偽ノードともに０にすると常にパケット消去になる。
【０１２５】
また、Ｖａｌｉｄフラグを真ノード＝０および偽ノード＝１にすると、偽が成立したときのみプログラムが実行されて、真のときはパケット消去になる。つまり、偽条件が成立したときのみ通過可能となるＦａｌｓｅ  Ｇａｔｅとなり得る。
【０１２６】
同様に、Ｖａｌｉｄフラグを真ノードおよび偽ノード＝１にすると演算結果の真偽により選択される、つまり条件分岐となる。
【０１２７】
なお、このプログラム記憶部では、パケットコピーは不可能なのでＣ素子より転送されるネクストイネーブル信号ＮＥは使用せず、またコピー要求信号ＣＲも出力しない。
【０１２８】
このようにデータ駆動型プロセッサＰＥ２では、条件分岐が１命令で可能になる。これを図を用いて説明する。
【０１２９】
図９（ａ）および（ｂ）は、演算結果の真偽に従う条件分岐に関してこの発明の第２実施例によるフローグラフを従来の技術によるフローグラフと対比して示す図である。
【０１３０】
たとえばノードＮＤ１の命令コードＡＤＤに従う加算結果により命令コードＯｐｒ１とＯｐｒ２のいずれかに条件分岐する際に、従来は複数個の命令が必要であった（図９（ｂ）参照）。一方、第２実施例によれば命令コードＡＤＤ＿ＳＷ２が演算部ＦＰＰで実行されると同時に、プログラム記憶部ＰＳ２での条件分岐が可能となって、１命令で処理可能となって（図９（ａ）参照）、実行命令数の削減となる
＜第３実施例＞
この実施例では、プログラム記憶部からのプログラムデータフェッチ時に、演算結果によりｎ（＞２）個のプログラムデータ中から１つを選択するような分岐処理を可能とするデータ駆動型プログラムが示される。
【０１３１】
図１０は、この発明の第３実施例によるデータ駆動型プログラムのブロック構成図である。
【０１３２】
図１０のプログラムＰＥ３は図２６の従来のプロセッサＰｅのプログラム記憶部ＰＳＰに代替してプログラム記憶部ＰＳ３を有し、またラッチ部に代替してラッチ部と同様な機能を有するＤタイプフリップフロップＤＦ／Ｆを有する。またプロセッサＰＥ３は新たにゲートＧと演算部ＦＰＰの出力段にフラグ判定部３０１を含む。プロセッサＰＥ３のその他の構成は図２６のそれらと同様であり説明は省略する。
【０１３３】
また、このプロセッサＰＥ３で処理されるデータパケットの構成も図２７に示されたものと同様であり説明は省略する。
【０１３４】
図１１は図１０のプログラム記憶部ＰＳ３のブロック構成図である。
プログラム記憶部ＰＳ３はプログラムメモリ１００、アドレス生成およびアクセス部１０１および判定部１０５を含む。プログラムメモリ１００およびアドレス生成およびアクセス部１０１は図２に示されたものと同じであり説明は省略する。
【０１３５】
図１２は図１１のプログラム記憶部ＰＳ３のフェッチ動作を表形式にして示す図である。
【０１３６】
図１０において演算部ＦＰＰは従来と同様に演算処理してその処理結果データを格納したデータパケットをプログラム記憶部ＰＳ３に出力する。このとき、フラグ判定部１０１は演算結果値と命令コードＯＰＣとを入力し、各命令コードＯＰＣごとに定められた真偽を判定し、アドレス指定によりプログラムメモリから読出されるプログラムワードセット数分のフラグ（この場合は真フラグＴｆと偽フラグＦｆ）をプログラム記憶部ＰＳ３に出力する。
【０１３７】
真フラグＴｆは真ノード（たとえばプログラムワードセットＷ１）が成立するか否かを示し、同様に偽フラグＦｆは偽ノード（たとえばプログラムワードセットＷ２）が成立するか否かを示す。
【０１３８】
フラグＴｆまたはＦｆによって成立すると判定されたプログラムワードセットは、さらに対応のＶａｌｉｄフラグによって有効か否か判定されて、有効と判定された場合にのみ成立すると判定されたプログラムワードセットの行先ノード番号ＮＤ♯と命令コードＯＰＣが出力される。
【０１３９】
上述したプログラム記憶部ＰＳ３のフェッチ動作が図１２に示される。
上述した図１０のプログラムＰＥ３では演算結果により２つのノードのいずれか一方に条件分岐されたが、３つのノードのいずれか１つに条件分岐させることもできる。
【０１４０】
図１３は図１０のプロセッサＰＥ３の改良例を示すブロック図である。
図１３のデータ駆動型プロセッサＰＥ４は図１０のプロセッサＰＥ３のプログラム記憶部ＰＳ３およびフラグ判定部３０１のそれぞれに代替してプログラム記憶部ＰＳ４およびフラグ判定部３０２を有する。その他の構成は図１０のそれらと同様である。
【０１４１】
フラグ判定部３０２は演算部ＦＰＰによる演算結果出力時、その演算結果と命令コードＯＰＣを入力して、命令コードＯＰＣに基づき演算結果によりＡフラグＡｆ、ＢフラグＢｆおよびＣフラグＣｆを出力する。
【０１４２】
プログラム記憶部ＰＳ４はプログラムメモリ１０６、アドレス生成およびアクセス部１０７および判定部１０８を含む。
【０１４３】
図１４は図１３のプロセッサＰＥ４を用いた演算結果に従う条件分岐処理のフローグラフである。
【０１４４】
グラフ中の命令コードＡＤＤ＿ＳＷ３は対応ノードの右入力データと左入力データとを加算し、さらに加算結果が負のときフラグＡｆ＝１、正のときフラグＢｆ＝１、０のときフラグＣｆ＝１を選択するものである。
【０１４５】
図１５は図１４のフローグラフに対する図１３のプログラムメモリ１０６の内容を示す図である。
【０１４６】
図１６は、命令コードＡＤＤ＿ＳＷ３に従う演算結果とフラグ出力の対応を表形式にして示す図である。
【０１４７】
次に、図１４のフローグラフに従う処理について説明する。
図１４のノードＮＤ１の命令コードＡＤＤ＿ＳＷ３に従う演算が演算部ＦＰＰで行なわれると、演算結果と命令コードＡＤＤ＿ＳＷ３がフラグ判定部３０２に与えられる。また、演算結果値を格納したデータパケットはプログラム記憶部ＰＳ４に与えられる。
【０１４８】
フラグ判定部３０２は与えられた命令コードＡＤＤ＿ＳＷ３に基づいて、その演算結果を判定しフラグＡｆ，ＢｆおよびＣｆを設定してプログラム記憶部ＰＳ４に出力する。演算結果とフラグ出力の対応は図１６のようになる。
【０１４９】
プログラム記憶部ＰＳ４のアドレス生成およびアクセス部１０７は演算結果値を格納したデータパケットの行先ノード番号ＮＤ♯によるアドレスａｄｒに基づいてプログラムメモリ１０６をアドレス指定して、図１５に示されるプログラムワードセットＷ１、Ｗ２およびＷ３を読出して判定部１０８に与える。
【０１５０】
判定部１０８は与えられる３つのプログラムワードセットＷ１〜Ｗ３のＶａｌｉｄフラグＶ１〜Ｖ３のすべてが“１”（有効）なので、フラグＡｆ、ＢｆおよびＣｆのうち“１”であるものに対応のプログラムワードセットがすべて選択される。
【０１５１】
なお、演算結果が負ならばフラグＡｆのみ１、正ならばフラグＢｆのみ１、０ならばフラグＣｆのみ１であり、それぞれの場合において他の２つのフラグは０となる。
【０１５２】
したがって、負ならばフラグＡｆに対応のプログラムワードセットＷ１、つまり命令コードＯｐｒ０（ノードＮＤ２）、正ならばフラグＢｆに対応のプログラムワードセットＷ２、つまり命令コードＯｐｒ１（ノードＮＤ３）、０ならばフラグＣｆに対応のプログラムワードセットＷ３、つまり命令コードＯｐｒ２（ノードＮＤ４）が選択的にフェッチされる。
【０１５３】
なお、消去信号ＡＢＳ、コピー要求信号ＣＲに関しては、パケット消去ならびにパケットコピーはないのでそれぞれ１、０の値を保持する。
【０１５４】
以上のプロセッサＰＥ３またはＰＥ４を用いれば、プログラムメモリの１アドレス指定領域のプログラムワードセット数と同じ数のフラグを設けるだけで、プログラム読出し時に演算結果による２分岐以上の多分岐処理が可能になった。
【０１５５】
ここで、演算結果に従う分岐処理に関して図１４の本実施例によるフローグラフと図３０のフローグラフとを比較すると、本実施例により処理実行時の命令数が大幅に削減されることがわかる。
【０１５６】
図１７はこの発明の実施例による条件分岐においてパケットコピーを含むフローグラフである。
【０１５７】
グラフ中の命令コードＡＤＤ＿ＳＷ４は対応ノードの右入力データと左入力データを加算し、さらに加算結果が負のときフラグＡｆおよびＢｆ＝１、正のときフラグＣｆ＝１、０のときフラグＤｆ＝１を選択するものである。
【０１５８】
図１７のフローグラフでは図１４のフローグラフにおける命令コードＡＤＤ＿ＳＷ３がＡＤＤ＿ＳＷ４に代替されて、負（＜０）への分岐において命令コードＯｐｒ０とＯｐｒ４へパケットコピーが行なわれる。このために、データ駆動型プロセッサは図１３の構成において、さらにフラグ判定部３０２の出力が１本追加されて、演算部ＦＰＰの出力段のＤＦ／ＦがフラグＡｆ、ＢｆおよびＣｆに追加してフラグＤｆを保持する。
【０１５９】
図１８は図１７のフローグラフに対するプログラムメモリの内容を示す図である。
【０１６０】
＜第４実施例＞
この実施例では、少なくとも１つ以上のデータ駆動型プロセッサを含む処理装置の入力段にプログラム記憶部を有して、第１〜第３実施例で説明したプログラム記憶部によるパケットコピー、パケット消去および条件分岐をプロセッサへのデータ入力に先立って行なわせるものである。
【０１６１】
図１９は、この発明の第４実施例による処理装置のブロック構成図である。図１９の装置（チップ）は入力側プログラム記憶部５００、２つのデータ駆動型プログラムＰＥ（♯０）およびＰＥ（♯１）を含む。
【０１６２】
なお、ここではチップに含まれるデータ駆動型プロセッサは２台としたがその数はこれに特定されず、少なくとも１台以上であればよい。
【０１６３】
図２０は図１９の入力側プログラム記憶部５００のブロック構成図である。入力側プログラム記憶部５００はその入力段にＤＦ／Ｆと、これを制御するＣ素子、ならびにその出力側にＤＦ／Ｆとこれを制御するＣｎ素子を含む。さらに記憶部５００はメモリ５０１、アドレス生成およびアクセス部５０２、判定部５０３およびゲートＧを含む。
【０１６４】
図２１は図２０のメモリ５０１の内容の一部を示す図であり、図２２は図１９のチップへの入力パケットＩＰＡの構成図である。
【０１６５】
入力パケットＩＰＡはエントリ番号ＥＮＴ♯を格納するエントリ番号領域Ｆ５、世代番号ＧＮ♯を格納する世代番号領域Ｆ２およびデータＤＡＴＡを格納するデータ領域Ｆ４からなる。
【０１６６】
メモリ５０１は入力パケットＩＰＡのエントリ番号ＥＮＴ♯に基づくアドレス指定領域にプログラムワードセットＷ１０、Ｗ２０およびＷ３０を含む。各プロセッサワードセットはプロセッサ番号ＰＥ♯、行先ノード番号ＮＤ♯、Ｖａｌｉｄフラグおよび命令コードＯＰＣを含む。
【０１６７】
チップに入力パケットＩＰＡが与えられるときフラグ情報ＩＦも与えられる。フラグ情報ＩＦは前述したフラグＴＦ、Ｔｆ、Ｆｆ、Ａｆ、Ｂｆ、Ｃｆ、Ｄｆなどを含む。
【０１６８】
アドレス生成およびアクセス部５０２は与えられるパケットＩＰＡのエントリ番号ＥＮＴ♯によるアドレスＡｄｒによりメモリ５０１をアドレス指定して、プログラムワードセットＷ１０、Ｗ２０およびＷ３０を読出し、判定部５０３に与える。
【０１６９】
判定部５０３は与えられるフラグ情報ＩＦとワードセットＷ１０、Ｗ２０およびＷ３０の内容に従って信号ＡＢＳまたはＣＲを出力する。これにより、入力側プログラム記憶部５００において前述したパケットコピー、パケット消去および条件分岐などの処理が行なわれ、出力されたデータパケットはそのプロセッサ番号ＰＥ♯に該当のプロセッサ宛に送付される。
【０１７０】
図２３は従来の少なくとも１つ以上のデータ駆動型プロセッサを含んで構成される処理装置（チップ）のブロック構成図であり、図２４は図２３のチップに対する入力パケットの構成図である。
【０１７１】
図２４の入力パケットは行先となるプロセッサ番号ＰＥ♯を格納するプロセッサ番号領域Ｆ０、行先ノード番号ＮＤ♯の領域Ｆ１、世代番号ＧＮ♯の領域Ｆ２、命令コードＯＰＣの領域Ｆ３およびデータＤＡＴＡの領域Ｆ４を含む。
【０１７２】
ここで、図１９と図２３のチップを比較すると、プログラムの先頭でパケットコピーがある場合、図２３の従来のチップでは、前述したようにチップ内のデータ駆動型プロセッサで無駄パケットの巡回が行なわれてプログラム実行効率の向上が妨げられるのに対し、図１９のチップの入力段の入力側プログラム記憶部５００でパケットコピーが行なわれた場合、チップ内のデータ駆動型プロセッサで無駄にパケットを巡回させることが回避されて、プログラム実行効率が向上する。
【０１７３】
図２５（ａ）ないし（ｃ）は、この発明の第４実施例によるパケットコピーがプログラムの先頭で行なわれる場合の処理手順を説明するための図である。
【０１７４】
図２５（ａ）はこの処理手順を示すフローグラフであり、図２５（ｂ）はこのフローグラフに対応の入力側プロセッサ記憶部５００のメモリ５０１の内容を示し、図２５（ｃ）はこのフローグラフに対応のチップ内のプロセッサのプログラムメモリの内容を示す。
【０１７５】
図２５（ａ）〜（ｃ）と図３３（ａ）〜（ｂ）を比較すると、本実施例により従来よりも実行命令数が削減されていることがわかる。
【０１７６】
このことはパケットコピーに限らず、パケット消去または条件分岐などの処理がプログラムの先頭で行なわれる場合であっても、チップ中の各プロセッサの共通入口である入力側プログラム記憶部５００でこれら処理が行なわれて、プログラム実行効率の向上および実行命令数の削減を図ることができる。
【０１７７】
さらに、図２２により本実施例によるチップに対する入力ピン割付けが示され、図２４により従来のチップに対する入力ピン割付けが示される。
【０１７８】
図２２と図２４を参照してチップに対する入力ピン割付けを比較すると、世代番号領域Ｆ２とデータ領域Ｆ４は共通しているが、その他の領域については従来のプロセッサ番号領域Ｆ０、行先ノード番号領域Ｆ１および命令コード領域Ｆ３が本実施例ではエントリ番号領域Ｆ５に代替されている。つまり、本実施例では従来に比較してチップの入力ピンのビット圧縮が行なわれることになって入力ピンの削減が可能となる。
【０１７９】
なお、本実施例のチップを構成するデータ駆動型プロセッサは前述した第１〜第３実施例のプロセッサであってもよく、また従来のプロセッサであってもよい。
【０１８０】
【発明の効果】
請求項１に記載のデータ駆動型情報処理装置によれば、データ供給部にて１つ以上のデータパケットの生成の処理および第２データパケットの消去処理に係る命令が実行されてから第２データフロープログラムがデータパケットにして処理部に供給されるので、データ供給部にて予め実行された命令分、処理部の各情報処理手段における第１データフロープログラムステップが削減されて、実行命令数が削減されプログラム実行効率が向上する。
また、各情報処理手段の実行命令数の削減は第１所定条件により任意に制御できる。
また、各情報処理手段のプログラム記憶手段における第１データフロープログラムの読出時、データパケットコピー処理、データパケット消去処理および選択的なプログラムデータの読出しが可能となって、その分、各情報処理手段における実行命令数が削減されて、プログラム実行効率が向上する。
【０１８１】
また、データ供給部による処理部への第２データフロープログラムの供給は、第２所定条件の設定により任意に制御できるので、実行命令数が第２所定条件の設定により削減できる。
【０１８２】
また、データ供給部による処理部への第２データフロープログラムの供給は、第２アドレス指定により読出される第２有効／無効情報の設定により任意に制御できる。これにより、第２アドレス指定による第２データフロープログラムのデータ供給時に、データパケットのコピー処理およびデータパケットの消去処理が可能となって、処理部の各情報処理手段における実行命令数が削減され、プログラム実行効率が向上する。
【０１８３】
また、データ供給部による第２データフロープログラムの供給は、第２有効／無効情報と分岐コードの設定により任意に制御できる。これにより、データパケットコピー処理、データパケット消去処理および選択的なデータパケット供給が可能となって、その分、処理部の各情報処理手段における実行命令数が削減され、プログラム実行効率が向上する。
【０１８４】
請求項２に記載のデータ駆動型情報処理装置によれば、請求項１に係る装置のデータ供給部のプログラム読出時点で選択構造処理の実行が可能となって、その分、処理部の各情報処理手段における実行命令数が削減され、プログラム実行効率が向上する。
【０１８８】
請求項３に記載のデータ駆動型情報処理装置によれば、請求項１または２に係る装置の第１データフロープログラム読出時に選択構造処理の実行が可能となって、その分、各情報処理手段における実行命令数が削減され、プログラム実行効率が向上する。
【０１８９】
請求項４に記載のデータ駆動型情報処理装置によれば、プログラム記憶手段におけるデータフロープログラム読出時において、データパケット消去処理ならびに１アドレス指定によるデータパケットコピー処理が可能となって、装置における実行命令数が削減され、プログラム実行効率が向上する。
【０１９０】
また、プログラムデータ読出時にデータパケットコピー処理、データパケット消去処理および演算結果に従うプログラムデータ選択が可能となって、その分、該装置における実行命令数が削減され、プログラム実行効率が向上する。
【０１９１】
請求項５に記載のデータ駆動型情報処理装置によれば、請求項４に係る装置のプログラム記憶部のプログラムの読出時に、選択構造処理の実行が可能となって、その分、該情報処理装置における実行命令数が削減されて、プログラム実行効率が向上する。
【図面の簡単な説明】
【図１】この発明の第１実施例によるデータ駆動型プロセッサのブロック構成図である。
【図２】図１のプログラム記憶部ＰＳ１のブロック構成図である。
【図３】図２のプログラムメモリ１００の内容を部分的に示す図である。
【図４】図１のプログラム記憶部ＰＳ１のフェッチ動作を表形式にして示す図である。
【図５】（ａ）および（ｂ）は、パケット消去に関してこの発明の第１実施例によるフローグラフと従来技術によるフローグラフとを対比して示す図である。
【図６】この発明の第２実施例によるデータ駆動型プロセッサのブロック構成図である。
【図７】図６のプログラム記憶部ＰＳ２のブロック構成図である。
【図８】図６のプログラム記憶部ＰＳ２のフェッチ動作を表形式にして示す図である。
【図９】（ａ）および（ｂ）は、演算結果の真偽に従う条件分岐に関してこの発明の第２実施例によるフローグラフと従来の技術によるフローグラフとを対比して示す図である。
【図１０】この発明の第３実施例によるデータ駆動型プロセッサのブロック構成図である。
【図１１】図１０のプログラム記憶部ＰＳ３のブロック構成図である。
【図１２】図１１のプログラム記憶部ＰＳ３のフェッチ動作を表形式にして示す図である。
【図１３】図１０のプロセッサＰＥ３の改良例を示すブロック図である。
【図１４】図１３のプロセッサＰＥ４を用いた演算結果に従う条件分岐処理のフローグラフである。
【図１５】図１４のフローグラフに対する図１３のプログラムメモリ１０６の内容を示す図である。
【図１６】命令コードＡＤＤ＿ＳＷ３に従う演算結果とフラグ出力の対応を表形式にして示す図である。
【図１７】この発明の実施例による条件分岐においてパケットコピーを含むフローグラフである。
【図１８】図１７のフローグラフに対するプログラムメモリの内容を示す図である。
【図１９】この発明の第４実施例による処理装置のブロック構成図である。
【図２０】図１９の入力側プログラム記憶部５００のブロック構成図である。
【図２１】図２０のメモリの内容の一部を示す図である。
【図２２】図１９のチップへの入力パケットＩＰＡの構成図である。
【図２３】従来の少なくとも１つ以上のデータ駆動型プロセッサを含んで構成される処理装置（チップ）のブロック構成図である。
【図２４】図２３のチップに対する入力パケットの構成図である。
【図２５】（ａ）ないし（ｃ）はこの発明の第４実施例によるパケットコピーがプログラムの先頭で行なわれる場合の処理手順を説明するための図である。
【図２６】従来のデータ駆動型プロセッサのブロック構成図である。
【図２７】従来およびこの発明の実施例に適用されるデータパケットのフォーマット図である。
【図２８】プログラム記憶部ＰＳＰのブロック構成図である。
【図２９】図２８のプログラムメモリ２００の内容を部分的に示す図である。
【図３０】従来の命令コードＳＷＮを用いた選択構造を含むフローグラフである。
【図３１】図３０のデータフローグラフに対するプログラムメモリ２００の内容を示す図である。
【図３２】図３０のフローグラフに従う処理実行時の途中経過を表形式にして説明する図である。
【図３３】（ａ）〜（ｃ）は、従来のパケットコピーがプログラムの先頭で行なわれる場合の処理手順を説明するための図である。
【符号の説明】
３００、３０１、３０２  フラグ判定部
５００  入力側プログラム記憶部
ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４  データ駆動型プロセッサ
ＰＳ１、ＰＳ２、ＰＳ３、ＰＳ４  プログラム記憶部
ＦＰＰ  演算部
Ｖ１、Ｖ２  Ｖａｌｉｄフラグ
ＩＦ  フラグ情報
ＴＦ  真偽フラグ
Ｔｆ  真フラグ
Ｆｆ  偽フラグ
Ａｆ  Ａフラグ
Ｂｆ  Ｂフラグ
Ｃｆ  Ｃフラグ
Ｄｆ  Ｄフラグ
Ｗ１、Ｗ２、Ｗ３、Ｗ４、Ｗ１０、Ｗ２０、Ｗ３０  プログラムワードセット
ＮＤ♯  行先ノード番号
ＤＡＴＡ  データ
ＯＰＣ  命令コード
ＩＰＡ  入力パケット
なお、各図中、同一符号は、同一または相当部分を示す。
【図１】
0003677315.tif 000002
【図２】
0003677315.tif 000003
【図３】
0003677315.tif 000004
【図４】
0003677315.tif 000005
【図５】
0003677315.tif 000006
【図６】
0003677315.tif 000007
【図７】
0003677315.tif 000008
【図８】
0003677315.tif 000009
【図９】
0003677315.tif 000010
【図１０】
0003677315.tif 000011
【図１１】
0003677315.tif 000012
【図１２】
0003677315.tif 000013
【図１３】
0003677315.tif 000014
【図１４】
0003677315.tif 000015
【図１５】
0003677315.tif 000016
【図１６】
0003677315.tif 000017
【図１７】
0003677315.tif 000018
【図１８】
0003677315.tif 000019
【図１９】
0003677315.tif 000020
【図２０】
0003677315.tif 000021
【図２１】
0003677315.tif 000022
【図２２】
0003677315.tif 000023
【図２３】
0003677315.tif 000024
【図２４】
0003677315.tif 000025
【図２５】
0003677315.tif 000026
【図２６】
0003677315.tif 000027
【図２７】
0003677315.tif 000028
【図２８】
0003677315.tif 000029
【図２９】
0003677315.tif 000030
【図３０】
0003677315.tif 000031
【図３１】
0003677315.tif 000032
【図３２】
0003677315.tif 000033
【図３３】
0003677315.tif 000034