(57)【特許請求の範囲】
【請求項１】
データフロープログラムに基づいてデータパケットを処理する１個以上のデータ駆動型処理手段と、
前記１個以上のデータ駆動型処理手段から出力されるデータパケットによりアクセスされる複数の記憶手段と、
前記１個以上のデータ駆動型処理手段から出力された複数のデータパケットを前記複数の記憶手段のいずれかに選択的に与える経路選択手段とを備え、
前記データパケットは、命令コード、入力順序に付けられる世代番号およびデータを含み、
前記経路選択手段は、
入力されたデータパケットのデータを、該入力されたデータパケットの命令コードのデコード結果に従いベースオフセットデータとして保持する保持手段と、
入力されたデータパケットの世代番号を前記保持手段に保持されている前記ベースオフセットデータに基づいてシフトさせかつそのデータパケット内のデータに基づいて修飾する修飾手段と、
前記修飾手段によりシフトされかつ修飾された世代番号の所定のビットに基づいて、入力されたデータパケットを前記複数の記憶手段のいずれかに分岐させる分岐手段とを含む、データ駆動型情報処理装置。
【請求項２】
データフロープログラムに基づいてデータパケットを処理する複数のデータ駆動型処理手段と、
前記複数のデータ駆動型処理手段から出力されるデータパケットによりアクセスされる複数の記憶手段と、
前記複数のデータ駆動型処理手段から出力されたデータパケットの各々を前記複数の記憶手段のいずれかに選択的に与える経路選択手段とを備え、
前記データパケットは、命令コード、入力順序に付けられる世代番号およびデータを含み、
前記経路選択手段は、
それぞれが前記経路選択手段の複数の入力ごとに設けられ、各々が入力されたデータパケットのデータを、該入力されたデータパケットの命令コードのデコード結果に従いベースオフセットデータとして保持する複数の保持手段と、
それぞれが前記経路選択手段の複数の入力ごとに設けられ、各々が、自己に入力されたデータパケットの世代番号を、対応する保持手段に保持されている前記ベースオフセットデータに基づいてシフトさせかつそのデータパケット内のデータに基づいて修飾する複数の修飾手段と、
前記複数の修飾手段に対応して設けられ、各々が対応する修飾手段によりシフトされかつ修飾された世代番号の所定のビットに基づいて、入力されたデータパケットを分岐させる複数の分岐手段と、
各々が入力されたデータパケットを合流して出力する複数の合流手段とを含む、データ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明はデータ駆動型情報処理装置に関し、特に、１個以上のデータ駆動型プロセッサ、複数のメモリおよびそれらを接続するためのルータを含むデータ駆動型情報処理装置に関する。
【０００２】
【従来の技術】
近時、画像処理の分野で、プロセッサの動作速度を向上させることに対する要求が高まっている。このようなプロセッサの高速化に対する解決の１手段として並列処理が有力視されている。並列処理向きアーキテクチャのうちでも、データ駆動型と呼ばれるアーキテクチャが特に注目される。
【０００３】
データ駆動型プロセッサでは、「ある処理に必要な入力データがすべて揃い次第、かつその処理に必要な演算装置などの資源が割当てられたときに処理を行なう」という単純な規則に従って処理が進行する。このアーキテクチャを実現するために必要となる技術として、入力データが揃ったこと（発火）を検出するための機構がある。この発火検出の際に、ある処理に対して１組の入力データセットしか許さないものを静的データ駆動方式、２組以上の入力データセットを許すものを動的データ駆動方式と呼ぶ。
【０００４】
映像信号処理などの時系列データを処理する際には、静的データ駆動方式では十分に対応できず、動的アーキテクチャ方式を採用することが必要であると考えられる。この際、ある処理に対して複数の入力データセットが存在するために、これら複数の入力データセットを識別するための世代識別子などの概念を導入する必要がある。本明細書では以下世代識別子のことを世代番号と呼ぶ。
【０００５】
上述のような映像処理向きデータ駆動型情報処理装置の一例が、「動的データ駆動型プロセッサによる並列処理方式の検討」（情報処理学会、マイクロコンピュータアーキテクチャシンポジウム、１９９１．１１．１２）に示されている。
【０００６】
図１０は、従来の映像処理向きデータ駆動型情報処理装置の構成を示すブロック図である。図１０のデータ駆動型情報処理装置は、映像処理向きデータ駆動型プロセッサ５１および画像メモリ５２を含む。
【０００７】
データ駆動型プロセッサ５１には、データ伝送路５３を介して入力時間順序に対応して付けられる世代番号を有するデータパケットが時系列的に入力される。
データ駆動型プロセッサ５１には予め設定された処理内容が記憶されている。データ駆動型プロセッサ５１は、予め設定された処理内容に基づいて入力されたデータパケットを処理する。
【０００８】
データ駆動型プロセッサ５１が、予め設定された処理内容に基づいて画像メモリ５２にアクセス（画像メモリ５２の内容の参照、更新など）する際には、データ伝送路５４を介して画像メモリ５２にデータパケットが与えられる。そのアクセスにより画像メモリ５２から出力されるデータパケットは、データ伝送路５５を介してデータ駆動型プロセッサ５１に与えられる。データ駆動型プロセッサ５１は、入力されたデータパケットの処理が終了した後、処理されたデータパケットをデータ伝送路５６を介して外部に出力する。
【０００９】
図１１に、データ伝送路５４を介して画像メモリ５２に入力されるデータパケットのフィールド構成の例を示す。このデータパケットは、命令コード（ａ）、世代番号（ｂ）、データ１（ｃ）、データ２（ｄ）およびプロセッサ番号（ｅ）を含む。
【００１０】
命令コード（ａ）は、画像メモリ５２に対する処理の内容を示す。この処理の内容としては、たとえば画像メモリ５２の内容の参照または更新が含まれる。世代番号（ｂ）は、データ伝送路５３を介してデータ駆動型プロセッサ５１に入力されるデータパケットに対し、入力時において、入力時系列の順序に従って付けられている識別子である。データ駆動型プロセッサ５１は、この世代番号（ｂ）をデータの待ち合わせの際のマッチングに利用している。一方、画像メモリ５２においては、世代番号（ｂ）に基づいてアクセスすべきアドレスが決定される。
【００１１】
データ１（ｃ）およびデータ２（ｄ）は、命令コード（ａ）の内容に従って解釈されるオペランドデータである。たとえば、命令コード（ａ）が画像メモリ５２に対する更新を示している場合には、データ１（ｃ）は画像メモリ５２に書込まれるべきデータであり、データ２（ｄ）は意味を持たない。命令コード（ａ）が画像メモリ５２に対する参照を示している場合には、データ１（ｃ）およびデータ２（ｄ）は意味を持たない。
【００１２】
プロセッサ番号（ｅ）は、データ駆動型情報処理装置が複数のデータ駆動型プロセッサを含む場合に、このデータパケットがどのプロセッサ番号のデータ駆動型プロセッサで処理されるべきかを示す識別子である。
【００１３】
なお、図１０のデータ駆動型プロセッサ５１にはプロセッサ番号ＰＥ＃０が付され、画像メモリ５２にはメモリ番号ＶＭ＃０が付されている。
【００１４】
図１１に示されるデータパケットにおいては、命令コード（ａ）は８ビット、世代番号（ｂ）は２４ビット、データ１（ｃ）は１２ビット、データ２（ｄ）は１２ビット、プロセッサ番号（ｅ）は１０ビットである。
【００１５】
図１２に、画像メモリ５２からデータ伝送路５５に出力されるデータパケットのフィールド構成の例を示す。このデータパケットは、命令コード（ｆ）、世代番号（ｇ）、データ１（ｈ）およびプロセッサ番号（ｉ）を含む。
【００１６】
このデータパケットにおいては、命令コード（ｆ）、世代番号（ｇ）およびプロセッサ番号（ｉ）としては、図１１に示されるデータパケットの命令コード（ａ）、世代番号（ｂ）およびプロセッサ番号（ｅ）がそのまま格納される。データ１（ｈ）としては、画像メモリ５２へのアクセス結果が格納される。
【００１７】
図１３に、世代番号（ｂ）の詳細な構成の例を示す。図１３に示すように、世代番号（ｂ）は、フィールドアドレスＦＤ＃、ラインアドレスＬＮ＃およびピクセルアドレスＰＸ＃を含む。
【００１８】
図１３の例では、画像メモリ５２の画面の枚数すなわちフィールドに３ビット、１画面の垂直方向の解像度すなわちラインに１１ビット、１画面の水平方向の解像度すなわちピクセルに１０ビットが割当てられている。このビット数の割当は、世代番号（ｂ）に割当てられているビット数の範囲で、この例では２４ビットの範囲で任意に設定可能である。
【００１９】
図１４は、図９に示された世代番号（ｂ）の分割例に基づいた画像メモリ５２の論理的な構成を示す図である。
【００２０】
図１４に示される画像メモリ５２の論理的な構成は、３ビットのフィールドアドレスＦＤ＃で特定される８枚の画像メモリを含む。各画像メモリは、図１３に示される１１ビットのラインアドレスＬＮ＃に対応して、垂直方向に２11＝２０４８ラインを含む。各ラインは、図１３に示される１０ビットのピクセルアドレスＰＸ＃に対応して、２10＝１０２４ピクセルを含む。
【００２１】
データ駆動型プロセッサ５１に入力されるデータパケットには、入力時点ですでに入力時系列の順序に従って世代番号が付けられている。この世代番号に基づいて画像メモリ５２のアクセスすべきアドレスを決定すれば、アクセス点は１枚目の画像メモリの左上の点から始まって、水平方向にスキャンするように移動する。１ラインのスキャンが終了するとその直後のラインの左端にアクセス点が移動する。１枚目の画像メモリの右下の点までスキャンが終了すると、アクセス点は２枚目の画像メモリの左上の点に移動する。以下各画像メモリのアクセス点は順にスキャンするように移動する。最後の画像メモリ、この例では８枚目の画像メモリの右下の点までスキャンが終了すると、次は１枚目の画像メモリの左上の点にアクセス点が戻り、以下同様のことが繰返される。
【００２２】
【発明が解決しようとする課題】
図１０に示される従来のデータ駆動型情報処理装置は、１個のデータ駆動型プロセッサ５１および１個の画像メモリ５２からなるので、処理能力に限界がある。そこで、複数のデータ駆動型プロセッサおよび複数の画像メモリを用いてマルチプロセッサシステムを構成することが考えられる。
【００２３】
しかしながら、この場合、各データ駆動型プロセッサから出力されるデータパケットをそのデータパケット内の世代番号に基づいて複数の画像メモリに分岐させると、データパケットの分岐先がその入力順序により決まってしまい、データパケットを任意の画像メモリに送ることができない。そのため、データパケット内の世代番号によりアクセスが行なわれるようなデータ駆動型情報処理装置では、複数の画像メモリを用いて処理の分散を図ることが困難であった。
【００２４】
それゆえに、この発明の目的は、データパケット内の世代番号に基づいてアクセスが行なわれるデータ駆動型情報処理装置において、１個以上のデータ駆動型プロセッサから複数のメモリのうち任意のメモリへデータパケットを送ることを可能にすることである。
【００２５】
この発明の他の目的は、世代番号に基づいてアクセスが行なわれるデータ駆動型情報処理装置において、複数のデータ駆動型プロセッサの各々から複数のメモリのうち任意のメモリへデータパケットを送ることを可能にすることである。
【００２６】
【課題を解決するための手段】
第１の発明に係るデータ駆動型情報処理装置は、データフロープログラムに基づいてデータパケットを処理する１個以上のデータ駆動型処理手段と、１個以上のデータ駆動型処理手段から出力されるデータパケットによりアクセスされる複数の記憶手段と、１個以上のデータ駆動型プロセッサから出力された複数のデータパケットを複数の記憶手段のいずれかに選択的に与える経路選択手段とを備える。
【００２７】
データパケットは、命令コード、入力順序に付けられる世代番号およびデータを含む。経路選択手段は、保持手段、修飾手段および分岐手段を含む。
【００２８】
保持手段は、入力されたデータパケットのデータを、該入力されたデータパケットの命令コードのデコード結果に従いベースオフセットデータとして保持する。修飾手段は、入力されたデータパケットの世代番号を、保持手段に保持されているベースオフセットデータに基づいてシフトさせかつそのデータパケット内のデータに基づいて修飾する。分岐手段は、修飾手段によりシフトされかつ修飾された世代番号の所定のビットに基づいて、入力されたデータパケットを複数の記憶手段のいずれかに分岐させる。
【００２９】
第２の発明に係るデータ駆動型情報処理装置は、データフロープログラムに基づいてデータパケットを処理する複数のデータ駆動型処理手段と、複数のデータ駆動型処理手段から出力されるデータパケットによりアクセスされる複数の記憶手段と、複数のデータ駆動型処理手段から出力されたデータパケットの各々を複数の記憶手段のいずれかに選択的に与える経路選択手段とを備える。
【００３０】
データパケットは、命令コード、入力順序に付けられる世代番号およびデータを含む。経路選択手段は、複数の保持手段、複数の修飾手段、複数の分岐手段および複数の合流手段を含む。
【００３１】
複数の保持手段の各々は経路選択手段の複数の入力ごとに設けられ、入力されたデータパケットのデータを、該入力されたデータパケットの命令コードのデコード結果に従いベースオフセットデータとして保持する。複数の修飾手段は、それぞれが経路選択手段の複数の入力ごとに設けられ、各々が自己に入力されたデータパケットの世代番号を、対応する保持手段に保持されているベースオフセットデータに基づいてシフトさせかつそのデータパケット内のデータに基づいて修飾する。複数の分岐手段は、複数の修飾手段に対応して設けられ、各々が対応する修飾手段によりシフトされかつ修飾された世代番号の所定のビットに基づいて、入力されたデータパケットを分岐させる。複数の合流手段の各々は、複数の分岐手段から与えられたデータパケットを合流して出力する。
【００３２】
【作用】
第１の発明に係るデータ駆動型情報処理装置において、１個以上のデータ駆動型処理手段から出力されたデータパケットは経路選択手段に与えられる。経路選択手段においては、データパケットの世代番号が、保持手段に保持されたベースオフセットデータに基づいてシフトされ、かつそのデータパケット内のデータに基づいて修飾される。入力されたデータパケットは、シフトされかつ修飾された世代番号の所定のビットに基づいて、複数の記憶手段のいずれかに分岐される。
【００３３】
ベースオフセットデータおよびデータパケット内のデータを任意の値に設定することにより、１個以上のデータ駆動手段から出力されるデータパケットを任意の記憶手段に送ることができる。
【００３４】
第２の発明に係るデータ駆動型情報処理装置においては、複数のデータ駆動型処理手段から出力された複数のデータパケットの各々は経路選択手段に与えられる。経路選択手段においては、各データパケットの世代番号が、対応する保持手段に保持されたベースオフセットデータに基づいてシフトされ、かつそのデータパケット内のデータに基づいて修飾される。入力されたデータパケットは、シフトされかつ修飾された世代番号の所定のビットに基づいて、複数の記憶手段のいずれかに分岐される。
【００３５】
各ベースオフセットデータおよび各データパケット内のデータを任意の値に設定することにより、複数のデータ駆動型処理手段から出力されるデータパケットの各々を任意の記憶手段に送ることができる。
【００３６】
【実施例】
図１は、この発明の一実施例によるデータ駆動型情報処理装置の構成を示すブロック図である。図１のデータ駆動型情報処理装置は、４個のデータ駆動型プロセッサ２１，２２，２３，２４、８個のルータ３３，３４，３５，３６，３７，３８，３９，４０および４個の画像メモリ４１，４２，４３，４４を含む。
【００３７】
データ駆動型プロセッサ２１〜２４には、それぞれプロセッサ番号ＰＥ＃０〜ＰＥ＃３が付けられている。また、ルータ３３〜４０には、それぞれルータ番号ＲＴ＃０〜ＲＴ＃７が付けられている。さらに、画像メモリ４１〜４４には、それぞれメモリ番号ＶＭ＃０〜ＶＭ＃３が付けられている。
【００３８】
データ駆動型プロセッサ２１，２４から出力されたメモリアクセス用データパケットはルータ３３に与えられ、データ駆動型プロセッサ２２，２３から出力されたメモリアクセス用データパケットはルータ３５に与えられる。ルータ３３，３５の各々は、合流機能および分岐機能を有し、さらに、後述する広域オフセット修飾演算機能およびアドレス修飾演算機能を有する。すなわち、ルータ３３は、データ駆動型プロセッサ２１，２４から与えられるデータパケットをルータ３４またはルータ３６に分岐する。同様に、ルータ３５は、データ駆動型プロセッサ２２，２３から与えられるデータパケットをルータ３４またはルータ３６に分岐する。
【００３９】
ルータ３４，３６の各々は、合流機能および分岐機能を有し、さらに広域オフセット修飾演算機能およびアドレス修飾演算機能を有する。ルータ３４は、ルータ３３，３５から与えられたデータパケットを画像メモリ４１または画像メモリ４２に分岐する。同様に、ルータ３６は、ルータ３３，３５から与えられたデータパケットを画像メモリ４３または画像メモリ４４に分岐する。
【００４０】
画像メモリ４１，４２から出力されるデータパケットはルータ３７に与えられ、画像メモリ４３，４４から出力されるデータパケットはルータ３９に与えられる。
【００４１】
ルータ３７，３９の各々は、合流機能および分岐機能を有する。ルータ３７は、画像メモリ４１，４２から与えられたデータパケットをルータ３８またはルータ４０に分岐する。同様に、ルータ３９は、画像メモリ４３，４４から与えられたデータパケットをルータ３８またはルータ４０に分岐する。
【００４２】
ルータ３８，４０の各々も、合流機能および分岐機能を有する。ルータ３８は、ルータ３７，３９から与えられたデータパケットをデータ駆動型プロセッサ２１またはデータ駆動型プロセッサ２２に分岐する。同様に、ルータ４０は、ルータ３７，３９から与えられたデータパケットをデータ駆動型プロセッサ２３またはデータ駆動型プロセッサ２４に分岐する。
【００４３】
なお、データ駆動型プロセッサ２１で処理されたデータパケットはデータ駆動型プロセッサ２２にも与えることができ、データ駆動型プロセッサ２４にも与えることができる。また、データ駆動型プロセッサ２２で処理されたデータパケットはデータ駆動型プロセッサ２３に与えることもできる。データ駆動型プロセッサ２３で処理されたデータパケットは、データ駆動型プロセッサ２２に与えることもでき、データ駆動型プロセッサ２４に与えることもできる。データ駆動型プロセッサ２４で処理されたデータパケットはデータ駆動型プロセッサ２１に与えることもでき、外部に出力することもできる。
【００４４】
このように、図１のデータ駆動型情報処理装置は、マルチプロセッサ構成を有する。
【００４５】
図１のデータ駆動型情報処理装置においては、外部からデータ駆動型プロセッサ２１に入力されるデータパケットが、世代番号またはプロセッサ番号に基づいて、複数のデータ駆動型プロセッサ、複数のルータおよび複数の画像メモリに送られる。その間に、所定の演算処理が行なわれ、所定の演算処理がすべて終了すると、データ駆動型プロセッサ２４から処理結果を含むデータパケットが外部に出力される。
【００４６】
データ駆動型プロセッサ２１，２２，２３または２４において、画像メモリ４１，４２，４３または４４をアクセスする演算処理（メモリの参照または更新）を行なう場合、データパケットは、ルータ３３，３４，３５，３６のうちいずれか２個のルータを経由して画像メモリ４１，４２，４３，４４のうち任意の画像メモリに与えられる。また、画像メモリ４１，４２，４３，４４から出力されるデータパケットは、ルータ３７，３８，３９，４０のうちいずれか２個のルータを経由して、データ駆動型プロセッサ２１，２２，２３，２４のうち任意のデータ駆動型プロセッサに与えられる。
【００４７】
図２は、図１に示されるデータ駆動型プロセッサ２１の詳細な構成を示すブロック図である。データ駆動型プロセッサ２２，２３，２４の構成も、図２に示される構成と同様である。
【００４８】
外部から与えられるデータパケットは、入力端子ＩＢを介してＳ／Ｐ変換器２０３に入力される。Ｓ／Ｐ変換器２０３により、２ワード構成のデータパケットが１ワード構成のデータパケットにシリアル／パラレル変換される。変換されたデータパケットはデータ合流部２０４に与えられる。
【００４９】
また、図１に示されるデータ駆動型プロセッサ２４からデータ駆動型プロセッサ２１に戻されたデータパケットは、入力端子ＩＡを介してＳ／Ｐ変換器２０２に与えられる。Ｓ／Ｐ変換器２０２により、２ワード構成のデータパケットが１ワード構成のデータパケットにシリアル／パラレル変換される。変換されたデータパケットはデータ合流部２０４に与えられる。
【００５０】
データ合流部２０４で合流されたデータパケットはデータ分岐部２０５に与えられる。データ分岐部２０５は、このデータ駆動型プロセッサ２１で参照されないデータパケットをデータ合流部２１４に与え、参照されるべきデータパケットのみをデータ合流部２０６に与える。
【００５１】
図１に示されるルータ３８から与えられるデータパケットは、入力端子ＩＭを介してＳ／Ｐ変換器２０１に与えられる。Ｓ／Ｐ変換器２０１により、２ワード構成のデータパケットが１ワード構成のデータパケットにシリアル／パラレル変換される。変換されたデータパケットは、直接データ合流部２０６に与えられる。
【００５２】
データ合流部２０６で合流されたデータパケットはキューバッファ２０９にストアされる。プログラム記憶付発火制御部２１０はデータ駆動型プロセッサに特有の機能を有し、命令コードおよび次命令フェッチに必要な行先情報の付け換えを行なうプログラム記憶部２１１と、処理に必要なデータが揃ったこと（発火）の検出を行なう発火制御部２１２とを含む。
【００５３】
プログラム記憶付発火制御部２１０で、必要なデータの待合せが完了すると、それらのデータを含むデータパケットがデータ分岐部２１３に与えられる。データ分岐部２１３は、演算処理が行なわれるべきデータパケットを演算制御部２０８に与え、出力されるべきデータパケットをデータ合流部２１４に与え、画像メモリに与えられるべきデータパケットを合流部２１７に与える。
【００５４】
演算制御部２０８は、与えられたデータパケット内の命令コードに従って、そのデータパケット内のデータに関する算術演算、論理演算などを行ない、その演算結果を含むデータパケットをデータ分岐部２０７に与える。データ分岐部２０７は、プログラム記憶付発火制御部２１０に与えられるべきデータパケットをデータ合流部２０６に与え、出力されるべきデータパケットをデータ合流部２１４に与え、画像メモリに与えられるべきデータパケットをデータ合流部２１７に与える。
【００５５】
データ分岐部２０７からデータ合流部２０６に与えられたデータパケットは、キューバッファ２０９に与えられ、パケット流量のゆらぎが吸収され、再びプログラム記憶付発火制御部２１０に与えられる。これらの機能は、環状の自己同期パイプライン上に、データの処理順序に従って配置される。
【００５６】
データ合流部２１４に与えられたデータパケットは、データ分岐部２１５を介してＰ／Ｓ変換部２１６に与えられる。Ｐ／Ｓ変換部２１６により、１ワード構成のデータパケットが再び２ワード構成のデータパケットに変換される。変換されたデータパケットは、出力端子ＯＢを介して、図１に示されるデータ駆動型プロセッサ２２に出力される。また、データ分岐部２１５から出力端子ＯＡに与えられるデータパケットは、Ｐ／Ｓ変換部２１９により、同様に２ワード構成のデータパケットに変換されたのち、図１に示されるデータ駆動型プロセッサ２４に与えられる。
【００５７】
一方、データ合流部２１７に与えられたデータパケットは、Ｐ／Ｓ変換部２１８に与えられる。Ｐ／Ｓ変換部２１８により、１ワード構成のデータパケットが２ワード構成のデータパケットに変換される。変換されたデータパケットは、出力端子ＯＭを介して、図１に示されるルータ３３に出力される。
【００５８】
図３は、図１に示されるルータ３３の詳細な構成を示すブロック図である。ルータ３４〜３６の構成も、図３に示される構成と同様である。
【００５９】
ルータ３３は、入力制御部３０１，３０２、ベースオフセットレジスタ群３０３，３０４、広域オフセット修飾演算部３０５，３０６、アドレス修飾演算機能付分岐部３０７，３０８、合流部３０９，３１０および出力制御部３１１，３１２を含む。
【００６０】
入力制御部３０１，３０２は、図１に示されるデータ駆動型プロセッサ２１，２４から与えられるデータパケットをそれぞれ取込み、それらを広域オフセット修飾演算部３０５，３０６にそれぞれ与える。
【００６１】
ベースオフセットレジスタ群３０３，３０４には、ベースオフセットレジスタ設定命令によって、ベースオフセットデータが予め記憶される。
【００６２】
広域オフセット修飾演算部３０５，３０６は、入力制御部３０１，３０２からそれぞれ与えられるデータパケットの世代番号に対してベースオフセットレジスタ群３０３，３０４にそれぞれ記憶されたベースオフセットデータに基づく広域オフセット修飾演算を行なう。広域オフセット修飾演算部３０５，３０６は、それぞれ入力されたデータパケットをアドレス修飾演算機能付分岐部３０７，３０８に与え、かつ広域オフセット修飾演算の結果もアドレス修飾演算機能付分岐部３０７，３０８にそれぞれ与える。
【００６３】
アドレス修飾演算機能付分岐部３０７，３０８は、与えられた広域オフセット修飾演算の結果に対して、入力されたデータパケット内のデータ２（ｄ）（オフセット修飾子）に基づくアドレス修飾演算を行なう。そして、アドレス修飾演算機能付分岐部３０７，３０８は、それらのアドレス修飾演算の結果に基づいて、入力されたデータパケットを合流部３０９または合流部３１０に分岐させる。
【００６４】
合流部３０９は、アドレス修飾演算機能付分岐部３０７，３０８から与えられたデータパケットを合流し、所定の順序で出力制御部３１１に与える。同様に、合流部３１０は、アドレス修飾演算機能付分岐部３０７，３０８から与えられたデータパケットを合流し、所定の順序で出力制御部３１２に与える。
【００６５】
出力制御部３１１は、与えられたデータパケットを図１に示されるルータ３４に出力し、出力制御部３１２は与えられたデータパケットをルータ３６に出力する。
【００６６】
なお、図１に示されるルータ３７，３８，３９，４０においては、広域オフセット修飾演算およびアドレス修飾演算が不要であるので、ベースオフセットレジスタ群３０３，３０４および広域オフセット修飾演算部３０５，３０６は設けられず、かつアドレス修飾演算機能付分岐部３０７，３０８の代わりにアドレス修飾演算機能を有さない分岐部が設けられる。
【００６７】
図４は、図３に示されるベースオフセットレジスタ群３０３および広域オフセット修飾演算部３０５の詳細な構成を示すブロック図である。図３に示されるベースオフセットレジスタ群３０４および広域オフセット修飾演算部３０６の構成も図４に示される構成と同様である。
【００６８】
ベースオフセットレジスタ群３０３は、命令コードデコーダ３２０および３個のレジスタ３２１，３２２，３２３を含む。命令コードデコーダ３２０には、入力されたデータパケット内の命令コード（ａ）が与えられる。命令コードデコーダ３２０は、命令コード（ａ）を解読し、その命令コード（ａ）がベースオフセットレジスタ設定命令を示している場合に、レジスタ３２１，３２２，３２３にイネーブル信号を与える。それにより、レジスタ３２１，３２２，３２３にデータパケット内のデータ１（ｃ）がベースオフセットデータとして格納される。
【００６９】
ベースオフセットデータは、ベースフィールドオフセット値Ｒｆｄ、ベースラインオフセット値Ｒｌｎおよびベースピクセルオフセット値Ｒｐｘからなる。レジスタ３２１にはベースフィールドオフセット値Ｒｆｄが格納され、レジスタ３２２にはベースラインオフセット値Ｒｌｎが格納され、レジスタ３２３にはベースピクセルオフセット値Ｒｐｘが格納される。
【００７０】
広域オフセット修飾演算部３０５は、３個の加算器３３１，３３２，３３３を含む。加算器３３１の一方の入力端子にはデータパケット内の世代番号（ｂ）のフィールドアドレスＦＤ＃が与えられ、加算器３３２の一方の入力端子にはデータパケット内の世代番号（ｂ）のラインアドレスＬＮ＃が与えられ、加算器３３３の一方の入力端子にはデータパケット内の世代番号（ｂ）のピクセルアドレスＰＸ＃が与えらる。加算器３３１の他方の入力端子にはレジスタ３２１から出力されるベースフィールドオフセット値Ｒｆｄが与えられ、加算器３２２の他方の入力端子にはレジスタ３２２から出力されるベースラインオフセット値Ｒｌｎが与えられ、加算器３３３の他方の入力端子にはレジスタ３２３から出力されるベースピクセルオフセット値Ｒｐｘが与えられる。
【００７１】
加算器３３１は、フィールドアドレスＦＤ＃およびベースフィールドオフセット値Ｒｆｄを加算し、その加算結果を出力する。加算器３３２は、ラインアドレスＬＮ＃およびベースラインオフセット値Ｒｌｎを加算し、その加算結果を出力する。加算器３３３は、ピクセルアドレスＰＸ＃およびベースピクセルオフセット値Ｒｐｘを加算し、その加算結果を出力する。加算器３３１，３３２，３３３の出力が広域オフセット修飾結果として図３に示されるアドレス修飾演算機能付分岐部３０７に与えられる。
【００７２】
図５は、図３に示されるアドレス修飾演算機能付分岐部３０７の構成を示すブロック図である。図３に示されるアドレス修飾演算機能付分岐部３０８の構成も図５に示される構成と同様である。
【００７３】
アドレス修飾演算機能付分岐部３０７は、アドレス修飾演算回路３４１、分岐先判別回路３４２およびＡＮＤゲート３４３，３４４を含む。
【００７４】
アドレス修飾演算回路３４１には、入力されたデータパケットおよび広域オフセット修飾演算部３０５から与えられる広域オフセット修飾結果が与えられる。アドレス修飾演算回路３４１は、広域オフセット修飾結果に対して、データパケット内のデータ２（ｄ）（オフセット修飾子）に基づくアドレス修飾演算を行ない、演算結果をアドレス修飾結果として分岐先判別回路３４２に与える。
【００７５】
また、アドレス修飾演算回路３４１は、入力されたデータパケットをＡＮＤゲート３４３，３４４にそのまま出力する。分岐先判別回路３４２は、アドレス修飾結果の所定のビットに基づいて、ＡＮＤゲート３４３，３４４のいずれか一方を活性化する。それにより、活性化されたＡＮＤゲートからデータパケットが出力される。
【００７６】
たとえば、分岐先判別回路３４２は、アドレス修飾結果の最下位ビットが“１”であるか“０”であるかを判別する。分岐先判別回路３４２は、たとえば最下位ビットが“１”であればＡＮＤゲート３４３を活性化し、最下位ビットが“０”であればＡＮＤゲート３４４を活性化する。
【００７７】
ＡＮＤゲート３４３から出力されるデータパケットは、図３に示される合流部３０９に与えられ、ＡＮＤゲート３４４から出力されるデータパケットは図３に示される合流部３１０に与えられる。
【００７８】
図６は、図５に示されるアドレス修飾演算回路３４１の詳細な構成を示すブロック図である。
【００７９】
アドレス修飾演算回路３４１は、命令コードデコーダ３５０および３個の加算器３５１，３５２，３５３を含む。命令コードデコーダ３５０には、入力されたデータパケット内の命令コード（ａ）が与えられる。命令コードデコーダ３５０は、命令コード（ａ）を解読し、その命令コード（ａ）がアドレス修飾演算命令である場合に、加算器３５１，３５２，３５３にイネーブル信号を与える。
【００８０】
加算器３５１，３５２，３５３には入力されたデータパケット内のデータ２（ｄ）（オフセット修飾子）および図４に示される広域オフセット修飾演算部３０５から出力される広域オフセット修飾結果が与えられる。
【００８１】
図７に示されるように、データ２（ｄ）の３ビットがフィールドオフセット値Δｆｄに割当てられ、５ビットがラインオフセット値Δｌｎに割当てられ、４ビットがピクセルオフセット値Δｐｘに割当てられている。このビット数の割当ては、データ２（ｄ）に割当てられているビット数の範囲で、この例では１２ビットの範囲で任意に設定可能である。各オフセット値は、それぞれに割当てられた領域に符号付整数の形で格納されている。
【００８２】
再び、図６に戻って、加算器３５１の一方の入力端子にはフィールドオフセット値Δｆｄが与えられ、加算器３５２の一方の入力端子にはラインオフセット値Δｌｎが与えられ、加算器３５３の一方の入力端子にはピクセルオフセット値Δｐｘが与えられる。加算器３５１の他方の入力端子には図４に示される加算器３３１の出力が与えられ、加算器３５２の他方の入力端子には図４に示される加算器３３２の出力が与えられ、加算器３５３の他方の入力端子には図４に示される加算器３３３の出力が与えられる。
【００８３】
加算器３５１，３５２，３５３は、命令コードデコーダ３５０からのイネーブル信号に応答して、それぞれフィールドオフセット値Δｆｄ、ラインオフセット値Δｌｎおよびピクセルオフセット値Δｐｘを対応する広域オフセット修飾結果に加算し、その加算結果をアドレス修飾結果として出力する。加算器３５１，３５２，３５３は、命令コードデコーダ３５０からイネーブル信号が与えられないときには、広域オフセット修飾結果をアドレス修飾結果として出力する。
【００８４】
アドレス修飾演算回路３４１から出力されるアドレス修飾結果は、分岐先判別回路３４２（図５参照）に与えられる。
【００８５】
図５に示される分岐先判別回路３４２に適当な分岐条件を設定することにより、ルータでのデータパケットの分岐方法を自由に変えることができる。
【００８６】
たとえば、図１４に示されるような画像メモリの論理的な構成において、フィールド番号０から７までの８個のフィールドに対して、フィールド番号０（２進数表現の０００）およびフィールド番号４（２進数表現の１００）のフィールドについては画像メモリ４１へデータパケットを送り、フィールド番号１（２進数表現の００１）およびフィールド番号５（２進数表現の１０１）については画像メモリ４２へデータパケットを送り、フィールド番号２（２進数表現の０１０）およびフィールド番号６（２進数表現の１１０）については画像メモリ４３へデータパケットを送り、フィールド番号３（２進数表現の０１１）およびフィールド番号７（２進数表現の１１１）については画像メモリ４４へデータパケットを送るものとする。
【００８７】
この場合、ルータ３３，３５に関しては、図３に示される分岐部３０７，３０８の分岐条件を「アドレス修飾後の世代番号のフィールドアドレスの下位２ビット目が“０”のときには合流部３０９へデータパケットを分岐し、“１”のときには合流部３１０へデータパケットを分岐する」という条件に設定する。また、ルータ３４，３６に関しては、図３に示される分岐部３０７，３０８の分岐条件を「アドレス修飾後の世代番号のフィールドアドレスの最下位ビットが“０”のときには合流部３０９へデータパケットを分岐し、“１”のときには合流部３１０へデータパケットを分岐する」という条件に設定する。
【００８８】
このように分岐条件を設定するためには、図５に示される分岐先判別回路３４２にはアドレス修飾演算回路３４１から出力されるアドレス修飾結果のうちフィールドアドレスに相当するビットが与えられる。
【００８９】
ルータ３３，３５のアドレス修飾演算機能付分岐部３０７，３０８内の分岐先判別回路３４２は、アドレス修飾結果のうちフィールドアドレスに相当する部分の下位２ビット目が“０”であるか“１”であるかを判別する。ルータ３４，３６のアドレス修飾演算機能付分岐部３０７，３０８内の分岐先判別回路３４２は、アドレス修飾結果のうちフィールドアドレスに相当する部分の最下位ビットが“０”であるか“１”であるかを判別する。
【００９０】
このようにして、上記の方法でデータパケットを画像メモリ４１，４２，４３，４４へ分岐させることができる。
【００９１】
上記の例では、フィールド番号に基づいてアクセスすべき画像メモリの負荷分散を行なっているが、ライン番号またはピクセル番号に基づいて画像メモリの負荷分散を行なうことも可能である。
【００９２】
図１に示される画像メモリ４１，４２，４３，４４の各々には、図４に示されるベースオフセットレジスタ群３０３および広域オフセット修飾演算部３０５と同様の構成を有するベースオフセットレジスタ群および広域オフセット修飾演算部が設けられ、かつ図６に示されるアドレス修飾演算回路３４１と同様の構成を有するアドレス修飾演算回路が設けられている。
【００９３】
各画像メモリのベースオフセットレジスタ群には、ベースオフセットレジスタ設定命令によって、ベースフィールドオフセット値Ｒｆｄ、ベースラインオフセット値Ｒｌｎおよびベースピクセルオフセット値Ｒｐｘからなるベースオフセットデータが予め格納されている。
【００９４】
したがって、各画像メモリにおいて、入力されたデータパケットの世代番号（ｂ）にベースオフセットデータに基づく広域オフセット修飾が行なわれ、さらに、入力されたデータパケット内のデータ２（ｄ）（オフセット修飾子）に基づくアドレス修飾が行なわれる。それにより、各画像メモリにおいてアクセスされるべき実効アドレスが決定される。
【００９５】
図８および図９に、ベースオフセットデータに基づく広域オフセット修飾およびオフセット修飾子に基づくアドレス修飾を用いて実効アドレスを決定する方法を示す。
【００９６】
入力されたデータパケット内の世代番号（ｂ）（図１３参照）に含まれるフィールドアドレスＦＤ＃、ラインアドレスＬＮ＃およびピクセルアドレスＰＸ＃に、画像メモリ内のベースオフセットレジスタ群に設定されているベースフィールドオフセット値Ｒｆｄ、ベースラインオフセット値Ｒｌｎおよびベースピクセルオフセット値Ｒｐｘがそれぞれ加算される。それらの加算結果に、入力されたデータパケット内のデータ２（ｄ）（オフセット修飾子）に含まれるフィールドオフセット値Δｆｄ、ラインオフセット値Δｌｎおよびピクセルオフセット値Δｐｘが、それぞれ加算される。それらの加算結果が、それぞれ実効フィールドアドレス、実効ラインアドレスおよび実効ピクセルアドレスとなる。
【００９７】
図９に示されるように、ベースオフセットデータに基づく広域オフセット修飾によりポジションシフトを行なった後に、オフセット修飾子に基づくアドレス修飾を行なうことにより、世代番号が示すアドレスからポジションシフトされたアドレスの近傍のアドレスに対してアクセスすることが可能となる。
【００９８】
なお、画像メモリ４１，４２，４３，４４の各々から出力されるデータパケット（図１２参照）内の世代番号（ｇ）は、その画像メモリに入力されるデータパケット（図１参照）内の世代番号（ｂ）と同一である。
図１に示されるルータ３７，３８，３９，４０の各々においては、入力されるデータパケット内のプロセッサ番号（ｉ）に基づいてデータ駆動型プロセッサ２１，２２，２３，２４のいずれかにデータパケットが分岐される。プロセッサ番号（ｉ）が示すプロセッサ番号を有するデータ駆動型プロセッサへデータパケットを送るためには、ルータ３３，３４，３４，５６の場合と同様に、プロセッサ番号（ｉ）の最下位ビットおよび下位２ビット目に基づいて分岐先を決定する。
【００９９】
上記の実施例のデータ駆動型情報処理装置では、ルータ３３，３４，３５，３６の各々が広域オフセット修飾演算機能およびアドレス修飾演算機能を有するので、ベースオフセットレジスタ群に任意のベースオフセットデータを格納し、入力されるデータパケット内のデータ２（ｄ）に任意のデータを格納することによって、各データパケットを任意の画像メモリに送ることができる。
【０１００】
また、画像メモリ４１，４２，４３，４４の各々が広域オフセット修飾演算機能およびアドレス修飾演算機能を有するので、世代番号が示すアドレスからポジションシフトされたアドレスを中心とした近傍処理を行なうことが可能となる。
【０１０１】
上記の実施例では、４個のデータ駆動型プロセッサおよび４個の画像メモリにより構成されるデータ駆動型情報処理装置について説明されているが、図３に示されるルータを用いれば、任意の複数個のデータ駆動型プロセッサから任意の複数個の画像メモリにデータパケットを送ることが可能となる。
【０１０２】
【発明の効果】
第１の発明によれば、経路選択手段の保持手段に任意のベースオフセットデータを設定し、入力されるデータパケット内に任意のデータを設定することにより、１個以上のデータ駆動型処理手段から出力されるデータパケットを任意の記憶手段に分岐させるこが可能となる。したがって、記憶手段の負荷分散を図ることが可能となる。
【０１０３】
第２の発明によれば、経路選択手段の各保持手段に任意のベースオフセットデータを設定し、入力される各データパケット内に任意のデータを設定することにより、複数のデータ駆動型処理手段から出力される各データパケットを任意の記憶手段に分岐させることが可能となる。したがって、マルチプロセッサ構成のデータ駆動型情報処理装置においても、記憶手段の負荷分散を行なうことが可能となる。
【図面の簡単な説明】
【図１】この発明の一実施例によるデータ駆動型情報処理装置の構成を示すブロック図である。
【図２】図１のデータ駆動型情報処理装置に含まれる１つのデータ駆動型プロセッサの構成を示すブロック図である。
【図３】図１のデータ駆動型情報処理装置に含まれる１つのルータの構成を示すブロック図である。
【図４】図３のルータに含まれるベースオフセットレジスタ群および広域オフセット修飾演算部の詳細な構成を示すブロック図である。
【図５】図３のルータに含まれるアドレス修飾演算機能付分岐部の構成を示すブロック図である。
【図６】図５に示されるアドレス修飾演算回路の詳細な構成を示すブロック図である。
【図７】データパケット内のデータ２（ｄ）のフィールド構成を示す図である。
【図８】広域オフセット修飾演算およびアドレス修飾演算を用いて画像メモリの実効アドレスを決定する方法を説明するための図である。
【図９】広域オフセット修飾演算およびアドレス修飾演算を用いて画像メモリの実効アドレスを決定する方法を説明するための図である。
【図１０】従来のデータ駆動型情報処理装置の構成を示すブロック図である。
【図１１】図１０に示される画像メモリに入力されるデータパケットのフィールド構成を示す図である。
【図１２】図１０に示される画像メモリから出力されるデータパケットのフィールド構成を示す図である。
【図１３】データパケット内の世代番号のフィールド構成を示す図である。
【図１４】図１３に示される世代番号の分割例に基づく画像メモリの論理的な構成例を示す図である。
【符号の説明】
２１，２２，２３，２４  データ駆動型プロセッサ
３３，３４，３５，３６，３７，３８，３９，４０  ルータ
４１，４２，４３，４４  画像メモリ
３０１，３０２  入力制御部
３０３，３０４  ベースオフセットレジスタ群
３０５，３０６  広域オフセット修飾演算部
３０７，３０８  アドレス修飾演算機能付分岐部
３０９，３１０  合流部
３１１，３１２  出力制御部
なお、各図中同一符号は同一または相当部分を示す。
【図１】
0003696627.tif 000002
【図２】
0003696627.tif 000003
【図３】
0003696627.tif 000004
【図４】
0003696627.tif 000005
【図５】
0003696627.tif 000006
【図６】
0003696627.tif 000007
【図７】
0003696627.tif 000008
【図８】
0003696627.tif 000009
【図９】
0003696627.tif 000010
【図１０】
0003696627.tif 000011
【図１１】
0003696627.tif 000012
【図１２】
0003696627.tif 000013
【図１３】
0003696627.tif 000014
【図１４】
0003696627.tif 000015