JP2013524303A - 設計空間探索を加速する方法及び装置 - Google Patents

設計空間探索を加速する方法及び装置 Download PDF

Info

Publication number
JP2013524303A
JP2013524303A JP2012545965A JP2012545965A JP2013524303A JP 2013524303 A JP2013524303 A JP 2013524303A JP 2012545965 A JP2012545965 A JP 2012545965A JP 2012545965 A JP2012545965 A JP 2012545965A JP 2013524303 A JP2013524303 A JP 2013524303A
Authority
JP
Japan
Prior art keywords
cluster
design
clusters
search
attributes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012545965A
Other languages
English (en)
Other versions
JP5605435B2 (ja
Inventor
シェイファ ベンジャミン カリョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JP2013524303A publication Critical patent/JP2013524303A/ja
Application granted granted Critical
Publication of JP5605435B2 publication Critical patent/JP5605435B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/06Multi-objective optimisation, e.g. Pareto optimisation using simulated annealing [SA], ant colony algorithms or genetic algorithms [GA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

対象デバイスの動作記述が与えられたときに対象デバイスの設計空間探索を加速する方法は、動作記述を構文解析して依存関係解析木を構築することと、依存関係解析木に基づきクラスタの独立した組を生成することと、対象デバイスの設計での最終的な回路に対する、異なって合成された各操作の影響を立証するために、各クラスタの合成可能な操作を網羅的に探索することと、クラスタに対する属性を組み合わせて、制約条件のもとで改善された特性を有する設計を生成することと、有する。各クラスタは、依存関係解析木の1つ以上のノードの集合であって独立に探索可能である。

Description

本発明は、集積回路(IC:integrated circuit)、大規模集積回路(LSI:large-scale integration)及び超大規模集積回路(VLSI:very-large-scale integration)のような半導体デバイスのための自動化電子回路設計(EDA:electronic design automation)に関し、特に、設計空間探索を加速する方法及び装置に関する。
動作(振る舞い(behavior))回路記述から開始して同じ機能を有するが特性(例えば、面積、レイテンシ、スループット、電力消費、メモリ使用量)が異なっているLSI回路を自動生成することを加速する方法及び装置が提示される。このような自動生成は、設計空間探索(DSE:design space exploration)とも呼ばれる。同じ機能を有し制約条件(例えば、面積、タイミング、電力、温度)の組に適合する、一連の固有ハードウェアアーキテクチャが、動作機能レベルのLSI回路記述から始めて自動的に生成される。設計空間探索での主要な目的は、指定された制約条件の組に対して最も効率的な回路を見出すことである。これらの最も効率的な設計は、効率性フロンティア(パレート(Pareto)フロンティアとも呼ばれる)と呼ばれるものを構築する。図1は、面積とレイテンシとが制約条件として用いられている設計空間探索の結果の例を示している。各々の点は、固有の面積とタイミング特性とを有するLSI設計に対応し、黒丸で示される点は、パレート最適のLSI設計に対応し、白丸で示される点は、パレート最適でないLSI設計に対応する。パレート最適のLSI設計の点は、パレートフロンティア上に配列されている。
説明を簡単にするため、たった2つの制約条件しか図1には示されていないが、電力、温度、周波数などの他の制約条件も考慮することができる。アーキテクチャ上のトレードオフは、設計者にとって意味のない設計空間全体を考慮することよりも、むしろ、この集合、すなわちパレートフロンティア上の設計の中で探索することができる。
設計空間探索における主要な課題は、設計空間のサイズである。ほどんど無数のLSI回路を動作回路記述から生成することができるから、総当たり検索によって、全ての効率的な設計を最終的には見つけ出すことができるであろう。しかしながら、これは、単一の回路を生成するために極端に長い実行時間がかかるので、大きな回路に対しては現実的ではない。したがって、最も効率的な設計をできるだけ速く得るために、設計空間の探索を加速するいくつかの方法が提案されている。
例えば、Benjamin Carrion Schaferらは、予め定められたクラスタの組に対し、合成命令(synthesis directive)の一定の組を適用することによって、設計空間探索を加速することを提案している(非特許文献1)。この提案された方法は高速ではあるが、その一方で、効率的なLSI設計の多くを見落とすことをもたらす。
特許文献1には、物理設計最適化を実行する方法であって、動作記述及び制約条件からデータフローを生成して動作合成情報を生成し、動作合成情報に基づいてLSIのフロアプランのレベルでのクラスタを形成し、タイミングの制約条件に違反するそれらのクラスタのみを再合成することによる方法が開示されている。この提案された方法は、タイミング制約条件を適合するLSIフロアプランの作成をスピードアップする。
また特許文献2は、初期の設計段階においてチップサイズとクリティカルパスとを評価することができるLSI設計システムを開示している。このシステムでは、ディレイ(遅延)モデルとエリア(面積)モデルとが、HDL(ハードウェア記述言語(Hardware Description Language))レベルでのLSI記述から生成され、次いで、エリアモデルに基づいてフロアプランが作成される。ディレイモデルとフロアプランとに基づく静的タイミング解析が実行されて、チップサイズとクリティカルパスとが評価される。特許文献3には、高レベル記述言語を用いてLSIの所望の電子回路モデルを記述し、そのLSIのさらに精密なコスト評価を実行するシステムが開示されている。このシステムは、まず、所望の電子回路モデルを記述する記述ファイルの構文解析を行って、木構造などの予め定められたグラフ構造を有する制御データフローグラフを生成する。次にシステムは、複数のノードの組から構成されて特定の機能を実現するスレッドに、制御データフローグラフを分割する。システムは、所定の面積制約条件及びタイミング制約条件に適合するように、その分割されたスレッドを最適化し、所望の電子回路モデルに関して論理(ロジック)セルの個数、機能、配置及びルーティングの特定情報(specifying information)を取得する。
特開2004−265224号公報 米国特許第6,463,567号明細書 米国特許公開第2002/0162907号
Benjamin Carrion Schafer and Kazutoshi Wakabayashi, "Design Space Exploration Acceleration through Operation Clustering," IEEE Transaction on Computer Aided Design (TCAD), January 2010, Vol. 29, Issue 1, pp. 153-157
設計空間探索を加速する方法がいくつか提案されてきているが、提案された方法は最適設計を素早く決定するためには十分ではなく、設計空間探索は著しく時間を消費する。できるだけ速く最も効率的な設計を得るために、設計空間の探索を加速する要求がある。
したがって、本発明の例示的な目的は、動作記述から始めるLSI設計に関して設計空間探索を加速し、総当たり法あるいは人手による方法に比べてより高速に最も効率的なLSI設計に到達する方法を提供することにある。
本発明の別の例示的な目的は、動作記述から始めるLSI設計に対する設計空間探索を加速された形態で実行し、総当たり法あるいは人手による方法に比べてより高速に最も効率的なLSI設計に到達できる設計空間探索装置を提供することにある。
本発明の例示的な態様によれば、対象デバイスの動作記述が与えられたときに対象デバイスの設計空間探索を加速する方法は、動作記述を構文解析して依存関係解析木を構築することと、依存関係解析木に基づきクラスタの独立した組を生成することと、対象デバイスの設計での最終的な回路に対する、異なって合成された各操作の影響を立証するために、各クラスタの合成可能な操作を網羅的に探索することと、クラスタに対する属性を組み合わせて、制約条件のもとで改善された特性を有する設計を生成することと、を含み、各クラスタは、依存関係解析木の1つ以上のノードの集合であって独立に探索可能である。
本発明の別の例示的な態様によれば、対象デバイスの設計空間を探索する装置は、対象デバイスの動作記述を格納する第1の記憶装置と、第1の記憶装置から読み出される動作記述を構文解析して依存関係解析木を構築し、依存関係解析木に基づいてクラスタの独立した組を生成するパース生成器と、制約条件と属性のライブラリとを格納する第2の記憶装置と、第2の記憶装置に格納されたライブラリを参照して各クラスタに対する合成命令を挿入することにより、動作記述をインストルメント化するプリプロセッサと、対象デバイスの設計での最終的な回路に対する、異なって合成された各操作の影響を立証するために、各クラスタの合成可能な操作を網羅的に探索し、クラスタに対する属性を組み合わせて、制約条件のもとで改善された特性を有する設計を生成する高レベル合成器と、を含み、各クラスタは、依存関係解析木の1つ以上のノードの集合であって独立に探索可能である。
ここに記載される方法及び装置は、LSI設計の設計空間探索を加速するツールを提供する。
本発明の上記及び他の目的、特徴及び効果は、本発明の例示実施形態を示す添付の図面に基いて、以下の記載から明らかになるであろう。
全てのパレート最適LSI設計を含む効率的LSI設計フロンティアを示す、例示的な設計空間探索の結果を示すグラフである。 実施形態に基づくLSI設計探索方法を示すフローチャートである。 設計探索結果のスクリーンショットの一例の図である。 例示実施形態に基づく探索フローの全体を示すデータフローグラフである。 所与の時間非依存(untimed)動作LSI設計記述からの依存関係解析木生成の一例を示す図である。 合成されたLSI回路への合成命令(synthesis directive)の影響を解析するために別々に探索されるであろう、独立したクラスタの構成を示す図である。 動作LSI記述と解析された依存関係木及びクラスタ生成の結果との例を示す図である。 各クラスタに対して生成されたデータ構造の例を示すことによって、図7に与えられた例に対する個々のクラスタの探索の結果を示す図である。 各クラスタの属性の組み合わせを備える新しい設計が個別のクラスタ探索の結果に基づいて生成されている探索における、最終ステップの例を示す図である。 一例示実施形態に基づく設計空間探索装置を示すブロック図である。 情報処理装置を示すブロック図である。
次に、説明のために、複数の図にわたって同様の参照符号は同様の要素を示している図面を参照すると、添付の図面は本発明の例示実施形態を示している。例示実施形態は、動作記述言語により規定されたLSIシステムの自動化された設計空間探索を加速する方法及び装置に関し、より詳しくは、高レベル合成に対する時間非依存の高レベル言語記述から開始してパレート最適設計を探すことを加速する方法及び装置に関する。
上述したように、図1は、設計空間探索の一般的な目的を示している。パレートフロンティア上にある設計の集合内で簡単にアーキテクチャ上のトレードオフを探索するために、設計空間の全体を考慮するよりも、むしろ、パレート最適LSI設計だけを見出す必要がある。設計空間の全体を考慮することは、非現実的であり、また、設計者にとっても無関係なことである。これらのLSI設計のみを取得することも非常に時間を消費し、総当たり法あるいはこれら手動で発生する方法を用いては現実的でない。
例示実施形態でのLSI設計方法の設計フローの概要が図2に示されている。LSI記述の手動での改変や非常に時間がかかる自動化プロセスを有する関連技術の設計フローとは対照的に、例示実施形態は、設計空間探索を高速化する。
図2に示される設計フローは、動作LSI機能記述301を受け取ることから開始する。動作記述は、C言語あるいはSystemC言語のような任意の動作記述言語またはハードウェア記述言語で記述される。記述は、次にステップ302において、構文解析され(パースされ)て、解析木(parse tree)と、探索可能な操作(operation)のみを有する独立したクラスタとが生成される。次にステップ303において、動作記述は、各クラスタのソースコードにおいて合成命令を直接挿入することによって、自動的にインストルメント化される。記憶部304は、属性(attribute)を含んでいるライブラリと、面積やレイテンシなどの制約条件とを格納する。記憶部304に格納された属性は、動作記述をインストルメント化するために用いられる。
インストルメント化された動作LSI記述は、次にステップ305において、高レベル合成(HLS:high level synthesis)ツールを用いて合成され、この合成の結果は、記憶部304に格納された制約条件の下での最も効率的な設計のすべてが生成されるまで探索を続行するために、ステップ306において読み出され格納される。反復の間、生成された設計は、図3に示すように、表示装置上のトレードオフ・ウィンドウ307に表示することができる。図3は、設計探索結果の例示的なスクリーンショットを示しており、ここでは、グラフ上の各点は、それぞれ固有の特性を有する回路に対応する。
上述したように設計空間探索は、高レベル合成ツールを用いる動作記述の合成を伴っている。合成結果は、グローバル合成オプション、及び/または、回路記述に直接注記される特定の合成命令を設定することによって、制御することができる。これらのグローバル合成オプション及びローカル合成命令は、異なったLSI設計の生成をもたらす。グローバル合成オプションはLSI記述の全体に影響し、一方、ローカル合成命令は、設計の一部のみに影響を及ぼして、ソースコード中の具体的な操作において直接指定される。これらの操作のいくつかは、“フォーループ(for loop)”、関数(fuction)及び配列(array)を含んでいる。例えば、ループは、完全にアンロール(展開)されたり、部分的にアンロールされたり、あるいはアンロールされなかったりすることができる。配列は、レジスタ、配線接続ロジック、またはメモリにマップすることができ、関数は、単一のハードウェアブロックとして、あるいは複数のブロックとして合成することができる。図1は、LSI設計の動作記述に対して異なるグローバル合成オプション及びローカル合成命令を適用した結果の例を示している。この図は、より大きな面積の設計はより高い性能を有する傾向にあり、一方、より小さな設計はより低い性能を有する傾向にあることを示している。
本例示実施形態による方法を詳しく説明する。この方法は、オリジナルの動作LSI記述中の特定の操作に合成命令を挿入し、次に、インストルメント化されたLSI記述に対して高レベル合成を実行することによる、分割統治技術に基づいている。この方法は、大まかに言って、図4に示すように、4つのステップ(すなわちステップ1からステップ4)と2つのメインループとを含んでおり、一方のループはステップ3に含まれ、他方のループはステップ4に含まれている。
ステップ1: ステップS1において探索フローを開始したのち、ステップS2において、動作LSI記述は構文解析され、全ての探索可能操作、すなわち探索されることが可能な操作に対して、依存関係解析木(dependency parse tree)が構築される。動作記述は、例えば、C言語あるいはSystemC言語で記述される。探索可能操作は、合成命令を適用することが可能な操作である。図5は、解析木生成の一例を示し、ここでは、内部あるいは外部ライブラリにおいて指定されたすべての探索可能操作の依存関係を備えた木が生成される。解析木の生成の詳細は、PCT/JP2009/057043に記載されており、その開示は、全体として引用によってここに組み込まれる。
ステップ2: ステップS3において、解析木の独立した各ノードに対して独立にクラスタが構築される。図6はクラスタ生成の一例を示している。
ステップ3: 合成命令(すなわち合成属性)のすべての組み合わせ、あるいはそれらの組み合わせの重要なサブセットが、ステップS4において、各クラスタに対して独立に生成される。各クラスタは別々に探索される。ステップS5において、合成属性の各組み合わせに対し、HLSスールを呼び出すことによって新たにインストルメント化された動作記述が合成され、合成結果は、結果として得られるLSI設計に対する各属性組み合わせの影響(例えば、面積、レイテンシ、電力、温度)を解析するために、リードバック(read back)される。この目的のためにこのステップにおいて任意の検索アルゴリズムを使用できる。例えば、これらに限られるものではないが、総当たり法、焼きなまし法、遺伝アルゴリズムを使用できる。このステップの間、単一クラスタの属性のみが独立して探索される。一つのクラスタの探索の間、残りのクラスタの探索可能操作は、インストルメント化されていない状態に保たれる。すべての組み合わせをインストルメント化するために、ステップS6において、新しい属性組み合わせが見つかるかどうかがチェックされる。もし、すべての組み合わせ、あるいは最も重要な組み合わせに対する探索が完了していないのであれば、この方法では、ステップS3及びS4のこの処理が再度反復される。
ステップS4: すべてのクラスタが独立して検索されると、新しいインストルメント化されたLSI記述が、すべてのクラスタに対する属性を同時に組み合わせることによって生成される。より効率的な回路をもたらす属性が、最も効率的な設計のみを作成するために組み合わされる。特に、パレート最適LSI設計をもたらすであろう各クラスタの属性の各組がステップS7において特定され、ステップS8において、各新たにインストルメント化された記述を合成することによってパレート最適設計のみを生成するために、これらの最適設計が組み合わされる。さらなるパレート最適設計が見つからなくなるまでステップS7及びS8の処理を続けるために、ステップS9において、新たなパレート設計が生成できるかどうかが判断される。もしそうならば、処理はステップS7に戻り、そうれなければ、ステップS10において処理は終了する。
本例示実施形態において、LSI設計の所与の動作記述は、例えば固定ロジックのレジスタまたはメモリとして配列を合成するための合成命令によって、手動でインストルメント化することができる。これらの合成命令は、合成処理においてHLSツールを制御し、動作LSI記述をRTL(レジスタ転送レベル:register transfer level)言語記述のような詳細なLSI設計記述に変換する。本例示実施形態の方法は、自動的に、動作LSI記述に異なる合成命令を挿入し、それによって、異なる特性を有する異なる回路を結果としてもたらし、最も効率的な回路だけを維持する。
なお、ステップ3での各クラスタの探索は完全に独立しており、この方法は、分割して複数のプロセッサ上で実行することよって探索処理をさらに高速化できる。理想的には、探索は、独立したクラスタと同数のプロセッサ上で実行されるべきである。Nはクラスタの数に等しいとして、これは、Nのファクターで探索処理を加速するであろう。
したがって、複数のプロセッサが利用可能である場合には、必要とされるプロセッサの数をクラスタの数に基づいて可変的に調節しつつ、それぞれの独立したクラスタの探索処理を複数のプロセッサにマッピングすることが好ましい。このような場合、データ構造は再生成され、各プロセッサがそのプロセッサに割り当てられたクラスタの探索を終えたときに、異なるプロセッサからの部分的な結果が中央のプロセッサに移動されるようにしてもよい。
次に、図2のステップ302でのオリジナルの動作LSI記述からの依存関係解析木の生成について、詳しく説明する。図5は、動作記述の操作の独立したグループの各々に対する合成属性の効果を調べるためにそれらの独立したグループを抽出できるようにした、この例示実施形態の方法の主たるデータ構造である依存関係解析木の一例を示している。依存関係解析木は、図4のステップ1においても生成され、ここで説明する解析木の生成処理は、図4に示された例にも適用可能である。
図5において、依存関係解析木400の各ノードは、動作記述406内の探索可能操作に対応する。この例では、動作記述406は、配列の定期を示す“int a[10]”の文(ステートメント)407を含んでいる。文407によって定義される配列がアクセスされるごとに、配列402,405は解析木に含められる。同様に動作記述406は、フォーループ文408,410を含んでいる。フォーループ文408,410に応答してループ401,403がそれぞれ解析木に含められる。文409は関数“func_sum”を定義し、この関数は、解析木に含まれるfunc_sum 404に対応する。
次に、図2のステップ302でのクラスタの作成を詳しく説明する。図6は、クラスタ生成の一例を示している。このようなクラスタは図4のステップ2で生成されるので、ここで説明されるクラスタ作成処理は、図4に示した例にも適用可能である。
図6において、解析木501に対する探索可能操作の独立したサブセットの各々クラスタは、図5に示される構文解析されていない動作LSI記述406に対応する、構文解析された動作記述503から生成される。この場合、2つの独立したクラスタが作成され、ここでクラスタ#1 502はループと配列504とを含み、クラスタ#2 502は関数とループと同一の配列505とを含む。各クラスタは、合成されたハードウェア設計に対する各属性組み合わせの影響を立証するために総当たり法を用いて、あるいは、設計空間探索を加速できる任意の発見的な(ヒューリスティックな)方法を用いて、参照符号506,507によってそれぞれ示されるように、別個に探索される。
ここで提案された分割統治法の最悪の場合のシナリオは、最初の時間非依存の高レベル記述が、1つの大きなクラスタしか含まないことである。そのような場合、探索の実行時間は、関連技術で開発されてきたいずれの発見的方法と同じである。最も好ましい場合は、個々の操作に一致したクラスタをソースコードが含むことである。この場合、探索の実行時間は、操作の数に対して線形である。
次に、実施例に照らし、図7、図8及び図9を参照して、本例示実施形態をさらに詳しく説明する。問題定義は、1つの主たる目標、すなわち、すべての(あるいはできるだけ多くの)パレート最適設計の生成であって、実行時間を最小化できる生成である。
図7は、動作LSI記述とこの動作LSI記述から生成されたクラスタとの例を示している。図7で例示されているクラスタの生成は、図4に示されるステップ1とステップ2に対応する。図7において、動作LSI記述704は、配列に8個の変数を読み込み、最後の8個の値の平均を出力する。動作LSI記述704は、3つの探索可能操作、すなわち2つのループ(すなわちループ1とループ2)と1つの配列(すなわちfifo[8])を有する。HLSツールは、ソースコードにおいて直接指定されたローカル合成命令に応じて、ループを完全にアンロールしたり、部分的にアンロールしたり、あるいはアンロールしなかったりすることができる。命令が指定されない場合には、ツールにプログラムされたデフォルトの動作が実行される。一方、配列は、レジスタとして合成されたり、あるいはメモリとして展開されたりすることができるが、この場合、ポートの数や他のいくつかの副属性(sub-attribute)を選択することができる。
図7において、依存関係解析木701及び個別のクラスタが作成されている。この例では、2つのクラスタ、すなわち、第1のフォーループ(ループ1)及び参照符号705で示される配列アクセスに対するクラスタ#1(702)と、第2のフォーループ(ループ2)及び参照符号706で示される配列アクセスに対するクラスタ#2(703)とが生成される。
図8は、図7に与えられた例に関する個々のクラスタの探索の結果として各クラスタに対して生成されたデータ構造の例を示している。このようなデータ構造は、例えば、属性の各組み合わせがクラスタごとに別々に探索される図4に示されるステップ3を介して、生成される。各設計の合成の結果は、次に、生成された回路に対する属性の組み合わせの影響を理解するために、リードバックされる。
図8において、下線を付されたデータ構造例の形態で探索結果が示されている。連結リスト(linked list)801としてクラスタが表現されている。各クラスタノードは、設計連結リスト802に示されるように、各クラスタに対して作成された属性の一意的な組み合わせの数と同数の設計を含んでいる。属性リストは、設計連結リスト802に対する副連結リスト(sub-linked list)としても表されている。各設計ノードは、属性803のその特定の組み合わせに対する合成の結果の情報を含んでいる。図において、“mem”及び“reg”は、それぞれ、“メモリ(memory)”と“レジスタ(register)”の略記である。ここで説明されるデータ構造は、合成された設計に対する各属性組み合わせの影響を調べることを可能にする。
図9は、図7に示された例に対する、各クラスタの属性の組み合わせを有する新しい設計が個々のクラスタ探索の結果に基づいて生成される最終ステップ、すなわちマージステップを示している。このステップは、図4に示されるステップ4に対応する。クラスタが相互依存性の属性を有する場合には、同じ相互依存性の属性を有する属性リストのみが使用可能である。
図9において、クラスタリスト901中のクラスタ(すなわちクラスタ#1及びクラスタ#2)の各々は、属性903の固有の組をそれぞれ備える設計のリスト902を有する。各設計の合成の結果は調査され、パレート最適設計906をもたらす属性の組み合わせ907が作成される。この場合、配列が両方のクラスタに影響するので、配列に対する同じ属性を有するそれらの属性の組み合わせのみが、一緒に組み合わされる。クラスタ#1に対する属性905の組み合わせとクラスタ#2に対する属性904から作成される設計が合成され、次に、パレート最適LSI設計906が作成される。パレートLSI設計を探すことは、さらなる新しいパレート設計が見つからなくなるまで続けられる。
図10は、対象デバイスの設計空間探索の処理が上述した方法によって高速化された、設計空間探索装置の構成を示している。この装置は、大別して、対象デバイスの動作記述を格納する第1の記憶部101と、第1の記憶部101に格納された動作記述を構文解析して依存関係解析木を構築し、依存関係解析木に基づいてクラスタの独立した組を生成するパース生成器102と、面積やレイテンシなどの制約条件を格納し、属性のライブラリを格納する第2の記憶部103と、各クラスタに対する合成命令を挿入することにより動作記述をインストルメント化するプリプロセッサ104と、インストルメント化された動作記述を合成し、設計空間探索を実行する高レベル合成器105と、を含んでいる。ここで、各クラスタは、依存関係解析木の1つ以上のノードの集合であって、独立に探索可能である。動作記述のインストルメント化(instrumentation)において、プリプロセッサは、第2の記憶部103に格納されたライブラリを参照し、動作記述のソースコードに合成命令を直接挿入する。
高レベル合成器105は、対象デバイスの設計での最終的な回路に対する、異なって合成された各操作の影響を立証するために、各クラスタの合成可能な操作を網羅的に探索するように構成されていてよく、さらに、クラスタに対する属性を組み合わせてより効率的な設計を生成するように、すなわち、制約条件のもとで改善された特性を有する設計を生成するように、構成されていてもよい。パレート最適をもたらすであろう属性のみを組み合わせることによって高レベル合成器がすべてのクラスタを別々に探索し終えたら、高レベル合成器105は、パレート最適設計を検索してもよい。一例において、高レベル合成器105は、高レベル合成(HLS)ツールとして実装される。
図10に示す設計空間探索装置は、さらに、高レベル合成器で生成された設計を格納する第3の記憶部106と、生成された設計を設計空間探索の結果として表示する表示装置107と、を含んでいる。表示装置107は、制約条件に対する生成された設計の分布を認識できる形態で、結果を表示する。例えば、使用される制約条件が面積とレイテンシであるとすると、表示装置107は、図1に示したものと同様のグラフを表示する。高レベル合成器105は、第3の記憶部106から結果を繰り返し読み出し、最も効率的な設計がすべて生成されるまで、探索を実行する。
いくつかの例において、パース生成器102は、異なって合成することが可能であってそれゆえに最終的な回路に影響を与えるであろう探索可能操作に対して、クラスタの独立した組を発生させてもよい。高レベル合成器105は、各クラスタに対する属性の組み合わせを発生しつつクラスタの残りに対してはいかなる属性も付与しないことにより、各クラスタを別々に探索してもよい。高レベル合成器105は、パレート最適をもたらすであろう属性のみを組み合わせることによってすべてのクラスタが別々に探索された時点で、パレート最適設計を探してもよい。
図10に示す装置において、複数のクラスタで用いられる配列または関数のような相互依存性をクラスタが有するときには、その相互依存性の同一の属性を用いてパレート最適設計を得るようにしてもよい。探索結果は、パレート最適設計にのみ対する探索を精緻化することにより、さらに精緻化されてもよい。例えばループのマージなど、クラスタをまたがる最適化を実行するローカル属性の線形動作を阻害することが可能ないかなる最適化オプションは、無効化されてもよい。高レベル合成の結果を読み出し、非最適の設計を無視しつつ最も効率的であるLSI設計のみを保持するようにしてもよい。
次に、本例示実施形態の応用の例を説明する。
図11は、情報処理装置の機能ブロック図を示している。情報処理装置200は、同一LSI設計上に集積されたサブシステムである複合処理デバイス201を含んでいる。複合処理デバイス201は、処理ユニット203と、組み込みメモリ202と、入力及び出力(I/O)ポート210とを含んでいる。I/Oポート210は、通信インタフェースを含んでいる。複合処理デバイス201内のすべてのユニットは、内部バス208に相互接続されている。処理装置203は、記憶装置212と、異なる種類の周辺装置213及びインタフェース214をも含んでいる。処理デバイス201、記憶装置212、周辺装置213及びインタフェース214はともにバス211によって相互接続されている。
処理ユニット203は、マイクロプロセッサ204と、組み込みローカルメモリ209と、入力及び出力(I/O)ポート255と、2つの専用ハードウェア・アクセラレーション(加速)ブロック206,207と、を含んでいる。アクセラレーション・ブロックは、汎用プロセッサすなわちマイクロプロセッサ204に比べて種々の機能をより効率的に実行することができる。これらの専用アクセラレーション・ブロックの設計は、非常に時間を消費する。本例示実施形態に基づく方法は、専用アクセラレーション・ブロックの設計を関連技術の方法よりも高速にすることを可能にする。本例示実施形態は、所与の面積、性能、電力及び温度の制約条件に合致する効率的なLSI設計の組を自動的に作成することを可能にする。
上述した例示実施形態の方法を構成する各ステップは、コンピュータシステム上でも実装可能である。したがって、例示実施形態は、コンピュータシステムとともに使用するためのコンピュータプログラムとして、ソフトウェアの形態で実現されてもよい。コンピュータシステムは、例えば、図11に示される構成を有していてもよい。少なくとも1つの例示実施形態の機能を規定するプログラムは、種々のコンピュータ可読媒体(すなわち、信号保持媒体)を介して、コンピュータに提供されることができる。そのようなコンピュータ可読媒体は、(i)書き込み不能記憶媒体(例えば、CD−ROMドライブまたはDVDドライブによって読み取り可能なCD−ROMディスクなどの、コンピュータ内の読み出し専用メモリ装置)上に永久的に格納された情報、(ii)書き込み可能記憶媒体(例えば、フレキシブルディスクドライブまたはハードディスクドライブ内のフレキシブルディスク)上に格納された変更可能な情報、または(iii)無線通信を含むコンピュータネットワークまたは電話ネットワークを介するような、通信媒体によってコンピュータに運ばれる情報を含んでいるが、これらに限定されるものではない。後者は特に、インターネットを介して運ばれる情報を含んでいる。このような信号保持媒体は、本発明の方法によって規定される機能を指示するコンピュータ可読命令を運ぶとき、本発明の代替例示実施形態を示す。なお、プログラムの各部分は、独立に開発されて実装されてもよいが、それらの部分が組み合わされたとき、本発明のさらに別の例示実施形態を構成する。
LSI回路設計の例に即して上述の例示実施形態が示されているが、本発明に基づく方法及び装置は、例えば、デジタル回路に関連した設計問題、スケジューリング、化学プロセス処理、制御システム、ニューラルネットワーク、検証及び認証方法、回帰モデル化、未知のシステムの同定、通信ネットワーク、光学回路、及びセンサなどを含む、他の多くの種類の設計問題に適用可能である。本発明に基づく方法及び装置は、例えば、道路システム、水道及び他の大規模物理ネットワークに関連するフローネットワーク設計問題にも適用可能であり、光学、機械要素、及び光−電気要素などの分野にも適用可能である。
したがって、上記の説明は、本発明の原理を図解するだけのものであると考えるべきである。さらに、数々の変更と改良とが容易に当業者の心に浮かぶであろうから、ここで示され説明された通りの構成及び動作に本発明を限定することは好ましくない。したがって、本発明の範囲内に含まれるすべての適切な変更及び等価物が用いられるであろう。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1) 対象デバイスの動作記述が与えられたときに前記対象デバイスの設計空間探索を加速する方法であって、
前記動作記述を構文解析して依存関係解析木を構築することと、
前記依存関係解析木に基づきクラスタの独立した組を生成することと、
前記対象デバイスの設計での最終的な回路に対する、異なって合成された各操作の影響を立証するために、各クラスタの合成可能な操作を網羅的に探索することと、
前記クラスタに対する属性を組み合わせて、制約条件のもとで改善された特性を有する設計を生成することと、
を有し、
各クラスタは、前記依存関係解析木の1つ以上のノードの集合であって独立に探索可能である、方法。
(付記2) 前記クラスタの独立した組を生成することは、異なって合成することが可能であってそれゆえに前記最終的な回路に影響を与えるであろう探索可能な操作に対する、クラスタの前記独立した組を発生させることを含む、付記1に記載の方法。
(付記3) 前記探索することは、各クラスタに対する属性の組み合わせを発生しつつ前記クラスタの残りに対してはいかなる属性も付与しないことにより、各クラスタを別々に探索することよって実行される、付記1または2に記載の方法。
(付記4) 生成された回路に対する各属性組み合わせの影響を解析して部分的な結果を得ることと、
前記部分的な結果を記憶し、前記部分的な結果に基づいて各操作に対する属性の最終的な組み合わせを選択することと、
を有する、付記1乃至3のいずれか1項に記載の方法。
(付記5) パレート最適をもたらすであろう属性のみを組み合わせることによってすべてのクラスタが別々に探索された時点で、パレート最適設計を探すことを有する、付記1乃至4のいずれか1項に記載の方法。
(付記6) 複数のクラスタで用いられる配列または関数のような相互依存性を前記クラスタが有するとき、前記相互依存性の同一の属性を用いて前記パレート最適設計を得る、付記1乃至4のいずれか1項に記載の方法。
(付記7) パレート最適設計にのみ対する探索を精緻化することにより、前記探索結果をさらに精緻化することを有する、付記1乃至4のいずれか1項に記載の方法。
(付記8) 例えばループのマージなど、クラスタをまたがる最適化を実行するローカル属性の線形動作を阻害することが可能ないかなる最適化オプションも無効にすることを有する、付記1乃至7のいずれか1項に記載の方法。
(付記9) 前記高レベル合成の結果を読み出し、最も効率的であるLSI設計のみを保持し、非最適の設計を無視することを有する、付記1乃至8のいずれか1項に記載の方法。
(付記10) それぞれの独立したクラスタの探索処理を複数のプロセッサにマッピングすることと、
前記クラスタの数に基づいて、必要とされる前記プロセッサの数を可変的に調節することと、
をさらに有する、付記1乃至9のいずれか1項に記載の方法。
(付記11) データ構造を再生成することと、
各プロセッサが当該プロセッサに割り当てられた前記クラスタの前記探索を終えたときに、前記異なるプロセッサからの部分的な結果を中央のプロセッサに移動させることと、
を有する、付記10に記載の方法。
(付記12) 対象デバイスの設計空間を探索する装置であって、
前記対象デバイスの動作記述を格納する第1の記憶装置と、
前記第1の記憶装置から読み出される前記動作記述を構文解析して依存関係解析木を構築し、前記依存関係解析木に基づいてクラスタの独立した組を生成するパース生成器と、
制約条件と属性のライブラリとを格納する第2の記憶装置と、
前記第2の記憶装置に格納された前記ライブラリを参照して各クラスタに対する合成命令を挿入することにより、前記動作記述をインストルメント化するプリプロセッサと、
前記対象デバイスの設計での最終的な回路に対する、異なって合成された各操作の影響を立証するために、各クラスタの合成可能な操作を網羅的に探索し、前記クラスタに対する属性を組み合わせて、前記制約条件のもとで改善された特性を有する設計を生成する高レベル合成器と、
を有し、
各クラスタは、前記依存関係解析木の1つ以上のノードの集合であって独立に探索可能である、装置。
(付記13) 前記高レベル合成器は、前記高レベル合成器がパレート最適をもたらすであろう属性のみを組み合わせることによってすべてのクラスタを別々に探索した時点で、パレート最適設計を探す、付記12に記載の装置。
(付記14) 前記生成された設計を格納する第3の記憶装置と、
前記制約条件に対する前記生成された設計の分布を認識できる形態で、前記第3の記憶装置に格納された前記生成された設計を表示する表示装置と、
を有する、付記12または13に記載の装置。
(付記15) 前記パース生成器は、異なって合成することが可能であってそれゆえに前記最終的な回路に影響を与えるであろう探索可能な操作に対する、クラスタの前記独立した組を発生させる、付記12乃至14のいずれか1項に記載の装置。
(付記16) 前記高レベル合成器は、各クラスタに対する属性の組み合わせを発生しつつ前記クラスタの残りに対してはいかなる属性も付与しないことにより、各クラスタを別々に探索する、付記12乃至15のいずれか1項に記載の装置。
(付記17) 前記高レベル合成器は、パレート最適をもたらすであろう属性のみを組み合わせることによってすべてのクラスタが別々に探索された時点で、パレート最適設計を探す、付記12乃至15のいずれか1項に記載の方法。
(付記18) 複数のクラスタで用いられる配列または関数のような相互依存性を前記クラスタが有するときに、前記相互依存性の同一の属性を用いて前記パレート最適設計を得る、付記12乃至15のいずれか1項に記載の装置。
(付記19) パレート最適設計にのみ対する探索を精緻化することにより、前記探索結果がさらに精緻化される、付記12乃至15のいずれか1項に記載の装置。
(付記20) 例えばループのマージなど、クラスタをまたがる最適化を実行するローカル属性の線形動作を阻害することが可能ないかなる最適化オプションも、無効化される、付記12乃至19のいずれか1項に記載の装置。
(付記21) 前記高レベル合成の結果が読み出され、最も効率的であるLSI設計のみが保持され、非最適の設計は無視される、付記12乃至20のいずれか1項に記載の装置。

Claims (10)

  1. 対象デバイスの動作記述が与えられたときに前記対象デバイスの設計空間探索を加速する方法であって、
    前記動作記述を構文解析して依存関係解析木を構築することと、
    前記依存関係解析木に基づきクラスタの独立した組を生成することと、
    前記対象デバイスの設計での最終的な回路に対する、異なって合成された各操作の影響を立証するために、各クラスタの合成可能な操作を網羅的に探索することと、
    前記クラスタに対する属性を組み合わせて、制約条件のもとで改善された特性を有する設計を生成することと、
    を有し、
    各クラスタは、前記依存関係解析木の1つ以上のノードの集合であって独立に探索可能である、方法。
  2. 前記クラスタの独立した組を生成することは、異なって合成することが可能であってそれゆえに前記最終的な回路に影響を与えるであろう探索可能な操作に対する、クラスタの前記独立した組を発生させることを含む、請求項1に記載の方法。
  3. 前記探索することは、各クラスタに対する属性の組み合わせを発生しつつ前記クラスタの残りに対してはいかなる属性も付与しないことにより、各クラスタを別々に探索することよって実行される、請求項1に記載の方法。
  4. 生成された回路に対する各属性組み合わせの影響を解析して部分的な結果を得ることと、
    前記部分的な結果を記憶し、前記部分的な結果に基づいて各操作に対する属性の最終的な組み合わせを選択することと、
    を有する、請求項1に記載の方法。
  5. パレート最適をもたらすであろう属性のみを組み合わせることによってすべてのクラスタが別々に探索された時点で、パレート最適設計を探すことを有する、請求項1に記載の方法。
  6. パレート最適設計にのみ対する探索を精緻化することにより、前記探索結果をさらに精緻化することを有する、請求項1に記載の方法。
  7. それぞれの独立したクラスタの探索処理を複数のプロセッサにマッピングすることと、
    前記クラスタの数に基づいて、必要とされる前記プロセッサの数を可変的に調節することと、
    をさらに有する、請求項1に記載の方法。
  8. データ構造を再生成することと、
    各プロセッサが当該プロセッサに割り当てられた前記クラスタの前記探索を終えたときに、前記異なるプロセッサからの部分的な結果を中央のプロセッサに移動させることと、
    を有する、請求項7に記載の方法。
  9. 対象デバイスの設計空間を探索する装置であって、
    前記対象デバイスの動作記述を格納する第1の記憶装置と、
    前記第1の記憶装置から読み出される前記動作記述を構文解析して依存関係解析木を構築し、前記依存関係解析木に基づいてクラスタの独立した組を生成するパース生成器と、
    制約条件と属性のライブラリとを格納する第2の記憶装置と、
    前記第2の記憶装置に格納された前記ライブラリを参照して各クラスタに対する合成命令を挿入することにより、前記動作記述をインストルメント化するプリプロセッサと、
    前記対象デバイスの設計での最終的な回路に対する、異なって合成された各操作の影響を立証するために、各クラスタの合成可能な操作を網羅的に探索し、前記クラスタに対する属性を組み合わせて、前記制約条件のもとで改善された特性を有する設計を生成する高レベル合成器と、
    を有し、
    各クラスタは、前記依存関係解析木の1つ以上のノードの集合であって独立に探索可能である、装置。
  10. 前記高レベル合成器は、前記高レベル合成器がパレート最適をもたらすであろう属性のみを組み合わせることによってすべてのクラスタを別々に探索した時点で、パレート最適設計を探す、請求項9に記載の装置。
JP2012545965A 2010-04-09 2010-04-09 設計空間探索を加速する方法及び装置 Expired - Fee Related JP5605435B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/056792 WO2011125232A1 (en) 2010-04-09 2010-04-09 Method and apparatus for design space exploration acceleration

Publications (2)

Publication Number Publication Date
JP2013524303A true JP2013524303A (ja) 2013-06-17
JP5605435B2 JP5605435B2 (ja) 2014-10-15

Family

ID=43414948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012545965A Expired - Fee Related JP5605435B2 (ja) 2010-04-09 2010-04-09 設計空間探索を加速する方法及び装置

Country Status (3)

Country Link
US (1) US20130091482A1 (ja)
JP (1) JP5605435B2 (ja)
WO (1) WO2011125232A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5842255B2 (ja) * 2013-12-12 2016-01-13 国立大学法人東京工業大学 プログラミング言語による論理回路記述から論理回路を生成するための装置及び方法
US9529951B2 (en) 2014-05-29 2016-12-27 International Business Machines Corporation Synthesis tuning system for VLSI design optimization
US9436791B1 (en) * 2015-03-24 2016-09-06 International Business Machines Corporation Optimizing placement of circuit resources using a globally accessible placement memory
JP6266183B2 (ja) * 2015-08-27 2018-01-24 三菱電機株式会社 回路設計支援装置および回路設計支援プログラム
WO2017154183A1 (ja) 2016-03-10 2017-09-14 三菱電機株式会社 高位合成装置、高位合成方法及び高位合成プログラム
CN107506226B (zh) * 2017-07-07 2020-08-14 福建师范大学 一种用于hls指令优化的编码方法及终端
CN107491310B (zh) * 2017-08-15 2020-08-21 北京理工大学 一种深空探测自主任务规划约束推理的自动编码方法
CN108959521B (zh) * 2018-06-28 2021-07-16 中国人民解放军国防科技大学 基于n-of-N流模型的不确定轮廓查询并行处理方法及系统
US11270051B1 (en) * 2020-11-09 2022-03-08 Xilinx, Inc. Model-based design and partitioning for heterogeneous integrated circuits

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234126B2 (en) * 2000-08-23 2007-06-19 Interuniversitair Microelektronica Centrum Task concurrency management design method
US7725848B2 (en) * 2005-01-27 2010-05-25 Wolfgang Nebel Predictable design of low power systems by pre-implementation estimation and optimization

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6013063069; SCHAFER, B. C. et al.: 'Design Space Exploration Acceleration Through Operation Clustering' IEEE TRANSACTIONS ON COMPUTER AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS Vol. 29, No. 1, 201001, pages 153-157 *
JPN6013063073; GIVARGIS, T. et al.: 'System-Level Exploration for Pareto-Optimal Configurations in Parameterized System-on-a-Chip (Decemb' IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS Vol. 10, No. 4, 200208, pp. 416-422 *
JPN6013063075; ASCIA, G. et al.: 'Efficient design space exploration for application specific systems-on-a-chip' JOURNAL OF SYSTEMS ARCHITECTURE No. 53, 200701, pages 733-750, ELSEVIER *
JPN6013063077; GIVARGIS, T. et al.: 'Platune: A Tuning Framework for System-on-a-Chip Platforms' IEEE TRANSACTIONS ON COMPUTER AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS Vol. 21, No. 11, 200211, pp. 1317-1327 *

Also Published As

Publication number Publication date
US20130091482A1 (en) 2013-04-11
JP5605435B2 (ja) 2014-10-15
WO2011125232A1 (en) 2011-10-13

Similar Documents

Publication Publication Date Title
JP5605435B2 (ja) 設計空間探索を加速する方法及び装置
Coussy et al. GAUT: A High-Level Synthesis Tool for DSP Applications: From C Algorithm to RTL Architecture
Brayton et al. Multilevel logic synthesis
US7788625B1 (en) Method and apparatus for precharacterizing systems for use in system level design of integrated circuits
US6378123B1 (en) Method of handling macro components in circuit design synthesis
CN1885295B (zh) 使用逻辑单元建置集成电路
US6421818B1 (en) Efficient top-down characterization method
US6292931B1 (en) RTL analysis tool
US6263483B1 (en) Method of accessing the generic netlist created by synopsys design compilier
US6295636B1 (en) RTL analysis for improved logic synthesis
US20070276644A1 (en) Conversion of circuit description to a transaction model
US10586003B1 (en) Circuit design using high level synthesis and linked hardware description language libraries
EP3740887A2 (en) Machine-learning circuit optimization using quantized prediction functions
WO2005119528A2 (en) Loop manipulation in a behavioral synthesis tool
IE20080800A1 (en) A system level power evaluation method
JP5516596B2 (ja) 高レベル合成での設計空間探索の方法及び装置
Molina et al. High-level synthesis hardware design for fpga-based accelerators: Models, methodologies, and frameworks
Gubbi et al. Survey of machine learning for electronic design automation
Wang et al. Efficient and robust high-level synthesis design space exploration through offline micro-kernels pre-characterization
Sohrabizadeh et al. Enabling automated FPGA accelerator optimization using graph neural networks
US20150149972A1 (en) Method, design apparatus, and program product for incremental design space exploration
Shetty et al. Enabling the design of behavioral systems-on-chip
Sinha et al. Abstract state machines as an intermediate representation for high-level synthesis
Frangieh A design assembly technique for FPGA back-end acceleration
US11816409B1 (en) Strongly connected component (SCC) graph representation for interactive analysis of overlapping loops in emulation and prototyping

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140224

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140509

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140811

R150 Certificate of patent or registration of utility model

Ref document number: 5605435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees