JP3696625B2 - データ駆動型情報処理装置 - Google Patents
データ駆動型情報処理装置 Download PDFInfo
- Publication number
- JP3696625B2 JP3696625B2 JP19985592A JP19985592A JP3696625B2 JP 3696625 B2 JP3696625 B2 JP 3696625B2 JP 19985592 A JP19985592 A JP 19985592A JP 19985592 A JP19985592 A JP 19985592A JP 3696625 B2 JP3696625 B2 JP 3696625B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- program
- input
- instruction
- 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
- Advance Control (AREA)
Description
【産業上の利用分野】
この発明はデータ駆動型情報処理装置に関し、特に、該情報処理装置におけるプログラム記憶機能と、2入力命令に関するオペランドデータ対の生成機能との改良に関する。
【0002】
【従来の技術】
従来のノイマン型計算機においてはプログラムとして種々の命令が予めプログラムメモリに記憶され、プログラムカウンタによってプログラムメモリのアドレスが逐次指定されることにより順次命令が読出され、その命令が実行される。
【0003】
一方、データ駆動型情報処理装置は、プログラムカウンタによる逐次的な命令の実行という概念を持たない非ノイマン型計算機の一種である。このようなデータ駆動型情報処理装置には、命令の並列処理を基本としたアーキテクチャが採用される。データ駆動型情報処理装置においては、演算の対象となるデータが揃い次第、命令の実行が可能となり、データによって複数の命令が同時に駆動されるため、データの自然な流れに従って並列的にプログラムが実行される。そのため、演算の所要時間が大幅に短縮するとみなされている。
【0004】
図11は、従来のデータ駆動型情報処理装置のブロック構成の一例を示す図である。
【0005】
図12は、従来および本発明の実施例に適用されるデータ駆動型情報処理装置を巡回するデータパケットのフィールド構成図である。
【0006】
図12において、データパケットPAは第1ワードおよび第2ワードからなる。第1ワードはフラグフィールドF1、命令フィールドF2、世代番号フィールドF3、ノード番号フィールドF4および識別コードフィールドF5を含む。第2ワードは左データフィールドF6および右データフィールドF7を含む。フィールドF1には後述するスルーフラグSFが格納され、フィールドF2には命令コードが、フィールドF3にはアドレス部および非アドレス部からなる世代番号が、フィールドF4にはノード番号がそれぞれ格納される。また、フィールドF5には左/右識別コードL/Rが格納される。フィールドF6には左オペランドデータが、フィールドF7には右オペランドデータがそれぞれ格納される。フィールドF6およびF7には、該パケットPAのフィールドF2に格納された命令コードに関連したデータが格納される。命令コードが左右2つのオペランドデータを必要とするような2項演算命令である場合、フィールドF6およびF7には該命令コードに関する左オペランドデータおよび右オペランドデータがそれぞれ格納される。一方、フィールドF2に格納された命令コードが1つのオペランドデータを用いた単項演算命令である場合、フィールドF6にのみ、該命令コードに関する1つのオペランドデータが格納される。なお、世代番号のアドレス部および非アドレス部、ならびに左/右識別コードL/Rの詳細については後述する。
【0007】
図11においてデータ駆動型情報処理装置30は、演算部2、分岐部3、合流部4、プログラム記憶部5および発火制御部6を含む。
【0008】
図13は、図11のプログラム記憶部5の記憶内容の一部を示す図である。
図14は、図11の発火制御部6の待合せメモリの記憶内容の一部を示す図である。
【0009】
図15は、図11のプログラム記憶部のプログラム読出機構を示すブロック図である。
【0010】
図11のプログラム記憶部5には図13に示されるようなデータフロープログラムが予め記憶される。図13を参照してデータフロープログラムは、コピーフラグCPY、定数フラグCNT、次位の命令コード、次位のノード番号および左/右識別コードL/Rを格納した組を複数個含む。プログラム記憶部5は入力パケットPAのノード番号に基づくアドレス指定によって次位の命令コードおよび次位のノード番号をフェッチする(読出す)。プログラム記憶部5に記憶されている命令は、図13に示されるようにコピーフラグCPYと定数フラグCNTの値によって、「通常の命令」、「パケットコピーがある命令」、および「定数データを有する命令」の3通りに分類される。プログラム記憶部1の出力パケットの構成は、図12に示されたデータパケットPAの構成と同様である。
【0011】
プログラム記憶部5が入力パケットに格納されたノード番号に基づくアドレス指定により、「通常命令」をフェッチした場合は、フェッチされた命令コード、ノード番号およびフラグL/Rを入力パケットのフィールドF2、F4およびF5のそれぞれに格納し、該パケットを出力する。
【0012】
プログラム記憶部5が入力パケットに格納されたノード番号に基づくアドレス指定により、「パケットコピーがある命令」をフェッチした場合、前述した「通常命令」の場合と同様の処理を行なった後、該指定アドレス領域に格納されたコピーフラグCPYが“1”であることを検出し、応じて、次位のアドレスの内容を連続してフェッチする。次位のアドレス領域に格納されたプログラムデータは、「通常命令」の場合と同様に、フェッチされた次位の命令コード、次位のノード番号および識別コードL/Rを入力パケットのフィールドF2、F4およびF5のそれぞれに書込んで、該パケットを出力する。このように、プログラム記憶部5において「パケットコピーがある命令」がフェッチされた場合は、1個の入力パケットに対して、一般的に、異なる命令コード、ノード番号および左/右識別コードL/Rを格納した2個のパケットがプログラム記憶部5から出力される。
【0013】
プログラム記憶部5が入力パケットに格納されたノード番号に基づくアドレス指定により「定数データを有する命令」をフェッチした場合、前述した「通常命令」の場合と同様の処理を行なった後、該指定アドレス領域に格納された定数フラグCNTが1であることを検出し、応じて、次位のアドレスの内容をフェッチする。引き続いてフェッチされた内容は、定数データである。入力パケットのフィールドF6またはF7にフェッチされた定数データが書込まれた後、該入力パケットのコードL/Rが反転されて、該パケットは出力される。このように、プログラム記憶部5において「定数データを有する命令」がフェッチされた場合は、1個の入力パケットに対して、一般的に、異なるデータおよび識別コードL/Rを格納したデータパケットが2個、プログラム記憶部5から出力される。
【0014】
図11において、発火制御部6はプログラム記憶部5から出力されるデータパケットの待合せ、すなわち世代番号およびノード番号が一致する異なる2つのデータパケットの検出を行ない、データ対を生成する機能を有する。発火制御部6の主要な構成要素である待合せメモリ(図11には示されず)の記憶内容の一部が図14に示される。図14において、待合せメモリは、プログラム記憶部5からの入力パケットに格納されたノード番号と世代番号のアドレス部とに基づいてアドレス指定される。アドレス指定され得る各領域には世代番号の非アドレス部、待合せデータおよび発火制御フラグVLDが格納される。
【0015】
発火制御部6は、入力パケットに格納された命令コードが1入力命令を表わす場合は、該入力パケットをそのまま出力する。一方、入力パケットの命令コードが2入力命令である場合は、該入力パケットのノード番号と世代番号のアドレス部とをアドレスとして、待合せメモリをアクセスする。アクセスされた待合せメモリ中の指定アドレス領域に格納されたフラグVLDが0である場合、入力パケットのフィールドF6またはF7に格納されたデータが待合せデータとして該指定アドレス領域に書込まれるとともに、該入力パケットの世代番号の非アドレス部が同様に書込まれる。その後、該指定アドレス領域のフラグVLDを“1”に設定する。この場合、発火制御部6からはパケットは出力されない。
【0016】
待合せメモリの指定アドレス領域に格納されたフラグVLDが“1”である場合、入力パケットの世代番号の非アドレス部が、該指定アドレス領域に書込まれている世代番号の非アドレス部と一致するか否かが検出される。一致検出されれば、入力パケット中のフィールドF6またはF7に格納されたデータと待合せメモリの指定アドレス領域から読出されたデータとでデータ対が生成され、生成されたデータ対を格納したデータパケットが出力される。このとき、出力パケット中のフィールドF6およびF7に格納されるデータは次のように決定される。つまり、入力パケットの識別コードL/Rがコード“L”である場合は、入力パケット中のデータを出力パケットの左オペランドデータに、待合せメモリから読出された待合せデータを出力パケットの右オペランドデータにそれぞれ設定する。一方、識別コードL/Rがコード“R”である場合は、出力パケット中の左/右オペランドデータの設定内容を、前述した入力パケットのコードL/Rが“L”の場合と逆にする。また、入力パケットの命令コード、世代番号およびノード番号は、そのまま出力パケットのフィールドF2、F3およびF4にそれぞれ設定される。このとき、待合せメモリ中の該指定アドレス領域に格納されたフラグVLDを“0”に設定する。
【0017】
待合せメモリ中の指定アドレス領域に格納されたフラグVLDが“1”であるが、入力パケットに格納された世代番号の非アドレス部が待合せメモリの該指定アドレス領域に書込まれている世代番号の非アドレス部と一致検出されなければ、入力パケットのスルーフラグSFが“1”に設定され、該入力パケットはそのまま出力される。
【0018】
データパケットPA中のスルーフラグSFは、通常の場合“0”に設定されているが、上述したように発火制御部6において入力パケットの世代番号の非アドレス部と待合せデータのそれとが一致しなければ、“1”に設定されることがある。図11に示される情報処理装置30の発火制御部6を除くすべての機能部では、フラグSFが“1”に設定されたデータパケットを入力した場合、該入力パケットに対しては何ら処理を行なわず、そのまま送出する。したがって、データパケットに格納されたスルーフラグSFが“1”に設定された後、“0”に設定(リセット)される場合は、発火制御部6においてデータ対が生成され、図12に示されるような左/右オペランドデータを格納したパケット構成にて発火制御部6から該パケットが出力される場合である。以下、この場合を発火と呼ぶ。
【0019】
図11において、発火制御部6から出力されたデータパケットは、演算部2に与えられる。演算部2はデータパケットを入力し、該入力パケットの命令コードを解読し、その解読結果に従って該入力データパケットに格納された左オペランドデータまたは右オペランドデータに対して所定の演算処理を施し、その演算結果を該入力データパケットのフィールドF6に書込んで、該入力パケットを送出する。演算部2から出力されたデータパケットは、分岐部3に与えられる。分岐部3は入力パケットのノード番号に基づいて該入力データパケットを情報処理装置30の外部または合流部4のいずれか一方に選択的に送出する。合流部4は情報処理装置30の外部または分岐部3から与えられるデータパケットを入力し、該入力パケットを先着順にプログラム記憶部5に送出する。
【0020】
このように、図12に示されるようなデータパケットがプログラム記憶部5→発火制御部6→演算部2→分岐部3→合流部4→プログラム記憶部5→…と巡回し続けることにより、プログラム記憶部5に記憶されたデータフロープログラムに基づく演算処理が進行する。
【0021】
【発明が解決しようとする課題】
上述した従来のプログラム記憶部5を用いたプログラムの実行制御方式では、コピーフラグCPYによるコピー処理動作、または定数フラグCNTによる定数データ処理動作があるか否かによってプログラムデータのフェッチ回数が異なるので、プログラム記憶部5のハードウェア回路を構成するうえでその機構(メカニズム)が煩雑になるという問題があった。この点を、図15を参照して説明する。
【0022】
図15に示されるようにプログラム記憶部5は、転送制御部51および52、入力および出力レジスタ53および54、メモリ制御部55、データフロープログラムを記憶するメモリ56、メモリ56から読出されたコピーフラグCPYおよび定数フラグCNTの状態を検出するフラグ検出部57を含む。転送制御部51は、合流部4からデータパケットが送出されたことを指示する転送パルスを受けると、入力レジスタ53に対して、合流部4からのデータを格納し同時に送出させるような制御パルスを与えるとともに、転送制御部52に対して転送パルスを与える。制御部52は転送パルスを入力すると、出力レジスタ54に対して、入力レジスタ53およびメモリ56からのデータを格納し同時に出力させるような制御パルスを与える。したがって、合流部4から送出されたデータパケットがプログラム記憶部5の入力レジスタ53に記憶されるとき、その直前に記憶されていたデータは次段以降の回路に送出されるとともに、出力レジスタ54に記憶されていたデータは、データパケットにして対データ検出部6へ送出される。
【0023】
合流部4から送出されたデータパケットは、入力レジスタ53に入力され、ここに一旦記憶された後、出力レジスタ54に与えられ、ここに記憶される。また、メモリ制御部55には、入力パケットのノード番号に基づくアドレス指定によりメモリ56から次位のプログラムデータを読出すように動作する。読出されたプログラムデータのうちフラグCPYおよびCNTはフラグ検出部57に与えられ、その他のデータは出力レジスタ54に与えられる。出力レジスタ54中に格納された入力パケットのデータのうち、命令コード、ノード番号および識別コードL/Rがメモリ56から読出された次のプログラムデータを用いて更新される。フラグ検出部57のフラグ検出の結果、メモリ56に対して2回目のフェッチ動作が必要ないと判定された場合は、出力レジスタ54中に格納されたデータパケットはそのまま発火制御部6へ送出される。
【0024】
フラグ検出部57のフラグ検出の結果、メモリ56に対して2回目のフェッチ動作が必要と判定された場合は、出力レジスタ54から1個目のデータパケットを発火制御部6へ出力すると同時に、転送制御部51に対しさらなる1つのデータパケットの生成を指示し、かつメモリ制御部55に対しメモリ56へのさらなる1回のメモリアクセスサイクルの生成を指示するフィードバック制御が行なわれる。このとき転送制御部51は合流部4から送出され入力レジスタ53に格納されたデータパケットを再度出力レジスタ54へ転送させる。これに並行してメモリ制御部55は直前の指定アドレスに続く次のアドレスからデータを読出すので、読出されたデータは出力レジスタ54に与えられ、ここで2個目のデータパケットが生成される。生成された2個目のデータパケットは転送制御部52の制御により、1個目のデータパケットに続いて発火制御部6へ送出される。このとき、プログラム記憶部5の出力側からみて、データパケットが淀みなく出力されるような構成にするためには、転送制御部51および52、ならびにメモリ制御部55のメカニズムが非常に複雑となる。
【0025】
また、前述したコピー処理動作または定数データ処理動作のため、プログラム記憶部5のプログラムメモリに格納されるデータフロープログラムのステップ数が最悪の場合、このメモリにおいて記憶可能な最大プログラムステップ数の半分に減少してしまう。このように、プログラムの内容に応じて格納可能なプログラムステップ数が変化するので、予め所望のプログラムデータのすべてがプログラムメモリに格納可能か否かを判別し、この判別結果に応じてプログラムデータを適宜分割するなどして処理せねばならず、実用性に劣るという問題があった。
【0026】
たとえば、今、プログラム記憶部5のプログラムメモリに格納可能な最大プログラムステップ数が256であったと想定する。
【0027】
Y=ai*X(ただし、ai:定数データ、Y:結果データ、X:入力変数データ)…(1)
上述の(1)の演算式を複数個用意しておき、入力変数データXに付加するノード番号を適宜変えることにより、複数個の演算式(1)のうち、いずれか1つの演算式が選択され結果が得られるといった演算手法がある。この場合、1つの式当りプログラムステップ数に関して演算命令*のために1ステップ、定数データaiのために1ステップの合計2ステップが必要なので、このプログラムメモリには式(1)を128個しか格納できない(最悪の事例)。
【0028】
一方、
Y=X*Z(ただし、Y、XおよびZ:結果データ)…(2)のように乗算の他に加算、減算などを複数種用意しておき、入力変数データX,Zに付加するノード番号を適宜変えることにより、複数種の演算の中から1つが選択され演算されるといった手法がある。この場合は、各式(2)に対して1ステップ必要とされるので、プログラムメモリには式(2)を256個格納できる(最良の事例)。
【0029】
したがって、上述の式(1)および(2)を混在したデータフロープログラムをプログラムメモリに記憶させる場合、定数データを有する式、すなわち上述の式(1)が幾つ含まれているかによりプログラムメモリに格納可能な式(1)および(2)の数が128〜256個の範囲で変動する。言い換えれば、上述の式(1)および(2)を含む複数個の式が記述されたデータフロープログラムをプログラムメモリに格納しようとする場合、該プログラム中に記述された各式について定数データを有するか否か調べないと、このプログラムがプログラムメモリに格納可能か否かを判別できないので、従来の情報処理装置は実用性に劣るという問題があった。
【0030】
さらに、2入力命令コードが格納されたパケットは、すべて発火制御部6の待合せメモリにおいて対となる一方のオペランドデータの待合せを行なわねばならず、無駄な手続となる場合があった。詳細には、2入力命令コードのうち、一方のオペランドデータが定数データである場合は、前述したように定数データを格納したデータパケットが、この定数データと対になるオペランドデータを格納したデータパケットに連続してプログラム記憶部5から読出されているにもかかわらず、待合せメモリに一旦は、オペランドデータを書込んで、直後に入力される定数データを待合せるよう処理されているので、言わば冗長な処理手続のために処理速度の高速化が妨げられるという問題があった。
【0031】
それゆえに、この発明の目的は、装置構成が簡単化されるとともにプログラムの実行速度向上を図ることが可能なデータ駆動型情報処理装置を提供することである。
【0032】
【課題を解決するための手段】
この発明に係るデータ駆動型情報処理装置は、少なくとも行先フィールド、命令フィールドおよびデータフィールドからなるデータパケットを用いてデータフロープログラムを実行する装置であり、記憶手段と、制御手段と、演算手段とを備えて構成される。
【0033】
記憶手段は、命令情報および行先情報を含むプログラムデータを格納するための複数のプログラム部と、各プログラム部のプログラムデータに対応した待合せデータを含む1つ以上のオペランドデータを格納するためのオペランド部と、プログラムデータおよびオペランドデータに関するコピー有無の指示を含む所定情報を格納するための情報部とを含む複数の領域を有する。
【0034】
制御手段は、前述のデータパケットを入力し、入力データパケットの行先フィールドの内容に基づいて記憶手段中の領域をアドレス指定し、該指定領域中の所定情報にかかわらず該指定領域中の各プログラム部に対応した複数のデータパケットを生成し、該指定領域中の情報部の所定情報に基づいて複数生成データパケットを出力しないまたは複数生成データパケットのうちから1つ以上を出力し残りがあれば消去する。制御手段により複数生成データパケットのうちから1つ以上が出力され残りがあれば消去されるとき、出力される各データパケットにおいては、制御手段により行先フィールドおよび命令フィールドには、該データパケットに対応のプログラム部のプログラムデータに含まれる行先情報および命令情報がそれぞれ書込まれるとともに、データフィールドには入力データパケットのデータフィールドの内容が書込まれ、さらに該指定領域のオペランド部にオペランドデータが格納されていることに応じて、該オペランドデータがデータフィールドの内容に付加して書込まれる。
【0035】
演算手段は、前述の制御手段より出力されるデータパケットを入力し、必要に応じて該入力データパケットの命令フィールドの内容に従って、該入力データパケットのデータフィールドの内容に対して所定演算処理を施し、その結果を該入力データパケットのデータフィールドに格納して出力するよう構成される。
【0036】
【作用】
この発明に係るデータ駆動型情報処理装置におけるプログラム実行時、制御手段は入力データパケットの行先フィールドの内容に基づくアドレス指定により記憶手段の対応の領域を指定して、この指定領域に格納される次位の複数のプログラムデータとこれらのプログラムデータにより処理されるべきオペランドデータを読出し、オペランドデータ対を格納した複数のデータパケットを生成し演算手段に与える。したがってこの1回の読出動作により従来の次位のプログラムを得るためのアクセス動作と待合せデータを得るためのアクセス動作とが単一化される。また、記憶手段の1回のアドレス指定によりオペランドデータ対を格納した複数のデータパケットを得ることができる、言い換えると従来の複数回のアドレス指定と複数回のオペランドデータ対検出のための待合せ処理とからなるコピー処理が、1回のアドレス指定によるプログラムフェッチで終了する。それゆえに、プログラム実行時の処理段数が大幅に減少してプログラム実行速度は向上する。
【0037】
さらに、記憶手段により従来のプログラムを記憶するための領域とオペランドデータを待合せるための領域が共有されるとともに、これらの記憶領域に関する周辺回路も単一化が可能となるので、該情報処理装置の構成が簡単化される。
【0038】
【実施例】
以下、この発明の第1ないし第3の実施例について図面を参照して詳細に説明する。
【0039】
各実施例に適用されるデータ駆動型情報処理装置においては従来のプログラム記憶部と発火制御部の機能が1つに統合されたプログラムの実行制御方式が採用される。
【0040】
図1は、この発明の第1ないし第3の実施例に適用されるデータ駆動型情報処理装置のブロック構成図である。
【0041】
図2は、この発明の第1ないし第3の実施例に適用される発火制御/プログラム記憶部のブロック構成図である。
【0042】
図1においてデータ駆動型情報処理装置10は発火制御/プログラム記憶部(以下、FCP制御部と呼ぶ)1、演算部2、分岐部3および合流部4を含む。
【0043】
演算部2、分岐部3および合流部4は、前述した図11の従来のそれらと同様の構成および機能を有するので、その詳細な説明は省略する。なお、このデータ駆動型情報処理装置10におけるデータパケットのフィールド構成も、図12に示されたものと同様であるので説明は省略する。
【0044】
FCP制御部1は、従来のデータフロープログラムを格納したプログラム記憶部および対となるオペランドデータを待合せるためのメモリを有する発火制御部の機能を備えるように構成され、さらに両機能によって共有される1つのメモリ空間を有する。
【0045】
図2にFCP制御部1のブロック構成が示される。FCP制御部1は転送制御部11〜13、FCPメモリ14、パケット消去部15、合流制御部16、セレクタ17、レジスタ18〜21を含む。
【0046】
レジスタ18〜21のそれぞれは、複数ビット幅のフリップフロップ回路からなる。転送制御部11〜13のそれぞれは、対応のレジスタ18〜21のそれぞれに対してその入力動作をクロックパルスCP1〜CP3のそれぞれを用いて制御するとともに、対応のレジスタに格納されているデータを次段以降の各回路に転送するための転送パルスTP1〜TP3のそれぞれを送出する。
【0047】
FCPメモリ14は、プログラムのための記憶領域と対となるオペランドデータを待合せるための待合せのための記憶領域とが共有されたメモリである。その詳細は後述するが、FCPメモリ14においては前述のコピー処理または定数データ処理があるか否かにかかわらずプログラムデータのフェッチ回数が常に1回であるように構成されている。1回のフェッチで、各々が有効か無効かに関わらず、常に2つのプログラムデータが読出される。読出されたプログラムデータの1つはレジスタ19に送出され、他の1つはレジスタ20に送出される。
【0048】
転送制御部12および13は対応のレジスタ19および20に対してクロックパルスCP2およびCP3をそれぞれ供給して与えられるデータを入力するよう制御する。転送制御部12および13はクロックパルスCP2およびCP3の送出と共に、転送パルスTP2およびTP3をそれぞれ送出する。
【0049】
レジスタ18に格納された入力データX、世代番号GN♯はレジスタ19および20にそのまま送出される。また、レジスタ18に格納されたノード番号ND♯と世代番号GN♯のアドレス部とに基づくアドレス指定によりFCPメモリ14から読出された次位の命令コードおよびノード番号は命令コードopcおよびノード番号ND♯にして格納される。また、メモリ14から読出された待合せデータは定数または待合せデータZにしてレジスタ19および20に記憶される。また、メモリ14から読出されたコピーフラグCPYはレジスタ19にのみ送出される。
【0050】
転送制御部12および13は転送制御部11から与えられる転送パルスTP1の入力に応答してクロックパルスCP2およびCP3をレジスタ19および20のそれぞれに与えるので、レジスタ19および20はレジスタ18およびメモリ14から与えられるデータを入力する。
【0051】
パケット消去部15は転送制御部12から与えられる転送パルスTP2を、レジスタ19にストアされたコピーフラグCPYのフラグの状態に応答して合流制御部16に与えるか否かを制御する。
【0052】
合流制御部16は非同期に与えられる転送パルスTP3およびTP2を入力し、応じて時系列に整序し、演算部2へ出力するとともにクロックパルスCP4をレジスタ21に送出する。この時、合流制御部16は演算部2およびレジスタ21へ出力された各パルスが、転送パルスTP2に応じたものか、転送パルスTP3に応じたものかの識別信号SLをセレクタ17に出力する。
【0053】
セレクタ17は、識別信号SLの状態に応じて、パルスTP3に対応した状態の場合はレジスタ20の出力データを選択しレジスタ21に出力する。パルスTP2に対応した状態の場合には、レジスタ19の出力データを選択しレジスタ21に出力する。
【0054】
合流制御部16は転送パルスTP3の入力に応答してクロックパルスCP4をレジスタ21に与える。レジスタ21はセレクタ17から送出されるレジスタ19または20にストアされていたデータを入力して送出するので、FCP制御部1からはレジスタ21に格納されたデータのそれぞれが所定のフィールドに格納されたデータパケットが出力される。
【0055】
このように本実施例によるFCP制御部1においては、FCPメモリ14(プログラムメモリ)に対する1回のフェッチ動作により、2個分のデータパケットが読出されるので、従来行なっていた1個目のデータパケットに引き続いて2個目のデータパケットを連続してフェッチするためのフィードバック制御は不要となる。また、データパケットのコピー有無の制御は、読出された2個のデータパケットのうち一方を、読出されたコピーフラグCPYに従って消去しない/消去するのフォアード制御で行なわれているので、FCPメモリ14からプログラムフェッチするためのメカニズムの実現は従来に比べ極めて容易となる。
【0056】
図3(a)〜(f)は、この発明の第1の実施例によるFCPメモリ14に記憶される内容の一部を示す図である。
【0057】
図3を参照して、FCPメモリ14には複数のプログラムワードが格納され、各プログラムワードは1組目のデータ、2組目のデータおよび世代番号の非アドレス部を格納する。1組目のデータは発火制御フラグVLD、コピーフラグCPY、定数フラグCNT、命令コード、ノード番号、左/右識別コードL/Rおよび定数データまたは待合せデータを格納する。2組目のデータは定数フラグCNT、命令コード、ノード番号、左/右識別コードL/Rおよび定数データまたは待合せデータを格納する。なお、各プログラムワード中“−”は無効データを意味する。
【0058】
第1の実施例においてFCPメモリ14に格納されるプログラムワードの内容は、該プログラムワードに格納されるコピーフラグCPYの状態、2個の定数フラグCNTの状態、および1個または2個の命令コードのそれぞれが1入力命令であるか2入力命令であるかにより分類される。これら分類のうち、図3(a)〜(f)には代表的な6種類のプログラムワードが示される。
【0059】
図3(a)は、「1入力命令」のプログラムワードであり、コピーフラグCPYと1組目の定数フラグCNTが共に“0”であり、1組目の命令コードが1入力命令の場合である。FCP制御部1に入力されるデータパケットの世代番号のアドレス部とノード番号とに基づいてFCPメモリ14をアドレス指定し、指定アドレスから該命令をフェッチした場合は、フェッチされた1組目のデータの命令コード、ノード番号および識別コードL/Rが該入力パケットのフィールドF2、F4およびF5のそれぞれに書込まれ、該入力パケットはFCP制御部1から送出される。このように、「1入力命令」の場合は、対オペランドデータを待合せる必要がないので、待合せ処理は行なわれない。
【0060】
図3(b)の「定数あり2入力命令」は、コピーフラグCPYが“0”であり、かつ1組目のデータの定数フラグCNTが“1”の場合である。この場合、1組目のデータの命令コードは、2入力命令に限られる。FCP制御部1に入力されたデータパケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該命令をフェッチした場合は、入力パケット中のオペランドデータとFCPメモリ14から読出された定数データとでオペランドデータ対が生成され、生成されたオペランドデータ対は入力パケット中のフィールドF6およびF7に書込まれて、該入力パケットが送出される。このとき、出力されるパケット中の左/右オペランドデータの値は、該入力パケット中の左/右識別コードL/Rが“L”である場合は、入力パケット中のオペランドデータを左オペランドデータにしてフィールドF6に格納し、FCPメモリ14から読出された定数データを右オペランドデータにしてフィールドF7に格納する。一方、入力パケットの識別コードL/Rが“R”の場合は、出力パケット中の左オペランドデータと右オペランドデータの設定を前述した“L”の場合と逆にする。また、出力パケット中の命令コード、ノード番号および左/右識別コードL/Rには、FCPメモリ14からフェッチされた1組目のデータ中の命令コード、ノード番号および左/右識別コードL/Rがそれぞれ設定される。なお、出力パケット中の世代番号は、入力パケット中の世代番号がそのまま設定される。
【0061】
このように、FCPメモリ14から「定数あり2入力命令」をフェッチするだけで、定数データを用いて発火したデータパケットが得られるので、従来行なわれていた定数データ処理のための2回のフェッチ動作、およびオペランドデータ対となる定数データを待合せメモリを介して待合せる動作が省略されることになる。
【0062】
図3(c)の「コピーあり命令」は、コピーフラグCPYが“1”であり、かついずれか一方の定数フラグCNTが“1”の場合である。この命令では、定数フラグCNTが“1”の組の命令コードは2入力命令に限られる。また、定数フラグCNTが“0”の組の命令コードは1入力命令に限られる。FCP制御部1に入力されるデータパケットの世代番号のアドレス部とノード番号とに基づくアドレス指定により、FCPメモリ14から該命令をフェッチした場合は、定数フラグCNTが“1”の組のデータに対しては、前述した図3(b)の「定数あり2入力命令」と同様の処理が行なわれる。また、定数フラグCNTが“0”の組のデータに対しては、前述した図3(a)の「1入力命令」と同様の処理が行なわれる。
【0063】
したがって、FCPメモリ14から該命令をフェッチするだけで、1入力命令を格納したデータパケットと定数データを用いて発火したデータパケットとの2つのデータパケットが同時に得られることになる。
【0064】
図3(d)の「定数なし2入力命令」は、コピーフラグCPYおよび1組目の定数フラグCNTが共に0の場合であり、かつ1組目の命令コードが2入力命令の場合である。この場合は、発火制御フラグVLDの状態により、FCP制御部1の処理内容が異なる。FCP制御部1に入力されるパケットの世代番号のアドレス部とノード番号とに基づくアドレス指定により、FCPメモリ14から読出されたフラグVLDが“0”の場合、入力パケット中のオペランドデータおよび世代番号の非アドレス部を、FCPメモリ14の該指定アドレス領域の1組目の待合せデータおよび世代番号の非アドレス部としてそれぞれ書込んだ後、対応のフラグVLDを“1”に設定する。このとき、FCP制御部1からはデータパケットは出力されない。
【0065】
FCPメモリ14中の該指定アドレス領域のフラグVLDが“1”である場合、入力パケットの世代番号の非アドレス部が該指定アドレス領域に書込まれている世代番号の非アドレス部と一致するかどうか判定する。一致すれば、入力パケット中のオペランドデータと該指定アドレス領域から読出された待合せデータとでデータ対が生成され、生成されたデータ対を格納したデータパケットが出力される。このとき、出力パケット中の左/右オペランドデータの値は、入力パケットの識別コードL/Rが“L”の場合は、入力パケット中のオペランドデータが出力パケット中のフィールドF6に左オペランドデータとして、FCPメモリ14から読出された待合せデータは出力パケットのデータフィールドF7に右オペランドデータとしてそれぞれ設定される。一方、入力パケット中の識別コードL/Rが“R”である場合は、出力パケット中の左/右オペランドデータの設定が前述した“L”の場合と逆に行なわれる。
【0066】
また、出力パケット中の命令コード、ノード番号および左/右識別コードL/Rは、フェッチされた1組目の命令コード、ノード番号および左/右識別コードL/Rを用いてそれぞれ書換えられる。また、出力パケット中の世代番号は、入力パケット中の世代番号がそのまま設定される。このとき、パケット出力と共に、FCPメモリ14の該指定アドレス領域のフラグVLDを0に設定する。
【0067】
一方、入力パケットの世代番号の非アドレス部がFCPメモリ14の該指定アドレス領域に格納された世代番号の非アドレス部と一致しなければ、該入力パケットのスルーフラグSFを1に設定し、該入力パケットをそのまま出力する。スルーフラグSFが“1”に設定されたデータパケットは、従来と同様に、FCP制御部1を除くすべての機能部では何ら処理されず、再びFCP制御部1に入力される。スルーフラグSFが“1”に設定されたデータパケットは、FCP制御部1においてデータ対が検出されると“0”にセット(リセット)されるが、それまではそのフラグ状態が維持されて各機能部を巡回する。
【0068】
したがって、FCPメモリ14から該命令をフェッチした場合には、まず該命令に格納されたフラグVLDの状態が判別されて、該判別結果に応じて発火したデータパケットが得られるか、または該メモリ14において発火パケットを生成するために対となるオペランドデータの入力を待合せるような処理が行なわれるので、FCP制御部1は従来のプログラム記憶部と発火制御部の両機能を兼ね備えることになる。
【0069】
図3(e)の「2入力命令(コピーあり)」は、コピーフラグCPYが“1”であり、かついずれの定数フラグCNTも“0”の場合である。この場合、2組の命令コードは共に2入力命令に限られる。FCP制御部1は入力パケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該命令をフェッチした場合、該命令に格納されたフラグVLDの状態をまず判別する。フラグVLDが“0”の場合、入力パケット中のオペランドデータおよび世代番号の非アドレス部を、FCPメモリ14の該指定アドレス領域に1組目の待合せデータおよび世代番号の非アドレス部として書込み、対応のフラグVLDを“1”に設定する。このとき制御部1からはデータパケットは出力されない。
【0070】
読出されたFCPメモリ14中のフラグVLDが“1”の場合、入力パケットの世代番号の非アドレス部がFCPメモリ14の該指定アドレス領域に書込まれている世代番号の非アドレス部と一致するか否かを判定する。一致すれば、入力パケット中のオペランドデータとFCPメモリ14から読出された待合せデータとからなるデータ対を格納した2個のデータパケットを出力する。このとき、両出力パケット中の左/右オペランドデータの値は、入力パケットの識別コードL/Rが“L”の場合は、入力パケット中のオペランドデータを出力パケットのフィールドF6に左オペランドデータにして、FCPメモリ14から読出された待合せデータを出力パケットのフィールドF7に右オペランドデータにしてそれぞれ設定する。一方、入力パケットの識別コードL/Rが“R”の場合は、出力パケットの左/右オペランドデータの設定が前述した“L”の場合と逆に行なわれる。
また、両出力パケット中の命令コード、ノード番号および識別コードL/Rには、フェッチされた1組目のデータおよび2組目のデータに格納された命令コード、ノード番号および識別コードL/Rがそれぞれ設定される。この2個のパケット出力時、FCPメモリ14中の該指定アドレス領域に対応のフラグVLDは“0”に設定される。
【0071】
一方、入力パケット中の世代番号の非アドレス部がFCPメモリ14の該指定アドレス領域に書込まれている世代番号の非アドレス部と一致しなければ、入力パケットのスルーフラグSFが“1”に設定されて、該入力パケットはそのまま出力される。以降の各処理部におけるスルーフラグSFが“1”に設定されたデータパケットの取扱いは、前述した図3(d)の場合と同様である。
【0072】
したがって、FCPメモリ14から該命令をフェッチした場合には、まず該命令に格納された発火制御フラグVLDの状態が判別されて、該判別結果に応じて発火検出され、同じオペランドデータ対を格納した異なる2つのデータパケットが同時に得られるか、または該メモリ14においてこの2つの発火パケットを生成するために対となるオペランドデータの入力を待合せるような処理が行なわれる。
【0073】
図3(f)の「定数なし2入力命令/定数あり命令混在」は、コピーフラグCPYが“1”であり、かついずれか一方の定数フラグCNTが“1”の場合である。2組の命令コードは共に2入力命令に限られる。FCP制御部1が入力パケットの世代番号のアドレス部とノード番号に基づくアドレス指定によりFCPメモリ14から該命令をフェッチした場合、まず該メモリに格納される発火制御フラグVLDが判別される。発火制御フラグVLDが“0”の場合、入力パケット中の世代番号の非アドレス部とオペランドデータとをFCPメモリ14の該指定アドレス領域の世代番号の非アドレス部と定数フラグCNTが0のデータ組の待合せデータとしてそれぞれ書込んだ後、対応のフラグVLDを“1”に設定する。このときFCP制御部1からはデータパケットは出力されない。
【0074】
FCPメモリ14の該指定アドレス領域に格納されたフラグVLDが“1”の場合、入力データパケットの非アドレス部は該指定アドレス領域に書込まれている世代番号の非アドレス部と一致するかどうか判定される。一致すれば、入力パケット中のオペランドデータとFCPメモリ14の該指定アドレス領域から読出された定数フラグCNTが“0”の組の待合せデータとで生成されたデータ対を格納したデータパケットが出力されるとともに、入力パケット中のオペランドデータとFCPメモリ14の該指定アドレス領域から読出された定数フラグCNTが“1”の組の定数データとで生成されたデータ対を格納したデータパケットが出力される。このとき、両出力パケット中の左/右オペランドデータの値は、入力パケットのコードL/Rが“L”の場合は、入力パケット中のオペランドデータは出力パケットのフィールドF6に左オペランドデータにして、FCPメモリ14の該指定アドレス領域から読出されたデータ(待合せデータまたは定数データ)を出力パケットのフィールドF7に右オペランドデータにしてそれぞれ設定する。一方、入力パケット中の識別コードL/Rが“R”の場合は、出力データパケットの左/右オペランドデータの設定を前述した“L”の場合と逆に行なう。
【0075】
また、両出力パケット中の命令コード、ノード番号および左/右識別コードL/Rのそれぞれは、フェッチされた対応の組のデータに格納された命令コード、ノード番号およびコードL/Rがそれぞれ設定される。また、両出力パケット中の世代番号は、入力パケット中の世代番号がそのまま設定される。この両出力パケットが生成されると、FCPメモリ14中の該指定アドレス領域に対応のフラグVLDは“0”に設定される。
【0076】
入力パケットの世代番号の非アドレス部がFCPメモリ14の該指定アドレス領域に書込まれている世代番号の非アドレス部と一致しなければ、入力パケットのスルーフラグSFが“1”に設定されて、出力される。スルーフラグSFが“1”に設定されたデータパケットに対する取扱いは、前述した「定数なし2入力命令」の場合と同様である。
【0077】
このようにFCP制御部1から出力されたデータパケットは演算部3に与えられ以降各処理部において処理される。
【0078】
このようにFCP制御部1を設けることにより従来のプログラム記憶機能とオペランドデータ対を待合せるための待合せ機能とがFCPメモリ14を介して統合されるので、従来のコピー処理動作または定数データ処理動作の有無にかかわらず、FCPメモリ14からのプログラムワードのフェッチ回数は常に1回でよい。また、このことは、プログラム内容(定数データ処理の有無、コピー処理の有無)にかかわらず、FCPメモリ14に格納可能なプログラムワード数、すなわちプログラムステップ数を常に一定とする。
【0079】
図4(a)〜(c)は、FCPメモリ14のアドレス指定方法とメモリにおけるプログラムの記憶形式を説明する図である。
【0080】
図5は、FCP制御部1に入力するデータパケットに格納された左/右識別コードL/Rを反転させるフラグを含むプログラムワード構成の1例を示す図である。
【0081】
図6(a)〜(d)は、この発明の第1の実施例において新たにサポートされる命令を説明する図である。
【0082】
上述した第1の実施例では、入力パケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14をアクセスしている。これは、データ駆動型情報処理装置に複数の異なる世代番号を格納したデータパケットを並列、かつ個別に処理するような場合において、データパケットに格納された世代番号の一部をこのメモリアクセスのためのアドレス部として用い、FCPメモリ14において消費されるプログラムワード記憶のための記憶領域を小さくするためである。仮に、FCPメモリ14の容量として、データフロープログラムの総ステップ(ワード)数と同時に実行される異なる世代番号の数の積の値よりも大きな容量を用意できれば、世代番号の一部を用いたアドレス指定を行なう必要はない。この場合は、図3に示された各プログラムワードから世代番号の非アドレス部を格納する領域を取り除くことができるので、1プログラムワード当りのサイズ(幅)を小さくできるとともに、FCPメモリ14の各プログラムワードに入力パケットの世代番号の非アドレス部を書込む必要がなく、さらにオペランドデータ対を検出するための世代番号の非アドレス部を用いた一致検出を行なう必要がなくなり、FCP制御部1の実行制御方式はさらに容易となる。
【0083】
たとえばFCP制御部1の入力パケットに格納されたノード番号のビット幅が4ビット、世代番号のビット幅が2ビットの場合を考える。図4(a)に示されるようにFCPメモリ14アクセスのためのアドレスとして、入力パケットのノード番号と世代番号すべてが用いられた場合、FCPメモリ14には、異なる世代番号のそれぞれについて4ビットのノード番号を用いてアクセス可能な16プログラムワードからなるプログラムデータを個別に記憶する必要がある。この場合は、FCPメモリ14において少なくとも64プログラムワード分の記憶容量を準備する必要があるが、世代番号の一部(非アドレス部)を用いた対データ検出処理は不要なので、各プログラムワードサイズ(幅)は図3に示されたそれよりも小さくすることができる。
【0084】
図4(b)に示されるように、FCPメモリアクセスのためのアドレスとして入力パケットのノード番号と世代番号のアドレス部(1ビット)を用いた場合は、異なる世代番号のアドレス部のそれぞれについて16ワードからなるプログラムデータを個別に記憶するので、FCPメモリ14においては少なくとも32プログラムワード分の記憶容量を備える必要がある。この場合に記憶されるプログラムワード数は、前述した図4(a)に示されたそれの半分に縮小される。
【0085】
また、図4(c)に示されるように、FCPメモリ14アクセスのためのアドレスとして入力データパケットのノード番号のみが用いられた場合、複数の異なる世代番号のそれぞれについてノード番号(4ビット)を用いてアクセスされるプログラムのみを記憶すればよい。このような場合は、FCPメモリ14はプログラム記憶容量として図4(a)のそれの1/4倍を備えるだけでよい。ただし、異なる世代番号を有した複数のデータパケット同士で同一ノード番号のプログラムデータに関する処理が要求されても、1パケットずつ順に処理されることになる。
【0086】
図3(a)〜(f)に示されたプログラムワードの1組目または2組目の命令コード、ノード番号、識別コードL/R、定数/待合せデータに対して入力パケットのオペランドデータの左右属性を反転させるか否かを示すフラグSWPを図5に示すように設けることもできる。このフラグSWPにより、対データ検出されて生成される出力パケットのうち、SWPフラグの値が“1”に対応の出力パケットの左オペランドデータと右オペランドデータが交換される。フラグSWPの値が“0”の場合は、フラグSWPを設けていない場合と全く同様に動作する。
【0087】
図6(a)〜(d)を参照し、この発明の第1の実施例により新たにサポートされる命令を、従来の対応の命令と比較して説明する。
【0088】
図6(a)に示されるようにオペランドデータ対が共通である異なる2つの命令コードを実行する場合は、従来は命令コード“NOP”、命令コード“+”および命令コード“−”の3つの命令コードを用いるためにプログラム記憶部を3回フェッチする必要があったが、本実施例では命令コード“+”および命令コード“−”が1プログラムワードに格納されているので、1回のフェッチで該命令コードを実行することができる。
【0089】
また、図6(b)および(c)に示されるように一方のオペランドデータのみが共通である異なる2つの命令コードを実行する場合、従来は3回の命令フェッチが必要であったが、本実施例では1回の命令フェッチでよい。また、図6(d)に示されるように、一方のオペランドデータの左右属性を反転する際は、従来は3回の命令フェッチが必要であったが、本実施例では左右属性反転フラグSWPを設けることにより1回の命令フェッチですむ。
【0090】
以上のように図6(a)〜(d)に示されるように従来は同じ処理内容を実行する際に少なくとも3プログラムステップ数必要であったものが、本実施例によれば1プログラムステップ数に短縮される。
【0091】
次に、第2の実施例について説明する。
第2の実施例によるデータ駆動型情報処理装置は、FCPメモリ14に格納されるプログラムワードの構成が第1の実施例のそれとは異なるだけであり、その他の構成および動作は第1の実施例のそれと同様である。
【0092】
図7(a)〜(f)は、この発明の第2の実施例によるFCPメモリ14に格納される記憶内容の一部を示す図である。
【0093】
図8(a)〜(e)は、この発明の第3の実施例によるFCPメモリ14に格納される記憶内容の一部を示す図である。
【0094】
図7を参照し、FCPメモリ14には複数のプログラムワードが格納される。各プログラムワードは1組目のデータ、2組目のデータ、定数データまたは待合せデータ、発火制御フラグVLDおよび世代番号の非アドレス部を含む。1組目のデータはさらに定数フラグCNT、コピーフラグCPY、命令コード、ノード番号および左/右識別コードL/Rを含む。2組目のデータはさらに命令コード、ノード番号および左/右識別コードL/Rを含む。FCPメモリ14に格納されるプログラムワードの内容は、定数フラグCNT、コピーフラグCPYおよび命令コードによって複数種類に分類されるが、図7(a)〜(f)にはその代表的なプログラムワードが記される。なお、図中、“−”は無効データを示す。
【0095】
図7(a)の「1入力命令」は、定数フラグCNT、コピーフラグCPYが共に“0”であり、かつ命令コードが1入力命令の場合である。FCP制御部1に入力されるデータパケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該命令をフェッチした場合は、フェッチされた命令コード、ノード番号および識別コードL/Rを該入力パケットの所定フィールドに書込み、該入力パケットを出力する。
【0096】
図7(b)の「コピーあり1入力命令」は、定数フラグCNTが“0”であり、コピーフラグCPYが“1”であり、かつ1組目および2組目のデータに格納された命令コードが共に1入力命令の場合である。FCP制御部1に入力されるデータパケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該命令をフェッチした場合は、2個のパケットが出力される。出力パケットのうち一方のパケットは、フェッチされた1組目の命令コード、ノード番号およびコードL/Rを入力パケットの対応のフィールドにそれぞれ格納したものであり、他方の出力パケットはフェッチされた2組目の命令コード、ノード番号およびコードL/Rを入力パケットの対応のフィールドにそれぞれ格納したものである。
【0097】
これにより、同じオペランドデータを有した異なる2つのデータパケットを、FCPメモリ14の1回のフェッチ動作により同時に得ることができる。
【0098】
図7(c)の「定数あり2入力命令」は、定数フラグCNTが“1”、コピーフラグCPYが“0”の場合である。この場合の命令コードは2入力命令に限られる。FCP制御部1に入力されるデータパケット中の世代番号のアドレス部とノード番号とに基づくアドレス指定により、FCPメモリ14から該命令をフェッチした場合は、入力パケット中のオペランドデータとFCPメモリ14から読出された定数データとでデータ対を生成し、生成されたデータ対を格納したデータパケットを出力する。このとき、出力パケット中の左/右オペランドデータの値は、入力パケットの識別コードL/Rが“L”の場合は、入力パケット中のオペランドデータを出力パケットのフィールドF6に左オペランドデータにして、FCPメモリ14から読出された定数データを出力パケットのフィールドF7に右オペランドデータにしてそれぞれ設定する。入力パケット中のコードL/Rが“R”の場合は、出力パケットの左/右オペランドデータの設定を前述した“L”の場合と逆にする。また、出力パケット中の命令コード、ノード番号および識別コードL/Rは、フェッチされた命令コード、ノード番号および識別コードL/Rが設定され、また出力パケットの世代番号は入力パケット中の世代番号がそのまま設定される。
【0099】
このように定数データを用いた2入力命令がFCPメモリ14から読出されるとき、1回のプログラムフェッチにより、発火が検出されて、対オペランドデータを格納したデータパケットを得ることができる。
【0100】
図7(d)の「定数あり2入力命令(コピーあり)」は、定数フラグCNTおよびコピーフラグCPYが“1”の場合である。この場合の命令コードは、2組の命令コードのうち少なくとも一方が2入力命令に限られる。FCP制御部1に入力されるデータパケットに格納された世代番号のアドレス部とノード番号とに基づくアドレス指定により、FCPメモリ14から該命令をフェッチした場合は、入力パケット中のオペランドデータとFCPメモリ14の該指定アドレス領域から読出された定数データとでオペランドデータ対が生成され、生成されたオペランドデータ対を格納した2つのデータパケットが出力される。このとき、両出力パケット中の左/右オペランドデータの値は、入力パケットの識別コードL/Rが“L”の場合は、入力パケット中のオペランドデータを各出力パケットのフィールドF6に左オペランドデータとして、FCPメモリ14の該指定アドレス領域から読出された定数データを各出力パケットのフィールドF7に右オペランドデータとしてそれぞれ設定する。一方、入力パケット中のコードL/Rが“R”の場合は、各出力パケットの左/右オペランドデータの設定を前述した“L”の場合と逆に行なう。また、両出力パケットのうち、一方の出力パケットの命令コード、ノード番号およびコードL/Rにはフェッチされた一方の組の命令コード、ノード番号およびコードL/Rをそれぞれ設定し、他方の出力パケットの命令コード、ノード番号およびコードL/Rにはフェッチされた他方の組の命令コード、ノード番号およびコードL/Rをそれぞれ設定する。また、両出力パケットの世代番号は入力パケット中の世代番号がそのまま設定される。
【0101】
このように、同じオペランドデータ対(定数データを含む)を有する異なる2つのデータパケットが、FCPメモリ14の1回のフェッチ動作により同時に得ることができる。
【0102】
図7(e)の「定数なし2入力命令」は、定数フラグCNTおよびコピーフラグCPYが共に“0”の場合であり、かつ命令コードが2入力命令の場合である。FCP制御部1に入力されるデータパケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該メモリがフェッチされた場合、まずフラグVLDの状態が判定される。フラグVLDが“0”の場合、入力パケット中のオペランドデータと世代番号の非アドレス部がFCPメモリ14の該指定アドレス領域に待合せデータおよび世代番号の非アドレス部としてそれぞれ書込まれた後、対応のフラグVLDは“1”に設定される。このとき、FCP制御部1からはデータパケットは出力されない。
【0103】
FCPメモリ14の該指定アドレス領域のフラグVLDが“1”の場合は、まず、入力パケットの世代番号の非アドレス部が該指定アドレス領域に書込まれている世代番号の非アドレス部と一致するかどうか判定される。一致すれば、入力パケット中に格納されていたオペランドデータと該指定アドレス領域から読出された待合せデータとでデータ対が生成され、生成されたデータ対を格納したデータパケットが出力される。このとき、出力パケット中の左/右オペランドデータの値は、入力パケットのコードL/Rが“L”の場合は、入力パケット中のオペランドデータを出力パケットのフィールドF6に左オペランドデータとして、FCPメモリ14の該指定アドレス領域から読出された待合せデータを出力パケットのフィールドF7に右オペランドデータとしてそれぞれ設定する。一方、入力パケットのコードL/Rが“R”の場合は、出力パケットの左/右オペランドデータの設定を前述した“L”の場合と逆に行なう。また、出力パケット中の命令コード、ノード番号および識別コードL/Rは、FCPメモリ14からフェッチされた命令コード、ノード番号および識別コードL/Rがそれぞれ設定される。
また、出力パケットの世代番号には入力パケット中の世代番号がそのまま設定される。この出力パケット送出時、FCPメモリ14中の該指定アドレス領域に格納されたフラグVLDは“0”に設定される。
【0104】
入力パケットの世代番号の非アドレス部がFCPメモリ14の該指定アドレス領域に書込まれている世代番号の非アドレス部と一致しなければ、入力パケットのスルーフラグSFを“1”に設定して該入力パケットをそのまま出力する。スルーフラグSFが“1”に設定されたデータパケットは、以降の各処理部では何ら処理されず、再びFCP制御部1に入力する。スルーフラグSFが“1”に設定されたデータパケットは、FCP制御部1において対となるオペランドデータが検出されると“0”にセット(リセット)されるが、それまで、そのスルーフラグは“1”のままデータ駆動型情報処理装置を巡回することになる。
【0105】
このように、FCPメモリ14の1プログラムワードのための領域を従来の1プログラムデータを記憶するための領域と対となるオペランドデータを待合せるための領域とに兼用して、FCPメモリ14からのプログラムデータのフェッチ動作は1回で済まされる。
【0106】
図7(f)の「コピーあり2入力命令」は、定数フラグCNTが“0”で、コピーフラグCPYが“1”の場合であり、かつ格納される2組の命令コードのうち少なくとも一方が2入力命令の場合である。FCP制御部1は入力パケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14からプログラムワードをフェッチする。フェッチされたプログラムワード中のフラグVLDが“0”の場合、入力パケット中のオペランドデータと世代番号の非アドレス部がFCPメモリ14の該指定アドレス領域に待合せデータおよび世代番号の非アドレス部としてそれぞれ書込まれた後、対応のフラグVLDが“1”に設定される。このとき、FCP制御部1からはデータパケットは出力されない。
【0107】
フェッチされたプログラムワードに格納されるフラグVLDが“1”の場合、入力パケット中の世代番号の非アドレス部がフェッチされたプログラムワードに含まれる世代番号の非アドレス部と一致するか否か判定される。一致すれば、入力パケット中のオペランドデータとフェッチされたプログラムワードに格納される待合せデータとでデータ対が生成され、生成されたオペランドデータ対を格納した異なる2つのデータパケットが出力される。このとき、両出力パケット中の左/右オペランドデータの値は、入力パケット中のコードL/Rが“L”の場合は、入力パケット中のオペランドデータが各出力パケットのフィールドF6に左オペランドデータとして、フェッチされたプログラムワードに格納される待合せデータが各出力パケットのフィールドF7に右オペランドデータとしてそれぞれ設定される。一方、入力パケット中のコードL/Rが“R”の場合は、各出力パケットにおける左/右オペランドデータの設定が前述した“L”の場合と逆に行なわれる。また、両出力パケットのうち一方の出力パケット中の命令コード、ノード番号および識別コードL/Rは、フェッチされたプログラムワードの1組目のデータに格納された命令コード、ノード番号およびコードL/Rがそれぞれ設定され、他方の出力パケットの命令コード、ノード番号およびコードL/Rには、フェッチされたプログラムワードの2組目のデータに格納された命令コード、ノード番号およびコードL/Rがそれぞれ設定される。また、両出力パケットの世代番号は、入力パケット中の世代番号がそのまま設定される。両出力パケット送出時、FCPメモリ14中の該指定アドレス領域に格納されたフラグVLDは“0”に設定される。
【0108】
入力パケットの世代番号の非アドレス部がフェッチされたプログラムワードに格納される世代番号の非アドレス部と一致しなければ、入力パケットのスルーフラグSFは“1”に設定されて、該入力パケットはそのまま出力される。スルーフラグSFが“1”に設定されたデータパケットに対する処理は、前述した「定数なし2入力命令」と同様である。
【0109】
このように、第2の実施例に従うプログラム実行制御方式によれば、前述した第1の実施例と同様に従来のプログラム記憶部と発火制御部の機能が統合され、プログラム記憶のための記憶領域とオペランドデータ対を待合せるための記憶領域とがFCPメモリ14を用いて共有される。
【0110】
この実施例においても、前述した第1の実施例と同様に入力パケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14はアクセスしている。これは、データ駆動型情報処理装置に複数の異なる世代番号を格納したデータパケットを同時にかつ個別に処理するような場合に、世代番号の非アドレス部を用いてメモリ14におけるプログラムワードの記憶容量を節約するためである。仮に、FCPメモリ14のサイズとしてプログラムの総ステップ数と同時に実行され得る世代番号の数の積よりも大きな記憶容量を用意できれば、世代番号の非アドレス部を用いた一致検出を行なう必要はない。したがって、図7の各プログラムワードから世代番号の非アドレス部を格納するための領域を取り除いたようなプログラムワードとすることも可能である。この場合は、FCPメモリ14の1プログラムワード当りのサイズ(幅)を小さくできるとともに、FCPメモリ14に入力パケットの世代番号の非アドレス部を書込む必要はなく、さらに世代番号の非アドレス部を用いてデータ対を検出するための処理を行なう必要がなくなり、FCP制御部1における実行制御方式はより簡単になる(図4参照)。
【0111】
また、この実施例に示された実行制御方式に従ってプログラムを処理すると、図6(a)に示されたような2つの異なる命令コードに対して同じ定数データを用いた演算を行なう場合、従来は3プログラムワード必要とされていたが、本実施例では1プログラムワードにてプログラムを処理することができるようになる。さらに、FCPメモリ14に格納される各プログラムワードの1組目または2組目の命令コード/ノード番号の対に対して、入力パケットに格納されるオペランドデータの左右属性を反転させるか否かを示すフラグSWPを設けることも可能である。このフラグSWPは、たとえば図7に示される1プログラムワードの1組目の命令コードの先頭1ビットまたは2組目の命令コードの先頭1ビットに格納される。
【0112】
図9には、第2の実施例において、左右属性反転フラグSWPを用いることにより実現される命令の一例が示される。図7(d)の「定数あり2入力命令(コピーあり)」あるいは、図7(f)の「コピーあり2入力命令」の場合において、該プログラムワードの2組目のデータに対して設けられたフラグSWPの値が“1”である場合、生成される2個の出力パケットのうち、該プログラムワードの2組目のデータに関して出力されるデータパケットのオペランドデータ対に関して、左オペランドデータと右オペランドデータが交換される。一方、フラグSWPが“0”の場合は、フラグSWPを設けていない場合と全く同様に動作する。図9では、フェッチされたプログラムワードの2組目のデータに対するフラグSWPを例示したが、該プログラムワードの1組目のデータに関するフラグSWPについても同様のことがいえる。
【0113】
次に第3の実施例について説明する。
第3の実施例によるデータ駆動型情報処理装置は、そのFCPメモリ14に格納されるプログラムワードの構成が第1および第2の実施例のそれとは異なるだけであり、その他の構成および動作は第1および第2の実施例のそれと同様である。
【0114】
図8を参照して、第3の実施例に係るFCPメモリ14に格納される各プログラムワードは、1組目のデータ、2組目のデータ、定数データまたは待合せデータ、発火制御フラグVLDおよび世代番号の非アドレス部を含む。1組目のデータは定数フラグCNT、コピーフラグCPY、命令コード、ノード番号および左/右識別コードL/Rを含み、2組目のデータはノード番号および左/右識別コードL/Rを含む。各プログラムワードに格納される内容は、定数フラグCNTの状態、コピーフラグCPYの状態および命令コードが1入力命令であるか2入力命令であるかによって複数種類に分類される。図8(a)〜(e)には、各種組合せのうち、代表的な5種類の場合が示される。なお、図中、“−”は無効データを示す。
【0115】
図8(a)の「1入力命令」は、定数フラグCNTおよびコピーフラグCPYが共に“0”であり、かつ命令コードが1入力命令の場合である。FCP制御部1は入力パケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該メモリをフェッチした場合は、該命令の1組目のデータに格納された命令コード、ノード番号および識別コードL/Rを入力パケットの所定フィールドにそれぞれ書込み、該パケットを出力する。
【0116】
図8(b)の「コピーあり1入力命令」は、定数フラグCNTが“0”であり、かつコピーフラグCPYが“1”であり、命令コードが1入力命令の場合である。FCP制御部1は入力パケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該命令をフェッチした場合は、2個の出力パケットが生成された後送出される。両出力パケットにはフェッチされた命令コード、入力パケット中の世代番号および入力パケット中のオペランドデータがそれぞれ書込まれる。また、両出力パケットのうち一方の出力パケットにはフェッチされた命令の1組目のデータに格納されたノード番号およびコードL/Rが書込まれ、他方の出力パケットにはフェッチされた命令の2組目のデータに格納されたノード番号およびコードL/Rが書込まれる。
【0117】
図8(c)の「定数あり2入力命令」は、定数フラグCNTが“1”であり、かつコピーフラグCPYが“0”の場合である。この場合の命令コードは2入力命令に限られる。FCP制御部1が入力パケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該命令をフェッチした場合は、入力パケット中のオペランドデータとフェッチされた定数データとでオペランドデータ対が生成され、生成されたオペランドデータ対を格納したデータパケットが送出される。このとき、出力パケット中の左/右オペランドデータの値は、入力パケット中のコードL/Rが“L”の場合は、入力パケット中のオペランドデータが出力パケットのフィールドF6に左オペランドデータとして、FCPメモリ14からフェッチされた定数データを出力パケットのフィールドF7に右オペランドデータとしてそれぞれ設定する。一方、入力パケットのコードL/Rが“R”の場合は、出力パケットの左/右オペランドデータの設定は前述した“L”の場合と逆に行なわれる。また、出力パケット中の命令コード、ノード番号および識別コードL/Rは、フェッチされた1組目のデータの命令コード、ノード番号および識別コードL/Rが設定され、出力パケット中の世代番号には入力パケット中の世代番号がそのまま設定される。
【0118】
このように入力パケットを用いて該命令をフェッチすれば、次位の命令がフェッチされると同時に、フェッチされた定数データと入力パケットのオペランドデータとのオペランドデータ対も検出されるので、従来のように定数データ処理のために2回のフェッチ動作を行なう必要はない。
【0119】
図8(c)の「定数あり2入力命令(コピーあり)」は、定数フラグCNTおよびコピーフラグCPYが“1”である。この場合の命令コードは2入力命令に限られる。FCP制御部1は入力パケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該命令をフェッチした場合は、入力パケット中のオペランドデータとFCPメモリ14からフェッチされた定数データとでオペランドデータ対が生成され、生成されたオペランドデータ対を格納した2つのデータパケットがFCP制御部1から出力される。このとき、両出力パケット中の左/右オペランドデータの値は、入力パケット中のコードL/Rが“L”の場合は、入力パケット中のオペランドデータが両出力パケットのフィールドF6に左オペランドデータとして、FCPメモリ14からフェッチされた定数データが両出力パケットのフィールドF7に右オペランドデータとしてそれぞれ設定される。入力パケットのコードL/Rが“R”の場合は、両出力パケットの左/右オペランドデータの設定は前述した“L”の場合とは逆に行なわれる。また、両出力パケットの命令コードには、フェッチされた命令コードが書込まれる。また、両出力パケットのうち一方の出力パケットにはフェッチされた命令の1組目のデータに格納されたノード番号および識別コードL/Rが書込まれ、他方の出力パケットにはフェッチされた命令の2組目のデータに格納されたノード番号および識別コードL/Rが書込まれる。また、両出力パケットの世代番号は入力パケット中の世代番号がそのまま設定される。
【0120】
このように該命令をフェッチすることにより、定数データを含む同じオペランドデータ対を格納した異なる2つのデータパケットを同時に生成し出力することができる。したがって、従来のような定数データ処理のための2回のフェッチ動作およびコピー処理のための2回のフェッチ動作は行なわれない。
【0121】
図8(e)の「2入力命令」は、定数フラグCNTおよびコピーフラグCPYが“0”であり、かつ命令コードが2入力命令の場合である。FCP制御部1は入力パケットの世代番号のアドレス部とノード番号とに基づくアドレス指定によりFCPメモリ14から該命令をフェッチした場合、まず発火制御フラグVLDの状態を判定する。フェッチされた発火制御フラグVLDが“0”の場合、入力パケット中のオペランドデータと世代番号の非アドレス部がFCPメモリ14中の該指定アドレス領域の待合せデータおよび世代番号の非アドレス部としてそれぞれ書込まれ、対応の発火制御フラグVLDが“1”に設定される。このとき、FCP制御部1からはデータパケットは出力されない。
【0122】
FCPメモリ14からフェッチされたフラグVLDが“1”の場合、入力パケット中の世代番号の非アドレス部がフェッチされた世代番号の非アドレス部と一致するかどうか判定される。一致すれば、入力パケット中のオペランドデータとフェッチされた待合せデータとでオペランドデータ対が生成され、生成されたオペランドデータ対を格納したデータパケットが出力される。このとき、出力データパケット中の左/右オペランドデータの値は、入力パケット中の識別コードL/Rが“L”の場合は、入力パケット中のオペランドデータが出力パケットのフィールドF6に左オペランドデータとして、フェッチされた待合せデータが出力パケットのフィールドF7に右オペランドデータとしてそれぞれ設定される。一方、入力パケット中のコードL/Rが“R”の場合は、出力パケット中の左/右オペランドデータの設定が前述した“L”の場合と逆に行なわれる。また、出力パケット中の命令コード、ノード番号および識別コードL/Rは、フェッチされた1組目のデータに格納された命令コード、ノード番号および識別コードL/Rがそれぞれ設定され、出力パケット中の世代番号は入力パケット中の世代番号がそのまま設定される。このとき、パケット出力と共にFCPメモリ14中の該指定アドレス領域に格納されるフラグVLDを“0”に設定する。
【0123】
入力パケットの世代番号の非アドレス部がフェッチされた世代番号の非アドレス部と一致しなければ、入力パケットのスルーフラグSFを“1”に設定して、該入力パケットをそのまま出力する。スルーフラグSFが“1”に設定されたデータパケットは、FCP制御部1を除くすべての処理部では処理されず、再びFCP制御部1に入力する。FCP制御部1においてオペランドデータ対が生成されると、該入力パケットのスルーフラグSFは“1”から“0”に設定されるが、FCP制御部1においてオペランドデータ対が生成されない間は、該入力パケットはそのスルーフラグSFが“1”に設定されたまま該装置の各処理部を巡回し続ける。
【0124】
このように該命令を記憶した領域をそのままオペランドデータ対を待合せるための領域として用いることができる。
【0125】
また、この実施例においても、前述した図4(a)〜(c)と同様のことが指摘され、仮に、FCPメモリ14の記憶容量としてデータフロープログラムのプログラムワード数と同時に実行され得る世代番号の数の積よりも大きな記憶容量を準備することができれば、図8に示された各プログラムワードから世代番号の非アドレス部を格納するための領域を取り除いたワード構成となる。この場合は、FCPメモリ14中の各プログラムワードのサイズを小さくできるとともに、FCPメモリ14に入力パケットの世代番号の非アドレス部を書込む必要がなく、しかもオペランドデータ対を検出するための世代番号の非アドレス部を用いた一致検出を行なう必要がなくなり、FCP制御部1の実行制御方式はさらに簡単になる。
【0126】
図10は、第3の実施例において左右属性反転フラグSWPを用いることにより実現される命令の1例を示す図である。
【0127】
図8に示された各プログラムワードの1組目のデータまたは2組目のデータに対して、入力データパケットに格納されたオペランドデータの左右属性を反転させるか否かを示すフラグSWPのためのビットを設けることにより、図10に示されるような命令を実行することも可能である。図10には図8(d)の「定数あり2入力命令(コピーあり)」の場合が示される。図10において2組目のデータに格納されたノード番号および識別コードL/Rに対して設けられたフラグSWPの値が“1”の場合、該命令をフェッチすることにより生成される2個の出力パケットのうち、一方の出力パケットのオペランドデータ対の左オペランドデータと右オペランドデータが交換される。フラグSWPの値が“0”の場合は、フラグSWPを設けていない場合と全く同様に動作する。このフラグSWPのためのビットは、たとえば図8の各プログラムワードの1組目または2組目のノード番号の上位1ビットに設定されるようにすればよい。図10では、出力パケットの一方のデータパケットに関するオペランドデータの交換が行なわれるようにしたが、両出力パケットの左オペランドデータと右オペランドデータが交換されるようにフラグSWPを設定してもよい。
【0128】
上述した第1ないし第3の実施例のそれぞれにおける各プログラムワード構成は、サポート可能な命令の種類と、各プログラムワードの幅に依存して決定される。図6に示された命令をサポート(処理)できるか否かに着目して、各実施例のプログラムワード構成を比較した場合、第1の実施例(図3参照)のそれは、これら命令をすべてサポートでき、第2の実施例(図7参照)のそれは図6(a)に示された命令のみサポートでき、さらに第3の実施例(図8参照)のそれによれば、1回の命令フェッチで2つの異なる命令コードを処理することは不可能なので、図6に示された命令は全くサポートできない。したがって、この点に着目すれば、第1の実施例のプログラムワード構成が最良であり、第3の実施例のそれが最悪となる。
【0129】
一方、プログラムワード幅に着目すれば、第1の実施例のプログラムワード構成が最大ワード幅を必要とするのに対し、第3の実施例のそれが最小ワード幅でよいので、第1の実施例のそれが最悪であり、第3の実施例のそれが最良となる。
【0130】
したがって、これら2つの着目点は各実施例に示されたプログラム実行制御方式のいずれを採用するかを決定する際の1つの目安となり得る。
【0131】
【発明の効果】
この発明に係るデータ駆動型情報処理装置によれば記憶手段においてデータフロープログラム記憶用のメモリ空間とオペランドデータ待合せ用のメモリ空間とが併合されるとともに、これら各メモリ空間をアクセスするための周辺回路も単一化されるので、該装置の構成が簡単化されるとともに、該装置におけるプログラム実行処理段数を減少させてプログラムの実行速度を高速化できる。
また、制御手段によりアドレス指定され得る記憶手段の各領域からは複数のプログラムデータが読出され、制御手段は読出された各プログラムデータに対応してデータパケットを生成し出力するので、記憶手段の1回のアドレス指定領域から複数のプログラムデータを読出すことができる、言い換えると従来の複数回のアドレス指定と複数回のオペランドデータ対検出のための待合せの処理とからなるコピー処理が、1回のアドレス指定によるプログラムデータ読出により終了するから、プログラムデータの読出回数が低減され、その分解装置におけるプログラム実行時間を短縮できるという効果がある。
【図面の簡単な説明】
【図1】この発明の第1ないし第3の実施例に適用されるデータ駆動型情報処理装置のブロック構成図である。
【図2】この発明の第1ないし第3の実施例に適用される発火制御/プログラム記憶部のブロック構成図である。
【図3】(a)〜(f)は、この発明の第1の実施例によるFCPメモリに記憶される内容の一部を示す図である。
【図4】(a)〜(c)は、FCPメモリのアドレス指定方法とメモリにおけるプログラムの記憶形式を説明する図である。
【図5】FCP制御部に入力するデータパケットに格納された左/右識別コードL/Rを反転させるフラグを含むプログラムワード構成の一例を示す図である。
【図6】(a)〜(d)は、この発明の第1の実施例において新たにサポートされる命令を説明する図である。
【図7】(a)〜(f)は、この発明の第2の実施例によるFCPメモリに格納される記憶内容の一部を示す図である。
【図8】(a)〜(e)は、この発明の第3の実施例においてFCPメモリに格納される記憶内容の一部を示す図である。
【図9】第2の実施例において左右属性反転フラグSWPを用いることにより実現される命令の一例を示す図である。
【図10】第3の実施例において左右属性反転フラグSWPを用いることにより実現される命令の一例を示す図である。
【図11】従来のデータ駆動型情報処理装置のブロック構成の一例を示す図である。
【図12】従来およびこの発明の実施例に適用される情報処理装置を巡回するデータパケットのフィールド構成図である。
【図13】図11のプログラム記憶部の記憶内容の一部を示す図である。
【図14】図11の発火制御部の待合せメモリの記憶内容の一部を示す図である。
【図15】図11のプログラム記憶部のプログラム読出のための機構を示すブロック図である。
【符号の説明】
1 発火制御/プログラム記憶部(FCP制御部)
2 演算部
3 分岐部
4 合流部
10 データ駆動型情報処理装置
PA データパケット
SF スルーフラグ
L/R 左/右識別コード
SWP 左右属性反転フラグ
なお、各図中、同一符号は同一または相当部分を示す。
Claims (1)
- 少なくとも行先フィールド、命令フィールドおよびデータフィールドからなるデータパケットを用いてデータフロープログラムを実行するデータ駆動型情報処理装置において、
命令情報および行先情報を含むプログラムデータを格納するための複数のプログラム部と、前記各プログラム部の前記プログラムデータに対応した待合せデータを含む1つ以上のオペランドデータを格納するためのオペランド部と、前記プログラムデータおよびオペランドデータに関するコピー有無の指示を含む所定情報を格納するための情報部とを含む複数の領域を有する記憶手段と、
前記データパケットを入力し、応じて該入力データパケットの行先フィールドの内容に基づいて前記記憶手段中の領域をアドレス指定し、該指定領域中の前記所定情報にかかわらず該指定領域中の各プログラム部に対応した複数のデータパケットを生成し、該指定領域中の前記情報部の前記所定情報に基づいて複数生成データパケットを出力しないまたは複数生成データパケットのうちから1つ以上を出力し残りがあれば消去する制御手段と、
前記制御手段より出力されるデータパケットを入力し、必要に応じて該入力データパケットの命令フィールドの内容に従って、該入力データパケットのデータフィールドの内容に対して所定演算処理を施し、その結果を該入力データパケットのデータフィールドに格納して出力する演算手段とを備え、
前記制御手段により前記生成データパケットが出力されないとき、前記制御手段により前記指定領域中の前記所定情報に基づいて前記入力データパケットのデータフィールドの内容は該指定領域の前記オペランド部に前記待合せデータとして書込まれ、
前記制御手段により前記複数生成データパケットのうちから1つ以上が出力され残りがあれば消去されるとき、出力される各データパケットにおいては、前記制御手段により行先フィールドおよび命令フィールドには、該データパケットに対応の前記プログラム部の前記プログラムデータに含まれる行先情報および命令情報がそれぞれ書込まれるとともに、データフィールドには前記入力データパケットのデータフィールドの内容が書込まれ、さらに該指定領域の前記オペランド部に前記オペランドデータが格納されていることに応じて、該オペランドデータがデータフィールドの内容に付加して書込まれることを特徴とする、データ駆動型情報処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19985592A JP3696625B2 (ja) | 1992-07-27 | 1992-07-27 | データ駆動型情報処理装置 |
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 |
---|---|---|---|
JP19985592A JP3696625B2 (ja) | 1992-07-27 | 1992-07-27 | データ駆動型情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0644389A JPH0644389A (ja) | 1994-02-18 |
JP3696625B2 true JP3696625B2 (ja) | 2005-09-21 |
Family
ID=16414776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19985592A Expired - Fee Related JP3696625B2 (ja) | 1992-04-28 | 1992-07-27 | データ駆動型情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3696625B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010282429A (ja) | 2009-06-04 | 2010-12-16 | Canon Inc | 画像処理装置及びその制御方法 |
EP2538348B1 (en) | 2010-02-18 | 2022-06-15 | Katsumi Inoue | Memory having information refinement detection function, information detection method using memory, device including memory, information detection method, method for using memory, and memory address comparison circuit |
JP5671635B2 (ja) * | 2014-01-07 | 2015-02-18 | キヤノン株式会社 | 画像処理装置及びその制御方法 |
-
1992
- 1992-07-27 JP JP19985592A patent/JP3696625B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0644389A (ja) | 1994-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3677315B2 (ja) | データ駆動型情報処理装置 | |
US5511215A (en) | Debugging system for the loading and execution of data flow programs | |
EP0241946B1 (en) | Information processing system | |
JP2006509306A (ja) | 関係アプリケーションへのデータ処理システム相互参照用セルエンジン | |
JP3983447B2 (ja) | データ駆動型情報処理装置 | |
EP0377976A2 (en) | Microcode control apparatus utilizing programmable logic array circuits | |
JPS63291134A (ja) | 論理集積回路 | |
US5577256A (en) | Data driven type information processor including a combined program memory and memory for queuing operand data | |
JP2008181551A (ja) | ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング | |
JP2001504959A (ja) | Riscアーキテクチャを有する8ビットマイクロコントローラ | |
US5125097A (en) | Data flow type information processors where data packets pass through plurality of merging and branching portions of the internal path | |
JPS60101644A (ja) | ノイマン型コンピュータプログラムを実行するコントロールフローコンピュータ | |
US5117499A (en) | Data flow type processing apparatus having external and cache memories for fetching paired executing instruction when mishit occurs | |
JPH06162228A (ja) | データフロープロセッサ装置 | |
US5019969A (en) | Computer system for directly transferring vactor elements from register to register using a single instruction | |
JP3696625B2 (ja) | データ駆動型情報処理装置 | |
US4899128A (en) | Method and apparatus for comparing strings using hash values | |
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 | |
US8200943B2 (en) | Microprocessor | |
JPH0363092B2 (ja) | ||
US5542080A (en) | Method for controlling execution of data driven type information processor | |
JP2654451B2 (ja) | データ出力方法 | |
US5768554A (en) | Central processing unit | |
JP3708560B2 (ja) | データフロー型情報処理装置 | |
JP2716254B2 (ja) | リストベクトル処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040301 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040311 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20040917 |
|
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 |