JP2017517978A - ネットワーク・オン・チップ設計向けのトランザクショナル・トラフィック仕様 - Google Patents

ネットワーク・オン・チップ設計向けのトランザクショナル・トラフィック仕様 Download PDF

Info

Publication number
JP2017517978A
JP2017517978A JP2016571197A JP2016571197A JP2017517978A JP 2017517978 A JP2017517978 A JP 2017517978A JP 2016571197 A JP2016571197 A JP 2016571197A JP 2016571197 A JP2016571197 A JP 2016571197A JP 2017517978 A JP2017517978 A JP 2017517978A
Authority
JP
Japan
Prior art keywords
noc
readable medium
transitory computer
information
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016571197A
Other languages
English (en)
Other versions
JP2017517978A5 (ja
JP6353084B2 (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 JP2017517978A publication Critical patent/JP2017517978A/ja
Publication of JP2017517978A5 publication Critical patent/JP2017517978A5/ja
Application granted granted Critical
Publication of JP6353084B2 publication Critical patent/JP6353084B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • 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/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • 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
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • 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/109Integrated on microchip, e.g. switch-on-chip

Landscapes

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

Abstract

本明細書に開示された実施例は、NoCを生成及び最適化するための情報を有する統合された仕様に関する。当該統合された仕様は、トラフィック・トレース・ファイルの生成を容易にすることもできる。当該トレース・ファイルに基づいて、NoCにパケットが投入される性能シミュレーションが実施され得る。当該統合された仕様は、バンド幅、トラフィック、ジッタ、依存関係情報及び所望の実施形態に依存する属性情報に関するパラメータを含み得る。

Description

本明細書に記載の方法及び実施例は、インターコネクト(interconnect)アーキテクチャに関し、特に、NoCの設計及びシミュレーションに使用され得るトランザクショナル・トラフィック仕様(transactional traffic specification)に関する。
チップ上のコンポーネントの数は、高集積度化、システムの複雑化及びトランジスタ寸法の小型化によって急激に増加している。複雑なシステムオンチップ(SoCs:System-on-Chips)は、例えば、プロセッサコア、DSP、ハードウェアアクセラレータ、メモリ及びI/Oのような様々なコンポーネントを含んでいてもよい。その一方で、チップマルチプロセッサ(CMPs:Chip Multi-Processors)は、多数の同種のプロセッサコア、メモリ及びI/Oサブシステムを有していてもよい。SoC及びCMPの両方のシステムにおいて、チップ上のインターコネクトは、様々なコンポーネント間の高パフォーマンス通信をもたらす上で役割を果たす。従来のバス及びクロスバーベースのインターコネクトの寸法的な制限の故に、チップ上の多数のコンポーネントをインターコネクト(相互接続)する対応策としてネットワークオンチップ(NoC)が登場している。NoCは、ポイント・トゥー・ポイント(point-to-point)物理リンクを用いて互いに相互接続されている複数のルーティングノードによって形成されている世界共通の通信インフラストラクチャーである。
メッセージは送信元(source)から入れられて、当該送信元ノードから複数の中間ノード及び物理リンクを通って送信先(destination)に送信される。その後、送信先のノードは、当該メッセージを排出し、当該メッセージを送信先にもたらす。以下、用語「コンポーネント」、「ブロック」、「ホスト」または「コア」は、NoCを用いて相互接続されている様々なシステムコンポーネントに言及する際に、互いに置き換え可能に区別無く用いられる。用語「ルータ」及び「ノード」も、互いに置き換え可能に区別無く用いられる。一般化の喪失なしに、相互接続されている複数のコンポーネントを有するシステム自体は、「マルチコアシステム」と称される。
ルータが互いに接続してシステムネットワークを形成することが可能な、複数の実現可能なトポロジーがある。双方向リング(図1(a)に示すようなもの)、2−D(2次元)メッシュ(図1(b)に示すようなもの)及び2−Dトーラス(図1(c)に示すようなもの)は、関連技術におけるトポロジーの例である。メッシュ及びトーラスは、2.5−D(2.5次元)または3−D(3次元)構造にも拡張され得る。図1(d)は、3−DメッシュNoCが示されている。図1(d)においては、3層(3レイヤ)の3×3の2DメッシュNoCが互いに重ねられて示されている。NoCルータは、2以下の追加ポートを有しており、その一方が上層レイヤに接続されており、他方が下層レイヤに接続されている。この例の中間層レイヤ内のルータ111は、両方のポートを有しており、一方が上層レイヤ内のルータに接続されており、他方が下層レイヤ内のルータに接続されている。ルータ110及び112は、下層メッシュレイヤ及び上層メッシュレイヤの各々配されている。従って、ルータ110及び112は、それぞれ接続されているアッパーフェーシングポート(upper facing port)113及びロアーフェーシングポート(lower facing port)のみを有している。
パケットは、様々なコンポーネント間の相互通信のメッセージ伝送単位である。ルーティングは、パケットが送信元から送信先に送信されるネットワークのルータ及び物理リンクのセットからなる経路(パス)の特定を含む。コンポーネントは、1または複数のルータの1または複数のポートに接続されており、これらのポートの各々は独自のIDを有している。パケットは、中間ルータによって用いられる送信先のルータ及びポートのID情報を有しており、それによってパケットが送信先コンポーネントにルーティングされる。
ルーティング技術の例には、全てのパケットに対してAからBへの同一の経路を選択することを伴う決定論的ルーティングを含む。このルーティング形式は、ネットワークの状態に依存しないものであり、アンダーレイネットワーク(underlying network)に存在するであろうパスダイバーシティ(pass diversities)に亘る負荷をバランシングしないものである。しかし、このような決定論的ルーティングは、ハードウェアに実装され得、パケットの順序を維持し、ネットワークレベルデッドロック(network level deadlocks)が無くなり得る。最短経路ルーティングは、遅延を最小化する。なぜならば、このようなルーティングは、送信元から送信先へのホップの数を減少させるからである。このため、最短経路は、2つのコンポーネントの間の通信に関して最も低パワーの経路でもあり得る。次元オーダールーティング(Dimension-order routing)は、2−D、2.5−D及び3−Dメッシュネットワーク内の決定論的最短経路ルーティングの1つの形式である。このルーティングスキームにおいて、メッセージは、当該メッセージが最終的な送信先に到達するまで特定の順序で座標(coordinates)の各々に沿ってルーティングされる。例えば、3−Dメッシュネットワークにおいて、あるものは、最初に、送信先ルータのX座標と同一のX座標のルータに到達するまでX次元(X dimension)に沿ってルーティングし得る。次に、メッセージは方向転換してY次元(Y dimension)に沿ってルーティングされ、最終的にもう1つの方向転換をし、メッセージが最終的な送信先ルータに到達するまでZ次元に沿って移動する。次元順ルーティングは、最少の方向転換かつ最短経路のルーティングであり得る。
図2(a)は、2次元メッシュ内のXYルーティングの一例を図解で示している。さらに具体的には、図2は、ノード「34」からノード「00」までのXYルーティングを示している。図2(a)の例において、コンポーネントの各々は、1つのルータの1つのポートのみに接続されている。パケットは、最初に、当該パケットが、X座標が送信先のX座標と同一であるノード「04」に達するまでX軸に亘ってルーティングされる。次に、当該パケットは、当該パケットが送信先ノードに達するまでY軸に亘ってルーティングされる。
1もしくは複数のルータまたは1もしくは複数のリンクが存在しない不均一メッシュトポロジー(heterogeneous mesh topology)において、次元順ルーティングは、特定の送信元及び送信先ノード間において不可能であり得、代替経路が取られなければならない。この代替経路は最短または最少の方向転換のものでないであろう。
ソースルーティング及びテーブルを用いたルーティングは、NoCにおいて用いられる他のルーティングの例である。アダプティブルーティングは、ネットワークの状態に応じてネットワーク上の2つの点の間で取られる経路を動的に変更し得る。このルーティングの形式は、分析及び実装するには複雑であり得る。
NoCインターコネクトは、複数の物理的ネットワークを含んでいてもよい。物理ネットワークの各々に亘って複数の仮想ネットワークが存在してもよく、様々なタイプのメッセージが様々な仮想ネットワークを通じて伝送される。この場合、物理リンクまたはチャネルの各々において、複数の仮想チャネルが存在する。この複数の仮想チャネルの各々は、両終点(end points)において専用のバッファを有していてもよい。任意の所定のクロックサイクルにおいて、1つの仮想チャネルのみが物理チャネル上でデータを伝送可能である。
NoCインターコネクトは、しばしばワームホールルーティングを用いる。ワームホールルーティングにおいて、大きなメッセージまたはパケットは、フリット(flit)(フローコントロールディジット(flow control digits)とも称される)として知られる小さな欠片に分解される。最初のフリットはヘッダフリットであり、ペイロードデータ(payload data)と共にそのパケットのルートの情報及びキーメッセージレベルの情報を保持し、当該メッセージに付随している後続の全てのフリットのルーティング態様を定める。任意的に、1または複数のボディフリットは、ヘッドフリットに続いており、データの残りのペイロードを含んでいる。最後のフリットはテイルフリットであり、当該テイルフリットは、最後のペイロードを包含しているのに加えて、当該メッセージについての接続を閉じるためのブックキーピング(bookkeeping)の役割を果たす。ワームホールフローコントロールにおいて、仮想チャネルがしばしば実装されている。
物理チャネルは、仮想チャネル(VCs)と称される独立した多数の論理チャネルに時分割化(time slice)される。VCsは、ルートパケットに複数の独立した経路をもたらすが、これらの経路は、物理チャネルにおいて時間多重化される。仮想チャネルは、チャネルに亘ってパケットのフリットの取り扱いを調整するために必要なステート(state)を保持する。少なくとも、このステートは、ルートのネクストホップに関する現在ノードの出力チャネル及び仮想チャネルの状態(アイドル、リソース待ち、またはアクティブ)を特定する。当該仮想チャネルは、パケットのうちの現在ノードにおいてバッファリングされているフリット及び次のノードにおいて利用できるフリットバッファの数へのポインタを含んでもよい。
「ワームホール」は、メッセージがチャネルに亘って伝送される経路において役割を果たす。すなわち、次のルータにおける出力ポートを短くでき、全てのメッセージが到来する前に受信データがヘッドフリットに変換され得る。このことは、ヘッドフリットの到来時においてルータが迅速にルートを定め、その後、後のやりとりからオプトアウト(opt out)することを可能にする。メッセージがフリット毎に伝送されるため、当該メッセージはその経路に沿って異なったルータにおいていくつかのフリットバッファを占有してもよく、これがワームのようなイメージをもたらす。
様々なエンドポイント、並びに様々なメッセージのために用いられる経路及び物理ネットワーク間のトラフィックに基づいて、NoCインターコネクトの様々な物理チャネルが様々なレベルの負荷状態下及び混雑状態下に置かれ得る。NoCインターコネクトの様々な物理チャネルの容量は、チャネルの幅(物理的な線の数)及び当該チャネルが動作するクロック周波数によって決定される。NoCの様々なチャネルは、異なったクロック周波数で動作してもよく、かつ様々なチャネルはそのチャネルのバンド幅要求に基づいて異なった幅を有していてもよい。チャネルにおけるバンド幅要求は、そのチャネルを通るフロー及びバンド幅値によって判定される。様々なNoCチャネルに亘って通過するフローは、様々なフローによって取られるルートによって影響を受ける。メッシュまたはトーラスNoCにおいて、送信元ノード及び送信先ノードのペアの間で長さのまたはホップ数の等しい複数のルートが存在し得る。例えば、図2(b)において、ノード34とノード00との間の標準的なXYルートに加えて、YXルート203または送信元から送信先までの間に2以上の方向転換を行うマルチターン(multi-turn)ルート202のような更なるルートが利用可能である。
様々なトラフィックフローに対して静的に割り当てられる経路を有するNoCにおいて、様々なチャネルにおける負荷は、様々なフローに対してルートをインテリジェントに選択することによって調整されてもよい。多数のトラフィックフロー及び相当なパスダイバーシティが存在する場合、経路は、全てのNoCチャネル上の負荷がほとんど均一にバランスされるように選択され得、一点でのボトルネックの発生が防止される。一度ルーティングがなされると、NoCのチャネル幅は、当該チャネルにおけるフローのバンド幅要求に基づいて判定され得る。残念ながら、チャネル幅は、タイミングまたは配線の過密等の物理的なハードウェアデザインの制約の故に、勝手に大きくすることができない。最大チャネル幅があり得るので、単一のNoCチャネルの最大バンド幅に限定がかかる。
さらに、メッセージが短い場合、物理チャネルの拡幅は、大きいバンド幅を達成することに貢献しないこともある。例えば、パケットが64ビット幅を有する単一のフリットパケットである場合、どんなにチャネルが広くても、当該チャネルを通る全てのパケットが同一であれば、当該チャネルはデータサイクル毎に64ビットしか伝送できないだろう。従って、チャネル幅は、NoC内のメッセージのサイズによっても制限される。NoCチャネルの最大幅におけるこれらの制限の故に、チャネルはルートのバランシングにもかかわらず十分なバンド幅を持たないだろう。
上述のバンド幅の問題を解決するために、マルチ並列物理NoCs(multi parallel physical NoCs)が使用されてもよい。NoCの各々はレイヤと称されてもよく、マルチレイヤNoCアーキテクチャが形成される。ホストは、NoCレイヤにメッセージを投入する。その後、当該メッセージは、NoCレイヤ上の送信先に向けてルーティングされる。ここで、当該メッセージは当該NoCレイヤから当該ホストに送信される。従って、レイヤの各々は、多かれ少なかれ互いに独立して動作し、レイヤ間のやりとりは投入ないし排出時にのみに発生してもよい。図3(a)は、2レイヤのNoCを示している。この図において、2つのNoCレイヤは、左と右に互いに隣り合って示されており、ホストが左図及び右図の両方において複製されているNoCに接続されている。1つのホストは、異なるレイヤの2つのルータに接続されている。例えば第1のレイヤ内のホストに接続されたルータはR1として示され、第2のレイヤ内で同じホストに接続されたルータはR2として示されている。この例において、マルチレイヤNoCは、3DNoCとは異なる。この場合、マルチレイヤは単一のシリコンダイ上にあり、同一のシリコンダイ上のホスト間の通信の高いバンド幅要求を満たすために用いられる。メッセージは、一方のレイヤから他方のレイヤには行かない。明確にするために、本願では、マルチレイヤNoCに関して水平面内の左図と右図を用いて、垂直方向に互いに重ねて示される3DNoCと区別する。
図3(b)において、レイヤの各々のルータR1及びR2にそれぞれ接続されているホストが示されている。ルータの各々は、ディレクショナルポート(directional ports)301を用いてレイヤ内において他のルータと接続されており、投入及び排出ポート(injection and ejection ports)302を用いてホストに接続されている。ブリッジ論理回路(bridge-logic)303は、ホストと2つのNoCレイヤとの間にあって、送出されるメッセージのためのNoCレイヤを判定してもよく、当該メッセージをホストからNoCレイヤに送信し、かつ当該2つのNoCレイヤから入ってくるメッセージ間のアービトレーション(arbitration)及び多重化(multiplexing)を行ってこれらをホストに送信する。
マルチレイヤNoCにおいて、必要とされるレイヤの数は、システム内の全てのトラフィックフローの合計バンド幅要求、様々なフローによって用いられるルータ、メッセージサイズ分布、最大チャネル幅等のような因子の数に依存してもよい。設計においてNoCインターコネクト内のNoCレイヤの数が決定されると、様々なメッセージ及びトラフィックフローが異なったNoCレイヤに亘ってルーティングされてもよい。追加的に、異なったレイヤが、ルータ、チャネル及び接続性の数において異なったトポロジー(topologies)を有するようにNoCインターコネクトを設計することもできる。様々なレイヤ内のチャネルは、チャネルに亘って移動するフロー及びそのバンド幅要求に基づいた異なった幅を有してもよい。このように多様性に富んだ設計事項によって、所定のシステムに関してルータ、チャネル及び接続性の適切な組合せを決定することは依然として困難かつ時間を浪費するマニュアルプロセスであり、次善又は効果的でない結果に終わることも多い。
ますます多くの標準プロセッサコア、メモリ&I/Oサブシステム、及び特殊な高速化IPを融合させることにより、システムオンチップ(SoCs)は、次第に洗練され、機能豊富になり、高性能化されつつある。この複雑さに対処するため、SoCのコンポーネントを接続するネットワークオンチップ(NoC)の手法が好評を博している。NoCは、多数のコンポーネント及びインターフェースに接続性をもたらすことができ、加えて同時にハイレベルの仕様(specification)(スペック)から自動的に生成されることによって迅速な設計終了を可能にする。当該仕様は、接続性、バンド幅及び遅延に関してSoCのインターコネクト要求を描写する。これに加えて、例えば、様々なコンポーネントの位置、プロトコル情報、クロッキング及びパワードメインなどの情報が供給されても良い。NoCコンパイラはその後、この仕様を使用してSoCに関するNoCを自動的に設計することができる。当該技術分野において、自動的にNoCを合成してトラフィック仕様(traffic specification)に適合させる多数のNoCコンパイラが導入された。このような設計フローにおいて、合成されたNoCはシミュレーションされて、様々な動作環境下のパフォーマンスが評価され、当該仕様が対応するか否かが判定される。このことは、以下のような理由で必要であり得る。NoCスタイルのインターコネクトは分散型のシステムであり、当該インターコネクトの負荷の下での動的なパフォーマンス特性は静的な予見が困難であり、多岐にわたるパラメータに非常に敏感であり得る、という理由である。
図4は、2つのホストと2つのフローとを有する実施例のシステム400をフローレベル仕様(flow-level specification)として示している。このようなフローレベル仕様は通常、エッジ重み付き有向グラフ(edge-weighted digraph)の形式であり、グラフ内の各ノードはネットワークにおいてホストであり、エッジは、1つのノードから他のノードへ送られるトラフィックを表わしている。さらに、重みはトラフィックのバンド幅を表わしている。このような仕様は時々、それぞれのフローへのレイテンシ要求(latency requirement)によって注釈を付けられ、伝達時間の制限を示す。システム400はCPU40のような第1のホストとメモリユニット404のような第2のホストとの間の接続を、当該間の2つのトラフィックフロー(406及び408)によって示す。第1のフローはCPU402からメモリ404への「ロードリクエスト」406であり、第2のフローはメモリ404からCPU402に返送される「ロードデータ」408である。
このトラフィックフロー情報は、NoCの仕様内に記述され、NoCの設計及びシミュレーションに使用される。当該フローレベルの情報を記述する仕様は、以降、フローレベル仕様と称され得る。公知のフローレベル仕様は、他の引用しない制限に加えて、下記の2つの制限を有し得る。公知のフローレベル仕様の第1の制限は、当該仕様に含まれる情報が、NoCを通じSoCのホスト間のデッドロックフリールーティングを定めるのに不十分であり得ることである。当該フローレベル仕様は、様々なホストのポート間の外部依存性(external dependencies)に関する情報を含んでいるものの、ホストの内部依存関係(internal dependencies)及び/又はメッセージ/パケットは含まれていない。フローレベル仕様の第1の制限は、ポイント・トゥー・ポイントのトラフィックを使用して実行されるネットワークシミュレーションは、フロー・イン・フローレベルの仕様に代表され、相互依存情報などの他の欠落した情報の故に十分に効果的ではないか又は不正確であり得ることである。フローベースのシミュレーションは、各ホストが他のホストの挙動から独立してパケットを送信することを可能にする。リクエスト/応答プロトコルによって引き起こされるトラフィックの相関は、ネットワーク挙動に重大な影響を与え得る。
従って、NoCには、トラフィックフロー情報を含む仕様を提供することができ、より良い設計及びシミュレーションを容易にすることが要求される。また、統合されたNoC仕様、設計及びパフォーマンス評価のためにトラフィック仕様を利用してトラフィックのバンド幅及びレイテンシを特定し、メッセージ間の相互依存関係も同様に特定し、相互依存関係をキャプチャするトランザクションベースの仕様が必要とされている。トラフィックはトランザクションとして特定され、各々のトランザクションは多数のポイント・トゥー・ポイントのホップを有する。
本願は、ネットワークオンチップ(NoC)ベースのシステムをトランザクショナル・トラフィック仕様から生成/開発/設計することに関する命令(Instruction)を格納する非一時的(non-transitory)なコンピュータ読み取り可能な記憶媒体に関する。ある態様において、このようなトランザクショナル・トラフィック仕様は、NoCベースのシステムの設計及び性能シミュレーションを容易にするように設定された情報を示す複数のパラメータを含み得る。1つの実施例において、NoCベースのシステムのNoCは当該トランザクショナル・トラフィック仕様から、仕様要求を満たして生成され得る。
1つの実施例において、トランザクショナル・トラフィック仕様は、NoCを生成し最適化するための情報を提供することができ、既存技術におけるフローレベル仕様のフローレベルエントリと比較した場合にトランザクションベースのエントリを含み得る。このようなトランザクショナル・トラフィック仕様は、複数のパラメータと、接続性、依存関係、バンド幅、レイテンシ、トラフィック・ジッタ(traffic jitter)、属性(attribute) に関する情報及びNoCの設計及び/又はシミュレーションに使用され得る他の必要な情報を示し/定義する情報と、を含み得る。
本願の開示の1つの実施例は、トランザクション・トラフィック仕様を使用してNoC設計及びシミュレーション向けのシステムを提供する。また、本願の開示の1つの実施例は、トラフィック・トレース・ファイルの生成を容易にし得るトランザクショナル・トラフィック仕様を提供することができる。当該トラフィック・トレース・ファイルに基づいて、設計性能シミュレーションが実行され得る。
実施例に関する上述の及び他の目的、特徴及び利益は、添付の図面と共に以下に示す実施例のより具体的な記載によって明白となるであろう。当該図面内の同様の参照番号は、概して同様の部分を表わす。
図1(a)は、双方向リングNoCトポロジーの例を示す図である。 図1(b)は、2DメッシュNoCトポロジーの例を示す図である。 図1(c)は、2DトーラスNoCトポロジーの例を示す図である。 図1(d)は、3DメッシュNoCトポロジーの例を示す図である。 図2(a)は、関連技術の双方向メッシュにおけるXYルーティングの一例を示す図である。 図2(b)は、送信元ノードと送信先ノードとの間の3つの異なったルートを示す図である。 図3(a)は、関連技術の2レイヤNoCインターコネクトの一例を示す図である。 図3(b)は、関連技術におけるホストと複数のNoCレイヤとの間のブリッジ論理回路を示す図である。 図4(a)は、典型的なフローレベル仕様に従って表わされた2つのホスト及び2つのフローを有する典型的なシステムを示す図である。 図4(b)は、本願の実施例による2つのホスト間の2つのフローを1つのトランザクションとして有する典型的なシステムを示す図である。 図5は、本願の実施例によるホスト間のトランザクションを示す図である。 図6(a)は、トランザクション向けに構築されたチェーンの例を示す図である。 図6(b)は、本願の実施例によるチェーン生成アルゴリズムを使用してつくられたトランザクション・チェーンの例を示す図である。 図7は、実施例が実装され得るコンピュータシステムの例を示す図である。
以下の詳細な説明は、本出願の図面及び実施例のさらなる詳細を提供するものである。図面間で重複する要素の参照符号及び説明は、明確性のために省略される。明細書に亘って使用される用語は、例示であり、限定することを意図したものではない。例えば、用語「自動的(automatic)」の使用は、本出願の実施例を実施する当業者の所望の実施に基づいて、完全に自動的な実行または特定の実装形態に亘るユーザまたは管理者の制御を含む半自動的な実行を含んでもよい。
本明細書に記載の実施例は、複数のパラメータを含むトランザクショナル・トラフィック仕様からネットワークオンチップ(NoC)ベースのシステムを生成/開発/設計するための命令を格納する非一時的コンピュータ可読媒体に関する。1つの実施例において、トランザクショナル・トラフィック仕様は、NoCベースのシステムの性能シミュレーションを容易にするように構成された情報を示す複数のパラメータを含み得る。NoCベースのシステムのNoCは当該仕様から、仕様要求を満たして生成され得る。
本明細書に記載の実施例は、NoCを生成し最適化するための情報を含むトランザクショナル・トラフィック仕様に関する。そのようなトランザクショナル・トラフィック仕様は、統合されたNoC仕様、設計、及び性能評価向けのトラフィック仕様を利用することができる。当該トランザクショナル・トラフィック仕様は、フローレベル仕様内のフローレベルエントリと比較した場合に1つ以上のトランザクションベースのエントリを含む。トランザクショナル・トラフィック仕様はさらに、限定するものではないが、接続性、依存関係、バンド幅、レイテンシ、トラフィック・ジッタ、属性に関する情報及びNoCの設計及び/又はシミュレーションに使用され得る他の必要な情報を含む情報を含み得る。また、トランザクショナル・トラフィック仕様は、トラフィック・トレース・ファイルの生成を容易にすることができる。当該トラフィック・トレース・ファイルに基づいて、パケットがNoCにインジェクトされる性能シミュレーションが遂行され得る。
提案されるシステムの実施例は、トランザクショナル・トラフィック仕様を備えるNoCを開示する。当該仕様は、NoCのより良い設計若しくはシミュレーション及びその性能/動作に使用され得る。
上述のように、上記した実施例において、NoCトラフィック要求は、フローレベル仕様を用いて特定される。これらのタイプの仕様は通常、エッジ重み付き有向グラフの形式で表され、グラフ中の各々のノードは、ネットワーク内のホストである。エッジ重み付き有向グラフの各々のエッジは、1のノードからもう1つのノードに送られるトラフィックを表わし、重みは当該トラフィックのバンド幅を示す。このタイプの仕様は時々、各々のフローへのレイテンシ要求で注釈がつけられ、転送時間の制限を示す。
本明細書に記載の実施例は、トランザクションベースのトラフィック仕様に関し、当該仕様は、バンド幅及びトラフィックのレイテンシを特定することができ、また、メッセージ及び/又はホスト間の内部依存関係を特定することができる。内部依存関係をキャプチャするために、トラフィックはトランザクションとして特定され得、各々のトランザクションは多数のポイント・トゥー・ポイントのホップ及び内部依存関係を有する。実施例はさらに、処理を実行するための命令を格納する非一時的コンピュータ可読媒体に関し、当該命令はネットワークオンチップ(NoC)ベースのシステムを仕様から生成するステップを含む。当該提案される仕様は、NoCベースのシステムの性能シミュレーションを容易にするように構成された情報を示す複数のパラメータを含み得る。当該NoCベースのシステムのNoCは仕様から生成され得、仕様要求を満たす。
1つの実施例において、当該複数のパラメータは、NoCの接続性情報(connectivity information)、依存関係情報(dependency information)、バンド幅情報(bandwidth information)及び属性情報(attribute information)の1つ又は組み合わせを含み得る。1つの実施例において、バンド幅情報は、特定時間(specified period of time)のアイソクロナス・トラフィック(isochronous traffic)のためのバンド幅を保証する1つ以上のパラメータを含み得る。当該バンド幅情報はさらに、トラフィック・ジッタを示す1つ以上のパラメータを含み得る。依存関係情報は、NoCの複数の要素間の、又はNoC内の複数のメッセージ間の依存関係を示し得る。また、依存関係情報は、NoCの複数の要素間の、又はNoC内の複数のメッセージ間の非依存関係を示し得る。
1つの実施例において、バンド幅の情報は、1つ以上のトランザクションのメッセージのバンド幅要求、1つ以上のトランザクションのメッセージのサービスのクオリティ(クオリティ・オブ・サービス:quality of service)要求、1つ以上のトランザクションのメッセージのレイテンシ要求、及び1つ以上のトランザクションのレイテンシ要求の1つ又は組み合わせを含み得る。他の実施例において、接続性情報は、NoCベースのシステムのトラフィックシミュレーションを示すNoCベースのシステムの1つ以上のメッセージに関するトランザクション情報、NoCのメッセージ伝送に関するプロトコル情報、及びNoCのメッセージに関するシーケンスを示すオーダ情報のうちの1つ又は組み合わせを含み得る。一方で、トランザクション情報は、1つの実施例において、1つ以上のトランザクションを含み得る。当該1つ以上のトランザクションの各々は、ホップのシーケンスを示し得る。当該ホップのシーケンスのホップの各々は、送信元エージェント(source agent)から送信先エージェント(destination agent)への1つ以上のメッセージを示し得る。NoCの生成は、トランザクション情報に基づいてNoCベースのシステムを構成して、1つ以上のトランザクションの各々に関するホップのシーケンスに従って送信元エージェントから送信先エージェントへの各々のホップに関する1つ以上のメッセージを伝送することを含み得る。他の実施例において、トランザクション情報は、1つ以上のトランザクションの少なくとも1つのサブセットに関するシステムレベルシミュレーションを容易にするように構成され得る。属性情報は、1つの実施例において、1つ以上のトランザクションのメッセージのサイズ、1つ以上のトランザクションのメッセージの優先度、1つ以上のトランザクションのメッセージのQoS(Quality of Service)、及び1つ以上のトランザクションのメッセージのオーダリング要求(ordering requirements)、のうちの1つ又は組み合わせを含むメッセージ属性情報を含み得る。本明細書に記載のシステムは、当該仕様の当該複数のパラメータに基づいてのNoCのシミュレーションを含み得る。本明細書に記載のシステムは、さらに、シミュレーションを実行するための仕様の複数のパラメータからトラフィック・トレース・データベース(traffic trace database)を生成することを含み得る。当該データベースは1つ以上のトラフィック・トレース・ファイル(traffic trace file)を含み得、当該トラフィック・トレース・ファイルの各々は、トランザクションを開始するための情報を示し得る。トランザクションを開始するためのそのような情報は、当該仕様の当該複数のパラメータに基づいて決定され得る。さらに、本明細書に記載の命令及び/又はシステムは、複数のパラメータ及び1つの統計モデルに基づいて、複数のトランザクションから1つのトランザクションを選択することを含み得る。
他の実施例において、バンド幅情報は、トランザクションのレート(rate)、トランザクションのメッセージのレート、及びNoCベースのシステムの1つ以上のホストのレートのうちの1つ又は組み合わせを含み得る。
1つの実施例において、本願の発明の開示は、仕様から構成されたネットワークオンチップ(NoC)ベースのシステムをさらに含み得る。そのような仕様は複数のパラメータを含み得る。当該複数のパラメータは、NoCベースのシステムの性能シミュレーションを容易にするように構成された情報を示し得る。当該NoCベースのシステムのNoCは、当該仕様から生成されて仕様要求を満たす。当該複数のパラメータは、限定するものではないが、NoCの接続性情報、依存関係情報、バンド幅情報及び属性情報のうちの1つ又は組み合わせを含み得る。バンド幅情報は、特定時間のアイソクロナス・トラフィックのバンド幅を保証するための1つ以上のパラメータを含み得る。バンド幅情報は、トラフィック・ジッタを示す1つ以上のパラメータをさらに含み得る。
図4(b)は、452及び454の2つのホスト間の2つのフローを本願の実施態様による単一のトランザクション456として示す模式図450を表わしている。従って、図4(a)の2つのフローは、単一のトランザクションとして表わされ得る。1つの実施例において、二つのホップ間の単一のトランザクションとして表わすことによって、当該仕様は2つのメッセージ間の関係を保持する。1つの実施例において、当該仕様は、そのような2つ以上のホスト間のトランザクションのコレクション(collection)を含み得る。
フローレベル仕様の代わりに、トランザクションベースのエントリをトラフィック仕様に使用してトラフィックを特定することは、上述の及び他の既知の、フローレベルトラフィック仕様の制限を克服することを補助する。トランザクションベースのエントリを用いて設計された仕様は、区別されずにトランザクショナル・トラフィック仕様とも称され得ることは、十分に理解されるであろう。トランザクショナル・トラフィック仕様を用いることは、ソースルーティングされたシステムにおいて、デッドロックが回避されることを可能にする。当該システムにおいて、デッドロック防止アルゴリズムは、トランザクションのホップ間で暗黙的にエンコードされた内部依存関係を用いることができ、デッドロックフリーのNoC設計を構築し得る。また、NoCのより一層正確なシミュレーションを可能にする。リクエストの到来によってトリガされる応答メッセージを有することは、単純化された仕様に起因してより複雑なトラフィック挙動を可能とする。さらに、トランザクショナル・シミュレーションは、潜在的なシステムボトルネック及び単純なポイント・トゥー・ポイントのトラフィックモデルにおいては検出されないデッドロックの問題をハイライトし得る。現実世界のSoC仕様及びワークロード(workload)に関する広範な評価を通じて、実施例の仕様を含むシミュレーションは、迅速な設計及び評価の反復を継続する単純なポイント・トゥー・ポイントのNoCシミュレーションと比較した場合に、NoCの性能をより一層効果的に評価し得る。仕様の実施例は、NoCのトラフィック要求のハイレベルの実態を提供し得る。当該仕様の言語は、アーキテクトがマルチホップ・トランザクションのグループの構造を記述することを可能にし得る。加えて、当該仕様の言語は、当該トランザクション全体におけるプロパティと、同様に、当該トランザクションのホップの各々のプロパティと、の両方をサポートし得る。
1つの実施例において、トランザクショナル・トラフィック仕様は、本明細書において、以降トランザクション・トラフィック仕様とも称し、NoCの設計、開発及び最適化に用いられ得るトランザクショナル情報を含み得る。当該トランザクショナル・トラフィック仕様は、トラフィック・トレース・ファイルの生成にも用いられ得る。図4(a)に示すように、従来の仕様は、エージェント間の対の(ポイント・トゥー・ポイントの)接続性の表示を提供してNoCトラフィックを特定するのみである。しかしながら、ホスト間に要求される接続性は常にポイント・トゥー・ポイントではないであろう。すなわち、パケットは常にホストからホストへ直接伝送されないであろう。しかし、当該接続性は、多数のホスト又は間に含まれるホストを有し得、多数の依存関係を創造し得る。また、多数のパケット/メッセージ自体が相互依存関係を有する可能性もある。上述したように、既知のNoCインターコネクト・システムは、送信元ホスト、1つ以上の中間ホスト(intermediate host)、及び送信先ホストを含み得る。例示において、当該送信元ホスト自体が当該送信先ホストである可能性もあり、また一方では、トランザクションを完成させるためには、多数の中間ホストがなお必要とされ得る。当該トランザクショナル・トラフィック仕様は、相互依存関係、中間ホップ(intermediate hop)及びそのステータスといった、現存する(先行技術の)フローレベル仕様に欠けている全てのトランザクション情報を含み得る。
1つの実施例において、トランザクショナル・トラフィック仕様は、接続性、ホスト/ホップ間の相互依存関係、メッセージ/パケット/フリット間の相互依存関係、バンド幅、レイテンシ、及びNoCトラフィックに関する他の記述の間のメッセージ属性に関する情報を含み得る。依存関係情報は、例えば、ブロックされた/失敗した場合に送信元から送信先へのトランザクションを停止及び/又は妨害する中継的なホップを記述し得る。他の実施例において、依存関係は、適切な方法を用いて決定され得る。例えば、メッセージのシーケンスを解析することによって決定され得る。トラフィック仕様の記述は、方法に関して、例えば、送信元は中間ホップに依存して、といったことに関する明確な依存関係情報を含み得る。又は、ある場合には、当該トラフィック仕様の記述は、メッセージ/パケット/フリット及び/又は中間ホップ間の非依存性を明確に記述し得る。
他の実施例において、トランザクショナル・トラフィック仕様は、例えば、メッセージ・レイテンシ、トランザクショナル・レイテンシ、各々のホップ及び/又はトランザクション全体の実行レイテンシなどのバンド幅及び/又はレイテンシに関する記述を含む。他の実施例において、レイテンシは、上述したような1つ以上の相互依存関係に基づき得る。バンド幅の記述は、各々のホスト及びホップ間のバンド幅要求及び全トランザクションへの総合的なバンド幅要求を包含し得る。当該バンド幅の記述は、異なるホップ間及びNoC上のホスト間のリンクのサイズに関する情報を含み得る。当該トラフィック仕様は、メッセージ属性に関する記述、例えば、メッセージのサイズ、メッセージの優先度、メッセージの種類、メッセージの品質及び他のメッセージに関する仕様情報をさらに含み得る。類似の属性、例えば、サイズ、優先度、種類及び品質は、パケット及び/又はパケットのフリットの各々にも定義され得る。
他の実施例において、ソースルーティングされたシステムにおいて、トランザクショナル・トラフィック仕様を用いて、潜在的なトラフィック・デッドロックを防ぎ得る。これは、当該トランザクショナル・トラフィック仕様がメーセージ及び/又はNoCホスト間の内部依存関係に関する詳細と共にトランザクション・レベル仕様を含むからである。1つの実施例において、デッドロック防止アルゴリズムは、当該トランザクショナル・トラフィック仕様において定義された内部依存関係を用い得る。当該トランザクショナル・トラフィック仕様は、トランザクションのホップ間で暗黙的にエンコードされてデッドロックフリーのNoC設計を構築する。1つの実施例において、トランザクショナル・トラフィック仕様は、NoCトラフィックのより正確なシミュレーションを得ることにも用いられ得る。トランザクショナル・トラフィック仕様を用いてのトランザクショナル・シミュレーションは、フローレベル仕様を用いてのシミュレーションではハイライトされ得ない、潜在的なシステムボトルネック及びデッドロック問題をハイライトし得る。
トランザクショナル・トラフィック仕様の実施例は、NoCのトラフィック要求のハイレベルの一覧/描写を提供し得る。仕様の言語は、アーキテクトがマルチ-ホップ・トランザクションのグループの構造を記述することを可能にし得る。加えて、当該仕様の言語は、当該トランザクション全体におけるプロパティと、同様に、当該トランザクションのホップの各々のプロパティと、の両方のプロパティをサポートし得る。
1つの実施例において、個別のトランザクショナル・トラフィック仕様がNoCを設計するために書かれ得る。また、個別のトランザクショナル・トラフィック仕様がNoCのシミュレーションをするために書かれ得る。
1つの実施において、現実世界のSoC仕様及びワークロードに関する広範な評価を通じて、実施例の仕様を含むシミュレーションは、迅速な設計及び評価の反復を継続する単純なポイント・トゥー・ポイントのNoCシミュレーションと比較した場合に、NoCの性能をより一層効果的に評価し得る。図5は、本願の開示の実施態様に従ったホスト間のトランザクションを示す。当該トランザクションは、システム500を参照して示されており、当該システム500は、2つの中央演算装置(central processing unit)であるCPU−1 504を及びCPU−2 504を有し、NoC上の2つのCPU502及び504の間に設けられたハードウェア・キャッシュ・コヒーレンス・モジュール506と共に示されている。1つの実施例において、モジュール506が要求されたデータを持っていない場合、キャッシュ・コヒーレンス・モジュール506は、キャッシュしたロードリクエスト508をCPU−1 502から受信し得る。加えて、キャッシュ・コヒーレンス・モジュール506は、スヌープ・リクエスト510をCPU−2 504に行う。要求されたデータがCPU−2 504のキャッシュ内にある場合、CPU−2 504はスヌープデータ512で応答し得る。当該スヌープデータ512は、キャッシュ・コヒーレンス・モジュール506によって受信され得、その後、CPU−1 502に送られる。メッセージの当該全体のシーケンスは、単一のトランザクション516として表わされ得、図5において1本の線によって表わされている。
1つの実施例において、トランザクションを記述するために、CPU 502及びCPU 504は、CPU_1及びCPU_2としてそれぞれ表わされ得る。また、キャッシュ・コヒーレンス・モジュール506は、当該仕様内の上記トランザクションを記述するためにCCとして表わされ得る。同様に、仕様内のトランザクションを記述する目的で、ロードリクエストの送出を担うポートはLDと称することができ、スヌープメッセージの送出を担うポートはSNと称することができ、スヌープ応答の受信を担うポートはSN_RESPと称することができ、ロードデータの受信を担うポートはLD_DATAと称することができる。従って、このトランザクションに関するメッセージのシーケンスは、以下のように記述される。
・pri 1 rates 0.05 0.1 latency 30 profile 0,1
・CPU_1/ID CPU_2/ID → beats 1 CC/LD/SN →
・beats 1 CPU_1/SN/SN_RESP CPU−2/SN/SN_RESP →
・beats 4 CC/SN_RESP/LD_DATA →
・beats 4 CPU_1/LD_DATA CPU_2/LD_DATA
上記のトランザクションの記述の例は、4つのプロパティを有する。当該4つのプロパティは、1)優先度、2)メッセージレート、3)レイテンシ・ターゲット及び4)対応するトラフィック・プロファイルである。当該トランザクションの記述の例において、「pri 1」はトランザクションの優先度を1として表わし得る。当該トランザクションにおいて、当該優先度の記述はルータにおける優先度ベースの属性に用いられ得る。「rate 0.05 0.01」は、どのくらいの頻度でこのトランザクションが開始されるかを示す2つのメッセージレートを表わすように設定され得る。この頻度は、サイクル毎のメッセージの数を単位として計測され得る。当該サイクル毎のメッセージの数は、インターフェース幅、メッセージ毎のフリットの数、及びNoCのクロックレートを乗じることによってバンド幅の値に変換され得る。この例では、レート0.05は平均レート0.05を表わすことができ、すなわち、20サイクル毎に1つのメッセージを表わし、レート0.1はピークレートを表わすことができ、すなわち、10サイクル毎に1つのメッセージを表わす。当該レートの記述は、ポートの容量を解析するために重要である。例えば、3ビートのメッセージは1/3以上のトランザクション・レートを有しており、ポートの容量を超過するであろう。
当該仕様内において、次に記述されるトランザクションプロパティは、レイテンシ・ターゲットである。レイテンシ・ターゲットは、仕様の例においては「レイテンシ(laytency) 30」と記述されており、要求されるシステム性能を達成するためのトランザクションに向けた所望の完了レイテンシを示している。トランザクションの例は30サイクルのレイテンシ・ターゲットを有し、これは、完了するために30サイクル以上要するとすれば、システムの性能に悪影響を及ぼすことを意味している。仕様において、トランザクションプロパティのうち最後に記述されるものはプロファイルであり、当該プロファイルにおいて各トランザクションは、例えば、多数のトラフィック・プロファイル又はトラフィック・モードの要素となり得る。1つのプロファイル内のトランザクションのみを駆動することによって、異なるトラフィック・モード間で容易に切り替えることができる。当該実施例においてさらに、トランザクショナル・トラフィック仕様は、異なるホップの入力及び出力のための2種類の記述を含み、1種類は送信元及び送信先の入力及び出力ポート向けであり、もう1種類は中間ホップの入力及び出力ポート向けである。例えば、最初のホップの送信元及び最後のホップの送信先は、ホスト/ポートとして特定され得、トランザクションに加わるであろうホスト及び使われるであろうそのポートを示し得る。当該トランザクションの例において、当該最初のホップは可能な2つのポート、CPU_1のLDポート又はCPU_2のLDポートのいずれかで開始し、その後、当該トランザクション仕様はそれをCPU_1/LD及びCPU_2/LDとして記述する。
1つの実施例において、中間ホップは、例えばCC/LD/SNのようにホスト/ポートとして特定され得る。第1のポートは受信ポートであり、例えばメッセージが受信され得るLDである。第2のポートは送信ポートSNであり、次のメッセージが中間ホップから伝送されるであろうポートである。当該記述は、1つのポート、すなわちLDにメッセージが到来したこと、もう一つのポート、すなわちSNによって送信されたことを示す。当該ポートは、いくつかのプロトコルがホップ内でポートの混合を可能にすることで、ホップの両端で特定され得る。
提案されるトランザクショナル・トラフィック仕様の1つの実施例において、トランザクション内のホップの各々は、例えば「ビート(beat)1」のようなビートプロパティを記述することができる。当該ビートプロパティは、完全なメッセージを作り上げるデータのチャンク/フリットの数を示す。これは、そのメッセージに関するパケット内のフリットの数を含み得る。例えば、ロード及びスヌープメッセージは、各々の1つのフリットであっても良く、一方でデータを伝えるスヌープ応答及びロードデータメッセージは、ビート(beat)4によって示されるように4フリットの長さであっても良い。対になったバンド幅のグラフは、トランザクショナル・トラフィック仕様の実施例から、レート及びポートの幅によるビートを乗ずることによって算出され得る。
1つの実施例において、トランザクションの記述は最適化され得、例えば、リクエスト、応答、関連するメッセージ及び1つのメッセージに関する記述を有するプロトコルを用いるトランザクションは、他のメッセージを作ることができる。そのような場合、両方のメッセージに関する記述は、当該仕様内で特定されることは必要とされないであろう。プロトコルの定義に基づいて、シーケンス内の他のメッセージが導出され得る。他の実施例において、ユーザは、メッセージ情報及びプロトコル仕様に基づいて生成され得る全記述に基づいて、トランザクションの部分的な記述を提供することができる。
1つの実施例において、メモリユニットにメッセージを送信するCPUのような一般的なパターンを有する多数のトランザクションは、トランザクショナル・トラフィック仕様において、トランザクション・チェーンとして記述され得る。トランザクショナル・トラフィック仕様におけるそのようなトランザクション・チェーンに関する記述は、マルチホップ・トランザクションの効果的なシミュレーションを可能にするために使用され得る。
[トラフィック・チェーン]
トランザクションは、各々のホップが単一の送信元/送信先を有するチェーンとして表わされ得る。シミュレーションの開始時に、全てのトランザクションをチェーンに変換することによって、送信されるべき次のメッセージが既に決まっており、ホストの稼働が迅速になり得る。1つのトランザクションを多数のチェーンに変換する単純な方法は、各ホップでのコンポーネントの可能な選択の各々に関してチェーンを作ることである。そのようなトランザクションは、図6(a)に示すようなチェーンを作ることができる。図6(a)は、コヒーレンシ・コントローラが、データを必要とするCPUをスヌープする理由が無いと記載されたシナリオに対応しないチェーン600の例を示す。加えて、当該コントローラは、データをリクエストしなかったCPUにデータを送るべきではない。図6(a)に示されるようなチェーンは、上述したようなトランザクション及び図5に表わしたようなトランザクションに関して構成され得る。図6(a)において、CPU−1 602−a及びCPU−1 602−bは、単一のCPUであり得、以降、集合的にCPU−1 602と称する。CPU−1 602−a及びCPU−1 602−bが2つの例として表わされている目的は、説明の目的のみである。同様に、キャッシュ・コヒーレンス・モジュール 604−a及びキャッシュ・コヒーレンス・モジュール 604−bは、単一のキャッシュ・コヒーレンス・モジュールであり得、以降、集合的にキャッシュ・コヒーレンス・モジュール 604と称する。当該キャッシュ・コヒーレンス・モジュール 604−a及び当該キャッシュ・コヒーレンス・モジュール 604−bが2つの例として表わされている目的は、説明の目的のみである。実施例において、CPU−1 602−aは、キャッシュ・コヒーレンス・モジュール 604−aにデータリクエストを送信することができ、キャッシュ・コヒーレンス・モジュール 604−aは、応答として、リクエストをCPU−1 602−bに返送することができる。その結果、誤解を生じる記述(misleading representation)を与え、実際にデータのリクエストを有していたCPU−1 602−(a)にデータを送信するか又は当該CPU−1 602−(a)にスヌープ・リクエストを送信することのいずれをも意味する。上述したように、本実施例において、代わりにスヌープ・リクエストはCPU-2 606に送信されるべきである。上述したトランザクションに関して、コヒーレンシ・コントローラ604がスヌープ・リクエストを、実際にデータをリクエストしていたCPU−1 602−(a)に返送する理由は無い。同様に、コヒーレンス・コントローラ604は、当該データを、データをリクエストしていなかったCPU-2 606に送信するべきではない。上記の創造されたトランザクション・チェーンは、当該トランザクションを明確に表現するものではない。従って、トランザクション・チェーンを適切に、誤解を生じる記述無しに生成するためには、トランザクション・トラフィック・チェーンを適切に表現することができるチェーン生成アルゴリズムが必要である。
1つの実施例は、実際のシステムが生成するであろうチェーンを生成するための、チェーン生成アルゴリズムを利用する。当該チェーン生成アルゴリズムは、リクエストと応答との区別を使用し、現在のメッセージの種類及び現在までに作られた部分的なチェーンに基づいて、現在のホップの不正な送信先を除外することができる。理想的には、リクエストは、まだ現在までに作られたチェーンの一部ではない新たな送信先に行くべきであり、同様に、例えば応答は、既に現在までに作られたチェーンの一部である送信先に行くべきである。
このアルゴリズムを当該トランザクションの例に適用すると、CPU−1で開始する1つのみのチェーンCPU−1:CPU−1→CC→CPU−2→CC→CPU−1が構成され得る。
図6(b)は、本願の実施例に従って、提案されるチェーン生成アルゴリズムを用いて作られた例示であるトランザクション・チェーン650を示す。CPU−1 652−a及びCPU−1 652−bは、単一のCPU−1であり、以降、集合的にCPU−1 652と称する。CPU−1 652−a及びCPU−1 652−bが2つの例として表わされている目的は、説明の目的のみである。同様に、キャッシュ・コヒーレンス・モジュール 654−a及びキャッシュ・コヒーレンス・モジュール 654−bは、単一のキャッシュ・コヒーレンス・モジュールであり、以降、集合的にキャッシュ・コヒーレンス・モジュール 654と称する。当該キャッシュ・コヒーレンス・モジュール 654−a及びキャッシュ・コヒーレンス・モジュール 654−bが2つの例として表わされている目的は、説明の目的のみである。実施例において、CPU−1 652−aは、本明細書において654−aと表わされているキャッシュ・コヒーレンス・モジュール 654にデータリクエストを送信することができ、次に、スヌープ・リクエストをCPU−2 656に送信することができる。当該CPU−2 656は、本明細書において654−bと表わされているキャッシュ・コヒーレンス・モジュール 654に、リクエストされたデータの入手可能性に関して返答する。当該キャッシュ・コヒーレンス・モジュール 654は、本明細書において654−bと表わされ、データを、本明細書において654−bと表わされるCPU−1 652に送信する。従って、CPU−1−>キャッシュ・コヒーレンシ・モジュール−>CPU−2−>キャッシュ・コヒーレンシ・モジュール−>CPU−1のようにチェーンが作り出される。
上述したように、キャッシュ・コヒーレンス・モジュール 654からのスヌープメッセージは、元々はCPU−1 652によって開始されたリクエストであり、CPU−1へ行くことはできない。また、ロードデータメッセージはCPU−2 656によって送信された応答であり、CPU−2 656へ行くことはできない。
1つの実施例において、当該チェーン生成アルゴリズムは保守的である。例えば、いくつかの点で、トラフィック仕様が次のいずれのホップにも従わない場合、フィルタリングはなされず、当該仕様は可能な限り良く追従される。あるいは、リクエストと応答との型に合わないトランザクションに関して、チェーンを生成しないこともあり得る。このことは、入力が既にチェーンである場合に、当該アルゴリズムがユーザの意図を維持することを可能とする。
実施例において、トランザクショナル・トラフィック仕様はNoCシミュレーションから独立して書かれ得る。当該トランザクショナル・トラフィック仕様の記述は、当該NoCシミュレーションに関して要求されることで、非常に特殊であり得る。
[トレースの生成]
NoCシミュレーションの実施例において、外部トランザクション・トレースは、さらなる適応性を提供するために用いられ得る。そのようなトランザクション・トレースは、統計モデルから算出されても良く、現実のシステムから記録されても良い。コンポーネントに関するトランザクション・トレースは、トランザクション開始メッセージ及び内部トランザクション・インターバルの一覧を含み得る。例えば実施例において、当該トレースは、シミュレートすべきチェーンを示すのみであっても良く、当該トランザクションの全体の詳細は示さなくとも良い。
1つの実施例において、トランザクショナル・トラフィック仕様は、トラフィック・トレーシングの生成に用いられ得る。トランザクショナル・トラフィック仕様における各々のトランザクションに関してトランザクション・レートが特定されることで、トランザクショナル・トラフィック仕様に適合したトランザクションに関して現実的なトレースが生成され得る。1つの実施例において、nサイクルに及ぶトレースを生成するために、レートrのトランザクションは、当該トレースにおいてnrメッセージを送信すべきである。トランザクション配列は、特定の送信元からの各々のトランザクションtiがnri回出現するように構築され得る。一度構築がなされると、当該配列は、ランダムに組み替えられ得、メッセージが送信されるであろう順書を形成し得る。後は当該トレースがnサイクルに及ぶようにメッセージ間の遅延を算出するのみである。例えば、ビートの総数tがnより大きい場合、特定された総トラフィックは、送信元の伝送能力を超過する。当該送信元の伝送能力は、サイクル当たり1ビートのみ送信し得るものだからである。他の実施例において、標準のレート制限アルゴリズムがメッセージ間に間隔のあるメッセージ伝送をスケジューリングすることに用いられ得、短いインターバルにわたる平均バンド幅は伝送ビートのレートをサイクルあたりおよそt/nビートに制限し得る。他の実施例において、当該NoCは、例えばバースト性及びジッタなどのプロパティをこのモデルに使用することができ、より一層現実的なトレースを作成することができる。
[トランザクショナル・シミュレーション]
1つの実施例において、NoCは本願のトランザクショナル・トラフィック仕様をトランザクショナル・シミュレーションに使用することができる。本願のトランザクショナル・トラフィック仕様を用いてのトランザクショナル・シミュレーションは、より緊急及び詳細なシミュレーションを提供することにおいて、フローレベルのシミュレーションと異なる。フローレベル仕様を用いてのフローレベル・シミュレーションと、トランザクショナル・トラフィック仕様を用いてのトランザクショナル・シミュレーションとは、トランザクションの中間点にメッセージが到来した際に何が起こるか、に関して異なる。当該両方のシミュレーションにおいて、送信されるべきメッセージのトレースは、ネットワークをシミュレーションすることに用いられる。トランザクションベースのシミュレーションに関して、当該トレースは、各々のトランザクションの最初のメッセージをスケジューリングすることにのみ必要であり、他のメッセージはメッセージの受信上でトリガされるであろう。パケットがその送信先に到着した場合、当該パケットは、チェーン内に次のパケットがあれば当該次のパケットへのポインタを有する。当該次のパケットは、当該次のパケットを送信するであろうネットワークのホスト/ホップの伝送キューに挿入され得る。この応答の伝送は、当該ホスト/ホップによって処理が行われることで遅延される。当該キュー内に空きがない場合、当該ホストはメッセージを受信することができず、バックプレッシャ・アップストリーム(backpressure upstream)を引きおこす。
トランザクションベースのシミュレーションの当該実施例は、トランザクショナル・トラフィック仕様を、フォローレベル仕様が使用されているポイント・トゥー・ポイントのシミュレーションに亘って使用することを通じて利益をもたらすであろう。例えば、当該トランザクショナル・シミュレーションは、レジスタ転送レベル(register transfer level:RTL)のシミュレーション中に起こり得る全ての潜在的なデッドロックを再現し得る。潜在的なデッドロックの早期の検出は、NoC上のデッドロックフリーのトラフィックを保証すること、加えて、当該NoCはルーティング機能及び仮想チャネル割り当てレベル(VC assignment level)に至るまで適切に構築されていることを保証することに関して、当該シミュレーションを有益なものにする。VC及びコンポーネント間の依存関係の正確なモデリングは、当該シミュレーションが、現実のシステムにおいて起こり得る潜在的なデッドロックをより一層ハイライトし易くする。
NoC設計の開発及びシミュレーションの際に、多数の潜在的なデッドロック起こり得るとすれば、VCマッピングアルゴリズムに、当該システムにおける依存関係の正確なモデルを使用されていない可能性があることを示している。
さらに、トランザクショナル・トラフィック仕様を使用することによって、当該シミュレーションはNoCのより現実的な表現をもたらし得る。トランザクション・トラフィック仕様を使用するシミュレータはリクエスト後の応答を生成するのみであろうから、シミュレーション中にみられるトラフィックパターンはより正確に現実のシステムを表現するであろう。さらに、当該ネットワークの挙動のより正確な描写がもたらされ得、正確なバンド幅が提供され得る。これらの利益を総合して、無視できるほどの複雑さで、当該シミュレータの使いやすさは大きく改善する。
[NoC設計]
より正確に実行するシミュレーションに加えて、1つの実施例において、トランザクショナル・トラフィック仕様はNoCを設計することに利用され得る。トランザクショナル・トラフィック仕様を使用して、当該NoCの設計は、ロバスト性及び信頼性の高い結果並びに(必要な場合は)迅速な設計の反復を生じ得る。トランザクショナル・トラフィック仕様は相互依存関係情報、バンド幅情報、レイテンシ情報を含んでおり、ルート割当及び他のNoCの接続性を確立することに使用され得る。当該トランザクショナル・トラフィック仕様は、デッドロックフリーのNoCの設計を補助し得る仮想チャネル割り当て(VC assignment)を容易にすることにおいても有効であり得る。1つの実施例において、トランザクショナル・トラフィック仕様は、当該NoC内の正確なコア配置(core placement)においても補助し得る。
[仮想チャネルマッピング(VC mapping)]
仮想チャネル割り当ての際、トラフィックフローは、デットロックを回避するため、NoCにおいてルート及び仮想チャネル(VC)が割り当てられ得る。トランザクション情報は、最適な仮想チャネル割り当てに関して、トランザクションの様々なフロー間の追加の依存関係情報を活用すること及び当該仮想チャネル割り当てはデッドロックフリーであることを保証することに用いられ得る情報として有効である。
フローべースのトラフィックグラフを用いるシミュレーションは、NoCにおけるデッドロックを検出及び防止するためには不十分であろう。これに対してトランザクショナル・トラフィック仕様はより良いシミュレーション及びデッドロックの検出を提供する。フローベースのモデルは、各々のメッセージを互いに独立して取り扱うが、現実のシステムにおいては、リクエスト/応答プロトコルが利用され得、当該応答は当該リクエストに依存し、トランザクショナル・トラフィック仕様に記述されているように、当該応答及びリクエストの両方のメッセージは単一のトランザクションに属する。例えば、キャッシュコントローラを考えると、キャッシュミス(cache miss)が起こった場合、CPUとのインターフェース(CPU−facing interface)上でロードリクエストを受信し、メモリとのインターフェース(memory−facing interface)上でロードリクエストを送出する。バッファリングは制限されているため、応答が送信され得ない場合は、当該コンポーネントは、リクエストの受信を停止しなければならないであろう。これらの依存関係は、インターコネクトデッドロックを防止するためにマッピングに含まれるべきである。そのような状況を取り扱う関連技術は、リクエストと応答とを別々のVC上に配置することを含むが、そのような設計は、複雑なコヒーレンシプロトコルに関する過多なVCを使用し得る。
1つの実施例において、トランザクショナル・トラフィック仕様は、同じトランザクションのフロー間の依存関係の根拠となる(account for)NoCコンポーネントへの仮想チャネル割り当てに使用され得る。実施例において、トランザクショナル・トラフィック仕様を仮想チャネル割り当てに利用することは、マルチホップ・トラフィック・トランザクションから依存関係を推定することによって、同じトランザクションのフロー間の依存関係の根拠となる。例えばCPU及びメモリ間のトランザクションにおいて、入力インターフェースから出力インターフェースへのメモリにおける依存関係を推定することができる。仮想チャネル割り当ての間のこれらの依存関係の根拠となることは、はるかに少ないVCを使用するデッドロックフリーのネットワークを設計することを可能にし、より効果的なNoCの設計へと導く。さらに、その結果として生ずる設計は、より複雑なプロトコルに関するものまでも構築することによって、デッドロックフリー及び正確であり得る。
[コア配置(Core Placement)]
NoCにおける通信コストは、コンポーネント間の距離と共に増大し、コンポーネントを再配置することは、NoC性能に大きく影響し得る。注意深い位置決めは、レイテンシ及び輻輳(congestion)を削減し得るが、しかしながら、適切な位置が要求されると、いくつかの近くにあるコンポーネントを動かすことで、他のコンポーネント間の距離を増大させることができる。NoCコンテクスト(context)におけるコンポーネントの配置の当該NP困難問題(NP-hard problem)に対して、疑似アニーリング法(Simulated Annealing)から分岐限定法(branch and bound)まで多種多様のアプローチがある。本明細書に記載された実施例は、トラフィックはレイテンシ・ターゲットを満たすことを保証し得る。
フローベースのトラフィックモデルは、コンポーネントのペアにレイテンシ制約(latency constraints)を加えることができる。例えば、CPUとキャッシュコントローラとの間のレイテンシは、5未満であるという制約をかけられ得る。アプリケーションレベルでは、キャッシュコントローラに対するレイテンシは、メモリのリクエスト及び応答の間の遅延の一部に過ぎない。従って、当該アプリケーションには全体のトランザクションレイテンシが起こり得、当該レイテンシは最適化され得る。
1つの実施例において、ホップ毎のプロパティの代わりに、レイテンシをトランザクションプロパティとして特定することは、配置最適化アルゴリズム(placement optimization algorithm)上の制約を緩和する。当該トランザクションプロパティは、トランザクショナル・トラフィック仕様に記述されることで、当該仕様がそのトランザクションの全てのホップ間のレイテンシを割り当てることを可能にすることができ、当該仕様は、システムの全ての制約を満たすという解決策を容易に見出すことができる。
1つの実施例において、NoCはトランザクショナル・トラフィック仕様から生成され得る。当該仕様は、完全なシステムレベルの接続性、依存関係情報、メッセージ/パケット/フリット及び/又はチャネルのバンド幅情報、メッセージトランザクションのレイテンシ情報、例えばメッセージのサイズ、プロパティ、仕様におけるトラフィックの他の記述の間のオーダなどのメッセージ属性情報を有する。
1つの実施態様によれば、提案される本願の仕様はいずれの種類のルート及び/又はホップのシーケンスも取り扱うように構成され得る。当該仕様において、まず第1に、送信元及び送信先のホストは1つ以上の中間ホップと同じであり得る。また、接続性を有することも可能であり得る。当該接続性において、送信先は直接送信元に接続し、送信元は第1の中継に接続し、第1の中継はサイクルにおいて第2の中継に接続し、加えて送信先にも接続する。仕様は、接続性、依存関係、バンド幅、レイテンシ、及びメッセージ属性のうちの1つ又は組み合わせをキャプチャするように構成され得る。これに対して従来の仕様は対になった接続性を有していたのみである。
1つの実施例において、依存関係は、メッセージのシーケンスの解析に基づいて、又は当該仕様から明示的に、又は非依存関係に基づいて明示的に決定され得る。上述したように、仕様はバンド幅及びレイテンシを詳細に記述するように構成され得る。当該レイテンシは、メッセージ・レイテンシ、トランザクション・レイテンシ、他の同様の要素であり得る。従って、レイテンシは各ホップ又は完全なトランザクション(複数のホップを含む)に関するものであり得る。メッセージ属性は、メッセージのサイズ、優先度、メッセージのサービスのクオリティ、及び他に定義されるメッセージに関するいくつかの情報を含み得る。バンド幅分布は例えば、テーブルなどに保存された又は時間の機能として表現された、一定時間に亘るバンド幅のような時間変化バンド幅分布を含み得る。1つの側面の例として、バンド幅分布は、一定の時間内に一定のバンド幅を提供し得るアイソクロナス・トラフィックからキャプチャされ得る。
図7は、NoC設計の例及び実施例が実装されるシステム700の例を示す。コンピュータシステム700は、サーバ705を含む。サーバ705は、I/Oユニット735、ストレージ760、及び1つ以上の当業者に周知のユニットを実行する動作が可能なプロセッサ710を含み得る。本明細書において「コンピュータ可読媒体」は、プロセッサ710に実行するための命令を提供することに関与するいかなる媒体をも意味し、限定的ではないが、光ディスク、磁気ディスク、リードオンリーメモリ、ランダムアクセスメモリ、固体(solid state)デバイス及びドライブ、又は電子情報を格納するのに適している他のいかなる種類の有形の媒体、又は搬送波のような媒体を含み得るコンピュータ読み取り可能な信号媒体などのコンピュータ可読記憶媒体の形態を有していてもよい。I/Oユニットは、キーボード、マウス、タッチ装置、又は音声コマンドなどの入力デバイスを利用することができるユーザ・インタフェース740及びオペレータ・インタフェース745からの入力を処理する。
サーバ705はまた、ポータブル・ハードディスク、光学式媒体(CD又はDVD)、ディスク媒体、又はコンピュータが実行可能なコードを読み取ることができる他のいかなる媒体などの着脱可能なストレージを含み得る外部ストレージ750に接続されていてもよい。サーバはまた、ユーザへデータ及び他の情報、またユーザからの追加情報要求を出力するディスプレイなどの出力デバイス755に接続されていてもよい。サーバ705からユーザ・インタフェース740、オペレータ・インタフェース745、外部ストレージ750及び出力デバイス755への接続は、802.11規格、ブルートゥース(登録商標)(Bluetooth(登録商標))又はセルラ・プロトコルなどの無線プロトコル、あるいはケーブル又は光学ファイバなどの物理的伝送メディアを経たものであってもよい。したがって、出力デバイス755は、さらにユーザと対話する入力デバイスとしての機能を果たすことができる。
プロセッサ710は、トランザクショナル・トラフィック仕様モジュール711、内部依存関係判定モジュール712、バンド幅判定モジュール713、応答優先度判定モジュール714、トラフィック生成モジュール715、及びシミュレーションモジュール716を含む1つ以上のモジュールを実行することができる。当該トランザクショナル・トラフィック仕様モジュール711は、1つ以上の要素間の内部依存関係、バンド幅割り当て、メッセージ属性、及び他のトランザクショナル・トラフィックレベルのパラメータ/因子/属性のうちの1つ又は組み合わせの情報を含むNoCトランザクションを記述するように構成され得る。
1つの実施例において、内部依存関係判定モジュール712は、トランザクショナル・トラフィック仕様モジュール711から依存関係情報を抽出して、トランザクショナル・トラフィック仕様モジュール711において記述された他の依存関係との間で、メッセージ/パケット/フリットのうちの1つ又は組み合わせの間の内部依存関係、送信元ホストと送信先ホストとの間の内部依存関係、中間ホップ上の依存関係を判定するように構成され得る。1つの実施例において、トランザクショナル・トラフィック仕様モジュール711は、依存関係情報、バンド幅情報及び属性情報などの1つ以上のパラメータを用いてトランザクショナル・トラフィック仕様を生成するように構成され得る。
他の実施例において、NoC設計及びシミュレーションシステム700は、NoCのホストと中間ホップとの間の可用バンド幅(available bandwidth)及びそれに応じてトランザクショナル・トラフィック仕様に基づく設計トラフィックを判定するように構成されたバンド幅判定モジュール713を含み得る。上述したように、トランザクショナル・トラフィック仕様はまた、メッセージのサイズ、優先度及びトランザクションの全てのメッセージのオーダに関する情報を含み得る。
他の実施例において、優先度判定モジュール714は情報を抽出してホスト及び/又は中間ホップに入力されるメッセージ並びにホスト及び/又は中間ホップから出力されるメッセージを解析及び優先順位付けをするように構成され得る。1つの実施例において、トランザクショナル・トラフィック仕様を用いて、トラフィック生成モジュール715は、多数の依存関係、優先度、レイテンシ及び他の関連する情報を計算に入れ、それに応じてトラフィックを処理する/扱うように構成され得る。他の実施例において、シミュレーションモジュール716は、トランザクショナル・トラフィック仕様を用いてNoC全体をシミュレーションしてNoCを解析することができ、当該NoCにおける潜在的なデッドロックを判定することができる。
本詳細な説明のいくつかの部分は、コンピュータ内のアルゴリズムとして及び動作の記号表現として表されている。これらのアルゴリズム的記載及び記号表現は、情報処理分野の当業者によって、他の当業者に新しい考えの本質を最も効果的に伝えるために用いられる手段である。アルゴリズムは、所望の最終状態又は結果を導く一連の定義されたステップである。実施例において、実行されるステップは、具体的な成果を達成するための具体的な量の物理的操作を必要とする。
さらに、本願の他の実施例は、本明細書に開示されている実施例の仕様及び実行を考慮することによって、当業者に明らかに理解される。様々な説明された実施例の態様及び/又はコンポーネントは、単一で又は任意の組み合わせで用いられてもよい。仕様及び実施例は例示として理解されることが意図され、本出願の真の範囲及び精神は、添付の特許請求の範囲によって示されることが意図されている。

Claims (20)

  1. 処理を実行するための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、
    複数のパラメータを含む仕様からネットワークオンチップ(NoC)ベースのシステムを生成するステップを含み、前記複数のパラメータは、前記NoCベースのシステムの設計及び性能シミュレーションを容易にするように構成された情報を示し、前記NoCベースのシステムのNoCは、前記仕様から生成されて仕様要求を満たすことを特徴とする非一時的コンピュータ可読媒体。
  2. 請求項1に記載の非一時的コンピュータ可読媒体であって、前記複数のパラメータは前記NoCベースのシステムの接続性情報を含み、加えて、依存関係情報、バンド幅情報及び属性情報のうちの少なくとも1つを含むことを特徴とする非一時的コンピュータ可読媒体。
  3. 請求項2に記載の非一時的コンピュータ可読媒体であって、前記バンド幅情報は、特定時間のアイソクロナス・トラフィックのバンド幅を保証するための1つ以上のパラメータを含むことを特徴とする非一時的コンピュータ可読媒体。
  4. 請求項2に記載の非一時的コンピュータ可読媒体であって、前記バンド幅情報は、トラフィック・ジッタを示す1つ以上のパラメータを含むことを特徴とする非一時的コンピュータ可読媒体。
  5. 請求項2に記載の非一時的コンピュータ可読媒体であって、前記依存関係情報は、前記NoCベースのシステムの複数の要素間の依存関係、又は前記NoCベースのシステム内の複数の種類のメッセージ間の依存関係を示すことを特徴とする非一時的コンピュータ可読媒体。
  6. 請求項2に記載の非一時的コンピュータ可読媒体であって、前記依存関係情報は、前記NoCベースのシステムの複数の要素間の非依存関係、又は前記NoCベースのシステム内の複数の種類のメッセージ間の非依存関係を示すことを特徴とする非一時的コンピュータ可読媒体。
  7. 請求項2に記載の非一時的コンピュータ可読媒体であって、前記バンド幅情報は、1つ以上のトランザクションのメッセージのバンド幅要求、前記1つ以上のトランザクションの前記メッセージのクオリティ・オブ・サービス要求、前記1つ以上のトランザクションの前記メッセージのレイテンシ要求、及び前記1つ以上のトランザクションのレイテンシ要求、のうちの少なくとも1つを含むことを特徴とする非一時的コンピュータ可読媒体。
  8. 請求項2に記載の非一時的コンピュータ可読媒体であって、前記接続性情報は、前記NoCベースのシステムのトラフィックシミュレーションを示す前記NoCベースのシステムの1つ以上のメッセージに関するトランザクション情報、前記NoCベースのシステムのメッセージ伝送に関するプロトコル情報、及び前記NoCベースのシステムのメッセージに関するシーケンスを示すオーダ情報のうちの少なくとも1つを含むことを特徴とする非一時的コンピュータ可読媒体。
  9. 請求項8に記載の非一時的コンピュータ可読媒体であって、前記トランザクション情報は1つ以上のトランザクションを含み、前記1つ以上のトランザクションの各々はホップのシーケンスを示し、前記ホップのシーケンスのホップの各々は、送信元エージェントから送信先エージェントへの1つ以上のメッセージを示し、
    前記NoCベースのシステムを生成するステップは、前記トランザクション情報に基づいて前記NoCベースのシステムを構成して、前記1つ以上のトランザクションの各々に関する前記ホップのシーケンスに従って、前記送信元エージェントから前記送信先エージェントへ各々のホップに関する前記1つ以上のメッセージを伝送するステップを含むことを特徴とする非一時的コンピュータ可読媒体。
  10. 請求項9に記載の非一時的コンピュータ可読媒体であって、前記トランザクション情報は、前記1つ以上のトランザクションの少なくとも1つのサブセットに関するシステムレベルシミュレーションを容易にするように構成されていることを特徴とする非一時的コンピュータ可読媒体。
  11. 請求項2に記載の非一時的コンピュータ可読媒体であって、前記属性情報は、1つ以上のトランザクションのメッセージのサイズ、前記1つ以上のトランザクションの前記メッセージの優先度、前記1つ以上のトランザクションの前記メッセージのクオリティ・オブ・サービス(QoS)、及び前記1つ以上のトランザクションの前記メッセージのオーダリング要求、のうちの少なくとも1つを示すメッセージ属性情報を含むことを特徴とする非一時的コンピュータ可読媒体。
  12. 請求項1に記載の非一時的コンピュータ可読媒体であって、前記命令は、前記仕様の前記複数のパラメータに基づいて前記NoCベースのシステムのシミュレーションを実行するステップをさらに含むことを特徴とする非一時的コンピュータ可読媒体。
  13. 請求項12に記載の非一時的コンピュータ可読媒体であって、前記命令は、前記シミュレーションを実行するための前記仕様の前記複数のパラメータから、トラフィック・トレース・データベースを生成するステップをさらに含み、前記トラフィック・トレース・データベースは1つ以上のトラフィック・トレース・ファイルを含み、前記1つ以上のトラフィック・トレース・ファイルの各々は、トランザクションを開始するための情報を示すことを特徴とする非一時的コンピュータ可読媒体。
  14. 請求項13に記載の非一時的コンピュータ可読媒体であって、前記トランザクションを開始するための前記情報は、前記仕様の前記複数のパラメータに基づいて判定されることを特徴とする非一時的コンピュータ可読媒体。
  15. 請求項14に記載の非一時的コンピュータ可読媒体であって、前記命令は、前記複数のパラメータ及び1つの統計モデルに基づいて、複数のトランザクションから前記トランザクションを選択するステップをさらに含むことを特徴とする非一時的コンピュータ可読媒体。
  16. 請求項1に記載の非一時的コンピュータ可読媒体であって、前記バンド幅情報は、トランザクションのレート、トランザクションのメッセージのレート、及びNoCベースのシステムの1つ以上のホストのレート、のうちの1つを示すことを特徴とする非一時的コンピュータ可読媒体。
  17. 仕様から構成されたネットワークオンチップ(NoC)ベースのシステムであって、前記仕様は複数のパラメータを含み、前記複数のパラメータは、前記NoCベースのシステムの設計及び性能シミュレーションを容易にするように構成された情報を示し、前記NoCベースのシステムのNoCは、前記仕様から生成されて仕様要求を満たすことを特徴とするNoCベースのシステム。
  18. 請求項17に記載のNoCベースのシステムであって、前記複数のパラメータは前記NoCベースのシステムの接続性情報を含み、加えて、依存関係情報、バンド幅情報及び属性情報のうちの少なくとも1つを含むことを特徴とするNoCベースのシステム。
  19. 請求項18に記載のNoCベースのシステムであって、前記バンド幅情報は、特定時間のアイソクロナス・トラフィックのバンド幅を保証するための1つ以上のパラメータを含むことを特徴とするNoCベースのシステム。
  20. 請求項17に記載のNoCベースのシステムであって、前記バンド幅情報は、トラフィック・ジッタを示す1つ以上のパラメータを含むことを特徴とするNoCベースのシステム。
JP2016571197A 2014-06-06 2015-02-12 ネットワーク・オン・チップ設計向けのトランザクショナル・トラフィック仕様 Active JP6353084B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/298,717 US9473359B2 (en) 2014-06-06 2014-06-06 Transactional traffic specification for network-on-chip design
US14/298,717 2014-06-06
PCT/US2015/015604 WO2015187209A1 (en) 2014-06-06 2015-02-12 Transactional traffic specification for network-on-chip design

Publications (3)

Publication Number Publication Date
JP2017517978A true JP2017517978A (ja) 2017-06-29
JP2017517978A5 JP2017517978A5 (ja) 2017-12-07
JP6353084B2 JP6353084B2 (ja) 2018-07-04

Family

ID=54767133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016571197A Active JP6353084B2 (ja) 2014-06-06 2015-02-12 ネットワーク・オン・チップ設計向けのトランザクショナル・トラフィック仕様

Country Status (4)

Country Link
US (1) US9473359B2 (ja)
JP (1) JP6353084B2 (ja)
KR (1) KR102374572B1 (ja)
WO (1) WO2015187209A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9794130B2 (en) 2012-12-13 2017-10-17 Coriant Operations, Inc. System, apparatus, procedure, and computer program product for planning and simulating an internet protocol network
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
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
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
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
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
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
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
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
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)
GB2574614B (en) * 2018-06-12 2020-10-07 Advanced Risc Mach Ltd Error detection in an interconnection network for an integrated circuit
US10635431B1 (en) 2019-01-09 2020-04-28 Bank Of America Corporation Dynamically updating source code from a cloud environment
US11108679B2 (en) * 2019-08-08 2021-08-31 Mellanox Technologies Tlv Ltd. Producing deadlock-free routes in lossless cartesian topologies with minimal number of virtual lanes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012226776A (ja) * 2010-05-12 2012-11-15 Panasonic Corp 中継器およびチップ回路
WO2013046607A1 (ja) * 2011-09-29 2013-04-04 パナソニック株式会社 制御装置

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0666004A4 (en) 1992-10-21 1999-11-03 Bell Communications Res BROADBAND VIRTUAL PRIVATE NETWORK SYSTEM AND SERVICE.
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
US6058307A (en) * 1995-11-30 2000-05-02 Amsc Subsidiary Corporation Priority and preemption service system for satellite related communication using central controller
KR100216066B1 (ko) * 1997-05-20 1999-08-16 윤종용 반도체 집적회로 소자 검사공정 제어 시스템 및 제어방법
US6003029A (en) 1997-08-22 1999-12-14 International Business Machines Corporation Automatic subspace clustering of high dimensional data for data mining applications
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
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
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
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
US7308655B2 (en) * 2004-03-25 2007-12-11 Taiwan Semiconductor Manufacturing Company, Ltd. Method and system for alerting an entity to design changes impacting the manufacture of a semiconductor device in a virtual fab environment
US7564809B1 (en) * 2004-05-06 2009-07-21 Cornell Research Foundation, Inc. Event-synchronization protocol for parallel simulation of large-scale wireless networks
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
US20080244135A1 (en) * 2005-05-04 2008-10-02 Nxp B.V. Memory Controller and Method For Controlling Access to a Memory, as Well as System Comprising a Memory Controller
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
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
CA2580998A1 (en) 2006-03-03 2007-09-03 Queen's University At Kingston Adaptive analysis methods
US8448102B2 (en) 2006-03-09 2013-05-21 Tela Innovations, Inc. Optimizing layout of irregular structures in regular layout context
US7567947B2 (en) * 2006-04-04 2009-07-28 Optimaltest Ltd. Methods and systems for semiconductor testing using a testing scenario language
US20070256044A1 (en) 2006-04-26 2007-11-01 Gary Coryer System and method to power route hierarchical designs that employ macro reuse
US7818151B2 (en) * 2006-05-02 2010-10-19 Asml Masktools B.V. Method, program product and apparatus for obtaining short-range flare model parameters for lithography simulation tool
US8924269B2 (en) 2006-05-13 2014-12-30 Sap Ag Consistent set of interfaces derived from a business object model
JP2007311491A (ja) 2006-05-17 2007-11-29 Toshiba Corp 半導体集積回路
US20080072182A1 (en) 2006-09-19 2008-03-20 The Regents Of The University Of California Structured and parameterized model order reduction
WO2008044211A1 (en) * 2006-10-10 2008-04-17 Ecole Polytechnique Federale De Lausanne (Epfl) Method to design network-on-chip (noc)-based communication systems
WO2008126516A1 (ja) 2007-04-10 2008-10-23 Naoki Suehiro 送信方法、送信装置、受信方法及び受信装置
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
TWI390869B (zh) 2008-04-24 2013-03-21 Univ Nat Taiwan 網路資源分配系統及方法
JP4607254B2 (ja) 2008-06-12 2011-01-05 パナソニック株式会社 ネットワーク監視装置、バスシステム監視装置、方法、およびプログラム
US8050256B1 (en) 2008-07-08 2011-11-01 Tilera Corporation Configuring routing in mesh networks
US8255849B1 (en) 2008-12-08 2012-08-28 Cadence Design Systems, Inc. Solver for modeling a multilayered integrated circuit with three-dimensional interconnects
US8065433B2 (en) 2009-01-09 2011-11-22 Microsoft Corporation Hybrid butterfly cube architecture for modular data centers
CN102696045B (zh) * 2009-07-10 2015-07-01 塞尔蒂卡姆公司 用于执行设备的顺序化的系统和方法
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
FR2951342B1 (fr) * 2009-10-13 2017-01-27 Arteris Inc Reseau sur puce a latence nulle
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
US20110191774A1 (en) * 2010-02-01 2011-08-04 Yar-Sun Hsu Noc-centric system exploration platform and parallel application communication mechanism description format used by the same
US20110191088A1 (en) * 2010-02-01 2011-08-04 Yar-Sun Hsu Object-oriented network-on-chip modeling
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
FR2961048B1 (fr) * 2010-06-03 2013-04-26 Arteris Inc Reseau sur puce avec caracteristiques de qualite-de-service
WO2011155984A1 (en) 2010-06-11 2011-12-15 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
CN102467582B (zh) 2010-10-29 2014-08-13 国际商业机器公司 一种集成电路设计中优化连线约束的方法和系统
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
US9036482B2 (en) * 2011-12-08 2015-05-19 The Hong Kong University Of Science And Technology Bufferless nonblocking networks on chip
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
US9225665B2 (en) * 2012-09-25 2015-12-29 Qualcomm Technologies, Inc. Network on a chip socket protocol
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012226776A (ja) * 2010-05-12 2012-11-15 Panasonic Corp 中継器およびチップ回路
WO2013046607A1 (ja) * 2011-09-29 2013-04-04 パナソニック株式会社 制御装置

Also Published As

Publication number Publication date
US20150358211A1 (en) 2015-12-10
US9473359B2 (en) 2016-10-18
WO2015187209A1 (en) 2015-12-10
JP6353084B2 (ja) 2018-07-04
KR20170015320A (ko) 2017-02-08
KR102374572B1 (ko) 2022-03-16

Similar Documents

Publication Publication Date Title
JP6353084B2 (ja) ネットワーク・オン・チップ設計向けのトランザクショナル・トラフィック仕様
JP6216454B2 (ja) ネットワークオンチップアーキテクチャにおけるシステムレベルシミュレーション
US9244880B2 (en) Automatic construction of deadlock free interconnects
US10324509B2 (en) Automatic generation of power management sequence in a SoC or NoC
JP6060316B2 (ja) NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体
US9477280B1 (en) Specification for automatic power management of network-on-chip and system-on-chip
US9009648B2 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
US9158882B2 (en) Automatic pipelining of NoC channels to meet timing and/or performance
US10528682B2 (en) Automatic performance characterization of a network-on-chip (NOC) interconnect
US9781043B2 (en) Identification of internal dependencies within system components for evaluating potential protocol level deadlocks
US10983910B2 (en) Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US10896476B2 (en) Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US20180198682A1 (en) Strategies for NoC Construction Using Machine Learning
US10084725B2 (en) Extracting features from a NoC for machine learning construction
US11144457B2 (en) Enhanced page locality in network-on-chip (NoC) architectures
US9928204B2 (en) Transaction expansion for NoC simulation and NoC design

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171027

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171027

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171027

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180607

R150 Certificate of patent or registration of utility model

Ref document number: 6353084

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