(57)【要約】【課題】本発明は、互いに通信できかつ処理できる複数のリソース（３１０、３２０）、並びにネットワークにおける通信を初期設定することができる少なくとも１つのネットワーク・コントローラ（３００）、から形成されたネットワーク・オン・チップにおけるデータ処理方法に関する。【解決手段】該方法は、少なくとも１つの第１のリソース（３１０）及び少なくとも１つの第２のリソース（３２０）間の少なくとも１つの第１の通信ステップを含み、該通信ステップは、第２のリソース（３２０）に向けられた第１の複数の特別なデータまたはクレジットの第１のリソースによる少なくとも１回の発信ステップと、第２のリソース（３２０）によって送られた処理するべき第１の複数のデータの第１のリソース（３１０）による少なくとも１回の受信ステップと、を含む。【選択図】図１
2006101525.tif 000002
【特許請求の範囲】
【請求項１】
互いの間で通信できかつ処理できる複数の要素またはリソース（３１０、３２０、３３０、３４０、３５０）、並びにネットワークにおける通信を初期設定することができる少なくとも１つの要素またはネットワーク・コントローラ（３００）、から形成されたネットワーク・オン・チップにおけるデータ処理方法であって、
ネットワーク・コントローラによって送られたクレジット管理コンフィギャレーション、もしくは１つまたは複数のプログラムを、１つまたは複数のリソースによりメモリに受信及び記憶するステップと、
少なくとも１つの第１のリソース（３１０）及び少なくとも１つの第２のリソース（３２０）間の少なくとも１つの第１の通信ステップと、
を含み、該通信ステップは、
ａ）第２のリソース（３２０）に向けられた第１の複数の特別なデータまたはクレジットの第１のリソースによる少なくとも１回の発信ステップであって、第１のリソース（３１０）によって発信されたクレジットの送信先は、第１のリソースが用いる共通のクレジット管理コンフィギャレーションにおいて限定され、該共通のクレジット管理コンフィギャレーションは、第１のリソースのメモリに記憶された１つまたは複数の異なったクレジット管理コンフィギャレーションから選択され、
ｂ）第２のリソース（３２０）によって送られた処理するべき第１の複数のデータの第１のリソース（３１０）による少なくとも１回の受信ステップであって、第１のリソースに第２のデータ・リソースによって送られる処理されるべきデータのこの発信が、第１のリソースによって発信されたクレジットを第２のリソースによって受信された後に、許可される、
ことを含むデータ処理方法。
【請求項２】
処理は、第１のリソースと、第２のリソースまたは第３のリソース（３３０）との間の少なくとも１つの第２の通信ステップを含み、該第２の通信ステップは、
ａ’）第２のリソース（３２０）または第３のリソース（３３０）に向けられた第２の複数の特別なデータまたはクレジットの第１のリソース（３３０）による少なくとも１回の発信ステップと、
ｂ’）第２のリソース（３２０）または第３のリソース（３３０）によって送られた処理するべき第２の複数のデータの第１のリソース（３１０）による少なくとも１回の受信ステップと、
を含む請求項１に記載の方法。
【請求項３】
第１のリソース（３１０）は、第２のリソース（３２０）または第３のリソース（３３０）によって送られる処理されるべきデータの少なくとも部分を処理する請求項１または２に記載の方法。
【請求項４】
第１のリソース（３１０）は、処理すべき第１及び／または第２の複数のデータの受信に続いて、第４のリソース（３４０）に、処理すべきデータ及び／または第１のリソース（３１０）によって処理されるデータを送る請求項１乃至３のいずれかに記載の方法。
【請求項５】
ステップｂ）中に第１のリソース（３１０）によって受信される処理するべきデータの少なくとも部分、及び／またはステップｂ）中に第１のリソースによって受信されかつ第１のリソース（３１０）によって処理されるデータの少なくとも部分を、ステップａ’）の前に、またはステップａ’）及びｂ’）の間に、またはステップｂ’）の後に、第４のリソース（３３０）に発信するステップを含む請求項２に記載の方法。
【請求項６】
データ管理コンフィギャレーション・データを前記ネットワーク・コントローラ（３００）によって第１のリソース（３１０）に発信する前に、データ上における１つまたは複数の処理の型、及び／または処理されるまたは処理されるべきデータが送られる少なくとも１つの他のリソースを示すステップを含み、次に、第１のリソースのメモリにこのデータ管理コンフィギャレーション・データを記憶するステップを含む請求項１乃至５のいずれかに記載の方法。
【請求項７】
第１のリソース（３１０）は、データを処理する１つまたは複数の型、及び／または処理されるまたは処理されるべきデータが送られる少なくとも１つの他のリソース（３３０）を示すデータ管理コンフィギャレーション・データを記憶する請求項１乃至６に記載の方法。
【請求項８】
ステップｂ）中及び／またはステップｂ’）中に受信された処理すべきデータは、記憶された複数のデータ管理コンフィギャレーション中のデータ管理コンフィギャレーション選択データを含むタグ・データと称されるデータを含む請求項６または７に記載の方法。
【請求項９】
第１のリソース（３１０）のメモリに記憶された前記クレジット管理コンフィギャレーションは、ネットワークのリソース（３１０、３２０、３３０、３４０）間でのデータまたはクレジットの任意の交換に先立って、前記ネットワーク・コントローラ（３００）によって第１のリソースに送られる請求項１乃至８のいずれかに記載の方法。
【請求項１０】
ネットワーク・コントローラは、１つまたは複数のクレジット管理コンフィギャレーションのための順次選択命令を送る請求項１乃至９のいずれかに記載の方法。
【請求項１１】
第１のリソースによって受信されるデータの量は、ステップａ）においてまたはステップａ’）においてこの第１のリソースによって発信されるクレジットの量に依存する請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
ステップａ）及び／またはａ’）は、ネットワーク・コントローラがネットワークにおける通信を開始するための命令を発行することによって先行される請求項１乃至１１のいずれかに記載の方法。
【請求項１３】
１つまたは複数のクレジット管理コンフィギャレーションのための前記順次選択命令は、ネットワーク・コントローラによりステップａ）及び／またはａ’）に先立って送られるネットワークにおける通信を開始するための命令に含まれる請求項１０に記載の方法。
【請求項１４】
リソースからネットワーク・コントローラに向けられる少なくとも１つのインターラプションを含む請求項１乃至１３のいずれかに記載の方法。
【請求項１５】
ネットワークの１つまたは幾つかのリソースと通信ができ、かつ少なくとも１つのデータ処理動作を実行することができる少なくとも１つの要素またはリソースを含み、前記リソースは、ネットワークとのインターフェースを形成する手段を含むネットワーク・オン・チップ・デバイスであって、ネットワークとのインターフェースを形成する手段は、
ネットワークの１つまたは複数のリソースにクレジットを発信することができる特別なデータまたはクレジットを発信するための手段であって、クレジットの送信先は、クレジット管理と称されるプログラミングまたはコンフィギャレーションの型に依存してクレジット発信手段によって発信され、
ネットワークの１つまたは複数のリソースからクレジットを受信することができる、クレジット受信手段と、
ネットワークの１つまたは複数のリソースに処理すべきデータを発信することができる、処理すべき、データ発信手段と、
ネットワークの１つまたは複数のリソースから処理すべきデータを受信することができるデータ受信手段と、
を含み、ネットワークとのインターフェースを形成する手段は、とりわけ、
ネットワークの前記他のリソースの少なくとも１つの第１のリソースへの処理すべきデータの前記データ発信手段による発信を、前記クレジット受信手段による前記第１のリソースからのクレジットの受信に続いて、許可するための手段と、
幾つかの異なったクレジット管理コンフィギャレーションを記憶することができる記憶手段と、
幾つかの異なったクレジット管理コンフィギャレーションから少なくとも１つの共通のクレジット管理コンフィギャレーションを選択することができるコンフィギャレーション選択手段と、
を備えるネットワーク・オン・チップ・デバイス。
【請求項１６】
ネットワーク・インターフェースを形成する手段は、とりわけ、
少なくとも１つの第２のリソースからのデータの受信を、前記第２のリソースからのクレジットの受信に続いて、許可するための手段、
を備える請求項１５に記載のデバイス。
【請求項１７】
ネットワークまたはネットワーク・コントローラの要素は、通信が初期設定されるのを許容し、前記コンフィギャレーション選択手段は、ネットワーク・コントローラからの少なくとも１つの順次のめ命令の機能において、前記幾つかのクレジット管理コンフィギャレーションからの少なくとも１つの共通のクレジット管理コンフィギャレーションを選択することができる請求項１５または１６に記載のデバイス。
【請求項１８】
データ発信手段が発信することができるデータの送信先は、データ管理と称されるプログラミングまたはコンフィギャレーションの型に依存し、
前記記憶手段は、さらに、幾つかの異なったデータ管理コンフィギャレーションを記憶するのを許可し、
コンフィギャレーション選択手段は、さらに、前記幾つかのデータ管理コンフィギャレーションから少なくとも１つの共通のデータ管理コンフィギャレーションを選択するのを許容する請求項１５乃至１７のいずれかに記載のデバイス。
【請求項１９】
コンフィギャレーション選択手段は、さらに、前記データ受信手段により受信される処理されるべきデータ・パケットに含まれた少なくとも１つの選択データまたはタグに依存して、前記幾つかのデータ管理コンフィギャレーションから少なくとも１つの共通のデータ管理コンフィギャレーションの選択を許容する請求項１８に記載のデバイス。
【請求項２０】
リソースは、さらに、少なくとも１つのデータ・プロセスを実行することができる動作コアを形成する手段を含む請求項１８または１９に記載のデバイス。
【請求項２１】
動作コアを形成する前記手段によって実行される前記処理は、データ管理と称されるプログラミングまたはコンフィギャレーションの型に依存し、ネットワーク・インターフェース手段は、さらに、前記データ受信手段により受信される処理されるべきデータ・パケットに含まれた少なくとも１つの選択データまたはタグに依存して、前記幾つかのデータ管理コンフィギャレーションから少なくとも１つの共通のデータ管理コンフィギャレーションを選択することができる手段を含む請求項２０に記載のデバイス。
【請求項２２】
ネットワーク・インターフェースを形成する前記手段は、とりわけ、インターラプションを発信する手段を含む請求項１５乃至２１のいずれかに記載のデバイス。
【請求項２３】
前記リソースは、幾つかの同時に入ってくるデータ・フロー及び／またはクレジットを処理する手段と、幾つかの同時に出て行くデータ・フロー及び／またはクレジットを処理するための手段と、を備える請求項１５乃至２２のいずれかに記載のデバイス。
【請求項２４】
前記リソースは、幾つかの入ってくる順次のデータ・フロー及び／またはクレジットを処理する手段と、幾つかの出て行く順次のデータ・フロー及び／またはクレジットを処理する手段と、を備える請求項１５乃至２３のいずれかに記載のデバイス。
【請求項２５】
請求項２３または２４のいずれかの少なくとも１つのリソースと、
請求項２３または２４のいずれかの少なくとも１つの他のリソースと、
を備え、前記リソース及び前記他のリソースは、異なったデータ・フロー及び／またはクレジットを処理する手段を有するネットワーク・オン・チップ・デバイス。
【請求項２６】
ネットワークにおける通信を初期設定することができるネットワーク・コントローラをさらに備える請求項１５乃至２５のいずれかに記載のネットワーク・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＮｏＣすなわち“ネットワーク・オン・チップ（Ｎｅｔｗｏｒｋ  ｏｎ  Ｃｈｉｐ）”の分野に関するものである。本発明は、改良されたネットワーク・オン・チップ構造、並びにかかるネットワークにおける改良された通信及び／またはデータ処理方法に関するものである。
【背景技術】
【０００２】
この構造の１つの独特な特徴は、完全に非同期的な態様で動作することができ、何等特別の論理を必要としないと言うことである。
【０００３】
現在、チップの異なったモジュール間での通信を創成するために、主に用いられているのは、バス・トポロジ手段である。この型のトポロジをもって、互いに通信するべきチップのモジュールは、それらが例えば順番にデータを発進するように用いる同じ通信媒体に接続される。バスまたはアービタと称される１つの中央素子は、バス割り当て競合を避けるために、異なったモジュールのための媒体へのアクセス権を提供する。
【０００４】
このシステムの主な欠点は、該システムが、高い待ち時間で低い通信フロー・レートを有するということであり、並びに特にクロック・ツリーに関するものとしてかつ容量性充電の問題に起因して作るのがますます困難であるということである。さらに、チップのモジュールのすべてから作られるアプリケーションにチップの通信バスによって保証されるフロー・レートを正確に適合させることが困難である。さらに、かかるシステムは、与えられたアプリケーションに対して一般に非常に特定的であり、或るアプリケーションに対して一度設計されてしまうと、別のアプリケーションに対して再使用されるのを阻止する。
【０００５】
上述の問題を改善する目的で、ネットワーク・オン・チップすなわちＮｏＣが出現した。これらのネットワーク・オン・チップは、管理されるべきネットワークの異なったエレメントまたはリソース間で通信を許容するインターフェース・レイヤを用いる。
【０００６】
データ処理フローを行う目的で、このようなネットワーク・オン・チップは、１つの既知の動作モードによれば、ネットワークの各リソースが、１つまたは複数の発信リソースからのデータのセットを処理し、この処理の結果を、先に定義した１つのシナリオに従って１つまたは複数の受信リソースに送り戻すのを許容する。リソースがデータを処理してしまうと、処理されたデータの送信先が、汎用コントローラまたはネットワーク・コントローラによって概して決定される。
【０００７】
処理中にしばしば、前記ネットワーク・コントローラは、ネットワークを通過するデータ・フローに関して決定をしなければならない。
【０００８】
ネットワーク・コントローラは、あらゆる瞬間において、データ・フローの進行に追随するよう履行される。そうするために、それは、発信リソースに送信命令を送り、次に、該リソースに計算命令を送る。第１の可能性において、リソースは、後者が例えばインターラプションを介して実行している処理の進行状況についてネットワーク・コントローラに知らせ得る。ネットワーク・コントローラは、絶え間なくインターラプションを受信しそうであるので、データ・フローは、パルス化される。
【０００９】
もう１つの可能性において、リソースは、後者が例えばネットワーク・コントローラ・レジスタに送られるフラッグにより実行されてしまった処理の終了についてネットワーク・コントローラに知らせ得る。後者は、次に、処理の進行をチェックするために前記レジスタを規則正しく掃引する。
【００１０】
これらの２つの動作の型は、非常に信頼性があるが、待ち時間については非常に効率的ではない。
【００１１】
１つの提案され改善されたネットワーク・インターフェースは、“An Efficient On Chip Network Interface Offering Guaranteed Services, Shared-Memory Abstraction, and Flexible Network Configuration” Proceedings of DATA conf., 2004 においてRadulescu 等によって為された。
【００１２】
この文献は、特に、ネットワークの方向に調整されるべきインターフェースが使用されるようにして、ＴＤＭＡ（時分割多重アクセス）及び信用システムがトラフィックを許容する同期構造を記載している。
【００１３】
このインターフェースは、データのルーティング及び時分割多重アクセスに関するものとして設定され得る。しかしながら、この文献で提案されたもののようなネットワーク・インターフェースは、データ・フローに適していない。インターラプションを用いずに通信をプログラミングすることは、また、この型のインターフェースでは複雑であることが判明し得る。
【００１４】
また、現存の構造に関して通信が単純化される、データ・フローに適合された新しいネットワーク・オン・チップ構造を見つける問題もある。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明は、特に、待ち時間について、かつネットワークを形成する異なった素子間の通信の導入の簡単さについて、既知の従来技術の方法に対して改善された、ネットワーク・オン・チップにおけるデータ処理方法を提案するものである。
【課題を解決するための手段】
【００１６】
ネットワークは、互いの間で通信できかつ処理できる複数の要素またはリソース、並びにクレジットのシステムを初期設定することによりネットワークにおける通信を初期設定することができる少なくとも１つの要素または「ネットワーク・コントローラ」、から形成される。
【００１７】
本発明の処理プロセスは、少なくとも第１のリソースと少なくとも第２のリソースとの間で少なくとも第１の通信ステップを含み、前記通信ステップは、
ａ）第２のリソースに向けられた第１の複数の特別なデータまたはクレジットの第１のリソースによる少なくとも１回の発信ステップと、
ｂ）第２のリソースによって送られた処理するべき第１の複数のデータの第１のリソースによる少なくとも１回の受信ステップであって、第１のリソースに向けられる処理すべき第２のデータ・リソースによる発信が、第１のリソースによって発信されたクレジットを第２のリソースによって受信された後に、許可される、ことを含む。
【００１８】
この方法で、このプロセスは、リソースによって発信される処理すべきデータが１つまたは複数の受信リソースによって正しく受信され、かつネットワーク・リソースの各々に入るデータ・フローを同期化させるのを保証する。
【００１９】
処理は、第１のリソースと、第２のリソースまたは第３のリソースとの間の少なくとも１つの第２の通信ステップを含むことができ、該第２の通信ステップは、
ａ’）第２のリソースまたは第３のリソースに向けられた第２の複数の特別なデータまたはクレジットの第１のリソースによる少なくとも１回の発信ステップと、
ｂ’）第２のリソースまたは第３のリソースによって送られた処理するべき第２の複数のデータの第１のリソースによる少なくとも１回の受信ステップと、
を含む。
【００２０】
本発明のデータ処理方法において、第１のリソースは、第２のリソースまたは第３のリソースによってそれが受信するデータの少なくとも部分を処理することができる。この処理は、第１のリソースの性質に依存し、例えば、第１のリソースが受信するデータの少なくとも部分の記憶であって良く、または、もう１つの例によれば、第１のリソースが受信するデータの少なくとも部分に対する計算であって良く、もしくは、第３の例によれば、第１のリソースが受信するデータの少なくとも部分の復号（デコーディング）であって良い。
【００２１】
処理すべき第１及び／または第２の複数のデータの受信に続いて、第１のリソースは、第４のリソースに、処理すべきデータ及び／または処理されるデータを送ることができる。
【００２２】
本発明によって履行される方法は、ステップｂ）中に第１のリソースによって受信される処理するべきデータの少なくとも部分、及び／またはステップｂ）中に第１のリソースによって受信されかつ第１のリソースによって処理されるデータの少なくとも部分を、ステップａ’）の前に、またはステップａ’）及びｂ’）の間に、またはステップｂ’）の後に、第４のリソースに発信するステップを含むことができる。
【００２３】
この方法で、本発明によって履行されるデータ処理方法は、リソースがデータ処理に打ち込む瞬間もしくは時間間隔が、可能な限り、リソースが他のリソースとの通信に打ち込む瞬間もしくは時間間隔と一致されるもしくは併合されることを許容する。
【００２４】
ネットワークのリソース間の通信の開始に先立って、ネットワークの種々のリソースに向けられるプログラミングもしくはコンフギャレーションのネットワーク・コントローラによる１つまたは幾つかの送信ステップが行われる。
【００２５】
従って、本発明の方法は、データ管理コンフィギャレーション・データを前記ネットワーク・コントローラによって第１のリソースに発信する前に、データ上における１つまたは複数の処理の型、及び／または処理されるまたは処理されるべきデータが送られる少なくとも１つの他のリソースを示すステップを含み、次に、第１のリソースのメモリにこのデータ管理コンフィギャレーション・データを記憶するステップを含む。第１のリソースは、データを処理する１つまたは複数の型、及び／または処理されるまたは処理されるべきデータが送られる少なくとも１つの他のリソースを示すデータ管理コンフィギャレーション・データを記憶することができる。
【００２６】
本発明のプロセスのステップｂ）中及び／またはステップｂ’）中に受信された処理すべきデータは、記憶された複数のデータ管理コンフィギャレーションから、データ管理コンフィギャレーション選択データを含むタグ・データと称されるデータを含み得る。
【００２７】
この方法で、リソースによって受信された処理すべきデータは、このリソースの動作が、前記データ上に実行すべき処理に関して、並びに、処理されると前記データの未来の送信先に関して、プログラムされるのを許容する。
【００２８】
第１のリソースによって発信されるクレジットの送信先は、第１のリソースが用いる共通のプログラミングもしくは「クレジット管理コンフィギャレーション」において限定され得、該共通の「クレジット管理コンフィギャレーション」は、第１のリソースのメモリに記憶された幾つかの異なったクレジット管理コンフギャレーションから選択される。
【００２９】
第１のリソースのクレジット管理コンフィギャレーションは、メモリに記憶される前に、そしておそらくは、ネットワークのリソース間でのデータまたはクレジットの任意の交換に先立って、前記ネットワーク・コントローラによって第１のリソースに送られ得る。
【００３０】
この方法で、リソースが１つまたは複数の他のリソースと実行する一連の通信が予めプログラムされ得、そしてデータ処理中に自動的に実行される。
【００３１】
プロセスのステップａ）及び／またはａ’）は、ネットワーク・コントローラがネットワークにおける通信を開始するための命令を発行することによって先行され得る。
【００３２】
ネットワーク・コントローラは、ステップａ）及び／またはステップａ’）に先立って、１つまたは複数のクレジット管理コンフィギャレーションの順次選択命令を送ることもあり得る。
【００３３】
１つの特定の実施形態によれば、１つまたは複数のクレジット管理コンフィギャレーションの前記順次選択命令は、ネットワークにおける通信を開始するための命令に含まれ得る。
【００３４】
本発明は、互いの間で通信できかつ処理できる複数の要素またはリソース、並びにネットワークにおける通信を初期設定することができる少なくとも１つの要素または「ネットワーク・コントローラ」、から形成されるネットワーク・オン・チップを提案するものである。通信及びそれが実行する処理に関するリソースの動作は、このリソースが用いるプログラミングもしくはコンフィギャレーションにおいて決定される。本発明によって履行されるネットワーク・アーキテクチャにおいて、リソースは、データ処理中、並びに２つのデータ処理動作間でリセットされ得る。
【００３５】
１つのリソースは、このように、ネットワーク・コントローラによって送られる命令に続いて他のリソースとの少なくとも第１の一連の通信を実行するように導かれ、次に、第１の一連から少なくとも第２の一連の異なった通信を実行するように導かれ、他のリソースとは、前記命令に続くかもしくはネットワーク・コントローラによって送られるもう１つの命令に続く。
【００３６】
データ・フローの処理中、このようなアーキテクチャを有するリソースは、また、少なくとも第１の一連の処理を実行するようにも導かれ、次に、第１の一連とは異なる少なくとも第２の一連の処理を実行するようにも導かれ得る。
【００３７】
このようなアーキテクチャにおけるデータ・フローは、異なったリソースの通信もしくはコンフギャレーションに関して取られるべき複雑な決定が無い限り、流れ得る。
【００３８】
本発明は、ネットワークの１つまたは幾つかのリソースと通信ができ、かつ少なくとも１つのデータ処理動作を実行することができる少なくとも１つの要素またはリソースを含み、前記リソースは、ネットワークとのインターフェースを形成する手段を含むネットワーク・オン・チップ・デバイスであって、ネットワークとのインターフェースを形成する手段は、
ネットワークの１つまたは複数のリソースにクレジットを発信することができる特別なデータまたはクレジットを発信するための手段であって、クレジットの送信先は、クレジット管理と称されるプログラミングまたはコンフィギャレーションの型に依存してクレジット発信手段によって発信され、
ネットワークの１つまたは複数のリソースからクレジットを受信することができる、クレジット受信手段と、
ネットワークの１つまたは複数のリソースに処理すべきデータを発信することができる、処理すべき、データ発信手段と、
ネットワークの１つまたは複数のリソースから処理すべきデータを受信することができるデータ受信手段と、
を含み、ネットワークとのインターフェースを形成する手段は、とりわけ、
ネットワークの前記他のリソースの少なくとも１つの第１のリソースへの処理すべきデータの前記データ発信手段による発信を、前記クレジット受信手段による前記第１のリソースからのクレジットの受信に続いて、許可するための手段と、
幾つかの異なったクレジット管理コンフィギャレーションを記憶することができる記憶手段と、
幾つかの異なったクレジット管理コンフィギャレーションから少なくとも１つの共通のクレジット管理コンフィギャレーションを選択することができるコンフィギャレーション選択手段と、
を備えるネットワーク・オン・チップ・デバイスに関する。
【００３９】
本発明によって用いられるリソースのネットワーク・インターフェースを形成する手段は、さらに、少なくとも１つの第２のリソースからの前記データ受信手段によるデータの受信を、前記第２のリソースからのクレジットの受信に続いて、許可するための手段を備え得る。
【００４０】
クレジット発信手段によって発信されるクレジットの送信先は、ネットワーク・インターフェース手段によって用いられるクレジット管理プログラミングもしくはコンフィギャレーションの型に依存し得る。ネットワーク・インターフェース手段は、また、さらに、
幾つかの異なったクレジット管理コンフィギャレーションを記憶することができる記憶手段と、
ネットワーク・コントローラからの少なくとも１つの順次命令に従って、前記幾つかのクレジット管理コンフィギャレーションから少なくとも１つの共通のクレジット管理コンフィギャレーションを選択することができるコンフィギャレーション選択手段と、
を含む。
【００４１】
データ発信手段により発信されることができるデータの送信先は、ネットワーク・インターフェース手段により用いられるデータ管理プログラミングもしくはコンフィギャレーションの型に依存し得る。インターフェース記憶手段は、また、幾つかの異なったデータ管理コンフィギャレーションが記憶されるのをも許容し得る。コンフィギャレーション選択手段は、さらに、前記データ受信手段によって受信された処理すべきデータ・パケットに含まれる少なくとも１つの選択もしくは「タグ」データに従って、前記幾つかのデータ管理コンフィギャレーションの中から、少なくとも１つの共通データ管理コンフギャレーションを選択するのを許容し得る。
【００４２】
リソースのネットワーク・インターフェースを形成する手段は、さらに、コントローラにメッセージを発信する手段、特に、例えば、リソースがネットワーク・コントローラに動作または処理が終了したこともしくはエラーが発生したことを知らせるために、インターラプションを発信する手段を含み得る。
【００４３】
１つの特定の実施形態によれば、本発明によるリソースは、入力における幾つかの同時のデータ及び／またはクレジット・フローを処理するための手段と、出力における幾つかの同時のデータ及び／またはクレジット・フローを処理するための手段と、を備え得る。
【００４４】
もう１つの特定の実施形態によれば、本発明によるリソースは、入力における幾つかの順次のデータ及び／またはクレジット・フローを処理する手段と、出力における幾つかの順次のデータ及び／またはクレジット・フローを処理する手段と、を備え得る。
【００４５】
本発明は、添付図面を参照して、どんな意味においても制限的なものではなく、純粋に情報のためだけに提供される実施形態の説明を読んだ後には理解するのは一層容易であろう。
【００４６】
なお、異なった図面の同一、類似もしくは等価の部分は、１つの図面から別の図面に移るのを容易にするために、同じ参照数字を有する。
また、図面に示される異なった部分は、それらを理解するのを容易にするために、必ずしも均一な縮尺では示されてはいない。
【発明を実施するための最良の形態】
【００４７】
図１は、本発明に従って用いられるネットワーク・オン・チップすなわちＮｏＣアーキテクチャの例を示す。
【００４８】
このアーキテクチャは、互いに通信することができ、かつデータを交換することができる複数の要素１１０を備える。リンク１１５は、前記要素１１０が接続されるのを許容し、他方、ノード１２０は、通信の切換えのために異なったリンク１１５間で物理的な接続が創設されるのを許容する。ノード１２０は、また、例えば、異なったリンク１１５から発行された幾つかのデータ・パケットの通過の順序をアルバイトレートする（仲裁する）よう導かれ得る。この仲裁することは、例えば、固定の優先順位「ラウンド・ロビン」のシステムに従って、または時分割多重アクセスを用いてさえ実行され得る。切換えまたはルーティングは、文献［１］に限定された「奇数偶数順番モデル」、文献［２］に記載された「メッセージ・フロー・モデル」、または文献［３］に限定されたルーティング・プロセスを例えば用いて動的に実行され得る。ルーティングは、また、例えば、ノードに含まれたルーティング・テーブルにより、または水平・垂直ルーティング・アルゴリズムにより実行される静的ルーティングであっても良い。
【００４９】
図１に示されたネットワーク・オン・チップ・アーキテクチャの例は、メッシュまたはマトリクスのトポロジを有する。この方法で、各ノード１２０は、４つの他の隣接するノード並びに前記要素１１０の１つに接続される。
【００５０】
本発明に従って履行されるネットワーク・オン・チップ・アーキテクチャは、このトポロジに制限されず、例えば、ハイパーキューブ型トポロジ、もしくはスピンドル、リングまたはトーラス等の任意の他のトポロジを有していて良い。
【００５１】
このようなアーキテクチャに含まれる要素１１０のセットの中で、少なくとも１つの要素１１２は、マスタの役割を果たし、特に、ネットワーク上の通信を開始するのを許容する。「ネットワーク・コントローラ」と称するこの要素１１２は、従って、「リソース」１１４と称するネットワークの複数の他の要素間での通信をプログラミングする可能性を有し、そして、要素データの処理、例えば、計算またはデータ記憶またはデータ符合化／復号化のようなタスクを実行するのを許容する。
【００５２】
ネットワーク・コントローラ１１２は、例えば、ＡＲＭ９４０、ＬＥＯＮ、またはＳＰＡＲＣの種類のマイクロコントローラまたはプロセッサの形態を有し得る。後者は、また、特に、計算及び管理インターラプションを実行するための機能をも有し得る。本発明によるネットワーク・オン・チップ・アーキテクチャには、１つまたは幾つかのネットワーク・コントローラが具備され得る。
【００５３】
リソース１１４の各々は、例えば、プロセッサまたはＤＳＰ（ディジタル信号プロセッサ）の形態にある一般の型のものであって良く、もしくは、例えば、ＦＦＴ（高速フーリエ変換）の計算における特別化されたモジュールのような、または、例えば、ＭＰＥＧ（移動画像専門グループ）符号化／復号化モジュールのような、もしくは、例えば、ＳＲＡＭ型（静的ランダム・アクセス・メモリ）のメモリ・モジュールのような、特殊化された処理モジュールの形態に例えばある特定型のものであっても良い。
【００５４】
ネットワーク構造の各リソース１１４は、特に、データ処理及び／または計算に専門化された「機能コア」と称する部分または手段、並びに、リソース１１４がネットワークと通信するのを許容する、「ネットワーク・インターフェース」と称するもう１つの部分または手段を備える。
【００５５】
リソース２００の詳細な構造、一層詳細には、該リソースのネットワーク・インターフェース２０２を形成する手段、の一例が図２に示されている。
【００５６】
このネットワーク・インターフェース２０２は、まず、復号化されるべきリソース２００から、そして他のリソースまたはネットワーク・コントローラから、入力に受信される指令を許容するモジュール２１２を備える。これらの指令の中には、特に、データ読取りまたは書込み指令があり得る。他のリソースからくる、「クレジットもしくは信用」と称する特別データ放出指令、ネットワーク・コントローラからの通信初期設定指令、もしくは、リソース２００の或るモジュールの動作パラメータがセットされるのを許容するネットワーク・コントローラからのプログラミングまたはコンフィギャレーション、も受信され得る。
【００５７】
ネットワーク・インターフェースの２０２の、「コンフィギャレーション・マネージメント」２１４と称されるモジュールは、ネットワーク・インターフェース２０２の及び／またはリソース２００の動作コア（図示せず）のパラメータをセットするように設計された異なった、プログラムまたは「コンフィギャレーション」を受信するよう設計される。これらのコンフィギャレーションまたはプログラムは、計算ブロック・ユニット２０４、２０６、２０８に属するレジスタ内のリソース２００のメモリに記憶され得る。
【００５８】
ネットワーク・コントローラによって送られる指令または命令、及び／または、ネットワークの他のリソースから送られるデータ内に含まれるタグ、に依存して、モジュール２１４は、また、リソース２００がメモリ内に有している記憶された前記コンフィギャレーションから１つまたは複数の共通のコンフィギャレーションを用いるべきか否かの決定を行うのを許容し得る。
【００５９】
例えば、「信用管理コンフィギャレーション」と称する型のコンフィギャレーションを用いて、コンフィギャレーション管理モジュール２１４は、特に、「ＩＣＣ」（「入力通信コントローラ」）２１８と称される、セットされるべきネットワーク・インターフェース２０２のモジュールの動作パラメータを許容し得る。
【００６０】
入力通信コントローラ２１８は、１つまたは複数の入力記憶手段に関連され、該手段を通してリソースに入るデータが通る。これらの記憶手段は、例えば、１つまたは複数のＦＩＦＯユニット、例えば、２つのＦＩＦＯユニット２２５及び２２６の形態にあるか、もしくは、モジュール入力通信コントローラが、フィル・レート（ｆｉｌｌ  ｒａｔｅ）並びにフリー・アドレスを識別することができる１つまたは複数のメモリの形態にあって良い。
【００６１】
そのパラメータがどのようにセットされるかに依存して、入力通信コントローラ・モジュール２１８は、ネットワーク内の通信を同期化させるために履行される、信用放出機構を用いた、他のネットワーク・リソースに、リソース２００が、「信用」と称する特別なデータを、特に、送信するのを許容する。
【００６２】
このような機構は、第１のリソースが、第２のリソースからくるデータを受信し、処理し、または送信するよう設計されている場合、第２のリソースに前以ってクレジットを送り、それにより、後者が、前記データを送るよう許可されて、第１のリソースが用いたクレジット・マネージメント・コンフィギャレーションに従って処理するか、送信する。
【００６３】
第１のリソースによって送られたクレジットの数は、この第２のリソースが第１のリソースに送るのを許可されたデータの量を、第２のリソースに示すことができる。このクレジットの数は、第１のリソースが有するフリー（空き）入力空間、並びに第１のリソースが第２のリソースから受信すると思われるデータの量に依存する。前述したように、このデータの量は、第１のリソースが用いる共通クレジット・マネージメント・コンフィギャレーション内に示される。
【００６４】
クレジットを受信した後に、放出することが許可されると、第２のリソースは、第１のリソースによって送られたクレジットの数が許可するのと同じ位の量のデータを放出することができる。この方法で、第１のリソースから第２のリソースに送られたクレジットは、第１のリソースに向けられる第２のリソースからのデータのために経路が開かれるのを許容する。このクレジット放出機構は、第２のリソースによって送られたデータが、第１のリソースによって正しく受信されるのを保証する。
【００６５】
「データ・マネージメント・コンフィギャレーション」と称するもう１つの型のコンフィギャレーションを用いて、コンフィギャレーション・マネージメント・モジュール２１４は、特に、リソース２００の動作コア（図示せず）のパラメータがセットされるのを許容することができ、特に、リソース２００が受信するデータをこの動作コアが処理する態様がセットされるのを許容する。例えば、動作コアがＦＦＴ処理を実行するよう設計されている場合、データ・マネージメント・コンフィギャレーションは、この処理を実行するために考慮されるべき計算ポイントの数を示すことができる。
【００６６】
第２のリソースから第１のリソースに発せられた処理すべきデータは、例えば、ヘッダまたは１つまたは複数のタグに出現するブロックまたはパケットの形態にある。これらのタグは、特に、識別が、前記データ・ブロックまたはパケットの幾つかまたは各々に帰属させられるのを許容し得る。この方法で、第１のリソースは、それが受信するパケットのスケジューリングを実行することができ、もしくは、実行されるべき新しい計算もしくは新しい処理の開始を識別することができる。タグは、また、第２のリソースからデータを受信する第１のリソースに、該データを処理するようこの第１のリソースが採用しなければならない共通のデータ管理コンフィギャレーションを示すのを許容する１つまたは複数の識別子をも含み得る。
【００６７】
前記「データ管理コンフィギャレーション」の助けを借りて、コンフィギャレーション管理モジュール２１４は、さらに、「ＯＣＣ」（「出力通信コントローラ」）２２０と称するネットワーク・インターフェースのもう１つのモジュールの動作パラメータをセットし得る。
【００６８】
出力通信コントローラ・モジュール２２０は、１つまたは複数の出力記憶手段に関連し、該記憶手段を通してリソース２００を離れるデータを通す。これらの記憶手段は、１つまたは複数のユニット、例えば、２つのＦＩＦＯユニット２２８及び２２９の形態にあって良く、または、１つまたは複数の順次アクセス書込み及びランダム読取りメモリの形態にあって良く、もしくは出力通信コントローラがフィル・レート（ｆｉｌｌ  ｒａｔｅ）及びフリー・アドレスを識別することができる１つまたは複数のメモリの形態にあって良い。
【００６９】
出力通信コントローラ２２０は、特に、そのパラメータがセットされる方法に依存して、タグに出現する、１つまたは複数の他の受信リソースに送信されるべきデータ・パケットを創成することができるように提供され得る。タグ・システムは、リソースに、特に、データ・パケットを受信するリソース２００に、これらのデータ・パケットがどのリソースに再送出されるべきかを示す。この方法で、データ・パケットのヘッダ・タグは、後者が処理するデータの送信先をリソースに示す１つまたは複数の他の識別子を含み得る。
【００７０】
ネットワーク・インターフェース２０２は、また、入力ポート２２２及び出力ポート２２４をも含む。これらのポート２２２及び２２４は、それぞれ、リソース２００に到着するデータもしくはクレジットが、後者の異なったモジュールに向けられるのを許容し、そして、リソース出力２００において、データまたはクレジットの送出を帰属させるのを許容する。
【００７１】
本発明により用いられるネットワーク・オン・チップに属するリソース構造は、異なったネットワーク・リソースからの幾つかの入ってくるデータ・フローが処理されるのを許容し得る。この管理は、順次的にもしくは同時的に行われ得、例えば、前記リソースがその入力を有するＦＩＦＯユニット（ファースト・イン・ファースト・アウト：先入れ先出し）の形態にある受信手段の数に依存する。
【００７２】
同じ方法で、本発明により履行されるネットワーク・オン・チップに属するリソースは、異なったリソース行きの幾つかの出てくるデータ・フローが処理されるのを許容し得る。この管理は、順次的にもしくは同時的に行われ得、例えば、前記リソースがその入力を有するＦＩＦＯユニットの形態にある発信手段の数に依存する。
【００７３】
本発明によるネットワーク・オン・チップ構造の幾つかの可能な種々の履行によれば、データ・フロー及びクレジット・フローの管理は、ネットワークのリソースのすべてに対して同じであっても良く、または、互いのリソースとは異なっていても良い。
【００７４】
例えば同じ方法で、入力において単一のＦＩＦＯユニットを有しかつ出力において単一のＦＩＦＯユニットを有する少なくとも１つの第１のリソースに、入力において少なくとも２つの順次フローを処理させることができるようにしかつ出力において少なくとも２つの異なったリソースへの少なくとも２つの順次フローを生成させることができるようにすることが可能である。また、この同じネットワークの例において、入力において２つのＦＩＦＯユニットを有しかつ出力において１つのＦＩＦＯユニットを有する少なくとも１つの第２のリソースに、入力において２つの同時フローを処理させることができかつ出力において２つの順次フローを生成させることができるようにすることも可能である。この同じ例によれば、入力において２つのＦＩＦＯユニットを有しかつ出力において２つのＦＩＦＯユニットを有する第３のリソースに、入力において２つの同時フローを処理させかつ出力において２つの同時フローを処理させることができるようにすることも可能である。
【００７５】
リソース２００の管理コンフィギャレーション・モジュール２１４は、また、もう１つのモジュール２１６の動作パラメータがセットされるのを許容し得、このことは、特にネットワーク・コントローラに対して意図された、そして、おそらくはリソース２００の動作コア（図示せず）に対して意図された、インターラプションが生成されるのを許容する。このインターラプション管理モジュール２１６が生成することができるインターラプションの中で、「教育的な」と称するインターラプションがあり得、それは、例えば、リソース２００が動作または処理を完了してしまったということをネットワーク・コントローラに警告するのを許容する。
【００７６】
例えば、リソース２００が行わなければならないデータ処理のすべてを完了してしまった場合、インターラプション管理モジュール２１６は、ネットワーク・コントローラにインターラプションを送るということが提供され得る。
【００７７】
また、リソース２００がそれにデータを送ることができるもう１つのリソース（図には示されていない）に対して向けられるすべてのクレジットの発信を完了してしまったとき、または、リソース２００がそれにデータを送ることができる他のすべてのリソース（図には示されていない）に向けられるすべてのクレジットを発信するのを終了してしまったとき、リソース２００のインターラプション管理モジュール２１６が、ネットワーク・コントローラに向けられるインターラプションを生成するということも提供され得る。
【００７８】
インターラプション管理モジュール２１６は、また、リソース２００がエラーを検出した場合、または後者が処理することができない情報片を検出した場合、インターラプションを発信するようにも提供され得る。
【００７９】
例えば、このリソースが有するデータ管理コンフィギャレーションのいずれにも対応しない、リソース２００によって受信されたデータ・パケットに含まれるタグの識別子の場合、リソース２００は、ネットワーク・コントローラにインターラプションを発信し、それにより、後者が前記データ・パケットの処理の管理を引き受けるということが提供され得る。
【００８０】
もう１つの例において、例えば、フーリエ変換の計算を処理するリソース２００の場合、インターラプション管理モジュール２１６は、処理レベルにおける飽和が検出されたときにネットワーク・コントローラに対して向けられるインターラプションを発生するように、もう１つのインターラプションが動作コアで生じるように、後者が進行中に処理を停止するように、提供され得る。
【００８１】
さて、図３Ａ−３Ｍに関連して、本発明によるネットワーク・オン・チップ・アーキテクチャの動作、そして特に、ネットワーク３１０の与えられたリソースの動作の例を説明する。ネットワークは、この例においては、データ・フローの処理の部分として用いられる。
【００８２】
第１の段階において、前記処理の開始に先立って、ネットワーク・コントローラ３００は、最初に、ネットワーク・リソースの各々に、特にリソース３１０に、コンフィギャレーションのセットを送る。これらのコンフィギャレーションは、リソースのネットワーク・インターフェース及び動作コアの双方に対して向けられるプログラムであり、後者は、前記処理中に用いることができる。
【００８３】
コンフィギャレーションは、特別なデータ・パケットの形態でネットワーク・コントローラ３００によって送られ得る。これらの特別なデータ・パケットは、コンフィギャレーションを受信するリソースを示すフィールドを備えたヘッダ、並びにこのコンフィギャレーションが記憶されるレジスタによって形成され得る。
【００８４】
各リソースは、それに対して特定であるコンフィギャレーションのセットを受信する。リソースが受信しそうであるコンフィギャレーションのセットの中に、「クレジット管理」と称する型の１つまたは複数のコンフィギャレーションがあり得る。
【００８５】
クレジット管理コンフィギャレーションの役割は、ネットワークが飽和されるようになるのを回避するということに加えて、ネットワークの種々のリソース間での通信の同期化を確実にすることである。クレジット管理コンフィギャレーションは、前記リソースに入るデータ・フローが管理されるべきである態様を前記インターフェースに示す、リソースのネットワーク・インターフェースによって使用されるプログラムである。
【００８６】
この方法で、ネットワーク・コントローラ３００は、例えば第１のステップで、２つの異なったプログラムまたはクレジット管理コンフィギャレーション「ＣＣ１」及び「ＣＣ２」を含む命令「ｗｒｉｔｅ  ｃｏｎｆｉｇ（ＣＣ１、ＣＣ２）」を送る。リソース３１０は、次に、その復号器モジュール３１２によってこの命令を復号し、次に、そのコンフィギャレーション管理モジュール３１３（図３Ａ）によって「ＣＣ１」及び「ＣＣ２」コンフィギャレーションを記憶する。
【００８７】
クレジット管理コンフィギャレーションにおいて、例えば、「ＣＣ１」クレジット管理コンフィギャレーションにおいて、リソース３１０にデータを発するように設計された、「第１の発信リソース」と称するリソースの同一性が特に示され得る。第１の発信リソースの同一性は、例えば同一性番号を用いて直接に、または例えばこの第１の発信リソースに導く経路を示すことによって間接的に、示され得る。「ＣＣ１」クレジット管理コンフィギャレーションにおいて、また、第１の発信リソースに送られるべきクレジットの数がリソース３１０に対して示される。クレジットのこの数は、第１の発信リソースがリソース３１０に発信するのを許可されたデータの量に対応する。クレジット発信レジスタは、選択されるべき出力通信コントローラ２２０に属し、この方法で、クレジットの送信のための閾値、すなわち、クレジットの送信に対してフリーであるＦＩＦＯ２２８及び／または２２９におけるフリー（空き）場所の最小数も、このようなクレジット管理コンフィギャレーションに示され得る。
【００８８】
幾つかの他のリソースが、リソース３１０、特に例えば第２の発信リソースにデータを送るよう設計され得る。リソース３１０は、他のクレジット管理コンフィギャレーション、例えば「ＣＣ２」コンフィギャレーションを有し得、それが第２の発信リソースからのデータ・フローを管理するのを許容する。
【００８９】
与えられたリソース３１０が配置する異なったクレジット管理コンフィギャレーション「ＣＣ１」及び「ＣＣ２」が、ネットワーク・コントローラ３００によって予め創設された順番またはシーケンスでこのリソース３１０によって用いられ得る。
【００９０】
その機能においてリソース３１０のアーキテクチャが創成された、幾つかの可能性に従って、特にその入力記憶手段の機能において、例えばリソース３１０の通信コントローラ入力３１４に関連した入力ＦＩＦＯユニットの数の機能において、このリソース３１０は、それが配置するクレジット管理コンフィギャレーションの中で、１つまたは複数の入力ＦＩＦＯのための双方の単一のクレジット管理コンフィギャレーション、または幾つかのクレジット管理コンフィギャレーションを同時に用いることができるということが提供され得る。
【００９１】
さらに、「ＣＣ１」及び「ＣＣ２」コンフィギャレーションのためにちょうど記載されてきたものとは異なった一実施形態によれば、与えられたクレジット管理コンフィギャレーションは、単一のものの代わりに幾つかの「発信」リソースに向けられたクレジットの１つの送信に関するということが提供され得る。
【００９２】
ネットワーク・コントローラがリソース３１０に送るコンフィギャレーションの中で、「データ管理」と称する型の１つまたは複数のコンフィギャレーションも現出する。データ管理コンフィギャレーションは、動作コアによって、かつリソースのインターフェースによっての双方によって用いられ得るプログラムである。この型のコンフィギャレーションは、リソースの動作コアに、このコアがリソースに入るデータを処理する態様を示す部分を備え、そして、例えば、このデータが処理されてしまうと、この同じリソースのネットワーク・インターフェースに、データの送信先を示すもう１つの部分を備える。
【００９３】
この方法で、ネットワーク・コントローラ３００は、例えば、第２のステップにおいて、２つの異なったデータ管理プログラムまたはコンフィギャレーション「ＣＤ１」及び「ＣＤ２」を備える命令「ｗｒｉｔｅ  ｃｏｎｆｉｇ  （ＣＤ１、ＣＤ２）」を、リソース３１０に送る（図３Ｂ）。
【００９４】
データ管理コンフィギャレーションの１つにおいて、例えば「ＣＤ１」コンフィギャレーションをリソース３１０が受信することは、リソース３１０のデータを受信するよう設計された「第１の受信リソース」と称するリソースの同一性において特に示され得る。
【００９５】
第１の受信リソースの同一性（identity）は、例えば同一性番号を用いて直接に、または、例えばこの受信リソースに導く経路を示すことによって間接的に示され得る。「ＣＤ１」コンフィギャレーションにおいて、また、第１の受信リソースに送られるべきデータの数が、リソース３１０のために示され得る。例えば受信リソースの入力におけるＦＩＦＯユニットであるデータ・レジスタが選択されるべきであり、または受信リソースのコンフィギャレーション・レジスタが選択されるべきであり、それにより、データ送信のための閾値、すなわち、データ・パケットの送信に先立って、ＦＩＦＯユニット２２８及び／または２２９に存在するデータの最少数が、また、このようなデータ管理コンフィギャレーション内に示され得る。
【００９６】
幾つかの他のリソースは、リソース３１０、特に第２の受信リソース３５０のデータを受信するよう設計され得る。リソース３１０は、この方法で、他のデータ管理コンフィギャレーション、例えば「ＣＤ２」コンフィギャレーションを配置することができ、それがこの第２の受信リソース３５０の方向にデータ・フローを管理するのを許容する。
【００９７】
幾つかの可能性によれば、リソース３１０のアーキテクチャが創成されてしまったその機能において、特に、リソース３１０の出力通信コントローラ３１５に関連したＦＩＦＯユニットの数の機能において、後者は、それが配置するデータ管理コンフィギャレーションのセットの中で、一度に単一のデータ管理コンフィギャレーションを用い得るか、もしくは幾つかのデータ管理コンフィギャレーションを同時に用い得る。
【００９８】
さらに、データ管理コンフィギャレーション「ＣＤ１」及び「ＣＤ２」に対して今説明してきたものとは異なった１つの履行モードが提供され得、それにおいて、データ管理コンフィギャレーションは、単一の代わりに幾つかの「受信」リソースにデータを送信することに関している。
【００９９】
リソース３１０が配置する、異なった「ＣＤ１」及び「ＣＤ２」データ管理コンフィギャレーションのすべては、さらに、以後説明するタグ機構によって創設される順番またはシーケンスに従って、このリソース３１０によって用いられる。
【０１００】
クレジット管理及びデータ管理コンフィギャレーションが、ネットワーク・コントローラによって送られてしまうと、第２のネットワーク段階が開始し得、それにおいて、異なったリソースが互いに通信して、各々、データ・フロー処理の部分を実行する。
【０１０１】
この第２の段階は、開始指令を送ることによってネットワーク・コントローラによって初期設定される。リソースがこの指令を受信する順番は、ランダムであって良い。この開始指令は、それを受信するリソースに、ネットワークの１つまたは複数の他のリソースとの通信を開始することを示す。この指令は、また、「チェイニング（連鎖）・コンフィギャレーション」と称するプログラムまたはコンフィギャレーションをも含み得る。「チェイニング」コンフィギャレーションは、順番またはシーケンスが創設されるのを許容し、それにおいて、リソースは、それが配置する、異なったクレジット管理コンフィギャレーションを用いる。このようなチェイニング・コンフィギャレーションを受信する、与えられたリソースは、処理中にクレジット管理コンフィギャレーションを自動的に変更することができる。この方法で、処理中に、共通クレジット管理コンフィギャレーションを終わりまで、もしくはクレジットが使い切られてしまうまで、使ってきた、与えられたリソースは、使われるべき後続のクレジット管理コンフィギャレーションを識別して、この次のクレジット管理コンフィギャレーションを共通のクレジット管理コンフィギャレーションとして用いることができる。
【０１０２】
第１の例において、リソース３１０は、「ＣＣ１」クレジット管理コンフィギャレーションのｋ倍（ｋは整数）を連続して用いることをそれに知らせるチェイニング・コンフィギャレーションを、ネットワーク・コントローラ３００から受信することができる。
【０１０３】
もう１つの例において、リソース３１０は、「ＣＣ１」クレジット管理コンフィギャレーションのｋ倍（ｋは整数）を連続して用いること、そして次に、「ＣＣ２」クレジット管理コンフィギャレーションのｍ倍（ｍは整数）を用いること、をそれに知らせるチェイニング・コンフィギャレーションを受信することができる。
【０１０４】
第３の例において、リソース３１０は、「ＣＣ１」、次に「ＣＣ２」コンフィギャレーションのｎ倍（ｎは整数）を蓄積して用いることをそれに知らせるチェイニング・コンフィギャレーションを受信することができる。
【０１０５】
第４の例において、リソース３１０は、「ＣＣ１」コンフィギャレーションを無制限に用いることをそれに知らせるチェイニング・コンフィギャレーションを受信することができる。
【０１０６】
図３Ｃは、リソース３１０が、命令「ｇｏ  ＣＣ１  ｔｈｅｎ  ＣＣ２」を受信する例によって与えられる１つの場合を示す。この命令は、リソース３１０のための通信を開始する順番を含み、それにより、チェイニング・コンフィギャレーションは、「ＣＣ１」クレジット管理コンフィギャレーション、次に、「ＣＣ２」クレジット管理コンフィギャレーションを用いることをリソース３１０に知らせる。
【０１０７】
このような命令は、リソース３１０の復号器モジュール３１２によってまず復号され、コンフィギャレーション管理モジュール３１３に送信され、該モジュール３１３は、入力通信コントローラ３１４において選択された第１のクレジット管理「ＣＣ１」コンフィギャレーションをロードすることを決定する。このことは、入力通信コントローラ３１４のカウンタに、「ＣＣ１」コンフィギャレーションにおけるクレジットの全数がロードされ、そしてこの入力通信コントローラ３１４の局部レジスタに、このコンフィギャレーション「ＣＣ１」の他の情報がロードされるということを意味する。
【０１０８】
「ＣＣ１」コンフィギャレーションに関連した入力ＦＩＦＯユニットの内容が次にチェックされる。クレジットのための送信閾値と共にこのＦＩＦＯユニットにおいて利用可能な空間に依存して、情報コントローラは、１つまたは複数の第１のクレジット・パケット「ｃｒｅｄｉｔｓ  １−０」が、前記第１の発信リソース３２０に送られたか（図３Ｄ）否かを決定する。それをするために、情報コントローラは、経路上の情報、「ＣＣ１」コンフィギャレーションに書き込まれた送信先レジスタ及びクレジット送信閾値を用いることによりヘッダ・パケットを創成する。並列して、第１の発信リソース３２０に送られるべき利用可能なクレジットの全数が減分され、そして第１の発信リソース３２０に送られるクレジットの数は、増分される。
【０１０９】
第１の発信リソース３２０は、次に、クレジット・パケット「ｃｒｅｄｉｔｓ  １−０」を受信し、これらのクレジットを、受信されたクレジット・パケット「ｃｒｅｄｉｔｓ  １−０」における情報に応じて、そのレジスタの１に加える。
【０１１０】
この第１の発信リソース３２０は、最初に、データが送られるのを許容するために用いられる、特にレジスタまたはＦＩＦＯユニットが示されるデータ管理コンフィギャレーションを受信する。そのデータ管理コンフィギャレーション、及び第１の発信リソース３２０が配置する利用可能なデータに従って、後者は、次に、１つまたは複数の第１のデータ・パケット「ｄａｔａ  １−０」をリソース３１０に送るか否かを決定する。
【０１１１】
リソース３１０がデータ「ｄａｔａ  １−０」を受信するとき、このリソース３１０が第１の発信リソース３２０に送ることができるクレジットの数は、次に、減分される。１つまたは複数の新しいクレジット・パケットの発信が、次に、トリガされる。前記クレジットに依存するデータのクレジット発信／受信のこの機構は、次に、「ＣＣ１」コンフィギャレーションにおけるクレジットの全数が使い切られるまで続く。
【０１１２】
第１の発信リソース３２０から与えられたリソース３１０に送られる「ｄａｔａ  １−０」に関しては、このデータは、パケットのセットの形態にあり得、それにおいて、例えばヘッダに、少なくとも１つのタグ「ｔａｇ−１」が現出する。このタグｔａｇ−１は、リソース３１０が採用しなければならない、特に前記データを処理しなければならない「ＣＤ１」及び「ＣＤ２」コンフィギャレーションの中で、共通データ管理コンフィギャレーションを、第１の発信リソース３２０からデータを受信する、与えられたリソース３１０に示すことを可能とする。この方法で、タグ「ｔａｇ−１」は、リソース３１０に、後者がデータ（特にそれが受信するｄａｔａ  １−０）を処理しなければならない態様、及びそれが処理されたときのこのデータの送信先を示すことができる。
【０１１３】
タグ「ｔａｇ−１」は、第１のリソース３２０によって発せられたデータ・パケットを処理するために用いられるべき共通データ管理コンフィギャレーション、例えば「ＣＤ１」コンフィギャレーションを示す特別な指令を含む。コア及び出て行く通信の「ＣＤ１」データ管理コンフィギャレーションは、次に、リソース３１０の局部レジスタにロードされる（図３Ｅ）。リソース３１０の出て行く通信に関しては、出て行く情報コントローラ３１５の局部レジスタには、データ合計、データ送信閾値、及びデータの送信のための出て行く情報コントローラ３１５に関連したレジスタまたはＦＩＦＯユニットがロードされる。
【０１１４】
リソース３１０は、次に、第１の発信リソース３２０によって発信されたｄａｔａ  １−０を処理する。リソース３１０の動作コアは、「ＣＤ１」データ管理コンフィギャレーションによって示されたモードに従って、この処理を実行する。
【０１１５】
「ＣＣ１」コンフィギャレーションに示されたクレジットの全数が第１の発信リソース３２０に送られてしまったとき、第２のクレジット管理コンフィギャレーション「ＣＣ２」は、次に、自動的にロードされ、そして図３Ｃに関して前述したステップ中にリソース３１０が通信コントローラ３００から受信したというコンフィギャレーションのチェイニング・コンフィギャレーションにおける指示に従って、共通のクレジット管理コンフィギャレーションとして作用する（図３Ｆ）．
【０１１６】
第１の発信リソース３２０は、次に、それがリソース３１０に送らなければならない最後の「ｄａｔａ  １−Ｎ」データの送信を完了する。新しい共通データ管理コンフィギャレーションがロードされ、後者が新しいタグを受信するやいなやリソース３１０によって用いられる。
【０１１７】
リソース３１０は、次に、リソース２００によってロードされた新しい共通クレジット管理コンフィギャレーション「ＣＣ２」の指示に従って、第２の発信リソース３３０に「ｃｒｅｄｉｔｓ  ２−０」クレジットを送ることを開始する（図３Ｈ）。
【０１１８】
リソース３１０がおそらく処理を行っていた、最初に第１の発信リソース３２０からのｄａｔａ  １−０は、次に、共通データ管理コンフィギャレーション（図３Ｉ）として作用する「ＣＤ１」データ管理コンフィギャレーションにおける指示に従うモードで、第１の受信リソース３４０に送られる。
【０１１９】
リソース３１０は、次に、「ｃｒｅｄｉｔｓ  ２−０」に応答して、第２の発信リソース３３０から「ｄａｔａ  ２−０」データを受信し、このデータのヘッダ「ｔａｇ−２」タグは、データ管理コンフィギャレーションを変えるよう、例えば、「ＣＤ２」コンフィギャレーションを用いるよう（図３Ｊ）、リソース３１０にアドバイスする。「ＣＤ２」データ管理コンフィギャレーションは、「ＣＤ１」データ管理コンフィギャレーションが終了されるや否や共通のデータ管理コンフィギャレーションとして用いられ得る。リソース３１０は、次に、共通のデータ管理コンフィギャレーション「ＣＤ１」に応じて（図示しないステップに従って）、第１の受信リソース３４０に対して向けられた、処理されたかもしれないまたは処理されなかったかもしれない最近の「ｄａｔａ  １−Ｎ」を送る。
【０１２０】
第２の発信リソース３３０は、おそらく、（図示しないステップに従って）同時にリソース３１０にデータを送る。
【０１２１】
次に、第１の受信リソース３４０に対して向けられた最近のｄａｔａ  １−０が送られるや否や、リソース３１０によって用いられる共通のデータ管理コンフィギャレーションが、次に、変更され得る。もう１つの「ＣＤ２」データ管理コンフィギャレーションは、次に、リソースの出て行く情報コントローラ３１５にロードされて後者により用いられ得る（図３Ｋ）。
【０１２２】
引き続き、リソース３１０によって用いられるデータ管理コンフィギャレーション「ＣＤ２」の指示に従って、後者は、第２の受信リソース３５０に、今処理されたばかりの「ｄａｔａ  ２−０」を発信する（図３Ｌ）。
【０１２３】
リソース３１０が、処理しなければならないすべてのデータを受信してしまい、そして送信しなければならないすべてのデータを送ってしまうと、それは動作を停止し、そしておそらく、ネットワーク・コントローラ３００（図３Ｍ）に「ＩＴ」インターラプションを送る。
【０１２４】
一実施形態によれば、インターラプションは、ネットワーク・コントローラによって送られたチェイニング・コンフィギャレーションの指示に従って、リソース３１０が、使おうとしているクレジット管理コンフィギャレーションのすべてを使ってしまったとき、ネットワーク・コントローラ３００に送られ得る。
【０１２５】
データ・フローの処理は、次に、処理すべきデータを有していたネットワーク・リソースの最後のものが、ネットワーク・コントローラに対して向けられたインターラプションを発するとき、停止され得る。
【０１２６】
第２の動作段階中、リソース３１０のインターラプションは、例えばこのリソース３１０がエラーを検出するか、またはそれに提供されるコンフィギャレーションに対応しないタグを受信する場合に、ネットワーク・コントローラに送られる。
【０１２７】
この方法で、説明した動作において、第２の段階におけるデータ・フローの処理は、従って、インターラプションなしで自動的に、及びネットワーク・コントローラからの何等の介在もなしで非同期的に、並びにクロックが必要とされることによる何等の同期もなしで、実行されるようである。
【０１２８】
さらに、通信のプログラミングがデータ処理のプログラミングとは独立しているので、前述したもののようなシステムは、リソースが処理する間の時間間隔、及び同じリソースが他のリソースと通信する間の時間間隔と重複するかもしくは一致するのをせいぜい許容するだけである。
【０１２９】
このようなネットワーク構造によるアプリケーションの例は、ＭＣ−ＣＤＭＡ（多重搬送波符号分割多重アクセスまたはＣＤＭＡ多重アンテナ）のような第四世代基準の遠隔通信フレームの処理であって良い。
【０１３０】
この型のアプリケーションのために、ネットワーク・コントローラは、複雑な決定を行うのに適したプロセッサであって良い。本発明に従って用いられるネットワーク・オン・チップによるフレームの処理は、次に、以下の通りである：
【０１３１】
フレームの受信時において、第１の動作モード、この動作モード中、フレームのヘッダが採用され得るならば、ネットワークが復号を行う。それを行うために、ネットワークのリソースのすべては、次に、フレーム・ヘッダの復号を処理するよう、特に、ネットワーク・コントローラによって構成される。
【０１３２】
第１のリソースは、例えば、フレームの開始を識別することに、及びもう１つのリソースにヘッダを自動送信することに専用化され得る。フレームの残りは、次に、メモリとして動作するリソースに送られる。
【０１３３】
ヘッダの復号の終わりで、最終的に完全に復号された情報を有するリソースは、復号が完了したということを示すために、インターラプションをネットワーク・コントローラに送る。
【０１３４】
第２の動作段階によれば、フレームの残りは、最初に復号されたヘッダによって与えられた情報に従って復号される。
【０１３５】
ネットワーク・コントローラは、次に、ヘッダ情報から、ネットワークのリソースの幾つかまたはおそらくは各々のために、新しいクレジット管理コンフィギャレーション及び計算を演繹（推論）する。
【０１３６】
リソースを再構成した後、ネットワーク・コントローラは、次に、開始命令を送る。開始命令がインターフェースによって受信されるや否や、フレーム処理の残りが自動的に実行される。異なったリソースは、各々、基本処理を行い、そして処理されたデータを交換するために、またはフレームを処理するために、互いに通信する。
【０１３７】
処理の終わりで、インターラプションは、ネットワーク・コントローラに警告するために、リソースによって送られる。
【０１３８】
このようなアプリケーションのために用いられるネットワーク・チップ構造は、本発明に従って、幾つかの種々のネットワーク・インターフェース・アーキテクチャを用い得る。
【０１３９】
この方法で、ネットワーク構造の或るリソースは、幾つかの他のリソースから順次にデータ・フローを受信するよう履行され得る。これは、例えば前記メモリに対する場合であって良い。
【０１４０】
ネットワーク構造の或るリソースは、幾つかの他のリソースから並列にまたは同時にデータ・フローを受信するよう履行され得る。これは、例えば、リソースから処理または計算パラメータを含むデータを受信し、かつ他のリソースから処理または計算するためのデータを含むデータを受信する、チャンネル評価リソースの場合であって良い。
【０１４１】
ネットワーク構造の或るリソースは、幾つかの他のリソースに並列にもしくは同時にデータ・フローを発信するよう履行され得る。これは、例えば、第１の復号リソースと、メモリとして作用する前記リソースとの間で受信するデータ・フローを分割する「受信」リソースの場合であって良い。
【０１４２】
或るリソースは、幾つかの他のリソースに順次にデータ・フローを発信するために用いられる。これは、例えば、チャンネル評価が行われるのを許容するリソースと、チャンネル修正が行われるのを許容するリソースとの間でその出力を分割するＯＦＤＭ処理（直交周波数分割多重）を許容するリソースの場合であって良い。
【０１４３】
参照文献
［１］：Christopher J. Glass and Lionel M. Ni; “The Turn Model for Adaptive Routing”; Advanced Computer Systems Laboratory, Department of Computer Science, 19th annual Symposium on Computer Architecture, May 19-21, 1992, 1992, pages 278-287.
［２］：Xiola Lin, Philipp K. Mckinley and Lionel M. Ni, “The Message Flow Model for Routing in Wormhole-Routed Networks”, IEEE Transactions on Parallel and Distributed Systems, vol. 6, No 7, July 1995, pages 755-760.
［３］：Khalid M. A1-Tawil and al, “A Survey and Comparison of Wormhole Routing Technique in Mesh Networks” King Fahd University of Petroleum and Minerals, IEEE Network, March/April 1997, pages 38-45.
【図面の簡単な説明】
【０１４４】
【図１】本発明により履行されるネットワーク・オン・チップ・アーキテクチャの例を示す図である。
【図２】本発明により履行されるネットワーク・オン・チップ・リソースの詳細な構造の例を示す図である。
【図３Ａ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｂ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｃ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｄ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｅ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｆ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｇ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｈ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｉ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｊ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｋ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｌ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【図３Ｍ】本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
【符号の説明】
【０１４５】
１１０      複数の要素
１１２      ネットワーク・コントローラ
１１４      リソース
１１５      リンク
１２０      ノード
２００      リソース
２０２      ネットワーク・インターフェース
２０４、２０６、２０８      計算ブロック・ユニット
２１２      モジュール
２１４      コンフィギャレーション管理モジュール
２１６      インターラプション管理モジュール
２１８      入力通信コントローラ・モジュール
２２０      出力通信コントローラ・モジュール
２２２      入力ポート
２２４      出力ポート
２２５、２２６      ＦＩＦＯユニット
２２８、２２９      ＦＩＦＯユニット
３００      ネットワーク・コントローラ
３１０      ネットワーク・リソース
３１２      復号器モジュール
３１３      コンフィギャレーション管理モジュール
３１４      入力通信コントローラ
３１５      出力通信コントローラ
３２０      第１の発信リソース
３３０      第２の発信リソース
３４０      第１の受信リソース
３５０      第２の受信リソース
【図１】
2006101525.tif 000003
【図２】
2006101525.tif 000004
【図３Ａ】
2006101525.tif 000005
【図３Ｂ】
2006101525.tif 000006
【図３Ｃ】
2006101525.tif 000007
【図３Ｄ】
2006101525.tif 000008
【図３Ｅ】
2006101525.tif 000009
【図３Ｆ】
2006101525.tif 000010
【図３Ｇ】
2006101525.tif 000011
【図３Ｈ】
2006101525.tif 000012
【図３Ｉ】
2006101525.tif 000013
【図３Ｊ】
2006101525.tif 000014
【図３Ｋ】
2006101525.tif 000015
【図３Ｌ】
2006101525.tif 000016
【図３Ｍ】
2006101525.tif 000017
【外国語明細書】
2006101525.tif 000018
2006101525.tif 000019
2006101525.tif 000020
2006101525.tif 000021
2006101525.tif 000022
2006101525.tif 000023
2006101525.tif 000024
2006101525.tif 000025
2006101525.tif 000026
2006101525.tif 000027
2006101525.tif 000028
2006101525.tif 000029
2006101525.tif 000030
2006101525.tif 000031
2006101525.tif 000032
2006101525.tif 000033
2006101525.tif 000034
2006101525.tif 000035
2006101525.tif 000036
2006101525.tif 000037
2006101525.tif 000038
2006101525.tif 000039
2006101525.tif 000040
2006101525.tif 000041
2006101525.tif 000042
2006101525.tif 000043
2006101525.tif 000044
2006101525.tif 000045
2006101525.tif 000046
2006101525.tif 000047
2006101525.tif 000048
2006101525.tif 000049
2006101525.tif 000050
2006101525.tif 000051
2006101525.tif 000052
2006101525.tif 000053
2006101525.tif 000054
2006101525.tif 000055
2006101525.tif 000056
2006101525.tif 000057
2006101525.tif 000058
2006101525.tif 000059
2006101525.tif 000060
2006101525.tif 000061
2006101525.tif 000062
2006101525.tif 000063
2006101525.tif 000064
2006101525.tif 000065
2006101525.tif 000066
2006101525.tif 000067