(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024173810
(43)【公開日】2024-12-12
(54)【発明の名称】チップフロアプランの画像からの物理認識データを使用してネットワークを生成するためのシステムおよび方法
(51)【国際特許分類】
G06F 30/392 20200101AFI20241205BHJP
H01L 21/82 20060101ALI20241205BHJP
G06F 30/27 20200101ALI20241205BHJP
G06F 11/30 20060101ALI20241205BHJP
【FI】
G06F30/392
H01L21/82 Z
G06F30/27
G06F11/30 172
【審査請求】未請求
【請求項の数】18
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024088265
(22)【出願日】2024-05-30
(31)【優先権主張番号】63/469,548
(32)【優先日】2023-05-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/469,826
(32)【優先日】2023-05-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521196590
【氏名又は名称】アルテリス・インコーポレイテッド
【氏名又は名称原語表記】ARTERIS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】クリストファー・ペズリー
(72)【発明者】
【氏名】グザビエ・バン・リュインベック
(72)【発明者】
【氏名】シモン・モンテイロ
(72)【発明者】
【氏名】アミール・シャリフ
【テーマコード(参考)】
5B042
5B146
5F064
【Fターム(参考)】
5B042JJ16
5B042KK13
5B146AA22
5B146DA07
5B146DC03
5B146GC14
5F064HH10
5F064HH15
(57)【要約】 (修正有)
【課題】ネットワークオンチップ(NoC:network-on-chip)を含む半導体デバイス用のフロアプランの分析および修正方法、システム並びに非一時的コンピュータ可読メモリを提供する。
【解決手段】半導体チップのためのフロアプランニングは、チップの第1のフロアプランの画像をロードすることと、デジタル画像をグレースケール画像に変換することと、グレースケール画像内の閉塞を検出することと、第1のフロアプランに対応する第2のフロアプランを生成することと、を含む。第2のフロアプランは、閉塞の表現およびNoCのための最大利用可能領域を示す。
【選択図】
図1
【特許請求の範囲】
【請求項1】
半導体チップのフロアプランニングのためのコンピュータ実装方法であって、前記方法が、
前記チップの第1のフロアプランのデジタル画像をロードすることと、
前記デジタル画像をグレースケール画像に変換することと、
前記グレースケール画像内の閉塞を検出することと、
前記第1のフロアプランに対応する第2のフロアプランを生成することであって、前記第2のフロアプランが前記閉塞の表現およびネットワークオンチップ(NoC)のための最大利用可能領域を示す、生成することと
を含む、方法。
【請求項2】
前記閉塞を検出することが、前記グレースケール画像をフィルタリングして、前記チップの主要な機能ブロックのエッジを強調表示することを含む、請求項1に記載の方法。
【請求項3】
前記閉塞を検出することが、アルゴリズムまたは訓練された機械学習モデルを使用して、前記主要な機能ブロックの少なくともいくつかを閉塞として分類することをさらに含む、請求項2に記載の方法。
【請求項4】
前記第2のフロアプランが、前記第1のフロアプランのイニシエータおよびターゲットの代わりに、前記閉塞の前記表現の少なくともいくつかを示す、請求項1に記載の方法。
【請求項5】
前記第2のフロアプランを前記第1のフロアプランの前記デジタル画像の上に重ねて、前記イニシエータおよび前記ターゲットをそれらの前記閉塞の表現内に表示することをさらに含む、請求項4に記載の方法。
【請求項6】
前記第2のフロアプランを編集して、前記最大利用可能領域内で前記NoCを生成することをさらに含む、請求項1に記載の方法。
【請求項7】
半導体チップの第1のフロアプランのデジタル画像をロードすることと、前記デジタル画像をグレースケール画像に変換することと、前記グレースケール画像内の閉塞を検出することと、前記第1のフロアプランに対応する第2のフロアプランを生成することであって、前記第2のフロアプランが前記閉塞およびネットワークオンチップ(NoC)のための最大利用可能領域を示す、生成することとを行うためのチップフロアプランニングツールで構成されたプロセッサおよびコンピュータメモリを備える、コンピュータシステム。
【請求項8】
前記閉塞を検出することが、前記グレースケール画像をフィルタリングして、前記チップの主要な機能ブロックのエッジを強調表示することを含む、請求項7に記載のシステム。
【請求項9】
前記閉塞を検出することが、アルゴリズムまたは訓練された機械学習モデルを使用して、前記主要な機能ブロックの少なくともいくつかを閉塞として分類することをさらに含む、請求項8に記載のシステム。
【請求項10】
前記第2のフロアプランが、前記第1のフロアプランのイニシエータおよびターゲットの代わりに、前記閉塞の表現を示す、請求項7に記載のシステム。
【請求項11】
前記チップフロアプランニングツールが、前記第2のフロアプランを前記第1のフロアプランの前記デジタル画像の上に重ねて、前記閉塞の前記表現内に前記イニシエータおよび前記ターゲットを表示するように構成される、請求項10に記載のシステム。
【請求項12】
前記コンピュータメモリが、前記最大利用可能領域内にNoCを生成するためのチップフロアプランニングエディタでさらに構成される、請求項7に記載のシステム。
【請求項13】
実行されると、
半導体チップの第1のフロアプランのデジタル画像をロードすることと、
前記デジタル画像をグレースケール画像に変換することと、
前記グレースケール画像内の閉塞を検出することと、
前記第1のフロアプランに対応する第2のフロアプランを生成することであって、前記第2のフロアプランが前記閉塞の表現およびネットワークオンチップ(NoC)のための最大利用可能領域を示す、生成することと
をプロセッサに行わせる命令で構成された、非一時的コンピュータ可読メモリ。
【請求項14】
前記閉塞を検出することが、前記グレースケール画像をフィルタリングして、前記チップの主要な機能ブロックのエッジを強調表示することを含む、請求項13に記載の非一時的コンピュータ可読メモリ。
【請求項15】
前記閉塞を検出することが、アルゴリズムまたは訓練された機械学習モデルを使用して、前記主要な機能ブロックの少なくともいくつかを閉塞として分類することをさらに含む、請求項14に記載の非一時的コンピュータ可読メモリ。
【請求項16】
前記第2のフロアプランが、前記第1のフロアプランのイニシエータおよびターゲットの代わりに、前記閉塞の前記表現を示す、請求項13に記載の非一時的コンピュータ可読メモリ。
【請求項17】
前記コンピュータ可読メモリが、実行されると、前記第2のフロアプランを前記第1のフロアプランの前記デジタル画像の上に重ねて、前記閉塞の前記表現内に前記イニシエータおよび前記ターゲットを表示することを前記プロセッサに行わせる追加の命令でさらに構成される、請求項16に記載の非一時的コンピュータ可読メモリ。
【請求項18】
前記コンピュータ可読メモリが、実行されると、前記最大利用可能領域にNoCを追加するためのチップフロアプランニングエディタを前記プロセッサに提供させる追加の実行可能命令でさらに構成される、請求項13に記載の非一時的コンピュータ可読メモリ。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、Amir CHARIFらによって2023年5月30日に出願され、「SYSTEM AND METHOD FOR PHYSICAL AWARENESS DATA FROM AN IMAGE,SYNCHRONIZING CHANGE LISTS,INTERACTIVE DATAFLOW AND CHANGE LIST INTERPRETERS,AND FOR DEADLOCK DETECTION」と題された米国仮出願第63/469,548号、およびChristopher PEZLEYらによって2023年5月30日に出願され、「SYSTEM AND METHOD FOR PHYSICAL AWARENESS DATA FROM AN IMAGE,SYNCHRONIZING CHANGE LISTS,INTERACTIVE DATAFLOW AND CHANGE LIST INTERPRETERS,AND FOR DEADLOCK DETECTION」と題された米国仮出願第63/469,826号の利益を主張し、それらの全開示内容は参照により本明細書に組み込まれる。
【0002】
技術分野
本技術は、電子システム設計に関し、より具体的には、ネットワークオンチップ(NoC:network-on-chip)を含む半導体デバイス用のフロアプランの分析および修正に関する。
【背景技術】
【0003】
背景
マルチプロセッサシステムは、NoCを含むシステムオンチップ(SoC:system-on-chip)に実装されている。SoCは、NoCを介して通信するイニシエータIPおよびターゲットIPなどの知的財産(IP:intellectual property)のインスタンスを含む。パケットの形態のトランザクションは、業界標準プロトコルを使用してイニシエータから1つまたは複数のターゲットに送信される。イニシエータは、ターゲットを選択するためにアドレスを使用して、ターゲットに要求トランザクションを送信する。NoCは、アドレスを復号し、イニシエータからの要求をターゲットに転送する。ターゲットはトランザクションを処理し、応答トランザクションを送信し、応答トランザクションはNoCによってイニシエータに返送される。
【0004】
NoCは、ネットワークインターフェースユニット、スイッチ、アダプタ、およびバッファなどの基本ネットワーク機能を含む場合がある。これらの基本機能は、通常、パケットの送信に基づいて、内部NoCトランスポートプロトコルを使用して互いに通信することができる。ネットワークインターフェースユニットは、接続されたSoCユニットによって使用されるプロトコルをNoC内部で使用されるトランスポートプロトコルに変換することができる。スイッチは、送信元と送信先との間でトラフィックのフローをルーティングするために使用される場合がある。アダプタは、データ幅、クロックドメイン、およびパワードメインの間の様々な変換に対処するために使用される場合がある。バッファは、長距離に及ぶようにパイプライン要素を挿入するために、または高速の送信側と低速の受信側との間もしくはその逆のレート適応に対処するためにパケットを格納するために使用される場合がある。
【0005】
本明細書で使用されるチップフロアプランは、チップの主要な機能ブロックの仮配置の概略図を指す。NoCがSoC上に実装されるとき、NoCの様々な要素はチップフロアプラン上の位置を有する。
【0006】
NoC設計は、送信元と送信先との間の接続性および待ち時間、様々な要素の周波数、NoCロジックおよびその関連するルーティング(配線)に利用可能な最大面積、送信元と送信先との間の最小スループット、電力消費要件、ならびにチップフロアプラン上の位置などの異なる性能要件を満たす必要があり得る。チップ設計者が、最小量のロジックおよびワイヤで複数の性能要件を満たすフロアプランを設計することは、困難で時間がかかる作業である。異なる性能要件が満たされるまで、複数のドラフトフロアプランが生成される場合がある。各フロアプランによって、NoCのための利用可能な最大面積が変化する場合がある。
【0007】
チップフロアプランが変更される場合、作業はさらに困難になり時間がかかる。変更の例には、チップフロアプランの修正、IPコンポーネントの追加または削除、および期待性能の修正が含まれる。結果として、作業は、チップの設計時間にわたって頻繁に繰り返される場合がある。
【発明の概要】
【課題を解決するための手段】
【0008】
概要
本明細書の一実施形態によれば、半導体チップのコンピュータ実装方法またはフロアプランニングは、チップの第1のフロアプランのデジタル画像をロードすることと、デジタル画像をグレースケール画像に変換することと、グレースケール画像内の閉塞を検出することと、第1のフロアプランに対応する第2のフロアプランを生成することとを含む。第2のフロアプランは、閉塞の表現およびNoCのための最大利用可能領域を示す。
【0009】
本明細書の一実施形態によれば、コンピュータシステムは、半導体チップの第1のフロアプランのデジタル画像をロードすることと、デジタル画像をグレースケール画像に変換することと、グレースケール画像内の閉塞を検出することと、第1のフロアプランに対応する第2のフロアプランを生成することとを行うためのフロアプランニングツールで構成されたプロセッサおよびコンピュータメモリを備える。第2のフロアプランは、閉塞の表現およびネットワークオンチップ(NoC)のための最大利用可能領域を示す。
【0010】
本明細書の一実施形態によれば、物品は、実行されると、半導体チップの第1のフロアプランのデジタル画像をロードすることと、デジタル画像をグレースケール画像に変換することと、グレースケール画像内の閉塞を検出することと、第1のフロアプランに対応する第2のフロアプランを生成することとをプロセッサに行わせる命令で構成されたコンピュータ可読メモリを含む。第2のフロアプランは、閉塞の表現およびNoCのための最大利用可能領域を示す。
【0011】
方法、コンピュータシステム、および物品は、NoCフロアプランニングのためのコンピュータリソースの使用を削減する。
【図面の簡単な説明】
【0012】
【
図1】本発明の様々な態様および実施形態による、チップフロアプランニングのためのコンピュータ実装方法を示す図である。
【
図2】本発明の様々な態様および実施形態による、チップフロアプランおよび
図1の方法によって検出された閉塞の単純な例を示す図である。
【
図3】本発明の様々な態様および実施形態による、対話型チップフロアプランニングツールを示す図である。
【
図4】本発明の様々な態様および実施形態による、コンピュータシステムを示す図である。
【発明を実施するための形態】
【0013】
詳細な説明
以下では、本発明の様々な態様および実施形態を説明する本技術の様々な例を記載する。一般に、例は、記載された態様を任意の組合せで使用することができる。原理、態様、および実施形態、ならびにそれらの具体例を列挙する本明細書のすべての記述は、それらの構造的および機能的の両方の均等物を包含することが意図される。さらに、そのような均等物は、現在知られている均等物および将来開発される均等物の両方、すなわち、構造にかかわらず同じ機能を実行する開発された任意の要素を含むことが意図される。
【0014】
本明細書で使用される単数形「a」、「an」、および「the」は、文脈が明らかにそうでないことを指示しない限り、複数の指示対象を含むことに留意されたい。本明細書全体を通して、「一態様」、「態様」、「特定の態様」、「様々な態様」、または同様の文言への言及は、任意の実施形態に関連して記載される特定の態様、特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。
【0015】
本明細書全体を通して、語句「一実施形態では」、「少なくとも1つの実施形態では」、「実施形態では」、「特定の実施形態では」、および同様の文言の出現は、必ずしもそうとは限らないが、すべて同じ実施形態または同様の実施形態を指す場合がある。さらに、本明細書に記載された本発明の態様および実施形態は単なる例示であり、当業者によって諒解される本発明の範囲または趣旨を限定するものと解釈されるべきではない。開示された発明は、本明細書に記載された任意の新規な態様を含む任意の実施形態において効果的に作成または使用される。本発明の原理、態様、および実施形態を列挙する本明細書のすべての記述は、それらの構造的および機能的の両方の均等物を包含することが意図される。そのような均等物は、現在知られている均等物および将来開発される均等物の両方を含むことが意図される。
【0016】
本明細書で使用されるトランザクションは、要求トランザクションまたは応答トランザクションであり得る。要求トランザクションの例には、書込み要求および読取り要求が含まれる。
【0017】
本明細書で使用されるノードは、通信経路または通信チャネルを介して情報を作成、受信、および/または送信することが可能な配信ポイントまたは通信エンドポイントとして定義される。ノードは、以下のスイッチ、スプリッタ、マージャ、バッファ、およびアダプタのうちのいずれか1つを指す場合がある。本明細書で使用されるスプリッタおよびマージャはスイッチであるが、すべてのスイッチがスプリッタまたはマージャであるとは限らない。本明細書で使用されるように、かつ本発明の様々な態様および実施形態によれば、「スプリッタ」という用語は、単一の入口ポートおよび複数の出口ポートを有するスイッチを言い表す。本明細書で使用されるように、かつ本発明の様々な態様および実施形態によれば、「マージャ」という用語は、単一の出口ポートおよび複数の入り口ポートを有するスイッチを言い表す。
【0018】
本発明のさまざまな態様によれば、SoCは、複数のクロックドメインおよび複数のパワードメインを含む。クロックドメインは、所与のクロック入力によって供給されるすべてのロジックによって定義される。クロック入力は、クロックの周波数を含むパラメータによって特徴付けられる。パワードメインは、同じ電源から電力供給を受けるすべてのロジックによって定義される。本発明の様々な態様によれば、電源は開閉され、したがって、パワードメインはオンもしくはオフにするか、または他のパワードメインから分離することができる。そのため、設計者は、初期設計の一部として、クロックドメイン制約およびパワードメイン制約のセットを提供する。
【0019】
本発明の様々な態様および実施形態によるコンピュータ実装方法を示す
図1に対して参照が行われる。ブロック110において、第1のチップフロアプランのデジタル画像が設計ツールにロードまたは提示される。フロアプランは、所与のサイズ(すなわち、解像度)の小さい四角形セルに離散化される場合がある。本発明の様々な態様および実施形態によれば、第1のチップフロアプランは、イニシエータおよびターゲットを含むチップの主要な機能ブロックを含む。本発明の様々な態様および実施形態によれば、フロアプランが初期ドラフトである場合、それはNoCの要素を含む場合もある。
【0020】
ブロック120において、ブロックされた部分(「閉塞」)をより検出しやすくするために、デジタル画像がカラー画像からグレースケール画像に変換される。閉塞は、NoCロジックおよびその関連する配線を配置することができないチップフロアプラン上の領域を指す。
【0021】
ブロック130および140において、グレースケール画像内の閉塞が検出される。ブロック130において、主要な機能ブロックのエッジを強調表示して形状検出をより容易にするために、グレースケール画像にカスタムフィルタが適用される場合がある。加えて、ノイズが多い形状がフィルタリングされる場合がある。
【0022】
ブロック140において、次いで閉塞を識別するために形状検出アルゴリズムが適用される場合がある。主要な機能ブロックの少なくともいくつかは閉塞として分類される。
【0023】
本発明の様々な態様および実施形態によれば、形状検出アルゴリズムの代わりに訓練された機械学習モデルが使用される場合があり、それにより、ニューラルネットワークまたは人工知能(AI:artificial intelligence)モジュールが検出および認識を実行することが可能になる。例えば、ニューラルネットワークまたはサポートベクトルマシンは、ツールが閉塞領域を検出し、プロセスを実施することを可能にするために、チップフロアプラン内の閉塞の画像に対して訓練される場合がある。
【0024】
ブロック150において、本発明の様々な態様および実施形態により、検出された幾何学的形状から第2のフロアプランおよび閉塞の表現が生成または作成され、グラフィカルユーザインターフェースでユーザに表示される。第2のフロアプランは第1のフロアプランに対応し、閉塞ならびにNoCのルーティングおよび配置のための最大利用可能領域を示す。これらの閉塞の境界は、長方形または他の幾何学的形状によって表される場合がある。幾何学的形状間の空間は、NoCを生成するためにルーティングおよび配置のための最大利用可能空間を表す。
【0025】
ブロック160において、第2のフロアプランが編集されている間に、チップフロアプランのデジタル画像が第2のフロアプラン用の背景として含まれる場合がある。第2のフロアプラン上の閉塞の表現は、NoCを配置するために最大利用可能領域を識別するが、背景は、ネットワークインターフェースユニット(NIU:network interface unit)などの特定の要素の配置などの追加情報をNoC設計者に提供する。
【0026】
ブロック170において、閉塞の表現はユーザによって編集される場合がある。背景は、不正確に識別されている閉塞または閉塞領域、および検出されていない可能性がある閉塞に関する追加情報を提供することができる。本発明の様々な態様および実施形態によれば、機械学習モデルは、以前に検出されなかったこれらの領域に関するフィードバックを受信して、これらの領域を検出するように機械学習モデルをさらに訓練する。フィードバックは設計者から得ることができるか、またはフィードバックは、機械学習モデルを使用してツールを改善および訓練するために機械学習モデルにフィードバックを提供する敵対的機械学習モデルから得ることができる。さらに、NoC設計者は、この追加情報を使用して閉塞の表現を編集することができる。
【0027】
ツールは、最大利用可能領域の推定値を算出する。この推定値は、結果として生じるNoCゲートが配置可能であること、すなわち、それらがNoCに割り振られたフロアプランの領域に収まることを保証するために、NoC設計中に使用される場合がある。
【0028】
ブロック180において、本発明の態様および実施形態によるフロアプランにNoCが追加される。NoCの要素は、最大利用可能空間内に挿入される場合がある。以前のドラフトからのNoCの要素が存在した場合、それらの要素は最大利用可能領域内で移動させられる場合がある。
【0029】
NoCが追加されているときの第2のフロアプラン210の単純な例を示す
図2に対して参照が行われる。閉塞212の表現は陰影がある領域によって表される。最大利用可能領域214は陰影がない。NoCの要素は、最大利用可能領域214内に配置される。これらの要素は、NIU220およびスイッチ222を含む。
【0030】
NoC設計を操作するための対話型ソフトウェアツール300を示す
図3に対して参照が行われる。ツール300の第1のモジュール310は、
図1のコンピュータ実装方法の一部またはすべてを実行するように構成される場合がある。本発明の様々な態様および実施形態によれば、ツール300は、第1のモジュール310の一部として機械学習モデルを含む。
【0031】
ツール300は、本格的なフロアプランエディタを提供する第2のモジュール320を含む場合がある。本発明の様々な態様および実施形態によれば、モジュール320は機械学習モデルと対話して、フロアプランに対する変更を可能にし、行う。フロアプランエディタは、ネットワーク要素(スイッチ、ネットワークインターフェースなど)、接続、およびルートのセットとして内部的にNoCをモデル化するために使用される場合がある。フロアプランエディタは、要素の追加および削除、ルートの更新などを行うために使用される場合がある。フロアプランエディタは、ネットワーク設計に対する変形を行うために使用される場合があり、それは、基本的な変形(例えば、ネットワーク要素を異なる位置に移動させること)、または自動化プロセスによって実行される複雑な変形(例えば、複数のネットワーク要素を一度に挿入し、それに応じてルートを変更すること)であり得る。本発明の様々な態様および実施形態によれば、敵対的機械学習モデルはモジュール310の一部であり、機械学習モデルをさらに訓練する目的でフロアプラン編集に関するフィードバックを機械学習モデルに提供する。
【0032】
フロアプランエディタは、ネットワーク要素のプロパティを編集するために使用される場合もある。それは、ネットワークの現在の状態を反映するいくつかの表示、およびネットワーク要素のプロパティを列挙するテーブルをNoC設計者に公開することができる。さらに、ツール300は、ネットワーク接続を介してリモートデータベースへのNoC設計のバックアップを周期的に作成することができる。
【0033】
ツール300は、NoC設計者が以前のコマンドを取り消して以前のネットワーク状態を復元することを可能にするように構成された第3のモジュール330を含む場合がある。コマンドは、NoCまたはオブジェクトのモデルに対して実行するように基本的な変形を記述するオブジェクトである。例えば、ツール300は、ネットワーク内にスイッチを作成するコマンドを定義することができる。コマンドオブジェクトごとに、ツール300は、それ自体を元に戻す(Revert)ためのコマンドを有する。ツール300は、Revertまたは元に戻すために反対のアクションを実行する新しいコマンドを生成することができる。
【0034】
第3のモジュール330は変更リストを含む場合がある。変更リストは、コマンド(スクリプト)の順序付きリストである。モデルに対する複雑な変形は、多くのコマンドを含む変更リストによって表すことができる。元の変更リストとは逆の順序で元に戻されたコマンド(反対のコマンド)を含む新しい変更リストを生成することにより、変更リストを元に戻すことができる。本発明の様々な態様および実施形態によれば、変更リスト内で生成された情報は、機械学習モデルへの入力またはフィードバックとして提供することができる。
【0035】
第3のモジュール330は、少なくとも1つの変更リストインタープリタをさらに含む場合がある。変更リストインタープリタは、変更リストの各コマンドを処理し、ソフトウェアの特定の部分に対する具体的な目に見える効果にコマンドを解釈する方法を知るオブジェクトである。各ソフトウェアコンポーネント(グラフィカルビュー、モデル、ネットワークデータベース)は、対応する変更リストインタープリタを組み込むことができる。本発明の様々な態様および実施形態によれば、ネットワークのモデルは直接修正されない。
【0036】
本発明の様々な態様および実施形態によれば、各基本的な変形、機械学習モデルによって生成された変形、または自動化されたバルク変形は、可逆変更リストを生成し、それをすべてのアクティブな変更リストインタープリタにブロードキャストする。各インタープリタは変更リストを消費し、対応するソフトウェアコンポーネントに特定の効果をもたらすように各コマンドを解釈し、例えば、ネットワークデータベース変更リストインタープリタは、解釈されている現在のコマンドに対応するフィールドを修正するために、ネットワークトランザクションを生成してデータベースと通信することができる。
【0037】
本発明の様々な態様および実施形態によれば、変更リストはスタックに格納される場合がある。NoC設計者(または機械学習モデルに基づくAIを使用するツール)が「元に戻す」アクションを発行すると、スタックの上部の変更リストが元に戻され、元に戻された変更リストがブロードキャストおよび解釈され、元の変更リストによって実行された変形が効果的に元に戻される。
【0038】
本発明の様々な態様および実施形態によれば、ツール300は、デッドロックを防止するための第4のモジュール340を含む。第4のモジュール340は、ルート依存性およびソケット依存性を含む依存性グラフを生成することができる。フロー制御指向グラフは、ルートから構築される場合がある。各ルートセグメントは、グラフのノードである。例えば、2つのノードAおよびBは、A、次いでBを有するルートがある場合に接続される。例えば、ルートa→b→c→dの場合、ツールは3つのエッジまたはリンク(a→b)、(b→c)、および(c→d)を作成する。次いで、第4のモジュール340は、2つのセグメント(a→b)~(b→c)および(b→c)~(c→d)を作成することができる。本発明の様々な態様および実施形態によれば、ツールは、訓練された機械学習モデルに基づくAIを使用してルートを決定する。ルート決定の有効性は、AIをさらに訓練するためにフィードバックとして提供される。
【0039】
イニシエータ(ルートの最初のノード)およびターゲット(ルートの最後のノード)は、ソケットにリンクされる場合があり、このソケットは依存関係として他のソケットのリストを有する。本発明の様々な態様および実施形態によれば、第4のモジュール340は、ターゲットから行くトポロジカルセグメントを、依存関係リストからソケットにリンクされたイニシエータから来るすべてのトポロジカルセグメントにリンクするために、フロー制御グラフ内にセグメントを作成することができる。第4のモジュール340は、要求ネットワークのためにのみこれらの依存関係を作成することができる。第4のモジュール340は、フロー制御グラフにループが存在する場合、デッドロックが存在すると判断することができる。
【0040】
本発明の様々な態様および実施形態によれば、ツール300は、性能要件(例えば、イニシエータとターゲットとの間の最小スループット)を維持しながら、スイッチ間で使用されるワイヤの数を減らすためにネットワークを変形するための第5のモジュール350を含む場合がある。本発明の様々な態様および実施形態によれば、NoC設計における任意のメインスイッチまたはノードは、スプリッタのカスケードに分解される場合があり、各スプリッタはロードマップの分岐点に配置される。任意のメインスイッチは、マージャのカスケードにさらに分解される場合があり、各マージャは接続されたターゲットのマージャロードマップの分岐点に配置される。ロードマップの分岐点は、経路が2つ以上の分岐に分割されているという事実によって定義される。スプリッタのカスケード内でスプリッタを分解するプロセスは、カスケードへの入力の数が依然として1つであり、カスケードの出力の数が元のスプリッタの出力の数と同一であるため、元のスプリッタ機能を保つ。マージャのカスケード内でマージャを分解するプロセスは、カスケードの出力の数が依然として1つであり、カスケードへの入力の数が元のマージャの入力の数と同一であるため、元のマージャ機能を保つ。本発明の様々な態様によれば、プロセスの効果は、スイッチ間の実際の接続が必要とされる場所の近くに物理的に配置されたマージャおよびスプリッタによって表される基本スイッチのセットを取得することである。
【0041】
フロアプラン上のクロックドメインおよびパワードメインの拡張が提供され、各要素は、指定されたクロックドメインおよびパワードメインの境界内に位置することを保証するために試験される。試験に失敗した場合、要素は、試験に合格する適切な位置が見つかるまで移動させられる。要素ごとに適切な配置が見つかると、要素間の各接続のルーティングが行われる。ルーティングプロセスは、要素間の接続を行うワイヤのセットに適した経路を見つける。ルーティングが行われた後、信号が指定された距離をカバーするためにかかる時間に基づいて、技術の能力に関して提供された情報を使用して、必要に応じて距離貫通パイプライン要素がリンク上に挿入される。
【0042】
ワイヤ削減は、Moez Cherifらを名指しした2021年9月14日に発行された譲受人の米国特許第11,121,933号(出願番号第16/728,335号)により詳細に説明されており、その開示全体が参照により本明細書に組み込まれる。
【0043】
ツール300は、生成されたNoCに関する情報を提供するための第6のモジュール360を含む場合がある。情報は、ネットワーク要素の構成(例えば、データ幅、クロックドメイン)を有するネットワーク要素のリスト、フロアプラン上の各生成されたネットワーク要素の位置、および接続性を実装するネットワーク要素を通るルートのセットを含む場合がある。本明細書で使用されるルートは、ネットワーク要素の順序付きリストであり、(イニシエータ、ターゲット)のペアごとに1つ、(ターゲット、イニシエータ)のペアごとに1つである。ルートは、ペア間のトラフィックがどのように流れ、どの要素を通るかを表す。
【0044】
情報は、生成されたNoCに関するメトリックを含む場合もある。メトリックの例には、ワイヤ長分布のヒストグラム、スイッチの数、サイズごとのスイッチのヒストグラムなどが含まれ得る。
【0045】
第6のモジュール360は、情報を取り込むために明確に定義されたフォーマットでコンピュータファイル内の情報を提供することができる。そのようなフォーマットの一例はXMLである。そのようなフォーマットの別の例はJSONである。
【0046】
ここで、本発明の様々な態様および実施形態による対話型設計ツール300で構成されたコンピュータシステム410の要素を示す
図4に対して参照が行われる。コンピュータシステム410は、処理ユニット420およびコンピュータ可読メモリ430を含む。コンピュータ可読メモリ430は、実行されると、ツール300の様々な機能を処理ユニット420に実行させる実行可能命令の形態でツール300を記憶する。ツール300は、様々なモジュール310~360を選択するためのグラフィカルユーザインターフェースと対話するか、またはグラフィカルユーザインターフェースを含む場合がある。例えば、第1のモジュール310が選択されると、処理ユニット420は、(ネットワークインターフェース440を介して)ネットワークからフロアチッププランのデジタル画像を受信する。本発明の様々な態様および実施形態によれば、機械学習モデルは処理ユニット420に指示し、それはデジタル画像をロードし、デジタル画像をグレースケール画像に変換し、グレースケール画像内の閉塞を検出し、閉塞の表現を示すフロアプランを生成し、(ディスプレイ450上に)視覚的に表示する。本発明の様々な態様および実施形態によれば、ツール300のAIはNoC設計を編集または修正する。本発明の様々な態様および実施形態によれば、表示されたフロアプランは、NoCをさらに追加または修正するために設計者によって編集される場合があり、編集は、機械学習モデルを使用してAIを訓練するためのフィードバックとして機械学習モデルに提供される。
【0047】
本発明の様々な態様による特定の方法は、非一時的コンピュータ可読媒体上に記憶された命令によって実行される場合がある。非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行された場合、本明細書に記載された方法の工程をシステムまたはコンピュータに実行させる命令を含むコードを記憶する。非一時的コンピュータ可読媒体の例には、回転磁気ディスク、回転光ディスク、フラッシュランダムアクセスメモリ(RAM:random access memory)チップ、および他の機械的に動くかまたは固体の記憶媒体が含まれる。任意のタイプのコンピュータ可読媒体は、様々な例による命令を含むコードを記憶するのに適している。
【0048】
いくつかの例が本明細書に記載されているが、異なる例からの異なる構成要素の異なる組合せが可能であり得ることに留意されたい。顕著な特徴は例をよりよく説明するために提示されるが、記載されたこれらの例の機能的態様を修正することなく、いくつかの特徴が追加、修正、および/または省略される場合があることは明らかである。
【0049】
様々な例は、機械のいずれかまたは組合せの挙動を使用する方法である。方法の例は、世界のどこかで最も多くの構成工程が行われても完了する。例えば、本発明の様々な態様および実施形態によれば、IPの要素またはユニットは、プロセッサ(例えば、CPUまたはGPU)、RAM、例えばオフチップダイナミックRAMまたはDRAM、イーサネット(登録商標)、Wi-Fi、3G、4Gロングタームエボリューション(LTE:long-term evolution)、5G、および他のワイヤレスインターフェース標準無線機などの有線またはワイヤレス接続用のネットワークインターフェースを含む。IPは、必要に応じて、タッチスクリーンセンサ、地理位置情報受信機、マイクロフォン、スピーカ、Bluetooth(登録商標)周辺機器、ならびにとりわけ、キーボードおよびマウスなどのUSBデバイスなどの様々な周辺デバイスのための様々なI/Oインターフェースデバイスを含む場合もある。
【0050】
いくつかの例は、本明細書に記載された方法のためのそのような命令を記憶するように配置された1つまたは複数の非一時的コンピュータ可読媒体である。必要なコードのいずれかを含む非一時的コンピュータ可読媒体を保持するどんな機械でも、一例を実装することができる。いくつかの例は、半導体チップなどの物理デバイス、そのようなデバイスの論理的または機能的な挙動のハードウェア記述言語表現、およびそのようなハードウェア記述言語表現を記憶するように配置された1つまたは複数の非一時的コンピュータ可読媒体として実装される場合がある。原理、態様、および実施形態を列挙する本明細書の説明は、それらの構造的および機能的の両方の均等物を包含する。本明細書に記載された要素は、直接接続によって、または1つもしくは複数の他の介在要素と間接的に実現可能な有効な関係を有する。
【0051】
当業者は多くの修正および変化を認識されよう。修正および変化は、開示された特徴の任意の関連する組合せを含む。原理、態様、および実施形態を列挙する本明細書の説明は、それらの構造的および機能的の両方の均等物を包含する。「結合された」または「通信可能に結合された」と本明細書に記載された要素は、直接接続、または1つもしくは複数の他の介在要素を使用する間接接続によって実現可能な有効な関係を有する。別のデバイス、モジュール、または要素と「通信する」または「通信している」と本明細書に記載された実施形態は、任意の形態の通信またはリンクを含み、有効な関係を含む。例えば、通信リンクは、有線接続、ワイヤレスプロトコル、近距離プロトコル、またはRFIDを使用して確立される場合がある。
【0052】
「含んでいる」「含む」「有している」「有する」「伴う」という用語、またはそれらの変形が、詳細な説明および特許請求の範囲のいずれかで使用される限りにおいて、このような用語は「備える」という用語と同様に包括的であることが意図される。
【0053】
したがって、本発明の範囲は、本明細書に図示され記載された例示的な実施形態に限定されることが意図するものではない。むしろ、本発明の範囲および趣旨は、添付の特許請求の範囲によって具現化される。
【外国語明細書】