(57)【要約】      （修正有）【課題】ＬＳＩの消費電力を効率的に削減するために必要な情報をユーザに提供する高位合成装置を提供する。【解決手段】高位合成装置は、動作記述を受け付ける入力部１４と、入力部によって受け付けられた動作記述に基づいて内部表現を生成する内部表現生成部１６１と、内部表現生成部によって生成された内部表現について、演算器が動作しないサイクルが連続するようにスケジューリングを行うスケジューリング部１６２と、内部表現生成部１６１によって生成された内部表現について、スケジューリング部１６２のスケジューリング結果に基づいてバインディングを行うバインディング部１６３と、スケジューリング部のスケジューリング結果及びバインディング部のバインディング結果に基づいて回路記述を生成する回路記述生成部１６４と、内部表現生成部によって生成された内部表現及び回路記述生成部によって生成された回路記述を出力する出力部１８と、を備える。【選択図】図２
2011059895.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器を含む半導体集積回路の動作を表す動作記述を受け付けるように構成される入力部と、
前記入力部によって受け付けられた動作記述に基づいて内部表現を生成するように構成される内部表現生成部と、
前記内部表現生成部によって生成された内部表現について、前記演算器が動作しない非動作サイクルが連続するようにスケジューリングを行うように構成されるスケジューリング部と、
前記内部表現生成部によって生成された内部表現について、前記スケジューリング部のスケジューリング結果に基づいてバインディングを行うように構成されるバインディング部と、
前記スケジューリング部のスケジューリング結果及び前記バインディング部のバインディング結果に基づいて回路記述を生成するように構成される回路記述生成部と、
前記内部表現生成部によって生成された内部表現及び前記回路記述生成部によって生成された回路記述を出力するように構成される出力部と、
を備えることを特徴とする高位合成装置。
【請求項２】
前記スケジューリング部は、
前記内部表現生成部によって生成された内部表現について、複数の演算に１つの演算器が共有されるように、第１スケジューリングを行う第１スケジューリング部と、
前記第１スケジューリングが行われた内部表現について、前記非動作サイクルが連続するように第２スケジューリングを行う第２スケジューリング部と、
を備える請求項１記載の高位合成装置。
【請求項３】
前記スケジューリング部は、前記第１スケジューリング部によって第１スケジューリングが行われた内部表現を分割することによって複数の分割内部表現を生成する分割部をさらに備え、
前記第２スケジューリング部は、前記分割部によって生成された各分割内部表現について、前記第２スケジューリングを行う請求項２記載の高位合成装置。
【請求項４】
前記第２スケジューリング部は、各分割内部表現間の分割境界に前記非動作サイクルが連続するように前記第２スケジューリングを行う請求項３記載の高位合成装置。
【請求項５】
前記第２スケジューリング部は、２つの分割内部表現のうち、前段に位置する分割内部表現については、早いサイクルから順に動作サイクルが連続するように前記第２スケジューリングを行い、後段に位置する分割内部表現については、遅いサイクルから順に動作サイクルが連続するように、前記第２スケジューリングを行う請求項４記載の高位合成装置。
【請求項６】
前記バインディング部は、前記スケジューリング部のスケジューリング結果について、省電力処理に必要な非動作サイクルが確保されない場合に、演算器の共有を解除し、演算器の共有が解除された演算に新たな演算器を割り当てるように、前記バインディングを行う請求項２乃至５の何れか１項記載の高位合成装置。
【請求項７】
電源の遮断及び復帰のタイミングを表すタイミング情報と、各電源ドメインに属する演算器及びレジスタを表すドメイン情報と、を含むスケジューリング情報を生成するスケジューリング情報生成部をさらに備え、
前記出力部は、さらに、前記スケジューリング情報生成部によって生成されたスケジューリング情報を出力する請求項１乃至６の何れか１項記載の高位合成装置。
【請求項８】
前記スケジューリング情報生成部は、さらに、前記第１スケジューリングのみが行われた場合の回路記述に対する前記第２スケジューリングが行われた場合の回路記述の回路規模の増加量と、消費電力が削減されるサイクル数と、を含むスケジューリング情報を生成する請求項７記載の高位合成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高位合成装置に関し、特に、半導体集積回路の設計に使用される高位合成装置に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）の設計では、ＬＳＩの消費電力を削減することが重要な課題となっている。その課題を解決するためのＬＳＩの設計方法として、ユーザが入力した動作記述に基づいて回路記述を出力する高位合成装置を使用することが知られている。従来の高位合成装置は、動作記述中の同種の演算を１つの演算器が共有するように回路記述を生成する。従来の高位合成装置は、複数の演算について１つの演算器を共有すること（以下、「演算器の共有」という）と動的消費電力との関係（すなわち、どのサイクルで実行される演算についてどの演算器を共有すれば、動的消費電力が効率的に削減されるか）は考慮されていないので、単に実行サイクルが重ならない場合に演算器を共有するように回路記述を生成している。その結果、全サイクルにわたって満遍なく演算器が使用されるような回路記述が生成される。
【０００３】
一方、演算器の各ゲートに供給される電源を遮断することによって、ＬＳＩが動作しているときの消費電力（以下、「動的消費電力」という）だけでなく、ＬＳＩが動作していないときの消費電力（以下、「静的消費電力」という）を削減する技術が知られている。
【０００４】
しかしながら、演算器の各ゲートに供給される電源を遮断する場合には、上記のように全サイクルにわたって満遍なく演算器が使用される回路記述が生成されることが問題となる。具体的には、遮断した電源を復帰させるためには数［μｓ］以上の時間が必要となるので、数［ｎｓ］のサイクルで動作するＬＳＩでは、演算器が動作しないサイクル（以下、「非動作サイクル」という）ができるだけ長く連続することが求められる。これに対し、従来の高位合成装置では、全サイクルにわたって満遍なく演算器が使用されるような回路記述が生成されるので、非動作サイクルが長く連続することはない。その結果、従来の高位合成装置によって生成された回路記述を利用して設計されたＬＳＩは、演算器の各ゲートに供給される電源の遮断時間が短い。すなわち、従来の高位合成装置は、動的消費電力及び静的消費電力を含むＬＳＩの消費電力を効率的に削減するための情報及び回路記述をユーザに提供することはできない。
【０００５】
また、演算器の各ゲートに供給されるクロックを停止することによって、ゲートのスイッチングを抑制し、動的消費電力を削減する技術（以下、「クロックゲーティング」という）が知られている（特許文献１を参照）。特許文献１では、実行条件が排他条件である複数の投機実行される処理があった場合に、実行条件が決定した段階で不要となる処理に対応するレジスタに供給されるクロックを停止することによって、ＬＳＩの動的消費電力を削減している。
【０００６】
しかしながら、特許文献１では、実行条件が排他条件でない部分の消費電力を削減することはできない。また、近年、ＬＳＩの微細化が進むにつれて、動的消費電力に対する静的消費電力の割合が大きくなっているので、動的消費電力のみを削減するだけでは不十分である。すなわち、従来の高位合成装置に特許文献１を適用したとしても、ＬＳＩの消費電力を効率的に削減するために必要な情報をユーザに提供することはできない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２８２３６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、ＬＳＩの消費電力を効率的に削減するために必要な情報をユーザに提供する高位合成装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、
複数の演算器を含む半導体集積回路の動作を表す動作記述を受け付けるように構成される入力部と、
前記入力部によって受け付けられた動作記述に基づいて内部表現を生成するように構成される内部表現生成部と、
前記内部表現生成部によって生成された内部表現について、前記演算器が動作しない非動作サイクルが連続するようにスケジューリングを行うように構成されるスケジューリング部と、
前記内部表現生成部によって生成された内部表現について、前記スケジューリング部のスケジューリング結果に基づいてバインディングを行うように構成されるバインディング部と、
前記スケジューリング部のスケジューリング結果及び前記バインディング部のバインディング結果に基づいて回路記述を生成するように構成される回路記述生成部と、
前記内部表現生成部によって生成された内部表現及び前記回路記述生成部によって生成された回路記述を出力するように構成される出力部と、
を備えることを特徴とする高位合成装置が提供される。
【発明の効果】
【００１０】
本発明によれば、ＬＳＩの消費電力を効率的に削減するために必要な情報をユーザに提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１実施形態に係る高位合成装置１０の構成を示すブロック図である。
【図２】図１のＣＰＵ１６が実現する機能を示すブロック図である。
【図３】図２のスケジューリング部１６２の機能を示すブロック図である。
【図４】本発明の第１実施形態に係る高位合成処理の手順を示すフローチャートである。
【図５】図４のスケジューリング工程（Ｓ４０３）の手順を示すフローチャートである。
【図６】本発明の第１実施形態と従来技術との比較例を説明する概略図である。
【図７】本発明の第２実施形態に係るスケジューリング部１６２の機能を示すブロック図である。
【図８】本発明の第２実施形態に係るスケジューリング工程（Ｓ４０３）の手順を示すフローチャートである。
【図９】図８の分割工程（Ｓ８０２）の具体例を説明する概略図である。
【図１０】本発明の第３実施形態に係るバインディング工程（Ｓ４０４）の手順を示すフローチャートである。
【図１１】図１０の手順を説明するための概略図である。
【図１２】本発明の第３実施形態に係る高位合成処理の具体例を説明するための概略図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１３】
（第１実施形態）
本発明の第１実施形態について説明する。本発明の第１実施形態は、本発明の実施形態に係る高位合成装置の基本的な例である。
【００１４】
本発明の第１実施形態に係る高位合成装置の構成について説明する。図１は、本発明の第１実施形態に係る高位合成装置１０の構成を示すブロック図である。図２は、図１のＣＰＵ１６が実現する機能を示すブロック図である。図３は、図２のスケジューリング部１６２の機能を示すブロック図である。
【００１５】
図１に示すように、本発明の第１実施形態に係る高位合成装置１０は、メモリ１２と、入力部１４と、プロセッサ（以下、「ＣＰＵ（Central Processing Unit）」という）１６と、出力部１８と、を備える。ＣＰＵ１６には、メモリ１２、入力部１４、及び出力部１８が接続される。高位合成装置１０の入力は、複数の演算器を含む半導体集積回路の動作を表す動作レベル記述（以下、「動作記述」という）のソースコードであり、高位合成装置１０の出力は、レジスタ転送レベル（以下、「ＲＴＬ（Register Transfer Level）」という）記述、データの流れ及び制御の流れを表すＣＤＦＧ（Control Data Flow Graph）、及び演算器の共有結果等を含む高位合成結果である。
【００１６】
図１のメモリ１２は、ＣＰＵ１６が本発明の第１実施形態に係る高位合成処理（後述する）に必要な機能（図２を参照）を実現するための高位合成プログラム１２ａを記憶する。また、メモリ１２は、本発明の第１実施形態に係る高位合成処理において、ＣＰＵ１６によって生成される様々なデータを記憶可能に構成される。
【００１７】
図１の入力部１４は、入力装置２０に接続される。また、入力部１４は、ユーザが入力装置２０を使用して入力した動作記述を受け付けるように構成される。例えば、入力装置２０は、キーボード又はネットワークインタフェースである。入力装置２０がネットワークインタフェースである場合には、入力部１４は、ネットワークを介して接続されるサーバ（図示せず）から動作記述を受け付ける。
【００１８】
図１のＣＰＵ１６は、メモリ１２に記憶された高位合成プログラム１２ａを起動し、図２の内部表現生成部１６１と、スケジューリング部１６２と、バインディング部１６３と、回路記述生成部１６４と、スケジューリング情報生成部１６５と、を含む本発明の第１実施形態に係る高位合成処理に必要な機能を実現するように構成される。
【００１９】
図２の内部表現生成部１６１は、入力部１４によって受け付けられた動作記述に基づいてソフトウェアの内部情報を表す内部表現を生成するように構成される。例えば、内部表現生成部１６１は、動作記述を解析し、解析結果から演算の実行順序及びＣＤＦＧを生成する。
【００２０】
図２のスケジューリング部１６２は、内部表現生成部１６１によって生成された内部表現について、非動作サイクルが連続するように演算のタイミングを決定するスケジューリングを行うように構成される。すなわち、スケジューリング部１６２は、同種の演算の実行サイクルが連続するようにスケジューリングを行う。図３に示すように、スケジューリング部１６２は、内部表現生成部１６１によって生成された内部表現について、複数の演算に１つの演算器が共有される（すなわち、演算器の共有を行う）ように、第１スケジューリングを行う第１スケジューリング部１６２ａと、第１スケジューリング部１６２ａによって第１スケジューリングが行われた内部表現について、非動作サイクルが連続するように第２スケジューリングを行う第２スケジューリング部１６２ｂと、を備える。
【００２１】
図２のバインディング部１６３は、内部表現生成部１６１によって生成された内部表現について、スケジューリング部１６２のスケジューリング結果に基づいてバインディングを行うように構成される。
【００２２】
図２の回路記述生成部１６４は、スケジューリング部１６２のスケジューリング結果及びバインディング部１６３のバインディング結果に基づいて回路記述を生成するように構成される。例えば、回路記述は、ＲＴＬ記述である。
【００２３】
図２のスケジューリング情報生成部１６５は、電源の遮断及び復帰のタイミングを表すタイミング情報と、各電源ドメインに属する演算器及びレジスタを表すドメイン情報と、第１スケジューリングのみが行われた場合の回路記述（すなわち、一般的な高位合成結果）に対する第２スケジューリング行われた場合の回路記述（すなわち、本発明の第１実施形態に係る高位合成結果）の回路規模の増加量（例えば、演算器及びレジスタの増加数）と、消費電力が低減されるサイクル数と、を含むスケジューリング情報を生成するように構成される。
【００２４】
図１の出力部１８は、出力装置３０に接続される。また、出力部１８は、内部表現生成部１６１によって生成された内部表現、回路記述生成部１６４によって生成された回路記述、及びスケジューリング情報生成部１６５によって生成されたスケジューリング情報を出力するように構成される。例えば、出力装置３０は、ディスプレイ、プリンタ又はネットワークインタフェースである。出力装置３０がネットワークインタフェースである場合には、出力部１８は、ネットワークを介して接続されるサーバに内部表現、回路記述、及びスケジューリング情報を出力する。
【００２５】
本発明の第１実施形態に係る高位合成処理について説明する。図４は、本発明の第１実施形態に係る高位合成処理の手順を示すフローチャートである。図５は、図４のスケジューリング工程（Ｓ４０３）の手順を示すフローチャートである。
【００２６】
＜図４：入力工程（Ｓ４０１）＞  入力部１４が、ユーザが入力装置２０を使用して入力した動作記述を受け付ける。
【００２７】
＜図４：内部表現生成工程（Ｓ４０２）＞  内部表現生成部１６１が、入力工程（Ｓ４０１）において受け付けられた動作記述のソースコードを解析し、ＣＤＦＧを生成する。
【００２８】
＜図４：スケジューリング工程（Ｓ４０３）＞  スケジューリング部１６２が、内部表現生成工程（Ｓ４０２）において生成されたＣＤＦＧについて、非動作サイクルが連続するように演算のタイミングを決定するスケジューリングを行う。具体的には、スケジューリング工程（Ｓ４０３）は、図５に示す手順で行われる。
【００２９】
＜図５：第１スケジューリング工程（Ｓ５０１）＞  第１スケジューリング部１６２ａが、内部表現生成工程（Ｓ４０２）において生成されたＣＤＦＧについて、複数の演算に１つの演算器が共有されるように第１スケジューリングを行う。第１スケジューリング工程（Ｓ５０１）は、一般的な方法によって行われる。
【００３０】
＜図５：第２スケジューリング工程（Ｓ５０２）＞  第２スケジューリング部１６２ｂが、第１スケジューリング工程（Ｓ５０１）において第１スケジューリングが行われたＣＤＦＧについて、非動作サイクルが連続するように第２スケジューリングを行う。例えば、第２スケジューリング部１６２ｂは、ＣＤＦＧで表された第１スケジューリング工程（Ｓ５０１）の結果から、前後に他の演算が密集している演算を複数個選択し、選択された演算がスケジューリングされているクロックステップになるべく近くなるように、他の演算をスケジューリングする。
【００３１】
第２スケジューリング工程（Ｓ５０２）の後は、図４のバインディング工程（Ｓ４０４）に進む。
【００３２】
＜図４：バインディング工程（Ｓ４０４）＞  バインディング部１６３が、スケジューリング工程（Ｓ４０３）のスケジューリング結果（すなわち、第２スケジューリング工程（Ｓ５０２）の処理結果）に基づいて、演算に演算器を割り当てるバインディングを行う。バインディング工程（Ｓ４０４）は、一般的な方法によって行われる。
【００３３】
＜図４：回路記述生成工程（Ｓ４０５）＞  回路記述生成部１６４が、スケジューリング工程（Ｓ４０３）のスケジューリング結果及びバインディング工程（Ｓ４０４）のバインディングの結果に基づいてＲＴＬ記述を生成する。なお、回路記述生成工程（Ｓ４０５）では、ステートマシンの各ステートの電源ドメイン毎のオン／オフ状態を表す信号が生成されても良い。また、回路記述生成工程（Ｓ４０５）では、省電力処理（後述する）用制御回路が埋め込まれたＲＴＬ記述が生成されるのではなく、電源ドメイン毎の省電力処理が可能なタイミングを示す情報が埋め込まれたＲＴＬ記述が生成されても良い。
【００３４】
＜図４：スケジューリング情報生成工程（Ｓ４０６）＞  スケジューリング情報生成部１６５が、第２スケジューリング工程（Ｓ５０２）の処理結果に基づいて、電源の遮断及び復帰のタイミングを表すタイミング情報と、各電源ドメインに属する演算器及びレジスタを表すドメイン情報と、第１スケジューリングのみが行われた場合の回路記述（すなわち、一般的な高位合成結果）に対する第２スケジューリング行われた場合の回路記述（すなわち、本発明の第１実施形態に係る高位合成結果）の回路規模の増加量（例えば、演算器及びレジスタの増加数）と、消費電力が低減されるサイクル数と、を含むスケジューリング情報を生成する。
【００３５】
＜図４：出力工程（Ｓ４０７）＞  出力部１８が、スケジューリング工程（Ｓ４０３）の処理結果（第２スケジューリングが行われたＣＤＦＧ）と、回路記述生成工程（Ｓ４０５）の処理結果（第２スケジューリング工程（Ｓ５０２）の処理結果に対応するＲＴＬ記述）と、スケジューリング情報生成工程（Ｓ４０６）の処理結果（タイミング情報、ドメイン情報、回路規模の増加量、及び消費電力が低減されるサイクル数）と、を出力装置３０に出力する。
【００３６】
出力工程（Ｓ４０７）の後は、本発明の第１実施形態に係る高位合成処理が終了する。
【００３７】
本発明の第１実施形態と従来技術との比較例について説明する。図６は、本発明の第１実施形態と従来技術との比較例を説明する概略図である。
【００３８】
図６（Ａ）は従来技術による高位合成結果を示す。図６（Ａ）に示すように、従来技術による高位合成結果では、演算器が動作するサイクル（以下、「動作サイクル」という）（図６の（１））と非動作サイクル（図６の（２））とがほぼ交互に形成される。この場合には、非動作サイクルにおける演算器への電源供給の遮断及び電源供給の復帰（以下、「省電力処理」という）を行うのに必要な時間を確保することはできない。従って、図６（Ａ）に示す従来技術による高位合成結果では、ＬＳＩの消費電力を効率的に削減することはできない。
【００３９】
図６（Ｂ）及び（Ｃ）は、本発明の第１実施形態による高位合成結果を示す。図６（Ｂ）に示すように、本発明の第１実施形態による高位合成結果では、全サイクルの中心付近に非動作サイクルが連続的に形成される。この場合には、図６（Ｃ）に示すように、非動作サイクルが省電力処理を行うのに十分な時間である限り、連続する非動作サイクルを省電力処理が行われるサイクル（以下、「省電力処理サイクル」という）（図６の（３））として取り扱うことができる。従って、図６（Ｃ）の高位合成結果では、図６（Ａ）の高位合成結果と比較して、ＬＳＩの消費電力を効率的に削減することができる。
【００４０】
なお、図６（Ｃ）は、加算器Ａｄｄ及び乗算器Ｍｕｌ１が同じ電源ドメインに属する例を示すが、本発明の範囲はこれに限られるものではない。本発明の第１実施形態では、異なる電源ドメインに属する演算器に対して省電力処理が行われても良い。この場合には、図６（Ｃ）の乗算器Ｍｕｌ１に対しては、さらに２サイクル延ばして電源供給を遮断することができる。すなわち、同じ電源ドメインに属する演算器に対して省電力処理を行うよりも、異なる電源ドメインに属する演算器に対して省電力処理を行う方が、ＬＳＩの消費電力をより効率的に削減することができる。なお、電源供給の遮断ができない演算器やステートマシンは、常に電源供給される電源ドメインに属する。
【００４１】
本発明の第１実施形態によれば、スケジューリング部１６２は、非動作サイクルが連続するように演算のタイミングを決定するスケジューリングを行う。そして、出力部１８は、そのスケジューリング結果を反映する高位合成結果を出力する。従って、ＬＳＩの消費電力を効率的に削減するために必要な情報が容易に得られる。また、省電力処理を行うためのＬＳＩの製造の下流工程における作業効率が向上する。
【００４２】
また、本発明の第１実施形態によれば、スケジューリング部１６２は、第１スケジューリングが行われた内部表現について、非動作サイクルが連続するようにスケジューリングをやり直す第２スケジューリングを行う第２スケジューリング部１６２ｂを備える。従って、連続的な非動作サイクルを有する高位合成結果が得られる。
【００４３】
なお、本発明の第１実施形態では、出力部１８は、内部表現及び回路記述のみを出力するように構成されても良い。この場合には、スケジューリング情報生成部１６５は省略される。
【００４４】
また、本発明の第１実施形態では、出力部１８は、スケジューリング情報生成部１６５によって生成されたスケジューリング情報のうちタイミング情報及びドメイン情報を出力するように構成されても良い。この場合には、スケジューリング情報生成部１６５は、回路規模の増加量及び消費電力が低減されるサイクル数の生成を省略しても良い。
【００４５】
また、本発明の第１実施形態では、省電力処理が電源供給の遮断及び復帰である例について説明したが、本発明の範囲はこれに限られるものではない。本発明の第１実施形態では、省電力処理が非動作サイクルにおいてクロックゲーティングを行うものであっても良い。この場合には、第２スケジューリング部１６２ｂによって非動作サイクルが連続的に形成されるので、クロックゲーティング用のイネーブル信号の制御が容易になる。
【００４６】
（第２実施形態）
本発明の第２実施形態について説明する。本発明の第２実施形態は、分割されたＣＤＦＧ（以下、「分割ＣＤＦＧ」という）毎にスケジューリングを行う高位合成装置の例である。なお、上述した実施形態と同様の内容についての説明は省略する。
【００４７】
本発明の第２実施形態に係る高位合成装置の構成について説明する。図７は、本発明の第２実施形態に係るスケジューリング部１６２の機能を示すブロック図である。
【００４８】
図７に示すように、スケジューリング部１６２は、第１スケジューリング部１６２ａと、第２スケジューリング部１６２ｂと、分割部１６２ｃと、を備える。第１スケジューリング部１６２ａは、本発明の第１実施形態と同様である。
【００４９】
図７の分割部１６２ｃは、第１スケジューリング部１６２ａによって第１スケジューリングが行われた内部表現を複数の内部表現に分割することによって分割内部表現を生成するように構成される。
【００５０】
図７の第２スケジューリング部１６２ｂは、分割部１６２ｃによって生成された各分割内部表現について、第２スケジューリングを行うように構成される。
【００５１】
本発明の第２実施形態に係る高位合成処理について説明する。図８は、本発明の第２実施形態に係るスケジューリング工程（Ｓ４０３）の手順を示すフローチャートである。図９は、図８の分割工程（Ｓ８０２）の具体例を説明する概略図である。
【００５２】
＜図８：第１スケジューリング工程（Ｓ８０１）＞  図５の第１スケジューリング工程（Ｓ５０１）と同様である。
【００５３】
＜図８：分割工程（Ｓ８０２）＞  分割部１６２ｃが、第１スケジューリング工程（Ｓ８０１）において生成されたＣＤＦＧを分割することによって複数の分割ＣＤＦＧを生成する。例えば、図９（Ａ）に示すように、分割境界ＤＢをまたぐ枝は、分割境界ＤＢより前の分割ＣＤＦＧでは出力として取り扱われ、分割境界ＤＢより後の分割ＣＤＦＧでは入力として取り扱われる。すなわち、分割境界ＤＢの前段に位置する分割ＣＤＦＧと分割境界ＤＢの後段に位置する分割ＣＤＦＧとが独立に取り扱われる。その結果、第２スケジューリング工程（Ｓ８０３）（後述する）において、連続的な非動作サイクルが容易に生成される。図９は、全実行サイクルの中心を分割境界ＤＢとしてＣＤＦＧが２つに分割される（すなわち、２つの分割ＣＤＦＧが生成される）例を示す。
【００５４】
＜図８：第２スケジューリング工程（Ｓ８０３）＞  第２スケジューリング部１６２ｂが、各分割ＣＤＦＧについて、同種の演算の実行サイクルが可能な限り連続的になるように第２スケジューリングを行う。例えば、分割境界ＤＢの前段の分割ＣＤＦＧでは、可能な限り早いサイクルに演算が実行される（すなわち、前段の分割ＣＤＦＧの分割境界ＤＢ周辺に非動作サイクルが連続する）ようにスケジューリングが行われ、分割境界ＤＢの後段の分割ＣＤＦＧでは、可能な限り遅いサイクルに演算が実行される（すなわち、後段の分割ＣＤＦＧの分割境界ＤＢに非動作サイクルが連続する）ようにスケジューリングが行われる。換言すると、第２スケジューリング部１６２ｂは、分割境界ＤＢから離れた位置に動作サイクルを設けるように、第２スケジューリングを行う。その結果、図９（Ｂ）に示すように、各分割内部表現間の分割境界ＤＢの周辺に演算の実行が割り当てられなくなる（すなわち、非動作サイクルが連続する）。
【００５５】
第２スケジューリング工程（Ｓ８０３）の後は、図４のバインディング工程（Ｓ４０４）に進む。なお、本発明の第２実施形態に係るバインディング工程（Ｓ４０４）では、バインディング部１６３によって、分割ＣＤＦＧ間の枝がつなぎ直され、複数の分割ＣＤＦＧが１つＣＤＦＧに統合される。
【００５６】
なお、本発明の第２実施形態では、分割ＣＤＦＧの数は２つに限られない。また、本発明の第２実施形態では、入力部１４が分割ＣＤＦＧの数及び分割境界ＤＢの位置をユーザから受け付けても良い。
【００５７】
本発明の第２実施形態によれば、第２スケジューリング部１６２ｂは、各分割ＣＤＦＧについて第２スケジューリングを行う。従って、ＬＳＩの消費電力を本発明の第１実施形態よりも効率的に削減するために必要な情報が容易に得られる。また、本発明の第１実施形態よりも効率的な省電力処理を行うためのＬＳＩの製造の下流工程における作業効率が向上する。
【００５８】
なお、本発明の第２実施形態では、第２スケジューリング部１６２ｂが、所定の演算器の数の制約を超えない範囲で、省電力処理サイクルが可能な限り長くなるように第２スケジューリングを行っても良い。演算器の数の制約は、入力部１４によって受け付けられても良い。従って、適当な数の演算器を使用して、ＬＳＩの消費電力を効率的に削減するために必要な情報が容易に得られる。
【００５９】
（第３実施形態）
本発明の第３実施形態について説明する。本発明の第３実施形態は、第２スケジューリングが行われた場合に得られる高位合成結果について省電力処理に必要な時間が確保されていない場合に、演算器の共有の解除を行う高位合成装置の例である。なお、上述した実施形態と同様の内容についての説明は省略する。
【００６０】
本発明の第３実施形態に係る高位合成装置の構成について図２を参照して説明する。なお、図２の内部表現生成部１６１、スケジューリング部１６２、回路記述生成部１６４、及びスケジューリング情報生成部１６５は、本発明の第２実施形態と同様である。
【００６１】
図２のバインディング部１６３は、第２スケジューリング部１６２ｂのスケジューリング結果について、省電力処理に必要な非動作サイクルが確保されている場合に、演算器の共有を解除し、演算器の共有が解除された演算に新たな演算器を割り当てるためのバインディングを行うように構成される。
【００６２】
本発明の第３実施形態に係る高位合成処理について説明する。図１０は、本発明の第３実施形態に係るバインディング工程（Ｓ４０４）の手順を示すフローチャートである。図１１は、図１０の手順を説明するための概略図である。
【００６３】
＜図１０：Ｓ１００１＞  バインディング部１６３が、非動作サイクルと所定の共有解除閾値ＣＴＨとの大小関係を判定する。共有解除閾値ＣＴＨは、省電力処理に必要なサイクル数を示す情報であり、入力部１４によって受け付けられる。非動作サイクルが共有解除閾値ＣＴＨより大きい場合には（Ｓ１００１−ＹＥＳ）、表示工程（Ｓ１００２）に進み、非動作サイクルが共有解除閾値ＣＴＨ以下である場合には（Ｓ１００１−ＮＯ）、割当工程（Ｓ１０１１）に進む。例えば、図１１（Ａ）に示す第１スケジューリングの結果から図１１（Ｂ）に示す第２スケジューリングの結果が得られた場合には、動作サイクル（図１１の（１））及び非動作サイクル（図１１の（２））が何れも現れない領域が比較的短いので、非動作サイクルが共有解除閾値ＣＴＨより大きいと判定される（Ｓ１００１−ＹＥＳ）。
【００６４】
＜図１０：表示工程（Ｓ１００２）＞  出力部１８が、第２スケジューリングが行われた場合に得られる高位合成結果について非動作サイクルが共有解除閾値ＣＴＨより大きいことを示すメッセージ（例えば、非動作サイクル数及び省電力処理に必要なサイクル数）及び共有解除工程（Ｓ１００４）（後述する）を行うか否かの確認メッセージを出力装置３０に出力する。これに対して、ユーザは、入力装置２０を使用して共有解除工程（Ｓ１００４）を行うか否かのコマンドを入力する。ユーザが入力したコマンドは、入力部１４によって受け付けられ、バインディング部１６３に与えられる。
【００６５】
＜図１０：Ｓ１００３＞  ユーザが共有解除工程（Ｓ１００４）を行うためのコマンド（以下、「共有解除コマンド」という）を入力した場合には（Ｓ１００３−ＹＥＳ）、共有解除工程（Ｓ１００４）に進み、ユーザが共有解除コマンドを入力しなかった場合には（Ｓ１００３−ＮＯ）、割当工程（Ｓ１０１１）に進む。
【００６６】
＜図１０：共有解除工程（Ｓ１００４）＞  バインディング部１６３が、演算器の共有を解除し、演算器の共有が解除された演算に新たな演算器を割り当てる。例えば、図１１（Ｃ）に示すように、図１１（Ｂ）において加算器Ａｄｄ１及び乗算器Ｍｕｌ１が実行する演算に、電源ドメインＤ１に属する加算器Ａｄｄ１及び乗算器Ｍｕｌ１と電源ドメインＤ２に属する加算器Ａｄｄ２及び乗算器Ｍｕｌ２とが割り当てられる。その結果、省電力処理サイクル（図１１の（３））が増加し、且つ、全ての演算器（加算器Ａｄｄ１及びＡｄｄ２、並びに乗算器Ｍｕｌ１及びＭｕｌ２）に省電力処理サイクル（すなわち、２つの電源ドメインＤ１及びＤ２への電源供給が遮断されるサイクル）が確保される。
【００６７】
＜図１０：割当工程（Ｓ１０１１）＞  バインディング部１６３が、スケジューリング部１６２のスケジューリング結果に基づいて各演算に演算器を割り当てる。割当工程（Ｓ１０１１）は、一般的な方法によって行われる。
【００６８】
共有解除工程（Ｓ１００４）又は割当工程（Ｓ１０１１）の後は、図４の回路記述生成工程（Ｓ４０５）に進む。
【００６９】
本発明の第３実施形態に係る高位合成処理の具体例について説明する。図１２は、本発明の第３実施形態に係る高位合成処理の具体例を説明するための概略図である。
【００７０】
図１２は、第２スケジューリング部１６２ｂによってＣＤＦＧの分割境界ＤＢを境にスケジューリングがやり直され、バインディング部１６３によってバインディングが行われ、その結果、分割境界ＤＢの周辺において非動作サイクルが連続するようになったときの演算器の使用状況及びレジスタライフタイムを示す。各演算器Ａｄｄ１、ＡＤＤ２、Ｍｕｌ１、及びＭｕｌ２、並びにレジスタＲｅｇ１及びＲｅｇ２の長方形は、ステートマシンＳＭのどの状態で使用されているかを示す。
【００７１】
バインディング部１６３は、共有解除閾値ＣＴＨを用いて、共有解除工程（Ｓ１００４）の対象となる演算器及びレジスタを決定する。ここで、共有解除閾値ＣＴＨは、分割境界ＤＢから何サイクル分の非動作サイクルが確保されている場合に共有解除工程（Ｓ１００４）を行うかを示す値である。
【００７２】
図１２の楕円ａでは、加算器Ａｄｄ１及びＡｄｄ２、乗算器Ｍｕｌ１、並びにレジスタＲｅｇ２に関しては、共有解除閾値ＣＴＨを超える非動作サイクルが分割境界ＤＢをまたいで存在するので、これらの演算器に対して共有解除工程（Ｓ１００４）が行われる。その結果、一部の演算に関して、演算器の共有が解除され、同種の演算器が割り当てられる。このとき、演算器の共有の解除の前に分割境界ＤＢの前段の分割ＣＤＦＧで実行されていた演算と分割境界ＤＢの後段の分割ＣＤＦＧで実行されていた演算にそれぞれ異なる演算器（例えば、異なる電源ドメインに属する演算器）が割り当てられる。
【００７３】
一方、図１２の破線矩形ｂでは、乗算器Ｍｕｌ２及びレジスタＲｅｇ１に関しては、共有解除閾値ＣＴＨを超える非動作サイクルが存在しない（すなわち、分割境界ＤＢから共有解除閾値ＣＴＨ分の動作サイクルが存在する）ので、共有解除工程（Ｓ１００４）ではなく、割当工程（Ｓ１０１１）が行われる。この場合には、乗算器Ｍｕｌ２及びレジスタＲｅｇ１は、ステートマシンＳＭと同様に常に電源が供給される電源ドメインに属することになる。
【００７４】
なお、共有解除閾値ＣＴＨは、分割境界ＤＢの前段の分割ＣＤＦＧと後段の分割ＣＤＦＧとで同じ値である必要はないし、前段の分割ＣＤＦＧと後段の分割ＣＤＦＧの何れか一方にのみ指定されても良い。
【００７５】
本発明の第３実施形態によれば、バインディング部１６３が、省電力処理に必要な非動作サイクルが確保されている場合に、演算器の共有を解除し、共有が解除された演算に異なる電源ドメインに属する演算器を割り当てる。具体的には、バインディング部１６３が、省電力処理に必要な非動作サイクルが確保されている演算器の共有を解除し、その演算器が実行すべき演算に分割境界ＤＢの前後で異なる電源ドメインに属する演算器を割り当てる。従って、前段の分割ＣＤＦＧのみで使用される演算器に関しては、分割境界ＤＢから共有解除閾値ＣＴＨ分前のサイクルから全体の処理が終了するまでの時間が省電力処理のための時間となる。一方、後段の分割ＣＤＦＧのみで使用される演算器に関しては、全体の処理が開始してから分割境界ＤＢから共有解除閾値ＣＴＨ分後のサイクルまでが省電力処理のための時間となる。その結果、省電力処理が行われる頻度が増加する。図１１（Ｃ）では、共有解除工程（Ｓ１００４）により回路規模は増加するが、電源ドメインＤ1及びＤ２の何れにおいても省電力処理が行われる時間が確保されるので、消費電力及び消費エネルギーが大きく低減する。なお、共有解除閾値ＣＴＨが大きいほど、共有解除工程（Ｓ１００４）の対象となる演算器及びレジスタの数は減少するが、１回の共有解除工程（Ｓ１００４）あたりの省電力処理サイクルは増加する。
【００７６】
なお、本発明の第３実施形態では、Ｓ１００１は、複数の共有解除閾値ＣＴＨに基づいて省電力処理サイクルが最大になるように行われても良い。
【００７７】
本発明の実施形態に係る高位合成装置１０の少なくとも一部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。ソフトウェアで構成する場合には、高位合成装置１０の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させても良い。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でも良い。
【００７８】
また、本発明の実施形態に係る高位合成装置１０の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布しても良い。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布しても良い。
【００７９】
上述した実施形態は、いずれも一例であって限定的なものではないと考えられるべきである。本発明の技術的範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８０】
１０  高位合成装置
１２  メモリ
１２ａ  高位合成プログラム
１４  入力部
１６  ＣＰＵ
１６１  内部表現生成部
１６２  スケジューリング部
１６２ａ  第１スケジューリング部
１６２ｂ  第２スケジューリング部
１６２ｃ  分割部
１６３  バインディング部
１６４  回路記述生成部
１６５  スケジューリング情報生成部
１８  出力部
２０  入力装置
３０  出力装置
【図１】
2011059895.tif 000003
【図２】
2011059895.tif 000004
【図３】
2011059895.tif 000005
【図４】
2011059895.tif 000006
【図５】
2011059895.tif 000007
【図６】
2011059895.tif 000008
【図７】
2011059895.tif 000009
【図８】
2011059895.tif 000010
【図９】
2011059895.tif 000011
【図１０】
2011059895.tif 000012
【図１１】
2011059895.tif 000013
【図１２】
2011059895.tif 000014