(57)【要約】【課題】半導体チップにおける電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索する電源領域分割仕様探索プログラムを提供する。【解決手段】現世代の複数の分割候補毎に評価関数により評価値を算出するステップＳ１０１と、評価値が低い分割候補を淘汰するステップＳ１０２とを実行し、淘汰されなかった各分割候補については、各モジュールの移動確率を算出するステップＳ１０３と、他のグループに移動させる候補となるモジュールを決定するステップＳ１０４と、他のグループに属する各モジュールと移動候補のモジュールとの間の相関性に基づいて相関度を算出し、他のグループに対する移動先確率を算出するステップＳ１０５と、移動先となるグループを決定して移動するステップＳ１０６とを実行し、淘汰された各分割候補については、新たな分割候補を生成するステップＳ１０７を実行することによって、次世代の複数の分割候補を生成する。【選択図】図１
2010134726.tif 000002
【特許請求の範囲】
【請求項１】
半導体チップにおける各アプリケーションで使用されるモジュールが属する電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索する装置としてコンピュータを機能させる電源領域分割仕様探索プログラムであって、
前記各モジュールを複数のグループに分割した組合せである分割候補を個体とし、
現世代の複数の前記分割候補毎に、対象の前記分割候補を電源領域の分割仕様として適用した場合の、前記各アプリケーションについての動作する前記モジュールの動作時電流と動作しない前記モジュールのリーク電流とから算出した動作時の消費電力と、前記アプリケーション毎の消費電力の目標値とに基づいて評価関数により評価値を算出するステップと、
所定の基準に基づいて前記評価値が低い前記分割候補を淘汰するステップとを実行し、
淘汰されなかった前記各分割候補については、前記分割候補における前記グループ毎に、消費電力が小さい前記モジュールほど高い確率となるように、前記各モジュールの移動確率を算出するステップと、
前記各モジュールの前記移動確率に基づいて、前記各モジュールが属する第１のグループ以外の他の第２のグループのうちのいずれかに移動させる候補となる１または複数の第１のモジュールを決定するステップと、
前記各第１のモジュールについて、前記第２のグループ毎に、前記第２のグループに属する前記各モジュールと前記第１のモジュールとの間の相関性に基づいて相関度を算出し、前記相関度が高い前記第２のグループほど高い確率となるように、前記各第２のグループに対する移動先確率を算出するステップと、
前記各第２のグループにおける前記移動先確率に基づいて、前記第１のモジュールの移動先となる第３のグループを前記各第２のグループの中から決定し、前記第１のモジュールを前記第３のグループに属するように移動するステップとを実行し、
淘汰された前記各分割候補については、これに替わる新たな前記分割候補を生成するステップを実行することによって、次世代の複数の前記分割候補を生成することを特徴とする電源領域分割仕様探索プログラム。
【請求項２】
請求項１に記載の電源領域分割仕様探索プログラムにおいて、
初期世代の複数の前記分割候補を、前記各モジュールについての、動作時の消費電力と、共通で使用される前記アプリケーションの数に基づく重複度とからなるマトリクス上での分類に応じた指針に基づいて、前記各モジュールを複数の前記グループに分割して新たな前記分割候補を生成するステップを実行することによって生成することを特徴とする電源領域分割仕様探索プログラム。
【請求項３】
請求項２に記載の電源領域分割仕様探索プログラムにおいて、
前記各モジュールを複数の前記グループに分割する際に、多数の前記アプリケーションによって使用され、かつ消費電力が大きい前記モジュールについては、当該モジュールを使用する前記アプリケーションのうち、優先度が高い前記アプリケーションに使用される他の前記モジュールと同一のグループに属するように分割することを特徴とする電源領域分割仕様探索プログラム。
【請求項４】
請求項１に記載の電源領域分割仕様探索プログラムにおいて、
前記評価関数は、対象の前記分割候補を電源領域の分割仕様として適用した場合の前記アプリケーション毎に算出した動作時の消費電力と、前記アプリケーション毎の消費電力の目標値とから算出される前記アプリケーション毎の評価値に、前記各アプリケーションについての優先度に基づいた重み付け係数をそれぞれ掛けたものの合計を算出するものであることを特徴とする電源領域分割仕様探索プログラム。
【請求項５】
半導体チップにおける各アプリケーションで使用されるモジュールが属する電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索する電源領域分割仕様探索システムであって、
前記各モジュールを複数のグループに分割した組合せである分割候補を個体とし、
前記各モジュールについての、動作時の消費電力と、共通で使用される前記アプリケーションの数に基づく重複度とからなるマトリクス上での分類に応じた指針に基づいて、前記各モジュールを複数の前記グループに分割して新たな前記分割候補を生成する新分割候補生成部と、
対象の前記分割候補について、当該分割候補を電源領域の分割仕様として適用した場合の、前記各アプリケーションについての動作時の消費電力を、動作する前記モジュールの動作時電流と動作しない前記モジュールのリーク電流とから算出する電力計算部と、
対象の前記分割候補について、前記各アプリケーション毎の動作時の消費電力と、消費電力の目標値とに基づいて評価関数により評価値を算出する評価部と、
現世代の複数の前記分割候補毎に、所定の基準に基づいて前記評価値が低い前記分割候補を淘汰し、
淘汰されなかった前記各分割候補については、前記分割候補における前記グループ毎に、消費電力が小さい前記モジュールほど高い確率となるように、前記各モジュールの移動確率を算出し、前記移動確率に基づいて、前記各モジュールが属する第１のグループ以外の他の第２のグループのうちのいずれかに移動させる候補となる１または複数の第１のモジュールを決定し、前記各第１のモジュールについて、前記第２のグループ毎に、前記第２のグループに属する前記各モジュールと前記第１のモジュールとの間の相関性に基づいて相関度を算出し、前記相関度が高い前記第２のグループほど高い確率となるように、前記各第２のグループに対する移動先確率を算出し、前記移動先確率に基づいて、前記第１のモジュールの移動先となる第３のグループを前記各第２のグループの中から決定し、前記第１のモジュールを前記第３のグループに属するように移動し、
淘汰された前記各分割候補については、これに替わる新たな前記分割候補を前記新分割候補生成部により生成することによって、次世代の複数の前記分割候補を生成する分割候補更新部とを有することを特徴とする電源領域分割仕様探索システム。
【請求項６】
請求項５に記載の電源領域分割仕様探索システムにおいて、
前記新分割候補生成部は、前記各モジュールを複数の前記グループに分割する際に、多数の前記アプリケーションによって使用され、かつ消費電力が大きい前記モジュールについては、当該モジュールを使用する前記アプリケーションのうち、優先度が高い前記アプリケーションに使用される他の前記モジュールと同一のグループに属するように分割することを特徴とする電源領域分割仕様探索システム。
【請求項７】
請求項５に記載の電源領域分割仕様探索システムにおいて、
前記評価部における前記評価関数は、対象の前記分割候補について、前記アプリケーション毎の動作時の消費電力と、消費電力の目標値とから算出される前記アプリケーション毎の評価値に、前記各アプリケーションについての優先度に基づいた重み付け係数をそれぞれ掛けたものの合計を算出するものであることを特徴とする電源領域分割仕様探索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体チップにおける電源領域の最適な分割仕様を得る技術に関し、特に、遺伝的アルゴリズムを利用して効率的に最適な分割仕様を得る探索プログラムおよび探索システムに適用して有効な技術に関するものである。
【背景技術】
【０００２】
携帯端末や車載用情報端末などの製品分野においては、多機能化に加えて低消費電力化が競争優位を獲得するための重要なポイントとなってきている。製品の多機能化に伴うＬＳＩ（Large Scale Integration）の大規模化に対しては、半導体製造プロセスにおける微細化を進めて実装率を上げることで対応することができる。しかし、微細化が進むと、ＬＳＩ全体での電流値に対して、これまであまり重要視されていなかったリーク電流が占める割合が増大してくる。リーク電流とは、あるアプリケーションの実行時において、その動作に使用されるか否かに関わらず電源が投入されているモジュール全てを対象に流れる無駄な電流のことを指す。
【０００３】
このリーク電流に対する対策としては、ＬＳＩを複数の領域（電源領域）に分割し、あるアプリケーションの実行時に使用しない領域は電源を遮断するという技術が広く用いられている。しかし、逆に言うと、この技術においてはアプリケーションが使用するモジュールが属する領域には全て電源を投入しなければならない。そのため、分割方法を誤ると、使用しないモジュールが多く含まれる領域に電源を投入しなければならないという問題も発生する。
【０００４】
従来では、電源領域の定義（どのようにＬＳＩを分割するかの仕様）は、これまでの実績や要求仕様などをベースにシステムアーキテクトなどの人手により机上で検討されてきた。
【０００５】
一方、ＬＳＩ等の設計においては、例えば、多数の回路素子の配置問題についての最適解を求める場合などにおいて、いわゆる遺伝的アルゴリズムを用いて探索する技術が提案されている。例えば、特開２００２−２７９３３７号公報（特許文献１）には、ＬＳＩ等の設計において、多数の回路素子の配置を行う際に密度が一様となるように配置するという配置問題について、遺伝的アルゴリズムを適用して準最適解を探索する技術が開示されている。
【特許文献１】特開２００２−２７９３３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のように、電源領域の分割仕様を机上での検討により決定する場合、ＬＳＩの多機能化、大規模化により、考慮しなければならないアプリケーションやモジュールの数が多数になってくると、最適な分割仕様を求めることは非常に困難となる。
【０００７】
すなわち、アプリケーションやモジュールの数が多数になると、電源領域の数も多くなり、各モジュールを各電源領域に属するように割り当てる組合せも膨大な数となる。このため、机上での検討では長時間を要し、また、考慮漏れなどにより、当初予定していなかった領域にも電源を投入しなければならないという問題も多く発生する。
【０００８】
一方、必要なモジュールにのみ電源を供給することによる低消費電力化だけを考えた場合、究極的には１モジュールに対して１電源領域を割り当てればよいことになる。しかし、この場合は電源関係機構をそれだけ用意する必要があり冗長となってしまう。また、復帰オーバーヘッドや動作検証の困難性などが顕著となり現実的ではない。
【０００９】
そこで本発明の目的は、半導体チップにおける電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索する電源領域分割仕様探索プログラムおよび電源領域分割仕様探索システムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１１】
本発明の代表的な実施の形態による電源領域分割仕様探索プログラムは、電源領域の最適な分割仕様を遺伝的アルゴリズムを利用して探索するプログラムであって、現世代の複数の分割候補毎に、各アプリケーションについての動作するモジュールの動作時電流と動作しないモジュールのリーク電流とから算出した動作時の消費電力と、アプリケーション毎の消費電力の目標値とに基づいて評価関数により評価値を算出するステップと、評価値が低い分割候補を淘汰するステップとを実行し、淘汰されなかった各分割候補については、グループ毎に消費電力が小さい前記モジュールほど高い確率となるように各モジュールの移動確率を算出するステップと、移動確率に基づいて他のグループのいずれかに移動させる候補となるモジュールを決定するステップと、移動候補のモジュールについて、他の各グループに属する各モジュールと移動候補のモジュールとの間の相関性に基づいて相関度を算出し、相関度が高いグループほど高い確率となるように他の各グループに対する移動先確率を算出するステップと、移動先確率に基づいて移動候補のモジュールの移動先となるグループを決定して移動するステップとを実行し、淘汰された各分割候補については、これに替わる新たな分割候補を生成するステップを実行することによって、次世代の複数の分割候補を生成することを特徴とするものである。
【発明の効果】
【００１２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１３】
本発明の代表的な実施の形態によれば、半導体チップにおける電源領域の最適な分割仕様が得られるため、半導体チップの動作時に必要最小限のモジュールにのみ電源を投入することで低消費電力化を実現することが可能となる。また、本発明の代表的な実施の形態によれば、電源領域の最適な分割仕様を効率的に得ることができ、設計期間を短縮することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下においては、本発明の特徴を分かり易くするために、従来の技術と比較して説明する。
【００１５】
＜概要＞
従来では、ＬＳＩやＳｏＣ（System-on-a-Chip）等の半導体チップにおける電源領域の分割仕様は、これまでの実績や要求仕様などをベースにシステムアーキテクトなどの人手により机上で検討されてきた。
【００１６】
図９は、電源領域の分割仕様の概念を示した図である。図９において、Ａ１〜Ａ１５はそれぞれ電源領域を示している。下層の電源領域ほど複数のアプリケーションによって共通に使用される（電源ＯＮされる）ことを示している。例えば、アプリケーション１（アプリ１）が動作する際には、電源領域Ａ１、Ａ４、Ａ６、Ａ１５がそれぞれＯＮされる。また、アプリケーション２（アプリ２）が動作する際には、電源領域Ａ２、Ａ５、Ａ６、Ａ１５がそれぞれＯＮされる。この場合、電源領域Ａ６、Ａ１５は、アプリ１が動作する際にもアプリ２が動作する際にも電源が投入されることを示している。
【００１７】
図１０は、電源領域とモジュールとの関係を示した図である。図１０において、電源領域ＡｘにはモジュールＸ０〜Ｘ２が属しており、電源領域ＡｙにはモジュールＹ０〜Ｙ３が属していることを示している。
【００１８】
電源ＯＮされた電源領域に属するモジュールについては、動作していないモジュールであってもリーク電流が流れる。従って、低消費電力化を図るには、電源ＯＮされた電源領域に属するモジュールのうち、動作しないモジュールの数を可能な限り少なくする必要がある。例えば、あるアプリケーションではモジュールＸ１、Ｘ２とＹ０が使用されるものとする。このとき、図１０の例のように、モジュールＸ１、Ｘ２とＹ０がそれぞれ別の電源領域に属していると、このアプリケーションの動作時には両方の電源領域をＯＮにする必要がある。ここで、モジュールＸ１、Ｘ２とＹ０とを同じ電源領域に属するようにし、それ以外のモジュールを別の電源領域に属するようにすれば、当該アプリケーションに関する限りは必要最小限のモジュールにのみ電源が投入されるようにすることができる。
【００１９】
このように、各アプリケーションで用いられるモジュールを考慮し、動作しないモジュールに電源が投入されることが可能な限り少なくなるように、最適な電源領域の分割仕様（モジュールのグループ分けの組合せ）を求める。しかし、アプリケーション数やモジュール数が多くなると、分割仕様のパターンも膨大な数となり、最適な分割仕様を人手による机上の検討で求めるのは非常に困難となる。
【００２０】
そこで、本発明の一実施の形態である電源領域分割仕様探索システムでは、分割仕様の準最適解をコンピュータ上で稼働するプログラムによって効率的に求める。このとき、分割仕様の準最適解を求める手法として、いわゆる遺伝的アルゴリズムを利用する。
【００２１】
遺伝的アルゴリズムは、解の候補を遺伝子で表現した個体を複数用意し、適応度の高い個体を優先的に選択して交叉・突然変異などの遺伝的操作を複数世代にわたって繰り返しながら準最適解を探索するアルゴリズムである。本実施の形態では、電源領域の分割仕様の候補（分割候補）を個体とし、分割候補における各グループに属するモジュールを遺伝子と取り扱う。
【００２２】
各分割候補の適応度が高いか低いかについては、分割候補毎に後述する評価関数によって評価値を算出し、評価値の値によって適応度を判断する。すなわち、評価値の高い分割候補を選択して残し、評価値の低い分割候補を淘汰する。また、交叉については一般的には個体間の遺伝子を入れ替える遺伝的操作を指すが、本実施の形態では、後述するように、各分割候補においてあるグループに属するモジュールを他のグループに移動する操作を交叉と取り扱うこととする。また、突然変異については一般的には個体の遺伝子の一部を変化させる遺伝的操作を指すが、本実施の形態では、後述するように、淘汰された分割候補に替わる新たな分割候補を生成する操作を突然変異と取り扱うこととする。
【００２３】
遺伝的アルゴリズムにおいては、「最適」な解とは全ての解の候補の中で最も優れたもの、すなわち評価関数による評価値が最大となるような厳密な最適解を指すものではない。複数の個体に対して上述のような遺伝的操作を繰り返しながら複数世代にわたって改善していき、実用上支障のない所定の基準を満たす個体が得られた時点でそれを近似的な最適解、すなわち準最適解として取り扱うものである。従って、本実施の形態の電源領域分割仕様探索システムが求める「最適」な分割仕様についても、このような準最適解を指すものとする。
【００２４】
＜実施の形態＞
以下、本実施の形態の電源領域分割仕様探索システムおよび電源領域分割仕様探索プログラムについて説明する。
【００２５】
［システム構成］
図２は、本発明の一実施の形態である電源領域分割仕様探索システムの構成例の概要を示した図である。
【００２６】
電源領域分割仕様探索システム（以下では単に「分割仕様探索システム」という場合がある）１００は、ＰＣやサーバ等のコンピュータシステムによって実装される。分割仕様探索システム１００は、例えば、新分割候補生成部１１０、分割候補更新部１２０、電力計算部１３０、評価部１４０の各部を有する。これら各部の機能はソフトウェアプログラムによって実現される。
【００２７】
新分割候補生成部１１０は、所定の指針に基づいて新たな分割候補を生成する機能を有する。また、分割候補更新部１２０は、現世代の各分割候補に対して遺伝的操作を行い、次世代の各分割候補を生成する機能を有する。また、電力計算部１３０は、対象の分割候補について、当該分割候補を適用した場合の各アプリケーションの動作時の消費電力を算出する機能を有する。また、評価部１４０は、現世代の各分割候補に対して所定の評価関数に基づいて評価値を算出する機能を有する。これらの機能の詳細や具体的な処理内容については後述する。
【００２８】
分割仕様探索システム１００は、入力データとして、使用モジュールリスト２１０、目標電力２２０、アプリ優先度２３０、動作電流／面積２４０、分割数上限２５０、世代数上限２６０、個体数上限２７０の各データを入力し、分割仕様３００を出力する。
【００２９】
使用モジュールリスト２１０は、考慮すべきアプリケーション（シナリオ）毎に、対象のアプリケーションで使用されるモジュールの一覧を保持するデータである。また、目標電力２２０は、アプリケーション毎に、対象のアプリケーションの動作時における消費電力の目標値を保持するデータである。また、アプリ優先度２３０は、低消費電力化を考慮する際に優先度を高くするアプリケーションの一覧とその優先度を保持するデータである。優先度については、例えば、各アプリケーションの使用頻度などに基づいて設定することが考えられる。
【００３０】
また、動作電流／面積２４０は、モジュール毎に、対象のモジュールの動作時の電流と面積（ゲート規模）を保持するデータである。また、分割数上限２５０は、最適な分割仕様を求めるにあたっての電源領域の分割数の上限値を保持するデータである。また、世代数上限２６０は、遺伝的アルゴリズムを利用する際に各分割候補に遺伝的操作を繰り返す世代数の上限値を保持するデータである。また、個体数上限２７０は、遺伝的アルゴリズムを利用する際の各世代での個体数（分割候補数）の上限値を保持するデータである。
【００３１】
これらのデータを入力として得られる分割仕様３００には、電源領域の分割数毎に、それぞれの分割数における最適な分割仕様が出力される。これを検討することにより、電源領域の最適な（もしくはできるだけ少ない）分割数と、その分割数における最適な分割仕様を決定することができる。
【００３２】
［処理フロー］
図３は、本実施の形態の分割仕様探索システム１００における処理の例の概要を示したフローチャートである。
【００３３】
電源領域の最適な分割仕様の探索処理を開始すると、まず、準備処理として、考慮すべきアプリケーション（シナリオ）毎に、対象のアプリケーションで使用されるモジュールを列挙し、使用モジュールリスト２１０を作成して分割仕様探索システム１００に入力する（Ｓ３０１）。なお、使用モジュールを列挙する処理は分割仕様探索システム１００の外で行われてもよいし、可能な場合には分割仕様探索システム１００で行うように機能を含めてもよい。使用モジュールを列挙する方法としては、机上での抽出やシミュレーションなど種々の方法が考えられる。
【００３４】
次に、ステップＳ３０１で列挙されたモジュール毎に、動作時の電流と面積（ゲート規模）を算出し、動作電流／面積２４０を作成して分割仕様探索システム１００に入力する（Ｓ３０２）。なお、動作電流および面積を算出する処理についても同様に、分割仕様探索システム１００の外で行われてもよいし、可能な場合には分割仕様探索システム１００で行うように機能を含めてもよい。
【００３５】
次に、電源領域の分割数の初期値を適当に決定し、分割数が当該初期値から分割数上限２５０に設定されている分割数の上限値に達するまでループ処理を行う。ここで、分割数の初期値としては、例えば３〜５程度の小さい数を外部からの指示により設定するものとする。
【００３６】
分割数でのループ処理では、まず、新分割候補生成部１１０により、使用モジュールリスト２１０に列挙された全てのモジュールを所定の指針に基づいて分割数分のグループに分け、この組合せ（分割候補）を複数生成する（Ｓ３０３）。これにより、初期世代の分割候補（個体）が複数得られる。分割候補は、個体数上限２７０に設定された数だけ生成する。なお、グループ分けの際の所定の指針および処理内容については後述する。
【００３７】
次に、世代数が初期（「１」）から世代数上限２６０に設定されている世代数の上限値に達するまでループ処理を行う。世代数でのループ処理では、各世代の複数の個体（分割候補）に対して遺伝的操作を行って更新することで次世代の複数の個体（分割候補）を生成する。
【００３８】
まず、対象の世代の全ての分割候補について、それぞれ、電力計算部１３０により、各アプリケーションの動作時の全体の消費電力を算出する（Ｓ３０４）。ここでは、まず、対象のアプリケーションが使用するモジュールが属するグループ（電源領域）を全て抽出する。次に、これらのグループに属する全モジュールについて、動作電流／面積２４０のデータを利用して消費電力を算出し、これらを合計して全体の消費電力とする。このとき、対象のアプリケーションに使用される（動作する）モジュールについては動作時の電流、使用されない（動作しない）モジュールについては動作時の電流と面積から換算したリーク電流を用いる。
【００３９】
次に、評価部１４０および新分割候補生成部１１０により、各分割候補における各アプリケーションおよび各モジュールの消費電力の情報に基づいて遺伝的操作を行い、次世代の分割候補を生成する（Ｓ３０５）。ここでの処理の内容については後述する。
【００４０】
ステップＳ３０４、Ｓ３０５の処理を世代数の上限に達するまで繰り返した後、得られた最適な分割候補を対象の分割数における最適な分割仕様として出力する（Ｓ３０６）。ここでは、例えば、後述する評価関数によって算出された評価値が最も高い分割候補を最適な分割仕様とすることができる。なお、ステップＳ３０４、Ｓ３０５のループ処理の途中で、実用上支障のない消費電力を達成できる（もしくは評価値が所定の基準を超える）分割候補が得られた場合は、その時点でループを抜けてステップＳ３０６にて分割仕様を出力するようにしてもよい。
【００４１】
ステップＳ３０３〜Ｓ３０６までの処理を行った後、分割数を増やして同様の処理を行い、分割数が上限に達するまで繰り返す。以上の処理により、各分割数における最適な分割仕様を探索することができる。
【００４２】
［初期分割候補生成］
図４、図５は、図３における初期分割候補生成処理（ステップＳ３０３）の処理内容を説明するための図である。図４は、各モジュールについて、消費電力値と、共通で使用されるアプリケーションの数を示す重複度との関係をマトリクスにマッピングした例を示す図である。図中、丸印は各モジュールを示している。初期分割候補生成処理（ステップＳ３０３）では、新分割候補生成部１１０によりこのように各モジュールをマッピングし、図中の（Ａ）〜（Ｄ）のように４つの特性領域に各モジュールを分類する。その後、以下に示す指針に基づいて各モジュールをグループ分けする。
【００４３】
（Ａ）に分類されるモジュールは、多くのアプリケーションで使用され、かつ単独での消費電力が小さいモジュールである。従って、これらは優先的に同一のグループにまとめて属させる。また、（Ｂ）に分類されるモジュールは、多くのアプリケーションで使用されることはなく、かつ単独での消費電力が小さいモジュールである。これらはグループの分割数に余裕がある場合は新たなグループに属させてもよいが、分割数に余裕がない場合は優先的に既存のグループに属させる。
【００４４】
また、（Ｃ）に分類されるモジュールは、多くのアプリケーションで使用され、かつ単独での消費電力が大きいモジュールである。この取り扱いについては後述する。また、（Ｄ）に分類されるモジュールは、多くのアプリケーションで使用されることはなく、かつ単独での消費電力が大きいモジュールである。従って、これらは可能な限り他のモジュールと同じグループに属させることはせず、単独、もしくは消費電力の小さいモジュールと同じグループに属させる。
【００４５】
図５は、図４の（Ｃ）に分類される、多くのアプリケーションで使用され、かつ単独での消費電力が大きいモジュールについてのグループ分けの指針を説明するための図である。図５において、丸印はモジュールを示しており、その大きさは消費電力の大きさを表しているものとする。また、アプリＡはモジュール１、２を使用し、アプリＢはモジュール２、３を使用することを表している。図５の例では、モジュール２が、図４の（Ｃ）に分類される、多くのアプリケーションで使用され、かつ単独での消費電力が大きいモジュールを示している。
【００４６】
このとき、分割数に余裕がある場合は、モジュール１、２、３をそれぞれ別のグループに分割する。一方、分割数に余裕がない場合は、例えば図５の例では、アプリＡがアプリＢより図２に示すアプリ優先度２３０における優先度が高い場合は、モジュール１、２を同一のグループとし、モジュール３を別のグループとして分割する。また、アプリＢがアプリＡより優先度が高い場合は、モジュール２、３を同一のグループとし、モジュール１を別のグループとして分割する。このように、低消費電力化を考慮した場合の優先度が高いアプリケーションで使用されるモジュールが同一のグループに属するように分割する。
【００４７】
以上のような指針に基づいて各モジュールをグループ分けして新たな分割候補を生成する。この処理を個体数上限２７０に保持された値だけ繰り返すことにより、複数の初期世代の分割候補を生成することができる。
【００４８】
［次世代分割候補生成］
図１は、図３における次世代分割候補生成処理（ステップＳ３０５）の例の概要を示したフローチャートである。この一連の処理では、現世代の各個体（分割候補）に対して、各アプリケーションおよび各モジュールの消費電力の情報に基づいて遺伝的操作を行い、次世代の各個体（分割候補）を生成する。
【００４９】
次世代分割候補生成処理を開始すると、まず、現世代の各分割候補について、評価関数により評価値を算出する（Ｓ１０１）。この評価値は遺伝的アルゴリズムにおける各個体（分割候補）の適応度に相当する。図１のステップＳ１０１の右側に示した具体例では、例えば、分割候補１〜３についてそれぞれ評価値が８０、４０、６０と算出されたことを示している。
【００５０】
ここで、評価値は、例えば、
評価値＝Σ（アプリ毎評価値×係数）  …式１
のように、アプリケーション毎の評価値に対して重み付けの係数をそれぞれ掛けたものの合計としてとして求めることができる。ここで、アプリ毎評価値は、例えば、
アプリ毎評価値＝ｌｏｇ（消費電力目標値／消費電力計算値）  …式２
のように、各アプリケーションについての消費電力の目標値と、図３のステップＳ３０４で算出された消費電力の値との比較に基づいて算出することができる。
【００５１】
式２では、アプリ毎評価値は、消費電力の目標値と計算値の比率の対数を取って求めている。これは、目標値の設定が現実の値に対して極端に乖離していた場合、この値をそのまま評価してしまうと評価結果が目標設定の際の乖離の程度によって大きく変動してしまう。このため、この変動を抑制するために対数を取っている。なお、アプリ毎評価値の計算式は式２に限らず、例えば、目標値と計算値の差分と目標値との比を用いるなど種々の評価方法をとることができる。
【００５２】
また、式１では、各アプリ毎評価値に重み付けの係数を掛けて評価値を算出している。この重み付け係数は、例えば、アプリ優先度２３０の値とリンクさせることができる。重み付け係数が大きいほど、アプリ毎評価値が分割候補の評価値に与える影響は大きくなる。すなわち、重み付け係数の大きいアプリケーションにおいては、消費電力の計算値が目標値から少しでも乖離すると、分割候補の評価値は大きく下がることになる。従って、このような分割候補については、さらに良いグループ分けの組合せを検討することになる。
【００５３】
次に、各分割候補について、各アプリケーションを実行する際の消費電力が高いものを所定の基準により淘汰する（Ｓ１０２）。本実施の形態では、ステップＳ１０１で算出された評価値が最も低い分割候補を淘汰するものとしている。図１のステップＳ１０２の右側に示した具体例では、最も評価値の低い分割候補２が淘汰されたことを示している。なお、例えば評価値が所定の値よりも低い分割候補を全て淘汰するなど、他の判断基準を用いてもよい。
【００５４】
次に、淘汰されなかった全ての分割候補に対してループ処理を行う。ここでは、対象の分割候補における各グループに属するモジュールを所定の条件に基づいて他のグループに移動する。この操作は遺伝的アルゴリズムにおける交叉に相当するものとして取り扱う。
【００５５】
分割候補に対するループ処理では、まず、対象の分割候補におけるグループ毎に、消費電力が小さいモジュールほど高い確率となるように、グループに属する各モジュールの移動確率を算出する（Ｓ１０３）。図１のステップＳ１０３の右側に示した具体例では、分割候補ｉは３つのグループを有しており、各グループに属するモジュールは丸印で示されている。丸印の大きさは消費電力の大きさを表しており、また、下に配置されているモジュールほど移動確率が低く、上に配置されているモジュールほど移動確率が高いことを模式的に示している。なお、消費電力から移動確率を算出する際の具体的な計算式は、上記の基準に従っている限り特に限定しない。
【００５６】
次に、各モジュールについて算出された移動確率に基づいて、各グループにおいて他のグループに移動させる候補となるモジュールを決定する（Ｓ１０４）。決定に際しては、例えば、グループ内で移動確率が最も高いモジュールを移動候補としてもよいし、移動確率に応じてランダムに決定されるようにしてもよい。移動確率に応じてランダムに決定する場合は、消費電力が大きいモジュールであってもある確率で移動候補となる場合がある。図１のステップＳ１０４の右側に示した具体例では、黒い丸印が移動候補として決定されたモジュールであることを示している。
【００５７】
次に、全ての移動候補のモジュールに対してループ処理を行う。ここでは、対象の移動候補のモジュールを他のグループに移動させる。移動候補のモジュールに対するループ処理では、まず、他のグループ毎に、当該グループに属する各モジュールと移動候補のモジュールとの間の相関性に基づいて相関度を算出し、相関度が高いグループほど高い確率となるように、当該グループに対する移動先確率を算出する（Ｓ１０５）。図１のステップＳ１０５の右側に示した具体例では、移動候補ｊのモジュールに対して、例えば、他のグループの移動先確率がそれぞれ５０、３０と算出されたことを示している。
【００５８】
図６は、上述したモジュールの相関性について説明するための図である。図６において、アプリＡはモジュール１、２，３を使用し、アプリＢはモジュール１、２、４、５を使用し、アプリＣはモジュール１、４、６を使用することを示している。ここで、例えば、モジュール４が使用されるアプリＢ、Ｃではモジュール３は使用されないため、モジュール３とモジュール４は相関性が低いと判断される。一方、モジュール４とモジュール１は、共に使用されるアプリケーションがアプリＢ、Ｃの２つあり、相関性が高いと判断される。このような判断基準により、移動候補のモジュールに対して他のグループに属する各モジュールの相関性を判断し、相関性が高いモジュールがどれだけ多く属しているかによって各グループの相関度を算出する。
【００５９】
なお、相関度や移動先確率を算出する際の具体的な計算式は、上記の基準に従っている限り特に限定しない。また、移動先確率の算出の際に、前述した図３のステップＳ３０３における初期分割候補生成処理でのグループ分けの指針の条件を加味してもよい。
【００６０】
次に、各グループについて算出された移動先確率に基づいて、対象の移動候補のモジュールの移動先となるグループを決定し、移動させる（Ｓ１０６）。決定に際しては、例えば、各グループで移動先確率が最も高いグループを移動先としてもよいし、移動先確率に応じてランダムに決定されるようにしてもよい。図１のステップＳ１０６の右側に示した具体例では、移動先確率が５０のグループに移動候補ｊのモジュールが移動したことを示している。
【００６１】
ステップＳ１０５、Ｓ１０６の処理を全ての移動候補のモジュールについて繰り返し、さらに、ステップＳ１０３〜Ｓ１０６の処理を全ての分割候補について繰り返す。その後、ステップＳ１０２で淘汰された分割候補について、これに替わる新たな分割候補を生成する（Ｓ１０７）。ここでは、図３のステップＳ３０３における初期分割候補生成処理と同様の処理を行って、新たな分割候補を生成する。この操作は遺伝的アルゴリズムにおける突然変異に相当するものとして取り扱う。図１のステップＳ１０７の右側に示した具体例では、淘汰された分割候補２に替わって新分割候補が生成されたことを示している。以上の一連の処理により、次世代の複数の分割候補が生成される。
【００６２】
［具体例］
図７は、本実施の形態の分割仕様探索システム１００での処理における具体的なデータの例を示した図である。図７では、アプリケーションはアプリＡ、Ｂ、Ｃの３つであり、モジュールは「ＣＰＵ」、「ＤＭＡＣ」、「ＢＳＣ」、「ＳＢＳＣ」、「ＩＮＴＣ」の５つである場合の例を示している。
【００６３】
使用モジュールリスト２１０には、アプリケーション毎に使用するモジュールが「○」で示されている。また、動作電流／面積２４０には、各モジュールの動作時電流と面積、および面積から換算したリーク電流が保持されている。
【００６４】
まず、使用モジュールリスト２１０と動作電流／面積２４０とから、図３のステップＳ３０３の初期分割候補生成処理によりテーブル７０１に示すような初期分割候補を生成している。ここでは、初期分割候補として分割候補１〜３の３つを生成しており、それぞれ３つのグループにモジュールを分割している。
【００６５】
テーブル７０１の情報と、使用モジュールリスト２１０の情報とに基づいて、各分割候補について、アプリケーション毎にどのグループを使用するか（どのグループに電源が投入されるか）という観点で表したものがテーブル７０２である。さらに、テーブル７０２の情報と、使用モジュールリスト２１０の情報とに基づいて、各分割候補について、アプリケーション毎に動作時に使用される（動作する）モジュールと使用されない（動作しない）モジュールの観点で表したものがテーブル７０３である。
【００６６】
図３のステップＳ３０４の消費電力計算処理により、テーブル７０３の情報を取得して、これと動作電流／面積２４０とから、アプリケーション毎に消費電力を算出したものがテーブル７０４である。算出にあたっては、各モジュールについて、動作電流／面積２４０から、使用される（動作する）モジュールの場合は動作時電流、使用されない（動作しない）モジュールの場合はリーク電流をそれぞれ取得して合計している。
【００６７】
この後、各分割候補について、図１のステップＳ１０１、Ｓ１０２の処理により、各アプリケーションの消費電力に基づいて評価値を算出し、評価値に基づいて淘汰する分割候補（図７の例では分割候補１）を決定して淘汰している。さらに、図１のステップＳ１０３〜Ｓ１０６の処理により、淘汰されなかった分割候補（図７の例では分割候補２、３）について、他のグループとの間でのモジュールの移動による交叉を行っている。さらに、図１のステップＳ１０７の処理により、淘汰された分割候補１に替わる新分割候補（テーブル７０５）を生成している。このようにして更新・生成された分割候補が次世代分割候補となることが示されている。
【００６８】
［適用領域］
図８は、本実施の形態の分割仕様探索システム１００の半導体チップの設計フローにおける適用関係の例を示した図である。本実施の形態の分割仕様探索システム１００は、例えば、設計フローにおける製品仕様検討、ＲＴＬ（Register transfer level）設計、論理合成の各フェーズで用いることができる。
【００６９】
製品仕様検討フェーズにおいては、例えば、アプリケーションやモジュール等の製品仕様を入力として電源領域の分割仕様案を出力することができる。このフェーズでは、電源領域の分割数を変更して最適な分割数を得ることもできる。ＲＴＬ設計フェースにおいては、例えば、ＲＴＬやシミュレータからの出力を入力として電源領域の分割仕様案を出力することができる。このフェーズでは、電源領域の分割数の変更はできず、どの電源領域にどのモジュールを属させるかを検討することになる。
【００７０】
また、論理合成フェーズにおいては、例えば、ネットリストを入力として電源領域の分割仕様に基づくアプリケーション毎の電流値を出力することができる。ここでは、高い精度での電流測定という点で分割仕様探索システム１００を活用することができる。このように、各設計フェーズにおいて、検討される内容や変更可能なパラメータは異なる。本実施の形態の分割仕様探索システム１００は、それぞれのフェーズに応じた仕様のフィードバックを行うことができる。
【００７１】
さらに、本実施の形態の分割仕様探索システム１００の出力結果を、下流の設計フェーズにおけるシミュレーションツールへの入力データとして活用するという利用方法も可能である。例えば、下流の設計フェーズにおいて電源遮断シミュレーションツールの入力データとして分割仕様探索システム１００の出力結果の分割仕様を入力する。さらに、電源遮断シミュレーションツールの出力結果を、分割仕様探索システム１００への入力データである動作電流／面積２４０の動作時電流、リーク電流にフィードバックする。この処理を繰り返すことで、より精緻な電源領域の分割仕様を得ることができる。
【００７２】
以上に説明したように、本実施の形態の電源領域分割仕様探索システム１００によれば、使用モジュールリスト２１０、目標電力２２０、アプリ優先度２３０、動作電流／面積２４０、分割数上限２５０の各情報に基づいて、ＬＳＩにおいて各アプリケーションを実行したときの消費電流を最小限にし、また、より少ない分割数となる電源領域の分割仕様を探索することができる。
【００７３】
すなわち、最適な分割仕様として、目標の消費電力を満たす範囲で最小の分割数となる分割仕様を得ることができる。また、所定の分割数においてより低消費電力となる分割仕様を得ることもできる。これにより、ＬＳＩの動作時に必要最小限のモジュールにのみ電源を投入することが可能となるため、低消費電力化を実現することが可能となる。
【００７４】
また、対象となるアプリケーションやＬＳＩに含まれるモジュール数に依存せずに対応することができる。また、アプリケーション毎に低消費電力化を考慮する際の重み付けを設定することも可能である。これらにより、柔軟に電源領域の最適な分割仕様を探索することができる。
【００７５】
また、従来の机上での分割仕様の検討に比べてより適切な分割仕様を短期間で効率的に得ることができる。また、アプリケーションで使用されるモジュールが変更された場合であっても、容易に変更後の最適な分割仕様を再検討することができる。このため、電源領域の分割仕様だけでなく、アプリケーションの仕様検討にも利用することができる。また、仮の仕様を入力データとして用いても分割仕様の検討を行うことができる。このため、詳細な情報がない設計の初期の段階であっても利用することができる。これらにより、設計期間や仕様検討期間の短縮を図ることができる。
【００７６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００７７】
本発明は、半導体チップにおける電源領域の最適な分割仕様を得る探索プログラムおよび探索システムに利用可能である。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施の形態における次世代分割候補生成処理の例の概要を示したフローチャートである。
【図２】本発明の一実施の形態である電源領域分割仕様探索システムの構成例の概要を示した図である。
【図３】本発明の一実施の形態における処理の例の概要を示したフローチャートである。
【図４】本発明の一実施の形態における初期分割候補生成処理の処理内容を説明するための図である。
【図５】本発明の一実施の形態における初期分割候補生成処理の処理内容を説明するための図である。
【図６】本発明の一実施の形態におけるモジュールの相関性について説明するための図である。
【図７】本発明の一実施の形態における具体的なデータの例を示した図である。
【図８】本発明の一実施の形態である電源領域分割仕様探索システムの半導体チップの設計フローにおける適用関係の例を示した図である。
【図９】電源領域の分割仕様の概念を示した図である。
【図１０】電源領域とモジュールとの関係を示した図である。
【符号の説明】
【００７９】
１００…電源領域分割仕様探索システム、１１０…新分割候補生成部、１２０…分割候補更新部、１３０…電力計算部、１４０…評価部、２１０…使用モジュールリスト、２２０…目標電力、２３０…アプリ優先度、２４０…動作電流／面積、２５０…分割数上限、２６０…世代数上限、２７０…個体数上限、３００…分割仕様、７０１〜７０５…テーブル。
【図１】
2010134726.tif 000003
【図２】
2010134726.tif 000004
【図３】
2010134726.tif 000005
【図４】
2010134726.tif 000006
【図５】
2010134726.tif 000007
【図６】
2010134726.tif 000008
【図７】
2010134726.tif 000009
【図８】
2010134726.tif 000010
【図９】
2010134726.tif 000011
【図１０】
2010134726.tif 000012