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

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

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

特開2024-156647ネットワークオンチップの合成中に物理的実装ガイダンスを生成するためのプロセス
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024156647
(43)【公開日】2024-11-06
(54)【発明の名称】ネットワークオンチップの合成中に物理的実装ガイダンスを生成するためのプロセス
(51)【国際特許分類】
   G06F 30/392 20200101AFI20241029BHJP
   G06F 119/06 20200101ALN20241029BHJP
   G06F 119/12 20200101ALN20241029BHJP
   G06F 115/02 20200101ALN20241029BHJP
【FI】
G06F30/392
G06F119:06
G06F119:12
G06F115:02
【審査請求】未請求
【請求項の数】15
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024070717
(22)【出願日】2024-04-24
(31)【優先権主張番号】18/305,382
(32)【優先日】2023-04-24
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】521196590
【氏名又は名称】アルテリス・インコーポレイテッド
【氏名又は名称原語表記】ARTERIS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】アミール・シャリフ
(72)【発明者】
【氏名】グザビエ・バン・リュインベック
(72)【発明者】
【氏名】マーク・ウィリアム・ベイルズ
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146GC12
5B146GG12
5B146GL00
5B146GL09
(57)【要約】      (修正有)
【課題】合成されたネットワークオンチップ(NoC)を、トポロジ合成結果と一致するようにNoCトポロジの物理的実装をガイドし、最終的な物理的設計におけるタイミング違反を低減するデータで増強するためのシステムおよび方法を提供する。
【解決手段】NoCは、合成NoCの物理的実装中に、物理的実装ガイダンスを生成し、パイプラインプレースホルダとしてリンクを挿入し、作成されたモジュール領域の最小セットがトポロジの特定のリンクに割り当てられる。各ルートは、新しいリンクと、物理経路に挿入された対応するモジュール領域と、を有する。
【選択図】図14
【特許請求の範囲】
【請求項1】
合成された表現からのNoCの物理的生成をガイドするための方法であって、
前記NoCに対する少なくとも1つの制約パラメータをツールで受信することであって、前記少なくとも1つの制約パラメータは、少なくとも1つの物理的制約および少なくとも1つの性能制約を含む制約パラメータの群から選択される、受信することと、
前記ツールを使用して、前記NoCの物理的実装をガイドする情報を用いて、供給された性能基準を満たす、前記NoCに対する物理的フロアプランを増強することと、
前記物理的フロアプランを使用して、前記少なくとも1つの制約パラメータに基づいて前記物理的フロアプラン上のロケーションへの接続の前記物理的実装を制約することと
を含む、方法。
【請求項2】
前記ツールを使用して、前記接続のゲートは、前記ゲートと前記ツールによって検出された前記接続との間のルーティング距離のリストと比較して、前記接続から最短のルーティング距離に向けられる、請求項1に記載の方法。
【請求項3】
前記ツールを使用して、論理的相互接続を複数の部分に分割することであって、それにより、前記論理的相互接続の前記複数の部分は前記ツールのサイズに合わせて較正される、分割することをさらに含む、請求項1に記載の方法。
【請求項4】
NoCの合成されたトポロジの物理的実装をガイドするための方法であって、
前記NoCに対する少なくとも1つのタイミング要件をツールで受信することと、
前記NoCに対する少なくとも1つの性能制約を前記ツールで受信することと、
前記ツールを使用して、前記物理的実装をガイドするための情報を用いて、性能基準を満たす、前記NoCに対する物理的フロアプランを増強することと、
前記物理的フロアプラン上に配置される第1のコンポーネントと第2のコンポーネントとの間の長さが前記少なくとも1つのタイミング要件を超えるかどうかを決定するように構成されたタイミング推定を実装することと、
前記少なくとも1つのタイミング要件を超えることに応答して、前記物理的フロアプランに少なくとも1つのリンクを挿入することと
を含む、方法。
【請求項5】
前記少なくとも1つのリンクは、ワイヤ遅延技術固有のパラメータを使用して挿入される、請求項4に記載の方法。
【請求項6】
前記ツールで、少なくとも1つのモジュール領域を作成することをさらに含み、前記NoCの前記少なくとも1つのリンクは、前記少なくとも1つのモジュール領域に割り当てられる、請求項4に記載の方法。
【請求項7】
前記第1のコンポーネントおよび前記第2のコンポーネントに対するエリア推定を受信することをさらに含む、請求項4に記載の方法。
【請求項8】
前記NoCの少なくとも1つのゲートが前記物理的フロアプランの少なくとも一部に配置可能であり得ることを識別するために、前記NoCの最適化において前記少なくとも1つのタイミング要件に対する均衡化を実行することをさらに含む、請求項7に記載の方法。
【請求項9】
前記NoCの少なくとも1つのゲートが前記物理的フロアプランの少なくとも一部に配置可能であり得ることを識別するために、前記NoCの最適化において前記少なくとも1つの性能制約に対する均衡化を実行することをさらに含む、請求項7に記載の方法。
【請求項10】
前記NoCに対する電力要件を受信することをさらに含む、請求項4に記載の方法。
【請求項11】
前記NoCが前記少なくとも1つのタイミング要件で指定される前記電力要件を超えないことを識別するために、前記NoCの最適化において前記少なくとも1つのタイミング要件に対する均衡化を実行することをさらに含む、請求項10に記載の方法。
【請求項12】
前記NoCが前記少なくとも1つの性能制約で指定される前記電力要件を超えないことを識別するために、前記NoCの最適化において前記少なくとも1つの性能制約に対する均衡化を実行することをさらに含む、請求項10に記載の方法。
【請求項13】
物理的ルーティング輻輳データを提供することをさらに含む、請求項4に記載の方法。
【請求項14】
前記NoCが前記物理的フロアプランの少なくとも一部にルーティング可能であり得ることを識別するために、前記NoCの最適化において前記少なくとも1つのタイミング要件に対する均衡化を実行することをさらに含む、請求項13に記載の方法。
【請求項15】
前記NoCの少なくとも1つのゲートが前記物理的フロアプランの少なくとも一部にルーティング可能であり得ることを識別するために、前記NoCの最適化において前記少なくとも1つの性能制約に対する均衡化を実行することをさらに含む、請求項13に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
技術分野
本技術は、電子システム設計の分野にあり、より具体的には、ネットワークオンチップ(NoC:network-on-chip)の生成中の物理的実装ガイダンスに関する。
【背景技術】
【0002】
背景
マルチプロセッサシステムは、NoCを介して通信するシステムオンチップ(SoC:system-on-chip)において実装されている。SoCは、イニシエータ知的財産(IP:intellectual property)およびターゲットIPのインスタンスを含む。パケットの形態のトランザクションは、業界標準プロトコルを使用してイニシエータから1つまたは複数のターゲットに送信される。NoCに接続されたイニシエータは、ターゲットを選択するためにアドレスを使用して、ターゲットに要求トランザクションを送信する。NoCは、アドレスを復号し、イニシエータからターゲットへ要求をトランスポートする。ターゲットはトランザクションをハンドリングして応答トランザクションを送信し、それはNoCによってイニシエータにトランスポートして返される。
【0003】
ソースと宛先との間の接続性およびレイテンシ、様々な要素の周波数、NoCロジックおよびそれに関連付けられたルーティング(ワイヤリング)に利用可能な最大面積、ソースと宛先との間の最小スループット、NoCに対する電力消費要件、NoCにアタッチされた要素のフロアプラン上の位置などの性能要件の所与のセットについて、最小量のロジックおよびワイヤですべての要件を満たす最適なNoCを作成することは複雑なタスクである。これは通常、この最適なNoCを作成するためのチップ技術者またはチップ設計者の仕事であり、これは困難で時間のかかるタスクである。これは困難な課題であることに加えて、NoCの設計は、チップフロアプランの変更、IPコンポーネントの追加もしくは削除、または期待される性能の変更など、要件の1つが変更されるたびに改訂される。結果として、このタスクは、チップの設計時間にわたって頻繁に再実行される必要がある。このプロセスは時間がかかり、制作遅延をもたらす。したがって、必要とされるのは、要件として列挙された制約のセットおよび入力のセットからNoCを効率的に生成するためのシステムおよび方法である。システムは、そのすべての要素がチップのフロアプラン上に配置されたNoCを制作する必要がある。
【0004】
NoCを作成する際の現在の技術的問題は、物理的なフロアプラン情報が入手できないことである。例えば、2つのコンポーネントが、隣接する構成でネットワークに論理的にプラグインされているか、または論理的に互いに隣接している場合、それらは、2つのコンポーネント間の通信を実装するために単一のスイッチを介することがある。しかしながら、物理的なフロアプランでは、2つのコンポーネントは互いに遠く離れていてもよい。その結果、NoCが実際のフロアプランの本体に実装されていると、タイミング要件を満たすことが困難であり、および/または不可能でさえあり得る。タイミング要件は下流のツールに渡される。タイミング要件は、例えば、コンポーネントAとコンポーネントBとの間のパラメータを示す。例えば、コンポーネントAとコンポーネントBとの間のタイミングは、ある範囲内の値でなければならない。コンポーネントAからコンポーネントBまで測定された値がタイミング要件の値の範囲を超える場合、コンポーネントAがコンポーネントBから遠すぎるとき、時間要件を満たすように試みると、通常時よりも長く作業するときに下流のツールが酷使されることが現在知られているので、本質的に満たすことができない。したがって、すべてのタイミング、電力、面積、および輻輳の設計制約を満たしながら、下流のツールが首尾よく実装できるNoCを作成することがより望ましいであろう。
【発明の概要】
【発明が解決しようとする課題】
【0005】
概要
本発明の様々な実施形態および態様によれば、NoCの合成中に実装ガイダンスを生成するためのプロセスが記載される。入力を有する制約およびステップを使用してNoCを生成して、そのすべての要素を有するNoCを制作または生成するシステムおよび方法が開示される。NoCの要素は、チップのフロアプラン上に配置される。本発明の利点は、設計プロセスおよびチップ技術者または設計者の作業の単純化である。さらに、技術的解決策は、物理的なフロアプランの指示を有することにより、限定されないが、距離パイプコンポーネントの追加などのメカニズムを自動化することが、現在の技術と比較してより容易になるように、NoCを作成することを可能にする技術的効果を提供する。
【課題を解決するための手段】
【0006】
一実施形態では、合成されたNoCを作成することは、下流のツールに実装されるときにNoCに対する仕様で供給された性能基準をNoCが満たすことを保証するための情報でNoCを増強し、第1のコンポーネントが第2のコンポーネントからどれだけ離れているかを決定するためのタイミング推定を実装され得るように、フロアプランの指示を提供するように構成される。タイミング推定は、例えば、NoCの第1のコンポーネントがNoCの第2のコンポーネントから離れすぎており、タイミング要件を超えていることを示すデータを提供してもよい。タイミング要件の超過の結果として、少なくとも1つの距離パイプラインまたはリンクをフロアプランに挿入してもよい。フロアプランへの距離パイプの追加は、タイミング要件を超えるNoCの2つのコンポーネントに関連付けられた問題の多くを解決する。しかしながら、NoCのフロアプランへの距離パイプの追加は、データが距離パイプを通過するためのクロックサイクルを追加するという点で、レイテンシの追加に寄与する。同時に距離パイプを追加し、できるだけ距離パイプを必要としないNoCトポロジを作成することがより望ましい。結果として、全体的な性能、帯域幅、およびレイテンシは、フロアプランの制約を考慮して最適化され得る。
【図面の簡単な説明】
【0007】
図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を作成するための方法を示すフローチャートである。
図14】物理的実装のための潜在的ガイダンスを示すデータを用いて合成NoCを作成するための代替的な方法を示すフローチャートである。
図15A】本発明の様々な態様によるチップのトポロジを合成するための図14の方法のフローチャートである。
図15B】本発明の様々な態様によるチップのトポロジを合成するための図15Aのプロセスのダイヤグラムの例示図である。
【発明を実施するための形態】
【0008】
詳細な説明
以下では、本発明の様々な態様および実施形態を例示する本技術の様々な例について説明する。一般に、例は、記載された態様を任意の組合せで使用することができる。原理、態様、および実施形態、ならびにそれらの特定の例を列挙する本明細書のすべての記述は、それらの構造的および機能的等価物の両方を包含することを意図している。さらに、そのような等価物は、現在知られている等価物および将来開発される等価物の両方、すなわち、構造にかかわらず同じ機能を実行する開発された任意の要素を含むことが意図される。
【0009】
本明細書で使用される場合、単数形「a」、「an」、および「the」は、文脈が明らかにそうでないことを指示しない限り、複数の指示対象を含むことに留意されたい。本明細書を通して、「一態様」、「態様」、「特定の態様」、「様々な態様」、または同様の文言への言及は、任意の実施形態に関連して説明される特定の態様、特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。
【0010】
本明細書全体を通して、「一実施形態では」、「少なくとも1つの実施形態では」、「実施形態では」、「特定の実施形態では」、および類似の文言の出現は、必ずしもそうとは限らないが、すべて同じ実施形態または類似の実施形態を指し得る。さらに、本明細書に記載された本発明の態様および実施形態は単なる例示であり、当業者によって理解される本発明の範囲または精神を限定するものとして解釈されるべきではない。開示された発明は、本明細書に記載された任意の新規な態様を含む任意の実施形態において効果的に作成または使用される。本発明の原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含することを意図している。そのような等価物は、現在知られている等価物および将来開発される等価物の両方を含むことが意図される。
【0011】
本明細書で使用される場合、トランザクションは、要求トランザクションまたは応答トランザクションであり得る。要求トランザクションの例は、書き込み要求および読み出し要求を含む。
【0012】
本明細書で使用される場合、ノードは、通信経路またはチャネルを介して情報を作成、受信、および/または送信することができる配信ポイントまたは通信エンドポイントとして定義される。ノードは、スイッチ、スプリッタ、マージャ、バッファ、およびアダプタのうちのいずれか1つを指し得る。本明細書で使用される場合、スプリッタおよびマージャはスイッチであるが、すべてのスイッチがスプリッタまたはマージャであるとは限らない。本明細書で使用される場合、本発明の様々な態様および実施形態によれば、「スプリッタ」という用語は、単一の入口ポートおよび複数の出口ポートを有するスイッチを表す。本明細書で使用される場合、本発明の様々な態様および実施形態によれば、「マージャ」という用語は、単一の出口ポートおよび複数の入口ポートを有するスイッチを表す。
【0013】
ここで図1Aを参照すると、本発明の様々な態様および実施形態によるNoC100が示されている。NoC100は、ネットワークの一例である。本発明の様々な態様および実施形態によれば、ネットワークはノードのセットおよびエッジのセットを含み、これらの各々はモデルを有し、ネットワーク上で変換を実行および実施し、指定された要件に適合する最良の解に収束するために合成の中心で使用することができる。NoC100は、ノードおよびエンドポイントを含み、ネットワークインターフェースユニット(NIU:network interface unit、AIUまたはエージェントインターフェースユニットとも呼ばれる)102、104、106、108、110、112、130、132、および134、ノード/スイッチ114、116、118、120、および122、アダプタ126などのアダプタ、ならびにバッファ124などのバッファ、などの組み立てられた基本ネットワーク機能を使用する。NoC基本ネットワーク機能は、典型的にはパケットの伝送に基づいて、互いに通信するために、NoC100に特有の内部トランスポートプロトコルを使用する。NIUは、アタッチされたSoCユニット(図示せず)によって使用されるプロトコルを、NoC100内で使用されるトランスポートプロトコルに転換する。スイッチは、ソースと宛先との間でトラフィックのフローをルーティングするように構成される。バッファ124は、長距離に及ぶようにパイプライン要素を挿入するために、または高速送信機と低速受信機との間の、またはその逆の、レート適応に対処するために、パケットを記憶するために使用される。アダプタ126は、データ幅、クロック、および電力ドメイン間の様々な転換をハンドリングする。トランスポートプロトコルが独自のプロトコルおよび/または業界標準のプロトコルを含むことは、本発明の範囲内であるが、これに限定されない。
【0014】
ここで図1Bを参照すると、フロアプラン内のNIU、スイッチ、および閉塞エリアなどの様々な要素を有するNoC150が示されている。NoC150は、様々なスイッチを介して様々な接続性要素を含む。本発明の一態様によれば、制約のセットがツールへの入力として使用され、これについては以下でより詳細に説明する。本発明のいくつかの態様によれば、ツールは、サブステップのセットを実行し、その構成された要素およびフロアプラン上の各要素の位置を用いて、NoC150などの結果として生じるNoCの記述(合成)を制作する。生成された記述は、バックエンド実装フローにガイダンスを提供するために制作された物理情報を使用して、NoCハードウェアを実際に実装するために使用される。NoCコンポーネントがSoC内のはるかに多数の半導体ゲートになるものの抽象であることは、本発明の範囲内である。コンポーネントが個々のゲートの重心などのロケーションを有することも重要な態様である。個々のゲートは、下流のツールによって配置およびルーティングされるコンポーネントを備えてもよい。
【0015】
ここで図2Aを参照すると、本発明のいくつかの態様によれば、制約(210、212、214、216、およびシナリオ)のセットが合成ツール220に提供される。本発明のいくつかの実施形態および態様によれば、ツール220の性能および機能は、ロジック合成、バックエンドツールの配置およびルーティングなどのサードパーティASIC実装ツールを含み得る。設計者および/またはユーザは、ツール220に提供される制約のセットを構築する。制約は、ツールによって理解され処理される情報を取り込むために定義されたフォーマットを使用するコンピュータファイルなどの機械可読形式で取り込まれる。本発明の一態様によれば、フォーマットはXMLである。本発明の他の態様によれば、フォーマットはJSONである。本発明の範囲は、使用される特定のフォーマットによって限定されない。
【0016】
図2Bを参照すると、ツールは、制約の記述を含むファイルを読み出し、合成プロセスを実行する。本発明のいくつかの態様によれば、合成プロセスは複数のステップに細分される。シーケンサ250は、プロセスの各ステップを実行する役割を担う。本発明のいくつかの態様によれば、ユーザ/設計者によって示される制約に照らして、ツール220のシーケンサ250によってステップのセットが実行される。本発明の範囲は、シーケンサ250が呼び出して実行することができるステップの数および種類によって限定されない。
【0017】
図2Bとともに再び図2Aを参照すると、本発明の様々な態様によれば、ネットワークの設計者は、制約210、212、214、および216などの制約のセットを提供および定義する。シーケンサ250は、以下を含む様々な入力を受信する:各イニシエータとターゲットとの間のロードマップ作成および情報を含む、イニシエータとターゲットとの間の接続性を有するグローバル統合ロードマップを含む入力251;トラフィック分類およびメインスイッチ作成を含む入力252;マージャおよびスプリッタへのメインスイッチ分解を含む入力254;ロードマップにおけるスプリッタおよびマージャの物理的分布に関する情報を含む入力258;エッジクラスタリングに関する情報を含む入力259;性能アウェアノードクラスタリングに関する情報を含む入力260。本発明の一態様によれば、シーケンサ250はまた、最適化およびネットワーク再構築に関する情報を含む入力262を受信する。本発明の一態様によれば、シーケンサ250は、ルーティングおよび合法化に関する情報を含む264を受信する。本発明の様々な態様および実施形態によれば、シーケンサ250は、ネットワークを生成するためにすべての入力251~264を使用する。本発明の様々な態様および実施形態によれば、シーケンサ250は、ネットワークを生成するために入力251~264の組合せを使用する。
【0018】
本発明の様々な態様によれば、入力251は、グローバル統合ロードマップに関する入力を含む。グローバル統合ロードマップは、フロアプランの空きスペースの接続性、ならびにイニシエータとターゲットとの間の接続性のグローバルな物理的ビューを取り込む統合モデルを含む。グローバル統合ロードマップは、構築中のネットワークのノード(スプリッタ、マージャ、スイッチ、アダプタ)を位置決めするために使用される物理ノードおよび標準セグメントのグラフによってモデル化される。グローバル統合ロードマップは、計算を高速化するために使用される。本発明の様々な態様によれば、グローバル統合ロードマップは永続的であり、これは、システムが増分的合成および後続の実行においてエクスポートおよび再消費するデータであることを意味する。
【0019】
本発明のいくつかの態様によれば、入力259は、エッジクラスタリングに関する情報を含む。エッジクラスタリングは、適切なアルゴリズムおよび技術によってリソースを最小化し、性能目標を向上させることを目的とする。本発明のいくつかの態様によれば、エッジクラスタリングは、入力260のノードクラスタリングと連携し協働して適用される。エッジクラスタリングとノードクラスタリングは、混合によって、同時並行して適用されることによって、または順番に適用されることによって組み合わせて使用することができる。利点および目標は、合成の範囲を拡大し、ネットワークのためのより大きな解空間を張ることである。
【0020】
本発明の様々な態様によれば、入力262は再構築に関する情報を含む。再構築は、様々な変換および能力を含む。本発明のいくつかの態様によれば、変換は、ネットワークの構造に変化があるという点で論理的である。本発明のいくつかの態様によれば、ノードを新しいロケーションに移動させるなど、ネットワークに物理的な変化があるため、変換は物理的である。再構築の他の例は、ノードをより小さいノードに細分することと、ノード間で親を変更することと、デッドロックを回避し、輻輳に対処するためのネットワークサブパートの重複と、輻輳エリアを回避するため、またはタイミング制約を満たすために、リンクを物理的に再ルーティングすることとを含む。
【0021】
本発明の様々な態様によれば、他の制約は、クロックドメインの拡張を含み、電力ドメイン212も提供され得る。ドメイン212は、特定のドメインに属するロジックを配置することが可能なチップのエリアを含む。
【0022】
ここで図3を参照すると、本発明の様々な態様によれば、様々なイニシエータインターフェースおよびターゲットインターフェースの位置を有する、NoCが実装されるチップのフロアプラン300が示されている。物理的制約210は、設計に関する物理的情報を提供し、物理的情報は、NoCが実装されるチップのサイズと、NoCロジックが存在し得ないかまたは配置され得ないチップのエリアを表す長方形である、フロアプラン上の様々な閉塞エリアと、NoCロジックが存在することができるチップのエリアであり、閉塞によって覆われていない領域によって画定される空きスペースと、NIUなどのイニシエータインターフェースおよびターゲットインターフェースの位置である、SoCユニットとNoCとの間のインターフェースの位置とを含む。閉塞は、フロアプランの最上位レベルで表されてもよく、または設計内の物理/論理ブロックの階層表現に含まれてもよく、次いで同じ方法で最上位レベルで使用される。
【0023】
本発明の様々な態様によれば、NoCを実装するために使用されるロジックライブラリの機能が提供される。この情報は、基準ロジックゲートのサイズ、および信号が1mmの距離をカバーするのにかかる時間を含む。
【0024】
再び図2Aを参照すると、本発明の様々な態様によれば、SoCは、複数のクロックドメインおよび複数の電力ドメインを含む。クロックドメインは、所与のクロック入力によって供給されるすべてのロジックによって定義される。クロック入力は、その最も重要なパラメータであるクロックの周波数によって特徴付けられる。電力ドメインは、同じ電源から電力供給を受けるすべてのロジックによって定義される。本発明の様々な態様によれば、電源はゲーティングされ、したがって、電力ドメインはオンまたはオフにすることができ、または他の電力ドメインから分離することができる。したがって、設計者は、初期設計の一部として、クロックドメイン制約および電力ドメイン制約のセット212を提供する。
【0025】
本発明の様々な態様によれば、イニシエータおよびターゲットは、NoCに通信可能に接続される。イニシエータは、要求を送信するユニットである。イニシエータは通常、コマンドを読み書きするように構成される。ターゲットは、要求に応じるかまたは応答するユニットである。ターゲットは通常、コマンドを読み書きするように構成される。各イニシエータは、NIUを介してNoCにアタッチまたは接続される。イニシエータにアタッチされるNIUは、イニシエータネットワークインターフェースユニット(INIU:Initiator Network Interface Unit)と呼ばれる。さらに、各ターゲットはNIUを介してNoCにアタッチされる。ターゲットにアタッチされるNIUは、ターゲットネットワークインターフェースユニット(TNIU:Target Network Interface Unit)と呼ばれる。NoCの主な機能は、イニシエータからの各要求を所望の宛先ターゲットに搬送することであり、要求が応答を求め、または必要とする場合、NoCは各ターゲットの応答を対応する要求元イニシエータに搬送する。イニシエータおよびターゲットは、それらを特徴付ける多くの異なるパラメータを有する。本発明の様々な態様によれば、各イニシエータおよびターゲットについて、それらが属するクロックドメインおよび電力ドメインが定義される。書き込みペイロードおよび読み出しペイロードを送信および受信するためにそれらが使用するデータバスの幅は、数ビットである。本発明の様々な態様によれば、書き込み要求を送信し、書き込み応答を受信するために使用される接続(ターゲットとの間の通信経路)のためのデータバスの幅も定義される。さらに、クロックおよび電力ドメイン定義は、本明細書に記載されるように、SoCに存在する前述のクロックおよび電力ドメインへの参照である。
【0026】
引き続き図2Aおよび図2Bを参照し、図4も参照すると、接続性テーブル400が示されている。本発明の様々な態様によれば、テーブル400は、トラフィックが分類によって定義されることを可能にする。ツールは、イニシエータとターゲットとの間の各接続のためにトラフィッククラスラベルを使用することを可能にする。テーブル400に示すように、L1、L2、およびL3の3つのトラフィッククラスがある。トラフィッククラスラベルは、ユーザまたは設計者によって選択される任意のラベルである。任意の数のラベルを定義することができ、本発明の範囲はラベルの数によって限定されない。各ラベルは、独立したネットワークリソースの必要性を表す。各ラベルは、本発明によって別個のサブネットワークを与えられ、基礎となるNoC技術によってサポートされる場合、物理的に異なるか、または仮想ネットワークを使用することができる。
【0027】
本発明の様々な態様によれば、イニシエータは、すべてのターゲットまたはNoCに接続されるターゲットに要求を送信できる必要はない。イニシエータから要求を受信することができるターゲットの正確な定義は、テーブル400などの接続性テーブルに概説または記載される。接続性およびトラフィッククラスラベリング情報は、明示的または概念的な行列として表すことができる。各イニシエータは行を有し、各ターゲットは列を有する。イニシエータがターゲットにトラフィックを送信することができなければならない場合、トラフィッククラスラベルが、イニシエータ行とターゲット列との交点に存在しなければならない。交点にラベルが存在しない場合、ツールはそのイニシエータとそのターゲットとの間の接続性を必要としない。例えば、イニシエータ1(M1)は、定義されたラベル1(L1)を使用してターゲット1(S1)と接続通信しているが、M1はS2と通信せず、したがって、M1とS2との交点にはラベルがない。本発明の様々な態様によれば、接続性を表すために使用される実際のフォーマットは、イニシエータ・ターゲット組合せの各ペアがそのトラフィッククラスの正確な定義を有する限り、または接続がない場合には分類ラベルを有さない限り、異なり得る。イニシエータ/ターゲット接続が複数のトラフィッククラスをサポートすることは、本発明の範囲内である。
【0028】
ここで図5を参照すると、読み出し(RD:read)および書き込み(WR:write)トランザクションの様々なシナリオ(図2Aに示す)を含む、本発明の様々な態様によるテーブル500が示されている。テーブル500は、ツールに提供される様々なスループットレートを定義する情報を含む。シナリオは、イニシエータとターゲットとの間のデータのスループットに関して予想される性能を定義する。各シナリオは、各イニシエータと各ターゲットとの間の予想される必要な読み出し帯域幅および予想される必要な書き込み帯域幅を記述する。スループットは、バイト毎秒(B/s)で定義される。典型的なSoCは、複数の動作モードを有する。一例として、スマートフォン用のSoCは、ゲーム動作モード、オーディオ通話動作モード、アイドル動作モードなどを有し得る。これらは、異なるスループットレートに依存するシナリオを定義する。したがって、シナリオのセットは、SoCがサポートする異なる動作モード、およびそれに対応して、イニシエータとターゲットとの間のスループットに関して予想されるNoC最小性能を表す。
【0029】
シナリオは、2つの行列として表すことができ、1つは読み出しスループットを定義し、1つは書き込みスループットを定義する。本発明の様々な態様によれば、ターゲットからイニシエータに戻るデータを処理する応答ネットワークをサイズ設定するために、読み出しスループット要件が使用される。書き込みスループット要件は、本発明の様々な態様に従って、イニシエータからターゲットに移動するデータである要求ネットワークをサイズ設定するために使用される。本発明の様々な態様による、様々なシナリオのスループット要件の一例をテーブル500に示す。シナリオを表すために使用される実際のフォーマットは、(イニシエータ、ターゲット)の各対が読み出しおよび書き込みに必要な最小スループットの正確な定義を有する限り、異なり得る。テーブル500において、M1からS1への読み出しトランザクションは、100MB/sの最小性能スループットを有する。テーブル500において、M1からS1への書き込みトランザクションは、50MB/sの最小スループットを有する。
【0030】
レイテンシは、データがネットワークを通過するのにかかるクロックサイクルの数を指すことは、本発明の範囲内である。レイテンシは、高帯域幅(周波数)を有するにもかかわらず、トランスポートネットワークにおいて問題を引き起こす。「リアルタイム交通クラス」の例は、自動運転車のカメラからのビデオデータである。データの伝搬において長いレイテンシを有することは許容されない。いくつかのデータが失われると、車両は安全でなくなる。依然としてリアルタイムであるがそれほど重要ではないトラフィッククラスは、娯楽システムにおけるオーディオおよび/またはビデオのためのものである。そのデータにギャップを有することは望ましくないが、危険ではない。非リアルタイムデータの例は、自動車内のガスゲージセンサからのデータである。データが数秒間遅延する場合、データの変化率はSoCの動作速度と比較して非常に遅いため、問題ではない。
【0031】
本発明のいくつかの態様によれば、ツールのシナリオは定義されておらず、その場合、ツールは、最低ゲートコストおよび/または最低ワイヤコストなどの物理的コストに対してNoC合成プロセスを最適化する。
【0032】
ここで図6図2Bとともに参照すると、本発明の様々な態様に従って初期ネットワーク600が作成される。ネットワーク600は、以下の定義されたパラメータまたはコンポーネントを有する接続性行列を実装する。
【0033】
・イニシエータごとに1つのネットワークインターフェースユニット、
・ターゲットごとに1つのネットワークインターフェースユニット、
・クラスのメインスイッチと呼ばれる、定義されたトラフィッククラスごとに1つのスイッチが作成される、
・各イニシエータ/イニシエータNIUの後で、このイニシエータが到達する必要のある異なるメインスイッチにトラフィックを分割する1つのスイッチ、
・各ターゲット/ターゲットNIUの前で、そのターゲットにトラフィックを送信している異なるメインスイッチからのトラフィックをマージする1つのスイッチ
各スイッチのデータ幅およびそれが属するクロックドメインは、ツールへの入力として、各アタッチされたインターフェースのデータ幅およびそれらのクロックドメインを使用して計算される。本発明の様々な態様によれば、NoCの一部であるネットワークを変換する各ステップはまた、新たに作成されたネットワーク要素のデータ幅およびクロックドメインの計算を実行する。
【0034】
ここで図7および図2Bを参照すると、図6のネットワーク600が示されており、ツールのプロセスは、本発明の様々な態様によるネットワーク600を変換する。シーケンサ250は、マージャおよびスプリッタへのメインスイッチ分解を表す入力254を有する。ツールは、ネットワーク600の各メインスイッチを、スプリッタおよびマージャを用いた同等の実装に分解する。本発明の様々な態様によれば、いくつかのスイッチは、単一の入口ポートおよび複数の出口ポートを有する。本発明の様々な態様によれば、いくつかのスイッチは、複数の入口ポートおよび単一の出口ポートを有する。各メインスイッチ入口ポートはスプリッタに接続され、各メインスイッチ出口ポートはマージャに接続される。メインスイッチに対して、接続性テーブルに従ってスプリッタおよびマージャがともに接続される。
【0035】
ここで図8を参照すると、本発明の様々な態様によるフロアプラン800が示されている。シーケンサ250は、各イニシエータとターゲットとの間のロードマップ作成を表す入力256を有する。フロアプラン800は、フロアプラン上のイニシエータインターフェース(M0)と、ターゲットS0、ターゲットS1、ターゲットS2、およびターゲットS3などのその接続されたターゲットの各々との間で計算される物理経路802を含む。経路802は、イニシエータM0のスプリッタロードマップと呼ばれ、図示されていないが、すべてのイニシエータはスプリッタロードマップを有する。ツールは、経路の長さを最小化するアルゴリズムを含む、ソース点と複数の宛先点との間の経路を見つけるのに適した任意のアルゴリズムを使用する。
【0036】
ここで図9を参照すると、フロアプラン800は、フロアプラン上のターゲットS0のターゲットインターフェースとその接続されたイニシエータの各々との間の計算された物理経路902とともに示されている。経路902は、ターゲットS0のマージャロードマップである。明らかなように、すべてのターゲットはマージャロードマップを有する。ツールは、経路の長さを最小化するアルゴリズムを含む、複数のソース点と宛先点との間の経路を見つけるのに適した任意のアルゴリズムを使用する。本発明の様々な態様によれば、ツールは、その機能を維持し、ネットワーク要素にロケーション情報を追加するようにネットワークを変換する。
【0037】
ここで図10を参照すると、フロアプラン800は、本発明の様々な態様による経路1002とともに示されている。シーケンサ250は、ロードマップ上のスプリッタおよびマージャの物理的分布を提供する入力258を有する。このツールを使用して、各スイッチがマージャおよびスプリッタに分解される。ツールを使用して、メインスイッチ内の各スプリッタは、スプリッタのカスケードにさらに分解され、カスケードの各スプリッタは、アタッチされたイニシエータのスプリッタロードマップの分岐点に配置される。ロードマップの分岐点は、経路が2つ以上の分岐に分割されているという事実によって定義される。
【0038】
ここで図11を参照すると、フロアプラン800は、本発明の様々な態様による経路1102とともに示されている。ツールを使用して、メインスイッチ内の各マージャの各スイッチは、さらにマージャのカスケードに分解され、カスケードの各マージャは、アタッチされたターゲットのマージャロードマップの分岐点に配置される。ロードマップの分岐点は、経路が2つ以上の分岐に分割されているという事実によって定義される。スプリッタのカスケード内でスプリッタを分解するプロセスは、カスケードへの入力の数が依然として1つであり、カスケードの出力の数が元のスプリッタの出力の数と同一であるため、元のスプリッタ機能を維持する。マージャのカスケード内でマージャを分解するプロセスは、カスケードの出力の数が依然として1つであり、カスケードへの入力の数が元のマージャへの入力の数と同一であるため、元のマージャ機能を維持する。本発明の様々な態様によれば、プロセスの効果は、スイッチ間の実際の接続が必要とされる場所の近くに物理的に配置された、マージャおよびスプリッタによって表される基本スイッチのセットを得ることである。
【0039】
本発明の様々な態様によれば、ツールは、イニシエータとターゲットとの間の必要な最小スループットのセットであるシナリオで定義された性能を維持しながら、達成可能なスイッチ間で使用されるワイヤの数を減らすためにネットワークを変換する。本発明の様々な態様によれば、スイッチは、性能を認識したスイッチングのためにクラスタ化され、ロードマップ上に分布したマージャおよびスプリッタは、通常のスイッチと同様に扱われる。
【0040】
本発明の一態様によれば、ツールは、反復的なプロセスを使用し、さらなるスイッチマージが生じ得なくなるまで、性能が依然として満たされる条件下でスイッチをマージする。ツールは、以下のように説明されるプロセスを使用する。
【0041】
1)それ以上のスイッチ融合は不可能である間、以下を行う。
a)その近隣のうちの1つと融合するための候補スイッチを選択する。選択プロセスは、ネットワーク内のすべてのスイッチが最終的に候補であることを保証する。
【0042】
b)候補が選択されると、融合する近隣を探索する。隣接基準は、コスト関数の評価に基づく。コスト関数は、候補との融合に「最も適している」スイッチを返すものとする。「最も適している」の定義は実装に依存するが、コスト関数は、2つのスイッチの潜在的な融合が、輻輳、ワイヤ長、ロジック面積、電力、および性能などを含む少なくとも1つのメトリックに関して利得を最大化するようなものでなければならない。
【0043】
c)融合が発生した場合、性能シナリオが依然としてすべて最小スループット要件を満たすかどうかをテストする。そうでない場合、これら2つのスイッチはマージすることができない。ツールによって実行されるプロセスは、それ以上の近隣を見つけることができなくなるまで別の近隣を探索し、その場合、すべてのスイッチがそのまま残されるか、またはすべてのシナリオの最小スループット要件に違反することなく候補とマージすることができる1つの近隣が見つかるまで、その場合、候補スイッチを近隣とマージすることによってネットワークが修正される。
【0044】
本発明の様々な態様によれば、プロセスは、スイッチが特定のサイズ(最大入口ポート数、最大出口ポート数)を超えて大きくならないようにすることが可能である。結合されたスイッチが設定された閾値を上回る場合、マージは防止される。
【0045】
ここで図12を参照すると、本発明の様々な態様による、マージャのためのスイッチSW4の隣に候補スイッチSW3が示されている。シーケンサ250は、性能アウェアスイッチングクラスタリングを提供する入力260を有する。ツールは、2つのスイッチをマージするためのプロセスを実行する。スイッチがマージされると、異なるスイッチから出ていたワイヤは、接続された各スイッチから結合されたスイッチまで1つのワイヤに単純化される。本発明の様々な態様によれば、スイッチSW3およびSW4がマージされる。SW1とSW4とSW3との間の接続は組み合わされ、SW1とSW3_4との間の単一の接続に置き換えられる。したがって、離れたスイッチ間の長い接続は除去され、最小限に低減され、一方、近いスイッチ間の接続は除去され、スイッチ自体の内部で行われる。
【0046】
再び図2Bを参照すると、シーケンサ250への入力262は、ネットワークによって使用されるワイヤの数、ネットワーク要素の面積、およびネットワーク要素によって消費される電力をさらに低減するために実行され得る様々な最適化を含む。そのような最適化の例は、使用されていないため、またはそれらのトラフィックが再ルーティングされ得るために除去され得るリンクの検出、リンクがシナリオで必要とされるよりも広い場合にリンクの幅を縮小すること、ネットワークの全ワイヤ長を最小化するすべてのスイッチ素子の最適な配置を見つけることによってワイヤ長の最適化を実行することとを含み、ネットワークの全ワイヤ長は、ネットワーク素子間の各接続によって張られる距離とその接続の幅との積の和である。
【0047】
引き続き図2Bを参照すると、シーケンサ250への入力264は、ネットワーク要素が割り当てられた空きスペースに収まり、重複せず、対応するクロックおよび電力ドメインの制限に存在するように、ネットワーク要素のロケーションを修正することによって合法的なNoCを制作することを含む。本発明の様々な態様によれば、各ネットワーク要素によってダイ上で占有される面積は、基準ロジックゲートの面積などの本技術の能力に関して提供される情報を使用して計算される。次に、各要素は、その配置の正確さ(要素のために十分な空きスペースが存在し、他の要素は重複しない)についてテストされる。テストが失敗した場合、要素は、テストが合格する適切なロケーションが見つかるまで移動される。
【0048】
本発明の他の態様によれば、フロアプラン上のクロックおよび電力ドメインの拡張が提供され、各要素は、指定されたクロックおよび電力ドメインの境界内に位置することを保証するためにテストされる。テストが失敗した場合、要素は、テストが合格する適切なロケーションが見つかるまで移動される。各要素に適切な配置が見つかると、要素間の各接続のルーティングが行われる。ルーティングプロセスは、要素間の接続を行うワイヤのセットに適した経路を見つける。ルーティングが行われた後、信号が1mmの距離をカバーするのにかかる時間に基づいて、本技術の能力に関して提供される情報を使用して、必要に応じて距離スパンパイプライン要素がリンクに挿入される。
【0049】
本発明のいくつかの態様および実施形態によれば、ツールは、生成されたNoCを記述する1つまたは複数のコンピュータファイルを生成し、それは以下を含む。
【0050】
ネットワーク要素のリストとその構成:データ幅、クロックドメイン。
フロアプラン上の生成された各ネットワーク要素の位置。
【0051】
接続を実装するネットワーク要素を通るルートのセット。本発明の態様によれば、ルートは、ネットワーク要素の順序付きリストであり、ネットワーク要素は、(イニシエータ、ターゲット)の各ペアに1つ、(ターゲット、イニシエータ)の各ペアに1つである。ルートは、ペア間のトラフィックがどのように流れ、どの要素を通過するかを表す。
【0052】
本発明の様々な態様によれば、ツールは、ワイヤ長分布のヒストグラム、スイッチの数、サイズによるスイッチのヒストグラムなど、生成されたNoCに関するメトリックを生成するために使用される。
【0053】
本発明の他の態様によれば、ツールは、ネットワークに様々なアダプタおよびバッファを自動的に挿入する。ツールは、異なるデータ幅、異なるクロックおよび電力ドメインを有する2つの要素間で必要とされる適応に基づいてアダプタを挿入する。ツールは、シナリオおよび検出されたレート不整合に基づいてバッファを挿入する。
【0054】
いくつかの態様および実施形態によれば、ツールは、ツールに提供された1つの制約が以前の実行に関する情報である場合の状況を含む、NoCの増分的最適化のために合成の複数の反復が行われることを保証するために使用することができる。
【0055】
ソフトウェアによる合成プロセスの実行後、結果は、情報を取り込むために明確に定義されたフォーマットを使用してコンピュータファイルなどの機械可読形式で生成される。そのようなフォーマットの例はXMLであり、そのようなフォーマットの他の例はJSONである。本発明の範囲は、特定のフォーマットによって限定されない。
【0056】
図13は、合成NoCの物理的実施のためのガイダンスとして機能するデータを用いて合成NoCを強化するツールによって実行される方法1300を示す。ステップ1302で、ネットワークに対する制約パラメータがツールで受信され、制約パラメータは、物理的制約および性能制約を少なくとも含む制約の群から選択される。ステップ1304で、NoCの物理的フロアプランは、物理的実装をガイドするのに役立つ追加的情報で増強される。例えば、情報は、物理的フロアプランにおける潜在的なパイプラインのためのプレースホルダに関連してもよい。ステップ1306で、ツールは、物理的フロアプランに、またはそのために追加された増強情報に基づいて、物理的フロアプラン上のロケーションへの接続の物理的実装を制約パラメータ内に制約する。ステップ1308で、ツールを使用して、接続のゲートは、ゲートとツールによって検出された接続との間のルーティング距離のリストと比較して、接続からの最短のルーティング距離に向けられる。ステップ1310で、ツールを使用して、論理的相互接続を複数の部分に分割することにより、論理的相互接続の複数の部分はツールのサイズに合わせて較正される。
【0057】
図14は、物理的実装のための潜在的ガイダンスを示すデータを用いて合成NoCを作成するためのツールによって使用される代替的な方法1400を示すフローチャートを示す。ステップ1402で、ツールはNoCに対するタイミング要件を受信する。ステップ1404で、ツールはNoCに対する性能制約を受信する。ステップ1406で、ツールは、合成されたNoCの実装をガイドするために使用することができる情報でNoCの物理的フロアプランを増強する。ステップ1408で、ツールは、物理的フロアプラン上に配置される第1のコンポーネントと第2のコンポーネントとの間の長さがタイミング要件(タイミング制約)を超えるかどうかを決定するように構成されたタイミング推定を実装する。ステップ1410で、ツールは、時間要件を超えることに応答して、物理的フロアプランへの少なくとも1つのリンクに対する物理的挿入点を識別する。ステップ1412で、本発明のいくつかの態様および実施形態によるワイヤ遅延技術固有のパラメータを使用して、少なくとも1つのリンクがフロアプランに挿入される。ステップ1414で、ツールは、NoCトポロジの前記少なくとも1つのリンクの特定のリンクに割り当てることができるモジュール領域の最小セットを識別する。
【0058】
図15Aおよび図15Bは、本発明の様々な態様による合成NoCのトポロジを物理的に実装するために図13および図14のツールによって使用されるプロセスを示す。限定されないが、物理的フロアプラン、コンポーネントのロケーション、および/または仕様入力を含むNoCトポロジ情報1502を有する、Synopsys SNPS Design Compilerを含むがこれに限定されない任意の物理的な実装ツールを提供する。ルートは、トポロジ合成(NoC生成とも呼ばれる)1504によって制作され、フロアプラン領域またはチェックポイントのセットをたどるように構成される。メカニズム1506は、限定されないが、2つのコンポーネント間のタイミングを改善するように構成された距離パイプ挿入などのタイミング実現を含む。距離パイプラインプレースホルダの挿入1510は、ワイヤ遅延技術固有のパラメータを使用して、潜在的なパイプラインのためのプレースホルダを挿入してもよい。この方法を使用すると、ネットワーク内の多くのセグメントは、タイミング閉鎖のための法的な長さの範囲内に入る。換言すれば、2つのコンポーネント間の長さは、タイミング制約において確立されたパラメータ内にある。プレースホルダは、リンクとして知られるトポロジの通常のコンポーネントである。
【0059】
再び図15Aおよび図15Bを参照すると、自動モジュール領域作成1512は、トポロジの特定のリンクを割り当てられたモジュール領域の最小セットの作成を容易にする。パイプラインプレースホルダとして挿入されたリンクは、チェックポイントとして再利用されてもよい。トポロジ合成1504によって生成された各ルートについて、配置ガイダンス計算1508が情報1502に基づいて回避すべき問題を検出すると、新しいリンクおよび対応するモジュール領域が物理的経路に挿入される。一例では、所定のワイヤ距離がXおよびYの両方に沿って2つのホップ間をたどるとき、新しいリンクおよび対応するモジュール領域が物理トポロジに挿入される1510および1512。換言すれば、2つのコンポーネント間の距離が大きすぎるため、タイミング要件を超える。このプロセスは、下流のツールが、トポロジ合成の経路に近似的に従ってトポロジワイヤをルーティングすることを保証する。さらに、ルーティングは類似しているため、生成されたトポロジ合成プロセスが生成したパイプラインプレースホルダは、最終設計におけるタイミング違反を低減する高い確率を有する。
【0060】
必要に応じて論理要素を移動させるのに十分な柔軟性を物理的実装ツールに依然として可能にさせながら、トポロジ合成結果と同様の新しい方法でNoCトポロジを配置するように物理的実装ツールをガイドすることがより望ましい。スイッチの正確な位置を強制するのではなく、ルートはフロアプラン領域またはチェックポイントのセットをたどる。
【0061】
一実施形態では、NoC内の第1のコンポーネントと第2のコンポーネントとの間のタイミング実現に対応するためのメカニズムは、限定されないが、距離パイプ挿入、バッファ段の追加、より高い駆動バッファまたはより高速のバッファへのバッファの切り替え、ワイヤ幅の調整、および/またはどのワイヤ層が使用されているかの表示を含む。
【0062】
合成トポロジ内のタイミング問題を克服し、物理的実装のための制約および/またはガイダンスを通信することによってそれらの発生前にタイミング問題を解決するために、異なるメカニズムが物理的に実装されることは、本発明の範囲内である。限定ではないが、NoCトポロジの周りのオブジェクト、コンポーネント、および/またはゲートの物理的配置を含む接続の物理的実装については本発明の範囲内であり、それにより、下流のツールは、時間制限を超えるように、第1の接続を第2の接続から十分に離れた距離に配置しない。接続性要件を満たすことができるすべての接続についてネットワークを合成し、合成されたネットワークのゲート数を最小にすることがより望ましい。限定されないが、NoCをトポロジパラメータ内に収めることを可能にすること、タイミング要件を満たすことができることを保証すること、より小さいネットワークでより効率的に構築すること、および信号間の相互接続に使用される全体的な電力を最小化することを含むために、合成されたネットワーク内のゲートの数を最小限に抑えることが重要である。
【0063】
他の実施形態では、駆動側のコンポーネントをより大きな駆動強度を有するコンポーネントに置き換えて速度を高める。例えば、信号が第1のスイッチから第2のスイッチに転送されるとき、第1のスイッチと第2のスイッチとの間の距離が大きすぎるためにタイミング要件が超過され、第1のスイッチと第2のスイッチとの間に距離パイプが配置されてもよく、または特定のライン上の寄生素子を低減するためにより低い抵抗を有するより大きなワイヤを使用することによって信号をより高速にするために駆動強度が増加されてもよい。
【0064】
一実施形態では、フロアプラン領域は、限定されないが、スイッチおよび/または距離パイプ段などのコンポーネントを物理的ロケーションおよび/または近似的な物理的ロケーションに制約すること、および/または論理的相互接続を、適切な合成のために下流のツールのサイズに合わせて調整された複数の部分に分割することを含むことができるメカニズムである。相互接続の物理的および論理的構成は、論理的相互接続を形成するようにともに構成される。フロアプラン領域は、コンポーネントを特定のロケーションに制約するために使用される。フロアプラン領域の必要性は、開発されているSoCのネットワークまたは相互接続のサイズの増加に対する応答である。換言すれば、SoCのネットワークまたは相互接続は、限定されないが、より広い相互接続および/または相互接続されるより多くのコンポーネントの追加を含む下流の実装ツールの容量よりも大きく成長している。
【0065】
第1の態様では、スイッチが制約されたロケーションから外れたロケーションに移動した場合にスイッチの性能が悪影響を受ける可能性があるため、スイッチによって受信および送信される信号に関連するデータに基づいて、特定の制約されたロケーションにスイッチを有することがより望ましい場合がある。
【0066】
第2の態様では、追加の制約を利用して、例えば、スイッチまたはパイプ段のためのコンポーネントのゲートを、各個々のコンポーネント内で可能な限り近接して配置してもよい。既存の配置プログラムにおける現在の問題は、コンポーネントを互いからあまりにも遠くに配置する傾向があることである。スイッチが複数のゲートを有する単一のコンポーネントであり、各ゲートを配置する必要があることは、本発明の範囲内である。ネットリストは、これらのコンポーネントの相互接続を容易にするが、下流のツールは、コンポーネントを物理的に配置し、指定された論理的接続性を接続するためのルートを作成する。
【0067】
第3の態様では、第1の態様および第2の態様の2つの別個の制約が同時に使用されてもよい。例えば、特定の性能を有すると指定されたスイッチのコンポーネントが、指定されたよりも広いエリアに分散されている場合、そのスイッチは、最初に指定されたものよりも低い性能を有する。したがって、このスイッチのコンポーネントを互いに近接した状態に保つことがより望ましい。さらに、より大きなネットワークに基づいて、ネットワーク全体が指定または分析されたように機能するように、フロアプランの空きスペースの特定の領域またはエリア内にコンポーネントを維持することがより望ましい。
【0068】
一実施形態では、所与の半導体プロセスにおける近似では、単一のワイヤの最大長さが確立されて、その特定の経路の全体的なタイミングを確実に満たすことができる。さらに、所与の時間内に第1のコンポーネントから第2のコンポーネントに移動することは重要な態様である。第1のコンポーネントと第2のコンポーネントとの間の過剰な長さのために、所与の時間内に第1のコンポーネントから第2のコンポーネントに信号を移動させることが達成できない場合がある。結果として、距離パイプ段の挿入の技術的解決策の必要性は、現在の技術と比較して、この技術的問題を解決するであろう。
【0069】
一実施形態では、第1のコンポーネントおよび第2のコンポーネントのエリア推定を受信し、NoCの最適化におけるタイミングおよび他の性能要件を均衡化することで、結果として得られるNoCゲートを確実に配置できるようにする、すなわち、NoCに割り当てられたフロアプランの空きスペースに収まるようにする。
【0070】
一実施形態では、NoCに対する電力要件をさらに受信し、結果として得られるNoCが制約で指定された電力要件を超えないことを保証するために、NoCの最適化におけるタイミングおよび他の性能要件を均衡化する。
【0071】
一実施形態では、NoCネットリスト構造に基づく推定として、または下流の実装ツールからのフィードバックとして取得された物理ルーティング輻輳データをさらに組み込み、NoCの最適化におけるタイミングおよび他の性能要件を均衡化することにより、結果として生じるNoCがNoCに割り当てられたフロアプランの空きスペースでルーティング可能になることを確実にする。
【0072】
本発明のいくつかの態様および実施形態によれば、合成された表現からのNoCの物理的生成をガイドするための方法が開示される。方法は、NoCに対する少なくとも1つの制約パラメータをツールで受信することであって、少なくとも1つの制約パラメータは、少なくとも1つの物理的制約および少なくとも1つの性能制約を含む制約パラメータの群から選択される、受信することと、ツールを使用して、NoCの物理的実装をガイドする情報を用いて、NoCに対する物理的フロアプランを増強することと、物理的フロアプランを使用して、少なくとも1つの制約パラメータに基づいて物理的フロアプラン上のロケーションへの接続の物理的実装を制約することとを含む。
【0073】
本発明のいくつかの態様および実施形態によれば、ツールを使用して、接続のゲートは、ゲートとツールによって検出された接続との間のルーティング距離のリストと比較して、接続からの最短のルーティング距離に向けられる方法が開示される。
【0074】
本発明のいくつかの態様および実施形態によれば、ツールを使用して、論理的相互接続を複数の部分に分割することにより、論理的相互接続の複数の部分はツールのサイズに合わせて較正される、分割することを含む方法が開示される。
【0075】
本発明のいくつかの態様および実施形態によれば、NoCの合成されたトポロジの物理的実装をガイドするための方法が開示される。方法は、NoCに対する少なくとも1つのタイミング要件をツールで受信することと、NoCに対する少なくとも1つの性能制約をツールで受信することと、ツールを使用して、物理的実装をガイドするための情報を用いて、NoCに対する物理的フロアプランを増強することと、物理的フロアプラン上に配置される第1のコンポーネントと第2のコンポーネントとの間の長さが少なくとも1つのタイミング要件を超えるかどうかを決定するように構成されたタイミング推定を実装することと、少なくとも1つのタイミング要件を超えることに応答して、物理的フロアプランに少なくとも1つのリンクを挿入することとを含む。
【0076】
本発明のいくつかの態様および実施形態によれば、少なくとも1つのリンクは、ワイヤ遅延技術固有のパラメータを使用して挿入される方法が開示される。本発明のいくつかの態様および実施形態によれば、ツールで、少なくとも1つのモジュール領域を作成することをさらに含む方法が開示され、NoCの前記少なくとも1つのリンクは、少なくとも1つのモジュール領域に割り当てられる。
【0077】
本発明のいくつかの態様および実施形態によれば、第1のコンポーネントおよび第2のコンポーネントに対するエリア推定を受信することを含む方法が開示される。
【0078】
本発明のいくつかの態様および実施形態によれば、NoCの少なくとも1つのゲートが物理的フロアプランの少なくとも一部に配置可能であり得ることを識別するために、NoCの最適化において少なくとも1つのタイミング要件に対する均衡化を実行することを含む方法が開示される。
【0079】
本発明のいくつかの態様および実施形態によれば、NoCの少なくとも1つのゲートが物理的フロアプランの少なくとも一部に配置可能であり得ることを識別するために、NoCの最適化において少なくとも1つの性能制約に対する均衡化を実行することを含む方法が開示される。
【0080】
本発明のいくつかの態様および実施形態によれば、NoCに対する電力要件を受信することを含む方法が開示される。
【0081】
本発明のいくつかの態様および実施形態によれば、NoCが少なくとも1つのタイミング要件で指定される電力要件を超えないことを識別するために、NoCの最適化において少なくとも1つのタイミング要件に対する均衡化を実行することを含む方法が開示される。
【0082】
本発明のいくつかの態様および実施形態によれば、NoCが少なくとも1つの性能制約で指定される電力要件を超えないことを識別するために、NoCの最適化において少なくとも1つの性能制約に対する均衡化を実行することを含む方法が開示される。本発明のいくつかの態様および実施形態によれば、物理ルーティング輻輳データを提供することを含む方法が開示される。
【0083】
本発明のいくつかの態様および実施形態によれば、NoCが物理的フロアプランの少なくとも一部にルーティング可能であり得ることを識別するために、NoCの最適化において少なくとも1つのタイミング要件に対する均衡化を実行することを含む方法が開示される。
【0084】
本発明のいくつかの態様および実施形態によれば、NoCの少なくとも1つのゲートが物理的フロアプランの少なくとも一部にルーティング可能であり得ることを識別するために、NoCの最適化において少なくとも1つの性能制約に対する均衡化を実行することを含む方法が開示される。
【0085】
本発明の様々な態様による特定の方法は、非一時的コンピュータ可読媒体に記憶された命令によって実行されてもよい。非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、システムまたはコンピュータに本明細書に記載の方法のステップを実行させる命令を含むコードを記憶する。非一時的コンピュータ可読媒体は、回転磁気ディスク、回転光ディスク、フラッシュランダムアクセスメモリ(RAM:random access memory)チップ、および他の機械的に移動するまたは固体状態の記憶媒体を含む。様々な例による命令を含むコードを記憶するために、任意のタイプのコンピュータ可読媒体が適切である。
【0086】
特定の例を本明細書で説明してきたが、異なる例から異なるコンポーネントの異なる組合せが可能であり得ることに留意されたい。顕著な特徴は、例をよりよく説明するために提示されるが、説明したようにこれらの例の機能的態様を変更することなく、特定の特徴を追加、変更、および/または省略することができることは明らかである。
【0087】
様々な例は、機械のいずれかまたは組合せの挙動を使用する方法である。方法の例は、ほとんどの構成ステップが行われればどこでも完了する。例えば、本発明の様々な態様および実施形態によれば、IP要素またはユニットは、プロセッサ(例えば、CPUまたはGPU)、RAM、例えば、オフチップダイナミックRAMまたはDRAM、イーサネット(登録商標)、Wi-Fi、3G、4Gロングタームエボリューション(LTE:long-term evolution)、5G、および他の無線インターフェース規格無線機などの有線または無線接続用のネットワークインターフェースを含む。IPはまた、必要に応じて、タッチスクリーンセンサ、地理位置情報受信機、マイクロフォン、スピーカ、Bluetooth周辺機器、およびUSBデバイス(とりわけ、キーボードおよびマウスなど)などの様々な周辺デバイスのための様々なI/Oインターフェースデバイスを含み得る。RAMデバイスに記憶された命令を実行することによって、プロセッサは、本明細書に記載の方法のステップを実行する。
【0088】
いくつかの例は、本明細書に記載の方法のためのそのような命令を記憶するように構成された1つまたは複数の非一時的コンピュータ可読媒体である。必要なコードのいずれかを含む非一時的コンピュータ可読媒体を保持する任意の機械が、一例を実装してもよい。いくつかの例は、半導体チップなどの物理デバイス、そのようなデバイスの論理的または機能的挙動のハードウェア記述言語表現、およびそのようなハードウェア記述言語表現を記憶するように構成された1つまたは複数の非一時的コンピュータ可読媒体として実装されてもよい。原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含する。本明細書に結合された要素は、直接的な接続によって、または1つまたは複数の他の介在要素と間接的に実現可能な有効な関係を有する。
【0089】
当業者は、多くの修正および変形を認識するであろう。修正および変形は、開示された特徴の任意の関連する組合せを含む。原理、態様、および実施形態を列挙する本明細書のすべての記述は、その構造的および機能的等価物の両方を包含する。「結合された(coupled)」または「通信可能に結合された(communicatively coupled)」として本明細書に記載された要素は、1つまたは複数の他の介在要素を使用する直接接続または間接接続によって実現可能な有効な関係を有する。他のデバイス、モジュール、または要素と「通信する」または「通信している」ものとして本明細書で説明される実施形態は、任意の形態の通信またはリンクを含み、有効な関係を含む。例えば、通信リンクは、有線接続、無線プロトコル、近接場プロトコル、またはRFIDを使用して確立され得る。
【0090】
詳細な説明および特許請求の範囲のいずれかにおいて、「含む(including)」、「含む(includes)」、「有する(having)」、「有する(has)」、「有する(with)」という用語、またはそれらの変形が使用される限り、このような用語は「含む(comprising)」という用語と同様に包括的であることを意図している。
【0091】
したがって、本発明の範囲は、本明細書に示され説明される例示的な実施形態に限定されることを意図しない。むしろ、本発明の範囲および精神は、添付の特許請求の範囲によって具体化される。
図1A
図1B
図2A
図2B
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15A
図15B
【外国語明細書】