(57)【特許請求の範囲】
【請求項１】
所定の関係で、行先情報、命令情報、画像データの各画素の座標位置を表わす世代番号領域、およびデータ領域を含むデータパケットの内容の少なくとも一部分に関連づけられた複数の変換後世代番号からなる世代番号変換テーブルと、
与えられたデータパケットに格納された命令情報が世代番号変換命令であることを検出し、前記与えられたデータパケットの内容の前記少なくとも一部分に基づいて前記世代番号変換テーブルをアクセスし、予め定める方法に従って前記与えられたデータパケットの世代番号の少なくとも一部分を対応の変換後世代番号で書換えて、与えられたデータパケットを出力するための世代番号変換手段とを含み、
前記世代番号変換手段は、
与えられたデータパケットに格納された命令情報が世代番号変換命令であることに応答して、与えられたデータパケットに格納された命令情報に従って、前記与えられたデータパケットの内容の前記少なくとも一部分に基づき前記世代番号変換テーブルをアクセスするためのアドレスを生成するアドレス生成手段と、
前記アドレス生成手段の出力をアドレスとして前記世代番号変換テーブルをアクセスし、対応の変換後世代番号を読出すためのテーブルアクセス手段と、
与えられたデータパケットに格納された命令情報に従って、前記与えられたデータパケットの世代番号の前記少なくとも一部分を前記テーブルアクセス手段の出力で書換えて、与えられたデータパケットを出力するための書換手段を含む、データ駆動型情報処理装置。
【請求項２】
所定の関係でデータパケットの内容の少なくとも一部分に関連づけられた複数の変換後世代番号からなる世代番号変換テーブルと、
与えられたデータパケットに格納された命令情報が世代番号変換命令であることを検出し、前記与えられたデータパケットの内容の前記少なくとも一部分に基づいて前記世代番号変換テーブルをアクセスし、予め定める方法に従って前記与えられたデータパケットの世代番号の少なくとも一部分を対応の変換後世代番号で書換えて、与えられたデータパケットを出力するための世代番号変換手段とを含む、データ駆動型情報処理装置であって、
前記世代番号変換手段は、
与えられたデータパケットに格納された命令情報が世代番号変換命令であることに応答して、与えられたデータパケットに格納された命令情報に従って、前記与えられたデータパケットの内容の前記少なくとも一部分に基づき前記世代番号変換テーブルをアクセスするためのアドレスを生成するアドレス生成手段と、
前記アドレス生成手段の出力をアドレスとして前記世代番号変換テーブルをアクセスし、対応の変換後世代番号を読出すためのテーブルアクセス手段と、
与えられたデータパケットに格納された命令情報に従って、前記与えられたデータパケットの世代番号の前記少なくとも一部分を前記テーブルアクセス手段の出力で書換えて、与えられたデータパケットを出力するための書換手段を含み、
前記与えられたデータパケットの内容の前記少なくとも一部分は画像データの各画素の座標位置を表す世代番号領域内の領域であり、
前記世代番号領域の割付を、複数種類の方法で設定するための世代番号領域割付設定信号を出力するための手段をさらに含み、
前記アドレス生成手段は、与えられたデータパケットに格納された命令情報に従って、前記世代番号領域内の、前記世代番号領域割付設定信号により特定される領域および前記データパケット内のデータ領域からアドレスを生成する、データ駆動型情報処理装置。
【請求項３】
前記書換手段が、前記世代番号領域内の、前記世代番号領域割付設定信号により特定される領域の内容を前記テーブルアクセス手段の出力で書換える、請求項２に記載のデータ駆動型情報処理装置。
【請求項４】
所定の関係でデータパケットの内容の少なくとも一部分に関連づけられた複数の変換後世代番号からなる世代番号変換テーブルと、
与えられたデータパケットに格納された命令情報が世代番号変換命令であることを検出し、前記与えられたデータパケットの内容の前記少なくとも一部分に基づいて前記世代番号変換テーブルをアクセスし、予め定める方法に従って前記与えられたデータパケットの世代番号の少なくとも一部分を対応の変換後世代番号で書換えて、与えられたデータパケットを出力するための世代番号変換手段とを含む、データ駆動型情報処理装置であって、
前記世代番号変換手段は、
与えられたデータパケットに格納された命令情報が世代番号変換命令であることに応答して、与えられたデータパケットに格納された命令情報に従って、前記与えられたデータパケットの内容の前記少なくとも一部分に基づき前記世代番号変換テーブルをアクセスするためのアドレスを生成するアドレス生成手段と、
前記アドレス生成手段の出力をアドレスとして前記世代番号変換テーブルをアクセスし、対応の変換後世代番号を読出すためのテーブルアクセス手段と、
与えられたデータパケットに格納された命令情報に従って、前記与えられたデータパケットの世代番号の前記少なくとも一部分を前記テーブルアクセス手段の出力で書換えて、与えられたデータパケットを出力するための書換手段を含み、
前記与えられたデータパケットの内容の前記少なくとも一部分は画像データの各画素の座標位置を表す世代番号領域内の領域であり、
前記世代番号領域の割付を、複数種類の方法で設定するための世代番号領域割付設定信号を出力するための手段をさらに含み、
前記書換手段は、前記世代番号領域内の、前記世代番号領域割付設定信号により特定される領域の内容を前記テーブルアクセス手段の出力で書換える、データ駆動型情報処理装置。
【請求項５】
所定の関係で、行先情報、命令情報、画像データの各画素の座標位置を表わす世代番号領域、およびデータ領域を含むデータパケットの内容の少なくとも一部分に関連づけられた複数の変換後世代番号からなる世代番号変換テーブルと、
与えられたデータパケットに格納された命令情報が世代番号変換命令であることを検出し、前記与えられたデータパケットの内容の前記少なくとも一部分に基づいて前記世代番号変換テーブルをアクセスし、予め定める方法に従って前記与えられたデータパケットの世代番号の少なくとも一部分を対応の変換後世代番号で書換えて、与えられたデータパケットを出力するための世代番号変換手段とを含み、
所定の関係でデータパケットのデータ領域の少なくとも一部分に関連づけられた複数の変換データからなる、前記世代番号変換テーブルと異なるアドレスが割付けられたデータ変換テーブルをさらに含み、
前記世代番号変換手段は、
与えられたデータパケットに格納された命令情報が世代番号変換命令であることに応答して、与えられたデータパケットに格納された命令情報に従って、前記与えられたデータパケットの内容の前記少なくとも一部分に基づき前記世代番号変換テーブルをアクセスするためのアドレスを生成する第１のアドレス生成手段と、
与えられたデータパケットに格納された命令情報がデータ変換命令であることに応答して、与えられたデータパケットに格納された命令情報に従って、前記与えられたデータパケットのデータ領域の前記少なくとも一部分に基づき前記データ変換テーブルをアクセスするためのアドレスを生成する第２のアドレス生成手段と、
与えられたデータパケットに格納された命令情報に従って、前記第１のアドレス生成手段または前記第２のアドレス生成手段の出力のいずれか一方をアドレスとして前記世代番号変換テーブルまたはデータ変換テーブルを選択的にアクセスし、対応の変換後世代番号または変換後データを読出すためのテーブルアクセス手段と、
与えられたデータパケットに格納された命令情報に従って、前記与えられたデータパケットの世代番号の前記少なくとも一部分またはデータ領域の少なくとも一部分を前記テーブルアクセス手段の出力で書換えて、与えられたデータパケットを出力するための書換手段を含む、データ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、世代番号を含むデータパケットを処理するデータ駆動型情報処理装置に関し、特に、データパケットの世代番号の変換処理の改良に関する。
【０００２】
【従来の技術】
図１４に、従来のデータ駆動型情報処理装置のブロック図を示す。図１４を参照して従来のデータ駆動型情報処理装置１３０は、合流部（ＪＵＮＣＴＩＯＮ）５４と、発火制御部（ＦＣ）５６と、演算部（ＦＰ）１４０と、プログラム記憶部（ＰＳ）６０と、分岐部（ＢＲＡＮＣＨ）６２と、テーブルメモリ１３２とを含む。
【０００３】
合流部５４は、分岐部６２の出力に接続された入力と、外部に接続された入力との２つの入力と、発火制御部５６の入力に接続された出力とを有する。合流部５４は、外部から、および分岐部６２から与えられたデータパケットを合流し、発火制御部５６に与えるためのものである。なお、このデータ駆動型情報処理装置１３０で処理されるデータパケットの形式については図１６から図１８を参照して後述する。
【０００４】
発火制御部５６は、演算部１４０に接続された出力を有する。発火制御部５６は、合流部５４から与えられたデータパケットに対して次のような処理を行ない、演算可能なデータパケットを演算部１４０に与えるためのものである。発火制御部５６は、与えられるデータパケットの命令情報を参照して次のような処理を行なう。命令情報が１入力命令であれば、発火制御部５６はそのデータパケットをそのまま演算部１４０に転送する。命令情報が２入力以上の命令を示している場合には、データパケットに含まれる世代番号と、行先情報と、命令情報とのすべてが一致するパケットが２つ検出されるまでデータパケットの待合せを行ない、それらのデータパケットが揃ったならば、一方のデータパケットのデータ部を他方のデータパケットに追加して、演算部１４０に転送する。
【０００５】
テーブルメモリ１３２には、データ変換テーブル７０が設けられている。データ変換テーブル７０は、入力されるデータパケットに対してデータ変換を行なう場合のデータを予め格納するためのものである。データ変換テーブル７０には、データパケットのデータ領域から後述する演算部１４０により生成されるアドレスに、そのデータに対応して予め計算された変換後データが格納されている。
【０００６】
図１５を参照して、演算部１４０は、データアドレス生成部８２と、テーブルアクセス回路８６および８８と、マルチプレクサ９０とを含む。
【０００７】
データアドレス生成部８２は、データパケットの右データＲＤおよび左データＬＤを受ける２つの入力と、第１のテーブルアクセス回路８６の入力に接続された出力とを有する。データアドレス生成部８２は、命令情報ＯＰＣがデータ変換命令である場合に、入力された右データおよび左データから、テーブルメモリ１３２をアクセスするためのアドレスを生成してテーブルアクセス回路８６およびマルチプレクサ９０に与えるためのものである。データアドレス生成部８２は、ＡＬＵ（算術論理ユニット）を含む。
【０００８】
テーブルアクセス回路８６は、データアドレス生成部８２から与えられるアドレスを一旦ラッチし、リード／ライト信号Ｒ／Ｗとともにテーブルメモリ１３２に与えるためのものである。
【０００９】
テーブルアクセス回路８８は、テーブルメモリ１３２の該当アドレスから読出されたデータを一旦ラッチし、マルチプレクサ９０の一方の入力に与えるためのものである。
【００１０】
マルチプレクサ９０は、テーブルアクセス回路８８の出力に接続された一方入力と、データアドレス生成部８２の出力が与えられる他方入力とを有する。マルチプレクサ９０は、命令情報ＯＰＣがデータ変換命令であるかどうかに従って、テーブルアクセス回路８８の出力またはデータアドレス生成部８２の出力を選択的に左データＬＤとして出力するためのものである。
【００１１】
なおこの演算部１４０では、世代番号ＧＮＴに対しては何らの処理も行なわれず、そのままプログラム記憶部６０に出力される。
【００１２】
再び図１４を参照して、プログラム記憶部６０は、予めデータフロープログラムを記憶している。プログラム記憶部６０は、与えられるデータパケットの行先情報に基づいてプログラムをフェッチし、データパケットの命令情報および行先情報を書換え、分岐部６２に出力するためのものである。
【００１３】
分岐部６２は、与えられるデータパケットを、その行先情報に基づいて合流部５４に再び与えるか、他の周辺デバイス等に転送するか、のいずれかを行なう。
【００１４】
図１６は、このデータ駆動型情報処理装置で処理されるデータパケットのうち、発火制御部５６から演算部１４０への経路以外の経路でのデータパケットのフォーマットを示す。図１６を参照してデータパケット１５０は、行先情報領域Ｆ１と、命令情報領域Ｆ２と、左オペランドデータ領域Ｆ３と、世代番号領域Ｆ４とを含む。行先情報領域Ｆ１はたとえばそれぞれ６ビットの行先ノード領域とプロセッサ番号領域とを含む。命令情報領域Ｆ２、左オペランドデータ領域Ｆ３、世代番号領域Ｆ４はそれぞれ、たとえば９ビット、１２ビット、２４ビットの長さを有する。
【００１５】
図１７は、図１４の発火制御部５６から演算部１４０に与えられるデータパケット１５２のフォーマットを示す。データパケット１５２は、行先情報領域Ｆ１と、命令情報領域Ｆ２と、左オペランドデータ領域Ｆ３ａと、右オペランドデータ領域Ｆ３ｂと、世代番号領域Ｆ４とを含む。行先情報領域は、たとえばそれぞれ６ビットの行先ノード領域とプロセッサ番号領域とを含む。命令情報領域Ｆ２、左オペランドデータ領域Ｆ３ａ、右オペランドデータ領域Ｆ３ｂ、世代番号領域Ｆ４はそれぞれ、たとえば９ビット、１２ビット、１２ビット、２４ビットの長さを有する。
【００１６】
図１８は、世代番号領域Ｆ４の構成例を示す。図１８を参照して、世代番号フィールドＦ４は、フィールド番号領域ＦＤと、ライン番号領域ＬＮと、ピクセル番号領域ＰＸとを含む。たとえばこれら領域ＦＤ、ＬＮ、ＰＸはそれぞれ、４ビット、１０ビット、１０ビット長である。
【００１７】
世代番号とは、データ駆動型情報処理装置に投入される個々のデータパケットのデータを識別するための識別子である。たとえば画像データを処理するとき、データ駆動型情報処理装置には、１画素につき１つのデータパケットが、それぞれ世代番号が与えられて１つずつ投入される。
【００１８】
画像データがデータ駆動型情報処理装置に投入される際、画面左上隅から右に順に１画素ずつ次々に投入されるものとする。１つの世代番号は、画像データの１画素分の座標として扱うことが可能である。世代番号を図１８に示されるようにフィールド、ライン、ピクセルの３つの領域に分割すると、時間軸を含めた３次元空間での画像データの座標を示すことができる。
【００１９】
図１９に、そのような画像データの座標を模式的に示す。図１９を参照して、フィールド（ＦＤ）は時間軸に対応する座標であり、その画素が画面の何枚目上であるかを示す。ライン（ＬＮ）はＹ軸に関するものであり、その画素が画面の何行目に存在するかを示す。ピクセル（ＰＸ）はＸ軸に対応するものであり、その画素が、その行上の何個目の画素であるかを示す。世代番号をこのように考えることにより、世代番号は、画像データの座標を示すものとして好適であると考えられる。
【００２０】
図１４および図１５を参照して、従来のデータ駆動型情報処理装置は一般に次のように動作する。合流部５４は、分岐部６２からのデータパケットおよび外部から与えられるデータパケットを合流し、発火制御部５６に与える。発火制御部５６は、与えられるデータパケットの命令情報を参照し、もしも命令情報が１入力命令を示すものであればデータパケットをそのまま演算部１４０に与える。与えられるデータパケットの命令情報が２入力以上の命令であれば発火制御部５６は、世代番号と、行先情報と、命令情報とがすべて一致するデータパケットが２つ揃うまで、データパケットの待合せを行なう。そうしたデータパケットが２つ揃えば発火制御部５６は、一方のパケットのデータ部を他方のパケットに追加して、図１７に示されるフォーマットのデータパケットにして演算部１４０に転送する。
【００２１】
演算部１４０は、命令情報に応じた演算を行なう。たとえばデータ変換命令以外の命令の場合には、演算部１４０は次のように動作する。
【００２２】
図１５を参照して、マルチプレクサ９０は、命令情報ＯＰＣに応答して、データアドレス生成部８２の出力を選択して出力する。この場合テーブルメモリ１３２に対するアクセスは行なわれない。
【００２３】
命令情報ＯＰＣがデータ変換命令を示す場合には、データアドレス生成部８２は右データおよび左データから所定の方式に従ってテーブルメモリ１３２をアクセスするためのアドレスを生成し、テーブルアクセス回路８６に与える。テーブルアクセス回路８６はこのアドレスをラッチし、リード／ライト信号とともにテーブルメモリ１３２に与える。テーブルメモリ１３２は、該当アドレスに格納されたデータをテーブルアクセス回路８８に与える。テーブルアクセス回路８８はこの出力を一旦ラッチし、マルチプレクサ９０の一方の入力に与える。マルチプレクサ９０は、命令情報ＯＰＣに応答してテーブルアクセス回路８８の出力を選択する。
【００２４】
再び図１４を参照して、演算部１４０の出力するデータパケットはプログラム記憶部６０に与えられる。プログラム記憶部６０は、入力されるデータパケットの行先情報に基づいてプログラムをフェッチし、データパケットの命令情報および行先情報の部分を書換える。プログラム記憶部６０はこのデータパケットを分岐部６２に与える。
【００２５】
分岐部６２は、与えられるデータパケットの行先情報に基づいてこのデータパケットの行先を判断し、合流部５４または他の周辺デバイスなどにこのデータパケットを転送する。
【００２６】
ところで、画像データの処理においては、画像の移動、拡大、縮小、回転などのように、画素の座標の変換の演算を行なう必要が生ずる場合がある。上述のように世代番号が画像データの座標を示すと考えられる場合には、座標変換式に従って世代番号を変更する必要がある。従来、世代番号の変更は次のように行なわれていた。なお、従来の装置でも、世代番号に対して直接演算を行なう命令を使用する場合と、そうした命令を使用しない場合との、２つの方法が考えられる。以下まず世代番号演算命令を使用せずデータ演算命令のみを使用して世代番号の変更を行なう従来の方法と、世代番号演算命令を使用する方法とを順に説明する。
【００２７】
（１）  世代番号演算命令を使用しない場合
従来のデータ駆動型情報処理装置において世代番号演算命令を使用せずに世代番号を変換しようとする場合、次のような方法がとられる。まず、世代番号をデータ領域に複写する。ここで、データパケットのデータ領域を変更させないために、アキュムレータなどにデータパケットのデータ領域の内容を予め保存しておく必要がある。続いてデータ領域に複写された世代番号に対し、データ演算命令を使用して変更を行なう。変更した世代番号をデータ領域から世代番号領域に再複写する。さらに、アキュムレータなどに保存しておいたデータをデータパケットのデータ領域に戻す。
【００２８】
以下、この場合の処理を具体例を用いて説明する。図２０は、世代番号内の各フィールドのビット長が、図１８に示されるように４ビット、１０ビット、１０ビットである場合に、ピクセル番号ＰＸに「２Ａ４」（１６進）を加算するときのプログラムのフローグラフを示す。なお、以下この明細書において『』で囲った数字は一般的に１６進数を表わすものとし、引用符（“  ”）で囲った数字は一般的に２進数を表わすものとする。
【００２９】
最初に、図２０のフローグラフについて説明する。図２０を参照して、各ノード内の上段の数字はノード番号を示し、下段の文字はそのノードで行なわれる命令を示す。各ノードの右肩に記載された矩形内の数字（１６進数）は、そのノードで行なわれる命令に対する右データを示す。
【００３０】
各命令は次のような意味を有する。
「ｎｏｐ」は１入力１出力命令である。図２０に示される例の場合、入力されたデータパケットをコピーして２つのデータパケットを作成するために使用される。この２つのデータパケットは、行先番号のみが異なっている。
【００３１】
「ａｇｎ」命令は２入力１出力命令である。この命令は、左入力の世代番号を右データで指定される桁数だけ右側にシフトした後、データパケットの左オペランド領域に書込むための命令である。
【００３２】
「ａｄｄ」命令は２入力１出力命令である。この命令は、左データに右データを加算する。
【００３３】
「ａｎｄ」命令は２入力１出力命令である。この命令は左データと右データとの論理積をとる。
【００３４】
「ｏｒ」命令は２入力１出力命令である。この命令は左データと右データとの論理和をとる。
【００３５】
「ｓｇｎｌ」命令は２入力１出力命令である。この命令は左入力の世代番号の下位１２ビットに、右データ（２入力のデータ領域の内容）を設定する。
【００３６】
以下図２０の各ノードにおける動作をノード別に説明する。
［ノード１］
ノード１ではｎｏｐにより、データパケットを２つにコピーする。入力されるデータパケットは図２１に示されるような世代番号とデータとを有するものとする。ノード１において右データの『０』はトリガとして使用される。ノード１から出力される２つのデータパケットの世代番号およびデータは図２２に示されるように図２１のものと全く同じである。これらデータパケットはそれぞれノード２およびノード３に与えられる。
【００３７】
［ノード２］
ノード２では、ノード１と同じ処理が行なわれる。図２３に示されるように、ノード２から出力される２つのデータパケットの世代番号およびデータは図２１のデータパケットと同じであり、それぞれノード４の入力およびノード９の左入力に与えられる。
【００３８】
［ノード３］
ノード３では、ａｇｎ命令により、世代番号の下位１２ビットを『０』ビットだけ右シフトし（すなわち右シフトを行なわず）、データパケットのデータ領域に移す。ノード３入力の世代番号の下位１２ビットは図２２に示されるように『９ＦＦ』であるから、ノード３の出力は図２４に示されるようにデータ領域に『９ＦＦ』が設定されたものとなる。
【００３９】
［ノード４］
ノード４でも、ノード３と同じ処理が行なわれる。ノード４の出力するデータパケットは図２５に示されている。
【００４０】
［ノード５］
ノード５では、入力されるデータパケットのデータ領域に『２Ａ４』がａｄｄ命令により加算される。結果を図２６に示す。このデータパケットはノード７に与えられる。このデータ領域の値は、世代番号の下位１２ビットに『２Ａ４』が加算された値である。
【００４１】
［ノード６］
ノード６では、ノード４の出力するデータパケットのデータ領域の内容と『Ｃ００』との論理積がとられる。『Ｃ００』のビットパターンは“１１００００００００００”であるので、ノード６の出力のデータ領域の内容は、入力されるデータパケットのデータ領域の１２ビットのデータのうちの上位２ビットと『００』とを連結したものとなる。この例の場合にはノード６の出力は図２７に示されるように『８００』となる。
【００４２】
［ノード７］
ノード７では、入力されるデータパケットのデータ領域の値と『３ＦＦ』との間の論理積がとられる。『３ＦＦ』のビットパターンは“００１１１１１１１１１１”であるので、ノード７の処理により“００”と、入力されるデータパケットのデータ領域の値の下位１０ビットの値とが連結されたものが、ノード７の出力データパケットのデータ領域に格納される。
【００４３】
［ノード８］
ノード８では、右入力データと左入力データとの論理和がとられる。左入力データの下位１０ビットはすべて“０”であり右入力データの上位２ビットは“００”である。したがってノード８の処理により、左入力データの上位２ビットと右入力データの下位１０ビットとが連結された１２ビットの値が出力データパケットのデータ領域に設定される。この例の場合のノード８の出力データパケットの内容を図２９に示す。
【００４４】
［ノード９］
ノード９では、右入力のデータ領域の内容を左入力の世代番号領域の下位１２ビットに設定する処理が行なわれる。すなわち、データ領域に格納されている変更後の世代番号が、世代番号領域の下位１２ビットに設定される。さらにデータ領域に、アキュムレータなどに退避されていた元々のデータの内容が設定される。この例の場合のノード９出力の内容を図３０に示す。
【００４５】
すなわち図２０に示される処理により、入力データパケットの世代番号の下位１２ビットに『２Ａ４』を加算する処理が行なわれたことになる。
【００４６】
しかしこのように世代番号演算命令を使用しない場合には、世代番号に対して簡単な算術演算による変換を行なう場合でも、上述したように非常に多くのステップを踏む必要がある。したがって変換のためのプログラムを開発するうえで大きな困難があった。また非常に多くのステップを実行する必要があるために、画像データに対する実時間処理を行なうのは非常に困難である。画像データの拡大、縮小、回転なども含めた一般的な画像データの変換を行なうとすると、世代番号演算命令を使用せずに必要なアルゴリズムを作成するのは極めて困難かつ煩雑であり、しかもそれを実行するうえで処理量が膨大になるために、実時間処理を行なうことは、たとえ画一的な縮小、拡大、回転処理の場合であっても困難である。
【００４７】
（２）  世代番号演算命令を使用する場合
世代番号演算命令は、入力されるデータパケットの世代番号内のフィールド番号、ライン番号、ピクセル番号のいずれかに対して、右入力のオペランドデータの値を用いて演算を行なう命令である。これにより世代番号の内容が直接に変換される。世代番号をデータ領域に移したり、予めデータ領域の内容を退避したり、変換後に元に戻したりする必要は不要である。
【００４８】
世代番号演算命令の一例は「ａｄｄｐｘ」命令である。この命令を用いて、上述の（１）の処理（図２０に示されるフローグラフ）を行なう場合のフローグラフを図３１に示す。命令「ａｄｄｐｘ」は、世代番号内のピクセル番号に対して、右データの値を加算する命令である。ただしこの場合、加算後のライン番号ＬＮ領域へのキャリーはなく、また加算結果に対するクリッピングはないものとしている。この場合のフローグラフは図３１に示されるように非常に簡単になる。
【００４９】
こうした世代番号演算命令を使用して画像データの回転操作を行なう従来の処理につき、以下に簡単に説明する。
【００５０】
図３２を参照して、フィールド番号ＦＤ＝『５』の画面上で、ピクセル番号＝『１ＦＦ』、ライン番号＝『２００』の点Ａを中心としたπ／４回転移動操作を考える。移動対象の点Ｂのフィールド番号ＦＤを『５』、ピクセル番号をｐｘ１、ライン番号をｌｎ１とする。座標ｐｘおよびｌｎの軸をそれぞれ図３２の上側および左側に示す。さらに、Ｘ軸およびＹ軸を図３２の下側および右側に示されるようにとる。ｐｘ１＝ｘ１、『３ＦＦ』−ｌｎ１＝ｙ１とおく。点Ｂをπ／４回転移動した点Ｃのピクセル番号を同様にｐｘ２＝ｘ２、ライン番号をｌｎ２とする。また『３ＦＦ』−ｌｎ２＝ｙ２とおく。点Ａを（Ｘ、Ｙ）の座標表記で表わすと（１ＦＦ、２００）となる。また図３２に示されるように、線分ＡＢがＸ軸方向となす角度をα、線分ＡＢの長さをａとする。すると以下が成立する。
【００５１】
ｘ２＝ａ・ｃｏｓ（α＋π／４）＋１ＦＦ  …▲１▼
ｙ２＝ａ・ｓｉｎ（α＋π／４）＋２００  …▲２▼
ａ＝√｛（ｘ１−１ＦＦ）2 ＋（ｙ１−２００）2 ｝
式▲１▼および▲２▼を変形すると次の式▲３▼および▲４▼を得る。
【００５２】
ｘ２＝ａ・（ｃｏｓα−ｓｉｎα）／√２＋１ＦＦ  …▲３▼
ｙ２＝ａ・（ｃｏｓα＋ｓｉｎα）／√２＋２００  …▲４▼
ここで、ｃｏｓα＝（ｘ１−１ＦＦ）／ａ、ｓｉｎα＝（ｙ１−２００）／ａにより、次の式▲５▼および▲６▼を得る。
【００５３】
ｘ２＝（ｘ１−ｙ１＋１）／√２＋１ＦＦ  …▲５▼
ｙ２＝（ｘ１＋ｙ１−３ＦＦ）／√２＋２００  …▲６▼
上述した３ＦＦ−ｌｎ１＝ｙ１、ｐｘ２＝ｘ２、ｐｘ１＝ｘ１の関係により、次の式▲７▼が得られる。
【００５４】
ｐｘ２＝（ｐｘ１＋ｌｎ１−３ＦＥ）／√２＋１ＦＦ  …▲７▼
また、３ＦＦ−ｌｎ２＝ｙ２、ｐｘ１＝ｘ１、３ＦＦ−ｌｎ１＝ｙ１という関係から、式▲６▼から次の式▲８▼が得られる。
【００５５】
ｌｎ２＝（−ｐｘ１＋ｌｎ１）／√２＋１ＦＦ  …▲８▼
式▲７▼および▲８▼から、この処理のフローグラフは図３３に示されるとおりになる。図３３に示される命令のうち、図３３において初めて出てくる世代番号演算命令は次のとおりである。なお以下の命令による処理では、キャリー、ボロービット、クリッピングはいずれも行なわれていないものと仮定する。
【００５６】
「ｓｕｂｐｘ」は左データのピクセル番号から右データを減算することを示す。
【００５７】
「ｓｕｂｌｎ」は左データのライン番号から右データを減算することを示す。
「ａｄｄｌｎ」は左データのライン番号に右データを加算することを示す。
【００５８】
「ｍｕｌｐｘ４」は左データのピクセル番号に右データを乗算し、さらに４ビット右にシフトした値を世代番号のピクセル領域に設定する処理を示す。たとえばノード８では右データとして『Ｂ』（１０進法で「１１」）が与えられている。したがってノード８の処理により、左データのピクセル番号に「１１／１６」が乗算されることになる。この計算は式▲７▼および▲８▼にあらわれる「÷√２」を近似するためのものである。
【００５９】
「ｍｕｌｌｎ４」は左データのライン番号に右データを乗算し、さらに右に４ビットシフトしたものを世代番号のライン領域に設定することを示す。たとえばノード９では、右データとして『Ｂ』が使用される。したがってこの命令で、ライン番号に「１１／１６」が乗算される。この命令もライン番号を√２で除算する処理を近似するためのものである。
【００６０】
図３４から図４５に、各ノードに入力されるデータパケットの世代番号とデータの内容とを示す。入力データパケットは図３４に示されるように世代番号として『５ＦＦＤＦＦ』、データとして『９』を含むものとする。出力されるデータパケットは、図４５に示されるように世代番号として『５Ｅ７Ｆ９Ｆ』、データとして『９』を含む。
【００６１】
【発明が解決しようとする課題】
世代番号演算命令を使用した場合、単純な算術演算により世代番号を変換する場合には、図３１に示されるような簡単な処理ですむ。しかし、図３２および３３で示されるような一般的な画像データの変換処理を行なう場合、そのためのフローグラフの規模は非常に大きくなる。そのため、処理に時間がかかるという問題点がある。さらに上述のように「√２で除算する。」という処理については、「１１／１６」のような値をかけて近似するしかない。そのため、世代番号の変換の精度に問題がある。ｍｕｌｌｎ４のような命令を何回も実行することにより近似精度を上げることはできるが、その分処理時間が増加してしまうという問題点がある。
【００６２】
一方、論文「図的データ駆動型言語ＵＬ１の使用」（明智光夫他、情報処理学会第３２回（昭和６１年前期）全国大会予稿集、ｐｐ．２０９−２１０）に、「ｄｅｌａｙ」命令が紹介されている。この命令は、「入力トークンの１世代遅れのトークンの出力」を示すが、要するに世代番号に１を加算するための命令である。この命令を用いて、たとえば世代番号に直接ある値を加算する処理を実現することができる。たとえば世代番号に３を加算する場合には、ｄｅｌａｙ命令を３回繰返せばよい。しかし、この命令を用いたとしても、減算、乗算、除算を含んだ演算を実現するのは不可能であり、上述したような回転移動の処理を行なうことはできない。また、世代番号の構成が可変である場合、こうした処理はさらに困難になる。
【００６３】
それゆえに請求項１に記載の発明の目的は、世代番号を容易に、かつ高速に、かつ高精度で、変換できるデータ駆動型情報処理装置を提供することである。
【００６４】
この発明の目的は、世代番号を容易に、かつ高速に、かつ所望の態様に従って高精度で変換できるデータ駆動型情報処理装置を提供することである。
【００６５】
請求項２に記載の発明の目的は、世代番号の割付方法が異なる場合であっても、世代番号を容易に、かつ高速に、かつ所望の態様に従って高精度で変換できるデータ駆動型情報処理装置を提供することである。
【００６６】
請求項３に記載の発明の目的は、世代番号の割付方法が異なる場合であっても、世代番号の所望の領域を容易に、かつ高速に、かつ所望の態様に従って高精度で変換できるデータ駆動型情報処理装置を提供することである。
【００６７】
請求項４に記載の発明の目的は、世代番号の所望の領域を容易に、かつ高速に、かつ所望の態様に従って高精度で変換できるデータ駆動型情報処理装置を提供することである。
【００６８】
請求項５に記載の発明の目的は、世代番号とデータ領域の内容とを容易に、かつ高速に、かつ高精度で、変換できるデータ駆動型情報処理装置を提供することである。
【００６９】
【課題を解決するための手段】
請求項１に記載のデータ駆動型情報処理装置は、所定の関係で、行先情報、命令情報、画像データの各画素の座標位置を表わす世代番号領域、およびデータ領域を含むデータパケットの内容の少なくとも一部分に関連づけられた複数の変換後世代番号からなる世代番号変換テーブルと、与えられたデータパケットに格納された命令情報が世代番号変換命令であることを検出し、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスし、予め定める方法に従って与えられたデータパケットの世代番号の少なくとも一部分を対応の変換後世代番号で書換えて、与えられたデータパケットを出力するための世代番号変換手段とを含む。
【００７０】
請求項１の世代番号変換手段は、与えられたデータパケットに格納された命令情報が世代番号変換命令であることに応答して、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスするためのアドレスを生成するアドレス生成手段と、アドレス生成手段の出力をアドレスとして世代番号変換テーブルをアクセスし、対応の変換後世代番号を読出すためのテーブルアクセス手段と、与えられたデータパケットに格納された命令情報に従って、与えられたデータパケットの世代番号の少なくとも一部分をテーブルアクセス手段の出力で書換えて、与えられたデータパケットを出力するための書換手段を含む。
【００７１】
請求項２に記載のデータ駆動型情報処理装置は、所定の関係でデータパケットの内容の少なくとも一部分に関連づけられた複数の変換後世代番号からなる世代番号変換テーブルと、与えられたデータパケットに格納された命令情報が世代番号変換命令であることを検出し、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスし、予め定める方法に従って与えられたデータパケットの世代番号の少なくとも一部を対応の変換後世代番号で書換えて、与えられたデータパケットを出力するための世代番号変換手段とを含む。世代番号変換手段は、与えられたデータパケットに格納された命令情報が世代番号変換命令であることに応答して、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスするためのアドレスを生成するアドレス生成手段と、アドレス生成手段の出力をアドレスとして世代番号変換テーブルをアクセスし、対応の変換後世代番号を読出すためのテーブルアクセス手段と、与えられたデータパケットに格納された命令情報に従って、与えられたデータパケットの世代番号の少なくとも一部をテーブルアクセス手段の出力で書換えて、与えられたデータパケットを出力するための書換手段を含む。与えられたデータパケットの内容の少なくとも一部は画像データの各画素の座標位置を表す世代番号領域内の領域である。データ駆動型情報処理装置は、世代番号領域の割付を、複数種類の方法で設定するための世代番号領域割付設定信号を出力するための手段をさらに含み、アドレス生成手段は、世代番号領域内の、世代番号領域割付設定信号により特定される領域およびデータパケット内のデータ領域に基づいてアドレスを生成する。
【００７２】
請求項３に記載のデータ駆動型情報処理装置は、請求項２に記載のデータ駆動型情報処理装置であって、その書換手段は、世代番号領域内の、世代番号領域割付設定信号により特定される領域の内容をテーブルアクセス手段の出力で書換える。
【００７３】
請求項４に記載のデータ駆動型情報処理装置は、所定の関係でデータパケットの内容の少なくとも一部分に関連づけられた複数の変換後世代番号からなる世代番号変換テーブルと、与えられたデータパケットに格納された命令情報が世代番号変換命令であることを検出し、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスし、予め定める方法に従って与えられたデータパケットの世代番号の少なくとも一部を対応の変換後世代番号で書換えて、与えられたデータパケットを出力するための世代番号変換手段とを含む。世代番号変換手段は、与えられたデータパケットに格納された命令情報が世代番号変換命令であることに応答して、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスするためのアドレスを生成するアドレス生成手段と、アドレス生成手段の出力をアドレスとして世代番号変換テーブルをアクセスし、対応の変換後世代番号を読出すためのテーブルアクセス手段と、与えられたデータパケットに格納された命令情報に従って、与えられたデータパケットの世代番号の少なくとも一部をテーブルアクセス手段の出力で書換えて、与えられたデータパケットを出力するための書換手段を含む。与えられたデータパケットの内容の少なくとも一部は画像データの各画素の座標位置を表す世代番号領域内の領域である。データ駆動型情報処理装置は、世代番号領域の割付を、複数種類の方法で設定するための世代番号領域割付設定信号を出力するための手段をさらに含み、書換手段は、世代番号領域内の、世代番号領域割付設定信号により特定される領域の内容をテーブルアクセス手段の出力で書換える。
【００７４】
請求項５に記載のデータ駆動型情報処理装置は、所定の関係で、行先情報、命令情報、画像データの各画素の座標位置を表わす世代番号領域、およびデータ領域を含むデータパケットの内容の少なくとも一部分に関連づけられた複数の変換後世代番号からなる世代番号変換テーブルと、与えられたデータパケットに格納された命令情報が世代番号変換命令であることを検出し、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスし、予め定める方法に従って与えられたデータパケットの世代番号の少なくとも一部分を対応の変換後世代番号で書換えて、与えられたデータパケットを出力するための世代番号変換手段とを含み、所定の関係でデータパケットのデータ領域の少なくとも一部分に関連づけられた複数の変換データからなる、世代番号変換テーブルと異なるアドレスが割付けられたデータ変換テーブルをさらに含む。世代番号変換手段は、与えられたデータパケットに格納された命令情報が世代番号変換命令であることに応答して、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスするためのアドレスを生成する第１のアドレス生成手段と、与えられたデータパケットに格納された命令情報がデータ変換命令であることに応答して、与えられたデータパケットのデータ領域の少なくとも一部分に基づいてデータ変換テーブルをアクセスするためのアドレスを生成する第２のアドレス生成手段と、与えられたデータパケットに格納された命令情報に従って、第１のアドレス生成手段または第２のアドレス生成手段の出力のいずれか一方をアドレスとして世代番号変換テーブルまたはデータ変換テーブルを選択的にアクセスし、対応の変換後世代番号または変換後データを読出すためのテーブルアクセス手段と、与えられたデータパケットに格納された命令情報に従って、与えられたデータパケットの世代番号の少なくとも一部分またはデータ領域の少なくとも一部分をテーブルアクセス手段の出力で書換えて、与えられたデータパケットを出力するための書換手段を含む。
【００７５】
【作用】
請求項１に記載のデータ駆動型情報処理装置においては、行先情報、命令情報、画像データの各画素の座標位置を表わす世代番号領域、およびデータ領域を含むデータパケットであって、命令情報として世代番号変換命令を含むデータパケットが与えられると、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルがアクセスされ、世代番号の少なくとも一部分が対応の変換後世代番号で書換えられる。画像データの各画素の座標位置を表わす世代番号を、少ない命令で容易に変換でき、しかも変換後世代番号を所望の精度で準備しておくことで、変換の精度も所望の水準にすることができる。
【００７６】
上述の作用に加え、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスするためのアドレスが生成され、世代番号変換テーブルから変換後世代番号が読出され、それによりデータパケットの世代番号の少なくとも一部分が書換えられる。アドレス生成という単純な処理で、画像データの各画素の座標位置を表わす世代番号を所望の態様で変換できる。
【００７７】
請求項２に記載のデータ駆動型情報処理装置においては、世代番号変換命令を含むデータパケットが与えられると、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルがアクセスされ、世代番号の少なくとも一部分が対応の変換後世代番号で書換えられる。与えられたデータパケットの内容の少なくとも一部分およびデータパケットのデータ領域に基づいて世代番号変換テーブルをアクセスするためのアドレスが生成され、世代番号変換テーブルから変換後世代番号が読出され、それによりデータパケットの世代番号の少なくとも一部分が書換えられる。世代番号領域割付設定信号の値を変えることにより、世代番号領域の割付を複数種類の方法に従って変更して設定できる。これにより、画像データの各画素の座標位置を表す世代番号を、少ない命令で容易に変換でき、しかも変換後世代番号を所望の精度で準備しておくことで、変換の精度も所望の水準にすることができる。また、アドレス生成という単純な処理で世代番号を所望の態様で変換でき、さらに世代番号領域内の、複数種類の領域からアドレスを生成することができる。
【００７８】
請求項３に記載のデータ駆動型情報処理装置においては、請求項２に記載のデータ駆動型情報処理装置の作用に加え、世代番号領域内の、世代番号領域割付設定信号により特定される領域の内容を変換後世代番号で書換えることができる。したがって、世代番号領域割付設定信号により、書換える世代番号領域を変更することができる。
【００７９】
請求項４に記載のデータ駆動型情報処理装置においては、世代番号変換命令を含むデータパケットが与えられると、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルがアクセスされ、世代番号の少なくとも一部分が対応の変換後世代番号で書換えられる。与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスするためのアドレスが生成され、世代番号変換テーブルから変換後世代番号が読出され、それによりデータパケットの世代番号の少なくとも一部分が書換えられる。世代番号領域内の、世代番号領域割付設定信号により特定される領域の内容を変換後世代番号で書換えることができる。したがって、画像データの各画素の座標位置を表す世代番号を、少ない命令で容易に変換でき、しかも変換後世代番号を所望の精度で準備しておくことで、変換の精度も所望の水準にすることができる。また、アドレス生成という単純な処理で世代番号を所望の態様で変換でき、さらに世代番号領域割付設定信号により、書換える世代番号領域を変更することができる。
【００８０】
請求項５に記載のデータ駆動型情報処理装置においては、与えられたデータパケットの命令情報に従って、世代番号変換テーブルをアクセスするためのアドレスまたはデータ変換テーブルをアクセスするためのアドレスが生成される。命令情報に従って、これらのいずれか一方をアドレスとして世代番号変換テーブルまたはデータ変換テーブルが選択的にアクセスされ、対応の変換後世代番号または変換後データがテーブルから読出される。そして命令情報に従って、世代番号の少なくとも一部分またはデータ領域の少なくとも一部分が、読出されたデータで書換えられる。データパケットに含ませる命令情報により、世代番号の変換とデータの変換とのいずれか一方を選択的に実行することができる。
【００８１】
【実施例】
図１に、本願発明の一実施例のデータ駆動型情報処理装置のブロック図を示す。図１を参照してこの実施例のデータ駆動型情報処理装置５０は、合流部（ＪＵＮＣＴＩＯＮ）５４と、発火制御部（ＦＣ）５６と、演算部（ＦＰ）５８と、プログラム記憶部（ＰＳ）６０と、分岐部（ＢＲＡＮＣＨ）６２と、世代番号領域割付設定信号ＶＭＳを演算部５８に与えるための、手操作可能なＶＭＳ設定スイッチ６４と、テーブルメモリ５２とを含む。
【００８２】
テーブルメモリ５２は、図１４に示されるものと同様のデータ変換テーブル７０と、世代番号変換テーブル７２とを含む。世代番号変換テーブル７２の内容については図３を参照して後述する。
【００８３】
合流部５４、発火制御部５６、プログラム記憶部６０、および分岐部６２は、図１４に示されるものと同様である。したがってここではそれらについての詳しい説明は省略する。
【００８４】
ＶＭＳ設定スイッチ６４は、手操作可能なスイッチであり、本実施例の場合には２ビットの世代番号領域割付設定信号ＶＭＳを演算部５８に与えるためのものである。
【００８５】
演算部５８の詳細を図２に示す。図２を参照して演算部５８は、データアドレス生成部８２と、テーブルアクセス回路８６および８８と、マルチプレクサ９０とに加えて、世代番号ＧＮＴおよび右データＲＤを受け、ＶＭＳ信号と命令情報ＯＰＣとに応答して、世代番号を変換するためのアドレスを生成する世代番号アドレス生成部８０と、命令情報ＯＰＣに応答して、世代番号アドレス生成部８０またはデータアドレス生成部８２のいずれか一方の出力を選択してテーブルアクセス回路８６に与えるためのマルチプレクサ８４と、世代番号ＧＮＴを受け、命令情報ＯＰＣおよびＶＭＳ信号に応答して、世代番号ＧＮＴのうち、ＶＭＳ信号および命令情報ＯＰＣにより特定される領域の内容のみを出力するための世代番号抽出部９２と、命令情報ＯＰＣに応答して、世代番号抽出部９２の出力とテーブルアクセス回路８８の出力とのいずれか一方を選択して出力するためのマルチプレクサ９４と、世代番号アドレス生成部８０およびマルチプレクサ９４の出力を受け、世代番号アドレス生成部８０の出力のうち、ＶＭＳ信号および命令情報ＯＰＣにより特定される一部をマルチプレクサ９４の出力で書換えて出力するための世代番号設定部９６とを含む。世代番号設定部９６の出力が演算部５８の出力する世代番号ＧＮＴとなる。またマルチプレクサ９０の出力が演算部５８の出力する左オペランドデータＬＤである。なお図２には図示されていないが、命令情報ＯＰＣおよび行先情報も演算部５８からプログラム記憶部６０（図１参照）に与えられる。
【００８６】
データアドレス生成部８２、テーブルアクセス回路８６および８８、マルチプレクサ９０の機能は図１４に示す従来のものと同一である。したがってここではそれらについては詳細は省略する。なおテーブルアクセス回路８６は、図１に示されるデータ変換テーブル７０と世代番号変換テーブル７２との両方をアクセスすることができる。いずれをアクセスするかは、マルチプレクサ８４から与えられるアドレスにより変化する。それらのアドレスは、前述したとおり世代番号アドレス生成部８０またはデータアドレス生成部８２により生成されたものである。
【００８７】
図３は、図１に示す世代番号変換テーブル７２の内容の一部を示す。図３を参照して世代番号変換テーブル７２の、世代番号から所定の方法により生成されるアドレス位置には、その世代番号に対して所定の変換を行なった後の変換後世代番号の内容が予め計算され格納されている。ただしこの場合、変換後世代番号の内容はたとえばフィールド番号、ライン番号、ピクセル番号など、世代番号の一部でも、世代番号全体でもよい。その格納の仕方は、世代番号のうち、フィールド番号とライン番号とピクセル番号とにどのように領域が割付けられているか、および変換操作の内容により異なってくる。図３に示される例の場合には、単純に世代番号のピクセル番号に『２Ａ４』を加算する処理を実現するための内容が格納されている。
【００８８】
図２に示される世代番号アドレス生成部８０は、次のような機能を有する。世代番号アドレス生成部８０は、入力されるＶＭＳ信号および命令情報ＯＰＣに応じて、図４の上段に示されるように世代番号領域を領域１００、１０２、１０４に分割し、その中の特定の領域１０２を取出し、世代番号アドレスの下位アドレス１０８に設定するためのものである。アドレスの上位アドレス１０６には、本実施例の場合にはすべて“０”が設定される。たとえば領域１００、１０２、１０４はそれぞれ世代番号のフィールド番号、ライン番号、ピクセル番号の領域であってもよいし、それらの一部であってもよい。なおアドレスのビット長は命令コードによって特定される。なお、世代番号アドレス生成部８０はＡＬＵを有する。
【００８９】
図５に、ＶＭＳ信号の値により、世代番号領域をフィールド番号、ライン番号、ピクセル番号にどのように割付けるかの例を示す。ＶＭＳ信号の値が０の場合には、これらにはそれぞれ４ビット、１０ビット、１０ビットの領域が割付けられる。ＶＭＳ信号が１の場合にはそれぞれ３ビット、１０ビット、１１ビットが割付けられる。ＶＭＳ信号が２の場合にはそれぞれ２ビット、１１ビット、１１ビットが割付けられる。ＶＭＳ信号が３の場合にはそれぞれ０ビット、１２ビット、１２ビットが割付けられる。もちろん図５に示されるのは単なる一例であって、世代番号の割付を別の方法で行なうこともできる。またＶＭＳ信号として本実施例の場合には２ビットを想定したが、１ビットでも、３ビット以上でもよい。
【００９０】
世代番号抽出部９２は、まずＶＭＳ信号により、図５に示される４つの割付方法のうちのどれを選択するかを決定する。さらに世代番号抽出部９２は、図５に示されるように割付けられた各領域のうち、どの領域のどの部分を抽出するかを、命令情報ＯＰＣにより決定し、その部分のみをマルチプレクサ９４の一方の入力に与える。もちろんこの世代番号抽出部９２の処理は、ＶＭＳ信号の値と命令情報ＯＰＣの値との組合せにより決定されるので、データアドレス生成部８２と基本的に同じ構成の回路で実現することができる。
【００９１】
世代番号設定部９６は、世代番号抽出部９２と概略逆の動作を行なうものと考えればよい。すなわち世代番号設定部９６は、世代番号アドレス生成部８０の出力する世代番号ＧＮＴのうち、ＶＭＳ信号および命令情報ＯＰＣにより特定される領域の値を、マルチプレクサ９４の出力で書換えて出力する。マルチプレクサ９４の出力は、世代番号抽出部９２により抽出された値またはテーブルアクセス回路８８の出力のいずれか一方であり、どちらであるかは命令コードＯＰＣにより決定される。
【００９２】
したがって、世代番号抽出部９２および世代番号設定部９６とマルチプレクサ９４との機能は次のようになる。図６を参照して、世代番号抽出部９２は、入力される世代番号ＧＮＴを３つの領域１００、１０２、１０４に分割する。この割付は、前述のようにＶＭＳ信号と命令情報ＯＰＣとにより定まる。世代番号設定部９６は、世代番号の領域１００および１０４の値をそのまま出力領域１１０および１１４に設定する。またマルチプレクサ９４は、世代番号の領域１０２の内容と、テーブルから読出された読出データ１２０とのいずれを出力世代番号の領域１１２に格納するかを、命令情報ＯＰＣにより選択する。このようにして選択されたデータが世代番号設定部９６により領域１１２に設定され、全体が世代番号ＧＮＴとして出力される。
【００９３】
以下、ｒｐｘ命令と呼ばれる、ピクセル番号の変換命令を例として、この実施例の動作を説明する。この命令ｒｐｘは、図２０および図３１に従来技術として示した処理に相当するものである。そのデータフローグラフを図８に示す。ｒｐｘ命令とは、ピクセル番号を下位アドレス、右データの下位何ビットかを上位アドレスとして世代番号変換テーブルを参照して、読出した値を、出力データパケットのピクセル番号領域にセットする命令である。ただし左入力の左オペランドデータは保存される。この例の場合、ｐｘ番号１０ビットが下位アドレスとなり、右データの下位５ビットが上位アドレスとなるものとする（図７参照）。
【００９４】
図９に、一例としての入力パケットの内容と、このデータ駆動型情報処理装置で行なわれる処理の内容、さらに出力データパケットの内容を示す。図９に示されるように、一例として世代番号『６Ａ７９ＦＦ』、データとして『５５５』を有するパケットが入力されたものとする。まず図８に示される右データ『２Ａ４』の下位５ビット“００１００”と、世代番号のピクセル領域“０１１１１１１１１１”とよりアドレス『１１ＦＦ』が生成される。この生成は図２に示される世代番号アドレス生成部８０により行なわれる。言うまでもなく、このときの世代番号の領域の割付およびどの部分をアドレス生成に利用するかは、ＶＭＳ信号および命令情報ＯＰＣにより決定される。
【００９５】
図２を参照して、マルチプレクサ８４は、命令情報ＯＰＣがｒｐｘであることに応答して、世代番号アドレス生成部８０の出力を選択してテーブルアクセス回路８６に与える。したがってテーブルアクセス回路８６および８８により、テーブルメモリ５２内の世代番号変換テーブル７２のアドレス『１１ＦＦ』から対応のデータ『０Ａ３』（図３参照）が読出され、マルチプレクサ９０および９４に与えられる。
【００９６】
マルチプレクサ９４は、命令情報ＯＰＣがｒｐｘであることに応答して、テーブルアクセス回路８８の出力を選択して世代番号設定部９６に与える。したがって世代番号抽出部９２、世代番号設定部９６およびマルチプレクサ９４の機能について図６を参照して前述したとおり、出力パケットの世代番号の値は図９に示されるように『６Ａ７８Ａ３』となる。一方マルチプレクサ９０は、命令情報ＯＰＣがｒｐｘであることに応答して、データアドレス生成部８２の出力を選択して出力する。したがって入力パケットのデータ『５５５』がそのまま出力される。これは図９の出力パケットの内容として示されている。
【００９７】
一般的にマルチプレクサ８４は、命令情報ＯＰＣが世代番号変換命令である場合には世代番号アドレス生成部８０の出力を選択し、データ変換命令である場合にはデータアドレス生成部８２の出力を選択する。マルチプレクサ９４は、命令情報ＯＰＣが世代番号変換命令である場合にはテーブルアクセス回路８８の出力を選択し、それ以外の場合には世代番号抽出部９２の出力を選択する。マルチプレクサ９０は、命令情報ＯＰＣがデータ変換命令である場合にはテーブルアクセス回路８８の出力を、それ以外の場合にはデータアドレス生成部８２の出力を選択する。
【００９８】
以上のようにこの実施例のデータ駆動型情報処理装置によれば、図２０に示されるような処理を図８に示されるごとく１命令で実現することができる。したがって、データ変換命令を、従来の世代番号演算命令を使用しない場合よりも遙かに容易に、かつ高速に実行できるという効果がある。また、図２０に示されるような複雑なフローグラフを必要としないので、プログラムの開発が容易となるという効果もある。
【００９９】
なお、上述の具体例ではピクセル番号を変換するための命令ｒｐｘのみについて説明したが、同様にたとえばライン番号を変換する命令ｒｌｎを使用することもできる。この場合、入力パケットの世代番号領域のライン番号領域を利用して世代番号変換テーブルをアクセスするためのアドレスが生成される。すなわち、たとえばアドレスの下位１０ビットにライン番号が、上位５ビットに右データの下位５ビットが設定されて、世代番号変換テーブルアクセスのためのアドレスが生成される。
【０１００】
この場合、世代番号領域の割付がＶＭＳ信号の値により変更されることは上述のとおりである。この割付が図５に示されるとおりのものであるとする。すると、たとえば入力パケットの世代番号が『ＦＦＦＦＦＦ』、ｒｌｎ命令の右入力データが『ＡＡＡ』であれば、生成されるアドレスはＶＭＳ信号の値が２のときには『５７ＦＦ』、０のときには『２ＢＦＦ』となる。ＶＭＳ信号の値が０であり、アドレス『２ＢＦＦ』から読出されたデータが『０００』であれば、出力されるデータパケットの世代番号のライン番号領域（５ビット目から１４ビット目）に『０００』のうちの１０ビットが設定される。すなわち出力されるデータパケットの世代番号は『Ｆ００３ＦＦ』となる。
【０１０１】
同様にＶＭＳ信号の値が２のとき、かつ読出されたデータが『０００』であれば、世代番号の第３ビットから第１３ビットに『０００』の下位１１ビットが設定される。したがって出力されるデータパケットの世代番号は『Ｃ００７ＦＦ』となる。
【０１０２】
以上のようにこの実施例のデータ駆動型情報処理装置を用いれば、世代番号変換処理を容易に行なうことができる。しかし本願発明のデータ駆動型情報処理装置の効果はこれだけでない。本願発明のデータ駆動型情報処理装置では、画像の拡大、縮小、回転など、一般的な座標の変換演算を容易かつ高速に、しかも従来の方法よりも遙かに精度よく行なうことができる。以下、本願発明のデータ駆動型情報処理装置のそうした特徴について説明する。
【０１０３】
たとえば画像上のある点の回転移動操作について、この発明を使用した場合の処理を説明する。回転移動操作に対しては、たとえばｒｇｎｔ命令とｒｐｌ命令との２つが用意されている。いずれを用いても回転移動操作を実現できる。以下、まずｒｇｎｔ命令を使用する場合の処理について説明し、次にｒｐｌ命令を使用する場合の処理について説明する。
【０１０４】
（１）  ｒｇｎｔ命令
ｒｇｎｔ命令は、世代番号（２４ビット長）を下位アドレス、右データを上位アドレスとして世代番号変換テーブルを参照し、読出したデータを、データパケットの世代番号に設定する命令である。ｒｇｎｔ命令のフローグラフを図１０に示す。図１０に示される例では、右データとして『８』が与えられるものとする。
【０１０５】
図１１に、このｒｇｎｔ命令を用いて世代番号変換を行なうための世代番号変換テーブル７２の内容を示す。入力されるデータパケットの世代番号が『５ＦＦＤＦＦ』、左データが『９』であるものとする。右データは前述のとおり『８』である。右データと世代番号とから、『８５ＦＦＤＦＦ』というアドレスが生成される。『８５ＦＦＤＦＦ』をアドレスとして世代番号変換テーブル７２をアクセスすることにより、対応する変換後世代番号『５Ｄ６７５９』が読出される。読出された値を、出力データパケットの世代番号にセットする。
【０１０６】
世代番号変換テーブル７２の内容として、各世代番号と右データとから生成されたアドレスに、その世代番号に対して所定の回転移動操作を行なった場合の、回転移動操作後の世代番号の値を予め設定しておけば入力データパケットの世代番号に対する回転移動操作を１命令で実現できる。テーブルに格納される内容は、たとえば実際に「√２による除算」を行なって得た値を整数に丸めて処理したものとすることができる。したがって従来のように「１１／１６」を乗算するような処理よりも精度は遙かに高くなる。また右データの値を変えることにより、世代番号変換テーブルをアクセスするためのアドレスを変えることができる。したがって複数種類のテーブルを世代番号変換テーブルの中に予め格納しておき、右データとしてそれらのうちのいずれか１つを指定する値をｒｇｎｔ命令に入力することにより、複数種類の処理を実現することが容易にできる。
【０１０７】
ｒｇｎｔ命令では、各画面ごとに、異なる座標変換処理を実行することができる。
【０１０８】
（２）  ｒｐｌ命令
ｒｐｌ命令も概ねｒｇｎｔ命令と同様である。そのフローグラフを図１２に示す。図１２に示される例では右入力として『３』が与えられている。
【０１０９】
ｒｐｌ命令は、世代番号の中のライン番号領域とピクセル番号領域とを下位アドレス、右データを上位アドレスとして世代番号変換テーブルを参照し、読出された値でライン番号領域とピクセル番号領域の値を書換える命令である。この場合も、世代番号の領域の割付はＶＭＳ信号により設定され、たとえば図５のＶＭＳ＝０で示される例ではライン番号領域とピクセル番号領域とは合計２０ビット長である。
【０１１０】
（１）で説明したものと同じデータパケットが入力されたものとする。世代番号のうちライン番号領域とピクセル番号領域との値は『ＦＦＤＦＦ』である。右データ『３』とこのライン番号およびピクセル番号とからアドレス『３ＦＦＤＦＦ』が生成される。これをアドレスとしてデータ変換テーブル７２（図１３参照）をアクセスすることにより、対応する値『Ｄ６７５９』が読出される。読出された値『Ｄ６７５９』を、ライン番号領域とピクセル番号領域とに設定することで、出力データパケットの世代番号は『５Ｄ６７５９』となる。
【０１１１】
この（２）のｒｐｌ命令を用いれば、すべてのフィールド上の同じ位置の画素に対して、同一の座標変換処理を実行することができる。
【０１１２】
図１２および図１３において、入力パケットの命令コードが「ｒｐｌ」（『０Ｂ７』）、世代番号が『５ＦＦＤＦＦ』、左データが『９』、右データが『３』であり、かつＶＭＳ信号＝０であるものとする。以下、この場合のパケットの演算過程を説明する。なお以下の説明では、図２の演算部における各部での処理を順に説明する。
【０１１３】
［世代番号アドレス生成部８０］
世代番号アドレス生成部８０では、命令情報ＯＰＣがｒｐｌ命令を表わす『０Ｂ７』であり、かつＶＭＳ信号が０であることから、世代番号領域中のライン番号領域、ピクセル番号領域を抜き出す。すなわち世代番号領域の下位２０ビット『ＦＦＤＦＦ』を抜き出す。さらに右データの『３』を上位ビットとし、前述の『ＦＦＤＦＦ』を下位ビットとしてアドレス『３ＦＦＤＦＦ』を生成しマルチプレクサ８４に与える。
【０１１４】
［データアドレス生成部８２］
データアドレス生成部８２は、命令情報ＯＰＣが『０Ｂ７』であることから、０をマルチプレクサ８４に与える。
【０１１５】
［マルチプレクサ８４］
マルチプレクサ８４には、世代番号アドレス生成部８０から『３ＦＦＤＦＦ』が、データアドレス生成部８２から『０』がそれぞれ与えられる。マルチプレクサ８４は、命令情報ＯＰＣが『０Ｂ７』であることに応答して、世代番号アドレス生成部８０の出力『３ＦＦＤＦＦ』を選択し、テーブルアクセス回路８６に与える。
【０１１６】
［テーブルアクセス回路８６および８８］
テーブルアクセス回路８６および８８により、図１３に示されるデータ変換テーブル７２のアドレス『５ＦＦＤＦＦ』から『Ｄ６７５９』が読出され、マルチプレクサ９０および９４に与えられる。
【０１１７】
［世代番号抽出部９２］
世代番号抽出部９２は、命令情報ＯＰＣが『０Ｂ７』であり、ＶＭＳ信号が０であることから、世代番号領域中のライン番号領域およびピクセル番号領域（下位２０ビット）の『ＦＦＤＦＦ』のみを抽出し、マルチプレクサ９４に与える。なお、現在の説明では世代番号アドレス生成部８０と世代番号抽出部９２とで、世代番号から抽出する部分の領域を同一としてあるが、命令情報ＯＰＣにより、これらが互いに異なる領域から世代番号の一部を抽出するようにすることもできる。
【０１１８】
［マルチプレクサ９４］
マルチプレクサ９４は、命令情報ＯＰＣが『０Ｂ７』であることに応答して、テーブルアクセス回路８８の出力『Ｄ６７５９』を選択し、世代番号設定部９６に与える。
【０１１９】
［世代番号設定部９６］
世代番号設定部９６には、世代番号アドレス生成部８０の出力する入力パケットの世代番号『５ＦＦＤＦＦ』と、マルチプレクサ９４の出力『Ｄ６７５９』が与えられている。命令情報ＯＰＣが『０Ｂ７』であり、ＶＭＳ信号が０であることから、世代番号設定部９６は、入力パケットの世代番号の『５ＦＦＤＦＦ』の下位２０ビットの領域を、マルチプレクサ９４から与えられる『Ｄ６７５９』で置換し、出力する。したがって出力されるデータパケットの世代番号は『５Ｄ６７５９』となる。
【０１２０】
以上のように本願実施例のデータ駆動型情報処理装置によれば、単純な算術演算を用いたのみでは実現が困難であるような複雑な画像操作、たとえば拡大、縮小、回転処理などに関しても、簡単にデータフロープログラムを開発することが可能である。またそうした複雑な処理を１命令で処理できるので、画像処理を高速に実現でき、実時間処理も十分可能である。特に、縮小率が固定されていたり、回転角度が固定されていたりする画一的な画像変換処理では、１命令でそうした変換操作を実現することができるので、画像処理をより効率的に行なうことができる。
【０１２１】
【発明の効果】
以上のように請求項１に記載のデータ駆動型情報処理装置によれば、世代番号変換命令を含むデータパケットを与えることにより、画像データの各画素の座標位置を表わす世代番号の少なくとも一部分が、世代番号変換テーブル内の対応の変換後世代番号で書換えられる。画像データの各画素の座標位置を表わす世代番号を、少ない命令で容易に変換でき、しかも変換後世代番号を所望の精度で準備しておくことで、変換の精度も所望の水準にすることができる。その結果、画像データの各画素の座標位置を表わす世代番号を容易に、かつ高速に、かつ高精度で変換できるデータ駆動型情報処理装置を提供できる。
【０１２２】
上述の効果に加え、与えられたデータパケットの内容の少なくとも一部分に基づいて世代番号変換テーブルをアクセスするためのアドレスを生成する、という単純な処理で世代番号を所望の態様で変換できる。その結果、世代番号を容易に、かつ高速に、かつ所望の態様に従って高精度で変換できるデータ駆動型情報処理装置を提供できる。
【０１２３】
請求項２に記載のデータ駆動型情報処理装置によれば、画像データの各画素の座標位置を表す世代番号を、少ない命令で容易に変換でき、しかも変換後世代番号を所望の精度で準備しておくことで、変換の精度も所望の水準にすることができる。また、単純な処理で画像データの各画素の座標位置を表す世代番号を所望の態様で変換できる。さらに、アドレス生成を行なうための世代番号領域の割付を複数種類の方法に従って変更して設定できる。またさらに、世代番号領域内の、異なる領域からアドレスを生成することができる。その結果、画像データの各画素の座標位置を表す世代番号の割付方法が異なる場合であっても、世代番号を容易に、かつ高速に、かつ所望の態様に従って高精度で変換できるデータ駆動型情報処理装置を提供できる。
【０１２４】
請求項３に記載のデータ駆動型情報処理装置によれば、請求項２に記載のデータ駆動型情報処理装置の効果に加え、世代番号領域割付設定信号により、書換える世代番号領域を変更することができる。その結果、世代番号の割付方法が異なる場合であっても、世代番号の所望の領域を容易に、かつ高速に、かつ所望の態様に従って高精度で変換できるデータ駆動型情報処理装置を提供できる。
【０１２５】
請求項４に記載のデータ駆動型情報処理装置によれば、画像データの各画素の座標位置を表す世代番号を、少ない命令で容易に変換でき、しかも変換後世代番号を所望の精度で準備しておくことで、変換の精度も所望の水準にすることができる。また、単純な処理で画像データの各画素の座標位置を表す世代番号を所望の態様で変換できる。さらに、世代番号領域割付設定信号により、書換える世代番号領域を変更することができる。その結果、画像データの各画素の座標位置を表す世代番号の所望の領域を容易に、かつ高速に、かつ所望の態様に従って高精度で変換できるデータ駆動型情報処理装置を提供できる。
【０１２６】
請求項５に記載のデータ駆動型情報処理装置によれば、データパケットに含ませる命令情報により、世代番号の変換とデータの変換とのいずれか一方を選択的に実行することができる。その結果、世代番号とデータ領域の内容とを容易に、かつ高速に、かつ高精度で変換できるデータ駆動型情報処理装置を提供できる。
【図面の簡単な説明】
【図１】本発明の一実施例のデータ駆動型情報処理装置のブロック図である。
【図２】図１に示される演算部５８のブロック図である。
【図３】世代番号変換テーブル７２の内容を示す模式図である。
【図４】世代番号変換テーブルのアドレスを生成する方法を示す模式図である。
【図５】ＶＭＳ信号と世代番号領域の割付との関係を示す模式図である。
【図６】世代番号設定部の動作の内容を示す模式図である。
【図７】一具体例におけるアドレスの構成を示す模式図である。
【図８】ｒｐｘ命令のフローグラフである。
【図９】ｒｐｘ命令に対して演算部５８で実行される処理を模式的に示す図である。
【図１０】ｒｇｎｔ命令のフローグラフである。
【図１１】ｒｇｎｔ命令に対応する世代番号変換テーブルの内容を模式的に示す図である。
【図１２】ｒｐｌ命令のフローグラフである。
【図１３】ｒｐｌ命令に対応する、世代番号変換テーブルの内容を示す模式図である。
【図１４】従来のデータ駆動型情報処理装置のブロック図である。
【図１５】従来のデータ駆動型情報処理装置の演算部のブロック図である。
【図１６】データパケットのフィールド構成を示す模式図である。
【図１７】発火制御部から出力されるデータパケットのフィールド構成を示す模式図である。
【図１８】世代番号の構成の一例を示す模式図である。
【図１９】画像処理における、世代番号と画面上の画素との関係を示す模式図である。
【図２０】従来のデータ駆動型情報処理装置による世代番号変換の一例を示すフローグラフである。
【図２１】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図２２】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図２３】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図２４】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図２５】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図２６】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図２７】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図２８】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図２９】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図３０】従来の装置による処理の世代番号とデータとを模式的に示す図である。
【図３１】従来の装置において、世代番号演算命令ａｄｄｐｘを用いた場合のフローグラフである。
【図３２】画面上における点の回転操作を説明するための模式図である。
【図３３】従来の装置において世代番号演算命令を用いて、図３２に示される回転操作を実現するためのフローグラフである。
【図３４】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図３５】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図３６】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図３７】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図３８】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図３９】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図４０】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図４１】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図４２】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図４３】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図４４】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【図４５】図３３のフローグラフにおけるデータパケットの世代番号とデータの内容を模式的に示す図である。
【符号の説明】
５０、１３０  データ駆動型情報処理装置
５２、１３２  テーブルメモリ
５４  合流部
５６  発火制御部
５８、１４０  演算部
６０  プログラム記憶部
６２  分岐部
６４  ＶＭＳ設定スイッチ
７０  データ変換テーブル
７２  世代番号変換テーブル
８０  世代番号アドレス生成部
８２  データアドレス生成部
８４、９０、９４  マルチプレクサ
８６、８８  テーブルアクセス回路
９２  世代番号抽出部
９６  世代番号設定部
【図１】
0003683598.tif 000002
【図２】
0003683598.tif 000003
【図３】
0003683598.tif 000004
【図４】
0003683598.tif 000005
【図５】
0003683598.tif 000006
【図６】
0003683598.tif 000007
【図７】
0003683598.tif 000008
【図８】
0003683598.tif 000009
【図９】
0003683598.tif 000010
【図１０】
0003683598.tif 000011
【図１１】
0003683598.tif 000012
【図１２】
0003683598.tif 000013
【図１３】
0003683598.tif 000014
【図１４】
0003683598.tif 000015
【図１５】
0003683598.tif 000016
【図１６】
0003683598.tif 000017
【図１７】
0003683598.tif 000018
【図１８】
0003683598.tif 000019
【図１９】
0003683598.tif 000020
【図２０】
0003683598.tif 000021
【図２１】
0003683598.tif 000022
【図２２】
0003683598.tif 000023
【図２３】
0003683598.tif 000024
【図２４】
0003683598.tif 000025
【図２５】
0003683598.tif 000026
【図２６】
0003683598.tif 000027
【図２７】
0003683598.tif 000028
【図２８】
0003683598.tif 000029
【図２９】
0003683598.tif 000030
【図３０】
0003683598.tif 000031
【図３１】
0003683598.tif 000032
【図３２】
0003683598.tif 000033
【図３３】
0003683598.tif 000034
【図３４】
0003683598.tif 000035
【図３５】
0003683598.tif 000036
【図３６】
0003683598.tif 000037
【図３７】
0003683598.tif 000038
【図３８】
0003683598.tif 000039
【図３９】
0003683598.tif 000040
【図４０】
0003683598.tif 000041
【図４１】
0003683598.tif 000042
【図４２】
0003683598.tif 000043
【図４３】
0003683598.tif 000044
【図４４】
0003683598.tif 000045
【図４５】
0003683598.tif 000046