JP2764358B2 - データ駆動型情報処理装置 - Google Patents

データ駆動型情報処理装置

Info

Publication number
JP2764358B2
JP2764358B2 JP10969492A JP10969492A JP2764358B2 JP 2764358 B2 JP2764358 B2 JP 2764358B2 JP 10969492 A JP10969492 A JP 10969492A JP 10969492 A JP10969492 A JP 10969492A JP 2764358 B2 JP2764358 B2 JP 2764358B2
Authority
JP
Japan
Prior art keywords
data
field
instruction
data packet
program
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
Application number
JP10969492A
Other languages
English (en)
Other versions
JPH05303657A (ja
Inventor
宗一 宮田
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.)
Consejo Superior de Investigaciones Cientificas CSIC
Original Assignee
Consejo Superior de Investigaciones Cientificas CSIC
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 Consejo Superior de Investigaciones Cientificas CSIC filed Critical Consejo Superior de Investigaciones Cientificas CSIC
Priority to JP10969492A priority Critical patent/JP2764358B2/ja
Priority to US08/053,442 priority patent/US5577256A/en
Publication of JPH05303657A publication Critical patent/JPH05303657A/ja
Application granted granted Critical
Publication of JP2764358B2 publication Critical patent/JP2764358B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はデータ駆動型情報処理
装置に関し、特に、大量の数値データを並列にかつ実時
間処理して、数値解析・制御に適用されるデータ駆動型
情報処理装置に関する。
【0002】
【従来の技術】図16は、従来のデータ駆動型情報処理
装置のブロック図である。
【0003】図17(a)および(b)は、データ駆動
型情報処理装置におけるデータパケットのフィールド構
成図である。
【0004】図18は、データフロープログラムの開発
支援ツールおよび使用手順を模式的に示す図である。
【0005】図17(a)のデータパケットPAは、世
代フィールドF1、行先フィールドF2、命令フィール
ドF3、およびデータフィールドF4を含む。図17
(b)のデータパケットPaはフィールドF1ないしF
4に加えて、データフィールドF5を含む。世代フィー
ルドF1には世代番号が格納され、行先フィールドF2
には行先情報が格納され、命令フィールドF3には命令
情報が格納され、データフィールドF4またはF5には
オペランドデータ(定数データを含む)が格納される。
図16のデータ駆動型情報処理装置は、入出力制御部
QJB、プログラム記憶部PS、待合せメモリを含む発
火制御部FCおよび演算部FPを含む。入出力制御部Q
JBは、2つの独立したデータパケットPAが競合して
入力された場合でも両者の入力順序を調停し、更にそれ
らの行先情報を参照しながら、そのデータパケットの行
先を振分ける分岐・分配機能を含んで構成される。プロ
グラム記憶部PSは該データ駆動型情報処理装置に内蔵
したプログラムの記憶部であり、高速アクセス可能なメ
モリをプログラムメモリにして構成される。発火制御部
FCは、2つのオペランドデータの演算処理をする2項
演算命令に関して演算処理すべき2つのデータパケット
PAが揃うまで一方のデータパケットを入力データパケ
ットPAの世代番号に基づく優先順位に従って待機させ
るための待合せメモリを有する。この2つのデータパケ
ットが揃い次第、2つのデータパケットを1つのデータ
パケットPaにして演算部FPに送り込む機能(発火と
呼ぶ)を有する。演算部FPは算術演算および論理演算
・操作機能を有する。
【0006】次に、データフロープログラム実行時の動
作について説明する。なお、実行すべきデータフロープ
ログラムおよびプログラム実行に必要とされる各種デー
タは予めプログラム記憶部PSおよび入出力制御部QJ
Bの図示されないメモリまたはレジスタに、それぞれ記
憶されていると想定する。
【0007】データはまず図16の端子INより入力さ
れ入出力制御部QJBはその行先情報に基づいてプログ
ラム記憶部PSおよび端子OUTのいずれか一方に選択
的に送出する。OUT側に送出された入力データパケッ
トPA以外は、プログラム記憶部PSに与えられる。プ
ログラム記憶部PSは、入力データパケットPAの行先
情報に基づいてアドレスが指定され、予め記憶するデー
タフロープログラムがアクセスされて、次位の行先情報
および次位の命令情報などが読出される。入力データパ
ケットPAの行先フィールドF2および命令フィールド
F3には読出された次位の行先情報および次位の命令情
報が格納されて出力される。プログラム記憶部PSから
送出されたデータパケットPAは発火制御部FCに与え
られる。発火制御部FCは、入力データパケットPAの
行先情報および世代番号に基づいてアドレスが指定され
ることによって、待合せメモリがアクセスされ、2項演
算・操作命令に対する発火を検出する。すなわち、待合
せメモリの指定アドレスにオペランドデータがストアさ
れていれば、指定アドレスにストアされた待合せ世代番
号と入力データパケットPAの世代番号との比較結果に
基づく優先順位に従って発火する。逆に、指定アドレス
に待合せオペランドデータがストアされていなければ、
該入力データパケットPAのオペランドデータおよび世
代番号の非縮退部が該指定アドレスに書込まれてデータ
パケットPAの待合せを行なう。世代番号の非縮退部と
は、世代番号を表すデータのうち待合せメモリのアドレ
ス指定のために用いられない部分をいう。
【0008】このように、発火制御部FCは行先情報お
よび世代番号が一致する異なる2つのデータパケットP
Aの検出を行ない、それらが一致する2つのデータパケ
ットPAのうちの一方のデータパケットのオペランドデ
ータ、たとえば、図7(a)におけるデータフィールド
F4の内容を図17(b)のデータパケットPAのデー
タフィールドF5に格納して出力する。発火制御部FC
から送出されたデータパケットPaは演算部FPに与え
られる。
【0009】演算部FPは、発火制御部FCから出力さ
れるデータパケットPaの命令情報の基いて行先情報を
操作するか、またはオペランドデータを演算し、その演
算・操作結果をデータパケットPAのデータフィールド
F4に格納して送出する。演算部FPから送出されたデ
ータパケットPAは、入出力制御部QJBに与えられ、
応じてその行先情報に基づいてプログラム記憶部PSお
よび端子OUTのいずれか一方に選択的に送出される。
プログラム記憶部PSへデータパケットPAが送出され
る場合には、次の命令が前述と同様にして読出される。
【0010】上述のようにデータパケットPAがプログ
ラム記憶部PS→発火制御部FC→演算部FP→プログ
ラム記憶部PS→…と巡回し続けることにより、データ
駆動型情報処理装置にストアされるデータフロープログ
ラムに基づく演算・操作処理が進行する。
【0011】上述のデータフロープログラムは図18の
ソフトウェアにして準備されるテキストエディタ、コン
パイラまたはアセンブラ、リンカおよびマッパを含む手
順を経て開発される。テキストエディタはC言語に準拠
したデータフロープログラムを作成するエディタであ
る。エディットされたデータフロープログラムはコンパ
イラまたはアセンブラで処理可能なようにソースファイ
ルに格納される。コンパイラはソースファイルを読込み
データフロー解析しフローグラフ(中間形式ファイル)
に展開する。一方、アセンブラは、よりフローグラフに
近い記述ができ、コンパイラと同様にフローグラフ(中
間形式ファイル)に展開する。リンカは、それらフロー
グラフを結合する。結合されたフローグラフは、マッパ
を介して実行形式(オブジェクトモジュール)に展開れ
さる。オブジェクトモジュールは、図16で示されたデ
ータ駆動型情報処理装置などのターゲット・システムま
たはソフトウェアシミュレータにデータパケットPAに
してダウンロードされて、プログラム記憶部PSまたは
発火制御部FCにストアされた後、プログラム実行され
る。
【0012】図19は、計算プログラムの一例を示す図
である。図20は、図19のプログラムから得られるデ
ータフローグラフを示す図である。
【0013】図21(a)および(b)は図20のデー
タフローグラフから得られるオブジェクトモジュールが
プログラム記憶部PSおよび発火制御部FCの待合せメ
モリに記憶された場合の記憶内容を示す図である。
【0014】図19のプログラムは、文法的にはC言語
とほぼ同じ仕様で記述可能である。これを図18の手順
に従ってデータフロー解析すると、図20のようなデー
タフローグラフとなる。これを、オブジェクトモジュー
ルにしてターゲットシステムにロードした場合、プログ
ラム記憶部PSのプログラムメモリには図21(a)の
ようにプログラムデータがストアされ、プログラム実行
処理に必要とされる定数データもストアされる。発火制
御部FCの待合せメモリは、プログラムメモリに対応す
る物理的アドレス空間を有する。
【0015】図20のデータフローグラフに記述される
五角形および楕円形の記号はノードと呼び、各々入力/
出力のポートおよび演算・操作命令などが記述される。
またノードとノードとを結ぶ線はアークと呼ぶ。図19
のプログラムをフロー解析すると、各ノードには図20
のようにノード番号#0〜#20が付される。ノード番
号は行先情報を示す。演算命令のうちNOPは何もしな
いで入力を保存して出力するノーオペレーションを示
し、*は積算、+は加算、INCは入力データの値を1
インクリメント、DECは入力データの値を1デクリメ
ント、−は減算およびABSは絶対値の演算処理をそれ
ぞれ示す。
【0016】図21(a)のプログラム記憶部PSのプ
ログラムメモリは、入力データパケットPAの行先情報
によりポイント(指定)されるアドレス(以下、ポイン
タアドレスと呼ぶ)空間を有し、各ポインタアドレスに
対応して命令、行先、左/右のフラグ、コピーフラグお
よび定数フラグを格納する。命令は次位の命令情報(演
算・操作命令)を、行先は次位の行先情報(次位のノー
ド番号)を、左/右のフラグは対応する行先情報、すな
わち次位のノード番号の命令について左入力であるか右
入力であるかを示す。プログラム記憶部PSからの読出
時、左/右のフラグは行先フィールドF2に格納され
る。
【0017】実行すべきデータフロープログラムにおい
ては、図20に示されるようにデータのコピーが必要と
される場合がある。たとえば図20におけるノード番号
#0またはノード番号#2のノードの出力が2個以上の
演算命令、たとえばノード番号#4および#6の積算命
令および加算命令のオペランドデータとなるような場
合、コピー処理が必要とされる。コピー処理はプログラ
ム記憶部PSにおいて行なわれる。図20においてコピ
ー処理が必要とされるノード番号の命令が実行される場
合、図21(a)では該当のポインタアドレスに連続し
て次のアドレスがアクセスされて、データの読出が連続
して行なわれるようにコピーフラグが“1”にセットさ
れる。したがって、図21(a)のポインタアドレス#
0には、コピーフラグがセット(=“1”)されて、ポ
インタアドレス#0がアクセスされた場合、アドレス#
0にストアされる情報が読出されるとともに、次のアド
レス#1にストアされた情報が連続して読出される。こ
のコピー処理によりノード番号#0のノードに並列につ
ながるノード番号#4および#6の2つのノードについ
て、その左入力データが同時に得られることになる。
【0018】また、実行すべきデータフロープログラム
において、図20に示されるように定数データが記述さ
れる場合、すなわち図20のノード番号#15、#16
および#17のノードのオペランドデータが定数K1、
K2およびK3のそれぞれである場合、図21(a)に
示されるように該当するポインタアドレスに対応して定
数フラグがセットされる。
【0019】図21(b)の発火制御部FCの待合せメ
モリは、プログラム記憶部PSのプログラムメモリのに
対応するアドレス空間を有し、各ポインタアドレスに対
応して待合せオペランドおよび発火制御フラグVLDを
格納する。発火制御フラグVLDは、対応する待合せオ
ペランドがストアされて待合せ状態(未発火)にあると
き“1”にセットされ、それ以外のとき“0”にリセッ
トされる。
【0020】次に、図19のプログラムを、図16のデ
ータ駆動型情報処理装置内で実行する動作について、図
16ないし図21を参照しながら説明する。なお、世代
番号に従う発火制御部FCにおける発火のための優先順
位決定については説明を容易にするため省略する。
【0021】図20のデータパケットa1とb1がデー
タ駆動型情報処理装置に与えられる。データパケットa
1は、命令情報にNOPを、行先情報にノード番号#0
を、世代番号にgを、オペランドデータとしてaをそれ
ぞれ所定のフィールドに格納する。データパケットb1
は、命令情報にNOPを、行先情報にノード番号#2
を、世代番号にgをオペランドデータとしてbをそれぞ
れ所定のフィールドに格納する。
【0022】データパケットa1とb1は、図16のデ
ータ駆動型情報処理装置の入出力制御部QJBを経て、
プログラム記憶部PSに与えられる。プログラム記憶部
PSは入力データパケットa1の行先情報(#0)に基
づくアドレス指定により、図21(a)のポインタアド
レス#0に格納された命令*、行先#4および左フラグ
を読出して入力データパケットa1の命令フィールドF
3および行先フィールドF2にそれぞれ格納して発火制
御部FCに出力する。このとき、該ポインタアドレスの
コピーフラグはセットされているので、連続して次のポ
インタアドレス(#1)に格納された命令+、行先#6
および左フラグを読出し、オペランドデータaを格納す
るデータパケットPAの所定フィールドに各々格納して
発火制御部FCに出力する。
【0023】同様にして、プログラム記憶部PSは入力
データパケットb1の行先情報(#2)に基づくアドレ
ス指定により図21(a)のポインタアドレス#2に格
納された命令*、行先#4および右フラグを読出して入
力データパケットb1の命令フィールドF3および行先
フィールドF2にそれぞれ格納して発火制御部FCに出
力する。このとき、該ポインタアドレスのコピーフラグ
はセットされているので、連続して次のポインタアドレ
ス(#3)に格納された命令+、行先#6および右フラ
グを読出して、オペランドデータbを格納するデータパ
ケットPAの所定フィールドに各々格納して発火制御部
FCに出力する。
【0024】発火制御部FCは、プログラム記憶部PS
から与えられるデータパケットを順次入力し、命令情報
が2項演算・操作命令であることに応じて、その行先情
報(ノード番号)および世代番号に基づいて図21
(b)の待合せメモリをアクセスして、該当のポインタ
アドレスに対応する領域に入力データパケットのオペラ
ンドデータを書込むとともに発火制御フラグVLDをセ
ットし、対となるオペランドデータを格納したデータパ
ケットが入力されるまで待機する。対となるオペランド
データを格納したデータパケットの入力が完了すると、
図21(b)のポインタアドレス#4および#6におい
て、図20のノード番号#4および#6の各ノードにお
ける発火が検出されて、対となる2つのオペランドデー
タを格納したデータパケットPaが次の演算部FPに順
次送出される。発火検出後、該当のポインタアドレスに
対応する発火制御フラグVLDはリセットされる。演算
部FPでは、入力データパケットPaに格納される命令
情報に従う演算をオペランドデータ対に施し、その演算
結果をデータパケットPAのフィールドF4に格納して
順次出力する。これにより、図20のノード番号#4お
よび#6の演算命令が実行されて、各々演算結果xをフ
ィールドF4に格納したデータパケットと演算結果yを
フィールドF4に格納したデータパケットが順次プログ
ラム記憶部PSに与えられる。
【0025】プログラム記憶部PSは、演算結果を格納
したデータパケットの行先情報に従うアドレス指定によ
り前述同様に、図21(a)のプログラムメモリをアク
セスして次の命令を読出す。つまり、演算結果xを格納
したデータパケットの入力に応じて図21(a)のポイ
ンタアドレス#4に格納された命令INCと行先#8を
読出し、コピーフラグがセットされていることに応じ
て、ポインタアドレス#5に格納された命令DECと行
先#10が連続して読出される。これら読出された情報
は前述と同様にしてオペランドデータxを格納したデー
タパケットにそれぞれ格納されて発火制御部FCに順次
送出される。また、演算結果yを格納したデータパケッ
トの入力に応じてポインタアドレス#6に格納された命
令DECと行先#12を読出し、コピーフラグがセット
されていることに応じて、ポインタアドレス#7に格納
された命令INCと行先#13を読出す。これら読出さ
れた情報は前述と同様にしてオペランドデータyを格納
したデータパケットにそれぞれ格納されて発火制御部F
Cに送出される。発火制御部FCは、プログラム記憶部
PSから与えられるデータパケットの命令情報DECま
たはINCの命令内容が単項演算命令であることに応じ
て、入力データパケットをスルーさせて演算部FPに与
える。演算部FPは発火制御部FCから出力されるデー
タパケットの命令情報に従う演算をそこに格納されたオ
ペランドデータについて施し、その演算結果を格納した
データパケットをプログラム記憶部PSに送出する。こ
のとき、図20のノード番号#8、#10、#12およ
び#13のそれぞれの演算が行なわれる。したがって、
その演算結果、すなわちx+1、x−1、y−1および
y+1のそれぞれをデータフィールドF4に格納した4
つのデータパケットが順次プログラム記憶部PSに送出
される。
【0026】プログラム記憶部PSは、演算結果を格納
したデータパケットの行先情報(ノード番号)に基づく
アドレス指定により図21(a)のポインタアドレス#
8、#10,#12および#13を順次アクセスし、そ
こにストアされる次の情報を読出す。このとき、対応の
定数フラグがセットされていることに応じて、前述の各
読出情報を更に1組生成するとともに次のポインタアド
レス#9,#11および#14も連続してアクセスさ
れ、そこにストアされている定数データ(定数K1)が
順次読出されてデータパケットPAのフィールドF4に
格納されて、順次発火制御部FCに送出される。発火制
御部FCでは、定数演算であることに応じてデータの待
合せは行なわず、連続して入力するデータパケットから
オペランドデータ対を生成し演算部FPに送出する。こ
れにより演算部FPにおて図20のノード番号#15,
#16および#17における定数付演算命令が順次実行
される。
【0027】以下同様にして、プログラム記憶部PS、
発火制御部FCおよび演算部FPをパケットが巡回し
て、図20のノード番号#18、#19および#20の
各演算命令が実行されて、演算結果v、tおよびsが得
られる。
【0028】以上のようにして、データがプログラム記
憶部PS→発火制御部FC→演算部FP→プログラム記
憶部PS→…と巡回することにより、オブジェクトデー
タにしてプログラム記憶部PSに格納された図19に示
されるプログラムが実行される。
【0029】
【発明が解決しようとする課題】上述したデータ駆動型
情報処理装置ではパケット形式のデータ処理を行なうた
め、プログラムデータとして従来のノイマン型プロセッ
サにおける「命令」データに加えて、「行先」データ、
「世代番号」データおよび「オペランド(定数を含
む)」データが必要である。したがって、データ駆動型
情報処理装置ではノイマン型情報処理装置に比較して冗
長なオブジェクトデータを生成することになる。ところ
が、IC(集積回路)製造における微細加工技術の制限
から、プログラム記憶部のプログラムメモリおよび発火
制御部の待合せメモリの機能および容量を兼備える1チ
ップのICメモリは得ることはできないので、オブジェ
クトデータを格納するプログラム記憶機能と対データを
待合せるための待合せメモリ機能とは別々のICメモリ
によって実現されていた。
【0030】上述したように、プログラム記憶部と発火
制御部のそれぞれにおいて、個別のメモリが必要であ
り、それぞれのメモリごとにアドレス・デコーダ、読出
回路、書込回路などを備えなければならず、このような
メモリ周辺回路の二重化によってデータ駆動型情報処理
装置の小型化が図れないという問題があった。また、こ
れらメモリの周辺回路の二重化によって処理段数が必要
以上に増加しプログラム実行時間の増大を招くという問
題があった。
【0031】さらに、上述した従来のデータフロープロ
グラムの実行制御方法では、コンパイラにより実行命令
の識別番号がデータフローグラフ上の各命令ノードに対
して個別に割付けられる。そのため、1つの2項演算当
り2つのオペランドデータのそれぞれに異なる行先ノー
ド番号を割当てねばならず、オブジェクトモジュールの
サイズがより冗長になり、さらにプログラム実行時間の
増大を招くという問題があった。
【0032】それゆえにこの発明の目的は、装置の小型
化が図られ、それにおけるプログラムの実行時間が短縮
されるデータ駆動型情報処理装置を提供することであ
る。
【0033】
【課題を解決するための手段】この発明に係るデータ駆
動型情報処理装置は、少なくとも行先フィールド、命令
フィールド、データフィールドおよびデータを相互に識
別する識別子からなるデータパケットを用いてデータフ
ロープログラムを実行するデータ駆動型情報処理装置で
あり、記憶手段と、読出手段と、フィールド更新手段
と、待合せ制御手段と、演算手段とを備えて構成され
る。
【0034】記憶手段は、データフロープログラムを構
成する命令情報および行先情報を含むプログラムデータ
の組を少なくとも1組以上格納するプログラム領域と待
合せオペランドデータまたは前述の識別子を含む待合せ
データを少なくとも1組以上を格納する待合せ領域を含
むように構成される。
【0035】読出手段は、データパケットを入力し、応
じて該入力パケットの行先フィールドの内容に基づいて
前述の記憶手段をアドレス指定し、指定アドレスに対応
するプログラム領域に格納されるプログラムデータの組
を読出すよう構成される。
【0036】フィールド更新手段は、前述の読出手段に
より読出された各組に格納される行先情報および命令情
報を読出して、前述の入力パケットの行先フィールドお
よび命令フィールドにそれぞれ格納するとともに、前述
の入力パケットのデータフィールドの内容を保存して、
この入力パケットを出力するよう構成される。
【0037】待合せ制御手段は、前述のフィールド更新
手段が出力するデータパケットを入力し、そこに格納さ
れる命令情報が所定情報であるか否かにより次のように
動作するように構成される。つまり、命令情報が所定情
報である場合には、前述の指定アドレスに対応する待合
せ領域に待合せオペランドデータが格納されているか否
か判定し、この判定結果に応じて待合せオペランドデー
タを読出し該入力データパケットのデータフィールドの
内容に付加して出力するか、または該データパケットの
データフィールドの内容を前述の指定アドレスに対応す
る待合せ領域に書込むよう構成される。他方、前述の命
令情報が所定情報でない場合には、該入力データパケッ
トをそのまま出力するよう構成される。
【0038】演算手段は、前述の待合せ制御手段が出力
するデータパケットを入力し、その命令フィールドの内
容に従って、そのデータフィールドの内容に対して所定
演算処理を施し、その結果を該データパケットのデータ
フィールドに格納して出力するよう構成される。
【0039】そして、前述の記憶手段におけるプログラ
ム領域と待合せ領域は、前述の入力パケットの行先フィ
ールドの内容に基く共通のアドレスによってアクセスさ
れるよう構成される。
【0040】
【作用】この発明に係るデータ駆動型情報処理装置は上
述のように構成されて、記憶手段においてはデータフロ
ープログラムを記憶するプログラム領域と、たとえば2
項演算命令について一方のオペランドデータが他方のオ
ペランドデータの入力を待合せるのに利用される待合せ
領域とが併合して設けられ、さらに、これによりプログ
ラムを記憶するためのメモリとオペランドデータを待合
せるためのメモリに関する周辺回路も単一化可能となる
ので、該情報処理装置の小型化とプログラム実行時の処
理段数を減らすことができる。
【0041】また、記憶手段は読出手段によりアドレス
指定されるプログラム領域にデータフロープログラムを
構成する命令情報および行先情報を含む組を少なくとも
1つ以上記憶するので、該装置のメモリ上におけるデー
タフロープログラムのオブジェクトモジュールのサイズ
は小さくなる。
【0042】
【実施例】以下、この発明の実施例について図面を参照
して説明する。
【0043】図1は、この発明の一実施例によるデータ
駆動型情報処理装置のブロック図である。
【0044】図2は、この発明の一実施例によるプログ
ラム記憶付発火制御部のブロック構成を示す図である。
【0045】図1においてデータ駆動型情報処理装置P
Eは、入出力制御部QJB、入出力制御部QJBの出力
段にその入力段が接続され、プログラム記憶部PSおよ
び発火制御部FCの機能を含むプログラム記憶付発火制
御部FCP、制御部FCPの出力段にその入力段が接続
される演算部FPを含む。
【0046】入出力制御部QJBおよび演算部FPは、
前述した図16の従来のそれらと同様の機能を有するの
で、その詳細説明は省略する。なお、このデータ駆動型
情報処理装置PEにおけるデータパケットのフィールド
構成は、図17に示したものと同様であるので説明は省
略する。
【0047】プログラム記憶付発火制御部FCPは、従
来のデータフロープログラムを格納したプログラム記憶
部PSおよびデータ待合せのためのメモリを有する発火
制御部FCの両機能を備えるように構成され、さらに両
機能によって共有される1つのメモリ空間を有する。
【0048】図2にプログラム記憶付発火制御部FCP
のブロック構成が示される。従来のデータ駆動型情報処
理装置におけるプログラム記憶部PSおよび発火制御部
FCはそれぞれ6つのパイプラインに分割されていた。
これをマイクロパイプラインと呼び、図2のブロック
は、これらマイクロパイプラインを統合し、併せて6つ
のパイプラインに短縮したものである。該制御部FCP
はFCPメモリ20、入出力制御部QJBの出力段にそ
の入力段が接続される命令識別パイプライン1、アドレ
スデコードパイプライン2、次命令フェッチパイプライ
ン3、次命令識別パイプライン4、発火判定パイプライ
ン5およびその出力段が演算部FPに接続されるFCフ
ィールド更新パイプライン6からなる。
【0049】図3は、図2のFCPメモリ20の構成図
である。図3においてFCPメモリ20は、ポインタア
ドレス#0、#1、#2、…により指定されるアドレス
空間を有し、各ポインタアドレスに対応してデータフロ
ープログラムを記憶するPSフィールドおよび待合せデ
ータを記憶するFCフィールドを含む。したがって、ポ
インタアドレスが指定されることにより、対応するPS
フィールドに格納されるプログラムデータを読書きする
とともに、対応するFCフィールドに格納されているデ
ータと発火させたり当該FCフィールドにデータを書き
込んで待合せを行ったりすることができる。このよう
に、従来のプログラム記憶部PSのプログラムメモリと
発火制御部FCの待合せメモリがFCPメモリ20によ
り併合される。
【0050】図4は、図3のPSフィールドの構成の一
例を示す図である。図5は、図3のFCフィールドの構
成の一例を示す図である。
【0051】図6は、図3のPSフィールドの構成のそ
の他の例を示す図である。図4のPSフィールドは図3
のポインタアドレスに対応して設けられ命令、行先
(1)、行先(1)に関する左/右のフラグ、行先
(2)、行先(2)に関する左/右のフラグ、定数フラ
グCSTおよびコピーフラグCPYを格納する。命令は
次位の命令情報を、行先(1)および行先(2)は次位
の行先情報(次位のノード番号)を、行先(1)に関す
る左/右のフラグは命令に従う演算結果が行先(1)の
ノードの左入力であるか右入力であるかを示し、同様に
行先(2)に関する左/右のフラグは命令に従う演算結
果が行先(2)のノードの左入力であるか右入力である
かを示す。定数フラグCSTは対応する命令が定数デー
タをオペランドデータとするか否かを示し、定数データ
をオペランドデータとする場合のみセット(=“1”)
される。コピーフラグCPYは、従来と同様に命令に従
う次位命令結果が2個以上の次位命令のオペランドデー
タとなる場合にのみセット(=“1”)される。コピー
フラグCPYがセットされている場合、当該PSフィー
ルドには行先(1)および行先(2)が格納される。
【0052】図5のFCフィールドは、図3のポインタ
アドレスに対応して設けられ待合せオペランド、待合せ
世代番号および発火制御フラグVLDを格納する。待合
せオペランドはプログラム実行処理に必要とされる定数
データを含むオペランドデータであり、発火のためにF
Cフィールドに書込まれて待機する。待合せ世代番号
は、対応する待合せオペランドの世代番号の非縮退部分
である。発火制御フラグVLDは対応するポインタアド
レスに待合せオペランドがストアされて待合せ状態(未
発火)にあるときセット(=“1”)され、それ以外の
ときリセット(=“0”)される。
【0053】図6は、図4のPSフィールドの構成のそ
の他の例であり、図4のフィールド構成とは異なって、
命令(1)、行先(1)、行先(1)についての左/右
フラグ、命令(2)、行先(2)、行先(2)について
の左/右フラグ、定数フラグCSTおよびコピーフラグ
CPYを格納する。命令(1)および(2)は命令情報
(演算命令)を、行先(1)は命令(1)の演算結果の
次位の行先情報(ノード番号)を、行先(2)は命令
(2)の演算結果の次位の行先情報(ノード番号)をそ
れぞれ示す。定数フラグCSTは対応する命令(1)ま
たは(2)のオペランドデータが定数データである場合
のみセットされる。
【0054】次に、図2に戻り、各パイプラインについ
て説明する。命令識別パイプライン1は、前段の入出力
制御部QJBから与えられるデータパケットPAを入力
し、応じてそこに格納される命令情報を解読して、実行
命令であるか外部制御命令であるかを識別する。実行命
令はデータフローグラフのノードとして記述された命令
であり、外部制御命令は与えられるデータをFCPメモ
リ20へ書込むロード命令または、FCPメモリ20に
ストアされているデータを読出すダンプ命令である。
【0055】命令識別パイプライン1において、命令情
報が実行命令であると識別されると、応じて連続して入
力されるデータが対を形成する(発火する)か否かを、
連続入力データパケットPAの行先情報(ノード番号)
が一致するか否かにより判断する。これはFCPメモリ
20の同一アドレスへのアクセス競合を未然に検知する
ことになり、事前発火検知と呼ぶ。事前発火検知される
と、応じて事前発火検知信号S1が次命令識別パイプラ
イン4に導出される。
【0056】また、入力データパケットPAの命令情報
が外部制御命令であることを識別すると、応じて次命令
識別パイプライン4、発火判定パイプライン5およびF
Cフィールド更新パイプライン6にロード/ダンプ命令
判読信号S2を導出する。
【0057】アドレスデコードパイプライン2は、与え
られるデータパケットPAを入力し、応じてそこに格納
される行先情報に基づいてデコード処理しFCPメモリ
20をアクセスするためのアドレスADをFCPメモリ
20に与える。並行して入力データパケットPAを次命
令フェッチパイプライン3に与える。
【0058】次命令フェッチパイプライン3は、与えら
れるデータパケットPAを入力して、FCPメモリ20
において読出されたデータを格納して出力する。詳細に
はFCPメモリ20においてアドレスADにより指定さ
れた図3のポインタアドレスに対応のPSフィールドお
よびFCフィールドからデータを読出して入力データパ
ケットPAに格納する。たとえば、FCPメモリ20が
図4のPSフィールド、図5のFCフィールドの構成を
有する場合、まずコピーフラグCPYが参照される。コ
ピーフラグCPYがリセットならば、PSフィールドの
命令、行先(1)および行先(1)の左/右フラグを読
出し、入力データパケットPAの命令フィールドF3に
命令を、行先フィールドF2に行先(1)および左/右
フラグをそれぞれ格納する。さらにこのとき、定数フラ
グCSTがセットされてるならば、図5のFCフィール
ドの定数データを読出してデータフィールドF4に格納
する。
【0059】逆に、コピーフラグCPYがセットされて
るならば、PSフィールドの命令を命令フィールドF3
に格納したデータパケットを連続して2つ作成し、その
うち一方のデータパケットの行先フィールドF2に行先
(1)および左/右フラグを格納し、他方のデータパケ
ットの行先フィールドF2には行先(2)および左/右
フラグを格納する。そして、定数フラグCSTがセット
されてるならば、FCフィールドの定数データを各デー
タパケットのデータフィールドF4に格納する。このよ
うにして、アドレスADにより指定されてFCPメモリ
20のPSフィールドおよびFCフィールドから読出さ
れたデータを格納したデータパケットは、次命令識別パ
イプライン4に送出される。また、このときFCフィー
ルドから発火制御フラグVLDが読出される。
【0060】なお、FCPメモリ20のPSフィールド
の構成が図6である場合も、同様にしてコピーフラグC
PYに従うデータパケットのコピー処理を含んで、次命
令情報を格納するよう処理されたデータパケットの出力
が行なわれる。
【0061】次命令識別パイプライン4は、ロード/ダ
ンプ命令判読信号S2の入力に応じて入力データパケッ
トをスルーさせるように動作するが、それ以外のときは
入力データパケットの命令情報を識別して、その識別結
果に従って出力データパケットを生成する。データパケ
ットに格納される命令情報は単項演算命令および2項演
算命令のいずれか一方に大別され、さらに2項演算命令
は定数演算命令、事前発火演算命令、2変数演算命令の
いずれかに分類される。事前発火演算命令は事前発火検
知信号S1の入力に基づいて識別される。2変数演算命
令は事前発火演算命令とは異なり、連続して入力されな
い同一行先情報を有した2つのデータパケットについて
の演算命令である。
【0062】発火判定パイプライン5は、パイプライン
4を介して与えられる発火制御フラグVLDおよび命令
情報に基づき入力データパケットについて発火および待
合せのいずれかの処理とロード/ダンプ判定のいずれか
の処理を行なう。発火の処理は、2項演算・操作命令で
あって、しかも与えられるフラグVLDがセットされし
ていることに応じて行なわれ、FCPメモリ20のFC
フィールドにデータの書込を行なわずに、入力データパ
ケットをそのまま出力する。待合せの処理は、2項演算
・操作命令であって、しかも与えられるフラグVLDが
リセットされていることに応じて行なわれ、FCPメモ
リ20のFCフィールドにそのオペランドデータが書込
まれて待合わせるべき(未発火の)データパケットであ
ることを明示するため、フラグVLDをセットするため
の準備をする。ロード/ダンプ判定の処理はロード/ダ
ンプ命令判読信号S2の入力に応答して能動化され、ロ
ード/ダンプ命令情報を格納したデータパケットをその
まま出力側に導出する。
【0063】FCフィールド更新パイプライン6は、入
力データパケットに基づいて発火パケット生成、発火制
御フラグVLD更新、オペランドデータおよび世代番号
の更新、ロードパケットの書込およびダンプパケットの
生成の各処理を選択的に行なう。
【0064】発火パケット生成の処理は、与えられるデ
ータパケットを入力して1つのデータパケットにして
(発火して)送出する。並行して発火制御フラグ更新の
処理は発火したことに応じてFCPメモリ20の該当す
る発火制御フラグVLDをリセットする。
【0065】また、オペランドデータおよび世代番号の
更新処理は、与えられるデータパケットのオペランドデ
ータおよび世代番号をアドレスADにより指定されるF
Cフィールドに書込んで待合せオペランドおよび待合せ
世代番号を更新する。このとき、FCフィールドに格納
された待合せデータが未発火状態であることを示すよう
に発火制御フラグ更新の処理として発火制御フラグVL
Dをセットする。
【0066】ロードパケットの書込の処理またはダンプ
パケットの生成の処理は、与えられるデータパケットの
命令情報がデータのロードまたはデータのダンプのいず
れかの命令であることに応じて、アドレスADにより指
定されるFCPメモリ20のPSフィールドまたはFC
フィールドをアクセスする。ロードパケットの書込の処
理は、入力データパケットに格納されたデータを指定の
PSフィールドまたはFCフィールドにロードする。ダ
ンプパケットの生成の処理は、指定されるPSフィール
ドまたはFCフィールドにストアされたデータを読出し
てデータパケットにして送出する。したがって、データ
パケットPAの命令情報にロードまたはダンプ命令を設
定すれば、FCフィールド更新パイプライン6において
FCPメモリ20に関して所望されるデータの書込と所
望されるデータの読出とを行なうことができる。このよ
うにしてFCフィールド更新パイプライン6から送出さ
れるデータパケットは図1の演算部FPに与えられる。
【0067】図7は、本発明の一実施例による図19の
プログラムから得られるフローグラフを示す図である。
【0068】図8(a)および(b)は、図7のデータ
フローグラフに従うプログラム実行開始時にデータ駆動
型情報処理装置PEに入力されるデータパケットを示す
図である。
【0069】図9は、図7のデータフローグラフから得
られるオブジェクトモジュールをFCPメモリ20に記
憶した場合の記憶内容を示す図である。
【0070】図7のデータフローグラフは、図19のプ
ログラムのオブジェクトモジュールをFCPメモリ20
にロード可能なように、図19のプログラムをコンパイ
ラ(またはアセンブラ)によりフロー解析したものであ
る。コンパイラは図19のプログラムをフロー解析する
と、各ノードから出力される各アークについてこれを識
別する番号を付し(図示せず)、これをこのアークの上
方側に接続されるノードのノード番号とするようフロー
解析する。したがって、各ノードに記述される命令が単
項演算命令および2項演算命令などのいずれの演算命令
であっても、そのノードの出力用のアークは1本である
ので各ノードについて、図7に示されるようにグラフの
左上から右下方向へ昇順にノード番号#0、#1、#2
…と付される。
【0071】次に、図1のデータ駆動型情報処理装置P
Eにおける図7のデータフローグラフに従うプログラム
実行時の動作を、図1、図2、図7ないし図9を参照し
ながら説明する。なお、世代番号に従う発火優先順位の
決定については説明を簡単にするため省略する。
【0072】図8(a)のデータパケットA1は行先情
報にノード番号#0、世代番号にg、オペランドデータ
にaをそれぞれ格納する。図8(b)のデータパケット
B1は行先情報にノード番号#1、世代番号にg、オペ
ランドデータにbをそれぞれ格納する。
【0073】また、データパケットA1はデータ駆動型
情報処理装置PEの端子INを介して、入出力制御部Q
JBを経由しプログラム記憶付発火制御部FCPに与え
られる。
【0074】制御部FCPの命令識別パイプライン1は
データパケットA1を入力して、アドレスデコードパイ
プライン2に与える。
【0075】アドレスデコードパイプライン2は、入力
データパケットA1の行先情報に基づきアドレスADを
生成して、FCPメモリ20に与える。入力データパケ
ットA1はさらに次命令フェッチパイプライン3に与え
られる。また、アドレスADで指定されるポインタアド
レス#0にストアされるコピーフラグCPYが読出され
る。この場合コピーフラグCPYがセットされているこ
とに応じて、図9のポインタアドレス#0のデータが読
出されて命令情報はNOP、行先情報はノード番号#2
の左入力、オペランドデータはaであるデータパケット
と、命令情報はNOP、行先情報はノード番号#3の左
入力、オペランドデータはaであるデータパケットとが
順次出力される。このように、コピーフラグCPYがセ
ットされている場合、1回のアドレス指定で2つのデー
タパケットが出力される。これをコピー処理と呼ぶ。
【0076】次命令識別パイプライン4、発火判定パイ
プライン5およびFCフィールド更新パイプライン6
は、次命令フェッチパイプライン3から出力される命令
情報がNOPである2個のデータパケットを順次入力
し、その演算命令が単項演算NOPであることに基づき
FCフィールドへのデータ書込を行なわずそのまま演算
部FPへ送出する。
【0077】演算部FPは入力データパケットの命令情
報NOPに従ってオペランドデータを演算処理するの
で、入力データパケットはそのまま入出力制御部QJB
を経て再び制御部FCPに与えられる。これにより、図
7のノード番号#2および#3のノードに関する左入力
データパケットが揃う。
【0078】次に、制御部FCPの命令識別パイプライ
ン1は、まず命令情報はNOP、行先情報は#2の左入
力、オペランドデータはaであるデータパケットを入力
する。命令情報は解読されて、入力データパケットはア
ドレスデコードパイプライン2を経由して次命令フェッ
チパイプライン3に送出される。アドレスデコードパイ
プライン2がアドレスADを出力するのでFCPメモリ
20のポインタアドレス#2にストアされているリセッ
トされた発火制御フラグVLDが読出されて送出され
る。また、アドレス#2のコピーフラグに基づいてコピ
ー処理が行なわれる。このコピー処理により次位の命令
情報*および次位の行先情報#4、オペランドデータa
を各フィールドにそれぞれ格納したデータパケットに続
いて、次位の命令情報*、次位の行先情報#5、オペラ
ンドデータaを各フィールドに格納したデータパケット
を導出する。これら2つのデータパケットは次命令識別
パイプライン4に順次与えられる。
【0079】次命令識別パイプライン4は、与えられる
データパケットが2変数演算命令*を格納していること
を識別して、フラグVLDと入力データパケットを送出
する。発火判定パイプライン5ではフラグVLDがリセ
ットされていることにひ基づきデータパケットの待合せ
を行なうと判定し、入力データパケットが送出される。
FCフィールド更新パイプライン6ではポインタアドレ
ス#2のFCフィールドに入力データパケットのオペラ
ンドデータaが書込まれ待合せオペランドデータとして
ストアされ、さらに発火制御フラグVLDがセットされ
る。
【0080】さらに、制御部FCPは、命令情報はNO
P、行先情報は#3の左入力、オペランドデータはaで
あるデータパケットを受理して、前述と同様にコピー処
理を含む一連の処理をする。これにより、FCフィール
ド更新パイプライン6ではFCPメモリ20のアドレス
#3のFCフィールドに入力データパケットのオペラン
ドデータaを書込んで、待合せオペランドデータを設定
し、対応する発火制御フラグVLDをセットする。
【0081】以上により、ノード番号#2および#3の
それぞれにおいて、一方のオペランドデータがFCPメ
モリ20のFCフィールドのアドレス#2および#3の
それぞれにおいて、他方のオペランドデータの待合せを
する状態(未発火状態)が設定される。
【0082】次に、該データ駆動型情報処理装置PEは
図8(b)のデータパケットB1を受理して制御部FC
Pにおいて前述の入力データパケットA1と同様にして
処理することで、ノード番号#2および#3のノードに
関するオペランドデータがbである入力データパケット
が揃う。
【0083】そして、制御部FCPは、まず命令情報は
NOP、行先情報は#2の右入力、オペランドデータは
bである入力データパケットを処理する。このときFC
Pメモリ20のアドレス#2の発火制御フラグVLDが
既にセットされているので、パイプライン4および5に
おいて発火すると判定される。したがって、FCフィー
ルド更新パイプライン6では、FCPメモリ20のアド
レス#2の待合せオペランドデータaが読出されて、出
力データパケットのフィールドF4またはF5に格納さ
れて導出される。これにより、パイプライン6からは命
令情報は*、行先情報は#4、オペランドデータはaお
よびbであるデータパケットと、命令情報は*、行先情
報は#5、オペランドデータはaおよびbであるデータ
パケットとが出力される。このとき、パイプライン6に
よりFCメモリ20のアドレス#2に対応する発火制御
フラグVLDはリセットされる。
【0084】次に、制御部FCPは、命令情報はNO
P、行先情報は#3の右入力、オペランドデータはbで
ある入力データパケットを同様にして処理する。これに
より、FCPメモリ20のアドレス#3に対応するFC
フィールドにおいて発火検出されて、命令情報は+、行
先情報は#6、オペランドデータはaおよびbであるデ
ータパケットと、命令情報は+、行先情報は#7、オペ
ランドデータはaおよびbであるデータパケットとが導
出される。またこのとき、FCフィールド更新パイプラ
イン6により、発火が検出されたことにより、FCPメ
モリ20のアドレス#3に対応する発火制御フラグVL
Dがリセットされる。
【0085】これにより、2項演算命令の2つのオペラ
ンドが揃ったパケットがノード番号#2および#3の各
々について2つづつ生成されて演算部FPに与えられ
る。演算部FPは、演算命令*を格納した2つの発火パ
ケットの各々について、そこに格納されるオペランドデ
ータaとbを演算処理して、その演算結果x(=a*
b)を各データパケットのオペランドデータとして格納
して再度、制御部FCPに入力する。
【0086】同様にして、演算部FPにおいて演算命令
+を格納した2つの発火パケットの各々について、そこ
に格納されるオペランドデータaおよびbに演算処理が
行なわれてその演算結果y(=a+b)を各データパケ
ットのオペランドデータに格納して、制御部FCPに入
力される。
【0087】以上により、図7のデータフローグラフの
うち、#0〜#3までの命令ノードの演算処理が終了し
ノード番号#4、#5、#6および#7のそれぞれに対
する入力データが得られたことになる。
【0088】次に、制御部FCPでは入力データパケッ
トの行先情報に従って図9のポインタアドレス#4、#
5、#6および#7にストアされるPSフィールドのデ
ータが順次読出されてデータパケットにして順次送出さ
れる。これら読出されたすべての命令は単項演算命令で
あるので、直ちに演算部FPに順次与えられる。演算部
FPにおいて、入力データパケットについて図7のノー
ド番号#4、#5、#6および#7の演算命令INCま
たはDECに従う演算処理が順次施され、オペランドデ
ータに(x+1)、(x−1)、(y+1)および(y
−1)を格納した4つのデータパケットが順次制御部F
CPに送出される。これにより、図7のノード番号#8
のノードの右入力、ノード番号#9のノードの左入力、
ノード番号#12のノードの右入力、ノード番号#10
のノードの右入力についてのデータがそれぞれ得られた
ことになる。
【0089】次に、制御部FCPでは入力データパケッ
トの行先情報に従って図9のポインタアドレス#8、#
9、#12および#10がアクセスされて、そこにスト
アされるPSフィールドのデータが順次読出される。こ
のうち、ポインタアドレス#8、#9および#10の定
数フラグCSTは各々セット状態にあるので、対応する
FCフィールドに格納された定数データK1,K2およ
びK3の各々を読出して、各データパケットのオペラン
ドデータに格納するので、3つの無条件発火パケットが
生成されて、演算部FPに順次送出される。アドレスポ
インタ#12のFCフィールドにはオペランドデータ
(y−1)が書込まれて待合せオペランドデータにして
ストアされるとともに、発火制御フラグVLDがセット
される。
【0090】演算部FPでは、図7の命令ノード#8、
#9および#10における演算命令−、+、および*に
従う定数演算処理が実行される。これによりオペランド
データにz(=K1−(x+1))、w(=(x−1)
+K2)およびu(=K3*(y+1))をそれぞれス
トアした3つのデータパケットが順次、制御部FCPに
入力される。これにより、図7のノード番号#11のノ
ードの入力データ、#12のノードの左入力データ、#
13のノードの入力データが得られたことになる。
【0091】以下同様にして図7のノード番号#11、
#12および#13における演算処理を制御部FCPの
FCPメモリ20のアクセスを行ないながら実行するこ
とにより、最終的な演算結果であるv、tおよびsが得
られることになる。
【0092】以上のようにプログラム記憶付発火制御部
FCPを採用することにより、従来のプログラム記憶部
のプログラムメモリおよび発火パケット生成のための待
合せメモリはFCPメモリ20で共有され、ECPメモ
リ20をアクセスするための周辺回路機能は図2の6段
のマイクロパイプラインで単一化される。
【0093】また、FCPメモリ20をアクセスするた
めのポインタアドレスをデータフローグラフ上のアーク
に対して割付けられた識別番号とすることにより、図9
と図21(a)を比較してもわかるように、同一のプロ
グラム内容であってもそのオブジェクトサイズは従来よ
り小さくなる。
【0094】図10は、本発明のその他の実施例による
図19のプログラムから得られるデータフローグラフを
示す図である。
【0095】図11(a)および(b)は、図10のデ
ータフローグラフに従うプログラム実行開始時にデータ
駆動型情報処理装置PEに入力されるデータパケットを
示す図である。
【0096】図12は、図10のデータフローグラフか
ら得られるオブジェクトモジュールをFCPメモリ20
に記憶した場合の記憶内容を示す図である。
【0097】図10のフローグラフは、図19のプログ
ラムをそのオブジェクトモジュールがFCPメモリ20
にロード可能なようにコンパイラ(またはアセンブラ)
によってフロー解析されたものである。コンパイラは、
図19のプログラムをフロー解析すると、図10に示さ
れるように各ノードについて、その入力アークの発信元
が共通するノードについては同一のノード番号が付され
るようにしながら、データフローグラフの左上から右下
方向にノード番号を昇順に付す。したがって、図10に
示されるように一致した発信元ノードを有する演算命令
*のノードと演算命令+のノードには同一のノード番号
#0が付される。またその入力ノードが共通となる演算
命令INCのノードと演算命令DECのノードには同一
のノード番号#1が付される。同様にして演算命令+か
らの出力アークが共通である演算命令DECのノードと
演算命令INCのノードには同一ノード番号#2が付さ
れる。
【0098】図12には、図10のデータフローグラフ
のオブジェクトモジュールをストアしたFCPメモリ2
0の記憶内容が示される。図12に示されるFCPメモ
リ20は、図2に示されたアドレスデコードパイプライ
ン2から出力されるアドレスADによりポイントされる
ポインタアドレスに対応してPSフィールドおよびFC
フィールドを含む。図12のPSフィールドは、図6で
示したフィールド構成を有し、FCフィールドは図5で
示したフィールド構成を有する。
【0099】次に、図1のデータ駆動型情報処理装置P
Eにおいて図10のデータフローグラフに従うプログラ
ム実行時の動作を、図1、図2、図10ないし図12を
参照しながら説明する。
【0100】なお、世代番号に従う発火優先順位決定に
ついては説明を容易にするために省略する。
【0101】図11(a)のデータパケットA2は行先
情報にノード番号#0の左入力を、オペランドデータに
aをそれぞれ格納する。図11(b)のデータパケット
B2は行先情報にノード番号#0の右入力を、オペラン
ドデータにbをそれぞれ格納する。データパケットA2
およびB2は、データ駆動型情報処理装置PEの入力端
子INを介して入出力制御部QJBを経由し、プログラ
ム記憶付発火制御部FCPに順次与えられる。
【0102】制御部FCPの命令識別パイプライン1は
与えられるデータパケットA2に続いてデータパケット
B2を受理して、順次アドレスデコードパイプライン2
に与える。
【0103】アドレスデコードパイプライン2および次
命令フェッチパイプライン3は、まず入力データパケッ
トA2の行先情報に基づいてアドレスADを生成し、メ
モリ20のポインタアドレス#0のデータを読出す。こ
の読出時、コピーフラグCPYがセットされていること
に応じて、データパケットのコピー処理が行なわれて2
つのデータパケットが出力される。2つの出力パケット
のうち、一方のデータパケットには命令情報に*、行先
情報にノード番号#1、オペランドデータにaがそれぞ
れ格納され、他方のデータパケットには命令情報に+、
行先情報にノード番号#2、オペランドデータにaがそ
れぞれ格納される。また同様にして、入力データパケッ
トB2の行先情報に基づいて、FCPメモリ20がアク
セスされて、2つのデータパケットが出力される。2つ
の出力パケットのうち、一方のデータパケットには命令
情報に*、行先情報にノード番号#1、オペランドデー
タにbが格納され、他方のデータパケットには命令情報
に+、行先情報にノード番号#2、オペランドデータに
bがそれぞれ格納される。したがって、データパケット
A2に続いてデータパケットB2を入力することによ
り、次命令フェッチパイプライン3からは、上述の4つ
のデータパケットが順次導出される。
【0104】次命令識別パイプライン4、発火判定パイ
プライン5およびFCフィールド更新パイプライン6
は、前述の4つのデータパケットのうち、まず入力デー
タパケットA2による2つのパケットを順次入力して処
理する。このとき、入力データパケットの命令情報は2
変数演算と判定されて、ポインタアドレス#0に対応の
FCフィールドにそのオペランドデータaが書込まれて
待合せオペランドとなるとともに、発火制御フラグVL
Dがセットされる。そして、入力データパケットB2に
よる次の2つのデータパケットを入力することにより、
発火検出されて、FCPメモリ20のポインタアドレス
#0の発火制御フラグVLDがリセットされ、オペラン
ドデータaおよびbを格納した2つの発火パケットが演
算部FPに送出される。
【0105】2つの発火パケットのうち一方の発火パケ
ットは命令情報に*、行先情報のノード番号#1を格納
し、他方の発火パケットは命令情報に+、行先情報にノ
ード番号#2を格納する。
【0106】演算部FPは、2つの発火パケットを順次
入力して、そこに格納された演算命令*または+に従っ
て、同様にそこに格納されたオペランドデータaおよび
bについて演算処理を施し、演算結果x(=a*b)を
オペランドデータにしたデータパケットと、演算結果y
(=a+b)をオペランドデータにしたデータパケット
とを、再度プログラム記憶付発火制御部FCPに与る。
【0107】以上の動作により、図10のデータフロー
グラフのノード番号#1および#2のノードについての
入力データが得られたことになる。
【0108】以下、同様にしてプログラム記憶付発火制
御部FCP→演算部FP→プログラム記憶付発火制御部
FCP→…とデータパケットが巡回することにより、図
10に示される最終的な演算結果v、tおよびsを格納
したデータパケットがそれぞれ得られる。
【0109】上述した図10のデータフローグラフに従
うプログラムのオブジェクトモジュールのサイズは前述
した図7のそれよりもさらに小さくなって、FCPメモ
リ20の有効利用が図られる。
【0110】図13は、図7のデータフローグラフにお
ける積算命令の実行状況をデータパケットの流れに従っ
て示す図である。
【0111】図14は、図20のデータフローグラフに
おける積算命令の実行状況をデータパケットの流れに従
って示す図である。
【0112】図13では、積算命令*はノード番号#1
2のノードで実行されるが、ノード番号#12のノード
はノード番号#9およびノード番号#6のノードをアー
クを介して接続されるので、これら2つのノードの出力
データを入力データ、すなわちオペランドデータとして
いる。したがって、ノード番号#9および#6のノード
からノード番号#12のノードに処理が移行するまで
に、図1のプログラムー記憶付発火制御部FCPにおけ
るデータ処理が1回実行される。
【0113】図14では、積算命令*はノード番号#1
9の命令ノードで実行される。ノード番号#19のノー
ドはノード番号#16および#12のノードをアーク介
して接続し、ノード番号#16および#12のノードの
出力データを入力データ、すなわちオペランドデータと
している。ノード番号#19の積算命令*は、図16の
演算部FPで実行されるので、ノード番号#16および
#12のノードからノード番号#19のノードに処理が
移行するまでに図16のプログラム記憶部PSにおける
処理が2回と、発火制御部FCにおける処理が1回行な
われる。
【0114】図13と図14とに示される2つのデータ
フローグラフを比較してもわかるように、同じ内容の積
算命令を実行するにしても本実施例ではプログラム記憶
付発火制御部FCPにおけるFCPメモリ20について
の2回のメモリアクセス処理のみが行なわれるのに対し
て、従来は図14に示されるようにプログラム記憶部P
Sにおける2回のメモリアクセス処理および発火制御部
FCにおける2回のメモリアクセス処理が行なわれる。
したがって、本実施例によるデータ駆動型情報処理装置
PEにおけるプログラムの実行制御方法によれば、プロ
グラム実行時間を大幅に短縮することができる。
【0115】図15は、図9、図12および図21に示
されたオブジェクトモジュールの大きさを各項目におい
て比較した結果を表形式にして示す図である。
【0116】図20の表の横方向には比較項目が記入さ
れ、縦方向にはオブジェクトモジュール名が図面番号を
用いて記入される。比較項目は2項演算命令ノード数、
単項演算命令ノード数、行先アークの数、オブジェクト
サイズおよび使用待合せ領域数を含む。2項演算命令ノ
ード数は、図21(a)のモジュールの場合、1つの2
項演算命令についてノードが2つ用いられるために、2
項演算命令ノード数は12となり最も多い。単項演算命
令ノード数は、3つのモジュールについてほとんど差は
ない。行先アークの数は、FCフィールドの行先(1)
および行先(2)に記されるノードの数であり、図9の
モジュールにおける行先アークの数が最も少ない。オブ
ジェクトサイズは、各モジュールについて2項演算命令
ノード数、単項演算命令ノード数および行先アークの数
を総和して得られる値であり、図21(a)のオブジェ
クトモジュールのそれが最も大きい。
【0117】また、使用待合せ領域数は、FCフィール
ドにおける使用領域の数であり、図12のオブジェクト
モジュールのそれが最も大きい。待合せメモリのアドレ
ス空間の大きさはFCフィールドのアドレス空間、に対
応して設けられる。言い換えれば行先アークの数に対応
して設けられるので、待合せメモリの利用効率を(使用
待合せ領域数/行先アークの数)として算出すれば、図
9のモジュールは5/12、図12のモジュールは6/
18および図21(a)のモジュールは3/18とな
り、図9のそれは図21(a)の約4倍、図12のそれ
は図21(a)の約3倍の利用効率となることがわか
る。
【0118】上述した本実施例によるデータ駆動型情報
処理装置PEによれば、プログラム記憶用のメモリとオ
ペランドデータ待合せ用のメモリを単一化したことによ
って処理装置の小型化が可能となる。さらに、プログラ
ム記憶のためのメモリとオペランドデータ待合せのメモ
リとを共有することにより、メモリに関する周辺回路も
一元化されて処理段数が減少しプログラム実行時間が短
縮する。
【0119】さらに、図15で示したようにオブジェク
トモジュールのサイズが小さくなる。
【0120】
【発明の効果】以上のように、この発明によれば、記憶
手段においてプログラム記憶用のメモリとオペランドデ
ータ待合せ用のメモリとが併合されるとともに、これら
各メモリに関する周辺回路も単一化されるので、装置の
小型化と、該装置において実行されるプログラムの実行
速度を高速化できる。
【0121】また、記憶手段は読出手段による読出ごと
に、データフロープログラムを構成する命令情報および
行先情報を含む組が少なくとも1つ以上読出されるよう
に構成されるので、該装置に格納されるデータフロープ
ログラムのオブジェクトモジュールのサイズを小さくで
きる。
【0122】さらに、読出手段は、1回の読出ごとに命
令情報および行先情報からなる少なくとも1つ以上の
組、言換えれば1回の読出ごとに複数のプログラムデー
タを読出すことができるので、記憶手段からのプログラ
ムデータ読出回数が低減され、記憶手段アクセス処理を
含むプログラム実行時間を短くできる、などの効果が得
られる。
【図面の簡単な説明】
【図1】この発明の一実施例によるデータ駆動型情報処
理装置のブロック図である。
【図2】この発明の一実施例によるプログラム記憶付発
火制御部のブロック構成を示す図である。
【図3】図2のFCPメモリの構成図である。
【図4】図3のPSフィールドの構成の一例を示す図で
ある。
【図5】図3のFCフィールドの構成の一例を示す図で
ある。
【図6】図3のPSフィールドの構成のその他の例を示
す図である。
【図7】本発明の一実施例によるフローグラフを示す図
である。
【図8】(a)および(b)は、図7のデータフローグ
ラフに従うプログラム実行開始時にデータ駆動型情報処
理装置に入力されるデータパケットを示す図である。
【図9】図7のデータフローグラフから得られるオブジ
ェクトモジュールをFCPメモリに記憶した場合の記憶
内容を示す図である。
【図10】本発明のその他の実施例によるデータフロー
グラフを示す図である。
【図11】(a)および(b)は、図10のデータフロ
ーグラフに従うプログラム実行開始時にデータ駆動型情
報処理装置に入力されるデータパケットを示す図であ
る。
【図12】図10のデータフローグラフから得られるオ
ブジェクトモジュールをFCPメモリに記憶した場合の
記憶内容を示す図である。
【図13】図7のデータフローグラフにおける積算命令
の実行状況をデータパケットの流れに従って示す図であ
る。
【図14】図20のデータフローグラフにおける積算命
令の実行状況をデータパケットの流れに従って示す図で
ある。
【図15】図9、図12および図21に示されたオブジ
ェクトモジュールの大きさを各項目において比較した結
果を表形式にして示す図である。
【図16】従来のデータ駆動型情報処理装置のブロック
図である。
【図17】(a)および(b)は、データ駆動型情報処
理装置におけるデータパケットのフィールド構成図であ
る。
【図18】データフロープログラムの開発支援ツールお
よび使用手順を模式的に示す図である。
【図19】計算プログラムの一例を示す図である。
【図20】図19のプログラムから得られる従来のデー
タフローグラフを示す図である。
【図21】(a)および(b)は、図20のデータフロ
ーグラフから得られるオブジェクトモジュールがプログ
ラム記憶部および発火制御部の待合せメモリに記憶され
た場合の記憶内容を示す図である。
【符号の説明】
PE データ駆動型情報処理装置 FCP プログラム記憶付発火制御部 FP 演算部 1 命令識別パイプライン 2 アドレスデコードパイプライン 3 次命令フェッチパイプライン 4 次命令識別パイプライン 5 発火判定パイプライン 6 FCフィールド更新パイプライン 20 FCPメモリ CST 定数フラグ CPY コピーフラグ VLD 発火制御フラグ なお、各図中、同一符号は同一または相当部分を示す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 少なくとも行先フィールド、命令フィー
    ルド、データフィールドおよびデータを相互に識別する
    識別子からなるデータパケットを用いてデータフロープ
    ログラムを実行するデータ駆動型情報処理装置におい
    て、 前記データフロープログラムを構成する命令情報および
    行先情報を含むプログラムデータの組を少なくとも1組
    以上格納するプログラム領域と、待合せオペランドデー
    タまたは前記識別子を含む待合せデータを少なくとも1
    組以上格納する待合せ領域とからなる記憶手段と、 前記データパケットを入力し、応じて該入力パケットの
    行先フィールドの内容に基づいて前記記憶手段をアドレ
    ス指定し、指定アドレスに対応するプログラム領域に格
    納されるプログラムデータの組を読み出す読出手段と、 前記読出手段により読出された各組に格納される行先情
    報および命令情報を読出して、前記入力パケットの行先
    フィールドおよび命令フィールドにそれぞれ格納すると
    ともに、前記入力パケットのデータフィールドの内容を
    保存して前記入力パケットを出力するフィールド更新手
    段と、 前記フィールド更新手段の出力するデータパケットを入
    力し、そこに格納される命令情報が所定情報である場合
    には、前記指定アドレスに対応する待合せ領域に前記待
    合せオペランドデータが格納されているか否かを判定
    し、該判定結果に応じて該待合せオペランドデータを読
    出し該データパケットのデータフィールドの内容に付加
    して出力するか、または該データパケットのデータフィ
    ールドの内容を前記指定アドレスに対応する待合せ領域
    に書込みを行い、他方、前記命令情報が所定情報でない
    場合には、該データパケットをそのまま出力する待合せ
    制御手段と、 前記待合せ制御手段が出力するデータパケットを入力
    し、その命令フィールドの内容に従って、そのデータフ
    ィールドの内容に対して所定演算処理を施し、その結果
    を該データパケットのデータフィールドに格納して出力
    する演算手段とを含み、 前記記憶手段における前記プログラム領域と前記待合せ
    領域は、前記入力パケットの行先フィールドの内容に基
    く共通のアドレスによってアクセスされることを特徴と
    する、データ駆動型情報処理装置。
JP10969492A 1992-04-28 1992-04-28 データ駆動型情報処理装置 Expired - Fee Related JP2764358B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10969492A JP2764358B2 (ja) 1992-04-28 1992-04-28 データ駆動型情報処理装置
US08/053,442 US5577256A (en) 1992-04-28 1993-04-28 Data driven type information processor including a combined program memory and memory for queuing operand data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10969492A JP2764358B2 (ja) 1992-04-28 1992-04-28 データ駆動型情報処理装置

Publications (2)

Publication Number Publication Date
JPH05303657A JPH05303657A (ja) 1993-11-16
JP2764358B2 true JP2764358B2 (ja) 1998-06-11

Family

ID=14516835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10969492A Expired - Fee Related JP2764358B2 (ja) 1992-04-28 1992-04-28 データ駆動型情報処理装置

Country Status (1)

Country Link
JP (1) JP2764358B2 (ja)

Also Published As

Publication number Publication date
JPH05303657A (ja) 1993-11-16

Similar Documents

Publication Publication Date Title
US7120903B2 (en) Data processing apparatus and method for generating the data of an object program for a parallel operation apparatus
US5577256A (en) Data driven type information processor including a combined program memory and memory for queuing operand data
KR19980703033A (ko) 프로세서
JPH05225153A (ja) 高レベル命令の並列処理装置及び並列処理方法
EP0099263A2 (en) Digital computer for executing multiple instruction sets in a simultaneous-interleaved fashion
US5542079A (en) Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage
JP2002527812A (ja) 条件付き命令を備えるベクトルデータプロセッサ
JP2764358B2 (ja) データ駆動型情報処理装置
JPH0471085A (ja) データフロー型情報処理装置
US5369774A (en) Method and apparatus for handling array type data in a data driven type information processor
US5542080A (en) Method for controlling execution of data driven type information processor
JP3696625B2 (ja) データ駆動型情報処理装置
JPH03135630A (ja) 命令スケジューリング方式
JP3389261B2 (ja) データ駆動型情報処理装置
JP2579185B2 (ja) データフロープログラムの実行制御方式
JP2920968B2 (ja) 命令処理順序制御方式
JPH05174167A (ja) データフロープログラムの実行制御方法
CN115904344A (zh) 一种混合编程的方法和相关产品
WO2007034936A1 (ja) プロセッサ、コンパイラ装置及びプログラム
JPH09106346A (ja) 並列計算機
JPH0390931A (ja) Rom化プログラムの生成方法
JPH11119993A (ja) 信号処理装置
JPH07129408A (ja) 言語処理プログラムの実行方式
JPS63298530A (ja) 共通ブロック統合化方式
JPH0239242A (ja) 電子計算機システムの一時作業領域割付方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980224

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080403

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090403

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees