JP4560409B2 - データを交換する集積回路および方法 - Google Patents

データを交換する集積回路および方法 Download PDF

Info

Publication number
JP4560409B2
JP4560409B2 JP2004542689A JP2004542689A JP4560409B2 JP 4560409 B2 JP4560409 B2 JP 4560409B2 JP 2004542689 A JP2004542689 A JP 2004542689A JP 2004542689 A JP2004542689 A JP 2004542689A JP 4560409 B2 JP4560409 B2 JP 4560409B2
Authority
JP
Japan
Prior art keywords
network
data
slave
module
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2004542689A
Other languages
English (en)
Other versions
JP2006502487A (ja
Inventor
アンドレイ、ラドゥレスク
キース、ヘー.ウェー.グーセンス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32088020&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4560409(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2006502487A publication Critical patent/JP2006502487A/ja
Application granted granted Critical
Publication of JP4560409B2 publication Critical patent/JP4560409B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Bus Control (AREA)
  • Microcomputers (AREA)
  • Computer And Data Communications (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

本発明は、複数の処理モジュールと、処理モジュール間の接続を提供するために構成されたネットワークとを有する集積回路、およびそのような集積回路においてメッセージを交換する方法に関する。
シリコン上のシステムは、新機能や既存機能の改良を実装することへの要求が絶え間なく増えていることにより、複雑化し続けている。これは、集積回路上に組み込むコンポーネントの集積度を高めることによって可能になっている。同時に、回路を動作させるクロックの速度も高まる傾向にある。コンポーネントの集積度の高まりに加えてクロック速度が上がることにより、同じクロック・ドメインでの同期動作が可能な領域が小さくなっている。そのため、モジュラー手法が必要になった。モジュラー手法では、処理システムは、複数の、相対的に独立した、複雑なモジュールを含む。従来の処理システムでは、システム・モジュールは、バスを介して互いに通信するのが普通であった。しかしながら、モジュールの数が増えるにつれ、この通信方法は次の理由で非実用的になる。まず、モジュール数が多くなると、バスの負荷が過大になる。また、1つの素子しかバスにデータを渡すことができないので、バスは通信のボトルネックになる。こうした短所を克服する効果的な方法が、通信ネットワークによって得られる。
非常に複雑なチップの相互接続の問題の解決策として、近年、ネットワーク・オン・チップ(NoC)が多くの注目を集めている。理由は2つある。第1に、NoCは、グローバル配線を構成および管理するので、新しいディープサブミクロン技術の電気的問題を解決するのに役立つ。同時にNoCは、配線を共有して、配線数を少なくし、配線の利用度を上げる。NoCはさらに、エネルギー効率や信頼性が高く、バスよりスケーラブルである。第2に、NoCは、計算と通信を分離する。このことは、数十億規模のトランジスタ・チップの設計を管理する上で必須である。NoCがこの分離を実現できるのは、NoCが最初からプロトコル・スタックを用いて設計されているからである。プロトコル・スタックは、通信サービスの使用とサービスの実装とを分離する、明確に定義されたインタフェースを提供する。
ただし、システム・オン・チップ(SoC)の設計時に、オン・チップ通信にネットワークを用いようとすると、検討を要する新たな問題がいくつも持ち上がる。これは、通信モジュール同士が直接接続される既存のオン・チップ相互接続(たとえば、バス、スイッチ、ポイント・ツー・ポイント配線など)と異なり、NoCでは、モジュール同士がネットワーク・ノードを隔てて通信するためである。結果として、相互接続のアービトレーションが集中型から分散型に変わり、順序が乱れたトランザクション、待ち時間の増加、エンド・ツー・エンド・フロー制御などの課題は、知的所有権ブロック(IP)またはネットワークによって処理されなければならない。
これらの問題のほとんどは、既に、並列マシン相互接続ネットワークの相互接続という、ローカル・エリア・ネットワークおよびワイド・エリア・ネットワーク(コンピュータ・ネットワーク)の分野における研究課題になっている。両方ともオン・チップ・ネットワークと非常に関連性があり、それらの分野における結果の多くはオン・チップにも適用できる。ただし、NoCの前提条件はオフ・チップ・ネットワークと異なるため、ネットワーク設計の選択肢のほとんどについて評価をし直す必要がある。オン・チップ・ネットワークは、異なるプロパティ(たとえば、リンク同期がより緊密)および制約条件(たとえば、メモリ・コストがより高い)を有するため、設計の選択肢も異なり、これが最終的にはネットワーク・サービスに影響を及ぼす。
NoCがオフ・チップ・ネットワークと異なるのは、主にその制約条件と同期においてである。通常、リソースの制約条件は、オン・チップのほうがオフ・チップより厳格である。ストレージ(つまり、メモリ)や計算のリソースはオン・チップのほうが比較的高価であるが、ポイント・ツー・ポイント・リンクの数はオン・チップのほうがオフ・チップより多い。ストレージが高価であるのは、RAMなどの汎用オン・チップ・メモリが多くの領域を占めるからである。メモリを比較的小さいサイズでネットワーク・コンポーネント内に分散させることは、メモリ内のオーバーヘッド領域が支配的になるため、さらによくない。
また、オン・チップ・ネットワークの場合は、計算も、オフ・チップ・ネットワークに対して比較的高コストになる。オフ・チップ・ネットワーク・インタフェースは、通常、プロトコル・スタックをネットワーク層以上に実装してホスト・プロセッサを通信処理から解放する専用プロセッサを含む。専用プロセッサをネットワーク・インタフェースに内蔵することは、オン・チップでは不可能である。ネットワーク・インタフェースのサイズが、ネットワークに接続されるIPと同等か、それより大きくなるからである。さらに、プロトコル・スタックをIPそのものの上で実行することも不可能であろう。多くの場合、これらのIPは専用機能を1つしか持たず、ネットワーク・プロトコル・スタックを実行する機能を持たないからである。
ネットワーク・コンポーネントを接続する配線およびピンの数は、オン・チップのほうがオフ・チップより桁違いに多い。それらの配線およびピンは、NoC通信以外の用途に大量に使われていない限り、広いポイント・ツー・ポイント相互接続(たとえば、300ビット・リンク)を可能にする。これは、リンクが(8〜16ビットと)比較的狭いオフ・チップでは不可能である。
さらにオン・チップの配線はオフ・チップより比較的短いため、オフ・チップより格段に緊密な同期が可能である。これにより、通信をより小さな細分性で行うことができるため、ルータ内のバッファ領域を小さくできる。現在の半導体技術では、配線の速度や信頼性も高いので、リンク層プロトコルをよりシンプルにすることができる(たとえば、エラー訂正や再送信が不要)。これは、メモリや計算のリソースの不足を補うことにもなる。
信頼性の高い通信:オン・チップ・リソースの制約条件が厳格であることから、ネットワーク・コンポーネント(ルータやネットワーク・インタフェース)をかなりシンプルにして計算およびメモリの要件を最小限に抑えなければならない。幸いにしてオン・チップ配線は信頼性の高い通信媒体を提供するので、信頼性の高い通信をオフ・チップ・ネットワークで行う場合にかかるかなりのオーバーヘッドを避けることができる。データ・リンク層では、データの完全性が低コストで得られる。
デッドロック:コンピュータ・ネットワーク・トポロジは、一般に不規則な(場合によっては動的な)構造を持ち、これがバッファ循環をもたらす可能性がある。デッドロックは、たとえば、トポロジまたはルーティングのいずれかに制約条件を設けることによって避けることもできる。ファットツリー・トポロジは、NoCへの導入が既に検討されている。この場合、デッドロックは、バッファ・オーバーフロー時にネットワーク内のパケットを戻すことによって回避できる。システム設計におけるタイルベースの手法では、メッシュまたはトーラスのネットワーク・トポロジを用いる。この場合、デッドロックは、たとえば、ターン・モデル・ルーティング・アルゴリズムを用いて避けることができる。デッドロックの主な原因は、バッファ内の循環である。デッドロックを避けるには、ルーティングが循環しないようにしなければならない。これは、信頼性の高い通信を達成するコストを低くするためである。デッドロックの第2の原因は、トランザクションのアトミック・チェーンである。これは、モジュールがロックされている間、トランザクションを格納するキューがアトミック・トランザクション・チェーン外のトランザクションでいっぱいになる場合があり、チェーン内のトランザクションのアクセスが阻止され、ロックされたモジュールに到達できなくなることによる。アトミック・トランザクション・チェーンに対応するプロセッサ(MIPSなど)と互換であるようにアトミック・トランザクション・チェーンを実装しなければならない場合は、ネットワーク・ノードがアトミック・チェーン内のトランザクションを選別できなければならない。
ネットワーク・フロー制御およびバッファリング戦略:ネットワーク・フロー制御およびバッファリング戦略は、ネットワークにおけるメモリ利用度に直接影響する。ワームホール・ルーティングの場合は、ルータ内に(キューごとに)軽快なバッファがあるだけでよいが、ストア・アンド・フォワード・ルーティングやバーチャル・カット・スルー・ルーティングの場合は、少なくともパケットを収容するバッファ領域が必要である。したがって、オン・チップの場合は、バーチャル・カット・スルー・ルーティングやストア・アンド・フォワード・ルーティングよりワームホール・ルーティングのほうが好ましいと考えられる。同様に、入力キューイングは、キューの数が少ないという理由で、バーチャル出力キューイングや出力キューイングなどのバッファリング戦略よりメモリ・コストの低い選択肢であろう。専用(低コスト)FIFOメモリ構成も、バーチャル・カット・スルー・ルーティングや仮想出力キューイングをオン・チップで用いて性能を上げることを可能にする。ただし、バーチャル・カット・スルー・ルーティングとバーチャル出力キューイングを同時に用いるのは、やはりコストがかかりすぎる。
時間に関する保証:オフ・チップ・ネットワークでは、パケット交換を用いてベスト・エフォート・サービスを提供するのが普通である。ネットワーク・ノードごとに競合が発生する可能性があるため、待ち時間の保証を提供するのは非常に困難である。レートベースの交換やデッドラインベースのパケット交換のような方式でもスループットの保証を提供することはできるが、バッファリングのコストが高い。そのような時間に関する保証を提供する一選択肢は、どの回路も1つのネットワーク接続の専用として動作する時分割多重アクセス(TDMA)回路を用いることである。回路は、比較的低いメモリ・コストおよび計算コストで保証を提供する。保証した帯域幅の使い残りが生じた場合にそれをベスト・エフォート通信に利用できるようなネットワーク・アーキテクチャにすると、ネットワーク・リソースの利用度が上がる。
オン・チップ相互接続にネットワークを導入すると、その通信は、バスやスイッチなどの直接相互接続から根本的に変化する。これは、通信モジュール同士が直接接続されず、1つまたは複数のネットワーク・ノードで隔てられる、ネットワークのマルチホップ性による。これは、広く普及している、モジュール同士が直接接続される既存の相互接続(すなわち、バス)と対照的である。この変化の影響は、(集中型から分散型に変わる必要のある)アービトレーションと通信プロパティ(たとえば、順序付けやフロー制御)に現れる。
NoCとバスの違いを概説すると次のようになる。現時点ではオン・チップ相互接続としてバスが最もよく用いられているので、以下では主に、「バス」を相互接続の意味で用いる。バスの特性のほとんどは、他の直接相互接続(たとえば、スイッチ)の特性も含んでいる。マルチレベル・バスは、バスとNoCとの混成である。ここでは、マルチレベル・バスは、ブリッジの機能性に応じて、単純なバスのように、またはNoCのように動作するものとする。通常、バスのプログラミング・モデルは、基本バス・トランザクションのシーケンスとして実装されるロード操作とストア操作からなる。通常、バス・インタフェースは、コマンド、アドレス、データ書き込み、およびデータ読み出しに対応する専用の配線グループを有する。バスは、複数のIPによって共有されるリソースである。したがって、IPは、バスを使用する前に、アービトレーションのフェーズを踏まなければならない。このフェーズでは、IPがバスへのアクセス権を要求し、それが認められるまでアクセスをブロックする。
バス・トランザクションには、要求と、場合によっては応答が関与する。要求を発行するモジュールをマスタと呼び、要求に応えるモジュールをスレーブと呼ぶ。一対の要求と応答に対して単一のアービトレーションが存在する場合は、そのバスを非スプリット・バスと呼ぶ。この場合、バスは、(時間がかかっても)応答が配信されるまで、トランザクションのマスタに割り当てられたままである。これに対し、スプリット・バスの場合、そのバスは、別のマスタからのトランザクションの開始を許可する要求があると解放される。ただし、応答に対して新たなアービトレーションを実施して、スレーブがバスにアクセスできるようにしなければならない。
スプリット・バスの場合も非スプリット・バスの場合も、通信を行う双方がトランザクションのステータスに直接かつ即時にアクセスできる。これに対し、ネットワーク・トランザクションは、ソースにある出力バッファから宛先にある入力バッファへの片方向転送であるため、宛先側で発生した何らかのアクションをソース側で知覚することができない。ネットワーク・トランザクションの結果は、追加のトランザクションによってのみ観察できる。要求−応答型の動作も可能ではあるが、別個のネットワーク・トランザクションが少なくとも2つ必要である。したがって、NoCのバス・ライクなトランザクションは、本質的にスプリット・トランザクションである。
また、ネットワークでは、プロトコル・スタックの層ごとに、データとともに制御情報(たとえば、パケット・タイプ、ネットワーク・アドレス、またはパケット・サイズ)を供給しなければならない。この制御情報は、データの前後のエンベロープとして編成される。すなわち、最初にヘッダが送信され、次いで実際のデータ(ペイロード)が送信され、場合によってその後にトレーラが続く。同じデータに対して、そのようなエンベロープを複数用意することができ、それぞれは、ネットワーク・プロトコル・スタックの各層に対応する制御情報を搬送する。
バッファリングとフロー制御:マスタによるデータのバッファリング(出力バッファリング)は、計算と通信を分離するために、バスとNoCの両方について行われる。ただし、NoCの場合は、データをマーシャリングするために出力バッファリングも必要であり、これは、(a)(任意で)出力データを、ネットワークで転送される、より小さなパケットに分割することと、(b)データの前後にネットワーク用制御情報(パケット・ヘッダ)を追加することからなる。出力バッファのオーバーフローを避けるためには、マスタは、現在使用可能な領域を超える量のデータを生成するトランザクションを開始してはならない。出力バッファリングと同様に入力バッファリングも、計算と通信を分離するために行われる。NoCでは、入力バッファリングも、データのアンマーシャリングのために必要である。
さらに、入力バッファのフロー制御が、バスとNoCとで異なる。バスの場合はソースと宛先が直接リンクされているので、宛先は、データを受け付けることができない旨をソースに直接伝えることができる。この情報はアービタも利用することができ、フル・バッファに書き込みを行おうとするトランザクションに対してバスを認可しないようにできる。
これに対し、NoCの場合は、トランザクションの宛先が、宛先の入力バッファが満杯である旨をソースに直接伝えることができない。その結果、宛先の入力バッファが満杯になってからも、場合によっては複数のソースからのトランザクションを宛先に対して開始することが可能である。入力バッファが満杯の場合、その後の着信トランザクションは受け付けられず、それらはネットワーク内に保存される。しかし、この手法では、最終的にデータがソースにまで保存される可能性があり、その間のリンクがブロックされ、ネットワークの輻輳、バックプレッシャ、およびデッドロックが発生しやすい。
マスタがスレーブにデータを送信する必要があるときに、スレーブは、スレーブのバッファ領域が満杯であっても、マスタを直接停止することができない。バッファ・オーバーフローを避けるためには、スレーブはそのマスタのためのバッファ領域を予約し、マスタに対し、バッファ領域の利用可能性(すなわち、より多くのバッファ領域を使い切るタイミング)を常に知らせるという、何らかの同意がマスタとスレーブの間に必要である。ただし、この方法では、ネットワークに余計なトラフィックが発生し、(たとえば、悲観的なバッファ割り当てのために)ネットワーク・リソースの利用が効率的でなくなるおそれがある。
入力バッファのオーバーフローを避けるためには、エンド・ツー・エンドのフロー制御とともに、接続を用いることができる。マスタと1つまたは複数のスレーブの間の接続のセットアップでは、スレーブのネットワーク・インタフェースにバッファ領域が割り当てられ、マスタのネットワーク・インタフェースには、スレーブ側のバッファ領域の量を表すクレジットが割り当てられる。マスタは、宛先のスレーブの十分なクレジットを持つ場合のみ、データを送信できる。スレーブは、データを処理する際に、マスタに対してクレジットを認可できる。
エンド・ツー・エンドのフロー制御は、モジュール間の接続においてデータがドロップされないようにするために、マスタとスレーブの間に実装される。データが、要求された順序どおり、かつ、時間どおりに着信するので、ネットワーク内で競合や「トラフィック・ジャム」が発生しない。ただし、エンド・ツー・エンドのフロー制御の実装にはコストがかかる。
本発明の目的は、低コストでのトランザクションの完了を保証する集積回路と、この集積回路にてメッセージを交換する方法を提供することにある。
この目的は、請求項1による集積回路と請求項9によるメッセージ交換方法とにより達成される。
この目的のため、複数の処理モジュールM,Sと、第1のモジュールMと少なくとも一つの第2のモジュールSとの間で少なくとも一つの接続を提供する集積回路が設けられる。前記接続は、前記第1のモジュールから前記第2のモジュールへの送信メッセージと、前記第2のモジュールから前記第1のモジュールへの応答メッセージとを含むトランザクションをサポートする。前記集積回路は、前記第1および第2のモジュールM,Sにより交換されるデータをドロップする少なくとも一つのドロップ手段DMを有する。
したがって、トランザクションの完了のための代替の方式が設けられ、完全かつ中間のトランザクションの完了は、特定の場合のみ適用される。
本発明は、特定の場合にデータのドロップを許容するアイデアに基づいている。
本発明の一態様によれば、モジュールM,SとネットワークN,RNとの間のインタフェースを管理する少なくとも一つのインタフェース手段ANIP,PNIPを備えた集積回路が設けられる。前記インタフェース手段ANIP,PNIPは、データをドロップする第1のドロップ手段DMを有する。データのドロップとトランザクションの完了は、前記インタフェース手段により制御されうる。
本発明の他の一態様によれば、集積回路は、データをドロップすることなくデータを進める複数のネットワークルータを有するネットワークN,RNを備えている。すなわち、前記インタフェース手段のみがデータをドロップすることが許容される。
本発明の他の一態様によれば、前記ドロップ手段DMは、データがドロップされたときにエラーメッセージを生成する。このため、前記データの供給源は、前記データのドロップを通知され、その供給源は前記データを後に再送信でき、その場合、他のトランザクションの一部となる。
本発明の他の一態様によれば、前記度ドロップ手段DMは、前記エラーメッセージを第1のドロップ手段DMに送信する。したがって、エラーメッセージは、前記インタフェース手段内の前記ドロップ手段に送信される。
本発明の他の一態様によれば、前記ドロップ手段DMは、前記エラーメッセージを前記第1のモジュールMに送信する。このエラーメッセージは、直接前記第1のモジュールに送信される。
本発明の他の一態様によれば、前記インタフェース手段ANIP,PNIPは、受信されたエラーメッセージを格納する。このため、前記インタフェース手段は、トランザクションの完了を追跡することができる。
前記第1のモジュールMに接続されたインタフェース手段ANIPは、エラーメッセージをドロップしないようにする。
本発明はまた、複数のモジュールを備えた集積回路内でメッセージを交換する方法に関する。前記複数のモジュール間のメッセージは、ネットワークを介する接続にて交換され、前記第1および第2のモジュールM,Sにより交換されるデータはドロップされうる。
本発明はまた、上述した複数のモジュールを有する集積回路内でメッセージを交換する方法に関する。
本発明の他の一態様は、従属請求項に記載されている。
本発明のこれらの態様と他の態様は、以下の実施形態を参照して明確化される。
以下の実施形態は、システム・オン・チップに関する。すなわち、同一チップ上にある複数のモジュールが、ある種の相互接続(interconnect)を介して互いに通信する。この相互接続は、ネットワーク・オン・チップNOCとして実施される。ネットワーク・オン・チップは、ネットワーク内に配線、バス、時分割多重、スイッチ、および/またはルータを含めることができる。前記ネットワークのトランスポート層では、接続を介してモジュール間通信を実施する。接続は、第1のモジュールと少なくとも1つの第2のモジュールの間にあって、それぞれが接続プロパティのセットを有するチャネルのセットであると考えられる。第1のモジュールと単一の第2のモジュールの間にある接続の場合、接続は2つのチャネルを含む。1つは、第1のモジュールから第2のモジュールに向かう要求チャネルであり、もう1つは、第2のモジュールから第1のモジュールに向かう応答チャネルである。要求チャネルは、第1のモジュールから第2のモジュールへのデータおよびメッセージのために予約され、応答チャネルは、第2のモジュールから第1のモジュールへのデータおよびメッセージのために予約される。ただし、接続が1つの第1のモジュールとN個の第2のモジュールを含む場合は、2*N個のチャネルを用意する。接続プロパティに含めることができるのは、順序付け(順序どおりのデータ転送)、フロー制御(リモート・バッファを接続用として予約し、生成されたデータのための領域が保証される場合のみ、データの送信をデータ・プロデューサに許可する)、スループット(スループットの下限を保証する)、待ち時間(待ち時間の上限を保証する)、損失の大きさ(データの抜け)、送信の中止、トランザクションの完了、データの正確さ、またはデータ配信である。
図1は、第1の実施形態によるシステム・オン・チップを示す。このシステムは、マスタ・モジュールM、スレーブ・モジュールSを含む。図1にはスレーブ・モジュールを1つだけ示しているが、システムは複数のスレーブ・モジュールを含むこともできる。各モジュールは、それぞれネットワーク・インタフェースNIを介してネットワークNに接続される。ネットワーク・インタフェースNIは、マスタおよびスレーブ・モジュールM、SとネットワークNの間のインタフェースとして用いられる。ネットワーク・インタフェースNIは、それぞれのモジュールとネットワークNの通信を管理するために設けられる。これらにより、各モジュールは、ネットワークまたは他のモジュールとの通信を扱うことなく、各自の専用動作を実施できる。各ネットワーク・インタフェースは、データおよびメッセージをバッファリングするバッファを含む。
この実施形態による通信は、トランザクション・ベースである。これらのトランザクションは、要求と、場合によって応答からなる。通常、要求は、マスタMによって開始され(a)、2つのネットワーク・インタフェースNIおよびネットワークNを介してスレーブSに送信される(b)。スレーブSは応答する場合があり(c)、応答はマスタMに返信される(d)。ただし、スレーブSからの応答が必須でないトランザクションもありうる。そのような場合、トランザクションは、スレーブSによって実行された時点で完了する。応答があるトランザクションは、応答がマスタMに配信された時点で完了する。したがって、マスタは、応答を受信した場合のみ、トランザクションの完了を検知できる。ネットワークにフロー制御が実装されている限り、応答だけでなく要求の配信も保証され、したがって、トランザクションの完了が保証される。ただし、エンド・ツー・エンドのフロー制御が実装されていない場合は、要求も応答もドロップされる可能性があるため、トランザクションの完了は保証されない。
図2は、第2の実施形態によるシステム・オン・チップを示す。このシステムは、2つのモジュール(すなわち、マスタMおよびスレーブSモジュール)、ルータ・ネットワークRN、およびモジュールとルータ・ネットワークRNの間の2つのネットワーク・インタフェースANIP、PNIPを含む。ネットワーク・インタフェースは、2つのネットワーク・インタフェース・ポートNIPを設けており(1つは要求ポート、1つは応答ポート)、これを通して、各モジュールがルータ・ネットワークRNと通信したり、ルータ・ネットワークRNを介して他のモジュールと通信したりする。マスタ・モジュールMに関連付けられたネットワーク・インタフェースをアクティブ・ネットワーク・インタフェース・ポートANIPと呼び、スレーブ・モジュールSに関連付けられたネットワーク・インタフェースをパッシブ・ネットワーク・インタフェース・ポートPNIPと呼ぶ。マスタ・モジュールMとスレーブ・モジュールsの間の通信は、要求−応答トランザクションに基づいて行われる。この場合は、マスタMが、場合に応じて何らかのデータや必要な接続プロパティを含む要求を発行することによってトランザクションを開始する。要求REQは、アクティブ・ネットワーク・インタフェース・ポートANIP、ネットワークRN、およびパッシブ・ネットワーク・インタフェース・ポートPNIPを介して、スレーブSに配信される。要求がスレーブ・モジュールSによって実行され、必要または要求に応じて、データが応答RESPとして返される。この応答RESPには、マスタMに宛てたデータおよび/または肯定応答を含めることができる。
ここで、ネットワークN、RN(すなわち、ルータ)はデータをドロップしないものとする。アクティブ・ネットワーク・インタフェースANIPは、パッシブ・ネットワーク・インタフェースPNIPと同様に、ドロップ・マネージャDMをそれぞれ含む。これらのドロップ・マネージャDMは、データまたはメッセージのドロップを担当する。つまり、ネットワーク・インタフェースだけがデータまたはメッセージをドロップできる。特に、要求は、アクティブ・ネットワーク・インタフェース・ポートANIPだけがドロップでき、応答は、パッシブ・ネットワーク・インタフェース・ポートPNIPだけがドロップできる。可能なシナリオとして、(a)最も古いメッセージをドロップする(ミルク・ポリシー)や、(b)最も新しいメッセージをドロップする(ワイン・ポリシー)などがある。
トランザクションは、以下のメッセージから構成できる。
−コマンド・メッセージ(CMD)は、ANIPによって送信され、PNIPに接続されているスレーブにおいて実行されるアクションを記述する。コマンドの例として、read、write、test-and-set、flushなどがある。コマンドだけが、トランザクションにおいて必須のメッセージである。パラメータのない単一のコマンド(たとえば、固定サイズのアドレスなし書き込み)だけを許可するNIPについては、コマンド・メッセージは、たとえ暗黙的でも(つまり、IPによって明示的に送信されなくても)存在すると見なす。
−データ送信メッセージ(OUTDATA)は、データを実行する必要があるコマンド(たとえば、write、multicast、test-and-setなど)に続いて、ANIPによって送信される。
−データ応答メッセージ(RETDATA)は、データを生成するトランザクション実行(たとえば、readやtest-and-setなど)の結果として、PNIPによって送信される。
−肯定応答完了メッセージ(RETSTAT)は、コマンドが完了した時点でPNIPによって返される任意メッセージである。正常完了が伝えられる場合と、エラーが伝えられる場合がある。RETDATAとRETSTATの両方を含むトランザクションの場合、この2つのメッセージを1つのメッセージにまとめて効率化を図ることができる。ただし、概念的には、これらは同時に存在する。RETSTATがデータの存在またはエラーを伝え、RETDATAがデータを搬送するからである。
トランザクションを構成するメッセージは、送信メッセージ(CMD、OUTDATA)と、応答メッセージ(RETDATA、RETSTAT)とに分かれる。トランザクション内では、CMDは他のすべてのメッセージに先行し、RETDATAは、RETSTATに先行する(RETSTATがある場合)。これらのルールは、マスタとANIPの間、およびPNIPとスレーブの間の両方にあてはまる。
応答をしないトランザクション(たとえば、posted write)は、スレーブで実行された時点で完了したとされる。マスタに対する応答メッセージがないため、トランザクションの完了に関する保証を与えることができない。応答をするトランザクション(たとえば、acknowledged write)は、ANIPからのRETSTATメッセージが受信された時点で完了したとされる。データが応答(RETDATA)として受信されるときには、RETSTAT(場合によっては暗黙的)もデータを検証するために受信されることを想起されたい。トランザクションは、正常に実行されて成功RETSTATが返される場合や、スレーブでの実行に失敗して実行エラーRETSTATが返される場合や、フロー制御がない接続でバッファ・オーバーフローのために失敗してオーバーフロー・エラーがレポートされる場合がある。応答を必要とするCMDをスレーブが受け付けた場合、スレーブSは必ず応答を生成するものとする。
ドロップ・マネージャDMは、バッファ・オーバーフローが発生した場合にデータをドロップできる。CMD、OUTDATA、RETDATAはすべて、ドロップされる可能性がある。トランザクションの完了を保証するために、RETSTATはドロップできないようになっている。したがって、すべての未処理トランザクションのRETSTATメッセージを収容するために、ANIPに十分なバッファ領域を設けなければならない。これは、未処理トランザクションの数に上限を設定することによって実現される。
上記システムに複数のスレーブSがある場合は、応答メッセージまたは応答メッセージを以下のようにまとめることができる。(マスタMが開始した)各書き込みトランザクションがすべてのスレーブSによって正常に実行された場合は、すべてのスレーブSがRETSTAT=RETOKメッセージを返す。これらを、ANIPが1つのメッセージにまとめてマスタに配信できる。
書き込みトランザクションが一部のスレーブによってのみ正常に実行された場合は、RETOKとRETERRORが混ざったRETSTATになる。それらは、次のいずれかのようにまとめることができる。
a)単一のRETSTAT=RETERROR(エラーが発生したことを明示するため)、または
b)単一のRETSTAT(ただし、エラーがあった場所をエンコードした、より大きく、より記述的なもの)
すべてのRETSTATを1つのマスタ向けRETSTATにまとめるか、<スレーブ識別,エラー・コード>のペアをまとめて1つのマスタ向けRETSTATを形成することができる。
フロー制御がない接続の場合は、ドロップ・マネージャDMがメッセージをドロップでき、その場合は、RETSTAT=RETLOSTメッセージも生成される。その場合も、上記と同様にまとめることができる。
マスタ・モジュールMは、トランザクションに対する応答を必ず受信しなければならない。これは、ドロップ・マネージャDMによって達成される。パッシブ・ネットワーク・インタフェース・ポートPNIP内のドロップ・マネージャDMが、たとえば、バッファ・オーバーフローが発生したためにデータまたはメッセージをドロップした場合、ドロップ・マネージャDMは必ずANIPにFAIL/ERRORメッセージを返す。この返信ステータス(RETSTAT)・メッセージは、アクティブ・ネットワーク・インタフェース・ポートANIPのドロップ・マネージャによって絶対にドロップされない。これは、トランザクションを開始したANIPが、その開始したすべてのトランザクションの応答メッセージのための領域を予約するからである。このように、領域を予約しておいて、メッセージがドロップされたときに必ずエラー・メッセージを生成することが、フロー制御を導入する1つの方法である。RETSTATメッセージは中間ネットワーク・ノードで生成することもできるが、スレーブ・モジュールのインタフェースで生成することが好ましい。
上記ドロップ方式を実装することによって、トランザクションの完了が保証される。すなわち、開始されたトランザクションの結果が、以下のように必ず通知される。
a)スレーブに配信され、スレーブで正常に実行された場合は、スレーブがRETSTAT=OKを生成する。
b)スレーブに配信されなかった場合は、PNIPがRETSTAT=REQLOSTを生成し、ANIPに返す。
c)スレーブに配信されたが、正常に実行されなかった場合は、スレーブがRETSTAT=ERRORを生成する。
d)スレーブに配信され、スレーブで正常に実行されたが、応答メッセージがドロップされた場合は、ANIPがRETSTAT=RETLOSTを生成し、マスタMに配信する。
これは、フロー制御された接続では、メッセージ(この場合はRETSTAT(OKまたはERROR))をドロップしないことによって達成され、フロー制御されない接続では、メッセージがドロップされることを許容し、メッセージがドロップされたときにRESTAT(REQLOSTまたはRETLOST)を生成し、メッセージがドロップされないときにRETOKまたはRETERRORを通常どおりに生成することによって達成される。
ただし、トランザクションを完了させるのはRETSTATなので、RETSTATを絶対ドロップしないことがきわめて重要である。これは、RETSTAT用バッファをマスタのANIPに配置することによって実現される。マスタのANIPは、トランザクションの開始時にRETSTAT用の領域を予約し、未処理トランザクションの数に上限を設ける(RETSTATバッファのサイズが有限のため)。
送信接続のフロー制御と返信接続のフロー制御は、原則として独立している。したがって、送信にも返信にもフロー制御がある場合、RETSTATメッセージは、上記のa)またはc)に従う。送信にフロー制御があって返信にフロー制御がない場合、RETSTATメッセージは、上記のa)またはc)またはd)に従う。送信にフロー制御がなく返信にフロー制御がある場合、RETSTATメッセージは、上記のa)またはb)またはc)に従う。
上記システムについては、接続を以下のように分類できる。
−単純な接続は、1つのANIPと1つのPNIPの間の接続である。
−ナローキャスト接続は、1つのANIPと1つまたは複数のPNIPの間の接続であって、ANIPで開始される各トランザクションが必ず1つのPNIPによって実行される。ナローキャスト接続の一例では、ANIPが、2つのメモリ・モジュールにマッピングされたアドレス空間でトランザクションを実施する。トランザクションは、トランザクション・アドレスに応じて、それら2つのメモリのいずれかでのみ実行される。
−マルチキャスト接続は、1つのANIPと1つまたは複数のPNIPの間の接続であって、送信されるメッセージは複製され、各PNIPはそれらのメッセージのコピーを受信する。マルチキャスト接続では、現在、応答メッセージが許可されていない。これは、生成されるトラフィックが膨大になるからである(すなわち、宛先ごとに1つの応答が生成されるため)。また、各PNIPからの個々の応答を単一のANIP向け応答にまとめなければならない点でも、ANIPの複雑さが増すからである。この、まとめる操作だけでも、バッファ領域および/または追加計算が必要になる。
接続のために構成できる接続プロパティとして、保証されたメッセージ完全性、保証されたトランザクション完了、種々のトランザクション順序付け、保証されたスループット、上限がある待ち時間とジッタ、および接続フロー制御がある。
図1および2に示したモジュールを、前記ネットワーク・インタフェースNIにおいてネットワークと対話する、いわゆる知的所有権ブロックIP(計算素子またはメモリ、ただし、相互接続素子ではない)とすることができる。NIは、通信サービスにアクセスするためのNIポートNIPを設けている。NIは、1つまたは複数のIPを接続できるNIPを複数有することができる。同様に、IPを複数のNIおよびNIPに接続できる。
ネットワークを介する通信は、接続上のネットワーク・インタフェースによって実施される。すなわち、マスタ・モジュールとスレーブ・モジュールは、ネットワークからは見えない。接続は、保証されたスループット、上限のある待ち時間およびジッタ、順序付けられた配信、またはフロー制御などの様々なプロパティを有する通信を記述および識別するために用いられる。本発明の実施形態による接続は、所望のプロパティで生成または確立されてから使用されなければならない。このことがネットワーク内でのリソースの予約(たとえば、バッファ領域や、時間単位あたりのリンク利用率)につながっている。要求されたリソースが利用できない場合、ネットワークRNはその要求を拒否する。接続は利用後に閉じられ、その接続によって占有されていたリソースが解放される。
ANIPとPNIPの両方において、同一接続上にある、異なるトランザクションに属する送信メッセージをインタリーブすることが可能である。たとえば、2つの書き込みコマンドを、それらのデータの後にのみ、発行できる。OUTDATAメッセージの順序がCMDメッセージの順序と異なる場合は、OUTDATAをそれぞれ対応するCMDに関連付けるためにトランザクション識別子を導入しなければならない。
送信メッセージは、以下のように、PNIPによってスレーブに配信できる(bを参照):
−Unordered(順序付けされない):異なるトランザクションの送信メッセージのPNIPでの配信に順序付けが課されない。
−Ordered locally(ローカルに順序付けされる):トランザクションが送信時の順序(a)で各PNIPに配信されなければならない。ただし、PNIP間では順序付けは課されない。送信メッセージのローカルに順序付けされた配信は、順序付けされたデータ転送か、PNIPでの送信メッセージの再順序付けによって実現できる。
−Ordered globally(グローバルに順序付けされる):トランザクションが、接続のすべてのPNIPにわたって、送信時の順序で配信されなければならない。トランザクションの送信部分のグローバルに順序付けされた配信には、コストのかかる同期メカニズムが必要である。
トランザクション応答メッセージは、Orderedとして、スレーブによってPNIP(c)に配信できる。このとき、RETDATAメッセージとRETSTATメッセージは、CMDがスレーブ(b)に配信されたときと同じ順序か、そうでなければUnorderedとして返される。応答が順序付けされない場合は、各応答が属するトランザクションを識別するメカニズムがなければならない。通常、これは、トランザクションの識別のためにメッセージに添付されたタグを用いて行われる(VCIのタグと同様)。
応答メッセージは、以下のように、ANIPによってマスタに配信できる(dを参照):
−Unordered(順序付けされない):応答の配信に順序付けが課されない。ここではさらに、タグを用いて、各応答をそれぞれ対応するCMDに関連付けなければならない。
−Ordered locally(ローカルに順序付けされる):単一のスレーブに向けたトランザクションのRETDATAメッセージとRETSTATメッセージが、元のCMDがマスタによってANIPに渡されたときの順序で配信される。同一接続内では、異なるスレーブへのトランザクションに対して順序付けが課されないことに注意されたい。
−Globally ordered(グローバルに順序付けされる):1つの接続におけるすべての応答が、元のCMDと同じ順序でマスタに配信される。トランザクションが接続上でパイプライン化されている場合、応答のグローバルに順序付けされた配信には、ANIPでの再順序付けが必要である。
上記の順序付けの3×2×3=18とおりの組合せのすべてが可能である。これらのうち、次の2つを定義する。順序付けされない接続は、トランザクションのどの部分でも順序付けが前提とされていない接続である。したがって、応答にタグを付けて、どのトランザクションに属するかを識別できるようにしなければならない。順序付けされない接続の実装はコストが低いが、使いにくい場合があり、タグ付けのオーバーヘッドがかかる。
一代替実施形態では、前述のドロップ手段を、ネットワークのいくつかのルータに実装して、それらのルータがデータをドロップできるようにすることができる。ただし、そのような場合、それらのルータは、上記の方式に従い、特に、上記のエラー・メッセージを生成しなければならない。
本発明の別の代替実施形態では、接続ベースではないシステムにトランザクションの完了を実装できる。そのようなシステムは、単一接続を有するシステムと等価だからである。
これまで述べてきた実施形態は本発明を制限するものではなく例示するものであること、および、当業者であれば、添付の請求項の範囲から逸脱することなく様々な代替実施形態を設計できることに注意されたい。請求項においては、括弧で囲まれたどの参照符号も、請求項を制限するものとして解釈されてはならない。「含む(comprising)」という語は、請求項に列挙した要素またはステップ以外の要素またはステップの存在を除外するものではない。要素の前に付く「a」または「an」は、そのような要素が複数存在することを除外するものではない。複数の手段を列挙した装置請求項において、それらの手段のいくつかは、同一アイテムのハードウェアで実施できる。特定の手段が、互いに異なる従属請求項に再び記載されているという単なる事実は、それらの手段の組合せを有利に使用することができないということを示すものではない。
さらに、請求項中のどの参照符号も、請求項の範囲を制限するものとして解釈されてはならない。
第1の実施形態によるチップ上のシステムを示す図。 第2の実施形態によるチップ上のシステムを示す図。

Claims (2)

  1. 集積回路であって:
    第1及び第2の処理モジュールと、
    前記第1の処理モジュールから前記第2の処理モジュールへの送信メッセージと、前記第2の処理モジュールから前記第1の処理モジュールへの応答メッセージとを含むトランザクションをサポートするネットワークオンチップと、
    前記第1及び第2の処理モジュールのそれぞれと前記ネットワークオンチップとの間のインタフェース手段とを具え、
    前記インタフェース手段は、前記第1及び第2の処理モジュールにより交換されるデータを選択的に廃棄する廃棄手段を具え、
    トランザクションの完了又は失敗を示す完了確認メッセージは廃棄されず、コマンドメッセージ、送信メッセージ及び応答メッセージは廃棄され
    データの廃棄及びトランザクションの完了は前記インタフェース手段により制御される、
    集積回路。
  2. 前記第2の処理モジュールに対応する前記インタフェース手段で前記廃棄手段によりデータが廃棄された場合、前記第1の処理モジュールに対応する前記インタフェース手段へエラーメッセージが送信される、請求項1に記載の集積回路。
JP2004542689A 2002-10-08 2003-07-04 データを交換する集積回路および方法 Expired - Lifetime JP4560409B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02079196 2002-10-08
PCT/IB2003/003035 WO2004034173A2 (en) 2002-10-08 2003-07-04 Integrated circuit and method for exchanging data

Publications (2)

Publication Number Publication Date
JP2006502487A JP2006502487A (ja) 2006-01-19
JP4560409B2 true JP4560409B2 (ja) 2010-10-13

Family

ID=32088020

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2004542690A Pending JP2006502642A (ja) 2002-10-08 2003-07-04 トランザクションを確立するための集積回路および方法
JP2004542689A Expired - Lifetime JP4560409B2 (ja) 2002-10-08 2003-07-04 データを交換する集積回路および方法
JP2004542736A Pending JP2006502650A (ja) 2002-10-08 2003-10-07 トランザクションを確立するための集積回路および方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004542690A Pending JP2006502642A (ja) 2002-10-08 2003-07-04 トランザクションを確立するための集積回路および方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2004542736A Pending JP2006502650A (ja) 2002-10-08 2003-10-07 トランザクションを確立するための集積回路および方法

Country Status (10)

Country Link
US (3) US7769893B2 (ja)
EP (3) EP1552669B1 (ja)
JP (3) JP2006502642A (ja)
KR (1) KR101016987B1 (ja)
CN (5) CN1689312B (ja)
AT (2) ATE373922T1 (ja)
AU (3) AU2003299282A1 (ja)
DE (2) DE60316458T2 (ja)
TW (1) TWI307840B (ja)
WO (3) WO2004034676A1 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1652096A1 (en) * 2003-07-30 2006-05-03 Koninklijke Philips Electronics N.V. Integrated circuit with dynamic communication service selection
JP4598051B2 (ja) * 2004-03-03 2010-12-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理ユニットがネットワークを介し通信するデータ処理回路
KR20070010152A (ko) * 2004-04-26 2007-01-22 코닌클리케 필립스 일렉트로닉스 엔.브이. 트랜잭션을 발행하기 위한 집적 회로 및 방법
JP2007538331A (ja) * 2004-05-18 2007-12-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 集積回路及びバッファリング方法
EP1605727A1 (en) * 2004-06-09 2005-12-14 Koninklijke Philips Electronics N.V. Integrated circuit and method for time slot allocation
FR2875982B1 (fr) * 2004-09-28 2006-12-22 Commissariat Energie Atomique Architecture de communication semi-automatique noc pour applications "flots de donnees"
US7596653B2 (en) * 2004-11-08 2009-09-29 Intel Corporation Technique for broadcasting messages on a point-to-point interconnect
US20080123666A1 (en) * 2004-11-09 2008-05-29 Nxp B.V. Electronic Device And Method Of Communication Resource Allocation
WO2006059284A1 (en) * 2004-12-01 2006-06-08 Koninklijke Philips Electronics N.V. Data processing system and method for converting and synchronising data traffic
US7711787B2 (en) * 2004-12-15 2010-05-04 Electronics And Telecommunications Research Institute On-chip network interfacing apparatus and method
EP1869844A1 (en) * 2005-04-06 2007-12-26 Koninklijke Philips Electronics N.V. Network-on-chip environment and method for reduction of latency
WO2006106476A1 (en) * 2005-04-07 2006-10-12 Koninklijke Philips Electronics N. V. Network-on-chip environment and method for reduction of latency
US20090122703A1 (en) * 2005-04-13 2009-05-14 Koninklijke Philips Electronics, N.V. Electronic Device and Method for Flow Control
DE602006005925D1 (de) * 2005-06-03 2009-05-07 Koninkl Philips Electronics Nv Elektronische vorrichtung und verfahren zur kommunikationsressourcenzuteilung
EP1744497B1 (en) * 2005-07-14 2008-01-23 Interuniversitair Microelektronica Centrum Vzw Method for managing a plurality of virtual links shared on a communication line and network implementing said method
KR100653087B1 (ko) * 2005-10-17 2006-12-01 삼성전자주식회사 AXI가 적용된 NoC 시스템 및 그 인터리빙 방법
US7802040B2 (en) * 2005-12-22 2010-09-21 Arm Limited Arbitration method reordering transactions to ensure quality of service specified by each transaction
JP4611901B2 (ja) * 2006-01-16 2011-01-12 株式会社ソニー・コンピュータエンタテインメント 信号伝送方法、ブリッジユニット、および情報処理装置
JP4372110B2 (ja) * 2006-02-10 2009-11-25 エヌイーシーコンピュータテクノ株式会社 データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法
FR2898753B1 (fr) * 2006-03-16 2008-04-18 Commissariat Energie Atomique Systeme sur puce a controle semi-distribue
FR2900017B1 (fr) * 2006-04-12 2008-10-31 Arteris Sa Systeme d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication
FR2904445B1 (fr) * 2006-07-26 2008-10-10 Arteris Sa Systeme de gestion de messages transmis dans un reseau d'interconnexions sur puce
US7961605B2 (en) * 2006-07-31 2011-06-14 International Business Machines Corporation System and method for enabling management of a plurality of messages in a communication network
US8045573B2 (en) 2006-08-16 2011-10-25 Arm Limited Bit ordering for packetised serial data transmission on an integrated circuit
KR100737943B1 (ko) * 2006-09-13 2007-07-13 삼성전자주식회사 네트워크-온-칩 응답 신호 제어 장치 및 그 방법
US8689244B2 (en) * 2007-01-26 2014-04-01 Objective Interface Systems, Inc. Hardware communications infrastructure supporting location transparency and dynamic partial reconfiguration
US8248073B2 (en) 2007-04-06 2012-08-21 Nec Corporation Semiconductor integrated circuit and testing method therefor
US7860085B2 (en) * 2007-05-14 2010-12-28 Alcatel Lucent Dual OSS management of an Ethernet access network
CN101075961B (zh) * 2007-06-22 2011-05-11 清华大学 片上网络设计用的一种自适应打包方法
US20090109996A1 (en) * 2007-10-29 2009-04-30 Hoover Russell D Network on Chip
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US20090125703A1 (en) * 2007-11-09 2009-05-14 Mejdrich Eric O Context Switching on a Network On Chip
US8261025B2 (en) 2007-11-12 2012-09-04 International Business Machines Corporation Software pipelining on a network on chip
US8526422B2 (en) * 2007-11-27 2013-09-03 International Business Machines Corporation Network on chip with partitions
JP4554703B2 (ja) * 2007-12-27 2010-09-29 株式会社リコー 情報処理装置、情報処理方法及び情報処理プログラム
US8276034B2 (en) 2007-12-27 2012-09-25 Ricoh Company, Limited Information processing apparatus, information processing method, and computer program product
US8473667B2 (en) * 2008-01-11 2013-06-25 International Business Machines Corporation Network on chip that maintains cache coherency with invalidation messages
US8490110B2 (en) * 2008-02-15 2013-07-16 International Business Machines Corporation Network on chip with a low latency, high bandwidth application messaging interconnect
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US20110029706A1 (en) * 2008-04-09 2011-02-03 Nxp B.V. Electronic device and method for controlling an electronic device
US20090260013A1 (en) * 2008-04-14 2009-10-15 International Business Machines Corporation Computer Processors With Plural, Pipelined Hardware Threads Of Execution
US20090271172A1 (en) * 2008-04-24 2009-10-29 International Business Machines Corporation Emulating A Computer Run Time Environment
US8423715B2 (en) * 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8214845B2 (en) * 2008-05-09 2012-07-03 International Business Machines Corporation Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
US8392664B2 (en) * 2008-05-09 2013-03-05 International Business Machines Corporation Network on chip
US20090282211A1 (en) * 2008-05-09 2009-11-12 International Business Machines Network On Chip With Partitions
US20090282419A1 (en) * 2008-05-09 2009-11-12 International Business Machines Corporation Ordered And Unordered Network-Addressed Message Control With Embedded DMA Commands For A Network On Chip
US8494833B2 (en) * 2008-05-09 2013-07-23 International Business Machines Corporation Emulating a computer run time environment
US8230179B2 (en) * 2008-05-15 2012-07-24 International Business Machines Corporation Administering non-cacheable memory load instructions
US8438578B2 (en) 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US8195884B2 (en) * 2008-09-18 2012-06-05 International Business Machines Corporation Network on chip with caching restrictions for pages of computer memory
FR2945396A1 (fr) * 2009-05-07 2010-11-12 St Microelectronics Grenoble 2 Procede et dispositif d'analyse de la propagation de transactions dans un reseau multi-protocoles d'un systeme sur puce
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
KR101563195B1 (ko) 2009-08-18 2015-10-27 삼성전자주식회사 호스트 장치 및 슬레이브 장치 제어 방법
US8204731B2 (en) * 2010-03-01 2012-06-19 Himax Technologies Limited Signal analyzing method for electronic device having on-chip network and off-chip network
US8819116B1 (en) * 2010-03-08 2014-08-26 Amazon Technologies, Inc. Providing services using a device capabilities service
US8861410B2 (en) 2011-10-31 2014-10-14 Qualcomm Incorporated Method and apparatus for scalable network transaction identifier for interconnects
US8640230B2 (en) 2011-12-19 2014-01-28 International Business Machines Corporation Inter-thread communication with software security
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
JP2013196167A (ja) 2012-03-16 2013-09-30 Toshiba Corp 情報処理装置
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US8838861B2 (en) 2012-05-09 2014-09-16 Qualcomm Incorporated Methods and apparatuses for trace multicast across a bus structure, and related systems
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
US9116820B2 (en) 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
US9471538B2 (en) 2012-09-25 2016-10-18 Qualcomm Technologies, Inc. Network on a chip socket protocol
CN104685480B (zh) * 2012-09-25 2017-07-14 高通科技公司 关于芯片套接字协议的网络
EP2741452A1 (en) * 2012-12-10 2014-06-11 Robert Bosch Gmbh Method for data transmission among ECUs and/or measuring devices
US9571402B2 (en) * 2013-05-03 2017-02-14 Netspeed Systems Congestion control and QoS in NoC by regulating the injection traffic
US9270659B2 (en) 2013-11-12 2016-02-23 At&T Intellectual Property I, L.P. Open connection manager virtualization at system-on-chip
US9456071B2 (en) 2013-11-12 2016-09-27 At&T Intellectual Property I, L.P. Extensible kernel for adaptive application enhancement
US9602587B2 (en) * 2014-06-26 2017-03-21 Altera Corporation Multiple plane network-on-chip with master/slave inter-relationships
US9747239B2 (en) 2014-08-25 2017-08-29 Apple Inc. Transaction filter for on-chip communications network
US10078356B2 (en) * 2015-08-20 2018-09-18 Intel Corporation Apparatus and method for saving and restoring data for power saving in a processor
US10243882B1 (en) * 2017-04-13 2019-03-26 Xilinx, Inc. Network on chip switch interconnect
CN107894963B (zh) * 2017-11-27 2021-07-27 上海兆芯集成电路有限公司 用于系统单芯片的通信控制器与通信方法
CN109302296B (zh) * 2018-10-10 2020-12-29 上海保险交易所股份有限公司 用于在区块链网络中广播消息的方法、设备和存储介质
CN114077568A (zh) * 2020-08-18 2022-02-22 Oppo广东移动通信有限公司 核间通信方法、装置、电子组件以及电子设备
CN116389357B (zh) * 2023-06-06 2023-09-29 太初(无锡)电子科技有限公司 基于片上网络的空洞地址处理方法、装置、设备及介质

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4570220A (en) 1983-11-25 1986-02-11 Intel Corporation High speed parallel bus and data transfer method
US4807118A (en) * 1987-01-14 1989-02-21 Hewlett-Packard Company Method for handling slot requests over a network
US4842740A (en) 1988-08-05 1989-06-27 Hoechst Celanese Corporation Membranes prepared from blend of polybenzimidazole with polyarylates
US5098985A (en) 1988-10-11 1992-03-24 The Dow Chemical Company Copolymers containing polybenzoxazole, polybenzothiazole and polybenzimidazole moieties
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5317568A (en) * 1991-04-11 1994-05-31 Galileo International Partnership Method and apparatus for managing and facilitating communications in a distributed hetergeneous network
US5341369A (en) 1992-02-11 1994-08-23 Vitesse Semiconductor Corp. Multichannel self-routing packet switching network architecture
JP2675968B2 (ja) * 1992-08-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 加入者分散2相コミット・プロトコルの拡張機能
CN1174619A (zh) * 1995-02-17 1998-02-25 尢罗佩国际公司 由集成电路控制的事务管理系统
EP0753979A1 (en) * 1995-07-13 1997-01-15 International Business Machines Corporation Routing method and system for a high speed packet switching network
US5887146A (en) 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US6400715B1 (en) * 1996-09-18 2002-06-04 Texas Instruments Incorporated Network address matching circuit and method
US6018782A (en) * 1997-07-14 2000-01-25 Advanced Micro Devices, Inc. Flexible buffering scheme for inter-module on-chip communications
JP3815841B2 (ja) * 1997-03-28 2006-08-30 ローム株式会社 IrDA変復調IC
US6248469B1 (en) 1997-08-29 2001-06-19 Foster-Miller, Inc. Composite solid polymer electrolyte membranes
US5940448A (en) 1997-09-03 1999-08-17 National Semiconductor Corporation Universal serial bus receiver having input signal skew compensation
US6449273B1 (en) * 1997-09-04 2002-09-10 Hyundai Electronics America Multi-port packet processor
US6446173B1 (en) * 1997-09-17 2002-09-03 Sony Corporation Memory controller in a multi-port bridge for a local area network
JPH11187031A (ja) * 1997-12-19 1999-07-09 Fujitsu Ltd Atm交換機
US6256740B1 (en) * 1998-02-06 2001-07-03 Ncr Corporation Name service for multinode system segmented into I/O and compute nodes, generating guid at I/O node and exporting guid to compute nodes via interconnect fabric
US6339788B1 (en) * 1998-06-12 2002-01-15 International Business Machines Corporation Method for encapsulating hardware to allow multi-tasking of microcode
US6311212B1 (en) 1998-06-27 2001-10-30 Intel Corporation Systems and methods for on-chip storage of virtual connection descriptors
US6717910B1 (en) * 1998-09-30 2004-04-06 Stmicroelectronics, Inc. Method and apparatus for controlling network data congestion
DE19851498A1 (de) 1998-11-09 2000-07-06 Aventis Res & Tech Gmbh & Co Polymerzusammensetzung, Membran enthaltend diese, Verfahren zu deren Herstellung und deren Verwendung
US6539450B1 (en) * 1998-11-29 2003-03-25 Sony Corporation Method and system for adjusting isochronous bandwidths on a bus
US6381638B1 (en) * 1999-02-24 2002-04-30 3Com Corporation System and method for options based address reuse
EP1083768A1 (en) * 1999-09-08 2001-03-14 TELEFONAKTIEBOLAGET LM ERICSSON (publ) A method for facilitating data transmission
US6768742B1 (en) * 1999-10-08 2004-07-27 Advanced Micro Devices, Inc. On-chip local area network
US6594704B1 (en) * 1999-12-15 2003-07-15 Quarry Technologies Method of managing and using multiple virtual private networks in a router with a single routing table
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
JP3623712B2 (ja) * 2000-03-16 2005-02-23 日本電気エンジニアリング株式会社 バッファ制御システム及びその方法並びにその制御プログラム記録媒体
US6813275B1 (en) 2000-04-21 2004-11-02 Hewlett-Packard Development Company, L.P. Method and apparatus for preventing underflow and overflow across an asynchronous channel
CA2415614A1 (en) 2000-06-02 2001-12-13 David L. Olmeijer Polymer membrane composition
GB2363480B (en) * 2000-06-13 2002-05-08 Siroyan Ltd Predicated execution of instructions in processors
US6629166B1 (en) * 2000-06-29 2003-09-30 Intel Corporation Methods and systems for efficient connection of I/O devices to a channel-based switched fabric
DE10052242A1 (de) 2000-10-21 2002-05-02 Celanese Ventures Gmbh Mit Säure dotierte, ein- oder mehrschichtige Kunststoffmembran mit Schichten aufweisend Polymerblends umfassend Polymere mit wiederkehrenden Azoleinheiten, Verfahren zur Herstellung solche Kunststoffmembranen sowie deren Verwendung
GB2373595B (en) * 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US20020144078A1 (en) * 2001-03-30 2002-10-03 Siroyan Limited Address translation
US7287649B2 (en) * 2001-05-18 2007-10-30 Broadcom Corporation System on a chip for packet processing
US7165128B2 (en) * 2001-05-23 2007-01-16 Sony Corporation Multifunctional I/O organizer unit for multiprocessor multimedia chips
US6910092B2 (en) * 2001-12-10 2005-06-21 International Business Machines Corporation Chip to chip interface for interconnecting chips
US7389319B2 (en) * 2002-03-22 2008-06-17 Sun Microsystems, Inc. Adaptive connection routing over multiple communication channels
US6885638B2 (en) * 2002-06-13 2005-04-26 Motorola, Inc. Method and apparatus for enhancing the quality of service of a wireless communication
US7099983B2 (en) * 2002-11-25 2006-08-29 Lsi Logic Corporation Multi-core communications module, data communications system incorporating a multi-core communications module, and data communications process
US6825688B1 (en) * 2003-08-15 2004-11-30 Lsi Logic Corporation System for yield enhancement in programmable logic
US7219209B2 (en) * 2003-08-29 2007-05-15 Motorola, Inc. Bus filter for memory address translation

Also Published As

Publication number Publication date
ATE373922T1 (de) 2007-10-15
CN100342370C (zh) 2007-10-10
CN1688990A (zh) 2005-10-26
CN1689312A (zh) 2005-10-26
DE60316458D1 (de) 2007-10-31
WO2004034176A2 (en) 2004-04-22
AU2003299282A1 (en) 2004-05-04
EP1552399A2 (en) 2005-07-13
DE60316458T2 (de) 2008-06-26
WO2004034676A1 (en) 2004-04-22
EP1552669B1 (en) 2007-09-19
EP1552411A2 (en) 2005-07-13
US20060041888A1 (en) 2006-02-23
TW200419358A (en) 2004-10-01
US20060095920A1 (en) 2006-05-04
CN1703881A (zh) 2005-11-30
CN1689312B (zh) 2010-04-14
AU2003299454A1 (en) 2004-05-04
CN100367250C (zh) 2008-02-06
DE60316587D1 (de) 2007-11-08
CN100370443C (zh) 2008-02-20
EP1552669A1 (en) 2005-07-13
ATE374399T1 (de) 2007-10-15
US7366818B2 (en) 2008-04-29
US20060041889A1 (en) 2006-02-23
AU2003267730A8 (en) 2004-05-04
US7373449B2 (en) 2008-05-13
JP2006502650A (ja) 2006-01-19
WO2004034176A3 (en) 2004-08-19
US7769893B2 (en) 2010-08-03
EP1552399B1 (en) 2007-09-26
KR101016987B1 (ko) 2011-02-25
DE60316587T2 (de) 2008-07-03
JP2006502487A (ja) 2006-01-19
KR20050083730A (ko) 2005-08-26
TWI307840B (en) 2009-03-21
WO2004034173A2 (en) 2004-04-22
WO2004034173A3 (en) 2004-12-16
JP2006502642A (ja) 2006-01-19
AU2003267730A1 (en) 2004-05-04
CN1703683A (zh) 2005-11-30
AU2003299454A8 (en) 2004-05-04
CN1703682A (zh) 2005-11-30

Similar Documents

Publication Publication Date Title
JP4560409B2 (ja) データを交換する集積回路および方法
KR100687659B1 (ko) Axi 프로토콜에 따른 락 오퍼레이션을 제어하는네트워크 인터페이스, 상기 네트워크 인터페이스가 포함된패킷 데이터 통신 온칩 인터커넥트 시스템, 및 상기네트워크 인터페이스의 동작 방법
US7594052B2 (en) Integrated circuit and method of communication service mapping
US8014401B2 (en) Electronic device and method of communication resource allocation
US20080232387A1 (en) Electronic Device and Method of Communication Resource Allocation
KR20070010152A (ko) 트랜잭션을 발행하기 위한 집적 회로 및 방법
JP2008536391A (ja) 待ち時間の削減のためのネットワークオンチップ環境及び方法
JP2008535435A (ja) ネットワーク・オン・チップ環境及び遅延低減方法
US20070053350A1 (en) Buffering data packets according to multiple flow control schemes
US20080043757A1 (en) Integrated Circuit And Method For Packet Switching Control
Rădulescu et al. Communication services for networks on chip
US20080123666A1 (en) Electronic Device And Method Of Communication Resource Allocation
US7631137B2 (en) Data processing system and method for converting and synchronising data traffic
TW200419357A (en) Integrated circuit and method for sending requests
Ferrer et al. Quality of Service in NoC for Reconfigurable Space Applications
WO2008035265A2 (en) Electronic device, and method of controlling a communication between processing units

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060703

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100310

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: 20100629

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100726

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4560409

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130730

Year of fee payment: 3

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term