説明

電源領域分割仕様探索プログラムおよび電源領域分割仕様探索システム

【課題】半導体チップにおける電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索する電源領域分割仕様探索プログラムを提供する。
【解決手段】現世代の複数の分割候補毎に評価関数により評価値を算出するステップS101と、評価値が低い分割候補を淘汰するステップS102とを実行し、淘汰されなかった各分割候補については、各モジュールの移動確率を算出するステップS103と、他のグループに移動させる候補となるモジュールを決定するステップS104と、他のグループに属する各モジュールと移動候補のモジュールとの間の相関性に基づいて相関度を算出し、他のグループに対する移動先確率を算出するステップS105と、移動先となるグループを決定して移動するステップS106とを実行し、淘汰された各分割候補については、新たな分割候補を生成するステップS107を実行することによって、次世代の複数の分割候補を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体チップにおける電源領域の最適な分割仕様を得る技術に関し、特に、遺伝的アルゴリズムを利用して効率的に最適な分割仕様を得る探索プログラムおよび探索システムに適用して有効な技術に関するものである。
【背景技術】
【0002】
携帯端末や車載用情報端末などの製品分野においては、多機能化に加えて低消費電力化が競争優位を獲得するための重要なポイントとなってきている。製品の多機能化に伴うLSI(Large Scale Integration)の大規模化に対しては、半導体製造プロセスにおける微細化を進めて実装率を上げることで対応することができる。しかし、微細化が進むと、LSI全体での電流値に対して、これまであまり重要視されていなかったリーク電流が占める割合が増大してくる。リーク電流とは、あるアプリケーションの実行時において、その動作に使用されるか否かに関わらず電源が投入されているモジュール全てを対象に流れる無駄な電流のことを指す。
【0003】
このリーク電流に対する対策としては、LSIを複数の領域(電源領域)に分割し、あるアプリケーションの実行時に使用しない領域は電源を遮断するという技術が広く用いられている。しかし、逆に言うと、この技術においてはアプリケーションが使用するモジュールが属する領域には全て電源を投入しなければならない。そのため、分割方法を誤ると、使用しないモジュールが多く含まれる領域に電源を投入しなければならないという問題も発生する。
【0004】
従来では、電源領域の定義(どのようにLSIを分割するかの仕様)は、これまでの実績や要求仕様などをベースにシステムアーキテクトなどの人手により机上で検討されてきた。
【0005】
一方、LSI等の設計においては、例えば、多数の回路素子の配置問題についての最適解を求める場合などにおいて、いわゆる遺伝的アルゴリズムを用いて探索する技術が提案されている。例えば、特開2002−279337号公報(特許文献1)には、LSI等の設計において、多数の回路素子の配置を行う際に密度が一様となるように配置するという配置問題について、遺伝的アルゴリズムを適用して準最適解を探索する技術が開示されている。
【特許文献1】特開2002−279337号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
従来のように、電源領域の分割仕様を机上での検討により決定する場合、LSIの多機能化、大規模化により、考慮しなければならないアプリケーションやモジュールの数が多数になってくると、最適な分割仕様を求めることは非常に困難となる。
【0007】
すなわち、アプリケーションやモジュールの数が多数になると、電源領域の数も多くなり、各モジュールを各電源領域に属するように割り当てる組合せも膨大な数となる。このため、机上での検討では長時間を要し、また、考慮漏れなどにより、当初予定していなかった領域にも電源を投入しなければならないという問題も多く発生する。
【0008】
一方、必要なモジュールにのみ電源を供給することによる低消費電力化だけを考えた場合、究極的には1モジュールに対して1電源領域を割り当てればよいことになる。しかし、この場合は電源関係機構をそれだけ用意する必要があり冗長となってしまう。また、復帰オーバーヘッドや動作検証の困難性などが顕著となり現実的ではない。
【0009】
そこで本発明の目的は、半導体チップにおける電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索する電源領域分割仕様探索プログラムおよび電源領域分割仕様探索システムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0010】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【0011】
本発明の代表的な実施の形態による電源領域分割仕様探索プログラムは、電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索するプログラムであって、現世代の複数の分割候補毎に、各アプリケーションについての動作するモジュールの動作時電流と動作しないモジュールのリーク電流とから算出した動作時の消費電力と、アプリケーション毎の消費電力の目標値とに基づいて評価関数により評価値を算出するステップと、評価値が低い分割候補を淘汰するステップとを実行し、淘汰されなかった各分割候補については、グループ毎に消費電力が小さい前記モジュールほど高い確率となるように各モジュールの移動確率を算出するステップと、移動確率に基づいて他のグループのいずれかに移動させる候補となるモジュールを決定するステップと、移動候補のモジュールについて、他の各グループに属する各モジュールと移動候補のモジュールとの間の相関性に基づいて相関度を算出し、相関度が高いグループほど高い確率となるように他の各グループに対する移動先確率を算出するステップと、移動先確率に基づいて移動候補のモジュールの移動先となるグループを決定して移動するステップとを実行し、淘汰された各分割候補については、これに替わる新たな分割候補を生成するステップを実行することによって、次世代の複数の分割候補を生成することを特徴とするものである。
【発明の効果】
【0012】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【0013】
本発明の代表的な実施の形態によれば、半導体チップにおける電源領域の最適な分割仕様が得られるため、半導体チップの動作時に必要最小限のモジュールにのみ電源を投入することで低消費電力化を実現することが可能となる。また、本発明の代表的な実施の形態によれば、電源領域の最適な分割仕様を効率的に得ることができ、設計期間を短縮することが可能となる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下においては、本発明の特徴を分かり易くするために、従来の技術と比較して説明する。
【0015】
<概要>
従来では、LSIやSoC(System-on-a-Chip)等の半導体チップにおける電源領域の分割仕様は、これまでの実績や要求仕様などをベースにシステムアーキテクトなどの人手により机上で検討されてきた。
【0016】
図9は、電源領域の分割仕様の概念を示した図である。図9において、A〜A15はそれぞれ電源領域を示している。下層の電源領域ほど複数のアプリケーションによって共通に使用される(電源ONされる)ことを示している。例えば、アプリケーション1(アプリ1)が動作する際には、電源領域A、A、A、A15がそれぞれONされる。また、アプリケーション2(アプリ2)が動作する際には、電源領域A、A、A、A15がそれぞれONされる。この場合、電源領域A、A15は、アプリ1が動作する際にもアプリ2が動作する際にも電源が投入されることを示している。
【0017】
図10は、電源領域とモジュールとの関係を示した図である。図10において、電源領域AにはモジュールX〜Xが属しており、電源領域AにはモジュールY〜Yが属していることを示している。
【0018】
電源ONされた電源領域に属するモジュールについては、動作していないモジュールであってもリーク電流が流れる。従って、低消費電力化を図るには、電源ONされた電源領域に属するモジュールのうち、動作しないモジュールの数を可能な限り少なくする必要がある。例えば、あるアプリケーションではモジュールX、XとYが使用されるものとする。このとき、図10の例のように、モジュールX、XとYがそれぞれ別の電源領域に属していると、このアプリケーションの動作時には両方の電源領域をONにする必要がある。ここで、モジュールX、XとYとを同じ電源領域に属するようにし、それ以外のモジュールを別の電源領域に属するようにすれば、当該アプリケーションに関する限りは必要最小限のモジュールにのみ電源が投入されるようにすることができる。
【0019】
このように、各アプリケーションで用いられるモジュールを考慮し、動作しないモジュールに電源が投入されることが可能な限り少なくなるように、最適な電源領域の分割仕様(モジュールのグループ分けの組合せ)を求める。しかし、アプリケーション数やモジュール数が多くなると、分割仕様のパターンも膨大な数となり、最適な分割仕様を人手による机上の検討で求めるのは非常に困難となる。
【0020】
そこで、本発明の一実施の形態である電源領域分割仕様探索システムでは、分割仕様の準最適解をコンピュータ上で稼働するプログラムによって効率的に求める。このとき、分割仕様の準最適解を求める手法として、いわゆる遺伝的アルゴリズムを利用する。
【0021】
遺伝的アルゴリズムは、解の候補を遺伝子で表現した個体を複数用意し、適応度の高い個体を優先的に選択して交叉・突然変異などの遺伝的操作を複数世代にわたって繰り返しながら準最適解を探索するアルゴリズムである。本実施の形態では、電源領域の分割仕様の候補(分割候補)を個体とし、分割候補における各グループに属するモジュールを遺伝子と取り扱う。
【0022】
各分割候補の適応度が高いか低いかについては、分割候補毎に後述する評価関数によって評価値を算出し、評価値の値によって適応度を判断する。すなわち、評価値の高い分割候補を選択して残し、評価値の低い分割候補を淘汰する。また、交叉については一般的には個体間の遺伝子を入れ替える遺伝的操作を指すが、本実施の形態では、後述するように、各分割候補においてあるグループに属するモジュールを他のグループに移動する操作を交叉と取り扱うこととする。また、突然変異については一般的には個体の遺伝子の一部を変化させる遺伝的操作を指すが、本実施の形態では、後述するように、淘汰された分割候補に替わる新たな分割候補を生成する操作を突然変異と取り扱うこととする。
【0023】
遺伝的アルゴリズムにおいては、「最適」な解とは全ての解の候補の中で最も優れたもの、すなわち評価関数による評価値が最大となるような厳密な最適解を指すものではない。複数の個体に対して上述のような遺伝的操作を繰り返しながら複数世代にわたって改善していき、実用上支障のない所定の基準を満たす個体が得られた時点でそれを近似的な最適解、すなわち準最適解として取り扱うものである。従って、本実施の形態の電源領域分割仕様探索システムが求める「最適」な分割仕様についても、このような準最適解を指すものとする。
【0024】
<実施の形態>
以下、本実施の形態の電源領域分割仕様探索システムおよび電源領域分割仕様探索プログラムについて説明する。
【0025】
[システム構成]
図2は、本発明の一実施の形態である電源領域分割仕様探索システムの構成例の概要を示した図である。
【0026】
電源領域分割仕様探索システム(以下では単に「分割仕様探索システム」という場合がある)100は、PCやサーバ等のコンピュータシステムによって実装される。分割仕様探索システム100は、例えば、新分割候補生成部110、分割候補更新部120、電力計算部130、評価部140の各部を有する。これら各部の機能はソフトウェアプログラムによって実現される。
【0027】
新分割候補生成部110は、所定の指針に基づいて新たな分割候補を生成する機能を有する。また、分割候補更新部120は、現世代の各分割候補に対して遺伝的操作を行い、次世代の各分割候補を生成する機能を有する。また、電力計算部130は、対象の分割候補について、当該分割候補を適用した場合の各アプリケーションの動作時の消費電力を算出する機能を有する。また、評価部140は、現世代の各分割候補に対して所定の評価関数に基づいて評価値を算出する機能を有する。これらの機能の詳細や具体的な処理内容については後述する。
【0028】
分割仕様探索システム100は、入力データとして、使用モジュールリスト210、目標電力220、アプリ優先度230、動作電流/面積240、分割数上限250、世代数上限260、個体数上限270の各データを入力し、分割仕様300を出力する。
【0029】
使用モジュールリスト210は、考慮すべきアプリケーション(シナリオ)毎に、対象のアプリケーションで使用されるモジュールの一覧を保持するデータである。また、目標電力220は、アプリケーション毎に、対象のアプリケーションの動作時における消費電力の目標値を保持するデータである。また、アプリ優先度230は、低消費電力化を考慮する際に優先度を高くするアプリケーションの一覧とその優先度を保持するデータである。優先度については、例えば、各アプリケーションの使用頻度などに基づいて設定することが考えられる。
【0030】
また、動作電流/面積240は、モジュール毎に、対象のモジュールの動作時の電流と面積(ゲート規模)を保持するデータである。また、分割数上限250は、最適な分割仕様を求めるにあたっての電源領域の分割数の上限値を保持するデータである。また、世代数上限260は、遺伝的アルゴリズムを利用する際に各分割候補に遺伝的操作を繰り返す世代数の上限値を保持するデータである。また、個体数上限270は、遺伝的アルゴリズムを利用する際の各世代での個体数(分割候補数)の上限値を保持するデータである。
【0031】
これらのデータを入力として得られる分割仕様300には、電源領域の分割数毎に、それぞれの分割数における最適な分割仕様が出力される。これを検討することにより、電源領域の最適な(もしくはできるだけ少ない)分割数と、その分割数における最適な分割仕様を決定することができる。
【0032】
[処理フロー]
図3は、本実施の形態の分割仕様探索システム100における処理の例の概要を示したフローチャートである。
【0033】
電源領域の最適な分割仕様の探索処理を開始すると、まず、準備処理として、考慮すべきアプリケーション(シナリオ)毎に、対象のアプリケーションで使用されるモジュールを列挙し、使用モジュールリスト210を作成して分割仕様探索システム100に入力する(S301)。なお、使用モジュールを列挙する処理は分割仕様探索システム100の外で行われてもよいし、可能な場合には分割仕様探索システム100で行うように機能を含めてもよい。使用モジュールを列挙する方法としては、机上での抽出やシミュレーションなど種々の方法が考えられる。
【0034】
次に、ステップS301で列挙されたモジュール毎に、動作時の電流と面積(ゲート規模)を算出し、動作電流/面積240を作成して分割仕様探索システム100に入力する(S302)。なお、動作電流および面積を算出する処理についても同様に、分割仕様探索システム100の外で行われてもよいし、可能な場合には分割仕様探索システム100で行うように機能を含めてもよい。
【0035】
次に、電源領域の分割数の初期値を適当に決定し、分割数が当該初期値から分割数上限250に設定されている分割数の上限値に達するまでループ処理を行う。ここで、分割数の初期値としては、例えば3〜5程度の小さい数を外部からの指示により設定するものとする。
【0036】
分割数でのループ処理では、まず、新分割候補生成部110により、使用モジュールリスト210に列挙された全てのモジュールを所定の指針に基づいて分割数分のグループに分け、この組合せ(分割候補)を複数生成する(S303)。これにより、初期世代の分割候補(個体)が複数得られる。分割候補は、個体数上限270に設定された数だけ生成する。なお、グループ分けの際の所定の指針および処理内容については後述する。
【0037】
次に、世代数が初期(「1」)から世代数上限260に設定されている世代数の上限値に達するまでループ処理を行う。世代数でのループ処理では、各世代の複数の個体(分割候補)に対して遺伝的操作を行って更新することで次世代の複数の個体(分割候補)を生成する。
【0038】
まず、対象の世代の全ての分割候補について、それぞれ、電力計算部130により、各アプリケーションの動作時の全体の消費電力を算出する(S304)。ここでは、まず、対象のアプリケーションが使用するモジュールが属するグループ(電源領域)を全て抽出する。次に、これらのグループに属する全モジュールについて、動作電流/面積240のデータを利用して消費電力を算出し、これらを合計して全体の消費電力とする。このとき、対象のアプリケーションに使用される(動作する)モジュールについては動作時の電流、使用されない(動作しない)モジュールについては動作時の電流と面積から換算したリーク電流を用いる。
【0039】
次に、評価部140および新分割候補生成部110により、各分割候補における各アプリケーションおよび各モジュールの消費電力の情報に基づいて遺伝的操作を行い、次世代の分割候補を生成する(S305)。ここでの処理の内容については後述する。
【0040】
ステップS304、S305の処理を世代数の上限に達するまで繰り返した後、得られた最適な分割候補を対象の分割数における最適な分割仕様として出力する(S306)。ここでは、例えば、後述する評価関数によって算出された評価値が最も高い分割候補を最適な分割仕様とすることができる。なお、ステップS304、S305のループ処理の途中で、実用上支障のない消費電力を達成できる(もしくは評価値が所定の基準を超える)分割候補が得られた場合は、その時点でループを抜けてステップS306にて分割仕様を出力するようにしてもよい。
【0041】
ステップS303〜S306までの処理を行った後、分割数を増やして同様の処理を行い、分割数が上限に達するまで繰り返す。以上の処理により、各分割数における最適な分割仕様を探索することができる。
【0042】
[初期分割候補生成]
図4、図5は、図3における初期分割候補生成処理(ステップS303)の処理内容を説明するための図である。図4は、各モジュールについて、消費電力値と、共通で使用されるアプリケーションの数を示す重複度との関係をマトリクスにマッピングした例を示す図である。図中、丸印は各モジュールを示している。初期分割候補生成処理(ステップS303)では、新分割候補生成部110によりこのように各モジュールをマッピングし、図中の(A)〜(D)のように4つの特性領域に各モジュールを分類する。その後、以下に示す指針に基づいて各モジュールをグループ分けする。
【0043】
(A)に分類されるモジュールは、多くのアプリケーションで使用され、かつ単独での消費電力が小さいモジュールである。従って、これらは優先的に同一のグループにまとめて属させる。また、(B)に分類されるモジュールは、多くのアプリケーションで使用されることはなく、かつ単独での消費電力が小さいモジュールである。これらはグループの分割数に余裕がある場合は新たなグループに属させてもよいが、分割数に余裕がない場合は優先的に既存のグループに属させる。
【0044】
また、(C)に分類されるモジュールは、多くのアプリケーションで使用され、かつ単独での消費電力が大きいモジュールである。この取り扱いについては後述する。また、(D)に分類されるモジュールは、多くのアプリケーションで使用されることはなく、かつ単独での消費電力が大きいモジュールである。従って、これらは可能な限り他のモジュールと同じグループに属させることはせず、単独、もしくは消費電力の小さいモジュールと同じグループに属させる。
【0045】
図5は、図4の(C)に分類される、多くのアプリケーションで使用され、かつ単独での消費電力が大きいモジュールについてのグループ分けの指針を説明するための図である。図5において、丸印はモジュールを示しており、その大きさは消費電力の大きさを表しているものとする。また、アプリAはモジュール1、2を使用し、アプリBはモジュール2、3を使用することを表している。図5の例では、モジュール2が、図4の(C)に分類される、多くのアプリケーションで使用され、かつ単独での消費電力が大きいモジュールを示している。
【0046】
このとき、分割数に余裕がある場合は、モジュール1、2、3をそれぞれ別のグループに分割する。一方、分割数に余裕がない場合は、例えば図5の例では、アプリAがアプリBより図2に示すアプリ優先度230における優先度が高い場合は、モジュール1、2を同一のグループとし、モジュール3を別のグループとして分割する。また、アプリBがアプリAより優先度が高い場合は、モジュール2、3を同一のグループとし、モジュール1を別のグループとして分割する。このように、低消費電力化を考慮した場合の優先度が高いアプリケーションで使用されるモジュールが同一のグループに属するように分割する。
【0047】
以上のような指針に基づいて各モジュールをグループ分けして新たな分割候補を生成する。この処理を個体数上限270に保持された値だけ繰り返すことにより、複数の初期世代の分割候補を生成することができる。
【0048】
[次世代分割候補生成]
図1は、図3における次世代分割候補生成処理(ステップS305)の例の概要を示したフローチャートである。この一連の処理では、現世代の各個体(分割候補)に対して、各アプリケーションおよび各モジュールの消費電力の情報に基づいて遺伝的操作を行い、次世代の各個体(分割候補)を生成する。
【0049】
次世代分割候補生成処理を開始すると、まず、現世代の各分割候補について、評価関数により評価値を算出する(S101)。この評価値は遺伝的アルゴリズムにおける各個体(分割候補)の適応度に相当する。図1のステップS101の右側に示した具体例では、例えば、分割候補1〜3についてそれぞれ評価値が80、40、60と算出されたことを示している。
【0050】
ここで、評価値は、例えば、
評価値=Σ(アプリ毎評価値×係数) …式1
のように、アプリケーション毎の評価値に対して重み付けの係数をそれぞれ掛けたものの合計としてとして求めることができる。ここで、アプリ毎評価値は、例えば、
アプリ毎評価値=log(消費電力目標値/消費電力計算値) …式2
のように、各アプリケーションについての消費電力の目標値と、図3のステップS304で算出された消費電力の値との比較に基づいて算出することができる。
【0051】
式2では、アプリ毎評価値は、消費電力の目標値と計算値の比率の対数を取って求めている。これは、目標値の設定が現実の値に対して極端に乖離していた場合、この値をそのまま評価してしまうと評価結果が目標設定の際の乖離の程度によって大きく変動してしまう。このため、この変動を抑制するために対数を取っている。なお、アプリ毎評価値の計算式は式2に限らず、例えば、目標値と計算値の差分と目標値との比を用いるなど種々の評価方法をとることができる。
【0052】
また、式1では、各アプリ毎評価値に重み付けの係数を掛けて評価値を算出している。この重み付け係数は、例えば、アプリ優先度230の値とリンクさせることができる。重み付け係数が大きいほど、アプリ毎評価値が分割候補の評価値に与える影響は大きくなる。すなわち、重み付け係数の大きいアプリケーションにおいては、消費電力の計算値が目標値から少しでも乖離すると、分割候補の評価値は大きく下がることになる。従って、このような分割候補については、さらに良いグループ分けの組合せを検討することになる。
【0053】
次に、各分割候補について、各アプリケーションを実行する際の消費電力が高いものを所定の基準により淘汰する(S102)。本実施の形態では、ステップS101で算出された評価値が最も低い分割候補を淘汰するものとしている。図1のステップS102の右側に示した具体例では、最も評価値の低い分割候補2が淘汰されたことを示している。なお、例えば評価値が所定の値よりも低い分割候補を全て淘汰するなど、他の判断基準を用いてもよい。
【0054】
次に、淘汰されなかった全ての分割候補に対してループ処理を行う。ここでは、対象の分割候補における各グループに属するモジュールを所定の条件に基づいて他のグループに移動する。この操作は遺伝的アルゴリズムにおける交叉に相当するものとして取り扱う。
【0055】
分割候補に対するループ処理では、まず、対象の分割候補におけるグループ毎に、消費電力が小さいモジュールほど高い確率となるように、グループに属する各モジュールの移動確率を算出する(S103)。図1のステップS103の右側に示した具体例では、分割候補iは3つのグループを有しており、各グループに属するモジュールは丸印で示されている。丸印の大きさは消費電力の大きさを表しており、また、下に配置されているモジュールほど移動確率が低く、上に配置されているモジュールほど移動確率が高いことを模式的に示している。なお、消費電力から移動確率を算出する際の具体的な計算式は、上記の基準に従っている限り特に限定しない。
【0056】
次に、各モジュールについて算出された移動確率に基づいて、各グループにおいて他のグループに移動させる候補となるモジュールを決定する(S104)。決定に際しては、例えば、グループ内で移動確率が最も高いモジュールを移動候補としてもよいし、移動確率に応じてランダムに決定されるようにしてもよい。移動確率に応じてランダムに決定する場合は、消費電力が大きいモジュールであってもある確率で移動候補となる場合がある。図1のステップS104の右側に示した具体例では、黒い丸印が移動候補として決定されたモジュールであることを示している。
【0057】
次に、全ての移動候補のモジュールに対してループ処理を行う。ここでは、対象の移動候補のモジュールを他のグループに移動させる。移動候補のモジュールに対するループ処理では、まず、他のグループ毎に、当該グループに属する各モジュールと移動候補のモジュールとの間の相関性に基づいて相関度を算出し、相関度が高いグループほど高い確率となるように、当該グループに対する移動先確率を算出する(S105)。図1のステップS105の右側に示した具体例では、移動候補jのモジュールに対して、例えば、他のグループの移動先確率がそれぞれ50、30と算出されたことを示している。
【0058】
図6は、上述したモジュールの相関性について説明するための図である。図6において、アプリAはモジュール1、2,3を使用し、アプリBはモジュール1、2、4、5を使用し、アプリCはモジュール1、4、6を使用することを示している。ここで、例えば、モジュール4が使用されるアプリB、Cではモジュール3は使用されないため、モジュール3とモジュール4は相関性が低いと判断される。一方、モジュール4とモジュール1は、共に使用されるアプリケーションがアプリB、Cの2つあり、相関性が高いと判断される。このような判断基準により、移動候補のモジュールに対して他のグループに属する各モジュールの相関性を判断し、相関性が高いモジュールがどれだけ多く属しているかによって各グループの相関度を算出する。
【0059】
なお、相関度や移動先確率を算出する際の具体的な計算式は、上記の基準に従っている限り特に限定しない。また、移動先確率の算出の際に、前述した図3のステップS303における初期分割候補生成処理でのグループ分けの指針の条件を加味してもよい。
【0060】
次に、各グループについて算出された移動先確率に基づいて、対象の移動候補のモジュールの移動先となるグループを決定し、移動させる(S106)。決定に際しては、例えば、各グループで移動先確率が最も高いグループを移動先としてもよいし、移動先確率に応じてランダムに決定されるようにしてもよい。図1のステップS106の右側に示した具体例では、移動先確率が50のグループに移動候補jのモジュールが移動したことを示している。
【0061】
ステップS105、S106の処理を全ての移動候補のモジュールについて繰り返し、さらに、ステップS103〜S106の処理を全ての分割候補について繰り返す。その後、ステップS102で淘汰された分割候補について、これに替わる新たな分割候補を生成する(S107)。ここでは、図3のステップS303における初期分割候補生成処理と同様の処理を行って、新たな分割候補を生成する。この操作は遺伝的アルゴリズムにおける突然変異に相当するものとして取り扱う。図1のステップS107の右側に示した具体例では、淘汰された分割候補2に替わって新分割候補が生成されたことを示している。以上の一連の処理により、次世代の複数の分割候補が生成される。
【0062】
[具体例]
図7は、本実施の形態の分割仕様探索システム100での処理における具体的なデータの例を示した図である。図7では、アプリケーションはアプリA、B、Cの3つであり、モジュールは「CPU」、「DMAC」、「BSC」、「SBSC」、「INTC」の5つである場合の例を示している。
【0063】
使用モジュールリスト210には、アプリケーション毎に使用するモジュールが「○」で示されている。また、動作電流/面積240には、各モジュールの動作時電流と面積、および面積から換算したリーク電流が保持されている。
【0064】
まず、使用モジュールリスト210と動作電流/面積240とから、図3のステップS303の初期分割候補生成処理によりテーブル701に示すような初期分割候補を生成している。ここでは、初期分割候補として分割候補1〜3の3つを生成しており、それぞれ3つのグループにモジュールを分割している。
【0065】
テーブル701の情報と、使用モジュールリスト210の情報とに基づいて、各分割候補について、アプリケーション毎にどのグループを使用するか(どのグループに電源が投入されるか)という観点で表したものがテーブル702である。さらに、テーブル702の情報と、使用モジュールリスト210の情報とに基づいて、各分割候補について、アプリケーション毎に動作時に使用される(動作する)モジュールと使用されない(動作しない)モジュールの観点で表したものがテーブル703である。
【0066】
図3のステップS304の消費電力計算処理により、テーブル703の情報を取得して、これと動作電流/面積240とから、アプリケーション毎に消費電力を算出したものがテーブル704である。算出にあたっては、各モジュールについて、動作電流/面積240から、使用される(動作する)モジュールの場合は動作時電流、使用されない(動作しない)モジュールの場合はリーク電流をそれぞれ取得して合計している。
【0067】
この後、各分割候補について、図1のステップS101、S102の処理により、各アプリケーションの消費電力に基づいて評価値を算出し、評価値に基づいて淘汰する分割候補(図7の例では分割候補1)を決定して淘汰している。さらに、図1のステップS103〜S106の処理により、淘汰されなかった分割候補(図7の例では分割候補2、3)について、他のグループとの間でのモジュールの移動による交叉を行っている。さらに、図1のステップS107の処理により、淘汰された分割候補1に替わる新分割候補(テーブル705)を生成している。このようにして更新・生成された分割候補が次世代分割候補となることが示されている。
【0068】
[適用領域]
図8は、本実施の形態の分割仕様探索システム100の半導体チップの設計フローにおける適用関係の例を示した図である。本実施の形態の分割仕様探索システム100は、例えば、設計フローにおける製品仕様検討、RTL(Register transfer level)設計、論理合成の各フェーズで用いることができる。
【0069】
製品仕様検討フェーズにおいては、例えば、アプリケーションやモジュール等の製品仕様を入力として電源領域の分割仕様案を出力することができる。このフェーズでは、電源領域の分割数を変更して最適な分割数を得ることもできる。RTL設計フェースにおいては、例えば、RTLやシミュレータからの出力を入力として電源領域の分割仕様案を出力することができる。このフェーズでは、電源領域の分割数の変更はできず、どの電源領域にどのモジュールを属させるかを検討することになる。
【0070】
また、論理合成フェーズにおいては、例えば、ネットリストを入力として電源領域の分割仕様に基づくアプリケーション毎の電流値を出力することができる。ここでは、高い精度での電流測定という点で分割仕様探索システム100を活用することができる。このように、各設計フェーズにおいて、検討される内容や変更可能なパラメータは異なる。本実施の形態の分割仕様探索システム100は、それぞれのフェーズに応じた仕様のフィードバックを行うことができる。
【0071】
さらに、本実施の形態の分割仕様探索システム100の出力結果を、下流の設計フェーズにおけるシミュレーションツールへの入力データとして活用するという利用方法も可能である。例えば、下流の設計フェーズにおいて電源遮断シミュレーションツールの入力データとして分割仕様探索システム100の出力結果の分割仕様を入力する。さらに、電源遮断シミュレーションツールの出力結果を、分割仕様探索システム100への入力データである動作電流/面積240の動作時電流、リーク電流にフィードバックする。この処理を繰り返すことで、より精緻な電源領域の分割仕様を得ることができる。
【0072】
以上に説明したように、本実施の形態の電源領域分割仕様探索システム100によれば、使用モジュールリスト210、目標電力220、アプリ優先度230、動作電流/面積240、分割数上限250の各情報に基づいて、LSIにおいて各アプリケーションを実行したときの消費電流を最小限にし、また、より少ない分割数となる電源領域の分割仕様を探索することができる。
【0073】
すなわち、最適な分割仕様として、目標の消費電力を満たす範囲で最小の分割数となる分割仕様を得ることができる。また、所定の分割数においてより低消費電力となる分割仕様を得ることもできる。これにより、LSIの動作時に必要最小限のモジュールにのみ電源を投入することが可能となるため、低消費電力化を実現することが可能となる。
【0074】
また、対象となるアプリケーションやLSIに含まれるモジュール数に依存せずに対応することができる。また、アプリケーション毎に低消費電力化を考慮する際の重み付けを設定することも可能である。これらにより、柔軟に電源領域の最適な分割仕様を探索することができる。
【0075】
また、従来の机上での分割仕様の検討に比べてより適切な分割仕様を短期間で効率的に得ることができる。また、アプリケーションで使用されるモジュールが変更された場合であっても、容易に変更後の最適な分割仕様を再検討することができる。このため、電源領域の分割仕様だけでなく、アプリケーションの仕様検討にも利用することができる。また、仮の仕様を入力データとして用いても分割仕様の検討を行うことができる。このため、詳細な情報がない設計の初期の段階であっても利用することができる。これらにより、設計期間や仕様検討期間の短縮を図ることができる。
【0076】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0077】
本発明は、半導体チップにおける電源領域の最適な分割仕様を得る探索プログラムおよび探索システムに利用可能である。
【図面の簡単な説明】
【0078】
【図1】本発明の一実施の形態における次世代分割候補生成処理の例の概要を示したフローチャートである。
【図2】本発明の一実施の形態である電源領域分割仕様探索システムの構成例の概要を示した図である。
【図3】本発明の一実施の形態における処理の例の概要を示したフローチャートである。
【図4】本発明の一実施の形態における初期分割候補生成処理の処理内容を説明するための図である。
【図5】本発明の一実施の形態における初期分割候補生成処理の処理内容を説明するための図である。
【図6】本発明の一実施の形態におけるモジュールの相関性について説明するための図である。
【図7】本発明の一実施の形態における具体的なデータの例を示した図である。
【図8】本発明の一実施の形態である電源領域分割仕様探索システムの半導体チップの設計フローにおける適用関係の例を示した図である。
【図9】電源領域の分割仕様の概念を示した図である。
【図10】電源領域とモジュールとの関係を示した図である。
【符号の説明】
【0079】
100…電源領域分割仕様探索システム、110…新分割候補生成部、120…分割候補更新部、130…電力計算部、140…評価部、210…使用モジュールリスト、220…目標電力、230…アプリ優先度、240…動作電流/面積、250…分割数上限、260…世代数上限、270…個体数上限、300…分割仕様、701〜705…テーブル。

【特許請求の範囲】
【請求項1】
半導体チップにおける各アプリケーションで使用されるモジュールが属する電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索する装置としてコンピュータを機能させる電源領域分割仕様探索プログラムであって、
前記各モジュールを複数のグループに分割した組合せである分割候補を個体とし、
現世代の複数の前記分割候補毎に、対象の前記分割候補を電源領域の分割仕様として適用した場合の、前記各アプリケーションについての動作する前記モジュールの動作時電流と動作しない前記モジュールのリーク電流とから算出した動作時の消費電力と、前記アプリケーション毎の消費電力の目標値とに基づいて評価関数により評価値を算出するステップと、
所定の基準に基づいて前記評価値が低い前記分割候補を淘汰するステップとを実行し、
淘汰されなかった前記各分割候補については、前記分割候補における前記グループ毎に、消費電力が小さい前記モジュールほど高い確率となるように、前記各モジュールの移動確率を算出するステップと、
前記各モジュールの前記移動確率に基づいて、前記各モジュールが属する第1のグループ以外の他の第2のグループのうちのいずれかに移動させる候補となる1または複数の第1のモジュールを決定するステップと、
前記各第1のモジュールについて、前記第2のグループ毎に、前記第2のグループに属する前記各モジュールと前記第1のモジュールとの間の相関性に基づいて相関度を算出し、前記相関度が高い前記第2のグループほど高い確率となるように、前記各第2のグループに対する移動先確率を算出するステップと、
前記各第2のグループにおける前記移動先確率に基づいて、前記第1のモジュールの移動先となる第3のグループを前記各第2のグループの中から決定し、前記第1のモジュールを前記第3のグループに属するように移動するステップとを実行し、
淘汰された前記各分割候補については、これに替わる新たな前記分割候補を生成するステップを実行することによって、次世代の複数の前記分割候補を生成することを特徴とする電源領域分割仕様探索プログラム。
【請求項2】
請求項1に記載の電源領域分割仕様探索プログラムにおいて、
初期世代の複数の前記分割候補を、前記各モジュールについての、動作時の消費電力と、共通で使用される前記アプリケーションの数に基づく重複度とからなるマトリクス上での分類に応じた指針に基づいて、前記各モジュールを複数の前記グループに分割して新たな前記分割候補を生成するステップを実行することによって生成することを特徴とする電源領域分割仕様探索プログラム。
【請求項3】
請求項2に記載の電源領域分割仕様探索プログラムにおいて、
前記各モジュールを複数の前記グループに分割する際に、多数の前記アプリケーションによって使用され、かつ消費電力が大きい前記モジュールについては、当該モジュールを使用する前記アプリケーションのうち、優先度が高い前記アプリケーションに使用される他の前記モジュールと同一のグループに属するように分割することを特徴とする電源領域分割仕様探索プログラム。
【請求項4】
請求項1に記載の電源領域分割仕様探索プログラムにおいて、
前記評価関数は、対象の前記分割候補を電源領域の分割仕様として適用した場合の前記アプリケーション毎に算出した動作時の消費電力と、前記アプリケーション毎の消費電力の目標値とから算出される前記アプリケーション毎の評価値に、前記各アプリケーションについての優先度に基づいた重み付け係数をそれぞれ掛けたものの合計を算出するものであることを特徴とする電源領域分割仕様探索プログラム。
【請求項5】
半導体チップにおける各アプリケーションで使用されるモジュールが属する電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索する電源領域分割仕様探索システムであって、
前記各モジュールを複数のグループに分割した組合せである分割候補を個体とし、
前記各モジュールについての、動作時の消費電力と、共通で使用される前記アプリケーションの数に基づく重複度とからなるマトリクス上での分類に応じた指針に基づいて、前記各モジュールを複数の前記グループに分割して新たな前記分割候補を生成する新分割候補生成部と、
対象の前記分割候補について、当該分割候補を電源領域の分割仕様として適用した場合の、前記各アプリケーションについての動作時の消費電力を、動作する前記モジュールの動作時電流と動作しない前記モジュールのリーク電流とから算出する電力計算部と、
対象の前記分割候補について、前記各アプリケーション毎の動作時の消費電力と、消費電力の目標値とに基づいて評価関数により評価値を算出する評価部と、
現世代の複数の前記分割候補毎に、所定の基準に基づいて前記評価値が低い前記分割候補を淘汰し、
淘汰されなかった前記各分割候補については、前記分割候補における前記グループ毎に、消費電力が小さい前記モジュールほど高い確率となるように、前記各モジュールの移動確率を算出し、前記移動確率に基づいて、前記各モジュールが属する第1のグループ以外の他の第2のグループのうちのいずれかに移動させる候補となる1または複数の第1のモジュールを決定し、前記各第1のモジュールについて、前記第2のグループ毎に、前記第2のグループに属する前記各モジュールと前記第1のモジュールとの間の相関性に基づいて相関度を算出し、前記相関度が高い前記第2のグループほど高い確率となるように、前記各第2のグループに対する移動先確率を算出し、前記移動先確率に基づいて、前記第1のモジュールの移動先となる第3のグループを前記各第2のグループの中から決定し、前記第1のモジュールを前記第3のグループに属するように移動し、
淘汰された前記各分割候補については、これに替わる新たな前記分割候補を前記新分割候補生成部により生成することによって、次世代の複数の前記分割候補を生成する分割候補更新部とを有することを特徴とする電源領域分割仕様探索システム。
【請求項6】
請求項5に記載の電源領域分割仕様探索システムにおいて、
前記新分割候補生成部は、前記各モジュールを複数の前記グループに分割する際に、多数の前記アプリケーションによって使用され、かつ消費電力が大きい前記モジュールについては、当該モジュールを使用する前記アプリケーションのうち、優先度が高い前記アプリケーションに使用される他の前記モジュールと同一のグループに属するように分割することを特徴とする電源領域分割仕様探索システム。
【請求項7】
請求項5に記載の電源領域分割仕様探索システムにおいて、
前記評価部における前記評価関数は、対象の前記分割候補について、前記アプリケーション毎の動作時の消費電力と、消費電力の目標値とから算出される前記アプリケーション毎の評価値に、前記各アプリケーションについての優先度に基づいた重み付け係数をそれぞれ掛けたものの合計を算出するものであることを特徴とする電源領域分割仕様探索システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−134726(P2010−134726A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−310383(P2008−310383)
【出願日】平成20年12月5日(2008.12.5)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】