JP3696627B2 - データ駆動型情報処理装置 - Google Patents
データ駆動型情報処理装置 Download PDFInfo
- Publication number
- JP3696627B2 JP3696627B2 JP00031293A JP31293A JP3696627B2 JP 3696627 B2 JP3696627 B2 JP 3696627B2 JP 00031293 A JP00031293 A JP 00031293A JP 31293 A JP31293 A JP 31293A JP 3696627 B2 JP3696627 B2 JP 3696627B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data packet
- input
- driven
- generation number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Processing (AREA)
Description
【産業上の利用分野】
この発明はデータ駆動型情報処理装置に関し、特に、1個以上のデータ駆動型プロセッサ、複数のメモリおよびそれらを接続するためのルータを含むデータ駆動型情報処理装置に関する。
【0002】
【従来の技術】
近時、画像処理の分野で、プロセッサの動作速度を向上させることに対する要求が高まっている。このようなプロセッサの高速化に対する解決の1手段として並列処理が有力視されている。並列処理向きアーキテクチャのうちでも、データ駆動型と呼ばれるアーキテクチャが特に注目される。
【0003】
データ駆動型プロセッサでは、「ある処理に必要な入力データがすべて揃い次第、かつその処理に必要な演算装置などの資源が割当てられたときに処理を行なう」という単純な規則に従って処理が進行する。このアーキテクチャを実現するために必要となる技術として、入力データが揃ったこと(発火)を検出するための機構がある。この発火検出の際に、ある処理に対して1組の入力データセットしか許さないものを静的データ駆動方式、2組以上の入力データセットを許すものを動的データ駆動方式と呼ぶ。
【0004】
映像信号処理などの時系列データを処理する際には、静的データ駆動方式では十分に対応できず、動的アーキテクチャ方式を採用することが必要であると考えられる。この際、ある処理に対して複数の入力データセットが存在するために、これら複数の入力データセットを識別するための世代識別子などの概念を導入する必要がある。本明細書では以下世代識別子のことを世代番号と呼ぶ。
【0005】
上述のような映像処理向きデータ駆動型情報処理装置の一例が、「動的データ駆動型プロセッサによる並列処理方式の検討」(情報処理学会、マイクロコンピュータアーキテクチャシンポジウム、1991.11.12)に示されている。
【0006】
図10は、従来の映像処理向きデータ駆動型情報処理装置の構成を示すブロック図である。図10のデータ駆動型情報処理装置は、映像処理向きデータ駆動型プロセッサ51および画像メモリ52を含む。
【0007】
データ駆動型プロセッサ51には、データ伝送路53を介して入力時間順序に対応して付けられる世代番号を有するデータパケットが時系列的に入力される。
データ駆動型プロセッサ51には予め設定された処理内容が記憶されている。データ駆動型プロセッサ51は、予め設定された処理内容に基づいて入力されたデータパケットを処理する。
【0008】
データ駆動型プロセッサ51が、予め設定された処理内容に基づいて画像メモリ52にアクセス(画像メモリ52の内容の参照、更新など)する際には、データ伝送路54を介して画像メモリ52にデータパケットが与えられる。そのアクセスにより画像メモリ52から出力されるデータパケットは、データ伝送路55を介してデータ駆動型プロセッサ51に与えられる。データ駆動型プロセッサ51は、入力されたデータパケットの処理が終了した後、処理されたデータパケットをデータ伝送路56を介して外部に出力する。
【0009】
図11に、データ伝送路54を介して画像メモリ52に入力されるデータパケットのフィールド構成の例を示す。このデータパケットは、命令コード(a)、世代番号(b)、データ1(c)、データ2(d)およびプロセッサ番号(e)を含む。
【0010】
命令コード(a)は、画像メモリ52に対する処理の内容を示す。この処理の内容としては、たとえば画像メモリ52の内容の参照または更新が含まれる。世代番号(b)は、データ伝送路53を介してデータ駆動型プロセッサ51に入力されるデータパケットに対し、入力時において、入力時系列の順序に従って付けられている識別子である。データ駆動型プロセッサ51は、この世代番号(b)をデータの待ち合わせの際のマッチングに利用している。一方、画像メモリ52においては、世代番号(b)に基づいてアクセスすべきアドレスが決定される。
【0011】
データ1(c)およびデータ2(d)は、命令コード(a)の内容に従って解釈されるオペランドデータである。たとえば、命令コード(a)が画像メモリ52に対する更新を示している場合には、データ1(c)は画像メモリ52に書込まれるべきデータであり、データ2(d)は意味を持たない。命令コード(a)が画像メモリ52に対する参照を示している場合には、データ1(c)およびデータ2(d)は意味を持たない。
【0012】
プロセッサ番号(e)は、データ駆動型情報処理装置が複数のデータ駆動型プロセッサを含む場合に、このデータパケットがどのプロセッサ番号のデータ駆動型プロセッサで処理されるべきかを示す識別子である。
【0013】
なお、図10のデータ駆動型プロセッサ51にはプロセッサ番号PE#0が付され、画像メモリ52にはメモリ番号VM#0が付されている。
【0014】
図11に示されるデータパケットにおいては、命令コード(a)は8ビット、世代番号(b)は24ビット、データ1(c)は12ビット、データ2(d)は12ビット、プロセッサ番号(e)は10ビットである。
【0015】
図12に、画像メモリ52からデータ伝送路55に出力されるデータパケットのフィールド構成の例を示す。このデータパケットは、命令コード(f)、世代番号(g)、データ1(h)およびプロセッサ番号(i)を含む。
【0016】
このデータパケットにおいては、命令コード(f)、世代番号(g)およびプロセッサ番号(i)としては、図11に示されるデータパケットの命令コード(a)、世代番号(b)およびプロセッサ番号(e)がそのまま格納される。データ1(h)としては、画像メモリ52へのアクセス結果が格納される。
【0017】
図13に、世代番号(b)の詳細な構成の例を示す。図13に示すように、世代番号(b)は、フィールドアドレスFD#、ラインアドレスLN#およびピクセルアドレスPX#を含む。
【0018】
図13の例では、画像メモリ52の画面の枚数すなわちフィールドに3ビット、1画面の垂直方向の解像度すなわちラインに11ビット、1画面の水平方向の解像度すなわちピクセルに10ビットが割当てられている。このビット数の割当は、世代番号(b)に割当てられているビット数の範囲で、この例では24ビットの範囲で任意に設定可能である。
【0019】
図14は、図9に示された世代番号(b)の分割例に基づいた画像メモリ52の論理的な構成を示す図である。
【0020】
図14に示される画像メモリ52の論理的な構成は、3ビットのフィールドアドレスFD#で特定される8枚の画像メモリを含む。各画像メモリは、図13に示される11ビットのラインアドレスLN#に対応して、垂直方向に211=2048ラインを含む。各ラインは、図13に示される10ビットのピクセルアドレスPX#に対応して、210=1024ピクセルを含む。
【0021】
データ駆動型プロセッサ51に入力されるデータパケットには、入力時点ですでに入力時系列の順序に従って世代番号が付けられている。この世代番号に基づいて画像メモリ52のアクセスすべきアドレスを決定すれば、アクセス点は1枚目の画像メモリの左上の点から始まって、水平方向にスキャンするように移動する。1ラインのスキャンが終了するとその直後のラインの左端にアクセス点が移動する。1枚目の画像メモリの右下の点までスキャンが終了すると、アクセス点は2枚目の画像メモリの左上の点に移動する。以下各画像メモリのアクセス点は順にスキャンするように移動する。最後の画像メモリ、この例では8枚目の画像メモリの右下の点までスキャンが終了すると、次は1枚目の画像メモリの左上の点にアクセス点が戻り、以下同様のことが繰返される。
【0022】
【発明が解決しようとする課題】
図10に示される従来のデータ駆動型情報処理装置は、1個のデータ駆動型プロセッサ51および1個の画像メモリ52からなるので、処理能力に限界がある。そこで、複数のデータ駆動型プロセッサおよび複数の画像メモリを用いてマルチプロセッサシステムを構成することが考えられる。
【0023】
しかしながら、この場合、各データ駆動型プロセッサから出力されるデータパケットをそのデータパケット内の世代番号に基づいて複数の画像メモリに分岐させると、データパケットの分岐先がその入力順序により決まってしまい、データパケットを任意の画像メモリに送ることができない。そのため、データパケット内の世代番号によりアクセスが行なわれるようなデータ駆動型情報処理装置では、複数の画像メモリを用いて処理の分散を図ることが困難であった。
【0024】
それゆえに、この発明の目的は、データパケット内の世代番号に基づいてアクセスが行なわれるデータ駆動型情報処理装置において、1個以上のデータ駆動型プロセッサから複数のメモリのうち任意のメモリへデータパケットを送ることを可能にすることである。
【0025】
この発明の他の目的は、世代番号に基づいてアクセスが行なわれるデータ駆動型情報処理装置において、複数のデータ駆動型プロセッサの各々から複数のメモリのうち任意のメモリへデータパケットを送ることを可能にすることである。
【0026】
【課題を解決するための手段】
第1の発明に係るデータ駆動型情報処理装置は、データフロープログラムに基づいてデータパケットを処理する1個以上のデータ駆動型処理手段と、1個以上のデータ駆動型処理手段から出力されるデータパケットによりアクセスされる複数の記憶手段と、1個以上のデータ駆動型プロセッサから出力された複数のデータパケットを複数の記憶手段のいずれかに選択的に与える経路選択手段とを備える。
【0027】
データパケットは、命令コード、入力順序に付けられる世代番号およびデータを含む。経路選択手段は、保持手段、修飾手段および分岐手段を含む。
【0028】
保持手段は、入力されたデータパケットのデータを、該入力されたデータパケットの命令コードのデコード結果に従いベースオフセットデータとして保持する。修飾手段は、入力されたデータパケットの世代番号を、保持手段に保持されているベースオフセットデータに基づいてシフトさせかつそのデータパケット内のデータに基づいて修飾する。分岐手段は、修飾手段によりシフトされかつ修飾された世代番号の所定のビットに基づいて、入力されたデータパケットを複数の記憶手段のいずれかに分岐させる。
【0029】
第2の発明に係るデータ駆動型情報処理装置は、データフロープログラムに基づいてデータパケットを処理する複数のデータ駆動型処理手段と、複数のデータ駆動型処理手段から出力されるデータパケットによりアクセスされる複数の記憶手段と、複数のデータ駆動型処理手段から出力されたデータパケットの各々を複数の記憶手段のいずれかに選択的に与える経路選択手段とを備える。
【0030】
データパケットは、命令コード、入力順序に付けられる世代番号およびデータを含む。経路選択手段は、複数の保持手段、複数の修飾手段、複数の分岐手段および複数の合流手段を含む。
【0031】
複数の保持手段の各々は経路選択手段の複数の入力ごとに設けられ、入力されたデータパケットのデータを、該入力されたデータパケットの命令コードのデコード結果に従いベースオフセットデータとして保持する。複数の修飾手段は、それぞれが経路選択手段の複数の入力ごとに設けられ、各々が自己に入力されたデータパケットの世代番号を、対応する保持手段に保持されているベースオフセットデータに基づいてシフトさせかつそのデータパケット内のデータに基づいて修飾する。複数の分岐手段は、複数の修飾手段に対応して設けられ、各々が対応する修飾手段によりシフトされかつ修飾された世代番号の所定のビットに基づいて、入力されたデータパケットを分岐させる。複数の合流手段の各々は、複数の分岐手段から与えられたデータパケットを合流して出力する。
【0032】
【作用】
第1の発明に係るデータ駆動型情報処理装置において、1個以上のデータ駆動型処理手段から出力されたデータパケットは経路選択手段に与えられる。経路選択手段においては、データパケットの世代番号が、保持手段に保持されたベースオフセットデータに基づいてシフトされ、かつそのデータパケット内のデータに基づいて修飾される。入力されたデータパケットは、シフトされかつ修飾された世代番号の所定のビットに基づいて、複数の記憶手段のいずれかに分岐される。
【0033】
ベースオフセットデータおよびデータパケット内のデータを任意の値に設定することにより、1個以上のデータ駆動手段から出力されるデータパケットを任意の記憶手段に送ることができる。
【0034】
第2の発明に係るデータ駆動型情報処理装置においては、複数のデータ駆動型処理手段から出力された複数のデータパケットの各々は経路選択手段に与えられる。経路選択手段においては、各データパケットの世代番号が、対応する保持手段に保持されたベースオフセットデータに基づいてシフトされ、かつそのデータパケット内のデータに基づいて修飾される。入力されたデータパケットは、シフトされかつ修飾された世代番号の所定のビットに基づいて、複数の記憶手段のいずれかに分岐される。
【0035】
各ベースオフセットデータおよび各データパケット内のデータを任意の値に設定することにより、複数のデータ駆動型処理手段から出力されるデータパケットの各々を任意の記憶手段に送ることができる。
【0036】
【実施例】
図1は、この発明の一実施例によるデータ駆動型情報処理装置の構成を示すブロック図である。図1のデータ駆動型情報処理装置は、4個のデータ駆動型プロセッサ21,22,23,24、8個のルータ33,34,35,36,37,38,39,40および4個の画像メモリ41,42,43,44を含む。
【0037】
データ駆動型プロセッサ21〜24には、それぞれプロセッサ番号PE#0〜PE#3が付けられている。また、ルータ33〜40には、それぞれルータ番号RT#0〜RT#7が付けられている。さらに、画像メモリ41〜44には、それぞれメモリ番号VM#0〜VM#3が付けられている。
【0038】
データ駆動型プロセッサ21,24から出力されたメモリアクセス用データパケットはルータ33に与えられ、データ駆動型プロセッサ22,23から出力されたメモリアクセス用データパケットはルータ35に与えられる。ルータ33,35の各々は、合流機能および分岐機能を有し、さらに、後述する広域オフセット修飾演算機能およびアドレス修飾演算機能を有する。すなわち、ルータ33は、データ駆動型プロセッサ21,24から与えられるデータパケットをルータ34またはルータ36に分岐する。同様に、ルータ35は、データ駆動型プロセッサ22,23から与えられるデータパケットをルータ34またはルータ36に分岐する。
【0039】
ルータ34,36の各々は、合流機能および分岐機能を有し、さらに広域オフセット修飾演算機能およびアドレス修飾演算機能を有する。ルータ34は、ルータ33,35から与えられたデータパケットを画像メモリ41または画像メモリ42に分岐する。同様に、ルータ36は、ルータ33,35から与えられたデータパケットを画像メモリ43または画像メモリ44に分岐する。
【0040】
画像メモリ41,42から出力されるデータパケットはルータ37に与えられ、画像メモリ43,44から出力されるデータパケットはルータ39に与えられる。
【0041】
ルータ37,39の各々は、合流機能および分岐機能を有する。ルータ37は、画像メモリ41,42から与えられたデータパケットをルータ38またはルータ40に分岐する。同様に、ルータ39は、画像メモリ43,44から与えられたデータパケットをルータ38またはルータ40に分岐する。
【0042】
ルータ38,40の各々も、合流機能および分岐機能を有する。ルータ38は、ルータ37,39から与えられたデータパケットをデータ駆動型プロセッサ21またはデータ駆動型プロセッサ22に分岐する。同様に、ルータ40は、ルータ37,39から与えられたデータパケットをデータ駆動型プロセッサ23またはデータ駆動型プロセッサ24に分岐する。
【0043】
なお、データ駆動型プロセッサ21で処理されたデータパケットはデータ駆動型プロセッサ22にも与えることができ、データ駆動型プロセッサ24にも与えることができる。また、データ駆動型プロセッサ22で処理されたデータパケットはデータ駆動型プロセッサ23に与えることもできる。データ駆動型プロセッサ23で処理されたデータパケットは、データ駆動型プロセッサ22に与えることもでき、データ駆動型プロセッサ24に与えることもできる。データ駆動型プロセッサ24で処理されたデータパケットはデータ駆動型プロセッサ21に与えることもでき、外部に出力することもできる。
【0044】
このように、図1のデータ駆動型情報処理装置は、マルチプロセッサ構成を有する。
【0045】
図1のデータ駆動型情報処理装置においては、外部からデータ駆動型プロセッサ21に入力されるデータパケットが、世代番号またはプロセッサ番号に基づいて、複数のデータ駆動型プロセッサ、複数のルータおよび複数の画像メモリに送られる。その間に、所定の演算処理が行なわれ、所定の演算処理がすべて終了すると、データ駆動型プロセッサ24から処理結果を含むデータパケットが外部に出力される。
【0046】
データ駆動型プロセッサ21,22,23または24において、画像メモリ41,42,43または44をアクセスする演算処理(メモリの参照または更新)を行なう場合、データパケットは、ルータ33,34,35,36のうちいずれか2個のルータを経由して画像メモリ41,42,43,44のうち任意の画像メモリに与えられる。また、画像メモリ41,42,43,44から出力されるデータパケットは、ルータ37,38,39,40のうちいずれか2個のルータを経由して、データ駆動型プロセッサ21,22,23,24のうち任意のデータ駆動型プロセッサに与えられる。
【0047】
図2は、図1に示されるデータ駆動型プロセッサ21の詳細な構成を示すブロック図である。データ駆動型プロセッサ22,23,24の構成も、図2に示される構成と同様である。
【0048】
外部から与えられるデータパケットは、入力端子IBを介してS/P変換器203に入力される。S/P変換器203により、2ワード構成のデータパケットが1ワード構成のデータパケットにシリアル/パラレル変換される。変換されたデータパケットはデータ合流部204に与えられる。
【0049】
また、図1に示されるデータ駆動型プロセッサ24からデータ駆動型プロセッサ21に戻されたデータパケットは、入力端子IAを介してS/P変換器202に与えられる。S/P変換器202により、2ワード構成のデータパケットが1ワード構成のデータパケットにシリアル/パラレル変換される。変換されたデータパケットはデータ合流部204に与えられる。
【0050】
データ合流部204で合流されたデータパケットはデータ分岐部205に与えられる。データ分岐部205は、このデータ駆動型プロセッサ21で参照されないデータパケットをデータ合流部214に与え、参照されるべきデータパケットのみをデータ合流部206に与える。
【0051】
図1に示されるルータ38から与えられるデータパケットは、入力端子IMを介してS/P変換器201に与えられる。S/P変換器201により、2ワード構成のデータパケットが1ワード構成のデータパケットにシリアル/パラレル変換される。変換されたデータパケットは、直接データ合流部206に与えられる。
【0052】
データ合流部206で合流されたデータパケットはキューバッファ209にストアされる。プログラム記憶付発火制御部210はデータ駆動型プロセッサに特有の機能を有し、命令コードおよび次命令フェッチに必要な行先情報の付け換えを行なうプログラム記憶部211と、処理に必要なデータが揃ったこと(発火)の検出を行なう発火制御部212とを含む。
【0053】
プログラム記憶付発火制御部210で、必要なデータの待合せが完了すると、それらのデータを含むデータパケットがデータ分岐部213に与えられる。データ分岐部213は、演算処理が行なわれるべきデータパケットを演算制御部208に与え、出力されるべきデータパケットをデータ合流部214に与え、画像メモリに与えられるべきデータパケットを合流部217に与える。
【0054】
演算制御部208は、与えられたデータパケット内の命令コードに従って、そのデータパケット内のデータに関する算術演算、論理演算などを行ない、その演算結果を含むデータパケットをデータ分岐部207に与える。データ分岐部207は、プログラム記憶付発火制御部210に与えられるべきデータパケットをデータ合流部206に与え、出力されるべきデータパケットをデータ合流部214に与え、画像メモリに与えられるべきデータパケットをデータ合流部217に与える。
【0055】
データ分岐部207からデータ合流部206に与えられたデータパケットは、キューバッファ209に与えられ、パケット流量のゆらぎが吸収され、再びプログラム記憶付発火制御部210に与えられる。これらの機能は、環状の自己同期パイプライン上に、データの処理順序に従って配置される。
【0056】
データ合流部214に与えられたデータパケットは、データ分岐部215を介してP/S変換部216に与えられる。P/S変換部216により、1ワード構成のデータパケットが再び2ワード構成のデータパケットに変換される。変換されたデータパケットは、出力端子OBを介して、図1に示されるデータ駆動型プロセッサ22に出力される。また、データ分岐部215から出力端子OAに与えられるデータパケットは、P/S変換部219により、同様に2ワード構成のデータパケットに変換されたのち、図1に示されるデータ駆動型プロセッサ24に与えられる。
【0057】
一方、データ合流部217に与えられたデータパケットは、P/S変換部218に与えられる。P/S変換部218により、1ワード構成のデータパケットが2ワード構成のデータパケットに変換される。変換されたデータパケットは、出力端子OMを介して、図1に示されるルータ33に出力される。
【0058】
図3は、図1に示されるルータ33の詳細な構成を示すブロック図である。ルータ34〜36の構成も、図3に示される構成と同様である。
【0059】
ルータ33は、入力制御部301,302、ベースオフセットレジスタ群303,304、広域オフセット修飾演算部305,306、アドレス修飾演算機能付分岐部307,308、合流部309,310および出力制御部311,312を含む。
【0060】
入力制御部301,302は、図1に示されるデータ駆動型プロセッサ21,24から与えられるデータパケットをそれぞれ取込み、それらを広域オフセット修飾演算部305,306にそれぞれ与える。
【0061】
ベースオフセットレジスタ群303,304には、ベースオフセットレジスタ設定命令によって、ベースオフセットデータが予め記憶される。
【0062】
広域オフセット修飾演算部305,306は、入力制御部301,302からそれぞれ与えられるデータパケットの世代番号に対してベースオフセットレジスタ群303,304にそれぞれ記憶されたベースオフセットデータに基づく広域オフセット修飾演算を行なう。広域オフセット修飾演算部305,306は、それぞれ入力されたデータパケットをアドレス修飾演算機能付分岐部307,308に与え、かつ広域オフセット修飾演算の結果もアドレス修飾演算機能付分岐部307,308にそれぞれ与える。
【0063】
アドレス修飾演算機能付分岐部307,308は、与えられた広域オフセット修飾演算の結果に対して、入力されたデータパケット内のデータ2(d)(オフセット修飾子)に基づくアドレス修飾演算を行なう。そして、アドレス修飾演算機能付分岐部307,308は、それらのアドレス修飾演算の結果に基づいて、入力されたデータパケットを合流部309または合流部310に分岐させる。
【0064】
合流部309は、アドレス修飾演算機能付分岐部307,308から与えられたデータパケットを合流し、所定の順序で出力制御部311に与える。同様に、合流部310は、アドレス修飾演算機能付分岐部307,308から与えられたデータパケットを合流し、所定の順序で出力制御部312に与える。
【0065】
出力制御部311は、与えられたデータパケットを図1に示されるルータ34に出力し、出力制御部312は与えられたデータパケットをルータ36に出力する。
【0066】
なお、図1に示されるルータ37,38,39,40においては、広域オフセット修飾演算およびアドレス修飾演算が不要であるので、ベースオフセットレジスタ群303,304および広域オフセット修飾演算部305,306は設けられず、かつアドレス修飾演算機能付分岐部307,308の代わりにアドレス修飾演算機能を有さない分岐部が設けられる。
【0067】
図4は、図3に示されるベースオフセットレジスタ群303および広域オフセット修飾演算部305の詳細な構成を示すブロック図である。図3に示されるベースオフセットレジスタ群304および広域オフセット修飾演算部306の構成も図4に示される構成と同様である。
【0068】
ベースオフセットレジスタ群303は、命令コードデコーダ320および3個のレジスタ321,322,323を含む。命令コードデコーダ320には、入力されたデータパケット内の命令コード(a)が与えられる。命令コードデコーダ320は、命令コード(a)を解読し、その命令コード(a)がベースオフセットレジスタ設定命令を示している場合に、レジスタ321,322,323にイネーブル信号を与える。それにより、レジスタ321,322,323にデータパケット内のデータ1(c)がベースオフセットデータとして格納される。
【0069】
ベースオフセットデータは、ベースフィールドオフセット値Rfd、ベースラインオフセット値Rlnおよびベースピクセルオフセット値Rpxからなる。レジスタ321にはベースフィールドオフセット値Rfdが格納され、レジスタ322にはベースラインオフセット値Rlnが格納され、レジスタ323にはベースピクセルオフセット値Rpxが格納される。
【0070】
広域オフセット修飾演算部305は、3個の加算器331,332,333を含む。加算器331の一方の入力端子にはデータパケット内の世代番号(b)のフィールドアドレスFD#が与えられ、加算器332の一方の入力端子にはデータパケット内の世代番号(b)のラインアドレスLN#が与えられ、加算器333の一方の入力端子にはデータパケット内の世代番号(b)のピクセルアドレスPX#が与えらる。加算器331の他方の入力端子にはレジスタ321から出力されるベースフィールドオフセット値Rfdが与えられ、加算器322の他方の入力端子にはレジスタ322から出力されるベースラインオフセット値Rlnが与えられ、加算器333の他方の入力端子にはレジスタ323から出力されるベースピクセルオフセット値Rpxが与えられる。
【0071】
加算器331は、フィールドアドレスFD#およびベースフィールドオフセット値Rfdを加算し、その加算結果を出力する。加算器332は、ラインアドレスLN#およびベースラインオフセット値Rlnを加算し、その加算結果を出力する。加算器333は、ピクセルアドレスPX#およびベースピクセルオフセット値Rpxを加算し、その加算結果を出力する。加算器331,332,333の出力が広域オフセット修飾結果として図3に示されるアドレス修飾演算機能付分岐部307に与えられる。
【0072】
図5は、図3に示されるアドレス修飾演算機能付分岐部307の構成を示すブロック図である。図3に示されるアドレス修飾演算機能付分岐部308の構成も図5に示される構成と同様である。
【0073】
アドレス修飾演算機能付分岐部307は、アドレス修飾演算回路341、分岐先判別回路342およびANDゲート343,344を含む。
【0074】
アドレス修飾演算回路341には、入力されたデータパケットおよび広域オフセット修飾演算部305から与えられる広域オフセット修飾結果が与えられる。アドレス修飾演算回路341は、広域オフセット修飾結果に対して、データパケット内のデータ2(d)(オフセット修飾子)に基づくアドレス修飾演算を行ない、演算結果をアドレス修飾結果として分岐先判別回路342に与える。
【0075】
また、アドレス修飾演算回路341は、入力されたデータパケットをANDゲート343,344にそのまま出力する。分岐先判別回路342は、アドレス修飾結果の所定のビットに基づいて、ANDゲート343,344のいずれか一方を活性化する。それにより、活性化されたANDゲートからデータパケットが出力される。
【0076】
たとえば、分岐先判別回路342は、アドレス修飾結果の最下位ビットが“1”であるか“0”であるかを判別する。分岐先判別回路342は、たとえば最下位ビットが“1”であればANDゲート343を活性化し、最下位ビットが“0”であればANDゲート344を活性化する。
【0077】
ANDゲート343から出力されるデータパケットは、図3に示される合流部309に与えられ、ANDゲート344から出力されるデータパケットは図3に示される合流部310に与えられる。
【0078】
図6は、図5に示されるアドレス修飾演算回路341の詳細な構成を示すブロック図である。
【0079】
アドレス修飾演算回路341は、命令コードデコーダ350および3個の加算器351,352,353を含む。命令コードデコーダ350には、入力されたデータパケット内の命令コード(a)が与えられる。命令コードデコーダ350は、命令コード(a)を解読し、その命令コード(a)がアドレス修飾演算命令である場合に、加算器351,352,353にイネーブル信号を与える。
【0080】
加算器351,352,353には入力されたデータパケット内のデータ2(d)(オフセット修飾子)および図4に示される広域オフセット修飾演算部305から出力される広域オフセット修飾結果が与えられる。
【0081】
図7に示されるように、データ2(d)の3ビットがフィールドオフセット値Δfdに割当てられ、5ビットがラインオフセット値Δlnに割当てられ、4ビットがピクセルオフセット値Δpxに割当てられている。このビット数の割当ては、データ2(d)に割当てられているビット数の範囲で、この例では12ビットの範囲で任意に設定可能である。各オフセット値は、それぞれに割当てられた領域に符号付整数の形で格納されている。
【0082】
再び、図6に戻って、加算器351の一方の入力端子にはフィールドオフセット値Δfdが与えられ、加算器352の一方の入力端子にはラインオフセット値Δlnが与えられ、加算器353の一方の入力端子にはピクセルオフセット値Δpxが与えられる。加算器351の他方の入力端子には図4に示される加算器331の出力が与えられ、加算器352の他方の入力端子には図4に示される加算器332の出力が与えられ、加算器353の他方の入力端子には図4に示される加算器333の出力が与えられる。
【0083】
加算器351,352,353は、命令コードデコーダ350からのイネーブル信号に応答して、それぞれフィールドオフセット値Δfd、ラインオフセット値Δlnおよびピクセルオフセット値Δpxを対応する広域オフセット修飾結果に加算し、その加算結果をアドレス修飾結果として出力する。加算器351,352,353は、命令コードデコーダ350からイネーブル信号が与えられないときには、広域オフセット修飾結果をアドレス修飾結果として出力する。
【0084】
アドレス修飾演算回路341から出力されるアドレス修飾結果は、分岐先判別回路342(図5参照)に与えられる。
【0085】
図5に示される分岐先判別回路342に適当な分岐条件を設定することにより、ルータでのデータパケットの分岐方法を自由に変えることができる。
【0086】
たとえば、図14に示されるような画像メモリの論理的な構成において、フィールド番号0から7までの8個のフィールドに対して、フィールド番号0(2進数表現の000)およびフィールド番号4(2進数表現の100)のフィールドについては画像メモリ41へデータパケットを送り、フィールド番号1(2進数表現の001)およびフィールド番号5(2進数表現の101)については画像メモリ42へデータパケットを送り、フィールド番号2(2進数表現の010)およびフィールド番号6(2進数表現の110)については画像メモリ43へデータパケットを送り、フィールド番号3(2進数表現の011)およびフィールド番号7(2進数表現の111)については画像メモリ44へデータパケットを送るものとする。
【0087】
この場合、ルータ33,35に関しては、図3に示される分岐部307,308の分岐条件を「アドレス修飾後の世代番号のフィールドアドレスの下位2ビット目が“0”のときには合流部309へデータパケットを分岐し、“1”のときには合流部310へデータパケットを分岐する」という条件に設定する。また、ルータ34,36に関しては、図3に示される分岐部307,308の分岐条件を「アドレス修飾後の世代番号のフィールドアドレスの最下位ビットが“0”のときには合流部309へデータパケットを分岐し、“1”のときには合流部310へデータパケットを分岐する」という条件に設定する。
【0088】
このように分岐条件を設定するためには、図5に示される分岐先判別回路342にはアドレス修飾演算回路341から出力されるアドレス修飾結果のうちフィールドアドレスに相当するビットが与えられる。
【0089】
ルータ33,35のアドレス修飾演算機能付分岐部307,308内の分岐先判別回路342は、アドレス修飾結果のうちフィールドアドレスに相当する部分の下位2ビット目が“0”であるか“1”であるかを判別する。ルータ34,36のアドレス修飾演算機能付分岐部307,308内の分岐先判別回路342は、アドレス修飾結果のうちフィールドアドレスに相当する部分の最下位ビットが“0”であるか“1”であるかを判別する。
【0090】
このようにして、上記の方法でデータパケットを画像メモリ41,42,43,44へ分岐させることができる。
【0091】
上記の例では、フィールド番号に基づいてアクセスすべき画像メモリの負荷分散を行なっているが、ライン番号またはピクセル番号に基づいて画像メモリの負荷分散を行なうことも可能である。
【0092】
図1に示される画像メモリ41,42,43,44の各々には、図4に示されるベースオフセットレジスタ群303および広域オフセット修飾演算部305と同様の構成を有するベースオフセットレジスタ群および広域オフセット修飾演算部が設けられ、かつ図6に示されるアドレス修飾演算回路341と同様の構成を有するアドレス修飾演算回路が設けられている。
【0093】
各画像メモリのベースオフセットレジスタ群には、ベースオフセットレジスタ設定命令によって、ベースフィールドオフセット値Rfd、ベースラインオフセット値Rlnおよびベースピクセルオフセット値Rpxからなるベースオフセットデータが予め格納されている。
【0094】
したがって、各画像メモリにおいて、入力されたデータパケットの世代番号(b)にベースオフセットデータに基づく広域オフセット修飾が行なわれ、さらに、入力されたデータパケット内のデータ2(d)(オフセット修飾子)に基づくアドレス修飾が行なわれる。それにより、各画像メモリにおいてアクセスされるべき実効アドレスが決定される。
【0095】
図8および図9に、ベースオフセットデータに基づく広域オフセット修飾およびオフセット修飾子に基づくアドレス修飾を用いて実効アドレスを決定する方法を示す。
【0096】
入力されたデータパケット内の世代番号(b)(図13参照)に含まれるフィールドアドレスFD#、ラインアドレスLN#およびピクセルアドレスPX#に、画像メモリ内のベースオフセットレジスタ群に設定されているベースフィールドオフセット値Rfd、ベースラインオフセット値Rlnおよびベースピクセルオフセット値Rpxがそれぞれ加算される。それらの加算結果に、入力されたデータパケット内のデータ2(d)(オフセット修飾子)に含まれるフィールドオフセット値Δfd、ラインオフセット値Δlnおよびピクセルオフセット値Δpxが、それぞれ加算される。それらの加算結果が、それぞれ実効フィールドアドレス、実効ラインアドレスおよび実効ピクセルアドレスとなる。
【0097】
図9に示されるように、ベースオフセットデータに基づく広域オフセット修飾によりポジションシフトを行なった後に、オフセット修飾子に基づくアドレス修飾を行なうことにより、世代番号が示すアドレスからポジションシフトされたアドレスの近傍のアドレスに対してアクセスすることが可能となる。
【0098】
なお、画像メモリ41,42,43,44の各々から出力されるデータパケット(図12参照)内の世代番号(g)は、その画像メモリに入力されるデータパケット(図1参照)内の世代番号(b)と同一である。
図1に示されるルータ37,38,39,40の各々においては、入力されるデータパケット内のプロセッサ番号(i)に基づいてデータ駆動型プロセッサ21,22,23,24のいずれかにデータパケットが分岐される。プロセッサ番号(i)が示すプロセッサ番号を有するデータ駆動型プロセッサへデータパケットを送るためには、ルータ33,34,34,56の場合と同様に、プロセッサ番号(i)の最下位ビットおよび下位2ビット目に基づいて分岐先を決定する。
【0099】
上記の実施例のデータ駆動型情報処理装置では、ルータ33,34,35,36の各々が広域オフセット修飾演算機能およびアドレス修飾演算機能を有するので、ベースオフセットレジスタ群に任意のベースオフセットデータを格納し、入力されるデータパケット内のデータ2(d)に任意のデータを格納することによって、各データパケットを任意の画像メモリに送ることができる。
【0100】
また、画像メモリ41,42,43,44の各々が広域オフセット修飾演算機能およびアドレス修飾演算機能を有するので、世代番号が示すアドレスからポジションシフトされたアドレスを中心とした近傍処理を行なうことが可能となる。
【0101】
上記の実施例では、4個のデータ駆動型プロセッサおよび4個の画像メモリにより構成されるデータ駆動型情報処理装置について説明されているが、図3に示されるルータを用いれば、任意の複数個のデータ駆動型プロセッサから任意の複数個の画像メモリにデータパケットを送ることが可能となる。
【0102】
【発明の効果】
第1の発明によれば、経路選択手段の保持手段に任意のベースオフセットデータを設定し、入力されるデータパケット内に任意のデータを設定することにより、1個以上のデータ駆動型処理手段から出力されるデータパケットを任意の記憶手段に分岐させるこが可能となる。したがって、記憶手段の負荷分散を図ることが可能となる。
【0103】
第2の発明によれば、経路選択手段の各保持手段に任意のベースオフセットデータを設定し、入力される各データパケット内に任意のデータを設定することにより、複数のデータ駆動型処理手段から出力される各データパケットを任意の記憶手段に分岐させることが可能となる。したがって、マルチプロセッサ構成のデータ駆動型情報処理装置においても、記憶手段の負荷分散を行なうことが可能となる。
【図面の簡単な説明】
【図1】この発明の一実施例によるデータ駆動型情報処理装置の構成を示すブロック図である。
【図2】図1のデータ駆動型情報処理装置に含まれる1つのデータ駆動型プロセッサの構成を示すブロック図である。
【図3】図1のデータ駆動型情報処理装置に含まれる1つのルータの構成を示すブロック図である。
【図4】図3のルータに含まれるベースオフセットレジスタ群および広域オフセット修飾演算部の詳細な構成を示すブロック図である。
【図5】図3のルータに含まれるアドレス修飾演算機能付分岐部の構成を示すブロック図である。
【図6】図5に示されるアドレス修飾演算回路の詳細な構成を示すブロック図である。
【図7】データパケット内のデータ2(d)のフィールド構成を示す図である。
【図8】広域オフセット修飾演算およびアドレス修飾演算を用いて画像メモリの実効アドレスを決定する方法を説明するための図である。
【図9】広域オフセット修飾演算およびアドレス修飾演算を用いて画像メモリの実効アドレスを決定する方法を説明するための図である。
【図10】従来のデータ駆動型情報処理装置の構成を示すブロック図である。
【図11】図10に示される画像メモリに入力されるデータパケットのフィールド構成を示す図である。
【図12】図10に示される画像メモリから出力されるデータパケットのフィールド構成を示す図である。
【図13】データパケット内の世代番号のフィールド構成を示す図である。
【図14】図13に示される世代番号の分割例に基づく画像メモリの論理的な構成例を示す図である。
【符号の説明】
21,22,23,24 データ駆動型プロセッサ
33,34,35,36,37,38,39,40 ルータ
41,42,43,44 画像メモリ
301,302 入力制御部
303,304 ベースオフセットレジスタ群
305,306 広域オフセット修飾演算部
307,308 アドレス修飾演算機能付分岐部
309,310 合流部
311,312 出力制御部
なお、各図中同一符号は同一または相当部分を示す。
Claims (2)
- データフロープログラムに基づいてデータパケットを処理する1個以上のデータ駆動型処理手段と、
前記1個以上のデータ駆動型処理手段から出力されるデータパケットによりアクセスされる複数の記憶手段と、
前記1個以上のデータ駆動型処理手段から出力された複数のデータパケットを前記複数の記憶手段のいずれかに選択的に与える経路選択手段とを備え、
前記データパケットは、命令コード、入力順序に付けられる世代番号およびデータを含み、
前記経路選択手段は、
入力されたデータパケットのデータを、該入力されたデータパケットの命令コードのデコード結果に従いベースオフセットデータとして保持する保持手段と、
入力されたデータパケットの世代番号を前記保持手段に保持されている前記ベースオフセットデータに基づいてシフトさせかつそのデータパケット内のデータに基づいて修飾する修飾手段と、
前記修飾手段によりシフトされかつ修飾された世代番号の所定のビットに基づいて、入力されたデータパケットを前記複数の記憶手段のいずれかに分岐させる分岐手段とを含む、データ駆動型情報処理装置。 - データフロープログラムに基づいてデータパケットを処理する複数のデータ駆動型処理手段と、
前記複数のデータ駆動型処理手段から出力されるデータパケットによりアクセスされる複数の記憶手段と、
前記複数のデータ駆動型処理手段から出力されたデータパケットの各々を前記複数の記憶手段のいずれかに選択的に与える経路選択手段とを備え、
前記データパケットは、命令コード、入力順序に付けられる世代番号およびデータを含み、
前記経路選択手段は、
それぞれが前記経路選択手段の複数の入力ごとに設けられ、各々が入力されたデータパケットのデータを、該入力されたデータパケットの命令コードのデコード結果に従いベースオフセットデータとして保持する複数の保持手段と、
それぞれが前記経路選択手段の複数の入力ごとに設けられ、各々が、自己に入力されたデータパケットの世代番号を、対応する保持手段に保持されている前記ベースオフセットデータに基づいてシフトさせかつそのデータパケット内のデータに基づいて修飾する複数の修飾手段と、
前記複数の修飾手段に対応して設けられ、各々が対応する修飾手段によりシフトされかつ修飾された世代番号の所定のビットに基づいて、入力されたデータパケットを分岐させる複数の分岐手段と、
各々が入力されたデータパケットを合流して出力する複数の合流手段とを含む、データ駆動型情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00031293A JP3696627B2 (ja) | 1993-01-05 | 1993-01-05 | データ駆動型情報処理装置 |
US08/141,207 US5586281A (en) | 1992-10-27 | 1993-10-26 | Data driven type information processing apparatus |
US08/699,878 US5918063A (en) | 1992-10-27 | 1996-08-20 | Data driven type information processing apparatus including plural data driven type processors and plural memories |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00031293A JP3696627B2 (ja) | 1993-01-05 | 1993-01-05 | データ駆動型情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06203186A JPH06203186A (ja) | 1994-07-22 |
JP3696627B2 true JP3696627B2 (ja) | 2005-09-21 |
Family
ID=11470402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00031293A Expired - Fee Related JP3696627B2 (ja) | 1992-10-27 | 1993-01-05 | データ駆動型情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3696627B2 (ja) |
-
1993
- 1993-01-05 JP JP00031293A patent/JP3696627B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06203186A (ja) | 1994-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5586281A (en) | Data driven type information processing apparatus | |
US9465613B2 (en) | Instruction predication using unused datapath facilities | |
JPH0769818B2 (ja) | デ−タ処理装置 | |
KR100981033B1 (ko) | 프로세서를 코프로세서에 인터페이싱하기 위한 방법 및 장치 | |
JPH08249306A (ja) | データ駆動型情報処理装置 | |
JP3100721B2 (ja) | 複数の命令を発行する装置および方法 | |
US5125097A (en) | Data flow type information processors where data packets pass through plurality of merging and branching portions of the internal path | |
JP3237858B2 (ja) | 演算装置 | |
JP3698754B2 (ja) | データ駆動型情報処理装置 | |
KR19990083404A (ko) | 정보처리장치및기억매체 | |
US6918029B2 (en) | Method and system for executing conditional instructions using a test register address that points to a test register from which a test code is selected | |
US7376811B2 (en) | Method and apparatus for performing computations and operations on data using data steering | |
JP3696627B2 (ja) | データ駆動型情報処理装置 | |
JP3581419B2 (ja) | データ駆動型情報処理装置 | |
JP2946490B2 (ja) | ピクセル描画用データ・プロセッサ | |
JPS6265133A (ja) | 命令先取り装置 | |
US8599208B2 (en) | Shared readable and writeable global values in a graphics processor unit pipeline | |
JPH07191955A (ja) | データ駆動型情報処理装置 | |
JPH06139376A (ja) | データフロー型情報処理装置 | |
JP3958534B2 (ja) | データ駆動型情報処理装置 | |
JP4315626B2 (ja) | データ駆動型情報処理装置のメモリ制御部における情報処理方法 | |
JP2001202351A (ja) | Simd型プロセッサ | |
JPH01147723A (ja) | 情報処理装置のパイプライン処理方式 | |
JPS6153754B2 (ja) | ||
JP2629479B2 (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040210 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040309 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040416 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040723 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050630 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080708 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090708 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100708 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110708 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |