(57)【特許請求の範囲】
【請求項１】
データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する非同期式分岐モジュールと、
前記転送データの転送経路を合流し、複数の合流元の少なくとも１つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する非同期式調停モジュールと、
前記非同期式調停モジュールに対応して配置され、該非同期式調停モジュールから、何れの合流元からの転送データを転送中であるかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する混雑検知モジュールと、
前記非同期式分岐モジュールに対応して配置され、該非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから前記混雑情報を受け取り、前記非同期式分岐モジュールの複数の分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理と、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理とを排他的に行う混雑回避経路計算モジュールと、を備え、
前記混雑検知モジュールは、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある混雑回避経路計算モジュールに出力する要求出力モジュールを含み、
前記混雑検知モジュールは、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する応答待ち合わせモジュールを更に含む、非同期式論理回路。
【請求項２】
前記混雑回避経路計算モジュールは、前記非同期式分岐モジュールに対するデータ要求信号と前記混雑情報記憶要求信号との調停を行い、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させるデータ混雑情報間調停モジュールを含む、請求項１に記載の非同期式論理回路。
【請求項３】
前記データ混雑情報間調停モジュールは、前記混雑情報記憶メモリへ前記混雑情報を記憶する処理が完了するまでの間に前記データ要求信号が入力されたときは、前記混雑情報の記憶が完了するまで、前記非同期式分岐モジュールへの前記データ要求信号の出力を待機させ、前記非同期式分岐モジュールが前記データ要求信号に応答して転送データの転送をしている間に前記混雑情報記憶要求信号が入力されたときは、前記転送データについての前記ハンドシェイクが完了するまで、前記混雑情報記憶要求信号を待機させる、請求項２に記載の非同期式論理回路。
【請求項４】
前記データ混雑情報間調停モジュールが、
前記混雑情報記憶要求信号と前記データ要求信号とを入力し、入力信号のうちの一方を通過させ、他方を、前記通過させた信号の取り下げまで待機させる相互排他モジュールと、
前記データ混雑情報間調停モジュールが仲介中のハンドシェイクがないときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号又は前記データ要求信号を通過させ、仲介中のハンドシェイクがあるときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号又は前記データ要求信号を、前記仲介中のハンドシェイクの完了まで待機させるハンドシェイク確認モジュールと、を含む、請求項３に記載の非同期式論理回路。
【請求項５】
前記相互排他モジュールが、それぞれ入力端子の一方に前記混雑情報記憶要求信号又は前記データ要求信号が入力され、入力端子の他方が互いの出力端子に接続された２つのＮＡＮＤ素子と、該２つのＮＡＮＤ素子の出力にそれぞれ接続されるインバータとを含む、請求項４に記載の非同期式論理回路。
【請求項６】
前記ハンドシェイク確認モジュールが、入力端子の一方が前記相互排他モジュールを通過した混雑情報記憶要求信号に接続され、他方がインバータを介して前記非同期式分岐モジュールが出力する前記データ応答信号に接続されるＡＮＤ素子と、入力端子の一方が前記相互排他モジュールを通過したデータ要求信号に接続され、他方がインバータを介して前記混雑情報記憶応答信号に接続されるＡＮＤ素子とを含む、請求項４又は５に記載の非同期式論理回路。
【請求項７】
前記混雑回避経路計算モジュールが、
前記非同期式分岐モジュールの複数の分岐先から入力される混雑情報記憶要求信号を合流し、調停を行うことで前記複数の分岐先からの混雑情報記憶要求信号のうちの１つを選択し、前記データ混雑情報間調停モジュールと前記混雑検知モジュールとの間で、前記選択した混雑情報記憶要求信号に起因するハンドシェイクを仲介する分岐先間混雑情報記憶要求調停モジュールと、
前記データ混雑間調停モジュールが前記分岐先間混雑情報記憶要求調停モジュールが出力する前記混雑情報記憶要求信号を通過させたとき、前記混雑情報記憶メモリにおける、前記分岐先間混雑情報記憶要求調停モジュールが選択した混雑情報記憶要求信号を出力した前記非同期式分岐モジュールの分岐先に対応する混雑情報を、当該分岐先から入力される混雑情報で更新させ、残りの分岐先に対応する混雑情報を、前記混雑情報記録メモリが記憶する混雑情報に保持させるメモリ記憶制御モジュールと、を更に含む、請求項２乃至６の何れか一項に記載の非同期式論理回路。
【請求項８】
前記分岐先間混雑情報記憶要求調停モジュールが、
前記複数の分岐先からの混雑情報記憶要求信号を入力し、該混雑情報記憶要求信号のうちの１つを通過させ、他方を、前記通過させた混雑情報記憶要求信号の取り下げまで待機させる相互排他モジュールと、
前記分岐先間混雑情報記憶要求調停モジュールが仲介中のハンドシェイクがないときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号を通過させ、仲介中のハンドシェイクがあるときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号を前記仲介中のハンドシェイクの完了まで待機させるハンドシェイク確認モジュールと、
前記ハンドシェイク確認モジュールを通過した混雑情報記憶要求信号と、当該混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記ハンドシェイク確認モジュールを通過した混雑情報記憶要求信号を入力した分岐先に、混雑情報記憶応答信号を出力する待ち合わせモジュールと、を含む、請求項７に記載の非同期式論理回路。
【請求項９】
前記相互排他モジュールが、それぞれ入力端子の一方に前記混雑情報記憶要求信号が入力され、入力端子の他方が互いの出力端子に接続された２つのＮＡＮＤ素子と、該２つのＮＡＮＤ素子の出力にそれぞれ接続されるインバータとを含む、請求項８に記載の非同期式論理回路。
【請求項１０】
前記ハンドシェイク確認モジュールが、前記複数の分岐先のそれぞれに対応して配置され、それぞれが、入力端子の一方が前記相互排他モジュールを通過した前記混雑情報記憶要求信号に接続され、他方がインバータを介して当該混雑情報記憶要求信号以外の混雑情報記憶要求信号に対する混雑情報記憶応答信号に接続される複数のＡＮＤ素子を含む、請求項８又は９に記載の非同期式論理回路。
【請求項１１】
前記分岐先間混雑情報記憶要求調停モジュールは、前記複数のＡＮＤ素子の出力を入力とするＯＲ素子を更に含み、該ＯＲ素子から、前記混雑情報記憶要求信号を出力する、請求項１０に記載の非同期式論理回路。
【請求項１２】
前記メモリ記憶制御モジュールが、
前記非同期式分岐モジュールの複数の分岐先に対応して配置され、それぞれが、対応する分岐先の前記混雑検知モジュールが出力する前記混雑情報と、前記混雑情報記憶メモリに記憶されている分岐先の混雑情報とを入力し、前記分岐先間混雑情報記憶要求調停モジュールでの調停結果に基づいて２つの入力のうちの何れか一方を選択する複数のマルチプレクサを含む、請求項８乃至１１の何れか一項に記載の非同期式論理回路。
【請求項１３】
前記待ち合わせモジュールが、入力端子の１つと出力端子を接続された３入力多数決論理関数を実現する論理回路を含む、請求項８乃至１２の何れか一項に記載の非同期式論理回路。
【請求項１４】
前記転送データが、同一目的地へのデータに目的地情報を付加して生成したデータを分割して得られ、該分割で得られた一連の単位データ列のうちの先頭に目的地情報が含まれる分割データであり、
前記非同期式調停モジュールは、前記単位データ列を構成する分割データを分断することなく連続的に出力し、
前記混雑回避経路計算モジュールは、前記転送データが前記単位データ列の先頭分割データであるとき、該先頭分割データに含まれる目的地情報に基づいて前記非同期式分岐モジュールの転送分岐先を決定し、前記転送データが単位データ列の先頭以外の非先頭分割データのときは、前記先頭分割データに対して決定した転送分岐先を、前記非同期式分岐モジュールの転送分岐先として決定する、請求項１に記載の非同期式論理回路。
【請求項１５】
前記混雑回避経路計算モジュールは、転送分岐先を記憶する分岐先情報記憶メモリを含み、前記転送データが前記単位データ列の先頭分割データであるとき、前記決定した転送分岐先を前記分岐先情報記憶メモリに記憶し、前記転送データが単位データ列の先頭以外の非先頭分割データのとき、前記分岐先情報記憶メモリに記憶された転送分岐先を、前記非同期式分岐モジュールの転送分岐先として決定する、請求項１４に記載の非同期式論理回路。
【請求項１６】
前記混雑検知モジュールは、前記非同期式調停モジュールがデータ要求信号を出力すると、前記転送データが前記先頭分割データのとき、非同期式調停モジュールの合流元に、前記混雑情報の記憶を要求する混雑情報記憶要求信号を出力し、前記転送データが前記非先頭分割データのとき、自身への応答信号として帰還入力する要求信号を出力するハンドシェイク分岐モジュールを含む、請求項１４又は１５に記載の非同期式論理回路。
【請求項１７】
前記ハンドシェイク分岐モジュールは、前記転送データが前記先頭分割データのときに加えて、前記転送データが前記単位データ列の終端分割データのとき、非同期式調停モジュールの合流元へ前記混雑情報記憶要求信号を出力し、前記転送データが前記単位データ列の中間の分割データのとき、自身への応答信号として帰還入力する要求信号を出力する、請求項１６に記載の非同期式論理回路。
【請求項１８】
前記ハンドシェイク分岐モジュールは、前記転送データが前記先頭分割データ又は前記終端分割データのとき、前記非同期式調停モジュールの合流元のうち、前記非同期式調停モジュールが前記転送データを出力していない側の合流元に前記混雑情報記憶要求信号を出力する、請求項１７に記載の非同期式論理回路。
【請求項１９】
ハンドシェイク分岐モジュールは、前記転送データが前記先頭分割データ又は前記終端分割データのとき、前記非同期式調停モジュールの合流元のうち、前記非同期式調停モジュールが前記転送データを出力していない側の合流元に、前記混雑情報記憶要求信号とに代えて、混雑情報の反転を要求する反転要求信号を出力し、
前記混雑回避経路計算モジュールは、反転要求信号を受け取ると、前記混雑情報記憶メモリに記憶する混雑情報のうち、前記反転要求信号を受け取った側に対応する非同期式分岐モジュールの分岐先の混雑情報を、混雑なしから混雑ありへ、又は、混雑ありから混雑なしへ反転する、請求項１８に記載の非同期式論理回路。
【請求項２０】
前記混雑検知モジュールは、前記転送データが前記先頭分割データのとき、前記非同期式調停モジュールの各合流元に対して、前記調停結果信号に基づいて前記混雑情報を生成し、前記転送データが前記終端分割データのとき、前記非同期式調停モジュールの各合流元に対して混雑なしを示す混雑情報を生成する混雑情報生成モジュールを更に含む、請求項１７乃至１９の何れか一項に記載の非同期式論理回路。
【請求項２１】
前記混雑回避経路計算モジュールは、前記非同期式分岐モジュールに対するデータ要求信号と前記混雑情報記憶要求信号との調停を行い、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させるデータ混雑情報間調停モジュールを含む、請求項１６乃至２０の何れか一項に記載の非同期式論理回路。
【請求項２２】
前記データ混雑情報間調停モジュールは、前記混雑情報記憶メモリへ前記混雑情報を記憶する処理が完了するまでの間に前記データ要求信号が入力されたときは、前記混雑情報の記憶が完了するまで、前記非同期式分岐モジュールへの前記データ要求信号の出力を待機させ、前記非同期式分岐モジュールが前記データ要求信号に応答して転送データの転送をしている間に前記混雑情報記憶要求信号が入力されたときは、前記転送データについての前記ハンドシェイクが完了するまで、前記混雑情報記憶要求信号を待機させる、請求項２１に記載の非同期式論理回路。
【請求項２３】
前記データ混雑情報間調停モジュールが、
前記混雑情報記憶要求信号と前記データ要求信号とを入力し、入力信号のうちの一方を通過させ、他方を、前記通過させた信号の取り下げまで待機させる相互排他モジュールと、
前記データ混雑情報間調停モジュールが仲介中のハンドシェイクがないときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号又は前記データ要求信号を通過させ、仲介中のハンドシェイクがあるときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号又は前記データ要求信号を、前記仲介中のハンドシェイクの完了まで待機させるハンドシェイク確認モジュールと、を含む、請求項２２に記載の非同期式論理回路。
【請求項２４】
前記非同期式調停モジュールは、前記単位データ列の先頭分割データの出力から終端分割データの出力まで、何れの合流元からの転送データを出力しているかを示す調停結果を記憶する調停結果保存部を含み、前記調停結果保存部が一の合流元からの転送データを出力している旨を記憶するとき、他の合流元からの転送データの出力を待機する、請求項１４乃至２３の何れか一項に記載の非同期式論理回路。
【請求項２５】
請求項１乃至２４の何れか一項に記載の非同期式論理回路を備える、半導体回路。
【請求項２６】
非同期式分岐モジュールが、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する工程と、
非同期式調停モジュールが、前記転送データの転送経路を合流し、複数の合流元の少なくとも１つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する工程と、
混雑検知モジュールが、前記非同期式調停モジュールから、何れの合流元からの転送データを転送中であるのかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する工程と、
混雑回避経路計算モジュールが、前記非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから混雑の有無を示す混雑情報を受け取り、前記非同期式分岐モジュールの分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理を行う工程と、
前記混雑回避経路計算モジュールが、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理を行う工程と、を有し、
前記混雑検知モジュールが、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある前記混雑回避経路計算モジュールに出力する工程と、
前記混雑検知モジュールが、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する工程と、を更に含む、非同期式論理回路における経路計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期式論理回路、半導体回路及び、経路計算方法に関し、更に詳しくは、要求信号と応答信号とを所定の手順で通信するハンドシェイクを用いたデータ転送に関する。
【背景技術】
【０００２】
近年、ディジタル集積回路上に実装される回路素子や配線の微細化の進展に伴い、集積回路は、コアと呼ばれるプロセッサやメモリなどの機能ブロックを多数持つようになってきている。図１５は、多数のコアを有する集積回路を示している。図１５では、集積回路１５００は、コア０からコアｎ−１までのｎ個のコア１５０１を有している。コア１５０１間の通信には、コア間接続回路１５０２を用いる。コア間接続回路１５０２は、コア１５０１間のデータ通信を行うバスなどの回路である。【０００３】
コア間通信回路は、クロック信号の立上り又は立下りの遷移（クロック・エッジ）で、内部の素子を駆動する同期式論理回路として設計されてきた。しかし、設計容易性や消費電力、電磁放射の低減といった観点から、コア間通信回路を非同期式論理回路として構成する大域非同期・局所同期（ＧＡＬＳ：Globally Asynchronous, Locally Synchronous）方式を用いた集積回路設計が注目されるようになっている。ここで、非同期式論理回路とは、クロック信号の代わりにハンドシェイク信号を用い、回路内の記憶素子を制御する論理回路である。【０００４】
非同期式論理回路でも、同期式論理回路と同様に、フリップ・フロップの間に組み合わせ回路を配置する。しかし、フリップ・フロップの記憶を制御する信号が、同期式論理回路とは異なる。すなわち、同期式論理回路では、フリップ・フロップへの記憶制御信号として外部からのクロック信号が用いられる。そして、全てのフリップ・フロップに対して信号が同着することを前提に、フリップ・フロップと組み合わせ回路とから成る部分が設計される。また、全てのフリップ・フロップに対して信号が同着するようにクロック信号分配回路が設計される。これに対し、非同期式論理回路では、フリップ・フロップへの記憶制御信号を生成する記憶制御回路が用いられる。記憶制御回路間で一対のハンドシェイク信号（要求信号と応答信号）を通信することで、フリップ・フロップの記憶タイミングを制御する。このハンドシェイク信号の通信制御手順を、ハンドシェイク・プロトコルと呼ぶ。【０００５】
図１６は、非同期式論理回路の典型的な構成例を示している。この非同期式論理回路は、３つのフリップ・フロップ（ＦＦ）１６１０〜１６１２と、各フリップ・フロップに対応した３つの記憶制御回路（ＬＣ）１６２０〜１６２２とを含む。記憶制御回路は、次の段の記憶制御回路に要求信号（Ｒ）を送り、前段の記憶制御回路に対して応答信号（Ａ）を送る。また、記憶制御回路は、対応するフリップ・フロップに、記憶制御信号（Ｌ）を送る。フリップ・フロップは、記憶制御信号Ｌに応答してデータを記憶する。非同期式論理回路では、フリップ・フロップに代表される記憶回路と、記憶制御回路とは、一組のレジスタとして扱われる。【０００６】
図１７は、フリップ・フロップＦＦ１（１６１１）及び記憶制御回路ＬＣ１（１６２１）の動作波形例を示している。フリップ・フロップＦＦ１及び記憶制御回路ＬＣ１は、以下のように動作する。まず、前段のフリップ・フロップＦＦ０がデータｄ０を記憶し（Ｄ０＝ｄ０）、データｄ０をフリップ・フロップＦＦ１に出力する。フリップ・フロップＦＦ０に対応した記憶制御回路ＬＣ０は、フリップ・フロップＦＦ０がデータｄ０を記憶した後、次段の記憶制御回路ＬＣ１に要求信号Ｒ０＝１を出力する。【０００７】
記憶制御回路ＬＣ１は、要求信号Ｒ０＝１を受け取ることで、フリップ・フロップＦＦ１にデータが到着していることを検知する。記憶制御回路ＬＣ１は、記憶制御信号Ｌ１＝１を生成する。記憶制御回路ＬＣ１は、記憶制御信号Ｌ１をＬ１＝１に遷移させることで、フリップ・フロップＦＦ１にデータｄ０を記憶させる（Ｄ１＝ｄ０）。記憶制御回路ＬＣ１は、フリップ・フロップＦＦ１がデータｄ０を記憶すると、前段の記憶制御回路ＬＣ０に応答信号Ａ０＝１を出力し、データ記憶完了を通知する。前段の記憶制御回路ＬＣ０は、データ記憶完了の通知（Ａ０＝１）を受けると、記憶制御回路ＬＣ１に出力する要求信号Ｒ０をＲ０＝０に変化させる（要求信号を取り下げる）。その後、フリップ・フロップＦＦ１に対し、次のデータに対する準備を要求する。【０００８】
記憶制御回路ＬＣ１は、フリップ・フロップＦＦ１がデータｄ０を記憶すると、次段の記憶制御回路ＬＣ２に要求信号Ｒ１＝１を出力し、フリップ・フロップＦＦ２でのデータ記憶を要求する。次段の記憶制御回路ＬＣ２は、記憶制御回路ＬＣ１から要求信号Ｒ１＝１を受け取ると、記憶制御信号Ｌ２＝１を生成し、フリップ・フロップＦＦ２にデータｄ０を記憶させる。その後、記憶制御回路ＬＣ２は、応答信号Ａ１＝１を、前段の記憶制御回路ＬＣ１に出力する。記憶制御回路ＬＣ１は、応答信号Ａ１＝１を受け取り、フリップ・フロップＦＦ２でのデータ記憶を検知する。【０００９】
記憶制御回路ＬＣ１は、前段の記憶制御回路ＬＣ０から要求信号Ｒ０＝０を受け取り、かつ、次段の記憶制御回路ＬＣ２から応答信号Ａ１＝１を受け取ると、記憶制御信号Ｌ１をＬ１＝０に遷移させる。フリップ・フロップＦＦ１は、記憶制御信号Ｌ１がＬ１＝０となることで、次のデータに対する準備状態になる。記憶制御回路ＬＣ１は、フリップ・フロップＦＦ１に次のデータに対する準備を行わせると、フリップ・フロップＦＦ１の準備完了を示す応答信号Ａ０＝０を、前段の記憶制御回路ＬＣ０に送る。また、記憶制御回路ＬＣ１は、次段の記憶制御回路ＬＣ２に、次のデータに対する準備を要求する要求信号Ｒ１＝０を送る。【００１０】
前段の記憶制御回路ＬＣ０は、応答信号Ａ０＝０を受け取った後に、フリップ・フロップＦＦ０に次のデータｄ１を記憶させる。次段の記憶制御回路ＬＣ２は、要求信号Ｒ１＝０を受け取ると、フリップ・フロップＦＦ２に記憶制御信号Ｌ２＝０を送り、次のデータに対する準備をさせる。記憶制御回路ＬＣ０〜ＬＣ２は、データｄ１に対しても、上記と同様手動作を行い、フリップ・フロップＦＦ１、ＦＦ２に、データｄ１を転送する。なお、図１７の波形図では、各信号が周期的に遷移しているが、非同期式論理回路は、上記した手順における各タイミングの何れで遅れが生じても、上記手順に従うように動作する。【００１１】
非同期式のコア間通信回路を用いる場合、異なる機能ブロックの間でクロック同期をとる必要がないため、クロック分配範囲を狭い範囲に限定できるという効果がある。また、個々の機能ブロックのクロック周波数を、自由、かつ、動的に設定することが可能になるため、クロック周波数を、機能ブロックが所定の動作を実現する必要最低限の周波数まで遅くすることができる。クロック周波数を低くすると、回路遅延を大きくすることができ、電源電圧を下げることも可能になる。消費電力は、電源電圧の２乗とクロック周波数との積に比例するため、機能ブロック間のコア間通信回路を非同期式とすることで、集積回
路の消費電力を大きく削減することが可能になる。【００１２】
更に、コア間通信回路を非同期式とする場合、同期式コアの駆動タイミングを時間的に分散できるため、電力と電磁波照射とを低減することも可能になる。すなわち、同期式コアは、クロック信号の立上り又は立下りの遷移（クロック・エッジ）で駆動されるため、クロック・エッジの直後に大きな電流変化がある。コア間通信回路に非同期式論理回路を用いると、コアごとに駆動タイミングが異なるため、集積回路全体での電流を平準化できる。その結果、最大時の電力と、電流変化とで誘導される電磁放射が低減される。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】Jens Sparso、Steve Furber著「Principles of Asynchronous Circuit Design」、Kluwer Academic Publishers、2001年12月31日、pp.9-11、pp.76-79
【発明の概要】
【発明が解決しようとする課題】
【００１４】
コア間通信回路を用いた集積回路の設計では、データ通信を要求する側のコアをマスタと呼び、マスタの要求に呼応して動作するコアをスレーブと呼ぶ。通信要求を行うマスタが複数存在する場合、コア間通信回路は、当該マスタ間で調停を行って優先度付けを行い、その優先度に従って順番に通信要求を処理する。多数のコアを接続するコア間接続回路は、調停の処理を複数の箇所で行うように構成されている。通信経路上の最初の調停箇所で優先権を与えられたマスタが、当該調停箇所を越えて経路上の次の調停箇所までデータを送る。このようにして経路上の各調停箇所で通信要求と調停とデータ転送とを繰り返して、目的のスレーブまで転送を行うように構成されている。【００１５】
また、コア間接続回路の通信路のネットワーク形状（トポロジ）は、マスタとスレーブとの対の一部乃至全部において通信経路が複数存在するように構成されることがある。マスタ・スレーブ対で、複数の通信経路が存在するようなコア間接続回路は、マスタがあらかじめ経路を決定することで１つの経路を選択する構成や、転送経路上の分岐箇所で逐一目的地方法を選ぶ構成をとる。【００１６】
マスタからスレーブまでの間に複数の転送経路が混在する非同期式のコア間接続回路において、複数対のマスタとスレーブとがデータ転送を行う際に、転送経路上に調停箇所を起点とする共通箇所が存在する。そのうち一対のマスタ・スレーブ間のデータ転送が調停箇所を占有すると、当該調停箇所を通過する他のマスタ・スレーブ間のデータ転送が長時間待たされることになる。待機させられているデータ転送のマスタからスレーブまでの間に、混雑している当該調停箇所を回避する転送経路が存在するのであれば、混雑の有無を考慮しないデータ転送経路設定を行うことで、当該コア間接続経路の通信容量が無駄にされることになる。以下、この問題点について説明する。【００１７】
図１８は、マスタからスレーブまでの間に複数の転送経路が混在するコア間接続回路を示している。図１８には、非同期式コア間接続回路１８００が接続するコア（同期式マスタ側コア、スレーブ側コア）として、マスタＡ１８０１、スレーブＡ１８０２、マスタＢ１８０３、及び、スレーブＢ１８０４の４つが示されている。非同期式コア間接続回路１８００は、非同期式分岐回路１８１１、１８１３、１８２３と、非同期式調停回路１８１２、１８２２、１８２４とを含む。非同期式分岐回路１８１１、１８１３、１８２３、及び、非同期式調停回路１８１２、１８２２、１８２４には、非特許文献１に記載されているものが用いられる。また、マスタＡ１８０１、スレーブＡ１８０２、マスタＢ１８０３、スレーブＢ１８０４、非同期式分岐回路１８１１、１８１３、１８２３、及び、非同期式調停回路１８１２、１８２２、１８２４の間のデータ転送は、図１５に示す非同期式論理回路が用いられる。【００１８】
マスタＡ１８０１は、非同期式コア間接続回路１８００に対して、スレーブＡ１８０２へのデータ列１８９１〜１８９４（データｍ〜データｍ＋３）の転送要求を行うとする。このとき、マスタＢ１８０３は、非同期式コア間接続回路１８００に対して、スレーブＢ１８０４へのデータ列１８８１〜１８８３（データｎ〜データｎ＋２）の転送要求を行っている。ここで、当該データ列に先行して、多数のデータ列の転送が完了していると共に、当該データ列に後続する多数のデータ列が、マスタＢ１８０３にて転送待機中であるとする。【００１９】
非同期式コア間接続回路１８００には、マスタＡ１８０１が、スレーブＡ１８０２へデータ１８９１〜１８９４を転送する際の経路は２つある。１つは、マスタＡ１８０１−非同期式分岐回路１８１１−非同期式調停回路１８１２−非同期式分岐回路１８１３−非同期式調停回路１８２４−スレーブＡ１８０２という経路である。もう１つは、マスタＡ１８０１−非同期式分岐回路１８１１−非同期式調停回路１８２２−非同期式分岐回路１８２３−非同期式調停回路１８２４−スレーブＡ１８０２という経路との２つがある。つまり、マスタＡ１８０１からスレーブＡ１８０２までの間に、利用可能な経路が２つある。【００２０】
非同期式分岐回路１８１１は、データ転送に際して、２つのデータ出力端子の何れか一方を選択して出力する。非同期式分岐回路１８１１は、２つのデータ出力端子の何れを選択してもよい。データが、マスタＡ１８０１から転送要求を受けたデータの目的地であるスレーブＡ１８０２まで到達可能であるからである。ここでは、非同期式分岐回路１８１１は、データ１８９１の出力先として、非同期式調停回路１８１２方面の出力端子を選択したものとする。【００２１】
非同期式分岐回路１８１１と非同期式調停回路１８１２との間にある記憶回路は、データ１８９１、データ１８９２を順次、非同期式調停回路１８１２に向けて転送する。しかし、非同期式調停回路１８１２は、マスタＢ１８０３からスレーブＢ１８０４へ、先行データ、データ１８８１〜１８８３、後続データのデータ転送を排他的に行っている。このため、非同期式調停回路１８１２は、データ１８９１の転送を保留して待たせておくように動作する。【００２２】
非同期式分岐回路１８１１が、非同期式調停回路１８１２ではなく、非同期式調停回路１８２２方面のデータ出力端子を選択していたとすると、非同期式調停回路１８２２は、他のデータ転送を行っていない。このため、データ１８９１をすぐに非同期式分岐回路１８２３へ出力することが可能である。また、後続データ１８９２〜１８９４についても、逐次転送可能である。しかし、非同期式分岐回路１８１１でのデータ出力端子が非同期式調停回路１８１２方面であるので、データ転送は待機させられる。このように、非同期式分岐回路１８１１でのデータ出力端子が非同期式調停回路１８１２方面であることで、非同期式調停回路１８２２を経由するデータ転送経路の通信容量が無駄になる。【００２３】
非同期式論理回路で用いられるハンドシェイクは、データ送信側レジスタからデータ受信側レジスタへのデータ記憶の要求を伝送する信号と、データ受信側レジスタからデータ送信側レジスタへのデータ記憶完了の応答を伝送する信号のみで構成されている。非同期式論理回路では、混雑情報を示す信号は用いられておらず、混雑の検知と混雑情報の発生とを行うことはできない。従って、非同期式論理回路にて、混雑箇所を回避したデータ転送を行うことはできない。【００２４】
本発明は、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法を提供することを目的とする。
【課題を解決するための手段】
【００２５】
上記目的を達成するために、本発明に係る非同期式論理回路は、
データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する非同期式分岐モジュールと、
前記転送データの転送経路を合流し、複数の合流元の少なくとも１つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する非同期式調停モジュールと、
前記非同期式調停モジュールに対応して配置され、該非同期式調停モジュールから、何れの合流元からの転送データを転送中であるかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する混雑検知モジュールと、
前記非同期式分岐モジュールに対応して配置され、該非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから前記混雑情報を受け取り、前記非同期式分岐モジュールの複数の分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理と、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理とを排他的に行う混雑回避経路計算モジュールと、を備え、
前記混雑検知モジュールは、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある混雑回避経路計算モジュールに出力する要求出力モジュールを含み、
前記混雑検知モジュールは、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する応答待ち合わせモジュール
を更に含む
ことを特徴とする。
【００２６】
本発明に係る半導体回路は、本発明の非同期式論理回路を備えることを特徴とする。【００２８】
本発明に係る非同期式論理回路における経路計算方法は、
非同期式分岐モジュールが、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する工程と、
非同期式調停モジュールが、前記転送データの転送経路を合流し、複数の合流元の少なくとも１つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する工程と、
混雑検知モジュールが、前記非同期式調停モジュールから、何れの合流元からの転送データを転送中であるのかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する工程と、
混雑回避経路計算モジュールが、前記非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから混雑の有無を示す混雑情報を受け取り、前記非同期式分岐モジュールの分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理を行う工程と、
前記混雑回避経路計算モジュールが、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理を行う工程と、を有し、
前記混雑検知モジュールが、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある前記混雑回避経路計算モジュールに出力する工程と、
前記混雑検知モジュールが、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する工程と、を更に含む、
ことを特徴とする。
【発明の効果】
【００２９】
本発明の非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法によれば、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態の非同期式論理回路を示すブロック図。
【図２】非同期式調停モジュールの動作手順を示すフローチャート。
【図３】混雑検知モジュールの動作手順を示すフローチャート。
【図４】混雑回避経路計算モジュールの動作手順を示すフローチャート。
【図５】非同期式分岐モジュールの動作手順を示すフローチャート。
【図６】非同期式論理回路を含む半導体回路を示すブロック図。
【図７】非同期式分岐モジュールの回路構成例を示すブロック図。
【図８】非対称型２入力Ｃ素子を示すブロック図。
【図９】非同期式調停モジュールの回路構成例を示すブロック図。
【図１０】相互排他回路を示すブロック図。
【図１１】対称型２入力Ｃ素子を示すブロック図。
【図１２】混雑検出モジュールの回路構成例を示すブロック図。
【図１３】混雑回避経路計算モジュールの回路構成例を示すブロック図。
【図１４】ハンドシェイク部分調停回路を示すブロック図。
【図１５】多数のコアを含む半導体回路を示すブロック図。
【図１６】非同期式論理回路の典型的な構成例を示すブロック図。
【図１７】図１６の非同期式論理回路の動作波形例を示す波形図。
【図１８】非同期式論理回路を含む半導体回路を示すブロック図。
【図１９】本発明の第２実施形態の非同期式論理回路における非同期式調停モジュールの動作手順を示すフローチャート。
【図２０】第２実施形態の非同期式論理回路における混雑回避経路計算モジュールの動作手順を示すフローチャート。
【図２１】非同期式調停モジュールの回路構成例を示すブロック図。
【図２２】非対称型３入力Ｃ素子を示すブロック図。
【図２３】混雑回避経路計算モジュールの回路構成例を示すブロック図。
【図２４】本発明の第３実施形態の非同期式論理回路における混雑検知モジュールの動作手順を示すフローチャート。
【図２５】混雑検出モジュールの回路構成例を示すブロック図。
【図２６】本発明の第４実施形態の非同期式論理回路における混雑検知モジュールの動作手順を示すフローチャート。
【図２７】混雑検出モジュールの回路構成例を示すブロック図。
【図２８】本発明の第５実施形態の非同期式論理回路における混雑検知モジュールの動作手順を示すフローチャート。
【図２９】混雑検出モジュールの回路構成例を示すブロック図。
【図３０】ハンドシェイク分岐モジュール（３分岐）の動作手順を示すフローチャート。
【図３１】ハンドシェイク分岐モジュール（３分岐）の回路構成例を示すブロック図。
【発明を実施するための形態】
【００３１】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の第１実施形態の非同期式論理回路を示している。非同期式論理回路（非同期式コア間接続回路）１００は、非同期式調停モジュール１０１、非同期式分岐モジュール１０２、混雑検知モジュール１１１、及び、混雑回避経路計算モジュール１１２を有している。非同期式コア間接続回路１００は、要求信号と応答信号とを所定の手順で通信するハンドシェイクを用いて、データ転送を行う。なお、図１に示す各回路の接続形態は例示のものであり、回路間の接続は特に限定されない。
【００３２】
非同期式調停モジュール１０１は、データ転送経路を合流させるモジュールである。非同期式調停モジュール１０１は、調停を行い、データ転送を要求する合流元の一方を選択して、選択した合流元と合流先との間で、所定のハンドシェイクを行う共に、データ転送を行う。非同期式調停モジュール１０１は、複数の合流元の少なくとも１つから入力された転送データを、ハンドシェイク・プロトコルの手順に矛盾することなく、所定の手順で逐次的に出力する。
【００３３】
非同期式分岐モジュール１０２は、データ転送経路を分岐させるモジュールである。非同期式分岐モジュール１０２は、分岐元と分岐先との間で、所定のハンドシェイク・プロトコルに定められる手順に従うようにハンドシェイクを行いつつ、目的地方面の分岐先へデータ転送を行う。なお、図１では、非同期式調停モジュール１０１の合流元、及び、非同期式分岐モジュール１０２の分岐先をそれぞれ２つとしているが、合流元及び分岐先の数は、２つには限定されない。非同期式調停モジュール１０１の合流元、及び、非同期式分岐モジュール１０２の分岐先の数は、２以上の任意の数でよい。
【００３４】
混雑検知モジュール１１１は、非同期式調停モジュール１０１に対応して配置されている。混雑検知モジュール１１１は、非同期式調停モジュール１０１における調停結果を参照して、非同期式調停モジュールの合流元に対し、混雑の有無を示す混雑情報を生成する。混雑検知モジュール１１１は、非同期式調停モジュール１０１の合流元に、生成した混雑情報信号を送る。混雑検知モジュール１１１は、調停結果に応じて、合流先へのデータ転送を行っている合流元に対しては、「混雑なし」を示す混雑情報信号を送り、合流先へのデータ転送を行っていない合流元に対しては「混雑あり」を示す混雑情報信号を送る。
【００３５】
混雑回避経路計算モジュール１１２は、非同期式分岐モジュール１０２に対応して配置されている。混雑回避経路計算モジュール１１２は、非同期式分岐モジュール１０２の分岐先にある混雑検知モジュール１１１から、分岐先での混雑情報を受け取る。混雑回避経路計算モジュール１１２は、非同期式分岐モジュール１０２の分岐先について混雑情報を記憶する混雑情報記憶メモリ（図示せず）を有している。混雑回避経路計算モジュール１１２は、分岐先からの混雑情報を受け取ると、該当する分岐先の混雑情報を更新する。
【００３６】
また、混雑回避経路計算モジュール１１２は、混雑情報と、転送データの目的地情報とに基づいて、非同期式分岐モジュール１０２の転送分岐先を決定する。混雑回避経路計算モジュール１１２は、非同期式分岐モジュール１０２に対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる。混雑回避経路計算モジュール１１２は、混雑情報を記憶する処理と、転送分岐先を選択させる処理とを、排他的に行う。
【００３７】
非同期式調停モジュール１０１は、データ入力端子、データ要求入力端子、及び、データ応答出力端子の組を２組有する。また、非同期式調停モジュール１０１は、データ出力端子、データ要求出力端子、及び、データ応答入力端子の組を１組有する。更に、非同期式調停モジュール１０１は、調停結果出力端子を有する。
【００３８】
非同期式調停モジュール１０１は、一方又は双方のデータ要求入力端子から、データ要求信号を受け取る。非同期式調停モジュール１０１は、受け取ったデータ要求信号のうちの１つを選択し、データ要求出力端子に出力する。非同期式調停モジュール１０１は、選択結果を調停結果として調停結果出力端子から出力すると共に、選択されなかった側のデータ要求入力端子からのデータ要求信号を保留する。
【００３９】
非同期式調停モジュール１０１は、出力したデータ要求信号に対するデータ応答信号をデータ応答入力端子から受け取る。非同期式調停モジュール１０１は、データ応答信号が入力されると、データ要求信号の出力時に選択したデータ要求入力端子と同じ組のデータ応答出力端子から、データ応答信号を出力する。つまり、非同期式調停モジュール１０１は、データ転送中の合流元に対して、データ応答信号を出力する。
【００４０】
非同期式分岐モジュール１０２は、データ入力端子、データ要求入力端子、及び、データ応答出力端子の組を１組有する。また、非同期式分岐モジュール１０２は、データ出力端子、データ要求出力端子、及び、データ応答入力端子の組を２組有する。更に、非同期式分岐モジュール１０２は、データ出力端子のうちの１つを指定する旨の選択信号を入力する選択信号入力端子を有する。
【００４１】
非同期式分岐モジュール１０２は、データ入力端子及びデータ要求入力端子から、転送データ及びデータ要求信号を受け取る。また、非同期式分岐モジュール１０２は、選択信号入力端子から、混雑回避経路計算モジュール１１２にて生成された選択信号を受け取る。非同期式分岐モジュール１０２は、選択信号に従って、指定されたデータ出力端子からデータを出力する。また、非同期式分岐モジュール１０２は、データを出力するデータ出力端子と同じ組のデータ要求出力端子から、データ要求信号を出力する。
【００４２】
非同期式分岐モジュール１０２は、データ出力後、データ要求信号を出力したデータ要求出力端子と同じ組のデータ応答入力端子から、データ要求信号に対するデータ応答信号を受け取る。つまり、非同期式分岐モジュール１０２は、データ転送中の分岐先から、データ応答信号を受け取る。非同期式分岐モジュール１０２は、分岐先からデータ応答信号を受け取ると、データ応答出力端子から、分岐元に対してデータ応答信号を出力する。
【００４３】
混雑検知モジュール１１１は、データ入力端子、データ要求入力端子、及び、データ応答出力端子の組を１組有する。また、混雑検知モジュール１１１は、データ出力端子、データ要求出力端子、及び、データ応答入力端子の組を１組有する。更に、混雑検知モジュール１１１は、調停結果入力端子と、非同期式調停モジュール１０１のデータ入力端子と同数の組の混雑情報出力端子、混雑処理要求出力端子、及び、混雑処理応答入力端子とを有する。混雑情報出力端子、混雑処理要求出力端子、及び、混雑処理応答入力端子の各組は、非同期式調停モジュールのデータ入力端子、データ要求有力端子、及び、データ応答出力端子の各組と１対１に対応づけられる。
【００４４】
混雑検知モジュール１１１は、データ信号入力端子及びデータ要求入力端子を介して、非同期式調停モジュール１０１から、転送データとデータ要求信号とを入力する。混雑検知モジュール１１１は、データ出力端子及びデータ要求出力端子から、転送データ及びデータ要求信号をそれぞれ出力する。また、混雑検知モジュール１１１は、調停結果入力端子を介して、非同期式調停モジュール１０１から調停結果を入力する。混雑検知モジュール１１１は、入力された調停結果に基づいて、混雑情報信号を生成する。
【００４５】
混雑検知モジュール１１１は、各組の混雑情報出力端子及び混雑処理要求出力端子から、混雑情報信号及び混雑処理要求信号（混雑情報の記憶要求信号）をそれぞれ出力する。つまり、混雑検知モジュール１１１は、非同期式調停モジュール１０１の合流元のそれぞれに、混雑情報及び混雑処理要求信号を出力する。混雑検知モジュール１１１は、データ応答信号と、混雑処理要求信号に対する混雑処理応答信号（混雑情報記憶応答信号）とを待ち合わせる。混雑検知モジュール１１１は、データ応答入力端子に合流先からのデータ応答信号が入力され、各組の混雑処理応答入力端子に合流元からの混雑処理応答信号が入力されると、データ応答出力端子から、非同期式調停モジュール１０１にデータ応答信号を出力する。
【００４６】
混雑回避経路計算モジュール１１２は、データ入力端子、データ要求入力端子、及び、データ応答出力端子の組を１組有する。また、混雑回避計算モジュール１１２は、データ出力端子、データ要求出力端子、及び、データ応答入力端子の組を１組有する。更に、混雑回避経路計算モジュール１１２は、選択信号出力端子と、非同期式分岐モジュールのデータ出力端子と同数の組の混雑情報入力端子、混雑処理要求入力端子、及び、混雑処理応答出力端子を有する。混雑情報入力端子、混雑処理要求入力端子、及び、混雑処理応答出力端子の各組は、非同期式分岐モジュール１０２のデータ出力端子、データ要求出力端子、及び、データ応答入力端子の各組に1対１で対応付けられる。
【００４７】
混雑回避経路計算モジュール１１２は、データ要求信号と混雑処理要求信号との到着を待機する。混雑回避経路計算モジュール１１２は、データ要求信号の入力がないときに、１以上の混雑処理要求入力端子から混雑処理要求信号が入力されると、混雑処理要求信号の調停を行い、そのうちの１つを所定の方法で選択する。混雑回避経路計算モジュール１１２は、選択した混雑処理要求入力端子と同じ組の混雑情報入力端子を介して、混雑情報信号を受け取る。つまり、混雑回避経路計算モジュール１１２は、混雑情報記憶要求信号を出力した分岐先から、当該分岐先の混雑情報信号を受け取る。混雑回避経路計算モジュール１１２は、混雑情報記憶メモリに記憶している当該分岐先の混雑情報を、受け取った混雑情報信号で更新する。その後、混雑回避経路計算モジュール１１２は、選択した混雑処理要求入力端子と同じ組の混雑処理応答出力端子から、混雑処理応答信号を出力する。
【００４８】
混雑回避経路計算モジュール１１２は、データ要求入力端子からデータ要求信号が入力されると、データ入力端子から入力する転送データから、目的地を割り出す。混雑回避経路計算モジュール１１２は、目的地情報から、非同期式分岐モジュール１０２が持つ複数の分岐先のうち、目的地のコアに到達可能な経路上にある分岐先を、選択可能分岐先として求める。混雑回避経路計算モジュール１１２は、選択可能分岐先の混雑情報を参照し、選択可能分岐先の中から、混雑ありを示していない分岐先を、転送分岐先として優先的に選択する。
【００４９】
混雑回避経路計算モジュール１１２は、転送分岐先の選択後、非同期式分岐モジュール１０２に対し、選択信号出力端子から選択した転送分岐先を示す選択信号を出力する。また、データ出力端子及びデータ要求出力端子から、データ入力端子及びデータ要求入力端子から入力したデータ及びデータ要求信号をそれぞれ出力する。非同期式分岐モジュール１０２は、混雑回避経路計算モジュール１１２が出力した選択信号に従って、データ及びデータ要求信号の出力分岐先を選択する。混雑回避経路計算モジュール１１２は、データ応答入力端子から、非同期式分岐モジュール１０２が出力するデータ応答信号を受け取る。混雑回避経路計算モジュール１１２は、データ応答信号を受け取ると、データ応答出力端子から、データ応答信号を出力する。
【００５０】
以下、非同期式コア間接続回路の動作について説明する。非同期式調停モジュール１０１、非同期式分岐モジュール１０２、混雑検知モジュール１１１、及び、混雑回避経路計算モジュール１１２は、それぞれ並列に動作する。各モジュールにて、データ要求信号、データ応答信号、混雑処理要求信号、及び、混雑処理応答信号の状態が、それぞれデータ要求、データ応答、混雑処理要求、及び、混雑処理応答がない状態（信号なし）を初期状態とする。非同期式調停モジュール１０１の２つの合流元に番号を付け、一方を合流元０番とし、他方を合流元１番とする。また、非同期式分岐モジュール１０２の２つの分岐先に番号を付け、一方を分岐先０番とし、他方を分岐先１番とする。
【００５１】
図２は、非同期式調停モジュール１０１の動作手順を示している。はじめ、非同期式調停モジュール１０１は、初期状態にある。非同期式調停モジュール１０１は、データ要求入力端子に、データ要求入力信号が入力されたか否かを判断する（ステップＡ１）。非同期式調停モジュール１０１は、データ要求入力信号が入力されていないときは、繰り返しステップＡ１を実行し、データ要求入力信号が入力されるまで待機する。
【００５２】
非同期式調停モジュール１０１は、データ要求信号が入力されると、データ要求信号が入力されたデータ要求入力端子が、合流元０番側のデータ要求入力端子であるか否かを判断する（ステップＡ２）。非同期式調停モジュール１０１は、データ要求信号が入力されたデータ要求に入力端子が、合流元０番側のデータ要求入力端子のときは、合流元０番のデータ入力端子から入力する転送データを、データ出力端子から合流先に出力する（ステップＡ３）。また、非同期式調停モジュール１０１は、調停結果出力端子から、合流元０番からの転送データがデータ出力端子から出力中であることを示す調停結果信号を、混雑検知モジュール１１１に出力する（ステップＡ４）。
【００５３】
非同期式調停モジュール１０１は、ステップＡ２でデータ要求信号が入力されたデータ要求入力端子が、合流元１番のデータ要求入力端子のときは、合流元１番のデータ入力端子から入力する転送データを、データ出力端子から合流先に出力する（ステップＡ５）。また、非同期式調停モジュール１０１は、調停結果出力端子から、合流元１番からの転送データがデータ出力端子から出力中であることを示す調停結果信号を、混雑検知モジュール１１１に出力する（ステップＡ６）。
【００５４】
非同期式調停モジュール１０１は、合流元０番及び合流元１番の双方からデータ要求信号が入力されたときは、何れか一方を選択する。非同期式調停モジュール１０１は、２つのデータ要求信号のうち、例えば先着したデータ要求信号を選択する。非同期式調停モジュール１０１は、合流元０番からのデータ要求信号を選択したときは、ステップＡ２からステップＡ３へ進み、合流元０番からの転送データを出力する。一方、非同期式調停モジュール１０１は、合流元１番からのデータ要求信号を選択したときは、ステップＡ２からステップＡ５へ進み、合流元１番からの転送データを出力する。非同期式調停モジュール１０１は、選択しなかった側のデータ要求信号については、選択した側のデータ転送が完了するまで保留する。
【００５５】
非同期式調停モジュール１０１は、ステップＡ４又はＡ６で調停結果を出力した後、データ要求出力端子から、混雑検知モジュール１１１にデータ要求信号を出力する（ステップＡ７）。非同期式調停モジュール１０１は、データ要求信号の出力後、データ応答入力端子にデータ応答信号が入力されたか否かを判断する（ステップＡ８）。非同期式調停モジュール１０１は、データ応答信号が入力されてないときは、ステップＡ８を繰り返し行い、データ応答信号が入力されるまで待機する。
【００５６】
非同期式調停モジュール１０１は、データ応答信号が入力されると、ステップＡ４又はＡ６で出力した調停結果信号が、合流元０番からの転送データがデータ出力端子から出力中であることを示しているか否かを判断する（ステップＡ９）。非同期式調停モジュール１０１は、調停結果信号が、合流元０番からの転送データがデータ出力端子から出力中であることを示すときは、合流元０番に対応したデータ応答出力端子から、データ応答信号を出力する（ステップＡ１０）。非同期式調停モジュール１０１は、調停結果信号が、合流元１番からの転送データがデータ出力端子から出力中であることを示すときは、合流元１番に対応したデータ応答出力端子から、データ応答信号を出力する（ステップＡ１１）。非同期式調停モジュール１０１は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＡ１（初期状態）に戻る。
【００５７】
図３は、混雑検知モジュール１１１の動作手順を示している。はじめ、混雑検知モジュール１１１は、初期状態にある。混雑検知モジュール１１１は、データ要求入力端子に、非同期式調停モジュール１０１からデータ要求信号が入力されたか否かを判断する（ステップＢ１）。混雑検知モジュール１１１は、データ要求信号の入力がないときは、ステップＢ１を繰り返し実行し、データ要求信号が入力されるまで待機する。
【００５８】
混雑検知モジュール１１１は、データ要求信号が入力されると、非同期式調停モジュール１０１から調停結果入力端子を介して入力する調停結果信号に基づいて、各調停対象に対する混雑情報信号を生成する（ステップＢ２）。ここで、各調停対象とは、非同期式調停モジュール１０１の各合流元である。混雑検知モジュール１１１は、例えば、調停結果信号が合流元０番のデータがデータ出力端子から出力中であることを示しているときは、合流元０番に対して「混雑なし」を示す混雑情報信号を生成し、合流元１番に対して「混雑あり」を示す混雑情報信号を生成する。これとは逆に、調停結果信号が合流元１番のデータがデータ出力端子から出力中であることを示しているときは、合流元０番に対して「混雑あり」を示す混雑情報信号を生成し、合流元１番に対して「混雑なし」を示す混雑情報信号を生成する。
【００５９】
混雑検知モジュール１１１は、各調停対象に、生成した混雑情報信号と、混雑処理要求信号とを出力する（ステップＢ３）。混雑検知モジュール１１１は、ステップＢ３では、合流元０番に対応した混雑情報出力端子及び混雑処理要求出力端子から、合流元０番に対応する混雑情報信号と混雑処理要求信号とをそれぞれ出力する。また、混雑検知モジュール１１１は、合流元１番に対応した混雑情報出力端子及び混雑処理要求出力端子から、合流元１番に対応する混雑情報信号と混雑処理要求信号とをそれぞれ出力する。
【００６０】
混雑検知モジュール１１１は、非同期式調停モジュール１０１からデータ入力端子を介して入力したデータと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する（ステップＢ４）。混雑検知モジュール１１１は、非同期式調停モジュール１０１が、ステップＡ３で合流元０番からの転送データを出力しているときは、データ出力端子から、合流元０番からの転送データを出力する。また、混雑検知モジュール１１１は、非同期式調停モジュール１０１が、ステップＡ５で合流元１番からの転送データを出力しているときは、データ出力端子から、合流元１番からの転送データを出力する。
【００６１】
混雑検知モジュール１１１は、ステップＢ４で出力したデータ要求信号に対するデータ応答信号、及び、ステップＢ３で各合流元に出力した混雑処理要求信号に対する混雑処理応答信号を待ち合わせる（ステップＢ５）。混雑検知モジュール１１１は、各合流元に対応する混雑処理応答入力端子に、ステップＢ３で出力した混雑処理要求信号に対する混雑処理応答信号が入力されたか否かを判断する。また、混雑検知モジュール１１１は、データ応答入力端子に、ステップＢ４出力したデータ要求信号に対するデータ応答信号が入力されたか否かを判断する。混雑検知モジュール１１１は、全ての合流元から混雑処理応答信号を入力していない、又は、データ応答信号を入力していないと判断しないときは、ステップＢ５を繰り返し実行する。これにより、混雑処理応答信号及びデータ応答信号が入力されるまで待機する。
【００６２】
混雑検知モジュール１１１は、全ての合流元から混雑処理応答信号が入力され、かつ、データ応答信号が入力されると、データ応答出力端子から、非同期式調停モジュール１０１にデータ応答信号を出力する（ステップＢ６）。その後、混雑検知モジュール１１１は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＢ１（初期状態）に戻る。
【００６３】
図４は、混雑回避経路計算モジュール１１２の動作手順を示している。はじめ、混雑回避経路計算モジュール１１２は、初期状態にある。混雑回避経路計算モジュール１１２は、データ要求入力端子に、データ要求信号が入力されたか否かを判断する（ステップＣ１）。混雑回避経路計算モジュール１１２は、データ要求信号の入力がないときは、混雑処理要求入力端子に、１以上の混雑処理要求信号が入力されたか否かを判断する（ステップＣ２）。混雑回避経路計算モジュール１１２は、混雑処理要求信号が入力されていないときは、ステップＣ１に戻り、データ要求信号又は混雑処理要求信号が入力されるまで待機する。
【００６４】
混雑回避経路計算モジュール１１２は、データ要求信号の入力がないときに、１以上の混雑処理要求入力端子に混雑処理要求信号が入力されると、そのうちの１つを選択する（ステップＣ３）。混雑回避経路計算モジュール１１２は、混雑情報記憶メモリに記憶している混雑情報のうち、混雑処理要求信号が入力された混雑処理要求入力端子に対応する分岐先の混雑情報を更新する（ステップＣ４）。更新する値は、当該混雑処理要求入力端子と同じ組の混雑情報入力端子に入力された混雑情報信号の値である。混雑回避経路計算モジュール１１２は、混雑情報の更新後、当該混雑処理要求入力端子と同じ組の混雑処理応答出力端子から、混雑処理応答信号を出力する（ステップＣ５）。その後、混雑回避経路計算モジュール１１２は、入力する混雑処理要求信号の取り下げ、及び、出力する混雑処理応答信号の取り下げを経て、ステップＣ１（初期状態）に戻る。
【００６５】
混雑回避経路計算モジュール１１２は、ステップＣ１でデータ要求信号の入力があると判断すると、データ入力端子に入力された転送データから目的地情報を抽出する。それに基づき、接続する非同期式分岐モジュール１０２の分岐先のそれぞれについて、目的地到達可能性の有無を判断する。混雑回避経路計算モジュール１１２は、目的地到達可能性がある分岐先を、選択可能分岐先として列挙する（ステップＣ６）。混雑回避経路計算モジュール１１２は、選択可能分岐先が１つであるか否かを判断する（ステップＣ７）。つまり、混雑回避経路計算モジュール１１２は、非同期式分岐モジュールの２つの分岐先のうち、一方のみが目的地まで到達可能であるか否かを判断する。混雑回避経路計算モジュール１１２は、選択可能分岐先が１つのときは、その分岐先を転送分岐先として選択する（ステップＣ８）。
【００６６】
混雑回避経路計算モジュール１１２は、選択可能分岐先が１つでないときは、混雑情報を参照し、選択可能分岐先の混雑の有無を調べる。混雑回避経路計算モジュール１１２は、混雑なしの分岐先が１つであるか否かを判断する（ステップＣ９）。つまり、混雑回路計算モジュール１１２は、２つの選択可能分岐先のうち、何れか一方が混雑ありで、他方が混雑なしであるか否かを判断する。混雑回避経路計算モジュール１１２は、混雑している分岐先が１つのときは、混雑していない方の分岐先（非混雑分岐先）を、転送分岐先として選択する（ステップＣ１０）。混雑回避経路計算モジュール１１２は、混雑している分岐先が１つでない、すなわち、２つの選択分岐先の双方が混雑あり又は混雑なしである場合は、所定の手法により一方の分岐先を転送分岐先として選択する（ステップＣ１１）。
【００６７】
混雑回避経路計算モジュール１１２は、転送分岐先として選択した分岐先が分岐先０番であるか否かを判断する（ステップＣ１２）。混雑回避経路計算モジュール１１２は、転送分岐先が分岐先０番のときは、非同期式分岐モジュール１０２に、分岐先０番を示す選択信号を送る。また、混雑回避経路計算モジュール１１２は、データ入力端子に入力される転送データと、データ要求入力端子に入力されるデータ要求信号とを、それぞれデータ出力端子及びデータ要求出力端子から、非同期式分岐モジュール１０２に出力する（ステップＣ１３）。
【００６８】
混雑回避経路計算モジュール１１２は、転送分岐先が分岐先０番でないとき、すなわち、転送分岐先が分岐先１番のときは、非同期式分岐モジュール１０２に、分岐先１番を示す選択信号を送る。また、混雑回避経路計算モジュール１１２は、データ入力端子に入力される転送データと、データ要求入力端子に入力されるデータ要求信号とを、それぞれデータ出力端子及びデータ要求出力端子から、非同期式分岐モジュール１１２に出力する（ステップＣ１４）。
【００６９】
混雑回避経路計算モジュール１１２は、ステップＣ１３又はＣ１４で出力したデータ要求信号に対するデータ応答信号がデータ応答入力端子に入力されたか否かを判断する（ステップＣ１５）。混雑回避経路計算モジュール１１２は、データ応答信号が入力されていないときは、ステップＣ１５を繰り返し実行し、データ応答信号が入力されるまで待機する。混雑回避経路計算モジュール１１２は、データ応答入力端子にデータ応答信号が入力されると、データ応答出力端子から、データ応答信号を出力する（ステップＣ１６）。その後、混雑回避経路計算モジュール１１２は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＣ１（初期状態）に戻る。
【００７０】
図５は、非同期式分岐モジュール１０２の動作手順を示している。はじめ、非同期式分岐モジュール１０２は、初期状態にある。非同期式分岐モジュール１０２は、混雑回避経路計算モジュール１１２から、データ要求入力端子にデータ要求信号が入力されたか否かを判断する（ステップＤ１）。非同期式分岐モジュール１０２は、データ要求信号が入力されていないときは、ステップＤ１を繰り返し行い、データ要求信号が入力されるまで待機する。
【００７１】
非同期式分岐モジュール１０２は、データ要求信号が入力されると、混雑回避経路計算モジュール１１２から、選択信号入力端子を介して入力する選択信号が分岐先０番を示しているか否かを判断する（ステップＤ２）。非同期式分岐モジュール１０２は、選択信号が分岐先０番を示しているときは、分岐先０番に対応するデータ出力端子とデータ要求出力端子とから、それぞれデータ入力端子に入力された転送データ、及び、データ要求入力端子に入力されたデータ要求信号を出力する（ステップＤ３）。
【００７２】
非同期式分岐モジュール１０２は、ステップＤ３において転送データ及びデータ要求信号を送信したとき、分岐先０番に対応するデータ応答入力端子に、出力したデータ要求信号に対応するデータ応答信号が入力されたか否かを判断する（ステップＤ４）。非同期式分岐モジュール１０２は、分岐先０番に対応するデータ応答入力端子にデータ応答信号が入力されていないときは、ステップＤ４を繰り返し実行し、データ応答信号が入力されるまで待機する。
【００７３】
非同期式分岐モジュール１０２は、ステップＤ２で選択信号が分岐先１番を示していると判断すると、分岐先１番に対応するデータ出力端子とデータ要求出力端子とから、それぞれ転送データ及びデータ要求信号を出力する（ステップＤ５）。その後、非同期式分岐モジュール１０２は、分岐先１番に対応するデータ応答入力端子に、出力したデータ要求信号に対応するデータ応答信号が入力されたか否かを判断する（ステップＤ６）。非同期式分岐モジュール１０２は、分岐先１番に対応するデータ応答入力端子にデータ応答信号が入力されていないときは、ステップＤ６を繰り返し実行し、データ応答信号が入力されるまで待機する。
【００７４】
非同期式分岐モジュール１０２は、ステップＤ４又はＤ６で、分岐先０番又は分岐先１番のデータ応答入力端子にデータ応答信号が入力されると、データ応答出力端子から、データ応答信号を出力する（ステップＤ７）。非同期式分岐モジュール１０２は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＤ１（初期状態）に戻る。
【００７５】
非同期式コア間接続回路では、複数のデータ転送経路が合流する非同期式調停モジュール１０１で混雑が発生する。非同期式調停モジュール１０１の複数の合流元の何れからの転送データが保留されるかは、調停結果に依存する。つまり、合流元に対する混雑の有無は、調停結果に依存する。本実施形態では、混雑検知モジュール１１１は、非同期式調停モジュール１０１から調停結果を入力し、調停結果に基づいて、混雑情報を生成する。混雑検知モジュール１１１が、調停結果に基づいて混雑情報を生成することで、非同期式調停モジュール１０１の合流元に対して、混雑の検知と混雑情報の生成とが可能になる。混雑回避経路計算モジュール１１２は、混雑情報と転送データの目的地情報とに基づいて、非同期式分岐モジュール１０１の分岐先のうち、混雑ありを示していない分岐先を優先的に転送分岐先として決定する。これにより、データ転送経路の通信容量が無駄になることを抑制することができる。
【００７６】
本実施形態では、混雑回避経路計算モジュール１１２は、データ要求信号と混雑処理要求信号との間で調停を行う。調停の結果、データ要求信号を通過させたときは、データ要求信号のハンドシェイク完了まで混雑処理要求信号を保留する。一方、混雑処理要求信号を通過させたときは、混雑処理要求信号のハンドシェイク完了までデータ要求信号を保留する。このようにすることで、データ転送を行っているタイミングを避けて、混雑情報を更新し、混雑情報を更新しているタイミングを避けて、データ転送を行うことができる。このため、混雑回避経路計算モジュール１１２は、混雑情報を示す信号を用いて混雑箇所を回避するための経路設定計算結果を正しく行うことができる。また、非同期式分岐モジュール１０２のデータ出力端子の選択の変化が、データ転送ハンドシェイクの途中で起こることがなく、非同期式分岐モジュール１０２にハンドシェイク・プロトコルに基づく正常動作をさせることができる。
【００７７】
ここで、非同期式コア間接続回路では、同期式の回路とは異なり、データ要求信号が入力されるタイミング、及び、混雑処理要求信号が入力されるタイミングは任意である。つまり、混雑情報を示す信号の変化が、データ転送とは独立のタイミングで入力される。このため、単に混雑情報を用いただけでは、非同期式分岐モジュールでのハンドシェイクの途中で混雑情報が変化し、それに伴ってデータ出力端子の選択結果が変化することで、データ転送が完了しないうちに分岐先が変化することがある。データ転送が完了しないうちに分岐先が変化すると、非同期式分岐モジュールが、ハンドシェイク・プロトコルに従って動作することができず、誤動作することになる。本実施形態では、混雑情報の記憶と、データ転送先の決定とを排他的に行っており、このような問題は生じない。
【００７８】
以下、具体的な実施例について説明する。図６は、第１実施例の非同期式コア間接続回路を含む半導体回路を示している。半導体回路は、非同期式コア間接続回路６００、マスタＡ６０１、スレーブＡ６０２、マスタＢ６０３、及び、スレーブＢ６０４を有する。非同期式コア間接続回路６００は、マスタＡ６０１、スレーブＡ６０２、マスタＢ６０３、及び、スレーブＢ６０４の４つのコア（同期式マスタ側コア、スレーブ側コア）を接続する。非同期式コア間接続回路６００は、非同期式分岐モジュール６１１、６１３、６２３と、非同期式調停モジュール６１２、６１４、６２２と、混雑検知モジュール６３２、６４２と、混雑回避経路計算モジュール６３１とを含む。
【００７９】
混雑回避経路計算モジュール６３１は、非同期式分岐モジュール６１１に対応して配置されている。混雑回避経路計算モジュール６３１は、マスタＡ６０１から、レジスタ（記憶素子）を介して、転送データを入力する。また、混雑回避経路計算モジュール６３１は、レジスタの記憶制御回路（図１６のＬＣ）との間で、要求信号と応答信号とのやり取りを行う。非同期式分岐モジュール６１１は、２つの分岐先を有し、分岐先の一方はレジスタを介して非同期式調停モジュール６１２に接続される。分岐先の他方は、レジスタを介して非同期式調停モジュール６２２に接続される。
【００８０】
混雑検知モジュール６３２及び６４２は、それぞれ、非同期式調停モジュール６１２及び６２２に対応して配置されている。混雑検知モジュール６３２は、非同期式調停モジュール６１２が出力した転送データを、レジスタを介して非同期式分岐モジュール６１３に出力し、レジスタの記憶制御回路との間で、要求信号と応答信号のやり取りを行う。また、混雑検知モジュール６３２は、非同期式調停モジュール６１２の合流元に対応する混雑回避経路計算モジュール６３１との間で、混雑処理要求信号、混雑情報信号、及び、混雑処理応答信号のやり取りを行う。
【００８１】
混雑検知モジュール６４２は、非同期式調停モジュール６２２が出力した転送データを、レジスタを介して非同期式分岐モジュール６２３に出力し、レジスタの記憶制御回路との間で、要求信号と応答信号のやり取りを行う。また、混雑検知モジュール６４２は、非同期式調停モジュール６２２の合流元に対応する混雑回避経路計算モジュール６３１との間で、混雑処理要求信号、混雑情報信号、及び、混雑処理応答信号のやり取りを行う。
【００８２】
非同期式分岐モジュール６１３は、２つの分岐先を有する。非同期式分岐モジュール６１３の分岐先の一方は、非同期式調停モジュール６１４である。非同期式分岐モジュール６２３は、２つの分岐先を有する。非同期式分岐モジュール６２３の分岐先の一方は、非同期式調停モジュール６１４である。非同期式調停モジュール６１４は、レジスタを介して、混雑検知モジュール６３２及び６４２が出力する転送データを入力し、レジスタを介して、スレーブＡ６０２に転送データを出力する。
【００８３】
ここで、マスタＡ６０１からスレーブＡ６０２までの通信には、２つの経路が利用可能である。一方は、非同期式分岐モジュール６１１、非同期式調停モジュール６１２、非同期式分岐モジュール６１３、及び、非同期式調停モジュール６１４を通る経路である。他方は、非同期式分岐モジュール６１１、非同期式調停モジュール６２２、非同期式分岐モジュール６２３、及び、非同期式調停モジュール６１４を通る経路である。また、マスタＢ６０３からスレーブＢ６０４までの通信には、非同期式調停モジュール６１２、非同期式分岐モジュール６１３を通る経路が利用可能である。
【００８４】
図７は、非同期式分岐モジュールの回路構成例を示している。図６の非同期式分岐モジュール６１１は、図７に示す回路構成の非同期式分岐回路７００で構成できる。非同期式分岐回路７００は、非対称型２入力Ｃ素子７１０、７１１と、ＯＲ素子７２０とを有する。非同期式分岐回路７００は、データ入力端子から転送データが入力される。また、非同期式分岐回路７００には、データ要求入力端子から、データ要求信号Ｒｉが入力される。非同期式分岐モジュール７００は、入力した転送データを、分岐先の一方（分岐先０番）に対応したデータ出力端子、及び、分岐先の他方（分岐先１番）に対応したデータ出力端子から出力する。
【００８５】
図８は、非対称型２入力Ｃ素子の論理回路を示している。図７に示す非対称型２入力Ｃ素子７１０、７１１は、図８に示す、ＯＲ素子とＡＮＤ素子とを組み合わせた論理回路（非対称型２入力Ｃ素子）８００で構成できる。非対称型２入力Ｃ素子８００を、記号８０１で表すこととする。非対称型２入力Ｃ素子８００の入力Ａ、Ｂと、出力Ｙとの関係は、真理値表８５０で示すようになる。すなわち、非対称型２入力Ｃ素子８００は、入力が（Ａ，Ｂ）＝（１，１）のとき、Ｙ＝１を出力する。また、非対称型２入力Ｃ素子８００は、Ｂ＝０のときは、Ａの入力値にかかわらず、Ｙ＝０を出力する。非対称型２入力Ｃ素子８００は、入力が（Ａ，Ｂ）＝（１，０）のときは、出力Ｙの値を維持する。つまり、非対称型２入力Ｃ素子８００は、一度、（Ａ，Ｂ）＝（１，１）でＹ＝１となれば、Ａ＝０になっても、Ｂ＝０になるまでＹ＝１を維持する。
【００８６】
図７に戻り、非同期式分岐回路７００には、選択信号入力端子から、混雑回避経路計算モジュールが出力する選択信号Ｓ０、Ｓ１が入力される。選択信号は、（Ｓ０，Ｓ１）＝（０，１）又は（Ｓ０，Ｓ１）＝（１，０）の何れかの状態をとる。選択信号Ｓ０は、非対称型２入力Ｃ素子７１０の端子Ａに入力される。また、選択信号Ｓ１は、非対称型２入力Ｃ素子７１１の端子Ａに入力される。非対称型２入力Ｃ素子７１０及び７１１の端子Ｂには、データ要求信号Ｒｉが入力される。非対称型２入力Ｃ素子７１０は、分岐先０番に対応したデータ要求信号Ｒｏ０を出力する。また、非対称型２入力Ｃ素子７１１は、分岐先１番に対応したデータ要求信号Ｒｏ１を出力する。
【００８７】
非対称型２入力Ｃ素子７１０は、選択信号Ｓ０＝１で、かつ、データ要求信号Ｒｉ＝１のとき、データ要求信号Ｒｏ０＝１を出力する。非対称型２入力Ｃ素子７１０がデータ要求信号Ｒｏ０＝１を出力することで、分岐先０番に対応したデータ出力端子が出力する転送データが、分岐先０番に転送される。非対称型２入力Ｃ素子７１１は、選択信号Ｓ１＝１で、かつ、データ要求信号Ｒｉ＝１のとき、データ要求信号Ｒｏ１＝１を出力する。非対称型２入力Ｃ素子７１１がデータ要求信号Ｒｏ１＝１を出力することで、分岐先１番に対応したデータ出力端子が出力する転送データが、分岐先１番に転送される。
【００８８】
非同期式分岐回路７００には、分岐先０番に対応したデータ応答入力端子に、データ転送先のレジスタからデータ応答信号Ａｏ０が入力され、分岐先１番に対応したデータ応答入力端子に、データ転送先のレジスタからデータ応答信号Ａｏ１が入力される。ＯＲ素子７２０は、データ応答信号Ａｏ０とＡｏ１との論理和をとり、データ応答信号Ａｉとして、データ応答出力端子から出力する。つまり、ＯＲ素子７２０は、データ応答信号Ａｏ０＝１、又は、データ応答信号Ａｏ１＝１になると、データ応答信号Ａｉ＝１を出力する。
【００８９】
初期状態では、非同期式分岐回路７００に入力される信号は、データ要求信号Ｒｉ＝０、データ応答信号Ａｏ０＝０、Ａｏ１＝０である。また、非同期式分岐回路７００が出力する信号は、データ要求信号Ｒｏ０＝０、Ｒｏ１＝０、データ応答信号Ａｉ＝０である。選択信号は、（Ｓ０，Ｓ１）＝（１，０）又は（Ｓ０，Ｓ１）＝（０，１）の何れかになっている。非同期式分岐回路７００は、データ要求信号がない状態（Ｒｉ＝０）の間は、待機する（図５のステップＤ１）。
【００９０】
非同期式分岐回路７００は、データ要求信号がＲｉ＝１になると、ステップＤ２に進んで、選択信号Ｓ０、Ｓ１に従って、データ要求信号の出力先を選択する。選択信号が（Ｓ０，Ｓ１）＝（１，０）のとき、非対称型２入力Ｃ素子７１０は、入力するデータ要求信号がＲｉ＝１となることで、出力するデータ要求信号をＲｏ０＝１に変化させる。このとき、選択信号Ｓ１＝０なので、非対称型２入力Ｃ素子７１１の出力は、Ｒｏ１＝０のままである。この場合、非同期式分岐回路７００は、ステップＤ３へ進んで、分岐０番に対応したデータ出力端子から、データ要求信号Ｒｉと並行して入力された転送データを出力する。そして、非同期式分岐回路７００は、分岐先１番に対応したデータ要求出力端子からデータ要求信号Ｒｏ０＝１を出力する。
【００９１】
非同期式分岐回路７００は、分岐先０番へのデータ要求信号の出力後、ステップＤ４で、出力したデータ要求信号Ｒｏ０＝１に対するデータ応答信号の入力を待機する。分岐先０番に接続されたレジスタは、転送データとデータ要求信号Ｒｏ０＝１とを受け取った後に、データ応答信号を出力する。レジスタがデータ応答信号を出力することで、非同期式分岐回路７００に入力されるデータ要求信号がＡｏ０＝１変化する。このとき、分岐先１番については、データ要求信号がＲｏ１＝０のままなので、分岐先１番に接続されたレジスタはデータ応答信号を出力せず、分岐先１番のデータ応答信号はＡｏ１＝０のままである。
【００９２】
一方、選択信号が（Ｓ０，Ｓ１）＝（０，１）のとき、非対称型２入力Ｃ素子７１１は、入力するデータ要求信号がＲｉ＝１に変化することで、出力するデータ要求信号をＲｏ１＝１に変化させる。このとき、選択信号Ｓ０＝０なので、非対称型２入力Ｃ素子７１０の出力は、Ｒｏ０＝０のままである。この場合、非同期式分岐回路７００は、ステップＤ５に進んで、分岐先１番に対応したデータ出力端子から、データ要求信号Ｒｉと並行に入力された転送データを出力する。そして、非同期式分岐回路７００は、分岐先１番に対応したデータ要求出力端子から、データ要求信号Ｒｏ１＝１を出力する。
【００９３】
非同期式分岐回路７００は、分岐先１番へのデータ要求信号の出力後、ステップＤ６で、出力したデータ要求信号Ｒｏ１＝１に対するデータ応答信号の入力を待機する。分岐先１番に接続されたレジスタは、転送データとデータ要求信号Ｒｏ１＝１を受け取った後に、データ応答信号を出力する。レジスタがデータ応答信号を出力することで、非同期式分岐回路７００に入力されるデータ応答信号がＡｏ１＝１に変化する。このとき、分岐先０番については、データ要求信号がＲｏ０＝０のままなので、分岐先０番に接続されたレジスタはデータ応答信号を出力せず、分岐先０番のデータ応答信号はＡｏ０＝０のままである。
【００９４】
分岐先０番からのデータ応答信号、又は、分岐先１番からのデータ応答信号がＡｏ０＝１又はＡｏ１＝１に変化すると、ＯＲ素子７２０出力が変化する。つまり、非同期式分岐回路７００は、ステップＤ７で、分岐元に対しデータ応答信号Ａｉ＝１を出力する。分岐元のレジスタは、データ応答信号がＡｉ＝１になることで、データ要求信号を取り下げ、Ｒｉ＝０とする。非同期式分岐回路７００に入力されるデータ要求信号がＲｉ＝０となることで、非対称型２入力Ｃ素子７１０及び７１１の出力であるデータ要求信号がＲｏ０＝０、Ｒｏ１＝０となる。つまり、非同期式分岐回路７００は、データ要求信号を取り下げる。
【００９５】
非同期式分岐回路７００が、データ要求信号を取り下げると、データ要求信号を受け取っていた分岐先のレジスタは、出力していたデータ応答信号を取り下げる。分岐先０番のレジスタ又は分岐先１番のレジスタが、データ応答信号を取り下げてＡｏ０＝０又はＡｏ１＝０とすると、ＯＲ素子７２０の出力が変化する。つまり、非同期式分岐回路７００が分岐元に出力するデータ応答信号は、Ａｉ＝０になる。これで、非同期式分岐回路７００は、初期状態に戻る。
【００９６】
図９は、非同期式調停モジュールの回路構成例を示している。図６の非同期式調停モジュール６１２、６２２は、図９に示す非同期式調停回路９００で構成できる。非同期式論理回路９００は、相互排他回路（ＭｕｔＥｘ）９１０、ハンドシェイク確認回路９２０、９２１、ＯＲ素子９３０、マルチプレクサ９４０、及び、対称型２入力２入力Ｃ素子９５０、９５１を有する。
【００９７】
非同期式論理回路９００には、２つの合流元（合流元０番、合流元１番）からの転送データと、２つの合流元からのデータ要求信号Ｒｉ０、Ｒｉ１と、合流先からのデータ応答信号Ａｏとが入力される。また、非同期式論理回路９００は、転送データ及びデータ要求信号Ｒｏと、２つの合流元に対するデータ応答信号Ａｉ０、Ａｉ１と、混雑検知モジュールに対する調停結果信号Ｇｒ０、Ｇｒ１とを出力する。
【００９８】
図１０は、相互排他回路の論理回路を示している。図９に示す相互排他回路９１０は、図１０に示す回路構成の論理回路（相互排他回路）１０００で構成できる。相互排他回路１０００は、それぞれ入力端子の一方にＲｉ０、Ｒｉ１が入力され、入力端子の他方が互いの出力端子に接続された２つのＮＡＮＤ素子と、２つのＮＡＮＤ素子の出力にそれぞれ接続されるインバータとを含む。相互排他回路９１０の入力（Ｒｉ０、Ｒｉ１）と、出力ＧＥ０、ＧＥ１との関係は、真理値表１０５０で示すようになる。すなわち、入力が（Ｒｉ０，Ｒｉ１）＝（０，０）、（Ｒｉ０，Ｒｉ１）＝（１，０）、又は、（Ｒｉ０，Ｒｉ１）＝（０，１）のとき、出力は一意に決まり、相互排他回路１０００の出力は、（ＧＥ０，ＧＥ１）＝（Ｒｉ０，Ｒｉ１）となる。相互排他回路１０００は、入力が（Ｒｉ０，Ｒｉ１）＝（１，１）のときは、前状態の出力を維持する。ただし、入力が（Ｒｉ０，Ｒｉ１）＝（０，０）から（１，１）に変化するときは、一時的に（Ｒｉ０，Ｒｉ１）＝（１，０）か（０，１）を経由した後に、前状態の出力に戻る。
【００９９】
上記動作は、相互排他回路１０００のＮＡＮＤ素子で構成される部分回路（調停部分回路）１０１０で実現できる。しかし、部分回路１０１０だけでは、ほぼ同時にＲｉ０とＲｉ１が、それぞれ０から１に変化すると、部分回路１０１０の出力が準安定状態と呼ばれる論理値０又は１に対応する電圧に振れていない状態となる。部分回路１０１０の出力側のインバータで構成された部分回路（準安定状態フィルタ回路）１０２０は、これを防ぐ働きをする。
【０１００】
図１１は、対称型２入力Ｃ素子の論理回路を示している。図９の対称型２入力Ｃ素子９５０、９５１は、図１１に示す論理回路（対称型２入力Ｃ素子）１１００で構成できる。対称型２入力Ｃ素子１１００は、３つのＡＮＤ素子と、１つのＯＲ素子とで構成され、入力端子の１つと出力端子とが接続された３入力多数決論理関数を実現する論理回路として構成される。対称型２入力Ｃ素子１１００の入力（Ａ，Ｂ）と、出力（Ｙ）との関係は、真理値表１１５０で示すようになる。すなわち、対称型２入力Ｃ素子１１００は、入力が（Ａ，Ｂ）＝（１，１）のときＹ＝１を出力し、入力が（Ａ，Ｂ）＝（０，０）のとき、Ｙ＝０を出力する。対称型２入力Ｃ素子１１００は、入力が（Ａ，Ｂ）＝（１，０）又は（Ａ，Ｂ)=（０，１）のときは、出力Ｙの値を維持する。
【０１０１】
図９に戻り、相互排他回路９１０には、２つの合流元からのデータ要求信号Ｒｉ０、Ｒｉ１を入力される。合流元０番からのデータ要求信号がＲｉ０＝１で、合流元１番からのデータ要求信号がＲｉ１＝０のとき、合流元０番からのデータ要求信号を通過させ、（ＧＥ０，ＧＥ１）＝（１，０）を出力する。また、相互排他回路９１０は、合流元０番からのデータ要求信号がＲｉ０＝０で、合流元１番からのデータ要求信号がＲｉ１＝１のときは、合流元１番からのデータ要求信号を通過させ、（ＧＥ０，ＧＥ１）＝（０，１）を出力する。相互排他回路９１０は、合流元０番からのデータ要求信号がＲｉ０＝１で、合流元１番からのデータ要求信号もＲｉ１＝１のとき、つまり、双方の合流元からデータ要求信号が入力されたときは、先着した合流元からのデータ要求信号を通過させる。
【０１０２】
ハンドシェイク確認回路９２０、９２１は、入力端子の一方が相互排他回路９１０通過したデータ要求信号に接続され、他方がインバータを介してデータ応答信号Ａｉ０、Ａｉ１に接続されるＡＮＤ素子を含む。ハンドシェイク確認回路９２０は、相互排他回路９１０の出力ＧＥ０と、対称型２入力Ｃ素子９５１の出力の反転信号との論理積をとる。ハンドシェイク確認回路９２１は、相互排他回路９１０の出力ＧＥ１と、対称型２入力Ｃ素子９５０の出力の反転信号との論理積をとる。ＯＲ素子９３０は、ハンドシェイク確認回路９２０の出力と、ハンドシェイク確認回路９２１の出力との論理和をとる。非同期式調停回路９００は、ハンドシェイク確認回路９２０、９２１の出力を、調停結果信号（Ｇｒ０、Ｇｒ１）として出力する。また、非同期式調停回路９００は、ＯＲ素子９３０の出力を、合流先へのデータ要求信号Ｒｏとして出力する。
【０１０３】
対称型２入力Ｃ素子９５０には、非同期式調停回路９００に入力される合流先からのデータ応答信号Ａｏと、ハンドシェイク確認回路９２０の出力Ｇｒ０とが入力される。対称型２入力Ｃ素子９５１には、データ応答信号Ａｏと、ハンドシェイク確認回路９２１の出力Ｇｒ１とが入力される。非同期式調停回路９００は、対称型２入力Ｃ素子９５０の出力を、合流元０番へのデータ応答信号Ａｉ０として出力する。非同期式調停回路９００は、ハンドシェイク確認回路９２０の出力がＧｒ０＝１で、かつ、合流先からのデータ応答信号がＡｏ＝１になると、合流元０番へ、データ応答信号Ａｉ０＝１を出力する。また、非同期式調停回路９００は、対称型２入力Ｃ素子９５１の出力を、合流元１番へのデータ応答信号Ａｉ１として出力する。非同期式調停回路９００は、ハンドシェイク確認回路９２１の出力がＧｒ１＝１で、かつ、合流先からのデータ応答信号がＡｏ＝１になると、合流元１番へ、データ応答信号Ａｉ１＝１を出力する。
【０１０４】
ハンドシェイク確認回路９２０、９２１は、非同期式調停回路９００が仲介中のハンドシェイクいがないときは、相互排他回路９１０を通過したデータ要求信号を通過させる。一方、仲介中のハンドシェイクがあるときは、相互排他回路９１０を通過したデータ要求信号を、仲介中のハンドシェイクの完了まで待機させる。ハンドシェイク確認回路９２０は、入力端子の一方が相互排他回路９１０を通過した分岐先０番からのデータ要求信号（ＧＥ０）に接続され、他方が、インバータを介して分岐先１番からのデータ応答信号Ａｉ１に接続されている。このため、非同期式調停回路９００が分岐先１番のハンドシェイクを仲介中で、分岐先１番のデータ応答信号がＡｉ１＝１のとき、つまり、データ応答信号がまだ取り下げられていないときは、データ応答信号の取り下げまで分岐先０番からのデータ要求信号を通過させない。ハンドシェイク確認回路９２１も、同様に、非同期式調停回路９００が分岐先０番のハンドシェイクを仲介中のときは、分岐先０番へのデータ応答信号の取り下げまで、相互排他回路９１０を通過した分岐先１番からのデータ要求信号を通過させない。
【０１０５】
対称型２入力Ｃ素子９５０、９５１は、ハンドシェイク確認回路９２０、９２１を通過したデータ要求信号と、データ要求信号に対するデータ応答信号とを待ち合わせる、待ち合わせモジュールに相当する。対称型２入力Ｃ素子９５０、９５１は、ハンドシェイク確認回路９２０、９２１を通過したデータ要求信号を入力した合流元に、データ応答信号を出力する。すなわち、対称型２入力Ｃ素子９５０は、合流元０番からのデータ要求信号が通過し、ハンドシェイク確認回路９２０の出力がＧｒ０＝１となった後、データ応答信号がＡｏ＝１になるまで待ち、Ａｏ＝１になると、合流元０番へデータ応答信号Ａｏ０＝１を出力する。また、対称型２入力Ｃ素子９５１は、合流元１番からのデータ要求信号が通過し、ハンドシェイク確認回路９２１の出力がＧｒ１＝１となった後、データ応答信号がＡｏ＝１になるまで待ち、Ａｏ＝１になると、合流元１番へデータ応答信号Ａｏ０＝１を出力する。
【０１０６】
マルチプレクサ９４０は、合流元０番からの転送データと、合流元１番からの転送データとを入力する。マルチプレクサ９４０の選択信号端子Ｓには、ハンドシェイク確認回路９２１の出力Ｇｒ１が入力される。マルチプレクサ９４０は、ハンドシェイク確認回路９２１の出力がＧｒ１＝１のとき、つまり、ハンドシェイク確認回路９２１が合流元１番からのデータ要求信号を通過させたとき、合流元１番からの転送データを出力する。また、マルチプレクサ９４０は、ハンドシェイク確認回路９２１の出力がＧｒ１＝０のとき、つまり、ハンドシェイク確認回路９２０が合流元０番からのデータ要求信号を通過させたとき、合流元０番からの転送データを出力する。
【０１０７】
初期状態では、非同期式調停回路９００に入力される信号は、データ要求信号Ｒｉ０＝０、Ｒｉ１＝０、データ応答信号Ａｏ＝０である。また、非同期式調停回路９００が出力する信号は、データ要求信号Ｒｏ＝０、データ応答信号Ａｉ０＝０、Ａｉ１＝０である。非同期式調停回路９００の内部信号は、ＧＥ０＝０、ＧＥ１＝０、Ｇｒ０＝０、Ｇｒ１＝０である。非同期式調停回路９００は、２つの合流元の何れからもデータ要求信号がない状態（Ｒｉ０＝０、Ｒｉ１＝１）の間は、少なくとも一方からデータ要求信号が入力されるまで待機する（図２のステップＡ１）。
【０１０８】
非同期式調停回路９００は、合流元の何れか一方か双方からデータ要求信号Ｒｉ０＝１又はＲｉ１＝１を入力されると、ステップＡ２に進み、データ要求信号を出力した合流元の判別を行う。相互排他回路９１０は、合流元０番からのデータ要求信号がＲｉ０＝１となったときは、合流元０番からのデータ要求信号を通過させ、内部信号（ＧＥ０，ＧＥ１）＝（１，０）を出力する。相互排他回路９１０は、合流元１番からのデータ要求信号がＲｉ１＝１となったときは、合流元１番からのデータ要求信号を通過させ、内部信号（ＧＥ０，ＧＥ１）＝（０，１）を出力する。相互排他回路９１０は、双方の合流元からのデータ要求信号入力された場合（Ｒｉ０＝１、Ｒｉ１＝１）場合は、先着したデータ要求信号を通過させ、（ＧＥ０，ＧＥ１）＝（１，０）又は（ＧＥ０，ＧＥ１）＝（０，１）を出力する。
【０１０９】
非同期式調停回路９００が合流元０番からデータ要求信号を入力した、或いは、合流元０番からのデータ要求信号が先着したとき、相互排他回路９１０が内部信号（ＧＥ０，ＧＥ１）＝（１，０）を出力する。これにより、ハンドシェイク確認回路９２０の出力はＧｒ０＝１に、ハンドシェイク確認回路９２１の出力はＧｒ１＝０になる。マルチプレクサ９４０は、選択信号Ｓとして入力するハンドシェイク確認回路９２１の出力がＧｒ１＝０となるので、合流元０番の転送データを選択する。非同期式調停回路９００は、データ出力端子に、データ要求信号Ｒｉ０＝１と共に入力された合流元０番からの転送データを出力する（ステップＡ３）。また、非同期式調停回路９００は、調停結果信号（Ｇｒ０，Ｇｒ１）＝（１，０）を出力する（ステップＡ４）。
【０１１０】
非同期式調停回路９００が合流元０番からデータ要求信号を入力した、或いは、合流元０番からのデータ要求信号が先着したとき、対称型２入力Ｃ素子９５０には、入力のうちの一方にＧｒ０＝１が入力される。しかし、もう一方の入力である、合流元からのデータ応答信号がＡｏ＝０であるので、対称型２入力Ｃ素子９５０は出力を変化させず、非同期式調停回路９００が合流元０番に出力するデータ応答信号はＡｉ０＝０のままである。合流元１番については、対称型２入力Ｃ素子９５１に入力される信号がＧｒ１＝０、Ａｏ＝０であるので、非同期式調停回路９００が合流元１番に出力するデータ応答信号もＡｉ１＝０のままである。
【０１１１】
一方、非同期式調停回路９００が合流元１番からのデータ要求信号を入力した、或いは、合流元１番からのデータ要求信号が先着したとき、相互排他回路９１０が内部信号（ＧＥ０，ＧＥ１）＝（０，１）を出力することで、ハンドシェイク確認回路９２０の出力はＧｒ０＝０に、ハンドシェイク確認回路９２１の出力はＧｒ１＝１になる。マルチプレクサ９４０は、選択信号Ｓとして入力するハンドシェイク確認回路９２１の出力がＧｒ１＝１となることで、合流元１番の転送データを選択する。非同期式調停回路９００は、データ出力端子に、データ要求信号Ｒｉ１＝１と共に入力された合流元１番からの転送データを出力する（ステップＡ５）。また、非同期式調停回路９００は、調停結果（Ｇｒ０，Ｇｒ１）＝（０，１）を出力する（ステップＡ６）。
【０１１２】
非同期式調停回路９００が合流元１番からデータ要求信号を入力した、或いは、合流元１番からのデータ要求信号が先着したとき、対称型２入力Ｃ素子９５１には、入力のうちの一方にＧｒ１＝１が入力される。しかし、もう一方の入力である、合流元からのデータ応答信号がＡｏ＝０であるので、対称型２入力Ｃ素子９５１は出力を変化させず、非同期式調停回路９００が合流元１番に出力するデータ応答信号はＡｉ１＝０のままである。合流元０番については、対称型２入力Ｃ素子９５０に入力される信号がＧｒ０＝０、Ａｏ＝０であるので、非同期式調停回路９００が合流元０番に出力するデータ応答信号もＡｉ０＝０のままである。
【０１１３】
調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）又は（Ｇｒ０，Ｇｒ１）＝（０，１）になると、ＯＲ素子９３０の出力はＲｏ＝１になり、非同期式調停回路９００は、データ要求信号Ｒｏ＝１を合流先に出力する（ステップＡ７）。非同期式調停回路９００は、ステップＡ８で、合流先からのデータ応答信号を待ち受ける。非同期式調停回路９００は、データ応答信号Ａｏ＝１が入力されると、調停結果信号（Ｇｒ０，Ｇｒ１）に従って、すなわち、何れの合流元からのデータ要求信号を通過させたかに従って、ステップＡ９から、ステップＡ１０又はＡ１１に進む。そして、非同期式調停回路９００は、データ要求信号を通過させた合流元にデータ応答信号を出力する。
【０１１４】
非同期式調停回路９００が合流元０番からの転送データを出力した場合、つまり、（Ｇｒ０，Ｇｒ１）＝（１，０）の場合、合流先からデータ応答信号Ａｏ＝１が入力されると、対称型２入力Ｃ素子９５０の双方の入力が１になる。これに伴い、対称型２入力Ｃ素子９５０の出力がＡｉ０＝１に変化し、非同期式調停回路９００は、合流元０番にデータ応答信号Ａｉ０＝１を出力する（ステップＡ１０）。このとき、対称型２入力Ｃ素子９５１については、一方の入力がＧｒ１＝０であるため、データ応答信号がＡｏ＝１になっても、非同期式調停回路９００が合流元１番へ出力するデータ応答信号はＡｏ１＝０のまま変化しない。
【０１１５】
非同期式調停回路９００が合流元０番にデータ応答信号Ａｉ０＝１を出力すると、合流元０番のレジスタは、データ要求信号を取り下げてＲｏ０＝０とする。合流元０番がデータ要求信号を取り下げることで、相互排他回路９１０が出力する内部信号は（ＧＥ０，ＧＥ１）＝（０，０）になり、ハンドシェイク確認回路９２０、９２１の出力がＧｒ０＝０、Ｇｒ１＝０となる。このとき、仮に、相互排他回路９１０が待機させていた合流元１番からのデータ要求信号を通過させ、内部信号が（ＧＥ０，ＧＥ１）＝（０，１）になったとしても、合流元０番へのデータ応答信号が取り下げられていないために、ハンドシェイク確認回路９２１の出力はＧｒ１＝０のまま変化しない。ＯＲ素子９３０の双方の入力が０になることで、非同期式調停回路９００は、データ要求信号を取り下げＲｏ＝０とする。合流先のレジスタは、データ要求信号が取り下げられると、データ応答信号を取り下げてＡｏ＝０とする。データ要求信号がＡｏ＝０となることで、対称型２入力Ｃ素子９５０の出力は０に変化し、非同期式調停回路９００は、合流元０番に出力するデータ応答信号を取り下げＡｉ０＝０とする。これで、非同期式調停回路９００は、初期状態に戻る。
【０１１６】
非同期式調停回路９００が合流元１番からの転送データを出力した場合、つまり、（Ｇｒ０，Ｇｒ１）＝（０，１）の場合、合流先からデータ応答信号Ａｏ＝１が入力されると、対称型２入力Ｃ素子９５１の双方の入力が１になる。これに伴い、対称型２入力Ｃ素子９５１の出力が１に変化し、非同期式調停回路９００は、合流元１番にデータ応答信号Ａｉ１＝１を出力する（ステップＡ１１）。このとき、対称型２入力Ｃ素子９５０については、一方の入力がＧｒ０＝０であるため、データ応答信号がＡｏ＝１になっても、非同期式調停回路９００が合流元０番へ出力するデータ応答信号はＡｏ０＝０のまま変化しない。
【０１１７】
非同期式調停回路９００が合流元１番にデータ応答信号Ａｉ１＝１を出力すると、合流元１番のレジスタは、データ要求信号を取り下げてＲｏ１＝０とする。合流元１番がデータ要求信号を取り下げることで、相互排他回路９１０が出力する内部信号は（ＧＥ０，ＧＥ１）＝（０，０）になり、ハンドシェイク確認回路９２０、９２１の出力がＧｒ０＝０、Ｇｒ１＝０となる。このとき、仮に、相互排他回路９１０が待機させていた合流元０番からのデータ要求信号を通過させ、内部信号が（ＧＥ０，ＧＥ１）＝（１，０）になったとしても、合流元１番へのデータ応答信号が取り下げられていないために、ハンドシェイク確認回路９２０の出力はＧｒ０＝０のまま変化しない。ＯＲ素子９３０の双方の入力が０になることで、非同期式調停回路９００は、データ要求信号を取り下げＲｏ＝０とする。合流先のレジスタは、データ要求信号が取り下げられると、データ応答信号を取り下げてＡｏ＝０とする。データ要求信号がＡｏ＝０となることで、対称型２入力Ｃ素子９５１の出力は０に変化し、非同期式調停回路９００は、合流元１番に出力するデータ応答信号を取り下げＡｉ１＝０とする。これで、非同期式調停回路９００は、初期状態に戻る。
【０１１８】
図１２は、混雑検知モジュールの回路構成例を示している。図６の混雑検知モジュール６３２、６４２は、図１２に示す混雑検知回路１２００で構成できる。混雑検知回路１２００は、インバータ１２１０、１２１１と、対称型２入力Ｃ素子１２２０、１２３０とを有する。混雑検知回路１２００は、非同期式調停モジュールが出力する転送データ及びデータ要求信号Ｒｉを、非同期式調停モジュールの合流先に出力する。また、混雑検知回路１２００は、非同期式調停モジュールが出力するデータ要求信号Ｒｉを分岐し、非同期式調停モジュールの合流元０番及び合流元１番に、混雑処理要求信号ＢＲｅｑ０、ＢＲｅｑ１として出力する。インバータ１２１０、１２１１は、非同期式調停モジュールが出力する調停結果信号Ｇｒ０，Ｇｒ１を反転して、それぞれ混雑情報ＢＰ０、ＢＰ１として出力する。
【０１１９】
対称型２入力Ｃ素子１２２０、１２３０は、合流先からのデータ応答信号Ａｏと、合流元からの混雑処理応答信号ＢＡｃｋ０、ＢＡｃｋ１とを待ち合わせるために用いる。対称型２入力Ｃ素子１２２０、１２３０の構成及び真理値表は、図１１に示すものと同じである。対称型２入力Ｃ素子１２２０は、合流元０番から混雑処理応答信号ＢＡｃｋ０＝１が入力され、合流元１番から混雑処理応答信号ＢＡｃｋ１＝１が入力されると１を出力する。対称型２入力Ｃ素子１２３０は、対称型２入力Ｃ素子１２２０が１を出力し、合流先からデータ応答信号Ａｏ＝１が入力されると、非同期式調停モジュールにデータ応答信号Ａ
ｉ＝１を出力する。
【０１２０】
混雑検知回路１２００の回路構成のうち、非同期式調停モジュールから入力したデータ要求信号を、非同期式調停モジュールの合流先に出力する部分、及び、データ要求信号を分岐して混雑処理要求信号とし、調停結果信号をインバータ１２１０、１２１１で反転して混雑情報信号として出力する部分は、要求出力モジュールに相当する。当該部分は、非同期式調停モジュールがデータ要求信号を出力すると、データ要求信号を合流先に出力すると共に、混雑情報と、混雑処理要求信号とを、合流元にある混雑回避経路計算モジュールに出力する。また、対称型２入力Ｃ素子１２２０、１２３０は、データ要求信号と混雑情報記憶要求信号の出力後、合流先からのデータ応答信号と、混雑回避経路計算モジュールからの混雑処理応答信号とを待ち合わせる。そして、データ応答信号と混雑情報記憶応答信号とを受け取ると、非同期式調停モジュールにデータ応答信号を出力する。すなわち、対称型２入力Ｃ素子１２２０、１２３０は、応答待ち合わせモジュールに相当する。
【０１２１】
初期状態では、混雑検知回路１２００に入力される信号は、データ要求信号Ｒｉ＝０、データ応答信号Ａｏ＝０、混雑処理応答信号ＢＡｃｋ０＝０、ＢＡｃｋ１＝０である。また、混雑検知回路１２００が出力する信号は、データ要求信号Ｒｏ＝０、データ応答信号Ａｉ＝０、混雑処理要求信号ＢＲｅｑ０＝０、ＢＲｅｑ１＝０である。調停結果信号Ｇｒ１、Ｇｒ２、及び、混雑情報信号ＢＰ０の状態は任意である。混雑検知回路１２００は、データ要求信号がＲｉ＝０のとき、非同期式調停モジュールから、データ要求信号Ｒｉ＝１が入力されるまで待機する（図３のステップＢ１）。
【０１２２】
混雑検知回路１２００は、データ要求信号がＲｉ＝１となると、ステップＢ２で、混雑情報信号ＢＰ０、ＢＰ１を生成する。混雑検知回路１２００は、非同期式調停モジュールから、調停結果信号がＧｒ０、Ｇｒ１を受け取ることで、非同期式調停モジュールが、何れの合流元からの転送データを出力しているかを判別する。非同期式調停モジュールが合流元０番からの転送データを出力するとき、合流元０番のデータは保留されることなく転送されるので、合流元０番の混雑情報は混雑なしとなり、合流元１番のデータは保留されるので、合流元１番は混雑ありとなる。逆に、非同期式調停モジュールが合流元１番からの転送データを出力するとき、合流元０番は混雑ありで、合流元１番は混雑なしとなる。
【０１２３】
混雑検知回路１２００は、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）のとき、つまり、非同期式調停モジュールが合流元０番から入力した転送データを出力するとき、Ｇｒ０をインバータ１２１０で反転した信号ＢＰ０＝１（混雑なし）を、合流元０番に対応した混雑情報信号とし、Ｇｒ１をインバータ１２１１で反転した信号ＢＰ１＝０（混雑あり）を、合流元１番に対応した混雑情報信号とする。また、混雑検知回路１２００は、非同期式調停モジュールが合流元１番から入力した転送データを出力するとき、つまり、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（０，１）のときは、Ｇｒ０をインバータ１２１０で反転した信号ＢＰ０＝０（混雑あり）を、合流元０番に対応した混雑情報信号とし、Ｇｒ１をインバータ１２１１で反転した信号ＢＰ１＝１（混雑なし）を、合流元先１番に対応した混雑情報信号とする。
【０１２４】
混雑検知回路１２００は、混雑情報信号ＢＰ０及びＢＰ１を、合流元０番及び合流元１番にそれぞれ出力する。また、混雑検知回路１２００は、データ要求信号Ｒｉ＝１を分岐して、合流元０番及び合流元１番に、それぞれ、混雑処理要求信号ＢＲｅｑ０＝１及びＢＲｅｑ１＝１を出力する（ステップＢ３）。混雑検知回路１２００は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ｒｏ＝１を出力する（ステップＢ４）。
【０１２５】
混雑検知回路１２００は、データ要求信号Ｒｉ＝１及び混雑処理要求信号ＢＲｅｑ０＝１、ＢＲｅｑ１＝１の出力後、データ応答信号Ａｏ＝１、混雑処理応答信号ＢＡｃｋ０＝１、ＢＡｃｋ１＝１が入力されるまで待機する（ステップＢ５）。混雑検知回路１２００は、対称型２入力Ｃ素子１２２０、１２３０を用いる。すなわち、非同期式調停モジュールの合流先からデータ応答信号Ａｏ＝１が入力され、かつ、合流元０番及び合流元１番から混雑処理応答信号ＢＡｃｋ０＝１、ＢＡｃｋ１＝１が入力されると、対称型２入力Ｃ素子１２３０から、データ応答信号Ａｉ＝１を出力する（ステップＢ６）。
【０１２６】
混雑検知回路１２００が、非同期式調停モジュールにデータ応答信号Ａｉ＝１を出力すると、非同期式調停モジュールから入力されるデータ要求信号が取り下げられ、Ｒｉ＝０となる。混雑検知回路１２００は、データ要求信号がＲｉ＝０となることで、合流元０番及び合流元１番に出力する混雑処理要求信号を取り下げて、ＢＲｅｑ０＝０、ＢＲｅｑ１＝０とする。また、混雑検知回路１２００は、対称型２入力Ｃ素子１２２０、１２３０を用いて、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝０と、合流元０番及び合流元１番からの混雑処理応答信号ＢＡｃｋ＝０、ＢＡｃｋ１＝０とを待ち合わせ、非同期式調停モジュールにデータ応答信号Ａｉ＝０を出力する。これで、混雑検知回路１２００は、初期状態に戻る。
【０１２７】
図１３は、混雑回避経路計算モジュールの回路構成例を示している。図６の混雑回避経路計算モジュール６３１は、図１３に示す混雑回避経路計算回路１３００で構成できる。混雑回避経路計算モジュール１３００は、ハンドシェイク調停回路１３１０、マルチプレクサ１３２０、１３２１、ハンドシェイク部分調停回路１３３０、混雑情報記憶ラッチ１３４０、及び、経路計算回路１３５０を有する。
【０１２８】
ハンドシェイク調停回路１３１０は、２つの分岐先からの混雑情報信号及び混雑処理要求信号の調停を行う回路である。ハンドシェイク調停回路１３１０は、分岐先間混雑情報記憶要求調停モジュールに相当する。ハンドシェイク調停回路１３１０は、非同期式分岐モジュールの分岐先から入力される混雑処理要求信号を合流し、調停を行うことで２つの分岐先からの混雑処理要求信号のうちの１つを選択する。そして、ハンドシェイク調停回路１３１０は、ハンドシェイク部分調停回路１３３０と混雑検知モジュールとの間で、選択した混雑情報記憶要求信号に起因するハンドシェイクを仲介する。
【０１２９】
ハンドシェイク調停回路１３１０は、図９に示す非同期式調停回路９００の構成から、マルチプレクサ９４０を除いた部分回路で構成できる。すなわち、ハンドシェイク調停回路１３１０は、相互排他回路９１０、ハンドシェイク確認回路９２０、９２１、対称型２入力Ｃ素子９５０、９５１、及び、ＯＲ素子９３０に相当する回路を含む。
【０１３０】
ハンドシェイク調停回路１３１０の動作は、入出力する信号がデータ要求信号、データ応答信号から、混雑処理要求信号、混雑処理応答信号に代わる点を除いて、非同期式調停回路９００からマルチプレクサ９４０を除いた部分回路における動作と同じである。ハンドシェイク調停回路１３１０には、２つの分岐先からの混雑処理要求信号と、ハンドシェイク部分調停回路１３３０からの混雑処理応答信号ＢＡｃｋとが入力される。ハンドシェイク調停回路１３１０は、混雑処理要求信号Ｂｒｅｑと、混雑処理応答信号ＢＡｃｋ０、ＢＡｃｋ１と、調停結果信号Ｇｒ０、Ｇｒ１とを出力する。
【０１３１】
ハンドシェイク調停回路１３１０の相互排他回路（図９の相互排他回路９１０に相当）には、複数の分岐先からの混雑情報記憶要求信号（ＢＲｅｑ０、ＢＲｅｑ１）が入力される。そして、相互排他回路は、混雑情報記憶要求信号のうちの１つを通過させ、他方を、前記通過させた混雑情報記憶要求信号の取り下げまで待機させる。相互排他回路の回路構成は、図１０に示す構成と同様である。相互排他回路は、それぞれ入力端子の一方に混雑情報記憶要求信号が入力され、入力端子の他方が互いの出力端子に接続された２つのＡＮＤ素子と、２つのＡＮＤ素子の出力にそれぞれ接続されるインバータとを含む。
【０１３２】
ハンドシェイク調停回路１３１０のハンドシェイク確認回路（図９のハンドシェイク確認回路９２０、９２１に相当）は、ハンドシェイク調停回路１３１０が仲介中のハンドシェイクがないときは、相互排他回路を通過した混雑処理要求信号を通過させる。一方、仲介中のハンドシェイクがあるときは、相互排他回路を通過した混雑処理要求信号を仲介中のハンドシェイクの完了まで待機させる。ハンドシェイク確認回路は、分岐先のそれぞれに対応して配置される。ハンドシェイク確認回路それぞれが、入力端子の一方が相互排他回路を通過した混雑処理要求信号に接続され、他方がインバータを介して自身が対応する分岐先とは異なる分岐先からの混雑処理応答信号（ＢＡｃｋ０、ＢＡｃｋ１）に接続されるＡＮＤ素子を含む。
【０１３３】
ハンドシェイク確認回路は、分岐先０番からの混雑処理要求信号を通過させたときは、調停結果信号（Ｇｒ０，Ｇｒ１）＝（１，０）を出力する。一方、ハンドシェイク確認回路は、分岐先１番からの混雑処理要求信号を通過させたときは、調停結果信号（Ｇｒ０、Ｇｒ１）＝（０，１）を出力する。ハンドシェイク確認回路の出力は、ＯＲ素子（図９のＯＲ素子９３０に相当）に接続されており、ＯＲ素子は、ハンドシェイク確認回路を通過した混雑処理要求信号（ＢＲｅｑ）を、ハンドシェイク部分調停回路１３３０に出力する。
【０１３４】
ハンドシェイク調停回路１３１０の対称型２入力Ｃ素子（対称型２入力Ｃ素子９５０、９５１に相当）は、入力端子のうちの一方がハンドシェイク確認回路のＡＮＤ素子の出力（Ｇｒ０又はＧｒ１）に接続される。そして、他方の入力端子が、ハンドシェイク調停回路１３００に入力されるデータ応答信号（ＢＡｃｋ）に接続される。対称型２入力Ｃ素子は、ハンドシェイク確認回路を通過した混雑処理要求信号と、その混雑処理要求信号に対する混雑処理応答信号（ＢＡｃｋ）とを待ち合わせる。そして、ハンドシェイク確認回路を通過した混雑処理要求信号を入力した分岐先に、混雑処理応答信号（ＢＡｃｋ０、ＢＡｃｋ１）を出力する。すなわち、対称型２入力Ｃ素子は、待ち合わせモジュールに相当する。
【０１３５】
図１４は、ハンドシェイク部分調停回路の回路構成例を示している。図１３のハンドシェイク部分調停回路１３３０は、図１４に示すハンドシェイク部分調停回路１４００で構成できる。ハンドシェイク部分調停回路１４００は、相互排他回路１４１０と、ハンドシェイク確認回路１４２０、１４２１とを有する。ハンドシェイク部分調停回路１４００は、図９に示す非同期式調停回路９００から、マルチプレクサ９４０と、ＯＲ素子９３０と、対称型２入力Ｃ素子９５０、９５１とを除いた部分回路と等価である。ハンドシェイク部分調停回路１４００には、要求信号Ｒｉ０、Ｒｉ１と、応答信号Ａｏ０、Ａｏ１とが入力される。また、ハンドシェイク部分調停回路１４００は、要求信号Ｒｏ０、Ｒｏ１と、応答信号Ａｉ０、Ａｉ１とを出力する。
【０１３６】
図１４の要求信号Ｒｉ０、Ｒｏ０は、それぞれ図１３のデータ要求信号Ｒｉ、Ｒｏに対応し、応答信号Ａｉ０、Ａｏ０は、それぞれ図１３のデータ応答信号Ａｉ、Ａｏに対応する。また、要求信号Ｒｉ１、Ｒｏ１は、それぞれ図１３の混雑処理要求信号ＢＲｅｑ、記憶制御信号ＢＬｔに対応し、応答信号Ａｉ１、Ａｏ１は、それぞれ図１３の混雑処理応答信号ＢＡｃｋ、記憶制御信号ＢＬｔに対応する。なお、図１３では、図１４の要求信号出力（Ｒｏ１）と応答信号入力（Ａｏ１）とを短絡し、要求信号Ｒｏ１を、そのまま混雑情報記憶ラッチ１３４０の記憶制御信号ＢＬｔとすると共に、応答信号Ａｏ１としている。これに代えて、ハンドシェイク部分調停回路１３３０と混雑情報記憶ラッチ１３４０との間に、記憶制御回路（ＬＣ）を設けてもよい。記憶制御回路（ＬＣ）は、図１４の要求信号Ｒｏ１を受けて混雑情報記憶ラッチ１３４０に記憶制御信号ＢＬｔを出力し、その後、応答信号Ａｏ１をハンドシェイク部分調停回路１３３０に出力する。
【０１３７】
図１３のハンドシェイク調停回路１３１０は、２つの分岐先からの混雑処理要求信号を１つに合流させる際のハンドシェイクの調停を行う。これに対し、ハンドシェイク部分調停回路１３３０（図１４のハンドシェイク部分調停回路１４００）は、データ要求信号と混雑処理要求信号とを合流させることなく、並行させたままハンドシェイクの調停を行う。ハンドシェイク部分調停回路１４００は、データ混雑情報間調停モジュールに相当し、転送データと共に入力される非同期式分岐モジュールに対するデータ要求信号と、混雑処理要求信号との調停を行う。その結果により、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させる。
【０１３８】
ハンドシェイク部分調停回路１４００は、データ要求信号と混雑処理要求信号とのうちの何れか一方がある間は、他方の要求を保留して、一方の要求のハンドシェイクが完了すると、保留していた要求を出力するという動作を行う。ハンドシェイク部分調停回路１４００は、混雑処理要求信号を受けて行う混雑情報を記憶する処理が完了するまでの間にデータ要求信号が入力されたときは、混雑情報の記憶が完了するまで、非同期式分岐モジュールへのデータ要求信号の出力を待機させる。ハンドシェイク部分調停回路１４００は、混雑情報の記憶が完了すると、すなわち、混雑処理要求信号と混雑処理応答信号とのハンドシェイクが完了すると、待機させていたデータ要求信号を出力する。また、ハンドシェイク部分調停回路１４００は、非同期式分岐モジュールがデータ要求信号に応答して転送データの転送している間に混雑処理要求信号が入力されたときは、転送データについてのハンドシェイクが完了するまで、混雑処理要求信号を待機させる。
【０１３９】
相互排他回路１４１０は、データ要求信号（Ｒｉ０）と混雑処理要求信号（Ｒｉ１）とを入力し、入力信号のうちの一方を通過させ、他方を、通過させた信号の取り下げまで待機させる。相互排他回路１４１０は、図１０に示す構成の相互排他回路１０００で構成できる。相互排他回路１４１０は、混雑処理要求信号とデータ要求信号との双方が入力されたときは、先着した信号を通過させ、遅れて到着した方の信号を、先着した信号の取り下げまで待機させる。相互排他回路１４１０は、データ要求信号Ｒｉ０＝１が先着したときは、内部信号（ＧＥ０，ＧＥ１）＝（１，０）を出力し、混雑処理要求信号が先着したときは、内部信号（ＧＥ０,ＧＥ１）＝（０，１）を出力する。
【０１４０】
ハンドシェイク確認回路１４２０は、入力端子の一方が相互排他回路１４１０を通過したデータ要求信号（ＧＥ０）に接続され、他方がインバータを介して混雑処理応答信号（Ａｏ１）に接続されるＡＮＤ素子を含む。ハンドシェイク確認回路１４２１は、入力端子の一方が相互排他回路１４１０を通過した混雑処理要求信号（ＧＥ１）に接続され、他方がインバータを介してデータ応答信号（Ａｏ０）に接続されるＡＮＤ素子を含む。ハンドシェイク確認回路１４２０、１４２１は、ハンドシェイク部分調停回路１４００が仲介中のハンドシェイクがないときは、相互排他回路を通過した混雑処理要求信号又はデータ要求信号を通過させる。ハンドシェイク確認回路１４２０、１４２１は、仲介中のハンドシェイクがあるときは、相互排他回路１４１０を通過した混雑処理要求信号又はデータ要求信号を、仲介中のハンドシェイクの完了まで待機させる。
【０１４１】
図１３に戻り、混雑情報記憶ラッチ１３４０は、非同期式分岐モジュールの分岐先について混雑情報を記憶する混雑情報記憶メモリである。混雑情報記憶ラッチ１３４０は、２つの分岐先のそれぞれについて、混雑あり、混雑なしを示す情報を記憶する。混雑情報記憶ラッチ１３４０は、ハンドシェイク部分調停回路１３３０が混雑処理要求信号を通過させると、つまり、ハンドシェイク部分調停回路１３３０が出力する記憶制御信号がＢＬｔ＝１になると、記憶する混雑情報を更新する。
【０１４２】
マルチプレクサ１３２０、１３２１は、メモリ記憶制御モジュールを構成する。メモリ記憶制御モジュールは、ハンドシェイク部分調停回路１３３０が混雑処理要求信号を通過させると、分岐先から受け取った混雑情報を、混雑情報記憶ラッチ１３４０に記憶させる。メモリ記憶制御モジュールは、混雑情報記憶ラッチ１３４０における、ハンドシェイク調停回路１３１０を通過した混雑処理要求信号を出力した分岐先に対応する混雑情報を、当該分岐先から入力される混雑情報（ＢＰ０、ＢＰ１）で更新させる。そして、その他の分岐先に対応する混雑情報を、混雑情報記録ラッチ１３４０が記憶する混雑情報（ＢＬｏ０、ＢＬｏ１）に保持させるように動作する。
【０１４３】
マルチプレクサ１３２０は、分岐先０番に対応している。マルチプレクサ１３２０は、分岐先０番の混雑検知モジュールからの混雑情報信号ＢＰ０と、混雑情報記憶ラッチ１３４０が記憶している分岐先０番の混雑情報信号（ＢＬｏ０）との何れかを選択的に出力する。マルチプレクサ１３２１は、分岐先１番に対応している。マルチプレクサ１３２１は、分岐先１番の混雑検知モジュールからの混雑情報信号ＢＰ１と、混雑情報記憶ラッチ１３４０が記憶している分岐先１番の混雑情報信号ＢＬｏ１との何れかを選択的に出力する。
【０１４４】
マルチプレクサ１３２０、１３２１は、ハンドシェイク調停回路１３１０が出力する調停結果信号Ｇｒ０、Ｇｒ１に基づいて、２つの入力のうちの何れを出力するかを決定する。マルチプレクサ１３２０は、Ｇｒ０＝１のとき、つまり、ハンドシェイク調停回路１３１０が分岐先０番からの混雑処理要求信号をハンドシェイク部分調停回路１３３０に出力するとき、混雑情報記憶ラッチ１３４０に分岐先０番からの混雑情報信号を出力する。マルチプレクサ１３２０は、Ｇｒ０＝０のとき、混雑情報記憶ラッチ１３４０が記憶している分岐先０番の混雑情報信号を、混雑情報記憶ラッチ１３４０に出力する。マルチプレクサ１３２１は、Ｇｒ１＝１のとき、つまり、ハンドシェイク調停回路１３１０が分岐先１番からの混雑処理要求信号をハンドシェイク部分調停回路１３３０に出力するとき、混雑情報記憶ラッチ１３４０に分岐先１番からの混雑情報信号を出力する。マルチプレクサ１３２１は、Ｇｒ１＝０のとき、混雑情報記憶ラッチ１３４０が記憶している分岐先１番の混雑情報信号を、混雑情報記憶ラッチ１３４０に出力する。
【０１４５】
経路計算回路１３５０は、非同期式分岐モジュールが有する分岐先のうち、転送データの転送先のコアに到達可能な分岐先を、転送データの出力先として決定する。その際、経路計算回路１３５０は、転送先のコアに到達可能な分岐先が複数あるときは、混雑情報記憶ラッチ１３４０が記憶する混雑情報を参照して、混雑が生じていない分岐先を、転送データ出力先として、優先的に選ぶ。経路計算回路１３５０は、例えば、分岐先０番を転送データの出力先として決定したときは選択信号Ｓ０＝１、Ｓ１＝０を出力し、分岐先１番を転送データの出力先として決定したときは、選択信号Ｓ０＝０、Ｓ１＝１を出力する。非同期式分岐モジュールは、選択信号に従って、分岐先の何れかに転送データ及びデータ要求信号を出力する。
【０１４６】
初期状態では、混雑回避経路計算回路１３００に入力される信号は、データ要求信号Ｒｉ＝０、データ応答信号Ａｏ＝０、混雑処理要求信号ＢＲｅｑ０＝０、ＢＲｅｑ１＝０である。また、混雑回避経路計算回路１３００が出力する信号は、データ要求信号Ｒｏ＝０、データ応答信号Ａｉ＝０、混雑処理応答信号ＢＡｃｋ０＝０、ＢＡｃｋ１＝０である。混雑情報記憶ラッチ１３４０に入力される記憶制御信号はＢＬｔ＝０である。混雑情報記憶ラッチ１３４０は、混雑回避経路計算回路１３００が接続される非同期式分岐モジュールの分岐先０番及び分岐先１番に対して、それぞれ混雑なしを示す情報を記憶しているとする（ＢＬｏ０＝０、ＢＬｏ１＝０）。その他の信号は、任意である。混雑回避経路回路１３００は、初期状態で、データ要求信号がＲｉ＝１となるのを待ちつつ、分岐先からの混雑処理要求信号の少なくとも一方が１になるのを待つ（図４のステップＣ１、Ｃ２）。
【０１４７】
データ要求信号がＲｉ＝０のとき、分岐先０番からの混雑処理要求信号がＢＲｅｑ０＝１、又は、分岐先１番からの混雑処理要求信号がＢＲｅｑ１＝１になったとする。この場合、混雑回避経路計算モジュール１３００は、ステップＣ２からステップＣ３へ進む。ハンドシェイク調停回路１３１０は、ステップＣ３で、混雑処理要求信号を調停し、混雑処理要求信号ＢＲｅｑ０＝１か、ＢＲｅｑ１＝１の一方を選択する。ハンドシェイク調停回路１３１０は、双方の分岐先から混雑処理要求信号が入力されたとき、つまり、情報ＢＲｅｑ０＝１で、かつ、ＢＲｅｑ１＝１のときは、２つの分岐先のうち、ＢＲｅｑ＝１が先着した方の分岐先を選択する。
【０１４８】
ハンドシェイク調停回路１３１０は、混雑処理要求信号の調停結果に従って、調停結果信号（Ｇｒ０，Ｇｒ１）＝（１，０）又は（０，１）を出力する。調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）のとき、マルチプレクサ１３２０は、分岐先０番からの混雑情報信号ＢＰ０を選択し、マルチプレクサ１３２１は、混雑情報記憶ラッチ１３４０が記憶している混雑情報ＢＬｏ１を選択する。このとき、混雑情報記憶ラッチ１３４０への入力信号は、（ＢＬｉ０，ＢＬｉ１）＝（ＢＰ０，ＢＬｏ１）となる。また、調停結果信号が（ＧＲ０，Ｇｒ１）＝（０，１）のとき、マルチプレクサ１３２０は、混雑情報記憶ラッチ１３４０が記憶している混雑情報ＢＬｏ０を選択し、マルチプレクサ１３２１は、分岐先１番からの混雑情報信号ＢＰ１を選択する。このとき、混雑情報記憶ラッチ１３４０への入力信号は、（ＢＬｉ０，ＢＬｉ１）＝（ＢＬｏ０，ＢＰ１）となる。
【０１４９】
ハンドシェイク調停回路１３１０は、混雑処理要求信号がＢＲｅｑ０＝１又はＢＲｅｑ１＝１になると、ハンドシェイク部分調停回路１３３０に、混雑処理要求信号ＢＲｅｑ＝１を出力する。ハンドシェイク部分調停回路１３３０は、データ要求信号が未着でＲｉ＝０なので、混雑処理要求信号を通過させ、混雑情報記憶ラッチ１３４０に記憶制御信号ＢＬｔ＝１を出力する。混雑情報記憶ラッチ１３４０は、記憶制御信号がＢＬｔ＝１になることで、マルチプレクサ１３２０、１３２１が出力する混雑情報信号を記憶する（ステップＣ４）。
【０１５０】
混雑情報記録ラッチ１３４０は、ハンドシェイク調停回路１３１０で分岐先０番からの混雑処理要求信号が選択されていた場合、すなわち、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）の場合、分岐先０番に対応する混雑情報として、分岐先０番からの混雑情報信号ＢＰ０の値を記憶し、分岐先１番に対応する混雑情報として、混雑情報記憶ラッチが記憶している混雑情報ＢＬｏ１の値を記憶する。つまり、混雑情報記憶ラッチ１３４０は、分岐先１番に対応する混雑情報を分岐先０番からの混雑情報信号ＢＰ０の値に更新し、分岐先０番に対応する混雑情報は更新しない。
【０１５１】
混雑情報記録ラッチ１３４０は、ハンドシェイク調停回路１３１０で分岐先１番からの混雑処理要求信号が選択されていた場合、すなわち、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（０，１）の場合、分岐先１番に対応する混雑情報として、分岐先１番からの混雑情報信号ＢＰ１の値を記憶し、分岐先０番に対応する混雑情報として、混雑情報記憶ラッチ１３４０が記憶している混雑情報ＢＬｏ０の値を記憶する。つまり、混雑情報記憶ラッチ１３４０は、分岐先０番に対応する混雑情報は更新せずに、分岐先１番に対応する混雑情報を分岐先１番からの混雑情報信号ＢＰ１の値に更新する。
【０１５２】
ハンドシェイク部分調停回路１３３０は、記憶制御信号ＢＬｔを応答信号Ａｏ１（図１４）として入力しており、記憶制御信号がＢＬｔ＝１なることで、ハンドシェイク調停回路１３１０に、混雑処理応答信号ＢＡｃｋ＝１を出力する。ハンドシェイク調停回路１３１０は、ステップＣ３で選択した分岐先に対し、混雑処理応答信号を出力する（ステップＣ５）。ハンドシェイク調停回路１３１０は、ステップＣ３で分岐先０番からの混雑処理要求信号ＢＲｅｑ０＝１を選択したときは、分岐先０番に対して、混雑処理応答信号ＢＡｃｋ０＝１を出力する。また、ハンドシェイク調停回路１３１０は、ステップＣ３で分岐先１番からの混雑処理要求信号ＢＲｅｑ１＝１を選択したときは、分岐先１番に対して、混雑処理応答信号ＢＡｃｋ１＝１を出力する。
【０１５３】
混雑回避経路計算回路１３００が、ステップＣ５で混雑処理応答信号ＢＡｃｋ０＝１又はＢＡｃｋ１＝１を出力すると、混雑処理応答信号を受け取った混雑検知モジュールは、混雑処理要求信号とデータ応答信号とを待ち合わせた上で、混雑処理要求信号を取り下げる。混雑処理要求信号が取り下げられ、混雑回避経路計算回路１３００に入力される混雑処理要求信号がＢＲｅｑ０＝０又はＢＲｅｑ０＝０になると、ハンドシェイク調停回路１３１０は、調停結果信号（Ｇｒ０，Ｇｒ１）＝（０，０）を出力する。またそれと共に、ハンドシェイク調停回路１３１０は、混雑情報記憶ラッチ１３４０への要求信号を取り下げてＢＲｅｑ＝０を出力する。
【０１５４】
ハンドシェイク部分調停回路１３３０は、混雑処理要求信号がＢＲｅｑ＝０になると、混雑情報記憶ラッチ１３４０へ出力する記憶制御信号を取り下げてＢＬｔ＝０とする。また、ハンドシェイク部分調停回路１３３０は、記憶制御信号の取り下げと同時に、ハンドシェイク調停回路１３１０に出力する混雑処理応答信号を取り下げてＢＡｃｋ＝０とする。ハンドシェイク調停回路１３１０は、ハンドシェイク部分調停回路１３３０が混雑処理応答信号をＢＡｃｋ＝０に取り下げると、分岐先０番又は分岐先１番に出力する混雑処理応答信号をＢＡｃｋ０＝０又はＢＡｃｋ１＝０に取り下げる。これで、混雑回避経路計算回路１３００は、初期状態に戻る。
【０１５５】
混雑回避経路計算回路１３００は、ハンドシェイク部分調停回路１３３０にデータ要求信号Ｒｉ＝１が入力されると、ステップＣ２からステップＣ６へ進む。混雑回避経路計算回路１３００は、ステップＣ６で転送データの転送先を決定した上で、非同期式分岐モジュールに、転送データとデータ要求信号Ｒｏ＝１とを出力する処理を行う。ただし、混雑回避経路計算回路１３００は、データ要求信号がＲｉ＝１になっても、それに先行して、ハンドシェイク部分調停回路１３３０に混雑処理要求信号ＢＲｅｑ＝１が入力されている場合がある。この場合は、ハンドシェイク部分調停回路１３３０が混雑処理応答信号を取り下げまで、データ要求信号Ｒｏ＝１の出力を保留する。
【０１５６】
経路計算回路１３５０は、混雑情報記憶ラッチ１３４０が記憶する混雑情報と、データ入力端子に入力された転送データの目的地情報とから、非同期式分岐モジュールの分岐先のうちの何れかを、転送分岐先として決定する。経路計算回路１３５０は、まず、ステップＣ６で、目的地までの経路上にある分岐先を、選択可能分岐先として列挙する。経路計算回路１３５０は、例えば、分岐先ごとに、どのコアまで到達可能かを示す情報を記憶しており、その情報を参照して、目的地となるコアまで到達可能な分岐先を、選択可能分岐先として列挙する。次いで、経路計算回路１３５０は、ステップＣ７で、選択可能分岐先が１つであるか否かを判断する。経路計算回路１３５０は、選択可能分岐先が１つのときは、ステップＣ８に進み、その選択可能分岐先を転送分岐先として決定する。
【０１５７】
経路計算回路１３５０は、選択可能分岐先が複数あるとき、つまり、非同期式分岐先モジュールが持つ２つの分岐先の双方が選択可能分岐先であるときは、混雑情報記録ラッチ１３４０を参照して、混雑ありではない分岐先を、優先的に転送分岐先として選択する。経路計算回路１３５０は、選択可能分岐先について混雑の有無を調べ、ステップＣ９で、選択可能分岐先のうち、何れか一方が混雑ありで、他方が混雑なしを示しているか否かを判断する。経路計算回路１３５０は、何れか一方が混雑なしを示しているときは、ステップＣ１０へ進み、混雑なしを示す分岐先を、転送分岐先として決定する。経路計算回路１３５０は、選択可能分岐先の双方の混雑なしを示しているか、或いは、双方が混雑ありを示しているときは、ステップＣ９からステップＣ１１へ進み、選択可能分岐先のうちの任意の分岐先を、転送分岐先として決定する。
【０１５８】
経路計算回路１３５０は、ステップＣ８、Ｃ１０、又は、Ｃ１１で決定した転送分岐先が、非同期式分岐モジュールの分岐先０番のときは、ステップＣ１２からステップＣ１３へ進む。経路計算回路１３５０は、ステップＣ１３で選択信号（Ｓ０，Ｓ１）＝（１，０）を非同期式分岐モジュールに出力する。このとき、混雑回避経路計算回路１３００は、選択信号と共に、データ入力端子に入力された転送データと、ハンドシェイク部分調停回路１３３０を通過したデータ転送要求Ｒｏ＝１とを、非同期式分岐モジュールに出力する。
【０１５９】
経路計算回路１３５０は、転送分岐先が、非同期式分岐モジュールの分岐先１番のときは、ステップＣ１２からステップＣ１４へ進み、選択信号（Ｓ０，Ｓ１）＝（０，１）を非同期式分岐モジュールに出力する。このとき、混雑回避経路計算回路１３００は、選択信号と共に、データ入力端子に入力された転送データと、ハンドシェイク部分調停回路１３３０を通過したデータ転送要求Ｒｏ＝１とを、非同期式分岐モジュールに出力する。
【０１６０】
混雑回避経路計算回路１３００は、ステップＣ１５で、非同期式分岐モジュールから、データ要求信号Ｒｏ＝１に対するデータ応答信号Ａｏ＝１が入力されるのまで待機する。ハンドシェイク部分調停回路１３３０は、データ応答信号Ａｏ＝１が入力されると、ステップＣ１６で、データ応答信号Ａｉ＝１を出力する。ハンドシェイク部分調停回路１３３０は、出力したデータ応答信号Ａｉ＝１に対して、データ要求信号が取り下げられＲｉ＝０となると、出力するデータ要求信号を取り下げてＲｏ＝０とする。その後、ハンドシェイク部分調停回路１３３０は、データ要求信号の取り下げＲｏ＝０に対して、入力するデータ応答信号がＡｏ＝０に取り下げられると、出力するデータ応答信号を取り下げてＡｉ＝０とする。これで、混雑回避経路計算回路１３００は、初期状態に戻る。
【０１６１】
図６に戻り、非同期式コア間接続回路６００が、マスタＢ６０３からスレーブＢ６０４へ対して、データ６８１〜６８３を含むデータ列を転送している場合を考える。データ列は、データ６８１に対して先行するデータと、データ６８３に対して後続するデータとを含むとする。また、非同期式コア間接続回路６００では、マスタＢ６０３からスレーブ６０４へ、非同期式調停回路６１２を占有してデータ転送を行っている状態であるとする。
【０１６２】
非同期式調停回路６１２に接続される混雑検知回路６３２は、データ転送中のマスタＢ６０３へ、混雑処理要求信号と、混雑なしを示す混雑情報信号とを出力している。また、混雑感知回路６３２は、データ転送を待機させられることになる非同期式分岐回路６１１に接続される混雑回避経路計算回路６３１へは、混雑処理要求信号と、混雑ありを示す混雑情報信号とを出力している。混雑回避経路計算回路６３１は、対応する非同期式分岐回路６１１の分岐先の一方である非同期式調停回路６１２に接続される混雑検知回路６３２から、混雑ありを示す混雑情報信号を受け取る。そのとき、混雑回避経路計算回路６３１は、非同期式調停回路６１２方向の分岐先について、混雑ありを示す混雑情報を記憶している。
【０１６３】
非同期式分岐回路６１１の分岐先のもう一方である非同期式調停回路６２２は、データ転送を行っていないものとする。このとき、非同期式調停回路６２２に接続された混雑検知回路６４２は、混雑回避経路計算回路６３１に対して、混雑処理要求信号を出力していない。混雑回避経路計算回路６３１は、非同期式調停回路６４２方向の分岐先については、混雑なしを示す混雑情報を記憶している。混雑回避経路計算回路６３１は、非同期式調停回路６４２方向の分岐先について、混雑検知回路６４２から混雑処理要求信号と混雑ありを示す混雑情報とが入力されるまで、混雑なしを示す混雑情報を記憶し続ける。
【０１６４】
混雑回避経路計算回路６３１に、マスタＡ６０１から、スレーブＡ６０２を目的地とするデータ列（データ６９１〜６９４）が到達したとする。混雑回避経路計算回路６３１は、混雑情報に対する処理を行っていない状態で、転送データの転送分岐先を決定する。図６では、非同期式分岐回路６１１が有する２つの分岐先、すなわち、非同期式調停回路６１２と非同期式調停回路６２２の何れへ転送データを出力しても、転送データは、その目的地であるスレーブＡ６０２へ到達可能である。
【０１６５】
混雑回避経路計算回路６３１は、非同期式調停回路６１２方向の分岐先の混雑情報と、非同期式調停回路６２２方向の分岐先の混雑情報とを調べる。混雑回避経路計算回路６３１は、非同期式調停回路６１２方向の分岐先の混雑情報が混雑ありを示し、非同期式調停回路６２２方向への分岐先の混雑情報が混雑なしを示すので、非同期式調停回路６２２方向の分岐先を、転送分岐先として決定する。混雑回避経路計算回路６３１は、非同期式分岐回路６１１に対し、非同期式調停回路６２２方向の分岐先を選択する旨の選択信号を出力する。非同期式分岐回路６１１は、選択信号に従って、データ６９１〜６９４を、非同期式分岐回路６２２に向けて順次出力する。非同期式コア間接続回路６００は、混雑を検知して、その混雑を回避する経路設定が可能となるという効果がある。
【０１６６】
ここで、データ６９１〜６９４の転送の間に、データ６８１〜６８３、及び、その先行データと後続データとの転送が継続されていたとすると、混雑回避経路計算回路６３１は、混雑検知回路６３２から、断続的に混雑情報信号と混雑処理要求信号とが入力されることになる。ここで、混雑回避経路計算回路６３１は、ハンドシェイク部分調停回路１３３０（図１３）を含む構成となっている。ハンドシェイク部分調停回路１３３０は、転送データのハンドシェイク完了まで混雑処理要求信号を保留して待機させることで、混雑回路経路計算回路６３１は、データ６９１〜６９４のそれぞれの転送の際に、混雑情報記憶ラッチ１３４０を更新しない。従って、非同期式コア間接続回路６００は、非同期式分岐回路６３１に直接接続されているパイプライン・ラッチでデータ６９１〜６９４を記憶するタイミングでの不正なラッチ入力のデータ変化に起因するタイミング違反を防止する効果がある。
【０１６７】
非同期式コア間接続回路６００の入出力は、同一半導体回路、又は、異なる半導体回路上に実装された任意の論理回路に接続することが可能である。非同期式コア間接続回路６００は、接続の際に、接続対象の論理回路のクロック同期の有無、或いは、クロック同期している場合にはクロック周波数や位相の考慮が不必要であるという効果がある。
【０１６８】
続いて、本発明の第２実施形態について説明する。第１実施形態及び第１実施例で用いたデータ転送方式は、転送データのそれぞれに目的地情報を含めている。以下、このようなデータ転送方式を、第１のデータ転送方式と呼ぶ。第１のデータ転送方式は、転送データのそれぞれが目的情報を含んでいることから、データ転送経路の帯域幅の使用効率が低い。これに対し、送信側で、同一目的地へのデータに目的地情報を付加して生成したデータを分割し、分割で得られる一連の単位データ列のうちの先頭に目的地情報を含め、単位データ列の全ての分割データを同一の経路で転送する方式がある。帯域幅の高い使用効率のためには、この方式が好ましい。以下、このようなデータ転送方式を第２のデータ転送方式と呼ぶ。
【０１６９】
送受信の処理装置の簡潔性の観点からも、第２のデータ転送方式が好ましい。すなわち、同一目的地へ大規模なデータを転送する場合を考えると、第１のデータ転送方式では、転送データをデータ転送経路幅に合わせて分割し、全ての分割データに対して目的情報を付加して転送することになる。第１のデータ転送方式では、分割データが異なる経路で転送される可能性があるため、送信処理装置で各分割データに順序情報を付加し、受信処理装置で到着した分割データを一時記憶し、その後、順序情報に従って分割データを並び替える機構が必要になる。一方、第２のデータ転送方式では、同一経路で単にデータ列の全ての分割データが転送されるため、順序情報を分割データに含める必要がなく、また、受信側で並べ替えを行う必要もない。このように、送受信の処理装置の関係性の観点からも、第２のデータ転送方式が好ましい。
【０１７０】
ところが、第１実施例の非同期式コア間接続回路（図６）は、第１のデータ転送方式で転送されたデータに対して正しく機能するものの、第２のデータ転送方式を実現することができない。その理由の１つは、図９の非同期式調停回路９００が、データ列中の分割データの転送のたびに調停結果を変化させる可能性があるからである。第１実施例の非同期式論理回路が第２のデータ転送方式を実現できないもう１つの理由は、第２分割データ以降の転送分岐先を正しく選択できないというところにある。
【０１７１】
まず、非同期式調停回路９００が、データ列中の分割データの転送のたびに調停結果を変化させる可能性があることについて説明する。第１実施例の非同期式論理回路で、第２のデータ転送方式を用いてデータ転送を行う場合を考える。非同期式調停回路９００が初期状態にあるとき、合流元０番と合流元１番とから、それぞれデータ列とデータ要求信号とが到着し、最初に合流元０番からの先頭分割データが合流先に転送されるとする。
【０１７２】
上記の場合、合流元０番からの先頭分割データの転送のためのハンドシェイクにおいて、先頭分割データが合流先へ出力された後に、合流元０番側から出力される先頭分割データのデータ要求が取り下げられる。このとき、相互排他回路９１０には、合流元１番からの先頭分割データに対するデータ要求が入力されているため、相互排他回路９１０は、出力を（ＧＥ０，ＧＥ１）＝（０，１）に変化させる。合流元１番からのデータ要求が相互排他回路９１０を通過することで、非同期式調停回路９００は、合流元１番からの先頭分割データ転送のハンドシェイクを開始する準備に入る。ハンドシェイク確認回路９２１は、合流元０番からの先頭分割データ転送のハンドシェイクの完了が確認するまで、合流元１番からの先頭分割データ転送のハンドシェイクを待機させる。
【０１７３】
ハンドシェイク確認回路９２１は、合流元０番からの先頭分割データ転送のハンドシェイクの完了を確認すると、直ちに、合流元１番からの先頭分割データ転送のハンドシェイクを再開させる。従って、その後に、合流元０番から第２分割データ転送のデータ要求信号が到着しても、合流元０番からの第２分割データ転送のハンドシェイクは、合流元１番からの先頭分割データ転送のハンドシェイクが完了するまで待機させられることになる。このように、非同期式調停回路９００を用いる第１実施例の非同期式論理回路は、第２のデータ転送方式を実現できない。
【０１７４】
次いで、第２分割データ以降の転送分岐先を正しく選択できないことについて説明する。第１実施例で用いた非同期式論理回路（図１３）の経路計算回路１３５０は、混雑情報記憶ラッチ１３４０に記憶されている混雑情報と、転送データに含まれる目的地情報とから、非同期式分岐モジュールの転送分岐先を選択する。しかし、第２のデータ転送方式では、目的地情報が単位データ列の先頭分割データ以外に含まれてないため、経路計算回路１３５０は、第２分割データ以降は、目的地に到達可能な転送分岐先を選択することができない。そこで、本実施形態は、第２のデータ転送方式でデータ転送を行うことができる非同期式論理回路を提供する。
【０１７５】
本実施形態の非同期式論理回路の構成は、図１に示す第１実施形態の非同期式論理回路の構成と同様である。ただし、非同期式調停モジュール１０１及び混雑回避経路計算モジュール１１２の動作が、第１実施形態の非同期式論理回路における非同期式調停モジュール１０１及び混雑回避経路計算モジュール１１２の動作とそれぞれ異なる。その他の点は、第１実施形態と同様である。
【０１７６】
本実施形態では、転送データ信号線に平行して、データ列先頭信号線と、データ列終端信号線とを設ける。データ列先頭信号線には、転送データ信号線にデータ列の先頭の分割データが転送されているか否かを示す先頭信号が出力される。つまり、データ列先頭信号線には、転送データ信号線に分割されたデータ列の先頭の分割データが転送されるとき、転送中の分割データがデータ列の先頭である旨を示す先頭信号が出力される。一方、転送データ信号線にデータ列の先頭以外の分割データが転送されるとき、データ列先頭信号線には、転送中の分割データがデータ列の先頭以外である旨を示す先頭信号が出力される。
【０１７７】
データ列終端信号線には、転送データ信号にデータ列の終端の分割データが転送されているか否かを示す終端信号が出力される。つまり、データ列終端信号線には、転送データ信号線に分割されたデータ列の終端の分割データが転送されるとき、転送中の分割データがデータ列の終端である旨を示す終端信号が出力される。一方、転送データ信号線にデータ列の終端以外の分割データが出力されるとき、データ列終端信号線には、転送中の分割データがデータ列の終端以外である旨を示す終端信号が出力される。
【０１７８】
本実施形態における非同期式調停モジュール１０１は、データ列の転送中に調停結果を変動しない動作を行い、単位データ列を構成する分割データを分断することなく連続的に出力する。このような動作を行う非同期式調停モジュールは、例えば、特願２００８‐２４６１８７（調停回路、該調停回路に用いられる調停方法、該調停回路が設けられている半導体回路及びデジタルシステム）に記載されている。
【０１７９】
非同期式調停モジュール１０１は、単位データ列の先頭分割データの出力から終端分割データの出力まで、非同期式調停モジュール１０１が何れの合流元からの転送データを出力しているかを示す調停結果を記憶する調停結果保存部を有する。非同期式調停モジュール１０１は、調停結果保存部が一の合流元からの転送データを出力している旨を記憶するとき、他の合流元からの転送データの出力を待機する。
【０１８０】
また、本実施形態における混雑回避経路計算モジュール１１２は、先頭分割データに対して分岐先の選択を行い、それに後続する分割データは、直前の分割データの転送で選択した分岐先を選択するという動作を行う。すなわち、混雑回避経路計算モジュール１１２は、転送データが単位データ列の先頭分割データであるとき、先頭分割データに含まれる目的地情報に基づいて非同期式分岐モジュール１０２の転送分岐先を決定する。混雑回避経路計算モジュール１１２は、転送データが単位データ列の先頭以外の非先頭分割データのときは、先頭分割データに対して決定した転送分岐先を、非同期式分岐モジュール１０２の転送分岐先として決定する。
【０１８１】
図１９は、データ列の転送中に調停結果を変更しない動作を行う非同期式調停モジュール１０１の動作手順を示している。はじめ、非同期式調停モジュール１０１は、初期状態にある。非同期式調停モジュール１０１は、データ要求入力端子に、データ要求入力信号が入力されたか否かを判断する（ステップＥ１）。非同期式調停モジュール１０１は、データ要求入力信号が入力されていないときは、繰り返しステップＥ１を実行し、データ要求入力信号が入力されるまで待機する。
【０１８２】
非同期式調停モジュール１０１は、データ要求信号が入力されると、データ要求信号が入力されたデータ要求入力端子が、合流元０番側のデータ要求入力端子であるか否かを判断する（ステップＥ２）。ステップＥ２の判断に基づき、非同期式調停モジュール１０１は、調停結果信号を、調停結果出力端子から、混雑検知モジュール１１１に出力する。ここで、データ要求信号が入力されたデータ要求入力端子が合流元０番側のデータ要求入力端子であると判断したときは、合流元０番からの転送データがデータ出力端子から出力中であることを示す調停結果信号を出力する（ステップＥ３）。
【０１８３】
非同期式調停モジュール１０１は、分割データと共に、データ列終端信号線に出力される終端信号から、入力された分割データが、データ列の終端であるか否かを判断する（ステップＥ４）。非同期式調停モジュール１０１は、入力された分割データがデータ列の終端でないと判断すると、ステップＥ３での調停結果、すなわち、合流元０番のデータ転送を行うという旨の調停結果を記憶する（ステップＥ５）。また、非同期式調停モジュール１０１は、合流元０番のデータ入力端子から入力する転送データを、データ出力端子から合流先に出力する（ステップＥ６）。非同期式調停モジュール１０１は、ステップＥ４で、入力された分割データがデータ列の終端であると判断したときは、ステップＥ４からステップＥ６へ進み、転送データを出力する。
【０１８４】
非同期式調停モジュール１０１は、前述のとおりステップＥ２の判断に基づき、調停結果信号を、調停結果出力端子から、混雑検知モジュール１１１に出力する。ステップＥ２で、データ要求信号が入力されたデータ要求入力端子が合流元１番のデータ要求入力端子であると判断すると、合流元１番からの転送データがデータ出力端子から出力中であることを示す調停結果信号を出力する（ステップＥ７）。
【０１８５】
非同期式調停モジュール１０１は、分割データと共に、データ列終端信号線に出力される終端信号から、入力された分割データが、データ列の終端であるか否かを判断する（ステップＥ８）。非同期式調停モジュール１０１は、ステップＥ８で、入力された分割データがデータ列の終端でないと判断すると、ステップＥ７での調停結果を記憶する（ステップＥ９）。また、非同期式調停モジュール１０１は、合流元１番のデータ入力端子から入力する転送データを、データ出力端子から合流先に出力する（ステップＥ１０）。非同期式調停モジュール１０１は、ステップＥ８で、入力された分割データがデータ列の終端であると判断したときは、ステップＥ８からステップＥ１０へ進み、転送データを出力する。
【０１８６】
非同期式調停モジュール１０１は、合流元０番及び合流元１番の双方からデータ要求信号が入力されたときは、何れか一方を選択する。非同期式調停モジュール１０１は、２つのデータ要求信号のうち、例えば先着したデータ要求信号を選択する。非同期式調停モジュール１０１は、合流元０番からのデータ要求信号を選択したときは、ステップＥ２からステップＥ３へ進み、調停結果の出力と合流元０番からの転送データの出力とを行う。一方、非同期式調停モジュール１０１は、合流元１番からのデータ要求信号を選択したときは、ステップＥ２からステップＥ７へ進み、調停結果の出力と、合流元１番からの転送データの出力とを行う。非同期式調停モジュール１０１は、選択しなかった側のデータ要求信号については、選択した側のデータ列の全ての分割データの転送が完了するまで保留する。
【０１８７】
非同期式調停モジュール１０１は、ステップＥ３又はＥ７で調停結果を出力した後、データ要求出力端子から、混雑検知モジュール１１１にデータ要求信号を出力する（ステップＥ１１）。非同期式調停モジュール１０１は、データ要求信号の出力後、データ応答入力端子にデータ応答信号が入力されたか否かを判断する（ステップＥ１２）。非同期式調停モジュール１０１は、データ応答信号が入力されてないときは、ステップＥ１２を繰り返し行い、データ応答信号が入力されるまで待機する。
【０１８８】
非同期式調停モジュール１０１は、データ応答信号が入力されると、ステップＥ３又はＥ７で出力した調停結果信号が、合流元０番からの転送データがデータ出力端子から出力中であることを示しているか否かを判断する（ステップＥ１３）。非同期式調停モジュール１０１は、調停結果信号が、合流元０番からの転送データがデータ出力端子から出力中であることを示すときは、合流元０番に対応したデータ応答出力端子から、データ応答信号を出力する（ステップＥ１４）。
【０１８９】
非同期式調停モジュール１０１は、分割データと共に転送される終端信号に基づいて、転送した分割データがデータ列の終端であるか否かを判断する（ステップＥ１５）。非同期式調停モジュール１０１は、転送した分割データがデータ列の終端であるときは、ステップＥ５で記憶した、合流元０番からのデータを転送中であるという調停結果を解放する（ステップＥ１６）。非同期式調停モジュール１０１は、ステップＥ１５でデータ列の終端ではないと判断したとき、すなわち、転送した分割データが、データ列の先頭又は中間のデータであるときは、調停結果の解放は行わない。
【０１９０】
非同期式調停モジュール１０１は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、調停結果が記憶されているか否かを判断する（ステップＥ１７）。非同期式調停モジュール１０１は、ステップＥ１６で調停結果記憶が解放されているときは、ステップＥ１７で調停結果が記憶されていないと判断する。非同期式調停モジュール１０１は、ステップＥ１７で調停結果が記憶されていないと判断すると、ステップＥ１（初期状態）に戻る。
【０１９１】
非同期式調停モジュール１０１は、調停結果が記憶されていると判断すると、合流元０番のデータ要求入力端子に、データ要求入力信号が入力されたか否かを判断する（ステップＥ１８）。非同期式調停モジュール１０１は、合流元０番のデータ要求端子入力端子にデータ要求入力信号が入力されていないときは、繰り返しステップＥ１８を実行し、合流元０番からデータ要求入力信号が入力されるまで待機する。非同期式調停モジュール１０１は、ステップＥ１８で合流元０番からデータ要求入力信号が入力されたと判断すると、ステップＥ３に進み、調停結果の出力を行う。
【０１９２】
非同期式調停モジュール１０１は、ステップＥ１３で、調停結果信号が、合流元１番からの転送データがデータ出力端子から出力中であることを示すと判断したときは、合流元１番に対応したデータ応答出力端子から、データ応答信号を出力する（ステップＥ１９）。非同期式調停モジュール１０１は、分割データと共に転送される終端信号に基づいて、転送した分割データがデータ列の終端であるか否かを判断する（ステップＥ２０）。
【０１９３】
非同期式調停モジュール１０１は、ステップＥ２０で、転送した分割データがデータ列の終端であると判断すると、ステップＥ９で記憶した、合流元１番からのデータを転送中であるという調停結果を解放する（ステップＥ２１）。非同期式調停モジュール１０１は、ステップＥ２０でデータ列の終端ではないと判断したとき、すなわち、転送した分割データが、データ列の先頭又は中間のデータであるときは、調停結果の解放は行わない。
【０１９４】
非同期式調停モジュール１０１は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、調停結果が記憶されているか否かを判断する（ステップＥ２２）。非同期式調停モジュール１０１は、ステップＥ２１で調停結果記憶が解放されているときは、ステップＥ２２で調停結果が記憶されていないと判断する。非同期式調停モジュール１０１は、ステップＥ２２で調停結果が記憶されていないと判断すると、ステップＥ１（初期状態）に戻る。
【０１９５】
非同期式調停モジュール１０１は、ステップＥ２２で、調停結果が記憶されていると判断すると、合流元１番のデータ要求入力端子に、データ要求入力信号が入力されたか否かを判断する（ステップＥ２３）。非同期式調停モジュール１０１は、合流元１番のデータ要求端子入力端子にデータ要求入力信号が入力されていないときは、繰り返しステップＥ２３を実行し、合流元１番からデータ要求入力信号が入力されるまで待機する。非同期式調停モジュール１０１は、ステップＥ２３で合流元１番からデータ要求入力信号が入力されたと判断すると、ステップＥ７に進み、合流元１番からの転送データを、データ出力端子から合流先に出力する。
【０１９６】
非同期式調停モジュール１０１は、データ列の先頭分割データの転送開始で、図１９のステップＥ１、Ｅ２を経た後に、ステップＥ５又はＥ９で、調停結果を記憶する。非同期式調停モジュール１０１は、データ列の終端分割データ以外の分割データの転送中は、合流元０番からのデータ列転送であれば、ステップＥ３〜Ｅ６と、ステップＥ１１〜Ｅ１８を繰り返し実行して、同一データ列の転送を連続的に実行する。また、非同期式調停モジュール１０１は、合流元１番からのデータ列転送であれば、ステップＥ７〜Ｅ１３とステップＥ１９〜Ｅ２３を繰り返し実行して、同一データ列の転送を連続的に実行する。
【０１９７】
非同期式調停モジュール１０１は、転送データが終端分割データになると、データ列の終端分割データをステップＥ６又はＥ１０で出力し、ステップＥ１６又はステップＥ２１で調停結果を解放する。非同期式調停モジュール１０１は、合流元０番からのデータ列転送であれば、ステップＥ１６で調停結果を解放した後に、終端分割データの転送を完了させると、ステップＥ１７からステップＥ１の初期状態の戻り、次のデータ転送の準備に入る。また、非同期式調停モジュール１０１は、合流元１番からのデータ列転送であれば、ステップＥ２１で調停結果を解放した後に、終端分割データの転送を完了させると、ステップＥ２１からステップＥ１の初期状態に戻り、次のデータ転送の準備に入る。
【０１９８】
非同期式調停モジュール１０１は、先頭分割データの転送の際に調停結果を記憶し、調停結果が記憶されているときは、初期状態に戻らず、先頭分割データを受け取った合流元からのデータ要求信号を待って、その合流元からの分割データを転送する。このようにすることで、非同期式調停モジュール１０１は、例えば合流元０番からの先頭分割データを転送した後に、合流元１番からのデータ転送要求があったときでも、合流元０番から入力する分割データ列の転送を継続して行うことができる。つまり、非同期式調停モジュール１０１は、単位データ列を途中で分断することなく、データ列のデータ転送を合流させることができる。
【０１９９】
なお、転送中の分割データが終端か否かの判断（ステップＥ４、Ｅ８、Ｅ１５、Ｅ２０）と、その判断に基づいて行われる調停結果の記憶（ステップＥ５、Ｅ９）と、調停結果記憶の開放（ステップＥ１６、Ｅ２１）の実行順序は、図１９に示した実行順序には限定されない。これらのステップは、ステップＥ１の直前とステップＥ２の直前以外であれば、何れの順番で実行しても構わない。
【０２００】
図２０は、本実施形態で用いる混雑回避経路計算モジュール１１２の動作手順を示している。はじめ、混雑回避経路計算モジュール１１２は、初期状態にある。混雑回避経路計算モジュール１１２は、データ要求入力端子に、データ要求信号が入力されたか否かを判断する（ステップＦ１）。混雑回避経路計算モジュール１１２は、データ要求信号の入力がないときは、混雑処理要求入力端子に、１以上の混雑処理要求信号が入力されたか否かを判断する（ステップＦ２）。混雑回避経路計算モジュール１１２は、混雑処理要求信号が入力されていないときは、ステップＦ１に戻り、データ要求信号又は混雑処理要求信号が入力されるまで待機する。
【０２０１】
混雑回避経路計算モジュール１１２は、データ要求信号の入力がないときに、１以上の混雑処理要求入力端子に混雑処理要求信号が入力されると、そのうちの１つを選択する（ステップＦ３）。混雑回避経路計算モジュール１１２は、混雑情報記憶メモリに記憶している混雑情報のうち、混雑処理要求信号が入力された混雑処理要求入力端子に対応する分岐先の混雑情報を、当該混雑処理要求入力端子と同じ組の混雑情報入力端子に入力された混雑情報信号の値に更新する（ステップＦ４）。
【０２０２】
混雑回避経路計算モジュール１１２は、混雑情報の更新後、当該混雑処理要求入力端子と同じ組の混雑処理応答出力端子から、混雑処理応答信号を出力する（ステップＦ５）。その後、混雑回避経路計算モジュール１１２は、入力する混雑処理要求信号の取り下げ、及び、出力する混雑処理応答信号の取り下げを経て、ステップＦ１（初期状態）に戻る。
【０２０３】
混雑回避経路計算モジュール１１２は、ステップＦ１でデータ要求信号の入力があると判断すると、転送データがデータ列の先頭分割データであるか否かを判断する（ステップＦ６）。混雑回避経路計算モジュール１１２は、ステップＦ６で転送データが先頭分割データであると判断すると、データ入力端子に入力された転送データから目的地情報を抽出し、接続する非同期式分岐モジュール１０２の分岐先のそれぞれについて、目的地到達可能性の有無を判断する。混雑回避経路計算モジュール１１２は、目的地到達可能性がある分岐先を、選択可能分岐先として列挙する（ステップＦ７）。
【０２０４】
混雑回避経路計算モジュール１１２は、選択可能分岐先が１つであるか否かを判断する（ステップＦ８）。つまり、混雑回避経路計算モジュール１１２は、非同期式分岐モジュールの２つの分岐先のうち、一方のみが目的地まで到達可能であるか否かを判断する。混雑回避経路計算モジュール１１２は、選択可能分岐先が１つのときは、その分岐先を転送分岐先として選択する（ステップＦ９）。
【０２０５】
混雑回避経路計算モジュール１１２は、選択可能分岐先が１つでないときは、混雑情報を参照し、選択可能分岐先の混雑の有無を調べる。混雑回避経路計算モジュール１１２は、混雑なしの分岐先が１つであるか否かを判断する（ステップＦ１０）。つまり、混雑回避経路計算モジュール１１２は、２つの選択可能分岐先のうち、何れか一方が混雑ありで、他方が混雑なしであるか否かを判断する。混雑回避経路計算モジュール１１２は、混雑している分岐先が１つのときは、混雑していない方の分岐先（非混雑分岐先）を、転送分岐先として選択する（ステップＦ１１）。混雑回避経路計算モジュール１１２は、混雑している分岐先が１つでない、すなわち、２つの選択分岐先の双方が混雑あり又は混雑なしである場合は、所定の手法により一方の分岐先を転送分岐先として選択する（ステップＦ１２）。
【０２０６】
混雑回避経路計算モジュール１１２は、ステップＦ９、Ｆ１１、又は、Ｆ１２で転送先を選択した後、転送分岐先として選択した分岐先が分岐先０番であるか否かを判断する（ステップＦ１３）。混雑回避経路計算モジュール１１２は、ステップＦ１３で転送分岐先が分岐先０番であると判断すると、非同期式分岐モジュール１０２に、分岐先０番を示す選択信号を送る。また、混雑回避経路計算モジュール１１２は、データ入力端子に入力される転送データと、データ要求入力端子に入力されるデータ要求信号とを、それぞれデータ出力端子及びデータ要求出力端子から、非同期式分岐モジュール１０２に出力する（ステップＦ１５）。
【０２０７】
混雑回避経路計算モジュール１１２は、ステップＦ１３で転送分岐先が分岐先０番ではないと判断すると、すなわち、転送分岐先が分岐先１番であると判断すると、非同期式分岐モジュール１０２に、分岐先１番を示す選択信号を送る。また、混雑回避経路計算モジュール１１２は、データ入力端子に入力される転送データと、データ要求入力端子に入力されるデータ要求信号とを、それぞれデータ出力端子及びデータ要求出力端子から、非同期式分岐モジュール１０２に出力する（ステップＦ１６）。
【０２０８】
混雑回避経路計算モジュール１１２は、ステップＦ１５又はＦ１６でデータ要求信号を出力した後、出力したデータ要求信号に対するデータ応答信号がデータ応答入力端子に入力されたか否かを判断する（ステップＦ１７）。混雑回避経路計算モジュール１１２は、データ応答信号が入力されていないときは、ステップＦ１７を繰り返し実行し、データ応答信号が入力されるまで待機する。混雑回避経路計算モジュール１１２は、データ応答入力端子にデータ応答信号が入力されると、データ応答出力端子から、データ応答信号を出力する（ステップＦ１８）。その後、混雑回避経路計算モジュール１１２は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＦ１（初期状態）に戻る。
【０２０９】
混雑回避経路計算モジュール１１２は、ステップＦ６で転送データが先頭分割データではないと判断すると、直前の転送データの転送分岐先として選択した分岐先が分岐先０番であるか否かを判断する（ステップＦ１４）。混雑回避経路計算モジュール１１２は、直前の転送データの転送分岐先が分岐先０番であると判断すると、ステップＦ１５に進み、非同期式分岐モジュール１０２に分岐先０番を示す選択信号を送ると共に、転送データとデータ要求信号とを、非同期式分岐モジュール１０２に出力する。混雑回避経路計算モジュール１１２は、直前の転送データの転送分岐先が転送先１番であると判断すると、ステップＦ１６に進み、非同期式分岐モジュール１０２に分岐先１番を示す選択信号を送ると共に、転送データとデータ要求信号とを、非同期式分岐モジュール１０２に出力する。
【０２１０】
非同期式分岐モジュール１０２の動作は、第１実施形態で説明した動作（図５）と同様である。すなわち、非同期式分岐モジュール１０２は、図５に示すフローチャートに従って、上記の動作を行う混雑回避経路計算モジュール１１２から受け取った選択信号に応じて、分岐先０番又は分岐先１番に、転送データとデータ要求信号と出力する。
【０２１１】
混雑回避経路計算モジュール１１２は、転送データが先頭分割データであるときは、第１実施形態で用いた混雑回避経路計算モジュールと同様な動作で、目的地情報に基づいて、転送分岐先の選択を行い、先頭分割データを転送する。また、混雑回避経路計算モジュール１１２は、転送データが先頭分割データ以外の分割データであるときは、先行する分割データで選択された転送分岐先へ、分割データを転送する。このような動作を行うことで、先頭分割データ以外に目的地情報が含まれない第２のデータ転送方式でも、単位データ列内の全ての分割データを同一の経路で転送することができる。
【０２１２】
続いて、第２実施例を説明する。本実施例の半導体回路に含まれる非同期式コア間接続回路における各回路の接続形態は、図６に示す非同期式コア間接続回路６００における各回路の接続形態と同様である。非同期式分岐モジュール６１１には、第１実施例と同様に、図７に示す回路構成の非同期式分岐回路７００を用いることができる。また、混雑検知モジュール６３２、６４２には、第１実施例と同様に、図１２に示す回路構成の混雑検知回路１２００を用いることができる。
【０２１３】
本実施例では、非同期式調停モジュール６１２、６１４、６２２に、図９に示す非同期式調停回路９００に代えて、データ列の転送中に調停結果を変動しない動作を行う非同期式調停回路を用いる。また、本実施例では、混雑回避経路計算モジュール６３１に、図１３に示す混雑回避経路計算回路１３００に代えて、先頭分割データに対して分岐先の選択を行い、それに後続する分割データは、直前の分割データの転送で選択した分岐先を選択するという動作を行う混雑回避経路計算回路を用いる。
【０２１４】
図２１は、第２実施例で用いる非同期式調停モジュールの回路構成例を示している。図６の非同期式調停モジュール６１２、６１４、６２２は、図２１に示す非同期式調停回路（データ列連続転送用の非同期式調停回路）２１００で構成できる。非同期式調停回路２１００は、相互排他回路（ＭｕｔＥｘ）２１１０、ハンドシェイク確認回路２１２０、２１２１、ＯＲ素子２１３０、２１７０、２１７１、マルチプレクサ２１４０、対称型２入力Ｃ素子２１５０、２１５１、及び、非対称型３入力Ｃ素子２１６０、２１６１を有する。相互排他回路２１１０には、図１０に示す構成の論理回路を用いることができる。また、対称型２入力Ｃ素子２１５０、２１５１には、図１１に示す構成の論理回路を用いることができる。
【０２１５】
非同期式調停回路２１００には、２つの合流元（合流元０番、合流元１番）からの転送データと、２つの合流元からのデータ要求信号Ｒｉ０、Ｒｉ１とが入力される。転送データは、転送データが先頭分割データであるか否かを示す先頭信号Ｈｉ、及び、転送データが終端分割データであるか否かを示す終端信号Ｅｉを含んでいる。また、非同期式調停回路２１００には、合流先からのデータ応答信号Ａｏが入力される。非同期式調停回路２１００は、先頭信号及び終端信号を含む転送データと、データ要求信号Ｒｏと、２つの合流元に対するデータ応答信号Ａｉ０、Ａｉ１と、混雑検知モジュールに対する調停結果信号Ｇｒ０、Ｇｒ１とを出力する。
【０２１６】
非対称型３入力Ｃ素子２１６０、２１６１は、調停結果保存部に相当する。図２２は、非対称型３入力Ｃ素子の論理回路を示している。図２１の非対称型３入力Ｃ素子２１６０、２１６１は、図２２に示す論理回路（非対称型３入力Ｃ素子）２２００で構成できる。非対称型３入力Ｃ素子２２００は、３つのＡＮＤ素子と、１つのＯＲ素子とで構成される。非対称型３入力Ｃ素子２２００を、記号２２０１で表すこととする。
【０２１７】
非対称型３入力Ｃ素子２２００の入力Ａ、Ｂ、Ｃと、出力Ｙとの関係は、真理値表２２５０で示すようになる。すなわち、非対称型３入力Ｃ素子２２００は、入力が（Ａ，Ｂ，Ｃ）＝（１，１，０）又は（１，１，１）のときＹ＝１を出力し、入力が（Ａ，Ｂ，Ｃ）＝（０，０，０）又は（１，０，０）のときＹ＝０を出力する。非対称型３入力Ｃ素子２２００は、入力（Ａ，Ｂ、Ｃ）がその他の値の組合せのときは、直前の出力Ｙの値を維持する。
【０２１８】
図２１に戻り、非対称型３入力Ｃ素子２１６０には、調停結果信号Ｇｒ０と、合流元０番からの転送データの終端信号Ｅｉ０の反転信号と、合流元０番に出力するデータ応答信号Ａｉ０の反転信号とが入力される。調停結果信号Ｇｒ０は図２２の信号Ａに対応し、終端信号Ｅｉ０の反転信号は信号Ｂに対応し、データ応答信号Ａｉ０の反転信号は信号Ｃに対応する。非対称型３入力Ｃ素子２１６０の出力信号ＥＥ０は、合流元０番がデータ列の終端分割データ以外の分割データ（非終端分割データ）を転送中であるか否かを示す。
【０２１９】
非対称型３入力Ｃ素子２１６１には、調停結果信号Ｇｒ１と、合流元１番からの転送データの終端信号Ｅｉ１の反転信号と、合流元１番に出力するデータ応答信号Ａｉ１の否定とが入力される。調停結果信号Ｇｒ１は図２２の信号Ａに対応し、終端信号Ｅｉ１の反転信号は信号Ｂに対応し、データ応答信号Ａｉ１の否定は信号Ｃに対応する。非対称型３入力Ｃ素子２１６１の出力信号ＥＥ１は、合流元１番がデータ列の非終端分割データを転送中であるか否かを示す。
【０２２０】
ＯＲ素子２１７０は、合流元０番からのデータ要求信号Ｒｉ０と、合流元０番がデータ列の非終端データを転送中であるか否かを示す信号ＥＥ０との論理和を出力する。ＯＲ素子２１７１は、合流元１番からのデータ要求信号Ｒｉ１と、合流元１番がデータ列の非終端データを転送中であるか否かを示す信号ＥＥ１との論理和を出力する。相互排他回路２１１０は、ＯＲ素子２１７０の出力ＲＥ０とＯＲ素子２１７１の出力ＲＥ１とを入力し、信号ＧＥ０、ＧＥ１を出力する。
【０２２１】
相互排他回路２１１０は、ＯＲ素子２１７０又は２１７１を介して入力されたデータ要求信号のうちの何れかを通過させる。相互排他回路２１１０は、ＯＲ素子２１７０側、つまり、合流元０番側のデータ要求信号を通過させると、（ＧＥ０，ＧＥ１）＝（１，０）を出力する。また、相互排他回路２１１０は、ＯＲ素子２１７１側、つまり、合流元１番側のデータ要求信号を通過させると、（ＧＥ０，ＧＥ１）＝（０，１）を出力する。
【０２２２】
ハンドシェイク確認回路２１２０、２１２１は、３入力１出力のＡＮＤ素子を含む。ハンドシェイク確認回路２１２０、２１２１の入力のうちの１つは、相互排他回路２１１０を通過したデータ要求信号に接続される。他の１つは合流元０番又は合流元１番からのデータ要求信号Ｒｉ０、Ｒｉ１に接続される。そして、残りの１つは、インバータを介して、合流元１番又は合流元０番に出力するデータ応答信号Ａｉ１、Ａｉ０に接続される。
【０２２３】
ハンドシェイク確認回路２１２０は、相互排他回路２１１０の出力信号ＧＥ０と、合流元０番からのデータ要求信号Ｒｉ０と、合流元１番に出力するデータ応答信号Ａｉ１の反転信号との論理積をとる。ハンドシェイク確認回路２１２１は、相互排他回路２１１０の出力信号ＧＥ１と、合流元１番からのデータ要求信号Ｒｉ１と、合流元０番に出力するデータ応答信号Ａｉ０の反転信号との論理積をとる。ＯＲ素子２１３０は、ハンドシェイク確認回路２１２０の出力と、ハンドシェイク確認回路２１２１の出力との論理和をとる。非同期式調停回路２１００は、ハンドシェイク確認回路２１２０、２１２１の出力を、調停結果信号（Ｇｒ０、Ｇｒ１）として出力する。また、非同期式調停回路２１００は、ＯＲ素子２１３０の出力を、合流先へのデータ要求信号Ｒｏとして出力する。
【０２２４】
対称型２入力Ｃ素子２１５０には、合流先からのデータ応答信号Ａｏと、ハンドシェイク確認回路２１２０の出力Ｇｒ０とが入力される。対称型２入力Ｃ素子２１５１には、データ応答信号Ａｏと、ハンドシェイク確認回路２１２１の出力Ｇｒ１とが入力される。非同期式調停回路２１００は、対称型２入力Ｃ素子２１５０の出力を、合流元０番へのデータ応答信号Ａｉ０として出力する。また、非同期式調停回路２１００は、対称型２入力Ｃ素子２１５１の出力を、合流元１番へのデータ応答信号Ａｉ１として出力する。
【０２２５】
対称型２入力Ｃ素子２１５０、２１５１は、ハンドシェイク確認回路２１２０、２１２１を通過したデータ要求信号と、データ要求信号に対するデータ応答信号とを待ち合わせる待ち合わせモジュールに相当する。この待ち合わせモジュールは、ハンドシェイク確認回路２１２０、２１２１を通過したデータ要求信号を入力した合流元に、データ応答信号を出力する。対称型２入力Ｃ素子２１５０は、合流元０番からのデータ要求信号が通過し、ハンドシェイク確認回路２１２０の出力がＧｒ０＝１となった後、データ応答信号がＡｏ＝１になるまで待ち、Ａｏ＝１になると、合流元０番へデータ応答信号Ａｏ０＝１を出力する。また、対称型２入力Ｃ素子２１５１は、合流元１番からのデータ要求信号が通過し、ハンドシェイク確認回路２１２１の出力がＧｒ１＝１となった後、データ応答信号がＡｏ＝１になるまで待ち、Ａｏ＝１になると、合流元１番へデータ応答信号Ａｏ１＝１を出力する。
【０２２６】
マルチプレクサ２１４０は、合流元０番からの転送データ・先頭信号Ｈｉ０・終端信号Ｅｉ０と、合流元１番からの転送データ・先頭信号Ｈｉ１、終端信号Ｅｉ１とを入力する。マルチプレクサ２１４０の選択信号端子Ｓには、ハンドシェイク確認回路２１２１の出力Ｇｒ１が入力される。マルチプレクサ２１４０は、ハンドシェイク確認回路２１２１の出力がＧｒ１＝１のとき、つまり、ハンドシェイク確認回路２１２１が合流元１番からのデータ要求信号を通過させたとき、合流元１番からの転送データを出力する。また、マルチプレクサ２１４０は、ハンドシェイク確認回路２１２１の出力がＧｒ１＝０のとき、つまり、ハンドシェイク確認回路２１２０が合流元０番からのデータ要求信号を通過させたとき、合流元０番からの転送データを出力する。
【０２２７】
ハンドシェイク確認回路２１２０の出力がＧｒ０＝１で、かつ、終端信号がＥｉ０＝０のときは、合流元０番がデータ転送元として選ばれ、かつ、転送する分割データが終端分割データではないときに相当する。このとき、非対称型３入力Ｃ素子２１６０は、ＥＥ０＝１を出力し、合流元０番からのデータ列を転送している旨の調停結果を記憶する。終端信号がＥｉ０＝１で、かつ、対称型２入力Ｃ素子２１５０の出力がＡｉ０＝１のときは、転送する分割データが終端分割データで、かつ、合流元０番に出力されるデータ応答信号がＡｉ０＝１である。このとき、非対称型３入力Ｃ素子２１６０は、ＥＥ０＝０を出力し、調停結果の記憶を解放する。
【０２２８】
ハンドシェイク確認回路２１２１の出力がＧｒ１＝１で、かつ、終端信号がＥｉ１＝０のときは、合流元１番がデータ転送元として選ばれ、かつ、転送する分割データが終端分割データではないときに相当する。このとき、非対称型３入力Ｃ素子２１６１は、ＥＥ１＝１を出力し、合流元１番からのデータ列を転送している旨の調停結果を記憶する。終端信号がＥｉ１＝１で、かつ、対称型２入力Ｃ素子２１５０の出力がＡｉ１＝１のときは、転送する分割データが終端分割データで、かつ、合流元１番に出力されるデータ応答信号がＡｉ１＝１である。このとき、非対称型３入力Ｃ素子２１６１は、ＥＥ１＝０を出力し、調停結果の記憶を解放する。
【０２２９】
図２１の非同期式調停回路２１００の各部の動作を、図１９のフローチャートに対応させて説明する。初期状態では、非同期式調停回路２１００の入出力及び内部の各信号は、Ｒｉ０＝Ａｉ０＝Ｅｉ０＝Ｒｉ１＝Ａｉ１＝Ｅｉ１＝Ｒｏ＝Ａｏ＝Ｇｒ０＝Ｇｒ１＝０で、ＲＥ０＝ＲＥ１＝ＧＥ０＝ＧＥ１＝ＥＥ０＝ＥＥ１＝０とする。非同期式調停回路２１００に、回路外部の合流元０番から、２つの分割データで構成されるデータ列が入力されたとする。非同期式調停回路２１００には、データ要求入力信号Ｒｉ０＝１が入力される（図１９のステップＥ１）。
【０２３０】
ＯＲ素子２１７０は、Ｒｉ０＝１が入力されると、出力をＲＥ０＝１に変化させる。一方、ＯＲ素子２１７１は、合流元１番から入力するデータ要求信号がＲｉ１＝０で、また、合流元１番はデータ列の転送を行っていないためＥＥ１＝０であるので、ＲＥ１＝０を出力する。相互排他回路２１１０は、合流元１番のデータ要求信号を通過させて、（ＧＥ０，ＧＥ１）＝（１，０）を出力する。
【０２３１】
ハンドシェイク確認回路２１２０は、合流元１番と合流先の間でハンドシェイクがない（Ａｉ１＝０）のため、外部から入力する合流元０番からのデータ要求信号がＲｉ０＝１となり、相互排他回路２１１０の出力がＧＥ０＝１となると、Ｇｒ０＝１を出力する。ハンドシェイク確認回路２１２１は、相互排他回路２１１０の出力がＧＥ１＝０で、外部から入力する合流元１番からのデータ要求信号もＲｉ１＝０なので、Ｇｒ１＝０を出力する。非同期式調停回路２１００は、データ要求信号が合流元０番からであることを示していることから（ステップＥ２）、調停結果信号（Ｇｒ０，Ｇｒ１）＝（１，０）を出力する（ステップＥ３）。
【０２３２】
合流元０番から入力される分割データは、先頭分割データであって、終端分割データではないので、終端信号Ｅｉ０＝０である（ステップＥ４）。非対称型３入力Ｃ素子２１６０の入力信号を図２２で用いた記号も用いて表すと、（Ａ，Ｂ，Ｃ）＝（Ｇｒ０，￣Ｅｉ０，￣Ａｉ０）＝（１，１，１）  （￣は論理否定）となる。従って、非対称型３入力Ｃ素子２１６０は、合流元０番が転送中であるという調停結果を記憶して、Ｙ＝ＥＥ０＝１を出力する（ステップＥ５）。
【０２３３】
マルチプレクサ２１４０は、調停結果が（Ｇｒ０，Ｇｒ１）＝（１，０）であることから、合流元０番を選択し、合流元０番からの分割データ・先頭信号（Ｈｉ０）・終端信号（Ｅｉ０）を合流先に出力する（ステップＥ６）。また、ＯＲ素子２１３０は、ハンドシェイク確認回路２１２０の出力がＧｒ＝１となると、合流先に、データ要求信号Ｒｏ＝１を出力する（ステップＥ１１）。
【０２３４】
非同期式調停回路２１００は、合流先からのデータ応答信号を待ち受ける（ステップＥ１２）。合流先から、データ要求信号出力に対するデータ応答信号Ａｏ＝１が入力されると、対称型２入力Ｃ素子２１５０は、Ｇｒ０＝１で合流元０番が転送中であることから（ステップＥ１３）、合流元０番へデータ応答信号Ａｉ０＝１を出力する（ステップＥ１４）。このとき、Ｅｉ０＝０、つまり、転送中の分割データは終端分割データではないので（ステップＥ１５）、非対称型３入力Ｃ素子２１６０の入力は、
（Ａ，Ｂ，Ｃ）＝（Ｇｒ０、￣Ｅｉ０，￣Ａｉ０）＝（１，１，０）
である。ここでは、調停結果の記憶は解放されず、非対称型３入力Ｃ素子２１６０の出力は、Ｙ＝ＥＥ０＝１のままとなる。
【０２３５】
非同期式調停回路２１００が、合流元０番にデータ応答信号Ａｉ０＝１を出力した後、合流元０番はデータ要求信号を取り下げ、非同期式調停回路２１００に入力される合流元０番からのデータ要求信号はＲｉ０＝０になる。非対称型３入力Ｃ素子２１６０は、合流元０番がデータ要求信号の取り下げ後も、ＥＥ０＝１を出力する。一方、合流元１番に対応する非対称型３入力Ｃ素子２１６１は、合流元１番に対して調停結果を記憶しておらず、出力はＥＥ１＝０のままである。
【０２３６】
ＯＲ素子２１７０は、非対称型３入力Ｃ素子２１６０がＥＥ０＝１を出力することから、合流元０番がデータ要求信号を取り下げ、次の分割データに対応してＲｉ０＝１を入力するまでの間も、相互排他回路２１１０にＲＥ０＝１を出力する。一方、ＯＲ素子２１７１は、合流元１番がデータ要求信号をＲｉ１＝１に変化させると、ＲＥ１＝１を出力する。従って、相互排他回路２１１０の入力の組み合わせは、合流元１番からがデータ要求信号Ｒｉ１に依存して決まり、（ＲＥ０，ＲＥ１）＝（１，０）か（１，１）の何れかとなる。
【０２３７】
図１０の真理値表１０５０を参照すると、相互排他回路２１１０は、入力信号の組み合わせが（ＲＥ０，ＲＥ１）＝（１，０）のとき、（ＧＥ０，ＧＥ１）＝（１，０）を出力し、入力信号の組み合わせが（ＲＥ０，ＲＥ１）＝（１，１）のとき、前の出力状態を維持する。従って、相互排他回路２１１０は、合流元０番からデータ要求信号Ｒｉ０＝１が入力された後、データ要求信号が取り下げられる前、又は、データ要求信号が取り下げられている間に合流元１番からデータ要求信号Ｒｉ１＝１を入力したとしても、（ＧＥ０，ＧＥ１）＝（１，０）を出力し続けることになる。
【０２３８】
ハンドシェイク確認回路２１２０は、合流元０番からのデータ要求信号がＲｉ０＝０になると、出力をＧｒ０＝０に変化させる。ＯＲ素子２１３０は、ハンドシェイク確認回路２１２０の出力がＧｒ０＝０となると、合流先に出力するデータ要求信号をＲｏ＝０にして、データ要求信号を取り下げる。合流先は、非同期式調停回路２１００がデータ要求信号を取り下げると、データ応答信号を取り下げ、非同期式調停回路２１００には、データ応答信号Ａｏ＝０が入力される。対称型２入力Ｃ素子２１５０は、入力が（Ｇｒ０，Ａｏ）＝（０，０）となることで、出力をＡｉ０＝０に変化させ、非同期式調停回路２１００は、合流元０番に出力するデータ応答信号を取り下げる。
【０２３９】
非同期式調停回路２１００が合流元０番に出力するデータ応答信号を取り下げると、非対称型３入力Ｃ素子２１６０の入力は、
（Ａ，Ｂ，Ｃ）＝（Ｇｒ０，￣Ｅｉ０，￣Ａｉ０）＝（０，１，０）
となる。図２２の真理値表２２５０を参照すると、（Ａ，Ｂ，Ｃ）＝（０，１，０）のとき、非対称型３入力Ｃ素子２１６０は、前の出力状態を維持する。従って、非対称型３入力Ｃ素子２１６０の出力はＹ＝ＥＥ０＝１のままであり、非対称型３入力Ｃ素子２１６０の調停結果の記憶は維持される。
【０２４０】
非同期式調停回路２１００は、調停結果の記憶が維持されているため（ステップＥ１７）、合流元０番からデータ要求信号Ｒｉ１＝１が入力されたとしても、相互排他回路２１１０の出力は、（ＧＥ０，ＧＥ１）＝（１，０）のままで変化はない。ハンドシェイク確認回路２１２０は、合流元０番から、次の分割データと、データ要求信号Ｒｉ１＝１とが入力されると（ステップＥ１８）、調停結果Ｇｒ０＝１を出力する（ステップＥ３）。
【０２４１】
合流元０番からの分割データは、２つの分割データから成るデータ列の２番目、すなわち、終端分割データであるので、終端信号はＥｉ０＝１である（ステップＥ４）。非同期式調停回路２１００は、調停結果の記憶を行わずに、合流元０番からの分割データ・先頭信号・終端信号を合流先に出力する（ステップＥ６）。また、ＯＲ素子２１３０は、ハンドシェイク確認回路２１２０の出力がＧｒ＝１となると、データ要求信号Ｒｏ＝１を出力する（ステップＥ１１）。
【０２４２】
非同期式調停回路２１００は、合流先からのデータ応答信号を待ち受ける（ステップＥ１２）。合流先から、データ要求信号出力に対するデータ応答信号Ａｏ＝１が入力されると、対称型２入力Ｃ素子２１５０は、Ｇｒ０＝１で合流元０番が転送中であることから（ステップＥ１３）、合流元０番へデータ応答信号Ａｉ０＝１を出力する（ステップＥ１４）。このとき、Ｅｉ０＝１、つまり、転送中の分割データは終端分割データであるので（ステップＥ１５）、非対称型３入力Ｃ素子２１６０の入力は、
（Ａ，Ｂ，Ｃ）＝（Ｇｒ０、￣Ｅｉ０，￣Ａｉ０）＝（１，０，０）
となる。従って、調停結果の記憶は解放されて、非対称型３入力Ｃ素子２１６０の出力は、Ｙ＝ＥＥ０＝０となる。
【０２４３】
非同期式調停回路２１００が、合流元０番にデータ応答信号Ａｉ０＝１を出力した後、合流元０番はデータ要求信号を取り下げ、非同期式調停回路２１００に入力される合流元０番からのデータ要求信号はＲｉ０＝０になる。このとき、非対称型３入力Ｃ素子２１６０は調停結果の記憶を解放してＥＥ０＝０を出力している。また、合流元１番に対応する非対称型３入力Ｃ素子２１６１は、合流元１番に対して調停結果を記憶しておらず、出力はＥＥ１＝０である。
【０２４４】
仮に、合流元１番からのデータ要求信号がＲｉ１＝１となったとすると、ＯＲ素子２１７１は、出力をＲＥ１＝１に変化させる。合流元０番はデータ要求信号を取り下げているので、相互排他回路２１１０の入力は、（ＲＥ０，ＲＥ１）＝（０，１）となり、相互排他回路２１１０は、（ＧＥ０，ＧＥ１）＝（０，１）を出力する。また、合流元１番からデータ要求信号が入力されない（Ｒｉ１＝０）場合は、相互排他回路２１１０の入力は、（ＲＥ０，ＲＥ１）＝（０，０）であり、相互排他回路２１１０は、（ＧＥ０，ＧＥ１）＝（０，０）を出力する。
【０２４５】
合流元１番からのデータ要求信号が入力された（Ｒｉ１＝１）とすると、相互排他回路２１１０の出力は、上記のように、（ＧＥ０，ＧＥ１）＝（０，１）となる。しかし、合流元０番でのハンドシェイクが完了しておらず、Ａｉ０＝１であるので、ハンドシェイク確認回路２１２１は、Ｒｉ１＝１、ＧＥ１＝１となっても、Ｇｒ１＝０を出力したままとなる。一方、合流元１番からデータ要求信号が入力されていなければ（Ｒｉ１＝０）、ハンドシェイク確認回路２１２１は、Ｇｒ１＝０を出力し続ける。
【０２４６】
ハンドシェイク確認回路２１２０は、入力するデータ要求信号がＲｉ＝０となることで、Ｇｒ０＝０を出力する。ＯＲ素子２１３０は、ハンドシェイク確認回路２１２０、２１２１の出力が（Ｇｒ０，Ｇｒ１）＝（０，０）となることで、合流先に出力するデータ要求信号を取り下げ、Ｒｏ＝０を出力する。合流先は、非同期式調停回路２１００がデータ要求信号を取り下げると、データ応答信号を取り下げ、非同期式調停回路２１００には、データ応答信号Ａｏ＝０が入力される。対称型２入力Ｃ素子２１５０は、入力が（Ｇｒ０，Ａｏ）＝（０，０）となることで、出力をＡｉ０＝０に変化させ、非同期式調停回路２１００は、合流元０番に出力するデータ応答信号を取り下げる。
【０２４７】
非同期式調停回路２１００が合流元０番に出力するデータ応答信号を取り下げると、非対称型３入力Ｃ素子２１６０の入力は、
（Ａ，Ｂ，Ｃ）＝（Ｇｒ０，￣Ｅｉ０，￣Ａｉ０）＝（０，０，１）
となり、非対称型３入力Ｃ素子２１６０の出力はＹ＝ＥＥ０＝０のままである。つまり、調停結果記憶は開放されたままとなる。非同期式調停回路２１００は、調停結果の記憶が開放されているため（ステップＥ１７）、ステップＥ１（初期状態）に戻る。
【０２４８】
図２３は、混雑回避経路計算モジュールの回路構成例を示している。図６の混雑回避経路計算モジュール６３１は、図２３に示す混雑回避経路計算回路２３００で構成できる。混雑回避経路計算回路２３００は、ハンドシェイク調停回路２３１０、マルチプレクサ２３２０、２３２１、ハンドシェイク部分調停回路２３３０、混雑情報記憶ラッチ２３４０、経路計算回路２３５０、転送分岐先記憶ラッチ２３６０、記憶制御回路２３６１、及び、データ・先頭信号・終端信号記憶ラッチ２３６２を有する。
【０２４９】
混雑回避経路計算回路２３００に含まれる、ハンドシェイク調停回路２３１０、マルチプレクサ２３２０、２３２１、ハンドシェイク部分調停回路２３３０、及び、混雑情報記憶ラッチ２３４０は、第１実施例で用いた、図１３に示す混雑回避経路計算回路１３００に含まれる、ハンドシェイク調停回路１３１０、マルチプレクサ１３２０、１３２１、ハンドシェイク部分調停回路１３３０、及び、混雑情報記憶ラッチ１３４０と、それぞれ同じものである。図２３のハンドシェイク部分調停回路２３３０は、図１４に示すハンドシェイク部分調停回路１４００で構成できる。
【０２５０】
経路計算回路２３５０は、非同期式分岐モジュールが有する分岐先のうち、転送データの転送先のコアに到達可能な分岐先を、転送データの出力先として決定する。本実施例で用いる経路計算回路２３５０は、第１実施例で用いた経路計算回路１３５０とは異なり、転送データと混雑情報記憶ラッチ２３４０に記憶された混雑情報だけでなく、データと並行して転送される先頭信号Ｈｉと、転送分岐先記憶ラッチ２３６０に記憶された分岐先情報とを用いて、転送中の分割データの選択分岐先信号を出力する。
【０２５１】
経路計算回路２３５０は、転送データが単位データ列の先頭分割データのとき、目的地情報及び混雑情報に基づいて転送分岐先を決定する。経路計算回路２３５０は、決定した転送分岐先を、転送分岐先記憶ラッチ（分岐先情報記憶メモリ）２３６０に記憶する。経路計算回路２３５０は、転送データが単位データ列の先頭以外の非先頭分割データのときは、転送分岐先記憶ラッチ２３６０に記憶された転送分岐先を、非同期式分岐モジュールが選択すべき転送分岐先として決定する。
【０２５２】
転送分岐先記憶ラッチ２３６０に記憶される転送分岐先信号は、経路計算回路２３５０へ入力された分割データの転送分岐先を示す信号であるため、転送分岐先記憶ラッチ２３６０と共にデータ・先頭信号・終端信号記憶ラッチ２３６２が設けられている。記憶制御回路２３６１は、データ転送におけるハンドシェイクを行う。記憶制御回路２３６１は、転送分岐先記憶ラッチ２３６０とデータ・先頭信号・終端信号記憶ラッチ２３６２との制御を行う。
【０２５３】
図２３の混雑回避経路計算回路２３００の各部の動作を、図２０のフローチャートに対応させて説明する。混雑回避経路計算回路２３００は、データ転送要求がないときは、図２０のステップＦ１〜Ｆ５の動作を行い、混雑情報を記憶する。混雑情報を記憶する動作は、図１３の混雑回避経路計算回路１３００の動作（図４のステップＣ１〜Ｃ５）と同様である。
【０２５４】
混雑回避経路計算回路２３００は、データ転送要求を受け取ると、ステップＦ１からステップＦ６へ進み、データ転送要求と並行して転送された分割データと先頭信号Ｈｉとを受け取り、先頭信号から、分割データが先頭分割データであるか否かを調べる。混雑回避経路計算回路２３００は、転送中のデータが先頭分割データであると判断すると、ステップＦ７〜Ｆ１３の動作を行い、混雑情報に基づいて、混雑を回避する先頭分割データの転送分岐先の選択を行う。この先頭分割データの転送分岐先の選択の動作は、図１３の混雑回避経路計算回路１３００の動作（図４のステップＣ６〜Ｃ１２）と同様である。
【０２５５】
記憶制御回路２３６１は、ハンドシェイク部分調停回路２３３０を介してデータ要求信号を受け取ると、転送分岐先記憶ラッチ２３６０及びデータ・先頭信号・終端信号記憶ラッチ２３６２に記憶制御信号を送る。転送分岐先記憶ラッチ２３６０は、記憶制御信号を受け取ると、経路計算回路２３５０が決定した転送分岐先を記憶し、データ・先頭信号・終端信号記憶ラッチ２３６２は、データ要求信号と共に入力された、分割データ、先頭信号Ｈｉ、及び、終端信号Ｅｉを記憶する。
【０２５６】
混雑回避経路計算回路２３００は、転送分岐先の選択を行った結果、経路計算回路２３５０が決定した転送分岐先が非同期式分岐モジュールの分岐先０番であるときは（ステップＦ１３）、ステップＦ１５に進む。ステップＦ１５では、データ・先頭信号・終端信号記憶ラッチ２３６２が記憶する分割データ、先頭信号Ｈｉ、及び、終端信号Ｅｉと、転送分岐先記憶ラッチ２３６０が記憶する、分岐先０番を示す転送分岐先信号とを出力する。また、混雑回避経路計算回路２３００は、記憶制御回路２３６１から、データ要求信号を出力する（ステップＦ１５）。
【０２５７】
混雑回避経路計算回路２３００は、転送分岐先の選択を行った結果、経路計算回路２３５０が決定した転送分岐先が非同期式分岐モジュールの分岐先１番であるときは（ステップＦ１３）、ステップＦ１６に進む。ステップＦ１６では、データ・先頭信号・終端信号記憶ラッチ２３６２が記憶する分割データ、先頭信号、及び、終端信号と、転送分岐先記憶ラッチ２３６０が記憶する、分岐先１番を示す転送分岐先信号とを出力する。また、混雑回避経路計算回路２３００は、記憶制御回路２３６１から、データ要求信号を出力する（ステップＦ１６）。
【０２５８】
混雑回避経路計算回路２３００は、出力したデータ要求信号に対するデータ応答信号が入力されると（ステップＦ１７）、データ応答信号を出力する（ステップＦ１８）。その後、混雑回避経路計算回路２３００は、ステップＦ１（初期状態）に戻る。
【０２５９】
混雑回避経路計算回路２３００は、データ転送要求を受け取ったとき（ステップＦ１）、データ転送要求と並行して入力された先頭信号Ｈｉが、転送中の分割データがデータ列の先頭である旨を示していないときは（ステップＦ６）、ステップＦ１４に進む。経路計算回路２３５０は、直前のデータ転送で転送分岐先記憶ラッチ２３６０に記憶した転送分岐先信号と同じ転送分岐先を、転送分岐先として決定する（ステップＦ１４）。
【０２６０】
記憶制御回路２３６１は、ハンドシェイク部分調停回路２３３０を介してデータ要求信号を受け取ると、転送分岐先記憶ラッチ２３６０及びデータ・先頭信号・終端信号記憶ラッチ２３６２に記憶制御信号を送る。転送分岐先記憶ラッチ２３６０は、記憶制御信号を受け取ると、経路計算回路２３５０が決定した転送分岐先を記憶し、データ・先頭信号・終端信号記憶ラッチ２３６２は、データ要求信号と共に入力された、分割データ、先頭信号Ｈｉ、及び、終端信号Ｅｉを記憶する。
【０２６１】
混雑回避経路計算回路２３００は、経路計算回路２３５０が決定した転送分岐先が非同期式分岐モジュールの分岐先０番であるときは（ステップＦ１４）、ステップＦ１５に進む。ステップ１５では、データ・先頭信号・終端信号記憶ラッチ２３６２が記憶する分割データ、先頭信号Ｈｉ、及び、終端信号Ｅｉと、転送分岐先記憶ラッチ２３６０が記憶する、分岐先０番を示す転送分岐先信号とを出力する。また、混雑回避経路計算回路２３００は、記憶制御回路２３６１から、データ要求信号を出力する（ステップＦ１５）。
【０２６２】
混雑回避経路計算回路２３００は、経路計算回路２３５０が決定した転送分岐先が非同期式分岐モジュールの分岐先１番であるときは（ステップＦ１４）、ステップ１６に進む。ステップ１６では、データ・先頭信号・終端信号記憶ラッチ２３６２が記憶する分割データ、先頭信号Ｈｉ、及び、終端信号Ｅｉと、転送分岐先記憶ラッチ２３６０が記憶する、分岐先１番を示す転送分岐先信号とを出力する。また、混雑回避経路計算回路２３００は、記憶制御回路２３６１から、データ要求信号を出力する（ステップＦ１６）。
【０２６３】
混雑回避経路計算回路２３００は、出力したデータ要求信号に対するデータ応答信号が入力されると（ステップＦ１７）、データ応答信号を出力する（ステップＦ１８）。その後、混雑回避経路計算回路２３００は、ステップＦ１（初期状態）に戻る。
【０２６４】
ここで、図６で、非同期式コア間接続回路６００が、マスタＢ６０３からスレーブＢ６０４に対して、データ６８１〜６８３を含むデータ列を転送している場合を考える。データ列は、データ６８１に対して先行するデータと、データ６８３に対して後続するデータとを含むものとする。非同期式コア間接続回路６００では、マスタＢ６０３からスレーブＢ６０４へ、非同期式調停回路６１２を占有してデータ転送を行っている状態であるとする。このような状況で、非同期式コア間接続回路６００が、マスタＡ６０１からスレーブＡ６０２に対して、データ６９１〜６９４から成るデータ列を転送する場合を考える。
【０２６５】
混雑回避経路計算モジュール６３１は、混雑検知モジュール６３２及び６４２から混雑情報を受け取っている。混雑回避経路計算モジュール６３１は、混雑検知モジュール６３２からは、データ６８１〜６８３の転送に伴い、混雑ありの情報を受け取っている。また、混雑回避経路計算モジュール６３１は、混雑検知モジュール６４２からは、データ転送がないことから、混雑なしの情報を受け取っている。混雑回避経路計算モジュール６３１は、受け取った混雑情報を記憶している（図２０のステップＦ１〜Ｆ５）。
【０２６６】
混雑回避経路計算モジュール６３１は、先頭分割データ６９１を受け取ると（ステップＦ６）、第１実施例で説明した動作と同様な動作で、混雑がない非同期式調停回路６２２方面の分岐先を、転送分岐先として決定する（ステップＦ７〜Ｆ１３）。混雑回避経路計算モジュール６３１は、決定した転送分岐先を内部に記憶し、記憶した転送分岐先を非同期式分岐モジュール６１１へ出力する（ステップＦ１５又はＦ１６）。混雑回避経路計算モジュール６３１は、非同期式分岐モジュール６１１からデータ応答信号を受け取ると（ステップＦ１７）、マスタＡとの間のラッチ及び記憶制御回路に対して、データ応答信号を出力する（ステップＦ１８）。
【０２６７】
混雑回避経路計算モジュール６３１は、先頭分割データ６９１に後続して、中間の分割データ６９２を受け取る（ステップＦ６）。混雑回避経路計算モジュール６３１は、先頭信号を参照する。混雑回避経路計算モジュール６３１は、先頭信号は転送する分割データが先頭分割データではない旨を示しているので、ステップＦ６からステップＦ１４に進む。混雑回避経路計算モジュール６３１は、内部に記憶しておいた直前のデータ転送の転送分岐先を、分割データ６９２の転送分岐先として決定し、非同期式分岐モジュールに出力する（ステップＦ１４と、ステップＦ１５又は１６）。混雑回避経路計算モジュール６３１は、非同期式分岐モジュール６１１からデータ応答信号を受け取ると（ステップＦ１７）、マスタＡとの間のラッチ及び記憶制御回路に対して、データ応答信号を出力する（ステップＦ１８）。
【０２６８】
混雑回避経路計算モジュール６３１は、中間又は終端の分割データ６９３、６９４が入力されたときも、上記と同様な動作で、直前のデータ転送の転送分岐先を、転送分岐先として決定する。混雑回避経路計算モジュール６３１は、非同期式分岐モジュール６１１に転送分岐先を出力し、非同期式分岐モジュール６１１からデータ応答信号を受け取ると、マスタＡとの間のラッチ及び記憶制御回路に対して、データ応答信号を出力する。
【０２６９】
本実施例では、非同期式調停回路２１００は、非対称型３入力Ｃ素子２１６０、２１６１を用いて調停結果を記憶する。非対称型３入力Ｃ素子２１６０、２１６１が、調停結果を維持することで、データ列の終端以外の分割データの転送時に、相互排他回路２１１０の出力を維持することができる。相互排他回路２１１０の出力を維持することで、転送中の合流元からのデータ転送要求を連続的に処理し、転送待機中の合流元からのデータ転送要求の待機を継続することができる。従って、複数の合流元からの転送データが合流する箇所で、同一目的地へのデータから成る単位データ列を、連続的に、かつ、他のデータ転送により分断されることなく、合流元から合流先へ転送することができる。
【０２７０】
上記に対し、図９に示す第１実施例で用いた非同期式調停回路９００は、調停結果を記憶する部分がなく、データ列の転送中に調停結果を変動しない機能を持たない。非同期式調停回路９００は、一方の合流元からの終端以外の分割データの転送中に、他方の合流元からデータ転送要求が入力されるとき、一方の合流元からの終端以外の分割データの転送が完了すると、他方の合流元からのデータ転送を開始する。このため、第１実施例で用いた非同期式調停回路９００は、単位データ列の転送を、他のデータ転送に分断されることなく行うことができない。本実施例では、非同期式調停モジュールに、図２１に示す非同
期式調停回路２１００を用いており、単位データ列の転送を、他のデータ転送に分断されることなく行うことが可能である。
【０２７１】
また、本実施例では、混雑回避経路計算回路２３００は、先頭分割データの転送時に転送分岐先を決定し、転送分岐先記憶ラッチ２３６０に記憶する。混雑回避経路計算回路２３００は、先頭分割データ以降の分割データの転送では、転送分岐先記憶ラッチ２３６０に記憶された転送分岐先を、分割データの転送先として決定する。このようにすることで、データ列の先頭分割データの転送分岐先と同じ分岐先へ、後続の中間・終端分割データを分岐して転送することができる。従って、分岐箇所で、同一目的地へのデータから成る単位データ列を、連続的に、かつ、他のデータ列転送により分断されることなく、分岐元から分岐先へ転送することができる。
【０２７２】
上記に対し、図１３に示す第１実施例で用いた混雑回避経路計算回路１３００は、先頭分割データの転送分岐先を記憶する機構を持っていない。第２のデータ転送方式では、先頭分割データが目的地情報を持ち、それ以外の分割データは、目的地情報を持たない。混雑回避経路計算回路１３００は、先頭分割データに対して決定した転送分岐先を記憶する機構がないので、データ列の先頭分割データの転送分岐先と同じ分岐先へ、後続の中間・終端分割データを分岐して転送することができない。また、目的地情報を持たない分割データに対し、先頭分割データにおいて目的地情報が記載されている箇所を参照して目的地情報を得ようとすると、目的地情報を誤認し、同じ転送先に分岐すべき先頭分割データに後続する分割データを、異なる分岐先へ出力する可能性がある。
【０２７３】
なお、図２３では、混雑回避経路計算回路２３００が、転送分岐先記憶ラッチ２３６０と、記憶制御回路２３６１と、データ・先頭信号・終端信号記憶ラッチ２３６２とを持つ構成としているが、これらは省略することもできる。例えば、記憶制御回路２３６１を省略して、ハンドシェイク部分調停回路２３３０を入出力するデータ要求・データ応答を、混雑回避経路計算回路２３００の入出力信号としてもよい。また、データ・先頭信号・終端信号記憶ラッチ２３６２を省略して、混雑回避経路計算回路２３００へ入力されたデータ・先頭信号・終端信号を、混雑回避経路計算回路２３００の出力信号としてもよい。更に、転送分岐先記憶ラッチ２３６０を省略し、経路計算回路２３５０の選択出力を混雑回避経路計算回路２３００の出力信号とし、その出力信号を経路計算回路２３５０に戻す構成としてもよい。このような省略構成であっても、先頭分割データの選択分岐先を記憶することは可能であり、混雑回避経路計算回路２３００の効果を実現することができる。
【０２７４】
本発明の第３実施形態を説明する。第２実施形態における非同期式論理回路は、同じ目的地への転送データを、目的地情報と転送データとを組み合わせ、組み合わせたデータをデータ転送経路幅に合わせて分割し、目的地情報を含む先頭分割データと、非先頭分割データとから成る単位データ列として転送する第２のデータ転送方式で、データ転送を行うこととした。第２のデータ転送方式を採用する場合、先頭分割データ転送時に転送分岐先が決まり、先頭分割データに後続する分割データは、同じ転送分岐先に転送されることになるので、本来的には、先頭分割データの転送時のみ、混雑検知モジュールから混雑情報を送信すればよい。
【０２７５】
しかし、第２実施形態における非同期式論理回路は、同一データ列の各分割データを送信するたびに、混雑情報を生成し、全調停対象に混雑情報を送信することになるので、無駄な電力消費が生じる。また、混雑回避経路計算モジュールは、混雑情報の更新中はデータ転送を行わないので、過度に混雑情報を送信し、混雑情報の更新が頻発すると、それに起因して、データ転送の一時停止が過剰に起こる。そこで、本実施形態は、不要な混雑情報の送信を抑制し、上記した問題の発生を抑えることができる非同期式論理回路を提供する。
【０２７６】
本実施形態の非同期式論理回路の構成は、図１に示す第１実施形態の非同期式論理回路の構成と同様である。ただし、混雑検知モジュール１１１の動作が、第２実施形態の非同期式論理回路における混雑検知モジュールの動作と異なる。その他の点は、第２実施形態と同様である。
【０２７７】
図２４は、本実施形態における混雑検知モジュール１１１の動作手順を示している。はじめ、混雑検知モジュール１１１は、初期状態にある。混雑検知モジュール１１１は、データ要求入力端子に、非同期式調停モジュール１０１からデータ要求信号が入力されたか否かを判断する（ステップＧ１）。混雑検知モジュール１１１は、データ要求信号の入力がないときは、ステップＧ１を繰り返し実行し、データ要求信号が入力されるまで待機する。
【０２７８】
混雑検知モジュール１１１は、データ要求信号が入力されると、入力された分割データが単位データ列の先頭であるか否かを判断する（ステップＧ２）。入力された分割データが単位データ列の先頭である場合、混雑検知モジュール１１１は、非同期式調停モジュール１０１から調停結果入力端子を介して入力する調停結果信号に基づいて、各調停対象、すなわち、非同期式調停モジュール１０１の各合流元に対して混雑情報信号を生成する（ステップＧ３）。
【０２７９】
混雑検知モジュール１１１は、例えば、合調停結果信号が、合流元０番のデータがデータ出力端子から出力中であることを示しているときは、合流元０番に対して「混雑なし」を示す混雑情報信号を生成し、合流元１番に対して「混雑あり」を示す混雑情報信号を生成する。これとは逆に、調停結果信号が、合流元１番のデータがデータ出力端子から出力中であることを示しているときは、合流元０番に対して「混雑あり」を示す混雑情報信号を生成し、合流元１番に対して「混雑なし」を示す混雑情報信号を生成する。
【０２８０】
混雑検知モジュール１１１は、各調停対象に、生成した混雑情報信号と、混雑処理要求信号とを出力する（ステップＧ４）。混雑検知モジュール１１１は、ステップＧ４では、合流元０番に対応した混雑情報出力端子及び混雑処理要求出力端子から、合流元０番に対応する混雑情報信号と混雑処理要求信号とをそれぞれ出力する。また、混雑検知モジュール１１１は、合流元１番に対応した混雑情報出力端子及び混雑処理要求出力端子から、合流元１番に対応する混雑情報信号と混雑処理要求信号とをそれぞれ出力する。
【０２８１】
混雑検知モジュール１１１は、非同期式調停モジュール１０１からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する（ステップＧ５）。混雑検知モジュール１１１は、非同期式調停モジュール１０１が、図１９のステップＥ３で合流元０番からの転送データを出力しているときは、データ出力端子から、合流元０番からの転送データを出力する。また、混雑検知モジュール１１１は、非同期式調停モジュール１０１が、ステップＥ７で合流元１番からの転送データを出力しているときは、データ出力端子から、合流元１番からの転送データを出力する。
【０２８２】
混雑検知モジュール１１１は、ステップＧ５で出力したデータ要求信号に対するデータ応答信号、及び、ステップＧ４で各合流元に出力した混雑処理要求信号に対する混雑処理応答信号を待ち合わせる（ステップＧ６）。混雑検知モジュール１１１は、各合流元に対応する混雑処理応答入力端子に、ステップＧ４で出力した混雑処理要求信号に対する混雑処理応答信号が入力されたか否かを判断する。また、混雑検知モジュール１１１は、データ応答入力端子に、ステップＧ５で出力したデータ要求信号に対するデータ応答信号が入力されたか否かを判断する。
【０２８３】
混雑検知モジュール１１１は、全ての合流元から混雑処理応答信号を入力していない、又は、データ応答信号を入力していないと判断したときは、ステップＧ６を繰り返し実行し、混雑処理応答信号及びデータ応答信号が入力されるまで待機する。混雑検知モジュール１１１は、全ての合流元から混雑処理応答信号が入力され、かつ、データ応答信号が入力されると、データ応答出力端子から、非同期式調停モジュール１０１にデータ応答信号を出力する（ステップＧ７）。その後、混雑検知モジュール１１１は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＧ１（初期状態）に戻る。
【０２８４】
混雑検知モジュール１１１は、ステップＧ２で入力された分割データが単位データ列の先頭でないと判断した場合、ステップＧ８に進む。ステップＧ８では、非同期式調停モジュール１０１からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する。混雑検知モジュール１１１は、非同期式調停モジュール１０１が、ステップＥ３で合流元０番からの転送データを出力しているときは、データ出力端子から、合流元０番からの転送データを出力する。また、混雑検知モジュール１１１は、非同期式調停モジュール１０１が、ステップＥ７で合流元１番からの転送データを出力しているときは、データ出力端子から、合流元１番からの転送データを出力する。
【０２８５】
混雑検知モジュール１１１は、ステップＧ５で出力したデータ要求信号に対するデータ応答信号が入力されるまで待機する（ステップＧ９）。混雑検知モジュール１１１は、データ応答信号が入力されると、ステップＧ７へ進み、データ応答出力端子から、非同期式調停モジュール１０１にデータ応答信号を出力する。その後、混雑検知モジュール１１１は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＧ１（初期状態）に戻る。
【０２８６】
混雑検知モジュール１１１は、転送データが先頭分割データであるときは、混雑処理要求信号を、非同期式調停モジュール１０１の合流元の混雑回避経路計算モジュール１１２に出力する。混雑検知モジュール１１１は、転送データが先頭分割データ以外の分割データであれば、混雑処理要求信号を出力しない。このようにすることで、先頭分割データの転送時に、混雑回避経路計算モジュール１１２が記憶する混雑情報を更新させることができると共に、先頭分割データ以外の分割データの転送時には、混雑情報を更新させないという動作が実現できる。このような動作を行うことで、無駄な混雑情報の更新に伴う消費電力を削減できる。また、混雑回避経路計算モジュール１１２で、無駄に混雑情報を更新することで生じる転送データの一時停止を回避することができる。
【０２８７】
続いて、第３実施例を説明する。本実施例の半導体回路に含まれる非同期式コア間接続回路における各回路の接続形態は、図６に示す非同期式コア間接続回路６００における各回路の接続形態と同様である。非同期式分岐モジュール６１１には、第１実施例と同様に、図７に示す回路構成の非同期式分岐回路７００を用いることができる。また、非同期式調停モジュール６１２、６１４、６２２には、図２１に示す回路構成の非同期式調停モジュール２１００を用いることができる。混雑回避経路計算モジュール６３１には、図２３に示す回路構成の混雑回避経路計算回路２３００を用いることができる。
【０２８８】
本実施例では、混雑検知モジュール６３２、６４２に、図１２に示す回路構成の混雑検知回路１２００に代えて、先頭分割データ以外の分割データに対して混雑情報の生成、送信を行わない混雑検知回路を用いる。図２５は、混雑検知モジュールの回路構成例を示している。混雑検知モジュール６３２、６４２は、図２５に示す混雑検知回路２５００で構成できる。混雑検知回路２５００は、インバータ２５１０、２５１１と、対称型２入力Ｃ素子２５２０、２５３０と、ハンドシェイク分岐回路（ハンドシェイク分岐モジュール）２５４０とを有する。
【０２８９】
混雑検知回路２５００は、非同期式分岐モジュールが出力するデータ要求信号Ｒｉを分岐し、一方をデータ要求信号Ｒｏとして出力し、他方をハンドシェイク分岐回路２５４０に入力する。インバータ２５１０、２５１１は、非同期式調停モジュールが出力する調停結果信号Ｇｒ０、Ｇｒ１を反転して、それぞれ混雑情報ＢＰ０、ＢＰ１として出力する。
【０２９０】
ハンドシェイク分岐回路２５４０は、図７に示す非同期式分岐回路７００の構成のうち、データ転送経路を除いた部分で構成される。ハンドシェイク分岐回路２５４０は、非同期式調停モジュールがデータ要求信号を出力すると、転送データが先頭分割データのとき、非同期式調停モジュールの合流元に、混雑処理要求信号を出力する。ハンドシェイク分岐回路２５４０は、転送データが非先頭分割データのとき、自身への応答信号として帰還入力する要求信号を出力する。
【０２９１】
ハンドシェイク分岐回路２５４０は、２つの選択信号入力端子（Ｓ０，Ｓ１）を有する。また、ハンドシェイク分岐回路２５４０は、２つの分岐先を有し、要求信号出力端子と応答信号入力端子との組を２つ有する。選択信号入力端子Ｓ０、Ｓ１に入力される選択信号は、何れか一方が１で他方は０である。ハンドシェイク分岐回路２５４０は、入力される選択信号に応じて、２つの分岐先の何れかに要求信号を出力し、要求信号を出力した分岐先から応答信号を入力する。
【０２９２】
ハンドシェイク分岐回路２５４０の選択信号入力端子Ｓ０には先頭信号Ｈｉが入力され、選択信号入力端子Ｓ１には先頭信号Ｈｉの反転信号が入力される。ハンドシェイク分岐回路２５４０の要求出力端子のうちの一方（Ｒｏ１）は、混雑検知回路２５００の２つの混雑要求出力端子ＢＲｅｑ０、ＢＲｅｑ１に接続され、要求入力端子Ａｏ１は、対称型２入力Ｃ素子２５２０の出力に接続される。要求出力端子の他方（Ｒｏ０）は、要求入力端子Ａｏ０に折り返される。ハンドシェイク分岐回路２５４０の要求入力端子Ｒｉには、混雑検知回路２５００に入力されるデータ要求信号Ｒｉが入力される。ハンドシェイク分岐回路２５４０の応答出力端子Ａｉは、対称型２入力Ｃ素子２５３０の入力に一方に接続される。
【０２９３】
ハンドシェイク分岐回路２５４０は、非同期式調停モジュールから入力された転送データが先頭分割データであるときは、要求入力端子Ｒｉにデータ要求信号が入力されると、要求出力端子Ｒｏ１から、非同期式調停モジュールの合流元０番及び合流元１番に、混雑処理要求信号ＢＲｅｑ０、ＢＲｅｑ１を出力する。合流元０番及び合流元１番に対応する混雑回避経路計算回路２３００（図２３）は、それぞれ、混雑処理要求信号を受け取ると、混雑情報を記憶し、混雑処理応答信号ＢＡｃｋ０、ＢＡｃｋ１を出力する。
【０２９４】
対称型２入力Ｃ素子２５２０は、図１１に示す論理回路（対称型２入力Ｃ素子）１１００で構成できる。対称型２入力Ｃ素子１１００の入力（Ａ，Ｂ）と、出力（Ｙ）との関係は、真理値表１１５０で示すようになる。対称型２入力Ｃ素子２５２０の入力の一方は、合流元０番からの混雑応答入力端子に接続され、他方は、合流元１番からの混雑応答入力端子に接続される。対称型２入力Ｃ素子２５２０は、合流元０番からの混雑応答信号ＢＡｃｋ０と、合流元１番からの混雑応答信号ＢＡｃｋ１とを待ち合わせ、応答信号ＢＡｃｋを出力する。
【０２９５】
一方、ハンドシェイク分岐回路２５４０は、非同期式調停モジュールから入力された転送データが先頭分割データではないときは、要求出力端子Ｒｏ０から、自身へ応答信号として帰還する要求信号ＮｏｐＨＳを出力する。ハンドシェイク分岐回路２５４０は、出力した信号ＮｏｐＨＳを、応答入力端子Ａｏ０から受け取る。ハンドシェイク分岐回路２５４０は、応答信号入力端子Ａｏ０にＮｏｐＨＳが入力されると、或いは、応答信号入力端子Ａｏ１に、対称型２入力Ｃ素子２５２０から信号ＢＡｃｋが入力されると、応答信号出力端子Ａｉから信号Ａｂを出力する。
【０２９６】
対称型２入力Ｃ素子２５３０は、図１１に示す論理回路（対称型２入力Ｃ素子）１１００で構成できる。対称型２入力Ｃ素子１１００の入力（Ａ，Ｂ）と、出力（Ｙ）との関係は、真理値表１１５０で示すようになる。対称型２入力Ｃ素子２５３０の入力の一方は、混雑検知回路２５００に入力されるデータ応答信号Ａｏに接続され、他方は、ハンドシェイク分岐回路２５４０の応答出力端子Ａｉに接続される。対称型２入力Ｃ素子２５３０は、データ応答信号Ａｏと、ハンドシェイク分岐回路２５４０が出力する信号Ａｂとを待ち合わせる。混雑検知回路２５００は、両者が揃うと、対称型２入力Ｃ素子２５３０から、データ応答信号Ａｉ＝１を出力する。
【０２９７】
混雑検知回路２５００の回路構成のうち、非同期式調停モジュールから入力したデータ要求信号を非同期式調停モジュールの合流先に出力する部分、及び、データ要求信号を分岐して混雑処理要求信号とし、調停結果信号をインバータ２５１０、２５１１で反転して混雑情報信号として出力する部分は、要求出力モジュールに相当する。当該部分は、非同期式調停モジュールがデータ要求信号を出力すると、データ要求信号を合流先に出力すると共に、混雑情報と、混雑処理要求信号とを、合流元にある混雑回避経路計算モジュールに出力する。また、対称型２入力Ｃ素子２５２０、２５３０は、データ要求信号と混雑情報記憶要求信号の出力後、合流先からのデータ応答信号と、混雑回避経路計算モジュールからの混雑処理応答信号とを待ち合わせる。そして、データ応答信号と混雑情報記憶応答信号とを受け取ると、非同期式調停モジュールにデータ応答信号を出力する。すなわち、対称型２入力Ｃ素子２５２０、２５３０は、応答待ち合わせモジュールに相当する。
【０２９８】
図２５の混雑検知回路２５００の各部の動作を、図２４のフローチャートに対応させて説明する。初期状態では、混雑検知回路２５００に入力される信号は、データ要求信号Ｒｉ＝０、データ応答信号Ａｏ＝０、混雑処理応答信号ＢＡｃｋ０＝０、ＢＡｃｋ１＝０である。また、混雑検知回路２５００が出力する信号は、データ要求信号Ｒｏ＝０、データ応答信号Ａｉ＝０、混雑処理要求信号ＢＲｅｑ０＝０、ＢＲｅｑ１＝０である。調停結果信号Ｇｒ０、Ｇｒ１、及び、混雑情報信号ＢＰ０、ＢＰ１の状態は任意である。
【０２９９】
混雑検知回路２５００は、データ要求信号がＲｉ＝０のとき、非同期式調停モジュールから、データ要求信号Ｒｉ＝１が入力されるまで待機する（図２４のステップＧ１）。混雑検知回路２５００は、データ要求信号がＲｉ＝１となると、先頭信号Ｈｉに基づいて、入力された転送データが先頭分割データであるか否かを判断する（ステップＧ２）。先頭信号がＨｉ＝１のとき、つまり、転送データが先頭分割データであるとき、ハンドシェイク分岐回路２５４０の選択信号入力端子に入力される信号は（Ｓ０，Ｓ１）＝（１，０）になる。一方、先頭信号がＨｉ＝０のときは、ハンドシェイク分岐回路２５４０の選択信号入力端子に入力される信号は（Ｓ０，Ｓ１）＝（０，１）になる。
【０３００】
混雑検知回路２５００は、転送データが先頭分割データであるとき、混雑情報信号ＢＰ０、ＢＰ１を生成する（ステップＧ３）。混雑検知回路２５００は、非同期式調停モジュールが何れの合流元からの転送データを出力しているかに応じて、混雑情報を生成する。非同期式調停モジュールが合流元０番からの転送データを出力するとき、合流元０番のデータは保留されることなく転送されるので、混雑検知回路２５００は、合流元０番に対して混雑なしを示す混雑情報を生成する。一方、合流元１番のデータは保留されるので、混雑検知回路２５００は、合流元１番に対して混雑ありを示す混雑情報を生成する。逆に、非同期式調停モジュールが合流元１番からの転送データを出力するときは、混雑検知回路２５００は、合流元０番に対して混雑ありを示す混雑情報を生成し、合流元１番に対しては混雑なしを示す混雑情報を生成する。
【０３０１】
混雑検知回路２５００は、インバータ２５１０、２５１１を用いて調停結果信号Ｇｒ０、Ｇｒ１をそれぞれ反転し、混雑情報信号ＢＰ０、ＢＰ１を生成する。混雑検知回路２５００は、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）のとき、つまり、非同期式調停モジュールが合流元０番から入力した転送データを出力するとき、Ｇｒ０をインバータ２５１０で反転した信号ＢＰ０＝０（混雑なし）を、合流元０番に対応した混雑情報信号とし、Ｇｒ１をインバータ２５１１で反転した信号ＢＰ１＝１（混雑あり）を、合流元１番に対応した混雑情報信号とする。また、混雑検知回路２５００は、非同期式調停モジュールが合流元１番から入力した転送データを出力するとき、つまり、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（０，１）のときは、Ｇｒ０をインバータ２５１０で反転した信号ＢＰ０＝１（混雑あり）を、合流元０番に対応した混雑情報信号とし、Ｇｒ１をインバータ２５１１で反転した信号ＢＰ１＝０（混雑なし）を、合流元先１番に対応した混雑情報信号とする。
【０３０２】
混雑検知回路２５００は、混雑情報信号ＢＰ０及びＢＰ１を、合流元０番及び合流元１番にそれぞれ出力する。また、混雑検知回路２５００は、データ要求信号Ｒｉ＝１を分岐して、ハンドシェイク分岐回路２５４０に入力する。ハンドシェイク分岐回路２５４０は、先頭信号がＨｉ＝１であるので、データ要求信号Ｒｉ＝１を入力すると、要求出力端子Ｒｏ１から、合流元０番及び合流元１番に、それぞれ混雑処理要求信号ＢＲｅｑ０＝１及びＢＲｅｑ１＝１を出力する（ステップＧ４）。このとき、ハンドシェイク分岐回路２５４０は、要求出力端子Ｒｏ０からＮｏｐＨＳ＝０を出力し、ＮｏｐＨＳ＝０を折り返して、応答入力端子Ａｏ０から受け取る。
【０３０３】
混雑検知回路２５００は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ｒｏ＝１を出力する（ステップＧ５）。非同期式調停モジュールの合流先は、データ要求信号Ｒｏ＝１を受け取った後、混雑検知回路２５００に、データ応答信号Ａｉ＝１を出力する。混雑検知回路２５００は、データ要求信号Ｒｏ＝１、及び、混雑処理要求信号ＢＲｅｑ０＝１、ＢＲｅｑ１＝１を出力した後、データ応答信号と混雑処理応答信号とを待ち合わせる。そして、データ応答信号Ａｏ＝１、混雑処理応答信号ＢＡｃｋ０＝１、ＢＡｃｋ１＝１が入力されるまで待機する（ステップＧ６）。
【０３０４】
混雑検知回路２５００の対称型２入力Ｃ素子２５２０は、合流元０番及び合流元１番から混雑処理応答信号を待ち合わせ、ＢＡｃｋ０＝１、ＢＡｃｋ１＝１が入力されると、信号ＢＡｃｋ＝１を出力する。ハンドシェイク分岐回路２５４０は、ＢＡｃｋ＝１をデータ応答入力端子Ａｏ１から受け取ると、応答出力端子Ａｉから、信号Ａｂ＝１を出力する。対称型２入力Ｃ素子２５３０は、データ応答信号Ａｏ＝１と信号Ａｂ＝１を待ち合わせる。混雑検知回路２５００は、対称型２入力Ｃ素子２５３０にデータ応答信号Ａｏ＝１と信号Ａｂ＝１とが入力されると、データ応答信号Ａｉ＝１を出力する（ステップＧ７）。
【０３０５】
混雑検知回路２５００が、非同期式調停モジュールにデータ応答信号Ａｉ＝１を出力すると、その後、非同期式調停モジュールから入力されるデータ要求信号が取り下げられ、Ｒｉ＝０となる。混雑検知回路２５００は、データ要求信号が取り下げられＲｉ＝０になると、非同期式調停モジュールの分岐先に出力するデータ要求信号を取り下げて、Ｒｏ＝０とする。また、混雑検知回路２５００は、データ要求信号を分岐して、Ｒｉ＝０を、ハンドシェイク分岐回路２５４０に入力する。
【０３０６】
ハンドシェイク分岐回路２５４０は、要求入力端子Ｒｉから入力するデータ要求入力信号が取り下げられると、要求出力端子Ｒｏ１から合流元０番及び合流元１番に出力する混雑処理要求信号を取り下げ、ＢＲｅｑ０＝０、ＢＲｅｑ１＝０とする。混雑処理要求信号の取り下げ後、対称型２入力Ｃ素子２５２０は、合流元０番及び合流元１番からの混雑処理応答信号ＢＡｃｋ＝０、ＢＡｃｋ１＝０を待ち合わせてＢＡｃｋ＝０を出力し、ハンドシェイク分岐回路２５４０はＢＡｃｋ＝０となることで信号Ａｂ＝０を出力する。
【０３０７】
非同期式調停モジュールの合流先は、データ要求信号が取り下げられると、その後、データ応答信号を取り下げて、混雑検知回路２５００にＡｉ＝０を入力する。対称型２入力Ｃ素子２５３０は、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝０と信号Ａｂ＝０を待ち合わせて、非同期式調停モジュールにデータ応答信号Ａｉ＝０を出力する。これで、混雑検知回路２５００は、初期状態に戻る。
【０３０８】
先頭信号がＨｉ＝０の場合、つまり、入力された転送データが先頭分割データではないと判断されるとき、データ要求信号Ｒｉ＝１を分岐してハンドシェイク分岐回路２５４０に入力すると、ハンドシェイク分岐回路２５４０は、要求出力端子Ｒｏ０から、ＮｏｐＨＳ＝１を出力する。それからＮｏｐＨＳ＝１を折り返して、応答入力端子Ａｏ０から受け取る。このとき、ハンドシェイク分岐回路２５４０が要求出力端子Ｒｏ１から合流元０番及び合流元１番に出力する混雑処理要求信号は、それぞれＢＲｅｑ０＝０、ＢＲｅｑ１＝０である。つまり、混雑検知回路２５００は、合流元の混雑回避経路計算モジュールに対して、混雑情報の記憶を要求しない。
【０３０９】
混雑検知回路２５００は、先頭信号がＨｉ＝０のときは、混雑処理要求信号を出力することなく、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ｒｏ＝１を出力する（ステップＧ８）。混雑検知回路２５００は、データ要求信号Ｒｏ＝１の出力後、データ応答信号Ａｏ＝１が入力されるまで待機する（ステップＧ９）。ハンドシェイク分岐回路２５４０は、応答入力端子Ａｏ０からＮｏｐＨＳ＝１を折り返して入力しているので、ＮｏｐＨＳ＝１の入力後、対称型２入力Ｃ素子２５３０にＡｂ＝１を出力する。対称型２入力Ｃ素子２５３０の一方の入力は、データ要求信号Ｒｉ＝１を入力してすぐにＡｂ＝１となるので、混雑検知回路２５００は、実質的には、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝１を待てばよい。
【０３１０】
混雑検知回路２５００は、非同期式調停モジュールの合流先からデータ応答信号Ａｏ＝１が入力されると、対称型２入力Ｃ素子２５３０から、非同期式調停モジュールにデータ応答信号Ａｉ＝１を出力する（ステップＧ７）。混雑検知回路２５００が、データ応答信号Ａｉ＝１を出力すると、その後、非同期式調停モジュールから入力されるデータ要求信号が取り下げられ、Ｒｉ＝０となる。混雑検知回路２５００は、データ要求信号が取り下げられＲｉ＝０になると、非同期式調停モジュールの分岐先に出力するデータ要求信号を取り下げて、Ｒｏ＝０とする。また、混雑検知回路２５００は、データ要求信号を分岐して、Ｒｉ＝０を、ハンドシェイク分岐回路２５４０に入力する。
【０３１１】
ハンドシェイク分岐回路２５４０は、要求入力端子Ｒｉから入力するデータ要求入力信号が取り下げられると、要求出力端子Ｒｏ０からＮｏｐＨＳ＝０を出力し、これを要求入力端子Ａｏ０に折り返す。ハンドシェイク分岐回路２５４０は、要求入力端子Ａｏ０にＮｏｐＨＳ＝０を折り返して入力すると、応答出力端子Ａｉから、Ａｂ＝０を出力する。
【０３１２】
非同期式調停モジュールの合流先は、データ要求信号が取り下げられると、その後、データ応答信号を取り下げて、混雑検知回路２５００にＡｉ＝０を入力する。対称型２入力Ｃ素子２５３０は、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝０と信号Ａｂ＝０を待ち合わせて、非同期式調停モジュールにデータ応答信号Ａｉ＝０を出力する。ここでも、ハンドシェイク分岐回路２５４０が出力する信号Ａｂはデータ要求信号の取り下げ後、遅滞なくＡｂ＝０となるので、対称型２入力Ｃ素子２５３０は、実質的には、データ応答信号Ａｏ＝０が入力されるのを待つことになる。混雑検知回路２５００は、Ａｉ＝０を出力すると、初期状態に戻る。
【０３１３】
本実施例では、ハンドシェイク分岐回路２５４０は、転送データが先頭分割データであれば、混雑検知回路２５００が接続する非同期式調停モジュールの合流元へ、混雑処理要求信号を送信する。対称型２入力Ｃ素子２５２０は、非同期式調停モジュールの合流元からの混雑処理応答信号を待ち合わせ、２つの合流元から混雑処理応答信号が入力されると、ハンドシェイク分岐回路２５４０に応答信号ＢＡｃｋ＝１を出力する。ハンドシェイク分岐回路２５４０は、応答信号ＢＡｃｋ＝１が入力されると、対称型２入力Ｃ素子２５３０に信号Ａｂ＝１を出力する。一方、ハンドシェイク分岐回路２５４０は、転送データが先頭分割データ以外の分割データであれば、混雑処理要求信号を送信せずに、対称型２入力Ｃ素子２５３０に信号Ａｂ＝１を出力する。
【０３１４】
混雑検知回路２５００は、ハンドシェイク分岐回路２５４０が上記動作を行うことで、先頭分割データの転送時は、非同期式調停モジュールの合流元に混雑処理要求信号を送りつつ、ハンドシェイク・プロトコルで定められる手順に従って非同期式調停モジュールの合流先にデータを転送する。また、混雑検知回路２５００は、先頭分割データ以外の転送時は、雑処理要求信号を出力することなく、ハンドシェイク・プロトコルで定められる手順に従って、データを転送する。混雑検知回路２５００は、先頭分割データ以外の分割データの転送時は、非同期式調停モジュールの合流元に混雑処理要求信号を送信しないので、合流元の混雑回避経路計算モジュールにおける混雑情報の無駄な更新を避けることができ、混雑情報更新のための消費電力の削減が可能である。また、混雑回避経路計算モジュールでは、混雑情報の更新回数の低減に伴って、データ転送が一時的に待機させられる回数も低減することで、混雑情報更新に伴うデータ転送速度の低下を抑制することができる。
【０３１５】
本発明の第４実施形態について説明する。第３実施形態における非同期式論理回路は、単位データ列の先頭分割データを転送するときに混雑情報要求信号を出力し、先頭分割データ以外のデータ転送では、混雑処理要求信号を出力しないことで、消費電力の削減や、転送速度低下の抑制を図った。しかし、第３実施形態における非同期式論理回路は、データ列の転送が終了し、非同期式調停モジュールでデータ転送が行われていない状況になったときでも、混雑回避経路計算モジュールが記憶する混雑情報が更新されないという問題点がある。
【０３１６】
第３実施形態における非同期式論理回路の混雑検知モジュールは、非同期式調停モジュールの一つの合流元からのデータ転送が行われているとき、転送中の合流元へ混雑なしを示す混雑情報を送信し、転送を行っていない合流元へ混雑ありを示す混雑情報を送る。データ列の転送が完了し、次のデータの転送要求がなく、非同期式調停モジュールでデータ転送が行われない状況になったときを考える。このとき、混雑検知モジュールは、データが先頭分割データではないので混雑処理要求信号を出力せず、非同期式調停モジュールの全ての合流元は混雑なしになっているにもかかわらず、混雑情報の変更を、非同期式調停モジュールの合流元に要求しない。その結果、混雑回避経路計算モジュールは、実際には存在しない混雑を回避する経路を計算する。
【０３１７】
例えば、目的地までの経路が複数存在し、ある非同期式調停モジュールにて混雑がなければ、その非同期式調停モジュールを通る経路が最適な経路（混雑回避経路計算モジュールが決定すべき経路）であったとする。しかしながら、その非同期式調停モジュールが、実際には混雑なしであるのに、混雑情報が更新されないことで混雑ありを示していると、混雑回避経路計算モジュールは、その非同期式調停モジュールを通る経路を選択できなくなる。その場合、混雑回避経路計算モジュールは、最適な経路を選択できないので、最適経路とは異なる経路を選択せざるを得なくなり、非同期式論理回路のデータ転送速度の低下などが生じる。
【０３１８】
上記の問題点は、混雑回避経路調停モジュールが、非同期式調停モジュールのデータ列の転送開始時にのみ混雑処理要求信号を送り、データ列が転送終了して混雑が解消したときに、混雑処理要求信号を送らないことに起因して発生する。そこで、本実施形態は、単位データ列の転送完了時にも、混雑情報の更新を要求する混雑検知モジュールを提供する。
【０３１９】
本実施形態の非同期式論理回路の構成は、図１に示す第１実施形態の非同期式論理回路の構成と同様である。ただし、混雑検知モジュール１１１の動作が、第１実施形態の非同期式論理回路における混雑検知モジュール１１１の動作と異なる。その他の点は、第２実施形態と同様である。
【０３２０】
図２６は、混雑検知モジュール１１１の動作手順を示している。はじめ、混雑検知モジュール１１１は、初期状態にある。混雑検知モジュール１１１は、データ要求入力端子に、非同期式調停モジュール１０１からデータ要求信号が入力されたか否かを判断する（ステップＨ１）。混雑検知モジュール１１１は、データ要求信号の入力がないときは、ステップＨ１を繰り返し実行し、データ要求信号が入力されるまで待機する。
【０３２１】
混雑検知モジュール１１１は、データ要求信号が入力されると、入力された分割データが単位データ列の終端であるか否かを判断する（ステップＨ２）。混雑検知モジュール１１１が、入力された分割データが単位データ列の終端分割データでないと判断したときの動作（ステップＨ３〜Ｈ１０）の動作は、第３実施形態における混雑検知モジュール１１１の動作と同様である。つまり、ステップＨ３〜Ｈ１０の各ステップは、図２４に示すフローチャートにおけるステップＧ２〜Ｇ９の各ステップと同様である。
【０３２２】
混雑検知モジュール１１１は、ステップＨ２で終端分割データであると判断すると、非同期式調停モジュール１０１の合流元の全てに対して「混雑なし」を示す混雑情報を生成する（ステップＨ１１）。その後、混雑検知モジュール１１１は、ステップＨ５へ進んで、各調停対象に、生成した混雑情報信号と、混雑処理要求信号とを出力する。混雑検知モジュール１１１は、ステップＨ５では、合流元０番に対応した混雑情報出力端子及び混雑処理要求出力端子から、混雑なしを示す混雑情報信号と混雑処理要求信号とをそれぞれ出力する。また、混雑検知モジュール１１１は、合流元１番に対応した混雑情報出力端子及び混雑処理要求出力端子から、混雑なしを示す混雑情報信号と混雑処理要求信号とをそれぞれ出力する。
【０３２３】
ステップＨ１０で各合流元に対して混雑なしを示す混雑情報を生成し、ステップＨ５で混雑情報と混雑処理要求信号を出力した後の動作は、転送データが先頭分割データであった時の動作と同様である。すなわち、混雑検知モジュール１１１は、ステップＨ６で、非同期式調停モジュール１０１に分割データとデータ要求信号とを出力する。そして、ステップＨ７で、ステップＨ６で出力したデータ要求信号に対するデータ応答信号と、ステップＨ５で各合流元に出力した混雑処理要求信号に対する混雑処理応答信号とを待ち合わせる。混雑検知モジュール１１１は、データ応答信号が入力され、かつ、全ての合流元から混雑処理応答信号が入力されると、ステップＨ８で、非同期式調停モジュール１０１にデータ応答信号を出力する。その後、混雑検知モジュール１１１は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＨ１（初期状態）に戻る。
【０３２４】
混雑検知モジュール１１１は、転送データが終端分割データであるときは、非同期式調停モジュール１０１の各合流元に対して混雑なしを示す混雑信号を生成し、各合流元に混雑処理要求信号を出力して、合流元の混雑回避経路計算モジュール１１２が記憶する混雑情報を、混雑なしに更新させる。このようにすることで、単位データ列の転送後、混雑情報が混雑なしとなって、他のデータ転送に、混雑なしを示す混雑情報を送信した非同期式調停モジュール１０１を利用することができるようになる。
【０３２５】
続いて、第４実施例を説明する。本実施例の半導体回路に含まれる非同期式コア間接続回路における各回路の接続形態は、図６に示す非同期式コア間接続回路６００における各回路の接続形態と同様である。非同期式分岐モジュール６１１には、第１実施例と同様に、図７に示す回路構成の非同期式分岐回路７００を用いることができる。また、非同期式調停モジュール６１２、６１４、６２２には、図２１に示す回路構成の非同期式調停回路２１００を用いることができる。混雑回避経路計算モジュール６３１には、図２３に示す回路構成の混雑回避経路計算回路２３００を用いることができる。
【０３２６】
本実施例では、混雑検知モジュール６３２、６４２に、図２５に示す回路構成の混雑検知回路２５００に代えて、終端分割データ転送時に混雑なしを示す混雑情報を生成する混雑検知回路を用いる。図２７は、混雑検知モジュールの回路構成例を示している。混雑検知モジュール６３２、６４２は、図２７に示す混雑検知回路２７００で構成できる。混雑検知回路２７００は、ＯＲ素子２７０１、混雑情報生成回路（混雑情報生成モジュール）２７１０、対称型２入力Ｃ素子２７２０、２７３０、及び、ハンドシェイク分岐回路２７４０を有する。対称型２入力Ｃ素子２７２０、２７３０、及び、ハンドシェイク分岐回路２７４０は、第３実施例で用いた混雑検知回路２５００（図２５）における対称型２入力Ｃ素子２５２０、２５３０、及び、ハンドシェイク分岐回路２５４０とそれぞれ同じものである。
【０３２７】
本実施例では、混雑検知回路２７００は、先頭分割データの転送時に加えて、転送データが終端分割データのときも、非同期式調停モジュールの合流元のそれぞれへ混雑処理要求信号を出力する。そこで、ＯＲ素子２７０１を用い、ＯＲ素子２７０１にて先頭信号Ｈｉと終端信号Ｅｉとの論理和を取り、ＯＲ素子２７０１の出力信号を、ハンドシェイク分岐回路２７４０に分岐先選択信号として入力する。ハンドシェイク分岐回路２７４０は、ＯＲ素子２７０１の出力が１のとき、つまり、転送データが先頭分割データ又は終端分割データのとき、混雑情報記憶要求信号を出力する。ハンドシェイク分岐回路２７４０は、ＯＲ素子２７０１の出力が０のとき、つまり、転送データが中間の分割データのとき、自身への応答信号として帰還入力する要求信号を出力する。
【０３２８】
混雑情報生成回路２７１０は、調停結果信号（Ｇｒ０，Ｇｒ１）と、終端信号Ｅｉとに基づいて、混雑情報信号ＢＰ０、ＢＰ１を生成する。混雑情報生成回路２７１０は、終端信号がＥｉ＝０のとき、つまり、転送中の分割データが先頭分割データ又は中間の分割データのとき、非同期式調停モジュールの合流元のそれぞれに対して、混雑情報を生成する。生成する混雑情報は、調停結果信号（Ｇｒ０，Ｇｒ１）に基づいて、データ転送を行っている合流元に対しては「混雑なし」を示す混雑情報であり、データ転送を待機している合流元に対しては「混雑あり」を示す混雑情報である。また、混雑情報生成回路２７１０は、終端信号がＥｉ＝１のとき、つまり、転送データが終端分割データであるときは、非同期式調停モジュールの全ての合流元に対して、「混雑なし」を示す混雑情報を生成する。
【０３２９】
混雑情報生成回路２７１０は、転送データが先頭分割データ又は中間の分割データのとき、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）であれば、調停結果信号を反転して、混雑情報信号（ＢＰ０，ＢＰ１）＝（０，１）を生成する。混雑情報生成回路２７１０は、転送データが先頭分割データ又は中間の分割データのとき、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（０，１）であれば、混雑情報信号（ＢＰ０，ＢＰ１）＝（１，０）を生成する。混雑情報生成回路２７１０は、転送データが終端分割データのときは、非同期式調停モジュールが何れの合流元からのデータを転送している場合も、混雑情報信号（ＢＰ０，ＢＰ１）＝（０，０）を生成する。
【０３３０】
図２７の混雑検知回路２７００の各部の動作を、図２６のフローチャートに対応させて説明する。初期状態では、混雑検知回路２７００に入力される信号は、データ要求信号Ｒｉ＝０、データ応答信号Ａｏ＝０、混雑処理応答信号ＢＡｃｋ０＝０、ＢＡｃｋ１＝０である。また、混雑検知回路２７００が出力する信号は、データ要求信号Ｒｏ＝０、データ応答信号Ａｉ＝０、混雑処理要求信号ＢＲｅｑ０＝０、ＢＲｅｑ１＝０である。調停結果信号Ｇｒ０、Ｇｒ１、及び、混雑情報信号ＢＰ０の状態は任意である。混雑検知回路２７００は、データ要求信号がＲｉ＝０のとき、非同期式調停モジュールから、データ要求信号Ｒｉ＝１が入力されるまで待機する（図２６のステップＨ１）。
【０３３１】
混雑検知回路２７００は、データ要求信号がＲｉ＝１となると、終端信号Ｅｉに基づいて、入力された転送データが終端分割データであるか否かを判断する（ステップＨ２）。混雑検知回路２７００は、終端信号Ｅｉ＝０のときは、入力された転送データが終端分割データではないと判断して、先頭信号Ｈｉに基づいて、入力された転送データが先頭分割データであるか否かを判断する（ステップＨ３）。混雑検知回路２７００は、先頭信号Ｈｉ＝１のときは、入力された転送データが先頭分割データであると判断する。ＯＲ素子２７０１は、先頭信号Ｈｉ＝１を入力すると、出力を１に変化させる。ＯＲ素子２７０１の出力信号が１になることで、ハンドシェイク分岐回路２７４０の選択信号入力端子に入力される信号は（Ｓ０，Ｓ１）＝（１，０）となる。
【０３３２】
混雑情報生成回路２７１０は、先頭信号がＨｉ＝１のとき、終端信号がＥｉ＝０であるので、非同期式調停モジュールから入力する調停結果信号（Ｇｒ０，Ｇｒ１）に基づいて、混雑情報信号ＢＰ０、ＢＰ１を生成する（ステップＨ４）。混雑検知回路２７００は、ステップＨ４では、調停結果信号（Ｇｒ０，Ｇｒ１）から、非同期式調停モジュールが、何れの合流元からの転送データを出力しているかを判別する。混雑情報生成回路２７１０は、非同期式調停モジュールが合流元０番からの転送データを出力するとき、合流元０番のデータは保留されることなく転送されるので、合流元０番に対して混雑なしを示す混雑情報を生成する。これに対し、合流元１番のデータは保留されるので、合流元１番に対しては混雑ありを示す混雑情報を生成する。逆に、非同期式調停モジュールが合流元１番からの転送データを出力するとき、混雑情報生成回路２７１０は、合流元０番に対して混雑ありを示す混雑情報を生成し、合流元１番に対しては混雑なしを示す混雑情報を生成する。
【０３３３】
混雑情報生成回路２７１０は、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）のとき、つまり、非同期式調停モジュールが合流元０番から入力した転送データを出力するとき、終端信号はＥｉ＝０であるので、ＢＰ０＝０（混雑なし）を合流元０番に対応した混雑情報信号として生成し、ＢＰ１＝１（混雑あり）を合流元１番に対応した混雑情報信号として生成する。また、混雑情報生成回路２７１０は、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（０，１）のとき、つまり、非同期式調停モジュールが合流元０番から入力した転送データを出力するときは、終端信号がＥｉ＝０であるので、ＢＰ０＝１（混雑あり）を合流元０番に対応した混雑情報信号として生成し、ＢＰ１＝０（混雑なし）を合流元１番に対応した混雑情報信号として生成する。
【０３３４】
混雑検知回路２７００は、混雑情報生成回路２７１０が生成した混雑情報信号ＢＰ０及びＢＰ１を、非同期式調停モジュールの合流元０番及び合流元１番にそれぞれ出力する。また、混雑検知回路２７００は、データ要求信号Ｒｉ＝１を分岐して、ハンドシェイク分岐回路２７４０に入力する。ハンドシェイク分岐回路２７４０の選択信号入力端子に入力される信号は（Ｓ０，Ｓ１）＝（１，０）となっているので、ハンドシェイク分岐回路２７４０は、要求出力端子Ｒｏ１から、合流元０番及び合流元１番に、それぞれ、混雑処理要求信号ＢＲｅｑ０＝１及びＢＲｅｑ１＝１を出力する（ステップＨ５）。混雑検知回路２７００は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ｒｏ＝１を出力する（ステップＨ６）。
【０３３５】
混雑検知回路２７００は、データ要求信号Ｒｏ＝１及び混雑処理要求信号ＢＲｅｑ０＝１、ＢＲｅｑ１＝１の出力後、データ応答信号Ａｏ＝１、混雑処理応答信号ＢＡｃｋ０＝１、ＢＡｃｋ１＝１が入力されるまで待機する（ステップＨ７）。対称型２入力Ｃ素子２７２０は、合流元０番及び合流元１番から混雑処理応答信号ＢＡｃｋ０＝１、ＢＡｃｋ１＝１が入力されると、ハンドシェイク分岐回路２７４０の応答入力端子Ａｏ１に、信号ＢＡｃｋ＝１を出力する。ハンドシェイク分岐回路２７４０は、ＯＲ素子２７０１の出力が１のときにＢＡｃｋ＝１となると、信号Ａｂ＝１を出力する。対称型２入力Ｃ素子２７３０は、データ応答信号Ａｏ＝１と信号Ａｂ＝１を待ち合わせて、データ応答信号Ａｉ＝１を出力する（ステップＨ８）。
【０３３６】
混雑検知回路２７００が、非同期式調停モジュールにデータ応答信号Ａｉ＝１を出力すると、非同期式調停モジュールから入力されるデータ要求信号はＲｉ＝０となる。ハンドシェイク分岐回路２７４０は、データ要求信号が取り下げられ、Ｒｉ＝０となると、合流元０番及び合流元１番に出力する混雑処理要求信号を取り下げて、ＢＲｅｑ０＝０、ＢＲｅｑ１＝０を出力する。対称型２入力Ｃ素子２７２０は、混雑処理要求信号の取り下げ後、合流元０番及び合流元１番からの混雑処理応答信号ＢＡｃｋ＝０、ＢＡｃｋ１＝０を待ち合わせて、ＢＡｃｋ＝０を出力する。
【０３３７】
ハンドシェイク分岐回路２７４０は、対称型２入力Ｃ素子２７２０からＢＡｃｋ＝０を入力すると、信号Ａｂ＝０を出力する。対称型２入力Ｃ素子２７３０は、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝０と信号Ａｂ＝０を待ち合わせて、非同期式調停モジュールにデータ応答信号Ａｉ＝０を出力する。これで、混雑検知回路２７００は、データ応答信号Ａｉ＝０を出力して初期状態に戻る。
【０３３８】
終端信号がＥｉ＝０で、先頭信号がＨｉ＝０の場合、つまり、入力された転送データが終端分割データでも先頭分割データでもない場合、ＯＲ素子２７０１は０を出力し、ハンドシェイク分岐回路２７４０の選択信号入力端子に入力される信号は（Ｓ０，Ｓ１）＝（０，１）となる。この場合、ハンドシェイク分岐回路２７４０は、データ要求信号Ｒｉ＝１を分岐して要求入力端子Ｒｉに入力すると、要求出力端子Ｒｏ０から、ＮｏｐＨＳ＝１を出力する。要求端子Ｒｏ０から出力されたＮｏｐＨＳ＝１は、応答入力端子Ａｏ０に折り返えされ、ハンドシェイク分岐回路２７４０は、応答入力端子Ａｏ０にＮｏｐＨＳ＝１を入力することで、信号Ａｂ＝１を出力する。
【０３３９】
入力された転送データが終端分割データでも先頭分割データでもない場合、ハンドシェイク分岐回路２７４０は選択信号端子Ｓ０に入力される信号がＳ０＝０であるため、データ要求信号Ｒｉ＝１を入力しても、要求出力端子Ｒｏ１からＢＲｅｐ０＝１、ＢＲｅｑ１＝１を出力しない。混雑検知回路２７００は、ハンドシェイク分岐回路２７４０がＮｏｐＨＳ＝１を出力するのと並行して、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ｒｏ＝１を出力する（ステップＨ９）。言い換えれば、混雑検知回路２７００は、ステップＨ２で転送データが終端分割データではないと判断し、かつ、ステップＨ３で転送データが先頭分割データではないと判断したときは、混雑情報信号及び混雑処理要求信号を出力することなく、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ｒｏ＝１を出力する。
【０３４０】
混雑検知回路２７００は、データ要求信号Ｒｏ＝１の出力後、データ応答信号Ａｏ＝１が入力されるまで待機する（ステップＨ１０）。対称型２入力Ｃ素子２７３０は、データ応答信号Ａｏ＝１とハンドシェイク分岐回路２７４０からの信号Ａｂ＝１を待ち合わせて、データ応答信号Ａｉ＝１を出力する（ステップＨ８）。
【０３４１】
混雑検知回路２７００が、非同期式調停モジュールにデータ応答信号Ａｉ＝１を出力すると、非同期式調停モジュールから入力されるデータ要求信号は取り下げられてＲｉ＝０となる。ハンドシェイク分岐回路２７４０は、データ要求信号がＲｉ＝０となることで、要求出力端子Ｒｏ１から信号ＮｏｐＨＳ＝０を出力し、要求入力端子Ａｏ１に折り返す。ハンドシェイク分岐回路２７４０は、ＮｏｐＨＳ＝０を折り返すことで、信号Ａｂ＝０を出力する。対称型２入力Ｃ素子２７３０は、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝０と信号Ａｂ＝０を待ち合わせて、非同期式調停モジュールにデータ応答信号Ａｉ＝０を出力する。混雑検知回路２７００は、データ応答信号Ａｉ＝０を出力して初期状態に戻る。
【０３４２】
終端信号がＥｉ＝１で、先頭信号がＨｉ＝０の場合、つまり、入力された転送データが終端分割データである場合、ＯＲ素子２７０１は１を出力し、ハンドシェイク分岐回路２７４０の選択信号入力端子に入力される信号は（Ｓ０，Ｓ１）＝（１，０）となる。混雑情報生成回路２７１０は、終端信号がＥｉ＝１であるときは、混雑なしを示す混雑情報信号ＢＰ０、ＢＰ１を生成する（ステップＨ１１）。混雑情報生成回路２７１０は、入力された転送データが終端分割データである場合は、非同期式調停モジュールからの調停結果信号の値にかかわらず、非同期式調停モジュールの全ての合流元に対して、混雑なしを示す混雑情報を生成する。すなわち、混雑情報生成回路２７１０は、ＢＰ０＝０（混雑なし）を合流元０番に対応した混雑情報信号として生成し、ＢＰ１＝０（混雑なし）を合流元１番に対応した混雑情報信号として生成する。
【０３４３】
混雑検知回路２７００は、ステップＨ５〜Ｈ８を経て、データ応答信号Ａｉ＝１を出力する。混雑検知回路２７００が、非同期式調停モジュールにデータ応答信号Ａｉ＝１を出力すると、非同期式調停モジュールから入力されるデータ要求信号がＲｉ＝０となる。ハンドシェイク分岐回路２７４０は、データ要求信号がＲｉ＝０となることで、要求出力端子Ｒｏ１から合流元０番及び合流元１番に出力する混雑処理要求信号をＢＲｅｑ０＝０、ＢＲｅｑ１＝０とする。対称型２入力Ｃ素子２７２０は、合流元０番及び合流元１番からの混雑処理応答信号ＢＡｃｋ＝０、ＢＡｃｋ１＝０を待ち合わせてＢＡｃｋ＝０を出力する。ハンドシェイク分岐回路２７４０は、ＢＡｃｋ＝０を入力すると、信号Ａｂ＝０を出力する。
【０３４４】
対称型２入力Ｃ素子２７３０は、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝０と信号Ａｂ＝０を待ち合わせて、非同期式調停モジュールにデータ応答信号Ａｉ＝０を出力する。これで、混雑検知回路２７００は、データ応答信号Ａｉ＝０を出力して初期状態に戻る。
【０３４５】
本実施例では、転送データが終端分割データであれば、混雑情報生成回路２７１０は、非同期式調停モジュールの各合流元に対して混雑なしを示す混雑情報を生成し、ハンドシェイク分岐回路２７４０は、各合流元へ、混雑処理要求信号を送信する。混雑検知回路２７００は、混雑情報生成回路２７１０及びハンドシェイク分岐回路２７４０が上記動作を行うことで、終端分割データの転送時に、非同期式調停モジュールの各合流元の混雑回避経路計算モジュールが記憶する混雑情報を、混雑なしに更新させることができる。このように、データ列の終端分割データの転送時に混雑が解消されたという情報を非同期式調停モジュールの合流元へ送信し、混雑回避経路計算モジュールが記憶する混雑情報を更新させる。これにより、混雑回避経路計算モジュールは、正しい混雑情報を基に、混雑回避経路を計算することが可能になる。
【０３４６】
なお、本実施形態及び本実施例では、混雑検知モジュール（混雑検知回路）は、ステップＨ３で、先頭分割データであるか否かを判断し、先頭分割データの転送時に、ステップＨ４に進んで混雑の有無を示す混雑情報を生成している。これに対し、先頭分割データ及び終端分割データ以外の転送時に、ステップＨ４に進んで混雑の有無を示す混雑情報を生成することも可能である。つまり、混雑の有無を示す混雑情報の送信を、単位データ列の先頭分割データの転送時に限定しない構成も可能である。
【０３４７】
上記の動作は、具体的には、動作手順を、次のように変更することで実現できる。まず、図２６のステップＨ３〜Ｈ１０を、図３のステップＢ２〜Ｂ６に置き換える。次いで、動作手順を、ステップＨ１１の終了後にステップＢ３へ移行して、ステップＢ６の終了後にステップＨ１へ戻るように構成する。動作手順をこのように変更することで、混雑検知モジュールは、データ列の先頭分割データの転送時だけでなく、終端分割データよりも前の分割データの転送時も混雑の有無を示す混雑情報を生成できる。さらに、混雑検知モジュールは、混雑回避経路計算モジュールに混雑処理要求信号を送信すると共に、データ列の終端分割データの転送時に混雑解消を示す混雑情報を送信するという動作を実現できる。このような動作を行う混雑検知モジュールの具体的な構成例は、図２７に示す混雑検知回路２７００からＯＲ素子２７０１とハンドシェイク分岐回路２７４０を取り除き、データ要求信号Ｒｉを分岐して、混雑処理要求信号ＢＲｅｑ０、ＢＲｅｑ１として出力し、ハンドシェイク分岐回路２７４０の出力信号Ａｂを対称型２入力Ｃ素子２７３０に入力するのに代えて、対称型２入力Ｃ素子２７２０の出力信号ＢＡｃｋを、対称型２入力Ｃ素子２７３０に入力することで、得ることができる。
【０３４８】
本発明の第５実施形態について説明する。第３及び第４実施形態の非同期式論理回路は、単位データ列の先頭分割データの転送の際に混雑情報の更新を行い、消費電力の削減や、データ転送速度低下を抑制する効果を得られる。しかしながら、第３及び第４実施形態の非同期式論理回路で用いる混雑検知モジュールは、混雑情報が変化しないときも、非同期式調停モジュールの合流元へ混雑処理要求信号を出力している。混雑情報が変化しないときは、合流元の混雑回避経路計算モジュールにて混雑情報を更新しても、混雑情報の内容は更新前後で変わらない。従って、混雑情報の変化がないときに、混雑処理要求信号を
出力しない構成を採用すれば、更なる消費電力の削減や、データ転送速度の低下の抑制が可能である。
【０３４９】
例えば、図２７に示す混雑検知回路２７００が、データ列転送がない状態から１つのデータ列を転送し、再度、データ列転送がない状態に戻った場合を考える。混雑検知回路２７００は、データ列転送の先頭分割データを転送する際に、データ列転送を行っている合流元には混雑なしを示す混雑情報を送り、データ転送を行っていない合流元へは混雑ありを示す混雑情報を送る。その後、混雑検知回路２７００は、データ列転送を終了する際に、非同期式調停モジュールの全ての合流元へ、混雑なしを示す混雑情報を送る。
【０３５０】
上記のように、混雑検知回路２７００は、データ列転送を行わない非同期式調停モジュールの合流元へ、先頭分割データ転送時と、終端分割データ転送時との２回にわたって、混雑なしを示す混雑情報を送信する。つまり、混雑検知回路２７００は、データ列転送を行わない合流元に対して、混雑なしを示す混雑情報を継続的に送っている。混雑情報に変化がないときに、混雑処理要求信号の出力を停止できれば、混雑処理要求信号を合流元に送信し、また、合流元の混雑回避経路計算モジュールで混雑情報を記憶する際の消費電力の削減が可能である。また、混雑情報に変化がないときに、混雑処理要求信号の出力を停
止できれば、混雑回避経路計算モジュールにて、データ転送速度の無用な低下を避けることができる。そこで、本実施形態は、混雑情報に変化のあった非同期式調停モジュールの合流元に対し混雑処理要求信号を出力し、混雑情報に変化がない合流元に対しては混雑処理要求信号を出力しない混雑検知モジュールを提供する。
【０３５１】
本実施形態の非同期式論理回路の構成は、図１に示す第１実施形態の非同期式論理回路の構成と同様である。ただし、混雑検知モジュール１１１の動作が、第１実施形態の非同期式論理回路における混雑検知モジュール１１１の動作と異なる。その他の点は、第３又は４実施形態と同様である。
【０３５２】
図２８は、混雑検知モジュール１１１の動作手順を示している。はじめ、混雑検知モジュール１１１は、初期状態にある。混雑検知モジュール１１１は、データ要求入力端子に、非同期式調停モジュール１０１からデータ要求信号が入力されたか否かを判断する（ステップＩ１）。混雑検知モジュール１１１は、データ要求信号の入力がないときは、ステップＩ１を繰り返し実行し、データ要求信号が入力されるまで待機する。
【０３５３】
混雑検知モジュール１１１は、データ要求信号が入力されると、入力された分割データが単位データ列の終端分割データであるか否かを判断する（ステップＩ２）。混雑検知モジュール１１１は、入力された分割データが単位データ列の終端でない場合、入力された分割データが単位データ列の先頭分割データであるか否かを判断する（ステップＩ３）。混雑検知モジュール１１１は、入力された分割データが単位データ列の先頭である場合、非同期式調停モジュールの調停結果が合流元０番であるか否かを判断する（ステップＩ４）。
【０３５４】
混雑検知モジュール１１１は、非同期式調停モジュールの調停結果が合流元０番である場合、合流元１番に対して「混雑あり」を示す混雑情報を生成し（ステップＩ５）、合流元１番へ混雑情報信号と混雑処理要求信号とを出力する（ステップＩ６）。このとき、混雑検知モジュール１１１は、先頭分割データが入力する前の状態、すなわち、データ列の転送がない状態で、非同期式調停モジュールの双方の合流元の混雑回避経路計算モジュール１１２が、混雑なしを示す混雑情報を記憶している。よって、合流元０番に対しては、混雑処理要求信号を出力しない。
【０３５５】
混雑検知モジュール１１１は、非同期式調停モジュール１０１からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する（ステップＩ７）。混雑検知モジュール１１１は、調停結果が合流元０番であるので、ステップＩ７では、非同期式調停モジュール１０１が、図１９のステップＥ６で出力した合流元０番からの転送データを、データ出力端子から出力する。
【０３５６】
混雑検知モジュール１１１は、ステップＩ７で出力したデータ要求信号に対するデータ応答信号、及び、ステップＩ６で合流元１番に出力した混雑処理要求信号に対する混雑処理応答信号を待ち合わせる（ステップＩ８）。混雑検知モジュール１１１は、合流元１番に対応する混雑処理応答入力端子に、ステップＩ６で出力した混雑処理要求信号に対する混雑処理応答信号が入力されたか否かを判断する。また、混雑検知モジュール１１１は、データ応答入力端子に、ステップＩ７で出力したデータ要求信号に対するデータ応答信号が入力されたか否かを判断する。混雑検知モジュール１１１は、合流元１番から混雑処理応答信号を入力していないと判断したとき、又は、データ応答信号を入力していないと判断したときは、ステップＩ８を繰り返し実行し、混雑処理応答信号及びデータ応答信号が入力されるまで待機する。
【０３５７】
混雑検知モジュール１１１は、合流元１番から混雑処理応答信号が入力され、かつ、データ応答信号が入力されると、データ応答出力端子から、非同期式調停モジュール１０１にデータ応答信号を出力する（ステップＩ９）。その後、混雑検知モジュール１１１は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＩ１（初期状態）に戻る。
【０３５８】
混雑検知モジュール１１１は、ステップＩ４で、非同期式調停モジュールの調停結果が合流元１番であると判断した場合は、合流元０番に対して「混雑あり」を示す混雑情報を生成する（ステップＩ１４）。その後、合流元０番へ混雑情報信号と混雑処理要求信号とを出力する（ステップＩ１５）。このとき、混雑検知モジュール１１１は、先頭分割データが入力する前の状態、すなわち、データ列の転送がない状態である。ここでは、非同期式調停モジュールの双方の合流元の混雑回避経路計算モジュール１１２が、混雑なしを示す混雑情報を記憶しているので、合流元１番に対しては、混雑処理要求信号を出力しない。
【０３５９】
混雑検知モジュール１１１は、非同期式調停モジュール１０１からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する（ステップＩ１６）。混雑検知モジュール１１１は、調停結果が合流元１番であるので、ステップＩ１６では、非同期式調停モジュール１０１が、図１９のステップＥ１０で出力した合流元１番からの転送データを、データ出力端子から出力する。
【０３６０】
混雑検知モジュール１１１は、ステップＩ１６で出力したデータ要求信号に対するデータ応答信号、及び、ステップＩ１５で合流元０番に出力した混雑処理要求信号に対する混雑処理応答信号を待ち合わせる（ステップＩ１７）。混雑検知モジュール１１１は、合流元０番に対応する混雑処理応答入力端子に、ステップＩ６で出力した混雑処理要求信号に対する混雑処理応答信号が入力されたか否かを判断する。また、混雑検知モジュール１１１は、データ応答入力端子に、ステップＩ７で出力したデータ要求信号に対するデータ応答信号が入力されたか否かを判断する。混雑検知モジュール１１１は、合流元０番から混雑処理応答信号を入力していないと判断したとき、又は、データ応答信号を入力していないと判断したときは、ステップＩ１７を繰り返し実行し、混雑処理応答信号及びデータ応答信号が入力されるまで待機する。
【０３６１】
混雑検知モジュール１１１は、合流元０番から混雑処理応答信号が入力され、かつ、データ応答信号が入力されると、ステップＩ９へ進み、非同期式調停モジュール１０１にデータ応答信号を出力する。その後、混雑検知モジュール１１１は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＩ１（初期状態）に戻る。
【０３６２】
混雑検知モジュール１１１は、ステップＩ２で、入力された分割データが単位データ列の終端でないと判断し、ステップＩ３で、入力された分割データが単位データ列の先頭でないと判断したとき、すなわち、転送データが中間の分割データであると判断したときは、ステップＩ１０に進む。そこで非同期式調停モジュール１０１からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する（ステップＩ１０）。混雑検知モジュール１１１は、非同期式調停モジュール１０１が、ステップＥ６で合流元０番からの転送データを出力しているときは、データ出力端子から、合流元０番からの転送データを出力する。また、混雑検知モジュール１１１は、非同期式調停モジュール１０１が、ステップＥ１０で合流元１番からの転送データを出力しているときは、データ出力端子から、合流元１番からの転送データを出力する。
【０３６３】
混雑検知モジュール１１１は、ステップＩ１０で出力したデータ要求信号に対するデータ応答信号が入力されるまで待機する（ステップＩ１１）。混雑検知モジュール１１１は、データ応答信号が入力されると、ステップＩ９へ進み、データ応答出力端子から、非同期式調停モジュール１０１にデータ応答信号を出力する。その後、混雑検知モジュール１１１は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＩ１（初期状態）に戻る。
【０３６４】
混雑検知モジュール１１１は、ステップＩ２で、入力された分割データが単位データ列の終端分割データであると判断した場合は、非同期式調停モジュールの調停結果が合流元０番であるか否かを判断する（ステップＩ１２）。非同期式調停モジュールの調停結果が合流元０番である場合、データ列の終端分割データを転送した後に混雑が解消されるため、混雑検知モジュール１１１は、合流元１番に対して「混雑なし」を示す混雑情報を生成する（ステップＩ１３）。
【０３６５】
混雑検知モジュール１１１は、ステップＩ１３で合流元１番に対して混雑なしを示す混雑情報を生成した後、ステップＩ６へ進み、合流元１番に混雑情報信号と混雑処理要求信号を出力する。その後、混雑検知モジュール１１１は、ステップＩ７で、転送データとデータ要求信号とを出力し、ステップＩ８で、データ応答信号と、混雑処理応答信号とを待ち合わせる。混雑検知モジュール１１１は、データ応答信号と混雑処理応答信号とが入力されると、ステップＩ９へ進み、データ応答信号を出力する。混雑検知モジュール１１１は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＩ１（初期状態）に戻る。
【０３６６】
混雑検知モジュール１１１は、ステップＩ１２で、調停結果が合流元１番であると判断したときは、合流元０番に対して「混雑なし」を示す混雑情報を生成する（ステップＩ１８）。その後、混雑検知モジュール１１１は、ステップＩ１５へ進み、合流元０番へ混雑情報信号と混雑処理要求信号を出力し、ステップＩ１６で、転送データとデータ要求信号とを出力し、ステップＩ１７で、データ応答信号と、混雑処理応答信号とを待ち合わせる。混雑検知モジュール１１１は、データ応答信号と混雑処理応答信号とが入力されると、ステップＩ９へ進み、データ応答信号を出力する。混雑検知モジュール１１１は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップＩ１（初期状態）に戻る。
【０３６７】
混雑検知モジュール１１１は、データ列の先頭分割データ転送時、及び、終端データ転送時に、混雑情報が変化する合流元に対して、混雑情報及び混雑処理要求信号を出力する。例えば、合流元０番に対応する混雑回避経路計算モジュール１１２が、既に混雑なしを示す混雑情報を記憶しているときに、合流元０番に対しては、混雑処理要求信号を出力しない。これにより、混雑処理要求信号を合流元０番に対応する混雑回避経路計算モジュール１１２まで転送し、また、混雑回避経路計算モジュール１１２内で混雑情報を記憶する際の電力消費を抑えることができる。また、混雑回避経路計算モジュール１１２は、同じ内容の混雑情報を記憶するための混雑処理要求信号が入力されないことで、データ転送が一時停止されず、データ転送速度の低下を回避することもできる。
【０３６８】
続いて、第５実施例を説明する。本実施例の半導体回路に含まれる非同期式コア間接続回路における各回路の接続形態は、図６に示す非同期式コア間接続回路６００における各回路の接続形態と同様である。非同期式分岐モジュール６１１には、第１実施例と同様に、図７に示す回路構成の非同期式分岐回路７００を用いることができる。また、非同期式調停モジュール６１２、６１４、６２２には、図２１に示す回路構成の非同期式調停回路２１００を用いることができる。混雑回避経路計算モジュール６３１には、図２３に示す回路構成の混雑回避経路計算回路２３００を用いることができる。
【０３６９】
本実施例では、混雑検知モジュール６３２、６４２に、図２７に示す回路構成の混雑検知回路２７００に代えて、混雑情報が変化する合流元に対して混雑処理要求信号を出力する混雑検知回路を用いる。図２９は、混雑検知モジュールの回路構成例を示している。混雑検知モジュール６３２、６４２は、図２９に示す混雑検知回路２９００で構成できる。混雑検知回路２９００は、混雑処理要求送信先選択回路２９０１、混雑情報生成回路２９１０、対称型２入力Ｃ素子２９３０、及び、ハンドシェイク分岐回路２９４０を有する。混雑情報生成回路２９１０、及び、対称型２入力Ｃ素子２９３０は、第４実施例で用いた混雑検知回路２７００における混雑情報生成回路２７１０、及び、対称型２入力Ｃ素子２７３０とそれぞれ同じものである。
【０３７０】
ハンドシェイク分岐回路２９４０は、第４実施例で用いた混雑検知回路２７００におけるハンドシェイク分岐回路２７４０と同様な構成である。ただし、ハンドシェイク分岐回路２９４０は、分岐先を３つ有する。ハンドシェイク分岐回路２９４０は、３つの選択信号入力端子（Ｓ０，Ｓ１，Ｓ２）と、要求信号出力端子と応答信号入力端子との組を３つ有する。選択信号入力端子Ｓ０〜Ｓ２に入力される選択信号は、全て０、又は、何れか一つが１で残りは０である。ハンドシェイク分岐回路２９４０は、入力される選択信号に応じて、３つの分岐先の何れかに要求信号を出力し、要求信号を出力した分岐先から応答信号を入力する。
【０３７１】
ハンドシェイク分岐回路２９４０は、選択信号Ｓ０＝１のときは、要求入力端子Ｒｉにデータ要求信号が入力されると、要求出力端子Ｒｏ０から要求信号を出力する。また、ハンドシェイク分岐回路２９４０は、応答入力端子Ａｏ０に応答信号が入力されると、応答出力端子Ａｉから、応答信号を出力する。ハンドシェイク分岐回路２９４０は、選択信号Ｓ１＝１のときは、要求出力端子Ｒｏ１から要求信号を出力し、応答入力端子Ａｏ１から応答信号を入力する。ハンドシェイク分岐回路２９４０は、選択信号Ｓ２＝１のときは、要求出力端子Ｒｏ２から要求信号を出力し、応答入力端子Ａｏ２から応答信号を入力する。
【０３７２】
図３０は、ハンドシェイク分岐回路２９４０の動作手順をしている。ハンドシェイク分岐回路２９４０は、要求入力端子Ｒｉに、データ要求信号が入力されたか否かを判断する（ステップＪ１）。ハンドシェイク分岐回路２９４０は、データ要求信号が入力されると、選択信号が分岐先０番を示しているか否か、つまり、選択信号がＳ０＝１であるか否かを判断する（ステップＪ２）。
【０３７３】
ハンドシェイク分岐回路２９４０は、選択信号がＳ０＝１のときは、分岐先０番を選択し、要求出力端子Ｒｏ０から要求信号を出力する（ステップＪ３）。ハンドシェイク分岐回路２９４０は、要求信号の出力後、応答入力端子Ａｏ０に、応答信号が入力されたか否かを判断する（ステップＪ４）。ハンドシェイク分岐回路２９４０は、応答信号が入力されていないときは、ステップＪ４を繰り返し実行し、応答信号が入力されるまで待機する。
【０３７４】
ハンドシェイク分岐回路２９４０は、選択信号がＳ０＝１でないときは、選択信号が分岐先１番を示しているか否か、つまり、選択信号がＳ１＝１であるか否かを判断する（ステップＪ５）。ハンドシェイク分岐回路２９４０は、選択信号がＳ１＝１のときは、分岐先１番を選択し、要求出力端子Ｒｏ１から要求信号を出力する（ステップＪ６）。ハンドシェイク分岐回路２９４０は、要求信号の出力後、応答入力端子Ａｏ１に、応答信号が入力されたか否かを判断する（ステップＪ７）。ハンドシェイク分岐回路２９４０は、応答信号が入力されていないときは、ステップＪ７を繰り返し実行し、応答信号が入力されるまで待機する。
【０３７５】
ハンドシェイク分岐回路２９４０は、選択信号がＳ０＝１でもＳ１＝１でもないとき、つまり、選択信号がＳ２＝１のときは、分岐先２番を選択し、要求出力端子Ｒｏ２から要求信号を出力する（ステップＪ８）。ハンドシェイク分岐回路２９４０は、要求信号の出力後、応答入力端子Ａｏ２に、応答信号が入力されたか否かを判断する（ステップＪ９）。ハンドシェイク分岐回路２９４０は、応答信号が入力されていないときは、ステップＪ９を繰り返し実行し、応答信号が入力されるまで待機する。
【０３７６】
ハンドシェイク分岐回路２９４０は、ステップＪ４、Ｊ７、又は、Ｊ９で、応答信号が入力されたと判断すると、応答出力端子Ａｉから、応答信号を出力する。ハンドシェイク分岐回路２９４０は、応答信号の出力後、要求信号の取り下げ、及び、応答信号の取り下げを経て、ステップＪ１（初期状態）に戻る。
【０３７７】
図３１は、ハンドシェイク分岐回路２９４０の回路構成例を示している。ハンドシェイク分岐回路２９４０は、図３１に示す回路構成のハンドシェイク分岐回路３１００で構成できる。ハンドシェイク分岐回路３１００の構成は、図７に示す非同期式分岐回路７００の構成のうち、データ転送経路を除いた部分で構成と概ね同様である。ただし、ハンドシェイク分岐回路３１００は、３つの分岐先を有するので、３つの非対称型２入力Ｃ素子３１１０〜３１１２を有する。また、ＯＲ素子３１２０は、３つの分岐先からの応答信号の論理和を、応答出力端子から出力する。
【０３７８】
図２９に戻り、ハンドシェイク分岐回路２９４０は、分岐先０番の要求出力端子Ｒｏ０から、非同期式調停モジュールの合流元０番に対応した混雑処理要求信号ＢＲｅｑ０を出力する。また、ハンドシェイク分岐回路２９４０は、分岐先０番の応答入力端子Ａｏ０に、合流元０番から混雑処理応答信号ＢＡｃｋ０を入力する。ハンドシェイク分岐回路２９４０は、分岐先１番の要求出力端子Ｒｏ１から、合流元１番に対応した混雑処理要求信号ＢＲｅｑ１を出力し、分岐先１番の応答入力端子Ａｏ１に、合流元１番からの混雑処理応答信号を入力する。ハンドシェイク分岐回路２９４０は、分岐先２番の要求出力端子Ｒｏ２から、信号ＮｏｐＨＳを出力し、分岐先２番の応答入力端子Ａｏ２に折り返して入力する。
【０３７９】
混雑処理要求送信先選択回路２９０１は、調停結果信号Ｇｒ０、Ｇｒ１と、先頭信号Ｈｉと、終端信号Ｅｉとに基づいて、ハンドシェイク分岐回路２９４０の選択信号入力端子（Ｓ０，Ｓ１，Ｓ２）に入力する選択信号を生成する。ここで、選択信号Ｓ０＝１は、ハンドシェイク分岐回路２９４０が分岐先０番を選択し、非同期式調停モジュールの合流元０番へ混雑処理要求信号を出力することを意味する。選択信号Ｓ１＝１は、ハンドシェイク分岐回路２９４０が分岐先０を選択し、非同期式調停モジュールの合流元１番へ混雑処理要求信号を出力することを意味する。選択信号Ｓ２＝１は、ハンドシェイク分岐回路２９４０が分岐先２番を選択し、非同期式調停モジュールの何れの合流元へも混雑処理要求信号を出力しないことを意味する。
【０３８０】
混雑処理要求送信先選択回路２９０１は、「＋」を論理和演算子として、入０力が（Ｈｉ＋Ｅｉ，Ｇｒ０，Ｇｒ１）＝（１，１，０）のときは、選択信号（Ｓ０，Ｓ１，Ｓ２）＝（０，１，０）を出力する。また、混雑処理要求送信先選択回路２９０１は、入力が（Ｈｉ＋Ｅｉ，Ｇｒ０，Ｇｒ１）＝（１，０，１）のときは、選択信号（Ｓ０，Ｓ１，Ｓ２）＝（１，０，０）を出力する。混雑処理要求送信先選択回路２９０１は、入力が（Ｈｉ＋Ｅｉ，Ｇｒ０，Ｇｒ１）＝（０，−，−）のとき、選択信号（Ｓ０，Ｓ１，Ｓ２）＝（０，０，１）を出力する。「−」は、値が０と１の何れでもよいことを表している。
【０３８１】
ハンドシェイク分岐回路２９４０は、転送データが先頭分割データ又は終端分割データのとき、非同期式調停モジュールの合流元のうち、非同期式調停モジュールが転送データを出力していない側の合流元に混雑情報記憶要求信号を出力する。すなわち、先頭信号がＨｉ＝１のとき、又は、終端信号がＥｉ＝１のとき、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）であれば、混雑処理要求送信先選択回路２９０１が選択信号（Ｓ０，Ｓ１，Ｓ２）＝（０，１，０）を出力する。これにより、ハンドシェイク分岐回路２９４０は、非同期式調停モジュールの合流元１番へ混雑処理要求信号ＢＰ１＝１を出力する。また、先頭信号がＨｉ＝１のとき、又は、終端信号がＥｉ＝１のとき、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（０，１）であれば、混雑処理要求送信先選択回路２９０１が選択信号（Ｓ０，Ｓ１，Ｓ２）＝（１，０，０）を出力する。これにより、ハンドシェイク分岐回路２９４０は、非同期式調停モジュールの合流元０番へ混雑処理要求信号ＢＰ０＝１を出力する。
【０３８２】
一方、ハンドシェイク分岐回路２９４０は、転送データが先頭分割データではなく、また、終端分割データでもないとき、つまり、転送データが中間の分割データのとき、非同期式調停モジュールの合流元の何れにも混雑情報記憶要求信号をしない。すなわち、先頭信号がＨｉ＝０で、かつ、終端信号がＥｉ＝０のときは、混雑処理要求送信先選択回路２９０１が選択信号（Ｓ０，Ｓ１，Ｓ２）＝（０，０，１）を出力する。これにより、ハンドシェイク分岐回路２９４０は、要求信号を自身への帰還信号として入力し、非同期式調停モジュールの合流元０番及び１番に混雑処理要求信号を出力しない。
【０３８３】
混雑情報生成回路２９１０は、転送中の分割データが先頭分割データのとき、データ転送を待機している合流元に対しては「混雑あり」を示す混雑情報を生成する。混雑検知回路２９００は、先頭分割データの転送時は、非同期式調停モジュールで転送待機させられている合流元に対して、混雑情報生成回路２９１０から混雑ありを示す混雑情報を出力すると共に、ハンドシェイク分岐回路２９４０から混雑処理要求信号を出力する。合流元の混雑回避経路計算モジュールは、混雑処理要求信号を受け取ると、記憶する混雑情報を「混雑あり」に更新する。このとき、混雑情報生成回路２９１０は、非同期式調停モジュールで転送中の合流元に対して「混雑なし」を示す混雑情報を生成するが、その合流元の混雑回避経路計算モジュールはデータ転送前の状態で「混雑なし」を記憶している。このため、ハンドシェイク分岐回路２９４０は、転送中の合流元に対しては、混雑処理要求信号を出力しない。
【０３８４】
混雑情報生成回路２９１０は、転送中の分割データが中間の分割データのとき、データ転送中の合流元に対して「混雑なし」を示す混雑情報を生成し、データ転送を待機している合流元に対しては「混雑あり」を示す混雑情報を生成する。しかしながら、非同期式調停モジュールで転送中の合流元の混雑回避経路計算モジュールは、データ転送がない状態から「混雑なし」を記憶し続けている。また、転送待機させられる合流元の混雑回避経路計算モジュールは、先頭分割データの転送時に「混雑あり」を記憶している。このため、ハンドシェイク分岐回路２９４０は、中間の分割データの転送時には、非同期式調停モジ
ュールの何れの合流元へも、混雑処理要求信号を出力しない。
【０３８５】
混雑情報生成回路２９１０は、転送中の分割データが終端分割データのとき、双方の合流元に対して「混雑なし」を示す混雑情報を生成する。混雑検知回路２９００は、終端分割データの転送時は、非同期式調停モジュールで転送待機させられている合流元に対して、混雑情報生成回路２９１０から混雑なしを示す混雑情報を出力すると共に、ハンドシェイク分岐回路２９４０から混雑処理要求信号を出力する。合流元の混雑回避経路計算モジュールは、混雑処理要求信号を受け取ると、記憶する混雑情報を「混雑なし」に更新する。非同期式調停モジュールで転送中の合流元の混雑回避経路計算モジュールは、先頭分割データ転送がない状態から「混雑なし」を記憶し続けている。このため、ハンドシェイク分岐回路２９４０は、転送中の合流元に対しては、混雑処理要求信号を出力しない。
【０３８６】
図２９の混雑検知回路２９００の各部の動作を、図２８のフローチャートに対応させて説明する。初期状態では、混雑検知回路２９００に入力される信号は、データ要求信号Ｒｉ＝０、データ応答信号Ａｏ＝０、混雑処理応答信号ＢＡｃｋ０＝０、ＢＡｃｋ１＝０である。また、混雑検知回路２９００が出力する信号は、データ要求信号Ｒｏ＝０、データ応答信号Ａｉ＝０、混雑処理要求信号ＢＲｅｑ０＝０、ＢＲｅｑ１＝０である。調停結果信号Ｇｒ０、Ｇｒ１、及び、混雑情報信号ＢＰ０の状態は任意である。
【０３８７】
混雑検知回路２９００は、データ要求信号がＲｉ＝０のとき、非同期式調停モジュールから、データ要求信号Ｒｉ＝１が入力されるまで待機する（図２８のステップＩ１）。混雑検知回路２９００は、データ要求信号がＲｉ＝１になると、終端信号Ｅｉに基づいて、入力された転送データが終端分割データであるか否かを判断する（ステップＩ２）。混雑検知回路２９００は、終端信号Ｅｉ＝０であれば、入力された転送データが終端分割データではないと判断し、先頭信号Ｈｉに基づいて、入力された転送データが先頭分割データであるか否かを判断する（ステップＩ３）。
【０３８８】
混雑検知回路２９００は、先頭信号がＨｉ＝１のとき、入力された転送データが先頭分割データであると判断し、非同期式調停モジュールから入力する調停信号（Ｇｒ０，Ｇｒ１）に基づいて、合流元０番が転送中であるか否かを判断する（ステップＩ４）。混雑情報生成回路２９１０は、非同期式調停モジュールが合流元０番からのデータ列を転送中で、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）であれば、合流元１番が混雑している旨を示す混雑情報信号（ＢＰ０、ＢＰ１）＝（０，１）を生成する（ステップＩ５）。
【０３８９】
混雑検知回路２９００は、データ要求信号Ｒｉを分岐し、ハンドシェイク分岐回路２９４０の要求入力端子Ｒｉに入力する。混雑処理要求送信先選択回路２９０１は、先頭信号がＨｉ＝１で、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）であれば、選択信号（Ｓ０，Ｓ１，Ｓ２）＝（０，１，０）を出力する。ハンドシェイク分岐回路２９４０は、データ要求信号がＲｉ＝１になると、選択信号Ｓ１＝１であるので、分岐先１番の要求出力端子Ｒｏ１から、非同期式調停モジュールの合流元１番へＢＲｅｑ１＝１を出力する。また、混雑検知回路２９００は、非同期式調停モジュールの合流元１番に対する混雑情報信号ＢＰ＝１を、合流元１番に出力する（ステップＩ６）。
【０３９０】
混雑検知回路２９００は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、非同期式調停モジュールの合流元０番からの転送データとデータ要求信号Ｒｏ＝１を出力する（ステップＩ７）。混雑検知回路２９００は、データ要求信号Ｒｏ＝１及び混雑処理要求信号ＢＲｅｑ１＝１の出力後、データ応答信号Ａｏ＝１、混雑処理応答信号ＢＡｃｋ１＝１が入力されるまで待機する（ステップＩ８）。
【０３９１】
ハンドシェイク分岐回路２９４０は、分岐先選択信号が（Ｓ０，Ｓ１，Ｓ２）＝（０，１，０）であるので、応答入力端子Ａｏ１に、非同期式調停モジュールの合流元１番から、混雑処理要求信号ＢＡｃｋ＝１が入力されると、応答出力端子Ａｉから、信号Ａｂ＝１を出力する。対称型２入力Ｃ素子２９３０は、データ応答信号Ａｏ＝１と信号Ａｂ＝１を待ち合わせて、データ応答信号Ａｉ＝１を出力する（ステップＩ９）。
【０３９２】
混雑検知回路２９００が、非同期式調停モジュールにデータ応答信号Ａｉ＝１を出力すると、非同期式調停モジュールから入力されるデータ要求信号が取り下げられて、データ要求信号がＲｉ＝０となる。ハンドシェイク分岐回路２９４０は、データ要求信号がＲｉ＝０となると、要求出力端子Ｒｏ１から出力する混雑処理要求信号を取り下げ、ＢＲｅｑ１＝０を出力する。
【０３９３】
ハンドシェイク分岐回路２９４０は、混雑処理要求信号の取り下げ後、合流元１番から混雑処理応答信号ＢＡｃｋ１＝０を入力すると、応答出力端子Ａｏから、信号Ａｂ＝０を出力する。対称型２入力Ｃ素子２９３０は、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝０と信号Ａｂ＝０を待ち合わせて、非同期式調停モジュールにデータ応答信号Ａｉ＝０を出力する。これで、混雑検知回路２９００は、データ応答信号Ａｉ＝０を出力して、ステップＩ１（初期状態）に戻る。
【０３９４】
混雑検知回路２９００は、中間の分割データの転送時は、ステップＩ２で終端信号がＥｉ＝０であることから、転送データは終端分割データではないと判断する。また、混雑検知回路２９００は、ステップＩ３で先頭信号がＨｉ＝０であることから、転送データは先頭分割データではないと判断する。この場合、混雑検知回路２９００は、混雑情報信号及び混雑処理要求信号を出力することなく、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ｒｏ＝１を出力する（ステップＩ１０）。
【０３９５】
中間の分割データの転送時、混雑処理要求送信先選択回路２９０１は、先頭信号及び終端信号がそれぞれＨｉ＝０、Ｅｉ＝０であるため、非同期式調停モジュールが何れの合流元を選択している場合でも、（Ｓ０，Ｓ１，Ｓ２）＝（０，０，１）を出力する。ハンドシェイク分岐回路２９４０には、データ要求信号Ｒｉ＝１が入力されると、要求出力端子Ｒｏ２からＮｏｐＨＳ＝１を出力し、これを、応答入力端子Ａｏ２に折り返して入力する。ハンドシェイク分岐回路２９４０は、ＮｏｐＨＳ＝１を折り返して入力することで、応答出力端子から、信号Ａｂ＝１を出力する。
【０３９６】
混雑検知回路２９００は、データ要求信号Ｒｏ＝１の出力後、データ応答信号Ａｏ＝１が入力されるまで待機する（ステップＩ１１）。対称型２入力Ｃ素子２９３０は、データ要求信号はＲｉ＝１となった後にＡｂ＝１となっているので、データ応答信号Ａｏ＝１を入力すると、データ応答信号Ａｉ＝１を出力する（ステップＩ９）。
【０３９７】
混雑検知回路２９００が、非同期式調停モジュールにデータ応答信号Ａｉ＝１を出力すると、非同期式調停モジュールから入力されるデータ要求信号が取り下げられ、Ｒｉ＝０となる。ハンドシェイク分岐回路２９４０は、データ要求信号がＲｉ＝０となると、要求出力端子Ｒｏ２から信号ＮｏｐＨＳ＝０を出力し、これを、応答入力端子Ａｏ２に折り返して入力する。ハンドシェイク分岐回路２９４０は、ＮｏｐＨＳ＝０を折り返して入力することで、応答出力端子Ａｉから、信号Ａｂ＝１を出力する。
【０３９８】
対称型２入力Ｃ素子２９３０は、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝０と信号Ａｂ＝０とを待ち合わせ、非同期式調停モジュールにデータ応答信号Ａｉ＝０を出力する。これで、混雑検知回路２９００は、データ応答信号Ａｉ＝０を出力してステップＩ１（初期状態）に戻る。
【０３９９】
転送データが終端分割データのとき、混雑検知回路２９００は、ステップＩ２で、終端信号がＥｉ＝１であることから、転送データが終端分割データであると判断する。混雑検知回路２９００は、調停結果信号は、先頭分割データ及び中間の分割データから継続して（Ｇｒ０，Ｇｒ１）＝（１，０）であるため、ステップＩ１２で、非同期式調停モジュールの合流元０番からのデータ列を転送していると判断する。混雑情報生成回路２９１０は、終端信号がＥｉ＝１であるため、混雑情報信号（ＢＰ０、ＢＰ１）＝（０，０）を生成する（ステップＩ１３）。
【０４００】
混雑検知回路２９００は、データ要求信号Ｒｉを分岐し、ハンドシェイク分岐回路２９４０の要求入力端子Ｒｉに入力する。混雑処理要求送信先選択回路２９０１は、終端信号がＥｉ＝１で、調停結果信号が（Ｇｒ０，Ｇｒ１）＝（１，０）であれば、選択信号（Ｓ０，Ｓ１，Ｓ２）＝（０，１，０）を出力する。ハンドシェイク分岐回路２９４０は、データ要求信号がＲｉ＝１になると、選択信号Ｓ１＝１であるので、分岐先１番の要求出力端子Ｒｏ１から、非同期式調停モジュールの合流元１番へＢＲｅｑ１＝１を出力する。また、混雑検知回路２９００は、非同期式調停モジュールの合流元１番に対する混雑情報信号ＢＰ＝０を、合流元１番に出力する（ステップＩ６）。
【０４０１】
混雑検知回路２９００は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、非同期式調停モジュールの合流元０番からの転送データとデータ要求信号Ｒｏ＝１を出力する（ステップＩ７）。混雑検知回路２９００は、データ要求信号Ｒｏ＝１及び混雑処理要求信号ＢＲｅｑ１＝１の出力後、データ応答信号Ａｏ＝１、混雑処理応答信号ＢＡｃｋ１＝１が入力されるまで待機する（ステップＩ８）。
【０４０２】
ハンドシェイク分岐回路２９４０は、分岐先選択信号が（Ｓ０，Ｓ１，Ｓ２）＝（０，１，０）であるので、応答入力端子Ａｏ１に、非同期式調停モジュールの合流元１番から、混雑処理要求信号ＢＡｃｋ＝１が入力されると、応答出力端子Ａｉから、信号Ａｂ＝１を出力する。対称型２入力Ｃ素子２９３０は、データ応答信号Ａｏ＝１と信号Ａｂ＝１を待ち合わせて、データ応答信号Ａｉ＝１を出力する（ステップＩ９）。
【０４０３】
混雑検知回路２９００が、非同期式調停モジュールにデータ応答信号Ａｉ＝１を出力すると、非同期式調停モジュールから入力されるデータ要求信号が取り下げられて、Ｒｉ＝０となる。ハンドシェイク分岐回路２９４０は、データ要求信号がＲｉ＝０となると、要求出力端子Ｒｏ１から出力する混雑処理要求信号を取り下げ、ＢＲｅｑ１＝０を出力する。
【０４０４】
ハンドシェイク分岐回路２９４０は、混雑処理要求信号の取り下げ後、合流元１番から混雑処理応答信号ＢＡｃｋ１＝０を入力すると、応答出力端子Ａｏから、信号Ａｂ＝０を出力する。対称型２入力Ｃ素子２９３０は、非同期式調停モジュールの合流先からのデータ応答信号Ａｏ＝０と信号Ａｂ＝０を待ち合わせて、非同期式調停モジュールにデータ応答信号Ａｉ＝０を出力する。これで、混雑検知回路２９００は、データ応答信号Ａｉ＝０を出力して、ステップＩ１（初期状態）に戻る。
【０４０５】
終端分割データの転送が終了した後に、別のデータ列の先頭分割データが、非同期式モジュールの合流元１番から転送されたとする。その場合、混雑検知回路２９００の動作は、上記で説明した動作の合流元０番と合流元１番とを入れ替えた動作を行う。すなわち、混雑検知回路２９００は、上記した動作のステップＩ５〜Ｉ８をＩ１４〜Ｉ１７に置き換え、ステップＩ１３をＩ１８に置き換えた動作を行う。
【０４０６】
本実施例では、図６の混雑検知モジュール６３２、６４２を、図２９に示す混雑検知回路２９００で構成する。混雑検知回路２９００は、混雑情報の変化があった非同期式調停モジュールの合流元に対してのみ、混雑処理要求信号を出力することができる。このため、混雑情報の転送の電力低減を図ることができる。従って、また、混雑回避経路計算モジュール６３１は、同じ内容の混雑情報を記憶するために、データ転送を一時停止することがないため、混雑情報を記憶する処理に起因して発生する転送速度低下を抑制することができる。
【０４０７】
なお、混雑検知回路２９００は、混雑情報に変化があった非同期式調停モジュールの合流元にのみ混雑処理要求信号を出力する。このため、混雑処理要求信号を受け取った混雑回避経路計算モジュールは、該当する分岐先の混雑情報を、現在記憶している混雑情報とは異なる混雑情報に更新することになる。従って、混雑回避経路計算モジュールが、混雑情報を受け取って記憶するのに代えて、混雑処理要求信号が入力されると、記憶する混雑情報を反転するという構成を採用することもできる。この場合、混雑処理要求信号は、混雑情報の反転を要求する反転要求信号に相当する。このような構成を採用した場合、混雑検知回路２９００は、混雑情報を出力する必要がないので、混雑情報生成回路２９１０を省くことができる。
【０４０８】
上記の動作は、具体的には、図２３に示す混雑回避経路計算回路２３００の構成を、下記のように変更することで実現できる。混雑回避経路計算回路２３００から、混雑情報入力端子ＢＰ０を取り除き、マルチプレクサ２３２０の１番入力へ混雑情報記憶ラッチ２３４０の出力信号ＢＬｏ０の論理否定をとった信号を入力する。また、混雑回避経路計算回路２３００から、混雑情報入力ＢＰ１を取り除き、マルチプレクサ２３２１の１番入力へ混雑情報記憶ラッチ２３４０の出力信号ＢＬｏ１の論理否定をとった信号を入力する。
【０４０９】
例えば、非同期式分岐モジュールの分岐先０番に対応する混雑検知モジュールから混雑処理要求信号（反転要求信号）を入力すると、マルチプレクサ２３２０が１番入力側を選択し、信号ＢＬｏ０の論理否定を出力する。これにより、混雑回避経路計算回路２３００は、混雑情報記憶ラッチ２３４０が記憶する混雑情報を、混雑なしから混雑ありへ、又は、混雑ありから混雑なしへと反転する。また、非同期式分岐モジュールの分岐先１番に対応する混雑検知モジュールから混雑処理要求信号を入力すると、マルチプレクサ２３２１が１番入力側を選択し、信号ＢＬｏ１の論理否定を出力する。これにより、混雑回避経路計算回路２３００は、混雑情報記憶ラッチ２３４０が記憶する混雑情報を、混雑なしから混雑ありへ、又は、混雑ありから混雑なしへと反転する。
【０４１０】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の非同期式論理回路及び混雑回避経路回避モジュールは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【０４１１】
以下、本発明の最小構成について説明する。本発明の非同期式論理回路は、最小構成として、非同期式分岐モジュールと、非同期式調停モジュールと、混雑検知モジュールと、混雑回避経路計算モジュールとを有する。非同期式論理回路は、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行う。非同期式分岐回路は、ハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する。非同期式調停モジュールは、転送データの転送経路を合流し、複数の合流元の少なくとも１つから入力された転送データを、ハンドシェイク・プロトコルに矛盾することなく所定の手順で逐次的に出力する。混雑検知モジュールは、非同期式調停モジュールに対応して配置される。混雑検知モジュールは、非同期式調停モジュールから、何れの合流元からの転送データを転送中であるかを示す調停結果信号を受け取り、非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する。混雑回避経路計算モジュールは、非同期式分岐モジュールに対応して配置される。混雑回避経路計算モジュールは、非同期式分岐モジュールの分岐先にある混雑検知モジュールから混雑情報を受け取り、同期式分岐モジュールの複数の分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理を行う。また、混雑回避経路計算モジュールは、混雑情報及び転送データの目的地情報に基づいて、非同期式分岐モジュールに対し、目的地に到達可能分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理を行う。混雑回避経路計算モジュールは、混雑情報を記録する処理と、非同期式分岐モジュールの転送分岐先を決定する処理とを、排他的に行う。
【０４１２】
本発明の非同期式論理回路では、混雑情報を記録する処理と、非同期式分岐モジュールの転送分岐先を決定する処理とを、排他的に行う。このようにすることで、データ転送中を避けて混雑情報の更新を行うことができる。また、混雑情報記憶要求信号とデータ要求信号とが独立したタイミングで発生する非同期式論理回路において、非同期式分岐モジュールが転送データを出力する分岐先の変化が、データ転送ハンドシェイクの途中で起こることを防ぐことができる。本発明では、混雑情報を用いて、混雑箇所を回避するための経路設定計算を正しく行うことができるので、非同期式分岐モジュールが、目的地へ到達可能な分岐先を複数持つとき、混雑が発生していない分岐先を優先的に転送分岐先として選ぶことができる。その結果として、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる。
【０４１３】
本発明の混雑回避経路計算モジュールは、最小構成として、データ混雑情報間調停回路と、メモリ記憶制御回路と、経路計算回路とを有する。データ混雑情報間調停回路は、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する非同期式分岐モジュールに対するデータ要求信号と、非同期式分岐モジュールの分岐先から受け取る混雑情報記憶要求信号との調停を行う。調停結果により、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させる。メモリ記憶制御回路は、データ混雑情報間調停回路が混雑情報記憶要求信号を通過させると、非同期式分岐モジュールの分岐先から受け取った前記混雑情報を、分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶させる。経路計算回路は、データ混雑情報間調停回路がデータ要求信号を通過させると、混雑情報及び非同期式分岐モジュールに入力される転送データの目的地情報に基づいて、非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる。
【０４１４】
本発明の混雑回避経路計算モジュールでは、データ混雑情報間調停回路は、データ要求信号と、混雑情報記憶要求信号との何れか一方を通過させてハンドシェイクを仲介する。データ混雑情報間調停回路は、通過させた信号に対する処理完了まで、他方の信号を待機させるので、メモリ記憶制御回路を用いた混雑情報の更新と、経路計算回路を用いた転送分岐先の選択とを、排他的に行うことができる。このような混雑回避経路計算回路を用いることで、混雑情報記憶要求信号とデータ要求信号とが独立したタイミングで発生する非同期式論理回路において、非同期式分岐モジュールが転送データを出力する分岐先の変化が、データ転送ハンドシェイクの途中で起こることを防ぐことができる。本発明では、混雑情報を用いて、混雑箇所を回避するための経路設定計算を正しく行うことができるので、非同期式分岐モジュールが、目的地へ到達可能な分岐先を複数持つとき、混雑が発生していない分岐先を優先的に転送分岐先として選ぶことができる。その結果として、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる。
【０４１５】
本発明の非同期式論理回路における経路計算方法の最小構成は以下の通りである。まず、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する非同期式分岐モジュールに対するデータ要求信号と、前記非同期式分岐モジュールの分岐先から受け取る、混雑の有無を示す混雑情報の記憶を要求する混雑情報記憶要求信号との調停を行う。調停の結果、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させる。前記混雑情報記憶要求信号が通過したとき、非同期式分岐モジュールの分岐先から受け取った前記混雑情報を、前記分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理を行う。前記データ要求信号を通過させたとき、前記混雑情報及び前記非同期式分岐モジュールに入力される転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理を行う。
【０４１６】
本発明の非同期式論理回路における経路計算方法では、データ要求信号と、混雑情報記憶要求信号との調停を行い、何れか一方を通過させてハンドシェイクを仲介する。本発明では、通過させた信号に対する処理完了まで、他方の信号を待機させるので、混雑情報の更新処理と、転送分岐先の選択処理とを、排他的に行うことができる。このようにすることで、混雑情報記憶要求信号とデータ要求信号とが独立したタイミングで発生する非同期式論理回路において、非同期式分岐モジュールが転送データを出力する分岐先の変化が、データ転送ハンドシェイクの途中で起こることを防ぐことができる。本発明では、混雑情報を用いて、混雑箇所を回避するための経路設定計算を正しく行うことができるので、非同期式分岐モジュールが、目的地へ到達可能な分岐先を複数持つとき、混雑が発生していない分岐先を優先的に転送分岐先として選ぶことができる。その結果として、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる。
【０４１７】
本出願は２００９年６月２５日に出願された日本国特許出願２００９−１５１３５１号及び２００９年１１月３０日に出願された日本国特許出願２００９−２７１５１６号に基づく。本明細書中に日本国特許出願２００９−１５１３５１号及び日本国特許出願２００９−２７１５１６号の明細書、特許請求の範囲および図面全体を参照として取り込むものとする。
【符号の説明】
【０４１８】
１００：非同期式コア間接続回路
１０１：非同期式調停モジュール
１０２：非同期式分岐モジュール
１１１：混雑検知モジュール
１１２：混雑回避経路計算モジュール
６００：非同期式コア間接続回路
６０１、６０３：同期式マスタ側コア
６０２、６０４：同期式スレーブ側コア
６１１、６１３、６２３：非同期式分岐モジュール
６１２、６２２、６１４：非同期式調停モジュール
６３１：混雑回避経路計算モジュール
６３２、６４２：混雑検知モジュール
６８１〜６８３、６９１〜６９４：転送データ
７００：非同期式分岐回路
７１０、７１１：非対称型２入力Ｃ素子
７２０：ＯＲ素子
７５０：経路計算回路
８００：非対称型２入力Ｃ素子の論理回路構成
８０１：非対称型２入力Ｃ素子の素子記号と入出力端子名
８５０：非対称型２入力Ｃ素子の真理値表
９００：非同期式調停回路
９１０：相互排他回路
９２０、９２１：ハンドシェイク確認回路
９３０：ＯＲ素子
９４０：マルチプレクサ
９５０、９５１：対称型２入力Ｃ素子
１０００：相互排他回路の論理回路構成
１０１０：調停部分回路
１０２０：準安定状態フィルタ回路
１０５０：相互排他回路の真理値表
１１００：対称型２入力Ｃ素子の論理回路構成
１１０１：対称型２入力Ｃ素子の素子記号と入出力端子名
１１５０：対称型２入力Ｃ素子の真理値表
１２００：混雑検知回路
１２１０、１２１１：インバータ
１２２０、１２３０：対称型２入力Ｃ素子
１３００：混雑回避経路計算回路
１３１０：ハンドシェイク調停回路
１３２０、１３２１：マルチプレクサ
１３３０：ハンドシェイク部分調停回路
１３４０：混雑情報記憶ラッチ
１３５０：経路計算回路
１４００：ハンドシェイク部分調停回路
１４１０：相互排他回路
１４２０、１４２１：ハンドシェイク確認回路
１５００：集積回路
１５０１：同期式コア
１５０２：コア間接続回路
１６１０，１６１１，１６１２：フリップ・フロップ
１６２０，１６２１，１６２２：記憶制御回路
１８００：非同期式コア間接続回路
１８０１、１８０３：同期式マスタ側コア
１８０２、１８０４：同期式スレーブ側コア
１８１１、１８１３、１８２３：非同期式分岐回路
１８１２、１８２２、１８２４：非同期式調停回路
１８８１〜１８８３、１８９１〜１８９４：転送データ
２１００：データ列連続転送用非同期式調停回路
２１１０：相互排他回路
２１２０、２１２１：ハンドシェイク確認回路
２１３０、２１７０、２１７１：ＯＲ素子
２１４０：マルチプレクサ
２１５０、２１５１：対称型２入力Ｃ素子
２１６０、２１６１：非対称型３入力Ｃ素子
２２００：非対称型３入力Ｃ素子の論理回路構成
２２０１：非対称型３入力Ｃ素子の素子記号と入出力端子名
２２５０：非対称型３入力Ｃ素子の真理値表
２３００：混雑回避経路計算回路
２３１０：ハンドシェイク調停回路
２３２０、２３２１：マルチプレクサ
２３３０：ハンドシェイク部分調停回路
２３４０：混雑情報記憶ラッチ
２３５０：経路計算回路
２３６０：転送分岐先記憶ラッチ
２３６１：記憶制御回路
２３６２：データ・先頭信号・終端信号記憶ラッチ
２５００：混雑検知回路
２５１０、２５１１：インバータ
２５２０、２５３０：対称型２入力Ｃ素子
２５４０：ハンドシェイク分岐回路
２７００：混雑検知回路
２７０１：ＯＲ素子
２７４０：ハンドシェイク分岐回路
２７１０：混雑情報生成回路
２７２０、２７３０：対称型２入力Ｃ素子
２９００：混雑検知回路
２９０１：混雑処理要求送信先選択回路 
２９１０：混雑情報生成回路
２９３０：対称型２入力Ｃ素子
２９４０：ハンドシェイク分岐回路
３１００：ハンドシェイク分岐回路（３分岐）
３１１０、３１１１，３１１２：非対称型２入力Ｃ素子
３１２０：ＯＲ素子
【図１】
0005435031.tif 000002
【図２】
0005435031.tif 000003
【図３】
0005435031.tif 000004
【図４】
0005435031.tif 000005
【図５】
0005435031.tif 000006
【図６】
0005435031.tif 000007
【図７】
0005435031.tif 000008
【図８】
0005435031.tif 000009
【図９】
0005435031.tif 000010
【図１０】
0005435031.tif 000011
【図１１】
0005435031.tif 000012
【図１２】
0005435031.tif 000013
【図１３】
0005435031.tif 000014
【図１４】
0005435031.tif 000015
【図１５】
0005435031.tif 000016
【図１６】
0005435031.tif 000017
【図１７】
0005435031.tif 000018
【図１８】
0005435031.tif 000019
【図１９】
0005435031.tif 000020
【図２０】
0005435031.tif 000021
【図２１】
0005435031.tif 000022
【図２２】
0005435031.tif 000023
【図２３】
0005435031.tif 000024
【図２４】
0005435031.tif 000025
【図２５】
0005435031.tif 000026
【図２６】
0005435031.tif 000027
【図２７】
0005435031.tif 000028
【図２８】
0005435031.tif 000029
【図２９】
0005435031.tif 000030
【図３０】
0005435031.tif 000031
【図３１】
0005435031.tif 000032