JP5435031B2 - 非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法 - Google Patents
非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法 Download PDFInfo
- Publication number
- JP5435031B2 JP5435031B2 JP2011519743A JP2011519743A JP5435031B2 JP 5435031 B2 JP5435031 B2 JP 5435031B2 JP 2011519743 A JP2011519743 A JP 2011519743A JP 2011519743 A JP2011519743 A JP 2011519743A JP 5435031 B2 JP5435031 B2 JP 5435031B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- congestion
- module
- asynchronous
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
Description
本発明は、非同期式論理回路、半導体回路及び、経路計算方法に関し、更に詳しくは、要求信号と応答信号とを所定の手順で通信するハンドシェイクを用いたデータ転送に関する。
近年、ディジタル集積回路上に実装される回路素子や配線の微細化の進展に伴い、集積回路は、コアと呼ばれるプロセッサやメモリなどの機能ブロックを多数持つようになってきている。図15は、多数のコアを有する集積回路を示している。図15では、集積回路1500は、コア0からコアn−1までのn個のコア1501を有している。コア1501間の通信には、コア間接続回路1502を用いる。コア間接続回路1502は、コア1501間のデータ通信を行うバスなどの回路である。
コア間通信回路は、クロック信号の立上り又は立下りの遷移(クロック・エッジ)で、内部の素子を駆動する同期式論理回路として設計されてきた。しかし、設計容易性や消費電力、電磁放射の低減といった観点から、コア間通信回路を非同期式論理回路として構成する大域非同期・局所同期(GALS:Globally Asynchronous, Locally Synchronous)方式を用いた集積回路設計が注目されるようになっている。ここで、非同期式論理回路とは、クロック信号の代わりにハンドシェイク信号を用い、回路内の記憶素子を制御する論理回路である。
非同期式論理回路でも、同期式論理回路と同様に、フリップ・フロップの間に組み合わせ回路を配置する。しかし、フリップ・フロップの記憶を制御する信号が、同期式論理回路とは異なる。すなわち、同期式論理回路では、フリップ・フロップへの記憶制御信号として外部からのクロック信号が用いられる。そして、全てのフリップ・フロップに対して信号が同着することを前提に、フリップ・フロップと組み合わせ回路とから成る部分が設計される。また、全てのフリップ・フロップに対して信号が同着するようにクロック信号分配回路が設計される。これに対し、非同期式論理回路では、フリップ・フロップへの記憶制御信号を生成する記憶制御回路が用いられる。記憶制御回路間で一対のハンドシェイク信号(要求信号と応答信号)を通信することで、フリップ・フロップの記憶タイミングを制御する。このハンドシェイク信号の通信制御手順を、ハンドシェイク・プロトコルと呼ぶ。
図16は、非同期式論理回路の典型的な構成例を示している。この非同期式論理回路は、3つのフリップ・フロップ(FF)1610〜1612と、各フリップ・フロップに対応した3つの記憶制御回路(LC)1620〜1622とを含む。記憶制御回路は、次の段の記憶制御回路に要求信号(R)を送り、前段の記憶制御回路に対して応答信号(A)を送る。また、記憶制御回路は、対応するフリップ・フロップに、記憶制御信号(L)を送る。フリップ・フロップは、記憶制御信号Lに応答してデータを記憶する。非同期式論理回路では、フリップ・フロップに代表される記憶回路と、記憶制御回路とは、一組のレジスタとして扱われる。
図17は、フリップ・フロップFF1(1611)及び記憶制御回路LC1(1621)の動作波形例を示している。フリップ・フロップFF1及び記憶制御回路LC1は、以下のように動作する。まず、前段のフリップ・フロップFF0がデータd0を記憶し(D0=d0)、データd0をフリップ・フロップFF1に出力する。フリップ・フロップFF0に対応した記憶制御回路LC0は、フリップ・フロップFF0がデータd0を記憶した後、次段の記憶制御回路LC1に要求信号R0=1を出力する。
記憶制御回路LC1は、要求信号R0=1を受け取ることで、フリップ・フロップFF1にデータが到着していることを検知する。記憶制御回路LC1は、記憶制御信号L1=1を生成する。記憶制御回路LC1は、記憶制御信号L1をL1=1に遷移させることで、フリップ・フロップFF1にデータd0を記憶させる(D1=d0)。記憶制御回路LC1は、フリップ・フロップFF1がデータd0を記憶すると、前段の記憶制御回路LC0に応答信号A0=1を出力し、データ記憶完了を通知する。前段の記憶制御回路LC0は、データ記憶完了の通知(A0=1)を受けると、記憶制御回路LC1に出力する要求信号R0をR0=0に変化させる(要求信号を取り下げる)。その後、フリップ・フロップFF1に対し、次のデータに対する準備を要求する。
記憶制御回路LC1は、フリップ・フロップFF1がデータd0を記憶すると、次段の記憶制御回路LC2に要求信号R1=1を出力し、フリップ・フロップFF2でのデータ記憶を要求する。次段の記憶制御回路LC2は、記憶制御回路LC1から要求信号R1=1を受け取ると、記憶制御信号L2=1を生成し、フリップ・フロップFF2にデータd0を記憶させる。その後、記憶制御回路LC2は、応答信号A1=1を、前段の記憶制御回路LC1に出力する。記憶制御回路LC1は、応答信号A1=1を受け取り、フリップ・フロップFF2でのデータ記憶を検知する。
記憶制御回路LC1は、前段の記憶制御回路LC0から要求信号R0=0を受け取り、かつ、次段の記憶制御回路LC2から応答信号A1=1を受け取ると、記憶制御信号L1をL1=0に遷移させる。フリップ・フロップFF1は、記憶制御信号L1がL1=0となることで、次のデータに対する準備状態になる。記憶制御回路LC1は、フリップ・フロップFF1に次のデータに対する準備を行わせると、フリップ・フロップFF1の準備完了を示す応答信号A0=0を、前段の記憶制御回路LC0に送る。また、記憶制御回路LC1は、次段の記憶制御回路LC2に、次のデータに対する準備を要求する要求信号R1=0を送る。
前段の記憶制御回路LC0は、応答信号A0=0を受け取った後に、フリップ・フロップFF0に次のデータd1を記憶させる。次段の記憶制御回路LC2は、要求信号R1=0を受け取ると、フリップ・フロップFF2に記憶制御信号L2=0を送り、次のデータに対する準備をさせる。記憶制御回路LC0〜LC2は、データd1に対しても、上記と同様手動作を行い、フリップ・フロップFF1、FF2に、データd1を転送する。なお、図17の波形図では、各信号が周期的に遷移しているが、非同期式論理回路は、上記した手順における各タイミングの何れで遅れが生じても、上記手順に従うように動作する。
非同期式のコア間通信回路を用いる場合、異なる機能ブロックの間でクロック同期をとる必要がないため、クロック分配範囲を狭い範囲に限定できるという効果がある。また、個々の機能ブロックのクロック周波数を、自由、かつ、動的に設定することが可能になるため、クロック周波数を、機能ブロックが所定の動作を実現する必要最低限の周波数まで遅くすることができる。クロック周波数を低くすると、回路遅延を大きくすることができ、電源電圧を下げることも可能になる。消費電力は、電源電圧の2乗とクロック周波数との積に比例するため、機能ブロック間のコア間通信回路を非同期式とすることで、集積回
路の消費電力を大きく削減することが可能になる。
路の消費電力を大きく削減することが可能になる。
更に、コア間通信回路を非同期式とする場合、同期式コアの駆動タイミングを時間的に分散できるため、電力と電磁波照射とを低減することも可能になる。すなわち、同期式コアは、クロック信号の立上り又は立下りの遷移(クロック・エッジ)で駆動されるため、クロック・エッジの直後に大きな電流変化がある。コア間通信回路に非同期式論理回路を用いると、コアごとに駆動タイミングが異なるため、集積回路全体での電流を平準化できる。その結果、最大時の電力と、電流変化とで誘導される電磁放射が低減される。
Jens Sparso、Steve Furber著「Principles of Asynchronous Circuit Design」、Kluwer Academic Publishers、2001年12月31日、pp.9-11、pp.76-79
コア間通信回路を用いた集積回路の設計では、データ通信を要求する側のコアをマスタと呼び、マスタの要求に呼応して動作するコアをスレーブと呼ぶ。通信要求を行うマスタが複数存在する場合、コア間通信回路は、当該マスタ間で調停を行って優先度付けを行い、その優先度に従って順番に通信要求を処理する。多数のコアを接続するコア間接続回路は、調停の処理を複数の箇所で行うように構成されている。通信経路上の最初の調停箇所で優先権を与えられたマスタが、当該調停箇所を越えて経路上の次の調停箇所までデータを送る。このようにして経路上の各調停箇所で通信要求と調停とデータ転送とを繰り返して、目的のスレーブまで転送を行うように構成されている。
また、コア間接続回路の通信路のネットワーク形状(トポロジ)は、マスタとスレーブとの対の一部乃至全部において通信経路が複数存在するように構成されることがある。マスタ・スレーブ対で、複数の通信経路が存在するようなコア間接続回路は、マスタがあらかじめ経路を決定することで1つの経路を選択する構成や、転送経路上の分岐箇所で逐一目的地方法を選ぶ構成をとる。
マスタからスレーブまでの間に複数の転送経路が混在する非同期式のコア間接続回路において、複数対のマスタとスレーブとがデータ転送を行う際に、転送経路上に調停箇所を起点とする共通箇所が存在する。そのうち一対のマスタ・スレーブ間のデータ転送が調停箇所を占有すると、当該調停箇所を通過する他のマスタ・スレーブ間のデータ転送が長時間待たされることになる。待機させられているデータ転送のマスタからスレーブまでの間に、混雑している当該調停箇所を回避する転送経路が存在するのであれば、混雑の有無を考慮しないデータ転送経路設定を行うことで、当該コア間接続経路の通信容量が無駄にされることになる。以下、この問題点について説明する。
図18は、マスタからスレーブまでの間に複数の転送経路が混在するコア間接続回路を示している。図18には、非同期式コア間接続回路1800が接続するコア(同期式マスタ側コア、スレーブ側コア)として、マスタA1801、スレーブA1802、マスタB1803、及び、スレーブB1804の4つが示されている。非同期式コア間接続回路1800は、非同期式分岐回路1811、1813、1823と、非同期式調停回路1812、1822、1824とを含む。非同期式分岐回路1811、1813、1823、及び、非同期式調停回路1812、1822、1824には、非特許文献1に記載されているものが用いられる。また、マスタA1801、スレーブA1802、マスタB1803、スレーブB1804、非同期式分岐回路1811、1813、1823、及び、非同期式調停回路1812、1822、1824の間のデータ転送は、図15に示す非同期式論理回路が用いられる。
マスタA1801は、非同期式コア間接続回路1800に対して、スレーブA1802へのデータ列1891〜1894(データm〜データm+3)の転送要求を行うとする。このとき、マスタB1803は、非同期式コア間接続回路1800に対して、スレーブB1804へのデータ列1881〜1883(データn〜データn+2)の転送要求を行っている。ここで、当該データ列に先行して、多数のデータ列の転送が完了していると共に、当該データ列に後続する多数のデータ列が、マスタB1803にて転送待機中であるとする。
非同期式コア間接続回路1800には、マスタA1801が、スレーブA1802へデータ1891〜1894を転送する際の経路は2つある。1つは、マスタA1801−非同期式分岐回路1811−非同期式調停回路1812−非同期式分岐回路1813−非同期式調停回路1824−スレーブA1802という経路である。もう1つは、マスタA1801−非同期式分岐回路1811−非同期式調停回路1822−非同期式分岐回路1823−非同期式調停回路1824−スレーブA1802という経路との2つがある。つまり、マスタA1801からスレーブA1802までの間に、利用可能な経路が2つある。
非同期式分岐回路1811は、データ転送に際して、2つのデータ出力端子の何れか一方を選択して出力する。非同期式分岐回路1811は、2つのデータ出力端子の何れを選択してもよい。データが、マスタA1801から転送要求を受けたデータの目的地であるスレーブA1802まで到達可能であるからである。ここでは、非同期式分岐回路1811は、データ1891の出力先として、非同期式調停回路1812方面の出力端子を選択したものとする。
非同期式分岐回路1811と非同期式調停回路1812との間にある記憶回路は、データ1891、データ1892を順次、非同期式調停回路1812に向けて転送する。しかし、非同期式調停回路1812は、マスタB1803からスレーブB1804へ、先行データ、データ1881〜1883、後続データのデータ転送を排他的に行っている。このため、非同期式調停回路1812は、データ1891の転送を保留して待たせておくように動作する。
非同期式分岐回路1811が、非同期式調停回路1812ではなく、非同期式調停回路1822方面のデータ出力端子を選択していたとすると、非同期式調停回路1822は、他のデータ転送を行っていない。このため、データ1891をすぐに非同期式分岐回路1823へ出力することが可能である。また、後続データ1892〜1894についても、逐次転送可能である。しかし、非同期式分岐回路1811でのデータ出力端子が非同期式調停回路1812方面であるので、データ転送は待機させられる。このように、非同期式分岐回路1811でのデータ出力端子が非同期式調停回路1812方面であることで、非同期式調停回路1822を経由するデータ転送経路の通信容量が無駄になる。
非同期式論理回路で用いられるハンドシェイクは、データ送信側レジスタからデータ受信側レジスタへのデータ記憶の要求を伝送する信号と、データ受信側レジスタからデータ送信側レジスタへのデータ記憶完了の応答を伝送する信号のみで構成されている。非同期式論理回路では、混雑情報を示す信号は用いられておらず、混雑の検知と混雑情報の発生とを行うことはできない。従って、非同期式論理回路にて、混雑箇所を回避したデータ転送を行うことはできない。
本発明は、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法を提供することを目的とする。
上記目的を達成するために、本発明に係る非同期式論理回路は、
データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する非同期式分岐モジュールと、
前記転送データの転送経路を合流し、複数の合流元の少なくとも1つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する非同期式調停モジュールと、
前記非同期式調停モジュールに対応して配置され、該非同期式調停モジュールから、何れの合流元からの転送データを転送中であるかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する混雑検知モジュールと、
前記非同期式分岐モジュールに対応して配置され、該非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから前記混雑情報を受け取り、前記非同期式分岐モジュールの複数の分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理と、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理とを排他的に行う混雑回避経路計算モジュールと、を備え、
前記混雑検知モジュールは、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある混雑回避経路計算モジュールに出力する要求出力モジュールを含み、
前記混雑検知モジュールは、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する応答待ち合わせモジュール
を更に含む
ことを特徴とする。
データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する非同期式分岐モジュールと、
前記転送データの転送経路を合流し、複数の合流元の少なくとも1つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する非同期式調停モジュールと、
前記非同期式調停モジュールに対応して配置され、該非同期式調停モジュールから、何れの合流元からの転送データを転送中であるかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する混雑検知モジュールと、
前記非同期式分岐モジュールに対応して配置され、該非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから前記混雑情報を受け取り、前記非同期式分岐モジュールの複数の分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理と、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理とを排他的に行う混雑回避経路計算モジュールと、を備え、
前記混雑検知モジュールは、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある混雑回避経路計算モジュールに出力する要求出力モジュールを含み、
前記混雑検知モジュールは、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する応答待ち合わせモジュール
を更に含む
ことを特徴とする。
本発明に係る半導体回路は、本発明の非同期式論理回路を備えることを特徴とする。
本発明に係る非同期式論理回路における経路計算方法は、
非同期式分岐モジュールが、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する工程と、
非同期式調停モジュールが、前記転送データの転送経路を合流し、複数の合流元の少なくとも1つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する工程と、
混雑検知モジュールが、前記非同期式調停モジュールから、何れの合流元からの転送データを転送中であるのかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する工程と、
混雑回避経路計算モジュールが、前記非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから混雑の有無を示す混雑情報を受け取り、前記非同期式分岐モジュールの分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理を行う工程と、
前記混雑回避経路計算モジュールが、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理を行う工程と、を有し、
前記混雑検知モジュールが、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある前記混雑回避経路計算モジュールに出力する工程と、
前記混雑検知モジュールが、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する工程と、を更に含む、
ことを特徴とする。
非同期式分岐モジュールが、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する工程と、
非同期式調停モジュールが、前記転送データの転送経路を合流し、複数の合流元の少なくとも1つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する工程と、
混雑検知モジュールが、前記非同期式調停モジュールから、何れの合流元からの転送データを転送中であるのかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する工程と、
混雑回避経路計算モジュールが、前記非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから混雑の有無を示す混雑情報を受け取り、前記非同期式分岐モジュールの分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理を行う工程と、
前記混雑回避経路計算モジュールが、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理を行う工程と、を有し、
前記混雑検知モジュールが、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある前記混雑回避経路計算モジュールに出力する工程と、
前記混雑検知モジュールが、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する工程と、を更に含む、
ことを特徴とする。
本発明の非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法によれば、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる。
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の第1実施形態の非同期式論理回路を示している。非同期式論理回路(非同期式コア間接続回路)100は、非同期式調停モジュール101、非同期式分岐モジュール102、混雑検知モジュール111、及び、混雑回避経路計算モジュール112を有している。非同期式コア間接続回路100は、要求信号と応答信号とを所定の手順で通信するハンドシェイクを用いて、データ転送を行う。なお、図1に示す各回路の接続形態は例示のものであり、回路間の接続は特に限定されない。
非同期式調停モジュール101は、データ転送経路を合流させるモジュールである。非同期式調停モジュール101は、調停を行い、データ転送を要求する合流元の一方を選択して、選択した合流元と合流先との間で、所定のハンドシェイクを行う共に、データ転送を行う。非同期式調停モジュール101は、複数の合流元の少なくとも1つから入力された転送データを、ハンドシェイク・プロトコルの手順に矛盾することなく、所定の手順で逐次的に出力する。
非同期式分岐モジュール102は、データ転送経路を分岐させるモジュールである。非同期式分岐モジュール102は、分岐元と分岐先との間で、所定のハンドシェイク・プロトコルに定められる手順に従うようにハンドシェイクを行いつつ、目的地方面の分岐先へデータ転送を行う。なお、図1では、非同期式調停モジュール101の合流元、及び、非同期式分岐モジュール102の分岐先をそれぞれ2つとしているが、合流元及び分岐先の数は、2つには限定されない。非同期式調停モジュール101の合流元、及び、非同期式分岐モジュール102の分岐先の数は、2以上の任意の数でよい。
混雑検知モジュール111は、非同期式調停モジュール101に対応して配置されている。混雑検知モジュール111は、非同期式調停モジュール101における調停結果を参照して、非同期式調停モジュールの合流元に対し、混雑の有無を示す混雑情報を生成する。混雑検知モジュール111は、非同期式調停モジュール101の合流元に、生成した混雑情報信号を送る。混雑検知モジュール111は、調停結果に応じて、合流先へのデータ転送を行っている合流元に対しては、「混雑なし」を示す混雑情報信号を送り、合流先へのデータ転送を行っていない合流元に対しては「混雑あり」を示す混雑情報信号を送る。
混雑回避経路計算モジュール112は、非同期式分岐モジュール102に対応して配置されている。混雑回避経路計算モジュール112は、非同期式分岐モジュール102の分岐先にある混雑検知モジュール111から、分岐先での混雑情報を受け取る。混雑回避経路計算モジュール112は、非同期式分岐モジュール102の分岐先について混雑情報を記憶する混雑情報記憶メモリ(図示せず)を有している。混雑回避経路計算モジュール112は、分岐先からの混雑情報を受け取ると、該当する分岐先の混雑情報を更新する。
また、混雑回避経路計算モジュール112は、混雑情報と、転送データの目的地情報とに基づいて、非同期式分岐モジュール102の転送分岐先を決定する。混雑回避経路計算モジュール112は、非同期式分岐モジュール102に対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる。混雑回避経路計算モジュール112は、混雑情報を記憶する処理と、転送分岐先を選択させる処理とを、排他的に行う。
非同期式調停モジュール101は、データ入力端子、データ要求入力端子、及び、データ応答出力端子の組を2組有する。また、非同期式調停モジュール101は、データ出力端子、データ要求出力端子、及び、データ応答入力端子の組を1組有する。更に、非同期式調停モジュール101は、調停結果出力端子を有する。
非同期式調停モジュール101は、一方又は双方のデータ要求入力端子から、データ要求信号を受け取る。非同期式調停モジュール101は、受け取ったデータ要求信号のうちの1つを選択し、データ要求出力端子に出力する。非同期式調停モジュール101は、選択結果を調停結果として調停結果出力端子から出力すると共に、選択されなかった側のデータ要求入力端子からのデータ要求信号を保留する。
非同期式調停モジュール101は、出力したデータ要求信号に対するデータ応答信号をデータ応答入力端子から受け取る。非同期式調停モジュール101は、データ応答信号が入力されると、データ要求信号の出力時に選択したデータ要求入力端子と同じ組のデータ応答出力端子から、データ応答信号を出力する。つまり、非同期式調停モジュール101は、データ転送中の合流元に対して、データ応答信号を出力する。
非同期式分岐モジュール102は、データ入力端子、データ要求入力端子、及び、データ応答出力端子の組を1組有する。また、非同期式分岐モジュール102は、データ出力端子、データ要求出力端子、及び、データ応答入力端子の組を2組有する。更に、非同期式分岐モジュール102は、データ出力端子のうちの1つを指定する旨の選択信号を入力する選択信号入力端子を有する。
非同期式分岐モジュール102は、データ入力端子及びデータ要求入力端子から、転送データ及びデータ要求信号を受け取る。また、非同期式分岐モジュール102は、選択信号入力端子から、混雑回避経路計算モジュール112にて生成された選択信号を受け取る。非同期式分岐モジュール102は、選択信号に従って、指定されたデータ出力端子からデータを出力する。また、非同期式分岐モジュール102は、データを出力するデータ出力端子と同じ組のデータ要求出力端子から、データ要求信号を出力する。
非同期式分岐モジュール102は、データ出力後、データ要求信号を出力したデータ要求出力端子と同じ組のデータ応答入力端子から、データ要求信号に対するデータ応答信号を受け取る。つまり、非同期式分岐モジュール102は、データ転送中の分岐先から、データ応答信号を受け取る。非同期式分岐モジュール102は、分岐先からデータ応答信号を受け取ると、データ応答出力端子から、分岐元に対してデータ応答信号を出力する。
混雑検知モジュール111は、データ入力端子、データ要求入力端子、及び、データ応答出力端子の組を1組有する。また、混雑検知モジュール111は、データ出力端子、データ要求出力端子、及び、データ応答入力端子の組を1組有する。更に、混雑検知モジュール111は、調停結果入力端子と、非同期式調停モジュール101のデータ入力端子と同数の組の混雑情報出力端子、混雑処理要求出力端子、及び、混雑処理応答入力端子とを有する。混雑情報出力端子、混雑処理要求出力端子、及び、混雑処理応答入力端子の各組は、非同期式調停モジュールのデータ入力端子、データ要求有力端子、及び、データ応答出力端子の各組と1対1に対応づけられる。
混雑検知モジュール111は、データ信号入力端子及びデータ要求入力端子を介して、非同期式調停モジュール101から、転送データとデータ要求信号とを入力する。混雑検知モジュール111は、データ出力端子及びデータ要求出力端子から、転送データ及びデータ要求信号をそれぞれ出力する。また、混雑検知モジュール111は、調停結果入力端子を介して、非同期式調停モジュール101から調停結果を入力する。混雑検知モジュール111は、入力された調停結果に基づいて、混雑情報信号を生成する。
混雑検知モジュール111は、各組の混雑情報出力端子及び混雑処理要求出力端子から、混雑情報信号及び混雑処理要求信号(混雑情報の記憶要求信号)をそれぞれ出力する。つまり、混雑検知モジュール111は、非同期式調停モジュール101の合流元のそれぞれに、混雑情報及び混雑処理要求信号を出力する。混雑検知モジュール111は、データ応答信号と、混雑処理要求信号に対する混雑処理応答信号(混雑情報記憶応答信号)とを待ち合わせる。混雑検知モジュール111は、データ応答入力端子に合流先からのデータ応答信号が入力され、各組の混雑処理応答入力端子に合流元からの混雑処理応答信号が入力されると、データ応答出力端子から、非同期式調停モジュール101にデータ応答信号を出力する。
混雑回避経路計算モジュール112は、データ入力端子、データ要求入力端子、及び、データ応答出力端子の組を1組有する。また、混雑回避計算モジュール112は、データ出力端子、データ要求出力端子、及び、データ応答入力端子の組を1組有する。更に、混雑回避経路計算モジュール112は、選択信号出力端子と、非同期式分岐モジュールのデータ出力端子と同数の組の混雑情報入力端子、混雑処理要求入力端子、及び、混雑処理応答出力端子を有する。混雑情報入力端子、混雑処理要求入力端子、及び、混雑処理応答出力端子の各組は、非同期式分岐モジュール102のデータ出力端子、データ要求出力端子、及び、データ応答入力端子の各組に1対1で対応付けられる。
混雑回避経路計算モジュール112は、データ要求信号と混雑処理要求信号との到着を待機する。混雑回避経路計算モジュール112は、データ要求信号の入力がないときに、1以上の混雑処理要求入力端子から混雑処理要求信号が入力されると、混雑処理要求信号の調停を行い、そのうちの1つを所定の方法で選択する。混雑回避経路計算モジュール112は、選択した混雑処理要求入力端子と同じ組の混雑情報入力端子を介して、混雑情報信号を受け取る。つまり、混雑回避経路計算モジュール112は、混雑情報記憶要求信号を出力した分岐先から、当該分岐先の混雑情報信号を受け取る。混雑回避経路計算モジュール112は、混雑情報記憶メモリに記憶している当該分岐先の混雑情報を、受け取った混雑情報信号で更新する。その後、混雑回避経路計算モジュール112は、選択した混雑処理要求入力端子と同じ組の混雑処理応答出力端子から、混雑処理応答信号を出力する。
混雑回避経路計算モジュール112は、データ要求入力端子からデータ要求信号が入力されると、データ入力端子から入力する転送データから、目的地を割り出す。混雑回避経路計算モジュール112は、目的地情報から、非同期式分岐モジュール102が持つ複数の分岐先のうち、目的地のコアに到達可能な経路上にある分岐先を、選択可能分岐先として求める。混雑回避経路計算モジュール112は、選択可能分岐先の混雑情報を参照し、選択可能分岐先の中から、混雑ありを示していない分岐先を、転送分岐先として優先的に選択する。
混雑回避経路計算モジュール112は、転送分岐先の選択後、非同期式分岐モジュール102に対し、選択信号出力端子から選択した転送分岐先を示す選択信号を出力する。また、データ出力端子及びデータ要求出力端子から、データ入力端子及びデータ要求入力端子から入力したデータ及びデータ要求信号をそれぞれ出力する。非同期式分岐モジュール102は、混雑回避経路計算モジュール112が出力した選択信号に従って、データ及びデータ要求信号の出力分岐先を選択する。混雑回避経路計算モジュール112は、データ応答入力端子から、非同期式分岐モジュール102が出力するデータ応答信号を受け取る。混雑回避経路計算モジュール112は、データ応答信号を受け取ると、データ応答出力端子から、データ応答信号を出力する。
以下、非同期式コア間接続回路の動作について説明する。非同期式調停モジュール101、非同期式分岐モジュール102、混雑検知モジュール111、及び、混雑回避経路計算モジュール112は、それぞれ並列に動作する。各モジュールにて、データ要求信号、データ応答信号、混雑処理要求信号、及び、混雑処理応答信号の状態が、それぞれデータ要求、データ応答、混雑処理要求、及び、混雑処理応答がない状態(信号なし)を初期状態とする。非同期式調停モジュール101の2つの合流元に番号を付け、一方を合流元0番とし、他方を合流元1番とする。また、非同期式分岐モジュール102の2つの分岐先に番号を付け、一方を分岐先0番とし、他方を分岐先1番とする。
図2は、非同期式調停モジュール101の動作手順を示している。はじめ、非同期式調停モジュール101は、初期状態にある。非同期式調停モジュール101は、データ要求入力端子に、データ要求入力信号が入力されたか否かを判断する(ステップA1)。非同期式調停モジュール101は、データ要求入力信号が入力されていないときは、繰り返しステップA1を実行し、データ要求入力信号が入力されるまで待機する。
非同期式調停モジュール101は、データ要求信号が入力されると、データ要求信号が入力されたデータ要求入力端子が、合流元0番側のデータ要求入力端子であるか否かを判断する(ステップA2)。非同期式調停モジュール101は、データ要求信号が入力されたデータ要求に入力端子が、合流元0番側のデータ要求入力端子のときは、合流元0番のデータ入力端子から入力する転送データを、データ出力端子から合流先に出力する(ステップA3)。また、非同期式調停モジュール101は、調停結果出力端子から、合流元0番からの転送データがデータ出力端子から出力中であることを示す調停結果信号を、混雑検知モジュール111に出力する(ステップA4)。
非同期式調停モジュール101は、ステップA2でデータ要求信号が入力されたデータ要求入力端子が、合流元1番のデータ要求入力端子のときは、合流元1番のデータ入力端子から入力する転送データを、データ出力端子から合流先に出力する(ステップA5)。また、非同期式調停モジュール101は、調停結果出力端子から、合流元1番からの転送データがデータ出力端子から出力中であることを示す調停結果信号を、混雑検知モジュール111に出力する(ステップA6)。
非同期式調停モジュール101は、合流元0番及び合流元1番の双方からデータ要求信号が入力されたときは、何れか一方を選択する。非同期式調停モジュール101は、2つのデータ要求信号のうち、例えば先着したデータ要求信号を選択する。非同期式調停モジュール101は、合流元0番からのデータ要求信号を選択したときは、ステップA2からステップA3へ進み、合流元0番からの転送データを出力する。一方、非同期式調停モジュール101は、合流元1番からのデータ要求信号を選択したときは、ステップA2からステップA5へ進み、合流元1番からの転送データを出力する。非同期式調停モジュール101は、選択しなかった側のデータ要求信号については、選択した側のデータ転送が完了するまで保留する。
非同期式調停モジュール101は、ステップA4又はA6で調停結果を出力した後、データ要求出力端子から、混雑検知モジュール111にデータ要求信号を出力する(ステップA7)。非同期式調停モジュール101は、データ要求信号の出力後、データ応答入力端子にデータ応答信号が入力されたか否かを判断する(ステップA8)。非同期式調停モジュール101は、データ応答信号が入力されてないときは、ステップA8を繰り返し行い、データ応答信号が入力されるまで待機する。
非同期式調停モジュール101は、データ応答信号が入力されると、ステップA4又はA6で出力した調停結果信号が、合流元0番からの転送データがデータ出力端子から出力中であることを示しているか否かを判断する(ステップA9)。非同期式調停モジュール101は、調停結果信号が、合流元0番からの転送データがデータ出力端子から出力中であることを示すときは、合流元0番に対応したデータ応答出力端子から、データ応答信号を出力する(ステップA10)。非同期式調停モジュール101は、調停結果信号が、合流元1番からの転送データがデータ出力端子から出力中であることを示すときは、合流元1番に対応したデータ応答出力端子から、データ応答信号を出力する(ステップA11)。非同期式調停モジュール101は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップA1(初期状態)に戻る。
図3は、混雑検知モジュール111の動作手順を示している。はじめ、混雑検知モジュール111は、初期状態にある。混雑検知モジュール111は、データ要求入力端子に、非同期式調停モジュール101からデータ要求信号が入力されたか否かを判断する(ステップB1)。混雑検知モジュール111は、データ要求信号の入力がないときは、ステップB1を繰り返し実行し、データ要求信号が入力されるまで待機する。
混雑検知モジュール111は、データ要求信号が入力されると、非同期式調停モジュール101から調停結果入力端子を介して入力する調停結果信号に基づいて、各調停対象に対する混雑情報信号を生成する(ステップB2)。ここで、各調停対象とは、非同期式調停モジュール101の各合流元である。混雑検知モジュール111は、例えば、調停結果信号が合流元0番のデータがデータ出力端子から出力中であることを示しているときは、合流元0番に対して「混雑なし」を示す混雑情報信号を生成し、合流元1番に対して「混雑あり」を示す混雑情報信号を生成する。これとは逆に、調停結果信号が合流元1番のデータがデータ出力端子から出力中であることを示しているときは、合流元0番に対して「混雑あり」を示す混雑情報信号を生成し、合流元1番に対して「混雑なし」を示す混雑情報信号を生成する。
混雑検知モジュール111は、各調停対象に、生成した混雑情報信号と、混雑処理要求信号とを出力する(ステップB3)。混雑検知モジュール111は、ステップB3では、合流元0番に対応した混雑情報出力端子及び混雑処理要求出力端子から、合流元0番に対応する混雑情報信号と混雑処理要求信号とをそれぞれ出力する。また、混雑検知モジュール111は、合流元1番に対応した混雑情報出力端子及び混雑処理要求出力端子から、合流元1番に対応する混雑情報信号と混雑処理要求信号とをそれぞれ出力する。
混雑検知モジュール111は、非同期式調停モジュール101からデータ入力端子を介して入力したデータと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する(ステップB4)。混雑検知モジュール111は、非同期式調停モジュール101が、ステップA3で合流元0番からの転送データを出力しているときは、データ出力端子から、合流元0番からの転送データを出力する。また、混雑検知モジュール111は、非同期式調停モジュール101が、ステップA5で合流元1番からの転送データを出力しているときは、データ出力端子から、合流元1番からの転送データを出力する。
混雑検知モジュール111は、ステップB4で出力したデータ要求信号に対するデータ応答信号、及び、ステップB3で各合流元に出力した混雑処理要求信号に対する混雑処理応答信号を待ち合わせる(ステップB5)。混雑検知モジュール111は、各合流元に対応する混雑処理応答入力端子に、ステップB3で出力した混雑処理要求信号に対する混雑処理応答信号が入力されたか否かを判断する。また、混雑検知モジュール111は、データ応答入力端子に、ステップB4出力したデータ要求信号に対するデータ応答信号が入力されたか否かを判断する。混雑検知モジュール111は、全ての合流元から混雑処理応答信号を入力していない、又は、データ応答信号を入力していないと判断しないときは、ステップB5を繰り返し実行する。これにより、混雑処理応答信号及びデータ応答信号が入力されるまで待機する。
混雑検知モジュール111は、全ての合流元から混雑処理応答信号が入力され、かつ、データ応答信号が入力されると、データ応答出力端子から、非同期式調停モジュール101にデータ応答信号を出力する(ステップB6)。その後、混雑検知モジュール111は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップB1(初期状態)に戻る。
図4は、混雑回避経路計算モジュール112の動作手順を示している。はじめ、混雑回避経路計算モジュール112は、初期状態にある。混雑回避経路計算モジュール112は、データ要求入力端子に、データ要求信号が入力されたか否かを判断する(ステップC1)。混雑回避経路計算モジュール112は、データ要求信号の入力がないときは、混雑処理要求入力端子に、1以上の混雑処理要求信号が入力されたか否かを判断する(ステップC2)。混雑回避経路計算モジュール112は、混雑処理要求信号が入力されていないときは、ステップC1に戻り、データ要求信号又は混雑処理要求信号が入力されるまで待機する。
混雑回避経路計算モジュール112は、データ要求信号の入力がないときに、1以上の混雑処理要求入力端子に混雑処理要求信号が入力されると、そのうちの1つを選択する(ステップC3)。混雑回避経路計算モジュール112は、混雑情報記憶メモリに記憶している混雑情報のうち、混雑処理要求信号が入力された混雑処理要求入力端子に対応する分岐先の混雑情報を更新する(ステップC4)。更新する値は、当該混雑処理要求入力端子と同じ組の混雑情報入力端子に入力された混雑情報信号の値である。混雑回避経路計算モジュール112は、混雑情報の更新後、当該混雑処理要求入力端子と同じ組の混雑処理応答出力端子から、混雑処理応答信号を出力する(ステップC5)。その後、混雑回避経路計算モジュール112は、入力する混雑処理要求信号の取り下げ、及び、出力する混雑処理応答信号の取り下げを経て、ステップC1(初期状態)に戻る。
混雑回避経路計算モジュール112は、ステップC1でデータ要求信号の入力があると判断すると、データ入力端子に入力された転送データから目的地情報を抽出する。それに基づき、接続する非同期式分岐モジュール102の分岐先のそれぞれについて、目的地到達可能性の有無を判断する。混雑回避経路計算モジュール112は、目的地到達可能性がある分岐先を、選択可能分岐先として列挙する(ステップC6)。混雑回避経路計算モジュール112は、選択可能分岐先が1つであるか否かを判断する(ステップC7)。つまり、混雑回避経路計算モジュール112は、非同期式分岐モジュールの2つの分岐先のうち、一方のみが目的地まで到達可能であるか否かを判断する。混雑回避経路計算モジュール112は、選択可能分岐先が1つのときは、その分岐先を転送分岐先として選択する(ステップC8)。
混雑回避経路計算モジュール112は、選択可能分岐先が1つでないときは、混雑情報を参照し、選択可能分岐先の混雑の有無を調べる。混雑回避経路計算モジュール112は、混雑なしの分岐先が1つであるか否かを判断する(ステップC9)。つまり、混雑回路計算モジュール112は、2つの選択可能分岐先のうち、何れか一方が混雑ありで、他方が混雑なしであるか否かを判断する。混雑回避経路計算モジュール112は、混雑している分岐先が1つのときは、混雑していない方の分岐先(非混雑分岐先)を、転送分岐先として選択する(ステップC10)。混雑回避経路計算モジュール112は、混雑している分岐先が1つでない、すなわち、2つの選択分岐先の双方が混雑あり又は混雑なしである場合は、所定の手法により一方の分岐先を転送分岐先として選択する(ステップC11)。
混雑回避経路計算モジュール112は、転送分岐先として選択した分岐先が分岐先0番であるか否かを判断する(ステップC12)。混雑回避経路計算モジュール112は、転送分岐先が分岐先0番のときは、非同期式分岐モジュール102に、分岐先0番を示す選択信号を送る。また、混雑回避経路計算モジュール112は、データ入力端子に入力される転送データと、データ要求入力端子に入力されるデータ要求信号とを、それぞれデータ出力端子及びデータ要求出力端子から、非同期式分岐モジュール102に出力する(ステップC13)。
混雑回避経路計算モジュール112は、転送分岐先が分岐先0番でないとき、すなわち、転送分岐先が分岐先1番のときは、非同期式分岐モジュール102に、分岐先1番を示す選択信号を送る。また、混雑回避経路計算モジュール112は、データ入力端子に入力される転送データと、データ要求入力端子に入力されるデータ要求信号とを、それぞれデータ出力端子及びデータ要求出力端子から、非同期式分岐モジュール112に出力する(ステップC14)。
混雑回避経路計算モジュール112は、ステップC13又はC14で出力したデータ要求信号に対するデータ応答信号がデータ応答入力端子に入力されたか否かを判断する(ステップC15)。混雑回避経路計算モジュール112は、データ応答信号が入力されていないときは、ステップC15を繰り返し実行し、データ応答信号が入力されるまで待機する。混雑回避経路計算モジュール112は、データ応答入力端子にデータ応答信号が入力されると、データ応答出力端子から、データ応答信号を出力する(ステップC16)。その後、混雑回避経路計算モジュール112は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップC1(初期状態)に戻る。
図5は、非同期式分岐モジュール102の動作手順を示している。はじめ、非同期式分岐モジュール102は、初期状態にある。非同期式分岐モジュール102は、混雑回避経路計算モジュール112から、データ要求入力端子にデータ要求信号が入力されたか否かを判断する(ステップD1)。非同期式分岐モジュール102は、データ要求信号が入力されていないときは、ステップD1を繰り返し行い、データ要求信号が入力されるまで待機する。
非同期式分岐モジュール102は、データ要求信号が入力されると、混雑回避経路計算モジュール112から、選択信号入力端子を介して入力する選択信号が分岐先0番を示しているか否かを判断する(ステップD2)。非同期式分岐モジュール102は、選択信号が分岐先0番を示しているときは、分岐先0番に対応するデータ出力端子とデータ要求出力端子とから、それぞれデータ入力端子に入力された転送データ、及び、データ要求入力端子に入力されたデータ要求信号を出力する(ステップD3)。
非同期式分岐モジュール102は、ステップD3において転送データ及びデータ要求信号を送信したとき、分岐先0番に対応するデータ応答入力端子に、出力したデータ要求信号に対応するデータ応答信号が入力されたか否かを判断する(ステップD4)。非同期式分岐モジュール102は、分岐先0番に対応するデータ応答入力端子にデータ応答信号が入力されていないときは、ステップD4を繰り返し実行し、データ応答信号が入力されるまで待機する。
非同期式分岐モジュール102は、ステップD2で選択信号が分岐先1番を示していると判断すると、分岐先1番に対応するデータ出力端子とデータ要求出力端子とから、それぞれ転送データ及びデータ要求信号を出力する(ステップD5)。その後、非同期式分岐モジュール102は、分岐先1番に対応するデータ応答入力端子に、出力したデータ要求信号に対応するデータ応答信号が入力されたか否かを判断する(ステップD6)。非同期式分岐モジュール102は、分岐先1番に対応するデータ応答入力端子にデータ応答信号が入力されていないときは、ステップD6を繰り返し実行し、データ応答信号が入力されるまで待機する。
非同期式分岐モジュール102は、ステップD4又はD6で、分岐先0番又は分岐先1番のデータ応答入力端子にデータ応答信号が入力されると、データ応答出力端子から、データ応答信号を出力する(ステップD7)。非同期式分岐モジュール102は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップD1(初期状態)に戻る。
非同期式コア間接続回路では、複数のデータ転送経路が合流する非同期式調停モジュール101で混雑が発生する。非同期式調停モジュール101の複数の合流元の何れからの転送データが保留されるかは、調停結果に依存する。つまり、合流元に対する混雑の有無は、調停結果に依存する。本実施形態では、混雑検知モジュール111は、非同期式調停モジュール101から調停結果を入力し、調停結果に基づいて、混雑情報を生成する。混雑検知モジュール111が、調停結果に基づいて混雑情報を生成することで、非同期式調停モジュール101の合流元に対して、混雑の検知と混雑情報の生成とが可能になる。混雑回避経路計算モジュール112は、混雑情報と転送データの目的地情報とに基づいて、非同期式分岐モジュール101の分岐先のうち、混雑ありを示していない分岐先を優先的に転送分岐先として決定する。これにより、データ転送経路の通信容量が無駄になることを抑制することができる。
本実施形態では、混雑回避経路計算モジュール112は、データ要求信号と混雑処理要求信号との間で調停を行う。調停の結果、データ要求信号を通過させたときは、データ要求信号のハンドシェイク完了まで混雑処理要求信号を保留する。一方、混雑処理要求信号を通過させたときは、混雑処理要求信号のハンドシェイク完了までデータ要求信号を保留する。このようにすることで、データ転送を行っているタイミングを避けて、混雑情報を更新し、混雑情報を更新しているタイミングを避けて、データ転送を行うことができる。このため、混雑回避経路計算モジュール112は、混雑情報を示す信号を用いて混雑箇所を回避するための経路設定計算結果を正しく行うことができる。また、非同期式分岐モジュール102のデータ出力端子の選択の変化が、データ転送ハンドシェイクの途中で起こることがなく、非同期式分岐モジュール102にハンドシェイク・プロトコルに基づく正常動作をさせることができる。
ここで、非同期式コア間接続回路では、同期式の回路とは異なり、データ要求信号が入力されるタイミング、及び、混雑処理要求信号が入力されるタイミングは任意である。つまり、混雑情報を示す信号の変化が、データ転送とは独立のタイミングで入力される。このため、単に混雑情報を用いただけでは、非同期式分岐モジュールでのハンドシェイクの途中で混雑情報が変化し、それに伴ってデータ出力端子の選択結果が変化することで、データ転送が完了しないうちに分岐先が変化することがある。データ転送が完了しないうちに分岐先が変化すると、非同期式分岐モジュールが、ハンドシェイク・プロトコルに従って動作することができず、誤動作することになる。本実施形態では、混雑情報の記憶と、データ転送先の決定とを排他的に行っており、このような問題は生じない。
以下、具体的な実施例について説明する。図6は、第1実施例の非同期式コア間接続回路を含む半導体回路を示している。半導体回路は、非同期式コア間接続回路600、マスタA601、スレーブA602、マスタB603、及び、スレーブB604を有する。非同期式コア間接続回路600は、マスタA601、スレーブA602、マスタB603、及び、スレーブB604の4つのコア(同期式マスタ側コア、スレーブ側コア)を接続する。非同期式コア間接続回路600は、非同期式分岐モジュール611、613、623と、非同期式調停モジュール612、614、622と、混雑検知モジュール632、642と、混雑回避経路計算モジュール631とを含む。
混雑回避経路計算モジュール631は、非同期式分岐モジュール611に対応して配置されている。混雑回避経路計算モジュール631は、マスタA601から、レジスタ(記憶素子)を介して、転送データを入力する。また、混雑回避経路計算モジュール631は、レジスタの記憶制御回路(図16のLC)との間で、要求信号と応答信号とのやり取りを行う。非同期式分岐モジュール611は、2つの分岐先を有し、分岐先の一方はレジスタを介して非同期式調停モジュール612に接続される。分岐先の他方は、レジスタを介して非同期式調停モジュール622に接続される。
混雑検知モジュール632及び642は、それぞれ、非同期式調停モジュール612及び622に対応して配置されている。混雑検知モジュール632は、非同期式調停モジュール612が出力した転送データを、レジスタを介して非同期式分岐モジュール613に出力し、レジスタの記憶制御回路との間で、要求信号と応答信号のやり取りを行う。また、混雑検知モジュール632は、非同期式調停モジュール612の合流元に対応する混雑回避経路計算モジュール631との間で、混雑処理要求信号、混雑情報信号、及び、混雑処理応答信号のやり取りを行う。
混雑検知モジュール642は、非同期式調停モジュール622が出力した転送データを、レジスタを介して非同期式分岐モジュール623に出力し、レジスタの記憶制御回路との間で、要求信号と応答信号のやり取りを行う。また、混雑検知モジュール642は、非同期式調停モジュール622の合流元に対応する混雑回避経路計算モジュール631との間で、混雑処理要求信号、混雑情報信号、及び、混雑処理応答信号のやり取りを行う。
非同期式分岐モジュール613は、2つの分岐先を有する。非同期式分岐モジュール613の分岐先の一方は、非同期式調停モジュール614である。非同期式分岐モジュール623は、2つの分岐先を有する。非同期式分岐モジュール623の分岐先の一方は、非同期式調停モジュール614である。非同期式調停モジュール614は、レジスタを介して、混雑検知モジュール632及び642が出力する転送データを入力し、レジスタを介して、スレーブA602に転送データを出力する。
ここで、マスタA601からスレーブA602までの通信には、2つの経路が利用可能である。一方は、非同期式分岐モジュール611、非同期式調停モジュール612、非同期式分岐モジュール613、及び、非同期式調停モジュール614を通る経路である。他方は、非同期式分岐モジュール611、非同期式調停モジュール622、非同期式分岐モジュール623、及び、非同期式調停モジュール614を通る経路である。また、マスタB603からスレーブB604までの通信には、非同期式調停モジュール612、非同期式分岐モジュール613を通る経路が利用可能である。
図7は、非同期式分岐モジュールの回路構成例を示している。図6の非同期式分岐モジュール611は、図7に示す回路構成の非同期式分岐回路700で構成できる。非同期式分岐回路700は、非対称型2入力C素子710、711と、OR素子720とを有する。非同期式分岐回路700は、データ入力端子から転送データが入力される。また、非同期式分岐回路700には、データ要求入力端子から、データ要求信号Riが入力される。非同期式分岐モジュール700は、入力した転送データを、分岐先の一方(分岐先0番)に対応したデータ出力端子、及び、分岐先の他方(分岐先1番)に対応したデータ出力端子から出力する。
図8は、非対称型2入力C素子の論理回路を示している。図7に示す非対称型2入力C素子710、711は、図8に示す、OR素子とAND素子とを組み合わせた論理回路(非対称型2入力C素子)800で構成できる。非対称型2入力C素子800を、記号801で表すこととする。非対称型2入力C素子800の入力A、Bと、出力Yとの関係は、真理値表850で示すようになる。すなわち、非対称型2入力C素子800は、入力が(A,B)=(1,1)のとき、Y=1を出力する。また、非対称型2入力C素子800は、B=0のときは、Aの入力値にかかわらず、Y=0を出力する。非対称型2入力C素子800は、入力が(A,B)=(1,0)のときは、出力Yの値を維持する。つまり、非対称型2入力C素子800は、一度、(A,B)=(1,1)でY=1となれば、A=0になっても、B=0になるまでY=1を維持する。
図7に戻り、非同期式分岐回路700には、選択信号入力端子から、混雑回避経路計算モジュールが出力する選択信号S0、S1が入力される。選択信号は、(S0,S1)=(0,1)又は(S0,S1)=(1,0)の何れかの状態をとる。選択信号S0は、非対称型2入力C素子710の端子Aに入力される。また、選択信号S1は、非対称型2入力C素子711の端子Aに入力される。非対称型2入力C素子710及び711の端子Bには、データ要求信号Riが入力される。非対称型2入力C素子710は、分岐先0番に対応したデータ要求信号Ro0を出力する。また、非対称型2入力C素子711は、分岐先1番に対応したデータ要求信号Ro1を出力する。
非対称型2入力C素子710は、選択信号S0=1で、かつ、データ要求信号Ri=1のとき、データ要求信号Ro0=1を出力する。非対称型2入力C素子710がデータ要求信号Ro0=1を出力することで、分岐先0番に対応したデータ出力端子が出力する転送データが、分岐先0番に転送される。非対称型2入力C素子711は、選択信号S1=1で、かつ、データ要求信号Ri=1のとき、データ要求信号Ro1=1を出力する。非対称型2入力C素子711がデータ要求信号Ro1=1を出力することで、分岐先1番に対応したデータ出力端子が出力する転送データが、分岐先1番に転送される。
非同期式分岐回路700には、分岐先0番に対応したデータ応答入力端子に、データ転送先のレジスタからデータ応答信号Ao0が入力され、分岐先1番に対応したデータ応答入力端子に、データ転送先のレジスタからデータ応答信号Ao1が入力される。OR素子720は、データ応答信号Ao0とAo1との論理和をとり、データ応答信号Aiとして、データ応答出力端子から出力する。つまり、OR素子720は、データ応答信号Ao0=1、又は、データ応答信号Ao1=1になると、データ応答信号Ai=1を出力する。
初期状態では、非同期式分岐回路700に入力される信号は、データ要求信号Ri=0、データ応答信号Ao0=0、Ao1=0である。また、非同期式分岐回路700が出力する信号は、データ要求信号Ro0=0、Ro1=0、データ応答信号Ai=0である。選択信号は、(S0,S1)=(1,0)又は(S0,S1)=(0,1)の何れかになっている。非同期式分岐回路700は、データ要求信号がない状態(Ri=0)の間は、待機する(図5のステップD1)。
非同期式分岐回路700は、データ要求信号がRi=1になると、ステップD2に進んで、選択信号S0、S1に従って、データ要求信号の出力先を選択する。選択信号が(S0,S1)=(1,0)のとき、非対称型2入力C素子710は、入力するデータ要求信号がRi=1となることで、出力するデータ要求信号をRo0=1に変化させる。このとき、選択信号S1=0なので、非対称型2入力C素子711の出力は、Ro1=0のままである。この場合、非同期式分岐回路700は、ステップD3へ進んで、分岐0番に対応したデータ出力端子から、データ要求信号Riと並行して入力された転送データを出力する。そして、非同期式分岐回路700は、分岐先1番に対応したデータ要求出力端子からデータ要求信号Ro0=1を出力する。
非同期式分岐回路700は、分岐先0番へのデータ要求信号の出力後、ステップD4で、出力したデータ要求信号Ro0=1に対するデータ応答信号の入力を待機する。分岐先0番に接続されたレジスタは、転送データとデータ要求信号Ro0=1とを受け取った後に、データ応答信号を出力する。レジスタがデータ応答信号を出力することで、非同期式分岐回路700に入力されるデータ要求信号がAo0=1変化する。このとき、分岐先1番については、データ要求信号がRo1=0のままなので、分岐先1番に接続されたレジスタはデータ応答信号を出力せず、分岐先1番のデータ応答信号はAo1=0のままである。
一方、選択信号が(S0,S1)=(0,1)のとき、非対称型2入力C素子711は、入力するデータ要求信号がRi=1に変化することで、出力するデータ要求信号をRo1=1に変化させる。このとき、選択信号S0=0なので、非対称型2入力C素子710の出力は、Ro0=0のままである。この場合、非同期式分岐回路700は、ステップD5に進んで、分岐先1番に対応したデータ出力端子から、データ要求信号Riと並行に入力された転送データを出力する。そして、非同期式分岐回路700は、分岐先1番に対応したデータ要求出力端子から、データ要求信号Ro1=1を出力する。
非同期式分岐回路700は、分岐先1番へのデータ要求信号の出力後、ステップD6で、出力したデータ要求信号Ro1=1に対するデータ応答信号の入力を待機する。分岐先1番に接続されたレジスタは、転送データとデータ要求信号Ro1=1を受け取った後に、データ応答信号を出力する。レジスタがデータ応答信号を出力することで、非同期式分岐回路700に入力されるデータ応答信号がAo1=1に変化する。このとき、分岐先0番については、データ要求信号がRo0=0のままなので、分岐先0番に接続されたレジスタはデータ応答信号を出力せず、分岐先0番のデータ応答信号はAo0=0のままである。
分岐先0番からのデータ応答信号、又は、分岐先1番からのデータ応答信号がAo0=1又はAo1=1に変化すると、OR素子720出力が変化する。つまり、非同期式分岐回路700は、ステップD7で、分岐元に対しデータ応答信号Ai=1を出力する。分岐元のレジスタは、データ応答信号がAi=1になることで、データ要求信号を取り下げ、Ri=0とする。非同期式分岐回路700に入力されるデータ要求信号がRi=0となることで、非対称型2入力C素子710及び711の出力であるデータ要求信号がRo0=0、Ro1=0となる。つまり、非同期式分岐回路700は、データ要求信号を取り下げる。
非同期式分岐回路700が、データ要求信号を取り下げると、データ要求信号を受け取っていた分岐先のレジスタは、出力していたデータ応答信号を取り下げる。分岐先0番のレジスタ又は分岐先1番のレジスタが、データ応答信号を取り下げてAo0=0又はAo1=0とすると、OR素子720の出力が変化する。つまり、非同期式分岐回路700が分岐元に出力するデータ応答信号は、Ai=0になる。これで、非同期式分岐回路700は、初期状態に戻る。
図9は、非同期式調停モジュールの回路構成例を示している。図6の非同期式調停モジュール612、622は、図9に示す非同期式調停回路900で構成できる。非同期式論理回路900は、相互排他回路(MutEx)910、ハンドシェイク確認回路920、921、OR素子930、マルチプレクサ940、及び、対称型2入力2入力C素子950、951を有する。
非同期式論理回路900には、2つの合流元(合流元0番、合流元1番)からの転送データと、2つの合流元からのデータ要求信号Ri0、Ri1と、合流先からのデータ応答信号Aoとが入力される。また、非同期式論理回路900は、転送データ及びデータ要求信号Roと、2つの合流元に対するデータ応答信号Ai0、Ai1と、混雑検知モジュールに対する調停結果信号Gr0、Gr1とを出力する。
図10は、相互排他回路の論理回路を示している。図9に示す相互排他回路910は、図10に示す回路構成の論理回路(相互排他回路)1000で構成できる。相互排他回路1000は、それぞれ入力端子の一方にRi0、Ri1が入力され、入力端子の他方が互いの出力端子に接続された2つのNAND素子と、2つのNAND素子の出力にそれぞれ接続されるインバータとを含む。相互排他回路910の入力(Ri0、Ri1)と、出力GE0、GE1との関係は、真理値表1050で示すようになる。すなわち、入力が(Ri0,Ri1)=(0,0)、(Ri0,Ri1)=(1,0)、又は、(Ri0,Ri1)=(0,1)のとき、出力は一意に決まり、相互排他回路1000の出力は、(GE0,GE1)=(Ri0,Ri1)となる。相互排他回路1000は、入力が(Ri0,Ri1)=(1,1)のときは、前状態の出力を維持する。ただし、入力が(Ri0,Ri1)=(0,0)から(1,1)に変化するときは、一時的に(Ri0,Ri1)=(1,0)か(0,1)を経由した後に、前状態の出力に戻る。
上記動作は、相互排他回路1000のNAND素子で構成される部分回路(調停部分回路)1010で実現できる。しかし、部分回路1010だけでは、ほぼ同時にRi0とRi1が、それぞれ0から1に変化すると、部分回路1010の出力が準安定状態と呼ばれる論理値0又は1に対応する電圧に振れていない状態となる。部分回路1010の出力側のインバータで構成された部分回路(準安定状態フィルタ回路)1020は、これを防ぐ働きをする。
図11は、対称型2入力C素子の論理回路を示している。図9の対称型2入力C素子950、951は、図11に示す論理回路(対称型2入力C素子)1100で構成できる。対称型2入力C素子1100は、3つのAND素子と、1つのOR素子とで構成され、入力端子の1つと出力端子とが接続された3入力多数決論理関数を実現する論理回路として構成される。対称型2入力C素子1100の入力(A,B)と、出力(Y)との関係は、真理値表1150で示すようになる。すなわち、対称型2入力C素子1100は、入力が(A,B)=(1,1)のときY=1を出力し、入力が(A,B)=(0,0)のとき、Y=0を出力する。対称型2入力C素子1100は、入力が(A,B)=(1,0)又は(A,B)=(0,1)のときは、出力Yの値を維持する。
図9に戻り、相互排他回路910には、2つの合流元からのデータ要求信号Ri0、Ri1を入力される。合流元0番からのデータ要求信号がRi0=1で、合流元1番からのデータ要求信号がRi1=0のとき、合流元0番からのデータ要求信号を通過させ、(GE0,GE1)=(1,0)を出力する。また、相互排他回路910は、合流元0番からのデータ要求信号がRi0=0で、合流元1番からのデータ要求信号がRi1=1のときは、合流元1番からのデータ要求信号を通過させ、(GE0,GE1)=(0,1)を出力する。相互排他回路910は、合流元0番からのデータ要求信号がRi0=1で、合流元1番からのデータ要求信号もRi1=1のとき、つまり、双方の合流元からデータ要求信号が入力されたときは、先着した合流元からのデータ要求信号を通過させる。
ハンドシェイク確認回路920、921は、入力端子の一方が相互排他回路910通過したデータ要求信号に接続され、他方がインバータを介してデータ応答信号Ai0、Ai1に接続されるAND素子を含む。ハンドシェイク確認回路920は、相互排他回路910の出力GE0と、対称型2入力C素子951の出力の反転信号との論理積をとる。ハンドシェイク確認回路921は、相互排他回路910の出力GE1と、対称型2入力C素子950の出力の反転信号との論理積をとる。OR素子930は、ハンドシェイク確認回路920の出力と、ハンドシェイク確認回路921の出力との論理和をとる。非同期式調停回路900は、ハンドシェイク確認回路920、921の出力を、調停結果信号(Gr0、Gr1)として出力する。また、非同期式調停回路900は、OR素子930の出力を、合流先へのデータ要求信号Roとして出力する。
対称型2入力C素子950には、非同期式調停回路900に入力される合流先からのデータ応答信号Aoと、ハンドシェイク確認回路920の出力Gr0とが入力される。対称型2入力C素子951には、データ応答信号Aoと、ハンドシェイク確認回路921の出力Gr1とが入力される。非同期式調停回路900は、対称型2入力C素子950の出力を、合流元0番へのデータ応答信号Ai0として出力する。非同期式調停回路900は、ハンドシェイク確認回路920の出力がGr0=1で、かつ、合流先からのデータ応答信号がAo=1になると、合流元0番へ、データ応答信号Ai0=1を出力する。また、非同期式調停回路900は、対称型2入力C素子951の出力を、合流元1番へのデータ応答信号Ai1として出力する。非同期式調停回路900は、ハンドシェイク確認回路921の出力がGr1=1で、かつ、合流先からのデータ応答信号がAo=1になると、合流元1番へ、データ応答信号Ai1=1を出力する。
ハンドシェイク確認回路920、921は、非同期式調停回路900が仲介中のハンドシェイクいがないときは、相互排他回路910を通過したデータ要求信号を通過させる。一方、仲介中のハンドシェイクがあるときは、相互排他回路910を通過したデータ要求信号を、仲介中のハンドシェイクの完了まで待機させる。ハンドシェイク確認回路920は、入力端子の一方が相互排他回路910を通過した分岐先0番からのデータ要求信号(GE0)に接続され、他方が、インバータを介して分岐先1番からのデータ応答信号Ai1に接続されている。このため、非同期式調停回路900が分岐先1番のハンドシェイクを仲介中で、分岐先1番のデータ応答信号がAi1=1のとき、つまり、データ応答信号がまだ取り下げられていないときは、データ応答信号の取り下げまで分岐先0番からのデータ要求信号を通過させない。ハンドシェイク確認回路921も、同様に、非同期式調停回路900が分岐先0番のハンドシェイクを仲介中のときは、分岐先0番へのデータ応答信号の取り下げまで、相互排他回路910を通過した分岐先1番からのデータ要求信号を通過させない。
対称型2入力C素子950、951は、ハンドシェイク確認回路920、921を通過したデータ要求信号と、データ要求信号に対するデータ応答信号とを待ち合わせる、待ち合わせモジュールに相当する。対称型2入力C素子950、951は、ハンドシェイク確認回路920、921を通過したデータ要求信号を入力した合流元に、データ応答信号を出力する。すなわち、対称型2入力C素子950は、合流元0番からのデータ要求信号が通過し、ハンドシェイク確認回路920の出力がGr0=1となった後、データ応答信号がAo=1になるまで待ち、Ao=1になると、合流元0番へデータ応答信号Ao0=1を出力する。また、対称型2入力C素子951は、合流元1番からのデータ要求信号が通過し、ハンドシェイク確認回路921の出力がGr1=1となった後、データ応答信号がAo=1になるまで待ち、Ao=1になると、合流元1番へデータ応答信号Ao0=1を出力する。
マルチプレクサ940は、合流元0番からの転送データと、合流元1番からの転送データとを入力する。マルチプレクサ940の選択信号端子Sには、ハンドシェイク確認回路921の出力Gr1が入力される。マルチプレクサ940は、ハンドシェイク確認回路921の出力がGr1=1のとき、つまり、ハンドシェイク確認回路921が合流元1番からのデータ要求信号を通過させたとき、合流元1番からの転送データを出力する。また、マルチプレクサ940は、ハンドシェイク確認回路921の出力がGr1=0のとき、つまり、ハンドシェイク確認回路920が合流元0番からのデータ要求信号を通過させたとき、合流元0番からの転送データを出力する。
初期状態では、非同期式調停回路900に入力される信号は、データ要求信号Ri0=0、Ri1=0、データ応答信号Ao=0である。また、非同期式調停回路900が出力する信号は、データ要求信号Ro=0、データ応答信号Ai0=0、Ai1=0である。非同期式調停回路900の内部信号は、GE0=0、GE1=0、Gr0=0、Gr1=0である。非同期式調停回路900は、2つの合流元の何れからもデータ要求信号がない状態(Ri0=0、Ri1=1)の間は、少なくとも一方からデータ要求信号が入力されるまで待機する(図2のステップA1)。
非同期式調停回路900は、合流元の何れか一方か双方からデータ要求信号Ri0=1又はRi1=1を入力されると、ステップA2に進み、データ要求信号を出力した合流元の判別を行う。相互排他回路910は、合流元0番からのデータ要求信号がRi0=1となったときは、合流元0番からのデータ要求信号を通過させ、内部信号(GE0,GE1)=(1,0)を出力する。相互排他回路910は、合流元1番からのデータ要求信号がRi1=1となったときは、合流元1番からのデータ要求信号を通過させ、内部信号(GE0,GE1)=(0,1)を出力する。相互排他回路910は、双方の合流元からのデータ要求信号入力された場合(Ri0=1、Ri1=1)場合は、先着したデータ要求信号を通過させ、(GE0,GE1)=(1,0)又は(GE0,GE1)=(0,1)を出力する。
非同期式調停回路900が合流元0番からデータ要求信号を入力した、或いは、合流元0番からのデータ要求信号が先着したとき、相互排他回路910が内部信号(GE0,GE1)=(1,0)を出力する。これにより、ハンドシェイク確認回路920の出力はGr0=1に、ハンドシェイク確認回路921の出力はGr1=0になる。マルチプレクサ940は、選択信号Sとして入力するハンドシェイク確認回路921の出力がGr1=0となるので、合流元0番の転送データを選択する。非同期式調停回路900は、データ出力端子に、データ要求信号Ri0=1と共に入力された合流元0番からの転送データを出力する(ステップA3)。また、非同期式調停回路900は、調停結果信号(Gr0,Gr1)=(1,0)を出力する(ステップA4)。
非同期式調停回路900が合流元0番からデータ要求信号を入力した、或いは、合流元0番からのデータ要求信号が先着したとき、対称型2入力C素子950には、入力のうちの一方にGr0=1が入力される。しかし、もう一方の入力である、合流元からのデータ応答信号がAo=0であるので、対称型2入力C素子950は出力を変化させず、非同期式調停回路900が合流元0番に出力するデータ応答信号はAi0=0のままである。合流元1番については、対称型2入力C素子951に入力される信号がGr1=0、Ao=0であるので、非同期式調停回路900が合流元1番に出力するデータ応答信号もAi1=0のままである。
一方、非同期式調停回路900が合流元1番からのデータ要求信号を入力した、或いは、合流元1番からのデータ要求信号が先着したとき、相互排他回路910が内部信号(GE0,GE1)=(0,1)を出力することで、ハンドシェイク確認回路920の出力はGr0=0に、ハンドシェイク確認回路921の出力はGr1=1になる。マルチプレクサ940は、選択信号Sとして入力するハンドシェイク確認回路921の出力がGr1=1となることで、合流元1番の転送データを選択する。非同期式調停回路900は、データ出力端子に、データ要求信号Ri1=1と共に入力された合流元1番からの転送データを出力する(ステップA5)。また、非同期式調停回路900は、調停結果(Gr0,Gr1)=(0,1)を出力する(ステップA6)。
非同期式調停回路900が合流元1番からデータ要求信号を入力した、或いは、合流元1番からのデータ要求信号が先着したとき、対称型2入力C素子951には、入力のうちの一方にGr1=1が入力される。しかし、もう一方の入力である、合流元からのデータ応答信号がAo=0であるので、対称型2入力C素子951は出力を変化させず、非同期式調停回路900が合流元1番に出力するデータ応答信号はAi1=0のままである。合流元0番については、対称型2入力C素子950に入力される信号がGr0=0、Ao=0であるので、非同期式調停回路900が合流元0番に出力するデータ応答信号もAi0=0のままである。
調停結果信号が(Gr0,Gr1)=(1,0)又は(Gr0,Gr1)=(0,1)になると、OR素子930の出力はRo=1になり、非同期式調停回路900は、データ要求信号Ro=1を合流先に出力する(ステップA7)。非同期式調停回路900は、ステップA8で、合流先からのデータ応答信号を待ち受ける。非同期式調停回路900は、データ応答信号Ao=1が入力されると、調停結果信号(Gr0,Gr1)に従って、すなわち、何れの合流元からのデータ要求信号を通過させたかに従って、ステップA9から、ステップA10又はA11に進む。そして、非同期式調停回路900は、データ要求信号を通過させた合流元にデータ応答信号を出力する。
非同期式調停回路900が合流元0番からの転送データを出力した場合、つまり、(Gr0,Gr1)=(1,0)の場合、合流先からデータ応答信号Ao=1が入力されると、対称型2入力C素子950の双方の入力が1になる。これに伴い、対称型2入力C素子950の出力がAi0=1に変化し、非同期式調停回路900は、合流元0番にデータ応答信号Ai0=1を出力する(ステップA10)。このとき、対称型2入力C素子951については、一方の入力がGr1=0であるため、データ応答信号がAo=1になっても、非同期式調停回路900が合流元1番へ出力するデータ応答信号はAo1=0のまま変化しない。
非同期式調停回路900が合流元0番にデータ応答信号Ai0=1を出力すると、合流元0番のレジスタは、データ要求信号を取り下げてRo0=0とする。合流元0番がデータ要求信号を取り下げることで、相互排他回路910が出力する内部信号は(GE0,GE1)=(0,0)になり、ハンドシェイク確認回路920、921の出力がGr0=0、Gr1=0となる。このとき、仮に、相互排他回路910が待機させていた合流元1番からのデータ要求信号を通過させ、内部信号が(GE0,GE1)=(0,1)になったとしても、合流元0番へのデータ応答信号が取り下げられていないために、ハンドシェイク確認回路921の出力はGr1=0のまま変化しない。OR素子930の双方の入力が0になることで、非同期式調停回路900は、データ要求信号を取り下げRo=0とする。合流先のレジスタは、データ要求信号が取り下げられると、データ応答信号を取り下げてAo=0とする。データ要求信号がAo=0となることで、対称型2入力C素子950の出力は0に変化し、非同期式調停回路900は、合流元0番に出力するデータ応答信号を取り下げAi0=0とする。これで、非同期式調停回路900は、初期状態に戻る。
非同期式調停回路900が合流元1番からの転送データを出力した場合、つまり、(Gr0,Gr1)=(0,1)の場合、合流先からデータ応答信号Ao=1が入力されると、対称型2入力C素子951の双方の入力が1になる。これに伴い、対称型2入力C素子951の出力が1に変化し、非同期式調停回路900は、合流元1番にデータ応答信号Ai1=1を出力する(ステップA11)。このとき、対称型2入力C素子950については、一方の入力がGr0=0であるため、データ応答信号がAo=1になっても、非同期式調停回路900が合流元0番へ出力するデータ応答信号はAo0=0のまま変化しない。
非同期式調停回路900が合流元1番にデータ応答信号Ai1=1を出力すると、合流元1番のレジスタは、データ要求信号を取り下げてRo1=0とする。合流元1番がデータ要求信号を取り下げることで、相互排他回路910が出力する内部信号は(GE0,GE1)=(0,0)になり、ハンドシェイク確認回路920、921の出力がGr0=0、Gr1=0となる。このとき、仮に、相互排他回路910が待機させていた合流元0番からのデータ要求信号を通過させ、内部信号が(GE0,GE1)=(1,0)になったとしても、合流元1番へのデータ応答信号が取り下げられていないために、ハンドシェイク確認回路920の出力はGr0=0のまま変化しない。OR素子930の双方の入力が0になることで、非同期式調停回路900は、データ要求信号を取り下げRo=0とする。合流先のレジスタは、データ要求信号が取り下げられると、データ応答信号を取り下げてAo=0とする。データ要求信号がAo=0となることで、対称型2入力C素子951の出力は0に変化し、非同期式調停回路900は、合流元1番に出力するデータ応答信号を取り下げAi1=0とする。これで、非同期式調停回路900は、初期状態に戻る。
図12は、混雑検知モジュールの回路構成例を示している。図6の混雑検知モジュール632、642は、図12に示す混雑検知回路1200で構成できる。混雑検知回路1200は、インバータ1210、1211と、対称型2入力C素子1220、1230とを有する。混雑検知回路1200は、非同期式調停モジュールが出力する転送データ及びデータ要求信号Riを、非同期式調停モジュールの合流先に出力する。また、混雑検知回路1200は、非同期式調停モジュールが出力するデータ要求信号Riを分岐し、非同期式調停モジュールの合流元0番及び合流元1番に、混雑処理要求信号BReq0、BReq1として出力する。インバータ1210、1211は、非同期式調停モジュールが出力する調停結果信号Gr0,Gr1を反転して、それぞれ混雑情報BP0、BP1として出力する。
対称型2入力C素子1220、1230は、合流先からのデータ応答信号Aoと、合流元からの混雑処理応答信号BAck0、BAck1とを待ち合わせるために用いる。対称型2入力C素子1220、1230の構成及び真理値表は、図11に示すものと同じである。対称型2入力C素子1220は、合流元0番から混雑処理応答信号BAck0=1が入力され、合流元1番から混雑処理応答信号BAck1=1が入力されると1を出力する。対称型2入力C素子1230は、対称型2入力C素子1220が1を出力し、合流先からデータ応答信号Ao=1が入力されると、非同期式調停モジュールにデータ応答信号A
i=1を出力する。
i=1を出力する。
混雑検知回路1200の回路構成のうち、非同期式調停モジュールから入力したデータ要求信号を、非同期式調停モジュールの合流先に出力する部分、及び、データ要求信号を分岐して混雑処理要求信号とし、調停結果信号をインバータ1210、1211で反転して混雑情報信号として出力する部分は、要求出力モジュールに相当する。当該部分は、非同期式調停モジュールがデータ要求信号を出力すると、データ要求信号を合流先に出力すると共に、混雑情報と、混雑処理要求信号とを、合流元にある混雑回避経路計算モジュールに出力する。また、対称型2入力C素子1220、1230は、データ要求信号と混雑情報記憶要求信号の出力後、合流先からのデータ応答信号と、混雑回避経路計算モジュールからの混雑処理応答信号とを待ち合わせる。そして、データ応答信号と混雑情報記憶応答信号とを受け取ると、非同期式調停モジュールにデータ応答信号を出力する。すなわち、対称型2入力C素子1220、1230は、応答待ち合わせモジュールに相当する。
初期状態では、混雑検知回路1200に入力される信号は、データ要求信号Ri=0、データ応答信号Ao=0、混雑処理応答信号BAck0=0、BAck1=0である。また、混雑検知回路1200が出力する信号は、データ要求信号Ro=0、データ応答信号Ai=0、混雑処理要求信号BReq0=0、BReq1=0である。調停結果信号Gr1、Gr2、及び、混雑情報信号BP0の状態は任意である。混雑検知回路1200は、データ要求信号がRi=0のとき、非同期式調停モジュールから、データ要求信号Ri=1が入力されるまで待機する(図3のステップB1)。
混雑検知回路1200は、データ要求信号がRi=1となると、ステップB2で、混雑情報信号BP0、BP1を生成する。混雑検知回路1200は、非同期式調停モジュールから、調停結果信号がGr0、Gr1を受け取ることで、非同期式調停モジュールが、何れの合流元からの転送データを出力しているかを判別する。非同期式調停モジュールが合流元0番からの転送データを出力するとき、合流元0番のデータは保留されることなく転送されるので、合流元0番の混雑情報は混雑なしとなり、合流元1番のデータは保留されるので、合流元1番は混雑ありとなる。逆に、非同期式調停モジュールが合流元1番からの転送データを出力するとき、合流元0番は混雑ありで、合流元1番は混雑なしとなる。
混雑検知回路1200は、調停結果信号が(Gr0,Gr1)=(1,0)のとき、つまり、非同期式調停モジュールが合流元0番から入力した転送データを出力するとき、Gr0をインバータ1210で反転した信号BP0=1(混雑なし)を、合流元0番に対応した混雑情報信号とし、Gr1をインバータ1211で反転した信号BP1=0(混雑あり)を、合流元1番に対応した混雑情報信号とする。また、混雑検知回路1200は、非同期式調停モジュールが合流元1番から入力した転送データを出力するとき、つまり、調停結果信号が(Gr0,Gr1)=(0,1)のときは、Gr0をインバータ1210で反転した信号BP0=0(混雑あり)を、合流元0番に対応した混雑情報信号とし、Gr1をインバータ1211で反転した信号BP1=1(混雑なし)を、合流元先1番に対応した混雑情報信号とする。
混雑検知回路1200は、混雑情報信号BP0及びBP1を、合流元0番及び合流元1番にそれぞれ出力する。また、混雑検知回路1200は、データ要求信号Ri=1を分岐して、合流元0番及び合流元1番に、それぞれ、混雑処理要求信号BReq0=1及びBReq1=1を出力する(ステップB3)。混雑検知回路1200は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ro=1を出力する(ステップB4)。
混雑検知回路1200は、データ要求信号Ri=1及び混雑処理要求信号BReq0=1、BReq1=1の出力後、データ応答信号Ao=1、混雑処理応答信号BAck0=1、BAck1=1が入力されるまで待機する(ステップB5)。混雑検知回路1200は、対称型2入力C素子1220、1230を用いる。すなわち、非同期式調停モジュールの合流先からデータ応答信号Ao=1が入力され、かつ、合流元0番及び合流元1番から混雑処理応答信号BAck0=1、BAck1=1が入力されると、対称型2入力C素子1230から、データ応答信号Ai=1を出力する(ステップB6)。
混雑検知回路1200が、非同期式調停モジュールにデータ応答信号Ai=1を出力すると、非同期式調停モジュールから入力されるデータ要求信号が取り下げられ、Ri=0となる。混雑検知回路1200は、データ要求信号がRi=0となることで、合流元0番及び合流元1番に出力する混雑処理要求信号を取り下げて、BReq0=0、BReq1=0とする。また、混雑検知回路1200は、対称型2入力C素子1220、1230を用いて、非同期式調停モジュールの合流先からのデータ応答信号Ao=0と、合流元0番及び合流元1番からの混雑処理応答信号BAck=0、BAck1=0とを待ち合わせ、非同期式調停モジュールにデータ応答信号Ai=0を出力する。これで、混雑検知回路1200は、初期状態に戻る。
図13は、混雑回避経路計算モジュールの回路構成例を示している。図6の混雑回避経路計算モジュール631は、図13に示す混雑回避経路計算回路1300で構成できる。混雑回避経路計算モジュール1300は、ハンドシェイク調停回路1310、マルチプレクサ1320、1321、ハンドシェイク部分調停回路1330、混雑情報記憶ラッチ1340、及び、経路計算回路1350を有する。
ハンドシェイク調停回路1310は、2つの分岐先からの混雑情報信号及び混雑処理要求信号の調停を行う回路である。ハンドシェイク調停回路1310は、分岐先間混雑情報記憶要求調停モジュールに相当する。ハンドシェイク調停回路1310は、非同期式分岐モジュールの分岐先から入力される混雑処理要求信号を合流し、調停を行うことで2つの分岐先からの混雑処理要求信号のうちの1つを選択する。そして、ハンドシェイク調停回路1310は、ハンドシェイク部分調停回路1330と混雑検知モジュールとの間で、選択した混雑情報記憶要求信号に起因するハンドシェイクを仲介する。
ハンドシェイク調停回路1310は、図9に示す非同期式調停回路900の構成から、マルチプレクサ940を除いた部分回路で構成できる。すなわち、ハンドシェイク調停回路1310は、相互排他回路910、ハンドシェイク確認回路920、921、対称型2入力C素子950、951、及び、OR素子930に相当する回路を含む。
ハンドシェイク調停回路1310の動作は、入出力する信号がデータ要求信号、データ応答信号から、混雑処理要求信号、混雑処理応答信号に代わる点を除いて、非同期式調停回路900からマルチプレクサ940を除いた部分回路における動作と同じである。ハンドシェイク調停回路1310には、2つの分岐先からの混雑処理要求信号と、ハンドシェイク部分調停回路1330からの混雑処理応答信号BAckとが入力される。ハンドシェイク調停回路1310は、混雑処理要求信号Breqと、混雑処理応答信号BAck0、BAck1と、調停結果信号Gr0、Gr1とを出力する。
ハンドシェイク調停回路1310の相互排他回路(図9の相互排他回路910に相当)には、複数の分岐先からの混雑情報記憶要求信号(BReq0、BReq1)が入力される。そして、相互排他回路は、混雑情報記憶要求信号のうちの1つを通過させ、他方を、前記通過させた混雑情報記憶要求信号の取り下げまで待機させる。相互排他回路の回路構成は、図10に示す構成と同様である。相互排他回路は、それぞれ入力端子の一方に混雑情報記憶要求信号が入力され、入力端子の他方が互いの出力端子に接続された2つのAND素子と、2つのAND素子の出力にそれぞれ接続されるインバータとを含む。
ハンドシェイク調停回路1310のハンドシェイク確認回路(図9のハンドシェイク確認回路920、921に相当)は、ハンドシェイク調停回路1310が仲介中のハンドシェイクがないときは、相互排他回路を通過した混雑処理要求信号を通過させる。一方、仲介中のハンドシェイクがあるときは、相互排他回路を通過した混雑処理要求信号を仲介中のハンドシェイクの完了まで待機させる。ハンドシェイク確認回路は、分岐先のそれぞれに対応して配置される。ハンドシェイク確認回路それぞれが、入力端子の一方が相互排他回路を通過した混雑処理要求信号に接続され、他方がインバータを介して自身が対応する分岐先とは異なる分岐先からの混雑処理応答信号(BAck0、BAck1)に接続されるAND素子を含む。
ハンドシェイク確認回路は、分岐先0番からの混雑処理要求信号を通過させたときは、調停結果信号(Gr0,Gr1)=(1,0)を出力する。一方、ハンドシェイク確認回路は、分岐先1番からの混雑処理要求信号を通過させたときは、調停結果信号(Gr0、Gr1)=(0,1)を出力する。ハンドシェイク確認回路の出力は、OR素子(図9のOR素子930に相当)に接続されており、OR素子は、ハンドシェイク確認回路を通過した混雑処理要求信号(BReq)を、ハンドシェイク部分調停回路1330に出力する。
ハンドシェイク調停回路1310の対称型2入力C素子(対称型2入力C素子950、951に相当)は、入力端子のうちの一方がハンドシェイク確認回路のAND素子の出力(Gr0又はGr1)に接続される。そして、他方の入力端子が、ハンドシェイク調停回路1300に入力されるデータ応答信号(BAck)に接続される。対称型2入力C素子は、ハンドシェイク確認回路を通過した混雑処理要求信号と、その混雑処理要求信号に対する混雑処理応答信号(BAck)とを待ち合わせる。そして、ハンドシェイク確認回路を通過した混雑処理要求信号を入力した分岐先に、混雑処理応答信号(BAck0、BAck1)を出力する。すなわち、対称型2入力C素子は、待ち合わせモジュールに相当する。
図14は、ハンドシェイク部分調停回路の回路構成例を示している。図13のハンドシェイク部分調停回路1330は、図14に示すハンドシェイク部分調停回路1400で構成できる。ハンドシェイク部分調停回路1400は、相互排他回路1410と、ハンドシェイク確認回路1420、1421とを有する。ハンドシェイク部分調停回路1400は、図9に示す非同期式調停回路900から、マルチプレクサ940と、OR素子930と、対称型2入力C素子950、951とを除いた部分回路と等価である。ハンドシェイク部分調停回路1400には、要求信号Ri0、Ri1と、応答信号Ao0、Ao1とが入力される。また、ハンドシェイク部分調停回路1400は、要求信号Ro0、Ro1と、応答信号Ai0、Ai1とを出力する。
図14の要求信号Ri0、Ro0は、それぞれ図13のデータ要求信号Ri、Roに対応し、応答信号Ai0、Ao0は、それぞれ図13のデータ応答信号Ai、Aoに対応する。また、要求信号Ri1、Ro1は、それぞれ図13の混雑処理要求信号BReq、記憶制御信号BLtに対応し、応答信号Ai1、Ao1は、それぞれ図13の混雑処理応答信号BAck、記憶制御信号BLtに対応する。なお、図13では、図14の要求信号出力(Ro1)と応答信号入力(Ao1)とを短絡し、要求信号Ro1を、そのまま混雑情報記憶ラッチ1340の記憶制御信号BLtとすると共に、応答信号Ao1としている。これに代えて、ハンドシェイク部分調停回路1330と混雑情報記憶ラッチ1340との間に、記憶制御回路(LC)を設けてもよい。記憶制御回路(LC)は、図14の要求信号Ro1を受けて混雑情報記憶ラッチ1340に記憶制御信号BLtを出力し、その後、応答信号Ao1をハンドシェイク部分調停回路1330に出力する。
図13のハンドシェイク調停回路1310は、2つの分岐先からの混雑処理要求信号を1つに合流させる際のハンドシェイクの調停を行う。これに対し、ハンドシェイク部分調停回路1330(図14のハンドシェイク部分調停回路1400)は、データ要求信号と混雑処理要求信号とを合流させることなく、並行させたままハンドシェイクの調停を行う。ハンドシェイク部分調停回路1400は、データ混雑情報間調停モジュールに相当し、転送データと共に入力される非同期式分岐モジュールに対するデータ要求信号と、混雑処理要求信号との調停を行う。その結果により、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させる。
ハンドシェイク部分調停回路1400は、データ要求信号と混雑処理要求信号とのうちの何れか一方がある間は、他方の要求を保留して、一方の要求のハンドシェイクが完了すると、保留していた要求を出力するという動作を行う。ハンドシェイク部分調停回路1400は、混雑処理要求信号を受けて行う混雑情報を記憶する処理が完了するまでの間にデータ要求信号が入力されたときは、混雑情報の記憶が完了するまで、非同期式分岐モジュールへのデータ要求信号の出力を待機させる。ハンドシェイク部分調停回路1400は、混雑情報の記憶が完了すると、すなわち、混雑処理要求信号と混雑処理応答信号とのハンドシェイクが完了すると、待機させていたデータ要求信号を出力する。また、ハンドシェイク部分調停回路1400は、非同期式分岐モジュールがデータ要求信号に応答して転送データの転送している間に混雑処理要求信号が入力されたときは、転送データについてのハンドシェイクが完了するまで、混雑処理要求信号を待機させる。
相互排他回路1410は、データ要求信号(Ri0)と混雑処理要求信号(Ri1)とを入力し、入力信号のうちの一方を通過させ、他方を、通過させた信号の取り下げまで待機させる。相互排他回路1410は、図10に示す構成の相互排他回路1000で構成できる。相互排他回路1410は、混雑処理要求信号とデータ要求信号との双方が入力されたときは、先着した信号を通過させ、遅れて到着した方の信号を、先着した信号の取り下げまで待機させる。相互排他回路1410は、データ要求信号Ri0=1が先着したときは、内部信号(GE0,GE1)=(1,0)を出力し、混雑処理要求信号が先着したときは、内部信号(GE0,GE1)=(0,1)を出力する。
ハンドシェイク確認回路1420は、入力端子の一方が相互排他回路1410を通過したデータ要求信号(GE0)に接続され、他方がインバータを介して混雑処理応答信号(Ao1)に接続されるAND素子を含む。ハンドシェイク確認回路1421は、入力端子の一方が相互排他回路1410を通過した混雑処理要求信号(GE1)に接続され、他方がインバータを介してデータ応答信号(Ao0)に接続されるAND素子を含む。ハンドシェイク確認回路1420、1421は、ハンドシェイク部分調停回路1400が仲介中のハンドシェイクがないときは、相互排他回路を通過した混雑処理要求信号又はデータ要求信号を通過させる。ハンドシェイク確認回路1420、1421は、仲介中のハンドシェイクがあるときは、相互排他回路1410を通過した混雑処理要求信号又はデータ要求信号を、仲介中のハンドシェイクの完了まで待機させる。
図13に戻り、混雑情報記憶ラッチ1340は、非同期式分岐モジュールの分岐先について混雑情報を記憶する混雑情報記憶メモリである。混雑情報記憶ラッチ1340は、2つの分岐先のそれぞれについて、混雑あり、混雑なしを示す情報を記憶する。混雑情報記憶ラッチ1340は、ハンドシェイク部分調停回路1330が混雑処理要求信号を通過させると、つまり、ハンドシェイク部分調停回路1330が出力する記憶制御信号がBLt=1になると、記憶する混雑情報を更新する。
マルチプレクサ1320、1321は、メモリ記憶制御モジュールを構成する。メモリ記憶制御モジュールは、ハンドシェイク部分調停回路1330が混雑処理要求信号を通過させると、分岐先から受け取った混雑情報を、混雑情報記憶ラッチ1340に記憶させる。メモリ記憶制御モジュールは、混雑情報記憶ラッチ1340における、ハンドシェイク調停回路1310を通過した混雑処理要求信号を出力した分岐先に対応する混雑情報を、当該分岐先から入力される混雑情報(BP0、BP1)で更新させる。そして、その他の分岐先に対応する混雑情報を、混雑情報記録ラッチ1340が記憶する混雑情報(BLo0、BLo1)に保持させるように動作する。
マルチプレクサ1320は、分岐先0番に対応している。マルチプレクサ1320は、分岐先0番の混雑検知モジュールからの混雑情報信号BP0と、混雑情報記憶ラッチ1340が記憶している分岐先0番の混雑情報信号(BLo0)との何れかを選択的に出力する。マルチプレクサ1321は、分岐先1番に対応している。マルチプレクサ1321は、分岐先1番の混雑検知モジュールからの混雑情報信号BP1と、混雑情報記憶ラッチ1340が記憶している分岐先1番の混雑情報信号BLo1との何れかを選択的に出力する。
マルチプレクサ1320、1321は、ハンドシェイク調停回路1310が出力する調停結果信号Gr0、Gr1に基づいて、2つの入力のうちの何れを出力するかを決定する。マルチプレクサ1320は、Gr0=1のとき、つまり、ハンドシェイク調停回路1310が分岐先0番からの混雑処理要求信号をハンドシェイク部分調停回路1330に出力するとき、混雑情報記憶ラッチ1340に分岐先0番からの混雑情報信号を出力する。マルチプレクサ1320は、Gr0=0のとき、混雑情報記憶ラッチ1340が記憶している分岐先0番の混雑情報信号を、混雑情報記憶ラッチ1340に出力する。マルチプレクサ1321は、Gr1=1のとき、つまり、ハンドシェイク調停回路1310が分岐先1番からの混雑処理要求信号をハンドシェイク部分調停回路1330に出力するとき、混雑情報記憶ラッチ1340に分岐先1番からの混雑情報信号を出力する。マルチプレクサ1321は、Gr1=0のとき、混雑情報記憶ラッチ1340が記憶している分岐先1番の混雑情報信号を、混雑情報記憶ラッチ1340に出力する。
経路計算回路1350は、非同期式分岐モジュールが有する分岐先のうち、転送データの転送先のコアに到達可能な分岐先を、転送データの出力先として決定する。その際、経路計算回路1350は、転送先のコアに到達可能な分岐先が複数あるときは、混雑情報記憶ラッチ1340が記憶する混雑情報を参照して、混雑が生じていない分岐先を、転送データ出力先として、優先的に選ぶ。経路計算回路1350は、例えば、分岐先0番を転送データの出力先として決定したときは選択信号S0=1、S1=0を出力し、分岐先1番を転送データの出力先として決定したときは、選択信号S0=0、S1=1を出力する。非同期式分岐モジュールは、選択信号に従って、分岐先の何れかに転送データ及びデータ要求信号を出力する。
初期状態では、混雑回避経路計算回路1300に入力される信号は、データ要求信号Ri=0、データ応答信号Ao=0、混雑処理要求信号BReq0=0、BReq1=0である。また、混雑回避経路計算回路1300が出力する信号は、データ要求信号Ro=0、データ応答信号Ai=0、混雑処理応答信号BAck0=0、BAck1=0である。混雑情報記憶ラッチ1340に入力される記憶制御信号はBLt=0である。混雑情報記憶ラッチ1340は、混雑回避経路計算回路1300が接続される非同期式分岐モジュールの分岐先0番及び分岐先1番に対して、それぞれ混雑なしを示す情報を記憶しているとする(BLo0=0、BLo1=0)。その他の信号は、任意である。混雑回避経路回路1300は、初期状態で、データ要求信号がRi=1となるのを待ちつつ、分岐先からの混雑処理要求信号の少なくとも一方が1になるのを待つ(図4のステップC1、C2)。
データ要求信号がRi=0のとき、分岐先0番からの混雑処理要求信号がBReq0=1、又は、分岐先1番からの混雑処理要求信号がBReq1=1になったとする。この場合、混雑回避経路計算モジュール1300は、ステップC2からステップC3へ進む。ハンドシェイク調停回路1310は、ステップC3で、混雑処理要求信号を調停し、混雑処理要求信号BReq0=1か、BReq1=1の一方を選択する。ハンドシェイク調停回路1310は、双方の分岐先から混雑処理要求信号が入力されたとき、つまり、情報BReq0=1で、かつ、BReq1=1のときは、2つの分岐先のうち、BReq=1が先着した方の分岐先を選択する。
ハンドシェイク調停回路1310は、混雑処理要求信号の調停結果に従って、調停結果信号(Gr0,Gr1)=(1,0)又は(0,1)を出力する。調停結果信号が(Gr0,Gr1)=(1,0)のとき、マルチプレクサ1320は、分岐先0番からの混雑情報信号BP0を選択し、マルチプレクサ1321は、混雑情報記憶ラッチ1340が記憶している混雑情報BLo1を選択する。このとき、混雑情報記憶ラッチ1340への入力信号は、(BLi0,BLi1)=(BP0,BLo1)となる。また、調停結果信号が(GR0,Gr1)=(0,1)のとき、マルチプレクサ1320は、混雑情報記憶ラッチ1340が記憶している混雑情報BLo0を選択し、マルチプレクサ1321は、分岐先1番からの混雑情報信号BP1を選択する。このとき、混雑情報記憶ラッチ1340への入力信号は、(BLi0,BLi1)=(BLo0,BP1)となる。
ハンドシェイク調停回路1310は、混雑処理要求信号がBReq0=1又はBReq1=1になると、ハンドシェイク部分調停回路1330に、混雑処理要求信号BReq=1を出力する。ハンドシェイク部分調停回路1330は、データ要求信号が未着でRi=0なので、混雑処理要求信号を通過させ、混雑情報記憶ラッチ1340に記憶制御信号BLt=1を出力する。混雑情報記憶ラッチ1340は、記憶制御信号がBLt=1になることで、マルチプレクサ1320、1321が出力する混雑情報信号を記憶する(ステップC4)。
混雑情報記録ラッチ1340は、ハンドシェイク調停回路1310で分岐先0番からの混雑処理要求信号が選択されていた場合、すなわち、調停結果信号が(Gr0,Gr1)=(1,0)の場合、分岐先0番に対応する混雑情報として、分岐先0番からの混雑情報信号BP0の値を記憶し、分岐先1番に対応する混雑情報として、混雑情報記憶ラッチが記憶している混雑情報BLo1の値を記憶する。つまり、混雑情報記憶ラッチ1340は、分岐先1番に対応する混雑情報を分岐先0番からの混雑情報信号BP0の値に更新し、分岐先0番に対応する混雑情報は更新しない。
混雑情報記録ラッチ1340は、ハンドシェイク調停回路1310で分岐先1番からの混雑処理要求信号が選択されていた場合、すなわち、調停結果信号が(Gr0,Gr1)=(0,1)の場合、分岐先1番に対応する混雑情報として、分岐先1番からの混雑情報信号BP1の値を記憶し、分岐先0番に対応する混雑情報として、混雑情報記憶ラッチ1340が記憶している混雑情報BLo0の値を記憶する。つまり、混雑情報記憶ラッチ1340は、分岐先0番に対応する混雑情報は更新せずに、分岐先1番に対応する混雑情報を分岐先1番からの混雑情報信号BP1の値に更新する。
ハンドシェイク部分調停回路1330は、記憶制御信号BLtを応答信号Ao1(図14)として入力しており、記憶制御信号がBLt=1なることで、ハンドシェイク調停回路1310に、混雑処理応答信号BAck=1を出力する。ハンドシェイク調停回路1310は、ステップC3で選択した分岐先に対し、混雑処理応答信号を出力する(ステップC5)。ハンドシェイク調停回路1310は、ステップC3で分岐先0番からの混雑処理要求信号BReq0=1を選択したときは、分岐先0番に対して、混雑処理応答信号BAck0=1を出力する。また、ハンドシェイク調停回路1310は、ステップC3で分岐先1番からの混雑処理要求信号BReq1=1を選択したときは、分岐先1番に対して、混雑処理応答信号BAck1=1を出力する。
混雑回避経路計算回路1300が、ステップC5で混雑処理応答信号BAck0=1又はBAck1=1を出力すると、混雑処理応答信号を受け取った混雑検知モジュールは、混雑処理要求信号とデータ応答信号とを待ち合わせた上で、混雑処理要求信号を取り下げる。混雑処理要求信号が取り下げられ、混雑回避経路計算回路1300に入力される混雑処理要求信号がBReq0=0又はBReq0=0になると、ハンドシェイク調停回路1310は、調停結果信号(Gr0,Gr1)=(0,0)を出力する。またそれと共に、ハンドシェイク調停回路1310は、混雑情報記憶ラッチ1340への要求信号を取り下げてBReq=0を出力する。
ハンドシェイク部分調停回路1330は、混雑処理要求信号がBReq=0になると、混雑情報記憶ラッチ1340へ出力する記憶制御信号を取り下げてBLt=0とする。また、ハンドシェイク部分調停回路1330は、記憶制御信号の取り下げと同時に、ハンドシェイク調停回路1310に出力する混雑処理応答信号を取り下げてBAck=0とする。ハンドシェイク調停回路1310は、ハンドシェイク部分調停回路1330が混雑処理応答信号をBAck=0に取り下げると、分岐先0番又は分岐先1番に出力する混雑処理応答信号をBAck0=0又はBAck1=0に取り下げる。これで、混雑回避経路計算回路1300は、初期状態に戻る。
混雑回避経路計算回路1300は、ハンドシェイク部分調停回路1330にデータ要求信号Ri=1が入力されると、ステップC2からステップC6へ進む。混雑回避経路計算回路1300は、ステップC6で転送データの転送先を決定した上で、非同期式分岐モジュールに、転送データとデータ要求信号Ro=1とを出力する処理を行う。ただし、混雑回避経路計算回路1300は、データ要求信号がRi=1になっても、それに先行して、ハンドシェイク部分調停回路1330に混雑処理要求信号BReq=1が入力されている場合がある。この場合は、ハンドシェイク部分調停回路1330が混雑処理応答信号を取り下げまで、データ要求信号Ro=1の出力を保留する。
経路計算回路1350は、混雑情報記憶ラッチ1340が記憶する混雑情報と、データ入力端子に入力された転送データの目的地情報とから、非同期式分岐モジュールの分岐先のうちの何れかを、転送分岐先として決定する。経路計算回路1350は、まず、ステップC6で、目的地までの経路上にある分岐先を、選択可能分岐先として列挙する。経路計算回路1350は、例えば、分岐先ごとに、どのコアまで到達可能かを示す情報を記憶しており、その情報を参照して、目的地となるコアまで到達可能な分岐先を、選択可能分岐先として列挙する。次いで、経路計算回路1350は、ステップC7で、選択可能分岐先が1つであるか否かを判断する。経路計算回路1350は、選択可能分岐先が1つのときは、ステップC8に進み、その選択可能分岐先を転送分岐先として決定する。
経路計算回路1350は、選択可能分岐先が複数あるとき、つまり、非同期式分岐先モジュールが持つ2つの分岐先の双方が選択可能分岐先であるときは、混雑情報記録ラッチ1340を参照して、混雑ありではない分岐先を、優先的に転送分岐先として選択する。経路計算回路1350は、選択可能分岐先について混雑の有無を調べ、ステップC9で、選択可能分岐先のうち、何れか一方が混雑ありで、他方が混雑なしを示しているか否かを判断する。経路計算回路1350は、何れか一方が混雑なしを示しているときは、ステップC10へ進み、混雑なしを示す分岐先を、転送分岐先として決定する。経路計算回路1350は、選択可能分岐先の双方の混雑なしを示しているか、或いは、双方が混雑ありを示しているときは、ステップC9からステップC11へ進み、選択可能分岐先のうちの任意の分岐先を、転送分岐先として決定する。
経路計算回路1350は、ステップC8、C10、又は、C11で決定した転送分岐先が、非同期式分岐モジュールの分岐先0番のときは、ステップC12からステップC13へ進む。経路計算回路1350は、ステップC13で選択信号(S0,S1)=(1,0)を非同期式分岐モジュールに出力する。このとき、混雑回避経路計算回路1300は、選択信号と共に、データ入力端子に入力された転送データと、ハンドシェイク部分調停回路1330を通過したデータ転送要求Ro=1とを、非同期式分岐モジュールに出力する。
経路計算回路1350は、転送分岐先が、非同期式分岐モジュールの分岐先1番のときは、ステップC12からステップC14へ進み、選択信号(S0,S1)=(0,1)を非同期式分岐モジュールに出力する。このとき、混雑回避経路計算回路1300は、選択信号と共に、データ入力端子に入力された転送データと、ハンドシェイク部分調停回路1330を通過したデータ転送要求Ro=1とを、非同期式分岐モジュールに出力する。
混雑回避経路計算回路1300は、ステップC15で、非同期式分岐モジュールから、データ要求信号Ro=1に対するデータ応答信号Ao=1が入力されるのまで待機する。ハンドシェイク部分調停回路1330は、データ応答信号Ao=1が入力されると、ステップC16で、データ応答信号Ai=1を出力する。ハンドシェイク部分調停回路1330は、出力したデータ応答信号Ai=1に対して、データ要求信号が取り下げられRi=0となると、出力するデータ要求信号を取り下げてRo=0とする。その後、ハンドシェイク部分調停回路1330は、データ要求信号の取り下げRo=0に対して、入力するデータ応答信号がAo=0に取り下げられると、出力するデータ応答信号を取り下げてAi=0とする。これで、混雑回避経路計算回路1300は、初期状態に戻る。
図6に戻り、非同期式コア間接続回路600が、マスタB603からスレーブB604へ対して、データ681〜683を含むデータ列を転送している場合を考える。データ列は、データ681に対して先行するデータと、データ683に対して後続するデータとを含むとする。また、非同期式コア間接続回路600では、マスタB603からスレーブ604へ、非同期式調停回路612を占有してデータ転送を行っている状態であるとする。
非同期式調停回路612に接続される混雑検知回路632は、データ転送中のマスタB603へ、混雑処理要求信号と、混雑なしを示す混雑情報信号とを出力している。また、混雑感知回路632は、データ転送を待機させられることになる非同期式分岐回路611に接続される混雑回避経路計算回路631へは、混雑処理要求信号と、混雑ありを示す混雑情報信号とを出力している。混雑回避経路計算回路631は、対応する非同期式分岐回路611の分岐先の一方である非同期式調停回路612に接続される混雑検知回路632から、混雑ありを示す混雑情報信号を受け取る。そのとき、混雑回避経路計算回路631は、非同期式調停回路612方向の分岐先について、混雑ありを示す混雑情報を記憶している。
非同期式分岐回路611の分岐先のもう一方である非同期式調停回路622は、データ転送を行っていないものとする。このとき、非同期式調停回路622に接続された混雑検知回路642は、混雑回避経路計算回路631に対して、混雑処理要求信号を出力していない。混雑回避経路計算回路631は、非同期式調停回路642方向の分岐先については、混雑なしを示す混雑情報を記憶している。混雑回避経路計算回路631は、非同期式調停回路642方向の分岐先について、混雑検知回路642から混雑処理要求信号と混雑ありを示す混雑情報とが入力されるまで、混雑なしを示す混雑情報を記憶し続ける。
混雑回避経路計算回路631に、マスタA601から、スレーブA602を目的地とするデータ列(データ691〜694)が到達したとする。混雑回避経路計算回路631は、混雑情報に対する処理を行っていない状態で、転送データの転送分岐先を決定する。図6では、非同期式分岐回路611が有する2つの分岐先、すなわち、非同期式調停回路612と非同期式調停回路622の何れへ転送データを出力しても、転送データは、その目的地であるスレーブA602へ到達可能である。
混雑回避経路計算回路631は、非同期式調停回路612方向の分岐先の混雑情報と、非同期式調停回路622方向の分岐先の混雑情報とを調べる。混雑回避経路計算回路631は、非同期式調停回路612方向の分岐先の混雑情報が混雑ありを示し、非同期式調停回路622方向への分岐先の混雑情報が混雑なしを示すので、非同期式調停回路622方向の分岐先を、転送分岐先として決定する。混雑回避経路計算回路631は、非同期式分岐回路611に対し、非同期式調停回路622方向の分岐先を選択する旨の選択信号を出力する。非同期式分岐回路611は、選択信号に従って、データ691〜694を、非同期式分岐回路622に向けて順次出力する。非同期式コア間接続回路600は、混雑を検知して、その混雑を回避する経路設定が可能となるという効果がある。
ここで、データ691〜694の転送の間に、データ681〜683、及び、その先行データと後続データとの転送が継続されていたとすると、混雑回避経路計算回路631は、混雑検知回路632から、断続的に混雑情報信号と混雑処理要求信号とが入力されることになる。ここで、混雑回避経路計算回路631は、ハンドシェイク部分調停回路1330(図13)を含む構成となっている。ハンドシェイク部分調停回路1330は、転送データのハンドシェイク完了まで混雑処理要求信号を保留して待機させることで、混雑回路経路計算回路631は、データ691〜694のそれぞれの転送の際に、混雑情報記憶ラッチ1340を更新しない。従って、非同期式コア間接続回路600は、非同期式分岐回路631に直接接続されているパイプライン・ラッチでデータ691〜694を記憶するタイミングでの不正なラッチ入力のデータ変化に起因するタイミング違反を防止する効果がある。
非同期式コア間接続回路600の入出力は、同一半導体回路、又は、異なる半導体回路上に実装された任意の論理回路に接続することが可能である。非同期式コア間接続回路600は、接続の際に、接続対象の論理回路のクロック同期の有無、或いは、クロック同期している場合にはクロック周波数や位相の考慮が不必要であるという効果がある。
続いて、本発明の第2実施形態について説明する。第1実施形態及び第1実施例で用いたデータ転送方式は、転送データのそれぞれに目的地情報を含めている。以下、このようなデータ転送方式を、第1のデータ転送方式と呼ぶ。第1のデータ転送方式は、転送データのそれぞれが目的情報を含んでいることから、データ転送経路の帯域幅の使用効率が低い。これに対し、送信側で、同一目的地へのデータに目的地情報を付加して生成したデータを分割し、分割で得られる一連の単位データ列のうちの先頭に目的地情報を含め、単位データ列の全ての分割データを同一の経路で転送する方式がある。帯域幅の高い使用効率のためには、この方式が好ましい。以下、このようなデータ転送方式を第2のデータ転送方式と呼ぶ。
送受信の処理装置の簡潔性の観点からも、第2のデータ転送方式が好ましい。すなわち、同一目的地へ大規模なデータを転送する場合を考えると、第1のデータ転送方式では、転送データをデータ転送経路幅に合わせて分割し、全ての分割データに対して目的情報を付加して転送することになる。第1のデータ転送方式では、分割データが異なる経路で転送される可能性があるため、送信処理装置で各分割データに順序情報を付加し、受信処理装置で到着した分割データを一時記憶し、その後、順序情報に従って分割データを並び替える機構が必要になる。一方、第2のデータ転送方式では、同一経路で単にデータ列の全ての分割データが転送されるため、順序情報を分割データに含める必要がなく、また、受信側で並べ替えを行う必要もない。このように、送受信の処理装置の関係性の観点からも、第2のデータ転送方式が好ましい。
ところが、第1実施例の非同期式コア間接続回路(図6)は、第1のデータ転送方式で転送されたデータに対して正しく機能するものの、第2のデータ転送方式を実現することができない。その理由の1つは、図9の非同期式調停回路900が、データ列中の分割データの転送のたびに調停結果を変化させる可能性があるからである。第1実施例の非同期式論理回路が第2のデータ転送方式を実現できないもう1つの理由は、第2分割データ以降の転送分岐先を正しく選択できないというところにある。
まず、非同期式調停回路900が、データ列中の分割データの転送のたびに調停結果を変化させる可能性があることについて説明する。第1実施例の非同期式論理回路で、第2のデータ転送方式を用いてデータ転送を行う場合を考える。非同期式調停回路900が初期状態にあるとき、合流元0番と合流元1番とから、それぞれデータ列とデータ要求信号とが到着し、最初に合流元0番からの先頭分割データが合流先に転送されるとする。
上記の場合、合流元0番からの先頭分割データの転送のためのハンドシェイクにおいて、先頭分割データが合流先へ出力された後に、合流元0番側から出力される先頭分割データのデータ要求が取り下げられる。このとき、相互排他回路910には、合流元1番からの先頭分割データに対するデータ要求が入力されているため、相互排他回路910は、出力を(GE0,GE1)=(0,1)に変化させる。合流元1番からのデータ要求が相互排他回路910を通過することで、非同期式調停回路900は、合流元1番からの先頭分割データ転送のハンドシェイクを開始する準備に入る。ハンドシェイク確認回路921は、合流元0番からの先頭分割データ転送のハンドシェイクの完了が確認するまで、合流元1番からの先頭分割データ転送のハンドシェイクを待機させる。
ハンドシェイク確認回路921は、合流元0番からの先頭分割データ転送のハンドシェイクの完了を確認すると、直ちに、合流元1番からの先頭分割データ転送のハンドシェイクを再開させる。従って、その後に、合流元0番から第2分割データ転送のデータ要求信号が到着しても、合流元0番からの第2分割データ転送のハンドシェイクは、合流元1番からの先頭分割データ転送のハンドシェイクが完了するまで待機させられることになる。このように、非同期式調停回路900を用いる第1実施例の非同期式論理回路は、第2のデータ転送方式を実現できない。
次いで、第2分割データ以降の転送分岐先を正しく選択できないことについて説明する。第1実施例で用いた非同期式論理回路(図13)の経路計算回路1350は、混雑情報記憶ラッチ1340に記憶されている混雑情報と、転送データに含まれる目的地情報とから、非同期式分岐モジュールの転送分岐先を選択する。しかし、第2のデータ転送方式では、目的地情報が単位データ列の先頭分割データ以外に含まれてないため、経路計算回路1350は、第2分割データ以降は、目的地に到達可能な転送分岐先を選択することができない。そこで、本実施形態は、第2のデータ転送方式でデータ転送を行うことができる非同期式論理回路を提供する。
本実施形態の非同期式論理回路の構成は、図1に示す第1実施形態の非同期式論理回路の構成と同様である。ただし、非同期式調停モジュール101及び混雑回避経路計算モジュール112の動作が、第1実施形態の非同期式論理回路における非同期式調停モジュール101及び混雑回避経路計算モジュール112の動作とそれぞれ異なる。その他の点は、第1実施形態と同様である。
本実施形態では、転送データ信号線に平行して、データ列先頭信号線と、データ列終端信号線とを設ける。データ列先頭信号線には、転送データ信号線にデータ列の先頭の分割データが転送されているか否かを示す先頭信号が出力される。つまり、データ列先頭信号線には、転送データ信号線に分割されたデータ列の先頭の分割データが転送されるとき、転送中の分割データがデータ列の先頭である旨を示す先頭信号が出力される。一方、転送データ信号線にデータ列の先頭以外の分割データが転送されるとき、データ列先頭信号線には、転送中の分割データがデータ列の先頭以外である旨を示す先頭信号が出力される。
データ列終端信号線には、転送データ信号にデータ列の終端の分割データが転送されているか否かを示す終端信号が出力される。つまり、データ列終端信号線には、転送データ信号線に分割されたデータ列の終端の分割データが転送されるとき、転送中の分割データがデータ列の終端である旨を示す終端信号が出力される。一方、転送データ信号線にデータ列の終端以外の分割データが出力されるとき、データ列終端信号線には、転送中の分割データがデータ列の終端以外である旨を示す終端信号が出力される。
本実施形態における非同期式調停モジュール101は、データ列の転送中に調停結果を変動しない動作を行い、単位データ列を構成する分割データを分断することなく連続的に出力する。このような動作を行う非同期式調停モジュールは、例えば、特願2008‐246187(調停回路、該調停回路に用いられる調停方法、該調停回路が設けられている半導体回路及びデジタルシステム)に記載されている。
非同期式調停モジュール101は、単位データ列の先頭分割データの出力から終端分割データの出力まで、非同期式調停モジュール101が何れの合流元からの転送データを出力しているかを示す調停結果を記憶する調停結果保存部を有する。非同期式調停モジュール101は、調停結果保存部が一の合流元からの転送データを出力している旨を記憶するとき、他の合流元からの転送データの出力を待機する。
また、本実施形態における混雑回避経路計算モジュール112は、先頭分割データに対して分岐先の選択を行い、それに後続する分割データは、直前の分割データの転送で選択した分岐先を選択するという動作を行う。すなわち、混雑回避経路計算モジュール112は、転送データが単位データ列の先頭分割データであるとき、先頭分割データに含まれる目的地情報に基づいて非同期式分岐モジュール102の転送分岐先を決定する。混雑回避経路計算モジュール112は、転送データが単位データ列の先頭以外の非先頭分割データのときは、先頭分割データに対して決定した転送分岐先を、非同期式分岐モジュール102の転送分岐先として決定する。
図19は、データ列の転送中に調停結果を変更しない動作を行う非同期式調停モジュール101の動作手順を示している。はじめ、非同期式調停モジュール101は、初期状態にある。非同期式調停モジュール101は、データ要求入力端子に、データ要求入力信号が入力されたか否かを判断する(ステップE1)。非同期式調停モジュール101は、データ要求入力信号が入力されていないときは、繰り返しステップE1を実行し、データ要求入力信号が入力されるまで待機する。
非同期式調停モジュール101は、データ要求信号が入力されると、データ要求信号が入力されたデータ要求入力端子が、合流元0番側のデータ要求入力端子であるか否かを判断する(ステップE2)。ステップE2の判断に基づき、非同期式調停モジュール101は、調停結果信号を、調停結果出力端子から、混雑検知モジュール111に出力する。ここで、データ要求信号が入力されたデータ要求入力端子が合流元0番側のデータ要求入力端子であると判断したときは、合流元0番からの転送データがデータ出力端子から出力中であることを示す調停結果信号を出力する(ステップE3)。
非同期式調停モジュール101は、分割データと共に、データ列終端信号線に出力される終端信号から、入力された分割データが、データ列の終端であるか否かを判断する(ステップE4)。非同期式調停モジュール101は、入力された分割データがデータ列の終端でないと判断すると、ステップE3での調停結果、すなわち、合流元0番のデータ転送を行うという旨の調停結果を記憶する(ステップE5)。また、非同期式調停モジュール101は、合流元0番のデータ入力端子から入力する転送データを、データ出力端子から合流先に出力する(ステップE6)。非同期式調停モジュール101は、ステップE4で、入力された分割データがデータ列の終端であると判断したときは、ステップE4からステップE6へ進み、転送データを出力する。
非同期式調停モジュール101は、前述のとおりステップE2の判断に基づき、調停結果信号を、調停結果出力端子から、混雑検知モジュール111に出力する。ステップE2で、データ要求信号が入力されたデータ要求入力端子が合流元1番のデータ要求入力端子であると判断すると、合流元1番からの転送データがデータ出力端子から出力中であることを示す調停結果信号を出力する(ステップE7)。
非同期式調停モジュール101は、分割データと共に、データ列終端信号線に出力される終端信号から、入力された分割データが、データ列の終端であるか否かを判断する(ステップE8)。非同期式調停モジュール101は、ステップE8で、入力された分割データがデータ列の終端でないと判断すると、ステップE7での調停結果を記憶する(ステップE9)。また、非同期式調停モジュール101は、合流元1番のデータ入力端子から入力する転送データを、データ出力端子から合流先に出力する(ステップE10)。非同期式調停モジュール101は、ステップE8で、入力された分割データがデータ列の終端であると判断したときは、ステップE8からステップE10へ進み、転送データを出力する。
非同期式調停モジュール101は、合流元0番及び合流元1番の双方からデータ要求信号が入力されたときは、何れか一方を選択する。非同期式調停モジュール101は、2つのデータ要求信号のうち、例えば先着したデータ要求信号を選択する。非同期式調停モジュール101は、合流元0番からのデータ要求信号を選択したときは、ステップE2からステップE3へ進み、調停結果の出力と合流元0番からの転送データの出力とを行う。一方、非同期式調停モジュール101は、合流元1番からのデータ要求信号を選択したときは、ステップE2からステップE7へ進み、調停結果の出力と、合流元1番からの転送データの出力とを行う。非同期式調停モジュール101は、選択しなかった側のデータ要求信号については、選択した側のデータ列の全ての分割データの転送が完了するまで保留する。
非同期式調停モジュール101は、ステップE3又はE7で調停結果を出力した後、データ要求出力端子から、混雑検知モジュール111にデータ要求信号を出力する(ステップE11)。非同期式調停モジュール101は、データ要求信号の出力後、データ応答入力端子にデータ応答信号が入力されたか否かを判断する(ステップE12)。非同期式調停モジュール101は、データ応答信号が入力されてないときは、ステップE12を繰り返し行い、データ応答信号が入力されるまで待機する。
非同期式調停モジュール101は、データ応答信号が入力されると、ステップE3又はE7で出力した調停結果信号が、合流元0番からの転送データがデータ出力端子から出力中であることを示しているか否かを判断する(ステップE13)。非同期式調停モジュール101は、調停結果信号が、合流元0番からの転送データがデータ出力端子から出力中であることを示すときは、合流元0番に対応したデータ応答出力端子から、データ応答信号を出力する(ステップE14)。
非同期式調停モジュール101は、分割データと共に転送される終端信号に基づいて、転送した分割データがデータ列の終端であるか否かを判断する(ステップE15)。非同期式調停モジュール101は、転送した分割データがデータ列の終端であるときは、ステップE5で記憶した、合流元0番からのデータを転送中であるという調停結果を解放する(ステップE16)。非同期式調停モジュール101は、ステップE15でデータ列の終端ではないと判断したとき、すなわち、転送した分割データが、データ列の先頭又は中間のデータであるときは、調停結果の解放は行わない。
非同期式調停モジュール101は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、調停結果が記憶されているか否かを判断する(ステップE17)。非同期式調停モジュール101は、ステップE16で調停結果記憶が解放されているときは、ステップE17で調停結果が記憶されていないと判断する。非同期式調停モジュール101は、ステップE17で調停結果が記憶されていないと判断すると、ステップE1(初期状態)に戻る。
非同期式調停モジュール101は、調停結果が記憶されていると判断すると、合流元0番のデータ要求入力端子に、データ要求入力信号が入力されたか否かを判断する(ステップE18)。非同期式調停モジュール101は、合流元0番のデータ要求端子入力端子にデータ要求入力信号が入力されていないときは、繰り返しステップE18を実行し、合流元0番からデータ要求入力信号が入力されるまで待機する。非同期式調停モジュール101は、ステップE18で合流元0番からデータ要求入力信号が入力されたと判断すると、ステップE3に進み、調停結果の出力を行う。
非同期式調停モジュール101は、ステップE13で、調停結果信号が、合流元1番からの転送データがデータ出力端子から出力中であることを示すと判断したときは、合流元1番に対応したデータ応答出力端子から、データ応答信号を出力する(ステップE19)。非同期式調停モジュール101は、分割データと共に転送される終端信号に基づいて、転送した分割データがデータ列の終端であるか否かを判断する(ステップE20)。
非同期式調停モジュール101は、ステップE20で、転送した分割データがデータ列の終端であると判断すると、ステップE9で記憶した、合流元1番からのデータを転送中であるという調停結果を解放する(ステップE21)。非同期式調停モジュール101は、ステップE20でデータ列の終端ではないと判断したとき、すなわち、転送した分割データが、データ列の先頭又は中間のデータであるときは、調停結果の解放は行わない。
非同期式調停モジュール101は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、調停結果が記憶されているか否かを判断する(ステップE22)。非同期式調停モジュール101は、ステップE21で調停結果記憶が解放されているときは、ステップE22で調停結果が記憶されていないと判断する。非同期式調停モジュール101は、ステップE22で調停結果が記憶されていないと判断すると、ステップE1(初期状態)に戻る。
非同期式調停モジュール101は、ステップE22で、調停結果が記憶されていると判断すると、合流元1番のデータ要求入力端子に、データ要求入力信号が入力されたか否かを判断する(ステップE23)。非同期式調停モジュール101は、合流元1番のデータ要求端子入力端子にデータ要求入力信号が入力されていないときは、繰り返しステップE23を実行し、合流元1番からデータ要求入力信号が入力されるまで待機する。非同期式調停モジュール101は、ステップE23で合流元1番からデータ要求入力信号が入力されたと判断すると、ステップE7に進み、合流元1番からの転送データを、データ出力端子から合流先に出力する。
非同期式調停モジュール101は、データ列の先頭分割データの転送開始で、図19のステップE1、E2を経た後に、ステップE5又はE9で、調停結果を記憶する。非同期式調停モジュール101は、データ列の終端分割データ以外の分割データの転送中は、合流元0番からのデータ列転送であれば、ステップE3〜E6と、ステップE11〜E18を繰り返し実行して、同一データ列の転送を連続的に実行する。また、非同期式調停モジュール101は、合流元1番からのデータ列転送であれば、ステップE7〜E13とステップE19〜E23を繰り返し実行して、同一データ列の転送を連続的に実行する。
非同期式調停モジュール101は、転送データが終端分割データになると、データ列の終端分割データをステップE6又はE10で出力し、ステップE16又はステップE21で調停結果を解放する。非同期式調停モジュール101は、合流元0番からのデータ列転送であれば、ステップE16で調停結果を解放した後に、終端分割データの転送を完了させると、ステップE17からステップE1の初期状態の戻り、次のデータ転送の準備に入る。また、非同期式調停モジュール101は、合流元1番からのデータ列転送であれば、ステップE21で調停結果を解放した後に、終端分割データの転送を完了させると、ステップE21からステップE1の初期状態に戻り、次のデータ転送の準備に入る。
非同期式調停モジュール101は、先頭分割データの転送の際に調停結果を記憶し、調停結果が記憶されているときは、初期状態に戻らず、先頭分割データを受け取った合流元からのデータ要求信号を待って、その合流元からの分割データを転送する。このようにすることで、非同期式調停モジュール101は、例えば合流元0番からの先頭分割データを転送した後に、合流元1番からのデータ転送要求があったときでも、合流元0番から入力する分割データ列の転送を継続して行うことができる。つまり、非同期式調停モジュール101は、単位データ列を途中で分断することなく、データ列のデータ転送を合流させることができる。
なお、転送中の分割データが終端か否かの判断(ステップE4、E8、E15、E20)と、その判断に基づいて行われる調停結果の記憶(ステップE5、E9)と、調停結果記憶の開放(ステップE16、E21)の実行順序は、図19に示した実行順序には限定されない。これらのステップは、ステップE1の直前とステップE2の直前以外であれば、何れの順番で実行しても構わない。
図20は、本実施形態で用いる混雑回避経路計算モジュール112の動作手順を示している。はじめ、混雑回避経路計算モジュール112は、初期状態にある。混雑回避経路計算モジュール112は、データ要求入力端子に、データ要求信号が入力されたか否かを判断する(ステップF1)。混雑回避経路計算モジュール112は、データ要求信号の入力がないときは、混雑処理要求入力端子に、1以上の混雑処理要求信号が入力されたか否かを判断する(ステップF2)。混雑回避経路計算モジュール112は、混雑処理要求信号が入力されていないときは、ステップF1に戻り、データ要求信号又は混雑処理要求信号が入力されるまで待機する。
混雑回避経路計算モジュール112は、データ要求信号の入力がないときに、1以上の混雑処理要求入力端子に混雑処理要求信号が入力されると、そのうちの1つを選択する(ステップF3)。混雑回避経路計算モジュール112は、混雑情報記憶メモリに記憶している混雑情報のうち、混雑処理要求信号が入力された混雑処理要求入力端子に対応する分岐先の混雑情報を、当該混雑処理要求入力端子と同じ組の混雑情報入力端子に入力された混雑情報信号の値に更新する(ステップF4)。
混雑回避経路計算モジュール112は、混雑情報の更新後、当該混雑処理要求入力端子と同じ組の混雑処理応答出力端子から、混雑処理応答信号を出力する(ステップF5)。その後、混雑回避経路計算モジュール112は、入力する混雑処理要求信号の取り下げ、及び、出力する混雑処理応答信号の取り下げを経て、ステップF1(初期状態)に戻る。
混雑回避経路計算モジュール112は、ステップF1でデータ要求信号の入力があると判断すると、転送データがデータ列の先頭分割データであるか否かを判断する(ステップF6)。混雑回避経路計算モジュール112は、ステップF6で転送データが先頭分割データであると判断すると、データ入力端子に入力された転送データから目的地情報を抽出し、接続する非同期式分岐モジュール102の分岐先のそれぞれについて、目的地到達可能性の有無を判断する。混雑回避経路計算モジュール112は、目的地到達可能性がある分岐先を、選択可能分岐先として列挙する(ステップF7)。
混雑回避経路計算モジュール112は、選択可能分岐先が1つであるか否かを判断する(ステップF8)。つまり、混雑回避経路計算モジュール112は、非同期式分岐モジュールの2つの分岐先のうち、一方のみが目的地まで到達可能であるか否かを判断する。混雑回避経路計算モジュール112は、選択可能分岐先が1つのときは、その分岐先を転送分岐先として選択する(ステップF9)。
混雑回避経路計算モジュール112は、選択可能分岐先が1つでないときは、混雑情報を参照し、選択可能分岐先の混雑の有無を調べる。混雑回避経路計算モジュール112は、混雑なしの分岐先が1つであるか否かを判断する(ステップF10)。つまり、混雑回避経路計算モジュール112は、2つの選択可能分岐先のうち、何れか一方が混雑ありで、他方が混雑なしであるか否かを判断する。混雑回避経路計算モジュール112は、混雑している分岐先が1つのときは、混雑していない方の分岐先(非混雑分岐先)を、転送分岐先として選択する(ステップF11)。混雑回避経路計算モジュール112は、混雑している分岐先が1つでない、すなわち、2つの選択分岐先の双方が混雑あり又は混雑なしである場合は、所定の手法により一方の分岐先を転送分岐先として選択する(ステップF12)。
混雑回避経路計算モジュール112は、ステップF9、F11、又は、F12で転送先を選択した後、転送分岐先として選択した分岐先が分岐先0番であるか否かを判断する(ステップF13)。混雑回避経路計算モジュール112は、ステップF13で転送分岐先が分岐先0番であると判断すると、非同期式分岐モジュール102に、分岐先0番を示す選択信号を送る。また、混雑回避経路計算モジュール112は、データ入力端子に入力される転送データと、データ要求入力端子に入力されるデータ要求信号とを、それぞれデータ出力端子及びデータ要求出力端子から、非同期式分岐モジュール102に出力する(ステップF15)。
混雑回避経路計算モジュール112は、ステップF13で転送分岐先が分岐先0番ではないと判断すると、すなわち、転送分岐先が分岐先1番であると判断すると、非同期式分岐モジュール102に、分岐先1番を示す選択信号を送る。また、混雑回避経路計算モジュール112は、データ入力端子に入力される転送データと、データ要求入力端子に入力されるデータ要求信号とを、それぞれデータ出力端子及びデータ要求出力端子から、非同期式分岐モジュール102に出力する(ステップF16)。
混雑回避経路計算モジュール112は、ステップF15又はF16でデータ要求信号を出力した後、出力したデータ要求信号に対するデータ応答信号がデータ応答入力端子に入力されたか否かを判断する(ステップF17)。混雑回避経路計算モジュール112は、データ応答信号が入力されていないときは、ステップF17を繰り返し実行し、データ応答信号が入力されるまで待機する。混雑回避経路計算モジュール112は、データ応答入力端子にデータ応答信号が入力されると、データ応答出力端子から、データ応答信号を出力する(ステップF18)。その後、混雑回避経路計算モジュール112は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップF1(初期状態)に戻る。
混雑回避経路計算モジュール112は、ステップF6で転送データが先頭分割データではないと判断すると、直前の転送データの転送分岐先として選択した分岐先が分岐先0番であるか否かを判断する(ステップF14)。混雑回避経路計算モジュール112は、直前の転送データの転送分岐先が分岐先0番であると判断すると、ステップF15に進み、非同期式分岐モジュール102に分岐先0番を示す選択信号を送ると共に、転送データとデータ要求信号とを、非同期式分岐モジュール102に出力する。混雑回避経路計算モジュール112は、直前の転送データの転送分岐先が転送先1番であると判断すると、ステップF16に進み、非同期式分岐モジュール102に分岐先1番を示す選択信号を送ると共に、転送データとデータ要求信号とを、非同期式分岐モジュール102に出力する。
非同期式分岐モジュール102の動作は、第1実施形態で説明した動作(図5)と同様である。すなわち、非同期式分岐モジュール102は、図5に示すフローチャートに従って、上記の動作を行う混雑回避経路計算モジュール112から受け取った選択信号に応じて、分岐先0番又は分岐先1番に、転送データとデータ要求信号と出力する。
混雑回避経路計算モジュール112は、転送データが先頭分割データであるときは、第1実施形態で用いた混雑回避経路計算モジュールと同様な動作で、目的地情報に基づいて、転送分岐先の選択を行い、先頭分割データを転送する。また、混雑回避経路計算モジュール112は、転送データが先頭分割データ以外の分割データであるときは、先行する分割データで選択された転送分岐先へ、分割データを転送する。このような動作を行うことで、先頭分割データ以外に目的地情報が含まれない第2のデータ転送方式でも、単位データ列内の全ての分割データを同一の経路で転送することができる。
続いて、第2実施例を説明する。本実施例の半導体回路に含まれる非同期式コア間接続回路における各回路の接続形態は、図6に示す非同期式コア間接続回路600における各回路の接続形態と同様である。非同期式分岐モジュール611には、第1実施例と同様に、図7に示す回路構成の非同期式分岐回路700を用いることができる。また、混雑検知モジュール632、642には、第1実施例と同様に、図12に示す回路構成の混雑検知回路1200を用いることができる。
本実施例では、非同期式調停モジュール612、614、622に、図9に示す非同期式調停回路900に代えて、データ列の転送中に調停結果を変動しない動作を行う非同期式調停回路を用いる。また、本実施例では、混雑回避経路計算モジュール631に、図13に示す混雑回避経路計算回路1300に代えて、先頭分割データに対して分岐先の選択を行い、それに後続する分割データは、直前の分割データの転送で選択した分岐先を選択するという動作を行う混雑回避経路計算回路を用いる。
図21は、第2実施例で用いる非同期式調停モジュールの回路構成例を示している。図6の非同期式調停モジュール612、614、622は、図21に示す非同期式調停回路(データ列連続転送用の非同期式調停回路)2100で構成できる。非同期式調停回路2100は、相互排他回路(MutEx)2110、ハンドシェイク確認回路2120、2121、OR素子2130、2170、2171、マルチプレクサ2140、対称型2入力C素子2150、2151、及び、非対称型3入力C素子2160、2161を有する。相互排他回路2110には、図10に示す構成の論理回路を用いることができる。また、対称型2入力C素子2150、2151には、図11に示す構成の論理回路を用いることができる。
非同期式調停回路2100には、2つの合流元(合流元0番、合流元1番)からの転送データと、2つの合流元からのデータ要求信号Ri0、Ri1とが入力される。転送データは、転送データが先頭分割データであるか否かを示す先頭信号Hi、及び、転送データが終端分割データであるか否かを示す終端信号Eiを含んでいる。また、非同期式調停回路2100には、合流先からのデータ応答信号Aoが入力される。非同期式調停回路2100は、先頭信号及び終端信号を含む転送データと、データ要求信号Roと、2つの合流元に対するデータ応答信号Ai0、Ai1と、混雑検知モジュールに対する調停結果信号Gr0、Gr1とを出力する。
非対称型3入力C素子2160、2161は、調停結果保存部に相当する。図22は、非対称型3入力C素子の論理回路を示している。図21の非対称型3入力C素子2160、2161は、図22に示す論理回路(非対称型3入力C素子)2200で構成できる。非対称型3入力C素子2200は、3つのAND素子と、1つのOR素子とで構成される。非対称型3入力C素子2200を、記号2201で表すこととする。
非対称型3入力C素子2200の入力A、B、Cと、出力Yとの関係は、真理値表2250で示すようになる。すなわち、非対称型3入力C素子2200は、入力が(A,B,C)=(1,1,0)又は(1,1,1)のときY=1を出力し、入力が(A,B,C)=(0,0,0)又は(1,0,0)のときY=0を出力する。非対称型3入力C素子2200は、入力(A,B、C)がその他の値の組合せのときは、直前の出力Yの値を維持する。
図21に戻り、非対称型3入力C素子2160には、調停結果信号Gr0と、合流元0番からの転送データの終端信号Ei0の反転信号と、合流元0番に出力するデータ応答信号Ai0の反転信号とが入力される。調停結果信号Gr0は図22の信号Aに対応し、終端信号Ei0の反転信号は信号Bに対応し、データ応答信号Ai0の反転信号は信号Cに対応する。非対称型3入力C素子2160の出力信号EE0は、合流元0番がデータ列の終端分割データ以外の分割データ(非終端分割データ)を転送中であるか否かを示す。
非対称型3入力C素子2161には、調停結果信号Gr1と、合流元1番からの転送データの終端信号Ei1の反転信号と、合流元1番に出力するデータ応答信号Ai1の否定とが入力される。調停結果信号Gr1は図22の信号Aに対応し、終端信号Ei1の反転信号は信号Bに対応し、データ応答信号Ai1の否定は信号Cに対応する。非対称型3入力C素子2161の出力信号EE1は、合流元1番がデータ列の非終端分割データを転送中であるか否かを示す。
OR素子2170は、合流元0番からのデータ要求信号Ri0と、合流元0番がデータ列の非終端データを転送中であるか否かを示す信号EE0との論理和を出力する。OR素子2171は、合流元1番からのデータ要求信号Ri1と、合流元1番がデータ列の非終端データを転送中であるか否かを示す信号EE1との論理和を出力する。相互排他回路2110は、OR素子2170の出力RE0とOR素子2171の出力RE1とを入力し、信号GE0、GE1を出力する。
相互排他回路2110は、OR素子2170又は2171を介して入力されたデータ要求信号のうちの何れかを通過させる。相互排他回路2110は、OR素子2170側、つまり、合流元0番側のデータ要求信号を通過させると、(GE0,GE1)=(1,0)を出力する。また、相互排他回路2110は、OR素子2171側、つまり、合流元1番側のデータ要求信号を通過させると、(GE0,GE1)=(0,1)を出力する。
ハンドシェイク確認回路2120、2121は、3入力1出力のAND素子を含む。ハンドシェイク確認回路2120、2121の入力のうちの1つは、相互排他回路2110を通過したデータ要求信号に接続される。他の1つは合流元0番又は合流元1番からのデータ要求信号Ri0、Ri1に接続される。そして、残りの1つは、インバータを介して、合流元1番又は合流元0番に出力するデータ応答信号Ai1、Ai0に接続される。
ハンドシェイク確認回路2120は、相互排他回路2110の出力信号GE0と、合流元0番からのデータ要求信号Ri0と、合流元1番に出力するデータ応答信号Ai1の反転信号との論理積をとる。ハンドシェイク確認回路2121は、相互排他回路2110の出力信号GE1と、合流元1番からのデータ要求信号Ri1と、合流元0番に出力するデータ応答信号Ai0の反転信号との論理積をとる。OR素子2130は、ハンドシェイク確認回路2120の出力と、ハンドシェイク確認回路2121の出力との論理和をとる。非同期式調停回路2100は、ハンドシェイク確認回路2120、2121の出力を、調停結果信号(Gr0、Gr1)として出力する。また、非同期式調停回路2100は、OR素子2130の出力を、合流先へのデータ要求信号Roとして出力する。
対称型2入力C素子2150には、合流先からのデータ応答信号Aoと、ハンドシェイク確認回路2120の出力Gr0とが入力される。対称型2入力C素子2151には、データ応答信号Aoと、ハンドシェイク確認回路2121の出力Gr1とが入力される。非同期式調停回路2100は、対称型2入力C素子2150の出力を、合流元0番へのデータ応答信号Ai0として出力する。また、非同期式調停回路2100は、対称型2入力C素子2151の出力を、合流元1番へのデータ応答信号Ai1として出力する。
対称型2入力C素子2150、2151は、ハンドシェイク確認回路2120、2121を通過したデータ要求信号と、データ要求信号に対するデータ応答信号とを待ち合わせる待ち合わせモジュールに相当する。この待ち合わせモジュールは、ハンドシェイク確認回路2120、2121を通過したデータ要求信号を入力した合流元に、データ応答信号を出力する。対称型2入力C素子2150は、合流元0番からのデータ要求信号が通過し、ハンドシェイク確認回路2120の出力がGr0=1となった後、データ応答信号がAo=1になるまで待ち、Ao=1になると、合流元0番へデータ応答信号Ao0=1を出力する。また、対称型2入力C素子2151は、合流元1番からのデータ要求信号が通過し、ハンドシェイク確認回路2121の出力がGr1=1となった後、データ応答信号がAo=1になるまで待ち、Ao=1になると、合流元1番へデータ応答信号Ao1=1を出力する。
マルチプレクサ2140は、合流元0番からの転送データ・先頭信号Hi0・終端信号Ei0と、合流元1番からの転送データ・先頭信号Hi1、終端信号Ei1とを入力する。マルチプレクサ2140の選択信号端子Sには、ハンドシェイク確認回路2121の出力Gr1が入力される。マルチプレクサ2140は、ハンドシェイク確認回路2121の出力がGr1=1のとき、つまり、ハンドシェイク確認回路2121が合流元1番からのデータ要求信号を通過させたとき、合流元1番からの転送データを出力する。また、マルチプレクサ2140は、ハンドシェイク確認回路2121の出力がGr1=0のとき、つまり、ハンドシェイク確認回路2120が合流元0番からのデータ要求信号を通過させたとき、合流元0番からの転送データを出力する。
ハンドシェイク確認回路2120の出力がGr0=1で、かつ、終端信号がEi0=0のときは、合流元0番がデータ転送元として選ばれ、かつ、転送する分割データが終端分割データではないときに相当する。このとき、非対称型3入力C素子2160は、EE0=1を出力し、合流元0番からのデータ列を転送している旨の調停結果を記憶する。終端信号がEi0=1で、かつ、対称型2入力C素子2150の出力がAi0=1のときは、転送する分割データが終端分割データで、かつ、合流元0番に出力されるデータ応答信号がAi0=1である。このとき、非対称型3入力C素子2160は、EE0=0を出力し、調停結果の記憶を解放する。
ハンドシェイク確認回路2121の出力がGr1=1で、かつ、終端信号がEi1=0のときは、合流元1番がデータ転送元として選ばれ、かつ、転送する分割データが終端分割データではないときに相当する。このとき、非対称型3入力C素子2161は、EE1=1を出力し、合流元1番からのデータ列を転送している旨の調停結果を記憶する。終端信号がEi1=1で、かつ、対称型2入力C素子2150の出力がAi1=1のときは、転送する分割データが終端分割データで、かつ、合流元1番に出力されるデータ応答信号がAi1=1である。このとき、非対称型3入力C素子2161は、EE1=0を出力し、調停結果の記憶を解放する。
図21の非同期式調停回路2100の各部の動作を、図19のフローチャートに対応させて説明する。初期状態では、非同期式調停回路2100の入出力及び内部の各信号は、Ri0=Ai0=Ei0=Ri1=Ai1=Ei1=Ro=Ao=Gr0=Gr1=0で、RE0=RE1=GE0=GE1=EE0=EE1=0とする。非同期式調停回路2100に、回路外部の合流元0番から、2つの分割データで構成されるデータ列が入力されたとする。非同期式調停回路2100には、データ要求入力信号Ri0=1が入力される(図19のステップE1)。
OR素子2170は、Ri0=1が入力されると、出力をRE0=1に変化させる。一方、OR素子2171は、合流元1番から入力するデータ要求信号がRi1=0で、また、合流元1番はデータ列の転送を行っていないためEE1=0であるので、RE1=0を出力する。相互排他回路2110は、合流元1番のデータ要求信号を通過させて、(GE0,GE1)=(1,0)を出力する。
ハンドシェイク確認回路2120は、合流元1番と合流先の間でハンドシェイクがない(Ai1=0)のため、外部から入力する合流元0番からのデータ要求信号がRi0=1となり、相互排他回路2110の出力がGE0=1となると、Gr0=1を出力する。ハンドシェイク確認回路2121は、相互排他回路2110の出力がGE1=0で、外部から入力する合流元1番からのデータ要求信号もRi1=0なので、Gr1=0を出力する。非同期式調停回路2100は、データ要求信号が合流元0番からであることを示していることから(ステップE2)、調停結果信号(Gr0,Gr1)=(1,0)を出力する(ステップE3)。
合流元0番から入力される分割データは、先頭分割データであって、終端分割データではないので、終端信号Ei0=0である(ステップE4)。非対称型3入力C素子2160の入力信号を図22で用いた記号も用いて表すと、(A,B,C)=(Gr0, ̄Ei0, ̄Ai0)=(1,1,1) ( ̄は論理否定)となる。従って、非対称型3入力C素子2160は、合流元0番が転送中であるという調停結果を記憶して、Y=EE0=1を出力する(ステップE5)。
マルチプレクサ2140は、調停結果が(Gr0,Gr1)=(1,0)であることから、合流元0番を選択し、合流元0番からの分割データ・先頭信号(Hi0)・終端信号(Ei0)を合流先に出力する(ステップE6)。また、OR素子2130は、ハンドシェイク確認回路2120の出力がGr=1となると、合流先に、データ要求信号Ro=1を出力する(ステップE11)。
非同期式調停回路2100は、合流先からのデータ応答信号を待ち受ける(ステップE12)。合流先から、データ要求信号出力に対するデータ応答信号Ao=1が入力されると、対称型2入力C素子2150は、Gr0=1で合流元0番が転送中であることから(ステップE13)、合流元0番へデータ応答信号Ai0=1を出力する(ステップE14)。このとき、Ei0=0、つまり、転送中の分割データは終端分割データではないので(ステップE15)、非対称型3入力C素子2160の入力は、
(A,B,C)=(Gr0、 ̄Ei0, ̄Ai0)=(1,1,0)
である。ここでは、調停結果の記憶は解放されず、非対称型3入力C素子2160の出力は、Y=EE0=1のままとなる。
(A,B,C)=(Gr0、 ̄Ei0, ̄Ai0)=(1,1,0)
である。ここでは、調停結果の記憶は解放されず、非対称型3入力C素子2160の出力は、Y=EE0=1のままとなる。
非同期式調停回路2100が、合流元0番にデータ応答信号Ai0=1を出力した後、合流元0番はデータ要求信号を取り下げ、非同期式調停回路2100に入力される合流元0番からのデータ要求信号はRi0=0になる。非対称型3入力C素子2160は、合流元0番がデータ要求信号の取り下げ後も、EE0=1を出力する。一方、合流元1番に対応する非対称型3入力C素子2161は、合流元1番に対して調停結果を記憶しておらず、出力はEE1=0のままである。
OR素子2170は、非対称型3入力C素子2160がEE0=1を出力することから、合流元0番がデータ要求信号を取り下げ、次の分割データに対応してRi0=1を入力するまでの間も、相互排他回路2110にRE0=1を出力する。一方、OR素子2171は、合流元1番がデータ要求信号をRi1=1に変化させると、RE1=1を出力する。従って、相互排他回路2110の入力の組み合わせは、合流元1番からがデータ要求信号Ri1に依存して決まり、(RE0,RE1)=(1,0)か(1,1)の何れかとなる。
図10の真理値表1050を参照すると、相互排他回路2110は、入力信号の組み合わせが(RE0,RE1)=(1,0)のとき、(GE0,GE1)=(1,0)を出力し、入力信号の組み合わせが(RE0,RE1)=(1,1)のとき、前の出力状態を維持する。従って、相互排他回路2110は、合流元0番からデータ要求信号Ri0=1が入力された後、データ要求信号が取り下げられる前、又は、データ要求信号が取り下げられている間に合流元1番からデータ要求信号Ri1=1を入力したとしても、(GE0,GE1)=(1,0)を出力し続けることになる。
ハンドシェイク確認回路2120は、合流元0番からのデータ要求信号がRi0=0になると、出力をGr0=0に変化させる。OR素子2130は、ハンドシェイク確認回路2120の出力がGr0=0となると、合流先に出力するデータ要求信号をRo=0にして、データ要求信号を取り下げる。合流先は、非同期式調停回路2100がデータ要求信号を取り下げると、データ応答信号を取り下げ、非同期式調停回路2100には、データ応答信号Ao=0が入力される。対称型2入力C素子2150は、入力が(Gr0,Ao)=(0,0)となることで、出力をAi0=0に変化させ、非同期式調停回路2100は、合流元0番に出力するデータ応答信号を取り下げる。
非同期式調停回路2100が合流元0番に出力するデータ応答信号を取り下げると、非対称型3入力C素子2160の入力は、
(A,B,C)=(Gr0, ̄Ei0, ̄Ai0)=(0,1,0)
となる。図22の真理値表2250を参照すると、(A,B,C)=(0,1,0)のとき、非対称型3入力C素子2160は、前の出力状態を維持する。従って、非対称型3入力C素子2160の出力はY=EE0=1のままであり、非対称型3入力C素子2160の調停結果の記憶は維持される。
(A,B,C)=(Gr0, ̄Ei0, ̄Ai0)=(0,1,0)
となる。図22の真理値表2250を参照すると、(A,B,C)=(0,1,0)のとき、非対称型3入力C素子2160は、前の出力状態を維持する。従って、非対称型3入力C素子2160の出力はY=EE0=1のままであり、非対称型3入力C素子2160の調停結果の記憶は維持される。
非同期式調停回路2100は、調停結果の記憶が維持されているため(ステップE17)、合流元0番からデータ要求信号Ri1=1が入力されたとしても、相互排他回路2110の出力は、(GE0,GE1)=(1,0)のままで変化はない。ハンドシェイク確認回路2120は、合流元0番から、次の分割データと、データ要求信号Ri1=1とが入力されると(ステップE18)、調停結果Gr0=1を出力する(ステップE3)。
合流元0番からの分割データは、2つの分割データから成るデータ列の2番目、すなわち、終端分割データであるので、終端信号はEi0=1である(ステップE4)。非同期式調停回路2100は、調停結果の記憶を行わずに、合流元0番からの分割データ・先頭信号・終端信号を合流先に出力する(ステップE6)。また、OR素子2130は、ハンドシェイク確認回路2120の出力がGr=1となると、データ要求信号Ro=1を出力する(ステップE11)。
非同期式調停回路2100は、合流先からのデータ応答信号を待ち受ける(ステップE12)。合流先から、データ要求信号出力に対するデータ応答信号Ao=1が入力されると、対称型2入力C素子2150は、Gr0=1で合流元0番が転送中であることから(ステップE13)、合流元0番へデータ応答信号Ai0=1を出力する(ステップE14)。このとき、Ei0=1、つまり、転送中の分割データは終端分割データであるので(ステップE15)、非対称型3入力C素子2160の入力は、
(A,B,C)=(Gr0、 ̄Ei0, ̄Ai0)=(1,0,0)
となる。従って、調停結果の記憶は解放されて、非対称型3入力C素子2160の出力は、Y=EE0=0となる。
(A,B,C)=(Gr0、 ̄Ei0, ̄Ai0)=(1,0,0)
となる。従って、調停結果の記憶は解放されて、非対称型3入力C素子2160の出力は、Y=EE0=0となる。
非同期式調停回路2100が、合流元0番にデータ応答信号Ai0=1を出力した後、合流元0番はデータ要求信号を取り下げ、非同期式調停回路2100に入力される合流元0番からのデータ要求信号はRi0=0になる。このとき、非対称型3入力C素子2160は調停結果の記憶を解放してEE0=0を出力している。また、合流元1番に対応する非対称型3入力C素子2161は、合流元1番に対して調停結果を記憶しておらず、出力はEE1=0である。
仮に、合流元1番からのデータ要求信号がRi1=1となったとすると、OR素子2171は、出力をRE1=1に変化させる。合流元0番はデータ要求信号を取り下げているので、相互排他回路2110の入力は、(RE0,RE1)=(0,1)となり、相互排他回路2110は、(GE0,GE1)=(0,1)を出力する。また、合流元1番からデータ要求信号が入力されない(Ri1=0)場合は、相互排他回路2110の入力は、(RE0,RE1)=(0,0)であり、相互排他回路2110は、(GE0,GE1)=(0,0)を出力する。
合流元1番からのデータ要求信号が入力された(Ri1=1)とすると、相互排他回路2110の出力は、上記のように、(GE0,GE1)=(0,1)となる。しかし、合流元0番でのハンドシェイクが完了しておらず、Ai0=1であるので、ハンドシェイク確認回路2121は、Ri1=1、GE1=1となっても、Gr1=0を出力したままとなる。一方、合流元1番からデータ要求信号が入力されていなければ(Ri1=0)、ハンドシェイク確認回路2121は、Gr1=0を出力し続ける。
ハンドシェイク確認回路2120は、入力するデータ要求信号がRi=0となることで、Gr0=0を出力する。OR素子2130は、ハンドシェイク確認回路2120、2121の出力が(Gr0,Gr1)=(0,0)となることで、合流先に出力するデータ要求信号を取り下げ、Ro=0を出力する。合流先は、非同期式調停回路2100がデータ要求信号を取り下げると、データ応答信号を取り下げ、非同期式調停回路2100には、データ応答信号Ao=0が入力される。対称型2入力C素子2150は、入力が(Gr0,Ao)=(0,0)となることで、出力をAi0=0に変化させ、非同期式調停回路2100は、合流元0番に出力するデータ応答信号を取り下げる。
非同期式調停回路2100が合流元0番に出力するデータ応答信号を取り下げると、非対称型3入力C素子2160の入力は、
(A,B,C)=(Gr0, ̄Ei0, ̄Ai0)=(0,0,1)
となり、非対称型3入力C素子2160の出力はY=EE0=0のままである。つまり、調停結果記憶は開放されたままとなる。非同期式調停回路2100は、調停結果の記憶が開放されているため(ステップE17)、ステップE1(初期状態)に戻る。
(A,B,C)=(Gr0, ̄Ei0, ̄Ai0)=(0,0,1)
となり、非対称型3入力C素子2160の出力はY=EE0=0のままである。つまり、調停結果記憶は開放されたままとなる。非同期式調停回路2100は、調停結果の記憶が開放されているため(ステップE17)、ステップE1(初期状態)に戻る。
図23は、混雑回避経路計算モジュールの回路構成例を示している。図6の混雑回避経路計算モジュール631は、図23に示す混雑回避経路計算回路2300で構成できる。混雑回避経路計算回路2300は、ハンドシェイク調停回路2310、マルチプレクサ2320、2321、ハンドシェイク部分調停回路2330、混雑情報記憶ラッチ2340、経路計算回路2350、転送分岐先記憶ラッチ2360、記憶制御回路2361、及び、データ・先頭信号・終端信号記憶ラッチ2362を有する。
混雑回避経路計算回路2300に含まれる、ハンドシェイク調停回路2310、マルチプレクサ2320、2321、ハンドシェイク部分調停回路2330、及び、混雑情報記憶ラッチ2340は、第1実施例で用いた、図13に示す混雑回避経路計算回路1300に含まれる、ハンドシェイク調停回路1310、マルチプレクサ1320、1321、ハンドシェイク部分調停回路1330、及び、混雑情報記憶ラッチ1340と、それぞれ同じものである。図23のハンドシェイク部分調停回路2330は、図14に示すハンドシェイク部分調停回路1400で構成できる。
経路計算回路2350は、非同期式分岐モジュールが有する分岐先のうち、転送データの転送先のコアに到達可能な分岐先を、転送データの出力先として決定する。本実施例で用いる経路計算回路2350は、第1実施例で用いた経路計算回路1350とは異なり、転送データと混雑情報記憶ラッチ2340に記憶された混雑情報だけでなく、データと並行して転送される先頭信号Hiと、転送分岐先記憶ラッチ2360に記憶された分岐先情報とを用いて、転送中の分割データの選択分岐先信号を出力する。
経路計算回路2350は、転送データが単位データ列の先頭分割データのとき、目的地情報及び混雑情報に基づいて転送分岐先を決定する。経路計算回路2350は、決定した転送分岐先を、転送分岐先記憶ラッチ(分岐先情報記憶メモリ)2360に記憶する。経路計算回路2350は、転送データが単位データ列の先頭以外の非先頭分割データのときは、転送分岐先記憶ラッチ2360に記憶された転送分岐先を、非同期式分岐モジュールが選択すべき転送分岐先として決定する。
転送分岐先記憶ラッチ2360に記憶される転送分岐先信号は、経路計算回路2350へ入力された分割データの転送分岐先を示す信号であるため、転送分岐先記憶ラッチ2360と共にデータ・先頭信号・終端信号記憶ラッチ2362が設けられている。記憶制御回路2361は、データ転送におけるハンドシェイクを行う。記憶制御回路2361は、転送分岐先記憶ラッチ2360とデータ・先頭信号・終端信号記憶ラッチ2362との制御を行う。
図23の混雑回避経路計算回路2300の各部の動作を、図20のフローチャートに対応させて説明する。混雑回避経路計算回路2300は、データ転送要求がないときは、図20のステップF1〜F5の動作を行い、混雑情報を記憶する。混雑情報を記憶する動作は、図13の混雑回避経路計算回路1300の動作(図4のステップC1〜C5)と同様である。
混雑回避経路計算回路2300は、データ転送要求を受け取ると、ステップF1からステップF6へ進み、データ転送要求と並行して転送された分割データと先頭信号Hiとを受け取り、先頭信号から、分割データが先頭分割データであるか否かを調べる。混雑回避経路計算回路2300は、転送中のデータが先頭分割データであると判断すると、ステップF7〜F13の動作を行い、混雑情報に基づいて、混雑を回避する先頭分割データの転送分岐先の選択を行う。この先頭分割データの転送分岐先の選択の動作は、図13の混雑回避経路計算回路1300の動作(図4のステップC6〜C12)と同様である。
記憶制御回路2361は、ハンドシェイク部分調停回路2330を介してデータ要求信号を受け取ると、転送分岐先記憶ラッチ2360及びデータ・先頭信号・終端信号記憶ラッチ2362に記憶制御信号を送る。転送分岐先記憶ラッチ2360は、記憶制御信号を受け取ると、経路計算回路2350が決定した転送分岐先を記憶し、データ・先頭信号・終端信号記憶ラッチ2362は、データ要求信号と共に入力された、分割データ、先頭信号Hi、及び、終端信号Eiを記憶する。
混雑回避経路計算回路2300は、転送分岐先の選択を行った結果、経路計算回路2350が決定した転送分岐先が非同期式分岐モジュールの分岐先0番であるときは(ステップF13)、ステップF15に進む。ステップF15では、データ・先頭信号・終端信号記憶ラッチ2362が記憶する分割データ、先頭信号Hi、及び、終端信号Eiと、転送分岐先記憶ラッチ2360が記憶する、分岐先0番を示す転送分岐先信号とを出力する。また、混雑回避経路計算回路2300は、記憶制御回路2361から、データ要求信号を出力する(ステップF15)。
混雑回避経路計算回路2300は、転送分岐先の選択を行った結果、経路計算回路2350が決定した転送分岐先が非同期式分岐モジュールの分岐先1番であるときは(ステップF13)、ステップF16に進む。ステップF16では、データ・先頭信号・終端信号記憶ラッチ2362が記憶する分割データ、先頭信号、及び、終端信号と、転送分岐先記憶ラッチ2360が記憶する、分岐先1番を示す転送分岐先信号とを出力する。また、混雑回避経路計算回路2300は、記憶制御回路2361から、データ要求信号を出力する(ステップF16)。
混雑回避経路計算回路2300は、出力したデータ要求信号に対するデータ応答信号が入力されると(ステップF17)、データ応答信号を出力する(ステップF18)。その後、混雑回避経路計算回路2300は、ステップF1(初期状態)に戻る。
混雑回避経路計算回路2300は、データ転送要求を受け取ったとき(ステップF1)、データ転送要求と並行して入力された先頭信号Hiが、転送中の分割データがデータ列の先頭である旨を示していないときは(ステップF6)、ステップF14に進む。経路計算回路2350は、直前のデータ転送で転送分岐先記憶ラッチ2360に記憶した転送分岐先信号と同じ転送分岐先を、転送分岐先として決定する(ステップF14)。
記憶制御回路2361は、ハンドシェイク部分調停回路2330を介してデータ要求信号を受け取ると、転送分岐先記憶ラッチ2360及びデータ・先頭信号・終端信号記憶ラッチ2362に記憶制御信号を送る。転送分岐先記憶ラッチ2360は、記憶制御信号を受け取ると、経路計算回路2350が決定した転送分岐先を記憶し、データ・先頭信号・終端信号記憶ラッチ2362は、データ要求信号と共に入力された、分割データ、先頭信号Hi、及び、終端信号Eiを記憶する。
混雑回避経路計算回路2300は、経路計算回路2350が決定した転送分岐先が非同期式分岐モジュールの分岐先0番であるときは(ステップF14)、ステップF15に進む。ステップ15では、データ・先頭信号・終端信号記憶ラッチ2362が記憶する分割データ、先頭信号Hi、及び、終端信号Eiと、転送分岐先記憶ラッチ2360が記憶する、分岐先0番を示す転送分岐先信号とを出力する。また、混雑回避経路計算回路2300は、記憶制御回路2361から、データ要求信号を出力する(ステップF15)。
混雑回避経路計算回路2300は、経路計算回路2350が決定した転送分岐先が非同期式分岐モジュールの分岐先1番であるときは(ステップF14)、ステップ16に進む。ステップ16では、データ・先頭信号・終端信号記憶ラッチ2362が記憶する分割データ、先頭信号Hi、及び、終端信号Eiと、転送分岐先記憶ラッチ2360が記憶する、分岐先1番を示す転送分岐先信号とを出力する。また、混雑回避経路計算回路2300は、記憶制御回路2361から、データ要求信号を出力する(ステップF16)。
混雑回避経路計算回路2300は、出力したデータ要求信号に対するデータ応答信号が入力されると(ステップF17)、データ応答信号を出力する(ステップF18)。その後、混雑回避経路計算回路2300は、ステップF1(初期状態)に戻る。
ここで、図6で、非同期式コア間接続回路600が、マスタB603からスレーブB604に対して、データ681〜683を含むデータ列を転送している場合を考える。データ列は、データ681に対して先行するデータと、データ683に対して後続するデータとを含むものとする。非同期式コア間接続回路600では、マスタB603からスレーブB604へ、非同期式調停回路612を占有してデータ転送を行っている状態であるとする。このような状況で、非同期式コア間接続回路600が、マスタA601からスレーブA602に対して、データ691〜694から成るデータ列を転送する場合を考える。
混雑回避経路計算モジュール631は、混雑検知モジュール632及び642から混雑情報を受け取っている。混雑回避経路計算モジュール631は、混雑検知モジュール632からは、データ681〜683の転送に伴い、混雑ありの情報を受け取っている。また、混雑回避経路計算モジュール631は、混雑検知モジュール642からは、データ転送がないことから、混雑なしの情報を受け取っている。混雑回避経路計算モジュール631は、受け取った混雑情報を記憶している(図20のステップF1〜F5)。
混雑回避経路計算モジュール631は、先頭分割データ691を受け取ると(ステップF6)、第1実施例で説明した動作と同様な動作で、混雑がない非同期式調停回路622方面の分岐先を、転送分岐先として決定する(ステップF7〜F13)。混雑回避経路計算モジュール631は、決定した転送分岐先を内部に記憶し、記憶した転送分岐先を非同期式分岐モジュール611へ出力する(ステップF15又はF16)。混雑回避経路計算モジュール631は、非同期式分岐モジュール611からデータ応答信号を受け取ると(ステップF17)、マスタAとの間のラッチ及び記憶制御回路に対して、データ応答信号を出力する(ステップF18)。
混雑回避経路計算モジュール631は、先頭分割データ691に後続して、中間の分割データ692を受け取る(ステップF6)。混雑回避経路計算モジュール631は、先頭信号を参照する。混雑回避経路計算モジュール631は、先頭信号は転送する分割データが先頭分割データではない旨を示しているので、ステップF6からステップF14に進む。混雑回避経路計算モジュール631は、内部に記憶しておいた直前のデータ転送の転送分岐先を、分割データ692の転送分岐先として決定し、非同期式分岐モジュールに出力する(ステップF14と、ステップF15又は16)。混雑回避経路計算モジュール631は、非同期式分岐モジュール611からデータ応答信号を受け取ると(ステップF17)、マスタAとの間のラッチ及び記憶制御回路に対して、データ応答信号を出力する(ステップF18)。
混雑回避経路計算モジュール631は、中間又は終端の分割データ693、694が入力されたときも、上記と同様な動作で、直前のデータ転送の転送分岐先を、転送分岐先として決定する。混雑回避経路計算モジュール631は、非同期式分岐モジュール611に転送分岐先を出力し、非同期式分岐モジュール611からデータ応答信号を受け取ると、マスタAとの間のラッチ及び記憶制御回路に対して、データ応答信号を出力する。
本実施例では、非同期式調停回路2100は、非対称型3入力C素子2160、2161を用いて調停結果を記憶する。非対称型3入力C素子2160、2161が、調停結果を維持することで、データ列の終端以外の分割データの転送時に、相互排他回路2110の出力を維持することができる。相互排他回路2110の出力を維持することで、転送中の合流元からのデータ転送要求を連続的に処理し、転送待機中の合流元からのデータ転送要求の待機を継続することができる。従って、複数の合流元からの転送データが合流する箇所で、同一目的地へのデータから成る単位データ列を、連続的に、かつ、他のデータ転送により分断されることなく、合流元から合流先へ転送することができる。
上記に対し、図9に示す第1実施例で用いた非同期式調停回路900は、調停結果を記憶する部分がなく、データ列の転送中に調停結果を変動しない機能を持たない。非同期式調停回路900は、一方の合流元からの終端以外の分割データの転送中に、他方の合流元からデータ転送要求が入力されるとき、一方の合流元からの終端以外の分割データの転送が完了すると、他方の合流元からのデータ転送を開始する。このため、第1実施例で用いた非同期式調停回路900は、単位データ列の転送を、他のデータ転送に分断されることなく行うことができない。本実施例では、非同期式調停モジュールに、図21に示す非同
期式調停回路2100を用いており、単位データ列の転送を、他のデータ転送に分断されることなく行うことが可能である。
期式調停回路2100を用いており、単位データ列の転送を、他のデータ転送に分断されることなく行うことが可能である。
また、本実施例では、混雑回避経路計算回路2300は、先頭分割データの転送時に転送分岐先を決定し、転送分岐先記憶ラッチ2360に記憶する。混雑回避経路計算回路2300は、先頭分割データ以降の分割データの転送では、転送分岐先記憶ラッチ2360に記憶された転送分岐先を、分割データの転送先として決定する。このようにすることで、データ列の先頭分割データの転送分岐先と同じ分岐先へ、後続の中間・終端分割データを分岐して転送することができる。従って、分岐箇所で、同一目的地へのデータから成る単位データ列を、連続的に、かつ、他のデータ列転送により分断されることなく、分岐元から分岐先へ転送することができる。
上記に対し、図13に示す第1実施例で用いた混雑回避経路計算回路1300は、先頭分割データの転送分岐先を記憶する機構を持っていない。第2のデータ転送方式では、先頭分割データが目的地情報を持ち、それ以外の分割データは、目的地情報を持たない。混雑回避経路計算回路1300は、先頭分割データに対して決定した転送分岐先を記憶する機構がないので、データ列の先頭分割データの転送分岐先と同じ分岐先へ、後続の中間・終端分割データを分岐して転送することができない。また、目的地情報を持たない分割データに対し、先頭分割データにおいて目的地情報が記載されている箇所を参照して目的地情報を得ようとすると、目的地情報を誤認し、同じ転送先に分岐すべき先頭分割データに後続する分割データを、異なる分岐先へ出力する可能性がある。
なお、図23では、混雑回避経路計算回路2300が、転送分岐先記憶ラッチ2360と、記憶制御回路2361と、データ・先頭信号・終端信号記憶ラッチ2362とを持つ構成としているが、これらは省略することもできる。例えば、記憶制御回路2361を省略して、ハンドシェイク部分調停回路2330を入出力するデータ要求・データ応答を、混雑回避経路計算回路2300の入出力信号としてもよい。また、データ・先頭信号・終端信号記憶ラッチ2362を省略して、混雑回避経路計算回路2300へ入力されたデータ・先頭信号・終端信号を、混雑回避経路計算回路2300の出力信号としてもよい。更に、転送分岐先記憶ラッチ2360を省略し、経路計算回路2350の選択出力を混雑回避経路計算回路2300の出力信号とし、その出力信号を経路計算回路2350に戻す構成としてもよい。このような省略構成であっても、先頭分割データの選択分岐先を記憶することは可能であり、混雑回避経路計算回路2300の効果を実現することができる。
本発明の第3実施形態を説明する。第2実施形態における非同期式論理回路は、同じ目的地への転送データを、目的地情報と転送データとを組み合わせ、組み合わせたデータをデータ転送経路幅に合わせて分割し、目的地情報を含む先頭分割データと、非先頭分割データとから成る単位データ列として転送する第2のデータ転送方式で、データ転送を行うこととした。第2のデータ転送方式を採用する場合、先頭分割データ転送時に転送分岐先が決まり、先頭分割データに後続する分割データは、同じ転送分岐先に転送されることになるので、本来的には、先頭分割データの転送時のみ、混雑検知モジュールから混雑情報を送信すればよい。
しかし、第2実施形態における非同期式論理回路は、同一データ列の各分割データを送信するたびに、混雑情報を生成し、全調停対象に混雑情報を送信することになるので、無駄な電力消費が生じる。また、混雑回避経路計算モジュールは、混雑情報の更新中はデータ転送を行わないので、過度に混雑情報を送信し、混雑情報の更新が頻発すると、それに起因して、データ転送の一時停止が過剰に起こる。そこで、本実施形態は、不要な混雑情報の送信を抑制し、上記した問題の発生を抑えることができる非同期式論理回路を提供する。
本実施形態の非同期式論理回路の構成は、図1に示す第1実施形態の非同期式論理回路の構成と同様である。ただし、混雑検知モジュール111の動作が、第2実施形態の非同期式論理回路における混雑検知モジュールの動作と異なる。その他の点は、第2実施形態と同様である。
図24は、本実施形態における混雑検知モジュール111の動作手順を示している。はじめ、混雑検知モジュール111は、初期状態にある。混雑検知モジュール111は、データ要求入力端子に、非同期式調停モジュール101からデータ要求信号が入力されたか否かを判断する(ステップG1)。混雑検知モジュール111は、データ要求信号の入力がないときは、ステップG1を繰り返し実行し、データ要求信号が入力されるまで待機する。
混雑検知モジュール111は、データ要求信号が入力されると、入力された分割データが単位データ列の先頭であるか否かを判断する(ステップG2)。入力された分割データが単位データ列の先頭である場合、混雑検知モジュール111は、非同期式調停モジュール101から調停結果入力端子を介して入力する調停結果信号に基づいて、各調停対象、すなわち、非同期式調停モジュール101の各合流元に対して混雑情報信号を生成する(ステップG3)。
混雑検知モジュール111は、例えば、合調停結果信号が、合流元0番のデータがデータ出力端子から出力中であることを示しているときは、合流元0番に対して「混雑なし」を示す混雑情報信号を生成し、合流元1番に対して「混雑あり」を示す混雑情報信号を生成する。これとは逆に、調停結果信号が、合流元1番のデータがデータ出力端子から出力中であることを示しているときは、合流元0番に対して「混雑あり」を示す混雑情報信号を生成し、合流元1番に対して「混雑なし」を示す混雑情報信号を生成する。
混雑検知モジュール111は、各調停対象に、生成した混雑情報信号と、混雑処理要求信号とを出力する(ステップG4)。混雑検知モジュール111は、ステップG4では、合流元0番に対応した混雑情報出力端子及び混雑処理要求出力端子から、合流元0番に対応する混雑情報信号と混雑処理要求信号とをそれぞれ出力する。また、混雑検知モジュール111は、合流元1番に対応した混雑情報出力端子及び混雑処理要求出力端子から、合流元1番に対応する混雑情報信号と混雑処理要求信号とをそれぞれ出力する。
混雑検知モジュール111は、非同期式調停モジュール101からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する(ステップG5)。混雑検知モジュール111は、非同期式調停モジュール101が、図19のステップE3で合流元0番からの転送データを出力しているときは、データ出力端子から、合流元0番からの転送データを出力する。また、混雑検知モジュール111は、非同期式調停モジュール101が、ステップE7で合流元1番からの転送データを出力しているときは、データ出力端子から、合流元1番からの転送データを出力する。
混雑検知モジュール111は、ステップG5で出力したデータ要求信号に対するデータ応答信号、及び、ステップG4で各合流元に出力した混雑処理要求信号に対する混雑処理応答信号を待ち合わせる(ステップG6)。混雑検知モジュール111は、各合流元に対応する混雑処理応答入力端子に、ステップG4で出力した混雑処理要求信号に対する混雑処理応答信号が入力されたか否かを判断する。また、混雑検知モジュール111は、データ応答入力端子に、ステップG5で出力したデータ要求信号に対するデータ応答信号が入力されたか否かを判断する。
混雑検知モジュール111は、全ての合流元から混雑処理応答信号を入力していない、又は、データ応答信号を入力していないと判断したときは、ステップG6を繰り返し実行し、混雑処理応答信号及びデータ応答信号が入力されるまで待機する。混雑検知モジュール111は、全ての合流元から混雑処理応答信号が入力され、かつ、データ応答信号が入力されると、データ応答出力端子から、非同期式調停モジュール101にデータ応答信号を出力する(ステップG7)。その後、混雑検知モジュール111は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップG1(初期状態)に戻る。
混雑検知モジュール111は、ステップG2で入力された分割データが単位データ列の先頭でないと判断した場合、ステップG8に進む。ステップG8では、非同期式調停モジュール101からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する。混雑検知モジュール111は、非同期式調停モジュール101が、ステップE3で合流元0番からの転送データを出力しているときは、データ出力端子から、合流元0番からの転送データを出力する。また、混雑検知モジュール111は、非同期式調停モジュール101が、ステップE7で合流元1番からの転送データを出力しているときは、データ出力端子から、合流元1番からの転送データを出力する。
混雑検知モジュール111は、ステップG5で出力したデータ要求信号に対するデータ応答信号が入力されるまで待機する(ステップG9)。混雑検知モジュール111は、データ応答信号が入力されると、ステップG7へ進み、データ応答出力端子から、非同期式調停モジュール101にデータ応答信号を出力する。その後、混雑検知モジュール111は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップG1(初期状態)に戻る。
混雑検知モジュール111は、転送データが先頭分割データであるときは、混雑処理要求信号を、非同期式調停モジュール101の合流元の混雑回避経路計算モジュール112に出力する。混雑検知モジュール111は、転送データが先頭分割データ以外の分割データであれば、混雑処理要求信号を出力しない。このようにすることで、先頭分割データの転送時に、混雑回避経路計算モジュール112が記憶する混雑情報を更新させることができると共に、先頭分割データ以外の分割データの転送時には、混雑情報を更新させないという動作が実現できる。このような動作を行うことで、無駄な混雑情報の更新に伴う消費電力を削減できる。また、混雑回避経路計算モジュール112で、無駄に混雑情報を更新することで生じる転送データの一時停止を回避することができる。
続いて、第3実施例を説明する。本実施例の半導体回路に含まれる非同期式コア間接続回路における各回路の接続形態は、図6に示す非同期式コア間接続回路600における各回路の接続形態と同様である。非同期式分岐モジュール611には、第1実施例と同様に、図7に示す回路構成の非同期式分岐回路700を用いることができる。また、非同期式調停モジュール612、614、622には、図21に示す回路構成の非同期式調停モジュール2100を用いることができる。混雑回避経路計算モジュール631には、図23に示す回路構成の混雑回避経路計算回路2300を用いることができる。
本実施例では、混雑検知モジュール632、642に、図12に示す回路構成の混雑検知回路1200に代えて、先頭分割データ以外の分割データに対して混雑情報の生成、送信を行わない混雑検知回路を用いる。図25は、混雑検知モジュールの回路構成例を示している。混雑検知モジュール632、642は、図25に示す混雑検知回路2500で構成できる。混雑検知回路2500は、インバータ2510、2511と、対称型2入力C素子2520、2530と、ハンドシェイク分岐回路(ハンドシェイク分岐モジュール)2540とを有する。
混雑検知回路2500は、非同期式分岐モジュールが出力するデータ要求信号Riを分岐し、一方をデータ要求信号Roとして出力し、他方をハンドシェイク分岐回路2540に入力する。インバータ2510、2511は、非同期式調停モジュールが出力する調停結果信号Gr0、Gr1を反転して、それぞれ混雑情報BP0、BP1として出力する。
ハンドシェイク分岐回路2540は、図7に示す非同期式分岐回路700の構成のうち、データ転送経路を除いた部分で構成される。ハンドシェイク分岐回路2540は、非同期式調停モジュールがデータ要求信号を出力すると、転送データが先頭分割データのとき、非同期式調停モジュールの合流元に、混雑処理要求信号を出力する。ハンドシェイク分岐回路2540は、転送データが非先頭分割データのとき、自身への応答信号として帰還入力する要求信号を出力する。
ハンドシェイク分岐回路2540は、2つの選択信号入力端子(S0,S1)を有する。また、ハンドシェイク分岐回路2540は、2つの分岐先を有し、要求信号出力端子と応答信号入力端子との組を2つ有する。選択信号入力端子S0、S1に入力される選択信号は、何れか一方が1で他方は0である。ハンドシェイク分岐回路2540は、入力される選択信号に応じて、2つの分岐先の何れかに要求信号を出力し、要求信号を出力した分岐先から応答信号を入力する。
ハンドシェイク分岐回路2540の選択信号入力端子S0には先頭信号Hiが入力され、選択信号入力端子S1には先頭信号Hiの反転信号が入力される。ハンドシェイク分岐回路2540の要求出力端子のうちの一方(Ro1)は、混雑検知回路2500の2つの混雑要求出力端子BReq0、BReq1に接続され、要求入力端子Ao1は、対称型2入力C素子2520の出力に接続される。要求出力端子の他方(Ro0)は、要求入力端子Ao0に折り返される。ハンドシェイク分岐回路2540の要求入力端子Riには、混雑検知回路2500に入力されるデータ要求信号Riが入力される。ハンドシェイク分岐回路2540の応答出力端子Aiは、対称型2入力C素子2530の入力に一方に接続される。
ハンドシェイク分岐回路2540は、非同期式調停モジュールから入力された転送データが先頭分割データであるときは、要求入力端子Riにデータ要求信号が入力されると、要求出力端子Ro1から、非同期式調停モジュールの合流元0番及び合流元1番に、混雑処理要求信号BReq0、BReq1を出力する。合流元0番及び合流元1番に対応する混雑回避経路計算回路2300(図23)は、それぞれ、混雑処理要求信号を受け取ると、混雑情報を記憶し、混雑処理応答信号BAck0、BAck1を出力する。
対称型2入力C素子2520は、図11に示す論理回路(対称型2入力C素子)1100で構成できる。対称型2入力C素子1100の入力(A,B)と、出力(Y)との関係は、真理値表1150で示すようになる。対称型2入力C素子2520の入力の一方は、合流元0番からの混雑応答入力端子に接続され、他方は、合流元1番からの混雑応答入力端子に接続される。対称型2入力C素子2520は、合流元0番からの混雑応答信号BAck0と、合流元1番からの混雑応答信号BAck1とを待ち合わせ、応答信号BAckを出力する。
一方、ハンドシェイク分岐回路2540は、非同期式調停モジュールから入力された転送データが先頭分割データではないときは、要求出力端子Ro0から、自身へ応答信号として帰還する要求信号NopHSを出力する。ハンドシェイク分岐回路2540は、出力した信号NopHSを、応答入力端子Ao0から受け取る。ハンドシェイク分岐回路2540は、応答信号入力端子Ao0にNopHSが入力されると、或いは、応答信号入力端子Ao1に、対称型2入力C素子2520から信号BAckが入力されると、応答信号出力端子Aiから信号Abを出力する。
対称型2入力C素子2530は、図11に示す論理回路(対称型2入力C素子)1100で構成できる。対称型2入力C素子1100の入力(A,B)と、出力(Y)との関係は、真理値表1150で示すようになる。対称型2入力C素子2530の入力の一方は、混雑検知回路2500に入力されるデータ応答信号Aoに接続され、他方は、ハンドシェイク分岐回路2540の応答出力端子Aiに接続される。対称型2入力C素子2530は、データ応答信号Aoと、ハンドシェイク分岐回路2540が出力する信号Abとを待ち合わせる。混雑検知回路2500は、両者が揃うと、対称型2入力C素子2530から、データ応答信号Ai=1を出力する。
混雑検知回路2500の回路構成のうち、非同期式調停モジュールから入力したデータ要求信号を非同期式調停モジュールの合流先に出力する部分、及び、データ要求信号を分岐して混雑処理要求信号とし、調停結果信号をインバータ2510、2511で反転して混雑情報信号として出力する部分は、要求出力モジュールに相当する。当該部分は、非同期式調停モジュールがデータ要求信号を出力すると、データ要求信号を合流先に出力すると共に、混雑情報と、混雑処理要求信号とを、合流元にある混雑回避経路計算モジュールに出力する。また、対称型2入力C素子2520、2530は、データ要求信号と混雑情報記憶要求信号の出力後、合流先からのデータ応答信号と、混雑回避経路計算モジュールからの混雑処理応答信号とを待ち合わせる。そして、データ応答信号と混雑情報記憶応答信号とを受け取ると、非同期式調停モジュールにデータ応答信号を出力する。すなわち、対称型2入力C素子2520、2530は、応答待ち合わせモジュールに相当する。
図25の混雑検知回路2500の各部の動作を、図24のフローチャートに対応させて説明する。初期状態では、混雑検知回路2500に入力される信号は、データ要求信号Ri=0、データ応答信号Ao=0、混雑処理応答信号BAck0=0、BAck1=0である。また、混雑検知回路2500が出力する信号は、データ要求信号Ro=0、データ応答信号Ai=0、混雑処理要求信号BReq0=0、BReq1=0である。調停結果信号Gr0、Gr1、及び、混雑情報信号BP0、BP1の状態は任意である。
混雑検知回路2500は、データ要求信号がRi=0のとき、非同期式調停モジュールから、データ要求信号Ri=1が入力されるまで待機する(図24のステップG1)。混雑検知回路2500は、データ要求信号がRi=1となると、先頭信号Hiに基づいて、入力された転送データが先頭分割データであるか否かを判断する(ステップG2)。先頭信号がHi=1のとき、つまり、転送データが先頭分割データであるとき、ハンドシェイク分岐回路2540の選択信号入力端子に入力される信号は(S0,S1)=(1,0)になる。一方、先頭信号がHi=0のときは、ハンドシェイク分岐回路2540の選択信号入力端子に入力される信号は(S0,S1)=(0,1)になる。
混雑検知回路2500は、転送データが先頭分割データであるとき、混雑情報信号BP0、BP1を生成する(ステップG3)。混雑検知回路2500は、非同期式調停モジュールが何れの合流元からの転送データを出力しているかに応じて、混雑情報を生成する。非同期式調停モジュールが合流元0番からの転送データを出力するとき、合流元0番のデータは保留されることなく転送されるので、混雑検知回路2500は、合流元0番に対して混雑なしを示す混雑情報を生成する。一方、合流元1番のデータは保留されるので、混雑検知回路2500は、合流元1番に対して混雑ありを示す混雑情報を生成する。逆に、非同期式調停モジュールが合流元1番からの転送データを出力するときは、混雑検知回路2500は、合流元0番に対して混雑ありを示す混雑情報を生成し、合流元1番に対しては混雑なしを示す混雑情報を生成する。
混雑検知回路2500は、インバータ2510、2511を用いて調停結果信号Gr0、Gr1をそれぞれ反転し、混雑情報信号BP0、BP1を生成する。混雑検知回路2500は、調停結果信号が(Gr0,Gr1)=(1,0)のとき、つまり、非同期式調停モジュールが合流元0番から入力した転送データを出力するとき、Gr0をインバータ2510で反転した信号BP0=0(混雑なし)を、合流元0番に対応した混雑情報信号とし、Gr1をインバータ2511で反転した信号BP1=1(混雑あり)を、合流元1番に対応した混雑情報信号とする。また、混雑検知回路2500は、非同期式調停モジュールが合流元1番から入力した転送データを出力するとき、つまり、調停結果信号が(Gr0,Gr1)=(0,1)のときは、Gr0をインバータ2510で反転した信号BP0=1(混雑あり)を、合流元0番に対応した混雑情報信号とし、Gr1をインバータ2511で反転した信号BP1=0(混雑なし)を、合流元先1番に対応した混雑情報信号とする。
混雑検知回路2500は、混雑情報信号BP0及びBP1を、合流元0番及び合流元1番にそれぞれ出力する。また、混雑検知回路2500は、データ要求信号Ri=1を分岐して、ハンドシェイク分岐回路2540に入力する。ハンドシェイク分岐回路2540は、先頭信号がHi=1であるので、データ要求信号Ri=1を入力すると、要求出力端子Ro1から、合流元0番及び合流元1番に、それぞれ混雑処理要求信号BReq0=1及びBReq1=1を出力する(ステップG4)。このとき、ハンドシェイク分岐回路2540は、要求出力端子Ro0からNopHS=0を出力し、NopHS=0を折り返して、応答入力端子Ao0から受け取る。
混雑検知回路2500は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ro=1を出力する(ステップG5)。非同期式調停モジュールの合流先は、データ要求信号Ro=1を受け取った後、混雑検知回路2500に、データ応答信号Ai=1を出力する。混雑検知回路2500は、データ要求信号Ro=1、及び、混雑処理要求信号BReq0=1、BReq1=1を出力した後、データ応答信号と混雑処理応答信号とを待ち合わせる。そして、データ応答信号Ao=1、混雑処理応答信号BAck0=1、BAck1=1が入力されるまで待機する(ステップG6)。
混雑検知回路2500の対称型2入力C素子2520は、合流元0番及び合流元1番から混雑処理応答信号を待ち合わせ、BAck0=1、BAck1=1が入力されると、信号BAck=1を出力する。ハンドシェイク分岐回路2540は、BAck=1をデータ応答入力端子Ao1から受け取ると、応答出力端子Aiから、信号Ab=1を出力する。対称型2入力C素子2530は、データ応答信号Ao=1と信号Ab=1を待ち合わせる。混雑検知回路2500は、対称型2入力C素子2530にデータ応答信号Ao=1と信号Ab=1とが入力されると、データ応答信号Ai=1を出力する(ステップG7)。
混雑検知回路2500が、非同期式調停モジュールにデータ応答信号Ai=1を出力すると、その後、非同期式調停モジュールから入力されるデータ要求信号が取り下げられ、Ri=0となる。混雑検知回路2500は、データ要求信号が取り下げられRi=0になると、非同期式調停モジュールの分岐先に出力するデータ要求信号を取り下げて、Ro=0とする。また、混雑検知回路2500は、データ要求信号を分岐して、Ri=0を、ハンドシェイク分岐回路2540に入力する。
ハンドシェイク分岐回路2540は、要求入力端子Riから入力するデータ要求入力信号が取り下げられると、要求出力端子Ro1から合流元0番及び合流元1番に出力する混雑処理要求信号を取り下げ、BReq0=0、BReq1=0とする。混雑処理要求信号の取り下げ後、対称型2入力C素子2520は、合流元0番及び合流元1番からの混雑処理応答信号BAck=0、BAck1=0を待ち合わせてBAck=0を出力し、ハンドシェイク分岐回路2540はBAck=0となることで信号Ab=0を出力する。
非同期式調停モジュールの合流先は、データ要求信号が取り下げられると、その後、データ応答信号を取り下げて、混雑検知回路2500にAi=0を入力する。対称型2入力C素子2530は、非同期式調停モジュールの合流先からのデータ応答信号Ao=0と信号Ab=0を待ち合わせて、非同期式調停モジュールにデータ応答信号Ai=0を出力する。これで、混雑検知回路2500は、初期状態に戻る。
先頭信号がHi=0の場合、つまり、入力された転送データが先頭分割データではないと判断されるとき、データ要求信号Ri=1を分岐してハンドシェイク分岐回路2540に入力すると、ハンドシェイク分岐回路2540は、要求出力端子Ro0から、NopHS=1を出力する。それからNopHS=1を折り返して、応答入力端子Ao0から受け取る。このとき、ハンドシェイク分岐回路2540が要求出力端子Ro1から合流元0番及び合流元1番に出力する混雑処理要求信号は、それぞれBReq0=0、BReq1=0である。つまり、混雑検知回路2500は、合流元の混雑回避経路計算モジュールに対して、混雑情報の記憶を要求しない。
混雑検知回路2500は、先頭信号がHi=0のときは、混雑処理要求信号を出力することなく、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ro=1を出力する(ステップG8)。混雑検知回路2500は、データ要求信号Ro=1の出力後、データ応答信号Ao=1が入力されるまで待機する(ステップG9)。ハンドシェイク分岐回路2540は、応答入力端子Ao0からNopHS=1を折り返して入力しているので、NopHS=1の入力後、対称型2入力C素子2530にAb=1を出力する。対称型2入力C素子2530の一方の入力は、データ要求信号Ri=1を入力してすぐにAb=1となるので、混雑検知回路2500は、実質的には、非同期式調停モジュールの合流先からのデータ応答信号Ao=1を待てばよい。
混雑検知回路2500は、非同期式調停モジュールの合流先からデータ応答信号Ao=1が入力されると、対称型2入力C素子2530から、非同期式調停モジュールにデータ応答信号Ai=1を出力する(ステップG7)。混雑検知回路2500が、データ応答信号Ai=1を出力すると、その後、非同期式調停モジュールから入力されるデータ要求信号が取り下げられ、Ri=0となる。混雑検知回路2500は、データ要求信号が取り下げられRi=0になると、非同期式調停モジュールの分岐先に出力するデータ要求信号を取り下げて、Ro=0とする。また、混雑検知回路2500は、データ要求信号を分岐して、Ri=0を、ハンドシェイク分岐回路2540に入力する。
ハンドシェイク分岐回路2540は、要求入力端子Riから入力するデータ要求入力信号が取り下げられると、要求出力端子Ro0からNopHS=0を出力し、これを要求入力端子Ao0に折り返す。ハンドシェイク分岐回路2540は、要求入力端子Ao0にNopHS=0を折り返して入力すると、応答出力端子Aiから、Ab=0を出力する。
非同期式調停モジュールの合流先は、データ要求信号が取り下げられると、その後、データ応答信号を取り下げて、混雑検知回路2500にAi=0を入力する。対称型2入力C素子2530は、非同期式調停モジュールの合流先からのデータ応答信号Ao=0と信号Ab=0を待ち合わせて、非同期式調停モジュールにデータ応答信号Ai=0を出力する。ここでも、ハンドシェイク分岐回路2540が出力する信号Abはデータ要求信号の取り下げ後、遅滞なくAb=0となるので、対称型2入力C素子2530は、実質的には、データ応答信号Ao=0が入力されるのを待つことになる。混雑検知回路2500は、Ai=0を出力すると、初期状態に戻る。
本実施例では、ハンドシェイク分岐回路2540は、転送データが先頭分割データであれば、混雑検知回路2500が接続する非同期式調停モジュールの合流元へ、混雑処理要求信号を送信する。対称型2入力C素子2520は、非同期式調停モジュールの合流元からの混雑処理応答信号を待ち合わせ、2つの合流元から混雑処理応答信号が入力されると、ハンドシェイク分岐回路2540に応答信号BAck=1を出力する。ハンドシェイク分岐回路2540は、応答信号BAck=1が入力されると、対称型2入力C素子2530に信号Ab=1を出力する。一方、ハンドシェイク分岐回路2540は、転送データが先頭分割データ以外の分割データであれば、混雑処理要求信号を送信せずに、対称型2入力C素子2530に信号Ab=1を出力する。
混雑検知回路2500は、ハンドシェイク分岐回路2540が上記動作を行うことで、先頭分割データの転送時は、非同期式調停モジュールの合流元に混雑処理要求信号を送りつつ、ハンドシェイク・プロトコルで定められる手順に従って非同期式調停モジュールの合流先にデータを転送する。また、混雑検知回路2500は、先頭分割データ以外の転送時は、雑処理要求信号を出力することなく、ハンドシェイク・プロトコルで定められる手順に従って、データを転送する。混雑検知回路2500は、先頭分割データ以外の分割データの転送時は、非同期式調停モジュールの合流元に混雑処理要求信号を送信しないので、合流元の混雑回避経路計算モジュールにおける混雑情報の無駄な更新を避けることができ、混雑情報更新のための消費電力の削減が可能である。また、混雑回避経路計算モジュールでは、混雑情報の更新回数の低減に伴って、データ転送が一時的に待機させられる回数も低減することで、混雑情報更新に伴うデータ転送速度の低下を抑制することができる。
本発明の第4実施形態について説明する。第3実施形態における非同期式論理回路は、単位データ列の先頭分割データを転送するときに混雑情報要求信号を出力し、先頭分割データ以外のデータ転送では、混雑処理要求信号を出力しないことで、消費電力の削減や、転送速度低下の抑制を図った。しかし、第3実施形態における非同期式論理回路は、データ列の転送が終了し、非同期式調停モジュールでデータ転送が行われていない状況になったときでも、混雑回避経路計算モジュールが記憶する混雑情報が更新されないという問題点がある。
第3実施形態における非同期式論理回路の混雑検知モジュールは、非同期式調停モジュールの一つの合流元からのデータ転送が行われているとき、転送中の合流元へ混雑なしを示す混雑情報を送信し、転送を行っていない合流元へ混雑ありを示す混雑情報を送る。データ列の転送が完了し、次のデータの転送要求がなく、非同期式調停モジュールでデータ転送が行われない状況になったときを考える。このとき、混雑検知モジュールは、データが先頭分割データではないので混雑処理要求信号を出力せず、非同期式調停モジュールの全ての合流元は混雑なしになっているにもかかわらず、混雑情報の変更を、非同期式調停モジュールの合流元に要求しない。その結果、混雑回避経路計算モジュールは、実際には存在しない混雑を回避する経路を計算する。
例えば、目的地までの経路が複数存在し、ある非同期式調停モジュールにて混雑がなければ、その非同期式調停モジュールを通る経路が最適な経路(混雑回避経路計算モジュールが決定すべき経路)であったとする。しかしながら、その非同期式調停モジュールが、実際には混雑なしであるのに、混雑情報が更新されないことで混雑ありを示していると、混雑回避経路計算モジュールは、その非同期式調停モジュールを通る経路を選択できなくなる。その場合、混雑回避経路計算モジュールは、最適な経路を選択できないので、最適経路とは異なる経路を選択せざるを得なくなり、非同期式論理回路のデータ転送速度の低下などが生じる。
上記の問題点は、混雑回避経路調停モジュールが、非同期式調停モジュールのデータ列の転送開始時にのみ混雑処理要求信号を送り、データ列が転送終了して混雑が解消したときに、混雑処理要求信号を送らないことに起因して発生する。そこで、本実施形態は、単位データ列の転送完了時にも、混雑情報の更新を要求する混雑検知モジュールを提供する。
本実施形態の非同期式論理回路の構成は、図1に示す第1実施形態の非同期式論理回路の構成と同様である。ただし、混雑検知モジュール111の動作が、第1実施形態の非同期式論理回路における混雑検知モジュール111の動作と異なる。その他の点は、第2実施形態と同様である。
図26は、混雑検知モジュール111の動作手順を示している。はじめ、混雑検知モジュール111は、初期状態にある。混雑検知モジュール111は、データ要求入力端子に、非同期式調停モジュール101からデータ要求信号が入力されたか否かを判断する(ステップH1)。混雑検知モジュール111は、データ要求信号の入力がないときは、ステップH1を繰り返し実行し、データ要求信号が入力されるまで待機する。
混雑検知モジュール111は、データ要求信号が入力されると、入力された分割データが単位データ列の終端であるか否かを判断する(ステップH2)。混雑検知モジュール111が、入力された分割データが単位データ列の終端分割データでないと判断したときの動作(ステップH3〜H10)の動作は、第3実施形態における混雑検知モジュール111の動作と同様である。つまり、ステップH3〜H10の各ステップは、図24に示すフローチャートにおけるステップG2〜G9の各ステップと同様である。
混雑検知モジュール111は、ステップH2で終端分割データであると判断すると、非同期式調停モジュール101の合流元の全てに対して「混雑なし」を示す混雑情報を生成する(ステップH11)。その後、混雑検知モジュール111は、ステップH5へ進んで、各調停対象に、生成した混雑情報信号と、混雑処理要求信号とを出力する。混雑検知モジュール111は、ステップH5では、合流元0番に対応した混雑情報出力端子及び混雑処理要求出力端子から、混雑なしを示す混雑情報信号と混雑処理要求信号とをそれぞれ出力する。また、混雑検知モジュール111は、合流元1番に対応した混雑情報出力端子及び混雑処理要求出力端子から、混雑なしを示す混雑情報信号と混雑処理要求信号とをそれぞれ出力する。
ステップH10で各合流元に対して混雑なしを示す混雑情報を生成し、ステップH5で混雑情報と混雑処理要求信号を出力した後の動作は、転送データが先頭分割データであった時の動作と同様である。すなわち、混雑検知モジュール111は、ステップH6で、非同期式調停モジュール101に分割データとデータ要求信号とを出力する。そして、ステップH7で、ステップH6で出力したデータ要求信号に対するデータ応答信号と、ステップH5で各合流元に出力した混雑処理要求信号に対する混雑処理応答信号とを待ち合わせる。混雑検知モジュール111は、データ応答信号が入力され、かつ、全ての合流元から混雑処理応答信号が入力されると、ステップH8で、非同期式調停モジュール101にデータ応答信号を出力する。その後、混雑検知モジュール111は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップH1(初期状態)に戻る。
混雑検知モジュール111は、転送データが終端分割データであるときは、非同期式調停モジュール101の各合流元に対して混雑なしを示す混雑信号を生成し、各合流元に混雑処理要求信号を出力して、合流元の混雑回避経路計算モジュール112が記憶する混雑情報を、混雑なしに更新させる。このようにすることで、単位データ列の転送後、混雑情報が混雑なしとなって、他のデータ転送に、混雑なしを示す混雑情報を送信した非同期式調停モジュール101を利用することができるようになる。
続いて、第4実施例を説明する。本実施例の半導体回路に含まれる非同期式コア間接続回路における各回路の接続形態は、図6に示す非同期式コア間接続回路600における各回路の接続形態と同様である。非同期式分岐モジュール611には、第1実施例と同様に、図7に示す回路構成の非同期式分岐回路700を用いることができる。また、非同期式調停モジュール612、614、622には、図21に示す回路構成の非同期式調停回路2100を用いることができる。混雑回避経路計算モジュール631には、図23に示す回路構成の混雑回避経路計算回路2300を用いることができる。
本実施例では、混雑検知モジュール632、642に、図25に示す回路構成の混雑検知回路2500に代えて、終端分割データ転送時に混雑なしを示す混雑情報を生成する混雑検知回路を用いる。図27は、混雑検知モジュールの回路構成例を示している。混雑検知モジュール632、642は、図27に示す混雑検知回路2700で構成できる。混雑検知回路2700は、OR素子2701、混雑情報生成回路(混雑情報生成モジュール)2710、対称型2入力C素子2720、2730、及び、ハンドシェイク分岐回路2740を有する。対称型2入力C素子2720、2730、及び、ハンドシェイク分岐回路2740は、第3実施例で用いた混雑検知回路2500(図25)における対称型2入力C素子2520、2530、及び、ハンドシェイク分岐回路2540とそれぞれ同じものである。
本実施例では、混雑検知回路2700は、先頭分割データの転送時に加えて、転送データが終端分割データのときも、非同期式調停モジュールの合流元のそれぞれへ混雑処理要求信号を出力する。そこで、OR素子2701を用い、OR素子2701にて先頭信号Hiと終端信号Eiとの論理和を取り、OR素子2701の出力信号を、ハンドシェイク分岐回路2740に分岐先選択信号として入力する。ハンドシェイク分岐回路2740は、OR素子2701の出力が1のとき、つまり、転送データが先頭分割データ又は終端分割データのとき、混雑情報記憶要求信号を出力する。ハンドシェイク分岐回路2740は、OR素子2701の出力が0のとき、つまり、転送データが中間の分割データのとき、自身への応答信号として帰還入力する要求信号を出力する。
混雑情報生成回路2710は、調停結果信号(Gr0,Gr1)と、終端信号Eiとに基づいて、混雑情報信号BP0、BP1を生成する。混雑情報生成回路2710は、終端信号がEi=0のとき、つまり、転送中の分割データが先頭分割データ又は中間の分割データのとき、非同期式調停モジュールの合流元のそれぞれに対して、混雑情報を生成する。生成する混雑情報は、調停結果信号(Gr0,Gr1)に基づいて、データ転送を行っている合流元に対しては「混雑なし」を示す混雑情報であり、データ転送を待機している合流元に対しては「混雑あり」を示す混雑情報である。また、混雑情報生成回路2710は、終端信号がEi=1のとき、つまり、転送データが終端分割データであるときは、非同期式調停モジュールの全ての合流元に対して、「混雑なし」を示す混雑情報を生成する。
混雑情報生成回路2710は、転送データが先頭分割データ又は中間の分割データのとき、調停結果信号が(Gr0,Gr1)=(1,0)であれば、調停結果信号を反転して、混雑情報信号(BP0,BP1)=(0,1)を生成する。混雑情報生成回路2710は、転送データが先頭分割データ又は中間の分割データのとき、調停結果信号が(Gr0,Gr1)=(0,1)であれば、混雑情報信号(BP0,BP1)=(1,0)を生成する。混雑情報生成回路2710は、転送データが終端分割データのときは、非同期式調停モジュールが何れの合流元からのデータを転送している場合も、混雑情報信号(BP0,BP1)=(0,0)を生成する。
図27の混雑検知回路2700の各部の動作を、図26のフローチャートに対応させて説明する。初期状態では、混雑検知回路2700に入力される信号は、データ要求信号Ri=0、データ応答信号Ao=0、混雑処理応答信号BAck0=0、BAck1=0である。また、混雑検知回路2700が出力する信号は、データ要求信号Ro=0、データ応答信号Ai=0、混雑処理要求信号BReq0=0、BReq1=0である。調停結果信号Gr0、Gr1、及び、混雑情報信号BP0の状態は任意である。混雑検知回路2700は、データ要求信号がRi=0のとき、非同期式調停モジュールから、データ要求信号Ri=1が入力されるまで待機する(図26のステップH1)。
混雑検知回路2700は、データ要求信号がRi=1となると、終端信号Eiに基づいて、入力された転送データが終端分割データであるか否かを判断する(ステップH2)。混雑検知回路2700は、終端信号Ei=0のときは、入力された転送データが終端分割データではないと判断して、先頭信号Hiに基づいて、入力された転送データが先頭分割データであるか否かを判断する(ステップH3)。混雑検知回路2700は、先頭信号Hi=1のときは、入力された転送データが先頭分割データであると判断する。OR素子2701は、先頭信号Hi=1を入力すると、出力を1に変化させる。OR素子2701の出力信号が1になることで、ハンドシェイク分岐回路2740の選択信号入力端子に入力される信号は(S0,S1)=(1,0)となる。
混雑情報生成回路2710は、先頭信号がHi=1のとき、終端信号がEi=0であるので、非同期式調停モジュールから入力する調停結果信号(Gr0,Gr1)に基づいて、混雑情報信号BP0、BP1を生成する(ステップH4)。混雑検知回路2700は、ステップH4では、調停結果信号(Gr0,Gr1)から、非同期式調停モジュールが、何れの合流元からの転送データを出力しているかを判別する。混雑情報生成回路2710は、非同期式調停モジュールが合流元0番からの転送データを出力するとき、合流元0番のデータは保留されることなく転送されるので、合流元0番に対して混雑なしを示す混雑情報を生成する。これに対し、合流元1番のデータは保留されるので、合流元1番に対しては混雑ありを示す混雑情報を生成する。逆に、非同期式調停モジュールが合流元1番からの転送データを出力するとき、混雑情報生成回路2710は、合流元0番に対して混雑ありを示す混雑情報を生成し、合流元1番に対しては混雑なしを示す混雑情報を生成する。
混雑情報生成回路2710は、調停結果信号が(Gr0,Gr1)=(1,0)のとき、つまり、非同期式調停モジュールが合流元0番から入力した転送データを出力するとき、終端信号はEi=0であるので、BP0=0(混雑なし)を合流元0番に対応した混雑情報信号として生成し、BP1=1(混雑あり)を合流元1番に対応した混雑情報信号として生成する。また、混雑情報生成回路2710は、調停結果信号が(Gr0,Gr1)=(0,1)のとき、つまり、非同期式調停モジュールが合流元0番から入力した転送データを出力するときは、終端信号がEi=0であるので、BP0=1(混雑あり)を合流元0番に対応した混雑情報信号として生成し、BP1=0(混雑なし)を合流元1番に対応した混雑情報信号として生成する。
混雑検知回路2700は、混雑情報生成回路2710が生成した混雑情報信号BP0及びBP1を、非同期式調停モジュールの合流元0番及び合流元1番にそれぞれ出力する。また、混雑検知回路2700は、データ要求信号Ri=1を分岐して、ハンドシェイク分岐回路2740に入力する。ハンドシェイク分岐回路2740の選択信号入力端子に入力される信号は(S0,S1)=(1,0)となっているので、ハンドシェイク分岐回路2740は、要求出力端子Ro1から、合流元0番及び合流元1番に、それぞれ、混雑処理要求信号BReq0=1及びBReq1=1を出力する(ステップH5)。混雑検知回路2700は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ro=1を出力する(ステップH6)。
混雑検知回路2700は、データ要求信号Ro=1及び混雑処理要求信号BReq0=1、BReq1=1の出力後、データ応答信号Ao=1、混雑処理応答信号BAck0=1、BAck1=1が入力されるまで待機する(ステップH7)。対称型2入力C素子2720は、合流元0番及び合流元1番から混雑処理応答信号BAck0=1、BAck1=1が入力されると、ハンドシェイク分岐回路2740の応答入力端子Ao1に、信号BAck=1を出力する。ハンドシェイク分岐回路2740は、OR素子2701の出力が1のときにBAck=1となると、信号Ab=1を出力する。対称型2入力C素子2730は、データ応答信号Ao=1と信号Ab=1を待ち合わせて、データ応答信号Ai=1を出力する(ステップH8)。
混雑検知回路2700が、非同期式調停モジュールにデータ応答信号Ai=1を出力すると、非同期式調停モジュールから入力されるデータ要求信号はRi=0となる。ハンドシェイク分岐回路2740は、データ要求信号が取り下げられ、Ri=0となると、合流元0番及び合流元1番に出力する混雑処理要求信号を取り下げて、BReq0=0、BReq1=0を出力する。対称型2入力C素子2720は、混雑処理要求信号の取り下げ後、合流元0番及び合流元1番からの混雑処理応答信号BAck=0、BAck1=0を待ち合わせて、BAck=0を出力する。
ハンドシェイク分岐回路2740は、対称型2入力C素子2720からBAck=0を入力すると、信号Ab=0を出力する。対称型2入力C素子2730は、非同期式調停モジュールの合流先からのデータ応答信号Ao=0と信号Ab=0を待ち合わせて、非同期式調停モジュールにデータ応答信号Ai=0を出力する。これで、混雑検知回路2700は、データ応答信号Ai=0を出力して初期状態に戻る。
終端信号がEi=0で、先頭信号がHi=0の場合、つまり、入力された転送データが終端分割データでも先頭分割データでもない場合、OR素子2701は0を出力し、ハンドシェイク分岐回路2740の選択信号入力端子に入力される信号は(S0,S1)=(0,1)となる。この場合、ハンドシェイク分岐回路2740は、データ要求信号Ri=1を分岐して要求入力端子Riに入力すると、要求出力端子Ro0から、NopHS=1を出力する。要求端子Ro0から出力されたNopHS=1は、応答入力端子Ao0に折り返えされ、ハンドシェイク分岐回路2740は、応答入力端子Ao0にNopHS=1を入力することで、信号Ab=1を出力する。
入力された転送データが終端分割データでも先頭分割データでもない場合、ハンドシェイク分岐回路2740は選択信号端子S0に入力される信号がS0=0であるため、データ要求信号Ri=1を入力しても、要求出力端子Ro1からBRep0=1、BReq1=1を出力しない。混雑検知回路2700は、ハンドシェイク分岐回路2740がNopHS=1を出力するのと並行して、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ro=1を出力する(ステップH9)。言い換えれば、混雑検知回路2700は、ステップH2で転送データが終端分割データではないと判断し、かつ、ステップH3で転送データが先頭分割データではないと判断したときは、混雑情報信号及び混雑処理要求信号を出力することなく、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ro=1を出力する。
混雑検知回路2700は、データ要求信号Ro=1の出力後、データ応答信号Ao=1が入力されるまで待機する(ステップH10)。対称型2入力C素子2730は、データ応答信号Ao=1とハンドシェイク分岐回路2740からの信号Ab=1を待ち合わせて、データ応答信号Ai=1を出力する(ステップH8)。
混雑検知回路2700が、非同期式調停モジュールにデータ応答信号Ai=1を出力すると、非同期式調停モジュールから入力されるデータ要求信号は取り下げられてRi=0となる。ハンドシェイク分岐回路2740は、データ要求信号がRi=0となることで、要求出力端子Ro1から信号NopHS=0を出力し、要求入力端子Ao1に折り返す。ハンドシェイク分岐回路2740は、NopHS=0を折り返すことで、信号Ab=0を出力する。対称型2入力C素子2730は、非同期式調停モジュールの合流先からのデータ応答信号Ao=0と信号Ab=0を待ち合わせて、非同期式調停モジュールにデータ応答信号Ai=0を出力する。混雑検知回路2700は、データ応答信号Ai=0を出力して初期状態に戻る。
終端信号がEi=1で、先頭信号がHi=0の場合、つまり、入力された転送データが終端分割データである場合、OR素子2701は1を出力し、ハンドシェイク分岐回路2740の選択信号入力端子に入力される信号は(S0,S1)=(1,0)となる。混雑情報生成回路2710は、終端信号がEi=1であるときは、混雑なしを示す混雑情報信号BP0、BP1を生成する(ステップH11)。混雑情報生成回路2710は、入力された転送データが終端分割データである場合は、非同期式調停モジュールからの調停結果信号の値にかかわらず、非同期式調停モジュールの全ての合流元に対して、混雑なしを示す混雑情報を生成する。すなわち、混雑情報生成回路2710は、BP0=0(混雑なし)を合流元0番に対応した混雑情報信号として生成し、BP1=0(混雑なし)を合流元1番に対応した混雑情報信号として生成する。
混雑検知回路2700は、ステップH5〜H8を経て、データ応答信号Ai=1を出力する。混雑検知回路2700が、非同期式調停モジュールにデータ応答信号Ai=1を出力すると、非同期式調停モジュールから入力されるデータ要求信号がRi=0となる。ハンドシェイク分岐回路2740は、データ要求信号がRi=0となることで、要求出力端子Ro1から合流元0番及び合流元1番に出力する混雑処理要求信号をBReq0=0、BReq1=0とする。対称型2入力C素子2720は、合流元0番及び合流元1番からの混雑処理応答信号BAck=0、BAck1=0を待ち合わせてBAck=0を出力する。ハンドシェイク分岐回路2740は、BAck=0を入力すると、信号Ab=0を出力する。
対称型2入力C素子2730は、非同期式調停モジュールの合流先からのデータ応答信号Ao=0と信号Ab=0を待ち合わせて、非同期式調停モジュールにデータ応答信号Ai=0を出力する。これで、混雑検知回路2700は、データ応答信号Ai=0を出力して初期状態に戻る。
本実施例では、転送データが終端分割データであれば、混雑情報生成回路2710は、非同期式調停モジュールの各合流元に対して混雑なしを示す混雑情報を生成し、ハンドシェイク分岐回路2740は、各合流元へ、混雑処理要求信号を送信する。混雑検知回路2700は、混雑情報生成回路2710及びハンドシェイク分岐回路2740が上記動作を行うことで、終端分割データの転送時に、非同期式調停モジュールの各合流元の混雑回避経路計算モジュールが記憶する混雑情報を、混雑なしに更新させることができる。このように、データ列の終端分割データの転送時に混雑が解消されたという情報を非同期式調停モジュールの合流元へ送信し、混雑回避経路計算モジュールが記憶する混雑情報を更新させる。これにより、混雑回避経路計算モジュールは、正しい混雑情報を基に、混雑回避経路を計算することが可能になる。
なお、本実施形態及び本実施例では、混雑検知モジュール(混雑検知回路)は、ステップH3で、先頭分割データであるか否かを判断し、先頭分割データの転送時に、ステップH4に進んで混雑の有無を示す混雑情報を生成している。これに対し、先頭分割データ及び終端分割データ以外の転送時に、ステップH4に進んで混雑の有無を示す混雑情報を生成することも可能である。つまり、混雑の有無を示す混雑情報の送信を、単位データ列の先頭分割データの転送時に限定しない構成も可能である。
上記の動作は、具体的には、動作手順を、次のように変更することで実現できる。まず、図26のステップH3〜H10を、図3のステップB2〜B6に置き換える。次いで、動作手順を、ステップH11の終了後にステップB3へ移行して、ステップB6の終了後にステップH1へ戻るように構成する。動作手順をこのように変更することで、混雑検知モジュールは、データ列の先頭分割データの転送時だけでなく、終端分割データよりも前の分割データの転送時も混雑の有無を示す混雑情報を生成できる。さらに、混雑検知モジュールは、混雑回避経路計算モジュールに混雑処理要求信号を送信すると共に、データ列の終端分割データの転送時に混雑解消を示す混雑情報を送信するという動作を実現できる。このような動作を行う混雑検知モジュールの具体的な構成例は、図27に示す混雑検知回路2700からOR素子2701とハンドシェイク分岐回路2740を取り除き、データ要求信号Riを分岐して、混雑処理要求信号BReq0、BReq1として出力し、ハンドシェイク分岐回路2740の出力信号Abを対称型2入力C素子2730に入力するのに代えて、対称型2入力C素子2720の出力信号BAckを、対称型2入力C素子2730に入力することで、得ることができる。
本発明の第5実施形態について説明する。第3及び第4実施形態の非同期式論理回路は、単位データ列の先頭分割データの転送の際に混雑情報の更新を行い、消費電力の削減や、データ転送速度低下を抑制する効果を得られる。しかしながら、第3及び第4実施形態の非同期式論理回路で用いる混雑検知モジュールは、混雑情報が変化しないときも、非同期式調停モジュールの合流元へ混雑処理要求信号を出力している。混雑情報が変化しないときは、合流元の混雑回避経路計算モジュールにて混雑情報を更新しても、混雑情報の内容は更新前後で変わらない。従って、混雑情報の変化がないときに、混雑処理要求信号を
出力しない構成を採用すれば、更なる消費電力の削減や、データ転送速度の低下の抑制が可能である。
出力しない構成を採用すれば、更なる消費電力の削減や、データ転送速度の低下の抑制が可能である。
例えば、図27に示す混雑検知回路2700が、データ列転送がない状態から1つのデータ列を転送し、再度、データ列転送がない状態に戻った場合を考える。混雑検知回路2700は、データ列転送の先頭分割データを転送する際に、データ列転送を行っている合流元には混雑なしを示す混雑情報を送り、データ転送を行っていない合流元へは混雑ありを示す混雑情報を送る。その後、混雑検知回路2700は、データ列転送を終了する際に、非同期式調停モジュールの全ての合流元へ、混雑なしを示す混雑情報を送る。
上記のように、混雑検知回路2700は、データ列転送を行わない非同期式調停モジュールの合流元へ、先頭分割データ転送時と、終端分割データ転送時との2回にわたって、混雑なしを示す混雑情報を送信する。つまり、混雑検知回路2700は、データ列転送を行わない合流元に対して、混雑なしを示す混雑情報を継続的に送っている。混雑情報に変化がないときに、混雑処理要求信号の出力を停止できれば、混雑処理要求信号を合流元に送信し、また、合流元の混雑回避経路計算モジュールで混雑情報を記憶する際の消費電力の削減が可能である。また、混雑情報に変化がないときに、混雑処理要求信号の出力を停
止できれば、混雑回避経路計算モジュールにて、データ転送速度の無用な低下を避けることができる。そこで、本実施形態は、混雑情報に変化のあった非同期式調停モジュールの合流元に対し混雑処理要求信号を出力し、混雑情報に変化がない合流元に対しては混雑処理要求信号を出力しない混雑検知モジュールを提供する。
止できれば、混雑回避経路計算モジュールにて、データ転送速度の無用な低下を避けることができる。そこで、本実施形態は、混雑情報に変化のあった非同期式調停モジュールの合流元に対し混雑処理要求信号を出力し、混雑情報に変化がない合流元に対しては混雑処理要求信号を出力しない混雑検知モジュールを提供する。
本実施形態の非同期式論理回路の構成は、図1に示す第1実施形態の非同期式論理回路の構成と同様である。ただし、混雑検知モジュール111の動作が、第1実施形態の非同期式論理回路における混雑検知モジュール111の動作と異なる。その他の点は、第3又は4実施形態と同様である。
図28は、混雑検知モジュール111の動作手順を示している。はじめ、混雑検知モジュール111は、初期状態にある。混雑検知モジュール111は、データ要求入力端子に、非同期式調停モジュール101からデータ要求信号が入力されたか否かを判断する(ステップI1)。混雑検知モジュール111は、データ要求信号の入力がないときは、ステップI1を繰り返し実行し、データ要求信号が入力されるまで待機する。
混雑検知モジュール111は、データ要求信号が入力されると、入力された分割データが単位データ列の終端分割データであるか否かを判断する(ステップI2)。混雑検知モジュール111は、入力された分割データが単位データ列の終端でない場合、入力された分割データが単位データ列の先頭分割データであるか否かを判断する(ステップI3)。混雑検知モジュール111は、入力された分割データが単位データ列の先頭である場合、非同期式調停モジュールの調停結果が合流元0番であるか否かを判断する(ステップI4)。
混雑検知モジュール111は、非同期式調停モジュールの調停結果が合流元0番である場合、合流元1番に対して「混雑あり」を示す混雑情報を生成し(ステップI5)、合流元1番へ混雑情報信号と混雑処理要求信号とを出力する(ステップI6)。このとき、混雑検知モジュール111は、先頭分割データが入力する前の状態、すなわち、データ列の転送がない状態で、非同期式調停モジュールの双方の合流元の混雑回避経路計算モジュール112が、混雑なしを示す混雑情報を記憶している。よって、合流元0番に対しては、混雑処理要求信号を出力しない。
混雑検知モジュール111は、非同期式調停モジュール101からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する(ステップI7)。混雑検知モジュール111は、調停結果が合流元0番であるので、ステップI7では、非同期式調停モジュール101が、図19のステップE6で出力した合流元0番からの転送データを、データ出力端子から出力する。
混雑検知モジュール111は、ステップI7で出力したデータ要求信号に対するデータ応答信号、及び、ステップI6で合流元1番に出力した混雑処理要求信号に対する混雑処理応答信号を待ち合わせる(ステップI8)。混雑検知モジュール111は、合流元1番に対応する混雑処理応答入力端子に、ステップI6で出力した混雑処理要求信号に対する混雑処理応答信号が入力されたか否かを判断する。また、混雑検知モジュール111は、データ応答入力端子に、ステップI7で出力したデータ要求信号に対するデータ応答信号が入力されたか否かを判断する。混雑検知モジュール111は、合流元1番から混雑処理応答信号を入力していないと判断したとき、又は、データ応答信号を入力していないと判断したときは、ステップI8を繰り返し実行し、混雑処理応答信号及びデータ応答信号が入力されるまで待機する。
混雑検知モジュール111は、合流元1番から混雑処理応答信号が入力され、かつ、データ応答信号が入力されると、データ応答出力端子から、非同期式調停モジュール101にデータ応答信号を出力する(ステップI9)。その後、混雑検知モジュール111は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップI1(初期状態)に戻る。
混雑検知モジュール111は、ステップI4で、非同期式調停モジュールの調停結果が合流元1番であると判断した場合は、合流元0番に対して「混雑あり」を示す混雑情報を生成する(ステップI14)。その後、合流元0番へ混雑情報信号と混雑処理要求信号とを出力する(ステップI15)。このとき、混雑検知モジュール111は、先頭分割データが入力する前の状態、すなわち、データ列の転送がない状態である。ここでは、非同期式調停モジュールの双方の合流元の混雑回避経路計算モジュール112が、混雑なしを示す混雑情報を記憶しているので、合流元1番に対しては、混雑処理要求信号を出力しない。
混雑検知モジュール111は、非同期式調停モジュール101からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する(ステップI16)。混雑検知モジュール111は、調停結果が合流元1番であるので、ステップI16では、非同期式調停モジュール101が、図19のステップE10で出力した合流元1番からの転送データを、データ出力端子から出力する。
混雑検知モジュール111は、ステップI16で出力したデータ要求信号に対するデータ応答信号、及び、ステップI15で合流元0番に出力した混雑処理要求信号に対する混雑処理応答信号を待ち合わせる(ステップI17)。混雑検知モジュール111は、合流元0番に対応する混雑処理応答入力端子に、ステップI6で出力した混雑処理要求信号に対する混雑処理応答信号が入力されたか否かを判断する。また、混雑検知モジュール111は、データ応答入力端子に、ステップI7で出力したデータ要求信号に対するデータ応答信号が入力されたか否かを判断する。混雑検知モジュール111は、合流元0番から混雑処理応答信号を入力していないと判断したとき、又は、データ応答信号を入力していないと判断したときは、ステップI17を繰り返し実行し、混雑処理応答信号及びデータ応答信号が入力されるまで待機する。
混雑検知モジュール111は、合流元0番から混雑処理応答信号が入力され、かつ、データ応答信号が入力されると、ステップI9へ進み、非同期式調停モジュール101にデータ応答信号を出力する。その後、混雑検知モジュール111は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップI1(初期状態)に戻る。
混雑検知モジュール111は、ステップI2で、入力された分割データが単位データ列の終端でないと判断し、ステップI3で、入力された分割データが単位データ列の先頭でないと判断したとき、すなわち、転送データが中間の分割データであると判断したときは、ステップI10に進む。そこで非同期式調停モジュール101からデータ入力端子を介して入力した分割データと、データ要求入力端子を介して入力したデータ要求信号とを、データ出力端子及びデータ要求出力端子からそれぞれ出力する(ステップI10)。混雑検知モジュール111は、非同期式調停モジュール101が、ステップE6で合流元0番からの転送データを出力しているときは、データ出力端子から、合流元0番からの転送データを出力する。また、混雑検知モジュール111は、非同期式調停モジュール101が、ステップE10で合流元1番からの転送データを出力しているときは、データ出力端子から、合流元1番からの転送データを出力する。
混雑検知モジュール111は、ステップI10で出力したデータ要求信号に対するデータ応答信号が入力されるまで待機する(ステップI11)。混雑検知モジュール111は、データ応答信号が入力されると、ステップI9へ進み、データ応答出力端子から、非同期式調停モジュール101にデータ応答信号を出力する。その後、混雑検知モジュール111は、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップI1(初期状態)に戻る。
混雑検知モジュール111は、ステップI2で、入力された分割データが単位データ列の終端分割データであると判断した場合は、非同期式調停モジュールの調停結果が合流元0番であるか否かを判断する(ステップI12)。非同期式調停モジュールの調停結果が合流元0番である場合、データ列の終端分割データを転送した後に混雑が解消されるため、混雑検知モジュール111は、合流元1番に対して「混雑なし」を示す混雑情報を生成する(ステップI13)。
混雑検知モジュール111は、ステップI13で合流元1番に対して混雑なしを示す混雑情報を生成した後、ステップI6へ進み、合流元1番に混雑情報信号と混雑処理要求信号を出力する。その後、混雑検知モジュール111は、ステップI7で、転送データとデータ要求信号とを出力し、ステップI8で、データ応答信号と、混雑処理応答信号とを待ち合わせる。混雑検知モジュール111は、データ応答信号と混雑処理応答信号とが入力されると、ステップI9へ進み、データ応答信号を出力する。混雑検知モジュール111は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップI1(初期状態)に戻る。
混雑検知モジュール111は、ステップI12で、調停結果が合流元1番であると判断したときは、合流元0番に対して「混雑なし」を示す混雑情報を生成する(ステップI18)。その後、混雑検知モジュール111は、ステップI15へ進み、合流元0番へ混雑情報信号と混雑処理要求信号を出力し、ステップI16で、転送データとデータ要求信号とを出力し、ステップI17で、データ応答信号と、混雑処理応答信号とを待ち合わせる。混雑検知モジュール111は、データ応答信号と混雑処理応答信号とが入力されると、ステップI9へ進み、データ応答信号を出力する。混雑検知モジュール111は、データ応答信号の出力後、入力されるデータ要求信号の取り下げ、及び、出力するデータ応答信号の取り下げを経て、ステップI1(初期状態)に戻る。
混雑検知モジュール111は、データ列の先頭分割データ転送時、及び、終端データ転送時に、混雑情報が変化する合流元に対して、混雑情報及び混雑処理要求信号を出力する。例えば、合流元0番に対応する混雑回避経路計算モジュール112が、既に混雑なしを示す混雑情報を記憶しているときに、合流元0番に対しては、混雑処理要求信号を出力しない。これにより、混雑処理要求信号を合流元0番に対応する混雑回避経路計算モジュール112まで転送し、また、混雑回避経路計算モジュール112内で混雑情報を記憶する際の電力消費を抑えることができる。また、混雑回避経路計算モジュール112は、同じ内容の混雑情報を記憶するための混雑処理要求信号が入力されないことで、データ転送が一時停止されず、データ転送速度の低下を回避することもできる。
続いて、第5実施例を説明する。本実施例の半導体回路に含まれる非同期式コア間接続回路における各回路の接続形態は、図6に示す非同期式コア間接続回路600における各回路の接続形態と同様である。非同期式分岐モジュール611には、第1実施例と同様に、図7に示す回路構成の非同期式分岐回路700を用いることができる。また、非同期式調停モジュール612、614、622には、図21に示す回路構成の非同期式調停回路2100を用いることができる。混雑回避経路計算モジュール631には、図23に示す回路構成の混雑回避経路計算回路2300を用いることができる。
本実施例では、混雑検知モジュール632、642に、図27に示す回路構成の混雑検知回路2700に代えて、混雑情報が変化する合流元に対して混雑処理要求信号を出力する混雑検知回路を用いる。図29は、混雑検知モジュールの回路構成例を示している。混雑検知モジュール632、642は、図29に示す混雑検知回路2900で構成できる。混雑検知回路2900は、混雑処理要求送信先選択回路2901、混雑情報生成回路2910、対称型2入力C素子2930、及び、ハンドシェイク分岐回路2940を有する。混雑情報生成回路2910、及び、対称型2入力C素子2930は、第4実施例で用いた混雑検知回路2700における混雑情報生成回路2710、及び、対称型2入力C素子2730とそれぞれ同じものである。
ハンドシェイク分岐回路2940は、第4実施例で用いた混雑検知回路2700におけるハンドシェイク分岐回路2740と同様な構成である。ただし、ハンドシェイク分岐回路2940は、分岐先を3つ有する。ハンドシェイク分岐回路2940は、3つの選択信号入力端子(S0,S1,S2)と、要求信号出力端子と応答信号入力端子との組を3つ有する。選択信号入力端子S0〜S2に入力される選択信号は、全て0、又は、何れか一つが1で残りは0である。ハンドシェイク分岐回路2940は、入力される選択信号に応じて、3つの分岐先の何れかに要求信号を出力し、要求信号を出力した分岐先から応答信号を入力する。
ハンドシェイク分岐回路2940は、選択信号S0=1のときは、要求入力端子Riにデータ要求信号が入力されると、要求出力端子Ro0から要求信号を出力する。また、ハンドシェイク分岐回路2940は、応答入力端子Ao0に応答信号が入力されると、応答出力端子Aiから、応答信号を出力する。ハンドシェイク分岐回路2940は、選択信号S1=1のときは、要求出力端子Ro1から要求信号を出力し、応答入力端子Ao1から応答信号を入力する。ハンドシェイク分岐回路2940は、選択信号S2=1のときは、要求出力端子Ro2から要求信号を出力し、応答入力端子Ao2から応答信号を入力する。
図30は、ハンドシェイク分岐回路2940の動作手順をしている。ハンドシェイク分岐回路2940は、要求入力端子Riに、データ要求信号が入力されたか否かを判断する(ステップJ1)。ハンドシェイク分岐回路2940は、データ要求信号が入力されると、選択信号が分岐先0番を示しているか否か、つまり、選択信号がS0=1であるか否かを判断する(ステップJ2)。
ハンドシェイク分岐回路2940は、選択信号がS0=1のときは、分岐先0番を選択し、要求出力端子Ro0から要求信号を出力する(ステップJ3)。ハンドシェイク分岐回路2940は、要求信号の出力後、応答入力端子Ao0に、応答信号が入力されたか否かを判断する(ステップJ4)。ハンドシェイク分岐回路2940は、応答信号が入力されていないときは、ステップJ4を繰り返し実行し、応答信号が入力されるまで待機する。
ハンドシェイク分岐回路2940は、選択信号がS0=1でないときは、選択信号が分岐先1番を示しているか否か、つまり、選択信号がS1=1であるか否かを判断する(ステップJ5)。ハンドシェイク分岐回路2940は、選択信号がS1=1のときは、分岐先1番を選択し、要求出力端子Ro1から要求信号を出力する(ステップJ6)。ハンドシェイク分岐回路2940は、要求信号の出力後、応答入力端子Ao1に、応答信号が入力されたか否かを判断する(ステップJ7)。ハンドシェイク分岐回路2940は、応答信号が入力されていないときは、ステップJ7を繰り返し実行し、応答信号が入力されるまで待機する。
ハンドシェイク分岐回路2940は、選択信号がS0=1でもS1=1でもないとき、つまり、選択信号がS2=1のときは、分岐先2番を選択し、要求出力端子Ro2から要求信号を出力する(ステップJ8)。ハンドシェイク分岐回路2940は、要求信号の出力後、応答入力端子Ao2に、応答信号が入力されたか否かを判断する(ステップJ9)。ハンドシェイク分岐回路2940は、応答信号が入力されていないときは、ステップJ9を繰り返し実行し、応答信号が入力されるまで待機する。
ハンドシェイク分岐回路2940は、ステップJ4、J7、又は、J9で、応答信号が入力されたと判断すると、応答出力端子Aiから、応答信号を出力する。ハンドシェイク分岐回路2940は、応答信号の出力後、要求信号の取り下げ、及び、応答信号の取り下げを経て、ステップJ1(初期状態)に戻る。
図31は、ハンドシェイク分岐回路2940の回路構成例を示している。ハンドシェイク分岐回路2940は、図31に示す回路構成のハンドシェイク分岐回路3100で構成できる。ハンドシェイク分岐回路3100の構成は、図7に示す非同期式分岐回路700の構成のうち、データ転送経路を除いた部分で構成と概ね同様である。ただし、ハンドシェイク分岐回路3100は、3つの分岐先を有するので、3つの非対称型2入力C素子3110〜3112を有する。また、OR素子3120は、3つの分岐先からの応答信号の論理和を、応答出力端子から出力する。
図29に戻り、ハンドシェイク分岐回路2940は、分岐先0番の要求出力端子Ro0から、非同期式調停モジュールの合流元0番に対応した混雑処理要求信号BReq0を出力する。また、ハンドシェイク分岐回路2940は、分岐先0番の応答入力端子Ao0に、合流元0番から混雑処理応答信号BAck0を入力する。ハンドシェイク分岐回路2940は、分岐先1番の要求出力端子Ro1から、合流元1番に対応した混雑処理要求信号BReq1を出力し、分岐先1番の応答入力端子Ao1に、合流元1番からの混雑処理応答信号を入力する。ハンドシェイク分岐回路2940は、分岐先2番の要求出力端子Ro2から、信号NopHSを出力し、分岐先2番の応答入力端子Ao2に折り返して入力する。
混雑処理要求送信先選択回路2901は、調停結果信号Gr0、Gr1と、先頭信号Hiと、終端信号Eiとに基づいて、ハンドシェイク分岐回路2940の選択信号入力端子(S0,S1,S2)に入力する選択信号を生成する。ここで、選択信号S0=1は、ハンドシェイク分岐回路2940が分岐先0番を選択し、非同期式調停モジュールの合流元0番へ混雑処理要求信号を出力することを意味する。選択信号S1=1は、ハンドシェイク分岐回路2940が分岐先0を選択し、非同期式調停モジュールの合流元1番へ混雑処理要求信号を出力することを意味する。選択信号S2=1は、ハンドシェイク分岐回路2940が分岐先2番を選択し、非同期式調停モジュールの何れの合流元へも混雑処理要求信号を出力しないことを意味する。
混雑処理要求送信先選択回路2901は、「+」を論理和演算子として、入0力が(Hi+Ei,Gr0,Gr1)=(1,1,0)のときは、選択信号(S0,S1,S2)=(0,1,0)を出力する。また、混雑処理要求送信先選択回路2901は、入力が(Hi+Ei,Gr0,Gr1)=(1,0,1)のときは、選択信号(S0,S1,S2)=(1,0,0)を出力する。混雑処理要求送信先選択回路2901は、入力が(Hi+Ei,Gr0,Gr1)=(0,−,−)のとき、選択信号(S0,S1,S2)=(0,0,1)を出力する。「−」は、値が0と1の何れでもよいことを表している。
ハンドシェイク分岐回路2940は、転送データが先頭分割データ又は終端分割データのとき、非同期式調停モジュールの合流元のうち、非同期式調停モジュールが転送データを出力していない側の合流元に混雑情報記憶要求信号を出力する。すなわち、先頭信号がHi=1のとき、又は、終端信号がEi=1のとき、調停結果信号が(Gr0,Gr1)=(1,0)であれば、混雑処理要求送信先選択回路2901が選択信号(S0,S1,S2)=(0,1,0)を出力する。これにより、ハンドシェイク分岐回路2940は、非同期式調停モジュールの合流元1番へ混雑処理要求信号BP1=1を出力する。また、先頭信号がHi=1のとき、又は、終端信号がEi=1のとき、調停結果信号が(Gr0,Gr1)=(0,1)であれば、混雑処理要求送信先選択回路2901が選択信号(S0,S1,S2)=(1,0,0)を出力する。これにより、ハンドシェイク分岐回路2940は、非同期式調停モジュールの合流元0番へ混雑処理要求信号BP0=1を出力する。
一方、ハンドシェイク分岐回路2940は、転送データが先頭分割データではなく、また、終端分割データでもないとき、つまり、転送データが中間の分割データのとき、非同期式調停モジュールの合流元の何れにも混雑情報記憶要求信号をしない。すなわち、先頭信号がHi=0で、かつ、終端信号がEi=0のときは、混雑処理要求送信先選択回路2901が選択信号(S0,S1,S2)=(0,0,1)を出力する。これにより、ハンドシェイク分岐回路2940は、要求信号を自身への帰還信号として入力し、非同期式調停モジュールの合流元0番及び1番に混雑処理要求信号を出力しない。
混雑情報生成回路2910は、転送中の分割データが先頭分割データのとき、データ転送を待機している合流元に対しては「混雑あり」を示す混雑情報を生成する。混雑検知回路2900は、先頭分割データの転送時は、非同期式調停モジュールで転送待機させられている合流元に対して、混雑情報生成回路2910から混雑ありを示す混雑情報を出力すると共に、ハンドシェイク分岐回路2940から混雑処理要求信号を出力する。合流元の混雑回避経路計算モジュールは、混雑処理要求信号を受け取ると、記憶する混雑情報を「混雑あり」に更新する。このとき、混雑情報生成回路2910は、非同期式調停モジュールで転送中の合流元に対して「混雑なし」を示す混雑情報を生成するが、その合流元の混雑回避経路計算モジュールはデータ転送前の状態で「混雑なし」を記憶している。このため、ハンドシェイク分岐回路2940は、転送中の合流元に対しては、混雑処理要求信号を出力しない。
混雑情報生成回路2910は、転送中の分割データが中間の分割データのとき、データ転送中の合流元に対して「混雑なし」を示す混雑情報を生成し、データ転送を待機している合流元に対しては「混雑あり」を示す混雑情報を生成する。しかしながら、非同期式調停モジュールで転送中の合流元の混雑回避経路計算モジュールは、データ転送がない状態から「混雑なし」を記憶し続けている。また、転送待機させられる合流元の混雑回避経路計算モジュールは、先頭分割データの転送時に「混雑あり」を記憶している。このため、ハンドシェイク分岐回路2940は、中間の分割データの転送時には、非同期式調停モジ
ュールの何れの合流元へも、混雑処理要求信号を出力しない。
ュールの何れの合流元へも、混雑処理要求信号を出力しない。
混雑情報生成回路2910は、転送中の分割データが終端分割データのとき、双方の合流元に対して「混雑なし」を示す混雑情報を生成する。混雑検知回路2900は、終端分割データの転送時は、非同期式調停モジュールで転送待機させられている合流元に対して、混雑情報生成回路2910から混雑なしを示す混雑情報を出力すると共に、ハンドシェイク分岐回路2940から混雑処理要求信号を出力する。合流元の混雑回避経路計算モジュールは、混雑処理要求信号を受け取ると、記憶する混雑情報を「混雑なし」に更新する。非同期式調停モジュールで転送中の合流元の混雑回避経路計算モジュールは、先頭分割データ転送がない状態から「混雑なし」を記憶し続けている。このため、ハンドシェイク分岐回路2940は、転送中の合流元に対しては、混雑処理要求信号を出力しない。
図29の混雑検知回路2900の各部の動作を、図28のフローチャートに対応させて説明する。初期状態では、混雑検知回路2900に入力される信号は、データ要求信号Ri=0、データ応答信号Ao=0、混雑処理応答信号BAck0=0、BAck1=0である。また、混雑検知回路2900が出力する信号は、データ要求信号Ro=0、データ応答信号Ai=0、混雑処理要求信号BReq0=0、BReq1=0である。調停結果信号Gr0、Gr1、及び、混雑情報信号BP0の状態は任意である。
混雑検知回路2900は、データ要求信号がRi=0のとき、非同期式調停モジュールから、データ要求信号Ri=1が入力されるまで待機する(図28のステップI1)。混雑検知回路2900は、データ要求信号がRi=1になると、終端信号Eiに基づいて、入力された転送データが終端分割データであるか否かを判断する(ステップI2)。混雑検知回路2900は、終端信号Ei=0であれば、入力された転送データが終端分割データではないと判断し、先頭信号Hiに基づいて、入力された転送データが先頭分割データであるか否かを判断する(ステップI3)。
混雑検知回路2900は、先頭信号がHi=1のとき、入力された転送データが先頭分割データであると判断し、非同期式調停モジュールから入力する調停信号(Gr0,Gr1)に基づいて、合流元0番が転送中であるか否かを判断する(ステップI4)。混雑情報生成回路2910は、非同期式調停モジュールが合流元0番からのデータ列を転送中で、調停結果信号が(Gr0,Gr1)=(1,0)であれば、合流元1番が混雑している旨を示す混雑情報信号(BP0、BP1)=(0,1)を生成する(ステップI5)。
混雑検知回路2900は、データ要求信号Riを分岐し、ハンドシェイク分岐回路2940の要求入力端子Riに入力する。混雑処理要求送信先選択回路2901は、先頭信号がHi=1で、調停結果信号が(Gr0,Gr1)=(1,0)であれば、選択信号(S0,S1,S2)=(0,1,0)を出力する。ハンドシェイク分岐回路2940は、データ要求信号がRi=1になると、選択信号S1=1であるので、分岐先1番の要求出力端子Ro1から、非同期式調停モジュールの合流元1番へBReq1=1を出力する。また、混雑検知回路2900は、非同期式調停モジュールの合流元1番に対する混雑情報信号BP=1を、合流元1番に出力する(ステップI6)。
混雑検知回路2900は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、非同期式調停モジュールの合流元0番からの転送データとデータ要求信号Ro=1を出力する(ステップI7)。混雑検知回路2900は、データ要求信号Ro=1及び混雑処理要求信号BReq1=1の出力後、データ応答信号Ao=1、混雑処理応答信号BAck1=1が入力されるまで待機する(ステップI8)。
ハンドシェイク分岐回路2940は、分岐先選択信号が(S0,S1,S2)=(0,1,0)であるので、応答入力端子Ao1に、非同期式調停モジュールの合流元1番から、混雑処理要求信号BAck=1が入力されると、応答出力端子Aiから、信号Ab=1を出力する。対称型2入力C素子2930は、データ応答信号Ao=1と信号Ab=1を待ち合わせて、データ応答信号Ai=1を出力する(ステップI9)。
混雑検知回路2900が、非同期式調停モジュールにデータ応答信号Ai=1を出力すると、非同期式調停モジュールから入力されるデータ要求信号が取り下げられて、データ要求信号がRi=0となる。ハンドシェイク分岐回路2940は、データ要求信号がRi=0となると、要求出力端子Ro1から出力する混雑処理要求信号を取り下げ、BReq1=0を出力する。
ハンドシェイク分岐回路2940は、混雑処理要求信号の取り下げ後、合流元1番から混雑処理応答信号BAck1=0を入力すると、応答出力端子Aoから、信号Ab=0を出力する。対称型2入力C素子2930は、非同期式調停モジュールの合流先からのデータ応答信号Ao=0と信号Ab=0を待ち合わせて、非同期式調停モジュールにデータ応答信号Ai=0を出力する。これで、混雑検知回路2900は、データ応答信号Ai=0を出力して、ステップI1(初期状態)に戻る。
混雑検知回路2900は、中間の分割データの転送時は、ステップI2で終端信号がEi=0であることから、転送データは終端分割データではないと判断する。また、混雑検知回路2900は、ステップI3で先頭信号がHi=0であることから、転送データは先頭分割データではないと判断する。この場合、混雑検知回路2900は、混雑情報信号及び混雑処理要求信号を出力することなく、非同期式調停モジュールの合流先に、転送データとデータ要求信号Ro=1を出力する(ステップI10)。
中間の分割データの転送時、混雑処理要求送信先選択回路2901は、先頭信号及び終端信号がそれぞれHi=0、Ei=0であるため、非同期式調停モジュールが何れの合流元を選択している場合でも、(S0,S1,S2)=(0,0,1)を出力する。ハンドシェイク分岐回路2940には、データ要求信号Ri=1が入力されると、要求出力端子Ro2からNopHS=1を出力し、これを、応答入力端子Ao2に折り返して入力する。ハンドシェイク分岐回路2940は、NopHS=1を折り返して入力することで、応答出力端子から、信号Ab=1を出力する。
混雑検知回路2900は、データ要求信号Ro=1の出力後、データ応答信号Ao=1が入力されるまで待機する(ステップI11)。対称型2入力C素子2930は、データ要求信号はRi=1となった後にAb=1となっているので、データ応答信号Ao=1を入力すると、データ応答信号Ai=1を出力する(ステップI9)。
混雑検知回路2900が、非同期式調停モジュールにデータ応答信号Ai=1を出力すると、非同期式調停モジュールから入力されるデータ要求信号が取り下げられ、Ri=0となる。ハンドシェイク分岐回路2940は、データ要求信号がRi=0となると、要求出力端子Ro2から信号NopHS=0を出力し、これを、応答入力端子Ao2に折り返して入力する。ハンドシェイク分岐回路2940は、NopHS=0を折り返して入力することで、応答出力端子Aiから、信号Ab=1を出力する。
対称型2入力C素子2930は、非同期式調停モジュールの合流先からのデータ応答信号Ao=0と信号Ab=0とを待ち合わせ、非同期式調停モジュールにデータ応答信号Ai=0を出力する。これで、混雑検知回路2900は、データ応答信号Ai=0を出力してステップI1(初期状態)に戻る。
転送データが終端分割データのとき、混雑検知回路2900は、ステップI2で、終端信号がEi=1であることから、転送データが終端分割データであると判断する。混雑検知回路2900は、調停結果信号は、先頭分割データ及び中間の分割データから継続して(Gr0,Gr1)=(1,0)であるため、ステップI12で、非同期式調停モジュールの合流元0番からのデータ列を転送していると判断する。混雑情報生成回路2910は、終端信号がEi=1であるため、混雑情報信号(BP0、BP1)=(0,0)を生成する(ステップI13)。
混雑検知回路2900は、データ要求信号Riを分岐し、ハンドシェイク分岐回路2940の要求入力端子Riに入力する。混雑処理要求送信先選択回路2901は、終端信号がEi=1で、調停結果信号が(Gr0,Gr1)=(1,0)であれば、選択信号(S0,S1,S2)=(0,1,0)を出力する。ハンドシェイク分岐回路2940は、データ要求信号がRi=1になると、選択信号S1=1であるので、分岐先1番の要求出力端子Ro1から、非同期式調停モジュールの合流元1番へBReq1=1を出力する。また、混雑検知回路2900は、非同期式調停モジュールの合流元1番に対する混雑情報信号BP=0を、合流元1番に出力する(ステップI6)。
混雑検知回路2900は、混雑情報信号及び混雑処理要求信号の出力と並行して、非同期式調停モジュールの合流先に、非同期式調停モジュールの合流元0番からの転送データとデータ要求信号Ro=1を出力する(ステップI7)。混雑検知回路2900は、データ要求信号Ro=1及び混雑処理要求信号BReq1=1の出力後、データ応答信号Ao=1、混雑処理応答信号BAck1=1が入力されるまで待機する(ステップI8)。
ハンドシェイク分岐回路2940は、分岐先選択信号が(S0,S1,S2)=(0,1,0)であるので、応答入力端子Ao1に、非同期式調停モジュールの合流元1番から、混雑処理要求信号BAck=1が入力されると、応答出力端子Aiから、信号Ab=1を出力する。対称型2入力C素子2930は、データ応答信号Ao=1と信号Ab=1を待ち合わせて、データ応答信号Ai=1を出力する(ステップI9)。
混雑検知回路2900が、非同期式調停モジュールにデータ応答信号Ai=1を出力すると、非同期式調停モジュールから入力されるデータ要求信号が取り下げられて、Ri=0となる。ハンドシェイク分岐回路2940は、データ要求信号がRi=0となると、要求出力端子Ro1から出力する混雑処理要求信号を取り下げ、BReq1=0を出力する。
ハンドシェイク分岐回路2940は、混雑処理要求信号の取り下げ後、合流元1番から混雑処理応答信号BAck1=0を入力すると、応答出力端子Aoから、信号Ab=0を出力する。対称型2入力C素子2930は、非同期式調停モジュールの合流先からのデータ応答信号Ao=0と信号Ab=0を待ち合わせて、非同期式調停モジュールにデータ応答信号Ai=0を出力する。これで、混雑検知回路2900は、データ応答信号Ai=0を出力して、ステップI1(初期状態)に戻る。
終端分割データの転送が終了した後に、別のデータ列の先頭分割データが、非同期式モジュールの合流元1番から転送されたとする。その場合、混雑検知回路2900の動作は、上記で説明した動作の合流元0番と合流元1番とを入れ替えた動作を行う。すなわち、混雑検知回路2900は、上記した動作のステップI5〜I8をI14〜I17に置き換え、ステップI13をI18に置き換えた動作を行う。
本実施例では、図6の混雑検知モジュール632、642を、図29に示す混雑検知回路2900で構成する。混雑検知回路2900は、混雑情報の変化があった非同期式調停モジュールの合流元に対してのみ、混雑処理要求信号を出力することができる。このため、混雑情報の転送の電力低減を図ることができる。従って、また、混雑回避経路計算モジュール631は、同じ内容の混雑情報を記憶するために、データ転送を一時停止することがないため、混雑情報を記憶する処理に起因して発生する転送速度低下を抑制することができる。
なお、混雑検知回路2900は、混雑情報に変化があった非同期式調停モジュールの合流元にのみ混雑処理要求信号を出力する。このため、混雑処理要求信号を受け取った混雑回避経路計算モジュールは、該当する分岐先の混雑情報を、現在記憶している混雑情報とは異なる混雑情報に更新することになる。従って、混雑回避経路計算モジュールが、混雑情報を受け取って記憶するのに代えて、混雑処理要求信号が入力されると、記憶する混雑情報を反転するという構成を採用することもできる。この場合、混雑処理要求信号は、混雑情報の反転を要求する反転要求信号に相当する。このような構成を採用した場合、混雑検知回路2900は、混雑情報を出力する必要がないので、混雑情報生成回路2910を省くことができる。
上記の動作は、具体的には、図23に示す混雑回避経路計算回路2300の構成を、下記のように変更することで実現できる。混雑回避経路計算回路2300から、混雑情報入力端子BP0を取り除き、マルチプレクサ2320の1番入力へ混雑情報記憶ラッチ2340の出力信号BLo0の論理否定をとった信号を入力する。また、混雑回避経路計算回路2300から、混雑情報入力BP1を取り除き、マルチプレクサ2321の1番入力へ混雑情報記憶ラッチ2340の出力信号BLo1の論理否定をとった信号を入力する。
例えば、非同期式分岐モジュールの分岐先0番に対応する混雑検知モジュールから混雑処理要求信号(反転要求信号)を入力すると、マルチプレクサ2320が1番入力側を選択し、信号BLo0の論理否定を出力する。これにより、混雑回避経路計算回路2300は、混雑情報記憶ラッチ2340が記憶する混雑情報を、混雑なしから混雑ありへ、又は、混雑ありから混雑なしへと反転する。また、非同期式分岐モジュールの分岐先1番に対応する混雑検知モジュールから混雑処理要求信号を入力すると、マルチプレクサ2321が1番入力側を選択し、信号BLo1の論理否定を出力する。これにより、混雑回避経路計算回路2300は、混雑情報記憶ラッチ2340が記憶する混雑情報を、混雑なしから混雑ありへ、又は、混雑ありから混雑なしへと反転する。
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の非同期式論理回路及び混雑回避経路回避モジュールは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
以下、本発明の最小構成について説明する。本発明の非同期式論理回路は、最小構成として、非同期式分岐モジュールと、非同期式調停モジュールと、混雑検知モジュールと、混雑回避経路計算モジュールとを有する。非同期式論理回路は、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行う。非同期式分岐回路は、ハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する。非同期式調停モジュールは、転送データの転送経路を合流し、複数の合流元の少なくとも1つから入力された転送データを、ハンドシェイク・プロトコルに矛盾することなく所定の手順で逐次的に出力する。混雑検知モジュールは、非同期式調停モジュールに対応して配置される。混雑検知モジュールは、非同期式調停モジュールから、何れの合流元からの転送データを転送中であるかを示す調停結果信号を受け取り、非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する。混雑回避経路計算モジュールは、非同期式分岐モジュールに対応して配置される。混雑回避経路計算モジュールは、非同期式分岐モジュールの分岐先にある混雑検知モジュールから混雑情報を受け取り、同期式分岐モジュールの複数の分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理を行う。また、混雑回避経路計算モジュールは、混雑情報及び転送データの目的地情報に基づいて、非同期式分岐モジュールに対し、目的地に到達可能分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理を行う。混雑回避経路計算モジュールは、混雑情報を記録する処理と、非同期式分岐モジュールの転送分岐先を決定する処理とを、排他的に行う。
本発明の非同期式論理回路では、混雑情報を記録する処理と、非同期式分岐モジュールの転送分岐先を決定する処理とを、排他的に行う。このようにすることで、データ転送中を避けて混雑情報の更新を行うことができる。また、混雑情報記憶要求信号とデータ要求信号とが独立したタイミングで発生する非同期式論理回路において、非同期式分岐モジュールが転送データを出力する分岐先の変化が、データ転送ハンドシェイクの途中で起こることを防ぐことができる。本発明では、混雑情報を用いて、混雑箇所を回避するための経路設定計算を正しく行うことができるので、非同期式分岐モジュールが、目的地へ到達可能な分岐先を複数持つとき、混雑が発生していない分岐先を優先的に転送分岐先として選ぶことができる。その結果として、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる。
本発明の混雑回避経路計算モジュールは、最小構成として、データ混雑情報間調停回路と、メモリ記憶制御回路と、経路計算回路とを有する。データ混雑情報間調停回路は、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する非同期式分岐モジュールに対するデータ要求信号と、非同期式分岐モジュールの分岐先から受け取る混雑情報記憶要求信号との調停を行う。調停結果により、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させる。メモリ記憶制御回路は、データ混雑情報間調停回路が混雑情報記憶要求信号を通過させると、非同期式分岐モジュールの分岐先から受け取った前記混雑情報を、分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶させる。経路計算回路は、データ混雑情報間調停回路がデータ要求信号を通過させると、混雑情報及び非同期式分岐モジュールに入力される転送データの目的地情報に基づいて、非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる。
本発明の混雑回避経路計算モジュールでは、データ混雑情報間調停回路は、データ要求信号と、混雑情報記憶要求信号との何れか一方を通過させてハンドシェイクを仲介する。データ混雑情報間調停回路は、通過させた信号に対する処理完了まで、他方の信号を待機させるので、メモリ記憶制御回路を用いた混雑情報の更新と、経路計算回路を用いた転送分岐先の選択とを、排他的に行うことができる。このような混雑回避経路計算回路を用いることで、混雑情報記憶要求信号とデータ要求信号とが独立したタイミングで発生する非同期式論理回路において、非同期式分岐モジュールが転送データを出力する分岐先の変化が、データ転送ハンドシェイクの途中で起こることを防ぐことができる。本発明では、混雑情報を用いて、混雑箇所を回避するための経路設定計算を正しく行うことができるので、非同期式分岐モジュールが、目的地へ到達可能な分岐先を複数持つとき、混雑が発生していない分岐先を優先的に転送分岐先として選ぶことができる。その結果として、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる。
本発明の非同期式論理回路における経路計算方法の最小構成は以下の通りである。まず、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する非同期式分岐モジュールに対するデータ要求信号と、前記非同期式分岐モジュールの分岐先から受け取る、混雑の有無を示す混雑情報の記憶を要求する混雑情報記憶要求信号との調停を行う。調停の結果、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させる。前記混雑情報記憶要求信号が通過したとき、非同期式分岐モジュールの分岐先から受け取った前記混雑情報を、前記分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理を行う。前記データ要求信号を通過させたとき、前記混雑情報及び前記非同期式分岐モジュールに入力される転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理を行う。
本発明の非同期式論理回路における経路計算方法では、データ要求信号と、混雑情報記憶要求信号との調停を行い、何れか一方を通過させてハンドシェイクを仲介する。本発明では、通過させた信号に対する処理完了まで、他方の信号を待機させるので、混雑情報の更新処理と、転送分岐先の選択処理とを、排他的に行うことができる。このようにすることで、混雑情報記憶要求信号とデータ要求信号とが独立したタイミングで発生する非同期式論理回路において、非同期式分岐モジュールが転送データを出力する分岐先の変化が、データ転送ハンドシェイクの途中で起こることを防ぐことができる。本発明では、混雑情報を用いて、混雑箇所を回避するための経路設定計算を正しく行うことができるので、非同期式分岐モジュールが、目的地へ到達可能な分岐先を複数持つとき、混雑が発生していない分岐先を優先的に転送分岐先として選ぶことができる。その結果として、混雑箇所があるときでも、データ転送経路の通信容量が無駄になることを抑制することができる。
本出願は2009年6月25日に出願された日本国特許出願2009−151351号及び2009年11月30日に出願された日本国特許出願2009−271516号に基づく。本明細書中に日本国特許出願2009−151351号及び日本国特許出願2009−271516号の明細書、特許請求の範囲および図面全体を参照として取り込むものとする。
100:非同期式コア間接続回路
101:非同期式調停モジュール
102:非同期式分岐モジュール
111:混雑検知モジュール
112:混雑回避経路計算モジュール
600:非同期式コア間接続回路
601、603:同期式マスタ側コア
602、604:同期式スレーブ側コア
611、613、623:非同期式分岐モジュール
612、622、614:非同期式調停モジュール
631:混雑回避経路計算モジュール
632、642:混雑検知モジュール
681〜683、691〜694:転送データ
700:非同期式分岐回路
710、711:非対称型2入力C素子
720:OR素子
750:経路計算回路
800:非対称型2入力C素子の論理回路構成
801:非対称型2入力C素子の素子記号と入出力端子名
850:非対称型2入力C素子の真理値表
900:非同期式調停回路
910:相互排他回路
920、921:ハンドシェイク確認回路
930:OR素子
940:マルチプレクサ
950、951:対称型2入力C素子
1000:相互排他回路の論理回路構成
1010:調停部分回路
1020:準安定状態フィルタ回路
1050:相互排他回路の真理値表
1100:対称型2入力C素子の論理回路構成
1101:対称型2入力C素子の素子記号と入出力端子名
1150:対称型2入力C素子の真理値表
1200:混雑検知回路
1210、1211:インバータ
1220、1230:対称型2入力C素子
1300:混雑回避経路計算回路
1310:ハンドシェイク調停回路
1320、1321:マルチプレクサ
1330:ハンドシェイク部分調停回路
1340:混雑情報記憶ラッチ
1350:経路計算回路
1400:ハンドシェイク部分調停回路
1410:相互排他回路
1420、1421:ハンドシェイク確認回路
1500:集積回路
1501:同期式コア
1502:コア間接続回路
1610,1611,1612:フリップ・フロップ
1620,1621,1622:記憶制御回路
1800:非同期式コア間接続回路
1801、1803:同期式マスタ側コア
1802、1804:同期式スレーブ側コア
1811、1813、1823:非同期式分岐回路
1812、1822、1824:非同期式調停回路
1881〜1883、1891〜1894:転送データ
2100:データ列連続転送用非同期式調停回路
2110:相互排他回路
2120、2121:ハンドシェイク確認回路
2130、2170、2171:OR素子
2140:マルチプレクサ
2150、2151:対称型2入力C素子
2160、2161:非対称型3入力C素子
2200:非対称型3入力C素子の論理回路構成
2201:非対称型3入力C素子の素子記号と入出力端子名
2250:非対称型3入力C素子の真理値表
2300:混雑回避経路計算回路
2310:ハンドシェイク調停回路
2320、2321:マルチプレクサ
2330:ハンドシェイク部分調停回路
2340:混雑情報記憶ラッチ
2350:経路計算回路
2360:転送分岐先記憶ラッチ
2361:記憶制御回路
2362:データ・先頭信号・終端信号記憶ラッチ
2500:混雑検知回路
2510、2511:インバータ
2520、2530:対称型2入力C素子
2540:ハンドシェイク分岐回路
2700:混雑検知回路
2701:OR素子
2740:ハンドシェイク分岐回路
2710:混雑情報生成回路
2720、2730:対称型2入力C素子
2900:混雑検知回路
2901:混雑処理要求送信先選択回路
2910:混雑情報生成回路
2930:対称型2入力C素子
2940:ハンドシェイク分岐回路
3100:ハンドシェイク分岐回路(3分岐)
3110、3111,3112:非対称型2入力C素子
3120:OR素子
101:非同期式調停モジュール
102:非同期式分岐モジュール
111:混雑検知モジュール
112:混雑回避経路計算モジュール
600:非同期式コア間接続回路
601、603:同期式マスタ側コア
602、604:同期式スレーブ側コア
611、613、623:非同期式分岐モジュール
612、622、614:非同期式調停モジュール
631:混雑回避経路計算モジュール
632、642:混雑検知モジュール
681〜683、691〜694:転送データ
700:非同期式分岐回路
710、711:非対称型2入力C素子
720:OR素子
750:経路計算回路
800:非対称型2入力C素子の論理回路構成
801:非対称型2入力C素子の素子記号と入出力端子名
850:非対称型2入力C素子の真理値表
900:非同期式調停回路
910:相互排他回路
920、921:ハンドシェイク確認回路
930:OR素子
940:マルチプレクサ
950、951:対称型2入力C素子
1000:相互排他回路の論理回路構成
1010:調停部分回路
1020:準安定状態フィルタ回路
1050:相互排他回路の真理値表
1100:対称型2入力C素子の論理回路構成
1101:対称型2入力C素子の素子記号と入出力端子名
1150:対称型2入力C素子の真理値表
1200:混雑検知回路
1210、1211:インバータ
1220、1230:対称型2入力C素子
1300:混雑回避経路計算回路
1310:ハンドシェイク調停回路
1320、1321:マルチプレクサ
1330:ハンドシェイク部分調停回路
1340:混雑情報記憶ラッチ
1350:経路計算回路
1400:ハンドシェイク部分調停回路
1410:相互排他回路
1420、1421:ハンドシェイク確認回路
1500:集積回路
1501:同期式コア
1502:コア間接続回路
1610,1611,1612:フリップ・フロップ
1620,1621,1622:記憶制御回路
1800:非同期式コア間接続回路
1801、1803:同期式マスタ側コア
1802、1804:同期式スレーブ側コア
1811、1813、1823:非同期式分岐回路
1812、1822、1824:非同期式調停回路
1881〜1883、1891〜1894:転送データ
2100:データ列連続転送用非同期式調停回路
2110:相互排他回路
2120、2121:ハンドシェイク確認回路
2130、2170、2171:OR素子
2140:マルチプレクサ
2150、2151:対称型2入力C素子
2160、2161:非対称型3入力C素子
2200:非対称型3入力C素子の論理回路構成
2201:非対称型3入力C素子の素子記号と入出力端子名
2250:非対称型3入力C素子の真理値表
2300:混雑回避経路計算回路
2310:ハンドシェイク調停回路
2320、2321:マルチプレクサ
2330:ハンドシェイク部分調停回路
2340:混雑情報記憶ラッチ
2350:経路計算回路
2360:転送分岐先記憶ラッチ
2361:記憶制御回路
2362:データ・先頭信号・終端信号記憶ラッチ
2500:混雑検知回路
2510、2511:インバータ
2520、2530:対称型2入力C素子
2540:ハンドシェイク分岐回路
2700:混雑検知回路
2701:OR素子
2740:ハンドシェイク分岐回路
2710:混雑情報生成回路
2720、2730:対称型2入力C素子
2900:混雑検知回路
2901:混雑処理要求送信先選択回路
2910:混雑情報生成回路
2930:対称型2入力C素子
2940:ハンドシェイク分岐回路
3100:ハンドシェイク分岐回路(3分岐)
3110、3111,3112:非対称型2入力C素子
3120:OR素子
Claims (26)
- データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する非同期式分岐モジュールと、
前記転送データの転送経路を合流し、複数の合流元の少なくとも1つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する非同期式調停モジュールと、
前記非同期式調停モジュールに対応して配置され、該非同期式調停モジュールから、何れの合流元からの転送データを転送中であるかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する混雑検知モジュールと、
前記非同期式分岐モジュールに対応して配置され、該非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから前記混雑情報を受け取り、前記非同期式分岐モジュールの複数の分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理と、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理とを排他的に行う混雑回避経路計算モジュールと、を備え、
前記混雑検知モジュールは、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある混雑回避経路計算モジュールに出力する要求出力モジュールを含み、
前記混雑検知モジュールは、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する応答待ち合わせモジュールを更に含む、非同期式論理回路。 - 前記混雑回避経路計算モジュールは、前記非同期式分岐モジュールに対するデータ要求信号と前記混雑情報記憶要求信号との調停を行い、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させるデータ混雑情報間調停モジュールを含む、請求項1に記載の非同期式論理回路。
- 前記データ混雑情報間調停モジュールは、前記混雑情報記憶メモリへ前記混雑情報を記憶する処理が完了するまでの間に前記データ要求信号が入力されたときは、前記混雑情報の記憶が完了するまで、前記非同期式分岐モジュールへの前記データ要求信号の出力を待機させ、前記非同期式分岐モジュールが前記データ要求信号に応答して転送データの転送をしている間に前記混雑情報記憶要求信号が入力されたときは、前記転送データについての前記ハンドシェイクが完了するまで、前記混雑情報記憶要求信号を待機させる、請求項2に記載の非同期式論理回路。
- 前記データ混雑情報間調停モジュールが、
前記混雑情報記憶要求信号と前記データ要求信号とを入力し、入力信号のうちの一方を通過させ、他方を、前記通過させた信号の取り下げまで待機させる相互排他モジュールと、
前記データ混雑情報間調停モジュールが仲介中のハンドシェイクがないときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号又は前記データ要求信号を通過させ、仲介中のハンドシェイクがあるときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号又は前記データ要求信号を、前記仲介中のハンドシェイクの完了まで待機させるハンドシェイク確認モジュールと、を含む、請求項3に記載の非同期式論理回路。 - 前記相互排他モジュールが、それぞれ入力端子の一方に前記混雑情報記憶要求信号又は前記データ要求信号が入力され、入力端子の他方が互いの出力端子に接続された2つのNAND素子と、該2つのNAND素子の出力にそれぞれ接続されるインバータとを含む、請求項4に記載の非同期式論理回路。
- 前記ハンドシェイク確認モジュールが、入力端子の一方が前記相互排他モジュールを通過した混雑情報記憶要求信号に接続され、他方がインバータを介して前記非同期式分岐モジュールが出力する前記データ応答信号に接続されるAND素子と、入力端子の一方が前記相互排他モジュールを通過したデータ要求信号に接続され、他方がインバータを介して前記混雑情報記憶応答信号に接続されるAND素子とを含む、請求項4又は5に記載の非同期式論理回路。
- 前記混雑回避経路計算モジュールが、
前記非同期式分岐モジュールの複数の分岐先から入力される混雑情報記憶要求信号を合流し、調停を行うことで前記複数の分岐先からの混雑情報記憶要求信号のうちの1つを選択し、前記データ混雑情報間調停モジュールと前記混雑検知モジュールとの間で、前記選択した混雑情報記憶要求信号に起因するハンドシェイクを仲介する分岐先間混雑情報記憶要求調停モジュールと、
前記データ混雑間調停モジュールが前記分岐先間混雑情報記憶要求調停モジュールが出力する前記混雑情報記憶要求信号を通過させたとき、前記混雑情報記憶メモリにおける、前記分岐先間混雑情報記憶要求調停モジュールが選択した混雑情報記憶要求信号を出力した前記非同期式分岐モジュールの分岐先に対応する混雑情報を、当該分岐先から入力される混雑情報で更新させ、残りの分岐先に対応する混雑情報を、前記混雑情報記録メモリが記憶する混雑情報に保持させるメモリ記憶制御モジュールと、を更に含む、請求項2乃至6の何れか一項に記載の非同期式論理回路。 - 前記分岐先間混雑情報記憶要求調停モジュールが、
前記複数の分岐先からの混雑情報記憶要求信号を入力し、該混雑情報記憶要求信号のうちの1つを通過させ、他方を、前記通過させた混雑情報記憶要求信号の取り下げまで待機させる相互排他モジュールと、
前記分岐先間混雑情報記憶要求調停モジュールが仲介中のハンドシェイクがないときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号を通過させ、仲介中のハンドシェイクがあるときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号を前記仲介中のハンドシェイクの完了まで待機させるハンドシェイク確認モジュールと、
前記ハンドシェイク確認モジュールを通過した混雑情報記憶要求信号と、当該混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記ハンドシェイク確認モジュールを通過した混雑情報記憶要求信号を入力した分岐先に、混雑情報記憶応答信号を出力する待ち合わせモジュールと、を含む、請求項7に記載の非同期式論理回路。 - 前記相互排他モジュールが、それぞれ入力端子の一方に前記混雑情報記憶要求信号が入力され、入力端子の他方が互いの出力端子に接続された2つのNAND素子と、該2つのNAND素子の出力にそれぞれ接続されるインバータとを含む、請求項8に記載の非同期式論理回路。
- 前記ハンドシェイク確認モジュールが、前記複数の分岐先のそれぞれに対応して配置され、それぞれが、入力端子の一方が前記相互排他モジュールを通過した前記混雑情報記憶要求信号に接続され、他方がインバータを介して当該混雑情報記憶要求信号以外の混雑情報記憶要求信号に対する混雑情報記憶応答信号に接続される複数のAND素子を含む、請求項8又は9に記載の非同期式論理回路。
- 前記分岐先間混雑情報記憶要求調停モジュールは、前記複数のAND素子の出力を入力とするOR素子を更に含み、該OR素子から、前記混雑情報記憶要求信号を出力する、請求項10に記載の非同期式論理回路。
- 前記メモリ記憶制御モジュールが、
前記非同期式分岐モジュールの複数の分岐先に対応して配置され、それぞれが、対応する分岐先の前記混雑検知モジュールが出力する前記混雑情報と、前記混雑情報記憶メモリに記憶されている分岐先の混雑情報とを入力し、前記分岐先間混雑情報記憶要求調停モジュールでの調停結果に基づいて2つの入力のうちの何れか一方を選択する複数のマルチプレクサを含む、請求項8乃至11の何れか一項に記載の非同期式論理回路。 - 前記待ち合わせモジュールが、入力端子の1つと出力端子を接続された3入力多数決論理関数を実現する論理回路を含む、請求項8乃至12の何れか一項に記載の非同期式論理回路。
- 前記転送データが、同一目的地へのデータに目的地情報を付加して生成したデータを分割して得られ、該分割で得られた一連の単位データ列のうちの先頭に目的地情報が含まれる分割データであり、
前記非同期式調停モジュールは、前記単位データ列を構成する分割データを分断することなく連続的に出力し、
前記混雑回避経路計算モジュールは、前記転送データが前記単位データ列の先頭分割データであるとき、該先頭分割データに含まれる目的地情報に基づいて前記非同期式分岐モジュールの転送分岐先を決定し、前記転送データが単位データ列の先頭以外の非先頭分割データのときは、前記先頭分割データに対して決定した転送分岐先を、前記非同期式分岐モジュールの転送分岐先として決定する、請求項1に記載の非同期式論理回路。 - 前記混雑回避経路計算モジュールは、転送分岐先を記憶する分岐先情報記憶メモリを含み、前記転送データが前記単位データ列の先頭分割データであるとき、前記決定した転送分岐先を前記分岐先情報記憶メモリに記憶し、前記転送データが単位データ列の先頭以外の非先頭分割データのとき、前記分岐先情報記憶メモリに記憶された転送分岐先を、前記非同期式分岐モジュールの転送分岐先として決定する、請求項14に記載の非同期式論理回路。
- 前記混雑検知モジュールは、前記非同期式調停モジュールがデータ要求信号を出力すると、前記転送データが前記先頭分割データのとき、非同期式調停モジュールの合流元に、前記混雑情報の記憶を要求する混雑情報記憶要求信号を出力し、前記転送データが前記非先頭分割データのとき、自身への応答信号として帰還入力する要求信号を出力するハンドシェイク分岐モジュールを含む、請求項14又は15に記載の非同期式論理回路。
- 前記ハンドシェイク分岐モジュールは、前記転送データが前記先頭分割データのときに加えて、前記転送データが前記単位データ列の終端分割データのとき、非同期式調停モジュールの合流元へ前記混雑情報記憶要求信号を出力し、前記転送データが前記単位データ列の中間の分割データのとき、自身への応答信号として帰還入力する要求信号を出力する、請求項16に記載の非同期式論理回路。
- 前記ハンドシェイク分岐モジュールは、前記転送データが前記先頭分割データ又は前記終端分割データのとき、前記非同期式調停モジュールの合流元のうち、前記非同期式調停モジュールが前記転送データを出力していない側の合流元に前記混雑情報記憶要求信号を出力する、請求項17に記載の非同期式論理回路。
- ハンドシェイク分岐モジュールは、前記転送データが前記先頭分割データ又は前記終端分割データのとき、前記非同期式調停モジュールの合流元のうち、前記非同期式調停モジュールが前記転送データを出力していない側の合流元に、前記混雑情報記憶要求信号とに代えて、混雑情報の反転を要求する反転要求信号を出力し、
前記混雑回避経路計算モジュールは、反転要求信号を受け取ると、前記混雑情報記憶メモリに記憶する混雑情報のうち、前記反転要求信号を受け取った側に対応する非同期式分岐モジュールの分岐先の混雑情報を、混雑なしから混雑ありへ、又は、混雑ありから混雑なしへ反転する、請求項18に記載の非同期式論理回路。 - 前記混雑検知モジュールは、前記転送データが前記先頭分割データのとき、前記非同期式調停モジュールの各合流元に対して、前記調停結果信号に基づいて前記混雑情報を生成し、前記転送データが前記終端分割データのとき、前記非同期式調停モジュールの各合流元に対して混雑なしを示す混雑情報を生成する混雑情報生成モジュールを更に含む、請求項17乃至19の何れか一項に記載の非同期式論理回路。
- 前記混雑回避経路計算モジュールは、前記非同期式分岐モジュールに対するデータ要求信号と前記混雑情報記憶要求信号との調停を行い、何れか一方を通過させてハンドシェイクを仲介すると共に、他方を、通過させた信号に応じた処理の完了まで待機させるデータ混雑情報間調停モジュールを含む、請求項16乃至20の何れか一項に記載の非同期式論理回路。
- 前記データ混雑情報間調停モジュールは、前記混雑情報記憶メモリへ前記混雑情報を記憶する処理が完了するまでの間に前記データ要求信号が入力されたときは、前記混雑情報の記憶が完了するまで、前記非同期式分岐モジュールへの前記データ要求信号の出力を待機させ、前記非同期式分岐モジュールが前記データ要求信号に応答して転送データの転送をしている間に前記混雑情報記憶要求信号が入力されたときは、前記転送データについての前記ハンドシェイクが完了するまで、前記混雑情報記憶要求信号を待機させる、請求項21に記載の非同期式論理回路。
- 前記データ混雑情報間調停モジュールが、
前記混雑情報記憶要求信号と前記データ要求信号とを入力し、入力信号のうちの一方を通過させ、他方を、前記通過させた信号の取り下げまで待機させる相互排他モジュールと、
前記データ混雑情報間調停モジュールが仲介中のハンドシェイクがないときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号又は前記データ要求信号を通過させ、仲介中のハンドシェイクがあるときは、前記相互排他モジュールを通過した前記混雑情報記憶要求信号又は前記データ要求信号を、前記仲介中のハンドシェイクの完了まで待機させるハンドシェイク確認モジュールと、を含む、請求項22に記載の非同期式論理回路。 - 前記非同期式調停モジュールは、前記単位データ列の先頭分割データの出力から終端分割データの出力まで、何れの合流元からの転送データを出力しているかを示す調停結果を記憶する調停結果保存部を含み、前記調停結果保存部が一の合流元からの転送データを出力している旨を記憶するとき、他の合流元からの転送データの出力を待機する、請求項14乃至23の何れか一項に記載の非同期式論理回路。
- 請求項1乃至24の何れか一項に記載の非同期式論理回路を備える、半導体回路。
- 非同期式分岐モジュールが、データ要求信号とデータ応答信号とを所定の手順で通信することでデータ転送を行うハンドシェイク・プロトコルに従って入力された転送データを、複数の分岐先のうちの何れかに出力する工程と、
非同期式調停モジュールが、前記転送データの転送経路を合流し、複数の合流元の少なくとも1つから入力された転送データを、前記手順に矛盾することなく所定の手順で逐次的に出力する工程と、
混雑検知モジュールが、前記非同期式調停モジュールから、何れの合流元からの転送データを転送中であるのかを示す調停結果信号を受け取り、前記非同期式調停モジュールの複数の合流元に対して、混雑の有無を示す混雑情報を出力する工程と、
混雑回避経路計算モジュールが、前記非同期式分岐モジュールの分岐先にある非同期式調停モジュールに対応する混雑検知モジュールから混雑の有無を示す混雑情報を受け取り、前記非同期式分岐モジュールの分岐先について混雑情報を記憶する混雑情報記憶メモリに記憶する処理を行う工程と、
前記混雑回避経路計算モジュールが、前記混雑情報及び前記転送データの目的地情報に基づいて、前記非同期式分岐モジュールに対し、目的地に到達可能な分岐先のうち、混雑ありを示す混雑情報を発していない分岐先を優先的に転送分岐先として選択させる処理を行う工程と、を有し、
前記混雑検知モジュールが、前記非同期式調停モジュールが前記データ要求信号を出力すると、前記データ要求信号を前記合流先に出力すると共に、前記混雑情報と、該混雑情報の記憶を要求する混雑情報記憶要求信号とを、前記合流元にある前記混雑回避経路計算モジュールに出力する工程と、
前記混雑検知モジュールが、前記データ要求信号と前記混雑情報記憶要求信号の出力後、前記合流先からの前記データ応答信号と、前記混雑回避経路計算モジュールからの前記混雑情報記憶要求信号に対する混雑情報記憶応答信号とを待ち合わせ、前記合流先からのデータ応答信号と前記混雑情報記憶応答信号とを受け取ると、前記非同期式調停モジュールにデータ応答信号を出力する工程と、を更に含む、非同期式論理回路における経路計算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011519743A JP5435031B2 (ja) | 2009-06-25 | 2010-06-09 | 非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法 |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009151351 | 2009-06-25 | ||
JP2009151351 | 2009-06-25 | ||
JP2009271516 | 2009-11-30 | ||
JP2009271516 | 2009-11-30 | ||
JP2011519743A JP5435031B2 (ja) | 2009-06-25 | 2010-06-09 | 非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法 |
PCT/JP2010/059768 WO2010150654A1 (ja) | 2009-06-25 | 2010-06-09 | 非同期式論理回路、混雑回避経路計算モジュール、半導体回路及び、非同期式論理回路における経路計算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010150654A1 JPWO2010150654A1 (ja) | 2012-12-10 |
JP5435031B2 true JP5435031B2 (ja) | 2014-03-05 |
Family
ID=43386426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011519743A Expired - Fee Related JP5435031B2 (ja) | 2009-06-25 | 2010-06-09 | 非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8589611B2 (ja) |
JP (1) | JP5435031B2 (ja) |
WO (1) | WO2010150654A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901049A (zh) * | 2019-01-29 | 2019-06-18 | 厦门码灵半导体技术有限公司 | 检测集成电路用时序路径中异步路径的方法、装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8127063B2 (en) * | 2009-01-20 | 2012-02-28 | Fisher-Rosemount Systems, Inc. | Distributed equipment arbitration in a process control system |
JP5761819B2 (ja) * | 2010-06-17 | 2015-08-12 | 国立大学法人 奈良先端科学技術大学院大学 | スキャン非同期記憶素子およびそれを備えた半導体集積回路ならびにその設計方法およびテストパターン生成方法 |
FR2995476B1 (fr) * | 2012-09-13 | 2015-12-25 | Tiempo | Circuit asynchrone a ecritures sequentielles |
US9520180B1 (en) | 2014-03-11 | 2016-12-13 | Hypres, Inc. | System and method for cryogenic hybrid technology computing and memory |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05151147A (ja) * | 1991-11-26 | 1993-06-18 | Oki Electric Ind Co Ltd | コンピユータシステム |
JPH08161258A (ja) * | 1994-12-05 | 1996-06-21 | Fujitsu Ltd | データ処理装置 |
JP2000172661A (ja) * | 1998-12-10 | 2000-06-23 | Nec Corp | マルチプロセッサシステム及びその多重化バス管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774440B1 (en) * | 2001-07-25 | 2010-08-10 | Scalable Network Technologies, Inc. | Method and system for enhancing performance of a physical network under real-time control using simulation of a reference model |
-
2010
- 2010-06-09 JP JP2011519743A patent/JP5435031B2/ja not_active Expired - Fee Related
- 2010-06-09 US US13/379,614 patent/US8589611B2/en not_active Expired - Fee Related
- 2010-06-09 WO PCT/JP2010/059768 patent/WO2010150654A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05151147A (ja) * | 1991-11-26 | 1993-06-18 | Oki Electric Ind Co Ltd | コンピユータシステム |
JPH08161258A (ja) * | 1994-12-05 | 1996-06-21 | Fujitsu Ltd | データ処理装置 |
JP2000172661A (ja) * | 1998-12-10 | 2000-06-23 | Nec Corp | マルチプロセッサシステム及びその多重化バス管理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901049A (zh) * | 2019-01-29 | 2019-06-18 | 厦门码灵半导体技术有限公司 | 检测集成电路用时序路径中异步路径的方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2010150654A1 (ja) | 2012-12-10 |
WO2010150654A1 (ja) | 2010-12-29 |
US20120106334A1 (en) | 2012-05-03 |
US8589611B2 (en) | 2013-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5435031B2 (ja) | 非同期式論理回路、半導体回路及び、非同期式論理回路における経路計算方法 | |
US10027433B2 (en) | Multiple clock domains in NoC | |
US6486709B2 (en) | Distributing data to multiple destinations within an asynchronous circuit | |
US20080005402A1 (en) | Gals-based network-on-chip and data transfer method thereof | |
EP3545653B1 (en) | Distributed control synchronized ring network architecture | |
TW201944258A (zh) | 異步多時鐘域資料流接合及再同步系統及方法 | |
JP2007507795A (ja) | 低電力共用リンクアービトレーション | |
JP4404637B2 (ja) | 局所同期回路間の情報交換 | |
JP2003150535A (ja) | 遷移信号制御装置とそれを用いたdmaコントローラ及び遷移信号制御プロセッサ | |
US10467181B2 (en) | Interface apparatus and method | |
JPH10508132A (ja) | 非同期に制御されるパイプラインを具えるデータ処理システム | |
JP6100340B2 (ja) | リンクレイヤ信号同期のための装置、方法及びコンピュータプログラム | |
WO2009110588A1 (ja) | データ転送装置及び方法並びに半導体回路 | |
JP2001159970A (ja) | 装置間結合装置 | |
JP2002141922A (ja) | ループ型バスシステム | |
KR102415074B1 (ko) | 지연 회로 및 비동기 파이프라인 제어기, 이의 제어 방법, 및 이를 갖는 회로 | |
Henriksson et al. | VLSI implementation of a switch for on-chip networks | |
JP4730051B2 (ja) | 半導体ディジタル回路、fifoバッファ回路及びそれらに用いるデータ受け渡し方法 | |
WO2010082575A1 (ja) | 非同期式論理回路 | |
JPWO2010035698A1 (ja) | 調停回路、該調停回路に用いられる調停方法、該調停回路が設けられている半導体回路及びデジタルシステム | |
EP2515443A1 (en) | Data serializer | |
JP2015197898A (ja) | アレイ型演算装置の制御装置及び方法。 | |
JP2004157684A (ja) | 情報処理装置 | |
JPWO2007037384A1 (ja) | 自己同期型の処理ユニットを有するシステム | |
JP2006227866A (ja) | シリアルデータ転送装置、シリアルクロック転送装置およびシリアル転送システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130723 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130924 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131125 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |