(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024173785
(43)【公開日】2024-12-12
(54)【発明の名称】フロアプランにおける対話的ワイヤルーティング
(51)【国際特許分類】
G06F 30/394 20200101AFI20241205BHJP
【FI】
G06F30/394
【審査請求】未請求
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024087052
(22)【出願日】2024-05-29
(31)【優先権主張番号】63/469,543
(32)【優先日】2023-05-30
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】521196590
【氏名又は名称】アルテリス・インコーポレイテッド
【氏名又は名称原語表記】ARTERIS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】アミール・シャリフ
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146GC12
5B146GC16
(57)【要約】 (修正有)
【課題】ネットワークオンチップ(NoC:networkーonーchip)に関連するフロアプランにおけるワイヤの非常に迅速な直線ルーティングのための物理的実装ガイダンスシステムを実現する設計ツール及び方法を提供する。
【解決手段】高速ルーティングを実装するために設計ツール高速ルーティングを実装するために設計ツールによる方法は、閉塞エリアを含む任意の制約/パラメータと共にNoCに対するフロアプランを受け取り、ルーティング領域を識別するためのNoCを合成し、各々が異なるルーティング領域に位置するソース及び宛先を識別し、マクロルーティングを決定するためにフロアプランを分析し、ソースから宛先までマクロルートに従うミクロルートを確立する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
設計ツールを使用してネットワークオンチップ(NoC:network-on-chip)の物理的生成をガイドするための方法であって、
前記ツールで、前記NoCに対するフロアプランを受け取ることであって、前記フロアプランは、前記NoCに対する閉塞エリアおよび複数の制約を含む、受け取ることと、
前記ツールを使用して複数のルーティング領域を決定するために前記NoCを合成することであって、前記ルーティング領域は、少なくとも1つの制約に基づいて定義され、少なくとも1つのノードを含む、合成することと、
前記複数のルーティング領域のうちの第1のルーティング領域内の第1のソースと、前記複数のルーティング領域のうちの第2のルーティング領域内の第1の宛先とを識別することであって、前記第1のソースおよび前記第1の宛先は前記NoCを使用して通信する、識別することと、
前記第1のルーティング領域と前記第2のルーティング領域との間の最小ルートを計算することによって前記第1のソースから前記第1の宛先へのマクロルートを決定することであって、前記マクロルートは、少なくとも前記第1のルーティング領域および前記第2のルーティング領域を含む、決定することと、
前記第1のソースを前記第1の宛先に接続するために最小経路ルーティングアルゴリズムを使用して前記第1のソースから前記第1の宛先へのミクロルートを確立することと
を含む、方法。
【請求項2】
前記マクロルートは、ダイクストラアルゴリズムを使用して決定される、請求項1に記載の方法。
【請求項3】
前記マクロルートを決定することは、ルーティング領域のスケールで前記マクロルーティングによって横切られる各領域間の最短経路を見つけることを含む、請求項2に記載の方法。
【請求項4】
前記マクロルートは、A*アルゴリズムを使用して決定される、請求項1に記載の方法。
【請求項5】
前記マクロルートを決定することは、ルーティング領域のスケールで少なくとも2つの領域間の最短経路を見つけることを含む、請求項4に記載の方法。
【請求項6】
前記ミクロルートは、前記第1のルーティング領域で開始し、前記第2のルーティング領域で終了する、請求項1に記載の方法。
【請求項7】
前記ミクロルーティングは、前記複数のルーティング領域から選択される少なくとも1つの他のルーティング領域を横切る、請求項6に記載の方法。
【請求項8】
前記ミクロルートを確立することは、前記第1のルーティング領域を通ってXに沿ったルーティングおよびYに沿ったルーティングを使用する、請求項7に記載の方法。
【請求項9】
前記ミクロルートを確立することは、前記第2のルーティング領域を通ってXに沿ったルーティングおよびYに沿ったルーティングを使用する、請求項8に記載の方法。
【請求項10】
前記ツールで、前記フロアプラン内の少なくとも1つの閉塞エリアを受け取ることをさらに含む、請求項1に記載の方法。
【請求項11】
グラフィカルビュー内でフロアプランの上のネットワークオンチップ(NoC:network-on-chip)トポロジを編集するための設計ツールであって、前記ツールは、
閉塞領域を回避しながら、2つのネットワーク要素間の所要ルートを識別する生成モジュールと、
最適木を生成するために距離計算を実行する計算モジュールと、
前記フロアプランをセルに分割する離散化モジュールと
を備え、
前記計算モジュールは、マクロルーティング方式およびミクロルーティング方式を使用して前記所要ルートに適合する前記フロアプラン内の2つのセル間のルートを計算する、設計ツール。
【請求項12】
前記セルは、複数のルーティング領域によって定義され、前記複数のルーティング領域の各々は、少なくとも1つの制約パラメータを含み、少なくとも1つのノードを含む、請求項11に記載の設計ツール。
【請求項13】
前記設計ツールは、前記複数のルーティング領域のうちの第1のルーティング領域と前記複数のルーティング領域のうちの第2のルーティング領域との間の最小ルートを計算することによって、第1のソースから第1の宛先へのマクロルートを決定する、請求項12に記載の設計ツール。
【請求項14】
前記設計ツールは、前記第1のソースを前記第1の宛先に接続するために最小経路ルーティングアルゴリズムを使用して前記第1のソースから前記第1の宛先へのミクロルートを識別する、請求項13に記載の設計ツール。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2023年5月30日に出願され、Amir CHARIFによる「INTERACTIVE WIRE ROUTING IN A FLOORPLAN」と題された米国仮出願第63/469,543号の利益を主張し、その全開示は参照により本明細書に組み込まれる。
【0002】
技術分野
本技術は、電子システム設計の分野にあり、より具体的には、ネットワークオンチップ(NoC:network-on-chip)に関連するフロアプランにおけるワイヤの非常に高速な直線ルーティングのための物理的実装ガイダンスに関する。
【背景技術】
【0003】
背景
マルチプロセッサシステムは、ネットワークオンチップ(NoC)を介して通信するシステムオンチップ(SoC:system-on-chip)において実装されている。SoCは、イニシエータ知的財産(IP:intellectual property)およびターゲットIPのインスタンスを含む。パケットの形態のトランザクションは、業界標準プロトコルを使用してイニシエータから1つまたは複数のターゲットに送信される。NoCに接続されたイニシエータは、ターゲットを選択するためにアドレスを使用して、ターゲットに要求トランザクションを送信する。NoCは、アドレスを復号し、イニシエータからターゲットへ要求をトランスポートする。ターゲットはトランザクションをハンドリングして応答トランザクションを送信し、それはNoCによってイニシエータにトランスポートして返される。
【0004】
ソースと宛先との間の接続性およびレイテンシ、様々な要素の周波数、NoCロジックおよびその関連するルーティング(配線)に利用可能な最大面積、ソースと宛先との間の最小スループット、NoCに対する電力消費要件、およびNoCにアタッチされた要素のフロアプラン上の位置などの性能要件の所与のセットについて、最小量のロジックおよびワイヤですべての要件を満たす最適なNoCを作成することは複雑なタスクである。これは通常、この最適なNoCを作成するためのチップ技術者またはチップ設計者の仕事であり、これは困難で時間のかかるタスクである。
【0005】
これは困難な課題であることに加えて、NoCの設計は、チップフロアプランの変更、IPコンポーネントの追加もしくは削除、または期待される性能の変更など、要件の1つが変更されるたびに改訂される。結果として、このタスクは、任意の設計ツールを使用してチップの設計時間にわたって頻繁に再実行される必要がある。グラフィカルビューにおいてフロアプランの上でNoCトポロジを編集するために使用される設計ツールを考える。2つのNoC要素を接続するワイヤは、「閉塞」とも呼ばれる閉塞領域を回避しながら直線的にルーティングされる必要がある。ツールは、ネットワーク接続された2つの要素間の正確なルートを表示し、ユーザ/設計者が要素の1つを移動するとすぐに正確なルートを対話的にリフレッシュし、それによってNoCレイアウトの自動生成を可能にするべきである。自動NoC生成(すなわち、トポロジ合成)はまた、最適木を生成するためにいくつかの距離計算を実行する必要がある。典型的には、フロアプランは、所与のサイズ(すなわち、解像度)の小さな正方形のセルに離散化される。フロアプラン内の2つのセル(ノード)間のルートを計算するために使用できる、A*アルゴリズムまたはダイクストラアルゴリズムなどの多くの効率的なルーティングアルゴリズムが存在する。本発明のいくつかの態様および実施形態によれば、ツールはアルゴリズムを使用して、離散化されたフロアプランのすべてのセルを訪問する。解像度が高いほど、アルゴリズムは遅くなる。したがって、必要とされるのは、フロアプランにおけるルートおよび距離の対話的再計算により適した高速ルーティング方法を実装することができ、ルートが常に直線的であり、それによってフロアプラン全体のセルまたは領域の一部を訪問する必要があるという事実を活用する設計ツールである。
【発明の概要】
【課題を解決するための手段】
【0006】
概要
本発明の様々な実施形態および態様によれば、フロアプランにおけるルートおよび距離の対話的再計算により適した高速ルーティング方法を実施するためのツールが開示される。ツールは、直線的なルートを活用し、それにより、全体のフロアプランのセルまたは領域の一部を訪問する必要がある。
【図面の簡単な説明】
【0007】
【
図1】ネットワークオンチップ(NoC)のためのフロアプランのグラフ表示を示す図である。
【
図2】本発明の様々な態様および実施形態による、閉塞領域または閉塞を有する
図1のフロアプランを示す図である。
【
図3】本発明の様々な態様および実施形態による、フロアプランのノードにアタッチされた1つまたは複数のユニットを有する
図1のフロアプランを示す図である。
【
図4】本発明の様々な態様および実施形態による様々な制約によって画定されたルーティング領域を有する、
図1などのフロアプランを示す図である。
【
図5】本発明の様々な態様および実施形態による、領域およびルーティングを有するフロアプランシナリオを示す図である。
【
図6】本発明の様々な態様および実施形態による高速ルーティングを実装するために設計ツールによって使用されるプロセスを示す図である。
【発明を実施するための形態】
【0008】
詳細な説明
以下では、本発明の様々な態様および実施形態を例示する本技術の様々な例について説明する。一般に、例は、態様を説明するために任意の組合せで使用されることができる。原理、態様、および実施形態、ならびにそれらの特定の例を列挙する本明細書のすべての記述は、それらの構造的および機能的等価物の両方を包含することを意図している。さらに、そのような等価物は、現在知られている等価物および将来開発される等価物の両方、すなわち、構造にかかわらず同じ機能を実行する開発された任意の要素を含むことが意図される。
【0009】
本明細書で使用される場合、単数形「a」、「an」、および「the」は、文脈が明らかにそうでないことを指示しない限り、複数の指示対象を含むことに留意されたい。本明細書を通して、「一態様」、「態様」、「特定の態様」、「様々な態様」、または同様の文言への言及は、任意の実施形態に関連して説明される特定の態様、特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。
【0010】
本明細書全体を通して、「一実施形態では」、「少なくとも1つの実施形態では」、「実施形態では」、「特定の実施形態では」という句、および類似の文言の出現は、必ずしもそうとは限らないが、すべて同じ実施形態または類似の実施形態を指し得る。さらに、本明細書に記載された本発明の態様および実施形態は単なる例示であり、当業者によって理解される本発明の範囲または精神を限定するものとして解釈されるべきではない。開示された発明は、本明細書に記載された任意の新規な態様を含む任意の実施形態において効果的に作成または使用される。本発明の原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含することを意図している。そのような等価物は、現在知られている等価物および将来開発される等価物の両方を含むことが意図される。
【0011】
本明細書で使用される場合、トランザクションは、要求トランザクションまたは応答トランザクションであり得る。要求トランザクションの例は、書き込み要求および読み出し要求を含む。
【0012】
本明細書で使用される場合、ノードは、通信経路またはチャネルを介して情報を作成、受信、および/または送信することができる配信ポイントまたは通信エンドポイントとして定義される。ノードは、スイッチ、スプリッタ、マージャ、バッファ、およびアダプタのうちのいずれか1つを指し得る。本明細書で使用される場合、スプリッタおよびマージャはスイッチであるが、すべてのスイッチがスプリッタまたはマージャであるとは限らない。本明細書で使用される場合、本発明の様々な態様および実施形態によれば、「スプリッタ」という用語は、単一の入口ポートおよび複数の出口ポートを有するスイッチを表す。本明細書で使用される場合、本発明の様々な態様および実施形態によれば、「マージャ」という用語は、単一の出口ポートおよび複数の入口ポートを有するスイッチを表す。
【0013】
本発明の様々な態様によれば、システムオンチップ(SoC)は、複数のクロックドメインおよび複数の電力ドメインを含む。クロックドメインは、所与のクロック入力によって供給されるすべてのロジックによって定義される。クロック入力は、その最も重要なパラメータであるクロックの周波数によって特徴付けられる。電力ドメインは、同じ電源から電力供給を受けるすべてのロジックによって定義される。本発明の様々な態様によれば、電源はゲーティングされ、したがって、電力ドメインはオンまたはオフにすることができ、または他の電力ドメインから分離することができる。したがって、設計者は、初期設計の一部として、クロックドメイン制約および電力ドメイン制約のセットを提供する。
【0014】
ここで
図1および
図2を参照すると、本発明のいくつかの態様および実施形態によるフロアプラン100およびフロアプラン200がそれぞれ示されている。フロアプラン200は、閉塞エリア202および閉塞エリア204を含む。フロアプランは、フロアプランノードのメッシュネットワークとしてモデル化される。行/列あたりのノード数は、解像度としてユーザ/設計者が設定することができる。各フロアプランノードは、その(高々)4つの隣接する(北、南、東、西)ノードに接続される。フロアプランの閉塞は、例えば
図2に示すように、閉塞の下にあるノードをそれらの隣接ノードから切断することによってモデル化される。本発明のいくつかの態様および実施形態によれば、クロックまたは電力ドメインの境界を表すフロアプラン領域は、ノードを識別することによって、例えば領域の下にあるノードを色付けすることによってモデル化される。各ノードは、オーバーシステム(例えば、それは特定のクロックドメインの下にあり、特定のクロックツリーはそれに到達することができる)に関連付けられた様々な制約またはパラメータを表すために複数の色を有し得る。
【0015】
図3を参照すると、本発明のいくつかの態様および実施形態による、所与のフロアプランノードにアタッチされた1つまたは複数のユニットを有するフロアプラン300が示されている。本発明のいくつかの態様および実施形態によれば、ノードにアタッチされることができるユニットの数は、技術的パラメータ(例えば、セル密度)および要素の面積によって決定することができる。本発明のいくつかの態様および実施形態によれば、フロアプラン300のメッシュは不規則なメッシュである。ノードが切断されているために迂回が必要になる可能性があるため、2点間のルートを見つけるために最小ルーティングアルゴリズム(例えば、Xの次にY)を使用することは常に可能であるとは限らない。本発明の様々な態様によれば、ツールは、不規則なメッシュを複数の相互接続された規則的なメッシュに分割することによって、メッシュネットワークにおけるルーティングを活用する。
【0016】
ここで
図4を参照すると、本発明のいくつかの態様および実施形態による3(領域1、領域2、領域3、領域4、領域5)を有するフロアプラン400が示されている。ルーティング領域は、少なくとも1つのノードを含み、規則的なメッシュを構成する、フロアプランメッシュのサブセットであり、すなわち、ルーティング領域内のすべてのノードは、迂回なしに最小経路(マンハッタン距離に相当)を介して他のすべてのノードに到達することができる。本発明の様々な態様によれば、ルーティング領域内で、2つのノード間の距離を計算することは、それはマンハッタン距離(dX+dY)に等しいため、一定時間内に行われる。本発明の様々な態様によれば、ルーティング領域内で、2点間の有効な経路を計算することはNステップで行われ、Nはノードの数に関して2点間のマンハッタン距離である。言い換えれば、X列およびY行を有するルーティング領域の場合、最悪の場合、2点間の完全な経路を取得することは、完全なルーティングアルゴリズムが使用される場合の最悪の場合(例えばダイクストラ)のX*Yステップと比較して、X+Yステップを要することになる。
【0017】
各ルーティング領域は、それを隣接領域に接続するフロアプランノードの範囲(水平または垂直)を記憶する。ルーティング領域は、異なる範囲のノードを介して到達可能な複数の隣接ノードを有し得る。本発明の様々な態様によれば、所与のフロアプラン構成では、ルーティング領域が計算され、メモリに記憶される。本発明の様々な態様によれば、ツールは各フロアプランノードについての情報を有する。ツールはまた、各フロアプランノードが属するかまたは位置するルーティング領域を知っている。本発明の様々な態様によれば、この区別は、色の違いおよびその色の1つによって表される。したがって、各領域は、グラフィカルユーザに表されるかまたは表示されると、固有の色が割り当てられる。
【0018】
ここで
図5を参照すると、ルーティング領域ならびにグローバルミクロルーティング502およびマクロルーティング504を有するフロアプラン400が示されている。本発明の様々な態様によれば、ツールは、マクロルーティング504およびミクロルーティング502を使用して、2段階でグローバルルーティングアルゴリズムを構築するために、単一のルーティング領域内のルーティング(および距離計算)の効率を活用することを含む。本発明のいくつかの態様および実施形態によれば、マクロルーティング504は、ソースノード506および宛先ノード508のルーティング領域が与えられると、ソースノード506および宛先ノード508を含む2つの領域間の最小ルートを計算することによって行われる。本発明のいくつかの態様および実施形態によれば、ダイクストラアルゴリズムまたはA*アルゴリズムを使用して、2つの領域間の最短経路を見つけることができ、最短経路は、ノードのレベルではなくルーティング領域のスケールで動作する。開始(ソース)ノードから、最短経路アルゴリズムにおける累積距離が効率的に計算され、これは2つの領域間で一定の時間で行うことができる。このステップの結果は、ルーティング領域を含む経路504である。経路504は、領域1で開始し、次いで領域2に、次いで領域3に進み、終端(宛先)ノードが位置する領域5で終了する。
【0019】
本発明のいくつかの態様および実施形態によれば、ミクロルーティングはミクロルート502によって表される。ツールは、宛先ノード508に到達するまで、マクロルーティングステップによって以前に計算されたマクロ経路504によってカバーされる各ルーティング領域を接続するために、効率的な最小経路ルーティングアルゴリズム(Xに沿ったルーティングおよびYに沿ったルーティングなど)を使用してミクロルート502を生成する。
【0020】
本発明の様々な態様によれば、ツールは、フロアプランメッシュをルーティング領域に任意に分割することによって機能する。本発明の様々な態様によれば、分割アルゴリズムは、可能な限り大きいルーティング領域を生成する。ツールは、ルーティング領域の選択に関するフィードバックを可能にする機械学習モデルを含む。例えば、設計者は、更新する必要があるルーティング領域を識別し、その情報を機械学習モデルをさらに訓練するためのフィードバックとして提供することができる。本発明の様々な態様によれば、機械学習モデルは、様々なルーティング領域が識別され、後にツールによって修正されるときにツールによって更新される。さらに、機械学習モデルは、ルーティング領域を識別し、マクロルーティングまたはミクロルーティング決定に基づいてルーティング領域を後で修正することができる。本発明の様々な態様によれば、各ルーティング領域が正確に1つのノードを含む場合、複雑さは古典的な最短経路アルゴリズムと同一であり、機械学習モデルは、ルーティングを決定するのに最も適したアルゴリズムを直ちに識別し使用するように訓練することができる。
【0021】
本発明の様々な態様によれば、所与のルーティング領域内で静的最小経路ルーティングアルゴリズム(Xに沿ったルーティングおよびYに沿ったルーティング)を使用する代わりに、ツールは、任意の所与のメトリックによってバイアスされる動的ルーティングアルゴリズムを使用する。機械学習モデル(人工知能(AI:Artificial Intelligence)態様によってツールに適用される)は、過去のモデル化訓練およびフィードバックを使用して、任意の所与のメトリックを使用してバイアスされたルーティング領域を計算し、その例を以下に示す。本発明の様々な態様によれば、各ノードが以前にルーティングされたワイヤの数を追跡する場合、ルーティングアルゴリズムは、ワイヤ輻輳を低減するために、ワイヤが最も少ない隣接ノードを選択し得る。本発明の様々な態様によれば、ルーティングアルゴリズムがスパニングツリーを構築するために使用される場合、ルーティングアルゴリズムを1つの宛先に接近させるのではなく、できるだけ多くの宛先に一度に接近させるように、複数の宛先に関する情報を提供することができる。
【0022】
本発明のいくつかの態様および実施形態によれば、マクロルーティングステップの結果は、マクロルーティングのためのマクロ経路504の決定を連続して何度も繰り返すことを回避するために記憶またはキャッシュされることが可能である。あるルーティング領域から他のルーティング領域への経路がわかっている場合、それを再利用してルーティング決定をさらに高速にすることができる。本発明のいくつかの態様および実施形態によれば、キャッシュされたルーティング経路が、新しいソース/宛先から遠いソース/宛先に基づいて計算された場合、計算されたルートは、最適ではない可能性があるため、使用されない可能性がある。
【0023】
ここで
図6を参照すると、設計ツールはプロセス600を実行する。設計ツールは、ステップ602で、閉塞エリアを含む任意の制約/パラメータと共にNoCに対するフロアプランを受け取る。ステップ604で、NoCは、ルーティング領域を識別するために分析または合成される。上述したように、ルーティング領域は、パラメータおよび/または制約などの類似性に基づいて定義および識別される。本発明のいくつかの態様および実施形態によれば、ルーティング領域は、2×2個の高レベルセルアレイのセットに分割される。各アレイは、ルートが各アレイ内で個別に拘束され、ワイヤが実線の境界を横切らないように分離される。ルーティングは、輻輳を最小限に抑えるために各2×2アレイにおいて実行される。次に小さいアレイでは、設計ツールは、高レベルセルアレイのいずれかの内部で2×2アレイの新しいセットを形成する。このプロセスは、ルーティングアレイが決定されるまで繰り返される。ステップ606で、ツールは、各々が異なるルーティング領域に位置するソース506および宛先508を識別する。ステップ608で、ツールは、マクロルーティング504を決定するためにフロアプランを分析する。マクロルーティングが決定されると、ステップ610で、ツールは、ソース506から宛先508までマクロルーティング504に従うミクロルーティング502を決定するための計算を実行する。上述したように、ツールは、マクロルーティングおよびミクロルーティング分析を検出し実行することができる機械学習モデルを含む。本発明のいくつかの態様および実施形態によれば、ツールは、NoCを改善または変更するために行われる必要がある変更または更新に関する設計者からの入力を受け取る。これらの入力は、機械学習モデルをさらに訓練するためのフィードバックとして機械学習モデルに提供される。本発明のいくつかの態様および実施形態によれば、敵対的機械学習モデルを使用してフィードバックを提供することも可能である。
【0024】
本発明の様々な態様によれば、イニシエータおよびターゲットは、NoCに通信可能に接続される。イニシエータは、要求を送信するユニットであり、ルーティング決定のためのソースであり得る。イニシエータは通常、コマンドを読み書きするように構成される。ターゲットは、要求にサービスするか応答するユニットであり、宛先であってもよい。ターゲットは通常、コマンドを読み書きするように構成される。各イニシエータは、NIUを介してNoCにアタッチまたは接続される。イニシエータにアタッチされるNIUは、イニシエータネットワークインターフェースユニット(INIU:Initiator Network Interface Unit)と呼ばれる。さらに、各ターゲットはNIUを介してNoCにアタッチされる。ターゲットにアタッチされるNIUは、ターゲットネットワークインターフェースユニット(TNIU:Target Network Interface Unit)と呼ばれる。NoCの主な機能は、イニシエータからの各要求を所望の宛先ターゲットに搬送することであり、要求が応答を求め、または必要とする場合、NoCは各ターゲットの応答を対応する要求元イニシエータに搬送する。イニシエータおよびターゲットは、それらを特徴付ける多くの異なるパラメータを有する。本発明の様々な態様によれば、各イニシエータおよびターゲットについて、それらが属するクロックドメインおよび電力ドメインが定義される。書き込みペイロードおよび読み出しペイロードを送信および受信するためにそれらが使用するデータバスの幅は、数ビットである。本発明の様々な態様によれば、書き込み要求を送信し、書き込み応答を受信するために使用される接続(ターゲットとの間の通信経路)のためのデータバスの幅も定義される。さらに、クロックおよび電力ドメイン定義は、本明細書に記載されるように、SoCに存在する前述のクロックおよび電力ドメインへの参照である。
【0025】
本発明の様々な態様によれば、イニシエータは、すべてのターゲットまたはNoCに接続されるターゲットに要求を送信できる必要はない。イニシエータから要求を受信することができるターゲットの正確な定義は、接続性テーブルに概説または記載される。接続性およびトラフィッククラスラベリング情報は、明示的または概念的行列として表すことができる。各イニシエータは行を有し、各ターゲットは列を有する。イニシエータがターゲットにトラフィックを送信することができなければならない場合、トラフィッククラスラベルが、イニシエータ行とターゲット列との間の交点に存在しなければならない。交点にラベルが存在しない場合、ツールはそのイニシエータとそのターゲットとの間の接続性を必要としない。本発明の様々な態様によれば、接続性を表すために使用される実際のフォーマットは、イニシエータ・ターゲット組合せの各ペアがそのトラフィッククラスの正確な定義を有する限り、または接続がない場合には分類ラベルを有さない限り、異なり得る。イニシエータ/ターゲット接続が複数のトラフィッククラスをサポートすることは、本発明の範囲内である。
【0026】
レイテンシは、データがネットワークを通過するのにかかるクロックサイクルの数を指すことは、本発明の範囲内である。レイテンシは、高帯域幅(周波数)を有するにもかかわらず、トランスポートネットワークにおいて問題を引き起こす。「リアルタイム交通クラス」の例は、自動運転車のカメラからのビデオデータである。データの伝搬において長いレイテンシを有することは許容されない。いくつかのデータが失われると、車両は安全でなくなる。依然としてリアルタイムであるがそれほど重要ではないトラフィッククラスは、娯楽システムにおけるオーディオおよび/またはビデオのためのものである。そのデータにギャップを有することは望ましくないが、危険ではない。非リアルタイムデータの例は、自動車内のガスセンサからのデータである。データが数秒間遅延する場合、データの変化率はSoCの動作速度と比較して非常に遅いため、問題ではない。
【0027】
本発明のいくつかの態様によれば、ツールのシナリオは定義されておらず、その場合、ツールは、最低ゲートコストおよび/または最低ワイヤコストなどの物理的コストに対してNoC合成プロセスを最適化する。
【0028】
本発明の様々な態様によれば、ツールは、以下の定義されたパラメータまたは成分を用いて接続性行列を処理する。
【0029】
・イニシエータごとに1つのネットワークインターフェースユニット、
・ターゲットごとに1つのネットワークインターフェースユニット、
・クラスのメインスイッチと呼ばれる、定義されたトラフィッククラスごとに1つのスイッチが作成される、
・各イニシエータ/イニシエータNIUの後で、このイニシエータが到達する必要のある異なるメインスイッチにトラフィックを分割する1つのスイッチ、
・各ターゲット/ターゲットNIUの前で、そのターゲットにトラフィックを送信している異なるメインスイッチからのトラフィックをマージする1つのスイッチ
各スイッチのデータ幅およびそれが属するクロックドメインは、ツールへの入力として、各アタッチされたインターフェースのデータ幅およびそれらのクロックドメインを使用して計算される。本発明の様々な態様によれば、NoCの一部であるネットワークを変換する各ステップはまた、新たに作成されたネットワーク要素のデータ幅およびクロックドメインの計算を実行する。
【0030】
本発明の様々な態様によれば、ツールを使用して、メインスイッチ内のマージャの各々に対する各スイッチは、さらにマージャのカスケードに分解され、カスケードの各マージャは、アタッチされたターゲットのマージャロードマップの分岐点に配置される。ロードマップの分岐点は、経路が2つ以上の分岐に分割されているという事実によって定義される。スプリッタのカスケード内でスプリッタを分解するプロセスは、カスケードへの入力の数が依然として1つであり、カスケードの出力の数が元のスプリッタの出力の数と同一であるため、元のスプリッタ機能を維持する。マージャのカスケード内でマージャを分解するプロセスは、カスケードの出力の数が依然として1つであり、カスケードへの入力の数が元のマージャへの入力の数と同一であるため、元のマージャ機能を維持する。本発明の様々な態様によれば、プロセスの効果は、スイッチ間の実際の接続が必要とされる場所の近くに物理的に配置された、マージャおよびスプリッタによって表される基本スイッチのセットを得ることである。
【0031】
本発明の様々な態様によれば、ツールは、イニシエータとターゲットとの間の必要な最小スループットのセットであるシナリオで定義された性能を維持しながら、達成可能なスイッチ間で使用されるワイヤの数を減らすためにネットワークを変換する。本発明の様々な態様によれば、スイッチは、性能を認識したスイッチングのためにクラスタ化され、ロードマップ上に分布したマージャおよびスプリッタは、通常のスイッチと同様に扱われる。
【0032】
本発明の他の態様によれば、フロアプラン上のクロックおよび電力ドメインの拡張が提供され、各要素は、指定されたクロックおよび電力ドメインの境界内に位置することを保証するためにテストされる。テストが失敗した場合、要素は、テストが合格する適切な位置が見つかるまで移動される。各要素に適切な配置が見つかると、要素間の各接続のルーティングが行われる。ルーティングプロセスは、要素間の接続を行うワイヤのセットに適した経路を見つける。ルーティングが行われた後、信号が1mmの距離をカバーするのにかかる時間に基づいて、本技術の能力に関して提供される情報を使用して、必要に応じて距離スパンパイプライン要素がリンクに挿入される。
【0033】
本発明のいくつかの態様および実施形態によれば、ツールは、生成されたNoCを記述する1つまたは複数のコンピュータファイルを生成し、それは以下を含む:
ネットワーク要素のリストとその構成:データ幅、クロックドメイン。
【0034】
フロアプラン上の生成された各ネットワーク要素の位置。
接続を実装するネットワーク要素を通るルートのセット。本発明の態様によれば、ルートは、ネットワーク要素の順序付きリストであり、ネットワーク要素は、(イニシエータ、ターゲット)の各ペアに1つ、(ターゲット、イニシエータ)の各ペアに1つである。ルートは、ペア間のトラフィックがどのように流れ、どの要素を通過するかを表す。
【0035】
本発明の様々な態様によれば、ツールは、ワイヤ長分布のヒストグラム、スイッチの数、サイズによるスイッチのヒストグラムなど、生成されたNoCに関するメトリックを生成するために使用される。
【0036】
本発明の他の態様によれば、ツールは、ネットワークに様々なアダプタおよびバッファを自動的に挿入する。ツールは、異なるデータ幅、異なるクロックおよび電力ドメインを有する2つの要素間で必要とされる適応に基づいてアダプタを挿入する。ツールは、シナリオおよび検出されたレート不整合に基づいてバッファを挿入する。
【0037】
いくつかの態様および実施形態によれば、ツールは、ツールに提供された1つの制約が以前の実行に関する情報である場合の状況を含む、NoCの増分的最適化のために合成の複数の反復が行われることを保証するために使用することができる。
【0038】
ソフトウェアによる合成プロセスの実行後、結果は、情報を取り込むために明確に定義されたフォーマットを使用してコンピュータファイルなどの機械可読形式で生成される。そのようなフォーマットの例はXMLであり、そのようなフォーマットの他の例はJSONである。本発明の範囲は、特定のフォーマットによって限定されない。
【0039】
一実施形態では、NoC内の第1のコンポーネントと第2のコンポーネントとの間のタイミング実現に対応するための機構は、距離パイプ挿入、バッファ段の追加、より高い駆動バッファまたはより高速のバッファへのバッファの切り替え、ワイヤ幅の調整、および/またはどのワイヤ層が使用されているかの表示を含むが、これらに限定されない。
【0040】
合成トポロジ内のタイミング問題を克服し、物理的実装のための制約および/またはガイダンスを通信することによってそれらの発生前にタイミング問題を解決するために、異なる機構が物理的に実装されることは、本発明の範囲内である。限定ではないが、NoCトポロジの周りのオブジェクト、コンポーネント、および/またはゲートの物理的配置を含む接続の物理的実装については本発明の範囲内であり、それにより、下流ツールは、時間制限を超えるように、第1の接続を第2の接続から十分に離れた距離に配置しない。接続要件を満たすことができるすべての接続についてネットワークを合成し、合成されたネットワークのゲート数を最小にすることがより望ましい。合成されたネットワーク内のゲートの数を最小化することは、以下のことに限定されないが、NoCをトポロジパラメータ内に収めることを可能にすること、タイミング要件を満たすことができることを保証すること、より小さいネットワークでより効率的に構築すること、信号間の相互接続に使用される全体的な電力を最小化すること、を含むために重要である。
【0041】
他の実施形態では、駆動側のコンポーネントをより大きな駆動強度を有するコンポーネントに置き換えて速度を高める。例えば、信号が第1のスイッチから第2のスイッチに転送されるとき、第1のスイッチと第2のスイッチとの間の距離が大きすぎるためにタイミング要件が超過され、第1のスイッチと第2のスイッチとの間に距離パイプが配置されてもよく、または特定のライン上の寄生要素を低減するためにより低い抵抗を有するより大きなワイヤを使用することによって信号をより高速にするために駆動強度が増加されてもよい。
【0042】
一実施形態では、フロアプラン領域は、以下のことに限定されないが、スイッチおよび/または距離パイプ段などのコンポーネントを物理的位置および/またはおおよその物理的位置に制約すること、および/または論理的相互接続を、適切な合成のために下流のツールのサイズに合わせて調整された複数の部分に分割すること、を含むことが可能なメカニズムである。相互接続の物理的および論理的構成は、論理的相互接続を形成するように共に構成される。フロアプラン領域は、コンポーネントを特定の位置に制約するために使用される。フロアプラン領域の必要性は、開発されているSoCのネットワークまたは相互接続のサイズの増加に対する応答である。換言すれば、SoCのネットワークまたは相互接続は、限定はしないが、より広い相互接続および/または相互接続されるより多くのコンポーネントの追加を含む下流の実装ツールの容量よりも大きくなっている。
【0043】
本発明の様々な態様によれば、スイッチが制約された位置から外れた位置に移動した場合にスイッチの性能が悪影響を受ける可能性があるため、スイッチによって受信および送信される信号に関連するデータに基づいて、特定の制約された位置にスイッチを有することがより望ましい場合がある。
【0044】
本発明の様々な態様によれば、追加の制約を利用して、例えば、スイッチまたはパイプ段のためのコンポーネントのゲートを、各個々のコンポーネント内で可能な限り近接して配置してもよい。既存の配置プログラムにおける現在の問題は、コンポーネントを互いからあまりにも遠くに配置する傾向があることである。スイッチが複数のゲートを有する単一のコンポーネントであり、各ゲートを配置する必要があることは、本発明の範囲内である。ネットリストは、これらのコンポーネントの相互接続を容易にするが、下流のツールは、コンポーネントを物理的に配置し、指定された論理接続を接続するためのルートを作成する。
【0045】
本発明の様々な態様によれば、第1の態様および第2の態様の2つの別個の制約を同時に使用することができる。例えば、特定の性能を有すると指定されたスイッチのコンポーネントが、指定されたエリアよりも広いエリアに分散されている場合、そのスイッチは、最初に指定されたものよりも低い性能を有する。したがって、このスイッチのコンポーネントを互いに近接した状態に保つことがより望ましい。さらに、より大きなネットワークに基づいて、ネットワーク全体が指定または分析されたように機能するように、フロアプランの空きスペースの特定の領域またはエリア内にコンポーネントを維持することがより望ましい。
【0046】
一実施形態では、所与の半導体プロセスにおける近似では、単一のワイヤの最大長さが確立されて、その特定の経路の全体的なタイミングを確実に満たすことができる。さらに、所与の時間内に第1のコンポーネントから第2のコンポーネントに移動することは重要な態様である。第1のコンポーネントと第2のコンポーネントとの間の過剰な長さのために、所与の時間内に第1のコンポーネントから第2のコンポーネントに信号を移動させることが達成できない場合がある。結果として、距離パイプ段の挿入の技術的解決策の必要性は、現在の技術と比較して、この技術的問題を解決するであろう。
【0047】
本発明の様々な態様によれば、第1のコンポーネントおよび第2のコンポーネントの面積推定を受信し、NoCの最適化におけるタイミングおよび他の性能要件のバランスをとることにより、結果として得られるNoCゲートを確実に配置することができ、すなわち、NoCに割り当てられたフロアプランの空きスペースに収まる。
【0048】
本発明の様々な態様によれば、NoCに対する電力要件をさらに受信し、結果として生じるNoCが制約で指定された電力要件を超えないことを保証するために、NoCの最適化におけるタイミングおよび他の性能要件のバランスをとる。
【0049】
本発明の様々な態様によれば、NoCネットリスト構造に基づく推定として、または下流の実装ツールからのフィードバックとして取得される物理ルーティング輻輳データをさらに組み込み、NoCの最適化におけるタイミングおよび他の性能要件のバランスをとることにより、結果として生じるNoCが、NoCに割り当てられたフロアプランの空きスペースでルーティング可能であることを保証する。
【0050】
本発明のいくつかの態様によれば、NoCの物理的生成をガイドするための方法が開示される。方法は、訓練されフィードバックを受け取る機械学習モデルを含むツールで、NoCに対する少なくとも1つの制約パラメータを受け取ることであって、少なくとも1つの制約パラメータは、少なくとも1つの物理的制約および少なくとも1つの性能制約を含む制約パラメータのグループから選択される、受け取ることと、ツールを使用して、NoCの物理的実装をガイドする情報でNoCに対する物理的フロアプランを増補することと、物理的フロアプランを使用して、少なくとも1つの制約パラメータに基づいて、物理的フロアプラン上の位置への接続の物理的実装を制約することとを含む。
【0051】
本発明の様々な態様による特定の方法は、非一時的コンピュータ可読媒体に記憶された命令によって実行することができる。非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、システムまたはコンピュータに本明細書に記載の方法のステップを実行させる命令を含むコードを記憶する。非一時的コンピュータ可読媒体は、回転磁気ディスク、回転光ディスク、フラッシュランダムアクセスメモリ(RAM:random access memory)チップ、および他の機械的に移動するまたは固体状態の記憶媒体を含む。様々な例による命令を含むコードを記憶するために、任意のタイプのコンピュータ可読媒体が適切である。
【0052】
特定の例を本明細書で説明してきたが、異なる例から異なるコンポーネントの異なる組合せが可能であり得ることに留意されたい。顕著な特徴は、例をよりよく説明するために提示されるが、説明したようにこれらの例の機能的態様を変更することなく、特定の特徴を追加、変更、および/または省略することができることは明らかである。
【0053】
様々な例は、機械のいずれかまたは組合せの挙動を使用する方法である。方法の例は、ほとんどの構成ステップが行われればどこでも完了する。例えば、本発明の様々な態様および実施形態によれば、IP要素またはユニットは、プロセッサ(例えば、CPUまたはGPU)、RAM、例えば、オフチップダイナミックRAMまたはDRAM、イーサネット、Wi-Fi、3G、4Gロングタームエボリューション(LTE:long-term evolution)、5G、および他の無線インターフェース規格無線機などの有線または無線接続用のネットワークインターフェースを含む。IPはまた、必要に応じて、タッチスクリーンセンサ、地理位置情報受信機、マイクロフォン、スピーカ、Bluetooth周辺機器、およびUSBデバイス(とりわけ、キーボードおよびマウスなど)などの様々な周辺デバイスのための様々なI/Oインターフェースデバイスを含み得る。RAMデバイスに記憶された命令を実行することによって、プロセッサは、本明細書に記載の方法のステップを実行する。
【0054】
いくつかの例は、本明細書に記載の方法のためのそのような命令を記憶するように構成された1つまたは複数の非一時的コンピュータ可読媒体である。必要なコードのいずれかを含む非一時的コンピュータ可読媒体を保持する任意の機械が、一例を実施することができる。いくつかの例は、半導体チップなどの物理デバイス、そのようなデバイスの論理的または機能的挙動のハードウェア記述言語表現、およびそのようなハードウェア記述言語表現を記憶するように構成された1つまたは複数の非一時的コンピュータ可読媒体として実装されてもよい。原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含する。本明細書に結合された要素は、直接的な接続によって、または1つまたは複数の他の介在要素と間接的に実現可能な有効な関係を有する。
【0055】
当業者は、多くの修正および変形を認識するであろう。修正および変形は、開示された特徴の任意の関連する組合せを含む。原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含する。「結合された(coupled)」または「通信可能に結合された(communicatively coupled)」として本明細書に記載された要素は、1つまたは複数の他の介在要素を使用する直接接続または間接接続によって実現可能な有効な関係を有する。他のデバイス、モジュール、または要素と「通信する」または「通信している」ものとして本明細書で説明される実施形態は、任意の形態の通信またはリンクを含み、有効な関係を含む。例えば、通信リンクは、有線接続、無線プロトコル、近接場プロトコル、またはRFIDを使用して確立され得る。
【0056】
「含む(including)」、「含む(includes)」、「有する(having)」、「有する(has)」、「有する(with)」という用語、またはそれらの変形が詳細な説明および特許請求の範囲のいずれかで使用される限り、そのような用語は、「含む(comprising)」という用語と同様に包括的であることを意図している。
【0057】
したがって、本発明の範囲は、本明細書に示され説明される例示的な実施形態に限定されることを意図しない。むしろ、本発明の範囲および精神は、添付の特許請求の範囲によって具体化される。
【外国語明細書】