JPH11232247A - データフロー計算機およびデータフロー制御方法 - Google Patents

データフロー計算機およびデータフロー制御方法

Info

Publication number
JPH11232247A
JPH11232247A JP2881898A JP2881898A JPH11232247A JP H11232247 A JPH11232247 A JP H11232247A JP 2881898 A JP2881898 A JP 2881898A JP 2881898 A JP2881898 A JP 2881898A JP H11232247 A JPH11232247 A JP H11232247A
Authority
JP
Japan
Prior art keywords
data
token
processing
instruction
shared memory
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.)
Pending
Application number
JP2881898A
Other languages
English (en)
Inventor
Takashi Nakamoto
貴士 中本
Hiroshi Yamada
博 山田
Junko Nakase
純子 中瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2881898A priority Critical patent/JPH11232247A/ja
Publication of JPH11232247A publication Critical patent/JPH11232247A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】多量のデータを高速にデータフロー的に処理す
る。 【解決手段】制御用プロセッサエレメント308は、処
理内容を示すフローIDと、処理されるべきデータが記
憶されている、共有メモリ303内の記憶位置を指すソ
ースポインタと、処理の結果データを格納すべき、共有
メモリ303内の記憶位置を指すデスティネーションポ
インタとを含む命令トークンを演算用プロセッサエレメ
ント307Aまたは307Bに供給する。そのプロセッ
サエレメントは、ソースポインタで指摘されたデータを
共有メモリより読み出し、フローIDで指定される処理
をそのデータに対して実行し、共有メモリ303内のデ
スティネーションポインタにより指定される記憶位置に
処理結果データを格納し、上記命令トークンを制御用プ
ロセッサエレメント308に転送し、その命令トークン
を処理したことを通知する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の処理エレメ
ントをデータフロー制御にしたがって並列に動作させる
データフロー計算機およびデータフロー制御方法に関す
る。
【0002】
【従来の技術】動画像データに代表される大量のデータ
に対する演算を高速に処理するには、複数の処理エレメ
ント例えばプロセッサエレメントあるいは専用の演算器
を並列に動作させることが望ましい。これに適したプロ
セッサとしてデータフロー計算機が知られている。例え
ば、中野 肇監修「入門と実習 ニューロコンピュー
タ」(平1−9−15)技術評論社 P.138−14
1参照。この種のプロセッサでは、トークンと呼ばれる
データパケットが演算の実行を制御する。トークンは、
被演算データとそのデータに対する処理を指定する情報
とを含む一つのまとまったデータパケットである。異な
るプロセッサエレメントの間でトークンが交換される。
各プロセッサエレメントは他からトークンを受信したと
きに、そのことを契機として、そのトークン内のデータ
を処理する命令あるいは命令列を実行する。その実行に
より生成されたデータとそのデータに対して施すべき処
理を指定するための情報とを含むトークンを生成し、他
のプロセッサエレメントに転送する。当該他のプロセッ
サエレメントも同様にして受信したトークンを処理す
る。各プロセッサエレメントが実行すべき処理のフロー
を事前に定めることにより、これらのプロセッサエレメ
ントを効率よく並列に動作させることができる。
【0003】
【発明が解決しようとする課題】従来のデータフロー計
算機では、トークンには被演算データが含まれる。一つ
のトークンに長いデータを含ませた場合、トークンを、
トークン制御用のプロセッサエレメントと処理エレメン
トの間あるいは異なる処理エレメントの間で転送するの
に時間が掛かる。トークン制御用のプロセッサエレメン
ト内での処理にも時間が掛かる。しかも、一つのトーク
ンに含まれるデータの長さには上限があるのが普通であ
る。したがって、処理すべきデータの全量が多くなるほ
ど、処理すべきトークンの数が多くなる。トークンの数
が増大すると、それらのトークンをトークン制御用のプ
ロセッサエレメントと処理エレメントの間あるいは異な
る処理エレメントの間で転送するのに時間が掛かる。こ
のように、動画像データに代表される多量のデータを従
来のデータフロー計算機で処理させると、処理時間が長
くなる。
【0004】従って、本発明の目的は、多量のデータを
高速に処理可能なデータフロー計算機を提供することで
ある。
【0005】本発明のより具体的な目的は、動画像デー
タに代表される多量のデータを高速に処理可能なデータ
フロー制御の信号処理プロセッサを提供することであ
る。
【0006】
【課題を解決するための手段】本発明によるデータフロ
ー計算機は、複数の処理エレメントと、これらに対する
共有メモリと、上記複数の処理エレメントに対して処理
の実行を要求する命令トークンを供給する制御回路とを
有し、上記制御回路は、いずれかの処理を起動するとき
に、その処理に使用可能なデータが記憶された、上記共
有メモリ内の記憶位置を指定する第1の情報と、上記処
理の実行により得られる結果データを格納すべき、上記
メモリ内の記憶位置を指定する第2の情報とを有する命
令トークンを、上記複数の処理エレメントの内、その処
理を実行可能な処理エレメントに供給し、各処理エレメ
ントは、上記制御回路により命令トークンを供給された
ときに、その供給された命令トークン内の上記第1の情
報により指定される、上記共有メモリ内の記憶位置から
処理すべきデータを読み出し、そのデータに対して処理
を実行し、その実行の結果データを、上記供給された命
令トークン内の上記第2の情報により指定される、上記
共有メモリ内の記憶位置に記憶する。
【0007】本データフロー計算機では、処理すべきデ
ータは命令トークンには含まれず、そのデータの記憶位
置を指定する情報が含まれる。したがって、処理エレメ
ントの間では処理の結果データは転送されない。このデ
ータは共有メモリを介してそれらの処理プロセッサエレ
メント間で受け渡しされる。以上のことから、本データ
フロー計算機は多量のデータを高速に処理できる。
【0008】
【発明の実施の形態】<従来の技術とその問題点>本発
明の実施の形態を説明する前に、前述の文献に記載の従
来のデータフロー制御のプロセッサシステムを説明す
る。図18に示すように、このプロセッサでは、4つの
イメージパイプラインドプロセッサ(ImPP)チップ
(1150)の直列接続がデータ転送を司るマジックと
称するチップ(1160)に接続されている。このマジ
ックチップ1160にはイメージメモリ1170、デー
タバッファ1180、I/Oポートデコーダ1181、
DMAコントローラ1182が接続されている。各Im
PPチップ1150は、図19に示すように構成されて
いる。インプットコントローラ1104とアウトプット
コントローラー1101とは、他のImPPチップおよ
びマジックチップ1160との間でトークンを交換す
る。この交換されるトークンは、データとリンク情報
(ID)とを含む。インプットコントローラ1104が
受信したトークンは、リンクテーブル1105、ファン
クショナルテーブル1106、データメモリ1103、
キュー1102、プロセッシングユニット1107によ
り処理される。プロセッシングユニット1107による
処理の結果、新たなトークンが生成され、リンクテーブ
ル1105に供給される。リンクテーブル1105から
プロセッシングユニット1107がトークンを処理する
ためのパイプライン・リンクを構成する。
【0009】リンクテーブル1105は、インプットコ
ントローラ1104あるいはプロセッシングユニット1
107より与えられたトークン内のリンク情報IDによ
り、オペレーションコードアドレス(OPA)とトーク
ンが上記パイプライン・リンクにより処理された結果生
成される次のトークンに付すべき次のリンク情報ID’
との対をそのテーブル内部から読み出し、これらの新た
な情報と入力トークンに含まれたデータとよりなる新た
なトークンをファンクショナルテーブル1106に供給
する。ファンクショナルテーブル1106は、オペレー
ションコードアドレス(OPA)により、そのトークン
がリングを一周する間に実行すべき命令の演算コード
(OP)をそのテーブルの内部より読み出す。受信した
トークンが、データメモリのアドレスの生成(AG)の
コードあるいはフロー制御(FC)のコードを持ってい
る場合には、ファンクショナルテーブル1106に付属
するAG−FC部(図示せず)によりそのコードが処理
される。データメモリ1103は、AG−FC部により
生成されたデータメモリアドレスにトークン内のデータ
を一時的に書き込むか、あるいはすでにこのメモリに書
き込まれた常数あるいは先に書き込まれたデータをデー
タBとして読み出し、元のデータ(これはデータAとし
て扱われる)とこのデータB、リンク情報ID’、OP
Aを含む新たなトークンをキュー1102に供給する。
キュー1102内のトークンの内、さらに処理をされる
べきトークンは、プロセッシングユニット1107に供
給される。このプロセッシングユニット1107はその
トークンを処理して新たなトークンを生成し、リンクテ
ーブル1105に供給する。その後、以上の処理がこの
供給されたトークンに対して繰り返される。その結果、
キュー1102に、さらに処理を要しないトークンが格
納される。このようなトークンは、アウトプットコント
ローラー1101によりこのプロセッサエレメントの外
部に送出される。
【0010】以上から明らかなように、入力トークンに
含まれたデータは、そのデータに対する処理が完了する
まで、パイプライン・リング上を転送される。したがっ
て、画像データのごとく処理すべきデータの総量が多い
場合には、より多数のトークンを処理しなければならな
くなり、処理時間が掛かる。
【0011】また、複数のImPPチップ1150がシ
リアルに接続されているために、異なる処理を並列に実
行するには、処理速度に制限があるという問題もある。
【0012】以下、本発明に係るデータフロー制御のプ
ロセッサシステムを図面に示したいくつかの実施の形態
を参照してさらに詳細に説明する。なお、以下において
は、同じ参照番号は同じものもしくは類似のものを表す
ものとする。また、発明の第2の実施の形態以降におい
ては、発明の第1の実施の形態との相違点を主に説明す
るに止める。
【0013】<発明の実施の形態1>図1において、デ
ータフロー制御の信号処理プロセッサは、信号処理に必
要な複数の処理を並列に実行するための処理エレメント
して、いずれも複数の処理を実行可能なプログラム制御
の演算用プロセッサエレメント(PE1,PE2)30
7A,307Bを使用する。このプロセッサは、これら
の演算用プロセッサエレメントにより共有される共有メ
モリ303と、このメモリへのアクセス要求のアービト
レーションを行うメモリアービトレーション回路304
と、インプットコントローラ302と、アウトプットコ
ントローラ306と、制御用プロセッサエレメント30
8とを有する。制御用プロセッサエレメント308は、
汎用のプログラム制御のマイクロコンピュータにより構
成される。図においてブロック308内には、このプロ
セッサエレメントにより実行される、トークンの処理の
ための複数のプログラムモジュール314、311、3
09および制御用プロセッサエレメントのメモリ(図示
せず)内に設けられたテーブル315、スタックメモリ
313およびキュー310等を示している。演算用プロ
セッサエレメント307A,307Bはいずれも種々の
演算を実行可能な演算器(図示せず)を有する。この信
号処理プロセッサは、一つのLSIチップ上に構成され
る。
【0014】インプットコントローラ302は、入力デ
ータを外部から受け取ると、そのデータを共有メモリ3
04の特定のアドレスの位置に書き込む。以下、インプ
ットコントローラ302およびアウトプットコントロー
ラ306がデータを外部と交換するのに用いるデータパ
ケットをデータトークンと呼び、演算用プロセッサエレ
メント307A、307Bが実行するトークンを命令ト
ークンと呼ぶ。インプットコントローラ302は、その
後そのデータトークンの処理が終了したことを通知する
命令トークンを生成し、制御用プロセッサエレメント3
08に供給する。この命令トークンには上記共有メモリ
アドレスが含まれる。
【0015】制御用プロセッサエレメント308は、こ
の命令トークンに応答して、そのデータを処理するため
の命令トークンを発生し、演算用プロセッサエレメント
307Aあるいは307Bの内、処理を実行可能な状態
にある演算用プロセッサエレメントにその命令トークン
を供給する。この命令トークンには、その入力データの
アドレスとその入力データに対して施すべき処理を示す
情報と、その処理の結果データを記憶すべき、共有メモ
リ303内のアドレスを含む。その演算用プロセッサエ
レメントは、この命令トークン内のアドレスによりその
入力データを共有メモリ303から読み出し、この命令
トークンにより指定された上記処理を実行し、その結果
データを上記命令トークンが指定する、共有メモリ30
4内のアドレスの位置に書き込む。その後、この命令ト
ークンの実行が終了したことを知らせるために、この命
令トークンを制御用プロセッサエレメント308に供給
する。制御用プロセッサエレメント308は、演算用プ
ロセッサエレメント307Aあるいは307Bから供給
された命令トークンに応答して、後続の命令トークンを
生成する。この命令トークンは、上に述べた最初の命令
トークンと同様に処理させる。以下、同様の処理が繰り
替えされる。最終結果データはアウトプットコントロー
ラ306により、共有メモリ303から読み出され外部
に転送される。
【0016】このように、本実施の形態では、処理され
るべきデータに代えて、そのデータのメモリアドレスが
命令トークンに含まれ、演算用プロセッサエレメント3
07Aあるいは307Bと制御用プロセッサエレメント
308との間では、データは直接には転送されない。演
算結果データを生成した演算用プロセッサエレメントと
それに対して演算を行う演算用プロセッサエレメントの
間では、その演算結果データはトークンを介してではな
く共有メモリ303を介して受け渡される。
【0017】各演算用プロセッサエレメントが実行可能
な複数の処理の例は、動画像符号化データの復号処理を
行うのに必要な、可変長復号(VLD)処理,逆量子化
(IQ)処理,逆DCT(IDCT)処理,動き保証
(MC)である。しかし、以下の説明においては、図3
に示したように、本実施の形態の信号処理プロセッサで
実行される処理は、処理1から4を含む処理であると仮
定し、これらの処理を引用しながら本実施の形態の信号
処理プロセッサの動作を説明する。ここで、処理1は入
力データAを処理し、処理3は入力データBを処理す
る。処理2は、処理1の結果データを処理し、処理4は
処理2の結果データと処理3の結果データとを処理し、
結果データCを生成する。処理4は、複数のデータに対
する処理である。このような処理を以下では複数項演算
と呼ぶことがある。例えば、算術四則演算、あるいは論
理積演算あるいは論理和演算等の論理演算が複数項演算
である。本実施の形態では、複数項演算が使用するデー
タの数は2と仮定する。
【0018】本実施の形態では、共有メモリ303のア
ドレスを含む命令トークンを使用するために、共有メモ
リ303上に各処理に対応して、その処理が使用するデ
ータを格納する領域を予め定めておく。例えば、図4に
示すように、領域aは処理1で使用される領域であり、
入力データAとBは、それぞれこの領域a内のアドレス
a1とa2の領域に記憶される。領域bは処理2により
使用される領域であり、処理1の結果データがこの領域
b内のアドレスb1の領域に記憶される。領域cは処理
4により使用される領域であり、処理2と3の結果デー
タがそれぞれこの領域c内のアドレスc1とc2の領域
に記憶される。領域dは、アウトプットコントローラ3
0により使用される領域であり、具体的には処理4の結
果データCがこの領域d内のアドレスd1の領域に記憶
される。これらの領域aからdは、互いに他と重複しな
いように定められる。
【0019】本実施の形態で使用される命令トークン
は、図2のフォーマット321に示されるように、フロ
ー識別子(フローID)、演算タグ、ソースポインタ、
デスティネーションポインタという4つのフィールドか
らなる。フローIDは処理の種類を表す。演算タグは、
フローIDが指定する処理が複数のデータを使用する処
理(複数項演算)であるときに、それらのデータを区別
するためのものである。例えば、同じ処理に使用される
最初のデータに対しては番号1を使用し、同じ処理に使
用する第2のデータに対しては番号2を使用する。一つ
の処理が使用するデータが一つの時には、そのデータに
対しては演算タグは使用されない。ソースポインタは、
処理されるべきデータが記憶されている、共有メモリ3
03上のアドレスを示す。デスティネーションポインタ
は、その命令トークンが要求する処理の結果データを格
納すべき、共有メモリ303上のアドレスを示す。
【0020】本実施の形態で使用されるデータトークン
は、図2のフォーマット322で示されるように、デー
タの入力を示すフローIDと、処理されるべきデータと
を含む。
【0021】インプットコントローラ302は、線30
1を介してデータトークンを外部から受信し、このトー
クン内のデータを共有メモリ303に書き込むととも
に、そのデータトークンの処理が終了したことを通知す
るための命令トークンを生成してトークン発生部314
に転送する回路である。図3の処理1が使用すべきデー
タAが入力されデータトークンの場合、インプットコン
トローラ302は、共有メモリ303内の領域aに属す
る領域a1(図4)のアドレスを作成し、そのデータト
ークンを受信したときに、このアドレスを使用してデー
タトークンに含まれたデータAをこの領域a1に記憶す
る。同様に、処理3が使用すべきデータBが入力される
データトークンの場合、インプットコントローラ302
は、そのデータトークンを受信したときに、領域a2の
アドレスを作成し、データBをこの領域a2に記憶す
る。なお、インプットコントローラ302は、共有メモ
リ303に対するアクセスを監視し、そこからデータが
読み出されたときにはその読み出し位置を検出し、この
検出結果に基づいて、入力されたデータAあるいはBに
対する処理が終了したことを判断し、領域a内の空き領
域を検出する回路を有する。インプットコントローラ3
02はこの検出された空き領域に入力データを書き込
む。
【0022】入力データの書き込みの完了後に、インプ
ットコントローラ302は書き込みの完了を通知するた
めの命令トークンを生成し、トークン発生部314に供
給する。この命令トークンでは、フローIDは、データ
AまたはBの入力を示し、デスティネーションポインタ
は、その入力データが書き込まれた、共有メモリ303
内のアドレスを示す。ソースポインタおよび演算タグは
有効でない。
【0023】図5にインプットコントローラ302の概
略構造を示す。入力データはFIFO(1801)に一
旦格納される。書き込みを開始するアドレスを書き込み
開始アドレスレジスタ1805と書き込みアドレスレジ
スタ1804に格納し、共有メモリ803に書き込みア
ドレスとして供給する。前記FIFO(1801)に格
納されたデータは、レジスタ1802を経由して共有メ
モリ803(図13)に供給され、レジスタ1804内
のアドレスを用いて、共有メモリ803が許す期間に格
納される。インクリメンタ1803により書き込みアド
レスレジスタ1804内のアドレスを逐次インクリメン
トする。以上の動作は入力データの後続の部分に対して
逐次繰り返される。こうして、多量の入力データが逐次
共有メモリ803に書き込まれる。比較器1807は、
レジスタ1805内の書き込み開始アドレスとレジスタ
1804内の現在の書き込みアドレスとを比較すること
により、所定量のデータの書き込みが終了したか否かを
示す比較結果を出力する。制御回路1808はこの出力
が所定量のデータの書き込みの完了を示すときに、書き
込み動作を終了し、レジスタ1806内に入力完了を示
すフローIDを有する命令トークンを生成し、バス82
0を介して制御用プロセッサエレメント308に供給す
る。このトークン内のディスティネーションにはレジス
タ1805内の書き込み開始アドレスが使用される。な
お、インプットコントローラ302に含まれた空き領域
を検出する前述の回路は簡単化のために図示していな
い。
【0024】トークン発生部314は、インプットコン
トローラ302あるいは演算用プロセッサエレメント3
07Aあるいは307Bから供給される命令トークンに
応答して、リンクテーブル315を参照しながら新たな
命令トークンを発生するプログラムモジュールである。
この新たな命令トークンは、供給された命令トークンが
通知する、実行が終了した処理の次に実行すべき処理を
指定する命令トークンである。トークン発生部314
は、生成した命令トークンを被演算データ組検索部31
1に転送する。
【0025】リンクテーブル315は、トークン発生部
314に供給される可能性があるいろいろの命令トーク
ンが指定する処理に対応して一つのエントリを有し、そ
のエントリには、その処理の次に実行されるべき処理に
割り当てられたフローIDと、当該次の処理を受けるべ
きデータに付すべき演算タグを予め記憶する。図7に
は、図3に例示された処理を実行するときにリンクテー
ブル315に記憶される内容を示す。例えば、トークン
発生部314に供給された命令トークンが、データAあ
るいはBの入力を示すとき、次の処理は、それぞれ処理
1または3である。後に説明するようにトークン発生部
314に処理1の実行の完了を示す命令トークンが供給
されたとき、次に実行すべき処理は処理2である。次に
実行すべき処理が処理1、2または3であるとき、これ
らの処理はいずれも一つのデータのみを使用するので、
これらの処理を指定する命令トークンには演算タグは使
用されない。トークン発生部314に処理2または3の
実行の完了を示す命令トークンが供給されたとき、次に
実行すべき処理は処理4である。この処理は二つのデー
タを使用する複数項演算である。したがって、これらの
処理2と3のいずれか一方の実行完了を示す命令トーク
ンがトークン発生部314に供給されたとき、次に実行
すべき処理4を示す命令トークンに含まれるべき演算タ
グは1となる。処理2と3の他方の実行完了を示す命令
トークンがトークン発生部314に供給されたとき、次
に実行すべき処理4を示す命令トークンに含まれるべき
演算タグは2となる。最後に、処理4の実行が完了した
ときに、次に実行すべき処理は結果データCの外部への
出力である。このデータ出力を示す命令トークンにも演
算タグは使用されない。トークン発生部314は、この
命令トークンを、処理4の実行完了を示す一組の命令ト
ークンがトークン発生部314に供給されたとき生成す
るようになっている。
【0026】具体的には、トークン発生部314は、リ
ンクテーブル315を参照して図6に示すように動作す
る。すなわち、通常は命令トークンの到着待ちの状態に
あり、命令トークンが到着したか否かを繰り返しチェッ
クしている。命令トークンが到着すると、リンクテーブ
ル315内のその命令トークンが指定する処理に対応す
るエントリから、その処理の次の処理に対するフローI
Dを読み出す。このフローIDが複数項演算に対するも
のであるか否か判別し、もしそうであればそのエントリ
からタグを読み出す。発生した命令トークンに含まれた
デスティネーションポインタを上記次の処理のためのソ
ースポインタとして取り出す。さらに、後に説明する方
法により上記次の処理のためのデスティネーションポイ
ンタを決定する。取り出されたフローID、演算タグ、
ソースポインタおよび決定されたデスティネーションポ
インタを用いて、上記次の処理のための命令トークンを
発生し、被演算データ組検索部311に転送する。その
後、トークン発生部314は待機状態に戻る。
【0027】トークン発生部314は、図8に示す手順
にて上記次の処理のためのデスティネーションポインタ
を決定する。トークン発生部314は、共有メモリ30
3中の使用中の領域のアドレスを保持する図示しないア
ドレススタックを有する。したがって、このアドレスス
タックには、トークン発生部314に到着した命令トー
クン内のソースポインタがすでに格納されている。この
命令トークンの到着時点ではこのソースポインタを有す
る記憶領域はすでに使用済みとなっている。したがっ
て、このソースポインタを上記アドレススタックから削
除する。上記命令トークン内のデスティネーションポイ
ンタを、上記次の処理のためのソースポインタとして取
り出した後に、この新たなソースポインタをこのアドレ
ススタックに格納する。その後、上記次の処理の結果デ
ータを格納する領域として共有メモリ303内の空き領
域、すなわち、このアドレススタックに登録されたアド
レス以外のアドレスを有する領域を検索する。検索され
た領域のアドレスを上記次の処理のためのデスティネー
ションポインタとして使用する。さらに、このデスティ
ネーションポインタを上記アドレススタックに登録す
る。
【0028】被演算データ組検索部311は転送された
命令トークンが複数項演算を要求するとき、その命令ト
ークンが必要とする二つのデータがそろうまで、その命
令トークンをスタックメモリ313に格納し、後に同じ
複数項演算を要求する命令トークンがトークン発生部3
14から供給されたときに、これらの二つの命令トーク
ンを実行可能な命令トークンとしてトークンキュー制御
部309に転送する。もしトークン発生部314から供
給された命令トークンが、複数項演算を要求しないとき
には、被演算データ組検索部311は、その命令トーク
ンをそのまま実行可能な命令トークンとしてトークンキ
ュー制御部309に転送する。
【0029】より具体的には、被演算データ組検索部3
11は図10に示すように動作する。まず被演算データ
組検索部311は命令トークンの到達待ち状態にあり、
トークン発生部314から命令トークンが到着したか否
かを検出している。命令トークンが到着すると、トーク
ン内のフローIDにより到着した命令トークンが複数項
演算を要求するか否かを判別する。もし、命令トークン
が複数項演算を要求しないときには、到着した命令トー
クンをそのままトークンキュー制御部309に出力す
る。命令トークンが複数項演算を要求するときには、到
着した命令トークンと組となるべき他の命令トークンを
スタックメモリ313から検索する。この他の命令トー
クンは、到着した命令トークンと同じフローIDを有
し、異なる演算タグを有するものである。組となるべき
他の命令トークンがスタックメモリ313内に存在しな
ければ、転送されてきた命令トークンをスタックメモリ
313に格納する。組となるべき他の命令トークンがス
タックメモリ313内に存在したときには、当該他の命
令トークンをスタックメモリ313から読み出し、到着
した命令トークンとともに実行可能な命令トークンとし
てトークンキュー制御部309に転送する。
【0030】トークンキュー制御部309は、図10に
示すように、命令トークンの待ち合わせルーティン(図
10(a))と命令トークンの発行ルーティン(図10
(b))とを実行する。命令トークンの待ち合わせルー
ティンでは、トークンキュー制御部309は、命令トー
クンが被演算データ組検索部311から到達するごと
に、到着した命令トークンをトークンキュー310に格
納する。命令トークンの発行ルーティンでは、トークン
キュー制御部309は、演算用プロセッサエレメント3
07A、307Bの動作状況を監視し、処理の実行を終
了し待機状態に入った演算用プロセッサエレメントがあ
れば、トークンキュー310から演算用プロセッサエレ
メントにより処理されるべき命令トークンを取り出し、
その演算用プロセッサエレメントにバス320を介して
転送する。なお、トークンキュー310に保持された命
令トークンが、複数項演算を要求するときには、そお命
令トークンと、その命令トークンが要求する処理と同じ
処理を要求し、演算タグの値が異なる他の命令トークン
との組を同じ演算用プロセッサエレメントに供給する。
なお、全ての演算用プロセッサエレメント307A、3
07Bがいずれもビジー状態にある間は、トークンキュ
ー310に格納された命令トークンはそのまま保持され
る。
【0031】演算用プロセッサエレメント307Aまた
は307Bは複数の命令トークンにより指定されうる複
数の処理をすべてを実行できるものである。トークンキ
ュー制御部309から命令トークンが供給されると、演
算用プロセッサエレメント307Aまたは307Bは、
その命令トークン内のソースポインタにより指定される
データを共有メモリ303から読み出す。その命令トー
クンが複数項演算を要求するときには、その命令トーク
ンに含まれた第1のソースポインタと、その命令トーク
ンと対をなす他の命令トークンに含まれた第2のソース
ポインタにより指定される二つのデータを共有メモリ3
03より読み出す。読み出された一つまたは二つのデー
タに対してその命令トークンが要求する処理を実行し、
共有メモリ303内の、その命令トークンのデスティネ
ーションポインタにより指定された記憶領域に、実行の
結果得られたデータを格納する。その処理の実行完了後
に、上記処理された命令トークンをトークン発生部31
4にバス321を介して供給する。トークン発生部31
4は、既に述べたと同様にしてこの命令トークンの後続
の命令トークンを発生する。こうして、インプットコン
トローラ302に外部より供給されたデータを処理する
ために一連の命令トークンが生成され、実行される。そ
の結果、最終的には外部にデータを出力することを要求
する命令トークンがトークン発生部314により生成さ
れ、トークンキュー制御部309に転送されることにな
る。
【0032】トークンキュー制御部309は、トークン
キュー310内にデータ出力を指示する命令トークンが
含まれているときには、その命令トークンをアウトプッ
トコントローラ306に供給する。アウトプットコント
ローラ306は、供給された命令トークン内のソースポ
インタで指定されるデータを共有メモリ304から読み
出し、線305を介して外部に転送する。
【0033】図11は、このアウトプットコントローラ
306の概略構成を示す。デコーダ1902が到達した
トークン1901のフローIDを解読した結果、この命
令トークンが出力処理を要求することを確認する。読み
出しアドレスレジスタ1904には、このトークン内の
ソースポインタをセレクタ1908を介してセットし、
読み出しアドレスとして共有メモリ803に供給し、共
有メモリ803上のソースポインタが示す記憶位置から
データを読み出す。読み出されたデータはレジスタ19
07を介してFIFO(1906)に格納される。FI
FO(1906)に格納されたデータは出力データとし
て外部に転送される。その後、インクリメンタ1905
とセレクタ1908を使用してレジスタ1904内の読
み出しアドレスを繰り返し更新することにより、所定数
の後続のデータを共有メモリ803から読み出し、外部
に供給する。
【0034】次に具体的に図3で示す処理1、処理2、
処理3、処理4からなる一連の処理を本発明の信号処理
プロセッサで実行した場合の動作を図12を参照して説
明する。インプットコントローラ302はデータAを含
むデータトークンを外部から受信すると、入力データ領
域a(図4)内の現在使っていない記憶位置にデータA
を格納し、さらにこのデータの入力を通知するトークン
r1を発生する。同様に、データBを含むデータトーク
ンを受信すると、入力データ領域a内の現在使っていな
い場所にデータBを格納し、このデータの入力を通知す
る命令トークンr2を発生する。トークン発生部314
では、インプットコントローラ302から発生された命
令トークンr1,r2のそれぞれに対して次の処理と共
有メモリ303上のデスティネーションポインタとを割
り付け、それぞれ処理1,3の実行を要求する命令トー
クンt1,t2を発生する。
【0035】命令トークンt1,t2は今の例では複数
項演算を要求しないので、被演算データ組検索部311
はそのままこれらの命令トークンt1,t2をトークン
キュー制御部309に送り、トークンキュー310に格
納する。トークンキュー制御部309は、演算用プロセ
ッサエレメント307A、307Bの動作状況を監視
し、処理を実行可能な演算用プロセッサエレメントにこ
れらの命令トークンを転送する。今の場合、プロセッサ
エレメントPE1に命令トークンt1を転送し、プロセ
ッサエレメントPE2に命令トークンt2を転送すると
仮定する。プロセッサエレメントPE1,PE2は転送
された命令トークンt1,t2に基づき処理1、処理3
をそれぞれ共有メモリ303をアクセスしながら実行す
る。プロセッサエレメントPE1,PE2は、それぞれ
命令トークンt1,t2の実行が終了したときに、それ
ぞれの命令トークンをそのまま命令トークンr3,r7
としてトークン発生部314に転送する。
【0036】トークン発生部314は命令トークンr
3,r7を受け、処理2,4をそれぞれ要求する命令ト
ークンt3,t4を新たに発生する。処理2のトークン
t3は前記トークンt1,t2と同様にトークンキュー
310を経て演算用プロセッサエレメント、例えばPE
1に送られ、そこで実行される。その後、命令トークン
r4がトークン発生部314に転送される。一方、処理
4を行う命令トークンt4は複数項演算を要求するの
で、被演算データ組検索部311が組となる、処理4を
要求し、もう一つの演算タグがついた命令トークンをス
タックメモリ313から検索する。今の場合、このよう
な命令トークンはスタックメモリ313にはまだ到達し
ていないため、被演算データ組検索部311は命令トー
クンt4をスタックメモリ313に格納する。
【0037】一方、命令トークンr4を受けたトークン
発生部314は次の処理を実行するための命令トークン
として、処理4を要求する命令トークンt5を発生す
る。被演算データ組検索部311は、命令トークンt5
と組となるタグ2の命令トークンを検索する。ここで
は、スタックメモリ313にすでに格納された命令トー
クンt4を発見し、命令トークンt4,t5を実行可能
な命令トークンとしてトークンキュー310に転送す
る。トークンキュー制御部309は、処理を実行可能な
演算用プロセッサエレメント、例えばPE1にこれらの
一組の命令トークンを転送する。その演算用プロセッサ
エレメントPE1は、これらの一組の命令トークンを用
いて処理4を実行したのち、その一組の命令トークンを
そのまま一組の命令トークンr5、r6としてトークン
発生部314に転送する。トークン発生部314はこれ
らの一組の命令トークンr5,r6を受けてアウトプッ
トコントローラ306にデータ出力を指示する命令トー
クンt6を発行する。アウトプットコントローラは命令
トークンt6を受けデータの出力を行う。
【0038】以上に説明したように、本実施の形態で
は、演算用プロセッサエレメント307A、307B
は、共有メモリ303上の被演算データに対し演算を行
い、共有メモリ303に演算結果データを格納するが、
演算結果データを演算用プロセッサエレメント間で伝達
されることがない。したがって、多量のデータを高速に
処理することができる。従来のように命令トークンに処
理されるべきデータを含める方法では、一つのトークン
に含まれうるデータの長さに制限があり、長いデータを
処理する場合には命令トークンの数を増大する必要があ
る。しかし、本実施の形態のように、共有メモリ303
を介してデータを転送する方法では、一時に転送できる
データの長さはそのような制限された長さより長くでき
る。したがって、多量のデータを処理するときでも、ト
ークンの数を増やす必要がなく、しかもデータを制御用
プロセッサエレメント内のいろいろのモジュールの間を
転送する必要はない。これらのことより、本実施の形態
では、多量のデータを高速に処理できる。また、データ
転送に関わる演算用プロセッサエレメント間のアービト
レーションの必要がなく、共有メモリ303のデータを
管理するだけで良い。
【0039】<発明の実施の形態2>本実施の形態は、
複数の処理エレメントとして、実施の形態1で使用され
た演算用プロセッサエレメントに代えて、限定された処
理のみを行うことが出来る専用演算器、具体的にはアク
セラレータを用いるデータフロー制御の信号処理プロセ
ッサを提供する。図13に示すように、このプロセッサ
は、MPEG(Moving Pictures Ex
perts Group)の復号処理を行うもので、専
用演算器として可変長復号(VLD)処理のアクセラレ
ータ(VLDアクセラレータ)807A,逆量子化(I
Q)処理のアクセラレータ(IQアクセラレータ)80
7B,逆DCT(IDCT)処理のアクセラレータ(I
DCTアクセラレータ)807C,動き補償(MC)処
理のアクセラレータ(MCアクセラレータ)807D、
インプットコントローラ805、アウトプットコントロ
ーラ806を持ち、これらの回路はメモリバススイッチ
804を介して共有メモリ803に接続されている。図
示のプロセッサは望ましくは一つのLSIチップ上に構
成される。共有メモリ803は別々のメモリ803Aか
ら803Fにより構成され、それぞれは互いに並列にア
クセス可能である。入力データ801はインプットコン
トローラ805により共有メモリ803に書き込まれ、
また出力データはアウトプットコントローラ806によ
り共有メモリ803から読み出される。
【0040】各アクセラレータは、制御用プロセッサエ
レメント308から転送される命令トークンにより指定
されるデータを共有メモリ803から読み出し、各アク
セラレータが担当する処理をそのデータに対して施す。
その結果データを再び共有メモリ803に格納し、その
命令トークンをそのまま処理が終了した命令トークンと
して制御用プロセッサエレメント308に転送する。命
令トークンの生成と実行タイミングの制御は制御用プロ
セッサエレメント308が行う。制御用プロセッサエレ
メント308は、実施の形態1(図1)と同様に、トー
クン発生部314、リンクテーブル315、被演算デー
タ組検索部311、トークンキュー制御部309、トー
クンキュー310を含む。実施の形態1と異なり、トー
クンキュー制御部309は、実行可能な命令トークンが
指定する処理を実行できる特定のアクセラレータが処理
を実行可能な状態にあるか否かを判別し、そのアクセラ
レータが実行可能なときに、その命令トークンをそのア
クセラレータに供給する。
【0041】図14に、図13の信号処理プロセッサに
より実行される復号処理のフローを示す。入力データA
に対して可変長復号処理(VLD)が行われる。その結
果データBに対して逆量子化処理(IQ)が行われる。
その結果データCに対して逆DCT(IDCT)処理が
行われる。その結果データDと予め共有メモリ上に格納
されたデータEに対して動き補償処理(MC)が行われ
る。これは以前の処理結果データを再び使用する動き補
償処理の特徴による。その結果データFは最終的に信号
Gとして外部に出力される。
【0042】以上の復号処理の実行のために発行される
命令トークンとそれらの命令トークンが処理するデータ
が記憶されているメモリを図15に示す。以下、図15
を参照して、図14の処理の実行の模様を説明する。ま
ず、データAが入力されると、インプットコントローラ
805は、メモリ803A上のアドレスa1の位置にデ
ータAを格納し、データの入力の完了を通知する命令ト
ークンt1を発生し、制御用プロセッサエレメント30
8に供給する。
【0043】図15に戻り、命令トークンt1を受けた
制御用プロセッサエレメント308は次の処理を指定す
る命令トークンt2を発生し、VLDアクセラレータ8
07Aに転送する。命令トークンt2はVLD処理をメ
モリ803A上のアドレスa1のデータに対して行い、
メモリ803B上のアドレスb1の位置に結果データB
を格納することを要求する。VLDアクセラレータ80
7Aは命令トークンt2で指定される処理を行い、処理
が終了した段階で命令トークンt2をそのまま命令トー
クンt3として制御用プロセッサエレメント308に転
送する。
【0044】命令トークンt3を受けた制御用プロセッ
サエレメント308は次の処理を実行する命令トークン
t4を発行する。命令トークンt4はIQ処理をメモリ
803B上のアドレスb1のデータに対して行い、メモ
リ803C上のアドレスc1の位置に結果データCを格
納する命令である。IQアクセラレータ807Bはこの
命令トークンt4で指定される処理を行い、処理が終了
した段階で命令トークンt4をそのまま命令トークンt
5として制御用プロセッサエレメント308に転送す
る。
【0045】命令トークンt5を受けた制御用プロセッ
サエレメント308は次の処理を実行する命令トークン
t6を発行する。命令トークンt6はIDCT処理をメ
モリ803C上のアドレスc1のデータに対して実行
し、メモリ803D上のアドレスd1の記憶位置に結果
データDを格納する命令である。IDCTアクセラレー
タ807Cはこの命令トークンt6で指定される処理を
行い、処理が終了した段階で命令トークンt6をそのま
ま命令トークンt7として制御用プロセッサエレメント
308に転送する。
【0046】命令トークンt7を受けた制御用プロセッ
サエレメント308は次の処理を実行する命令トークン
t8を発行する。命令トークンt8は2つの命令トーク
ンからなる。MC処理は、複数項演算を要求し、これら
の二つの命令トークンはMC処理に使用されるべき複数
のデータの一方を指定する。すなわち、一つの命令トー
クンは、結果データDに対してMC処理を実行すること
を要求し、他の命令トークンは、メモリ803F上のア
ドレスe1の位置のデータEに対しMC処理を行うこと
を要求する。MCアクセラレータ807Dはこの命令ト
ークンt8で指定される処理を行い、処理が終了した段
階で命令トークンt8をそのまま命令トークンt9とし
て制御用プロセッサエレメント308に転送する。図1
5ではメモリ803からのデータの読み出しを実行する
命令トークンは簡単化のために示していない。
【0047】命令トークンt9を受けた制御用プロセッ
サエレメント308は最後の処理を実行する命令トーク
ンt10を発行する。命令トークンt10はデータ出力
をメモリ803F上のアドレスg1のデータに対して行
う命令である。アウトプットコントローラ809はこの
命令トークンt10で指定されるデータ出力を行い、処
理が終了した段階で命令トークンt10をそのまま命令
トークンt11として制御用プロセッサエレメント30
8に転送する。
【0048】以上の処理で入力されたデータに対する一
連の処理が終わるが、実際にはこの一連の処理が行われ
ている最中に次の入力データがインプットコントローラ
805に入り、それに対する一連の処理をアクセラレー
タ807Aから807Dにより並列に実行されることに
なる。
【0049】上述の動作説明から明らかなように、各ア
クセラレータの動作タイミングは、そのアクセラレータ
が処理できる特定の処理を要求する命令トークンの到着
に依存している。このことが各アクセラレータの並列動
作の効率を通常のパイプライン処理に比較して高いもの
とし、信号処理プロセッサ全体の処理能力を上げる結果
につながっている。このことを示しているのが図16の
タイミング図である。ある処理を単一のアクセラレータ
が実行し、次の処理を別のアクセラレータが実行する場
合、各アクセラレータをパイプライン動作にして動作さ
せるのが一般的である。このようなパイプライン動作を
実現させるためには、各アクセラレータが処理に要する
時間の内、最長期間を見積もり、それを一サイクルとし
てパイプライン動作を行わせることが多い。図16の上
側に示した通常のパイプライン制御のタイミングは、最
初にVLD処理(VLD1)を実行する3サイクル中
に、IQ処理およびIDCT処理をそれぞれ四回行うこ
とを基本にしてパイプライン動作を設計したときのタイ
ミングチャートである。このような設計によれば、いず
れかのVLD処理が、例えば2番目に行われたVLD処
理のように、2.5サイクルで終了したとしても、次の
VLD処理を行うのは2番目のVLD処理の3サイクル
後に行うのが通常である。
【0050】これに対して、本実施の形態のように各ア
クセラレータの動作開始を命令トークンの到着で制御す
る場合には、各アクセラレータは、被演算データが準備
出来ていれば、サイクルの制約なしに処理の実行を開始
できる。すなわち、図16の下側に示したように2番目
のVLD処理が2.5サイクルかかって終了した場合、
第3のVLD処理をすぐに開始できる。このように本実
施の形態によれば、一サイクル以内の無駄な待ち時間を
削減することができ、全体の処理速度を向上させること
が可能である。このことは実施の形態1にもあてはま
る。逆に実施の形態1と同様に、本実施の形態でもデー
タを命令トークンに含めないで、共有メモリを介して異
なる処理エレメント(アクセラレータ)間で転送する。
したがって、より多量のデータを高速に処理可能であ
る。
【0051】<発明の実施の形態3>実施の形態1と2
では、トークン発生部314がいずれかの命令トークン
を受信したときに、トークン発生部314はその命令ト
ークンが指定する処理の次の処理としてリンクテーブル
315に予め記憶された処理を要求する命令トークンを
生成した。したがって、前述の信号処理プロセッサによ
り実行される処理の流れは固定的であった。しかし、こ
のような処理の流れを動的にすることもできる。
【0052】すなわち、ある処理エレメント(実施の形
態1における演算用プロセッサエレメントあるいは実施
の形態2におけるアクセラレータ)は、いずれかの処理
を実行したときに、そのことを知らせる命令トークンを
トークン発生部314に供給していた。この命令トーク
ンにフラグを付加し、その値を適宜変更することによ
り、処理の流れを変更できる。すなわち、そのフラグの
値により二つの処理の流れの一方に分岐できるようにす
る。具体的には、処理1の結果データに対して処理3を
行い、その結果データBを出力する処理の流れと、処理
1の結果データに対して処理2を行った後に処理3を行
い、結果データBを出力する処理の流れとに分岐可能で
ある。この分岐は以下のようにして実現される。
【0053】図17にこのフラグを利用した処理フロー
の変更の例を示す。この例では、ある処理エレメント
は、そこに供給された命令トークンt1に従って、入力
データAに対して処理1を実行し、その命令トークンt
1にフラグを付けて新たな命令トークンt2を生成し、
トークン発生部314に転送する。このフラグの値は、
処理の実行の結果データに依存して値1または0を採
る。トークン発生部314は、このフラグの値が0か1
かにより命令トークンt3またはt4を発行する。命令
トークンt3は、処理1の実行結果に対して処理3の実
行を要求する命令トークンである。このように異なる処
理を要求する命令トークンを切り替えて発行するには、
リンクテーブル315に、同一の処理の後に実行すべき
次の処理として、フラグの値により選択可能な複数の処
理を記憶させておく。
【0054】もし、命令トークンt2に対して命令トー
クンt3が発生された場合、この命令トークンt3を転
送された適当な処理エレメントは、処理1の結果データ
に対して処理3を実行し、その結果、命令トークンt7
を出力する。この処理の流れでは、処理3の実行結果デ
ータがデータBとして使用される。一方、命令トークン
t2に対して命令トークンt4が発生された場合、この
命令トークンt4が転送された適当な処理エレメント
は、処理1の結果データに対して処理2を実行し、命令
トークンt5を発生する。トークン発生部314は、こ
の命令トークンt5を受け取ったときに処理2の実行結
果データに対して処理3を実行することを要求する命令
トークンt6を発行する。ある処理エレメントは、命令
トークンt6に従って処理3を実行する。このように、
第2の処理の流れでは処理2が余分に実行される。
【0055】<変形例>本発明は以上の実施の形態に限
定されるのではなく、以下に例示する変形例および他の
いろいろの変形例として実施可能である。
【0056】(1)実施の形態1では二つの演算用プロ
セッサエレメントを使用したが、演算用プロセッサエレ
メントを増やすことが可能である。このとき、演算用プ
ロセッサエレメントを制御しているトークン発生部31
4、トークン検索部、トークンキュー等の構成をまった
く変更することは必要はない。演算用プロセッサエレメ
ントの数を増やすことにより並列に実行できる処理が増
え、高速に多量のデータの演算を行うことが可能とな
る。
【0057】(2)実施の形態1あるいは2では、制御
用プロセッサエレメント308として汎用のマイクロコ
ンピュータを使用した。しかし、これに代えて、専用の
回路を使用することもできる。
【0058】(3)実施の形態1あるいは2で使用した
命令トークンは、他のフォーマットのものでもよい。ま
た、命令トークンに含まれたフローID、演算タグは、
それぞれ処理の種類および被演算データの数を識別する
他の種類の情報でもよい。
【0059】(4)実施の形態1あるいは2で使用した
技術は、複数の処理を並列にデータフロー制御により起
動する計算機一般に適用できる。
【0060】
【発明の効果】以上から明らかなように、本発明によれ
ば、命令トークンにデータを含ませないでデータフロー
制御を実現するので、多量のデータを高速に処理できる
データフロー計算機が得られる。
【図面の簡単な説明】
【図1】本発明に掛かるデータフロー制御の信号処理プ
ロセッサの概略構成図。
【図2】図1の装置に使用するいくつかのトークンのフ
ォーマットを示す図。
【図3】図1の装置で実行される例示的な処理のフロー
図。
【図4】図1の装置で使用される共有メモリにおける領
域割り当てを示す図。
【図5】図1の装置で使用されるインプットコントロー
ラの概略構成図。
【図6】図1の装置で使用されるトークン発生部の処理
のフロー図。
【図7】図1の装置で使用されるリンクテーブルの構造
を示す図。
【図8】図1の装置で使用されるトークン発生部が実行
する共有メモリのアドレス管理処理のフロー図。
【図9】図1の装置で使用される被演算データ組検索部
の処理のフロー図。
【図10】図1の装置で使用されるトークンキュー制御
部の処理のフロー図。
【図11】図1の装置で使用されるアウトプットコント
ローラの概略構成図。
【図12】図1の装置の動作のタイミングチャート。
【図13】本発明に掛かる他のデータフロー制御の信号
処理プロセッサの概略構成図。
【図14】図13の装置で実行される例示的な処理のフ
ロー図。
【図15】図13の装置の動作を説明する図。
【図16】実施の形態2における動作と従来の装置にお
ける動作を示すタイミングチャート。
【図17】本発明による命令トークンの他の実行手順を
示すフローチャート。
【図18】従来のデータフロー制御のマルチプロセッサ
の概略構成図。
【図19】図18の装置に用いるプロセッサの概略構成
図。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】複数の処理エレメントと、 これらに対する共有メモリと、 上記複数の処理エレメントに対して処理の実行を要求す
    る命令トークンを供給する制御回路とを有し、 上記制御回路は、いずれかの処理を起動するときに、そ
    の処理に使用可能なデータが記憶された、上記共有メモ
    リ内の記憶位置を指定する第1の情報と、上記処理の実
    行により得られる結果データを格納すべき、上記メモリ
    内の記憶位置を指定する第2の情報とを有する命令トー
    クンを、上記複数の処理エレメントの内、その処理を実
    行可能な処理エレメントに供給し、 各処理エレメントは、上記制御回路により命令トークン
    を供給されたときに、その供給された命令トークン内の
    上記第1の情報により指定される、上記共有メモリ内の
    記憶位置から処理すべきデータを読み出し、そのデータ
    に対して処理を実行し、その実行の結果データを、上記
    供給された命令トークン内の上記第2の情報により指定
    される、上記共有メモリ内の記憶位置に記憶するデータ
    フロー計算機。
  2. 【請求項2】上記複数の処理エレメントは、それぞれ複
    数の処理を実行できるプログラム制御のプロセッサから
    なる請求項1記載のデータフロー計算機。
  3. 【請求項3】上記複数の処理エレメントは、それぞれ互
    いに異なる処理を実行する専用の回路からなる請求項1
    記載のデータフロー計算機。
  4. 【請求項4】上記制御回路は、プログラム制御のプロセ
    ッサからなる請求項1記載のデータフロー計算機。
  5. 【請求項5】複数の処理エレメントと、 これらに対する共有メモリと、 上記複数の処理エレメントをデータフロー制御により起
    動する制御回路とを有し、 上記制御回路は、いずれかの処理を起動するときに、そ
    の処理に使用可能なデータが記憶された、上記共有メモ
    リ内の記憶位置を指定する第1の情報と、上記処理の実
    行により得られる結果データを格納すべき、上記メモリ
    内の記憶位置を指定する第2の情報とを、上記複数の処
    理エレメントの内、その処理を実行可能な処理エレメン
    トに供給し、 各処理エレメントは、上記制御回路により起動されたと
    きに、上記制御回路から供給された上記第1の情報によ
    り指定される、上記共有メモリ内の記憶位置から処理す
    べきデータを読み出し、そのデータに対して処理を実行
    し、上記制御回路から供給された上記第2の情報により
    指定される、上記共有メモリ内の記憶位置に、その実行
    の結果データを記憶するデータフロー計算機。
  6. 【請求項6】上記制御回路は、起動すべき処理エレメン
    トに、上記第1,第2の情報と、実行されるべき処理を
    指定する第3の情報とを供給し、 各処理エレメントは、上記制御回路により起動されたと
    きに、上記制御回路から供給された上記第3の情報によ
    り指定される処理を実行する請求項5記載のデータフロ
    ー計算機。
  7. 【請求項7】複数の処理の内のいずれか一つの処理を実
    行する毎に、その実行の結果生成されたデータを使用す
    る他の処理を実行するように、複数の処理を起動するデ
    ータフロー計算機において、 いずれか一つの処理を起動するときに、その処理が使用
    可能なデータが記憶されている、所定のメモリ内の記憶
    位置を指定する第1の情報と、その処理の結果生成され
    るデータを記憶すべき、上記メモリ内の記憶位置を指定
    する第2の情報とを上記起動すべき処理に通知し、 上記起動すべき処理の実行時に、上記第1の情報で指定
    されるデータを上記メモリから読み出し、 読み出されたデータに上記一つの処理を実行し、 その実行の結果得られたデータを、上記第2の情報によ
    り指定される、上記メモリ内の記憶位置に記憶するデー
    タフロー制御方法。
JP2881898A 1998-02-10 1998-02-10 データフロー計算機およびデータフロー制御方法 Pending JPH11232247A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2881898A JPH11232247A (ja) 1998-02-10 1998-02-10 データフロー計算機およびデータフロー制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2881898A JPH11232247A (ja) 1998-02-10 1998-02-10 データフロー計算機およびデータフロー制御方法

Publications (1)

Publication Number Publication Date
JPH11232247A true JPH11232247A (ja) 1999-08-27

Family

ID=12258995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2881898A Pending JPH11232247A (ja) 1998-02-10 1998-02-10 データフロー計算機およびデータフロー制御方法

Country Status (1)

Country Link
JP (1) JPH11232247A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002063570A (ja) * 2000-08-23 2002-02-28 Nintendo Co Ltd グラフィクスパイプラインおよびそれの同期化方法
WO2002077838A1 (en) * 2001-03-22 2002-10-03 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
JP2002288113A (ja) * 2001-03-26 2002-10-04 Denso Corp 信号処理装置
US6826662B2 (en) 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US9183051B2 (en) 2004-03-29 2015-11-10 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
JP5849958B2 (ja) * 2010-10-12 2016-02-03 日本電気株式会社 データ処理方法、データ処理装置及びデータ処理プログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002063570A (ja) * 2000-08-23 2002-02-28 Nintendo Co Ltd グラフィクスパイプラインおよびそれの同期化方法
WO2002077838A1 (en) * 2001-03-22 2002-10-03 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US6826662B2 (en) 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
KR100847982B1 (ko) * 2001-03-22 2008-07-22 가부시키가이샤 소니 컴퓨터 엔터테인먼트 광대역 네트워크상의 컴퓨터 구조에 있어서 자원 전용방법 및 시스템
JP2002288113A (ja) * 2001-03-26 2002-10-04 Denso Corp 信号処理装置
JP4715008B2 (ja) * 2001-03-26 2011-07-06 株式会社デンソー 信号処理装置
US9183051B2 (en) 2004-03-29 2015-11-10 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
JP5849958B2 (ja) * 2010-10-12 2016-02-03 日本電気株式会社 データ処理方法、データ処理装置及びデータ処理プログラム

Similar Documents

Publication Publication Date Title
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
US5604912A (en) System and method for assigning tags to instructions to control instruction execution
US20060143415A1 (en) Managing shared memory access
US7434016B2 (en) Memory fence with background lock release
US20080059966A1 (en) Dependent instruction thread scheduling
US20090300629A1 (en) Scheduling of Multiple Tasks in a System Including Multiple Computing Elements
US9703603B1 (en) System and method for executing accelerator call
JPH0766329B2 (ja) 情報処理装置
KR20020020186A (ko) 내장형 프로세서 복합체, 네트워크 프로세싱 시스템 및인스트럭션 실행 제어 방법
US20040199916A1 (en) Systems and methods for multi-tasking, resource sharing, and execution of computer instructions
KR100895536B1 (ko) 데이터 전송 방법, 시스템 및 컴퓨터 판독가능 매체
JP3797570B2 (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
JPH11232247A (ja) データフロー計算機およびデータフロー制御方法
US7421693B1 (en) Logic for synchronizing multiple tasks at multiple locations in an instruction stream
US6571301B1 (en) Multi processor system and FIFO circuit
US7093254B2 (en) Scheduling tasks quickly in a sequential order
US6658503B1 (en) Parallel transfer size calculation and annulment determination in transfer controller with hub and ports
JPH08292932A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
US20080209085A1 (en) Semiconductor device and dma transfer method
JP2004086921A (ja) マルチプロセッサシステムおよびマルチプロセッサシステムにおいてタスクを実行する方法
JPH10111857A (ja) マルチプロセッサ
RU2042193C1 (ru) Вычислительная система
JP3982077B2 (ja) マルチプロセッサシステム
JP2755646B2 (ja) データ駆動型データ処理装置