JP2016525290A - NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体 - Google Patents

NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体 Download PDF

Info

Publication number
JP2016525290A
JP2016525290A JP2016516030A JP2016516030A JP2016525290A JP 2016525290 A JP2016525290 A JP 2016525290A JP 2016516030 A JP2016516030 A JP 2016516030A JP 2016516030 A JP2016516030 A JP 2016516030A JP 2016525290 A JP2016525290 A JP 2016525290A
Authority
JP
Japan
Prior art keywords
port
noc
host
hosts
ports
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.)
Granted
Application number
JP2016516030A
Other languages
English (en)
Other versions
JP6060316B2 (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 JP2016525290A publication Critical patent/JP2016525290A/ja
Application granted granted Critical
Publication of JP6060316B2 publication Critical patent/JP6060316B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/0826Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements

Landscapes

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

Abstract

本明細書に記載の実装例は、ヒューリスティックベースの最適化を用いて最適なNoCトポロジを自動的に決定することを対象とする。第1に、様々なホストのポートの最適な方向は、システムトラフィック及び接続性仕様に基づいて決定される。第2に、ホストのポートが直接的に接続されるNoCルータは、NoCレイアウト内で決定される。第3に、経路の最適な集合は、システムトラフィックについて計算され、経路に沿って要求されたルータ及びチャネルは、全てのNoCトポロジを形成することが割り当てられる。3つの技術は、様々なNoCチャネル上の負荷を削減し、遅延、性能、及びホスト間のメッセージ送信効率性を向上する、NoCトポロジ、ホストポートの方向、及び、ルータ接続性を決定するために任意の組合せで適用され得る。【選択図】図7c

Description

本明細書に記載された方法及び実装例は、全般的に、相互接続アーキテクチャを対象とし、より具体的には、所与のSoCフロアプラン及びトラフィック仕様に関する最適化トポロジを自動的に生成するためのものである。
複雑化したシステムと縮小したトランジスタジオメトリによる統合レベルの増大によって、チップ上のコンポーネント数は急速に成長している。複雑なシステムオンチップ(System-on-Chips(SoCs))は、例えば、プロセッサコア、デジタル信号プロセッサ(Digital Signal Processors (DSPs))、ハードウェア・アクセラレータ、メモリそしてI/O等の様々なコンポーネントを含んでもよい。一方、チップマルチプロセッサ(Chip Multi-Processors(CMPs))は、多数の同種のプロセッサコア、メモリそしてI/Oサブシステムを含んでもよい。SoCとCMPシステムの両方で、様々なコンポーネント間において高性能な通信を提供することに、オンチップ相互接続が役割を果たしている。従来のバスのスケーラビリティの制限とクロスバー基準の相互接続のために、チップ上の多数のコンポーネントを相互接続するための典型として、ネットワークオンチップ(Network-on-Chip(NoC))が登場した。NoCは、ポイントツーポイントの物理リンクを使用して互いに相互接続されたいくつかのルーティングノードで構成される、グローバルな共有通信インフラストラクチャである。
メッセージは送信元によって注入され、多数の中間ノードとの物理リンク上の宛先へソースノードからルーティングされる。送信先ノードはメッセージを排出し、送信先へメッセージを提供する。本出願の残りの部分について、用語「コンポーネント(components)」、「ブロック(blocks)」、「ホスト(hosts)」又は「コア(cores)」は、Nocを用いて相互接続される多様なシステムコンポーネントを参照して、交換可能に使用されるだろう。用語「ルータ(routers)」及び「ノード(nodes)」もまた、交換可能に使用されるだろう。一般化の損失なしに、多数の相互接続されたコンポーネントを有するシステム自体は、「マルチコアシステム」として参照されるだろう。
ルータがシステムネットワークを生成するために相互に接続することができるいくつかのトポロジが存在する。(図1aに示されるような)双方向リング(Bi-directional rings)、(図1bに示されるような)2D(二次元)メッシュ、及び(図1cに示されるような)2Dトーラスは、関連技術におけるトポロジの例である。メッシュ及びトーラスは、また、2.5D(2.5次元)又は3D(三次元)構成へ拡大され得る。図1dは、互いの上に示される3×3の2Dメッシュの三層が存在する、3DメッシュNoCを示す。NoCルータは、一方がより高い層でルータに接続し、他方がより低い層でルータに接続する、追加ポートを二つまで有する。本例の中間層におけるルータ111は、一方が最上位層におけるルータと接続し、他方が最下層におけるルータと接続して使用される双方のポートを有する。ルータ110及び112は、それぞれ最下位及び最上位層に存在し、それ故、それぞれで接続される上側ポート113及び下側ポート114のみを有する。
パケットは、様々なコンポーネント間の相互接続のためのメッセージ搬送単位である。ルーティングは、パケットが送信元から送信先へ送信されるネットワークのルータ及び物理リンクの集合が構成されるパスを同定することを含む。コンポーネントは、一意なIDを有するこのような各ポートを有する、1又は複数のルータの1又は複数のポートと接続される。パケットは、送信先コンポーネントへパケットを転送するための中間ルータにより、使用する送信先のルータ及びポートIDを運搬する。
ルーティング技術の例は、全てのパケットについてAからBへ同一パスを選択することを含む、確定的ルーティング(deterministic routing)を含む。このルーティング方式は、ネットワークの状態から独立であり、基盤となるネットワークに存在してもよく、パスの多様性全体のロードバランスを行わない。しかしながら、このような確定的ルーティングは、ハードウェアに実装され、パケットの順序を維持し、ネットワークレベルのデッドロックのないレンダリングを行うことができる。このようなルーティングが送信元から送信先へのホップ数を減少するように、最短経路ルーティングは、遅延を最小化してもよい。このために、最短経路は、2つのコンポーネント間の通信について最低の電力経路でもよい。次元順ルーティング(Dimension-order routing)は、2D、2.5D及び3Dメッシュネットワーク内の確定的な最短経路ルーティングの方式である。このルーティングスキームにおいて、メッセージは、メッセージが最終的な宛先へ到達するまで特定の順序で各座標に沿って転送される。3Dメッシュネットワークにおける例について、一例として、X座標が宛先ルータのX座標と等しいルータに到達するまで、X次元に沿って最初に転送できる。次に、メッセージは転回し、Y次元に沿って転送され、最終的に、別の転回をし、メッセージが最終的な宛先ルータへ到達するまで、Z次元に沿って移動する。次元順ルーティングは、最少の順番で、最短経路ルーティングであるとよい。
図2aは、二次元メッシュないでXYルーティングの例を、絵を用いて示す。すなわち、図2aは、ノード「34」からノード「00」へのXYルーティングを示す。図2aの例において、各コンポーネントは、あるルータのあるポートのみが接続される。まず、パケットは、ノード「04」に到達するまで、X軸上で転送される。そのノードのX座標は、宛先ノードのX座標と同じである。次に、パケットが宛先ノードへ到達するまで、パケットは、Y軸上で転送される。
1以上のルータ又は1以上のリンクが存在しないヘテロジニアス(heterogeneous)メッシュトポロジでは、次元順ルーティングは、特定の送信元及び送信先ノードの間で実現可能ではなく、迂回経路が取られなければならないかもしれない。迂回経路は、最短又は最小の順序でなくてよい。
ソースルーティング(Source routing)及びテーブルを用いたルーティングは、NoCに用いられる他のルーティングオプションである。適応ルーティング(Adaptive routing)は、ネットワークの状態に基づいてネットワーク上の二地点間で取られるパスを動的に変化できる。このルーティング方式は、分析及び実装することが複雑であるかもしれない。
NoC相互接続は、複数の物理的ネットワークを含めてよい。各物理ネットワーク上で、複数の仮想ネットワークが存在してよく、異なるメッセージ型が異なる仮想ネットワーク上で送信される。この場合、各物理的リンク又はチャネルにおいて、複数の仮想チャネルが存在し、各仮想チャネルは双方の末端において専用のバッファを有することができる。任意の所与のクロックサイクルで、ある仮想チャネルのみが物理チャネル上でデータを送信できる。
NoC相互接続は、ワームホール(wormhole)ルーティングを採用してよく、巨大なメッセージ又はパケットは、フリット(flits)として知られる(フロー制御桁としても参照される)小片に分割される。最初のフリットは、ヘッダーフリットであり、ペイロードデータに加えて、このパケットの経路についての情報及びキーメッセージレベル情報を保持し、メッセージに関連付けられた全ての後続のフリットについてのルーティング行動を設定する。必要に応じて、1以上のボディフリットがヘッダーフリットに続き、データの残りのペイロードを含む。最後のフリットは、テイル(tail)フリットであり、加えて、最終ペイロードがメッセージに対する接続をクローズするためにいくつかの記帳も実行する。ワームホールフロー制御では、仮想チャネルが度々実装される。
物理チャネルは、仮想チャネル(virtual channels (VCs))と呼ばれる、多くの独立論理チャネルにタイムスライスされる。VCは、パケットを転送するための多数の独立パスを提供するが、物理チャネル上で時分割多重化される。仮想チャネルは、チャネル上のパケットのフリットの取り扱いを調整することが必要とされる状態を保持する。最小において、この状態は、経路の次のホップ及び仮想チャネルの状態(アイドル、リソース待ち、又は、アクティブ)について、現在のノードの出力チャネルを同定する。仮想チャネルは、現在のノード上でバッファされるパケットのフリットへのポインタと、次のノード上で利用可能なフリットバッファの数も含めてよい。
用語「ワームホール(wormhole)」は、チャネル上で送信される途中のメッセージ(way messages)を再生する。次のルータにおける出力ポートは、受信データが全メッセージが到着する前にヘッダーフリット内で変換できるように、短くすることができる。このことは、ヘッダーフリットの到着に際して、ルータがすぐに経路を設定することを可能にし、会話の残りの部分から離れる。メッセージがフリットによりフリットが送信されるため、メッセージは異なるルータにおいてそのパスに沿ったいくつかのフリットバッファを占有し、ワームのような画像を生成する。
様々なエンドポイント間のトラフィック、並びに、様々なメッセージについて使用される経路及び物理ネットワークに基づき、NoC相互接続の異なる物理チャネルは、負荷及び混雑の異なるレベルを経験できる。NoC相互接続の様々な物理チャネルの容量は、チャネルの幅(物理回線の数)及び動作しているクロック周波数により決定される。NoCの様々なチャネルは、異なるクロック周波数で動作し、様々なチャネルは、チャネルにおける帯域幅要件に基づく異なる幅を有する。チャネルにおける帯域幅要件は、チャネル上を横断するフロー及びそれらの帯域幅の値により決定される。様々なNoCチャネル上を横断するフローは、多様なフローにより取られる経路により影響が与えられる。メッシュ又はトーラスNoCにおいて、同じ長さの多数の経路パス、又は、送信元及び送信先ノードの任意の組の間のホップ数が存在し得る。例えば、図2bでは、ノード34及び00の間の標準のXY経路に加えて、例えば、YX経路203、又は、送信元から送信先まで1回以上曲がらされるマルチターン経路202のような、利用可能な追加経路が存在する。
様々なトラフィックフローについて経路が静的に割り当てられるNoCでは、様々なチャネルにおける負荷は、様々なフローのための経路を知的に選択することにより制御されるとよい。多数のトラフィックフロー及び重要なパスの多様性が存在する場合、経路は、全てのNoCチャネルにおける負荷がほぼ均一にバランスされるように選択され、このようにして、ボトルネックの一地点を回避することができる。一旦、経路が決められると、NoCチャネル幅は、チャネル上のフローの帯域幅要求に基づいて決定されることができる。残念ながら、チャネル幅は、例えば、タイミングや配線混雑のような、物理的なハードウェア設計制約のため、任意の大きさにすることができない。最大チャネル幅における制限が存在し、それによって、任意の単一NoCチャネルの最大帯域幅に制限を加える。
さらに、メッセージが短い場合、より広い物理チャネルは、より高い帯域幅を達成するのに役立たない。例えば、パケットが64ビット幅を備える単一のフリットパケットである場合、チャネルがどんなに広くても、チャネル上の全パケットが同じであるなら、チャネルはデータのサイクル当たり64ビットを運搬することができるだけだろう。従って、チャネル幅は、NoC内のメッセージサイズによっても制限される。最大NoCチャネル幅におけるこれらの制限のため、チャネルは、経路をバランスするにもかかわらず、十分な帯域幅を有する必要がない。
上記の帯域幅の懸念を取り扱うため、多数の並行物理NoCが使用され得る。各NoCは、層と呼ばれ、多層NoCアーキテクチャを生成する。ホストは、NoC層にメッセージを注入する。メッセージは、NoC層上で宛先へ転送され、NoC層からホストへ届けられる。従って、各層は、お互いから多かれ少なかれ独立して動作し、層間の通信(interaction)は、注入及び排出の時間中にのみ発生し得る。図3aは、二層NoCを示す。ここで、二つのNoC層は、左と右の図の双方に複製されたNoCと接続されるホストを備え、左と右に互いに隣接することが示される。ホストは、この例では、第1層内のルータはR1として示され、第2層であるルータはR2として示される、二つのルータに接続される。この例では、多層NoCは3DNoCとは異なる、すなわち、多層とは、単一のシリコンダイ(silicon die)であり、同一のシリコンダイ上のホスト間の通信の高い帯域幅需要を満たすために使用される。メッセージはある層から別の層へ向かわない。明確化の目的のために、本出願は、互いに垂直にNoCを描くことにより示され、3DNoCから区別するために多層NoCについて水平左右のイラストを利用するだろう。
図3bでは、各層からのルータ、R1及びR2のそれぞれと接続されるホスト(HOST)が示される。各ルータは、指向性ポート301を用いてその層内の他のルータと接続され、注入及び排出ポート302を用いてホストと接続される。ブリッジ論理303は、送信メッセージについてのNoC層を決定するために、ホストと2つのNoC層の間に位置し、ホストからNoC層へメッセージを送信し、2つのNoC層からの受信メッセージの間で調停及び多重化を行い、ホストへそれらを届ける。
多層NoCにおいて、必要とされる層の数は、例えば、システム内の全トラフィックフローの総計帯域幅要件、様々なフローにより使用される経路、メッセージサイズの配分、最大チャネル幅、その他の要因のような多数の要因に依存することができる。一度、NoC相互接続内のNoC層の数が設計内で決定されると、異なるメッセージ及びトラフィックフローは、異なるNoC層上で経路が決められる。さらに、一例として、異なる層がルータ、チャネル及び接続の数における異なるトポロジを有するような、NoC相互接続を設計してもよい。異なる層におけるチャネルは、チャネル上を横断するフロー及びそれらの帯域幅要件に基づいて異なる幅を有してもよい。そのような多種多様な設計上の選択において、所与のシステムについて正しい設計ポイントは、挑戦するままであり、手動プロセスを費やす時間を残し、結果の設計は、次善及び非効率的なままである。これらの問題を取り扱う多数の技術革新は、米国特許出願第13/658,663, 13/752,226, 13/647,557, 13/856,835, 13/723,732に記述され、その内容は本明細書にその全体が参照により援用される。
相互接続性能を最適化するためにSoCフロアプラン内でホスト/IPコアを配置することは、重要である。例えば、2つのホストが頻繁に互いに通信し、他の相互接続よりも高い帯域幅を要求する場合、これらのホスト間のトランザクションがより少ないルータホップ及びリンクを超えて、全体の遅延及びNoCコストが削減され得るように、互いにより近くにそれらを配置することがより良い。
特定の形や大きさを持つ2つのホストが互いに2DのSoC平面上で空間的に重複しないと仮定すると、トレードオフが必要になる場合がある。それらの間の相互通信を改善するために、特定の近いホストを移動することは、特定の他のホストを強制的にさらに離れさせ得る、それによって、それらの他のホストとの間の相互通信を不利にする。システムの性能を向上させるトレードオフを行うために、例えば全体の平均通信遅延のような特定の性能測定基準は、ホストがNoCのトポロジ内に配置されるようSoCアーキテクチャを最適化するために、目的関数として使用することができる。システムの性能測定基準を最大化する、実質的に最適なホスト位置を決定することは、すべてのホストの間の接続と相互通信特性の分析と、慎重に2DのNoCトポロジにそれらを配置することとを伴う。
3x6メッシュ組織に配置されるべき16個のCPU(Central Processing Units)と2個のメモリがある、という例を考える。図4aに示されるように、第1のメモリMEM1と通信する第1の8個のCPUセットと、第2のメモリMEM2と通信する第2の8個のCPUセットとを仮定する。図4bに示されように、CPUとメモリは、順番に3x6メッシュ内に配置されてもよい。各ホストは、メッシュ内のセルを占めており、直接セルのルータに接続されている。ここでは、さまざまなホスト間のトラフィックを考慮しない。相互通信ホストは、互いから遠くに配置されており、これにより、ホップ数において平均値を高くし、かつ、構造遅延のピークに導く。例えば、図に示すように、ホストCPU1とMEM1との間のメッセージは、7ルータノードを超える必要があり、ホストCPU13とMEM2との間のメッセージは、6ホップを移動する必要がある。このような長いパスは、遅延を増加させるだけでなくだけでなく、相互接続帯域幅に悪影響を与える、即ち、メッセージが長い期間NoCに留まり、多数のリンクの帯域幅を消費する。
図4cに示すように、一例として、上記のホストのセットは組織内に置いてもよい。これは、構造遅延の平均とピーク値を有意に減少させる。図示されるように、この組織の相互通信ホスト間の最大の構造遅延は、3ルータのホップであり、相互通信ホストの大部分は、2ルータのホップが離れている。以前の位置から新しい位置に、特定のホストを繰り返し再配置し、その過程で、新しい位置に既に存在するホストはそれらを交換することにより、図4c中のホスト位置は、図4bから実現することができる。最適なホスト位置を見つけ出すために、この例は比較的直感的であるが、トラフィックプロファイルが複雑な接続性と、高い非対称帯域幅と、さまざまなホスト間の遅延の仕様とで構成されている場合は、NoCトポロジ内のホストに最適な位置を決定することは、さらに困難となり得る。実際には、既知のNP困難問題に帰着することができる。このように、発見的解決法は、このような設定によって最適なホストの位置を決定するために使用されるべきである。
大規模ネットワークでは、効率が主な関心事である。機械学習アプローチ、シミュレーションアニーリング(simulation annealing)などのようなメカニズムがシステムに対する最適化されたトポロジを提供する。しかしながら、そのような複雑なメカニズムは、レイアウトネットワークの最適化を自動化する特定のアルゴリズムを含むようにかなりの制限を有する。それは、過去にマップされたフローの遅延制約、又は、現在のフローの遅延制約に違反する可能性がある。それ故、NoC相互接続アーキテクチャを用いたトラフィックフローのために取られるシステムレベルの経路を示すと共に、ホスト及びホスト内のポートに関する最良の位置及び構成を正確に示すことにより、システムの効率を著しく向上させるシステム及び方法の必要性がある。システム及び方法は、効率的なレイアウトを備える所与のSoCフロアプラン及びトラフィック仕様に対して最適化されたトポロジを自動的に生成することも要求される。
本出願は、様々なチャネル上の負荷が制御されるように、そのようなトポロジレイアウト内で最適なホスト位置を決定し、効率性、低遅延及び高性能を達成するためのヒューリスティックアプローチを実装することにより、トポロジ選択を自動的に決定すること、及び、それらの中から最適な設計を選択することを対象とする。本開示の態様は、低遅延、及び、ホスト間のより高いメッセージ送信効率性を可能とするように、ホスト内でポートの最適な位置を決定することにさらに関連する。さらに別の態様では、計算的に効率的なNoCトポロジは、ホスト間の様々なシステムフローについて最も効率的な経路を同定するように、ルータ及びNoCチャネルの割当に基づいて生成される。
本出願の態様は、最適な位置が最低の遅延及び費用、高性能及び高帯域幅を可能とするような、SoC環境におけるホスト内のホスト及び/又はポートの最適な位置、方向、構成を自動的に決定することを含む、方法を備えるとよい。
態様は、最適化されたSoC環境内で通信するコンポーネント/IPコアの前述のネットワークを接続するために横断されるべきルータの順序を同定することを含み、コンポーネントを接続するために必要とされたルータの数及び構成を確立することによりNoCトポロジを自動的に生成すること、適格な通信経路及びチャネルを定義することを含む、方法も備える。
態様は、処理を実行するための命令を格納するコンピュータ可読記憶媒体を備えると良い。その命令は、予め定義された、及び/又は、動的に生成された、トラフィックシステムフロー及び類似の制約が満たされ、全体の性能測定基準が最大化され得るように、コンポーネント内の様々なSoCコンポーネント及びポートの最適な位置、方向、及び、構成を自動的に生成することを含めるとよい。その上、その命令は、最適化されたSoC環境内で通信するコンポーネント/IPコアの前述のネットワークを接続するために横断されるべきルータの順序を同定することを含み、コンポーネントを接続するためのルータの数及び構成を確立すること、適格な通信経路及びチャネルを定義することによりNoCトポロジを生成するためのメカニズムを含めてもよい。命令は、トラフィックフローをマッピングすること、及び、例えば、ルータ間で要求されたNoCルータノード及びチャネルについて必要とされた帯域幅のようなリソースを割り当てること、により、最適化されたトポロジを定義することをさらに含むとよい。
態様は、異質又は異質なメッシュ、リング又はトーラス配置内の複数のルータにより相互接続される複数のコアを含む、ネットワークオンチップ(network on chip (NoC))について、予め定義された、及び/又は、動的に生成された、トラフィックシステムフロー及び類似の制約が満たされ、全体の性能測定基準が最大化され得るように、様々なSoCコンポーネント/IPコア及びコンポーネント内のポートの最適な位置、方向、及び構成を自動的に生成することを含む方法を備えるとよい。本方法は、所与のシステムフローについてより最適な経路を同定するための2つのルータ間のデータリンクの数を反復的に変化させるように、(例えば、方向付けの頻度、リンクの帯域幅のような)1以上の重大なNoCアーキテクチャ的なパラメータを自動的に調整することをさらに備えることができる。
態様は、SoCトポロジモジュール及びNoCトポロジモジュールを含むシステムを備えるとよい。SoCトポロジモジュールは、低遅延のアーキテクチャ、高い帯域幅、それ故に、かなり高い性能を可能とするように、様々なSoCコンポーネント/IPコア及びコンポーネント内のポートの最適な位置、方向、及び構成を生成する。NoCトポロジモジュールは、他方、最適化されたSoC環境内で通信するコンポーネント/IPコアの前述のネットワークを接続するために横断されるべきルータの順序を同定することを含み、コンポーネントと接続するルータの数及び構成を確立し、適格な通信経路及びチャネルを定義し、ルータ及びチャネルリソースを割り当てる。さらに、SoCトポロジのそれぞれのサブモジュール及びNoCトポロジモジュールは、以下の添付の説明で詳細に定義される。
実装例の上記および他の目的、特徴および利点は明らかであり、参照番号のような添付の図面に示されるような以下の実装例のより具体的な説明は、本出願の例示的な実施態様の同様の部分を一般的に表現するであろう。
双方向リング、2Dメッシュ、2Dトーラス、および3DメッシュのNoCのトポロジの例を示した図である。 双方向リング、2Dメッシュ、2Dトーラス、および3DメッシュのNoCのトポロジの例を示した図である。 双方向リング、2Dメッシュ、2Dトーラス、および3DメッシュのNoCのトポロジの例を示した図である。 双方向リング、2Dメッシュ、2Dトーラス、および3DメッシュのNoCのトポロジの例を示した図である。 従来の2次元メッシュでのXYルーティングの例を示した図である。 送信元と宛先ノードの間の3つの異なる経路を示した図である。 従来の2層のNoC相互接続の例を示した図である。 ホストと複数のNoC層の間の従来のブリッジ・ロジックを示した図である。 システムコンポーネント数およびそれらの間の接続を示した図である。 3x6メッシュのNoCトポロジ内のさまざまなホストのサンプル位置を示した図である。 3x6メッシュNoCトポロジでのさまざまなホストのより良い位置を示した図である。 SoCコンポーネント及び接続仕様を示す図である。 最適化されたポート指向及びNoC相互接続に関する代わりのトポロジを示す図である。 最適化されたポート指向及びNoC相互接続に関する代わりのトポロジを示す図である。 最適化されたポート指向及びNoC相互接続に関する代わりのトポロジを示す図である。 SoC環境におけるコンポーネント及びその中のポートの位置決め並びに方向付けを示す例示的フロー図である。 実装例に則った所与のホストのポートの再配置及び再位置決めを示す図である。 実装例に則った所与のホストのポートの再配置及び再位置決めを示す図である。 実装例に則った所与のホストのポートの再配置及び再位置決めを示す図である。 実装例に則った所与のホストのポートの再配置及び再位置決めを示す図である。 所与のシステムトラフィックフローについての最適な経路の同定(identification)を示す例示的フロー図である。 異なる重みを有する複数のトラフィックフローから順番に選択される、所与のシステムトラフィックフローについてのより最適な経路の同定を示す。 異なる重みを有する複数のトラフィックフローから順番に選択される、所与のシステムトラフィックフローについてのより最適な経路の同定を示す。 異なる重みを有する複数のトラフィックフローから順番に選択される、所与のシステムトラフィックフローについてのより最適な経路の同定を示す。 異なる重みを有する複数のトラフィックフローから順番に選択される、所与のシステムトラフィックフローについてのより最適な経路の同定を示す。 例示的な実施形態を実現することができるコンピュータシステムの例を示す図である。
以下の詳細な説明は、本出願の図面及び例の実装の詳細を提供する。参照符号と図の間の冗長要素の説明は、明確にするために省略されている。明細書全体を通して使用される用語は、例として提供され、限定することを意図するものではない。例えば、「自動」という用語の使用は、完全に自動または半自動の実装を含むことができ、本出願の当技術分野の練習の実装で当業者の所望の実装に応じ、実装の特定の側面を制御するユーザまたは管理者に関連する。
様々なSoCコンポーネントと接続するためのNoC相互接続のトポロジは、効率性、低遅延及び高性能を達成するために使用することができる。NoCに関するトポロジの選択数は、チップ上の様々なコンポーネントの配置及びこれらのコンポーネントの間の接続要件に大きく依存する。例示的なシステム及び方法は、自動的に、これらのトポロジ選択を決定すること及びそれらの中から最適な一つを選択することを目的とする。
いくつかの実装例について、ネットワークオンチップ(Network-on-Chip(NoC))の構成に用いるフリット(flit)を伝播する方法が利用される。本方法は、アップストリームルータから、入力ポートに関連付けられた複数の入力仮想チャネル(VC)のうち目的とされた入力VCへ転送されるフリットを受信することを含む。フリットは、第1のIP(Intellectual Property)コアから発信され、かつ、第2のIPコアへ転送されるパケットと関連付けられる。フリットは、目的とされた入力仮想チャネルと関連付けられた仮想チャネルストレージ内に格納され得る。リンク幅変換は、出力ポートの幅とは異なる入力フリットの幅に基づいて実行され得る。
本出願の実装に従ってNoC上のデータ処理に関するシステム及び方法の説明例は、図5aで始まり、添付図面を参照して説明される。
図5aに示されるシステムは、ホストのそれぞれのポートと共に、以下ではホストとして互いに置き換え可能に参照される、様々なコンポーネント/IPコアの配置を示す。図5aに示すコンポーネントは、CPUの2つのグループ(cpua1からcpua4、及び、cpub1からcpub4)を備え、CPUの各グループは、それぞれ、mema及びmembと動作可能に接続される。図5aは、様々なホストのポートとの通信を処理するためにノード/ルータからなるNoC相互接続(不図示)を備えてよい。例では、最初のグループの4つのCPU(cpua1, cpua2, cpua3, cpua4)は、メモリmemaと通信し、次のグループの4つのCPU(cpub1, cpub2, cpub3, cpub4)は、membと通信する。図5aに示されるように、各コンポーネント/ホストのポートは、それぞれのコンポーネントの左上の角に最初に又はデフォルトにより配置され、ノード/ルータを介して他のホストとのパケット/メッセージの送受信するように構成することができる。ポートが各コンポーネントについて異なる位置に構成可能であるとよく、さらに、各コンポーネントは要求された位置/方向/パターン内の複数のポートを備えることができることが理解されるであろう。第1及び第2のCPUのグループは、他のコンポーネントの対応に依存せずに、任意の通信の配線又はパスを介してmema及びmembとそれぞれ通信できる。遅延、NoCコスト及び帯域幅の消費の全体は、相互接続の結果がSoCフロアプランの通りであるように、設計フローを物理的に認識し続けることにより、削減され得る。下記のように、多くのNoCトポロジは、必要な接続を提供できる。
図5bは、ポートとメモリの間のパス通信を含む例示的トポロジの一つの可能な型を示す。メモリmemaは、ノード/ルータRmemaと動作可能に接続されるポートPmemaを備える。同様に、各コンポーネントは、NoC相互接続を介して通信するための対応するルータ/ノードと動作可能に接続され得る1以上の複数のポートを有することができる。コンポーネントのグループ間の例示的通信は、以下のように示される。
(cpua1, cpua2, cpua3, cpua4) <=> mema (1)
(cpub1, cpub2, cpub3, cpub4) <=> memb (2)
図5bは、例えば、Rmema及びRcpua1のようなNoCルータを描き、それぞれが対応するコンポーネントのポートと動作可能に関連付けられる。ルータ間の線は、NoCリンク又はチャネルであり、各ルータ/ノードは、対応するコンポーネント及び/又はポートからパケットを受信(又は、受信されたパケットを外部から目標ポートへ送信)する。各パケットに示されるアドレスに基づいて、ルータは、取り付けられたポート、又は、別の共有リンクのポートへ受信パケットを転送する。
図5bは、メモリが相互作用できるメモリ及びコンポーネントの間の共有リンクを示す。ルータ間の線は、通信に関するNoCリンク又はチャネルである。図に示されるように、例えば、ホストcpua1からホストmemaへのメッセージは、2つのルータノード(最初にRcpua1へ、そしてRmemaへ、又は、メッセージの方向に依存してその逆に)を超える必要があり、同様に、ホストcpua2及びmemaの間のメッセージは、3つのルータノードを移動する必要があり、ホストcpua3の間のメッセージは、3つのルータノードを移動する必要があり、cpua4及びmemaの間のメッセージは、4ホップを移動する必要がある。同様に、memb は、コンポーネントのグループと通信する。
トポロジの別の型は、図5cに示される。図5bに示されるように、コンポーネントの左上の角におけるポートに関する同じ位置と、対応するメモリと相互作用するコンポーネントの同じグループ分けを仮定すると、図5cに示されるように、NoCリンク又は通信チャネルは、新たなトポロジに再設計され得る。このトポロジがSoC環境のポート及び/又はホストの方向を変更しない場合、トポロジ内のSoCレベルの変更はなく、NoC相互接続トポロジは、コンポーネント間の同じトラフィックフローについて異なるかつ可能なより最適化された経路を許可するために変更される。図5cに示されるように、例えば、ホストcpua1及びmemaの間のメッセージは、現在、2つのルータノードを超える必要があり、ホストcpua2及びmemaの間のメッセージは、2つのルータノード上を移動する必要があり、ホストcpua3の間のメッセージは、3つのルータノード上を移動する必要があり、cpu4及びmemaの間のメッセージは、3ホップ上を移動する必要がある。membの構成は、対応するコンポーネントとの相互作用についてmemaと類似する。図5a及び図5bで議論されたこれらのトポロジのそれぞれは、同一の遅延特性を有するが、2つのトポロジ内の配線長は異なる。図5bと比べた場合、図5cの配線長はより長く、チャネルに沿った通信の速度を妨げることがある。それ故、図5c及び図5bは、同じシステムトラフィックフローを満たす異なるルータを用いることにより、NoCレベルトポロジ内の変化を示す。下記のように、そのような経路のそれぞれは、接続されたシステムトラフィックフローについてより最適な経路を決定するための費用関数に関して評価されることができる。
より複雑なシステムでは、コンポーネントとして可能な多数のトポロジがしばしば存在し、対応するルータ及びポートは、様々なコストに加えて、性能及び遅延特性が増加する。トポロジは、システムの必要性に応じて再設計され、相互接続帯域幅及び遅延を削減すること、及び、目的関数として全体の平均通信遅延を維持することに依存し得る。最適化されたトポロジ方向のある型は、図5dに示され、減少した配線長、削減した遅延及び相互接続帯域幅を有するトポロジを示す。実装例において、図5dに示されるように、メモリに対応するポート及びルータは、柔軟な方向付けを有し、配置され得る。そのようなケースでは、ポートPmemaは、メモリコンポーネントmema内の新たな位置へシフトされ、及び/又は、再位置決めされ得る。図5dに示されるように、ポートは、左上から左下の方向にシフトされた。図5dに示されるように、所与のホスト/コンポーネントのポートの方向におけるこの変化に伴い、ホストcpua1及びmemaの間のメッセージは、一つのルータノードを超える必要があり、ホストcpua2及びmemaの間のメッセージは、2つのルータノード上を移動する必要があり、ホストcpua3の間のメッセージは、2つのルータノード上を移動する必要があり、cpu4及びmemaの間のメッセージは、3ホップ上を移動する必要がある。それ故、その構成は、SoC環境及びアーキテクチャの性能を向上する。membについての構成は、対応するコンポーネントとの相互作用についてmemaと類似する。この例では、ポートの構成及び位置の変化に伴い、メモリに対応するルータがメモリとコンポーネントの間のホップ数を削減し、相互接続帯域幅が削減されるという結果ももたらし、従って、費用が削減するように、遅延は削減され得る。図5dに示されるように、各ルータ/ノードは多数のポートを含み、それ故、ルータの各ポートはホスト/コンポーネントのポートと動作可能に接続及び構成され得る。その各ルータ及びポートはSoCアーキテクチャ内の複数のホストと動作可能に接続される。
上記で説明された各トポロジは、同一の遅延特性を有するが、図5b及び図5cに示される2つのトポロジ内の配線長は異なる。複雑なシステムでは、しばしば、多数のトポロジが様々なコスト、性能及び遅延特性を備えることが可能である。最適化されたNoCトポロジを決定する第1ステップは、それ故、SoC上の様々なコンポーネントの正しい位置を決定することであり、その後、ホスト内のポートの最も最適な位置を決定する。一旦、ホスト及びポートが、より最適かつ効率的にSoC内に構成されると、1以上のシステムフローについて可能な異なる経路は、NoC相互接続を定義するために評価され、選択され得る。
最適化されたトポロジは、SoC上の様々なコンポーネントについて位置を計算することにより決定することができる。その上、SoC上のコンポーネントのより最適な位置決めは、機械学習又は焼き鈍し法(simulated annealing)を含む、様々な技術により決定することができる。機械学習アプローチは、所与のルータマイクロアーキテクチャに関するパラメータ化された合成可能なルーティングテーブルルックアップ(Routing Table Lookup (RTL))仕様、すなわち、構成可能なルータマイクロアーキテクチャ仕様で開始できる。それは、異なる構成パラメータの下で実際のルータ実装を生成するために使用される。選択された構成の小さな部分集合を用いることにより、各構成は、各ルータインスタンスの詳細な物理的レイアウトを取得するために、タイミング駆動型のRTL合成及びタイミング駆動型の配置及びルーティングを含む、対象ASTC実装フローを介した集合内で実行され得る。
他方、焼き鈍し法アプローチは、ランダムサーチ技術として説明され、複雑な組み合わせ問題を対処する改善された結果を提供できる。焼き鈍し法は、組み合わせ的に大規模な最適化問題を解決するために適用され得る。焼き鈍し法のため、全体的な目的関数の最小化が直接的にアプローチされ得る。
様々なコンポーネントの配置を決定するために、コンポーネントの形状及びサイズは、コンポーネントが互いに重複しないことを確保することが考慮される必要がある。あるコンポーネント設計では、ポートは、特定の方向に固定され、他にいる間、ポートは、任意の方向にいくつかの柔軟性を有し得る。そのようなシステムについて、費用関数は、固定されたポートの方向を反映するために調整され得る。方向付けの柔軟性を備えたポートについて、適切なポート位置が計算され、最後のポート位置は、最も近くのNoCルータに対するポートと接続するように構成することができる。図5aから5dの直前の例のシステムでは、mema及びmembが任意のポート方向の柔軟性を有する場合、より最適化されたポート方向は、図5dに示されるように、設計され得る。
自動的なNoCトポロジ設計の実装例では、以下に記載されるように、ホストのポートの方向及びホスト配置は、共に計算され得る。「ホストの位置決め(positioning hosts)」及び「ホスト内のポートの位置決め(positioning ports within hosts)」の両方が単独の実行又は同時に発生するように説明されるにも関わらず、両方が別に実行され、又は、独立に実行される場合には一つが省略され得る。例えば、SoCアーキテクチャ内のホストの位置を変更する代わりに、それらの位置は維持され、実装はより最適なSoCトポロジを作成するホスト内でポートを再調整すること及び/又は正しい方向に置くことだけを実行する。アルゴリズムは、ホスト内のポートの再配置と同様に、互いにホストの交換を許可するために変更され得る。ホスト内に多数のポートが存在する場合、それらは、互いに交換もされ得る。
図6は、削減された遅延及び削減された相互接続帯域幅という結果をもたらすホスト及び/又はポートのより最適化された位置を計算することにより、SoCトポロジを生成する方法を示すフローチャート600である。実装例では、図6の601で描かれるように、ホスト及びポートは、NoC内の初期/デフォルトの位置及び方向に割り当てられる。一旦、デフォルト位置に位置決めされると、ホスト/コンポーネントのポートは、それらの対応する/最も近くのルータと動作可能に接続される。SoCコンポーネント及びそれぞれのポートの最適化が行われる回数を示すことができる反復カウンタIは、0に設定され、閾値(例、Threshold_I)は、コンポーネント及びポートの既に最適化された集合が最適化されることになる回数を示すために定義される。例えば、一旦、同定され、かつ、適格な全てのホスト及びポートが実装例により位置決めされると、別の最適化のラウンドが、可能な限り最高の最適化がされたSoCトポロジが生成されることを確保するために実行され得る。
602では、多数のパラメータに基づき、各ホスト及びそれらのポートに重みが割り当てられる。実装例では、重みは、例えば、費用関数、遅延、相互接続帯域幅、トラフィック属性、その他のパラメータのような属性に基づき計算される。一実装例によれば、各ポート及び/又はホストに重みが割り当てられることの代わりに、重みが計算され、ポート/ホストの部分集合に割り当てられる。一例では、最高の遅延を有するホスト及び/又はポートは、最低の重みが割り当てられ、最低の遅延及び最高の帯域幅を備えるホスト/ポートは最高の重みが割り当てられる。重み割当は反対であってもよく、つまり、最高の遅延を備えるホスト/ポートには最高の重みを割り当てられる。一例では、ホスト/ポートxiに対する重みは、以下のように計算され得る:
weight(xi) = bandwidth(xi) / Σ bandwidth(xi) (3)
603では、1以上のホスト及びポートに割り当てられた重みに基づいて、ホスト又はホスト内のポート(例えば、x1)が再配置の考慮のために選択され得る。(例えば、最高の遅延を有するために)x1がシステム内の他のポートと比べて最低の重みが割り当てられたポートであると仮定し、ホスト内のポートの再配置がSoCの効率を向上するため、及び、遅延及び帯域幅ベースの性能を高めるためにも、実施されると良い。ある実装例では、重みの閾値はシステムにより定義され、その実装は、規定の重み閾値よりも少ない重みを有するホスト/ポートについてのみ実行される。別の実装例によれば、ホスト及び/又はポートは、最初の反復でJ=0であり、所与の数のカウント(例えば、J)に到達するまで、可能性のある再配置について同定され得る。例えば、システム内に5個のホストが存在し、各ホストが2個のポートを有する場合、再配置が可能な合計15個のコンポーネント/ポート(5個のコンポーネント及び10個のポート)が存在する。それ故、Jは、コンポーネント/ポートの再配置が、コンポーネント/ホスト又はポートの重みに基づいて実行される必要がある回数を示すことができる。上述した実装例に加えて、他の実装は、再配置される必要があるポート及び/又はホストと、処理が実行される必要がある回数とを選択するために実行もされ得る。
604では、ポートが再配置のために選択されたか、又は、ホストが検出されたかどうかについて、同定が実施される。ホストが再方向付け(N)のために選択された場合、グリッド/SoCアーキテクチャ内のより適切な位置へホストの再配置が実施され得る。この点は、米国特許出願第13/779,618に記述され、全ての目的のためにその全体が参照により本明細書に組み込まれる。
他方、ステップ605では、ポートが再配置又は再位置決めをするために選択された場合、ポートと動作可能に接続されるホストのグループから選択されるホストは、確率受理関数f1に基づき、同定される。例えば、ホストh1のポートx1が、ホストh3、h7、h9、h18及びh32と動作可能に接続される場合、ホスト3、7、9、18及び32のうち一つは、関数f1に基づいて選択される。関数f1は、関係するホストが備える相互作用の頻度、遅延、帯域幅考慮及び要求された実装に依存する他の性能属性を含むがこれらに限定されない多数のトラフィックレベルパラメータに基づいて定義される。このようなパラメータは、コンテクスト内のポートx1に最も好ましいホストのどの一つが同定され得るかに基づいて、関数f1を取得するために、重み付けされ、又は、任意の他の要求され、かつ、知られた方法で組み合わせることもできる。例えば、「相互作用の頻度」がホストを同定するための最も重要な要因であるために決定された場合、ホストh7は、例えば、関係するポートx1について選択され得る。一旦、コンテクスト内の関係するポートx1についてのホストが同定されると、ポートx1について可能性のある新たな位置/配置は、同定されたホストの位置及び他の属性に基づき決定され得る。
実装例では、確率関数f1を使用することは、極小値を避け、ポートx1の新たな方向を決定することにおいて、あるランダム性を取り入れることができる。例えば、確率関数f1は、ホストh7がn%の回数を選択されるべきであり、h3がm%の回数を選択されるべき、などを示すように構成することができる。
一実装例によれば、関数がポートx1がより頻繁に通信するホストを優先するように、関数f1は、設けられるとよい。例えば、ポートx1がh1_1からh1_nと命名された「n」個のホストと通信し、これらのホスト間の通信帯域幅の要求がB(x1, h1_i), i = 1からnである場合、h1_1からh1_nの中からいずれかのホストが選択される確率は、以下により与えられ得る:
P(h1_i) = B(x1, h1_i) / Σ B(x1, h1_i) (4)
特定のホストが他より低い遅延を有するx1と通信する必要があることと同様に、遅延の要件が存在する。L((x1, h1_i), i = 1からnで与えられるそのような遅延制約が存在する場合、確率関数f1は、以下に示すように、帯域幅と遅延の両方を受け入れるために調整され得る。
P(h1_i) = (B(x1, h1_i) / Σ B(x1, h1_i)) × (ΣL(x1, h1_i) / L(x1, h1_i)) (5)
一実装例によれば、重み付けされた確率関数f1は、帯域幅及び遅延が所与のシステムでは重要性を反映する所与の異なる重み値であることを組み込むこともできる。よって、任意の他のトラフィック又はノントラフィックベースのパラメータは、関数f1を定義するために選択され、コンテクスト内のポートx1についてホストを選択する。
606では、費用関数はポートx1について計算され得る。費用関数は、例えば、遅延、帯域幅、その他のパラメータのような1以上のトラフィックパラメータに基づいて任意の所与の位置について各ポートについて計算され得る。現在のコンテクストでは、費用関数は、最初に、ポートの初期位置(コンポーネントの左下)について、そして、ポートの提案される新たな位置(コンポーネントの右上)について計算され得る。
607では、ポートx1の位置が初期位置から新たな提案位置へ変更されるべきか否かについて確認が行われる。このステップは、旧費用関数(ポートx1が初期位置内である場合)、新費用関数(ポートx1が新たに提案された位置内である場合)及び確率関数f2に基づき、確認される。実装例では、関数f2が旧費用関数を新費用関数と比較するように構成することができる。
新費用関数が旧費用関数より少ない場合、ポートは再配置される。それによって、新しい位置へのポートx1の再配置は、遅延及び他の性能レベルトラフィック属性の見地から、より安価となる。たとえ、新費用関数が旧費用関数より高価であっても確率関数f2は、y%の回数、ポートx2の再配置を許可できる。それ故、新たなコスト、過去のコスト、及び確率受理関数f2に基づいて、ポートx1の再配置及び/又は再方向付けは、再配置決定に基づき受理又は拒否のいずれかがされ得る(例えば、xが確率関数により示される確率である場合、x%回、受理する)。別の実装例に応じて、関数f2は多数の方法で設けられるとよい。例えば、ポートの再配置が費用関数を削減する場合、再配置は常に受理され得る。他方、再配置がコストを増加する場合、再配置は特定の確率関数で受理され得る。確率関数は、最適化の型に基づいて設けられるとよい。例えば、焼き鈍し法ベースのアプローチにおいて、受理確率は、費用関数を増加する再配置が受理又は拒否されるかを制御する、「温度」と呼ばれる時変パラメータに依存してよい。そのアルゴリズムは、より高温で内部ループを反復し始め、内部ループの各パスで温度を徐々に減少する。より高い温度レベルにおいて、費用関数を増加する再配置は、より低い温度レベルよりも高い確率で受理され、より高い温度で極小値から離れるより高い機会を許可する。システムがクールダウンする(すなわち、温度が下がる)場合、費用関数を増加する移動は、より低い確率で受理される。各外部の反復ループの開始において、温度はより高いレベルで復元され、内部ループでより冷やす処理の多数のパスを生成する。関数f2は次のように定義され得る:
P(relocation) = 1/(1 + exp((cost(old) - cost(new)) / cost(initial)×temp)) (6)
ここで、
P(relocation)は、再配置(relocation)が受理されるか否かの確率を示し、
cost(old)は再配置前の費用関数であり、
cost(new) は再配置後の費用関数であり、
cost(initial)は初期システム費用関数であり、
tempは、現在の温度レベルである。
初期温度レベルは、1又はいくつかの他の値で選択され、内部ループの全ての固定数のパスの後に等比数列で減少される。温度は、同様にいくつかの他の方法で低減され得る。内部ループは、温度がいくつかの所定の最低許可値T(min)に到達するまで続く。このアルゴリズムは、機械学習及び焼き鈍し法に基づくものであり、一般的に、システム内のポート及びホストについて最適な位置を決定する。
608では、Jカウンタの値がその閾値に到達したか否かについて確認が行われる。609では、Jの値が閾値(Y)に到達した場合、関数f1及びf2の修正と共にIカウンタの値が増加される。新たな関数f1及びf2に基づいて、ポート及びホストの費用関数も修正され、ホスト及びホストのポートに割り当てられた重みの修正という結果をもたらす。610では、カウンタIが上限閾値Threshold_Iに到達したか否かについて、確認が行われる。閾値Threshold_Iが(N)に到達していない場合、フローが602へ戻る。遅延、帯域幅、その他のパラメータを含むがこれらに限定されない、トラフィックパラメータに基づき、新たな重みが1以上のホスト及びそのポートに割り当てられる。他方、カウンタIの閾値が(Y)に到達した場合、フローは停止する。カウンタJの値が、Threshold_Jというその閾値(N)に到達しない場合、フローは603へ戻る。
新たなホスト又はポートは、別の位置へ可能な再配置の評価のために選択される。新たなポート(例えば、x2)は、その重みに基づく再配置のために同定され得る(例えば、x2の重みは、全ての他のホスト及び/又はポートより低いがx1より高い)。
一実装例では、図6のフローについての603において、内部及び外部のループ反復カウンタJ及びIのそれぞれが、ホスト選択をよりよく制御するためのポート/ホストの重みへの主な要因とされる。
図7a、7b、7c及び7dは、実装例に応じて、所与のホストのポートの再配置及び再位置決めを示す。図7aは、1以上の他のコンポーネント/ホストと動作可能に接続される、多数のコンポーネント/ホストC1からC16を示す。例えば、ホストC1は、それぞれのポートを介して、ホストC2及びC5のポートと接続される。同様に、C6は、C5、C10、C2、C3、C11及びC7のポートと接続される。一実装例では、図7aに示されるように、各ポートは、重みが割り当てられることができる。現在の例では、ポートは、それぞれのホストの範囲内に再配置され、ホストの位置は静的である。それ故、重みは、ポートへ割り当てられるだけである。
ホストC6のポートは、他のポートの全てのうち、「.15」の最小の重みを有し、ホスト/コンポーネントC6のポートは最高の遅延を有することを意味し、それ故、(図6の603におけるフローに従って)可能性のある再配置についてピックアップされ得る。再配置されるためのコンポーネントC6のポートの選択が図7bに示される。
図7bは、C6のポートが動作可能に接続されるC2、C3、C5、C7、C10及びC11を含む全てのホストを示す。図6のフローに定義されるように確率関数f1に基づいて、現在の例がC3であることを仮定し、一つのホストが現在選択され得る。(図6の605におけるフローに従って)一旦、ホストC3が選択されたとすると、C6のポートの再配置が提案されると仮定して、C6のポートについての費用関数が計算される。
図7cは、再配置前のC6のポートの旧費用関数を示す。「.15」として計算され、C6のポートをホストC6の右上への再配置と仮定した新たな費用関数をさらに計算する。図7cに示されるように、新たな費用関数は「.10」であり、それ故、確率関数f2に従って、新費用関数からの値が旧費用関数からの値より少ない場合、全ての他の動作可能に接続されたホストとC6の再配置ポートの更新された接続と共に、ポートが図7dに示されるように再配置され得る。コンポーネント及びポートに関する位置の最も最適化された集合が達成された回数まで、この処理は、続けられ得る。
一実装例に応じて、一旦、ホストの位置及び方向がSoC内に決定されると、自動的なNoCトポロジ生成処理は、NoCトポロジを形成するためのルータ及びNoCチャネルの割当を含むことができる。ルータは、仲裁地点の第1集合を形成するホストのポートを接続するためにインスタンス化され得る。そのポートは、最も近くのルータに接続される。ルータからポートの割当後、ホストポート当たりに1つルータが存在する。グリッドベースの設計方法論では、ルータは、ポートが存在するグリッドセル内でインスタンス化されるとよい。その後、追加のルータ及びNoCチャネルは、より最適なNoCトポロジが自動的に形成されるように接続が提供されるために割り当てられ得る。(あるホスト/コンポーネントから別のホスト/コンポーネントへのメッセージフローは一つのシステムトラフィックフローを形成する)システムトラフィックフローが特定のルータにおいてNoCグリッドへマップされる場合、多数のフローが互いに相互作用する度に、仲裁論理が必要とされ、それ故、交差点が発生するグリッドセルにおいてまだ存在しない場合に、ルータがインスタンス化され得る。また、新たなNoCチャネルは、それらがまだ存在しない場合に、経路に沿って割り当てられ得る。それ故、最適なNoCトポロジを決定することにおける鍵は、全トラフィック要件を満たすが、交点の最小数及び/又はチャネルの最小数が存在するように、システム内の全てのトラフィックフローについて最適な経路を選択することである。
別の実装例によれば、確率関数は、要求された実装に依存して、ポート又はホストの新たな最適化された位置について、遅延、相互接続帯域幅、トラフィックフロー又は全関数の合計に基づき、いずれか一つの関数を考慮して計算され得る。
図8は、1以上のシステムトラフィックフローについての可能であり最適な適格経路を同定するためのフローチャート図800である。SoCアーキテクチャは、1以上の経路/ノードを介して互いに動作可能に接続された多数のコンポーネントを備えることができる。
801では、最適な経路が同定されるべき全システムトラフィックフローを検索する。
802では、1以上のシステムトラフィックフローに重み関数が割り当てられ、重みは、例えば、遅延、帯域幅、その他のパラメータのようなトラフィックパラメータに基づいて各トラフィックフローに割り当てられ得る。例えば、正規化された遅延は、フロー最適化としてより低く正規化された遅延がより高く優先される前に、より高く正規化された遅延を有するフローが処理されるように、1以上のシステムトラフィックフローについて計算される。この例では、最大遅延を経験するフローが最も低い重みを有し、それ故、最初に処理される必要がある。
803では、1以上のシステムトラフィックフローが割り当てられた重みに基づきを順序付けされる。実装例では、順序付けは、最も低い重み(最高の遅延)を有するフローがリストの最上位にあるように行われ得る。
804では、リストの最上位のシステムトラフィックフローがピックアップされ、リストから削除され得る。しかしながら、フローの任意の他の再編もまた行われ得る(例えば、最高の遅延を有するフローもまた、リストの最下位に加えられる)。別の実装例では、重みは、全く遅延に基づかず、いくつかの他のパラメータは、リストに割り当てる間に考慮され得る。実装例は、最初に最適な経路が最適化されるべきシステムトラフィックフローを同定する。
805では、選択されたシステムトラフィックフローについて全ての可能な経路が同定され、検査される。例えば、CPUからキャッシュメモリへ初期化されるシステムフローに関する多数の経路が存在し、各経路が多数のルータ及びその中での相互接続を含む。全ての可能な経路の中から、例えば、必要されるホップ数、コンポーネント相互作用属性、他のトラフィック/コンポーネント/ノードレベル属性のような1以上のパラメータに基づいて、複数の経路が適格であるように最初に選択される。実装例では、経路に沿ったフローをマッピングし、全ての必要な経路をインスタンス化した後に、過去にマップされたフロー遅延制約、又は、現在のフローの遅延制約に違反しない場合、経路は適格である。別の実装例では、所与のシステムトラフィックフローについて同定される全ての経路が同定され得る。
806では、経路は、経路の適格な集合から費用関数に基づいて選択される。各経路は、それ故、例えば、必要されるルータ、必要されるチャネル、遅延考慮、帯域幅属性及び他のパラメータのような、1以上のパラメータにより同定される費用関数に関連付けられる。例えば、費用関数はそれぞれの経路で必要とされるホップ数に基づくものであり、より少ないホップ数を有する経路が費用関数の最低値を有する。その上、多数のパラメータは、費用関数を構成する重み付けられたパラメータ集合を形成するために、一定の比率で組み合わされ得る。実装例では、最低の費用関数を有する経路は、コンテクスト内でシステムトラフィックフローについて最適な経路として選択され得る。
807では、選択された経路は、システムトラフィックフローにマップされ、フローに必要とされるコンポーネントを含むシステムトラフィックフローと同様に、経路のプロパティが更新される。フローがマップされた時、ルータは、送信元及び送信先ノードにおいて、及び、現在のフローを促進する所与のルータが存在しない場合、そのフローが、現在のフローとは異なる方向で入り又は出て行く(又は両方の)いくつかの以前にマップされたフローとマージする全てのノードにおいて、インスタンス化される必要がある。
808では、同定されたシステムトラフィックフローについて選択された最適な経路のマッピング後に、システムトラフィックフローの全てがマップされたか否かを判定するために、確認が行われる。フローの全てがマップされていた場合(Y)、フローは終了し、さもなければ(N)フローは804へ戻り、他のシステムトラフィックフローについて最適な経路を同定するために続行する。
別の実装例では、それらがマップされているようなフローについて仮想的なチャネル割当と同様に、帯域幅分析及びNoCチャネルの最適化を組み合わせることにより、以前の処理を付け加えてもよい。そのような設計は以下を含むとよい。
1)フローの遅延要求及びフローの送信元及び送信先コンポーネントの位置に依存する様々なクラスへ複数のシステムトラフィックフローを自動的に分類すること
2)複数のシステムトラフィックフローから同定される所与のトラフィックフローについて適格な経路を同定すること
3)その経路が、デッドロックの回避及び分離について利用可能な仮想チャネル、並びに、このフローについての利用可能な帯域幅を有するか否かを決定し、利用可能な帯域幅及び仮想チャネルを有するそれらの経路だけを考慮すること
4)全ての経路の中から、関係するトラフィックシステムフローについての経路を決定する際のホップ数及び遅延に加えて、帯域幅、仮想チャネルに関して、ロードバランスを実行すること
5)経路にフローをマッピングし、様々なチャネルの帯域幅、及び、仮想チャネルの依存関係及び使用を追跡するために全てのデータ構造を更新すること
結果として生じる手順は、経路の適格性の基準が異なることを除いて、図8に示されるフローと同様である。多数の他の実施は、ランダムに経路を考慮すること、又は、全ての適格な経路においてシステムトラフィックフローをマッピングすることを考慮し、それらの中で最も良い経路を選択することなどで使用される。複数のNoC層へのフローのマッピング及び最も最適な経路を選択する、関連する帯域幅の認識及び仮想チャネルの認識のいくつかの例は、米国特許出願第13/752,226に記述され、全ての目的のためにその全体が参照により本明細書に組み込まれる。
別の実装例では、トポロジ生成アルゴリズムは、任意の遅延制約がないことにおいて、全てのシステムトラフィックフローのホップ数に関して全体的な遅延を削減することを目指してもよい。さらに、ルータノード及びチャネルに関するNoCコストは、様々なフローについての様々な経路が選択され、ルータ及びチャネルが割り当てられることに基づいて費用の測定基準として使用されてもよい。よって、図8の費用関数は、遅延の削減又はNoC費用の削減のいずれか、又は、両方の組み合わせの要求された最適化目標に基づいて、設けられる。
別の実装例では、もし可能ならば(例えば、他のフローがそこに存在しない)、より速い経路からのルータ及びチャネルを削除し、もし要求されれば、そこに新たな経路を追加する間に、フローは全て最初にマップされ、代替経路へ再配置される。その後、新システムの費用は、計算され、受理の基準/費用関数に基づいて、再配置は受理又は拒否のいずれかがされる。受理の基準は、再配置においていくつかのランダムさを取得するために、確率的に作成され得る。確率受理関数は、それを増加する確率よりも高い確率を有する費用を削減するそれらの再配置を受理することができる。焼き鈍し法アプローチにおける例示的受理関数は、以下である。
P(relocation) = 1/(1 + exp((cost(old) - cost(new)) / cost(initial)×temp)) (7)
ここで、P(relocation)は、再配置が受理されるか否かの確率を示し、
cost(old)は、再配置前の費用関数であり、
cost(new)は、再配置後の費用関数であり、
cost(initial)は、初期のシステム費用関数であり、
tempは、現在の温度レベルである。
初期の温度レベルは、1又はいくつかの他の値で設定され、全ての再配置の固定番号後の等比数列内で削減される。温度は、他の方法でも同様に削減され得る。温度が任意の所定の最低許容値T(min)に達するまで、再配置は、実行され得る。代替の受理関数は使用され、再配置の合計数が様々な異なる方法で決定され得る。
上記アルゴリズムの代替の実装は、相互接続の生成において特定の基数のルータだけを使用するような、制約を置いても良い。このケースでは、様々なフローについての経路が選択され、仲裁ポイント又はルータは基数制約を満足するように割り当てられる。例えば、基数3(すなわち、3ポート)のルータだけが使用されるように、制約が使用される場合、各ルータは、最大一つのホストと左右の二つの追加のルータに接続できるため、上記実装を有するNoCトポロジを結果として生じることは、全部又は部分的なリングであり得る。NoCトポロジを結果として生じることは、非メッシュ又はトーラストポロジである場合に、あるものは、より高い基数のルータを使用するために決定することができる。例えば、基数がSoC内のホストポートの合計数と等しいNoCルータを使用することが可能である場合、単一のルータが十分であり、相互接続を結果として生じることは、クロスバーのように見える。
自動的なNoCトポロジ生成の代替の実装例は、異なるトポロジを有するそれぞれの多重のNoC層を決定し、異なるNoC層上で異なるトラフィックフローをマップするとよい。このような技術は、例えば、米国特許出願第13/856,835に記述され、その全体が参照により本明細書に組み込まれる。
自動的なNoCトポロジ生成の提案された実装例を要約するために、第1に、様々なSoCコンポーネント及びコンポーネント内のポートの位置は、特定の性能制約が満たされ、全体の性能測定基準が最大化され得るように自動的に決定される。その上、実装例は、NoCルータノードの間及びそれらの間のチャネルで必要されるトラフィックフロー及び割当をマッピングすることによりNoCトポロジを自動的に決定する。生成及びマッピングは確率的手法に基づくため、全体のプロセスは、最善のソリューションを反復的に見つけ出すために複数回繰り返されるとよい。このことは、NoCトポロジを自動的に計算する実装例であるが、多数の代替の実装例が可能である。相互接続ソリューションを設計し、性能制約を満たすための効果的なNoCトポロジを自動的に決定する概念は、実装例の焦点に含まれる。
図9a、9b、9c及び9dは、異なる重みを有する複数のトラフィックフローから順番に選択され、所与のシステムトラフィックフローについて、より最適な経路の同定を示す。図9aに示されるように、例のSoC環境は、1以上が互いに動作可能に接続され得る16個のコンポーネントを備える。コンポーネントは、メモリ、キャッシュメモリ、CPU、プロセッサコア、DSP、ハードウェアアクセラレータ、メモリ、及びI/Oを備え、チップマルチプロセッサ(Chip Multi-Processors(CMPs))は、多数の均質なプロセッサコア、メモリ、及びI/Oサブシステムを含む。
図9aは、存在し、より最適な経路へマップされることが要求される複数のシステムトラフィックフローを示し、各フローは2つのコンポーネントの間のトランザクションを示す。例えば、1つのフローがC2とC5の間、C2とC7の間、C7とC14の間、他の同様なシステムフローの中のメッセージ相互作用を表す。上述したように、各システムフローは、トラフィックパラメータ、フローの優先度、必要とされるコンポーネント、他の属性に基づき、重みと関連付けられ得る(図8の802のフローを参照)。それ故、C6とC9の間のシステムトラフィックフローは、0.63の重みを有し、一方、C4とC8の間のフローは、0.45の重みを有するなどである。
一旦、マップされるべき全てのシステムトラフィックフローが同定され、重みが割り当てられると、最初にマップされるべき一つのシステムトラフィックフローが重みに基づいて同定される。例えば、現在の実装例の目的について、最低の重みを有するフローは、より最適な経路の同定について最初にピックアップされ得る。図9bに示されるように、C7とC14の間のフローは、0.10の最小の重みを有し、それ故、マッピングについてピックアップされ得る。一旦、要求されたフローが選択されると、フローについて全ての可能かつ適格な経路が、図9cに示されるように計算され、第1の可能な経路は、C7−>C6−>C10−>C14であり、第2の可能な経路は、C7−>C11−>C10−>C14であり、第3の可能な経路は、C7−>C11−>C15−>C14である。各適格な経路は、費用関数に関連付けられ、上記に記載されているように、トラフィックパラメータ及び他のNoCレベル属性に基づく経路の最適性の査定及び評価に役立つ。図9cに示されるように、第2の同定された経路C7−>C11−>C10−>C14は、9の最低の費用関数を有し、それ故、ホストC7及びC14の間でシステムトラフィックフローについて最適な経路として選択され得る。一旦、経路が選択されると、ルータ及びチャネルは、それに応じて割り振られ、経路に沿って割り当てられる。最後の経路選択は、図9dに示され、NoCトポロジの一部を生成する。一旦、全ての経路が決定されると、全てのNoCトポロジが実現されるだろう。
図10は、例示的な実施形態を実現することができる例示的なコンピュータシステム1000を示す図である。コンピュータシステム1000は、入出力部1035と、記憶装置1060と、当業者に知られているように1以上の装置を実行可能なプロセッサ1010とを含むサーバ1005を備える。本明細書で使用する用語「コンピュータ可読媒体」は、実行のためにプロセッサ1010に命令を提供することに関与する任意の媒体を指し、これは、コンピュータ可読記憶媒体の形となることがあり、例えば、光ディスク、磁気ディスク、リードオンリーメモリ、ランダム・アクセス・メモリ、ソリッドステート装置及びドライブに限らず、または電子情報を格納するのに適した有形の媒体の任意の他のタイプ、またはコンピュータ可読信号媒体、であり、これらはキャリアウェーブを含むことができる。I/Oユニットは、ユーザインタフェース1040とオペレータインタフェース1045からの入力を処理し、これは、キーボード、マウス、タッチデバイス、または言葉によるコマンドなどの入力装置を利用することができる。
サーバ1005はまた、外部記憶装置1050に接続することができる。これはリムーバブルストレージを含めることができる。例えば、ポータブルハードドライブ、光メディア(CDまたはDVD)、ディスク媒体またはコンピュータが実行可能なコードを読み取ることができる任意の他の媒体である。サーバはまた、出力装置1055、例えば、ユーザにデータおよび他の情報を出力し、同様に、ユーザからの追加情報を要求するディスプレイを接続することができる。サーバ1005から、ユーザインタフェース1040、オペレータインタフェース1045、外部記憶装置1050、出力装置1055への接続は、無線プロトコルを介してもよい。例えば、802.11規格、Bluetooth(登録商標)またはセルラープロトコル、または、ケーブルや光ファイバなどの物理的な伝送媒体を介したものである。出力装置1055は、従って、ユーザと対話するための入力装置として機能することができる。
プロセッサ1010は、SoCトポロジモジュール1011及びNoCトポロジモジュール1012を含む一つ以上のモジュールを実行してもよい。SoCトポロジモジュール1011は、遅延を最小化し、かつ、全体的なシステム帯域幅を拡張するために、システム内のコンポーネント間の高いスケーラビリティ及び性能の通信を提供し、コンポーネント及び/又はその中のポートの位置決め、設定及び方向付けにより全体的な性能メトリックを最大化するように構成することができる。各ポート及び/又はホスト/コンポーネントに割り当てられるトラフィックベースの重みに基づいて、SoCトポロジモジュール1011は、再位置決めされるためのポート及び/又はホストを同定し、それに応じて、前回の位置と新たな位置の費用関数の比較に基づいて、それらの位置を変更する。NoCトポロジモジュール1012は、他方、最適な経路が同定されるべきであるシステムフローを同定し、それに応じて、NoC相互接続アーキテクチャのルータ/ノード及びチャネルを割り当てることにより、同定された効果的なルータをシステムトラフィックフローにマッピングする。
一実施形態によれば、SoCトポロジモジュール1011は、1以上のサブモジュールを実行し、様々なトラフィックパラメータに基づくSoc環境におけるホスト内の1以上のホスト及び/又はポートに重みを割り当てる重み割当モジュール1011−1を備えてもよい。SoCトポロジモジュール1011のホスト/ポート選択モジュール1011−2は、その重みに基づきホスト又はポートを選択するように構成することができる。これは、重み割当モジュール1011−1に応じて最低又は最高の重みであるとよい。候補地同定モジュール1011−3は、ホスト/ポート選択モジュール1011−2により選択されたホスト/ポートについて、確率関数f1に基づきホストを決定するように構成することができる。関数f1は、トラフィックパラメータ、例えば、遅延、帯域幅、使用頻度、その他の属性に基づきホストを評価する。一度、ホストが決定されると、ポートは、コンテクスト内でホストと最良に整列する位置に再配置されていたことを認識することができる。上述の実施形態のほとんどがモジュール1011−2により選択されているポートに関して説明されたものであるが、コンポーネント/ホストは、選択され、そして、再配置/再位置決め/再方向付けされてもよい。ポートx1がモジュール1011−2により同定されるとすれば、候補地同定モジュール1011−3は、関数f1に基づいてホストであるh2を同定し、さらに、同定されたホストに関してポートの最良の位置を同定するように構成される。費用計算モジュール1011−4は、検出されたホストh2について最も適した新しい位置に再配置したと仮定するポートの新費用関数を計算ように構成することができる。再配置モジュール1011−5は、ポートが新たに提案された位置に再配置されるべきか否かを結論付けるための、ポートの初期費用関数(初期位置)、新費用関数(提案された新しい位置)、及び確率関数f2を考慮に入れるように構成することができる。
NoCトポロジモジュール1012は、1以上のサブモジュールをさらに備えることができる。トラフィックフロー重み割当モジュール1012−1は、全システムトラフィックフローを検索し、1以上のシステムトラフィックフローに重みを割り当てるように構成することができる。そのような重みは、トラフィックパラメータ、例えば、遅延、必要とされるコンポーネント、要求された帯域幅、現在の帯域幅、他のパラメータのようなものに基づいて割り当てられることができる。トラフィックフロー選択モジュール1012−2は、割り当てられた重みに基づいて1以上のシステムトラフィックフローを順序付け、それに応じて、割り当てられた重みに基づいてシステムトラフィックフローを選択するように構成することができる。例では、(最高の遅延を有する)最低の重みを備えたフローは、最初に取り上げられることができる。経路決定モジュール1012−3は、選択されたシステムトラフィックフローについて全ての可能な経路を同定するように構成することができる。実装において、同定された可能な経路は、適格な経路のリストを検索するために分析されることができ、適格な経路が追加で処理されてよい。費用関数計算モジュール1012−4は、関係したシステムトラフィックフローに関して同定され/適格な経路のそれぞれについて費用関数を計算するように構成することができる。最適経路同定モジュール1012−5は、費用関数計算モジュール1012−4により計算された費用関数に基づいて、選択されたトラフィックフローについて最も適格な経路を同定するように構成することができる。
また、詳細な説明のいくつかの部分は、コンピュータ内のオペレーションのアルゴリズム及び記号表現に関して提示される。これらのアルゴリズム記述および記号表現は、最も効果的に他の当業者に彼らの技術革新の本質を伝えるために、データ処理分野の当業者によって使用される手段である。アルゴリズムは、望ましい最終状態又は結果に導く一連の定義されたステップである。実装例で実行されるステップは、有形の結果を達成するための具体的な量の物理的操作を必要とする。
また、本発明の他の実装は、本明細書に開示の例示的な実装の仕様および実施を考慮すれば当業者にとって明らかであろう。様々な態様および/または記載された例の実装の構成要素は、単独で又は任意の組み合わせによって使用することができる。明細書および実施例は、アプリケーションの真の範囲および精神が以下の特許請求の範囲によって示される例として考慮されることが意図されている。

Claims (20)

  1. 複数のホスト及び複数のポートを備えるネットワークオンチップ(Network-on-Chip(NoC))を構成するための方法であって、
    前記ポートに割り当てられた重みに基づき、前記複数のポートから一つのポートを選択し、
    前記選択されたポートについて、前記複数のホストから一つのホストを同定し、
    費用関数及び確率受理関数の少なくとも一つに基づき、前記同定されたホストへ前記選択されたポートを再配置する
    ことを含む方法。
  2. 前記ポートに割り当てられた重みは、1以上のトラフィック属性に基づくものである
    請求項1に記載の方法。
  3. 前記ポートを選択すること、前記ホストを同定すること、及び、前記選択されたポートを再配置することは、閾値に到達するまで反復的に繰り返され、
    前記複数のポートに割り当てられた重みは、1以上の更新された確率関数に基づいて更新される
    請求項1に記載の方法。
  4. 前記選択されたポートについて、前記複数のホストからホストを同定することは、別の確率受理関数に基づくものである
    請求項1に記載の方法。
  5. 前記システムトラフィックフローに割り当てられた重みに基づいて複数のシステムトラフィックフローから一つのシステムトラフィックフローを選択し、
    費用関数に基づき、前記NoC内の複数の経路から一つの経路を同定し、
    前記同定された経路に前記選択されたシステムトラフィックフローをマッピングする
    ことをさらに含む
    請求項1に記載の方法。
  6. 前記費用関数は、遅延、帯域幅、及びホップ数の少なくとも一つに基づくものである
    請求項1に記載の方法。
  7. 前記システムトラフィックフローを選択すること、前記経路を同定すること、及び、前記選択されたシステムトラフィックフローをマッピングすることは、前記NoCの全てのシステムトラフィックフローが処理されるまで反復的に繰り返される
    請求項1に記載の方法。
  8. 複数のホスト及び複数のポートを備えるネットワークオンチップ(Network-on-Chip(NoC))を構成する命令を格納するコンピュータ可読記憶媒体であって、
    前記命令は、
    前記ポートに割り当てられた重みに基づき、前記複数のポートから一つのポートを選択し、
    前記選択されたポートについて、前記複数のホストから一つのホストを同定し、
    費用関数及び確率受理関数の少なくとも一つに基づき、前記同定されたホストへ前記選択されたポートを再配置すること、を含む
    コンピュータ可読記憶媒体。
  9. 前記ポートに割り当てられた重みは、1以上のトラフィック属性に基づくものである
    請求項8に記載のコンピュータ可読記憶媒体。
  10. 前記ポートを選択すること、前記ホストを同定すること、及び、前記選択されたポートを再配置することは、閾値に到達するまで反復的に繰り返され、
    前記複数のポートに割り当てられた重みは、1以上の更新された確率関数に基づいて更新される
    請求項8に記載のコンピュータ可読記憶媒体。
  11. 前記選択されたポートについて、前記複数のホストからホストを同定することは、別の確率受理関数に基づくものである
    請求項8に記載のコンピュータ可読記憶媒体。
  12. 前記命令は、
    前記システムトラフィックフローに割り当てられた重みに基づいて複数のシステムトラフィックフローから一つのシステムトラフィックフローを選択し、
    費用関数に基づき、前記NoC内の複数の経路から一つの経路を同定し、
    前記同定された経路に前記選択されたシステムトラフィックフローをマッピングする
    ことをさらに含む
    請求項8に記載のコンピュータ可読記憶媒体。
  13. 前記費用関数は、遅延、帯域幅、及びホップ数の少なくとも一つに基づくものである
    請求項8に記載のコンピュータ可読記憶媒体。
  14. 前記システムトラフィックフローを選択すること、前記経路を同定すること、及び、前記選択されたシステムトラフィックフローをマッピングすることは、前記NoCの全てのシステムトラフィックフローが処理されるまで反復的に繰り返される
    請求項8に記載のコンピュータ可読記憶媒体。
  15. 複数のホスト及び複数のポートを備えるネットワークオンチップ(Network-on-Chip(NoC))を構成するためのシステムであって、
    前記ポートに割り当てられた重みに基づき、前記複数のポートから一つのポートを選択し、前記選択されたポートについて、前記複数のホストから一つのホストを同定し、費用関数及び確率受理関数の少なくとも一つに基づき、前記同定されたホストへ前記選択されたポートを再配置する、システムオンチップ(System on Chip (SoC))トポロジモジュール
    を備えるシステム。
  16. 前記ポートに割り当てられた重みは、1以上のトラフィック属性に基づくものである
    請求項15に記載のシステム。
  17. 前記SoCトポロジモジュールは、前記ポートを選択すること、前記ホストを同定すること、及び、前記選択されたポートを再配置することを、閾値に到達するまで反復的に繰り返し、
    前記SoCトポロジモジュールは、1以上の更新された確率関数に基づいて、前記複数のポートに割り当てられた重みを更新する
    請求項15に記載のシステム。
  18. 前記SoCトポロジモジュールは、別の確率受理関数に基づいて、前記選択されたポートについて、前記複数のホストからホストを同定する
    請求項15に記載のシステム。
  19. 前記システムトラフィックフローに割り当てられた重みに基づいて複数のシステムトラフィックフローから一つのシステムトラフィックフローを選択し、
    費用関数に基づき、前記NoC内の複数の経路から一つの経路を同定し、
    前記同定された経路に前記選択されたシステムトラフィックフローをマッピングする
    NoCトポロジモジュールをさらに備える
    請求項15に記載のシステム。
  20. 前記費用関数は、遅延、帯域幅、及びホップ数の少なくとも一つに基づくものである
    請求項15に記載のシステム。
JP2016516030A 2013-08-05 2014-05-13 NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体 Expired - Fee Related JP6060316B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/959,541 2013-08-05
US13/959,541 US9054977B2 (en) 2013-08-05 2013-08-05 Automatic NoC topology generation
PCT/US2014/037902 WO2015020712A1 (en) 2013-08-05 2014-05-13 Automatic noc topology generation

Publications (2)

Publication Number Publication Date
JP2016525290A true JP2016525290A (ja) 2016-08-22
JP6060316B2 JP6060316B2 (ja) 2017-01-11

Family

ID=52427588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016516030A Expired - Fee Related JP6060316B2 (ja) 2013-08-05 2014-05-13 NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体

Country Status (4)

Country Link
US (1) US9054977B2 (ja)
JP (1) JP6060316B2 (ja)
KR (1) KR101652490B1 (ja)
WO (1) WO2015020712A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021513241A (ja) * 2018-02-01 2021-05-20 ザイリンクス インコーポレイテッドXilinx Incorporated ネットワーク・オン・チップにおけるエンド・ツー・エンドのサービス品質

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8885510B2 (en) 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
US9471726B2 (en) 2013-07-25 2016-10-18 Netspeed Systems System level simulation in network on chip architecture
US10291503B2 (en) * 2013-09-26 2019-05-14 Taiwan Semiconductor Manufacturing Co., Ltd. File block placement in a distributed network
US9485168B2 (en) 2013-10-03 2016-11-01 International Business Machines Corporation Temperature sensitive routing of data in a computer system
ITTO20130824A1 (it) * 2013-10-11 2015-04-11 St Microelectronics Grenoble 2 Sistema per progettare disposizioni di interconnessione network on chip
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9762474B2 (en) * 2014-04-07 2017-09-12 Netspeed Systems Systems and methods for selecting a router to connect a bridge in the network on chip (NoC)
US9264932B2 (en) * 2014-05-16 2016-02-16 Verizon Patent And Licensing Inc. Application-specific traffic multiplexing
US9571341B1 (en) 2014-10-01 2017-02-14 Netspeed Systems Clock gating for system-on-chip elements
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
US10050843B2 (en) * 2015-02-18 2018-08-14 Netspeed Systems Generation of network-on-chip layout based on user specified topological constraints
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US9864728B2 (en) * 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks
US9825809B2 (en) 2015-05-29 2017-11-21 Netspeed Systems Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US20170063626A1 (en) * 2015-06-18 2017-03-02 Netspeed Systems System and method for grouping of network on chip (noc) elements
FR3040575B1 (fr) * 2015-09-02 2017-08-18 Bull Sas Procede de determination automatisee de topologies d'interconnexion optimales de systemes comprenant des nœuds de service, et dispositif de traitement associe
US9940423B2 (en) * 2015-12-20 2018-04-10 Arteris, Inc. Editing a NoC topology on top of a floorplan
CN105844014B (zh) * 2016-03-22 2019-04-23 广东工业大学 基于芯片设计流程和应用设计流程的片上网络编码优化方法
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10313269B2 (en) 2016-12-26 2019-06-04 Netspeed Systems, Inc. System and method for network on chip construction through machine learning
US20180183726A1 (en) * 2016-12-27 2018-06-28 Netspeed Systems, Inc. Traffic mapping of a network on chip through machine learning
US10063496B2 (en) * 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10084725B2 (en) * 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
US11544441B2 (en) * 2018-02-12 2023-01-03 Arizona Board Of Regents On Behalf Of The University Of Arizona Automated network-on-chip design
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
KR102110335B1 (ko) * 2018-12-12 2020-05-14 성균관대학교산학협력단 네트워크 온 칩 및 그의 데이터 압축 방법 및 장치
US10700964B1 (en) * 2019-01-04 2020-06-30 Dropbox, Inc. Centralized application-layer routing at the edge of an online application service provider network
US11290375B2 (en) * 2019-01-18 2022-03-29 Rise Research Institutes of Sweden AB Dynamic deployment of network applications having performance and reliability guarantees in large computing networks
KR102059548B1 (ko) * 2019-02-13 2019-12-27 성균관대학교산학협력단 Vfi 네트워크 온칩에 대한 구역간 라우팅 방법, vfi 네트워크 온칩에 대한 구역내 라우팅 방법, vfi 네트워크 온칩에 대한 구역내 및 구역간 라우팅 방법 및 이를 실행하기 위한 프로그램이 기록된 기록매체
US11223667B2 (en) 2019-04-30 2022-01-11 Phantom Auto Inc. Low latency wireless communication system for teleoperated vehicle environments
US11223556B2 (en) * 2019-06-04 2022-01-11 Phantom Auto Inc. Platform for redundant wireless communications optimization
US11657203B2 (en) * 2019-12-27 2023-05-23 Arteris, Inc. Multi-phase topology synthesis of a network-on-chip (NoC)
US11665776B2 (en) 2019-12-27 2023-05-30 Arteris, Inc. System and method for synthesis of a network-on-chip for deadlock-free transformation
US11558259B2 (en) 2019-12-27 2023-01-17 Arteris, Inc. System and method for generating and using physical roadmaps in network synthesis
US10990724B1 (en) * 2019-12-27 2021-04-27 Arteris, Inc. System and method for incremental topology synthesis of a network-on-chip
US11418448B2 (en) 2020-04-09 2022-08-16 Arteris, Inc. System and method for synthesis of a network-on-chip to determine optimal path with load balancing
US11601357B2 (en) 2020-12-22 2023-03-07 Arteris, Inc. System and method for generation of quality metrics for optimization tasks in topology synthesis of a network
US11281827B1 (en) 2020-12-26 2022-03-22 Arteris, Inc. Optimization of parameters for synthesis of a topology using a discriminant function module
US11449655B2 (en) 2020-12-30 2022-09-20 Arteris, Inc. Synthesis of a network-on-chip (NoC) using performance constraints and objectives
US12112113B2 (en) 2021-03-05 2024-10-08 Apple Inc. Complementary die-to-die interface
US11956127B2 (en) * 2021-03-10 2024-04-09 Arteris, Inc. Incremental topology modification of a network-on-chip
US11481343B1 (en) * 2021-04-02 2022-10-25 Micron Technology, Inc. Transporting request types with different latencies
US11675722B2 (en) * 2021-04-16 2023-06-13 Apple Inc. Multiple independent on-chip interconnect
US12010009B2 (en) * 2021-07-23 2024-06-11 EMC IP Holding Company LLC Method for distributing content, electronic device, and computer program product
US12007895B2 (en) 2021-08-23 2024-06-11 Apple Inc. Scalable system on a chip
US11853669B2 (en) * 2021-11-22 2023-12-26 Achronix Semiconductor Corporation Relocatable FPGA modules
CN114374651B (zh) * 2021-12-31 2023-01-20 海光信息技术股份有限公司 传输流量控制方法、片上网络、电子装置及存储介质
US12067335B2 (en) 2022-04-11 2024-08-20 Arteris, Inc. Automatic configuration of pipeline modules in an electronics system
CN116055386B (zh) * 2023-03-07 2023-06-02 燧原智能科技(成都)有限公司 一种端口权重更新方法、装置、芯片及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011148583A1 (ja) * 2010-05-27 2011-12-01 パナソニック株式会社 バス制御装置およびバス制御装置に指示を出力する制御装置

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4933933A (en) 1986-12-19 1990-06-12 The California Institute Of Technology Torus routing chip
US5355455A (en) 1991-11-19 1994-10-11 International Business Machines Corporation Method and apparatus for avoiding deadlock in a computer system with two or more protocol-controlled buses interconnected by a bus adaptor
WO1994009576A1 (en) 1992-10-21 1994-04-28 Bell Communications Research, Inc. A broadband virtual private network service and system
US5764740A (en) 1995-07-14 1998-06-09 Telefonaktiebolaget Lm Ericsson System and method for optimal logical network capacity dimensioning with broadband traffic
US5991308A (en) 1995-08-25 1999-11-23 Terayon Communication Systems, Inc. Lower overhead method for data transmission using ATM and SCDMA over hybrid fiber coax cable plant
US5961623A (en) 1996-08-29 1999-10-05 Apple Computer, Inc. Method and system for avoiding starvation and deadlocks in a split-response interconnect of a computer system
US6003029A (en) 1997-08-22 1999-12-14 International Business Machines Corporation Automatic subspace clustering of high dimensional data for data mining applications
US6101181A (en) 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
KR100250437B1 (ko) 1997-12-26 2000-04-01 정선종 라운드로빈 중재 및 적응 경로 제어를 수행하는경로제어 장치
US6249902B1 (en) 1998-01-09 2001-06-19 Silicon Perspective Corporation Design hierarchy-based placement
US6415282B1 (en) 1998-04-22 2002-07-02 Nec Usa, Inc. Method and apparatus for query refinement
US6711152B1 (en) 1998-07-06 2004-03-23 At&T Corp. Routing over large clouds
US6968514B2 (en) 1998-09-30 2005-11-22 Cadence Design Systems, Inc. Block based design methodology with programmable components
US6456961B1 (en) * 1999-04-30 2002-09-24 Srinivas Patil Method and apparatus for creating testable circuit designs having embedded cores
US6356900B1 (en) 1999-12-30 2002-03-12 Decode Genetics Ehf Online modifications of relations in multidimensional processing
CA2359168A1 (en) 2000-10-25 2002-04-25 John Doucette Design of meta-mesh of chain sub-networks
US7000011B1 (en) 2000-11-06 2006-02-14 Hewlett-Packard Development Company, Lp. Designing interconnect fabrics
US7747165B2 (en) * 2001-06-13 2010-06-29 Alcatel-Lucent Usa Inc. Network operating system with topology autodiscovery
US6925627B1 (en) 2002-12-20 2005-08-02 Conexant Systems, Inc. Method and apparatus for power routing in an integrated circuit
WO2004072796A2 (en) 2003-02-05 2004-08-26 Arizona Board Of Regents Reconfigurable processing
US7065730B2 (en) 2003-04-17 2006-06-20 International Business Machines Corporation Porosity aware buffered steiner tree construction
US8020163B2 (en) 2003-06-02 2011-09-13 Interuniversitair Microelektronica Centrum (Imec) Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof
US7318214B1 (en) 2003-06-19 2008-01-08 Invarium, Inc. System and method for reducing patterning variability in integrated circuit manufacturing through mask layout corrections
US7448010B1 (en) 2003-08-01 2008-11-04 Cadence Design Systems, Inc. Methods and mechanisms for implementing virtual metal fill
US7518990B2 (en) 2003-12-26 2009-04-14 Alcatel Lucent Usa Inc. Route determination method and apparatus for virtually-concatenated data traffic
US7159047B2 (en) * 2004-04-21 2007-01-02 Tezzaron Semiconductor Network with programmable interconnect nodes adapted to large integrated circuits
KR100674933B1 (ko) 2005-01-06 2007-01-26 삼성전자주식회사 온 칩 버스(On Chip Bus)에서 최적화된코어-타일-스위치(core-tile-switch)맵핑(mapping) 구조를 결정하는 방법 및 그 방법을기록한 컴퓨터로 읽을 수 있는 기록 매체
US8059551B2 (en) 2005-02-15 2011-11-15 Raytheon Bbn Technologies Corp. Method for source-spoofed IP packet traceback
FR2883116B1 (fr) 2005-03-08 2007-04-13 Commissariat Energie Atomique Architecture de communication globalement asynchrone pour systeme sur puce.
DE602005009801D1 (de) 2005-04-11 2008-10-30 St Microelectronics Srl Ein dynamisch rekonfigurierbares System auf einem Chip, welches eine Vielzahl rekonfigurierbarer Gate-Arrays beinhaltet.
US7965725B2 (en) 2005-05-31 2011-06-21 Stmicroelectronics, Inc. Hyper-ring-on-chip (HyRoC) architecture
US20060281221A1 (en) 2005-06-09 2006-12-14 Sharad Mehrotra Enhanced routing grid system and method
US7603644B2 (en) 2005-06-24 2009-10-13 Pulsic Limited Integrated circuit routing and compaction
US7343581B2 (en) 2005-06-27 2008-03-11 Tela Innovations, Inc. Methods for creating primitive constructed standard cells
JP2009502080A (ja) 2005-07-19 2009-01-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電子装置及び通信リソース割り当て方法
JP2007149061A (ja) 2005-10-31 2007-06-14 Seiko Epson Corp レイアウトシステムおよびレイアウトプログラム、並びにレイアウト方法
US7289933B2 (en) 2005-11-04 2007-10-30 Synopsys, Inc. Simulating topography of a conductive material in a semiconductor wafer
US20070244676A1 (en) 2006-03-03 2007-10-18 Li Shang Adaptive analysis methods
US8448102B2 (en) 2006-03-09 2013-05-21 Tela Innovations, Inc. Optimizing layout of irregular structures in regular layout context
US20070256044A1 (en) 2006-04-26 2007-11-01 Gary Coryer System and method to power route hierarchical designs that employ macro reuse
EP2076874A4 (en) 2006-05-13 2011-03-09 Sap Ag DERIVED CONSISTENT SET OF INTERFACES DERIVED FROM A BUSINESS OBJECT MODEL
JP2007311491A (ja) 2006-05-17 2007-11-29 Toshiba Corp 半導体集積回路
EP1863232A1 (en) 2006-05-29 2007-12-05 Stmicroelectronics Sa On-chip bandwidth allocator
US20080072182A1 (en) 2006-09-19 2008-03-20 The Regents Of The University Of California Structured and parameterized model order reduction
EP2080128A1 (en) 2006-10-10 2009-07-22 Ecole Polytechnique Federale De Lausanne (Epfl) Method to design network-on-chip (noc)-based communication systems
KR100892344B1 (ko) * 2006-12-05 2009-04-08 한국전자통신연구원 시스템 온칩 통신 구조 합성 방법
WO2008080122A2 (en) 2006-12-22 2008-07-03 The Trustees Of Columbia University In The City Of New York Systems and method for on-chip data communication
US7953994B2 (en) * 2007-03-26 2011-05-31 Stmicroelectronics Pvt. Ltd. Architecture incorporating configurable controller for reducing on chip power leakage
WO2008126516A1 (ja) 2007-04-10 2008-10-23 Naoki Suehiro 送信方法、送信装置、受信方法及び受信装置
US7809006B2 (en) 2007-08-16 2010-10-05 D. E. Shaw Research, Llc Routing with virtual channels
US8136071B2 (en) 2007-09-12 2012-03-13 Neal Solomon Three dimensional integrated circuits and methods of fabrication
US8099757B2 (en) 2007-10-15 2012-01-17 Time Warner Cable Inc. Methods and apparatus for revenue-optimized delivery of content in a network
US20110022754A1 (en) 2007-12-06 2011-01-27 Technion Research & Development Foundation Ltd Bus enhanced network on chip
US8490110B2 (en) 2008-02-15 2013-07-16 International Business Machines Corporation Network on chip with a low latency, high bandwidth application messaging interconnect
TWI390869B (zh) 2008-04-24 2013-03-21 Univ Nat Taiwan 網路資源分配系統及方法
US8203938B2 (en) 2008-05-22 2012-06-19 Level 3 Communications, Llc Multi-router IGP fate sharing
CN102017548B (zh) 2008-06-12 2013-08-28 松下电器产业株式会社 网络监视装置、总线系统监视装置以及方法
US8050256B1 (en) 2008-07-08 2011-11-01 Tilera Corporation Configuring routing in mesh networks
US8312402B1 (en) 2008-12-08 2012-11-13 Cadence Design Systems, Inc. Method and apparatus for broadband electromagnetic modeling of three-dimensional interconnects embedded in multilayered substrates
US8065433B2 (en) 2009-01-09 2011-11-22 Microsoft Corporation Hybrid butterfly cube architecture for modular data centers
US8412795B2 (en) 2009-04-29 2013-04-02 Stmicroelectronics S.R.L. Control device for a system-on-chip and corresponding method
US8285912B2 (en) 2009-08-07 2012-10-09 Arm Limited Communication infrastructure for a data processing apparatus and a method of operation of such a communication infrastructure
US8276105B2 (en) 2009-09-18 2012-09-25 International Business Machines Corporation Automatic positioning of gate array circuits in an integrated circuit design
US8407647B2 (en) 2009-12-17 2013-03-26 Springsoft, Inc. Systems and methods for designing and making integrated circuits with consideration of wiring demand ratio
US8541819B1 (en) 2010-12-09 2013-09-24 Monolithic 3D Inc. Semiconductor device and structure
US8492886B2 (en) 2010-02-16 2013-07-23 Monolithic 3D Inc 3D integrated circuit with logic
CN103109248B (zh) 2010-05-12 2016-03-23 松下知识产权经营株式会社 中继器以及芯片电路
US20130080073A1 (en) 2010-06-11 2013-03-28 Waters Technologies Corporation Techniques for mass spectrometry peak list computation using parallel processing
US8196086B2 (en) 2010-07-21 2012-06-05 Lsi Corporation Granular channel width for power optimization
US9396162B2 (en) 2010-07-22 2016-07-19 John APPLEYARD Method and apparatus for estimating the state of a system
JP5543894B2 (ja) 2010-10-21 2014-07-09 ルネサスエレクトロニクス株式会社 NoCシステム及び入力切替装置
US8738860B1 (en) 2010-10-25 2014-05-27 Tilera Corporation Computing in parallel processing environments
CN102467582B (zh) 2010-10-29 2014-08-13 国际商业机器公司 一种集成电路设计中优化连线约束的方法和系统
US8705368B1 (en) 2010-12-03 2014-04-22 Google Inc. Probabilistic distance-based arbitration
US9397933B2 (en) 2010-12-21 2016-07-19 Verizon Patent And Licensing Inc. Method and system of providing micro-facilities for network recovery
US8717875B2 (en) 2011-04-15 2014-05-06 Alcatel Lucent Condensed core-energy-efficient architecture for WAN IP backbones
US8711867B2 (en) 2011-08-26 2014-04-29 Sonics, Inc. Credit flow control scheme in a router with flexible link widths utilizing minimal storage
US9213788B2 (en) 2011-10-25 2015-12-15 Massachusetts Institute Of Technology Methods and apparatus for constructing and analyzing component-based models of engineering systems
US20130151215A1 (en) 2011-12-12 2013-06-13 Schlumberger Technology Corporation Relaxed constraint delaunay method for discretizing fractured media
JP2013125906A (ja) 2011-12-15 2013-06-24 Toshiba Corp フレアマップ計算方法、フレアマップ算出プログラムおよび半導体装置の製造方法
US20130174113A1 (en) 2011-12-30 2013-07-04 Arteris SAS Floorplan estimation
US9070121B2 (en) 2012-02-14 2015-06-30 Silver Spring Networks, Inc. Approach for prioritizing network alerts
US9111151B2 (en) 2012-02-17 2015-08-18 National Taiwan University Network on chip processor with multiple cores and routing method thereof
US8756541B2 (en) 2012-03-27 2014-06-17 International Business Machines Corporation Relative ordering circuit synthesis
US8635577B2 (en) 2012-06-01 2014-01-21 International Business Machines Corporation Timing refinement re-routing
US9244880B2 (en) 2012-08-30 2016-01-26 Netspeed Systems Automatic construction of deadlock free interconnects
US20140092740A1 (en) 2012-09-29 2014-04-03 Ren Wang Adaptive packet deflection to achieve fair, low-cost, and/or energy-efficient quality of service in network on chip devices
US8885510B2 (en) 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
US8601423B1 (en) 2012-10-23 2013-12-03 Netspeed Systems Asymmetric mesh NoC topologies
US8667439B1 (en) 2013-02-27 2014-03-04 Netspeed Systems Automatically connecting SoCs IP cores to interconnect nodes to minimize global latency and reduce interconnect cost

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011148583A1 (ja) * 2010-05-27 2011-12-01 パナソニック株式会社 バス制御装置およびバス制御装置に指示を出力する制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021513241A (ja) * 2018-02-01 2021-05-20 ザイリンクス インコーポレイテッドXilinx Incorporated ネットワーク・オン・チップにおけるエンド・ツー・エンドのサービス品質
JP7356988B2 (ja) 2018-02-01 2023-10-05 ザイリンクス インコーポレイテッド ネットワーク・オン・チップにおけるエンド・ツー・エンドのサービス品質

Also Published As

Publication number Publication date
KR101652490B1 (ko) 2016-08-30
JP6060316B2 (ja) 2017-01-11
US9054977B2 (en) 2015-06-09
KR20160021893A (ko) 2016-02-26
US20150036536A1 (en) 2015-02-05
WO2015020712A1 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
JP6060316B2 (ja) NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体
JP5936793B2 (ja) 全体的なレイテンシを最小限に抑え、相互接続コストを削減するために、自動接続socs ipコアをノードに相互接続する方法
US9529400B1 (en) Automatic power domain and voltage domain assignment to system-on-chip agents and network-on-chip elements
US8819616B2 (en) Asymmetric mesh NoC topologies
US9569579B1 (en) Automatic pipelining of NoC channels to meet timing and/or performance
US9130856B2 (en) Creating multiple NoC layers for isolation or avoiding NoC traffic congestion
US9160627B2 (en) Multiple heterogeneous NoC layers
US10554496B2 (en) Heterogeneous SoC IP core placement in an interconnect to optimize latency and interconnect performance
JP2016510549A5 (ja)
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US20180183728A1 (en) Traffic mapping of a network on chip through machine learning
US10313269B2 (en) System and method for network on chip construction through machine learning
US10298485B2 (en) Systems and methods for NoC construction
US10469338B2 (en) Cost management against requirements for the generation of a NoC
US20150288596A1 (en) Systems and methods for selecting a router to connect a bridge in the network on chip (noc)
US20180198682A1 (en) Strategies for NoC Construction Using Machine Learning

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160204

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160204

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160204

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161020

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161212

R150 Certificate of patent or registration of utility model

Ref document number: 6060316

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

LAPS Cancellation because of no payment of annual fees