JP2011059895A - 高位合成装置 - Google Patents

高位合成装置 Download PDF

Info

Publication number
JP2011059895A
JP2011059895A JP2009207458A JP2009207458A JP2011059895A JP 2011059895 A JP2011059895 A JP 2011059895A JP 2009207458 A JP2009207458 A JP 2009207458A JP 2009207458 A JP2009207458 A JP 2009207458A JP 2011059895 A JP2011059895 A JP 2011059895A
Authority
JP
Japan
Prior art keywords
scheduling
unit
internal representation
level synthesis
binding
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.)
Withdrawn
Application number
JP2009207458A
Other languages
English (en)
Inventor
Yohei Kojima
島 洋 平 小
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009207458A priority Critical patent/JP2011059895A/ja
Priority to US12/730,104 priority patent/US20110061032A1/en
Publication of JP2011059895A publication Critical patent/JP2011059895A/ja
Withdrawn legal-status Critical Current

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

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)
  • Power Sources (AREA)

Abstract

【課題】LSIの消費電力を効率的に削減するために必要な情報をユーザに提供する高位合成装置を提供する。
【解決手段】高位合成装置は、動作記述を受け付ける入力部14と、入力部によって受け付けられた動作記述に基づいて内部表現を生成する内部表現生成部161と、内部表現生成部によって生成された内部表現について、演算器が動作しないサイクルが連続するようにスケジューリングを行うスケジューリング部162と、内部表現生成部161によって生成された内部表現について、スケジューリング部162のスケジューリング結果に基づいてバインディングを行うバインディング部163と、スケジューリング部のスケジューリング結果及びバインディング部のバインディング結果に基づいて回路記述を生成する回路記述生成部164と、内部表現生成部によって生成された内部表現及び回路記述生成部によって生成された回路記述を出力する出力部18と、を備える。
【選択図】図2

Description

本発明は、高位合成装置に関し、特に、半導体集積回路の設計に使用される高位合成装置に関する。
近年、LSI(Large Scale Integration)の設計では、LSIの消費電力を削減することが重要な課題となっている。その課題を解決するためのLSIの設計方法として、ユーザが入力した動作記述に基づいて回路記述を出力する高位合成装置を使用することが知られている。従来の高位合成装置は、動作記述中の同種の演算を1つの演算器が共有するように回路記述を生成する。従来の高位合成装置は、複数の演算について1つの演算器を共有すること(以下、「演算器の共有」という)と動的消費電力との関係(すなわち、どのサイクルで実行される演算についてどの演算器を共有すれば、動的消費電力が効率的に削減されるか)は考慮されていないので、単に実行サイクルが重ならない場合に演算器を共有するように回路記述を生成している。その結果、全サイクルにわたって満遍なく演算器が使用されるような回路記述が生成される。
一方、演算器の各ゲートに供給される電源を遮断することによって、LSIが動作しているときの消費電力(以下、「動的消費電力」という)だけでなく、LSIが動作していないときの消費電力(以下、「静的消費電力」という)を削減する技術が知られている。
しかしながら、演算器の各ゲートに供給される電源を遮断する場合には、上記のように全サイクルにわたって満遍なく演算器が使用される回路記述が生成されることが問題となる。具体的には、遮断した電源を復帰させるためには数[μs]以上の時間が必要となるので、数[ns]のサイクルで動作するLSIでは、演算器が動作しないサイクル(以下、「非動作サイクル」という)ができるだけ長く連続することが求められる。これに対し、従来の高位合成装置では、全サイクルにわたって満遍なく演算器が使用されるような回路記述が生成されるので、非動作サイクルが長く連続することはない。その結果、従来の高位合成装置によって生成された回路記述を利用して設計されたLSIは、演算器の各ゲートに供給される電源の遮断時間が短い。すなわち、従来の高位合成装置は、動的消費電力及び静的消費電力を含むLSIの消費電力を効率的に削減するための情報及び回路記述をユーザに提供することはできない。
また、演算器の各ゲートに供給されるクロックを停止することによって、ゲートのスイッチングを抑制し、動的消費電力を削減する技術(以下、「クロックゲーティング」という)が知られている(特許文献1を参照)。特許文献1では、実行条件が排他条件である複数の投機実行される処理があった場合に、実行条件が決定した段階で不要となる処理に対応するレジスタに供給されるクロックを停止することによって、LSIの動的消費電力を削減している。
しかしながら、特許文献1では、実行条件が排他条件でない部分の消費電力を削減することはできない。また、近年、LSIの微細化が進むにつれて、動的消費電力に対する静的消費電力の割合が大きくなっているので、動的消費電力のみを削減するだけでは不十分である。すなわち、従来の高位合成装置に特許文献1を適用したとしても、LSIの消費電力を効率的に削減するために必要な情報をユーザに提供することはできない。
特開2008−282360号公報
本発明の目的は、LSIの消費電力を効率的に削減するために必要な情報をユーザに提供する高位合成装置を提供することである。
本発明の一態様によれば、
複数の演算器を含む半導体集積回路の動作を表す動作記述を受け付けるように構成される入力部と、
前記入力部によって受け付けられた動作記述に基づいて内部表現を生成するように構成される内部表現生成部と、
前記内部表現生成部によって生成された内部表現について、前記演算器が動作しない非動作サイクルが連続するようにスケジューリングを行うように構成されるスケジューリング部と、
前記内部表現生成部によって生成された内部表現について、前記スケジューリング部のスケジューリング結果に基づいてバインディングを行うように構成されるバインディング部と、
前記スケジューリング部のスケジューリング結果及び前記バインディング部のバインディング結果に基づいて回路記述を生成するように構成される回路記述生成部と、
前記内部表現生成部によって生成された内部表現及び前記回路記述生成部によって生成された回路記述を出力するように構成される出力部と、
を備えることを特徴とする高位合成装置が提供される。
本発明によれば、LSIの消費電力を効率的に削減するために必要な情報をユーザに提供することができる。
本発明の第1実施形態に係る高位合成装置10の構成を示すブロック図である。 図1のCPU16が実現する機能を示すブロック図である。 図2のスケジューリング部162の機能を示すブロック図である。 本発明の第1実施形態に係る高位合成処理の手順を示すフローチャートである。 図4のスケジューリング工程(S403)の手順を示すフローチャートである。 本発明の第1実施形態と従来技術との比較例を説明する概略図である。 本発明の第2実施形態に係るスケジューリング部162の機能を示すブロック図である。 本発明の第2実施形態に係るスケジューリング工程(S403)の手順を示すフローチャートである。 図8の分割工程(S802)の具体例を説明する概略図である。 本発明の第3実施形態に係るバインディング工程(S404)の手順を示すフローチャートである。 図10の手順を説明するための概略図である。 本発明の第3実施形態に係る高位合成処理の具体例を説明するための概略図である。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1実施形態)
本発明の第1実施形態について説明する。本発明の第1実施形態は、本発明の実施形態に係る高位合成装置の基本的な例である。
本発明の第1実施形態に係る高位合成装置の構成について説明する。図1は、本発明の第1実施形態に係る高位合成装置10の構成を示すブロック図である。図2は、図1のCPU16が実現する機能を示すブロック図である。図3は、図2のスケジューリング部162の機能を示すブロック図である。
図1に示すように、本発明の第1実施形態に係る高位合成装置10は、メモリ12と、入力部14と、プロセッサ(以下、「CPU(Central Processing Unit)」という)16と、出力部18と、を備える。CPU16には、メモリ12、入力部14、及び出力部18が接続される。高位合成装置10の入力は、複数の演算器を含む半導体集積回路の動作を表す動作レベル記述(以下、「動作記述」という)のソースコードであり、高位合成装置10の出力は、レジスタ転送レベル(以下、「RTL(Register Transfer Level)」という)記述、データの流れ及び制御の流れを表すCDFG(Control Data Flow Graph)、及び演算器の共有結果等を含む高位合成結果である。
図1のメモリ12は、CPU16が本発明の第1実施形態に係る高位合成処理(後述する)に必要な機能(図2を参照)を実現するための高位合成プログラム12aを記憶する。また、メモリ12は、本発明の第1実施形態に係る高位合成処理において、CPU16によって生成される様々なデータを記憶可能に構成される。
図1の入力部14は、入力装置20に接続される。また、入力部14は、ユーザが入力装置20を使用して入力した動作記述を受け付けるように構成される。例えば、入力装置20は、キーボード又はネットワークインタフェースである。入力装置20がネットワークインタフェースである場合には、入力部14は、ネットワークを介して接続されるサーバ(図示せず)から動作記述を受け付ける。
図1のCPU16は、メモリ12に記憶された高位合成プログラム12aを起動し、図2の内部表現生成部161と、スケジューリング部162と、バインディング部163と、回路記述生成部164と、スケジューリング情報生成部165と、を含む本発明の第1実施形態に係る高位合成処理に必要な機能を実現するように構成される。
図2の内部表現生成部161は、入力部14によって受け付けられた動作記述に基づいてソフトウェアの内部情報を表す内部表現を生成するように構成される。例えば、内部表現生成部161は、動作記述を解析し、解析結果から演算の実行順序及びCDFGを生成する。
図2のスケジューリング部162は、内部表現生成部161によって生成された内部表現について、非動作サイクルが連続するように演算のタイミングを決定するスケジューリングを行うように構成される。すなわち、スケジューリング部162は、同種の演算の実行サイクルが連続するようにスケジューリングを行う。図3に示すように、スケジューリング部162は、内部表現生成部161によって生成された内部表現について、複数の演算に1つの演算器が共有される(すなわち、演算器の共有を行う)ように、第1スケジューリングを行う第1スケジューリング部162aと、第1スケジューリング部162aによって第1スケジューリングが行われた内部表現について、非動作サイクルが連続するように第2スケジューリングを行う第2スケジューリング部162bと、を備える。
図2のバインディング部163は、内部表現生成部161によって生成された内部表現について、スケジューリング部162のスケジューリング結果に基づいてバインディングを行うように構成される。
図2の回路記述生成部164は、スケジューリング部162のスケジューリング結果及びバインディング部163のバインディング結果に基づいて回路記述を生成するように構成される。例えば、回路記述は、RTL記述である。
図2のスケジューリング情報生成部165は、電源の遮断及び復帰のタイミングを表すタイミング情報と、各電源ドメインに属する演算器及びレジスタを表すドメイン情報と、第1スケジューリングのみが行われた場合の回路記述(すなわち、一般的な高位合成結果)に対する第2スケジューリング行われた場合の回路記述(すなわち、本発明の第1実施形態に係る高位合成結果)の回路規模の増加量(例えば、演算器及びレジスタの増加数)と、消費電力が低減されるサイクル数と、を含むスケジューリング情報を生成するように構成される。
図1の出力部18は、出力装置30に接続される。また、出力部18は、内部表現生成部161によって生成された内部表現、回路記述生成部164によって生成された回路記述、及びスケジューリング情報生成部165によって生成されたスケジューリング情報を出力するように構成される。例えば、出力装置30は、ディスプレイ、プリンタ又はネットワークインタフェースである。出力装置30がネットワークインタフェースである場合には、出力部18は、ネットワークを介して接続されるサーバに内部表現、回路記述、及びスケジューリング情報を出力する。
本発明の第1実施形態に係る高位合成処理について説明する。図4は、本発明の第1実施形態に係る高位合成処理の手順を示すフローチャートである。図5は、図4のスケジューリング工程(S403)の手順を示すフローチャートである。
<図4:入力工程(S401)> 入力部14が、ユーザが入力装置20を使用して入力した動作記述を受け付ける。
<図4:内部表現生成工程(S402)> 内部表現生成部161が、入力工程(S401)において受け付けられた動作記述のソースコードを解析し、CDFGを生成する。
<図4:スケジューリング工程(S403)> スケジューリング部162が、内部表現生成工程(S402)において生成されたCDFGについて、非動作サイクルが連続するように演算のタイミングを決定するスケジューリングを行う。具体的には、スケジューリング工程(S403)は、図5に示す手順で行われる。
<図5:第1スケジューリング工程(S501)> 第1スケジューリング部162aが、内部表現生成工程(S402)において生成されたCDFGについて、複数の演算に1つの演算器が共有されるように第1スケジューリングを行う。第1スケジューリング工程(S501)は、一般的な方法によって行われる。
<図5:第2スケジューリング工程(S502)> 第2スケジューリング部162bが、第1スケジューリング工程(S501)において第1スケジューリングが行われたCDFGについて、非動作サイクルが連続するように第2スケジューリングを行う。例えば、第2スケジューリング部162bは、CDFGで表された第1スケジューリング工程(S501)の結果から、前後に他の演算が密集している演算を複数個選択し、選択された演算がスケジューリングされているクロックステップになるべく近くなるように、他の演算をスケジューリングする。
第2スケジューリング工程(S502)の後は、図4のバインディング工程(S404)に進む。
<図4:バインディング工程(S404)> バインディング部163が、スケジューリング工程(S403)のスケジューリング結果(すなわち、第2スケジューリング工程(S502)の処理結果)に基づいて、演算に演算器を割り当てるバインディングを行う。バインディング工程(S404)は、一般的な方法によって行われる。
<図4:回路記述生成工程(S405)> 回路記述生成部164が、スケジューリング工程(S403)のスケジューリング結果及びバインディング工程(S404)のバインディングの結果に基づいてRTL記述を生成する。なお、回路記述生成工程(S405)では、ステートマシンの各ステートの電源ドメイン毎のオン/オフ状態を表す信号が生成されても良い。また、回路記述生成工程(S405)では、省電力処理(後述する)用制御回路が埋め込まれたRTL記述が生成されるのではなく、電源ドメイン毎の省電力処理が可能なタイミングを示す情報が埋め込まれたRTL記述が生成されても良い。
<図4:スケジューリング情報生成工程(S406)> スケジューリング情報生成部165が、第2スケジューリング工程(S502)の処理結果に基づいて、電源の遮断及び復帰のタイミングを表すタイミング情報と、各電源ドメインに属する演算器及びレジスタを表すドメイン情報と、第1スケジューリングのみが行われた場合の回路記述(すなわち、一般的な高位合成結果)に対する第2スケジューリング行われた場合の回路記述(すなわち、本発明の第1実施形態に係る高位合成結果)の回路規模の増加量(例えば、演算器及びレジスタの増加数)と、消費電力が低減されるサイクル数と、を含むスケジューリング情報を生成する。
<図4:出力工程(S407)> 出力部18が、スケジューリング工程(S403)の処理結果(第2スケジューリングが行われたCDFG)と、回路記述生成工程(S405)の処理結果(第2スケジューリング工程(S502)の処理結果に対応するRTL記述)と、スケジューリング情報生成工程(S406)の処理結果(タイミング情報、ドメイン情報、回路規模の増加量、及び消費電力が低減されるサイクル数)と、を出力装置30に出力する。
出力工程(S407)の後は、本発明の第1実施形態に係る高位合成処理が終了する。
本発明の第1実施形態と従来技術との比較例について説明する。図6は、本発明の第1実施形態と従来技術との比較例を説明する概略図である。
図6(A)は従来技術による高位合成結果を示す。図6(A)に示すように、従来技術による高位合成結果では、演算器が動作するサイクル(以下、「動作サイクル」という)(図6の(1))と非動作サイクル(図6の(2))とがほぼ交互に形成される。この場合には、非動作サイクルにおける演算器への電源供給の遮断及び電源供給の復帰(以下、「省電力処理」という)を行うのに必要な時間を確保することはできない。従って、図6(A)に示す従来技術による高位合成結果では、LSIの消費電力を効率的に削減することはできない。
図6(B)及び(C)は、本発明の第1実施形態による高位合成結果を示す。図6(B)に示すように、本発明の第1実施形態による高位合成結果では、全サイクルの中心付近に非動作サイクルが連続的に形成される。この場合には、図6(C)に示すように、非動作サイクルが省電力処理を行うのに十分な時間である限り、連続する非動作サイクルを省電力処理が行われるサイクル(以下、「省電力処理サイクル」という)(図6の(3))として取り扱うことができる。従って、図6(C)の高位合成結果では、図6(A)の高位合成結果と比較して、LSIの消費電力を効率的に削減することができる。
なお、図6(C)は、加算器Add及び乗算器Mul1が同じ電源ドメインに属する例を示すが、本発明の範囲はこれに限られるものではない。本発明の第1実施形態では、異なる電源ドメインに属する演算器に対して省電力処理が行われても良い。この場合には、図6(C)の乗算器Mul1に対しては、さらに2サイクル延ばして電源供給を遮断することができる。すなわち、同じ電源ドメインに属する演算器に対して省電力処理を行うよりも、異なる電源ドメインに属する演算器に対して省電力処理を行う方が、LSIの消費電力をより効率的に削減することができる。なお、電源供給の遮断ができない演算器やステートマシンは、常に電源供給される電源ドメインに属する。
本発明の第1実施形態によれば、スケジューリング部162は、非動作サイクルが連続するように演算のタイミングを決定するスケジューリングを行う。そして、出力部18は、そのスケジューリング結果を反映する高位合成結果を出力する。従って、LSIの消費電力を効率的に削減するために必要な情報が容易に得られる。また、省電力処理を行うためのLSIの製造の下流工程における作業効率が向上する。
また、本発明の第1実施形態によれば、スケジューリング部162は、第1スケジューリングが行われた内部表現について、非動作サイクルが連続するようにスケジューリングをやり直す第2スケジューリングを行う第2スケジューリング部162bを備える。従って、連続的な非動作サイクルを有する高位合成結果が得られる。
なお、本発明の第1実施形態では、出力部18は、内部表現及び回路記述のみを出力するように構成されても良い。この場合には、スケジューリング情報生成部165は省略される。
また、本発明の第1実施形態では、出力部18は、スケジューリング情報生成部165によって生成されたスケジューリング情報のうちタイミング情報及びドメイン情報を出力するように構成されても良い。この場合には、スケジューリング情報生成部165は、回路規模の増加量及び消費電力が低減されるサイクル数の生成を省略しても良い。
また、本発明の第1実施形態では、省電力処理が電源供給の遮断及び復帰である例について説明したが、本発明の範囲はこれに限られるものではない。本発明の第1実施形態では、省電力処理が非動作サイクルにおいてクロックゲーティングを行うものであっても良い。この場合には、第2スケジューリング部162bによって非動作サイクルが連続的に形成されるので、クロックゲーティング用のイネーブル信号の制御が容易になる。
(第2実施形態)
本発明の第2実施形態について説明する。本発明の第2実施形態は、分割されたCDFG(以下、「分割CDFG」という)毎にスケジューリングを行う高位合成装置の例である。なお、上述した実施形態と同様の内容についての説明は省略する。
本発明の第2実施形態に係る高位合成装置の構成について説明する。図7は、本発明の第2実施形態に係るスケジューリング部162の機能を示すブロック図である。
図7に示すように、スケジューリング部162は、第1スケジューリング部162aと、第2スケジューリング部162bと、分割部162cと、を備える。第1スケジューリング部162aは、本発明の第1実施形態と同様である。
図7の分割部162cは、第1スケジューリング部162aによって第1スケジューリングが行われた内部表現を複数の内部表現に分割することによって分割内部表現を生成するように構成される。
図7の第2スケジューリング部162bは、分割部162cによって生成された各分割内部表現について、第2スケジューリングを行うように構成される。
本発明の第2実施形態に係る高位合成処理について説明する。図8は、本発明の第2実施形態に係るスケジューリング工程(S403)の手順を示すフローチャートである。図9は、図8の分割工程(S802)の具体例を説明する概略図である。
<図8:第1スケジューリング工程(S801)> 図5の第1スケジューリング工程(S501)と同様である。
<図8:分割工程(S802)> 分割部162cが、第1スケジューリング工程(S801)において生成されたCDFGを分割することによって複数の分割CDFGを生成する。例えば、図9(A)に示すように、分割境界DBをまたぐ枝は、分割境界DBより前の分割CDFGでは出力として取り扱われ、分割境界DBより後の分割CDFGでは入力として取り扱われる。すなわち、分割境界DBの前段に位置する分割CDFGと分割境界DBの後段に位置する分割CDFGとが独立に取り扱われる。その結果、第2スケジューリング工程(S803)(後述する)において、連続的な非動作サイクルが容易に生成される。図9は、全実行サイクルの中心を分割境界DBとしてCDFGが2つに分割される(すなわち、2つの分割CDFGが生成される)例を示す。
<図8:第2スケジューリング工程(S803)> 第2スケジューリング部162bが、各分割CDFGについて、同種の演算の実行サイクルが可能な限り連続的になるように第2スケジューリングを行う。例えば、分割境界DBの前段の分割CDFGでは、可能な限り早いサイクルに演算が実行される(すなわち、前段の分割CDFGの分割境界DB周辺に非動作サイクルが連続する)ようにスケジューリングが行われ、分割境界DBの後段の分割CDFGでは、可能な限り遅いサイクルに演算が実行される(すなわち、後段の分割CDFGの分割境界DBに非動作サイクルが連続する)ようにスケジューリングが行われる。換言すると、第2スケジューリング部162bは、分割境界DBから離れた位置に動作サイクルを設けるように、第2スケジューリングを行う。その結果、図9(B)に示すように、各分割内部表現間の分割境界DBの周辺に演算の実行が割り当てられなくなる(すなわち、非動作サイクルが連続する)。
第2スケジューリング工程(S803)の後は、図4のバインディング工程(S404)に進む。なお、本発明の第2実施形態に係るバインディング工程(S404)では、バインディング部163によって、分割CDFG間の枝がつなぎ直され、複数の分割CDFGが1つCDFGに統合される。
なお、本発明の第2実施形態では、分割CDFGの数は2つに限られない。また、本発明の第2実施形態では、入力部14が分割CDFGの数及び分割境界DBの位置をユーザから受け付けても良い。
本発明の第2実施形態によれば、第2スケジューリング部162bは、各分割CDFGについて第2スケジューリングを行う。従って、LSIの消費電力を本発明の第1実施形態よりも効率的に削減するために必要な情報が容易に得られる。また、本発明の第1実施形態よりも効率的な省電力処理を行うためのLSIの製造の下流工程における作業効率が向上する。
なお、本発明の第2実施形態では、第2スケジューリング部162bが、所定の演算器の数の制約を超えない範囲で、省電力処理サイクルが可能な限り長くなるように第2スケジューリングを行っても良い。演算器の数の制約は、入力部14によって受け付けられても良い。従って、適当な数の演算器を使用して、LSIの消費電力を効率的に削減するために必要な情報が容易に得られる。
(第3実施形態)
本発明の第3実施形態について説明する。本発明の第3実施形態は、第2スケジューリングが行われた場合に得られる高位合成結果について省電力処理に必要な時間が確保されていない場合に、演算器の共有の解除を行う高位合成装置の例である。なお、上述した実施形態と同様の内容についての説明は省略する。
本発明の第3実施形態に係る高位合成装置の構成について図2を参照して説明する。なお、図2の内部表現生成部161、スケジューリング部162、回路記述生成部164、及びスケジューリング情報生成部165は、本発明の第2実施形態と同様である。
図2のバインディング部163は、第2スケジューリング部162bのスケジューリング結果について、省電力処理に必要な非動作サイクルが確保されている場合に、演算器の共有を解除し、演算器の共有が解除された演算に新たな演算器を割り当てるためのバインディングを行うように構成される。
本発明の第3実施形態に係る高位合成処理について説明する。図10は、本発明の第3実施形態に係るバインディング工程(S404)の手順を示すフローチャートである。図11は、図10の手順を説明するための概略図である。
<図10:S1001> バインディング部163が、非動作サイクルと所定の共有解除閾値CTHとの大小関係を判定する。共有解除閾値CTHは、省電力処理に必要なサイクル数を示す情報であり、入力部14によって受け付けられる。非動作サイクルが共有解除閾値CTHより大きい場合には(S1001−YES)、表示工程(S1002)に進み、非動作サイクルが共有解除閾値CTH以下である場合には(S1001−NO)、割当工程(S1011)に進む。例えば、図11(A)に示す第1スケジューリングの結果から図11(B)に示す第2スケジューリングの結果が得られた場合には、動作サイクル(図11の(1))及び非動作サイクル(図11の(2))が何れも現れない領域が比較的短いので、非動作サイクルが共有解除閾値CTHより大きいと判定される(S1001−YES)。
<図10:表示工程(S1002)> 出力部18が、第2スケジューリングが行われた場合に得られる高位合成結果について非動作サイクルが共有解除閾値CTHより大きいことを示すメッセージ(例えば、非動作サイクル数及び省電力処理に必要なサイクル数)及び共有解除工程(S1004)(後述する)を行うか否かの確認メッセージを出力装置30に出力する。これに対して、ユーザは、入力装置20を使用して共有解除工程(S1004)を行うか否かのコマンドを入力する。ユーザが入力したコマンドは、入力部14によって受け付けられ、バインディング部163に与えられる。
<図10:S1003> ユーザが共有解除工程(S1004)を行うためのコマンド(以下、「共有解除コマンド」という)を入力した場合には(S1003−YES)、共有解除工程(S1004)に進み、ユーザが共有解除コマンドを入力しなかった場合には(S1003−NO)、割当工程(S1011)に進む。
<図10:共有解除工程(S1004)> バインディング部163が、演算器の共有を解除し、演算器の共有が解除された演算に新たな演算器を割り当てる。例えば、図11(C)に示すように、図11(B)において加算器Add1及び乗算器Mul1が実行する演算に、電源ドメインD1に属する加算器Add1及び乗算器Mul1と電源ドメインD2に属する加算器Add2及び乗算器Mul2とが割り当てられる。その結果、省電力処理サイクル(図11の(3))が増加し、且つ、全ての演算器(加算器Add1及びAdd2、並びに乗算器Mul1及びMul2)に省電力処理サイクル(すなわち、2つの電源ドメインD1及びD2への電源供給が遮断されるサイクル)が確保される。
<図10:割当工程(S1011)> バインディング部163が、スケジューリング部162のスケジューリング結果に基づいて各演算に演算器を割り当てる。割当工程(S1011)は、一般的な方法によって行われる。
共有解除工程(S1004)又は割当工程(S1011)の後は、図4の回路記述生成工程(S405)に進む。
本発明の第3実施形態に係る高位合成処理の具体例について説明する。図12は、本発明の第3実施形態に係る高位合成処理の具体例を説明するための概略図である。
図12は、第2スケジューリング部162bによってCDFGの分割境界DBを境にスケジューリングがやり直され、バインディング部163によってバインディングが行われ、その結果、分割境界DBの周辺において非動作サイクルが連続するようになったときの演算器の使用状況及びレジスタライフタイムを示す。各演算器Add1、ADD2、Mul1、及びMul2、並びにレジスタReg1及びReg2の長方形は、ステートマシンSMのどの状態で使用されているかを示す。
バインディング部163は、共有解除閾値CTHを用いて、共有解除工程(S1004)の対象となる演算器及びレジスタを決定する。ここで、共有解除閾値CTHは、分割境界DBから何サイクル分の非動作サイクルが確保されている場合に共有解除工程(S1004)を行うかを示す値である。
図12の楕円aでは、加算器Add1及びAdd2、乗算器Mul1、並びにレジスタReg2に関しては、共有解除閾値CTHを超える非動作サイクルが分割境界DBをまたいで存在するので、これらの演算器に対して共有解除工程(S1004)が行われる。その結果、一部の演算に関して、演算器の共有が解除され、同種の演算器が割り当てられる。このとき、演算器の共有の解除の前に分割境界DBの前段の分割CDFGで実行されていた演算と分割境界DBの後段の分割CDFGで実行されていた演算にそれぞれ異なる演算器(例えば、異なる電源ドメインに属する演算器)が割り当てられる。
一方、図12の破線矩形bでは、乗算器Mul2及びレジスタReg1に関しては、共有解除閾値CTHを超える非動作サイクルが存在しない(すなわち、分割境界DBから共有解除閾値CTH分の動作サイクルが存在する)ので、共有解除工程(S1004)ではなく、割当工程(S1011)が行われる。この場合には、乗算器Mul2及びレジスタReg1は、ステートマシンSMと同様に常に電源が供給される電源ドメインに属することになる。
なお、共有解除閾値CTHは、分割境界DBの前段の分割CDFGと後段の分割CDFGとで同じ値である必要はないし、前段の分割CDFGと後段の分割CDFGの何れか一方にのみ指定されても良い。
本発明の第3実施形態によれば、バインディング部163が、省電力処理に必要な非動作サイクルが確保されている場合に、演算器の共有を解除し、共有が解除された演算に異なる電源ドメインに属する演算器を割り当てる。具体的には、バインディング部163が、省電力処理に必要な非動作サイクルが確保されている演算器の共有を解除し、その演算器が実行すべき演算に分割境界DBの前後で異なる電源ドメインに属する演算器を割り当てる。従って、前段の分割CDFGのみで使用される演算器に関しては、分割境界DBから共有解除閾値CTH分前のサイクルから全体の処理が終了するまでの時間が省電力処理のための時間となる。一方、後段の分割CDFGのみで使用される演算器に関しては、全体の処理が開始してから分割境界DBから共有解除閾値CTH分後のサイクルまでが省電力処理のための時間となる。その結果、省電力処理が行われる頻度が増加する。図11(C)では、共有解除工程(S1004)により回路規模は増加するが、電源ドメインD1及びD2の何れにおいても省電力処理が行われる時間が確保されるので、消費電力及び消費エネルギーが大きく低減する。なお、共有解除閾値CTHが大きいほど、共有解除工程(S1004)の対象となる演算器及びレジスタの数は減少するが、1回の共有解除工程(S1004)あたりの省電力処理サイクルは増加する。
なお、本発明の第3実施形態では、S1001は、複数の共有解除閾値CTHに基づいて省電力処理サイクルが最大になるように行われても良い。
本発明の実施形態に係る高位合成装置10の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、高位合成装置10の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
また、本発明の実施形態に係る高位合成装置10の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
上述した実施形態は、いずれも一例であって限定的なものではないと考えられるべきである。本発明の技術的範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
10 高位合成装置
12 メモリ
12a 高位合成プログラム
14 入力部
16 CPU
161 内部表現生成部
162 スケジューリング部
162a 第1スケジューリング部
162b 第2スケジューリング部
162c 分割部
163 バインディング部
164 回路記述生成部
165 スケジューリング情報生成部
18 出力部
20 入力装置
30 出力装置

Claims (8)

  1. 複数の演算器を含む半導体集積回路の動作を表す動作記述を受け付けるように構成される入力部と、
    前記入力部によって受け付けられた動作記述に基づいて内部表現を生成するように構成される内部表現生成部と、
    前記内部表現生成部によって生成された内部表現について、前記演算器が動作しない非動作サイクルが連続するようにスケジューリングを行うように構成されるスケジューリング部と、
    前記内部表現生成部によって生成された内部表現について、前記スケジューリング部のスケジューリング結果に基づいてバインディングを行うように構成されるバインディング部と、
    前記スケジューリング部のスケジューリング結果及び前記バインディング部のバインディング結果に基づいて回路記述を生成するように構成される回路記述生成部と、
    前記内部表現生成部によって生成された内部表現及び前記回路記述生成部によって生成された回路記述を出力するように構成される出力部と、
    を備えることを特徴とする高位合成装置。
  2. 前記スケジューリング部は、
    前記内部表現生成部によって生成された内部表現について、複数の演算に1つの演算器が共有されるように、第1スケジューリングを行う第1スケジューリング部と、
    前記第1スケジューリングが行われた内部表現について、前記非動作サイクルが連続するように第2スケジューリングを行う第2スケジューリング部と、
    を備える請求項1記載の高位合成装置。
  3. 前記スケジューリング部は、前記第1スケジューリング部によって第1スケジューリングが行われた内部表現を分割することによって複数の分割内部表現を生成する分割部をさらに備え、
    前記第2スケジューリング部は、前記分割部によって生成された各分割内部表現について、前記第2スケジューリングを行う請求項2記載の高位合成装置。
  4. 前記第2スケジューリング部は、各分割内部表現間の分割境界に前記非動作サイクルが連続するように前記第2スケジューリングを行う請求項3記載の高位合成装置。
  5. 前記第2スケジューリング部は、2つの分割内部表現のうち、前段に位置する分割内部表現については、早いサイクルから順に動作サイクルが連続するように前記第2スケジューリングを行い、後段に位置する分割内部表現については、遅いサイクルから順に動作サイクルが連続するように、前記第2スケジューリングを行う請求項4記載の高位合成装置。
  6. 前記バインディング部は、前記スケジューリング部のスケジューリング結果について、省電力処理に必要な非動作サイクルが確保されない場合に、演算器の共有を解除し、演算器の共有が解除された演算に新たな演算器を割り当てるように、前記バインディングを行う請求項2乃至5の何れか1項記載の高位合成装置。
  7. 電源の遮断及び復帰のタイミングを表すタイミング情報と、各電源ドメインに属する演算器及びレジスタを表すドメイン情報と、を含むスケジューリング情報を生成するスケジューリング情報生成部をさらに備え、
    前記出力部は、さらに、前記スケジューリング情報生成部によって生成されたスケジューリング情報を出力する請求項1乃至6の何れか1項記載の高位合成装置。
  8. 前記スケジューリング情報生成部は、さらに、前記第1スケジューリングのみが行われた場合の回路記述に対する前記第2スケジューリングが行われた場合の回路記述の回路規模の増加量と、消費電力が削減されるサイクル数と、を含むスケジューリング情報を生成する請求項7記載の高位合成装置。
JP2009207458A 2009-09-08 2009-09-08 高位合成装置 Withdrawn JP2011059895A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009207458A JP2011059895A (ja) 2009-09-08 2009-09-08 高位合成装置
US12/730,104 US20110061032A1 (en) 2009-09-08 2010-03-23 High-level synthesis apparatus, high-level synthesis method, and computer readable medium comprising high-level synthesis program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009207458A JP2011059895A (ja) 2009-09-08 2009-09-08 高位合成装置

Publications (1)

Publication Number Publication Date
JP2011059895A true JP2011059895A (ja) 2011-03-24

Family

ID=43648635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009207458A Withdrawn JP2011059895A (ja) 2009-09-08 2009-09-08 高位合成装置

Country Status (2)

Country Link
US (1) US20110061032A1 (ja)
JP (1) JP2011059895A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5630870B2 (ja) * 2011-02-18 2014-11-26 ルネサスエレクトロニクス株式会社 半導体集積回路のレイアウト方法及びプログラム
US9430237B2 (en) * 2011-09-29 2016-08-30 Advanced Micro Devices, Inc. Sharing register file read ports for multiple operand instructions
JP6255880B2 (ja) * 2013-10-10 2018-01-10 株式会社ソシオネクスト 高位合成用データ生成装置、高位合成装置、高位合成用データ生成方法及びプログラム
US9436790B1 (en) * 2013-11-25 2016-09-06 Marvell International Ltd. Systems and methods for integrated circuit design

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6308313B1 (en) * 1999-06-09 2001-10-23 Nec Corporation Method for synthesis of common-case optimized circuits to improve performance and power dissipation
US6275969B1 (en) * 1999-06-09 2001-08-14 Nec Usa, Inc. Common case optimized circuit structure for high-performance and low-power VLSI designs
JP4396987B2 (ja) * 2006-02-08 2010-01-13 シャープ株式会社 動作合成装置および動作合成方法、ディジタル回路の製造方法、動作合成制御プログラム、可読記録媒体

Also Published As

Publication number Publication date
US20110061032A1 (en) 2011-03-10

Similar Documents

Publication Publication Date Title
Rele et al. Optimizing static power dissipation by functional units in superscalar processors
JP4784827B2 (ja) ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ
Lu et al. Power-aware operating systems for interactive systems
EP2657839B1 (en) Multiprocessor system and multigrain parallelizing compiler
Safari et al. LESS-MICS: A low energy standby-sparing scheme for mixed-criticality systems
KR20080072457A (ko) 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
JP2011059895A (ja) 高位合成装置
Lari et al. Hierarchical power management for adaptive tightly-coupled processor arrays
Ma et al. Improving reliability of soft real-time embedded systems on integrated CPU and GPU platforms
Sato et al. Evaluating reconfigurable dataflow computing using the himeno benchmark
Wang et al. Energy-aware variable partitioning and instruction scheduling for multibank memory architectures
Gu et al. Optimizing task and data assignment on multi-core systems with multi-port SPMs
Zoni et al. A survey on run-time power monitors at the edge
Wang et al. Architecture and compiler support for gpus using energy-efficient affine register files
US6308313B1 (en) Method for synthesis of common-case optimized circuits to improve performance and power dissipation
JP2007305148A (ja) マルチプロセッサシステム
JP2011197803A (ja) プログラム実行制御方法
You et al. Compiler analysis and supports for leakage power reduction on microprocessors
Li et al. Real-time constrained task scheduling in 3d chip multiprocessor to reduce peak temperature
Kosciuszkiewicz et al. Run-time management of reconfigurable hardware tasks using embedded linux
Wang et al. Compiler-assisted leakage-aware loop scheduling for embedded VLIW DSP processors
Palumbo et al. Modelling and Automated Implementation of Optimal Power Saving Strategies in Coarse‐Grained Reconfigurable Architectures
Chen et al. Applying pay-burst-only-once principle for periodic power management in hard real-time pipelined multiprocessor systems
JP2009070389A (ja) 処理装置のためのコントローラ
Ishihara A multi-performance processor for reducing the energy consumption of real-time embedded systems

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20121204