(57)【特許請求の範囲】
【請求項１】
データを自己の記憶素子に記憶し、データ記憶要求を送信する送信元レジスタと、前記データ記憶要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶し、自己の記憶素子にデータを記憶したことを表すデータ記憶完了通知を送信する送信先レジスタと、を含む非同期式のレジスタに接続された非同期式論理回路であって、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、カウントし、カウント値に応じた時間を混雑可能性継続時間として出力する混雑可能性継続時間計測モジュールと、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタからの前記データ記憶要求を第１の転送先である前記送信先レジスタに出力し、前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタからの前記データ記憶要求に対して、データ破棄要求を生成して第２の転送先に出力するハンドシェイク切換モジュールと、
を具備する非同期式論理回路。
【請求項２】
前記ハンドシェイク切換モジュールは、前記第２の転送先であるデータ破棄モジュールに接続され、
前記データ破棄モジュールは、前記データ破棄要求に応じて、データ破棄完了を示す破棄応答信号を前記ハンドシェイク切換モジュールに出力する、
請求項１に記載の非同期式論理回路。
【請求項３】
前記ハンドシェイク切換モジュールは、前記送信先レジスタである第１のレジスタとは異なる第２のレジスタに接続され、
前記第２のレジスタは、前記第２の転送先であり、
前記第２のレジスタは、前記データ破棄要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶する、
請求項１に記載の非同期式論理回路。
【請求項４】
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性があることを示す混雑可能性信号を出力する混雑可能性検出モジュール、
を更に具備し、
前記混雑可能性継続時間計測モジュールは、
前記混雑可能性信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性があることを示す場合、カウントし、
カウント値に応じた時間を混雑可能性継続時間として出力する、
請求項１〜３のいずれかに記載の非同期式論理回路。
【請求項５】
前記混雑可能性検出モジュールは、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信された場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性がないことを示す前記混雑可能性信号を出力し、
前記混雑可能性継続時間計測モジュールは、
前記混雑可能性信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性がないことを示す場合、カウントを終了し、
前記混雑可能性継続時間をリセットする、
請求項４に記載の非同期式論理回路。
【請求項６】
前記混雑可能性継続時間と前記設定時間とを比較する混雑判定モジュール、
を更に具備し、
前記混雑判定モジュールは、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していないことを示す混雑判定結果信号を前記ハンドシェイク切換モジュールに出力し、
前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していることを示す前記混雑判定結果信号を前記ハンドシェイク切換モジュールに出力し、
前記ハンドシェイク切換モジュールは、
前記混雑判定結果信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していないことを示す場合、前記送信元レジスタからの前記データ記憶要求を前記第１の転送先である前記送信先レジスタに出力し、
前記混雑判定結果信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していることを示す場合、前記送信元レジスタからの前記データ記憶要求を前記第２の転送先に送信する、
請求項１〜５のいずれかに記載の非同期式論理回路。
【請求項７】
前記ハンドシェイク切換モジュールは、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信された場合、前記送信先レジスタへの前記データ記憶要求の送信を終了し、前記送信先レジスタからの前記データ記憶完了通知を前記送信元レジスタに送信する、
請求項１〜５のいずれかに記載の非同期式論理回路。
【請求項８】
前記ハンドシェイク切換モジュールは、
前記送信先レジスタからの前記データ記憶完了通知に対して、前記送信元レジスタから前記データ記憶要求が送信された場合、前記送信元レジスタからの前記データ記憶要求を前記第２の転送先に送信する、
請求項７に記載の非同期式論理回路。
【請求項９】
データを自己の記憶素子に記憶し、データ記憶要求を送信する送信元レジスタと、
前記データ記憶要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶し、自己の記憶素子にデータを記憶したことを表すデータ記憶完了通知を送信する送信先レジスタと、
送信元レジスタと送信先レジスタとに接続された非同期式論理回路と、
を具備し、
前記非同期式論理回路は、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、カウントし、カウント値に応じた時間を混雑可能性継続時間として出力する混雑可能性継続時間計測モジュールと、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタからの前記データ記憶要求を第１の転送先である前記送信先レジスタに出力し、前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタからの前記データ記憶要求に対して、データ破棄要求を生成して第２の転送先に出力するハンドシェイク切換モジュールと、
を具備する非同期式コア間接続回路。
【請求項１０】
前記ハンドシェイク切換モジュールは、前記第２の転送先であるデータ破棄モジュールに接続され、
前記データ破棄モジュールは、前記データ破棄要求に応じて、データ破棄完了を示す破棄応答信号を前記ハンドシェイク切換モジュールに出力する、
請求項９に記載の非同期式コア間接続回路。
【請求項１１】
前記ハンドシェイク切換モジュールは、前記送信先レジスタである第１のレジスタとは異なる第２のレジスタに接続され、
前記第２のレジスタは、前記第２の転送先であり、
前記第２のレジスタは、前記データ破棄要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶する、
請求項９に記載の非同期式コア間接続回路。
【請求項１２】
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性があることを示す混雑可能性信号を出力する混雑可能性検出モジュール、
を更に具備し、
前記混雑可能性継続時間計測モジュールは、
前記混雑可能性信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性があることを示す場合、カウントし、
カウント値に応じた時間を混雑可能性継続時間として出力する、
請求項９〜１１のいずれかに記載の非同期式コア間接続回路。
【請求項１３】
前記混雑可能性検出モジュールは、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信された場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性がないことを示す前記混雑可能性信号を出力し、
前記混雑可能性継続時間計測モジュールは、
前記混雑可能性信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性がないことを示す場合、カウントを終了し、
前記混雑可能性継続時間をリセットする、
請求項１２に記載の非同期式コア間接続回路。
【請求項１４】
前記混雑可能性継続時間と前記設定時間とを比較する混雑判定モジュール、
を更に具備し、
前記混雑判定モジュールは、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していないことを示す混雑判定結果信号を前記ハンドシェイク切換モジュールに出力し、
前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していることを示す前記混雑判定結果信号を前記ハンドシェイク切換モジュールに出力し、
前記ハンドシェイク切換モジュールは、
前記混雑判定結果信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していないことを示す場合、前記送信元レジスタからの前記データ記憶要求を前記第１の転送先である前記送信先レジスタに出力し、
前記混雑判定結果信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していることを示す場合、前記送信元レジスタからの前記データ記憶要求を前記第２の転送先に送信する、
請求項９〜１３のいずれかに記載の非同期式コア間接続回路。
【請求項１５】
前記ハンドシェイク切換モジュールは、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信された場合、前記送信先レジスタへの前記データ記憶要求の送信を終了し、前記送信先レジスタからの前記データ記憶完了通知を前記送信元レジスタに送信する、
請求項９〜１３のいずれかに記載の非同期式コア間接続回路。
【請求項１６】
前記ハンドシェイク切換モジュールは、
前記送信先レジスタからの前記データ記憶完了通知に対して、前記送信元レジスタから前記データ記憶要求が送信された場合、前記送信元レジスタからの前記データ記憶要求を前記第２の転送先に送信する、
請求項１５に記載の非同期式コア間接続回路。
【請求項１７】
データを自己の記憶素子に記憶し、データ記憶要求を送信する送信元レジスタと、前記データ記憶要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶し、自己の記憶素子にデータを記憶したことを表すデータ記憶完了通知を送信する送信先レジスタと、を含む非同期式のレジスタを用いてデータを転送する方法であって、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、カウントするステップと、
カウント値に応じた時間を混雑可能性継続時間として出力するステップと、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタからの前記データ記憶要求を第１の転送先である前記送信先レジスタに出力するステップと、
前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタからの前記データ記憶要求に対して、データ破棄要求を生成して第２の転送先に出力するステップと、
を具備するデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック信号の代わりに、ハンドシェイク信号を用いて回路内の記憶素子を制御する非同期式論理回路に関する。
【背景技術】
【０００２】
ディジタル集積回路上に実装される回路素子や配線の微細化が進んでいる。これに伴い、集積回路には、プロセッサやメモリなどの機能ブロックが多数設けられる傾向にある。このような機能ブロックはコアと呼ばれる。図１は、集積回路２００の構成を示している。集積回路２００は、複数のコア２０１を備えている。例えば、複数のコア２０１をコア０、…、ｍ−１、ｍ、…、ｎ−１（ｍ、ｎは、０＜ｍ＜ｎを満たす整数である）とした場合、コア０、…、ｍ−１、ｍ、…、ｎ−１は、それぞれ、クロック信号ＣＬＫ０、…、ｍ−１、ｍ、…、ｎ−１に応じて、出力信号を出力する。この出力信号はデータ通信に用いられる。このように、集積回路２００は、複数のコア２０１を備えている場合、コア２０１間でデータ通信を行うことができる。そのために、集積回路２００は、更に、バスなどのコア間接続回路２０２を備えている。【０００３】
バスなどのコア間接続回路を実現するために、クロック信号の立上りあるいは立下りの遷移（クロック・エッジ）により内部の素子を駆動する同期式論理回路が設計されてきた。しかし、設計容易性や消費電力の放射の低減といった効果から、大域非同期・局所同期（ＧＡＬＳ：Ｇｌｏｂａｌｌｙ  Ａｓｙｎｃｈｒｏｎｏｕｓ、  Ｌｏｃａｌｌｙ  Ｓｙｎｃｈｒｏｎｏｕｓ）方式による非同期式論理回路の設計が注目されるようになっている。【０００４】
非同期式論理回路とは、クロック信号の代わりに、ハンドシェイク信号を用いて回路内の記憶素子を制御する論理回路である。【０００５】
非同期式論理回路でも、フリップ・フリップの間に組合せ回路を配置する構成は同期式論理回路と同様であるが、非同期式論理回路は、フリップ・フロップの記憶を制御する信号が同期式論理回路とは異なる。【０００６】
一般的な同期式論理回路では、フリップ・フロップへの記憶制御信号として外部からのクロック信号が用いられる。この場合、全てのフリップ・フロップに対して信号が同着することを前提にフリップ・フロップと組合せ回路から成る部分が設計され、また全てのフリップ・フロップに対して信号が同着するようにクロック信号分配回路が設計される。【０００７】
一方、一般的な非同期式論理回路では、フリップ・フロップへの記憶制御信号を生成するために記憶制御回路が用いられる。この場合、記憶制御回路間で一対のハンドシェイク信号（要求信号と応答信号）を通信することにより、フリップ・フロップの記憶タイミングが制御される。このハンドシェイク信号の通信制御手順は、ハンドシェイク・プロトコルと呼ばれる。【０００８】
図２は、一般的な非同期式論理回路として、非同期式のレジスタの構成を示している。このレジスタは、記憶素子であるフリップ・フロップ（ＦＦ）と、記憶制御回路（ＬＣ）とを備えている。例えば、レジスタが３組存在する場合、３組のレジスタは、それぞれ、フリップ・フロップ３１０、３１１、３１２と、記憶制御回路３２０、３２１、３２２と、を備えている。記憶制御回路３２０、３２１、３２２は、それぞれ、フリップ・フロップ３１０、３１１、３１２に対応して設けられている。【０００９】
図３は、図２の非同期式のレジスタの動作を示すタイミングチャートである。【００１０】
（動作０）
まず、フリップ・フロップ３１０がデータｄ０を記憶（保持）しているものとする。また、記憶制御回路３２２は、データ入力準備完了を示す送信先応答信号Ａ１を記憶制御回路３２１に送信したものとする。この場合、送信先応答信号Ａ１の値は“０”である。いま、記憶制御回路３２０は、データ記憶要求を示す送信先要求信号Ｒ０を記憶制御回路３２１に出力したものとする。この場合、送信先要求信号Ｒ０の値は“１”である。【００１１】
（動作１）
記憶制御回路３２１は、記憶制御回路３２２からの送信先応答信号Ａ１“０”（データ入力準備完了）を受信した後に、記憶制御回路３２０からの送信先要求信号Ｒ０“１”（データ記憶要求）を受信する。このとき、記憶制御回路３２１は、送信先要求信号Ｒ０“１”（データ記憶要求）に応じて、データ記憶命令を示す記憶制御信号Ｌ１をフリップ・フロップ３１１に出力する。この場合、記憶制御回路３２１は、記憶制御信号Ｌ１の値を“１”にする。フリップ・フロップ３１１は、記憶制御信号Ｌ１“１”（データ記憶命令）に応じて、フリップ・フロップ３１０に記憶されたデータｄ０を入力し、そのデータｄ０を記憶する。例えば、フリップ・フロップ３１１は、記憶制御信号Ｌ１の立上り遷移によりデータｄ０を記憶する。【００１２】
（動作２）
記憶制御回路３２１は、記憶制御信号Ｌ１“１”（データ記憶命令）を出力したとき、データ記憶完了通知を示す送信先応答信号Ａ０を記憶制御回路３２０に出力し、データ記憶要求を示す送信先要求信号Ｒ１を記憶制御回路３２２に出力する。この場合、記憶制御回路３２１は、送信先応答信号Ａ０の値を“１”にし、送信先要求信号Ｒ１の値を“１”にする。【００１３】
（動作３）
記憶制御回路３２０は、記憶制御回路３２１からの送信先応答信号Ａ０“１”（データ記憶完了通知）に応じて、データ入力準備要求を示す送信先要求信号Ｒ０を記憶制御回路３２１に出力する。この場合、記憶制御回路３２０は、送信先要求信号Ｒ０の値を“０”にする。【００１４】
（動作４）
記憶制御回路３２２は、記憶制御回路３２１からの送信先要求信号Ｒ１“１”（データ記憶要求）に応じて、データ記憶命令を示す記憶制御信号Ｌ２をフリップ・フロップ３１２に出力する。この場合、記憶制御回路３２２は、記憶制御信号Ｌ２の値を“１”にする。フリップ・フロップ３１２は、記憶制御信号Ｌ２“１”（データ記憶命令）に応じて、フリップ・フロップ３１１に記憶されたデータｄ０を入力し、そのデータｄ０を記憶する。記憶制御回路３２２は、記憶制御信号Ｌ２“１”（データ記憶命令）を出力した後、データ記憶完了通知を示す送信先応答信号Ａ１を記憶制御回路３２１に出力し、データ記憶要求を示す要求信号を後段（図示しない）に出力する。この場合、記憶制御回路３２２は、送信先応答信号Ａ１の値を“１”にし、上記の要求信号の値を“１”にする。【００１５】
（動作５）
記憶制御回路３２１は、記憶制御回路３２２からの送信先応答信号Ａ０“１”（データ記憶完了通知）に応じて、データ入力準備要求を示す送信先要求信号Ｒ１を記憶制御回路３２２に出力する。この場合、記憶制御回路３２１は、送信先要求信号Ｒ１の値を“０”にする。記憶制御回路３２１は、記憶制御回路３２０からの送信先要求信号Ｒ０“０”（データ入力準備要求）に応じて、データ入力準備命令を示す記憶制御信号Ｌ１をフリップ・フロップ３１１に出力する。この場合、記憶制御回路３２１は、記憶制御信号Ｌ１の値を“０”にする。フリップ・フロップ３１１は、記憶制御信号Ｌ１“０”（データ入力準備命令）に応じて、次のデータに対する準備を行う。記憶制御回路３２１は、記憶制御信号Ｌ１“０”（データ入力準備命令）を出力したとき、データ入力準備完了を示す送信先応答信号Ａ０を記憶制御回路３２０に出力し、データ入力準備要求を示す送信先要求信号Ｒ１を記憶制御回路３２２に出力する。この場合、記憶制御回路３２１は、送信先応答信号Ａ０の値を“０”にし、送信先要求信号Ｒ１の値を“０”にする。【００１６】
（動作６）
記憶制御回路３２０は、記憶制御回路３２１からの送信先応答信号Ａ０“０”（データ入力準備完了）を受信した後に、前段（図示しない）からの要求信号“１”（データ記憶要求）を受信する。このとき、記憶制御回路３２０は、要求信号“１”（データ記憶要求）に応じて、データ記憶命令を示す記憶制御信号Ｌ０をフリップ・フロップ３１０に出力する。この場合、記憶制御回路３２０は、記憶制御信号Ｌ０の値を“１”にする（図示しない）。フリップ・フロップ３１０は、記憶制御信号Ｌ０“１”（データ記憶命令）に応じて、次のデータｄ１を入力し、そのデータｄ１を記憶する。記憶制御回路３２２は、記憶制御回路３２１からの送信先要求信号Ｒ１“０”（データ入力準備要求）に応じて、データ入力準備命令を示す記憶制御信号Ｌ２をフリップ・フロップ３１２に出力する。この場合、記憶制御回路３２２は、記憶制御信号Ｌ２の値を“０”にする。フリップ・フロップ３１２は、記憶制御信号Ｌ２“０”（データ入力準備命令）に応じて、次のデータに対する準備を行う。【００１７】
（動作７）
データｄ１に対しても、上述の（動作２）〜（動作５）と同じ手順で、転送が行われる。図３では、各々の信号が周期的に遷移しているが、非同期式のレジスタは上述の（動作１）〜（動作７）のいずれで遅れが生じても手順に従うように動作する。【００１８】
非同期式のコア間接続回路を用いる場合、以下の利点が挙げられる。【００１９】
（利点１）
異なる機能ブロックの間でクロック同期をとる必要がないため、クロック分配範囲を小さく限定できる。【００２０】
（利点２）
個々の機能ブロックのクロック周波数を自由に且つ動的に設定することが可能となるため、クロック周波数を機能ブロックが所定の動作を実現する必要最低限に低減できる。【００２１】
（利点３）
クロック周波数を低減するとき、回路遅延を大きくすることができるため、電源電圧を下げることが可能となる。【００２２】
（利点４）
消費電力は電源電圧の２乗とクロック周波数の積に比例するため、機能ブロック間のコア間接続回路を非同期式とすることによって、集積回路の消費電力を大きく低減することが可能となる。【００２３】
（利点５）
同期式コアの駆動タイミングを時間的に分散させることができるため、電力と電磁波放射を低減することも可能となる。同期式コアはクロック信号の立上りあるいは立下りの遷移（クロック・エッジ）で駆動するため、クロック・エッジの直後に大きな電流変化がある。一方、コア間接続回路として非同期式のレジスタを用いると、コア毎に駆動タイミングが異なるため、集積回路全体での電流を平準化できる。その結果、最大時の電力と電流変化で誘導される電磁波放射が低減される。【００２４】
コア間接続回路を用いた集積回路の設計では、データ通信を要求する通信要求を行う側のコアはマスタと呼ばれ、マスタからの通信要求に呼応して動作するコアはスレーブと呼ばれる。【００２５】
マスタが複数存在する場合、コア間接続回路は、マスタ間で調停を行って優先度付けを行い、その優先度に従い順番に複数のマスタからの通信要求を処理する。コア間接続回路は、多数のコアを接続するために、調停による処理を複数の箇所で行うように構成される。この場合、コア間接続回路は、通信経路上の最初の調停箇所で優先権を与えられたマスタが、通信経路上の次の調停箇所までデータを送り、通信系路上の各調停箇所で通信要求と調停とデータ転送を繰り返して目的地のスレーブまで転送を行うように構成される。また、コア間接続回路の通信路のネットワーク形状（トポロジ）は、マスタとスレーブの対の一部ないし全部において通信経路が複数存在するように構成されることがある。マスタ・スレーブ対で複数の通信経路が存在する場合、コア間接続回路は、マスタが予め経路を決定するように構成されたり、接続回路が通信状況に適応して内部で動的に経路を決定するように構成される。【００２６】
上述のように、コア間接続回路は、内部に複数の調停箇所を有している。そこで、複数対のマスタとスレーブがデータ転送を行う際に転送経路上に調停箇所を起点とする共通箇所が存在して、各データ転送の要求転送速度の和が共通箇所での最大転送速度を超えて混雑が発生しているものとする。この場合、共通箇所の起点である調停箇所で低い優先度を与えられた通信要求が長時間待たされているにもかかわらず、待たされている通信要求のスレーブに対して他のマスタからの通信要求が無く、コア間接続回路の通信容量が無駄にされてしまうことがある。【００２７】
図４は、図１の集積回路２００内の非同期式コア間接続回路の一例として、非同期式コア間接続回路５００の構成を示している。【００２８】
非同期式コア間接続回路５００には、４つ以上のコアが接続されている。例えば、簡略化のため、非同期式コア間接続回路５００には、同期式マスタ側コア５０１、同期式スレーブ側コア５０２、同期式マスタ側コア５０３、同期式スレーブ側コア５０４の４つのコアが接続されているものとする。図４では、「同期式マスタ側コア」、「同期式スレーブ側コア」、「同期式マスタ側コア」、「同期式スレーブ側コア」をそれぞれ「マスタＡ」、「スレーブＡ」、「マスタＢ」、「スレーブＢ」と記載している。以降、同期式マスタ側コア５０１、同期式スレーブ側コア５０２、同期式マスタ側コア５０３、同期式スレーブ側コア５０４をそれぞれマスタＡ５０１、スレーブＡ５０２、マスタＢ５０３、スレーブＢ５０４と称する。【００２９】
非同期式コア間接続回路５００は、上述の非同期式のレジスタと、非同期式分岐回路５１１、５１３、５２３と、非同期式調停回路５１２、５１４、５２２と、を備えている。これらは、非特許文献１に記載されているものが用いられているものとする。また、マスタＡ５０１、スレーブＡ５０２、マスタＢ５０３、スレーブＢ５０４、非同期式分岐回路５１１、５１３、５２３及び、非同期式調停回路５１２、５２２、５２４の間のデータ転送は、上述の非同期式のレジスタによって行われているものとする。【００３０】
非同期式コア間接続回路５００に対して、マスタＡ５０１がスレーブＡ５０２へのデータ列５９１〜５９４のデータ転送要求を行い、マスタＢ５０３がスレーブＢ５０４へのデータ列５８１〜５８３のデータ転送要求を行っているものとする。ここで、マスタＡ５０１が、非同期式分岐回路５１１〜非同期式調停回路５１２〜非同期式分岐回路５１３〜非同期式調停回路５１４〜スレーブＡ５０３と経路設定を行い、マスタＢ５０３が、非同期式調停回路５１２〜非同期式分岐回路５１３〜スレーブＢ５０４と経路設定を行うものとする。つまり、設定されたデータ転送経路は、非同期式調停回路５１２〜非同期式分岐回路５１３を共有部分として持つものとする。【００３１】
このとき、データ列５８１〜５８３のデータ転送要求が先着したものとすると、マスタＢ５０３が指定する長さのデータ列が全て通過するまで共有部分がそのデータ転送要求に占拠されてしまう。このため、データ列５９１〜５９４の転送要求が上記の共有部分で転送されずに直前で待たされることとなる。データ列５８１〜５８３の転送要求が更に続き、マスタＢ５０３から続々と出力されるものとすると、データ列５９１〜５９４の転送処理待ち時間が非常に長くなる。ところが、非同期式コア間接続回路５００においては、マスタＡ５０１からスレーブＡ５０２へのデータ列５９１〜５９４の転送経路としては、非同期式調停回路５１２と非同期式分岐回路５１３を通らない経路、即ち、非同期式分岐回路５１１〜非同期式調停回路５２２〜非同期式分岐回路５２３〜非同期式調停回路５１４〜スレーブＡ５０３という経路が存在し、その経路の通信容量が無駄になっている。【００３２】
データ転送や調停に関する技術を紹介する。【００３３】
特許文献１には、データ転送制御装置が記載されている。データ転送制御装置は、データ転送命令を出力するＣＰＵが接続されるＣＰＵインターフェース部と、同期信号を処理する入出力手段が接続される同期信号インターフェース部と、非同期信号を処理する入出力手段が接続される非同期信号インターフェース部と、外部へメモリアクセス要求を送信するデータ送信手段と、外部からのメモリアクセス要求を受信するデータ受信手段と、メモリ制御インターフェース部とを備えている。メモリ制御インターフェース部は、ＣＰＵインターフェース部と、同期信号インターフェース部と、非同期信号インターフェース部と、データ受信手段からの入力を調停する調停手段と、メモリに接続され、調停手段による調停結果に従ってメモリとのアクセスを制御する。【００３４】
特許文献２には、非同期通信プロトコルを有するネットワークオンチップにおけるデータ伝送方法が記載されている。このネットワークは１以上のノードと１以上のリソースを備え、各ノードには、１以上の入力制御装置に接続された１以上の入力と、１以上の出力制御装置に接続された１以上の出力とが設けられている。内部クロック無しで動作する少なくとも１つのノードが、同じ出力にルーティングされる２つのデータパケット間の転送階層を決定する。この階層の決定は、各データパケットに関連付けられた優先チャネル情報に基づいて行われる。この優先チャネル情報及びこのデータパケットは別のノード又はネットワークリソースから送出されたものである。優先チャネル情報は、非同期通信プロトコルに従って第１の種類の同期信号によって伝送される。【００３５】
特許文献３には、システム・バス調停回路装置が記載されている。システム・バス調停回路装置は、データ処理装置システムにおけるシステム・バスの使用を調停する競合調停回路と、システム・バスの使用を要求する複数のデータ処理装置と、システム・バス調停回路とから成ることを特徴としている。システム・バス調停回路は、競合調停回路と複数のデータ処理装置との間に接続された使用要求信号線及び使用許可信号線上に配置され、複数のデータ処理装置からのシステム・バスの使用要求のうち最高優先度のものを選択し、該最高優先度の使用要求を発したデータ処理装置に対し使用許可を発するようにしている。【００３６】
特許文献４には、同期データ転送装置が記載されている。同期データ転送装置は、コンピュータシステムに設けられている。コンピュータシステムは、非同期的に規定されたバスと、当該バスを介してデータ転送を行う１以上のマスタ装置と、バス要求を調停して、いずれか一つのマスタ装置にバス使用権を与える調停装置とからなる。同期データ転送装置は、同期的に転送されるべきデータの転送を行う。同期データ転送装置は、調停装置に対してバス要求を送信し、かつ、調停装置からバス使用権を取得するバス確保装置と、バスを介してデータ転送を行う複数の従マスタ装置とを備えている。バス確保装置は、調停装置からバス使用権を取得した際、複数の従マスタ装置に対して、それぞれ所定のタイミングで、転送を開始／停止するよう通知するアクセス通知手段を含んでいる。複数の従マスタ装置はそれぞれ、アクセス通知手段からの通知に応じて転送を開始／停止させるアクセス制御手段を含んでいる。【００３７】
特許文献５には、バスアービタ制御回路が記載されている。バスアービタ制御回路は、共有バス上に接続されたバスマスタからバスを使用するバスリクエストを調停しバスマスタからのバスリクエストが皆無になるバスのフローティング状態を回避する。バスアービタ制御回路は、バスリクエストレジスタと、バスアービタ回路と、バスグラントレジスタと、ホールド制御回路と、グラントデコーダと、を備えることを特徴としている。バスリクエストレジスタは、バスマスタからのバス使用要求であるバスリクエスト信号を受け付ける。バスアービタ回路は、バスリクエストレジスタを監視し受け付けられたバスリクエスト信号の優先を調停し調停結果を通知する。バスグラントレジスタは、通知された調停結果を保持する。ホールド制御回路は、バスリクエストレジスタを監視しバスリクエスト信号の有無によりバスグラントレジスタに調停結果の解除またはホールドを指示する。グラントデコーダは、バスグラントレジスタの調停結果に該当するバスマスタにバスの使用を許可するグラント信号を通知する。【００３８】
特許文献６には、競合調停装置が記載されている。競合調停装置は、複数のデバイスと、パルス生成回路と、使用許諾禁止回路と、制御回路とを備えている。複数のデバイスは、コンピュータの所定の資源を利用する際に資源の使用を希望する使用希望信号をそれぞれ出力すると共に、各使用希望信号に基づき資源の使用を保証する使用許諾信号が外部からそれぞれ与えられると、使用許諾信号に応答して使用確認信号をそれぞれ出力する。パルス生成回路は、複数の出力端子、及び各出力端子に一定のパルス幅を持つ使用許諾パルスをそれぞれ出力する複数の部分パルス生成回路を有し、各使用許諾パルスを各出力端子に順次出力する。使用許諾禁止回路は、資源の使用を希望する複数のデバイスからの複数の使用確認信号を受けて、一つのデバイスが使用確認信号を有効にしている間は禁止信号の出力を有効にし、かつ、複数のデバイスが全て使用確認信号の出力を無効にしている間は禁止信号の出力を無効にする。制御回路は、複数の使用希望信号、複数の使用許諾パルス、及び禁止信号を入力し、デバイスに与える使用許諾信号を出力する。制御回路は、資源の使用を現に行っているデバイスに対して、使用希望信号が有効の間は使用許諾信号を有効にし、かつ、禁止信号を無視する。制御回路は、使用希望信号が無効になったときは使用許諾信号を無効にし、かつ、使用確認信号の無効を受けて禁止信号を有効にする制御を行う。制御回路は、資源の使用を現に行っていないデバイスに対して、使用希望信号が有効で、かつ、使用許諾パルスが入力されているときにのみ使用許諾信号を有効にし、かつ、使用確認信号の有効を受けて禁止信号を無視する制御を行うことを特徴としている。【００３９】
特許文献７には、データ転送装置が記載されている。データ転送装置は、データ転送路と、データ転送制御回路と、データ停滞検出回路とを備えている。データ転送路は、データロード信号入力と、データホールド信号入力と、１以上のデータ入力と、データ出力とを有すると共に各段を構成するスタティック型並列データラッチ回路を複数縦列接続してなる。データ転送制御回路は、データ転送路の各段に対応して設けられている。データ転送制御回路は、自段に有意なデータが存在しない場合には前段から受信したデータ転送要求信号に呼応してデータロード信号を非活性化して前段からの入力データを確定させると共に前段に対してデータ受理信号を送信して有意なデータを保持している状態になる。データ転送制御回路は、次段に対してデータを出力しつつデータ転送要求信号を送信した後に次段から入力されるデータ受理信号に呼応してデータロード信号を活性化して有意なデータを保持しない状態に復帰する。データ転送制御回路は、自段に有意なデータが存在する場合には前段からのデータ転送要求信号の有無には拘わらずにデータロード信号を非活性状態に維持して前段へのデータ受理信号を送信しないことにより当該入力データを保持し続ける。データ停滞検出回路は、最終段のデータ転送制御回路から出力されるデータ転送要求信号の状態に基づいてデータ転送路上でのデータの停滞を検出する。各データ転送制御回路は、データ停滞検出回路がデータの停滞を検出している場合は自段のデータラッチ回路が有意なデータを保持している間はデータホールド信号を活性化することによりスタティックなデータラッチの制御を行う。各データ転送制御回路は、データ停滞検出回路がデータの停滞を検出していない場合は自段のデータラッチ回路が有意なデータを保持していてもデータホールド信号を非活性状態に維持することによりスタティックなデータラッチの制御を行わないようにしていることを特徴としている。【００４０】
特許文献８には、パルス発生回路が記載されている。パルス発生回路は、パルス発生回路でパルスを発生させるか発生させないかを決定する情報を有するパターンデータのなかから、パルスが発生されない周期を検出し、該パルスが発生されない周期にダミーパルスを発生させるダミーパルス制御回路を有することを特徴としている。【００４１】
特許文献９には、コンピュータ装置が記載されている。コンピュータ装置は、通信チャンネルと、受信インターフェースと、を含んでいる。受信インターフェースは、通信チャンネルからアクセス可能な大容量記憶デバイスと、通信チャンネルに接続され、それぞれ第１と第２のクロックを発生してその発生されたクロックを他のデバイスに与える、第１及び第２のデバイスと、そして通信チャンネルによって第２のデバイスからのデータを受信しそして該受信データを第１のクロックと同期化する。
【先行技術文献】
【特許文献】
【００４２】
【特許文献１】特開２００６−１６４０１５号公報
【特許文献２】特開２００６−２５４４５０号公報
【特許文献３】特開平６−１０３２３０号公報
【特許文献４】特開平１０−８３３７４号公報
【特許文献５】特開平１１−１７５４６３号公報
【特許文献６】特許第３４４７７２５号公報
【特許文献７】特公平７−５８４５８号公報
【特許文献８】特開２００３−２７９６２９号公報
【特許文献９】特開平１０−５５３３８号公報
【非特許文献】
【００４３】
【非特許文献１】Ｊｅｎｓ  Ｓｐａｒｓｏ、Ｓｔｅｖｅ  Ｆｕｒｂｅｒ著「Ｐｒｉｎｃｉｐｌｅｓ  ｏｆ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｃｉｒｃｕｉｔ  Ｄｅｓｉｇｎ」、Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ、２００１年１２月３１日、ｐｐ．７６−７９
【発明の概要】
【００４４】
上述した非同期式論理回路では通信容量を有効に利用できないという課題がある。従って、本発明の目的は、通信容量を有効に利用することができる非同期式論理回路を提供することにある。
【００４５】
本発明の非同期式論理回路は、非同期式のレジスタに接続され、混雑可能性継続時間計測モジュールと、ハンドシェイク切換モジュールと、を具備している。非同期式のレジスタは、送信元レジスタと送信先レジスタとを含んでいる。送信元レジスタは、データを自己の記憶素子に記憶し、データ記憶要求を送信する。送信先レジスタは、データ記憶要求に応じて、送信元レジスタに記憶されたデータを自己の記憶素子に記憶し、自己の記憶素子にデータを記憶したことを表すデータ記憶完了通知を送信する。混雑可能性継続時間計測モジュールは、送信元レジスタからのデータ記憶要求に対して、送信先レジスタからデータ記憶完了通知が送信されていない場合、カウントし、カウント値に応じた時間を混雑可能性継続時間として出力する。ハンドシェイク切換モジュールは、混雑可能性継続時間が設定時間未満である場合、送信元レジスタからのデータ記憶要求を第１の転送先である送信先レジスタに出力し、混雑可能性継続時間が設定時間以上である場合、送信元レジスタからのデータ記憶要求を第２の転送先に出力する。
【００４６】
本発明の非同期式論理回路によれば、データ転送経路が混雑していない場合、送信元レジスタから第１の転送先である送信先レジスタにデータが転送されるように、送信元レジスタと第１の転送先との間のハンドシェイクを継続させる。また、データ転送経路が混雑している場合、送信元レジスタと第２の転送先との間のハンドシェイクに切り替える。データ転送経路の混雑が解消された場合、送信元レジスタから第１の転送先にデータが転送されるように、送信元レジスタと第１の転送先との間のハンドシェイクに戻す。このように、ハンドシェイク・プロトコルに違反することなく、通常のデータ転送と混雑時のデータ転送を切り替えることができる。これにより、通信容量を有効に利用することができる。
【図面の簡単な説明】
【００４７】
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。【００４８】
【図１】図１は、一般的な集積回路２００の構成を示している。
【図２】図２は、一般的な非同期式論理回路として、非同期式のレジスタの構成を示している。
【図３】図３は、図２の非同期式のレジスタの動作を示すタイミングチャートである。
【図４】図４は、図１の集積回路２００内の非同期式コア間接続回路の一例として、非同期式コア間接続回路５００の構成を示している。
【図５】図５は、本発明の第１実施形態による非同期式論理回路１００の構成を示すブロック図である。
【図６Ａ】図６Ａは、本発明の第１実施形態による非同期式論理回路１００の動作を示すフローチャートである。
【図６Ｂ】図６Ｂは、本発明の第１実施形態による非同期式論理回路１００の動作を示すフローチャートである。
【図７】図７は、混雑可能性検出モジュール１０１の具体的な構成を示している（第１〜３実施形態）。
【図８】図８は、混雑可能性継続時間計測モジュール１０２と混雑判定モジュール１０３の具体的な構成を示している（第１〜３実施形態）。
【図９】図９は、ハンドシェイク切換モジュール１０４の具体的な構成を示している（第１〜３実施形態）。
【図１０Ａ】図１０Ａは、２入力非対称型Ｃ素子８０１、８０８である素子１００１を示している（第１〜３実施形態）。
【図１０Ｂ】図１０Ｂは、図１０Ａの論理回路１００２による実現例を示している（第１〜３実施形態）。
【図１０Ｃ】図１０Ｃは、図１０Ｂの論理回路１００２の動作を示す真理値表１００３である（第１〜３実施形態）。
【図１１Ａ】図１１Ａは、２入力非対称型Ｃ素子８０６である素子１１０１を示している（第１〜３実施形態）。
【図１１Ｂ】図１１Ｂは、図１１Ａの論理回路１１０２による実現例を示している（第１〜３実施形態）。
【図１１Ｃ】図１１Ｃは、図１１Ｂの論理回路１１０２の動作を示す真理値表１１０３である（第１〜３実施形態）。
【図１２Ａ】図１２Ａは、３入力非対称型Ｃ素子８０２、８０５である素子１２１０を示している（第１〜３実施形態）。
【図１２Ｂ】図１２Ｂは、図１２Ａの論理回１２２０による実現例を示している（第１〜３実施形態）。
【図１２Ｃ】図１２Ｃは、図１２Ｂの論理回路１２２０の動作を示す真理値表１２３０である（第１〜３実施形態）。
【図１３】図１３は、混雑可能性検出モジュール１０１の他の構成を示している（第１〜３実施形態）。
【図１４】図１４は、本発明の第２実施形態による非同期式論理回路１４００の構成を示すブロック図である。
【図１５】図１５は、本発明の第３実施形態による非同期式論理回路１５００の構成を示すブロック図である。
【図１６】図１６は、図５の非同期式論理回路１００を図４の非同期式コア間接続回路５００に適用した場合の非同期式コア間接続回路１８００の構成を示している。
【図１７】図１７は、図１５の非同期式論理回路１５００を図４の非同期式コア間接続回路５００に適用した場合の非同期式コア間接続回路１６００の構成を示している。
【図１８】図１８は、図１５の非同期式論理回路１５００を図４の非同期式コア間接続回路５００に適用した場合の非同期式コア間接続回路１７００の構成を示している。
【発明を実施するための形態】
【００４９】
以下に添付図面を参照して、本発明の実施形態による非同期式論理回路について詳細に説明する。
【００５０】
（第１実施形態）
［構成］
図５は、本発明の第１実施形態による非同期式論理回路１００の構成を示すブロック図である。
【００５１】
本発明の第１実施形態による非同期式論理回路１００は、非同期式コア間接続回路の非同期式のレジスタであるレジスタ１７１とレジスタ１７２の間に接続されている。レジスタ１７１は、記憶素子１８１と記憶制御回路１９１とを備えている。レジスタ１７２は、記憶素子１８２と記憶制御回路１９２とを備えている。非同期式のレジスタが、前述した非同期式コア間接続回路５００（図４参照）の非同期式のレジスタである場合、例えば、記憶素子１８１、記憶制御回路１９１は、それぞれ、前述のフリップ・フロップ３１０、記憶制御回路３２０に対応する。記憶素子１８２、記憶制御回路１９２は、それぞれ、前述のフリップ・フロップ３１１、記憶制御回路３２１に対応する。
【００５２】
レジスタ１７１の記憶制御回路１９１は、データを記憶素子１８１に記憶し、データ記憶要求を示す送信元要求信号Ｒｉをレジスタ１７２に送信する。送信元要求信号Ｒｉが送信先要求信号Ｒｏとして送信され、この送信先要求信号Ｒｏがデータ記憶要求を示している。この場合、レジスタ１７２の記憶制御回路１９２は、送信先要求信号Ｒｏ（データ記憶要求）に応じて、レジスタ１７１の記憶素子１８１に記憶されたデータを記憶素子１８２に記憶する。記憶制御回路１９２は、データ記憶完了通知を示す送信先応答信号Ａｏをレジスタ１７１に送信する。データ記憶完了通知は、記憶素子１８２にデータを記憶したことを表している。
【００５３】
本発明の第１実施形態による非同期式論理回路１００は、データ破棄モジュール１９９に接続されている。データ破棄モジュール１９９は、データ破棄要求信号Ｒｅ（データ破棄要求）に応じて、データ破棄完了通知を示す破棄応答信号Ａｅをハンドシェイク切換モジュール１０４に出力する。これにより、送信側レジスタ１７１に残存しているデータが破棄されることになる。
【００５４】
本発明の第１実施形態による非同期式論理回路１００は、混雑可能性検出モジュール１０１と、混雑可能性継続時間計測モジュール１０２と、混雑判定モジュール１０３と、ハンドシェイク切換モジュール１０４と、を具備している。
【００５５】
混雑可能性検出モジュール１０１は、ハンドシェイク切換モジュール１０４からの送信先要求信号Ｒｏと、レジスタ１７２からの送信先応答信号Ａｏとを監視する。
【００５６】
ここで、データ記憶要求に対して、データ記憶完了通知が送信されていない。即ち、ハンドシェイク切換モジュール１０４からの送信先要求信号Ｒｏがデータ記憶要求を示しているのに対して、レジスタ１７２からの送信先応答信号Ａｏがデータ記憶完了通知を示していない。この場合、混雑可能性検出モジュール１０１は、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑している可能性があることを示す混雑可能性信号Ｐｃを混雑可能性継続時間計測モジュール１０２に出力する。
【００５７】
一方、データ記憶要求に対して、データ記憶完了通知が送信される。即ち、ハンドシェイク切換モジュール１０４からの送信先要求信号Ｒｏがデータ記憶要求を示しているのに対して、レジスタ１７２からの送信先応答信号Ａｏがデータ記憶完了通知を示している。この場合、混雑可能性検出モジュール１０１は、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑している可能性がないことを示す混雑可能性信号Ｐｃを混雑可能性継続時間計測モジュール１０２に出力する。
【００５８】
混雑可能性継続時間計測モジュール１０２は、混雑可能性検出モジュール１０１からの混雑可能性信号Ｐｃを受信する。
【００５９】
ここで、混雑可能性信号Ｐｃが、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑している可能性があることを示している。この場合、混雑可能性継続時間計測モジュール１０２は、カウントする。このとき、混雑可能性継続時間計測モジュール１０２は、そのカウント値に応じた時間を混雑可能性継続時間Ｔｃとし、混雑可能性継続時間Ｔｃを示す信号を混雑判定モジュール１０３に出力する。
【００６０】
一方、混雑可能性信号Ｐｃが、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑している可能性がないことを示している。この場合、混雑可能性継続時間計測モジュール１０２は、カウントを終了する。このとき、混雑可能性継続時間計測モジュール１０２は、混雑可能性継続時間Ｔｃをリセットする。
【００６１】
混雑判定モジュール１０３は、混雑可能性継続時間Ｔｃを示す信号を混雑可能性継続時間計測モジュール１０２から受信する。また、混雑判定モジュール１０３には、設定時間Ｔｔｈが予め与えられる。混雑判定モジュール１０３は、混雑可能性継続時間Ｔｃと、設定時間Ｔｔｈとを比較する。
【００６２】
ここで、混雑可能性継続時間Ｔｃが設定時間Ｔｔｈ未満である。この場合、混雑判定モジュール１０３は、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑していないことを示す混雑判定結果信号Ｃｇをハンドシェイク切換モジュール１０４に出力する。
【００６３】
一方、混雑可能性継続時間Ｔｃが設定時間Ｔｔｈ以上である。この場合、混雑判定モジュール１０３は、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑していることを示す混雑判定結果信号Ｃｇをハンドシェイク切換モジュール１０４に出力する。
【００６４】
ハンドシェイク切換モジュール１０４は、レジスタ１７１からの送信元要求信号Ｒｉと、レジスタ１７２からの送信先応答信号Ａｏと、混雑判定モジュール１０３からの混雑判定結果信号Ｃｇとを受信する。
【００６５】
ここで、混雑判定結果信号Ｃｇが、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑していないことを示している。この場合、ハンドシェイク切換モジュール１０４は、レジスタ１７１からの送信元要求信号Ｒｉ（データ記憶要求）を送信先要求信号Ｒｏ（データ記憶要求）として、第１の転送先であるレジスタ１７２に出力する。
【００６６】
一方、混雑判定結果信号Ｃｇが、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑していることを示している。この場合、ハンドシェイク切換モジュール１０４は、レジスタ１７１からの送信元要求信号Ｒｉ（データ記憶要求）に対して、データ破棄要求を示すデータ破棄要求信号Ｒｅを生成し、第２の転送先に出力する。
【００６７】
第１実施形態において、第２の転送先は、データ破棄モジュール１９９を表している。データ破棄モジュール１９９は、データ破棄要求信号Ｒｅ（データ破棄要求）に応じて、データ破棄完了通知を示す破棄応答信号Ａｅをハンドシェイク切換モジュール１０４に出力する。データ破棄完了通知は、レジスタ１７１に記憶されたデータを破棄したことを表している。
【００６８】
ここで、データ記憶要求に対して、データ記憶完了通知が送信される。即ち、レジスタ１７１からの送信元要求信号Ｒｉがデータ記憶要求を示しているのに対して、レジスタ１７２からの送信先応答信号Ａｏがデータ記憶完了通知を示している。この場合、ハンドシェイク切換モジュール１０４は、レジスタ１７２へのデータ記憶要求の送信を終了する。即ち、データ記憶要求の取下げを示す送信先要求信号Ｒｏを出力する。また、ハンドシェイク切換モジュール１０４は、レジスタ１７２からの送信先応答信号Ａｏ（データ記憶完了通知）を送信元応答信号Ａｉ（データ記憶完了通知）として、レジスタ１７１に出力する。
【００６９】
一方、データ記憶完了通知に対して、データ記憶要求が送信される。即ち、レジスタ１７２からの送信先応答信号Ａｏ（データ記憶完了通知）に対して、レジスタ１７１から送信元要求信号Ｒｉ（データ記憶要求）が送信される。この場合、ハンドシェイク切換モジュール１０４は、レジスタ１７１からの送信元要求信号Ｒｉ（データ記憶要求）に対して、データ破棄要求を示すデータ破棄要求信号Ｒｅを生成し、第２の転送先であるデータ破棄モジュール１９９に出力する。
【００７０】
［動作］
図６Ａ、６Ｂは、本発明の第１実施形態による非同期式論理回路１００の動作を示すフローチャートである。
【００７１】
ここで、送信元要求信号Ｒｉ、送信先要求信号Ｒｏ、データ破棄要求信号Ｒｅは、“０”、“１”の２つの値で表現される。送信元要求信号Ｒｉ、送信先要求信号Ｒｏは、その値が“１”である場合、データ記憶要求を示し、その値が“０”である場合、データ記憶要求の取下げを示している。データ破棄要求信号Ｒｅは、その値が“１”である場合、データ破棄要求を示し、その値が“０”である場合、データ破棄要求の取下げを示している。
【００７２】
送信元応答信号Ａｉ、送信先応答信号Ａｏ、破棄応答信号Ａｅは、“０”、“１”の２つの値で表現される。送信元応答信号Ａｉ、送信先応答信号Ａｏは、その値が“１”である場合、データ記憶完了通知を示し、その値が“０”である場合、データ記憶完了通知の取下げを示している。破棄応答信号Ａｅは、その値が“１”である場合、データ破棄完了通知を示し、その値が“０”である場合、データ破棄完了通知の取下げを示している。
【００７３】
混雑可能性信号Ｐｃは、“０”、“１”の２つの値で表現される。混雑可能性信号Ｐｃは、その値が“１”である場合、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑している可能性があることを示し、その値が“０”である場合、データ転送経路が混雑している可能性がないことを示している。
【００７４】
混雑判定結果信号Ｃｇは、“０”、“１”の２つの値で表現される。混雑判定結果信号Ｃｇは、その値が“１”である場合、データ転送経路が混雑していることを示し、その値が“０”である場合、データ転送経路が混雑していないことを示している。
【００７５】
混雑可能性継続時間Ｔｃ及び設定時間Ｔｔｈは任意の実数で表現される。
【００７６】
また、図６Ａ、６Ｂの条件分岐において、条件成立は「Ｙ」、条件不成立は「Ｎ」と略記する。
【００７７】
まず、非同期式論理回路１００は初期状態である。この場合、送信元要求信号Ｒｉ、送信元応答信号Ａｉ、送信先要求信号Ｒｏ、送信先応答信号Ａｏ、データ破棄要求信号Ｒｅ、破棄応答信号Ａｅの値は“０”である。また、混雑可能性信号Ｐｃの値は“０”である。また、混雑可能性継続時間Ｔｃは“０”である。また、混雑判定結果信号Ｃｇの値は“０”である。設定時間Ｔｔｈとして、任意の値が与えられているものとする（ステップＳ９００）。
【００７８】
レジスタ１７１の記憶制御回路１９１からハンドシェイク切換モジュール１０４に送信元要求信号Ｒｉが送信される（ステップＳ９０１で「Ｎ」）。ここで、送信元要求信号Ｒｉの値が“１”（Ｒｉ＝１）であるものとする（ステップＳ９０１で「Ｙ」）。この場合、ハンドシェイク切換モジュール１０４は、送信元要求信号Ｒｉ“１”（データ記憶要求）に応じて、その値が“１”である送信先要求信号Ｒｏ（Ｒｏ＝１）をレジスタ１７２の記憶制御回路１９２に出力する（ステップＳ９０２）。
【００７９】
ハンドシェイク切換モジュール１０４からレジスタ１７２の記憶制御回路１９２に送信先要求信号Ｒｏ“１”（データ記憶要求）が送信され、レジスタ１７２の記憶制御回路１９２からハンドシェイク切換モジュール１０４に送信先応答信号Ａｏが送信される（ステップＳ９０３）。
【００８０】
例えば、送信先要求信号Ｒｏ“１”（データ記憶要求）に対して、送信先応答信号Ａｏの値が“０”のままである（ステップＳ９０３で「Ｎ」）。この場合、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑している可能性があるため、混雑可能性検出モジュール１０１は、その値が“１”である混雑可能性信号Ｐｃ（Ｐｃ＝１）を混雑時間計測モジュール１０２に出力する。混雑時間計測モジュール１０２は、混雑可能性信号Ｐｃの値が“１”である間、カウントし、カウント値に応じた時間を混雑可能性継続時間Ｔｃとして混雑判定モジュール１０３に出力する（ステップＳ９１３）。
【００８１】
混雑判定モジュール１０３は、混雑可能性継続時間Ｔｃが設定時間Ｔｔｈ以上であるか否かを判定する（ステップＳ９１４）。
【００８２】
判定の結果、混雑可能性継続時間Ｔｃが設定時間Ｔｔｈ未満である。この場合、データ転送経路が混雑していない。このため、混雑判定モジュール１０３は、その値が“０”である混雑判定結果信号Ｃｇ（Ｃｇ＝０）を出力したままである（ステップＳ９１４で「Ｎ」）。
【００８３】
その後、送信先要求信号Ｒｏ“１”（データ記憶要求）に対して、送信先応答信号Ａｏの値が“１”（データ記憶完了通知）になった場合（ステップＳ９０３で「Ｙ」）、データ転送経路が混雑している可能性がなくなったため、混雑可能性検出モジュール１０１は、その値が“０”である混雑可能性信号Ｐｃ（Ｐｃ＝０）を混雑時間計測モジュール１０２に出力する（ステップＳ９１１）。混雑時間計測モジュール１０２は、混雑可能性信号Ｐｃの値が“０”であるため、カウントを終了し、混雑可能性継続時間Ｔｃをリセットする。即ち、“０”にする（ステップＳ９１２）。
【００８４】
ハンドシェイク切換モジュール１０４は、レジスタ１７１とレジスタ１７２の間のハンドシェイクを継続するために、レジスタ１７２の記憶制御回路１９２からの送信先応答信号Ａｏ“１”（データ記憶完了通知）に応じて、その値が“１”である送信元応答信号Ａｉ（Ａｉ＝１）をレジスタ１７１の記憶制御回路１９１に出力し（ステップＳ９０４）、記憶制御回路１９１から送信元要求信号Ｒｉを受信する（ステップＳ９０５）。ここで、送信元要求信号Ｒｉの値が“０”（Ｒｉ＝０）である（ステップＳ９０５で「Ｙ」）。この場合、ハンドシェイク切換モジュール１０４は、送信元要求信号Ｒｉ“０”（データ記憶要求）に応じて、その値が“０”である送信先要求信号Ｒｏ（Ｒｏ＝０）をレジスタ１７２の記憶制御回路１９２に出力し（ステップＳ９０６）、記憶制御回路１９２から送信先応答信号Ａｏを受信する（ステップＳ９０７）。ここで、送信先応答信号Ａｏの値が“０”（Ａｏ＝０）である（ステップＳ９０７で「Ｙ」）。この場合、ハンドシェイク切換モジュール１０４は、送信先応答信号Ａｏ“０”に応じて、その値が“０”である送信元応答信号Ａｉ（Ａｉ＝０）をレジスタ１７１の記憶制御回路１９１に出力する（ステップＳ９０８）。その後、ステップＳ９００以降が実行される。
【００８５】
一方、判定の結果、混雑可能性継続時間Ｔｃが設定時間Ｔｔｈ以上であるものとする（ステップＳ９０３で「Ｎ」、Ｓ９１３、Ｓ９１４で「Ｙ」）。この場合、データ転送経路が混雑している。このため、混雑判定モジュール１０３は、その値が“１”である混雑判定結果信号Ｃｇ（Ｃｇ＝１）を出力する（ステップＳ９１９）。
【００８６】
ハンドシェイク切換モジュール１０４は、送信先要求信号Ｒｏ“１”（データ記憶要求）をレジスタ１７２に出力したままで、レジスタ１７１とデータ破棄モジュール１９９との間でハンドシェイクを行う。この場合、ハンドシェイク切換モジュール１０４は、混雑判定モジュール１０３からの混雑判定結果信号Ｃｇ“１”に応じて、その値が“１”であるデータ破棄要求信号Ｒｅ（Ｒｅ＝１）をデータ破棄モジュール１９９に出力する（ステップＳ９２２）。ここで、データ破棄モジュール１９９は、その値が“０”である破棄応答信号Ａｅ（Ａｅ＝０）をハンドシェイク切換モジュール１０４に送信している（ステップＳ９２３で「Ｎ」）。データ破棄モジュール１９９は、データ破棄要求信号Ｒｅ“１”（データ破棄要求）に応じて、レジスタ１７１の記憶素子１８１に記憶されたデータを破棄し、破棄応答信号Ａｅの値を“１”（Ａｅ＝１）にする（ステップＳ９２３で「Ｙ」）。
【００８７】
ハンドシェイク切換モジュール１０４は、破棄応答信号Ａｅ“１”（データ破棄完了通知）に応じて、その値が“１”である送信元応答信号Ａｉ（Ａｉ＝１）をレジスタ１７１の記憶制御回路１９１に出力する（ステップＳ９２４）。ここで、送信元要求信号Ｒｉの値が“１”のままである（ステップＳ９２５で「Ｎ」）。送信元応答信号Ａｉの値が“１”に対して、レジスタ１７１が送信元要求信号Ｒｉの値を“０”とするとき（ステップＳ９２５で「Ｙ」）、ハンドシェイク切換モジュール１０４は、送信元要求信号Ｒｉ“０”に応じて、その値が“０”であるデータ破棄要求信号Ｒｅ（Ｒｅ＝０）をデータ破棄モジュール１９９に出力する（ステップＳ９２６）。ここで、データ破棄モジュール１９９は、その値が“１”である破棄応答信号Ａｅ（Ａｅ＝１）をハンドシェイク切換モジュール１０４に送信している（ステップＳ９２７で「Ｎ」）。データ破棄モジュール１９９は、データ破棄要求信号Ｒｅ“０”に応じて、破棄応答信号Ａｅの値を“０”（Ａｅ＝０）にする（ステップＳ９２７で「Ｙ」）。ハンドシェイク切換モジュール１０４は、破棄応答信号Ａｅ“０”に応じて、その値が“０”である送信元応答信号Ａｉ（Ａｉ＝０）をレジスタ１７１の記憶制御回路１９１に出力する（ステップＳ９２８）。
【００８８】
その後、レジスタ１７２からの送信先応答信号Ａｏの値が“０”のままであるときに（ステップＳ９３３で「Ｎ」）、レジスタ１７１からの送信元要求信号Ｒｉの値が“０”であるものとする（ステップＳ９３１で「Ｎ」）。この場合、ハンドシェイク切換モジュール１０４は、送信先応答信号Ａｏの値が“１”となるか、送信元要求信号Ｒｉの値が“１”となるまで待機する。
【００８９】
例えば、送信先応答信号Ａｏの値が“０”のままであるときに（ステップＳ９３３で「Ｎ」）、送信元要求信号Ｒｉの値が“１”（データ記憶要求）となったものとする（ステップＳ９３１で「Ｙ」）。この場合、ハンドシェイク切換モジュール１０４は、送信元要求信号Ｒｉ“１”（データ記憶要求）に応じて、レジスタ１７１とデータ破棄モジュール１９９との間でのハンドシェイクを開始し、上述のステップＳ９２２〜Ｓ９２８が実行される。
【００９０】
一方、レジスタ１７２の記憶制御回路１９２からの送信先応答信号Ａｏの値が“１”（データ記憶完了通知）となったものとする（ステップＳ９３３で「Ｙ」）。この場合、ハンドシェイク切換モジュール１０４は、送信先応答信号Ａｏ“１”（データ記憶完了通知）に応じて、レジスタ１７２への送信先要求信号Ｒｏの値を“０”にする（ステップＳ９３６）。
【００９１】
また、送信先応答信号Ａｏの値が“１”である場合、レジスタ１７１からレジスタ１７２へのデータ転送経路が混雑している可能性がないため、混雑可能性検出モジュール１０１は、混雑可能性信号Ｐｃの値を“０”にする（ステップＳ９４１）。混雑可能性継続時間計測モジュール１０２は、混雑可能性信号Ｐｃの値が“０”であるため、カウントを終了し、混雑可能性継続時間Ｔｃをリセットする。即ち、“０”にする（ステップＳ９４２）。混雑判定モジュール１０３は、混雑可能性継続時間Ｔｃがリセットされたことにより、混雑判定結果信号Ｃｇの値を“０”にする（ステップＳ９４９）。
【００９２】
レジスタ１７２からの送信先応答信号Ａｏの値が“１”（データ記憶完了通知）であるときに（ステップＳ９２３で「Ｎ」）、レジスタ１７１からの送信元要求信号Ｒｉの値が“０”のままであるものとする（ステップＳ９２１で「Ｎ」）。この場合、ハンドシェイク切換モジュール１０４は、送信先応答信号Ａｏの値が“０”となるか、送信元要求信号Ｒｉの値が“１”となるまで待機する。
【００９３】
例えば、送信先応答信号Ａｏの値が“１”（データ記憶完了通知）であるときに（ステップＳ９２３で「Ｎ」）、送信元要求信号Ｒｉの値が“１”（データ記憶要求）となったものとする（ステップＳ９２１で「Ｙ」）。この場合、ハンドシェイク切換モジュール１０４は、送信元要求信号Ｒｉ“１”（データ記憶要求）に応じて、レジスタ１７１とデータ破棄モジュール１９９との間でのハンドシェイクを開始し、上述のステップＳ９２２〜Ｓ９２８が実行される。
【００９４】
一方、送信先応答信号Ａｏの値が“０”となったものとする（ステップＳ９２３で「Ｙ」）。その後、ステップＳ９００以降が実行される。
【００９５】
［効果］
本発明の第１実施形態による非同期式論理回路１００によれば、データ転送経路が混雑していない場合、送信元レジスタ（レジスタ１７１）から第１の転送先である送信先レジスタ（レジスタ１７２）にデータが転送されるように、送信元レジスタと第１の転送先との間のハンドシェイクを継続させる。また、データ転送経路が混雑している場合、送信元レジスタと第２の転送先との間のハンドシェイクに切り替える。この場合、第２の転送先のデータ破棄モジュール１９９は、データ破棄要求信号Ｒｅ（データ破棄要求）に応じて、データ破棄完了通知を示す破棄応答信号Ａｅをハンドシェイク切換モジュール１０４に出力する。データ転送経路の混雑が解消された場合、送信元レジスタから第１の転送先にデータが転送されるように、送信元レジスタと第１の転送先との間のハンドシェイクに戻す。このように、ハンドシェイク・プロトコルに違反することなく、通常のデータ転送と混雑時のデータ転送を切り替えることができる。これにより、通信容量を有効に利用することができる。
【００９６】
［具体例］
次に、上述の構成について具体的に説明する。
【００９７】
図７は、混雑可能性検出モジュール１０１の具体的な構成を示している。
【００９８】
混雑可能性検出モジュール１０１では、送信先要求信号Ｒｏ、送信先応答信号Ａｏの値がそれぞれ“１”、“０”である状態のみ、混雑可能性信号Ｐｃの値が“１”となり、その他の状態では混雑可能性信号Ｐｃの値が“０”となる。そのため、混雑可能性検出モジュール１０１は、ＡＮＤゲートとＮＯＴゲートのみで構成されている。即ち、送信先応答信号Ａｏの信号レベルはＮＯＴゲートにより反転され、ＡＮＤゲートの第１入力には送信先要求信号Ｒｏが供給され、ＡＮＤゲートの第２入力には、ＮＯＴゲートの出力が供給される。ＡＮＤゲートは、その出力信号として混雑可能性信号Ｐｃを出力する。
【００９９】
図８は、混雑可能性継続時間計測モジュール１０２と混雑判定モジュール１０３の具体的な構成を示している。混雑可能性継続時間測定モジュール１０２は、局所クロック生成回路７１０と混雑可能性継続時間カウンタ７２０とを備えている。
【０１００】
局所クロック生成回路７１０は、局所クロックスイッチ回路７１１とＮＯＴゲート７１２とを備えている。局所クロックスイッチ回路７１１は、ＮＯＴゲート７１１（ａ）と２入力ＮＡＮＤゲート７１１（ｂ）、（ｃ）とＮＯＴゲート７１１（ｄ）とを備えている。ＮＯＴゲート７１１（ａ）は、その入力に混雑可能性検出モジュール１０１の出力が接続され、ＮＯＴゲート７１１（ａ）には混雑可能性信号Ｐｃが供給される。２入力ＮＡＮＤゲート７１１（ｂ）は、その第１入力にＮＯＴゲート７１１（ａ）の出力が接続され、その第２入力に２入力ＮＡＮＤゲート７１１（ｃ）の出力が接続され、その出力に２入力ＮＡＮＤゲート７１１（ｃ）の第１入力が接続されている。２入力ＮＡＮＤゲート７１１（ｃ）は、その第２入力にＮＯＴゲート７１２の出力が接続されている。ＮＯＴゲート７１１（ｄ）は、その入力に２入力ＮＡＮＤゲート７１１（ｃ）の出力が接続され、その出力信号として局所クロック信号ＬＣｌｋを出力する。
【０１０１】
局所クロック生成回路７１０は、混雑可能性信号Ｐｃの値が“１”であるときに発振して局所クロック信号ＬＣｌｋを出力し、混雑可能性信号Ｐｃの値が“０”であるときに発振を停止する。混雑可能性信号Ｐｃの値が“１”であるとき、ＮＯＴゲート７１１（ａ）の出力信号Ｐｃ＿ｂの値が“０”となる。ＮＡＮＤゲート７１１（ｂ）は、その第１入力に供給される出力信号Ｐｃ＿ｂの値が“０”となるため、その第２入力に供給される出力信号ＬＣｌｋ＿ｂｂの値に関わらず、その出力として出力信号Ｐｃ＿ｂｂの値を“１”にする。このとき、ＮＡＮＤゲート７１１（ｃ）は、その第１入力に供給される出力信号Ｐｃ＿ｂｂの値が“１”となるため、ＮＯＴゲート７１２と等価の動作をしており、ＮＡＮＤゲート７１１（ｃ）とＮＯＴゲート７１１（ｄ）とＮＯＴゲート７１２は奇数個（３個）のＮＯＴゲートからなるフィードバック・ループを構成しているのと等価の状態となる。そのため、混雑可能性信号Ｐｃの値が“１”であるとき、局所クロック生成回路７１０は発振し、局所クロック信号ＬＣｌｋを出力する。
【０１０２】
混雑可能性信号Ｐｃの値が“１”であるときの局所クロックスイッチ回路７１１の動作として、混雑可能性信号Ｐｃの値が“０”となる直前に混雑可能性信号Ｐｃの値が“１”であったときの内部の信号状態を考える。この場合、局所クロックスイッチ回路７１１が発振しているので、局所クロック信号ＬＣｌｋの値は“０”の状態と“１”の状態のどちらも取りうる。
【０１０３】
まず、局所クロックスイッチ回路７１１に供給される混雑可能性信号Ｐｃ、ＮＯＴゲート７１２の出力信号ＬＣｌｋ＿ｂの値がそれぞれ“１”、“０”であるときを考える。このとき、ＮＡＮＤゲート７１１（ｂ）の入力信号Ｐｃ＿ｂ、ＬＣｌｋ＿ｂｂの値がそれぞれ“０”、“１”、ＮＡＮＤゲート７１１（ｂ）の出力信号Ｐｃ＿ｂｂの値が“１”となる。ＮＡＮＤゲート７１１（ｃ）の入力信号ＬＣｌｋ＿ｂ、Ｐｃ＿ｂｂの値がそれぞれ“０”、“１”、ＮＡＮＤゲート７１１（ｃ）の出力信号ＬＣｌｋ＿ｂｂの値が“１”となる。
【０１０４】
ここで、混雑可能性信号Ｐｃの値が“０”になったものとする。この場合、ＮＡＮＤゲート７１１（ｂ）の入力信号Ｐｃ＿ｂ、ＬＣｌｋ＿ｂｂの値がそれぞれ“１”、“１”、ＮＡＮＤゲート７１１（ｂ）の出力信号Ｐｃ＿ｂｂの値が“０”となる。ＮＡＮＤゲート７１１（ｃ）の入力信号ＬＣｌｋ＿ｂ、Ｐｃ＿ｂｂの値がそれぞれ“０”、“０”、ＮＡＮＤゲート７１１（ｃ）の出力信号ＬＣｌｋ＿ｂｂの値が“１”となる。ＮＯＴゲート７１１（ｄ）により局所クロック信号ＬＣｌｋの値が“０”となる。このため、ＮＡＮＤゲート７１１（ｂ）の入力信号Ｐｃ＿ｂ、ＬＣｌｋ＿ｂｂの値がそれぞれ“１”、“１”、ＮＡＮＤゲート７１１（ｂ）の出力信号Ｐｃ＿ｂｂの値が“０”のままであり、ＮＡＮＤゲート７１１（ｃ）の入力信号ＬＣｌｋ＿ｂ、出力信号Ｐｃ＿ｂｂの値がそれぞれ“１”、“０”となる。一方、ＮＡＮＤゲート７１１（ｃ）の出力信号ＬＣｌｋ＿ｂｂの値が“１”のままで変化しておらず、それに伴い、局所クロック信号ＬＣｌｋもまた変化しない。
【０１０５】
次に、局所クロックスイッチ回路７１１に供給される混雑可能性信号Ｐｃ、ＮＯＴゲート７１２の出力信号ＬＣｌｋ＿ｂの値がそれぞれ“１”、“１”であるときを考える。このとき、ＮＡＮＤゲート７１１（ｂ）の入力信号Ｐｃ＿ｂ、ＬＣｌｋ＿ｂｂがそれぞれ“０”、“０”、ＮＡＮＤゲート７１１（ｂ）の出力信号Ｐｃ＿ｂｂの値が“１”となる。ＮＡＮＤゲート７１１（ｃ）の入力信号ＬＣｌｋ＿ｂ、Ｐｃ＿ｂｂの値がそれぞれ“１”、“１”、ＮＡＮＤゲート７１１（ｃ）の出力信号ＬＣｌｋ＿ｂｂの値が“０”となる。
【０１０６】
ここで、混雑可能性信号Ｐｃの値が“０”になったものとする。この場合、ＮＡＮＤゲート７１１（ｂ）の入力信号Ｐｃ＿ｂ、ＬＣｌｋ＿ｂｂの値がそれぞれ“１”、“０”となる。ＮＡＮＤゲート７１１（ｂ）の出力信号Ｐｃ＿ｂｂの値が“１”、ＮＡＮＤゲート７１１（ｃ）の入力信号ＬＣｌｋ＿ｂ、Ｐｃ＿ｂｂの値がそれぞれ“１”、“１”、ＮＡＮＤゲート７１１（ｃ）の出力信号ＬＣｌｋ＿ｂｂの値が“０”のままである。また、ＮＯＴゲート７１１（ｄ）により局所クロック信号ＬＣｌｋの値が“１”となる。このため、ＮＡＮＤゲート７１１（ｂ）の入力信号Ｐｃ＿ｂ、ＬＣｌｋ＿ｂｂの値がそれぞれ“１”、“１”、ＮＡＮＤゲート７１１（ｂ）の出力信号Ｐｃ＿ｂｂの値が“０”となる。ＮＡＮＤゲート７１１（ｃ）の入力信号ＬＣｌｋ＿ｂ、Ｐｃ＿ｂｂの値がそれぞれ“０”、“０”、ＮＡＮＤゲート７１１（ｃ）の出力信号ＬＣｌｋ＿ｂｂの値が“１”となる。
【０１０７】
更に、ＮＯＴゲート７１１（ｄ）により局所クロック信号ＬＣｌｋの値が“０”となる。このため、ＮＡＮＤゲート７１１（ｂ）の入力信号Ｐｃ＿ｂ、ＬＣｌｋ＿ｂｂの値がそれぞれ“１”、“１”、ＮＡＮＤゲート７１１（ｂ）の出力信号Ｐｃ＿ｂｂの値が“０”のままである。ＮＡＮＤゲート７１１（ｃ）の入力信号ＬＣｌｋ＿ｂ、Ｐｃ＿ｂｂの値がそれぞれ“１”、“０”となる。一方、ＮＡＮＤゲート７１１（ｃ）の出力信号の状態はＬＣｌｋ＿ｂｂの値が“１”のままで変化しておらず、それに伴い、局所クロック信号ＬＣｌｋもまた変化しない。
【０１０８】
以上のように、局所クロック生成回路７１０は、混雑可能性信号Ｐｃの値が“０”となることにより、その時点での局所クロック信号ＬＣｌｋの状態に関わらず、局所クロック信号ＬＣｌｋの出力を停止する。
【０１０９】
混雑可能性継続時間カウンタ７２０は、継続時間記憶回路７２１と加算器７２２とを備えている。継続時間記憶回路７２１は、その入力に加算器７２２の出力が接続され、その出力に加算器７２２の入力が接続されている。この継続時間記憶回路７２１はクロック端子とリセット端子付きのフリップ・フロップであり、そのクロック端子には局所クロック信号ＬＣｌｋが供給され、リセット端子には混雑可能性信号Ｐｃが供給される。
【０１１０】
混雑可能性信号Ｐｃの値が“１”である。このとき、継続時間記憶回路７２１は、加算器７２２からのカウント値を保持（記憶）し、局所クロック生成回路７１０からの局所クロック信号ＬＣｌｋに応じて、加算器７２２に出力する。また、カウント値に応じた時間は、混雑可能性継続時間Ｔｃを表す信号として混雑判定モジュール１０３に出力される。加算器７２２は、継続時間記憶回路７２１からのカウント値に対して１を加算して継続時間記憶回路７２１に出力する。このように、継続時間記憶回路７２１に記憶されるカウント値は、局所クロック信号ＬＣｌｋの立上りあるいは立下り遷移のたびに１が加算される。
【０１１１】
混雑可能性信号Ｐｃの値が“０”である。このとき、継続時間記憶回路７２１は、混雑可能性信号Ｐｃ“０”に応じて、カウント値（混雑可能性継続時間Ｔｃ）をリセットし、初期値の“０”に戻る。
【０１１２】
このように、混雑可能性継続時間カウンタ７２０は、混雑の可能性のある状態ではその混雑可能性継続時間Ｔｃを増やしていき、混雑の可能性のなくなったときに混雑可能性継続時間Ｔｃを“０”にする。
【０１１３】
混雑判定モジュール１０３は、比較器を備えている。
【０１１４】
混雑判定モジュール１０３には、混雑可能性継続時間カウンタ７２０から混雑可能性継続時間Ｔｃを表す信号が供給され、外部から設定時間Ｔｔｈを表す信号が供給される。混雑判定モジュール１０３は、その出力として混雑判定結果信号Ｃｇをハンドシェイク切換モジュール１０４に出力する。
【０１１５】
混雑可能性継続時間Ｔｃが設定時間Ｔｔｈ以上である（Ｔｃ≧Ｔｔｈ）。この場合、混雑判定モジュール１０３は、混雑判定結果信号Ｃｇの値を“１”にする。
【０１１６】
混雑可能性継続時間Ｔｃが設定時間Ｔｔｈ未満である（Ｔｃ＜Ｔｔｈ）。この場合、混雑判定モジュール１０３は、混雑判定結果信号Ｃｇの値を“０”にする。
【０１１７】
図９は、ハンドシェイク切換モジュール１０４の具体的な構成を示している。ハンドシェイク切換モジュール１０４は、２入力非対称型Ｃ素子８０１、８０８と、２入力非対称型Ｃ素子８０６と、３入力非対称型Ｃ素子８０２、８０５と、ＡＮＤゲート８０３と、ＯＲゲート８０７と、マルチプレクサ（ＭＵＸ）８０４とを備えている。
【０１１８】
ＯＲゲート８０７は、その第１入力にＡＮＤゲート８０３の出力である送信先要求信号Ｒｏが供給され、その第２入力にレジスタ１７２からの送信先応答信号Ａｏが供給され、その出力として出力信号を出力する。２入力非対称型Ｃ素子８０８は、その第１入力にレジスタ１７１からの送信元要求信号Ｒｉが供給され、その第２入力にマルチプレクサ８０４の出力である送信元応答信号Ａｉが供給され、その出力としてハンドシェイク実行中信号ＨＳを出力する。３入力非対称型Ｃ素子８０５は、その第１入力に混雑判定モジュール１０３からの混雑判定結果信号Ｃｇが供給され、その第２入力にハンドシェイク実行中信号ＨＳが供給され、その第３入力にＯＲゲート８０７の出力信号が供給され、その出力としてハンドシェイク先切換信号Ｓｗを出力する。
【０１１９】
マルチプレクサ８０４は、３つの入力端子Ｓ、Ｄ０、Ｄ１と１つの出力端子とを有している。入力端子Ｓには、ハンドシェイク先切換信号Ｓｗが供給され、入力端子Ｄ０には、送信先応答信号Ａｏが供給され、入力端子Ｄ１には、データ破棄モジュール１９９からの破棄応答信号Ａｅが供給される。マルチプレクサ８０４は、入力端子Ｓに供給されるハンドシェイク先切換信号Ｓｗの値が“０”である場合、入力端子Ｄ０に供給される送信先応答信号Ａｏを送信元応答信号Ａｉとして出力する。マルチプレクサ８０４は、入力端子Ｓに供給されるハンドシェイク先切換信号Ｓｗの値が“１”である場合、入力端子Ｄ１に供給される破棄応答信号Ａｅを送信元応答信号Ａｉとして出力する。
【０１２０】
２入力非対称型Ｃ素子８０１は、その第１入力に送信元要求信号Ｒｉが供給され、その第２入力にハンドシェイク先切換信号Ｓｗが供給され、その出力として出力信号を出力する。３入力非対称型Ｃ素子８０２は、その第１入力に送信元要求信号Ｒｉが供給され、その第２入力にハンドシェイク先切換信号Ｓｗが反転されて供給され、その第３入力に送信先応答信号Ａｏが反転されて供給され、その出力として出力信号を出力する。ＡＮＤゲート８０３は、その第１入力に２入力非対称型Ｃ素子８０１の出力信号が供給され、その第２入力に３入力非対称型Ｃ素子８０２の出力信号が供給され、その出力として送信先要求信号Ｒｏを出力する。２入力非対称型Ｃ素子８０６は、その第１入力に送信元要求信号Ｒｉが供給され、その第２入力にハンドシェイク先切換信号Ｓｗが供給され、その出力として破棄要求信号Ｒｅをデータ破棄モジュール１９９に出力する。
【０１２１】
上記のＣ素子とは、入力信号の待合せを行い、入力信号の状態が所定の条件を満たしたときに出力信号を遷移させ、入力信号の状態が所定の条件を満たしていないときに出力信号を維持する回路であり、入力信号数や待合せ条件によって複数の種類が存在する。
【０１２２】
図１０Ａは、２入力非対称型Ｃ素子８０１、８０８である素子１００１を示している。図１０Ｂは、図１０Ａの論理回路１００２による実現例を示している。図１０Ｃは、図１０Ｂの論理回路１００２の動作を示す真理値表１００３である。素子１００１は、第１、２入力にそれぞれ入力信号Ａ、Ｂが供給され、その出力として出力信号Ｙを出力する場合、ＡＮＤゲートとＯＲゲートから成る論理回路１００２により実現され、真理値表１００３に示されるように動作する。
【０１２３】
ＯＲゲートは、その第１入力に入力信号Ａが供給され、その第２入力にＡＮＤゲートの出力が供給され、その出力として出力信号Ｙを出力する。ＡＮＤゲートは、その第１入力に入力信号Ｂが供給され、その第２入力にＯＲゲートの出力が供給される。ここで、出力信号ＹがフィードバックされてＡＮＤゲートへ入力されるため、ＡＮＤゲートの第２入力に供給される出力信号Ｙを入力信号Ｙ（ｔ−１）、ＯＲゲートの出力信号Ｙを出力信号Ｙ（ｔ）と区別して表記する。
【０１２４】
入力信号Ａ、Ｂの値がそれぞれ“０”、“０”であるものとする。このとき、入力信号Ｙ（ｔ−１）の値に関わらず、入力信号Ｂの値が“０”であるため、ＡＮＤゲートの出力信号の値は“０”となる。入力信号ＡとＡＮＤゲートの出力信号との値が“０”となることにより、出力信号Ｙ（ｔ）の値が“０”となる。
【０１２５】
入力信号Ａ、Ｂの値がそれぞれ“０”、“１”であるものとする。このとき、入力信号Ｂの値が“１”であるため、ＡＮＤゲートの出力信号は入力信号Ｙ（ｔ−１）と等しい値となる。入力信号Ａの値が“０”であるため、出力信号Ｙ（ｔ）は入力信号Ｙ（ｔ−１）と等しい値となる。つまり、論理回路１００２は、入力信号Ａ、Ｂの値がそれぞれ“０”、“１”であるとき、出力信号Ｙの状態を保持する。
【０１２６】
入力信号Ａ、Ｂの値がそれぞれ“１”、“０”又は“１”、“１”であるものとする。このとき、ＡＮＤゲートの出力信号の値に関わらず、入力信号Ａの値が“１”となることにより、出力信号Ｙ（ｔ）の値が“１”となる。このため、出力信号Ｙの値が“１”となる。
【０１２７】
図１１Ａは、２入力非対称型Ｃ素子８０６である素子１１０１を示している。図１１Ｂは、図１１Ａの論理回路１１０２による実現例を示している。図１１Ｃは、図１１Ｂの論理回路１１０２の動作を示す真理値表１１０３である。素子１１０１は、第１、２入力にそれぞれ入力信号Ａ、Ｂが供給され、その出力として出力信号Ｙを出力する場合、ＡＮＤゲートとＯＲゲートから成る論理回路１１０２により実現され、真理値表１１０３に示されるように動作する。この場合、図１１Ａ〜１１Ｃにおける入力信号Ａ、Ｂと出力信号Ｙは、動作を説明するために用いられ、図１０Ａ〜１０Ｃにおける信号とは異なる。
【０１２８】
ＡＮＤゲートは、その第１入力に入力信号Ａが供給され、その第２入力にＯＲゲートの出力が供給され、その出力として出力信号Ｙを出力する。ＯＲゲートは、その第１入力に入力信号Ｂが供給され、その第２入力にＡＮＤゲートの出力が供給される。ここで、出力信号ＹがフィードバックされてＯＲゲートへ入力されるため、ＯＲゲートの第２入力に供給される出力信号Ｙを入力信号Ｙ（ｔ−１）、ＡＮＤゲートの出力信号Ｙを出力信号Ｙ（ｔ）と区別して表記する。
【０１２９】
入力信号Ａ、Ｂの値がそれぞれ“０”、“０”又は“０”、“１”であるものとする。このとき、ＯＲゲートの出力信号に関わらず、入力信号Ａの値が“０”となることにより、出力信号Ｙ（ｔ）の値が“１”となる。
【０１３０】
入力信号Ａ、Ｂの値がそれぞれ“１”、“０”であるものとする。このとき、入力信号Ｂの値が“０”であるため、ＯＲゲートの出力信号は入力信号Ｙ（ｔ−１）と等しい値となる。入力信号Ａの値が“１”であるため、出力信号Ｙ（ｔ）は入力信号Ｙ（ｔ−１）と等しい値となる。つまり、論理回路１１０２は、入力信号Ａ、Ｂの値がそれぞれ“１”、“０”であるとき、出力信号Ｙの状態を保持する。
【０１３１】
入力信号Ａ、Ｂの値がそれぞれ“１”、“１”であるものとする。このとき、入力信号Ｙ（ｔ−１）の値に関わらず、入力信号Ｂの値が“１”であるため、ＯＲゲートの出力信号の値は“１”となる。入力信号ＡとＯＲゲートの出力信号との値が“１”となることにより、出力信号Ｙ（ｔ）の値が“１”となる。
【０１３２】
図１２Ａは、３入力非対称型Ｃ素子８０２、８０５である素子１２１０を示している。図１２Ｂは、図１２Ａの論理回路１２２０による実現例を示している。図１２Ｃは、図１２Ｂの論理回路１２２０の動作を示す真理値表１２３０である。素子１２１０は、第１、２、３入力にそれぞれ入力信号Ａ、Ｂ、Ｃが供給され、その出力として出力信号Ｙを出力する場合、３つのＡＮＤゲート１２２１〜１２２３とＯＲゲート１２２４から成る論理回路１２２０により実現され、真理値表１２３０に示されるように動作する。この場合、図１２Ａ〜１２Ｃにおける入力信号Ａ、Ｂと出力信号Ｙは、動作を説明するために用いられ、図１０Ａ〜１０Ｃ、図１１Ａ〜１１Ｃにおける信号とは異なる。
【０１３３】
ＡＮＤゲート１２２１は、その第１入力に入力信号Ａが供給され、その第２入力に入力信号Ｂが供給される。ＡＮＤゲート１２２２は、その第１入力に入力信号Ｃが供給され、その第２入力にＯＲゲート１２２４の出力が供給される。ＡＮＤゲート１２２３は、その第１入力に入力信号Ｂが供給され、その第２入力にＯＲゲート１２２４の出力が供給される。ＯＲゲート１２２４は、その第１入力にＡＮＤゲート１２２１の出力が供給され、その第２入力にＡＮＤゲート１２２２の出力が供給され、その第３入力にＡＮＤゲート１２２３の出力が供給され、その出力として出力信号Ｙを出力する。ここで、出力信号ＹがフィードバックされてＡＮＤゲート１２２２、１２２３へ入力されるため、ＡＮＤゲート１２２２、１２２３の第２入力に供給される出力信号Ｙを入力信号Ｙ（ｔ−１）、ＯＲゲート１２２４の出力信号Ｙを出力信号Ｙ（ｔ）と区別して表記する。
【０１３４】
入力信号Ａ、Ｂ、Ｃの値がそれぞれ“０”、“０”、“０”又は“１”、“０”、“０”であるものとする。このとき、ＡＮＤゲート１２２１〜１２２３全てについて入力信号の値が“０”となるため、出力信号の値が“０”となる。ＯＲゲート１２２４の入力信号の値が全て“０”となることにより、出力信号Ｙ（ｔ）の値が“０”となる。
【０１３５】
入力信号Ａ、Ｂ、Ｃの値がそれぞれ“１”、“１”、“０”又は“１”、“１”、“１”であるものとする。このとき、入力信号Ａ、Ｂの値がそれぞれ“１”、“１”となるため、ＡＮＤゲート１２２１の出力信号の値が“１”となる。ＯＲゲート１２２４の第１入力に供給される信号の値が“１”となることにより、出力信号Ｙ（ｔ）の値が“１”となる。
【０１３６】
入力信号Ａ、Ｂ、Ｃの値がそれぞれ“０”、“０”、“１”と“０”、“１”、“０”と“０”、“１”、“１”と“１”、“０”、“１”のいずれかであるものとする。このとき、入力信号Ａ、Ｂの一方あるいは双方の値が“０”となるため、ＡＮＤゲート１２２１の出力信号の値が“０”となる。ＡＮＤゲート１２２２は、入力信号Ｃ、Ｙ（ｔ−１）の一方あるいは双方の値が“１”となり、ＡＮＤゲート１２２３は、入力信号Ｂ、Ｙ（ｔ−１）の一方あるいは双方の値が“１”となることによって、ＡＮＤゲート１２２２、１２２３の出力信号は入力信号Ｙ（ｔ−１）と等しくなる。このため、ＯＲゲート１２２４の出力信号Ｙ（ｔ）は入力信号Ｙ（ｔ−１）と等しくなる。つまり、論理回路１２２０は、入力信号Ａ、Ｂ、Ｃの値がそれぞれ“０”、“０”、“１”と“０”、“１”、“０”と“０”、“１”、“１”と“１”、“０”、“１”のいずれかであるとき、出力信号Ｙの状態を保持する。
【０１３７】
図８のハンドシェイク切換モジュール１０４は、図１０Ａ〜１０Ｃの２入力非対称型Ｃ素子８０１、８０８と図１１Ａ〜１１Ｃの２入力非対称型Ｃ素子と図１２Ａ〜１２Ｃの３入力非対称型Ｃ素子を用いることにより、ハンドシェイク・プロトコルに違反することなく、送信元レジスタ（レジスタ１７１）と送信先レジスタ（レジスタ１７２）とデータ破棄モジュール１９９の間でのハンドシェイクの切換を行うことが可能となる。
【０１３８】
以下、ハンドシェイク切換モジュール１０４の内部の信号のうち、３入力非対称型Ｃ素子８０５の出力信号をハンドシェイク先切換信号Ｓｗと称し、２入力非対称型Ｃ素子８０８の出力信号をハンドシェイク実行中信号ＨＳと称する。ハンドシェイク先切換信号Ｓｗは、その値が“０”である場合、ハンドシェイク先が送信先レジスタであることを示しており、その値が“１”である場合、ハンドシェイク先がデータ破棄モジュール１９９であることを示している。ハンドシェイク実行中信号ＨＳは、その値が“０”である場合、送信元レジスタとのハンドシェイクが完了しており次のハンドシェイクを待機している状態を示しており、その値が“０”である場合、送信元レジスタとのハンドシェイクが実行中である状態を示している。
【０１３９】
ハンドシェイク切換モジュール１０４の動作について詳細に説明する。
【０１４０】
初期状態において、送信元要求信号Ｒｉ、送信元応答信号Ａｉ、送信先要求信号Ｒｏ、送信先応答信号Ａｏ、データ破棄要求信号Ｒｅ、破棄応答信号Ａｅの値が“０”であり、ハンドシェイク実行中信号ＨＳの値が“０”であり、ハンドシェイク先切換信号Ｓｗの値が“０”、混雑判定結果信号Ｃｇの値が“０”である（図６ＡのステップＳ９００）。以下に示す信号において、否定演算子の記号を「〜」と表記し、論理和演算子の記号を「｜」と表記する。
【０１４１】
まず、送信元要求信号Ｒｉの値が“１”であるものとする（図６ＡのステップＳ９０１で「Ｙ」）。このとき、２入力非対称型Ｃ素子８０８の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、送信元応答信号Ａｉの値がそれぞれ“１”、“０”となるため、２入力非対称型Ｃ素子８０８の出力であるハンドシェイク実行中信号ＨＳの値が“１”となる。
【０１４２】
２入力非対称型Ｃ素子８０１の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“１”、“０”となるため、２入力非対称型Ｃ素子８０１の出力信号の値が“１”となる。３入力非対称型Ｃ素子８０２の第１、２、３入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗ〜、送信先応答信号Ａｏ〜の値がそれぞれ“１”、“１”、“１”となるため、３入力非対称型Ｃ素子８０２の出力信号の値が“１”となる。２入力非対称型Ｃ素子８０１、３入力非対称型８０２の出力信号の値が共に“１”となるため、ＡＮＤゲート８０３から出力される送信先要求信号Ｒｏの値が“１”となる（ステップＳ９０２）。
【０１４３】
２入力非対称型Ｃ素子８０６の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“１”、“０”であるため、２入力非対称型Ｃ素子８０６の出力信号の値が“０”のまま保持され、データ破棄要求信号Ｒｅの値が“０”のままとなる。ここで、ＯＲゲート８０７の第１、２入力に供給される、即ち、送信先要求信号Ｒｏ、送信先応答信号Ａｏの値がそれぞれ“１”、“０”となるため、ＯＲゲート８０７の出力信号の値が“１”となる。この場合、ＯＲゲート８０７の出力信号は、送信先要求信号Ｒｏと送信先応答信号Ａｏとの論理和であるＲｏ｜Ａｏにより表される。また、３入力非対称型Ｃ素子８０５の第１、２、３入力に供給される信号、即ち、混雑判定結果信号Ｃｇ、ハンドシェイク実行中信号ＨＳ、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値がそれぞれ“０”、“１”、“１”となる。この場合、３入力非対称型Ｃ素子８０５の出力であるハンドシェイク先切換信号Ｓｗの値が“０”のままとなる。
【０１４４】
送信先要求信号Ｒｏの値が“１”になっても、送信先応答信号Ａｏの値が“０”のままである間は（ステップＳ９０３で「Ｎ」）、その間に、混雑可能性検出モジュール１０１が混雑可能性を検出して混雑可能性信号Ｐｃの値を“１”にする（ステップＳ９１３）。一方、混雑可能性継続時間計測モジュール１０２で混雑可能性継続時間Ｔｃを加算し、混雑判定モジュール１０３が設定時間Ｔｔｈ未満であると判定している間に（ステップＳ９１４）、送信先レジスタで混雑が起き、送信先応答信号Ａｏの値が“１”となった場合（ステップＳ９０３で「Ｙ」）、混雑判定結果信号Ｃｇの値が“０”のままとなる。その間に、混雑可能性検出モジュール１０１は、混雑可能性を検出しないため、混雑可能性信号Ｐｃの値を“０”にして（ステップＳ９１１）、混雑可能性継続時間計測モジュール１０２は、混雑可能性継続時間Ｔｃの値を“０”にリセットする（ステップＳ９１２）。
【０１４５】
送信先応答信号Ａｏの値が“１”となることにより、３入力非対称型Ｃ素子８０２の第１、２、３入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗ〜、送信先応答信号Ａｏ〜の値がそれぞれ“１”、“１”、“０”となる。この場合、３入力非対称型Ｃ素子８０２の出力信号の値が“１”のままであるため、ＡＮＤゲート８０３から出力される送信先要求信号Ｒｏの値が“１”のまま維持される。また、ハンドシェイク先切換信号Ｓｗの値が“０”のままであるため、マルチプレクサ８０４の出力である送信元応答信号Ａｉの値は、送信先応答信号Ａｏの値“１”と同じ“１”となる（ステップＳ９０４）。
【０１４６】
送信元応答信号Ａｉの値が“１”となることにより、送信元レジスタにより送信先要求信号Ｒｉの値が“０”となる（ステップＳ９０５で「Ｙ」）。このとき、２入力非対称型Ｃ素子８０１の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“０”、“０”となるため、２入力非対称型Ｃ素子８０１の出力信号の値が“０”となる。３入力非対称型Ｃ素子８０２の第１、２、３入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗ〜、送信先応答信号Ａｏ〜の値がそれぞれ“０”、“１”、“０”となるが、３入力非対称型Ｃ素子８０２の出力信号の値が“１”のままとなる。このため、ＡＮＤゲート８０３から出力される送信先要求信号Ｒｏの値が“０”となる（ステップＳ９０６）。
【０１４７】
また、２入力非対称型Ｃ素子８０８の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、送信元応答信号Ａｉの値がそれぞれ“０”、“１”と変化するが、２入力非対称型Ｃ素子８０８の出力であるハンドシェイク実行中信号ＨＳの値が“１”のまま維持される。
【０１４８】
送信先要求信号Ｒｏの値が“０”になることにより、送信先レジスタからの送信先応答信号Ａｏの値が“０”となる（ステップＳ９０７で「Ｙ」）。このとき、ハンドシェイク先切換信号Ｓｗの値が“０”のままであるため、マルチプレクサ８０４の出力である送信元応答信号Ａｉの値は、送信先応答信号Ａｏの値“０”と同じ“０”となり（ステップＳ９０８）、初期状態へ戻る（ステップＳ９００）。
【０１４９】
以上のように、送信先レジスタで混雑が起こらなければ、ハンドシェイク切換モジュール１０４は、送信元レジスタと送信先レジスタの間でハンドシェイクを行う。
【０１５０】
次に、ハンドシェイク切換モジュール１０４の動作として、送信先レジスタで混雑が起こる場合の動作について詳細に説明する。
【０１５１】
まず、送信元要求信号Ｒｉの値が“１”であるものとする（図６ＡのステップＳ９０１で「Ｙ」）。このとき、２入力非対称型Ｃ素子８０８の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、送信元応答信号Ａｉの値がそれぞれ“１”、“０”となるため、２入力非対称型Ｃ素子８０８の出力であるハンドシェイク実行中信号ＨＳの値が“１”となる。
【０１５２】
２入力非対称型Ｃ素子８０１の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“１”、“０”となるため、２入力非対称型Ｃ素子８０１の出力信号の値が“１”となる。３入力非対称型Ｃ素子８０２の第１、２、３入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗ〜、送信先応答信号Ａｏ〜の値がそれぞれ“１”、“１”、“１”となるため、３入力非対称型Ｃ素子８０２の出力信号の値が“１”となる。２入力非対称型Ｃ素子８０１、３入力非対称型８０２の出力信号の値が共に“１”となるため、ＡＮＤゲート８０３から出力される送信先要求信号Ｒｏの値が“１”となる（ステップＳ９０２）。
【０１５３】
２入力非対称型Ｃ素子８０６の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“１”、“０”であるため、２入力非対称型Ｃ素子８０６の出力信号の値が“０”のまま保持され、データ破棄要求信号Ｒｅの値が“０”のままとなる。ここで、ＯＲゲート８０７の第１、２入力に供給される、即ち、送信先要求信号Ｒｏ、送信先応答信号Ａｏの値がそれぞれ“１”、“０”となるため、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値が“１”となる。また、３入力非対称型Ｃ素子８０５の第１、２、３入力に供給される信号、即ち、混雑判定結果信号Ｃｇ、ハンドシェイク実行中信号ＨＳ、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値がそれぞれ“０”、“１”、“１”となる。この場合、３入力非対称型Ｃ素子８０５の出力であるハンドシェイク先切換信号Ｓｗの値が“０”のままとなる。
【０１５４】
送信先要求信号Ｒｏの値が“１”になったことに対して、送信先応答信号Ａｏの値が“０”のままであるとき（ステップＳ９０３で「Ｎ」）、混雑可能性検出モジュール１０１と混雑可能性継続時間計測モジュール１０２と混雑判定モジュール１０３の動作により、混雑判定結果信号Ｃｇの値が“１”となったものとする（ステップＳ９１３、Ｓ９１４で「Ｙ」、Ｓ９１９）。
【０１５５】
このとき、３入力非対称型Ｃ素子８０５の第１、２、３入力に供給される信号、即ち、混雑判定結果信号Ｃｇ、ハンドシェイク実行中信号ＨＳ、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値がそれぞれ“１”、“１”、“１”となるため、３入力非対称型Ｃ素子８０５の出力であるハンドシェイク先切換信号Ｓｗの値が“１”となる。これにより、２入力非対称型Ｃ素子８０６の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“１”、“１”となるため、２入力非対称型Ｃ素子８０６の出力であるデータ破棄要求信号Ｒｅの値が“１”となる（ステップＳ９２２）。
【０１５６】
データ破棄要求信号Ｒｅの値が“１”になったことに対して、破棄応答信号Ａｅの値が“１”となると（ステップＳ９２３で「Ｙ」）、ハンドシェイク先切換信号Ｓｗの値が“１”となっている。このため、マルチプレクサ８０４の出力である送信元応答信号Ａｉの値は、破棄応答信号Ａｅの値“１”と同じ“１”となる（ステップＳ９２４）。
【０１５７】
送信元応答信号Ａｉの値が“１”に対して、送信元レジスタが送信元要求信号Ｒｉの値を“０”とするとき（ステップＳ９２５で「Ｙ」）、２入力非対称型Ｃ素子８０１の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“０”、“１”となるため、２入力非対称型Ｃ素子８０１の出力信号の値が“１”が維持される。３入力非対称型Ｃ素子８０２の第１、２、３入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗ〜、送信先応答信号Ａｏ〜の値がそれぞれ“１”、“０”、“１”となるため、３入力非対称型Ｃ素子８０２の出力信号の値が“１”が維持される。このため、ＡＮＤゲート８０３の出力である送信先要求信号Ｒｏの値が“１”のまま維持される。その一方で、２入力非対称型Ｃ素子８０６の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“０”、“１”となるため、２入力非対称型Ｃ素子８０６の出力であるデータ破棄要求信号Ｒｅの値が“０”となる（ステップＳ９２６）。
【０１５８】
データ破棄要求信号Ｒｅの値が“０”となったことに対して、破棄応答信号Ａｅの値が“０”となると（ステップＳ９２７で「Ｙ」）、ハンドシェイク先切換信号Ｓｗの値が“１”となっている。このため、マルチプレクサ８０４の出力である送信元応答信号Ａｉの値は、破棄応答信号Ａｅの値“０”と同じ“０”として出力する（ステップＳ９２８）。
【０１５９】
送信元応答信号Ａｉの値が“０”となることにより、２入力非対称型Ｃ素子８０８の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、送信元応答信号Ａｉの値がそれぞれ“０”、“０”となるため、２入力非対称型Ｃ素子８０８の出力であるハンドシェイク実行中信号ＨＳの値が“０”となり、送信元レジスタとデータ破棄モジュール１９９との間のハンドシェイクを完了する。このハンドシェイクと並行して送信元レジスタから転送されるデータを受信するレジスタがないため、このデータは破棄される。
【０１６０】
ここで、送信先レジスタでの混雑が解消されず、送信先応答信号Ａｏの値が“０”のままであるとき（ステップＳ９３３で「Ｎ」）、送信先要求信号Ｒｏの値が“１”のままであるため、ＯＲゲート８０７の出力信号の値は“１”のままである。３入力非対称型Ｃ素子８０５の第１、２、３入力に供給される信号、即ち、混雑判定結果信号Ｃｇ、ハンドシェイク実行中信号ＨＳ、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値がそれぞれ“１”、“０”、“１”となり、３入力非対称型Ｃ素子８０５の出力であるハンドシェイク先切換信号Ｓｗの値が“１”のままとなる。
【０１６１】
送信先応答信号Ａｏの値が“０”のままであるときに、新たに破棄すべきデータが送信元レジスタから転送されて送信元要求信号Ｒｉの値が“１”となったものとする（ステップＳ９３１で「Ｙ」）。このとき、２入力非対称型Ｃ素子８０８の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、送信元応答信号Ａｉの値がそれぞれ“１”、“０”となるため、２入力非対称型Ｃ素子８０８の出力であるハンドシェイク実行中信号がＨＳの値が“１”となる。２入力非対称型Ｃ素子８０１の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“１”、“１”となるため、２入力非対称型Ｃ素子８０１の出力信号の値が“１”のままとなる。２入力非対称型Ｃ素子８０１、３入力非対称型８０２の出力信号の値が共に“１”となるため、ＡＮＤゲート８０３から出力される送信先要求信号Ｒｏの値が“１”となる。２入力非対称型Ｃ素子８０６の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“１”、“１”であるため、２入力非対称型Ｃ素子８０６の出力であるデータ破棄要求信号Ｒｅの値が“１”となる（ステップＳ９２２）。
【０１６２】
ＯＲゲート８０７の第１、２入力に供給される、即ち、送信先要求信号Ｒｏ、送信先応答信号Ａｏの値がそれぞれ“１”、“０”のままであるため、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値は“１”のままとなる。３入力非対称型Ｃ素子８０５の第１、２、３入力に供給される信号、即ち、混雑判定結果信号Ｃｇ、ハンドシェイク実行中信号ＨＳ、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値がそれぞれ“１”、“１”、“１”となる。この場合、３入力非対称型Ｃ素子８０５の出力であるハンドシェイク先切換信号Ｓｗの値が“１”のままとなる。
【０１６３】
以降の送信元レジスタとデータ破棄モジュール１９９との間でのハンドシェイクは前述と同様に実行される（ステップＳ９２３〜Ｓ９２８）。
【０１６４】
送信元レジスタとデータ破棄モジュール１９９との間のハンドシェイクが完了したときに、送信先レジスタでの混雑が解消されて送信先応答信号Ａｏの値が“１”となっているものとする（ステップＳ９３３で「Ｙ」）。このとき、３入力非対称型Ｃ素子８０２の第１、２、３入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗ〜、送信先応答信号Ａｏ〜の値がそれぞれ“１”、“０”、“０”となるため、３入力非対称型Ｃ素子８０２の出力信号の値が“０”となり、ＡＮＤゲート８０３から出力される送信先要求信号Ｒｏの値が“０”となる（ステップＳ９３６）。
【０１６５】
ここで、送信先応答信号Ａｏの値が“１”であるため、混雑可能性検出モジュール１０１と混雑可能性継続時間計測モジュール１０２と混雑判定モジュール１０３の動作により、混雑判定結果信号Ｃｇの値が“０”となったものとする（ステップＳ９４１、Ｓ９４２、Ｓ９４９）。
【０１６６】
このとき、送信先要求信号Ｒｏ、送信先応答信号Ａｏの値がそれぞれ“０”、“１”となるが、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値は“１”のままとなる。また、３入力非対称型Ｃ素子８０５の第１、２、３入力に供給される信号、即ち、混雑判定結果信号Ｃｇ、ハンドシェイク実行中信号ＨＳ、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値がそれぞれ“０”、“０”、“１”となるため、３入力非対称型Ｃ素子８０５の出力であるハンドシェイク先切換信号Ｓｗの値が“１”のまま維持される。
【０１６７】
ここで、送信先要求信号Ｒｏの値が“０”に対して、送信先応答信号Ａｏの値が“１”のままであるとき（ステップＳ９２３で「Ｎ」）、新たに破棄すべきデータが送信元レジスタから転送されて送信元要求信号Ｒｉの値が“１”となったものとする（ステップＳ９２１で「Ｙ」）。このとき、２入力非対称型Ｃ素子８０８の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、送信元応答信号Ａｉの値がそれぞれ“１”、“０”となるため、２入力非対称型Ｃ素子８０８の出力であるハンドシェイク実行中信号ＨＳの値が“１”となる。２入力非対称型Ｃ素子８０１の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“１”、“１”となるため、２入力非対称型Ｃ素子８０１の出力信号の値が“１”となる。３入力非対称型Ｃ素子８０２の第１、２、３入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗ〜、送信先応答信号Ａｏ〜の値がそれぞれ“１”、“０”、“０”のままとなるため、３入力非対称型Ｃ素子８０２の出力信号の値が“０”のままとなる。２入力非対称型Ｃ素子８０１、３入力非対称型８０２の出力信号の一方の値が“０”のままであるため、ＡＮＤゲート８０３から出力される送信先要求信号Ｒｏの値が“０”のままとなる。２入力非対称型Ｃ素子８０６の第１、２入力に供給される信号、即ち、送信元要求信号Ｒｉ、ハンドシェイク先切換信号Ｓｗの値がそれぞれ“１”、“１”であるため、２入力非対称型Ｃ素子８０６の出力であるデータ破棄要求信号Ｒｅの値が“１”となる（ステップＳ９２２）。
【０１６８】
送信先要求信号Ｒｏ、送信先応答信号Ａｏの値がそれぞれ“０”、“１”のままであるため、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値は“１”のままとなる。３入力非対称型Ｃ素子８０５の第１、２、３入力に供給される信号、即ち、混雑判定結果信号Ｃｇ、ハンドシェイク実行中信号ＨＳ、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値がそれぞれ“０”、“１”、“１”となり、３入力非対称型Ｃ素子８０５の出力であるハンドシェイク先切換信号Ｓｗの値が“１”のままとなる。以降の送信元レジスタとデータ破棄モジュールとの間でのハンドシェイクは前述と同様に実行される（ステップＳ９２３〜Ｓ９２８）。
【０１６９】
送信元レジスタとデータ破棄モジュール１９９との間のハンドシェイクが完了したときに、送信先要求信号Ｒｏの値が“０”に対して送信先応答信号Ａｏの値が“０”になったものとする（ステップＳ９２３で「Ｙ」）。このとき、送信先要求信号Ｒｏ、送信先応答信号Ａｏの値がそれぞれ“０”、“０”となるため、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値は“０”となる。３入力非対称型Ｃ素子８０５の第１、２、３入力に供給される信号、即ち、混雑判定結果信号Ｃｇ、ハンドシェイク実行中信号ＨＳ、ＯＲゲート８０７の出力信号Ｒｏ｜Ａｏの値がそれぞれ“０”、“０”、“０”となるため、３入力非対称型Ｃ素子８０５の出力であるハンドシェイク先切換信号Ｓｗの値が“０”となり、送信先レジスタとのハンドシェイクも完了して、初期状態に戻る（ステップＳ９００）。
【０１７０】
以上の説明により、本発明の第１実施形態による非同期式論理回路１００によれば、混雑可能性検知モジュール１０１は、送信先レジスタ（レジスタ１７２）へデータ記憶要求（送信先要求信号Ｒｏ“１”）が行われていながらも、送信先レジスタから記憶完了の応答がない場合（送信先応答信号Ａｏ“０”）、送信元レジスタ（レジスタ１７１）から送信先レジスタへのデータ転送経路が混雑している可能性がある状態（混雑可能性信号Ｐｃ“１”）を検知する。混雑可能性継続時間計測モジュール１０２は、この状態の継続時間である混雑可能性継続時間Ｔｃを測定する。混雑判定モジュール１０３は、混雑可能性継続時間Ｔｃが設定時間Ｔｔｈを超えた場合、データ転送経路が混雑していると判定する。このように、非同期式のレジスタによるデータ転送における混雑を検出することができる。
【０１７１】
また、本発明の第１実施形態による非同期式論理回路１００によれば、ハンドシェイク切換モジュール１０４は、データ転送経路が混雑していない場合、送信元レジスタから第１の転送先（送信先レジスタ）にデータが転送されるように、送信元レジスタと第１の転送先との間のハンドシェイクを継続させる。また、データ転送経路が混雑している場合、送信元レジスタと第２の転送先との間のハンドシェイクに切り替える。この場合、第２の転送先のデータ破棄モジュール１９９は、データ破棄要求信号Ｒｅ（データ破棄要求）に応じて、データ破棄完了通知を示す破棄応答信号Ａｅをハンドシェイク切換モジュール１０４に出力する。ハンドシェイク切換モジュール１０４は、データ転送経路の混雑が解消された場合、送信元レジスタから第１の転送先にデータが転送されるように、送信元レジスタと第１の転送先との間のハンドシェイクに戻す。このように、ハンドシェイク・プロトコルに違反することなく、通常のデータ転送と混雑時のデータ転送を切り替えることができる。これにより、通信容量を有効に利用することができる。
【０１７２】
なお、本発明の第１実施形態による非同期式論理回路１００では、上述の構成に限定されない。
【０１７３】
例えば、混雑判定モジュール１０３は、設定時間Ｔｔｈを記憶する記憶モジュールを更に備え、その比較器が、混雑可能性継続時間Ｔｃを表す信号を混雑可能性継続時間計測モジュール１０２から受信し、混雑可能性継続時間Ｔｃと、記憶モジュールに記憶された設定時間Ｔｔｈとを比較してもよい。
【０１７４】
また、データ転送経路の混雑時に、送信先レジスタ（レジスタ１７２）へデータ記憶要求が行われたときに、送信先レジスタから記憶完了の応答が行われていない状態だけでなく、送信先レジスタへデータ記憶要求の取下げが行われたときに、送信先レジスタから記憶完了の応答の取下げが行われていない状態でも、データの転送を一時停止するようなハンドシェイク・プロトコルに従う場合も考えられる。この場合、混雑可能性検出モジュール１０１は、上述のように、ＡＮＤゲートとＮＯＴゲートで構成されているが、図１３に示されるように、ＸＯＲゲートで構成してもよい。これにより、送信先要求信号Ｒｏ、送信先応答信号Ａｏや送信先要求信号Ｒｏ、送信先応答信号Ａｏの値がそれぞれ“１”、“０”の場合だけでなく、送信先要求信号Ｒｏ、送信先応答信号Ａｏの値がそれぞれ“０”、“１”の場合でも、ＸＯＲゲートの出力である混雑可能性信号Ｐｃの値が“１”となり、その他の状態では混雑可能性信号Ｐｃの値が“０”となる。
【０１７５】
（第２実施形態）
図１４は、本発明の第２実施形態による非同期式論理回路１４００の構成を示すブロック図である。第２実施形態では、第１実施形態と重複する説明を省略する。
【０１７６】
本発明の第１実施形態による非同期式論理回路１００において、混雑可能性検出モジュール１０１とハンドシェイク切換モジュール１０４は、同一対のレジスタ間に接続されている。即ち、本発明の第１実施形態による非同期式論理回路１００では、非同期式コア間接続回路の非同期式のレジスタであるレジスタ１７１とレジスタ１７２の間に接続されている。しかし、これに限定されない。
【０１７７】
本発明の第２実施形態による非同期式論理回路１４００において、混雑可能性検出モジュール１０１とハンドシェイク切換モジュール１０４は、異なる対のレジスタ間に接続されてもよい。この場合、非同期式コア間接続回路の非同期式のレジスタとして、レジスタ１７１とレジスタ１７２の間に、レジスタ１７１、１７２と同じ機能であるレジスタ１４７２が設けられている。レジスタ１４７２は、記憶素子１４８２と記憶制御回路１４９２とを備えている。非同期式のレジスタが、前述した非同期式コア間接続回路５００（図４参照）の非同期式のレジスタである場合、例えば、記憶素子１８１、記憶制御回路１９１は、それぞれ、前述のフリップ・フロップ３１０、記憶制御回路３２０に対応する。記憶素子１４８２、記憶制御回路１４９２は、それぞれ、前述のフリップ・フロップ３１１、記憶制御回路３２１に対応する。記憶素子１８２、記憶制御回路１９２は、それぞれ、前述のフリップ・フロップ３１２、記憶制御回路３２２に対応する。混雑可能性検出モジュール１０１は、レジスタ１４７２とレジスタ１７２の間に接続され、ハンドシェイク切換モジュール１０４は、レジスタ１７１とレジスタ１４７２の間に接続されている。
【０１７８】
第２実施形態の効果は、第１実施形態の効果と同じである。
【０１７９】
（第３実施形態）
図１５は、本発明の第３実施形態による非同期式論理回路１５００の構成を示すブロック図である。第３実施形態では、第１実施形態と重複する説明を省略する。
【０１８０】
本発明の第１実施形態による非同期式論理回路１００において、上述の第２の転送先は、データ破棄モジュール１９９を表している。データ破棄モジュール１９９は、ハンドシェイク切換モジュール１０４からのデータ破棄要求信号Ｒｅ“１”（データ破棄要求）に応じて、破棄応答信号Ａｅ“１”（データ破棄完了通知）をハンドシェイク切換モジュール１０４に送信している。しかし、これに限定されない。
【０１８１】
本発明の第３実施形態による非同期式論理回路１５００において、上述の第２の転送先は、送信先レジスタ１７２（第１のレジスタ）とは異なる第２のレジスタでもよい。この場合、本発明の第３実施形態による非同期式論理回路１５００は、データ破棄モジュール１９９に代えて、第２のレジスタであるレジスタ１５９９に接続されている。レジスタ１５９９は、記憶素子１５８３と記憶制御回路１５９３とを備えている。
【０１８２】
レジスタ１５９９は、ハンドシェイク切換モジュール１０４からのデータ破棄要求信号Ｒｅ“１”（データ破棄要求）に応じて、レジスタ１７１に記憶されたデータを記憶素子１５８３に記憶する。このとき、レジスタ１５９９は、データ破棄完了通知を示す破棄応答信号Ａｅをハンドシェイク切換モジュール１０４に出力する。この場合、破棄応答信号Ａｅの値は“１”を表し、データ破棄完了通知は、レジスタ１７１に記憶されたデータを他のデータ転送経路に転送したことを表している。
【０１８３】
本発明の第３実施形態による非同期式論理回路１５００によれば、データ転送経路が混雑していない場合、送信元レジスタ（レジスタ１７１）から第１の転送先である送信先レジスタ（レジスタ１７２）にデータが転送されるように、送信元レジスタと第１の転送先との間のハンドシェイクを継続させて、データ転送経路が混雑している場合、送信元レジスタに記憶されたデータが第２転送先にデータが転送されるように、送信元レジスタと第２の転送先との間のハンドシェイクに切り替える。この場合、第２の転送先は、レジスタ１５９９であるため、データは、レジスタ１５９９に転送される。データ転送経路の混雑が解消された場合、送信元レジスタから第１の転送先にデータが転送されるように、送信元レジスタと第１の転送先との間のハンドシェイクに戻す。このように、ハンドシェイク・プロトコルに違反することなく、通常のデータ転送と混雑時のデータ転送を切り替えることができる。これにより、通信容量を有効に利用することができる。
【０１８４】
本発明は、プロセッサや演算回路などのコア（機能ブロック）の間でデータ転送を行う回路といった用途に適用できる。
【０１８５】
［応用例１］
図１６は、図５の非同期式論理回路１００を図４の非同期式コア間接続回路５００に適用した場合の非同期式コア間接続回路１８００の構成を示している。
【０１８６】
前述のように、非同期式コア間接続回路５００では、マスタＡ５０１からスレーブＡ５０２へのデータ５９１〜５９４の転送と、マスタＢ５０３からスレーブＢ５０４へのデータ５８１〜５８３の転送が行われている場合、後者の転送が非同期式調停回路５１２を占有している。このため、データ５９１〜５９４が非同期式調停回路５１２の直前で停止されている。データ５９１〜５９４の転送が進まないため、マスタＡ５０１は次の転送を行うことができなくなっている。
【０１８７】
一方、非同期式コア間接続回路１８００は、前述の非同期式コア間接続回路５００と、非同期式コア間接続回路５００の非同期式調停回路５１２の直前に接続された非同期式論理回路１００、データ破棄モジュール１９９を具備している。非同期式コア間接続回路１８００では、非同期式論理回路１００とデータ破棄モジュール１９９を用いることによって、マスタＢ５０３からスレーブＢ５０４の間でのデータ５８１〜５８３の転送が完了していなくても、マスタＡ５０１から送出されているデータ１８９１〜１８９４の破棄が可能となる。また、マスタＡ５０１は新たなデータ１８７１〜１８７３の転送を開始することが可能となる。従って、データ転送容量を有効に活用することが可能となる。
【０１８８】
［応用例２］
図１７は、図１５の非同期式論理回路１５００を図４の非同期式コア間接続回路５００に適用した場合の非同期式コア間接続回路１６００の構成を示している。
【０１８９】
非同期式コア間接続回路１６００は、前述の非同期式コア間接続回路５００と、非同期式コア間接続回路５００の非同期式調停回路５１２の直前に接続された非同期式論理回路１５００、レジスタ１５９９を具備している。レジスタ１５９９からマスタＡ５０１へのデータ返送経路を増設した場合、マスタＡ５０１からのデータ転送と、マスタＡ５０１へのデータ転送とを調停する必要がある。これを調停するために、非同期式コア間接続回路１６００は、更に、マスタＡ５０１とレジスタ１５９９との間に設けられた非同期式調停回路１６３１を具備している。非同期式コア間接続回路１６００では、非同期式論理回路１５００を用いることによって、非同期式コア間接続回路５００の混雑箇所からマスタＡ５０１へのデータ１６９１〜１６９４を返送して、マスタＡ５０１によりデータ１６９１〜１６９４の転送経路の再設定を行い、データ１６９１〜１６９４を非同期式分岐回路５１１と非同期式調停回路５２２と非同期式分岐回路５２３と非同期式調停回路５１４を経由してスレーブＡ５０２へ到達させることが可能となる。
【０１９０】
［応用例３］
図１８は、図１５の非同期式論理回路１５００を図４の非同期式コア間接続回路５００に適用した場合の非同期式コア間接続回路１７００の構成を示している。
【０１９１】
非同期式コア間接続回路１７００は、前述の非同期式コア間接続回路５００と、非同期式コア間接続回路５００の非同期式調停回路５１２の直前に接続された非同期式論理回路１５００、レジスタ１５９９を具備している。レジスタ１５９９からスレーブＡへのデータ返送経路を増設した場合、非同期式分岐回路５１１から非同期式調停回路５２２へのデータ転送と、レジスタ１５９９から非同期式調停回路５２２へのデータ転送とを調停する必要がある。これを調停するために、非同期式コア間接続回路１７００は、更に、レジスタ１５９９と非同期式調停回路５２２との間に設けられた非同期式調停回路１７３２を具備している。非同期式コア間接続回路１７００では、非同期式論理回路１５００を用いることによって、非同期式調停回路５１２での混雑を避けて、非同期式コア間接続回路５００の混雑箇所からスレーブＡ５０２への迂回路である非同期式調停回路１７３２と非同期式調停回路５２２と非同期式分岐回路５２３と非同期式調停回路５１４を経由してスレーブＡ５０２へ到達する経路へ、データ１７９１〜１７９４を迂回して転送することが可能となる。
【０１９２】
また、非同期式論理回路１００のうちの、混雑可能性検出モジュール１０１と混雑可能性継続時間計測モジュール１０２と混雑判定モジュール１０３のみを図４の非同期式コア間接続回路５００に適用して、混雑判定結果信号が混雑中を意味する状態となったときには、混雑箇所から送信元の方向へデータ転送経路を遡り、その経路上のレジスタを全てリセットする構成も可能である。
【０１９３】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１９４】
この出願は、２００９年１月１４日に出願された特許出願番号２００９−００５９７９号の日本特許出願に基づいており、その出願による優先権の利益を主張し、その出願の開示は、引用することにより、そっくりそのままここに組み込まれている。
【図１】
0005397783.tif 000002
【図２】
0005397783.tif 000003
【図３】
0005397783.tif 000004
【図４】
0005397783.tif 000005
【図５】
0005397783.tif 000006
【図６Ａ】
0005397783.tif 000007
【図６Ｂ】
0005397783.tif 000008
【図７】
0005397783.tif 000009
【図８】
0005397783.tif 000010
【図９】
0005397783.tif 000011
【図１０Ａ】
0005397783.tif 000012
【図１０Ｂ】
0005397783.tif 000013
【図１０Ｃ】
0005397783.tif 000014
【図１１Ａ】
0005397783.tif 000015
【図１１Ｂ】
0005397783.tif 000016
【図１１Ｃ】
0005397783.tif 000017
【図１２Ａ】
0005397783.tif 000018
【図１２Ｂ】
0005397783.tif 000019
【図１２Ｃ】
0005397783.tif 000020
【図１３】
0005397783.tif 000021
【図１４】
0005397783.tif 000022
【図１５】
0005397783.tif 000023
【図１６】
0005397783.tif 000024
【図１７】
0005397783.tif 000025
【図１８】
0005397783.tif 000026