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