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

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

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

特開2023-155913電子機器システムにおけるパイプラインモジュールの自動構成
<>
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図1
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図2
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図3
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図4A
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図4B
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図4C
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図5
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図6
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図7
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図8
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図9
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図10
  • 特開-電子機器システムにおけるパイプラインモジュールの自動構成 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023155913
(43)【公開日】2023-10-23
(54)【発明の名称】電子機器システムにおけるパイプラインモジュールの自動構成
(51)【国際特許分類】
   G06F 30/337 20200101AFI20231016BHJP
   G06F 115/02 20200101ALN20231016BHJP
   G06F 119/12 20200101ALN20231016BHJP
【FI】
G06F30/337
G06F115:02
G06F119:12
【審査請求】未請求
【請求項の数】19
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023064336
(22)【出願日】2023-04-11
(31)【優先権主張番号】17/717,133
(32)【優先日】2022-04-11
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.macOS
(71)【出願人】
【識別番号】521196590
【氏名又は名称】アルテリス・インコーポレイテッド
【氏名又は名称原語表記】ARTERIS, INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】モクタル・ハイレシュ
(72)【発明者】
【氏名】ブノワ・ドゥ・レスキュール
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146AA22
5B146DL08
5B146GA01
5B146GC04
5B146GG01
(57)【要約】      (修正有)
【課題】電子システムの設計におけるパイプライン構成の自動最適化方法及びコンピューティングプラットフォームを提供する。
【解決手段】方法は、電子機器システムの完全なレジスタ転送レベル(RTL)記述の生成が、RTL要素のデータベースと、構成可能なパイプラインコンポーネントのリストとを含む入力から、最適化されたパイプライン構成を生成することと、最適化されたパイプライン構成に従って構成されたパイプラインコンポーネントで完全なRTL記述を生成することと、を含む。構成を生成することは、エリアおよびタイミングを最適化する構成の探索を実行することを含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
電子システムの完全なレジスタ転送レベル(RTL)記述を生成する方法であって、
RTL要素のデータベースと、構成可能なパイプラインコンポーネントのリストとを含む入力から、最適化されたパイプライン構成を生成することであって、前記構成を生成することが、エリアおよびタイミングを最適化する構成の探索を実行することを含む、構成を生成することと、
前記最適化されたパイプライン構成に従って構成された前記パイプラインコンポーネントで前記完全なRTL記述を生成することとを含む、方法。
【請求項2】
前記構成可能なパイプライン要素のリストは、各々のパイプライン要素について異なる構成モードを識別し、前記入力は、各構成モードに関するタイミング経路情報をさらに含む、請求項1に記載の方法。
【請求項3】
前記探索を実行することは、
最良のタイミングを有する流れ経路のセットを生成するように、パイプラインを完全に有効化されたものとして構成したベースラインRTL記述を生成することと、
前記記述のうちのタイミング制約を満たさない流れ経路を排除することと、
最適化されたパイプライン構成が発見されるまで、前記ベースラインRTL記述のうちの前記有効な流れ経路を反復的に修正することとを含む、請求項2に記載の方法。
【請求項4】
前記ベースラインRTL記述は、基本論理プリミティブのライブラリから生成され、流れ経路遅延およびパイプラインエリアは、前記ベースラインRTL記述を論理合成プリミティブにマッピングすることによって合成される、請求項3に記載の方法。
【請求項5】
前記流れ経路遅延は、論理プリミティブによる遅延を考慮する、請求項4に記載の方法。
【請求項6】
前記有効な流れ経路を反復的に修正することは、前記構成の漸進的緩和によって前記流れ経路を修正することを含み、すべての前記パイプラインコンポーネントが完全に有効化された状態が最も緩和度が低く、すべての前記パイプラインコンポーネントが完全に無効化されたモードである状態が最も緩和度が高い、請求項4に記載の方法。
【請求項7】
前記ベースラインRTL記述を生成することは、パイプラインコンポーネントのユーザ明示的な構成を保持し、残りのパイプラインコンポーネントを構成することを含む、請求項3に記載の方法。
【請求項8】
前記有効な流れ経路を反復的に修正することは、タイミング制約を依然として満たしながらレジスタの総数を減らすことを含む、請求項3に記載の方法。
【請求項9】
前記ターゲットパラメータは、周波数を含み、
漸進的緩和によって前記流れ経路を修正することは、
前記経路を、それらのタイミング長の降順にソートすることと、
最長のタイミング長を有する前記経路から始まって、前記経路の各々を分析のために選択することとを含み、選択された各経路の前記分析は、
前記選択された経路をターゲットクロック周波数に対して分析し、前記選択された経路がターゲット周波数に違反していない場合に、次いで、
パイプラインコンポーネントインスタンスを選択し、前記選択されたインスタンスについてより緩和度の高い構成モードを選択し、
前記選択されたインスタンスを横切るタイミング経路を再計算し、
前記選択された経路がターゲット周波数に違反する場合に、以前のより緩和度の低い構成モードを再インスタンス化し、
前記選択された構成モードが前記ターゲット周波数に違反していない場合、かつより緩和度の高い構成モードが存在する場合に、前記選択されたインスタンスを保存する
ことによって、前記選択された経路に沿ったパイプラインコンポーネントのインスタンスをループして通過することを含む、請求項8に記載の方法。
【請求項10】
前記電子機器システムは、ネットワークオンチップ(NoC)を含み、前記構成可能なパイプラインコンポーネントの少なくともいくつかは、前記NoCに関連し、前記完全なRTL記述は、前記最適化された構成に従って構成されたNoCパイプラインを含む、請求項1に記載の方法。
【請求項11】
電子機器システムのための最適化されたパイプライン構成を生成するコンピュータ実装方法であって、
レジスタ転送レベル(RTL)要素のデータベース、前記電子機器システムに関する構成可能なパイプラインコンポーネントのリスト、および各々の構成可能なパイプラインコンポーネントの各構成モードに関するタイミング経路情報にアクセスすることと、
前記構成可能なパイプラインコンポーネントのすべてを完全に有効化した状態で、前記RTL要素から前記システムのベースラインRTL記述を生成することと、
前記記述のうちのタイミング制約を満たさない流れ経路を排除することと、
最適化されたパイプライン構成が発見されるまで、緩和の順序で有効な流れ経路内の前記パイプラインコンポーネントの前記構成を反復的に修正することとを含む、コンピュータ実装方法。
【請求項12】
前記特定の基準がエリアを含むことにより、タイミングがエリアに関して最適化される、請求項11に記載の方法。
【請求項13】
前記有効な流れ経路を反復的に修正することは、ターゲットパラメータが満たされるまで、前記構成の漸進的緩和によって前記流れ経路を修正することを含み、すべての前記パイプラインコンポーネントが完全に有効化されたモードである状態が最も緩和度が低く、すべての前記パイプラインコンポーネントが完全に有効化されたモードである状態が最も緩和度が高い、請求項11に記載の方法。
【請求項14】
前記電子機器システムは、ネットワークオンチップ(NoC)を含み、前記構成可能なパイプラインコンポーネントの少なくともいくつかは、前記NoCに関連し、前記完全なRTL記述は、前記最適化された構成に従って構成されたNoCパイプラインを含む、請求項11に記載の方法。
【請求項15】
処理ユニットと、
実行されたときに、前記処理ユニットに、
レジスタ転送レベル(RTL)要素のデータベース、前記電子機器システムに関する構成可能なパイプラインコンポーネントのリスト、および各々の構成可能なパイプラインコンポーネントの各構成モードに関するタイミング経路情報にアクセスさせ、
前記構成可能なパイプラインコンポーネントのすべてを完全に有効化した状態で、前記RTL要素から前記システムのベースラインRTL記述を生成させ、
前記記述のうちのタイミング制約を満たさない流れ経路を排除させ、
最適化されたパイプライン構成が発見されるまで、緩和の順序で有効な流れ経路内の前記パイプラインコンポーネントの前記構成を反復的に修正させる
実行可能命令を格納したメモリと
を備える、コンピューティングプラットフォーム。
【請求項16】
前記特定の基準がエリアを含むことにより、タイミングがエリアに関して最適化される、請求項15に記載のコンピューティングプラットフォーム。
【請求項17】
前記有効な流れ経路を反復的に修正することは、ターゲットパラメータが満たされるまで、前記構成の漸進的緩和によって前記流れ経路を修正することを含み、すべての前記パイプラインコンポーネントが完全に有効化されたモードである状態が最も緩和度が低く、すべての前記パイプラインコンポーネントが完全に有効化されたモードである状態が最も緩和度が高い、請求項15に記載のコンピューティングプラットフォーム。
【請求項18】
前記電子機器システムは、ネットワークオンチップ(NoC)を含み、前記構成可能なパイプラインコンポーネントの少なくともいくつかは、前記NoCに関連し、前記完全なRTL記述は、前記最適化された構成に従って構成されたNoCパイプラインを含む、請求項15に記載のコンピューティングプラットフォーム。
【請求項19】
前記実行可能命令は、前記コンピューティングプラットフォームにさらに、前記最適化されたパイプライン構成に従って構成された前記パイプラインコンポーネントで前記電子機器システムの完全なRTL記述を生成させる、請求項15に記載のコンピューティングプラットフォーム。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、一般に、電子システムの設計に関し、より具体的には、パイプライン構成の自動最適化に関する。
【背景技術】
【0002】
背景
レジスタ転送レベル(RTL)は、典型的には、デジタル回路をハードウェアレジスタ間のデータ信号の流れ、およびそれらの信号について実行される論理演算としてモデル化する設計抽象化を指す。すなわち、どのようにデータが操作され、レジスタ間を移動するかを記述する。RTLを、電子システムの設計および検証フローに使用することができる。例えば、RTLを、システムオンチップ(SoC)の設計および検証フローに使用することができる。
【0003】
SoCの従来のRTL生成は、再構成可能かつパラメータ化可能なハードウェアコンポーネントを利用するシステムに関して、きわめて時間を要する。例えば、初期RTL記述が生成され、特定の制約が満たされているかどうかを判定するために、SoCインテグレータに送信される。制約に違反している場合、新たなRTL記述が生成され、検証が繰り返される。複数の反復を実行するために、数時間を要する可能性がある。課題または問題は、RTLの生成に要する時間だけでなく、最終的な許容可能なRTLを生成する時間である。現時点において、設計者またはユーザは、手動でパイプラインモジュールの構成を作成し、RTLを生成する。タイミングおよび/またはエリアの基準/制約が満たされない場合に、構成設定における問題が存在しても、合成フローの後半まで見つからない。これにより、ユーザは再び戻って(高価な反復)パイプライン構成を変更し、それが機能するまでこのプロセスを試行し続けなければならない。したがって、電子システムにおいてパイプラインモジュールを自動的に構成するためのシステムおよび方法が必要とされている。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
電子システムにおいてパイプラインモジュールを自動的に構成するさまざまな実施形態および方法が開示される。本発明の実施形態によって実施される方法は、電子機器システムの完全なレジスタ転送レベル(RTL)記述の生成を含む。本方法は、RTL要素のデータベースと、構成可能なパイプラインコンポーネントのリストとを含む入力から、最適化されたパイプライン構成を生成することと、最適化されたパイプライン構成に従って構成されたパイプラインコンポーネントで完全なRTL記述を生成することとを含む。構成を生成することは、エリアおよびタイミングを最適化する構成の探索を実行することを含む。本明細書に開示されるように、さまざまな利点が、本発明による実施形態および方法からもたらされる。さらに、本明細書に開示される方法は一般的であり、パイプラインが属する場所または配置される場所に限定されない。
【0005】
図面の簡単な説明
本発明をより完全に理解するために、添付の図面または図を参照する。本発明は、図面または図を参照して、以下の説明における態様および実施形態に従って説明され、図面または図において、同様の番号は同一または同様の要素を表す。これらの図面を本発明の範囲の限定と見なすべきではないことを理解して、本発明の現時点において説明される態様および現時点において理解される最良の態様が、添付の図面を使用することによって、さらなる詳細と共に説明される。
【図面の簡単な説明】
【0006】
図1】本発明の種々の態様および実施形態による電子機器システムのRTL記述を生成するコンピュータ実装方法を示している。
図2】本発明の種々の態様および実施形態による構成可能なパイプラインコンポーネントを示している。
図3】本発明の種々の態様および実施形態による構成可能なパイプラインコンポーネントを示している。
図4A】本発明の種々の態様および実施形態による構成可能なパイプラインコンポーネントの表を示している。
図4B】本発明の種々の態様および実施形態による構成可能なパイプラインコンポーネントを示している。
図4C】本発明の種々の態様および実施形態による構成可能なパイプラインコンポーネントを示している。
図5】本発明の種々の態様および実施形態によるいくつかの構成可能なパイプラインコンポーネントを利用するシステムを示している。
図6】本発明の種々の態様および実施形態による図9のプラットフォームを用いたパイプラインモジュールの自動構成の方法のための入力データおよび生成データを示している。
図7】本発明の種々の態様および実施形態による図9のプラットフォームを用いたパイプラインモジュールの自動生成の方法によって必要とされる上位レベルのステップを示している。
図8】本発明の種々の態様および実施形態による最適化されたパイプライン構成を見つけるために流れ経路を反復的に修正する方法の一例を示している。
図9】本発明の種々の態様および実施形態によるコンピューティングプラットフォームのコンポーネントを示している。
図10】本発明の種々の態様および実施形態に従って構成されたパイプラインコンポーネントを有するネットワークオンチップ(NoC)を示している。
図11】本発明の種々の態様および実施形態に従って構成されたパイプラインコンポーネントを有するNoCを示している。
【発明を実施するための形態】
【0007】
詳細な説明
以下の詳細な説明において、本明細書の一部を形成し、本発明を実施することができる特定の実施形態を例示として示す添付の図面が参照される。これらの実施形態は、当業者が本発明を実施することを可能にするように充分に詳細に記載されており、他の実施形態を利用することも可能であり、本発明の精神および範囲から逸脱することなく機械的変更、手順の変更、および他の変更を行うことができることを理解されたい。したがって、以下の詳細な説明は、限定の意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によってのみ定義され、そのような特許請求の範囲に与えられる均等物の全範囲も含む。
【0008】
本明細書の全体を通して、「一実施形態」、「実施形態」、「一例」、または「例」への言及は、その実施形態または例に関連して説明される特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書の全体のさまざまな箇所における「一実施形態において」、「実施形態において」、「一例」、または「例」という語句の出現は、必ずしもすべてが同じ実施形態または例を指しているわけではない。さらに、特定の特徴、構造、データベース、または特性を、1つ以上の実施形態または例において、任意の適切な組み合わせおよび/または部分的組み合わせにて組み合わせることができる。さらに、本明細書で提供される図面が、当業者への説明目的のためのものであり、図が必ずしも縮尺どおりに描かれていないことを理解されたい。
【0009】
本明細書において使用されるとき、「ソース」、「マスタ」、および「イニシエータ」は、同様の知的財産(IP)ブロック、モジュール、またはユニットを指し、これらの用語は、本発明の範囲および実施形態内で交換可能に使用される。本明細書において使用されるとき、「シンク」、「スレーブ」、および「ターゲット」は、同様のIPモジュールまたはユニットを指し、これらの用語は、本発明の範囲および実施形態内で交換可能に使用される。本明細書において使用されるとき、トランザクションは、要求トランザクションまたは応答トランザクションであり得る。要求トランザクションの例として、書き込み要求および読み出し要求が挙げられる。
【0010】
添付の図中のフローチャートおよびブロック図は、本発明の種々の実施形態によるシステム、方法、およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ステップは、指定された論理機能を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。さらに、ブロック図および/またはフローチャート図の各ステップ、ならびにブロック図および/またはフローチャート図のステップまたはブロックの組み合わせを、指定された機能または動作を実行する専用ハードウェアベースのシステム、または専用ハードウェアとコンピュータ命令との組み合わせによって実装できることに留意されたい。さらに、これらのコンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置を特定のやり方で機能するように導くことができる有形のコンピュータ可読媒体に格納されてよく、したがって、コンピュータ可読媒体に格納された命令は、フローチャートおよび/またはブロック図のステップまたはブロックで指定された機能/動作を実施する命令手段を含む製造物を生む。
【0011】
図1を参照すると、図1は、電子機器システムの完全なRTL記述を生成するコンピュータ実装方法を示している。電子機器システムは、再構成可能および/またはパラメータ化可能なハードウェアブロックを利用する。図1において、ブロックは、再構成可能なパイプラインコンポーネントを含む。電子機器システムの例として、人工知能(AI)、SoC、およびシステムインパッケージ(SiP)が挙げられるが、これらに限られるわけではない。
【0012】
ステップ100において、「最適化された」パイプライン構成が生成される。最適化された構成が、RTL要素のデータベースならびに再構成可能および/またはパラメータ化可能なハードウェアコンポーネントのリストを含む入力から生成される。構成可能なパイプライン要素のリストは、パイプライン要素の各々について、異なる構成モードを識別する。リストは、設計中のシステム内のターゲットパイプラインインスタンスを指す。本発明のいくつかの態様および実施形態によれば、ターゲットリストは、すべての可能なパイプラインインスタンスを含むことができ、あるいはいくつかの特定のサブシステム内に存在するインスタンスのサブセットのみを含むことができる。論理演算およびタイミング経路情報が、各々の構成モードに関して既知である。「タイミング経路」および「タイミングアーク」という用語は、タイミングアークがタイミング経路のコンポーネントのうちの1つであるという点で関連している。タイミングアークは、同じライブラリコンポーネントのポート間の経路を指す。ライブラリコンポーネントの複数のインスタンスを横断する経路のタイミング経路。
【0013】
最適化された構成を生成することは、エリアおよびタイミングを最適化する構成の探索を実行することを含む。本発明のいくつかの態様および実施形態によれば、プロセスは、エリアよりもタイミングを優先する。探索において、プロセスは、タイミング制約が満たされている限りにおいて、レジスタの数を減らす(したがって、エリアを節約する)。プロセスは、タイミング違反につながる経路上のパイプラインの構成に当たると、経路上の緩和の低減を停止し、違反のない最後の構成を使用する。したがって、本発明のいくつかの態様および実施形態によれば、いくつかの最適化された構成は、必ずしも最適ではなく、必ずしも唯一の可能な構成でもない。タイミング制約およびエリア制約の両方を満たす複数の構成が存在する可能性がある。しかしながら、探索は、タイミングとエリアとの間のバランスをとる構成を迅速に発見する。
【0014】
ステップ110において、最適化されたパイプライン構成に従って構成されたパイプラインコンポーネントで、完全なRTL記述が生成される。本明細書において使用されるとき、完全なRTL記述とは、プリミティブのきわめて大きなライブラリから正確に合成されるRTL記述を指す。図1の方法は、完全なRTL記述を生成する従来の方法を超えるいくつかの利点を有する。図1の方法は、より大きな予測可能性を有し、タイミングおよびエリア制約を満たす完全なRTL生成の生成時間を大幅に短縮する。図1の方法は、あまり計算集約的ではない。完全なRTL記述を、修正を伴わずに1回だけ生成することができる。生成に数時間を要するのではなく、完全なRTL記述を、例えば数分などの短時間で生成することができる。
【0015】
図1の方法は、いかなる特定の知的財産(IP)ブロックにも限定されないが、構成可能なパイプラインコンポーネントにとくに有用である。以下の段落で、構成可能なパイプラインコンポーネントの例、ならびに最適化されたパイプライン構成を生成するためのコンピューティングプラットフォームおよびコンピュータ実装方法の例を説明する。
【0016】
ここで図2を参照すると、図2は、構成可能なパイプラインコンポーネント210のアーキテクチャの一例を示している。コンポーネント210は、制御部(Ctl)220およびデータ部(dp)230を含む。ここで、パイプラインコンポーネント210に関係する特定の信号を、構成モードとの関連において説明する。
【0017】
図3をさらに参照すると、図3は、パイプラインコンポーネント210の種々の構成モードの例を示している。この特定の例は、4つのモード、すなわちP00、P01、P10、およびP11を示している。
【0018】
モードP00は、パイプラインコンポーネント210の透過または「無効化」モードを反映する。out_readyとin_readyとの間、およびin_validとout_validとの間に、タイミング経路が存在する。パイプラインコンポーネント内で終わるタイミング経路、またはパイプラインコンポーネント内で始まるタイミング経路は、存在しない。モードP00は、論理コストを有さない。
【0019】
モードP01は、out_validとin_validとの間にタイミング経路を有するが、in_readyとout_readyとの間にタイミング経路を有さない。in_readyから進入するすべてのタイミング経路は、パイプラインモジュール内で終わる。out_readyから生じるすべてのタイミング経路は、パイプラインコンポーネント内で始まる。
【0020】
モードP10は、out_validとin_validとの間にタイミング経路を有さない。しかしながら、in_readyとout_readyとの間にタイミング経路を有する。
【0021】
モードP11は、完全な有効化モードを反映する。モードP11は、out_readyとin_readyとの間にタイミング経路を有さず、in_validとout_validとの間にタイミング経路を有さない。モードP11は、最も高い論理コストを有する。
【0022】
パイプラインコンポーネント210を、ルックアップテーブル(LUT)によって構成の各モードについて特徴付けることができる。各モードについて、出力ポートとレジスタとの間の経路、入力ポートからレジスタへの経路、および入力と出力との間の経路が記述される。本発明の種々の態様および実施形態によれば、構成可能なパイプライン要素210は、そのモードにかかわらず、同じポートインターフェースを有する。本発明のいくつかの態様および実施形態によれば、緩和ベースのアルゴリズムがパイプラインインスタンスについて同じポートインターフェースを有することが、パイプラインの異なる実装モードが試行されるたびに設計を再合成しなければならないことを防止するために重要である。
【0023】
LUTにおいて、モードは、好ましくは、使用されるレジスタの数の降順でソートされる。モードP11は、最も多くのレジスタが有効化されたモードであるため、最初に考慮される。モードP00は、有効化されたレジスタが最も少ないモードであるため、最後に考慮される。この順序を「緩和の順序」と呼ぶ。例えば、図3のモードは、以下の順序で考慮される:モードP11→モードP01→モードP10→モードP00。モードP11から始まってモードP00に向かって移動することを、「漸進的緩和」と呼ぶ。
【0024】
ここで、図4Aを参照すると、図4Aは、本発明の種々の態様および実施形態による3つのモード、すなわち無効、モード1、およびモード2を有するパイプラインコンポーネントの一例を特徴付けるLUT 410、420、および430を示している。各々のLUT 410、420、および430内の各経路は、レジスタおよび組み合わせ論理に関して記載されている。経路タイプは、タイミング経路のタイプを表す。本発明のいくつかの態様および実施形態によれば、複数のタイプの経路が存在し、1)Pi2Poは、入力ポートと出力ポートとの間の直接の経路であり、2)Pi2Regは、入力ポートとレジスタとの間の経路であり、3)Reg2Poは、レジスタから出力ポートへの経路である。LUT 420内の情報は、文書化/レポートの目的で存在する。探索アルゴリズムでは必要とされない。
【0025】
ここで、図4Bおよび図4Cを参照する。図4Bは、本発明の種々の態様および実施形態によるモード1に構成されたパイプラインコンポーネントを示している。3つのレジスタ(Reg1、Reg2、およびReg3)が利用される。図4Cは、本発明の種々の態様および実施形態によるモード2に構成されたパイプラインコンポーネントを示している。2つのレジスタが利用される。無効(図示せず)は、最小数(ゼロ)のレジスタを利用し、モード1は、最も多くのレジスタを利用する。したがって、緩和の順序は、モード1→モード2→無効である。
【0026】
ここで図5を参照すると、図5は、ブロックインスタンスB1、B2、B3、およびB4の間に複数の構成可能なパイプラインコンポーネント520、530、540、および550を含んでいるシステム510を示している。本発明のいくつかの態様および実施形態によれば、B1、B2、B3、およびB4は、任意の汎用データ処理モジュールのインスタンスである。図5は、システムが必要な周波数で動作するのを助けるために、これらのブロックの間にパイプラインを構成する必要があり得るという事実を強調している。
【0027】
図2図4Cのパイプラインコンポーネント、および図5のシステム510は、以下のプラットフォームおよび方法の理解を容易にするために提供されているにすぎない。異なるアーキテクチャおよびモードならびにLUTを有するパイプラインコンポーネントを利用することもできる。
【0028】
ここで図6および図7を参照すると、図6および図7は、電子機器システムのための最適化されたパイプライン構成を生成するモジュール610を使用する方法の一例を示している。パイプライン構成の選択肢の有限のセットが、システムにとって利用可能である。
【0029】
図6は、モジュール610によって処理される入力データを示している。入力データは、本発明の種々の態様および実施形態による設計の完全なRTL記述620を含む。入力におけるRTL記述(ブロック620)は、合成前に設計されているシステム内のすべてのコンポーネントを含む。パイプラインモジュールは、まだ構成されていない。したがって、設計記述は、すべてのコンポーネントを含み、まだ合成されておらず、あるいはパイプラインコンポーネントがまだ構成されていない。
【0030】
入力データは、RTL設計内の既存の構成可能なパイプラインコンポーネントのリスト630をさらに含み、それらの名前および設計内の位置、ならびにそれらを構成するために使用されるそれらのパラメータ、および各々についての既存のパラメータの値を含む。本発明のいくつかの態様および実施形態によれば、構成可能なパイプライン要素のリスト(ブロック630)は、設計されているシステム内のパイプラインモジュールおよびそれらのインスタンス化を指す。構成可能なパイプラインコンポーネントは、RTL記述内のモジュールとしてインスタンス化される。
【0031】
入力データは、本発明の種々の態様および実施形態による構成モードごとの論理演算およびタイミング経路情報640をさらに含む。この情報を、構成モードをそれらの緩和の順序によってソートするLUTによって供給することができる。
【0032】
入力データは、遅延およびエリアに関する合成プリミティブ650および660をさらに含む。これらの合成プリミティブは、論理ゲートおよびフリップフロップなどの基本セットを含む。これらのプリミティブは、エリアおよび遅延を計算するためにRTL記述にマッピングされる。
【0033】
図6は、モジュール610によって生成される出力データをさらに示している。出力データは、IO間、IOとレジスタとの間、およびレジスタ間で抽出された組み合わせ遅延経路に基づくタイミング経路に関するレポート670を含む。本発明のいくつかの態様および実施形態によれば、レポート670は、すべてのパイプラインが構成された後に、評価されたタイミング経路を提供する。
【0034】
遅延は、本発明の種々の態様および実施形態に従って、それらを接続するワイヤについてではなく、論理プリミティブを介するそれらの遅延について合成される。これは、コンポーネントがシステム上にどのように配置されるかに関する物理的情報を必要としないため、論理合成プロセスを大幅に簡略化する。出力データは、セルインスタンスベースごとのエリア番号のレポート680をさらに含む。本発明のいくつかの態様および実施形態によれば、セルインスタンスベースは、プリミティブセルを指し、最適化を伴う最終的な合成がこの段階では行われていないため、ゲートの数、muxの数、レジスタの数、など、設計内にいくつのインスタンスが存在するかを含み、プリミティブインスタンス(プリミティブセル)に関するエリア番号のみをレポートする。
【0035】
出力データは、最後に、最も重要なことに、すべての構成されたパイプラインコンポーネントのレポート690をさらに含む。レポート690は、構成可能なパイプラインコンポーネントの各々について、その各構成パラメータの値を含む。このレポート690内の情報は、完全なRTL記述を生成するために使用される。
【0036】
図7をさらに参照すると、図7は、最適化されたパイプライン構成を生成する方法の一例を示している。ステップ710において、構成のために考慮されるすべてのパイプラインコンポーネントを選択するためのユーザ選択肢が提供される。すべての構成可能なパイプラインコンポーネントが構成されるとは限らない。例えば、ユーザは、パイプラインコンポーネントのユーザ明示的な構成を保持したい場合がある。これにより、ユーザは、システムの以前のバージョンからのブロックを再使用するなど、構成空間に関する独自のアイデアを実施することができる。別の例として、特定のパイプラインコンポーネントが随意であってよく、それらの随意のコンポーネントのいくつかは選択されなくてもよい。選択されたすべてのパイプラインコンポーネントが、構成のために考慮される。
【0037】
ステップ720において、構成のために考慮されるすべてのパイプラインコンポーネントが、本発明の種々の態様および実施形態に従って完全に有効にされる。構成可能なパイプラインコンポーネントは、最も多くのレジスタを有するモードに構成されているときに完全に有効化されていると見なされる。完全に有効化されたパイプラインコンポーネントは、最良のタイミングを達成するが、最大のエリアを利用する。
【0038】
ブロック730において、完全に有効化されたパイプラインを有するベースラインRTL記述が、最良のタイミングを達成するが最大のエリアを利用する流れ経路のセットを生成するために合成される。合成プロセスは、RTL表現を論理ゲートおよびレジスタを含む基本プリミティブセルにマッピングすることを含む。それは、それらのプリミティブセルの接続されたインスタンスのネットリストを生成し、これが、パイプラインの構成ならびに関連のタイミングおよびエリア評価のための本発明の発明者による方法によって使用される。完全な論理プリミティブの大きなライブラリを使用することができ、正確な合成を実行することができる。しかしながら、小さい基本論理プリミティブを使用すると、処理時間が大幅に短縮されるが、依然として正確な結果が得られることが明らかになっている。合成ツールによって使用される技術ライブラリは、タイプ、トランジスタに関するサイズ、駆動強度、電力消費、などが異なる数千のセルを含む可能性がある。したがって、合成マッピングおよび最適化は、RTLを適切なゲートレベル表現にマッピングするために数時間を要する可能性がある。本発明のいくつかの態様および実施形態によれば、プロセスは、セル、すなわちインバータ、ANDゲート、ORゲート、Mux、およびレジスタのきわめて小さいセットを使用し、最適化が必要でないため変更はない。本発明の種々の態様は、パイプライン構成に必要なエリアおよびタイミングの迅速な評価のために、単にこの小さなセットへの迅速なマッピングを必要とする。
【0039】
ブロック740において、経路およびエリア遅延が、プリミティブ650および660を使用して合成されたRTLから計算される。このステップは、パイプラインが最も多くのレジスタのモードで構成されているため、最良のタイミングのベースラインを与えるが、エリアおよび漏れは最悪である。
【0040】
ブロック750において、最悪のタイミングの影響であるが、最良のエリアが、設計全体について決定される。これは、検討下のパイプラインコンポーネントを無効化することによって行うことができる。すべての経路が依然としてタイミング制約を満たす場合、パイプライン構成が発見され、すべてのパイプラインコンポーネントが無効化される。本発明のいくつかの態様および実施形態によれば、ステップ750は、すべてのパイプラインモジュールが「無効」化された場合にすべてのタイミング経路が必要な周波数を満たすベースラインを指す。これは、実際には発生しない可能性があるコーナーケースであるが、依然として確認する価値がある。本発明のいくつかの態様および実施形態によれば、プロセスは、750がまったく呼び出されない場合にステップ760を実行する。本発明のいくつかの態様および実施形態によれば、プロセスは、すべてのパイプラインモジュールが無効化された後にステップ750がタイミング要件をうまく満たさない場合に、ステップ760を実行する。
【0041】
本発明のいくつかの態様および実施形態によれば、ステップ760の処理は、図8に詳述され、すべてのパイプラインモジュールを有効化することによって開始する。ステップ760において、タイミング制約が満たされていない場合、本発明の種々の態様および実施形態に従って最適化されたパイプライン構成が見つかるまで、ベースラインRTL記述における有効な流れ経路が反復的に修正される。一般に、有効な流れ経路を反復的に修正することは、タイミング制約を依然として満たしつつレジスタの総数を減らすことを含む。反復ごとに、レジスタの数はさらに減らされ、エリアはさらに減少する(しかしながら、タイミングは増加する)。このような反復修正の一例が、図8に示される。修正を、本発明の種々の態様および実施形態に従って漸進的に実行することができる。すなわち、修正は、緩和の順序で実行される。
【0042】
ステップ770において、構成されたパイプライン設定がレポートされる。これらの設定は、すべてのパイプラインモジュールインスタンスが構成されている最終的なRTL記述を指す完全なRTL記述の生成に使用される。エリアおよびタイミングも、本発明の種々の態様および実施形態に従ってレポートされる。これは、すべてのパイプラインが構成された後のタイミングおよびエリアの影響をレポートするブロック670および680に関連する。この付随の結果は、設計者にとって知ることが有用であり得る基準点を与える。
【0043】
図8が、本発明の種々の態様および実施形態による最適化されたパイプライン構成を見つけるために流れ経路を反復的に修正する方法の一例を示している。ステップ740が完了した後に、流れ経路は、それらのタイミング長の降順にソートされる(ステップ810)。次いで、各々の経路の分析が、以下のように降順で実行される。
【0044】
ステップ820および830において、パイプラインコンポーネントインスタンスが選択され、そのインスタンスのより緩和された構成モードが選択される。ステップ840および850において、選択されたインスタンスを横切るタイミング経路が再計算され、タイミング制約に対して分析される。
【0045】
制約に違反している場合(ステップ860)、選択されたインスタンスについて、以前の緩和度の低い構成モードが選択され(ステップ870)、タイミング長の降順における次のパイプラインインスタンスが選択される(ステップ820)。
【0046】
選択された構成モードがターゲット周波数に違反していない場合(ステップ860)、より緩和度の高い構成モードが存在するのであれば(ステップ880)、そのインスタンスについて次の構成モードが選択される(ステップ830)。
【0047】
選択されたインスタンスについて、より緩和度の高い構成モードは存在しないが(ステップ880)、考慮すべきパイプラインインスタンスがさらに存在する場合(ステップ890)、別のパイプラインインスタンスが選択される(ステップ820)。
【0048】
考慮すべきパイプラインインスタンスがそれ以上存在しない場合(ブロック890)、探索は、作業すべき次のタイミング経路を選ぶ。すべてのタイミング経路が処理された(それらの経路に沿ったすべてのパイプラインが構成された)とき、最終的なパイプライン構成がレポートされる(ステップ770)。
【0049】
ここで図9を参照すると、図9は、本明細書の方法を実行するためのコンピューティングプラットフォーム910のコンポーネントの一例を示している。コンピューティングプラットフォーム910は、メモリ920および処理ユニット930を含む。メモリ920は、実行されたときに処理ユニット620に最適化されたパイプライン構成を生成させ、随意により最適化されたパイプライン構成を有する完全なRTL記述を生成させる命令940を格納する。コンピューティングプラットフォーム910の例として、ワークステーション、ラップトップ(Windows(登録商標)、MacOS)サーバ、およびクラウドコンピューティングが挙げられるが、これらに限られるわけではない。
【0050】
本明細書に開示される方法およびプラットフォームは、いかなる特定の電子機器システムにも限定されない。可能なシステムの例として、再構成可能なパイプラインコンポーネントで作られた任意の電子システムが挙げられるが、これに限られるわけではない。
【0051】
本発明の種々の態様および実施形態による図10に示されるようなNoC 1020を含むSoC 1010の例を考える。SoCは、ビデオ、中央処理装置(CPU)、カメラ、ダイレクトメモリアクセス(DMA)、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、入出力(IO)、およびハードディスクドライブ(HDD)などの複数のイニシエータおよびターゲットを含む。NoC 1020は、イニシエータとターゲットとの間のパケットベースの通信を提供する。
【0052】
図10のNoC 1020は、いくつかのサポートされるプロトコルおよびデータサイズをパケットトランスポートアーキテクチャへと変換およびパケットトランスポートアーキテクチャから変換することを担当するネットワークインタフェースユニット(NIU)1030を含む。NoCは、スイッチ、幅アダプタ、ファイアウォール、クロックアダプタ、および個々のパイプラインレジスタをさらに含む。これらのコンポーネントは、さまざまなネットワークトポロジ(メッシュ、リング、など)の作成を可能にし、データ幅およびパケットスタイルに対応し、ユーザの要件に基づいて特定の機能を有効化/無効化するようにパラメータ化される。構成可能なパイプラインコンポーネントは、個々のブロックとして、NIUユニット内の多くの場所で利用可能である。NoC 1020のパラメータ化可能かつ構成可能なパイプラインコンポーネントを、本明細書の方法に従って構成することができる。
【0053】
図11を参照すると、図11は、本発明のいくつかの態様および実施形態による複数のパイプラインコンポーネントを有する層状NIU 1030の一例を示している。パイプラインコンポーネントは、ネイティブ層1110、共通層1120、およびパケット層1130で使用される。本発明のいくつかの態様および実施形態によれば、共通層1120は、どのターゲットNIUと通信するかという観点からNIUイニシエータのためのアドレス空間を定義する部分アドレスマップ(PAM)、および他の関連のルーティング情報を含む。これらのパイプラインコンポーネントの各々を、本明細書の方法に従って構成することができる。
【0054】
本発明による実施形態は、装置、方法、またはコンピュータプログラム製品として具現化可能である。したがって、本発明は、完全にハードウェアで構成された実施形態、完全にソフトウェアで構成された実施形態(ファームウェア、常駐ソフトウェア、マイクロコード、などを含む)、あるいはソフトウェアおよびハードウェアの態様を組み合わせた実施形態の形態をとることができ、これらすべてを本明細書において広く「回路」、「モジュール」、または「システム」と呼ぶことができる。さらに、本発明の実施形態は、任意の有形媒体に具現化されたコンピュータプログラム製品の形態をとることができる。
【0055】
1つ以上のコンピュータ使用可能媒体またはコンピュータ可読媒体の任意の組み合わせを利用することができる。例えば、コンピュータ可読媒体は、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)デバイス、読み出し専用メモリ(ROM)デバイス、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)デバイス、ポータブルコンパクトディスク読み出し専用メモリ(CDROM)、光記憶装置、および磁気記憶装置のうちの1つ以上を含むことができる。本発明の動作を実行するためのコンピュータプログラムコードは、1つ以上のプログラミング言語の任意の組み合わせで記述されてよい。そのようなコードは、ソースコードから、コードを実行するデバイスまたはコンピュータに適したコンピュータ可読アセンブリ言語または機械コードへとコンパイルされてよい。
【0056】
実施形態は、クラウドコンピューティング環境において実装されてもよい。本明細書および以下の特許請求の範囲においては、「クラウドコンピューティング」を、仮想化を介して迅速に提供可能であり、最小限の管理労力またはサービスプロバイダ相互作用でリリース可能であり、その後に相応にスケーリング可能である構成可能なコンピューティングリソース(例えば、ネットワーク、サーバ、ストレージ、アプリケーション、およびサービス)の共有プールへのユビキタスかつ好都合なオンデマンドネットワークアクセスを可能にするためのモデルと定義することができる。
【0057】
特定の例を本明細書において説明してきたが、異なる例からの異なるコンポーネントの異なる組み合わせが可能であり得ることに留意されたい。顕著な特徴が、例をよりよく説明するために提示されているが、説明したとおりのこれらの例の機能的態様を変更することなく、特定の特徴を追加、変更、および/または省略できることは明らかである。
【0058】
種々の例が、機械のいずれかまたは組み合わせの挙動を使用する方法である。方法の例は、世界のどこで最も多くの構成ステップが行われても完了する。例えば、本発明の種々の態様および実施形態によれば、IP要素またはユニットは、プロセッサ(例えば、CPUまたはGPU)、ランダムアクセスメモリ(例えばオフチップダイナミックRAMまたはDRAMなどのRAM)、イーサネット(登録商標)、WiFi、3G、4Gロングタームエボリューション(LTE)、5Gなどの有線または無線接続用のネットワークインターフェース、および他の無線インターフェース規格無線機を含む。IPは、必要に応じて、タッチスクリーンセンサ、地理位置情報受信機、マイクロフォン、スピーカ、Bluetooth(登録商標)周辺機器、およびUSBデバイス(とりわけ、キーボードおよびマウスなど)、などの種々の周辺デバイスのための種々のI/Oインターフェースデバイスを含むことができる。RAMデバイスに格納された命令を実行することによって、プロセッサは、本明細書に記載の方法のステップを実行する。
【0059】
いくつかの例は、本明細書に記載の方法のためのそのような命令を格納するように構成された1つ以上の非一時的コンピュータ可読媒体である。必要なコードのいずれかを含む非一時的コンピュータ可読媒体を保持する任意の機械が、一例を実施することができる。いくつかの例は、半導体チップなどの物理デバイス、そのようなデバイスの論理的または機能的挙動のハードウェア記述言語表現、およびそのようなハードウェア記述言語表現を格納するように構成された1つ以上の非一時的コンピュータ可読媒体として実装されてよい。原理、態様、および実施形態を列挙する本明細書の説明は、それらの構造的および機能的等価物の両方を包含する。本明細書において「結合した」として説明される要素は、直接的な接続によって実現されても、1つ以上の他の介在の要素によって間接的に実現されてもよい有効な関係を有する。
【0060】
本発明の精神および範囲(とくには、種々のプログラム可能な特徴)から逸脱することなく、装置に他のさまざまな修正を加えることができることを、当業者であれば理解できるであろう。すべてのそのような修正および変更は、特許請求の範囲の技術的範囲に含まれ、特許請求の範囲によって保護されるように意図される。さらに、当業者は、多数の修正および変形を認識するであろう。修正および変形は、開示された特徴の任意の関連する組み合わせを含む。原理、態様、および実施形態を列挙する本明細書の説明は、それらの構造的および機能的等価物の両方を包含する。本明細書において「結合」または「通信可能に結合した」として説明される要素は、直接接続または1つ以上の他の介在の要素を使用する間接的接続によって実現できる有効な関係を有する。本明細書において別のデバイス、モジュール、または要素と「通信する」または「連絡する」ものとして説明される実施形態は、任意の形態の通信またはリンクを含み、有効な関係を含む。例えば、通信リンクを、有線接続、無線プロトコル、近距離無線プロトコル、または無線周波数識別(RFID)を使用して確立させることができる。
【0061】
図面のすべての例示は、本発明の選択されたバージョンを説明するためのものであり、本発明の範囲を限定することを意図するものではない。したがって、本発明の範囲は、本明細書に図示および説明される例示的な実施形態に限定されることを意図しない。むしろ、本発明の範囲および精神は、特許請求の範囲によって具体化される。
図1
図2
図3
図4A
図4B
図4C
図5
図6
図7
図8
図9
図10
図11
【外国語明細書】