(57)【特許請求の範囲】
【請求項１】
非一時的コンピュータ可読媒体に格納され、強化学習技術を用いた人工知能を使用してチップを設計するためのハードウェアプロセッサおよびメモリを含むコンピューティングデバイスで実行される、コンピュータ可読命令を含むコンピュータ実装方法であって、当該方法は、
ＳｏＣ仕様入力を受け取るステップと、
前記受け取ったＳｏＣ仕様入力およびチップデータベースライブラリから取得した、チップ、チップスケルトン、クロック、入出力、パーティションに関する詳細を抽出することによって、チップ設計を初期化するステップと、
人工知能（ＡＩ）設定の複数のドメインおよび複数のサブドメインを、マルコフ決定過程（ＭＤＰ）、セミマルコフ決定過程（ＳＭＤＰ）、階層的抽象機械（ＨＡＭ）およびＭＡＸ−Ｑの形式で作成して、チップ固有のグラフライブラリを生成するステップであって、前記人工知能設定が、ＡＩエージェント、ＡＩ環境、およびタスクの組み合わせを含み、前記ＡＩ設定が、定義済みの探索および利用アルゴリズム、ならびに強化学習技術を使用して作成されるステップと、
ＡＩエージェントを使用して各ドメインのＱ値を生成するステップであって、当該ＡＩエージェントが、各ドメインのＱ値を抽出するためのタスクを通じて、ＡＩ環境と相互作用するように構成されているステップと、
ＳｏＣの計画を最適化するために、各ドメインおよびサブドメインの前記抽出されたＱ値を、ビッグデータデータベースのＳＭＤＰ  Ｑテーブルの形式で階層型ＳＭＤＰ構造に格納するステップと、
ＳＭＤＰ  Ｑテーブルにおける最上位レベルの最大Ｑ値に対応する、最適なチップアーキテクチャを取得するステップと、
学習および推論のために、前記最適なチップアーキテクチャをデータベースに格納するステップと、
前記最適なチップアーキテクチャおよび前記生成されたチップ固有のグラフライブラリに基づいて、所望のＳｏＣ構成を最適化し生成するステップと、を含む方法。
【請求項２】
前記Ｑテーブルの上位レベルのＱ値を計算するときに、ディープニューラルネットワークを使用して、下位レベルのＳＭＤＰ、ＭＤＰおよびオプションマクロのＱ値の間の関係を決定するステップであって、前記下位レベルのＳＭＤＰ、ＭＤＰおよびオプションマクロは、Ｑテーブルの前記上位レベルのＱ値に関連するステップをさらに含む、請求項１に記載の方法。
【請求項３】
ディープニューラルネットワークが、リカレントネットワーク、畳み込みネットワーク、ＬＳＴＭ、ＧＡＮ、およびこれらのネットワークの階層からなる群から選択される、請求項１に記載の方法。
【請求項４】
前記Ｑテーブルの前記複数のＱ値間の関係関数を推定するための重みの最適値を取得するために、階層型ディープＳＭＤＰネットワーク（ＨＤＳＮ）をトレーニングし、あるいは採用するステップであって、トレーニングによって取得される前記重みの最適値を使用して、階層型ＲＬ設定において、下位レベルのＱ値の関数として上位レベルのＱ値を推定するプロセスを決定するステップをさらに含む、請求項１に記載の方法。
【請求項５】
閾値Ｑ値の適切なレベルを決定して１つのセミマルコフ決定過程（ＳＭＤＰ）を終了し、並行して別のＳＭＤＰを開始することによって、前記ＨＤＳＮをさらにトレーニングし、あるいは採用し、階層型ＲＬ実装の同じレベルでＳＭＤＰ間の同期メカニズムを決定する、請求項１に記載の方法。
【請求項６】
前記強化学習技術は、該強化学習技術が実行されて、ドメインごとに、Ｑ値が事前設定された閾値未満に収束すると、あるいはＳｏＣドメインごとに、Ｑ値の変化が事前設定された閾値未満に減少すると終了する、請求項１に記載の方法。
【請求項７】
前記強化学習技術は、該強化学習技術が実行されて、特定のドメインごとに、定義済みのエピソード数が完了すると終了する、請求項１に記載の方法。
【請求項８】
前記強化学習技術は、該強化学習技術が実行されて、特定のドメインごとに、定義済みの目標性能または定義済みの終了状態に達すると終了する、請求項１に記載の方法。
【請求項９】
前記強化学習技術は、該強化学習技術が実行されて、ドメインごとに定義済みの階層的に最適な状態に達すると終了する、請求項１に記載の方法。
【請求項１０】
最適なチップアーキテクチャを取得する前記ステップが、
各ドメインについて、多目的人工知能（ＡＩ）エージェントを初期化するステップであって、前記多目的ＡＩエージェントが複数の報酬およびＱ値を含むステップと、
各ドメインについて、前記強化学習プロセスをＱ値の形式で初期化するステップであって、各ドメインが、ＮｏＣ生成、電力最適化、インタフェース統合、論理検証、論理合成、レイアウト前のタイミングクロージャ、物理設計、レイアウト後のタイミングクロージャ、および物理検証のうちのいずれかであるステップと、
ＭＤＰ、ＳＭＤＰ、およびＭＤＰの階層のいずれかの初期化プロセスを通じて、各ドメインの最大Ｑ値を決定するステップと、
前記決定された最大Ｑ値から最適なチップアーキテクチャを推定するステップと、をさらに含む、請求項１に記載の方法。
【請求項１１】
前記最大Ｑ値から最適なチップアーキテクチャを取得する前記ステップが、前記最適なＱ値に関連する最適な方策を導出し、当該導出された最適な方策に関連する行動を実行するステップを含む、請求項１に記載の方法。
【請求項１２】
前記データベースが、ビッグデータデータベース、ＭｏｎｇｏＤＢ、およびＳＱＬのうちの少なくとも１つからなる群から選択される、請求項１に記載の方法。
【請求項１３】
前記複数のドメインが、ＳｏＣ通信およびネットワークオンチップ、ＳｏＣ電力最適化、ＳｏＣクロッキング、ＳｏＣ物理設計、ＳｏＣ論理検証、ＳｏＣ物理検証、ＳｏＣタイミング、ＳｏＣ  ＤＲＣ（デザインルールチェック）、ＳｏＣ  ＥＲＣ（電気的ルールチェック）、およびＳｏＣパッケージを含む、請求項１に記載の方法。
【請求項１４】
前記複数のサブドメインが、ＳｏＣスループット最適化、ＳｏＣ動的電力最適化、ＳｏＣタイミング最適化、ＳｏＣ配置最適化、ＳｏＣ安全機能、ＳｏＣセキュリティ機能、配置、フロアプラン、入力／出力およびルーティングを含む、請求項１に記載の方法。
【請求項１５】
ＡＩ設定の複数のドメインおよび複数のサブドメインを作成する前記ステップが、
ドメインおよびサブドメインに関連付けられたタスクを複数のエージェントに設定するステップと、
１つまたは複数のＡＩエージェントに報酬および観測を提供するＡＩ環境を設定するステップと、
前記１つまたは複数のＡＩエージェントを設定して、前記複数のドメインおよびサブドメインに関するフィードバックを受け取るステップと、と含む、請求項１に記載の方法。
【請求項１６】
所望のＳｏＣ構成を最適化して生成する前記ステップが、
階層的に最適なＳＭＤＰ、ＭＤＰまたはオプションマクロまたはすべての組み合わせに基づいて、最適なＳｏＣを設計するための計画プロセスを開始するステップと、
ルックアップテーブルモデル、線形期待モデル、線形ガウスモデル、ガウスプロセスモデル、ディープビリーフネットワークモデルからなる群から選択される、決定論的または確率論的モデルを使用して、ＭＤＰ、ＳＭＤＰおよびオプションのモデルを作成するステップと、
複数のＡＩドメインおよびサブドメインから受け取ったリアルタイムなフィードバックに基づいて導出されたシミュレーションモデルを使用することにより、複数のＡＩドメインの計画および学習を並行して実行するステップであって、前記複数のＡＩドメインが、ＮｏＣ生成、電力最適化、インタフェース統合、論理検証、論理合成、レイアウト前のタイミングクロージャ、物理設計、レイアウト後のタイミングクロージャ、および物理検証を含むステップと、
ＳｏＣに関する学習情報を事前設定された形式で格納することにより、前記計画されたＳｏＣの階層表現を１つまたは複数のデータベースに格納するステップと、
ＳｏＣに関する計画され格納された情報をデータベースから階層的に取得して、当該データベースから新しいＳｏＣをデバッグおよび作成するステップと、を含む、請求項１に記載の方法。
【請求項１７】
強化学習プロセスが、相互に異なる複数のデータ構造で格納された複数のデータベースへのアクセスに基づいて、ＡＩ環境、ＡＩエージェント、タスクおよび実験を含む、シングルステップで、あるいは複数のステップで階層的に実行され、前記複数のデータ構造がグラフ、文書および表を含む、請求項１に記載の方法。
【請求項１８】
一連の環境、エージェント、タスクおよび実験を用いて、ＳｏＣ設計の各ドメインに対してＡＩ設定を作成する、請求項１に記載の方法。
【請求項１９】
ＡＩ設定は、各ドメインおよびサブドメインのエージェントと環境との相互作用を用いて強化学習プロセスを実行するように構成されており、前記強化学習プロセスの出力または結果である学習情報は、ＳｏＣ設計で構成された各ドメインおよびサブドメインに固有のデータベースに、Ｑ値またはニューラルの重みの形式で格納される、請求項１に記載の方法。
【請求項２０】
ＭＤＰおよびＳＭＤＰ、オプションマクロ、ＨＡＭおよびＭａｘ−Ｑ値を抽出し、当該抽出したＭＤＰ、ＳＭＤＰ、オプションマクロ、ＨＡＭおよびＭａｘ−Ｑ値を、ＳｏＣの設計において構成された各ドメインおよびサブドメインの、ＮｏＳＱＬデータベース、ＳＱＬデータベース、またはグラフデータベースに格納するステップをさらに含む、請求項１に記載の方法。
【請求項２１】
抽出したＳＭＤＰ、オプションマクロ、ＭＤＰ、ＨＡＭ、ｍａｘ−Ｑ関数から推論を生成し、当該生成した推論を、文書データベース、グラフデータベースまたはＳＱＬデータベースの形式で格納するステップをさらに含み、文書データベース、グラフデータベースまたはＳＱＬデータベースの形式で格納される前記推論が、抽出されたＭＤＰ、ＳＭＤＰまたはオプションマクロの形式で、あるいはエピソード設定の一連の環境、エージェント、タスクおよび実験として、ドメイン固有のＡＩ設定にロードされ、ＳｏＣの設計ドメインごとの推論が抽出されると、エピソード実験設定またはＭＤＰまたはＳＭＤＰまたはＨＡＭまたはＭＡＸＱ設定の形式の各ＳｏＣドメインのＡＩ設定が、オプションマクロの有無に関わらず相互作用して最適なチップアーキテクチャ（ＯＣＡ）に達する、請求項１に記載の方法。
【請求項２２】
強化学習で使用される方策勾配法に基づいて、抽出されたＭＤＰ、ＳＭＤＰ、オプションマクロ、ＨＡＭ  ＭＡＸＱについて、状態を行動へマッピングする新しい方策を検証し、当該検証された新しい方策を、ＳｏＣ設計におけるＡＩ  ＳＯＣドメインおよび任意のＡＩサブドメインの各々のデータベースに格納するステップをさらに含み、あるドメインに生成された前記新しい方策が、別のＡＩ  ＳｏＣドメインに生成された方策で最適化および反復されてコンテキストが導出され、階層的に最適な、マルチドメイン単位およびサブドメイン単位の最適な方策が取得され、階層的に最適であり、かつ個々に最適である方策が、方程式、関数、ＳＷ、オプションマクロを通じて将来的な使用のために前記データベースに格納されて、すべてのＡＩ  ＳｏＣドメインおよびサブドメインの将来の学習アプリケーションで参照される、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、「システムオンチップ回路を設計するためのコンピュータ実装システムおよびその方法」と題する、２０１７年１月８日に出願された米国仮特許出願第６２／４４３８０３号の優先権を主張し、また、「人工知能および強化学習によるシステムオンチップ（ＳｏＣ）回路の設計システムおよび方法」と題する、２０１７年４月２７日に出願された別の米国非仮特許出願第１５／４９９８３２号の優先権を主張し、その内容は、参照によりその全体が本明細書に含まれる。
【０００２】
本明細書の実施形態は、集積回路（ＩＣ）を設計するための装置／システムに関する。本明細書の実施形態は、特には、システムオンチップ（ＳｏＣ）のようなＩＣを設計するための装置／システムに関する。本明細書の実施形態は、より具体的には、人工知能（ＡＩ）および強化学習技術を使用してシステムオンチップ（ＳｏＣ）を設計するためのシステムおよび方法に関する。
【背景技術】
【０００３】
システムオンチップ（ＳＯＣ）は、電気／電子システムのすべての構成要素を単一のチップに統合した集積回路（ＩＣ）である。集積回路は、通常、とりわけ単一のチップ基板上に埋め込まれた、デジタル機能、アナログ機能、混合信号機能、および無線周波数機能を含む。集積回路は、通常、ハードウェア（例えば、マイクロプロセッサ、およびマイクロコントローラ）に加えて、ハードウェアの機能および実装を制御するために必要なソフトウェアも含む。
【０００４】
通常、ＳｏＣは、そこに含まれるべきハードウェア要素に対応する、事前に認定されたハードウェアブロックから、該ハードウェア要素の機能を制御するソフトウェアドライバと共に開発される。通常、ハードウェア要素は、既知のコンピュータ支援設計（ＣＡＤ）ツールを使用して組み立てられ、対応するソフトウェアモジュールは、ＳｏＣ回路のアーキテクチャの完成後に、ソフトウェアの統合開発環境を使用して統合される。
【０００５】
通常のＳｏＣ回路の設計フローは、手作業で細分化され実装される。さらに、（ＳｏＣ回路の）設計フローを物理設計に変換するプロセスは、（対応する設計フローが）手作業によって実装および細分化される性質のために、（設計関連の）エラーがないわけではない。通常、（ＳｏＣ回路の）設計フローから物理設計への変換の重要な部分を形成する（ＳｏＣ回路の論理設計が設計仕様をコンファームしているかどうかを判断するための）機能検証には、ＳｏＣ回路の設計が複雑であり、またＳｏＣ回路の設計全体を完全に検証するために必要な考えられるテストケース／テストシナリオが膨大である結果、（とりわけ、時間、マンパワーに関する）最大のリソースプールが要求される。通常、ＳｏＣ回路の設計段階では、複数の形式および実装手順の使用とともに、複数の個別のツールが使用される。
【０００６】
現在、ＳｏＣの設計プロセスは、システム仕様、アーキテクチャ設計、機能および論理設計、回路設計、物理設計、物理検証、およびチップの製造を受け取るステップを含む。
さらに、各プロセスは、相関性の高いデータを生成する。現在のところ、チップの設計プロセスにおいて生成されたデータの一般化および学習可能性のために利用可能なシステムおよび方法は存在しない。
【０００７】
ＳｏＣチップの既存の設計プロセスは、手作業でのチップの設計プロセスにＡＩフレームワークを実装することについて教示していない。ＡＩフレームワークは、チップの設計プロセスの自動化を助け、それによって設計プロセスを迅速に、素早く、かつ効率的にする。さらに、ＡＩフレームワークは、チップの設計プロセス中に生成されたデータの学習に役立つ。
【０００８】
したがって、ＳｏＣ回路の設計プロセスに関連するリスクを軽減し、（ＳｏＣ回路の）設計プロセスを費用効果があるものにすることとは別に、設計品質を改善し、かつＳｏＣの設計回路を達成するために費やされる時間を短縮する必要がある。さらに、ＳｏＣ回路の設計および実装に伴う複雑さ、ならびに複数の個別ツールおよび複数の設計形式の利用に伴う複雑さのために、効率性を改善するべくＳｏＣの設計プロセスを自動化する必要がある。さらに、将来的なＳｏＣ設計で使用するための、現在のＳｏＣ設計からの学習可能性、推論および予測のためのシステムが必要である。
【０００９】
本明細書では、上記の欠点、不利益および問題に対処するが、それは、以下の明細書を読解し検討することによって理解されるであろう。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本明細書の実施形態の主な目的は、人工知能に基づいて実装されるＳｏＣの設計フレームワークを開発することである。
【００１１】
本明細書の実施形態の別の目的は、ＳｏＣ回路設計の設計および実装を改善するために強化学習技術を採用した、ＳｏＣの設計フレームワークを提供することである。
【００１２】
本明細書の実施形態のさらに別の目的は、ＳｏＣの設計および実装に最適化された人工知能ベースのフレームワークを提供することである。
【００１３】
本明細書の実施形態のさらに別の目的は、ＳｏＣの将来的な設計に使用することが可能である、ＳｏＣの設計から学習して推論するための方法を提供することでる。
【００１４】
本明細書の実施形態のさらに別の目的は、ＳｏＣの設計および実装のプロセスが自動化された、ＳｏＣの設計フレームワークを提供することである。
【００１５】
本明細書の実施形態のさらに別の目的は、構成が柔軟でモジュール式である、ＳｏＣの設計フレームワークを提供することである。
【００１６】
本明細書の実施形態のさらに別の目的は、ＳｏＣの設計および実装プロセスに関連するリスクおよび不確実性が低減された、ＳｏＣの設計フレームワークを提供することである。
【００１７】
本明細書の実施形態のさらに別の目的は、最適なＳｏＣ構成を生成する、ＳｏＣの設計フレームワークを提供することである。
【００１８】
本明細書の実施形態のさらに別の目的は、ＳｏＣ回路のアーキテクチャに関する容易な洞察を提供してＳｏＣ回路の容易なカスタマイズを可能にする、ＳｏＣの設計フレームワークを提供することである。
【００１９】
本明細書の実施形態におけるこれらの、あるいは他の目的および利点は、添付の図面と併せて以下の詳細な説明から明らかになるであろう。
【課題を解決するための手段】
【００２０】
本明細書の実施形態は、人工知能に組み込まれて、強化学習技術を適応させて実装するように構成された、ＳｏＣの設計フレームワークを開示している。本明細書の実施形態に開示されるＳｏＣの設計フレームワークは、ＳｏＣ回路の設計に関連する意思決定プロセスにおける複雑さを軽減するように設計されている。ＳｏＣ回路の設計に関連する決定事項は多数あり、通常は異種性である。本明細書の実施形態におけるＳｏＣの設計フレームワークは、多数の異種性の決定を一般化された同種の決定に一般化するように構成されており、一般化された決定は、ＳｏＣ回路の設計を完成させて実装するために利用される。本明細書の実施形態に開示されるＳｏＣの設計フレームワークは、人工知能と強化学習原理との組み合わせを利用して、ＳｏＣ回路の設計および実装に関する最適な決定に到達するように設計されている。
【００２１】
本明細書の実施形態によれば、強化学習技術を用いた人工知能を使用してＳｏＣを設計するための方法が提供される。ＳｏＣ回路全体は、プロセッサ、デジタル設計、回路設計プロセスとともに、強化学習実験の実施に続いて、階層モデルの形式で（最適性を重視して）表される。ＳｏＣ仕様入力が受け取られる。さらに、この方法は、受け取ったＳｏＣ仕様入力およびチップデータベースライブラリから取得した、チップ、チップスケルトン、クロック、入出力、パーティションに関する詳細を抽出することによって、（ＳｏＣの）チップ設計を初期化するステップを含む。ライブラリ初期化ステップでは、ファウンドリのテクノロジライブラリ、ＡＩ  ＳＯＣＤデータベースの標準インタフェースＩＰ、データベースのプロセッサＩＰ、および再利用されるその他の標準ＩＰなどの標準ライブラリがチップデータベースにロードされる。これらのライブラリは、ＳｏＣ固有の入力を解析した後にチップデータベースにまとめられる。ＳｏＣ仕様入力は、チップの仕様、または以前のチップに加えてテキストもしくはｘｍｌ形式のディスクリプションにおける変更を表すデータベースのうちの少なくとも１つである。初期化後、人工知能（ＡＩ）設定の複数のドメインおよび複数のサブドメインが、ＭＤＰ、ＳＭＤＰ、ＨＡＭおよびＭＡＸ−Ｑの形式で作成され、チップ固有のグラフライブラリが生成される。さらに、人工知能設定には、ＡＩエージェント、ＡＩ環境、およびタスクの組み合わせが含まれる。また、ＡＩ設定は、定義済みの探索と利用のアルゴリズム、および強化学習技術を使用して作成される。さらに、多目的ＡＩエージェントは、多数のチップ設計にわたって、かつ現在のチップ設計の反復回数にわたって抽出された複数のドメイン間の関係を保持する、グラフデータベースによって提供されるデータを組み込むように構成されている。
【００２２】
本明細書の一実施形態によれば、ＡＩエージェントは、グラフデータベースと、Ｑ値およびニューラルネットワークの重みを保持するデータベースと、に推論をフィードバックするように構成されている。ＡＩエージェントの例には、限定しないが、ＳｏＣ  Ｎｏｃエージェント、ＳｏＣ  電力エージェント、ＳｏＣ物理エージェント、ＳｏＣマルチプロセッサエージェント、ＳｏＣセキュリティエージェント、およびＳｏＣクロックエージェントが含まれる。ＡＩエージェント（以下、ＡＩエージェントという）は、各ドメインのＱ値を生成するように構成されている。ＡＩエージェントは、各ドメインのＱ値を抽出するためのタスクを通じて、ＡＩ環境と相互作用するように構成されている。その後、ＳｏＣの計画を最適化するために、各ドメインおよびサブドメインの抽出されたＱ値は、ビッグデータベースのＳＭＤＰ  Ｑテーブルの形式で階層型ＳＭＤＰ構造に格納される。
【００２３】
本明細書の一実施形態によれば、強化学習プロセスが各ドメインに対して開始され、Ｑ値が抽出される。ドメインは、ＮｏＣ生成、電力最適化、インタフェース統合、論理検証、論理合成、レイアウト前のタイミングクロージャ、物理設計、レイアウト後のタイミングクロージャおよび物理検証のいずれかである。続いて、ＭＤＰ、ＳＭＤＰ、およびＭＤＰの階層のいずれかの初期化プロセスを通じて、各ドメインの最大Ｑ値が決定される。その後、ＳＭＤＰ  Ｑテーブルの最上位レベルの最大Ｑ値に対応する、最適なチップアーキテクチャが推定される。その後、最適なチップアーキテクチャは、学習および推論のためにデータベースに格納される。最適なチップアーキテクチャおよび生成されたチップ固有のグラフライブラリに基づいて、所望のＳｏＣ構成が生成されて最適化される。最大Ｑ値から最適なチップアーキテクチャを取得するステップは、最適なＱ値に関連する最適な方策を導出し、当該導出された最適な方策に関連する行動を実行することを含む。
【００２４】
本明細書の一実施形態によれば、Ｑテーブルの上位レベルのＱ値が計算されるときに、下位レベルのＳＭＤＰ、ＭＤＰおよびオプションマクロのＱ値の間の関係が、ディープニューラルネットワークを使用して決定される。下位レベルのＳＭＤＰ、ＭＤＰおよびオプションマクロのＱ値は、Ｑテーブルの上位レベルのＱ値に関連している。ディープニューラルネットワークは、回帰ネットワーク、畳み込みネットワーク、ＬＳＴＭ、ＧＡＮおよびこれらのネットワークの階層からなる群から選択される。Ｑテーブルの複数のＱ値間の関係関数を推定するための重みの最適値を取得するために、階層型ディープＳＭＤＰネットワーク（ＨＤＳＮ）がトレーニングされ、あるいは採用される。トレーニングによって取得される重みの最適値を使用して、階層型ＲＬ設定において、上位レベルのＱ値を下位レベルのＱ値の関数として推定するプロセスが決定される。閾値Ｑ値の適切なレベルを決定して１つのセミマルコフ決定過程（ＳＭＤＰ）を終了し、並行して別のＳＭＤＰを開始することによって、ＨＤＳＮがさらにトレーニングされ、あるいは採用され、階層型ＲＬ実装の同じレベルでＳＭＤＰ間の同期メカニズムが決定される。
【００２５】
本明細書の一実施形態によれば、強化学習技術は、該強化学習技術が実行されて、ドメインごとに、Ｑ値が事前設定された閾値未満に収束すると、あるいはＳｏＣドメインごとに、Ｑ値の変化が事前設定された閾値未満に減少すると終了する。あるいは、強化学習技術は、該強化学習技術が実行されて、特定のドメインごとに、定義済みのエピソード数が完了すると終了する。本明細書の一実施形態によれば、強化学習技術は、該強化学習技術が実行されて、特定のドメインごとに、定義済みの目標性能または定義済みの終了状態に達すると終了する。強化学習技術は、該強化学習技術が実行されて、ドメインごとに定義済みの階層的に最適な状態に達すると終了する。
【００２６】
本明細書の一実施形態によれば、最適なチップアーキテクチャを取得するステップは、各ドメインについて、多目的人工知能（ＡＩ）エージェントを初期化することをさらに含む。さらに、強化学習プロセスは、ドメインごとにＱ値の形式で初期化される。各ドメインの最大Ｑ値は、ＭＤＰ、ＳＭＤＰ、およびＭＤＰの階層のいずれかの初期化プロセスを通じて決定される。決定された最大Ｑ値から、最適なチップアーキテクチャが推定される。最大Ｑ値から最適なチップアーキテクチャを取得するステップは、最適なＱ値に関連する最適な方策を導出し、導出された最適な方策に関連する行動を実行することを含む。データベースは、ビッグデータデータベース、ＭｏｎｇｏＤＢ、およびＳＱＬのうちの少なくとも１つからなる群から選択される。
【００２７】
本明細書の一実施形態によれば、複数のドメインは、ＳｏＣ通信およびネットワークオンチップ、ＳｏＣ電力最適化、ＳｏＣクロッキング、ＳｏＣ物理設計、ＳｏＣ論理検証、ＳｏＣ物理検証、ＳｏＣタイミング、ＳｏＣ  ＤＲＣ（デザインルールチェック）、ＳｏＣ  ＥＲＣ（電気的ルールチェック）、およびＳｏＣパッケージを含む。複数のサブドメインは、ＳｏＣスループット最適化、ＳｏＣ動的電力最適化、ＳｏＣタイミング最適化、ＳｏＣ配置最適化、ＳｏＣ安全機能、ＳｏＣセキュリティ機能、配置、フロアプラン、入力／出力およびルーティングを含む。
【００２８】
本明細書の一実施形態によれば、ＡＩ設定の複数のドメインおよび複数のサブドメインを作成するステップは、ドメインおよびサブドメインに関連付けられたタスクを複数のエージェントに設定することを含む。さらに、ＡＩ環境は、１つまたは複数のＡＩエージェントに報酬および観測を提供するように設定される。また、１つまたは複数のＡＩエージェントは、複数のドメインおよびサブドメインに関するフィードバックを受け取るように設定される。
【００２９】
本明細書の一実施形態によれば、所望のＳｏＣ構成を最適化して生成するステップは、階層的に最適なＳＭＤＰ、ＭＤＰまたはオプションマクロまたはすべての組み合わせに基づいて、最適なＳｏＣを設計するための計画プロセスを開始することを含む。さらに、ＭＤＰ、ＳＭＤＰおよびオプションのモデルは、ルックアップテーブルモデル、線形期待モデル、線形ガウスモデル、ガウスプロセスモデル、およびディープビリーフネットワークモデルからなる群から選択される、決定論的または確率論的モデルを使用して作成される。また、複数のＡＩドメインおよびサブドメインから受け取ったリアルタイムなフィードバックに基づいて導出されたシミュレーションモデルを使用することにより、複数のＡＩドメインの計画および学習プロセスが並行して実行される。複数のＡＩドメインには、ＮｏＣ生成、電力最適化、インタフェース統合、論理検証、論理合成、レイアウト前のタイミングクロージャ、物理設計、レイアウト後のタイミングクロージャ、および物理検証が含まれる。ＳｏＣについて学習した情報を事前設定された形式で格納することによって、計画されたＳｏＣの階層表現が１つまたは複数のデータベースに格納される。その後、ＳｏＣに関する計画され格納された情報は、データベースから階層的に取得されて、当該データベースから新しいＳｏＣ設計がデバッグおよび作成される。
【００３０】
本明細書の一実施形態によれば、強化学習プロセスは、相互に異なるデータ構造で格納された複数のデータベースへのアクセスに基づいて、ＡＩ環境、ＡＩエージェント、タスクおよび実験を含む、シングルステップで、あるいは複数のステップで階層的に実行される。複数のデータ構造は、グラフ、文書および表を含む。ＡＩ設定は、一連の環境、エージェント、タスクおよび実験を用いて、ＳｏＣ設計の各ドメインに対して作成される。ＡＩ設定は、各ドメインおよびサブドメインのエージェントと環境との相互作用を用いて、強化学習プロセスを実行するように構成されている。学習情報は、強化学習プロセスの出力または結果であり、ＳｏＣの設計において構成された各ドメインおよびサブドメインに固有のデータベースに、Ｑ値またはニューラルの重みの形式で格納される。
【００３１】
本明細書の一実施形態によれば、ＭＤＰおよびＳＭＤＰ、オプションマクロ、ＨＡＭおよび最大Ｑ値が抽出されて、ＳｏＣの設計において構成された各ドメインおよびサブドメインについて、データベース（例えば、ＮｏＳＱＬデータベース、ＳＱＬデータベースまたはグラフデータベース）に格納される。
【００３２】
本明細書の一実施形態によれば、推論は、抽出されたＳＭＤＰ、オプションマクロ、ＭＤＰ、ＨＡＭ、ｍａｘ−Ｑ関数から生成される。生成された推論は、文書データベース、グラフデータベースまたはＳＱＬデータベースの形式で格納される。文書データベース、グラフデータベースまたはＳＱＬデータベースの形式で格納された推論は、抽出されたＭＤＰ、ＳＭＤＰまたはオプションマクロの形式で、あるいはエピソード設定の一連の環境、エージェント、タスクおよび実験として、ドメイン固有のＡＩ設定にロードされる。ＳｏＣの設計ドメインごとの推論が抽出されると、エピソード実験設定またはＭＤＰまたはＳＭＤＰまたはＨＡＭまたはＭＡＸＱ設定の形式の各ＳｏＣドメインのＡＩ設定は、オプションマクロの有無に関わらず相互作用して最適なチップアーキテクチャ（ＯＣＡ）に達する。
【００３３】
本明細書の一実施形態によれば、強化学習で使用される方策勾配法に基づいて、抽出されたＭＤＰ、ＳＭＤＰ、オプションマクロ、ＨＡＭ  ＭＡＸＱについて、状態を行動へマッピングする新しい方策が検証され、検証された新しい方策は、ＳｏＣの設計におけるＡＩ  ＳＯＣドメインおよび任意のＡＩサブドメインの各々のデータベースに格納される。あるドメインに生成された新しい方策は、別のＡＩ  ＳｏＣドメインに生成された方策で最適化および反復されてコンテキストが導出され、階層的に最適な、マルチドメイン単位およびサブドメイン単位の最適な方策が取得される。階層的に最適であり、かつ個々に最適である方策は、方程式、関数、ＳＷ、オプションマクロを通じて将来的な使用のためにデータベースに格納され、すべてのＡＩ  ＳｏＣドメインおよびサブドメインの将来の学習アプリケーションで参照される。
【００３４】
本明細書の一実施形態によれば、ＳＭＤＰの階層を同期させることによってＳｏＣを設計するための方法が開示されている。この方法は、仕様またはデータベースからのチップトポロジを初期化するステップを含む。さらに、チップトポロジは、ＨＡＭ制約を伴うマルコフ決定過程（ＭＤＰ）に関連付けられる。その後、チップトポロジは、複数のＳＭＤＰまたはＭＤＰに関連付けられる。複数のＳＭＤＰまたはＭＤＰが有効化される。その後、事前設定されたＱ値または事前設定された目標が達成されて、複数の有効化されたＳＭＤＰまたはＭＤＰが終了すると、複数のＳＭＤＰまたはＭＤＰが同期される。同じレベルの複数のサブドメインが有効化される。さらに、事前設定されたＱ値または事前設定された目標が達成されて、複数の有効化されたサブドメインが終了すると、複数のサブドメインが同期される。その後、複数のＳＭＤＰの物理検証が開始する。これにより、ＳｏＣを設計するための最適なチップアーキテクチャが取得される。
【００３５】
本明細書の一実施形態によれば、ＳＭＤＰが互いに依存関係を有しない場合（例えば、有効電力のＳＭＤＰと配置のＳＭＤＰ）、同期は、ただ１つのＳＭＤＰが他のＳＭＤＰと通信してそれが最終状態に達したことを通知する。同期は、ＳＭＤＰが最終状態に達したことを示唆する、グローバルブロードキャスト信号の１つである。同期プロセスには、ＳＭＤＰタイミングあるいはＳＭＤＰの検証でバグが見つかったときに、終了したＳＭＤＰに、タイムクロージャのメトリックのような最終結果をグローバルデータベースにアップロードさせることも含まれる。あるいは、ＳＭＤＰが他のＳＭＤＰに依存している場合、これらのＳＭＤＰの各々は、ロックステップまたは反復ループで動作する。ＳＭＤＰが他のＳＭＤＰと通信する場合（例えば、論理検証および論理設計）、同期プロセスは個別の同期状態を含む。各ＳＭＤＰは、それぞれの最終結果を伝え、バグ修正、最適化を待ち、その設計がＰＤまたは合成に送るのに最適な形状であることを要求する。本明細書の一実施形態によれば、同期は、２つ以上のＳＭＤＰを使用し、多くのＳＭＤＰ、オプションマクロ、およびＭＤＰの間で最終結果を共有することを含む。
【００３６】
本明細書の実施形態のこれらおよび他の態様は、以下の説明および添付の図面と併せて検討することにより、よりよく認識され、理解されるであろう。しかしながら、以下の説明では、好ましい実施形態およびその多数の具体的な詳細が示されているが、限定としてではなく例示として与えられていることを理解されたい。本発明の精神から逸脱することなく、本明細書の実施形態の範囲内で多くの変更および修正を加えることが可能であり、本明細書の実施形態はそのような修正すべてを含む。
【００３７】
当業者であれば、他の目的、特徴および利点は、以下の説明および添付の図面から明らかになるであろう。
【図面の簡単な説明】
【００３８】
【図１】本明細書の一実施形態による、強化学習技術を用いた人工知能を使用してＳｏＣを設計するための方法を説明するフローチャートである。
【図２】本明細書の一実施形態による、階層型多目的ＡＩを用いたＡＩ駆動の設計設定を使用したＳｏＣを設計するための方法を説明するフローチャートである。
【図３】本明細書の一実施形態による、ＳｏＣの設計フレームワークにおけるドメインおよびサブドメインごとに設定された人工知能（ＡＩ）の論理設計のブロック図である。
【図４】本明細書の一実施形態による、ＳｏＣの設計フレームワークに実装されたＡＩフレームワークの機能ブロック図である。
【図５】本明細書の一実施形態による、階層型強化学習用に構成されたＡＩフレームワークのブロック図である。
【図６】本明細書の一実施形態による、ＳｏＣの設計フレームワークにおけるメインＭＤＰとＳＭＤＰとの間の相互作用プロセスを説明するフローチャートである。
【図７】本明細書の一実施形態による、ＳｏＣの設計フレームワークにおけるＳｏＣの各設計ドメインについて、Ｑ値の収束時に強化学習（ＲＬ）プロセスを終了させる方法を説明するフローチャートである。
【図８】本明細書の一実施形態による、ＳｏＣの設計フレームワークにおけるＳｏＣの各設計ドメインについて、定義済みの実験数が個別に完了したときに強化学習（ＲＬ）プロセスを終了させる方法を説明するフローチャートである。
【図９】本明細書の一実施形態による、ＳｏＣの設計フレームワークにおけるＳｏＣの各設計ドメインについて、定義済みの目標性能または目標状態に個々に到達し、あるいはそれを個々に達成したときに強化学習（ＲＬ）プロセスを終了させる方法を説明するフローチャートである。
【図１０】本明細書の一実施形態による、トップダウンアプローチによるＳｏＣ設計フレームワークにおけるＳｏＣの各設計ドメインについて、個別に導出された定義済みの階層的に最適な状態または目標に到達し、あるいはそれを達成したときに強化学習（ＲＬ）プロセスを終了させる方法を説明するフローチャートを示す図である。
【図１１Ａ】本明細書の一実施形態による、ＳｏＣ設計プロセスにおいてＳＭＤＰの階層を同期させる方法を説明するフローチャートを、図１１Ｂとともに示す図である。
【図１１Ｂ】本明細書の一実施形態による、ＳｏＣ設計プロセスにおいてＳＭＤＰの階層を同期させる方法を説明するフローチャートを、図１１Ａとともに示す図である。
【図１２】本明細書の一実施形態による、ＳｏＣの設計プロセスにおいてＳＱＬスキーマまたは文書データベースに格納される階層型Ｑテーブルの平面図または概略図である。
【図１３】本明細書の一実施形態による、ＳｏＣの設計プロセスにおけるＨＤＳＮでの経験再生に使用されるディープニューラルネットワークのブロック図または概略図である。
【図１４】本明細書の一実施形態による、ＳｏＣの設計プロセスにおける階層型強化学習のＡＩフローを使用して最適なチップアーキテクチャ（ＯＣＡ）を生成するためのシステムの機能ブロック図である。
【図１５】本明細書の一実施形態による、強化学習プロセスを用いたＳｏＣの設計プロセスにおいてドメインごとにＭＤＰを抽出する方法を説明するフローチャートである。
【図１６】本明細書の一実施形態による、ＳｏＣの設計プロセスにおけるビッグデータフレームワークの機能ブロック図である。
【図１７】本明細書の一実施形態による、ＳｏＣの設計プロセスにおけるＳｏＣドメインおよびサブドメインを抽象化する方法を説明するフローチャートである。
【図１８】本明細書の一実施形態による、ＳｏＣ設計のためのデータベースアーキテクチャのブロック図である。
【発明を実施するための形態】
【００３９】
本明細書における実施形態の特定の特徴は、いくつかの図面に示されているが、他の図面には示されていない。これは、本明細書の実施形態に従って各特徴を他の特徴のうちのいずれかまたはすべてと組み合わせることができるがために、単に便宜上行ったものである。
【００４０】
以下の詳細な説明において、本明細書の一部を形成する添付の図面を参照して、実施され得る特定の実施形態を例示する。これらの実施形態は、当業者が実施形態を実施できるように十分詳細に説明されており、実施形態の範囲から逸脱することなく他の変更がなされ得ることが理解されよう。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【００４１】
本明細書の実施形態は、ＡＩおよび強化学習（ＲＬ）技術を使用してＳｏＣを設計するためのシステムおよび方法を開示する。強化学習は、ＳｏＣの関連情報にアクセスするために、環境、タスク、エージェントおよび実験を含む、シングルステップで、あるいは複数のステップで階層的に実行される。本明細書の実施形態は、人工知能（ＡＩ）エージェントと環境との間の相互作用を開示する。ＡＩエージェントは、当該相互作用から学習して、ＳｏＣの回路設計の実装を計画するように構成されている。
【００４２】
強化学習は、強化学習エージェントが各入力状態での周囲の環境からのフィードバックを通して学習するように設計または構成されている、一種の機械学習である。強化学習エージェントは、あらゆる状態で適切な行動を実行することによって、ある状態から別の状態へトラバースし、それによって状態からのトラバースに加えて、環境からの観測／フィードバックおよび報酬を受け取るように構成されている。強化学習（ＲＬ）システムの目的は、強化学習エージェントが、あらゆる状態で実行される行動に応じてあらゆる状態でフィードバックおよび報酬を受けながら、複数の状態間をトラバースすることを保証する学習プロセスを通して、未知の環境における強化学習エージェントの総報酬を最大化することである。
【００４３】
さらに、強化学習システムの必須要素には、方策、報酬関数、および状態価値関数が含まれる。方策は通常、強化学習エージェントと対応する強化学習環境との間の相互作用のためのフレームワークを定義する。通常、強化学習エージェントがとる行動、および強化学習環境との相互作用中に強化学習エージェントがトラバースする状態は、方策によって管理される。行動が実行されると、エージェントは環境内である状態から別の状態に移動し、状態および行動の組み合わせの品質によって行動価値関数が定義される。行動価値関数（Ｑπ）は、（好ましくは選択された）行動の期待効用を決定する。報酬関数は、現在の行動、状態、および各状態で受け取った報酬に関してエージェントに知らせる。通常、報酬は、環境により直接的に提供されるが、価値は、存続期間全体にわたってエージェントによって行われる一連の観測から推定および再推定される。したがって、強化学習アルゴリズムは、状態価値関数を推定することを目的としている。
【００４４】
Ｑ学習は、強化学習を実行するために使用される手法の１つである。Ｑ学習では、エージェントは、該エージェントと環境との相互作用の履歴から最適な方策を学習しようとする。エージェントは、達成される報酬を最大化し、あるいは発生するコストを最小化するように、環境内で行動を実行することを習得する。Ｑ学習は、所与の状態で所与の行動をとり、その後最適な方策に従う、という予想される有用性をさらに提供する行動価値関数を推定する。したがって、エージェントは、最適な方策を見つけることによって最大の報酬を達成するための行動を実行することが可能になる。
【００４５】
本明細書の一実施形態によれば、ＳｏＣの設計設定は、ネットワークオンチップ（ＮｏＣ）生成、電力最適化、インタフェース統合、論理検証、論理合成、レイアウト前のタイミングクロージャ、物理設計、レイアウト後のタイミングクロージャおよび物理的検証、ＳｏＣタイミング、ＳｏＣのデザインルールチェック（ＤＲＣ）、ＳｏＣの電気的ルールチェック（ＥＲＣ）、ならびにＳｏＣパッケージなどの、複数のドメインに分類される。さらに、ＳｏＣの設計設定における各ドメインは、ＳｏＣスループット最適化、ＳｏＣ動的電力最適化、ＳｏＣタイミング最適化、ＳｏＣ配置最適化、ＳｏＣ安全機能、ＳｏＣセキュリティ機能、配置、フロアプラン、入力／出力およびルーティングなどの複数のサブドメインに分割される。
【００４６】
本明細書の一実施形態によれば、ＳｏＣの回路に関連すると考えられる各ドメイン（および任意の対応するサブドメイン）は、それぞれのまたは対応するＡＩ環境、ＡＩ論理設計タスク、ＡＩ学習エージェント、およびＡＩ実験で設定される。続いて、各ドメインに対するＡＩ学習エージェントとＡＩ環境との間の相互作用が捕捉され、ドメイン固有のＱ値またはニューラルの重みの形式でＱテーブルまたはデータベースに格納される。
【００４７】
本明細書の実施形態は、人工知能が組み込まれて強化学習技術を適応させ実施するように構成されたＳｏＣの設計フレームワークを開示している。本明細書の実施形態に開示されるＳｏＣの設計フレームワークは、ＳｏＣ回路の設計に関連する意思決定プロセスにおける複雑さを軽減するように設計されている。ＳｏＣ回路の設計に関連する意思決定は多数あり、通常は異種性である。本明細書の実施形態のＳｏＣの設計フレームワークは、多種の異種性の決定を、ＳｏＣ回路の設計を完成させて実施するために現在利用されている、複数の一般化された同種の決定に一般化するように構成されている。本明細書の実施形態に開示されるＳｏＣの設計フレームワークは、人工知能と強化学習原理との組み合わせを利用して、ＳｏＣ回路の設計および実装に関する最適な決定に到達するように設計されている。
【００４８】
本明細書の一実施形態によれば、強化学習技術を用いた人工知能を使用してＳｏＣを設計するための方法が提供される。ＳｏＣ回路全体は、プロセッサ、デジタル設計、回路設計プロセスとともに、強化学習実験の実装に続いて、階層モデルの形式で（最適性を重視して）表される。ＳｏＣ仕様入力が受け取られる。さらに、この方法は、受け取ったＳｏＣ仕様入力およびチップデータベースライブラリから取得した、チップ、チップスケルトン、クロック、入出力、パーティションに関する詳細を抽出することによって、（ＳｏＣの）チップ設計を初期化するステップを含む。ライブラリ初期化ステップでは、ファウンドリのテクノロジライブラリ、ＡＩ  ＳＯＣＤデータベースの標準インタフェースＩＰ、データベースのプロセッサＩＰ、および再利用されるその他の標準ＩＰなどの標準ライブラリが、チップデータベースにロードされる。これらのライブラリは、ＳｏＣ固有の入力を解析した後にチップデータベースにまとめられる。ＳｏＣ仕様入力は、チップの仕様、または以前のチップに加えてテキストもしくはｘｍｌフォーマットのディスクリプションにおける変更を表すデータベースのうちの少なくとも１つである。初期化後、人工知能（ＡＩ）設定の複数のドメインおよび複数のサブドメインが、ＭＤＰ、ＳＭＤＰ、ＨＡＭおよびＭＡＸ−Ｑの形態で作成されて、チップ固有のグラフライブラリが生成される。さらに、人工知能設定には、ＡＩエージェント、ＡＩ環境、およびタスクの組み合わせが含まれる。また、ＡＩ設定は、定義済みの探索と活用アルゴリズム、および強化学習技術を使用して作成される。さらに、多目的ＡＩエージェントは、多数のチップ設計にわたって、かつ現在のチップ設計の反復回数にわたって抽出された複数のドメイン間の関係を保持する、グラフデータベースによって提供されるデータを組み込むように構成されている。
【００４９】
本明細書の一実施形態によれば、ＡＩエージェントは、グラフデータベースと、Ｑ値およびニューラルネットワークの重みを保持するデーベースと、に推論をフィードバックするように構成されている。ＡＩエージェントの例には、限定しないが、ＳｏＣ  Ｎｏｃエージェント、ＳｏＣ  電力エージェント、ＳｏＣ物理エージェント、ＳｏＣマルチプロセッサエージェント、ＳｏＣセキュリティエージェントおよびＳｏＣクロックエージェントが含まれる。ＡＩエージェント（以下、ＡＩエージェントという）は、各ドメインについてＱ値を生成するように構成されている。ＡＩエージェントは、各ドメインのＱ値を抽出するためのタスクを通じて、ＡＩ環境と相互作用するように構成されている。その後、ＳｏＣの計画を最適化するために、各ドメインおよびサブドメインの抽出されたＱ値は、ビッグデータベースのＳＭＤＰ  Ｑテーブルの形式で階層型ＳＭＤＰ構造に格納される。
【００５０】
本明細書の一実施形態によれば、強化学習プロセスが各ドメインに対して開始され、Ｑ値が抽出される。ドメインは、ＮｏＣ生成、電力最適化、インタフェース統合、論理検証、論理合成、レイアウト前のタイミングクロージャ、物理設計、レイアウト後のタイミングクロージャおよび物理検証のいずれかである。続いて、ＭＤＰ、ＳＭＤＰ、およびＭＤＰの階層のいずれかの初期化プロセスを通じて、各ドメインの最大Ｑ値が決定される。その後、ＳＭＤＰ  Ｑテーブルの最上位レベルの最大Ｑ値に対応する、最適なチップアーキテクチャが推定される。その後、最適なチップアーキテクチャは、学習および推論のためにデータベースに格納される。最適なチップアーキテクチャおよび生成されたチップ固有のグラフライブラリに基づいて、所望のＳｏＣ構成が生成されて最適化される。最大Ｑ値から最適なチップアーキテクチャを取得するステップは、最適Ｑ値に関連する最適な方策を導出し、導出された最適な方策に関連する行動を実行することを含む。
【００５１】
本明細書の一実施形態によれば、Ｑテーブルの上位レベルのＱ値が計算されるときに、下位レベルのＳＭＤＰ、ＭＤＰおよびオプションマクロＱ値の間の関係が、ディープニューラルネットワークを使用して決定される。下位レベルのＳＭＤＰ、ＭＤＰおよびオプションマクロＱ値は、Ｑテーブルの上位レベルのＱ値に関連している。ディープニューラルネットワークは、回帰ネットワーク、畳み込みネットワーク、ＬＳＴＭ、ＧＡＮおよびこれらのネットワークの階層からなるグループから選択される。Ｑテーブルの複数のＱ値間の関係関数を推定するための重みの最適値を取得するために、階層型ディープＳＭＤＰネットワーク（ＨＤＳＮ）がトレーニングされ、あるいは採用される。トレーニングによって取得される重みの最適値を使用して、階層型ＲＬ設定において、上位レベルのＱ値を下位のＱ値の関数として推定するプロセスが決定される。閾値Ｑ値の適切なレベルを決定して１つのセミマルコフ決定過程（ＳＭＤＰ）を終了し、並行して別のＳＭＤＰを開始することによって、ＨＤＳＮがさらにトレーニングされ、あるいは採用され、階層型ＲＬ実装の同じレベルでＳＭＤＰ間の同期メカニズムが決定される。
【００５２】
本明細書の一実施形態によれば、強化学習技術は、該強化学習技術が実行されて、ドメインごとに、Ｑ値が事前設定された閾値未満に収束すると、あるいはＳｏＣドメインごとに、Ｑ値の変化が事前設定された閾値未満に減少すると終了する。あるいは、強化学習技術は、該強化学習技術が実行されて、特定のドメインごとに、定義済みのエピソード数が完了すると終了する。本明細書の一実施形態によれば、強化学習技術は、該強化学習技術が実行されて、特定のドメインごとに、定義済みの目標性能または定義済みの終了状態に達すると終了する。強化学習技術は、該強化学習技術が実行されて、ドメインごとに定義済みの階層的に最適な状態に達すると終了する。
【００５３】
本明細書の一実施形態によれば、最適なチップアーキテクチャを取得するステップは、各ドメインについて、多目的人工知能（ＡＩ）エージェントを初期化することをさらに含む。さらに、強化学習プロセスは、ドメインごとにＱ値の形式で初期化される。各ドメインの最大Ｑ値は、ＭＤＰ、ＳＭＤＰ、およびＭＤＰの階層のうちのいずれかの初期化プロセスを通じて決定される。決定された最大Ｑ値から、最適なチップアーキテクチャが推定される。最大Ｑ値から最適なチップアーキテクチャを取得するステップは、最適なＱ値に関連する最適な方策を導出し、導出された最適な方策に関連する行動を実行することを含む。データベースは、ｂｉｇｄａｔａデータベース、ＭｏｎｇｏＤＢ、およびＳＱＬのうちの少なくとも１つからなる群から選択される。
【００５４】
本明細書の一実施形態によれば、複数のドメインは、ＳｏＣ通信およびネットワークオンチップ、ＳｏＣ電力最適化、ＳｏＣクロッキング、ＳｏＣ物理設計、ＳｏＣ論理検証、ＳｏＣ物理検証、ＳｏＣタイミング、ＳｏＣ  ＤＲＣ（デザインルールチェック）、ＳｏＣ  ＥＲＣ（電気的ルールチェック）、およびＳｏＣパッケージを含む。複数のサブドメインは、ＳｏＣスループット最適化、ＳｏＣ動的電力最適化、ＳｏＣタイミング最適化、ＳｏＣ配置最適化、ＳｏＣ安全機能、ＳｏＣセキュリティ機能、配置、フロアプラン、入力／出力およびルーティングを含む。
【００５５】
本明細書の一実施形態によれば、ＡＩ設定の複数のドメインおよび複数のサブドメインを作成するステップは、ドメインおよびサブドメインに関連付けられたタスクを複数のエージェントに設定することを含む。さらに、ＡＩ環境は、１つまたは複数のＡＩエージェントに報酬および観測を提供するように設定される。また、１つまたは複数のＡＩエージェントは、複数のドメインおよびサブドメインに関するフィードバックを受け取るように設定される。
【００５６】
本明細書の一実施形態によれば、所望のＳｏＣ構成を最適化して生成するステップは、階層的に最適なＳＭＰＤ、ＭＤＰまたはオプションマクロまたはすべての組み合わせに基づいて、最適なＳｏＣを設計するための計画プロセスを開始することを含む。さらに、ＭＤＰ、ＳＭＤＰおよびオプションのモデルは、ルックアップテーブルモデル、線形期待モデル、線形ガウスモデル、ガウスプロセスモデル、およびディープビリーフネットワークモデルからなる群から選択される、決定論的または確率論的モデルを使用して作成される。また、複数のＡＩドメインおよびサブドメインから受け取ったリアルタイムなフィードバックに基づいて導出されたシミュレーションモデルを使用することにより、複数のＡＩモデルの計画および学習プロセスが並行して実行される。複数のＡＩドメインには、ＮｏＣ生成、電力最適化、インタフェース統合、論理検証、論理合成、レイアウト前のタイミングクロージャ、物理的設計、レイアウト後のタイミングクロージャおよび物理検証が含まれる。ＳｏＣについて学習した情報を事前設定された形式で格納することによって、計画されたＳｏＣの階層表現が１つまたは複数のデータベースに格納される。その後、ＳｏＣに関する、計画され格納された情報は、データベースから階層的に取得され、当該データベースから新しいＳｏＣ設計がデバッグおよび作成される。
【００５７】
本明細書の一実施形態によれば、強化学習プロセスは、相互に異なる複数のデータ構造で格納された複数のデータベースへのアクセスに基づいて、ＡＩ環境、ＡＩエージェント、タスクおよび実験を含む、シングルステップで、あるいは複数のステップで階層的に実行される。複数のデータ構造は、グラフ、文書および表を含む。ＡＩ設定は、一連の環境、エージェント、タスクおよび実験を用いて、ＳｏＣ設計の各ドメインに対して作成される。ＡＩ設定は、各ドメインおよびサブドメインのエージェントと環境との相互作用を用いて、強化学習プロセスを実行するように構成されている。学習情報は、強化学習プロセスの出力または結果であり、ＳｏＣの設計において構成された各ドメインおよびサブドメインに固有のデータベースに、Ｑ値またはニューラルの重みの形式で格納される。
【００５８】
本明細書の一実施形態によれば、ＭＤＰおよびＳＭＤＰ、オプションマクロ、ＨＡＭおよび最大Ｑ値が抽出されて、ＳｏＣの設計において構成された各ドメインおよびサブドメインについて、データベース（例えば、ＮｏＳＱＬデータベース、ＳＱＬデータベースまたはグラフデータベース）に格納される。
【００５９】
本明細書の一実施形態によれば、推論は、抽出されたＳＭＤＰ、オプションマクロ、ＭＤＰ、ＨＡＭ、ｍａｘ−Ｑ関数から生成される。生成された推論は、文書データベース、グラフデータベースまたはＳＱＬデータベースの形式で保存される。文書データベース、グラフデータベースまたはＳＱＬデータベースの形式で格納された推論は、抽出されたＭＤＰ、ＳＭＤＰまたはオプションマクロの形式で、あるいはエピソード設定の一連の環境、エージェント、タスクおよび実験として、ドメイン固有のＡＩ設定にロードされる。ＳｏＣの設計ドメインごとの推論が抽出されると、エピソード実験設定またはＭＤＰまたはＳＭＤＰまたはＨＡＭまたはＭＡＸＱ設定の形式の各ＳｏＣドメインのＡＩ設定は、オプションマクロの有無に関わらず相互作用して最適なチップアーキテクチャ（ＯＣＡ）に達する。
【００６０】
本明細書の一実施形態によれば、強化学習で使用される方策勾配法に基づいて、抽出されたＭＤＰ、ＳＭＤＰ、オプションマクロ、ＨＡＭ  ＭＡＸＱについて、状態を行動にマッピングする新しい方策が検証され、検証された新しい方策は、ＳｏＣの設計におけるＡＩ  ＳＯＣドメインおよび任意のＡＩサブドメインの各々のデータベースに格納される。あるドメインに生成された新しい方策は、別のＡＩ  ＳｏＣドメインに生成された方策で最適化および反復されてコンテキストが導出され、階層的に最適な、マルチドメイン単位およびサブドメイン単位の最適な方策が取得される。階層的に最適であり、かつ個々に最適である方策は、方程式、関数、ＳＷ、オプションマクロを通じて将来的な使用のためにデータベースに格納され、すべてのＡＩ  ＳｏＣドメインおよびサブドメインの将来の学習アプリケーションで参照される。
【００６１】
本明細書の一実施形態によれば、ＳＭＤＰの階層を同期させることによってＳｏＣを設計するための方法が開示されている。この方法は、仕様またはデータベースからのチップトポロジを初期化するステップを含む。さらに、チップトポロジは、ＨＡＭ制約を伴うマルコフ決定過程（ＭＤＰ）に関連付けられる。その後、チップトポロジは、複数のＳＭＤＰまたはＭＤＰに関連付けられる。複数のＳＭＤＰまたはＭＤＰが有効化される。その後、事前設定されたＱ値または事前設定された目標が達成されて、複数の有効化されたＳＭＤＰまたはＭＤＰが終了すると、複数のＳＭＤＰまたはＭＤＰが同期される。同じレベルの複数のサブドメインが有効化される。さらに、事前設定されたＱ値または事前設定された目的が達成されて、複数の有効化されたサブドメインが終了すると、複数のサブドメインが同期される。その後、複数のＳＭＤＰの物理検証が開始する。それにより、ＳｏＣを設計するための最適なチップアーキテクチャが得られる。
【００６２】
本明細書の一実施形態によれば、ＳＭＤＰが互いに依存関係を有しない場合（例えば、有効電力ＳＭＤＰおよび配置のＳＭＤＰ）、同期は、ただ１つのＳＭＤＰが他のＳＭＤＰと通信してそれが最終状態に達したことを通知する。同期は、ＳＭＤＰが最終状態に達したことを示唆する、グローバルブロードキャスト信号の１つである。同期プロセスには、ＳＭＤＰタイミングあるいはＳＭＤＰの検証でバグがみつかったときに、終了したＳＭＤＰに、タイムクロージャのメトリックのような最終結果をグローバルデータベースにアップロードさせることも含まれる。あるいは、ＳＭＤＰが他のＳＭＤＰに依存している場合、これらのＳＭＤＰの各々は、ロックステップまたは反復ループで動作する。ＳＭＤＰが他のＳＭＤＰと通信する場合（例えば、論理検証および論理設計）、同期プロセスは個別の同期状態を含む。各ＳＭＤＰは、それぞれの最終結果を伝え、バグ修正、最適化を待ち、その設計がＰＤまたは合成に送るのに最適な形状であることを要求する。本明細書の一実施形態によれば、同期は、２つ以上のＳＭＤＰを使用し、多くのＳＭＤＰ、オプションマクロ、およびＭＤＰの間で最終結果を共有することを含む。
【００６３】
図１は、本発明の一実施形態による、強化学習技術を用いた人工知能を使用してＳｏＣを設計するための方法を説明するフローチャートを示す。本明細書の実施形態によれば、ＳｏＣ回路全体は、プロセッサ、デジタル設計、回路設計プロセスとともに、強化学習実験の実装に続いて、階層モデルの形式で（最適性を重視して）表される。
【００６４】
この方法は、ＳｏＣ仕様入力を受け取るステップ（１０１）を含む。さらに、受け取ったＳｏＣ仕様入力およびチップデータベースライブラリから取得した、チップ、チップスケルトン、クロック、入出力、パーティションに関する詳細を抽出することによって、（ＳｏＣの）チップ設計を初期化する。ＳｏＣのチップ設計フローの初期化には、ライブラリの初期化が含まれる（１０２）。ライブラリを初期化するプロセスでは、ファウンドリのテクノロジライブラリ、ＡＩ  ＳＯＣＤデータベースの標準インタフェースＩＰ、データベースのプロセッサＩＰ、および再利用されるその他の標準ＩＰなどの標準ライブラリが、チップデータベースにロードされる。これらのライブラリは、ＳｏＣ仕様入力を解析した後にチップデータベースにまとめられる。ＳｏＣ仕様入力は、チップの仕様、または以前のチップに加えてテキストもしくはｘｍｌ形式のディスクリプションにおける変更を表すデータベースのうちの少なくとも１つである。取り込まれたライブラリ、および特定のＳｏＣ仕様またはデータベースは、ＩＯ，チップスケルトン、関連ＩＰおよびチップのパーティションを提供する。初期化後、所望のＳｏＣ構成をさらに最適化して生成するために、初期化され、コンパイルされ、かつ最適化されていないチップデータベースに対して、様々なサブドメインＡＩをＭＤＰ、ＳＭＤＰ、ＨＡＭおよびＭＡＸ−Ｑの形式で設定する。ＡＩ設定は、多目的ＡＩエージェントを意味する。さらに多目的ＡＩエージェントには、多数のチップ設計にわたって、かつ現在のチップ設計の反復回数にわたって抽出された複数のドメイン間の関係を保持する、グラフデータベースによって提供されるデータも含まれる。
【００６５】
本明細書の一実施形態によれば、多目的ＡＩエージェントは、グラフデータベースと、Ｑ値およびニューラルネットワークの重みを保持するデータベースと、に推論をフィードバックするように構成されている。推論／学習データを格納するデータベースは、「転移学習」プロセスに用いられる。「転移学習」プロセスは、論理的に近い一連のタスクが既に学習されている場合に、学習されていないが転移学習手段を使用して推定される類似のタスクに、学習されたタスクを転移するプロセスとして定義される。多目的エージェントの例には、限定しないが、ＳｏＣ  Ｎｏｃエージェント、ＳｏＣ  電力エージェント、ＳｏＣ物理エージェント、ＳｏＣマルチプロセッサエージェント、ＳｏＣセキュリティエージェントおよびＳｏＣクロックエージェントが含まれる。多目的エージェント（以下、ＡＩエージェントという）は、各ドメインのＱ値を生成するように構成されている（１０４）。ＡＩエージェントは、各ドメインのＱ値を抽出するためのＡＩタスクを通じて、ＡＩ環境と相互作用するように構成されている。続いて、階層型ＳＭＤＰ構造の各ドメインおよびサブドメインの抽出されたＱ値は、ＳｏＣの設計計画プロセスを最適化するために、ＳＭＤＰ  Ｑテーブルの形式で階層的にビッグデータデータベースに格納される。
【００６６】
Ｑ値を抽出するために、各ドメインに対して強化学習プロセスを開始する。ドメインは、ＮｏＣ生成、電力最適化、インタフェース統合、論理検証、論理合成、レイアウト前のタイミングクロージャ、物理設計、レイアウト後のタイミングクロージャおよび物理検証のいずれかである。続いて、ＭＤＰ、ＳＭＤＰ、およびＭＤＰの階層のうちのいずれかの初期化プロセスを通じて、各ドメインの最大Ｑ値を決定する。その後、ＳＭＤＰ  Ｑテーブルの最上位レベルの最大Ｑ値に対応する、最適なチップアーキテクチャを推定する（１０５）。その後、最適なチップアーキテクチャを、学習および推論のためにデータベースに格納する。最適なチップアーキテクチャおよび生成されたチップ固有のグラフライブラリに基づいて、所望のＳｏＣ構成を生成して最適化する。最大Ｑ値から最適なチップアーキテクチャを取得するステップは、最適なＱ値に関連する最適な方策を導出し、当該導出された最適な方策に関連する行動を実行することを含む。
【００６７】
図２は、本明細書の一実施形態による、階層型多目的ＡＩを用いたＡＩ駆動の設計設定を使用したＳｏＣを設計するための方法を説明するフローチャートを示す。ＳｏＣ仕様入力を受け取る（２１０）。チップ設計技術、およびチップ設計プロセスに関連して必要とされる規格に関する詳細を格納するために、抽象グラフデータベースライブラリを作成する。さらに、チップ設計知識ライブラリと、一般的なハードウェアおよびソフトウェアライブラリも作成して維持する（２１１）。受け取ったＳｏＣ仕様入力およびチップデータベースライブラリまたはグラフデータベースライブラリから、チップ、チップスケルトン、クロック、入出力、パーティションに関する詳細が取得される。受け取ったＳｏＣ仕様入力およびチップデータベースライブラリまたはグラフデータベースライブラリから取得した、チップ、チップスケルトン、クロック、入出力、パーティションに関する抽出された詳細に基づいて、（ＳｏＣの）チップ設計を初期化する（２１２）。初期化後、所望のＳｏＣ構成をさらに最適化して生成するために、様々なドメインについて、ＭＤＰ、ＳＭＤＰ、ＨＡＭおよびＭＡＸ−Ｑの形式でＡＩを設定する。ＡＩ設定は、多目的ＡＩエージェントを意味する。ドメインのＡＩ設定には、環境を伴う多目的ＡＩエージェントと、複数のタスクと、が含まれる。ドメインのＡＩ設定を、第１のドメイン、第２のドメイン、そして第３のドメインのように、複数のドメインに対して実行して繰り返す（２１３，２１４，２１５）。次に、複数のドメインに設定したＡＩから受け取られたデータをコンパイルすることによって、多目的ＡＩ環境、エージェントおよびタスクを設定する（２１６）。チップ固有のグラフライブラリおよびデータベースは、多目的ＡＩ環境、エージェントおよびタスクから受け取った出力データに基づいてＡＩ環境を使用して生成される。さらに、チップ固有のグラフライブラリおよびデータベースに格納されたデータを、複数のドメインに対して設定されたＡＩにフィードバックループで供給する（２１７）。チップの多目的ＡＩエージェントは、各ドメインのＱ値を生成するように構成されている。ＡＩエージェントは、各ドメインのＱ値を抽出するためのタスクを通じて、ＡＩ環境と相互作用するように構成されている。続いて、階層型ＳＭＤＰの各ドメインおよびサブドメインの抽出されたＱ値は、ＳｏＣの設計計画プロセスを最適化するために、ＳＭＤＰ  Ｑテーブルの形式で階層的にビッグデータデータベースに格納される。さらに、最適なＱ値から、最適なチップアーキテクチャが得られる（２１８）。
【００６８】
本明細書の一実施形態によれば、ＨＡＭ、オプションおよびＭａｘ−Ｑ学習の組み合わせを使用して、エンドツーエンドのＳｏＣ設計フレームワークを達成する。Ｍａｘ−Ｑ学習は、Ｑ値を取得するために、あるいは複数のＳＭＤＰにわたって解決策を同時に学習するために、ＳｏＣの設計全体をＳＭＤＰの階層に分類することを含む。Ｍａｘ−Ｑ学習のプロセスでは、コアＳＭＤＰが複数のサブタスク｛Ｍ０，Ｍ１，Ｍ２，Ｍ３，．．．ＭＮ｝に分割され、Ｍ０を解くと、Ｍ全体が解かれる。集合ＭがタスクであるＭａｘ−Ｑの古典的な定義に代わって、本明細書の実施形態によれば、それらはＨＡＭなどの制約を伴う再帰的Ｍａｘ−Ｑである。Ｍ０，Ｍ１，Ｍ２，．．．ＭＮのそれぞれは、別のＭａｘ−Ｑを再帰的に表している。
【００６９】
本明細書の一実施形態によれば、Ｑテーブルの上位レベルのＱ値が計算されるときに、下位レベルのＳＭＤＰ、ＭＤＰおよびオプションマクロＱ値の間の関係が、ディープニューラルネットワークを使用して決定される。下位レベルのＳＭＤＰ、ＭＤＰおよびオプションマクロのＱ値は、Ｑテーブルの上位レベルのＱ値に関連している。ディープニューラルネットワークは、回帰ネットワーク、畳み込みネットワーク、ＬＳＴＭ、ＧＡＮおよびこれらのネットワークの階層からなる群から選択される。さらに、Ｑテーブルの複数のＱ値間の関係関数を推定するための重みの最適値を取得するために、階層型ディープＳＭＤＰネットワーク（ＨＤＳＮ）がトレーニングされる。重みの最適値は、ニューラルネットワークをトレーニングすることによって取得される。この最適値を使用して、階層型ＲＬ設定において、上位レベルのＱ値を下位レベルのＱ値の関数として推定するプロセスが決定される。閾値Ｑ値の適切なレベルを決定して１つのセミマルコフ決定過程（ＳＭＤＰ）を終了し、並行して別のＳＭＤＰを開始することによって、ＨＤＳＮがさらにトレーニングされ、あるいは採用され、階層型ＲＬ実装の同じレベルでＳＭＤＰ間の同期メカニズムが決定される。
【００７０】
本明細書の一実施形態によれば、ＳｏＣドメインの各々、すなわちネットワークオンチップ（ＮｏＣ）生成、電力最適化、インタフェース統合、論理検証、論理合成、レイアウト前のタイミングクロージャ、物理設計、レイアウト後のタイミングクロージャおよび物理検証は、貪欲法または調整された貪欲法などのアルゴリズムを実装（実行）して、その利用と探索とのバランスをとるように構成されている。その後、Ｑ値が収束すると、あるいは所定の実験数が完了すると、あるいは所定の結果の品質（ＱｏＲ）基準が満たされると、各ＳｏＣドメインから引き出された推論の数に基づいて学習が推定される。「状態」を「行動」へマッピングするための対応する新しい方策（これは、学習の結果である）が考案されて、ドメイン固有のデータベースに格納される。あるドメインで学習された新しい方策は、別の関連するドメインで学習された方策と最適化および結合／反復され、階層的に関連する最適な方策が生成される。通常、あるドメインで学習された新しい方策は、別のＡＩ  ＳｏＣドメインで学習された方策で最適化および反復されて、コンテキストが導出され、階層的に最適な、マルチドメイン単位およびサブドメイン単位の最適な方策が取得される。そのような階層的に関連する最適な方策は、方策に基づく方法（policy-based method）、価値に基づく方法（value-based method）および強化学習のアクタークリティック法（actor-critic method）のうちの少なくとも１つに基づいて生成される。ＳｏＣドメイン全体で実装されている学習方法には、ＤＱＮ、線形関数、ウィンドウ関数、回帰関数、および価値関数近似が含まれる。階層的に最適であり、かつ個々に最適な方策は、方程式、関数、ＳＷ、オプションマクロの形式でデータベースに保存され、すべてのＡＩ  ＳｏＣドメインおよびサブドメインの将来の学習アプリケーションで再利用および参照される。
【００７１】
本明細書の一実施形態によれば、ＡＩ環境との相互作用を使用して、また、各ドメインおよびサブドメインに必要な精度に合わせて、各ＳｏＣドメインおよび対応するサブドメインに対して環境モデルおよびオプションが構築される。各ＳｏＣドメインおよびサブドメインに対するトレーニングモデルを構築するために、教師付き強化学習の原理を利用する。トレーニングモデルは、ルックアップテーブルモデル、線形期待モデル、線形ガウスモデル、ガウスプロセスモデル、あるいはＭＤＰ、ＳＭＤＰおよびオプションマクロを一緒にモデル化するように設計または構成された任意の他の同様の決定論的または確率論的モデルのいずれかである。
【００７２】
図３は、本明細書の一実施形態による、ＳｏＣの設計フレームワークにおけるドメインおよびサブドメインごとに設定された人工知能（ＡＩ）の論理設計のブロック図を示す。Ｓｏｃの設計フレームワークにおけるドメインおよびサブドメインごとに設定された人工知能（ＡＩ）の論理設計は、オプション、ＭＡＸＱフレームワーク、ＨＡＭおよび任意の他の同様の技術を使用した、階層型強化学習（ＲＬ）プロセスまたは技術を実行するように構成されている。マルコフ決定過程（ＭＤＰ）は、最初にメインＳｏＣの設計用に派生し、該ＭＤＰは階層タスクを実行する。ドメインに固有のＱ値またはニューラルの重みを利用して、マルコフ決定過程（ＭＤＰ）またはセミマルコフ決定過程（ＳＭＤＰ）またはオプションマクロまたはＨＡＭまたはＭａｘ−Ｑ値を抽出する。続いて、抽出した値を、ドメイン固有のデータベースに格納する。抽出されたＳＭＤＰまたはＭＤＰ、ＨＡＭまたはオプションマクロまたはＭａｘ−Ｑ値を、ＳｏＣの回路設計に関連する推論を生成するために利用する。そして次に、それらをドメイン固有の人工知能の設定にロードし、それによって推論間の相互作用を開始して、最適なチップアーキテクチャ（ＯＣＡ）を生成する。
【００７３】
図３を参照すると、人工知能の論理設計タスク２２２と人工知能の論理設計エージェント２２５とを含む、人工知能の論理設計設定２２０が示されている。人工知能の論理設計環境２２４を含む人工知能（ＡＩ）の論理設計タスク２２２は、ＡＩの論理設計エージェント２２５と相互作用し、観測を行い、適切な行動を開始し、続いて（実行された）行動に対する報酬を受け取るように構成されている。ＡＩの論理設計エージェント２２５は、ＡＩの論理設計環境２２４との相互作用から学習するための学習モジュールとして設計されている。ＡＩの論理設計エージェント２２５は、実行／実施された行動／動作に対して、ＡＩの論理設計環境２２４から観測および報酬を獲得または収集するために、ＡＩ環境２２４内で様々な行動を実行するように構成されている。
【００７４】
図４は、本発明の一実施形態による、ＳｏＣの設計フレームワークに実装されたＡＩフレームワークの機能ブロック図を示す。図４を参照すると、チップ設計プロセスのためのＡＩフレームワーク３０３は、汎用ハードウェアＩＰブロック３０１、汎用ソフトウェアＩＰブロック３０２から入力を受け取る。ＡＩフレームワークは、最適なチップ設計を提供するように構成されている。最適なチップ設計は、アプリケーションソフトウェア開発３０４およびソフトウェアテスト３０５に提供される。さらに、最適なチップ設計は、アプリケーションプロトタイプ３０６においてハードウェア／ソフトウェア検証を受ける。最適なチップ設計は、プロトタイプＩＣ製造３０７に提供される。検証後、最適なチップ設計は、量産ＩＣ製造３０８に送られる。
【００７５】
図５は、本明細書の一実施形態による、階層型強化学習用に構成されたＡＩフレームワークのブロック図を示す。図５を参照すると、多目的ＡＩは、多目的強化学習エージェントは、初期化プロセス５０２を実行した後に、サンプルチップの記述ファイル５０１から受け取った入力に基づいて、環境との相互作用から学習するように設計および構成されている。チップの多目的エージェントの例には、限定しないが、ＳｏＣ  Ｎｏｃエージェント５０３、ＳｏＣ電力エージェント５０４、ＳｏＣ物理エージェント５０５、ＳｏＣマルチプロセッサエージェント５０７、ＳｏＣセキュリティエージェント、およびＳｏＣクロックエージェント５０６が含まれる。ＡＩフレームワークは、非常にモジュール的な設計であるため、複数の同様のエージェントを追加し、それらをＡＩ環境およびａｌｐｈａ  ＤＢと呼ばれるビッグデータデータベースにプラグインする。ビッグデータ推論エンジン５１２は、複数の多目的強化学習エージェント５０３，５０４，５０５，５０６，５０７と相互作用して、検証エージェント５０９による検証プロセスの実行後に、ライブラリ５１０に格納するための推論を受け取るように構成されている。強化学習エージェントの出力は、ＳｏＣの設計を計画するために、ＧＤＳ（グラフィックデータベースシステム）およびドライバ５０８に供給される。
【００７６】
本明細書の一実施形態によれば、ＡＩフレームワークは、複数のブロックを互いに接続し、それによってＳｏＣの接続および統合を確立するための、ＳｏＣ通信およびネットワークオンチップ（ＮｏＣ）モジュールを含む。ＮｏＣは、ＳｏＣ通信ＡＩエージェント５０３を使用して実装される。
【００７７】
本明細書の一実施形態によれば、ＳｏＣ電力最適化モジュールには、ＳｏＣ  電力エージェント５０４を使用して、漏電および動的電力などのＳｏＣの様々な電力成分を最適化し、電子移動によるハードウェアの経年劣化がハードウェア性能に及ぼす影響を低減するための技術がロードされている。
【００７８】
本明細書の一実施形態によれば、ＳｏＣクロックモジュールは、ＳｏＣ全体のクロック設計のためのドメインであり、ＳｏＣクロックエージェント５０６を使用したクロックの大域的かつ局所的な最適化を含む。これには、推定およびクロックツリーの最適化も含まれる。
【００７９】
本明細書の一実施形態によれば、ＳｏＣの配置およびフロアプランが最適に達する。ＳｏＣの配置およびフロアプランには、強化学習アルゴリズムおよび方策にしたがって論理ブロックを配置することが含まれる。ＳｏＣの配置およびフロアプランには、パワーアイランドを作成することが含まれるが、配置によってタイミングと電力とを最適化するための方策を作成することに限定されない。
【００８０】
本明細書の一実施形態によれば、ＳｏＣ物理エージェント５０５を使用して、電力、トランジスタの物理レイアウト、物理遅延フォーマットおよび物理的な電力ルーティングなどの情報を含むセルの物理ライブラリに論理設計をマッピングすることによって、ＳｏＣ物理設計が実行される。
【００８１】
本明細書の一実施形態によれば、ＳｏＣ論理検証モジュールは、検証エージェント５０９を使用してチップ論理を検証するように構成されている。検証プロセスでは、様々な検証プロセスを使用してバグを報告するためのメトリックを収集し、ＳｏＣの品質を向上させ、ＳｏＣの機能に対する信頼性を提供する。
【００８２】
本明細書の一実施形態によれば、ＳｏＣ物理検証モジュールは、検証エージェント５０９を使用して、ＳｏＣの物理的実装を検証するように設計されている。検証プロセスには、ＬＶＳ対ＤＲＳ、レイアウト後のタイミング、ルーティング、ＩＲドロップ、電源機能の正確性、電気的ルールチェックの検証が含まれる。さらに、これらすべての要因を考慮して（ＳｏＣ回路の）物理設計のための最適なトレードオフを提供するために、このドメインで様々な方策が検討される。
【００８３】
本明細書の一実施形態によれば、ＳｏＣタイミングモジュールは、レイアウト前およびレイアウト後のタイミングクロージャを実行するように設計されている。タイミングクロージャでは、設定時間およびホールド時間の解決や、偽パスの割り当てなどの特定の行動と方策を実行する。
【００８４】
本明細書の一実施形態によれば、ＳｏＣ  ＤＲＣ（デザインルールチェック）、ＳｏＣ  ＥＲＣ（電気的ルールチェック）は、ディープ強化学習技術を使用して、ＥＲＣおよびＤＲＣのクロージャ方策を学習し、適用し、計画するように設計および構成されている。
【００８５】
本明細書の一実施形態によれば、包装関連の方策および行動は、ＳｏＣ包装プロセスにおいて学習される。方策は、基板設計、ピンの多重化、パディング、パワーボールの割り当て、Ｉ／Ｏピンなどにかかる可能性のあるＰＣＢ負荷に関する。包装の種類を選択するための方策も、このドメイン内のすべてのタスクの後に学習される。
【００８６】
図６は、本発明の一実施形態による、ＳｏＣ設計フレームワークにおける主要なＭＤＰとＳＭＤＰとの間の相互作用プロセスを説明するフローチャートを示す。図６を参照すると、ＡＩフレームワークは、ＭＤＰ、オプション、ＭＡＸＱフレームワーク、ＨＡＭおよび他の任意の同様の技術を使用して、階層型強化学習（ＲＬ）プロセスを実行するように構成されている。マルコフ決定過程（ＭＤＰ）は、最初は、ＳｏＣの設計仕様から派生する。ＳｏＣの設計では、意思決定を行わずに長期間にわたって連続的なタスクが必要になるため、ＭＤＰではなくセミマルコフ決定過程（ＳＭＤＰ）が使用される。ＳｏＣの設計用のメインＭＤＰまたはマルチエージェントサポートが作成される（５２０）。メインＭＤＰは、ＳｏＣの設計における複数のドメインに対応する複数のＳＭＤＰ（５２０ａ，５２０ｂ，．．．５２０ｎ）に分割される。各ドメインについて、複数のサブドメイン（５２１ａ，５２１ｂ，．．．５２１ｎ）が作成される。各サブドメインは、複数のオプションマクロ（５２２ａ，５２２ｂ，．．．５２２ｎ）を取得するために、強化学習アルゴリズムを実行するように構成されている。オプション／マクロは、最適なチップアーキテクチャ（ＯＣＡ）に到達する際に使用される。
【００８７】
本明細書の一実施形態によれば、ＳＭＤＰは、長期間にわたる閉ループ動作に焦点を合わせるように設定されており、オプションマクロと呼ばれる。ＳｏＣの設計では、多くの決定が、閉ループ形式で一定期間にわたって拡張される。したがって、ＡＩフレームワークは、ＳｏＣの設計アクティビティでオプションマクロを使用するように設計されている。オプションマクロは、より小さな階層的タスクに適用されてＨＲＬを形成する。オプションマクロは、ＳｏＣ  ＡＩサブドメインにわたって適用されて、ＳｏＣの設計において人間レベルのインテリジェンスを取得する。オプションマクロには、時間的に拡張された行動を含むためのプリミティブな行動の一般化が含まれる。例えば、設定時間違反を修正するプロセスは、データパスのリタイミング、クロックパスのバッファリング、パス内のセルのＶＴタイプの変更、リフロー計画などのタスクを含む。これらのタスクはそれぞれ、ＥＤＡツールを使用して閉フィードバックループに合わせて拡張されるオプションマクロとして含まれている。
【００８８】
本明細書の一実施形態によれば、オプションマクロまたはオプションを使用して、最適なチップアーキテクチャ（ＯＣＡ）に到達する。各オプションは、方策π：Ｓ×Ａ→［０，１］、終了条件β：Ｓ＋→［０，１］、および初期状態Ｉ⊆Ｓを含む。オプションは、トリプレットパラメータ［π，β，Ｉ］によって定義される。オプションの中には、トリプレットをデータベースに格納し、方策をわずかに変更することによって、ＡＩ設定の過去の実験から派生したものもある。方策は、オプションと次の行動との間のマッピングである。方策をわずかに変更することで、実行する必要のある行動の分布が得られる。さらに、エージェントは、一連の行動を含む。選択されたオプションがＳＭＤＰの遷移を使用して終了すると、エージェントは別の行動を開始する。オプションマクロは、特定のタイムアウトメカニズムを伴うマルコフまたはセミマルコフの１つである。したがって、オプションマクロは、例えば、タイミングクロージャの問題に関するフロアプランおよび配置の最適化や、設計の検証範囲を証明するためにエージェントによって実行される、実行時間が長い検証テストケースなどの、ＯＣＡの反復最適化パートに使用される。
【００８９】
本明細書の一実施形態によれば、ＡＩフレームワークには、ｍａｘ−Ｑおよび抽象機械の階層（Hierarchies of Abstract Machines：ＨＡＭ）フレームワークで実装されたＳＭＤＰが組み込まれており、ＳｏＣのためのより高速で最適なアーキテクチャおよび設計クロージャが実現されている。ＳＭＤＰは、Ｍａｘ−ＱフレームワークとＨＡＭを展開する。これらは、セミマルコフオプション（ＳＭＯ）である。ＳＭＯは、オプションを選択する方策で利用できるものよりも詳細な状態をオプションが表していることを示している。さらに、ＨＡＭを使用して、方策の改善のために、エージェントＳＭＤＰによって学習された方策に制約が適用される。さらにまた、ＨＡＭを使用して、ＳＭＤＰの階層全体に制約が適用される。各ＳＭＤＰドメインには独自のＨＡＭがあり、階層内の上位ＳＭＤＰタスクから下位ＳＭＤＰタスクへのマッピングに関する制約を提供している。また、ＨＡＭは、ＳＭＤＰの階層を関連付ける方法を提供する。ＳｏＣの設計は常に階層的であるため、ＨＡＭは、設計の階層（ＩＰからＳｏＣ上まで）およびタスクの階層（最適なチップ仕様の抽出から、最適なチップアーキテクチャ（ＯＣＡ）、ＧＤＳＩＩテープアウト、レイアウトまで）に提供する最適なＲＬアルゴリズムを決定する上で大きな役割を果たす。本明細書の一実施形態によれば、ＨＡＭは、ＳＭＤＰに対する制約、ならびに低レベルのタスクとより高いレベルのタスクとの間の関係を導出するために使用される。
【００９０】
本明細書の一実施形態によれば、ＨＡＭは、ＡＩサブドメインＳＭＤＰを呼び出すために本明細書で使用されるような４つの状態を含む。これらの状態は、すべてのＳＭＤＰまたはＭＤＰで実行され、次のＳＭＤＰ、ＭＤＰおよびオプションマクロをいつ呼び出すかを決定する。本明細書の一実施形態によれば、ＡＩフレームワークには、ＡＩ  ＳＯＣＤ行動状態、ＡＩ  ＳＯＣＤ呼状態、ＳＩ  ＳＯＣＤ選択状態、ＡＩ  ＳＯＣＤ停止状態が含まれる。ＡＩ  ＳＯＣＤ行動状態は、ＡＩ  ＳＯＣＤの階層環境で行動を実行する。さらに、ＡＩ  ＳＯＣＤ呼状態は、サブルーチンとして別のＡＩ  ＳＯＣＤ  ＨＡＭまたはＳＭＤＰを実行する。ＡＩ  ＳＯＣＤ選択状態は、非決定論的にＡＩ  ＳＯＣＤのＳＭＤＰを選択する。ＡＩ  ＳＯＣＤ停止状態は、マシンの実行を停止し、制御を前の呼状態に戻す。ＡＩ  ＳＯＣＤ  ＨＡＭまたはＳＭＤＰの最上位レベルの階層はチップトップエージェントであり、ドメイン固有のＨＡＭを持つ他のすべてのエージェントを呼び出す。ＨＡＭベースのＳＭＤＰはそれぞれ多目的であり、ベクトル化された報酬、行動およびＱ値を持っている。
【００９１】
本明細書の一実施形態によれば、ＳｏＣの設計フレームワークには、次のモジュール／ドメインが含まれる。
【００９２】
ＳｏＣ通信およびネットワークオンチップ（ＮｏＣ）：このモジュールは、ブロックを互いに接続し、それによってＳｏＣの接続および統合を確立する。また、このモジュールは、ＳｏＣ通信ＡＩエージェントを使用して実装される。このサブドメインでは、単一または複数のＳＤＭＰ（Ｍａｘ−Ｑ、ＨＡＭ、またはオプションの実装とすることができる）によって表される単一または複数のエージェントの主な目的は、最適な通信を生み出すことである。このＳＯＣ  ＡＩサブドメインは、単一または複数のタイプのエージェントに報酬と観測を提供する環境を含む。報酬および観測は、ＳｏＣエンドポイント（マスタとスレーブであって、例示的なマスタはプロセッサであり、スレーブはメモリポートまたはコンフィギュレーション・インタフェースである）間の通信の容易さに関連している。単一または複数のエージェントは、待ち時間の短縮、消費電力、システムのスループットの向上、最適な通信トポロジ（ＮｏＣトポロジ）、物理的に設計されたチップの輻湊の低減に関するフィードバックを、所与の行動（データパスのバッファリング、データパスのリタイミング、マスタとスレーブのクラスタへの最グループ化、パワーアイランドの作成、専用チャネルを介した接続ワイヤの再ルーティングによる輻湊の低減など）に対する良い報酬として環境から提供する。さらに、このドメインは、これらの行動の組み合わせとして方策を作成および発見し、最適なＳｏＣ通信アーキテクチャを取得するためにそれらを実装するように構成されている。これらのＡＩ  ＳＯＣドメインＮｏＣエージェントはＮｏＣ環境と相互作用して、ＭＤＰを抽出し、方策勾配を実施し、結果として得られたＱ値をビッグデータベースに格納し、最適なＳｏＣ通信構造を計画するように構成されている。
【００９３】
ＳｏＣ電力最適化：このモジュールには、ＳｏＣ電力エージェントを使用して、漏電および動的電力などのＳｏＣの様々な電力成分を最適化する技術や、電子の移動によるハードウェアの経年劣化がハードウェアのパフォーマンスに及ぼす影響を低減する技術が組み込まれている。ＳｏＣ電力最適化サブドメインは、エージェントの行動に基づいて、消費電力の増減に関してエージェントにフィードバックを提供するように構成された環境を含む。このＡＩ  ＳＯＣサブドメインは、パフォーマンスと様々な電力成分とのバランスをとるように構成された、１つ以上の電力エージェントを含む。環境は、スループット、クロック周波数、ならびに特定のブロックまたはＳｏＣ全体の漏電電力および動的電力などの消費電力測定値などの、パフォーマンス測定値に関するフィードバックを提供するように構成されている。このＡＩ  ＳＯＣＤサブドメインは、パフォーマンスあたりのＳｏＣ電力消費を最適化するために、ＨＡＭ制約を使用してＭａｘ−ｑフレームワークのさらなる階層を実装するように構成されている。エージェントによってとられる行動は、クロックゲーティング、ブロックのパワーコラプス、ＳｏＣのパーティショニング、パワーレールの再設計などである。これらのＡＩ  ＳＯＣドメイン電力エージェントは、電力環境と相互作用して、ＭＤＰを抽出し、方策勾配を実施し、結果として得られるＱ値をビッグデータベースに格納し、最適な電力構造を計画するように構成されている。
【００９４】
ＳｏＣクロッキング：このドメインは、ＳｏＣ全体のクロック設計のドメインであり、ＳｏＣクロックエージェントを使用してクロッキングを広域的かつ局所的に最適化する。これには、推定およびクロックツリーの最適化も含まれる。
【００９５】
ＳｏＣクロッキングＡＩ  ＳＯＣサブドメインは、必要とされるＰＬＬの数、推定クロック電力、クロックルーティングの輻湊およびクロックスキューに関して生じ得る問題についてのフィードバックを提供するように構成された環境を有する。１つまたは複数のエージェントを含むこのＡＩ  ＳＯＣドメインは、ＰＬＬの挿入、クロック生成論理（ＣＧＬ）、クロックゲーティングおよびクロックプログラミングレジスタの実装の行動を実行するように構成されている。これらのＡＩ  ＳＯＣドメインのクロックエージェントは、クロック環境と相互作用して、ＭＤＰを抽出し、方策勾配を実装し、結果として得られるＱ値をビッグデータベースに格納し、最適なクロック回路を計画するように構成されている。
【００９６】
ＳｏＣ配置およびフロアプラン：このドメインでは、ＳｏＣフロアプランを最適化する。これには、強化学習アルゴリズムおよび方策に従う論理ブロックの配置が含まれる。これには、パワーアイランドの作成が含まれ、（これに限定されないが）配置によるタイミングおよび電力を最適化するための方策の作成が含まれる。
【００９７】
ＳｏＣ配置およびフロアプランＡＩ  ＳＯＣドメインは、配置およびフロアプラン環境を実装するように構成されており、これは、フロアプランおよび配置ＥＤＡツールへのフックとして機能する。環境は、フロアプランおよび配置ＥＤＡツールをデータベースとして使用し、それらをラップして、輻湊、タイミング、利用可能なルーティングチャネル、ルーティング使用率および結果の品質（ＱｏＲ）などの様々な報酬および観測を取得するように構成されている。それらは、ツール固有の形式である場合があるが、ＡＩフレームワークがＥＤＡベンダー間で移動できるように、ＡＩフレームワークの汎用フォーマットに変換される。このＡＩ  ＳＯＣドメインは、説明したように、ＨＡＭおよびＭａｘ−Ｑの実装に従って１つ以上のサブドメインを実装するように設計されている。各サブドメインは、最適な配置およびフロアプランを導出するために１つ以上のエージェントを実装するようにも構成されている。エージェントが実行する行動には、限定しないが、設計内のサブブロックの移動、バッファの追加、サブブロックの再形成および設計のタイミングクロージャ、配置およびＳｏＣフロアプランに最適なＱｏＲを得るための他のＡＩ  ＳｏＣドメインとの相互作用が含まれる。
【００９８】
ＳｏＣ物理設計：このドメインでは、ＳｏＣ物理設計を実行する。これには、ＳｏＣ物理エージェントを使用して、電力、トランジスタの物理レイアウト、物理遅延フォーマットおよび物理電力ルーティングなどの情報を含むセルの物理ライブラリに、論理設計をマッピングすることが含まれる。ＳｏＣ物理設計ＡＩ  ＳｏＣドメインは、ルーティングの輻湊、タイミング、電力解析、電力ルーティングなどの物理的な設計品質に対する観測と報酬を提供するための環境を実装するように構成されている。このＡＩ  ＳｏＣドメインは、論理設計をテクノロジライブラリにマッピングするために、物理設計に関連する複数のサブドメインを実装するように構成されている。また、バッファリング、電力ルーティングの変更、電源スイッチの挿入、クロックゲートの挿入、データパスのリタイミング、追加のＰＬＬの削除または追加などの行動を実行する１つ以上のエージェントを実装するようにも構成されている。エージェントは、別のＡＩ  ＳｏＣドメインおよびサブドメインと相互作用して、最適なＳｏＣ物理設計を取得するようにも構成されている。さらに、このＡＩ  ＳｏＣドメインおよびそのサブドメインは、ツール固有の形式から一般的な形式の観測を取得するために、様々なＥＤＡツールへのフックを実装するように構成されている。
【００９９】
ＳｏＣ論理検証：このモジュールでは、検証エージェントを使用してチップ論理を検証する。検証プロセスには、ＳｏＣの品質を改善し、ＳｏＣの機能に対する確実性を提供するための、様々な検証、メトリックの収集、およびバグの報告が含まれる。ＳｏＣ論理検証ＡＩ  ＡｏＣドメインは、設計に含まれるバグ、検証範囲、テストケースの失敗、アサーションの失敗、デバッグログの推論に関する観測を提供するための環境を実装するように構成されている。このＡＩ  ＳｏＣドメインはまた、ＳｏＣの検証クロージャを取得するために、Ｍａｘ−Ｑ、ＨＡＭおよびオプションフレームワークに従って１つ以上のサブドメインを実装するように構成されている。このＡＩ  ＳｏＣドメインの各ＡＩ  ＳｏＣサブドメインは、テスト機能のライブラリを使用してテストケースを生成すること、機能シミュレータＥＤＡツールによりテストケースを実行すること、検証ログファイル、カバレッジログファイルの読み取りなどのデバッグアクション、各テストの最後に、設計のバグを修正し、データベースにアクセスしてＱ値を格納すること、などの行動を実行するために、１つ以上のエージェントを実装するように構成されている。実行した検証量や、テストケースの生成などの行動後に閉じられたバグの数を反映する、複数のＱ値がある。また、設計上のバグ修正は、Ｍａｘ−Ｑ、オプションまたはＨＡＭまたはコンビネーションハイブリッドの実装において、より大きな個別のＳＭＤＰによって行われる。また、このＡＩ  ＳＯＣドメインおよびそのサブドメインに関連するエージェントは、最上位レベルのＳｏＣ  ＭＤＰなどの別のＡＩ  ＳＯＣドメインとデータベースを介して相互作用して、検証済みの最適なＳｏＣ回路を取得し、検証可能な最高のカバレッジを閉じるように構成されている。このＡＩ  ＳｏＣドメインは、コードカバレッジ、アサーションカバレッジ、およびテストケースの開始と終了などの情報観測を取得するために、様々なＥＤＡ機能シミュレータおよびデバックツールへのフックを実装するように構成されている。
【０１００】
ＳｏＣ物理検証：モジュールは、検証エージェントを使用して、ＳｏＣの物理的実装を検証する。検証プロセスには、ＬＶＳ対ＤＲＣ、レイアウト後のタイミング、ルーティング、ＩＲドロップ、電源機能の正確性、電気ルールチェックの検証が含まれる。さらに、これらすべての要因を考慮して（ＳｏＣ回路の）物理設計のための最適なトレードオフを提供するために、このドメインにおいて様々な方策が検討される。
【０１０１】
ＳｏＣ物理検証ＡＩ  ＳｏＣドメインは、ＬＶＳ，ＤＲＣエラー、ログ、レイアウト後のタイミング、ＩＰドロップおよび物理設計のＱｏＲに関する観測を提供するための環境を実装するように構成されている。これらの観測は、ＥＤＡツールから環境によって取得され、ＥＤＡツールはさらに処理されてツール固有の形式から一般的な形式を生成し、報酬または観測としてエージェントに提供される。このＡＩ  ＳｏＣドメインは、ハイブリッドＭＡＸ−ＱおよびＨＡＭフレームワークを介して複数のＡＩ  ＳＯＣサブドメイン、オプションマクロを実装するように構成されている。これらの各サブドメインのエージェントによって取られる行動には、限定しないが、ライブラリの再マッピング、ＥＲＣエラーの報告、データベースからの標準修正の取得、データベースへのＱ値の更新などが含まれる。
【０１０２】
ＳｏＣタイミング：ドメインは、レイアウト前およびレイアウト後のタイミングクロージャを含む。タイミングクロージャは、セットアップ時間とホールド時間の解決、偽パスの割り当てなどの特定の行動や方策を実行することを含む。ＳｏＣタイミングＡＩＳｏＣドメインは、ＳｏＣのタイミングを閉じることを主な目的としている。タイミング違反には、セットアップおよびホールド違反、偽パス、マルチサイクルパス、および一般的な例外が含まれる。タイミングクロージャＡＩドメインの環境は、タイミングクロージャツールにフックされて、セットアップタイム違反、ホールドタイム違反、合計ネガティブスラック、そして最悪の場合はネガティブスラックおよびクロストーク違反についての報酬および観測を提供する。ＡＩ  ＳｏＣタイミングエージェントは、前述のハイブリッドＨＡＭ制約を使用して実装された1つ以上のレベルのＭａｘ−Ｑ再帰構造を含むように構成されている。このＡＩ  ＳｏＣドメインおよびそのサブドメインは、エージェントを実装するように構成されており、その主な行動は、リタイミング、データパスの再設計、ならびにクロックツリーのバランス調整によって、セットアップおよびホールド違反を修正することである。これらの各行動は、オプションとしても実装されている。
【０１０３】
ＳｏＣ  ＤＲＣ（デザインルールチェック），ＳｏＣ  ＥＲＣ（電気的ルールチェック）：このドメインでは、ディープ強化学習技術を使用して、ＥＲＣおよびＤＲＣクロージャの方策が学習され、適用され、そして計画される。ＳｏＣ  ＤＲＣ／ＥＲＣ  ＡＩサブドメインは、フローティングＧＮＤネットおよび未接続のＶＤＤ／ＶＣＣピン、パワーネットの短絡、適切なレベルシフタなしのパワードメインクロッシング、およびアイソレーションセルなどのＥＲＣ違反の効率的な修正を実装するように構成されている。ＤＲＣ違反には、金属間の間隔規則、最小幅規則、ビア規則が含まれ、別の規則セットはＬＶＳ規則であり、これにより、生成されるレイアウトが物理設計の前に生成されるネットリストと同等になる。短絡、開口、および回路パラメータの不一致をチェックする。このＡＩ  ＳｏＣドメインは、上記で示唆されたように、ＨＡＭ制約を用いて階層型Ｍａｘ−Ｑフレームワークを実装するように構成されている。このＡＩ  ＳｏＣドメインはまた、浮動接地を接続することによって浮動接地を固定するための動作を行うように構成され、短絡を分離することによって短絡を除去して短絡ＶＤＤを修正する、１つまたは複数のエージェントを実装するように構成されている。これらは、浮動型のネットを固定し、レイアウトのパラメータを修正することにより、ＬＶＳ違反を修正するための行動を実行するように構成されているため、ネットリストと同等になる。エージェントはまた、ＤＲＣを修正するための行動を実行するように構成されているため、設計規則に従って金属間の間隔がもたらされ、プロセス規則の定義に従ってルートの幅が設定される。
【０１０４】
ＳｏＣパッケージ：このドメインでは、パッケージ関連の方策および行動が学習される。方策は、基板設計、ピン多重化、パディング、パワーボールの割り当て、Ｉ／ＯピンへのＰＣＢ負荷の可能性などに関する。パッケージのタイプを選択する方策もまた、このドメイン内のすべてのタスクの後に学習される。ＳｏＣパッケージＡＩ  ＳＯＣドメインでは、最適なパッケージ、Ｉ／Ｏ、基板設計を提供する。このＡＩ  ＳＯＣドメインは、Ｉ／Ｏモデル、Ｉ／Ｏセルライブラリ、基板モデル、ＰＣＢモデル、パッドリング構成、およびピンマ多重化にフックされる環境を実装するように構成されている。環境は、Ｉ／Ｏ制約が満たされていること、基板制約が満たされているか、あるいは満たされていないこと、Ｉ／ＯモデルがＩ／Ｏ負荷および駆動要求を満たすために機能的に適しているか、あるいは認定されていること、ＤＲＣを満たすＩ／Ｏセルの能力、ボードの負荷を駆動するために必要な電力および過渡特性、ならびにボードコンポーネントからの電流のシンクに関する、フィードバック、観測および報酬を提供するように構成されている。また、Ｉ／Ｏの最適な利用を提供するために、ピン多重化での同時実行性など、Ｉ／Ｏの使用に関連するシナリオについても観測される。
【０１０５】
本明細書の一実施形態によれば、上述のドメインは、ＡＩフレームワークを使用して実装される。各ドメインは、ＡＩ論理設計環境、ＡＩ論理設計エージェント、ＡＩ論理設計タスク、ＡＩ論理設計実験を組み込むように構成されている。本明細書の実施形態によって想定されるＳｏＣ設計フレームワークは、前述のすべてのモジュールの実験から学習を抽出し、当該学習結果を、好ましくはＱ値またはニューラルネットワークの重みまたはルックアップテーブルの形式で、あるいは他の任意の適切な形式で、データベースに格納することを目的としている。例えば、Ｑ値は、方策の反復に関するＢｅｌｌｍａｎ方程式から導出される。あるいは、Ｑ値は、オプションまたはマクロまたはＨＡＭもしくはＭａｘ−ｑメソッドから導出し、ＭＤＰを導出するためのデータベースに格納される。
【０１０６】
通常、Ｑ値は、方策πが与えられたときの行動に対して特定の状態の値を提供する、行動価値関数として解釈される。Ｑ値は、次の関数により定義される：
ｑπ（ｓ，ａ）＝Ｅπ［Ｇｔ｜Ｓｔ＝ｓ，Ａｔ＝ａ］
ここで、ｑπはＱ値であり、Ｇｔは状態「ｓ」および行動「ａ」からの方策に対する総報酬であり、ＳｔおよびＡｔは、状態空間および行動空間である。Ｑ値は、学習過程で生成され、プログラム変数としてデータベースに格納される。状態「ｓ」からの総価値を定義する価値関数はさておき、方策πは次のように定義される：
Ｖπ（ｓ）＝Ｅπ［Ｇｔ｜Ｓｔ＝ｓ］
価値関数近似を伴うまたは伴わない価値は、学習過程の終わりに、ローカルプログラム変数または個別のデータベースに格納される。
【０１０７】
本明細書の一実施形態によれば、強化学習（ＲＬ）アルゴリズムは、ＳｏＣドメインごとに、Ｑ値が事前設定された閾値を下回って収束すると終了する。あるいは、強化学習（ＲＬ）アルゴリズムは、定義済みの実験／エピソード数が完了すると終了する。さらに、強化学習（ＲＬ）アルゴリズムは、それが所定の目標性能または終了状態に達すると終了する。所定の状態の例には、チップ間の通信ドメイン設定におけるＮｏＣ（ネットワークオンチップ）の定義済みのスループット目標、またはチップの動的電力の定義済みの電力数、または定義済みのクロックスキュー、または定義済みのクロック数が含まれる。それでも、強化学習（ＲＬ）アルゴリズムは、定義済みの階層的に最適な目標または状態に達すると終了する。
【０１０８】
図７は、Ｑ値の収束時の強化学習（ＲＬ）アルゴリズムの終了に含まれるステップを示すフローチャートを示す。本明細書の一実施形態によれば、ＳｏＣの設計に対応する複数のドメインを用いたＡＩ設定によって強化学習を開始する（６０１）。さらに、ドメイン固有のＡＩエージェント、ドメイン固有の環境、およびドメイン固有のタスクを使用して、ドメインのＡＩ設定を行う。さらなる最適化を行い、かつ所望のＳｏＣ構成を生成するために、初期化され、コンパイルされ、最適化されていないチップデータベース用のＭＤＰ、ＳＭＤＰ、ＨＡＭおよびＭＡＸ−Ｑの形式で、ドメインＡＩを設定する。さらに、ＡＩ実験の設定をＳｏＣドメインごとに行う。ＡＩ実験の設定には、利用および探索を実行するために、貪欲アルゴリズムまたは調整された貪欲アルゴリズムなどのアルゴリズムを実装（実行）するように、各ＳｏＣドメインを構成することが含まれる（６０２）。続いて、ドメイン固有のＡＩエージェントは、ＡＩタスクを介してドメイン固有の環境と相互作用し、特定のドメインに関するＱ値を抽出するように構成されている。さらに、抽出したＱ値を、データベース／ビックデータに格納する（６０３）。Ｑ値が収束するまで、あるいはＱ値の変化率が事前設定された閾値λ未満となるまで、このプロセスを各ドメインに対して継続する（６０４）。各ＳｏＣドメインのＱ値から導出された推論の数に基づいて学習を推定する。したがって、学習の結果である新規の方策を考案／導出し、ドメイン固有のデータベースに格納する。特定のドメインで学習された新規の方策を、関連する別のドメインで学習された方策を用いて最適化し、組み合わせ／反復し、ＳｏＣを計画するための階層的に関連する最適な方策を生成する（６０５）。
【０１０９】
図８は、本明細書の一実施形態による、ＳｏＣの設計フレームワークにおいて、ＳｏＣの設計ドメインごとに定義済みの実験数またはエピソードを個々に完了した際に、強化学習（ＲＬ）プロセスを終了する方法を説明するフローチャートを示す。本明細書の一実施形態によれば、ＳｏＣの設計に対応する複数のドメインを用いたＡＩ設定によって強化学習を開始する（７０１）。さらに、ドメイン固有のＡＩエージェント、ドメイン固有の環境、およびドメイン固有のタスクを使用して、ドメインのＡＩ設定を行う。さらなる最適化を行い、かつ所望のＳｏＣ構成を生成するために、初期化され、コンパイルされ、最適化されていないチップデータベース用のＭＤＰ、ＳＭＤＰ、ＨＡＭおよびＭＡＸ−Ｑの形式で、ドメインＡＩを設定する。さらに、ＡＩ実験の設定をＳｏＣドメインごとに行う。ＡＩ実験の設定には、利用および探索を実行するために、貪欲アルゴリズムまたは調整された貪欲アルゴリズムなどのアルゴリズムを実装（実行）するように、各ＳｏＣドメインを構成することが含まれる（７０２）。続いて、ドメイン固有のＡＩエージェントは、ＡＩタスクを介してドメイン固有の環境と相互作用し、特定のドメインに関するＱ値を抽出する。さらに、抽出したＱ値を、データベース／ビッグデータに格納する（７０３）。定義済みの数の実験／エピソードが完了したら、強化学習（ＲＬ）アルゴリズムを終了する（７０４）。各ＳｏＣドメインのＱ値から導出された推論の数に基づいて学習を推定する。学習の結果である対応する新規の方策を考案／導出し、ドメイン固有のデータベースに格納する。特定のドメインで学習された新規の方策を、関連する別のドメインで学習された方策を用いて最適化し、組み合わせ／反復し、ＳｏＣを計画するための階層的に関連する最適な方策を生成する（７０５）
【０１１０】
図９は、本明細書の一実施形態による、ＳｏＣの設計フレームワークにおいて、ＳｏＣの設計ドメインごとに定義済みの目標性能または目標状態に個別に到達し、あるいはそれを達成した際に、強化学習（ＲＬ）プロセスを終了する方法を説明するフローチャートを示す。本明細書の一実施形態によれば、ＳｏＣの設計に対応する複数のドメインを用いたＡＩ設定によって強化学習を開始する（８０１）。さらに、ドメイン固有のＡＩエージェント、ドメイン固有の環境、およびドメイン固有のタスクを使用して、ドメインのＡＩ設定を行う。さらなる最適化を行い、かつ所望のＳｏＣ構成を生成するために、初期化され、コンパイルされ、最適化されていないチップデータベース用のＭＤＰ、ＳＭＤＰ、ＨＡＭおよびＭＡＸ−Ｑの形式で、ドメインＡＩを設定する。さらに、ＡＩ実験の設定をＳｏＣドメインごとに行う。ＡＩ実験の設定には、利用および探索を実行するために、貪欲アルゴリズムまたは調整された貪欲アルゴリズムなどのアルゴリズムを実装（実行）するように、各ＳｏＣドメインを構成することが含まれる（８０２）。続いて、ドメイン固有のＡＩエージェントは、ＡＩタスクを介してドメイン固有の環境と相互作用し、特定のドメインに関するＱ値を抽出する。さらに、抽出したＱ値を、データベース／ビッグデータに格納する（８０３）。強化学習（ＲＬ）アルゴリズムは、定義済みの目標性能または終了状態に到達すると終了する（８０４）。各ＳｏＣドメインのＱ値から導出された推論の数に基づいて学習を推定する。学習の結果である対応する新規の方策を考案／導出し、ドメイン固有のデータベースに格納する。特定のドメインで学習された新規の方策を、関連する別のドメインで学習された方策を用いて最適化し、組み合わせ／反復し、ＳｏＣを計画するための階層的に関連する最適な方策を生成する（８０５）。
【０１１１】
図１０は、本明細書の一実施形態による、ＳｏＣ設計フレームワークにおいて、トップダウンアプローチによって、ＳｏＣの設計ドメインごとに個別に導出された定義済みの階層的に最適な状態または目標に到達し、あるいはそれを達成した際に、強化学習（ＲＬ）プロセスを終了する方法を説明するフローチャートを示す。本明細書の一実施形態によれば、ＳｏＣ設計に対応する複数のドメインを用いたＡＩ設定によって強化学習を開始する（９０１）。さらに、ドメイン固有のＡＩエージェント、ドメイン固有の環境、およびドメイン固有のタスクを使用して、ドメインのＡＩ設定を行う。さらなる最適化を行い、かつ所望のＳｏＣ構成を生成するために、初期化され、コンパイルされ、最適化されていないチップデータベース用のＭＤＰ、ＳＭＤＰ、ＨＡＭおよびＭＡＸ−Ｑの形式で、ドメインのＡＩ設定を行う。さらに、ＡＩ実験の設定をＳｏＣドメインごとに行う。ＡＩ実験の設定には、利用および探索を実行するために、貪欲アルゴリズムまたは調整された貪欲アルゴリズムなどのアルゴリズムを実装（実行）するように、各ＳｏＣドメインを構成することが含まれる（９０２）。続いて、ドメイン固有のＡＩエージェントは、タスクを介してドメイン固有の環境と相互作用し、特定のドメインに関するＱ値を抽出する。さらに、抽出したＱ値を、データベース／ビッグデータに格納する（９０３）。強化学習（ＲＬ）アルゴリズムは、事前設定された階層的に最適な状態に到達すると終了する（９０４）。各ＳｏＣドメインのＱ値から導出された推論の数に基づいて学習を推定する。学習の結果である対応する新規の方策を考案し、ドメイン固有のデータベースに格納する。特定のドメインで学習された新規の方策を、関連する別のドメインで学習された方策を用いて最適化し、組み合わせ／反復し、ＳｏＣを計画するための階層的に関連する最適な方策を生成する（９０５）。
【０１１２】
図１１Ａおよび１１Ｂは、本明細書の一実施形態による、ＳｏＣの設計プロセスにおいてＳＭＤＰの階層を同期させる方法を説明するフローチャートを示す図である。この方法は、仕様またはデータベースからチップトポロジを初期化するステップを含む（１１０１）。さらに、チップトポロジを、ＨＡＭ制約を伴うマルコフ決定過程（ＭＤＰ）に関連付ける（１１０２）。続いて、チップトポロジを、複数のＳＭＤＰまたはＭＤＰに関連付ける。複数のＳＭＤＰまたはＭＤＰを有効にする（１１０３）。続いて、事前設定されたＱ値または事前設定された目標が達成され、有効になった複数のＳＭＤＰまたはＭＤＰが終了したら、複数のＳＭＤＰまたはＭＤＰを同期する（１１０４）。同じ階層の複数のサブドメインを有効にする（１１０５）。事前設定されたＱ値または事前設定された目標が達成されると、有効になった複数のサブドメインが終了する（１１０６）。さらに、事前設定されたＱ値または事前設定された目標が達成され、有効になった複数のサブドメインが終了したら、複数のサブドメインを同期する（１１０７）。同期されたサブドメインに従属しているサブドメインを有効にする（１１０８）。従属サブドメインは、事前設定された目標を達成した後に終了する（１１０９）。続いて、複数のＳＭＤＰの物理検証を開始する（１１１０）。物理検証プロセスは、事前設定された目標実験回数を達成した後に終了する（１１１１）。これにより、ＳｏＣ設計のための最適なチップアーキテクチャが得られる。このチップ設計を、ＧＤＳ（グラフィックデータベースシステム）に格納し、チップ製造のためのファウンドリに転送する（１１１２）。
【０１１３】
本明細書の一実施形態によれば、あるＳＭＤＰが他のＳＭＤＰに依存していない（例えば、有効電力ＳＭＤＰおよび配置ＳＭＤＰ）場合、あるＳＭＤＰに、該ＳＭＤＰが最終状態に達したことを他のＳＭＤＰと通信させることによって同期が行われる。同期は、ＳＭＤＰが終了状態に達したことを示唆するグローバルブロードキャスト信号の１つである。終了したＳＭＤＰはまた、ＳＭＤＰタイミングあるいはＳＭＤＰの検証でバグが見つかったときに、タイムクロージャのメトリックのような最終結果をグローバルデータベースにアップロードするように構成されている。あるいは、あるＳＭＤＰが他のＳＭＤＰに依存している場合、各ＳＭＤＰはロックステップまたは反復ループで動作する。各ＳＭＤＰは、別々の同期状態の他のＳＭＤＰ（例えば、論理検証ＳＭＤＰと論理設計ＳＭＤＰ）と通信する。各ＳＭＤＰは、それぞれの最終結果を伝え、バグ修正、最適化を待ち、その設計がＰＤまたは合成に送るのに最適な形状であることを要求する。
【０１１４】
本明細書の一実施形態によれば、２つ以上のＳＭＤＰが同期プロセスに関与して、その最終結果が複数のＳＭＤＰ、オプションマクロおよびＭＤＰの間で共有される。
【０１１５】
図１２は、本明細書の一実施形態による、ＳｏＣ設計のプロセスにおける、ＳＱＬスキーマまたは文書データベースに格納された階層型Ｑテーブルの平面図または概略図を示す。ＡＩフレームワークは、リーフレベルのオプションマクロまたはＭＤＰから、ＡＩ  ＳＯＣＤの最上層ＳＭＤＰへの階層バックアップを実行するように構成されている。ＨＡＭ制約の呼状態の間に、１つのＳＭＤＰが他のＳＭＤＰを呼び出す場合、状態のＨＡＭフレームワークはＳＭＤＰを同期するために使用される。
【０１１６】
本明細書の一実施形態によれば、Ｍａｘ−Ｑのフレームワークに基づいて、ＳｏＣの全体設計を修正する。ＳｏＣＤ１２０１は、最上層のＳｏＣ設計タスクであり、ＳｏＣＤ０，ＳｏＣＤ１，ＳｏＣＤ２，．．．ＳｏＣＤＮに分解される。これらのＳｏＣＤの各々は、複数のＡＩ  ＳｏＣドメイン１２０１ａ，１２０１ｂ，１２０１ｃ，１２０１ｄにマッピングされる。一例では、ルートタスクＳｏＣＤが方策πを実行し、タスクの階層｛ＳｏＣＤ０，ＳｏＣＤ１，ＳｏＣＤ２，．．．ＳｏＣＤＮ｝は、方策｛π０，π１，π２，．．．πＮ｝（これらがまとまって方策πを表す）を実行するために使用される。さらに、各ドメインは、サブドメイン１２０２ａ、１２０２ｂ、１２０２ｃにさらに分割されて、再帰的Ｍａｘ−Ｑ、ＨＡＭまたはエンドポイントオプション／マクロ１２０４などの方策およびＳＭＤＰの階層を実装する。
【０１１７】
本明細書の一実施形態によれば、ＳＭＤＰのＱ学習は、ＳｏＣＤサブドメインを使用してＡＩフレームワークにわたって適用される。Ｑ値は、次式によって与えられる：
【数１】
0006902112.tif 000002
ここで、Ｑπ（ｉ，ｓ，ａ）は、ｉ番目のＳＭＤＰの方策πｉに従うＱ値であり、Ｖπは、方策πに従う行動ａを伴う状態Ｓでの価値関数であり、Ｐｉπは、方策πに従う次の状態への遷移確率である。
【０１１８】
本明細書の一実施形態によれば、Ｑ値の格納および使用法は、Ｍａｘ−Ｑフレームワークの再帰的構造のために非常に異なる。ＳＭＤＰの各階層で異なるＱ値が生成される。そのため、Ｑ値の式は次式によって与えられる：
【数２】
0006902112.tif 000003
ここで、ｉ１，ｉ２，ｉ３，．．．ｉｎ，は、関係する反復ＳＭＤＰによって導入され、ｎは、Ｑ値のｎ番目の階層を示している。ＳＭＤＰの数百万の階層が関係しており、何十億ものＱ値があるため、Ｑ値はデータベースに格納される。現在のＳｏＣの設計におけるＱ値を組み合わせて最終的なＱ値を取得することを可能にするために、データベースは、１００ペタバイトの容量を有する。
【０１１９】
最上層のＳＭＤＰの最終的なＱ値は、次式で表される：
【数３】
0006902112.tif 000004
【０１２０】
Ｑ値は、最上層のＳＭＤＰの所与の状態における、すべての階層的ＳＭＤＰのＱ値の関数である。Ｑ値関数は、合計を実行する前に各報酬をスケーリングすることを必要とする。すべての他のＱ値のスケール係数は、ディープニューラルネット（ＤＮＮ）によって決定される。
【０１２１】
図１２を参照すると、階層的ＳＭＤＰ構造のＱ値は、テーブルベースのデータベース（ＭＹＳＱＬおよびＭＳＳＱＬなど）またはドキュメントベースのデータベース（ＮＯＳＱＬ、Ｍｏｎｇｏｄｂなど）またはグラフデータベースに格納される。各データベースには、子ＳＭＤＰのＱ値を指す外部キーまたはポインタが含まれている。さらに、最上層のＳＭＤＰのＱ値は、エントリ状態からのより下層のＳＭＤＰの最大Ｑ値に依存する。最上層のＳＭＤＰのＱ値をより下層のＱ値にマッピングするプロセスは、最下層のＭＤＰまたはオプションマクロに達するまで階層を下って続く。最上層のＳＭＤＰのＱ値は、次式により与えられる：
【数４】
0006902112.tif 000005
ここで、ｇｉ（φ）およびｆ（）は、ディープニューラルネットワーク上でのトレーニングを使用して取得され、Ｑｉπ（ｓ，ａ）は、子ＳＭＤＰのｉ番目の階層のＱ値である。
【０１２２】
本明細書の一実施形態によれば、ディープニューラルネットワークは、階層的ディープＳＭＤＰネットワーク（ＨＤＳＮ）またはディープＭａｘ−ＱネットワークまたはディープＨＡＭネットワークである。（ＤＱＮとは異なり）ＨＤＳＮでは、経験再生は階層的であり、１つ以上のディープニューラルネットワークを使用して、ＳＭＤＰ間の関係を取得し、さらに異なるＱ値間の関係関数近似を取得する。ＨＤＳＮでは、次に、経験再生を使用して、異なるＳＭＤＰのＱ値間の関係を取得する。
【０１２３】
図１３は、本明細書の一実施形態による、ＳｏＣの設計プロセスにおけるＨＤＳＮでの経験再生に使用されるディープニューラルネットワークのブロック図または概略図を示す。ＨＤＳＮは、階層的ＡＩにおける異なるＳＭＤＰ間の関係を取得するために使用される。さらに、ＨＤＳＮは、異なるＱ値間の関係関数近似を得るように構成されている。
【０１２４】
本明細書の一実施形態によれば、より下層のＳＭＤＰテーブルから取得されたＳＭＤＰのＱ値は、より上層のＱ値を取得するためにＤＮＮを通過する。このように、ＤＮＮは、より下層のＱ値をより上層のＳＭＤＰのＱ値に変換するために使用される。さらに、Ｑ値の階層は、ＤＮＮを介してネットワーク化されている。ＳＭＤＰの階層ごとに異なるネットワーク構成が使用されている。ＯＣＡ（最適なチップアーキテクチャ）は、Ｑテーブル、ＳＭＤＰ、すべての階層にわたるそれらの間の関係の集合として定義される。最適なチップアーキテクチャ（ＯＣＡ）は、最上層のＳＭＤＰの最大Ｑ値に対応する。
【０１２５】
本明細書の一実施形態によれば、最上層のＳＭＤＰの最大Ｑ値は、ＡＩ  ＳＯＣドメインにわたって取得される。ＡＩ  ＳｏＣドメインは、再帰的なＭａｘ−Ｑフレームワークにさらに分解されるか、ＨＡＭ選択状態またはＭａｘ−ＱとＨＡＭとの組み合わせを通じて呼び出される。例えば、ＳｏＣのフロントエンドの統合は、純粋にＭＡＸ−Ｑ値関数の分解であり、一方で、ボトムアップ合成は、１つのモジュールレベルの合成の完了後に、異なる状態の合成またはサブブロック合成を要求するＨＡＭである。Ｍａｘ−Ｑは、機能検証でも使用され、ここでは、チップ全体の検証値関数が、ブロックレベルの検証、最上層検証の階層的タスクに分割される。検証プロセスは、ブロックレベルの検証が完了したことを確認するために実行される。したがって、ＡＩ  ＳｏＣ設計は、最上層のＳＭＤＰの最大Ｑ値を達成するためにいくつかのＳＭＤＰに分割され、ＯＣＡは、最上層のＳＭＤＰの最大Ｑ値から取得される。
【０１２６】
図１４は、本明細書の一実施形態による、ＳｏＣ設計プロセスにおける階層的強化学習のＡＩフローを使用して最適なチップアーキテクチャ（ＯＣＡ）を生成するためのシステムの機能ブロック図を示す。本明細書の一実施形態によれば、ＡＩの階層的強化学習に基づくチップアーキテクト・オプティマイザは、アプリケーションソフトウェアの仕様１４０１、コンポーネントコストのメトリック１４０２、コンポーネント性能のメトリック１４０４、システム記述言語（ＳＤＬ）を介したソフトウェア機能１４０３、およびチップ記述言語（ＳＤＬ）を介したハードウェア機能１４０５からの入力を受け取るように構成されている。チップアーキテクト・オプティマイザ１４０６はさらに、チップ通信最適化、チップ入出力最適化、チップ配置最適化、チップＤＦＴ／ＤＦＤ最適化、およびチップ検証最適化を実行するように構成されている。最後に、最適なチップアーキテクチャ１４０７が生成される。
【０１２７】
図１５は、本明細書の一実施形態による、強化学習プロセスを使用したＳｏＣの設計プロセスにおける、ドメインごとにＭＤＰを抽出する方法を説明するフローチャートを示す。本明細書の一実施形態によれば、環境の試行錯誤学習を、複数のシングルステップアクションで実行する。各ステップアクションは、状態に関連付けられている（１４１０）。ステップの実行は、Ｎ回の反復後に終了する。各エピソード／ステップについての価値関数（Ｖ＊）およびＱ値を、各ＳＭＤＰのデータベース（例えば、アルファＤＢ）に格納する（１４１２）。ＥＤＡツールと相互作用するときのアーキテクチャのパフォーマンスや結果など、価値関数およびｑ値における大きなばらつきとして状態を識別する（１４１３）。Ｎ回のステップからのサンプル状態を取得し、遷移の何らかの確率分布を伴うＭＤＰを形成する（１４１４）。ＭＤＰが精密化されて、最適なＱ値に見られる収束。その後、バックアップを行い、最上層ＭＤＰの価値関数および行動価値を取得する（１４１５）。ＭＤＰが精密化され、集束されると、最適なＱ値が得られる。（１４１６）このようにして、最上層のＭＤＰが終了する（１４１７）。
【０１２８】
図１６は、本明細書の一実施形態による、ＳｏＣ設計プロセスにおけるビッグデータフレームワークの機能ブロック図を示す。階層型強化学習、またはディープ階層型強化学習、または環境からの学習と学習データからのチップアーキテクチャの計画とを含む強化学習の任意の方法を使用して、強化学習を階層的に実行する（１６０１）。学習データをデータベースに格納する。格納されたデータには、Ｑ値、ＳＭＤＰ行動価値テーブル、価値関数、関数近似に使用されるニューラルネットワークの重み、およびＳＭＤＰ間の関係が含まれる（１６０２）。格納されたデータは、ＳｏＣに関する学習情報のために引き出される。格納されたデータを使用して、様々なＭＤＰ、ＳＭＤＰ、オプションマクロ、ＨＡＭおよびＭａｘ−ＱなどのＨＲＬ構造を導出することによって、ＳｏＣのＡＩ計画を実行する（１６０３）。将来の再利用のために、計画されたＳｏＣ情報を格納する。計画され、格納されたＳｏＣ情報には、複数のＭＤＰ、計画されたＳＭＤＰ、ＨＲＬ構造、ＯＣＡ、および推論などの情報が含まれる（１６０４）。
【０１２９】
図１７は、本明細書の一実施形態による、ＳｏＣ設計プロセスにおいてＳｏＣドメインおよびサブドメインを抽象化する方法を説明するフローチャートを示す。電子システム設計のための新しい仕様は、ビッグデータプロセッサ（１７００）に格納された学習情報および推論を使用することから得られる。ビッグデータプロセッサ（１７００）は、古くて既存のＰＣＢ設計からボードレベルのＰＣＢ情報を受け取って使用する。該プロセッサは、データベースからのＳｏＣ設計からの、既存のコンポーネント仕様および学習情報の機械可読形式を使用する。ビッグデータプロセッサ（１７００）は、チップ機能のビッグデータ（１７０１）、コンポーネント性能のビッグデータ（１７０２）、顧客の要求およびビジネスインテリジェンスのビッグデータ（１７０３）、プロセスおよびテクノロジノードのビッグデータ（１７０４）、リアルタイムな情報検索およびテクノロジリサーチ（１７０５）を受け取って利用するように構成されている。
【０１３０】
学習情報を組み合わせることによって、ビッグデータプロセッサ１７００は、新しい電子システムに関する洞察を提供するように構成されている。ビッグデータプロセッサが使用する他の情報は、コンポーネントのコスト、品質、および可用性である。ビッグデータプロセッサの出力には、新しい電子コンポーネント１７０６のコスト、コンポーネント性能１７０７、アプリケーションソフトウェア仕様１７０８、ＣＤＬ１７０９、ならびにＳＤＬ１７１０、アプリケーション、および新しい電子システムをターゲットにしたＳｏＣに関心がある可能性のあるターゲット顧客の推定値が含まれる。
【０１３１】
図１８は、本明細書の一実施形態による、ＳｏＣ設計のためのデータベースアーキテクチャのブロック図を示す。図１８を参照すると、ＡＩベースのＳｏＣチップ設計を生成するためのデータベーススキームには、ＣＬＤパーサ１８０１、リレーショナルデータベース１８０２、入出力リングおよびチップ境界１８０３、グラフデータベース１８０４、物理データベース１８０５、およびチップトポロジ８０６が含まれる。
【０１３２】
電子システム設計の新しい仕様は、ビッグデータプロセッサに格納された学習情報および推論を使用することから得られる。ビッグデータプロセッサは、古い既存のＰＣＢ設計からのボードレベルのＰＣＢ情報を使用する。それは、既存のコンポーネント仕様の機械可読フォーマットと、データベースからのＳｏＣ設計からの学習情報と、を使用する。ビッグデータプロセッサは、学習情報を組み合わせることによって、新しい電子システムの洞察を提供する。ビッグデータプロセッサに格納されているその他の情報は、コンポーネントのコスト、品質および可用性である。ビッグデータプロセッサの出力には、新しい電子システムのコスト、アプリケーション、および新しい電子システムを対象としたＳｏＣに関心のある対象顧客の見積もりが含まれる。
【０１３３】
本明細書の一実施形態によれば、いくつかの新しい方策は実験中に学習され、いくつかの選択肢が発見され、ＳｏＣアーキテクチャおよび回路を設計する際に適用される。すべてのＳＭＤＰのＱテーブルが最適なＱ値で満たされ、関連するＤＮＮがＳＭＤＰ階層間の関係関数を近似するように構成されると、最適なＳｏＣアーキテクチャが最上位レベルのＳＭＤＰから導出される。ＳｏＣアーキテクチャでは、ＰｏＲ  ＳｏＣを正しく取得する必要があり、これは、機能ＳＭＤＰドメインを介して行われる。次に、各ＡＩ  ＳｏＣサブドメインにマッピングされている、パワードメインアーキテクチャ、ＮｏＣアーキテクチャおよび設計パーティショニング，クロッキングを介して正しいＩＰおよび内部接続を選択する必要がある。最適な方策は、格納されたＱ値に基づいて学習される。トレーニングされたデータベースから、将来のＳｏＣ回路が得られる。
【０１３４】
技術的な利点には、ＳｏＣ設計、および、人工知能を組み込み、強化学習の原理を実装したフレームワークが実現されることが含まれる。本明細書の実施形態のＳｏＣ設計フレームワークは、ＳｏＣ回路の設計に関連するリスクおよび不確実性を軽減する。さらに、ＳｏＣフレームワークを使用すると、回路設計者は、これまで未踏の設計スペースを探索できるようになるだけでなく、ＳｏＣ回路のアーキテクチャを積極的に試すことができるようになる。さらに、本明細書の実施形態によって開示されるＳｏＣ設計フレームワークはまた、ＳｏＣ回路設計に関連する創造性を高めながら、その中のバグの発生を低減する。さらに、当該ＳｏＣフレームワークはまた、回路設計者が（ＳｏＣ回路）設計アーキテクチャで実験することを可能にしながら、ＳｏＣ回路の設計についての洞察を得ることを可能にする。さらに、ＳｏＣ設計フレームワークは、ＳｏＣ回路の設計と実装に関連する応答時間（ターンアラウンドタイム）も短縮する。
【０１３５】
特定の実施形態の前述の説明は、本明細書の実施形態の一般的な性質を十分に明らかにしているので、当業者は、現在の知識を適用することによって、一般的な概念から逸脱することなく、特定の実施形態などの様々な応用に容易に変更を加え、かつ／あるいはそれに適応させることができ、したがって、そのような変更および適応は、開示された実施形態の均等物の意味および範囲内で理解されるべきである。
【０１３６】
本明細書で使用されている表現または用語は説明を目的としており、限定を目的としていないことを理解されたい。したがって、本明細書の実施形態は好ましい実施形態に関して説明されているが、当業者は、本明細書の実施形態が修正を加えて実施され得ることを認識するであろう。しかしながら、すべてのそのような修正は特許請求の範囲内にあるとみなされる。
【図１】
0006902112.tif 000006
【図２】
0006902112.tif 000007
【図３】
0006902112.tif 000008
【図４】
0006902112.tif 000009
【図５】
0006902112.tif 000010
【図６】
0006902112.tif 000011
【図７】
0006902112.tif 000012
【図８】
0006902112.tif 000013
【図９】
0006902112.tif 000014
【図１０】
0006902112.tif 000015
【図１１Ａ】
0006902112.tif 000016
【図１１Ｂ】
0006902112.tif 000017
【図１２】
0006902112.tif 000018
【図１３】
0006902112.tif 000019
【図１４】
0006902112.tif 000020
【図１５】
0006902112.tif 000021
【図１６】
0006902112.tif 000022
【図１７】
0006902112.tif 000023
【図１８】
0006902112.tif 000024