(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024173814
(43)【公開日】2024-12-12
(54)【発明の名称】自動配置制約生成、自動アダプタ挿入処理、局所的および大域的な輻輳捕捉のための設計ツール
(51)【国際特許分類】
G06F 30/392 20200101AFI20241205BHJP
G06F 30/27 20200101ALI20241205BHJP
【FI】
G06F30/392
G06F30/27
【審査請求】未請求
【請求項の数】3
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024088377
(22)【出願日】2024-05-30
(31)【優先権主張番号】63/469,546
(32)【優先日】2023-05-30
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】521196590
【氏名又は名称】アルテリス・インコーポレイテッド
【氏名又は名称原語表記】ARTERIS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】アミール・シャリフ
(72)【発明者】
【氏名】グザビエ・バン・リュインベック
(72)【発明者】
【氏名】デビン・ブライト
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146DC03
5B146GC12
(57)【要約】
【課題】 ネットワーク要素の配置のための制約を自動的に生成するツールが開示される。
【解決手段】これは、制約に従うバックエンドツールによって理解することができる。ツールはまた、所与の境界内の配置を制約し、バックエンドツールの実行時間をより速くする。さらに、ツールは、下流またはバックエンドツールにおけるタイミングクロージャを助けるために、トポロジに追加の要素を自動的に挿入する。さらに、ツールは、編集中にワイヤ輻輳に関するリアルタイムのフィードバックをユーザに提供する。ツールはまた、訓練され、かつモデルをさらに訓練するために提供される解決策のフィードバックを受信する、機械学習モデルを実装する。ツールはまた、自動化され支援されたトポロジ分析および合成のために機械学習モデルを訓練するために、フィードバックを使用する能力を含む。ツールは、合成NoCの物理的実装中である物理的実装ガイダンスを生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ネットワークオンチップ(NoC:network-on-chip)の物理的生成をガイドするための方法であって、前記方法が、
閉塞エリアおよび非閉塞エリアを有するフロアプランを受信することと、
前記非閉塞エリア内に複数の領域を生成することと、
前記複数の領域から選択された第1の領域に制約されるべきユニットのリストを受信することと、
最適化された第1の領域を生成するために、前記第1の領域と重なる前記複数の領域の近傍領域の少なくとも一部を捕捉するために前記第1の領域をマージすることと、
必要なユニットを包含し、輻輳を低減するために、前記最適化された第1の領域を、閾値領域サイズを満たすより小さな領域に分割することと、
最終領域に最適化された利用データを前記最終領域に提供することと
を含む、方法。
【請求項2】
前記最終領域が、前記閉塞エリアを回避する多角形領域である、請求項1に記載の方法。
【請求項3】
フロアプラン内にネットワークオンチップ(NoC:network-on-chip)トポロジを生成するための設計ツールであって、前記ツールが、前記フロアプラン内の閉塞エリアを回避し、各領域を最適化する多角形領域の生成を可能にする領域構築ユニットを備える、設計ツール。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本出願は、2023年5月30日に出願されたAmir CHARIFらによる「DESIGN TOOL FOR AUTOMATED PLACEMENT CONSTRAINT GENERATION,ADAPTER INSERTION PROCESS,AND LOCAL AND GLOBAL CONGESTION CAPTURE」と題する米国仮出願第63/469,546号の利益を主張し、その全開示は参照により本明細書に組み込まれる。
【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】
結果をRTLコードとしてエクスポートすることができる、フロアプラン上のNoCトポロジを編集するために使用される設計ツールを考察する。ユーザがトポロジを完成させ、現在の配置に満足すると、作業をエクスポートし、ネットリストを生成して最終的な場所およびルートなどを実行することができるバックエンドツールにそれを供給する準備が整う。問題は、バックエンドツールの場所およびルートが、ユーザによって生成された配置とは全く異なる結果をもたらす場合、多くの最適化および構成が無効になることである。例えば、特定の距離にわたってタイミングをクローズするためにユーザによってパイプが追加された場合、配置が大幅に変化した場合、それらはもはや有効ではない可能性がある。さらに、物理的制約(フロアプラン空間)に従ってトポロジが最適化されると、タイミングクロージャの問題が残る。
【0006】
したがって、ネットワーク要素の配置の制約を自動的に生成する設計ツールが必要とされている。制約は、バックエンドツールによって理解することができる。バックエンドツールは、ユーザが期待するものに近いネットワークユニットを配置するために制約に従う。さらに、所定の境界内に配置を制約することは、バックエンドツールにおけるより速い実行時間をもたらす。さらに、必要とされているのは、バックエンドまたは下流のツールにおけるタイミングクロージャを助けるために、トポロジに追加の要素を自動的に挿入するツールである。さらに、編集中にワイヤ輻輳に関するリアルタイムのフィードバックをユーザに提供するツールも必要とされている。これにより、ユーザは早期に配置を変更してトポロジを最適化することができ、これは非常に有益である。
【発明の概要】
【課題を解決するための手段】
【0007】
概要
本発明の様々な実施形態および態様によれば、ネットワーク要素の配置のための制約を自動的に生成する設計ツールが開示され、これは、フロアプランにおいて、制約に従うバックエンドツールによって理解することができる。設計ツールはまた、所与の境界内の配置を制約し、バックエンドツールの実行時間をより速くする。さらに、ツールは、下流またはバックエンドツールにおけるタイミングクロージャを助けるために、トポロジに追加の要素を自動的に挿入する。さらに、ツールは、編集中にワイヤ輻輳に関するリアルタイムのフィードバックをユーザに提供する。
【図面の簡単な説明】
【0008】
【
図1】本発明の様々な態様および実施形態によるフロアプランおよびデータフィールドエントリウィンドウを含むツールのスクリーンショットを示す。
【
図2】本発明の様々な態様および実施形態による
図1のツールを示す。
【
図3】本発明の様々な態様および実施形態によるツールを使用してフロアプランを最適化するための処理を示す。
【
図4】本発明の様々な態様および実施形態による、さらなる最適化を伴う
図3のツールによって使用される処理を示す。
【
図5】本発明の様々な態様および実施形態によるツールの領域の自動生成および領域のマージを示す。
【
図6】本発明の様々な態様および実施形態による、重なり合う閉塞のない複雑な形状の多角形領域を生成するためのツールを示す。
【
図7】本発明の様々な態様および実施形態による、クロックアダプタ、ディスタンスパイプライン、およびルーティングリンクを使用するツールを示す。
【
図8】本発明の様々な態様および実施形態による、最適化された領域を使用してフロアプラン内にネットワークオンチップ(NoC:network-on-chip)を生成および配置するための工程を示す。
【発明を実施するための形態】
【0009】
詳細な説明
以下では、本発明の様々な態様および実施形態を説明する本技術の様々な例について説明する。一般に、例は、記載された態様を任意の組み合わせで使用することができる。原理、態様、および実施形態、ならびにそれらの特定の例を列挙する本明細書のすべての記述は、それらの構造的および機能的等価物の両方を包含することを意図している。さらに、そのような等価物は、現在知られている等価物および将来開発される等価物の両方、すなわち、構造にかかわらず同じ機能を実行する開発される任意の要素を含むことが意図される。
【0010】
本明細書で使用される場合、単数形「a」、「an」および「the」は、文脈が明らかにそうでないことを指示しない限り、複数の指示対象を含むことに留意されたい。本明細書を通して、「一態様」、「態様」、「特定の態様」、「様々な態様」、または同様の文言への言及は、任意の実施形態に関連して説明される特定の態様、特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。
【0011】
本明細書全体を通して、語句「一実施形態では」、「少なくとも1つの実施形態では」、「実施形態では」、「特定の実施形態では」、および同様の文言の出現は、必ずしもそうとは限らないが、すべて同じ実施形態または同様の実施形態を指し得る。さらに、本明細書に記載された本発明の態様および実施形態は単なる例示であり、当業者によって理解される本発明の範囲または精神を限定するものと解釈されるべきではない。開示された発明は、本明細書に記載された任意の新規な態様を含む任意の実施形態において効果的に作成または使用される。本発明の原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含することを意図している。そのような等価物は、現在知られている等価物および将来開発される等価物の両方を含むことが意図される。
【0012】
本明細書で使用される場合、トランザクションは、要求トランザクションまたは応答トランザクションであり得る。要求トランザクションの例は、書き込み要求および読み出し要求を含む。
【0013】
本明細書で使用される場合、ノードは、通信経路またはチャネルを介して情報を作成、受信、および/または送信することができる配信ポイントまたは通信エンドポイントとして定義される。ノードは、スイッチ、スプリッタ、マージ、バッファ、およびアダプタのうちのいずれか1つを指し得る。本明細書で使用される場合、スプリッタおよびマージはスイッチであるが、すべてのスイッチがスプリッタまたはマージであるとは限らない。本明細書で使用される場合、また本発明の様々な態様および実施形態によれば、「スプリッタ」という用語は、単一の入口ポートおよび複数の出口ポートを有するスイッチを表す。本明細書で使用される場合、また本発明の様々な態様および実施形態によれば、「マージ」という用語は、単一の出口ポートおよび複数の入口ポートを有するスイッチを表す。
【0014】
本発明の様々な態様によれば、システムオンチップ(SoC:system-on-chip)は、複数のクロックドメインおよび複数のパワードメインを含む。クロックドメインは、所与のクロック入力によって供給されるすべてのロジックによって定義される。クロック入力は、その最も重要なパラメータであるクロックの周波数によって特徴付けられる。パワードメインは、同じ電源から電力供給を受けるすべてのロジックによって定義される。本発明の様々な態様によれば、電源はゲートされ、したがって、パワードメインはオンまたはオフにすることができ、または他のパワードメインから分離することができる。したがって、設計者は、初期設計の一部として、クロックドメイン制約およびパワードメイン制約のセットを提供する。
【0015】
ここで
図1および
図2を参照すると、本発明の様々な態様および実施形態による、設計ツールのグラフィカルユーザインターフェースまたはディスプレイインターフェースのスクリーンショット100および200が示されている。スクリーンショット100はフロアプランを表示している。スクリーンショット200は、モジュールのリストを表示している。ツールは、フロアプランの利用可能な空間に領域を作成する。本発明の様々な態様および実施形態によれば、ユーザは、フロアプラン上の領域を手動でグラフィカルに描画することができる。本発明の様々な態様および実施形態によれば、ユーザは、コマンドラインインターフェースを使用して領域を作成することができる。本発明の様々な態様および実施形態によれば、ツールは、ユーザが提供したサイズに基づいて、新しい領域を自動的に生成することができる。本発明の様々な態様によれば、ツールは、新しい領域を提供または生成するように訓練された機械学習モデルを含む。機械学習モデルは次に、生成された新しい領域に基づいてユーザからフィードバックを受信し、フィードバックはモデルをさらに訓練するために使用される。
【0016】
本発明の様々な態様によれば、ユーザは、識別された領域内で制約されるべきネットワーク要素(例えば、ユニットまたはモジュール)を選択する。ツールは、ユニットを容易に選択するための複数の方法(要素の種類、ネットワーク、正規表現など)を提供し得る。ユーザは、領域を選択し、制約するモジュールをリストから指定することによって、既存のモジュール210を手動で領域に割り当てる。本発明の様々な態様および実施形態によれば、指定されたユニットの各々について、ツールは、ユニットを新しいモジュールに自動的に割り当て、ユニットの現在位置をカバーする領域内にモジュールがあるように制約する。本発明の様々な態様および実施形態によれば、複数のそのような領域が存在する場合、ユーザは、どの領域を使用してユニットを制約するかを設定してもよい。ツールは、最終的な設計をクリーンアップして最適化するために、未使用の領域(ユニットを制約するために使用されなかった領域)を自動的に除去する。次いで、ツールは、最終的な制約をバックエンドツールによって理解されるフォーマットにエクスポートする。
【0017】
ここで
図3および
図4を参照すると、本発明の様々な態様および実施形態によるツールを使用したフロアプラン最適化300および400が示されている。ツールは、領域310を自動的に生成する。本発明の様々な態様によれば、ツールはユニット中心の最適化である。ツールの機械学習モデルは、必要な領域を作成する。領域は、互いに重なってもよい。ツールは、現在のネットワークユニット位置のリストから開始する。ツールは、近くにあるユニットのクラスタを検出する。各クラスタについて、ツールは、ユニットをカバーするユーザ定義のサイズを使用して領域を作成する。
【0018】
本発明の様々な態様によれば、ツールは、グローバルに最適化されたグリッドを実行/生成するモードを使用する。ツールは、利用可能なフロアプラン空間内の領域を矩形領域320のグローバルグリッドに編成する。構築により、領域は互いに重ならない。ツールは、領域を組み合わせるためのステップのセットを使用してグリッドを生成する。ツールは、フロアプランの利用可能な空間に基づいて初期矩形領域を生成する。
図3を参照すると、ツールは、領域を隣接する領域に向かって成長させ、その空間の一部を消費することによって初期分割を全体的かつ反復的に最適化し、空間が残っていない領域は破棄される。本発明の様々な態様および実施形態によれば、ツールは遺伝的アルゴリズムを使用することができる。本発明の様々な態様および実施形態によれば、最適化目標は、可能な限り大きくかつ可能な限り正方形である領域を得ることである。
【0019】
図4を参照すると、最適化されたフロアプラン400および目標サイズのフロアプラン402が示されている。ツールは、ユーザが提供した(好ましい)目標サイズに基づいて、領域410などの大きな領域をより小さな領域420に分割する。
【0020】
ここで
図5を参照すると、実行される工程の様々な段階である様々なフロアプラン502,504および506は、本発明の様々な態様に従って領域を自動的に成長させ、コンテンツをマージするための工程を実行しているツールを使用するときの進行として表示される。このツールは、ユニットが所与の領域内にあるように制約される場合、領域の面積が、特定のサイズおよび密度を有するユニットのすべてを包含するのに十分であることを保証する。ツールは、早期面積推定モジュールから、または以前のバックエンド実行によって生成された正確な面積報告から、ネットワークユニットに関する面積情報をインポートする。ツールは、領域、例えば、利用による色調整された(色でラベル付けされた)領域の利用度をユーザに示すための視覚情報を提供する。ツールは、過剰に利用される領域を自動的に成長させる。次いで、ツールは、ユーザ定義の閾値パラメータに基づいて、著しく重なる領域をマージする。2つの領域がマージされると、両方の領域のコンテンツは、新しいより大きな領域によって制約される。
【0021】
ここで
図6を参照すると、本発明の様々な態様による最終領域を生成するためにツールによって使用される工程600が示されている。ツールは、重なる閉塞なしに領域を成長させる。ツールは、領域が閉塞と重ならず、他の領域と制御可能に重なることを保証しながら、(例えば、面積目標を満たすために)領域を成長させる。ツールは、フロアプランのグリッドのレベルで動作する。本発明の様々な態様によれば、フロアプランは、典型的には、解像度を考慮して、小セルまたはノードに離散化される。閉塞によって覆われているセルは「閉塞されている」と印され、既存の領域によって覆われているセルは所与の領域オブジェクトでタグ付けされる。単一のセルを複数の領域でタグ付けすることができる。各領域は、論理的な矩形境界ボックスに関連付けられる。最初に、境界ボックスは領域のすべてのセルを含む。ツールは、以下を反復的に繰り返すことによって領域を成長させる。
【0022】
1)フロアプランのセルの各方向(東、西、南、北)、一度に1列または1行で境界ボックスを成長させることをシミュレートする。
【0023】
2)各場合において、閉塞セルを除外し、それに応じて他の領域によってタグ付けされたセルの面積を分割しながら、追加のセルの面積の合計を計算することによって有効な新しい面積を計算する。
【0024】
3)面積を最大量増加させる側を成長させることにより、成長は領域をより「正方形」形状にする方向になる傾向がある。
【0025】
4)最大の成長をもたらす方向を選択し、選択した方向に境界ボックスを効果的に成長させる。
【0026】
5)新たに含まれるセルに領域をタグ付けする。ツールは、領域がその目標サイズに達するまで継続する。
【0027】
本発明の様々な態様によれば、上記の工程を使用してすべての領域が成長すると、ツールは重なりの確認を実行し、2つの領域間の共有セル面積が所与の閾値を超える場合、2つの領域は1つにマージされる。その境界ボックスから最終領域を出力するために、ツールは、含まれるセルのスキャンを実行し、有効なセルのみを含む多数の矩形を生成する。本発明の様々な態様によれば、単純な下から上への水平走査を使用して矩形を検出することができる。このようにして、閉塞と重ならない複雑な形状の多角形がエクスポートされる。
【0028】
ここで
図7を参照すると、本発明の様々な態様によるツールによって使用される工程700が示されている。ネットワーク内の各セグメントについて、ツールは、要素およびルート(エッジまたはリンク)の挿入を実行し、これはユーザによってアクティブ化/非アクティブ化および構成することができる。本発明の様々な態様によれば、ツールはルーティングリンク702を挿入する。セグメントを構成する2つの要素間にワイヤが配線される場合、ルートは複雑になる可能性があり、すなわち多くの迂回路および角を含み得る。すべてのタイミング分析は、フルルートに基づいていなければならない。下流のツールが、ツールによって計算されたものと同じルートを確実にたどるようにするために、ツールは、最初に、ルーティングリンク702内のワイヤルートのすべての角に空のモジュール706を挿入する。この空のモジュール706は、ルーティングリンク702の一部である。ルーティングリンクのモジュールは局所領域内に制約されているため、ワイヤは配置およびルーティングを行う下流のツール内の同じ経路をたどる。
【0029】
本発明の様々な態様によれば、ツールはクロックアダプタ708を挿入する。セグメントの2つの要素が異なるクロックドメインを有する場合、クロック適応モジュールは、ソース要素710から宛先要素720へセグメント内にクロックアダプタを挿入し、これは本発明の様々な態様によるクロックドメイン交差であり得る。ユーザは、バランスのためにセグメントの中央にアダプタ708を配置するか、またはより速いクロックに近く配置するようにツールに指示してもよく(または、ツールは機械学習モデルを使用して自動的に決定してもよく)、それによってより遅いクロックをより長い距離にわたって延長し、より短い距離のパイプが必要とされることを保証する。
【0030】
本発明の様々な態様によれば、ツールはディスタンスパイプ730を挿入する。技術設定によって指示されるワイヤ遅延、およびクロック速度は、挿入される必要があるディスタンスパイプの数を計算するために使用される。ツールは、セグメントに沿って均等に分配されるようにディスタンスパイプを挿入する。
【0031】
本発明の様々な態様によれば、ツールは輻輳領域を検出する。ツールは、フロアプランの使用可能な空間を領域に分割する。分割は、フロアプランのチャネルを可能な限り捕捉する。
【0032】
ここで
図8を参照すると、本発明の様々な態様および実施形態による工程800が示されている。ステップ802において、ツールは、閉塞エリアおよび非閉塞エリアを有するフロアプランを受信する。ステップ804において、ツールは、非閉塞エリア内の領域を生成し、この領域は、フロアプラン上で重なり、異なる多角形形状を有してもよい。ステップ806において、ツールは、ユニットおよびユニットが配置のために含まれるかまたは制約される領域のリストを受信する。ステップ808において、ツールは、重なり合ういくつかの領域を含む近傍領域をマージして、ほぼ矩形の領域を生成し、領域の重なり合いを除去する。領域がマージされると、ツールは、ユニットの初期包含/制約要件に基づいてユニットを正しいマージ領域に割り当てる。ステップ810において、ツールは、ユニットの分析および/または配置のために、より大きな領域をより小さな領域に分割する。ツールは、ユニットの配置のために最適化され、閉塞エリアを回避する最終領域マップをフロアプラン上に提供することができる。
【0033】
本発明の様々な態様によれば、ツールはワイヤ容量データに対処する。技術パラメータで提供された金属層情報(ピッチ、配向)から、ツールは、各領域を通って配線することができる水平および垂直ワイヤの最大総数を計算する。本発明の様々な態様によれば、ワイヤルートが計算される度に、ツールは、それが横断する輻輳領域の各々の水平/垂直ワイヤ使用量を更新する。本発明の様々な態様によれば、ツールは、輻輳ヒートマップを識別して生成する。ツールは、グラフィカルエディタにおいて輻輳領域利用のためのヒートマップを構築する。
【0034】
本発明の様々な態様によれば、ツールはカスタム輻輳ウィンドウを提供する。輻輳チャネルに分割された自動フロアプランは、ユーザが関心を持つチャネルを捕捉しない可能性があるため、ツールは、例えば、輻輳データが追跡および報告されるグラフィカルビュー上に矩形を描画することによって、フロアプラン内にカスタム領域を定義する能力をユーザに提供する。ユーザは、所望の数のウィンドウを定義することができる。これは、輻輳の問題が発生する可能性がある関心領域の位置をユーザが正確に示すことができ、フロアプラン全体における不必要な記録保持を回避するため、強力である。
【0035】
本発明の様々な態様によれば、イニシエータおよびターゲットは、NoCに通信可能に接続される。イニシエータは、要求を送信するユニットである。イニシエータは通常、コマンドを読み書きするように構成される。ターゲットは、要求に応じるかまたは応答するユニットである。ターゲットは通常、コマンドを読み書きするように構成される。各イニシエータは、NIUを介してNoCに取り付けまたは接続される。イニシエータに取り付けられるNIUは、イニシエータネットワークインターフェースユニット(INIU:Initiator Network Interface Unit)と呼ばれる。さらに、各ターゲットは、NIUを介してNoCに取り付けられる。ターゲットに取り付けられるNIUは、ターゲットネットワークインターフェースユニット(TNIU:Target Network Interface Unit)と呼ばれる。NoCの主な機能は、イニシエータからの各要求を所望の宛先ターゲットに搬送することであり、要求が応答を要求または必要とする場合、NoCは各ターゲットの応答を対応する要求元イニシエータに搬送する。イニシエータおよびターゲットは、それらを特徴付ける多くの異なるパラメータを有する。本発明の様々な態様によれば、各イニシエータおよびターゲットについて、それらが属するクロックドメインおよびパワードメインが定義される。読み出しペイロードを送信、書き込み、および受信するためにそれらが使用するデータバスの幅は、ビット数である。本発明の様々な態様によれば、送信、要求の書き込み、および書き込み応答の受信に使用される接続(ターゲットとの間の通信経路)のためのデータバスの幅も定義される。さらに、クロックおよびパワードメインの定義は、本明細書に記載されているように、SoCに存在する前述のクロックおよびパワードメインへの参照である。
【0036】
本発明の様々な態様によれば、イニシエータは、すべてのターゲットまたはNoCに接続されたターゲットに要求を送信できる必要はない。イニシエータから要求を受信できるターゲットの正確な定義は、表400などの接続性表に概説または記載されている。接続性およびトラフィッククラスのラベリング情報は、明示的または概念的な行列として表すことができる。各イニシエータは行を有し、各ターゲットは列を有する。イニシエータがターゲットにトラフィックを送信できなければならない場合、イニシエータ行とターゲット列との間の交差部にトラフィック・クラス・ラベルが存在しなければならない。交差部にラベルが存在しない場合、ツールはそのイニシエータとそのターゲットとの間の接続性を必要としない。本発明の様々な態様によれば、接続性を表すために使用される実際のフォーマットは、イニシエータとターゲットの組み合わせの各ペアがそのトラフィッククラスの正確な定義を有する限り、または接続がない場合には分類ラベルを有さない限り、異なることができる。イニシエータ/ターゲット接続が複数のトラフィッククラスをサポートすることは、本発明の範囲内である。
【0037】
レイテンシは、データがネットワークを通過するのにかかるクロックサイクルの数を指すことは、本発明の範囲内である。レイテンシは、高帯域幅(周波数)を有するにもかかわらず、トランスポートネットワークにおいて問題を引き起こす。「リアルタイム・トラフィック・クラス」の例は、自動運転車のカメラからの映像データであろう。データの伝搬において長いレイテンシを有することは許容されない。いくつかのデータが失われると、車両は安全でなくなる。依然としてリアルタイムであるがそれほど重要ではないトラフィッククラスは、娯楽システムにおけるオーディオおよび/またはビデオのためのものであろう。そのデータにずれを設けることは望ましくないが、危険ではない。非リアルタイムデータの例は、自動車内のガスセンサからのデータであろう。データが数秒間遅延する場合、データの変化率はSoCの動作速度と比較して非常に遅いため、問題ではない。
【0038】
本発明のいくつかの態様によれば、ツールのシナリオは定義されておらず、その場合、ツールは、最低ゲートコストおよび/または最低ワイヤコストなどの物理的コストに対してNoC合成プロセスを最適化する。
【0039】
本発明の様々な態様によれば、ツールは、以下の定義されたパラメータまたは構成要素を用いて接続性行列を処理する。
【0040】
●イニシエータごとに1つのネットワーク・インターフェース・ユニット、
●ターゲットごとに1つのネットワーク・インターフェース・ユニット、
●クラスのメインスイッチと呼ばれる、定義されたトラフィッククラスごとに1つのスイッチが作成される、
●各イニシエータ/イニシエータNIUの後の1つのスイッチであって、このイニシエータが到達する必要のある異なるメインスイッチにトラフィックを分割する、1つのスイッチ、
●各ターゲット/ターゲットNIUの前の1つのスイッチであって、そのターゲットにトラフィックを送信している異なるメインスイッチからのトラフィックをマージする、1つのスイッチ
各スイッチのデータ幅およびそれが属するクロックドメインは、ツールへの入力として、取り付けられた各インターフェースのデータ幅およびそれらのクロックドメインを使用して計算される。本発明の様々な態様によれば、NoCの一部であるネットワークを変換する各ステップはまた、新たに作成されたネットワーク要素のデータ幅およびクロックドメインの計算を実行する。
【0041】
本発明の様々な態様によれば、ツールを使用して、メインスイッチ内の各マージの各スイッチはマージのカスケードにさらに分解され、カスケードの各マージは、取り付けられたターゲットのマージロードマップの分岐点に配置される。ロードマップの分岐点は、経路が2つ以上の分岐に分割されているという事実によって定義される。カスケードへの入力の数が依然として1つであり、カスケードの出力の数が元のスプリッタの出力の数と同一であるため、スプリッタのカスケード内でスプリッタを分解する工程は、元のスプリッタ機能を維持する。カスケードの出力の数が依然として1つであり、カスケードへの入力の数が元のマージへの入力の数と同一であるため、マージのカスケードにおいてマージを分解する工程は、元のマージ機能を維持する。本発明の様々な態様によれば、この工程の効果は、スイッチ間の実際の接続が必要とされる場所の近くに物理的に配置された、マージおよびスプリッタによって表される基本スイッチのセットを得ることである。
【0042】
本発明の様々な態様によれば、ツールは、イニシエータとターゲットとの間の必要な最小スループットのセットであるシナリオで定義された性能を維持しながら、達成可能なスイッチ間で使用されるワイヤの数を減らすためにネットワークを変換する。本発明の様々な態様によれば、スイッチは、性能を意識したスイッチングのためにクラスタ化され、ロードマップ上に分散されたマージおよびスプリッタは、通常のスイッチと同様に扱われる。
【0043】
本発明の他の態様によれば、フロアプラン上のクロックドメインおよびパワードメインの拡張が提供され、各要素は、指定されたクロックドメインおよびパワードメインの境界内に位置することを保証するために試験される。試験が失敗した場合、要素は、試験が合格している適切な位置が見つかるまで移動される。各要素に対して適切な配置が見つかると、要素間の各接続のルーティングが行われる。ルーティング工程により、要素間の接続を行うワイヤのセットに適した経路を見つける。ルーティングが行われた後、信号が1mmの距離をカバーするのにかかる時間に基づいて、本技術の能力に関して提供される情報を使用して、必要に応じて距離スパンパイプライン要素がリンクに挿入される。
【0044】
本発明のいくつかの態様および実施形態によれば、ツールは、生成されたNoCを記述する1つまたは複数のコンピュータファイルを生成し、このコンピュータファイルは以下を含む:
ネットワーク要素のリストとその構成:データ幅、クロックドメイン。
【0045】
フロアプラン上の生成された各ネットワーク要素の位置。
接続性を実装するネットワーク要素を通るルートのセット。本発明の態様によれば、ルートは、ネットワーク要素の順序付きリストであり、(イニシエータ、ターゲット)の各ペアに1つ、(ターゲット、イニシエータ)の各ペアに1つである。ルートは、ペア間のトラフィックがどのように流れ、どの要素を通過するかを表す。
【0046】
本発明の様々な態様によれば、ツールは、ワイヤ長分布のヒストグラム、スイッチの数、サイズによるスイッチのヒストグラムなど、生成されたNoCに関する測定基準を生成するために使用される。
【0047】
本発明の別の態様によれば、ツールは、ネットワークに様々なアダプタおよびバッファを自動的に挿入する。ツールは、異なるデータ幅、異なるクロックドメインおよびパワードメインを有する2つの要素間で必要とされる適応に基づいて、アダプタを挿入する。ツールは、シナリオおよび検出されたレート不整合に基づいて、バッファを挿入する。
【0048】
いくつかの態様および実施形態によれば、ツールは、NoCの増分最適化のために合成の複数の反復が行われることを保証するために使用することができ、これは、ツールに提供された1つの制約が以前の実行に関する情報である場合の状況を含む。
【0049】
ソフトウェアによる合成工程の実行後、結果は、情報を捕捉するために明確に定義されたフォーマットを使用するコンピュータファイルなどの機械可読形式で生成される。そのようなフォーマットの例はXMLであり、そのようなフォーマットの別の例はJSONである。本発明の範囲は、特定のフォーマットによって限定されない。
【0050】
一実施形態では、NoC内の第1の構成要素と第2の構成要素との間のタイミング実現に対応するための機構は、ディスタンスパイプ挿入、バッファ段の追加、より高い駆動バッファもしくはより高速のバッファへのバッファの切り替え、ワイヤ幅の調整、および/またはどのワイヤ層が使用されているかの表示を含むが、これらに限定されない。
【0051】
合成トポロジ内のタイミング問題を克服し、物理的実装のための制約および/またはガイダンスを通信することによってそれらの発生前にタイミング問題を解決するために、異なる機構が物理的に実装されることは、本発明の範囲内である。限定ではないがNoCトポロジの周りの物体、構成要素、および/またはゲートの物理的配置を含む接続の物理的実装については、本発明の範囲内であり、それにより、下流ツールは、第1の接続を第2の接続から時間制限を超えるほどに十分に離れた距離に配置しない。接続要件を満たすことができるすべての接続についてネットワークを合成し、合成されたネットワークのゲート数を最小にすることがより望ましい。限定ではないが、NoCをトポロジパラメータ内に収めることを可能にすること、タイミング要件を満たすことができることを保証すること、より小さいネットワーク内により効率的に構築すること、信号間の相互接続に使用される全体的な電力を最小化することを含むために、合成されたネットワーク内のゲートの数を最小限に抑えることが重要である。
【0052】
別の実施形態では、駆動側の構成要素をより大きな駆動強度を有する構成要素に置き換えて速度を高める。例えば、信号が第1のスイッチから第2のスイッチに転送され、第1のスイッチと第2のスイッチとの間の距離が大きすぎるためにタイミング要件を超過する場合、第1のスイッチと第2のスイッチとの間にディスタンスパイプが配置されてもよく、または特定のライン上の寄生素子を低減するためにより低い抵抗を有するより大きなワイヤを使用することによって駆動強度を増加させて信号をより高速にしてもよい。
【0053】
一実施形態では、フロアプラン領域は、限定されないがスイッチおよび/もしくはディスタンスパイプ段などの構成要素を物理的位置および/もしくはおおよその物理的位置に制約すること、および/または論理的相互接続を適切な合成のために下流のツールのサイズに合わせて調整された複数の部分に分割することを含むことを可能にする機構である。相互接続の物理的および論理的構成は、論理的相互接続を形成するように共に構成される。フロアプラン領域は、構成要素を特定の位置に制約するために使用される。フロアプラン領域の必要性は、開発されているSoCのネットワークまたは相互接続のサイズの増加に対する応答である。言い換えれば、SoCのネットワークまたは相互接続は、限定はしないがより広い相互接続および/または相互接続されるより多くの構成要素の追加を含め、下流の実装ツールの容量よりも大きく成長している。
【0054】
本発明の様々な態様によれば、スイッチが制約位置から外れた位置に移動した場合に、スイッチの性能が悪影響を受ける可能性があるため、スイッチによって受信および送信される信号に関連するデータに基づいて、特定の制約位置にスイッチを有することがより望ましい場合がある。
【0055】
本発明の様々な態様によれば、例えばスイッチまたはパイプ段用の構成要素のゲートを、各個々の構成要素内で可能な限り近接して配置するために、追加の制約を利用してもよい。既存の配置プログラムにおける現在の問題は、構成要素を互いからあまりにも遠くに配置する傾向があることである。スイッチが複数のゲートを有する単一の構成要素であり、各ゲートを配置する必要があることは、本発明の範囲内である。ネットリストは、これらの構成要素の相互接続を容易にするが、下流のツールは、構成要素を物理的に配置し、指定された論理的接続を接続するためのルートを作成する。
【0056】
本発明の様々な態様によれば、第1の態様および第2の態様の2つの別個の制約を同時に使用してもよい。例えば、特定の性能を有すると指定されたスイッチの構成要素が、指定された面積よりも広い面積に分散されている場合、そのスイッチは、最初に指定されたものよりも低い性能を有する。したがって、このスイッチの構成要素を互いに近接した状態に保つことがより望ましいであろう。さらに、より大きなネットワークに基づいて、ネットワーク全体が指定または分析通りに機能するように、フロアプランの空きスペースの特定の領域または面積内に構成要素を維持することがより望ましい。
【0057】
一実施形態では、所与の半導体工程における近似では、単一のワイヤの最大長さが確立されて、その特定の経路の全体的なタイミングを確実に満たすことができる。さらに、所与の時間内に第1の構成要素から第2の構成要素に移動することは重要な態様である。第1の構成要素と第2の構成要素との間の過剰な長さのために、所与の時間内に第1の構成要素から第2の構成要素に信号を移動させることが達成できない場合がある。結果として、ディスタンスパイプ段の挿入の技術的解決策の必要性は、現在の技術と比較して、この技術的問題を解決するであろう。
【0058】
本発明の様々な態様によれば、第1の構成要素および第2の構成要素の面積推定を受信し、NoCの最適化におけるタイミングおよび他の性能要件のバランスをとることにより、結果として得られるNoCゲートを確実に配置することができ、すなわち、NoCに割り当てられたフロアプランの空きスペースに収まる。
【0059】
本発明の様々な態様によれば、NoCに対する電力要件をさらに受信し、NoCの最適化におけるタイミングおよび他の性能要件のバランスをとることにより、結果として生じるNoCが制約で指定された電力要件を超えないことを保証する。
【0060】
本発明の様々な態様によれば、NoCネットリスト構造に基づく推定として、または下流の実装ツールからのフィードバックとして取得される、物理ルーティング輻輳データをさらに組み込み、NoCの最適化におけるタイミングおよび他の性能要件のバランスをとることにより、結果として生じるNoCが、NoCに割り当てられたフロアプランの空きスペースでルーティング可能であることを保証する。
【0061】
本発明のいくつかの態様によれば、NoCの物理的生成をガイドするための方法が開示される。訓練され、フィードバックを受信する機械学習モデルを含み得るツールは、NoCの少なくとも1つの制約パラメータを受信し、少なくとも1つの制約パラメータは、少なくとも1つの物理的制約および少なくとも1つの性能制約を含む制約パラメータのグループから選択される。ツールを使用して、NoCの物理的実装をガイドする情報でNoCの物理的なフロアプランを増補し、物理的なフロアプランを使用して、少なくとも1つの制約パラメータに基づいて、物理的なフロアプラン上の位置への接続の物理的実装を制約する。
【0062】
本発明の様々な態様による特定の方法は、非一時的コンピュータ可読媒体に格納された命令によって実行され得る。非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されるとシステムまたはコンピュータに本明細書に記載の方法のステップを実行させる命令を含むコードを格納する。非一時的コンピュータ可読媒体は、回転磁気ディスク、回転光ディスク、フラッシュランダムアクセスメモリ(RAM:flash random access memory)チップ、および他の機械的に移動するまたは固体状態の記憶媒体を含む。任意のタイプのコンピュータ可読媒体は、様々な例による命令を含むコードを格納するのに適している。
【0063】
特定の例を本明細書で説明してきたが、異なる例から異なる構成要素の異なる組み合わせが可能であり得ることに留意されたい。顕著な特徴は、例をよりよく説明するために提示されている。しかしながら、説明したようにこれらの例の機能的態様を修正することなく、特定の特徴が追加、修正および/または省略され得ることは明らかである。
【0064】
様々な例は、機械のいずれかまたは組み合わせの挙動を使用する方法である。方法の例は、世界のどこで最も多くの構成ステップが行われても完了する。例えば、本発明の様々な態様および実施形態によれば、IP要素またはユニットは、プロセッサ(例えば、CPUまたはGPU)、RAM(例えばオフチップダイナミックRAMまたはDRAM)、有線または無線接続用のネットワークインターフェース、例えばイーサネット(登録商標)、Wi-Fi、3G、4Gロングタームエボリューション(LTE:long-term evolution)、5G、および他の無線インターフェース標準無線機を含む。IPはまた、必要に応じて、タッチスクリーンセンサ、地理位置情報受信機、マイクロフォン、スピーカ、Bluetooth周辺機器、およびUSBデバイス(とりわけ、キーボードおよびマウスなど)などの様々な周辺デバイスのための様々なI/Oインターフェースデバイスを含み得る。RAMデバイスに格納された命令を実行することによって、プロセッサは、本明細書に記載の方法のステップを実行する。
【0065】
いくつかの例は、本明細書に記載の方法のためのそのような命令を格納するように構成された1つまたは複数の非一時的コンピュータ可読媒体である。必要なコードのいずれかを含む非一時的コンピュータ可読媒体を保持する任意の機械が、例を実施し得る。いくつかの例は、半導体チップなどの物理デバイス、そのようなデバイスの論理的または機能的挙動のハードウェア記述言語表現、およびそのようなハードウェア記述言語表現を格納するように構成された1つまたは複数の非一時的コンピュータ可読媒体として実装され得る。原理、態様、および実施形態を列挙する本明細書の説明は、その構造的および機能的等価物の両方を包含する。本明細書に結合された要素は、直接的な接続によって、または1つもしくは複数の他の介在要素と間接的に実現可能な有効な関係を有する。
【0066】
当業者は、多くの修正および変形を認識するであろう。修正および変形は、開示された特徴の任意の関連する組み合わせを含む。原理、態様、および実施形態を列挙する本明細書の説明は、その構造的および機能的等価物の両方を包含する。「結合された(coupled)」または「通信可能に結合された(communicatively coupled)」として本明細書に記載された要素は、直接接続または1つもしくは複数の他の介在要素を使用する間接接続によって実現可能な有効な関係を有する。別のデバイス、モジュール、または要素と「通信する(communicating)」または「通信する(in communication with)」ものとして本明細書で説明される実施形態は、任意の形態の通信またはリンクを含み、有効な関係を含む。例えば、通信リンクは、有線接続、無線プロトコル、近距離プロトコル、またはRFIDを使用して確立され得る。
【0067】
「含む(including)」、「含む(includes)」、「有する(having)」、「有する(has)」、「有する(with)」という用語、またはそれらの変形が詳細な説明および特許請求の範囲のいずれかで使用される限り、そのような用語は、「備える(comprising)」という用語と同様に包括的であることを意図している。
【0068】
したがって、本発明の範囲は、本明細書に示され説明される例示的な実施形態に限定されることを意図しない。むしろ、本発明の範囲および精神は、添付の特許請求の範囲によって具体化される。
【外国語明細書】