JP5335892B2 - パケット交換オンチップ相互接続ネットワークの高速仮想チャネル - Google Patents

パケット交換オンチップ相互接続ネットワークの高速仮想チャネル Download PDF

Info

Publication number
JP5335892B2
JP5335892B2 JP2011503088A JP2011503088A JP5335892B2 JP 5335892 B2 JP5335892 B2 JP 5335892B2 JP 2011503088 A JP2011503088 A JP 2011503088A JP 2011503088 A JP2011503088 A JP 2011503088A JP 5335892 B2 JP5335892 B2 JP 5335892B2
Authority
JP
Japan
Prior art keywords
virtual channel
flow control
control unit
high speed
node
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 - Fee Related
Application number
JP2011503088A
Other languages
English (en)
Other versions
JP2011517903A (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 JP2011517903A publication Critical patent/JP2011517903A/ja
Application granted granted Critical
Publication of JP5335892B2 publication Critical patent/JP5335892B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/33Flow control; Congestion control using forward notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/40Wormhole routing
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明の技術分野は、一般にチップ・マルチプロセッサ上のコンポーネント間の通信に関する。より詳細には、本発明は、特にチップ・マルチプロセッサ上のコンポーネント間の高速仮想通信チャネルを形成することに関する。
[はじめに]
チップ・マルチプロセッサ(CMP)または特定アプリケーション用のシステムが構築されたチップ(ASOC:application−specific systems−on−a−chip)は、相互に通信することを必要とするいくつかのコンポーネントを有している。これらのコンポーネントとしては、プロセッサ、キャッシュ、データレジスタ、あるいはその他のチップが挙げられる。
チップコンポーネントは、バスシステムまたは専用のルーティングシステムを使用して通信してもよい。これらのシステムのいずれにおいても、チップ上の貴重なスペースを使用し、多くのルーティングを必要とする。それと共に、信号間の干渉をつくる。
コンポーネントは、パケット交換システムを使用することにより、より空間的に効率的な方法で通信することができる。パケット交換システムは、コンポーネント間において、データのパケットを通過させることによって行ってもよい。そして、いかなる2つのコンポーネント間のルーティングの量をも減らすことができる。
添付の図面は、特定の実施例を示したものであり、従って、発明の範囲を限定するためのものではない。本発明の特徴は、図面を用いて説明する。
チップ・マルチプロセッサ・コンポーネント・データパケット伝送の実施例を示すブロック図である。
チップ上のコンポーネント・ネットワークの二次元のメッシュネットワークに係る実施例を例示する図である。
高速仮想チャネルをインプリメントする、ルーター・ノードマイクロアーキテクチュアを示す実施例のブロック図である。
二次元のメッシュネットワークとして、チップ上の動的高速仮想チャネル・コンポーネント・ネットワークの一実施例を示す図である。
フレキシブルなルートを持つチップ上の動的高速仮想チャネル・コンポーネント・ネットワークの一実施例を示すブロック図である。
仮想チャネルからのデータパケットを処理するルーターノードの方法に係る一実施例を示すフローチャートである。
メッシュネットワークにおいて、高速仮想チャネルネットワークのスターベーションの事象の一実施例を示す図である。
通常の仮想チャネルのクレジットベースのバッファ管理システムの一実施例を示す図である。
高速仮想チャネルのクレジットベースのバッファ管理システムの一実施例を示す図である。
静的バッファ管理システムのためのバッファカウントの一実施例を示すブロック図である。
動的に共有されたバッファ管理システムのためのバッファカウントの一実施例を示すブロック図である。
与えられたノードが利用し得るパスの組合せの一実施例のブロック図である。
仮想チャネルの静的パーティショニングの一実施例を示すブロック図である。
ルーターノードとして機能し得るコンピュータシステムの一実施例を示すブロック図である。
[発明の詳細な説明]
本発明の付加的な特徴および効果は、詳細な説明において後述する。そして、これらの一部は記載から明らかであり、又は本発明の実施により明らかとなる。本発明の特徴および効果は、特に添付の請求の範囲において定義される事項の組合せによって得られてもよい。本発明のこれらの、そしてまた他の、特徴は、以下の説明、及び添付の請求の範囲から明らかとなる。あるいは、本願明細書において記載されるように、本発明の実施によって得られてもよい。
本発明の様々な実施態様について、以下に詳細に述べる。特定の実施例が示されているが、これらは、例示的に示すことのみを目的としたものである。本願発明の技術分野の当業者は、その他のコンポーネントを認識し、かつ、構成は本発明の精神と範囲から逸脱しない限りこれを採用しても良い。
本発明は、種々の実施例、例えば、方法、装置、コンピュータ命令の一組、及び本発明の基礎概念に関する他の実施例を含む。方法、ルーターノード、及びチップ上のコンポーネント・ネットワークの高速仮想チャネルを使用するための命令のセットが開示される。入力リンクは、高速仮想チャネルを経てパケット交換ネットワークのソースノードから、高速フローコントロール・ユニットを受信してもよい。出力リンクは、高速フローコントロール・ユニットをシンクノード(sink node)に送信してもよい。スイッチ・アロケータは、出力リンクに直接に、高速フローコントロール・ユニットを伝送してもよい。
チップ・マルチプロセッサ(CMP)または特定アプリケーション用のシステムが構築されたチップ(ASOC)は、相互に通信することを必要とする多くのコンポーネントを有してもよい。これらのコンポーネントは、パケット交換を使用して、チップスペースを浪費せずに、データを通信してもよい。図1は、チップ・マルチプロセッサ・コンポーネント・データ転送100の一実施例を示すブロック図である。ソースノード102として機能するコンポーネントは、一組のデータをデータパケットに組み立てても良い。データパケットは、一つ以上のフローコントロール・ユニット(FLIT)に分けられてもよい。ソースノード102は、最も近い利用できるコンポーネントに各々のFLITを伝送してもよい。受信コンポーネントは、ルーターノード104として機能し、シンクノード106として機能しているコンポーネントに達するまで、次の最も近い利用できるコンポーネントに、データを伝送してもよい。FLITがソースノード102からシンクノード106と通過するパスは、仮想チャネル組み込まれてもよい。通常の仮想チャネル(NVC)108において、ソースノード102はルーターノード104にFLITを伝送してもよい。これは、FLITをバッファリングしてもよく、FLIT、及び他のFLITsをパイプラインによって扱ってもよい。そして、それは、出力リンクに送信し、それらを次のルーターノード104またはシンクノード106に送信する。
高速仮想チャネル(EVC)110は、パケット化オンチップ・ネットワークと、理想の相互接続製品との間の、パフォーマンスとエネルギーとのギャップを縮めるために利用されてもよい。そして、これによって、待ち時間及びエネルギーを専用のリンクのものに近づける。EVC110は、FLITsに対して、あらかじめ定義されたノードのペア間のパスに沿って、中間のルーターノード104をバイパスさせてもよい。EVC110を通過するFLITは、他のFLITsとは異なる選択(preference)を与えてもよい。これによって、各ルーターノードで、バッファリングやルータパイプラインを通過しなければならないことを回避し、直接に出力リンクを利用することができる。EVC110はいかなる回路セットアップ段階も含むことなく、回線交換に類似した方法のネットワークの中でフローの生成を容易にする。そして、パケット通信待ち時間をかなり減らすことができる。さらに、FLITが実質的に中間のルーターノード104をバイパスすることを可能とすることによって、EVC110はバッファリング、ルーター・スイッチング処理、及びプレホップ・リソースコンテンションを減らし、エネルギー及び領域効率を増加させる。
図2は、二次元のメッシュネットワークとしての、静的EVC パケット交換ネットワーク200の一実施例を例示する。パケット交換された、チップマルチプロセッサネットワークが用いられているが、EVC110はいかなるパケット交換ネットワークに使用されてもよい。このメッシュネットワークの、サイズ及び二次元の形態は、例示であって、本発明の目的において、決して限定的でない点に留意すべきである。各々のノード202は、ソースノード102、ルーターノード104またはシンクノード106として機能してもよい。ネットワーク200の各々のノード202は、NVC108によって隣接ノード202に接続されてもよい。更に、ノード202は、EVC110によって、隣接していないノードに接続されてもよい。これによって、FLITは、複数の中間ノードまたはルーターノード104を飛び越えることができる。これによって、あらかじめ定義されたパスに沿って、ルーターノード104での停止やバッファリングを回避する。例えば、ノードのBからノードのGに動くFLITは、普通のNVCパス108をノードのBからノードのDまで経由し、ノードのDからノードのGまでは、EVC110のリンクを経由してもよい。EVC110は、ルーターノード104(例えばノードのE、及びF)による待ち時間を排除し得る。かつルーターノード104上の全てのバッファオペレーションを排除することによって、パワーを節約してもよい。静的EVCネットワークにおいて、特定のソースノード102とシンクノード106とは、EVC110で接続されてもよい。4つのノードの静的EVC110が本実施例では使用されるが、選択によっては、より大きいか、又はより小さい長さの静的EVC110が使用されてもよい。
ルータは、仮想チャネル・フローコントロールに加えて、高速リンクをインプリメントしてもよい。ルータは、高速パスを通過するデータパケットによって利用されるだけの仮想チャネルを利用してもよい。図3は、EVC110をインプリメントするルーター・ノード・マイクロアーキテクチャ300の一実施例のブロック図を示す。ルーターノード104は、入力リンク302上の仮想チャネルを経てFLITを受信してもよく、かつ、フロー制御モジュール304にFLITを入力してもよい。フローコントロールのために使用される仮想チャネルは、NVCs108、及びEVCs110として構成されてもよい。フロー制御モジュール304は、FLITの優先度を決定するために仮想チャネルを使用してもよい。これによって、どのFLITを、クロスバースイッチ308によって選択された出力リンク306に転送するかを選択する。
ルート計算論理モジュール310はルート計算を実行してもよい。又は、各々のルーターノード104でのソースノード102とシンクノード106との間を通過するデータパケットのパスを計算してもよい。ルート計算論理モジュール310は、データパケットがEVC110に到来した場合、資格を与える(qualify)役割を果たしてもよい。加えて、ルート計算論理モジュール310は、全てのパケットのルート先取り(look ahead routing)を行ってもよい。これによって、一旦データパケットがノードあるいはEVCパス110エンドポイントに達した場合、ルート計算は、ルータパイプラインで、厳密なパス(critical path)でなくてもよい。ルート計算は、使用されているベースルーティングアルゴリズムにいかなる影響も与えない。EVCアロケータ312は、EVC110を、一対のノード間を通過するために高速伝送路を使用する予定になっているデータパケットに割り当ててもよい。これに対して、NVCアロケータ314は、NVC108を隣接したノードに通過する予定になっている他のデータパケットに割り当ててもよい。
フロー制御モジュール304は、EVC入力バッファ(EVC BUF)316を経て、EVC110からFLITを受信してもよい。あるいは、NVC入力バッファ(NVC BUF)318を経て、NVC108からFLITを受信してもよい。EVCラッチ320は、FLITがその高速パス110上のいかなるルーターノード104も通過するように、設定してもよい。EVCラッチ320によって通過するFLITは、同じ出力ポート306上の他のいかなるデータパケット・フローよりも先取りしてもよい。EVCラッチ320は、ソースノード102(例えばより低い優先度EVCフロー)によって送られる2つのノード間の進行中のデータパケット伝送をインターラプトしてもよい。
スイッチ・アロケータ322は、EVCフロー110をNVCフロー108より優先してもよい。スイッチ・アロケータ322は、FLITsのEVCフロー110を、ソースノード102で、より少ないホップでインターラプトする。このため、より多くのホップを有するFLITsのEVCフロー110は、そのルーターノード104を使用してもよい。スイッチ・アロケータ322は、FLITsのEVCフロー110を、ソースノード102により近いところでインターラプトする。したがって、ソースノード102から、より遠いFLITsのEVCフロー110は、ルーターノード104を使用してもよい。
ネットワーク200は、EVCs110、及びNVCs108に静的に分けられ、また、仮想チャネルをより動的に生成し得る。図4は、動的EVCパケット交換ネットワーク400の一実施例の、二次元のメッシュネットワークを示す。動的EVCパケット交換ネットワーク400において、ノード202間のいかなるホップの組も、動的EVC402として示されてもよい。コンポーネント・ネットワーク制約によって定まる最大EVC長の範囲内で、与えられたデータパスのために必要とされるパスとして、EVCパス402の長さが設定されてもよい。例えば、静的EVCネットワーク200で、ソースノード102は、単一のホップNVCパス108を経てノードのBからノードのCに、及びノードCからノードのDに横断してもよく、そして、ノードのDからノードのGに静的に割当られたEVCパス110を経て横断してもよい。3ホップが最大であるEVCパス402を可能とする動的ネットワークにおいて、ソースノード102は、ノードのBから直接にFLITをノードのEに送ってもよく、そしてノードのGに行くために、2ホップ長さのサブセットEVCパス402を使用してもよい。以下同様である。
図5は、チップ500上のルートフレキシブルな動的EVCコンポーネント・ネットワークの一実施例を例示するブロック図である。時々、データパスは、リソース制約のために、最適EVCパス502(例えば最も長いEVCパス502)を使用することができなくてもよい。この場合、ソースノード102は、代替のEVCパス504を経て、FLITを送ってもよい。例えば、これは利用可能資源を有する次のより短いEVCパス504である。例えば、シンクノードG106にFLITを送るソースノードA102のために最も効率的なデータパスは、第1の最適EVCパス502に沿って、ソースノードA102から直接にノードのDにFLITを送り、そして第2の最適EVCパス502に沿って、ルーターノードのD104からシンクノードG106に送ることである。しかしながら、最も効率的なデータパスは、利用可能な資源を有していない。ソースノードA102は、シンクノードに代替パス504に沿ってFLITを送ってもよい。ソースノードA102は、代替のEVCパス504に沿って、ルーターノードのC104に、FLITを送ってもよい。そして、ルーターノードのC104からルーターノードのE104に、そして、ルーターノードのE104からシンクノードG106に送ることになる。EVCアロケータ212は、データパケットの経路情報を考慮することによって、最善経路を決定してもよい。
図6は、仮想チャネルからFLITを処理するルーターノードのための一実施例の方法600のフローチャートを示す。ルーターノード104は、仮想チャネル(VC)(ブロック602)を経て、FLITを受信してもよい。FLITが通常のFLIT(NF)(ブロック604)である場合、ルーターノード104が入力バッファにNFを記憶してもよく(ブロック606)、そしてNFを処理する(ブロック608)。NFは、ルーターノード104がソースノード102であるFLITであってもよい。また、NVC108上の隣接したノードからルーターノード104に到着したFLITまたはルーターノード104がEVC110の終点であるが、シンクノード106でないFLITであってもよい。NVC108として到着する場合、入力ポートはNVC入力バッファ318であり、EVC110として到着する場合、EVC入力バッファ316である。ルーターノード104は、処理したNFを、出力リンク306に送ってもよい(ブロック610)。FLITが高速FLIT(EF)110である場合(ブロック604)、ルーターノード104は、EFを出力リンク306に転送する(612ブロック)。高速FLITは、EVC110の途中でルーターノード104によって受信されるFLITであってもよい。
特定のメッセージフローのためにバンド幅を事前に確保しているいかなるネットワークにおいても、予め確立された回路を通過するメッセージが他のメッセージをブロックするときに、スターベーション(starvation)が発生し得る。図7は、EVCネットワークにおいて、スターベーション700が発生したメッシュネットワークの一実施例を示す。EFs702に与えられた上位の優先度は、結果としてスターベーションシナリオ704を誘発する。より詳細には、EVC702のパスに沿ったルーターノードD104がEFのサービスを行う入力を受ける場合、ルーターノードD104で局所的にバッファリングされるNFは物理チャネルを使用する機会を決して得られない。上流からの高速データパケットも、下流のルータから生じている異なるEVC110上の高速データパケットを連続的にスターブ(starve)させ得る。
これを解決するために、各々のルーターノード104は、ルーターノード104が特定のEVCパス110にサービスを提供した連続的なサイクルのカウントの数を維持してもよい。高速FLITsにサービスを提供した連続的なサイクルが閾値の数を超えた後に、ルーターノード104がスターベーションメッセージを送信してもよい。例えば、「スターベーション回復を開始する」旨のメッセージまたは「スターベーション・オン」トークン、をEVCソースノードA102にアップストリーム方向に送信してもよい。このトークンを受信すると、即座に、ソースノードA102は対応するリンク上の送信EFsを停止してもよい。そして、局所的にスターブされたFLITがサービスを受けることを可能とする。設定されたサイクル数、これを行った後、ルーターノードのD104は、「スターベーションの回復終了」のメッセージまたは「スターベーション・オフ」のトークンをEVCソースノードA102に送ってもよい。これによって、EVCコミュニケーションを再開してよい旨が送信される。
図6に示すように、EFに対して、同じ出力ポート306を予定しているNFがバッファリングされる場合(ブロック614)、ルーターノード104はスターベーションカウント(SCT)を+1増加してもよい(ブロック616)。ルーターノード104は、スターベーション閾値(STHR)に達したかどうか見るために、SCTをチェックしてもよい(ブロック618)。SCTがSTHRの値に達した場合(ブロック618)、ルーターノード104は、「スターベーション回復を開始する」メッセージ(BSRM)の上流方向の全てのEVCソースノード102(ブロック620)に送ってもよい。全ての適切な上流のノードがBRSMを受信することが可能な時間の後、ルーターノード104は、ルーターノードがEFsを受信していない間、スターベーション回復モードに入ってもよい。ルーターノード104がスターベーション回復モードである間、EVCソースノード102は休止してもよい。あるいは、EFsの伝送はEFsをルート変更するか、または他の代替措置をとる。ルーターノード104は、スターベーション回復周期カウンタ(SRP)をゼロにセットしてもよい(ブロック622)。
NFに対しては、ルーターノード104がスターベーション回復モードでない場合(ブロック624)、ルーターノード104はSCTをゼロにリセットしてもよい(ブロック626)。ルーターノード104がスターベーション調停モードである場合(ブロック624)、一旦NFが出力ポート306にうまく送られるならば、ルーターノード104はSRPを+1増加してもよい(ブロック628)。一旦スターベーション回復の期間が終ると(ブロック630)、ルーターノード104は全ての上流のEVCソースノード102に「スターベーションの回復終了」のメッセージ(ESRM)、すなわち、ルーターノード104がEFsをもう一度受信する信号(ブロック632)、を送信してもよい。
チップ上のコンポーネント・ネットワークは、バッファを管理し、かつ隣接したルーターノード104間のそれらの利用可能性を通信するために、バッファードフロー制御技術を使用してもよい。下流ノードは、バックプレッシャにより、上流のノードに、利用できる空きバッファの数を通信してもよい。クレジットベースのバッファ管理は、下流で利用できる空きバッファのカウントの数を維持するために、上流のルータを使用してもよい。カウントは、FLITが転送されるたびに、デクリメントされてもよい。それに伴って、下流のバッファを消費する。FLITが下流ノードから離れ、そして、対応するバッファを開放した場合、クレジットは上流に送り返されてもよく、かつ、対応する空きバッファカウントが増加してもよい。
コンポーネント・ネットワークは、その仮想チャネルに対するクレジットの往復遅延と同じに、静的にバッファリングを各々の仮想チャネルに割り当てる単純なバッファ管理方式を使用してもよい。図8は、一実施例であるNVC108のクレジットベースッファ管理システム800を、時間軸に沿って示した図である。時刻t1で、ノードBがFLITを次のノードに送信する(矢印802)と、ノードBは、クレジットをt1とt2との間でノードAに送信してもよい(矢印804)。ノードAは、t2とt3との間でクレジットを処理する(矢印806)。ノードAは、t3とt4との間でノードBにFLITを送っている間に(矢印802)、クレジットを前のノードに送信してもよい(矢印804)。ノードBは、t4とt5との間で、非高速パイプラインでFLITを処理していてもよい(矢印808)。したがって、クレジット往復遅延(TCRN)は、t1からt5までかかることになる。
EVC110を使用するときに、バッファ利用可能性に係る通信は下流のEVCシンクノード106で空きバッファを確実にするために数ホップ全体にされてもよい。バッファ利用可能性のマルチホップ通信は結果としてより長いバッファ所用時間となり、処理能力上の有利でない効果を有し得る。図9は、一実施例としてEVC110クレジットベースバッファ管理システム900を時間軸に沿って示した図である。時刻t1で、ノードDがFLITを次のノードに送信し(矢印902)、ノードDはクレジットをtiとt2との間にノードAに送信してもよい(矢印904)。ノードAは、t2とt3との間でクレジットを処理する(矢印906)。t3とt4と間のノードBでFLITを送るときに(矢印902)、ノードのAはクレジットを前のノードに送信してもよい(矢印904)。t4とt5との間に、ノードBは、高速パイプラインの一部としてFLITを出力リンクに転送する(矢印908)。ノードのBは、t5とt6との間のノードCに、FLITを送ってもよい(矢印902)。t6とt7との間で、ノードCは、高速パイプラインの一部としてFLITを出力リンクに転送する(矢印908)。ノードCは、t7とt8との間でノードDに、FLITを送ってもよい(矢印902)。ノードCは、t8とt9との間で、非高速パイプラインのFLITを処理していてもよい(矢印910)。したがって、クレジット往復遅延(TCRE)は、t1からt9までとなる。
バッファ管理システムは、静的にバッファを管理してもよい。図10は、静的バッファ管理システム1000のためのバッファカウントの一実施例のブロック図を示している。静的バッファの数は各々の仮想チャネルに割り当てられてもよい。そして、これは、各々の仮想チャネルに到来するFLITsのためのものである。NVCバッファの一組1002は、各々のNVC108のために予約されていてもよい。そして、EVCバッファの一組1004は、各々のEVC110のために予約されていてもよい。一組のバッファの数をセットするときに、各々の一組EVCバッファ1004のサイズは、TCREを考慮してもよい。
静的バッファ管理は、阻害のあるトラフィック(adversarial traffic)の場合にはバッファを割り当てるときに非効率的になることがある。大多数のネットワークトラフィックがごく近隣で起きている場合、EVC110は決して使用されないかもしれない。そして、静的にEVCs110に割り当てられたバッファスペースは、利用されないかもしれない。静的にバッファをVC(例えばNVC108、及びEVC110)に仕切る代わりに、バッファは、要求があり次第VCに割り当てられてもよい。上流のノードに対してEVCの存在を知らせるハイウォーターマーク方式は、バッファが利用できるようになった場合に、長いホップより、短いホップのEVCs402またはNVCs108に優先度を与える。例えば、2ホップのEVC402が、少なくとも8つの利用できるバッファを要求する場合、下流のルータは、上流のルータに対して、もし、下流のルータの8つのバッファカウントが8になった場合、離れているEVC402の2つのノードが利用できる旨の信号を送ってもよい。そのバッファは、VC全体に自由に動くことができ(float freely)、そうすることによって、VCがただ一つのFLITを持つ。
図11は、動的な共用バッファ管理システム1100のためのバッファカウントの一実施例のブロック図を示す。バッファカウント1102は、利用できる(または自由な)バッファの数を意味してもよい。利用できるバッファの数が、NVC閾値1104、又は、NVC108をオペレートするために必要なバッファの数、と等しいことを、バッファのカウント1102が示している場合、ノードはNVC108を使用してもよい。利用できるバッファの数が、EVC閾値1106、又は、EVC402をオペレートするために必要なバッファの数、と等しいことを、バッファのカウント1102が示している場合、ノードはEVC402を使用してもよい。EVC閾値1106は、EVCパス402の長さに関連し得る。
フレキシブルなバッファリングを可能にするために、下流のルータは、適切な信号を上流のルータに送信しなければならないかもしれない。図12は、与えられたノードが利用し得るパス1200の組合せの一実施例を示すブロック図である。8つのノードのネットワークが示されているが、他のサイズのネットワークが使用されてもよい。
VCは、静的に分割されてもよい。図13は、仮想チャネルの静的分割1300の一実施例を示すブロック図である。VC1302またはパケット状態トラッカの合計数は、両NVCs108、及び異なる長さのEVCs402で分かれる。この分割は、設計時に行ってもよい。最長IMAXの長さのEVCのための能力を持つネットワークコンポーネントに対して、総数(k×IMAX)組の仮想チャネルが提供されてもよい。このコンポーネント・ネットワークは、NVCs108に対してk1個の仮想チャネル1302、長さ2のEVC402に対してk2個の仮想チャネル、長さ3のEVC402に対してk3個の仮想チャネル、等となる。
図14は、パケット交換ネットワークのルーターノード104として機能するためのコンピューティング・システム1400の可能な構成を例示する。ルーターノード104は、バス1440によって接続された、コントローラ/プロセッサ1410と、メモリ1420と、ネットワークインターフェース1430とを有する。ルーターノード104は、いかなるオペレーティングシステム(例えばMicrosoft Windows(登録商標)、UNIX(登録商標)またはLINUX)をインプリメントしてもよい。クライアント、及びサーバ・ソフトウェアは、例えばいかなるプログラミング言語(例えばC、C++、Java(登録商標)またはVisual Basic)で書かれてもよい。サーバ・ソフトウェアは、アプリケーション・フレームワーク(例えばJava(登録商標)サーバまたは.NET(登録商標)フレームワーク)上で動作してもよい。
コントローラ/プロセッサ1410は、当業者にとって既知のいかなるプログラムされたプロセッサであってもよい。しかしながら、意志決定サポート方法は、また、専用又は汎用コンピュータ、プログラムされたマイクロプロセッサまたはマイクロコントローラ、周辺集積回路素子、特定用途向け集積回路、ハードウェア/電子的論理回路、例えばディスクリートエレメント回路または他の集積回路、プログラマブル・ロジック・デバイス、例えばプログラマブル・ロジック・アレイ、フィールド・プログラマブル・ゲートアレイ等にインプリメントされてもよい。一般に、本願明細書において記載されているように、EVCルーティング方法をインプリメントすることが可能ないかなるデバイスまたはデバイスも、本発明の意志決定支援システム機能をインプリメントするために使用されてもよい。
メモリ1420は揮発性及び不揮発性のデータ記憶装置を含んでもよい。そして、一つ以上の電気的、磁気的、光学的メモリ(例えばランダムアクセスメモリ(RAM)、キャッシュ、ハードディスクまたは他のメモリ素子)を含む。メモリは、特定のデータへの速度アクセスに、キャッシュを有してもよい。メモリ1420はまた、コンパクトディスクに接続されてもよい。読取り専用メモリ(CD−ROM)ディジタル・ビデオ・ディスク メモリ(DVD−ROM)、DVD読み書き入力、テープ装置、その他の、システムにデータを直接アップロードすることを可能とするリムーバブル・メモリー素子を含む。
ネットワークコネクション・インターフェース1430は、ネットワークから信号を送受信することが可能な通信デバイス、モデム、ネットワークインターフェイスカード、トランシーバまたは他のいかなるデバイスに接続されてもよい。ネットワークコネクション・インターフェース1430は、ルーターノード104をネットワークに接続するために使用してもよい。ルーターノード104のコンポーネントは、例えば、電気的なバス1440を経て接続されてもよく、無線で接続されてもよい。
クライアントソフトウェア、及びデータベースは、メモリ1420からコントローラ/プロセッサ1410によってアクセスされてもよく、例えば、同様にデータベース・アプリケーション(ワードプロセッシングアプリケーション)を含んでもよい。あるいは本発明の決定の機能をサポートするコンポーネントを含んでもよい。ルーターノード104は、例えばいかなるオペレーティングシステム(例えばMicrosoft Windows(登録商標)、LINUXまたはUNIX(登録商標)をインプリメントしてもよい。クライアント、及びサーバ・ソフトウェアは、例えばいかなるプログラミング言語(例えばC、C++、Java(登録商標)またはVisual Basic)で書かれてもよい。必ずしも必要ではないが、本発明は、少なくとも一部で、コンピュータで実行可能な命令で記述される。例えば、電子デバイス(例えば汎用コンピュータ)によって実行されるプログラム・モジュールが挙げられる。一般に、プログラム・モジュールは、ルーチン・プログラム、オブジェクト、コンポーネント、データ構造等の特定のタスクを実行し、あるいは特定の抽象的なデータタイプをインプリメントするものを含む。さらに、当業者は、本発明の実施が、ネットワーク、コンピューティング環境で行われることを理解するであろう。この環境には、パソコン、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサあるいはプログラム可能な家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、などを含む多くのタイプのコンピュータシステムが含まれる。
一般に、プログラム・モジュールは、ルーチン・プログラム、オブジェクト、コンポーネント、データ構造等の特定のタスクを実行しあるいは特定の抽象的なデータタイプをインプリメントするものを含む。さらに、当業者は、本発明の実施がネットワーク、コンピューティング環境で行われることを理解するであろう。この環境には、パソコン、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサに基づくかプログラム可能な家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、などを含む多くのタイプのコンピュータシステムが含まれる。
実施例は、また、タスクが通信ネットワークで連結される(ハードウエアリンク、ワイヤレス・リンク、あるいはそれらの組合せによって)、ローカル、及び遠隔処理デバイスによって遂行される分散コンピューティング環境において実施されてもよい。
本発明の範囲内の実施例はまた、コンピュータ可読のメディアを含んでもよい。そして、コンピュータ実行可能な命令またはデータ構造を実行し、記憶する。この種のコンピュータ可読のメディアは、一般のまたは専用コンピュータによってアクセスし得るいかなる利用可能なメディアでもあってもよい。例えば、この例に限らないが、この種のコンピュータ可読のメディアはRAM、ROM、EEPROM、CD−ROMまたは他の光学ディスク記憶装置(磁気ディスク記憶装置または他の磁気記憶装置)を有してもよい。又は所望のプログラムコードを実行するかまたは記憶するために、コンピュータ実行可能な命令またはデータの形での構造で使用され得る他のいかなる媒体をも意味する。情報がネットワークまたはコンピュータへの他の通信接続(ハードワイヤード、ワイヤレス、あるいはこれらの組合せ)を通じて転送されるかまたは提供されるときに、コンピュータは、適切に、この接続を、コンピュータ可読媒体と同じように認識する。したがって、この種の接続は、コンピュータ可読媒体として捉えることができる。また、上記の組合せもコンピュータ可読のメディアの範囲内に含まれなければならない。
コンピュータ実行可能な命令は、例えば、特定の機能または機能のグループを実行するための、汎用コンピュータ、専用コンピュータまたは特殊目的処理デバイスと捉えることができる、命令及びデータを含む。コンピュータ実行可能な命令は、スタンドアローンまたはネットワーク環境のコンピュータによって実行されるプログラム・モジュールを含む。通常、プログラム・モジュールはルーチン、プログラム、オブジェクト、コンポーネント及びデータ構造、等を含む。これらは、特定のタスクを遂行するかまたは特定の抽象データタイプをインプリメントする。コンピュータ実行可能な命令、関連データ構造、及びプログラム・モジュールは、本願明細書において開示される方法のステップを実行するためのプログラムコード手段の実施例を表すものである。この種の実行可能命令の特定のシーケンスまたは関連データ構造は、この種のステップに記載されている機能をインプリメントするための対応する動作の実施例を表すものである。
前記説明が具体的な詳細を含んでいるが、いかなる形であれ請求項を制限するように、それらは解釈されてはならない。本発明に記載されている実施例の他の構成は、本発明の技術的範囲に属する。例えば、本発明の原則は、各々のユーザがこの種のシステムを個々に利用している個々のユーザに適用されてもよい。このことは、(多数の考えられるアプリケーションのいかなる一つも本願明細書において記載されている機能を必要としない場合であっても)各々のユーザが本発明の利点を利用することを可能にする。複数の電子デバイスの各々は、様々な形で、本願発明の内容を処理することができる。本願発明は、必ずしも、全てのエンドユーザによって使用される1つのシステムである必要はない。したがって、記載された具体例よりむしろ、添付の請求の範囲及びそれらの均等物が本発明を定義する。

Claims (19)

  1. 高速仮想チャネルを経てパケット交換ネットワークのソースノードから高速フローコントロール・ユニットを受信するステップと;
    シンクノードに送信するために、スターベーションカウンタの値とスターベーション閾値との比較に基づいて、直接出力リンクに前記高速フローコントロール・ユニットを転送するステップであって、前記スターベーションカウンタは、前記高速フローコントロール・ユニットと同じ出力ポートを予定している通常フローコントロールがバッファリングされる毎に、アップデートされることとなっており、前記高速フローコントロール・ユニットは、前記高速フローコントロール・ユニットがバッファリングされることなしに、又は前記1つ以上の中間ルーターノードの各々におけるルータパイプラインを通過することなしに、ノードのペア間の1つ以上の予め定義されたパスに沿って1つ以上の中間ルーターノードをバイパスし、前記高速フローコントロール・ユニットは、パケット交換ネットワークにおいて、前記高速フローコントロール・ユニットが前記高速仮想チャネルで伝送されているという判断のみに基づいて、他の非高速フローコントロール・ユニットよりも優先度が与えられる、ステップと;
    を有するオンチップ相互接続のための方法。
  2. 前記高速仮想チャネルから受信される高速フローコントロール・ユニットをトラッキングするステップと;
    スターベーション閾値に達する場合、スターベーション回復モードに入るステップと;
    隣接ノードに通常フローコントロール・ユニットを伝送するステップと;
    を更に有する請求項1記載の方法。
  3. 前記高速仮想チャネルは、静的な長さを有する、請求項1記載の方法。
  4. 前記高速仮想チャネルは、動的な長さを有する、請求項1記載の方法。
  5. 最適な高速仮想チャネルが利用できない場合、前記高速仮想チャネルは、代替の高速仮想チャネルである、請求項1記載の方法。
  6. 前記高速仮想チャネルは、静的に割り当てられたバッファを有する、請求項1記載の方法。
  7. 前記高速仮想チャネルは、動的に割り当てられたバッファを有する、請求項1記載の方法。
  8. 高速仮想チャネルを経てパケット交換ネットワークのソースノードから、高速フローコントロール・ユニットを受信する入力リンクと;
    スターベーションカウンタの値とスターベーション閾値との比較に基づいて、前記高速フローコントロール・ユニットをシンクノードに送信する出力リンクであって、前記スターベーションカウンタは、前記高速フローコントロール・ユニットと同じ出力ポートを予定している通常フローコントロールがバッファリングされる毎に、アップデートされることとなっている、出力リンクと;
    前記高速フローコントロール・ユニットを直接に前記出力リンクに転送するスイッチ・アロケータであって、前記高速フローコントロール・ユニットは、前記高速フローコントロール・ユニットがバッファリングされることなしに、又は前記1つ以上の中間ルーターノードの各々におけるルータパイプラインを通過することなしに、ノードのペア間の1つ以上の予め定義されたパスに沿って1つ以上の中間ルーターノードをバイパスし、前記高速フローコントロール・ユニットは、パケット交換ネットワークにおいて、前記高速フローコントロール・ユニットが前記高速仮想チャネルで伝送されているという判断のみに基づいて、他の非高速フローコントロール・ユニットよりも優先度が与えられる、スイッチ・アロケータと;
    を有するオンチップ相互接続のためのルーターノード。
  9. 前記高速仮想チャネルは、静的な長さを有する、請求項8記載のルーターノード。
  10. 前記高速仮想チャネルは、動的な長さを有する、請求項8記載のルーターノード。
  11. 最適な高速仮想チャネルが利用できない場合、前記高速仮想チャネルは代替の高速仮想チャネルである、請求項8記載のルーターノード。
  12. 前記高速仮想チャネルは、静的に割り当てられたバッファを有する、請求項8記載のルーターノード。
  13. 前記高速仮想チャネルは、動的に割り当てられたバッファを有する、請求項8記載のルーターノード。
  14. 前記パケット交換ネットワークは、チップ・マルチプロセッサである、請求項8記載のルーターノード。
  15. 高速仮想チャネルを経てパケット交換ネットワークのソースノードから高速フローコントロール・ユニットを受信するステップと;
    スターベーションカウンタの値とスターベーション閾値との比較に基づいて、シンクノードに送信するために直接出力リンクに前記高速フローコントロール・ユニットを転送するステップであって、前記スターベーションカウンタは、前記高速フローコントロール・ユニットと同じ出力ポートを予定している通常フローコントロールがバッファリングされる毎に、アップデートされることとなっており、前記高速フローコントロール・ユニットは、前記高速フローコントロール・ユニットがバッファリングされることなしに、又は前記1つ以上の中間ルーターノードの各々におけるルータパイプラインを通過することなしに、ノードのペア間の1つ以上の予め定義されたパスに沿って1つ以上の中間ルーターノードをバイパスし、前記高速フローコントロール・ユニットは、パケット交換ネットワークにおいて、前記高速フローコントロール・ユニットが前記高速仮想チャネルで伝送されているという判断のみに基づいて、他の非高速フローコントロール・ユニットよりも優先度が与えられる、ステップと;
    を有する命令をコンピュータに実行させるオンチップ相互接続のためのプログラム。
  16. 前記高速仮想チャネルから受信される高速フローコントロール・ユニットをトラッキングするステップと;
    スターベーション閾値に達する場合、スターベーション回復モードに入るステップと;
    隣接ノードに通常フローコントロール・ユニットを伝送するステップと;
    を更に有する命令をコンピュータに実行させる請求項15記載のプログラム。
  17. 前記高速仮想チャネルは、動的な長さを有する、請求項15記載のプログラム。
  18. 最適な高速仮想チャネルが利用できない場合、前記高速仮想チャネルは代替の高速仮想チャネルである、請求項15記載のプログラム。
  19. 前記高速仮想チャネルは、動的に割り当てられたバッファを有する、請求項15記載のプログラム。
JP2011503088A 2008-04-02 2009-03-31 パケット交換オンチップ相互接続ネットワークの高速仮想チャネル Expired - Fee Related JP5335892B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/061,302 US8223650B2 (en) 2008-04-02 2008-04-02 Express virtual channels in a packet switched on-chip interconnection network
US12/061,302 2008-04-02
PCT/US2009/038874 WO2009146025A2 (en) 2008-04-02 2009-03-31 Express virtual channels in a packet switched on-chip interconnection network

Publications (2)

Publication Number Publication Date
JP2011517903A JP2011517903A (ja) 2011-06-16
JP5335892B2 true JP5335892B2 (ja) 2013-11-06

Family

ID=41133227

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010546148A Expired - Fee Related JP5201514B2 (ja) 2008-04-02 2009-03-31 チップマルチプロセッサおよび方法
JP2011503088A Expired - Fee Related JP5335892B2 (ja) 2008-04-02 2009-03-31 パケット交換オンチップ相互接続ネットワークの高速仮想チャネル

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010546148A Expired - Fee Related JP5201514B2 (ja) 2008-04-02 2009-03-31 チップマルチプロセッサおよび方法

Country Status (9)

Country Link
US (2) US8223650B2 (ja)
JP (2) JP5201514B2 (ja)
KR (1) KR101170262B1 (ja)
CN (2) CN103501285B (ja)
BR (2) BRPI0911376A2 (ja)
DE (2) DE112009000834B4 (ja)
GB (1) GB2470878B (ja)
RU (1) RU2487401C2 (ja)
WO (2) WO2009146027A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8223650B2 (en) 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
US8539130B2 (en) * 2009-09-24 2013-09-17 Nvidia Corporation Virtual channels for effective packet transfer
US9015448B2 (en) 2010-06-17 2015-04-21 Advanced Micro Devices, Inc. Message broadcast with router bypassing
CN103181127B (zh) * 2011-03-09 2016-05-25 松下知识产权经营株式会社 中继装置、中继装置的控制方法及程序
CN102437953B (zh) * 2011-12-14 2014-07-30 清华大学 片上网络中的低功耗自适应路由方法
US9608922B2 (en) * 2011-12-23 2017-03-28 Intel Corporation Traffic control on an on-chip network
US20140237018A1 (en) * 2011-12-23 2014-08-21 Matteo Monchiero Tracking distributed execution on on-chip multinode networks without a centralized mechanism
US9647921B2 (en) 2012-08-07 2017-05-09 Qualcomm Incorporated Statistics and failure detection in a network on a chip (NoC) network
CN103383671A (zh) * 2013-02-26 2013-11-06 西安交通大学 一种基于片上网络的dram通讯优化方法
US9166687B2 (en) * 2013-03-28 2015-10-20 Cisco Technology, Inc. Method and apparatus for using credits to determine cable length
US10193827B2 (en) 2013-08-13 2019-01-29 Dean Michael Ancajas Hot carrier injection tolerant network on chip router architecture
US20150049758A1 (en) * 2013-08-13 2015-02-19 Utah State University Hot carrier injection tolerant network on chip router architecture
CN105706403B (zh) * 2013-09-12 2019-01-08 英派尔科技开发有限公司 片上网络与片上网络中发送数据的方法
US9602587B2 (en) * 2014-06-26 2017-03-21 Altera Corporation Multiple plane network-on-chip with master/slave inter-relationships
JP6683711B2 (ja) * 2014-12-29 2020-04-22 オラクル・インターナショナル・コーポレイション ネットワーキング装置において効率的な仮想出力キュー(voq)パケットフラッシングスキームをサポートするためのシステムおよび方法
CN104636085B (zh) * 2015-01-27 2017-10-03 北京理工大学 一种片上网络消息缓冲区的存储管理模块
US9658676B1 (en) * 2015-02-19 2017-05-23 Amazon Technologies, Inc. Sending messages in a network-on-chip and providing a low power state for processing cores
US9658675B1 (en) 2015-02-19 2017-05-23 Amazon Technologies, Inc. Achieving power saving by a circuit including pluralities of processing cores based on status of the buffers used by the processing cores
CN105991428B (zh) * 2015-03-05 2020-11-10 中兴通讯股份有限公司 交换机路由冲突的处理方法及装置
CN104683242B (zh) * 2015-03-15 2018-05-25 西安电子科技大学 一种二维片上网络的拓扑结构以及路由方法
US20190199633A1 (en) * 2017-12-27 2019-06-27 Futurewei Technologies, Inc. Method and apparatus for forwarding in information centric networking
US11502934B2 (en) * 2018-08-21 2022-11-15 The George Washington Univesity EZ-pass: an energy performance-efficient power-gating router architecture for scalable on-chip interconnect architecture
CN110049104A (zh) * 2019-03-15 2019-07-23 佛山市顺德区中山大学研究院 基于分层片上互连网络的混合缓存方法、***及存储介质
US11386031B2 (en) * 2020-06-05 2022-07-12 Xilinx, Inc. Disaggregated switch control path with direct-attached dispatch
US11757798B2 (en) 2020-12-28 2023-09-12 Arteris, Inc. Management of a buffered switch having virtual channels for data transmission within a network

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2563819B2 (ja) * 1988-03-04 1996-12-18 日本電信電話株式会社 優先制御方法
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US5388101A (en) * 1992-10-26 1995-02-07 Eon Corporation Interactive nationwide data service communication system for stationary and mobile battery operated subscriber units
JPH0816470A (ja) * 1994-07-04 1996-01-19 Hitachi Ltd 並列計算機
JP3224963B2 (ja) * 1994-08-31 2001-11-05 株式会社東芝 ネットワーク接続装置及びパケット転送方法
JPH08256154A (ja) * 1995-03-17 1996-10-01 Nec Corp Atmのセルバッファ制御方法
US6055618A (en) 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US6285679B1 (en) 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US20020150056A1 (en) 1998-05-15 2002-10-17 Martin Abadi Method for avoiding broadcast deadlocks in a mesh-connected network
US6973455B1 (en) * 1999-03-03 2005-12-06 Emc Corporation File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US6338123B2 (en) * 1999-03-31 2002-01-08 International Business Machines Corporation Complete and concise remote (CCR) directory
US6751190B1 (en) * 1999-05-18 2004-06-15 Cisco Technology, Inc. Multihop nested tunnel restoration
US6674720B1 (en) * 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
JP2001156798A (ja) * 1999-11-29 2001-06-08 Hitachi Ltd Vc切替え方法およびatm交換機
US20020146022A1 (en) 2000-05-31 2002-10-10 Van Doren Stephen R. Credit-based flow control technique in a modular multiprocessor system
US20010049742A1 (en) * 2000-05-31 2001-12-06 Steely Simon C. Low order channel flow control for an interleaved multiblock resource
US6842826B1 (en) * 2000-06-07 2005-01-11 International Business Machines Incorporated Method and apparatus for providing efficient management of least recently used (LRU) algorithm insertion points corresponding to defined times-in-cache
JP2002057710A (ja) * 2000-08-11 2002-02-22 Nippon Telegr & Teleph Corp <Ntt> ショートカットパス経路選択方法
JP2002169787A (ja) * 2000-11-30 2002-06-14 Matsushita Electric Ind Co Ltd 複数のプロセッサ部を含む半導体装置
US6907490B2 (en) * 2000-12-13 2005-06-14 Intel Corporation Method and an apparatus for a re-configurable processor
CN1269053C (zh) 2001-02-24 2006-08-09 国际商业机器公司 分组路由方法、***及用于分组路由的可扩展网络交换机
US6711662B2 (en) * 2001-03-29 2004-03-23 Intel Corporation Multiprocessor cache coherence management
US7126921B2 (en) 2001-05-14 2006-10-24 Tropic Networks Inc. Packet network providing fast distribution of node related information and a method therefor
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
US6807599B2 (en) * 2001-10-15 2004-10-19 Advanced Micro Devices, Inc. Computer system I/O node for connection serially in a chain to a host
US6757755B2 (en) * 2001-10-15 2004-06-29 Advanced Micro Devices, Inc. Peripheral interface circuit for handling graphics responses in an I/O node of a computer system
JP3679374B2 (ja) * 2002-03-06 2005-08-03 日本電信電話株式会社 ノードおよび光パスネットワークおよびプログラムおよび記録媒体
EP1495407A1 (en) * 2002-04-08 2005-01-12 The University Of Texas System Non-uniform cache apparatus, systems, and methods
JP3678715B2 (ja) * 2002-04-24 2005-08-03 エヌイーシーコンピュータテクノ株式会社 分散共有メモリ型マルチプロセッサシステム及びそれに用いるタグ制御方法
US7096323B1 (en) * 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
JP2004248085A (ja) * 2003-02-14 2004-09-02 Kyocera Corp 経路決定方法および経路決定装置
US7433316B2 (en) 2003-02-20 2008-10-07 Hewlett-Packard Development Company, L.P. Summarizing nodes in route propagation in auxiliary network for P2P overlay networks
US7957428B2 (en) * 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US20060080461A1 (en) * 2004-06-02 2006-04-13 Wilcox Jeffrey R Packet exchange for controlling system power modes
US7558920B2 (en) * 2004-06-30 2009-07-07 Intel Corporation Apparatus and method for partitioning a shared cache of a chip multi-processor
US7287122B2 (en) * 2004-10-07 2007-10-23 International Business Machines Corporation Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing
US8098571B2 (en) * 2004-10-28 2012-01-17 Alcatel Lucent Stack manager protocol with automatic set up mechanism
US20060248287A1 (en) * 2005-04-29 2006-11-02 Ibm Corporation Methods and arrangements for reducing latency and snooping cost in non-uniform cache memory architectures
US20070143546A1 (en) * 2005-12-21 2007-06-21 Intel Corporation Partitioned shared cache
JP4572169B2 (ja) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム及びその動作方法
US7571285B2 (en) * 2006-07-21 2009-08-04 Intel Corporation Data classification in shared cache of multiple-core processor
US7773617B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
US8014387B2 (en) * 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US8223650B2 (en) 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network

Also Published As

Publication number Publication date
US9391913B2 (en) 2016-07-12
CN101978659B (zh) 2013-11-06
CN101978659A (zh) 2011-02-16
DE112009000834T5 (de) 2011-04-28
BRPI0911376A2 (pt) 2018-03-20
KR101170262B1 (ko) 2012-08-01
KR20100134004A (ko) 2010-12-22
DE112009000836T5 (de) 2011-04-28
US20130070763A1 (en) 2013-03-21
JP5201514B2 (ja) 2013-06-05
RU2487401C2 (ru) 2013-07-10
WO2009146027A1 (en) 2009-12-03
WO2009146025A2 (en) 2009-12-03
CN103501285A (zh) 2014-01-08
WO2009146025A3 (en) 2010-03-18
US8223650B2 (en) 2012-07-17
GB2470878B (en) 2013-03-20
DE112009000834B4 (de) 2017-05-24
US20090252171A1 (en) 2009-10-08
RU2010139595A (ru) 2012-04-10
BRPI0911368A2 (pt) 2017-02-07
GB2470878A (en) 2010-12-08
JP2011511989A (ja) 2011-04-14
CN103501285B (zh) 2015-07-22
GB201017257D0 (en) 2010-11-24
JP2011517903A (ja) 2011-06-16

Similar Documents

Publication Publication Date Title
JP5335892B2 (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
JP5895202B2 (ja) 中継器、中継器の制御方法、およびコンピュータプログラム
US9444740B2 (en) Router, method for controlling router, and program
US9426099B2 (en) Router, method for controlling router, and program
US9325637B2 (en) System for performing distributed data cut-through
JP4995101B2 (ja) 共有リソースへのアクセスを制御する方法及びシステム
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
JP5834178B2 (ja) 半導体回路のバスシステム
WO2008057830A2 (en) Using a pool of buffers for dynamic association with a virtual channel
KR20130137539A (ko) 데이터 컷-스루를 수행하기 위한 시스템
JP6254331B2 (ja) ネットワークオンチップトポロジー内のトンネリング
CN110601996B (zh) 一种采用令牌保底分布式贪心算法的环网防饥饿流控方法
CN112486871A (zh) 一种用于片上总线的路由方法以及***
Shermi et al. A novel architecture of bidirectional NoC router using flexible buffer
Parik et al. Buffer allocation approaches for virtual channel flow control
Smai Fast absorb flow control
KAVITHA TDM Arbitration and Virtual Point to Point Connection in Mesh Networks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121116

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130422

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130731

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees