JP4763405B2 - データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ - Google Patents

データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ Download PDF

Info

Publication number
JP4763405B2
JP4763405B2 JP2005280776A JP2005280776A JP4763405B2 JP 4763405 B2 JP4763405 B2 JP 4763405B2 JP 2005280776 A JP2005280776 A JP 2005280776A JP 2005280776 A JP2005280776 A JP 2005280776A JP 4763405 B2 JP4763405 B2 JP 4763405B2
Authority
JP
Japan
Prior art keywords
resource
data
network
configuration
credit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005280776A
Other languages
English (en)
Other versions
JP2006101525A (ja
Inventor
ファビエン・クレルミディ
ディディエール・ラタール
ディディエール・バリュー
クリスチャン・ベルナール
Original Assignee
コミッサリア ア レネルジー アトミーク エ オ ゼネルジ ザルタナテイヴ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コミッサリア ア レネルジー アトミーク エ オ ゼネルジ ザルタナテイヴ filed Critical コミッサリア ア レネルジー アトミーク エ オ ゼネルジ ザルタナテイヴ
Publication of JP2006101525A publication Critical patent/JP2006101525A/ja
Application granted granted Critical
Publication of JP4763405B2 publication Critical patent/JP4763405B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、NoCすなわち“ネットワーク・オン・チップ(Network on Chip)”の分野に関するものである。本発明は、改良されたネットワーク・オン・チップ構造、並びにかかるネットワークにおける改良された通信及び/またはデータ処理方法に関するものである。
この構造の1つの独特な特徴は、完全に非同期的な態様で動作することができ、何等特別の論理を必要としないと言うことである。
現在、チップの異なったモジュール間での通信を創成するために、主に用いられているのは、バス・トポロジ手段である。この型のトポロジをもって、互いに通信するべきチップのモジュールは、それらが例えば順番にデータを発進するように用いる同じ通信媒体に接続される。バスまたはアービタと称される1つの中央素子は、バス割り当て競合を避けるために、異なったモジュールのための媒体へのアクセス権を提供する。
このシステムの主な欠点は、該システムが、高い待ち時間で低い通信フロー・レートを有するということであり、並びに特にクロック・ツリーに関するものとしてかつ容量性充電の問題に起因して作るのがますます困難であるということである。さらに、チップのモジュールのすべてから作られるアプリケーションにチップの通信バスによって保証されるフロー・レートを正確に適合させることが困難である。さらに、かかるシステムは、与えられたアプリケーションに対して一般に非常に特定的であり、或るアプリケーションに対して一度設計されてしまうと、別のアプリケーションに対して再使用されるのを阻止する。
上述の問題を改善する目的で、ネットワーク・オン・チップすなわちNoCが出現した。これらのネットワーク・オン・チップは、管理されるべきネットワークの異なったエレメントまたはリソース間で通信を許容するインターフェース・レイヤを用いる。
データ処理フローを行う目的で、このようなネットワーク・オン・チップは、1つの既知の動作モードによれば、ネットワークの各リソースが、1つまたは複数の発信リソースからのデータのセットを処理し、この処理の結果を、先に定義した1つのシナリオに従って1つまたは複数の受信リソースに送り戻すのを許容する。リソースがデータを処理してしまうと、処理されたデータの送信先が、汎用コントローラまたはネットワーク・コントローラによって概して決定される。
処理中にしばしば、前記ネットワーク・コントローラは、ネットワークを通過するデータ・フローに関して決定をしなければならない。
ネットワーク・コントローラは、あらゆる瞬間において、データ・フローの進行に追随するよう履行される。そうするために、それは、発信リソースに送信命令を送り、次に、該リソースに計算命令を送る。第1の可能性において、リソースは、後者が例えばインターラプションを介して実行している処理の進行状況についてネットワーク・コントローラに知らせ得る。ネットワーク・コントローラは、絶え間なくインターラプションを受信しそうであるので、データ・フローは、パルス化される。
もう1つの可能性において、リソースは、後者が例えばネットワーク・コントローラ・レジスタに送られるフラッグにより実行されてしまった処理の終了についてネットワーク・コントローラに知らせ得る。後者は、次に、処理の進行をチェックするために前記レジスタを規則正しく掃引する。
これらの2つの動作の型は、非常に信頼性があるが、待ち時間については非常に効率的ではない。
1つの提案され改善されたネットワーク・インターフェースは、“An Efficient On Chip Network Interface Offering Guaranteed Services, Shared-Memory Abstraction, and Flexible Network Configuration” Proceedings of DATA conf., 2004 においてRadulescu 等によって為された。
この文献は、特に、ネットワークの方向に調整されるべきインターフェースが使用されるようにして、TDMA(時分割多重アクセス)及び信用システムがトラフィックを許容する同期構造を記載している。
このインターフェースは、データのルーティング及び時分割多重アクセスに関するものとして設定され得る。しかしながら、この文献で提案されたもののようなネットワーク・インターフェースは、データ・フローに適していない。インターラプションを用いずに通信をプログラミングすることは、また、この型のインターフェースでは複雑であることが判明し得る。
また、現存の構造に関して通信が単純化される、データ・フローに適合された新しいネットワーク・オン・チップ構造を見つける問題もある。
本発明は、特に、待ち時間について、かつネットワークを形成する異なった素子間の通信の導入の簡単さについて、既知の従来技術の方法に対して改善された、ネットワーク・オン・チップにおけるデータ処理方法を提案するものである。
ネットワークは、互いの間で通信できかつ処理できる複数の要素またはリソース、並びにクレジットのシステムを初期設定することによりネットワークにおける通信を初期設定することができる少なくとも1つの要素または「ネットワーク・コントローラ」、から形成される。
本発明の処理プロセスは、少なくとも第1のリソースと少なくとも第2のリソースとの間で少なくとも第1の通信ステップを含み、前記通信ステップは、
a)第2のリソースに向けられた第1の複数の特別なデータまたはクレジットの第1のリソースによる少なくとも1回の発信ステップと、
b)第2のリソースによって送られた処理するべき第1の複数のデータの第1のリソースによる少なくとも1回の受信ステップであって、第1のリソースに向けられる処理すべき第2のデータ・リソースによる発信が、第1のリソースによって発信されたクレジットを第2のリソースによって受信された後に、許可される、ことを含む。
この方法で、このプロセスは、リソースによって発信される処理すべきデータが1つまたは複数の受信リソースによって正しく受信され、かつネットワーク・リソースの各々に入るデータ・フローを同期化させるのを保証する。
処理は、第1のリソースと、第2のリソースまたは第3のリソースとの間の少なくとも1つの第2の通信ステップを含むことができ、該第2の通信ステップは、
a’)第2のリソースまたは第3のリソースに向けられた第2の複数の特別なデータまたはクレジットの第1のリソースによる少なくとも1回の発信ステップと、
b’)第2のリソースまたは第3のリソースによって送られた処理するべき第2の複数のデータの第1のリソースによる少なくとも1回の受信ステップと、
を含む。
本発明のデータ処理方法において、第1のリソースは、第2のリソースまたは第3のリソースによってそれが受信するデータの少なくとも部分を処理することができる。この処理は、第1のリソースの性質に依存し、例えば、第1のリソースが受信するデータの少なくとも部分の記憶であって良く、または、もう1つの例によれば、第1のリソースが受信するデータの少なくとも部分に対する計算であって良く、もしくは、第3の例によれば、第1のリソースが受信するデータの少なくとも部分の復号(デコーディング)であって良い。
処理すべき第1及び/または第2の複数のデータの受信に続いて、第1のリソースは、第4のリソースに、処理すべきデータ及び/または処理されるデータを送ることができる。
本発明によって履行される方法は、ステップb)中に第1のリソースによって受信される処理するべきデータの少なくとも部分、及び/またはステップb)中に第1のリソースによって受信されかつ第1のリソースによって処理されるデータの少なくとも部分を、ステップa’)の前に、またはステップa’)及びb’)の間に、またはステップb’)の後に、第4のリソースに発信するステップを含むことができる。
この方法で、本発明によって履行されるデータ処理方法は、リソースがデータ処理に打ち込む瞬間もしくは時間間隔が、可能な限り、リソースが他のリソースとの通信に打ち込む瞬間もしくは時間間隔と一致されるもしくは併合されることを許容する。
ネットワークのリソース間の通信の開始に先立って、ネットワークの種々のリソースに向けられるプログラミングもしくはコンフギャレーションのネットワーク・コントローラによる1つまたは幾つかの送信ステップが行われる。
従って、本発明の方法は、データ管理コンフィギャレーション・データを前記ネットワーク・コントローラによって第1のリソースに発信する前に、データ上における1つまたは複数の処理の型、及び/または処理されるまたは処理されるべきデータが送られる少なくとも1つの他のリソースを示すステップを含み、次に、第1のリソースのメモリにこのデータ管理コンフィギャレーション・データを記憶するステップを含む。第1のリソースは、データを処理する1つまたは複数の型、及び/または処理されるまたは処理されるべきデータが送られる少なくとも1つの他のリソースを示すデータ管理コンフィギャレーション・データを記憶することができる。
本発明のプロセスのステップb)中及び/またはステップb’)中に受信された処理すべきデータは、記憶された複数のデータ管理コンフィギャレーションから、データ管理コンフィギャレーション選択データを含むタグ・データと称されるデータを含み得る。
この方法で、リソースによって受信された処理すべきデータは、このリソースの動作が、前記データ上に実行すべき処理に関して、並びに、処理されると前記データの未来の送信先に関して、プログラムされるのを許容する。
第1のリソースによって発信されるクレジットの送信先は、第1のリソースが用いる共通のプログラミングもしくは「クレジット管理コンフィギャレーション」において限定され得、該共通の「クレジット管理コンフィギャレーション」は、第1のリソースのメモリに記憶された幾つかの異なったクレジット管理コンフギャレーションから選択される。
第1のリソースのクレジット管理コンフィギャレーションは、メモリに記憶される前に、そしておそらくは、ネットワークのリソース間でのデータまたはクレジットの任意の交換に先立って、前記ネットワーク・コントローラによって第1のリソースに送られ得る。
この方法で、リソースが1つまたは複数の他のリソースと実行する一連の通信が予めプログラムされ得、そしてデータ処理中に自動的に実行される。
プロセスのステップa)及び/またはa’)は、ネットワーク・コントローラがネットワークにおける通信を開始するための命令を発行することによって先行され得る。
ネットワーク・コントローラは、ステップa)及び/またはステップa’)に先立って、1つまたは複数のクレジット管理コンフィギャレーションの順次選択命令を送ることもあり得る。
1つの特定の実施形態によれば、1つまたは複数のクレジット管理コンフィギャレーションの前記順次選択命令は、ネットワークにおける通信を開始するための命令に含まれ得る。
本発明は、互いの間で通信できかつ処理できる複数の要素またはリソース、並びにネットワークにおける通信を初期設定することができる少なくとも1つの要素または「ネットワーク・コントローラ」、から形成されるネットワーク・オン・チップを提案するものである。通信及びそれが実行する処理に関するリソースの動作は、このリソースが用いるプログラミングもしくはコンフィギャレーションにおいて決定される。本発明によって履行されるネットワーク・アーキテクチャにおいて、リソースは、データ処理中、並びに2つのデータ処理動作間でリセットされ得る。
1つのリソースは、このように、ネットワーク・コントローラによって送られる命令に続いて他のリソースとの少なくとも第1の一連の通信を実行するように導かれ、次に、第1の一連から少なくとも第2の一連の異なった通信を実行するように導かれ、他のリソースとは、前記命令に続くかもしくはネットワーク・コントローラによって送られるもう1つの命令に続く。
データ・フローの処理中、このようなアーキテクチャを有するリソースは、また、少なくとも第1の一連の処理を実行するようにも導かれ、次に、第1の一連とは異なる少なくとも第2の一連の処理を実行するようにも導かれ得る。
このようなアーキテクチャにおけるデータ・フローは、異なったリソースの通信もしくはコンフギャレーションに関して取られるべき複雑な決定が無い限り、流れ得る。
本発明は、ネットワークの1つまたは幾つかのリソースと通信ができ、かつ少なくとも1つのデータ処理動作を実行することができる少なくとも1つの要素またはリソースを含み、前記リソースは、ネットワークとのインターフェースを形成する手段を含むネットワーク・オン・チップ・デバイスであって、ネットワークとのインターフェースを形成する手段は、
ネットワークの1つまたは複数のリソースにクレジットを発信することができる特別なデータまたはクレジットを発信するための手段であって、クレジットの送信先は、クレジット管理と称されるプログラミングまたはコンフィギャレーションの型に依存してクレジット発信手段によって発信され、
ネットワークの1つまたは複数のリソースからクレジットを受信することができる、クレジット受信手段と、
ネットワークの1つまたは複数のリソースに処理すべきデータを発信することができる、処理すべき、データ発信手段と、
ネットワークの1つまたは複数のリソースから処理すべきデータを受信することができるデータ受信手段と、
を含み、ネットワークとのインターフェースを形成する手段は、とりわけ、
ネットワークの前記他のリソースの少なくとも1つの第1のリソースへの処理すべきデータの前記データ発信手段による発信を、前記クレジット受信手段による前記第1のリソースからのクレジットの受信に続いて、許可するための手段と、
幾つかの異なったクレジット管理コンフィギャレーションを記憶することができる記憶手段と、
幾つかの異なったクレジット管理コンフィギャレーションから少なくとも1つの共通のクレジット管理コンフィギャレーションを選択することができるコンフィギャレーション選択手段と、
を備えるネットワーク・オン・チップ・デバイスに関する。
本発明によって用いられるリソースのネットワーク・インターフェースを形成する手段は、さらに、少なくとも1つの第2のリソースからの前記データ受信手段によるデータの受信を、前記第2のリソースからのクレジットの受信に続いて、許可するための手段を備え得る。
クレジット発信手段によって発信されるクレジットの送信先は、ネットワーク・インターフェース手段によって用いられるクレジット管理プログラミングもしくはコンフィギャレーションの型に依存し得る。ネットワーク・インターフェース手段は、また、さらに、
幾つかの異なったクレジット管理コンフィギャレーションを記憶することができる記憶手段と、
ネットワーク・コントローラからの少なくとも1つの順次命令に従って、前記幾つかのクレジット管理コンフィギャレーションから少なくとも1つの共通のクレジット管理コンフィギャレーションを選択することができるコンフィギャレーション選択手段と、
を含む。
データ発信手段により発信されることができるデータの送信先は、ネットワーク・インターフェース手段により用いられるデータ管理プログラミングもしくはコンフィギャレーションの型に依存し得る。インターフェース記憶手段は、また、幾つかの異なったデータ管理コンフィギャレーションが記憶されるのをも許容し得る。コンフィギャレーション選択手段は、さらに、前記データ受信手段によって受信された処理すべきデータ・パケットに含まれる少なくとも1つの選択もしくは「タグ」データに従って、前記幾つかのデータ管理コンフィギャレーションの中から、少なくとも1つの共通データ管理コンフギャレーションを選択するのを許容し得る。
リソースのネットワーク・インターフェースを形成する手段は、さらに、コントローラにメッセージを発信する手段、特に、例えば、リソースがネットワーク・コントローラに動作または処理が終了したこともしくはエラーが発生したことを知らせるために、インターラプションを発信する手段を含み得る。
1つの特定の実施形態によれば、本発明によるリソースは、入力における幾つかの同時のデータ及び/またはクレジット・フローを処理するための手段と、出力における幾つかの同時のデータ及び/またはクレジット・フローを処理するための手段と、を備え得る。
もう1つの特定の実施形態によれば、本発明によるリソースは、入力における幾つかの順次のデータ及び/またはクレジット・フローを処理する手段と、出力における幾つかの順次のデータ及び/またはクレジット・フローを処理する手段と、を備え得る。
本発明は、添付図面を参照して、どんな意味においても制限的なものではなく、純粋に情報のためだけに提供される実施形態の説明を読んだ後には理解するのは一層容易であろう。
なお、異なった図面の同一、類似もしくは等価の部分は、1つの図面から別の図面に移るのを容易にするために、同じ参照数字を有する。
また、図面に示される異なった部分は、それらを理解するのを容易にするために、必ずしも均一な縮尺では示されてはいない。
図1は、本発明に従って用いられるネットワーク・オン・チップすなわちNoCアーキテクチャの例を示す。
このアーキテクチャは、互いに通信することができ、かつデータを交換することができる複数の要素110を備える。リンク115は、前記要素110が接続されるのを許容し、他方、ノード120は、通信の切換えのために異なったリンク115間で物理的な接続が創設されるのを許容する。ノード120は、また、例えば、異なったリンク115から発行された幾つかのデータ・パケットの通過の順序をアルバイトレートする(仲裁する)よう導かれ得る。この仲裁することは、例えば、固定の優先順位「ラウンド・ロビン」のシステムに従って、または時分割多重アクセスを用いてさえ実行され得る。切換えまたはルーティングは、文献[1]に限定された「奇数偶数順番モデル」、文献[2]に記載された「メッセージ・フロー・モデル」、または文献[3]に限定されたルーティング・プロセスを例えば用いて動的に実行され得る。ルーティングは、また、例えば、ノードに含まれたルーティング・テーブルにより、または水平・垂直ルーティング・アルゴリズムにより実行される静的ルーティングであっても良い。
図1に示されたネットワーク・オン・チップ・アーキテクチャの例は、メッシュまたはマトリクスのトポロジを有する。この方法で、各ノード120は、4つの他の隣接するノード並びに前記要素110の1つに接続される。
本発明に従って履行されるネットワーク・オン・チップ・アーキテクチャは、このトポロジに制限されず、例えば、ハイパーキューブ型トポロジ、もしくはスピンドル、リングまたはトーラス等の任意の他のトポロジを有していて良い。
このようなアーキテクチャに含まれる要素110のセットの中で、少なくとも1つの要素112は、マスタの役割を果たし、特に、ネットワーク上の通信を開始するのを許容する。「ネットワーク・コントローラ」と称するこの要素112は、従って、「リソース」114と称するネットワークの複数の他の要素間での通信をプログラミングする可能性を有し、そして、要素データの処理、例えば、計算またはデータ記憶またはデータ符合化/復号化のようなタスクを実行するのを許容する。
ネットワーク・コントローラ112は、例えば、ARM940、LEON、またはSPARCの種類のマイクロコントローラまたはプロセッサの形態を有し得る。後者は、また、特に、計算及び管理インターラプションを実行するための機能をも有し得る。本発明によるネットワーク・オン・チップ・アーキテクチャには、1つまたは幾つかのネットワーク・コントローラが具備され得る。
リソース114の各々は、例えば、プロセッサまたはDSP(ディジタル信号プロセッサ)の形態にある一般の型のものであって良く、もしくは、例えば、FFT(高速フーリエ変換)の計算における特別化されたモジュールのような、または、例えば、MPEG(移動画像専門グループ)符号化/復号化モジュールのような、もしくは、例えば、SRAM型(静的ランダム・アクセス・メモリ)のメモリ・モジュールのような、特殊化された処理モジュールの形態に例えばある特定型のものであっても良い。
ネットワーク構造の各リソース114は、特に、データ処理及び/または計算に専門化された「機能コア」と称する部分または手段、並びに、リソース114がネットワークと通信するのを許容する、「ネットワーク・インターフェース」と称するもう1つの部分または手段を備える。
リソース200の詳細な構造、一層詳細には、該リソースのネットワーク・インターフェース202を形成する手段、の一例が図2に示されている。
このネットワーク・インターフェース202は、まず、復号化されるべきリソース200から、そして他のリソースまたはネットワーク・コントローラから、入力に受信される指令を許容するモジュール212を備える。これらの指令の中には、特に、データ読取りまたは書込み指令があり得る。他のリソースからくる、「クレジットもしくは信用」と称する特別データ放出指令、ネットワーク・コントローラからの通信初期設定指令、もしくは、リソース200の或るモジュールの動作パラメータがセットされるのを許容するネットワーク・コントローラからのプログラミングまたはコンフィギャレーション、も受信され得る。
ネットワーク・インターフェースの202の、「コンフィギャレーション・マネージメント」214と称されるモジュールは、ネットワーク・インターフェース202の及び/またはリソース200の動作コア(図示せず)のパラメータをセットするように設計された異なった、プログラムまたは「コンフィギャレーション」を受信するよう設計される。これらのコンフィギャレーションまたはプログラムは、計算ブロック・ユニット204、206、208に属するレジスタ内のリソース200のメモリに記憶され得る。
ネットワーク・コントローラによって送られる指令または命令、及び/または、ネットワークの他のリソースから送られるデータ内に含まれるタグ、に依存して、モジュール214は、また、リソース200がメモリ内に有している記憶された前記コンフィギャレーションから1つまたは複数の共通のコンフィギャレーションを用いるべきか否かの決定を行うのを許容し得る。
例えば、「信用管理コンフィギャレーション」と称する型のコンフィギャレーションを用いて、コンフィギャレーション管理モジュール214は、特に、「ICC」(「入力通信コントローラ」)218と称される、セットされるべきネットワーク・インターフェース202のモジュールの動作パラメータを許容し得る。
入力通信コントローラ218は、1つまたは複数の入力記憶手段に関連され、該手段を通してリソースに入るデータが通る。これらの記憶手段は、例えば、1つまたは複数のFIFOユニット、例えば、2つのFIFOユニット225及び226の形態にあるか、もしくは、モジュール入力通信コントローラが、フィル・レート(fill rate)並びにフリー・アドレスを識別することができる1つまたは複数のメモリの形態にあって良い。
そのパラメータがどのようにセットされるかに依存して、入力通信コントローラ・モジュール218は、ネットワーク内の通信を同期化させるために履行される、信用放出機構を用いた、他のネットワーク・リソースに、リソース200が、「信用」と称する特別なデータを、特に、送信するのを許容する。
このような機構は、第1のリソースが、第2のリソースからくるデータを受信し、処理し、または送信するよう設計されている場合、第2のリソースに前以ってクレジットを送り、それにより、後者が、前記データを送るよう許可されて、第1のリソースが用いたクレジット・マネージメント・コンフィギャレーションに従って処理するか、送信する。
第1のリソースによって送られたクレジットの数は、この第2のリソースが第1のリソースに送るのを許可されたデータの量を、第2のリソースに示すことができる。このクレジットの数は、第1のリソースが有するフリー(空き)入力空間、並びに第1のリソースが第2のリソースから受信すると思われるデータの量に依存する。前述したように、このデータの量は、第1のリソースが用いる共通クレジット・マネージメント・コンフィギャレーション内に示される。
クレジットを受信した後に、放出することが許可されると、第2のリソースは、第1のリソースによって送られたクレジットの数が許可するのと同じ位の量のデータを放出することができる。この方法で、第1のリソースから第2のリソースに送られたクレジットは、第1のリソースに向けられる第2のリソースからのデータのために経路が開かれるのを許容する。このクレジット放出機構は、第2のリソースによって送られたデータが、第1のリソースによって正しく受信されるのを保証する。
「データ・マネージメント・コンフィギャレーション」と称するもう1つの型のコンフィギャレーションを用いて、コンフィギャレーション・マネージメント・モジュール214は、特に、リソース200の動作コア(図示せず)のパラメータがセットされるのを許容することができ、特に、リソース200が受信するデータをこの動作コアが処理する態様がセットされるのを許容する。例えば、動作コアがFFT処理を実行するよう設計されている場合、データ・マネージメント・コンフィギャレーションは、この処理を実行するために考慮されるべき計算ポイントの数を示すことができる。
第2のリソースから第1のリソースに発せられた処理すべきデータは、例えば、ヘッダまたは1つまたは複数のタグに出現するブロックまたはパケットの形態にある。これらのタグは、特に、識別が、前記データ・ブロックまたはパケットの幾つかまたは各々に帰属させられるのを許容し得る。この方法で、第1のリソースは、それが受信するパケットのスケジューリングを実行することができ、もしくは、実行されるべき新しい計算もしくは新しい処理の開始を識別することができる。タグは、また、第2のリソースからデータを受信する第1のリソースに、該データを処理するようこの第1のリソースが採用しなければならない共通のデータ管理コンフィギャレーションを示すのを許容する1つまたは複数の識別子をも含み得る。
前記「データ管理コンフィギャレーション」の助けを借りて、コンフィギャレーション管理モジュール214は、さらに、「OCC」(「出力通信コントローラ」)220と称するネットワーク・インターフェースのもう1つのモジュールの動作パラメータをセットし得る。
出力通信コントローラ・モジュール220は、1つまたは複数の出力記憶手段に関連し、該記憶手段を通してリソース200を離れるデータを通す。これらの記憶手段は、1つまたは複数のユニット、例えば、2つのFIFOユニット228及び229の形態にあって良く、または、1つまたは複数の順次アクセス書込み及びランダム読取りメモリの形態にあって良く、もしくは出力通信コントローラがフィル・レート(fill rate)及びフリー・アドレスを識別することができる1つまたは複数のメモリの形態にあって良い。
出力通信コントローラ220は、特に、そのパラメータがセットされる方法に依存して、タグに出現する、1つまたは複数の他の受信リソースに送信されるべきデータ・パケットを創成することができるように提供され得る。タグ・システムは、リソースに、特に、データ・パケットを受信するリソース200に、これらのデータ・パケットがどのリソースに再送出されるべきかを示す。この方法で、データ・パケットのヘッダ・タグは、後者が処理するデータの送信先をリソースに示す1つまたは複数の他の識別子を含み得る。
ネットワーク・インターフェース202は、また、入力ポート222及び出力ポート224をも含む。これらのポート222及び224は、それぞれ、リソース200に到着するデータもしくはクレジットが、後者の異なったモジュールに向けられるのを許容し、そして、リソース出力200において、データまたはクレジットの送出を帰属させるのを許容する。
本発明により用いられるネットワーク・オン・チップに属するリソース構造は、異なったネットワーク・リソースからの幾つかの入ってくるデータ・フローが処理されるのを許容し得る。この管理は、順次的にもしくは同時的に行われ得、例えば、前記リソースがその入力を有するFIFOユニット(ファースト・イン・ファースト・アウト:先入れ先出し)の形態にある受信手段の数に依存する。
同じ方法で、本発明により履行されるネットワーク・オン・チップに属するリソースは、異なったリソース行きの幾つかの出てくるデータ・フローが処理されるのを許容し得る。この管理は、順次的にもしくは同時的に行われ得、例えば、前記リソースがその入力を有するFIFOユニットの形態にある発信手段の数に依存する。
本発明によるネットワーク・オン・チップ構造の幾つかの可能な種々の履行によれば、データ・フロー及びクレジット・フローの管理は、ネットワークのリソースのすべてに対して同じであっても良く、または、互いのリソースとは異なっていても良い。
例えば同じ方法で、入力において単一のFIFOユニットを有しかつ出力において単一のFIFOユニットを有する少なくとも1つの第1のリソースに、入力において少なくとも2つの順次フローを処理させることができるようにしかつ出力において少なくとも2つの異なったリソースへの少なくとも2つの順次フローを生成させることができるようにすることが可能である。また、この同じネットワークの例において、入力において2つのFIFOユニットを有しかつ出力において1つのFIFOユニットを有する少なくとも1つの第2のリソースに、入力において2つの同時フローを処理させることができかつ出力において2つの順次フローを生成させることができるようにすることも可能である。この同じ例によれば、入力において2つのFIFOユニットを有しかつ出力において2つのFIFOユニットを有する第3のリソースに、入力において2つの同時フローを処理させかつ出力において2つの同時フローを処理させることができるようにすることも可能である。
リソース200の管理コンフィギャレーション・モジュール214は、また、もう1つのモジュール216の動作パラメータがセットされるのを許容し得、このことは、特にネットワーク・コントローラに対して意図された、そして、おそらくはリソース200の動作コア(図示せず)に対して意図された、インターラプションが生成されるのを許容する。このインターラプション管理モジュール216が生成することができるインターラプションの中で、「教育的な」と称するインターラプションがあり得、それは、例えば、リソース200が動作または処理を完了してしまったということをネットワーク・コントローラに警告するのを許容する。
例えば、リソース200が行わなければならないデータ処理のすべてを完了してしまった場合、インターラプション管理モジュール216は、ネットワーク・コントローラにインターラプションを送るということが提供され得る。
また、リソース200がそれにデータを送ることができるもう1つのリソース(図には示されていない)に対して向けられるすべてのクレジットの発信を完了してしまったとき、または、リソース200がそれにデータを送ることができる他のすべてのリソース(図には示されていない)に向けられるすべてのクレジットを発信するのを終了してしまったとき、リソース200のインターラプション管理モジュール216が、ネットワーク・コントローラに向けられるインターラプションを生成するということも提供され得る。
インターラプション管理モジュール216は、また、リソース200がエラーを検出した場合、または後者が処理することができない情報片を検出した場合、インターラプションを発信するようにも提供され得る。
例えば、このリソースが有するデータ管理コンフィギャレーションのいずれにも対応しない、リソース200によって受信されたデータ・パケットに含まれるタグの識別子の場合、リソース200は、ネットワーク・コントローラにインターラプションを発信し、それにより、後者が前記データ・パケットの処理の管理を引き受けるということが提供され得る。
もう1つの例において、例えば、フーリエ変換の計算を処理するリソース200の場合、インターラプション管理モジュール216は、処理レベルにおける飽和が検出されたときにネットワーク・コントローラに対して向けられるインターラプションを発生するように、もう1つのインターラプションが動作コアで生じるように、後者が進行中に処理を停止するように、提供され得る。
さて、図3A−3Mに関連して、本発明によるネットワーク・オン・チップ・アーキテクチャの動作、そして特に、ネットワーク310の与えられたリソースの動作の例を説明する。ネットワークは、この例においては、データ・フローの処理の部分として用いられる。
第1の段階において、前記処理の開始に先立って、ネットワーク・コントローラ300は、最初に、ネットワーク・リソースの各々に、特にリソース310に、コンフィギャレーションのセットを送る。これらのコンフィギャレーションは、リソースのネットワーク・インターフェース及び動作コアの双方に対して向けられるプログラムであり、後者は、前記処理中に用いることができる。
コンフィギャレーションは、特別なデータ・パケットの形態でネットワーク・コントローラ300によって送られ得る。これらの特別なデータ・パケットは、コンフィギャレーションを受信するリソースを示すフィールドを備えたヘッダ、並びにこのコンフィギャレーションが記憶されるレジスタによって形成され得る。
各リソースは、それに対して特定であるコンフィギャレーションのセットを受信する。リソースが受信しそうであるコンフィギャレーションのセットの中に、「クレジット管理」と称する型の1つまたは複数のコンフィギャレーションがあり得る。
クレジット管理コンフィギャレーションの役割は、ネットワークが飽和されるようになるのを回避するということに加えて、ネットワークの種々のリソース間での通信の同期化を確実にすることである。クレジット管理コンフィギャレーションは、前記リソースに入るデータ・フローが管理されるべきである態様を前記インターフェースに示す、リソースのネットワーク・インターフェースによって使用されるプログラムである。
この方法で、ネットワーク・コントローラ300は、例えば第1のステップで、2つの異なったプログラムまたはクレジット管理コンフィギャレーション「CC1」及び「CC2」を含む命令「write config(CC1、CC2)」を送る。リソース310は、次に、その復号器モジュール312によってこの命令を復号し、次に、そのコンフィギャレーション管理モジュール313(図3A)によって「CC1」及び「CC2」コンフィギャレーションを記憶する。
クレジット管理コンフィギャレーションにおいて、例えば、「CC1」クレジット管理コンフィギャレーションにおいて、リソース310にデータを発するように設計された、「第1の発信リソース」と称するリソースの同一性が特に示され得る。第1の発信リソースの同一性は、例えば同一性番号を用いて直接に、または例えばこの第1の発信リソースに導く経路を示すことによって間接的に、示され得る。「CC1」クレジット管理コンフィギャレーションにおいて、また、第1の発信リソースに送られるべきクレジットの数がリソース310に対して示される。クレジットのこの数は、第1の発信リソースがリソース310に発信するのを許可されたデータの量に対応する。クレジット発信レジスタは、選択されるべき出力通信コントローラ220に属し、この方法で、クレジットの送信のための閾値、すなわち、クレジットの送信に対してフリーであるFIFO228及び/または229におけるフリー(空き)場所の最小数も、このようなクレジット管理コンフィギャレーションに示され得る。
幾つかの他のリソースが、リソース310、特に例えば第2の発信リソースにデータを送るよう設計され得る。リソース310は、他のクレジット管理コンフィギャレーション、例えば「CC2」コンフィギャレーションを有し得、それが第2の発信リソースからのデータ・フローを管理するのを許容する。
与えられたリソース310が配置する異なったクレジット管理コンフィギャレーション「CC1」及び「CC2」が、ネットワーク・コントローラ300によって予め創設された順番またはシーケンスでこのリソース310によって用いられ得る。
その機能においてリソース310のアーキテクチャが創成された、幾つかの可能性に従って、特にその入力記憶手段の機能において、例えばリソース310の通信コントローラ入力314に関連した入力FIFOユニットの数の機能において、このリソース310は、それが配置するクレジット管理コンフィギャレーションの中で、1つまたは複数の入力FIFOのための双方の単一のクレジット管理コンフィギャレーション、または幾つかのクレジット管理コンフィギャレーションを同時に用いることができるということが提供され得る。
さらに、「CC1」及び「CC2」コンフィギャレーションのためにちょうど記載されてきたものとは異なった一実施形態によれば、与えられたクレジット管理コンフィギャレーションは、単一のものの代わりに幾つかの「発信」リソースに向けられたクレジットの1つの送信に関するということが提供され得る。
ネットワーク・コントローラがリソース310に送るコンフィギャレーションの中で、「データ管理」と称する型の1つまたは複数のコンフィギャレーションも現出する。データ管理コンフィギャレーションは、動作コアによって、かつリソースのインターフェースによっての双方によって用いられ得るプログラムである。この型のコンフィギャレーションは、リソースの動作コアに、このコアがリソースに入るデータを処理する態様を示す部分を備え、そして、例えば、このデータが処理されてしまうと、この同じリソースのネットワーク・インターフェースに、データの送信先を示すもう1つの部分を備える。
この方法で、ネットワーク・コントローラ300は、例えば、第2のステップにおいて、2つの異なったデータ管理プログラムまたはコンフィギャレーション「CD1」及び「CD2」を備える命令「write config (CD1、CD2)」を、リソース310に送る(図3B)。
データ管理コンフィギャレーションの1つにおいて、例えば「CD1」コンフィギャレーションをリソース310が受信することは、リソース310のデータを受信するよう設計された「第1の受信リソース」と称するリソースの同一性において特に示され得る。
第1の受信リソースの同一性(identity)は、例えば同一性番号を用いて直接に、または、例えばこの受信リソースに導く経路を示すことによって間接的に示され得る。「CD1」コンフィギャレーションにおいて、また、第1の受信リソースに送られるべきデータの数が、リソース310のために示され得る。例えば受信リソースの入力におけるFIFOユニットであるデータ・レジスタが選択されるべきであり、または受信リソースのコンフィギャレーション・レジスタが選択されるべきであり、それにより、データ送信のための閾値、すなわち、データ・パケットの送信に先立って、FIFOユニット228及び/または229に存在するデータの最少数が、また、このようなデータ管理コンフィギャレーション内に示され得る。
幾つかの他のリソースは、リソース310、特に第2の受信リソース350のデータを受信するよう設計され得る。リソース310は、この方法で、他のデータ管理コンフィギャレーション、例えば「CD2」コンフィギャレーションを配置することができ、それがこの第2の受信リソース350の方向にデータ・フローを管理するのを許容する。
幾つかの可能性によれば、リソース310のアーキテクチャが創成されてしまったその機能において、特に、リソース310の出力通信コントローラ315に関連したFIFOユニットの数の機能において、後者は、それが配置するデータ管理コンフィギャレーションのセットの中で、一度に単一のデータ管理コンフィギャレーションを用い得るか、もしくは幾つかのデータ管理コンフィギャレーションを同時に用い得る。
さらに、データ管理コンフィギャレーション「CD1」及び「CD2」に対して今説明してきたものとは異なった1つの履行モードが提供され得、それにおいて、データ管理コンフィギャレーションは、単一の代わりに幾つかの「受信」リソースにデータを送信することに関している。
リソース310が配置する、異なった「CD1」及び「CD2」データ管理コンフィギャレーションのすべては、さらに、以後説明するタグ機構によって創設される順番またはシーケンスに従って、このリソース310によって用いられる。
クレジット管理及びデータ管理コンフィギャレーションが、ネットワーク・コントローラによって送られてしまうと、第2のネットワーク段階が開始し得、それにおいて、異なったリソースが互いに通信して、各々、データ・フロー処理の部分を実行する。
この第2の段階は、開始指令を送ることによってネットワーク・コントローラによって初期設定される。リソースがこの指令を受信する順番は、ランダムであって良い。この開始指令は、それを受信するリソースに、ネットワークの1つまたは複数の他のリソースとの通信を開始することを示す。この指令は、また、「チェイニング(連鎖)・コンフィギャレーション」と称するプログラムまたはコンフィギャレーションをも含み得る。「チェイニング」コンフィギャレーションは、順番またはシーケンスが創設されるのを許容し、それにおいて、リソースは、それが配置する、異なったクレジット管理コンフィギャレーションを用いる。このようなチェイニング・コンフィギャレーションを受信する、与えられたリソースは、処理中にクレジット管理コンフィギャレーションを自動的に変更することができる。この方法で、処理中に、共通クレジット管理コンフィギャレーションを終わりまで、もしくはクレジットが使い切られてしまうまで、使ってきた、与えられたリソースは、使われるべき後続のクレジット管理コンフィギャレーションを識別して、この次のクレジット管理コンフィギャレーションを共通のクレジット管理コンフィギャレーションとして用いることができる。
第1の例において、リソース310は、「CC1」クレジット管理コンフィギャレーションのk倍(kは整数)を連続して用いることをそれに知らせるチェイニング・コンフィギャレーションを、ネットワーク・コントローラ300から受信することができる。
もう1つの例において、リソース310は、「CC1」クレジット管理コンフィギャレーションのk倍(kは整数)を連続して用いること、そして次に、「CC2」クレジット管理コンフィギャレーションのm倍(mは整数)を用いること、をそれに知らせるチェイニング・コンフィギャレーションを受信することができる。
第3の例において、リソース310は、「CC1」、次に「CC2」コンフィギャレーションのn倍(nは整数)を蓄積して用いることをそれに知らせるチェイニング・コンフィギャレーションを受信することができる。
第4の例において、リソース310は、「CC1」コンフィギャレーションを無制限に用いることをそれに知らせるチェイニング・コンフィギャレーションを受信することができる。
図3Cは、リソース310が、命令「go CC1 then CC2」を受信する例によって与えられる1つの場合を示す。この命令は、リソース310のための通信を開始する順番を含み、それにより、チェイニング・コンフィギャレーションは、「CC1」クレジット管理コンフィギャレーション、次に、「CC2」クレジット管理コンフィギャレーションを用いることをリソース310に知らせる。
このような命令は、リソース310の復号器モジュール312によってまず復号され、コンフィギャレーション管理モジュール313に送信され、該モジュール313は、入力通信コントローラ314において選択された第1のクレジット管理「CC1」コンフィギャレーションをロードすることを決定する。このことは、入力通信コントローラ314のカウンタに、「CC1」コンフィギャレーションにおけるクレジットの全数がロードされ、そしてこの入力通信コントローラ314の局部レジスタに、このコンフィギャレーション「CC1」の他の情報がロードされるということを意味する。
「CC1」コンフィギャレーションに関連した入力FIFOユニットの内容が次にチェックされる。クレジットのための送信閾値と共にこのFIFOユニットにおいて利用可能な空間に依存して、情報コントローラは、1つまたは複数の第1のクレジット・パケット「credits 10」が、前記第1の発信リソース320に送られたか(図3D)否かを決定する。それをするために、情報コントローラは、経路上の情報、「CC1」コンフィギャレーションに書き込まれた送信先レジスタ及びクレジット送信閾値を用いることによりヘッダ・パケットを創成する。並列して、第1の発信リソース320に送られるべき利用可能なクレジットの全数が減分され、そして第1の発信リソース320に送られるクレジットの数は、増分される。
第1の発信リソース320は、次に、クレジット・パケット「credits 10」を受信し、これらのクレジットを、受信されたクレジット・パケット「credits 10」における情報に応じて、そのレジスタの1に加える。
この第1の発信リソース320は、最初に、データが送られるのを許容するために用いられる、特にレジスタまたはFIFOユニットが示されるデータ管理コンフィギャレーションを受信する。そのデータ管理コンフィギャレーション、及び第1の発信リソース320が配置する利用可能なデータに従って、後者は、次に、1つまたは複数の第1のデータ・パケット「data 10」をリソース310に送るか否かを決定する。
リソース310がデータ「data 10」を受信するとき、このリソース310が第1の発信リソース320に送ることができるクレジットの数は、次に、減分される。1つまたは複数の新しいクレジット・パケットの発信が、次に、トリガされる。前記クレジットに依存するデータのクレジット発信/受信のこの機構は、次に、「CC1」コンフィギャレーションにおけるクレジットの全数が使い切られるまで続く。
第1の発信リソース320から与えられたリソース310に送られる「data 10」に関しては、このデータは、パケットのセットの形態にあり得、それにおいて、例えばヘッダに、少なくとも1つのタグ「tag1」が現出する。このタグtag1は、リソース310が採用しなければならない、特に前記データを処理しなければならない「CD1」及び「CD2」コンフィギャレーションの中で、共通データ管理コンフィギャレーションを、第1の発信リソース320からデータを受信する、与えられたリソース310に示すことを可能とする。この方法で、タグ「tag1」は、リソース310に、後者がデータ(特にそれが受信するdata 10)を処理しなければならない態様、及びそれが処理されたときのこのデータの送信先を示すことができる。
タグ「tag1」は、第1のリソース320によって発せられたデータ・パケットを処理するために用いられるべき共通データ管理コンフィギャレーション、例えば「CD1」コンフィギャレーションを示す特別な指令を含む。コア及び出て行く通信の「CD1」データ管理コンフィギャレーションは、次に、リソース310の局部レジスタにロードされる(図3E)。リソース310の出て行く通信に関しては、出て行く情報コントローラ315の局部レジスタには、データ合計、データ送信閾値、及びデータの送信のための出て行く情報コントローラ315に関連したレジスタまたはFIFOユニットがロードされる。
リソース310は、次に、第1の発信リソース320によって発信されたdata 10を処理する。リソース310の動作コアは、「CD1」データ管理コンフィギャレーションによって示されたモードに従って、この処理を実行する。
「CC1」コンフィギャレーションに示されたクレジットの全数が第1の発信リソース320に送られてしまったとき、第2のクレジット管理コンフィギャレーション「CC2」は、次に、自動的にロードされ、そして図3Cに関して前述したステップ中にリソース310が通信コントローラ300から受信したというコンフィギャレーションのチェイニング・コンフィギャレーションにおける指示に従って、共通のクレジット管理コンフィギャレーションとして作用する(図3F).
第1の発信リソース320は、次に、それがリソース310に送らなければならない最後の「data 1N」データの送信を完了する。新しい共通データ管理コンフィギャレーションがロードされ、後者が新しいタグを受信するやいなやリソース310によって用いられる。
リソース310は、次に、リソース200によってロードされた新しい共通クレジット管理コンフィギャレーション「CC2」の指示に従って、第2の発信リソース330に「credits 20」クレジットを送ることを開始する(図3H)。
リソース310がおそらく処理を行っていた、最初に第1の発信リソース320からのdata 10は、次に、共通データ管理コンフィギャレーション(図3I)として作用する「CD1」データ管理コンフィギャレーションにおける指示に従うモードで、第1の受信リソース340に送られる。
リソース310は、次に、「credits 20」に応答して、第2の発信リソース330から「data 20」データを受信し、このデータのヘッダ「tag2」タグは、データ管理コンフィギャレーションを変えるよう、例えば、「CD2」コンフィギャレーションを用いるよう(図3J)、リソース310にアドバイスする。「CD2」データ管理コンフィギャレーションは、「CD1」データ管理コンフィギャレーションが終了されるや否や共通のデータ管理コンフィギャレーションとして用いられ得る。リソース310は、次に、共通のデータ管理コンフィギャレーション「CD1」に応じて(図示しないステップに従って)、第1の受信リソース340に対して向けられた、処理されたかもしれないまたは処理されなかったかもしれない最近の「data 1N」を送る。
第2の発信リソース330は、おそらく、(図示しないステップに従って)同時にリソース310にデータを送る。
次に、第1の受信リソース340に対して向けられた最近のdata 10が送られるや否や、リソース310によって用いられる共通のデータ管理コンフィギャレーションが、次に、変更され得る。もう1つの「CD2」データ管理コンフィギャレーションは、次に、リソースの出て行く情報コントローラ315にロードされて後者により用いられ得る(図3K)。
引き続き、リソース310によって用いられるデータ管理コンフィギャレーション「CD2」の指示に従って、後者は、第2の受信リソース350に、今処理されたばかりの「data 20」を発信する(図3L)。
リソース310が、処理しなければならないすべてのデータを受信してしまい、そして送信しなければならないすべてのデータを送ってしまうと、それは動作を停止し、そしておそらく、ネットワーク・コントローラ300(図3M)に「IT」インターラプションを送る。
一実施形態によれば、インターラプションは、ネットワーク・コントローラによって送られたチェイニング・コンフィギャレーションの指示に従って、リソース310が、使おうとしているクレジット管理コンフィギャレーションのすべてを使ってしまったとき、ネットワーク・コントローラ300に送られ得る。
データ・フローの処理は、次に、処理すべきデータを有していたネットワーク・リソースの最後のものが、ネットワーク・コントローラに対して向けられたインターラプションを発するとき、停止され得る。
第2の動作段階中、リソース310のインターラプションは、例えばこのリソース310がエラーを検出するか、またはそれに提供されるコンフィギャレーションに対応しないタグを受信する場合に、ネットワーク・コントローラに送られる。
この方法で、説明した動作において、第2の段階におけるデータ・フローの処理は、従って、インターラプションなしで自動的に、及びネットワーク・コントローラからの何等の介在もなしで非同期的に、並びにクロックが必要とされることによる何等の同期もなしで、実行されるようである。
さらに、通信のプログラミングがデータ処理のプログラミングとは独立しているので、前述したもののようなシステムは、リソースが処理する間の時間間隔、及び同じリソースが他のリソースと通信する間の時間間隔と重複するかもしくは一致するのをせいぜい許容するだけである。
このようなネットワーク構造によるアプリケーションの例は、MC−CDMA(多重搬送波符号分割多重アクセスまたはCDMA多重アンテナ)のような第四世代基準の遠隔通信フレームの処理であって良い。
この型のアプリケーションのために、ネットワーク・コントローラは、複雑な決定を行うのに適したプロセッサであって良い。本発明に従って用いられるネットワーク・オン・チップによるフレームの処理は、次に、以下の通りである:
フレームの受信時において、第1の動作モード、この動作モード中、フレームのヘッダが採用され得るならば、ネットワークが復号を行う。それを行うために、ネットワークのリソースのすべては、次に、フレーム・ヘッダの復号を処理するよう、特に、ネットワーク・コントローラによって構成される。
第1のリソースは、例えば、フレームの開始を識別することに、及びもう1つのリソースにヘッダを自動送信することに専用化され得る。フレームの残りは、次に、メモリとして動作するリソースに送られる。
ヘッダの復号の終わりで、最終的に完全に復号された情報を有するリソースは、復号が完了したということを示すために、インターラプションをネットワーク・コントローラに送る。
第2の動作段階によれば、フレームの残りは、最初に復号されたヘッダによって与えられた情報に従って復号される。
ネットワーク・コントローラは、次に、ヘッダ情報から、ネットワークのリソースの幾つかまたはおそらくは各々のために、新しいクレジット管理コンフィギャレーション及び計算を演繹(推論)する。
リソースを再構成した後、ネットワーク・コントローラは、次に、開始命令を送る。開始命令がインターフェースによって受信されるや否や、フレーム処理の残りが自動的に実行される。異なったリソースは、各々、基本処理を行い、そして処理されたデータを交換するために、またはフレームを処理するために、互いに通信する。
処理の終わりで、インターラプションは、ネットワーク・コントローラに警告するために、リソースによって送られる。
このようなアプリケーションのために用いられるネットワーク・チップ構造は、本発明に従って、幾つかの種々のネットワーク・インターフェース・アーキテクチャを用い得る。
この方法で、ネットワーク構造の或るリソースは、幾つかの他のリソースから順次にデータ・フローを受信するよう履行され得る。これは、例えば前記メモリに対する場合であって良い。
ネットワーク構造の或るリソースは、幾つかの他のリソースから並列にまたは同時にデータ・フローを受信するよう履行され得る。これは、例えば、リソースから処理または計算パラメータを含むデータを受信し、かつ他のリソースから処理または計算するためのデータを含むデータを受信する、チャンネル評価リソースの場合であって良い。
ネットワーク構造の或るリソースは、幾つかの他のリソースに並列にもしくは同時にデータ・フローを発信するよう履行され得る。これは、例えば、第1の復号リソースと、メモリとして作用する前記リソースとの間で受信するデータ・フローを分割する「受信」リソースの場合であって良い。
或るリソースは、幾つかの他のリソースに順次にデータ・フローを発信するために用いられる。これは、例えば、チャンネル評価が行われるのを許容するリソースと、チャンネル修正が行われるのを許容するリソースとの間でその出力を分割するOFDM処理(直交周波数分割多重)を許容するリソースの場合であって良い。
参照文献
[1]: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.
[2]: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.
[3]: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.
本発明により履行されるネットワーク・オン・チップ・アーキテクチャの例を示す図である。 本発明により履行されるネットワーク・オン・チップ・リソースの詳細な構造の例を示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。 本発明により履行されるプロセスの例の異なったステップ中の一ステップを示す図である。
符号の説明
110 複数の要素
112 ネットワーク・コントローラ
114 リソース
115 リンク
120 ノード
200 リソース
202 ネットワーク・インターフェース
204、206、208 計算ブロック・ユニット
212 モジュール
214 コンフィギャレーション管理モジュール
216 インターラプション管理モジュール
218 入力通信コントローラ・モジュール
220 出力通信コントローラ・モジュール
222 入力ポート
224 出力ポート
225、226 FIFOユニット
228、229 FIFOユニット
300 ネットワーク・コントローラ
310 ネットワーク・リソース
312 復号器モジュール
313 コンフィギャレーション管理モジュール
314 入力通信コントローラ
315 出力通信コントローラ
320 第1の発信リソース
330 第2の発信リソース
340 第1の受信リソース
350 第2の受信リソース

Claims (24)

  1. 互いの間で通信できかつ処理できる複数の要素またはリソース(310、320、330、340、350)、並びにネットワークにおける通信を初期設定することができる少なくとも1つの要素またはネットワーク・コントローラ(300)、から形成されたネットワーク・オン・チップにおけるデータ処理方法であって、
    それぞれが、他のリソースの識別情報と、前記他のリソースが第1のリソースに発信するのを許可されたデータの量に対応する、前記他のリソースに送信されるべきクレジットの数とを含む、ネットワーク・コントローラによって送られた複数のクレジット管理コンフィギャレーションを、1つまたは複数のリソースによりメモリに受信及び記憶するステップと、
    少なくとも1つの第1のリソース(310)及び少なくとも1つの第2のリソース(320)間の少なくとも1つの第1の通信ステップと、
    を含み、該通信ステップは、
    a)第2のリソース(320)に向けられた第1の複数の特別なデータまたはクレジットの第1のリソースによる少なくとも1回の発信ステップであって、第1のリソース(310)によって発信されたクレジットの送信先は、第1のリソースが用いる共通のクレジット管理コンフィギャレーションにおいて限定され、該共通のクレジット管理コンフィギャレーションは、ネットワーク・コントローラによって送信された順次選択命令に従って、第1のリソースのメモリに記憶された複数の異なったクレジット管理コンフィギャレーションから選択され、
    b)第2のリソース(320)によって送られた処理するべき第1の複数のデータの第1のリソース(310)による少なくとも1回の受信ステップであって、第1のリソースに第2のデータ・リソースによって送られる処理されるべきデータのこの発信が、第1のリソースによって発信されたクレジットを第2のリソースによって受信された後に、許可される、
    ことを含むデータ処理方法。
  2. 処理は、第1のリソースと、第2のリソースまたは第3のリソース(330)との間の少なくとも1つの第2の通信ステップを含み、該第2の通信ステップは、
    a’)第2のリソース(320)または第3のリソース(330)に向けられた第2の複数の特別なデータまたはクレジットの第1のリソース(330)による少なくとも1回の発信ステップと、
    b’)第2のリソース(320)または第3のリソース(330)によって送られた処理するべき第2の複数のデータの第1のリソース(310)による少なくとも1回の受信ステップと、
    を含む請求項1に記載の方法。
  3. 第1のリソース(310)は、第2のリソース(320)または第3のリソース(330)によって送られる処理されるべきデータの少なくとも部分を処理する請求項1または2に記載の方法。
  4. 第1のリソース(310)は、処理すべき第1及び/または第2の複数のデータの受信に続いて、第4のリソース(340)に、処理すべきデータ及び/または第1のリソース(310)によって処理されるデータを送る請求項1乃至3のいずれかに記載の方法。
  5. ステップb)中に第1のリソース(310)によって受信される処理するべきデータの少なくとも部分、及び/またはステップb)中に第1のリソースによって受信されかつ第1のリソース(310)によって処理されるデータの少なくとも部分を、ステップa’)の前に、またはステップa’)及びb’)の間に、またはステップb’)の後に、第4のリソース(330)に発信するステップを含む請求項2に記載の方法。
  6. データ管理コンフィギャレーション・データを前記ネットワーク・コントローラ(300)によって第1のリソース(310)に発信する前に、データ上における1つまたは複数の処理の型、及び/または処理されるまたは処理されるべきデータが送られる少なくとも1つの他のリソースを示すステップを含み、次に、第1のリソースのメモリにこのデータ管理コンフィギャレーション・データを記憶するステップを含む請求項1乃至5のいずれかに記載の方法。
  7. 第1のリソース(310)は、データを処理する1つまたは複数の型、及び/または処理されるまたは処理されるべきデータが送られる少なくとも1つの他のリソース(330)を示すデータ管理コンフィギャレーション・データを記憶する請求項1乃至6のいずれかに記載の方法。
  8. ステップb)中及び/またはステップb’)中に受信された処理すべきデータは、記憶された複数のデータ管理コンフィギャレーション中のデータ管理コンフィギャレーション選択データを含むタグ・データと称されるデータを含む請求項6または7に記載の方法。
  9. 第1のリソース(310)のメモリに記憶された前記クレジット管理コンフィギャレーションは、ネットワークのリソース(310、320、330、340)間でのデータまたはクレジットの任意の交換に先立って、前記ネットワーク・コントローラ(300)によって第1のリソースに送られる請求項1乃至8のいずれかに記載の方法。
  10. 第1のリソースによって受信されるデータの量は、ステップa)においてまたはステップa’)においてこの第1のリソースによって発信されるクレジットの量に依存する請求項1乃至のいずれかに記載の方法。
  11. ステップa)及び/またはa’)は、ネットワーク・コントローラがネットワークにおける通信を開始するための命令を発行することによって先行される請求項1乃至10のいずれかに記載の方法。
  12. 1つまたは複数のクレジット管理コンフィギャレーションのための前記順次選択命令は、ネットワーク・コントローラによりステップa)及び/またはa’)に先立って送られるネットワークにおける通信を開始するための命令に含まれる請求項1乃至9のいずれかに記載の方法。
  13. リソースからネットワーク・コントローラに向けられる少なくとも1つのインターラプションを含む請求項1乃至12のいずれかに記載の方法。
  14. ネットワークの1つまたは幾つかのリソースと通信ができ、かつ少なくとも1つのデータ処理動作を実行することができる少なくとも1つの要素またはリソースを含み、前記リソースは、ネットワークとのインターフェースを形成する手段を含むネットワーク・オン・チップ・デバイスであって、ネットワークとのインターフェースを形成する手段は、
    ネットワークの1つまたは複数のリソースにクレジットを発信することができる特別なデータまたはクレジットを発信するための手段であって、クレジットの送信先は、クレジット管理と称されるプログラミングまたはコンフィギャレーションの型に依存してクレジット発信手段によって発信され、
    ネットワークの1つまたは複数のリソースからクレジットを受信することができる、クレジット受信手段と、
    ネットワークの1つまたは複数のリソースに処理すべきデータを発信することができる、処理すべき、データ発信手段と、
    ネットワークの1つまたは複数のリソースから処理すべきデータを受信することができるデータ受信手段と、
    を含み、ネットワークとのインターフェースを形成する手段は、とりわけ、
    ネットワークの前記他のリソースの少なくとも1つの第1のリソースへの処理すべきデータの前記データ発信手段による発信を、前記クレジット受信手段による前記第1のリソースからのクレジットの受信に続いて、許可するための手段と、
    他のリソースの識別情報と、前記他のリソースに送信されるべきクレジットの数とを含む、幾つかの異なったクレジット管理コンフィギャレーションを記憶することができる記憶手段と、
    幾つかの異なったクレジット管理コンフィギャレーションから少なくとも1つの共通のクレジット管理コンフィギャレーションを選択することができるコンフィギャレーション選択手段と、を備え、
    ネットワークの要素またはネットワーク・コントローラは、通信が初期設定されるのを許容し、前記コンフィギャレーション選択手段は、ネットワーク・コントローラからの少なくとも1つの順次命令の機能において、前記幾つかのクレジット管理コンフィギャレーションから少なくとも1つの共通のクレジット管理コンフィギャレーションを選択することができるネットワーク・オン・チップ・デバイス。
  15. ネットワーク・インターフェースを形成する手段は、とりわけ、
    少なくとも1つの第2のリソースからのデータの受信を、前記第2のリソースからのクレジットの受信に続いて、許可するための手段、
    を備える請求項14に記載のデバイス。
  16. データ発信手段が発信することができるデータの送信先は、データ管理と称されるプログラミングまたはコンフィギャレーションの型に依存し、
    前記記憶手段は、さらに、幾つかの異なったデータ管理コンフィギャレーションを記憶するのを許可し、
    コンフィギャレーション選択手段は、さらに、前記幾つかのデータ管理コンフィギャレーションから少なくとも1つの共通のデータ管理コンフィギャレーションを選択するのを許容する請求項14または15に記載のデバイス。
  17. コンフィギャレーション選択手段は、さらに、前記データ受信手段により受信される処理されるべきデータ・パケットに含まれた少なくとも1つの選択データまたはタグに依存して、前記幾つかのデータ管理コンフィギャレーションから少なくとも1つの共通のデータ管理コンフィギャレーションの選択を許容する請求項16に記載のデバイス。
  18. リソースは、さらに、少なくとも1つのデータ・プロセスを実行することができる動作コアを形成する手段を含む請求項16または17に記載のデバイス。
  19. 動作コアを形成する前記手段によって実行される前記処理は、データ管理と称されるプログラミングまたはコンフィギャレーションの型に依存し、ネットワーク・インターフェース手段は、さらに、前記データ受信手段により受信される処理されるべきデータ・パケットに含まれた少なくとも1つの選択データまたはタグに依存して、前記幾つかのデータ管理コンフィギャレーションから少なくとも1つの共通のデータ管理コンフィギャレーションを選択することができる手段を含む請求項18に記載のデバイス。
  20. ネットワーク・インターフェースを形成する前記手段は、とりわけ、インターラプションを発信する手段を含む請求項14乃至19のいずれかに記載のデバイス。
  21. 前記リソースは、幾つかの同時に入ってくるデータ・フロー及び/またはクレジットを処理する手段と、幾つかの同時に出て行くデータ・フロー及び/またはクレジットを処理するための手段と、を備える請求項14乃至20のいずれかに記載のデバイス。
  22. 前記リソースは、幾つかの入ってくる順次のデータ・フロー及び/またはクレジットを処理する手段と、幾つかの出て行く順次のデータ・フロー及び/またはクレジットを処理する手段と、を備える請求項14乃至21のいずれかに記載のデバイス。
  23. 請求項21または22のいずれかの少なくとも1つのリソースと、
    請求項21または22のいずれかの少なくとも1つの他のリソースと、
    を備え、前記リソース及び前記他のリソースは、異なったデータ・フロー及び/またはクレジットを処理する手段を有するネットワーク・オン・チップ・デバイス。
  24. ネットワークにおける通信を初期設定することができるネットワーク・コントローラをさらに備える請求項14乃至23のいずれかに記載のネットワーク・デバイス。
JP2005280776A 2004-09-28 2005-09-27 データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ Active JP4763405B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0452182 2004-09-28
FR0452182A FR2875982B1 (fr) 2004-09-28 2004-09-28 Architecture de communication semi-automatique noc pour applications "flots de donnees"

Publications (2)

Publication Number Publication Date
JP2006101525A JP2006101525A (ja) 2006-04-13
JP4763405B2 true JP4763405B2 (ja) 2011-08-31

Family

ID=34949277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005280776A Active JP4763405B2 (ja) 2004-09-28 2005-09-27 データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ

Country Status (4)

Country Link
US (1) US7733771B2 (ja)
EP (1) EP1641197B1 (ja)
JP (1) JP4763405B2 (ja)
FR (1) FR2875982B1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100682060B1 (ko) * 2005-01-07 2007-02-15 삼성전자주식회사 네트워크 온칩 시스템의 스위칭 장치 및 그의 스케쥴링방법
JP4193148B2 (ja) * 2005-09-30 2008-12-10 ブラザー工業株式会社 情報処理システム
IL171882A (en) * 2005-11-10 2010-12-30 Eci Telecom Ltd Flooding of data packets in a switching telecommunication device
EP1830268B1 (en) * 2006-03-03 2019-05-08 STMicroelectronics (Research & Development) Limited Multiple purpose integrated circuit
KR100948597B1 (ko) * 2007-12-17 2010-03-24 한국전자통신연구원 다중 복호기 시스템에서의 리소스 공유 스케줄 제어 장치및 그 장치에서의 리소스 공유 스케줄 제어 방법
FR2926941B1 (fr) 2008-01-30 2010-04-02 St Microelectronics Sa Procede de transfert de donnees et dispositif correspondant
US20110029706A1 (en) * 2008-04-09 2011-02-03 Nxp B.V. Electronic device and method for controlling an electronic device
FR2957176B1 (fr) * 2010-03-02 2012-04-06 Commissariat Energie Atomique Puce electronique et circuit integre comportant une telle puce electronique
KR101682508B1 (ko) 2010-10-13 2016-12-07 삼성전자주식회사 라우팅 장치 및 네트워크 장치
US9069649B2 (en) * 2012-02-17 2015-06-30 Netronome Systems, Incorporated Distributed credit FIFO link of a configurable mesh data bus
US8902902B2 (en) 2012-07-18 2014-12-02 Netronome Systems, Incorporated Recursive lookup with a hardware trie structure that has no sequential logic elements
FR3001310B1 (fr) 2013-01-21 2015-02-27 Commissariat Energie Atomique Interface de reseau sur puce dotee d'un systeme adaptatif de declenchement d'envoi de donnees
FR3001311B1 (fr) * 2013-01-21 2016-05-20 Commissariat Energie Atomique Interface reseau d'un soc comportant un controleur de communication ameliore
US10027433B2 (en) * 2013-06-19 2018-07-17 Netspeed Systems Multiple clock domains in NoC
FR3048795A1 (fr) 2016-03-11 2017-09-15 Commissariat Energie Atomique Systeme sur puce et procede d'echange de donnees entre noeuds de calculs d'un tel systeme sur puce

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652896B2 (ja) * 1986-03-20 1994-07-06 沖電気工業株式会社 起動制御方式
JPH07262156A (ja) * 1994-03-16 1995-10-13 Fujitsu Ltd マルチダウンロードシステム
JP2987308B2 (ja) * 1995-04-28 1999-12-06 松下電器産業株式会社 情報処理装置
US6804710B1 (en) * 2000-03-10 2004-10-12 Hitachi, Ltd. Configuration information management system, method, program, and program storage device
US7032005B2 (en) * 2000-04-14 2006-04-18 Slam Dunk Networks, Inc. System for handling information and information transfers in a computer network
JP3525867B2 (ja) * 2000-07-07 2004-05-10 日本電気株式会社 通信装置および通信端末
US7283557B2 (en) 2002-01-25 2007-10-16 Fulcrum Microsystems, Inc. Asynchronous crossbar with deterministic or arbitrated control
US20030167335A1 (en) * 2002-03-04 2003-09-04 Vigilos, Inc. System and method for network-based communication
US7190699B2 (en) * 2002-05-31 2007-03-13 International Business Machines Corporation Method and apparatus for implementing multiple credit levels over multiple queues
EP1552411A2 (en) * 2002-10-08 2005-07-13 Koninklijke Philips Electronics N.V. Integrated circuit and method for exchanging data
US7606255B2 (en) * 2003-01-08 2009-10-20 Microsoft Corporation Selectively receiving broadcast data according to one of multiple data configurations

Also Published As

Publication number Publication date
US20060067218A1 (en) 2006-03-30
EP1641197A1 (fr) 2006-03-29
EP1641197B1 (fr) 2019-07-17
JP2006101525A (ja) 2006-04-13
FR2875982A1 (fr) 2006-03-31
US7733771B2 (en) 2010-06-08
FR2875982B1 (fr) 2006-12-22

Similar Documents

Publication Publication Date Title
JP4763405B2 (ja) データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ
US7940666B2 (en) Communication node architecture in a globally asynchronous network on chip system
US11003604B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
US7965624B2 (en) Data link fault tolerance
US5940612A (en) System and method for queuing of tasks in a multiprocessing system
CN101777998B (zh) 交换节点堆叠中的交换节点的远程控制
US20070133415A1 (en) Method and apparatus for flow control initialization
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US20060209846A1 (en) Globally asynchronous communication architecture for system on chip
US8204054B2 (en) System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
US20020071450A1 (en) Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network
CN101278528A (zh) 通信系统的用户和通信控制器以及用于在通信系统的用户中实现网关功能的方法
JPH09505713A (ja) 広帯域ネットワークにおけるデータ伝送の並列アセンブリのためのシステム
JP2021520578A (ja) タスクスケジューリング
US8589593B2 (en) Method and apparatus for processing protocol messages for multiple protocol instances
CN105871761A (zh) 一种高阶矩阵开关、片上网络及通信方法
CN113157465A (zh) 基于指针链表的消息发送方法及装置
CN100361084C (zh) 用于利用门管理器维护实体顺序的方法和装置
CN113010464A (zh) 数据处理装置及设备
US8645557B2 (en) System of interconnections for external functional blocks on a chip provided with a single configurable communication protocol
CN101185056B (zh) 数据流水线管理系统和使用该系统的方法
US7804844B1 (en) Dataflow pipeline implementing actions for manipulating packets of a communication protocol
CN114760241B (zh) 一种用于数据流架构的计算设备中的路由方法
CN114675891B (zh) 一种PCIe交换芯片初始化的方法、装置、设备及介质
CN115643205B (zh) 数据生产和消费主体的通信控制单元、及相关装置和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110119

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110609

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4763405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250