(57)【特許請求の範囲】
【請求項１】
入力されたデータパケット中のデータが処理可能となるまで他のデータパケットの待ち合わせを行い、処理可能な対データを収容したデータパケットを生成する対データ検出手段と、
前記対データ検出手段によって生成されたデータパケットに含まれる対データに対して演算を行う演算手段と、
前記演算手段による演算結果、次の演算内容および行き先情報を含んだデータパケットを生成するプログラム記憶手段と、
前記プログラム記憶手段によって生成されたデータパケットの外部装置への出力を制御する出力制御手段と、
外部装置からのデータパケットの入力を制御する入力制御手段とが周回パイプラインにて接続されたデータ駆動型情報処理装置に於いて、
該装置内で扱われるデータ単位である、データ本体、並びに、データ相互の識別情報である世代番号、データの行き先を指示する行き先情報、データに施すべき演算を指示する命令情報、等により構成されるデータパケットの構成が、その世代番号が連続している複数のデータを１つのデータパケットに含み、他の情報を共有する構成であり、
前記演算手段は、データパケット内のデータの個数に応じて相互に独立した演算器を有することを特徴とするデータ駆動型情報処理装置。
【請求項２】
上記複数のデータを構成する各データが、それぞれ、互いに相関のあるデータ群であることを特徴とする、請求項１に記載のデータ駆動型情報処理装置。
【請求項３】
上記複数のデータとして、データ相互の識別情報である世代番号の内、特定の１ビットの値のみ異なる２つのデータを１つのデータパケット内に含むことを特徴とする、請求項２に記載のデータ駆動型情報処理装置。
【請求項４】
複数のデータの各々に対して、データパケット内のデータの値が有効であるか否かの識別フラッグをデータパケット内に有することを特徴とする、請求項２又は３に記載のデータ駆動型情報処理装置。
【請求項５】
対データ検出手段に於いて、先に該手段に入力され待ち合わせ中のデータパケットと、後に入力されるデータパケットとの対応する識別フラッグを各々個別に検証し、
共に、有効な場合は、対データ検出済みとして、出力されるデータパケット中の当該識別フラッグを有効とし、待ち合わせ中のデータパケットにある当該識別フラッグを無効とする制御を行い、
共に無効な場合は、出力されるデータパケットの当該識別フラッグを無効とする制御を行い、
一方のみ無効な場合は対データ検出ミスとして、出力されるデータパケットの当該識別フラッグを無効とし、識別フラッグが有効であった入力データパケットのデータを待ち合わせ中のデータパケットのデータ領域に転記し、該パケットの当該識別フラッグを有効とする制御を行い、
さらに、出力されるデータパケットの識別フラッグが全て無効である場合、該パケットを出力しない制御を行うことを特徴とする、請求項４に記載のデータ駆動型情報処理装置。
【請求項６】
データパケット中の複数のデータの各々に対して条件判断演算を実行した際に、
有効なデータに関する判断結果が全て真の場合、条件判断結果フラッグを真にセットしたデータパケットを１つ出力し、
有効なデータに関する判断結果が全て偽の場合、条件判断結果フラッグを偽にセットしたデータパケットを１つ出力し、
有効なデータに関する判断結果として真と偽が混在している場合は、
第１のパケットとして、条件判断結果フラッグを真にセットし、真の判断結果を得たデータに対して対応する識別フラッグを有効とし、偽の判断結果を得たデータに対して対応する識別フラッグを無効としたデータパケットを出力し、
第２のパケットとして、条件判断結果フラッグを偽にセットし、偽の判断結果を得たデータに対して対応する識別フラッグを有効とし、真の判断結果を得たデータに対して対応する識別フラッグを無効としてデータパケットを出力する制御を行うことを特徴とする、請求項４に記載のデータ駆動型情報処理装置。
【請求項７】
前記対データ検出手段において、データパケット中の前記複数のデータの内、いずれかのデータが無効なデータパケットに対して、当該データが有効なデータパケットとの待ち合わせを行うものであり、待ち合わせ中の有効なデータと入力されたデータパケット中の有効なデータとで前記複数のデータが全て有効なデータとして揃った場合は当該有効なデータを全て含んだデータパケットを出力する制御を行い、それ以外の場合は、入力されたデータパケット中の有効なデータの値を、待ち合わせメモリ中のデータ領域に転記し、待ち合わせメモリ中の転記されたデータに対応する識別フラグを有効とする制御を行うことを特徴とする、請求項４に記載のデータ駆動型情報処理装置。
【請求項８】
待ち合わせ中のデータパケット内のデータが全て有効となるまで、待ち合わせを継続することを特徴とする、請求項７に記載のデータ駆動型情報処理装置。
【請求項９】
データパケットが待ち合わせ中に、次のデータパケットが入力され、待ち合わせ中のデータパケットと入力データパケットが、１つのデータパケットとして扱われる為の一定の規則に沿わない場合、待ち合わせ中のデータパケットをそのまま出力し、入力データパケットを待ち合わせ状態とすることを特徴とする、請求項７に記載のデータ駆動型情報処理装置。
【請求項１０】
データパケットが待ち合わせ中に、次のデータパケットが入力され、待ち合わせ中のデータパケットと入力データパケットが、１つのデータパケットとして扱われる為の一定の規則に沿わない場合、待ち合わせ中のデータパケットをそのまま待ち合わせ状態とし、入力データパケットをそのまま出力することを特徴とする、請求項７に記載のデータ駆動型情報処理装置。
【請求項１１】
前記対データ検出手段において、データパケット中の前記複数のデータの内、いずれかのデータが無効なデータパケットに対して、当該データが有効なデータパケットとの待ち合わせを行うものであり、待ち合わせ中の有効なデータと入力されたデータパケット中の有効なデータとで前記複数のデータが全て有効なデータとして揃った場合は当該有効なデータを全て含んだデータパケットを出力する制御を行い、それ以外の場合は、入力されたデータパケット中の有効なデータの値を、待ち合わせメモリ中のデータ領域に転記し、待ち合わせメモリ中の転記されたデータに対応する識別フラグを有効とする制御における、データパケットの待ち合わせ用の領域を、対データ検出用の待ち合わせ用領域と共用させたことを特徴とする、請求項７に記載のデータ駆動型情報処理装置。
【請求項１２】
データパケットが２世代化の待ち合わせを行うに際して、他方のデータパケットが、待ち合わせて後、入力されないと予想される場合、待ち合わせを行わずそのまま該データパケットを出力することを特徴とする、請求項７に記載のデータ駆動型情報処理装置。
【請求項１３】
出力制御手段に於いて、複数の有効なデータを有するデータパケットの入力に対して、１つの出力データパケットに１つの有効なデータを有する様、有効なデータの数だけデータパケットを出力する制御を行うことを特徴とする、請求項２、３又は４に記載のデータ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の入力データを組み合わせることにより、入力データの冗長性を下げ、処理の時間を短縮する機構を備えたデータ駆動型情報処理装置に関する。
【０００２】
【従来の技術】
データ駆動型プロセッサでは、「ある処理に必要なデータが全て揃い、かつ、その処理に必要な演算装置などの資源が割り当てられた時に処理を行う」という単純な規則にしたがって処理が並列に進行する。
【０００３】
図１５は、従来の映像信号処理向きデータ駆動型情報処理装置のブロック構成図及びデータパケット構成図である。同様のシステム構成例は、文献「データ駆動型プロセッサの概要」（コンピュータデザイン１９９０年３月号）、文献「動的データ駆動型プロセッサによる並列処理方式の検討」（情報処理学会主催マイクロコンピュータアーキテクチャシンポジウム（１９９１年１１月１２日））等において示されている。
【０００４】
図１５に示すデータ駆動型プロセッサでは、入力されるパケット・１６０はデータ・１５９毎に独立しており、１つのデータに対してそれぞれ、命令情報・１５６、行先情報・１５７、世代番号・１５８を持っている。これらは、入力制御手段・１５１から入力される。対データ検出手段（待合わせ記憶手段・１５２は、入力されたデータ（パケット）のうち、２つのデータが揃わないと処理できないものを一時的に記憶する手段を有する。演算処理手段・１５３は、待合わせを行ったデータ（パケット）を受けて乗算、加算といった演算を実施する。プログラム記憶手段・１５４は演算処理の結果を受けて、プログラムの次の演算内容、行先情報をデータ（パケット）に与える機能を有する。分岐手段・１５５はプログラム記憶手段の結果から得られた行先を読み取り、同一のプロセッサ内部で処理を行うか（合流手段・１５１に送る）、プロセッサ外部に送られるかを判定する。
【０００５】
特開平５ー２３３８５４に示される装置によると、複数の対データ検出手段、複数のプログラム記憶手段、複数の演算処理手段からなるデータ駆動型プロセッサが示されており、それぞれ、複数の命令情報、行先情報、世代番号、データを有するパケットの処理がなされる。
【０００６】
【発明が解決しようとする課題】
従来の装置では、複数データを持つパケットの処理ができなかった。特開平５ー２３３８５４記載の装置では複数のデータを扱うパケット記述されているが、これらはそれぞれ行先情報、命令コードなどを個別に持つ別々のパケットを１つにまとめただけのものであり、データパケット長が大きくなる。
【０００７】
本発明は、複数データを１パケットに収める機構を設けることで、データの冗長度を下げ、処理の効率を上げることのできるデータ駆動型情報処理装置を提供するものである。
【０００８】
【課題を解決するための手段】
請求項１の発明は、入力されたデータパケット中のデータが処理可能となるまで他のデータパケットの待ち合わせを行い、処理可能な対データを収容したデータパケットを生成する対データ検出手段と、対データ検出手段によって生成されたデータパケットに含まれる対データに対して演算を行う演算手段と、演算手段による演算結果、次の演算内容および行き先情報を含んだデータパケットを生成するプログラム記憶手段と、プログラム記憶手段によって生成されたデータパケットの外部装置への出力を制御する出力制御手段と、外部装置からのデータパケットの入力を制御する入力制御手段とが周回パイプラインにて接続されたデータ駆動型情報処理装置に於いて、該装置内で扱われるデータ単位である、データ本体、並びに、データ相互の識別情報である世代番号、データの行き先を指示する行き先情報、データに施すべき演算を指示する命令情報、等により構成されるデータパケットの構成が、その世代番号が連続している複数のデータを１つのデータパケットに含み、他の情報を共有する構成であり、演算手段は、データパケット内のデータの個数に応じて相互に独立した演算器を有することを特徴とするものである。
【０００９】
請求項２の発明は、上記請求項１の発明において、上記複数のデータを構成する各データが、それぞれ、互いに相関のあるデータ群であることを特徴とするものである。
【００１０】
請求項３の発明は、上記請求項２の発明において、データ相互の識別情報の内、特定の１ビットの値のみ異なる２つのデータを１つのデータパケット内に含むことを特徴とするものである。
【００１１】
請求項４の発明は、上記請求項２又は３の発明において、複数のデータの各々に対して、データパケット内のデータの値が有効であるか否かの識別フラッグをデータパケット内に有する事を特徴とするものである。
【００１３】
請求項５の発明は、上記請求項４の発明において、対データ検出手段に於いて、先に該手段に入力され待ち合わせ中のデータパケットと、後に入力されるデータパケットとの対応する識別フラッグを各々個別に検証し、共に、有効な場合は、対データ検出済みとして、出力されるデータパケット中の当該識別フラッグを有効とし、待ち合わせ中のデータパケットにある当該識別フラッグを無効とする制御を行い、共に無効な場合は、出力されるデータパケットの当該識別フラッグを無効とする制御を行い、一方のみ無効な場合は対データ検出ミスとして、出力されるデータパケットの当該識別フラッグを無効とし、識別フラッグが有効であった入力データパケットのデータを待ち合わせ中のデータパケットのデータ領域に転記し、該パケットの当該識別フラッグを有効とする制御を行い、さらに、出力されるデータパケットの識別フラッグが全て無効である場合、該パケットを出力しない制御を行う事を特徴とするものである。
【００１４】
請求項６の発明は、上記請求項４の発明において、データパケット中の複数のデータの各々に対して条件判断演算を実行した際に、有効なデータに関する判断結果が全て真の場合、条件判断結果フラッグを真にセットしたデータパケットを１つ出力し、有効なデータに関する判断結果が全て偽の場合、条件判断結果フラッグを偽にセットしたデータパケットを１つ出力し、有効なデータに関する判断結果として真と偽が混在している場合は、第１のパケットとして、条件判断結果フラッグを真にセットし、真の判断結果を得たデータに対して対応する識別フラッグを有効とし、偽の判断結果を得たデータに対して対応する識別フラッグを無効としたデータパケットを出力し、第２のパケットとして、条件判断結果フラッグを偽にセットし、偽の判断結果を得たデータに対して対応する識別フラッグを有効とし、真の判断結果を得たデータに対して対応する識別フラッグを無効としてデータパケットを出力する制御を行う事を特徴とするものである。
【００１５】
請求項７の発明は、上記請求項４の発明において、対データ検出手段において、データパケット中の複数のデータの内、いずれかのデータが無効なデータパケットに対して、当該データが有効なデータパケットとの待ち合わせを行うものであり、待ち合わせ中の有効なデータと入力されたデータパケット中の有効なデータとで複数のデータが全て有効なデータとして揃った場合は当該有効なデータを全て含んだデータパケットを出力する制御を行い、それ以外の場合は、入力されたデータパケット中の有効なデータの値を、待ち合わせメモリ中のデータ領域に転記し、待ち合わせメモリ中の転記されたデータに対応する識別フラグを有効とする制御を行うことを特徴とするものである。
【００１６】
請求項８の発明は、上記請求項７の発明において、待ち合わせ中のデータパケット内のデータが全て有効となるまで、待ち合わせを継続する事を特徴とするものである。
【００１７】
請求項９の発明は、上記請求項７の発明において、データパケットが待ち合わせ中に、次のデータパケットが入力され、待ち合わせ中のデータパケットと入力データパケットが、１つのデータパケットとして扱われる為の一定の規則に沿わない場合、待ち合わせ中のデータパケットをそのまま出力し、入力データパケットを待ち合わせ状態とする事を特徴とするものである。
【００１８】
請求項１０の発明は、上記請求項７の発明において、データパケットが待ち合わせ中に、次のデータパケットが入力され、待ち合わせ中のデータパケットと入力データパケットが、１つのデータパケットとして扱われる為の一定の規則に沿わない場合、待ち合わせ中のデータパケットをそのまま待ち合わせ状態とし、入力データパケットをそのまま出力する事を特徴とするものである。
【００１９】
請求項１１の発明は、上記請求項７の発明において、対データ検出手段において、データパケット中の前記複数のデータの内、いずれかのデータが無効なデータパケットに対して、当該データが有効なデータパケットとの待ち合わせを行うものであり、待ち合わせ中の有効なデータと入力されたデータパケット中の有効なデータとで前記複数のデータが全て有効なデータとして揃った場合は当該有効なデータを全て含んだデータパケットを出力する制御を行い、それ以外の場合は、入力されたデータパケット中の有効なデータの値を、待ち合わせメモリ中のデータ領域に転記し、待ち合わせメモリ中の転記されたデータに対応する識別フラグを有効とする制御における、データパケットの待ち合わせ用の領域を、対データ検出用の待ち合わせ用領域と共用させた事を特徴とするものである。
【００２０】
請求項１２の発明は、上記請求項７の発明において、データパケットが２世代化の待ち合わせを行うに際して、他方のデータパケットが、待ち合わせて後、入力されないと予想される場合、待ち合わせを行わずそのまま該データパケットを出力する事を特徴とするものである。
【００２１】
請求項１３の発明は、上記請求項２、３又は４の発明において、出力制御手段に於いて、複数の有効なデータを有するデータパケットの入力に対して、１つの出力データパケットに１つの有効なデータを有する様、有効なデータの数だけデータパケットを出力する制御を行う事を特徴とするものである。
【００２２】
請求項１，２，３の機能を設けることで、命令情報・行先情報・世代番号などを共有化した複数データを１つのパケットにまとめることができる。また請求項４のフラッグを設けることで、１パケット内の複数データ管理が容易になる。
【００２３】
請求項６，８，９，１０，１１，１２，１３の機能を設けることで、複数データ処理が対データ検出手段の通常の待合わせメモリで実行できるようになる。
【００２４】
請求項５，７の機能を設けることで、複数データ処理が複数の演算器で並列実行され、かつ条件分岐処理をデータごとに実行できるようになる。
【００２５】
請求項１の手段により、複数の独立なデータを１つのパケットに収容可能となる。
【００２６】
請求項２の手段により、相関のある一群のデータを複数組１つのパケットに収容可能となる。
【００２７】
請求項３の手段により、特定の１ビットのみ異なる識別子を有するデータを１つのパケットに収容可能となる。
【００２８】
請求項４の手段により、複数のデータを１つのパケットに収容した場合のデータ管理が簡易となる。
【００２９】
請求項５の手段により、複数のデータを複数の演算器で一度に処理することができる。
【００３０】
請求項６の手段により、複数のデータを持つパケットが対データ検出手段で検出できるようになる。
【００３１】
請求項７の手段により、複数のデータを条件判断の結果により複数のパケットに分解可能となる。
【００３２】
請求項８の手段により、対データ検出手段を用いた２世代化が可能になる。
【００３３】
請求項９の手段により、対データ検出手段を用いた複数世代化が可能になる。
請求項１０の手段により、２世代化に於いて、古いパケットより新しいパケットの待ち合わせを優先させることができる。
【００３４】
請求項１１の手段により、２世代化に於いて、既に待ち合わせを行っているパケットを常に優先させることができる。
【００３５】
請求項１２の手段により、対データ検出手段の待合わせメモリを複数世代化用に兼用可能となる。
【００３６】
請求項１３の手段により、対データ検出手段を用いた複数世代化で、２世代化の可能性が低いパケットをバイパスできる。
【００３７】
請求項１４の手段により、複数データ・パケットを単独のデータを持つパケットに変換できる。
【００３８】
【発明の実施の形態】
以下、実施形態に基づいて本発明を詳細に説明する。
【００３９】
請求項１に記載のデータ駆動型プロセッサの実施形態を図１に示す。同図（ａ）はブロック構成図であり、同図（ｂ）はデータパケット構成図である。入力制御手段１０は、データ駆動型プロセッサに対する外部端子であり、ポート１からＮといった複数の入力を有する。この入力制御手段はポート１〜Ｎの互いに独立な複数のデータを１つのパケットの中に取り込む機能を有する。合流手段１１は入力制御手段１０と分岐手段１５からの入力を調停し、順序立てて対データ検出手段（待合わせ記憶手段）１２に送り込む機能を有する。対データ検出手段１２は、入力されたデータ（パケット）のうち、２つのデータが揃わないと処理できないものを一時的に記憶する手段を有する。演算処理手段１３は、待合わせを行ったデータ（パケット）を受けて乗算、加算といった演算を実施する。プログラム記憶手段１４は演算処理の結果を受けて、プログラムの次の演算内容、行先情報をデータ（パケット）に与える機能を有する。分岐手段１５はプログラム記憶手段の結果から得られた行先を読み取り、同一のプロセッサ内部で処理を行うか（合流手段１１に送る）、プロセッサ外部に送るかを判定する。上記合流手段１１、対データ検出手段１２、演算処理手段１３、プログラム記憶手段１４及び分岐手段１５は周回パイプラインにて接続された構成になっている。
【００４０】
図１（ｂ）にデータ（パケット）の構成を示す。ここで命令情報１６は、データがどのような演算を施されるかを識別するための情報を意味する。行先情報１７は、データがプログラムのどこをフェッチするかの情報を意味し、これはプログラム中のノード番号に相当する。世代番号１８は、同一の行先を持つ複数のデータを識別するための情報を意味する。データ１９は入力制御部１０に入力された複数データが収められた領域で、ポート数相当のデータを収容する。単一パケット内に於いて、複数のデータが単一の命令情報等を共有する構成となっている。
【００４１】
データ１〜データＮの一例として、世代番号が連続しており、且つ、それぞれ同一の命令情報及び行先情報を持つＮ個のデータを挙げることができる。この場合、命令情報１６及び行先情報１７は上記共通の命令情報及び行先情報となり、世代番号１８は、例えば、データ１の世代番号とすることができる。他のデータ（データ２〜データＮ）の世代番号は、各データの格納位置から復元可能である。
【００４２】
請求項２に記載のデータ駆動型プロセッサの実施形態を図２に示す。ここでいう互いに相関のある一群のデータ例として、フルカラーのデータを示す。フルカラーの画像は一般にＲｉ２０，Ｂｉ２１，Ｇｉ２２（Ｒｉ：画素ｉの赤，Ｂｉ：画素ｉの青，Ｇｉ：画素ｉの緑）の分割された信号の集合であらわされる。１つの画素にはＲＧＢが必ず含まれるため、密接な関連があるといえる。これらＲＧＢの値は別々に演算しなければならないため１つのデータパケットとして扱う。このデータは図１（ｂ）記載の各データ部分に収められる。
【００４３】
請求項３に記載のデータ駆動型プロセッサの実施形態を図３に示す。ここでいう特定の１ビットのみが異なるデータの例として、連続して入力されるシリアルなデータを挙げることができる。同一の行先（ノード番号３１）を持つ連続した２つのデータは、同一の命令情報３０と最下位（ＬＳＢ）１ビットのみが異なる世代番号を持つ。従って、図３に示すようにＬＳＢ１ビットのみを省いた世代番号３２とＬＳＢ＝１の世代番号のデータ１・３３とＬＳＢ＝０の世代番号のデータ・３４を、その位置関係で示せるので、１つのパケットに収めることができる。
【００４４】
請求項４に記載のデータ駆動型プロセッサの実施形態を図４に示す。ここでの命令情報４０、ノード番号４１、世代番号４２は図３と同様のものである。ここで、ＶＬＤフラッグ４３，４５を設けることで、データ１・４４とデータ０・４６に有効なデータが存在するかどうかを識別する（ＶＬＤ＝１：対応するデータ値は有効、ＶＬＤ＝０：対応するデータ値は無効→当該世代番号のデータは存在しないか、別パケットに存在する）。ＶＬＤフラッグがない場合はデータは常に２つ存在しなければならないが、フラッグを設けたことでデータ０のみまたはデータ１のみの場合でも処理が可能になる。これは不連続なデータ処理（入力に隙間がある場合など）に有効となる。
【００４５】
請求項５に記載のデータ駆動型プロセッサの実施形態を図５に示す。ここで複数の演算器５１（データ１用演算器）から５Ｎ（データＮ用演算器）までが存在し、これらは図１（ｂ）のデータ１９に存在する複数のデータ（データ１からデータＮ）に対応するものである。複数のデータを同時に処理するためにはデータ数相当の演算器が必要である。
【００４６】
請求項６に記載のデータ駆動型プロセッサの実施形態を図６に示す。ここで図６（ａ）はデータパケットをあらわし、命令情報６０、ノード番号６１、世代番号６２は図３と同様のものである。図６（ｂ）は対データ検出手段の内部構造（待ち合わせメモリの記憶内容）をあらわしており、ノード番号、世代番号の情報の一部（ハッシュアドレス作成に用いられなかった部分）を収容するハッシュ溢れ６３、１つ目データが存在するか否かを識別するフラッグＰＲＥ１・６４、１つ目のデータであるデータ１・６５、２つ目データが存在するか否かを識別するフラッグＰＲＥ０・６６、２つ目のデータであるデータ０・６７から構成される。ここで、ＰＲＥ０及びＰＲＥ１は対応するデータ０及びデータ１が有効か無効かによって有効：１、無効：０の値がセットされる。ハッシュ溢れの意味や詳細な動作については、文献「動的データ駆動型プロセッサによる並列処理方式の検討」（情報処理学会主催のマイクロコンピュータアーキテクチヤシンポジウム（１９９１年１１月１２日）において発行）に示されているものと同様である。図１６に本請求項の詳細な動作を示す。図１６の▲１▼〜▲５▼は対データ検出手段に含まれる待合わせのためのメモリに記憶されているデータの内容と、入出力パケットのデータの関係が示されている。各図の上段にはパケットが入力される前の状態が、下段にはパケットが出力される時の状態が示されている。▲１▼では入力時の待合わせメモリにＤ１’、Ｄ０’が既に記憶されている場合に、アドレス及びハッシュ溢れが一致する入力パケットＤ１，Ｄ０が入力されると、これらすべて相手があることになり、Ｄ１’とＤ１、Ｄ０’とＤ０がそれぞれ１組となって１パケットの形で出力される。▲２▼では入力時の待合わせメモリにＤ１’、Ｄ０’が既に記憶されている場合に、アドレス及びハッシュ溢れが一致する入力パケットＤ０のみが入力されると、これはＤ０’のみ相手があることになり、Ｄ０’とＤ０が１組となって１パケットの形で出力される。Ｄ１’は相手がいないため、メモリ内部に残される。▲３▼では入力時の待合わせメモリにＤ０’のみが既に記憶されている場合に、アドレス及びハッシュ溢れが一致する入力パケットＤ０、Ｄ１が入力されると、これらはＤ０のみ相手があることになり、Ｄ０’とＤ０が１組となって１パケットの形で出力される。Ｄ１は相手がいないため、メモリ内部に残される。▲４▼では入力時の待合わせメモリにＤ０’が既に記憶されている場合に、アドレス及びハッシュ溢れが一致する入力パケットＤ１のみが入力されると、これらは相手がいないことになり、Ｄ１、Ｄ０’ともに相手がいないためメモリ内部に残される。この場合、パケットは出力されない。▲５▼では入力時の待合わせメモリに何も記憶されていない場合に、アドレスが一致する入力パケットＤ０が入力されると、これは相手がいないため、メモリ内部に残される。この場合、パケットは出力されない。何れの場合もデータの有効・無効はＶＬＤフラッグの１，０で識別される。
【００４７】
請求項７に記載のデータ駆動型プロセッサの実施形態を図７に示す。ここで、図７（ａ）の入力時にあるのは、演算前の入力パケットである。ここでＶＬＤ７００は１つ目のデータ１（Ｄ１・７０１）が存在するか否かを示すフラッグ、ＶＬＤ７０２は２つ目のデータ０（Ｄ０・７０３）が存在するか否かを示すフラッグである。演算器７０４は入力されたパケットの１つ目のデータ（Ｄ１・７０１）に対する演算器７０５と、２つ目のデータ（Ｄ０・７０３）に対する演算器７０６とを含む。この演算器は、各データ入力に対して独立に演算を実施し、その結果を出力のパケットに書き込む。Ｄ１・７０１に対する結果はＤ１’’・７０９とＢＣ・７０８に書かれるが、ここでＢＣは条件判定を伴う命令の結果フラッグを意味する。たとえばＡ（左データ）＞Ｂ（右データ）のときに条件成立という演算があったとすると、ＡがＢより大きいときＢＣ＝１となる。逆にＢがＡより大きいとＢＣ＝０となる。同様にＤ０・７０３に対する結果はＤ０’’・７１２とＢＣ・７１１に書かれる。いま、このＢＣ・７０８とＢＣ・７１１の結果が一致しなかった場合、たとえば図７（ｃ）に示すような大小関係の成立を条件とする場合はＤ１とＤ０の値によって、結果が異なる。（Ｄ１’、Ｄ１）＝（５、１）では条件が成立し、ＢＣ・７０８＝１となる。（Ｄ０’、Ｄ０）＝（１、６）では条件が成立せず、ＢＣ・７１１＝０となる。従って、Ｄ１＝条件成立、Ｄ０＝条件不成立となる。このとき出力はＢＣ１≠ＢＣ０なので、図７（ｂ）のように、２つのパケットに別れる（ＢＣ１＝ＢＣ０のときは１パケットで出力される）。すなわち、出力１にはＤ１・７０１の出力７０７〜７０９に相当する７１３〜７１５があり、Ｄ０・７０３の出力部分はＶＬＤ・７１６＝０のためデータが無効となっている。出力２にはＤ０・７０３の出力７１０〜７１２に相当する７２２〜７２４があり、Ｄ１・７０１の出力部分はＶＬＤ・７１９＝０のためデータが無効となっている。またこのときＢＣ・７１４、７２０にはＢＣ・７０８の値が、ＢＣ・７１７、７２３にはＢＣ・７１１の値が収められる。
【００４８】
請求項８に記載のデータ駆動型プロセッサの実施形態を図８に示す。図８（ａ）で、いま入力時に対データ検出部内待合わせメモリの値が１つ目のデータ・８００が無効、２つ目のデータ・８０１が有効、入力パケットの値が１つ目のデータ・８０２が有効、２つ目のデータ・８０３が無効の場合、待合わせメモリのデータ・８０１と入力パケットのデータ・８０２がお互い揃うので、これらは１つのパケットに収容され出力される（２世代化成功）。メモリ内には何も残らない。図８（ｂ）で、いま入力時に対データ検出部内待合わせメモリの値が１つ目のデータ・８０８が無効、２つ目のデータ・８０９も無効、入力パケットの値が１つ目のデータ・８１０が無効、２つ目のデータ・８１１が有効の場合、待合わせメモリのデータと入力パケットが揃わないので、メモリ内のデータ・８１３に収容され書き込まれ、パケット出力は何も行われない（待合わせ継続）。
【００４９】
請求項９に記載のデータ駆動型プロセッサの実施形態を図９に示す。複数のデータを１つのパケットに収容する場合は、その複数個のデータがすべて揃う必要がある。例えば、３つのデータを揃える場合、入力時に対データ検出部内待合わせメモリの値が、１つ目のデータ・９００が無効、２つ目のデータ・９０１が無効、３つ目のデータ・９０２が有効、入力パケットの値が１つ目のデータ・９０３が無効、２つ目のデータ・９０４が有効、３つ目のデータ・９０５が無効の場合、待合わせメモリのデータ・９０２と入力パケットのデータ・９０４がお互い揃うが、これらだけではデータ・９０７と９０８が揃うだけであり、データ・９０６が揃わずパケットは出力されない（待ち合わせ継続）。同様に、対データ検出部内待合わせメモリの値が、１つ目のデータ・９１０が無効、２つ目のデータ・９１１が有効、３つ目のデータ・９１２が有効、入力パケットの値が１つ目のデータ・９１３が有効、２つ目のデータ・９１４が無効、３つ目のデータ・９１５が無効の場合、待合わせメモリのデータ・９１１、９１２と入力パケットのデータ・９１３がお互い揃い、これらの値はパケットデータ・９１９、９２０、９２１となって出力される（３世代化成功）。メモリには何も残らない。
【００５０】
請求項１０に記載のデータ駆動型プロセッサの実施形態を図１０に示す。ここで図１０に示す入力時に、待合わせメモリのアドレスは一致するが、メモリ側の識別子・１００（世代番号またはノード番号）とパケット側の識別子・１０２（世代番号またはノード番号）が一致しない場合に、図１０に示す入力側のデータ・１０３がメモリ側データ・１０４に書き込まれ、メモリ側のデータ・１０１がパケットデータ・１０５に書き込まれて出力される。この場合の不一致の判定条件としては、世代番号が連続していない、ノード番号が異なるなどがある。このように、２世代化に於いて、古いパケットの待ち合わせよりも、新しいパケットの待ち合わせの方が優先される。本実施形態は、古いパケットより新しいパケットの方が、２世代化の確率が高い場合に、有効なものとなる。
【００５１】
請求項１１に記載のデータ駆動型プロセッサの実施形態を図１１に示す。ここで図１１に示す入力時に、待合わせメモリのアドレスは一致するが、図１０と同様にメモリ側の識別子（世代番号またはノード番号）とパケット側の識別子（世代番号またはノード番号）が一致しない場合でも、図１１に示すメモリ側のデータ・１１０がメモリ側データ・１１２にそのまま残され、パケット側のデータ・１１１がパケットデータ・１１３にそのまま書き込まれて出力される。この場合の不一致の判定条件としても、世代番号が連続していない、ノード番号が異なるなどがある。このように、２世代化に於いて、既に待ち合わせを行っているパケットが常に優先される。本実施形態は、待ち合わせの相手パケットが必ず入力される場合に、有効なものとなる。
【００５２】
請求項１２に記載のデータ駆動型プロセッサの実施形態を図１２に示す。ここでハッシュ溢れ・１２０、データ１・１２２、データ０・１２３は図６（ｂ）と同様のものである。これらのほかに２世代化判定フラッグＦ・１２１を設ける。Ｆ・１２１＝１のときに書かれたデータを２世代化の相手を待つものとみなす。一方、Ｆ・１２１＝０のときは、通常のデータ対作成の為の相手を待つものとみなす。すなわち、フラッグＦの内容により識別可能となる。これにより、通常の対データ検出手段の持つ待合わせメモリと同様のメモリに、２世代化待合わせ機能を与えることができる。
【００５３】
請求項１３に記載のデータ駆動型プロセッサの実施形態を図１３に示す。ここで図１３に示す入力時に、待合わせメモリのアドレスは一致し、該当のメモリ（この場合データ・１３０）が無効であっても、パケット側のデータ・１３２はデータ・１３０に書かれない。図１３の出力時に示すように、メモリ側のデータ・１３０、１３１がメモリ側データ・１３４、１３５にそのまま残され、パケット側のデータ・１３２、１３３がパケットデータ・１３６、１３７にそのまま書き込まれて出力される。この場合の書き込まない判定条件として、奇数側の世代番号のデータが偶数側の世代番号のデータよりも先に入力されたことが挙げられる。２世代化では、２世代化されるペアのうち、若い番号は常に偶数である。世代番号は０から始まるから、例えば１より０、３より２がより若い。従って、奇数世代のデータが先に来た場合は、待合わせメモリにその相手がいない場合、若い世代のデータは既に出力されたと判断して、メモリに書き込まれないのである。
【００５４】
請求項１４に記載のデータ駆動型プロセッサの実施形態を図１４に示す。ここで１５１〜１５５は図１の１１〜１５と同様である。いまパケットの一部が１４０〜１４４の２世代化されたパケットが分岐手段１５５に入力されたとき、世代番号・１４０の最下位１ビットの奇数世代がＶＬＤ・１４１とデータ１の・１４２に、偶数世代がＶＬＤ・１４３と・データ０・１４４が相当することから、これを２つのパケットに分解するためには、世代の最下位ビット０・１４６を追加した新たな世代番号を持つパケットにデータ０・１４７を収め、世代の最下位ビット１・１４９を追加した新たな世代番号を持つパケットデータ１・１５０を収める。このようにして作成された２つのデータパケットが分岐手段１５５より出力される。
【００５５】
【発明の効果】
請求項１の発明により、従来複数パケットに別れていた処理を１つのパケットで行うことができる。そのために複数パケットを転送していた時間が短縮される。
【００５６】
請求項２の発明により、ＲＧＢなどの本来１つのピクセルに対するデータを別々のパケットで扱う必要がなくなる。そのために複数パケットを転送していた時間が短縮される。
【００５７】
請求項３の発明により、本来１ビットしか違わない識別子を別々のパケットで持つ必要がなくなる。従ってパケットのサイズが短縮できる。
【００５８】
請求項４の発明により、１ビットの情報でパケット内の複数データのどれが有効で、どれが無効かを識別することができる。従って、データ管理が容易となる。
【００５９】
請求項５の発明により、複数のデータを持つパケットが複数の演算器で同時（１命令で）演算できるようになる。
【００６０】
請求項６の発明により、データ駆動型のプロセッサ内部で単一のデータしか持たないパケットと、複数データを持つパケットとが相互に矛盾なく待合わせすることができるようになる。
【００６１】
請求項７の発明により、複数データを持つパケットがプログラムの条件判定によって、複数個のパケットに分離できるようになる。
【００６２】
請求項８の発明により、データ駆動型のプロセッサ内部で単一のデータしか持たないパケットを２つのデータを持つパケットに変換することができるようになる。
【００６３】
請求項９の発明により、データ駆動型のプロセッサ内部で単一のデータしか持たないパケットを複数のデータを持つパケットに変換することができるようになる。
【００６４】
請求項１０の発明により、単一データのパケットを複数データのパケットに変換する際に、古いパケットより新しいパケットの待ち合わせを優先させることができる。
【００６５】
請求項１１の発明により、単一データのパケットを複数データのパケットに変換する際に、既に待ち合わせを行っているパケットを常に優先させることができる。
【００６６】
請求項１２の発明により、複数のデータを持つパケットに変換する待合わせメモリを、通常のプログラムで用いる対データ検出手段用のメモリと兼用して用いることができるようになる。そのために余分なメモリを新たに備える必要がない。
【００６７】
請求項１３の発明により、単一データのパケットを複数データのパケットに変換する際に、必要以上に待合わせメモリの領域を占有するパケットがなくなる。請求項１４の発明により、複数データのパケットを単一データのパケットに分解することができる。これにより複数データが処理できる装置と、単一データしか処理できない装置間のデータに互換性を持たせることができる。
【図面の簡単な説明】
【図１】（ａ）及び（ｂ）は、それぞれデータ駆動型プロセッサ装置及びその内部を流れるデータパケットのブロック構成図である。
【図２】互いに密接な関連を持つＲＧＢデータの構成図である。
【図３】複数データを持つパケットの構成図である。
【図４】データの有効無効（ＶＬＤ）フラッグを持つパケットの構成図である。
【図５】複数演算器を持つ演算手段の構成図である。
【図６】複数データに対応する待合わせメモリの構成図であり、（ａ）はパケットの構成図、（ｂ）は待合わせメモリの内部構成図である。
【図７】複数データの条件分岐が可能な演算器を示す構成図であり、（ａ）は複数データが入力された場合の演算動作を説明する図、（ｂ）は出力パケットの構成図、（ｃ）は大小判定演算の実行例を示す図である。
【図８】２世代化の実行時のパケット構成図であり、（ａ）は２世代化が成功した場合の構成図、（ｂ）は２世代化が成功しなかった場合の構成図である。
【図９】複数世代化の実行時のパケット構成図であり、（ａ）は複数世代化が成功しなかった場合の構成図、（ｂ）は複数世代化が成功した場合の構成図である。
【図１０】２世代化が実行される場合の優先関係を示す図である。
【図１１】図１０とは別の手段の２世代化が実行される場合の優先関係を示す図である。
【図１２】２世代化機能を内蔵した対データ検出手段のメモリの構成図である。
【図１３】２世代化が実行されない場合を示す図である。
【図１４】多世代化されたデータが単独のデータを持つパケットに分解される関係を示す図である。
【図１５】（ａ）及び（ｂ）は、それぞれ一般的なデータ駆動型プロセッサのブロック構成図及びデータパケットの構成図である。
【図１６】複数データに対応する待合わせメモリの構成図であり、待合わせメモリの状態とパケットの状態との対応関係を示した対応図である。
【符号の説明】
１０  入力制御手段
１１  合流手段
１２  対データ検出手段
１３  演算処理手段
１４  プログラム記憶手段
１５  分岐手段
１６  命令情報
１７  行先情報
１８  世代番号
１９  データ１，…，データＮ
【図１】
0003720094.tif 000002
【図２】
0003720094.tif 000003
【図３】
0003720094.tif 000004
【図４】
0003720094.tif 000005
【図５】
0003720094.tif 000006
【図６】
0003720094.tif 000007
【図７】
0003720094.tif 000008
【図８】
0003720094.tif 000009
【図９】
0003720094.tif 000010
【図１０】
0003720094.tif 000011
【図１１】
0003720094.tif 000012
【図１２】
0003720094.tif 000013
【図１３】
0003720094.tif 000014
【図１４】
0003720094.tif 000015
【図１５】
0003720094.tif 000016
【図１６】
0003720094.tif 000017