(57)【特許請求の範囲】
【請求項１】
複数のデータ伝送路が直列に接続され、それらのデータ伝送路がデータの転送要求信号およびデータの転送許可信号を互いに送受信しながら、少なくとも行先ノード番号と命令コードとデータとを含むデータパケットの伝送および演算処理を実行する複数のプロセッサと、前記複数のプロセッサのデータ伝送路と接続されて、前記データの転送要求信号および前記データの転送許可信号を互いに送受信しながら、前記複数のプロセッサから出力されるデータパケットを合流させて伝送するルータとを備え、前記複数のプロセッサおよび前記ルータは、前記データパケットの伝送を制御するための前記データの転送要求信号および前記データの転送許可信号を生成する自己同期型転送制御回路を各々有するデータ駆動型情報処理装置において、
前記ルータ内のデータ伝送路の転送レートを前記複数のプロセッサ内で使用している転送レートよりも高くするために前記ルータ内の前記自己同期型制御回路の前記データの転送要求信号の遅延量を規定するインバータで構成される遅延段の段数を前記複数のプロセッサ内の前記自己同期型制御回路の転送要求信号の遅延量を規定する遅延段の段数よりも少なく設定する、データ駆動型情報処理装置の実行制御方法。
【請求項２】
前記ルータ内のデータ伝送路の転送レートを前記複数のプロセッサ内のデータ伝送路で使用している転送レートのＮ倍の転送レートで使用されるように前記ルータ内の前記自己同期型制御回路の前記遅延段の段数を前記複数のプロセッサ内の前記自己同期型制御回路の転送要求信号の遅延量を規定する遅延段の段数の１／Ｎに設定する、請求項１に記載のデータ駆動型情報処理装置の実行制御方法。
【請求項３】
データ駆動型情報処理装置において、
複数のデータ伝送路が直列に接続され、それらのデータ伝送路がデータの転送要求信号およびデータの転送許可信号を互いに送受信しながら、少なくとも行先ノード番号と命令コードとデータとを含むデータパケットの伝送および演算処理を実行する複数のプロセッサと、
前記複数のプロセッサのデータ伝送路と接続されて、前記データの転送要求信号および前記データの転送許可信号を互いに送受信しながら、前記複数のプロセッサから出力されるデータパケットを合流させて伝送するルータとを備え、
前記複数のプロセッサおよび前記ルータは、前記データパケットの伝送を制御するための前記データの転送要求信号および前記データの転送許可信号を生成する自己同期型転送制御回路を各々有し、
前記ルータ内のデータ伝送路の転送レートを前記複数のプロセッサ内で使用している転送レートよりも高くするために前記ルータ内の前記自己同期型制御回路の前記データの転送要求信号の遅延量を規定するインバータで構成される遅延段の段数は、前記複数のプロセッサ内の前記自己同期型制御回路の転送要求信号の遅延量を規定する遅延段の段数よりも少なく設定される、データ駆動型情報処理装置。
【請求項４】
前記ルータ内のデータ伝送路の転送レートを前記複数のプロセッサ内のデータ伝送路で使用している転送レートのＮ倍の転送レートで使用されるように前記ルータ内の前記自己同期型制御回路の前記遅延段の段数は、前記複数のプロセッサ内の前記自己同期型制御回路の転送要求信号の遅延量を規定する遅延段の段数の１／Ｎに設定される、請求項３に記載のデータ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデータ駆動型情報処理装置およびその実行制御方法に関し、特に、通信のネットワーク上の中継装置であるルータ内の自己同期型転送制御回路の転送レートをデータ駆動型情報処理装置のレートとは異なるように構成されたデータ駆動型情報処理装置およびその実行制御方法に関する。
【０００２】
【従来の技術】
データ駆動型情報処理装置（以下、データ駆動型プロセッサと称する）は、ある処理に必要な入力データがすべて揃いかつその処理に必要な演算装置などの資源が割当てられたときに処理が行なわれるという規則に従って処理が進行する。データ駆動型の情報処理動作を含むデータ処理装置には、非同期のハンドシェイク方式を採用したデータ伝送装置が用いられる。このようなデータ伝送装置では、複数のデータ伝送路が接続され、それらのデータ伝送路がデータの転送要求信号（以下、ＳＥＮＤ信号と称する）およびデータの転送を許可するか否かを示す転送許可信号（以下、ＡＣＫ信号と称する）を互いに送受信しながら、自律的なデータ転送が行なわれる。
【０００３】
図６は従来およびこの発明が適用されるデータパケットのフォーマットを示す図である。図６において、データパケットは行先ノード番号ＮＤ♯を格納するための行先ノード番号領域Ｆ１と、世代番号ＧＮ♯を格納するための世代番号領域Ｆ２と、命令コードＯＰＣを格納するための命令コード領域Ｆ３およびデータＤＡＴＡを格納するためのデータ領域Ｆ４を含む。ここで、世代番号とは、並列処理をしたいデータ群同士を区別するための番号である。行先ノード番号とは、同一世代内の入力データ同士を区別するための番号である。命令コードとは、命令デコーダに格納されている命令を実行するためのものである。
【０００４】
図７はデータ伝送路の構成を示すブロック図である。データ伝送路は、自己同期型の転送制御回路（以下、Ｃ素子と称する）１ａおよびＤタイプフリップフロップからなるデータ保持回路（以下、パイプラインレジスタと称する）１ｂを含む。Ｃ素子１ａはパルスを受けるパルス入力端子ＣＩと、転送の許可または転送の禁止を示す転送許可信号を出力する転送許可出力端子ＲＯと、パルスを出力するパルス出力端子ＣＯと、転送の許可または転送の禁止を示す転送許可信号を受ける転送許可入力端子ＲＩと、パイプラインレジスタ１ｂのデータ保持動作を制御するクロックパルスを与えるためのパルス出力端子ＣＰを有している。
【０００５】
図８は図７に示したＣ素子の動作を説明するためのタイミングチャートである。Ｃ素子１ａは端子ＣＩから図８（ａ）に示すパルスを受取ると、端子ＲＩに図８（ｅ）に示すような入力の転送許可信号が許可状態であれば、端子ＣＯから図８（ｄ）に示すパルスを出力するとともに、パイプラインレジスタ１ｂに図８（ｃ）に示すパルスを出力する。パイプラインレジスタ１ｂはＣ素子１ａから与えられるパルスに応答して、与えられる入力パケットデータを保持し、またその保持したデータを出力パケットデータとして出力する。
【０００６】
図９は図７に示したデータ伝送路を所定のロジック回路を介してシーケンスに接続した例を示すブロック図である。図９において、入力されるパケットデータは、パイプラインレジスタ３ａ→３ｂ→３ｃと順に転送されていく間に、ロジック回路３ｄ，３ｅでシーケンスに処理される。たとえばパイプラインレジスタ３ａがデータ保持状態である場合、後段のパイプラインレジスタ３ｂがデータ保持状態にあれば、パイプラインレジスタ３ａからパイプラインレジスタ３ｂにデータは送られない。
【０００７】
また、後段のパイプラインレジスタ３ｂがデータを保持していない状態であれば、もしくはデータを保持していない状態になれば、少なくとも予め設定された遅延時間をかけてデータがパイプラインレジスタ３ａからロジック回路３ｄで処理されてパイプラインレジスタ３ｂに送られる。このように接続された隣のパイプラインレジスタとの間で送受信されるＣＩとＣＯ端子で入出力されるＳＥＮＤ信号およびＲＩ端子とＲＯ端子で入出力されるＡＣＫ信号に従って非同期に、そして少なくとも予め設定された遅延時間をかけてデータ伝送を行なうような制御を自己同期型転送制御と呼び、そのようなデータ転送を制御する回路を自己同期型転送制御回路と呼ぶ。
【０００８】
図１０は図７に示したＣ素子の具体的な回路図である。このＣ素子はたとえば特開平６−８３７３１号公報に記載されたものである。図１０において、パルス入力端子ＣＩは前段部からのパルス状のＳＥＮＤ信号（転送要求信号）を受け、転送許可出力端子ＲＯは前段部にＡＣＫ信号（転送許可信号）を出力する。パルス出力端子ＣＯは後段部にパルス状のＳＥＮＤ信号を出力し、転送許可入力端子ＲＩは後段部からＡＣＫ信号を受ける。
【０００９】
マスタリセット入力端子ＭＲはマスタリセット信号を受ける。マスタリセット入力端子ＭＲに「Ｈ」レベルのパルスが与えられると、インバータ４ｅで反転され、フリップフロップ４ａ，４ｂがリセットされてＣ素子が初期化される。そして、パルス出力端子ＣＯ，転送許可出力端子ＲＯはともに初期状態として「Ｈ」レベル信号を出力する。転送許可出力端子ＲＯの出力が「Ｈ」レベルであることは転送許可状態を示し、逆に「Ｌ」レベルであることは転送禁止状態を示している。また、パルス出力端子ＣＯの出力が「Ｈ」レベルであることは、後段にデータ転送を要求していない状態を示し、逆に「Ｌ」レベルであることは後段にデータ転送を要求しているまたはデータを転送している状態を示している。
【００１０】
パルス入力端子ＣＩに「Ｌ」レベルの信号が入力されると、すなわち前段からデータ転送が要求されると、フリップフロップ４ａはセットされ、その出力Ｑに「Ｈ」レベル信号を出力する。この「Ｈ」レベル信号はインバータ４ｄで反転されて転送許可入力端子ＲＯからは「Ｌ」レベル信号が出力され、さらなるデータ転送を禁止する。一定時間後、パルス入力端子ＣＩに「Ｈ」レベルの信号が入力され、前段部から当該Ｃ素子へのデータのセットが終了する。この状態でかつ転送許可入力端子ＲＩから「Ｈ」レベル信号が入力されている、すなわち後段部からデータ転送を許可されている状態で、かつパルス出力端子ＣＯが「Ｈ」レベル信号を出力している、すなわち後段部へデータ転送している途中でない状態（データ転送を後段に要求していない状態）であれば、ＮＡＮＤゲート４ｃはアクティブとなり、「Ｌ」レベル信号を出力する。
【００１１】
その結果、フリップフロップ４ｂはセットされ、フリップフロップ４ｂはパイプラインレジスタへのパルス出力端子ＣＰから遅延素子４ｇを介して「Ｈ」レベル信号を出力するとともに、パルス出力端子ＣＯから遅延素子４ｆを介して後段部のＣ素子へ「Ｌ」レベルのＳＥＮＤ信号を出力する。すなわち、後段部へデータ転送を要求する。「Ｌ」レベルのＳＥＮＤ信号を受けた後段のＣ素子は、そのＣ素子に対してさらなるデータ転送が行なわれないように転送禁止を示すＡＣＫ信号を「Ｌ」レベルにしてＲＯ端子から出力する。該Ｃ素子は転送許可入力端子ＲＩからの「Ｌ」レベルのＡＣＫ信号を入力し、この信号によりフリップフロップ４ｂがリセットされる。その結果、パイプラインレジスタへのパルス出力端子ＣＰから遅延素子４ｇを介して「Ｌ」レベル信号が出力され、また後段部へのパルス出力端子ＣＯから遅延素子４ｆを介して「Ｈ」レベルのＳＥＮＤ信号が出力され、データ転送を終了する。
【００１２】
図１１は図９に示したデータ転送路を含んで構成された従来のデータ駆動型情報処理装置の概略ブロック図である。図１１において、データ駆動型情報処理装置Ｐｅは、合流部ＪＮＣと、発火制御部ＦＣと、演算部ＦＰと、プログラム記憶部ＰＳと、分岐部ＢＲＮと、複数個のパイプラインレジスタ３ａ〜３ｃと、複数のＣ素子２ａ〜２ｃを含む。各Ｃ素子２ａ〜２ｃは前段および後段のＣ素子とのパケット転送パルス（ＣＩ，ＣＯ，ＲＩ，ＲＯの信号）のやり取りによって対応する処理部（ＦＣ，ＦＰ，ＰＳ）についてのパケット転送を制御する。各パイプラインレジスタ３ａ〜３ｃは対応のＣ素子２ａ〜２ｃからのパルス入力に応じて、前段の処理部より入力されているデータを取込んで保持し、出力段に導出し、次のパルスまでこれを保持する。
【００１３】
図１１において、プロセッサＰｅに図６に示したデータパケットが入力されると、入力パケットはまず合流部ＪＮＣを通り、発火制御部ＦＣに伝達され、行先ノード番号ＮＤ♯と世代番号ＧＮ♯とに基づいて同一のパケットの間で対データが形成される。すなわち、ノード番号ＮＤ♯と世代番号ＧＮ♯が一致する異なる２つのデータパケットの検出を行ない、両番号が一致する２つのうち一方のデータパケットのデータを他方のデータパケットのデータ領域Ｆ４（図６）に追加格納し、この他方のデータパケットを出力する。
【００１４】
データ領域Ｆ４に対データ（１組のデータ）を格納したパケットは次に演算部ＦＰに伝達される。演算部ＦＰは伝達されたデータパケットを入力し、その入力パケットの命令コードＯＰＣに基づいて該入力パケットの内容に対して所定の演算を行ない、演算結果を該入力パケットのデータ領域Ｆ４に格納する。該入力パケットは次にプログラム記憶部ＰＳに伝達される。
【００１５】
プログラム記憶部ＰＳは伝達されたデータパケットを入力し、その入力パケットの行先ノード番号ＮＤ♯に基づいて、プログラム記憶部ＰＳ内のプログラムメモリからパケットが次に行くべきノード情報（ノード番号ＮＤ♯）と次に実行するべき命令情報（命令コードＯＰＣ）とコピーフラグＣＰＹを読出す。そして、読出された行先ノード番号ＮＤ♯および命令コードＯＰＣが該入力パケットの行先ノード番号領域Ｆ１および命令コード領域Ｆ３にそれぞれ格納される。
【００１６】
プログラム記憶部ＰＳから出力されたパケットは、その行先ノード番号ＮＤ♯に基づいてプロセッサＰＥから出力されるか、または図示しないルータを介して再度プロセッサＰＥ内部に戻される。ルータは上述したデータ駆動型プロセッサＰＥ間でのデータパケットの交換やデータ駆動型プロセッサＰＥへのデータパケットの入力制御および出力制御などに使われている。
【００１７】
図１２はルータの一使用例を示すブロック図である。図１２において、図１１に示したデータ駆動型プロセッサＰＥがルータ５を介して複数個接続された構成となっている。たとえば、どのデータ駆動型プロセッサでも処理を行なわない場合、入力されたデータはルータ５を通ってそのまま出力される。たとえば、プロセッサＰＥ１→ＰＥ１→ＰＥ３→ＰＥ２の順に処理される場合、入力されたデータがルータ５→５ａを介してプロセッサＰＥ１に入力され、プロセッサＰＥ１で処理されたデータが５ｂ→ルータ５を通って再度５ａを通りプロセッサＰＥ１に入力され、プロセッサＰＥ１で処理されたデータが５ｂ→ルータ５→５ｆを通ってプロセッサＰＥ３に入力され、プロセッサＰＥ３で処理されたデータが５ｅ→ルータ５→５ｃを介してプロセッサＰＥ２に入力され、プロセッサＰＥ２で処理されたデータが５ｄ→ルータ５を通って出力される。
【００１８】
図１３は従来のデータ駆動型プロセッサで用いられている２×２のルータのブロック図である。図１３において、ルータは２つの分岐部６ａ，６ｂと２つの合流部６ｃ，６ｄから構成される２入力，２出力のルータである。このルータでは、データパケットのスイッチングが行なわれ、２×２ルータはＩＮ１に入力されたデータパケットがＯＵＴ１またはＯＵＴ２から出力され、ＩＮ２に入力されたデータパケットがＯＵＴ１またはＯＵＴ２から出力される計４通りの経路がある。またこのルータに限らず、この発明で述べるルータでは、同時に入力された２つ以上の入力がすべて同じ出力から同時に出力されることは保証していない。すなわち、図１３に示した場合、ＩＮ１とＩＮ２に同時に入力されたデータパケットはいずれもＯＵＴ１から出力される、あるいはいずれもＯＵＴ２から出力されるような事象は保証していない。
【００１９】
図１３において、たとえばＩＮ１から入力されたデータパケットがＯＵＴ２へ、ＩＮ２から入力されたデータパケットがＯＵＴ１へルーティングされる場合、ＩＮ１から入力されたデータパケットは、分岐部６ａから経路６ｅを通り合流部６ｄに転送され、ＯＵＴ２から出力される。また、ＩＮ２から入力されたデータパケットは、分岐部６ｂから経路６ｆを通り合流部６ｃに転送され、ＯＵＴ１から出力される。
【００２０】
図１４は図１３に示した分岐部の一例を示す回路図であり、図１５は図２に示した分岐部の一例を示す回路図である。
【００２１】
図１４において分岐部は１入力，２出力で構成されており、この分岐部に入力されたデータパケットを２出力のどちらか一方に分岐させる。後段には図１３に示したように２つの合流部６ｃと６ｄとが接続されており、合流部６ｃとはＣＯａとＲＩａで、合流部６ｄとはＣＯｂとＲＩｂで図１６に示すように合流を制御する制御回路のＪＣＴＬ回路８を介してハンドシェイクが行なわれる。合流部６ｃへデータパケットを転送するか、あるいは合流部６ｄに転送するかは、分岐許可信号ＢＥにより切換えられる。後述の図１６で説明するように合流部にもＣ素子は含まれている。
【００２２】
図１４に示す分岐部において、分岐許可信号ＢＥによってハンドシェイクする相手のＣ素子（図１３に示した後段の合流部６ｃ，６ｄにあるＣ素子）のうちから１つを選択する、すなわち分岐部に入力されたデータパケットの分岐先が決定される。分岐許可信号ＢＥが「Ｌ」レベルのときは、ＮＡＮＤゲート７ｃがアクティブとなり、Ｃ素子７ａのパルス出力端子ＣＯの出力は合流部６ｃ側の端子ＣＩａに出力され、パイプラインレジスタ７ｂのデータパケットは後段の合流部６ｃ側のパイプラインレジスタへ出力される。逆に、分岐信号ＢＥが「Ｈ」レベルのときは、ＮＡＮＤゲート７ｄがアクティブとなり、Ｃ素子７ａのパルス出力端子ＣＯの出力は合流部６ｄ側の端子ＣＩｂへ出力され、パイプラインレジスタ７ｂのデータパケットは後段の合流部６ｄ側のパイプラインレジスタへ出力される。後段の２つのＣ素子からの転送許可信号ＲＩａ，ＲＩｂは、ＡＮＤゲート７ｅに入力され、その出力がＣ素子７ａのＲＩに入力される。
【００２３】
図１５はルータを構成するために使用される１入力，４出力の分岐部の一例を示す回路図である。図１５において、この分岐部は、分岐許可信号ＢＥａとＢＥｂとによってデータパケットの分岐先が決定される。すなわち、分岐許可信号ＢＥａ，ＢＥｂがいずれも「Ｌ」レベルのときは、ＮＡＮＤゲート７ｆがアクティブとなり、Ｃ素子７ａのパルス出力端子ＣＯの出力はＣＯａから出力され、パイプラインレジスタ７ｂのデータパケットは後段の合流部６ｃのＣＯａ，ＲＩａ側のパイプラインレジスタへ出力される。同様にして、分岐許可信号ＢＥａが「Ｈ」レベルであり、分岐許可信号ＢＥｂが「Ｌ」レベルのときは、後段の合流部のＣＯｂに出力され、分岐許可信号ＢＥａが「Ｌ」レベルであり、分岐許可信号ＢＥｂが「Ｈ」レベルのときは後段の合流部のＣＯｃに出力され、分岐許可信号ＢＥａ，ＢＥｂがいずれも「Ｈ」レベルのときは後段のＣＯｄにＣ素子７ａのＣＯ出力が出力され、先の説明と同様にして、合流部の１つにデータパケットが転送される。
【００２４】
後段の４つのＣ素子からの分岐許可信号ＲＩａ，ＲＩｂ，ＲＩｃ，ＲＩｄはＡＮＤゲート７ｊに入力され、その出力がＣ素子７ａのＲＩに入力される。
【００２５】
図１６は図１３に示した合流部の一例を示す回路図である。この図１６に示した合流部は２入力１出力で構成されており、２つの入力が同時に起こったときに同時に出力しないように合流を制御する制御回路であるＪＣＴＬ回路８を含む。このＪＣＴＬ回路８によってパイプラインレジスタ８ａ，８ｂのどちらか一方のデータパケットが出力されるように制御される。すなわち、ＪＣＴＬ回路８のパイプラインレジスタ８ａへのパルス出力端子ＣＰａが「Ｈ」レベルのときは、セレクタ８ｅのセレクト信号ＡＥＢが「Ｌ」レベルとなり、パイプラインレジスタ８ａのデータパケットはセレクタ８ｅからパイプラインレジスタ８ｄを介して出力される。また、合流を制御するＪＣＴＬ回路８のパイプラインレジスタ８ｂへのパルス出力端子ＣＰｂが「Ｈ」レベルのときは、セレクタ８ｅのセレクト信号ＡＥＢが「Ｈ」レベルとなり、パイプラインレジスタ８ｂのデータパケットがセレクタ８ｅからパイプラインレジスタ８ｄを介して出力される。なお、パイプラインレジスタ８ｄの制御はＣ素子８ｃによって行なわれる。
【００２６】
図１７は図１６に示したＪＣＴＬ回路の回路図である。図１７において、ＪＣＴＬ回路８は、Ｃ素子８１ａ，８１ｂに対応するパイプラインレジスタ８ａ，８ｂへのパルス出力端子ＣＰａ，ＣＰｂに出力されるパルスを制御する。すなわち、Ｃ素子８１ａのパルス出力端子ＣＰａが「Ｈ」レベルのとき、フリップフロップ８１ｃの出力ＡＥＢ、すなわち図１６に示したセレクタ８ｅのセレクト信号は「Ｌ」レベルとなる。また、Ｃ素子８１ｂのパルス出力端子ＣＰｂが「Ｈ」レベルのとき、フリップフロップ８１ｃの出力ＡＥＢ、すなわちセレクタ８ｅのセレクト信号は「Ｈ」レベルとなる。
【００２７】
【発明が解決しようとする課題】
従来のルータの構造は、図１３に示すように２×２の例のような構造で構成されている。しかし、画像処理などにおいて、接続されるデータ駆動型プロセッサが増え、処理数が増えるとともに処理が複雑化し、さらに処理速度が速くなると、多入力多出力のルータが求められる。これに対応した例として、図１８に４×４のルータの一例を示す。図１８において、ルータは４つの分岐部９ａ〜９ｄと、これらの分岐部からの出力を合流させる合流部１０ａ〜１０ｈと、これらの合流部の出力をさらに合流させる合流部１０ｉ〜１０ｌとによって構成されており、図１３に示した２×２のルータと比較して明らかに回路規模が増大している。そして、さらなる多入力多出力ルータになればなるほど、このルータ５の回路規模が爆発的に増大してしまう。このため、ルータの回路規模を縮小し、先の多入力多出力に適用したルータが必要となってきた。
【００２８】
図１９はそのような回路規模を抑えた２×２ルータを示すブロック図である。図１９に示すように、図１４に示した分岐部の１つと図１６に示した合流部の１つで構成し、合流部１１ａから分岐部１１ｂへの経路１１ｃが１本に構成されている。この場合、経路が１本になる経路１１ｃで最大転送レートでＩＮ１，ＩＮ２から入力されたデータが合流する。経路１１ｃの転送レートも同じ最大転送レートしかないため、最大転送レートで入力されたデータが合流しても処理し切れなくなる。結果的に、図１９に示したルータ構成では、ＩＮ１，ＩＮ２の入力２つの転送レートの総和が最大転送レート以下になるような転送レートでしか入力できなくなる。
【００２９】
また、仮にこのような最大転送レート以下で入力していては、ＯＵＴ１，ＯＵＴ２からの出力の転送レートも最大転送レート以下となる。従来は、このような制約を受けずに最大転送レートのままルーティングできるようにするために、回路規模が大きくなってしまうが、図１４に示した２×２の例のようなルータの構成をとらざるを得なかった。
【００３０】
しかし、今後は多入力多出力ルータに適した図１９に示すような構成で、合流経路でも最大転送レートを維持できる、すなわちさらに高速でハンドシェイクを行なう高速転送ルータが必要となってくる。このために、図１４に示した従来のルータ内の分岐部や、図１６に示した合流部においてハンドシェイクを担っているＣ素子の高速化が求められる。従来、このＣ素子はデータ駆動型プロセッサＰＥ内で使用されるＣ素子と同じ構成のものが使用されている。これは、先に示したように、これまでは２×２のルータで十分であったこと、またこのようなデータ駆動型情報処理装置ともなれば、設計はＣＡＤで行なうことから、Ｃ素子をマクロセル化、あるいはＣ素子を含む周辺回路をＩＰコア化して登録しておき、同一のマクロセルもしくはＩＰコアを利用した方が効率的であり、かつ信頼性もあったからである。
【００３１】
このように、共通な構成のＣ素子を使用しているため、Ｃ素子の高速化を行なおうとすると、データ駆動型プロセッサ側で次のような問題が発生する。すなわち、Ｃ素子の転送レートを上げ過ぎると、図８に示したパイプラインの１段、すなわちパイプラインレジスタから後段のパイプラインレジスタまでの区間に処理できる処理量が減り、処理を細切れにしなければならなくなる。たとえば、パイプラインレジスタ３ａとパイプラインレジスタ３ｂの間のロジック回路３ｄや、パイプラインレジスタ３ｂとパイプラインレジスタ３ｃの間のロジック回路３ｅの処理量を減らさなければならなくなる。結果的に、同じ処理量であってもパイプラインの段数が増えてしまい、その超過したパイプライン部だけ回路規模が大きくなってしまう。この問題を避けるために、データ駆動型プロセッサ内部では故意に高速のＣ素子を使っていなかった。
【００３２】
それゆえに、この発明の主たる目的は、パイプライン１段当りの処理量を減らすことなく、ルータの回路規模の増大を抑え、ルータ部でＣ素子の転送レートを最大転送レートから下げないで転送し得るデータ駆動型情報処理装置の実行制御方法および装置を提供することである。
【００３３】
【課題を解決するための手段】
この発明は、少なくとも行先ノード番号と世代番号と命令コードとデータを含んでなるデータパケットの入出力を制御するルータと、データパケットの転送および演算処理を制御する転送要求信号および転送許可信号を生成する自己同期型転送制御回路とを有するデータ駆動型情報処理装置において、ルータの自己同期型転送制御回路の転送レートをシステム内で使用している転送レートと異なるレートで使用することを特徴とする。
【００３４】
従来のデータ駆動型情報処理装置内部ではＣ素子の速度をわざと遅くしていたが、ルータの場合パイプラインのように段間に演算器やメモリがない単なる経路であるため、転送レートをわざわざ落とす必要はなく、倍速，４倍速と何倍にでも可能なレートのＣ素子を使うことができる。すなわち、従来のルータにおいて、合流したときの転送レートが合流前の転送レートと同じであるため、合流部の入力を最大転送レート以下にしなければならなかったが、この発明では合流部分で転送レートを倍にすることによって、ルータの構成を線路１本にしても最大転送レートで合流部に入力することができ、最大転送レートで出力することができる。
【００３５】
他の発明は、少なくとも行先ノード番号と命令コードとデータとを含むデータパケットの入出力を制御するルータと、前記データパケットの転送および演算処理を制御する転送要求信号および転送許可信号を生成する自己同期型転送制御回路を有するデータ駆動型情報処理装置において、ルータ内の自己同期型制御回路は、その転送レートをシステム内で使用している転送レートと異なるレートで使用することを特徴とする。
【００３６】
好ましくは、ルータは、自己同期型転送制御回路の転送レートをシステム内で使用している転送レートの複数倍のレートで使用することを特徴とする。
【００３７】
さらに、好ましくは、ルータは、自己同期型転送制御回路の転送レートを、ルータに入力される転送レートの総和のレートで使用することを特徴とする。
【００３８】
より好ましくは、ルータは、自己同期型転送制御回路の転送レートを、ルータから出力される転送レートの総和のレートで使用することを特徴とする。
【００３９】
さらに、好ましくは、ルータは、自己同期型転送制御回路の転送レートを、ルータから出力転送レートの総和と、前記ルータから出力される転送レートの総和の大きい方のレートで使用することを特徴とする。
【００４０】
さらに、より好ましくは、ルータを複数個組み合わせたことを特徴とする
【００４１】
【発明の実施の形態】
図１はこの発明の一実施形態の２×２の倍速転送ルータを示すブロック図である。この図１に示した実施形態では、２×２ルータを、合流部分の転送レートをデータ駆動型プロセッサ内部の最大転送レートの２倍、すなわちルータ内のＣ素子の転送レートを倍速に実現したものである。このルータは、図１４に示した分岐部の１つと、図１６に示した合流部の１つとから構成される２入力，２出力のルータである。このルータは、２×２＝４通りの経路がある。図１では、経路１２ｃの転送レートをルータの入力レートや出力レートの２倍にしてある。すなわち、合流部１２ａ内のＣ素子（図１６に示したＣ素子１０ｅ）内部のＳＥＮＤ出力線上の遅延素子（図１０に示した遅延素子４ｇ）と分岐部１２ｂ内のＣ素子（図１４に示すＣ素子７ａ）内部のＳＥＮＤ出力線上の遅延素子４ｇの遅延量を操作、たとえば遅延素子４ｆ内のインバータの段数をデータ駆動型プロセッサ内で使われている他のＣ素子の遅延素子内のインバータの段数の半分にすることにより、合流部１２ａ内のＣ素子と分岐部１２ｂ内のＣ素子の転送レートをデータ駆動型プロセッサの最大転送レートの２倍にすることができる。
【００４２】
図１において、ＩＮ１，ＩＮ２から最大転送レートで合流部２ａに入力されたデータは、最大転送レート同士で合流するが、経路１２ｃの転送レートがルータの入力レートや出力レートの２倍であるため、転送レートが最大転送レートを下回ることなく経路１２ｃを通り、分岐部１２ｂに転送できる。分岐部１２ｂで２つの入力データがＯＵＴ１，ＯＵＴ２に分岐するが、分岐部１２ｂ内のＣ素子の転送レートは２倍であるため、それぞれが最大転送レートで出力できる。
【００４３】
前述の図１３に示した従来の２×２ルータと比較すると、この発明の一実施形態では次の利点が得られる。
【００４４】
▲１▼  合流部と分岐部がともに１つずつになり、回路規模が抑えられる。
▲２▼  ルータ内の転送レートを２倍にすることにより、最大転送レートで転送レートを下げることなくルータに入力でき、ルータから出力できることになる。
【００４５】
▲３▼  遅延素子をインバータで構成することにより、これによる回路規模の増大もほとんどなく、簡単かつ容易に作製できる。
【００４６】
図２はこの発明の他の実施形態における４×４の４倍速転送ルータのブロック図である。この実施形態のルータは４×４＝１６通りの経路があり、従来例の図１５に示した１入力４出力の分岐部と、図１６に示した２入力１出力の合流部を３系統とから構成される４入力，４出力のルータである。そして、合流部１３ａ，１３ｂ，合流部１３ｃの転送区間と、合流部１３ｃから分岐部１３ｄへの転送区間に倍速転送を用いている。
【００４７】
また、図２においては、経路１３ｇの転送レートをルータの入力レートや出力レートの４倍にされている。すなわち、合流部１３ｃ内のＣ素子内部のＳＥＮＤ出力線上の遅延素子と分岐部１３ｄ内のＣ素子内部のＳＥＮＤ出力線上の遅延素子の遅延量を操作し、たとえば遅延素子内のインバータの段数をデータ駆動型プロセッサ内で使われているＣ素子の遅延素子内のインバータの段数の４分の１にし、合流部１３ｃ内のＣ素子と分岐部１３ｄ内のＣ素子間の転送レートはデータ駆動型プロセッサ内部の最大転送レートの４倍にされている。同様にして、合流部１３ａ内のＣ素子と合流部１３ｃ内のＪＣＴＬ回路内のＣ素子間の転送レート、および合流部１３ｂ内のＣ素子と合流部１３ｃ内のＪＣＴＬ回路内のＣ素子間の転送レートはプロセッサ内の最大転送レートの２倍にされている。
【００４８】
図２において、ＩＮ１，ＩＮ２から最大転送レートで合流部１３ａに入力されたデータは、最大転送レート同士で合流するが、倍速転送を用いているので問題なく経路１３ｅを通り、合流部１３ｃに転送される。同様にして、ＩＮ３，ＩＮ４から最大転送レートで合流部１３ｂに入力されたデータは、経路１３ｆを通り合流部１３ｃに倍速転送される。これらの４つの入力データは、合流部１３ｃで合流されるが、経路１３ｇの転送レートはルータの入力レートや出力レートの４倍であるため、転送レートが最大転送レートを下回ることなく経路１３ｇを通り、分岐部１３ｄに転送できる。分岐部１３ｄで４つの入力データがＯＵＴ１，ＯＵＴ２，ＯＵＴ３およびＯＵＴ４に分岐されるが、分岐部１３ｄ内のＣ素子の転送レートは４倍であるため、それぞれが最大転送レートで出力できる。
【００４９】
図３はこの発明の第３の実施形態の２×２の倍速転送ルータで構成した４×４ルータを示すブロック図である。図３において、倍速転送ルータ１４ａ，１４ｂ，１４ｃ，１４ｄは図１に示した倍速転送ルータであり、倍速転送ルータ１４ａ，１４ｂから倍速転送ルータ１４ｃ，１４ｄに転送する区間において倍速転送を用いている。このルータは、４×４＝１６通りの経路がある。図３では、経路１４ｅ，１４ｆ，１４ｇ，１４ｈの転送レートをルータの入力レートや出力レートの２倍にしてある。
【００５０】
すなわち、倍速転送ルータ１４ａの分岐部内のＣ素子と倍速転送ルータ１４ｃの合流部内のＪＣＴＬ回路内のＣ素子間の転送レートと、倍速転送ルータ１４ａの分岐部内のＣ素子と倍速転送ルータ１４ｄの合流部内のＪＣＴＬ回路内のＣ素子間の転送レートと、倍速転送ルータ１４ｂの分岐部内のＣ素子と倍速転送ルータ１４ｃ内の合流部内のＪＣＴＬ回路内のＣ素子間の転送レートおよび倍速転送ルータ１４ｂの分岐部内のＣ素子と倍速転送ルータ１４ｄの合流部内のＪＣＴＬ回路内のＣ素子間の転送レートはデータ駆動型プロセッサ内部の最大転送レートの２倍にされている。
【００５１】
図３において、たとえばＩＮ１から入力されたデータがＯＵＴ２へ、ＩＮ２から入力されたデータがＯＵＴ１へルーティングされる場合、ＩＮ１，ＩＮ２から最大転送レートで入力されたデータが倍速転送ルータ１４ａを通り、どちらも経路１４ｅから出力される。従来では、ルータでは同時に入力された２つ以上の入力がすべて同じ出力から同時に出力されることを保証していないが、経路１４ｅの転送レートも２倍であるので問題なく倍速転送ルータ１４ｃに転送される。その後、ＯＵＴ２，ＯＵＴ１からそれぞれ最大転送レートで出力される。
【００５２】
従来例で説明した図１８のルータは図１５の１入力４出力の分岐部４つと、図１６の合流部から構成されており、４×４＝１６経路と最大転送レートを保持するために、回路規模が莫大になったのに対して、この発明の各実施形態のルータと比較すると、ルータ内部でルータに入力される転送レートの総和、またはルータから出力される転送レートの総和に対応した転送レートを使用しているルータほど回路規模が抑えられることがわかる。すなわち、回路規模は図２に示した４倍速転送ルータ、図３に示した倍速転送ルータにより構成したルータ、図１８に示した従来のルータ方式で構成したルータの順に小さいことがわかる。特に、図１８の従来のルータ方式を使用した例では、その回路規模は他のルータよりもかなり大きくなっていることがわかる。
【００５３】
図４はこの発明のさらに他の実施形態によるＭ×Ｎ倍速転送ルータのブロック図である。ここで、Ｍ，Ｎは２以上の自然数であり、ＭとＮの関係は同じ値でもどちらが大きくてもいいものとする。この図４に示したルータは、Ｍ入力，Ｎ出力であり、Ｍ入力，１出力の合流部１５ａと１入力，Ｎ出力の分岐部１５ｂとから構成される。合流部１５ａは（Ｍ−１）個の２入力１出力の合流部から構成されている。このルータは、Ｍ×Ｎ本の経路を持つ。
【００５４】
図４において、ＭとＮの関係が、（Ｍ＞Ｎ）である場合、合流部１５ａと分岐部１５ｂの間の経路１５ｃの転送レートは、入力ＩＮ１からＩＮＭまでの転送レートの総和となる。たとえば、入力ＩＮ１からＩＮＭまでの転送レートがすべて同じであるならば、経路１５ｃはＭ倍速転送となる。また、（Ｍ＜Ｎ）である場合、合流部１５ａと分岐部１５ｂの間の経路１５ｃの転送レートは、出力ＯＵＴ１からＯＵＴＮまでの転送レートの総和となる。たとえば、出力ＯＵＴ１からＯＵＴＮまでの転送レートがすべて同じであるならば、経路１５ｃはＮ倍速転送となる。また、（Ｍ＝Ｎ）の場合、合流部１５ａと分岐部１５ｂ間の経路１５ｃの転送レートは、Ｍ倍速転送でもＮ倍速転送でも構わない。
【００５５】
図５はこの発明の各実施形態に用いられるＣ素子の回路図である。この図５に示したＣ素子は前述の図１０と同じであり、各実施形態に応じて遅延素子４ｆの段数が異なっている。
【００５６】
後段のＣ素子から図５に示したＣ素子のＲＩ端子に「Ｈ」レベル信号が入り、転送許可状態が示されると、このＣ素子はパイプラインレジスタの制御信号ＣＰを「Ｈ」レベルにして、Ｄタイプフリップフロップで構成されているパイプラインレジスタに前段から出力されているデータパケットを後段に出力するとともに、このデータパケットを保持する。そして、パイプラインレジスタから後段に出力されたデータパケットは図１０や図１１に示したようにロジックや演算部で所定の処理が行なわれた後、後段のパイプラインレジスタに転送されて保持される。
【００５７】
Ｃ素子の構成やパイプラインレジスタの構成は比較的簡単な構成であり、したがってこの部分での処理時間もしくは遅延時間は小さい。一方、ロジック部や演算部は回路構成が複雑となり、したがって処理時間もしくは遅延時間は先の処理時間もしくは遅延時間と比較して非常に大きなものとなる。パイプラインレジスタからデータの出力が完了し、このＣ素子のＣＰ信号が「Ｌ」レベルとなった後、このロジック部や演算部を介して後段のパイプラインレジスタにデータが転送されるまでの間、このＣ素子は後段のＣ素子に対してＣＯを「Ｌ」レベル状態を維持し、転送要求を続ける必要がある。
【００５８】
このために、Ｃ素子内には、遅延素子４ｆが設けられている。先に述べたように、ロジック部や演算部での処理時間もしくは遅延時間は、Ｃ素子やパイプラインレジスタでの処理時間もしくは遅延時間と比較して非常に大きいため、データ駆動型プロセッサ内部で使用されるＣ素子内の遅延素子４ｆをたとえばインバータ回路シリーズに接続して実現すると、１０段〜数１０段の規模となっている。このため、この発明の各実施形態でのルータ内のＣ素子の遅延素子４ｆにおけるインバータ回路のシリーズ段数を、データ駆動型プロセッサ内部のＣ素子に対して、１／２，１／４，１／Ｍまたは１／Ｎ（ＭやＮは自然数）にするのが容易である。
【００５９】
また、図５に示した実施形態では、遅延素子４ｆをＣＯ端子側に挿入した例で説明を行なったが、ＣＩ端子側に挿入しても所望の効果を得ることができる。ただし、この場合は初段の合流部内のＣ素子には適用せず、これ以外のルータ内のＣ素子に使用することになる。また、遅延素子はインバータ回路に限定されず、たとえば容量や抵抗成分による遅延やあるいはこれらの組合せで実現してもよい。
【００６０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００６１】
【発明の効果】
以上のように、この発明によれば、ルータ内の自己同期型転送制御回路の転送レートをシステム内で使用している転送レートと異なるレートで使用するようにしたので、従来のルータ方式に比べて、データ駆動型プロセッサ内の最大転送レートを保持しかつ従来の回路と比較して大幅に回路規模を抑えてルータを構成することができる。その結果、コストダウンを図ることができ、今後予想されるより処理数が増えかつ処理速度が速い動作に十分対応可能となる。しかも、この発明によるルータは簡単な回路構成で実現でき、ルータ部に関しては回路面積を縮小することができ、効率的に設計することができる。
【図面の簡単な説明】
【図１】  この発明の一実施形態の２×２の倍速転送ルータを示すブロック図である。
【図２】  この発明の他の実施形態における４×４の４倍速転送ルータを示すブロック図である。
【図３】  この発明のさらに他の実施形態の２×２の倍速転送ルータで構成した４×４ルータを示すブロック図である。
【図４】  この発明のさらに他の実施形態におけるＭ×Ｎの倍速転送ルータを示すブロック図である。
【図５】  この発明の各実施形態に用いられるＣ素子の回路図である。
【図６】  データパケットのフォーマットを示す図である。
【図７】  データ駆動型プロセッサにおけるデータ伝送路を示す図である。
【図８】  Ｃ素子のタイミングチャートである。
【図９】  データ駆動型プロセッサにおけるパイプラインを示すブロック図である。
【図１０】  Ｃ素子の回路図である。
【図１１】  データ駆動型プロセッサのブロック図である。
【図１２】  従来のルータの一使用例を示す図である。
【図１３】  従来の２×２ルータを示すブロック図である。
【図１４】  ルータに用いられる１入力，２出力の分岐部の回路図である。
【図１５】  ルータに用いられる１入力，４出力の分岐部の回路図である。
【図１６】  ルータに用いられる２入力，１出力の合流部の回路図である。
【図１７】  図１６に示した合流部のＪＣＴＬ回路の回路図である。
【図１８】  従来方式を用いた４×４ルータを示すブロック図である。
【図１９】  従来方式で回路規模を抑えた２×２ルータを示すブロック図である。
【符号の説明】
１２ａ，１３ａ〜１３ｃ，１５ａ  合流部、１２ｂ，１３ｄ，１５ｂ  分岐部、１４ａ〜１４ｄ  倍速転送ルータ、４ａ，４ｂ  フリップフロップ、４ｃ  ＮＡＮＤゲート、４ｄ，４ｅ  インバータ、４ｇ，４ｆ  遅延素子。
【図１】
0003907385.tif 000002
【図２】
0003907385.tif 000003
【図３】
0003907385.tif 000004
【図４】
0003907385.tif 000005
【図５】
0003907385.tif 000006
【図６】
0003907385.tif 000007
【図７】
0003907385.tif 000008
【図８】
0003907385.tif 000009
【図９】
0003907385.tif 000010
【図１０】
0003907385.tif 000011
【図１１】
0003907385.tif 000012
【図１２】
0003907385.tif 000013
【図１３】
0003907385.tif 000014
【図１４】
0003907385.tif 000015
【図１５】
0003907385.tif 000016
【図１６】
0003907385.tif 000017
【図１７】
0003907385.tif 000018
【図１８】
0003907385.tif 000019
【図１９】
0003907385.tif 000020