(57)【特許請求の範囲】
【請求項１】
入力されるデータパケット中の命令をデコードするための命令デコード手段と、
データフロープログラムを予め記憶し、入力されるデータパケット中の行先情報の値に応じて、対応の二組の命令および行先情報を出力するためのプログラム記憶手段と、
入力されるデータパケット中の所定の領域内の値を、命令デコード手段の出力に応じて更新するための第１の更新手段と、
前記第１の更新手段を介して入力されるデータパケットと、前記プログラム記憶手段から出力された前記二組の命令および行先情報とに基づいて一対のデータパケットを生成するためのパケット生成手段と、
前記第１の更新手段により更新された値に基づいて、前記パケット生成手段が生成した前記一対のデータパケットの両方を出力する第１の出力制御、及び、前記一対のデータパケットの内の一方のデータパケットのみを出力して他方のデータパケットは出力しない第２の出力制御のいずれかを行なう出力制御手段とを含み、
前記命令デコード手段によって所定命令がデコードされた場合、前記パケット生成手段が生成した一対のデータパケットの内の前記他方のデータパケットに格納された命令は、前記所定命令であり、前記出力制御手段は、前記第１の更新手段により更新された値が所定値以外のときは、前記一対のデータパケットの両方を出力し、前記第１の更新手段により更新された値が前記所定値のときは、前記一対のデータパケットの内の前記一方のデータパケットのみを出力し、前記他方のデータパケットは出力しない、データ駆動型情報処理装置。
【請求項２】
前記入力されるデータパケットは、識別子領域を含み、
前記データ駆動型情報処理装置は、前記識別子領域内の値を所定の方法にしたがって更新する第２の更新手段をさらに含み、
前記パケット生成手段は、さらに前記第２の更新手段も介して、データパケットを入力する、請求項１に記載のデータ駆動型情報処理装置。
【請求項３】
前記識別子領域は、複数個の部分領域を含み、
前記第２の更新手段は、前記複数個の部分領域を個別に更新するための個別更新手段を含む、請求項２に記載のデータ駆動型情報処理装置。
【請求項４】
前記入力されるデータパケットは、任意のデータを格納するデータ領域を含み、
前記第２の更新手段は、前記識別子領域を、前記データ領域に格納されたデータを用いて更新するための手段を含む、請求項２または請求項３に記載のデータ駆動型情報処理装置。
【請求項５】
入力されるデータパケット中の命令をデコードするための命令デコード手段と、
データフロープログラムを予め記憶し、入力されるデータパケット中の行先情報の値に応じて、対応の二組の命令および行先情報を出力するためのプログラム記憶手段と、
入力されるデータパケット中の所定の領域内の値を、命令デコード手段の出力に応じて更新するための第１の更新手段と、
入力されるデータパケット中の識別子領域内の値を所定の方法にしたがって更新するための第２の更新手段と、
前記第１の更新手段及び前記第２の更新手段を介して入力されるデータパケットと、前記プログラム記憶手段から出力された前記二組の命令および行先情報とに基づいて一対のデータパケットを生成するためのパケット生成手段と、
前記第１の更新手段により更新された値に基づいて、前記パケット生成手段が生成した前記一対のデータパケットの両方を出力する第１の制御手段、及び、前記一対のデータパケットの内の一方のデータパケットのみを出力して他方のデータパケットは出力しない第２の出力制御のいずれかを行なう出力制御手段とを含み、
前記識別子領域は、複数個の部分領域を含み、
前記入力されるデータパケットは、任意のデータを格納するデータ領域を含み、前記データ領域は、前記複数個の部分領域に対応した複数個の部分データ領域に分割され、
前記第２の更新手段は、前記識別子領域の前記部分領域を、それぞれ対応の前記部分データ領域に格納されたデータを用いて個別に更新するための個別更新手段を含む、データ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ駆動型情報処理装置に関し、特に、一つの特定のパケットを入力することによりストリーム状のデータパケットを自動的に生成する機構を有し、それによって映像信号処理において画像の塗りつぶし等の繰返し処理を高速に実行することができるデータ駆動型情報処理装置に関する。
【０００２】
【従来の技術】
図８にデータ駆動型情報処理装置のシステム構成を示す。同様のシステム構成例は、「動的データ駆動型プロセッサにおける並列処理方式の検討」（金倉広志他、マイクロコンピュータアーキテクチャシンポジウム、情報処理学会、１９９１年１１月１２日）に示されている。
【０００３】
図８を参照して、このデータ駆動型情報処理装置１１３には、データ伝送路１１６または１１７から、入力時間順序に付けられる識別子である世代番号を持つ信号入力データパケットが入力ポートＩＡまたはＩＢを介して時系列的に入力される。データ駆動型情報処理装置１１３には、予め設定された処理内容が記憶されており、その設定内容に基づき処理が進められる。
【０００４】
データ駆動型情報処理装置１１３は、出力ポートＯＶを有しており、出力ポートＯＶから画像メモリ１１４に対するアクセス要求（画像メモリ１１４の内容の参照／更新など）をデータ伝送路１２０上に出力する。データ伝送路１２０にはメモリインタフェース１１５が接続されており、メモリインタフェース１１５はこのアクセス要求に応答して、メモリアクセス制御線１２２を通して画像メモリ１１４に対してアクセスを行い、その結果をデータ伝送路１２１上に出力する。データ伝送路１２１はデータ駆動型情報処理装置１１３の入力ポートＩＶに接続されており、データ駆動型情報処理装置１１３はメモリインタフェース１１５からのデータを受け、信号入力データパケットに対する処理が終了した後、出力ポートＯＡまたはＯＢから、データ伝送路１１８または１１９の上に信号出力データパケットを出力する。
【０００５】
図９は、図８に示すデータ駆動型情報処理装置の概略構成を示すブロック図である。図９を参照して、従来のデータ駆動型情報処理装置は、入力ポートＩＡまたはＩＢから入力されたデータパケットと、後述する分岐部１２８から与えられるデータパケットとを合流させるための合流部１２４と、合流部１２４から与えられるデータパケットを格納する待合せメモリを有し、対となるデータパケットを検出（発火の検出）してデータパケットを出力するための発火制御部１２５と、発火制御部１２５で発火が検出され出力されたデータパケットに対して、データパケット中の演算コードの値によって選ばれた演算処理を実行するための演算部１２６と、予め命令コードとノード番号との対からなるデータフロープログラムを記憶したプログラムメモリを有し、演算部１２６の実行結果を格納したデータパケットを受けて、その中に含まれるノード番号をアドレスとしてプログラムメモリをアクセスすることにより次に行われる命令コードとノード番号とを読み出してデータパケット内の命令コードとノード番号とを更新して出力するためのプログラム記憶部１２７と、プログラム記憶部１２７から出力されたデータパケットを、その中に含まれるノード番号にしたがって出力ポートＯＡまたはＯＢを介して外部への伝送路に、または合流部１２４のいずれかに分岐させるための分岐部１２８とを含む。
【０００６】
図１０を参照して、データ駆動型情報処理装置が扱うデータパケットは、上位ビットから順に命令コードと、ノード番号と、世代番号と、データＤとを含む。
【０００７】
命令コードとは、前述した演算部１２６で実行される演算の内容を指示するためのものである。ノード番号は、プログラム記憶部１２７のプログラムメモリに格納されている次に実行される命令コードとノード番号とを参照するためのアドレスとして使用されるものである。世代番号は、一般にはデータパケットの識別子として使用される。ただし世代番号は、映像信号処理の際の画像アドレスとしての意味合いも有することができ、その場合には図１０に示されるように上位ビットからフィールド番号ＦＤ＃と、ライン番号ＬＮ＃と、ピクセル番号ＰＸ＃とに分割される。
【０００８】
フィールド番号ＦＤ＃とライン番号ＬＮ＃とピクセル番号ＰＸ＃とはそれぞれ、図１１に示されるような画像メモリ１１４の論理的な構成に対応している。図１１を参照して、画像メモリ１１４の論理的な構成は、フィールド番号ＦＤ＃、ライン番号ＬＮ＃，ピクセル番号ＰＸ＃の各ビット数をそれぞれＦｂ，Ｌｂ，およびＰｂとすると、２Fb枚のフィールド画像メモリを含み、各フィールド画像メモリは垂直方向に２Lb本のラインを含み、各ラインは２Pb個のピクセルを含む。
【０００９】
図９に示されるデータ駆動型情報処理装置は以下のように動作する。伝送路Ｉから入力されたデータパケットは発火制御部１２５の待合せ用メモリに一旦格納され、対となるべきデータパケットが入力されるまで待機する。このデータパケットと対になるべきデータパケットが発火制御部１２５に与えられると、両方のデータパケットに含まれるデータを有するデータパケットが発火制御部１２５から演算部１２６に出力される。
【００１０】
演算部１２６は、データパケットに含まれる命令コードの値によって演算処理を選び実行して、結果を含んだデータパケットをプログラム記憶部１２７に与える。プログラム記憶部１２７は、与えられたデータパケットに含まれるノード番号をアドレスとしてプログラムメモリをアクセスして、対応の命令コードとノード番号とを読み出し、データパケットの命令コードとノード番号とを更新する。
【００１１】
こうして生成された新たなデータパケットは分岐部１２８に与えられる。分岐部１２８は、データパケットのノード番号を参照し、外部に出力すべきデータパケットは伝送路ＯＡまたはＯＢに、内部を循環させるべきデータパケットは合流部１２４に、それぞれ出力する。
【００１２】
このような従来のデータ駆動型情報処理装置において、画像処理で多用される画像の塗りつぶし処理を行う場合を考える。画像の塗りつぶしのためには、画像のピクセル番号が順次インクリメントされたストリーム状のデータパケットを生成する必要がある。ストリーム状のデータパケットを生成するデータフローグラフを図１２に示す。
【００１３】
図１２を参照して、従来の方式では、データの値によって分岐するＳＷＬＧＴＲ命令１３０と、データＤをデクリメントする命令ＤＥＣ命令１３２と、ピクセル番号ＰＸ＃をインクリメントするＰＸＩＮＣ命令１３４とを組み合わせて上述の処理を実現している。
【００１４】
図１２を参照して、入力経路１２９よりライン番号ＬＮ＃＝５、ピクセル番号ＰＸ＃＝１、入力データＤ＝６のデータパケットが入力されるものとする。入力されたデータパケットは、まずＳＷＬＧＴＲ命令１３０に与えられる。ここで、以下の説明の便宜上、データ駆動型情報処理装置におけるオペランドの名称について説明する。例えば、減算処理Ｚ＝Ｘ−Ｙを考えると、Ｘを左入力データまたは単に左データ、Ｙを右入力データまたは単に右データ、Ｚを結果データまたは出力データと称する。
【００１５】
ＳＷＬＧＴＲ命令１３０では、左データとして入力されたデータパケットのデータＤの値と、右データとして入力されたデータパケットのデータＤの値とを比較し、左データの方が右データより大きい場合に左の経路１３１にデータパケットを出力する。もしも左データが右データより小さいか等しい場合、データパケットは右の経路１３８に出力され消去（ａｂｓｏｒｂ）される。
【００１６】
この例では、右データ１３７は定数でありその値は０であるものとする。したがって入力されたデータパケットのデータＤの値が０より大きければデータパケットは経路１３１に出力される。入力されたデータパケットのデータＤの値が０以下であればこのデータパケットは消去される。
【００１７】
経路１３１に出力されたデータパケットはＤＥＣ命令１３２に与えられる。ＤＥＣ命令１３２は、入力されたデータパケットのデータＤの値を１デクリメントして出力する。ＤＥＣ命令１３２が実行されると、このデータパケットはＰＸＩＮＣ命令１３４に与えられる。ＰＸＩＮＣ命令１３４は入力されたデータパケットの世代番号のうち、ピクセル番号ＰＸ＃を１インクリメントし、出力する。上記した一連の処理の結果、入力されたデータパケットは世代番号のうちのライン番号とピクセル番号（ＬＮ＃，ＰＸ＃）＝（５、２）、データＤ＝５となって出力される。
【００１８】
ＰＸＩＮＣ命令１３４から出力された結果のデータパケットは二つに複製され、一方は経路１３５を経由して出力され、他方は経路１３６を経由して再度ＳＷＬＧＴＲ命令１３０に入力される。
【００１９】
このようにしてＳＷＬＧＴＲ命令１３０に再度データパケットが入力されることにより、この３つの命令よりなるデータフローグラフはループ状となり、データパケットのデータＤの値が０になるまでＤが１ずつデクリメントされながらデータパケットが出力される。すなわち、最初に入力されたデータパケットのデータＤの値に等しいだけの数のデータパケットが出力される。出力されたデータパケットのピクセル番号ＰＸ＃は連続番号となっており、画像塗りつぶしの際にはデータＤの値を新たに与えてやるだけで連続した部分を塗りつぶすことができる。
【００２０】
【発明が解決しようとする課題】
しかし上記した従来の例では、最低３つの命令を組合わせなければストリーム状のデータパケットを生成することができない。３つの命令を実行しなければデータパケットが生成されないので、一つのデータパケットを生成するための時間が増大し非効率的である。また、上記した例では複雑な世代番号の操作が困難である。複雑な世代番号操作をする場合、必要な命令数が増大しさらに処理が非効率的になるという問題点がある。
【００２１】
それゆえにこの発明の目的は、より効率的にストリーム状のデータパケットを生成することができるデータ駆動型情報処理装置を提供することである。
【００２２】
この発明の他の目的は、より効率的に、かつ世代番号処理を簡単に行いながらストリーム状のデータパケットを生成することができるデータ駆動型情報処理装置を提供することである。
【００２３】
この発明のさらに他の目的は、複雑な世代番号処理を簡単にかつ効率的に行いながらストリーム状のデータパケットを容易に生成することができるデータ駆動型情報処理装置を提供することである。
【００２４】
【課題を解決するための手段】
請求項１に記載の発明にかかるデータ駆動型情報処理装置は、入力されるデータパケット中の命令をデコードするための命令デコード手段と、データフロープログラムを予め記憶し、入力されるデータパケット中の行先情報の値に応じて、対応の二組の命令および行先情報を出力するためのプログラム記憶手段と、入力されるデータパケット中の所定の領域内の値を、命令デコード手段の出力に応じて更新するための第１の更新手段と、第１の更新手段を介して入力されるデータパケットと、プログラム記憶手段から出力された二組の命令および行先情報とに基づいて一対のデータパケットを生成するためのパケット生成手段と、第１の更新手段により更新された値に基づいて、パケット生成手段が生成した一対のデータパケットの両方を出力する第１の出力制御、及び、一対のデータパケットの内の一方のデータパケットのみを出力して他方のデータパケットは出力しない第２の出力制御のいずれかを行なう出力制御手段とを含み、命令デコード手段によって所定命令がデコードされた場合、パケット生成手段が生成した一対のデータパケットの内の他方のデータパケットに格納された命令は、所定命令であり、出力制御手段は、第１の更新手段により更新された値が所定値以外のときは、一対のデータパケットの両方を出力し、第１の更新手段により更新された値が所定値のときは、一対のデータパケットの内の一方のデータパケットのみを出力し、他方のデータパケットは出力しない。
【００２５】
データパケットが入力されると、そのデータパケットに対応した一対のデータパケットが生成される。命令デコード手段の出力に基づいてデータパケット中の所定の領域内の値を更新し、この更新後の値に基づいて、この一対のデータパケットの少なくとも一方の出力を制御する。１対のデータパケットの双方が出力された場合にはその一方を再度当該データ駆動型情報処理装置に入力することにより、同様の処理が繰返し実行され、その結果外部にはストリーム状のデータパケットが出力される。第１の更新手段による更新後の結果がある条件を満足すれば一方のデータパケットのみが外部に出力されて繰返し処理が終了する。したがって、一つの命令だけで、ストリーム状のデータパケットを生成し出力することを効率的に行うことができる。
【００２６】
請求項２に記載の発明にかかるデータ駆動型情報処理装置は、請求項１に記載の構成に加えて、入力されるデータパケットは、識別子領域を含み、データ駆動型情報処理装置は、識別子領域内の値を所定の方法にしたがって更新する第２の更新手段をさらに含み、パケット生成手段は、さらに第２の更新手段も介して、データパケットを入力する。
【００２７】
このデータ駆動型情報処理装置によれば、請求項１に記載の発明の作用効果に加えて、データパケット内の識別子を更新することができる。そのため、たとえば画像処理のように画像の表示位置に対応した別々の識別子を持つストリーム状のデータパケットを効率的に生成し出力することができる。
【００２８】
請求項３に記載の発明にかかるデータ駆動型情報処理装置は、請求項２に記載の発明の構成に加えて、識別子領域は、複数個の部分領域を含み、第２の更新手段は、複数個の部分領域を個別に更新するための個別更新手段を含む。
【００２９】
このデータ駆動型情報処理装置によれば、請求項２に記載の発明の作用効果に加えて、データパケットの識別子領域の部分領域を個別に更新することができる。そのため、たとえば画像処理におけるように多次元の画像の表示位置に対応した識別子を持つストリーム状のデータパケットを効率的に生成し出力することができる。
【００３０】
請求項４に記載の発明にかかるデータ駆動型情報処理装置は、請求項２または請求項３に記載の発明の構成に加えて、入力されるデータパケットは、任意のデータを格納するデータ領域を含み、第２の更新手段は、識別子領域を、データ領域に格納されたデータを用いて更新するための手段を含む。
【００３１】
このデータ駆動型情報処理装置によれば、、請求項２または請求項３に記載の発明の作用効果に加えて、データパケットの識別子領域を更新するための値を入力データパケットに含ませることができる。そのため、定められた処理のみではない自由度の高い処理を識別子に対して行うことができる。
【００３２】
請求項５に記載の発明にかかるデータ駆動型情報処理装置は、入力されるデータパケット中の命令をデコードするための命令デコード手段と、データフロープログラムを予め記憶し、入力されるデータパケット中の行先情報の値に応じて、対応の二組の命令および行先情報を出力するためのプログラム記憶手段と、入力されるデータパケット中の所定の領域内の値を、命令デコード手段の出力に応じて更新するための第１の更新手段と、入力されるデータパケット中の識別子領域内の値を所定の方法にしたがって更新するための第２の更新手段と、第１の更新手段及び第２の更新手段を介して入力されるデータパケットと、プログラム記憶手段から出力された二組の命令および行先情報とに基づいて一対のデータパケットを生成するためのパケット生成手段と、第１の更新手段により更新された値に基づいて、パケット生成手段が生成した一対のデータパケットの両方を出力する第１の制御手段、及び、一対のデータパケットの内の一方のデータパケットのみを出力して他方のデータパケットは出力しない第２の出力制御のいずれかを行なう出力制御手段とを含み、識別子領域は、複数個の部分領域を含み、入力されるデータパケットは、任意のデータを格納するデータ領域を含み、データ領域は、複数個の部分領域に対応した複数個の部分データ領域に分割され、第２の更新手段は、識別子領域の部分領域を、それぞれ対応の部分データ領域に格納されたデータを用いて個別に更新するための個別更新手段を含む。
【００３３】
このデータ駆動型情報処理装置によれば、請求項３に記載の発明の作用効果に加えて、データパケットの識別子領域の個々の部分領域を個別に、入力されるデータパケット中の対応する領域の値を用いて更新することができる。そのため、定められた処理のみではない自由度の高い、かつより複雑な処理を識別子に対して行うことができる。
【００３４】
【発明の実施の形態】
［第１の実施の形態］
図１を参照して、本発明のデータ駆動型情報処理装置の第１の実施の形態にかかるデータパケット生成装置は、パケットデータ転送制御回路（以下「Ｃ素子」と称する。）１、３、４と、Ｃ素子１とＣ素子３との間に接続され、Ｃ素子１からの入力パルスに応じてＣ素子３に二つのパルスを出力するためのパルスの複製機能を有するＣ素子２（以下Ｃ素子２をＣ素子１、３、４と区別するためにＣ’素子２と称する。またＣ’素子２およびＣ素子１、３、４を含めて集合的にＣ素子と呼ぶ。）とを含む。各Ｃ素子には、対応のパイプラインレジスタ５、６、７、８が接続されている。各Ｃ素子１、２、３、４はハンドシェイク動作を行いながら、図１における左方向より入力された転送パルスを受付け、それぞれ対応するパイプラインレジスタ５、６、７、８にラッチパルスを出力し、後段のＣ素子へパルスを転送する。
【００３５】
なおＣ’素子２は、前述のようにＣ素子１からの入力パルスに応じて二つのパルスを出力するとき、１つめのパルスの出力のときには０、２つめのパルスの出力のときには１となる信号＊第１／第２信号２０を出力する機能を有する。なお、記号「＊」はローアクティブな信号を表し、図面においてはオーバーバーで示す。
【００３６】
パイプラインレジスタ５、６、７および８はそれぞれ、命令コード、ノード番号、世代番号、およびデータをラッチすることができる。パイプラインレジスタ６はさらに、後述する、入力データパケットのデータＤのゼロ検出結果を記憶する最下位ビットＺを有する。またパイプラインレジスタ７は、入力データパケットのデータＤのゼロ検出結果とＣ’素子２からのパルスの値との論理積により得られる消去信号を記憶するための最下位ビットを有する。
【００３７】
パイプラインレジスタ５のノード番号は経路１３を経てパイプラインレジスタ６のノード番号に接続される。パイプラインレジスタ５の世代番号は、経路１４を経てパイプラインレジスタ６の世代番号に接続される。
【００３８】
データパケット生成装置はまた、パイプラインレジスタ５のデータを経路１５を経て受け、経路１７から与えられる信号に応答して１デクリメントして経路１６上に出力する減算器１０と、経路１８から与えられる信号に応答して、経路１６上のデータが０か否かを検出して経路１９上に検出結果を出力するためのゼロ検出回路１１と、パイプラインレジスタ５の命令コードを受け、命令コードがデータパケット生成命令（ＲＰＴ命令と称する。）である場合に経路１７上に信号を出力して減算器１０を動作させ、また経路１８上に信号を出力してゼロ検出回路１１を動作させるための命令デコーダ９とを含む。ゼロ検出回路１１の出力は経路１９を経てパイプラインレジスタ６の最下位ビットＺに接続される。
【００３９】
データパケット生成装置はさらに、各アドレスに２組の命令コードおよびノード番号を予め記憶しており、パイプラインレジスタ６から経路２１を経て与えられるノード番号をアドレスとして参照され、この値で示されるアドレスに格納されている２組の命令コードおよびノード番号を出力するためのプログラムメモリ３２と、プログラムメモリ３２から２組の命令コードおよびノード番号を受け、Ｃ’素子２から与えられる＊第１／第２信号２０が０か１かにしたがって、命令コード１およびノード番号１、または命令コード２およびノード番号２のいずれかをそれぞれ経路３７および３８上に出力するためのマルチプレクサ２５と、第１の入力がＣ’素子２からの＊第１／第２信号２０に、第２の入力がパイプラインレジスタ６の最下位ビットＺに、出力が経路３９に、それぞれ接続されたＡＮＤゲート回路２６とを含む。
【００４０】
パイプラインレジスタ６のノード番号は前述のように経路２１を経てプログラムメモリ３２に与えられる。パイプラインレジスタ６の世代番号は経路２２を経てパイプラインレジスタ７の世代番号に与えられる。パイプラインレジスタ６のデータは経路２３を経てパイプラインレジスタ７のデータに与えられる。ＡＮＤゲート回路２６の出力は経路３９を経てパイプラインレジスタ７の最下位ビットに与えられる。マルチプレクサ２５の出力である経路３７および３８はそれぞれパイプラインレジスタ７の命令コードおよびノード番号に接続される。
【００４１】
パイプラインレジスタ７の命令コードは経路２７を経てパイプラインレジスタ８の命令コードに与えられる。パイプラインレジスタ７のノード番号は経路２８を経てパイプラインレジスタ８のノード番号に与えられる。パイプラインレジスタ７の世代番号は経路２９を経てパイプラインレジスタ８の世代番号に与えられる。パイプラインレジスタ７のデータ３０は経路３０を経てパイプラインレジスタ８のデータに与えられる。
【００４２】
データパケット生成装置はさらに、Ｃ素子３とＣ素子４との間に設けられ、通常はＣ素子３からのパルスをＣ素子４に転送するが、経路３１から与えられる信号（「消去信号」と称する。）が特定の値のときにはＣ素子３からのパルスをＣ素子４へ転送しないよう動作する消去制御部２４を含む。経路３１には、パイプラインレジスタ７の最下位ビットが出力され、消去制御部２４に与えられる。
【００４３】
図１に示されるデータパケット生成装置の、ストリーム状のデータパケットを生成する場合の動作について、図２に示されるデータフローグラフを参照して説明する。この装置に対応した命令が、図２に示すＲＰＴ命令である。図２を参照して本命令では、経路３３から入力されたデータに対してデータＤの値から１を減ずる。その結果のデータＤの値が０でない場合には経路３５および３６の双方にそのデータパケットを出力する。この二つのデータパケットは、経路３３から入力されたデータパケットの命令コードおよびノード番号がそれぞれ、図１に示す命令コード１およびノード番号１、ならびに命令コード２およびノード番号２に更新されたものである。
【００４４】
データＤの減算の結果データＤの値が０となった場合には、データパケットは経路３５のみに出力され、経路３６には出力されない。
【００４５】
図１に示すデータパケット生成装置に設けられた減算器１０、ゼロ検出回路１１、ＡＮＤゲート回路２６、消去制御部２４、Ｃ’素子２、マルチプレクサ２５などは上記した機能を実現するために設けられたものである。
【００４６】
以下、図１に示すデータパケット生成装置がどのようにして図２に示すデータフローグラフに対応した処理を実現するかについて説明する。
【００４７】
パイプラインレジスタ５は、入力されたデータパケットをラッチし、ラッチしたデータパケット中に含まれる命令コードの内容を経路１２を介して命令デコーダ９に与える。命令デコーダ９は、命令コードの内容がＲＰＴ命令である場合には、以下の動作を行なうように信号を出力する。
【００４８】
まず、命令デコーダ９は、減算器１０に信号を与えて入力データパケットのデータを１デクリメントして、経路１６を介して次のパイプラインレジスタ６に書き込む。その一方命令デコーダ９は、ゼロ検出回路１１に信号を与えて、減算器１０から出力されたデータが０か否かを検出させ、その検出結果を経路１９を経てパイプラインレジスタ６の最下位ビットに書き込む。
【００４９】
パイプラインレジスタ６は、パイプラインレジスタ５から経路１３を介してノード番号を受取り、このノード番号をプログラムメモリ３２に経路２１を介してアドレス信号として与える。またパイプラインレジスタ６は、パイプラインレジスタ５から経路１４を介して受けた世代番号および減算器１０から経路１６を介して受けた１減算後のデータをそれぞれ次段のパイプラインレジスタ７の世代番号およびデータに書き込む。
【００５０】
前述のように、プログラムメモリ３２には、２組の命令コードとノード番号とが格納されている。プログラムメモリ３２は、経路２１を介してパイプラインレジスタ６から受けたノード番号の値で示された２組の命令コードとノード番号（それぞれ添字１と２とで示す。）とをマルチプレクサ２５に出力する。
【００５１】
マルチプレクサ２５は、＊第１／第２信号２０の値が０か１かにより以下の動作を行なう。まず、＊第１／第２信号２０の値が０の場合にはマルチプレクサ２５は、命令コード１とノード番号１とを選択してそれぞれ経路３７および３８を介してパイプラインレジスタ７に格納させる。＊第１／第２信号２０の値が１の場合にはマルチプレクサ２５は、命令コード２とノード番号２とを選択してそれぞれ経路３７および３８を介してパイプラインレジスタ７に格納させる。
【００５２】
ＡＮＤゲート回路２６は、＊第１／第２信号２０とパイプラインレジスタ６の最下位ビットＺ（すなわちゼロ検出回路１１の検出結果）との論理積をとり、結果を経路３９を介してパイプラインレジスタ７の最下位ビットに書込む。この値は、後述するように消去制御部２４を制御するための消去信号として使用される。Ｃ’素子２がＣ素子１からの入力パルスを複製して１つめのパルスを出力するときには、＊第１／第２信号２０が０となっているので、ゼロ検出回路１１の検出結果にかかわらずＡＮＤゲート回路２６の出力は０である。
【００５３】
Ｃ’素子２がＣ素子１からの入力パルスを複製して２つめのパルスを出力するときには、前述のように＊第１／第２信号２０は１である。したがってゼロ検出回路１１の検出結果が真となっているばあいにはＡＮＤゲート回路２６の出力は１である。またゼロ検出回路１１の検出結果が偽である場合にはＡＮＤゲート回路２６の出力は０となる。
【００５４】
前述のように消去制御部２４は、経路３１から与えられる消去信号が１である場合には、Ｃ素子３から与えられたパルスをＣ素子４に与えない。一方、消去信号が０である場合には、消去制御部２４はパルスをＣ素子４に出力する。したがって、ゼロ検出の結果が真であるときには、消去制御部２４は、Ｃ’素子２からＣ素子３を介して与えられた１つめのパルスしかＣ素子４に与えないが、それ以外のとき、すなわちゼロ検出の結果が偽である場合には消去制御部２４は、Ｃ’素子２からＣ素子３を介して与えられた２つのパルスをいずれもＣ素子４に与える。
【００５５】
マルチプレクサ２５は、Ｃ’素子２からの＊第１／第２信号が０のときには命令コード１およびノード番号１を選択して出力している。したがって消去制御部２４からＣ素子４に１つめのパルスが与えられたときにパイプラインレジスタ８から出力されるデータパケットは命令コード１とノード番号１とを含んだものである。また、消去制御部２４からＣ素子４に２つめのパルスが与えられたときにパイプラインレジスタ８から出力されるデータパケットは命令コード２とノード番号２とを含んだものである。そして、ゼロ検出の結果が真である場合には、１つ目のデータパケットのみが出力され、２つ目のデータパケットは出力されない。偽であれば両方のデータパケットが出力される。
【００５６】
動作の例を図２を参照して説明する。経路３３からＲＰＴ命令３４に対して、世代番号のうちライン番号ＬＮ＃およびピクセル番号ＰＸ＃が（５，１）、データＤが６のデータパケットが入力された場合を考える。ＲＰＴ命令３４は、Ｄを１減算し、減算した結果が０でなければ経路３５と経路３６との双方にデータパケットを出力する。経路３６に出力されたデータパケットはふたたびＲＰＴ命令３４に与えられる。ＲＰＴ命令は前述したのと同様の動作をこのデータパケットに対しても行う。その結果、ＲＰＴ命令３４が経路３５上に出力するデータパケットはライン番号ＬＮ＃およびピクセル番号ＰＸ＃が一定（５、１）で、データＤが５から１ずつ０まで順に減算された６個のデータパケット（Ｄ＝５、４、３、２、１、０）となる。またＲＰＴ命令３４から経路３６に出力されるデータパケットも経路３５に出力されるものと同様であるが、最後のデータパケット（Ｄ＝０）は出力されず、その結果ＲＰＴ命令のループ的な実行は５回で終了する。すなわち、最初に入力されたデータパケットのデータＤの値（６）と同じ数だけＲＰＴ命令３４を実行し、対応する数のデータパケットを経路３５上に出力することができる。
【００５７】
このように、この実施の形態のデータパケット生成装置では、入力されたデータパケットのデータＤの値と同じ数のストリーム状のデータパケットを順に出力することができる。１種類の命令のみを実行するだけでこうした処理が実現できるため、従来のように複数種類の命令を使用する場合と比較して効率的である。
【００５８】
［第２の実施の形態］
図３に、本願発明の第２の実施の形態にかかるデータパケット生成装置のブロック構成図を示す。図３に示されるデータパケット生成装置を図１に示す第１の実施の形態にかかるデータパケット生成装置と比較すると、図３に示すデータパケット生成装置が、パイプラインレジスタ５から経路１４を経て世代番号を受け、経路４８を介して与えられる信号にしたがって１インクリメントし、またはインクリメントせずに経路５０を介してパイプラインレジスタ６に与えるための加算器５２を新たに含むことと、図１に示す命令デコーダ９にかえて、命令のデコード結果に応じて経路４８上に加算器５２への加算信号を出力するための命令デコーダ４４を含む点において両者は相違する。
【００５９】
すなわちこの装置においては、ある命令（この命令もＲＰＴ命令と呼ぶこととする。）を受けた場合には、世代番号はパイプラインレジスタ５からパイプラインレジスタ６に転送される間に１だけインクリメントされる。その他の点において図１に示される装置と図３に示される装置とは同様であるので、同じ部品には同一の参照符号を付すことにし、それらの詳細な説明は繰返さないこととする。
【００６０】
図３に示す第２の実施の形態のデータパケット生成装置は以下のように動作する。このデータパケット生成装置の行う処理に対応するデータフローグラフを図４に示す。図４に示すＲＰＴ命令７１に対して、経路７０を介してライン番号ＬＮ＃およびピクセル番号ＰＸ＃が（５、１）、データＤが６であるデータパケットを投入するものとする。世代番号が加算されることを除いてこのデータパケット生成装置の動作は図１に示すものと同様であるから、図４に示すようにＲＰＴ命令７１から経路７２上には、データＤ＝５、４、３、２、１、０のデータパケットが出力される。そして世代番号が１ずつインクリメントされる結果、それらデータパケットの世代番号のうちピクセル番号ＰＸ＃が２から７まで、順に１ずつ加算された個別のピクセル番号ＰＸ＃となる。
【００６１】
したがってこの第２の実施の形態のデータパケット生成装置によると、画像の塗りつぶしなど、世代番号が連続したストリーム状のデータパケットを生成することができる。そのために実行すべき命令は１種類でよく、効率的である。
【００６２】
なおこの第２の実施の形態の装置では、世代番号は１ずつインクリメントされた。しかしこの発明における世代番号の更新方法はそれに限定されるわけではなく、必要に応じてどのような演算を行っても良いことは明らかである。
【００６３】
［第３の実施の形態］
図５に、本願発明の第３の実施の形態にかかるデータパケット生成装置のブロック図を示す。図５に示す装置と図３に示す第２の実施の形態の装置とを比較すると、図５に示す装置においては、図３のパイプラインレジスタ５にかえて、データのための領域として左データと右データとを有するパイプラインレジスタ６４を含む点と、図３に示す１インクリメントのための加算器５２に代えて、右データを経路６２を介して受け、経路１４を介して受ける世代番号のフィールド番号ＦＤ＃、ライン番号ＬＮ＃およびピクセル番号ＰＸ＃に対して右データ内に含まれる個別のデータをそれぞれ別個に加算して経路６０を介してパイプラインレジスタ６に与えるための加算器５８を含むことと、図３に示す命令デコーダ４４に代えて、パイプラインレジスタ６４から経路４２を介して命令コードを受け、その命令コードが特定の命令（ＲＰＴ命令と称する。）である場合に以下に述べるように減算器１０、加算器５８およびゼロ検出回路１１とを動作させるための命令デコーダ５４を含む点とで両者は相違している。その他の点で図３に示す装置と図５に示す装置とは同様であり、同一の部品には同一の参照符号を付すこととしてそれらの詳細な説明はここでは繰返さない。
【００６４】
この第３の実施の形態の装置では、世代番号の各領域の値に対して、右データに格納された値を用いて個別に加算処理を行うことができる点に特色がある。
【００６５】
このデータパケット生成装置の動作について図６を参照して説明する。図６は、図５に示すデータパケット生成装置が実現する処理に対応するデータフローグラフである。図６を参照して、この処理を構成するＲＰＴ命令１１０に、経路１０９を介してライン番号ＬＮ＃およびピクセル番号ＰＸ＃がそれぞれ５および１、そしてデータＤが６であるデータパケットが入力されるものとする。ＲＰＴ命令１１０で世代番号に加算される値はこの例では定数であり、右データとして与えられ、ライン番号ＬＮ＃およびピクセル番号ＰＸ＃に対して図６に示すようにそれぞれ１、２であるものとする。したがって命令１１０は、世代番号の更新処理として、ライン番号ＬＮ＃に対して１を、ピクセル番号ＰＸ＃に対して２を、それぞれ加算する。
【００６６】
それ以外の処理は図２または図４に記載されたＲＰＴ命令３４、７１と同様である。すなわちデータＤを１ずつ減算しながら経路１１１と経路１１２とにデータパケットが出力され、経路１１２に出力されたデータパケットは再度ＲＰＴ命令１１０に与えられる。このとき、世代番号のライン番号ＬＮ＃およびピクセル番号ＰＸ＃には順次１と２とがそれぞれ加算される。データＤが０となるまでこの処理が繰返される。
【００６７】
したがって経路１１１上には、ライン番号ＬＮ＃とピクセル番号との組み合わせ（ＬＮ＃、ＰＸ＃）が順に（６、３）、（７、５）、（８、７）、（９、９）、（１０、１１）、および（１１、１３）であり、またデータＤがそれぞれ５、４、３、２、１、０である６つのデータパケットがストリーム状に出力される。その結果、図７に示すように画面上においてライン番号ＬＮ＃＝６かつピクセル番号ＰＸ＃＝３の位置からライン番号ＬＮ＃＝１１かつピクセル番号ＰＸ＃＝１３の位置まで斜めに塗りつぶす処理を行うストリーム状のデータパケットを得ることができる。
【００６８】
したがってこの第３の実施の形態のデータパケット生成装置によっても、ストリーム状のデータパケットが生成できかつそのために必要な命令は１種類で済むので効率的である。またこの場合、世代番号の各領域の値を個別に加算することができるので、処理の自由度が増大し複雑な世代番号処理を行うことができる。
【００６９】
なおこの第３の実施の形態においては、世代番号の各値を更新するために加算処理を行ったが、加算処理に限らず任意の処理を行うようにしてもよい。その場合には、図５に示す装置において、加算器５８に代えて所望の演算を行う演算器を設けたり、多様な演算を実現するための演算ユニットを設ければよい。
【００７０】
また、以上述べた三つの実施の形態では、いずれもフィールド番号ＦＤ＃は更新していない。しかし本発明は上述の実施の形態には限定されず、ライン番号ＬＮ＃およびピクセル番号ＰＸ＃に加えて、またはそれらに代えて、フィールド番号ＦＤ＃を更新するようにしてもよい。その場合の機器構成は図１、図３または図５と同様であり、変更は当業者には自明な範囲である。
【００７１】
以上、この発明を実施の形態に基づいて詳細に説明したが、本発明がこれら実施の形態に限定されるものではないことは明らかであり、その保護範囲は前述の特許請求の範囲各項の記載により決定されるべきものである。また、上記した実施の形態において使用した各構成要素は一例に過ぎず、それらと同様の機能を果たすもの、または均等の範囲に属するものもまた本願発明の範囲に含まれる。
【図面の簡単な説明】
【図１】図１は、本願発明の第１の実施の形態にかかるデータパケット生成装置のブロック図である。
【図２】図２は、第１の実施の形態の装置におけるＲＰＴ命令を用いたデータフローグラフの一例を示す図である。
【図３】図３は、本願発明の第２の実施の形態にかかるデータパケット生成装置のブロック図である。
【図４】図４は、第２の実施の形態の装置におけるＲＰＴ命令を用いたデータフローグラフの一例を示す図である。
【図５】図５は、本願発明の第３の実施の形態にかかるデータパケット生成装置のブロック図である。
【図６】図６は、第３の実施の形態の装置におけるＲＰＴ命令を用いたデータフローグラフの一例を示す図である。
【図７】図７は、第３の実施の形態の装置においてＲＰＴ命令を実行した際の結果の一例の画面上の表示例を示す図である。
【図８】図８は、データ駆動型情報処理装置の全体構成図である。
【図９】図９は、データ駆動型情報処理装置の内部構成図である。
【図１０】図１０は、入出力データパケットの構成図である。
【図１１】図１１は、画像メモリの論理的構成を示す図である。
【図１２】図１２は、従来例におけるストリーム状データパケット生成のデータフローグラフである。
【符号の説明】
１、２、３、４  Ｃ素子
５、６、７、８、６４  パイプラインレジスタ
９、４４、５４  命令デコーダ
１０  減算器
１１  ゼロ検出回路
２４  消去制御部
２５  マルチプレクサ
３２  プログラムメモリ
３４、７７、１１０  ＲＰＴ命令
５２、５８  加算器
【図１】
0003738128.tif 000002
【図２】
0003738128.tif 000003
【図３】
0003738128.tif 000004
【図４】
0003738128.tif 000005
【図５】
0003738128.tif 000006
【図６】
0003738128.tif 000007
【図７】
0003738128.tif 000008
【図８】
0003738128.tif 000009
【図９】
0003738128.tif 000010
【図１０】
0003738128.tif 000011
【図１１】
0003738128.tif 000012
【図１２】
0003738128.tif 000013