(57)【要約】      （修正有）【課題】内部のデータ転送を管理するのにクロックを用いない要素、特にノードを備えた新規の大域的非同期ネットワークオンチップ構造を開発すること。【解決手段】本発明は、ネットワークオンチップ（ＮｏＣ）の分野に関連し、そのようなネットワーク内における、「送信／許可」式の非同期通信プロトコルを用いた要素間の伝送方法を考慮する。ネットワーク内の少なくとも１つのノードは、内部クロック無しで動作し、このノードが、各データパケットに関連付けられた優先チャネル情報に基づいて、同じ出力にルーティングされる２つのデータパケット間の転送階層を決定する。【選択図】図１
2006254450.tif 000002
【特許請求の範囲】
【請求項１】
非同期通信プロトコルを有するネットワークオンチップにおけるデータ伝送方法であって、このネットワークは１以上のノードと１以上のリソースを備え、各ノードには、１以上の入力制御装置に接続された１以上の入力と、１以上の出力制御装置に接続された１以上の出力とが設けられており、内部クロック無しで動作する少なくとも１つのノードが、同じ出力にルーティングされる２つのデータパケット間の転送階層を決定し、この階層の決定は、各データパケットに関連付けられた優先チャネル情報に基づいて行われ、この優先チャネル情報及びこのデータパケットは別のノード又はネットワークリソースから送出されたものであり、優先チャネル情報は、非同期通信プロトコルに従って第１の種類の同期信号によって伝送される、方法。
【請求項２】
優先チャネルが同一であるとき、ノードへの到達時間及び／又は到達の入力又はノードの到達した際の入力ポートに応じて、各パケットに優先順位を割り当てることにより転送階層の決定を行う、請求項１記載の方法。
【請求項３】
第１パケットがノードから出力されている途中であるが、「到来」パケットと呼ばれる第２のパケットより低い優先順位を有するとき、第１パケットからの出力を中断又は停止して第２パケットを優先的に出力する、請求項１記載の方法。
【請求項４】
各データパケットにルーティング情報を関連付け、通過する各ノードにこのルーティング情報の一部をアドレス指定する、請求項１記載の方法。
【請求項５】
ノードのルーティング情報をこのノードで読み出して使用し、未だ通過していないノードにアドレス指定された他のルーティング情報を、ネットワークにおけるデータパケットの次の宛先のために準備する、請求項４記載の方法。
【請求項６】
ルーティング情報がデータパケットの先頭に位置する、請求項４記載の方法。
【請求項７】
更に、通過したノードの入力制御装置にルーティング情報が記憶されることにより、入力制御装置から出力制御装置にデータを転送することができる、請求項４記載の方法。
【請求項８】
ノードが、出力を中断又は停止した第１パケットのルーティング情報を記憶する手段を用いる、請求項４記載の方法。
【請求項９】
第１の種類のデータ及び同期信号の受信及び許可の後、１以上のデータアイテムを受信するノードが、このようなデータの送信元である要素に対し、第２の種類の同期信号又は許可信号を更に送信する、請求項１記載の方法。
【請求項１０】
最高の優先チャネルに関連付けられたデータについては、ノードが第２の種類の同期信号又は許可信号を送信しない、請求項９記載の方法。
【請求項１１】
４段階プロトコル及び／又はマルチレールエンコーディングを用いて通信プロトコルの同期信号を実行する、請求項９記載の方法。
【請求項１２】
入力制御装置は、伝送されるデータパケットの先頭を受信するとき、データの伝送先である出力の出力制御装置にValidity信号と呼ばれる信号を送信し、このValidity信号が前記伝送データの優先チャネルに関するデータを含む、請求項１記載の方法。
【請求項１３】
出力制御装置は、Validity信号を受信した後、最高の優先順位のデータパケットに含まれないパケットに属するパケット要求の先頭を、同じ優先チャネルを有するデータパケットに属するパケット要求の先頭の待ち行列に組み込む、請求項１２記載の方法。
【請求項１４】
出力制御装置は、Validity信号を受信した後、データが優先チャネルに基づいて保存される入力制御装置のレジスタをモニタする、請求項１２又は１３記載の方法。
【請求項１５】
入力制御装置が優先チャネルデータを記憶して出力制御装置に転送する、請求項１ないし１２のいずれか１項記載の方法。
【請求項１６】
非同期通信プロトコルを有するネットワークオンチップを備えるデータ伝送デバイスであって、このネットワークは１以上のノードと１以上のリソースを備え、各ノードには、１以上の入力制御装置に接続された１以上の入力と、１以上の出力制御装置に接続された１以上の出力とが設けられ、少なくとも１つのノードが内部クロック無しで動作し、このノードの各入力制御装置が：
−  同じ出力にルーティングされる少なくとも２つのデータパケット間の転送階層を決定する手段であって、この階層の決定を、各データパケットに関連付けられた優先チャネル情報に基づいて行う手段、及び
−  優先チャネル情報及び別のノード又はネットワークリソースから送出されたデータパケットを含む同期信号を受信する手段
を備える方法。
【請求項１７】
転送階層を決定する手段は、優先チャネルが同一であるとき、ノードへの到達時間及び／又はノードへの入力又はノードへ到達した際の入力ポートに応じて各データパケットに優先順位を割り当てる手段を備える、請求項１６記載のデバイス。
【請求項１８】
第１パケットがノードから出力されている途中であるが、到来パケットと呼ばれる第２のパケットより低い優先順位を有するとき、第１パケットからの出力を中断又は停止して第２パケットを優先的に出力する手段を備える、請求項１６記載のデバイス。
【請求項１９】
各データパケットに関連付けられたルーティング情報をデコードする手段を備え、通過する各ノードにこのルーティング情報の一部をアドレス指定する、請求項１６記載のデバイス。
【請求項２０】
ノードに関するルーティング情報をこのノードで読み出す手段、及びネットワーク内のデータパケットの次の宛先のためのルーティング情報を準備する手段を備える、請求項１９記載のデバイス。
【請求項２１】
通過したノードの入力制御装置にルーティング情報を記憶することにより、入力制御装置から出力制御装置にデータを転送する手段を備える、請求項１９又は２０記載のデバイス。
【請求項２２】
非同期ノードが、出力を中断又は停止した第１パケットのルーティング情報を記憶する手段を有する、請求項１９記載のデバイス。
【請求項２３】
非同期ノードは更に、１以上のデータアイテムを受信したとき、これらデータの送信元である要素に対して許可信号を送信する手段を備え、許可信号は、データ及び対応する同期信号の両方からなるデータの受信及び許可の後に送信される、請求項１６記載のデバイス。
【請求項２４】
入力制御装置が、伝送されるデータパケットの先頭を受信するとき、データの伝送先である出力の出力制御装置にValidity信号と呼ばれる信号を送信し、このValidity信号が前記伝送データの優先チャネルに関するデータを含む、請求項１６記載のデバイス。
【請求項２５】
出力制御装置が、Validity信号を受信した後、最高の優先順位のデータパケットに含まれないパケットに属するパケット要求の先頭を、同じ優先チャネルを有するデータパケットに属するパケット要求の先頭の待ち行列に組み込む、請求項２４記載のデバイス。
【請求項２６】
出力制御装置が、Validity信号を受信した後、データが優先チャネルに基づいて保存される入力制御装置のレジスタをモニタする手段を備える、請求項２４又は２５記載のデバイス。
【請求項２７】
入力制御装置が、優先チャネルデータを記憶することにより出力制御装置にデータを転送する手段を備える、請求項１７ないし２６のいずれか１項記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークオンチップ（ＮｏＣ）の分野に関する。本発明は、クロックを使用せずに通信及び動作する、非同期ノードが設けられたネットワークオンチップ構造に関する。
【背景技術】
【０００２】
例えば、ネットワークオンチップが非特許文献１に提案された。特にこの文献は、マトリックス又はメッシュタイプのトポロジイを有する通信媒体を備えるネットワークオンチップアーキテクチャについて記載している。この通信媒体は、２つの異なるルーティングタイプの実現に使用できるルーティングノードを含む。第１のルーティングタイプを使用して、「遅延保証」時間と呼ばれる第１のタイプのサービスが提供され、このサービスでは、第１リソースから第２リソースにデータを渡すときに要する時間がほぼ一定である。第２タイプのルーティングを使用して、一般に「ベストエフォート」と呼ばれる第２タイプのサービスが提供され、このサービスでは、ルーティングノードを接続するネットワークリンクの容量の使用が最大になる。このアーキテクチャでは、通信媒体との接続は時間多重を使用するグローバルネットワーククロックが管理する。このようなアーキテクチャの使用は複雑であり、特にアーキテクチャの構成要素の配置ルートの決定及びアーキテクチャのクロックツリーの生成に関して複雑である。また、このようなネットワークの消費電力を制御すること、特にクロックツリーに起因する消費電力を制御することは難しい。
ルーティングノードが互いに非同期で通信する構成のネットワークオンチップが、非特許文献２に提案されている。このようなネットワークにおけるデータ伝送はまた、一般に「ワンホットエンコーディング」と呼ばれるエンコーディング方式を使用してエンコードされる。しかしながら、このネットワークは、作るのが難しい特殊ロジックを使用するという大きな不具合を有する。更に、このようなネットワークは異なるサービスタイプ、例えば遅延「保証」サービス、及び一般に「ベストエフォート」と呼ばれるサービスを使用しない。
非特許文献３及び４は、仮想チャネルを使用する非同期ネットワークオンチップにおけるサービス品質の管理方法を開示している。
【特許文献１】特開２００３−００００００号公報
【非特許文献１】Goossens等、"Trade offs in the design of a router both guaranteed and best-efforts service for networks on chip", Proceedings of DATE conference, 2003, 350-355
【非特許文献２】Brainbridge及びS. Furber、"Delay Insensitive System on Chip Interconnect Using 1 of 4 Data Encoding", Proceedings of International Symposium on Advanced Research in Asynchronous Circuits and Systems, March 2001, pages 118〜126
【非特許文献３】"Auality of Service (QoS) for Asynchronous On-Chip Networks", T. Felicijan, S.B. Furber, Formal Methods for Globally Asynchronous Locally Synchronous Architecture (FMGALS 2003) Pisa, Italy, Sept. 2003
【非特許文献４】"An Asynchronous On-Chip Network Router with Quality-of-Service (QoS), T. Felicijan, S.B. Furber, Support Proceedings IEEE International SOC Conference, Santa Clara, CA, Sept. 2004, pp.274-277, ISBN: 0-7803-8445-8
【非特許文献５】"A survey and comparison of wormhole routing techniques in Mesh networks, K.M. Al-Tawil and al., IEEE network, March-April 1997, pp38-45
【非特許文献６】、P.Vivetによる"A Quasi-Delay Insensitive Integrated circuit Design Methodology: Application to the Study and Design of a 16-Bit Asynchronous RISC Microprocessor" Thesis, Institut National Polytechnique in Grenole, 2001
【非特許文献７】A. J. Martinによる"Synthesis of asynchronous VLSI circuits", Caltech-CS-TR-93-28
【非特許文献８】A. V. Dinh Duc等による"TAST CAD tools: tutorial", Intern.  Symposium on Advanced research in Asynchronous Circuits and Systems ASYNC' 02, Manchester, UK, April 8〜11, 2002
【非特許文献９】A. V. Dinh Duc等による"Synthesis of QDI asynchronous circuits from DTL-stylePetri net, IWLS-02, 11th IEEE/ACM Int. Workshop on Logic and Synthesis, New Orleans, Louisiana, June 4〜7, 2002
【非特許文献１０】JB Rigaud等による"Modeling and Design of Asynchronous Priority Arbitrers for On-Chip Communication Systems in Com. Systems SOC Design Methodologies, edited y M. Roberts等、Kluwer Academic Publishers, July 2002, ISBN 1-4020-7148-5
【非特許文献１１】JB Rigaudによる"libraries specification for the synthesis of asynchronous circuits", thesis, INPG, 2002
【発明の開示】
【発明が解決しようとする課題】
【０００３】
内部のデータ転送を管理するのにクロックを用いない要素、特にノードを備えた新規の大域的非同期ネットワークオンチップ構造を開発する必要があるという問題が生じている。
このような構造は、例えば複数のリソース又は複数のデータ間の高速データ転送を優先させる必要があるかどうか、又は複数のリソース又は複数のデータ間のスループットを保証する必要があるかどうかによって、異なるタイプのサービスを実行する機能を備えることが好ましい。
【課題を解決するための手段】
【０００４】
本発明は、改良型のネットワークオンチップ構造を使用する。
第一に、本発明は、非同期通信プロトコルを有するネットワークオンチップにおけるデータ伝送方法に関する。このネットワークは１以上のノードと１以上のリソースを備え、各ノードは、１以上の入力制御装置に接続された１以上の入力と、１以上の出力制御装置に接続された１以上の出力とを備え、ノードの少なくとも１つは内部クロック無しで動作して同じ出力にルーティングされる２つのデータパケットの間の階層を決定し、この階層は各データパケットに付随する優先チャネル情報に基づいて決定され、この優先チャネル情報及びこのデータパケットは別のノード又はネットワークリソースから送出されたものであり、優先チャネル情報は前記非同期通信プロトコルに従って第１のタイプの同期信号により伝送される。
【０００５】
非同期通信プロトコルは、データ伝送を行うネットワークのリソース及びノードによって使用される高位の「送信（send）／許可（accept）」型プロトコルとすることができる。
第１のタイプの信号は、各基本データグループに付随するか、又は各基本データグループに関連する「send」タイプの信号であるか、或いはデータパケット中の「flit」である。
【発明を実施するための最良の形態】
【０００６】
本発明によれば、同期及びデータ伝送が非同期ノードにおいて局所的に行われる。
本発明によるネットワークオンチップ構造は、遅延の影響を受けにくく、且つ電源及び気温の変動に対して堅牢な非同期論理で実行される。
好ましくは、伝送の階層は、優先データチャネルが同一であるとき、各パケットに対し、ノードへの到着時刻及び／又は到着の入力時刻、或いはこのパケットがノードに到着するときに通過した入力ポートに応じて優先順位を割り当てることにより決定する。
【０００７】
特定の一実施形態によれば、ノードから出力されようとしている第１のパケットが、到来パケットと呼ばれる第２のパケットの優先順位より低い優先順位を有しているとき、第１パケットからの出力を中断又は停止して第２のパケットを優先的に出力することができる。このように、最高の優先チャネルにはデータの優先伝送がある。
ルーティング情報を、例えば指示データの順番付きリストの形式で、各データパケットに添付することができ、このルーティング情報、例えば指示データリストにまとめた指示データの一部は、通過する各ノードにアドレス指定される。
【０００８】
好ましくは、ノードのためのルーティング情報はこのノード内で読まれて使用され、未通過のノードにアドレス指定された他のルーティング情報は、ネットワーク内におけるデータパケットの次の目的地のために、例えば指示の順番付きリストをオフセットすることにより準備される。
ルーティング情報は好ましくはデータパケットの先頭に位置する。
【０００９】
このルーティング情報はまた、データを入力制御装置から出力制御装置に伝送できるように、通過するノードの入力制御装置内に記憶することができる。
非同期ノードは、出力を中断又は停止した第１のパケットのルーティング情報を記憶する手段を使用することができる。
【００１０】
本発明による方法はまた、１以上のデータアイテムを受信するノードにより、この（これらの）データの送信元である要素に対して送信される第２のタイプの同期信号を含み、例えば、データと同期信号とを受信及び許可した後で、前記非同期通信プロトコルを用いて許可信号を送信することが出来る。
ノードは、最高の優先チャネルが割り当てられているデータの許可信号は送信せず、これによりシステムをさらに柔軟に管理することができる。
【００１１】
受信者が全てのアクションに対する確認を送付することで送信者の再送信を可能にする、双方向要求（request）／受信確認（Acknowledgement）型の信号システムを用いて非同期通信プロトコルを使用することができる。
従って、本発明によるネットワークは、非同期低位「要求／受信確認」型プロトコルを用いることによっても運用できる。
【００１２】
好ましくは、このような方法では、４段階式の要求／受信確認型プロトコル、及びマルチレールエンコーディングを使用して非同期通信プロトコルの同期信号を実行する。
非同期ノードは、例えばこれら４段階式プロトコル及びマルチレールエンコーディングを使用することにより、実質的に遅延の影響を受けないように作成することができる。
【００１３】
本発明による方法では、入力制御装置が伝送対象であるデータパケットの先頭部分を受信すると、出力制御装置に対し、Validity信号と呼ばれる信号を送信してパケット内のデータを伝送しなければならない出力を通知する。このValidity信号は、前記伝送対象であるデータパケットの優先チャネルに関するデータを含んでいる。
Validity信号を受信すると、出力制御装置は、最高優先順位データパケットに含まれないデータパケットのパケット要求の先頭部を、同じ優先チャネルを有するデータパケットのパケット要求の先頭部の待ち行列に組み込む。
【００１４】
出力制御装置は、Validity信号を受信した後、優先チャネルに従ってデータを保存する入力制御装置のレジスタをモニタする。
入力制御装置は優先チャネルデータを記憶することにより、データを出力制御装置に伝送することができる。
【００１５】
本発明は、また、非同期通信プロトコルを用いるネットワークオンチップを構成するデータ伝送デバイスに関し、このネットワークは１以上のノードと１以上のリソースを備え、各ノードは、１以上の入力制御装置に接続された１以上の入力と、１以上の出力制御装置に接続された１以上の出力とを備え、ノードの少なくとも１つは内部クロック無しで動作し、このノードの各入力制御装置が、
−  同じ出力にルーティングされる少なくとも２つのデータパケットの間の階層を決定する手段であって、この階層を各データパケットに付随する優先チャネル情報に基づいて決定する手段、
−  別のノード又はネットワークリソースから送付される、優先チャネル情報を含む同期信号、及びデータパケットを受信する手段
を備える。
【００１６】
このようなデバイスはまた、伝送階層を決定する手段を備え、また、優先データチャネルが同一であるとき、各パケットに対し、ノードへの到着時刻及び／又は入力時刻、或いはこのパケットがノードに到着するときに通過した入力ポートに応じて優先順位を割り当てる手段を備える。これらの手段はノードの出力制御装置に配置することができる。
また、第１のパケットが出力されるとき、到来パケットと呼ばれる第２のパケットの優先順位より第１のパケットの優先順位が低いとき、第２のパケットを優先的に出力するために、第１のパケットからの出力を中断又は延期する手段を設けることができる。この手段もノードの出力制御装置に配置できる。
【００１７】
本発明によるデバイスはまた、例えば各データパケットに付随する指示の順番付きリスト形式の、ルーティング情報をデコーディングする手段を備える。このルーティング情報の一部は通過する各ノードにアドレス指定されている。
また、ノードに関連するルーティング情報を読む手段、及びネットワーク内におけるデータパケットの次の目的地に関する他のルーティング情報を準備する手段を設けることもできる。ルーティング情報が指示データの順番付きリストの形式である一例では、これらの手段を使用して指示の順番付きリストをオフセットし、パケットの次の目的地を、例えば隣接ノードとすることができる。
【００１８】
入力制御装置から出力制御装置へデータを伝送するために、通過ノードの入力制御装置にルーティング情報を記憶する手段が使用される。
好適には、非同期ノードは、出力を中断又は停止した第１のパケットのルーティング情報を記憶する手段を有する。
【００１９】
好ましい一実施形態によれば、本デバイスはまた、１以上のデータを受信したとき、第１のタイプの同期信号又は対応する送信信号の受信後及びデータ許可後、これらデータの送信元に対して許可信号を送信する手段を有する。
好ましくは、入力制御装置は、伝送対象であるデータのパケットの先頭を受信したとき、出力制御装置に対し、Validity信号と呼ばれる信号を送信してデータの送信先である出力を通知する手段を備え、このValidity信号は、前記伝送対象であるデータの優先チャネルに関連するデータを含む。
【００２０】
本発明による非同期ノードにおいて、出力制御装置は、Validity信号の受信後に、最高優先チャネルを有するデータパケットに含まれないデータパケットの、パケット要求の先頭を、同じ優先チャネルを有するデータパケットに属するパケット要求の先頭の待ち行列に組み込む手段を備えることができる。
出力制御装置はまた、Validity信号の受信後、データをその優先チャネルに従って保存する入力制御装置のレジスタをモニタする手段を備える。
本デバイスはまた、優先チャネルデータを記憶することにより出力制御装置へのデータ転送を可能にする手段を備える。
【実施例１】
【００２１】
本発明の理解を助けるため、純粋に説明を目的とする非限定的実施例について、以下に添付図面を参照しながら説明する。
異なる図面の同様又は均等部品に同じ番号を付することで、異なる図面間の比較を容易にした。
図面の理解を容易にするため、図面の異なる部品は必ずしも同じスケールで示されていない。
【００２２】
図１Ａは、本発明に従って使用される、マトリックス又はメッシュ型トポロジイを使用する通信又はネットワークオンチップ（ＮｏＣ）アーキテクチャの一実施例を示す。
このアーキテクチャは、データ処理能力、及び特にデータ交換による相互通信能力を有する複数の要素（参照番号１１０）を含む。
このようなアーキテクチャに含まれる一群の要素１１０は、マスタとして機能し、特にネットワーク上の通信を開始するために使用される要素１１２を含むことができる。従って、「ネットワーク制御装置」と呼ばれるこの要素１１２は、計算などの基本的なデータ処理、データ保存、又はデータのエンコーディング／デコーディングといったタスクを実行するのに使用される「リソース」と呼ばれる複数の他のネットワーク要素１１４ａ、１１４ｂの間の通信をプログラムすることができる。
【００２３】
ネットワーク制御装置１１２は、例えばプロセッサ又はマイクロコントローラの形態で実施できる。マイクロコントローラによって実行される特定の機能には、計算及び割り込み管理が含まれる。
各リソース１１４ａ、１１４ｂは汎用的なもの、例えばプロセッサ又はデジタル信号処理専用プロセッサ（ＤＳＰ）の形態で実施しても、特殊なもの、例えばＳＲＡＭ（Static Random Access Memory）等のメモリの形態で実施してもよい。
【００２４】
また、本発明は、特定用途の処理モジュール、例えば、高速フーリエ変換（ＦＦＴ）の計算専用モジュール、又はＭＰＥＧ（Moving Pictures Expert Groups）エンコーダ及び／又はデコーダモジュールとすることもできる。
ネットワークリソース１１４ａ、１１４ｂは、互いに接続され、双方向リンクを備える通信媒体を介して相互にデータを交換する。この双方向リンクは一方向にデータ転送を行なう１以上のリンク及びその逆方向にデータ転送を行うまた別の１以上のリンクから形成されている。
ネットワークはノード１２０も備える。これらのノード１２０は、１以上の着信リンクと、１以上の送出リンクとの間に物理的な接続を築くために使用され、リソース１１４間の通信を切換えている。
【００２５】
図１Ａに示すいわゆる「メッシュ」又はマトリックス技術では、各ノード１２０は他の４つの隣接ノードに接続され、リソース１１４の１つに接続されるか又は関連付けられる。
このネットワークアーキテクチャは、ＧＡＬＳ（大域的に非同期、局所的に同期）式に動作し、異なるリソース間の通信は非同期である。
可能な一実施形態によれば、本ネットワーク構造のリソース１１４ａ、ｂは、１つのクロックによって制御されるネットワークの同期ユニットとすることができる。各リソースのクロックは、別個の又は互いに独立したものとすることができる。
【００２６】
ネットワーク通信媒体、及び特にノード１２０は、非同期論理に基づいて実行できる。ネットワークの１以上のノード又は全てのノード１２０はクロックを持たず、非同期に動作する。
ネットワーク内のデータ交換のために、ノード１２０をデータルーティングに使用することができる。
【００２７】
このように、ネットワーク内のノードは、受信されたデータパケットに含まれているルーティングデータと呼ばれるデータを使用することにより、受信したこのデータパケットを転送又は送信すべきネットワーク内のリンク又は隣接ノードを決定することができる。
例えば、ネットワークノード内部のルーティングは決定論的なものでもよい。この場合、ネットワーク内の各ノードは、受信したデータパケットに含まれるルーティング情報のみに従って、又は主に受信したデータパケットに含まれるルーティング情報に従って、データパケットを送信することができる。このルーティング情報は、例えば進むべき方向の順番付きリストの形式で、このデータパケットがネットワーク内で取ることになる経路を示す。ルーティング情報は、パケットに組み込んでもよく、又はこのパケットを送付するネットワークリソースによってパケットに関連付けられてもよい。
【００２８】
ネットワーク内の１以上のノード１２０は、データ間の調停、即ち受信した複数のデータパケットのうちどれを最初に転送又は伝送するかを決定することができる。
従って、ネットワーク内の非同期ノードは、ネットワークに到来するデータ間のあらゆる紛争を管理し、ネットワークに到来し、このノードの同じ出力又はこのノードに接続する同じリンクを使用しようとする複数のデータ又はデータパケットのうちのどれを最初にこの出力又はこのリンクに伝送すべきかを決定するように設計することができる。
【００２９】
本発明により使用されるネットワークオンチップのアーキテクチャは、図１Ａに示すメッシュトポロジイに限定されず、ハイパーキューブ（hypercube）、ツリー（tree）、リング（ring）又はトーラス（torus）等、それ以外のあらゆるトポロジイを有することができる。
【００３０】
図１Ｂは、図１Ａにより説明した上記ネットワークの一部、特に隣り合う第１のノード１２０ａと第２のノード１２０ｂを示す。これらのノードは共に内部クロックを持たない。
第１のノード１２０ａ及び第２のノード１２０ｂは、それぞれ第１のリソース１１４ａ及び第２のリソース１１４ｂに接続されており、各ノードはデータ及び／又は同期信号の受信及び／又は送信を行なう５つの入力／出力モジュールを備え、そのうち第１のノードの「北」のモジュールを１３０ａとし、第２のノードの「北」のモジュールを１３０ｂとし、第１のノードの「東」のモジュールを１４０ａとし、第２のノードの「西」のモジュールを１４０ｂとし、第１のノードの「南」のモジュールを１５０ａとし、第２のノードの「南」のモジュールを１５０ｂとし、第１のノードの「西」のモジュールを１６０ａとし、第２のノードの「北」のモジュールを１６０ｂとする。これらの入力／出力モジュールは、ネットワーク内の他のノードに接続する。入力／出力モジュール１７０ａ及び１７０ｂは、それぞれリソース１１４ａ、１１４ｂに接続する。
【００３１】
この構成において、各ノードは５つの入力（第１のノード１２０ａの場合１３２ａ、１４２ａ、１５２ａ、１６２ａ、１７２ａ）と、５つの出力（第１のノード１２０ａの場合１３４ａ、１４４ａ、１５４ａ、１６４ａ、１７４ａ）とを備える。
各ノードは５つの入力制御装置及び５つの出力制御装置を備える。
【００３２】
同じ入力／出力モジュール上に双方向経路は用いられないため、各入力は５つの出力のうち４つにのみ接続する。入力制御装置は、処理対象となる新規データの存在を検知し、これらのデータを、データ内、好適には当該データのヘッダに示されるルーティングに従って出力へと転送する。
上述の各アーキテクチャにおいて、リソース１１４ａと１１４ｂの間で交換されるデータ、及びリンク１１５ａ、１１５ｂ及びノード１２０ａ、１２０ｂを通過するデータは、データパケットの形態である。
【００３３】
パケットは、一般に「フリット（flit）」と呼ばれる１つのデータグループ、或いは連続する複数のデータグループ又は同じ経路を辿る「フリッツ（flits）」から形成される。
フリットは、ネットワーク内のデータ伝送に使用される基本単位である。リンク１１５又は物理的接続の数又はリンク１１５内部の有線リンクの数には、１フリット又は基本データグループに応じたキャパシティがある。
【００３４】
ネットワーク内を循環するデータパケットは通常、そのヘッダを示す少なくとも１つのフリット、末尾を示す少なくとも１つのフリット、及び場合によってはヘッダフリットと末尾フリットの間に１以上の中間フリットを含む。
１つのデータパケットは、単一の基本データグループから形成される場合も、１つのフリットから形成される場合もある。この場合、この単一フリットは、パケットのヘッダと末尾の両方を示す。
【００３５】
基本データグループ又はフリットは通常複数ビットを有し、例えば３４ビット、特にパケット内におけるこのフリットの位置を示すために使用されるいわゆる「情報」ビットを有する。
「ＢｏＰ（Begin of Packet）」と呼ばれる第１の情報ビットを使用して、例えば、この「ｂｏｐ」が属するフリットがパケットフリットの第１番目であるかどうかを示すことが出来る。
別の情報ビットは「ＥｏＰ（end of packet）」と呼ばれ、これを使用することにより、例えば、このビットが属するフリットがパケットフリットの末尾であるかどうかを示すことができる。
【００３６】
データパケットのフリットはまた、情報ビットの他に複数のデータビットを含み、それらは例えば計算及び／又はデータ処理及び／又はアドレス情報、及び／又はリソース１１４の動作を構成するのに使用されるプログラミング情報を含んでいる。
データパケットのヘッダフリットは、位置情報ビットの他に、このパケットがパケットの読み出し、書き込み又は割り込みのいずれを行うかに応じてパケットの性質を示す「メッセージ制御」ビットと呼ばれる複数の特殊ビットを含んでいる。
【００３７】
データパケットのヘッダフリットはまた、その他複数の特殊なルーティングビット、例えば「目標経路」とも呼ばれる１８のルーティングビットを有する。
ヘッダフリットにおいて、目標経路ビットは、このヘッダフリットが属するデータパケットがネットワーク内で辿る経路を示す。例えばこの経路は、指示データの順番付きリスト、又はパケットが辿る入力／出力モジュールの列を示す順番付きリストの形式にすることができる。
【００３８】
辿るべき経路を規定する指示データのリストの一部、例えば「目標経路」の２つの低次ビットを最初に使用し、次にパケットをそのモジュールの１つにルーティングして次のノードのリストをオフセットするように、ノード設定を行うことができる。
例えば、使用可能なエンコーディングシステムは、「北」入力／出力モジュールを示す「００」、「東」入力／出力モジュールを示す「０１」、「南」入力／出力モジュールを示す「１０」、及び「西」入力／出力モジュールを示す「１１」である。
【００３９】
ルーティングビットをエンコーディングするために特定のシステムを用いて、ノードに対し、リソースにデータパケットをルーティングする必要があることを通知することにより、特にパケット内のルーティングビットの数を減らすことができる。例えば、順番付き指示リスト中の連続する２つの同一データによりリソースを示すことができる。
上述のように、ネットワークにおけるデータパケットのルーティングは決定論的なタイプとすることができる。従って、データパケットの送信前に、リソースはこのデータパケットが辿ることになる経路を設定することができる。リソースは、送付しようとするデータパケットのヘッダフリットの「目標経路」ビットに対し、１つの値を付すか又は割り当てることにより、これを行うことができる。
【００４０】
処理又はアプリケーションを実行する間に先述のネットワークの１つを通過するデータストリームは、非特許文献５等に記載されているような「ワームホール（wormhole）」タイプとすることができる。このタイプのデータストリームの場合、送信リソースから受信リソースへ送信されるデータパケット中のヘッダフリットは、最初に送信リソースと受信リソース間の経路を設定し、次いで、可能であれば、ヘッダフリットが既に通過したネットワークノードに分布する１以上の中間フリットを送信する。末尾フリットは、データストリームが通過した経路を閉じる。
ネットワークを通じて伝送される各データパケットは、予め作成された１以上の仮想チャネル、例えば２又は３の異なる仮想チャネルからなるリストから選択された、「仮想チャネル」と呼ばれる優先チャネルに関連付けることができる。各仮想チャネルは優先順位又は優先順位数に関連し、関連付けられたデータパケットに優先順位を与えるもので、特にこのパケットがネットワーク内のノードに到達したときのパケットの転送順の調停に関与する。
【００４１】
例えば、ネットワークの第１のノードにアクセスする第１のデータパケットが、例えば所定の優先順位を有する第１のチャネルに関連付けられている場合、特に第１ノードの、第１のデータパケットと同一出力へアクセスしようとする別のパケットが存在するとき、例えば第１のチャネルより優先順位の低い第２のチャネルに関連付けられた別のデータパケットに優先してこのデータパケットをこの第１ノードの出力から転送することができる。
仮想チャネルの別の一実施形態によれば、例えば優先順位が最高位の第１のチャネル又はチャネル０、第１チャネルより優先順位の低い第２のチャネル又はチャネル１、第１及び第２チャネルより優先順位の低い第３のチャネル又はチャネル２、というように、ｋ個の異なる仮想チャネル（ｋは３以上の整数）が存在する。
【００４２】
仮想チャネルを使用して、ネットワークの異なるデータ転送サービスを提供することができ、このネットワークは、少なくとも通過帯域やネットワークアクセスがリソース間に比較的均一に共有又は配分される「ベストエフォート」型ネットワーク、及び少なくとも１つのいわゆる「遅延補償」サービスである。このサービスに関連するデータは、例えば第１のリソースから第２のリソースへ、ほぼ一定の転送時間又は変動の小さな転送時間でネットワーク内を転送される。
このように、２つの仮想チャネルを実施するために、優先順位の最も高いチャネル、例えば第１チャネルを使用して、遅延補償サービスを提供しながら、第１チャネルよりも優先順位の低い第２チャネルを使用して「ベストエフォート」型サービスを提供することができる。
【００４３】
図２を参照して後述する通信プロトコルに従って、少なくとも１つの同期信号を用いることにより、優先チャネル情報をデータパケットに関連付ける。
異なる優先チャネルに関連付けられたデータパケット間の転送順序は、非同期ノード、特にこのノードの入力制御装置と出力制御装置によって、優先チャネル情報に応じて決定することができる。そのような制御装置の例については、図６及び７を参照して後述する。
【００４４】
また、同じ優先チャネルに関連付けられた２つのデータパケット、例えば第１チャネルに関連付けられた第１パケット及び第１チャネルに関連付けられた第２パケットが、特にこれらのパケットが同じネットワークノードにアクセスする場合に、決して互いに他方を妨害することが無いようにすることができる。
複数のデータパケットが同一の優先チャネルに関連付けられている場合、これら複数のパケット間の転送順序を強制せず、例えば「動的」な調停を用いて、例えばＦＩＦＯ式で順位を付けることができる。
【００４５】
「静的」な調停を用いる転送順序を使用することもできる。このタイプの調停では、ノードは、前記データパケットの送信元であるノードを考慮するか、又はパケットの送信元の入力を考慮する。このような静的な調停は、特に、仮想チャネルを用いて行われる調停に加えて使用することができ、それによって、例えば、同一の仮想チャネルに関連付けられており、同時に又は殆ど同時にノードに到達する複数の異なるパケット間の転送順序を決定することができる。このような静的な調停は、例えば、「北／東／南／西」型であり、ノードの「北」に到達する第１パケットは、第１パケットが到達するのと同時にノードの「東」入力に到達する同じ仮想チャネルの第２パケットに優先され、第２パケット自体は、第２パケットが到達するのと同時にノードの「南」入力に到達する同じ仮想チャネルの第３パケットに優先する。
更に一般的には、データパケットそれぞれの送出元に応じて、同一の優先チャネルを有する異なるデータパケット間の調停を行うことが可能である。
【００４６】
考えられるノードの一操作方法は、図１Ｂのノード１２０ａを例にすると、以下のように行うことができる。第１データパケットのヘッダフリットが１つの入力を介してこのノード１２０ａに到達するとき、この第１パケットが転送されるべきノードの出力は、前記第１パケットのヘッダに含まれるルーティング情報によって決定される。このルーティング情報、及びこの第１パケットに関連付けられた優先チャネルに応じて、調停機能が起動される。
前記出力に競合が無く、例えばこの出力を使用するか、又は使用しようとしている他のパケットが無ければ、第１パケットはこの出力に伝送又は転送される。
【００４７】
前記出力にアクセスの競合がある場合、つまり既に第１パケットがノードの出力を使用しており、且つ第１パケットより優先順位の高い仮想チャネルの第２パケットがノードの同じ出力に到達している場合、ノード１２０ａの出力への第１パケットの転送は遮断又は停止され、第２パケットが転送される。第１パケットの転送は、前記第２パケットの全てのフリットがノード１２０ａを通過した後で再開することができる。
前記出力に競合が存在し、例えば第１パケットと同じ仮想チャネルに属する第２パケットの別のヘッダフリットがこの出力を第１パケットと同時に使用しようとしている別の実施例では、パケット間で、静的な調停を行うか、或いはパケットの送出元又はそれらのノードへの入力を考慮することができる。
【００４８】
データパケットが関連付けられた優先チャネル情報は、ネットワーク内における要素、ノード及び／又はソース間のデータ転送に使用される、高位の「送信／許可」型通信プロトコルに少なくとも部分的に含むことができる。
データ送信ネットワーク内の要素、例えば第１ノード又はリソースと、データ受信ネットワーク内の要素、例えば第１ノードに隣接する第２ノードとの間のデータ転送機構を、図２のタイムチャートに示す。送信要素と受信要素の間のデータ転送は、「ｓｅｎｄ」タイプの同期信号及び「ａｃｃｅｐｔ」タイプの同期信号を用いる高位の「送信／許可」型プロトコルによって管理され、データパケット中の任意のフリット又は基本的データグループは、前記パケット中のこの任意のフリットに先行する別のフリットが受信要素によって許可されるとすぐに、送信要素によって送信される。
【００４９】
タイムチャートの曲線２００及び２１０は、送信要素と受信要素の間で交換される同期信号を表す。曲線２２０は、送信要素と受信要素の間で交換されるデータを表している。
【００５０】
このタイムチャートでは、送信要素から送出された送信信号２００は、受信要素に対して送信されたデータがあることを、例えばこの送信信号が高い状態に変化する時間ｔ０において告げる。受信要素から生じて「ａｃｃｅｐｔ」信号と呼ばれることになる許可信号２１０は、受信要素が、例えばｔ０において高い状態にあることにより、これらのデータを受信する準備ができていることを示す。このように、曲線２００及び２１０がそれぞれ示すように、第１データグループ又は第１フリットは、送信要素によって送信され、受信要素によって受信される（第１フリットを、曲線２２０の一部分２２１で示す）。
「ｂｏｐ」信号を表すタイムチャートの曲線２５０は、時間ｔ０において高い状態に変化し、第１フリットの間は高いままである。この「ｂｏｐ」信号は、第１フリットがヘッダフリットであることを示す。次いで、第２フリット、及び次の第３フリットが送信要素によって送信され、受信要素によって受信される（第２フリット及び第３フリットは、曲線２２０の部分２２２及び２２３によってそれぞれ示されている）。
【００５１】
時間ｔ１において、受信要素によって送信された「ａｃｃｅｐｔ」信号２４０はその状態を例えば低い状態に変える。すると、受信要素は受信を停止する。送信要素は４番目のフリット（曲線２２０の部分２２４）の送信を試みるが、受信要素は送信要素に対し、この４番目のフリットの許可信号を送信しない。例えば、受信要素が同期ノードである場合、このノードは４番目のフリットを受信及び保存し、それが使用されるまで待機することができる。別の場合、例えば受信要素が非同期ノードである場合、このノードは、４番目のフリットの受信確認をしないことにより、この４番目のフリットを送信要素内に維持することができる。
このような第２の試みの後、送信要素は時間ｔ２においてデータ送信を停止する（曲線２２０の部分２２９）。
【００５２】
受信要素は、時間ｔ３においてデータを受信する準備を再度整える。これは、その状態を例えば高い状態に変える「ａｃｃｅｐｔ」信号（曲線２１０）によって示される。この時間ｔ３から、受信要素は、４番目のフリットを許可することを示す（曲線２３０の２３４）。ここで、送信要素はデータ送信を再開することができる。時間ｔ４から、要素は４番目のフリット（曲線２２０の部分２２５）、次いで５番目のフリット（曲線２２０の部分２２６）を送信し、それらは受信要素によって受信される。「ｅｏｐ（end of packet）」信号を表す曲線２４０に示すように、５番目のフリットがパケットの末尾を示し、時間ｔ５においてデータを送信する。
即ち、第１要素と非同期ノードとの間のデータ送信は、送信／許可プロトコルによって管理される。先述の送信メカニズムでは、送信要素及び受信要素は入力／出力モジュールを介して通信し、そのためのやり取りは、双方向「要求／受信確認」型信号伝達によって物理レイヤで管理される。
【００５３】
この双方向信号伝達は、「完全ハンドシェイク」とも呼ばれる低位の「４段階式」プロトコルを用いて使用することができる。
このプロトコルの１操作を図３のタイムチャートに示す。このタイムチャートの曲線３１０は、送信要素によって生成される要求信号が現れるデータ信号を表し、曲線３２０は受信要素によって生成される受信確認信号を表す。
【００５４】
第１段階、即ち時間ｔ０からｔ１では、受信要素が、曲線３１０の状態の変化によって新規データの到着を検出し、これらのデータを取得する。次にこの受信要素は、受信確認信号を生成し、時間ｔ１における曲線３２０の状態の変化に示されるように、送信要素に対して送信する。
次に、第２段階、即ち時間ｔ１からｔ２では、送信要素が受信確認信号を検出するか、又は受信確認信号の状態の変化を検出し、曲線３００の状態の変化に示されるように、受信要素のデータを無効にする。
【００５５】
時間ｔ２からｔ３までの次の第３段階において、受信要素は、データの状態が無効へと変化するときを検出し、受信確認信号を初期状態又はこの信号の第１段階の開始時点の状態にする。
時間ｔ３からｔ４までの次の第４段階において、送信要素は、受信確認信号が初期状態又はこの信号の第１段階の状態に戻ったことを検出し、よって再び新規データ送信をする権限を得る。
【００５６】
ネットワーク上を伝送されるデータ及び／又は同期信号は、「マルチレール」又は「１アマングＮ」と呼ばれるような、遅延に対して鈍感な種類のエンコーディングに従ってエンコードすることができ、これによりノードが：
−  ノードに到達する新規データの存在を検出し、
−  それらの入力に到達する新規データが直前のデータと全く同じ状態である場合を区別することができる。
また、この種のエンコーディングにより、ノードは受信確認信号を生成してその隣接データに処理の終了を知らせることができる。
【００５７】
例えば、図４に示すようなダブルレールエンコーディングでは、データビットが２つのワイヤによりエンコードされ、この方式では４つの段階が利用可能である。第１ワイヤ（図４の信号４１０により示す）を値「０」をエンコードするために用い、第２ワイヤ（図４の信号４２０により示す）を値「１」をエンコードするために用いることができる。
２つのワイヤが低い状態であるとき、有効な値は無い（時間Ｔ０の前の論理的レベル０における信号４１０及び４２０）。第１ワイヤの状態が変化して例えば高い状態になるとき、このワイヤは値「０」をエンコードし、高い状態の第２ワイヤは値「１」を表す。両方のワイヤが同時に高い状態であることはできない。それぞれの有効値が変化するときは、必ず２つのワイヤが共に低い状態である無効状態を経る。
【００５８】
図５は、非同期ノードのアーキテクチャを示す。各入力は（ｎ−１）の出力に接続されており、各出力は（ｎ−１）の入力に接続されており、ここで例えばｎは４以上であり、従ってノードは６以上の入力と出力を有する。
ｎのリンク（ｎは６以上の整数）に付属するこのようなノード５００の一実施例を図５に示す（リンクは図示しない）。このノード５００は、ｎの入力５１００、．．．５１０ｎ−１、及びｎの出力５５００、．．．５５０ｎ−１を備えるｎ×ｎの「クロスバー」型のアーキテクチャを有することができ、入力５１００、．．．５１０ｎ−１の各々はｎ−１の出力に接続可能である。このネットワークの変形にｋの優先チャネルを導入することができる（ここで、ｋは２以上の整数である）。つまり、このようなネットワーク上を伝送される各データパケットは、ｋのチャネル又は優先順位から選択された１の優先チャネルに関連付けることができる。
【００５９】
このようなノード５００は、静的な調停を使用して、同じチャネル、特に最高の優先チャネルに属するパケット間の転送順序を決定することができ、例えば最高の優先チャネル０に関連付けられた入力５１００に到来するパケットが、同じチャネル０に関連付けられた入力５１０１に到来するパケットに優先されるように決定することができる。
ノード５００の各入力５１００、．．．５１０ｎ−１は対応する入力制御装置６０００、．．．、６００ｎ−１に関連付けられており、各出力５５００、．．．５５０ｎ−１は対応する出力制御装置７０００、．．．、７００ｎ−１に関連付けられている。
【００６０】
図５に示す一実施例は、ｋ＝２の異なるレベル又は優先チャネルを制御することができ、且つ３４ビットのフリット等のフリットパケットを受信することができるものであり、この実施例によれば、Ｅ＿ｄａｔａ信号の形式でパケットを受信するノードのデータバス及びＥ＿ｄａｔａ信号の形式でパケットを送信するノードのデータバスは、ベース４にエンコードすることができ、よって消費電力が低減され、３４ビットのデータに１７のマルチレールベース４ベクターが得られる。
「ｓｅｎｄ」タイプのＥ＿ｓｅｎｄ制御信号をダブルレールエンコーディングと共に使用して、２つの異なる仮想チャネルの数又は異なる優先チャネルの数を伝送することができる。「ａｃｃｅｐｔ」タイプのＥ＿ａｃｃｅｐｔ制御信号を信号レールエンコーディングと共に使用して、次のノードにも利用可能なスペースがあるかどうかを示すことができる。
【００６１】
非同期ノード５００の入力制御装置６０００のアーキテクチャを図６に更に詳細に示す。
この制御装置６０００を使用することにより、その入力５１００に位置する所定のフリットが、この同じ非同期ノード５００の、所定の出力へ、或いは、ｎ−１の出力の群又は出力制御装置７００１、．．．、７００ｎ−１のうち所定の制御装置へ転送される（図５及び７参照）。
【００６２】
従って、入力制御装置６０００は、Ｅ＿ｄａｔａ信号の形式でパケットのデータフリットを受信し、このデータフリットは、例えば３４ビットを有し、Ｅ＿ｓｅｎｄと表示される「ｓｅｎｄ」タイプの同期信号が添付されており、関連付けられている入力５１００に到来したものである（図６には示さない）。
既に述べたように、Ｅ＿ｄａｔａのデータ及びＥ＿ｓｅｎｄの同期信号の両方は、ネットワーク内でデータパケットが辿る経路の非同期ノード５００に先行する入力５１００に接続されたノード又はリソースによって送信される。
【００６３】
入力制御装置６０００はまた、入力５１００に接続された非同期ノード５００の隣接する要素（ノード又はリソース）であり、このノード５００が受信したデータの送出下である要素に対し、「ａｃｃｅｐｔ」タイプ許可信号（図６のＥ＿ａｃｃｅｐｔ１、．．．、Ｅ＿ａｃｃｅｐｔｋ）を生成する。
制御装置６０００は、Ｅ＿ｄａｔａ信号の形式で到来するフリットの少なくとも１部を、複数のフリット、例えば２つの信号Ｅ＿ｄａｔａ＿ｙとＥ＿ｄａｔａ＿ｘに複製するモジュール又は手段６１０を備え、これらの複製信号はそれぞれ、新規データ取得手段と呼ばれるモジュール又は手段６２０及び同期信号取得手段と呼ばれる別のモジュール又は手段６３０に向けて送信される。
【００６４】
手段６３０は、到来するフリットに関連付けられたＥ＿ｓｅｎｄ同期信号を受信し、この信号はこのフリットが属するパケットのレベル又は優先チャネルをコード形式で含む。この信号のソースについては既に説明した。このように、これら手段６３０は、特に、ノード５００に到来するパケットの所定のフリットのレベル又は優先チャネルをデコードするために使用される。
手段６３０はまた、所定のフリットの数ビット、特に「目標経路」フィールドにあるこのフリットの幾つかのルーティングビットをデコードすることができ、これには「目標経路」フィールド内の低順位のビット等、方向データの順番付きリストが含まれる。
【００６５】
手段６３０が「目標経路」フィールド内のビットをデコードした後、これらの手段６３０は、
−  第１に、出力認証信号Ｖａｌｉｄ  Ｒ０＿ｔｏ＿Ｓ０、．．．、Ｖａｌｉｄ＿Ｒｋ―１＿ｔｏ＿Ｓｎ−１（以下、Ｖａｌｉｄ＿Ｒ＿ｔｏ＿Ｓと略す）を生成することにより、ｋの優先順位の中から優先チャネルを認証し、且つ到来するフリットが非同期ノードの出力として辿るノードの出力の中から出力を承認し、
−  第２に、パケット情報の先頭ＢｏｐＲ１＿ｔｏＳ０、．．．、ＢｏｐＲｋ−１＿ｔｏＳｎ−１（以下ＢｏｐＲ＿ｔｏＳと略す）を生成し、それを非同期ノードの出力制御装置に送信する。
また、この出力制御装置には、
−  フリットの優先チャネルに関する情報、
−  パケット中のフリットの位置に関する情報、例えばこのフリットがパケットフリットの先頭であるか、又はパケットフリットの末尾であるか
が供給される。
【００６６】
Ｅ＿ｄａｔａ＿ｘフリットがパケットフリットの先頭である場合、手段６３０は制御信号ＣＴＲＬ＿Ｅを生成し、データ取得手段６２０に対し、到来するパケットに関連付けられた優先チャネル、及び「目標経路」フィールド内のビットのオフセット制御を通知する。
宛先を示す、到来するフリットの「目標経路フィールド」内の低順位のビットはまた、手段６３０によってデコードされる。これらデータの宛先ビットは、別の方法で調停される、高い優先順位又はチャネルに関連付けられたパケットを除き、Ｖａｌｉｄ＿Ｒ＿ｔｏ＿Ｓ認証信号とパケット情報の先頭を生成するのに使用される。有効性情報及びパケット情報の先頭部に関連する２つの信号は、現行の優先順位に関する出力を起動する。
【００６７】
この出力に関する情報は、手段６３０によって宛先情報信号ＮＸＴ＿Ｒｋの形式で生成された後、レジスタ６４００、．．．、６４０ｋ−１に記憶される。レジスタ６４００、．．．、６４０ｋ−１の１つに送信されるこの信号ＮＸＴ＿Ｒｋは、到来するパケットの残りのルーティングデータを維持するのに使用される。
到来するフリットがパケットフリットの先頭でない場合、手段６３０は、到来するフリットのレベル又は優先チャネルのみを示す制御信号ＣＴＲＬ＿Ｅを生成する。上述のようにして記憶された現行の宛先が読み出され（手段６４００、．．．、６４０ｋ−１によって送信される信号ＣＲＵ＿Ｒｋ）、それによって関連する優先順位を有する現行の出力が起動される。
【００６８】
手段６２０は、Ｅ＿ｄａｔａ＿ｙ信号を受信すると、手段６３０によって生成されるＣＴＲＬ＿Ｅ信号の値に応じて、ノード５００に到来する所定のパケットのヘッダフリットの「目標経路」にあるビットをオフセットする。これは、所定のパケットがノード５００の後に通過することになる、ノード５００に隣接する別のノードのための、所定のパケットのルーティング情報を準備するのに使用される。オフセットされた後、「目標経路のヘッダフリットの中の低順位のビットは、次のノードに対し、データパケットがその出力のいずれを取るかを通知する。
手段６２０はまた、フリットに関連付けられた優先チャネルに基づいて、ｋの手段６２５０、．．．、６２５ｋ−１からなる組のうち所定の手段、又は所定のモジュールに対し、このフリット中のデータを方向付けるために、制御信号ＣＴＲＬ＿Ｅを使用する。例えば、最高の優先チャネル、例えばチャネル０に関連付けられたフリットは、チャネル０に関連付けられたフリットを処理するために設けられた手段６２５０に方向付けられる。このようにして、手段６２０は、ノード５００において到来するパケットが関連付けられた入力を介し、仮想チャネル又は優先チャネルにより到来パケットの分類を行うことができる。
【００６９】
手段６２０はまた、ノード出力制御装置のステートマシン（図６に示さない）で使用することができるように、所定の到来パケットのヘッダフリットの中のパケットビットの「ｅｏｐ」末尾をデコードし、次いで複製するために使用される。
手段又はレジスタ６２５０、．．．、６２５ｋ−１はまた、手段６２０から出力されたデータをノード５００のｎ−１の出力制御装置７００１、．．．、７００ｎ−１に転送するために使用される。これは、ｎ−１の出力制御装置７００１、．．．、７００ｎ−１により手段６２５０、．．．、６２５ｋ−１を精査することにより行われ、このとき非特許文献６に記載の種類の精査メカニズムを使用する。このような精査は、出力制御装置７００１、．．．、７００ｎ−１が、手段６３０が送信する認証信号によって起動されたとき、それら出力制御装置によって行われる。
【００７０】
入力制御装置６０００はまた、出力Ａ１＿ｆｒｏｍＳ０、．．．、Ａｋ−１＿ｆｒｏｍＳｎ−１の各々からの、異なるチャネル又は優先順位の許可信号を精査し、許可信号Ｅ＿ａｃｃｅｐｔ１、．．．、Ｅ＿ａｃｃｅｐｔｋ−１を生成する手段６５０１、．．．６５０ｋを備える。これらの手段６５０１、．．．６５０ｋは、上述のような精査メカニズムに従って動作することができる。更に、これら手段６５０１、．．．６５０ｋは、上述のような「送信／許可」式やり取りの前に、初期化トークンを生成するように設計される。すると、このような交換が開始されたとき、入力制御装置６０００は、ネットワーク内のノード又は先行要素に対し、ｋの仮想チャネルのうち１の所定の仮想チャネルが空いていることを通知する。
また、例えばバッファメモリの形式の記憶手段６４００、．．．、６４０ｋ−１が設けられ、ノード５００内の転送の間のパケットの宛先情報、特にパケットのヘッダフリットに続くフリットの宛先情報を保存する。この情報は、手段６３０により記憶手段６４０に送信される。回路又はネットワークが初期化されるとき、新規パケットのヘッダフリットが入力制御装置６０００にアクセスする前に、これら記憶手段６４００、．．．、６４０ｋ−１は手段６３０に初期化トークンを送信する。
【００７１】
好ましくは、許可信号Ｅ＿ａｃｃｅｐｔ１、．．．、Ｅ＿ａｃｃｅｐｔｋ−１は、パケットの種類の一部のみ、特に最高の優先順位より低い優先順位を有する仮想チャネル又は優先チャネルに関連付けられたパケットのみの受信確認をするために送信される。
よって、入力制御装置は同期信号をデコードし、新規のデータ入力値を待ち、それを関連する優先順位に対応する手段６２５０、．．．、６２５ｋ−１に割り当て、現行パケットの宛先に応じて、Ｖａｌｉｄ＿Ｒ＿ｔｏ＿Ｓ信号によりその出力を正しい出力制御装置に対して認証する。
【００７２】
図７はノードの出力制御装置５００の１アーキテクチャ、例えば出力制御装置７０００を示す。
この出力制御装置は、パケットのデータフリットを、Ｓ＿ｓｅｎｄと示される「ｓｅｎｄ」タイプの同期信号が添付された例えば３４ビット信号のＳ＿ｄａｔａ信号の形式で、それに関連する出力５５００に振り向ける。
【００７３】
出力制御装置はまた、優先パケットと、それよりも低い優先順位のパケットとの間で、出力転送調停７０００を行うことができる。これは、同じ優先順位を有するデータパケット間の調停を行うこともできる。
異なる優先順位を有するパケット間の転送順序を決定するため、出力制御装置７０００は、これらのパケットに関連付けられた仮想チャネル又は優先チャネルを考慮する。
【００７４】
同一の優先順位を有するパケット間の転送順序を調停するため、これらのパケットが最高位の優先チャネルに関連付けられている場合、出力制御装置７０００は、これらパケットの各々が入力５０００、．．．、５００ｎ−１のうちのいずれの入力に到来したかに応じた調停を行うことができる。
転送順序が決定されるパケットが、最高の優先チャネル、例えばチャネル０の優先順位よりも低い優先順位の同じチャネル、例えばチャネル１に関連付けられている場合、制御装置はＦＩＦＯタイプの調停を行うことができる。
【００７５】
従って、出力制御装置７０００は、入力５０００、．．．、５００ｎ−１の１つを介してノード５００にアクセスする複数のデータパケット間、特にこの出力制御装置７０００が関連付けられている出力５５００にアクセスする複数のパケット間の調停を行うことができる。
出力制御装置７０００は分類手段、例えばｋ−１の記憶手段又はレジスタ７１０１、．．．、７１０ｋ−１（ｋは２以上の整数であり、優先チャネルの数に対応する）を備え、これにより、先着順分類法に従って到達順に、パケット要求の「ＢｏＰ」の先頭又は新規パケットを示すパケットの「ＢｏＰ」部分を保存する。
【００７６】
保存手段７２０１、．．．、７２０ｋ−１の各々は、ｎ−１のバッファメモリから形成されて、パケット要求のｎ−１の先頭を保存するために使用されるもので、それぞれｋ−１の分類手段７１０１、．．．７１０ｋ−１に関連付けられる。分類手段７１０１、．．．７１０ｋ−１はｎの入力を備え、同じ仮想チャネルに関連付けられたパケットの分類のみを行う。手段７１０１、．．．７１０ｋ−１はデフォルトで待機又は休止状態とすることができ、優先チャネルの１つにアクティビティが検知され次第初期化又は起動されるようにすることができる。
このような検知は、非特許文献６に記載されているような精査機能を使用して行うことができる。
【００７７】
好ましくは、これらの手段７１０１、．．．７１０ｋ−１は最高の優先チャネルよりも低い優先チャネルに関連付けられたパケットのみを分類し、それによりノード５００が、最高の優先チャネル、例えばチャネル０に関連付けられたパケットを迅速に転送することを可能にする。チャネルの１つにアクティビティが検知されたとき（ＢｏＰビットが検知されたとき）：
−  ＢｏＰビットが入力５１００に到来したものである場合、入力５１００からの要求は、このＢｏＰが属するパケットの優先チャネルに基づいて手段７２０１、．．．７２０ｋ−１に属するメモリに保存されるか、
−  そうではなく、ＢｏＰビットが入力５１０１に到来したものである場合、入力５１０１の要求は、このＢｏＰが属するパケットの優先チャネルに応じて手段７２０１、．．．７２０ｋ−１に属する別のメモリに保存される。
例えばステートマシンの形態の、手段７３０及び手段７４０は、現行の優先順位に基づいて行われるValidity要求の調停に使用される。
【００７８】
この調停方法を説明するために、複数の実施例を挙げて説明する。
まず、図７に示す異なる信号について説明するか、又は図６で言及した信号と対応させる。
【００７９】
ｖａｌｉｄ＿Ｒ０＿ｆｒｏｍ＿Ｅ０、．．．、ｖａｌｉｄ＿Ｒｋ−１＿ｆｒｏｍ＿Ｅｎ−１、及びｂｏｐＲ１＿ｆｒｏｍ＿Ｅ０、．．．、ｂｏｐＲｋ−１＿ｆｒｏｍ＿Ｅｎ−１信号はそれぞれ、図６の手段６３０によって送信されたｖａｌｉｄ＿Ｒ＿ｔｏ＿Ｓ信号、及びパケットｂｏｐ＿Ｒ＿ｔｏ＿Ｓ信号の先頭である。Ｒｋ＿ｅｏｐ０＿ｆｒｏｍＥ０信号は、図６の手段６２５によって送信されるｖａｌｉｄ＿Ｒｋ＿ｔｏ＿Ｓ１及びＲｋ＿ｅｏｐ＿ｔｏ＿Ｓ１Ｖａｌｉｄｉｔｙ信号に対応する。Ａｋ＿ｔｏ＿Ｅ１信号は、図６の手段６５０から受信されるＡｋ＿ｆｒｏｍ＿Ｓ１Ｖａｌｉｄｉｔｙ信号に対応する。Ｒｋ＿ｆｒｏｍＥ１信号は、図６の手段６２５によって送信されるＲｋ＿ｔｏ＿Ｓ１信号に対応する。Ｓ＿ＡＣＣＥＰＴ１、．．．、Ｓ＿ＡＣＣＥＰＴｋ−１信号は、ネットワークのデータ経路において非同期ノード５００の次に来るネットワーク内の要素（ノード又はリソース）から受信された許可信号である。
ステートマシン７３０が使用する調停方法に関し、３つの異なる場合を区別することができる。
【００８０】
第１の場合：現行の処理で優先されているのが「空の状態」である場合で、この出力制御装置に向かって進行中のパケットが存在しない場合：
−  最高の優先チャネルに関連付けられたパケット、例えばチャネル０に関連付けられたパケットが存在する場合、現行の状態が優先され、手段７３０はＮＸＴ＿ＰＲＩＯ信号を生成し、パケットのソースはＮＸＴ＿ＦＲＯＭ情報を使用して維持される。Validity信号が受信確認される。
−  更に優先順位の高い信号が存在しない場合、最高の優先チャネルよりも優先順位の低いチャネルのレベル又は優先順位を有するパケットによって本方法は起動されたものである。転送されるべき入力が対応するリストの１つに読み出される。現行の状態は非優先となり、ＮＸＴ＿ＰＲＩＯ信号がステートマシン７４０に送信され、一方パケットのソースはＮＸＴ＿ＦＲＯＭ情報を使用してステートマシン７４０に維持される。対応するレベルの許可信号が受信確認される。
【００８１】
第２の場合：現行の優先順位が非優先状態である場合（パケットレベルｋ）
この場合、非優先パケットがもっと優先順位の高いパケットで中断される。
ここで、「ガード」又は選択手段は：
−  更に優先順位の高いValidity信号の存在を確認するか、
−  ネットワーク内の次のノードから送出された対応する優先順位の許可信号を受信している場合、更に優先順位の高いValidity信号の存在を確認するか、或いは、
−  ネットワーク内の次のノードから送出された現行の非優先レベルの許可信号を受信している場合、現行の非優先パケットのValidity信号の存在を試験する。
【００８２】
更に優先順位の高いパケットが存在する場合、手段７３０は、ＴＯ＿ＳＵＳＰＥＮＤ信号を手段７４０に対して生成することにより、現行の非優先パケットを延期し、優先順位の高いチャネルのパケットを処理する。
最高の優先チャネルに関連付けられたパケットは無いが、最高の優先チャネルより低い優先順位のチャネルに関連付けられたパケットが残っている場合、残りのパケットを処理する。
【００８３】
第３の場合：現行の優先順位の優先状態が高い場合。この場合、現行のパケットを中断することはできず、残りのパケットの転送は待機状態におかれる。
空の状態の初期化トークンはステートマシン７４０によって生成される。
【００８４】
３つの場合は、ステートマシン７４０が使用する調停方法についても区別される。
第１の場合：現行の状態が空の状態であり、この出力に向かって進行中のパケットが存在しない。関連パケットの末尾を示すＥｏＰビットがデコードされ、次いで出力の現行状態が更新される。切換え手段７７０の制御信号ＣＴＲＬ＿ＳＷＩＴＣＨが起動される。
非優先パケットに対し、入力段階に応じたレベルの許可信号Ａｋ＿ｔｏＥｎが生成される。
【００８５】
第２の場合：現行の状態が非優先状態（パケットレベル又はチャネルが１〜ｋ）である場合。
新規の更に優先順位の高いパケットが存在する場合、それよりも優先順位の低い現行のパケットを延期する。従って、本方法は、延期を行うことにより新規パケットの転送を承認する。ＥｏＰ＝１である場合、パケット長は１であり、延期の必要はない。
それ以外の場合、現行パケットの残りを転送する。
【００８６】
第３の場合：現行の状態が優先順位の高い状態（パケットレベル又はチャネルが０）である。
このとき、優先順位の高いパケットの残りが待機状態に置かれる。
次いで、調停手段７３０が、最高の優先順位を有するvalidity信号の１つ、又はそれよりも優先順位の低いValidity信号にアクティビティを検知する場合で、且つネットワーク内の次のノードから送出された、対応する優先順位の許可信号を受信している場合、本調停方法ではまず、優先順位が固定された最高の優先順位のパケットの存在を確認する。
【００８７】
手段７４０は優先順位と現行状態を管理する。従って、これらの手段はＥｏＰビットを受信し、１つの状態から他の状態へ、及び１つの優先順位から他の優先順位への変化を決定する。これらの手段はまた、延期された優先順位の低いパケットを復元できる。それらはまた、出力スイッチ７７０の制御信号ＣＴＲＬ＿ＳＷＩＴＣＨを生成する。
パケットの末尾において、本方法は、延期手段７５０の出力を確認し、以前に優先順位の低いパケットが延期されているかどうかを決定する（ＣＵＲ＿ＳＵＳＰＥＮＤＥＤ）。
【００８８】
手段７５０ステートマシン７４０の状態変数を保存することができ、手段７６０はこのステートマシン７４０の延期変数を保存するために使用できる。これらの手段は「空の状態」及び「延期無し」に対して初期化トークンを生成する。
手段７７０は切り替え手段であり、例えばノードのＳ＿ｄａｔａ出力に可能なｋ（ｎ−ａ）の入力（ｋの優先順位を有するｎ−１の入力）を有するマルチプレクサである。これら同じ手段により、Ｓ＿ｓｅｎｄが生成される。
【００８９】
本発明による回路は、ＣＳＰに由来するＣＨＰ言語でモデル化することができ、通信方法による非同期ノードを説明する。これは、非特許文献７を参照して行うことができる。
このとき、回路は、ＴＡＳＴ（非特許文献８及び９）などの非同期回路合成を一部に使用するか、或いは、非特許文献１０又は１１に記載の合成方法を特に調停ブロックに使用して、合成することができる。
【００９０】
本発明による非同期ネットワーク構造を使用して、様々なサービス、例えば「遅延保証」サービス及び一般に「ベストエフォート」サービスと呼ばれる別のサービスを実行することができる。これら種種のサービスの実行、及びこのような構造内を伝送されるデータパケット間の優先順位の管理は、データパケットに関連付けられる「仮想チャネル」と呼ばれる優先チャネルを使用することにより、少なくとも部分的に保証される。
【図面の簡単な説明】
【００９１】
【図１】Ａ及びＢは、本発明に従って使用されるネットワークオンチップアーキテクチャの実施例を示す。
【図２】データ送信要素と前記データの受信要素との間に、本発明に従って使用されるネットワークオンチップで「送信／許可」」型通信プロトコルを使用する非同期メカニズムを示すタイムチャートを示す。
【図３】４段階プロトコルによる転送例を示す。
【図４】ダブルレールエンコーディング信号を示す。
【図５】本発明に従って使用されるネットワークオンチップの非同期ノード構造の一実施例を示す。
【図６】本発明による非同期ノードの入力制御装置を示す。
【図７】本発明による非同期ノードの出力制御装置を示す。
【符号の説明】
【００９２】
１１０    ネットワークの要素
１１２    制御装置
１１４    リソース
１１５    リンク
１２０、５００    ノード
１３２ａ、１４２ａ、１５２ａ、１６２ａ、１７２ａ、５１０    ノードの入力
１３４ａ、１４４ａ、１５４ａ、１６４ａ、１７４ａ、５５０    ノードの出力
６００    入力制御装置
６２０、６２５、６３０、６５０  モジュール又は手段
６４０    レジスタ
７００    出力制御装置
７１０    記憶手段又はレジスタ
７２０    保存手段
７３０、７４０    手段（ステートマシン）
【図１】
2006254450.tif 000003
【図２】
2006254450.tif 000004
【図３】
2006254450.tif 000005
【図４】
2006254450.tif 000006
【図５】
2006254450.tif 000007
【図６】
2006254450.tif 000008
【図７】
2006254450.tif 000009
【外国語明細書】
2006254450000001.pdf
2006254450000002.pdf
2006254450000003.pdf
2006254450000004.pdf