JP2580592B2 - データ構造駆動型処理装置とその制御方法 - Google Patents
データ構造駆動型処理装置とその制御方法Info
- Publication number
- JP2580592B2 JP2580592B2 JP62094580A JP9458087A JP2580592B2 JP 2580592 B2 JP2580592 B2 JP 2580592B2 JP 62094580 A JP62094580 A JP 62094580A JP 9458087 A JP9458087 A JP 9458087A JP 2580592 B2 JP2580592 B2 JP 2580592B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- link
- buffer
- direct
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、構造を有するデータを処理可能なデータ駆
動型処理装置およびその制御方法に関し、特にデータフ
ロー型ソフトウェア仕様の直接実行に好適な、データ構
造駆動型処理装置およびその制御方法に関する。
動型処理装置およびその制御方法に関し、特にデータフ
ロー型ソフトウェア仕様の直接実行に好適な、データ構
造駆動型処理装置およびその制御方法に関する。
従来のデータフローに基づくデータ駆動型処理装置
は、例えば、岩波講座マイクロエレクトロニクス8−VL
SIコンピュータI(昭和59月12月10日発行)第70〜75頁
において論じられている如く、命令のオペランドとして
のデータを、単純な数値に限定してはいるものの、プロ
グラム可能で、かつ、並列性の高い処理装置となってい
た。
は、例えば、岩波講座マイクロエレクトロニクス8−VL
SIコンピュータI(昭和59月12月10日発行)第70〜75頁
において論じられている如く、命令のオペランドとして
のデータを、単純な数値に限定してはいるものの、プロ
グラム可能で、かつ、並列性の高い処理装置となってい
た。
上記従来技術は、構造を有するデータの処理について
は配慮されておらず、これを行うためには構造を有する
データをその構成単位である要素データに分解してプロ
グラミングをしなくてはならないという問題があった。
は配慮されておらず、これを行うためには構造を有する
データをその構成単位である要素データに分解してプロ
グラミングをしなくてはならないという問題があった。
本発明な上記事情に鑑みてなされたもので、その目的
とするところは、従来のデータ駆動型処理装置における
上述の如き問題を解消し、構造を有するデータが流れる
データフロー型のプログラムを直接実行するための命令
を、データ駆動型処理装置の命令体系に付加して、それ
等を性能の劣化を伴うことなく並列に実行可能とするデ
ータ構造駆動型処理装置およびその制御方法を提供する
ことにある。
とするところは、従来のデータ駆動型処理装置における
上述の如き問題を解消し、構造を有するデータが流れる
データフロー型のプログラムを直接実行するための命令
を、データ駆動型処理装置の命令体系に付加して、それ
等を性能の劣化を伴うことなく並列に実行可能とするデ
ータ構造駆動型処理装置およびその制御方法を提供する
ことにある。
本発明の上記目的は、データフロープログラムの命令
を保持する命令バッファと、命令を取出してそれ等の実
行可能性を判定し、演算器への命令送出を行う実行制御
手段とを有するとともに、前記演算器間をネットワーク
によって結合し、オペランドデータが揃った命令を並列
に実行するデータ駆動型処理装置において、直積,直和
あるいは列構造を有するデータに対し、それ等をその構
成要素に分解する命令と、逆に構成要素から直積,直和
あるいは列構造に合成する命令とを、データ駆動型処理
装置の命令体系に付加したことを特徴とするデータ構造
駆動型処理装置、および、データフロープログラムの命
令を保持する命令バッファから命令を取出し、それ等の
実行可能性を判定して、実行可能な場合に演算器への命
令送出を行い、ネットワークによって結合された演算器
間で、オペランドデータが揃った命令を並列に実行する
データ駆動型処理装置の制御方法において、直積,直和
あるいは列構造を有するデータに対し、それ等をその構
成要素に分解する命令と、逆に構成要素から直積,直和
あるいは列構造に合成する命令とを、データ駆動型処理
装置の命令体系に付加することにより、構造を有するデ
ータを直接計算に用いることを特徴とするデータ構造駆
動型処理装置の制御方法によって達成される。
を保持する命令バッファと、命令を取出してそれ等の実
行可能性を判定し、演算器への命令送出を行う実行制御
手段とを有するとともに、前記演算器間をネットワーク
によって結合し、オペランドデータが揃った命令を並列
に実行するデータ駆動型処理装置において、直積,直和
あるいは列構造を有するデータに対し、それ等をその構
成要素に分解する命令と、逆に構成要素から直積,直和
あるいは列構造に合成する命令とを、データ駆動型処理
装置の命令体系に付加したことを特徴とするデータ構造
駆動型処理装置、および、データフロープログラムの命
令を保持する命令バッファから命令を取出し、それ等の
実行可能性を判定して、実行可能な場合に演算器への命
令送出を行い、ネットワークによって結合された演算器
間で、オペランドデータが揃った命令を並列に実行する
データ駆動型処理装置の制御方法において、直積,直和
あるいは列構造を有するデータに対し、それ等をその構
成要素に分解する命令と、逆に構成要素から直積,直和
あるいは列構造に合成する命令とを、データ駆動型処理
装置の命令体系に付加することにより、構造を有するデ
ータを直接計算に用いることを特徴とするデータ構造駆
動型処理装置の制御方法によって達成される。
データ構造に係わる命令には、構造を有するデータ
を、入力オペランドと、これを分解してその構成要素を
出力オペランドに渡す分解命令と、構成要素を入力オペ
ランドとし、これを合成して、出力オペランドに渡す合
成命令とがある。それによって、構造を有するデータを
予め加工することなく、計算に利用することができる。
また、これ等の命令のオペランドは、データの所在を表
わすリンク指定になっており、そのリンク情報を一括し
てリンクバッファに置き、排他制御を行うことにより、
効率の良い並列演算を行うことが可能になる。
を、入力オペランドと、これを分解してその構成要素を
出力オペランドに渡す分解命令と、構成要素を入力オペ
ランドとし、これを合成して、出力オペランドに渡す合
成命令とがある。それによって、構造を有するデータを
予め加工することなく、計算に利用することができる。
また、これ等の命令のオペランドは、データの所在を表
わすリンク指定になっており、そのリンク情報を一括し
てリンクバッファに置き、排他制御を行うことにより、
効率の良い並列演算を行うことが可能になる。
以下、本発明の実施例を図面に基づいて詳細に説明す
る。以下に説明する実施例において対象とするデータフ
ローは、作業ノードとリンクノードとを交互にアークに
より結合した2部グラフによって記述される。
る。以下に説明する実施例において対象とするデータフ
ローは、作業ノードとリンクノードとを交互にアークに
より結合した2部グラフによって記述される。
データフローによりプログラムは、作業ノードに割当
てられた命令コードと、作業ノードの入力および出力側
のリンクノードをオペランドとする命令セットである。
プログラムの実行は、命令セット中の実行可能なものを
並列に行う。ここで言う実行可能な命令とは、入力側の
リンクのすべてにデータが揃っている状態を言う。ま
た、命令の実行とは、入力側のリンクのデータを取込
み、命令コードに従った演算を施し、出力側のリンクに
結果のデータを置くことを言う。
てられた命令コードと、作業ノードの入力および出力側
のリンクノードをオペランドとする命令セットである。
プログラムの実行は、命令セット中の実行可能なものを
並列に行う。ここで言う実行可能な命令とは、入力側の
リンクのすべてにデータが揃っている状態を言う。ま
た、命令の実行とは、入力側のリンクのデータを取込
み、命令コードに従った演算を施し、出力側のリンクに
結果のデータを置くことを言う。
一例として、2次方程式の根を求める問題に沿つてデ
ータフローについて説明する。第2図(a)は2次方程
式の根を求めるデータフローである。入力データは、2
次の項の係数aと、1次の項の係数bと、定数項cとか
ら成り、結果は二つの根である。ダイヤグラムは、第2
図(b)の記法に従い、作業ノードを表わす矩形と、リ
ンクノードを表わす円とが、矢印によって交互に結合さ
れる2部グラフである。作業ノードはW1〜W16にラベル
付けされ、矩形の中には命令コードが表記される。リン
クノードはl1〜l24にラベル付けされている。リンクノ
ードを表わす円に接線が記されているものは、定数リン
クと呼ばれ、常時、当該リンク固有の定数値を供給す
る。また、図中、リンクノードの円の横に記された式
は、入力a,b,cを起点とした当該リンクのデータの値
を、説明の便宜上付したものである。
ータフローについて説明する。第2図(a)は2次方程
式の根を求めるデータフローである。入力データは、2
次の項の係数aと、1次の項の係数bと、定数項cとか
ら成り、結果は二つの根である。ダイヤグラムは、第2
図(b)の記法に従い、作業ノードを表わす矩形と、リ
ンクノードを表わす円とが、矢印によって交互に結合さ
れる2部グラフである。作業ノードはW1〜W16にラベル
付けされ、矩形の中には命令コードが表記される。リン
クノードはl1〜l24にラベル付けされている。リンクノ
ードを表わす円に接線が記されているものは、定数リン
クと呼ばれ、常時、当該リンク固有の定数値を供給す
る。また、図中、リンクノードの円の横に記された式
は、入力a,b,cを起点とした当該リンクのデータの値
を、説明の便宜上付したものである。
また、命令コードは、+が加算、−が減算、*が乗
算、/が除算、↑がべき乗算、NEGが符号反転、SQRTが
平方根、DUPが複写を表わしている。例えば、作業ノー
ドW1の命令コードはDUPで、これは、入力側のリンクl1
にあるデータを取込み、これと同じ値のデータを、出力
側のリンクl4とl5の両方に渡すことを示す。作業ノード
W4の命令コードは↑で、これは、第1オペランドとして
l5のリンクのデータを、第2オペランドとして値2を供
給する定数リンクのデータを取込み、第1オペランドの
2乗値を計算し、出力側リンクl9に渡すことを示す。他
の作業ノードについても同様である。
算、/が除算、↑がべき乗算、NEGが符号反転、SQRTが
平方根、DUPが複写を表わしている。例えば、作業ノー
ドW1の命令コードはDUPで、これは、入力側のリンクl1
にあるデータを取込み、これと同じ値のデータを、出力
側のリンクl4とl5の両方に渡すことを示す。作業ノード
W4の命令コードは↑で、これは、第1オペランドとして
l5のリンクのデータを、第2オペランドとして値2を供
給する定数リンクのデータを取込み、第1オペランドの
2乗値を計算し、出力側リンクl9に渡すことを示す。他
の作業ノードについても同様である。
データフロー図をプログラムに変換する規則を第3図
に示す。第3図(a)は、データフロー図中の個々の作
業ノードを中心とした一般形である。作業ノードのラベ
ルがW、その命令コードがop、入力側のリンクノードの
ラベルがl1〜ln、出力側のリンクノードのラベルがk1〜
kmであるる。これに対応したプログラムの命令表現を、
第3図(b)に示す。この規則に従って、第2図(a)
のデータフロー図をプログラムの命令セットに変換した
ものが第4図である。
に示す。第3図(a)は、データフロー図中の個々の作
業ノードを中心とした一般形である。作業ノードのラベ
ルがW、その命令コードがop、入力側のリンクノードの
ラベルがl1〜ln、出力側のリンクノードのラベルがk1〜
kmであるる。これに対応したプログラムの命令表現を、
第3図(b)に示す。この規則に従って、第2図(a)
のデータフロー図をプログラムの命令セットに変換した
ものが第4図である。
プログラムは、前述の如く入力オペランドのリンクに
データが揃っている状態のものが実行可能である。第4
図に示すプログラムの場合、まず、リンクl1,l2,l3にそ
れぞれデータa,b,cが初期値として置かれる。この最初
の状態で実行可能な命令はW1とW2である。これ等2つの
命令の実行が終了すると、リンクl1とl2のデータは消滅
しl4,l5,l6およびl7にデータが置かれる。この状態で実
行可能な命令は、W3,W4,W7およびW9である。以下同様
に、実行可能な命令群が順次あるいは並列に実行され、
実行可能な命令が存在しない状態になるまで動作を繰り
返す。本実施例ではリンクl23とl24にデータが置かれる
まで実行される。
データが揃っている状態のものが実行可能である。第4
図に示すプログラムの場合、まず、リンクl1,l2,l3にそ
れぞれデータa,b,cが初期値として置かれる。この最初
の状態で実行可能な命令はW1とW2である。これ等2つの
命令の実行が終了すると、リンクl1とl2のデータは消滅
しl4,l5,l6およびl7にデータが置かれる。この状態で実
行可能な命令は、W3,W4,W7およびW9である。以下同様
に、実行可能な命令群が順次あるいは並列に実行され、
実行可能な命令が存在しない状態になるまで動作を繰り
返す。本実施例ではリンクl23とl24にデータが置かれる
まで実行される。
データ構造は、直積,直和,列の三つの基本構造から
成っている。今、データの集合をD1,D2としたとき、D1
とD2の直積データ集合Dは、D1の要素とD2の要素とを組
にしたものを要素とする集合で、第5図(a)に示す如
く表記する。D1とD2の直和データ集合Dは、D1の要素ま
たはD2の要素を要素とする集合で、第5図(b)に示す
如く表記する。また、D1の列集合Dは、D1の要素を0個
以上並べたものを要素とする集合で、第5図(c)に示
す如く表記する。
成っている。今、データの集合をD1,D2としたとき、D1
とD2の直積データ集合Dは、D1の要素とD2の要素とを組
にしたものを要素とする集合で、第5図(a)に示す如
く表記する。D1とD2の直和データ集合Dは、D1の要素ま
たはD2の要素を要素とする集合で、第5図(b)に示す
如く表記する。また、D1の列集合Dは、D1の要素を0個
以上並べたものを要素とする集合で、第5図(c)に示
す如く表記する。
これ等の基本構造を任意に組合せてデータ構造を構成
する。第6図は、組合せられたデータ構造の具体例であ
る。「本年給与列」というデータ集合は、「本年給与」
の列により構成され、「本年給与」は「名前」と「金
額」の直積、「金額」は「臨時昇給」と「基本給」の直
和、更に、「臨時昇給」は「基本給」と「昇給」の直積
である。
する。第6図は、組合せられたデータ構造の具体例であ
る。「本年給与列」というデータ集合は、「本年給与」
の列により構成され、「本年給与」は「名前」と「金
額」の直積、「金額」は「臨時昇給」と「基本給」の直
和、更に、「臨時昇給」は「基本給」と「昇給」の直積
である。
上記データ構造は、データフロー中では、リンクに結
び付けられる。すなわち、リンクに対して必ずデータ構
造にが対応している。これ等のデータ構造に対し、一連
の命令群が定義される。
び付けられる。すなわち、リンクに対して必ずデータ構
造にが対応している。これ等のデータ構造に対し、一連
の命令群が定義される。
直積データ構造に対しては、直積分解と直積合成命令
とがある。直積分解の一般形を第7図(a)に示す。作
業ノードWの入力側リンクLのデータ構造Dが、D1〜Dn
の直積であり、作業ノードに割付けられた命令コードが
直積分解命令PDで、作業ノードWの出力側リンクL1〜Ln
のデータ構造がそれぞれD1〜Dnであるとき、リンクLに
Dの値Vが設定されるとWが実行可能になり、それが実
行されるとVが取込まれ、Vが要素V1〜Vnに分解され、
それぞれ出力側のリンクL1〜Lnに設定される。
とがある。直積分解の一般形を第7図(a)に示す。作
業ノードWの入力側リンクLのデータ構造Dが、D1〜Dn
の直積であり、作業ノードに割付けられた命令コードが
直積分解命令PDで、作業ノードWの出力側リンクL1〜Ln
のデータ構造がそれぞれD1〜Dnであるとき、リンクLに
Dの値Vが設定されるとWが実行可能になり、それが実
行されるとVが取込まれ、Vが要素V1〜Vnに分解され、
それぞれ出力側のリンクL1〜Lnに設定される。
直積合成の一般形を第7図(b)に示す。作業ノード
Wの入力側リンクL1〜Lnのデータ構造が、それぞれD1〜
Dnであり、作業ノードに割付けられた命令コードが直積
合成命令PCで、作業ノードWの出力側リンクLのデータ
構造がDがD1〜Dnの直積であるとき、リンクL1〜Lnにそ
れぞれデータ構造D1〜Dnの値V1〜Vnが設定されるとWが
実行可能になり、それが実行されるとV1〜Vnが同時にす
べて取込まれ、V1〜Vnを合成して値Vとし、これがLに
設定される。
Wの入力側リンクL1〜Lnのデータ構造が、それぞれD1〜
Dnであり、作業ノードに割付けられた命令コードが直積
合成命令PCで、作業ノードWの出力側リンクLのデータ
構造がDがD1〜Dnの直積であるとき、リンクL1〜Lnにそ
れぞれデータ構造D1〜Dnの値V1〜Vnが設定されるとWが
実行可能になり、それが実行されるとV1〜Vnが同時にす
べて取込まれ、V1〜Vnを合成して値Vとし、これがLに
設定される。
直和データ構成に対しては、直和分解と直和合成とが
ある。直和分解の一般形を第8図(a)に示す。作業ノ
ードW1〜Wnの入力側リンクLのデータ構造DがD1〜Dnの
直和であり、各作業ノードに割付けられた命令コードが
直和分解命令UDであり、作業ノードW1〜Wnのそれぞれが
出力側リンクL1〜Lnで、それ等のデータ構造がD1〜Dnで
あるとき、リンクLにDの値Vが設定されるとVがD
i(i=1〜n)に属するときWiが実行可能になり、そ
れが実行されるとVが取込まれ、それがDiの要素として
リンクLiに設定される。直和合成の一般形を第8図
(b)に示す。作業ノードW1〜Wnの入力側リンクL1〜Ln
のデータ構造DがそれぞれD1〜Dnであり、各作業ノード
に割付けられた命令コードが直和合成命令UCで、作業ノ
ードW1〜Wnの出力側リンクLのデータ構造DがD1〜Dnの
直和であるとき、リンクL1〜Lnのいずれか一つのLiに属
する値Viが設定されると、Wiが実行可能になり、これが
実行されるとViが取込まれ、それがDの要素としてリン
クLに設定される。
ある。直和分解の一般形を第8図(a)に示す。作業ノ
ードW1〜Wnの入力側リンクLのデータ構造DがD1〜Dnの
直和であり、各作業ノードに割付けられた命令コードが
直和分解命令UDであり、作業ノードW1〜Wnのそれぞれが
出力側リンクL1〜Lnで、それ等のデータ構造がD1〜Dnで
あるとき、リンクLにDの値Vが設定されるとVがD
i(i=1〜n)に属するときWiが実行可能になり、そ
れが実行されるとVが取込まれ、それがDiの要素として
リンクLiに設定される。直和合成の一般形を第8図
(b)に示す。作業ノードW1〜Wnの入力側リンクL1〜Ln
のデータ構造DがそれぞれD1〜Dnであり、各作業ノード
に割付けられた命令コードが直和合成命令UCで、作業ノ
ードW1〜Wnの出力側リンクLのデータ構造DがD1〜Dnの
直和であるとき、リンクL1〜Lnのいずれか一つのLiに属
する値Viが設定されると、Wiが実行可能になり、これが
実行されるとViが取込まれ、それがDの要素としてリン
クLに設定される。
列データ構造に対しては、列分解と列合成とがある。
列分解の一般形を第9図(a)に示す。作業ノードWの
入力側リンクLのデータ構造DがD1の列であり、作業ノ
ードに割付けられた命令コードが列分解命令SDで、出力
側リンクL1のデータ構造がD1であるとき、リンクLにD
の値Vが設定されるとWが実行可能になり、それが実行
されるとVが取込まれ、それが列構造要素V1〜Vnに分解
され、これ等すべての値が順序を保持しつつリンクL1に
設定される。列合成の一般形を第9図(b)に示す。作
業ノードWの入力側リンクL1のデータ構造がD1で作業ノ
ードに割付けられた命令コードが列合成命令SCであり、
出力側リンクLのデータ構造DがD1の列であるとき、リ
ンクL1にD1の値V1〜Vn(Nは1以上)が設定されると、
Wが実行可能になり、これが実行されるとV1〜Vnが一度
に取込まれ、それ等が列構造のデータDの要素Vとして
合成され、リンクLに設定される。
列分解の一般形を第9図(a)に示す。作業ノードWの
入力側リンクLのデータ構造DがD1の列であり、作業ノ
ードに割付けられた命令コードが列分解命令SDで、出力
側リンクL1のデータ構造がD1であるとき、リンクLにD
の値Vが設定されるとWが実行可能になり、それが実行
されるとVが取込まれ、それが列構造要素V1〜Vnに分解
され、これ等すべての値が順序を保持しつつリンクL1に
設定される。列合成の一般形を第9図(b)に示す。作
業ノードWの入力側リンクL1のデータ構造がD1で作業ノ
ードに割付けられた命令コードが列合成命令SCであり、
出力側リンクLのデータ構造DがD1の列であるとき、リ
ンクL1にD1の値V1〜Vn(Nは1以上)が設定されると、
Wが実行可能になり、これが実行されるとV1〜Vnが一度
に取込まれ、それ等が列構造のデータDの要素Vとして
合成され、リンクLに設定される。
第7図,第8図,第9図で示した命令のプログラムで
の形式を第10図に示す。また、データ構造を扱うデータ
フローの例を第11図に示す。
の形式を第10図に示す。また、データ構造を扱うデータ
フローの例を第11図に示す。
次に、本発明による自動処理装置の一実施例を説明す
る。
る。
第1図は本発明によるデータ構造を含むデータフロー
プログラムを実行するデータ構造駆動型処理装置であ
る。本実施例のデータ構造駆動型処理装置は、演算装置
1,リンクバッファ2,リンクバッファ制御装置3,命令バッ
ファ4,実行制御装置5から構成されている。演算装置1
は複数の演算器6から構成されている。リンクバッファ
2は、実体情報領域7と定義情報領域8から構成されて
おり、それぞれは、複数の実体セル9と定義セル10から
構成されている。命令バッファ4は複数の命令セル11か
ら構成されている。
プログラムを実行するデータ構造駆動型処理装置であ
る。本実施例のデータ構造駆動型処理装置は、演算装置
1,リンクバッファ2,リンクバッファ制御装置3,命令バッ
ファ4,実行制御装置5から構成されている。演算装置1
は複数の演算器6から構成されている。リンクバッファ
2は、実体情報領域7と定義情報領域8から構成されて
おり、それぞれは、複数の実体セル9と定義セル10から
構成されている。命令バッファ4は複数の命令セル11か
ら構成されている。
命令バッファ4の命令セル11には、第3図(c)に示
したプログラムの命令形式に従った情報が格納される。
ここでは、これを命令パケットと呼ぶことにする。命令
パケットの記憶形式例を第12図(a)に示す。一つの命
令パケットは、命令コードと、入力側のリンク情報と、
出力側のリンク情報から構成される。第11図のデータフ
ローを表わす命令パケット群の命令バッファでの蓄積例
を第12図(b)に示す。
したプログラムの命令形式に従った情報が格納される。
ここでは、これを命令パケットと呼ぶことにする。命令
パケットの記憶形式例を第12図(a)に示す。一つの命
令パケットは、命令コードと、入力側のリンク情報と、
出力側のリンク情報から構成される。第11図のデータフ
ローを表わす命令パケット群の命令バッファでの蓄積例
を第12図(b)に示す。
リンクバッファ2の実体情報領域7の実体セル9に
は、データフロープログラムのリンク情報が格納され
る。リンクは番号付けされ、これによって唯一に識別さ
れる。また、一つのリンクに蓄積される値は、当該リン
クに対応したデータ構造に従ったものであり、このデー
タ構造情報を定義セル8へのポインタとして蓄積する。
実体セルの記憶形式例を、第13図(a)に示す。
は、データフロープログラムのリンク情報が格納され
る。リンクは番号付けされ、これによって唯一に識別さ
れる。また、一つのリンクに蓄積される値は、当該リン
クに対応したデータ構造に従ったものであり、このデー
タ構造情報を定義セル8へのポインタとして蓄積する。
実体セルの記憶形式例を、第13図(a)に示す。
リンクバッファ2の定義情報領域8の定義セル10に
は、データ構造情報が格納される。一つの定義セル10に
は、第5図に示した直積,直和,列の構造情報あるいは
基本データ型情報が蓄積される。第13図(b)は、定義
セル10の記憶形式例である。
は、データ構造情報が格納される。一つの定義セル10に
は、第5図に示した直積,直和,列の構造情報あるいは
基本データ型情報が蓄積される。第13図(b)は、定義
セル10の記憶形式例である。
第11図のデータフローを表わすリンクバッファの蓄積
例を第14図に示す。
例を第14図に示す。
第15図は、第1図の実行制御装置5の実行手順を示す
フローチャートである。本実行制御装置5の動作は、命
令バッファ4から命令パケット信号12を受信し(ステッ
プ101)、当該命令パケットの入力オペランドを結合し
入力リンク番号列を作成する(ステップ102)。次に、
すべての入力リンクに値が設定されているときにのみ実
行可能になるという条件判定を行うために、入力リンク
番号列信号14を一括してリンクバッファ制御装置3に送
り、その判定信号13を受取る(ステップ103)。
フローチャートである。本実行制御装置5の動作は、命
令バッファ4から命令パケット信号12を受信し(ステッ
プ101)、当該命令パケットの入力オペランドを結合し
入力リンク番号列を作成する(ステップ102)。次に、
すべての入力リンクに値が設定されているときにのみ実
行可能になるという条件判定を行うために、入力リンク
番号列信号14を一括してリンクバッファ制御装置3に送
り、その判定信号13を受取る(ステップ103)。
上記判定信号13が実行可能であることを示している場
合には、命令パケット信号16を演算装置1に送り(ステ
ップ104)、また、実行不能である場合には、命令パケ
ット信号15を命令バッファ4に送り返す(ステップ10
5)。これ等一連の手順は、各命令セル11毎に並行して
実行可能であり、こうすることにより、性能向上を図る
ことができる。
合には、命令パケット信号16を演算装置1に送り(ステ
ップ104)、また、実行不能である場合には、命令パケ
ット信号15を命令バッファ4に送り返す(ステップ10
5)。これ等一連の手順は、各命令セル11毎に並行して
実行可能であり、こうすることにより、性能向上を図る
ことができる。
第16図は、第1図の演算装置1の実行手順を示すフロ
ーチャートである。本演算装置1は、複数の命令パケッ
トを並行して処理することができるように、複数の演算
器6から構成される。
ーチャートである。本演算装置1は、複数の命令パケッ
トを並行して処理することができるように、複数の演算
器6から構成される。
本演算装置1の動作は、以下の通りである。実行制御
装置5からの命令パケット信号16を受取ると(ステップ
201)、空いている演算器に当該命令パケットの実行を
割当てる。受信された命令パケットから入力リンク番号
を取出し、これ等のリンクに蓄積された値を得るためリ
ンクバッファ制御装置3のリンク番号列信号18を送り、
その結果のリンクデータ列信号17を受取る(ステップ20
2)。このリンクデータの取得が失敗した場合は、命令
パケットの実行をせずに当該パケットを命令バッファに
戻す(ステップ205)。
装置5からの命令パケット信号16を受取ると(ステップ
201)、空いている演算器に当該命令パケットの実行を
割当てる。受信された命令パケットから入力リンク番号
を取出し、これ等のリンクに蓄積された値を得るためリ
ンクバッファ制御装置3のリンク番号列信号18を送り、
その結果のリンクデータ列信号17を受取る(ステップ20
2)。このリンクデータの取得が失敗した場合は、命令
パケットの実行をせずに当該パケットを命令バッファに
戻す(ステップ205)。
リンクデータの取得が成功した場合には、これ等の値
を基に、命令パケットの命令コードに従った演算を行い
(ステップ203)、演算結果のデータ列を出力リンクデ
ータ列信号18として一括してリンクバッファ制御装置3
に送り(ステップ204)、演算の終了した命令パケット
信号19を命令バッファ4に送る(ステップ205)。
を基に、命令パケットの命令コードに従った演算を行い
(ステップ203)、演算結果のデータ列を出力リンクデ
ータ列信号18として一括してリンクバッファ制御装置3
に送り(ステップ204)、演算の終了した命令パケット
信号19を命令バッファ4に送る(ステップ205)。
第17図は、第1図のリンクバッファ制御装置3の実行
手順を示すフローチャートである。リンクバッファ制御
装置3は、データフロープログラムのリンク情報に関す
るアクセスの排他制御を行うものである。なお、アクセ
スには、実行制御装置5からの実行決定、および、演算
装置1からのデータ取得とデータ設定があり、すべて並
行動作が可能である。
手順を示すフローチャートである。リンクバッファ制御
装置3は、データフロープログラムのリンク情報に関す
るアクセスの排他制御を行うものである。なお、アクセ
スには、実行制御装置5からの実行決定、および、演算
装置1からのデータ取得とデータ設定があり、すべて並
行動作が可能である。
本演算装置1の動作は、以下の通りである。
第17図(a)は上記実行判定の手順を示すフローチャ
ートである。リンクバッファ制御装置3は、実行制御装
置5から入力リンク番号信号列16を受取ると(ステップ
301)、リンク番号列に含まれるすべてのリンクがアン
ロック状態になるまで待ち(ステップ302)、すべての
リンクにロックをかけて、他のプロセスからのリンクア
クセスを排他制御し(ステップ303)、各リンクに値が
設定されているか否かを判定する(ステップ304)。
ートである。リンクバッファ制御装置3は、実行制御装
置5から入力リンク番号信号列16を受取ると(ステップ
301)、リンク番号列に含まれるすべてのリンクがアン
ロック状態になるまで待ち(ステップ302)、すべての
リンクにロックをかけて、他のプロセスからのリンクア
クセスを排他制御し(ステップ303)、各リンクに値が
設定されているか否かを判定する(ステップ304)。
すべてのリンクに値が設定されている場合には、実行
可能であることを示す判定信号13を実行制御装置5に送
り(ステップ306)、一つでも値が設定されていないリ
ンクがある場合には、実行不能であることを示す判定信
号13を、実行制御装置5に送る(ステップ305)。最後
に、リンクのロック状態をすべて解除する(ステップ30
7)。
可能であることを示す判定信号13を実行制御装置5に送
り(ステップ306)、一つでも値が設定されていないリ
ンクがある場合には、実行不能であることを示す判定信
号13を、実行制御装置5に送る(ステップ305)。最後
に、リンクのロック状態をすべて解除する(ステップ30
7)。
第17図(b)は、前述のデータ取得の手順を示すフロ
ーチャートである。リンクバッファ制御装置3は、演算
装置1からリンク番号列信号18を受取ると(ステップ30
8)、リンク番号列に含まれるすべてのリンクがアンロ
ック状態になるまで待って(ステップ309)、すべての
リンクにロックをかけて、他のプロセスからのリンクア
クセスを排他制御し(ステップ310)、各リンクに値が
設定されているか否かを判定する(ステップ311)。
ーチャートである。リンクバッファ制御装置3は、演算
装置1からリンク番号列信号18を受取ると(ステップ30
8)、リンク番号列に含まれるすべてのリンクがアンロ
ック状態になるまで待って(ステップ309)、すべての
リンクにロックをかけて、他のプロセスからのリンクア
クセスを排他制御し(ステップ310)、各リンクに値が
設定されているか否かを判定する(ステップ311)。
一つでも値が設定されていないリンクがある場合に
は、データ取得が失敗したことを示す制御信号17を演算
装置1に送る(ステップ312)。すべてのリンクに値が
設定されている場合には、リンクデータを取得し、その
リンクデータ列信号17を演算装置1に送り(ステップ31
3)、取得したデータをリンクから消去する(ステップ3
14)。最後に、前記同様、リンクのロック状態をすべて
解除する(ステップ315)。
は、データ取得が失敗したことを示す制御信号17を演算
装置1に送る(ステップ312)。すべてのリンクに値が
設定されている場合には、リンクデータを取得し、その
リンクデータ列信号17を演算装置1に送り(ステップ31
3)、取得したデータをリンクから消去する(ステップ3
14)。最後に、前記同様、リンクのロック状態をすべて
解除する(ステップ315)。
第17図(c)は、前記データ設定の手順を示すフロー
チャートである。リンクバッファ制御装置3は、演算装
置1から出力リンクデータ列信号18を受取ると(ステッ
プ316)、出力リンクデータ列信号18に含まれるすべて
のリンクがアンロック状態になるまで待ち(ステップ31
7)、すべてのリンクにロックをかけて、他のプロセス
からのリンクアクセスを排他制御し(ステップ318)、
各リンクに出力リンクデータ列信号18によって指定され
たデータを設定する(ステップ319)。最後に、リンク
のロック状態をすべて解除する(ステップ320)。
チャートである。リンクバッファ制御装置3は、演算装
置1から出力リンクデータ列信号18を受取ると(ステッ
プ316)、出力リンクデータ列信号18に含まれるすべて
のリンクがアンロック状態になるまで待ち(ステップ31
7)、すべてのリンクにロックをかけて、他のプロセス
からのリンクアクセスを排他制御し(ステップ318)、
各リンクに出力リンクデータ列信号18によって指定され
たデータを設定する(ステップ319)。最後に、リンク
のロック状態をすべて解除する(ステップ320)。
上記実施例に示したデータ駆動型処理装置によれば、
従来の基本データのみを取扱うデータ駆動型処理に加
え、直積,直和,列といった構造を有するデータを直接
処理することが可能となり、より抽象度の高い、人間が
理解し易いデータフロープログラムを開発することがで
き、その理解し易さにより、プログラムの信頼性が向上
するという効果がある。更に、データ構造を扱う演算を
導入しこれを他の演算と同等に扱うことにより、実行の
並列性を確保することができるので、プログラムの実行
速度を向上させる効果がある。
従来の基本データのみを取扱うデータ駆動型処理に加
え、直積,直和,列といった構造を有するデータを直接
処理することが可能となり、より抽象度の高い、人間が
理解し易いデータフロープログラムを開発することがで
き、その理解し易さにより、プログラムの信頼性が向上
するという効果がある。更に、データ構造を扱う演算を
導入しこれを他の演算と同等に扱うことにより、実行の
並列性を確保することができるので、プログラムの実行
速度を向上させる効果がある。
なお、上記実施例においては、本発明をデータ駆動型
処理装置に適用した場合を例に挙げて説明したが、本発
明必ずしもこれに限定される必要はなく、フォンノイマ
ン型処理装置にも応用可能であることを付言しておく。
処理装置に適用した場合を例に挙げて説明したが、本発
明必ずしもこれに限定される必要はなく、フォンノイマ
ン型処理装置にも応用可能であることを付言しておく。
以上述べた如く、本発明によれば、構造を有するデー
タが流れるデータフロー型のプログラムを直接実行する
ための命令を、データ駆動型処理装置の命令体系に付加
して、それ等を性能の劣化を伴なうことなく並列に実行
可能とするデータ構造駆動型処理装置およびその制御方
法を実現できるという顕著な効果を奏するものである。
タが流れるデータフロー型のプログラムを直接実行する
ための命令を、データ駆動型処理装置の命令体系に付加
して、それ等を性能の劣化を伴なうことなく並列に実行
可能とするデータ構造駆動型処理装置およびその制御方
法を実現できるという顕著な効果を奏するものである。
第1図は本発明の一実施例を示すデータ構造駆動型処理
装置の構成図、第2図はデータ構造を持たないデータフ
ローの一例を示す図、第3図はデータフロー図をプログ
ラムに変換する規則の一例を示す図、第4図はデータフ
ロープログラムの一例を示す図、第5図はデータ構造を
示す図、第6図はデータ構造の具体例を示す図、第7図
は直積構造に係わる演算の説明図、第8図は直和構造に
係わる演算の説明図、第9図は列構造に係わる演算の説
明図、第10図はデータ構造演算のテキスト表現、第11図
はデータ構造を扱うデータフローの一例を示す図、第12
図は命令の構造図、第13図はリンクバッファのデータ構
成例を示す図、第14図はリンクバッファの構成例を示す
図、第15図は実行制御装置の処理を示すフローチャー
ト、第16図は演算装置の処理を示すフローチャート、第
17図はリンクバッファ制御装置の処理を示すフローチャ
ートである。 1:演算装置、2:リンクバッファ、3:リンクバッファ制御
装置、4:命令バッファ、5:実行制御装置、6:演算器、7:
実体情報領域、8:定義情報領域、9:実体セル、10:定義
セル、11:命令セル、12,15,16,19:命令パケット信号、1
3:判定信号、14:入力リンク番号列信号、17:リンクデー
タ列信号、18:リンク番号列信号または出力リンクデー
タ列信号。
装置の構成図、第2図はデータ構造を持たないデータフ
ローの一例を示す図、第3図はデータフロー図をプログ
ラムに変換する規則の一例を示す図、第4図はデータフ
ロープログラムの一例を示す図、第5図はデータ構造を
示す図、第6図はデータ構造の具体例を示す図、第7図
は直積構造に係わる演算の説明図、第8図は直和構造に
係わる演算の説明図、第9図は列構造に係わる演算の説
明図、第10図はデータ構造演算のテキスト表現、第11図
はデータ構造を扱うデータフローの一例を示す図、第12
図は命令の構造図、第13図はリンクバッファのデータ構
成例を示す図、第14図はリンクバッファの構成例を示す
図、第15図は実行制御装置の処理を示すフローチャー
ト、第16図は演算装置の処理を示すフローチャート、第
17図はリンクバッファ制御装置の処理を示すフローチャ
ートである。 1:演算装置、2:リンクバッファ、3:リンクバッファ制御
装置、4:命令バッファ、5:実行制御装置、6:演算器、7:
実体情報領域、8:定義情報領域、9:実体セル、10:定義
セル、11:命令セル、12,15,16,19:命令パケット信号、1
3:判定信号、14:入力リンク番号列信号、17:リンクデー
タ列信号、18:リンク番号列信号または出力リンクデー
タ列信号。
Claims (4)
- 【請求項1】データフロープログラムの命令を保持する
命令バッファと、命令を取出してそれ等の実行可能性を
判定し、演算器への命令送出を行う実行制御手段とを有
するとともに、前記演算器間をネットワークによって結
合し、オペランドデータが揃った命令を並列に実行する
データ駆動型処理装置において、直積,直和あるいは列
構造を有するデータに対し、それ等をその構成要素に分
解する命令と、逆に構成要素から直積,直和あるいは列
構造に合成する命令とを、データ駆動型処理装置の命令
体系に付加したことを特徴とするデータ構造駆動型処理
装置。 - 【請求項2】前記命令のオペランドであるリンク情報を
保持するリンクバッファと、前記リンク情報の排他制御
を行うリンクバッファ制御手段とを有することを特徴と
する特許請求の範囲第1項記載のデータ構造駆動型処理
装置。 - 【請求項3】データフロープログラムの命令を保持する
命令バッファから命令を取出し、それ等の実行可能性を
判定して、実行可能な場合に演算器への命令送出を行
い、ネットワークによって結合された演算器間で、オペ
ランドデータが揃った命令を並列に実行するデータ駆動
型処理装置の制御方法において、直積,直和あるいは列
構造を有するデータに対し、それ等をその構成要素に分
解する命令と、逆に構成要素から直積,直和あるいは列
構造に合成する命令とを、データ駆動型処理装置の命令
体系に付加することにより、構造を有するデータを直接
計算に用いることを特徴とするデータ構造駆動型処理装
置の制御方法。 - 【請求項4】前記命令のオペランドであるリンク情報を
保持しておき、前記リンク情報の排他制御を行うことを
特徴とする特許請求の範囲第3項記載のデータ構造駆動
型処理装置の制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62094580A JP2580592B2 (ja) | 1987-04-17 | 1987-04-17 | データ構造駆動型処理装置とその制御方法 |
DE3853105T DE3853105T2 (de) | 1987-04-17 | 1988-04-12 | Ein Petri-Netz verwendendes Programmierverfahren und strukturierte Daten verarbeitendes System. |
EP88105816A EP0298206B1 (en) | 1987-04-17 | 1988-04-12 | Programming method using a Petri net and structured data processing system |
US07/181,586 US5029080A (en) | 1987-04-17 | 1988-04-14 | Method and apparatus for composing a set of instructions for executing a data flow program defined by structured data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62094580A JP2580592B2 (ja) | 1987-04-17 | 1987-04-17 | データ構造駆動型処理装置とその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63259729A JPS63259729A (ja) | 1988-10-26 |
JP2580592B2 true JP2580592B2 (ja) | 1997-02-12 |
Family
ID=14114216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62094580A Expired - Lifetime JP2580592B2 (ja) | 1987-04-17 | 1987-04-17 | データ構造駆動型処理装置とその制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5029080A (ja) |
EP (1) | EP0298206B1 (ja) |
JP (1) | JP2580592B2 (ja) |
DE (1) | DE3853105T2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5821934A (en) * | 1986-04-14 | 1998-10-13 | National Instruments Corporation | Method and apparatus for providing stricter data type capabilities in a graphical data flow diagram |
US5497344A (en) * | 1989-01-26 | 1996-03-05 | Sharp Kabushiki Kaisha | Data flow type information processor |
JPH0769842B2 (ja) * | 1989-02-13 | 1995-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 資源の相互排他制御方法及びシステム |
EP0548074A1 (en) * | 1989-08-21 | 1993-06-30 | Massachusetts Institute Of Technology | Distributed building of service request lists |
US5511167A (en) * | 1990-02-15 | 1996-04-23 | Hitachi, Ltd. | Program processing method and apparatus for producing a data flow type program |
US5257363A (en) * | 1990-04-09 | 1993-10-26 | Meta Software Corporation | Computer-aided generation of programs modelling complex systems using colored petri nets |
US5410701A (en) * | 1992-01-29 | 1995-04-25 | Devonrue Ltd. | System and method for analyzing programmed equations |
JPH05217007A (ja) * | 1992-02-04 | 1993-08-27 | Sharp Corp | データフロープログラムの実行制御方法 |
US5317757A (en) * | 1992-02-06 | 1994-05-31 | International Business Machines Corporation | System and method for finite state machine processing using action vectors |
US5765014A (en) * | 1993-10-12 | 1998-06-09 | Seki; Hajime | Electronic computer system and processor element for processing in a data driven manner using reverse polish notation |
US5867649A (en) * | 1996-01-23 | 1999-02-02 | Multitude Corporation | Dance/multitude concurrent computation |
DE19651334A1 (de) * | 1996-12-10 | 1998-06-25 | Ericsson Telefon Ab L M | Betriebstestvorrichtung und Verfahren zur Ausführung eines Betriebstests für ein zu testendes System |
US7120699B2 (en) * | 2001-09-20 | 2006-10-10 | Ricoh Company, Ltd. | Document controlled workflow systems and methods |
DE10319435B4 (de) * | 2003-04-25 | 2018-07-26 | Whitecryption Corporation | Verfahren zur Verarbeitung von Daten zum Schutz eines Softwareprogramms vor Rekonstruktion |
US7177877B2 (en) * | 2003-05-29 | 2007-02-13 | Electronic Data Systems Corporation | Method and system for externalizing conditional logic for collecting multi-purpose objects |
US20070250297A1 (en) * | 2005-09-01 | 2007-10-25 | The United States Of America As Represented By The Secretary Of The Navy | Method for reducing hazards |
JPWO2014170965A1 (ja) * | 2013-04-16 | 2017-02-16 | 株式会社日立製作所 | 文書処理方法、文書処理装置および文書処理プログラム |
US9600342B2 (en) | 2014-07-10 | 2017-03-21 | Oracle International Corporation | Managing parallel processes for application-level partitions |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4315315A (en) * | 1971-03-09 | 1982-02-09 | The Johns Hopkins University | Graphical automatic programming |
US3962706A (en) * | 1974-03-29 | 1976-06-08 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of stored programs |
US4145733A (en) * | 1974-03-29 | 1979-03-20 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of stored programs |
US4149240A (en) * | 1974-03-29 | 1979-04-10 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of data structure operations |
US4319321A (en) * | 1979-05-11 | 1982-03-09 | The Boeing Company | Transition machine--a general purpose computer |
JPS56168263A (en) * | 1980-05-30 | 1981-12-24 | Hitachi Ltd | Program making device |
US4644461A (en) * | 1983-04-29 | 1987-02-17 | The Regents Of The University Of California | Dynamic activity-creating data-driven computer architecture |
US4814978A (en) * | 1986-07-15 | 1989-03-21 | Dataflow Computer Corporation | Dataflow processing element, multiprocessor, and processes |
US4866663A (en) * | 1987-02-13 | 1989-09-12 | Sanders Associates, Inc. | Simulation system |
-
1987
- 1987-04-17 JP JP62094580A patent/JP2580592B2/ja not_active Expired - Lifetime
-
1988
- 1988-04-12 DE DE3853105T patent/DE3853105T2/de not_active Expired - Fee Related
- 1988-04-12 EP EP88105816A patent/EP0298206B1/en not_active Expired - Lifetime
- 1988-04-14 US US07/181,586 patent/US5029080A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE3853105D1 (de) | 1995-03-30 |
EP0298206B1 (en) | 1995-02-22 |
JPS63259729A (ja) | 1988-10-26 |
DE3853105T2 (de) | 1995-06-14 |
EP0298206A3 (en) | 1990-12-27 |
EP0298206A2 (en) | 1989-01-11 |
US5029080A (en) | 1991-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2580592B2 (ja) | データ構造駆動型処理装置とその制御方法 | |
Aho et al. | On finding lowest common ancestors in trees | |
CA1337531C (en) | Programmable circuit device and method for designing custom circuits from same | |
JPH08508838A (ja) | 有限要素法の新しい解析法及び解析器 | |
Norrie | Supercomputers for superproblems: An architectural introduction | |
Kindervater et al. | OR Forum—Perspectives on Parallel Computing | |
CN111755065B (zh) | 一种基于虚拟网络映射和云并行计算的蛋白质构象预测加速方法 | |
Gorlatch | Stages and transformations in parallel programming | |
Hamblen | Parallel continuous system simulation using the transputer | |
Hatzopoulos et al. | Advantages for solving linear systems in an asynchronous environment | |
Loidl et al. | Tuning task granularity and data locality of data parallel GpH programs | |
JP2793357B2 (ja) | 並列演算装置 | |
Akl et al. | Introduction to parallel computation | |
Hansen | A multiprocessor implementation of Joyce | |
Birta | A quasi-parallel method for the simulation of loosely coupled continuous subsystems | |
Luo et al. | A flexible transputer network for numerical applications | |
JPS5995646A (ja) | 演算制御装置 | |
Stewart | SIMD language design using prescriptive semantics | |
Taylor et al. | Flexible operating environment for matrix based neurocomputers | |
Schneider et al. | Hardware support for simulated annealing and tabu search | |
JPS6340964A (ja) | 行列演算処理方式 | |
Zois | PARFES, a parallel finite element system | |
Grierson | Perspectives in simulation hardware and software architecture | |
Butler | A new software architecture for parallel computation and visualization | |
JPH064348A (ja) | プログラムデバッグ方式 |