(57)【特許請求の範囲】
【請求項１】
複数のパイプライン段から構成される自己同期型データ伝送装置であって、
前記複数のパイプライン段の各々は、
パイプラインレジスタと、
前記パイプラインレジスタ上におけるデータパケットの転送を制御する転送制御回路とを含み、
前記転送制御回路は、当該パイプライン段の後段のパイプライン段の転送制御回路から与えられる当該パイプライン段のパイプラインレジスタ上におけるデータパケットの転送の許可または禁止を指示する転送許可パルス信号に基づいて、当該パイプライン段の前段のパイプライン段の転送制御回路から与えられるデータ転送要求パルス信号に応じて、当該パイプライン段のパイプラインレジスタにデータパケットの保持動作を制御するパルス信号与えかつ前記データ転送要求パルス信号を前記後段のパイプライン段の転送制御回路に転送し、
前記複数のパイプライン段のうちの特定の１つのパイプライン段に含まれる前記転送制御回路は、
当該特定のパイプライン段の前段のパイプライン段の転送制御回路から与えられたデータ転送要求パルス信号を、複数個のデータの転送を要求するための前記データの個数に相当するデータ転送要求パルス信号に変換して当該特定のパイプライン段の後段のパイプライン段の転送制御回路に与えるデータ個数制御回路と、
前記転送を要求する複数個のデータの個数を設定するデータ個数設定回路とを含む、自己同期型データ伝送装置。
【請求項２】
前記データ個数制御回路は、
前記前段のパイプライン段の転送制御回路からデータ転送要求パルス信号が与えれたことに応じて、転送許可パルス信号を前記前段のパイプライン段の転送制御回路に出力する第１の論理回路と、
前記後段のパイプライン段の転送制御回路にデータ転送要求パルス信号を出力する第２の論理回路と、
前記データ個数設定回路によってデータの個数が設定されたことに応じて、その個数を記憶する記憶回路と、
前記後段のパイプライン段の転送制御回路から転送許可パルス信号を受けるゲート回路と、
前記記憶回路に前記データの個数が記憶されているときに、前記第１の論理回路に前記データ転送要求パルス信号が与えられたことに応じて、前記ゲート回路が前記転送許可パルス信号を受けるごとに、前記記憶回路に記憶されているデータの個数だけ前記第２の論理回路から前記データ転送要求パルス信号を出力させる転送回路とを含む、請求項１に記載の自己同期型データ伝送装置。
【請求項３】
前記データ個数制御回路は、
前記データ転送要求パルス信号を出力した回数を計数する計数回路と、
前記計数回路の計数出力と前記記憶回路に記憶されているデータの個数とを比較し、両者が一致したことに応じて前記転送回路による前記データ転送要求パルス信号の出力を禁止させる禁止回路とを含む、請求項２に記載の自己同期型データ伝送装置。
【請求項４】
複数のパイプライン段から構成される自己同期型データ伝送装置を備えたデータ駆動型情報処理装置であって、
前記複数のパイプライン段の各々は、
パイプラインレジスタと、
前記パイプラインレジスタ上におけるデータパケットの転送を制御する転送制御回路とを含み、
前記転送制御回路は、当該パイプライン段の後段のパイプライン段の転送制御回路から与えられる当該パイプライン段のパイプラインレジスタ上におけるデータパケットの転送の許可または禁止を指示する転送許可パルス信号に基づいて、当該パイプライン段の前段のパイプライン段の転送制御回路から与えられるデータ転送要求パルス信号に応じて、当該パイプライン段のパイプラインレジスタにデータパケットの保持動作を制御するパルス信号与えかつ前記データ転送要求パルス信号を前記後段のパイプライン段の転送制御回路に転送し、
前記複数のパイプライン段のうちの特定の１つのパイプライン段に含まれる前記転送制御回路は、
当該特定のパイプライン段の前段のパイプライン段の転送制御回路から与えられたデータ転送要求パルス信号を、複数個のデータの転送を要求するための前記データの個数に相当するデータ転送要求パルス信号に変換して当該特定のパイプライン段の後段のパイプライン段の転送制御回路に与えるデータ個数制御回路と、
前記パイプラインレジスタ上を転送されるデータパケットに設定されている出力パケット情報に基づいて、前記転送を要求する複数個のデータの個数を検出するデータ個数検出回路とを含む、データ駆動型情報処理装置。
【請求項５】
前記パイプラインレジスタ上を転送されるデータパケットは、行先情報を格納する行先フィールドと、命令情報を格納する命令フィールドと、データを格納するデータフィールドとを少なくとも含み、
前記データ個数制御回路は、前記データ個数検出回路が前記データパケットに含まれる命令フィールドにコピー命令があることを検出したことに応じて、当該データパケットからコピーしたデータを前記後段のパイプライン段に伝送させる、請求項４に記載のデータ駆動型情報処理装置。
【請求項６】
前記データ個数制御回路は、前記データ個数検出回路が前記コピー命令を検出したことに応じて、当該データパケットに含まれるデータフィールドのデータと同じデータを有しかつ行先情報の異なる複数のデータパケットを前記後段のパイプライン段に伝送させる、請求項５に記載のデータ駆動型情報処理装置。
【請求項７】
前記データ個数制御回路は、前記データ個数検出回路が前記コピー命令を検出したことに応じて、当該データパケットに含まれるデータフィールドのデータとは異なるデータを有する複数のデータパケットを前記後段のパイプライン段に伝送させる、請求項５に記載のデータ駆動型情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は自己同期型転送制御回路およびこれを用いたデータ駆動型情報処理装置に関し、特に、１つのパルスから複数個のパルスの転送を可能とした自己同期型転送制御回路を用いた多出力命令により、プログラム実行効率を向上させるデータ駆動型情報処理装置に関する。
【０００２】
【従来の技術】
近年のマルチメディア化に伴い、画像処理などでは多量の演算が要求される。このような多量の演算を高速に処理する装置として、データ駆動型情報処理装置（以下、データ駆動型プロセッサと称する）が提案されている。データ駆動型プロセッサでは、ある処理に必要な入力データがすべて揃いかつその処理に必要な演算装置などの資源が割当てられたときに処理が行なわれるという規則に従って処理が進行する。データ駆動型の情報処理動作を含むデータ処理装置には、非同期のハンドシェイク方式を採用したデータ伝送装置が用いられる。このようなデータ伝送装置では、複数のデータ伝送路が接続され、それらのデータ伝送路がデータの転送要求信号（以下、ＳＥＮＤ信号と称する）およびデータの転送を許可するか否かを示す転送許可信号（以下、ＡＣＫ信号と称する）を互いに送受信しながら、自律的なデータ転送が行なわれる。
【０００３】
図１２は従来およびこの発明が適用されるデータパケットのフォーマットを示す図である。図１２において、データパケットは行先ノード番号ＮＤ♯を格納するための行先ノード番号領域Ｆ１と、世代番号ＧＮ♯を格納するための世代番号領域Ｆ２と、命令コードＯＰＣを格納するための命令コード領域Ｆ３およびデータＤＡＴＡを格納するためのデータ領域Ｆ４を含む。ここで、世代番号とは、並列処理をしたいデータ群同士を区別するための番号である。行先ノード番号とは、同一世代内の入力データ同士を区別するための番号である。命令コードとは、命令デコーダに格納されている命令を実行するためのものである。
【０００４】
図１３はデータ伝送路の構成を示すブロック図である。データ伝送路は、自己同期型の転送制御回路（以下、Ｃ素子と称する）１ａおよびＤタイプフリップフロップからなるデータ保持回路（以下、パイプラインレジスタと称する）１ｂを含む。Ｃ素子１ａはパルスを受けるパルス入力端子ＣＩと、転送の許可または転送の禁止を示す転送許可信号を出力する転送許可出力端子ＲＯと、パルスを出力するパルス出力端子ＣＯと、転送の許可または転送の禁止を示す転送許可信号を受ける転送許可入力端子ＲＩと、パイプラインレジスタ１ｂのデータ保持動作を制御するクロックパルスを与えるためのパルス出力端子ＣＰを有している。
【０００５】
図１４は図１３に示したＣ素子の動作を説明するためのタイミングチャートである。Ｃ素子１ａは端子ＣＩから図１４（ａ）に示すパルスを受取ると、端子ＲＩに図１４（ｅ）に示すような入力の転送許可信号が許可状態であれば、端子ＣＯから図１４（ｄ）に示すパルスを出力するとともに、パイプラインレジスタ１ｂに図１４（ｃ）に示すパルスを出力する。パイプラインレジスタ１ｂはＣ素子１ａから与えられるパルスに応答して、与えられる入力パケットデータを保持し、またその保持したデータを出力パケットデータとして出力する。
【０００６】
図１５は図１３に示したデータ伝送路を所定のロジック回路を介してシーケンスに接続した例を示すブロック図である。図１５において、入力されるパケットデータは、パイプラインレジスタ３ａ→３ｂ→３ｃと順に転送されていく間に、ロジック回路３ｄ，３ｅでシーケンスに処理される。図１５において、たとえばパイプラインレジスタ３ａがデータ保持状態である場合、後段のパイプラインレジスタ３ｂがデータ保持状態にあれば、パイプラインレジスタ３ａからパイプラインレジスタ３ｂにデータは送られない。
【０００７】
また、後段のパイプラインレジスタ３ｂがデータを保持していない状態であれば、もしくはデータを保持していない状態になれば、少なくとも予め設定された遅延時間をかけてデータがパイプラインレジスタ３ａからロジック回路３ｄで処理されてパイプラインレジスタ３ｂに送られる。このように接続された隣のパイプラインレジスタとの間で送受信されるＣＩとＣＯ端子で入出力されるＳＥＮＤ信号およびＲＩ端子とＲＯ端子で入出力されるＡＣＫ信号に従って非同期に、そして少なくとも予め設定された遅延時間をかけてデータ伝送を行なうような制御を自己同期型転送制御と呼び、そのようなデータ転送を制御する回路を自己同期型転送制御回路と呼ぶ。
【０００８】
図１６は図１５に示したＣ素子の具体的な回路図である。このＣ素子はたとえば特開平６−８３７３１号公報に記載されたものである。図１６において、パルス入力端子ＣＩは前段部からのパルス状のＳＥＮＤ信号（転送要求信号）を受け、転送許可出力端子ＲＯは前段部にＡＣＫ信号（転送許可信号）を出力する。パルス出力端子ＣＯは後段部にパルス状のＳＥＮＤ信号を出力し、転送許可入力端子ＲＩは後段部からＡＣＫ信号を受ける。
【０００９】
マスタリセット入力端子ＭＲはマスタリセット信号を受ける。マスタリセット入力端子ＭＲに「Ｈ」レベルのパルスが与えられると、インバータ４ｅで反転され、フリップフロップ４ａ，４ｂがリセットされてＣ素子が初期化される。そして、パルス出力端子ＣＯ，転送許可出力端子ＲＯはともに初期状態として「Ｈ」レベル信号を出力する。転送許可出力端子ＲＯの出力が「Ｈ」レベルであることは転送許可状態を示し、逆に「Ｌ」レベルであることは転送禁止状態を示している。また、パルス出力端子ＣＯの出力が「Ｈ」レベルであることは、後段にデータ転送を要求していない状態を示し、逆に「Ｌ」レベルであることは後段にデータ転送を要求しているまたはデータを転送している状態を示している。
【００１０】
パルス入力端子ＣＩに「Ｌ」レベルの信号が入力されると、すなわち前段からデータ転送が要求されると、フリップフロップ４ａはセットされ、その出力Ｑに「Ｈ」レベル信号を出力する。この「Ｈ」レベル信号はインバータ４ｄで反転されて転送許可入力端子ＲＯからは「Ｌ」レベル信号が出力され、さらなるデータ転送を禁止する。一定時間後、パルス入力端子ＣＩに「Ｈ」レベルの信号が入力され、前段部から当該Ｃ素子へのデータのセットが終了する。この状態でかつ転送許可入力端子ＲＩから「Ｈ」レベル信号が入力されている、すなわち後段部からデータ転送を許可されている状態で、かつパルス出力端子ＣＯが「Ｈ」レベル信号を出力している、すなわち後段部へデータ転送している途中でない状態（データ転送を後段に要求していない状態）であれば、ＮＡＮＤゲート４ｃはアクティブとなり、「Ｌ」レベル信号を出力する。
【００１１】
その結果、フリップフロップ４ａと４ｂはともにリセットされ、フリップフロップ４ｂはパイプラインレジスタへのパルス出力端子ＣＰから遅延素子４ｅを介して「Ｈ」レベル信号を出力するとともに、パルス出力端子ＣＯから遅延素子４ｆを介して後段部のＣ素子へ「Ｌ」レベルのＳＥＮＤ信号を出力する。すなわち、後段部へデータ転送を要求する。「Ｌ」レベルのＳＥＮＤ信号を受けた後段のＣ素子は、そのＣ素子に対してさらなるデータ転送が行なわれないように転送禁止を示すＡＣＫ信号を「Ｌ」レベルにしてＲＯ端子から出力する。該Ｃ素子は転送許可入力端子ＲＩからの「Ｌ」レベルのＡＣＫ信号を入力し、この信号によりフリップフロップ４ｂがセットされる。その結果、パイプラインレジスタへのパルス出力端子ＣＰから遅延素子４ｅを介して「Ｌ」レベル信号が出力され、また後段部へのパルス出力端子ＣＯから遅延素子４ｆを介して「Ｈ」レベルのＳＥＮＤ信号が出力され、データ転送を終了する。
【００１２】
図１７は図１５に示したデータ転送装置を含んで構成された従来のデータ駆動型プロセッサの概略ブロック図である。図１７において、データ駆動型プロセッサＰｅは、合流部ＪＮＣと、発火制御部ＦＣと、演算部ＦＰと、プログラム記憶部ＰＳと、分岐部ＢＲＮと、複数個のパイプラインレジスタ３ａ〜３ｃと、複数のＣ素子２ａ〜２ｃを含む。各Ｃ素子２ａ〜２ｃは前段および後段のＣ素子とのパケット転送パルス（ＣＩ，ＣＯ，ＲＩ，ＲＯの信号）のやり取りによって対応する処理部（ＦＣ，ＦＰ，ＰＳ）についてのパケット転送を制御する。各パイプラインレジスタ３ａ〜３ｃは対応のＣ素子２ａ〜２ｃからのパルス入力に応じて、前段の処理部より入力されているデータを取込んで保持し、出力段に導出し、次のパルスまでこれを保持する。
【００１３】
図１７において、プロセッサＰｅに図１２に示したデータパケットが入力されると、入力パケットはまず合流部ＪＮＣを通り、発火制御部ＦＣに伝達され、行先ノード番号ＮＤ♯と世代番号ＧＮ♯とに基づいて同一のパケットの間で対データが形成される。すなわち、ノード番号ＮＤ♯と世代番号ＧＮ♯が一致する異なる２つのデータパケットの検出を行ない、両番号が一致する２つのうち一方のデータパケットのデータを他方のデータパケットのデータ領域Ｆ４（図１２）に追加格納し、この他方のデータパケットを出力する。データ領域Ｆ４に対データ（１組のデータ）を格納したパケットは次に演算部ＦＰに伝達される。演算部ＦＰは伝達されたデータパケットを入力し、その入力パケットの命令コードＯＰＣに基づいて該入力パケットの内容に対して所定の演算を行ない、演算結果を該入力パケットのデータ領域Ｆ４に格納する。該入力パケットは次にプログラム記憶部ＰＳに伝達される。
【００１４】
プログラム記憶部ＰＳは伝達されたデータパケットを入力し、その入力パケットの行先ノード番号ＮＤ♯に基づいて、プログラム記憶部ＰＳ内のプログラムメモリからパケットが次に行くべきノード情報（ノード番号ＮＤ♯）と次に実行するべき命令情報（命令コードＯＰＣ）とコピーフラグＣＰＹを読出す。そして、読出された行先ノード番号ＮＤ♯および命令コードＯＰＣが該入力パケットの行先ノード番号領域Ｆ１および命令コード領域Ｆ３にそれぞれ格納される。さらに、読出されたコピーフラグＣＰＹが「１」であれば、プログラムメモリ中の次のアドレスも有効と判断されて、次のアドレスに記憶されている行先ノード番号ＮＤ♯および命令コードＯＰＣを格納したパケットも生成される。
【００１５】
プログラム記憶部ＰＳから出力されるパケットは分岐部ＢＲＮへ伝達され、その行先ノード番号ＮＤ♯に基づいて出力されるか、または再度プロセッサ内部に戻される。同一データを３個にコピーするためには、このプロセッサ内部に戻されたパケットでコピー処理をすることになる。したがって、同一データを複数個コピーするためには、複数回プロセッサへパケットを戻してコピー処理しなければならない。
【００１６】
図４（ａ）は入力データを４個にコピーする場合のデータフローグラフである。入力データに対して、ＮＯＰ（演算を行なわずにコピーだけする）命令１６ａを実行することでデータ１６ｈとデータ１６ｉが出力される。データ１６ｉは図１２に示したパケットの命令コードＯＰＣに相当するＯＰＣ１命令１６ｄとして実行され、データ１６ｈはＮＯＰ命令１６ｂとして実行される。ＮＯＰ命令１６ｂにおいて、コピーが実行されてデータ１６ｊとデータ１６ｋが出力される。データ１６ｋはＯＰＣ２命令１６ｅとして実行され、データ１６ｊはＮＯＰ命令１６ｃとして実行される。ＮＯＰ命令１６ｃにおいてコピーが実行されてデータ１６ｌ，データ１６ｍが出力される。データ１６ｍはＯＰＣ３命令１６ｆとして実効され、データ１６ｌはＯＰＣ４命令１６ｇとして実行される。このようにデータを４個コピーするためには、２個のパケットコピー命令を３回実行する必要がある。
【００１７】
図１８は、従来のデータ駆動型プロセッサで乗算命令を実行する例を示す図である。図１８において、前述の図１５に示したロジック回路３ｄ，３ｅとして、乗算器３ｆとシフタ３ｇとが設けられている。たとえば、１２ビットデータ同士を乗算する場合、演算結果として２４ビットのデータとなるが、図１２に示したようにパケットフォーマットとして、データフィールドに格納するデータは１２ビットに制限されているため、２４ビットの演算結果データを上位１２ビットと下位１２ビットに分けて演算する必要がある。このため、シフタ３ｇを用いて上位１２ビットデータを含むパケットを出力する命令と、下位１２ビットデータを含むパケットを出力する命令の２つを実行することで実現していた。
【００１８】
【発明が解決しようとする課題】
上述のごとく、従来のデータ駆動型プロセッサにおいて、複数個のパケットコピーが行なわれるような処理が実行される場合、または複数個の同一データが必要とされる場合、ＮＯＰ命令を複数回実行することで実現できるが、ＮＯＰ命令を実行するために無駄な周回パケット、すなわち図１７に示したパケット出力からパケット入力に戻されて周回するパケットが発生し、プログラムの実行効率を上げることが困難であった。
【００１９】
それゆえに、この発明の主たる目的は、プログラムを効率よく実行可能にするための自己同期型転送制御回路およびこれを用いたデータ駆動型情報処理装置を提供することである。
【００２０】
【課題を解決するための手段】
この発明は、転送の許可または禁止を指示する指示信号に基づいて、前段部から与えられる第１のパルスを第２のパルスとして後段部に転送する自己同期型転送制御回路であって、前段部の転送制御回路から第１のパルスとして１つのデータ転送要求パルス信号を受け、後段部の転送制御回路に第２のパルスとしての複数個のデータ転送要求パルス信号を出力する制御回路を備えたことを特徴とする。
【００２１】
より好ましくは、さらに、前記後段部に転送するデータ個数を設定できるデータ個数設定手段を含むことを特徴とする。
【００２２】
より好ましくは、制御回路は、前段部の転送制御回路からデータ転送信号要求パルス信号が与えられたことに応じて、第３のパルスとして転送許可パルス信号を前段部の転送制御回路に出力する第１の論理回路と、後段部の転送制御回路にデータの転送要求パルス信号を出力する第２の論理回路と、個数設定手段によってデータ個数が設定されたことに応じて、その個数を記憶する記憶回路と、後段部の転送制御回路から第４のパルスとして転送許可信号を受けるゲート回路と、記憶回路にデータ個数が記憶されているときに、第１の論理回路にデータ転送要求パルス信号が与えられたことに応じて、ゲート回路が転送許可信号を受けるごとに、記憶回路に記憶されているデータ個数だけ第２の論理回路から転送要求パルス信号を出力させる転送回路を含むことを特徴とする。
【００２３】
制御回路は、転送要求パルス信号を出力した回数を計数する計数回路と、計数回路の計数出力と前記記憶回路に記憶されているデータ個数とを比較し、両者が一致したことに応じて転送回路による転送要求パルス信号の出力を禁止させる禁止回路を含むことを特徴とする。
【００２４】
他の発明は、は、前段部の転送制御部から転送の要求を示す１つのデータ転送要求パルス信号を受け、後段部の転送制御回路に複数個の転送要求パルス信号を出力する自己同期型転送制御回路を用いたデータ駆動型情報処理装置であって、データを自己同期型転送制御回路から与えられるクロック信号に基づいてデータパケットを保持するデータ伝送路と、データ伝送路に保持されているデータパケットに設定されている出力パケット情報に基づいて、データ個数を検出するデータ数検出手段とを備え、自己同期型転送制御回路は、データ数検出手段によってデータ個数が検出されたことに応じて、そのデータ個数に相当する転送要求パルス信号を出力することを特徴とする。
【００２５】
より好ましくは、データ伝送路は、少なくとも先行情報を格納する行先フィールドと、命令情報を格納する命令フィールドと、データを格納するデータフィールドとを含むデータパケットを保持し、データ数検出手段は、データ伝送路に保持されているデータパケットに含まれる命令フィールドにコピー命令があることを検出したことに応じて、当該データ伝送路からコピーしたデータを後段のデータ伝送路に伝送させることを特徴とする。
【００２６】
さらに，より好ましくは、データ数検出手段は、前記コピー命令を検出したことに応じて、当該データパケットに含まれるデータフィールドのデータと同じデータを有しかつ行き先情報の異なる複数のデータパケットを当該データ伝送路から後段部のデータ伝送路に伝送させることを特徴とする。
【００２７】
さらに、より好ましくは、データ数検出手段は、コピー命令を検出したことに応じて、当該データパケットのデータとは異なる複数のデータパケットを当該データ伝送路から後段のデータ伝送路に伝送させることを特徴とする。
【００２８】
【発明の実施の形態】
図１はこの発明の第１の実施形態の自己同期型転送制御回路を示す回路図である。図１において、パルス入力端子ＣＩは前段部からのパルス状の転送要求信号を受け、転送許可出力端子ＲＯは前段部に転送許可信号を出力する。パルス出力端子ＣＯは後段部にパルス状の転送要求信号を出力し、転送許可入力端子ＲＩは後段部から転送許可信号を受ける。マスタリセット入力端子ＭＲＢはマスタリセット信号を受け、ＥＸＢ端子はパケット消去信号を受ける。ＣＰＹ端子はパケットコピー信号を受け、ＮＵＭ端子はパケットコピー個数信号を受ける。
【００２９】
さらに、自己同期型転送制御回路は、Ｃ素子９ａ，９ｂと、Ｄタイプフリップフロップ９ｃ，９ｄ，９ｅ，９ｇと、ＮＡＮＤゲート９ｋ，９ｉと、ＯＲゲート９ｌ，９ｎと、ＡＮＤゲート９ｐ，９ｊ，９ｍと、カウンタ９ｆと、インバータ９ｈ，９ｑ，９ｒ，９ｕ，９ｖと、フリップフロップ９ｓと、遅延素子９ｔとを含む。
【００３０】
図２は図１に示した自己同期型転送制御回路の動作を説明するためのタイミングチャートである。
【００３１】
次に、図２のタイミングチャートを参照しながら、図１の自己同期型転送制御回路のパケット消去動作と、パケット通常転送動作と、パケットコピー動作について順に説明する。
【００３２】
まず、マスタリセット端子ＭＲＢから「Ｌ」レベルのパルスが入力されると、Ｃ素子９ａと９ｂとがリセットされ、それぞれのパルス出力端子ＣＯと転送許可出力端子ＲＯからともに「Ｈ」レベル信号が出力される。図２に示したタイミングチャートはこの状態から示されている。その結果、図２（ｉ），（ｂ）に示すように、自己同期型転送制御回路のパルス出力端子ＣＯと転送許可出力端子ＲＯからともに「Ｈ」レベル信号が出力され、自己同期型転送制御回路が初期化される。また、Ｄタイプフリップフロップ９ｇは非同期でリセットされ、その出力Ｑには「Ｌ」レベル信号が出力される。この信号はインバータ９ｑで反転されて「Ｈ」レベル信号となり、３入力ＡＮＤゲート９ｍに入力される。なお、Ｃ素子９ａと９ｂの動作について、従来技術での説明と重複する部分は説明を省略する。
【００３３】
ＥＸＢ端子に図２（ｃ）に示す「Ｌ」レベル信号が入力されることにより、自己同期型転送制御回路はパケット消去動作を行なう。すなわち、ＥＸＢ端子に「Ｌ」レベル信号が入力されている状態において、自己同期型転送制御回路のパルス入力端子ＣＩから図２（ａ）に示すような「Ｌ」レベルのパルス信号が入力されると、Ｃ素子９ａのパルス入力端子ＣＩに「Ｌ」レベルのパルス信号が入力される。一方、ＲＩ端子にはマスタリセット信号ＭＲＢが入力された後であるため、図２（ｊ）に示す「Ｈ」レベル信号が入力されており、Ｃ素子９ａは従来の動作をして、一定時間後に端子ＣＩを図２（ａ）に示すように「Ｈ」レベルにすると、Ｃ素子９ａのパルス出力端子ＣＰから図３（ｉ）に示す「Ｌ」レベル信号が出力され、パイプラインレジスタへのパルス出力端子ＣＰは「Ｈ」レベルの信号に変化する。Ｃ素子９ａのＣＰ端子から出力された「Ｈ」レベル信号はフリップフロップ９ｓをセットし、遅延素子９ｔを介してＦＥＢ端子に図２（ｈ）に示す「Ｌ」レベル信号が出力される。
【００３４】
また、該ＣＰ端子の信号の立上がりに同期して、Ｄタイプフリップフロップ９ｃはＥＸＢ端子から入力されている「Ｌ」レベル信号を取込み、Ｄタイプフリップフロップ９ｃの出力Ｑから導出される。これにより、ＮＡＮＤゲート９ｋは「Ｈ」レベル信号を出力し、一方Ｃ素子９ｂのＣＯ端子も同様にして「Ｈ」レベル信号を出力しているため、ＡＮＤゲート９ｐを介して自己同期型転送制御回路のパルス出力端子ＣＯは「Ｈ」レベル信号を出力し続ける。また、Ｄタイプフリップフロップ９ｃの出力ＱはＯＲゲート９ｌの一方の入力端子に「Ｌ」レベル信号として入力されているため、Ｃ素子９ａのパルス出力端子ＣＯから出力される信号は、そのままＯＲゲート９ｌの出力となる。
【００３５】
さらに、自己同期型転送制御回路の転送許可入力端子ＲＩには初期状態として「Ｈ」レベル信号が与えられているため、ＯＲゲート９ｌの出力信号がＡＮＤゲート９ｍに入力されると、そのままＡＮＤゲート９ｍの出力信号となる。結果的に、Ｃ素子９ａのパルス出力端子ＣＯから出力される信号は、そのままＣ素子９ａの転送許可入力端子ＲＩに入力されることになる。上述したように、Ｃ素子９ａのパルス出力端子ＣＯからは「Ｌ」レベル信号が出力されているので、Ｃ素子９ａの転送許可入力端子ＲＩには「Ｌ」レベル信号が入力される。これにより、従来例で説明した図１４のタイミングチャートにも示したように、Ｃ素子９ａの端子ＣＰは「Ｌ」レベルに変化する。その結果、Ｃ素子９ａの端子ＣＯは「Ｈ」レベルに変化し、その信号がＯＲゲート９ｌとＡＮＤゲート９ｍを介してＣ素子９ａのＲＩ端子に入力され、次のデータ転送が許可された状態になってパケット消去動作が終了する。
【００３６】
なお、図２から明らかなように、消去動作中は端子ＣＯが「Ｈ」レベルのままであり、したがってパケットは次段には転送されず、前段部から転送されてくる次のパケットにより上書きされて消滅する。
【００３７】
次に、自己同期型転送制御回路のパケット通常転送動作について説明する。ＥＸＢ端子から「Ｈ」レベル信号が入力されかつＣＰＹ端子から「Ｌ」レベル信号が入力されている状態において、自己同期型転送制御回路のパルス入力端子ＣＩから「Ｌ」レベルのパルス信号が入力されると、Ｃ素子９ａのパルス入力端子ＣＩに「Ｌ」レベルのパルス信号が入力され、Ｃ素子９ａは従来例と同様の動作を行なって、一定時間後に端子ＣＩを「Ｈ」レベルにすると、Ｃ素子９ａのパルス出力端子ＣＯからは「Ｌ」レベルの信号が出力される。また、パイプラインレジスタへのパルス出力端子ＣＰからは「Ｈ」レベルの信号が出力される。このＣ素子９ａのパルス出力端子ＣＰからの「Ｈ」レベル信号は、フリップフロップ９ｓをセットし、遅延素子９ｔを介してＦＥＢ端子に「Ｌ」レベル信号が出力される。
【００３８】
また、このパルス出力端子ＣＰの信号の立上がりに同期して、Ｄタイプフリップフロップ９ｃがＥＸＢ端子から入力されている「Ｈ」レベル信号を取込んでＤタイプフリップフロップ９ｃの出力Ｑに導出し、またＤタイプフリップフロップ９ｄは同じタイミングにてＣＰＹ端子から入力されている図２（ｄ）に示す「Ｌ」レベル信号を取込み、このＤタイプフリップフロップ９ｄの出力Ｑに導出する。Ｄタイプフリップフロップ９ｄから出力される「Ｌ」レベル信号はＮＡＮＤゲート９ｉに入力され、このＮＡＮＤゲート９ｉの出力は「Ｈ」レベルとなる。また、Ｃ素子９ｂの端子ＣＯは初期状態では「Ｈ」レベルにあるため、ＯＲゲート９ｎの出力も「Ｈ」レベルとなり、ＡＮＤゲート９ｊの出力は「Ｈ」レベルとなる。この「Ｈ」レベル信号がＣ素子９ｂのパルス入力端子ＣＩに入力され続けるため、Ｃ素子９ｂはこのモードでは動作しない。
【００３９】
Ｄタイプフリップフロップ９ｃの「Ｈ」レベルの出力信号はＮＡＮＤゲート９ｋに入力されるため、ＮＡＮＤゲート９ｋの出力はインバータ９ｈが出力する信号の反転信号を、すなわちＣ素子９ａのＣＯ端子の出力と同一の信号を出力することになる。また、Ｃ素子９ｂのＣＯ端子は「Ｈ」レベルに固定されているため、ＮＡＮＤゲート９ｋから出力された信号はＮＡＮＤゲート９ｐに入力され、そのままＮＡＮＤゲート９ｐから出力される。すなわち、Ｃ素子９ａのＣＯ端子の出力信号と同一の信号が自己同期型転送制御回路のＣＯ端子から出力されることになる。Ｄタイプフリップフロップ９ｃの「Ｈ」レベルの出力信号はＯＲゲート９ｌにも入力されるため、このＯＲゲート９ｌの出力は「Ｈ」レベルに固定される。
【００４０】
また、Ｄタイプフリップフロップ９ｑはマスタリセット信号ＭＲＢが入力された状態を維持しているため、その出力Ｑは「Ｌ」レベルとなり、インバータ９ｑの出力は「Ｈ」レベルになるため、ＡＮＤゲート９ｍの出力は自己同期型転送制御回路のＲＩ端子から入力される信号と同一の信号となる。すなわち、自己同期型転送制御回路のＲＩ端子から入力される信号と同一の信号がＣ素子９ａのＲＩ端子に入力されることになる。先に延べたＣ素子９ａの端子ＣＰが「Ｈ」レベルに変化すると、Ｃ素子９ａのＣＯ端子は「Ｌ」レベルに変化して出力されるので、自己同期型転送制御回路のＣＯ端子から「Ｌ」レベル信号が出力される。
【００４１】
一定時間後に自己同期型転送制御回路のＲＩ端子から「Ｌ」レベル信号が入力されるため、Ｃ素子９ａのＲＩ端子に「Ｌ」レベル信号が入力される。これを受けて、Ｃ素子９ａのＣＰ端子は「Ｌ」レベルに変化して出力され、該Ｃ素子９ａのＣＯ端子は「Ｈ」レベルに変化し、すなわち自己同期型転送制御回路のＣＯ端子からの出力は「Ｈ」レベルに変化する。そして、一定時間後に自己同期型転送制御回路のＲＩ端子から「Ｈ」レベル信号が入力されて、次のデータ転送が許可された状態となって自己同期型転送制御回路のパケット通常転送動作を終了する。
【００４２】
最後に、自己同期型転送制御回路のパケットコピー動作について説明する。ＥＸＢ端子から「Ｈ」レベル信号が入力され、かつＣＰＹ端子から「Ｈ」レベル信号が入力され、さらにＮＵＭ端子からパケットをコピーをする個数情報が入力されている状態において、自己同期型転送制御回路のパルス入力端子ＣＩから「Ｌ」レベルのパルス信号が入力されると、Ｃ素子９ａのパルス入力端子ＣＩに「Ｌ」レベルのパルス信号が入力され、Ｃ素子９ａは従来と同様の動作を行なって、一定時間後に端子ＣＩを「Ｈ」レベルにすると、Ｃ素子９ａのパルス出力端子ＣＯからは「Ｌ」レベルの信号が出力される。また、パイプラインレジスタへのパルス出力端子ＣＰが「Ｌ」レベルから「Ｈ」レベルの信号に変わって出力される。このＣ素子９ａの端子ＣＰからの「Ｈ」レベルの信号はフリップフロップ９ｓをセットし、遅延素子９ｔを介してカウンタ９ｆのＦＥＢ端子に「Ｌ」レベル信号が出力される。
【００４３】
また、ＣＰ端子の信号の立上がりに同期して、Ｄタイプフリップフロップ９ｃはＥＸＢ端子から入力されている「Ｈ」レベル信号を取込み、該フリップフロップ９ｃの出力Ｑから出力される。
【００４４】
また、Ｄタイプフリップフロップ９ｄは同じタイミングでＣＰＹ端子から入力されている「Ｈ」レベル信号を取込み、該Ｄタイプフリップフロップ９ｄの出力Ｑに導出し、Ｄタイプフリップフロップ９ｅは図２（ｅ）に示すように同じタイミングでＮＵＭ端子から入力されているコピー個数情報を示す整数を取込み、同じＤタイプフリップフロップ９ｅの出力Ｑから導出する。図１に示したＤタイプフリップフロップ９ｅは複数のＤタイプフリップフロップが並列に配列されたものであり、たとえばコピー個数情報が５の場合、「１０１」の３ビットの情報を３つのＤタイプフリップフロップで各ビットを入力する。
【００４５】
カウンタ９ｆは遅延素子９ｔの出力、すなわちＦＥＢ信号が「Ｌ」レベルであるとき、コピー個数情報を示すＤタイプフリップフロップ９ｅの出力を取込み、その後ＦＥＢ信号が「Ｈ」レベルになると、ＣＫ端子にクロックが入力されるたびに計数し、その計数値を端子ＮからＮＯ端子へ出力し、Ｚ端子から「Ｌ」レベル信号を出力する。計数値がＮＵＭ端子から設定された数と一致すると、カウンタ９ｆは計数を停止してＺ端子出力を「Ｈ」レベルにする。
【００４６】
Ｃ素子９ａの端子ＣＰが「Ｈ」レベルに変化したため、Ｃ素子９ａのＣＯ端子の出力は「Ｌ」レベルに変化し、この信号はインバータ９ｈに入力され、インバータ９ｈは「Ｈ」レベル信号を出力する。インバータ９ｈの出力の「Ｈ」レベル信号はＮＡＮＤゲート９ｋに入力され、またもう一方の入力端子にはＤタイプフリップフロップ９ｃの出力Ｑから「Ｈ」レベル信号が入力されるので、ＮＡＮＤゲート９ｋの出力は「Ｌ」レベルとなる。この「Ｌ」レベル信号がＡＮＤゲート９ｐに入力されるため、ＡＮＤゲート９ｐは「Ｌ」レベル信号を出力する。すなわち、自己同期型転送制御回路のＣＯ端子から「Ｌ」レベル信号が出力される。そして、一定時間後、自己同期型転送制御回路のＲＩ端子から「Ｌ」レベル信号が入力される。
【００４７】
インバータ９ｈの出力の「Ｈ」レベル信号がＮＡＮＤゲート９ｉにも入力される。また、Ｄタイプフリップフロップ９ｃと９ｄはともに「Ｈ」レベル信号を出力しているため、ＮＡＮＤゲート９ｉの出力は「Ｌ」レベルとなる。この「Ｌ」レベル信号がＡＮＤゲート９ｊに入力されてその出力は「Ｌ」レベルとなり、この「Ｌ」レベル信号がＣ素子９ｂのパルス入力端子ＣＩに与えられる。これにより、Ｃ素子９ｂの転送許可出力端子ＲＯは「Ｌ」レベルに変化して出力され、Ｄタイプフリップフロップ９ｇのセット端子Ｓに入力されて非同期でセットされるため、Ｄタイプフリップフロップ９ｇの出力Ｑから「Ｈ」レベル信号が出力される。この「Ｈ」レベル信号はインバータ９ｑに入力され、その出力が「Ｌ」レベルになる。この「Ｌ」レベル信号がＡＮＤゲート９ｍに入力される。
【００４８】
自己同期型転送制御回路のＲＩ端子から入力される「Ｌ」レベル信号はＡＮＤゲート９ｍに入力される。ＡＮＤゲート９ｍの出力は「Ｌ」レベルになり、その「Ｌ」レベル信号はＣ素子９ａのＲＩ端子に入力される。これにより、Ｃ素子９ａのＣＰ端子は「Ｌ」レベルに変化して出力し、Ｃ素子９ａのＣＯ端子は逆に「Ｈ」レベルに変化する。また、自己同期型転送制御回路のＲＩ端子から入力された「Ｌ」レベル信号がＣ素子９ｂのＲＩ端子に入力されると、Ｃ素子９ｂのＣＯ端子が「Ｈ」レベルに変化する。Ｃ素子９ａのＣＯ端子から「Ｈ」レベル信号が出力されると、この［Ｈ］レベル信号はインバータ９ｈとＮＡＮＤゲート９ｋを介してＡＮＤゲート９ｐに与えられる。Ｃ素子９ｂの端子ＣＯも「Ｈ」レベルであるため、ＡＮＤゲート９ｐから「Ｈ」レベル信号が出力され、この信号が自己同期型転送制御回路のＣＯ端子に出力される。
【００４９】
一定時間後に自己同期型転送制御回路のＲＩ端子が「Ｌ」レベルから「Ｈ」レベルに変化して入力され、１個目のパケットの転送が終了する。このとき、ＦＥＢ端子からは「Ｌ」レベルが出力されており、ＮＯ端子からの出力はカウンタ９ｆが動作していないため、出力信号は不定となる。
【００５０】
一方、Ｃ素子９ａのＣＯ端子から出力される「Ｈ」レベル信号は別途インバータ９ｈとＮＡＮＤゲート９ｉを介してＡＮＤゲート９ｊに与えられる。この時点では、Ｃ素子９ｂのＣＯ端子は「Ｈ」レベルであるため、ＯＲゲート９ｎの出力は「Ｈ」レベルとなり、したがってＡＮＤゲート９ｊの出力は「Ｈ」レベルとなり、Ｃ素子９ｂのＣＩ端子には「Ｈ」レベル信号が入力される。よって、自己同期型転送制御回路のＲＩ端子が「Ｌ」レベルから「Ｈ」レベルに変ることで、Ｃ素子９ｂが従来と同様の動作を行う条件が揃い、Ｃ素子９ｂのＣＰ端子は「Ｌ」レベルから「Ｈ」レベルに立上がる。一方、Ｃ素子９ｂのＣＯ端子は「Ｈ」レベルから「Ｌ」レベルに立下がる。Ｃ素子９ｂのＣＰ端子の出力である「Ｈ」信号がフリップフロップ９ｓをセットするため、遅延素子９ｔを介して自己同期型転送制御回路のＦＥＢ端子から「Ｈ」レベル信号が出力される。その後、カウンタ９ｆはＣ素子９ｂのＣＰ端子の立上がり信号により、０からカウントアップする。カウンタ９ｆは計数結果の「０」をＮＯ端子より出力し、入力端子ＮＵＭより設定された数と一致すれば、カウンタ９ｆのＺ端子から「Ｈ」レベル信号を出力し、一致しなければ「Ｌ」レベル信号を出力する。
【００５１】
次に、計数結果と設定数が一致しない場合について考える。このとき、カウンタ９ｆのＺ端子からは「Ｌ」レベル信号が出力されるため、この「Ｌ」信号がＯＲゲート９ｎに入力される。ＡＮＤゲート９ｍは先に述べたようにインバータ９ｑの出力の「Ｌ」レベル信号によりマスクされているため、Ｃ素子９ａのＲＩ端子は「Ｌ」レベルに固定となっており、Ｃ素子９ａのＣＯ端子は「Ｈ」レベルに固定される。これにより、ＮＡＮＤゲート９ｉの出力は「Ｈ」レベルとなるため、ＡＮＤゲート９ｊはＯＲゲート９ｎの出力をそのまま通過させる。したがって、Ｃ素子９ｂのＣＯ端子から出力される信号はそのままＣ素子９ｂのＣＩ端子に入力される。また、同じくＣ素子９ａのＣＯ端子が「Ｈ」レベルに固定されているため、ＡＮＤゲート９ｐはＣ素子９ｂのＣＯ端子から出力される信号をそのまま自己同期型転送制御回路のＣＯ端子から出力させるようになる。Ｃ素子９ｂのＣＯ端子からは「Ｌ」レベル信号が出力されているため、自己同期型転送制御回路のＣＯ端子からは２回目の「Ｌ」レベル信号が出力される。また、ＯＲゲート９ｎとＡＮＤゲート９ｊを介してＣ素子９ｂのＣＩ端子に「Ｌ」レベル信号が入力される。
【００５２】
一定時間後、自己同期型転送制御回路のＲＩ端子には「Ｌ」レベル信号が入力され、Ｃ素子９ｂのＲＩ端子には「Ｌ」レベル信号が入力される。これにより、Ｃ素子９ｂのＣＰ端子は「Ｈ」レベルから「Ｌ」レベルに変化し、Ｃ素子９ｂのＣＯ端子は「Ｌ」レベルから「Ｈ」レベルに変化する。Ｃ素子９ｂのＣＯ端子から出力された「Ｈ」レベル信号は、ゲート９ｐを介して自己同期型転送回路のＣＯ端子から「Ｈ」レベル信号として出力されると同時に、ＯＲゲート９ｎとＡＮＤゲート９ｊを介してＣ素子９ｂのＣＩ端子に「Ｈ」レベルとして入力される。一定時間後に自己同期型転送制御回路のＲＩ端子が「Ｌ」レベルから「Ｈ」レベルに変化すると、２個目のパケット転送が終了する。このとき、ＦＥＢ端子からは「Ｈ」レベル信号が出力されており、ＮＯ端子からは「０」レベル信号が出力されている。
【００５３】
自己同期型転送制御回路のＲＩ端子から入力された「Ｈ」レベル信号は、Ｃ素子９ｂのＲＩ端子に入力されるので、先の２個目のパケット転送で説明したように、Ｃ素子９ｂが従来と同様の動作を行う条件が揃い、Ｃ素子９ｂのＣＰ端子は「Ｌ」レベルから「Ｈ」レベルに立上がり、Ｃ素子９ｂのＣＯ端子は「Ｈ」レベルから「Ｌ」レベルに立下がる。Ｃ素子９ｂのＣＰ端子の信号の立上がりにより、カウンタ９ｆは「０」から「１」にカウントアップを行ない、ＮＵＭ端子で設定された数と比較される。自己同期型転送制御回路はカウンタ９ｆが行なうカウント数とＮＵＭ端子から入力される設定数とを比較し、一致するまで上述の動作を繰返し、自己同期型転送制御回路のＣＯ端子からパルス信号を出力し続ける。
【００５４】
次に、カウンタ９ｆが行なうカウント数とＮＵＭ端子から入力される設定数が一致した場合について考える。このとき、カウンタ９ｆのＺ端子からは「Ｈ」レベル信号が出力され、ＯＲゲート９ｎの出力が「Ｈ」レベルに固定される。ＯＲゲート９ｎの出力の「Ｈ」レベル信号はゲート９ｊを介してＣ素子９ｂのＣＩ端子が「Ｈ」レベルに立上がった状態で固定されることになるため、Ｃ素子９ｂはパルスの出力動作をしなくなる。また、このときＣ素子９ｂのＣＰ端子は「Ｈ」レベルに固定され、Ｃ素子９ｂのＣＯ端子は「Ｌ」レベルを出力した状態で固定される。すなわち、自己同期型転送制御回路のＣＯ端子からは最後のコピーパケットを転送するための「Ｌ」レベル信号を出力している状態になる。
【００５５】
一定時間後に、自己同期型転送制御回路のＲＩ端子から信号「Ｌ」レベル信号が入力されるため、Ｃ素子９ｂのＲＩ端子に「Ｌ」レベル信号が入力される。Ｃ素子９ｂはこれを受け、Ｃ素子９ｂのＣＰ端子は「Ｈ」レベルから「Ｌ」レベルへ変化し、Ｃ素子９ｂのＣＯ端子は「Ｌ」レベルから「Ｈ」レベルへと変化する。これにより、自己同期型転送制御回路のＣＯ端子は「Ｈ」レベル信号を出力する。また、Ｃ素子９ｂのＣＰ端子の信号の立下がり（インバータ９ｒを介しての立上がり）に同期がとられて、Ｄタイプフリップフロップ９ｇの入力端子Ｄの信号が取込まれ、Ｄタイプフリップフロップ９ｇの出力端子Ｑから導出される。このときのＤタイプフリップフロップ９ｇの入力信号は、カウンタ９ｆの出力信号Ｚが「Ｈ」レベルであるため、インバータ９ｕを介して「Ｌ」レベルとなっている。すなわち、Ｄタイプフリップフロップ９ｇのＱ出力は「Ｌ」レベル信号を導出し、インバータ９ｑの出力は「Ｈ」レベルに立上がる。この「Ｈ」レベル信号がＡＮＤゲート９ｍに入力され、ＡＮＤゲート９ｍの出力はこれまで「Ｌ」レベルに固定されていたものが、自己同期型転送制御回路のＲＩ端子から入力される信号と同一の信号に変化する。
【００５６】
続いて、自己同期型転送制御回路のＣＯ端子が「Ｈ」レベル信号を出力しているため、さらに一定時間後に自己同期型転送制御回路のＲＩ端子に「Ｈ」レベル信号が入力される。この「Ｈ」レベルの入力信号はＡＮＤゲート９ｍを通りＣ素子９ａのＲＩ端子に入力される。
【００５７】
この一連の動作によって自己同期型転送制御回路のコピー動作が終了する。この自己同期型転送制御回路は、この回路のパルス入力端子ＣＩに前段部から１個のパルスから与えられると、ＣＰ端子から１個のパルスを出力し、パルス出力端子ＣＯから後段部へ任意の数だけパルス信号を出力することが可能である。
【００５８】
なお、図２はコピー動作について説明したが、上述のごとく自己同期型転送制御回路の動作はコピー個数情報としてＮ個を入力すると最初のパケット転送動作を行なった後、０，１，２，…，Ｎとカウントしてパケット転送動作を続ける。したがって、Ｎ＋２個のパケットが転送される。逆に言えば、Ｎ個のコピーが必要な場合は、コピー個数情報として「Ｎ−２」を入力することになる。
【００５９】
図３はこの発明の第２の実施形態の自己同期型転送制御回路を、ハンドシェイク方式を採用したデータ伝送装置に用いた例を示すブロック図である。図３において、データ伝送装置は、Ｃ素子１３ａと１３ｃとの間に図１に示した自己同期型転送制御回路１３ｂが接続されており、パイプラインレジスタ１３ｄと１３ｅとの間に命令デコーダ１３ｇが設けられ、パイプラインレジスタ１３ｅと１３ｆとの間にノード番号操作回路１３ｈが設けられている。このデータ転送装置に入力されるパケットデータは、前述の図１２に示したように行先ノード番号と世代番号と命令コードとデータとからなる。
【００６０】
Ｃ素子１３ａから自己同期型転送制御回路１３ｂへのデータ転送が成立すると、命令デコーダ１３ｇは命令コードを解読し、ＣＰＹフラグとコピー数情報ＮＵＭを自己同期型転送制御回路１３ｂに与える。自己同期型転送制御回路１３ｂは入力されるＣＰＹフラグとコピー数情報ＮＵＭとに応じて後段のＣ素子１３ｃとデータ転送制御を行なう。自己同期型転送制御回路１３ｂは、後段のＣ素子１３ｃとの間のＳＥＮＤ信号とＡＣＫ信号がともに「Ｈ」レベルの状態で前段のＣ素子１３ａからのＳＥＮＤ信号が「Ｌ」レベルから「Ｈ」レベルに立上がると、ＣＰ端子から１個のパルス信号を出力する。これにより、パイプラインレジスタ１３ｅに入力されたパケットデータは自己同期型転送制御回路１３ｂからＣ素子１３ｃへのＳＥＮＤパルス信号とともにパイプラインレジスタ１３ｆに転送される。
【００６１】
Ｃ素子１３ｃは１個目のパケットを後段のＣ素子（図示せず）に転送を完了すると、自己同期型転送制御回路１３ｂにデータ転送許可信号（ＡＣＫ信号「Ｈ」）を送る。これを受けた自己同期型転送制御回路１３ｂは次のＳＥＮＤ信号をＣ素子１３ｃに送るとともに、２個目のパケットデータをパイプラインレジスタ１３ｆに送る。この際、自己同期型転送制御回路１３ｂはＦＥＢ信号「Ｈ」、ＮＯ信号「０」を出力しており、ノード番号操作回路１３ｈはこれらの信号を用いて、１個目のパケットデータと区別できるようにノード番号の操作が行なわれる。たとえば、ＦＥＢ信号とＮＯ信号をノード番号に加えることで、パケット同士を区別できる。このように、ｎ個目のパケットに関してもＦＥＢ信号とＮＯ信号を用いて他のコピーパケットと区別できるようにノード番号が付加される。ＣＯＰＹｎ命令を用いると、パケットを１つ入力することで、同じデータを持つ複数個のパケットを出力することができる。
【００６２】
図４はパケットを４個コピーする例を従来例とこの発明の実施形態によるプログラムを対比して示した図である。従来では、図４（ａ）に示すように１つのノードからは２つまでしかコピーできなかったのに対して、この発明の一実施形態によるＣＯＰＹｎ命令では図４（ｂ）に示すように、複数個のコピー処理が可能となり、実行命令数を削減できる。
【００６３】
次に、この発明による自己同期型転送制御回路を用いたデータ伝送装置の他の例について説明するが、その前に演算結果がオーバーフローとなる命令の効率のよい処理方法について述べる。たとえば、１２ビットデータ同士の乗算を考える。この場合、演算結果として２４ビットのデータとなるが、図１２に示したパケットフォーマットとしてデータフィールドに格納するデータは１２ビットで制限されているため、２４ビットの演算結果データを１つのパケットだけでは格納することができない。したがって、前述の図１８に示した従来例では、２４ビットの演算結果データを上位１２ビットと下位１２ビットとに分けて演算する必要があった。このために、図１８に示した従来例では、シフト量を調整することで上位１２ビットデータを含むパケットを出力する命令と、下位１２ビットデータを含むパケットを出力する命令の２つを実行することで実現していた。これを改善する実施形態について以下に説明する。
【００６４】
図５はこの発明の新たな自己同期型転送制御回路を含んだハンドシェイク方式を採用したデータ伝送装置による乗算命令を実行するブロック図であり、図６は図５における自己同期型転送制御回路２１ｃを実現する一例を示す回路図である。図５において、Ｃ素子２１ａと２１ｂと自己同期型転送制御回路２１ｃとＣ素子２１ｄとが直列接続されて転送制御回路が構成されている。パイプラインレジスタ２１ｅと２１ｆと２１ｇと２１ｉとによってデータ伝送路が構成されており、パイプラインレジスタ２１ｅと２１ｆとの間には乗算器２１ｊが接続され、パイプラインレジスタ２１ｆと２１ｇとの間にはシフタ２１ｋと下位抽出回路２１ｌとコピー検出回路２１ｍが配置されている。さらに、パイプラインレジスタ２１ｇと２１ｉとの間にはマルチプレクサ２１ｈとノード番号操作回路２１ｎとが配置されている。
【００６５】
自己同期型転送制御回路２１ｃとしては、図１に示した例を用いることもできるが、この実施形態では、図６に示す自己同期型転送制御回路が用いられる。図１に示した自己同期型転送制御回路はＮ個のコピーが可能とされていたのに対して、図６に示した自己同期型転送制御回路はＮを２に限定したものであり、図１に比べて構成が簡単にされている。
【００６６】
図６において、ＮＵＭ端子とＮＯ端子とＤタイプフリップフロップ９ｅとカウンタ９ｆとＡＮＤゲート９ｊとＯＲゲート９ｎとインバータ９ｕとを除いた以外の構成は図１と同じである。また、図７は図６の動作を示すタイミングチャートである。
【００６７】
図５に示したデータ伝送装置は、図１７に示したデータ駆動型プロセッサの演算部ＦＰに含まれる。データ駆動型プロセッサの演算部ＦＰに入力されるパケットには、演算の対象である１組のデータ対（１２ビットデータが２つ）が格納されている。１２ビットの非演算データを２つ含んだパケットはパイプラインレジスタ２１ｅに入力され、乗算器２１ｊにより演算が実行され、演算結果である２４ビットデータがパケットのデータフィールドに一時的に格納されてパイプラインレジスタ２１ｆに保持される。この２４ビットのデータはパイプラインレジスタ２１ｆから出力され、命令コードから読出されたシフト量に基づいて、シフタ２１ｋと下位抽出回路２１ｌにより、上位１２ビットデータと下位１２ビットデータとに分離されてパイプラインレジスタ２１ｇに出力される。
【００６８】
また、コピー検出回路２１ｍによって命令コードよりコピーフラグＣＰＹが読出されて自己同期型転送制御回路２１ｃに与えられる。自己同期型転送制御回路２１ｃはＣＰＹ端子にコピーの検出を示す「Ｈ」レベル信号が入力されると、パイプラインレジスタ２１ｇに対してＣＰパルス信号を出力し、Ｃ素子２１ｄとＳＥＮＤ信号、ＡＣＫ信号のやりとりを２回行い、その結果としてパイプラインレジスタ２１ｉに２個のパケットを送る。１個目のパケットは、ＦＥＢ信号の「Ｌ」レベルとともに出力され、２個目のパケットはＦＥＢ信号の「Ｈ」レベルとともに出力される。このＦＥＢ信号を用いて、ノード番号操作回路２１ｎによってノード番号が操作され、パケット同士を区別するのと同時に、このＦＥＢ信号により演算結果の上位１２ビットデータと下位１２ビットデータが入力されるマルチプレクサ２１ｈの出力が切換えられる。すなわち、パイプラインレジスタ２１ｇからパイプラインレジスタ２１ｉに転送される１個目のパケットは、乗算結果の上位１２ビットを格納したものであり、２個目のパケットはノード番号がたとえばインクリメントされるなどの操作が行なわれ、かつ乗算結果の下位１２ビットが格納されたものとなる。
【００６９】
図８は１２ビットデータ同士の乗算に関して、従来例によるフローグラフと、この発明の第３の実施形態によるフローグラフとを対比して示した図である。従来においては、図８（ａ）に示すように、入力ポートＩＮ１と入力ポートＩＮ２とから入力された２つの１２ビットデータをＮＯＰ命令を実行することにより、２個ずつにコピーする必要がある。次に、ＭＵＬａ（乗算）命令を実行して乗算結果の上位１２ビットを出力ポートＯＵＴ１から出力し、ＭＵＬｂ命令を実行して乗算結果の下位１２ビットの出力ポートＯＵＴ２から出力していた。
【００７０】
これに対して、この発明の実施形態であるＭＵＬｃ命令は、入力ポートＩＮ１，ＩＮ２から入力される２つの１２ビットデータを乗算した結果、上位１２ビットを出力ポートＯＵＴ１から出力させ、下位１２ビットを出力ポートＯＵＴ２から出力させる。このように、この実施形態によれば実行命令ステップ数が従来に比べて１／４になっており、単純計算ではあるが従来の４倍速の演算速度を期待できる。
【００７１】
図９〜図１１はこの発明の第４の実施形態を示す図であり、特に図９は３つのデータを効率よく演算処理するデータ駆動装置を示すブロック図であり、図１０は図９に示した自己同期型転送制御回路の回路図であり、図１１は図１０に示した自己同期型転送制御回路の動作を示すタイミングチャートである。
【００７２】
前述の図５に示した実施形態のデータ伝送装置は１つのパケットで２つのデータを取扱ったのに対して、この図９に示した実施形態では、１つのパケットを入力することで、３つのデータに対して演算を実行し、３つの演算結果を格納した３つのパケットを出力するものである。
【００７３】
図９において、転送制御回路として、Ｃ素子３１ａ，３１ｂと自己同期型転送制御回路３１ｃとＣ素子３１ｄと３１ｅと３１ｆとが直列接続される。また、データ伝送部として、パイプラインレジスタ４１ａ〜４１ｆが接続され、パイプラインレジスタ４１ａと４１ｂとの間にはアドレス検出回路４１ｇが接続され、パイプラインレジスタ４１ｂと４１ｃとの間にはコピー検出回路４１ｈが接続され、パイプラインレジスタ４１ｃと４１ｄとの間にはマルチプレクサ４１ｉとノード番号操作回路４１ｊが接続され、パイプラインレジスタ４１ｄと４１ｅとの間には乗算器４１ｋが接続され、パイプラインレジスタ４１ｅと４１ｆとの間にはシフト４１ｌが接続される。
【００７４】
自己同期型転送制御回路３１ｃとしては、図１に示した回路のＣＰＹ端子に「Ｈ」レベルを入力し、ＮＵＭ端子に「Ｈ」レベル信号を入力しても同様の演算結果が得られるが、図１０に示した自己同期型転送制御回路の方が回路を簡略化できる。すなわち、図１０に示した自己同期型転送制御回路は、図１に示したＮＵＭ端子に代えてＲ３端子が設けられ、図１のＤタイプフリップフロップ９ｅに代えて１ビットのＤタイプフリップフロップ９ｗが設けられ、図１ではＮまで計数するカウンタ９ｆを設けていたのに変えて、０〜２を計数するカウンタ９ｘを配置したものである。それによって、自己転送制御回路として、図１に比べて回路規模が小さくなっている。したがって、図１０に示した自己同期型転送制御回路は図１の回路とほぼ同じ動作をする。
【００７５】
図１１（ｄ），（ｅ）に示すように、ＣＰＹ端子とＲ３端子からともに「Ｈ」レベル信号が入力されると、３個のパケットコピーが可能となり、図１１（ｈ），（ｆ）に示すように、ＦＥＢ＝「Ｌ」レベル，ＬＳＴ＝「Ｌ」レベルのときに１個目のパケットが出力され、ＦＥＢ＝「Ｈ」レベル，ＬＳＴ＝「Ｌ」レベルのときに２個目のパケットが出力され、ＦＥＢ＝「Ｈ」レベル，ＬＳＴ＝「Ｈ」レベルのときに３個目のパケットが出力される。
【００７６】
図９に示したデータ伝送機構は、図１７のデータ駆動型プロセッサの演算部ＦＰに含まれる。データ駆動型プロセッサの演算部ＦＰに入力されるパケットには、１組のデータ対（１２ビットデータが２つ）が格納されている。このパケットがパイプラインレジスタ４１ａに入力されると、２つのデータのうちの一方がアドレス検出回路４１ｂによるテーブルメモリ４１ｍのアドレス検出に用いられ、他方が乗算データに用いられる。入力パケットの命令コードが解読され、コピー検出回路４１ｈによってＣＰＹ信号とＲ３信号が自己同期型転送制御回路３１ｃに送られるとともに、テーブルメモリ４１ｍの内容がパケットに格納され、パイプラインレジスタ４１ｃによって保持される。ＣＰＹ信号とＲ３信号がともに「Ｈ」レベルであれば、自己同期型転送制御回路３１ｃはパイプラインレジスタ４１ｃに対してＣＰパルス信号を出力し、Ｃ素子３１ｄとＳＥＮＤ信号、ＡＣＫ信号のやりとりを３回行い、その結果としてパイプラインレジスタ４１ｄ３個のパケットが出力される。
【００７７】
自己同期型転送制御回路３１ｃから出力されるＦＥＢ信号とＬＳＴ信号を用いてノード番号操作回路４１ｊによってパケットのノード番号が操作され、パケット同士を区別するのと同時に、このＦＥＢ信号とＬＳＴ信号によりテーブルメモリ４１ｍから読出したデータの上位ビットデータ，中位ビットデータおよび下位ビットデータが入力されるマルチプレクサ４１ｉの出力が切換えられる。すなわち、パイプラインレジスタ４１ｃからパイプラインレジスタ４１ｄに伝送される１個目のパケットは、ノード番号は操作されずにメモリデータの上位ビットを格納したものであり、２個目のパケットはノード番号が操作され（たとえばノード番号＋１）、かつメモリデータの中位ビットが格納されたものであり、３個目のパケットはノード番号が操作され（たとえばノード番号＋２）、かつメモリデータの下位ビットが格納されたものである。パイプラインレジスタ４１ｄから出力される３つのパケットに格納されたそれぞれのメモリデータは、乗算器４１ｋによってパケット中の乗算用に格納されているデータと乗算され、パイプラインレジスタ４１ｅに保持される。乗算結果がオーバーフローを起こすような場合には、シフタ４１ｌにより調整が行なわれる。
【００７８】
上述のごとく、この実施形態によれば、１つのパケットを入力することにより、３つのデータに対して演算を行なうことが可能となり、実行命令数を削減できる。テーブルメモリ４１ｍから２４ビットデータを読出したとすると、８ビットの３つのデータに対して演算を行なうことができる。これは、たとえばＲＧＢ（２４ビット）などの画像データ処理に応用することができ、画像処理の高速化を図ることができる。
【００７９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００８０】
【発明の効果】
以上のように、この発明によれば、前段部の転送制御回路から１つのデータ転送要求パルス信号を受け、後段部の転送制御回路に複数個のデータ要求パルス信号を出力することが可能となり、従来に比べて数倍効率のよいデータ転送制御が可能となる。
【００８１】
また、自己同期型転送制御回路の後段部へのデータ要求パルス信号の個数を、入力するパケットに含ませることにより、用途に応じたパケットコピーが可能となる。
【００８２】
さらに、１つの入力パケットを、ＮＯＰ命令を繰返し実行することなく同一データを持つ複数個のパケットにコピーすることができるため、実行命令数を削減でき、プログラムの実行効率が数倍向上する。
【００８３】
さらに、１つの命令を実行することで複数個のデータに対して実際に演算を実行することができるため、実行命令数を削減でき、プログラム実行効率が数倍以上向上する。
【図面の簡単な説明】
【図１】  この発明の第１の実施形態によるデータ駆動型プロセッサに用いられる自己同期型転送制御回路を示す回路図である。
【図２】  図１に示した自己同期型転送制御回路の動作を説明するためのタイミングチャートである。
【図３】  この発明の第２の実施形態による入力データをＮ個コピーする処理手順を説明するためのブロック図である。
【図４】  従来例とこの発明の第２の実施形態による入力データを４個にコピーする処理手順を示すフローグラフを対比して示した図である。
【図５】  この発明の第３の実施形態として、オーバーフローを起こす乗算処理に関して、乗算命令の処理内容を示すブロック図である。
【図６】  図５に示した自己同期型転送制御回路の具体的な回路図である。
【図７】  図６に示した自己同期型転送制御回路の動作を説明するためのタイミングチャートである。
【図８】  従来例とこの発明の第３の実施形態におけるオーバーフローを起こす乗算処理に関してフローグラフを対比して示した図である。
【図９】  この発明の第４の実施形態による３つのデータを同時に処理する手順を説明するためのブロック図である。
【図１０】  図９に示した自己同期型転送制御回路の具体的な回路図である。
【図１１】  図１０に示した自己同期型転送制御回路の動作を説明するためのタイミングチャートである。
【図１２】  従来例およびこの発明の実施形態に適用されるデータパケットのフォーマットを示す図である。
【図１３】  従来のデータ駆動型プロセッサにおけるデータ伝送路を示す図である。
【図１４】  図１３に示したＣ素子の動作を示すタイミングチャートである。
【図１５】  従来の一般的なデータ駆動型処理装置を示すブロック図である。
【図１６】  従来のＣ素子を示す回路図である。
【図１７】  従来のデータ駆動型プロセッサを示すブロック図である。
【図１８】  従来のデータ駆動型プロセッサで乗算命令を実行する例を示す図である。
【符号の説明】
９ａ，９ｂ，１３ａ，１３ｃ，２１ａ〜２１ｃ，３１ａ，３１ｂ，３１ｄ〜３１ｆ  Ｃ素子、９ｃ，９ｄ，９ｅ，９ｇ，９ｗ  Ｄタイプフリップフロップ、９ｆ  カウンタ、９ｈ，９ｑ，９ｒ，９ｕ，９ｖ  インバータ、９ｉ，９ｋ  ＮＡＮＤゲート、９ｌ，９ｎ  ＯＲゲート、９ｍ，９ｐ  ＡＮＤゲート、９ｓ  フリップフロップ、９ｔ  遅延素子、１３ｂ，２１ｃ，３１ｃ  自己同期型転送制御回路、１３ｄ〜１３ｆ，２１ｅ〜２１ｉ，４１ａ〜４１ｆ  パイプラインレジスタ、１３ｇ  命令デコーダ、１３ｈ，２１ｎ，４１ｊ  ノード番号操作回路、２１ｊ，４１ｋ  乗算器、２１ｋ，４１ｌ  シフタ、２１ｌ  下位抽出回路、２１ｍ，４１ｈ  コピー検出回路、４１ｇ  アドレス検出回路、２１ｈ，４１ｉ  マルチプレクサ、４１ｍ  テーブルメモリ。
【図１】
0003766779.tif 000002
【図２】
0003766779.tif 000003
【図３】
0003766779.tif 000004
【図４】
0003766779.tif 000005
【図５】
0003766779.tif 000006
【図６】
0003766779.tif 000007
【図７】
0003766779.tif 000008
【図８】
0003766779.tif 000009
【図９】
0003766779.tif 000010
【図１０】
0003766779.tif 000011
【図１１】
0003766779.tif 000012
【図１２】
0003766779.tif 000013
【図１３】
0003766779.tif 000014
【図１４】
0003766779.tif 000015
【図１５】
0003766779.tif 000016
【図１６】
0003766779.tif 000017
【図１７】
0003766779.tif 000018
【図１８】
0003766779.tif 000019