(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2021-180484(P2021-180484A)
(43)【公開日】2021年11月18日
(54)【発明の名称】デッドロックフリー変換のためのネットワークオンチップの合成のためのシステムおよび方法
(51)【国際特許分類】
H04L 12/28 20060101AFI20211022BHJP
【FI】
H04L12/28 200Z
【審査請求】未請求
【請求項の数】17
【出願形態】OL
【外国語出願】
【全頁数】22
(21)【出願番号】特願2021-79166(P2021-79166)
(22)【出願日】2021年5月7日
(31)【優先権主張番号】16/872,096
(32)【優先日】2020年5月11日
(33)【優先権主張国】US
(71)【出願人】
【識別番号】521196590
【氏名又は名称】アルテリス・インコーポレイテッド
【氏名又は名称原語表記】ARTERIS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】モエズ・シェリフ
(72)【発明者】
【氏名】ブノワ・ドゥ・レスキュール
【テーマコード(参考)】
5K033
【Fターム(参考)】
5K033BA04
(57)【要約】 (修正有)
【課題】ネットワークオンチップなどのネットワーク変換のためのシステム及び方法を提供する。
【解決手段】合成プロセス100は、2つの変換又はクラスタリングフェーズを含む全体的な合成フローを示す。任意の入力ネットワーク102は、手動で設計するか又はコンピュータ支援設計ツールによって製品化することができ、入力ネットワーク102を使用し、サイクルフリーネットワークトポロジ110によって開始する。ネットワークトポロジは、任意のネットワークとすることができる。合成プロセスは、エッジクラスタ化ネットワークトポロジを生成するために、ネットワークトポロジに対してエッジクラスタリング変換を実行する変換モジュール112を使用し、最適化モジュール114を使用して、エッジクラスタ化ネットワークトポロジを最適化し、変換モジュール116を使用して、最適化されたネットワークトポロジに対してノードクラスタリングを実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ネットワークの合成および変換のための方法であって、
入力として、前記ネットワークに対する複数の制約を含む前記ネットワークを受信するステップであって、前記ネットワークは複数のエッジを含む、受信するステップと、
前記複数のエッジのすべてを予約されていないエッジのセットに割り当てるステップと、
前記複数の制約に適合する少なくとも1つのエッジクラスタを生成するために、前記予約されていないエッジのセットから選択される少なくとも2つのエッジをクラスタリングするステップと、
前記予約されていないエッジのセットから予約されたエッジのセットに前記少なくとも2つのエッジを再割り当てするステップと、
前記エッジクラスタを折り畳むステップと、
前記折り畳まれたエッジクラスタを使用して、変換されたネットワークを生成するステップと
を含む、方法。
【請求項2】
前記ネットワークは、サイクルフリーネットワークであり、前記エッジクラスタを折り畳むステップは、前記変換されたネットワークの前記サイクルフリーの性質を維持する、請求項1に記載の方法。
【請求項3】
前記クラスタリングするステップは、
空のエッジクラスタを生成するステップと、
前記複数のエッジから第1のエッジを選択するステップと、
前記第1のエッジおよび第2のエッジがエッジのセットを形成するように、前記複数のエッジから前記第2のエッジを選択するステップと、
前記エッジのセットを前記空のエッジクラスタに割り当てて前記エッジクラスタを生成するステップと
を含む、請求項1に記載の方法。
【請求項4】
前記第2のエッジが前記第1のエッジと共通の特徴を有する場合に前記第2のエッジが選択され、前記特徴は同一の方向および近接性を含む、請求項3に記載の方法。
【請求項5】
前記予約されていないエッジのセットからエッジを選択することにより、複数の追加のエッジクラスタを生成するステップと、
前記選択されたエッジを前記予約されたエッジのセットに再割り当てするステップと、
ソートされたエッジクラスタのリストを生成するために前記複数の追加のエッジクラスタをソートするステップと、
利得関数を使用して、前記ソートされたエッジクラスタのリストを利得の降順に処理するステップであって、最も高い利得を有する前記エッジクラスタのリストからのエッジクラスタが最初に処理される、処理するステップと
をさらに含む、請求項1に記載の方法。
【請求項6】
ネットワークサイクリングを使用して、前記エッジクラスタを折り畳むステップがトポロジカルループを導入するか否かを判定するステップと、
トポロジカルループが生成されない場合、前記折り畳むステップを実行するステップと、
トポロジカルループが生成される場合、前記複数のエッジから前記2つのエッジを除去するステップと
をさらに含む、請求項1に記載の方法。
【請求項7】
前記折り畳むステップは、
エッジクラスタを第1のノードおよび第2のノードに置き換えるステップと、
前記第1のノードと前記第2のノードとをエッジによって接続するステップと
を含む、請求項1に記載の方法。
【請求項8】
前記エッジクラスタのすべての開始ノードを前記第1のノードに接続するステップと、
前記エッジクラスタのすべての終端ノードを前記第2のノードに接続するステップと
をさらに含む、請求項7に記載の方法。
【請求項9】
コードを記憶するための非一時的コンピュータ可読媒体であって、前記コードは、1つまたは複数のプロセッサによって実行されると、前記プロセッサに、
複数のエッジおよび複数の制約を含むネットワークを受信するステップと、
前記複数のエッジのすべてを予約されていないエッジのセットに割り当てるステップと、
前記予約されていないエッジのセットから選択される少なくとも2つのエッジをクラスタリングするステップと、
前記複数の制約に適合する少なくとも1つのエッジクラスタを生成するステップと、
予約されたエッジのセットに前記少なくとも2つのエッジを割り当てるステップと、
前記エッジクラスタを折り畳むステップと、
前記折り畳まれたエッジクラスタを使用して、変換されたネットワークを生成するステップと
を行わせる、非一時的コンピュータ可読媒体。
【請求項10】
ネットワークを変換するための方法であって、
複数のノードを含む前記ネットワークを入力として受信するステップと、
前記ネットワークの複数の制約を入力として受信するステップと、
第1の可能性のあるノードクラスタを形成するために、前記複数のノードから選択される少なくとも2つのノードを組み合わせるステップであって、前記ノードクラスタは、前記複数の制約に適合する、組み合わせるステップと、
任意の他のノードを前記第1の可能性のあるノードクラスタに追加することができるか否かを判定するために、前記複数のノードをトラバースするステップと、
折り畳まれたノードを生成するために前記第1の可能性のあるノードクラスタを折り畳むステップと、
前記折り畳まれたノードを使用して、変換されたネットワークを生成するステップと
を含む、方法。
【請求項11】
前記第1のノードクラスタの前記ノードは、近接して配置される、請求項10に記載の方法。
【請求項12】
前記ネットワークは、サイクルフリーのネットワークオンチップ(NoC)である、請求項10に記載の方法。
【請求項13】
残りの複数のノードから複数の可能性のあるノードクラスタを生成するステップと、
前記第1の可能性のあるノードクラスタおよび前記複数の可能性のあるノードクラスタから可能性のあるノードクラスタのリストを構築するステップと、
前記可能性のあるノードクラスタのリスト内の各可能性のあるノードクラスタに利得値を割り当てるために、利得関数を使用して前記可能性のあるノードクラスタのリストをソートするステップと、
折り畳まれたノードのセットを生成するために、利得値に基づいて前記可能性のあるノードクラスタのソートされたリストから各可能性のあるノードクラスタを降順に折り畳むステップと、
第2の変換されたネットワークを生成するために、前記折り畳まれたノードのセットを用いて前記変換されたネットワークを更新するステップと
をさらに含む、請求項10に記載の方法。
【請求項14】
前記折り畳むステップは、
各構築ステップにおいてネットワークサイクル探索を使用して、任意の可能性のあるノードクラスタがトポロジカルループを導入するか否かを判定するステップと、
前記トポロジカルループが生成されない場合、前記可能性のあるノードクラスタを折り畳みに委ねるステップと、
前記トポロジカルループが生成される場合、前記残りの複数のノードから前記可能性のあるノードクラスタを排除するステップと、
前記第2の変換されたネットワークを更新するステップと
を含む、請求項13に記載の方法。
【請求項15】
前記ノードクラスタを折り畳むステップは、
前記ノードクラスタから2つのノードを選択するステップと、
前記2つのノードを除去するステップと、
前記2つの除去されたノードを置き換えるために新しいノードを追加するステップと
を含む、請求項10に記載の方法。
【請求項16】
前記2つの除去されたノードのすべての先行ノードを前記新しいノードに向かって接続するステップと、
前記2つの除去されたノードのすべての後続ノードに向けて前記新しいノードを接続するステップと、
前記ネットワーク内のルート情報を増分的に更新するために、前記2つの除去されたノードを通るすべてのルートを前記新しいノードで更新するステップと
をさらに含む、請求項15に記載の方法。
【請求項17】
コードを記憶するための非一時的コンピュータ可読媒体であって、前記コードは、1つまたは複数のプロセッサによって実行されると、前記プロセッサに、
複数のノードを含むネットワークを受信するステップと、
前記ネットワークの複数の制約を受信するステップと、
第1の可能性のあるノードクラスタを形成するために、前記複数のノードから選択される少なくとも2つのノードを組み合わせるステップであって、前記第1の可能性のあるノードクラスタは、前記複数の制約に適合する、組み合わせるステップと、
任意の他のノードを前記第1の可能性のあるノードクラスタに追加することができるか否かを判定するために、前記複数のノードをトラバースするステップと、
折り畳まれたノードを生成するために前記第1の可能性のあるノードクラスタを折り畳むステップと、
前記折り畳まれたノードを使用して、変換されたネットワークを生成するステップと
を行わせる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、Moez CHERIFらによって2019年12月27日に出願された「PHYSICALLY AWARE TOPOLOGY SYNTHESIS OF A NETWORK」と題する米国非仮特許出願第16/728,335号の一部継続出願であり、その全開示は参照により本明細書に組み込まれる。
【0002】
発明の分野
本技術は、コンピュータシステム設計の分野にあり、より詳細には、デッドロックフリーネットワークオンチップ(NoC)を生成するためのトポロジ合成に関する。
【背景技術】
【0003】
背景
システムオンチップ(SoC)内に実装されたマルチプロセッサシステムは、ネットワークオンチップ(NoC)などのネットワークを介して通信する。知的プロパティ(intellectual property:IP)ブロックまたは要素またはコアが、チップ設計において使用される。SoCは、知的プロパティ(IP)ブロックのインスタンスを含む。一部のIPブロックはマスタである。一部のIPブロックはスレーブである。マスタおよびスレーブは、NoCなどのネットワークを介して通信する。
【0004】
パケットの形態のトランザクションは、多くの業界標準プロトコルのいずれかを使用して、マスタから1つまたは複数のスレーブに送信される。NoCに接続されたマスタは、スレーブを選択するためにアドレスを使用して、スレーブに要求トランザクションを送信する。NoCは、アドレスを復号し、マスタからスレーブへ要求を転送する。スレーブはトランザクションを処理し、NoCによってマスタに送り返される応答トランザクションを送信する。
【0005】
すべてのマスタとそれらの対応するスレーブとの間のすべての通信を処理するNoCの設計は、フロアプラン内のNoCの接続性マッピングを確立することを含む。課題は、接続性マップが、フロアプランにおける物理的制約を表す、フロアプランにおけるIPブロックの位置を考慮に入れなければならないことである。さらに、NoCの場合、接続性マップはサイクルの生成を回避すべきである。サイクルは、サイクルに沿ったノードが循環「待機」状態にあり、互いがリソースにアクセスしてメッセージを送信するのを妨げる望ましくないデッドロック状態をもたらす可能性がある。したがって、ネットワークの合成および変換のためのシステムおよび方法が必要とされる。プロセスは、物理的制約に照らして、近最適でサイクルフリーのネットワークを生成するためにリソース使用を最小限に抑えるべきである。システムおよび方法は、所与のネットワークを、より少ない配線(より少ないリンクなど)およびより少ない論理要素(より少ないスイッチなど)を有する、機能が同等の別のネットワークに変換すべきである。さらに、変換は、ネットワークの接続性制約を順守しなければならず、デッドロックにつながる可能性がある新しいサイクルを導入してはならない。
【発明の概要】
【課題を解決するための手段】
【0006】
発明の概要
本発明の様々な実施形態および態様によれば、ネットワーク接続性の制約を維持しながら、ネットワークオンチップ(NoC)などの近最適なネットワークを生成するシステムおよび方法が開示される。本発明の様々な態様および実施形態によれば、システムは、ノードおよびエッジにクラスタリングの方法を適用する。クラスタリングは、ネットワークを変換し、入力ネットワークのフロアプランおよび仕様の物理的制約を順守する、デッドロックフリーで(近)最適なネットワークを生成する。
【0007】
本発明の1つの利点は、ネットワークを最適化し、リソース使用および輻輳を低減することを含む。別の利点は、ネットワーク内の配線(エッジ)およびスイッチ(ノード)を削減するためにデッドロックを意識したプロセスを使用することを含む。別の利点は、物理的ロードマップ手法の使用と組み合わせたときに最適な結果を出力することを含む。別の利点は、すべての変換がより良好にルーティングされた配線結果に収束している間に、生成されるネットワークのサイクルのない構築を維持する近最適なまたは最適なネットワークを生成することを含む。別の利点は、リング、メッシュ、およびトリイを含む不規則なネットワークおよび規則的なネットワークの任意の構造にこの実施態様を適用するシステムの能力を含む。別の利点は、システムが高いランタイム効率でプロセスを実装するため、高速スループットを含む。別の利点は、システムによって実行される合成プロセス中の増分変化の処理における有効性を含む。
【0008】
図面の簡単な説明
本発明をより十分に理解するために、添付の図面を参照する。本発明は、図面または図(FIG.)を参照して以下の説明の態様および実施形態に従って説明され、同様の符号は同じまたは同様の要素を表す。これらの図面は、本発明の範囲の限定と見なされるべきではなく、本発明の本明細書において説明されている態様および実施形態ならびに本発明において理解されている最良の形態は、添付の図面を使用することによってさらなる詳細と共に説明される。
【図面の簡単な説明】
【0009】
【
図1】本発明の様々な態様および実施形態による、新しいネットワークを生成するためのネットワークの合成および変換のプロセスを示す図である。
【
図2】本発明の様々な態様および実施形態による、物理的制約を有するフロアプランに実装された、3つのソースノードおよび13個のシンクノードを含むネットワークを示す図である。
【
図3】本発明の様々な態様および実施形態による、
図2のネットワークのためのノードおよびエッジを含む接続性マップを示す図である。
【
図4】総当たりクラスタリングを使用して、新しいマップによって表される新しいネットワークに変換される、3つのトランクを含む入力ネットワークのマップを示す図である。
【
図5】本発明の様々な態様および実施形態による、新しいマップによって表される新しいネットワークを生成するために変換および合成される、3つのトランクを含む入力ネットワークのマップを示す図である。
【
図6】本発明の様々な態様および実施形態による、新しいマップによって表される別の新しいネットワークを生成するために変換される、
図5の新しいネットワークであるマップを示す図である。
【
図7】本発明の様々な態様および実施形態による、新しいマップによって表される別の新しいネットワークを生成するために変換される、
図6の新しいネットワークであるマップを示す図である。
【
図8】本発明の様々な態様および実施形態による、サイクルを避けるためにエッジクラスタリングが実装されていない、
図7の新しいネットワークであるマップを示す図である。
【
図9】本発明の様々な態様および実施形態による、新しいマップによって表される別の新しいネットワークを生成するために変換される、
図8のネットワークであるマップを示す図である。
【
図10A】本発明の様々な態様および実施形態による、エッジクラスタグループ分けを実施するためのフロープロセスを示す図である。
【
図10B】本発明の様々な態様および実施形態による、ノードクラスタグループ分けを実施するためのフロープロセスを示す図である。
【
図11】本発明の様々な態様および実施形態による、可能性のあるノードクラスタを有するエッジクラスタ化ネットワークのマップを示す図である。
【
図12】本発明の様々な態様および実施形態による、可能性のあるノードクラスタを折り畳むためのステップを示す図である。
【
図13】本発明の様々な態様および実施形態による、折り畳むことができる可能性のあるノードクラスタ、ならびにネットワークの制約のために折り畳むことができない可能性のあるノードクラスタを有する入力ネットワークを示す図である。
【
図14】本発明の様々な態様および実施形態による、可能性のあるノードクラスタが折り畳まれた後の
図13の入力ネットワークを示す。
【発明を実施するための形態】
【0010】
詳細な説明
以下では、本発明の様々な態様および実施形態を例示する、本技術の様々な実施例について説明する。一般に、実施例は、記載された態様を任意の組合せで使用することができる。原理、態様、および実施形態、ならびにそれらの特定の例を列挙する本明細書のすべての記述は、それらの構造的および機能的等価物の両方を包含することを意図している。さらに、そのような等価物は、現在知られている等価物および将来開発される等価物の両方、すなわち、構造にかかわらず同じ機能を実行する開発されている任意の要素を含むことが意図される。
【0011】
本明細書において使用される場合、単数形「a」、「an」および「the」は、文脈が他に明確に指示しない限り、複数の指示対象を含むことに留意されたい。本明細書全体を通して、「1つの態様」、「一態様」、「特定の態様」、「様々な態様」、または同様の文言への言及は、任意の実施形態に関連して説明される特定の態様、特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。
【0012】
本明細書全体を通して、語句「1つの実施形態では」、「少なくとも1つの実施形態では」、「一実施形態では」、「特定の実施形態では」、および同様の文言の出現は、必ずしもそうとは限らないが、すべて同じ実施形態または同様の実施形態を指し得る。さらに、本明細書に記載された本発明の態様および実施形態は単なる例示であり、当業者によって理解されるように、本発明の範囲または思想を限定するものとして解釈されるべきではない。開示されている発明は、本明細書に記載された任意の新規な態様を含む任意の実施形態において効果的に作成または使用される。本発明の態様および実施形態を列挙する本明細書のすべての記述は、それらの構造的および機能的等価物の両方を包含することを意図している。そのような等価物は、現在知られている等価物および将来開発される等価物の両方を含むことが意図される。
【0013】
本明細書において使用される場合、「マスタ」および「イニシエータ」は、同様の知的プロパティ(IP)ブロック、ユニット、またはモジュールを指す。「マスタ」および「イニシエータ」という用語は、本発明の範囲および実施形態内で互換的に使用される。本明細書において使用される場合、「スレーブ」および「ターゲット」は、同様のIPブロックを指す。「スレーブ」および「マスタ」という用語は、本発明の範囲および実施形態内で互換的に使用される。本明細書において使用される場合、トランザクションは、要求トランザクションまたは応答トランザクションであり得る。要求トランザクションの例は、書き込み要求および読み出し要求を含む。
【0014】
本明細書において使用される場合、ノードは、通信パスまたはチャネルを介して情報を作成、受信、および/または送信することができる配信ポイントまたは通信エンドポイントとして定義される。ノードは、スイッチ、スプリッタ、マージャ、バッファ、およびアダプタのうちのいずれか1つを指すことができる。本明細書において使用される場合、スプリッタおよびマージはスイッチである。ただし、すべてのスイッチがスプリッタまたはマージであるとは限らない。本明細書において使用される場合、本発明の様々な態様および実施形態によれば、「スプリッタ」という用語は、単一の入口ポートおよび複数の出口ポートを有するスイッチを表す。本明細書において使用される場合、本発明の様々な態様および実施形態によれば、「マージャ」という用語は、単一の出口ポートおよび複数の入口ポートを有するスイッチを表す。
【0015】
本発明の様々な態様および1つの実施形態によれば、合成および変換は、本明細書において説明するように、デッドロックフリーネットワーク上で実行される。結果として得られる変換されたネットワークトポロジはまた、サイクルフリーになる。本明細書において使用される場合、「サイクルフリー」ネットワークは、同じノードを2回トラバースするルートまたはパスがないネットワークである。「パス」および「ルート」という用語は、本明細書においては互換的に使用される。パスは、ノードおよびエッジ(本明細書においてはリンクとも呼ばれる)の任意の組合せを含み、それらから構成され、それに沿ってデータがソースから宛先に移動する。本発明の様々な態様および実施形態によれば、以下の表記が定義される。
【0016】
Eは任意のエッジまたはリンクである。
LEは最長エッジである。
【0017】
BEは、予約されたエッジのセットである。
NBEは、予約されていないエッジのセットである。
【0018】
CLはエッジクラスタまたはリンクのクラスタである。
G(CL)は、CLの総利得(またはコスト)である。
【0019】
WLは、エッジまたはリンクの配線長さである。
WL(CL)はクラスタCLの総配線長である。
【0020】
ここで
図1を参照すると、ネットワークを合成および変換して、近最適または最適なサイクルフリーネットワークを生成するための、本発明の様々な態様によるプロセス100が示されている。本発明の一実施形態によれば、入力ネットワークはサイクルフリーである。本発明の様々な他の実施形態によれば、入力ネットワークは任意のネットワークであり、これは、サイクルを有するネットワーク、不規則なトポロジを有するネットワーク、および規則的なトポロジ(例えば、メッシュ、リング、トリイ(torii)など)を有するネットワークであってもよい。
【0021】
合成/変換プロセスは、エッジクラスタリングおよびノードクラスタリングを含む。合成プロセスは、リソース使用を最小化し、近最適なサイクルフリーネットワークを生成する。得られるネットワーク構造は、本明細書の一部として記載されたフロアプランの物理的制約に従う。本発明のいくつかの態様によれば、合成プロセスは、目的関数を最適化することと、ネットワークのエッジの(リンクを表す)総配線長に対応するグローバルコストを最適化することとを含む。本発明の様々な態様および実施形態によれば、2つのクラスタリングフェーズ(エッジクラスタリングおよびノードクラスタリング)は、入力ネットワークをサイクルフリーに維持しながら動作し、合成プロセスは最適な構造に収束する。これは、エッジクラスタリングおよびノードクラスタリングの2つのネットワーク変換を使用して達成される。これらの変換は、既存のネットワークを入力とし、何らかのメトリックに従って入力ネットワークよりも最適なネットワークを出力として生成する。これらの変換は、新たに生成されるネットワークにサイクルを導入せず、これは重要な結果であり、サイクルは説明したようにデッドロックを引き起こすため、有益である。本発明の様々な態様および実施形態によれば、合成プロセスは、存在する場合はサイクルを除去するためにネットワークを再構成し、次いで、サイクルフリー特性を順守および維持しながらクラスタリングおよび最適化を適用する。さらに、フロアプランの物理的制約が維持され、順守される。
【0022】
図1に示すように、合成プロセス100は、2つの変換またはクラスタリングフェーズを含む全体的な合成フローを示す。入力ネットワーク102は任意である。入力ネットワーク102は、手動で(人間などによって)設計することができ、またはコンピュータ支援設計ツールによって製品化(自動設計)することができる。本発明の1つの態様および実施形態によれば、入力ネットワーク102が使用され、合成プロセス100は、サイクルフリーのネットワークトポロジ110によって開始する。上述したように、ネットワークトポロジ110は、本発明のいくつかの他の態様および実施形態による任意のネットワークとすることができる。合成プロセス100は、エッジクラスタ化ネットワークトポロジを生成するために、ネットワークトポロジ110に対してエッジクラスタリング変換を実行する変換モジュール112を使用する。合成プロセス100は、最適化モジュール114を使用して、エッジクラスタ化ネットワークトポロジを最適化する。合成プロセス100は、変換モジュール116を使用して、最適化されたネットワークトポロジに対してノードクラスタリングを実行する。結果として得られるネットワークトポロジ120は、サイクルフリーのネットワークトポロジである。本発明の1つの態様によれば、結果として得られるネットワークトポロジ120は、さらなる最適化および最終ネットワークトポロジ130を生成するために使用される設計仕上げのためにユーザによって処理されてもよい。本発明の他の態様によれば、結果として得られるネットワークトポロジ120は、さらなる最適化および最終ネットワークトポロジ130を生成するために使用される設計仕上げのために合成ツールによって処理されてもよい。上述したように、本発明のいくつかの他の態様および実施形態によれば、結果として得られるネットワークトポロジ120は、ネットワークトポロジ102などの開始ネットワークトポロジがサイクルを有していたとしても、サイクルフリーのネットワークトポロジである。
【0023】
ここで
図2を参照すると、本発明の様々な態様および実施形態による、9つの禁止領域210と、13個のシンクノード230と通信する3つのソースノード220とを含むフロアプラン200が示されている。フロアプラン200は、ソースノード220とシンクノード230との間のエッジ(またはリンク)240などの直接エッジを使用した直接通信接続を示す。示されるように、禁止領域210は、リンクまたはエッジがトラバースすることができないフロアプラン上の空間を示し、リンクは、禁止領域210によって占有されていないフロアプラン上の領域に配置されなければならない。本発明の様々な態様および実施形態によれば、システムは、ソースノード230とシンクノード240との間の接続性を有するフロアプラン200を実装する任意のネットワーク構造を入力として受信する。フロアプラン200は、マップとしてシステムに提供される。システムは、エッジおよびノードクラスタリングを使用してマップを処理し、より最適化された構造を生成する。
【0024】
本発明の様々な態様および実施形態によれば、入力ネットワークはサイクルを有する。したがって、エッジおよびノードクラスタリングは、既存のサイクルを破壊することを目的としない。システムは、既存のサイクル数を増やすことなくネットワークを最適化する。本発明の様々な態様および実施形態によれば、入力ネットワークはサイクルフリーである。したがって、最適化されたネットワークもサイクルフリーになる。
【0025】
ここで
図3を参照すると、
図2のフロアプラン200の通信接続性(またはリンク)を実装する接続ネットワーク300の一例が示されている。ノードは、スイッチおよび他のアクティブなネットワーク要素である。本発明の様々な態様および実施形態によれば、接続ネットワーク300は、スイッチ350などのスイッチを含む。本発明の様々な態様および実施形態によれば、接続ネットワーク300は、エッジ360などのエッジを含む。エッジはノード間のリンクであり、リンクは、電気接続の束である。ノードおよびリンクはパスを構成する。本発明の様々な態様および実施形態によれば、多くのノードが互いに近接している。本発明の様々な態様および実施形態によれば、エッジは隣接するノードにおいて始まり、終端し、それらのプロファイルを同化させることができるため、多くのエッジは同様の形状である。システムは、同化され得るノードおよびエッジを組み合わせる。本発明の様々な態様および実施形態によれば、同化され得るエッジおよびノードは、同等の機能を維持しながらネットワークの配線および論理要素の数を減らすため、改善されたネットワークを得るために組み合わされる。
【0026】
ここで
図4を参照すると、本発明の様々な態様および実施形態による、クラスタリング前マップ400およびクラスタリング後マップ450が示されている。マップ400およびマップ450は、スイッチおよびリンクを含む。例示のために、入力ネットワークおよびクラスタリングが動作する構造である
図3のネットワーク300の一部のみを参照する。本発明の様々な態様および実施形態によれば、マップ400は、スイッチ402などの複数のスイッチ、およびリンク404などの複数のリンクを有して示されている。サブネットワークのマップ450は、3つのトランク410,412,414に適用した場合のクラスタリング結果を示す。本発明の様々な態様および実施形態によれば、マップ450は、スイッチ452などの複数のスイッチ、およびリンク454などの複数のリンクを有して示されている。本発明の様々な態様および実施形態によれば、スイッチ402を同化させることができる。スイッチ402の同化は、スイッチ452をもたらす。これがノードクラスタリングのプロセスである。本発明の様々な態様および実施形態によれば、リンク404を同化させることができる。リンク404の同化は、リンク454をもたらす。このプロセスはエッジクラスタリングとして参照される。
【0027】
マップ400は、ネットワーク300などの入力ネットワークの3つの個別のトランク410,412、および414を含むサブネットワークを表す。ノードおよびエッジは、互いに積み重ねられてもよく、または図面のように間隔を置いて配置されてもよい。本発明の様々な態様および実施形態によれば、各トランク410,412、および414は、ネットワーク300などの入力ネットワークがサイクルフリーであるため、サイクルを有さない。本明細書において述べるように、本発明の様々な態様および実施形態によれば、エッジクラスタリングおよびノードクラスタリングのプロセスは、入力ネットワークとすることができる、サイクルを有するネットワークに対して同様の方法で動作する。
【0028】
本発明の様々な態様および実施形態によれば、クラスタリングは、リソース使用(配線長、性能など)に関してよりコンパクトで最適化された構造を生成し、ネットワークをサイクルフリーに維持する。これは、「同様の」エッジおよび隣接ノードをクラスタリングして折り畳むことによって達成される。ネットワークのマップ450は、サイクルフリーであり、最適であり、マップ400などの同じローカル接続性マップを実装する。ここでのローカル接続性マップは、トランクへの内向きポイントと外向きポイントとの間のマップである。クラスタリングは、すべての変換を通してローカルおよびグローバルに(すなわち、ソースとシンクとの間で)接続性を維持する。例えば、スイッチ406をクラスタ化してスイッチ456を得ることができる。トランク414は、クラスタリングが総当たりによって適用される場合、サイクル、したがってデッドロックを生成し得るループ形状を有するように見える。本発明の様々な態様および実施形態によれば、このサイクルの可能性およびデッドロックの可能性を防ぐために、クラスタリングは、サイクルを導入しない場合にのみ適用される。利益を最大化するために、このプロセスは主に長いエッジまたはリンクを削減する。
【0029】
ここで
図5を参照すると、本発明の様々な態様および実施形態による、CL1、CL2、CL3、CL4、およびCL5などのエッジクラスタまたはクラスタリンク(CL)グループ分けならびに3つのトランク510,512、および514を有するクラスタ前ネットワークのマップ500が示されている。CLグループは、エッジクラスタリングを実施するための可能性のあるグループであり、その各々は、本発明の様々な態様および実施形態による規定の目的に応じて任意の順序で実装することができる。CL1グループ分け内のエッジに対してクラスタリングが実施されたクラスタ後ネットワークのマップ550が示されている。
【0030】
本発明の様々な態様および実施形態によれば、エッジクラスタリングを実行する1つの目的および焦点は、長いエッジを最小限に抑えることである。2つ以上の禁止領域の間の狭い通路をトラバースする多くの長いエッジは、配線の輻輳をもたらす可能性がある。長いエッジの配線を最小限に抑えることは、輻輳の低減に寄与する。本発明の様々な態様および実施形態によれば、エッジ(リンク)の長さは、エッジの端点間の配線の長さとして測定される。
【0031】
本発明の様々な態様および実施形態によれば、すべてのエッジ(リンク)は最初は、予約なしとしてマークされている。エッジ(またはリンク)は、すでに選択されてエッジのクラスタまたはCLに割り当てられている場合、「予約済み」と見なされる。例えば、リンク504は、選択されてCL1に割り当てられているため、予約済みのリンクである。
【0032】
本発明の1つの実施形態によれば、エッジクラスタリングは反復的に動作し、反復ごとに2つの主要なステップ、すなわち、(1)CL1などのエッジクラスタを構築するステップ、および(2)エッジ(CL1のリンク)を折り畳み、クラスタを実装するステップを適用する。
【0033】
図5は、識別されたクラスタのセットのマップ500を示す。本発明の様々な態様および実施形態に従って以下に概説されるプロセスは、マップ500においてCL1、CL2、CL3、CL4、およびCL5としてラベル付けされたすべての可能性のあるエッジクラスタを識別する。可能性のあるクラスタは、互いに近接し、同じ方向に向かうエッジのグループである。明確かつ単純にするために、クラスタCL1の例示的な実施態様を以下に説明し、プロセスの概要を下記に示す。本発明の様々な態様および実施形態によれば、マップ550は、CL1を折り畳んだ結果を示し、3つのリンク504が折り畳まれてリンク562および2つの新しいノード564および566がもたらされている。より具体的には、クラスタCL1の実施態様は、CL1のすべてのエッジ504を除去すること、および、ノード564および566に接続された単一のエッジ562を挿入することを含む。入力ネットワークのネットワーク接続性を維持するために、CL1の元のエッジのすべての開始点がノード564に接続され、CL1のエッジのすべての端点がノード566から接続される。したがって、CL1の3つの長いエッジ504を使用する代わりに、クラスタグループ分けCL1の実施後、ネットワークは、この時点で元の接続性を順守するために6つの小さいエッジおよび1つの長いエッジまたはリンク562を使用する。この単純な例では、クラスタのコストはエッジの濃度であった。本発明の1つの実施形態によれば、プロセスは、最初に最大のクラスタで実施を開始し、以下同様である。本発明の様々な態様および実施形態によれば、コストが配線長に関する利得である場合、クラスタリングの実施は、CL3グループ分けの各エッジの配線長のためにCL3から開始されたことになる。
【0034】
本発明の様々な態様に従って述べたように、エッジクラスタリングのプロセスは、反復的に動作し、CL1、CL2、CL3、CL4、およびCL5などの個別のクラスタにエッジをグループ分けすることを含む。エッジまたはCLのグループ分けが識別されると、各CLは利得に関してランク付けされ、これは配線長の短縮がどの程度達成されるか、および/または性能がどれだけ改善されるかに関する利得である。次いで、クラスタ(CL)のリストが、計算された利得の降順にソートされる。次いで、ソートされたリストがトラバースされ、実装のために最良のクラスタが選択される。これが行われると、2つの可能な事例がある。本発明の様々な態様および実施形態によれば、クラスタグループのすべてのエッジが許容可能かつ適合することが判明した場合、実装が有効になり、残りのクラスタを更新する必要はない。プロセスは、ソートされたリスト内の次善のクラスタを選択し、そのクラスタ実装を進める。
【0035】
本発明の様々な態様および実施形態によれば、新しいサイクルを導入するか、または指定の制約の一部を破るために拒絶されるエッジがある場合、プロセスはそのエッジ(リンク)を現在のクラスタから除外する。プロセスは、除外されたエッジを次のクラスタ内でグループ分けすることができるか否かを識別する。これにより、クラスタリングおよび最適化のためにすべてのエッジが考慮されることが保証される。
【0036】
適合する許容可能なエッジのクラスタの実装は、入力として提供されるネットワークまたはサブネットワークのすべてのエッジを考慮することによって動作する。プロセスはすべてのエッジをトラバースする。プロセスは、各エッジについて、他のクラスタエッジによってエッジを折り畳むことがサイクルをもたらす可能性があるか否かを識別する。サイクルは、エッジの端点の先行点と後続点とを接続するパスを探すネットワーク全体にわたるグラフ検索によって識別される。サイクルを導入するエッジは、クラスタから除去または除外される。本発明の様々な態様および実施形態によれば、クラスタがサイクルフリーとして完全に検証されると、クラスタが実装される。次に、プロセスは、すべてのエッジが考慮されるまで、次のクラスタの構築および実装を、以下同様に継続する。本発明の1つの態様および実施形態によれば、ランタイム効率を維持するために、プロセスは、クラスタが実装のためにピックアップされたときにのみサイクルフリー受け入れをチェックする。達成される利点は、プロセスの早期に他のものとのクラスタグループ分けから良好なエッジを不適格化することを回避することである。
【0037】
クラスタを構築するステップは、反復的に機能する。各反復において、プロセスは最初に空のクラスタCLを作成し、未予約エッジ(NBE)のセットの中から最長エッジ(LE)を選択する。次に、プロセスはNBEをトラバースし、LEと同じ方向に移動しているエッジを抽出し、端点はLEの端点の近傍にある。LEの周りにクラスタを構築することは、エッジの重心を再計算し、その近傍にある新しいエッジを認識/同化することに基づく反復プロセスである。この方式は、非垂直エッジおよび非水平エッジの一般的な事例をより良好にカバーするという利点を有する。
【0038】
本発明の様々な態様および実施形態によれば、同じ方向に近接し、サイクルを導入しないエッジのみがクラスタグループに保持される。すべてのエッジが予約済みとしてマークされ、NBEセットからBEセットに移動されると、クラスタを実装する準備ができ、エッジを折り畳むことができる。
【0039】
ここで
図6、
図7、および
図9を参照すると、本発明の様々な態様および実施形態による、残りのクラスタグループCL2、CL3、およびCL5に対してエッジクラスタリングを実施するためのプロセスが示されている。
図6では、CL2に対してエッジクラスタリングが実施され、エッジ610ならびにノード620および630が得られる。
図7では、CL3に対してエッジクラスタリングが実施され、エッジ710ならびにノード720および730が得られる。
図9では、CL5のエッジクラスタリングが実施され、エッジ910、ノード920、およびノード930が得られる。
【0040】
ここで
図8を参照すると、エッジクラスタCL4は、エッジ810およびエッジ820を含む。CL4に対してエッジクラスタを実装すると、エッジ810およびエッジ820の代わりにただ1つのエッジしか得られないため、CL4に対してクラスタグループ分けを実施すると、エッジ820に起因するサイクルが生じる。したがって、CL4に対する実施は行われず、パスは分離され、ネットワークのサイクルフリー特性が維持される。本発明の様々な態様によれば、エッジ810の領域に他のエッジがあり、エッジ810が別のクラスタの一部であるように選択され得る場合、エッジ810は別のクラスタの一部として選択され、折り畳まれる。このプロセスは動的であり、代替的なクラスタグループ分けの選択肢があり、フロアプランに余裕がある場合、最適解に向かって収束し続ける。
【0041】
ここで
図10Aを参照すると、本発明の様々な態様による、CLなどのエッジクラスタグループ分けを生成するためのプロセスが示されている。ステップ1010において、システムは、サイクルフリーであり、すべてのエッジをNBEのセットに割り当てるネットワーク(またはサブネットワーク)を入力として受信する。ステップ1012において、システムは、エッジを追加するために新しい空のクラスタグループCL
Newを作成する。ステップ1014において、システムはネットワークのエッジをトラバースし、NBEのセットからLEを選択し、選択されたLEがCLに追加される。ステップ1016において、システムは、選択されたLEに近いすべてのNBEを識別し、近接するエッジをCLに追加する。ステップ1018において、システムは、近接するエッジがサイクルを導入するか、または任意のネットワーク制約に違反する場合、ステップ1016において追加された任意の近接するエッジをCLから削除する。その結果、更新されたCLが得られ、クラスタ実装ステップ中にエッジのセットを実装することができる。ステップ1020において、システムは、CLの一部であるエッジをNBEのセットからBEのセットに移動させる。ステップ1022において、システムはクラスタグループ分けを実施し、CL内のエッジを2つの新しいノードN1およびN2ならびに新しいエッジに置き換える。ノードN1とノードN2とは、新たなエッジによって接続されている。ステップ1024において、システムは、短いエッジを使用して、CLの開始点にあるすべてのノードをノードN1に接続する。ステップ1026において、システムは、CLの終点にあるすべてのノードをノードN2に接続する。ステップ1028において、システムは、NBEに他のエッジがあるか否か、またはNBEのセットが空であるか否かを判定する。NBEのセットが空でない場合、システムはステップ1012に戻ることによってクラスタグループ分けプロセスを繰り返す。NBEのセットが空である場合、NBEのセットに他のエッジはなく、プロセスは終了する。
【0042】
ここで
図10Bを参照すると、本発明の様々な態様によるノードクラスタを生成するためのプロセスが示されている。ステップ1070において、システムは、ノード(およびリンク)および制約を有するネットワークを入力として受信する。本発明の様々な実施形態に従って下記に概説されるように、入力ネットワークはエッジクラスタ化ネットワークである。本発明の様々な態様および実施形態によれば、入力ネットワークは、エッジクラスタリングを使用して変換されていないネットワークを含む任意のネットワークである。ステップ1072において、本発明の様々な態様によれば、可能性のあるノードクラスタを形成するために組み合わせることができる少なくとも2つのノードを判定または識別するために、ノードがトラバースされる。本発明の1つの態様によれば、ステップ1072において、すべてのノードがトラバースされる。本発明の1つの態様によれば、ステップ1072において、可能性のあるノードクラスタを形成するために組み合わせることができる少なくとも2つのノードが識別されるまで、ノードがトラバースされる。ステップ1074において、識別されたノードは、可能性のあるノードクラスタを形成するために選択される。ステップ1076において、本発明のいくつかの態様によれば、残りのノードがトラバースされる。ステップ1078において、可能性のあるノードクラスタと組み合わせることができる他のノードが識別された場合、ステップ1080において、識別されたノードが可能性のあるノードクラスタに追加される。ステップ1078において、可能性のあるノードクラスタに追加する他のノードが識別されない場合、ステップ1082において、可能性のあるノードクラスタは、下記に概説されるように折り畳まれて、新たな折り畳みノードが形成される。ステップ1084において、システムは、新たな折り畳みノードを使用して、変換されたネットワークを生成する。本発明の様々な態様によれば、システムは、すべての異なる可能なノードクラスタが識別されるまで、変換されたネットワークに対してプロセスを繰り返す。プロセスの各反復は、新しい変換されたネットワークをもたらすことができ、プロセスは、前の反復から生じた、新しい変換されたネットワークに対して繰り返すことができ、これは、本明細書に開示される本発明の様々な態様および実施形態に従って下記に詳細に概説される。
【0043】
ここで
図11を参照すると、本発明の様々な態様および実施形態による、エッジクラスタ化ネットワーク1100が示されている。ネットワーク1100は、3つのトランクと、ノードクラスタ1110などの8つの可能性のあるノードクラスタとを含む。システムは、ノードクラスタリングとして参照される変換を実行する。ノードクラスタは、適合する、ともに配置されたノードのグループである。適合するノード対は、結果として得られるノードを、本方法のパラメータであるノードの入出力ポートの数の最大境界を超えないようにし、ネットワークに新しいサイクルを導入しないノード対である。適合する対はまた、システムが性能制約およびメトリックを考慮している場合、性能目標を順守すべきである。
【0044】
スイッチ素子などの適合するノードは、より少ない論理素子およびより少ないワイヤなどのより少ないリソースを使用してネットワークを生成するためにグループ分け(クラスタ化)される。ノードクラスタリングのプロセスは、反復的かつマルチパス方式で動作する。システムは、ノードのリストをトラバースする。システムは、フロアプランにおける近接度に基づいて、ノードを可能性のあるクラスタにグループ分けする。システムは、1つのノードによって開始し、バケット重心の周りの「マンハッタンボール」を考慮して可能性のあるクラスタに新しいノードを追加し続ける反復プロセスを使用する。システムが可能性のあるクラスタに新しいノードを追加することができなくなると、可能性のあるクラスタは完全に形成されたと見なされる。システムは、以前に構築された可能性のあるクラスタのいずれにもまだない新しいノードからの開始に進む。
【0045】
可能性のあるノードクラスタを使用して、システムは、可能性のあるノードクラスタをトラバースし、スコア関数に関して各々のコスト分析を実行する。本発明の1つの態様によれば、スコア関数はクラスタサイズに基づく。本発明の1つの態様によれば、すべての可能性のあるノードクラスタが分析されてコスト値が取得されると、システムは、可能性のあるノードクラスタをそのコストの降順にソートする。本発明の様々な他の態様によれば、可能性のあるノードクラスタは他の方法でソートすることができ、本発明の範囲はそれによって限定されない。
【0046】
システムは、可能性のあるノードクラスタのソートされたリストをトラバースし、それらを一度に1つずつ処理する。現在選択されている可能性のあるノードクラスタについて、システムは、ノードのすべての適合する対を反復的に識別し、それらがともに折り畳まれた場合にそれらがもたらす利得に関してそれらをスコア付けする。本発明の様々な態様によれば、コストはWLに関して表現される。本発明の様々な態様によれば、コストは性能に関して表現される。本発明の様々な態様によれば、コストは、合流するノードの増大に関して表現される。本発明の様々な態様によれば、コストは、WL、性能、または増大の任意の組合せに関して表現される。すべての対がコスト計算されると、システムは、最も適合する対を選択し、候補ノードのリストから適合する対を除去し、適合するノード対の折り畳みを実施する。
【0047】
本発明の様々な態様によれば、2つのノードN1およびN2の折り畳みは、ノードN1およびN2を除去することを含む。その後、除去したノードを新たなノードN3に置き換える。システムは、N1およびN2のすべての先行する要素をN3に接続する。次いで、システムは、N3をN1およびN2のすべての後続する要素に向かって接続する。システムは、ルートを増分的に更新し続けるために、N1およびN2を通過していたすべてのルートをN3で更新する。システムがすべてのルートを更新すると、システムはその後、候補ノードのリストを新しいノードN3で更新する。システムはまた、影響を受けた候補ノードのコストを更新する。次いで、システムは、新しい最上位候補対を選択し、同じ方式に沿って進行する。システムは、すべてのノードが折り畳まれるか、または折り畳みに使用できる許容可能な対がなくなるまで、このプロセスを反復的に繰り返す。
【0048】
ここで
図12を参照すると、
図11の可能性のあるノードクラスタ1110が、結果として得られるノード1210を生成するために本発明の様々な態様および実施形態に従って実装される。システムは、上記で概説したように、可能性のあるノードクラスタ1110から、適合するノード対である2つのノードを選択し、折り畳んで新しいノードを生成する。その結果、新しい可能性のあるノードクラスタ1202が得られる。システムは、ノードクラスタ1202に対して実装プロセスを繰り返して、別の新しい可能性のあるノードクラスタ1204を生成する。このプロセスは、ノードクラスタ1204に対して実施されて、ノードクラスタ1206が生成される。ノードクラスタ1206の適合するノード対は、ノード1210を生成するように実装される。ノード1210が生成されると、可能性のあるノードクラスタ内に他のノードは存在しない。本発明の様々な態様によれば、現在の可能性のあるノードクラスタ内でそれ以上の折り畳みを行うことができない場合、システムは次の可能性のあるノードクラスタに進む。システムは、すべての可能性のあるノードクラスタが処理されるまで同じ方式を使用して進行する。
【0049】
ここで
図13を参照すると、本発明の様々な態様および実施形態による、可能性のあるノードクラスタ1310、1320、1330、1340、1350、1360、1370、および1380を有する入力ネットワークが示されている。この例における可能性のあるノードクラスタの番号付けは任意であり、ソートされたリストにおけるそれらのランキングを示すものではない。可能性のあるノードクラスタ1310、1320、1330、1340、1350、および1360内のすべてのノードは、ともに折り畳むことができる許容可能な組合せである。可能性のあるノードクラスタ1370および1380内のすべてのノードは、これらの可能性のあるノードクラスタを折り畳むと許容可能でないサイクルが生じるため、許容可能な組合せではない。
【0050】
ここで
図14を参照すると、
図13の入力ネットワークについての最終的なノードクラスタリングマップ1400が示されている。マップ1400は、折り畳まれたクラスタ1410、1420、1430、1440、1450、および1460、ならびに折り畳まれていないノードクラスタ1370および1380(
図13の)の一部であったノードを含む。本発明の様々な態様によれば、結果として得られるマップ1400は、クラスタリングが既存のノードを折り畳むことができ、新しいノードを作成することができる回数だけ、システムが実装ステップを繰り返すことから得られるものである。システムは、マップ1400から明らかなように、収束がそれ以上得られず、クラスタリングを適用することによってそれ以上ノードを得ることができないとき、ノードクラスタリングを停止する。本発明の様々な態様によれば、システムによって実行されるマルチパスは、適合するノードの対を折り畳むことから生じる新しく作成されたノードも、さらなる増大および他のノードとの折り畳みのために考慮されることを保証する。
【0051】
いくつかの態様および実施形態によれば、ツールは、NoCの増分的最適化のために合成の複数の反復が行われることを保証するために使用することができる。システムによる合成プロセスの実装および実行後、結果は、情報を取り込むために明確に定義されたフォーマットを使用するコンピュータファイルなどの機械可読形式で生成される。本発明の範囲は、特定のフォーマットによって限定されない。
【0052】
本発明の様々な態様による特定の方法は、非一時的コンピュータ可読媒体に記憶された命令によって実行することができる。非一時的コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、システムまたはコンピュータに本明細書に記載の方法のステップを実行させる命令を含むコードを記憶する。非一時的コンピュータ可読媒体は、回転磁気ディスク、回転光ディスク、フラッシュランダムアクセスメモリ(RAM)チップ、および他の機械的に動くまたはソリッドステート記憶媒体を含む。任意のタイプのコンピュータ可読媒体が、様々な例による命令を含むコードを記憶するのに適している。
【0053】
特定の例を本明細書において説明してきたが、異なる実施例からの異なる構成要素の異なる組合せが可能であり得ることが留意されよう。顕著な特徴が、実施例をよりよく説明するために提示される。しかしながら、説明したようにこれらの実施例の機能的態様を変更することなく、特定の特徴を追加、変更、および/または省略することができることは明らかである。
【0054】
様々な実施例は、機械のいずれかまたは組合せの挙動を使用する方法である。方法の実施例は、ほとんどの構成ステップが行われる場合はいつでも完了する。例えば、本発明の様々な態様および実施形態によれば、IP要素またはユニットは、プロセッサ(例えば、CPUまたはGPU)と、ランダムアクセスメモリ(RAM−例えば、オフチップダイナミックRAMまたはDRAM)と、イーサネット(登録商標)、WiFi、3G、4Gロングタームエボリューション(LTE)、5Gなどの有線または無線接続用のネットワークインターフェースと、他の無線インターフェース標準無線機とを含む。IPはまた、必要に応じて、タッチスクリーンセンサ、地理位置情報受信機、マイクロフォン、スピーカ、Bluetooth(登録商標)周辺機器、およびUSBデバイスなどの種々の周辺デバイスのための、とりわけキーボードおよびマウスなどの様々なI/Oインターフェースデバイスを含むことができる。RAMデバイスに記憶された命令を実行することによって、プロセッサは、本明細書に記載の方法のステップを実行する。
【0055】
いくつかの実施例は、本明細書に記載の方法のためのそのような命令を記憶するように構成された1つまたは複数の非一時的コンピュータ可読媒体である。必要なコードのいずれかを含む非一時的コンピュータ可読媒体を保持する任意の機械が、実施例を実施することができる。いくつかの実施例は、半導体チップなどの物理デバイス、そのようなデバイスの論理的または機能的挙動のハードウェア記述言語表現、およびそのようなハードウェア記述言語表現を記憶するように構成された1つまたは複数の非一時的コンピュータ可読媒体として実装されてもよい。原理、態様、および実施形態を列挙する本明細書の記述は、それらの構造的および機能的等価物の両方を包含する。本明細書に結合されていると記載されている要素は、直接的な接続によって、または1つまたは複数の他の介在要素を用いて間接的に実現可能な有効な関係を有する。
【0056】
当業者は、多くの修正および変形を認識するであろう。修正および変形は、開示された特徴の任意の関連する組合せを含む。原理、態様、および実施形態を列挙する本明細書の記述は、それらの構造的および機能的等価物の両方を包含する。「結合されている(coupled)」または「通信可能に結合されている(communicatively coupled)」として本明細書に記載されている要素は、直接接続、または、1つまたは複数の他の介在要素を使用する間接接続によって実現可能な有効な関係を有する。別のデバイス、モジュール、または要素と「通信する(communicating)」または「通信している(in communication with)」ものとして本明細書に記載されている実施形態は、任意の形態の通信またはリンクを含み、有効な関係を含む。例えば、通信リンクは、有線接続、無線プロトコル、近接場プロトコル、またはRFIDを使用して確立され得る。
【0057】
「含んでいる(including)」、「含む(includes)」、「有している(having)」、「有する(has)」、「伴う(with)」という用語、またはそれらの変形が詳細な説明および特許請求の範囲のいずれかで使用される限りにおいて、そのような用語は、「備えている(comprising)」という用語と同様に包括的であることを意図している。
【0058】
したがって、本発明の範囲は、本明細書に示され説明される例示的な実施形態および態様に限定されることを意図しない。むしろ、本発明の範囲および思想は、添付の特許請求の範囲によって具体化される。
【外国語明細書】