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

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

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

特開2024-173806フロアプラン上の要素の対話的な増加配置のための設計ツール
<>
  • 特開-フロアプラン上の要素の対話的な増加配置のための設計ツール 図1
  • 特開-フロアプラン上の要素の対話的な増加配置のための設計ツール 図2
  • 特開-フロアプラン上の要素の対話的な増加配置のための設計ツール 図3
  • 特開-フロアプラン上の要素の対話的な増加配置のための設計ツール 図4
  • 特開-フロアプラン上の要素の対話的な増加配置のための設計ツール 図5
  • 特開-フロアプラン上の要素の対話的な増加配置のための設計ツール 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024173806
(43)【公開日】2024-12-12
(54)【発明の名称】フロアプラン上の要素の対話的な増加配置のための設計ツール
(51)【国際特許分類】
   G06F 30/392 20200101AFI20241205BHJP
   G06F 30/27 20200101ALI20241205BHJP
   H01L 21/82 20060101ALI20241205BHJP
【FI】
G06F30/392
G06F30/27
H01L21/82 C
【審査請求】未請求
【請求項の数】12
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024088188
(22)【出願日】2024-05-30
(31)【優先権主張番号】63/504,793
(32)【優先日】2023-05-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521196590
【氏名又は名称】アルテリス・インコーポレイテッド
【氏名又は名称原語表記】ARTERIS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】アミール・シャリフ
【テーマコード(参考)】
5B146
5F064
【Fターム(参考)】
5B146AA22
5B146DC03
5B146DG01
5B146GC12
5B146GC22
5F064EE03
5F064EE08
5F064HH20
(57)【要約】      (修正有)
【課題】要素配置の反復を通じてネットワークオンチップ(NoC)の物理的生成を誘導するための方法及び設計ツールを提供する。
【解決手段】フロアプラン上の既存のトポロジの適法かつ最適な配置を対話的に計算することを可能にするツールであって、高速であるため、トポロジ編集中に複数回呼び出すことができ、また、対話型計算を実行する機械学習モデルを含み、自動化および支援されたトポロジ分析並びに合成のための機械学習モデルを訓練するためにフィードバックを使用する能力を有する。
【選択図】図1
【特許請求の範囲】
【請求項1】
要素配置の反復を通じてネットワークオンチップ(NoC)の物理的生成を誘導するための方法であって、
少なくとも1つの接続ゾーンを有するフロアプランを受信することと、
前記フロアプラン内の遮断エリアを受信することと、
前記接続ゾーン内に少なくとも1つのピン留めされた要素を配置することと、
前記ピン留めされた要素と通信する複数のピン留めされていない要素を識別することであって、前記複数のピン留めされていない要素は前記接続ゾーン内に設置されるべきである、識別することと、
前記接続ゾーン内の前記複数のピン留めされていない要素の各々のための適法な配置位置を正確に特定することと、
前記ピン留めされた要素と前記複数のピン留めされていない要素との間の通信経路のための第1のルーティング経路を決定することと、
最適なルーティングが決定されるまで、前記第1のルーティング経路を改善しセグメント長のバランスをとるために、前記フロアプラン内の1つまたは複数の前記ピン留めされていない要素の配置を調整することと、
を含む、方法。
【請求項2】
各ピン留めされていない要素の前記適法な配置位置が、各ピン留めされていない要素の制約および要件を満たす、請求項1に記載の方法。
【請求項3】
前記正確に特定することは、ピン留めされた要素とピン留めされていない要素との間にセグメントが得られる、前記ピン留めされた要素に対する任意のピン留めされていない要素の初期配置を含む、請求項1に記載の方法。
【請求項4】
前記得られたセグメントのうちの少なくとも1つのセグメントは、ピン留めされていない要素の配置に起因して最適ではない、請求項3に記載の方法。
【請求項5】
前記セグメントのバランスをとるために、前記少なくとも1つのピン留めされていない要素の配置を再調整することをさらに含む、請求項4に記載の方法。
【請求項6】
前記ピン留めされていない要素が既存のセグメントに沿って再位置決めされる、請求項5に記載の方法。
【請求項7】
機械学習モデルが、前記フロアプランに配置される前記ピン留めされていない要素の各々の制約を使用して、ピン留めされていない要素の各々の前記適法な配置位置を特定する、請求項1に記載の方法。
【請求項8】
機械学習モデルが、前記ピン留めされていない要素の前記フロアプランにおける前記配置に基づいて、前記ピン留めされていない要素の各々と前記ピン留めされた要素との間のセグメントを決定する、請求項1に記載の方法。
【請求項9】
フロアプラン上のネットワークオンチップ(NoC)トポロジをグラフィカルなビューで編集するための設計ツールであって、要素間の最適化されたワイヤ接続を有する適法なフロアプランを生成するために、前記フロアプラン上への要素のグローバル配置および局所配置を識別する配置モジュールを備え、
前記ツールは、少なくとも1つの接続ゾーンが1つまたは複数のピン留めされた要素を含むように、前記フロアプラン、前記フロアプラン内の遮断エリア、前記フロアプラン内の接続ゾーン、および前記フロアプラン内のピン留めされた要素の位置を受信し、
前記配置モジュールは、前記フロアプラン内の対応するピン留めされた要素と通信する複数のピン留めされていない要素を配置し、
前記少なくとも1つの接続ゾーンは、ピン留めされていない要素の初期配置を生成するために前記複数のピン留めされていない要素から選択されたピン留めされていない要素のセットと通信する第1のピン留めされた要素の場所に対応する、
設計ツール。
【請求項10】
前記配置モジュールは、前記第1のピン留めされた要素と前記ピン留めされていない要素のセットとの間の通信のための第1のルーティング経路を決定する、請求項9に記載のツール。
【請求項11】
前記配置モジュールは、前記少なくとも1つのピン留めされた要素から前記ピン留めされた要素へのルートのセグメントを改善するために、前記フロアプランの前記少なくとも1つの接続ゾーン内の前記ピン留めされていない要素のセットの配置を調整する、請求項9に記載のツール。
【請求項12】
前記配置モジュールは、ネットワークオンチップ(NoC)を構築するためにフロアプラン内に要素を配置するように訓練された機械学習モデルを含む、請求項9に記載のツール。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2023年5月30日に出願され、Amir CHARIFによって「INTERACIVE INCREMENTAL PLACEMENT ON A FLOORPLAN」と題する米国仮出願第63/504,793号の利益を主張し、その全開示が参照により本明細書に組み込まれる。
【0002】
技術分野
本技術は、電子システム設計の分野であり、より具体的には、フロアプラン上のネットワークオンチップ(NoC:network-on-chip)トポロジ全体の適法かつ最適化された配置を計算するための高速で増分的なプロセスの物理的実施ガイダンスに関する。
【背景技術】
【0003】
背景
マルチプロセッサシステムは、NoCを介して通信するシステムオンチップ(SoC:systems-on-chip)に実装されている。SoCは、イニシエータ知的財産(IP:intellectual property)およびターゲットIPのインスタンスを含む。パケットの形態のトランザクションは、業界標準プロトコルを使用してイニシエータから1つまたは複数のターゲットに送信される。NoCに接続されたイニシエータは、ターゲットを選択するために、アドレスを使用してターゲットに要求トランザクションを送信する。NoCは、アドレスを復号し、イニシエータからターゲットに要求を転送する。ターゲットはトランザクションを処理し、応答トランザクションを送信し、これはNoCによってイニシエータに戻される。
【0004】
ソースと宛先との間の接続性およびレイテンシ、様々な要素の周波数、NoC論理および関連するルーティング(ワイヤリング)に利用可能な最大面積、ソースと宛先との間の最小スループット、NoCの電力消費要件、およびNoCに取り付けられた要素のフロアプラン上の位置などの性能要件の所与のセットについて、最小限の量の論理およびワイヤですべての要件を満たす最適なNoCを作成することは複雑なタスクである。これは通常、この最適なNoCを作成するためのチップ設計者の仕事であり、これは困難で時間のかかるタスクである。これは困難な課題であることに加えて、チップフロアプランの変更、IP構成要素の追加・削除、または期待する性能の変更など、要件が変わる度にNoCの設計が変更される。結果として、このタスクは、任意のツールを使用してチップの設計期間にわたって頻繁にやり直す必要がある。
【0005】
フロアプランの上のネットワークオンチップトポロジをグラフィカルなビューで編集するために使用されるソフトウェアツールについて検討する。ユーザは、物理情報なしで作成された既存のネットワークオンチップトポロジ(すなわち、フロアプランなし)をロードすることができ、その場合、ネットワーク要素はフロアプラン上に初期位置を持たない。ユーザはまた、フロアプラン上のトポロジ(またはその一部)を修正することもできるが、要素配置は複数の配置制約(例えば、クロックドメインの場所、電力ドメインの場所、モジュールの場所)に関して必ずしも適法でなく、グローバル配置はワイヤ長に関して最適でない場合がある。したがって、トポロジ編集中に複数回呼び出されるために高速で、フロアプラン上の既存のトポロジの適法かつ最適化された配置を対話的に計算するプロセスを提供するツールが必要とされている。さらに、対話型計算を実行するように訓練された機械学習モデルを利用するツールが必要とされている。
【発明の概要】
【課題を解決するための手段】
【0006】
概要
本発明の様々な実施形態および態様によれば、フロアプラン上の既存のトポロジの適法かつ最適な配置を対話的に計算することを可能にするツールが開示される。ツールは高速であるため、トポロジ編集中に複数回呼び出すことができる。ツールはまた、対話型計算を実行する機械学習モデルを含む。さらに、ツールは、自動化および支援されたトポロジ分析および合成のための機械学習モデルを訓練するためにフィードバックを使用する能力を有する。
【図面の簡単な説明】
【0007】
図1】本発明の様々な態様および実施形態による、遮断エリアおよび接続ゾーンを有するフロアプランを示す。
図2】本発明の様々な態様および実施形態による、異なる電力ドメイン制約およびクロックドメイン制約内に遮断エリアを有するフロアプランを示す。
図3】本発明の様々な態様および実施形態による、グローバル配置を必要とするネットワーク要素を有するフロアプランを示す。
図4】本発明の様々な態様および実施形態による、フロアプランにおける要素の法定配置を有するフロアプランを示す。
図5】本発明の様々な態様および実施形態によって局所的に決定される適法配置を有するフロアプランを示す。
図6】本発明の様々な態様および実施形態による、フロアプランにおける要素の配置プロセスを示す。
【発明を実施するための形態】
【0008】
詳細な説明
以下では、本発明の様々な態様および実施形態を説明する本技術の様々な例について説明する。一般に、実施例は、記載された態様を任意の組み合わせで使用することができる。原理、態様、および実施形態、ならびにその特定の例を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含することを意図している。さらに、そのような等価物は、現在知られている等価物および将来開発される等価物の両方、すなわち、構造にかかわらず同じ機能を実行する開発された任意の要素を含むことが意図される。
【0009】
本明細書で使用される場合、単数形「a」、「an」および「the」は、文脈が明らかにそうでないことを示さない限り、複数の指示対象を含むことに留意されたい。本明細書を通して、「一態様」、「態様」、「特定の態様」、「様々な態様」、または同様の文言への言及は、任意の実施形態に関連して説明される特定の態様、特性、構造、または特徴が本発明の少なくとも1つの実施形態に含まれることを意味する。
【0010】
本明細書全体を通して、語句「一実施形態では」、「少なくとも1つの実施形態では」、「実施形態では」、「特定の実施形態では」、「いくつかの実施形態では」、および同様の文言の出現は、必ずしもそうとは限らないが、すべて同じ実施形態または同様の実施形態を指し得る。さらに、本明細書に記載された本発明の態様および実施形態は単なる例示であり、当業者によって理解される本発明の範囲または精神を限定するものとして解釈されるべきではない。開示された発明は、本明細書に記載された任意の新規な態様を含む任意の実施形態において効果的に作成または使用される。本発明の原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含することを意図している。そのような等価物は、現在知られている等価物および将来開発される等価物の両方を含むことが意図される。
【0011】
本明細書で使用される場合、トランザクションは、要求トランザクションまたは応答トランザクションであり得る。要求トランザクションの例は、書き込み要求および読み出し要求を含む。
【0012】
本明細書で使用される場合、ノードは、通信経路またはチャネルを介して情報を作成、受信、および/または送信することができる配信ポイントまたは通信エンドポイントとして定義される。ノードは、スイッチ、スプリッタ、マージャ、バッファ、およびアダプタのうちのいずれか1つを指すことができる。本明細書で使用される場合、スプリッタおよびマージャはスイッチであるが、すべてのスイッチがスプリッタまたはマージャであるとは限らない。本明細書で使用される場合、本発明の様々な態様および実施形態によれば、「スプリッタ」という用語は、単一の入口ポートおよび複数の出口ポートを有するスイッチを表す。本明細書で使用される場合、本発明の様々な態様および実施形態によれば、「マージャ」という用語は、単一の出口ポートおよび複数の入口ポートを有するスイッチを表す。
【0013】
本発明の様々な態様によれば、システムオンチップ(SoC)は、複数のクロックドメインおよび複数の電力ドメインを含む。クロックドメインは、所与のクロック入力によって供給されるすべての論理によって定義される。クロック入力は、その最も重要なパラメータであるクロックの周波数によって特徴付けられる。電力ドメインは、同じ電源から電力供給を受けるすべての論理によって定義される。本発明の様々な態様によれば、電源はゲートされ、したがって、電力ドメインはオンまたはオフにすることができ、または他の電力ドメインから分離することができる。したがって、設計者は、初期設計の一部として、クロックドメイン制約および電力ドメイン制約のセットを提供する。
【0014】
ここで図1を参照すると、接続ゾーン1および接続ゾーン2などの遮断エリアおよび配置エリアを有するフロアプラン100が示されている。本発明の様々な態様によれば、ピン留めされた要素およびピン留めされていない要素がある。ユーザは、ツールを使用してネットワーク要素をピン留め/ピン留め解除する能力を有する。ピン留めされた要素は、自動プレーサまたはツールの機械学習モデルによって移動されない要素であり、その位置は、他の要素を配置するための基準点として機能する。ピン留めされていない要素は、ツールによって移動することができ、識別されたエリア内で自由に移動することができる。本発明の様々な態様によれば、ツールは、プレーサモジュールを含む。プレーサモジュールは、最適化/適法化の目的でそれらの位置を変更することができる。本発明の様々な態様によれば、ネットワーク基準点(固定位置ポート、またはソケット)は、最初にツールによって自動的にピン留めすることができる。接続ゾーンは、利用可能な(すなわち遮断されていない)フロアプランの集合であり、集合内のすべての位置が、遮断または遮断エリアを横切ることなく、同じ集合内の任意の他の位置に到達することができる。本発明の様々な態様によれば、2つのネットワーク要素が同じ接続ゾーン内に配置される場合、それらは互いに到達することが保証され、すなわち、それらを接続するワイヤは遮断を横切る必要がない。
【0015】
ここで図2を参照すると、フロアプラン100が、クロックドメイン220および電力ドメイン210などの異なるクロックドメインおよび電力ドメインとともに示されている。本発明の様々な態様によれば、ツールは、クロック要件および電力要件に基づいて制約を満たすために法定配置のための配置制約を処理する。図示のように、また本発明のいくつかの態様および実施形態によれば、要素204は、電力ドメイン210およびクロックドメイン220を含む接続領域1内にある。ツールは、任意の単一のネットワーク要素について、それを配置することができる適法位置を決定するためのプロセスを実行する機械学習モデルを含む。フロアプランの所定の位置が適法である場合、いくつかの基準をチェックすることができる。本発明の様々な態様によれば、1つの基準は、位置が遮断エリアではなく使用可能な空間内にあることである。本発明の様々な態様によれば、1つの基準は、ネットワーク要素が明示的な配置制限(別名ムーブ境界)を有するモジュールの一部である場合、位置は制限の境界内になければならないことである。本発明の様々な態様によれば、1つの基準は、ネットワーク要素が明示的な配置制限を有するクロックドメインの一部である場合、位置は制限の範囲内になければならないことである。本発明のさまざまな態様によれば、基準は、電力ドメイン要件に対して同じ方式で適用される。例えば、要素204が要素206と通信しており、要素206を接続領域1に配置する必要がある場合、要素は電力制約およびクロック制約の両方を満たす場所に配置されなければならない。この非限定的な例では、場所240はすべての制約を満たし、要素206の配置のための適法な場所である。
【0016】
本発明の様々な態様によれば、1つの基準は、ピン留めされたネットワーク要素に関連する。ネットワーク要素がピン留めされている場合、ユニットの唯一の適法な位置はその現在位置であり、ツールは、この基準を所与として現在位置が適法なものでなければ、エラーを報告することができる。エラーは、すべての将来のエラーを検出するように機械学習モデルをさらに訓練するために、機械学習モデルへのフィードバックとして使用される。
【0017】
本発明の様々な態様によれば、1つの基準は、ネットワーク要素が、そのネットワーク要素に直接接続されたネットワーク要素である隣接要素に到達できなければならないことである。これにより、ネットワーク要素はその隣接要素と同じ接続ゾーンになければならない。
【0018】
ここで図3図5を参照すると、フロアプラン100は、フロアプラン300内の2段階配置を実装しまたは場所を正確に特定するツールのプレーサモジュールまたは配置モジュールによって変更される。すべての変更および配置は、少なくともディスプレイまたはグラフィカルユーザインターフェース上のグラフィカルビューを使用して、ユーザとツールとの対話を通じてリアルタイムで提示される。本発明の様々な態様によれば、ツールは、2つの段階で動作する配置プロセスを使用する。本発明の様々な態様によれば、ツールは、グローバルな粗い配置を使用する。ツールは、ネットワークオンチップ(NoC)またはネットワークをグローバルに配置する。すなわち、すべてのピン留めされていないユニットまたは要素310は、全体ワイヤ長および平均ルート長を最小にするように、それらの現在の位置から遠くに同時に移動することができる。グローバル配置の複雑さを補償するために、このステップは正確なワイヤルートを考慮していない。本発明の様々な態様によれば、2つの後続のネットワーク要素間の距離は、マンハッタン距離(dX+dY)であると考えられる。本発明の様々な態様によれば、ツールは、ネットワーク要素をそれらの適法な位置に制限するだけで、マンハッタン距離の合計である総セグメント長を最小化する、この問題を解決するソルバーモジュールを含む。本発明の様々な態様によれば、ツールは、機械学習モデルを利用してセグメントを生成し総セグメント長を決定する。
【0019】
このステップの後、ツールは、本発明の様々な態様および実施形態に従って、図4に示すような良好な初期グローバル配置を生成する。この結果、いくつかのセグメントは最適ではない。正確なルートが識別されなかったため、総セグメント(またはワイヤ)長は正確ではない可能性があり、したがって総ワイヤ長は考慮されない。また、全長のみが最適化されるため、機械学習モデルはセグメント長のバランスを取ろうとしない。
【0020】
本発明の様々な態様によれば、ツールは、初期レイアウトまたは配置を編集する。ツールは、局所的なきめ細かい配置を使用して精緻化し、正確な結果を決定する。ツールは、ここでは、非最適な配置または非最適な経路/ルートであったかもしれないルートに沿った要素の配置(または再配置)を再調整するために、全体的にではなく局所的に動作する。再び図5を参照すると、ツールは、要素504および要素506をフロアプラン502に配置するために、一度に1つのネットワーク要素を局所的に操作する。このツールは、正確なワイヤ長を計算し、セグメントバランスが考慮される。本発明の様々な態様によれば、ツールは、機械学習モデルを利用して正確なワイヤ長およびセグメントバランスを決定する。各反復において、ネットワーク要素は、正確な直線ルートを考慮に入れて、ネットワーク要素をその隣接要素に接続するワイヤの全長を含むネットワーク要素を囲むワイヤ長を改善する場合、およびその場合に限り、またはネットワーク要素を囲むセグメント長の不一致を減少させる場合に限り、1つの位置(東、西、北、または南)だけ移動され、それは、すべての隣接要素から等しい距離に要素を配置しようとしている。ここでは、例えばセル密度などの他の2次基準を追加することができる。ツールの機械学習モデルは、配置が安定するまで、または最大反復回数に達するまでプロセスを継続する。ツールが相補的なこれら2つの工程を使用した後、ネットワークのグローバル配置の可能性に短時間で到達する。何回かの反復の後、結果として得られる要素の配置がフロアプラン510に示されている。
【0021】
ここで図6を参照すると、設計ツールは、本発明の様々な態様および実施形態によるプロセス600を実行する。ステップ602において、NoCを構築するために使用されるフロアプランが提供され、フロアプランは接続ゾーンおよび遮断エリアを含む。また、ツールは、NoCの要素のパラメータ、要件、および/または制約を受信する。ステップ604において、ピン留めされた要素の場所が、各接続ゾーン内で特定される。ツールはまた、各接続ゾーンのピン留めされていない要素、およびピン留めされていない要素に接続されることになる対応するピン留めされた要素に関する情報を受信する。ステップ606において、ツールは、ピン留めされていない要素の場所を、それと通信している対応するピン留めされた要素のそれぞれの接続ゾーン内で位置決めしまたは正確に特定する。要素がフロアプラン内に配置されると、ツールは各要素を配置するための適法空間を決定する。これらの適法空間は、ピン留めされていない要素の配置に関連する要件または制約を満たすため、ピン留めされていない要素の配置に必要な場所である。
【0022】
ステップ608において、ツール(またはツールの機械学習モデル)は、ピン留めされた要素とその対応するピン留めされていない要素とを接続するルートを決定する。ツールはまた、同じ接続ゾーン内の他のピン留めされた要素と他のピン留めされていない要素との間のルートを識別する。ステップ610において、ツール(または機械学習モデル)は、フロアプラン内のピン留めされていない要素の場所を調整して、様々なルートのセグメントを最適化しバランスをとる。本発明の様々な態様および実施形態によれば、ツールの機械学習モデルはまた、より最適なフロアプランの使用状態を作り出すために遮断エリアの調整を提案することができる。
【0023】
本発明の様々な態様によれば、イニシエータおよびターゲットは、NoCに通信可能に接続される。イニシエータは、要求を送信するユニットである。イニシエータは通常、コマンドを読み書きするように構成される。ターゲットは、要求に応じるかまたは応答するユニットである。ターゲットは通常、コマンドを読み書きするように構成される。各イニシエータは、NIUを介してNoCに取り付けまたは接続される。イニシエータに取り付けられたNIUは、イニシエータネットワークインターフェースユニット(INIU:Initiator Network Interface Unit)と呼ばれる。さらに、各ターゲットはNIUを介してNoCに取り付けられる。ターゲットに取り付けられたNIUは、ターゲットネットワークインターフェースユニット(TNIU:Target Network Interface Unit)と呼ばれる。NoCの主な機能は、イニシエータからの各要求を所望の宛先ターゲットに搬送することであり、要求が応答を要求または必要とする場合、NoCは各ターゲットの応答を対応する要求元イニシエータに搬送する。イニシエータおよびターゲットは、それらを特徴付ける多くの異なるパラメータを有する。本発明の様々な態様によれば、各イニシエータおよびターゲットについて、それらが属するクロックドメインおよび電力ドメインが定義される。読み出しペイロードを送信、書き込み、および受信するためにそれらが使用するデータバスの幅は、ビット数である。本発明の様々な態様によれば、書き込み要求を送信し、書き込み要求を書き込み、書き込み応答を受信するために使用される接続(ターゲットとの間の通信経路)のためのデータバスの幅も定義される。さらに、クロックドメインおよび電力ドメインの定義は、本明細書に記載されているように、SoCに存在する前述のクロックおよび電力ドメインへの参照である。
【0024】
本発明の様々な態様によれば、イニシエータは、すべてのターゲットまたはNoCに接続されたターゲットに要求を送信できる必要はない。イニシエータから要求を受信することができるターゲットの正確な定義は、図示されていない接続性テーブルに概説されている。接続性およびトラフィッククラスのラベリング情報は、明示的または概念的な行列として表すことができる。各イニシエータは行を有し、各ターゲットは列を有する。イニシエータがターゲットにトラフィックを送信できなければならない場合、イニシエータ行とターゲット列との間の交差部にトラフィッククラスラベルが存在しなければならない。交差部にラベルが存在しない場合、ツールはそのイニシエータとそのターゲットとの間の接続性を必要としない。本発明の様々な態様によれば、接続性を表すために使用される実際のフォーマットは、イニシエータ-ターゲットの組み合わせの各ペアがそのトラフィッククラスの正確な定義を有する限り異なり得るか、または接続がない場合には分類ラベルはない。イニシエータ/ターゲット接続が複数のトラフィッククラスをサポートすることは、本発明の範囲内である。
【0025】
レイテンシが、データがネットワークを通過するのにかかるクロックサイクルの数を指すことは、本発明の範囲内である。レイテンシは、高帯域幅(周波数)を有するにもかかわらず、伝送ネットワークにおいて問題を引き起こす。「リアルタイムトラフィッククラス」の例は、自動運転車のカメラからの映像データである。データの伝搬において長いレイテンシを有することは許容されない。いくつかのデータが失われると、車両は安全でなくなる。依然としてリアルタイムであるがそれほど重要ではないトラフィッククラスは、娯楽システムにおけるオーディオおよび/またはビデオのためのものである。そのデータにギャップがあることは望ましくないが、安全でないことはない。非リアルタイムデータの例は、自動車内の燃料系センサからのデータである。データが数秒間遅延する場合、データの変化率はSoCの動作速度と比較して非常に遅いため、問題ではない。
【0026】
本発明のいくつかの態様によれば、ツールのシナリオは定義されておらず、その場合、ツールは、最低ゲートコストおよび/または最低ワイヤコストなどの物理的コストに対してNoC合成プロセスを最適化する。
【0027】
本発明の様々な態様によれば、ツールは、以下の定義されたパラメータまたは構成要素を用いて接続性行列を処理する。
【0028】
・イニシエータごとに1つのネットワークインターフェースユニット
・ターゲットごとに1つのネットワークインターフェースユニット
・クラスのメインスイッチと呼ばれる、定義されたトラフィッククラスごとに1つのスイッチが作成される
・各イニシエータ/イニシエータNIUの後の1つのスイッチであって、このイニシエータが到達する必要のある異なるメインスイッチにトラフィックを分割する、1つのスイッチ
・各ターゲット/ターゲットNIUの前の1つのスイッチであって、このターゲットにトラフィックを送信している異なるメインスイッチからのトラフィックをマージする、1つのスイッチ
各スイッチのデータ幅およびそれが属するクロックドメインは、ツールへの入力として、各接続インターフェースのデータ幅およびそれらのクロックドメインを使用して計算される。本発明の様々な態様によれば、NoCの一部であるネットワークを変換する各ステップはまた、新たに作成されたネットワーク要素のデータ幅およびクロックドメインの計算を実行する。
【0029】
本発明の様々な態様によれば、ツールを使用して、メインスイッチ内の各マージャの各スイッチは、マージャのカスケードにさらに分解され、カスケードの各マージャは、接続ターゲットのマージャロードマップの分岐点に配置される。ロードマップの分岐点は、経路が2つ以上の分岐に分割されているという事実によって定義される。スプリッタのカスケード内でスプリッタを分解するプロセスは、カスケードへの入力の数が依然として1つであり、カスケードの出力の数が元のスプリッタの出力の数と同一であるため、元のスプリッタ機能を維持する。マージャのカスケードにおいてマージャを分解するプロセスは、カスケードの出力の数が依然として1であり、カスケードへの入力の数が元のマージャへの入力の数と同一であるため、元のマージャ機能を維持する。本発明の様々な態様によれば、プロセスの効果は、スイッチ間の実際の接続が必要とされる場所の近くに物理的に配置された、マージャおよびスプリッタによって表される基本スイッチのセットを得ることである。
【0030】
本発明の様々な態様によれば、ツールは、イニシエータとターゲットとの間の必要な最小スループットのセットであるシナリオで定義された性能を維持しながら、達成可能なスイッチ間で使用されるワイヤの数を減らすためにネットワークを変換する。本発明の様々な態様によれば、スイッチは、性能を認識したスイッチングのためにクラスタ化され、道路ロードマップ上に分散されているマージャおよびスプリッタは、通常のスイッチと同様に扱われる。
【0031】
本発明の他の態様によれば、フロアプラン上のクロックドメインおよび電力ドメインの拡張が提供され、各要素は、指定されたクロックドメインおよび電力ドメインの境界内に設置することを保証するために試験される。試験が失敗した場合、要素は、試験に合格している適切な場所が見つかるまで移動される。各要素に対して適切な配置が見つかると、要素間の各接続のルーティングが行われる。ルーティングプロセスは、要素間の接続を行うワイヤのセットに適した経路を見つける。ルーティングが行われた後、信号が1mmの距離をカバーするのにかかる時間に基づいて、本技術の能力に関して提供される情報を使用して、必要に応じて距離スパンパイプライン要素がリンクに挿入される。
【0032】
本発明のいくつかの態様および実施形態によれば、ツールは、生成されたNoCを記述する1つまたは複数のコンピュータファイルを生成し、このコンピュータファイルは以下を含む。
【0033】
ネットワーク要素のリストとその構成:データ幅、クロックドメイン。
フロアプラン上の生成された各ネットワーク要素の位置。
【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つの制約パラメータは、ツールを使用して、NoCの物理的実施態様を誘導する情報でNoCの物理的フロアプランを増補すること、および物理的フロアプランを使用して、少なくとも1つの制約パラメータに基づいて、物理的フロアプラン上の場所への接続の物理的実施態様を制約することを含む少なくとも1つの物理的制約および少なくとも1つの性能制約を含む制約パラメータのグループから選択される。
【0051】
本発明の様々な態様による特定の方法は、非一時的コンピュータ可読媒体に記憶された命令によって実行することができる。非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、システムまたはコンピュータに本明細書に記載の方法のステップを実行させる命令を含むコードを格納する。非一時的コンピュータ可読媒体は、回転磁気ディスク、回転光ディスク、フラッシュランダムアクセスメモリ(RAM:random access memory)チップ、および他の機械的に動くまたは固体状態の記憶媒体を含む。任意のタイプのコンピュータ可読媒体は、様々な例による命令を含むコードを格納するのに適している。
【0052】
特定の例を本明細書で説明してきたが、異なる例から異なるコンポーネントの異なる組み合わせが可能であり得ることに留意されたい。顕著な特性は、例をよりよく説明するために提示される。しかしながら、説明したようなこれらの例の機能的態様を修正することなく、特定の特性を追加、変更、および/または省略することができることは明らかである。
【0053】
様々な例は、機械のいずれかまたは組み合わせの挙動を使用する方法である。方法の例は、世界のどこででもほとんどの構成ステップが行われる完璧なものである。例えば、本発明の様々な態様および実施形態によれば、IP要素またはユニットは、プロセッサ(例えば、CPUまたはGPU)、RAM、-例えば、オフチップダイナミックRAMまたはDRAM)、イーサネット(登録商標)、WiFi、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】
したがって、本発明の範囲は、本明細書に示され説明される例示的な実施形態に限定されることを意図するものではない。むしろ、本発明の範囲および精神は、添付の特許請求の範囲によって具体化される。
図1
図2
図3
図4
図5
図6
【外国語明細書】