IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルテリス・インコーポレイテッドの特許一覧

特開2024-101565決定論的で増分的な物理アウェアネットワークオンチップ生成のためのシステムおよび方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024101565
(43)【公開日】2024-07-29
(54)【発明の名称】決定論的で増分的な物理アウェアネットワークオンチップ生成のためのシステムおよび方法
(51)【国際特許分類】
   G06F 30/394 20200101AFI20240722BHJP
   G06F 115/02 20200101ALN20240722BHJP
【FI】
G06F30/394
G06F115:02
【審査請求】未請求
【請求項の数】5
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024005372
(22)【出願日】2024-01-17
(31)【優先権主張番号】18/155,729
(32)【優先日】2023-01-17
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521196590
【氏名又は名称】アルテリス・インコーポレイテッド
【氏名又は名称原語表記】ARTERIS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】アミール・シャリフ
(72)【発明者】
【氏名】グザビエ・バン・リュインベック
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146GC16
(57)【要約】      (修正有)
【課題】デッドロックをもたらす条件を排除する、ネットワークオンチップ(NoC)などのネットワークを生成及び合成する方法並びに非一時的コンピュータ可読媒体を提供する。
【解決手段】既存のデッドロックフリーのNoC構成を変換する方法であって、既存のデッドロックフリーのNoC構成は、複数の既存の物理セグメントと、セグメント間で許容可能な既存のターンのセットと、を含む。複数の既存の物理セグメントおよび既存のターンのセットは、複数の既存のルートを形成する。方法は、少なくとも、ソースおよび宛先を有する第1の新しい接続を既存のデッドロックフリーのネットワークオンチップ構成に生成及び/又は合成することによって新しいNoC構成を生成する。ソースから宛先への第1の新しいデッドロックフリーのルートを作成することにより、新しいネットワークオンチップ構成をデッドロックフリーとし、既存のルートを保存する。
【選択図】なし
【特許請求の範囲】
【請求項1】
デッドロックフリーのネットワークオンチップ(NoC)生成のための方法であって、
既存のデッドロックフリーNoC構成に少なくとも第1の新しい接続を合成することによって新しいNoC構成を生成することと、
既存のルートを保存するためにソースから宛先への第1の新しいデッドロックフリーのルートを生成することであって、
各既存のルートについて、前記ルートをセグメントおよびターンにトランスレートすることと、
合成順序に関連付けられた、合成されるべき1つまたは複数の新しい接続を識別することと、
前記1つまたは複数の新しい接続の各々について、ソートに従って、前記新しい接続のための前記ソースから前記宛先への複数の可能なルートを識別することと、
基準に基づいて前記可能なルートのうちの少なくとも1つをフィルタリングすることと
を含む、生成することと
を含む、方法。
【請求項2】
前記第1の新しいデッドロックフリーのルートは、既存の物理セグメントおよび新しい物理セグメントのうちの少なくとも一方を含む、請求項1に記載の方法。
【請求項3】
ネットワークオンチップトポロジの合成のための方法であって、
ネットワークトポロジを入力として受信することと、
新しいルートにおいて既存のセグメントを再使用することであって、前記既存のセグメントは、第1のノードと第2のノードとの間の経路によって形成される、再使用することと、
分割セグメントを形成するために前記経路に沿った任意の地点で再帰的に前記既存のセグメントを分割することと、
前記分割セグメントに新しいセグメントおよび新しいターンを追加することによって前記新しい経路を合成することと、
前記ネットワーク内のデッドロックを回避するために前記既存のセグメントから前記新しいセグメントにパケットをルーティングすることによってデッドロックフリーのネットワークオンチップトポロジを生成することと
を含む、方法。
【請求項4】
前記ネットワークトポロジを既存のセグメントおよび既存のターンにトランスレートすることをさらに含む、請求項3に記載の方法。
【請求項5】
コードを記憶するための非一時的コンピュータ可読媒体であって、前記コードは、1つまたは複数のプロセッサによって実行されると、前記プロセッサに、
合成のための選択されるべきソース・宛先ペアおよび少なくとも1つの既存の接続を決定するためにネットワークオンチップ(NoC)の入力トポロジを受信させ、
前記ソース・宛先ペアを1対のセグメントに転写させ、
前記少なくとも1つの既存の接続を1対の既存のセグメントに転写させ、
前記NoCがデッドロックフリーであるかどうかを判定させ、
前記NoCが前記デッドロックフリーであるかどうかを判定したことに応答して、定義されたルートを有しない前記1対のセグメントを抽出させ、ヒューリスティックを使用してそれらをソートさせ、
前記1対のセグメントおよび前記1対の既存のセグメントを構成探索部に入力させ、
通信ポリシーを使用して適格構成を出力させ、
構成選択モジュールを使用して、前記ソース・宛先ペアを接続するために実装されるべき最終構成を選択させ、
前記1対のセグメントに接続される必要がある前記1対の既存のセグメントを、前記最終構成によって指示される点で分割させ、
前記最終構成によって指示される新しいセグメントを作成させ、
前記1対の既存のセグメントを前記1対のセグメントと接続する、対応するターンを活性化させ、
前記ソース・宛先ペアの前記ソースから前記宛先までのルートを計算させる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本技術は、システム設計の分野にあり、より具体的には、ネットワークオンチップ(NoC:network-on-chip)記述のトポロジ生成に関する。
【背景技術】
【0002】
背景
マルチプロセッサシステムは、ネットワークオンチップ(NoC)を介して通信するシステムオンチップ(SoC:systems-on-chip)において実装されている。SoCは、マスタ(イニシエータ)知的財産(IP:intellectual property)およびスレーブ(ターゲット)IPのインスタンスを含む。パケットの形態のトランザクションは、業界標準プロトコルを使用してマスタから1つまたは複数のスレーブに送信される。NoCに接続されたマスタは、スレーブを選択するためにアドレスを使用して、スレーブに要求トランザクションを送信する。NoCは、アドレスを復号し、マスタからスレーブへ要求をトランスポートする。スレーブはトランザクションをハンドリングして応答トランザクションを送信し、それはNoCによってマスタにトランスポートして返される。
【0003】
ソースと宛先との間の接続性およびレイテンシ、様々な要素の周波数、NoCロジックに利用可能な最大面積、ソースと宛先との間の最小スループット、NoCにアタッチされた要素のフロアプラン上の位置などの性能要件の所与のセットについて、最小量のロジックおよびワイヤですべての要件を満たす最適なNoCを作成することは複雑なタスクである。これは通常、この最適なNoCを作成するためのチップ技術者またはチップ設計者の仕事であり、これは困難で時間のかかるタスクである。これは困難な課題であることに加えて、NoCの設計は、チップフロアプランの変更または期待される性能の変更など、要件の1つが変更されるたびに改訂される。結果として、このタスクは、チップの設計時間にわたって頻繁に再実行される必要がある。このプロセスは時間がかかり、製造遅延をもたらす。したがって、必要とされるのは、要件として列挙された制約のセットおよび入力のセットからNoCを効率的に生成するためのシステムおよび方法である。システムは、そのすべての要素がチップのフロアプラン上に配置されたNoCを制作する必要がある。
【0004】
NoCは、SoCのためのスケーラブルな通信アーキテクチャを設計するための例である。設計用途においてNoCを使用する場合、ネットワークにおいてデッドロックをもたらす条件を排除することがより望ましい。現在、ルーティングデッドロックによって遅延したメッセージを発生させることなく、宛先に向けられた複数の経路を容易にするために、データ処理ノードのアレイを介してメッセージをルーティングすることが知られている。特定用途向けNoCを設計する際の重要な態様は、最小の電力および面積オーバーヘッドを使用したより望ましいデッドロックフリーの動作である。NoCで発生することが知られている2つの主なタイプのデッドロックがある。第1のタイプのデッドロックは、ルーティング依存デッドロックである。第2のタイプのデッドロックは、メッセージ依存デッドロックである。
【0005】
既存のトポロジを再利用することは困難であり、配線に関連する制作コストは高価であるため、既存のNoCにおける新しい接続のNoC合成中に現在の問題が存在する。もう1つの問題は、環境NoC合成を行うことが仕様の変更後に発生する際に生じる。例えば、新しい接続が追加されると、以前の結果が上書きされる。したがって、ルーティング依存デッドロックとメッセージ依存デッドロックの両方を回避し、NoC設計フローのトポロジ合成フェーズと統合される、NoCを設計するための方法が必要とされている。トポロジ合成中のデッドロック回避問題を考慮すると、デッドロック回避問題が別々に管理される従来の方法と比較して、より望ましいNoC設計が達成され得る。さらに、以前の結果を上書きすることなく新しい接続を追加する必要がある。
【発明の概要】
【課題を解決するための手段】
【0006】
概要
本発明の様々な実施形態および態様によれば、そのすべての要素でNoCを制作または生成するための入力を有する制約のセットおよびステップのセットを使用してネットワークオンチップ(NoC)を生成するシステムおよび方法が開示される。NoCの要素は、チップのフロアプラン上に配置される。本発明の利点は、設計プロセスおよびチップ技術者または設計者の作業の単純化である。NoC生成または合成方法は増分的設計を有し、それによって、NoCは一度に1つの接続が生成または合成される。特に、ソース・宛先ペアのノードのセットおよび各新しい接続は、既存の接続のセットを入力として取ることによって合成される。限定されるものではないが、スイッチおよび/またはリンクを含む新しいコンポーネントは、ソースから宛先までのネットワークルートを定義するために新しい接続を合成するときに作成され得る。宛先がトラバースされるコンポーネントのリストであることを含むが、これに限定されないことは、本発明の範囲内である。さらに、クロックおよび/またはデータ幅を含むがこれらに限定されない新しく作成されたコンポーネントを構成することは、新しい接続を合成する際の重要な態様である。
【0007】
一実施形態では、既存の接続のセットは空であってもよい。その結果、NoCは既存の接続なしでプロセスの最初から合成される。
【0008】
接続が実装される順序は、トポロジの品質に影響を及ぼす。一実施形態では、順序は、複数の数学的最適化技術および/またはヒューリスティックに基づいて決定されてもよい。例えば、順序は、接続によって張られるフロアプランの面積によって決定されてもよい。他の例では、順序は、パケットの宛先への到着のレイテンシを測定し、より感受性の高い接続をより高い優先度で実装するように構成されたレイテンシベースの通信ポリシーであってもよい。合成順序が、決定論的で増分的な物理アウェアNoCトポロジ合成のための方法への入力であることは、本発明の範囲内である。
【0009】
仕様からデッドロックフリーNoCを自動的に生成または合成するように構成されたシステムは、チップの物理的レイアウトであるフロアプランと、ワイヤ遅延および/またはロジック密度を含むがこれらに限定されない技術的パラメータと、モジュールおよび/またはクロック制限を含むがこれらに限定されないフロアプラン領域と、第1のクロック領域から第2のクロック領域への同期デジタル回路における信号のトラバースであるクロックドメイン交差(CDC)と、性能要件と、フロアプラン上の構成および位置、第1のコンポーネントと第2のコンポーネントとの間の接続性要件、および第1のコンポーネントと第2のコンポーネントとの間の通信ポリシーを有するコンポーネントとを含む。
【0010】
既存のデッドロックフリーのネットワークオンチップ(NoC)構成を変換する方法であって、既存のデッドロックフリーのネットワークオンチップ構成は、複数の既存の物理セグメントと、セグメント間で許容可能な既存のターンのセットとを含み、複数の既存の物理セグメントおよび既存のターンのセットは、複数の既存のルートを形成する、方法。方法は、少なくとも第1の新しい接続を既存のデッドロックフリーのネットワークオンチップ構成に生成および/または合成することによって新しいNoC構成を生成することを含み、第1の新しい接続はソースおよび宛先を有し、生成することは、ソースから宛先への第1の新しいデッドロックフリーのルートを作成し、これにより、新しいネットワークオンチップ構成はデッドロックフリーとなり、ソースから宛先への第1の新しいデッドロックフリーのルートを生成することは既存のルートを保存する。
【0011】
生成することは、各既存のルートについて、ルートをセグメントおよびターンにトランスレートすることと、合成されるべき1つまたは複数の新しい接続を識別することであって、複数の新しい接続の各々は、未定義のルート、ソース、およびそれに関連付けられた宛先を有し、1つまたは複数の新しい接続は、合成順序とともに識別される、識別することと、1つまたは複数の新しい接続の各々について、およびソートに従って、新しい接続のためのソースから宛先までの複数の可能なルートを識別することとを含む。
【0012】
可能なルートは、ソースを既存のデッドロックフリーNoC構成に接続する新しい入セグメントと、既存のデッドロックフリーのネットワークオンチップ構成を宛先に接続する新しい出セグメントと、既存のデッドロックフリーのネットワークオンチップ構成の既存のセグメントを接続する1つまたは複数の新しい内部セグメントであって、それによって1つまたは複数の新しい内部セグメントはソースを宛先に接続し、新しい内部セグメントは、それがセグメント間に循環依存関係を生成し、それによってデッドロックが発生するかどうかは考慮されない、1つまたは複数の新しい内部セグメントと、既存のセグメントのみと、のうちの1つまたは複数を含む。
【0013】
1つまたは複数の基準に基づいて複数の可能なルートをフィルタリングすることであって、1つまたは複数の基準は、新しい接続のソースから宛先までのルートの許容レイテンシに基づく通信ポリシー基準と、複数のユーザ定義基準のいずれかとを含む、フィルタリングすること;合成のための複数の可能なルートのうちの1つを選択すること;および/または選択された可能なルートを既存のデッドロックフリーのネットワークオンチップ構成に合成すること。
【0014】
本発明の1つまたは複数の実施形態によれば、第1の新しいデッドロックフリーのルートは、既存の物理セグメントおよび新しい物理セグメントのうちの少なくとも一方を含む。
【0015】
本発明の1つまたは複数の実施形態によれば、ソースから宛先への第1の新しいデッドロックフリーのルートを生成することは、すべての既存のルートを保存する。
【0016】
本発明の1つまたは複数の実施形態によれば、新しいデッドロックフリーのルートの生成を増分的に繰り返す。
【0017】
本発明の1つまたは複数の実施形態によれば、合成順序を識別することは、ヒューリスティックに従って1つまたは複数の新しい接続をソートすることを含む。
【0018】
本発明の1つまたは複数の実施形態によれば、既存のセグメントの少なくとも一部は物理的に変更不能である。
【0019】
本発明の1つまたは複数の実施形態によれば、既存のセグメントの少なくとも一部のエンドポイントはスイッチである。スイッチは物理的に変更不能である。
【0020】
本発明の1つまたは複数の実施形態によれば、任意のコンポーネントは論理的に変更可能であり、少なくとも1つの既存のコンポーネントを新しい結果として生じるトポロジに応答して再構成させる。
【0021】
本発明の1つまたは複数の実施形態によれば、合成のための複数の可能なルートのうちの1つを選択することは、既存のデッドロックフリーのネットワークオンチップ構成の使用を最大化する可能なルートを選択することを含み、既存のセグメントは、入セグメントおよび出セグメントを除いて物理的に変更不能にされ、スイッチは、物理的に変更不能にされ、少なくとも1つのネットワーク要素は、論理的に変更不能にされる。
【0022】
本発明の1つまたは複数の実施形態によれば、合成のための複数の可能なルートのうちの1つを選択することは、ルートのレイテンシを最小化する可能なルートを選択することを含む。
【0023】
本発明の1つまたは複数の実施形態によれば、合成のための複数の可能なルートのうちの1つを選択することは、既存のデッドロックフリーのネットワークオンチップ構成の使用を最大化する可能なルートを選択することを含み、既存のセグメントは物理的に変更不能にされず、スイッチは新しい接続を有することが可能にされ、既存のネットワーク要素は論理的に変更不能にされ、それはクロック周波数および他の属性を不変に保つことを含む。
【0024】
本発明の1つまたは複数の実施形態によれば、合成のための複数の可能なルートのうちの1つを選択することは、既存のセグメントが物理的に変更不能にされず、スイッチが新しい接続を有することを可能にされ、既存のネットワーク要素が再構成可能である間に選択することを含む。
【0025】
デッドロックフリーのネットワークオンチップトポロジの増分的合成および変換のための方法は、ネットワークトポロジである入力を受信することを含む。ネットワークトポロジは、既存のセグメントにトランスレートされ、既存のセグメントを新しい経路で再利用し、既存のセグメントは、第1のノードと第2のノードとの間の経路によって形成され、分割セグメントを形成し、第1のノードと第2のノードとの間の経路に沿った任意の地点で既存のセグメントを再帰的に分割し、分割に応答して、分割セグメントに新しいセグメントおよび新しいターンを追加することによって新しいルートを合成し、既存のセグメントのターンから新しいセグメントにパケットをルーティングすることによってデッドロックフリーのネットワークオンチップトポロジを生成し、それによってネットワークにおけるデッドロックを回避する。
【0026】
本発明の1つまたは複数の実施形態によれば、合成順序を識別することは、ヒューリスティックに従って1つまたは複数の新しい接続をソートすることを含む。
【0027】
本発明の1つまたは複数の実施形態によれば、既存のセグメントの少なくとも一部は物理的に変更不能である。
【0028】
本発明の1つまたは複数の実施形態によれば、既存のセグメントの少なくとも一部のエンドポイントはスイッチである。スイッチは物理的に変更不能である。
【0029】
本発明の1つまたは複数の実施形態によれば、任意のコンポーネントは論理的に変更可能であり、少なくとも1つの既存のコンポーネントを新しい結果として生じるトポロジに応答して再構成させる。
【0030】
コードを記憶するための非一時的コンピュータ可読媒体であって、コードは、1つまたは複数のプロセッサによって実行されると、プロセッサに、合成のための選択されるべきソース・宛先ペアおよび少なくとも1つの既存の接続を決定するためにネットワークオンチップ(NoC)の入力トポロジを受信させ、ソース・宛先ペアを1対のセグメントに転写させ、少なくとも1つの既存の接続を1対の既存のセグメントに転写させ、NoCがデッドロックフリーであるかどうかを判定させ、判定したことに応答して、NoCがデッドロックフリーである場合、定義されたルートを有しない1対のセグメントを抽出させ、ヒューリスティックを使用してそれらをソートさせ、1対のセグメントおよび1対の既存のセグメントを構成探索部に入力させ、構成探索部は、通信ポリシーを使用して、ソース・宛先ペアのソースから宛先へルーティングするための構成を決定し、通信ポリシーは、ソース・宛先ペアに関連付けられたユーザ定義パラメータを受信するように構成され、通信ポリシーは、構成フィルタリングモジュールと通信し、構成フィルタリングモジュールは、適格構成を出力するように構成され、構成選択モジュールを使用して、ソース・宛先ペアを接続するために実装されるべき最終構成を選択させ、1対のセグメントに接続される必要がある1対の既存のセグメントを、最終構成によって指示される点で分割させ、最終構成によって指示される新しいセグメントを作成させ、1対の既存のセグメントを1対のセグメントと接続する、対応するターンを活性化させ、ソース・宛先ペアのソースから宛先までのルートを計算させる。
【図面の簡単な説明】
【0031】
図1A】NoCを生成する様々な要素を含むネットワークオンチップ(NoC)の論理図である。
図1B】ネットワークのフロアプランに要素を配置したNoCを示す図である。
図2A】本発明の様々な態様および実施形態による制約のセットに基づいてNoC記述を生成するための方法を示す図である。
図2B】本発明の様々な態様および実施形態によるNoC合成ツールのブロック図である。
図3】本発明の様々な態様および実施形態による閉塞エリアおよびNoCとのインターフェースの位置を有するチップのフロアプランのグラフィック図である。
図4】本発明の様々な態様および実施形態によるNoCの接続性テーブルを示す図である。
図5】本発明の様々な態様および実施形態による読み出しおよび書き込みトランザクションのスループット定義を有するシナリオテーブルを示す図である。
図6】本発明の様々な態様および実施形態による3つのトラフィッククラスを有するネットワークの作成を示す図である。
図7】本発明の様々な態様および実施形態によるマージャおよびスプリッタを用いた図6のネットワークの分解を示す図である。
図8】本発明の様々な態様および実施形態による図6のネットワークの1つのマスタのフロアプランにおけるロードマップを示す図である。
図9】本発明の様々な態様および実施形態による図6のネットワークの1つのスレーブのフロアプランにおけるロードマップを示す図である。
図10】本発明の様々な態様および実施形態による図8のロードマップに沿って物理的に分散されたスプリッタのカスケードへのメインノードスプリッタの分解を示す図である。
図11】本発明の様々な態様および実施形態による図9のロードマップに沿って物理的に分散されたマージャのカスケードへのメインノードマージャの分解を示す図である。
図12】本発明の様々な態様および実施形態による近接してマージされた2つのノードの一例を示す図である。
図13】本発明の様々な態様および実施形態によるセグメントおよびターンのデッドロックフリーのネットワークを有するフロアプラン上のNoCトポロジを示す図である。
図14A】本発明の様々な態様および実施形態による分割されているセグメント「S」~「D」を有するフロアプラン上のNoCトポロジを示す図である。
図14B】本発明の様々な態様および実施形態による2つの新しいサブセグメント「S」~「N」および「N」~「D」を使用するように更新された分割セグメント「S」~「D」を有するフロアプラン上のNoCトポロジを示す図である。
図14C】本発明の様々な態様および実施形態による分割セグメントにマージされているサブセグメント「N」および「S」を有するフロアプラン上のNoCトポロジを示す図である。
図14D】本発明の様々な態様および実施形態による分割セグメントに分岐されているノード「N」とノード「S」との間のチャネルによって表されるサブセグメントを有するフロアプラン上のNoCトポロジを示す図である。
図15】本発明の様々な態様および実施形態による単一接続NoCトポロジ合成処理のための方法を示すフローチャートである。
図16A】本発明の様々な態様および実施形態によるノード「S」をノード「D」に接続する要求を有するフロアプラン上のNoCトポロジを示す図である。
図16B】本発明の様々な態様および実施形態による新しい入セグメント、新しい内部セグメント、および既存の出セグメントを有する「S」から「D」へのルーティング構成の増分的合成結果を有するフロアプラン上のNoCトポロジを示す図である。
図17A】本発明の様々な態様および実施形態によるベストエフォート性能でワイヤ長を最適化することを目的とする通信ポリシー1700を有するフロアプラン上のNoCトポロジを示す図である。
図17B】本発明の様々な態様および実施形態による低レイテンシ通信に対する通信ポリシー1710を有するフロアプラン上のNoCトポロジを示す図である。
図18A】本発明の様々な態様および実施形態によるノード「S」からノード「D」に接続されているセグメントの初期セットアップのための増分的合成モード1800を示す図である。
図18B】本発明の様々な態様および実施形態による最小の変化であるパラメータを有するセグメントの物理的変更不能性のための増分的合成モード1810を示す図である。
図18C】本発明の様々な態様および実施形態によるトポロジを最適化し構成を保存するパラメータを有するセグメントの論理変更不能性のための増分的合成モード1820を示す図である。
図18D】本発明の様々な態様および実施形態によるトポロジを最適化し構成を適合させるパラメータを有するネットワーク要素の変更可能性のための増分的合成モード1830を示す図である。
図19】本発明の様々な態様および実施形態によるメッシュカスタムサブネットワーク記述に基づくNoC合成のプロセスを示す図である。
【発明を実施するための形態】
【0032】
詳細な説明
以下では、本発明の様々な態様および実施形態を例示する本技術の様々な例について説明する。一般に、例は、記載された態様を任意の組合せで使用することができる。原理、態様、および実施形態、ならびにそれらの特定の例を列挙する本明細書のすべての記述は、それらの構造的および機能的等価物の両方を包含することを意図している。さらに、そのような等価物は、現在知られている等価物および将来開発される等価物の両方、すなわち、構造にかかわらず同じ機能を実行する開発された任意の要素を含むことが意図される。
【0033】
本明細書で使用される場合、単数形「a」、「an」、および「the」は、文脈が明らかにそうでないことを指示しない限り、複数の指示対象を含むことに留意されたい。本明細書を通して、「一態様」、「態様」、「特定の態様」、「様々な態様」、または同様の文言への言及は、任意の実施形態に関連して説明される特定の態様、特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。
【0034】
本明細書全体を通して、句「1つまたは複数の実施形態によれば」、「一実施形態では」、「少なくとも1つの実施形態では」、「実施形態では」、「特定の実施形態では」、および類似の文言の出現は、必ずしもそうとは限らないが、すべて同じ実施形態または類似の実施形態を指し得る。さらに、本明細書に記載された本発明の態様および実施形態は単なる例示であり、当業者によって理解される本発明の範囲または精神を限定するものとして解釈されるべきではない。開示された発明は、本明細書に記載された任意の新規な態様を含む任意の実施形態において効果的に作成または使用される。本発明の原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含することを意図している。そのような等価物は、現在知られている等価物および将来開発される等価物の両方を含むことが意図される。
【0035】
本明細書で使用される場合、「マスタ」および「イニシエータ」は、同様の知的財産(IP)モジュールまたはユニットを指し、これらの用語は、本発明の範囲および実施形態内で互換的に使用される。本明細書で使用される場合、「スレーブ」および「ターゲット」は、同様のIPモジュールまたはユニットを指し、これらの用語は、本発明の範囲および実施形態内で互換的に使用される。本明細書で使用される場合、トランザクションは、要求トランザクションまたは応答トランザクションであり得る。要求トランザクションの例は、書き込み要求および読み出し要求を含む。
【0036】
本明細書で使用される場合、ノードは、通信経路またはチャネルを介して情報を作成、受信、および/または送信することができる配信ポイントおよび/または通信エンドポイントとして定義される。ノードは、スイッチ、スプリッタ、マージャ、バッファ、およびアダプタのうちのいずれか1つを指し得る。本明細書で使用される場合、スプリッタおよびマージャはスイッチであるが、すべてのスイッチがスプリッタまたはマージャであるとは限らない。本明細書で使用される場合、本発明の様々な態様および実施形態によれば、「スプリッタ」という用語は、単一の入口ポートおよび複数の出口ポートを有するスイッチを表す。本明細書で使用される場合、本発明の様々な態様および実施形態によれば、「マージャ」という用語は、単一の出口ポートおよび複数の入口ポートを有するスイッチを表す。
【0037】
ここで図1Aを参照すると、本発明の様々な態様および実施形態によるネットワークオンチップ(NoC)100が示されている。NoC100は、ネットワークの一例である。本発明の様々な態様および実施形態によれば、ネットワークはノードのセットおよびエッジのセットを含み、これらの各々はモデルを有し、ネットワーク上で変換を実行および実施し、指定された要件に適合する最良の解に収束するために合成の中心で使用することができる。NoC100は、ノードおよびエンドポイントを含み、ネットワークインターフェースユニット(NIU:network interface unit)102、104、106、108、110、112、130、132、および134、ノード/スイッチ114、116、118、120、および122、アダプタ126などのアダプタ、ならびにバッファ124などのバッファ、などの組み立てられた基本ネットワーク機能を使用する。NoC基本ネットワーク機能は、典型的にはパケットの伝送に基づいて、互いに通信するために、NoC100に特有の内部トランスポートプロトコルを使用する。NIUは、アタッチされたシステムオンチップ(SoC)ユニット(図示せず)によって使用されるプロトコルを、NoC100内で使用されるトランスポートプロトコルに転換する。スイッチは、ソースと宛先との間でトラフィックのフローをルーティングする。バッファ124は、長距離に及ぶようにパイプライン要素を挿入するために、または高速送信機と低速受信機との間の、またはその逆の、レート適応に対処するために、パケットを記憶するために使用される。アダプタ126は、データ幅、クロック、および電力ドメイン間の様々な転換をハンドリングする。
【0038】
ここで図1Bを参照すると、フロアプラン内のNIU、スイッチ、および閉塞エリアなどの様々な要素を有するNoC150が示されている。NoC150は、様々なスイッチを介して様々な接続性要素を含む。本発明の一態様によれば、制約のセットがツールへの入力として使用され、これについては以下でより詳細に説明する。本発明のいくつかの態様によれば、ツールは、サブステップのセットを実行し、その構成された要素およびフロアプラン上の各要素の位置を用いて、NoC150などの結果として生じるNoCの記述(合成)を制作する。生成された記述は、バックエンド実装フローにガイダンスを提供するために制作された物理情報を使用して、NoCハードウェアを実際に実装するために使用される。
【0039】
ここで図2Aを参照すると、本発明のいくつかの態様によれば、制約(210、212、214、216、およびシナリオ)のセットが合成ツール220に提供される。本発明のいくつかの実施形態および態様によれば、ツール220の性能および機能は、ロジック合成、バックエンドツールの配置およびルーティングなどのサードパーティASIC実装ツールを含み得る。設計者またはユーザは、ツール220に提供される制約のセットを構築する。制約は、ツールによって理解され処理される情報を取り込むために定義されたフォーマットを使用するコンピュータファイルなどの機械可読形式で取り込まれる。本発明の一態様によれば、フォーマットはXMLである。本発明の他の態様によれば、フォーマットはJSONである。本発明の範囲は、使用される特定のフォーマットによって限定されない。
【0040】
図2Bを参照すると、ツールは、制約の記述を含むファイルを読み出し、合成プロセスを実行する。本発明のいくつかの態様によれば、合成プロセスは複数のステップに細分される。シーケンサ250は、プロセスの各ステップを実行する役割を担う。本発明のいくつかの態様によれば、ユーザ/設計者によって示される制約に照らして、ツール220のシーケンサ250によってステップのセットが実行される。本発明の範囲は、シーケンサ250が呼び出して実行することができるステップの数および種類によって限定されない。
【0041】
図2Bとともに再び図2Aを参照すると、本発明の様々な態様によれば、ネットワークの設計者は、制約210、212、214、および216などの制約のセットを提供および定義する。シーケンサ250は、以下を含む様々な入力を受信する:各マスタとスレーブとの間のロードマップ作成および情報を含む、イニシエータとターゲットとの間の接続性を有するグローバル統合ロードマップを含む入力251;トラフィック分類およびメインスイッチ作成を含む入力252;マージャおよびスプリッタへのメインスイッチ分解を含む入力254;ロードマップにおけるスプリッタおよびマージャの物理的分布に関する情報を含む入力258;エッジクラスタリングに関する情報を含む入力259;性能認識ノードクラスタリングに関する情報を含む入力260。本発明の一態様によれば、シーケンサ250はまた、最適化およびネットワーク再構築に関する情報を含む入力262を受信する。本発明の一態様によれば、シーケンサ250は、ルーティングおよび合法化に関する情報を含む264を受信する。本発明の様々な態様および実施形態によれば、シーケンサ250は、ネットワークを生成するためにすべての入力251~264を使用する。本発明の様々な態様および実施形態によれば、シーケンサ250は、ネットワークを生成するために入力251~264の組合せを使用する。
【0042】
本発明の様々な態様によれば、入力251は、グローバル統合ロードマップに関する入力を含む。グローバル統合ロードマップは、フロアプランの空きスペースの接続性、ならびにイニシエータとターゲットとの間の接続性のグローバルな物理的ビューを取り込む統合モデルを含む。グローバル統合ロードマップは、構築中のネットワークのノード(スプリッタ、マージャ、スイッチ、アダプタ)を位置決めするために使用される物理ノードおよび標準セグメントのグラフによってモデル化される。グローバル統合ロードマップは、計算を固定するために使用される。本発明の様々な態様によれば、グローバル統合ロードマップは永続的であり、これは、システムが増分的合成および後続の実行においてエクスポートおよび再消費するデータであることを意味する。
【0043】
本発明のいくつかの態様によれば、入力259は、エッジクラスタリングに関する情報を含む。エッジクラスタリングは、適切なアルゴリズムおよび技術によってリソースを最小化し、性能目標を向上させることを目的とする。本発明のいくつかの態様によれば、エッジクラスタリングは、入力260のノードクラスタリングと連携し協働して適用される。エッジクラスタリングとノードクラスタリングは、混合によって、同時並行して適用されることによって、または順番に適用されることによって組み合わせて使用することができる。利点および目標は、合成の範囲を拡大し、ネットワークのためのより大きな解空間を張ることである。
【0044】
本発明の様々な態様によれば、入力262は再構築に関する情報を含む。再構築は、様々な変換および能力を含む。本発明のいくつかの態様によれば、変換は、ネットワークの構造に変化があるという点で論理的である。本発明のいくつかの態様によれば、ノードを新しい位置に移動させるなど、ネットワークに物理的な変化があるため、変換は物理的である。再構築の他の例は、ノードをより小さいノードに細分することと、ノード間で親を変更することと、デッドロックを回避し、輻輳に対処するためのネットワークサブパートの重複と、輻輳エリアを回避するため、またはタイミング制約を満たすために、リンクを物理的に再ルーティングすることとを含む。
【0045】
ここで図3を参照すると、本発明の様々な態様によれば、様々なイニシエータインターフェースおよびターゲットインターフェースの位置を有する、NoCが実装されるチップのフロアプラン300が示されている。物理的制約210は、設計に関する物理的情報を提供し、物理的情報は、NoCが実装されるチップのサイズと、NoCロジックが存在し得ないかまたは配置され得ないチップのエリアを表す長方形である、フロアプラン上の様々な閉塞エリアと、NoCロジックが存在することができるチップのエリアであり、閉塞によって覆われていない領域によって画定される空きスペースと、NIUなどのイニシエータインターフェースおよびターゲットインターフェースの位置である、SoCユニットとNoCとの間のインターフェースの位置とを含む。
【0046】
本発明の様々な態様によれば、他の制約は、クロックドメインの拡張を含み、電力ドメイン212も提供され得る。ドメイン212は、特定のドメインに属するロジックを配置することが可能なチップのエリアを含む。
【0047】
本発明の様々な態様によれば、NoCを実装するために使用されるロジックライブラリの機能が提供される。この情報は、基準ロジックゲートのサイズ、および信号が1mmの距離をカバーするのにかかる時間を含む。
【0048】
再び図2Aを参照すると、本発明の様々な態様によれば、SoCは、複数のクロックドメインおよび複数の電力ドメインを含む。クロックドメインは、所与のクロック入力によって供給されるすべてのロジックによって定義される。クロック入力は、その最も重要なパラメータであるクロックの周波数によって特徴付けられる。電力ドメインは、同じ電源から電力供給を受けるすべてのロジックによって定義される。本発明の様々な態様によれば、電源はゲーティングされ、したがって、電力ドメインはオンまたはオフにすることができ、または他の電力ドメインから分離することができる。したがって、設計者は、初期設計の一部として、クロックドメイン制約および電力ドメイン制約のセット212を提供する。
【0049】
本発明の様々な態様によれば、イニシエータおよびターゲットは、NoCに通信可能に接続される。イニシエータは、要求、典型的には読み出しおよび書き込みコマンドを送信するユニットである。ターゲットは、要求、典型的には読み出しおよび書き込みコマンドに対処または応答するユニットである。各イニシエータは、NIUを介してNoCにアタッチまたは接続される。イニシエータにアタッチされるNIUは、イニシエータネットワークインターフェースユニット(INIU:Initiator Network Interface Unit)と呼ばれる。さらに、各ターゲットはNIUを介してNoCにアタッチされる。ターゲットにアタッチされるNIUは、ターゲットネットワークインターフェースユニット(TNIU:Target Network Interface Unit)と呼ばれる。NoCの主な機能は、イニシエータからの各要求を所望の宛先ターゲットに搬送することであり、要求が応答を求め、または必要とする場合、NoCは各ターゲットの応答を対応する要求元イニシエータに搬送する。イニシエータおよびターゲットは、それらを特徴付ける多くの異なるパラメータを有する。本発明の様々な態様によれば、各イニシエータおよびターゲットについて、それらが属するクロックドメインおよび電力ドメインが定義される。書き込みペイロードおよび読み出しペイロードを送信および受信するためにそれらが使用するデータバスの幅は、数ビットである。本発明の様々な態様によれば、書き込み要求を送信し、書き込み応答を受信するために使用される接続(ターゲットとの間の通信経路)のためのデータバスの幅も定義される。さらに、クロックおよび電力ドメイン定義は、本明細書に記載されるように、SoCに存在する前述のクロックおよび電力ドメインへの参照である。
【0050】
引き続き図2Aおよび図2Bを参照し、図4も参照すると、接続性テーブル400が示されている。本発明の様々な態様によれば、テーブル400は、トラフィックが分類によって定義されることを可能にする。ツールは、イニシエータとターゲットとの間の各接続のためにトラフィッククラスラベルを使用することを可能にする。テーブル400に示すように、L1、L2、およびL3の3つのトラフィッククラスがある。トラフィッククラスラベルは、ユーザまたは設計者によって選択される任意のラベルである。任意の数のラベルを定義することができ、本発明の範囲はラベルの数によって限定されない。各ラベルは、独立したネットワークリソースの必要性を表す。各ラベルは、本発明によって別個のサブネットワークを与えられ、基礎となるNoC技術によってサポートされる場合、物理的に異なるか、または仮想ネットワークを使用することができる。
【0051】
本発明の様々な態様によれば、イニシエータは、NoCに接続されるすべてのターゲットまたはスレーブに要求を送信できる必要はない。イニシエータから要求を受信することができるターゲットの正確な定義は、テーブル400などの接続性テーブルに概説または記載される。接続性およびトラフィッククラスラベリング情報は、行列として表すことができる。各マスタは行を有し、各スレーブは列を有する。マスタがスレーブにトラフィックを送信することができなければならない場合、トラフィッククラスラベルが、マスタ行とスレーブ列との間の交点に存在しなければならない。交点にラベルが存在しない場合、ツールはそのマスタとそのスレーブとの間の接続性を必要としない。例えば、マスタ1(M1)は、定義されたラベル1(L1)を使用してスレーブ1(S1)と接続通信しているが、M1はS2と通信せず、したがって、M1とS2との交点にはラベルがない。本発明の様々な態様によれば、接続性を表すために使用される実際のフォーマットは、マスタ・スレーブ組合せの各ペアがそのトラフィッククラスの正確な定義を有する限り、または接続がない場合には分類ラベルを有さない限り、異なり得る。
【0052】
ここで図5を参照すると、読み出し(RD)および書き込み(WR)トランザクションの様々なシナリオ(図2Aに示す)を含む、本発明の様々な態様によるテーブル500が示されている。テーブル500は、ツールに提供される様々なスループットレートを定義する情報を含む。シナリオは、マスタとスレーブとの間のデータのスループットに関して予想される性能を定義する。各シナリオは、各イニシエータと各ターゲットとの間の予想される必要な読み出し帯域幅および予想される必要な書き込み帯域幅を記述する。スループットは、バイト毎秒(B/s)で定義される。典型的なSoCは、複数の動作モードを有する。一例として、スマートフォン用のSoCは、ゲーム動作モード、オーディオ通話動作モード、アイドル動作モードなどを有し得る。これらは、異なるスループットレートに依存するシナリオを定義する。したがって、シナリオのセットは、SoCがサポートする異なる動作モード、およびそれに対応して、マスタとスレーブとの間のスループットに関して予想されるNoC最小性能を表す。
【0053】
シナリオは、2つの行列として表すことができ、1つは読み出しスループットを定義し、1つは書き込みスループットを定義する。本発明の様々な態様によれば、スレーブからマスタに戻るデータを処理する応答ネットワークをサイズ設定するために、読み出しスループット要件が使用される。書き込みスループット要件は、本発明の様々な態様に従って、マスタからスレーブに移動するデータである要求ネットワークをサイズ設定するために使用される。本発明の様々な態様による、様々なシナリオのスループット要件の一例をテーブル500に示す。シナリオを表すために使用される実際のフォーマットは、(マスタ、スレーブ)の各対が読み出しおよび書き込みに必要な最小スループットの正確な定義を有する限り、異なり得る。テーブル500において、M1からS1への読み出しトランザクションは、100MB/sの最小性能スループットを有する。テーブル500において、M1からS1への書き込みトランザクションは、50MB/sの最小スループットを有する。
【0054】
本発明のいくつかの態様によれば、ツールのシナリオは定義されておらず、その場合、ツールは、最低ゲートコストおよび/または最低ワイヤコストなどの物理的コストに対してNoC合成プロセスを最適化する。
【0055】
ここで図6図2Bとともに参照すると、本発明の様々な態様に従って初期ネットワーク600が作成される。ネットワーク600は、以下の定義されたパラメータまたはコンポーネントを有する接続性行列を実装する。
【0056】
・マスタごとに1つのネットワークインターフェースユニット、
・スレーブごとに1つのネットワークインターフェースユニット、
・クラスのメインスイッチと呼ばれる、定義されたトラフィッククラスごとに1つのスイッチが作成される、
・各イニシエータ/マスタNIUの後で、このマスタが到達する必要のある異なるメインスイッチにトラフィックを分割する1つのスイッチ、
・各ターゲット/スレーブNIUの前で、そのターゲットにトラフィックを送信している異なるメインスイッチからのトラフィックをマージする1つのスイッチ
各スイッチのデータ幅およびそれが属するクロックドメインは、ツールへの入力として、各アタッチされたインターフェースのデータ幅およびそれらのクロックドメインを使用して計算される。本発明の様々な態様によれば、NoCの一部であるネットワークを変換する各ステップはまた、新たに作成されたネットワーク要素のデータ幅およびクロックドメインの計算を実行する。
【0057】
ここで図7および図2Bを参照すると、図6のネットワーク600が示されており、ツールのプロセスは、本発明の様々な態様によるネットワーク600を変換する。シーケンサ250は、マージャおよびスプリッタへのメインスイッチ分解を表す入力254を有する。ツールは、ネットワーク600の各メインスイッチを、スプリッタおよびマージャを用いた同等の実装に分解する。本発明の様々な態様によれば、いくつかのスイッチは、単一の入口ポートおよび複数の出口ポートを有する。本発明の様々な態様によれば、いくつかのスイッチは、複数の入口ポートおよび単一の出口ポートを有する。各メインスイッチ入口ポートはスプリッタに接続され、各メインスイッチ出口ポートはマージャに接続される。メインスイッチに対して、接続性テーブルに従ってスプリッタおよびマージャがともに接続される。
【0058】
ここで図8を参照すると、本発明の様々な態様によるフロアプラン800が示されている。シーケンサ250は、各マスタとスレーブとの間のロードマップ作成を表す入力256を有する。フロアプラン800は、フロアプラン上のマスタインターフェース(M0)と、スレーブS0、スレーブS1、スレーブS2、およびスレーブS3などのその接続されたスレーブの各々との間で計算される物理経路802を含む。経路802は、マスタM0のスプリッタロードマップと呼ばれ、図示されていないが、すべてのマスタはスプリッタロードマップを有する。ツールは、経路の長さを最小化するアルゴリズムを含む、ソース点と複数の宛先点との間の経路を見つけるのに適した任意のアルゴリズムを使用する。
【0059】
ここで図9を参照すると、フロアプラン800は、フロアプラン上のスレーブS0のスレーブインターフェースとその接続されたマスタの各々との間の計算された物理経路902とともに示されている。経路902は、スレーブS0のマージャロードマップである。明らかなように、すべてのスレーブはマージャロードマップを有する。ツールは、経路の長さを最小化するアルゴリズムを含む、複数のソース点と宛先点との間の経路を見つけるのに適した任意のアルゴリズムを使用する。本発明の様々な態様によれば、ツールは、その機能を維持し、ネットワーク要素に位置情報を追加するようにネットワークを変換する。
【0060】
ここで図10を参照すると、フロアプラン800は、本発明の様々な態様による経路1002とともに示されている。シーケンサ250は、ロードマップ上のスプリッタおよびマージャの物理的分布を提供する入力258を有する。このツールを使用して、各スイッチがマージャおよびスプリッタに分解される。ツールを使用して、メインスイッチ内の各スプリッタは、スプリッタのカスケードにさらに分解され、カスケードの各スプリッタは、アタッチされたマスタのスプリッタロードマップの分岐点に配置される。ロードマップの分岐点は、経路が2つ以上の分岐に分割されているという事実によって定義される。
【0061】
ここで図11を参照すると、フロアプラン800は、本発明の様々な態様による経路1102とともに示されている。ツールを使用して、メインスイッチ内の各マージャの各スイッチは、マージャがさらにマージャのカスケードに分解され、カスケードの各マージャは、アタッチされたスレーブのマージャロードマップの分岐点に配置される。ロードマップの分岐点は、経路が2つ以上の分岐に分割されているという事実によって定義される。スプリッタのカスケード内でスプリッタを分解するプロセスは、カスケードへの入力の数が依然として1つであり、カスケードの出力の数が元のスプリッタの出力の数と同一であるため、元のスプリッタ機能を維持する。マージャのカスケード内でマージャを分解するプロセスは、カスケードの出力の数が依然として1つであり、カスケードへの入力の数が元のマージャへの入力の数と同一であるため、元のマージャ機能を維持する。本発明の様々な態様によれば、プロセスの効果は、スイッチ間の実際の接続が必要とされる場所の近くに物理的に配置された、マージャおよびスプリッタによって表される基本スイッチのセットを得ることである。
【0062】
本発明の様々な態様によれば、ツールは、マスタとスレーブとの間の必要な最小スループットのセットであるシナリオで定義された性能を維持しながら、達成可能なスイッチ間で使用されるワイヤの数を減らすためにネットワークを変換する。本発明の様々な態様によれば、スイッチは、性能を認識したスイッチングのためにクラスタ化され、ロードマップ上に分布したマージャおよびスプリッタは、通常のスイッチと同様に扱われる。
【0063】
本発明の一態様によれば、ツールは、反復的なプロセスを使用し、さらなるスイッチマージが生じ得なくなるまで、性能が依然として満たされる条件下でスイッチをマージする。ツールは、以下のように説明されるプロセスを使用する。
【0064】
1)それ以上のスイッチ融合は不可能である間、以下を行う:
a)その近隣のうちの1つと融合するための候補スイッチを選択する。選択プロセスは、ネットワーク内のすべてのスイッチが最終的に候補であることを保証する。
【0065】
b)候補が選択されると、融合する近隣を探索する。隣接基準は、コスト関数の評価に基づく。コスト関数は、候補との融合に「最も適している」スイッチを返すものとする。「最も適している」の定義は実装に依存するが、コスト関数は、2つのスイッチの潜在的な融合が、ワイヤ長、ロジック面積、電力、および性能などを含む少なくとも1つのメトリックに関して利得を最大化するようなものでなければならない。
【0066】
c)融合が発生した場合、性能シナリオが依然としてすべて最小スループット要件を満たすかどうかをテストする。そうでない場合、これら2つのスイッチはマージすることができない。ツールによって実行されるプロセスは、それ以上の近隣を見つけることができなくなるまで別の近隣を探索し、その場合、すべてのスイッチがそのまま残されるか、またはすべてのシナリオの最小スループット要件に違反することなく候補とマージすることができる1つの近隣が見つかるまで、その場合、候補スイッチを近隣とマージすることによってネットワークが修正される。
【0067】
本発明の様々な態様によれば、プロセスは、スイッチが特定のサイズ(最大入口ポート数、最大出口ポート数)を超えて大きくならないようにすることが可能である。結合されたスイッチが設定された閾値を上回る場合、マージは防止される。
【0068】
ここで図12を参照すると、本発明の様々な態様による、マージャのためのスイッチSW4の隣に候補スイッチSW3が示されている。シーケンサ250は、性能アウェアスイッチングクラスタリングを提供する入力260を有する。ツールは、2つのスイッチをマージするためのプロセスを実行する。スイッチがマージされると、異なるスイッチから出ていたワイヤは、接続された各スイッチから結合されたスイッチまで1つのワイヤに単純化される。本発明の様々な態様によれば、スイッチSW3およびSW4がマージされる。SW1とSW4とSW3との間の接続は組み合わされ、SW1とSW3_4との間の単一の接続に置き換えられる。したがって、離れたスイッチ間の長い接続は除去され、最小限に低減され、一方、近いスイッチ間の接続は除去され、スイッチ自体の内部で行われる。
【0069】
再び図2Bを参照すると、シーケンサ250への入力262は、ネットワークによって使用されるワイヤの数、ネットワーク要素の面積、およびネットワーク要素によって消費される電力をさらに低減するために実行され得る様々な最適化を含む。そのような最適化の例は、使用されていないため、またはそれらのトラフィックが再ルーティングされ得るために除去され得るリンクの検出、リンクがシナリオで必要とされるよりも広い場合にリンクの幅を縮小すること、ネットワークの全ワイヤ長を最小化するすべてのスイッチ素子の最適な配置を見つけることによってワイヤ長の最適化を実行することとを含み、ネットワークの全ワイヤ長は、ネットワーク素子間の各接続によって張られる距離とその接続の幅との積の和である。
【0070】
引き続き図2Bを参照すると、シーケンサ250への入力264は、ネットワーク要素が割り当てられた空きスペースに収まり、重複せず、対応するクロックおよび電力ドメインの制限に存在するように、ネットワーク要素の位置を修正することによって合法的なNoCを制作することを含む。本発明の様々な態様によれば、各ネットワーク要素によってダイ上で占有される面積は、基準ロジックゲートの面積などの本技術の能力に関して提供される情報を使用して計算される。次に、各要素は、その配置の正確さ(要素のために十分な空きスペースが存在し、他の要素は重複しない)についてテストされる。テストが失敗した場合、要素は、テストが合格する適切な位置が見つかるまで移動される。
【0071】
形式
ここで図13を参照すると、フロアプラン1300は、複数のセグメントおよびターンに関して表現することができるデッドロックフリーNoCを示している。セグメントは、2つのコンポーネント、例えば、「A」1311と「B」1301、「B」1301と「C」1302、「C」1302と「D」1303、および/または「D」1303と「A」1311、の間の有向チャネルを表す。第1のセグメント1304は、「A」1311と「B」1301との間のフロアプランにおける物理経路を保持し、第2のセグメント1305は、「B」1301と「C」1302との間のフロアプランにおける物理経路を保持し、第3のセグメント1306は、「C」1302と「D」1303との間のフロアプランにおける物理経路を保持し、第4のセグメント1307は、「D」1303と「A」1311との間のフロアプランにおける物理経路を保持し、これは物理座標(xi,yi)のリストである。セグメントが、合成および/または生成中に利用されて特定のルーチンのコストを追跡することができる1つまたは複数の関連付けられたコストメトリックを有することは、本発明の範囲内である。
【0072】
1対のセグメントであるターンは、ネットワーク内のデッドロックを回避するように利用され得る。許容されるターン1308、ターン1309、およびターン1310を考慮すると、セグメント間にサイクルが存在しない限り、ネットワークはデッドロックフリーのままである。本発明の他の態様または実施形態によれば、ノード間にサイクルが存在してもよい。ターンは、ネットワークがデッドロックフリーであることを保証する基本メカニズムであるセグメント間の依存性を有する。ノードサイクルを防止するために必要なチャネルのみが割り当てられるように、デッドロックを引き起こすことなくワイヤを再利用するために、ノード間にサイクルが存在することは、本発明の範囲内である。結果として、これは不要なチャネルを排除し、それに関連する関連付けられたワイヤコストを低減する。
【0073】
再び図13を参照すると、第1のセグメント1304から第2のセグメント1305への第1のターン1308の存在は、パケットが第1のセグメント1304から第2のセグメント1305へルーティングされ得ることを示す。第2のセグメント1305から第3のセグメント1306への第2のターン1309の存在は、パケットが第2のセグメント1305から第3のセグメント1306へルーティングされ得ることを示す。第3のセグメント1306から第4のセグメント1307への第3のターン1310の存在は、パケットが第3のセグメント1306から第4のセグメント1307へルーティングされ得ることを示す。セグメント分割に関して、セグメント「S1」~「S2」は、その物理ルートの任意の点(xi,yi)で分割され、2つの新しいセグメントをもたらし得る。(A,B)に近づくターン(D,A)が存在しないため、このネットワークはデッドロックフリーである。
【0074】
ここで図14A図14Dを参照すると、NoC1400上のセグメント分割の一実施形態が示されている。セグメント1403(図14A)は、ノード「A」1401~ノード「B」1402によって定義される。セグメント1403は、その物理ルートの任意の点(xi,yi)で新しい第1のセグメント1409A(図14B図14D)と新しい第2のセグメント1409B(図14B図14D)とに分割1404され得る(図14A)。図14B図14Dは、新たに作成されたノード「S」1408(図14B図14D)が形成されるこの分割1404(図14A)の結果を最もよく示している。第1のターン1405、第2のターン1406(図14B図14D)、および第3のターン1407が示されている。
【0075】
図14Bは、2つの新しいサブセグメント「A」1401~「S」1408および「S」1408「B」1402を使用するように更新された分割セグメント「A」1401~「B」1402を有するNoCトポロジのセグメント分割を示す。新たに作成されたノード「S」1408は、NoC内の新しいスイッチである。分割セグメントを含むターンのセットは、2つの新しいサブセグメントを使用するように更新される。新しいターン1406は、ターン1407を維持しながら追加される。
【0076】
分割されたセグメントは、可変ルートを有するサブセグメントをもたらしたので、分割されたセグメントはもはや「そのまま」とは見なされない。この再帰的表現は、既存のルートの一部であり、分割される必要があり得るセグメントが、既存のルートを再構築するときに、一連のサブセグメントとして依然として回復され得ることを保証するので、増分性に不可欠である。セグメントを分割することにより、セグメントを新しいセグメントに接続することができる。これにより、新しいターンのセットが得られる。
【0077】
図14Cは、分割セグメントにマージされて新しいターン1412をもたらす、ノード「N」1410とノード「S」1408との間のチャネルによって表される新しいセグメント1411を示す。
【0078】
図14Dは、ノード「N」1410とノード「S」1408との間のチャネルによって表される新しいセグメント1413が分割セグメントに分岐され、新しいターン1414が得られることを示す。追加されたノード「N」1410は、IPブロックおよび/またはイニシエータを含み得るが、これらに限定されない。
【0079】
プロセス
本発明の一態様および実施形態によれば、システムは生成および合成プロセスを実行し、すべての既存のネットワークルートはセグメントおよびターンにトランスレートされる。一実施形態では、NoC全体は、例えば、2つのノード(S、D)間に存在する物理経路によって定義される少なくとも1つのセグメントのセットとして説明される。本発明の様々な態様および実施形態によれば、ネットワークがデッドロックフリーでない場合、本発明の1つまたは複数の態様によれば、ネットワークまたはNoCは最初にデッドロックフリーでなければならないので、システムは「失敗」通知を提供し、ユーザに返す。システムはまた、合成する必要がある定義されたルートおよび/または接続を持たない接続のセットを抽出する。ヒューリスティックを与えられた接続の抽出されたセットをソートする。本発明の様々な態様および実施形態によれば、ソース「S」~宛先「D」の各接続について、単一の接続合成プロセスは、構成探索部、構成フィルタリングモジュール、構成選択モジュールを使用すること、分割、作成、およびルート計算を含む。クロックドメインおよびデータ幅設定を割り当てることによって、帯域幅要件が満たされるように、新しく作成されたコンポーネント、スイッチおよびリンクの各々を構成する。
【0080】
図15は、トポロジ合成処理を用いるNoCジェネレータのための方法1500を例示するフローチャートである。合成されるべき入力1503Aは、新しい接続1501であってもよく、および/または入力1503Bは、既存のセグメント1502であってもよい。新しい接続1501は、スイッチおよび/またはリンクなどの新しいコンポーネントを作成すること、「S」から「D」へのネットワークルートを定義することを含む。既存のセグメント1502は、少なくとも1つのセグメントおよび/または少なくとも1つのターンを有する1対のセグメントとして再表現されてもよい。既存のネットワークは、変更することができないターンのセットを有する。新しいセグメントが追加されると、新たに追加されたセグメントに関連付けられたターンも追加され、「S」から「D」までのルートが完成する。追加されたターンは、既存のターンとのサイクルおよび/またはデッドロックを生成しない。
【0081】
構成探索部1504は、新しい接続1501である入力1503Aと、既存のセグメント1502である入力1503Bとを受信する。セグメント「S」から「D」に接続する方法は複数あるため、構成探索部1504は、各セグメントに通信ポリシー1506が割り当てられていることに基づいて、最良の構成に影響を与える。構成探索部1504は、合法的構成1505の探索を使用して「S」を「D」に接続するための様々な方式を探索する。合法的構成1505は、記述されたパラメータのリストである。構成探索部1504は、メモリに記憶された意味のある構成のリストからセグメントを分割するために、セグメントをトラバースして、位置を示す可能性の少なくとも1つの構成を探索および/または検討および分析するように構成される。構成探索部1504は、NoCの一部のセグメントに「S」を接続するための新しい入セグメントを有する構成を有してもよい。「S」が既に接続されている場合、それは既に入セグメントを有する。構成探索部1504は、接続するための新しい出セグメントを有する構成を有してもよい。
【0082】
所与の経路のコストは、通信ポリシー1506に従って各ステップで更新される。一例では、通信ポリシー1506がワイヤ長および/またはレイテンシを優先するかどうかに応じて、宛先から離れた既存のセグメント内を移動することは、宛先に直接到達する新しいセグメントを作成するよりも多かれ少なかれコストがかかる場合がある。確立された最短経路アルゴリズムが、いくつかの通信ポリシーを効果的に実施する方法としてコスト更新を使用して、具体的なセグメントを探索し、潜在的な将来のセグメントを識別することは、本発明の範囲内である。
【0083】
主構成探索プロセス1504は、Aおよび/またはダイクストラを含むがこれらに限定されない共通最短経路アルゴリズムの専用バージョンとして設計されてもよい。最短経路アルゴリズムにおける所与のステップは、現在点から到達することができる異なる点を考慮する。現在点は、既存のセグメントの物理経路に沿った少なくとも1つの点である。現在のセグメント内の現在点から次の点までの経路が考慮される。
【0084】
一実施形態では、経路は、現在のセグメントの経路に沿って1ステップ進んでもよい。一実施形態では、セグメントの経路の終点に到達した場合、経路は、現在のセグメントに直接接続され、現在のセグメントが「曲がる」ことができるセグメントなどの、次のセグメントのいずれかの経路の最初の点に進んでもよい。
【0085】
一実施形態では、出セグメントが存在しない場合など、宛先が接続されていない場合、経路は宛先点に直接ジャンプしてもよい。これは、新しい出セグメントを作成することに対応する。次いで、新しい出セグメントおよび/または将来の出セグメントが構成に追加される。
【0086】
さらに他の実施形態では、循環依存関係が作成されず、2つのセグメントが互換性のある通信ポリシーを有し、通信ポリシーがマージを許可する限り、経路は任意のセグメントの任意の点にジャンプしてもよい。これは、構成に追加される新しい内部セグメントを作成することに対応する。
【0087】
再び図15を参照すると、構成フィルタリングモジュール1507は、どの構成が合法的であるか、どの構成がデッドロックをもたらすか、どの構成が最適ではないかを含むがこれらに限定されないデータを含む所定のリストを有する。構成フィルタリングモジュール1507は、通信ポリシー1506ベースの基準および/または任意のカスタム基準を含むがこれらに限定されない複数の基準を与えられた構成をフィルタリングし、サブセットのみを保持する。カスタム基準の例では、プログラマなどのユーザは、「S」から「D」へのルート間のより短い長さによって定義される低レイテンシにパラメータを基礎付けてもよい。ユーザは、経路の最大長さを定義してもよい。通信ポリシー1506の構成フィルタリングモジュール1507は、経路の長さがユーザ定義の閾値を超える場合、ルートを除去する。他の例では、パラメータは、最小数の余分なワイヤの使用に基づいてもよい。他の例では、パラメータは、最も低いコストを有する「S」から「D」へのルートを優先するコスト関数に基づいてもよい。構成フィルタリングモジュール1507は、ユーザ定義パラメータにカスタマイズ可能である。ユーザは、独自のフィルタを設定し、特定のタイプの構成を破棄してもよい。
【0088】
第1の基準は、通信ポリシー1506ベースの基準である。ユーザは、新しいセグメントが作成される方式を制御してもよい。通信ポリシー1506は、ネットワーク内の任意の所与の接続に関連付けられ得るパラメータのセットである。システムは、定義された複数の通信ポリシーを有してもよく、各接続は、1つの通信ポリシー1506に関連付けられてもよい。通信ポリシー1506は、パラメータおよびフラグを有する。フラグの一例では、低レイテンシは、ソースから宛先までの総経路長を最小化する方式で接続が実施されるべき場合である。フラグの他の例では、イネーブル直列化は、ソースから宛先への経路に含まれるリンクが直列化を使用してワイヤを節約することができる場合である。所与の接続のいくつかの構成は、接続を管理する通信ポリシー1506に関して合法的ではないことがある。適格構成1508は、合法的構成のフィルタリングされたバージョンである。一例では、接続「S」~「D」が低レイテンシ通信ポリシーを有するように設定されている場合、ルートの全長およびホップまたはトラバースされるコンポーネントの数に対する制限を適用する必要があり、これらの制限内に入らない構成候補は破棄される。
【0089】
再び図15を参照すると、フィルタリング後、構成フィルタリングモジュール1507は適格構成1508を出力する。構成選択モジュール1509によって実行される適格構成を1つ選択することが望ましい。最良の構成を選択することは、構成選択モジュール1509を使用して達成され、それは、接続「S」から「D」の最終的な合成として実施されるべき唯一の最終構成を保持する。最良の構成を選択するために使用されるメトリックは構成可能であり、コミュニティポリシー1506に基づいて、いくつかのパラメータを考慮に入れてもよい。一実施形態では、通信ポリシーパラメータは総追加ワイヤ長である。追加で作成されたセグメントの長さは、ルートをトラバースするために必要なワイヤを作成する。ワイヤに関連付けられたコストがある。トポロジのコストを低減するために総ワイヤ長を最小化することを目的とするパラメータがより望ましいであろう。一実施形態では、通信ポリシーパラメータは総ルート長である。ルートの全長は、既存のセグメントの合計と新たに追加されたセグメントとの組合せである。このパラメータは、レイテンシを最小化することに焦点を当てている。他の実施形態では、通信ポリシーパラメータは帯域幅分布に基づく。このパラメータは、セグメント上のトラフィック分布および関連する輻輳レベルに焦点を合わせることによって性能を最適化する。
【0090】
最良の構成1510が選択されると、システムは、関与するセグメントを分割し、新しいセグメントおよびターンを作成1512し、それをネットワークに適用することによって、最良の構成1510を実装1511する。最良の構成が最終構成であることは本発明の範囲内である。セグメントが分割されると、選択された構成によって指示される点で新しいセグメントに接続される必要があるすべての既存のセグメントで分割される。最適化に関して、分割点がセグメントのエンドポイントの1つから特定の距離内にあり、エンドポイントがスイッチである場合、エンドポイントは、新しいスイッチを作成する代わりに接続に再利用されるべきである。これにより、作成されるスイッチの数を減らすことができる。選択された構成によって指示される必要な新しいセグメントを作成1512し、対応するターンを活性化させる。新たに作成1512されたセグメントおよびターンは、既存1502のセグメントおよびターンと組み合わせて、最終ルート1514を生成するルーティングツール1513に入力される。ルートは、新たに作成されたセグメントを考慮して「S」から「D」まで計算される。ルートは、メモリに記憶される。ルーティングツール1513は、セグメントがフロアプランに沿った地理的経路に関して定義されているため、地理的フロアプラン上のルーティング接続である。
【0091】
図16Aは、ノード「S」1601~ノード「D」1602を有するフロアプラン上のNoCトポロジを示す。既存のネットワークがあり、ノード「S」1601からノード「D」1602までの新しい接続を追加する要求などの変更が要求された場合、増分的合成を実行する必要がある。IPブロックは、ルートがナビゲートする必要があるフロアプランに対する制限の一例である。既存のノードは互いに接続されている。既存の構造に変更を加える必要なく、既存のネットワークに新しい接続のためのルートを作成することが望ましい。
【0092】
図16Bは、ノード「S」1601およびノード1606を有する新しい入セグメント1603、ノードを有する新しい内部セグメント1604、および出セグメント1605を有する、「S」1601から「D」1602へのルーティング構成の増分的合成結果を有するフロアプラン上のNoCトポロジを示す。合法的構成1505の探索は、図16Bに示す構成で示されており、ノードがまだNoCに接続されていない場合、入セグメント1603が追加される。一実施形態では、新しい入セグメント1603は、NoCのセグメントに「S」1601を接続することができる。「S」1601がNoCのセグメントに既に接続されている場合、それは既に入セグメントを有する。
【0093】
図16Bの図では、「D」が既に他のノードに接続されていたため、出セグメント1605が存在していた。したがって、「D」が既に接続されている場合、それは既に出セグメントを有する。新しい出セグメントは、NoCのいくつかのセグメントを「D」に接続するための構成オプションであり得る。
【0094】
再び図16Bを参照すると、任意の数の内部セグメント1604が存在することは、本発明の範囲内である。少なくとも1つおよび/または複数の新しい内部セグメントは、入セグメントが出セグメントに到達するように既存のセグメントを接続することができる。2つの既存のセグメント間の接続は、それがセグメント間に循環依存性を生成しない場合にのみ考慮され、デッドロックのない構成のみが考慮されることを保証する。合成は、新しいスイッチおよび/またはセグメントを作成することなく、ネットワークルートを計算することを含んでもよい。これは、「S」と「D」の両方がネットワークに接続されており、既存のターンのみが与えられた場合に入セグメントが出セグメントに既に到達することができる場合に当てはまる。本発明の重要な態様は、構成が将来のセグメントを定義することができ、それによって探索フェーズ中にトポロジに具体的なセグメントが作成されないことである。
【0095】
一実施形態では、システムは、ユーザにとって選択を容易にするために、いくつかの共通の通信ポリシーを予め設定してもよい。ユーザが通信ポリシーを作成することを要求する代わりに、ユーザがプリセットのリストから選択することがより望ましい。異なる通信ポリシーに関連付けられた接続は、物理的に分離された合成ルートを有する。合成中、構成フィルタリングモジュール1507(図15)および構成選択モジュール1509(図15)は、通信ポリシー1506(図15)に依存して、ルートを実装1511するための最良の構成1510を出力する。
【0096】
図17Aは、ベストエフォート性能でワイヤ長を最適化することを目的とする通信ポリシー1700を有するフロアプラン上のNoCトポロジを示す。図17Aおよび図17Bは、選択された通信ポリシーに基づいて、同じ接続がどのように異なる実装形態をもたらし得るかを示す。図17Aの図では、ノード「S」をノード「D」に接続することに焦点が当てられており、ワイヤ長のパラメータが最適化の主な基準である。構成選択モジュールは、最小限の余分なワイヤを作成する実装を選択する。短い入セグメント1703および活性化される1つのターン1704を有することは、パラメータ要件を満たすことが示されている。
【0097】
図17Bは、低レイテンシ通信に対する通信ポリシー1710を有するフロアプラン上のNoCトポロジを示す。この例では、いくつかのスイッチをトラバースするのではなく、ノード「S」1711とノード「D」1712との間の直接接続1713の優先性がある。活性化される1つのターン1714は「D」付近にある。この構成は、より多くの余分なワイヤを発生させ、より高価であるが、それは最短長さを有する「S」から「D」までのユーザ選択経路である。
【0098】
既存のセグメントを再利用しながら新しい接続を増分的に合成するための基本的な方法は、図1図17Bに最もよく示されている。この実施形態は、既存のセグメントを分割して新しいセグメントを分岐することに依存する。プロセスの終わりに、クロックおよび/またはデータ幅などの新しく作成されたコンポーネントのみが構成され、既存のコンポーネントは変更されないままである。再び図15を参照すると、既存のセグメントおよびターン1502は、増分レベルでユーザ制御によって変更される。ユーザは、通信ポリシー1506を利用して、ネットワーク内の新しいセグメントの作成および選択を制御するだけでなく、既存のトポロジまたはセグメントも修正する。一例では、新しいルートで既存のセグメントを再使用することは、性能上の考慮事項、またはユーザが実施した可能性があり、セグメントが変更されないままであることに依存する以前の最適化のために望ましくない場合がある。セグメントが分割される場合、複数のルートをトラバースするためにホップが追加され得るが、これは所望の結果ではない場合がある。結果として、システムは、セグメントの物理的変更可能性、スイッチの物理的変更可能性、およびネットワーク要素の論理的変更可能性に基づくいくつかの増分レベルまたはモードを定義する。既存のNoCトポロジの存在下で新しい接続のセットを合成するときに、ユーザの意図を捕捉することがより望ましい。
【0099】
代替の実施形態では、増分的合成モードは、既存のトポロジがどのように変更されるかをユーザがカスタマイズすることを可能にする。
【0100】
セグメントの物理的変更可能性に関して、セグメントはデフォルトで変更可能である。セグメントは、新しいセグメントを分岐するために分割されてもよい。例えば、既存のルートにスイッチを追加したくない場合、ユーザはセグメントを変更不能にしてもよい。
【0101】
スイッチの物理的変更可能性を参照すると、エンドポイントがスイッチである場合、変更不能セグメントの既存のエンドポイントに新しいセグメントを接続してもよい。スイッチの物理的サイズを変更することが望ましくない場合、スイッチは変更不能であってもよく、その結果、変更不能スイッチに新しいセグメントを接続することはできない。
【0102】
ここでネットワーク要素の論理的変更可能性を参照すると、デフォルトとして、データ幅および/または割り当てられたクロックを含むがこれらに限定されない既存のネットワーク要素は、増分的合成プロセスによって再構成されない。新たに作成されたスイッチおよびアダプタのみが構成される。これは、不十分な帯域幅および/または多すぎるクロックドメイン交差などの非効率的な構成をもたらし得る。任意のコンポーネントは、論理的に変更可能であるとしてマークされて、結果として生じる新たなトポロジを所与として既存のコンポーネントを再構成できるようにしてもよい。前述の概念に基づいてシステム内で事前設定された増分的合成モードをどのように定義することができるかの例では、3つの事前設定モードが説明される。
【0103】
図18Aは、ノード「S」1801からノード「D」1802に接続されているセグメントの初期セットアップのための増分的合成モード1800を示す。高帯域幅セグメント1803および低帯域幅セグメント1804は、既存のNoCトポロジルートをトラバースする。初期セットアップ中に、ユーザパラメータは、「S」1801を「D」1802に接続するために既存のトポロジがどのように変更されるかを決定する。
【0104】
図18Bは、最小の変化であるパラメータを有するセグメントの物理的変更不能性のための増分的合成モード1810を示す。セグメントは分割1811され、新しいセグメントを分岐1812し、デッドロックフリーのネットワークでUターンが作成され、最小限の変更で「S」1801を「D」1802に接続する。高帯域幅セグメント1803は、分割を防止するために変更されず、低帯域幅セグメント1804のトラバースは、既存のNoCトポロジルートを回るようにルーティングされる。
【0105】
最大量の既存のトポロジを保存することがより望ましい。すべてのセグメントは、新しい接続を実装するために入セグメントおよび出セグメントが必要とされるため、例外的な入セグメントおよび出セグメントを用いて物理的に変更不能にされる。すべてのスイッチは物理的に変更不能であり、すべてのネットワーク要素は論理的に変更不能である。一例では、「S」1801から「D」1802までの1つのセグメントが変更不能とマークされている場合、セグメントの分割を防止し、既存のセグメントを回るルートを容易にする。その結果、既存のセグメントは変更されないままである。
【0106】
図18Cは、トポロジを最適化し構成を保存するパラメータを有するセグメントの論理変更不能性のための増分的合成モード1820を示す。低帯域幅1804セグメントが分割1821され、新しいセグメント1822が分岐され、「S」1801を「D」1802に接続するための新しいターンが作成された。高帯域幅は、より低い帯域幅に接続されており、スイッチを変更することができないため、完全には利用されない。いくつかのスイッチが適応するように変更されることがより望ましいであろう。このプリセットは、既存のセグメントを分割し、スイッチがより最適化されたトポロジのための新しい接続を有することを可能にする。結果として、既存の要素の再利用によるより良好なコストが達成され得る。例えば、クロック周波数、スイッチに割り当てられたクロック、および/または他の属性を変更せずに維持するために、既存のネットワーク要素を論理的に変更不能にしてもよい。
【0107】
図18Dは、トポロジを最適化し構成を適合させるパラメータを有するネットワーク要素の変更可能性のための増分的合成モード1830を示す。高帯域幅1803セグメントが分割1831され、新しいセグメント1832が分岐され、「S」1801を「D」1802に接続するための新しいターンが作成された。スイッチが変更されたため、より高い帯域幅に接続されていたため、高帯域幅が完全に利用される。すべてのセグメントを分割することができ、スイッチを新しいセグメントに接続することができ、および/またはコンポーネントを再構成することによって結果が改善される場合、例えばクロックを変更して性能を改善する場合、合成プロセスに対するより高い柔軟性が達成される。
【0108】
図19は、メッシュカスタムサブネットワーク記述に基づくNoC合成のプロセスを示す。まず、メッシュセグメントが生成され、要求された空間上に物理的に最適に配置される。第2に、増分的合成プロセスによって既存のセグメントと見なされる新しいメッシュセグメントは、最終ルートを生成するのに適切なときに都合よく使用される。その結果、自動的に生成された規則的なメッシュトポロジを新しい最適に合成されたセグメントと混合するトポロジが得られる。完全接続システムでは、NoC1900は、各ノード1901が他のすべてのノードに接続している。領域1902は、XYルーティングアルゴリズムを使用して3×3メッシュに対して指定される。合成プロセス1903の結果として、NoC1905は、要求されたメッシュセグメントおよび新たに合成されたセグメントを使用する。自動的に合成されたローカルツリー1904が示されている。メッシュが生成され、指定された領域1906内に最適に配置される。
【0109】
本発明の他の態様によれば、フロアプラン上のクロックおよび電力ドメインの拡張が提供され、各要素は、指定されたクロックおよび電力ドメインの境界内に位置することを保証するためにテストされる。テストが失敗した場合、要素は、テストが合格する適切な位置が見つかるまで移動される。各要素に適切な配置が見つかると、要素間の各接続のルーティングが行われる。ルーティングプロセスは、要素間の接続を行うワイヤのセットに適した経路を見つける。ルーティングが行われた後、信号が1mmの距離をカバーするのにかかる時間に基づいて、本技術の能力に関して提供される情報を使用して、必要に応じて距離スパンパイプライン要素がリンクに挿入される。
【0110】
本発明のいくつかの態様および実施形態によれば、ツールは、生成されたNoCを記述する1つまたは複数のコンピュータファイルを生成し、それは以下を含む:
ネットワーク要素のリストとその構成:データ幅、クロックドメイン。
【0111】
フロアプラン上の生成された各ネットワーク要素の位置。
接続を実装するネットワーク要素を通るルートのセット。
【0112】
本発明の態様によれば、ルートは、ネットワーク要素の順序付きリストであり、ネットワーク要素は、(イニシエータ、ターゲット)の各ペアに1つ、(ターゲット、イニシエータ)の各ペアに1つである。ルートは、ペア間のトラフィックがどのように流れ、どの要素を通過するかを表す。
【0113】
本発明の様々な態様によれば、ツールは、ワイヤ長分布のヒストグラム、スイッチの数、サイズによるスイッチのヒストグラムなど、生成されたNoCに関するメトリックを生成するために使用される。
【0114】
本発明の他の態様によれば、ツールは、ネットワークに様々なアダプタおよびバッファを自動的に挿入する。ツールは、異なるデータ幅、異なるクロックおよび電力ドメインを有する2つの要素間で必要とされる適応に基づいてアダプタを挿入する。ツールは、シナリオおよび検出されたレート不整合に基づいてバッファを挿入する。
【0115】
いくつかの態様および実施形態によれば、ツールは、ツールに提供された1つの制約が以前の実行に関する情報である場合の状況を含む、NoCの増分的最適化のために合成の複数の反復が行われることを保証するために使用することができる。
【0116】
ソフトウェアによる合成プロセスの実行後、結果は、情報を取り込むために明確に定義されたフォーマットを使用してコンピュータファイルなどの機械可読形式で生成される。そのようなフォーマットの例はXMLであり、そのようなフォーマットの他の例はJSONである。本発明の範囲は、特定のフォーマットによって限定されない。
【0117】
本発明のいくつかの態様は、ネットワーク合成に増分的アプローチを用いる。この増分的アプローチは、多くの状況において有用である。例えば、いくつかの実施形態では、増分的プロセスは、仕様および白紙のフロアプランから始まる。これらの実施形態および他の実施形態では、それらのいくつかが上で論じられた。
【0118】
いくつかの態様および実施形態によれば、接続は、例えば、レイテンシに対する接続の感度を指定する通信ポリシーを有することができる。
【0119】
本発明の様々な態様による特定の方法は、非一時的コンピュータ可読媒体に記憶された命令によって実行することができる。非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、システムまたはコンピュータに本明細書に記載の方法のステップを実行させる命令を含むコードを記憶する。非一時的コンピュータ可読媒体は、回転磁気ディスク、回転光ディスク、フラッシュランダムアクセスメモリ(RAM)チップ、および他の機械的に移動するまたは固体状態の記憶媒体を含む。様々な例による命令を含むコードを記憶するために、任意のタイプのコンピュータ可読媒体が適切である。
【0120】
特定の例を本明細書で説明してきたが、異なる例から異なるコンポーネントの異なる組合せが可能であり得ることに留意されたい。顕著な特徴は、例をよりよく説明するために提示されるが、説明したようにこれらの例の機能的態様を変更することなく、特定の特徴を追加、変更、および/または省略することができることは明らかである。
【0121】
様々な例は、機械のいずれかまたは組合せの挙動を使用する方法である。方法の例は、ほとんどの構成ステップが行われればどこでも完了する。例えば、本発明の様々な態様および実施形態によれば、IP要素またはユニットは、プロセッサ(例えば、CPUまたはGPU)、ランダムアクセスメモリ(RAM、例えば、オフチップダイナミックRAMまたはDRAM)、イーサネット(登録商標)、WIFI、3G、4Gロングタームエボリューション(LTE)、5G、および他の無線インターフェース規格無線機などの有線または無線接続用のネットワークインターフェースを含む。IPはまた、必要に応じて、タッチスクリーンセンサ、地理位置情報受信機、マイクロフォン、スピーカ、Bluetooth(登録商標)周辺機器、およびUSBデバイス(とりわけ、キーボードおよびマウスなど)などの様々な周辺デバイスのための様々なI/Oインターフェースデバイスを含み得る。RAMデバイスに記憶された命令を実行することによって、プロセッサは、本明細書に記載の方法のステップを実行する。
【0122】
いくつかの例は、本明細書に記載の方法のためのそのような命令を記憶するように構成された1つまたは複数の非一時的コンピュータ可読媒体である。必要なコードのいずれかを含む非一時的コンピュータ可読媒体を保持する任意の機械が、一例を実施することができる。いくつかの例は、半導体チップなどの物理デバイス、そのようなデバイスの論理的または機能的挙動のハードウェア記述言語表現、およびそのようなハードウェア記述言語表現を記憶するように構成された1つまたは複数の非一時的コンピュータ可読媒体として実装されてもよい。原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含する。本明細書に結合された要素は、直接的な接続によって、または1つまたは複数の他の介在要素と間接的に実現可能な有効な関係を有する。
【0123】
当業者は、多くの修正および変形を認識するであろう。修正および変形は、開示された特徴の任意の関連する組合せを含む。原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含する。「結合された(coupled)」または「通信可能に結合された(communicatively coupled)」として本明細書に記載された要素は、1つまたは複数の他の介在要素を使用する直接接続または間接接続によって実現可能な有効な関係を有する。他のデバイス、モジュール、または要素と「通信する」または「通信している」ものとして本明細書で説明される実施形態は、任意の形態の通信またはリンクを含み、有効な関係を含む。例えば、通信リンクは、有線接続、無線プロトコル、近接場プロトコル、またはRFIDを使用して確立され得る。
【0124】
「含む(including)」、「含む(includes)」、「有する(having)」、「有する(has)」、「有する(with)」という用語、またはそれらの変形が詳細な説明および特許請求の範囲のいずれかで使用される限り、そのような用語は、「含む(comprising)」という用語と同様に包括的であることを意図している。
【0125】
したがって、本発明の範囲は、本明細書に示され説明される例示的な実施形態に限定されることを意図しない。むしろ、本発明の範囲および精神は、添付の特許請求の範囲によって具体化される。
図1A
図1B
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図14C
図14D
図15
図16A
図16B
図17A
図17B
図18A
図18B
図18C
図18D
図19
【外国語明細書】