(57)【特許請求の範囲】
【請求項１】
少なくとも行先ノード番号と世代番号と命令コードとデータを含むデータパケットの転送および演算処理を転送要求信号と転送許可信号により制御する自己同期型転送制御回路と、前記自己同期型転送制御回路により制御されて前記データパケットを格納するパイプラインレジスタと、前記データパケットを内部で循環させるか外部へ出力するかを制御する入出力制御回路を有するデータ駆動型情報処理装置において、
前記データパケットは更にホスト転送フラグを含んでおり、
少なくとも１つのデータパケットを消去するためのマスタリセット入力が設けられ、マスタリセット情報により前記少なくとも１つのデータパケットを消去するデータパケット消去手段と、
前記マスタリセット情報に従って他のデータパケットのホスト転送フラグを書換える複数のホスト転送フラグ操作手段と、
前記ホスト転送フラグを検出するホスト転送フラグ検出手段とを備え、
前記入出力制御回路は、前記ホスト転送フラグ検出手段の検出結果に基づき、前記ホスト転送フラグが所定の値であるデータパケットを外部へ出力するように制御することを特徴とする、データ駆動型情報処理装置。
【請求項２】
少なくとも行先ノード番号と、世代番号と命令コードとデータを含むデータパケットの転送および演算処理を転送要求信号と転送許可信号とにより制御する自己同期型転送制御回路と、前記自己同期型転送制御回路により制御されて前記データパケットを格納するパイプラインレジスタと、前記データパケットを内部で循環させるか外部へ出力するかを制御する入出力制御回路を有するデータ駆動型情報処理装置において、
前記データパケットは更にホスト転送フラグを含んでおり、
少なくとも１つのデータパケットを消去するためのマスタリセット入力が設けられ、マスタリセット情報により前記少なくとも１つのデータパケットを消去するデータパケット消去手段と、
前記マスタリセット情報を記憶し、入力した他のデータパケットのホスト転送フラグを書換えて出力するホスト転送フラグ操作手段と、
前記ホスト転送フラグを検出するホスト転送フラグ検出手段とを備え、
前記入出力制御回路は、前記ホスト転送フラグ検出手段の検出結果に基づき、前記ホスト転送フラグが所定の値であるデータパケットを外部へ出力するように制御することを特徴とする、データ駆動型情報処理装置。
【請求項３】
前記データパケット消去手段は、前記入出力制御回路内に設けられることを特徴とする、請求項１または２に記載のデータ駆動型情報処理装置。
【請求項４】
前記ホスト転送フラグ操作手段は、前記演算処理を行なうブロックの１つであって、前記入出力制御回路に前記データパケットを出力するブロック内に設けられることを特徴とする、請求項２に記載のデータ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ駆動型情報処理装置に関し、特に、循環パイプライン上の少なくとも１つのデータパケットを消去しかつ循環パイプライン上の他のデータパケットをホストへ転送させる機能を備えたようなデータ駆動型情報処理装置に関する。
【０００２】
【従来の技術】
近年のマルチメディア化に伴い、画像処理などでは多量の演算が要求される。このような多量の演算を高速に処理する装置として、データ駆動型情報処理装置（以下、データ駆動型プロセッサと称する）が提案されている。データ駆動型プロセッサでは、ある処理に必要な入力データがすべて揃いかつその処理に必要な演算装置などの資源が割当てられたときに処理が行なわれるという規則に従って処理が進行する。データ駆動型の情報処理動作を含むデータ処理装置には、非同期のハンドシェイク方式を採用したデータ伝送装置が用いられる。このようなデータ伝送装置では、複数のデータ伝送路が接続され、それらのデータ伝送路がデータの転送要求信号（以下、ＳＥＮＤ信号と称する）およびデータの転送を許可するか否かを示す転送許可信号（以下、ＡＣＫ信号と称する）を互いに送受信しながら、自律的なデータ転送が行なわれる。
【０００３】
図５は従来およびこの発明が適用されるデータパケットのフォーマットを示す図である。図５において、データパケットは行先ノード番号ＮＤ♯を格納するための行先ノード番号領域Ｆ１と、世代番号ＧＮ♯を格納するための世代番号領域Ｆ２と、命令コードＯＰＣを格納するための命令コード領域Ｆ３およびデータＤＡＴＡを格納するためのデータ領域Ｆ４を含む。ここで、世代番号とは、並列処理をしたいデータ群同士を区別するための番号である。行先ノード番号とは、同一世代内の入力データ同士を区別するための番号である。命令コードとは、命令デコーダに格納されている命令を実行するためのものである。
【０００４】
図６はデータ伝送路の構成を示すブロック図である。データ伝送路は、自己同期型の転送制御回路（以下、Ｃ素子と称する）３ａおよびＤタイプフリップフロップからなるデータ保持回路（以下、パイプラインレジスタと称する）３ｂを含む。Ｃ素子３ａはパルスを受けるパルス入力端子ＣＩと、転送の許可または転送の禁止を示す転送許可信号を出力する転送許可出力端子ＲＯと、パルスを出力するパルス出力端子ＣＯと、転送の許可または転送の禁止を示す転送許可信号を受ける転送許可入力端子ＲＩと、パイプラインレジスタ３ｂのデータ保持動作を制御するクロックパルスを与えるためのパルス出力端子ＣＰを有している。
【０００５】
図７は図６に示したＣ素子の動作を説明するためのタイミングチャートである。Ｃ素子３ａは端子ＣＩから図７（ａ）に示すパルスを受取ると、端子ＲＩに図７（ｅ）に示すような入力の転送許可信号が許可状態であれば、端子ＣＯから図７（ｄ）に示すパルスを出力するとともに、パイプラインレジスタ３ｂに図７（ｃ）に示すパルスを出力する。パイプラインレジスタ３ｂはＣ素子３ａから与えられるパルスに応答して、与えられる入力パケットデータを保持し、またその保持したデータを出力パケットデータとして出力する。
【０００６】
図８は図６に示したデータ伝送路を所定のロジック回路を介してシーケンスに接続した例を示すブロック図である。図１５において、入力されるパケットデータは、パイプラインレジスタ４ａ→４ｂ→４ｃと順に転送されていく間に、ロジック回路６ａ，６ｂでシーケンスに処理される。図８において、たとえばパイプラインレジスタ４ａがデータ保持状態である場合、後段のパイプラインレジスタ４ｂがデータ保持状態にあれば、パイプラインレジスタ４ａからパイプラインレジスタ４ｂにデータは送られない。
【０００７】
また、後段のパイプラインレジスタ４ｂがデータを保持していない状態であれば、もしくはデータを保持していない状態になれば、少なくとも予め設定された遅延時間をかけてデータがパイプラインレジスタ４ａからロジック回路６ａで処理されてパイプラインレジスタ４ｂに送られる。このように接続された隣のパイプラインレジスタとの間で送受信されるＣＩとＣＯ端子で入出力されるＳＥＮＤ信号およびＲＩ端子とＲＯ端子で入出力されるＡＣＫ信号に従って非同期に、そして少なくとも予め設定された遅延時間をかけてデータ伝送を行なうような制御を自己同期型転送制御と呼び、そのようなデータ転送を制御する回路を自己同期型転送制御回路と呼ぶ。
【０００８】
図９は図６に示したＣ素子の具体的な回路図である。このＣ素子はたとえば特開平６−８３７３１号公報に記載されたものである。図９において、パルス入力端子ＣＩは前段部からのパルス状のＳＥＮＤ信号（転送要求信号）を受け、転送許可出力端子ＲＯは前段部にＡＣＫ信号（転送許可信号）を出力する。パルス出力端子ＣＯは後段部にパルス状のＳＥＮＤ信号を出力し、転送許可入力端子ＲＩは後段部からＡＣＫ信号を受ける。
【０００９】
マスタリセット入力端子ＭＲはマスタリセット信号を受ける。マスタリセット入力端子ＭＲに「Ｈ」レベルのパルスが与えられると、インバータ５ｆで反転され、フリップフロップ５ａ，５ｂがリセットされてＣ素子が初期化される。そして、パルス出力端子ＣＯ，転送許可出力端子ＲＯはともに初期状態として「Ｈ」レベル信号を出力する。転送許可出力端子ＲＯの出力が「Ｈ」レベルであることは転送許可状態を示し、逆に「Ｌ」レベルであることは転送禁止状態を示している。また、パルス出力端子ＣＯの出力が「Ｈ」レベルであることは、後段にデータ転送を要求していない状態を示し、逆に「Ｌ」レベルであることは後段にデータ転送を要求しているまたはデータを転送している状態を示している。
【００１０】
パルス入力端子ＣＩに「Ｌ」レベルの信号が入力されると、すなわち前段からデータ転送が要求されると、フリップフロップ５ａはセットされ、その出力Ｑに「Ｈ」レベル信号を出力する。この「Ｈ」レベル信号はインバータ５ｇで反転されて転送許可入力端子ＲＯからは「Ｌ」レベル信号が出力され、さらなるデータ転送を禁止する。一定時間後、パルス入力端子ＣＩに「Ｈ」レベルの信号が入力され、前段部から当該Ｃ素子へのデータのセットが終了する。この状態でかつ転送許可入力端子ＲＩから「Ｈ」レベル信号が入力されている、すなわち後段部からデータ転送を許可されている状態で、かつパルス出力端子ＣＯが「Ｈ」レベル信号を出力している、すなわち後段部へデータ転送している途中でない状態（データ転送を後段に要求していない状態）であれば、ＮＡＮＤゲート５ｃはアクティブとなり、「Ｌ」レベル信号を出力する。
【００１１】
その結果、フリップフロップ５ａと５ｂはともにリセットされ、フリップフロップ５ｂはパイプラインレジスタへのパルス出力端子ＣＰから遅延素子５ｅを介して「Ｈ」レベル信号を出力するとともに、パルス出力端子ＣＯから遅延素子５ｄを介して後段部のＣ素子へ「Ｌ」レベルのＳＥＮＤ信号を出力する。すなわち、後段部へデータ転送を要求する。「Ｌ」レベルのＳＥＮＤ信号を受けた後段のＣ素子は、そのＣ素子に対してさらなるデータ転送が行なわれないように転送禁止を示すＡＣＫ信号を「Ｌ」レベルにしてＲＯ端子から出力する。該Ｃ素子は転送許可入力端子ＲＩからの「Ｌ」レベルのＡＣＫ信号を入力し、この信号によりフリップフロップ４ｂがセットされる。その結果、パイプラインレジスタへのパルス出力端子ＣＰから遅延素子５ｅを介して「Ｌ」レベル信号が出力され、また後段部へのパルス出力端子ＣＯから遅延素子５ｄを介して「Ｈ」レベルのＳＥＮＤ信号が出力され、データ転送を終了する。
【００１２】
図１０は図８に示したデータ転送路を含んで構成された従来のデータ駆動型情報処理装置の概略ブロック図である。図１０において、データ駆動型情報処理装置Ｐｅは、合流部ＪＮＣと、発火制御部ＦＣと、演算部ＦＰと、プログラム記憶部ＰＳと、分岐部ＢＲＮと、複数個のパイプラインレジスタ４ａ〜４ｃと、複数のＣ素子２ａ〜２ｃを含む。各Ｃ素子２ａ〜２ｃは前段および後段のＣ素子とのパケット転送パルス（ＣＩ，ＣＯ，ＲＩ，ＲＯの信号）のやり取りによって対応する処理部（ＦＣ，ＦＰ，ＰＳ）についてのパケット転送を制御する。各パイプラインレジスタ４ａ〜４ｃは対応のＣ素子２ａ〜２ｃからのパルス入力に応じて、前段の処理部より入力されているデータを取込んで保持し、出力段に導出し、次のパルスまでこれを保持する。
【００１３】
図１０において、プロセッサＰｅに図５に示したデータパケットが入力されると、入力パケットはまず合流部ＪＮＣを通り、発火制御部ＦＣに伝達され、行先ノード番号ＮＤ♯と世代番号ＧＮ♯とに基づいて同一のパケットの間で対データが形成される。すなわち、ノード番号ＮＤ♯と世代番号ＧＮ♯が一致する異なる２つのデータパケットの検出を行ない、両番号が一致する２つのうち一方のデータパケットのデータを他方のデータパケットのデータ領域Ｆ４（図５）に追加格納し、この他方のデータパケットを出力する。データ領域Ｆ４に対データ（１組のデータ）を格納したパケットは次に演算部ＦＰに伝達される。演算部ＦＰは伝達されたデータパケットを入力し、その入力パケットの命令コードＯＰＣに基づいて該入力パケットの内容に対して所定の演算を行ない、演算結果を該入力パケットのデータ領域Ｆ４に格納する。該入力パケットは次にプログラム記憶部ＰＳに伝達される。
【００１４】
プログラム記憶部ＰＳは伝達されたデータパケットを入力し、その入力パケットの行先ノード番号ＮＤ♯に基づいて、プログラム記憶部ＰＳ内のプログラムメモリからパケットが次に行くべきノード情報（ノード番号ＮＤ♯）と次に実行するべき命令情報（命令コードＯＰＣ）とコピーフラグＣＰＹを読出す。そして、読出された行先ノード番号ＮＤ♯および命令コードＯＰＣが該入力パケットの行先ノード番号領域Ｆ１および命令コード領域Ｆ３にそれぞれ格納される。さらに、読出されたコピーフラグＣＰＹが「１」であれば、プログラムメモリ中の次のアドレスも有効と判断されて、次のアドレスに記憶されている行先ノード番号ＮＤ♯および命令コードＯＰＣを格納したパケットも生成される。
【００１５】
プログラム記憶部ＰＳから出力されるパケットは分岐部ＢＲＮへ伝達され、その行先ノード番号ＮＤ♯に基づいて出力されるか、または再度プロセッサ内部に戻される。
【００１６】
ところで、データ駆動型情報処理装置において、データの依存関係やデータパケットの到着順序のずれなどにより、デッドロック状態に陥り、以降の実行が全く進まなくなることがある。この現象について図１１を用いて説明する。たとえば、図１０に示した発火制御部ＦＣ内のメモリにはｎ個のパケット（メモリパケット１〜メモリパケットｎ）が格納されており、空き領域がない状態であるとする。この状態で発火制御部ＦＣへ図１１に示したデータパケット１が入力され、該パケットが所有するタブの行先ノード番号および世代番号をそれぞれ内部メモリに記憶されているパケットが有するタグの行先ノード番号および世代番号とを比較し、両方が同一タグを有する相手データパケット２の到着がずれて検出できない場合は、内部のメモリに空きがないため、データパケット１はメモリに格納されずにそのまま循環パイプライン上へ出力されてしまう。そして、この後に発火制御部ＦＣへデータパケット２が入力されてもデータパケット１が検出できないため、そのまま循環パイプライン上へ出力されてしまう。
【００１７】
発火制御部ＦＣ内部のメモリにデータパケット１またはデータパケット２が格納されるためには、発火制御部ＦＣ内部のメモリに格納されているデータパケットのいずれかが、循環パイプライン上のいずれかのパケットとタグが一致して、発火制御部ＦＣ内部のメモリに空き領域ができる必要がある。
【００１８】
しかし、プログラムのデータ依存性がたとえば図１１に示すようであれば、発火制御部ＦＣ内のメモリに空きがなく、かつデータパケット１とデータパケット２がずれて入力されると、データパケット１が先に循環パイプラインにそのまま出力されてしまい、続いて入力されるデータパケット２も同様に発火できずに命令が実行されないまま循環パイプラインに出力される。
【００１９】
その後、該データパケット１，２が循環パイプラインを巡回して、再度発火制御部ＦＣに到達してもやはり同じことが起こり、結局メモリに格納されているｎ個のどのメモリパケットも永久に発火できず、メモリは満杯状態を維持する。
【００２０】
そして、合流部ＪＮＣからは新たなデータパケットが入力され、この循環されているデータパケットに加わっていくと、終にはパイプラインから次のパイプラインへの転送ができなくなり、デッドロック状態に陥ってしまう。
【００２１】
上述したように、デッドロック状態に陥り、以後の実行が全く進まなくなったときやプログラム実行開始時には、データ駆動型情報処理装置ＰＥを初期状態にする必要がある。そのためには、図８に示した自己同期型転送制御回路のマスタリセット入力端子ＭＲに「Ｈ」レベルのパルスを与え、データ駆動型情報処理装置ＰＥ中のすべてのＣ素子２ａ〜２ｃを初期化する方法が取られる。これにより、パルス出力端子ＣＯと転送許可出力端子ＲＯがともに初期状態として「Ｈ」レベル信号を出力し、前段部には転送許可状態であると伝え、かつ後段部にデータ転送を要求しない状態になるため、マスタリセット時にパイプラインレジスタの保持するデータは後段のパイプラインレジスタへ送られることがなく、その後前段のパイプラインレジスタから送られてくるデータでデータパケット内は上書きされ、消滅する。これにより、すべてのパイプラインレジスタ内のデータパケットは消滅することになる。
【００２２】
【発明が解決しようとする課題】
上述の如く、循環パイプラインがデッドロックの状態に陥り、以後の実行が全く進まなくなった際に、マスタリセットの入力により初期化することができるが、循環パイプラインは図１０に示すように、分岐部ＢＲＮから合流部ＪＮＣに戻って循環するため、循環パイプライン上のデータパケットはすべて消去されてもデッドロックの原因究明が困難であった。
【００２３】
それゆえに、この発明の主たる目的は、循環パイプラインのデッドロック状態を解除するだけでなく、循環パイプライン上の他のデータパケットを外部に転送させる機能を有するようなデータ駆動型情報処理装置を提供することである。
【００２５】
【課題を解決するための手段】
この発明は、少なくとも行先ノード番号と世代番号と命令コードとデータを含むデータパケットの転送および演算処理を転送要求信号と転送許可信号により制御する自己同期型転送制御回路と、自己同期型転送制御回路により制御されて前記データパケットを格納するパイプラインレジスタと、データパケットを内部で循環させるか外部へ出力するかを制御する入出力制御回路を有するデータ駆動型情報処理装置において、データパケットは更にホスト転送フラグを含んでおり、少なくとも１つのデータパケットを消去するためのマスタリセット入力が設けられ、マスタリセット情報により前記少なくとも１つのデータパケットを消去するデータパケット消去手段と、マスタリセット情報に従って他のデータパケットのホスト転送フラグを書換える複数のホスト転送フラグ操作手段と、ホスト転送フラグを検出するホスト転送フラグ検出手段とを備え、入出力制御回路は、ホスト転送フラグ検出手段の検出結果に基づき、ホスト転送フラグが所定の値であるデータパケットを外部へ出力するように制御することを特徴とする。
【００２６】
他の発明は、少なくとも行先ノード番号と、世代番号と命令コードとデータを含むデータパケットの転送および演算処理を転送要求信号と転送許可信号とにより制御する自己同期型転送制御回路と、自己同期型転送制御回路により制御されてデータパケットを格納するパイプラインレジスタと、データパケットを内部で循環させるか外部へ出力するかを制御する入出力制御回路を有するデータ駆動型情報処理装置において、データパケットは更にホスト転送フラグを含んでおり、少なくとも１つのデータパケットを消去するためのマスタリセット入力が設けられ、マスタリセット情報により前記少なくとも１つのデータパケットを消去するデータパケット消去手段と、マスタリセット情報を記憶し、入力した他のデータパケットのホスト転送フラグを書換えて出力するホスト転送フラグ操作手段と、ホスト転送フラグを検出するホスト転送フラグ検出手段とを備え、入出力制御回路は、ホスト転送フラグ検出手段の検出結果に基づき、ホスト転送フラグが所定の値であるデータパケットを外部へ出力するように制御することを特徴とする。
【００２７】
好ましくは、データパケット消去手段は、入出力制御回路内に設けられることを特徴とする。
【００２８】
より好ましくは、ホスト転送フラグ操作手段は、演算処理を行なうブロックの１つであって、入出力制御回路にデータパケットを出力するブロック内に設けられることを特徴とする。
【００３０】
【発明の実施の形態】
図１は、この発明の一実施形態のハンドシェイク方式を採用したデータ駆動型情報処理装置に用いられるデータ伝送装置を示すブロック図である。
【００３１】
この図１に示した実施形態は、図８に示したデータ伝送路にＯＲゲート１ｆとホスト転送フラグ操作回路１ｇ，１ｈを設け、２つのマスタリセット信号ＭＲａとＭＲｂを用いるものであり、その他の構成は図８と同じである。マスタリセット信号ＭＲａは図８のマスタリセット信号ＭＲに相当し、データ伝送装置を初期状態にするものである。マスタリセット信号ＭＲｂはデータ伝送路１ａのみを初期状態とする。ホスト転送フラグ操作回路１ｇ，１ｈはマスタリセット信号ＭＲｂが与えられると、パイプラインレジスタ１ｂ，１ｃに含まれるパイプラインレジスタが保持するデータパケットのホスト転送フラグを操作する。
【００３２】
次に、図１に示したデータ伝送装置の動作について説明する。入力されるパケットデータはパイプラインレジスタ１ａ→１ｂ→１ｃと順に転送されていく間に、ロジック回路６ａ，６ｂによってシーケンスに処理される。Ｃ素子２ａ〜２ｃはパルス入力端子ＣＩが前段部からのパルス状のＳＥＮＤ信号を受け、転送許可出力端子ＲＯは前段部のＡＣＫ信号を出力する。パルス出力端子ＣＯは後段部にパルス状のＳＥＮＤ信号を出力し、転送許可入力端子ＲＩは後段部からＡＣＫ信号を受ける。
【００３３】
マスタリセット信号ＭＲｂとして「Ｈ」レベルのパルスが与えられると、ＯＲゲート１ｆを介してパイプラインレジスタ１ａに含まれるＣ素子２ａのマスタリセット入力端子ＭＲに「Ｈ」レベルのパルスが入力され、このＣ素子２ａは従来の動作と同様にして、パイプラインレジスタ１ａを初期化し、パイプラインレジスタが保持するデータパケットが消去される。この動作は、従来例で説明したマスタリセット信号ＭＲに相当し、マスタリセット信号ＭＲａが「Ｈ」レベルになることで、すべてのパイプラインレジスタ内のデータパケットが上書きされて消滅することになる。
【００３４】
次に、新たに付加したマスタリセット信号ＭＲｂが「Ｈ」レベルになると、このときマスタリセット信号ＭＲａは「Ｌ」レベルになっている。パイプラインレジスタ１ａを制御するＣ素子２ａのみにＯＲゲート１ｆを介してマスタリセット信号ＭＲｂが入力されるため、パイプラインレジスタ１ａ内のデータパケットは上書きされて消滅する。その後、マスタリセット信号ＭＲｂは「Ｌ」レベルに変化する。さらに、この「Ｈ」レベルのマスタリセット信号ＭＲｂはホスト転送フラグ操作回路１ｇと１ｈにも制御信号（入力信号）として入力される。これらのホスト転送フラグ操作回路１ｇと１ｈは、マスタリセット信号ＭＲｂが入力されるＣ素子２ａにより制御されるパイプラインレジスタ１ａ以外のパイプラインレジスタ１ｂ，１ｃ…の入力側に各々設けられている。
【００３５】
ホスト転送フラグ操作回路１ｇはたとえば、バッファ回路あるいは遅延回路によって構成され、マスタリセット信号ＭＲｂが入力されると、そのマスタリセット信号をそのまま出力する。Ｄタイプフリップフロップで構成されるパイプラインレジスタのクロック信号としてのＣＰの立上がり時に、他の情報（タグフィールド，データフィールド）とともに、このホスト転送フラグはパイプラインレジスタに取込まれる。
【００３６】
よって、ホスト転送フラグ操作回路１ｇ，１ｈの制御信号（入力信号）として「Ｈ」レベル信号が入力されると、ホスト転送フラグ操作回路１ｇ，１ｈはパイプラインレジスタ１ｂ，１ｃ内に保持されているデータパケット内のホスト転送フラグを「Ｈ」レベルとする。その後、このホスト転送フラグが検出され、「Ｈ」レベルの場合は、強制的にホストに転送させる。
【００３７】
なお、この発明の一実施形態で使用されるデータパケットは、図５に示したタグフィールド（行先ノード番号領域Ｆ１，世代番号領域Ｆ２，命令コード領域Ｆ３）と、データフィールド（データ領域Ｆ４）からなるデータパケットに、さらにホスト転送フラグが付加された構成となっている。
【００３８】
次に、先に説明した図１０のデータ駆動型情報処理装置ＰＥに図１のデータ伝送装置を適用した例について説明する。
【００３９】
図２は図１に示したデータ伝送装置を用いたデータ駆動型情報処理装置の概略ブロック図であり、図３は図２に示したデータ駆動型情報処理装置の分岐部周辺部のみを示す回路図である。
【００４０】
図２において、マスタリセット信号ＭＲａは図１０に示したマスタリセット信号ＭＲに対応しており、合流部ＪＮＣとＣ素子２ａ〜２ｃとＯＲゲート１１ａの一方入力に与えられ、マスタリセット信号ＭＲｂはプログラム記憶部ＰＳとホスト転送フラグ操作回路１０ｆとＯＲゲート１１ａの他方入力端に与えられる。ＯＲゲート１１ａは図３に示すように、分岐部ＢＲＮに内蔵されているものとする。
【００４１】
ホスト転送フラグ操作回路１０ｆは各パイプラインレジスタ４ａ〜４ｃの前段に配置されているが、図２ではパイプラインレジスタ４ｃの前段に配置した例を示しており、パイプラインレジスタ４ａ，４ｂの前段に設けられるホスト転送フラグ操作回路は図示を省略している。
【００４２】
分岐部ＢＲＮ内には、図３に示すように、Ｃ素子２ｄとパイプラインレジスタ４ｄが設けられるとともに、ゲート回路１１ｂと１１ｃと１１ｄとホスト転送フラグ検出回路１１ｅとが設けられている。
【００４３】
ホスト転送フラグ検出回路１１ｅはパイプラインレジスタ４ｄから出力される「Ｈ」レベルのホスト転送フラグを検出してラッチし、「Ｈ」レベル信号をゲート回路１１ｂと１１ｃのそれぞれの一方入力に与える。ゲート回路１１ｂ，１１ｃの他方入力端にはＣ素子２ｄの端子ＣＯからパルス信号が与えられる。ゲート回路１１ｂの出力は端子Ｃａを介して合流部ＪＮＣに与えられ、ゲート回路１１ｃの出力は端子ＣＯｂを介して外部（ホスト）に与えられる。端子ＲＩａとＲＩｂには、それぞれ合流部ＪＮＣと外部とから転送許可信号が与えられ、これらの転送許可信号はゲート回路１１ｄを介してＣ素子２ｄのＲＩ入力に与えられる。
【００４４】
図２および図３において、ホスト転送フラグ操作回路１０ｆの動作は図１と同様であり、データの依存関係やデータパケットの到着順序のずれなどにより、デッドロック状態に陥ったとき、マスタリセット信号ＭＲｂが「Ｈ」レベルにされる。これにより、Ｃ素子２ｄのＭＲ入力端子にマスタリセット信号ＭＲａとＭＲｂがＯＲゲート１１ａを介して入力され、分岐部ＢＲＮ内のパイプラインレジスタ４ｄに格納されているデータパケットは上書きされて消滅する。
【００４５】
その後、マスタリセット信号ＭＲｂが「Ｌ」レベルにされる。これにより、分岐部ＢＲＮ内のパイプラインレジスタ４ｄが格納するデータパケットが上書きにより消滅し、かつホスト転送フラグが「Ｈ」レベルのデータパケットが新たに上書きされてパイプラインレジスタ４ｄに格納される。
【００４６】
この「Ｈ」レベルにセットされたデータパケットは、ホスト転送フラグ検出回路１１ｅによって検出される。ホスト転送フラグ検出回路１１ｅは「Ｈ」レベルのホスト転送フラグを検出するとラッチして「Ｈ」レベル信号を出力する。これにより、ゲート回路１１ｃがアクティブとなり、分岐部ＢＲＮ内のＣ素子２ｄのＣＯ出力が端子ＣＯｂから出力される。
【００４７】
なお、分岐部ＢＲＮの前段にあたるパイプラインレジスタ４ｃの前段のパイプラインレジスタ４ｂも同様に、その入力側に設置されているホスト転送フラグ操作回路により同時にホスト転送フラグが「Ｈ」レベルにセットされる。
【００４８】
データ駆動型情報処理装置は、Ｃ素子の転送要求信号と転送許可信号のやり取りでデータを処理するため、端子ＣＯｂ，ＲＩｂが外部（ホスト）からの信号となり、よってデータ駆動型情報処理装置から外部に転送されることになる。ちなみに、ホスト転送フラグ検出回路１１ｅはホスト転送フラグが「Ｌ」レベルのときは、その「Ｌ」レベルをラッチして出力する。このとき、ゲート回路１１ｂがアクティブとなり、Ｃ素子２ｄのＣＯ出力が端子ＣＯａから出力される。端子ＣＯａ，ＲＩａは合流部ＪＮＣとの信号のやり取りを行なうため、データパケットが合流部ＪＮＣに戻ることになる。ホスト転送フラグ検出回路１１ｅはたとえばラッチ回路やまたは単なる遅延回路のような簡単な構成であってもよい。
【００４９】
これにより、データパケットは強制的に外部（ホスト）に転出するため、デッドロック状態が解消されるとともに、データ駆動型情報処理装置内の循環パイプライン上のデータを外部（ホスト）側で取得してデバッグすることが可能となる。ここで、ホストへの転送とは、一般的にデータ駆動型情報処理装置には図１０に示したようなデータ駆動型情報処理装置ＰＥが複数個入出力制御部（分岐部や合流部）を介して接続されて信号のやり取りを行なっており、ホストへの転送とは、このデータ駆動型情報処理装置から外部に信号を取出すことをいう。
【００５０】
次に、ホスト転送フラグ操作回路１０ｆの変形例として、たとえばＤタイプフリップフロップにより構成することができる。Ｄタイプフリップフロップの入力端子は電源Ｖｃｃ端子に接続し、クロック入力端子にはマスタリセット信号ＭＲｂを与え、このマスタリセット信号ＭＲｂの立上がり時にＤタイプフリップフロップの出力端子から「Ｈ」レベル信号が出力されるように構成することができる。そして、前述の説明と同様にして、Ｃ素子からのＣＰの立上がり時にパイプラインレジスタの所定の場所に「Ｈ」レベル信号が格納される。この場合、マスタリセット信号ＭＲｂが一旦「Ｈ」レベルになると、それ以降「Ｌ」レベルになっても、Ｄタイプフリップフロップの出力は「Ｈ」レベルを維持する。このため、以後パイプラインレジスタ４ｃに転送されて格納されたデータパケットのホスト転送フラグを「Ｈ」レベルにセットできる。ホスト転送フラグ操作回路１０ｆは、分岐部ＢＲＮの入力段であるパイプラインレジスタ４ｄの入力段に１個あればよく、ホスト転送フラグ操作回路の設置数を削減できる。
【００５１】
図４はこの発明の他の実施形態を示す図である。この図４に示した実施形態は、パイプラインレジスタ１ｃの前段にのみホスト転送フラグ操作回路２ｈが設けられており、パイプラインレジスタ１ｂの前段にはホスト転送フラグ操作回路が設けられていない点において図１の実施形態と異なっている。
【００５２】
そして、図１のホスト転送フラグ操作回路１ｇ，１ｈには制御信号としてマスタリセット信号ＭＲｂが与えられていて、制御信号として「Ｈ」レベルが入力されると、ホスト転送フラグ操作回路１ｇ，１ｈはパイプラインレジスタ１ｂ，１ｃ内に保持されているデータパケット内のホスト転送フラグを「Ｈ」レベルとした。これに対して、図４に示した実施形態では、ホスト転送フラグ操作回路２ｈは制御信号であるマスタリセット信号ＭＲｂが「Ｌ」レベルのときはこの状態を記憶し、以降パイプラインレジスタ１ｂから入力されるホスト転送フラグには、何ら操作することなくそのままパイプラインレジスタ１ｃに出力する。この場合、ホスト転送フラグは初期状態の「Ｌ」レベルになっている。
【００５３】
一方、ホスト転送フラグ操作回路２ｈは、制御信号として「Ｈ」レベルが入力されると、この「Ｈ」レベルを記憶し、以降パイプラインレジスタ１ｂから入力されるデータパケット内のホスト転送フラグを「Ｈ」レベルに書換えてパイプラインレジスタ１ｃに転送する。このとき、パイプラインレジスタ１ｂから出力されるデータパケットの他の領域（タグフィールドとデータフィールド）はロジック回路６ｂにおいて所定の処理が行なわれ、パイプラインレジスタ１ｃに転送される。したがって、入力されたデータパケットは、ホスト転送フラグ操作回路２ｈとロジック回路６ｂを含む回路２ｇの中で上述の処理が行なわれ、データパケットを出力することになる。
【００５４】
なお、この図４に示した実施形態で使用されるデータパケットは、図１に示した実施形態で使用したデータパケットと同じ構成にされている。
【００５５】
次に、この図４に示したデータ駆動装置を前述の図１０に示したデータ駆動型情報処理装置Ｐに適用した例を図２を参照しながら説明する。図２のデータ駆動型情報処理装置ＰＥにおいて、２つのマスタリセット信号ＭＲａとＭＲｂがＯＲ回路１ｆを介して入力されたＣ素子２ａと、このＣ素子２ａが属するパイプラインレジスタ１ａが分岐部ＢＲＮ内にあるものとする。
【００５６】
一方、ホスト転送フラグ操作回路２ｈはプログラム記憶部ＰＳに含まれているものとする。動作は基本的には図１に示した実施形態と同じである。データの依存関係やデータパケットの到着順序のずれなどにより、デッドロック状態に陥ったとき、マスタリセット信号ＭＲｂが「Ｈ」レベルにされる。これにより、ＭＲ入力端子にマスタリセット信号ＭＲａとＭＲｂがＯＲ回路１ｆを介して入力されているＣ素子２ａが属する分岐部ＢＲＮ内のパイプラインレジスタ１ａに格納されているデータパケットは上書きされて消滅する。
【００５７】
その後、マスタリセット信号ＭＲｂが「Ｌ」レベルにされる。これにより、先に説明したように分岐部ＢＲＮ内のデータ伝送路のパイプラインレジスタによって格納されているデータパケットが上書きにより消滅し、かつ上書きされたデータパケットのホスト転送フラグが「Ｈ」レベルのため、外部への転送が可能となり循環パイプライン上のデッドロック状態が解消する。
【００５８】
デッドロック状態が解消すると、循環パイプライン上のデータパケットは転送を再開し、最も分岐部ＢＲＮに近いプログラム記憶部ＰＳを通過する際に、プログラム記憶部ＰＳ内に設けられているホスト転送フラグ操作回路２ｈに記憶されている「Ｈ」レベル信号により、通過して処理されるデータパケット内のホスト転送フラグが「Ｈ」レベルとされる。この例では、前述の実施形態および変形例と発明の効果となり、ホスト転送フラグ操作回路２ｈはプログラム記憶部ＰＳに含まれており、操作へのソフト変更によるさらなる対応などが可能となり、デバッグの自由度を増すことができる。
【００５９】
ホスト転送フラグが「Ｈ」レベルにセットされたデータパケットは、分岐部ＢＲＮ内のホスト転送フラグ検出回路により、「Ｈ」レベルのホスト転送フラグが検出され、強制的にデータ駆動型情報処理装置から外部（ホスト）に転送されることになる。
【００６０】
これにより、デッドロック状態が解消されるとともに、データ駆動型情報処理装置ＰＥ内の循環パイプライン上のデータを外部に転送して取得することでデバッグすることが可能となる。
【００６１】
なお、この発明によるマスタリセット信号ＭＲｂが入力されるＣ素子や、ホスト転送フラグ操作回路の設置場所および設置数は特に限定されるものではない。また、ホスト転送フラグ操作回路やホスト転送フラグ検出回路も既知の技術で容易に構成可能である。そして、これらを入出力制御部としての出力部でもある分岐部ＢＲＮ内に設けることで、この中のデータ伝送路を初期化して転送可能にすることにより、確実にデッドロック状態を解消することができる。
【００６２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００６３】
【発明の効果】
以上のように、この発明によれば、パイプラインレジスタに格納されているデータパケットを消去して他のデータパケットを外部に出力する機能を設けるようにしたので、循環パイプラインのデッドロック状態を解除するだけでなく、循環パイプライン上の他のデータパケットを外部のホストへ転送できるため、デッドロック状態を引起こす原因となったデータパケットの情報を容易に獲得でき、効果的なデバッグ機能を備えたデータ駆動型情報処理装置を実現することができる。
【図面の簡単な説明】
【図１】  この発明の一実施形態によるハンドシェイク方式を採用したデータ伝送装置のブロック図である。
【図２】  図１に示したデータ伝送装置を用いたデータ駆動型情報処理装置のブロック図である。
【図３】  図２に示したデータ駆動型情報処理装置の分岐部周辺部のみを示す回路図である。
【図４】  この発明の他の実施形態のハンドシェイク方式を採用したデータ伝送装置のブロック図である。
【図５】  従来およびこの発明の実施形態に適用されるデータパケットのフォーマット図である。
【図６】  従来のデータ伝送路の一例を示すブロック図である。
【図７】  図６に示したＣ素子のタイミングチャートである。
【図８】  従来のハンドシェイク方式を採用したデータ伝送装置の一例を示すブロック図である。
【図９】  Ｃ素子の具体的な回路図である。
【図１０】  従来のデータ駆動型情報処理装置のブロック図である。
【図１１】  従来のデータ駆動型情報処理装置においてデッドロック状態が起こり得るデータパケットの依存関係の一例を示す図である。
【符号の説明】
１ａ，１ｂ，１ｃ  パイプラインレジスタ、１ｇ，１ｈ，１０ｆ，２ｈ  ホスト転送フラグ操作回路、２ａ，２ｂ，２ｃ，２ｄ  Ｃ素子、６ａ，６ｂ  ロジック回路、１１ｂ，１１ｃ，１１ｄ  ゲート回路、１１ｅ  ホスト転送フラグ検出回路、ＪＮＣ  合流部、ＦＣ  発火制御部、ＦＰ  演算部，ＰＳ  プログラム記憶部、ＢＲＮ  分岐部。
【図１】
0003796390.tif 000002
【図２】
0003796390.tif 000003
【図３】
0003796390.tif 000004
【図４】
0003796390.tif 000005
【図５】
0003796390.tif 000006
【図６】
0003796390.tif 000007
【図７】
0003796390.tif 000008
【図８】
0003796390.tif 000009
【図９】
0003796390.tif 000010
【図１０】
0003796390.tif 000011
【図１１】
0003796390.tif 000012